From 9f3984c1e445e9cdc37264ce62688c026d1bccd2 Mon Sep 17 00:00:00 2001 From: Li-yao Xia Date: Thu, 22 Jan 2026 18:41:48 +0100 Subject: [PATCH 001/189] wip: Use coinduction --- theories/Eq/Eqit.v | 163 ++++++++++++++++++--------------------------- 1 file changed, 63 insertions(+), 100 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e1c00bd0..5e4919ba 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -22,8 +22,6 @@ From Coq Require Import Morphisms Relations. -From Paco Require Import paco. - From ITree Require Import Basics.Basics Basics.Utils @@ -32,14 +30,9 @@ From ITree Require Import Eq.Paco2 Eq.Shallow. -Local Open Scope itree_scope. - -(* TODO: Send to paco *) -#[global] Instance Symmetric_bot2 (A : Type) : @Symmetric A bot2. -Proof. auto. Qed. +From Coinduction Require Import all. -#[global] Instance Transitive_bot2 (A : Type) : @Transitive A bot2. -Proof. auto. Qed. +Local Open Scope itree_scope. (* end hide *) (** ** Coinductive reasoning with Paco *) @@ -87,57 +80,49 @@ Section eqit. pattern-matching is not allowed on [itree]. *) - Inductive eqitF (b1 b2: bool) vclo (sim : itree E R1 -> itree E R2 -> Prop) : + Inductive eqitF (b1 b2: bool) (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := | EqRet r1 r2 (REL: RR r1 r2): - eqitF b1 b2 vclo sim (RetF r1) (RetF r2) + eqitF b1 b2 sim (RetF r1) (RetF r2) | EqTau m1 m2 (REL: sim m1 m2): - eqitF b1 b2 vclo sim (TauF m1) (TauF m2) + eqitF b1 b2 sim (TauF m1) (TauF m2) | EqVis {u} (e : E u) k1 k2 - (REL: forall v, vclo sim (k1 v) (k2 v) : Prop): - eqitF b1 b2 vclo sim (VisF e k1) (VisF e k2) + (REL: forall v, sim (k1 v) (k2 v) : Prop): + eqitF b1 b2 sim (VisF e k1) (VisF e k2) | EqTauL t1 ot2 (CHECK: b1) - (REL: eqitF b1 b2 vclo sim (observe t1) ot2): - eqitF b1 b2 vclo sim (TauF t1) ot2 + (REL: eqitF b1 b2 sim (observe t1) ot2): + eqitF b1 b2 sim (TauF t1) ot2 | EqTauR ot1 t2 (CHECK: b2) - (REL: eqitF b1 b2 vclo sim ot1 (observe t2)): - eqitF b1 b2 vclo sim ot1 (TauF t2) + (REL: eqitF b1 b2 sim ot1 (observe t2)): + eqitF b1 b2 sim ot1 (TauF t2) . Hint Constructors eqitF : itree. - Definition eqit_ b1 b2 vclo sim : + Definition eqit_ b1 b2 sim : itree E R1 -> itree E R2 -> Prop := - fun t1 t2 => eqitF b1 b2 vclo sim (observe t1) (observe t2). + fun t1 t2 => eqitF b1 b2 sim (observe t1) (observe t2). Hint Unfold eqit_ : itree. (** [eqitF] and [eqit_] are both monotone. *) - Lemma eqitF_mono b1 b2 x0 x1 vclo vclo' sim sim' - (IN: eqitF b1 b2 vclo sim x0 x1) - (MON: monotone2 vclo) - (LEc: vclo <3= vclo') - (LE: sim <2= sim'): - eqitF b1 b2 vclo' sim' x0 x1. + Lemma eqitF_mono b1 b2 : Proper (leq ==> leq) (eqit_ b1 b2). Proof. - intros. induction IN; eauto with itree. + intros sim sim' Hsim x0 x1. + unfold eqit_. intros IN. + induction IN; constructor; auto. + - apply Hsim; auto. + - intros ?; apply Hsim; auto. Qed. - Lemma eqit__mono b1 b2 vclo (MON: monotone2 vclo) : monotone2 (eqit_ b1 b2 vclo). - Proof. do 2 red. intros. eapply eqitF_mono; eauto. Qed. - - Hint Resolve eqit__mono : paco. - - Lemma eqit_idclo_mono: monotone2 (@id (itree E R1 -> itree E R2 -> Prop)). - Proof. unfold id. eauto. Qed. - - Hint Resolve eqit_idclo_mono : paco. + Definition eqit_mon b1 b2 : mon (itree E R1 -> itree E R2 -> Prop) := + {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. Definition eqit b1 b2 : itree E R1 -> itree E R2 -> Prop := - paco2 (eqit_ b1 b2 id) bot2. + gfp (eqit_mon b1 b2). (** Strong bisimulation on itrees. If [eqit RR t1 t2], we say that [t1] and [t2] are (strongly) bisimilar. As hinted @@ -155,117 +140,87 @@ End eqit. (* begin hide *) #[global] Hint Constructors eqitF : itree. #[global] Hint Unfold eqit_ : itree. -#[global] Hint Resolve eqit__mono : paco. -#[global] Hint Resolve eqit_idclo_mono : paco. #[global] Hint Unfold eqit : itree. #[global] Hint Unfold eq_itree : itree. #[global] Hint Unfold eutt : itree. #[global] Hint Unfold euttge : itree. -#[global] Hint Unfold id : itree. -Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 vclo sim} +Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} t1 X2 (e2 : E X2) (k2 : X2 -> _) - : eqitF RR b1 b2 vclo sim t1 (VisF e2 k2) -> - (exists k1, t1 = VisF e2 k1 /\ forall v, vclo sim (k1 v) (k2 v)) \/ - (b1 /\ exists t1', t1 = TauF t1' /\ eqitF RR b1 b2 vclo sim (observe t1') (VisF e2 k2)). + : eqitF RR b1 b2 sim t1 (VisF e2 k2) -> + (exists k1, t1 = VisF e2 k1 /\ forall v, sim (k1 v) (k2 v)) \/ + (b1 /\ exists t1', t1 = TauF t1' /\ eqitF RR b1 b2 sim (observe t1') (VisF e2 k2)). Proof. refine (fun H => - match H in eqitF _ _ _ _ _ _ t2 return + match H in eqitF _ _ _ _ _ t2 return match t2 return Prop with | VisF e2 k2 => _ | _ => True end with - | EqVis _ _ _ _ _ _ _ _ _ => _ + | EqVis _ _ _ _ _ _ _ _ => _ | _ => _ end); try exact I. - left; eauto. - destruct i0; eauto. Qed. -Lemma eqitF_inv_VisF_weak {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 vclo sim} +Lemma eqitF_inv_VisF_weak {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} X1 (e1 : E X1) (k1 : X1 -> _) X2 (e2 : E X2) (k2 : X2 -> _) - : eqitF RR b1 b2 vclo sim (VisF e1 k1) (VisF e2 k2) -> - exists p : X1 = X2, eqeq E p e1 e2 /\ pweqeq (vclo sim) p k1 k2. + : eqitF RR b1 b2 sim (VisF e1 k1) (VisF e2 k2) -> + exists p : X1 = X2, eqeq E p e1 e2 /\ pweqeq sim p k1 k2. Proof. refine (fun H => - match H in eqitF _ _ _ _ _ t1 t2 return + match H in eqitF _ _ _ _ t1 t2 return match t1, t2 return Prop with | VisF e1 k1, VisF e2 k2 => _ | _, _ => True end with - | EqVis _ _ _ _ _ _ _ _ _ => _ + | EqVis _ _ _ _ _ _ _ _ => _ | _ => _ end); try exact I. - exists eq_refl; cbn; eauto. - destruct i; exact I. Qed. -Lemma eqitF_inv_VisF {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 vclo sim} +Lemma eqitF_inv_VisF {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} X (e : E X) (k1 : X -> _) (k2 : X -> _) - : eqitF RR b1 b2 vclo sim (VisF e k1) (VisF e k2) -> - forall x, vclo sim (k1 x) (k2 x). + : eqitF RR b1 b2 sim (VisF e k1) (VisF e k2) -> + forall x, sim (k1 x) (k2 x). Proof. intros H. dependent destruction H. assumption. Qed. -Lemma eqitF_VisF_gen {E R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 vclo sim} +Lemma eqitF_VisF_gen {E R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 sim} {X1 X2} (p : X1 = X2) (e1 : E X1) (k1 : X1 -> _) (e2 : E X2) (k2 : X2 -> _) - : eqeq E p e1 e2 -> pweqeq (vclo sim) p k1 k2 -> - eqitF RR b1 b2 vclo sim (VisF e1 k1) (VisF e2 k2). + : eqeq E p e1 e2 -> pweqeq sim p k1 k2 -> + eqitF RR b1 b2 sim (VisF e1 k1) (VisF e2 k2). Proof. destruct p; intros <-; cbn; constructor; auto. Qed. Ltac unfold_eqit := - (try match goal with [|- eqit_ _ _ _ _ _ _ _ ] => red end); - (repeat match goal with [H: eqit_ _ _ _ _ _ _ _ |- _ ] => red in H end). - -Lemma fold_eqitF: - forall {E R1 R2} (RR: R1 -> R2 -> Prop) b1 b2 (t1 : itree E R1) (t2 : itree E R2) ot1 ot2, - eqitF RR b1 b2 id (upaco2 (eqit_ RR b1 b2 id) bot2) ot1 ot2 -> - ot1 = observe t1 -> - ot2 = observe t2 -> - eqit RR b1 b2 t1 t2. -Proof. - intros * eq -> ->; pfold; auto. -Qed. - -(* Tactic to fold eqitF automatically by expanding observe if needed *) -Tactic Notation "fold_eqitF" hyp(H) := - try punfold H; - try red in H; - match type of H with - | eqitF ?_RR ?_B1 ?_B2 id (upaco2 (eqit_ ?_RR ?_B1 ?_B2 id) bot2) ?_OT1 ?_OT2 => - match _OT1 with - | observe _ => idtac - | ?_OT1 => change _OT1 with (observe (go _OT1)) in H - end; - match _OT2 with - | observe _ => idtac - | ?_OT2 => change _OT2 with (observe (go _OT2)) in H - end; - eapply fold_eqitF in H; [| eauto | eauto] - end. + (try match goal with [|- eqit_ _ _ _ _ _ _ ] => red end); + (repeat match goal with [H: eqit_ _ _ _ _ _ _ |- _ ] => red in H end). #[global] Instance eqitF_Proper_R {E : Type -> Type} {R1 R2:Type} : - Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> (eq_rel ==> eq_rel) ==> eq_rel ==> eq_rel) + Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq_rel ==> eq_rel) (@eqitF E R1 R2). Proof. repeat red. intros. subst. split; unfold subrelationH; intros. - induction H0; auto with itree. econstructor. apply H. assumption. - econstructor. apply H3. assumption. - econstructor. intros. specialize (REL v). specialize (H2 x3 y3). apply H2 in H3. apply H3. assumption. + econstructor. apply H2. assumption. + econstructor. intros. specialize (REL v). apply H2. auto. - induction H0; auto with itree. econstructor. apply H. assumption. - econstructor. apply H3. assumption. - econstructor. intros. specialize (REL v). specialize (H2 x3 y3). apply H2 in H3. apply H3. assumption. + econstructor. apply H2. assumption. + econstructor. intros. specialize (REL v). apply H2. auto. Qed. #[global] Instance eqitF_Proper_R2 {E : Type -> Type} {R1 R2:Type} : - Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) + Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqitF E R1 R2). Proof. repeat red. @@ -282,7 +237,10 @@ Proof with auto with itree. repeat red. intros. subst. split. - - revert_until y1. pcofix CIH. intros. + - revert_until y1. unfold eqit at 2. coinduction R CIH. intros. +Admitted. +(* + step. pstep. punfold H0. red in H0. red. hinduction H0 before CIH; intros... + apply EqRet. apply H. assumption. @@ -337,7 +295,7 @@ Proof. Qed. #[global] Hint Unfold flip : itree. - +*) (* end hide *) (** A notation of [eq_itree eq]. You can write [≅] using [[\cong]] in @@ -349,6 +307,8 @@ Infix "≈" := (eutt eq) (at level 70) : type_scope. Infix "≳" := (euttge eq) (at level 70) : type_scope. +(* + (* TODO: Find a way to not clobber the export [type_scope]? *) Section eqit_closure. @@ -451,6 +411,8 @@ End eqit_closure. Arguments eqit_clo_trans : clear implicits. #[global] Hint Constructors eqit_trans_clo : itree. +*) + (** ** Properties of relations *) (** Instances stating that we have equivalence relations. *) @@ -462,38 +424,39 @@ Section eqit_gen. Context {E : Type -> Type} {R: Type} (RR : R -> R -> Prop). #[global] Instance Reflexive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive RR -> Reflexive sim -> Reflexive (eqitF RR b1 b2 id sim). +: Reflexive RR -> Reflexive sim -> Reflexive (eqitF RR b1 b2 sim). Proof. red. destruct x; constructor; eauto with itree. Qed. #[global] Instance Symmetric_eqitF b (sim : itree E R -> itree E R -> Prop) -: Symmetric RR -> Symmetric sim -> Symmetric (eqitF RR b b id sim). +: Symmetric RR -> Symmetric sim -> Symmetric (eqitF RR b b sim). Proof. red. induction 3; constructor; subst; eauto. - intros. apply H0. apply (REL v). Qed. #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 id sim). +: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). Proof. repeat red. intros. reflexivity. Qed. #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) -: Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b id sim). +: Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). Proof. repeat red; symmetry; auto. Qed. (** *** [eqit] is an equivalence relation *) +(* #[global] Instance Reflexive_eqit_gen b1 b2 (r rg: itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive (gpaco2 (eqit_ RR b1 b2 id) (eqitC RR b1 b2) r rg). Proof. pcofix CIH. gstep; intros. repeat red. destruct (observe x); eauto with paco itree. Qed. +*) #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. - red; intros. ginit. apply Reflexive_eqit_gen; eauto. + red; intros. unfold eqit. coinduction c CIH. step. Qed. #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). From fc018e6635a8020a6c961fafa92ff7ad53b01477 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Feb 2026 01:16:28 -0500 Subject: [PATCH 002/189] updated Eq filename in DEV.md --- DEV.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEV.md b/DEV.md index 94bef7d9..dd32f8ca 100644 --- a/DEV.md +++ b/DEV.md @@ -163,7 +163,7 @@ for testing. - `Eq`: Equational theory of interaction trees. + `Shallow`: One-step unfolding of cofixpoints. - + `Eq`: Strong bisimulation. + + `Eqit`: Strong bisimulation. + `UpToTaus`: Weak bisimulation. + `SimUpToTaus`: Weak simulation. + `EqAxiom`: Axiom that strong bisimulation is propositional equality. From 244192b05386dd5b906d1466786fca42560a90a0 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Feb 2026 02:11:15 -0500 Subject: [PATCH 003/189] added TODOs to Basics.v --- theories/Basics/Basics.v | 2 ++ 1 file changed, 2 insertions(+) diff --git a/theories/Basics/Basics.v b/theories/Basics/Basics.v index c25cbca0..d9899ef5 100644 --- a/theories/Basics/Basics.v +++ b/theories/Basics/Basics.v @@ -38,6 +38,7 @@ Notation "E ~> F" := (forall T, E T -> F T) (at level 99, right associativity, only parsing) : type_scope. (* The same level as [->]. *) (* This might actually not be such a good idea. *) +(* TODO: Determine if this is, or not, a good idea. *) (** Identity morphism. *) Definition idM {E : Type -> Type} : E ~> E := fun _ e => e. @@ -166,6 +167,7 @@ Inductive iter_Prop {R I : Type} (step : I -> I + R -> Prop) (i : I) (r : R) #[global] Polymorphic Instance MonadIter_Prop : MonadIter Ensembles.Ensemble := @iter_Prop. (* Elementary constructs for predicates. To be moved in their own file eventually *) +(* TODO: Make the file to move these into. *) Definition equiv_pred {A : Type} (R S: A -> Prop): Prop := forall a, R a <-> S a. From 500fbbc5fb09140df1a622793c1cdf2b3f198643 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Feb 2026 02:30:45 -0500 Subject: [PATCH 004/189] fixed a typo in CategoryOps --- theories/Basics/CategoryOps.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theories/Basics/CategoryOps.v b/theories/Basics/CategoryOps.v index 69ac7613..281be119 100644 --- a/theories/Basics/CategoryOps.v +++ b/theories/Basics/CategoryOps.v @@ -113,7 +113,7 @@ Class Initial (i : obj) := empty : forall a, C i a. (** If there is a terminal object [t], its terminal morphisms are written - [one : C a i]. *) + [one : C a t]. *) Class Terminal (t : obj) := one : forall a, C a t. From 01b2a109c3ffbce3f896b0b53cae5ed4a168b254 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 10 Feb 2026 11:32:45 -0500 Subject: [PATCH 005/189] updates to eqit --- theories/Eq/Eqit.v | 82 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 5e4919ba..6bcacf82 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -35,6 +35,8 @@ From Coinduction Require Import all. Local Open Scope itree_scope. (* end hide *) +(* RTODO: REWRITE THIS WITH POUS COINDUCTION *) + (** ** Coinductive reasoning with Paco *) (** Similarly to the way we deal with cofixpoints explained in @@ -235,9 +237,13 @@ Qed. : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). Proof with auto with itree. repeat red. - intros. subst. + intros r1 r2. intros. subst. split. - - revert_until y1. unfold eqit at 2. coinduction R CIH. intros. + - revert y2. unfold eqit at 2. coinduction R CIH. repeat intro. + (* why doesn't step work here? *) + cbn. + unfold eqit_. + induction R. Admitted. (* step. @@ -435,6 +441,20 @@ Proof. red. induction 3; constructor; subst; eauto. Qed. +(* #[global] Instance Transitive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqitF RR b1 b2 sim). +Proof. + red. intros. revert H2. revert z. induction H1. + - intros. inversion H2; subst. + + econstructor. etransitivity; eauto. + + eapply EqTauR. auto. + destruct (observe t2). + inversion REL0; subst; eauto. + econstructor. + etransitivity; eauto. + eapply EqTauR; auto. +Qed. *) + #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). Proof. repeat red. intros. reflexivity. Qed. @@ -443,6 +463,10 @@ Proof. repeat red. intros. reflexivity. Qed. : Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). Proof. repeat red; symmetry; auto. Qed. +(* #[global] Instance Transitive_eqit_ b (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqit_ RR b b sim). +Proof. repeat red; etransitivity; auto. Qed. *) + (** *** [eqit] is an equivalence relation *) (* @@ -456,15 +480,57 @@ Qed. #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. - red; intros. unfold eqit. coinduction c CIH. step. + + red; intros. unfold eqit. + (* strengthen bisimulation: elem c x x holds for all x. *) + revert x. coinduction c CIH. intro. step. + now repeat apply Reflexive_eqit_. Qed. + + (** elements of the final chain are equivalence relations *) +#[export] Instance Equivalence_t (b: bool) (HE: Equivalence RR) {c: Chain (@eqit_mon E _ _ RR b b)}: Equivalence (elem c). + Proof. + constructor; revert c. + - apply Reflexive_chain. intros c Hc x. step. + repeat apply Reflexive_eqit_; auto. + - apply Symmetric_chain. + intros. + apply Symmetric_eqit_; typeclasses eauto. + - apply Transitive_chain. + (* idea: put Trans eqitF proof here *) + red; intros. + inversion H0; unfold eqit_; cbn; subst. + + Qed. + #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). Proof. - red; intros. apply eqit_flip. - eapply eqit_mon, H0; eauto. + intros. + (* Yannick: why unfold only at 2? gfp in assumption causes problems or? *) + unfold Symmetric. unfold eqit at 2. + (* generally poor error message: wants a fix. *) + coinduction c CIH. + assert (Symmetric (elem c)). + { apply Symmetric_chain. red; intros. + now apply Symmetric_eqit_. + } + + + + intros. + apply Symmetric_eqit_; auto. + rewrite H1. + + symmetry. + step. + unfold eqit_. + + + fold (@eqit_mon E). Qed. + #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. @@ -505,10 +571,10 @@ Proof. apply Reflexive_eqitF; eauto. Qed. -#[global] Instance Symmetric_eqitF_eq b (sim : itree E R -> itree E R -> Prop) -: Symmetric sim -> Symmetric (eqitF eq b b id sim). +#[global] Instance TransitiveitF_eq b (sim : itree E R -> itree E R -> Prop) +: Transitiveymmetric sim -> Symmetric (eqitF eq b b id sim). Proof. - apply Symmetric_eqitF; eauto. + apply Transitive_eqitF; Transitiveauto. Qed. #[global] Instance Reflexive_eqit__eq b1 b2 (sim : itree E R -> itree E R -> Prop) From 515140363bb5c622bd458329ff13ec73712fcb99 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 10 Feb 2026 12:40:48 -0500 Subject: [PATCH 006/189] some more, switching to look at hinduction --- theories/Eq/Eqit.v | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 6bcacf82..50da6670 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -239,11 +239,15 @@ Proof with auto with itree. repeat red. intros r1 r2. intros. subst. split. - - revert y2. unfold eqit at 2. coinduction R CIH. repeat intro. + - revert y1 y2. unfold eqit at 2. coinduction R CIH. repeat intro. (* why doesn't step work here? *) cbn. unfold eqit_. - induction R. + red in H0. + + (* specialize (CIH _ _ H0). *) + (* want to rewrite using eqitF_Proper *) + Admitted. (* step. From 503fe44bdb905a1206e7f3b939fbdec1f8059c99 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 10 Feb 2026 15:59:12 -0500 Subject: [PATCH 007/189] progress. transitivity proof ongoing. --- theories/Eq/Eqit.v | 114 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 103 insertions(+), 11 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 50da6670..ecd69382 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -233,6 +233,52 @@ Proof. econstructor. apply H. assumption. Qed. +#[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R1 R2:Type} : + Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) + (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) t2). +Proof. + repeat red. + intros. subst. split; intros. + - induction H0; auto with itree. + econstructor. apply H. assumption. + - induction H0; auto with itree. + econstructor. apply H. assumption. +Qed. + +Lemma eqitF_observe_l_sim +{E : Type -> Type} {R: Type} (RR : R -> R -> Prop) + b1 b2 + (sim : itree E R -> itree E R -> Prop) + t1 t2 z : + sim t1 t2 -> + eqitF RR b1 b2 sim (observe t1) z -> + eqitF RR b1 b2 sim (observe t2) z. +Proof. + intros. + remember (observe t2) as t2'. + dependent induction t2'. + + + +#[global] Instance eqitF_Proper_observe_r {E : Type -> Type} {R1 R2:Type} : + Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) + (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim t1 (observe t2)). +Proof. + repeat red. + intros. subst. split; intros. + - induction H0; auto with itree. + econstructor. apply H. assumption. + - induction H0; auto with itree. + econstructor. apply H. assumption. +Qed. + +#[global] Instance eqitF_Proper_observe {E : Type -> Type} {R1 R2:Type} : + Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) + (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) (observe t2)). +Proof. + repeat red; intros; subst; eapply eqitF_Proper_observe_r; eauto. +Qed. + #[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). Proof with auto with itree. @@ -242,10 +288,19 @@ Proof with auto with itree. - revert y1 y2. unfold eqit at 2. coinduction R CIH. repeat intro. (* why doesn't step work here? *) cbn. - unfold eqit_. +(* need to get rid of gfp in H0 so we can do induction on it *) red in H0. + Search gfp. + + (* assert *) + + (* one idea: derive elem from gfp *) + (* specialize (sub_gfp_Chain R) as sub. *) + + unfold eqit_. + + specialize (CIH _ _ H0). - (* specialize (CIH _ _ H0). *) (* want to rewrite using eqitF_Proper *) Admitted. @@ -445,19 +500,54 @@ Proof. red. induction 3; constructor; subst; eauto. Qed. -(* #[global] Instance Transitive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) +Ltac taul := apply EqTauL; only 1: assumption. +Ltac taur := apply EqTauR; only 1: assumption. + +(* Lemma rewrite_sim_under_observe b1 b2 (sim : itree E R -> itree E R -> Prop) z +m1 m2 (REL : sim m1 m2) (H : eqitF RR b1 b2 sim (observe m2) z) : +eqitF RR b1 b2 sim (observe m1) z. +Proof. + specialize (@eqitF_Proper_observe_l E). + repeat red; intros. + repeat red in H0. + edestruct H0; eauto. + specialize (H1 H). *) + + + +#[global] Instance Transitive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR b1 b2 sim). Proof. red. intros. revert H2. revert z. induction H1. - - intros. inversion H2; subst. + - intros. dependent induction H2; subst. + econstructor. etransitivity; eauto. - + eapply EqTauR. auto. - destruct (observe t2). - inversion REL0; subst; eauto. - econstructor. - etransitivity; eauto. - eapply EqTauR; auto. -Qed. *) + + taur. + eapply IHeqitF; eauto. + - intros. dependent induction H2. + + econstructor. etransitivity; eauto. + (* HERE *) + + taul. + Fail rewrite REL. + (* need eqitF Proper of sim w observe *) + (* rewrite REL. *) + shelve. + + taur. eapply IHeqitF; eauto. + - intros. + dependent induction H2. + + econstructor. + etransitivity; eauto. + + taur. + eapply IHeqitF; eauto. + - intros. taul. apply IHeqitF, H2. + - intros. apply IHeqitF. + dependent induction H2. + taur. + (* need eqitF Proper of sim w observe *) + (* rewrite REL. *) + shelve. + + auto. + + taur. eapply IHeqitF0; eauto. +Qed. #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). @@ -502,6 +592,8 @@ Qed. intros. apply Symmetric_eqit_; typeclasses eauto. - apply Transitive_chain. + (* you can use symmetry of the relation here if you do + transitivity as a subproof. *) (* idea: put Trans eqitF proof here *) red; intros. inversion H0; unfold eqit_; cbn; subst. From e0e55d4a6f5a08e5bd6d5da090cc738e78b0f75c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 10 Feb 2026 16:48:48 -0500 Subject: [PATCH 008/189] a bit more. --- theories/Eq/Eqit.v | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index ecd69382..f860d82f 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -233,6 +233,21 @@ Proof. econstructor. apply H. assumption. Qed. +(* #[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R:Type} +(sim : itree E R -> itree E R -> Prop) +: + Proper (eq ==> eq ==> eq ==> sim ==> sim ==> iff) + (fun RR b1 b2 t1 t2 => @eqitF E R R RR b1 b2 sim (observe t1) (observe t2)). +Proof. + repeat red. + intros. subst. split; intros. + - induction H; auto with itree. + + econstructor. apply H. assumption. + - induction H0; auto with itree. + econstructor. apply H. assumption. +Qed. *) + #[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R1 R2:Type} : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) t2). @@ -244,7 +259,7 @@ Proof. - induction H0; auto with itree. econstructor. apply H. assumption. Qed. - +(* Lemma eqitF_observe_l_sim {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) b1 b2 @@ -255,8 +270,9 @@ Lemma eqitF_observe_l_sim eqitF RR b1 b2 sim (observe t2) z. Proof. intros. - remember (observe t2) as t2'. - dependent induction t2'. + (* remember (observe t2) as t2'. *) + dependent induction H0. *) + @@ -518,16 +534,18 @@ Proof. #[global] Instance Transitive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR b1 b2 sim). Proof. - red. intros. revert H2. revert z. induction H1. + red. intros. revert H2. revert z. dependent induction H1. - intros. dependent induction H2; subst. + econstructor. etransitivity; eauto. + taur. eapply IHeqitF; eauto. - - intros. dependent induction H2. - + econstructor. etransitivity; eauto. + - intros. dependent induction H2; subst. + + econstructor; etransitivity; eauto. (* HERE *) - + taul. - Fail rewrite REL. + + + (* IH doesn't work: *) + (* eapply IHeqitF; eauto. taul. *) + taul. Fail rewrite REL. (* need eqitF Proper of sim w observe *) (* rewrite REL. *) shelve. From 2eb0dc9d7c3128a29cc3af3fc0fee857e56fcbcd Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 12 Feb 2026 10:50:48 -0500 Subject: [PATCH 009/189] switching --- theories/Eq/Eqit.v | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f860d82f..9c0bbec1 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -530,24 +530,32 @@ Proof. specialize (H1 H). *) + (* + eutt is NOT valid up to eutt + *) + (* eutt is still transitive, but for different reasons *) + +(* check out line 796 in orig file *) #[global] Instance Transitive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR b1 b2 sim). Proof. - red. intros. revert H2. revert z. dependent induction H1. + red. intros. revert H2. revert z. induction H1. - intros. dependent induction H2; subst. + econstructor. etransitivity; eauto. + taur. eapply IHeqitF; eauto. - - intros. dependent induction H2; subst. + - intros. + intros. dependent induction H2. + econstructor; etransitivity; eauto. (* HERE *) - + + (* idea: transitivity of sim *) + + dependent induction H2. (* IH doesn't work: *) - (* eapply IHeqitF; eauto. taul. *) - taul. Fail rewrite REL. + eapply IHeqitF; eauto. + taul. (* need eqitF Proper of sim w observe *) - (* rewrite REL. *) + Fail rewrite REL. shelve. + taur. eapply IHeqitF; eauto. - intros. @@ -565,7 +573,7 @@ Proof. shelve. + auto. + taur. eapply IHeqitF0; eauto. -Qed. +Admitted. #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). @@ -599,7 +607,7 @@ Proof. now repeat apply Reflexive_eqit_. Qed. - +(* THIS IS FALSE FOR b:=true (aka eutt up to eutt) *) (** elements of the final chain are equivalence relations *) #[export] Instance Equivalence_t (b: bool) (HE: Equivalence RR) {c: Chain (@eqit_mon E _ _ RR b b)}: Equivalence (elem c). Proof. From d02301461fdf65ece605760b4b701e94851c46f8 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 15:10:06 -0500 Subject: [PATCH 010/189] weaker eqitF_eqit proof, switching for paco comparison and high-level survey --- theories/Eq/Eqit.v | 130 ++++++++++++++++----------------------------- 1 file changed, 47 insertions(+), 83 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 9c0bbec1..ee724b5f 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -519,26 +519,9 @@ Qed. Ltac taul := apply EqTauL; only 1: assumption. Ltac taur := apply EqTauR; only 1: assumption. -(* Lemma rewrite_sim_under_observe b1 b2 (sim : itree E R -> itree E R -> Prop) z -m1 m2 (REL : sim m1 m2) (H : eqitF RR b1 b2 sim (observe m2) z) : -eqitF RR b1 b2 sim (observe m1) z. -Proof. - specialize (@eqitF_Proper_observe_l E). - repeat red; intros. - repeat red in H0. - edestruct H0; eauto. - specialize (H1 H). *) - - - (* - eutt is NOT valid up to eutt - *) - - (* eutt is still transitive, but for different reasons *) - -(* check out line 796 in orig file *) -#[global] Instance Transitive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqitF RR b1 b2 sim). +(* weak: eqitF is transitive under strong bisimilarity assumptions *) +#[global] Instance Transitive_eqitF_eqit (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. red. intros. revert H2. revert z. induction H1. - intros. dependent induction H2; subst. @@ -546,17 +529,12 @@ Proof. + taur. eapply IHeqitF; eauto. - intros. - intros. dependent induction H2. + dependent induction H2; subst. + econstructor; etransitivity; eauto. - (* HERE *) - (* idea: transitivity of sim *) - + dependent induction H2. - (* IH doesn't work: *) - eapply IHeqitF; eauto. - taul. - (* need eqitF Proper of sim w observe *) - Fail rewrite REL. - shelve. + (* impossible: eqitF RR false false sim (observe m2) z + because one boolean must be true for this assumption to hold. + *) + + easy. + taur. eapply IHeqitF; eauto. - intros. dependent induction H2. @@ -565,38 +543,38 @@ Proof. + taur. eapply IHeqitF; eauto. - intros. taul. apply IHeqitF, H2. - - intros. apply IHeqitF. - dependent induction H2. - taur. - (* need eqitF Proper of sim w observe *) - (* rewrite REL. *) - shelve. - + auto. - + taur. eapply IHeqitF0; eauto. -Admitted. + - intros. apply IHeqitF. + (* see above note on why this is impossible *) + easy. +Qed. + + + + (* + eutt is NOT valid up to eutt + *) + + (* eutt is still transitive, but for different reasons *) + +(* check out line 796 in orig file *) +(* strongest: holds for all instances of eqit *) #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). Proof. repeat red. intros. reflexivity. Qed. +(* weak: holds only with eqit or eutt *) #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) : Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). Proof. repeat red; symmetry; auto. Qed. -(* #[global] Instance Transitive_eqit_ b (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqit_ RR b b sim). -Proof. repeat red; etransitivity; auto. Qed. *) +(* weak: holds only for strong bisimilarity *) +#[global] Instance Transitive_eqit_eqit (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). +Proof. repeat red; etransitivity; eauto. Qed. (** *** [eqit] is an equivalence relation *) -(* -#[global] Instance Reflexive_eqit_gen b1 b2 (r rg: itree E R -> itree E R -> Prop) : - Reflexive RR -> Reflexive (gpaco2 (eqit_ RR b1 b2 id) (eqitC RR b1 b2) r rg). -Proof. - pcofix CIH. gstep; intros. - repeat red. destruct (observe x); eauto with paco itree. -Qed. -*) #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. @@ -607,24 +585,17 @@ Proof. now repeat apply Reflexive_eqit_. Qed. -(* THIS IS FALSE FOR b:=true (aka eutt up to eutt) *) - (** elements of the final chain are equivalence relations *) -#[export] Instance Equivalence_t (b: bool) (HE: Equivalence RR) {c: Chain (@eqit_mon E _ _ RR b b)}: Equivalence (elem c). - Proof. - constructor; revert c. - - apply Reflexive_chain. intros c Hc x. step. - repeat apply Reflexive_eqit_; auto. - - apply Symmetric_chain. - intros. - apply Symmetric_eqit_; typeclasses eauto. - - apply Transitive_chain. - (* you can use symmetry of the relation here if you do - transitivity as a subproof. *) - (* idea: put Trans eqitF proof here *) - red; intros. - inversion H0; unfold eqit_; cbn; subst. - - Qed. +(* need to prove eqit_ is stable under eqit *) + +(* #[global] Instance eqit__eqit_Proper : +Proper () +(fun RR sim x y => ) *) + + +(* #[global] Instance eqit_proper_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). *) + + + #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). Proof. @@ -638,26 +609,19 @@ Proof. now apply Symmetric_eqit_. } - - intros. - apply Symmetric_eqit_; auto. - rewrite H1. - - symmetry. - step. - unfold eqit_. - - - fold (@eqit_mon E). -Qed. - + apply Symmetric_eqit_; auto. +Admitted. #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. - ginit. pcofix CIH. intros. - punfold H0. gstep. red in H0 |- *. + red. + unfold euttge, eqit. + coinduction c CIH. intros. + red in H. + step. + (* these proofs get to do hinduction. *) hinduction H0 before CIH; subst; econstructor; try inv CHECK; pclearbot; auto 7 with paco itree. Qed. From 744bada20e0cee05ce62b02d13b321fa2cdbd2d7 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 16:26:48 -0500 Subject: [PATCH 011/189] figured out gfp_fp, now building rich tactic library --- theories/Eq/Eqit.v | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index ee724b5f..e4651290 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -37,6 +37,33 @@ Local Open Scope itree_scope. (* RTODO: REWRITE THIS WITH POUS COINDUCTION *) + +(* RTODO: remove these notes. they will be useful for now. + + + +------------------------------------------------------------ + + +The paco proofs, in large, rely on induction on eqitF in a hypothesis. they +derive this eqitF from eqit in a hypothesis, as eqit is defined as paco2 (eqit_) +(where eqit_ is defined by eqitF). using punfold, they transform +eqit into eqitF b1 b2 vclo (upaco2 ...). + +In these same proofs using `coinduction`, we have an eqit in the hypothesis, +but now it is defined as the gfp of eqit_. Since `coinduction` subsumes +`paco`, we should be able to derive the same transformation as in `punfold`, +but we need to find out how. This likely involves building a tactic that +turns gfp b into b(gfp b). + +Having found this (gfp_fp), we want to build a rich tactic library, a la Ctrees, +to work with step, step_in, and friends. This will allows us to do proofs +that look like paco but do not require wcompat and are ammenable to +enhanced relational properties. + +*) +Search gfp. +(* we want gfp_fp. *) (** ** Coinductive reasoning with Paco *) (** Similarly to the way we deal with cofixpoints explained in @@ -123,9 +150,13 @@ Section eqit. Definition eqit_mon b1 b2 : mon (itree E R1 -> itree E R2 -> Prop) := {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. +Search gfp. +(* here, build a tactic for an analog to punfold *) + + + Definition eqit b1 b2 : itree E R1 -> itree E R2 -> Prop := gfp (eqit_mon b1 b2). - (** Strong bisimulation on itrees. If [eqit RR t1 t2], we say that [t1] and [t2] are (strongly) bisimilar. As hinted at above, bisimilarity can be intuitively thought of as @@ -307,7 +338,9 @@ Proof with auto with itree. (* need to get rid of gfp in H0 so we can do induction on it *) red in H0. Search gfp. - + (* THE GOLD *) + apply (gfp_fp (eqit_mon r1 y y0) y1 y2) in H0. + fail. (* assert *) (* one idea: derive elem from gfp *) From 2fa0ffaf400046e4c0bb82822e4ab7710a027201 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 16:59:33 -0500 Subject: [PATCH 012/189] Created Utils.v. --- theories/Core/Utils.v | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 theories/Core/Utils.v diff --git a/theories/Core/Utils.v b/theories/Core/Utils.v new file mode 100644 index 00000000..513c7e31 --- /dev/null +++ b/theories/Core/Utils.v @@ -0,0 +1,51 @@ +#[global] Set Warnings "-intuition-auto-with-star". + +From Coinduction Require Import all. + +Ltac inverts h := + inversion h; subst; clear h. + + +(* Ltac invert := + match goal with + | h : existT _ _ _ = existT _ _ _ |- _ => dependent induction h + end. *) + +Ltac copy h := + let foo := fresh "cpy" in + assert (foo := h). + +Ltac break := + repeat match goal with + | h : _ \/ _ |- _ => destruct h + | h : _ /\ _ |- _ => destruct h + | h : exists x, _ |- _ => destruct h + end. + +Ltac break_match_in H := + match type of H with + | context [ match ?x with _ => _ end ] => destruct x eqn:? end. + +(* A smarter version of this should be part of the [coinduction] library *) + +Ltac step_ := + match goal with + | |- gfp ?b ?x ?y ?z => apply (proj1 (gfp_fp b x y z)) + | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) + | |- gfp ?b ?x ?y => apply (proj1 (gfp_fp b x y)) + | |- elem ?R ?x ?y => apply (b_chain R x y) + | |- gfp ?b ?x => apply (proj1 (gfp_fp b x)) + | |- elem ?R ?x => apply (b_chain R x) + end. + +Ltac step := first [step_ | red; step_]. + +Ltac step_in H := + match type of H with + | gfp ?b ?x ?y ?z => apply (gfp_fp b x y z) in H + | gfp ?b ?x ?y => apply (gfp_fp b x y) in H + | gfp ?b ?x => apply (gfp_fp b x) in H + | _ => red in H; step_in H + end. +Tactic Notation "step" "in" ident(H) := step_in H. + From 6c6e02e62869510a4b9552833d97dc4683ff18da Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:09:28 -0500 Subject: [PATCH 013/189] Put hinduction in Utils.v. Utils.v now in build path. --- _CoqProject.itree | 1 + theories/Core/ITreeDefinition.v | 6 +----- theories/Core/Utils.v | 5 +++++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/_CoqProject.itree b/_CoqProject.itree index 19cd3bfe..766887ea 100644 --- a/_CoqProject.itree +++ b/_CoqProject.itree @@ -23,6 +23,7 @@ theories/Basics/CategoryKleisliFacts.v theories/Basics/Function.v theories/Basics/FunctionFacts.v +theories/Core/Utils.v theories/Core/ITreeDefinition.v theories/Core/KTree.v theories/Core/KTreeFacts.v diff --git a/theories/Core/ITreeDefinition.v b/theories/Core/ITreeDefinition.v index afcf8037..de367332 100644 --- a/theories/Core/ITreeDefinition.v +++ b/theories/Core/ITreeDefinition.v @@ -4,10 +4,9 @@ Require Import ExtLib.Structures.Functor. Require Import ExtLib.Structures.Applicative. Require Import ExtLib.Structures.Monad. -Require Import Program.Tactics. From ITree Require Import Basics. - +From ITree Require Export Core.Utils. Set Implicit Arguments. Set Contextual Implicit. Set Primitive Projections. @@ -284,9 +283,6 @@ Lemma hexploit_mp: forall P Q: Type, P -> (P -> Q) -> Q. Proof. intuition. Defined. Ltac hexploit x := eapply hexploit_mp; [eapply x|]. -Tactic Notation "hinduction" hyp(IND) "before" hyp(H) - := move IND before H; revert_until IND; induction IND. - Ltac rewrite_everywhere lem := progress ((repeat match goal with [H: _ |- _] => rewrite lem in H end); repeat rewrite lem). diff --git a/theories/Core/Utils.v b/theories/Core/Utils.v index 513c7e31..deb79822 100644 --- a/theories/Core/Utils.v +++ b/theories/Core/Utils.v @@ -1,6 +1,8 @@ #[global] Set Warnings "-intuition-auto-with-star". From Coinduction Require Import all. +Require Import Program.Tactics. + Ltac inverts h := inversion h; subst; clear h. @@ -49,3 +51,6 @@ Ltac step_in H := end. Tactic Notation "step" "in" ident(H) := step_in H. + +Tactic Notation "hinduction" hyp(IND) "before" hyp(H) + := move IND before H; revert_until IND; induction IND. From 1349eff09d28df7e8b93b1f7203247676e73ec59 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:20:09 -0500 Subject: [PATCH 014/189] From Coq -> From Stdlib --- examples/ITreePredicatesExample.v | 2 +- examples/IntroductionSolutions.v | 2 +- examples/LC.v | 2 +- examples/MultiThreadedPrinting.v | 2 +- examples/Nimp.v | 2 +- examples/STLC.v | 2 +- examples/extract-io/IO.v | 2 +- examples/extract-threads/ExtractThreadsExample.v | 2 +- extra/Dijkstra/DelaySpecMonad.v | 2 +- extra/Dijkstra/ITreeDijkstra.v | 2 +- extra/Dijkstra/IterRel.v | 2 +- extra/Dijkstra/PureITreeBasics.v | 2 +- extra/Dijkstra/StateIOTrace.v | 2 +- extra/Dijkstra/StateSpecT.v | 2 +- extra/Dijkstra/TracesIT.v | 2 +- extra/IForest.v | 2 +- extra/ITrace/ITraceBind.v | 2 +- extra/ITrace/ITraceFacts.v | 2 +- extra/ITrace/ITracePreds.v | 2 +- extra/ITrace/ITracePrefix.v | 2 +- extra/Secure/SecureEqEuttHalt.v | 2 +- extra/Secure/SecureEqProgInsens.v | 2 +- extra/Secure/SecureEqWcompat.v | 2 +- extra/Secure/SecureStateHandler.v | 2 +- extra/Secure/SecureStateHandlerPi.v | 2 +- extra/Secure/StrongBisimProper.v | 2 +- hoare_example/Imp.v | 2 +- hoare_example/ImpHoare.v | 2 +- hoare_example/ImpIO.v | 2 +- secure_example/CatTheory.v | 2 +- secure_example/Fin.v | 2 +- secure_example/KTreeFin.v | 2 +- secure_example/LabelledAsm.v | 2 +- secure_example/LabelledAsmCombinators.v | 2 +- secure_example/LabelledAsmHandler.v | 2 +- secure_example/LabelledImp.v | 2 +- secure_example/LabelledImp2Asm.v | 2 +- secure_example/LabelledImp2AsmCorrectness.v | 2 +- secure_example/LabelledImp2AsmNoninterferencePres.v | 2 +- secure_example/LabelledImpInline.v | 2 +- secure_example/LabelledImpInline2Asm.v | 2 +- secure_example/LabelledImpInline2AsmCorrectness.v | 2 +- secure_example/LabelledImpInline2AsmNoninterferencePres.v | 2 +- secure_example/LabelledImpInlineTypes.v | 2 +- secure_example/LabelledImpInlineTypesProgInsens.v | 2 +- secure_example/LabelledImpTypes.v | 2 +- secure_example/LabelledImpTypesProgInsens.v | 2 +- secure_example/Lattice.v | 2 +- secure_example/Utils_tutorial.v | 2 +- theories/Axioms.v | 6 +++--- theories/Basics/Basics.v | 4 ++-- theories/Basics/CategoryFacts.v | 2 +- theories/Basics/CategoryFunctor.v | 2 +- theories/Basics/CategoryKleisli.v | 2 +- theories/Basics/CategoryKleisliFacts.v | 2 +- theories/Basics/CategoryRelations.v | 2 +- theories/Basics/CategorySub.v | 2 +- theories/Basics/CategoryTheory.v | 2 +- theories/Basics/FunctionFacts.v | 2 +- theories/Basics/HeterogeneousRelations.v | 2 +- theories/Basics/Monad.v | 2 +- theories/Basics/MonadProp.v | 2 +- theories/Basics/MonadState.v | 2 +- theories/Core/KTree.v | 2 +- theories/Core/KTreeFacts.v | 2 +- theories/Eq/Eqit.v | 2 +- theories/Eq/Rutt.v | 2 +- theories/Eq/RuttFacts.v | 2 +- theories/Eq/Shallow.v | 2 +- theories/Eq/SimUpToTaus.v | 2 +- theories/Eq/UpToTaus.v | 2 +- theories/Events/Concurrency.v | 2 +- theories/Events/ExceptionFacts.v | 2 +- theories/Events/FailFacts.v | 2 +- theories/Events/Map.v | 2 +- theories/Events/MapDefaultFacts.v | 2 +- theories/Events/Nondeterminism.v | 2 +- theories/Events/Reader.v | 2 +- theories/Events/StateFacts.v | 2 +- theories/Events/Writer.v | 2 +- theories/Indexed/FunctionFacts.v | 2 +- theories/Indexed/Relation.v | 2 +- theories/Interp/Handler.v | 2 +- theories/Interp/HandlerFacts.v | 2 +- theories/Interp/InterpFacts.v | 2 +- theories/Interp/RecursionFacts.v | 2 +- theories/Interp/TranslateFacts.v | 2 +- theories/Props/EuttNoRet.v | 2 +- theories/Props/Finite.v | 2 +- theories/Props/HasPost.v | 2 +- theories/Props/Infinite.v | 2 +- theories/Props/Leaf.v | 2 +- theories/Simple.v | 2 +- tutorial/Asm.v | 2 +- tutorial/AsmCombinators.v | 2 +- tutorial/AsmOptimization.v | 2 +- tutorial/CatTheory.v | 2 +- tutorial/Fin.v | 2 +- tutorial/Imp.v | 2 +- tutorial/Imp2Asm.v | 2 +- tutorial/Imp2AsmCorrectness.v | 2 +- tutorial/Introduction.v | 2 +- tutorial/KTreeFin.v | 2 +- tutorial/Utils_tutorial.v | 2 +- tutorial/extract-imptest/ImpTest.v | 2 +- 105 files changed, 108 insertions(+), 108 deletions(-) diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index 56861f78..acbc059d 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -8,7 +8,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import +From Stdlib Require Import Morphisms. From Paco Require Import paco. diff --git a/examples/IntroductionSolutions.v b/examples/IntroductionSolutions.v index 3a6f9d89..f295cef9 100644 --- a/examples/IntroductionSolutions.v +++ b/examples/IntroductionSolutions.v @@ -13,7 +13,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith Lia List. diff --git a/examples/LC.v b/examples/LC.v index ad5c8c57..f3ae57bc 100644 --- a/examples/LC.v +++ b/examples/LC.v @@ -1,6 +1,6 @@ (* Big-step reduction of untyped lambda terms. *) -From Coq Require Import Arith. +From Stdlib Require Import Arith. From ExtLib.Structures Require Import Monad. diff --git a/examples/MultiThreadedPrinting.v b/examples/MultiThreadedPrinting.v index 3ab26fe5..015af628 100644 --- a/examples/MultiThreadedPrinting.v +++ b/examples/MultiThreadedPrinting.v @@ -1,7 +1,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import +From Stdlib Require Import String. From ITree Require Import diff --git a/examples/Nimp.v b/examples/Nimp.v index 66cbbc35..50f95f5b 100644 --- a/examples/Nimp.v +++ b/examples/Nimp.v @@ -1,6 +1,6 @@ (* A nondeterministic Imp *) -From Coq Require Import +From Stdlib Require Import Relations. From ITree Require Import diff --git a/examples/STLC.v b/examples/STLC.v index c16f44ed..685d0ef0 100644 --- a/examples/STLC.v +++ b/examples/STLC.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Arith Lia List. diff --git a/examples/extract-io/IO.v b/examples/extract-io/IO.v index 325664ce..48ca6dcd 100644 --- a/examples/extract-io/IO.v +++ b/examples/extract-io/IO.v @@ -1,4 +1,4 @@ -From Coq Require Import Arith. +From Stdlib Require Import Arith. From ITree Require Import ITree. Import ITreeNotations. diff --git a/examples/extract-threads/ExtractThreadsExample.v b/examples/extract-threads/ExtractThreadsExample.v index 440cae80..63c11a80 100644 --- a/examples/extract-threads/ExtractThreadsExample.v +++ b/examples/extract-threads/ExtractThreadsExample.v @@ -1,4 +1,4 @@ -From Coq Require ExtrOcamlBasic ExtrOcamlString. +From Stdlib Require ExtrOcamlBasic ExtrOcamlString. From ITreeExamples Require Import MultiThreadedPrinting. diff --git a/extra/Dijkstra/DelaySpecMonad.v b/extra/Dijkstra/DelaySpecMonad.v index 46ee81b5..16372a0b 100644 --- a/extra/Dijkstra/DelaySpecMonad.v +++ b/extra/Dijkstra/DelaySpecMonad.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index 87fde1a2..6fb065f2 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 40b22380..495e108e 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -1,4 +1,4 @@ -From Coq Require Import Arith Lia. +From Stdlib Require Import Arith Lia. From Paco Require Import paco. From ITree Require Import Axioms. diff --git a/extra/Dijkstra/PureITreeBasics.v b/extra/Dijkstra/PureITreeBasics.v index 8aeea503..8350da9a 100644 --- a/extra/Dijkstra/PureITreeBasics.v +++ b/extra/Dijkstra/PureITreeBasics.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/extra/Dijkstra/StateIOTrace.v b/extra/Dijkstra/StateIOTrace.v index 5d399fbe..03ead0e3 100644 --- a/extra/Dijkstra/StateIOTrace.v +++ b/extra/Dijkstra/StateIOTrace.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Arith String. diff --git a/extra/Dijkstra/StateSpecT.v b/extra/Dijkstra/StateSpecT.v index 1777cf7e..e2e62f8c 100644 --- a/extra/Dijkstra/StateSpecT.v +++ b/extra/Dijkstra/StateSpecT.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/extra/Dijkstra/TracesIT.v b/extra/Dijkstra/TracesIT.v index 8d7b35d3..0423656a 100644 --- a/extra/Dijkstra/TracesIT.v +++ b/extra/Dijkstra/TracesIT.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/extra/IForest.v b/extra/IForest.v index 48af2262..53890da2 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -24,7 +24,7 @@ From Paco Require Import paco. From ExtLib Require Import Structures.Functor. -From Coq Require Import +From Stdlib Require Import Relations Morphisms. diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 2e1abb6e..7fea0653 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms . diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index 828a8281..2dd3ccc3 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/extra/ITrace/ITracePreds.v b/extra/ITrace/ITracePreds.v index daf10d56..304248d8 100644 --- a/extra/ITrace/ITracePreds.v +++ b/extra/ITrace/ITracePreds.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms . diff --git a/extra/ITrace/ITracePrefix.v b/extra/ITrace/ITracePrefix.v index 47d5a2e8..afe3ac0b 100644 --- a/extra/ITrace/ITracePrefix.v +++ b/extra/ITrace/ITracePrefix.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms . diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 2c863927..2f9ad6e0 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Axioms diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index ffb44960..ee7c93f1 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Axioms diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index ddf6908d..28e25df8 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Axioms diff --git a/extra/Secure/SecureStateHandler.v b/extra/Secure/SecureStateHandler.v index 31a65198..5f7d9d4d 100644 --- a/extra/Secure/SecureStateHandler.v +++ b/extra/Secure/SecureStateHandler.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Basics.HeterogeneousRelations diff --git a/extra/Secure/SecureStateHandlerPi.v b/extra/Secure/SecureStateHandlerPi.v index 5a87a3c5..3ee93db4 100644 --- a/extra/Secure/SecureStateHandlerPi.v +++ b/extra/Secure/SecureStateHandlerPi.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Axioms ITree diff --git a/extra/Secure/StrongBisimProper.v b/extra/Secure/StrongBisimProper.v index e10560ac..629db825 100644 --- a/extra/Secure/StrongBisimProper.v +++ b/extra/Secure/StrongBisimProper.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import ITree diff --git a/hoare_example/Imp.v b/hoare_example/Imp.v index de66c30e..f37ee77c 100644 --- a/hoare_example/Imp.v +++ b/hoare_example/Imp.v @@ -39,7 +39,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith.PeanoNat Lists.List Strings.String diff --git a/hoare_example/ImpHoare.v b/hoare_example/ImpHoare.v index b689f31b..5fd6a249 100644 --- a/hoare_example/ImpHoare.v +++ b/hoare_example/ImpHoare.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Arith Lia (* nia *) Morphisms . diff --git a/hoare_example/ImpIO.v b/hoare_example/ImpIO.v index 1af468d4..b6dfa543 100644 --- a/hoare_example/ImpIO.v +++ b/hoare_example/ImpIO.v @@ -1,4 +1,4 @@ -From Coq Require Import String. +From Stdlib Require Import String. Inductive aexp := | AId : string -> aexp diff --git a/secure_example/CatTheory.v b/secure_example/CatTheory.v index 819b80e8..dc2bc761 100644 --- a/secure_example/CatTheory.v +++ b/secure_example/CatTheory.v @@ -1,5 +1,5 @@ (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/secure_example/Fin.v b/secure_example/Fin.v index 37d7f3c4..75ff461e 100644 --- a/secure_example/Fin.v +++ b/secure_example/Fin.v @@ -14,7 +14,7 @@ [Fun] and [ktree] on finite types (instead of arbitrary types). *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith Lia. diff --git a/secure_example/KTreeFin.v b/secure_example/KTreeFin.v index 91b610ff..fe239200 100644 --- a/secure_example/KTreeFin.v +++ b/secure_example/KTreeFin.v @@ -6,7 +6,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/secure_example/LabelledAsm.v b/secure_example/LabelledAsm.v index 27eb5eb9..605bab2e 100644 --- a/secure_example/LabelledAsm.v +++ b/secure_example/LabelledAsm.v @@ -5,7 +5,7 @@ by jumps. *) (* begin hide *) -From Coq Require Import Arith String Setoid. +From Stdlib Require Import Arith String Setoid. (* SAZ: Should we add ITreeMonad to ITree? *) From ITree Require Import diff --git a/secure_example/LabelledAsmCombinators.v b/secure_example/LabelledAsmCombinators.v index d009e604..71017aab 100644 --- a/secure_example/LabelledAsmCombinators.v +++ b/secure_example/LabelledAsmCombinators.v @@ -20,7 +20,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith List Program.Basics diff --git a/secure_example/LabelledAsmHandler.v b/secure_example/LabelledAsmHandler.v index 65c685d1..9583e599 100644 --- a/secure_example/LabelledAsmHandler.v +++ b/secure_example/LabelledAsmHandler.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import List Morphisms. diff --git a/secure_example/LabelledImp.v b/secure_example/LabelledImp.v index 9f1e5391..e7ce5460 100644 --- a/secure_example/LabelledImp.v +++ b/secure_example/LabelledImp.v @@ -1,4 +1,4 @@ -From Coq Require Import String. +From Stdlib Require Import String. From ITree Require Import ITree diff --git a/secure_example/LabelledImp2Asm.v b/secure_example/LabelledImp2Asm.v index 3c0def83..63e403de 100644 --- a/secure_example/LabelledImp2Asm.v +++ b/secure_example/LabelledImp2Asm.v @@ -17,7 +17,7 @@ *) (* begin hide *) -From Coq Require Import List. +From Stdlib Require Import List. Import ListNotations. From ITree Require Import ITree. diff --git a/secure_example/LabelledImp2AsmCorrectness.v b/secure_example/LabelledImp2AsmCorrectness.v index fd0a327e..07b49cfc 100644 --- a/secure_example/LabelledImp2AsmCorrectness.v +++ b/secure_example/LabelledImp2AsmCorrectness.v @@ -53,7 +53,7 @@ SAZ: This needs to be updated. (* begin hide *) -From Coq Require Import +From Stdlib Require Import Lia Arith String diff --git a/secure_example/LabelledImp2AsmNoninterferencePres.v b/secure_example/LabelledImp2AsmNoninterferencePres.v index 3362ba29..277c509a 100644 --- a/secure_example/LabelledImp2AsmNoninterferencePres.v +++ b/secure_example/LabelledImp2AsmNoninterferencePres.v @@ -1,4 +1,4 @@ -From Coq Require Import Program.Basics Morphisms. +From Stdlib Require Import Program.Basics Morphisms. From ITree Require Import ITree diff --git a/secure_example/LabelledImpInline.v b/secure_example/LabelledImpInline.v index 12fc8432..98641fb3 100644 --- a/secure_example/LabelledImpInline.v +++ b/secure_example/LabelledImpInline.v @@ -1,4 +1,4 @@ -From Coq Require Import String. +From Stdlib Require Import String. From ITree Require Import ITree diff --git a/secure_example/LabelledImpInline2Asm.v b/secure_example/LabelledImpInline2Asm.v index 5e13876f..f5e19869 100644 --- a/secure_example/LabelledImpInline2Asm.v +++ b/secure_example/LabelledImpInline2Asm.v @@ -1,4 +1,4 @@ -From Coq Require Import Arith Lia List. +From Stdlib Require Import Arith Lia List. From ITree Require Import ITree. diff --git a/secure_example/LabelledImpInline2AsmCorrectness.v b/secure_example/LabelledImpInline2AsmCorrectness.v index 47a00622..07f8c750 100644 --- a/secure_example/LabelledImpInline2AsmCorrectness.v +++ b/secure_example/LabelledImpInline2AsmCorrectness.v @@ -53,7 +53,7 @@ SAZ: This needs to be updated. (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith String Morphisms diff --git a/secure_example/LabelledImpInline2AsmNoninterferencePres.v b/secure_example/LabelledImpInline2AsmNoninterferencePres.v index 3de96ac6..7bebca36 100644 --- a/secure_example/LabelledImpInline2AsmNoninterferencePres.v +++ b/secure_example/LabelledImpInline2AsmNoninterferencePres.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms Program.Basics. +From Stdlib Require Import Morphisms Program.Basics. From ITree Require Import ITree diff --git a/secure_example/LabelledImpInlineTypes.v b/secure_example/LabelledImpInlineTypes.v index 14669385..a883e745 100644 --- a/secure_example/LabelledImpInlineTypes.v +++ b/secure_example/LabelledImpInlineTypes.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms String. +From Stdlib Require Import Morphisms String. From ITree Require Import ITree diff --git a/secure_example/LabelledImpInlineTypesProgInsens.v b/secure_example/LabelledImpInlineTypesProgInsens.v index a1ab5a6a..60d90eae 100644 --- a/secure_example/LabelledImpInlineTypesProgInsens.v +++ b/secure_example/LabelledImpInlineTypesProgInsens.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import ITree diff --git a/secure_example/LabelledImpTypes.v b/secure_example/LabelledImpTypes.v index cdc5040f..b04f5de2 100644 --- a/secure_example/LabelledImpTypes.v +++ b/secure_example/LabelledImpTypes.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms String. +From Stdlib Require Import Morphisms String. From ITree Require Import ITree diff --git a/secure_example/LabelledImpTypesProgInsens.v b/secure_example/LabelledImpTypesProgInsens.v index fc778e65..5efa12a9 100644 --- a/secure_example/LabelledImpTypesProgInsens.v +++ b/secure_example/LabelledImpTypesProgInsens.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import ITree diff --git a/secure_example/Lattice.v b/secure_example/Lattice.v index 2a7e09e5..a29f1f5b 100644 --- a/secure_example/Lattice.v +++ b/secure_example/Lattice.v @@ -1,4 +1,4 @@ -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree.Extra Require Import Secure.Labels. diff --git a/secure_example/Utils_tutorial.v b/secure_example/Utils_tutorial.v index 21368f6c..e0d3af34 100644 --- a/secure_example/Utils_tutorial.v +++ b/secure_example/Utils_tutorial.v @@ -14,7 +14,7 @@ *) (* begin hide *) -From Coq Require Import Lia Arith ZArith Ascii String List. +From Stdlib Require Import Lia Arith ZArith Ascii String List. From ExtLib Require Import Structures.Monad diff --git a/theories/Axioms.v b/theories/Axioms.v index 2efd869b..f13065e0 100644 --- a/theories/Axioms.v +++ b/theories/Axioms.v @@ -3,7 +3,7 @@ (** Other ITree modules should import this to avoid accidentally using more axioms elsewhere. *) -From Coq Require Import +From Stdlib Require Import Logic.Classical_Prop Logic.ClassicalChoice Logic.EqdepFacts @@ -11,7 +11,7 @@ From Coq Require Import . (* Must be imported to use [ddestruction] *) -From Coq Require Export +From Stdlib Require Export Program.Equality . @@ -32,7 +32,7 @@ Definition choice := ClassicalChoice.choice. Definition functional_extensionality := @FunctionalExtensionality.functional_extensionality. -(* From Coq.Logic.ChoiceFacts *) +(* From Stdlib.Logic.ChoiceFacts *) Definition GuardedFunctionalChoice_on {A B} := forall P : A -> Prop, forall R : A -> B -> Prop, inhabited B -> diff --git a/theories/Basics/Basics.v b/theories/Basics/Basics.v index d9899ef5..3dbba00b 100644 --- a/theories/Basics/Basics.v +++ b/theories/Basics/Basics.v @@ -3,10 +3,10 @@ (** Not specific to itrees. *) (* begin hide *) -From Coq Require +From Stdlib Require Ensembles. -From Coq Require Import +From Stdlib Require Import RelationClasses. From ExtLib Require Import diff --git a/theories/Basics/CategoryFacts.v b/theories/Basics/CategoryFacts.v index 6436229e..194d4848 100644 --- a/theories/Basics/CategoryFacts.v +++ b/theories/Basics/CategoryFacts.v @@ -1,7 +1,7 @@ (** * General facts about categories *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. From ITree.Basics Require Import diff --git a/theories/Basics/CategoryFunctor.v b/theories/Basics/CategoryFunctor.v index b794710e..659f8761 100644 --- a/theories/Basics/CategoryFunctor.v +++ b/theories/Basics/CategoryFunctor.v @@ -1,6 +1,6 @@ (** * Definition of a functor *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/theories/Basics/CategoryKleisli.v b/theories/Basics/CategoryKleisli.v index 6b8127c8..c0a26ec9 100644 --- a/theories/Basics/CategoryKleisli.v +++ b/theories/Basics/CategoryKleisli.v @@ -15,7 +15,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/theories/Basics/CategoryKleisliFacts.v b/theories/Basics/CategoryKleisliFacts.v index dbd582ad..f9dbf917 100644 --- a/theories/Basics/CategoryKleisliFacts.v +++ b/theories/Basics/CategoryKleisliFacts.v @@ -1,6 +1,6 @@ (** Proofs that the Kleisli category of a monad is in fact a category. *) -From Coq Require Import +From Stdlib Require Import Program Setoid Morphisms diff --git a/theories/Basics/CategoryRelations.v b/theories/Basics/CategoryRelations.v index be9e7e68..21ebc5ad 100644 --- a/theories/Basics/CategoryRelations.v +++ b/theories/Basics/CategoryRelations.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/theories/Basics/CategorySub.v b/theories/Basics/CategorySub.v index a0f156a3..a60633c6 100644 --- a/theories/Basics/CategorySub.v +++ b/theories/Basics/CategorySub.v @@ -3,7 +3,7 @@ (** The category described by a subset of objects of an existing category. *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/theories/Basics/CategoryTheory.v b/theories/Basics/CategoryTheory.v index 90f15adf..40544835 100644 --- a/theories/Basics/CategoryTheory.v +++ b/theories/Basics/CategoryTheory.v @@ -4,7 +4,7 @@ operations, this module describes their properties. *) (* begin hide *) -From Coq Require Import Setoid Morphisms. +From Stdlib Require Import Setoid Morphisms. From ITree.Basics Require Import CategoryOps diff --git a/theories/Basics/FunctionFacts.v b/theories/Basics/FunctionFacts.v index 6875ec33..0c419b93 100644 --- a/theories/Basics/FunctionFacts.v +++ b/theories/Basics/FunctionFacts.v @@ -1,7 +1,7 @@ (** * Theorems for [ITree.Basics.Function] *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/theories/Basics/HeterogeneousRelations.v b/theories/Basics/HeterogeneousRelations.v index 9a30794d..b7e12ce7 100644 --- a/theories/Basics/HeterogeneousRelations.v +++ b/theories/Basics/HeterogeneousRelations.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms Setoid Relation_Definitions diff --git a/theories/Basics/Monad.v b/theories/Basics/Monad.v index 68fc2f0c..1e455cb5 100644 --- a/theories/Basics/Monad.v +++ b/theories/Basics/Monad.v @@ -1,7 +1,7 @@ (** * Monad laws and associated typeclasses *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Export diff --git a/theories/Basics/MonadProp.v b/theories/Basics/MonadProp.v index 29de11c7..5f19960c 100644 --- a/theories/Basics/MonadProp.v +++ b/theories/Basics/MonadProp.v @@ -1,5 +1,5 @@ (* begin hide *) -From Coq Require Import +From Stdlib Require Import Ensembles Setoid Morphisms. diff --git a/theories/Basics/MonadState.v b/theories/Basics/MonadState.v index 40bee1c8..38ab65e9 100644 --- a/theories/Basics/MonadState.v +++ b/theories/Basics/MonadState.v @@ -1,5 +1,5 @@ (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/theories/Core/KTree.v b/theories/Core/KTree.v index 64a2e12a..d51a1b97 100644 --- a/theories/Core/KTree.v +++ b/theories/Core/KTree.v @@ -3,7 +3,7 @@ (** The Kleisli category of ITrees. *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index a84858e8..913cd074 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -1,7 +1,7 @@ (** * Facts about [aloop] and [loop] *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Classes.Morphisms Setoids.Setoid Relations.Relations. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e4651290..31633adc 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -15,7 +15,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Structures.Orders (* Hint Unfold is_true *) Program Setoid diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index c7e7d0f2..4b00d619 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -15,7 +15,7 @@ (** [rutt] is used to define the [trace_refine] relation in [ITree.ITrace.ITraceDefinition]. *) -From Coq Require Import +From Stdlib Require Import Morphisms . diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 0540170b..82dc4ad9 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -7,7 +7,7 @@ (** The main additions in this file are compatibility with [eutt], morphisms wrt. [REv] and [RAns], and an up-to principle. *) -From Coq Require Import +From Stdlib Require Import Program Setoid Morphisms diff --git a/theories/Eq/Shallow.v b/theories/Eq/Shallow.v index 8cfa2411..52afbf81 100644 --- a/theories/Eq/Shallow.v +++ b/theories/Eq/Shallow.v @@ -11,7 +11,7 @@ *) (* begin hide *) -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Core.ITreeDefinition. diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index 4210985b..cf05895c 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -17,7 +17,7 @@ From Paco Require Import paco. -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/theories/Eq/UpToTaus.v b/theories/Eq/UpToTaus.v index 325220b5..2e97288f 100644 --- a/theories/Eq/UpToTaus.v +++ b/theories/Eq/UpToTaus.v @@ -35,7 +35,7 @@ *) (* begin hide *) -From Coq Require Import Setoid Morphisms Relations. +From Stdlib Require Import Setoid Morphisms Relations. From Paco Require Import paco. From ITree Require Import diff --git a/theories/Events/Concurrency.v b/theories/Events/Concurrency.v index a8fd7272..072bb185 100644 --- a/theories/Events/Concurrency.v +++ b/theories/Events/Concurrency.v @@ -4,7 +4,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import List. +From Stdlib Require Import List. Import ListNotations. From ITree Require Import diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 0e840964..4199b019 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -1,5 +1,5 @@ (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ExtLib Require Import diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index 113b01db..5d89f660 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -1,7 +1,7 @@ (** * Theorems about Failure effects *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From Paco Require Import paco. diff --git a/theories/Events/Map.v b/theories/Events/Map.v index 64f6b904..0b55e242 100644 --- a/theories/Events/Map.v +++ b/theories/Events/Map.v @@ -4,7 +4,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import List. +From Stdlib Require Import List. Import ListNotations. From ExtLib.Structures Require Maps. diff --git a/theories/Events/MapDefaultFacts.v b/theories/Events/MapDefaultFacts.v index 7829dc30..99c1b53e 100644 --- a/theories/Events/MapDefaultFacts.v +++ b/theories/Events/MapDefaultFacts.v @@ -4,7 +4,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ExtLib Require Import Core.RelDec. diff --git a/theories/Events/Nondeterminism.v b/theories/Events/Nondeterminism.v index ad9f494a..b498e6ce 100644 --- a/theories/Events/Nondeterminism.v +++ b/theories/Events/Nondeterminism.v @@ -6,7 +6,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import List. +From Stdlib Require Import List. Import ListNotations. From ITree Require Import diff --git a/theories/Events/Reader.v b/theories/Events/Reader.v index 5acacbae..d2c9a825 100644 --- a/theories/Events/Reader.v +++ b/theories/Events/Reader.v @@ -6,7 +6,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import List. +From Stdlib Require Import List. Import ListNotations. From ITree Require Import diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index 09d190a3..ff136936 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -1,7 +1,7 @@ (** * Theorems about State effects *) (* begin hide *) -From Coq Require Import Program.Tactics Morphisms. +From Stdlib Require Import Program.Tactics Morphisms. From Paco Require Import paco. diff --git a/theories/Events/Writer.v b/theories/Events/Writer.v index 9cbff741..6aeebf80 100644 --- a/theories/Events/Writer.v +++ b/theories/Events/Writer.v @@ -6,7 +6,7 @@ Set Implicit Arguments. Set Contextual Implicit. -From Coq Require Import +From Stdlib Require Import List. Import ListNotations. diff --git a/theories/Indexed/FunctionFacts.v b/theories/Indexed/FunctionFacts.v index 4ceeb06b..f8ab4696 100644 --- a/theories/Indexed/FunctionFacts.v +++ b/theories/Indexed/FunctionFacts.v @@ -1,7 +1,7 @@ (** * Theorems for [ITree.Indexed.Function] *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/theories/Indexed/Relation.v b/theories/Indexed/Relation.v index 39c1e19f..3d2b0f67 100644 --- a/theories/Indexed/Relation.v +++ b/theories/Indexed/Relation.v @@ -1,7 +1,7 @@ (** * Relations on indexed types *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Relations Setoid. diff --git a/theories/Interp/Handler.v b/theories/Interp/Handler.v index 2518dc8c..8f8e0adb 100644 --- a/theories/Interp/Handler.v +++ b/theories/Interp/Handler.v @@ -4,7 +4,7 @@ form a category. *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 435a7647..f3fa1914 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -1,7 +1,7 @@ (** * Theorems for [ITree.Interp.Handler] *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms RelationClasses. diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 641fb146..086a3e45 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -7,7 +7,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Program Setoid Morphisms diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index 7301f36b..0e7de593 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -7,7 +7,7 @@ Require Import Paco.paco. -From Coq Require Import +From Stdlib Require Import Program.Tactics Setoid Morphisms. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index e4b62715..57990b83 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -1,7 +1,7 @@ (** * Theorems about [Interp.translate] *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Program Setoid Morphisms diff --git a/theories/Props/EuttNoRet.v b/theories/Props/EuttNoRet.v index ccc11e42..13d7f402 100644 --- a/theories/Props/EuttNoRet.v +++ b/theories/Props/EuttNoRet.v @@ -1,4 +1,4 @@ -From Coq Require Import +From Stdlib Require Import Morphisms . diff --git a/theories/Props/Finite.v b/theories/Props/Finite.v index d803c230..67f44a30 100644 --- a/theories/Props/Finite.v +++ b/theories/Props/Finite.v @@ -10,7 +10,7 @@ From ITree Require Import From ITree.Events Require Import Nondeterminism Exception. (* For counterexamples *) From Paco Require Import paco. -From Coq Require Import Morphisms Basics Program.Equality. +From Stdlib Require Import Morphisms Basics Program.Equality. Import ITree. Import ITreeNotations. Import LeafNotations. diff --git a/theories/Props/HasPost.v b/theories/Props/HasPost.v index cb42b484..c75a50c1 100644 --- a/theories/Props/HasPost.v +++ b/theories/Props/HasPost.v @@ -1,6 +1,6 @@ (* begin hide *) From Paco Require Import paco. -From Coq Require Import Morphisms. +From Stdlib Require Import Morphisms. From ITree Require Import Basics.Utils ITree diff --git a/theories/Props/Infinite.v b/theories/Props/Infinite.v index babd8a82..be296402 100644 --- a/theories/Props/Infinite.v +++ b/theories/Props/Infinite.v @@ -4,7 +4,7 @@ - [any_infinite]: there exists an infinite branch. *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms RelationClasses. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index aebbb2e3..47924978 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -13,7 +13,7 @@ From ITree Require Import Props.HasPost. From Paco Require Import paco. -From Coq Require Import Morphisms Basics Program.Equality. +From Stdlib Require Import Morphisms Basics Program.Equality. Import ITree. Import ITreeNotations. (* end hide *) diff --git a/theories/Simple.v b/theories/Simple.v index 254097d1..bad559d5 100644 --- a/theories/Simple.v +++ b/theories/Simple.v @@ -3,7 +3,7 @@ (* begin hide *) Set Warnings "-notation-overridden". -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/tutorial/Asm.v b/tutorial/Asm.v index aa4d69df..f2db2ba0 100644 --- a/tutorial/Asm.v +++ b/tutorial/Asm.v @@ -5,7 +5,7 @@ by jumps. *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Strings.String Program.Basics ZArith.ZArith diff --git a/tutorial/AsmCombinators.v b/tutorial/AsmCombinators.v index c4f827c6..96af340d 100644 --- a/tutorial/AsmCombinators.v +++ b/tutorial/AsmCombinators.v @@ -20,7 +20,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import List Strings.String Program.Basics diff --git a/tutorial/AsmOptimization.v b/tutorial/AsmOptimization.v index 712f3251..5ea4a264 100644 --- a/tutorial/AsmOptimization.v +++ b/tutorial/AsmOptimization.v @@ -1,7 +1,7 @@ (* begin hide *) Require Import Psatz. -From Coq Require Import +From Stdlib Require Import Lists.List Strings.String Morphisms diff --git a/tutorial/CatTheory.v b/tutorial/CatTheory.v index 8b2ecaa5..af072873 100644 --- a/tutorial/CatTheory.v +++ b/tutorial/CatTheory.v @@ -1,5 +1,5 @@ (* begin hide *) -From Coq Require Import +From Stdlib Require Import Morphisms. From ITree Require Import diff --git a/tutorial/Fin.v b/tutorial/Fin.v index 37d7f3c4..75ff461e 100644 --- a/tutorial/Fin.v +++ b/tutorial/Fin.v @@ -14,7 +14,7 @@ [Fun] and [ktree] on finite types (instead of arbitrary types). *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith Lia. diff --git a/tutorial/Imp.v b/tutorial/Imp.v index ef832efc..3c0559a0 100644 --- a/tutorial/Imp.v +++ b/tutorial/Imp.v @@ -39,7 +39,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith.PeanoNat Lists.List Strings.String diff --git a/tutorial/Imp2Asm.v b/tutorial/Imp2Asm.v index 612f1194..72a7d7a9 100644 --- a/tutorial/Imp2Asm.v +++ b/tutorial/Imp2Asm.v @@ -19,7 +19,7 @@ (* begin hide *) From ITreeTutorial Require Import Imp Asm Fin Utils_tutorial AsmCombinators. -From Coq Require Import +From Stdlib Require Import Psatz List String diff --git a/tutorial/Imp2AsmCorrectness.v b/tutorial/Imp2AsmCorrectness.v index 88a97b61..84505f1f 100644 --- a/tutorial/Imp2AsmCorrectness.v +++ b/tutorial/Imp2AsmCorrectness.v @@ -54,7 +54,7 @@ SAZ: This needs to be updated. (* begin hide *) From ITreeTutorial Require Import Imp Asm Utils_tutorial AsmCombinators Imp2Asm Fin KTreeFin. -From Coq Require Import +From Stdlib Require Import Psatz Strings.String List diff --git a/tutorial/Introduction.v b/tutorial/Introduction.v index f76ab318..92d6d24d 100644 --- a/tutorial/Introduction.v +++ b/tutorial/Introduction.v @@ -8,7 +8,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Arith Lia List. diff --git a/tutorial/KTreeFin.v b/tutorial/KTreeFin.v index 93baa46f..de55fee1 100644 --- a/tutorial/KTreeFin.v +++ b/tutorial/KTreeFin.v @@ -6,7 +6,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Setoid Morphisms. diff --git a/tutorial/Utils_tutorial.v b/tutorial/Utils_tutorial.v index c9e0eacb..75e490d2 100644 --- a/tutorial/Utils_tutorial.v +++ b/tutorial/Utils_tutorial.v @@ -14,7 +14,7 @@ *) (* begin hide *) -From Coq Require Import +From Stdlib Require Import Ascii Strings.String List diff --git a/tutorial/extract-imptest/ImpTest.v b/tutorial/extract-imptest/ImpTest.v index ce497c0b..1a866a97 100644 --- a/tutorial/extract-imptest/ImpTest.v +++ b/tutorial/extract-imptest/ImpTest.v @@ -1,6 +1,6 @@ From ITree Require Import ITree. From ITreeTutorial Require Import Imp. -From Coq Require Import NArith String. +From Stdlib Require Import NArith String. Local Open Scope string_scope. From dd3d4188ba2cc9cfe034e5f6111ea7d508d27cb3 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:20:50 -0500 Subject: [PATCH 015/189] Removed Core Utils.v, moved defs to Basics Utils.v --- theories/Basics/Utils.v | 40 +++++++++++++++++++++++ theories/Core/ITreeDefinition.v | 2 +- theories/Core/Utils.v | 56 --------------------------------- 3 files changed, 41 insertions(+), 57 deletions(-) delete mode 100644 theories/Core/Utils.v diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 9bfcde64..c917a239 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -1,7 +1,16 @@ +#[global] Set Warnings "-intuition-auto-with-star". + +From Coinduction Require Import all. +Require Import Program.Tactics. + From Paco Require Import paco. Ltac inv H := inversion H; clear H; subst. +Ltac copy h := + let foo := fresh "cpy" in + assert (foo := h). + Global Tactic Notation "intros !" := repeat intro. Ltac flatten_goal := @@ -94,6 +103,8 @@ Ltac saturate H := clear H; crunch end. +(* RTODO: Deprecate these *) + Lemma pacobot1 (T0 : Type) (gf : rel1 T0 -> rel1 T0) (r : rel1 T0) : paco1 gf bot1 <1= paco1 gf r. Proof. @@ -105,3 +116,32 @@ Lemma pacobot2 (T0 : Type) (T1 : T0 -> Type) (gf : rel2 T0 T1 -> rel2 T0 T1) (r Proof. intros x0 x1 H. eapply (paco2_mon _ H); contradiction. Qed. + +(* [coinduction]-like tactics *) + +(* A smarter version of this should be part of the [coinduction] library *) + +Ltac step_ := + match goal with + | |- gfp ?b ?x ?y ?z => apply (proj1 (gfp_fp b x y z)) + | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) + | |- gfp ?b ?x ?y => apply (proj1 (gfp_fp b x y)) + | |- elem ?R ?x ?y => apply (b_chain R x y) + | |- gfp ?b ?x => apply (proj1 (gfp_fp b x)) + | |- elem ?R ?x => apply (b_chain R x) + end. + +Ltac step := first [step_ | red; step_]. + +Ltac step_in H := + match type of H with + | gfp ?b ?x ?y ?z => apply (gfp_fp b x y z) in H + | gfp ?b ?x ?y => apply (gfp_fp b x y) in H + | gfp ?b ?x => apply (gfp_fp b x) in H + | _ => red in H; step_in H + end. +Tactic Notation "step" "in" ident(H) := step_in H. + +(* Oft-used induction tactic for general IHs. *) +Tactic Notation "hinduction" hyp(IND) "before" hyp(H) + := move IND before H; revert_until IND; induction IND. diff --git a/theories/Core/ITreeDefinition.v b/theories/Core/ITreeDefinition.v index de367332..d9a3fac6 100644 --- a/theories/Core/ITreeDefinition.v +++ b/theories/Core/ITreeDefinition.v @@ -6,7 +6,7 @@ Require Import ExtLib.Structures.Applicative. Require Import ExtLib.Structures.Monad. From ITree Require Import Basics. -From ITree Require Export Core.Utils. +From ITree Require Export Basics.Utils. Set Implicit Arguments. Set Contextual Implicit. Set Primitive Projections. diff --git a/theories/Core/Utils.v b/theories/Core/Utils.v deleted file mode 100644 index deb79822..00000000 --- a/theories/Core/Utils.v +++ /dev/null @@ -1,56 +0,0 @@ -#[global] Set Warnings "-intuition-auto-with-star". - -From Coinduction Require Import all. -Require Import Program.Tactics. - - -Ltac inverts h := - inversion h; subst; clear h. - - -(* Ltac invert := - match goal with - | h : existT _ _ _ = existT _ _ _ |- _ => dependent induction h - end. *) - -Ltac copy h := - let foo := fresh "cpy" in - assert (foo := h). - -Ltac break := - repeat match goal with - | h : _ \/ _ |- _ => destruct h - | h : _ /\ _ |- _ => destruct h - | h : exists x, _ |- _ => destruct h - end. - -Ltac break_match_in H := - match type of H with - | context [ match ?x with _ => _ end ] => destruct x eqn:? end. - -(* A smarter version of this should be part of the [coinduction] library *) - -Ltac step_ := - match goal with - | |- gfp ?b ?x ?y ?z => apply (proj1 (gfp_fp b x y z)) - | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) - | |- gfp ?b ?x ?y => apply (proj1 (gfp_fp b x y)) - | |- elem ?R ?x ?y => apply (b_chain R x y) - | |- gfp ?b ?x => apply (proj1 (gfp_fp b x)) - | |- elem ?R ?x => apply (b_chain R x) - end. - -Ltac step := first [step_ | red; step_]. - -Ltac step_in H := - match type of H with - | gfp ?b ?x ?y ?z => apply (gfp_fp b x y z) in H - | gfp ?b ?x ?y => apply (gfp_fp b x y) in H - | gfp ?b ?x => apply (gfp_fp b x) in H - | _ => red in H; step_in H - end. -Tactic Notation "step" "in" ident(H) := step_in H. - - -Tactic Notation "hinduction" hyp(IND) "before" hyp(H) - := move IND before H; revert_until IND; induction IND. From 226b47da6d9c7b82882e16f033908d832aa0319e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:51:23 -0500 Subject: [PATCH 016/189] Eqit.v documentation (1) --- theories/Eq/Eqit.v | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 31633adc..65ce51df 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -35,13 +35,8 @@ From Coinduction Require Import all. Local Open Scope itree_scope. (* end hide *) -(* RTODO: REWRITE THIS WITH POUS COINDUCTION *) - - (* RTODO: remove these notes. they will be useful for now. - - ------------------------------------------------------------ @@ -62,9 +57,9 @@ that look like paco but do not require wcompat and are ammenable to enhanced relational properties. *) -Search gfp. -(* we want gfp_fp. *) + (** ** Coinductive reasoning with Paco *) +(* RTODO: REWRITE THIS WITH POUS COINDUCTION *) (** Similarly to the way we deal with cofixpoints explained in [Core.ITreeDefinition], coinductive properties are defined in two steps, From 0db57fa3aee76822b78eac57c7c114535638dd63 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:51:45 -0500 Subject: [PATCH 017/189] Eqit documentation (2) --- theories/Eq/Eqit.v | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 65ce51df..6a0d7138 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -79,6 +79,11 @@ enhanced relational properties. instead encoding a form of productivity visibly in types. *) +(* We coerce [b1] and [b2] in [eqitF] (below) from [bool] to [Prop]. This makes +it slightly easier to write and automate mechanized proofs about [eqit]: we have +hypotheses of simply [b1] rather than [b1 = true]. *) + + Local Coercion is_true : bool >-> Sortclass. Section eqit. @@ -145,11 +150,6 @@ Section eqit. Definition eqit_mon b1 b2 : mon (itree E R1 -> itree E R2 -> Prop) := {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. -Search gfp. -(* here, build a tactic for an analog to punfold *) - - - Definition eqit b1 b2 : itree E R1 -> itree E R2 -> Prop := gfp (eqit_mon b1 b2). (** Strong bisimulation on itrees. If [eqit RR t1 t2], From ff654892c612496897dada4d4bf5d4086becd8a1 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:52:00 -0500 Subject: [PATCH 018/189] Proper proofs in Eqit.v --- theories/Eq/Eqit.v | 51 +++++++++++----------------------------------- 1 file changed, 12 insertions(+), 39 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 6a0d7138..89c106db 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -325,47 +325,20 @@ Qed. : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). Proof with auto with itree. repeat red. - intros r1 r2. intros. subst. + intros. subst. split. - - revert y1 y2. unfold eqit at 2. coinduction R CIH. repeat intro. - (* why doesn't step work here? *) - cbn. + - revert_until y1. unfold eqit at 2. coinduction R CIH. intros. + cbn. (* need to get rid of gfp in H0 so we can do induction on it *) red in H0. - Search gfp. - (* THE GOLD *) - apply (gfp_fp (eqit_mon r1 y y0) y1 y2) in H0. - fail. - (* assert *) - - (* one idea: derive elem from gfp *) - (* specialize (sub_gfp_Chain R) as sub. *) - - unfold eqit_. - - specialize (CIH _ _ H0). - - (* want to rewrite using eqitF_Proper *) - -Admitted. -(* - step. - pstep. punfold H0. red in H0. red. - hinduction H0 before CIH; intros... - + apply EqRet. apply H. assumption. - + apply EqTau. right. apply CIH. pclearbot. pinversion REL... - + apply EqVis. intros. red. right. apply CIH. - specialize (REL v). - red in REL. pclearbot. pinversion REL... - - revert_until y1. pcofix CIH. intros. - pstep. punfold H0. red in H0. red. - hinduction H0 before CIH; intros... - + apply EqRet. apply H. assumption. - + apply EqTau. right. apply CIH. pclearbot. pinversion REL... - + apply EqVis. intros. red. right. apply CIH. - specialize (REL v). - red in REL. pclearbot. pinversion REL... -Qed. + step in H0. red. + hinduction H0 before CIH; intros... + econstructor. now apply H. + - revert_until y1. unfold eqit at -1. coinduction R CIH. intros. + cbn; red. step in H0. + hinduction H0 before CIH... + econstructor; now apply H. +Qed. #[global] Instance eutt_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). @@ -375,7 +348,7 @@ Proof. - rewrite <- H. assumption. - rewrite H. assumption. Qed. - +(* Definition flip_clo {A B C} clo r := @flip A B C (clo (@flip B A C r)). From 5762fc4a32ae9f988fca084f0eddd9b06c745dbb Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 17:52:09 -0500 Subject: [PATCH 019/189] Fixed build --- .Makefile.d | 192 ++++++++++ Makefile | 1024 +++++++++++++++++++++++++++++++++++++++++++++---- Makefile.conf | 71 ++++ 3 files changed, 1223 insertions(+), 64 deletions(-) create mode 100644 .Makefile.d create mode 100644 Makefile.conf diff --git a/.Makefile.d b/.Makefile.d new file mode 100644 index 00000000..3e17e708 --- /dev/null +++ b/.Makefile.d @@ -0,0 +1,192 @@ +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile b/Makefile index 0b8899c7..2784ed89 100644 --- a/Makefile +++ b/Makefile @@ -1,69 +1,965 @@ -.PHONY: clean all coq test tests examples tutorial hoare_example secure_example install uninstall depgraph for-dune +########################################################################## +## # The Rocq Prover / The Rocq Development Team ## +## v # Copyright INRIA, CNRS and contributors ## +## /dev/null 2>/dev/null; echo $$?)) +STDTIME?=command time -f $(TIMEFMT) +else +ifeq (0,$(shell gtime -f "" true >/dev/null 2>/dev/null; echo $$?)) +STDTIME?=gtime -f $(TIMEFMT) +else +STDTIME?=command time +endif +endif +else +STDTIME?=command time -f $(TIMEFMT) +endif + +COQBIN?= +ifneq (,$(COQBIN)) +# add an ending / +COQBIN:=$(COQBIN)/ +endif + +# Coq binaries +ROCQ ?= "$(COQBIN)rocq" +COQC ?= "$(COQBIN)rocq" c +COQTOP ?= "$(COQBIN)rocq" repl +COQCHK ?= "$(COQBIN)rocqchk" +COQNATIVE ?= "$(COQBIN)rocq" native-precompile +COQDEP ?= "$(COQBIN)rocq" dep +COQDOC ?= "$(COQBIN)rocq" doc +COQPP ?= "$(COQBIN)rocq" pp-mlg +COQMKFILE ?= "$(COQBIN)rocq" makefile +OCAMLLIBDEP ?= "$(COQBIN)ocamllibdep" + +# Timing scripts +COQMAKE_ONE_TIME_FILE ?= "$(COQCORELIB)/tools/make-one-time-file.py" +COQMAKE_BOTH_TIME_FILES ?= "$(COQCORELIB)/tools/make-both-time-files.py" +COQMAKE_BOTH_SINGLE_TIMING_FILES ?= "$(COQCORELIB)/tools/make-both-single-timing-files.py" +BEFORE ?= +AFTER ?= + +# OCaml binaries +CAMLC ?= "$(OCAMLFIND)" ocamlc -c +CAMLOPTC ?= "$(OCAMLFIND)" opt -c +CAMLLINK ?= "$(OCAMLFIND)" ocamlc -linkall +CAMLOPTLINK ?= "$(OCAMLFIND)" opt -linkall +CAMLDOC ?= "$(OCAMLFIND)" ocamldoc +CAMLDEP ?= "$(OCAMLFIND)" ocamldep -slash -ml-synonym .mlpack + +# DESTDIR is prepended to all installation paths +DESTDIR ?= + +# Debug builds, typically -g to OCaml, -debug to Rocq. +CAMLDEBUG ?= +COQDEBUG ?= + +# Extra packages to be linked in (as in findlib -package) +CAMLPKGS ?= +FINDLIBPKGS = -package rocq-runtime.plugins.ltac $(CAMLPKGS) + +# Option for making timing files +TIMING?= +# Option for changing sorting of timing output file +TIMING_SORT_BY ?= auto +# Option for changing the fuzz parameter on the output file +TIMING_FUZZ ?= 0 +# Option for changing whether to use real or user time for timing tables +TIMING_REAL?= +# Option for including the memory column(s) +TIMING_INCLUDE_MEM?= +# Option for sorting by the memory column +TIMING_SORT_BY_MEM?= +# Output file names for timed builds +TIME_OF_BUILD_FILE ?= time-of-build.log +TIME_OF_BUILD_BEFORE_FILE ?= time-of-build-before.log +TIME_OF_BUILD_AFTER_FILE ?= time-of-build-after.log +TIME_OF_PRETTY_BUILD_FILE ?= time-of-build-pretty.log +TIME_OF_PRETTY_BOTH_BUILD_FILE ?= time-of-build-both.log +TIME_OF_PRETTY_BUILD_EXTRA_FILES ?= - # also output to the command line + +TGTS ?= + +# Retro compatibility (DESTDIR is standard on Unix, DSTROOT is not) +ifdef DSTROOT +DESTDIR := $(DSTROOT) +endif + +# Substitution of the path by appending $(DESTDIR) if needed. +# The variable $(COQMF_WINDRIVE) can be needed for Cygwin environments. +windrive_path = $(if $(COQMF_WINDRIVE),$(subst $(COQMF_WINDRIVE),/,$(1)),$(1)) +destination_path = $(if $(DESTDIR),$(DESTDIR)/$(call windrive_path,$(1)),$(1)) + +# Installation paths of libraries and documentation. +COQLIBINSTALL ?= $(call destination_path,$(COQLIB)/user-contrib) +COQDOCINSTALL ?= $(call destination_path,$(DOCDIR)/coq/user-contrib) +COQPLUGININSTALL ?= $(call destination_path,$(COQCORELIB)/..) +COQTOPINSTALL ?= $(call destination_path,$(COQLIB)/toploop) # FIXME: Unused variable? + +# findlib files installation +FINDLIBPREINST= mkdir -p "$(COQPLUGININSTALL)/" +FINDLIBDESTDIR= -destdir "$(COQPLUGININSTALL)/" + +# we need to move out of sight $(METAFILE) otherwise findlib thinks the +# package is already installed +findlib_install = \ + $(HIDE)if [ "$(METAFILE)" ]; then \ + $(FINDLIBPREINST) && \ + mv "$(METAFILE)" "$(METAFILE).skip" ; \ + "$(OCAMLFIND)" install $(2) $(FINDLIBDESTDIR) $(FINDLIBPACKAGE) $(1); \ + rc=$$?; \ + mv "$(METAFILE).skip" "$(METAFILE)"; \ + exit $$rc; \ + fi +findlib_remove = \ + $(HIDE)if [ ! -z "$(METAFILE)" ]; then\ + "$(OCAMLFIND)" remove $(FINDLIBDESTDIR) $(FINDLIBPACKAGE); \ + fi + + +########## End of parameters ################################################## +# What follows may be relevant to you only if you need to +# extend this Makefile. If so, look for 'Extension point' here and +# put in Makefile.local double colon rules accordingly. +# E.g. to perform some work after the all target completes you can write +# +# post-all:: +# echo "All done!" +# +# in Makefile.local +# +############################################################################### + + + + +# Flags ####################################################################### +# +# We define a bunch of variables combining the parameters. +# To add additional flags to coq, coqchk or coqdoc, set the +# {COQ,COQCHK,COQDOC}EXTRAFLAGS variable to whatever you want to add. +# To overwrite the default choice and set your own flags entirely, set the +# {COQ,COQCHK,COQDOC}FLAGS variable. + +SHOW := $(if $(VERBOSE),@true "",@echo "") +HIDE := $(if $(VERBOSE),,@) + +TIMER=$(if $(TIMED), $(STDTIME), $(TIMECMD)) + +OPT?= + +# The DYNLIB variable is used by "coqdep -dyndep var" in .v.d +ifeq '$(OPT)' '-byte' +USEBYTE:=true +DYNLIB:=.cma +else +USEBYTE:= +DYNLIB:=.cmxs +endif + +# these variables are meant to be overridden if you want to add *extra* flags +COQEXTRAFLAGS?= +COQCHKEXTRAFLAGS?= +COQDOCEXTRAFLAGS?= + +# Find the last argument of the form "-native-compiler FLAG" +COQUSERNATIVEFLAG:=$(strip \ +$(subst -native-compiler-,,\ +$(lastword \ +$(filter -native-compiler-%,\ +$(subst -native-compiler ,-native-compiler-,\ +$(strip $(COQEXTRAFLAGS))))))) + +COQFILTEREDEXTRAFLAGS:=$(strip \ +$(filter-out -native-compiler-%,\ +$(subst -native-compiler ,-native-compiler-,\ +$(strip $(COQEXTRAFLAGS))))) + +COQACTUALNATIVEFLAG:=$(lastword $(COQMF_COQ_NATIVE_COMPILER_DEFAULT) $(COQMF_COQPROJECTNATIVEFLAG) $(COQUSERNATIVEFLAG)) + +ifeq '$(COQACTUALNATIVEFLAG)' 'yes' + COQNATIVEFLAG="-w" "-deprecated-native-compiler-option" "-native-compiler" "ondemand" + COQDONATIVE="yes" +else +ifeq '$(COQACTUALNATIVEFLAG)' 'ondemand' + COQNATIVEFLAG="-w" "-deprecated-native-compiler-option" "-native-compiler" "ondemand" + COQDONATIVE="no" +else + COQNATIVEFLAG="-w" "-deprecated-native-compiler-option" "-native-compiler" "no" + COQDONATIVE="no" +endif +endif + +# these flags do NOT contain the libraries, to make them easier to overwrite +COQFLAGS?=-q $(OTHERFLAGS) $(COQFILTEREDEXTRAFLAGS) $(COQNATIVEFLAG) +COQCHKFLAGS?=-silent -o $(COQCHKEXTRAFLAGS) +COQDOCFLAGS?=-interpolate -utf8 $(COQDOCEXTRAFLAGS) + +COQDOCLIBS?=$(COQLIBS_NOML) + +# The version of Coq being run and the version of rocq makefile that +# generated this makefile +# NB --print-version is not in the rocq shim +COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) +COQMAKEFILE_VERSION:=9.0.1 + +# COQ_SRC_SUBDIRS is for user-overriding, usually to add +# `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for +# Coq's own core libraries, which should be replaced by ocamlfind +# options at some point. +COQ_SRC_SUBDIRS?= +COQSRCLIBS?= $(foreach d,$(COQ_SRC_SUBDIRS), -I "$(COQLIB)/$(d)") + +CAMLFLAGS+=$(OCAMLLIBS) $(COQSRCLIBS) +# ocamldoc fails with unknown argument otherwise +CAMLDOCFLAGS:=$(filter-out -annot, $(filter-out -bin-annot, $(CAMLFLAGS))) +CAMLFLAGS+=$(OCAMLWARN) + +ifneq (,$(TIMING)) + ifeq (after,$(TIMING)) + TIMING_EXT=after-timing + else + ifeq (before,$(TIMING)) + TIMING_EXT=before-timing + else + TIMING_EXT=timing + endif + endif + TIMING_ARG=-time-file $<.$(TIMING_EXT) +else + TIMING_ARG= +endif + +ifneq (,$(PROFILING)) + PROFILE_ARG=-profile $@.prof.json + PROFILE_ZIP=gzip -f $@.prof.json +else + PROFILE_ARG= + PROFILE_ZIP=true +endif + +# Files ####################################################################### +# +# We here define a bunch of variables about the files being part of the +# Rocq project in order to ease the writing of build target and build rules + +VDFILE := .Makefile.d + +ALLSRCFILES := \ + $(MLGFILES) \ + $(MLFILES) \ + $(MLPACKFILES) \ + $(MLLIBFILES) \ + $(MLIFILES) + +# helpers +vo_to_obj = $(addsuffix .o,\ + $(filter-out Warning: Error:,\ + $(shell $(COQTOP) -q -noinit -batch -quiet -print-mod-uid $(1)))) +strip_dotslash = $(patsubst ./%,%,$(1)) + +# without this we get undefined variables in the expansion for the +# targets of the [deprecated,use-mllib-or-mlpack] rule +with_undef = $(if $(filter-out undefined, $(origin $(1))),$($(1))) + +VO = vo +VOS = vos + +VOFILES = $(VFILES:.v=.$(VO)) +GLOBFILES = $(VFILES:.v=.glob) +HTMLFILES = $(VFILES:.v=.html) +GHTMLFILES = $(VFILES:.v=.g.html) +BEAUTYFILES = $(addsuffix .beautified,$(VFILES)) +TEXFILES = $(VFILES:.v=.tex) +GTEXFILES = $(VFILES:.v=.g.tex) +CMOFILES = \ + $(MLGFILES:.mlg=.cmo) \ + $(MLFILES:.ml=.cmo) \ + $(MLPACKFILES:.mlpack=.cmo) +CMXFILES = $(CMOFILES:.cmo=.cmx) +OFILES = $(CMXFILES:.cmx=.o) +CMAFILES = $(MLLIBFILES:.mllib=.cma) $(MLPACKFILES:.mlpack=.cma) +CMXAFILES = $(CMAFILES:.cma=.cmxa) +CMIFILES = \ + $(CMOFILES:.cmo=.cmi) \ + $(MLIFILES:.mli=.cmi) +# the /if/ is because old _CoqProject did not list a .ml(pack|lib) but just +# a .mlg file +CMXSFILES = \ + $(MLPACKFILES:.mlpack=.cmxs) \ + $(CMXAFILES:.cmxa=.cmxs) \ + $(if $(MLPACKFILES)$(CMXAFILES),,\ + $(MLGFILES:.mlg=.cmxs) $(MLFILES:.ml=.cmxs)) + +# files that are packed into a plugin (no extension) +PACKEDFILES = \ + $(call strip_dotslash, \ + $(foreach lib, \ + $(call strip_dotslash, \ + $(MLPACKFILES:.mlpack=_MLPACK_DEPENDENCIES)),$(call with_undef,$(lib)))) +# files that are archived into a .cma (mllib) +LIBEDFILES = \ + $(call strip_dotslash, \ + $(foreach lib, \ + $(call strip_dotslash, \ + $(MLLIBFILES:.mllib=_MLLIB_DEPENDENCIES)),$(call with_undef,$(lib)))) +CMIFILESTOINSTALL = $(filter-out $(addsuffix .cmi,$(PACKEDFILES)),$(CMIFILES)) +CMOFILESTOINSTALL = $(filter-out $(addsuffix .cmo,$(PACKEDFILES)),$(CMOFILES)) +OBJFILES = $(call vo_to_obj,$(VOFILES)) +ALLNATIVEFILES = \ + $(OBJFILES:.o=.cmi) \ + $(OBJFILES:.o=.cmx) \ + $(OBJFILES:.o=.cmxs) +FINDLIBPACKAGE=$(patsubst .%,%,$(suffix $(METAFILE))) + +# trick: wildcard filters out non-existing files, so that `install` doesn't show +# warnings and `clean` doesn't pass to rm a list of files that is too long for +# the shell. +NATIVEFILES = $(wildcard $(ALLNATIVEFILES)) +FILESTOINSTALL = \ + $(VOFILES) \ + $(VFILES) \ + $(GLOBFILES) \ + $(NATIVEFILES) +FINDLIBFILESTOINSTALL = \ + $(CMIFILESTOINSTALL) +ifeq '$(HASNATDYNLINK)' 'true' +DO_NATDYNLINK = yes +FINDLIBFILESTOINSTALL += $(CMXSFILES) $(CMXAFILES) $(CMOFILESTOINSTALL:.cmo=.cmx) +else +DO_NATDYNLINK = +endif + +ALLDFILES = $(addsuffix .d,$(ALLSRCFILES)) $(VDFILE) + +# Compilation targets ######################################################### all: - # Build the library before tests - $(MAKE) coq - $(MAKE) test - $(MAKE) hoare_example - $(MAKE) secure_example - -install: Makefile.coq coq - $(MAKE) -f $< $@ - -uninstall: Makefile.coq - $(MAKE) -f $< $@ - -test: examples tests - -tests: - $(MAKE) -C tests - $(MAKE) -C tutorial test - -examples: - $(MAKE) -C examples - -tutorial: - $(MAKE) -C tutorial - -hoare_example: - $(MAKE) -C hoare_example - -secure_example: - $(MAKE) -C secure_example - -clean: clean-coq - $(RM) _CoqProject - $(MAKE) -C tests clean - $(MAKE) -C examples clean - $(MAKE) -C tutorial clean - $(MAKE) -C hoare_example clean - $(MAKE) -C secure_example clean - -_CoqProject: $(COQPATHFILE) _CoqProject.itree _CoqProject.extra Makefile - @ echo "# Generating _CoqProject" - @ rm -f _CoqProject - @ echo "# THIS IS AN AUTOMATICALLY GENERATED FILE" >> _CoqProject - @ echo "# PLEASE EDIT _CoqConfig INSTEAD" >> _CoqProject - @ echo >> _CoqProject -ifneq ("$(COQPATHFILE)","") - @ echo "# including: _CoqPath" - @ cat _CoqPath >> _CoqProject - @ echo >> _CoqProject -endif - @ echo "# including: _CoqConfig" - @ cat _CoqProject.itree _CoqProject.extra >> _CoqProject - -COQDEP=coqdep -DEPS_DOT=deps.dot -DEPS_OUT=deps.jpg - -depgraph: - $(COQDEP) -dumpgraph $(DEPS_DOT) $(shell cat _CoqConfig) > /dev/null 2>&1 - sed 's%\("theories/\([^"]*\)/\([^"/]*\)"\[label="\)%\1\2/\\n%' -i $(DEPS_DOT) - dot $(DEPS_DOT) -Tjpg -o$(DEPS_OUT) + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" pre-all + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" real-all + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" post-all +.PHONY: all + +all.timing.diff: + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" pre-all + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" real-all.timing.diff TIME_OF_PRETTY_BUILD_EXTRA_FILES="" + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" post-all +.PHONY: all.timing.diff + +ifeq (0,$(TIMING_REAL)) +TIMING_REAL_ARG := +TIMING_USER_ARG := --user +else +ifeq (1,$(TIMING_REAL)) +TIMING_REAL_ARG := --real +TIMING_USER_ARG := +else +TIMING_REAL_ARG := +TIMING_USER_ARG := +endif +endif + +ifeq (0,$(TIMING_INCLUDE_MEM)) +TIMING_INCLUDE_MEM_ARG := --no-include-mem +else +TIMING_INCLUDE_MEM_ARG := +endif + +ifeq (1,$(TIMING_SORT_BY_MEM)) +TIMING_SORT_BY_MEM_ARG := --sort-by-mem +else +TIMING_SORT_BY_MEM_ARG := +endif + +make-pretty-timed-before:: TIME_OF_BUILD_FILE=$(TIME_OF_BUILD_BEFORE_FILE) +make-pretty-timed-after:: TIME_OF_BUILD_FILE=$(TIME_OF_BUILD_AFTER_FILE) +make-pretty-timed make-pretty-timed-before make-pretty-timed-after:: + $(HIDE)rm -f pretty-timed-success.ok + $(HIDE)($(MAKE) --no-print-directory -f "$(PARENT)" $(TGTS) TIMED=1 2>&1 && touch pretty-timed-success.ok) | tee -a $(TIME_OF_BUILD_FILE) + $(HIDE)rm pretty-timed-success.ok # must not be -f; must fail if the touch failed +print-pretty-timed:: + $(HIDE)$(COQMAKE_ONE_TIME_FILE) $(TIMING_INCLUDE_MEM_ARG) $(TIMING_SORT_BY_MEM_ARG) $(TIMING_REAL_ARG) $(TIME_OF_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_EXTRA_FILES) +print-pretty-timed-diff:: + $(HIDE)$(COQMAKE_BOTH_TIME_FILES) --sort-by=$(TIMING_SORT_BY) $(TIMING_INCLUDE_MEM_ARG) $(TIMING_SORT_BY_MEM_ARG) $(TIMING_REAL_ARG) $(TIME_OF_BUILD_AFTER_FILE) $(TIME_OF_BUILD_BEFORE_FILE) $(TIME_OF_PRETTY_BOTH_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_EXTRA_FILES) +ifeq (,$(BEFORE)) +print-pretty-single-time-diff:: + @echo 'Error: Usage: $(MAKE) print-pretty-single-time-diff AFTER=path/to/file.v.after-timing BEFORE=path/to/file.v.before-timing' + $(HIDE)false +else +ifeq (,$(AFTER)) +print-pretty-single-time-diff:: + @echo 'Error: Usage: $(MAKE) print-pretty-single-time-diff AFTER=path/to/file.v.after-timing BEFORE=path/to/file.v.before-timing' + $(HIDE)false +else +print-pretty-single-time-diff:: + $(HIDE)$(COQMAKE_BOTH_SINGLE_TIMING_FILES) --fuzz=$(TIMING_FUZZ) --sort-by=$(TIMING_SORT_BY) $(TIMING_USER_ARG) $(AFTER) $(BEFORE) $(TIME_OF_PRETTY_BUILD_FILE) $(TIME_OF_PRETTY_BUILD_EXTRA_FILES) +endif +endif +pretty-timed: + $(HIDE)$(MAKE) --no-print-directory -f "$(PARENT)" make-pretty-timed + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" print-pretty-timed +.PHONY: pretty-timed make-pretty-timed make-pretty-timed-before make-pretty-timed-after print-pretty-timed print-pretty-timed-diff print-pretty-single-time-diff + +# Extension points for actions to be performed before/after the all target +pre-all:: + @# Extension point + $(HIDE)if [ "$(COQMAKEFILE_VERSION)" != "$(COQ_VERSION)" ]; then\ + echo "W: This Makefile was generated by Rocq/Coq $(COQMAKEFILE_VERSION)";\ + echo "W: while the current Rocq version is $(COQ_VERSION)";\ + fi +.PHONY: pre-all + +post-all:: + @# Extension point +.PHONY: post-all + +real-all: $(VOFILES) $(if $(USEBYTE),bytefiles,optfiles) +.PHONY: real-all + +real-all.timing.diff: $(VOFILES:.vo=.v.timing.diff) +.PHONY: real-all.timing.diff + +bytefiles: $(CMOFILES) $(CMAFILES) +.PHONY: bytefiles + +optfiles: $(if $(DO_NATDYNLINK),$(CMXSFILES)) +.PHONY: optfiles + +vos: $(VOFILES:%.vo=%.vos) +.PHONY: vos + +vok: $(VOFILES:%.vo=%.vok) +.PHONY: vok + +validate: $(VOFILES) + $(TIMER) $(COQCHK) $(COQCHKFLAGS) $(COQLIBS_NOML) $(PROFILE_ARG) $^ + $(HIDE)$(PROFILE_ZIP) +.PHONY: validate + +only: $(TGTS) +.PHONY: only + +# Documentation targets ####################################################### + +html: $(GLOBFILES) $(VFILES) + $(SHOW)'COQDOC -d html $(GAL)' + $(HIDE)mkdir -p html + $(HIDE)$(COQDOC) \ + -toc $(COQDOCFLAGS) -html $(GAL) $(COQDOCLIBS) -d html $(VFILES) + +mlihtml: $(MLIFILES:.mli=.cmi) + $(SHOW)'CAMLDOC -d $@' + $(HIDE)mkdir $@ || rm -rf $@/* + $(HIDE)$(CAMLDOC) -html \ + -d $@ -m A $(CAMLDEBUG) $(CAMLDOCFLAGS) $(MLIFILES) $(FINDLIBPKGS) + +all-mli.tex: $(MLIFILES:.mli=.cmi) + $(SHOW)'CAMLDOC -latex $@' + $(HIDE)$(CAMLDOC) -latex \ + -o $@ -m A $(CAMLDEBUG) $(CAMLDOCFLAGS) $(MLIFILES) $(FINDLIBPKGS) + +all.ps: $(VFILES) + $(SHOW)'COQDOC -ps $(GAL)' + $(HIDE)$(COQDOC) \ + -toc $(COQDOCFLAGS) -ps $(GAL) $(COQDOCLIBS) \ + -o $@ `$(COQDEP) -sort $(VFILES)` + +all.pdf: $(VFILES) + $(SHOW)'COQDOC -pdf $(GAL)' + $(HIDE)$(COQDOC) \ + -toc $(COQDOCFLAGS) -pdf $(GAL) $(COQDOCLIBS) \ + -o $@ `$(COQDEP) -sort $(VFILES)` + +# FIXME: not quite right, since the output name is different +gallinahtml: GAL=-g +gallinahtml: html + +all-gal.ps: GAL=-g +all-gal.ps: all.ps + +all-gal.pdf: GAL=-g +all-gal.pdf: all.pdf + +# ? +beautify: $(BEAUTYFILES) + for file in $^; do mv $${file%.beautified} $${file%beautified}old && mv $${file} $${file%.beautified}; done + @echo 'Do not do "make clean" until you are sure that everything went well!' + @echo 'If there were a problem, execute "for file in $$(find . -name \*.v.old -print); do mv $${file} $${file%.old}; done" in your shell/' +.PHONY: beautify + +# Installation targets ######################################################## +# +# There rules can be extended in Makefile.local +# Extensions can't assume when they run. + +# We use $(file) to avoid generating a very long command string to pass to the shell +# (cf https://coq.zulipchat.com/#narrow/stream/250632-Coq-Platform-devs-.26-users/topic/Strange.20command.20length.20limit.20on.20Linux) +# However Apple ships old make which doesn't have $(file) so we need a fallback +$(file >.hasfile,1) +HASFILE:=$(shell if [ -e .hasfile ]; then echo 1; rm .hasfile; fi) + +MKFILESTOINSTALL= $(if $(HASFILE),$(file >.filestoinstall,$(FILESTOINSTALL)),\ + $(shell rm -f .filestoinstall) \ + $(foreach x,$(FILESTOINSTALL),$(shell printf '%s\n' "$x" >> .filestoinstall))) + +# findlib needs the package to not be installed, so we remove it before +# installing it (see the call to findlib_remove) +install: META + @$(MKFILESTOINSTALL) + $(HIDE)code=0; for f in $$(cat .filestoinstall); do\ + if ! [ -f "$$f" ]; then >&2 echo $$f does not exist; code=1; fi \ + done; exit $$code + $(HIDE)for f in $$(cat .filestoinstall); do\ + df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`";\ + if [ "$$?" != "0" -o -z "$$df" ]; then\ + echo SKIP "$$f" since it has no logical path;\ + else\ + install -d "$(COQLIBINSTALL)/$$df" &&\ + install -m 0644 "$$f" "$(COQLIBINSTALL)/$$df" &&\ + echo INSTALL "$$f" "$(COQLIBINSTALL)/$$df";\ + fi;\ + done + $(call findlib_remove) + $(call findlib_install, META $(FINDLIBFILESTOINSTALL)) + $(HIDE)$(MAKE) install-extra -f "$(SELF)" + @rm -f .filestoinstall +install-extra:: + @# Extension point +.PHONY: install install-extra + +META: $(METAFILE) + $(HIDE)if [ "$(METAFILE)" ]; then \ + cat "$(METAFILE)" | grep -v 'directory.*=.*' > META; \ + fi + +install-byte: + $(call findlib_install, $(CMAFILES) $(CMOFILESTOINSTALL), -add) + +install-doc:: html mlihtml + @# Extension point + $(HIDE)install -d "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/html" + $(HIDE)for i in html/*; do \ + dest="$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/$$i";\ + install -m 0644 "$$i" "$$dest";\ + echo INSTALL "$$i" "$$dest";\ + done + $(HIDE)install -d \ + "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/mlihtml" + $(HIDE)for i in mlihtml/*; do \ + dest="$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/$$i";\ + install -m 0644 "$$i" "$$dest";\ + echo INSTALL "$$i" "$$dest";\ + done +.PHONY: install-doc + +uninstall:: + @# Extension point + @$(MKFILESTOINSTALL) + $(call findlib_remove) + $(HIDE)for f in $$(cat .filestoinstall); do \ + df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`" &&\ + instf="$(COQLIBINSTALL)/$$df/`basename $$f`" &&\ + rm -f "$$instf" &&\ + echo RM "$$instf" ;\ + done + $(HIDE)for f in $$(cat .filestoinstall); do \ + df="`$(COQMKFILE) -destination-of "$$f" $(COQLIBS)`" &&\ + echo RMDIR "$(COQLIBINSTALL)/$$df/" &&\ + (rmdir "$(COQLIBINSTALL)/$$df/" 2>/dev/null || true); \ + done + @rm -f .filestoinstall + +.PHONY: uninstall + +uninstall-doc:: + @# Extension point + $(SHOW)'RM $(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/html' + $(HIDE)rm -rf "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/html" + $(SHOW)'RM $(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/mlihtml' + $(HIDE)rm -rf "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/mlihtml" + $(HIDE) rmdir "$(COQDOCINSTALL)/$(INSTALLCOQDOCROOT)/" || true +.PHONY: uninstall-doc + +# Cleaning #################################################################### +# +# There rules can be extended in Makefile.local +# Extensions can't assume when they run. + +clean:: + @# Extension point + $(SHOW)'CLEAN' + $(HIDE)rm -f $(CMOFILES) + $(HIDE)rm -f $(CMIFILES) + $(HIDE)rm -f $(CMAFILES) + $(HIDE)rm -f $(CMXFILES) + $(HIDE)rm -f $(CMXAFILES) + $(HIDE)rm -f $(CMXSFILES) + $(HIDE)rm -f $(OFILES) + $(HIDE)rm -f $(CMXAFILES:.cmxa=.a) + $(HIDE)rm -f $(MLGFILES:.mlg=.ml) + $(HIDE)rm -f $(CMXFILES:.cmx=.cmt) + $(HIDE)rm -f $(MLIFILES:.mli=.cmti) + $(HIDE)rm -f $(ALLDFILES) + $(HIDE)rm -f $(NATIVEFILES) + $(HIDE)find . -name .coq-native -type d -empty -delete + $(HIDE)rm -f $(VOFILES) + $(HIDE)rm -f $(VOFILES:.vo=.vos) + $(HIDE)rm -f $(VOFILES:.vo=.vok) + $(HIDE)rm -f $(VOFILES:.vo=.vo.prof.json) + $(HIDE)rm -f $(VOFILES:.vo=.vo.prof.json.gz) + $(HIDE)rm -f $(BEAUTYFILES) $(VFILES:=.old) + $(HIDE)rm -f all.ps all-gal.ps all.pdf all-gal.pdf all.glob all-mli.tex + $(HIDE)rm -f $(VFILES:.v=.glob) + $(HIDE)rm -f $(VFILES:.v=.tex) + $(HIDE)rm -f $(VFILES:.v=.g.tex) + $(HIDE)rm -f pretty-timed-success.ok + $(HIDE)rm -f META + $(HIDE)rm -rf html mlihtml +.PHONY: clean + +cleanall:: clean + @# Extension point + $(SHOW)'CLEAN *.aux *.timing' + $(HIDE)rm -f $(foreach f,$(VFILES:.v=),$(dir $(f)).$(notdir $(f)).aux) + $(HIDE)rm -f $(TIME_OF_BUILD_FILE) $(TIME_OF_BUILD_BEFORE_FILE) $(TIME_OF_BUILD_AFTER_FILE) $(TIME_OF_PRETTY_BUILD_FILE) $(TIME_OF_PRETTY_BOTH_BUILD_FILE) + $(HIDE)rm -f $(VOFILES:.vo=.v.timing) + $(HIDE)rm -f $(VOFILES:.vo=.v.before-timing) + $(HIDE)rm -f $(VOFILES:.vo=.v.after-timing) + $(HIDE)rm -f $(VOFILES:.vo=.v.timing.diff) + $(HIDE)rm -f .lia.cache .nia.cache +.PHONY: cleanall + +archclean:: + @# Extension point + $(SHOW)'CLEAN *.cmx *.o' + $(HIDE)rm -f $(NATIVEFILES) + $(HIDE)rm -f $(CMOFILES:%.cmo=%.cmx) +.PHONY: archclean + + +# Compilation rules ########################################################### + +$(MLIFILES:.mli=.cmi): %.cmi: %.mli + $(SHOW)'CAMLC -c $<' + $(HIDE)$(TIMER) $(CAMLC) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) $< + +$(MLGFILES:.mlg=.ml): %.ml: %.mlg + $(SHOW)'COQPP $<' + $(HIDE)$(COQPP) $< + +# Stupid hack around a deficient syntax: we cannot concatenate two expansions +$(filter %.cmo, $(MLFILES:.ml=.cmo) $(MLGFILES:.mlg=.cmo)): %.cmo: %.ml + $(SHOW)'CAMLC -c $<' + $(HIDE)$(TIMER) $(CAMLC) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) $< + +# Same hack +$(filter %.cmx, $(MLFILES:.ml=.cmx) $(MLGFILES:.mlg=.cmx)): %.cmx: %.ml + $(SHOW)'CAMLOPT -c $(FOR_PACK) $<' + $(HIDE)$(TIMER) $(CAMLOPTC) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) $(FOR_PACK) $< + + +$(MLLIBFILES:.mllib=.cmxs): %.cmxs: %.cmxa + $(SHOW)'CAMLOPT -shared -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) \ + -shared -o $@ $< + +$(MLLIBFILES:.mllib=.cma): %.cma: | %.mllib + $(SHOW)'CAMLC -a -o $@' + $(HIDE)$(TIMER) $(CAMLLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $^ + +$(MLLIBFILES:.mllib=.cmxa): %.cmxa: | %.mllib + $(SHOW)'CAMLOPT -a -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $^ + + +$(MLPACKFILES:.mlpack=.cmxs): %.cmxs: %.cmxa + $(SHOW)'CAMLOPT -shared -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) \ + -shared -o $@ $< + +$(MLPACKFILES:.mlpack=.cmxa): %.cmxa: %.cmx | %.mlpack + $(SHOW)'CAMLOPT -a -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $< + +$(MLPACKFILES:.mlpack=.cma): %.cma: %.cmo | %.mlpack + $(SHOW)'CAMLC -a -o $@' + $(HIDE)$(TIMER) $(CAMLLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -a -o $@ $^ + +$(MLPACKFILES:.mlpack=.cmo): %.cmo: | %.mlpack + $(SHOW)'CAMLC -pack -o $@' + $(HIDE)$(TIMER) $(CAMLLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -pack -o $@ $^ + +$(MLPACKFILES:.mlpack=.cmx): %.cmx: | %.mlpack + $(SHOW)'CAMLOPT -pack -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) -pack -o $@ $^ + +# This rule is for _CoqProject with no .mllib nor .mlpack +$(filter-out $(MLLIBFILES:.mllib=.cmxs) $(MLPACKFILES:.mlpack=.cmxs) $(addsuffix .cmxs,$(PACKEDFILES)) $(addsuffix .cmxs,$(LIBEDFILES)),$(MLFILES:.ml=.cmxs) $(MLGFILES:.mlg=.cmxs)): %.cmxs: %.cmx + $(SHOW)'[deprecated,use-mllib-or-mlpack] CAMLOPT -shared -o $@' + $(HIDE)$(TIMER) $(CAMLOPTLINK) $(CAMLDEBUG) $(CAMLFLAGS) $(FINDLIBPKGS) \ + -shared -o $@ $< + +# can't make +# https://www.gnu.org/software/make/manual/make.html#Static-Pattern +# work with multiple target rules +# so use eval in a loop instead +# with grouped targets https://www.gnu.org/software/make/manual/make.html#Multiple-Targets +# if available (GNU Make >= 4.3) +ifneq (,$(filter grouped-target,$(.FEATURES))) +define globvorule= + +# take care to $$ variables using $< etc + $(1).vo $(1).glob &: $(1).v | $$(VDFILE) + $$(SHOW)ROCQ compile $(1).v + $$(HIDE)$$(TIMER) $$(ROCQ) compile $$(COQDEBUG) $$(TIMING_ARG) $$(PROFILE_ARG) $$(COQFLAGS) $$(COQLIBS) $(1).v + $$(HIDE)$$(PROFILE_ZIP) +ifeq ($(COQDONATIVE), "yes") + $$(SHOW)COQNATIVE $(1).vo + $$(HIDE)$$(call TIMER,$(1).vo.native) $$(COQNATIVE) $$(COQLIBS) $(1).vo +endif + +endef +else + +$(VOFILES): %.vo: %.v | $(VDFILE) + $(SHOW)ROCQ compile $< + $(HIDE)$(TIMER) $(ROCQ) compile $(COQDEBUG) $(TIMING_ARG) $(PROFILE_ARG) $(COQFLAGS) $(COQLIBS) $< + $(HIDE)$(PROFILE_ZIP) +ifeq ($(COQDONATIVE), "yes") + $(SHOW)COQNATIVE $@ + $(HIDE)$(call TIMER,$@.native) $(COQNATIVE) $(COQLIBS) $@ +endif + +# this is broken :( todo fix if we ever find a solution that doesn't need grouped targets +$(GLOBFILES): %.glob: %.v + $(SHOW)'ROCQ compile $< (for .glob)' + $(HIDE)$(TIMER) $(ROCQ) compile $(COQDEBUG) $(COQFLAGS) $(COQLIBS) $< + +endif + +$(foreach vfile,$(VFILES:.v=),$(eval $(call globvorule,$(vfile)))) + +$(VFILES:.v=.vos): %.vos: %.v + $(SHOW)ROCQ compile -vos $< + $(HIDE)$(TIMER) $(ROCQ) compile -vos $(COQDEBUG) $(COQFLAGS) $(COQLIBS) $< + +$(VFILES:.v=.vok): %.vok: %.v + $(SHOW)ROCQ compile -vok $< + $(HIDE)$(TIMER) $(ROCQ) compile -vok $(COQDEBUG) $(COQFLAGS) $(COQLIBS) $< + +$(addsuffix .timing.diff,$(VFILES)): %.timing.diff : %.before-timing %.after-timing + $(SHOW)PYTHON TIMING-DIFF $*.{before,after}-timing + $(HIDE)$(MAKE) --no-print-directory -f "$(SELF)" print-pretty-single-time-diff BEFORE=$*.before-timing AFTER=$*.after-timing TIME_OF_PRETTY_BUILD_FILE="$@" + +$(BEAUTYFILES): %.v.beautified: %.v + $(SHOW)'BEAUTIFY $<' + $(HIDE)$(TIMER) $(ROCQ) compile $(COQDEBUG) $(COQFLAGS) $(COQLIBS) -beautify $< + +$(TEXFILES): %.tex: %.v + $(SHOW)'COQDOC -latex $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -latex $< -o $@ + +$(GTEXFILES): %.g.tex: %.v + $(SHOW)'COQDOC -latex -g $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -latex -g $< -o $@ + +$(HTMLFILES): %.html: %.v %.glob + $(SHOW)'COQDOC -html $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -html $< -o $@ + +$(GHTMLFILES): %.g.html: %.v %.glob + $(SHOW)'COQDOC -html -g $<' + $(HIDE)$(COQDOC) $(COQDOCFLAGS) -html -g $< -o $@ + +# Dependency files ############################################################ + +ifndef MAKECMDGOALS + -include $(ALLDFILES) +else + ifneq ($(filter-out archclean clean cleanall printenv make-pretty-timed make-pretty-timed-before make-pretty-timed-after print-pretty-timed print-pretty-timed-diff print-pretty-single-time-diff,$(MAKECMDGOALS)),) + -include $(ALLDFILES) + endif +endif + +.SECONDARY: $(ALLDFILES) + +redir_if_ok = > "$@" || ( RV=$$?; rm -f "$@"; exit $$RV ) + +GENMLFILES:=$(MLGFILES:.mlg=.ml) +$(addsuffix .d,$(ALLSRCFILES)): $(GENMLFILES) + +$(addsuffix .d,$(MLIFILES)): %.mli.d: %.mli + $(SHOW)'CAMLDEP $<' + $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLGFILES)): %.mlg.d: %.ml + $(SHOW)'CAMLDEP $<' + $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLFILES)): %.ml.d: %.ml + $(SHOW)'CAMLDEP $<' + $(HIDE)$(CAMLDEP) $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLLIBFILES)): %.mllib.d: %.mllib + $(SHOW)'OCAMLLIBDEP $<' + $(HIDE)$(OCAMLLIBDEP) -c $(OCAMLLIBS) "$<" $(redir_if_ok) + +$(addsuffix .d,$(MLPACKFILES)): %.mlpack.d: %.mlpack + $(SHOW)'OCAMLLIBDEP $<' + $(HIDE)$(OCAMLLIBDEP) -c $(OCAMLLIBS) "$<" $(redir_if_ok) + +# If this makefile is created using a _CoqProject we have coqdep get +# options from it. This avoids argument length limits for pathological +# projects. Note that extra options might be on the command line. +VDFILE_FLAGS:=$(if _CoqProject,-f _CoqProject,) $(CMDLINE_COQLIBS) $(CMDLINE_VFILES) + +$(VDFILE): _CoqProject $(VFILES) + $(SHOW)'ROCQ DEP VFILES' + $(HIDE)$(TIMER) $(COQDEP) -vos -dyndep var $(VDFILE_FLAGS) $(redir_if_ok) + +# Misc ######################################################################## + +byte: + $(HIDE)$(MAKE) all "OPT:=-byte" -f "$(SELF)" +.PHONY: byte + +opt: + $(HIDE)$(MAKE) all "OPT:=-opt" -f "$(SELF)" +.PHONY: opt + +# This is deprecated. To extend this makefile use +# extension points and Makefile.local +printenv:: + $(warning printenv is deprecated) + $(warning write extensions in Makefile.local or include Makefile.conf) + @echo 'COQLIB = $(COQLIB)' + @echo 'COQCORELIB = $(COQCORELIB)' + @echo 'DOCDIR = $(DOCDIR)' + @echo 'OCAMLFIND = $(OCAMLFIND)' + @echo 'HASNATDYNLINK = $(HASNATDYNLINK)' + @echo 'SRC_SUBDIRS = $(SRC_SUBDIRS)' + @echo 'COQ_SRC_SUBDIRS = $(COQ_SRC_SUBDIRS)' + @echo 'COQCORE_SRC_SUBDIRS = $(COQCORE_SRC_SUBDIRS)' + @echo 'OCAMLFIND = $(OCAMLFIND)' + @echo 'PP = $(PP)' + @echo 'COQFLAGS = $(COQFLAGS)' + @echo 'COQLIB = $(COQLIBS)' + @echo 'COQLIBINSTALL = $(COQLIBINSTALL)' + @echo 'COQDOCINSTALL = $(COQDOCINSTALL)' +.PHONY: printenv + +# Generate a .merlin file. If you need to append directives to this +# file you can extend the merlin-hook target in Makefile.local +.merlin: + $(SHOW)'FILL .merlin' + $(HIDE)echo 'FLG $(COQMF_CAMLFLAGS)' > .merlin + $(HIDE)echo 'B $(COQCORELIB)' >> .merlin + $(HIDE)echo 'S $(COQCORELIB)' >> .merlin + $(HIDE)$(foreach d,$(COQCORE_SRC_SUBDIRS), \ + echo 'B $(COQCORELIB)$(d)' >> .merlin;) + $(HIDE)$(foreach d,$(COQ_SRC_SUBDIRS), \ + echo 'S $(COQLIB)$(d)' >> .merlin;) + $(HIDE)$(foreach d,$(SRC_SUBDIRS), echo 'B $(d)' >> .merlin;) + $(HIDE)$(foreach d,$(SRC_SUBDIRS), echo 'S $(d)' >> .merlin;) + $(HIDE)$(MAKE) merlin-hook -f "$(SELF)" +.PHONY: merlin + +merlin-hook:: + @# Extension point +.PHONY: merlin-hook + +# prints all variables +debug: + $(foreach v,\ + $(sort $(filter-out $(INITIAL_VARS) INITIAL_VARS,\ + $(.VARIABLES))),\ + $(info $(v) = $($(v)))) +.PHONY: debug + +.DEFAULT_GOAL := all + +# Users can create Makefile.local-late to hook into double-colon rules +# or add other needed Makefile code, using defined +# variables if necessary. +-include Makefile.local-late + +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/Makefile.conf b/Makefile.conf new file mode 100644 index 00000000..4db136fe --- /dev/null +++ b/Makefile.conf @@ -0,0 +1,71 @@ +# This configuration file was generated by running: +# coq_makefile -f _CoqProject -o Makefile + +COQBIN?= +ifneq (,$(COQBIN)) +# add an ending / +COQBIN:=$(COQBIN)/ +endif +COQMKFILE ?= "$(COQBIN)rocq" makefile + +############################################################################### +# # +# Project files. # +# # +############################################################################### + +COQMF_CMDLINE_VFILES := +COQMF_SOURCES := $(shell $(COQMKFILE) -sources-of -f _CoqProject $(COQMF_CMDLINE_VFILES)) +COQMF_VFILES := $(filter %.v, $(COQMF_SOURCES)) +COQMF_MLIFILES := $(filter %.mli, $(COQMF_SOURCES)) +COQMF_MLFILES := $(filter %.ml, $(COQMF_SOURCES)) +COQMF_MLGFILES := $(filter %.mlg, $(COQMF_SOURCES)) +COQMF_MLPACKFILES := $(filter %.mlpack, $(COQMF_SOURCES)) +COQMF_MLLIBFILES := $(filter %.mllib, $(COQMF_SOURCES)) +COQMF_METAFILE = + +############################################################################### +# # +# Path directives (-I, -R, -Q). # +# # +############################################################################### + +COQMF_OCAMLLIBS = +COQMF_SRC_SUBDIRS = +COQMF_COQLIBS = -Q theories ITree -Q extra ITree.Extra +COQMF_COQLIBS_NOML = -Q theories ITree -Q extra ITree.Extra +COQMF_CMDLINE_COQLIBS = + +############################################################################### +# # +# Rocq configuration. # +# # +############################################################################### + +COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind +COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 +COQMF_WARN=-warn-error +a-3 +COQMF_HASNATDYNLINK=true +COQMF_COQ_SRC_SUBDIRS=boot config lib clib kernel library engine pretyping interp gramlib parsing proofs tactics toplevel printing ide stm vernac plugins/btauto plugins/cc plugins/derive plugins/extraction plugins/firstorder plugins/funind plugins/ltac plugins/ltac2 plugins/ltac2_ltac1 plugins/micromega plugins/nsatz plugins/ring plugins/rtauto plugins/ssr plugins/ssrmatching plugins/syntax +COQMF_COQ_NATIVE_COMPILER_DEFAULT=no +COQMF_WINDRIVE= + +############################################################################### +# # +# Native compiler. # +# # +############################################################################### + +COQMF_COQPROJECTNATIVEFLAG = + +############################################################################### +# # +# Extra variables. # +# # +############################################################################### + +COQMF_OTHERFLAGS = +COQMF_INSTALLCOQDOCROOT = ITree From 6b47f094ce667e30f1e0a3b8f908cd19bf76b084 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 13 Feb 2026 18:08:31 -0500 Subject: [PATCH 020/189] cleaned proper proof --- theories/Eq/Eqit.v | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 89c106db..3f87ffee 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -328,11 +328,8 @@ Proof with auto with itree. intros. subst. split. - revert_until y1. unfold eqit at 2. coinduction R CIH. intros. - cbn. -(* need to get rid of gfp in H0 so we can do induction on it *) - red in H0. - step in H0. red. - hinduction H0 before CIH; intros... + cbn; red. red in H0. step in H0. + hinduction H0 before CIH... econstructor. now apply H. - revert_until y1. unfold eqit at -1. coinduction R CIH. intros. cbn; red. step in H0. From 6938234d35f4be2fd5ea982088205476e68d9a22 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 14 Feb 2026 03:14:33 -0500 Subject: [PATCH 021/189] Eqit.v documentation 3 --- theories/Eq/Eqit.v | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 3f87ffee..a1b9276b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -377,8 +377,12 @@ Qed. *) (* end hide *) -(** A notation of [eq_itree eq]. You can write [≅] using [[\cong]] in - tex-mode *) +(** A notation of [eq_itree eq]. You can write + +[≅] using [[\cong]] +[≈] using [[\approx]] +[≳] using [[\gtrsim]] +in tex-mode *) Infix "≅" := (eq_itree eq) (at level 70) : type_scope. From ab592c83965ccdfed9941f069f02504b15b8f3f3 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 14 Feb 2026 03:16:00 -0500 Subject: [PATCH 022/189] Remove paco: transitive closure of eqit --- theories/Eq/Eqit.v | 105 --------------------------------------------- 1 file changed, 105 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index a1b9276b..0fbc7be5 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -390,111 +390,6 @@ Infix "≈" := (eutt eq) (at level 70) : type_scope. Infix "≳" := (euttge eq) (at level 70) : type_scope. -(* - -(* TODO: Find a way to not clobber the export [type_scope]? *) - -Section eqit_closure. - -Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). - -(** *** "Up-to" principles for coinduction. *) - -Inductive eqit_trans_clo b1 b2 b1' b2' (r : itree E R1 -> itree E R2 -> Prop) - : itree E R1 -> itree E R2 -> Prop := -| eqit_trans_clo_intro t1 t2 t1' t2' RR1 RR2 - (EQVl: eqit RR1 b1 b1' t1 t1') - (EQVr: eqit RR2 b2 b2' t2 t2') - (REL: r t1' t2') - (LERR1: forall x x' y, RR1 x x' -> RR x' y -> RR x y) - (LERR2: forall x y y', RR2 y y' -> RR x y' -> RR x y) - : eqit_trans_clo b1 b2 b1' b2' r t1 t2 -. -Hint Constructors eqit_trans_clo : itree. - -Definition eqitC b1 b2 := eqit_trans_clo b1 b2 false false. -Hint Unfold eqitC : itree. - -Lemma eqitC_mon b1 b2 r1 r2 t1 t2 - (IN: eqitC b1 b2 r1 t1 t2) - (LE: r1 <2= r2): - eqitC b1 b2 r2 t1 t2. -Proof. - destruct IN. econstructor; eauto. -Qed. - -Hint Resolve eqitC_mon : paco. - -Lemma eqitC_wcompat b1 b2 vclo - (MON: monotone2 vclo) - (CMP: compose (eqitC b1 b2) vclo <3= compose vclo (eqitC b1 b2)): - wcompatible2 (@eqit_ E R1 R2 RR b1 b2 vclo) (eqitC b1 b2). -Proof with eauto with paco itree. - econstructor; [ eauto with paco itree | ]. - intros. destruct PR. - punfold EQVl. punfold EQVr. unfold_eqit. - hinduction REL before r; intros; clear t1' t2'. - - remember (RetF r1) as x. - hinduction EQVl before r; intros; subst; try inv Heqx; [ | eauto with itree ]. - remember (RetF r3) as y. - hinduction EQVr before r; intros; subst; try inv Heqy... - - remember (TauF m1) as x. - hinduction EQVl before r; intros; subst; try inv Heqx; try inv CHECK; [ | eauto with itree ]. - remember (TauF m3) as y. - hinduction EQVr before r; intros; subst; try inv Heqy; try inv CHECK; [ | eauto with itree ]. - pclearbot. econstructor. gclo. - econstructor; eauto with paco. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; try discriminate Heqx; [ inv_Vis | eauto with itree ]. - remember (VisF e k3) as y. - hinduction EQVr before r; intros; try discriminate Heqy; [ inv_Vis | eauto with itree ]. - econstructor. intros. pclearbot. - eapply MON. - + apply CMP. econstructor... - + intros. apply gpaco2_clo, PR. - - remember (TauF t1) as x. - hinduction EQVl before r; intros; subst; try inv Heqx; try inv CHECK; [ | eauto with itree ]. - pclearbot. punfold REL... - - remember (TauF t2) as y. - hinduction EQVr before r; intros; subst; try inv Heqy; try inv CHECK; [ | eauto with itree ]. - pclearbot. punfold REL... -Qed. - -Hint Resolve eqitC_wcompat : paco. - -Lemma eqit_idclo_compat b1 b2: compose (eqitC b1 b2) id <3= compose id (eqitC b1 b2). -Proof. - intros. apply PR. -Qed. -Hint Resolve eqit_idclo_compat : paco. - -Lemma eqitC_dist b1 b2: - forall r1 r2, eqitC b1 b2 (r1 \2/ r2) <2= (eqitC b1 b2 r1 \2/ eqitC b1 b2 r2). -Proof. - intros. destruct PR. destruct REL; eauto with itree. -Qed. - -Hint Resolve eqitC_dist : paco. - -Lemma eqit_clo_trans b1 b2 vclo - (MON: monotone2 vclo) - (CMP: compose (eqitC b1 b2) vclo <3= compose vclo (eqitC b1 b2)): - eqit_trans_clo b1 b2 false false <3= gupaco2 (eqit_ RR b1 b2 vclo) (eqitC b1 b2). -Proof. - intros. destruct PR. gclo. econstructor; eauto with paco. -Qed. - -End eqit_closure. - -#[global] Hint Unfold eqitC : itree. -#[global] Hint Resolve eqitC_mon : paco. -#[global] Hint Resolve eqitC_wcompat : paco. -#[global] Hint Resolve eqit_idclo_compat : paco. -#[global] Hint Resolve eqitC_dist : paco. -Arguments eqit_clo_trans : clear implicits. -#[global] Hint Constructors eqit_trans_clo : itree. - -*) (** ** Properties of relations *) From cc93ebb7627ffd18cb6d9f3674df5badc5aae9d8 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 14 Feb 2026 03:22:54 -0500 Subject: [PATCH 023/189] Symmetry proof --- theories/Eq/Eqit.v | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 0fbc7be5..f7f0a13a 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -345,8 +345,23 @@ Proof. - rewrite <- H. assumption. - rewrite H. assumption. Qed. -(* +(* proofs go this way. *) +Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: + forall (u : itree E R1) (v : itree E R2), + eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. +Proof. + (* set up for coinduction. *) + unfold eqit at -1. + (* do coinduction. *) + coinduction c CIH. intros u v euv. + (* reduce the hypothesis and conclusion to the right form. *) + step in euv. cbn in *. red in euv |- *. + (* do induction and conclude trivially with constructors. *) + induction euv; eauto with itree. +Qed. + +(* Definition flip_clo {A B C} clo r := @flip A B C (clo (@flip B A C r)). Lemma eqitF_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 vclo r: @@ -355,26 +370,12 @@ Proof. intros. induction PR; eauto with itree. Qed. -Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: - forall (u : itree E R1) (v : itree E R2), - eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. -Proof. - pcofix self; pstep. intros u v euv. punfold euv. - red in euv |- *. induction euv; pclearbot; eauto 7 with paco itree. -Qed. +*) -Lemma eqit_mon {E R1 R2} RR RR' (b1 b2 b1' b2': bool) - (LEb1: b1 -> b1') - (LEb2: b2 -> b2') - (LERR: RR <2= RR'): - @eqit E R1 R2 RR b1 b2 <2= eqit RR' b1' b2'. -Proof. - pcofix self. pstep. intros u v euv. punfold euv. - red in euv |- *. induction euv; pclearbot; eauto 7 with paco itree. -Qed. #[global] Hint Unfold flip : itree. -*) + + (* end hide *) (** A notation of [eq_itree eq]. You can write @@ -508,7 +509,10 @@ Proof. intros. apply Symmetric_eqit_; auto. -Admitted. + unfold eqit_. + step in H1. + induction H1; eauto with itree. +Qed. #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). From 7bc2eb3e3dd90815018107a800cb8970cc921464 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 14 Feb 2026 03:23:04 -0500 Subject: [PATCH 024/189] Clean document --- theories/Eq/Eqit.v | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f7f0a13a..2572e437 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -447,7 +447,7 @@ Proof. Qed. - +(* RTODO: DOCUMENT *) (* eutt is NOT valid up to eutt *) @@ -476,24 +476,12 @@ Proof. repeat red; etransitivity; eauto. Qed. #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. - red; intros. unfold eqit. (* strengthen bisimulation: elem c x x holds for all x. *) revert x. coinduction c CIH. intro. step. now repeat apply Reflexive_eqit_. Qed. -(* need to prove eqit_ is stable under eqit *) - -(* #[global] Instance eqit__eqit_Proper : -Proper () -(fun RR sim x y => ) *) - - -(* #[global] Instance eqit_proper_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). *) - - - #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). Proof. From a0895dac4b38444a92dc289202cd101d23a0f5c9 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 14 Feb 2026 04:38:02 -0500 Subject: [PATCH 025/189] more proof, done with eqit_gen --- theories/Eq/Eqit.v | 57 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 2572e437..4c0da106 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -502,25 +502,68 @@ Proof. induction H1; eauto with itree. Qed. +Ltac eqit_simpl := +repeat match goal with +| [|- eqit_ _ _ _ _ _ _] => unfold eqit_ at 1 +| [h : eqit_ _ _ _ _ _ _ |- _] => unfold eqit_ at 1 in h +(* mon *) +| [|- eqit_mon _ _ _ _ _ _ ] => cbn; unfold eqit_ at 1 +| [h : eqit_mon _ _ _ _ _ _ |- _] => cbn in h; unfold eqit_ at 1 in h +end. + +Ltac solve_eqitF := +match goal with +| [h1: _ = observe _ , h2: _ = observe _ |- _] => +(* reduce to 'observe' form by stripping constructors and unfolding *) +try econstructor; eqit_simpl; +(* replace 'observe' with actual constructor values *) +rewrite <- h1; rewrite <- h2; +(* finish off *) +econstructor; eauto with itree +end. + #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. red. unfold euttge, eqit. coinduction c CIH. intros. - red in H. - step. + step in H. + step; eqit_simpl. (* these proofs get to do hinduction. *) - hinduction H0 before CIH; subst; econstructor; try inv CHECK; pclearbot; auto 7 with paco itree. + hinduction H before CIH; subst; eauto with itree. + - step in REL. + cbn in REL. eqit_simpl. + dependent induction REL; solve_eqitF. + - econstructor. + intro. specialize (REL v). step in REL. + cbn in REL; eqit_simpl. + dependent induction REL; solve_eqitF. Qed. #[global] Instance euttge_sub_eutt: subrelation (@euttge E _ _ RR) (eutt RR). Proof. - ginit. pcofix CIH. intros. - punfold H0. gstep. red in H0 |- *. - hinduction H0 before CIH; subst; econstructor; pclearbot; auto 7 with paco itree. -Qed. + unfold subrelation, eutt, eqit. + coinduction c CIH. + intros. step. + unfold euttge, eqit in H; eqit_simpl; step in H. + hinduction H before CIH; subst; eauto with itree. + - step in REL; cbn in REL; eqit_simpl. + econstructor. + dependent induction REL; try solve_eqitF. + eqit_simpl. + rewrite <- x. taul. + apply IHREL; eauto. + - econstructor. intros. + specialize (REL v). step in REL. + cbn in REL; eqit_simpl. + (* key step: IH must work for ANY tree, not just a continuation-built one. *) + (* this is so we can strip a Tau off the left side and still use our IH. *) + remember (k1 v). + dependent induction REL; try solve_eqitF. + + rewrite <- x. taul. eapply IHREL; eauto. +Qed. #[global] Instance eq_sub_eutt: subrelation (@eq_itree E _ _ RR) (eutt RR). From ddb445935f877da9b52bffdf19911539f90c7966 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 12:55:07 -0500 Subject: [PATCH 026/189] Moving on --- theories/Eq/Eqit.v | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 4c0da106..c6796189 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -327,7 +327,8 @@ Proof with auto with itree. repeat red. intros. subst. split. - - revert_until y1. unfold eqit at 2. coinduction R CIH. intros. + (* assert forall, pull out vars *) + - revert_until y1. unfold eqit at -1. coinduction R CIH. intros. cbn; red. red in H0. step in H0. hinduction H0 before CIH... econstructor. now apply H. @@ -573,7 +574,7 @@ Qed. End eqit_gen. -#[global] Hint Resolve Reflexive_eqit Reflexive_eqit_gen : reflexivity. +#[global] Hint Resolve Reflexive_eqit : reflexivity. Section eqit_eq. @@ -584,7 +585,7 @@ Context {E : Type -> Type} {R : Type}. Local Notation eqit := (@eqit E R R eq). #[global] Instance Reflexive_eqitF_eq b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive sim -> Reflexive (eqitF eq b1 b2 id sim). +: Reflexive sim -> Reflexive (eqitF eq b1 b2 sim). Proof. apply Reflexive_eqitF; eauto. Qed. From c3b7bb1892b19e1685b83b44874ce6926326de92 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 13:09:18 -0500 Subject: [PATCH 027/189] more: switching to master --- theories/Eq/Eqit.v | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c6796189..dc84fc99 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -590,28 +590,22 @@ Proof. apply Reflexive_eqitF; eauto. Qed. -#[global] Instance TransitiveitF_eq b (sim : itree E R -> itree E R -> Prop) -: Transitiveymmetric sim -> Symmetric (eqitF eq b b id sim). +#[global] Instance Symmetric_eqitF_eq b (sim : itree E R -> itree E R -> Prop) +: Symmetric sim -> Symmetric (eqitF eq b b sim). Proof. - apply Transitive_eqitF; Transitiveauto. + apply Symmetric_eqitF; eauto. Qed. #[global] Instance Reflexive_eqit__eq b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive sim -> Reflexive (eqit_ eq b1 b2 id sim). +: Reflexive sim -> Reflexive (eqit_ eq b1 b2 sim). Proof. apply Reflexive_eqit_; eauto. Qed. #[global] Instance Symmetric_eqit__eq b (sim : itree E R -> itree E R -> Prop) -: Symmetric sim -> Symmetric (eqit_ eq b b id sim). +: Symmetric sim -> Symmetric (eqit_ eq b b sim). Proof. apply Symmetric_eqit_; eauto. Qed. (** *** [eqit] is an equivalence relation *) -#[global] Instance Reflexive_eqit_gen_eq b1 b2 (r rg: itree E R -> itree E R -> Prop) : - Reflexive (gpaco2 (eqit_ eq b1 b2 id) (eqitC eq b1 b2) r rg). -Proof. - apply Reflexive_eqit_gen; eauto. -Qed. - #[global] Instance Reflexive_eqit_eq b1 b2 : Reflexive (eqit b1 b2). Proof. apply Reflexive_eqit; eauto. @@ -627,8 +621,8 @@ Qed. #[global] Instance eqit_observe b1 b2: Proper (eqit b1 b2 ==> going (eqit b1 b2)) (@observe E R). Proof. - constructor; punfold H; auto with itree. -Qed. + constructor; step in H; auto with itree. +Admitted. #[global] Instance eqit_tauF b1 b2: Proper (eqit b1 b2 ==> going (eqit b1 b2)) (@TauF E R _). From 9715c82c6043d96b4d7f8b0f56880aa3f6f704dd Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 16:24:38 -0500 Subject: [PATCH 028/189] done up to eqit_inv. --- theories/Eq/Eqit.v | 163 +++++++++++++++++++++++++++------------------ 1 file changed, 98 insertions(+), 65 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index dc84fc99..4b50c535 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -22,6 +22,10 @@ From Stdlib Require Import Morphisms Relations. +From Coinduction Require Import all. + +(* important: Basics.Utils must come after Coinduction, as it +re-implements several tactics. *) From ITree Require Import Basics.Basics Basics.Utils @@ -30,7 +34,6 @@ From ITree Require Import Eq.Paco2 Eq.Shallow. -From Coinduction Require Import all. Local Open Scope itree_scope. (* end hide *) @@ -173,6 +176,43 @@ End eqit. #[global] Hint Unfold eutt : itree. #[global] Hint Unfold euttge : itree. +#[global] +Tactic Notation "coinduction" + simple_intropattern(R) + simple_intropattern(H) := + first + [ coinduction R H + | unfold eqit at -1; coinduction R H + | unfold eqit; coinduction R H + ]. + +Ltac down := + repeat progress ( + cbn [eqit_mon body] in *; + unfold eqit_ in * + ). + +Ltac solve_eqitF := +match goal with +| [h1: _ = observe _ , h2: _ = observe _ |- _] => +(* reduce to 'observe' form by stripping constructors and unfolding *) +try econstructor; down; +(* replace 'observe' with actual constructor values *) +rewrite <- h1; rewrite <- h2; +(* finish off *) +econstructor; eauto with itree +end. + +Ltac taul := apply EqTauL; only 1: auto. +Ltac taur := apply EqTauR; only 1: auto. + +(* RTODO: paco transformers. *) + +Ltac pstep := step. +Ltac punfold H := step in H. +Ltac paco2_fold := step. +Ltac pclearbot := idtac. + Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} t1 X2 (e2 : E X2) (k2 : X2 -> _) : eqitF RR b1 b2 sim t1 (VisF e2 k2) -> @@ -328,11 +368,11 @@ Proof with auto with itree. intros. subst. split. (* assert forall, pull out vars *) - - revert_until y1. unfold eqit at -1. coinduction R CIH. intros. + - revert_until y1. coinduction R CIH. intros. cbn; red. red in H0. step in H0. hinduction H0 before CIH... econstructor. now apply H. - - revert_until y1. unfold eqit at -1. coinduction R CIH. intros. + - revert_until y1. coinduction R CIH. intros. cbn; red. step in H0. hinduction H0 before CIH... econstructor; now apply H. @@ -415,8 +455,7 @@ Proof. red. induction 3; constructor; subst; eauto. Qed. -Ltac taul := apply EqTauL; only 1: assumption. -Ltac taur := apply EqTauR; only 1: assumption. + (* weak: eqitF is transitive under strong bisimilarity assumptions *) #[global] Instance Transitive_eqitF_eqit (sim : itree E R -> itree E R -> Prop) @@ -474,10 +513,9 @@ Proof. repeat red; etransitivity; eauto. Qed. (** *** [eqit] is an equivalence relation *) - #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. - red; intros. unfold eqit. + red; intros. unfold eqit. (* strengthen bisimulation: elem c x x holds for all x. *) revert x. coinduction c CIH. intro. step. now repeat apply Reflexive_eqit_. @@ -503,25 +541,6 @@ Proof. induction H1; eauto with itree. Qed. -Ltac eqit_simpl := -repeat match goal with -| [|- eqit_ _ _ _ _ _ _] => unfold eqit_ at 1 -| [h : eqit_ _ _ _ _ _ _ |- _] => unfold eqit_ at 1 in h -(* mon *) -| [|- eqit_mon _ _ _ _ _ _ ] => cbn; unfold eqit_ at 1 -| [h : eqit_mon _ _ _ _ _ _ |- _] => cbn in h; unfold eqit_ at 1 in h -end. - -Ltac solve_eqitF := -match goal with -| [h1: _ = observe _ , h2: _ = observe _ |- _] => -(* reduce to 'observe' form by stripping constructors and unfolding *) -try econstructor; eqit_simpl; -(* replace 'observe' with actual constructor values *) -rewrite <- h1; rewrite <- h2; -(* finish off *) -econstructor; eauto with itree -end. #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). @@ -530,15 +549,15 @@ Proof. unfold euttge, eqit. coinduction c CIH. intros. step in H. - step; eqit_simpl. + step; down. (* these proofs get to do hinduction. *) hinduction H before CIH; subst; eauto with itree. - step in REL. - cbn in REL. eqit_simpl. + cbn in REL. down. dependent induction REL; solve_eqitF. - econstructor. intro. specialize (REL v). step in REL. - cbn in REL; eqit_simpl. + cbn in REL; down. dependent induction REL; solve_eqitF. Qed. @@ -548,17 +567,17 @@ Proof. unfold subrelation, eutt, eqit. coinduction c CIH. intros. step. - unfold euttge, eqit in H; eqit_simpl; step in H. + unfold euttge, eqit in H; down; step in H. hinduction H before CIH; subst; eauto with itree. - - step in REL; cbn in REL; eqit_simpl. + - step in REL; cbn in REL; down. econstructor. dependent induction REL; try solve_eqitF. - eqit_simpl. + down. rewrite <- x. taul. apply IHREL; eauto. - econstructor. intros. specialize (REL v). step in REL. - cbn in REL; eqit_simpl. + cbn in REL; down. (* key step: IH must work for ANY tree, not just a continuation-built one. *) (* this is so we can strip a Tau off the left side and still use our IH. *) remember (k1 v). @@ -617,17 +636,17 @@ Proof. Qed. (** *** Congruence properties *) - +Hint Extern 1 => step : itree. #[global] Instance eqit_observe b1 b2: Proper (eqit b1 b2 ==> going (eqit b1 b2)) (@observe E R). Proof. - constructor; step in H; auto with itree. -Admitted. + constructor; step in H; auto with itree. +Qed. #[global] Instance eqit_tauF b1 b2: Proper (eqit b1 b2 ==> going (eqit b1 b2)) (@TauF E R _). Proof. - constructor; pstep. econstructor. eauto. + constructor; step. econstructor. eauto. Qed. #[global] Instance eqit_VisF b1 b2 {u} (e: E u) : @@ -640,7 +659,7 @@ Qed. subrelation (observing eq) (eqit l r). Proof. repeat red; intros. - pstep. red. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. left. apply reflexivity. + pstep. cbn. unfold eqit_. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. (** ** Eta-expansion *) @@ -692,7 +711,6 @@ Lemma eqit_inv_Vis_weak {E R1 R2 RR} b1 b2 Proof. intros. punfold H; apply eqitF_inv_VisF_weak in H. destruct H as [ p []]. exists p; split; auto. - revert H0; apply pweqeq_mon; intros; pclearbot; auto. Qed. (* This assumes UIP. *) @@ -704,43 +722,58 @@ Proof. intros H x; punfold H; apply eqitF_inv_VisF with (x := x) in H; pclearbot; auto. Qed. + +(* This proof was quite simplified by tactics *) Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. Proof. - intros. punfold H. red in H. simpl in *. - remember (TauF t1) as tt1. genobs t2 ot2. - hinduction H before b1; intros; try discriminate. - - inv Heqtt1. pclearbot. pstep. red. simpobs. econstructor; eauto. pstep_reverse. - - inv Heqtt1. punfold_reverse H. - - red in IHeqitF. pstep. red; simpobs. econstructor; eauto. pstep_reverse. -Qed. + intros. + step in H; cbn in H; unfold eqit_ in H. + dependent induction H. + - step in REL. step. + down. + simpobs. + taur. assumption. + - now step. + - step. down. simpobs. taur. + backstep. + now apply IHeqitF. +Qed. Lemma eqit_inv_Tau_r {E R1 R2 RR} b2 t1 t2 : @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. Proof. - intros. punfold H. red in H. simpl in *. - remember (TauF t2) as tt2. genobs t1 ot1. - hinduction H before b2; intros; try discriminate. - - inv Heqtt2. pclearbot. pstep. red. simpobs. econstructor; eauto. pstep_reverse. - - red in IHeqitF. pstep. red; simpobs. econstructor; eauto. pstep_reverse. - - inv Heqtt2. punfold_reverse H. -Qed. + intros. + step in H; cbn in H; unfold eqit_ in H. + dependent induction H. + - step. + down. + simpobs. + taul. + step in REL. + assumption. + - step. down. simpobs. taul. + backstep. + now apply IHeqitF. + - now step. +Qed. +(* this proof is much shorter and nicer than before. *) Lemma eqit_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. Proof with eauto with itree. - intros. punfold H. red in H. simpl in *. - remember (TauF t1) as tt1. remember (TauF t2) as tt2. - hinduction H before b2; intros; try discriminate. - - inv Heqtt1. inv Heqtt2. pclearbot. eauto. - - inv Heqtt1. inv H. - + pclearbot. punfold REL. pstep. red. simpobs... - + pstep. red. simpobs. econstructor; eauto. pstep_reverse. apply IHeqitF; eauto. - + eauto with itree. - - inv Heqtt2. inv H. - + pclearbot. punfold REL. pstep. red. simpobs... - + eauto with itree. - + pstep. red. simpobs. econstructor; auto. pstep_reverse. apply IHeqitF; eauto. + intros. + step in H; down. + dependent induction H. + - step. down. now step in REL. + - inv H; step; down; simpobs. + + taul. now step in REL. + + taul. backstep. now apply IHeqitF. + + assumption. + - inv H; step; down; simpobs. + + taur. now step in REL. + + assumption. + + taur. backstep. now apply IHeqitF. Qed. Section eqit_inv. From a129e106fc5b729a425d3f7ff0925ebe5bd13ea6 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 16:24:46 -0500 Subject: [PATCH 029/189] strengthened Utils.v --- theories/Basics/Utils.v | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index c917a239..1b3d8eac 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -123,15 +123,18 @@ Qed. Ltac step_ := match goal with - | |- gfp ?b ?x ?y ?z => apply (proj1 (gfp_fp b x y z)) + | |- gfp ?b ?x ?y ?z => apply ((gfp_fp b x y z)) | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) - | |- gfp ?b ?x ?y => apply (proj1 (gfp_fp b x y)) + | |- gfp ?b ?x ?y => apply ((gfp_fp b x y)) | |- elem ?R ?x ?y => apply (b_chain R x y) - | |- gfp ?b ?x => apply (proj1 (gfp_fp b x)) + | |- gfp ?b ?x => apply ((gfp_fp b x)) | |- elem ?R ?x => apply (b_chain R x) end. -Ltac step := first [step_ | red; step_]. +Ltac step := first [step_ | red; step_ | Coinduction.tactics.step | +match goal with +| [|- gfp ?b _ _] => apply (gfp_fp b) +end ]. Ltac step_in H := match type of H with @@ -142,6 +145,21 @@ Ltac step_in H := end. Tactic Notation "step" "in" ident(H) := step_in H. +Ltac backstep := + match goal with +| [|- _ _ _ _ (gfp ?b) _ _]=> + apply (gfp_pfp b) +end. + +Ltac backstep_in H := + match type of H with +| _ _ _ _ (gfp ?b) _ _=> + apply (gfp_fp b) in H +end. + +Tactic Notation "backstep" "in" ident(H) := backstep_in H. + + (* Oft-used induction tactic for general IHs. *) Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. From 748b0f809561bf67e2459b44a247f906372a10c0 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 16:30:27 -0500 Subject: [PATCH 030/189] tactic: strengthened simpobs --- theories/Core/ITreeDefinition.v | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/theories/Core/ITreeDefinition.v b/theories/Core/ITreeDefinition.v index d9a3fac6..cc42f73a 100644 --- a/theories/Core/ITreeDefinition.v +++ b/theories/Core/ITreeDefinition.v @@ -293,9 +293,18 @@ Ltac rewrite_everywhere_except lem X := Ltac genobs x ox := remember (observe x) as ox. Ltac genobs_clear x ox := genobs x ox; match goal with [H: ox = observe x |- _] => clear H x end. -Ltac simpobs := repeat match goal with [H: _ = observe _ |- _] => - rewrite_everywhere_except (@eq_sym _ _ _ H) H - end. +Ltac simpobs := + repeat match goal with + | H : _ = observe _ |- _ => + rewrite <- H in * + | H : observe _ = _ |- _ => + rewrite H in * + | H : _ = _observe _ |- _ => + rewrite <- H in * + | H : _observe _ = _ |- _ => + rewrite H in * + end. +(* wishing for an or pattern... *) Ltac desobs t H := destruct (observe t) eqn:H. (** ** Compute with fuel *) From 4332dc3af23616b3a06b709e23f3701a04585f07 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 16:44:49 -0500 Subject: [PATCH 031/189] done through eqit_inv --- theories/Eq/Eqit.v | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 4b50c535..53c60c5f 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -209,6 +209,7 @@ Ltac taur := apply EqTauR; only 1: auto. (* RTODO: paco transformers. *) Ltac pstep := step. +Ltac pfold := step. Ltac punfold H := step in H. Ltac paco2_fold := step. Ltac pclearbot := idtac. @@ -779,7 +780,7 @@ Qed. Section eqit_inv. Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. -Context {vclo : (itree E R1 -> itree E R2 -> Prop) -> (itree E R1 -> itree E R2 -> Prop)}. +(* Context {vclo : (itree E R1 -> itree E R2 -> Prop) -> (itree E R1 -> itree E R2 -> Prop)}. *) Context {sim : itree E R1 -> itree E R2 -> Prop}. Notation eqit__ t1_ t2_ := @@ -797,18 +798,20 @@ Notation eqit__ t1_ t2_ := else False end. + Lemma eqit_inv t1 t2 : eqit RR b1 b2 t1 t2 -> eqit__ t1 t2. Proof. - intros H; punfold H; red in H. - genobs t1 ot1; genobs t2 ot2; revert t1 t2 Heqot1 Heqot2; unfold observe, _observe. - destruct H; pclearbot; intros * E1 E2; rewrite <- E1, <- E2; cbn; auto. + intros H; punfold H; down. + genobs t1 ot1; genobs t2 ot2. + inv H; unfold observe in *; simpobs; auto. - exists eq_refl; cbn; eauto. - - rewrite CHECK in *. destruct ot2. - 1,3: pfold; red; unfold observe, _observe; rewrite <- E2; assumption. - 1: apply eqit_inv_Tau_r; pfold; red; unfold observe, _observe; assumption. - - rewrite CHECK in *. destruct ot1. - 1,3: pfold; red; unfold observe, _observe; rewrite <- E1; assumption. - 1: apply eqit_inv_Tau_l; pfold; red; unfold observe, _observe; assumption. + - rewrite CHECK in *. + flatten_goal. + 1,3: step; down; unfold observe; simpobs; assumption. + 1: apply eqit_inv_Tau_r; now step. + - rewrite CHECK in *. flatten_goal. + 1,3: step; down; unfold observe; simpobs; assumption. + 1: apply eqit_inv_Tau_l; now step. Qed. End eqit_inv. From 8392287c3d5917ec7f14bc496366ffca43d73e2c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 17:38:36 -0500 Subject: [PATCH 032/189] transitivity-1 --- theories/Eq/Eqit.v | 56 +++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 53c60c5f..a2c3899a 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -209,6 +209,7 @@ Ltac taur := apply EqTauR; only 1: auto. (* RTODO: paco transformers. *) Ltac pstep := step. +Ltac pstep_reverse := backstep. Ltac pfold := step. Ltac punfold H := step in H. Ltac paco2_fold := step. @@ -831,13 +832,13 @@ Qed. Lemma eqit_Tau_l {E R1 R2 RR} b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR true b2 t1 t2 -> eqit RR true b2 (Tau t1) t2. Proof. - intros. pstep. econstructor; eauto. punfold H. + intros. pstep. econstructor; eauto. punfold H. now down. Qed. Lemma eqit_Tau_r {E R1 R2 RR} b1 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 true t1 t2 -> eqit RR b1 true t1 (Tau t2). Proof. - intros. pstep. econstructor; eauto. punfold H. + intros. pstep. econstructor; eauto. punfold H. now down. Qed. Lemma tau_euttge {E R} (t: itree E R) : @@ -871,50 +872,69 @@ Proof. intros. destruct H; eauto. Qed. +(* core proof: transitivity of eqit *) Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t2 t3 (INL: eqit RR1 b1 b2 t1 t2) (INR: eqit RR2 b1 b2 t2 t3): @eqit E _ _ (rcompose RR1 RR2) b1 b2 t1 t3. Proof. - revert_until b2. pcofix CIH. intros. - pstep. punfold INL. punfold INR. red in INL, INR |- *. genobs_clear t3 ot3. + unfold eqit. revert_until b2. + (* we'll need the coinductive reasoning later: elements of the chain + are transitive w.r.t. eqit. *) + coinduction c CIH. intros. + punfold INL. punfold INR. down. genobs t3 ot3. + (* we begin with induction on t1 ~ t2. + in each case, we perform induction on t2 ~ t3. *) hinduction INL before CIH; intros; subst; clear t1 t2. + (* Ret, straightforward *) - remember (RetF r2) as ot. - hinduction INR before CIH; intros; inv Heqot; eauto with paco itree. - - assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). + hinduction INR before CIH; intros; inv Heqot; eauto with itree. + - genobs t3 ot3. + (* need something more: t3 is either a τ node, or it isn't. *) + assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). { destruct ot3; eauto; right; red; intros; inv H. } destruct DEC as [EQ | EQ]. - + destruct EQ as [m3 ?]; subst. - econstructor. right. pclearbot. eapply CIH; eauto with paco. - eapply eqit_inv_Tau. eauto with itree. + (* τ - τ case: strip both. *) + + destruct EQ as [m3 ?]; subst; simpobs. + econstructor. + eapply CIH; eauto. + apply eqit_inv_Tau. + now step. + (* τ - ̸τ : we do further case analysis. *) + inv INR; try (exfalso; eapply EQ; eauto; fail). - econstructor; eauto. - pclearbot. punfold REL. red in REL. + taul. + pclearbot. punfold REL. down. hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). * remember (RetF r1) as ot. hinduction REL0 before CIH; intros; inv Heqot; eauto with paco itree. * remember (VisF e k1) as ot. hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. right. - destruct (REL v), (REL0 v); try contradiction. eauto. + econstructor. intros. + apply (CIH _ _ _ (REL v) (REL0 v)). * eapply IHREL0; eauto. pstep_reverse. destruct b1; inv CHECK0. - apply eqit_inv_Tau_r. eauto with itree. + apply eqit_inv_Tau_r. now step. - remember (VisF e k2) as ot. hinduction INR before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. econstructor. intros. - destruct (REL v), (REL0 v); try contradiction; eauto with itree. + apply (CIH _ _ _ (REL0 v) (REL v)). - eauto with itree. - remember (TauF t0) as ot. + genobs t3 ot3. hinduction INR before CIH; intros; try inversion Heqot; subst. - 2,3: eauto 3 with itree. - eapply IHINL. pclearbot. punfold REL. eauto with itree. + + eapply IHINL. + now instantiate (1:=(Tau m2)). + pclearbot. punfold REL. eauto with itree. + + now eapply IHINL. + + taur. eapply IHINR; eauto. Qed. #[global] Instance Transitive_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b1 b2: bool): Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). Proof. - red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mon, eqit_trans; eauto. + red; intros. assert (TRANS := trans_rcompose RR). + + eapply eqit_mon. eqit_trans; eauto. Qed. #[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): From 370300cdcc3ff437d1b438c9611b1ea80f93959a Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 17:46:34 -0500 Subject: [PATCH 033/189] Eutt is an equivalence relation. --- theories/Eq/Eqit.v | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index a2c3899a..f136a5c1 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -404,6 +404,20 @@ Proof. induction euv; eauto with itree. Qed. +Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) + (LEb1: b1 -> b1') + (LEb2: b2 -> b2') + (LERR: RR <= RR'): + @eqit E R1 R2 RR b1 b2 <= eqit RR' b1' b2'. +Proof. + unfold eqit at -1. repeat intro. + revert a a0 H. + coinduction c CIH; intros. + punfold H. down. induction H; pclearbot; eauto with itree. + econstructor. now apply LERR. +Qed. + + (* Definition flip_clo {A B C} clo r := @flip A B C (clo (@flip B A C r)). @@ -933,8 +947,8 @@ Qed. Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). Proof. red; intros. assert (TRANS := trans_rcompose RR). - - eapply eqit_mon. eqit_trans; eauto. + eapply eqit_mono, eqit_trans; eauto. + repeat intro. now apply TRANS. Qed. #[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): @@ -957,7 +971,8 @@ Qed. #[global] Instance Transitive_eutt {E R RR} : Transitive RR -> Transitive (@eutt E R R RR). Proof. - red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mon, eqit_trans; eauto. + red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. + repeat intro. now apply TRANS. Qed. #[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). @@ -972,8 +987,8 @@ Qed. (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). Proof. repeat intro. guclo eqit_clo_trans. econstructor; cycle -3; eauto. - - eapply eqit_mon, H; eauto; discriminate. - - eapply eqit_mon, H0; eauto; discriminate. + - eapply eqit_mono, H; eauto; discriminate. + - eapply eqit_mono, H0; eauto; discriminate. Qed. #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: @@ -1037,7 +1052,7 @@ Qed. (@eqit E R R RS true false). Proof. repeat intro. assert (HYP := trans_rcompose RS TRANS). - do 2 (eapply eqit_mon, eqit_trans; eauto). + do 2 (eapply eqit_mono, eqit_trans; eauto). Qed. #[global] Instance euttge_cong_euttge_eq {E R}: From 798b869d19c22e71536a9c3b1a1447cf51e4b409 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 18:03:16 -0500 Subject: [PATCH 034/189] Strengthened and used definition of down. --- theories/Eq/Eqit.v | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f136a5c1..8127d13d 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -186,12 +186,27 @@ Tactic Notation "coinduction" | unfold eqit; coinduction R H ]. +Ltac down_ H := + repeat progress ( + cbn [eqit_mon body] in H; + unfold eqit_ in H + ). + +Ltac down_goal := + repeat progress ( + cbn [eqit_mon body]; + unfold eqit_ + ). + Ltac down := repeat progress ( cbn [eqit_mon body] in *; unfold eqit_ in * ). +Tactic Notation "down" "in" hyp(H) := down_ H. +Tactic Notation "down" "in" "goal" := down_goal. + Ltac solve_eqitF := match goal with | [h1: _ = observe _ , h2: _ = observe _ |- _] => @@ -738,13 +753,13 @@ Proof. intros H x; punfold H; apply eqitF_inv_VisF with (x := x) in H; pclearbot; auto. Qed. - +(* RTODO: SHOW *) (* This proof was quite simplified by tactics *) Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. Proof. intros. - step in H; cbn in H; unfold eqit_ in H. + step in H. down. dependent induction H. - step in REL. step. down. @@ -760,7 +775,7 @@ Lemma eqit_inv_Tau_r {E R1 R2 RR} b2 t1 t2 : @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. Proof. intros. - step in H; cbn in H; unfold eqit_ in H. + step in H. down. dependent induction H. - step. down. From 1069773a581789722056f8dd037a02b97a081533 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Feb 2026 18:03:31 -0500 Subject: [PATCH 035/189] Documentation: some notes on eutt transitivity --- theories/Eq/Eqit.v | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 8127d13d..f24f3e24 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -518,9 +518,10 @@ Proof. Qed. -(* RTODO: DOCUMENT *) +(* RTODO: ask yannick exactly what's going on, then document *) (* - eutt is NOT valid up to eutt + "eutt is NOT valid up to eutt" and this is supposedly equivalent to + transitivity, but we did prove things are transitive... what's going on? *) (* eutt is still transitive, but for different reasons *) @@ -934,6 +935,7 @@ Proof. taul. pclearbot. punfold REL. down. hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). + (* now we can handle each subcase with another layer of induction *) * remember (RetF r1) as ot. hinduction REL0 before CIH; intros; inv Heqot; eauto with paco itree. * remember (VisF e k1) as ot. From 813d9e0310bae577e7e63d2fe92093e703177bc2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 18 Feb 2026 14:51:08 -0500 Subject: [PATCH 036/189] build --- .Makefile.d | 384 ++++++++++++++++++++++++++-------------------------- 1 file changed, 192 insertions(+), 192 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 3e17e708..0782b1d9 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker From db7f2842eb634ff8ba518cf9b1430ce622773c90 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 18 Feb 2026 19:03:04 -0500 Subject: [PATCH 037/189] done up to bind/before --- theories/Eq/Eqit.v | 179 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 139 insertions(+), 40 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f24f3e24..a1f958aa 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -221,7 +221,7 @@ end. Ltac taul := apply EqTauL; only 1: auto. Ltac taur := apply EqTauR; only 1: auto. -(* RTODO: paco transformers. *) +(* RTODO: rewrite with paco transformers. *) Ltac pstep := step. Ltac pstep_reverse := backstep. @@ -997,18 +997,21 @@ Proof. constructor; try typeclasses eauto. Qed. -#[global] Instance geuttgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 r rg +(* #[global] Instance geuttgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). + (@eqit_ E R1 R2 RS b1 b2 (eqit RS b1 b2)). Proof. - repeat intro. guclo eqit_clo_trans. econstructor; cycle -3; eauto. + repeat intro. + eapply eqit_trans. + eapply eqit_mon. repeat intro. + guclo eqit_clo_trans. econstructor; cycle -3; eauto. - eapply eqit_mono, H; eauto; discriminate. - eapply eqit_mono, H0; eauto; discriminate. -Qed. +Qed. *) -#[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: +(* #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). Proof. @@ -1045,23 +1048,108 @@ Qed. (gpaco2 (@eqit_ E R1 R2 RS true true id) (eqitC RS true true) r rg). Proof. eapply geutt_cong_euttge; intros; subst; eauto. -Qed. +Qed. *) +(* RTODO: Ask ^ about above. Then do the following: *) +(* RTODO: Ask about flip, as this is different *) #[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) + (* we inserted this flip! *) + Proper (eq_itree RR1 ==> (eq_itree RR2) ==> flip impl) (@eqit E R1 R2 RS b1 b2). Proof. - ginit. intros. eapply geuttgen_cong_eqit; eauto. gfinal. eauto. -Qed. + repeat intro. unfold flip, eq_itree in *. + + (* Given *) + (* LERR1: ∀ x x' y. RR1 x x' -> RS x' y -> RS x y *) + (* LERR2: ∀ x y y'. RR2 y y' -> RS x y' -> RS x y, *) + (* Prove the diagram commutes *) + + (* + y-(eqit RS b1 b2) → y0 + ↑ ↑ + ≅RR1 ≅RR2 + | | + x-(?eqit RS b1 b2)→ x0 + *) + + (* + by LERR1, Ret nodes of x and Ret nodes of y0 are related by RS. + by LERR2, Ret nodes of x0 and Ret nodes of y are related by RS. + RR1 ∘ RS = RS + RR2 ∘ RS = RS + so RR1 and RR2 are involutions over RS + *) + (* idtac. + replace RS with (rcompose RR1 RS). + eapply eqit_trans. + eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); try easy; eauto. + replace RS with (rcompose RS RR2). + eapply eqit_trans. + eauto. + eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy; eauto. + - + (* seems true, proving requires a different shape of goal *) + apply functional_extensionality. intro. + apply functional_extensionality. intro. *) + + + (* Fail symmetry. *) + (* without flip, *) + (* RR2 is not symmetric, so we fail here. *) +(* Abort. *) +(* other attempt: with induction, gets deep and a bit nasty *) + step in H. + step in H0. + step in H1. + (* step. *) + coinduction c CIH. + + down. + revert H0. + revert CIH. + revert x0. revert H. revert x. + + (* the dependent induction is not quite right *) + dependent induction H1; intros. + - simpobs. + inv H; try easy. + inv H0; try easy. + constructor; eauto. + - simpobs. + dependent induction H; try easy. + dependent induction H0; try easy. + simpobs. + constructor. + Search elem. + (* this feels true *) + shelve. + - simpobs. + inv H; try easy. + inv H0; try easy. + repeat lazymatch goal with | H : existT _ _ _ = _ |- _ => dependent destruction H end. + constructor. + intros v. + apply (b_chain c), (gfp_bchain c). + (* diagram chase again, feels true but how to prove? *) + shelve. + - eapply IHeqitF; eauto. + shelve. + (* poor induction's fault *) + + - simpobs. inv H0; try easy. taur. eapply IHeqitF; eauto. + 2: now backstep. + (* also induction's fault *) + shelve. +Abort. #[global] Instance eqitgen_cong_eqit_eq {E R1 R2 RS} b1 b2: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (@eqit E R1 R2 RS b1 b2). Proof. - ginit. intros. rewrite H1, H0. gfinal. eauto. -Qed. +Abort. + (* ginit. intros. rewrite H1, H0. gfinal. eauto. *) #[global] Instance euttge_cong_euttge {E R RS} (TRANS: Transitive RS): @@ -1069,7 +1157,8 @@ Qed. (@eqit E R R RS true false). Proof. repeat intro. assert (HYP := trans_rcompose RS TRANS). - do 2 (eapply eqit_mono, eqit_trans; eauto). + (* needed a bit of repair *) + do 2 (eapply eqit_mono with (RR:=rcompose RS RS); repeat intro; eauto; eapply eqit_trans; eauto). Qed. #[global] Instance euttge_cong_euttge_eq {E R}: @@ -1089,14 +1178,14 @@ Proof. split; intros H. - eapply transitivity. 2 : { apply H. } red. apply eqit_Tau_r. reflexivity. - - red. red. pstep. econstructor. auto. punfold H. + - red. red. pstep. econstructor. auto. now punfold H. Qed. Lemma tau_eqit_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), eqit RR true false t s -> eqit RR true false (Tau t) s. Proof. intros. - red. pstep. econstructor. auto. punfold H. + red. pstep. econstructor. auto. now punfold H. Qed. Lemma tau_eutt_RR_r : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), @@ -1106,27 +1195,27 @@ Proof. split; intros H. - eapply transitivity. apply H. red. apply eqit_Tau_l. reflexivity. - - red. red. pstep. econstructor. auto. punfold H. + - red. red. pstep. econstructor. auto. now punfold H. Qed. Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): (Ret r1) ≈ t2 -> t2 ≳ (Ret r1). Proof. - intros Heutt. punfold Heutt; red in Heutt; cbn in Heutt. + intros Heutt. step in Heutt. down. rewrite itree_eta. remember (RetF r1) as ot1. - induction Heutt; intros; try discriminate. - - inv Heqot1. reflexivity. - - inv Heqot1. rewrite tau_euttge. rewrite itree_eta. now apply IHHeutt. + dependent induction Heutt; intros; try discriminate. + - inv x. reflexivity. + - inv x. rewrite tau_euttge. rewrite itree_eta. now apply IHHeutt. Qed. Lemma eutt_inv_Ret_r {E R} (t1: itree E R) (r2: R): t1 ≈ (Ret r2) -> t1 ≳ (Ret r2). Proof. - intros Heutt. punfold Heutt; red in Heutt; cbn in Heutt. + intros Heutt. step in Heutt. down. rewrite itree_eta. remember (RetF r2) as ot2. - induction Heutt; intros; try discriminate. - - inv Heqot2. reflexivity. - - inv Heqot2. rewrite tau_euttge. rewrite itree_eta. now apply IHHeutt. + dependent induction Heutt; intros; try discriminate. + - inv x. reflexivity. + - inv x. rewrite tau_euttge. rewrite itree_eta. now apply IHHeutt. Qed. (** ** Equations for core combinators *) @@ -1162,7 +1251,7 @@ Proof. rewrite unfold_bind; cbn. pstep. constructor. - intros; red. left. apply bind_ret_l. + intros. apply bind_ret_l. Qed. Lemma unfold_iter {E A B} (f : A -> itree E (A + B)) (x : A) : @@ -1192,21 +1281,28 @@ Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 b2 (Tau t1) (Tau t2) <-> eqit RR b1 b2 t1 t2. Proof. split; intros H. - - punfold H. red in H. simpl in *. pstep. red. - remember (TauF t1) as ot1. remember (TauF t2) as ot2. - hinduction H before RR; intros; subst; try inv Heqot1; try inv Heqot2; eauto. - + pclearbot. punfold REL. - + inv H; eauto with itree. - + inv H; eauto with itree. - - pstep. constructor; auto. -Qed. + - step in H. step. down. + (* remember (TauF t1) as ot1. remember (TauF t2) as ot2. *) + move H before RR. revert_until H. + dependent induction H; intros. + + now backstep. + + inv H. + * taul. eapply IHeqitF; eauto. + * taul. eapply IHeqitF; eauto. + * assumption. + + inv H. + * taur. eapply IHeqitF; eauto. + * assumption. + * taur. eapply IHeqitF; eauto. + - step. now constructor. +Qed. Lemma eqit_Vis_gen b1 b2 {U1 U2} (p : U1 = U2) (e1 : E U1) (e2 : E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) : eqeq E p e1 e2 -> pweqeq (eqit RR b1 b2) p k1 k2 -> eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2). Proof. - destruct p; cbn. intros <- H. pstep. econstructor. left. apply H. + destruct p; cbn. intros <- H. pstep. econstructor. apply H. Qed. Lemma eqit_Vis b1 b2 {U} (e : E U) @@ -1236,7 +1332,8 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo : itree. -Lemma eqit_clo_bind b1 b2 vclo +(* RTODO: talk about this one and closures in general. *) +(* Lemma eqit_clo_bind b1 b2 vclo (MON: monotone2 vclo) (CMP: compose (eqitC RR b1 b2) vclo <3= compose vclo (eqitC RR b1 b2)) (ID: id <3= vclo): @@ -1260,16 +1357,14 @@ Proof. - destruct b2; try discriminate. guclo eqit_clo_trans. econstructor; auto_ctrans_eq; eauto; try reflexivity. eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. -Qed. +Qed. *) Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eutt RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. ginit. guclo eqit_clo_bind. - econstructor; eauto. intros; subst. gfinal. right. apply EQK. eauto. -Qed. +Abort. End eqit_h. @@ -1285,9 +1380,13 @@ Proof. apply eqit_Tau. Qed. -Arguments eqit_clo_bind : clear implicits. +(* RTODO: PUT BACK *) +(* Arguments eqit_clo_bind : clear implicits. *) #[global] Hint Constructors eqit_bind_clo : itree. +Goal False. +fail. + Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) t1 t2 k1 k2 : From b8a1ece5964175ab8bc49fa9f6ea6634a64fce57 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 18 Feb 2026 22:51:57 -0500 Subject: [PATCH 038/189] done with hard proof: eqitgen_cong_eqit --- theories/Eq/Eqit.v | 129 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 99 insertions(+), 30 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index a1f958aa..52382051 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -433,16 +433,13 @@ Proof. Qed. -(* -Definition flip_clo {A B C} clo r := @flip A B C (clo (@flip B A C r)). - -Lemma eqitF_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 vclo r: - flip (eqitF (flip RR) b2 b1 (flip_clo vclo) (flip r)) <2= @eqitF E R1 R2 RR b1 b2 vclo r. +Lemma eqitF_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 r: + flip (eqitF (flip RR) b2 b1 (flip r)) <= @eqitF E R1 R2 RR b1 b2 r. Proof. - intros. induction PR; eauto with itree. + repeat intro; induction H; eauto with itree. Qed. -*) + #[global] Hint Unfold flip : itree. @@ -1049,17 +1046,17 @@ Qed. Proof. eapply geutt_cong_euttge; intros; subst; eauto. Qed. *) -(* RTODO: Ask ^ about above. Then do the following: *) +(* RTODO: Ask ^ about above: are they important, or just + important for this one? *) -(* RTODO: Ask about flip, as this is different *) #[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - (* we inserted this flip! *) + (* we can insert this flip to make things work out: *) Proper (eq_itree RR1 ==> (eq_itree RR2) ==> flip impl) (@eqit E R1 R2 RS b1 b2). Proof. - repeat intro. unfold flip, eq_itree in *. + repeat intro; unfold flip, eq_itree in *. (* Given *) (* LERR1: ∀ x x' y. RR1 x x' -> RS x' y -> RS x y *) @@ -1067,21 +1064,61 @@ Proof. (* Prove the diagram commutes *) (* - y-(eqit RS b1 b2) → y0 - ↑ ↑ - ≅RR1 ≅RR2 - | | - x-(?eqit RS b1 b2)→ x0 + y -(eqit RS b1 b2) → y0 + ↑ ↑ + ≅RR1 ≅RR2 + | | + x -(?eqit RS b1 b2)→ x0 *) - (* - by LERR1, Ret nodes of x and Ret nodes of y0 are related by RS. + (* Problem: this diagram does not have a path from x to x0. *) + (* solution: flip ≅RR2, as both boolean flags are false to + begin with this is a "symmetry" on trees only. *) + +(* + y -(eqit RS b1 b2) → y0 + ↑ | + ≅RR1 ≅(flip RR2) + | ↓ + x -(?eqit RS b1 b2)→ x0 + +(* This diagram has a clear path, and LERR1 and LERR2 get us +the correlaries we need to arrive there: namely: *) +*) +(* by LERR1, Ret nodes of x and Ret nodes of y0 are related by RS. by LERR2, Ret nodes of x0 and Ret nodes of y are related by RS. - RR1 ∘ RS = RS - RR2 ∘ RS = RS - so RR1 and RR2 are involutions over RS + RR1 ∘ RS <= RS + (flip RR2) ∘ RS <= RS + so RS is closed under left composition by RR1 + and right composition by flip RR2. *) - (* idtac. + idtac. + assert (rcompose RR1 RS <= RS) by (intros ? ? [? ?]; eauto). + assert (rcompose RS (flip RR2) <= RS) by (intros ? ? [? ?]; eauto). + assert (eqit RR1 b1 b2 x y) by + (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). + assert (eqit RR2 b1 b2 x0 y0). + (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). + apply eqit_flip in H0. + + specialize (eqit_trans _ _ _ _ _ _ _ H4 H1) as H6. + (* first diagonal *) + assert (eqit RS b1 b2 x y0) as Hdiag1 by + (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). + eapply eqit_mono with (RR:=(rcompose RS (flip RR2))); eauto. + eapply eqit_trans; eauto. + eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. +Qed. + +(* Graveyard *) + + (* apply eqit_flip in H5 as Hflip. + apply eqit_flip in Hdiag1 as HdiagR. + + specialize (eqit_trans _ _ _ _ _ _ _ HdiagR) as Hfinal. + + + replace RS with (rcompose RR1 RS). eapply eqit_trans. eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); try easy; eauto. @@ -1092,7 +1129,7 @@ Proof. - (* seems true, proving requires a different shape of goal *) apply functional_extensionality. intro. - apply functional_extensionality. intro. *) + apply functional_extensionality. intro. (* Fail symmetry. *) @@ -1142,14 +1179,19 @@ Proof. 2: now backstep. (* also induction's fault *) shelve. -Abort. +Abort. *) #[global] Instance eqitgen_cong_eqit_eq {E R1 R2 RS} b1 b2: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (@eqit E R1 R2 RS b1 b2). Proof. -Abort. - (* ginit. intros. rewrite H1, H0. gfinal. eauto. *) + repeat intro. + (* Ask during meeting: why failing? *) + Fail rewrite H. + Fail rewrite H0. + eapply @eqitgen_cong_eqit with (RR1:=eq); intros; subst; eauto. + now rewrite H2. +Qed. #[global] Instance euttge_cong_euttge {E R RS} (TRANS: Transitive RS): @@ -1333,6 +1375,31 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : Hint Constructors eqit_bind_clo : itree. (* RTODO: talk about this one and closures in general. *) +Lemma eqit_clo_bind b1 b2 : + eqit_bind_clo b1 b2 <= eqit_mon RR b1 b2. +Proof. + repeat intro. down. Search gfp. + intros rr. pcofix CIH. intros. destruct PR. + guclo eqit_clo_trans. econstructor; auto_ctrans_eq. + 1,2: rewrite unfold_bind; reflexivity. + punfold EQV. unfold_eqit. + hinduction EQV before CIH; intros; pclearbot; cbn; + repeat (change (ITree.subst ?k ?m) with (ITree.bind m k)). + - guclo eqit_clo_trans. econstructor; auto_ctrans_eq. + 1,2: reflexivity. + eauto with paco. + - gstep. econstructor. eauto 7 with paco itree. + - gstep. econstructor. intros. red in CMP. unfold id in ID. apply ID. eauto 7 with paco itree. + - destruct b1; try discriminate. + guclo eqit_clo_trans. + econstructor; auto_ctrans_eq; eauto; try reflexivity. + eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. + - destruct b2; try discriminate. + guclo eqit_clo_trans. econstructor; auto_ctrans_eq; eauto; try reflexivity. + eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. +Qed. + + (* Lemma eqit_clo_bind b1 b2 vclo (MON: monotone2 vclo) (CMP: compose (eqitC RR b1 b2) vclo <3= compose vclo (eqitC RR b1 b2)) @@ -1380,12 +1447,12 @@ Proof. apply eqit_Tau. Qed. -(* RTODO: PUT BACK *) +(* RTODO: PUT BACK IF NEEDED *) (* Arguments eqit_clo_bind : clear implicits. *) #[global] Hint Constructors eqit_bind_clo : itree. -Goal False. -fail. +(* Goal False. +fail. *) Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) @@ -1394,7 +1461,9 @@ Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (forall r1 r2, RR r1 r2 -> eqit RS b1 b2 (k1 r1) (k2 r2)) -> @eqit E _ _ RS b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. ginit. guclo eqit_clo_bind. unfold eqit in *. + intros. + + ginit. guclo eqit_clo_bind. unfold eqit in *. econstructor; eauto with paco. Qed. From 1b15c1da8c8de6e7a90e453746373374133ec798 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 18 Feb 2026 23:55:05 -0500 Subject: [PATCH 039/189] stopping to warm up in setoid hell --- theories/Eq/Eqit.v | 90 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 67 insertions(+), 23 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 52382051..a4102909 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -221,6 +221,7 @@ end. Ltac taul := apply EqTauL; only 1: auto. Ltac taur := apply EqTauR; only 1: auto. +(* Tour 1: *) (* RTODO: rewrite with paco transformers. *) Ltac pstep := step. @@ -514,7 +515,7 @@ Proof. easy. Qed. - +(* Tour extra: *) (* RTODO: ask yannick exactly what's going on, then document *) (* "eutt is NOT valid up to eutt" and this is supposedly equivalent to @@ -751,7 +752,7 @@ Proof. intros H x; punfold H; apply eqitF_inv_VisF with (x := x) in H; pclearbot; auto. Qed. -(* RTODO: SHOW *) +(* Tour 2: *) (* This proof was quite simplified by tactics *) Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. @@ -1046,14 +1047,18 @@ Qed. Proof. eapply geutt_cong_euttge; intros; subst; eauto. Qed. *) -(* RTODO: Ask ^ about above: are they important, or just - important for this one? *) + +(* Tour extra 2: *) +(* RTODO: Ask ^ about above this one: are they important, or just + important for this one? If latter, they are not needed. *) + + +(* Tour 3: Show this proof. (Q): *) #[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - (* we can insert this flip to make things work out: *) - Proper (eq_itree RR1 ==> (eq_itree RR2) ==> flip impl) + Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) (@eqit E R1 R2 RS b1 b2). Proof. repeat intro; unfold flip, eq_itree in *. @@ -1072,7 +1077,7 @@ Proof. *) (* Problem: this diagram does not have a path from x to x0. *) - (* solution: flip ≅RR2, as both boolean flags are false to + (* Solution: flip ≅RR2, as both boolean flags are false to begin with this is a "symmetry" on trees only. *) (* @@ -1082,8 +1087,8 @@ Proof. | ↓ x -(?eqit RS b1 b2)→ x0 -(* This diagram has a clear path, and LERR1 and LERR2 get us -the correlaries we need to arrive there: namely: *) +(* This diagram has a clear path (lifting with eqit_mono), + and LERR1 and LERR2 get us the correlaries we need to arrive there: namely: *) *) (* by LERR1, Ret nodes of x and Ret nodes of y0 are related by RS. by LERR2, Ret nodes of x0 and Ret nodes of y are related by RS. @@ -1092,24 +1097,44 @@ the correlaries we need to arrive there: namely: *) so RS is closed under left composition by RR1 and right composition by flip RR2. *) + (* We use a mix of foreward and backward reasoning. *) + idtac. + (* build arrows and strengthen *) assert (rcompose RR1 RS <= RS) by (intros ? ? [? ?]; eauto). assert (rcompose RS (flip RR2) <= RS) by (intros ? ? [? ?]; eauto). assert (eqit RR1 b1 b2 x y) by - (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). - assert (eqit RR2 b1 b2 x0 y0). + (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). + assert (eqit RR2 b1 b2 x0 y0) by (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). - apply eqit_flip in H0. - specialize (eqit_trans _ _ _ _ _ _ _ H4 H1) as H6. (* first diagonal *) - assert (eqit RS b1 b2 x y0) as Hdiag1 by + specialize (eqit_trans _ _ _ _ _ _ _ H4 H1) as Hdiag_weak. + assert (eqit RS b1 b2 x y0) as Hdiag by (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). + + (* reverse the final arrow *) + apply eqit_flip in H0. + + (* backward reasoning, straightforward *) eapply eqit_mono with (RR:=(rcompose RS (flip RR2))); eauto. eapply eqit_trans; eauto. eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. Qed. +(* +Short version of the proof using only backward reasoning: + eapply eqit_mono with (b1:=b1) (b2:=b2) (RR:=(rcompose RS (flip RR2))); + try intros ? ? [? ?]; eauto. + eapply eqit_trans; eauto. + eapply eqit_mono with (RR:=rcompose RR1 RS); try intros ? ? [? ?]; eauto. + eapply eqit_trans; eauto. + eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy. + apply eqit_flip in H0. + now eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)). + *) + + (* Graveyard *) (* apply eqit_flip in H5 as Hflip. @@ -1374,11 +1399,26 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo : itree. -(* RTODO: talk about this one and closures in general. *) +(* Ask about lattices: there's an implicit lattice of relations here, +but should we make it explicit? *) +(* Definition paco_body {X} (f : mon X) r := (fun y => f (cup r y)). *) + +(* monotonicity of paco_body, omitted *) + +(* Definition paco {X} (f : mon X) r := gfp paco_body. *) + +(* Q: best way we want to define this? *) Lemma eqit_clo_bind b1 b2 : eqit_bind_clo b1 b2 <= eqit_mon RR b1 b2. Proof. - repeat intro. down. Search gfp. +Admitted. + (* repeat intro. + inv H. + step in EQV. + down. + dependent induction EQV. + (* Q: Escaping setoid hell? *) + Fail rewrite unfold_bind. intros rr. pcofix CIH. intros. destruct PR. guclo eqit_clo_trans. econstructor; auto_ctrans_eq. 1,2: rewrite unfold_bind; reflexivity. @@ -1397,7 +1437,7 @@ Proof. - destruct b2; try discriminate. guclo eqit_clo_trans. econstructor; auto_ctrans_eq; eauto; try reflexivity. eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. -Qed. +Qed. *) (* Lemma eqit_clo_bind b1 b2 vclo @@ -1447,8 +1487,7 @@ Proof. apply eqit_Tau. Qed. -(* RTODO: PUT BACK IF NEEDED *) -(* Arguments eqit_clo_bind : clear implicits. *) +Arguments eqit_clo_bind : clear implicits. #[global] Hint Constructors eqit_bind_clo : itree. (* Goal False. @@ -1462,9 +1501,9 @@ Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 @eqit E _ _ RS b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros. - - ginit. guclo eqit_clo_bind. unfold eqit in *. - econstructor; eauto with paco. + step. + eapply eqit_clo_bind. + econstructor; eauto. Qed. Lemma eq_itree_clo_bind {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop) {U1 U2 UU} t1 t2 k1 k2 @@ -1516,7 +1555,12 @@ Lemma bind_ret_r {E R} : forall s : itree E R, ITree.bind s (fun x => Ret x) ≅ s. Proof. - ginit. pcofix CIH. intros. + intros. + unfold eq_itree. coinduction c CIH. + down. destruct (observe s). + (* Key: want to 'step' here, meaning want bind to be defined + with coinduction in a way that we can apply it. *) + (* Q: Why setoid hell? *) rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). cbn. destruct (observe s); cbn; gstep; constructor; eauto with paco itree. Qed. From a35f0ea53f1a7bcfc35b560e29a09620b5abaac1 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 19 Feb 2026 16:55:22 -0500 Subject: [PATCH 040/189] done up to 3 admitted proofs --- theories/Eq/Eqit.v | 346 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 287 insertions(+), 59 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index a4102909..846bfe1b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -759,6 +759,7 @@ Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : Proof. intros. step in H. down. + (* RTODO: report this bug (rm down) *) dependent induction H. - step in REL. step. down. @@ -1055,7 +1056,84 @@ Qed. *) (* Tour 3: Show this proof. (Q): *) -#[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 +(* Noe's note: add morphism *) +Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 + (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) + (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : + (@eqit E R1 R2 RS b1 b2) + with signature (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) + as eqitgen_cong_eqit. +Proof. +repeat intro; unfold flip, eq_itree in *. + + (* Given *) + (* LERR1: ∀ x x' y. RR1 x x' -> RS x' y -> RS x y *) + (* LERR2: ∀ x y y'. RR2 y y' -> RS x y' -> RS x y, *) + (* Prove the diagram commutes *) + + (* + y -(eqit RS b1 b2) → y0 + ↑ ↑ + ≅RR1 ≅RR2 + | | + x -(?eqit RS b1 b2)→ x0 + *) + + (* Problem: this diagram does not have a path from x to x0. *) + (* Solution: flip ≅RR2, as both boolean flags are false to + begin with this is a "symmetry" on trees only. *) + +(* + y -(eqit RS b1 b2) → y0 + ↑ | + ≅RR1 ≅(flip RR2) + | ↓ + x -(?eqit RS b1 b2)→ x0 + +(* This diagram has a clear path (lifting with eqit_mono), + and LERR1 and LERR2 get us the correlaries we need to arrive there: namely: *) +*) +(* by LERR1, Ret nodes of x and Ret nodes of y0 are related by RS. + by LERR2, Ret nodes of x0 and Ret nodes of y are related by RS. + RR1 ∘ RS <= RS + (flip RR2) ∘ RS <= RS + so RS is closed under left composition by RR1 + and right composition by flip RR2. + *) + (* We use a mix of foreward and backward reasoning. *) + + idtac. + (* build arrows and strengthen *) + assert (rcompose RR1 RS <= RS) by (intros ? ? [? ?]; eauto). + assert (rcompose RS (flip RR2) <= RS) by (intros ? ? [? ?]; eauto). + assert (eqit RR1 b1 b2 x y) by + (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). + assert (eqit RR2 b1 b2 x0 y0) by + (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). + + (* first diagonal *) + specialize (eqit_trans _ _ _ _ _ _ _ H4 H1) as Hdiag_weak. + assert (eqit RS b1 b2 x y0) as Hdiag by + (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). + + (* reverse the final arrow *) + apply eqit_flip in H0. + + (* backward reasoning, straightforward *) + eapply eqit_mono with (RR:=(rcompose RS (flip RR2))); eauto. + eapply eqit_trans; eauto. + eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. +Qed. + +(* #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: + Proper (eq_itree eq ==> eq_itree eq ==> flip impl) + (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). +Proof. + eapply geuttgen_cong_eqit; intros; subst; eauto. +Qed. *) + + +(* #[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) @@ -1120,7 +1198,7 @@ Proof. eapply eqit_mono with (RR:=(rcompose RS (flip RR2))); eauto. eapply eqit_trans; eauto. eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. -Qed. +Qed. *) (* Short version of the proof using only backward reasoning: @@ -1211,11 +1289,27 @@ Abort. *) (@eqit E R1 R2 RS b1 b2). Proof. repeat intro. + (* unfold eq_itree in H0. + assert (forall x x' y, (@eq R1 x x': Prop) -> (RS x' y: Prop) -> RS x y) as LERR. + intros. congruence. *) (* Ask during meeting: why failing? *) - Fail rewrite H. Fail rewrite H0. - eapply @eqitgen_cong_eqit with (RR1:=eq); intros; subst; eauto. - now rewrite H2. + Fail rewrite H. + eapply @eqitgen_cong_eqit with (RR1:=eq) (RR2:=eq); intros; subst; eauto. +Qed. + +#[global] Instance eqitgen_cong_eqit_eq' {E R1 R2 RS} b1 b2: + Proper (eq_itree eq ==> eq_itree eq ==> flip impl) + (@eqit E R1 R2 RS b1 b2). +Proof. + repeat intro. + (* unfold eq_itree in H0. + assert (forall x x' y, (@eq R1 x x': Prop) -> (RS x' y: Prop) -> RS x y) as LERR. + intros. congruence. *) + (* Ask during meeting: why failing? *) + rewrite H0. + rewrite H. + eapply @eqitgen_cong_eqit with (RR1:=eq) (RR2:=eq); intros; subst; eauto. Qed. #[global] Instance euttge_cong_euttge {E R RS} @@ -1490,8 +1584,6 @@ Qed. Arguments eqit_clo_bind : clear implicits. #[global] Hint Constructors eqit_bind_clo : itree. -(* Goal False. -fail. *) Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) @@ -1530,6 +1622,15 @@ Proof. intros; subst; auto. Qed. +(* #[global] Instance eqit_bind {E R S} b1 b2 : + Proper (eqitF eq b1 b2 ==> pointwise_relation _ (eqitF eq b1 b2) ==> + eqitF eq b1 b2) (@ITree.bind E R S). +Proof. + repeat intro; eapply eqit_bind'; eauto. + intros; subst; auto. +Qed. *) + + Lemma eqit_map {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) f1 f2 t1 t2 : @@ -1551,19 +1652,141 @@ Proof. intros; subst; auto. Qed. +Add Parametric Morphism {E R1}: + (eqit_ eq false false (gfp (eqit_mon eq false false))) + with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) + as eqitF_cong_eqit. +Proof. + red; intros. + backstep. rewrite H. rewrite H0. now step. +Qed. + + +(* We just need elem to respect eta *) +(* Add Parametric Morphism {E R1} (c : Chain (eqit_mon eq false false)): + (elem c) + with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) + as elem_cong_eqit. *) +(* Add Parametric Morphism {E R1} (c : Chain (eqit_mon eq false false)): + (eqit_ eq false false (elem c)) + with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) + as elem_cong_eqit. +Proof. + red; intros. + step in H. + step in H0. + down. + dependent induction H1. + - simpobs. inv H0; try easy. inv H; try easy. simpobs. + now constructor. + - simpobs. dependent induction H0; try easy. dependent induction H; try easy. simpobs. + constructor. + eapply (sub_gfp_Chain). + rewrite REL0. + rewrite REL1. + eapply (leq_gfp (eqit_mon eq false false)). + instantiate (1:=(elem c)). + repeat intro. + Search elem. + Search gfp. + + +Qed. *) + +(* Add Parametric Morphism {E R1} c : + (@elem _ _ (@eqit_mon E _ _ eq false false) c) + with signature (eq_itree (@eq R1) ==> eq_itree eq ==> flip impl) + as elem_cong_eqit. +Proof. + red; intros. + eapply (gfp_chain c). + rewrite H. + rewrite H0. + + step. + step in H. step in H0. down. + dependent induction H. + - dependent induction H0. + + simpobs. constructor. *) + +(* need a monotone function that lifts elements by Taus *) + +(* Lemma elem_tau_inv {E R1 R2 RS} b1 b2 c t1 t2 : + @elem _ _ (@eqit_mon E R1 R2 RS b1 b2) c (Tau t1) (Tau t2) -> + @elem _ _ (@eqit_mon E R1 R2 RS b1 b2) c t1 t2. +Proof. + intro. + Search elem. + eapply (compat_chain c). + instantiate (1:=(fun e t1 t2 => e (Tau t1) (Tau t2))). *) + Lemma bind_ret_r {E R} : forall s : itree E R, ITree.bind s (fun x => Ret x) ≅ s. Proof. + intros. - unfold eq_itree. coinduction c CIH. - down. destruct (observe s). - (* Key: want to 'step' here, meaning want bind to be defined - with coinduction in a way that we can apply it. *) - (* Q: Why setoid hell? *) - rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). cbn. - destruct (observe s); cbn; gstep; constructor; eauto with paco itree. -Qed. + + (* specialize (@itree_eta E) as eta. *) + + (* specialize (itree_eta s) as eta. step in eta. + specialize (itree_eta_ (ITree.bind s (fun x : R => Ret x))) as eta2. step in eta2. + rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). + cbn. + down. dependent induction eta. + simpobs. + - eauto. + - simpobs. step. constructor. + replace (ITree.subst (fun x : R => Ret x) m1) + with + (ITree.bind m1 (fun x : R => Ret x)) by reflexivity. + rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta m1). + + unfold observe in x0. + + cbn. + induction (observe s). + - eauto with itree. + - cbn. step. constructor. + revert s. *) + + + + (* problem: need to eta-expand under elem, which may not be possible. + or eta expand under b (elem), also not clear if possible. *) + intros. + rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). + revert s. + unfold eq_itree. + coinduction c CIH. + intros. cbn. + + + + destruct (observe s). + - eauto with itree. + - constructor. + (* apply (gfp_chain c). *) + replace (ITree.subst (fun x : R => Ret x) t) + with + (ITree.bind t (fun x : R => Ret x)) by reflexivity. + Fail rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta t). + + + (* we're right here, but eta-normal form blocks the way. *) + Fail rewrite CIH. + Fail (cbv in CIH; + cbv; apply CIH). + cbn. (* does nothing *) + step. + Fail rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta t). + Fail rewrite CIH. + + shelve. + - constructor. + shelve. + (* ditto here. *) +Admitted. Lemma bind_ret_r' {E R} (u : itree E R) (f : R -> R) : (forall x, f x = x) -> @@ -1578,8 +1801,11 @@ Lemma bind_bind {E R S T} : forall (s : itree E R) (k : R -> itree E S) (h : S -> itree E T), ITree.bind (ITree.bind s k) h ≅ ITree.bind s (fun r => ITree.bind (k r) h). Proof. - ginit. pcofix CIH. intros. - lazymatch goal with + unfold eq_itree. coinduction c CIH. + intros. +(* same problem. *) +Admitted. + (* lazymatch goal with | [ |- _ (ITree.bind ?t1 _) ?t2 ] => rewrite (itree_eta_ t1), (itree_eta_ t2); cbn end. lazymatch goal with @@ -1588,7 +1814,7 @@ Proof. destruct (observe s); cbn. 1: apply reflexivity. all: gstep; constructor; eauto with paco itree. -Qed. +Qed. *) Lemma map_map {E R S T}: forall (f : R -> S) (g : S -> T) (t : itree E R), ITree.map g (ITree.map f t) ≅ ITree.map (fun x => g (f x)) t. @@ -1683,31 +1909,31 @@ Lemma eqit_inv_bind_ret: @eqit E R1 R2 RR b1 b2 (kb a) (Ret b). Proof. intros. - punfold H. - unfold eqit_ in *. - cbn in *. + step in H. down. remember (observe (ITree.bind ma kb)) as otl. remember (RetF b) as tr. revert ma kb Heqotl b Heqtr. - induction H; try discriminate. - - intros; subst. - inv Heqtr. + dependent induction H; try solve [intros; subst; discriminate]. + - intros. + rewrite Heqtr. unfold observe, _observe in Heqotl; cbn in Heqotl. destruct (observe ma) eqn:Ema; try discriminate. exists r. split. * rewrite itree_eta, Ema. reflexivity. - * rewrite itree_eta_. unfold _observe. rewrite <- Heqotl. pfold; constructor; auto. + * rewrite itree_eta_. unfold _observe. rewrite <- Heqotl. + rewrite Heqtr in x. inv x. + pfold; constructor; auto. - intros. subst. unfold observe, _observe in Heqotl; cbn in Heqotl. destruct (observe ma) eqn:Ema; try discriminate. + exists r. split. * rewrite itree_eta, Ema. reflexivity. - * pfold. red. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. - + inv Heqotl. specialize (IHeqitF _ _ eq_refl _ eq_refl). - destruct IHeqitF as (a & ? & ?); exists a. + * pfold. down. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + + inv Heqotl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl _ eq_refl). + edestruct IHeqitF as (a & ? & ?); exists a. split; auto. - pfold; red; rewrite Ema. constructor; auto. - punfold H0. + pfold; down; rewrite Ema. constructor; auto. + now punfold H0. Qed. Lemma eutt_inv_bind_ret: @@ -1748,36 +1974,38 @@ Lemma eqit_inv_bind_vis : forall (x:X), eqit RR b1 b2 (ITree.bind (kxa x) kab) (kxc x)) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Vis e kxc)). Proof. - intros. punfold H. unfold eqit_ in H. cbn in *. + intros. punfold H. unfold eqit_ in H. down. remember (observe (ITree.bind ma kab)) as tl. remember (VisF e kxc) as tr. revert ma kab Heqtl kxc Heqtr. - induction H; try discriminate. + dependent induction H; try solve [intros; subst; discriminate]. - intros. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right. exists r. split. - * pfold; red. rewrite Ema. constructor. auto. - * pfold; red. unfold observe at 1; unfold _observe. rewrite <- Heqtl. - constructor; auto. + * pfold; down. rewrite Ema. constructor. auto. + * pfold; down. unfold observe at 1; unfold _observe. rewrite <- Heqtl. + simpobs. constructor; auto. + left. symmetry in Heqtl. - revert k2 REL Heqtr. inv_eq_VisF Heqtl. intros. - inv_eq_VisF Heqtr. + revert x. revert k2 REL Heqtr. inv_eq_VisF Heqtl. intros. + rewrite Heqtr in x. + cbn in x. + inv_eq_VisF x. exists k. split. - * pfold; red. rewrite Ema. constructor. red. left. apply reflexivity. + * pfold; down. rewrite Ema. constructor. down. reflexivity. * pclearbot. auto. - intros. subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn: Ema; try discriminate. + right; exists r; split. * rewrite itree_eta, Ema; reflexivity. - * pfold. red. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. - + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ eq_refl). + * pfold. down. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + + inv Heqtl. specialize (IHeqitF _ _ eq_refl eq_refl _ _ eq_refl _ eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. - pfold; red; rewrite Ema; constructor; punfold H0. + pfold; down; rewrite Ema; constructor; now punfold H0. * exists a. split; auto. - pfold; red; rewrite Ema; constructor; punfold H0. + pfold; down; rewrite Ema; constructor; now punfold H0. Qed. Lemma eutt_inv_bind_vis: @@ -1807,35 +2035,35 @@ Lemma eqit_inv_bind_tau: (exists (ma' : itree E A), eqit eq b1 b2 ma (Tau ma') /\ eqit RR b1 b2 (ITree.bind ma' kab) tc) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Tau tc)). Proof. - intros. punfold H. unfold eqit_ in H. cbn in H. + intros. punfold H. down. remember (observe (ITree.bind ma kab)) as tl. remember (TauF tc) as tr. revert ma kab Heqtl Heqtr. - induction H; try discriminate; intros. + dependent induction H; intros; try solve [subst; discriminate]. - inv Heqtr. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * pfold; red; rewrite Ema; constructor; auto. - * pfold; red; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + * pfold; down; rewrite Ema; constructor; auto. + * step; down; rewrite <- x; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. - * pfold; red; rewrite Ema; constructor; left; apply reflexivity. - * inv Heqtl. pclearbot. assumption. + * pfold; down; rewrite Ema; constructor; apply reflexivity. + * inv Heqtl. inv x. assumption. - subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * pfold; red; rewrite Ema; constructor; auto. - * pfold; red; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. - + inv Heqtl. specialize (IHeqitF _ _ eq_refl eq_refl). + * pfold; down; rewrite Ema; constructor; auto. + * pfold; down; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + + inv Heqtl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl eq_refl). destruct IHeqitF as [(t0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists t0. split; auto. - pfold; red; rewrite Ema; constructor 4; punfold H0. + pfold; down; rewrite Ema; constructor 4; now punfold H0. * exists a. split; auto. - pfold; red; rewrite Ema; constructor; punfold H0. + pfold; down; rewrite Ema; constructor; now punfold H0. - inv Heqtr. left; exists ma; split. - + pfold; constructor; auto. apply Reflexive_eqitF_eq. intros ?; left; apply reflexivity. - + pfold; assumption. + + pfold; constructor; auto. + + inv x; pfold; assumption. Qed. Lemma eutt_inv_bind_tau: @@ -1861,7 +2089,7 @@ Lemma eutt_Ret_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R1), Proof. intros. punfold H. - unfold eqit_ in H. + down. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -1876,7 +2104,7 @@ Lemma eutt_spin_Ret_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R2), Proof. intros. punfold H. - unfold eqit_ in H. + down. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -1891,7 +2119,7 @@ Lemma eutt_Vis_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k Proof. intros. punfold H. - unfold eqit_ in H. + down. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -1906,7 +2134,7 @@ Lemma eutt_spin_Vis_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k Proof. intros. punfold H. - unfold eqit_ in H. + down. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. From 52f71f49ff3579c0aa81f5a2d642228a1b853b69 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 19 Feb 2026 18:02:57 -0500 Subject: [PATCH 041/189] some more ideas, still cooking on it --- theories/Eq/Eqit.v | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 846bfe1b..3d3ee638 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1289,12 +1289,6 @@ Abort. *) (@eqit E R1 R2 RS b1 b2). Proof. repeat intro. - (* unfold eq_itree in H0. - assert (forall x x' y, (@eq R1 x x': Prop) -> (RS x' y: Prop) -> RS x y) as LERR. - intros. congruence. *) - (* Ask during meeting: why failing? *) - Fail rewrite H0. - Fail rewrite H. eapply @eqitgen_cong_eqit with (RR1:=eq) (RR2:=eq); intros; subst; eauto. Qed. @@ -1724,9 +1718,16 @@ Lemma bind_ret_r {E R} : forall s : itree E R, ITree.bind s (fun x => Ret x) ≅ s. Proof. - + (* idea: go from eqit_mon elem to gfp (eqit_mon elem) somehow *) + unfold eq_itree. + coinduction c CIH. intros. + apply (gfp_bchain c). + rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). + Search gfp. + + (* specialize (@itree_eta E) as eta. *) (* specialize (itree_eta s) as eta. step in eta. @@ -1779,6 +1780,8 @@ Proof. cbv; apply CIH). cbn. (* does nothing *) step. + Set Printing All. + Fail unfold go. Fail rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta t). Fail rewrite CIH. From 64460ba2e570c7f7843b2aa8a18fe5fc3620555c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 20 Feb 2026 16:51:32 -0500 Subject: [PATCH 042/189] done w tricky bind_r proof --- theories/Eq/Eqit.v | 172 ++++++++++++++++++++++++++------------------- 1 file changed, 101 insertions(+), 71 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 3d3ee638..154721e1 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -692,6 +692,27 @@ Proof. pstep. cbn. unfold eqit_. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. +#[global] Instance observing_sub_elem (c : Chain (eqit_mon eq false false)) (l r : itree E R) : + subrelation (@observing E R R eq) (elem c). +Proof. + repeat intro. + inv H. step. down. rewrite observing_observe. + apply (gfp_bchain c). reflexivity. +Qed. + +(* Add Parametric Morphism (c : Chain (eqit_mon eq false false)) : + (@eqit_mon E R R eq false false (elem c)) + with signature (@eq_itree E R R eq ==> eq_itree eq ==> flip impl) + as elem_eq_itree_proper. +Proof. + red; intros. + step in H. step in H0. + down. genobs x otx. genobs x0 otx0. + dependent induction H1. + - simpobs. inv H; inv H0; try easy. now constructor. + - simpobs. inv H; inv H0; try easy. constructor. + apply observing_sub_elem; eauto. Search elem. *) + (** ** Eta-expansion *) Lemma itree_eta_ (t : itree E R) : t ≅ go (_observe t). @@ -1712,84 +1733,85 @@ Proof. intro. Search elem. eapply (compat_chain c). - instantiate (1:=(fun e t1 t2 => e (Tau t1) (Tau t2))). *) + instantiate (1:=(fun t1 t2 => (Tau t1) (Tau t2))). *) -Lemma bind_ret_r {E R} : - forall s : itree E R, - ITree.bind s (fun x => Ret x) ≅ s. -Proof. - (* idea: go from eqit_mon elem to gfp (eqit_mon elem) somehow *) - unfold eq_itree. - coinduction c CIH. - intros. - apply (gfp_bchain c). - rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). - Search gfp. - - +(* Genuine try: prove eta expansion is compatible with b. *) +(* Add Parametric Morphism (c : Chain (eqit_mon eq false false)) : + (@eqit_mon E R R eq false false (elem c)) + with signature (@eq_itree E R R eq ==> eq_itree eq ==> flip impl) + as elem_eq_itree_proper. +Proof. + red; intros. + step in H. step in H0. + down. genobs x otx. genobs x0 otx0. + dependent induction H1. + - simpobs. inv H; inv H0; try easy. now constructor. + - simpobs. inv H; inv H0; try easy. constructor. + apply observing_sub_elem; eauto. Search elem. *) - (* specialize (@itree_eta E) as eta. *) +(* Monotone eta expansion *) - (* specialize (itree_eta s) as eta. step in eta. - specialize (itree_eta_ (ITree.bind s (fun x : R => Ret x))) as eta2. step in eta2. - rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). - cbn. - down. dependent induction eta. - simpobs. - - eauto. - - simpobs. step. constructor. - replace (ITree.subst (fun x : R => Ret x) m1) - with - (ITree.bind m1 (fun x : R => Ret x)) by reflexivity. - rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta m1). - - unfold observe in x0. - - cbn. - induction (observe s). - - eauto with itree. - - cbn. step. constructor. - revert s. *) +Program Definition eta_expand {E R} (s : itree E R -> itree E R -> Prop) (t1 t2 : itree E R) : Prop. +Proof. + apply s. + exact {| _observe := observe t1 |}. + exact {| _observe := observe t2 |}. +Defined. +#[global] Instance trans_elem_eq_itree_mon {E R} (c : Chain (@eqit_mon E R R eq false false)) : + Transitive (elem c). +Proof. + apply Transitive_chain. + intros R' HR'. + apply Transitive_eqit_eqit. + - congruence. + - exact HR'. +Qed. - (* problem: need to eta-expand under elem, which may not be possible. - or eta expand under b (elem), also not clear if possible. *) - intros. +Add Parametric Morphism {E R} (c : Chain (@eqit_mon E R R eq false false)) : + (elem c) + with signature (observing eq ==> observing eq ==> flip impl) + as elem_observing_proper. +Proof. + intros x y Hxy x' y' Hx'y' Helem. + symmetry in Hx'y'. + eapply observing_sub_elem in Hxy; eauto. + eapply observing_sub_elem in Hx'y'; eauto. + do 2 (etransitivity; eauto). +Qed. + +(* This lemma requires a bit of cleverness: +[elem c], where [c] is [Chain (eqit_mon eq false false)], +is respected by [observing eq]. Such respectfulness +in turn reqires transitivity of [elem c] and the fact that +[observing eq] is a subrelation of [elem c]. Lots of work, +but worth it! +*) +Lemma bind_ret_r {E R} : + forall s : itree E R, + ITree.bind s (fun x => Ret x) ≅ s. +Proof. + unfold eq_itree. intros. + (* we need to eta-expland first, but we have to be able + to reduce later. *) rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). + (* need strong CIH *) revert s. - unfold eq_itree. - coinduction c CIH. - intros. cbn. - - - - destruct (observe s). - - eauto with itree. - - constructor. - (* apply (gfp_chain c). *) - replace (ITree.subst (fun x : R => Ret x) t) - with - (ITree.bind t (fun x : R => Ret x)) by reflexivity. - Fail rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta t). - - - (* we're right here, but eta-normal form blocks the way. *) - Fail rewrite CIH. - Fail (cbv in CIH; - cbv; apply CIH). - cbn. (* does nothing *) - step. - Set Printing All. - Fail unfold go. - Fail rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta t). - Fail rewrite CIH. - - shelve. - - constructor. - shelve. - (* ditto here. *) -Admitted. + coinduction c CIH. + intros. + (* with eta-reduction in place, we can reduce to base comparisons. *) + desobs s H; down; cbn; simpobs; constructor; intros. + (* Ret case is easy *) + reflexivity. + (* the others are more tricky but mostly identical: *) + (* 1. we need only show the two sides are identical under observe. *) + all: eapply elem_observing_proper. + (* we know they are under the CIH... *) + all: try eapply CIH. + (* so the rest is just 'fancy reflexivity. *) + all: constructor; reflexivity. +Qed. Lemma bind_ret_r' {E R} (u : itree E R) (f : R -> R) : (forall x, f x = x) -> @@ -1804,8 +1826,16 @@ Lemma bind_bind {E R S T} : forall (s : itree E R) (k : R -> itree E S) (h : S -> itree E T), ITree.bind (ITree.bind s k) h ≅ ITree.bind s (fun r => ITree.bind (k r) h). Proof. - unfold eq_itree. coinduction c CIH. + unfold eq_itree. intros. + Search ITree.bind. + rewrite (itree_eta_ (ITree.bind _ _)), + (itree_eta (ITree.bind s (fun r : R => ITree.bind (k r) h))). + revert s. + coinduction c CIH. intros. + desobs s H; down; cbn; simpobs; intros. + + (* same problem. *) Admitted. (* lazymatch goal with From 811871336bf37303b52add9a4cbf48bb4f784b75 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 20 Feb 2026 17:27:29 -0500 Subject: [PATCH 043/189] ONTO THE LAST. --- theories/Eq/Eqit.v | 53 ++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 154721e1..5ecd585d 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1517,16 +1517,17 @@ but should we make it explicit? *) (* Definition paco {X} (f : mon X) r := gfp paco_body. *) (* Q: best way we want to define this? *) -Lemma eqit_clo_bind b1 b2 : - eqit_bind_clo b1 b2 <= eqit_mon RR b1 b2. +Lemma eqit_clo_bind RS b1 b2 : + eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon RR b1 b2 (gfp (eqit_mon RS b1 b2)). Proof. -Admitted. - (* repeat intro. + repeat intro. inv H. step in EQV. - down. + down in EQV. dependent induction EQV. - (* Q: Escaping setoid hell? *) + apply REL0 in REL. step in REL. + down. + all: try rewrite 2observe_bind; simpobs. Fail rewrite unfold_bind. intros rr. pcofix CIH. intros. destruct PR. guclo eqit_clo_trans. econstructor; auto_ctrans_eq. @@ -1546,7 +1547,7 @@ Admitted. - destruct b2; try discriminate. guclo eqit_clo_trans. econstructor; auto_ctrans_eq; eauto; try reflexivity. eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. -Qed. *) +Qed. (* Lemma eqit_clo_bind b1 b2 vclo @@ -1822,32 +1823,38 @@ Proof. - hnf. intros. apply eqit_Ret. auto. Qed. +Ltac fold_subst := + repeat match goal with + |- context[ITree.subst ?k ?s] => + replace (ITree.subst k s) + with (ITree.bind s k) + by reflexivity + end. + Lemma bind_bind {E R S T} : forall (s : itree E R) (k : R -> itree E S) (h : S -> itree E T), ITree.bind (ITree.bind s k) h ≅ ITree.bind s (fun r => ITree.bind (k r) h). Proof. unfold eq_itree. intros. - Search ITree.bind. - rewrite (itree_eta_ (ITree.bind _ _)), - (itree_eta (ITree.bind s (fun r : R => ITree.bind (k r) h))). - revert s. - coinduction c CIH. - intros. - desobs s H; down; cbn; simpobs; intros. - - -(* same problem. *) -Admitted. - (* lazymatch goal with + lazymatch goal with | [ |- _ (ITree.bind ?t1 _) ?t2 ] => rewrite (itree_eta_ t1), (itree_eta_ t2); cbn end. lazymatch goal with | [ |- _ ?t0 _ ] => rewrite (itree_eta_ t0); cbn end. - destruct (observe s); cbn. - 1: apply reflexivity. - all: gstep; constructor; eauto with paco itree. -Qed. *) + revert s k h. + coinduction c CIH. + intros. + desobs s H; down; cbn; simpobs. + 1: apply (gfp_bchain c). reflexivity. + all: constructor; intros; eapply elem_observing_proper. + all: try eapply CIH. + all: constructor. + all: fold_subst. + all: repeat rewrite observe_bind. + all: reflexivity. +Qed. + Lemma map_map {E R S T}: forall (f : R -> S) (g : S -> T) (t : itree E R), ITree.map g (ITree.map f t) ≅ ITree.map (fun x => g (f x)) t. From 5a95e68663eb48514c916b2e72c54ee5994ced3b Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 21 Feb 2026 01:24:33 -0500 Subject: [PATCH 044/189] done with Eqit proofs. considering changing eqit_bind_clo to a parametric morphism. --- theories/Eq/Eqit.v | 64 +++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 5ecd585d..2f1b5690 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -831,7 +831,6 @@ Qed. Section eqit_inv. Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. -(* Context {vclo : (itree E R1 -> itree E R2 -> Prop) -> (itree E R1 -> itree E R2 -> Prop)}. *) Context {sim : itree E R1 -> itree E R2 -> Prop}. Notation eqit__ t1_ t2_ := @@ -1508,6 +1507,9 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo : itree. +(* This should actually probably be an instance relation... *) + + (* Ask about lattices: there's an implicit lattice of relations here, but should we make it explicit? *) (* Definition paco_body {X} (f : mon X) r := (fun y => f (cup r y)). *) @@ -1517,37 +1519,45 @@ but should we make it explicit? *) (* Definition paco {X} (f : mon X) r := gfp paco_body. *) (* Q: best way we want to define this? *) -Lemma eqit_clo_bind RS b1 b2 : - eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon RR b1 b2 (gfp (eqit_mon RS b1 b2)). +Lemma eqit_clo_bind {RS} b1 b2 : + eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon E _ _ RS b1 b2 (gfp (eqit_mon RS b1 b2)). Proof. repeat intro. inv H. + backstep. + revert EQV. + revert t1 t2. + coinduction c CIH. + intros. step in EQV. down in EQV. dependent induction EQV. - apply REL0 in REL. step in REL. - down. - all: try rewrite 2observe_bind; simpobs. - Fail rewrite unfold_bind. - intros rr. pcofix CIH. intros. destruct PR. - guclo eqit_clo_trans. econstructor; auto_ctrans_eq. - 1,2: rewrite unfold_bind; reflexivity. - punfold EQV. unfold_eqit. - hinduction EQV before CIH; intros; pclearbot; cbn; - repeat (change (ITree.subst ?k ?m) with (ITree.bind m k)). - - guclo eqit_clo_trans. econstructor; auto_ctrans_eq. - 1,2: reflexivity. - eauto with paco. - - gstep. econstructor. eauto 7 with paco itree. - - gstep. econstructor. intros. red in CMP. unfold id in ID. apply ID. eauto 7 with paco itree. - - destruct b1; try discriminate. - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. - - destruct b2; try discriminate. - guclo eqit_clo_trans. econstructor; auto_ctrans_eq; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. -Qed. + apply REL in REL0 as Hgfpk. step in Hgfpk. + all: down. + 1-3: rewrite 2observe_bind; simpobs. + (* ret *) + apply (gfp_bchain c). + apply REL. + assumption. + (* taus *) + constructor. + apply CIH. assumption. + (* vis *) + constructor. + intro. + apply CIH. + apply REL0. + (* taul *) + Search ITree.bind. + rewrite observe_bind. + simpobs. + taul. + eapply IHEQV; eauto. + setoid_rewrite observe_bind at 2. + simpobs. + taur. + eapply IHEQV; eauto. +Qed. (* Lemma eqit_clo_bind b1 b2 vclo @@ -1610,7 +1620,7 @@ Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 Proof. intros. step. - eapply eqit_clo_bind. + eapply eqit_clo_bind; eauto. econstructor; eauto. Qed. From bd926b275b8ceaa076ef6ac10730a40e54dba7d0 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 21 Feb 2026 01:39:01 -0500 Subject: [PATCH 045/189] Fixed a few tactics --- theories/Eq/Eqit.v | 75 +++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 47 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 2f1b5690..22ab9d86 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -697,7 +697,7 @@ Qed. Proof. repeat intro. inv H. step. down. rewrite observing_observe. - apply (gfp_bchain c). reflexivity. + backstep. reflexivity. Qed. (* Add Parametric Morphism (c : Chain (eqit_mon eq false false)) : @@ -1507,9 +1507,16 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo : itree. -(* This should actually probably be an instance relation... *) +(* This should actually probably be a respectful instance... *) +(* sketch: +eqit_bind_clo gfp -> eqit_mon gfp +== +eqit RU + +*) + (* Ask about lattices: there's an implicit lattice of relations here, but should we make it explicit? *) (* Definition paco_body {X} (f : mon X) r := (fun y => f (cup r y)). *) @@ -1525,6 +1532,7 @@ Proof. repeat intro. inv H. backstep. + (* need strong CIH *) revert EQV. revert t1 t2. coinduction c CIH. @@ -1532,60 +1540,33 @@ Proof. step in EQV. down in EQV. dependent induction EQV. - apply REL in REL0 as Hgfpk. step in Hgfpk. all: down. + (* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) - apply (gfp_bchain c). - apply REL. - assumption. + + backstep. + now apply REL. (* taus *) - constructor. - apply CIH. assumption. + + constructor. + now apply CIH. (* vis *) - constructor. - intro. - apply CIH. + + constructor. + intro. + apply CIH. apply REL0. (* taul *) - Search ITree.bind. - rewrite observe_bind. - simpobs. - taul. - eapply IHEQV; eauto. - setoid_rewrite observe_bind at 2. - simpobs. - taur. - eapply IHEQV; eauto. + + rewrite observe_bind. + simpobs. + taul. + eapply IHEQV; eauto. + (* taur *) + + setoid_rewrite observe_bind at 2. + simpobs. + taur. + eapply IHEQV; eauto. Qed. -(* Lemma eqit_clo_bind b1 b2 vclo - (MON: monotone2 vclo) - (CMP: compose (eqitC RR b1 b2) vclo <3= compose vclo (eqitC RR b1 b2)) - (ID: id <3= vclo): - eqit_bind_clo b1 b2 <3= gupaco2 (eqit_ RR b1 b2 vclo) (eqitC RR b1 b2). -Proof. - intros rr. pcofix CIH. intros. destruct PR. - guclo eqit_clo_trans. econstructor; auto_ctrans_eq. - 1,2: rewrite unfold_bind; reflexivity. - punfold EQV. unfold_eqit. - hinduction EQV before CIH; intros; pclearbot; cbn; - repeat (change (ITree.subst ?k ?m) with (ITree.bind m k)). - - guclo eqit_clo_trans. econstructor; auto_ctrans_eq. - 1,2: reflexivity. - eauto with paco. - - gstep. econstructor. eauto 7 with paco itree. - - gstep. econstructor. intros. red in CMP. unfold id in ID. apply ID. eauto 7 with paco itree. - - destruct b1; try discriminate. - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. - - destruct b2; try discriminate. - guclo eqit_clo_trans. econstructor; auto_ctrans_eq; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. -Qed. *) - Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): @@ -1856,7 +1837,7 @@ Proof. coinduction c CIH. intros. desobs s H; down; cbn; simpobs. - 1: apply (gfp_bchain c). reflexivity. + 1: backstep. reflexivity. all: constructor; intros; eapply elem_observing_proper. all: try eapply CIH. all: constructor. From 800aa978353e06c42751430e9d5508bcee16d20e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 21 Feb 2026 01:39:15 -0500 Subject: [PATCH 046/189] Strengthened backstep, moved tactics --- theories/Basics/Utils.v | 42 ++++++++++++++++++++++++++------- theories/Core/ITreeDefinition.v | 14 ----------- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 1b3d8eac..ec2e0dbb 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -7,6 +7,21 @@ From Paco Require Import paco. Ltac inv H := inversion H; clear H; subst. +(* [inv], [rewrite_everywhere], [..._except] are general purpose *) + +Lemma hexploit_mp: forall P Q: Type, P -> (P -> Q) -> Q. +Proof. intuition. Defined. +Ltac hexploit x := eapply hexploit_mp; [eapply x|]. + +Ltac rewrite_everywhere lem := + progress ((repeat match goal with [H: _ |- _] => rewrite lem in H end); repeat rewrite lem). + +Ltac rewrite_everywhere_except lem X := + progress ((repeat match goal with [H: _ |- _] => + match H with X => fail 1 | _ => rewrite lem in H end + end); repeat rewrite lem). + + Ltac copy h := let foo := fresh "cpy" in assert (foo := h). @@ -121,21 +136,26 @@ Qed. (* A smarter version of this should be part of the [coinduction] library *) + Ltac step_ := - match goal with - | |- gfp ?b ?x ?y ?z => apply ((gfp_fp b x y z)) - | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) - | |- gfp ?b ?x ?y => apply ((gfp_fp b x y)) - | |- elem ?R ?x ?y => apply (b_chain R x y) - | |- gfp ?b ?x => apply ((gfp_fp b x)) - | |- elem ?R ?x => apply (b_chain R x) - end. +match goal with +| |- gfp ?b ?x ?y ?z => apply ((gfp_fp b x y z)) +| |- elem ?R ?x ?y ?z => apply (b_chain R x y z) +| |- gfp ?b ?x ?y => apply ((gfp_fp b x y)) +| |- elem ?R ?x ?y => apply (b_chain R x y) +| |- gfp ?b ?x => apply ((gfp_fp b x)) +| |- elem ?R ?x => apply (b_chain R x) +end. Ltac step := first [step_ | red; step_ | Coinduction.tactics.step | match goal with | [|- gfp ?b _ _] => apply (gfp_fp b) end ]. +(* Technically, stepping in hypotheses in the direction shown below +should be backstepping, and vice versa. +This is something that we should choose on in a meeting. *) + Ltac step_in H := match type of H with | gfp ?b ?x ?y ?z => apply (gfp_fp b x y z) in H @@ -149,17 +169,21 @@ Ltac backstep := match goal with | [|- _ _ _ _ (gfp ?b) _ _]=> apply (gfp_pfp b) +| [|- _ _ _ _ (elem ?c) _ _ ]=> + apply (gfp_bchain c) end. Ltac backstep_in H := match type of H with | _ _ _ _ (gfp ?b) _ _=> apply (gfp_fp b) in H +| _ _ _ _ (elem ?c) _ _ => + apply (gfp_bchain c) in H end. Tactic Notation "backstep" "in" ident(H) := backstep_in H. - (* Oft-used induction tactic for general IHs. *) Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. + diff --git a/theories/Core/ITreeDefinition.v b/theories/Core/ITreeDefinition.v index cc42f73a..fe14a9b3 100644 --- a/theories/Core/ITreeDefinition.v +++ b/theories/Core/ITreeDefinition.v @@ -277,20 +277,6 @@ End ITreeNotations. (** ** Tactics *) -(* [inv], [rewrite_everywhere], [..._except] are general purpose *) - -Lemma hexploit_mp: forall P Q: Type, P -> (P -> Q) -> Q. -Proof. intuition. Defined. -Ltac hexploit x := eapply hexploit_mp; [eapply x|]. - -Ltac rewrite_everywhere lem := - progress ((repeat match goal with [H: _ |- _] => rewrite lem in H end); repeat rewrite lem). - -Ltac rewrite_everywhere_except lem X := - progress ((repeat match goal with [H: _ |- _] => - match H with X => fail 1 | _ => rewrite lem in H end - end); repeat rewrite lem). - Ltac genobs x ox := remember (observe x) as ox. Ltac genobs_clear x ox := genobs x ox; match goal with [H: ox = observe x |- _] => clear H x end. Ltac simpobs := From 1c4c190f72c5b0564cd0cd718b7fdd2af7d50aac Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 21 Feb 2026 01:39:25 -0500 Subject: [PATCH 047/189] Should probably gitignore this file --- .Makefile.d | 384 ++++++++++++++++++++++++++-------------------------- 1 file changed, 192 insertions(+), 192 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 0782b1d9..3e17e708 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker From 9df05acef4623133c6b972078f048582369daa11 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 21 Feb 2026 01:43:46 -0500 Subject: [PATCH 048/189] a comment --- theories/Eq/Eqit.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 22ab9d86..079cb912 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -774,7 +774,7 @@ Proof. Qed. (* Tour 2: *) -(* This proof was quite simplified by tactics *) +(* This proof was quite simplified by coinduction and tactics *) Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. Proof. From c52fd16d2814a8526c85c45797007cf05ccd86b4 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sat, 21 Feb 2026 01:43:46 -0500 Subject: [PATCH 049/189] Documentation. --- theories/Eq/Eqit.v | 122 ++++++++------------------------------------- 1 file changed, 22 insertions(+), 100 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 079cb912..fb3e8278 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1073,10 +1073,8 @@ Qed. *) (* RTODO: Ask ^ about above this one: are they important, or just important for this one? If latter, they are not needed. *) - (* Tour 3: Show this proof. (Q): *) -(* Noe's note: add morphism *) Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : @@ -1145,81 +1143,6 @@ repeat intro; unfold flip, eq_itree in *. eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. Qed. -(* #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). -Proof. - eapply geuttgen_cong_eqit; intros; subst; eauto. -Qed. *) - - -(* #[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 - (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) - (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) - (@eqit E R1 R2 RS b1 b2). -Proof. - repeat intro; unfold flip, eq_itree in *. - - (* Given *) - (* LERR1: ∀ x x' y. RR1 x x' -> RS x' y -> RS x y *) - (* LERR2: ∀ x y y'. RR2 y y' -> RS x y' -> RS x y, *) - (* Prove the diagram commutes *) - - (* - y -(eqit RS b1 b2) → y0 - ↑ ↑ - ≅RR1 ≅RR2 - | | - x -(?eqit RS b1 b2)→ x0 - *) - - (* Problem: this diagram does not have a path from x to x0. *) - (* Solution: flip ≅RR2, as both boolean flags are false to - begin with this is a "symmetry" on trees only. *) - -(* - y -(eqit RS b1 b2) → y0 - ↑ | - ≅RR1 ≅(flip RR2) - | ↓ - x -(?eqit RS b1 b2)→ x0 - -(* This diagram has a clear path (lifting with eqit_mono), - and LERR1 and LERR2 get us the correlaries we need to arrive there: namely: *) -*) -(* by LERR1, Ret nodes of x and Ret nodes of y0 are related by RS. - by LERR2, Ret nodes of x0 and Ret nodes of y are related by RS. - RR1 ∘ RS <= RS - (flip RR2) ∘ RS <= RS - so RS is closed under left composition by RR1 - and right composition by flip RR2. - *) - (* We use a mix of foreward and backward reasoning. *) - - idtac. - (* build arrows and strengthen *) - assert (rcompose RR1 RS <= RS) by (intros ? ? [? ?]; eauto). - assert (rcompose RS (flip RR2) <= RS) by (intros ? ? [? ?]; eauto). - assert (eqit RR1 b1 b2 x y) by - (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). - assert (eqit RR2 b1 b2 x0 y0) by - (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). - - (* first diagonal *) - specialize (eqit_trans _ _ _ _ _ _ _ H4 H1) as Hdiag_weak. - assert (eqit RS b1 b2 x y0) as Hdiag by - (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). - - (* reverse the final arrow *) - apply eqit_flip in H0. - - (* backward reasoning, straightforward *) - eapply eqit_mono with (RR:=(rcompose RS (flip RR2))); eauto. - eapply eqit_trans; eauto. - eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. -Qed. *) - (* Short version of the proof using only backward reasoning: eapply eqit_mono with (b1:=b1) (b2:=b2) (RR:=(rcompose RS (flip RR2))); @@ -1232,6 +1155,14 @@ Short version of the proof using only backward reasoning: now eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)). *) +(* #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: + Proper (eq_itree eq ==> eq_itree eq ==> flip impl) + (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). +Proof. + eapply geuttgen_cong_eqit; intros; subst; eauto. +Qed. *) + + (* Graveyard *) @@ -1312,18 +1243,13 @@ Proof. eapply @eqitgen_cong_eqit with (RR1:=eq) (RR2:=eq); intros; subst; eauto. Qed. +(* sanity check: rewriting works. *) #[global] Instance eqitgen_cong_eqit_eq' {E R1 R2 RS} b1 b2: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (@eqit E R1 R2 RS b1 b2). Proof. repeat intro. - (* unfold eq_itree in H0. - assert (forall x x' y, (@eq R1 x x': Prop) -> (RS x' y: Prop) -> RS x y) as LERR. - intros. congruence. *) - (* Ask during meeting: why failing? *) - rewrite H0. - rewrite H. - eapply @eqitgen_cong_eqit with (RR1:=eq) (RR2:=eq); intros; subst; eauto. + now rewrite H0, H. Qed. #[global] Instance euttge_cong_euttge {E R RS} @@ -1507,25 +1433,21 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo : itree. -(* This should actually probably be a respectful instance... *) +(* One could consider making this a respectful instance. *) +(* This might be good when doing other proofs, as it shows up +often. *) - -(* sketch: -eqit_bind_clo gfp -> eqit_mon gfp -== -eqit RU - -*) - -(* Ask about lattices: there's an implicit lattice of relations here, +(* With lattices: there's an implicit lattice of relations here, but should we make it explicit? *) + +(* For defining paco: *) (* Definition paco_body {X} (f : mon X) r := (fun y => f (cup r y)). *) (* monotonicity of paco_body, omitted *) (* Definition paco {X} (f : mon X) r := gfp paco_body. *) -(* Q: best way we want to define this? *) +(* Q: best way we want to define this? Does this ever leave the file? *) Lemma eqit_clo_bind {RS} b1 b2 : eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon E _ _ RS b1 b2 (gfp (eqit_mon RS b1 b2)). Proof. @@ -1777,8 +1699,8 @@ Qed. [elem c], where [c] is [Chain (eqit_mon eq false false)], is respected by [observing eq]. Such respectfulness in turn reqires transitivity of [elem c] and the fact that -[observing eq] is a subrelation of [elem c]. Lots of work, -but worth it! +[observing eq] is a subrelation of [elem c]. +Some work in the reasoning, but with short proofs- and worth it! *) Lemma bind_ret_r {E R} : forall s : itree E R, @@ -1797,11 +1719,11 @@ Proof. (* Ret case is easy *) reflexivity. (* the others are more tricky but mostly identical: *) - (* 1. we need only show the two sides are identical under observe. *) + (* 1. we need only show the two sides are related by elem under [observe]. *) all: eapply elem_observing_proper. - (* we know they are under the CIH... *) + (* 2. we know they are by the CIH... *) all: try eapply CIH. - (* so the rest is just 'fancy reflexivity. *) + (* 3. so the rest is just 'fancy reflexivity. *) all: constructor; reflexivity. Qed. From 2fbe70053bcd4c7d809565d38ada3d74345e4a32 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 19:32:12 -0500 Subject: [PATCH 050/189] Paco removed from Eqit --- theories/Eq/Eqit.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index fb3e8278..c73a7b5e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -31,7 +31,7 @@ From ITree Require Import Basics.Utils Basics.HeterogeneousRelations Core.ITreeDefinition - Eq.Paco2 + (* Eq.Paco2 *) Eq.Shallow. From 4b88c07328589525a8f4a4e8368a8a34edd40083 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 20:39:29 -0500 Subject: [PATCH 051/189] Documented top of Eqit.v. Refactoring paco tactics. --- theories/Eq/Eqit.v | 341 +++++++++++---------------------------------- 1 file changed, 85 insertions(+), 256 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c73a7b5e..018f3374 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -31,7 +31,6 @@ From ITree Require Import Basics.Utils Basics.HeterogeneousRelations Core.ITreeDefinition - (* Eq.Paco2 *) Eq.Shallow. @@ -42,51 +41,40 @@ Local Open Scope itree_scope. ------------------------------------------------------------ - -The paco proofs, in large, rely on induction on eqitF in a hypothesis. they -derive this eqitF from eqit in a hypothesis, as eqit is defined as paco2 (eqit_) -(where eqit_ is defined by eqitF). using punfold, they transform -eqit into eqitF b1 b2 vclo (upaco2 ...). - -In these same proofs using `coinduction`, we have an eqit in the hypothesis, -but now it is defined as the gfp of eqit_. Since `coinduction` subsumes -`paco`, we should be able to derive the same transformation as in `punfold`, -but we need to find out how. This likely involves building a tactic that -turns gfp b into b(gfp b). - -Having found this (gfp_fp), we want to build a rich tactic library, a la Ctrees, -to work with step, step_in, and friends. This will allows us to do proofs -that look like paco but do not require wcompat and are ammenable to -enhanced relational properties. - *) -(** ** Coinductive reasoning with Paco *) -(* RTODO: REWRITE THIS WITH POUS COINDUCTION *) +(** ** Coinductive reasoning with Pous' Enhanced Coinduction library *) (** Similarly to the way we deal with cofixpoints explained in - [Core.ITreeDefinition], coinductive properties are defined in two steps, - as greatest fixed points of monotone relation transformers. + [Core.ITreeDefinition], coinductive properties are defined in two steps, + as greatest fixed points of monotone relations. - - a _relation transformer_, a.k.a. _generating function_, - is a function mapping relations to relations - [gf : (i -> i -> Prop) -> (i -> i -> Prop)]; - _monotonicity_ is with respect to relations ordered by set inclusion - (a.k.a. implication, when viewed as predicates) - [(r1 <2= r2) -> (gf r1 <2= gf r2)]; - - the Paco library provides a combinator [paco2] defining the greatest - fixed point [paco2 gf] when [gf] is indeed monotone. + (a.k.a. implication, when viewed as predicates) + [(r1 <= r2) ≡ (r1 -> r2)]; + + - the [coinduction] library provides a combinator [gfp] defining the + greatest fixed point [gfp f] when [f] is indeed monotone. + + The [coinduction] library provides us with elegant machinery for + defining a monotone function: we simply need to prove it respects + the [leq] relation on the implicit underlying lattice, though we never + need to mention the actual lattice itself. By thus avoiding [CoInductive] to define coinductive properties, - Paco spares us from thinking about guardedness of proof terms, - instead encoding a form of productivity visibly in types. + [coinduction] both spares us from thinking about guardedness of proof terms, + instead encoding a form of productivity visible in types, and also provides + us with a powerful set of tactics for reasoning about observable behaviors. + + We have gone a step further to enrich this set of tactics with our own + definitions specific to ITrees. These can be found in [Basics/Utils.v] + and in this file in the [Tactics] section. *) -(* We coerce [b1] and [b2] in [eqitF] (below) from [bool] to [Prop]. This makes +(** We coerce [b1] and [b2] in [eqitF] (below) from [bool] to [Prop]. This makes it slightly easier to write and automate mechanized proofs about [eqit]: we have hypotheses of simply [b1] rather than [b1 = true]. *) - Local Coercion is_true : bool >-> Sortclass. Section eqit. @@ -150,6 +138,9 @@ Section eqit. - intros ?; apply Hsim; auto. Qed. + (** Rocq is smart enough to figure out that [eqitF_mono] proves [eqit_] is + monotone. *) + Definition eqit_mon b1 b2 : mon (itree E R1 -> itree E R2 -> Prop) := {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. @@ -168,16 +159,13 @@ Section eqit. End eqit. -(* begin hide *) -#[global] Hint Constructors eqitF : itree. -#[global] Hint Unfold eqit_ : itree. -#[global] Hint Unfold eqit : itree. -#[global] Hint Unfold eq_itree : itree. -#[global] Hint Unfold eutt : itree. -#[global] Hint Unfold euttge : itree. +(** Tactics *) +(* RTODO: Ask if these should be coqdoc documented or hidden. *) + +(* We first enhance the coinduction tactic to recognize goals that + do not have a syntactic match with [gfp _] *) -#[global] -Tactic Notation "coinduction" +#[global] Tactic Notation "coinduction" simple_intropattern(R) simple_intropattern(H) := first @@ -186,11 +174,19 @@ Tactic Notation "coinduction" | unfold eqit; coinduction R H ]. +(* The [down] tactic: unfolding the ITree definition *) + +(* Since [itrees] are defined with nesting, un-nesting is often needed + during a proof to get Rocq to recognize certain terms as valid under + certain tactics. Example: [dependent induction] does not work for + [eqit_mon], but it does for [eqitF]. Unfolding down to [eqitF] + in both hypotheses and the goal is so common that the library uses + an internal tactic for doing so all at once. *) + Ltac down_ H := - repeat progress ( - cbn [eqit_mon body] in H; - unfold eqit_ in H - ). + repeat progress (cbn [eqit_mon body] in H; unfold eqit_ in H). + +Tactic Notation "down" "in" hyp(H) := down_ H. Ltac down_goal := repeat progress ( @@ -198,39 +194,59 @@ Ltac down_goal := unfold eqit_ ). +Tactic Notation "down" "in" "goal" := down_goal. + +(* morally: down := 'down in *' *) Ltac down := repeat progress ( cbn [eqit_mon body] in *; unfold eqit_ in * ). -Tactic Notation "down" "in" hyp(H) := down_ H. -Tactic Notation "down" "in" "goal" := down_goal. + +(* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by + simplifiying, rewriting, and trying to apply assumptions. *) Ltac solve_eqitF := match goal with | [h1: _ = observe _ , h2: _ = observe _ |- _] => (* reduce to 'observe' form by stripping constructors and unfolding *) -try econstructor; down; +down; try econstructor; (* replace 'observe' with actual constructor values *) rewrite <- h1; rewrite <- h2; (* finish off *) econstructor; eauto with itree end. +(* [taul] and [taur] peel off a tau from either side when the CHECK flag for + that side is set. Their primary purpose is to make proofs more readable. *) + Ltac taul := apply EqTauL; only 1: auto. Ltac taur := apply EqTauR; only 1: auto. -(* Tour 1: *) -(* RTODO: rewrite with paco transformers. *) -Ltac pstep := step. -Ltac pstep_reverse := backstep. +(* RTODO: rewrite with paco transformers. *) +Ltac step_reverse := backstep. Ltac pfold := step. Ltac punfold H := step in H. Ltac paco2_fold := step. Ltac pclearbot := idtac. +Ltac unfold_eqit := + (try match goal with [|- eqit_ _ _ _ _ _ _ ] => red end); + (repeat match goal with [H: eqit_ _ _ _ _ _ _ |- _ ] => red in H end). + + +(* begin hide *) +#[global] Hint Constructors eqitF : itree. +#[global] Hint Unfold eqit_ : itree. +#[global] Hint Unfold eqit : itree. +#[global] Hint Unfold eq_itree : itree. +#[global] Hint Unfold eutt : itree. +#[global] Hint Unfold euttge : itree. + + + Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} t1 X2 (e2 : E X2) (k2 : X2 -> _) : eqitF RR b1 b2 sim t1 (VisF e2 k2) -> @@ -285,10 +301,6 @@ Proof. destruct p; intros <-; cbn; constructor; auto. Qed. -Ltac unfold_eqit := - (try match goal with [|- eqit_ _ _ _ _ _ _ ] => red end); - (repeat match goal with [H: eqit_ _ _ _ _ _ _ |- _ ] => red in H end). - #[global] Instance eqitF_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq_rel ==> eq_rel) (@eqitF E R1 R2). @@ -317,21 +329,6 @@ Proof. econstructor. apply H. assumption. Qed. -(* #[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R:Type} -(sim : itree E R -> itree E R -> Prop) -: - Proper (eq ==> eq ==> eq ==> sim ==> sim ==> iff) - (fun RR b1 b2 t1 t2 => @eqitF E R R RR b1 b2 sim (observe t1) (observe t2)). -Proof. - repeat red. - intros. subst. split; intros. - - induction H; auto with itree. - - econstructor. apply H. assumption. - - induction H0; auto with itree. - econstructor. apply H. assumption. -Qed. *) - #[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R1 R2:Type} : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) t2). @@ -343,21 +340,6 @@ Proof. - induction H0; auto with itree. econstructor. apply H. assumption. Qed. -(* -Lemma eqitF_observe_l_sim -{E : Type -> Type} {R: Type} (RR : R -> R -> Prop) - b1 b2 - (sim : itree E R -> itree E R -> Prop) - t1 t2 z : - sim t1 t2 -> - eqitF RR b1 b2 sim (observe t1) z -> - eqitF RR b1 b2 sim (observe t2) z. -Proof. - intros. - (* remember (observe t2) as t2'. *) - dependent induction H0. *) - - #[global] Instance eqitF_Proper_observe_r {E : Type -> Type} {R1 R2:Type} : @@ -420,6 +402,8 @@ Proof. induction euv; eauto with itree. Qed. +(** [eqit] itself is monotone. *) + Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) (LEb1: b1 -> b1') (LEb2: b2 -> b2') @@ -440,9 +424,6 @@ Proof. repeat intro; induction H; eauto with itree. Qed. - - - #[global] Hint Unfold flip : itree. @@ -484,8 +465,6 @@ Proof. red. induction 3; constructor; subst; eauto. Qed. - - (* weak: eqitF is transitive under strong bisimilarity assumptions *) #[global] Instance Transitive_eqitF_eqit (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). @@ -524,8 +503,6 @@ Qed. (* eutt is still transitive, but for different reasons *) -(* check out line 796 in orig file *) - (* strongest: holds for all instances of eqit *) #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). @@ -682,14 +659,14 @@ Qed. #[global] Instance eqit_VisF b1 b2 {u} (e: E u) : Proper (pointwise_relation _ (eqit b1 b2) ==> going (eqit b1 b2)) (VisF e). Proof. - constructor; red in H. unfold eqit in *. pstep; econstructor; auto with itree. + constructor; red in H. unfold eqit in *. step; econstructor; auto with itree. Qed. #[global] Instance observing_sub_eqit l r : subrelation (observing eq) (eqit l r). Proof. repeat red; intros. - pstep. cbn. unfold eqit_. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. + step. cbn. unfold eqit_. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. #[global] Instance observing_sub_elem (c : Chain (eqit_mon eq false false)) (l r : itree E R) : @@ -881,13 +858,13 @@ Qed. Lemma eqit_Tau_l {E R1 R2 RR} b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR true b2 t1 t2 -> eqit RR true b2 (Tau t1) t2. Proof. - intros. pstep. econstructor; eauto. punfold H. now down. + intros. step. econstructor; eauto. punfold H. now down. Qed. Lemma eqit_Tau_r {E R1 R2 RR} b1 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 true t1 t2 -> eqit RR b1 true t1 (Tau t2). Proof. - intros. pstep. econstructor; eauto. punfold H. now down. + intros. step. econstructor; eauto. punfold H. now down. Qed. Lemma tau_euttge {E R} (t: itree E R) : @@ -905,7 +882,7 @@ Qed. Lemma simpobs {E R} {ot} {t: itree E R} (EQ: ot = observe t): t ≅ go ot. Proof. - pstep. repeat red. simpobs. simpl. subst. pstep_reverse. apply Reflexive_eqit; eauto. + step. repeat red. simpobs. simpl. subst. step_reverse. apply Reflexive_eqit; eauto. Qed. (** *** Transitivity properties *) @@ -961,7 +938,7 @@ Proof. hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. econstructor. intros. apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. pstep_reverse. + * eapply IHREL0; eauto. step_reverse. destruct b1; inv CHECK0. apply eqit_inv_Tau_r. now step. - remember (VisF e k2) as ot. @@ -1016,64 +993,7 @@ Proof. constructor; try typeclasses eauto. Qed. -(* #[global] Instance geuttgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 - (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) - (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) - (@eqit_ E R1 R2 RS b1 b2 (eqit RS b1 b2)). -Proof. - repeat intro. - eapply eqit_trans. - eapply eqit_mon. repeat intro. - guclo eqit_clo_trans. econstructor; cycle -3; eauto. - - eapply eqit_mono, H; eauto; discriminate. - - eapply eqit_mono, H0; eauto; discriminate. -Qed. *) - -(* #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). -Proof. - eapply geuttgen_cong_eqit; intros; subst; eauto. -Qed. - -#[global] Instance geuttge_cong_euttge {E R1 R2 RR1 RR2 RS} r rg - (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) - (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - Proper (euttge RR1 ==> eq_itree RR2 ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS true false id) (eqitC RS true false) r rg). -Proof. - repeat intro. guclo eqit_clo_trans. eauto with itree. -Qed. - -#[global] Instance geuttge_cong_euttge_eq {E R1 R2 RS} r rg: - Proper (euttge eq ==> eq_itree eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS true false id) (eqitC RS true false) r rg). -Proof. - eapply geuttge_cong_euttge; intros; subst; eauto. -Qed. - -#[global] Instance geutt_cong_euttge {E R1 R2 RR1 RR2 RS} r rg - (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) - (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y): - Proper (euttge RR1 ==> euttge RR2 ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS true true id) (eqitC RS true true) r rg). -Proof. - repeat intro. guclo eqit_clo_trans. eauto with itree. -Qed. - -#[global] Instance geutt_cong_euttge_eq {E R1 R2 RS} r rg: - Proper (euttge eq ==> euttge eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS true true id) (eqitC RS true true) r rg). -Proof. - eapply geutt_cong_euttge; intros; subst; eauto. -Qed. *) - -(* Tour extra 2: *) -(* RTODO: Ask ^ about above this one: are they important, or just - important for this one? If latter, they are not needed. *) - -(* Tour 3: Show this proof. (Q): *) +(* Tour 3: Show this proof. *) Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) @@ -1143,97 +1063,6 @@ repeat intro; unfold flip, eq_itree in *. eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)); easy. Qed. -(* -Short version of the proof using only backward reasoning: - eapply eqit_mono with (b1:=b1) (b2:=b2) (RR:=(rcompose RS (flip RR2))); - try intros ? ? [? ?]; eauto. - eapply eqit_trans; eauto. - eapply eqit_mono with (RR:=rcompose RR1 RS); try intros ? ? [? ?]; eauto. - eapply eqit_trans; eauto. - eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy. - apply eqit_flip in H0. - now eapply eqit_mono with (b1:=false) (b2:=false) (RR:=(flip RR2)). - *) - -(* #[global] Instance geuttgen_cong_eqit_eq {E R1 R2 RS} b1 b2 r rg: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RS b1 b2 id) (eqitC RS b1 b2) r rg). -Proof. - eapply geuttgen_cong_eqit; intros; subst; eauto. -Qed. *) - - - -(* Graveyard *) - - (* apply eqit_flip in H5 as Hflip. - apply eqit_flip in Hdiag1 as HdiagR. - - specialize (eqit_trans _ _ _ _ _ _ _ HdiagR) as Hfinal. - - - - replace RS with (rcompose RR1 RS). - eapply eqit_trans. - eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); try easy; eauto. - replace RS with (rcompose RS RR2). - eapply eqit_trans. - eauto. - eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy; eauto. - - - (* seems true, proving requires a different shape of goal *) - apply functional_extensionality. intro. - apply functional_extensionality. intro. - - - (* Fail symmetry. *) - (* without flip, *) - (* RR2 is not symmetric, so we fail here. *) -(* Abort. *) -(* other attempt: with induction, gets deep and a bit nasty *) - step in H. - step in H0. - step in H1. - (* step. *) - coinduction c CIH. - - down. - revert H0. - revert CIH. - revert x0. revert H. revert x. - - (* the dependent induction is not quite right *) - dependent induction H1; intros. - - simpobs. - inv H; try easy. - inv H0; try easy. - constructor; eauto. - - simpobs. - dependent induction H; try easy. - dependent induction H0; try easy. - simpobs. - constructor. - Search elem. - (* this feels true *) - shelve. - - simpobs. - inv H; try easy. - inv H0; try easy. - repeat lazymatch goal with | H : existT _ _ _ = _ |- _ => dependent destruction H end. - constructor. - intros v. - apply (b_chain c), (gfp_bchain c). - (* diagram chase again, feels true but how to prove? *) - shelve. - - eapply IHeqitF; eauto. - shelve. - (* poor induction's fault *) - - - simpobs. inv H0; try easy. taur. eapply IHeqitF; eauto. - 2: now backstep. - (* also induction's fault *) - shelve. -Abort. *) #[global] Instance eqitgen_cong_eqit_eq {E R1 R2 RS} b1 b2: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) @@ -1279,14 +1108,14 @@ Proof. split; intros H. - eapply transitivity. 2 : { apply H. } red. apply eqit_Tau_r. reflexivity. - - red. red. pstep. econstructor. auto. now punfold H. + - red. red. step. econstructor. auto. now punfold H. Qed. Lemma tau_eqit_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), eqit RR true false t s -> eqit RR true false (Tau t) s. Proof. intros. - red. pstep. econstructor. auto. now punfold H. + red. step. econstructor. auto. now punfold H. Qed. Lemma tau_eutt_RR_r : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), @@ -1296,7 +1125,7 @@ Proof. split; intros H. - eapply transitivity. apply H. red. apply eqit_Tau_l. reflexivity. - - red. red. pstep. econstructor. auto. now punfold H. + - red. red. step. econstructor. auto. now punfold H. Qed. Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): @@ -1350,7 +1179,7 @@ Lemma bind_trigger {E R} U (e : E U) (k : U -> itree E R) : ITree.bind (ITree.trigger e) k ≅ Vis e (fun x => k x). Proof. rewrite unfold_bind; cbn. - pstep. + step. constructor. intros. apply bind_ret_l. Qed. @@ -1403,7 +1232,7 @@ Lemma eqit_Vis_gen b1 b2 {U1 U2} (p : U1 = U2) (e1 : E U1) (e2 : E U2) : eqeq E p e1 e2 -> pweqeq (eqit RR b1 b2) p k1 k2 -> eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2). Proof. - destruct p; cbn. intros <- H. pstep. econstructor. apply H. + destruct p; cbn. intros <- H. step. econstructor. apply H. Qed. Lemma eqit_Vis b1 b2 {U} (e : E U) @@ -1418,7 +1247,7 @@ Lemma eqit_Ret b1 b2 (r1 : R1) (r2 : R2) : RR r1 r2 <-> @eqit E _ _ RR b1 b2 (Ret r1) (Ret r2). Proof. split; intros H. - - pstep. constructor; auto. + - step. constructor; auto. - punfold H. inversion H; subst; auto. Qed. @@ -1569,7 +1398,7 @@ Lemma eqit_map {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 Proof. unfold ITree.map; intros. eapply eqit_bind'; eauto. - intros; pstep; constructor; auto. + intros; step; constructor; auto. Qed. #[global] Instance eqit_eq_map {E R S} b1 b2 : From 23ea5bbc52817609a93e2bbcff1e744ce20213ae Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 21:00:51 -0500 Subject: [PATCH 052/189] Cleaned up proofs and documentation up to end hide --- theories/Eq/Eqit.v | 298 +++++++++++++-------------------------------- 1 file changed, 82 insertions(+), 216 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 018f3374..dd157b22 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -224,19 +224,6 @@ end. Ltac taul := apply EqTauL; only 1: auto. Ltac taur := apply EqTauR; only 1: auto. - -(* RTODO: rewrite with paco transformers. *) -Ltac step_reverse := backstep. -Ltac pfold := step. -Ltac punfold H := step in H. -Ltac paco2_fold := step. -Ltac pclearbot := idtac. - -Ltac unfold_eqit := - (try match goal with [|- eqit_ _ _ _ _ _ _ ] => red end); - (repeat match goal with [H: eqit_ _ _ _ _ _ _ |- _ ] => red in H end). - - (* begin hide *) #[global] Hint Constructors eqitF : itree. #[global] Hint Unfold eqit_ : itree. @@ -301,20 +288,16 @@ Proof. destruct p; intros <-; cbn; constructor; auto. Qed. + #[global] Instance eqitF_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq_rel ==> eq_rel) (@eqitF E R1 R2). Proof. repeat red. - intros. subst. split; unfold subrelationH; intros. - - induction H0; auto with itree. - econstructor. apply H. assumption. - econstructor. apply H2. assumption. - econstructor. intros. specialize (REL v). apply H2. auto. - - induction H0; auto with itree. - econstructor. apply H. assumption. - econstructor. apply H2. assumption. - econstructor. intros. specialize (REL v). apply H2. auto. + intros. subst. split; unfold subrelationH; intros. + all: + induction H0; auto with itree; econstructor; intros; + try (now apply H); now apply H2. Qed. #[global] Instance eqitF_Proper_R2 {E : Type -> Type} {R1 R2:Type} : @@ -323,10 +306,8 @@ Qed. Proof. repeat red. intros. subst. split; intros. - - induction H0; auto with itree. - econstructor. apply H. assumption. - - induction H0; auto with itree. - econstructor. apply H. assumption. + all: induction H0; auto with itree; + econstructor; now apply H. Qed. #[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R1 R2:Type} : @@ -334,11 +315,9 @@ Qed. (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) t2). Proof. repeat red. - intros. subst. split; intros. - - induction H0; auto with itree. - econstructor. apply H. assumption. - - induction H0; auto with itree. - econstructor. apply H. assumption. + intros. subst. split; intros. + all: induction H0; auto with itree; + econstructor; now apply H. Qed. @@ -348,10 +327,8 @@ Qed. Proof. repeat red. intros. subst. split; intros. - - induction H0; auto with itree. - econstructor. apply H. assumption. - - induction H0; auto with itree. - econstructor. apply H. assumption. + all: induction H0; auto with itree; + econstructor; now apply H. Qed. #[global] Instance eqitF_Proper_observe {E : Type -> Type} {R1 R2:Type} : @@ -365,17 +342,16 @@ Qed. : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). Proof with auto with itree. repeat red. - intros. subst. + repeat intro. subst. split. - (* assert forall, pull out vars *) - revert_until y1. coinduction R CIH. intros. - cbn; red. red in H0. step in H0. - hinduction H0 before CIH... - econstructor. now apply H. + step in H0. down. + hinduction H0 before CIH... + econstructor. now apply H. - revert_until y1. coinduction R CIH. intros. - cbn; red. step in H0. - hinduction H0 before CIH... - econstructor; now apply H. + step in H0. down. + hinduction H0 before CIH... + econstructor; now apply H. Qed. #[global] Instance eutt_Proper_R {E : Type -> Type} {R1 R2:Type} @@ -383,8 +359,8 @@ Qed. Proof. unfold eutt. repeat red. intros. split; intros; subst. - - rewrite <- H. assumption. - - rewrite H. assumption. + - now rewrite <- H. + - now rewrite H. Qed. (* proofs go this way. *) @@ -392,12 +368,10 @@ Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: forall (u : itree E R1) (v : itree E R2), eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. Proof. - (* set up for coinduction. *) - unfold eqit at -1. (* do coinduction. *) coinduction c CIH. intros u v euv. (* reduce the hypothesis and conclusion to the right form. *) - step in euv. cbn in *. red in euv |- *. + step in euv. down. (* do induction and conclude trivially with constructors. *) induction euv; eauto with itree. Qed. @@ -410,10 +384,10 @@ Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) (LERR: RR <= RR'): @eqit E R1 R2 RR b1 b2 <= eqit RR' b1' b2'. Proof. - unfold eqit at -1. repeat intro. + repeat intro. revert a a0 H. coinduction c CIH; intros. - punfold H. down. induction H; pclearbot; eauto with itree. + step in H. down. induction H; eauto with itree. econstructor. now apply LERR. Qed. @@ -532,9 +506,7 @@ Qed. #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). Proof. intros. - (* Yannick: why unfold only at 2? gfp in assumption causes problems or? *) - unfold Symmetric. unfold eqit at 2. - (* generally poor error message: wants a fix. *) + unfold Symmetric. coinduction c CIH. assert (Symmetric (elem c)). { apply Symmetric_chain. red; intros. @@ -708,27 +680,27 @@ End eqit_eq. Lemma eqitree_inv_Ret_r {E R} (t : itree E R) r : t ≅ (Ret r) -> observe t = RetF r. Proof. - intros; punfold H; inv H; try inv CHECK; eauto. + intros; step in H; inv H; try inv CHECK; eauto. Qed. Lemma eqitree_inv_Vis_r {E R U} (t : itree E R) (e : E U) (k : U -> _) : t ≅ Vis e k -> exists k', observe t = VisF e k' /\ forall u, k' u ≅ k u. Proof. - intros; punfold H; apply eqitF_inv_VisF_r in H. + intros; step in H; apply eqitF_inv_VisF_r in H. destruct H as [ [? [-> ?]] | [] ]; [ | discriminate ]. - pclearbot. eexists; split; eauto. + eexists; split; eauto. Qed. Lemma eqitree_inv_Tau_r {E R} (t t' : itree E R) : t ≅ Tau t' -> exists t0, observe t = TauF t0 /\ t0 ≅ t'. Proof. - intros; punfold H; inv H; try inv CHECK; pclearbot; eauto. + intros; step in H; inv H; try inv CHECK; eauto. Qed. Lemma eqit_inv_Ret {E R1 R2 RR} b1 b2 r1 r2 : @eqit E R1 R2 RR b1 b2 (Ret r1) (Ret r2) -> RR r1 r2. Proof. - intros. punfold H. inv H. eauto. + intros. step in H. inv H. eauto. Qed. (* Axiom-free, weaker version of [eqit_inv_vis] *) @@ -737,7 +709,7 @@ Lemma eqit_inv_Vis_weak {E R1 R2 RR} b1 b2 eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2) -> exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2. Proof. - intros. punfold H; apply eqitF_inv_VisF_weak in H. + intros. step in H; apply eqitF_inv_VisF_weak in H. destruct H as [ p []]. exists p; split; auto. Qed. @@ -747,7 +719,7 @@ Lemma eqit_inv_Vis {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 U (e : E U) : eqit RR b1 b2 (Vis e k1) (Vis e k2) -> forall u, eqit RR b1 b2 (k1 u) (k2 u). Proof. - intros H x; punfold H; apply eqitF_inv_VisF with (x := x) in H; pclearbot; auto. + intros H x; step in H; apply eqitF_inv_VisF with (x := x) in H; auto. Qed. (* Tour 2: *) @@ -759,14 +731,9 @@ Proof. step in H. down. (* RTODO: report this bug (rm down) *) dependent induction H. - - step in REL. step. - down. - simpobs. - taur. assumption. + - step in REL. step. down. simpobs. taur. assumption. - now step. - - step. down. simpobs. taur. - backstep. - now apply IHeqitF. + - step. down. simpobs. taur. backstep. now apply IHeqitF. Qed. Lemma eqit_inv_Tau_r {E R1 R2 RR} b2 t1 t2 : @@ -775,12 +742,8 @@ Proof. intros. step in H. down. dependent induction H. - - step. - down. - simpobs. - taul. - step in REL. - assumption. + - step. down. simpobs. taul. + now backstep. - step. down. simpobs. taul. backstep. now apply IHeqitF. @@ -828,7 +791,7 @@ Notation eqit__ t1_ t2_ := Lemma eqit_inv t1 t2 : eqit RR b1 b2 t1 t2 -> eqit__ t1 t2. Proof. - intros H; punfold H; down. + intros H; step in H; down. genobs t1 ot1; genobs t2 ot2. inv H; unfold observe in *; simpobs; auto. - exists eq_refl; cbn; eauto. @@ -858,13 +821,13 @@ Qed. Lemma eqit_Tau_l {E R1 R2 RR} b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR true b2 t1 t2 -> eqit RR true b2 (Tau t1) t2. Proof. - intros. step. econstructor; eauto. punfold H. now down. + intros. step. econstructor; eauto. step in H. now down. Qed. Lemma eqit_Tau_r {E R1 R2 RR} b1 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 true t1 t2 -> eqit RR b1 true t1 (Tau t2). Proof. - intros. step. econstructor; eauto. punfold H. now down. + intros. step. econstructor; eauto. step in H. now down. Qed. Lemma tau_euttge {E R} (t: itree E R) : @@ -882,7 +845,7 @@ Qed. Lemma simpobs {E R} {ot} {t: itree E R} (EQ: ot = observe t): t ≅ go ot. Proof. - step. repeat red. simpobs. simpl. subst. step_reverse. apply Reflexive_eqit; eauto. + step. repeat red. simpobs. simpl. subst. backstep. apply Reflexive_eqit; eauto. Qed. (** *** Transitivity properties *) @@ -908,7 +871,7 @@ Proof. (* we'll need the coinductive reasoning later: elements of the chain are transitive w.r.t. eqit. *) coinduction c CIH. intros. - punfold INL. punfold INR. down. genobs t3 ot3. + step in INL. step in INR. down. genobs t3 ot3. (* we begin with induction on t1 ~ t2. in each case, we perform induction on t2 ~ t3. *) hinduction INL before CIH; intros; subst; clear t1 t2. @@ -929,16 +892,16 @@ Proof. (* τ - ̸τ : we do further case analysis. *) + inv INR; try (exfalso; eapply EQ; eauto; fail). taul. - pclearbot. punfold REL. down. + step in REL. down. hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). (* now we can handle each subcase with another layer of induction *) * remember (RetF r1) as ot. - hinduction REL0 before CIH; intros; inv Heqot; eauto with paco itree. + hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. * remember (VisF e k1) as ot. hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. econstructor. intros. apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. step_reverse. + * eapply IHREL0; eauto. backstep. destruct b1; inv CHECK0. apply eqit_inv_Tau_r. now step. - remember (VisF e k2) as ot. @@ -951,7 +914,7 @@ Proof. hinduction INR before CIH; intros; try inversion Heqot; subst. + eapply IHINL. now instantiate (1:=(Tau m2)). - pclearbot. punfold REL. eauto with itree. + step in REL. eauto with itree. + now eapply IHINL. + taur. eapply IHINR; eauto. Qed. @@ -1108,14 +1071,14 @@ Proof. split; intros H. - eapply transitivity. 2 : { apply H. } red. apply eqit_Tau_r. reflexivity. - - red. red. step. econstructor. auto. now punfold H. + - red. red. step. econstructor. auto. now step in H. Qed. Lemma tau_eqit_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), eqit RR true false t s -> eqit RR true false (Tau t) s. Proof. intros. - red. step. econstructor. auto. now punfold H. + red. step. econstructor. auto. now step in H. Qed. Lemma tau_eutt_RR_r : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), @@ -1125,7 +1088,7 @@ Proof. split; intros H. - eapply transitivity. apply H. red. apply eqit_Tau_l. reflexivity. - - red. red. step. econstructor. auto. now punfold H. + - red. red. step. econstructor. auto. now step in H. Qed. Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): @@ -1248,7 +1211,7 @@ Lemma eqit_Ret b1 b2 (r1 : R1) (r2 : R2) : Proof. split; intros H. - step. constructor; auto. - - punfold H. inversion H; subst; auto. + - step in H. inversion H; subst; auto. Qed. (** *** "Up-to" principles for coinduction. *) @@ -1266,16 +1229,6 @@ Hint Constructors eqit_bind_clo : itree. (* This might be good when doing other proofs, as it shows up often. *) -(* With lattices: there's an implicit lattice of relations here, -but should we make it explicit? *) - -(* For defining paco: *) -(* Definition paco_body {X} (f : mon X) r := (fun y => f (cup r y)). *) - -(* monotonicity of paco_body, omitted *) - -(* Definition paco {X} (f : mon X) r := gfp paco_body. *) - (* Q: best way we want to define this? Does this ever leave the file? *) Lemma eqit_clo_bind {RS} b1 b2 : eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon E _ _ RS b1 b2 (gfp (eqit_mon RS b1 b2)). @@ -1284,12 +1237,9 @@ Proof. inv H. backstep. (* need strong CIH *) - revert EQV. - revert t1 t2. - coinduction c CIH. - intros. - step in EQV. - down in EQV. + revert EQV; revert t1 t2. + coinduction c CIH; intros. + step in EQV. down in EQV. dependent induction EQV. all: down. (* be careful not to rewrite all here; this will mess up taul and taur cases. *) @@ -1317,7 +1267,6 @@ Proof. eapply IHEQV; eauto. Qed. - Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): @@ -1420,88 +1369,6 @@ Proof. Qed. -(* We just need elem to respect eta *) -(* Add Parametric Morphism {E R1} (c : Chain (eqit_mon eq false false)): - (elem c) - with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) - as elem_cong_eqit. *) -(* Add Parametric Morphism {E R1} (c : Chain (eqit_mon eq false false)): - (eqit_ eq false false (elem c)) - with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) - as elem_cong_eqit. -Proof. - red; intros. - step in H. - step in H0. - down. - dependent induction H1. - - simpobs. inv H0; try easy. inv H; try easy. simpobs. - now constructor. - - simpobs. dependent induction H0; try easy. dependent induction H; try easy. simpobs. - constructor. - eapply (sub_gfp_Chain). - rewrite REL0. - rewrite REL1. - eapply (leq_gfp (eqit_mon eq false false)). - instantiate (1:=(elem c)). - repeat intro. - Search elem. - Search gfp. - - -Qed. *) - -(* Add Parametric Morphism {E R1} c : - (@elem _ _ (@eqit_mon E _ _ eq false false) c) - with signature (eq_itree (@eq R1) ==> eq_itree eq ==> flip impl) - as elem_cong_eqit. -Proof. - red; intros. - eapply (gfp_chain c). - rewrite H. - rewrite H0. - - step. - step in H. step in H0. down. - dependent induction H. - - dependent induction H0. - + simpobs. constructor. *) - -(* need a monotone function that lifts elements by Taus *) - -(* Lemma elem_tau_inv {E R1 R2 RS} b1 b2 c t1 t2 : - @elem _ _ (@eqit_mon E R1 R2 RS b1 b2) c (Tau t1) (Tau t2) -> - @elem _ _ (@eqit_mon E R1 R2 RS b1 b2) c t1 t2. -Proof. - intro. - Search elem. - eapply (compat_chain c). - instantiate (1:=(fun t1 t2 => (Tau t1) (Tau t2))). *) - -(* Genuine try: prove eta expansion is compatible with b. *) -(* Add Parametric Morphism (c : Chain (eqit_mon eq false false)) : - (@eqit_mon E R R eq false false (elem c)) - with signature (@eq_itree E R R eq ==> eq_itree eq ==> flip impl) - as elem_eq_itree_proper. -Proof. - red; intros. - step in H. step in H0. - down. genobs x otx. genobs x0 otx0. - dependent induction H1. - - simpobs. inv H; inv H0; try easy. now constructor. - - simpobs. inv H; inv H0; try easy. constructor. - apply observing_sub_elem; eauto. Search elem. *) - -(* Monotone eta expansion *) - -Program Definition eta_expand {E R} (s : itree E R -> itree E R -> Prop) (t1 t2 : itree E R) : Prop. -Proof. - apply s. - exact {| _observe := observe t1 |}. - exact {| _observe := observe t2 |}. -Defined. - - #[global] Instance trans_elem_eq_itree_mon {E R} (c : Chain (@eqit_mon E R R eq false false)) : Transitive (elem c). Proof. @@ -1524,12 +1391,11 @@ Proof. do 2 (etransitivity; eauto). Qed. -(* This lemma requires a bit of cleverness: -[elem c], where [c] is [Chain (eqit_mon eq false false)], -is respected by [observing eq]. Such respectfulness -in turn reqires transitivity of [elem c] and the fact that -[observing eq] is a subrelation of [elem c]. -Some work in the reasoning, but with short proofs- and worth it! +(* This lemma requires a bit of cleverness: [elem c], where [c] is [Chain +(eqit_mon eq false false)], is respected by [observing eq]. Such respectfulness +in turn reqires transitivity of [elem c] and the fact that [observing eq] is a +subrelation of [elem c]. Some work in the reasoning, but with short proofs- and +worth it! *) Lemma bind_ret_r {E R} : forall s : itree E R, @@ -1704,18 +1570,18 @@ Proof. * rewrite itree_eta, Ema. reflexivity. * rewrite itree_eta_. unfold _observe. rewrite <- Heqotl. rewrite Heqtr in x. inv x. - pfold; constructor; auto. + step; constructor; auto. - intros. subst. unfold observe, _observe in Heqotl; cbn in Heqotl. destruct (observe ma) eqn:Ema; try discriminate. + exists r. split. * rewrite itree_eta, Ema. reflexivity. - * pfold. down. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + * step. down. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + inv Heqotl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl _ eq_refl). edestruct IHeqitF as (a & ? & ?); exists a. split; auto. - pfold; down; rewrite Ema. constructor; auto. - now punfold H0. + step; down; rewrite Ema. constructor; auto. + now step in H0. Qed. Lemma eutt_inv_bind_ret: @@ -1756,7 +1622,7 @@ Lemma eqit_inv_bind_vis : forall (x:X), eqit RR b1 b2 (ITree.bind (kxa x) kab) (kxc x)) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Vis e kxc)). Proof. - intros. punfold H. unfold eqit_ in H. down. + intros. step in H. unfold eqit_ in H. down. remember (observe (ITree.bind ma kab)) as tl. remember (VisF e kxc) as tr. revert ma kab Heqtl kxc Heqtr. @@ -1764,8 +1630,8 @@ Proof. - intros. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right. exists r. split. - * pfold; down. rewrite Ema. constructor. auto. - * pfold; down. unfold observe at 1; unfold _observe. rewrite <- Heqtl. + * step; down. rewrite Ema. constructor. auto. + * step; down. unfold observe at 1; unfold _observe. rewrite <- Heqtl. simpobs. constructor; auto. + left. symmetry in Heqtl. @@ -1774,20 +1640,20 @@ Proof. cbn in x. inv_eq_VisF x. exists k. split. - * pfold; down. rewrite Ema. constructor. down. reflexivity. - * pclearbot. auto. + * step; down. rewrite Ema. constructor. down. reflexivity. + * auto. - intros. subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn: Ema; try discriminate. + right; exists r; split. * rewrite itree_eta, Ema; reflexivity. - * pfold. down. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + * step. down. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + inv Heqtl. specialize (IHeqitF _ _ eq_refl eq_refl _ _ eq_refl _ eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. - pfold; down; rewrite Ema; constructor; now punfold H0. + step; down; rewrite Ema; constructor; now step in H0. * exists a. split; auto. - pfold; down; rewrite Ema; constructor; now punfold H0. + step; down; rewrite Ema; constructor; now step in H0. Qed. Lemma eutt_inv_bind_vis: @@ -1817,7 +1683,7 @@ Lemma eqit_inv_bind_tau: (exists (ma' : itree E A), eqit eq b1 b2 ma (Tau ma') /\ eqit RR b1 b2 (ITree.bind ma' kab) tc) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Tau tc)). Proof. - intros. punfold H. down. + intros. step in H. down. remember (observe (ITree.bind ma kab)) as tl. remember (TauF tc) as tr. revert ma kab Heqtl Heqtr. @@ -1825,27 +1691,27 @@ Proof. - inv Heqtr. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * pfold; down; rewrite Ema; constructor; auto. + * step; down; rewrite Ema; constructor; auto. * step; down; rewrite <- x; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. - * pfold; down; rewrite Ema; constructor; apply reflexivity. + * step; down; rewrite Ema; constructor; apply reflexivity. * inv Heqtl. inv x. assumption. - subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * pfold; down; rewrite Ema; constructor; auto. - * pfold; down; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + * step; down; rewrite Ema; constructor; auto. + * step; down; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + inv Heqtl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl eq_refl). destruct IHeqitF as [(t0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists t0. split; auto. - pfold; down; rewrite Ema; constructor 4; now punfold H0. + step; down; rewrite Ema; constructor 4; now step in H0. * exists a. split; auto. - pfold; down; rewrite Ema; constructor; now punfold H0. + step; down; rewrite Ema; constructor; now step in H0. - inv Heqtr. left; exists ma; split. - + pfold; constructor; auto. - + inv x; pfold; assumption. + + step; constructor; auto. + + inv x; step; assumption. Qed. Lemma eutt_inv_bind_tau: @@ -1870,7 +1736,7 @@ Lemma eutt_Ret_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R1), eutt RR (Ret v) (@ITree.spin E R2) -> False. Proof. intros. - punfold H. + step in H. down. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. @@ -1885,7 +1751,7 @@ Lemma eutt_spin_Ret_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R2), eutt RR (@ITree.spin E R1) (Ret v) -> False. Proof. intros. - punfold H. + step in H. down. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. @@ -1900,7 +1766,7 @@ Lemma eutt_Vis_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k eutt RR (Vis e k) (@ITree.spin E R2) -> False. Proof. intros. - punfold H. + step in H. down. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. @@ -1915,7 +1781,7 @@ Lemma eutt_spin_Vis_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k eutt RR (@ITree.spin E R1) (Vis e k) -> False. Proof. intros. - punfold H. + step in H. down. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. From 3a0424961ddfb1ab8b936ce4643d7d602ada36ce Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 21:56:15 -0500 Subject: [PATCH 053/189] More cleaning. Reaching a fixed point of cleaning. --- theories/Eq/Eqit.v | 164 ++++++++++++++++++++++----------------------- 1 file changed, 81 insertions(+), 83 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index dd157b22..c2e6bd3b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -165,15 +165,37 @@ End eqit. (* We first enhance the coinduction tactic to recognize goals that do not have a syntactic match with [gfp _] *) -#[global] Tactic Notation "coinduction" - simple_intropattern(R) - simple_intropattern(H) := - first - [ coinduction R H - | unfold eqit at -1; coinduction R H - | unfold eqit; coinduction R H - ]. - +Tactic Notation "coinduction" simple_intropattern(R) simple_intropattern(H) := + (* Case 1: coinduction succeeds by itself *) + tryif (coinduction R H) + then idtac + else + first + [ (* Case 2: -1 unfolding succeeded *) + (unfold euttge at -1 + || unfold eq_itree at -1 + || unfold eutt at -1); + unfold eqit at -1; + coinduction R H + + | (* Case 3: generic unfolding succeeded *) + (unfold euttge + || unfold eq_itree + || unfold eutt); + unfold eqit; + coinduction R H + + | (* Case 4 *) + unfold eqit at -1; + coinduction R H + + | (* Case 5 *) + unfold eqit; + coinduction R H + + | (* Case 6 *) + coinduction R H + ]. (* The [down] tactic: unfolding the ITree definition *) (* Since [itrees] are defined with nesting, un-nesting is often needed @@ -183,10 +205,10 @@ End eqit. in both hypotheses and the goal is so common that the library uses an internal tactic for doing so all at once. *) -Ltac down_ H := +Ltac down_in_ H := repeat progress (cbn [eqit_mon body] in H; unfold eqit_ in H). -Tactic Notation "down" "in" hyp(H) := down_ H. +Tactic Notation "down" "in" hyp(H) := down_in_ H. Ltac down_goal := repeat progress ( @@ -203,6 +225,11 @@ Ltac down := unfold eqit_ in * ). +Ltac stepdown := step; down. + +Ltac stepdown_in_ H := step in H; down in H. + +Tactic Notation "stepdown" "in" hyp(H) := stepdown_in_ H. (* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by simplifiying, rewriting, and trying to apply assumptions. *) @@ -439,33 +466,14 @@ Proof. red. induction 3; constructor; subst; eauto. Qed. -(* weak: eqitF is transitive under strong bisimilarity assumptions *) +(* weak: eqitF is transitive under strong bisimulation assumptions *) #[global] Instance Transitive_eqitF_eqit (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. - red. intros. revert H2. revert z. induction H1. - - intros. dependent induction H2; subst. - + econstructor. etransitivity; eauto. - + taur. - eapply IHeqitF; eauto. - - intros. - dependent induction H2; subst. - + econstructor; etransitivity; eauto. - (* impossible: eqitF RR false false sim (observe m2) z - because one boolean must be true for this assumption to hold. - *) - + easy. - + taur. eapply IHeqitF; eauto. - - intros. - dependent induction H2. - + econstructor. - etransitivity; eauto. - + taur. - eapply IHeqitF; eauto. - - intros. taul. apply IHeqitF, H2. - - intros. apply IHeqitF. - (* see above note on why this is impossible *) - easy. + repeat red. intros. revert H2. revert z. + dependent induction H1; try easy; intros; + dependent induction H2; try easy; + econstructor; etransitivity; eauto. Qed. (* Tour extra: *) @@ -496,7 +504,7 @@ Proof. repeat red; etransitivity; eauto. Qed. #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. - red; intros. unfold eqit. + red; intros. (* strengthen bisimulation: elem c x x holds for all x. *) revert x. coinduction c CIH. intro. step. now repeat apply Reflexive_eqit_. @@ -509,14 +517,11 @@ Proof. unfold Symmetric. coinduction c CIH. assert (Symmetric (elem c)). - { apply Symmetric_chain. red; intros. - now apply Symmetric_eqit_. - } - + { apply Symmetric_chain. red; intros. now apply Symmetric_eqit_. } intros. apply Symmetric_eqit_; auto. - unfold eqit_. step in H1. + down. induction H1; eauto with itree. Qed. @@ -525,43 +530,39 @@ Qed. subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. red. - unfold euttge, eqit. coinduction c CIH. intros. step in H. - step; down. + stepdown. (* these proofs get to do hinduction. *) hinduction H before CIH; subst; eauto with itree. - - step in REL. - cbn in REL. down. + - step in REL. down. dependent induction REL; solve_eqitF. - econstructor. - intro. specialize (REL v). step in REL. - cbn in REL; down. + intro. specialize (REL v). step in REL. down. dependent induction REL; solve_eqitF. Qed. #[global] Instance euttge_sub_eutt: subrelation (@euttge E _ _ RR) (eutt RR). Proof. - unfold subrelation, eutt, eqit. + unfold subrelation, eutt. coinduction c CIH. intros. step. - unfold euttge, eqit in H; down; step in H. + unfold euttge, eqit in H; step in H; down. hinduction H before CIH; subst; eauto with itree. - step in REL; cbn in REL; down. econstructor. dependent induction REL; try solve_eqitF. - down. rewrite <- x. taul. apply IHREL; eauto. - econstructor. intros. specialize (REL v). step in REL. - cbn in REL; down. + down. (* key step: IH must work for ANY tree, not just a continuation-built one. *) (* this is so we can strip a Tau off the left side and still use our IH. *) remember (k1 v). dependent induction REL; try solve_eqitF. - + rewrite <- x. taul. eapply IHREL; eauto. + rewrite <- x. taul. eapply IHREL; eauto. Qed. #[global] Instance eq_sub_eutt: @@ -631,21 +632,21 @@ Qed. #[global] Instance eqit_VisF b1 b2 {u} (e: E u) : Proper (pointwise_relation _ (eqit b1 b2) ==> going (eqit b1 b2)) (VisF e). Proof. - constructor; red in H. unfold eqit in *. step; econstructor; auto with itree. + constructor; red in H. step; econstructor; auto with itree. Qed. #[global] Instance observing_sub_eqit l r : subrelation (observing eq) (eqit l r). Proof. repeat red; intros. - step. cbn. unfold eqit_. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. + stepdown. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. #[global] Instance observing_sub_elem (c : Chain (eqit_mon eq false false)) (l r : itree E R) : subrelation (@observing E R R eq) (elem c). Proof. repeat intro. - inv H. step. down. rewrite observing_observe. + inv H. stepdown. rewrite observing_observe. backstep. reflexivity. Qed. @@ -728,23 +729,23 @@ Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. Proof. intros. - step in H. down. + stepdown in H. (* RTODO: report this bug (rm down) *) dependent induction H. - - step in REL. step. down. simpobs. taur. assumption. + - step in REL. stepdown. simpobs. taur. assumption. - now step. - - step. down. simpobs. taur. backstep. now apply IHeqitF. + - stepdown. simpobs. taur. backstep. now apply IHeqitF. Qed. Lemma eqit_inv_Tau_r {E R1 R2 RR} b2 t1 t2 : @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. Proof. intros. - step in H. down. + stepdown in H. dependent induction H. - - step. down. simpobs. taul. + - stepdown. simpobs. taul. now backstep. - - step. down. simpobs. taul. + - stepdown. simpobs. taul. backstep. now apply IHeqitF. - now step. @@ -757,7 +758,7 @@ Proof with eauto with itree. intros. step in H; down. dependent induction H. - - step. down. now step in REL. + - stepdown. now step in REL. - inv H; step; down; simpobs. + taul. now step in REL. + taul. backstep. now apply IHeqitF. @@ -867,7 +868,7 @@ Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t (INR: eqit RR2 b1 b2 t2 t3): @eqit E _ _ (rcompose RR1 RR2) b1 b2 t1 t3. Proof. - unfold eqit. revert_until b2. + unfold eqit. revert_until b2. (* we'll need the coinductive reasoning later: elements of the chain are transitive w.r.t. eqit. *) coinduction c CIH. intros. @@ -894,7 +895,7 @@ Proof. taul. step in REL. down. hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). - (* now we can handle each subcase with another layer of induction *) + (* now we can handle each subcase with another layer of induction *) * remember (RetF r1) as ot. hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. * remember (VisF e k1) as ot. @@ -1174,7 +1175,7 @@ Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 b2 (Tau t1) (Tau t2) <-> eqit RR b1 b2 t1 t2. Proof. split; intros H. - - step in H. step. down. + - step in H. stepdown. (* remember (TauF t1) as ot1. remember (TauF t2) as ot2. *) move H before RR. revert_until H. dependent induction H; intros. @@ -1231,11 +1232,12 @@ often. *) (* Q: best way we want to define this? Does this ever leave the file? *) Lemma eqit_clo_bind {RS} b1 b2 : - eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon E _ _ RS b1 b2 (gfp (eqit_mon RS b1 b2)). + eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon E _ _ RS b1 b2 ( + eqit RS b1 b2). Proof. repeat intro. - inv H. - backstep. + inv H. + unfold eqit. backstep. (* need strong CIH *) revert EQV; revert t1 t2. coinduction c CIH; intros. @@ -1245,7 +1247,7 @@ Proof. (* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) - + backstep. + + backstep. now apply REL. (* taus *) + constructor. @@ -1557,7 +1559,7 @@ Lemma eqit_inv_bind_ret: @eqit E R1 R2 RR b1 b2 (kb a) (Ret b). Proof. intros. - step in H. down. + stepdown in H. remember (observe (ITree.bind ma kb)) as otl. remember (RetF b) as tr. revert ma kb Heqotl b Heqtr. @@ -1576,11 +1578,11 @@ Proof. destruct (observe ma) eqn:Ema; try discriminate. + exists r. split. * rewrite itree_eta, Ema. reflexivity. - * step. down. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + * stepdown. unfold observe at 1; unfold _observe. rewrite <- Heqotl. taul; auto. + inv Heqotl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl _ eq_refl). edestruct IHeqitF as (a & ? & ?); exists a. split; auto. - step; down; rewrite Ema. constructor; auto. + stepdown; rewrite Ema. taul. now step in H0. Qed. @@ -1622,7 +1624,7 @@ Lemma eqit_inv_bind_vis : forall (x:X), eqit RR b1 b2 (ITree.bind (kxa x) kab) (kxc x)) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Vis e kxc)). Proof. - intros. step in H. unfold eqit_ in H. down. + intros. stepdown in H. remember (observe (ITree.bind ma kab)) as tl. remember (VisF e kxc) as tr. revert ma kab Heqtl kxc Heqtr. @@ -1647,7 +1649,7 @@ Proof. destruct (observe ma) eqn: Ema; try discriminate. + right; exists r; split. * rewrite itree_eta, Ema; reflexivity. - * step. down. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + * stepdown. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + inv Heqtl. specialize (IHeqitF _ _ eq_refl eq_refl _ _ eq_refl _ eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. @@ -1683,7 +1685,7 @@ Lemma eqit_inv_bind_tau: (exists (ma' : itree E A), eqit eq b1 b2 ma (Tau ma') /\ eqit RR b1 b2 (ITree.bind ma' kab) tc) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Tau tc)). Proof. - intros. step in H. down. + intros. stepdown in H. remember (observe (ITree.bind ma kab)) as tl. remember (TauF tc) as tr. revert ma kab Heqtl Heqtr. @@ -1736,8 +1738,7 @@ Lemma eutt_Ret_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R1), eutt RR (Ret v) (@ITree.spin E R2) -> False. Proof. intros. - step in H. - down. + stepdown in H. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -1751,8 +1752,7 @@ Lemma eutt_spin_Ret_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R2), eutt RR (@ITree.spin E R1) (Ret v) -> False. Proof. intros. - step in H. - down. + stepdown in H. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -1766,8 +1766,7 @@ Lemma eutt_Vis_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k eutt RR (Vis e k) (@ITree.spin E R2) -> False. Proof. intros. - step in H. - down. + stepdown in H. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -1781,8 +1780,7 @@ Lemma eutt_spin_Vis_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k eutt RR (@ITree.spin E R1) (Vis e k) -> False. Proof. intros. - step in H. - down. + stepdown in H. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. From d35379c8fb23105dfe2c1411d0cb832bf8799ae2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 22:06:02 -0500 Subject: [PATCH 054/189] Removed some seemingly unecessary Instances, might roll back --- theories/Eq/Eqit.v | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c2e6bd3b..c3b2efac 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -484,11 +484,6 @@ Qed. *) (* eutt is still transitive, but for different reasons *) - -(* strongest: holds for all instances of eqit *) -#[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). -Proof. repeat red. intros. reflexivity. Qed. (* weak: holds only with eqit or eutt *) #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) @@ -507,7 +502,7 @@ Proof. red; intros. (* strengthen bisimulation: elem c x x holds for all x. *) revert x. coinduction c CIH. intro. step. - now repeat apply Reflexive_eqit_. + down. repeat (apply Reflexive_eqitF; repeat intro; eauto). Qed. @@ -517,9 +512,9 @@ Proof. unfold Symmetric. coinduction c CIH. assert (Symmetric (elem c)). - { apply Symmetric_chain. red; intros. now apply Symmetric_eqit_. } - intros. - apply Symmetric_eqit_; auto. + { apply Symmetric_chain. red; intros. now apply Symmetric_eqitF. } + intros. + apply Symmetric_eqitF; auto. step in H1. down. induction H1; eauto with itree. @@ -595,14 +590,6 @@ Proof. apply Symmetric_eqitF; eauto. Qed. -#[global] Instance Reflexive_eqit__eq b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive sim -> Reflexive (eqit_ eq b1 b2 sim). -Proof. apply Reflexive_eqit_; eauto. Qed. - -#[global] Instance Symmetric_eqit__eq b (sim : itree E R -> itree E R -> Prop) -: Symmetric sim -> Symmetric (eqit_ eq b b sim). -Proof. apply Symmetric_eqit_; eauto. Qed. - (** *** [eqit] is an equivalence relation *) #[global] Instance Reflexive_eqit_eq b1 b2 : Reflexive (eqit b1 b2). From 77d642b8c10bf921f3bf123ce6864dbd783dce9a Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 22:07:47 -0500 Subject: [PATCH 055/189] Reverting --- theories/Eq/Eqit.v | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c3b2efac..c2e6bd3b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -484,6 +484,11 @@ Qed. *) (* eutt is still transitive, but for different reasons *) + +(* strongest: holds for all instances of eqit *) +#[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) +: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). +Proof. repeat red. intros. reflexivity. Qed. (* weak: holds only with eqit or eutt *) #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) @@ -502,7 +507,7 @@ Proof. red; intros. (* strengthen bisimulation: elem c x x holds for all x. *) revert x. coinduction c CIH. intro. step. - down. repeat (apply Reflexive_eqitF; repeat intro; eauto). + now repeat apply Reflexive_eqit_. Qed. @@ -512,9 +517,9 @@ Proof. unfold Symmetric. coinduction c CIH. assert (Symmetric (elem c)). - { apply Symmetric_chain. red; intros. now apply Symmetric_eqitF. } - intros. - apply Symmetric_eqitF; auto. + { apply Symmetric_chain. red; intros. now apply Symmetric_eqit_. } + intros. + apply Symmetric_eqit_; auto. step in H1. down. induction H1; eauto with itree. @@ -590,6 +595,14 @@ Proof. apply Symmetric_eqitF; eauto. Qed. +#[global] Instance Reflexive_eqit__eq b1 b2 (sim : itree E R -> itree E R -> Prop) +: Reflexive sim -> Reflexive (eqit_ eq b1 b2 sim). +Proof. apply Reflexive_eqit_; eauto. Qed. + +#[global] Instance Symmetric_eqit__eq b (sim : itree E R -> itree E R -> Prop) +: Symmetric sim -> Symmetric (eqit_ eq b b sim). +Proof. apply Symmetric_eqit_; eauto. Qed. + (** *** [eqit] is an equivalence relation *) #[global] Instance Reflexive_eqit_eq b1 b2 : Reflexive (eqit b1 b2). From 2744a7657c25b6d3b2bc9be71d1af8322ee26115 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 22 Feb 2026 23:37:50 -0500 Subject: [PATCH 056/189] Added one aborted proof; removed unnecessary lines. --- theories/Eq/Eqit.v | 65 +++++++--------------------------------------- 1 file changed, 9 insertions(+), 56 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c2e6bd3b..4d2c3c16 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -337,34 +337,6 @@ Proof. econstructor; now apply H. Qed. -#[global] Instance eqitF_Proper_observe_l {E : Type -> Type} {R1 R2:Type} : - Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) - (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) t2). -Proof. - repeat red. - intros. subst. split; intros. - all: induction H0; auto with itree; - econstructor; now apply H. -Qed. - - -#[global] Instance eqitF_Proper_observe_r {E : Type -> Type} {R1 R2:Type} : - Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) - (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim t1 (observe t2)). -Proof. - repeat red. - intros. subst. split; intros. - all: induction H0; auto with itree; - econstructor; now apply H. -Qed. - -#[global] Instance eqitF_Proper_observe {E : Type -> Type} {R1 R2:Type} : - Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) - (fun RR b1 b2 sim t1 t2 => @eqitF E R1 R2 RR b1 b2 sim (observe t1) (observe t2)). -Proof. - repeat red; intros; subst; eapply eqitF_Proper_observe_r; eauto. -Qed. - #[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). Proof with auto with itree. @@ -529,16 +501,11 @@ Qed. #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. - red. - coinduction c CIH. intros. - step in H. - stepdown. - (* these proofs get to do hinduction. *) + red. coinduction c CIH. intros. + step in H. stepdown. hinduction H before CIH; subst; eauto with itree. - - step in REL. down. - dependent induction REL; solve_eqitF. - - econstructor. - intro. specialize (REL v). step in REL. down. + - step in REL. down. dependent induction REL; solve_eqitF. + - econstructor. intro. specialize (REL v). stepdown in REL. dependent induction REL; solve_eqitF. Qed. @@ -550,14 +517,13 @@ Proof. intros. step. unfold euttge, eqit in H; step in H; down. hinduction H before CIH; subst; eauto with itree. - - step in REL; cbn in REL; down. + - stepdown in REL. econstructor. dependent induction REL; try solve_eqitF. rewrite <- x. taul. apply IHREL; eauto. - econstructor. intros. - specialize (REL v). step in REL. - down. + specialize (REL v). stepdown in REL. (* key step: IH must work for ANY tree, not just a continuation-built one. *) (* this is so we can strip a Tau off the left side and still use our IH. *) remember (k1 v). @@ -650,19 +616,6 @@ Proof. backstep. reflexivity. Qed. -(* Add Parametric Morphism (c : Chain (eqit_mon eq false false)) : - (@eqit_mon E R R eq false false (elem c)) - with signature (@eq_itree E R R eq ==> eq_itree eq ==> flip impl) - as elem_eq_itree_proper. -Proof. - red; intros. - step in H. step in H0. - down. genobs x otx. genobs x0 otx0. - dependent induction H1. - - simpobs. inv H; inv H0; try easy. now constructor. - - simpobs. inv H; inv H0; try easy. constructor. - apply observing_sub_elem; eauto. Search elem. *) - (** ** Eta-expansion *) Lemma itree_eta_ (t : itree E R) : t ≅ go (_observe t). @@ -1176,7 +1129,6 @@ Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : Proof. split; intros H. - step in H. stepdown. - (* remember (TauF t1) as ot1. remember (TauF t2) as ot2. *) move H before RR. revert_until H. dependent induction H; intros. + now backstep. @@ -1273,9 +1225,10 @@ Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eutt RR (ITree.bind t1 k1) (ITree.bind t2 k2). -Proof. -Abort. + Proof. + unfold eutt. step. eapply eqit_clo_bind. econstructor; eauto. +Qed. End eqit_h. Lemma eutt_Tau {E R} (t1 t2 : itree E R): From 90baa0526b17292387fb81e65af6a35b581a9ce7 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 23 Feb 2026 11:22:42 -0500 Subject: [PATCH 057/189] Added notes on next steps for Eqit.v --- theories/Eq/Eqit.v | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 4d2c3c16..45333a3f 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -448,6 +448,8 @@ Proof. econstructor; etransitivity; eauto. Qed. +(* RTODO: REMOVE DEPENDENT INDUCTION *) + (* Tour extra: *) (* RTODO: ask yannick exactly what's going on, then document *) (* @@ -474,6 +476,14 @@ Proof. repeat red; etransitivity; eauto. Qed. (** *** [eqit] is an equivalence relation *) +(* +(* RTODO: *) +To prove: elem refl, elem symmetric, +true false -> elem trans +false false -> elem trans + +*) + #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. red; intros. @@ -1268,6 +1278,28 @@ Proof. eapply eqit_bind'; eauto. Qed. +(* RTODO: want + +Proper (eutt ==> pointwise_chain ==> chain) bind + +want something finer-grained- eutt lifts a relation + +Choose any postcondition SS. eutt over SS, pointwise_chain over SS. + +we want to pull this out. + +(* +0. valid up to refl, symm, trans (with correct b1 b2) of elem c +1. remove dep. induction +2. consider coinduction library fix- mwe at least +3. think about removing bind_clo and replacing with proper instance +3.a very strong bespoke proper instance- pull out R1 R2 RR etc. + +*) + +forall t u SS, (elem c SS t u ==> forall x y, SS x y -> elem c (k x) (g y) -> elem c (bind t k) bind u g) +*) + #[global] Instance eqit_subst {E R S} b1 b2 : Proper (pointwise_relation _ (eqit eq b1 b2) ==> eqit eq b1 b2 ==> eqit eq b1 b2) (@ITree.subst E R S). From 858d476550729f764f9c0fedd5770ebd105708ac Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 23 Feb 2026 13:24:23 -0500 Subject: [PATCH 058/189] Pushing transitivity of eqitF true false to look at --- theories/Eq/Eqit.v | 111 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 108 insertions(+), 3 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 45333a3f..f2ac44de 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -439,7 +439,7 @@ Proof. Qed. (* weak: eqitF is transitive under strong bisimulation assumptions *) -#[global] Instance Transitive_eqitF_eqit (sim : itree E R -> itree E R -> Prop) +#[global] Instance Transitive_eqitF_ff (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. repeat red. intros. revert H2. revert z. @@ -448,6 +448,79 @@ Proof. econstructor; etransitivity; eauto. Qed. +(* weak: eqitF is transitive under euttge assumptions *) +#[global] Instance Transitive_eqitF_tf (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqitF RR true false sim). +Proof. + repeat red. intros. revert H2. revert z. + induction H1; try easy; intros. + (* Ret *) + - remember (RetF r2) eqn:eq. induction H2; inv eq; try easy. + econstructor; etransitivity; eauto. + (* taul *) + - + + + (* remember (TauF m2). + hinduction H2 before Heqi; try solve [inv Heqi; try easy; try (econstructor; etransitivity; eauto)]. + + revert Heqi. + revert REL. + revert m1. + + induction H2; intros; try solve [inv Heqi; try easy; try (econstructor; etransitivity; eauto)]. *) + + (* from other transitivity proof: *) + assert (DEC: (exists m3, z = TauF m3) \/ (forall m3, z <> TauF m3)). + { destruct z; eauto; right; red; intros; inv H1. } + destruct DEC as [EQ | EQ]. + (* τ - τ case: strip both. *) + + destruct EQ as [m3 ?]; subst. + (* we have the same problem here. *) + remember (TauF m3). + induction H2; inv Heqi; try easy. + econstructor; etransitivity; eauto. + (* we need to remember, or we get stuck here with a bogus m0 *) + fail. + remember (TauF m2). + induction H2; inv Heqi; try easy. + econstructor; etransitivity; eauto. + + apply eqit_inv_Tau. + now step. + (* τ - ̸τ : we do further case analysis. *) + + inv INR; try (exfalso; eapply EQ; eauto; fail). + taul. + step in REL. down. + hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). + (* now we can handle each subcase with another layer of induction *) + * remember (RetF r1) as ot. + hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. + * remember (VisF e k1) as ot. + hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. + econstructor. intros. + apply (CIH _ _ _ (REL v) (REL0 v)). + * eapply IHREL0; eauto. backstep. + destruct b1; inv CHECK0. + apply eqit_inv_Tau_r. now step. + + assert (DEC: (exists m3, m2 = Tau m3) \/ (forall m3, m2 <> Tau m3)). +Admitted. + (* { destruct (m2); eauto; right; red; intros; inv H. } + destruct DEC as [EQ | EQ]. + remember (observe (Tau m2)) eqn:eq. + remember (TauF m1). + (* revert Heqi0. *) + (* revert i0. *) + (* revert eq. *) + induction H2. inv eq; try easy. + inv eq; try easy. + econstructor; etransitivity; eauto. + inv eq; try easy. + rewrite Heqi0. injection eq as eq'. rewrite <- eq' in *. + +Qed. *) + (* RTODO: REMOVE DEPENDENT INDUCTION *) (* Tour extra: *) @@ -470,12 +543,44 @@ Proof. repeat red. intros. reflexivity. Qed. Proof. repeat red; symmetry; auto. Qed. (* weak: holds only for strong bisimilarity *) -#[global] Instance Transitive_eqit_eqit (sim : itree E R -> itree E R -> Prop) +#[global] Instance Transitive_eqit__ff (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). +Proof. repeat red; etransitivity; eauto. Qed. + +(* weak: holds only for strong bisimilarity *) +#[global] Instance Transitive_eqit__tt (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). Proof. repeat red; etransitivity; eauto. Qed. (** *** [eqit] is an equivalence relation *) +(** elements of the final chain are equivalence relations *) +#[export] Instance Reflexive_elem (b1 b2: bool) (HE : Reflexive RR) {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). + Proof. + apply Reflexive_chain. repeat intro. step. + repeat apply Reflexive_eqit_; auto. + Qed. + +#[export] Instance Symmetric_elem_b (b: bool) (HE : Symmetric RR) {c: Chain (@eqit_mon E R R RR b b)}: Symmetric (elem c). + Proof. + apply Symmetric_chain; repeat intro; now eapply Symmetric_eqit_. + Qed. + +(* #[export] Instance Transitive_elem_ff (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). + Proof. + apply Transitive_chain. repeat intro. down. + eapply Transitive_eqit_eqit; eauto. +Qed. *) + +(* #[export] Instance Transitive_elem_tf (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR true false)}: Transitive (elem c). + Proof. + apply Transitive_chain. repeat intro. down. + eapply Transitive_eqit_eqit; eauto. +Qed. *) + + + + (* (* RTODO: *) To prove: elem refl, elem symmetric, @@ -1361,7 +1466,7 @@ Qed. Proof. apply Transitive_chain. intros R' HR'. - apply Transitive_eqit_eqit. + apply Transitive_eqit__ff. - congruence. - exact HR'. Qed. From c8c46f162fb4c84a4fa4da205925c1bf36942e99 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 23 Feb 2026 18:14:44 -0500 Subject: [PATCH 059/189] removed dependent induction. Pushing elem trans stuck proof. --- theories/Eq/Eqit.v | 394 +++++++++++++++++++++++++++++---------------- 1 file changed, 252 insertions(+), 142 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f2ac44de..9b3133a0 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -235,15 +235,12 @@ Tactic Notation "stepdown" "in" hyp(H) := stepdown_in_ H. simplifiying, rewriting, and trying to apply assumptions. *) Ltac solve_eqitF := -match goal with -| [h1: _ = observe _ , h2: _ = observe _ |- _] => (* reduce to 'observe' form by stripping constructors and unfolding *) down; try econstructor; (* replace 'observe' with actual constructor values *) -rewrite <- h1; rewrite <- h2; +simpobs; (* finish off *) -econstructor; eauto with itree -end. +try econstructor; intros; eauto with itree. (* [taul] and [taur] peel off a tau from either side when the CHECK flag for that side is set. Their primary purpose is to make proofs more readable. *) @@ -443,9 +440,75 @@ Qed. : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. repeat red. intros. revert H2. revert z. - dependent induction H1; try easy; intros; - dependent induction H2; try easy; - econstructor; etransitivity; eauto. + induction H1; try easy; intros. + - remember (RetF r2) eqn:eq. induction H2; inv eq; try easy; + econstructor; etransitivity; eauto. + - remember (TauF m2) eqn:eq. induction H2; inv eq; try easy; + econstructor; etransitivity; eauto. + - remember (VisF e k2) eqn:eq. induction H2; try solve [inv eq; try easy]. + inv eq. + (* eapply eqitF_VisF_gen. *) + unfold eqeq. + (* eapply *) + dependent destruction H4. + dependent destruction H3. + econstructor; etransitivity; eauto. +Qed. +(* Yannick: Can this be done without dependent destruction? *) +Print Assumptions Transitive_eqitF_ff. + + (* eutt is still transitive, but for different reasons *) + +(* strongest: holds for all instances of eqit *) +#[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) +: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). +Proof. repeat red. intros. reflexivity. Qed. + +(* weak: holds only with eqit or eutt *) +#[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) +: Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). +Proof. repeat red; symmetry; auto. Qed. + +(* weak: holds only for strong bisimilarity *) +#[global] Instance Transitive_eqit__ff (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). +Proof. repeat red; etransitivity; eauto. Qed. + +(* weak: holds only for strong bisimilarity *) +#[global] Instance Transitive_eqit__tt (sim : itree E R -> itree E R -> Prop) +: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). +Proof. repeat red; etransitivity; eauto. Qed. + +(** *** [eqit] is an equivalence relation *) + +(** elements of the final chain are equivalence relations *) +#[export] Instance Reflexive_elem (b1 b2: bool) (HE : Reflexive RR) {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). + Proof. + apply Reflexive_chain. repeat intro. step. + repeat apply Reflexive_eqit_; auto. + Qed. + +#[export] Instance Symmetric_elem_b (b: bool) (HE : Symmetric RR) {c: Chain (@eqit_mon E R R RR b b)}: Symmetric (elem c). + Proof. + apply Symmetric_chain; repeat intro; now eapply Symmetric_eqit_. + Qed. + +#[export] Instance Transitive_elem_ff (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). + Proof. + apply Transitive_chain. repeat intro. down. + eapply Transitive_eqit__ff; eauto. +Qed. + + +Lemma eqit_inv_Tau_var (m1 m2 : itree E R) sim z : + forall (om1 : itree' E R), + observe m1 = om1 -> + eqitF RR true false sim om1 z -> + @eqitF _ _ R RR true false sim (TauF m1) z. +Proof. + intros om1 Heq H2. + (* Now om2 is a variable — we can use plain induction *) + induction H2; taul; simpobs; eauto with itree. Qed. (* weak: eqitF is transitive under euttge assumptions *) @@ -455,12 +518,70 @@ Proof. repeat red. intros. revert H2. revert z. induction H1; try easy; intros. (* Ret *) - - remember (RetF r2) eqn:eq. induction H2; inv eq; try easy. - econstructor; etransitivity; eauto. - (* taul *) - + (* dependent induction H2. + econstructor; etransitivity; eauto. + taur. eapply IHeqitF; eauto. + *) + remember (RetF r2) eqn:eq. remember z eqn:eqz. + hinduction H2 before eqz; intros; inv eq; try easy. + econstructor; etransitivity; eauto. + - + assert (DEC: (exists m3, z = TauF m3) \/ (forall m3, z <> TauF m3)). + { destruct z; eauto; right; red; intros; inv H1. } + destruct DEC as [EQ | EQ]. + (* τ - τ case: strip both. *) + + destruct EQ as [m3 ?]; subst. +Abort. + (* we have the same problem here. *) + (* remember (TauF m2). + remember (TauF m3). + move H2 before REL. + revert_until H2. + induction H2; intros; inv Heqi; try inv Heqi0; try easy. + econstructor; etransitivity; eauto. + inv H2. + (* we need to remember, or we get stuck here with a bogus m0 *) + + apply eqit_inv_Tau. + now step. + (* τ - ̸τ : we do further case analysis. *) + + inv INR; try (exfalso; eapply EQ; eauto; fail). + taul. + step in REL. down. + hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). + (* now we can handle each subcase with another layer of induction *) + * remember (RetF r1) as ot. + hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. + * remember (VisF e k1) as ot. + hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. + econstructor. intros. + apply (CIH _ _ _ (REL v) (REL0 v)). + * eapply IHREL0; eauto. backstep. + destruct b1; inv CHECK0. + apply eqit_inv_Tau_r. now step. + + + dependent induction H2. + econstructor; etransitivity; eauto. + - +revert m1 REL. +remember (TauF m2) as lhs eqn:eq. +remember z as rhs eqn:eqz. + +move H2 before m2. +revert_until H2. +induction H2; intros; try solve [inv eq]; try easy. +inv eq; econstructor; etransitivity; eauto. + + + remember z. revert r1 r2 z REL eq Heqi0. + induction H2; intros; inv eq; try easy. + econstructor; etransitivity; eauto. + (* taul *) + *) +(* (* remember (TauF m2). hinduction H2 before Heqi; try solve [inv Heqi; try easy; try (econstructor; etransitivity; eauto)]. @@ -481,7 +602,6 @@ Proof. induction H2; inv Heqi; try easy. econstructor; etransitivity; eauto. (* we need to remember, or we get stuck here with a bogus m0 *) - fail. remember (TauF m2). induction H2; inv Heqi; try easy. econstructor; etransitivity; eauto. @@ -505,7 +625,8 @@ Proof. apply eqit_inv_Tau_r. now step. assert (DEC: (exists m3, m2 = Tau m3) \/ (forall m3, m2 <> Tau m3)). -Admitted. + *) + (* { destruct (m2); eauto; right; red; intros; inv H. } destruct DEC as [EQ | EQ]. remember (observe (Tau m2)) eqn:eq. @@ -530,64 +651,33 @@ Qed. *) transitivity, but we did prove things are transitive... what's going on? *) - (* eutt is still transitive, but for different reasons *) - -(* strongest: holds for all instances of eqit *) -#[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). -Proof. repeat red. intros. reflexivity. Qed. - -(* weak: holds only with eqit or eutt *) -#[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) -: Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). -Proof. repeat red; symmetry; auto. Qed. - -(* weak: holds only for strong bisimilarity *) -#[global] Instance Transitive_eqit__ff (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). -Proof. repeat red; etransitivity; eauto. Qed. - -(* weak: holds only for strong bisimilarity *) -#[global] Instance Transitive_eqit__tt (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). -Proof. repeat red; etransitivity; eauto. Qed. - -(** *** [eqit] is an equivalence relation *) - -(** elements of the final chain are equivalence relations *) -#[export] Instance Reflexive_elem (b1 b2: bool) (HE : Reflexive RR) {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). - Proof. - apply Reflexive_chain. repeat intro. step. - repeat apply Reflexive_eqit_; auto. - Qed. - -#[export] Instance Symmetric_elem_b (b: bool) (HE : Symmetric RR) {c: Chain (@eqit_mon E R R RR b b)}: Symmetric (elem c). - Proof. - apply Symmetric_chain; repeat intro; now eapply Symmetric_eqit_. - Qed. - -(* #[export] Instance Transitive_elem_ff (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. down. - eapply Transitive_eqit_eqit; eauto. -Qed. *) - -(* #[export] Instance Transitive_elem_tf (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR true false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. down. - eapply Transitive_eqit_eqit; eauto. -Qed. *) - - - - (* (* RTODO: *) -To prove: elem refl, elem symmetric, -true false -> elem trans -false false -> elem trans - +To prove: elem true false trans *) +#[export] Instance Transitive_elem_tf (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR true false)}: Transitive (elem c). + Proof. + apply Transitive_chain. repeat intro. down. + genobs x otx. + genobs y oty. + genobs z otz. + hinduction H0 before y; intros; try easy. + - remember (RetF r2). + hinduction H1 before c; intros; try easy; inv Heqi. + constructor; etransitivity; eauto. + - remember (TauF m2). + hinduction H1 before c; intros; try easy; inv Heqi. + constructor; etransitivity; eauto. + eapply IHeqitF; eauto. + (* stuck *) + admit. +- remember (VisF e k2). + hinduction H1 before c; intros; try easy. inv_Vis. + constructor; etransitivity; eauto. +- taul. eapply IHeqitF; eauto. + (* stuck *) + admit. + Admitted. #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. @@ -619,9 +709,12 @@ Proof. red. coinduction c CIH. intros. step in H. stepdown. hinduction H before CIH; subst; eauto with itree. - - step in REL. down. dependent induction REL; solve_eqitF. + - step in REL. down. genobs m1 otm1. genobs m2 otm2. + induction REL; try easy; solve_eqitF. - econstructor. intro. specialize (REL v). stepdown in REL. - dependent induction REL; solve_eqitF. + remember (observe (k1 v)). remember (observe (k2 v)). + induction REL; try easy; constructor; intros; eauto. + apply CIH, REL. Qed. #[global] Instance euttge_sub_eutt: @@ -634,16 +727,13 @@ Proof. hinduction H before CIH; subst; eauto with itree. - stepdown in REL. econstructor. - dependent induction REL; try solve_eqitF. - rewrite <- x. taul. - apply IHREL; eauto. + induction REL; intros; constructor; intros; try apply CIH, REL; eauto. - econstructor. intros. specialize (REL v). stepdown in REL. (* key step: IH must work for ANY tree, not just a continuation-built one. *) (* this is so we can strip a Tau off the left side and still use our IH. *) remember (k1 v). - dependent induction REL; try solve_eqitF. - rewrite <- x. taul. eapply IHREL; eauto. + induction REL; try solve_eqitF. Qed. #[global] Instance eq_sub_eutt: @@ -797,26 +887,29 @@ Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. Proof. intros. - stepdown in H. + stepdown in H. + stepdown. + remember (observe (Tau t1)). + remember (observe t1). (* RTODO: report this bug (rm down) *) - dependent induction H. - - step in REL. stepdown. simpobs. taur. assumption. - - now step. - - stepdown. simpobs. taur. backstep. now apply IHeqitF. + induction H; inv Heqi. + - stepdown in REL. now taur. + - assumption. + - taur. now apply IHeqitF. Qed. Lemma eqit_inv_Tau_r {E R1 R2 RR} b2 t1 t2 : @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. Proof. intros. - stepdown in H. - dependent induction H. - - stepdown. simpobs. taul. - now backstep. - - stepdown. simpobs. taul. - backstep. - now apply IHeqitF. - - now step. + stepdown in H. + stepdown. + remember (observe (Tau t2)). + remember (observe t2). + induction H; inv Heqi. + - taul. now backstep. + - simpobs. taul. now apply IHeqitF. + - assumption. Qed. (* this proof is much shorter and nicer than before. *) @@ -824,18 +917,21 @@ Lemma eqit_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. Proof with eauto with itree. intros. - step in H; down. - dependent induction H. - - stepdown. now step in REL. - - inv H; step; down; simpobs. + step in H; down. + genobs (Tau t1) ot1. + genobs (Tau t2) ot2. +revert t1 t2 Heqot1 Heqot2. +induction H; intros t1' t2' Heqot1 Heqot2; try easy; subst. +- now inv Heqot1; inv Heqot2. +- inv H; inv Heqot1; step; down; simpobs. + taul. now step in REL. - + taul. backstep. now apply IHeqitF. + + taul. backstep. now apply IHeqitF. + assumption. - - inv H; step; down; simpobs. + - inv H; inv Heqot2; step; down; simpobs. + taur. now step in REL. + assumption. + taur. backstep. now apply IHeqitF. -Qed. +Qed. Section eqit_inv. @@ -1164,20 +1260,26 @@ Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): (Ret r1) ≈ t2 -> t2 ≳ (Ret r1). Proof. intros Heutt. step in Heutt. down. - rewrite itree_eta. remember (RetF r1) as ot1. - dependent induction Heutt; intros; try discriminate. - - inv x. reflexivity. - - inv x. rewrite tau_euttge. rewrite itree_eta. now apply IHHeutt. + rewrite itree_eta. + remember (observe (Ret r1)). + genobs t2 ot2. + remember {| _observe := ot2 |}. + hinduction Heutt before r1; intros; inv Heqi. + - reflexivity. + - rewrite tau_euttge. rewrite itree_eta. now eapply IHHeutt. Qed. +(* The trick with these observe induction proofs + is often to go 'as high as possible...' *) Lemma eutt_inv_Ret_r {E R} (t1: itree E R) (r2: R): t1 ≈ (Ret r2) -> t1 ≳ (Ret r2). Proof. intros Heutt. step in Heutt. down. - rewrite itree_eta. remember (RetF r2) as ot2. - dependent induction Heutt; intros; try discriminate. - - inv x. reflexivity. - - inv x. rewrite tau_euttge. rewrite itree_eta. now apply IHHeutt. + rewrite itree_eta. + remember (observe (Ret r2)); genobs t1 ot1; remember {| _observe := ot1 |}. + hinduction Heutt before R; intros; inv Heqi. + - reflexivity. + - rewrite tau_euttge. rewrite itree_eta. now eapply IHHeutt. Qed. (** ** Equations for core combinators *) @@ -1244,8 +1346,12 @@ Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : Proof. split; intros H. - step in H. stepdown. - move H before RR. revert_until H. - dependent induction H; intros. + move H before RR. revert_until H. + remember (observe (Tau t1)). + remember (observe (Tau t2)). + genobs t1 ot1. + genobs t2 ot2. + hinduction H before RR; intros; inv Heqi; try inv Heqi0. + now backstep. + inv H. * taul. eapply IHeqitF; eauto. @@ -1308,22 +1414,23 @@ Proof. (* need strong CIH *) revert EQV; revert t1 t2. coinduction c CIH; intros. - step in EQV. down in EQV. - dependent induction EQV. + step in EQV. down in EQV. + genobs t1 ot1. + genobs t2 ot2. + hinduction EQV before RR; intros; try easy. all: down. (* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) + backstep. - now apply REL. + now apply REL0. (* taus *) + constructor. now apply CIH. (* vis *) + constructor. intro. - apply CIH. - apply REL0. + apply CIH. apply REL. (* taul *) + rewrite observe_bind. simpobs. @@ -1394,10 +1501,10 @@ Choose any postcondition SS. eutt over SS, pointwise_chain over SS. we want to pull this out. (* -0. valid up to refl, symm, trans (with correct b1 b2) of elem c -1. remove dep. induction +[shelved]. trans true false elem c (depends on eqitF true false) +[done]1. remove dep. induction 2. consider coinduction library fix- mwe at least -3. think about removing bind_clo and replacing with proper instance +[with yannick] 3. think about removing bind_clo and replacing with proper instance 3.a very strong bespoke proper instance- pull out R1 R2 RR etc. *) @@ -1649,31 +1756,31 @@ Lemma eqit_inv_bind_ret: @eqit E R1 R2 RR b1 b2 (kb a) (Ret b). Proof. intros. - stepdown in H. + stepdown in H. remember (observe (ITree.bind ma kb)) as otl. - remember (RetF b) as tr. - revert ma kb Heqotl b Heqtr. - dependent induction H; try solve [intros; subst; discriminate]. - - intros. - rewrite Heqtr. + remember (Ret b) as retb. + remember (observe retb) as tr. + revert ma kb Heqotl b retb Heqretb Heqtr. + hinduction H before RR; intros; subst; try discriminate. + - intros; subst. unfold observe, _observe in Heqotl; cbn in Heqotl. destruct (observe ma) eqn:Ema; try discriminate. exists r. split. * rewrite itree_eta, Ema. reflexivity. - * rewrite itree_eta_. unfold _observe. rewrite <- Heqotl. - rewrite Heqtr in x. inv x. + * rewrite itree_eta_. unfold _observe. rewrite <- Heqotl. inv Heqtr. step; constructor; auto. - intros. subst. unfold observe, _observe in Heqotl; cbn in Heqotl. destruct (observe ma) eqn:Ema; try discriminate. + exists r. split. * rewrite itree_eta, Ema. reflexivity. - * stepdown. unfold observe at 1; unfold _observe. rewrite <- Heqotl. taul; auto. - + inv Heqotl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl _ eq_refl). - edestruct IHeqitF as (a & ? & ?); exists a. - split; auto. + * stepdown. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + + inv Heqotl. + edestruct IHeqitF; eauto. exists x. + destruct H0. + split; eauto. stepdown; rewrite Ema. taul. - now step in H0. + now backstep. Qed. Lemma eutt_inv_bind_ret: @@ -1716,9 +1823,10 @@ Lemma eqit_inv_bind_vis : Proof. intros. stepdown in H. remember (observe (ITree.bind ma kab)) as tl. - remember (VisF e kxc) as tr. - revert ma kab Heqtl kxc Heqtr. - dependent induction H; try solve [intros; subst; discriminate]. + remember (Vis e kxc) as vis. + remember (observe vis) as tr. + revert ma kab Heqtl kxc e vis Heqvis Heqtr. + induction H; try solve [intros; subst; discriminate]. - intros. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right. exists r. split. @@ -1727,10 +1835,11 @@ Proof. simpobs. constructor; auto. + left. symmetry in Heqtl. - revert x. revert k2 REL Heqtr. inv_eq_VisF Heqtl. intros. - rewrite Heqtr in x. - cbn in x. - inv_eq_VisF x. + + revert e0 Heqvis. revert k2 REL Heqtr. inv_eq_VisF Heqtl. intros. + inv Heqvis. + cbn in Heqtr. + inv_eq_VisF Heqtr. exists k. split. * step; down. rewrite Ema. constructor. down. reflexivity. * auto. @@ -1740,7 +1849,7 @@ Proof. + right; exists r; split. * rewrite itree_eta, Ema; reflexivity. * stepdown. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. - + inv Heqtl. specialize (IHeqitF _ _ eq_refl eq_refl _ _ eq_refl _ eq_refl). + + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ _ eq_refl eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. step; down; rewrite Ema; constructor; now step in H0. @@ -1777,24 +1886,25 @@ Lemma eqit_inv_bind_tau: Proof. intros. stepdown in H. remember (observe (ITree.bind ma kab)) as tl. - remember (TauF tc) as tr. - revert ma kab Heqtl Heqtr. - dependent induction H; intros; try solve [subst; discriminate]. + remember (Tau tc) as tau. + remember (observe tau) as tr. + revert ma kab Heqtl tc tau Heqtau Heqtr. + induction H; intros; try solve [subst; discriminate]. - inv Heqtr. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. * step; down; rewrite Ema; constructor; auto. - * step; down; rewrite <- x; unfold observe, _observe; rewrite <- Heqtl; now constructor. + * step; down; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. * step; down; rewrite Ema; constructor; apply reflexivity. - * inv Heqtl. inv x. assumption. + * inv Heqtl. inv H0. assumption. - subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. * step; down; rewrite Ema; constructor; auto. * step; down; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. - + inv Heqtl. specialize (IHeqitF _ eq_refl eq_refl _ _ eq_refl eq_refl). + + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ eq_refl eq_refl). destruct IHeqitF as [(t0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists t0. split; auto. step; down; rewrite Ema; constructor 4; now step in H0. @@ -1803,7 +1913,7 @@ Proof. - inv Heqtr. left; exists ma; split. + step; constructor; auto. - + inv x; step; assumption. + + inv H1; step; assumption. Qed. Lemma eutt_inv_bind_tau: From 297497ab3b9e6a91e3db300814f9abec5923a801 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 24 Feb 2026 10:25:17 -0500 Subject: [PATCH 060/189] notes --- theories/Eq/Eqit.v | 98 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 22 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 9b3133a0..cee35376 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -435,28 +435,38 @@ Proof. red. induction 3; constructor; subst; eauto. Qed. +Lemma eqitF_inv_VisF_l {b1 b2 sim} + t2 X2 (e1 : E X2) (k1 : X2 -> _) + : eqitF RR b1 b2 sim (VisF e1 k1) t2 -> + (exists k2, t2 = VisF e1 k2 /\ forall v, sim (k1 v) (k2 v)) \/ + (b2 /\ exists t2', t2 = TauF t2' /\ eqitF RR b1 b2 sim (VisF e1 k1)(observe t2')). +Proof. + refine (fun H => + match H in eqitF _ _ _ _ t1 _ return + match t1 return Prop with + | VisF e1 k1 => _ + | _ => True + end + with + | EqVis _ _ _ _ _ _ _ _ => _ + | _ => _ + end); try exact I. + - left; eauto. + - destruct i; eauto. +Qed. + + + (* weak: eqitF is transitive under strong bisimulation assumptions *) #[global] Instance Transitive_eqitF_ff (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. - repeat red. intros. revert H2. revert z. - induction H1; try easy; intros. - - remember (RetF r2) eqn:eq. induction H2; inv eq; try easy; - econstructor; etransitivity; eauto. - - remember (TauF m2) eqn:eq. induction H2; inv eq; try easy; - econstructor; etransitivity; eauto. - - remember (VisF e k2) eqn:eq. induction H2; try solve [inv eq; try easy]. - inv eq. - (* eapply eqitF_VisF_gen. *) - unfold eqeq. - (* eapply *) - dependent destruction H4. - dependent destruction H3. - econstructor; etransitivity; eauto. -Qed. -(* Yannick: Can this be done without dependent destruction? *) -Print Assumptions Transitive_eqitF_ff. - + intros ?? t u v EQ1 EQ2. + inv EQ1; try now (inv EQ2; try easy; eauto with itree). + apply eqitF_inv_VisF_l in EQ2 as [(? & -> & ?) | [abs _]]; [| easy]. + constructor; eauto. +Qed. + (* eutt is still transitive, but for different reasons *) (* strongest: holds for all instances of eqit *) @@ -653,8 +663,14 @@ Qed. *) (* (* RTODO: *) -To prove: elem true false trans *) + +(* +u = τ.0 +v = τ.1 +w = 1 +*) + #[export] Instance Transitive_elem_tf (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR true false)}: Transitive (elem c). Proof. apply Transitive_chain. repeat intro. down. @@ -662,7 +678,7 @@ To prove: elem true false trans genobs y oty. genobs z otz. hinduction H0 before y; intros; try easy. - - remember (RetF r2). + - remember (RetF r2). hinduction H1 before c; intros; try easy; inv Heqi. constructor; etransitivity; eauto. - remember (TauF m2). @@ -678,6 +694,30 @@ To prove: elem true false trans (* stuck *) admit. Admitted. + (* assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). + { destruct ot3; eauto; right; red; intros; inv H. } + destruct DEC as [EQ | EQ]. + (* τ - τ case: strip both. *) + + destruct EQ as [m3 ?]; subst; simpobs. + econstructor. + eapply CIH; eauto. + apply eqit_inv_Tau. + now step. + (* τ - ̸τ : we do further case analysis. *) + + inv INR; try (exfalso; eapply EQ; eauto; fail). + taul. + step in REL. down. + hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). + (* now we can handle each subcase with another layer of induction *) + * remember (RetF r1) as ot. + hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. + * remember (VisF e k1) as ot. + hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. + econstructor. intros. + apply (CIH _ _ _ (REL v) (REL0 v)). + * eapply IHREL0; eauto. backstep. + destruct b1; inv CHECK0. + apply eqit_inv_Tau_r. now step. *) #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. @@ -687,7 +727,6 @@ Proof. now repeat apply Reflexive_eqit_. Qed. - #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). Proof. intros. @@ -702,6 +741,21 @@ Proof. induction H1; eauto with itree. Qed. +(* +important: proving rewriting of elem under euttge +forall (c : Chain (eqit_mon true true)) +Proper (euttge ==> euttge ==> [flip] impl) (elem c) +need both - iff or 2 proofs? +if have: +(* subrelation (eq_itree euttge) *) + +-------- +goal: establish lemmas of toplevel relations that happen to be instantiations +of general properties of the corresponding chain. + + + +*) #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). @@ -1501,7 +1555,7 @@ Choose any postcondition SS. eutt over SS, pointwise_chain over SS. we want to pull this out. (* -[shelved]. trans true false elem c (depends on eqitF true false) +[shelved]. trans true false elem c [done]1. remove dep. induction 2. consider coinduction library fix- mwe at least [with yannick] 3. think about removing bind_clo and replacing with proper instance From 39ead3ad1ab953b5a15f7e2f91e474dd7cc21f09 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 24 Feb 2026 16:04:21 -0500 Subject: [PATCH 061/189] Various updates w notes --- .Makefile.d | 8 +-- theories/Basics/Utils.v | 1 + theories/Core/KTree.v | 4 +- theories/Core/KTreeFacts.v | 2 + theories/Eq/Eqit.v | 117 ++++++++++++++++++++++++++++++++----- 5 files changed, 113 insertions(+), 19 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 3e17e708..56b6e2e9 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -42,8 +42,8 @@ theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Bas theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker @@ -56,8 +56,8 @@ theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theor theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index ec2e0dbb..1721b189 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -171,6 +171,7 @@ Ltac backstep := apply (gfp_pfp b) | [|- _ _ _ _ (elem ?c) _ _ ]=> apply (gfp_bchain c) +| [|- elem ?c _ _] => apply (gfp_chain c) end. Ltac backstep_in H := diff --git a/theories/Core/KTree.v b/theories/Core/KTree.v index d51a1b97..3626fe57 100644 --- a/theories/Core/KTree.v +++ b/theories/Core/KTree.v @@ -15,7 +15,9 @@ From ITree Require Import Basics.Function Core.ITreeDefinition Eq.Eqit - Eq.UpToTaus. + (* Eq.UpToTaus *) (* see what breaks here, if anything *) + . + (* end hide *) Implicit Types E : Type -> Type. diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 913cd074..8fb81a01 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -49,7 +49,9 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) | inr b => ITree.map (bimap inr (id_ _)) (g b) end) (inl x). Proof. + (* this proof should follow from the facts about elem *) einit. ecofix CIH. intros. + (* these rewrites must go through *) rewrite !unfold_iter. rewrite bind_map, bind_bind. ebind; econstructor; try reflexivity. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index cee35376..7d3225bb 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -693,7 +693,7 @@ w = 1 - taul. eapply IHeqitF; eauto. (* stuck *) admit. - Admitted. + Abort. (* assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). { destruct ot3; eauto; right; red; intros; inv H. } destruct DEC as [EQ | EQ]. @@ -741,22 +741,9 @@ Proof. induction H1; eauto with itree. Qed. -(* -important: proving rewriting of elem under euttge -forall (c : Chain (eqit_mon true true)) -Proper (euttge ==> euttge ==> [flip] impl) (elem c) -need both - iff or 2 proofs? -if have: -(* subrelation (eq_itree euttge) *) - --------- -goal: establish lemmas of toplevel relations that happen to be instantiations -of general properties of the corresponding chain. -*) - #[global] Instance eq_sub_euttge: subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. @@ -800,6 +787,9 @@ End eqit_gen. #[global] Hint Resolve Reflexive_eqit : reflexivity. + + + Section eqit_eq. (** *** Properties of relation transformers. *) @@ -2043,3 +2033,102 @@ Proof. inv EQ2. reflexivity. Qed. +Section eqit_elem. +(*** *** Properties of the chain. *) + + +(* +important: proving rewriting of elem under euttge +forall (c : Chain (eqit_mon eq true true)) +Proper (euttge ==> euttge ==> [flip] impl) (elem c) +need both - iff or 2 proofs? +if have: +(* subrelation (eq_itree euttge) *) + +-------- +goal: establish lemmas of toplevel relations that happen to be instantiations +of general properties of the corresponding chain. + +forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true true )) +Proper (euttge (@eq R1) ==> euttge (@eq R2) ==> [flip] impl) (elem c) +by subrelation : +Proper (eq_itree ==> eq_itree ==> [flip] impl) (elem c) + +forall (c : Chain (eqit_mon RR false false)), Equivalence RR -> Equivalence c +(this implies eq_itree is an equivalence relation) + +we want euttge to be a preorder - is this true? +forall (c : Chain (eqit_mon RR true false)), Preorder RR -> Preorder c + +can we generalize to be heterogeneous for an RR that relates R1, R2? + +next q: +weak bisim: + +forall (c : Chain (eqit_mon RR true true)), Refl RR -> Refl c +forall (c : Chain (eqit_mon RR true true)), Sym RR -> Sym c +(* do not attempt: *) +forall (c : Chain (eqit_mon RR true true)), Trans RR -> Trans c + +but at the gfp, it is true. +(* this is true: *) +(* Equiv RR -> Equiv eutt RR *) + +next big piece is how it all interacts w bind. + +we should be able to prove this: + +forall X1 X2 Y1 Y2, +eutt (RR : X1 -> X2 -> Prop) u v -> (forall x1 x2, RR x1 x2 -> eutt SS (k x1) (g x2) +-> eutt SS (bind u k) (bind v g) + +but this should be a particular case of a more gen lemma: under context reasoning +(here bind is the context) + +back to bind: + +forall (c : Chain (eqit_mon SS b1 b2)) RR, +Proper (eutt RR ==> (fun k g => (forall x y, RR x y -> c (k x) (g y))) ==> c) +bind + +could be interesting: +chain_mono: + +RR1 <= RR2, b1 <= b1', ... +(Chain eqit_mon RR b1 b2) <= +(Chain eqit_mon RR' b1' b2') +) + +*) + +(* Conjecture chain_mono RR1 RR2 b1 b2 b1' b2' : +... +(Chain eqit_mon RR b1 b2) <= +(Chain eqit_mon RR' b1' b2') . *) + +Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. + +Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. + +Goal forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )), +Proper (@euttge E _ _ (@eq R1) ==> @euttge E _ _ (@eq R2) ==> impl) (elem c). + repeat intro. + apply (b_chain c). + down. + euttsimpl. stepdown in H; stepdown in H0. + genobs x otx. + genobs y oty. + genobs x0 otx0. + genobs y0 oty0. + induction H; try easy; simpobs. + - induction H0. + constructor. + Fail congruence. + shelve. + assert (elem c (Ret r1) (Tau m1)) by admit. + (* should be bogus because elem c (Ret r1) (Tau m2). + But can't invert this. + *) +Search elem. + +End eqit_elem. \ No newline at end of file From 282bcbae63757864d98da61a32e97fca874c804a Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 24 Feb 2026 18:04:53 -0500 Subject: [PATCH 062/189] Done with easy equiv proof, next is eutt props --- .Makefile.d | 384 ++++++++++++++++++++-------------------- theories/Basics/Utils.v | 4 +- theories/Eq/Eqit.v | 36 +++- 3 files changed, 221 insertions(+), 203 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 56b6e2e9..a105fbed 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 1721b189..de5a13ac 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -171,7 +171,7 @@ Ltac backstep := apply (gfp_pfp b) | [|- _ _ _ _ (elem ?c) _ _ ]=> apply (gfp_bchain c) -| [|- elem ?c _ _] => apply (gfp_chain c) +| [|- elem ?c _ _] => apply (b_chain c) end. Ltac backstep_in H := @@ -179,7 +179,7 @@ Ltac backstep_in H := | _ _ _ _ (gfp ?b) _ _=> apply (gfp_fp b) in H | _ _ _ _ (elem ?c) _ _ => - apply (gfp_bchain c) in H + apply (b_chain c) in H end. Tactic Notation "backstep" "in" ident(H) := backstep_in H. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 7d3225bb..8501ff97 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2039,24 +2039,21 @@ Section eqit_elem. (* important: proving rewriting of elem under euttge -forall (c : Chain (eqit_mon eq true true)) -Proper (euttge ==> euttge ==> [flip] impl) (elem c) -need both - iff or 2 proofs? -if have: -(* subrelation (eq_itree euttge) *) - -------- goal: establish lemmas of toplevel relations that happen to be instantiations of general properties of the corresponding chain. +1. forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true true )) Proper (euttge (@eq R1) ==> euttge (@eq R2) ==> [flip] impl) (elem c) by subrelation : Proper (eq_itree ==> eq_itree ==> [flip] impl) (elem c) +DONE forall (c : Chain (eqit_mon RR false false)), Equivalence RR -> Equivalence c (this implies eq_itree is an equivalence relation) +3. we want euttge to be a preorder - is this true? forall (c : Chain (eqit_mon RR true false)), Preorder RR -> Preorder c @@ -2065,7 +2062,9 @@ can we generalize to be heterogeneous for an RR that relates R1, R2? next q: weak bisim: +4. forall (c : Chain (eqit_mon RR true true)), Refl RR -> Refl c +5. forall (c : Chain (eqit_mon RR true true)), Sym RR -> Sym c (* do not attempt: *) forall (c : Chain (eqit_mon RR true true)), Trans RR -> Trans c @@ -2086,7 +2085,7 @@ but this should be a particular case of a more gen lemma: under context reasonin (here bind is the context) back to bind: - +6. forall (c : Chain (eqit_mon SS b1 b2)) RR, Proper (eutt RR ==> (fun k g => (forall x y, RR x y -> c (k x) (g y))) ==> c) bind @@ -2110,7 +2109,9 @@ Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. -Goal forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )), +(* we really need euttge trans *) + +(* Goal forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )), Proper (@euttge E _ _ (@eq R1) ==> @euttge E _ _ (@eq R2) ==> impl) (elem c). repeat intro. apply (b_chain c). @@ -2129,6 +2130,23 @@ Proper (@euttge E _ _ (@eq R1) ==> @euttge E _ _ (@eq R2) ==> impl) (elem c). (* should be bogus because elem c (Ret r1) (Tau m2). But can't invert this. *) -Search elem. +Search elem. *) + +Lemma Equivalence_elem_ff R RS (c : Chain (@eqit_mon E R R RS false false)) : +Equivalence RS -> Equivalence (elem c). +Proof. + constructor; typeclasses eauto. +Qed. + +Goal forall R RS (c : Chain (@eqit_mon E R R RS true false)), PreOrder RS -> PreOrder (elem c). +Proof. + repeat intro. + constructor. + typeclasses eauto. + apply Transitive_chain. + repeat intro. + assert (H1':=H1); backstep in H1'. + assert (H2':=H2); backstep in H2'. +Abort. End eqit_elem. \ No newline at end of file From 6b3218dc28664d34627d4dd36e956db48a621d5c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 25 Feb 2026 01:01:40 -0500 Subject: [PATCH 063/189] A proof of eutt's respectfulness of bind. --- .Makefile.d | 384 ++++++++++++++++++++++----------------------- theories/Eq/Eqit.v | 347 +++++++++++++++++----------------------- 2 files changed, 332 insertions(+), 399 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index a105fbed..56b6e2e9 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 8501ff97..39f05f5e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -520,204 +520,15 @@ Proof. (* Now om2 is a variable — we can use plain induction *) induction H2; taul; simpobs; eauto with itree. Qed. - -(* weak: eqitF is transitive under euttge assumptions *) -#[global] Instance Transitive_eqitF_tf (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqitF RR true false sim). -Proof. - repeat red. intros. revert H2. revert z. - induction H1; try easy; intros. - (* Ret *) - - - (* dependent induction H2. - econstructor; etransitivity; eauto. - taur. eapply IHeqitF; eauto. - *) - remember (RetF r2) eqn:eq. remember z eqn:eqz. - hinduction H2 before eqz; intros; inv eq; try easy. - econstructor; etransitivity; eauto. - - - assert (DEC: (exists m3, z = TauF m3) \/ (forall m3, z <> TauF m3)). - { destruct z; eauto; right; red; intros; inv H1. } - destruct DEC as [EQ | EQ]. - (* τ - τ case: strip both. *) - + destruct EQ as [m3 ?]; subst. -Abort. - (* we have the same problem here. *) - (* remember (TauF m2). - remember (TauF m3). - move H2 before REL. - revert_until H2. - induction H2; intros; inv Heqi; try inv Heqi0; try easy. - econstructor; etransitivity; eauto. - inv H2. - (* we need to remember, or we get stuck here with a bogus m0 *) - - apply eqit_inv_Tau. - now step. - (* τ - ̸τ : we do further case analysis. *) - + inv INR; try (exfalso; eapply EQ; eauto; fail). - taul. - step in REL. down. - hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). - (* now we can handle each subcase with another layer of induction *) - * remember (RetF r1) as ot. - hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. - * remember (VisF e k1) as ot. - hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. - apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. backstep. - destruct b1; inv CHECK0. - apply eqit_inv_Tau_r. now step. - - - dependent induction H2. - econstructor; etransitivity; eauto. - - -revert m1 REL. -remember (TauF m2) as lhs eqn:eq. -remember z as rhs eqn:eqz. - -move H2 before m2. -revert_until H2. -induction H2; intros; try solve [inv eq]; try easy. -inv eq; econstructor; etransitivity; eauto. - - - remember z. revert r1 r2 z REL eq Heqi0. - induction H2; intros; inv eq; try easy. - econstructor; etransitivity; eauto. - (* taul *) - *) -(* - (* remember (TauF m2). - hinduction H2 before Heqi; try solve [inv Heqi; try easy; try (econstructor; etransitivity; eauto)]. - - revert Heqi. - revert REL. - revert m1. - - induction H2; intros; try solve [inv Heqi; try easy; try (econstructor; etransitivity; eauto)]. *) - - (* from other transitivity proof: *) - assert (DEC: (exists m3, z = TauF m3) \/ (forall m3, z <> TauF m3)). - { destruct z; eauto; right; red; intros; inv H1. } - destruct DEC as [EQ | EQ]. - (* τ - τ case: strip both. *) - + destruct EQ as [m3 ?]; subst. - (* we have the same problem here. *) - remember (TauF m3). - induction H2; inv Heqi; try easy. - econstructor; etransitivity; eauto. - (* we need to remember, or we get stuck here with a bogus m0 *) - remember (TauF m2). - induction H2; inv Heqi; try easy. - econstructor; etransitivity; eauto. - - apply eqit_inv_Tau. - now step. - (* τ - ̸τ : we do further case analysis. *) - + inv INR; try (exfalso; eapply EQ; eauto; fail). - taul. - step in REL. down. - hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). - (* now we can handle each subcase with another layer of induction *) - * remember (RetF r1) as ot. - hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. - * remember (VisF e k1) as ot. - hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. - apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. backstep. - destruct b1; inv CHECK0. - apply eqit_inv_Tau_r. now step. - - assert (DEC: (exists m3, m2 = Tau m3) \/ (forall m3, m2 <> Tau m3)). - *) - - (* { destruct (m2); eauto; right; red; intros; inv H. } - destruct DEC as [EQ | EQ]. - remember (observe (Tau m2)) eqn:eq. - remember (TauF m1). - (* revert Heqi0. *) - (* revert i0. *) - (* revert eq. *) - induction H2. inv eq; try easy. - inv eq; try easy. - econstructor; etransitivity; eauto. - inv eq; try easy. - rewrite Heqi0. injection eq as eq'. rewrite <- eq' in *. - -Qed. *) - -(* RTODO: REMOVE DEPENDENT INDUCTION *) - (* Tour extra: *) + (* RTODO: ask yannick exactly what's going on, then document *) (* "eutt is NOT valid up to eutt" and this is supposedly equivalent to transitivity, but we did prove things are transitive... what's going on? *) -(* -(* RTODO: *) -*) -(* -u = τ.0 -v = τ.1 -w = 1 -*) - -#[export] Instance Transitive_elem_tf (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR true false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. down. - genobs x otx. - genobs y oty. - genobs z otz. - hinduction H0 before y; intros; try easy. - - remember (RetF r2). - hinduction H1 before c; intros; try easy; inv Heqi. - constructor; etransitivity; eauto. - - remember (TauF m2). - hinduction H1 before c; intros; try easy; inv Heqi. - constructor; etransitivity; eauto. - eapply IHeqitF; eauto. - (* stuck *) - admit. -- remember (VisF e k2). - hinduction H1 before c; intros; try easy. inv_Vis. - constructor; etransitivity; eauto. -- taul. eapply IHeqitF; eauto. - (* stuck *) - admit. - Abort. - (* assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). - { destruct ot3; eauto; right; red; intros; inv H. } - destruct DEC as [EQ | EQ]. - (* τ - τ case: strip both. *) - + destruct EQ as [m3 ?]; subst; simpobs. - econstructor. - eapply CIH; eauto. - apply eqit_inv_Tau. - now step. - (* τ - ̸τ : we do further case analysis. *) - + inv INR; try (exfalso; eapply EQ; eauto; fail). - taul. - step in REL. down. - hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). - (* now we can handle each subcase with another layer of induction *) - * remember (RetF r1) as ot. - hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. - * remember (VisF e k1) as ot. - hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. - apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. backstep. - destruct b1; inv CHECK0. - apply eqit_inv_Tau_r. now step. *) #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. @@ -857,11 +668,11 @@ Proof. stepdown. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. -#[global] Instance observing_sub_elem (c : Chain (eqit_mon eq false false)) (l r : itree E R) : +#[global] Instance observing_sub_elem b1 b2 (c : Chain (eqit_mon eq b1 b2)) (l r : itree E R) : subrelation (@observing E R R eq) (elem c). Proof. repeat intro. - inv H. stepdown. rewrite observing_observe. + inv H. stepdown. rewrite observing_observe. backstep. reflexivity. Qed. @@ -956,27 +767,38 @@ Proof. - assumption. Qed. -(* this proof is much shorter and nicer than before. *) -Lemma eqit_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : - @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. +Lemma eqitF_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : + @eqitF E R1 R2 RR b1 b2 (gfp (eqit_mon RR b1 b2)) (TauF t1) (TauF t2) + -> eqitF RR b1 b2 (gfp (eqit_mon RR b1 b2)) (observe t1) (observe t2). Proof with eauto with itree. intros. - step in H; down. - genobs (Tau t1) ot1. - genobs (Tau t2) ot2. + remember (TauF t1) as ot1. + remember (TauF t2) as ot2. revert t1 t2 Heqot1 Heqot2. induction H; intros t1' t2' Heqot1 Heqot2; try easy; subst. -- now inv Heqot1; inv Heqot2. -- inv H; inv Heqot1; step; down; simpobs. +- inv Heqot1; inv Heqot2. now backstep. +- inv H; inv Heqot1; simpobs. + taul. now step in REL. - + taul. backstep. now apply IHeqitF. + + taul. now apply IHeqitF. + assumption. - - inv H; inv Heqot2; step; down; simpobs. + - inv H; inv Heqot2; simpobs. + taur. now step in REL. + assumption. - + taur. backstep. now apply IHeqitF. + + taur. now apply IHeqitF. +Qed. + +Lemma eqit_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : + @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. +Proof with eauto with itree. + intros. + step in H; step; down. + now apply eqitF_inv_Tau. Qed. +(* other properties *) + + + Section eqit_inv. Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. @@ -2062,9 +1884,9 @@ can we generalize to be heterogeneous for an RR that relates R1, R2? next q: weak bisim: -4. +4. DONE forall (c : Chain (eqit_mon RR true true)), Refl RR -> Refl c -5. +5. DONE forall (c : Chain (eqit_mon RR true true)), Sym RR -> Sym c (* do not attempt: *) forall (c : Chain (eqit_mon RR true true)), Trans RR -> Trans c @@ -2085,7 +1907,7 @@ but this should be a particular case of a more gen lemma: under context reasonin (here bind is the context) back to bind: -6. +[DONE, SORT OF]6. forall (c : Chain (eqit_mon SS b1 b2)) RR, Proper (eutt RR ==> (fun k g => (forall x y, RR x y -> c (k x) (g y))) ==> c) bind @@ -2138,7 +1960,8 @@ Proof. constructor; typeclasses eauto. Qed. -Goal forall R RS (c : Chain (@eqit_mon E R R RS true false)), PreOrder RS -> PreOrder (elem c). +Lemma Preorder_elem R RS (c : Chain (@eqit_mon E R R RS true false)) : + PreOrder RS -> PreOrder (elem c). Proof. repeat intro. constructor. @@ -2147,6 +1970,116 @@ Proof. repeat intro. assert (H1':=H1); backstep in H1'. assert (H2':=H2); backstep in H2'. + (* this is just transitivity of euttge. ugh. *) Abort. +Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : + Reflexive RS -> Reflexive (elem c). +Proof. typeclasses eauto. Qed. + +Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : + Symmetric RS -> Symmetric (elem c). +Proof. typeclasses eauto. Qed. + +(* modified: eqit_mon SS b1 b2 -> true true *) +Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g + (c : Chain (eqit_mon SS true true)) : + eutt RX u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> + elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). +Proof. + intros. do 2 backstep. + revert u v H. + coinduction c' CIH. intros. + down. rewrite 2observe_bind. + stepdown in H. induction H; simpobs. + (* this seems impossible. we only know (elem c (k x2) (g x2)), + from which nothing obvious can be derived. *) + - admit. + (* rest of proof goes through fine: *) + - constructor. now apply CIH. + - constructor. intro. apply CIH. apply REL. + (* note: we cannot prove these cases for a generic b1 b2 in the chain *) + - taul. rewrite observe_bind. eapply IHeqitF; eauto. + - taur. rewrite observe_bind. eapply IHeqitF; eauto. +Abort. + +(* we can prove this other version, with the elem c under the forall +changed to an eutt: *) + +Lemma Proper_eutt_elem_bind X1 X2 Y1 Y2 RX SS u v k g + (c : Chain (eqit_mon SS true true)) : + eutt RX u v -> (forall x1 x2, RX x1 x2 -> eutt SS (k x1) (g x2)) -> + elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). +Proof. + intros. do 2 backstep. + revert u v H. + coinduction c' CIH. intros. + down. rewrite 2observe_bind. + stepdown in H. induction H; simpobs. + - backstep. now apply H0. + - constructor. now apply CIH. + - constructor. intros. apply CIH, REL. + - taul. rewrite observe_bind. now apply IHeqitF. + - taur. rewrite observe_bind. now apply IHeqitF. +Qed. + +(* We can't state this nicely as a Proper relation, since proper instances +need to have subcomponents that share types. eutt RX violates this, as +u and v are different. *) + +(* This being proven, proving things about elem c is actually quite weak: it is +the 'most random' or 'least informative' relation in our story. Proving things +about the underlying functor or its gfp are both informative (and help prove +things about elem). But which can be derived from elem c for a specific c is +very little in our theory so far. *) + + +#[export] Instance Transitive_elem_tf R RT (HE : Transitive RT) {c: Chain (@eqit_mon E R R RT true false)}: Transitive (elem c). + Proof. + apply Transitive_chain. repeat intro. down. + backstep. + revert x y z H0 H1. + (* we'll need the coinductive reasoning later: elements of the chain + are transitive w.r.t. eqit. *) + coinduction c' CIH. intros. + down. genobs z oz. + (* we begin with induction on t1 ~ t2. + in each case, we perform induction on t2 ~ t3. *) + hinduction H0 before CIH; intros; subst; clear x y. + (* Ret, straightforward *) + - remember (RetF r2) as ot. + hinduction H1 before CIH; intros; inv Heqot; eauto with itree. + - genobs z oz. + (* need something more: t3 is either a τ node, or it isn't. *) + assert (DEC: (exists m3, oz = TauF m3) \/ (forall m3, oz <> TauF m3)). + { destruct oz; eauto; right; red; intros; easy. } + destruct DEC as [EQ | EQ]. + + destruct EQ as [m3 ?]; subst; simpobs. + (* τ - τ case: strip both. *) + econstructor. + eapply CIH; eauto. + (* we're stuck here: elem R0 m1 m2 tells us nothing. *) + admit. + (* we're stuck here too: b (elem) is too weak for our inversion lemma. *) + admit. + (* τ - ̸τ : we do further case analysis. *) + + inv H1; try (exfalso; eapply EQ; eauto; fail). + taul. + hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). + (* stuck here now. *) + admit. + admit. + admit. + - remember (VisF e k2) as ot. + hinduction H1 before CIH; intros; try discriminate; [ inv_Vis ]. + constructor. intro. + eapply CIH. + (* stuck. *) + admit. admit. + - eauto with itree. + - remember (TauF t2) as ot. + genobs z ot3. + hinduction H1 before CIH; intros; try inversion Heqot; try easy; subst. + Abort. + End eqit_elem. \ No newline at end of file From b969d9b6bb28a3573b13f82608124b3b50e623f2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 25 Feb 2026 18:14:55 -0500 Subject: [PATCH 064/189] Pushing failing proofs for sharing --- theories/Eq/Eqit.v | 86 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 8 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 39f05f5e..f60bcc1c 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1866,7 +1866,7 @@ goal: establish lemmas of toplevel relations that happen to be instantiations of general properties of the corresponding chain. 1. -forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true true )) +forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )) Proper (euttge (@eq R1) ==> euttge (@eq R2) ==> [flip] impl) (elem c) by subrelation : Proper (eq_itree ==> eq_itree ==> [flip] impl) (elem c) @@ -1922,7 +1922,10 @@ RR1 <= RR2, b1 <= b1', ... *) + (* Conjecture chain_mono RR1 RR2 b1 b2 b1' b2' : +(* we know from JOACHIM PARROW AND TJARK WEBER 2016 that the +companion is monotone. *) ... (Chain eqit_mon RR b1 b2) <= (Chain eqit_mon RR' b1' b2') . *) @@ -1970,7 +1973,7 @@ Proof. repeat intro. assert (H1':=H1); backstep in H1'. assert (H2':=H2); backstep in H2'. - (* this is just transitivity of euttge. ugh. *) + (* this is just transitivity of (b RS true false (elem c)) again. ugh. *) Abort. Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : @@ -2025,7 +2028,7 @@ Qed. (* We can't state this nicely as a Proper relation, since proper instances need to have subcomponents that share types. eutt RX violates this, as -u and v are different. *) +u and v are of different types. *) (* This being proven, proving things about elem c is actually quite weak: it is the 'most random' or 'least informative' relation in our story. Proving things @@ -2036,7 +2039,10 @@ very little in our theory so far. *) #[export] Instance Transitive_elem_tf R RT (HE : Transitive RT) {c: Chain (@eqit_mon E R R RT true false)}: Transitive (elem c). Proof. - apply Transitive_chain. repeat intro. down. + apply Transitive_chain. repeat intro. + (* assert (H0':=H0); backstep in H0'. + assert (H1':=H1); backstep in H1'. *) + down. backstep. revert x y z H0 H1. (* we'll need the coinductive reasoning later: elements of the chain @@ -2045,7 +2051,7 @@ very little in our theory so far. *) down. genobs z oz. (* we begin with induction on t1 ~ t2. in each case, we perform induction on t2 ~ t3. *) - hinduction H0 before CIH; intros; subst; clear x y. + hinduction H0 before CIH; intros; subst. (* Ret, straightforward *) - remember (RetF r2) as ot. hinduction H1 before CIH; intros; inv Heqot; eauto with itree. @@ -2057,14 +2063,13 @@ very little in our theory so far. *) + destruct EQ as [m3 ?]; subst; simpobs. (* τ - τ case: strip both. *) econstructor. - eapply CIH; eauto. + eapply CIH; eauto. (* we're stuck here: elem R0 m1 m2 tells us nothing. *) admit. (* we're stuck here too: b (elem) is too weak for our inversion lemma. *) - admit. + admit. (* τ - ̸τ : we do further case analysis. *) + inv H1; try (exfalso; eapply EQ; eauto; fail). - taul. hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). (* stuck here now. *) admit. @@ -2082,4 +2087,69 @@ very little in our theory so far. *) hinduction H1 before CIH; intros; try inversion Heqot; try easy; subst. Abort. + +Lemma PreOrder_euttge R : PreOrder (@euttge E R R eq). +Proof. + constructor; typeclasses eauto. +Qed. + + +(* For Yannick: LOOK HERE *) +#[global] Instance euttge_cong_euttge_chain + (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )) : +Proper (euttge (@eq R1) ==> @euttge E _ _ (@eq R2) ==> flip impl) (elem c). +Proof. + (* we would like to accumulate, unstep, and rewrite with monotonicity + and transitivitiy as in euttge_cong_euttge *) + + repeat intro. + accumulate H2. + unfold euttge, eqit in H, H0. + assert (H':=H); step in H'. + assert (H0':=H0); step in H0'. + down. + genobs x ox. + genobs y oy. + revert_until H'. + induction H'; intros; subst; simpobs. + - remember (RetF r2). + genobs x0 ox0. + genobs y0 oy0. + induction H0'; subst; simpobs. + constructor. + (* here we are stuck: we know nothing about RR. *) + shelve. + (* we are also stuck here: we have a contradiction of sorts, + but it is under elem: elem c (RetF r2) (TauF m1). + This might not even be a contradiction! + *) +Abort. + +(* This weaker version also fails in the same way: *) +#[global] Instance euttge_cong_euttge_chain R RS + (TRANS : Transitive RS) + (c : Chain (eqit_mon RS true false )) : +Proper (euttge RS ==> @euttge E R R RS ==> flip impl) (elem c). +Proof. + repeat intro. + accumulate H2. + unfold euttge, eqit in H, H0. + copy H. step in H. + copy H0. step in H0. + down. + genobs x ox. + genobs y oy. + revert_until H. + induction H; intros; subst; simpobs. + - remember (RetF r2). + genobs x0 ox0. + genobs y0 oy0. + induction H0; subst; simpobs. + constructor; etransitivity; eauto. + (* stuck here: we only know things about elem again *) + shelve. + (* and same deeper problem with bogus cases: elem does not + discriminate Ret to be related to Tau. *) +Abort. + End eqit_elem. \ No newline at end of file From 664e8943b1bb871f9a1eaf92f01a360735ecf4ce Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Feb 2026 14:29:01 -0500 Subject: [PATCH 065/189] Midway through the monster. --- theories/Eq/Eqit.v | 96 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 75 insertions(+), 21 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f60bcc1c..1f5a5f22 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2096,34 +2096,88 @@ Qed. (* For Yannick: LOOK HERE *) #[global] Instance euttge_cong_euttge_chain - (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )) : -Proper (euttge (@eq R1) ==> @euttge E _ _ (@eq R2) ==> flip impl) (elem c). + (c : Chain (@eqit_mon E _ _ (RR : R1 -> R2 -> Prop) true true )) : +Proper (euttge (@eq R1) ==> euttge (@eq R2) ==> flip impl) (elem c). Proof. (* we would like to accumulate, unstep, and rewrite with monotonicity and transitivitiy as in euttge_cong_euttge *) - repeat intro. - accumulate H2. - unfold euttge, eqit in H, H0. - assert (H':=H); step in H'. +(* + x ?elem c x0 + | + <= <= + | + y elem c y0 + + +*) +(* let t be the companion of b *) + (* tower induction: + inf_closed P -> + (forall x, P (t x) -> P (b (t x))) -> forall x, P (t x). + *) + idtac. + unfold Proper, respectful, flip, impl. + apply tower. + Search inf_closed. + (* this needs to be a tactic. *) + do 2 (apply inf_closed_all; intro). + apply inf_closed_impl. repeat intro; assumption. + do 2 (apply inf_closed_all; intro). + apply inf_closed_impl. repeat intro; assumption. + apply inf_closed_impl. repeat intro. now apply H. + repeat intro. now apply H. +(* this is the biggest proof of all time *) + intros. assert (H0':=H0); step in H0'. + assert (H1':=H1); step in H1'. down. - genobs x ox. - genobs y oy. - revert_until H'. - induction H'; intros; subst; simpobs. + genobs x0 oa. + genobs y oc. + revert_until H0'. + induction H0'; intros; subst; simpobs. - remember (RetF r2). - genobs x0 ox0. - genobs y0 oy0. - induction H0'; subst; simpobs. - constructor. - (* here we are stuck: we know nothing about RR. *) - shelve. - (* we are also stuck here: we have a contradiction of sorts, - but it is under elem: elem c (RetF r2) (TauF m1). - This might not even be a contradiction! - *) -Abort. + induction H1'; subst; simpobs; try easy; eauto with itree. + + stepdown in REL. + inv H2. + taur. + remember (RetF r2). + genobs m2 om2. + revert m1 REL. + hinduction REL0 before i; intros; try easy; simpobs. + * remember (RetF r0). + induction REL0; inv Heqi0; subst; simpobs. + -- now constructor. + -- taur. eapply IHREL0; eauto. + * remember (TauF t2). + (* this should be a tactic *) + induction REL; inv Heqi0; try easy; simpobs. + -- taur. eapply IHREL0; eauto. now backstep. + -- taur. eapply IHREL; eauto. + - + (* need destruction *) + + stepdown in REL. + remember (TauF m2). + genobs y0 oy0. + revert x1 H1' H1. + move H2 before i. + revert_until H2. + (* bad induction, need stronger *) + dependent induction H2; intros; subst; simpobs; try easy. + + dependent induction H1'; subst; simpobs; try easy. + * constructor. + backstep in REL0. + eapply H; eauto. + * taur. eapply IHH1'; eauto. stepdown. simpobs. assumption. + + shelve. + + + - + + + + + (* This weaker version also fails in the same way: *) #[global] Instance euttge_cong_euttge_chain R RS From ebdc2671d941a8eee1e04559ddd48d63869d1ede Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Feb 2026 18:15:13 -0500 Subject: [PATCH 066/189] Progress. The horrors persist --- theories/Eq/Eqit.v | 156 +++++++++++++++++++++++++++++++++------------ 1 file changed, 114 insertions(+), 42 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 1f5a5f22..b9e17f2a 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2093,40 +2093,56 @@ Proof. constructor; typeclasses eauto. Qed. +Notation chain_eq_itree E REL := (Chain (@eqit_mon E _ _ REL false false)). +Notation chain_euttge E REL := (Chain (@eqit_mon E _ _ REL true false)). +Notation chain_eutt E REL := (Chain (@eqit_mon E _ _ REL true true)). +Ltac inf_closed_forall_auto := +repeat match goal with + +| [|- inf_closed (fun _ => forall _, _)] => + apply inf_closed_all; intro + end. + +Ltac inf_closed_impl_auto := +repeat match goal with +| [|- inf_closed (fun _ => _ -> _)] => + apply inf_closed_impl; repeat intro; + match goal with [H : _ <= _ |- _] => apply H; auto end + end. + + + +Ltac inf_closed_auto := +repeat match goal with +| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) +end. + +Ltac tower_induction := apply tower; [inf_closed_auto|]. +Tactic Notation "tower" "induction" := tower_induction. + + (* For Yannick: LOOK HERE *) #[global] Instance euttge_cong_euttge_chain - (c : Chain (@eqit_mon E _ _ (RR : R1 -> R2 -> Prop) true true )) : -Proper (euttge (@eq R1) ==> euttge (@eq R2) ==> flip impl) (elem c). + (c : chain_eutt E RR) : +Proper (euttge eq ==> euttge eq ==> flip impl) (elem c). Proof. (* we would like to accumulate, unstep, and rewrite with monotonicity and transitivitiy as in euttge_cong_euttge *) -(* - x ?elem c x0 - | - <= <= - | - y elem c y0 + unfold Proper, respectful, flip, impl. + tower induction. + + (* + y ← btt elem → y0 + ↑ ↑ + btf gfp btf gfp + x0 ← ?btt elem → x1 +*) +(* need trans btf eq gfp and btt eq elem *) + -*) -(* let t be the companion of b *) - (* tower induction: - inf_closed P -> - (forall x, P (t x) -> P (b (t x))) -> forall x, P (t x). - *) - idtac. - unfold Proper, respectful, flip, impl. - apply tower. - Search inf_closed. - (* this needs to be a tactic. *) - do 2 (apply inf_closed_all; intro). - apply inf_closed_impl. repeat intro; assumption. - do 2 (apply inf_closed_all; intro). - apply inf_closed_impl. repeat intro; assumption. - apply inf_closed_impl. repeat intro. now apply H. - repeat intro. now apply H. (* this is the biggest proof of all time *) intros. assert (H0':=H0); step in H0'. @@ -2138,27 +2154,83 @@ Proof. induction H0'; intros; subst; simpobs. - remember (RetF r2). induction H1'; subst; simpobs; try easy; eauto with itree. - + stepdown in REL. - inv H2. - taur. - remember (RetF r2). - genobs m2 om2. - revert m1 REL. - hinduction REL0 before i; intros; try easy; simpobs. - * remember (RetF r0). + stepdown in REL. + inv H2. + taur. + remember (RetF r2). + genobs m2 om2. + revert m1 REL. + move REL0 before i. revert_until REL0. + hinduction REL0 before i; intros; try easy; simpobs. + + remember (RetF r0). induction REL0; inv Heqi0; subst; simpobs. - -- now constructor. - -- taur. eapply IHREL0; eauto. - * remember (TauF t2). + * now constructor. + * taur. eapply IHREL0; eauto. + + remember (TauF t2). (* this should be a tactic *) induction REL; inv Heqi0; try easy; simpobs. - -- taur. eapply IHREL0; eauto. now backstep. - -- taur. eapply IHREL; eauto. - - + * taur. eapply IHREL0; eauto. now backstep. + * taur. eapply IHREL; eauto. + - + (* this part sux *) + (* need destruction *) + stepdown in REL. + shelve. + + - + remember (VisF e k2). + remember (VisF e k1). + induction H1'; subst; simpobs; try easy; eauto with itree. + stepdown in REL0. + inv H2. + taur. + remember (VisF e k2). + remember (VisF e k1). + genobs m2 om2. + revert m1 REL0. + move REL1 before i. revert_until REL1. + induction REL1; intros; try easy; simpobs. + + remember (VisF e0 k0). + induction REL1; try solve [inv Heqi1]; subst; simpobs. + * do 2 inv_Vis. constructor. + intro v. + specialize (REL0 v). + specialize (REL1 v). + eapply H; eauto. + * taur. eapply IHREL1; eauto. + + remember (TauF t2). + (* this should be a tactic *) + induction REL0; inv Heqi1; try easy; simpobs. + * taur. eapply IHREL1; eauto. now backstep. + * taur. eapply IHREL0; eauto. +Abort. +(* + τ m2 ← btt elem → y0 + + m2 ↑ + ↑ btf gfp + | | + m1 btf gfp + + τ m1 ← ?btt elem → x1 +*) + +(* + m2 ← btt elem → y0 + ↑ ↑ | + btf gfp btf gfp + m1 ← ?btt elem → x1 +*) + + (* remember (TauF m2). + + + + induction H1'; subst; simpobs; try easy; eauto with itree. + inv H2. + taul. - stepdown in REL. - remember (TauF m2). genobs y0 oy0. revert x1 H1' H1. move H2 before i. @@ -2172,7 +2244,7 @@ Proof. * taur. eapply IHH1'; eauto. stepdown. simpobs. assumption. + shelve. + - - + - *) From 28a44fd377f2f3bdb071ecc73a727cd2af5fbe24 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 27 Feb 2026 15:44:15 -0500 Subject: [PATCH 067/189] Done up to tau case. trying automation. --- .Makefile.d | 384 ++++++++++++++++++++-------------------- theories/Basics/Utils.v | 7 + theories/Eq/Eqit.v | 71 ++++++-- 3 files changed, 259 insertions(+), 203 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 56b6e2e9..a105fbed 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index de5a13ac..65289999 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -100,6 +100,13 @@ Ltac eappn f := | [ id: f _ _ _ _ _ _ _ _ |- _ ] => eapply id end. +Ltac break H := + repeat match type of H with + | exists X, _ => destruct H + | _ /\ _ => destruct H + | _ \/ _ => destruct H + | _ /\ _ => split + end. Ltac crunch := repeat match goal with diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index b9e17f2a..996a9d32 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2148,9 +2148,10 @@ Proof. assert (H0':=H0); step in H0'. assert (H1':=H1); step in H1'. down. - genobs x0 oa. genobs y oc. + move H0' before oc. revert_until H0'. + induction H0'; intros; subst; simpobs. - remember (RetF r2). induction H1'; subst; simpobs; try easy; eauto with itree. @@ -2171,18 +2172,56 @@ Proof. induction REL; inv Heqi0; try easy; simpobs. * taur. eapply IHREL0; eauto. now backstep. * taur. eapply IHREL; eauto. - - + - (* this part sux *) (* need destruction *) stepdown in REL. + +genobs y0 oy0. + (* need something more: t3 is either a τ node, or it isn't. *) + assert (DEC: (exists m3, oy0 = TauF m3) \/ (forall m3, oy0 <> TauF m3)). + { destruct oy0; eauto; right; red; intros; easy. } + destruct DEC as [EQ | EQ]. + (* τ - τ case: strip both. *) + + destruct EQ as [m3 ?]; subst; simpobs. + inv H1'; try easy. + * constructor. + backstep in REL. + eapply H; eauto. + backstep. down. + (* probably true but hard to prove *) + shelve. + * + (* same here *) + shelve. + (* τ - ̸τ : we do further case analysis. *) + + inv H1'; try (exfalso; eapply EQ; eauto; fail). + taul. + remember (TauF m2). + hinduction H2 before H; intros; try easy. + (* now we can handle each subcase with another layer of induction *) + * remember (RetF r2) as ot. + hinduction REL before H; intros; inv Heqi; eauto with itree. + * remember (VisF e k1) as ot. + hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. + econstructor. intros. + apply (CIH _ _ _ (REL v) (REL0 v)). + * eapply IHREL0; eauto. backstep. + destruct b1; inv CHECK0. + apply eqit_inv_Tau_r. now step. + + + + + shelve. - remember (VisF e k2). remember (VisF e k1). induction H1'; subst; simpobs; try easy; eauto with itree. - stepdown in REL0. + + stepdown in REL0. inv H2. taur. remember (VisF e k2). @@ -2191,19 +2230,29 @@ Proof. revert m1 REL0. move REL1 before i. revert_until REL1. induction REL1; intros; try easy; simpobs. - + remember (VisF e0 k0). - induction REL1; try solve [inv Heqi1]; subst; simpobs. - * do 2 inv_Vis. constructor. + * remember (VisF e0 k0). + remember (VisF e0 k3). + induction REL1; try solve [inv Heqi2]; subst; simpobs. + -- do 2 inv_Vis. constructor. intro v. - specialize (REL0 v). + specialize (REL v). specialize (REL1 v). eapply H; eauto. - * taur. eapply IHREL1; eauto. - + remember (TauF t2). + -- taur. eapply IHREL1; eauto. + * remember (TauF t2). (* this should be a tactic *) induction REL0; inv Heqi1; try easy; simpobs. - * taur. eapply IHREL1; eauto. now backstep. - * taur. eapply IHREL0; eauto. + -- taur. eapply IHREL1; eauto. now backstep. + -- taur. eapply IHREL0; eauto. + + apply eqitF_inv_VisF_weak in H2. + break H2; subst. + eapply eqitF_VisF_gen; eauto. + intro v. + specialize (REL v). + specialize (REL0 v). + eapply H; eauto. + - taul. eapply IHH0'; eauto. + - easy. Abort. (* τ m2 ← btt elem → y0 From ff8e9b2c0dbaf08de5a72d6e66c83ff446567526 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 27 Feb 2026 17:13:56 -0500 Subject: [PATCH 068/189] Progress. 5 shelved goals. --- theories/Eq/Eqit.v | 132 ++++++++++++++++++--------------------------- 1 file changed, 53 insertions(+), 79 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 996a9d32..f65f807b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2120,15 +2120,10 @@ end. Ltac tower_induction := apply tower; [inf_closed_auto|]. Tactic Notation "tower" "induction" := tower_induction. - - -(* For Yannick: LOOK HERE *) #[global] Instance euttge_cong_euttge_chain (c : chain_eutt E RR) : Proper (euttge eq ==> euttge eq ==> flip impl) (elem c). Proof. - (* we would like to accumulate, unstep, and rewrite with monotonicity - and transitivitiy as in euttge_cong_euttge *) unfold Proper, respectful, flip, impl. tower induction. @@ -2178,7 +2173,26 @@ Proof. (* need destruction *) stepdown in REL. -genobs y0 oy0. + (* + τ m2 ← btt elem → y0 + m2 ↑ + ↑ | +btf gfp btf gfp + | | + m1 ← ?btt elem → x1 +*) + +(* by mono: *) + + (* + τ m2 ← btt elem → τ m3 + ↑ ↑ +btt gfp btt gfp + ↓ ↓ + τ m1 ← ?btt elem → x1 +*) + + genobs y0 oy0. (* need something more: t3 is either a τ node, or it isn't. *) assert (DEC: (exists m3, oy0 = TauF m3) \/ (forall m3, oy0 <> TauF m3)). { destruct oy0; eauto; right; red; intros; easy. } @@ -2188,38 +2202,43 @@ genobs y0 oy0. inv H1'; try easy. * constructor. backstep in REL. - eapply H; eauto. - backstep. down. + eapply H; eauto. + (* really tricky: we want our + inductive conclusions be b (elem) but + we want our goal to stay as elem *) + remember (TauF m2). + remember (TauF m3). + (* consider messing with elem before induction *) + hinduction H2 before H; intros; inv Heqi0; try inv Heqi; try easy. (* probably true but hard to prove *) - shelve. - * - (* same here *) - shelve. + -- shelve. + -- shelve. + (* same here, but probably looks similar to above *) + * shelve. (* τ - ̸τ : we do further case analysis. *) + inv H1'; try (exfalso; eapply EQ; eauto; fail). - taul. + * taul. remember (TauF m2). - hinduction H2 before H; intros; try easy. - (* now we can handle each subcase with another layer of induction *) - * remember (RetF r2) as ot. - hinduction REL before H; intros; inv Heqi; eauto with itree. - * remember (VisF e k1) as ot. - hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. - apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. backstep. - destruct b1; inv CHECK0. - apply eqit_inv_Tau_r. now step. - - - - - - shelve. - - - - remember (VisF e k2). - remember (VisF e k1). + (* pattern: do something with H2, or with REL? + going to be same in RET and VIS; we will use congruence. + *) + shelve. + (* hinduction REL before H; intros; inv Heqi; eauto with itree. *) + * taul. remember (TauF m2) as ot. + (* need strong general IH but not too strong *) + revert H2. intros H2. + (* this is just a fancy inversion *) + inv H2; simpobs; try easy. + inv H5. + (* again, we're here *) + shelve. + * constructor. + inv H2; try congruence. + backstep in REL0. backstep in REL. + (* want H here, need to know more about m2 and y0 *) + eapply H; eauto. now backstep. + - remember (VisF e k2). + remember (VisF e k1). induction H1'; subst; simpobs; try easy; eauto with itree. + stepdown in REL0. inv H2. @@ -2254,51 +2273,6 @@ genobs y0 oy0. - taul. eapply IHH0'; eauto. - easy. Abort. -(* - τ m2 ← btt elem → y0 - - m2 ↑ - ↑ btf gfp - | | - m1 btf gfp - - τ m1 ← ?btt elem → x1 -*) - -(* - m2 ← btt elem → y0 - ↑ ↑ | - btf gfp btf gfp - m1 ← ?btt elem → x1 -*) - - (* remember (TauF m2). - - - - induction H1'; subst; simpobs; try easy; eauto with itree. - inv H2. - taul. - - genobs y0 oy0. - revert x1 H1' H1. - move H2 before i. - revert_until H2. - (* bad induction, need stronger *) - dependent induction H2; intros; subst; simpobs; try easy. - + dependent induction H1'; subst; simpobs; try easy. - * constructor. - backstep in REL0. - eapply H; eauto. - * taur. eapply IHH1'; eauto. stepdown. simpobs. assumption. - + shelve. - + - - *) - - - - - (* This weaker version also fails in the same way: *) #[global] Instance euttge_cong_euttge_chain R RS From d7e643c7c27bb69ae7d02f65569211ac2225337b Mon Sep 17 00:00:00 2001 From: Yannick Date: Wed, 4 Mar 2026 21:36:50 +0100 Subject: [PATCH 069/189] some wip on design and proofs --- theories/Basics/Utils.v | 67 +-- theories/Eq/Eqit.v | 1007 ++++++++++++++++++++++++++------------- 2 files changed, 708 insertions(+), 366 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 65289999..8bb4014f 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -141,55 +141,34 @@ Qed. (* [coinduction]-like tactics *) -(* A smarter version of this should be part of the [coinduction] library *) +(* Until https://github.com/damien-pous/coinduction/pull/22 gets merge *) +Lemma pfp_gfp {X} {L : CompleteLattice X} (b : mon X): b (gfp b) <= (gfp b). +Proof. apply b_chain. Qed. +Ltac step := +match goal with +| |- context [gfp ?b] => apply (pfp_gfp b) +| |- context [elem ?R] => apply (b_chain R) +end. + +Ltac step_in h := +match type of h with +| context [gfp ?b] => apply (gfp_pfp b) in h +end. -Ltac step_ := +Tactic Notation "step" "in" ident(h) := step_in h. + +Ltac unstep := match goal with -| |- gfp ?b ?x ?y ?z => apply ((gfp_fp b x y z)) -| |- elem ?R ?x ?y ?z => apply (b_chain R x y z) -| |- gfp ?b ?x ?y => apply ((gfp_fp b x y)) -| |- elem ?R ?x ?y => apply (b_chain R x y) -| |- gfp ?b ?x => apply ((gfp_fp b x)) -| |- elem ?R ?x => apply (b_chain R x) +| |- context [gfp ?b] => apply (gfp_pfp b) end. -Ltac step := first [step_ | red; step_ | Coinduction.tactics.step | -match goal with -| [|- gfp ?b _ _] => apply (gfp_fp b) -end ]. - -(* Technically, stepping in hypotheses in the direction shown below -should be backstepping, and vice versa. -This is something that we should choose on in a meeting. *) - -Ltac step_in H := - match type of H with - | gfp ?b ?x ?y ?z => apply (gfp_fp b x y z) in H - | gfp ?b ?x ?y => apply (gfp_fp b x y) in H - | gfp ?b ?x => apply (gfp_fp b x) in H - | _ => red in H; step_in H - end. -Tactic Notation "step" "in" ident(H) := step_in H. - -Ltac backstep := - match goal with -| [|- _ _ _ _ (gfp ?b) _ _]=> - apply (gfp_pfp b) -| [|- _ _ _ _ (elem ?c) _ _ ]=> - apply (gfp_bchain c) -| [|- elem ?c _ _] => apply (b_chain c) -end. - -Ltac backstep_in H := - match type of H with -| _ _ _ _ (gfp ?b) _ _=> - apply (gfp_fp b) in H -| _ _ _ _ (elem ?c) _ _ => - apply (b_chain c) in H -end. - -Tactic Notation "backstep" "in" ident(H) := backstep_in H. +Ltac unstep_in h := +match type of h with +| context [gfp ?b] => apply (pfp_gfp b) in h +end. + +Tactic Notation "unstep" "in" ident(h) := unstep_in h. (* Oft-used induction tactic for general IHs. *) Tactic Notation "hinduction" hyp(IND) "before" hyp(H) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f65f807b..5f3038ed 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -126,7 +126,6 @@ Section eqit. itree E R1 -> itree E R2 -> Prop := fun t1 t2 => eqitF b1 b2 sim (observe t1) (observe t2). Hint Unfold eqit_ : itree. - (** [eqitF] and [eqit_] are both monotone. *) Lemma eqitF_mono b1 b2 : Proper (leq ==> leq) (eqit_ b1 b2). @@ -158,6 +157,40 @@ Section eqit. Definition euttge := eqit true false. End eqit. +Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. + + +(** A notation of [eq_itree eq]. You can write + [≅] using [[\cong]] + [≈] using [[\approx]] + [≳] using [[\gtrsim]] +in tex-mode + *) + +Infix "≅⟨ R ⟩" := (eq_itree R) (at level 70) : type_scope. +Infix "≅" := (eq_itree eq) (at level 70) : type_scope. +Infix "{≅⟨ R ⟩}" := (eqitF R false false (elem _)) (at level 70) : type_scope. +Infix "{≅}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : type_scope. +Notation eq_itreeF R := (eqitF R false false). +Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon R false false) _) (at level 70) : type_scope. +Infix "[≅]" := (@elem _ _ (eqit_mon eq false false) _) (at level 70) : type_scope. +Infix "≈" := (eutt eq) (at level 70) : type_scope. +Infix "{≈}" := (eqitF eq true true (elem _)) (at level 70) : type_scope. +Infix "[≈]" := (@elem _ _ (eqit_mon eq true true) _) (at level 70) : type_scope. +Infix "≳" := (euttge eq) (at level 70) : type_scope. +Infix "{≳}" := (eqitF eq true false _) (at level 70) : type_scope. +Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. + +(* begin hide *) +#[global] Hint Constructors eqitF : itree. +#[global] Hint Unfold eqit_ : itree. +#[global] Hint Unfold eqit_mon : itree. +#[global] Hint Unfold eqit : itree. +#[global] Hint Unfold eq_itree : itree. +#[global] Hint Unfold eutt : itree. +#[global] Hint Unfold euttge : itree. +#[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). +(* end hide *) (** Tactics *) (* RTODO: Ask if these should be coqdoc documented or hidden. *) @@ -165,37 +198,60 @@ End eqit. (* We first enhance the coinduction tactic to recognize goals that do not have a syntactic match with [gfp _] *) -Tactic Notation "coinduction" simple_intropattern(R) simple_intropattern(H) := - (* Case 1: coinduction succeeds by itself *) - tryif (coinduction R H) - then idtac - else +(* #[local] Ltac iunfold_in h := *) +(* cbn [eqit_mon body] in h; unfold euttge, eq_itree, eutt, eqit in h. *) + +#[local] Ltac iunfold_all := + unfold euttge, eq_itree, eutt, eqit in *. + + #[local] Ltac iunfold_in h := + unfold euttge, eq_itree, eutt, eqit in h. + +#[local] Ltac iunfold := + unfold euttge, eq_itree, eutt, eqit. + +(* #[local] Ltac iunfold := *) +(* cbn [eqit_mon body]; unfold euttge, eq_itree, eutt, eqit. *) + +Tactic Notation "unstep" := iunfold; unstep. +Tactic Notation "step" := step; cbn. + +#[local] Ltac iunfold_coind := first - [ (* Case 2: -1 unfolding succeeded *) - (unfold euttge at -1 - || unfold eq_itree at -1 - || unfold eutt at -1); - unfold eqit at -1; - coinduction R H - - | (* Case 3: generic unfolding succeeded *) - (unfold euttge - || unfold eq_itree - || unfold eutt); - unfold eqit; - coinduction R H - - | (* Case 4 *) - unfold eqit at -1; - coinduction R H - - | (* Case 5 *) - unfold eqit; - coinduction R H - - | (* Case 6 *) - coinduction R H - ]. + [intros ?; iunfold_coind; revert_last | + unfold euttge,eutt,eq_itree,eqit]. + +Ltac refold := + match goal with + |- context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => + fold (@eqit E R1 R2 RR b1 b2); + fold (@eq_itree E _ _ RR); + fold (@euttge E _ _ RR); + fold (@eutt E _ _ RR) + end. + +Ltac refold_in h := + match type of h with + | context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => + fold (@eqit E R1 R2 RR b1 b2) in h; + fold (@eq_itree E _ _ RR) in h; + fold (@euttge E _ _ RR) in h; + fold (@eutt E _ _ RR) in h + end. + +Tactic Notation "refold" "in" ident(h) := refold_in h. +Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. +Tactic Notation "iunfold" "in" "*" := iunfold_all. +Tactic Notation "step" := iunfold; step; refold. +Tactic Notation "step" "in" ident(h) := + iunfold in h; + step in h; + cbn[eqit_mon body] in h; + unfold eqit_ in h; + refold in h. +Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := + iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. + (* The [down] tactic: unfolding the ITree definition *) (* Since [itrees] are defined with nesting, un-nesting is often needed @@ -205,42 +261,39 @@ Tactic Notation "coinduction" simple_intropattern(R) simple_intropattern(H) := in both hypotheses and the goal is so common that the library uses an internal tactic for doing so all at once. *) -Ltac down_in_ H := - repeat progress (cbn [eqit_mon body] in H; unfold eqit_ in H). +(* #[local] Ltac down_in_ H := *) +(* repeat progress (cbn [eqit_mon body] in H; unfold eqit_ in H). *) -Tactic Notation "down" "in" hyp(H) := down_in_ H. +(* #[local] Tactic Notation "down" "in" hyp(H) := down_in_ H. *) -Ltac down_goal := - repeat progress ( - cbn [eqit_mon body]; - unfold eqit_ - ). +(* #[local] Ltac down_goal := *) +(* cbn [eqit_mon body]; *) +(* unfold eqit_. *) -Tactic Notation "down" "in" "goal" := down_goal. +(* #[local] Tactic Notation "down" "in" "goal" := down_goal. *) -(* morally: down := 'down in *' *) -Ltac down := - repeat progress ( - cbn [eqit_mon body] in *; - unfold eqit_ in * - ). +(* (* morally: down := 'down in *' *) *) +(* #[local] Ltac down := *) +(* cbn [eqit_mon body] in *; *) +(* unfold eqit_ in * *) +(* . *) -Ltac stepdown := step; down. +(* #[local] Ltac stepdown_in_ H := step in H; down in H. *) -Ltac stepdown_in_ H := step in H; down in H. +(* #[global] Tactic Notation "step" := step; down_goal. *) -Tactic Notation "stepdown" "in" hyp(H) := stepdown_in_ H. +(* #[global]Tactic Notation "step" "in" hyp(H) := stepdown_in_ H; refold H. *) (* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by simplifiying, rewriting, and trying to apply assumptions. *) Ltac solve_eqitF := -(* reduce to 'observe' form by stripping constructors and unfolding *) -down; try econstructor; -(* replace 'observe' with actual constructor values *) -simpobs; -(* finish off *) -try econstructor; intros; eauto with itree. + (* reduce to 'observe' form by stripping constructors and unfolding *) + iunfold; try econstructor; + (* replace 'observe' with actual constructor values *) + simpobs; + (* finish off *) + try econstructor; intros; eauto with itree. (* [taul] and [taur] peel off a tau from either side when the CHECK flag for that side is set. Their primary purpose is to make proofs more readable. *) @@ -248,26 +301,36 @@ try econstructor; intros; eauto with itree. Ltac taul := apply EqTauL; only 1: auto. Ltac taur := apply EqTauR; only 1: auto. -(* begin hide *) -#[global] Hint Constructors eqitF : itree. -#[global] Hint Unfold eqit_ : itree. -#[global] Hint Unfold eqit : itree. -#[global] Hint Unfold eq_itree : itree. -#[global] Hint Unfold eutt : itree. -#[global] Hint Unfold euttge : itree. - - - Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} - t1 X2 (e2 : E X2) (k2 : X2 -> _) - : eqitF RR b1 b2 sim t1 (VisF e2 k2) -> - (exists k1, t1 = VisF e2 k1 /\ forall v, sim (k1 v) (k2 v)) \/ + t1 X2 (e2 : E X2) (k2 : X2 -> _) : + eqitF RR b1 b2 sim t1 (VisF e2 k2) -> + (exists k1, t1 = VisF e2 k1 /\ forall v, sim (k1 v) (k2 v)) \/ (b1 /\ exists t1', t1 = TauF t1' /\ eqitF RR b1 b2 sim (observe t1') (VisF e2 k2)). Proof. refine (fun H => - match H in eqitF _ _ _ _ _ t2 return - match t2 return Prop with - | VisF e2 k2 => _ + match H in eqitF _ _ _ _ _ t2 return + match t2 return Prop with + | VisF e2 k2 => _ + | _ => True + end + with + | EqVis _ _ _ _ _ _ _ _ => _ + | _ => _ + end); try exact I. + - left; eauto. + - destruct i0; eauto. +Qed. + +Lemma eqitF_inv_VisF_l {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} + t2 X2 (e1 : E X2) (k1 : X2 -> _) + : eqitF RR b1 b2 sim (VisF e1 k1) t2 -> + (exists k2, t2 = VisF e1 k2 /\ forall v, sim (k1 v) (k2 v)) \/ + (b2 /\ exists t2', t2 = TauF t2' /\ eqitF RR b1 b2 sim (VisF e1 k1)(observe t2')). +Proof. + refine (fun H => + match H in eqitF _ _ _ _ t1 _ return + match t1 return Prop with + | VisF e1 k1 => _ | _ => True end with @@ -275,7 +338,7 @@ Proof. | _ => _ end); try exact I. - left; eauto. - - destruct i0; eauto. + - destruct i; eauto. Qed. Lemma eqitF_inv_VisF_weak {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} @@ -312,6 +375,11 @@ Proof. destruct p; intros <-; cbn; constructor; auto. Qed. +Lemma eqitF_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 r: + flip (eqitF (flip RR) b2 b1 (flip r)) <= @eqitF E R1 R2 RR b1 b2 r. +Proof. + repeat intro; induction H; eauto with itree. +Qed. #[global] Instance eqitF_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq_rel ==> eq_rel) @@ -340,39 +408,62 @@ Proof with auto with itree. repeat red. repeat intro. subst. split. - - revert_until y1. coinduction R CIH. intros. - step in H0. down. + - revert_until y1. + icoinduction R CIH. + intros. + step in H0. hinduction H0 before CIH... econstructor. now apply H. - - revert_until y1. coinduction R CIH. intros. - step in H0. down. + - revert_until y1. icoinduction R CIH. intros. + step in H0. hinduction H0 before CIH... econstructor; now apply H. Qed. +#[global] Instance eq_itree_Proper_R {E : Type -> Type} {R1 R2:Type} + : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eq_itree E R1 R2). +Proof. + now repeat intro; apply eqit_Proper_R. +Qed. + +#[global] Instance euttge_Proper_R {E : Type -> Type} {R1 R2:Type} + : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@euttge E R1 R2). +Proof. + now repeat intro; apply eqit_Proper_R. +Qed. + #[global] Instance eutt_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). Proof. - unfold eutt. repeat red. - intros. split; intros; subst. - - now rewrite <- H. - - now rewrite H. + now repeat intro; apply eqit_Proper_R. Qed. -(* proofs go this way. *) + +(* Note and TODO: if we push [forall R1 R2 RR] below the [gfp], + this and monotony will hold on chains. + Meaning, assuming it can typecheck after the generalization, + the following are conjectures: + [forall (c : Chain (@eqit_mon E)), + `c (flip RR) b2 b1 <= `c RR b1 b2] + Though this would require to push b1 and b2 below the gfp + as well, which sounds highly silly. + Alternatively, it would be restricted to b1 = b2. + + *) Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: forall (u : itree E R1) (v : itree E R2), eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. Proof. (* do coinduction. *) - coinduction c CIH. intros u v euv. + icoinduction c CIH. intros u v euv. (* reduce the hypothesis and conclusion to the right form. *) - step in euv. down. + step in euv. (* do induction and conclude trivially with constructors. *) induction euv; eauto with itree. Qed. +#[global] Hint Unfold flip : itree. -(** [eqit] itself is monotone. *) +(** [eqit] itself is monotone *) Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) (LEb1: b1 -> b1') @@ -382,132 +473,550 @@ Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) Proof. repeat intro. revert a a0 H. - coinduction c CIH; intros. - step in H. down. induction H; eauto with itree. + icoinduction c CIH; intros. + step in H. induction H; eauto with itree. econstructor. now apply LERR. Qed. +(** ** Properties of relations *) -Lemma eqitF_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 r: - flip (eqitF (flip RR) b2 b1 (flip r)) <= @eqitF E R1 R2 RR b1 b2 r. -Proof. - repeat intro; induction H; eauto with itree. -Qed. +(** Instances stating that we have equivalence relations. *) -#[global] Hint Unfold flip : itree. +Section eqit_gen. +(** *** Properties of relation transformers. *) -(* end hide *) + Context {E : Type -> Type} {R: Type} (RR : R -> R -> Prop). -(** A notation of [eq_itree eq]. You can write + #[global] Instance Reflexive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) + : Reflexive RR -> Reflexive sim -> Reflexive (eqitF RR b1 b2 sim). + Proof. + red. destruct x; constructor; eauto with itree. + Qed. -[≅] using [[\cong]] -[≈] using [[\approx]] -[≳] using [[\gtrsim]] -in tex-mode *) + #[global] Instance Symmetric_eqitF b (sim : itree E R -> itree E R -> Prop) + : Symmetric RR -> Symmetric sim -> Symmetric (eqitF RR b b sim). + Proof. + red. induction 3; constructor; subst; eauto. + Qed. -Infix "≅" := (eq_itree eq) (at level 70) : type_scope. + (* weak: eqitF is transitive under strong bisimulation assumptions *) + #[global] Instance Transitive_eqitF_ff (sim : itree E R -> itree E R -> Prop) + : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). + Proof. + intros ?? t u v EQ1 EQ2. + inv EQ1; try now (inv EQ2; try easy; eauto with itree). + apply eqitF_inv_VisF_l in EQ2 as [(? & -> & ?) | [abs _]]; [| easy]. + constructor; eauto. + Qed. -Infix "≈" := (eutt eq) (at level 70) : type_scope. + (* eutt is still transitive, but for different reasons *) + + (* strongest: holds for all instances of eqit *) + #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) + : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). + Proof. repeat red. intros. reflexivity. Qed. + + (* weak: holds only with eqit or eutt *) + #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) + : Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). + Proof. repeat red; symmetry; auto. Qed. + + (* weak: holds only for strong bisimilarity *) + #[global] Instance Transitive_eqit_ (sim : itree E R -> itree E R -> Prop) + : Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). + Proof. repeat red; etransitivity; eauto. Qed. + + (** *** [eqit] is an equivalence relation *) + + (** Universal properties of the chains of the respective relations: + - all three are reflexive + - the chains for [eq_itree] and [eutt] are symmetric + - the chain for [eq_itree] is additionnally transitive +Properties of the chains specialize to the relations: the gfp is an element of the chain. + *) + #[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) + {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). + Proof. + now apply Reflexive_chain; repeat intro; apply Reflexive_eqit_. + Qed. -Infix "≳" := (euttge eq) (at level 70) : type_scope. + #[global] Instance Symmetric_elem (b: bool) (HS : Symmetric RR) + {c: Chain (@eqit_mon E R R RR b b)}: Symmetric (elem c). + Proof. + now apply Symmetric_chain; repeat intro; apply Symmetric_eqit_. + Qed. + #[global] Instance Transitive_elem (HT : Transitive RR) + {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). + Proof. + apply Transitive_chain. repeat intro. + cbn in *. + eapply Transitive_eqit_; eauto. + Qed. -(** ** Properties of relations *) + #[global] Instance Equivalence_elem (HT : Equivalence RR) + {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). + Proof. + constructor; typeclasses eauto. + Qed. -(** Instances stating that we have equivalence relations. *) + (* Although trivial particular case, we define instances for the [gfp]s as they are definitions *) + #[global] Instance Equivalence_eq_itree (HT : Equivalence RR) : Equivalence (eq_itree (E := E) RR). + Proof. + now apply Equivalence_elem. + Qed. -Section eqit_gen. +End eqit_gen. -(** *** Properties of relation transformers. *) -Context {E : Type -> Type} {R: Type} (RR : R -> R -> Prop). +Section eqit_inv. + + Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. + Context {vclo : (itree E R1 -> itree E R2 -> Prop) -> (itree E R1 -> itree E R2 -> Prop)}. + Context {sim : itree E R1 -> itree E R2 -> Prop}. + + Notation eqit__ t1_ t2_ := + match _observe t1_, _observe t2_ with + | RetF r1, RetF r2 => RR r1 r2 + | VisF e1 k1, VisF e2 k2 => + exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2 + | RetF _, VisF _ _ | VisF _ _, RetF _ => False + | TauF t1, TauF t2 => eqit RR b1 b2 t1 t2 + | TauF t1, _ => + if b1 then eqit RR b1 b2 t1 t2_ + else False + | _, TauF t2 => + if b2 then eqit RR b1 b2 t1_ t2 + else False + end. + + Lemma eqit_inv_Tau_l t1 t2 : + @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. + Proof. + intros * H. + step in H. + step. + remember (observe (Tau t1)). + (* RTODO: report this bug (rm down) *) + induction H; inv Heqi. + - step in REL. now taur. + - assumption. + - taur. now apply IHeqitF. + Qed. + + Lemma eqit_inv_Tau_r t1 t2 : + @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. + Proof. + intros * H. + step in H. + step. + remember (observe (Tau t2)). + (* RTODO: report this bug (rm down) *) + induction H; inv Heqi. + - step in REL. now taul. + - taul. now apply IHeqitF. + - assumption. + Qed. + + Lemma eqitF_inv_Tau t1 t2 : + @eqitF E R1 R2 RR b1 b2 (gfp (eqit_mon RR b1 b2)) (TauF t1) (TauF t2) + -> eqitF RR b1 b2 (gfp (eqit_mon RR b1 b2)) (observe t1) (observe t2). + Proof. + intros. + remember (TauF t1) as ot1. + remember (TauF t2) as ot2. + revert t1 t2 Heqot1 Heqot2. + induction H; intros t1' t2' Heqot1 Heqot2; try easy; subst. + - inv Heqot1; inv Heqot2. now unstep. + - inv H; inv Heqot1; simpobs. + + taul. now step in REL. + + taul. now apply IHeqitF. + + assumption. + - inv H; inv Heqot2; simpobs. + + taur. now step in REL. + + assumption. + + taur. now apply IHeqitF. + Qed. + + Lemma eqit_inv_Tau t1 t2 : + @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. + Proof. + intros. + step in H; step. + now apply eqitF_inv_Tau. + Qed. + + Lemma eqit_inv t1 t2 : eqit RR b1 b2 t1 t2 -> eqit__ t1 t2. + Proof. + intros H; step in H. + genobs t1 ot1; genobs t2 ot2; revert t1 t2 Heqot1 Heqot2; unfold observe, _observe. + destruct H; intros * E1 E2; rewrite <- E1, <- E2; cbn; auto. + - exists eq_refl; cbn; eauto. + - rewrite CHECK in *. destruct ot2. + 1,3: step; unfold observe, _observe; rewrite <- E2; assumption. + 1: apply eqit_inv_Tau_r; step; unfold observe, _observe; assumption. + - rewrite CHECK in *. destruct ot1. + 1,3: step; unfold observe, _observe; rewrite <- E1; assumption. + 1: apply eqit_inv_Tau_l; step; unfold observe, _observe; assumption. + Qed. + +End eqit_inv. + +Notation euttC RR := (Chain (eqit_mon RR true true)). + +Ltac icbn := cbn[eqit_mon body eqit_]. + +#[global] Instance eq_itree_eutt_elem {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttC RR): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. +Proof. + unfold Proper, respectful. + apply tower. + - red; cbn; intros ? LE x x' EQx y y' EQy. + split; intros H??; [symmetry in EQx,EQy |]. + 1,2: eapply LE; eauto. + - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + icbn; split; intros EQ. + + genobs x ox; genobs y oy. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox Heqoy EQx EQy. + induction EQ; intros. + * inv EQx; inv EQy; try easy; eauto with itree. + * inv EQx; inv EQy; try easy. + constructor; eapply IH. + 3:eauto. + all:symmetry; eauto. + * apply eqitF_inv_VisF_l in EQx as [(? & -> & EQk) | [abs _]]; [| easy]. + apply eqitF_inv_VisF_l in EQy as [(? & -> & EQk') | [abs _]]; [| easy]. + constructor; intros; eapply IH. + 3:eauto. + symmetry; apply EQk. + symmetry; apply EQk'. + * inv EQx; try easy. + taul. + eapply IHEQ; eauto. + now unstep. + * inv EQy; try easy. + taur. + eapply IHEQ; eauto. + now unstep. + + genobs x' ox'; genobs y' oy'. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + * inv EQx; inv EQy; try easy; eauto with itree. + * inv EQx; inv EQy; try easy. + now constructor; eapply IH; eauto. + * apply eqitF_inv_VisF_r in EQx as [(? & -> & EQk) | [abs _]]; [| easy]. + apply eqitF_inv_VisF_r in EQy as [(? & -> & EQk') | [abs _]]; [| easy]. + constructor; intros; eapply IH; eauto. + * inv EQx; try easy. + taul. + eapply IHEQ; eauto. + now unstep. + * inv EQy; try easy. + taur. + eapply IHEQ; eauto. + now unstep. +Qed. + +Ltac genret r or := remember (RetF r) as or. +Ltac gentau t ot := remember (TauF t) as ot. +Ltac genvis e k ot := remember (VisF e k) as ot. -#[global] Instance Reflexive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive RR -> Reflexive sim -> Reflexive (eqitF RR b1 b2 sim). +Lemma euttge_tau_r_inv [E R1 R2 RR] (t : itree E R1) (u : itree E R2) : + euttge RR t (Tau u) -> exists t', observe t = TauF t'. Proof. - red. destruct x; constructor; eauto with itree. + intros EQ; step in EQ. + desobs t ot; eauto; inv EQ; easy. Qed. -#[global] Instance Symmetric_eqitF b (sim : itree E R -> itree E R -> Prop) -: Symmetric RR -> Symmetric sim -> Symmetric (eqitF RR b b sim). +Lemma euttge_tau_inv {E R1 R2 RR} (t : itree E R1) (u : itree E R2): + euttge RR t u -> + forall t' u', + observe t = TauF t' -> + observe u = TauF u' -> + euttge RR t' u'. Proof. - red. induction 3; constructor; subst; eauto. + intros EQ. + step in EQ; cbn in EQ. + genobs t ot; genobs u ou. + revert t u Heqot Heqou. + induction EQ; intros; try easy. + - inv H; inv H0; try easy. + - inv H; simpobs. + edestruct euttge_tau_r_inv; [step; eauto |]. + step. + simpobs. + taul. + unstep. + eapply IHEQ; eauto. Qed. -Lemma eqitF_inv_VisF_l {b1 b2 sim} - t2 X2 (e1 : E X2) (k1 : X2 -> _) - : eqitF RR b1 b2 sim (VisF e1 k1) t2 -> - (exists k2, t2 = VisF e1 k2 /\ forall v, sim (k1 v) (k2 v)) \/ - (b2 /\ exists t2', t2 = TauF t2' /\ eqitF RR b1 b2 sim (VisF e1 k1)(observe t2')). +Notation euttgeF R := (eqitF R true false). +Notation "⊙ x" := (observe x) (only printing, at level 10). + +(* FOR ROGER + Note the use of the lemma [euttge_tau_inv] in particular. + *) +#[global] Instance euttge_eutt_elem {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttC RR): + Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. +Proof with eauto with itree. + unfold Proper, respectful, flip, impl. + apply tower. + - red; cbn; intros ? LE x x' EQx y y' EQy. + intros H??; eapply LE; eauto. + - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + icbn; intros EQ. + genobs x' ox'; genobs y' oy'. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genret r1 or1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy; genret r2 or2. + revert y Heqoy. + hinduction EQy before oy; try easy. + subst; intros [=<-] ??... + now intros; taur; eapply IHEQy. + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + gentau m1 om1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros [=<-] ? ??. + clear x Heqox. + genobs y oy; gentau m2 om2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros [=<-] ??... + intros. + taur. + now eapply IHEQy. + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genvis e k1 ot1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros. + apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + clear x Heqox. + genobs y oy; genvis e k2 ot2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros; apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst; eauto with itree. + intros. + taur. + now eapply IHEQy. + * intros; subst; taul; eapply IHEQx... + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taul. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t1)) by (now step). + unstep; eapply euttge_tau_inv; eauto. + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taur. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t2)) by (now step). + unstep; eapply euttge_tau_inv; eauto. +Qed. + +(* There's no reason to restrict to the monomorphic case except for + [subrelation] only supporting monomorphic relations + *) +#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. - refine (fun H => - match H in eqitF _ _ _ _ t1 _ return - match t1 return Prop with - | VisF e1 k1 => _ - | _ => True - end - with - | EqVis _ _ _ _ _ _ _ _ => _ - | _ => _ - end); try exact I. - - left; eauto. - - destruct i; eauto. + red. + icoinduction c CIH. intros. + step in H. + hinduction H before x; subst; eauto with itree. +Qed. + +#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@euttge E _ _ RR) (eutt RR). +Proof. + red. + icoinduction c CIH. intros. + step in H. + hinduction H before x; subst; eauto with itree. +Qed. + +#[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (eutt RR). +Proof. + intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. Qed. +(** *** Transitivity properties *) +Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := +| rcompose_intro r2 (REL1: RR1 r1 r2) (REL2: RR2 r2 r3) +. +#[global] Hint Constructors rcompose : itree. -(* weak: eqitF is transitive under strong bisimulation assumptions *) -#[global] Instance Transitive_eqitF_ff (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). +Lemma trans_rcompose {R} RR (TRANS: Transitive RR): + forall x y : R, rcompose RR RR x y -> RR x y. Proof. - intros ?? t u v EQ1 EQ2. - inv EQ1; try now (inv EQ2; try easy; eauto with itree). - apply eqitF_inv_VisF_l in EQ2 as [(? & -> & ?) | [abs _]]; [| easy]. - constructor; eauto. -Qed. + intros. destruct H; eauto. +Qed. - (* eutt is still transitive, but for different reasons *) - -(* strongest: holds for all instances of eqit *) -#[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). -Proof. repeat red. intros. reflexivity. Qed. - -(* weak: holds only with eqit or eutt *) -#[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) -: Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). -Proof. repeat red; symmetry; auto. Qed. - -(* weak: holds only for strong bisimilarity *) -#[global] Instance Transitive_eqit__ff (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). -Proof. repeat red; etransitivity; eauto. Qed. - -(* weak: holds only for strong bisimilarity *) -#[global] Instance Transitive_eqit__tt (sim : itree E R -> itree E R -> Prop) -: Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). -Proof. repeat red; etransitivity; eauto. Qed. +(* core proof: transitivity of eqit *) +Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t2 t3 + (INL: eqit RR1 b1 b2 t1 t2) + (INR: eqit RR2 b1 b2 t2 t3): + @eqit E _ _ (rcompose RR1 RR2) b1 b2 t1 t3. +Proof. + unfold eqit. revert_until b2. + (* we'll need the coinductive reasoning later: elements of the chain + are transitive w.r.t. eqit. *) + icoinduction c CIH. intros. + step in INL. step in INR. + (* we begin with induction on t1 ~ t2. + in each case, we perform induction on t2 ~ t3. *) + hinduction INL before CIH; intros; subst. clear t1 t2. + (* Ret, straightforward *) + - genret r2 ot. + hinduction INR before CIH; intros; inv Heqot; eauto with itree. + - genobs t3 ot3. + (* need something more: t3 is either a τ node, or it isn't. *) + assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). + { destruct ot3; eauto; right; red; intros; inv H. } + destruct DEC as [[m3 ?] | EQ]. + (* τ - τ case: strip both. *) + + subst; simpobs. + econstructor. + eapply CIH; eauto. + apply eqit_inv_Tau. + now step. + (* τ - ̸τ : we do further case analysis. *) + + inv INR; try (exfalso; eapply EQ; eauto; fail). + taul. + step in REL. + hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). + (* now we can handle each subcase with another layer of induction *) + * remember (RetF r1) as ot. + hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. + * remember (VisF e k1) as ot. + hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. + econstructor. intros. + apply (CIH _ _ _ (REL v) (REL0 v)). + * eapply IHREL0; eauto. + destruct b1; inv CHECK0. + unstep. apply eqit_inv_Tau_r. now step. + - remember (VisF e k2) as ot. + hinduction INR before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. + econstructor. intros. + apply (CIH _ _ _ (REL0 v) (REL v)). + - eauto with itree. + - gentau t0 ot. + genobs t3 ot3. + hinduction INR before CIH; intros; try inversion Heqot; subst. + + eapply (IHINL (Tau m2)). + step in REL. eauto with itree. + + now eapply IHINL. + + taur. eapply IHINR; eauto. +Qed. -(** *** [eqit] is an equivalence relation *) +#[global] Instance Transitive_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b1 b2: bool): + Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). +Proof. + red; intros. assert (TRANS := trans_rcompose RR). + eapply eqit_mono, eqit_trans; eauto. + repeat intro. now apply TRANS. +Qed. -(** elements of the final chain are equivalence relations *) -#[export] Instance Reflexive_elem (b1 b2: bool) (HE : Reflexive RR) {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). - Proof. - apply Reflexive_chain. repeat intro. step. - repeat apply Reflexive_eqit_; auto. - Qed. +#[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): + Transitive (@eqit E R R eq b1 b2). +Proof. + apply Transitive_eqit. repeat intro; subst; eauto. +Qed. -#[export] Instance Symmetric_elem_b (b: bool) (HE : Symmetric RR) {c: Chain (@eqit_mon E R R RR b b)}: Symmetric (elem c). - Proof. - apply Symmetric_chain; repeat intro; now eapply Symmetric_eqit_. - Qed. +#[global] Instance Equivalence_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b: bool): + Equivalence RR -> Equivalence (@eqit E R R RR b b). +Proof. + constructor; try typeclasses eauto. +Qed. -#[export] Instance Transitive_elem_ff (HE : Transitive RR) {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. down. - eapply Transitive_eqit__ff; eauto. -Qed. +#[global] Instance Equivalence_eqit_eq {E : Type -> Type} {R: Type} (b: bool): + Equivalence (@eqit E R R eq false false). +Proof. + constructor; try typeclasses eauto. +Qed. + +#[global] Instance Transitive_eutt {E R RR} : Transitive RR -> Transitive (@eutt E R R RR). +Proof. + red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. + repeat intro. now apply TRANS. +Qed. + +#[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). +Proof. + constructor; try typeclasses eauto. +Qed. + +Module Tests. + #[local] Parameter E : Type -> Type. + #[local] Parameter R : Type. + #[local] Parameter t u v w : itree E R. + #[local] Parameter (EQ : t ≅ u). + #[local] Parameter (EQUIV : u ≈ v). + #[local] Parameter (GT : v ≳ w). + + (* TODO: have tests work with a relation on leaves. + Currently fails, need better instance + *) + + (* Test for rewrites in [eutt]: [eq_itree eq], [] *) + Goal t ≈ w -> t ≈ w. + intros H. + rewrite EQ. + rewrite EQ in H. + rewrite EQUIV. + rewrite EQUIV in H. + rewrite GT. + rewrite GT in H. + rewrite <- GT. + rewrite <- GT in H. + symmetry. + symmetry in H. + reflexivity. + Qed. + + Goal t ≅ u -> t ≅ u. + intros H. + rewrite EQ. + rewrite EQ in H. + symmetry. + symmetry in H. + reflexivity. + Qed. + + Goal t ≅ u -> v ≅ u -> t ≳ v -> t ≳ v. + intros EQ1 EQ2 H. + rewrite EQ1. + Fail rewrite EQ2. (* TO FIX: only going through subrelation is insuficient *) + Admitted. + + (* Test [coinduction] tactic, notations *) + Goal u ≈ t -> t ≈ u. + icoinduction r cih. + intros. + + (* WIP *) Lemma eqit_inv_Tau_var (m1 m2 : itree E R) sim z : @@ -529,7 +1038,6 @@ Qed. *) - #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. red; intros. @@ -555,45 +1063,6 @@ Qed. -#[global] Instance eq_sub_euttge: - subrelation (@eq_itree E _ _ RR) (euttge RR). -Proof. - red. coinduction c CIH. intros. - step in H. stepdown. - hinduction H before CIH; subst; eauto with itree. - - step in REL. down. genobs m1 otm1. genobs m2 otm2. - induction REL; try easy; solve_eqitF. - - econstructor. intro. specialize (REL v). stepdown in REL. - remember (observe (k1 v)). remember (observe (k2 v)). - induction REL; try easy; constructor; intros; eauto. - apply CIH, REL. -Qed. - -#[global] Instance euttge_sub_eutt: - subrelation (@euttge E _ _ RR) (eutt RR). -Proof. - unfold subrelation, eutt. - coinduction c CIH. - intros. step. - unfold euttge, eqit in H; step in H; down. - hinduction H before CIH; subst; eauto with itree. - - stepdown in REL. - econstructor. - induction REL; intros; constructor; intros; try apply CIH, REL; eauto. - - econstructor. intros. - specialize (REL v). stepdown in REL. - (* key step: IH must work for ANY tree, not just a continuation-built one. *) - (* this is so we can strip a Tau off the left side and still use our IH. *) - remember (k1 v). - induction REL; try solve_eqitF. -Qed. - -#[global] Instance eq_sub_eutt: - subrelation (@eq_itree E _ _ RR) (eutt RR). -Proof. - red; intros. eapply euttge_sub_eutt. eapply eq_sub_euttge. apply H. -Qed. - End eqit_gen. #[global] Hint Resolve Reflexive_eqit : reflexivity. @@ -881,112 +1350,6 @@ Qed. (** *** Transitivity properties *) -Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := -| rcompose_intro r2 (REL1: RR1 r1 r2) (REL2: RR2 r2 r3) -. -#[global] Hint Constructors rcompose : itree. - -Lemma trans_rcompose {R} RR (TRANS: Transitive RR): - forall x y : R, rcompose RR RR x y -> RR x y. -Proof. - intros. destruct H; eauto. -Qed. - -(* core proof: transitivity of eqit *) -Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t2 t3 - (INL: eqit RR1 b1 b2 t1 t2) - (INR: eqit RR2 b1 b2 t2 t3): - @eqit E _ _ (rcompose RR1 RR2) b1 b2 t1 t3. -Proof. - unfold eqit. revert_until b2. - (* we'll need the coinductive reasoning later: elements of the chain - are transitive w.r.t. eqit. *) - coinduction c CIH. intros. - step in INL. step in INR. down. genobs t3 ot3. - (* we begin with induction on t1 ~ t2. - in each case, we perform induction on t2 ~ t3. *) - hinduction INL before CIH; intros; subst; clear t1 t2. - (* Ret, straightforward *) - - remember (RetF r2) as ot. - hinduction INR before CIH; intros; inv Heqot; eauto with itree. - - genobs t3 ot3. - (* need something more: t3 is either a τ node, or it isn't. *) - assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). - { destruct ot3; eauto; right; red; intros; inv H. } - destruct DEC as [EQ | EQ]. - (* τ - τ case: strip both. *) - + destruct EQ as [m3 ?]; subst; simpobs. - econstructor. - eapply CIH; eauto. - apply eqit_inv_Tau. - now step. - (* τ - ̸τ : we do further case analysis. *) - + inv INR; try (exfalso; eapply EQ; eauto; fail). - taul. - step in REL. down. - hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). - (* now we can handle each subcase with another layer of induction *) - * remember (RetF r1) as ot. - hinduction REL0 before CIH; intros; inv Heqot; eauto with itree. - * remember (VisF e k1) as ot. - hinduction REL0 before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. - apply (CIH _ _ _ (REL v) (REL0 v)). - * eapply IHREL0; eauto. backstep. - destruct b1; inv CHECK0. - apply eqit_inv_Tau_r. now step. - - remember (VisF e k2) as ot. - hinduction INR before CIH; intros; try discriminate; [ inv_Vis | eauto with itree ]. - econstructor. intros. - apply (CIH _ _ _ (REL0 v) (REL v)). - - eauto with itree. - - remember (TauF t0) as ot. - genobs t3 ot3. - hinduction INR before CIH; intros; try inversion Heqot; subst. - + eapply IHINL. - now instantiate (1:=(Tau m2)). - step in REL. eauto with itree. - + now eapply IHINL. - + taur. eapply IHINR; eauto. -Qed. - -#[global] Instance Transitive_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b1 b2: bool): - Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). -Proof. - red; intros. assert (TRANS := trans_rcompose RR). - eapply eqit_mono, eqit_trans; eauto. - repeat intro. now apply TRANS. -Qed. - -#[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): - Transitive (@eqit E R R eq b1 b2). -Proof. - apply Transitive_eqit. repeat intro; subst; eauto. -Qed. - -#[global] Instance Equivalence_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b: bool): - Equivalence RR -> Equivalence (@eqit E R R RR b b). -Proof. - constructor; try typeclasses eauto. -Qed. - -#[global] Instance Equivalence_eqit_eq {E : Type -> Type} {R: Type} (b: bool): - Equivalence (@eqit E R R eq false false). -Proof. - constructor; try typeclasses eauto. -Qed. - -#[global] Instance Transitive_eutt {E R RR} : Transitive RR -> Transitive (@eutt E R R RR). -Proof. - red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. - repeat intro. now apply TRANS. -Qed. - -#[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). -Proof. - constructor; try typeclasses eauto. -Qed. - (* Tour 3: Show this proof. *) Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 @@ -2037,7 +2400,7 @@ things about elem). But which can be derived from elem c for a specific c is very little in our theory so far. *) -#[export] Instance Transitive_elem_tf R RT (HE : Transitive RT) {c: Chain (@eqit_mon E R R RT true false)}: Transitive (elem c). +#[global] Instance Transitive_elem_tf R RT (HE : Transitive RT) {c: Chain (@eqit_mon E R R RT true false)}: Transitive (elem c). Proof. apply Transitive_chain. repeat intro. (* assert (H0':=H0); backstep in H0'. @@ -2301,4 +2664,4 @@ Proof. discriminate Ret to be related to Tau. *) Abort. -End eqit_elem. \ No newline at end of file +End eqit_elem. From 2208bcd9451cd33d25cc8f858a192974c5ba71ac Mon Sep 17 00:00:00 2001 From: Yannick Date: Thu, 5 Mar 2026 08:35:42 +0100 Subject: [PATCH 070/189] a few comments --- theories/Eq/Eqit.v | 65 +++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 5f3038ed..c4583373 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -165,6 +165,10 @@ Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. [≈] using [[\approx]] [≳] using [[\gtrsim]] in tex-mode + +Ongoing hesitation: should the [icoinduction] tactic expose a [eqit_mon R b b'] +goal, or directly a [eqitF R b b'] one? +Experimenting with the latter at the moment. *) Infix "≅⟨ R ⟩" := (eq_itree R) (at level 70) : type_scope. @@ -189,6 +193,8 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco #[global] Hint Unfold eq_itree : itree. #[global] Hint Unfold eutt : itree. #[global] Hint Unfold euttge : itree. +(* Alternative notation to the ` with a \dot. Would be good to pick an ascii + one instead maybe? *) #[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). (* end hide *) @@ -204,9 +210,9 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. - #[local] Ltac iunfold_in h := - unfold euttge, eq_itree, eutt, eqit in h. - +#[local] Ltac iunfold_in h := + unfold euttge, eq_itree, eutt, eqit in h. + #[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. @@ -216,6 +222,7 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco Tactic Notation "unstep" := iunfold; unstep. Tactic Notation "step" := step; cbn. +(* Trick for unfolding only the relevant instances *) #[local] Ltac iunfold_coind := first [intros ?; iunfold_coind; revert_last | @@ -488,20 +495,30 @@ Section eqit_gen. Context {E : Type -> Type} {R: Type} (RR : R -> R -> Prop). + (** *** Order properties of the respective chains *) + + (** Universal properties of the chains of the respective relations: + - all three are reflexive + - the chains for [eq_itree] and [eutt] are symmetric + - the chain for [eq_itree] is additionnally transitive +Properties of the chains specialize to the relations: the gfp is an element of the chain. + *) + #[global] Instance Reflexive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqitF RR b1 b2 sim). Proof. red. destruct x; constructor; eauto with itree. Qed. + (* We of course exclude the asymmetric case *) #[global] Instance Symmetric_eqitF b (sim : itree E R -> itree E R -> Prop) : Symmetric RR -> Symmetric sim -> Symmetric (eqitF RR b b sim). Proof. red. induction 3; constructor; subst; eauto. Qed. - (* weak: eqitF is transitive under strong bisimulation assumptions *) - #[global] Instance Transitive_eqitF_ff (sim : itree E R -> itree E R -> Prop) + (* Note the strong bisimulation assumption *) + #[global] Instance Transitive_eqitF (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. intros ?? t u v EQ1 EQ2. @@ -510,31 +527,18 @@ Section eqit_gen. constructor; eauto. Qed. - (* eutt is still transitive, but for different reasons *) - - (* strongest: holds for all instances of eqit *) #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). Proof. repeat red. intros. reflexivity. Qed. - (* weak: holds only with eqit or eutt *) #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) : Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). Proof. repeat red; symmetry; auto. Qed. - (* weak: holds only for strong bisimilarity *) #[global] Instance Transitive_eqit_ (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). Proof. repeat red; etransitivity; eauto. Qed. - (** *** [eqit] is an equivalence relation *) - - (** Universal properties of the chains of the respective relations: - - all three are reflexive - - the chains for [eq_itree] and [eutt] are symmetric - - the chain for [eq_itree] is additionnally transitive -Properties of the chains specialize to the relations: the gfp is an element of the chain. - *) #[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). Proof. @@ -560,13 +564,7 @@ Properties of the chains specialize to the relations: the gfp is an element of t Proof. constructor; typeclasses eauto. Qed. - - (* Although trivial particular case, we define instances for the [gfp]s as they are definitions *) - #[global] Instance Equivalence_eq_itree (HT : Equivalence RR) : Equivalence (eq_itree (E := E) RR). - Proof. - now apply Equivalence_elem. - Qed. - + End eqit_gen. @@ -874,7 +872,7 @@ Proof. intros. destruct H; eauto. Qed. -(* core proof: transitivity of eqit *) +(* Transitivity of eqit *) Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t2 t3 (INL: eqit RR1 b1 b2 t1 t2) (INR: eqit RR2 b1 b2 t2 t3): @@ -931,6 +929,9 @@ Proof. + taur. eapply IHINR; eauto. Qed. +(* We can now package the instances for the top level relations: + two equivalences and a preorder as expected. + *) #[global] Instance Transitive_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b1 b2: bool): Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). Proof. @@ -968,6 +969,18 @@ Proof. constructor; try typeclasses eauto. Qed. +#[global] Instance Transitive_euttge {E R RR} : Transitive RR -> Transitive (@euttge E R R RR). +Proof. + red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. + repeat intro. now apply TRANS. +Qed. + +#[global] Instance PreOrder_euttge {E R RR} : PreOrder RR -> PreOrder (@euttge E R R RR). +Proof. + constructor; try typeclasses eauto. +Qed. + +(* Ongoing sanity tests *) Module Tests. #[local] Parameter E : Type -> Type. #[local] Parameter R : Type. From dfea90b2e5421c73c78be2c21351d34db6d4e43a Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 6 Mar 2026 01:50:59 -0500 Subject: [PATCH 071/189] Notes for meeting --- .Makefile.d | 384 ++++++++++++++++++++++----------------------- theories/Eq/Eqit.v | 18 +++ 2 files changed, 210 insertions(+), 192 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index a105fbed..56b6e2e9 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c4583373..e4f5dac9 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -760,6 +760,24 @@ Notation "⊙ x" := (observe x) (only printing, at level 10). (* FOR ROGER Note the use of the lemma [euttge_tau_inv] in particular. *) + +(* for meeting *) + (* learned a lot from this. + 1 interesting difference is your induction on eqit_mon ... ̇c, + rather than on {≳}. + another is the strong IH. + a third is use of certain interesting automation, which I'd like to learn + finally, edestructing a lemma. seems quite cool. + + we will talk next steps at our meeting: + 1. where to go in this file: notation, tactic naming, etc. + imo we should name things exactly as they will be in your + coinduction library PR, so that they are easy to fix. + 2. onwards: we want this proof but with euttgeC, no? + finally, will we use uptotaus, or just move on to the next + part in ktrees? + 3. finally, thanks! + *) #[global] Instance euttge_eutt_elem {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. From 3a5567adb97f4088cae61d00bf2a8fd0caecb5da Mon Sep 17 00:00:00 2001 From: Yannick Date: Fri, 6 Mar 2026 16:49:01 +0100 Subject: [PATCH 072/189] Missing rewriting lemma --- theories/Eq/Eqit.v | 154 +++++++++++++++++++++++++-------------------- 1 file changed, 86 insertions(+), 68 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c4583373..651b37ca 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -832,33 +832,6 @@ Proof with eauto with itree. unstep; eapply euttge_tau_inv; eauto. Qed. -(* There's no reason to restrict to the monomorphic case except for - [subrelation] only supporting monomorphic relations - *) -#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): - subrelation (@eq_itree E _ _ RR) (euttge RR). -Proof. - red. - icoinduction c CIH. intros. - step in H. - hinduction H before x; subst; eauto with itree. -Qed. - -#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): - subrelation (@euttge E _ _ RR) (eutt RR). -Proof. - red. - icoinduction c CIH. intros. - step in H. - hinduction H before x; subst; eauto with itree. -Qed. - -#[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): - subrelation (@eq_itree E _ _ RR) (eutt RR). -Proof. - intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. -Qed. - (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -928,7 +901,7 @@ Proof. + now eapply IHINL. + taur. eapply IHINR; eauto. Qed. - +Arguments eqit_trans {E R1 R2 R3} [RR1 RR2 b1 b2 t1 t2 t3]. (* We can now package the instances for the top level relations: two equivalences and a preorder as expected. *) @@ -964,6 +937,55 @@ Proof. repeat intro. now apply TRANS. Qed. +Lemma rcompose_eql {R1 R2} (RR : R1 -> R2 -> Prop) : eq_rel (rcompose eq RR) RR. +Proof. + split; [intros ?? []; now subst | intros ???; now econstructor]. +Qed. +Lemma rcompose_eqr {R1 R2} (RR : R1 -> R2 -> Prop) : eq_rel (rcompose RR eq) RR. +Proof. + split; [intros ?? []; now subst | intros ???; econstructor; eauto]. +Qed. + +#[global] Instance eutt_cong_eutt_eq {E R1 R2 RS}: + Proper (eutt eq ==> eutt eq ==> flip impl) + (@eutt E R1 R2 RS). +Proof. + intros t t' EQ1 u u' EQ2 EQUIV. + pose proof eqit_trans EQ1 EQUIV as EQUIV'. + rewrite rcompose_eql in EQUIV'. + symmetry in EQ2. + pose proof eqit_trans EQUIV' EQ2 as EQUIV''. + now rewrite rcompose_eqr in EQUIV''. +Qed. + +(* There's no reason to restrict to the monomorphic case except for + [subrelation] only supporting monomorphic relations + *) +#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (euttge RR). +Proof. + red. + icoinduction c CIH. intros. + step in H. + hinduction H before x; subst; eauto with itree. +Qed. + +#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@euttge E _ _ RR) (eutt RR). +Proof. + red. + icoinduction c CIH. intros. + step in H. + hinduction H before x; subst; eauto with itree. +Qed. + +#[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (eutt RR). +Proof. + intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. +Qed. + + #[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). Proof. constructor; try typeclasses eauto. @@ -983,9 +1005,22 @@ Qed. (* Ongoing sanity tests *) Module Tests. #[local] Parameter E : Type -> Type. - #[local] Parameter R : Type. - #[local] Parameter t u v w : itree E R. - #[local] Parameter (EQ : t ≅ u). + #[local] Parameter R1 R2 : Type. + #[local] Parameter RR : R1 -> R2 -> Prop. + #[local] Parameter t u : itree E R1. + #[local] Parameter v w : itree E R2. + #[local] Parameter (EQ1 : t ≅ u). + #[local] Parameter (EQUIV1 : t ≈ u). + #[local] Parameter (EQ2 : v ≅ w). + #[local] Parameter (EQUIV2 : v ≈ w). + + Goal eutt RR u v. + rewrite EQUIV2. + rewrite EQ2. + Show Proof. + eapply eq_itree_eutt_elem + rewrite EQUIV2. +@eutt_Proper_R #[local] Parameter (EQUIV : u ≈ v). #[local] Parameter (GT : v ≳ w). @@ -1020,10 +1055,27 @@ Module Tests. Goal t ≅ u -> v ≅ u -> t ≳ v -> t ≳ v. intros EQ1 EQ2 H. - rewrite EQ1. - Fail rewrite EQ2. (* TO FIX: only going through subrelation is insuficient *) + (* rewrite EQ1. *) + Typeclasses eauto := debug. + rewrite EQ2. (* TO FIX: only going through subrelation is insuficient *) Admitted. - +Debug: 1.1-1.1: simple apply @eqitgen_cong_eqit_eq on +(Proper (?R ==> eq_itree eq ==> flip impl) (euttge eq)), 0 subgoal(s) +Debug: 1.1-2 : (ProperProxy (eq_itree eq) t) +Debug: 1.1-2: looking for (ProperProxy (eq_itree eq) t) without backtracking +Debug: +1.1-2.1: (*external*) (class_apply @eq_proper_proxy || + class_apply @reflexive_proper_proxy) on +(ProperProxy (eq_itree eq) t), 1 subgoal(s) +Debug: 1.1-2.1-1 : (ReflexiveProxy (eq_itree eq)) +Debug: 1.1-2.1-1: looking for (ReflexiveProxy (eq_itree eq)) without backtracking +Debug: 1.1-2.1-1.1: (*external*) (reflexive_proxy_tac A R) on +(ReflexiveProxy (eq_itree eq)), 1 subgoal(s) +Debug: 1.1-2.1-1.1-1 : (Reflexive (eq_itree eq)) +Debug: 1.1-2.1-1.1-1: looking for (Reflexive (eq_itree eq)) without backtracking +Debug: 1.1-2.1-1.1-1.1: simple apply @Reflexive_eqit_eq on +(Reflexive (eq_itree eq)), 0 subgoal(s) + (* Test [coinduction] tactic, notations *) Goal u ≈ t -> t ≈ u. icoinduction r cih. @@ -1434,40 +1486,6 @@ repeat intro; unfold flip, eq_itree in *. Qed. -#[global] Instance eqitgen_cong_eqit_eq {E R1 R2 RS} b1 b2: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E R1 R2 RS b1 b2). -Proof. - repeat intro. - eapply @eqitgen_cong_eqit with (RR1:=eq) (RR2:=eq); intros; subst; eauto. -Qed. - -(* sanity check: rewriting works. *) -#[global] Instance eqitgen_cong_eqit_eq' {E R1 R2 RS} b1 b2: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E R1 R2 RS b1 b2). -Proof. - repeat intro. - now rewrite H0, H. -Qed. - -#[global] Instance euttge_cong_euttge {E R RS} - (TRANS: Transitive RS): - Proper (euttge RS ==> flip (euttge RS) ==> flip impl) - (@eqit E R R RS true false). -Proof. - repeat intro. assert (HYP := trans_rcompose RS TRANS). - (* needed a bit of repair *) - do 2 (eapply eqit_mono with (RR:=rcompose RS RS); repeat intro; eauto; eapply eqit_trans; eauto). -Qed. - -#[global] Instance euttge_cong_euttge_eq {E R}: - Proper (euttge eq ==> flip (euttge eq) ==> flip impl) - (@eqit E R R eq true false). -Proof. - eapply euttge_cong_euttge; eauto using eq_trans. -Qed. - (* Auxiliary results on [itree]s. *) From 8e3862c74a76c4248ca26b9cb18348de7347e5ee Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 6 Mar 2026 11:29:49 -0500 Subject: [PATCH 073/189] notes on next steps --- theories/Eq/Eqit.v | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 1621e76a..82989bd6 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -850,6 +850,45 @@ Proof with eauto with itree. unstep; eapply euttge_tau_inv; eauto. Qed. + +#[global] Instance euttge_eutt_b {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttC RR): + Proper (going (euttge (E := E) eq) ==> going (euttge eq) ==> flip impl) (eqitF RR true true (elem c)). +Proof with eauto with itree. +repeat intro. +pose proof (euttge_eutt_elem RR (chain_b c)). +unfold Proper, respectful in H2. +Search Chain. + + +(* There's no reason to restrict to the monomorphic case except for + [subrelation] only supporting monomorphic relations + *) +#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (euttge RR). +Proof. + red. + icoinduction c CIH. intros. + step in H. + hinduction H before x; subst; eauto with itree. +Qed. + +#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@euttge E _ _ RR) (eutt RR). +Proof. + red. + icoinduction c CIH. intros. + step in H. + hinduction H before x; subst; eauto with itree. +Qed. + +#[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (eutt RR). +Proof. + intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. +Qed. + +>>>>>>> c8415f5 (notes on next steps) (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -1070,7 +1109,7 @@ Module Tests. symmetry in H. reflexivity. Qed. - + (* 2. next: this: euttge RR is proper wrt eq_itree - make sure this works *) Goal t ≅ u -> v ≅ u -> t ≳ v -> t ≳ v. intros EQ1 EQ2 H. (* rewrite EQ1. *) @@ -1098,7 +1137,8 @@ Debug: 1.1-2.1-1.1-1.1: simple apply @Reflexive_eqit_eq on Goal u ≈ t -> t ≈ u. icoinduction r cih. intros. - + Unset Printing Notations. + (* to consider b elem *) (* WIP *) From e1e5fcca7a8bfea0ddfe01110e6df8f4dcf088bb Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 6 Mar 2026 13:35:50 -0500 Subject: [PATCH 074/189] fixed git things, merging into roger-coinduction next --- .Makefile.d | 384 ++++++++++++++++++++++----------------------- theories/Eq/Eqit.v | 7 +- 2 files changed, 195 insertions(+), 196 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 56b6e2e9..a105fbed 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 82989bd6..9cbbb798 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -859,7 +859,7 @@ repeat intro. pose proof (euttge_eutt_elem RR (chain_b c)). unfold Proper, respectful in H2. Search Chain. - +fail. (* There's no reason to restrict to the monomorphic case except for [subrelation] only supporting monomorphic relations @@ -888,7 +888,6 @@ Proof. intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. Qed. ->>>>>>> c8415f5 (notes on next steps) (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -1018,7 +1017,7 @@ Qed. (* There's no reason to restrict to the monomorphic case except for [subrelation] only supporting monomorphic relations *) -#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): +(* #[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. red. @@ -1040,7 +1039,7 @@ Qed. subrelation (@eq_itree E _ _ RR) (eutt RR). Proof. intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. -Qed. +Qed. *) #[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). From 902e0712af6c5ffe42f4057b0b33e4f01deedb17 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 6 Mar 2026 13:56:55 -0500 Subject: [PATCH 075/189] added new notation for eutt with R, euttge with R --- theories/Eq/Eqit.v | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 9cbbb798..de1391fb 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -178,13 +178,24 @@ Infix "{≅}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : t Notation eq_itreeF R := (eqitF R false false). Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon R false false) _) (at level 70) : type_scope. Infix "[≅]" := (@elem _ _ (eqit_mon eq false false) _) (at level 70) : type_scope. + +Infix "≈⟨ R ⟩" := (eutt R) (at level 70) : type_scope. Infix "≈" := (eutt eq) (at level 70) : type_scope. +Infix "{≈⟨ R ⟩}" := (eqitF R true true (elem _)) (at level 70) : type_scope. Infix "{≈}" := (eqitF eq true true (elem _)) (at level 70) : type_scope. +Notation euttF R := (eqitF R true true). +Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon R true true) _) (at level 70) : type_scope. Infix "[≈]" := (@elem _ _ (eqit_mon eq true true) _) (at level 70) : type_scope. + +Infix "≳⟨ R ⟩" := (euttge R) (at level 70) : type_scope. Infix "≳" := (euttge eq) (at level 70) : type_scope. +Infix "{≳⟨ R ⟩}" := (eqitF R true false (elem _)) (at level 70) : type_scope. Infix "{≳}" := (eqitF eq true false _) (at level 70) : type_scope. +Notation euttgeF R := (eqitF R true false). +Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon R true false) _) (at level 70) : type_scope. Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. + (* begin hide *) #[global] Hint Constructors eqitF : itree. #[global] Hint Unfold eqit_ : itree. @@ -199,7 +210,6 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco (* end hide *) (** Tactics *) -(* RTODO: Ask if these should be coqdoc documented or hidden. *) (* We first enhance the coinduction tactic to recognize goals that do not have a syntactic match with [gfp _] *) @@ -754,13 +764,8 @@ Proof. eapply IHEQ; eauto. Qed. -Notation euttgeF R := (eqitF R true false). Notation "⊙ x" := (observe x) (only printing, at level 10). -(* FOR ROGER - Note the use of the lemma [euttge_tau_inv] in particular. - *) - (* for meeting *) (* learned a lot from this. 1 interesting difference is your induction on eqit_mon ... ̇c, @@ -851,15 +856,15 @@ Proof with eauto with itree. Qed. -#[global] Instance euttge_eutt_b {E R1 R2} +(* #[global] Instance euttge_eutt_b {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper (going (euttge (E := E) eq) ==> going (euttge eq) ==> flip impl) (eqitF RR true true (elem c)). Proof with eauto with itree. repeat intro. pose proof (euttge_eutt_elem RR (chain_b c)). unfold Proper, respectful in H2. -Search Chain. -fail. +Search Chain. +fail. *) (* There's no reason to restrict to the monomorphic case except for [subrelation] only supporting monomorphic relations @@ -1072,12 +1077,12 @@ Module Tests. Goal eutt RR u v. rewrite EQUIV2. - rewrite EQ2. + rewrite <- EQ2. Show Proof. - eapply eq_itree_eutt_elem - rewrite EQUIV2. -@eutt_Proper_R - #[local] Parameter (EQUIV : u ≈ v). + eapply eq_itree_eutt_elem. + rewrite <- EQ1. +Abort. + Fail #[local] Parameter (EQUIV : u ≈ v). #[local] Parameter (GT : v ≳ w). (* TODO: have tests work with a relation on leaves. @@ -1085,7 +1090,7 @@ Module Tests. *) (* Test for rewrites in [eutt]: [eq_itree eq], [] *) - Goal t ≈ w -> t ≈ w. + Goal t ≈⟨R⟩ w -> t ≈ w. intros H. rewrite EQ. rewrite EQ in H. From 169b0891bc6c2d79658b437c971bdce0f3420f89 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 6 Mar 2026 17:09:14 -0500 Subject: [PATCH 076/189] Fixing file, continuing --- theories/Basics/Utils.v | 6 +- theories/Eq/Eqit.v | 549 +++++++++++++++++++++------------------- 2 files changed, 287 insertions(+), 268 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 8bb4014f..5c05cdc4 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -145,11 +145,13 @@ Qed. Lemma pfp_gfp {X} {L : CompleteLattice X} (b : mon X): b (gfp b) <= (gfp b). Proof. apply b_chain. Qed. + (* in goal: elem -> b elem -> gfp b -> b gfp *) Ltac step := match goal with | |- context [gfp ?b] => apply (pfp_gfp b) -| |- context [elem ?R] => apply (b_chain R) -end. +| |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) +end +. Ltac step_in h := match type of h with diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index de1391fb..e88cdf9e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1,4 +1,18 @@ +(* +RTODOS: +- decide better notation for elem than \dot +- decide on names for relations: RR should not be the default name +for both the monomorphic relation R -> R -> Prop and the polymorphic one +R1 -> R2 -> Prop +- for now, RR for R -> R and RR12 for the latter. +- + (* 2. next: this: euttge RR is proper wrt eq_itree - make sure this works *) +- rename and redo sections +- chain_b proof +- keep building tests until rewriting robustness is clear + - organize file +*) (** * Strong bisimulation *) (** Because [itree] is a coinductive type, the naive [eq] relation @@ -195,6 +209,9 @@ Notation euttgeF R := (eqitF R true false). Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon R true false) _) (at level 70) : type_scope. Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. +(* chains *) +Notation euttC RR := (Chain (eqit_mon RR true true)). + (* begin hide *) #[global] Hint Constructors eqitF : itree. @@ -269,7 +286,7 @@ Tactic Notation "step" "in" ident(h) := Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. -(* The [down] tactic: unfolding the ITree definition *) +(* The [icbn] tactic: unfolding the ITree definition *) (* Since [itrees] are defined with nesting, un-nesting is often needed during a proof to get Rocq to recognize certain terms as valid under @@ -278,45 +295,31 @@ Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := in both hypotheses and the goal is so common that the library uses an internal tactic for doing so all at once. *) -(* #[local] Ltac down_in_ H := *) -(* repeat progress (cbn [eqit_mon body] in H; unfold eqit_ in H). *) - -(* #[local] Tactic Notation "down" "in" hyp(H) := down_in_ H. *) - -(* #[local] Ltac down_goal := *) -(* cbn [eqit_mon body]; *) -(* unfold eqit_. *) - -(* #[local] Tactic Notation "down" "in" "goal" := down_goal. *) +#[local] Ltac icbn := cbn[eqit_mon body eqit_]. +#[local] Ltac icbn_in H := cbn[eqit_mon body eqit_] in H. -(* (* morally: down := 'down in *' *) *) -(* #[local] Ltac down := *) -(* cbn [eqit_mon body] in *; *) -(* unfold eqit_ in * *) -(* . *) - -(* #[local] Ltac stepdown_in_ H := step in H; down in H. *) - -(* #[global] Tactic Notation "step" := step; down_goal. *) - -(* #[global]Tactic Notation "step" "in" hyp(H) := stepdown_in_ H; refold H. *) +#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. +#[local] Tactic Notation "icbn" "in" "*" := cbn[eqit_mon body eqit_] in *. (* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by simplifiying, rewriting, and trying to apply assumptions. *) Ltac solve_eqitF := (* reduce to 'observe' form by stripping constructors and unfolding *) - iunfold; try econstructor; + iunfold; icbn in *; try econstructor; (* replace 'observe' with actual constructor values *) simpobs; (* finish off *) try econstructor; intros; eauto with itree. (* [taul] and [taur] peel off a tau from either side when the CHECK flag for - that side is set. Their primary purpose is to make proofs more readable. *) + that side is set. Their primary purpose is to make proofs more readable. + [taus] is simply the [EqTau] constructor, and serves the same purpose. + *) Ltac taul := apply EqTauL; only 1: auto. Ltac taur := apply EqTauR; only 1: auto. +Ltac taus := apply EqTau. Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} t1 X2 (e2 : E X2) (k2 : X2 -> _) : @@ -574,14 +577,36 @@ Properties of the chains specialize to the relations: the gfp is an element of t Proof. constructor; typeclasses eauto. Qed. - + + + +#[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). +Proof. + red; intros. + (* strengthen bisimulation: elem c x x holds for all x. *) + revert x. icoinduction c CIH. intro. step. + now repeat apply Reflexive_eqit_. +Qed. + +#[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). +Proof. + intros. + unfold Symmetric. + icoinduction c CIH. + assert (Symmetric (elem c)). + { apply Symmetric_chain. red; intros. now apply Symmetric_eqit_. } + intros. + apply Symmetric_eqit_; auto. + step in H1. + icbn. + induction H1; eauto with itree. +Qed. End eqit_gen. Section eqit_inv. Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. - Context {vclo : (itree E R1 -> itree E R2 -> Prop) -> (itree E R1 -> itree E R2 -> Prop)}. Context {sim : itree E R1 -> itree E R2 -> Prop}. Notation eqit__ t1_ t2_ := @@ -669,11 +694,19 @@ Section eqit_inv. 1: apply eqit_inv_Tau_l; step; unfold observe, _observe; assumption. Qed. -End eqit_inv. +Lemma eqit_inv_Tau_var (m1 : itree E R1) z : + forall (om1 : itree' E R1), + observe m1 = om1 -> + eqitF RR true false sim om1 z -> + @eqitF _ R1 R2 RR true false sim (TauF m1) z. +Proof. + intros om1 Heq H2. + (* Now om2 is a variable — we can use plain induction *) + induction H2; taul; simpobs; eauto with itree. +Qed. -Notation euttC RR := (Chain (eqit_mon RR true true)). +End eqit_inv. -Ltac icbn := cbn[eqit_mon body eqit_]. #[global] Instance eq_itree_eutt_elem {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): @@ -783,9 +816,9 @@ Notation "⊙ x" := (observe x) (only printing, at level 10). part in ktrees? 3. finally, thanks! *) -#[global] Instance euttge_eutt_elem {E R1 R2} +#[global] Instance euttge_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. + Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. Proof with eauto with itree. unfold Proper, respectful, flip, impl. apply tower. @@ -855,22 +888,25 @@ Proof with eauto with itree. unstep; eapply euttge_tau_inv; eauto. Qed. - -(* #[global] Instance euttge_eutt_b {E R1 R2} +Search Chain. +(* here chain_b lifts b to elements of the chain... *) +#[global] Instance euttge_proper_euttC_b {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper (going (euttge (E := E) eq) ==> going (euttge eq) ==> flip impl) (eqitF RR true true (elem c)). -Proof with eauto with itree. -repeat intro. -pose proof (euttge_eutt_elem RR (chain_b c)). -unfold Proper, respectful in H2. -Search Chain. -fail. *) + Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon RR true true (elem c)). +Proof. + eapply euttge_proper_euttC with (c := chain_b c); eauto. +Qed. -(* There's no reason to restrict to the monomorphic case except for - [subrelation] only supporting monomorphic relations - *) -#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): - subrelation (@eq_itree E _ _ RR) (euttge RR). +(* ... and chain_gfp lifts the gfp. *) +#[global] Instance euttge_proper_eutt {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : Chain (@eqit_mon E _ _ RR true true)): + Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eutt RR). +Proof. + eapply euttge_proper_euttC with (c := (chain_gfp (@eqit_mon E _ _ RR true true))); eauto. +Qed. + +Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): + subrelationH (@eq_itree E _ _ RR) (euttge RR). Proof. red. icoinduction c CIH. intros. @@ -878,8 +914,15 @@ Proof. hinduction H before x; subst; eauto with itree. Qed. -#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): - subrelation (@euttge E _ _ RR) (eutt RR). + +#[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): + subrelation (@eq_itree E _ _ RR) (euttge RR). +Proof. + exact (eq_subH_euttge RR). +Qed. + +Lemma euttge_subH_eutt {E R1 R2} (RR : R1 -> R2 -> Prop): + subrelationH (@euttge E _ _ RR) (eutt RR). Proof. red. icoinduction c CIH. intros. @@ -887,12 +930,36 @@ Proof. hinduction H before x; subst; eauto with itree. Qed. + +#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): + subrelation (@euttge E _ _ RR) (eutt RR). +Proof. + exact (euttge_subH_eutt RR). +Qed. + +Lemma eq_subH_eutt {E R1 R2} (RR : R1 -> R2 -> Prop): + subrelationH (@eq_itree E _ _ RR) (eutt RR). +Proof. + intros ?? H; apply euttge_subH_eutt, eq_subH_euttge, H. +Qed. + + #[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (eutt RR). Proof. - intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. + exact (eq_subH_eutt RR). Qed. +#[global] Instance eq_proper_elem {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttC RR): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. +Proof. + repeat intro. + apply eq_sub_euttge with (RR := eq) in H. + apply eq_sub_euttge with (RR := eq) in H0. + eapply euttge_proper_euttC; eauto. +Qed. + (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -1049,7 +1116,7 @@ Qed. *) #[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). Proof. - constructor; try typeclasses eauto. + typeclasses eauto. Qed. #[global] Instance Transitive_euttge {E R RR} : Transitive RR -> Transitive (@euttge E R R RR). @@ -1060,7 +1127,7 @@ Qed. #[global] Instance PreOrder_euttge {E R RR} : PreOrder RR -> PreOrder (@euttge E R R RR). Proof. - constructor; try typeclasses eauto. + constructor; typeclasses eauto. Qed. (* Ongoing sanity tests *) @@ -1090,7 +1157,8 @@ Abort. *) (* Test for rewrites in [eutt]: [eq_itree eq], [] *) - Goal t ≈⟨R⟩ w -> t ≈ w. + (* RTODO: These *) + (* Goal t ≈⟨RR⟩ w -> t ≈⟨RR⟩ w. intros H. rewrite EQ. rewrite EQ in H. @@ -1104,23 +1172,24 @@ Abort. symmetry in H. reflexivity. Qed. - - Goal t ≅ u -> t ≅ u. + *) + (* RTODO: These *) + (* Goal t ≅ u -> t ≅ u. intros H. rewrite EQ. rewrite EQ in H. symmetry. symmetry in H. reflexivity. - Qed. + Qed. *) (* 2. next: this: euttge RR is proper wrt eq_itree - make sure this works *) - Goal t ≅ u -> v ≅ u -> t ≳ v -> t ≳ v. + Goal t ≅ u -> v ≅⟨flip RR⟩ u -> t ≳⟨RR⟩ v -> t ≳⟨RR⟩ v. intros EQ1 EQ2 H. (* rewrite EQ1. *) Typeclasses eauto := debug. - rewrite EQ2. (* TO FIX: only going through subrelation is insuficient *) + Fail rewrite EQ2. (* TO FIX: only going through subrelation is insuficient *) Admitted. -Debug: 1.1-1.1: simple apply @eqitgen_cong_eqit_eq on +(* Debug: 1.1-1.1: simple apply @eqitgen_cong_eqit_eq on (Proper (?R ==> eq_itree eq ==> flip impl) (euttge eq)), 0 subgoal(s) Debug: 1.1-2 : (ProperProxy (eq_itree eq) t) Debug: 1.1-2: looking for (ProperProxy (eq_itree eq) t) without backtracking @@ -1135,62 +1204,107 @@ Debug: 1.1-2.1-1.1: (*external*) (reflexive_proxy_tac A R) on Debug: 1.1-2.1-1.1-1 : (Reflexive (eq_itree eq)) Debug: 1.1-2.1-1.1-1: looking for (Reflexive (eq_itree eq)) without backtracking Debug: 1.1-2.1-1.1-1.1: simple apply @Reflexive_eqit_eq on -(Reflexive (eq_itree eq)), 0 subgoal(s) - +(Reflexive (eq_itree eq)), 0 subgoal(s) *) + +(* #[global] Instance eutt_elem (c : euttC eq): +Proper (@eutt E R1 R1 eq ==> eutt eq ==> flip impl) ̇c. +Proof with eauto with itree. + unfold Proper, respectful, flip, impl. + apply tower. + - red; cbn; intros ? LE x x' EQx y y' EQy. + intros H??; eapply LE; eauto. + - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + icbn; intros EQ. + genobs x' ox'; genobs y' oy'. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genret r1 or1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy; genret r2 or2. + revert y Heqoy. + hinduction EQy before oy; try easy. + subst; intros [=<-] ??... + now intros; taur; eapply IHEQy. + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + gentau m1 om1. + gentau m2 om2. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros [=<-] ? ????. + clear x Heqox. + genobs y oy. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros. inv Heqom2... + intros. + taur. + now eapply IHEQy. + intros. inv Heqom2. + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genvis e k1 ot1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros. + apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + clear x Heqox. + genobs y oy; genvis e k2 ot2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros; apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst; eauto with itree. + intros. + taur. + now eapply IHEQy. + * intros; subst; taul; eapply IHEQx... + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taul. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t1)) by (now step). + unstep; eapply euttge_tau_inv; eauto. + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taur. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t2)) by (now step). + unstep; eapply euttge_tau_inv; eauto. *) + + +(* FOR YANNICK: is this one of the untrue ones? *) +(* #[global] Instance eutt_proper_euttC_b (r : euttC eq): + Proper (@eutt E R1 R1 eq ==> eutt eq ==> (flip impl)) (eqit_mon eq true true (elem r)). +Proof. + repeat intro. icbn in *. step in H. + hinduction H1 before x; subst; intros. + - genret r2 or2. induction H; subst; try inv Heqor2; eauto with itree. + - gentau m2 ot2. induction H; subst; try inv Heqot2; eauto with itree. + taus. rewrite REL0. *) + +(* RTODO next: this proof, which has a goal of eqitF, is not +rewritable with the eqit_mon proper instance. we want this to work-- +will it? need a few more proper instances... maybe wrt going, etc. *) (* Test [coinduction] tactic, notations *) Goal u ≈ t -> t ≈ u. - icoinduction r cih. + unfold eutt, eqit at 2. + coinduction r cih. + (* icoinduction r cih. *) intros. Unset Printing Notations. + fold (@eutt E R1 R1 eq) in H. + Fail rewrite H. (* to consider b elem *) (* WIP *) - - -Lemma eqit_inv_Tau_var (m1 m2 : itree E R) sim z : - forall (om1 : itree' E R), - observe m1 = om1 -> - eqitF RR true false sim om1 z -> - @eqitF _ _ R RR true false sim (TauF m1) z. -Proof. - intros om1 Heq H2. - (* Now om2 is a variable — we can use plain induction *) - induction H2; taul; simpobs; eauto with itree. -Qed. -(* Tour extra: *) - -(* RTODO: ask yannick exactly what's going on, then document *) - (* - "eutt is NOT valid up to eutt" and this is supposedly equivalent to - transitivity, but we did prove things are transitive... what's going on? - *) - - -#[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). -Proof. - red; intros. - (* strengthen bisimulation: elem c x x holds for all x. *) - revert x. coinduction c CIH. intro. step. - now repeat apply Reflexive_eqit_. -Qed. - -#[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). -Proof. - intros. - unfold Symmetric. - coinduction c CIH. - assert (Symmetric (elem c)). - { apply Symmetric_chain. red; intros. now apply Symmetric_eqit_. } - intros. - apply Symmetric_eqit_; auto. - step in H1. - down. - induction H1; eauto with itree. -Qed. - - - - -End eqit_gen. +Abort. +End Tests. #[global] Hint Resolve Reflexive_eqit : reflexivity. @@ -1261,15 +1375,18 @@ Qed. subrelation (observing eq) (eqit l r). Proof. repeat red; intros. - stepdown. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. + step. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. #[global] Instance observing_sub_elem b1 b2 (c : Chain (eqit_mon eq b1 b2)) (l r : itree E R) : subrelation (@observing E R R eq) (elem c). Proof. repeat intro. - inv H. stepdown. rewrite observing_observe. - backstep. reflexivity. + inv H. Unset Printing Notations. + Fail step. + apply (b_chain c). icbn. + rewrite observing_observe. + step. reflexivity. Qed. (** ** Eta-expansion *) @@ -1332,107 +1449,7 @@ Proof. intros H x; step in H; apply eqitF_inv_VisF with (x := x) in H; auto. Qed. -(* Tour 2: *) -(* This proof was quite simplified by coinduction and tactics *) -Lemma eqit_inv_Tau_l {E R1 R2 RR} b1 t1 t2 : - @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. -Proof. - intros. - stepdown in H. - stepdown. - remember (observe (Tau t1)). - remember (observe t1). - (* RTODO: report this bug (rm down) *) - induction H; inv Heqi. - - stepdown in REL. now taur. - - assumption. - - taur. now apply IHeqitF. -Qed. - -Lemma eqit_inv_Tau_r {E R1 R2 RR} b2 t1 t2 : - @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. -Proof. - intros. - stepdown in H. - stepdown. - remember (observe (Tau t2)). - remember (observe t2). - induction H; inv Heqi. - - taul. now backstep. - - simpobs. taul. now apply IHeqitF. - - assumption. -Qed. - -Lemma eqitF_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : - @eqitF E R1 R2 RR b1 b2 (gfp (eqit_mon RR b1 b2)) (TauF t1) (TauF t2) - -> eqitF RR b1 b2 (gfp (eqit_mon RR b1 b2)) (observe t1) (observe t2). -Proof with eauto with itree. - intros. - remember (TauF t1) as ot1. - remember (TauF t2) as ot2. -revert t1 t2 Heqot1 Heqot2. -induction H; intros t1' t2' Heqot1 Heqot2; try easy; subst. -- inv Heqot1; inv Heqot2. now backstep. -- inv H; inv Heqot1; simpobs. - + taul. now step in REL. - + taul. now apply IHeqitF. - + assumption. - - inv H; inv Heqot2; simpobs. - + taur. now step in REL. - + assumption. - + taur. now apply IHeqitF. -Qed. - -Lemma eqit_inv_Tau {E R1 R2 RR} b1 b2 t1 t2 : - @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. -Proof with eauto with itree. - intros. - step in H; step; down. - now apply eqitF_inv_Tau. -Qed. - -(* other properties *) - - - -Section eqit_inv. - -Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. -Context {sim : itree E R1 -> itree E R2 -> Prop}. - -Notation eqit__ t1_ t2_ := - match _observe t1_, _observe t2_ with - | RetF r1, RetF r2 => RR r1 r2 - | VisF e1 k1, VisF e2 k2 => - exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2 - | RetF _, VisF _ _ | VisF _ _, RetF _ => False - | TauF t1, TauF t2 => eqit RR b1 b2 t1 t2 - | TauF t1, _ => - if b1 then eqit RR b1 b2 t1 t2_ - else False - | _, TauF t2 => - if b2 then eqit RR b1 b2 t1_ t2 - else False - end. - - -Lemma eqit_inv t1 t2 : eqit RR b1 b2 t1 t2 -> eqit__ t1 t2. -Proof. - intros H; step in H; down. - genobs t1 ot1; genobs t2 ot2. - inv H; unfold observe in *; simpobs; auto. - - exists eq_refl; cbn; eauto. - - rewrite CHECK in *. - flatten_goal. - 1,3: step; down; unfold observe; simpobs; assumption. - 1: apply eqit_inv_Tau_r; now step. - - rewrite CHECK in *. flatten_goal. - 1,3: step; down; unfold observe; simpobs; assumption. - 1: apply eqit_inv_Tau_l; now step. -Qed. - -End eqit_inv. - +(* Other properties: RTODO sort these *) Lemma eutt_inv_Ret {E R} r1 r2 : (Ret r1: itree E R) ≈ (Ret r2) -> r1 = r2. Proof. @@ -1448,13 +1465,13 @@ Qed. Lemma eqit_Tau_l {E R1 R2 RR} b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR true b2 t1 t2 -> eqit RR true b2 (Tau t1) t2. Proof. - intros. step. econstructor; eauto. step in H. now down. + intros. step. econstructor; eauto. now step in H. Qed. Lemma eqit_Tau_r {E R1 R2 RR} b1 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 true t1 t2 -> eqit RR b1 true t1 (Tau t2). Proof. - intros. step. econstructor; eauto. step in H. now down. + intros. step. econstructor; eauto. now step in H. Qed. Lemma tau_euttge {E R} (t: itree E R) : @@ -1472,7 +1489,7 @@ Qed. Lemma simpobs {E R} {ot} {t: itree E R} (EQ: ot = observe t): t ≅ go ot. Proof. - step. repeat red. simpobs. simpl. subst. backstep. apply Reflexive_eqit; eauto. + step. repeat red. simpobs. simpl. subst. unstep. apply Reflexive_eqit; eauto. Qed. (** *** Transitivity properties *) @@ -1534,7 +1551,7 @@ repeat intro; unfold flip, eq_itree in *. (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). (* first diagonal *) - specialize (eqit_trans _ _ _ _ _ _ _ H4 H1) as Hdiag_weak. + specialize (eqit_trans H4 H1) as Hdiag_weak. assert (eqit RS b1 b2 x y0) as Hdiag by (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). @@ -1581,7 +1598,7 @@ Qed. Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): (Ret r1) ≈ t2 -> t2 ≳ (Ret r1). Proof. - intros Heutt. step in Heutt. down. + intros Heutt. step in Heutt. rewrite itree_eta. remember (observe (Ret r1)). genobs t2 ot2. @@ -1596,7 +1613,7 @@ Qed. Lemma eutt_inv_Ret_r {E R} (t1: itree E R) (r2: R): t1 ≈ (Ret r2) -> t1 ≳ (Ret r2). Proof. - intros Heutt. step in Heutt. down. + intros Heutt. step in Heutt. rewrite itree_eta. remember (observe (Ret r2)); genobs t1 ot1; remember {| _observe := ot1 |}. hinduction Heutt before R; intros; inv Heqi. @@ -1667,14 +1684,14 @@ Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : eqit RR b1 b2 (Tau t1) (Tau t2) <-> eqit RR b1 b2 t1 t2. Proof. split; intros H. - - step in H. stepdown. + - step in H. step. move H before RR. revert_until H. remember (observe (Tau t1)). remember (observe (Tau t2)). genobs t1 ot1. genobs t2 ot2. hinduction H before RR; intros; inv Heqi; try inv Heqi0. - + now backstep. + + now unstep. + inv H. * taul. eapply IHeqitF; eauto. * taul. eapply IHeqitF; eauto. @@ -1732,19 +1749,19 @@ Lemma eqit_clo_bind {RS} b1 b2 : Proof. repeat intro. inv H. - unfold eqit. backstep. + unfold eqit. unstep. (* need strong CIH *) revert EQV; revert t1 t2. coinduction c CIH; intros. - step in EQV. down in EQV. + step in EQV. + icbn. genobs t1 ot1. - genobs t2 ot2. + genobs t2 ot2. hinduction EQV before RR; intros; try easy. - all: down. (* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) - + backstep. + + step. now apply REL0. (* taus *) + constructor. @@ -1886,7 +1903,7 @@ Add Parametric Morphism {E R1}: as eqitF_cong_eqit. Proof. red; intros. - backstep. rewrite H. rewrite H0. now step. + unstep. rewrite H. rewrite H0. now step. Qed. @@ -1975,7 +1992,7 @@ Proof. coinduction c CIH. intros. desobs s H; down; cbn; simpobs. - 1: backstep. reflexivity. + 1: unstep. reflexivity. all: constructor; intros; eapply elem_observing_proper. all: try eapply CIH. all: constructor. @@ -2078,7 +2095,7 @@ Lemma eqit_inv_bind_ret: @eqit E R1 R2 RR b1 b2 (kb a) (Ret b). Proof. intros. - stepdown in H. + step in H. remember (observe (ITree.bind ma kb)) as otl. remember (Ret b) as retb. remember (observe retb) as tr. @@ -2096,13 +2113,13 @@ Proof. destruct (observe ma) eqn:Ema; try discriminate. + exists r. split. * rewrite itree_eta, Ema. reflexivity. - * stepdown. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + * step. unfold observe at 1; unfold _observe. rewrite <- Heqotl. constructor; auto. + inv Heqotl. edestruct IHeqitF; eauto. exists x. destruct H0. split; eauto. - stepdown; rewrite Ema. taul. - now backstep. + step; rewrite Ema. taul. + now unstep. Qed. Lemma eutt_inv_bind_ret: @@ -2143,7 +2160,7 @@ Lemma eqit_inv_bind_vis : forall (x:X), eqit RR b1 b2 (ITree.bind (kxa x) kab) (kxc x)) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Vis e kxc)). Proof. - intros. stepdown in H. + intros. step in H. remember (observe (ITree.bind ma kab)) as tl. remember (Vis e kxc) as vis. remember (observe vis) as tr. @@ -2152,8 +2169,8 @@ Proof. - intros. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right. exists r. split. - * step; down. rewrite Ema. constructor. auto. - * step; down. unfold observe at 1; unfold _observe. rewrite <- Heqtl. + * step; rewrite Ema. constructor. auto. + * step; unfold observe at 1; unfold _observe. rewrite <- Heqtl. simpobs. constructor; auto. + left. symmetry in Heqtl. @@ -2163,14 +2180,14 @@ Proof. cbn in Heqtr. inv_eq_VisF Heqtr. exists k. split. - * step; down. rewrite Ema. constructor. down. reflexivity. + * step; rewrite Ema. constructor. reflexivity. * auto. - intros. subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn: Ema; try discriminate. + right; exists r; split. * rewrite itree_eta, Ema; reflexivity. - * stepdown. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + * step. unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor; auto. + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ _ eq_refl eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. @@ -2206,7 +2223,7 @@ Lemma eqit_inv_bind_tau: (exists (ma' : itree E A), eqit eq b1 b2 ma (Tau ma') /\ eqit RR b1 b2 (ITree.bind ma' kab) tc) \/ (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Tau tc)). Proof. - intros. stepdown in H. + intros. step in H. remember (observe (ITree.bind ma kab)) as tl. remember (Tau tc) as tau. remember (observe tau) as tr. @@ -2260,7 +2277,7 @@ Lemma eutt_Ret_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R1), eutt RR (Ret v) (@ITree.spin E R2) -> False. Proof. intros. - stepdown in H. + step in H. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -2274,7 +2291,7 @@ Lemma eutt_spin_Ret_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R2), eutt RR (@ITree.spin E R1) (Ret v) -> False. Proof. intros. - stepdown in H. + step in H. remember (observe (Ret v)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -2288,7 +2305,7 @@ Lemma eutt_Vis_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k eutt RR (Vis e k) (@ITree.spin E R2) -> False. Proof. intros. - stepdown in H. + step in H. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -2302,7 +2319,7 @@ Lemma eutt_spin_Vis_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k eutt RR (@ITree.spin E R1) (Vis e k) -> False. Proof. intros. - stepdown in H. + step in H. remember (observe (Vis e k)) as x. remember (observe (ITree.spin)) as sp. revert Heqx Heqsp. @@ -2396,8 +2413,8 @@ Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. Proper (@euttge E _ _ (@eq R1) ==> @euttge E _ _ (@eq R2) ==> impl) (elem c). repeat intro. apply (b_chain c). - down. - euttsimpl. stepdown in H; stepdown in H0. + + euttsimpl. step in H; step in H0. genobs x otx. genobs y oty. genobs x0 otx0. @@ -2427,8 +2444,8 @@ Proof. typeclasses eauto. apply Transitive_chain. repeat intro. - assert (H1':=H1); backstep in H1'. - assert (H2':=H2); backstep in H2'. + assert (H1':=H1); unstep in H1'. + assert (H2':=H2); unstep in H2'. (* this is just transitivity of (b RS true false (elem c)) again. ugh. *) Abort. @@ -2446,11 +2463,11 @@ Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g eutt RX u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). Proof. - intros. do 2 backstep. + intros. do 2 unstep. revert u v H. coinduction c' CIH. intros. - down. rewrite 2observe_bind. - stepdown in H. induction H; simpobs. + rewrite 2observe_bind. + step in H. induction H; simpobs. (* this seems impossible. we only know (elem c (k x2) (g x2)), from which nothing obvious can be derived. *) - admit. @@ -2470,12 +2487,12 @@ Lemma Proper_eutt_elem_bind X1 X2 Y1 Y2 RX SS u v k g eutt RX u v -> (forall x1 x2, RX x1 x2 -> eutt SS (k x1) (g x2)) -> elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). Proof. - intros. do 2 backstep. + intros. do 2 unstep. revert u v H. coinduction c' CIH. intros. - down. rewrite 2observe_bind. - stepdown in H. induction H; simpobs. - - backstep. now apply H0. + rewrite 2observe_bind. + step in H. induction H; simpobs. + - unstep. now apply H0. - constructor. now apply CIH. - constructor. intros. apply CIH, REL. - taul. rewrite observe_bind. now apply IHeqitF. @@ -2496,15 +2513,15 @@ very little in our theory so far. *) #[global] Instance Transitive_elem_tf R RT (HE : Transitive RT) {c: Chain (@eqit_mon E R R RT true false)}: Transitive (elem c). Proof. apply Transitive_chain. repeat intro. - (* assert (H0':=H0); backstep in H0'. - assert (H1':=H1); backstep in H1'. *) - down. - backstep. + (* assert (H0':=H0); unstep in H0'. + assert (H1':=H1); unstep in H1'. *) + + unstep. revert x y z H0 H1. (* we'll need the coinductive reasoning later: elements of the chain are transitive w.r.t. eqit. *) coinduction c' CIH. intros. - down. genobs z oz. + genobs z oz. (* we begin with induction on t1 ~ t2. in each case, we perform induction on t2 ~ t3. *) hinduction H0 before CIH; intros; subst. @@ -2598,7 +2615,7 @@ Proof. intros. assert (H0':=H0); step in H0'. assert (H1':=H1); step in H1'. - down. + genobs y oc. move H0' before oc. revert_until H0'. @@ -2606,7 +2623,7 @@ Proof. induction H0'; intros; subst; simpobs. - remember (RetF r2). induction H1'; subst; simpobs; try easy; eauto with itree. - stepdown in REL. + step in REL. inv H2. taur. remember (RetF r2). @@ -2621,13 +2638,13 @@ Proof. + remember (TauF t2). (* this should be a tactic *) induction REL; inv Heqi0; try easy; simpobs. - * taur. eapply IHREL0; eauto. now backstep. + * taur. eapply IHREL0; eauto. now unstep. * taur. eapply IHREL; eauto. - (* this part sux *) (* need destruction *) - stepdown in REL. + step in REL. (* τ m2 ← btt elem → y0 @@ -2657,7 +2674,7 @@ btt gfp btt gfp + destruct EQ as [m3 ?]; subst; simpobs. inv H1'; try easy. * constructor. - backstep in REL. + unstep in REL. eapply H; eauto. (* really tricky: we want our inductive conclusions be b (elem) but @@ -2690,13 +2707,13 @@ btt gfp btt gfp shelve. * constructor. inv H2; try congruence. - backstep in REL0. backstep in REL. + unstep in REL0. unstep in REL. (* want H here, need to know more about m2 and y0 *) - eapply H; eauto. now backstep. + eapply H; eauto. now unstep. - remember (VisF e k2). remember (VisF e k1). induction H1'; subst; simpobs; try easy; eauto with itree. - + stepdown in REL0. + + step in REL0. inv H2. taur. remember (VisF e k2). @@ -2717,7 +2734,7 @@ btt gfp btt gfp * remember (TauF t2). (* this should be a tactic *) induction REL0; inv Heqi1; try easy; simpobs. - -- taur. eapply IHREL1; eauto. now backstep. + -- taur. eapply IHREL1; eauto. now unstep. -- taur. eapply IHREL0; eauto. + apply eqitF_inv_VisF_weak in H2. break H2; subst. @@ -2741,7 +2758,7 @@ Proof. unfold euttge, eqit in H, H0. copy H. step in H. copy H0. step in H0. - down. + genobs x ox. genobs y oy. revert_until H. From a9763b004a25e400853c871a38bbf47977f06e10 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Mar 2026 17:14:01 -0400 Subject: [PATCH 077/189] elem proper proof, other fixes --- theories/Basics/Utils.v | 21 +++- theories/Eq/Eqit.v | 260 ++++++++++++++++++++++------------------ 2 files changed, 157 insertions(+), 124 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 5c05cdc4..8a688bbe 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -146,12 +146,21 @@ Lemma pfp_gfp {X} {L : CompleteLattice X} (b : mon X): b (gfp b) <= (gfp b). Proof. apply b_chain. Qed. (* in goal: elem -> b elem -> gfp b -> b gfp *) -Ltac step := -match goal with -| |- context [gfp ?b] => apply (pfp_gfp b) -| |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) -end -. + +Ltac step_ := + match goal with + | |- gfp ?b ?x ?y ?z => apply ((gfp_fp b x y z)) + | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) + | |- gfp ?b ?x ?y => apply ((gfp_fp b x y)) + | |- elem ?R ?x ?y => apply (b_chain R x y) + | |- gfp ?b ?x => apply ((gfp_fp b x)) + | |- elem ?R ?x => apply (b_chain R x) + end. + +Ltac step := match goal with + | |- context [gfp ?b] => apply (pfp_gfp b) + | |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) + end. Ltac step_in h := match type of h with diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e88cdf9e..dda4ce7e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -211,6 +211,8 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco (* chains *) Notation euttC RR := (Chain (eqit_mon RR true true)). +Notation euttgeC RR := (Chain (eqit_mon RR true false)). +Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). (* begin hide *) @@ -291,7 +293,7 @@ Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := (* Since [itrees] are defined with nesting, un-nesting is often needed during a proof to get Rocq to recognize certain terms as valid under certain tactics. Example: [dependent induction] does not work for - [eqit_mon], but it does for [eqitF]. Unfolding down to [eqitF] + [eqit_mon], but it does for [eqitF]. Unfolding icbn to [eqitF] in both hypotheses and the goal is so common that the library uses an internal tactic for doing so all at once. *) @@ -564,19 +566,6 @@ Properties of the chains specialize to the relations: the gfp is an element of t now apply Symmetric_chain; repeat intro; apply Symmetric_eqit_. Qed. - #[global] Instance Transitive_elem (HT : Transitive RR) - {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. - cbn in *. - eapply Transitive_eqit_; eauto. - Qed. - - #[global] Instance Equivalence_elem (HT : Equivalence RR) - {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). - Proof. - constructor; typeclasses eauto. - Qed. @@ -631,7 +620,7 @@ Section eqit_inv. step in H. step. remember (observe (Tau t1)). - (* RTODO: report this bug (rm down) *) + (* RTODO: report this bug (rm icbn) *) induction H; inv Heqi. - step in REL. now taur. - assumption. @@ -645,7 +634,7 @@ Section eqit_inv. step in H. step. remember (observe (Tau t2)). - (* RTODO: report this bug (rm down) *) + (* RTODO: report this bug (rm icbn) *) induction H; inv Heqi. - step in REL. now taul. - taul. now apply IHeqitF. @@ -799,6 +788,31 @@ Qed. Notation "⊙ x" := (observe x) (only printing, at level 10). +Ltac inf_closed_forall_auto := +repeat match goal with + +| [|- inf_closed (fun _ => forall _, _)] => + apply inf_closed_all; intro + end. + +Ltac inf_closed_impl_auto := +repeat match goal with +| [|- inf_closed (fun _ => _ -> _)] => + apply inf_closed_impl; repeat intro; + match goal with [H : _ <= _ |- _] => apply H; auto end + end. + + + +Ltac inf_closed_auto := +repeat match goal with +| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) +end. + +Ltac tower_induction := apply tower; [inf_closed_auto|]. +Tactic Notation "tower" "induction" := tower_induction. + + (* for meeting *) (* learned a lot from this. 1 interesting difference is your induction on eqit_mon ... ̇c, @@ -821,10 +835,8 @@ Notation "⊙ x" := (observe x) (only printing, at level 10). Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. Proof with eauto with itree. unfold Proper, respectful, flip, impl. - apply tower. - - red; cbn; intros ? LE x x' EQx y y' EQy. - intros H??; eapply LE; eauto. - - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. icbn; intros EQ. genobs x' ox'; genobs y' oy'. (* [hinduction] is not sufficient here, because [move] is unable to pass @@ -888,9 +900,9 @@ Proof with eauto with itree. unstep; eapply euttge_tau_inv; eauto. Qed. -Search Chain. + (* here chain_b lifts b to elements of the chain... *) -#[global] Instance euttge_proper_euttC_b {E R1 R2} +#[global] Instance euttge_proper_euttC_mon {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon RR true true (elem c)). Proof. @@ -902,7 +914,7 @@ Qed. (RR : R1 -> R2 -> Prop) (c : Chain (@eqit_mon E _ _ RR true true)): Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eutt RR). Proof. - eapply euttge_proper_euttC with (c := (chain_gfp (@eqit_mon E _ _ RR true true))); eauto. + eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon RR true true))); eauto. Qed. Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): @@ -914,7 +926,6 @@ Proof. hinduction H before x; subst; eauto with itree. Qed. - #[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. @@ -950,7 +961,7 @@ Proof. exact (eq_subH_eutt RR). Qed. -#[global] Instance eq_proper_elem {E R1 R2} +#[global] Instance eq_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. Proof. @@ -960,6 +971,44 @@ Proof. eapply euttge_proper_euttC; eauto. Qed. +#[global] Instance eq_proper_eq_itreeC {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. +Proof. + split; revert_until c; tower induction; intros!; + step in H0; step in H1; icbn in *. + (* this proof is largely uninteresting and is just diagram chase. *) + all: + inv H2; simpobs; try easy; + try genvis e k1 ok1; inv H0; simpobs; try easy; + try genvis e k2 ok2; inv H1; simpobs; try easy; + try do 2 inv_Vis; constructor; intros; try eapply H; eauto; + now rewrite H0, H1. +Qed. + +#[global] Instance eq_proper_eqit {E R1 R2 b1 b2} + (RR : R1 -> R2 -> Prop): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit RR b1 b2). +Proof with eauto with itree. + split; intros; + revert_until RR; + icoinduction c cih; intros; + step in H0; step in H1; step in H; icbn in *. + all: + hinduction H1 before RR; intros; + [ inv H; inv H0; simpobs; try easy; eauto with itree | + inv H; inv H0; simpobs; try easy; eauto with itree | + genvis e k1 ok1; inv H; simpobs; try easy; + genvis e k2 ok2; inv H0; simpobs; try easy; + do 2 inv_Vis; constructor; intros; + specialize (REL1 v); + specialize (REL0 v); + eapply cih; eauto | + inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL | + inv H0; simpobs; try easy;taur; eapply IHeqitF; eauto; now step in REL ]. +Qed. + + (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -993,7 +1042,7 @@ Proof. - genobs t3 ot3. (* need something more: t3 is either a τ node, or it isn't. *) assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). - { destruct ot3; eauto; right; red; intros; inv H. } + { destruct ot3; eauto; right; red; intros; easy. } destruct DEC as [[m3 ?] | EQ]. (* τ - τ case: strip both. *) + subst; simpobs. @@ -1065,6 +1114,22 @@ Proof. repeat intro. now apply TRANS. Qed. + +#[global] Instance Transitive_elem {E R RR} (HT : Transitive RR) + {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). +Proof. + apply Transitive_chain. repeat intro. + cbn in *. + eapply Transitive_eqitF; eauto. +Qed. + +#[global] Instance Equivalence_elem {E R RR} (HT : Equivalence RR) + {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). +Proof. + constructor; typeclasses eauto. +Qed. + + Lemma rcompose_eql {R1 R2} (RR : R1 -> R2 -> Prop) : eq_rel (rcompose eq RR) RR. Proof. split; [intros ?? []; now subst | intros ???; now econstructor]. @@ -1130,6 +1195,19 @@ Proof. constructor; typeclasses eauto. Qed. +#[global] Instance eq_proper_eq {E R1 R2} + (RR : R1 -> R2 -> Prop): + Proper (eq_itree (E := E) eq ==> (eq_itree (R2 := R2) eq) ==> iff) (eq_itree eq). +Proof. + split; + repeat intro. + do 2 (etransitivity; symmetry; eauto). + do 2 (etransitivity; eauto); now symmetry. +Qed. + + + + (* Ongoing sanity tests *) Module Tests. #[local] Parameter E : Type -> Type. @@ -1298,7 +1376,6 @@ will it? need a few more proper instances... maybe wrt going, etc. *) coinduction r cih. (* icoinduction r cih. *) intros. - Unset Printing Notations. fold (@eutt E R1 R1 eq) in H. Fail rewrite H. (* to consider b elem *) @@ -1382,7 +1459,8 @@ Qed. subrelation (@observing E R R eq) (elem c). Proof. repeat intro. - inv H. Unset Printing Notations. + inv H. + (* why? *) Fail step. apply (b_chain c). icbn. rewrite observing_observe. @@ -1494,8 +1572,6 @@ Qed. (** *** Transitivity properties *) -(* Tour 3: Show this proof. *) - Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : @@ -1911,8 +1987,8 @@ Qed. Transitive (elem c). Proof. apply Transitive_chain. - intros R' HR'. - apply Transitive_eqit__ff. + intros R' HR'. icbn. + apply Transitive_eqit_. - congruence. - exact HR'. Qed. @@ -1945,10 +2021,10 @@ Proof. rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). (* need strong CIH *) revert s. - coinduction c CIH. + icoinduction c CIH. intros. (* with eta-reduction in place, we can reduce to base comparisons. *) - desobs s H; down; cbn; simpobs; constructor; intros. + desobs s H; cbn; simpobs; constructor; intros. (* Ret case is easy *) reflexivity. (* the others are more tricky but mostly identical: *) @@ -1989,10 +2065,10 @@ Proof. | [ |- _ ?t0 _ ] => rewrite (itree_eta_ t0); cbn end. revert s k h. - coinduction c CIH. + icoinduction c CIH. intros. - desobs s H; down; cbn; simpobs. - 1: unstep. reflexivity. + desobs s H; cbn; simpobs. + 1: step. reflexivity. all: constructor; intros; eapply elem_observing_proper. all: try eapply CIH. all: constructor. @@ -2119,7 +2195,7 @@ Proof. destruct H0. split; eauto. step; rewrite Ema. taul. - now unstep. + now step in H0. Qed. Lemma eutt_inv_bind_ret: @@ -2191,9 +2267,9 @@ Proof. + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ _ eq_refl eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. - step; down; rewrite Ema; constructor; now step in H0. + step; icbn; rewrite Ema; constructor; now step in H0. * exists a. split; auto. - step; down; rewrite Ema; constructor; now step in H0. + step; icbn; rewrite Ema; constructor; now step in H0. Qed. Lemma eutt_inv_bind_vis: @@ -2232,23 +2308,23 @@ Proof. - inv Heqtr. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * step; down; rewrite Ema; constructor; auto. - * step; down; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + * step; icbn; rewrite Ema; constructor; auto. + * step; icbn; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. - * step; down; rewrite Ema; constructor; apply reflexivity. + * step; icbn; rewrite Ema; constructor; apply reflexivity. * inv Heqtl. inv H0. assumption. - subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * step; down; rewrite Ema; constructor; auto. - * step; down; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + * step; icbn; rewrite Ema; constructor; auto. + * step; icbn; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ eq_refl eq_refl). destruct IHeqitF as [(t0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists t0. split; auto. - step; down; rewrite Ema; constructor 4; now step in H0. + step; icbn; rewrite Ema; constructor 4; now step in H0. * exists a. split; auto. - step; down; rewrite Ema; constructor; now step in H0. + step; icbn; rewrite Ema; constructor; now step in H0. - inv Heqtr. left; exists ma; split. + step; constructor; auto. @@ -2409,45 +2485,12 @@ Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. (* we really need euttge trans *) -(* Goal forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )), -Proper (@euttge E _ _ (@eq R1) ==> @euttge E _ _ (@eq R2) ==> impl) (elem c). - repeat intro. - apply (b_chain c). - - euttsimpl. step in H; step in H0. - genobs x otx. - genobs y oty. - genobs x0 otx0. - genobs y0 oty0. - induction H; try easy; simpobs. - - induction H0. - constructor. - Fail congruence. - shelve. - assert (elem c (Ret r1) (Tau m1)) by admit. - (* should be bogus because elem c (Ret r1) (Tau m2). - But can't invert this. - *) -Search elem. *) - Lemma Equivalence_elem_ff R RS (c : Chain (@eqit_mon E R R RS false false)) : Equivalence RS -> Equivalence (elem c). Proof. constructor; typeclasses eauto. Qed. -Lemma Preorder_elem R RS (c : Chain (@eqit_mon E R R RS true false)) : - PreOrder RS -> PreOrder (elem c). -Proof. - repeat intro. - constructor. - typeclasses eauto. - apply Transitive_chain. - repeat intro. - assert (H1':=H1); unstep in H1'. - assert (H2':=H2); unstep in H2'. - (* this is just transitivity of (b RS true false (elem c)) again. ugh. *) -Abort. Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Reflexive RS -> Reflexive (elem c). @@ -2457,31 +2500,35 @@ Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Symmetric RS -> Symmetric (elem c). Proof. typeclasses eauto. Qed. +Ltac step' := match goal with +| |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) +end. + + +(* For yannick: the elem proper proof *) (* modified: eqit_mon SS b1 b2 -> true true *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g - (c : Chain (eqit_mon SS true true)) : - eutt RX u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> + (c : Chain (eqit_mon SS b1 b2)) : + eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). -Proof. - intros. do 2 unstep. - revert u v H. - coinduction c' CIH. intros. - rewrite 2observe_bind. - step in H. induction H; simpobs. - (* this seems impossible. we only know (elem c (k x2) (g x2)), - from which nothing obvious can be derived. *) - - admit. +Proof. + revert u v. + tower induction. intros. icbn. + rewrite 2observe_bind. + step in H0. induction H0; simpobs. + - now apply H1. (* rest of proof goes through fine: *) - - constructor. now apply CIH. - - constructor. intro. apply CIH. apply REL. + - constructor. eapply H; eauto. intros. + now apply (b_chain x), H1. + - constructor. intro. eapply H. apply REL. + intros. now apply (b_chain x), H1. (* note: we cannot prove these cases for a generic b1 b2 in the chain *) - taul. rewrite observe_bind. eapply IHeqitF; eauto. - taur. rewrite observe_bind. eapply IHeqitF; eauto. -Abort. +Qed. (* we can prove this other version, with the elem c under the forall changed to an eutt: *) - Lemma Proper_eutt_elem_bind X1 X2 Y1 Y2 RX SS u v k g (c : Chain (eqit_mon SS true true)) : eutt RX u v -> (forall x1 x2, RX x1 x2 -> eutt SS (k x1) (g x2)) -> @@ -2569,29 +2616,6 @@ Qed. Notation chain_eq_itree E REL := (Chain (@eqit_mon E _ _ REL false false)). Notation chain_euttge E REL := (Chain (@eqit_mon E _ _ REL true false)). Notation chain_eutt E REL := (Chain (@eqit_mon E _ _ REL true true)). -Ltac inf_closed_forall_auto := -repeat match goal with - -| [|- inf_closed (fun _ => forall _, _)] => - apply inf_closed_all; intro - end. - -Ltac inf_closed_impl_auto := -repeat match goal with -| [|- inf_closed (fun _ => _ -> _)] => - apply inf_closed_impl; repeat intro; - match goal with [H : _ <= _ |- _] => apply H; auto end - end. - - - -Ltac inf_closed_auto := -repeat match goal with -| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) -end. - -Ltac tower_induction := apply tower; [inf_closed_auto|]. -Tactic Notation "tower" "induction" := tower_induction. #[global] Instance euttge_cong_euttge_chain (c : chain_eutt E RR) : From 319b5236f00b576c7c2332b1c9234f4730e23870 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Mar 2026 17:14:01 -0400 Subject: [PATCH 078/189] elem bind proper proof, other fixes --- theories/Basics/Utils.v | 21 +++- theories/Eq/Eqit.v | 260 ++++++++++++++++++++++------------------ 2 files changed, 157 insertions(+), 124 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 5c05cdc4..8a688bbe 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -146,12 +146,21 @@ Lemma pfp_gfp {X} {L : CompleteLattice X} (b : mon X): b (gfp b) <= (gfp b). Proof. apply b_chain. Qed. (* in goal: elem -> b elem -> gfp b -> b gfp *) -Ltac step := -match goal with -| |- context [gfp ?b] => apply (pfp_gfp b) -| |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) -end -. + +Ltac step_ := + match goal with + | |- gfp ?b ?x ?y ?z => apply ((gfp_fp b x y z)) + | |- elem ?R ?x ?y ?z => apply (b_chain R x y z) + | |- gfp ?b ?x ?y => apply ((gfp_fp b x y)) + | |- elem ?R ?x ?y => apply (b_chain R x y) + | |- gfp ?b ?x => apply ((gfp_fp b x)) + | |- elem ?R ?x => apply (b_chain R x) + end. + +Ltac step := match goal with + | |- context [gfp ?b] => apply (pfp_gfp b) + | |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) + end. Ltac step_in h := match type of h with diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e88cdf9e..dda4ce7e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -211,6 +211,8 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco (* chains *) Notation euttC RR := (Chain (eqit_mon RR true true)). +Notation euttgeC RR := (Chain (eqit_mon RR true false)). +Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). (* begin hide *) @@ -291,7 +293,7 @@ Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := (* Since [itrees] are defined with nesting, un-nesting is often needed during a proof to get Rocq to recognize certain terms as valid under certain tactics. Example: [dependent induction] does not work for - [eqit_mon], but it does for [eqitF]. Unfolding down to [eqitF] + [eqit_mon], but it does for [eqitF]. Unfolding icbn to [eqitF] in both hypotheses and the goal is so common that the library uses an internal tactic for doing so all at once. *) @@ -564,19 +566,6 @@ Properties of the chains specialize to the relations: the gfp is an element of t now apply Symmetric_chain; repeat intro; apply Symmetric_eqit_. Qed. - #[global] Instance Transitive_elem (HT : Transitive RR) - {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. - cbn in *. - eapply Transitive_eqit_; eauto. - Qed. - - #[global] Instance Equivalence_elem (HT : Equivalence RR) - {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). - Proof. - constructor; typeclasses eauto. - Qed. @@ -631,7 +620,7 @@ Section eqit_inv. step in H. step. remember (observe (Tau t1)). - (* RTODO: report this bug (rm down) *) + (* RTODO: report this bug (rm icbn) *) induction H; inv Heqi. - step in REL. now taur. - assumption. @@ -645,7 +634,7 @@ Section eqit_inv. step in H. step. remember (observe (Tau t2)). - (* RTODO: report this bug (rm down) *) + (* RTODO: report this bug (rm icbn) *) induction H; inv Heqi. - step in REL. now taul. - taul. now apply IHeqitF. @@ -799,6 +788,31 @@ Qed. Notation "⊙ x" := (observe x) (only printing, at level 10). +Ltac inf_closed_forall_auto := +repeat match goal with + +| [|- inf_closed (fun _ => forall _, _)] => + apply inf_closed_all; intro + end. + +Ltac inf_closed_impl_auto := +repeat match goal with +| [|- inf_closed (fun _ => _ -> _)] => + apply inf_closed_impl; repeat intro; + match goal with [H : _ <= _ |- _] => apply H; auto end + end. + + + +Ltac inf_closed_auto := +repeat match goal with +| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) +end. + +Ltac tower_induction := apply tower; [inf_closed_auto|]. +Tactic Notation "tower" "induction" := tower_induction. + + (* for meeting *) (* learned a lot from this. 1 interesting difference is your induction on eqit_mon ... ̇c, @@ -821,10 +835,8 @@ Notation "⊙ x" := (observe x) (only printing, at level 10). Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. Proof with eauto with itree. unfold Proper, respectful, flip, impl. - apply tower. - - red; cbn; intros ? LE x x' EQx y y' EQy. - intros H??; eapply LE; eauto. - - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. icbn; intros EQ. genobs x' ox'; genobs y' oy'. (* [hinduction] is not sufficient here, because [move] is unable to pass @@ -888,9 +900,9 @@ Proof with eauto with itree. unstep; eapply euttge_tau_inv; eauto. Qed. -Search Chain. + (* here chain_b lifts b to elements of the chain... *) -#[global] Instance euttge_proper_euttC_b {E R1 R2} +#[global] Instance euttge_proper_euttC_mon {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon RR true true (elem c)). Proof. @@ -902,7 +914,7 @@ Qed. (RR : R1 -> R2 -> Prop) (c : Chain (@eqit_mon E _ _ RR true true)): Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eutt RR). Proof. - eapply euttge_proper_euttC with (c := (chain_gfp (@eqit_mon E _ _ RR true true))); eauto. + eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon RR true true))); eauto. Qed. Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): @@ -914,7 +926,6 @@ Proof. hinduction H before x; subst; eauto with itree. Qed. - #[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. @@ -950,7 +961,7 @@ Proof. exact (eq_subH_eutt RR). Qed. -#[global] Instance eq_proper_elem {E R1 R2} +#[global] Instance eq_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. Proof. @@ -960,6 +971,44 @@ Proof. eapply euttge_proper_euttC; eauto. Qed. +#[global] Instance eq_proper_eq_itreeC {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. +Proof. + split; revert_until c; tower induction; intros!; + step in H0; step in H1; icbn in *. + (* this proof is largely uninteresting and is just diagram chase. *) + all: + inv H2; simpobs; try easy; + try genvis e k1 ok1; inv H0; simpobs; try easy; + try genvis e k2 ok2; inv H1; simpobs; try easy; + try do 2 inv_Vis; constructor; intros; try eapply H; eauto; + now rewrite H0, H1. +Qed. + +#[global] Instance eq_proper_eqit {E R1 R2 b1 b2} + (RR : R1 -> R2 -> Prop): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit RR b1 b2). +Proof with eauto with itree. + split; intros; + revert_until RR; + icoinduction c cih; intros; + step in H0; step in H1; step in H; icbn in *. + all: + hinduction H1 before RR; intros; + [ inv H; inv H0; simpobs; try easy; eauto with itree | + inv H; inv H0; simpobs; try easy; eauto with itree | + genvis e k1 ok1; inv H; simpobs; try easy; + genvis e k2 ok2; inv H0; simpobs; try easy; + do 2 inv_Vis; constructor; intros; + specialize (REL1 v); + specialize (REL0 v); + eapply cih; eauto | + inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL | + inv H0; simpobs; try easy;taur; eapply IHeqitF; eauto; now step in REL ]. +Qed. + + (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -993,7 +1042,7 @@ Proof. - genobs t3 ot3. (* need something more: t3 is either a τ node, or it isn't. *) assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). - { destruct ot3; eauto; right; red; intros; inv H. } + { destruct ot3; eauto; right; red; intros; easy. } destruct DEC as [[m3 ?] | EQ]. (* τ - τ case: strip both. *) + subst; simpobs. @@ -1065,6 +1114,22 @@ Proof. repeat intro. now apply TRANS. Qed. + +#[global] Instance Transitive_elem {E R RR} (HT : Transitive RR) + {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). +Proof. + apply Transitive_chain. repeat intro. + cbn in *. + eapply Transitive_eqitF; eauto. +Qed. + +#[global] Instance Equivalence_elem {E R RR} (HT : Equivalence RR) + {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). +Proof. + constructor; typeclasses eauto. +Qed. + + Lemma rcompose_eql {R1 R2} (RR : R1 -> R2 -> Prop) : eq_rel (rcompose eq RR) RR. Proof. split; [intros ?? []; now subst | intros ???; now econstructor]. @@ -1130,6 +1195,19 @@ Proof. constructor; typeclasses eauto. Qed. +#[global] Instance eq_proper_eq {E R1 R2} + (RR : R1 -> R2 -> Prop): + Proper (eq_itree (E := E) eq ==> (eq_itree (R2 := R2) eq) ==> iff) (eq_itree eq). +Proof. + split; + repeat intro. + do 2 (etransitivity; symmetry; eauto). + do 2 (etransitivity; eauto); now symmetry. +Qed. + + + + (* Ongoing sanity tests *) Module Tests. #[local] Parameter E : Type -> Type. @@ -1298,7 +1376,6 @@ will it? need a few more proper instances... maybe wrt going, etc. *) coinduction r cih. (* icoinduction r cih. *) intros. - Unset Printing Notations. fold (@eutt E R1 R1 eq) in H. Fail rewrite H. (* to consider b elem *) @@ -1382,7 +1459,8 @@ Qed. subrelation (@observing E R R eq) (elem c). Proof. repeat intro. - inv H. Unset Printing Notations. + inv H. + (* why? *) Fail step. apply (b_chain c). icbn. rewrite observing_observe. @@ -1494,8 +1572,6 @@ Qed. (** *** Transitivity properties *) -(* Tour 3: Show this proof. *) - Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : @@ -1911,8 +1987,8 @@ Qed. Transitive (elem c). Proof. apply Transitive_chain. - intros R' HR'. - apply Transitive_eqit__ff. + intros R' HR'. icbn. + apply Transitive_eqit_. - congruence. - exact HR'. Qed. @@ -1945,10 +2021,10 @@ Proof. rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). (* need strong CIH *) revert s. - coinduction c CIH. + icoinduction c CIH. intros. (* with eta-reduction in place, we can reduce to base comparisons. *) - desobs s H; down; cbn; simpobs; constructor; intros. + desobs s H; cbn; simpobs; constructor; intros. (* Ret case is easy *) reflexivity. (* the others are more tricky but mostly identical: *) @@ -1989,10 +2065,10 @@ Proof. | [ |- _ ?t0 _ ] => rewrite (itree_eta_ t0); cbn end. revert s k h. - coinduction c CIH. + icoinduction c CIH. intros. - desobs s H; down; cbn; simpobs. - 1: unstep. reflexivity. + desobs s H; cbn; simpobs. + 1: step. reflexivity. all: constructor; intros; eapply elem_observing_proper. all: try eapply CIH. all: constructor. @@ -2119,7 +2195,7 @@ Proof. destruct H0. split; eauto. step; rewrite Ema. taul. - now unstep. + now step in H0. Qed. Lemma eutt_inv_bind_ret: @@ -2191,9 +2267,9 @@ Proof. + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ _ eq_refl eq_refl). destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. - step; down; rewrite Ema; constructor; now step in H0. + step; icbn; rewrite Ema; constructor; now step in H0. * exists a. split; auto. - step; down; rewrite Ema; constructor; now step in H0. + step; icbn; rewrite Ema; constructor; now step in H0. Qed. Lemma eutt_inv_bind_vis: @@ -2232,23 +2308,23 @@ Proof. - inv Heqtr. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * step; down; rewrite Ema; constructor; auto. - * step; down; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + * step; icbn; rewrite Ema; constructor; auto. + * step; icbn; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. - * step; down; rewrite Ema; constructor; apply reflexivity. + * step; icbn; rewrite Ema; constructor; apply reflexivity. * inv Heqtl. inv H0. assumption. - subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. + right; exists r; split. - * step; down; rewrite Ema; constructor; auto. - * step; down; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + * step; icbn; rewrite Ema; constructor; auto. + * step; icbn; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ eq_refl eq_refl). destruct IHeqitF as [(t0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists t0. split; auto. - step; down; rewrite Ema; constructor 4; now step in H0. + step; icbn; rewrite Ema; constructor 4; now step in H0. * exists a. split; auto. - step; down; rewrite Ema; constructor; now step in H0. + step; icbn; rewrite Ema; constructor; now step in H0. - inv Heqtr. left; exists ma; split. + step; constructor; auto. @@ -2409,45 +2485,12 @@ Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. (* we really need euttge trans *) -(* Goal forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )), -Proper (@euttge E _ _ (@eq R1) ==> @euttge E _ _ (@eq R2) ==> impl) (elem c). - repeat intro. - apply (b_chain c). - - euttsimpl. step in H; step in H0. - genobs x otx. - genobs y oty. - genobs x0 otx0. - genobs y0 oty0. - induction H; try easy; simpobs. - - induction H0. - constructor. - Fail congruence. - shelve. - assert (elem c (Ret r1) (Tau m1)) by admit. - (* should be bogus because elem c (Ret r1) (Tau m2). - But can't invert this. - *) -Search elem. *) - Lemma Equivalence_elem_ff R RS (c : Chain (@eqit_mon E R R RS false false)) : Equivalence RS -> Equivalence (elem c). Proof. constructor; typeclasses eauto. Qed. -Lemma Preorder_elem R RS (c : Chain (@eqit_mon E R R RS true false)) : - PreOrder RS -> PreOrder (elem c). -Proof. - repeat intro. - constructor. - typeclasses eauto. - apply Transitive_chain. - repeat intro. - assert (H1':=H1); unstep in H1'. - assert (H2':=H2); unstep in H2'. - (* this is just transitivity of (b RS true false (elem c)) again. ugh. *) -Abort. Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Reflexive RS -> Reflexive (elem c). @@ -2457,31 +2500,35 @@ Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Symmetric RS -> Symmetric (elem c). Proof. typeclasses eauto. Qed. +Ltac step' := match goal with +| |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) +end. + + +(* For yannick: the elem proper proof *) (* modified: eqit_mon SS b1 b2 -> true true *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g - (c : Chain (eqit_mon SS true true)) : - eutt RX u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> + (c : Chain (eqit_mon SS b1 b2)) : + eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). -Proof. - intros. do 2 unstep. - revert u v H. - coinduction c' CIH. intros. - rewrite 2observe_bind. - step in H. induction H; simpobs. - (* this seems impossible. we only know (elem c (k x2) (g x2)), - from which nothing obvious can be derived. *) - - admit. +Proof. + revert u v. + tower induction. intros. icbn. + rewrite 2observe_bind. + step in H0. induction H0; simpobs. + - now apply H1. (* rest of proof goes through fine: *) - - constructor. now apply CIH. - - constructor. intro. apply CIH. apply REL. + - constructor. eapply H; eauto. intros. + now apply (b_chain x), H1. + - constructor. intro. eapply H. apply REL. + intros. now apply (b_chain x), H1. (* note: we cannot prove these cases for a generic b1 b2 in the chain *) - taul. rewrite observe_bind. eapply IHeqitF; eauto. - taur. rewrite observe_bind. eapply IHeqitF; eauto. -Abort. +Qed. (* we can prove this other version, with the elem c under the forall changed to an eutt: *) - Lemma Proper_eutt_elem_bind X1 X2 Y1 Y2 RX SS u v k g (c : Chain (eqit_mon SS true true)) : eutt RX u v -> (forall x1 x2, RX x1 x2 -> eutt SS (k x1) (g x2)) -> @@ -2569,29 +2616,6 @@ Qed. Notation chain_eq_itree E REL := (Chain (@eqit_mon E _ _ REL false false)). Notation chain_euttge E REL := (Chain (@eqit_mon E _ _ REL true false)). Notation chain_eutt E REL := (Chain (@eqit_mon E _ _ REL true true)). -Ltac inf_closed_forall_auto := -repeat match goal with - -| [|- inf_closed (fun _ => forall _, _)] => - apply inf_closed_all; intro - end. - -Ltac inf_closed_impl_auto := -repeat match goal with -| [|- inf_closed (fun _ => _ -> _)] => - apply inf_closed_impl; repeat intro; - match goal with [H : _ <= _ |- _] => apply H; auto end - end. - - - -Ltac inf_closed_auto := -repeat match goal with -| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) -end. - -Ltac tower_induction := apply tower; [inf_closed_auto|]. -Tactic Notation "tower" "induction" := tower_induction. #[global] Instance euttge_cong_euttge_chain (c : chain_eutt E RR) : From f5b70c382974bd53f36d1ff1b7ce1adc132f96c5 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Mar 2026 17:29:36 -0400 Subject: [PATCH 079/189] Pushed bind for yannick --- theories/Eq/Eqit.v | 316 +-------------------------------------------- 1 file changed, 7 insertions(+), 309 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index dda4ce7e..96e14071 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1151,34 +1151,6 @@ Proof. now rewrite rcompose_eqr in EQUIV''. Qed. -(* There's no reason to restrict to the monomorphic case except for - [subrelation] only supporting monomorphic relations - *) -(* #[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): - subrelation (@eq_itree E _ _ RR) (euttge RR). -Proof. - red. - icoinduction c CIH. intros. - step in H. - hinduction H before x; subst; eauto with itree. -Qed. - -#[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): - subrelation (@euttge E _ _ RR) (eutt RR). -Proof. - red. - icoinduction c CIH. intros. - step in H. - hinduction H before x; subst; eauto with itree. -Qed. - -#[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): - subrelation (@eq_itree E _ _ RR) (eutt RR). -Proof. - intros ?? H; apply euttge_sub_eutt, eq_sub_euttge, H. -Qed. *) - - #[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). Proof. typeclasses eauto. @@ -2146,7 +2118,6 @@ Ltac tau_steps := tau_steps_left; tau_steps_right. - Ltac force_left_in H := match type of H with _ ?x _ => rewrite (itree_eta x) in H; cbn in H end. @@ -2471,7 +2442,6 @@ RR1 <= RR2, b1 <= b1', ... *) - (* Conjecture chain_mono RR1 RR2 b1 b2 b1' b2' : (* we know from JOACHIM PARROW AND TJARK WEBER 2016 that the companion is monotone. *) @@ -2491,7 +2461,6 @@ Proof. constructor; typeclasses eauto. Qed. - Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Reflexive RS -> Reflexive (elem c). Proof. typeclasses eauto. Qed. @@ -2500,13 +2469,9 @@ Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Symmetric RS -> Symmetric (elem c). Proof. typeclasses eauto. Qed. -Ltac step' := match goal with -| |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) -end. - - -(* For yannick: the elem proper proof *) -(* modified: eqit_mon SS b1 b2 -> true true *) +(* FOR YANNICK: the elem proper proof *) +(* modified: eutt RX u v -> eqit RX b1 b2 u v. otherwise you get stuck +when you need to know something about b1/b2. *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g (c : Chain (eqit_mon SS b1 b2)) : eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> @@ -2517,285 +2482,18 @@ Proof. rewrite 2observe_bind. step in H0. induction H0; simpobs. - now apply H1. - (* rest of proof goes through fine: *) - - constructor. eapply H; eauto. intros. + - constructor. eapply H; eauto. intros. + (* `step` tactic fails here as there are 2 chains *) + now apply (b_chain x), H1. + - constructor. intro. eapply H; eauto. intros. now apply (b_chain x), H1. - - constructor. intro. eapply H. apply REL. - intros. now apply (b_chain x), H1. (* note: we cannot prove these cases for a generic b1 b2 in the chain *) - taul. rewrite observe_bind. eapply IHeqitF; eauto. - taur. rewrite observe_bind. eapply IHeqitF; eauto. Qed. -(* we can prove this other version, with the elem c under the forall -changed to an eutt: *) -Lemma Proper_eutt_elem_bind X1 X2 Y1 Y2 RX SS u v k g - (c : Chain (eqit_mon SS true true)) : - eutt RX u v -> (forall x1 x2, RX x1 x2 -> eutt SS (k x1) (g x2)) -> - elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). -Proof. - intros. do 2 unstep. - revert u v H. - coinduction c' CIH. intros. - rewrite 2observe_bind. - step in H. induction H; simpobs. - - unstep. now apply H0. - - constructor. now apply CIH. - - constructor. intros. apply CIH, REL. - - taul. rewrite observe_bind. now apply IHeqitF. - - taur. rewrite observe_bind. now apply IHeqitF. -Qed. - (* We can't state this nicely as a Proper relation, since proper instances need to have subcomponents that share types. eutt RX violates this, as u and v are of different types. *) -(* This being proven, proving things about elem c is actually quite weak: it is -the 'most random' or 'least informative' relation in our story. Proving things -about the underlying functor or its gfp are both informative (and help prove -things about elem). But which can be derived from elem c for a specific c is -very little in our theory so far. *) - - -#[global] Instance Transitive_elem_tf R RT (HE : Transitive RT) {c: Chain (@eqit_mon E R R RT true false)}: Transitive (elem c). - Proof. - apply Transitive_chain. repeat intro. - (* assert (H0':=H0); unstep in H0'. - assert (H1':=H1); unstep in H1'. *) - - unstep. - revert x y z H0 H1. - (* we'll need the coinductive reasoning later: elements of the chain - are transitive w.r.t. eqit. *) - coinduction c' CIH. intros. - genobs z oz. - (* we begin with induction on t1 ~ t2. - in each case, we perform induction on t2 ~ t3. *) - hinduction H0 before CIH; intros; subst. - (* Ret, straightforward *) - - remember (RetF r2) as ot. - hinduction H1 before CIH; intros; inv Heqot; eauto with itree. - - genobs z oz. - (* need something more: t3 is either a τ node, or it isn't. *) - assert (DEC: (exists m3, oz = TauF m3) \/ (forall m3, oz <> TauF m3)). - { destruct oz; eauto; right; red; intros; easy. } - destruct DEC as [EQ | EQ]. - + destruct EQ as [m3 ?]; subst; simpobs. - (* τ - τ case: strip both. *) - econstructor. - eapply CIH; eauto. - (* we're stuck here: elem R0 m1 m2 tells us nothing. *) - admit. - (* we're stuck here too: b (elem) is too weak for our inversion lemma. *) - admit. - (* τ - ̸τ : we do further case analysis. *) - + inv H1; try (exfalso; eapply EQ; eauto; fail). - hinduction REL0 before CIH; intros; try (exfalso; eapply EQ; eauto; fail). - (* stuck here now. *) - admit. - admit. - admit. - - remember (VisF e k2) as ot. - hinduction H1 before CIH; intros; try discriminate; [ inv_Vis ]. - constructor. intro. - eapply CIH. - (* stuck. *) - admit. admit. - - eauto with itree. - - remember (TauF t2) as ot. - genobs z ot3. - hinduction H1 before CIH; intros; try inversion Heqot; try easy; subst. - Abort. - - -Lemma PreOrder_euttge R : PreOrder (@euttge E R R eq). -Proof. - constructor; typeclasses eauto. -Qed. - -Notation chain_eq_itree E REL := (Chain (@eqit_mon E _ _ REL false false)). -Notation chain_euttge E REL := (Chain (@eqit_mon E _ _ REL true false)). -Notation chain_eutt E REL := (Chain (@eqit_mon E _ _ REL true true)). - -#[global] Instance euttge_cong_euttge_chain - (c : chain_eutt E RR) : -Proper (euttge eq ==> euttge eq ==> flip impl) (elem c). -Proof. - - unfold Proper, respectful, flip, impl. - tower induction. - - (* - y ← btt elem → y0 - ↑ ↑ - btf gfp btf gfp - x0 ← ?btt elem → x1 -*) - -(* need trans btf eq gfp and btt eq elem *) - - -(* this is the biggest proof of all time *) - intros. - assert (H0':=H0); step in H0'. - assert (H1':=H1); step in H1'. - - genobs y oc. - move H0' before oc. - revert_until H0'. - - induction H0'; intros; subst; simpobs. - - remember (RetF r2). - induction H1'; subst; simpobs; try easy; eauto with itree. - step in REL. - inv H2. - taur. - remember (RetF r2). - genobs m2 om2. - revert m1 REL. - move REL0 before i. revert_until REL0. - hinduction REL0 before i; intros; try easy; simpobs. - + remember (RetF r0). - induction REL0; inv Heqi0; subst; simpobs. - * now constructor. - * taur. eapply IHREL0; eauto. - + remember (TauF t2). - (* this should be a tactic *) - induction REL; inv Heqi0; try easy; simpobs. - * taur. eapply IHREL0; eauto. now unstep. - * taur. eapply IHREL; eauto. - - - (* this part sux *) - - (* need destruction *) - step in REL. - - (* - τ m2 ← btt elem → y0 - m2 ↑ - ↑ | -btf gfp btf gfp - | | - m1 ← ?btt elem → x1 -*) - -(* by mono: *) - - (* - τ m2 ← btt elem → τ m3 - ↑ ↑ -btt gfp btt gfp - ↓ ↓ - τ m1 ← ?btt elem → x1 -*) - - genobs y0 oy0. - (* need something more: t3 is either a τ node, or it isn't. *) - assert (DEC: (exists m3, oy0 = TauF m3) \/ (forall m3, oy0 <> TauF m3)). - { destruct oy0; eauto; right; red; intros; easy. } - destruct DEC as [EQ | EQ]. - (* τ - τ case: strip both. *) - + destruct EQ as [m3 ?]; subst; simpobs. - inv H1'; try easy. - * constructor. - unstep in REL. - eapply H; eauto. - (* really tricky: we want our - inductive conclusions be b (elem) but - we want our goal to stay as elem *) - remember (TauF m2). - remember (TauF m3). - (* consider messing with elem before induction *) - hinduction H2 before H; intros; inv Heqi0; try inv Heqi; try easy. - (* probably true but hard to prove *) - -- shelve. - -- shelve. - (* same here, but probably looks similar to above *) - * shelve. - (* τ - ̸τ : we do further case analysis. *) - + inv H1'; try (exfalso; eapply EQ; eauto; fail). - * taul. - remember (TauF m2). - (* pattern: do something with H2, or with REL? - going to be same in RET and VIS; we will use congruence. - *) - shelve. - (* hinduction REL before H; intros; inv Heqi; eauto with itree. *) - * taul. remember (TauF m2) as ot. - (* need strong general IH but not too strong *) - revert H2. intros H2. - (* this is just a fancy inversion *) - inv H2; simpobs; try easy. - inv H5. - (* again, we're here *) - shelve. - * constructor. - inv H2; try congruence. - unstep in REL0. unstep in REL. - (* want H here, need to know more about m2 and y0 *) - eapply H; eauto. now unstep. - - remember (VisF e k2). - remember (VisF e k1). - induction H1'; subst; simpobs; try easy; eauto with itree. - + step in REL0. - inv H2. - taur. - remember (VisF e k2). - remember (VisF e k1). - genobs m2 om2. - revert m1 REL0. - move REL1 before i. revert_until REL1. - induction REL1; intros; try easy; simpobs. - * remember (VisF e0 k0). - remember (VisF e0 k3). - induction REL1; try solve [inv Heqi2]; subst; simpobs. - -- do 2 inv_Vis. constructor. - intro v. - specialize (REL v). - specialize (REL1 v). - eapply H; eauto. - -- taur. eapply IHREL1; eauto. - * remember (TauF t2). - (* this should be a tactic *) - induction REL0; inv Heqi1; try easy; simpobs. - -- taur. eapply IHREL1; eauto. now unstep. - -- taur. eapply IHREL0; eauto. - + apply eqitF_inv_VisF_weak in H2. - break H2; subst. - eapply eqitF_VisF_gen; eauto. - intro v. - specialize (REL v). - specialize (REL0 v). - eapply H; eauto. - - taul. eapply IHH0'; eauto. - - easy. -Abort. - -(* This weaker version also fails in the same way: *) -#[global] Instance euttge_cong_euttge_chain R RS - (TRANS : Transitive RS) - (c : Chain (eqit_mon RS true false )) : -Proper (euttge RS ==> @euttge E R R RS ==> flip impl) (elem c). -Proof. - repeat intro. - accumulate H2. - unfold euttge, eqit in H, H0. - copy H. step in H. - copy H0. step in H0. - - genobs x ox. - genobs y oy. - revert_until H. - induction H; intros; subst; simpobs. - - remember (RetF r2). - genobs x0 ox0. - genobs y0 oy0. - induction H0; subst; simpobs. - constructor; etransitivity; eauto. - (* stuck here: we only know things about elem again *) - shelve. - (* and same deeper problem with bogus cases: elem does not - discriminate Ret to be related to Tau. *) -Abort. - End eqit_elem. From 923f8ecdd06a31b5eff83813bd81fc08734f403f Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Mar 2026 17:34:02 -0400 Subject: [PATCH 080/189] Removed some git garbage --- theories/Eq/Eqit.v | 125 --------------------------------------------- 1 file changed, 125 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index bee53c52..5d55dd1b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -213,8 +213,6 @@ Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_sco Notation euttC RR := (Chain (eqit_mon RR true true)). Notation euttgeC RR := (Chain (eqit_mon RR true false)). Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). -Notation euttgeC RR := (Chain (eqit_mon RR true false)). -Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). (* begin hide *) @@ -817,32 +815,6 @@ end. Ltac tower_induction := apply tower; [inf_closed_auto|]. Tactic Notation "tower" "induction" := tower_induction. - -Ltac inf_closed_forall_auto := -repeat match goal with - -| [|- inf_closed (fun _ => forall _, _)] => - apply inf_closed_all; intro - end. - -Ltac inf_closed_impl_auto := -repeat match goal with -| [|- inf_closed (fun _ => _ -> _)] => - apply inf_closed_impl; repeat intro; - match goal with [H : _ <= _ |- _] => apply H; auto end - end. - - - -Ltac inf_closed_auto := -repeat match goal with -| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) -end. - -Ltac tower_induction := apply tower; [inf_closed_auto|]. -Tactic Notation "tower" "induction" := tower_induction. - - (* for meeting *) (* learned a lot from this. 1 interesting difference is your induction on eqit_mon ... ̇c, @@ -866,8 +838,6 @@ Tactic Notation "tower" "induction" := tower_induction. Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - tower induction. clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. icbn; intros EQ. genobs x' ox'; genobs y' oy'. @@ -935,7 +905,6 @@ Qed. (* here chain_b lifts b to elements of the chain... *) -#[global] Instance euttge_proper_euttC_mon {E R1 R2} #[global] Instance euttge_proper_euttC_mon {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon RR true true (elem c)). @@ -949,7 +918,6 @@ Qed. Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eutt RR). Proof. eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon RR true true))); eauto. - eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon RR true true))); eauto. Qed. Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): @@ -996,7 +964,6 @@ Proof. exact (eq_subH_eutt RR). Qed. -#[global] Instance eq_proper_euttC {E R1 R2} #[global] Instance eq_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. @@ -1045,44 +1012,6 @@ Proof with eauto with itree. Qed. -#[global] Instance eq_proper_eq_itreeC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. -Proof. - split; revert_until c; tower induction; intros!; - step in H0; step in H1; icbn in *. - (* this proof is largely uninteresting and is just diagram chase. *) - all: - inv H2; simpobs; try easy; - try genvis e k1 ok1; inv H0; simpobs; try easy; - try genvis e k2 ok2; inv H1; simpobs; try easy; - try do 2 inv_Vis; constructor; intros; try eapply H; eauto; - now rewrite H0, H1. -Qed. - -#[global] Instance eq_proper_eqit {E R1 R2 b1 b2} - (RR : R1 -> R2 -> Prop): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit RR b1 b2). -Proof with eauto with itree. - split; intros; - revert_until RR; - icoinduction c cih; intros; - step in H0; step in H1; step in H; icbn in *. - all: - hinduction H1 before RR; intros; - [ inv H; inv H0; simpobs; try easy; eauto with itree | - inv H; inv H0; simpobs; try easy; eauto with itree | - genvis e k1 ok1; inv H; simpobs; try easy; - genvis e k2 ok2; inv H0; simpobs; try easy; - do 2 inv_Vis; constructor; intros; - specialize (REL1 v); - specialize (REL0 v); - eapply cih; eauto | - inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL | - inv H0; simpobs; try easy;taur; eapply IHeqitF; eauto; now step in REL ]. -Qed. - - (** *** Transitivity properties *) Inductive rcompose {R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) (r1: R1) (r3: R3) : Prop := @@ -1117,7 +1046,6 @@ Proof. (* need something more: t3 is either a τ node, or it isn't. *) assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). { destruct ot3; eauto; right; red; intros; easy. } - { destruct ot3; eauto; right; red; intros; easy. } destruct DEC as [[m3 ?] | EQ]. (* τ - τ case: strip both. *) + subst; simpobs. @@ -1204,23 +1132,6 @@ Proof. constructor; typeclasses eauto. Qed. - - -#[global] Instance Transitive_elem {E R RR} (HT : Transitive RR) - {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). -Proof. - apply Transitive_chain. repeat intro. - cbn in *. - eapply Transitive_eqitF; eauto. -Qed. - -#[global] Instance Equivalence_elem {E R RR} (HT : Equivalence RR) - {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). -Proof. - constructor; typeclasses eauto. -Qed. - - Lemma rcompose_eql {R1 R2} (RR : R1 -> R2 -> Prop) : eq_rel (rcompose eq RR) RR. Proof. split; [intros ?? []; now subst | intros ???; now econstructor]. @@ -1269,21 +1180,6 @@ Proof. Qed. - - -#[global] Instance eq_proper_eq {E R1 R2} - (RR : R1 -> R2 -> Prop): - Proper (eq_itree (E := E) eq ==> (eq_itree (R2 := R2) eq) ==> iff) (eq_itree eq). -Proof. - split; - repeat intro. - do 2 (etransitivity; symmetry; eauto). - do 2 (etransitivity; eauto); now symmetry. -Qed. - - - - (* Ongoing sanity tests *) Module Tests. #[local] Parameter E : Type -> Type. @@ -1537,8 +1433,6 @@ Proof. repeat intro. inv H. (* why? *) - inv H. - (* why? *) Fail step. apply (b_chain c). icbn. rewrite observing_observe. @@ -2067,8 +1961,6 @@ Proof. apply Transitive_chain. intros R' HR'. icbn. apply Transitive_eqit_. - intros R' HR'. icbn. - apply Transitive_eqit_. - congruence. - exact HR'. Qed. @@ -2102,11 +1994,9 @@ Proof. (* need strong CIH *) revert s. icoinduction c CIH. - icoinduction c CIH. intros. (* with eta-reduction in place, we can reduce to base comparisons. *) desobs s H; cbn; simpobs; constructor; intros. - desobs s H; cbn; simpobs; constructor; intros. (* Ret case is easy *) reflexivity. (* the others are more tricky but mostly identical: *) @@ -2148,12 +2038,9 @@ Proof. end. revert s k h. icoinduction c CIH. - icoinduction c CIH. intros. desobs s H; cbn; simpobs. 1: step. reflexivity. - desobs s H; cbn; simpobs. - 1: step. reflexivity. all: constructor; intros; eapply elem_observing_proper. all: try eapply CIH. all: constructor. @@ -2280,7 +2167,6 @@ Proof. split; eauto. step; rewrite Ema. taul. now step in H0. - now step in H0. Qed. Lemma eutt_inv_bind_ret: @@ -2353,10 +2239,8 @@ Proof. destruct IHeqitF as [(k0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists k0. split; auto. step; icbn; rewrite Ema; constructor; now step in H0. - step; icbn; rewrite Ema; constructor; now step in H0. * exists a. split; auto. step; icbn; rewrite Ema; constructor; now step in H0. - step; icbn; rewrite Ema; constructor; now step in H0. Qed. Lemma eutt_inv_bind_vis: @@ -2397,10 +2281,7 @@ Proof. + right; exists r; split. * step; icbn; rewrite Ema; constructor; auto. * step; icbn; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. - * step; icbn; rewrite Ema; constructor; auto. - * step; icbn; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. - * step; icbn; rewrite Ema; constructor; apply reflexivity. * step; icbn; rewrite Ema; constructor; apply reflexivity. * inv Heqtl. inv H0. assumption. - subst. @@ -2409,16 +2290,12 @@ Proof. + right; exists r; split. * step; icbn; rewrite Ema; constructor; auto. * step; icbn; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. - * step; icbn; rewrite Ema; constructor; auto. - * step; icbn; unfold observe at 1; unfold _observe; rewrite <- Heqtl. constructor 4; auto. + inv Heqtl. specialize (IHeqitF _ _ eq_refl _ _ eq_refl eq_refl). destruct IHeqitF as [(t0 & ? & ?) | (a & ? & ?)]; [left | right]. * exists t0. split; auto. step; icbn; rewrite Ema; constructor 4; now step in H0. - step; icbn; rewrite Ema; constructor 4; now step in H0. * exists a. split; auto. step; icbn; rewrite Ema; constructor; now step in H0. - step; icbn; rewrite Ema; constructor; now step in H0. - inv Heqtr. left; exists ma; split. + step; constructor; auto. @@ -2596,8 +2473,6 @@ Proof. typeclasses eauto. Qed. (* modified: eutt RX u v -> eqit RX b1 b2 u v. otherwise you get stuck when you need to know something about b1/b2. *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g - (c : Chain (eqit_mon SS b1 b2)) : - eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> (c : Chain (eqit_mon SS b1 b2)) : eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). From e4f102ee584b01e60f37124b19fa645bb8e29418 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Mar 2026 20:27:52 -0400 Subject: [PATCH 081/189] Some new proofs, improvements to subrelation proofs --- theories/Basics/Utils.v | 2 +- theories/Eq/Eqit.v | 407 ++++++++++++++-------------------------- 2 files changed, 139 insertions(+), 270 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 8a688bbe..71a0194c 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -159,7 +159,7 @@ Ltac step_ := Ltac step := match goal with | |- context [gfp ?b] => apply (pfp_gfp b) - | |- context [elem ?R] => apply (b_chain R) || apply (gfp_bchain R) + | |- context [elem ?R] => first [apply (b_chain R) | apply (gfp_bchain R)] end. Ltac step_in h := diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 5d55dd1b..2c8db270 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -8,11 +8,11 @@ R1 -> R2 -> Prop - (* 2. next: this: euttge RR is proper wrt eq_itree - make sure this works *) - rename and redo sections -- chain_b proof - keep building tests until rewriting robustness is clear - organize file *) + (** * Strong bisimulation *) (** Because [itree] is a coinductive type, the naive [eq] relation @@ -51,12 +51,6 @@ From ITree Require Import Local Open Scope itree_scope. (* end hide *) -(* RTODO: remove these notes. they will be useful for now. - ------------------------------------------------------------- - -*) - (** ** Coinductive reasoning with Pous' Enhanced Coinduction library *) (** Similarly to the way we deal with cofixpoints explained in @@ -178,64 +172,62 @@ Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. [≅] using [[\cong]] [≈] using [[\approx]] [≳] using [[\gtrsim]] -in tex-mode + in tex-mode + + *) + + Infix "≅⟨ R ⟩" := (eq_itree R) (at level 70) : type_scope. + Infix "≅" := (eq_itree eq) (at level 70) : type_scope. + Infix "{≅⟨ R ⟩}" := (eqitF R false false (elem _)) (at level 70) : type_scope. + Infix "{≅}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : type_scope. + Notation eq_itreeF R := (eqitF R false false). + Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon R false false) _) (at level 70) : type_scope. + Infix "[≅]" := (@elem _ _ (eqit_mon eq false false) _) (at level 70) : type_scope. + + Infix "≈⟨ R ⟩" := (eutt R) (at level 70) : type_scope. + Infix "≈" := (eutt eq) (at level 70) : type_scope. + Infix "{≈⟨ R ⟩}" := (eqitF R true true (elem _)) (at level 70) : type_scope. + Infix "{≈}" := (eqitF eq true true (elem _)) (at level 70) : type_scope. + Notation euttF R := (eqitF R true true). + Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon R true true) _) (at level 70) : type_scope. + Infix "[≈]" := (@elem _ _ (eqit_mon eq true true) _) (at level 70) : type_scope. + + Infix "≳⟨ R ⟩" := (euttge R) (at level 70) : type_scope. + Infix "≳" := (euttge eq) (at level 70) : type_scope. + Infix "{≳⟨ R ⟩}" := (eqitF R true false (elem _)) (at level 70) : type_scope. + Infix "{≳}" := (eqitF eq true false _) (at level 70) : type_scope. + Notation euttgeF R := (eqitF R true false). + Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon R true false) _) (at level 70) : type_scope. + Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. + + (* chains *) + Notation euttC RR := (Chain (eqit_mon RR true true)). + Notation euttgeC RR := (Chain (eqit_mon RR true false)). + Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). + + + (* begin hide *) + #[global] Hint Constructors eqitF : itree. + #[global] Hint Unfold eqit_ : itree. + #[global] Hint Unfold eqit_mon : itree. + #[global] Hint Unfold eqit : itree. + #[global] Hint Unfold eq_itree : itree. + #[global] Hint Unfold eutt : itree. + #[global] Hint Unfold euttge : itree. + (* Alternative notation to the ` with a \dot. Would be good to pick an ascii + one instead maybe? *) + #[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). + (* end hide *) + +(** Tactics *) -Ongoing hesitation: should the [icoinduction] tactic expose a [eqit_mon R b b'] +(* Ongoing hesitation: should the [icoinduction] tactic expose a [eqit_mon R b b'] goal, or directly a [eqitF R b b'] one? -Experimenting with the latter at the moment. - *) - -Infix "≅⟨ R ⟩" := (eq_itree R) (at level 70) : type_scope. -Infix "≅" := (eq_itree eq) (at level 70) : type_scope. -Infix "{≅⟨ R ⟩}" := (eqitF R false false (elem _)) (at level 70) : type_scope. -Infix "{≅}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : type_scope. -Notation eq_itreeF R := (eqitF R false false). -Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon R false false) _) (at level 70) : type_scope. -Infix "[≅]" := (@elem _ _ (eqit_mon eq false false) _) (at level 70) : type_scope. - -Infix "≈⟨ R ⟩" := (eutt R) (at level 70) : type_scope. -Infix "≈" := (eutt eq) (at level 70) : type_scope. -Infix "{≈⟨ R ⟩}" := (eqitF R true true (elem _)) (at level 70) : type_scope. -Infix "{≈}" := (eqitF eq true true (elem _)) (at level 70) : type_scope. -Notation euttF R := (eqitF R true true). -Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon R true true) _) (at level 70) : type_scope. -Infix "[≈]" := (@elem _ _ (eqit_mon eq true true) _) (at level 70) : type_scope. - -Infix "≳⟨ R ⟩" := (euttge R) (at level 70) : type_scope. -Infix "≳" := (euttge eq) (at level 70) : type_scope. -Infix "{≳⟨ R ⟩}" := (eqitF R true false (elem _)) (at level 70) : type_scope. -Infix "{≳}" := (eqitF eq true false _) (at level 70) : type_scope. -Notation euttgeF R := (eqitF R true false). -Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon R true false) _) (at level 70) : type_scope. -Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. - -(* chains *) -Notation euttC RR := (Chain (eqit_mon RR true true)). -Notation euttgeC RR := (Chain (eqit_mon RR true false)). -Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). - - -(* begin hide *) -#[global] Hint Constructors eqitF : itree. -#[global] Hint Unfold eqit_ : itree. -#[global] Hint Unfold eqit_mon : itree. -#[global] Hint Unfold eqit : itree. -#[global] Hint Unfold eq_itree : itree. -#[global] Hint Unfold eutt : itree. -#[global] Hint Unfold euttge : itree. -(* Alternative notation to the ` with a \dot. Would be good to pick an ascii - one instead maybe? *) -#[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). -(* end hide *) - -(** Tactics *) +Experimenting with the latter at the moment. *) (* We first enhance the coinduction tactic to recognize goals that do not have a syntactic match with [gfp _] *) -(* #[local] Ltac iunfold_in h := *) -(* cbn [eqit_mon body] in h; unfold euttge, eq_itree, eutt, eqit in h. *) - #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. @@ -245,11 +237,6 @@ Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). #[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. -(* #[local] Ltac iunfold := *) -(* cbn [eqit_mon body]; unfold euttge, eq_itree, eutt, eqit. *) - -Tactic Notation "unstep" := iunfold; unstep. -Tactic Notation "step" := step; cbn. (* Trick for unfolding only the relevant instances *) #[local] Ltac iunfold_coind := @@ -278,7 +265,8 @@ Ltac refold_in h := Tactic Notation "refold" "in" ident(h) := refold_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. -Tactic Notation "step" := iunfold; step; refold. +Tactic Notation "step" := iunfold; step; cbn; try refold. +Tactic Notation "unstep" := iunfold; unstep. Tactic Notation "step" "in" ident(h) := iunfold in h; step in h; @@ -463,7 +451,7 @@ Qed. (* Note and TODO: if we push [forall R1 R2 RR] below the [gfp], - this and monotony will hold on chains. + this and monotonicity will hold on chains. Meaning, assuming it can typecheck after the generalization, the following are conjectures: [forall (c : Chain (@eqit_mon E)), @@ -471,8 +459,8 @@ Qed. Though this would require to push b1 and b2 below the gfp as well, which sounds highly silly. Alternatively, it would be restricted to b1 = b2. - *) + Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: forall (u : itree E R1) (v : itree E R2), eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. @@ -621,8 +609,6 @@ Section eqit_inv. step in H. step. remember (observe (Tau t1)). - (* RTODO: report this bug (rm icbn) *) - (* RTODO: report this bug (rm icbn) *) induction H; inv Heqi. - step in REL. now taur. - assumption. @@ -636,8 +622,6 @@ Section eqit_inv. step in H. step. remember (observe (Tau t2)). - (* RTODO: report this bug (rm icbn) *) - (* RTODO: report this bug (rm icbn) *) induction H; inv Heqi. - step in REL. now taul. - taul. now apply IHeqitF. @@ -699,63 +683,6 @@ Qed. End eqit_inv. - -#[global] Instance eq_itree_eutt_elem {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. -Proof. - unfold Proper, respectful. - apply tower. - - red; cbn; intros ? LE x x' EQx y y' EQy. - split; intros H??; [symmetry in EQx,EQy |]. - 1,2: eapply LE; eauto. - - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - icbn; split; intros EQ. - + genobs x ox; genobs y oy. - (* [hinduction] is not sufficient here, because [move] is unable to pass - through [ox] to reach [x] *) - revert x x' y y' Heqox Heqoy EQx EQy. - induction EQ; intros. - * inv EQx; inv EQy; try easy; eauto with itree. - * inv EQx; inv EQy; try easy. - constructor; eapply IH. - 3:eauto. - all:symmetry; eauto. - * apply eqitF_inv_VisF_l in EQx as [(? & -> & EQk) | [abs _]]; [| easy]. - apply eqitF_inv_VisF_l in EQy as [(? & -> & EQk') | [abs _]]; [| easy]. - constructor; intros; eapply IH. - 3:eauto. - symmetry; apply EQk. - symmetry; apply EQk'. - * inv EQx; try easy. - taul. - eapply IHEQ; eauto. - now unstep. - * inv EQy; try easy. - taur. - eapply IHEQ; eauto. - now unstep. - + genobs x' ox'; genobs y' oy'. - (* [hinduction] is not sufficient here, because [move] is unable to pass - through [ox] to reach [x] *) - revert x x' y y' Heqox' Heqoy' EQx EQy. - induction EQ; intros. - * inv EQx; inv EQy; try easy; eauto with itree. - * inv EQx; inv EQy; try easy. - now constructor; eapply IH; eauto. - * apply eqitF_inv_VisF_r in EQx as [(? & -> & EQk) | [abs _]]; [| easy]. - apply eqitF_inv_VisF_r in EQy as [(? & -> & EQk') | [abs _]]; [| easy]. - constructor; intros; eapply IH; eauto. - * inv EQx; try easy. - taul. - eapply IHEQ; eauto. - now unstep. - * inv EQy; try easy. - taur. - eapply IHEQ; eauto. - now unstep. -Qed. - Ltac genret r or := remember (RetF r) as or. Ltac gentau t ot := remember (TauF t) as ot. Ltac genvis e k ot := remember (VisF e k) as ot. @@ -923,57 +850,52 @@ Qed. Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): subrelationH (@eq_itree E _ _ RR) (euttge RR). Proof. - red. - icoinduction c CIH. intros. - step in H. - hinduction H before x; subst; eauto with itree. + now apply eqit_mono. Qed. #[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (euttge RR). Proof. - exact (eq_subH_euttge RR). + now apply eqit_mono. Qed. Lemma euttge_subH_eutt {E R1 R2} (RR : R1 -> R2 -> Prop): subrelationH (@euttge E _ _ RR) (eutt RR). Proof. - red. - icoinduction c CIH. intros. - step in H. - hinduction H before x; subst; eauto with itree. + now eapply eqit_mono. Qed. - #[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): subrelation (@euttge E _ _ RR) (eutt RR). Proof. - exact (euttge_subH_eutt RR). + now apply eqit_mono. Qed. Lemma eq_subH_eutt {E R1 R2} (RR : R1 -> R2 -> Prop): subrelationH (@eq_itree E _ _ RR) (eutt RR). Proof. - intros ?? H; apply euttge_subH_eutt, eq_subH_euttge, H. + now apply eqit_mono. Qed. - #[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (eutt RR). Proof. - exact (eq_subH_eutt RR). + now apply eqit_mono. Qed. #[global] Instance eq_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. Proof. - repeat intro. - apply eq_sub_euttge with (RR := eq) in H. - apply eq_sub_euttge with (RR := eq) in H0. - eapply euttge_proper_euttC; eauto. + split; intro. + 1: symmetry in H; symmetry in H0. + all: + apply eq_sub_euttge with (RR := eq) in H; + apply eq_sub_euttge with (RR := eq) in H0; + eapply euttge_proper_euttC; eauto. Qed. + #[global] Instance eq_proper_eq_itreeC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. @@ -1142,15 +1064,22 @@ Proof. Qed. #[global] Instance eutt_cong_eutt_eq {E R1 R2 RS}: - Proper (eutt eq ==> eutt eq ==> flip impl) + Proper (eutt eq ==> eutt eq ==> iff) (@eutt E R1 R2 RS). Proof. - intros t t' EQ1 u u' EQ2 EQUIV. - pose proof eqit_trans EQ1 EQUIV as EQUIV'. - rewrite rcompose_eql in EQUIV'. - symmetry in EQ2. - pose proof eqit_trans EQUIV' EQ2 as EQUIV''. - now rewrite rcompose_eqr in EQUIV''. + repeat red. + intros t t' EQ1 u u' EQ2. + split; intros EQUIV. + - symmetry in EQ1. + pose proof eqit_trans EQ1 EQUIV as EQUIV'. + rewrite rcompose_eql in EQUIV'. + pose proof eqit_trans EQUIV' EQ2 as EQUIV''. + now rewrite rcompose_eqr in EQUIV''. + - pose proof eqit_trans EQ1 EQUIV as EQUIV'. + rewrite rcompose_eql in EQUIV'. + symmetry in EQ2. + pose proof eqit_trans EQUIV' EQ2 as EQUIV''. + now rewrite rcompose_eqr in EQUIV''. Qed. #[global] Instance Equivalence_eutt {E R RR} : Equivalence RR -> Equivalence (@eutt E R R RR). @@ -1180,6 +1109,12 @@ Proof. Qed. +(* RTODO next 3/9: *) +(* eq_itree proper up to all chains *) + + + + (* Ongoing sanity tests *) Module Tests. #[local] Parameter E : Type -> Type. @@ -1191,16 +1126,27 @@ Module Tests. #[local] Parameter (EQUIV1 : t ≈ u). #[local] Parameter (EQ2 : v ≅ w). #[local] Parameter (EQUIV2 : v ≈ w). + #[local] Parameter (GT : v ≳ w). + #[local] Parameter (GT2 : w ≳ v). - Goal eutt RR u v. +Goal eutt RR u v. rewrite EQUIV2. rewrite <- EQ2. - Show Proof. - eapply eq_itree_eutt_elem. + eapply eq_proper_euttC. rewrite <- EQ1. + exact EQ1. + rewrite EQ2, <- EQ2. + exact EQ2. + step. + unstep. + refold. + rewrite <- EQ1. + rewrite <- GT. + rewrite EQ1. + rewrite <- EQUIV1. Abort. - Fail #[local] Parameter (EQUIV : u ≈ v). - #[local] Parameter (GT : v ≳ w). + + #[local] Parameter (EQUIV : u ≈⟨RR⟩ v). (* TODO: have tests work with a relation on leaves. Currently fails, need better instance @@ -1208,36 +1154,45 @@ Abort. (* Test for rewrites in [eutt]: [eq_itree eq], [] *) (* RTODO: These *) - (* Goal t ≈⟨RR⟩ w -> t ≈⟨RR⟩ w. + Goal t ≈⟨RR⟩ w -> t ≈⟨RR⟩ w. intros H. - rewrite EQ. - rewrite EQ in H. - rewrite EQUIV. - rewrite EQUIV in H. + rewrite EQ1. + rewrite EQ1 in H. + rewrite <- EQUIV1. + (* ↕ these are eutt up to eutt *) + rewrite <- EQUIV1 in H. + rewrite <- EQUIV2 in H. + rewrite GT2. + rewrite <- GT2 in H. rewrite GT. - rewrite GT in H. - rewrite <- GT. rewrite <- GT in H. - symmetry. - symmetry in H. - reflexivity. + (* no way to use symmetry: RR cannot be symmetric *) + Fail symmetry. + Fail symmetry in H. + rewrite <- GT. + assumption. Qed. - *) + (* RTODO: These *) - (* Goal t ≅ u -> t ≅ u. + Goal t ≅ u -> t ≅ u. intros H. - rewrite EQ. - rewrite EQ in H. + rewrite EQ1. + rewrite EQ1 in H. symmetry. symmetry in H. reflexivity. - Qed. *) - (* 2. next: this: euttge RR is proper wrt eq_itree - make sure this works *) + Qed. + (* 2. next: this: euttge RR is proper wrt eq_itree RR - make sure this works *) Goal t ≅ u -> v ≅⟨flip RR⟩ u -> t ≳⟨RR⟩ v -> t ≳⟨RR⟩ v. - intros EQ1 EQ2 H. - (* rewrite EQ1. *) + intros EQ1 EQ2' H. + rewrite EQ1. Typeclasses eauto := debug. - Fail rewrite EQ2. (* TO FIX: only going through subrelation is insuficient *) + rewrite EQ2. + apply eqit_flip in EQ2'. + rewrite EQ2 in EQ2'. + (* eapply (eqit_mono RR RR false false); eauto. *) + rewrite EQ2'. + (* TO FIX: only going through subrelation is insuficient *) Admitted. (* Debug: 1.1-1.1: simple apply @eqitgen_cong_eqit_eq on (Proper (?R ==> eq_itree eq ==> flip impl) (euttge eq)), 0 subgoal(s) @@ -1256,89 +1211,6 @@ Debug: 1.1-2.1-1.1-1: looking for (Reflexive (eq_itree eq)) without backtracking Debug: 1.1-2.1-1.1-1.1: simple apply @Reflexive_eqit_eq on (Reflexive (eq_itree eq)), 0 subgoal(s) *) -(* #[global] Instance eutt_elem (c : euttC eq): -Proper (@eutt E R1 R1 eq ==> eutt eq ==> flip impl) ̇c. -Proof with eauto with itree. - unfold Proper, respectful, flip, impl. - apply tower. - - red; cbn; intros ? LE x x' EQx y y' EQy. - intros H??; eapply LE; eauto. - - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - icbn; intros EQ. - genobs x' ox'; genobs y' oy'. - (* [hinduction] is not sufficient here, because [move] is unable to pass - through [ox] to reach [x] *) - revert x x' y y' Heqox' Heqoy' EQx EQy. - induction EQ; intros. - + clear x' y' Heqox' Heqoy'. - genobs x ox. - genret r1 or1. - revert x Heqox. - hinduction EQx before ox; try easy. - * intros; subst; inv Heqor1. clear x Heqox. - genobs y oy; genret r2 or2. - revert y Heqoy. - hinduction EQy before oy; try easy. - subst; intros [=<-] ??... - now intros; taur; eapply IHEQy. - * intros; subst; taul; eapply IHEQx... - + clear x' y' Heqox' Heqoy'. - genobs x ox. - gentau m1 om1. - gentau m2 om2. - revert x Heqox. - hinduction EQx before ox; try easy. - * intros [=<-] ? ????. - clear x Heqox. - genobs y oy. - revert y Heqoy. - hinduction EQy before oy; try easy. - intros. inv Heqom2... - intros. - taur. - now eapply IHEQy. - intros. inv Heqom2. - * intros; subst; taul; eapply IHEQx... - + clear x' y' Heqox' Heqoy'. - genobs x ox. - genvis e k1 ot1. - revert x Heqox. - hinduction EQx before ox; try easy. - * intros. - apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. - clear x Heqox. - genobs y oy; genvis e k2 ot2. - revert y Heqoy. - hinduction EQy before oy; try easy. - intros; apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst; eauto with itree. - intros. - taur. - now eapply IHEQy. - * intros; subst; taul; eapply IHEQx... - + edestruct euttge_tau_r_inv; [step; eauto |]. - simpobs. - taul. - eapply IHEQ; eauto. - assert (euttge eq (Tau x0) (Tau t1)) by (now step). - unstep; eapply euttge_tau_inv; eauto. - + edestruct euttge_tau_r_inv; [step; eauto |]. - simpobs. - taur. - eapply IHEQ; eauto. - assert (euttge eq (Tau x0) (Tau t2)) by (now step). - unstep; eapply euttge_tau_inv; eauto. *) - - -(* FOR YANNICK: is this one of the untrue ones? *) -(* #[global] Instance eutt_proper_euttC_b (r : euttC eq): - Proper (@eutt E R1 R1 eq ==> eutt eq ==> (flip impl)) (eqit_mon eq true true (elem r)). -Proof. - repeat intro. icbn in *. step in H. - hinduction H1 before x; subst; intros. - - genret r2 or2. induction H; subst; try inv Heqor2; eauto with itree. - - gentau m2 ot2. induction H; subst; try inv Heqot2; eauto with itree. - taus. rewrite REL0. *) - (* RTODO next: this proof, which has a goal of eqitF, is not rewritable with the eqit_mon proper instance. we want this to work-- will it? need a few more proper instances... maybe wrt going, etc. *) @@ -1348,11 +1220,10 @@ will it? need a few more proper instances... maybe wrt going, etc. *) coinduction r cih. (* icoinduction r cih. *) intros. - fold (@eutt E R1 R1 eq) in H. - Fail rewrite H. - (* to consider b elem *) - (* WIP *) -Abort. + step. + rewrite H. + reflexivity. +Qed. End Tests. #[global] Hint Resolve Reflexive_eqit : reflexivity. @@ -1432,9 +1303,7 @@ Qed. Proof. repeat intro. inv H. - (* why? *) - Fail step. - apply (b_chain c). icbn. + step. rewrite observing_observe. step. reflexivity. Qed. From f1ca7e71d4fd0f2586b2b4dae7b79857c0a77674 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 9 Mar 2026 20:37:16 -0400 Subject: [PATCH 082/189] Some proof speedups. next is more proper proofs --- theories/Eq/Eqit.v | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 2c8db270..2d0c297c 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -308,8 +308,8 @@ Ltac solve_eqitF := [taus] is simply the [EqTau] constructor, and serves the same purpose. *) -Ltac taul := apply EqTauL; only 1: auto. -Ltac taur := apply EqTauR; only 1: auto. +Ltac taul := apply EqTauL; [auto|]. +Ltac taur := apply EqTauR; [auto|]. Ltac taus := apply EqTau. Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} @@ -849,39 +849,27 @@ Qed. Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): subrelationH (@eq_itree E _ _ RR) (euttge RR). -Proof. - now apply eqit_mono. -Qed. +Proof. now apply eqit_mono. Qed. #[global] Instance eq_sub_euttge {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (euttge RR). -Proof. - now apply eqit_mono. -Qed. +Proof. now apply eqit_mono. Qed. Lemma euttge_subH_eutt {E R1 R2} (RR : R1 -> R2 -> Prop): subrelationH (@euttge E _ _ RR) (eutt RR). -Proof. - now eapply eqit_mono. -Qed. +Proof. now eapply eqit_mono. Qed. #[global] Instance euttge_sub_eutt {E R} (RR : R -> R -> Prop): subrelation (@euttge E _ _ RR) (eutt RR). -Proof. - now apply eqit_mono. -Qed. +Proof. now apply eqit_mono. Qed. Lemma eq_subH_eutt {E R1 R2} (RR : R1 -> R2 -> Prop): subrelationH (@eq_itree E _ _ RR) (eutt RR). -Proof. - now apply eqit_mono. -Qed. +Proof. now apply eqit_mono. Qed. #[global] Instance eq_sub_eutt {E R} (RR : R -> R -> Prop): subrelation (@eq_itree E _ _ RR) (eutt RR). -Proof. - now apply eqit_mono. -Qed. +Proof. now apply eqit_mono. Qed. #[global] Instance eq_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC RR): @@ -920,17 +908,19 @@ Proof with eauto with itree. icoinduction c cih; intros; step in H0; step in H1; step in H; icbn in *. all: - hinduction H1 before RR; intros; - [ inv H; inv H0; simpobs; try easy; eauto with itree | - inv H; inv H0; simpobs; try easy; eauto with itree | + hinduction H1 before RR; intros. + 1-2, 6-7: inv H; inv H0; simpobs; try easy; eauto with itree. + 1,4: genvis e k1 ok1; inv H; simpobs; try easy; genvis e k2 ok2; inv H0; simpobs; try easy; do 2 inv_Vis; constructor; intros; specialize (REL1 v); specialize (REL0 v); - eapply cih; eauto | - inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL | - inv H0; simpobs; try easy;taur; eapply IHeqitF; eauto; now step in REL ]. + eapply cih; eauto. + 1,3: + inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL. + 1-2: + inv H0; simpobs; try easy; taur; eapply IHeqitF; eauto; now step in REL. Qed. @@ -1151,7 +1141,6 @@ Abort. (* TODO: have tests work with a relation on leaves. Currently fails, need better instance *) - (* Test for rewrites in [eutt]: [eq_itree eq], [] *) (* RTODO: These *) Goal t ≈⟨RR⟩ w -> t ≈⟨RR⟩ w. @@ -1191,6 +1180,7 @@ Abort. apply eqit_flip in EQ2'. rewrite EQ2 in EQ2'. (* eapply (eqit_mono RR RR false false); eauto. *) + (* next todo: get this to work *) rewrite EQ2'. (* TO FIX: only going through subrelation is insuficient *) Admitted. From 3204097f17132da3face2d7eaebe740a0c3c47a2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 10 Mar 2026 13:19:54 -0400 Subject: [PATCH 083/189] Using some notation more --- .Makefile.d | 384 ++++++++++++++++++++++----------------------- theories/Eq/Eqit.v | 8 +- 2 files changed, 196 insertions(+), 196 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index a105fbed..56b6e2e9 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 2d0c297c..7ba36bee 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -544,13 +544,13 @@ Properties of the chains specialize to the relations: the gfp is an element of t Proof. repeat red; etransitivity; eauto. Qed. #[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) - {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive (elem c). + {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive ̇c. Proof. now apply Reflexive_chain; repeat intro; apply Reflexive_eqit_. Qed. #[global] Instance Symmetric_elem (b: bool) (HS : Symmetric RR) - {c: Chain (@eqit_mon E R R RR b b)}: Symmetric (elem c). + {c: Chain (@eqit_mon E R R RR b b)}: Symmetric ̇c. Proof. now apply Symmetric_chain; repeat intro; apply Symmetric_eqit_. Qed. @@ -1161,7 +1161,7 @@ Abort. rewrite <- GT. assumption. Qed. - + (* RTODO: These *) Goal t ≅ u -> t ≅ u. intros H. @@ -1181,7 +1181,7 @@ Abort. rewrite EQ2 in EQ2'. (* eapply (eqit_mono RR RR false false); eauto. *) (* next todo: get this to work *) - rewrite EQ2'. + (* rewrite EQ2'. *) (* TO FIX: only going through subrelation is insuficient *) Admitted. (* Debug: 1.1-1.1: simple apply @eqitgen_cong_eqit_eq on From 8d0e522ebffa2f13e55e7f629ccc7284e68f506c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 16 Mar 2026 14:23:00 -0400 Subject: [PATCH 084/189] Pushing falsehood of euttge_proper_euttgeC, trying flip direction as true --- .Makefile.d | 384 ++++++++++++++++++++++----------------------- CLAUDE.md | 89 +++++++++++ theories/Eq/Eqit.v | 160 ++++++++++++++++--- 3 files changed, 419 insertions(+), 214 deletions(-) create mode 100644 CLAUDE.md diff --git a/.Makefile.d b/.Makefile.d index 56b6e2e9..a105fbed 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,192 +1,192 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..4479520c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,89 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Build Commands + +**Default build system: make** + +```bash +# Install dependencies +opam install coq-paco coq-ext-lib + +# Build everything +make all -j # library + tutorial + tests + +# Build specific targets +make # library only +make tutorial +make tests +make html # coqdoc HTML docs → html/toc.html +``` + +**Alternative build system: dune** + +```bash +opam install coq-paco coq-ext-lib dune + +dune build # build everything +dune runtest # run tests +dune build theories / tutorial / tests / examples +``` + +**Before editing Coq files interactively with dune**, set up `_CoqProject`: +```bash +cp _CoqProject.dune _CoqProject +``` +Clean before switching between `make` and `dune` builds. + +## Architecture Overview + +This is a Rocq (Coq) library for **Interaction Trees** — a coinductive data structure for representing recursive/impure programs with principled equational reasoning. + +### Core Data Type + +`itree E R` (in [theories/Core/ITreeDefinition.v](theories/Core/ITreeDefinition.v)) is a coinductive tree with three constructors: +- `Ret r` — pure return value +- `Tau t` — silent step (enables coinductive looping) +- `Vis e k` — visible event `e : E X` with continuation `k : X -> itree E R` + +The type is defined as a final coalgebra using `CoInductive` with a primitive projection `_observe`. Always use `observe` (not `_observe` directly), and prefer `cbn` over `simpl` when reducing `observe` of a `CoFixpoint`. + +### Equational Theory (`theories/Eq/`) + +The key file is [theories/Eq/Eqit.v](theories/Eq/Eqit.v). All three main relations are instances of `eqit b1 b2 RR`: + +| Relation | Notation | `b1` | `b2` | Meaning | +|----------|----------|------|------|---------| +| `eq_itree RR` | `≅` | false | false | Strong bisimulation | +| `eutt RR` | `≈` | true | true | Weak bisimulation (up to `Tau`) | +| `euttge RR` | `≳` | true | false | Weak simulation (one-sided `Tau` elim) | + +**Critical architectural detail**: This branch (`yannick-coinduction`) replaces the original paco-based coinduction with **Pous' `coinduction` library** (`From Coinduction Require Import all`). The `gfp` combinator defines coinductive relations as greatest fixed points of monotone functions. The `eqit_mon` record packages the monotone function for use with `gfp`. + +Notations have three "layers": +- `t1 ≈ t2` — the `gfp` (greatest fixed point) +- `t1 [≈] t2` — the `elem` (membership in the chain) +- `t1 {≈} t2` — the `eqitF` functor applied to `elem _` + +### Library Organization + +- **`theories/Basics/`** — Category theory infrastructure (`~>` notation, Kleisli categories, monad transformers). Not ITree-specific. +- **`theories/Core/`** — ITree definition, `bind`/`map`, Kleisli category (`KTree`), `Subevent` for extensible effects. +- **`theories/Eq/`** — `eqit`/`eutt`/`eq_itree`, up-to-taus, simulation, heterogeneous relation (`Rutt`). +- **`theories/Props/`** — Propositional predicates on ITrees (finiteness, leaves, cofiniteness). +- **`theories/Interp/`** — `interp`, `translate`, `mrec`/`rec` recursion combinators, event handlers. +- **`theories/Events/`** — Standard event types: state, reader, writer, exceptions, nondeterminism, concurrency. +- **`extra/`** — Additional theories (ITrace, Dijkstra monads, secure information flow). Mapped to `ITree.Extra`. + +### Key Convention + +Theorems are kept in separate `*Facts` modules (e.g., `KTreeFacts`, `InterpFacts`) to enable parallel compilation and isolate potential universe inconsistencies from the computational definitions. + +### Axioms + +The core library uses UIP (`eq_rect_eq`) and functional extensionality (in `FunctionFacts`). The `extra/ITrace` theories additionally assume excluded middle and a type-theoretic axiom of choice (not used in the main `theories/` library). The axiom `bisimulation_is_eq : t1 ≅ t2 -> t1 = t2` is exported but not used internally. + +### Tactics (in `theories/Basics/Utils.v` and `theories/Eq/Eqit.v`) + +Custom tactics include `inv`, `hexploit`, `rewrite_everywhere`, `flatten_goal`/`flatten_hyp`/`flatten_all`, and `icoinduction` (wraps the `coinduction` library's tactic for ITree-specific goals). diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 7ba36bee..abf1da52 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -881,22 +881,6 @@ Proof. apply eq_sub_euttge with (RR := eq) in H; apply eq_sub_euttge with (RR := eq) in H0; eapply euttge_proper_euttC; eauto. -Qed. - - -#[global] Instance eq_proper_eq_itreeC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. -Proof. - split; revert_until c; tower induction; intros!; - step in H0; step in H1; icbn in *. - (* this proof is largely uninteresting and is just diagram chase. *) - all: - inv H2; simpobs; try easy; - try genvis e k1 ok1; inv H0; simpobs; try easy; - try genvis e k2 ok2; inv H1; simpobs; try easy; - try do 2 inv_Vis; constructor; intros; try eapply H; eauto; - now rewrite H0, H1. Qed. #[global] Instance eq_proper_eqit {E R1 R2 b1 b2} @@ -908,8 +892,10 @@ Proof with eauto with itree. icoinduction c cih; intros; step in H0; step in H1; step in H; icbn in *. all: - hinduction H1 before RR; intros. + hinduction H1 before RR; intros. + (* ret and taus cases *) 1-2, 6-7: inv H; inv H0; simpobs; try easy; eauto with itree. + (* vis *) 1,4: genvis e k1 ok1; inv H; simpobs; try easy; genvis e k2 ok2; inv H0; simpobs; try easy; @@ -917,12 +903,147 @@ Proof with eauto with itree. specialize (REL1 v); specialize (REL0 v); eapply cih; eauto. + (* inductive steps *) 1,3: inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL. 1-2: inv H0; simpobs; try easy; taur; eapply IHeqitF; eauto; now step in REL. Qed. +(* [euttge_proper_euttgeC] with [euttge eq] on BOTH arguments is FALSE. + Counterexample: c = chain_gfp (eqit_mon eq true false) so ̇c = euttge eq. + Take x = x' = Ret tt, y = Tau (Ret tt), y' = Ret tt. + Then euttge eq (Ret tt) (Ret tt) ✓, euttge eq (Tau (Ret tt)) (Ret tt) ✓ (EqTauL), + and ̇c (Ret tt) (Ret tt) = euttge eq (Ret tt) (Ret tt) ✓, + but ̇c (Ret tt) (Tau (Ret tt)) = euttge eq (Ret tt) (Tau (Ret tt)) is FALSE + because b2=false means the right side cannot skip taus. *) +Lemma not_euttge_proper_euttgeC : + ~ Proper (euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq ==> + euttge eq ==> flip impl) + ̇(chain_gfp (eqit_mon (R1 := unit) (R2 := unit) eq true false)). +Proof. + unfold Proper, respectful, flip, impl. + intro H. + assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq + (Ret tt) (Tau (Ret tt))). + { eapply H with (x := Ret tt) (y := Ret tt). + - reflexivity. + - step. taul. reflexivity. + - reflexivity. } + step in Hfalse. inv Hfalse. easy. +Qed. + +(* (* [euttge_proper_euttgeC] with [euttge eq] on BOTH arguments is FALSE. + Counterexample: c = chain_gfp (eqit_mon eq true false) so ̇c = euttge eq. + Take x = x' = Ret tt, y = Tau (Ret tt), y' = Ret tt. + Then euttge eq (Ret tt) (Ret tt) ✓, euttge eq (Tau (Ret tt)) (Ret tt) ✓ (EqTauL), + and ̇c (Ret tt) (Ret tt) = euttge eq (Ret tt) (Ret tt) ✓, + but ̇c (Ret tt) (Tau (Ret tt)) = euttge eq (Ret tt) (Tau (Ret tt)) is FALSE + because b2=false means the right side cannot skip taus. *) +Lemma euttge_proper_flip_euttgeC : + Proper (euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq ==> + flip (euttge eq) ==> flip impl) + ̇(chain_gfp (eqit_mon (R1 := unit) (R2 := unit) eq true false)). +Proof. + unfold Proper, respectful, flip, impl. + tower induction. + intros. + +Qed. *) + +(* The correct instance: first arg uses [euttge eq], second uses [eq_itree eq]. + Since euttgeC has b2=false, the right argument cannot skip taus, so we need + strong bisimulation (eq_itree eq) there, not euttge eq. *) +#[global] Instance euttge_eq_proper_euttgeC {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttgeC RR): + Proper (euttge (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. +Proof with eauto with itree. + unfold Proper, respectful, flip, impl. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + icbn; intros EQ. + genobs x' ox'; genobs y' oy'. + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genret r1 or1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy; genret r2 or2. + revert y Heqoy. + (* EQy is eq_itree eq (b1=b2=false): EqTauL/EqTauR cases dismissed by [try easy] *) + hinduction EQy before oy; try easy. + subst; intros [=<-] ??... + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + gentau m1 om1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros [=<-] ? ??. + clear x Heqox. + genobs y oy; gentau m2 om2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros [=<-] ??... + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genvis e k1 ot1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros. + apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + clear x Heqox. + genobs y oy; genvis e k2 ot2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros; apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst; eauto with itree. + * intros; subst; taul; eapply IHEQx... + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taul. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t1)) by (now step). + unstep; eapply euttge_tau_inv; eauto. + + easy. + (* no EqTauR block: euttgeC has b2=false *) +Qed. + +#[global] Instance eq_proper_euttgeC {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttgeC RR): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. +Proof. + split; intro. + - (* forward: t1 ≅ t2, s1 ≅ s2, ̇c t1 s1 → ̇c t2 s2: + need t2 ≳ t1 (reverse) and s2 ≅ s1 (reverse) *) + symmetry in H; apply eq_sub_euttge with (RR := eq) in H. + symmetry in H0. + eapply euttge_eq_proper_euttgeC; eauto. + - (* backward: t1 ≅ t2, s1 ≅ s2, ̇c t2 s2 → ̇c t1 s1: + need t1 ≳ t2 and s1 ≅ s2 (direct) *) + apply eq_sub_euttge with (RR := eq) in H. + eapply euttge_eq_proper_euttgeC; eauto. +Qed. + + +#[global] Instance eq_proper_eq_itreeC {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. +Proof. + split; revert_until c; tower induction; intros!; + step in H0; step in H1; icbn in *. + (* this proof is largely uninteresting and is just diagram chase. *) + all: + inv H2; simpobs; try easy; + try genvis e k1 ok1; inv H0; simpobs; try easy; + try genvis e k2 ok2; inv H1; simpobs; try easy; + try do 2 inv_Vis; constructor; intros; try eapply H; eauto; + now rewrite H0, H1. +Qed. + (** *** Transitivity properties *) @@ -1099,11 +1220,6 @@ Proof. Qed. -(* RTODO next 3/9: *) -(* eq_itree proper up to all chains *) - - - (* Ongoing sanity tests *) Module Tests. From 5dc89c195d66defddf30d990e97b6634989b4d17 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 16 Mar 2026 18:14:24 -0400 Subject: [PATCH 085/189] Fixed and pushed negated proof. Ready for meeting tomorrow. --- theories/Eq/Eqit.v | 188 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 148 insertions(+), 40 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index abf1da52..6cad7954 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -168,35 +168,48 @@ End eqit. Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. -(** A notation of [eq_itree eq]. You can write +(** Notation of [eqit] and [eqitF]. You can write [≅] using [[\cong]] [≈] using [[\approx]] [≳] using [[\gtrsim]] - in tex-mode + in tex-mode. *) - + (* eq_itree and relative functions *) + (* gfp *) Infix "≅⟨ R ⟩" := (eq_itree R) (at level 70) : type_scope. Infix "≅" := (eq_itree eq) (at level 70) : type_scope. - Infix "{≅⟨ R ⟩}" := (eqitF R false false (elem _)) (at level 70) : type_scope. - Infix "{≅}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : type_scope. - Notation eq_itreeF R := (eqitF R false false). + (* b (gfp) *) + Infix "{≅⟨ R ⟩}" := (eqitF R false false (eq_itree _)) (at level 70) : type_scope. + Infix "{≅}" := (eqitF eq false false (eq_itree _)) (at level 70, only parsing) : type_scope. + (* b (elem) *) + Infix "{[≅⟨ R ⟩]}" := (eqitF R false false (elem _)) (at level 70) : type_scope. + Infix "{[≅]}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : type_scope. + (* elem *) Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon R false false) _) (at level 70) : type_scope. Infix "[≅]" := (@elem _ _ (eqit_mon eq false false) _) (at level 70) : type_scope. Infix "≈⟨ R ⟩" := (eutt R) (at level 70) : type_scope. Infix "≈" := (eutt eq) (at level 70) : type_scope. - Infix "{≈⟨ R ⟩}" := (eqitF R true true (elem _)) (at level 70) : type_scope. - Infix "{≈}" := (eqitF eq true true (elem _)) (at level 70) : type_scope. - Notation euttF R := (eqitF R true true). + (* b (gfp) *) + Infix "{≈⟨ R ⟩}" := (eqitF R true true (eutt _)) (at level 70) : type_scope. + Infix "{≈}" := (eqitF eq true true (eutt _)) (at level 70, only parsing) : type_scope. + (* b (elem) *) + Infix "{[≈⟨ R ⟩]}" := (eqitF R true true (elem _)) (at level 70) : type_scope. + Infix "{[≈]}" := (eqitF eq true true (elem _)) (at level 70, only parsing) : type_scope. + (* elem *) Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon R true true) _) (at level 70) : type_scope. Infix "[≈]" := (@elem _ _ (eqit_mon eq true true) _) (at level 70) : type_scope. - + Infix "≳⟨ R ⟩" := (euttge R) (at level 70) : type_scope. Infix "≳" := (euttge eq) (at level 70) : type_scope. - Infix "{≳⟨ R ⟩}" := (eqitF R true false (elem _)) (at level 70) : type_scope. - Infix "{≳}" := (eqitF eq true false _) (at level 70) : type_scope. - Notation euttgeF R := (eqitF R true false). + (* b (gfp) *) + Infix "{≳⟨ R ⟩}" := (eqitF R true false (euttge _)) (at level 70) : type_scope. + Infix "{≳}" := (eqitF eq true false (euttge _)) (at level 70, only parsing) : type_scope. + (* b (elem) *) + Infix "{[≳⟨ R ⟩]}" := (eqitF R true false (elem _)) (at level 70) : type_scope. + Infix "{[≳]}" := (eqitF eq true false (elem _)) (at level 70, only parsing) : type_scope. + (* elem *) Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon R true false) _) (at level 70) : type_scope. Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. @@ -205,7 +218,10 @@ Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. Notation euttgeC RR := (Chain (eqit_mon RR true false)). Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). + (* makes [observe] a bit nicer to look at *) + Notation "⊙ x" := (observe x) (only printing, at level 10). + (* begin hide *) #[global] Hint Constructors eqitF : itree. #[global] Hint Unfold eqit_ : itree. @@ -246,11 +262,14 @@ Experimenting with the latter at the moment. *) Ltac refold := match goal with - |- context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => + | |- context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => fold (@eqit E R1 R2 RR b1 b2); fold (@eq_itree E _ _ RR); fold (@euttge E _ _ RR); fold (@eutt E _ _ RR) + | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => + replace (eqitF eq true false sim (observe t1) (observe t2)) + with (eqit_mon eq true false sim t1 t2) by reflexivity end. Ltac refold_in h := @@ -260,19 +279,22 @@ Ltac refold_in h := fold (@eq_itree E _ _ RR) in h; fold (@euttge E _ _ RR) in h; fold (@eutt E _ _ RR) in h + | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => + replace (eqitF eq true false sim (observe t1) (observe t2)) + with (eqit_mon eq true false sim t1 t2) in h by reflexivity end. Tactic Notation "refold" "in" ident(h) := refold_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. Tactic Notation "step" := iunfold; step; cbn; try refold. -Tactic Notation "unstep" := iunfold; unstep. +Tactic Notation "unstep" := iunfold; unstep; try refold. Tactic Notation "step" "in" ident(h) := iunfold in h; step in h; cbn[eqit_mon body] in h; unfold eqit_ in h; - refold in h. + try refold in h. Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. @@ -312,6 +334,41 @@ Ltac taul := apply EqTauL; [auto|]. Ltac taur := apply EqTauR; [auto|]. Ltac taus := apply EqTau. + +Module step_notation_tests. + #[local] Parameter E : Type -> Type. + #[local] Parameter R1 R2 : Type. + #[local] Parameter RR : R1 -> R2 -> Prop. + #[local] Parameter t u : itree E R1. + #[local] Parameter v w : itree E R2. + #[local] Parameter eqc : (Chain (@eqit_mon E R2 R2 eq false false)). + #[local] Parameter (EQ1 : t ≅ u). + #[local] Parameter (EQUIV1 : t ≈ u). + #[local] Parameter (EQ2 : v ≅ w). + #[local] Parameter (EQUIV2 : v ≈ w). + #[local] Parameter (GT : v ≳ w). + #[local] Parameter (GT2 : w ≳ v). + + (* RTODO: step better error message *) +Goal eutt RR u v. + (* already in the gfp <-> b gfp loop *) + step. unstep. + step. + Fail step. + unstep. + Fail unstep. + assert (eqitF eq false false (elem eqc) (observe v) (observe w)). + step. + (* now in the loop *) + step. unstep. Fail unstep. step. Fail step. now (unstep; apply EQ2). + assert ((elem eqc) v w). + step. step. + (* now in the loop *) + step. unstep. Fail unstep. step. Fail step. now (unstep; apply EQ2). +Abort. + +End step_notation_tests. + Lemma eqitF_inv_VisF_r {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} t1 X2 (e2 : E X2) (k2 : X2 -> _) : eqitF RR b1 b2 sim t1 (VisF e2 k2) -> @@ -716,7 +773,6 @@ Proof. eapply IHEQ; eauto. Qed. -Notation "⊙ x" := (observe x) (only printing, at level 10). Ltac inf_closed_forall_auto := repeat match goal with @@ -918,38 +974,90 @@ Qed. but ̇c (Ret tt) (Tau (Ret tt)) = euttge eq (Ret tt) (Tau (Ret tt)) is FALSE because b2=false means the right side cannot skip taus. *) Lemma not_euttge_proper_euttgeC : - ~ Proper (euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq ==> - euttge eq ==> flip impl) - ̇(chain_gfp (eqit_mon (R1 := unit) (R2 := unit) eq true false)). -Proof. - unfold Proper, respectful, flip, impl. - intro H. - assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq +~ (forall E R1 R2 (RR : R1 -> R2 -> Prop) (c : euttgeC RR), + Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c)). + unfold Proper, respectful, flip, impl. + intro. +assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq (Ret tt) (Tau (Ret tt))). + (* for yannick: why does this work? *) { eapply H with (x := Ret tt) (y := Ret tt). - reflexivity. - step. taul. reflexivity. - reflexivity. } step in Hfalse. inv Hfalse. easy. -Qed. +Qed. -(* (* [euttge_proper_euttgeC] with [euttge eq] on BOTH arguments is FALSE. - Counterexample: c = chain_gfp (eqit_mon eq true false) so ̇c = euttge eq. - Take x = x' = Ret tt, y = Tau (Ret tt), y' = Ret tt. - Then euttge eq (Ret tt) (Ret tt) ✓, euttge eq (Tau (Ret tt)) (Ret tt) ✓ (EqTauL), - and ̇c (Ret tt) (Ret tt) = euttge eq (Ret tt) (Ret tt) ✓, - but ̇c (Ret tt) (Tau (Ret tt)) = euttge eq (Ret tt) (Tau (Ret tt)) is FALSE - because b2=false means the right side cannot skip taus. *) -Lemma euttge_proper_flip_euttgeC : - Proper (euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq ==> - flip (euttge eq) ==> flip impl) - ̇(chain_gfp (eqit_mon (R1 := unit) (R2 := unit) eq true false)). + +Lemma not_euttge_proper_euttgeC' {E R1 R2} (RR : R1 -> R2 -> Prop) +(c : euttgeC RR) +: ~ Proper (euttge (E := E) eq ==> + euttge eq ==> flip impl) ̇c. Proof. unfold Proper, respectful, flip, impl. - tower induction. - intros. - -Qed. *) + revert E R1 R2 RR c. +Abort. + +(* RTODO: working on this *) +Lemma euttge_proper_flip_euttgeC {E R1 R2} + (RR : R1 -> R2 -> Prop) (c : euttgeC RR) : + Proper (euttge (E := E) eq ==> flip (euttge eq) ==> flip impl) ̇c. +Proof with eauto with itree. + unfold Proper, respectful, flip, impl. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + icbn; intros EQ. + genobs x' ox'; genobs y' oy'. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genret r1 or1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy; genret r2 or2. + revert y Heqoy. + hinduction EQy before oy; try easy. + subst; intros [=<-] ??... + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + gentau m1 om1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros [=<-] ? ??. + clear x Heqox. + genobs y oy; gentau m2 om2. + revert y Heqoy. + hinduction EQy before om2; try easy. + intros [=<-] ??... + intros [=<-] ??. + taul. subst. step. + (* unusable IHEQy: + IHEQy : ⊙ t1 = TauF t1 -> forall y : itree E R, + ot2 = ⊙ y -> TauF m0 {[≳⟨eq⟩]} ot2 *) + admit. + * intros; subst; taul; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genvis e k1 ot1. + revert x Heqox. + hinduction EQx before ox; try easy. + intros. inv_Vis. + apply eqitF_inv_VisF_l in EQy. break EQy; try easy; break H. + simpobs... + intros. taul. eapply IHEQx; eauto. + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taul. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t1)) by (now step). + unstep; eapply euttge_tau_inv; eauto. + + easy. +Abort. (* The correct instance: first arg uses [euttge eq], second uses [eq_itree eq]. Since euttgeC has b2=false, the right argument cannot skip taus, so we need From 2807398122446d1d089770b293396531e2cffeca Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 16 Mar 2026 18:15:08 -0400 Subject: [PATCH 086/189] File typechecks --- theories/Eq/Eqit.v | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 6cad7954..4c3eb852 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1353,7 +1353,6 @@ Goal eutt RR u v. exact EQ2. step. unstep. - refold. rewrite <- EQ1. rewrite <- GT. rewrite EQ1. @@ -1883,7 +1882,7 @@ Proof. unfold eqit. unstep. (* need strong CIH *) revert EQV; revert t1 t2. - coinduction c CIH; intros. + icoinduction c CIH; intros. step in EQV. icbn. genobs t1 ot1. From 2936309e338819bce10dfbf3899908f863edf965 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Mar 2026 17:43:27 -0400 Subject: [PATCH 087/189] Few small changes from meeting --- theories/Eq/Eqit.v | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 4c3eb852..264be8ef 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -980,15 +980,15 @@ Lemma not_euttge_proper_euttgeC : intro. assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq (Ret tt) (Tau (Ret tt))). - (* for yannick: why does this work? *) { eapply H with (x := Ret tt) (y := Ret tt). + (* ^ this works because the canonical chain structure uses chain_gfp + to coerce things into the right shape. *) - reflexivity. - step. taul. reflexivity. - reflexivity. } step in Hfalse. inv Hfalse. easy. Qed. - Lemma not_euttge_proper_euttgeC' {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttgeC RR) : ~ Proper (euttge (E := E) eq ==> @@ -1485,11 +1485,10 @@ Proof. Qed. (** *** Congruence properties *) -Hint Extern 1 => step : itree. #[global] Instance eqit_observe b1 b2: Proper (eqit b1 b2 ==> going (eqit b1 b2)) (@observe E R). Proof. - constructor; step in H; auto with itree. + constructor; step in H; step; auto with itree. Qed. #[global] Instance eqit_tauF b1 b2: @@ -2559,7 +2558,7 @@ Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). Proof. - revert u v. + revert u v. tower induction. intros. icbn. rewrite 2observe_bind. step in H0. induction H0; simpobs. @@ -2574,6 +2573,7 @@ Proof. - taur. rewrite observe_bind. eapply IHeqitF; eauto. Qed. + (* We can't state this nicely as a Proper relation, since proper instances need to have subcomponents that share types. eutt RX violates this, as u and v are of different types. *) From 61b7b2e38a95dc4787569471b907eb243bf11520 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 17 Mar 2026 17:43:42 -0400 Subject: [PATCH 088/189] UpToTaus working after <20mins work --- theories/Eq/UpToTaus.v | 118 ++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/theories/Eq/UpToTaus.v b/theories/Eq/UpToTaus.v index 2e97288f..f2370d6d 100644 --- a/theories/Eq/UpToTaus.v +++ b/theories/Eq/UpToTaus.v @@ -35,23 +35,34 @@ *) (* begin hide *) -From Stdlib Require Import Setoid Morphisms Relations. -From Paco Require Import paco. +From Stdlib Require Import + Structures.Orders (* Hint Unfold is_true *) + Program + Setoid + Morphisms + Relations. +From Coinduction Require Import all. + +(* important: Basics.Utils must come after Coinduction, as it +re-implements several tactics. *) From ITree Require Import + Basics.Basics Basics.Utils + Basics.HeterogeneousRelations Core.ITreeDefinition Eq.Eqit - Eq.Paco2 Eq.Shallow. -#[local] Open Scope itree_scope. +Import RelNotations. + +Local Open Scope itree_scope. (* end hide *) (** ** gpaco *) -Tactic Notation "gpaco_" := +(* Tactic Notation "gpaco_" := match goal with | [|- context[gpaco2]] => eapply gpaco2_gpaco; [eauto with paco|] end. @@ -706,14 +717,14 @@ Instance euttG_cong_eq {E R1 R2 RR} rH rL gL gH: (@euttG E R1 R2 RR rH rL gL gH). Proof. repeat intro. eapply euttG_cong_euttge; eauto; apply eq_sub_euttge; eauto. -Qed. +Qed. *) #[global] Instance eutt_cong_eutt {E R1 R2 RR}: Proper (eutt eq ==> eutt eq ==> flip impl) (@eqit E R1 R2 RR true true). Proof. - einit. intros. rewrite H0, H1. efinal. + intros!. now rewrite H, H0. Qed. #[global] @@ -721,7 +732,7 @@ Instance eutt_cong_euttge {E R1 R2 RR}: Proper (euttge eq ==> euttge eq ==> flip impl) (@eqit E R1 R2 RR true true). Proof. - einit. intros. rewrite H0, H1. efinal. + intros!. now rewrite H, H0. Qed. #[global] @@ -729,7 +740,7 @@ Instance eutt_cong_eq {E R1 R2 RR}: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (@eqit E R1 R2 RR true true). Proof. - einit. intros. rewrite H0, H1. efinal. + intros!. now rewrite H, H0. Qed. #[global] @@ -772,60 +783,40 @@ Lemma eutt_conj {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), eutt RS t s -> eutt RS' t s -> - eutt (RS /2\ RS') t s. + eutt (cup RS RS') t s. Proof. repeat red. - einit. ecofix CIH. intros * EQ EQ'. - rewrite itree_eta, (itree_eta s). - punfold EQ; punfold EQ'; red in EQ; red in EQ'. + icoinduction c cih. intros * EQ EQ'. + step in EQ; step in EQ'. genobs t ot; genobs s os. - hinduction EQ before CIHH; subst; intros; pclearbot; simpl. - - - estep; split; auto. - inv EQ'; auto. - - estep; ebase; right; eapply CIHL; eauto. - rewrite <- tau_eutt. - rewrite <- (tau_eutt m2); auto with itree. - - assert (EE := eqitF_inv_VisF _ _ _ _ _ EQ'); pclearbot. - eapply euttG_vis; ebase; left; apply CIHH; auto with itree. - - eapply fold_eqitF in EQ'; eauto. - assert (t ≈ Tau t1) by (rewrite itree_eta, <- Heqot; reflexivity). - rewrite H in EQ'. - apply eqit_inv_Tau_l in EQ'. - subst; specialize (IHEQ _ _ eq_refl eq_refl). - punfold EQ'; red in EQ'. - specialize (IHEQ EQ'). - rewrite eqit_Tau_l; [|reflexivity]. - rewrite (itree_eta t1). - eapply IHEQ. - - subst; cbn. - rewrite tau_euttge. - rewrite (itree_eta t2); eapply IHEQ; eauto. - eapply fold_eqitF in EQ'; eauto. - assert (s ≈ Tau t2). - rewrite (itree_eta s), <- Heqos; reflexivity. - rewrite tau_eutt in H. - assert (eutt RS' t t2). - rewrite <- H; auto. - punfold H0. + hinduction EQ before cih; subst; intros; simpl. + - now inv EQ'; constructor; constructor. + - taus. eapply cih; eauto. apply eqit_inv_Tau. now step. + - constructor. intro v. eapply cih. + auto. + eapply eqitF_inv_VisF in EQ'. eauto. + - taul. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_l. + now step. + - taur. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_r. + now step. Qed. Lemma eutt_disj_l {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), eutt RS t s -> - eutt (RS \2/ RS') t s. + eutt (cup RS RS') t s. Proof. intros. - eapply eqit_mon with (RR := RS); eauto. + eapply (eqit_mono RS _); eauto. Qed. Lemma eutt_disj_r {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), eutt RS' t s -> - eutt (RS \2/ RS') t s. + eutt (cup RS RS') t s. Proof. intros. - eapply eqit_mon with (RR := RS'); eauto. + eapply (eqit_mono RS' _); eauto. Qed. Lemma eutt_equiv {E} {R S} {RS RS'} : @@ -833,7 +824,7 @@ Lemma eutt_equiv {E} {R S} {RS RS'} : (HeterogeneousRelations.eq_rel RS RS') -> eutt RS t s <-> eutt RS' t s. Proof. - intros * EQ; split; intros EUTT; eapply eqit_mon; try apply EUTT; eauto. + intros * EQ; split; intros EUTT; eapply eqit_mono; try apply EUTT; eauto. all:apply EQ. Qed. @@ -861,20 +852,29 @@ Lemma eutt_sub_self {E R} (R1 R2: R -> R -> Prop) (t: itree E R): eutt R1 t t -> eutt R2 t t. Proof. - intros Hrel; revert t. ginit. gcofix CIH; intros t Heutt. - punfold Heutt; red in Heutt. + intros Hrel; revert t. icoinduction c cih; intros t Heutt. + step in Heutt. remember t as t' in Heutt at 2. assert (Ht': t' ≈ t) by now subst. clear Heqt'. - rewrite (itree_eta t). rewrite (itree_eta t), (itree_eta t') in Ht'. + rewrite (itree_eta t), (itree_eta t') in Ht'. revert Ht'. induction Heutt; clear t; intros Heq. - apply eutt_inv_Ret in Heq; subst. - gstep; constructor; auto. + constructor; auto. - apply eqit_inv_Tau in Heq. - gstep; constructor. gfinal; left. eapply CIH. - rewrite <- Heq at 2. now pclearbot. - - gstep; constructor. intros v. eapply eqit_inv_Vis in Heq. - gfinal; left. apply CIH. specialize (REL v). - rewrite <- Heq at 2. now pclearbot. - - rewrite tau_euttge, (itree_eta t1). apply IHHeutt. - rewrite tau_euttge in Heq. rewrite <- itree_eta; auto. - - apply IHHeutt. rewrite tau_euttge in Heq. rewrite <- itree_eta; auto. + constructor. eapply cih. + now rewrite <- Heq at 2. + - constructor. intros v. eapply eqit_inv_Vis in Heq. + eapply cih. now rewrite <- Heq at 2. + - taul. taur. apply IHHeutt. rewrite <- (itree_eta t1). + now rewrite tau_euttge in Heq. + - apply IHHeutt. rewrite <- (itree_eta). + now rewrite tau_euttge in Heq. Qed. + +(* wish list: + +absolute #1: more smoothness with step and observe; it still doesn't quite work right +any form of eqitF, no matter how obscure, should work with step +*) + +(* itree eta up to anything = eq_itree Proper up to anything *) + From 5dd6f4841aedbc4ef792c297e4d27b842b5cabfd Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 19 Mar 2026 12:32:40 -0400 Subject: [PATCH 089/189] Updated comments, now fixing step and unstep --- theories/Eq/Eqit.v | 49 +++++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 264be8ef..79558afa 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1,16 +1,9 @@ (* RTODOS: -- decide better notation for elem than \dot -- decide on names for relations: RR should not be the default name -for both the monomorphic relation R -> R -> Prop and the polymorphic one -R1 -> R2 -> Prop -- for now, RR for R -> R and RR12 for the latter. -- - (* 2. next: this: euttge RR is proper wrt eq_itree - make sure this works *) - rename and redo sections - keep building tests until rewriting robustness is clear - organize file - + - remove add parametric morphism *) (** * Strong bisimulation *) @@ -998,7 +991,7 @@ Proof. revert E R1 R2 RR c. Abort. -(* RTODO: working on this *) +(* RTODO: see if this is true *) Lemma euttge_proper_flip_euttgeC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttgeC RR) : Proper (euttge (E := E) eq ==> flip (euttge eq) ==> flip impl) ̇c. @@ -1365,7 +1358,6 @@ Abort. Currently fails, need better instance *) (* Test for rewrites in [eutt]: [eq_itree eq], [] *) - (* RTODO: These *) Goal t ≈⟨RR⟩ w -> t ≈⟨RR⟩ w. intros H. rewrite EQ1. @@ -1385,6 +1377,21 @@ Abort. assumption. Qed. + (* RTODO: next *) + Definition VE := fun _ : Type => Empty_set. + #[local] Parameter (EQUIV_tt : eutt (E:= VE) eq (Ret tt) (Ret tt)). + Goal eutt (E:= VE) eq (Ret tt) (Ret tt). + step. + (* THIS SHOULD WORK *) + Fail unstep. + Fail step. + assert (eutt (E:= VE) eq (Ret tt) (Ret tt)). + step. + (* we should be able to fold into observe form *) + Fail rewrite observing_observe. + Fail refold. + fail. +Abort. (* RTODO: These *) Goal t ≅ u -> t ≅ u. intros H. @@ -1398,7 +1405,6 @@ Abort. Goal t ≅ u -> v ≅⟨flip RR⟩ u -> t ≳⟨RR⟩ v -> t ≳⟨RR⟩ v. intros EQ1 EQ2' H. rewrite EQ1. - Typeclasses eauto := debug. rewrite EQ2. apply eqit_flip in EQ2'. rewrite EQ2 in EQ2'. @@ -1407,26 +1413,7 @@ Abort. (* rewrite EQ2'. *) (* TO FIX: only going through subrelation is insuficient *) Admitted. -(* Debug: 1.1-1.1: simple apply @eqitgen_cong_eqit_eq on -(Proper (?R ==> eq_itree eq ==> flip impl) (euttge eq)), 0 subgoal(s) -Debug: 1.1-2 : (ProperProxy (eq_itree eq) t) -Debug: 1.1-2: looking for (ProperProxy (eq_itree eq) t) without backtracking -Debug: -1.1-2.1: (*external*) (class_apply @eq_proper_proxy || - class_apply @reflexive_proper_proxy) on -(ProperProxy (eq_itree eq) t), 1 subgoal(s) -Debug: 1.1-2.1-1 : (ReflexiveProxy (eq_itree eq)) -Debug: 1.1-2.1-1: looking for (ReflexiveProxy (eq_itree eq)) without backtracking -Debug: 1.1-2.1-1.1: (*external*) (reflexive_proxy_tac A R) on -(ReflexiveProxy (eq_itree eq)), 1 subgoal(s) -Debug: 1.1-2.1-1.1-1 : (Reflexive (eq_itree eq)) -Debug: 1.1-2.1-1.1-1: looking for (Reflexive (eq_itree eq)) without backtracking -Debug: 1.1-2.1-1.1-1.1: simple apply @Reflexive_eqit_eq on -(Reflexive (eq_itree eq)), 0 subgoal(s) *) - -(* RTODO next: this proof, which has a goal of eqitF, is not -rewritable with the eqit_mon proper instance. we want this to work-- -will it? need a few more proper instances... maybe wrt going, etc. *) + (* Test [coinduction] tactic, notations *) Goal u ≈ t -> t ≈ u. unfold eutt, eqit at 2. From ab6fdc72efe3d98345ae4976c309906d06e0d738 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 19 Mar 2026 15:44:06 -0400 Subject: [PATCH 090/189] Progress, but trickiness with bind and coinduction. --- .Makefile.d | 8 +- theories/Core/KTreeFacts.v | 22 ++++-- theories/Eq/Eqit.v | 155 +++++++++++++++++++++++++++++++++---- 3 files changed, 158 insertions(+), 27 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index a105fbed..21b558ce 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -44,8 +44,8 @@ theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Cor theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -58,8 +58,8 @@ theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 8fb81a01..fc289a15 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -6,8 +6,6 @@ From Stdlib Require Import Setoids.Setoid Relations.Relations. -From Paco Require Import paco. - From ITree Require Import Basics.Basics Basics.CategoryOps @@ -21,8 +19,7 @@ From ITree Require Import Core.KTree Eq.Shallow Eq.Eqit - Eq.UpToTaus - Eq.Paco2. + Eq.UpToTaus. Import CatNotations. Local Open Scope itree_scope. @@ -39,6 +36,7 @@ Ltac unfold_ktree := lift_ktree_; cbn. (** ** [ITree.aloop] *) +From Coinduction Require Import all. Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) : forall x, @@ -50,10 +48,22 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) end) (inl x). Proof. (* this proof should follow from the facts about elem *) - einit. ecofix CIH. intros. + icoinduction c cih. intros. + (* NOTE: You need coinduction imported for this to work. We should + probably export it or at least whatever makes the coersion from + mon to body work... *) + to_mon. (* these rewrites must go through *) - rewrite !unfold_iter. + (* need eq_itree proper up to everything *) + intros. rewrite !unfold_iter. rewrite bind_map, bind_bind. + eapply eutt_clo_bind_chain; eauto. + intros; subst. + destruct u2. + - rewrite bind_tau. step. taus. eapply cih. + + + ebind; econstructor; try reflexivity. intros [a | b] _ []. - rewrite bind_tau. etau. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 79558afa..93caaef7 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -254,17 +254,15 @@ Experimenting with the latter at the moment. *) unfold euttge,eutt,eq_itree,eqit]. Ltac refold := - match goal with + repeat match goal with | |- context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => fold (@eqit E R1 R2 RR b1 b2); fold (@eq_itree E _ _ RR); fold (@euttge E _ _ RR); fold (@eutt E _ _ RR) - | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => - replace (eqitF eq true false sim (observe t1) (observe t2)) - with (eqit_mon eq true false sim t1 t2) by reflexivity end. + Ltac refold_in h := match type of h with | context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => @@ -272,24 +270,45 @@ Ltac refold_in h := fold (@eq_itree E _ _ RR) in h; fold (@euttge E _ _ RR) in h; fold (@eutt E _ _ RR) in h - | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => - replace (eqitF eq true false sim (observe t1) (observe t2)) - with (eqit_mon eq true false sim t1 t2) in h by reflexivity end. +Ltac to_mon := +match goal with +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => + replace (eqitF RR b1 b2 sim (observe t1) (observe t2)) + with (eqit_mon RR b1 b2 sim t1 t2) by reflexivity +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (?con1 ?a1) (?con2 ?a2)] => + replace (eqitF RR b1 b2 sim (con1 a1) (con2 a2)) + with (eqit_mon RR b1 b2 sim (go (con1 a1)) (go (con2 a2))) by reflexivity +end. + +Ltac to_mon_in h := +match type of h with +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => + replace (eqitF RR b1 b2 sim (observe t1) (observe t2)) + with (eqit_mon RR b1 b2 sim t1 t2) in h by reflexivity +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (?con1 ?a1) (?con2 ?a2)] => + replace (eqitF RR b1 b2 sim (con1 a1) (con2 a2)) + with (eqit_mon RR b1 b2 sim (go (con1 a1)) (go (con2 a2))) in h by reflexivity +end. + Tactic Notation "refold" "in" ident(h) := refold_in h. +Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. Tactic Notation "step" := iunfold; step; cbn; try refold. -Tactic Notation "unstep" := iunfold; unstep; try refold. +Tactic Notation "unstep" := iunfold; try to_mon; unstep; try refold. Tactic Notation "step" "in" ident(h) := iunfold in h; step in h; cbn[eqit_mon body] in h; unfold eqit_ in h; - try refold in h. + try refold_in h. +Tactic Notation "unstep" "in" ident(h) := +iunfold_in h; try to_mon_in h; unstep_in h; try refold_in h. + Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := - iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. +iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. (* The [icbn] tactic: unfolding the ITree definition *) @@ -1383,14 +1402,11 @@ Abort. Goal eutt (E:= VE) eq (Ret tt) (Ret tt). step. (* THIS SHOULD WORK *) - Fail unstep. - Fail step. + unstep. assert (eutt (E:= VE) eq (Ret tt) (Ret tt)). step. (* we should be able to fold into observe form *) Fail rewrite observing_observe. - Fail refold. - fail. Abort. (* RTODO: These *) Goal t ≅ u -> t ≅ u. @@ -1854,13 +1870,22 @@ Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo : itree. +(* We need better info up to bind *) +(* Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : + itree E R1 -> itree E R2 -> Prop := +| pbc_intro_h U1 U2 (RU : U1 -> U2 -> Prop) t1 t2 k1 k2 + (EQV: eqit RU b1 b2 t1 t2) + (REL: forall u1 u2, RU u1 u2 -> r (k1 u1) (k2 u2)) + : eqit_bind_clo b1 b2 r (ITree.bind t1 k1) (ITree.bind t2 k2) +. *) + (* One could consider making this a respectful instance. *) (* This might be good when doing other proofs, as it shows up often. *) (* Q: best way we want to define this? Does this ever leave the file? *) Lemma eqit_clo_bind {RS} b1 b2 : - eqit_bind_clo b1 b2 (gfp (eqit_mon RS b1 b2)) <= @eqit_mon E _ _ RS b1 b2 ( + eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 ( eqit RS b1 b2). Proof. repeat intro. @@ -1898,14 +1923,63 @@ Proof. eapply IHEQV; eauto. Qed. + +Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : + eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 (elem c). +Proof. + repeat intro. + inv H. + unfold eqit. step. + (* need strong CIH *) + revert EQV; revert t1 t2. + icoinduction x CIH; intros. + step in EQV. + icbn. + genobs t1 ot1. + genobs t2 ot2. + hinduction EQV before RR; intros; try easy. + (* be careful not to rewrite all here; this will mess up taul and taur cases. *) + 1-3: rewrite 2observe_bind; simpobs. + (* ret *) + + step. + now apply REL0. + (* taus *) + + constructor. + now apply CIH. + (* vis *) + + constructor. + intro. + apply CIH. apply REL. + (* taul *) + + rewrite observe_bind. + simpobs. + taul. + eapply IHEQV; eauto. + (* taur *) + + setoid_rewrite observe_bind at 2. + simpobs. + taur. + eapply IHEQV; eauto. +Qed. + Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eutt RR (ITree.bind t1 k1) (ITree.bind t2 k2). - - Proof. +Proof. unfold eutt. step. eapply eqit_clo_bind. econstructor; eauto. Qed. + +Lemma eutt_clo_bind_chain {U1 U2 UU} t1 t2 k1 k2 + (c : euttC RR) + (EQT: @eutt E U1 U2 UU t1 t2) + (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): + eqit_mon RR true true (elem c) (ITree.bind t1 k1) (ITree.bind t2 k2). +Proof. + eapply eqit_clo_bind_chain. econstructor; eauto. +Qed. + + End eqit_h. Lemma eutt_Tau {E R} (t1 t2 : itree E R): @@ -2566,3 +2640,50 @@ need to have subcomponents that share types. eutt RX violates this, as u and v are of different types. *) End eqit_elem. + +(* From Stdlib Require Import + Classes.Morphisms + Setoids.Setoid + Relations.Relations. + +From ITree Require Import + Basics.CategoryOps + Basics.CategoryTheory + Basics.CategoryKleisli + Basics.CategoryKleisliFacts. + +Require Import ITree.Basics.CategoryOps. +Import CatNotations. +Local Open Scope itree_scope. +Local Open Scope cat_scope. + +Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) + : forall x, + (ITree.bind (ITree.iter f x) (ITree.iter g)) + ≈ ITree.iter (fun ab => + match ab with + | inl a => ITree.map inl (f a) + | inr b => ITree.map (bimap inr (id_ _)) (g b) + end) (inl x). +Proof. + (* this proof should follow from the facts about elem *) + icoinduction c cih. intros. +replace ( + observe (ITree.bind (ITree.iter f x) (ITree.iter g)) +{[≈⟨eq⟩]} observe (ITree.iter +(fun ab : A + B => +match ab with +| inl a => ITree.map inl (f a) +| inr b => ITree.map (bimap inr (id_ C)) (g b) +end) (inl x)) +) +with +(@eqit_mon E C C eq true true (tower.elem c) ((ITree.bind (ITree.iter f x) (ITree.iter g))) +((ITree.iter +(fun ab : A + B => +match ab with +| inl a => ITree.map inl (f a) +| inr b => ITree.map (bimap inr (id_ C)) (g b) +end) (inl x))) +). + *) From 3001b71024a1fc32bd9bb65e437511bd716dfad7 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 19 Mar 2026 15:44:16 -0400 Subject: [PATCH 091/189] ideas for new closures --- theories/Core/KTreeFacts.v | 4 +-- theories/Eq/Eqit.v | 50 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index fc289a15..111a6e8e 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -57,9 +57,9 @@ Proof. (* need eq_itree proper up to everything *) intros. rewrite !unfold_iter. rewrite bind_map, bind_bind. + (* problem: this puts us at the gfp, so we lose the cih. *) eapply eutt_clo_bind_chain; eauto. - intros; subst. - destruct u2. + intros [a | b] _ []. - rewrite bind_tau. step. taus. eapply cih. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 93caaef7..649f5028 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1923,6 +1923,53 @@ Proof. eapply IHEQV; eauto. Qed. +Inductive eqit_bind_clo2 b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : + itree E R1 -> itree E R2 -> Prop := +| pbc_intro_h2 U1 U2 (RU : U1 -> U2 -> Prop) t1 t2 k1 k2 + (c : Chain (eqit_mon RU b1 b2)) + + (EQV: eqit_mon RU b1 b2 (elem c) t1 t2) + (REL: forall u1 u2, RU u1 u2 -> r (k1 u1) (k2 u2)) + : eqit_bind_clo2 b1 b2 r (ITree.bind t1 k1) (ITree.bind t2 k2) +. +Hint Constructors eqit_bind_clo2 : itree. + +Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : + eqit_bind_clo2 b1 b2 (eqit_mon RS b1 b2 (elem c)) <= @eqit_mon E _ _ RS b1 b2 (elem c). +Proof. + repeat intro. + inv H. + unfold eqit. step. + (* need strong CIH *) + revert EQV; revert t1 t2. + icoinduction x CIH; intros. + genobs t1 ot1. + genobs t2 ot2. + hinduction EQV before RR; intros; try easy. + (* be careful not to rewrite all here; this will mess up taul and taur cases. *) + 1-3: rewrite 2observe_bind; simpobs. + (* ret *) + + + apply REL0. + (* taus *) + + constructor. + apply CIH. + (* vis *) + + constructor. + intro. + apply CIH. apply REL. + (* taul *) + + rewrite observe_bind. + simpobs. + taul. + eapply IHEQV; eauto. + (* taur *) + + setoid_rewrite observe_bind at 2. + simpobs. + taur. + eapply IHEQV; eauto. +Qed. + Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 (elem c). @@ -1934,7 +1981,6 @@ Proof. revert EQV; revert t1 t2. icoinduction x CIH; intros. step in EQV. - icbn. genobs t1 ot1. genobs t2 ot2. hinduction EQV before RR; intros; try easy. @@ -1973,7 +2019,7 @@ Qed. Lemma eutt_clo_bind_chain {U1 U2 UU} t1 t2 k1 k2 (c : euttC RR) (EQT: @eutt E U1 U2 UU t1 t2) - (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): + (EQK: forall u1 u2, UU u1 u2 -> eutt RR (elem c) (k1 u1) (k2 u2)): eqit_mon RR true true (elem c) (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. eapply eqit_clo_bind_chain. econstructor; eauto. From 80863cb34a6408bdab263f123871c2b2be323b92 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 23 Mar 2026 13:42:41 -0400 Subject: [PATCH 092/189] Eqit builds, pushing with a note --- theories/Core/KTreeFacts.v | 15 +++--- theories/Eq/Eqit.v | 93 ++++++++++++++++++++++++-------------- 2 files changed, 69 insertions(+), 39 deletions(-) diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 111a6e8e..bd04a8d2 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -49,22 +49,25 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) Proof. (* this proof should follow from the facts about elem *) icoinduction c cih. intros. + (* Unset Printing Notations. *) (* NOTE: You need coinduction imported for this to work. We should probably export it or at least whatever makes the coersion from mon to body work... *) to_mon. (* these rewrites must go through *) (* need eq_itree proper up to everything *) - intros. rewrite !unfold_iter. + rewrite !unfold_iter. rewrite bind_map, bind_bind. (* problem: this puts us at the gfp, so we lose the cih. *) - eapply eutt_clo_bind_chain; eauto. + eapply eutt_clo_bind_chain. eauto. intros [a | b] _ []. - - rewrite bind_tau. step. taus. eapply cih. - + - rewrite bind_tau. step. taus. + (* problem: stuck at the gfp *) + Fail eapply cih. +Abort. - ebind; econstructor; try reflexivity. + (* ebind; econstructor; try reflexivity. intros [a | b] _ []. - rewrite bind_tau. etau. - rewrite bind_ret_l, tau_euttge. @@ -75,7 +78,7 @@ Proof. intros [b' | c] _ []; cbn. + etau. + reflexivity. -Qed. +Qed. *) Lemma eq_itree_iter' {E I1 I2 R1 R2} (RI : I1 -> I2 -> Prop) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 649f5028..00b48908 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -999,16 +999,7 @@ assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq - step. taul. reflexivity. - reflexivity. } step in Hfalse. inv Hfalse. easy. -Qed. - -Lemma not_euttge_proper_euttgeC' {E R1 R2} (RR : R1 -> R2 -> Prop) -(c : euttgeC RR) -: ~ Proper (euttge (E := E) eq ==> - euttge eq ==> flip impl) ̇c. -Proof. - unfold Proper, respectful, flip, impl. - revert E R1 R2 RR c. -Abort. +Qed. (* RTODO: see if this is true *) Lemma euttge_proper_flip_euttgeC {E R1 R2} @@ -1934,8 +1925,17 @@ Inductive eqit_bind_clo2 b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo2 : itree. +(* need something STRONG about elem- kuser tower induction? *) + +(* if 2 trees related by elem, + +and 2 continuations same, + +then bind ok? *) + + Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : - eqit_bind_clo2 b1 b2 (eqit_mon RS b1 b2 (elem c)) <= @eqit_mon E _ _ RS b1 b2 (elem c). + eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 (elem c). Proof. repeat intro. inv H. @@ -1943,17 +1943,18 @@ Proof. (* need strong CIH *) revert EQV; revert t1 t2. icoinduction x CIH; intros. + step in EQV. genobs t1 ot1. genobs t2 ot2. hinduction EQV before RR; intros; try easy. (* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) - + - apply REL0. + + step. + now apply REL0. (* taus *) + constructor. - apply CIH. + now apply CIH. (* vis *) + constructor. intro. @@ -1970,43 +1971,69 @@ Proof. eapply IHEQV; eauto. Qed. +(* FOR YANNICK: *) -Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : - eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 (elem c). +(* We would like this below property to be true, but it may not be: +the property as stated is not inf-closed, which means tower induction +fails. we need some kind of coinductive reasoning for the taus cause, +but `coinduction` also fails to help us because it creates a new, +unrelated chain to the ones we want to reason about. *) + +Lemma eqit_clo_bind_chain_elem {U1 U2 RS} (RU : U1 -> U2 -> Prop) + b1 b2 (cRU : Chain (eqit_mon RU b1 b2)) + (cRS : Chain (eqit_mon RS b1 b2)) + (t1 : itree E U1) (t2 : itree E U2) + (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) : +elem cRU t1 t2 -> +(forall u1 u2, RU u1 u2 -> eqit_mon RS b1 b2 (elem cRS) (k1 u1) (k2 u2)) -> +elem cRS (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - repeat intro. - inv H. - unfold eqit. step. - (* need strong CIH *) - revert EQV; revert t1 t2. - icoinduction x CIH; intros. - step in EQV. + revert_until cRS. + apply tower. + (* problem: this is not inf_closed, I think *) + repeat (apply inf_closed_all; intro). + + (* apply inf_closed_impl. + { repeat intro; apply H; eauto. } *) + + unfold inf_closed. + repeat intro. + eapply H; eauto. + (* maybe you can derive something clever from inf in H0, I don't know *) + shelve. + (* stuck here *) + - intros. + icbn in *. genobs t1 ot1. genobs t2 ot2. - hinduction EQV before RR; intros; try easy. - (* be careful not to rewrite all here; this will mess up taul and taur cases. *) + step. + hinduction H0 before RR; intros; try easy. +(* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) - + step. - now apply REL0. + + eapply H1; eauto. (* taus *) + constructor. - now apply CIH. + eapply H; eauto. (* vis *) + constructor. intro. - apply CIH. apply REL. + apply H; eauto. (* taul *) + rewrite observe_bind. simpobs. taul. - eapply IHEQV; eauto. + eapply IHeqitF; eauto. (* taur *) + setoid_rewrite observe_bind at 2. simpobs. taur. - eapply IHEQV; eauto. -Qed. + eapply IHeqitF; eauto. +Abort. + + + + Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) @@ -2019,7 +2046,7 @@ Qed. Lemma eutt_clo_bind_chain {U1 U2 UU} t1 t2 k1 k2 (c : euttC RR) (EQT: @eutt E U1 U2 UU t1 t2) - (EQK: forall u1 u2, UU u1 u2 -> eutt RR (elem c) (k1 u1) (k2 u2)): + (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eqit_mon RR true true (elem c) (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. eapply eqit_clo_bind_chain. econstructor; eauto. From f55eb91776cd8c025770da62a3da0de72a30d03b Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 23 Mar 2026 16:37:53 -0400 Subject: [PATCH 093/189] Small cleanup, trying generalized gfp --- theories/Eq/Eqit.v | 62 +++++----------------------------------------- 1 file changed, 6 insertions(+), 56 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 00b48908..f5d8d4ab 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1925,7 +1925,7 @@ Inductive eqit_bind_clo2 b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : . Hint Constructors eqit_bind_clo2 : itree. -(* need something STRONG about elem- kuser tower induction? *) +(* need something STRONG about elem- tower induction? *) (* if 2 trees related by elem, @@ -1939,10 +1939,11 @@ Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : Proof. repeat intro. inv H. - unfold eqit. step. + step. + clear c; (* need strong CIH *) - revert EQV; revert t1 t2. - icoinduction x CIH; intros. + revert EQV; revert t1 t2; + icoinduction c CIH; intros. step in EQV. genobs t1 ot1. genobs t2 ot2. @@ -2029,11 +2030,7 @@ Proof. simpobs. taur. eapply IHeqitF; eauto. -Abort. - - - - +Abort. Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) @@ -2684,7 +2681,6 @@ Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : Symmetric RS -> Symmetric (elem c). Proof. typeclasses eauto. Qed. -(* FOR YANNICK: the elem proper proof *) (* modified: eutt RX u v -> eqit RX b1 b2 u v. otherwise you get stuck when you need to know something about b1/b2. *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g @@ -2714,49 +2710,3 @@ u and v are of different types. *) End eqit_elem. -(* From Stdlib Require Import - Classes.Morphisms - Setoids.Setoid - Relations.Relations. - -From ITree Require Import - Basics.CategoryOps - Basics.CategoryTheory - Basics.CategoryKleisli - Basics.CategoryKleisliFacts. - -Require Import ITree.Basics.CategoryOps. -Import CatNotations. -Local Open Scope itree_scope. -Local Open Scope cat_scope. - -Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) - : forall x, - (ITree.bind (ITree.iter f x) (ITree.iter g)) - ≈ ITree.iter (fun ab => - match ab with - | inl a => ITree.map inl (f a) - | inr b => ITree.map (bimap inr (id_ _)) (g b) - end) (inl x). -Proof. - (* this proof should follow from the facts about elem *) - icoinduction c cih. intros. -replace ( - observe (ITree.bind (ITree.iter f x) (ITree.iter g)) -{[≈⟨eq⟩]} observe (ITree.iter -(fun ab : A + B => -match ab with -| inl a => ITree.map inl (f a) -| inr b => ITree.map (bimap inr (id_ C)) (g b) -end) (inl x)) -) -with -(@eqit_mon E C C eq true true (tower.elem c) ((ITree.bind (ITree.iter f x) (ITree.iter g))) -((ITree.iter -(fun ab : A + B => -match ab with -| inl a => ITree.map inl (f a) -| inr b => ITree.map (bimap inr (id_ C)) (g b) -end) (inl x))) -). - *) From 6059d481e812c1b62f6f5a27d206d4629867d024 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 23 Mar 2026 18:56:44 -0400 Subject: [PATCH 094/189] forall X Y : type under the gfp --- theories/Core/KTreeFacts.v | 8 +- theories/Eq/Eqit.v | 668 ++++++++++++++++--------------------- theories/Eq/UpToTaus.v | 16 +- 3 files changed, 297 insertions(+), 395 deletions(-) diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index bd04a8d2..891c23bc 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -46,7 +46,7 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) | inl a => ITree.map inl (f a) | inr b => ITree.map (bimap inr (id_ _)) (g b) end) (inl x). -Proof. +Proof. (* this proof should follow from the facts about elem *) icoinduction c cih. intros. (* Unset Printing Notations. *) @@ -58,11 +58,13 @@ Proof. (* need eq_itree proper up to everything *) rewrite !unfold_iter. rewrite bind_map, bind_bind. + Unset Printing Notations. (* problem: this puts us at the gfp, so we lose the cih. *) - eapply eutt_clo_bind_chain. eauto. + (* problem: this puts in chain_b automatically *) + eapply eqit_clo_bind_chain. + eauto. intros [a | b] _ []. - rewrite bind_tau. step. taus. - (* problem: stuck at the gfp *) Fail eapply cih. Abort. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index f5d8d4ab..c606912a 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -88,8 +88,13 @@ Section eqit. Then the desired equivalence relation is obtained by setting [RR := eq] (with [R1 = R2]). + + The lattice on which the greatest fixed point is taken quantifies + over types: [forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop]. + This allows chains to work uniformly across all type instantiations, + which is essential for the bind closure principle. *) - Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). + Context {E : Type -> Type}. (** We also need to do some gymnastics to work around the two-layered definition of [itree]. We first define a @@ -101,37 +106,38 @@ Section eqit. pattern-matching is not allowed on [itree]. *) - Inductive eqitF (b1 b2: bool) (sim : itree E R1 -> itree E R2 -> Prop) : + Inductive eqitF {R1 R2 : Type} (RR : R1 -> R2 -> Prop) (b1 b2: bool) (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := | EqRet r1 r2 (REL: RR r1 r2): - eqitF b1 b2 sim (RetF r1) (RetF r2) + eqitF RR b1 b2 sim (RetF r1) (RetF r2) | EqTau m1 m2 (REL: sim m1 m2): - eqitF b1 b2 sim (TauF m1) (TauF m2) + eqitF RR b1 b2 sim (TauF m1) (TauF m2) | EqVis {u} (e : E u) k1 k2 (REL: forall v, sim (k1 v) (k2 v) : Prop): - eqitF b1 b2 sim (VisF e k1) (VisF e k2) + eqitF RR b1 b2 sim (VisF e k1) (VisF e k2) | EqTauL t1 ot2 (CHECK: b1) - (REL: eqitF b1 b2 sim (observe t1) ot2): - eqitF b1 b2 sim (TauF t1) ot2 + (REL: eqitF RR b1 b2 sim (observe t1) ot2): + eqitF RR b1 b2 sim (TauF t1) ot2 | EqTauR ot1 t2 (CHECK: b2) - (REL: eqitF b1 b2 sim ot1 (observe t2)): - eqitF b1 b2 sim ot1 (TauF t2) + (REL: eqitF RR b1 b2 sim ot1 (observe t2)): + eqitF RR b1 b2 sim ot1 (TauF t2) . Hint Constructors eqitF : itree. - Definition eqit_ b1 b2 sim : - itree E R1 -> itree E R2 -> Prop := - fun t1 t2 => eqitF b1 b2 sim (observe t1) (observe t2). + Definition eqit_ b1 b2 + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) : + forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop := + fun R1 R2 RR t1 t2 => eqitF RR b1 b2 (sim R1 R2 RR) (observe t1) (observe t2). Hint Unfold eqit_ : itree. (** [eqitF] and [eqit_] are both monotone. *) Lemma eqitF_mono b1 b2 : Proper (leq ==> leq) (eqit_ b1 b2). Proof. - intros sim sim' Hsim x0 x1. + intros sim sim' Hsim R1 R2 RR x0 x1. unfold eqit_. intros IN. induction IN; constructor; auto. - apply Hsim; auto. @@ -141,24 +147,27 @@ Section eqit. (** Rocq is smart enough to figure out that [eqitF_mono] proves [eqit_] is monotone. *) - Definition eqit_mon b1 b2 : mon (itree E R1 -> itree E R2 -> Prop) := + Definition eqit_mon b1 b2 : mon (forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) := {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. - Definition eqit b1 b2 : itree E R1 -> itree E R2 -> Prop := + Definition eqit b1 b2 : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop := gfp (eqit_mon b1 b2). + (** Strong bisimulation on itrees. If [eqit RR t1 t2], we say that [t1] and [t2] are (strongly) bisimilar. As hinted at above, bisimilarity can be intuitively thought of as equality. *) - Definition eq_itree := eqit false false. + Definition eq_itree {R1 R2} (RR : R1 -> R2 -> Prop) := eqit false false R1 R2 RR. - Definition eutt := eqit true true. + Definition eutt {R1 R2} (RR : R1 -> R2 -> Prop) := eqit true true R1 R2 RR. - Definition euttge := eqit true false. + Definition euttge {R1 R2} (RR : R1 -> R2 -> Prop) := eqit true false R1 R2 RR. End eqit. -Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. +Arguments eqit_ {E} b1 b2 sim R1 R2 RR t1 t2/. +Arguments eqit {E} b1 b2 {R1 R2} RR _ _. +Arguments eqit_mon {E} b1 b2. (** Notation of [eqit] and [eqitF]. You can write @@ -176,23 +185,23 @@ Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. Infix "{≅⟨ R ⟩}" := (eqitF R false false (eq_itree _)) (at level 70) : type_scope. Infix "{≅}" := (eqitF eq false false (eq_itree _)) (at level 70, only parsing) : type_scope. (* b (elem) *) - Infix "{[≅⟨ R ⟩]}" := (eqitF R false false (elem _)) (at level 70) : type_scope. - Infix "{[≅]}" := (eqitF eq false false (elem _)) (at level 70, only parsing) : type_scope. + Infix "{[≅⟨ R ⟩]}" := (eqitF R false false (elem _ _ _ _)) (at level 70) : type_scope. + Infix "{[≅]}" := (eqitF eq false false (elem _ _ _ _)) (at level 70, only parsing) : type_scope. (* elem *) - Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon R false false) _) (at level 70) : type_scope. - Infix "[≅]" := (@elem _ _ (eqit_mon eq false false) _) (at level 70) : type_scope. - + Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon false false) _ _ _ R) (at level 70) : type_scope. + Infix "[≅]" := (@elem _ _ (eqit_mon false false) _ _ _ eq) (at level 70) : type_scope. + Infix "≈⟨ R ⟩" := (eutt R) (at level 70) : type_scope. Infix "≈" := (eutt eq) (at level 70) : type_scope. (* b (gfp) *) Infix "{≈⟨ R ⟩}" := (eqitF R true true (eutt _)) (at level 70) : type_scope. Infix "{≈}" := (eqitF eq true true (eutt _)) (at level 70, only parsing) : type_scope. (* b (elem) *) - Infix "{[≈⟨ R ⟩]}" := (eqitF R true true (elem _)) (at level 70) : type_scope. - Infix "{[≈]}" := (eqitF eq true true (elem _)) (at level 70, only parsing) : type_scope. + Infix "{[≈⟨ R ⟩]}" := (eqitF R true true (elem _ _ _ _)) (at level 70) : type_scope. + Infix "{[≈]}" := (eqitF eq true true (elem _ _ _ _)) (at level 70, only parsing) : type_scope. (* elem *) - Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon R true true) _) (at level 70) : type_scope. - Infix "[≈]" := (@elem _ _ (eqit_mon eq true true) _) (at level 70) : type_scope. + Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon true true) _ _ _ R) (at level 70) : type_scope. + Infix "[≈]" := (@elem _ _ (eqit_mon true true) _ _ _ eq) (at level 70) : type_scope. Infix "≳⟨ R ⟩" := (euttge R) (at level 70) : type_scope. Infix "≳" := (euttge eq) (at level 70) : type_scope. @@ -200,16 +209,16 @@ Arguments eqit_ {E R1 R2} RR b1 b2 sim t1 t2/. Infix "{≳⟨ R ⟩}" := (eqitF R true false (euttge _)) (at level 70) : type_scope. Infix "{≳}" := (eqitF eq true false (euttge _)) (at level 70, only parsing) : type_scope. (* b (elem) *) - Infix "{[≳⟨ R ⟩]}" := (eqitF R true false (elem _)) (at level 70) : type_scope. - Infix "{[≳]}" := (eqitF eq true false (elem _)) (at level 70, only parsing) : type_scope. + Infix "{[≳⟨ R ⟩]}" := (eqitF R true false (elem _ _ _ _)) (at level 70) : type_scope. + Infix "{[≳]}" := (eqitF eq true false (elem _ _ _ _)) (at level 70, only parsing) : type_scope. (* elem *) - Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon R true false) _) (at level 70) : type_scope. - Infix "[≳]" := (@elem _ _ (eqit_mon eq true false) _) (at level 70) : type_scope. - + Infix "[≳⟨ R ⟩]" := (@elem _ _ (eqit_mon true false) _ _ _ R) (at level 70) : type_scope. + Infix "[≳]" := (@elem _ _ (eqit_mon true false) _ _ _ eq) (at level 70) : type_scope. + (* chains *) - Notation euttC RR := (Chain (eqit_mon RR true true)). - Notation euttgeC RR := (Chain (eqit_mon RR true false)). - Notation eq_itreeC RR := (Chain (eqit_mon RR false false)). + Notation euttC := (Chain (eqit_mon true true)). + Notation euttgeC := (Chain (eqit_mon true false)). + Notation eq_itreeC := (Chain (eqit_mon false false)). (* makes [observe] a bit nicer to look at *) Notation "⊙ x" := (observe x) (only printing, at level 10). @@ -255,48 +264,55 @@ Experimenting with the latter at the moment. *) Ltac refold := repeat match goal with - | |- context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => - fold (@eqit E R1 R2 RR b1 b2); - fold (@eq_itree E _ _ RR); - fold (@euttge E _ _ RR); - fold (@eutt E _ _ RR) + | |- context[gfp (@eqit_mon ?E ?b1 ?b2)] => + fold (@eqit E b1 b2); + try fold (@eq_itree E _ _); + try fold (@euttge E _ _); + try fold (@eutt E _ _) end. Ltac refold_in h := match type of h with - | context[gfp (@eqit_mon ?E ?R1 ?R2 ?RR ?b1 ?b2)] => - fold (@eqit E R1 R2 RR b1 b2) in h; - fold (@eq_itree E _ _ RR) in h; - fold (@euttge E _ _ RR) in h; - fold (@eutt E _ _ RR) in h + | context[gfp (@eqit_mon ?E ?b1 ?b2)] => + fold (@eqit E b1 b2) in h; + try fold (@eq_itree E _ _) in h; + try fold (@euttge E _ _) in h; + try fold (@eutt E _ _) in h end. Ltac to_mon := match goal with -| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => - replace (eqitF RR b1 b2 sim (observe t1) (observe t2)) - with (eqit_mon RR b1 b2 sim t1 t2) by reflexivity -| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (?con1 ?a1) (?con2 ?a2)] => - replace (eqitF RR b1 b2 sim (con1 a1) (con2 a2)) - with (eqit_mon RR b1 b2 sim (go (con1 a1)) (go (con2 a2))) by reflexivity +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) + with (eqit_mon b1 b2 f R1 R2 RR t1 t2) +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?con1 ?a1) (?con2 ?a2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) (con1 a1) (con2 a2)) + with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) end. Ltac to_mon_in h := match type of h with -| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (observe ?t1) (observe ?t2)] => - replace (eqitF RR b1 b2 sim (observe t1) (observe t2)) - with (eqit_mon RR b1 b2 sim t1 t2) in h by reflexivity -| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 ?sim (?con1 ?a1) (?con2 ?a2)] => - replace (eqitF RR b1 b2 sim (con1 a1) (con2 a2)) - with (eqit_mon RR b1 b2 sim (go (con1 a1)) (go (con2 a2))) in h by reflexivity +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) + with (eqit_mon b1 b2 f R1 R2 RR t1 t2) in h +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?con1 ?a1) (?con2 ?a2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) (con1 a1) (con2 a2)) + with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) in h end. +#[local] Ltac icbn := cbn[eqit_mon body eqit_]. +#[local] Ltac icbn_in H := cbn[eqit_mon body eqit_] in H. + +#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. +#[local] Tactic Notation "icbn" "in" "*" := cbn[eqit_mon body eqit_] in *. + + Tactic Notation "refold" "in" ident(h) := refold_in h. Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. -Tactic Notation "step" := iunfold; step; cbn; try refold. +Tactic Notation "step" := iunfold; step; icbn; try refold. Tactic Notation "unstep" := iunfold; try to_mon; unstep; try refold. Tactic Notation "step" "in" ident(h) := iunfold in h; @@ -320,11 +336,6 @@ iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. in both hypotheses and the goal is so common that the library uses an internal tactic for doing so all at once. *) -#[local] Ltac icbn := cbn[eqit_mon body eqit_]. -#[local] Ltac icbn_in H := cbn[eqit_mon body eqit_] in H. - -#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. -#[local] Tactic Notation "icbn" "in" "*" := cbn[eqit_mon body eqit_] in *. (* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by simplifiying, rewriting, and trying to apply assumptions. *) @@ -353,7 +364,7 @@ Module step_notation_tests. #[local] Parameter RR : R1 -> R2 -> Prop. #[local] Parameter t u : itree E R1. #[local] Parameter v w : itree E R2. - #[local] Parameter eqc : (Chain (@eqit_mon E R2 R2 eq false false)). + #[local] Parameter eqc : (Chain (@eqit_mon E false false)). #[local] Parameter (EQ1 : t ≅ u). #[local] Parameter (EQUIV1 : t ≈ u). #[local] Parameter (EQ2 : v ≅ w). @@ -369,11 +380,11 @@ Goal eutt RR u v. Fail step. unstep. Fail unstep. - assert (eqitF eq false false (elem eqc) (observe v) (observe w)). + assert (eqitF eq false false (elem eqc _ _ eq) (observe v) (observe w)). step. (* now in the loop *) step. unstep. Fail unstep. step. Fail step. now (unstep; apply EQ2). - assert ((elem eqc) v w). + assert ((elem eqc _ _ eq) v w). step. step. (* now in the loop *) step. unstep. Fail unstep. step. Fail step. now (unstep; apply EQ2). @@ -482,19 +493,19 @@ Proof. econstructor; now apply H. Qed. -#[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} - : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). +#[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} b1 b2 + : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eqit E b1 b2 R1 R2). Proof with auto with itree. repeat red. repeat intro. subst. split. - - revert_until y1. + - revert_until H. icoinduction R CIH. intros. step in H0. - hinduction H0 before CIH... - econstructor. now apply H. - - revert_until y1. icoinduction R CIH. intros. + hinduction H0 before CIH... + + econstructor. now apply H. + - revert_until H. icoinduction R CIH. intros. step in H0. hinduction H0 before CIH... econstructor; now apply H. @@ -532,7 +543,7 @@ Qed. Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: forall (u : itree E R1) (v : itree E R2), - eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. + eqit b2 b1 (flip RR) v u -> eqit b1 b2 RR u v. Proof. (* do coinduction. *) icoinduction c CIH. intros u v euv. @@ -549,7 +560,7 @@ Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) (LEb1: b1 -> b1') (LEb2: b2 -> b2') (LERR: RR <= RR'): - @eqit E R1 R2 RR b1 b2 <= eqit RR' b1' b2'. + @eqit E b1 b2 R1 R2 RR <= eqit b1' b2' RR'. Proof. repeat intro. revert a a0 H. @@ -600,54 +611,61 @@ Properties of the chains specialize to the relations: the gfp is an element of t constructor; eauto. Qed. - #[global] Instance Reflexive_eqit_ b1 b2 (sim : itree E R -> itree E R -> Prop) - : Reflexive RR -> Reflexive sim -> Reflexive (eqit_ RR b1 b2 sim). + #[global] Instance Reflexive_eqit_ b1 b2 + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + : Reflexive RR -> Reflexive (sim R R RR) -> Reflexive (eqit_ b1 b2 sim R R RR). Proof. repeat red. intros. reflexivity. Qed. - #[global] Instance Symmetric_eqit_ b (sim : itree E R -> itree E R -> Prop) - : Symmetric RR -> Symmetric sim -> Symmetric (eqit_ RR b b sim). + #[global] Instance Symmetric_eqit_ b + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + : Symmetric RR -> Symmetric (sim R R RR) -> Symmetric (eqit_ b b sim R R RR). Proof. repeat red; symmetry; auto. Qed. - #[global] Instance Transitive_eqit_ (sim : itree E R -> itree E R -> Prop) - : Transitive RR -> Transitive sim -> Transitive (eqit_ RR false false sim). + #[global] Instance Transitive_eqit_ + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + : Transitive RR -> Transitive (sim R R RR) -> Transitive (eqit_ false false sim R R RR). Proof. repeat red; etransitivity; eauto. Qed. - #[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) - {c: Chain (@eqit_mon E R R RR b1 b2)}: Reflexive ̇c. + (* Prove Reflexive/Symmetric for eqit first (by coinduction), + then derive for elem via gfp_chain. *) + + #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E b1 b2 _ _ RR). Proof. - now apply Reflexive_chain; repeat intro; apply Reflexive_eqit_. - Qed. + red; intros. + revert x. icoinduction c CIH. intro. + now repeat apply Reflexive_eqit_. + Qed. - #[global] Instance Symmetric_elem (b: bool) (HS : Symmetric RR) - {c: Chain (@eqit_mon E R R RR b b)}: Symmetric ̇c. + #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E b b _ _ RR). Proof. - now apply Symmetric_chain; repeat intro; apply Symmetric_eqit_. - Qed. + intros Hsym x y Hxy. + apply eqit_flip. + eapply eqit_mono; [auto | auto | | exact Hxy]; auto. + Qed. + #[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) + {c: Chain (@eqit_mon E b1 b2)}: Reflexive (elem c R R RR). + Proof. + red; intro x. + apply (gfp_chain c). + reflexivity. + Qed. - + Lemma inf_closed_Symmetric_at : + inf_closed (X := forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + (fun x => Symmetric (x R R RR)). + Proof. + intros T HT x y Hxy. + intros z Hz. apply HT; auto. + Qed. -#[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). -Proof. - red; intros. - (* strengthen bisimulation: elem c x x holds for all x. *) - revert x. icoinduction c CIH. intro. step. - now repeat apply Reflexive_eqit_. -Qed. + #[global] Instance Symmetric_elem (b: bool) (HS : Symmetric RR) + {c: Chain (@eqit_mon E b b)}: Symmetric (elem c R R RR). + Proof. + revert c. apply (tower inf_closed_Symmetric_at). + intros c Hsym. apply Symmetric_eqit_; auto. + Qed. -#[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). -Proof. - intros. - unfold Symmetric. - icoinduction c CIH. - assert (Symmetric (elem c)). - { apply Symmetric_chain. red; intros. now apply Symmetric_eqit_. } - intros. - apply Symmetric_eqit_; auto. - step in H1. - icbn. - induction H1; eauto with itree. -Qed. End eqit_gen. @@ -660,19 +678,19 @@ Section eqit_inv. match _observe t1_, _observe t2_ with | RetF r1, RetF r2 => RR r1 r2 | VisF e1 k1, VisF e2 k2 => - exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2 + exists p, eqeq E p e1 e2 /\ pweqeq (eqit b1 b2 RR) p k1 k2 | RetF _, VisF _ _ | VisF _ _, RetF _ => False - | TauF t1, TauF t2 => eqit RR b1 b2 t1 t2 + | TauF t1, TauF t2 => eqit b1 b2 RR t1 t2 | TauF t1, _ => - if b1 then eqit RR b1 b2 t1 t2_ + if b1 then eqit b1 b2 RR t1 t2_ else False | _, TauF t2 => - if b2 then eqit RR b1 b2 t1_ t2 + if b2 then eqit b1 b2 RR t1_ t2 else False end. Lemma eqit_inv_Tau_l t1 t2 : - @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. + @eqit E b1 true R1 R2 RR (Tau t1) t2 -> eqit b1 true RR t1 t2. Proof. intros * H. step in H. @@ -685,7 +703,7 @@ Section eqit_inv. Qed. Lemma eqit_inv_Tau_r t1 t2 : - @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. + @eqit E true b2 R1 R2 RR t1 (Tau t2) -> eqit true b2 RR t1 t2. Proof. intros * H. step in H. @@ -698,8 +716,8 @@ Section eqit_inv. Qed. Lemma eqitF_inv_Tau t1 t2 : - @eqitF E R1 R2 RR b1 b2 (gfp (eqit_mon RR b1 b2)) (TauF t1) (TauF t2) - -> eqitF RR b1 b2 (gfp (eqit_mon RR b1 b2)) (observe t1) (observe t2). + @eqitF E R1 R2 RR b1 b2 (gfp (eqit_mon b1 b2) R1 R2 RR) (TauF t1) (TauF t2) + -> eqitF RR b1 b2 (gfp (eqit_mon b1 b2) R1 R2 RR) (observe t1) (observe t2). Proof. intros. remember (TauF t1) as ot1. @@ -718,14 +736,14 @@ Section eqit_inv. Qed. Lemma eqit_inv_Tau t1 t2 : - @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. + @eqit E b1 b2 R1 R2 RR (Tau t1) (Tau t2) -> eqit b1 b2 RR t1 t2. Proof. intros. step in H; step. now apply eqitF_inv_Tau. Qed. - Lemma eqit_inv t1 t2 : eqit RR b1 b2 t1 t2 -> eqit__ t1 t2. + Lemma eqit_inv t1 t2 : eqit b1 b2 RR t1 t2 -> eqit__ t1 t2. Proof. intros H; step in H. genobs t1 ot1; genobs t2 ot2; revert t1 t2 Heqot1 Heqot2; unfold observe, _observe. @@ -828,8 +846,8 @@ Tactic Notation "tower" "induction" := tower_induction. 3. finally, thanks! *) #[global] Instance euttge_proper_euttC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) ̇c. + (RR : R1 -> R2 -> Prop) (c : euttC): + Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c _ _ RR). Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. @@ -901,18 +919,18 @@ Qed. (* here chain_b lifts b to elements of the chain... *) #[global] Instance euttge_proper_euttC_mon {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon RR true true (elem c)). + (RR : R1 -> R2 -> Prop) (c : euttC): + Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon true true (elem c) R1 R2 RR). Proof. eapply euttge_proper_euttC with (c := chain_b c); eauto. Qed. (* ... and chain_gfp lifts the gfp. *) #[global] Instance euttge_proper_eutt {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : Chain (@eqit_mon E _ _ RR true true)): + (RR : R1 -> R2 -> Prop) (c : Chain (@eqit_mon E true true)): Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eutt RR). Proof. - eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon RR true true))); eauto. + eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon true true))); eauto. Qed. Lemma eq_subH_euttge {E R1 R2} (RR : R1 -> R2 -> Prop): @@ -940,8 +958,8 @@ Proof. now apply eqit_mono. Qed. Proof. now apply eqit_mono. Qed. #[global] Instance eq_proper_euttC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. + (RR : R1 -> R2 -> Prop) (c : euttC): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (elem c _ _ RR). Proof. split; intro. 1: symmetry in H; symmetry in H0. @@ -953,7 +971,7 @@ Qed. #[global] Instance eq_proper_eqit {E R1 R2 b1 b2} (RR : R1 -> R2 -> Prop): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit RR b1 b2). + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit b1 b2 RR). Proof with eauto with itree. split; intros; revert_until RR; @@ -986,8 +1004,8 @@ Qed. but ̇c (Ret tt) (Tau (Ret tt)) = euttge eq (Ret tt) (Tau (Ret tt)) is FALSE because b2=false means the right side cannot skip taus. *) Lemma not_euttge_proper_euttgeC : -~ (forall E R1 R2 (RR : R1 -> R2 -> Prop) (c : euttgeC RR), - Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c)). +~ (forall E R1 R2 (RR : R1 -> R2 -> Prop) (c : euttgeC), + Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c _ _ RR)). unfold Proper, respectful, flip, impl. intro. assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq @@ -1003,9 +1021,9 @@ Qed. (* RTODO: see if this is true *) Lemma euttge_proper_flip_euttgeC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttgeC RR) : - Proper (euttge (E := E) eq ==> flip (euttge eq) ==> flip impl) ̇c. -Proof with eauto with itree. + (RR : R1 -> R2 -> Prop) (c : euttgeC) : + Proper (euttge (E := E) eq ==> flip (euttge eq) ==> flip impl) (elem c _ _ RR). +Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. @@ -1066,8 +1084,8 @@ Abort. Since euttgeC has b2=false, the right argument cannot skip taus, so we need strong bisimulation (eq_itree eq) there, not euttge eq. *) #[global] Instance euttge_eq_proper_euttgeC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttgeC RR): - Proper (euttge (E := E) eq ==> eq_itree eq ==> flip impl) ̇c. + (RR : R1 -> R2 -> Prop) (c : euttgeC): + Proper (euttge (E := E) eq ==> eq_itree eq ==> flip impl) (elem c _ _ RR). Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. @@ -1124,8 +1142,8 @@ Proof with eauto with itree. Qed. #[global] Instance eq_proper_euttgeC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : euttgeC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. + (RR : R1 -> R2 -> Prop) (c : euttgeC): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (elem c _ _ RR). Proof. split; intro. - (* forward: t1 ≅ t2, s1 ≅ s2, ̇c t1 s1 → ̇c t2 s2: @@ -1141,18 +1159,21 @@ Qed. #[global] Instance eq_proper_eq_itreeC {E R1 R2} - (RR : R1 -> R2 -> Prop) (c : eq_itreeC RR): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) ̇c. + (RR : R1 -> R2 -> Prop) (c : eq_itreeC): + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (elem c _ _ RR). Proof. split; revert_until c; tower induction; intros!; step in H0; step in H1; icbn in *. (* this proof is largely uninteresting and is just diagram chase. *) all: - inv H2; simpobs; try easy; + inv H2; simpobs; try easy. + all: try genvis e k1 ok1; inv H0; simpobs; try easy; - try genvis e k2 ok2; inv H1; simpobs; try easy; - try do 2 inv_Vis; constructor; intros; try eapply H; eauto; - now rewrite H0, H1. + try genvis e k2 ok2; inv H1; simpobs; try easy. + all: try do 2 inv_Vis; constructor; intros; try eapply H; eauto. + all: inv H1; inv H0. + all: + eapply H; try eapply REL0; try eapply REL1; eauto. Qed. @@ -1171,9 +1192,9 @@ Qed. (* Transitivity of eqit *) Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t2 t3 - (INL: eqit RR1 b1 b2 t1 t2) - (INR: eqit RR2 b1 b2 t2 t3): - @eqit E _ _ (rcompose RR1 RR2) b1 b2 t1 t3. + (INL: eqit b1 b2 RR1 t1 t2) + (INR: eqit b1 b2 RR2 t2 t3): + @eqit E b1 b2 _ _ (rcompose RR1 RR2) t1 t3. Proof. unfold eqit. revert_until b2. (* we'll need the coinductive reasoning later: elements of the chain @@ -1230,7 +1251,7 @@ Arguments eqit_trans {E R1 R2 R3} [RR1 RR2 b1 b2 t1 t2 t3]. two equivalences and a preorder as expected. *) #[global] Instance Transitive_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b1 b2: bool): - Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). + Transitive RR -> Transitive (@eqit E b1 b2 _ _ RR). Proof. red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. @@ -1238,19 +1259,19 @@ Proof. Qed. #[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): - Transitive (@eqit E R R eq b1 b2). + Transitive (@eqit E b1 b2 R R eq). Proof. apply Transitive_eqit. repeat intro; subst; eauto. Qed. #[global] Instance Equivalence_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b: bool): - Equivalence RR -> Equivalence (@eqit E R R RR b b). + Equivalence RR -> Equivalence (@eqit E b b R R RR). Proof. constructor; try typeclasses eauto. Qed. #[global] Instance Equivalence_eqit_eq {E : Type -> Type} {R: Type} (b: bool): - Equivalence (@eqit E R R eq false false). + Equivalence (@eqit E false false R R eq). Proof. constructor; try typeclasses eauto. Qed. @@ -1263,15 +1284,17 @@ Qed. #[global] Instance Transitive_elem {E R RR} (HT : Transitive RR) - {c: Chain (@eqit_mon E R R RR false false)}: Transitive (elem c). + {c: Chain (@eqit_mon E false false)}: Transitive (elem c R R RR). Proof. - apply Transitive_chain. repeat intro. - cbn in *. - eapply Transitive_eqitF; eauto. + assert (Hinf : inf_closed (X := forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + (fun x => Transitive (x R R RR))). + { intros T HTr x y z Hxy Hyz i Hi. apply (HTr _ Hi) with y; [exact (Hxy i Hi) | exact (Hyz i Hi)]. } + revert c. apply (tower Hinf). intros c Htrans. + apply Transitive_eqit_; auto. Qed. #[global] Instance Equivalence_elem {E R RR} (HT : Equivalence RR) - {c: Chain (@eqit_mon E R R RR false false)}: Equivalence (elem c). + {c: Chain (@eqit_mon E false false)}: Equivalence (elem c R R RR). Proof. constructor; typeclasses eauto. Qed. @@ -1354,8 +1377,8 @@ Goal eutt RR u v. exact EQ1. rewrite EQ2, <- EQ2. exact EQ2. + step. step. - unstep. rewrite <- EQ1. rewrite <- GT. rewrite EQ1. @@ -1391,13 +1414,13 @@ Abort. Definition VE := fun _ : Type => Empty_set. #[local] Parameter (EQUIV_tt : eutt (E:= VE) eq (Ret tt) (Ret tt)). Goal eutt (E:= VE) eq (Ret tt) (Ret tt). - step. + step. (* THIS SHOULD WORK *) unstep. assert (eutt (E:= VE) eq (Ret tt) (Ret tt)). step. (* we should be able to fold into observe form *) - Fail rewrite observing_observe. + rewrite observing_observe. Abort. (* RTODO: These *) Goal t ≅ u -> t ≅ u. @@ -1444,7 +1467,7 @@ Section eqit_eq. Context {E : Type -> Type} {R : Type}. -Local Notation eqit := (@eqit E R R eq). +Local Notation eqit := (fun b1 b2 => @eqit E b1 b2 R R eq). #[global] Instance Reflexive_eqitF_eq b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive sim -> Reflexive (eqitF eq b1 b2 sim). @@ -1458,12 +1481,14 @@ Proof. apply Symmetric_eqitF; eauto. Qed. -#[global] Instance Reflexive_eqit__eq b1 b2 (sim : itree E R -> itree E R -> Prop) -: Reflexive sim -> Reflexive (eqit_ eq b1 b2 sim). +#[global] Instance Reflexive_eqit__eq b1 b2 + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) +: Reflexive (sim R R eq) -> Reflexive (eqit_ b1 b2 sim R R eq). Proof. apply Reflexive_eqit_; eauto. Qed. -#[global] Instance Symmetric_eqit__eq b (sim : itree E R -> itree E R -> Prop) -: Symmetric sim -> Symmetric (eqit_ eq b b sim). +#[global] Instance Symmetric_eqit__eq b + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) +: Symmetric (sim R R eq) -> Symmetric (eqit_ b b sim R R eq). Proof. apply Symmetric_eqit_; eauto. Qed. (** *** [eqit] is an equivalence relation *) @@ -1504,14 +1529,14 @@ Proof. step. rewrite (observing_observe H). apply Reflexive_eqitF; eauto. Qed. -#[global] Instance observing_sub_elem b1 b2 (c : Chain (eqit_mon eq b1 b2)) (l r : itree E R) : - subrelation (@observing E R R eq) (elem c). +#[global] Instance observing_sub_elem b1 b2 (c : Chain (eqit_mon b1 b2)) (l r : itree E R) : + subrelation (@observing E R R eq) (elem c R R eq). Proof. repeat intro. inv H. - step. - rewrite observing_observe. - step. reflexivity. + step. + rewrite observing_observe. + step. reflexivity. Qed. (** ** Eta-expansion *) @@ -1550,7 +1575,7 @@ Proof. Qed. Lemma eqit_inv_Ret {E R1 R2 RR} b1 b2 r1 r2 : - @eqit E R1 R2 RR b1 b2 (Ret r1) (Ret r2) -> RR r1 r2. + @eqit E b1 b2 R1 R2 RR (Ret r1) (Ret r2) -> RR r1 r2. Proof. intros. step in H. inv H. eauto. Qed. @@ -1558,8 +1583,8 @@ Qed. (* Axiom-free, weaker version of [eqit_inv_vis] *) Lemma eqit_inv_Vis_weak {E R1 R2 RR} b1 b2 {u1 u2} (e1 : E u1) (e2 : E u2) (k1: u1 -> itree E R1) (k2: u2 -> itree E R2) : - eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2) -> - exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2. + eqit b1 b2 RR (Vis e1 k1) (Vis e2 k2) -> + exists p, eqeq E p e1 e2 /\ pweqeq (eqit b1 b2 RR) p k1 k2. Proof. intros. step in H; apply eqitF_inv_VisF_weak in H. destruct H as [ p []]. exists p; split; auto. @@ -1568,8 +1593,8 @@ Qed. (* This assumes UIP. *) Lemma eqit_inv_Vis {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 U (e : E U) (k1 : U -> itree E R1) (k2 : U -> itree E R2) - : eqit RR b1 b2 (Vis e k1) (Vis e k2) -> - forall u, eqit RR b1 b2 (k1 u) (k2 u). + : eqit b1 b2 RR (Vis e k1) (Vis e k2) -> + forall u, eqit b1 b2 RR (k1 u) (k2 u). Proof. intros H x; step in H; apply eqitF_inv_VisF with (x := x) in H; auto. Qed. @@ -1588,13 +1613,13 @@ Proof. Qed. Lemma eqit_Tau_l {E R1 R2 RR} b2 (t1 : itree E R1) (t2 : itree E R2) : - eqit RR true b2 t1 t2 -> eqit RR true b2 (Tau t1) t2. + eqit true b2 RR t1 t2 -> eqit true b2 RR (Tau t1) t2. Proof. intros. step. econstructor; eauto. now step in H. Qed. Lemma eqit_Tau_r {E R1 R2 RR} b1 (t1 : itree E R1) (t2 : itree E R2) : - eqit RR b1 true t1 t2 -> eqit RR b1 true t1 (Tau t2). + eqit b1 true RR t1 t2 -> eqit b1 true RR t1 (Tau t2). Proof. intros. step. econstructor; eauto. now step in H. Qed. @@ -1622,7 +1647,7 @@ Qed. Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : - (@eqit E R1 R2 RS b1 b2) + (@eqit E b1 b2 R1 R2 RS) with signature (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) as eqitgen_cong_eqit. Proof. @@ -1634,11 +1659,11 @@ repeat intro; unfold flip, eq_itree in *. (* Prove the diagram commutes *) (* - y -(eqit RS b1 b2) → y0 + y -(eqit b1 b2 RS) → y0 ↑ ↑ ≅RR1 ≅RR2 | | - x -(?eqit RS b1 b2)→ x0 + x -(?eqit b1 b2 RS)→ x0 *) (* Problem: this diagram does not have a path from x to x0. *) @@ -1646,11 +1671,11 @@ repeat intro; unfold flip, eq_itree in *. begin with this is a "symmetry" on trees only. *) (* - y -(eqit RS b1 b2) → y0 + y -(eqit b1 b2 RS) → y0 ↑ | ≅RR1 ≅(flip RR2) | ↓ - x -(?eqit RS b1 b2)→ x0 + x -(?eqit b1 b2 RS)→ x0 (* This diagram has a clear path (lifting with eqit_mono), and LERR1 and LERR2 get us the correlaries we need to arrive there: namely: *) @@ -1668,14 +1693,14 @@ repeat intro; unfold flip, eq_itree in *. (* build arrows and strengthen *) assert (rcompose RR1 RS <= RS) by (intros ? ? [? ?]; eauto). assert (rcompose RS (flip RR2) <= RS) by (intros ? ? [? ?]; eauto). - assert (eqit RR1 b1 b2 x y) by + assert (eqit b1 b2 RR1 x y) by (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). - assert (eqit RR2 b1 b2 x0 y0) by + assert (eqit b1 b2 RR2 x0 y0) by (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). (* first diagonal *) specialize (eqit_trans H4 H1) as Hdiag_weak. - assert (eqit RS b1 b2 x y0) as Hdiag by + assert (eqit b1 b2 RS x y0) as Hdiag by (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). (* reverse the final arrow *) @@ -1702,7 +1727,7 @@ Proof. Qed. Lemma tau_eqit_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), - eqit RR true false t s -> eqit RR true false (Tau t) s. + eqit true false RR t s -> eqit true false RR (Tau t) s. Proof. intros. red. step. econstructor. auto. now step in H. @@ -1804,7 +1829,7 @@ Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). (** [eqit] is a congruence for [itree] constructors. *) Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : - eqit RR b1 b2 (Tau t1) (Tau t2) <-> eqit RR b1 b2 t1 t2. + eqit b1 b2 RR (Tau t1) (Tau t2) <-> eqit b1 b2 RR t1 t2. Proof. split; intros H. - step in H. step. @@ -1828,22 +1853,22 @@ Qed. Lemma eqit_Vis_gen b1 b2 {U1 U2} (p : U1 = U2) (e1 : E U1) (e2 : E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) - : eqeq E p e1 e2 -> pweqeq (eqit RR b1 b2) p k1 k2 -> - eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2). + : eqeq E p e1 e2 -> pweqeq (eqit b1 b2 RR) p k1 k2 -> + eqit b1 b2 RR (Vis e1 k1) (Vis e2 k2). Proof. destruct p; cbn. intros <- H. step. econstructor. apply H. Qed. Lemma eqit_Vis b1 b2 {U} (e : E U) (k1 : U -> itree E R1) (k2 : U -> itree E R2) - : (forall u, eqit RR b1 b2 (k1 u) (k2 u)) -> - eqit RR b1 b2 (Vis e k1) (Vis e k2). + : (forall u, eqit b1 b2 RR (k1 u) (k2 u)) -> + eqit b1 b2 RR (Vis e k1) (Vis e k2). Proof. apply eqit_Vis_gen with (p := eq_refl); constructor. Qed. Lemma eqit_Ret b1 b2 (r1 : R1) (r2 : R2) : - RR r1 r2 <-> @eqit E _ _ RR b1 b2 (Ret r1) (Ret r2). + RR r1 r2 <-> @eqit E b1 b2 _ _ RR (Ret r1) (Ret r2). Proof. split; intros H. - step. constructor; auto. @@ -1852,78 +1877,53 @@ Qed. (** *** "Up-to" principles for coinduction. *) -Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : - itree E R1 -> itree E R2 -> Prop := -| pbc_intro_h U1 U2 (RU : U1 -> U2 -> Prop) t1 t2 k1 k2 - (EQV: eqit RU b1 b2 t1 t2) - (REL: forall u1 u2, RU u1 u2 -> r (k1 u1) (k2 u2)) - : eqit_bind_clo b1 b2 r (ITree.bind t1 k1) (ITree.bind t2 k2) -. -Hint Constructors eqit_bind_clo : itree. - -(* We need better info up to bind *) -(* Inductive eqit_bind_clo b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : - itree E R1 -> itree E R2 -> Prop := -| pbc_intro_h U1 U2 (RU : U1 -> U2 -> Prop) t1 t2 k1 k2 - (EQV: eqit RU b1 b2 t1 t2) - (REL: forall u1 u2, RU u1 u2 -> r (k1 u1) (k2 u2)) - : eqit_bind_clo b1 b2 r (ITree.bind t1 k1) (ITree.bind t2 k2) -. *) - (* One could consider making this a respectful instance. *) (* This might be good when doing other proofs, as it shows up often. *) -(* Q: best way we want to define this? Does this ever leave the file? *) -Lemma eqit_clo_bind {RS} b1 b2 : - eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 ( - eqit RS b1 b2). -Proof. - repeat intro. - inv H. - unfold eqit. unstep. - (* need strong CIH *) - revert EQV; revert t1 t2. - icoinduction c CIH; intros. - step in EQV. - icbn. +Lemma eqit_clo_bind_chain + b1 b2 (c : Chain (eqit_mon b1 b2)) {U1 U2} + (t1 : itree E U1) (t2 : itree E U2) + (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) (UU : U1 -> U2 -> Prop) : +elem c _ _ UU t1 t2 -> +(forall u1 u2, UU u1 u2 -> elem c _ _ RR (k1 u1) (k2 u2)) -> +elem c _ _ RR (ITree.bind t1 k1) (ITree.bind t2 k2). +Proof. + revert_until U2. + tower induction. + - intros. + eapply H0; eauto. + - intros. + icbn in *. genobs t1 ot1. genobs t2 ot2. - hinduction EQV before RR; intros; try easy. - (* be careful not to rewrite all here; this will mess up taul and taur cases. *) + hinduction H0 before RR; intros; try easy. +(* be careful not to rewrite all here; this will mess up taul and taur cases. *) 1-3: rewrite 2observe_bind; simpobs. (* ret *) - + step. - now apply REL0. + + eapply H1; eauto. (* taus *) + constructor. - now apply CIH. + eapply H; eauto. + intros; step; now eapply H1. (* vis *) + constructor. intro. - apply CIH. apply REL. + eapply H; eauto. + intros; step; now eapply H1. (* taul *) + rewrite observe_bind. simpobs. taul. - eapply IHEQV; eauto. + eapply IHeqitF; eauto. (* taur *) + setoid_rewrite observe_bind at 2. simpobs. taur. - eapply IHEQV; eauto. + eapply IHeqitF; eauto. Qed. -Inductive eqit_bind_clo2 b1 b2 (r : itree E R1 -> itree E R2 -> Prop) : - itree E R1 -> itree E R2 -> Prop := -| pbc_intro_h2 U1 U2 (RU : U1 -> U2 -> Prop) t1 t2 k1 k2 - (c : Chain (eqit_mon RU b1 b2)) - - (EQV: eqit_mon RU b1 b2 (elem c) t1 t2) - (REL: forall u1 u2, RU u1 u2 -> r (k1 u1) (k2 u2)) - : eqit_bind_clo2 b1 b2 r (ITree.bind t1 k1) (ITree.bind t2 k2) -. -Hint Constructors eqit_bind_clo2 : itree. +(* Q: best way we want to define this? Does this ever leave the file? *) (* need something STRONG about elem- tower induction? *) @@ -1934,45 +1934,6 @@ and 2 continuations same, then bind ok? *) -Lemma eqit_clo_bind_chain {RS} b1 b2 (c : Chain (eqit_mon RS b1 b2) ) : - eqit_bind_clo b1 b2 (eqit RS b1 b2) <= @eqit_mon E _ _ RS b1 b2 (elem c). -Proof. - repeat intro. - inv H. - step. - clear c; - (* need strong CIH *) - revert EQV; revert t1 t2; - icoinduction c CIH; intros. - step in EQV. - genobs t1 ot1. - genobs t2 ot2. - hinduction EQV before RR; intros; try easy. - (* be careful not to rewrite all here; this will mess up taul and taur cases. *) - 1-3: rewrite 2observe_bind; simpobs. - (* ret *) - + step. - now apply REL0. - (* taus *) - + constructor. - now apply CIH. - (* vis *) - + constructor. - intro. - apply CIH. apply REL. - (* taul *) - + rewrite observe_bind. - simpobs. - taul. - eapply IHEQV; eauto. - (* taur *) - + setoid_rewrite observe_bind at 2. - simpobs. - taur. - eapply IHEQV; eauto. -Qed. - -(* FOR YANNICK: *) (* We would like this below property to be true, but it may not be: the property as stated is not inf-closed, which means tower induction @@ -1980,73 +1941,22 @@ fails. we need some kind of coinductive reasoning for the taus cause, but `coinduction` also fails to help us because it creates a new, unrelated chain to the ones we want to reason about. *) -Lemma eqit_clo_bind_chain_elem {U1 U2 RS} (RU : U1 -> U2 -> Prop) - b1 b2 (cRU : Chain (eqit_mon RU b1 b2)) - (cRS : Chain (eqit_mon RS b1 b2)) - (t1 : itree E U1) (t2 : itree E U2) - (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) : -elem cRU t1 t2 -> -(forall u1 u2, RU u1 u2 -> eqit_mon RS b1 b2 (elem cRS) (k1 u1) (k2 u2)) -> -elem cRS (ITree.bind t1 k1) (ITree.bind t2 k2). -Proof. - revert_until cRS. - apply tower. - (* problem: this is not inf_closed, I think *) - repeat (apply inf_closed_all; intro). - - (* apply inf_closed_impl. - { repeat intro; apply H; eauto. } *) - - unfold inf_closed. - repeat intro. - eapply H; eauto. - (* maybe you can derive something clever from inf in H0, I don't know *) - shelve. - (* stuck here *) - - intros. - icbn in *. - genobs t1 ot1. - genobs t2 ot2. - step. - hinduction H0 before RR; intros; try easy. -(* be careful not to rewrite all here; this will mess up taul and taur cases. *) - 1-3: rewrite 2observe_bind; simpobs. - (* ret *) - + eapply H1; eauto. - (* taus *) - + constructor. - eapply H; eauto. - (* vis *) - + constructor. - intro. - apply H; eauto. - (* taul *) - + rewrite observe_bind. - simpobs. - taul. - eapply IHeqitF; eauto. - (* taur *) - + setoid_rewrite observe_bind at 2. - simpobs. - taur. - eapply IHeqitF; eauto. -Abort. - Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eutt RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - unfold eutt. step. eapply eqit_clo_bind. econstructor; eauto. + unfold eutt. eapply eqit_clo_bind_chain; eauto. Qed. Lemma eutt_clo_bind_chain {U1 U2 UU} t1 t2 k1 k2 - (c : euttC RR) + (c : euttC) (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): - eqit_mon RR true true (elem c) (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit_mon true true (elem c) _ _ RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - eapply eqit_clo_bind_chain. econstructor; eauto. + eapply eqit_clo_bind_chain; intros. + all: now do 2 step; [apply EQT || apply EQK]. Qed. @@ -2064,21 +1974,15 @@ Proof. apply eqit_Tau. Qed. -Arguments eqit_clo_bind : clear implicits. -#[global] Hint Constructors eqit_bind_clo : itree. - - Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) t1 t2 k1 k2 : - eqit RR b1 b2 t1 t2 -> - (forall r1 r2, RR r1 r2 -> eqit RS b1 b2 (k1 r1) (k2 r2)) -> - @eqit E _ _ RS b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit b1 b2 RR t1 t2 -> + (forall r1 r2, RR r1 r2 -> eqit b1 b2 RS (k1 r1) (k2 r2)) -> + @eqit E b1 b2 _ _ RS (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros. - step. - eapply eqit_clo_bind; eauto. - econstructor; eauto. + eapply eqit_clo_bind_chain; eauto. Qed. Lemma eq_itree_clo_bind {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop) {U1 U2 UU} t1 t2 k1 k2 @@ -2112,16 +2016,16 @@ forall t u SS, (elem c SS t u ==> forall x y, SS x y -> elem c (k x) (g y) -> el *) #[global] Instance eqit_subst {E R S} b1 b2 : - Proper (pointwise_relation _ (eqit eq b1 b2) ==> eqit eq b1 b2 ==> - eqit eq b1 b2) (@ITree.subst E R S). + Proper (pointwise_relation _ (eqit b1 b2 eq) ==> eqit b1 b2 eq ==> + eqit b1 b2 eq) (@ITree.subst E R S). Proof. repeat intro; eapply eqit_bind'; eauto. intros; subst; auto. Qed. #[global] Instance eqit_bind {E R S} b1 b2 : - Proper (eqit eq b1 b2 ==> pointwise_relation _ (eqit eq b1 b2) ==> - eqit eq b1 b2) (@ITree.bind E R S). + Proper (eqit b1 b2 eq ==> pointwise_relation _ (eqit b1 b2 eq) ==> + eqit b1 b2 eq) (@ITree.bind E R S). Proof. repeat intro; eapply eqit_bind'; eauto. intros; subst; auto. @@ -2140,8 +2044,8 @@ Lemma eqit_map {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) f1 f2 t1 t2 : (forall r1 r2, RR r1 r2 -> RS (f1 r1) (f2 r2)) -> - @eqit E _ _ RR b1 b2 t1 t2 -> - eqit RS b1 b2 (ITree.map f1 t1) (ITree.map f2 t2). + @eqit E b1 b2 _ _ RR t1 t2 -> + eqit b1 b2 RS (ITree.map f1 t1) (ITree.map f2 t2). Proof. unfold ITree.map; intros. eapply eqit_bind'; eauto. @@ -2150,15 +2054,15 @@ Qed. #[global] Instance eqit_eq_map {E R S} b1 b2 : Proper (pointwise_relation _ eq ==> - eqit eq b1 b2 ==> - eqit eq b1 b2) (@ITree.map E R S). + eqit b1 b2 eq ==> + eqit b1 b2 eq) (@ITree.map E R S). Proof. repeat intro; eapply eqit_map; eauto. intros; subst; auto. Qed. Add Parametric Morphism {E R1}: - (eqit_ eq false false (gfp (eqit_mon eq false false))) + (eqit_ false false (gfp (eqit_mon false false)) _ _ eq) with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) as eqitF_cong_eqit. Proof. @@ -2167,18 +2071,14 @@ Proof. Qed. -#[global] Instance trans_elem_eq_itree_mon {E R} (c : Chain (@eqit_mon E R R eq false false)) : - Transitive (elem c). +#[global] Instance trans_elem_eq_itree_mon {E R} (c : Chain (@eqit_mon E false false)) : + Transitive (elem c R R eq). Proof. - apply Transitive_chain. - intros R' HR'. icbn. - apply Transitive_eqit_. - - congruence. - - exact HR'. + apply Transitive_elem. typeclasses eauto. Qed. -Add Parametric Morphism {E R} (c : Chain (@eqit_mon E R R eq false false)) : - (elem c) +Add Parametric Morphism {E R} (c : Chain (@eqit_mon E false false)) : + (elem c R R eq) with signature (observing eq ==> observing eq ==> flip impl) as elem_observing_proper. Proof. @@ -2349,9 +2249,9 @@ Ltac tau_steps_in H := Lemma eqit_inv_bind_ret: forall {E X R1 R2 RR} b1 b2 (ma : itree E X) (kb : X -> itree E R1) (b: R2), - @eqit E R1 R2 RR b1 b2 (ITree.bind ma kb) (Ret b) -> - exists a, @eqit E X X eq b1 b2 ma (Ret a) /\ - @eqit E R1 R2 RR b1 b2 (kb a) (Ret b). + @eqit E b1 b2 R1 R2 RR (ITree.bind ma kb) (Ret b) -> + exists a, @eqit E b1 b2 X X eq ma (Ret a) /\ + @eqit E b1 b2 R1 R2 RR (kb a) (Ret b). Proof. intros. step in H. @@ -2414,10 +2314,10 @@ Lemma eqit_inv_bind_vis : forall {A B C E X RR} b1 b2 (ma : itree E A) (kab : A -> itree E B) (e : E X) (kxc : X -> itree E C), - eqit RR b1 b2 (ITree.bind ma kab) (Vis e kxc) -> - (exists (kxa : X -> itree E A), (eqit eq b1 b2 ma (Vis e kxa)) /\ - forall (x:X), eqit RR b1 b2 (ITree.bind (kxa x) kab) (kxc x)) \/ - (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Vis e kxc)). + eqit b1 b2 RR (ITree.bind ma kab) (Vis e kxc) -> + (exists (kxa : X -> itree E A), (eqit b1 b2 eq ma (Vis e kxa)) /\ + forall (x:X), eqit b1 b2 RR (ITree.bind (kxa x) kab) (kxc x)) \/ + (exists (a : A), eqit b1 b2 eq ma (Ret a) /\ eqit b1 b2 RR (kab a) (Vis e kxc)). Proof. intros. step in H. remember (observe (ITree.bind ma kab)) as tl. @@ -2478,9 +2378,9 @@ Qed. Lemma eqit_inv_bind_tau: forall {E A B C RR} b1 b2 (ma : itree E A) (kab : A -> itree E B) (tc: itree E C), - eqit RR b1 b2 (ITree.bind ma kab) (Tau tc) -> - (exists (ma' : itree E A), eqit eq b1 b2 ma (Tau ma') /\ eqit RR b1 b2 (ITree.bind ma' kab) tc) \/ - (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Tau tc)). + eqit b1 b2 RR (ITree.bind ma kab) (Tau tc) -> + (exists (ma' : itree E A), eqit b1 b2 eq ma (Tau ma') /\ eqit b1 b2 RR (ITree.bind ma' kab) tc) \/ + (exists (a : A), eqit b1 b2 eq ma (Ret a) /\ eqit b1 b2 RR (kab a) (Tau tc)). Proof. intros. step in H. remember (observe (ITree.bind ma kab)) as tl. @@ -2667,26 +2567,26 @@ Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. (* we really need euttge trans *) -Lemma Equivalence_elem_ff R RS (c : Chain (@eqit_mon E R R RS false false)) : -Equivalence RS -> Equivalence (elem c). -Proof. - constructor; typeclasses eauto. +Lemma Equivalence_elem_ff R RS (c : Chain (@eqit_mon E false false)) : +Equivalence RS -> Equivalence (elem c R R RS). +Proof. + constructor; typeclasses eauto. Qed. -Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : - Reflexive RS -> Reflexive (elem c). +Lemma Reflexive_elem_eutt R RS (c : Chain (@eqit_mon E true true)) : + Reflexive RS -> Reflexive (elem c R R RS). Proof. typeclasses eauto. Qed. -Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E R R RS true true)) : - Symmetric RS -> Symmetric (elem c). +Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E true true)) : + Symmetric RS -> Symmetric (elem c R R RS). Proof. typeclasses eauto. Qed. (* modified: eutt RX u v -> eqit RX b1 b2 u v. otherwise you get stuck when you need to know something about b1/b2. *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g - (c : Chain (eqit_mon SS b1 b2)) : - eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c (k x1) (g x2)) -> - elem c (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). + (c : Chain (eqit_mon b1 b2)) : + eqit b1 b2 RX u v -> (forall x1 x2, RX x1 x2 -> elem c _ _ SS (k x1) (g x2)) -> + elem c _ _ SS (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). Proof. revert u v. tower induction. intros. icbn. diff --git a/theories/Eq/UpToTaus.v b/theories/Eq/UpToTaus.v index f2370d6d..c422c505 100644 --- a/theories/Eq/UpToTaus.v +++ b/theories/Eq/UpToTaus.v @@ -722,15 +722,15 @@ Qed. *) #[global] Instance eutt_cong_eutt {E R1 R2 RR}: Proper (eutt eq ==> eutt eq ==> flip impl) - (@eqit E R1 R2 RR true true). + (@eqit E true true R1 R2 RR). Proof. - intros!. now rewrite H, H0. + intros!. now rewrite H, H0. Qed. #[global] Instance eutt_cong_euttge {E R1 R2 RR}: Proper (euttge eq ==> euttge eq ==> flip impl) - (@eqit E R1 R2 RR true true). + (@eqit E true true R1 R2 RR). Proof. intros!. now rewrite H, H0. Qed. @@ -738,7 +738,7 @@ Qed. #[global] Instance eutt_cong_eq {E R1 R2 RR}: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E R1 R2 RR true true). + (@eqit E true true R1 R2 RR). Proof. intros!. now rewrite H, H0. Qed. @@ -792,9 +792,9 @@ Proof. hinduction EQ before cih; subst; intros; simpl. - now inv EQ'; constructor; constructor. - taus. eapply cih; eauto. apply eqit_inv_Tau. now step. - - constructor. intro v. eapply cih. - auto. - eapply eqitF_inv_VisF in EQ'. eauto. + - constructor. intro v. specialize (REL v). + eapply cih; eauto. + now eapply eqitF_inv_VisF in EQ'; eauto. - taul. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_l. now step. - taur. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_r. @@ -863,7 +863,7 @@ Proof. constructor. eapply cih. now rewrite <- Heq at 2. - constructor. intros v. eapply eqit_inv_Vis in Heq. - eapply cih. now rewrite <- Heq at 2. + specialize (REL v). eapply cih. now rewrite <- Heq at 2. - taul. taur. apply IHHeutt. rewrite <- (itree_eta t1). now rewrite tau_euttge in Heq. - apply IHHeutt. rewrite <- (itree_eta). From c946fd338de719d896e4c3ee8b7fce2beb242325 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Mar 2026 11:51:18 -0400 Subject: [PATCH 095/189] Done through KTreeFacts --- theories/Core/KTreeFacts.v | 167 +++++++++++++++++-------------------- theories/Eq/Eqit.v | 5 +- 2 files changed, 80 insertions(+), 92 deletions(-) diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 891c23bc..f1acf927 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -1,3 +1,5 @@ +(* Rtodo: automatic to_mon for rewriting *) + (** * Facts about [aloop] and [loop] *) (* begin hide *) @@ -38,6 +40,9 @@ Ltac unfold_ktree := (** ** [ITree.aloop] *) From Coinduction Require Import all. + +Ltac ebind := eapply eqit_clo_bind_chain; eauto with itree. + Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) : forall x, (ITree.bind (ITree.iter f x) (ITree.iter g)) @@ -58,29 +63,22 @@ Proof. (* need eq_itree proper up to everything *) rewrite !unfold_iter. rewrite bind_map, bind_bind. - Unset Printing Notations. (* problem: this puts us at the gfp, so we lose the cih. *) (* problem: this puts in chain_b automatically *) - eapply eqit_clo_bind_chain. - eauto. - intros [a | b] _ []. - - rewrite bind_tau. step. taus. - Fail eapply cih. -Abort. - - - (* ebind; econstructor; try reflexivity. + ebind. intros [a | b] _ []. - - rewrite bind_tau. etau. + - rewrite bind_tau. taus. + eapply cih. - rewrite bind_ret_l, tau_euttge. - revert b. ecofix CIH'. intros. + (* question: why doesn't accumulate acc work? *) + do 2 step. revert b. icoinduction c' cih'. intros. to_mon. rewrite !unfold_iter. rewrite bind_map. - ebind; econstructor; try reflexivity. - intros [b' | c] _ []; cbn. - + etau. + ebind. + intros [b' | c''] _ []; cbn. + + now taus. + reflexivity. -Qed. *) +Qed. Lemma eq_itree_iter' {E I1 I2 R1 R2} (RI : I1 -> I2 -> Prop) @@ -92,11 +90,13 @@ Lemma eq_itree_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eq_itree E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - ginit. pcofix CIH. intros. + icoinduction c cih. intros. specialize (eutt_body i1 i2 RI_i). + to_mon. do 2 rewrite unfold_iter. - guclo eqit_clo_bind; econstructor; eauto. - intros ? ? []; gstep; econstructor; auto with paco. + eapply eqit_clo_bind_chain. + do 2 step. apply eutt_body. + intros ? ? []; econstructor; eauto. Qed. Lemma eutt_iter' {E I1 I2 R1 R2} @@ -109,18 +109,18 @@ Lemma eutt_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - einit. ecofix CIH. intros. + icoinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). + to_mon. do 2 rewrite unfold_iter. - ebind; econstructor; eauto with paco. - intros ? ? []. - - etau. - - eauto with paco. + ebind. + do 2 step; eauto. + intros ? ? []; econstructor; eauto. Qed. Lemma eutt_iter'' {E I1 I2 R1 R2} (RI1 RI2 : I1 -> I2 -> Prop) - (HSUB: RI2 <2= RI1) + (HSUB: RI2 <= RI1) (RR : R1 -> R2 -> Prop) (body1 : I1 -> itree E (I1 + R1)) (body2 : I2 -> itree E (I2 + R2)) @@ -129,16 +129,16 @@ Lemma eutt_iter'' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI1 i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - einit. ecofix CIH. intros. + icoinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). + to_mon. do 2 rewrite unfold_iter. - ebind; econstructor; eauto with paco. - intros ? ? []. - - etau. - - eauto with paco. + ebind. + do 2 step; eauto. + intros ? ? []; econstructor; eauto. now apply CIH, HSUB. Qed. -Definition eutt_iter_gen' {F A B R1 R2 S} (HS : R2 <2= R1) : +Definition eutt_iter_gen' {F A B R1 R2 S} (HS : R2 <= R1) : @Proper ((A -> itree F (A + B)) -> A -> itree F B) ((R1 ==> eutt (sum_rel R2 S)) ==> R1 ==> (eutt S)) (iter (C := ktree F)). @@ -158,7 +158,7 @@ Proof. intros body1 body2 EQ_BODY a. repeat red in EQ_BODY. unfold_ktree. eapply (eq_itree_iter' eq); auto. - intros; eapply eqit_mon, EQ_BODY; auto. + intros; eapply eqit_mono, EQ_BODY; auto. intros [] _ []; auto; econstructor; subst; auto. Qed. @@ -170,7 +170,7 @@ Proof. intros body1 body2 EQ_BODY a. repeat red in EQ_BODY. unfold_ktree. eapply (eutt_iter' eq); auto. - intros ? _ []; eapply eqit_mon, EQ_BODY; auto. + intros ? _ []; eapply eqit_mono, EQ_BODY; auto. intros [] _ []; auto; econstructor; auto. Qed. @@ -214,12 +214,13 @@ Qed. Proof. repeat intro. unfold_ktree. revert a0. - einit. ecofix CIH. intros. + icoinduction c' CIH. intros. + to_mon. rewrite 2 unfold_iter_ktree. rewrite !bind_bind. - ebind; econstructor; try reflexivity. + ebind. intros [] ? []. - - rewrite bind_tau, 2 bind_ret_l. etau. + - rewrite bind_tau, 2 bind_ret_l. now taus. - rewrite bind_ret_l, !bind_bind. setoid_rewrite bind_ret_l. rewrite bind_ret_r. reflexivity. Qed. @@ -243,25 +244,18 @@ Lemma iter_dinatural_ktree {E A B C} | inr b => Ret b end). Proof. - revert f g a0. - ginit. pcofix CIH. intros. + revert A B C f g a0. + icoinduction c CIH. intros. + to_mon. rewrite unfold_iter_ktree. rewrite bind_bind. - guclo eqit_clo_bind. econstructor. try reflexivity. + ebind. intros [] ? []. - { rewrite bind_tau. - (* TODO: here we should be able to apply symmetry and be done. *) - rewrite unfold_iter_ktree. - gstep; econstructor. - rewrite bind_bind. - guclo eqit_clo_bind; econstructor; try reflexivity. - intros [] ? []. - * rewrite bind_tau. - gstep; constructor. - eauto with paco. - * rewrite bind_ret_l. gstep; econstructor; auto. - } - { rewrite bind_ret_l. gstep; constructor; auto. } + (* Tour: show this *) + (* old TODO: here we should be able to apply symmetry and be done. *) + (* Win! *) + - rewrite bind_tau. taus. symmetry. eapply CIH. + - rewrite bind_ret_l. reflexivity. Qed. #[global] Instance IterDinatural_ktree {E} : IterDinatural (ktree E) sum. @@ -304,28 +298,29 @@ Lemma iter_codiagonal_ktree {E A B} (f : ktree E A (A + (A + B))) (a0 : A) end)) a0. Proof. revert a0. - ginit. pcofix CIH. intros. + icoinduction c CIH. intros. to_mon. rewrite unfold_iter_ktree. rewrite (unfold_iter_ktree (fun _ => _ _ _)). rewrite unfold_iter_ktree, !bind_bind. - guclo eqit_clo_bind. econstructor. reflexivity. + ebind. intros [| []] ? []. - rewrite bind_ret_l, bind_tau. - gstep. constructor. + taus. revert a. - pcofix CIH'. intros. + accumulate acc. + intros. rewrite unfold_iter_ktree. rewrite (unfold_iter_ktree (fun _ => _ _ _)). rewrite !bind_bind. - guclo eqit_clo_bind. econstructor. reflexivity. + ebind. intros [| []] ? []. - + rewrite bind_tau, bind_ret_l. gstep; constructor; auto with paco. - + rewrite 2 bind_ret_l. gstep; constructor; auto with paco. - + rewrite 2 bind_ret_l. gstep; constructor; auto. + + rewrite bind_tau, bind_ret_l. now taus. + + rewrite 2 bind_ret_l. now taus. + + rewrite 2 bind_ret_l. reflexivity. - rewrite 2 bind_ret_l. - gstep; constructor; auto with paco. + now taus. - rewrite 2 bind_ret_l. - gstep; reflexivity. + reflexivity. Qed. #[global] Instance IterCodiagonal_ktree {E} : IterCodiagonal (ktree E) sum. @@ -352,33 +347,28 @@ Proof. intros *. unfold_ktree. (* We move to the eworld *) - einit. - intros. - revert a0. + repeat red. (* First coinductive point in the simulation: at the entry point of the iteration over f *) - ecofix CIH. + icoinduction c' CIH. intros. - cbn. + to_mon. rewrite bind_ret_l. (* We unfold one step on both sides *) - match goal with - |- euttG _ _ _ _ _ ?t _ => remember t; rewrite unfold_iter; subst - end. - rewrite unfold_iter; cbn. + rewrite unfold_iter. + + rewrite unfold_iter. rewrite !bind_bind. ebind. (* We run f a first time on both side *) - econstructor; [reflexivity | intros [xa | xb] ? <-]. + intros [xa | xb] ? <-. - (* If we loop back to f, we can conclude by coinduction *) rewrite ! bind_ret_l. rewrite bind_tau. - etau. - specialize (CIHL xa). cbn in CIHL. - match goal with - |- euttG _ _ _ _ _ ?t _ => remember t - end. - rewrite <- bind_ret_l. - ebase. + taus. + specialize (CIH xa). + symmetry. + rewrite <- bind_ret_l. symmetry. + apply CIH. - (* If we exit the first loop *) rewrite ! bind_ret_l. (* We setup a second coinductive point in the simulation. @@ -386,25 +376,22 @@ Proof. that we have encountered in the right of the equation to keep the second part clean. *) rewrite tau_euttge. + do 2 step. generalize xb. - ecofix CIH'. - - intros ?. + icoinduction c'' cih'. + intros ?. to_mon. (* We unfold a new step of computation *) - rewrite unfold_iter; cbn. - match goal with - |- euttG _ _ _ _ _ ?t _ => remember t; rewrite unfold_iter; subst - end. - cbn. + rewrite 2 unfold_iter. rewrite !bind_bind. (* We run g a first time on both sides *) ebind. - econstructor; [reflexivity | intros [xb' | xc] ? <-]. + intros [xb' | xc] ? <-. + (* We loop back in the second loop *) rewrite !bind_ret_l. - etau. + taus. + apply cih'. + rewrite !bind_ret_l. - eret. + reflexivity. Qed. End KTreeIterative. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index c606912a..d2b6b777 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -584,7 +584,7 @@ Section eqit_gen. (** Universal properties of the chains of the respective relations: - all three are reflexive - the chains for [eq_itree] and [eutt] are symmetric - - the chain for [eq_itree] is additionnally transitive + - the chain for [eq_itree] is additionally transitive Properties of the chains specialize to the relations: the gfp is an element of the chain. *) @@ -1440,7 +1440,8 @@ Abort. rewrite EQ2 in EQ2'. (* eapply (eqit_mono RR RR false false); eauto. *) (* next todo: get this to work *) - (* rewrite EQ2'. *) + Fail rewrite EQ2'. + Fail rewrite <- EQ2'. (* TO FIX: only going through subrelation is insuficient *) Admitted. From eb83f55414977912b252d5b00463fc5f7d4e2c63 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Mar 2026 18:00:49 -0400 Subject: [PATCH 096/189] Done through TranslateFacts --- .Makefile.d | 4 +- theories/Core/KTreeFacts.v | 32 ++++--------- theories/Eq/Eqit.v | 15 +++--- theories/Interp/TranslateFacts.v | 82 +++++++++++--------------------- 4 files changed, 46 insertions(+), 87 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 21b558ce..017d46ee 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -92,8 +92,8 @@ theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/I theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index f1acf927..b572100f 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -53,12 +53,8 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) end) (inl x). Proof. (* this proof should follow from the facts about elem *) - icoinduction c cih. intros. + bcoinduction c cih. (* Unset Printing Notations. *) - (* NOTE: You need coinduction imported for this to work. We should - probably export it or at least whatever makes the coersion from - mon to body work... *) - to_mon. (* these rewrites must go through *) (* need eq_itree proper up to everything *) rewrite !unfold_iter. @@ -71,7 +67,7 @@ Proof. eapply cih. - rewrite bind_ret_l, tau_euttge. (* question: why doesn't accumulate acc work? *) - do 2 step. revert b. icoinduction c' cih'. intros. to_mon. + do 2 step. revert b. bcoinduction c' cih'. rewrite !unfold_iter. rewrite bind_map. ebind. @@ -90,9 +86,8 @@ Lemma eq_itree_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eq_itree E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - icoinduction c cih. intros. + bcoinduction c cih. specialize (eutt_body i1 i2 RI_i). - to_mon. do 2 rewrite unfold_iter. eapply eqit_clo_bind_chain. do 2 step. apply eutt_body. @@ -109,9 +104,8 @@ Lemma eutt_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - icoinduction c CIH. intros. + bcoinduction c CIH. specialize (eutt_body i1 i2 RI_i). - to_mon. do 2 rewrite unfold_iter. ebind. do 2 step; eauto. @@ -129,9 +123,8 @@ Lemma eutt_iter'' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI1 i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - icoinduction c CIH. intros. + bcoinduction c CIH. specialize (eutt_body i1 i2 RI_i). - to_mon. do 2 rewrite unfold_iter. ebind. do 2 step; eauto. @@ -214,8 +207,7 @@ Qed. Proof. repeat intro. unfold_ktree. revert a0. - icoinduction c' CIH. intros. - to_mon. + bcoinduction c' CIH. rewrite 2 unfold_iter_ktree. rewrite !bind_bind. ebind. @@ -245,8 +237,7 @@ Lemma iter_dinatural_ktree {E A B C} end). Proof. revert A B C f g a0. - icoinduction c CIH. intros. - to_mon. + bcoinduction c CIH. rewrite unfold_iter_ktree. rewrite bind_bind. ebind. @@ -298,7 +289,7 @@ Lemma iter_codiagonal_ktree {E A B} (f : ktree E A (A + (A + B))) (a0 : A) end)) a0. Proof. revert a0. - icoinduction c CIH. intros. to_mon. + bcoinduction c CIH. rewrite unfold_iter_ktree. rewrite (unfold_iter_ktree (fun _ => _ _ _)). rewrite unfold_iter_ktree, !bind_bind. @@ -349,9 +340,7 @@ Proof. (* We move to the eworld *) repeat red. (* First coinductive point in the simulation: at the entry point of the iteration over f *) - icoinduction c' CIH. - intros. - to_mon. + bcoinduction c' CIH. rewrite bind_ret_l. (* We unfold one step on both sides *) rewrite unfold_iter. @@ -378,8 +367,7 @@ Proof. rewrite tau_euttge. do 2 step. generalize xb. - icoinduction c'' cih'. - intros ?. to_mon. + bcoinduction c'' cih'. (* We unfold a new step of computation *) rewrite 2 unfold_iter. rewrite !bind_bind. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index d2b6b777..fa6f4fd7 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -324,7 +324,10 @@ Tactic Notation "unstep" "in" ident(h) := iunfold_in h; try to_mon_in h; unstep_in h; try refold_in h. Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := -iunfold_coind; coinduction R H; cbn[eqit_mon body]; unfold eqit_. +iunfold_coind; coinduction R H; icbn. + +Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := +icoinduction R H; intros; to_mon. (* The [icbn] tactic: unfolding the ITree definition *) @@ -499,12 +502,10 @@ Proof with auto with itree. repeat red. repeat intro. subst. split. - - revert_until H. - icoinduction R CIH. - intros. + - revert_until H. icoinduction R CIH. intros. step in H0. hinduction H0 before CIH... - + econstructor. now apply H. + econstructor; now apply H. - revert_until H. icoinduction R CIH. intros. step in H0. hinduction H0 before CIH... @@ -1447,9 +1448,7 @@ Abort. (* Test [coinduction] tactic, notations *) Goal u ≈ t -> t ≈ u. - unfold eutt, eqit at 2. - coinduction r cih. - (* icoinduction r cih. *) + icoinduction r cih. intros. step. rewrite H. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index 57990b83..8db74e85 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -7,7 +7,7 @@ From Stdlib Require Import Morphisms RelationClasses. -From Paco Require Import paco. +From Coinduction Require Import all. From ITree Require Import Basics.Basics @@ -17,7 +17,6 @@ From ITree Require Import Eq.Shallow Eq.Eqit Eq.UpToTaus - Eq.Paco2 Indexed.Sum Indexed.Function Indexed.Relation @@ -70,12 +69,11 @@ Qed. Instance eq_itree_translate' : Proper (eq_itree eq ==> eq_itree eq) (@translate _ _ h R). Proof. - ginit. pcofix CIH. - intros x y H. + intros!. revert x y H. icoinduction c cih. intros. + to_mon. rewrite itree_eta, (itree_eta (translate h y)), !unfold_translate, <-!itree_eta. - punfold H. gstep. red in H |- *. - destruct (observe x); dependent destruction H; try discriminate; - pclearbot; simpobs; simpl; eauto 7 with paco itree. + step in H. + induction H; simpobs; simpl; eauto with itree. Qed. #[global] @@ -95,32 +93,25 @@ Lemma translate_bind : forall {E F R S} (h : E ~> F) (t : itree E S) (k : S -> i Proof. intros E F R S h t k. revert S t k. - ginit. pcofix CIH. - intros s t k. + icoinduction c cih. + intros s t k. to_mon. match goal with | [ |- _ ?t1 ?t2 ] => rewrite (itree_eta_ t1), (itree_eta_ t2) end; cbn. unfold observe; cbn. - destruct (observe t); cbn. - - apply reflexivity. - - gstep. constructor. eauto with paco. - - gstep. constructor. eauto with paco itree. + destruct (observe t); cbn; eauto with itree. Qed. Lemma translate_id : forall E R (t : itree E R), translate (id_ _) t ≅ t. Proof. intros E R t. revert t. - ginit. pcofix CIH. - intros t. + bcoinduction c cih. rewrite itree_eta. rewrite (itree_eta t). rewrite unfold_translate. unfold translateF. - destruct (observe t); cbn. - - apply reflexivity. - - gstep. econstructor. gbase. apply CIH. - - gstep. econstructor. intros. gbase. apply CIH. + destruct (observe t); cbn; try constructor; eauto. Qed. Import CatNotations. @@ -130,13 +121,9 @@ Lemma translate_cmpE : forall E F G R (g : F ~> G) (f : E ~> F) (t : itree E R), Proof. intros E F G R g f t. revert t. - ginit. pcofix CIH. - intros t. + bcoinduction c cih. rewrite !unfold_translate. - genobs_clear t ot. destruct ot; cbn. - - apply reflexivity. - - gstep. econstructor. gbase. apply CIH. - - gstep. econstructor. intros. gbase. apply CIH. + genobs_clear t ot. destruct ot; cbn; try constructor; eauto. Qed. (**) @@ -174,13 +161,10 @@ Instance eq_itree_translate {E F} translate. Proof. intros f g Hfg T. - ginit. pcofix CIH; rename r into rr; intros l r Hlr. + bcoinduction c cih. rewrite 2 unfold_translate. - punfold Hlr; red in Hlr. - destruct Hlr; cbn; try discriminate; pclearbot. - - gstep. constructor; auto. - - gstep. constructor; auto with paco. - - rewrite Hfg. gstep. constructor; red; auto with paco itree. + step in H. + destruct H; cbn; try easy; try rewrite Hfg; eauto with itree. Qed. #[global] @@ -191,14 +175,10 @@ Instance eutt_translate {E F} Proof. repeat red. intros until T. - ginit. pcofix CIH. intros. - rewrite !unfold_translate. punfold H1. red in H1. - induction H1; intros; subst; simpl. - - gstep. econstructor. eauto. - - gstep. econstructor. pclearbot. eauto with paco. - - gstep. rewrite H. econstructor. pclearbot. red. eauto 7 with paco itree. - - rewrite tau_euttge, unfold_translate. eauto. - - rewrite tau_euttge, unfold_translate. eauto. + bcoinduction c cih. + rewrite !unfold_translate. step in H0. + induction H0; subst; simpl; eauto with itree. + - rewrite H. econstructor. eauto with itree. Qed. #[global] @@ -218,16 +198,9 @@ Lemma eutt_translate_gen : Proof. intros *. revert t s. - einit. - ecofix CIH. - intros * EUTT. - rewrite !unfold_translate. punfold EUTT. red in EUTT. - induction EUTT; intros; subst; simpl; pclearbot. - - estep. - - estep. - - estep; intros ?; ebase. - - rewrite tau_euttge, unfold_translate. eauto with itree. - - rewrite tau_euttge, unfold_translate. eauto with itree. + bcoinduction c cih. + rewrite !unfold_translate. step in H. + induction H; intros; subst; simpl; eauto with itree. Qed. Lemma translate_trigger {E F G} `{E -< F} : @@ -245,10 +218,9 @@ Lemma translate_Vis_inv {E F} {R T} (h: E ~> F) (t: itree E R) (e': F T) k': Proof. intros. rewrite (itree_eta t) in H. setoid_rewrite (itree_eta t). desobs t Ht; clear t Ht; rewrite unfold_translate in H; cbn in H. - - punfold H; red in H; inversion H. - - punfold H; red in H; inversion H; inversion CHECK. - - apply eqitree_inv_Vis_r in H. destruct H as [k'' [H1 H2]]. - cbn in H1. dependent destruction H1. - exists e, k. split. reflexivity. split. reflexivity. - intro x. symmetry. eauto. + - step in H; easy. + - step in H; inv H; easy. + - apply eqitree_inv_Vis_r in H; break H. + cbn in H. inv_Vis. + exists e, k. repeat now split. Qed. From 25446ac53716e360dfd5420eacbc6ed3ebc22c94 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Mar 2026 18:29:38 -0400 Subject: [PATCH 097/189] Done up to more. Horror. --- .Makefile.d | 4 ++-- theories/Core/KTreeFacts.v | 37 +++++++++++++++++++++----------- theories/Eq/Eqit.v | 21 ++++++++++++++++-- theories/Interp/InterpFacts.v | 16 +++++++------- theories/Interp/TranslateFacts.v | 10 ++++----- 5 files changed, 59 insertions(+), 29 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 017d46ee..d9a50e9c 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -94,8 +94,8 @@ theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.b theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index b572100f..072abe4f 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -43,6 +43,17 @@ From Coinduction Require Import all. Ltac ebind := eapply eqit_clo_bind_chain; eauto with itree. +From Corelib Require Import Program.Tactics. + +Ltac under_forall' tac := +let dummy := fresh "dummy" in +assert (dummy : True) by constructor; + intros; + tac; + revert_until dummy; + clear dummy. +Ltac to_mon := under_forall' to_mon_core. + Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) : forall x, (ITree.bind (ITree.iter f x) (ITree.iter g)) @@ -53,7 +64,9 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) end) (inl x). Proof. (* this proof should follow from the facts about elem *) - bcoinduction c cih. + bcoinduction c cih. intros. + intros. + (* Unset Printing Notations. *) (* these rewrites must go through *) (* need eq_itree proper up to everything *) @@ -67,7 +80,7 @@ Proof. eapply cih. - rewrite bind_ret_l, tau_euttge. (* question: why doesn't accumulate acc work? *) - do 2 step. revert b. bcoinduction c' cih'. + do 2 step. revert b. bcoinduction c' cih'. intros. rewrite !unfold_iter. rewrite bind_map. ebind. @@ -86,7 +99,7 @@ Lemma eq_itree_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eq_itree E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c cih. + bcoinduction c cih. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. eapply eqit_clo_bind_chain. @@ -104,7 +117,7 @@ Lemma eutt_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c CIH. + bcoinduction c cih. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. ebind. @@ -123,12 +136,12 @@ Lemma eutt_iter'' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI1 i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c CIH. + bcoinduction c cih. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. ebind. do 2 step; eauto. - intros ? ? []; econstructor; eauto. now apply CIH, HSUB. + intros ? ? []; econstructor; eauto. now apply cih, HSUB. Qed. Definition eutt_iter_gen' {F A B R1 R2 S} (HS : R2 <= R1) : @@ -207,7 +220,7 @@ Qed. Proof. repeat intro. unfold_ktree. revert a0. - bcoinduction c' CIH. + bcoinduction c' CIH. intros. rewrite 2 unfold_iter_ktree. rewrite !bind_bind. ebind. @@ -237,7 +250,7 @@ Lemma iter_dinatural_ktree {E A B C} end). Proof. revert A B C f g a0. - bcoinduction c CIH. + bcoinduction c cih. intros. rewrite unfold_iter_ktree. rewrite bind_bind. ebind. @@ -245,7 +258,7 @@ Proof. (* Tour: show this *) (* old TODO: here we should be able to apply symmetry and be done. *) (* Win! *) - - rewrite bind_tau. taus. symmetry. eapply CIH. + - rewrite bind_tau. taus. symmetry. eapply cih. - rewrite bind_ret_l. reflexivity. Qed. @@ -289,7 +302,7 @@ Lemma iter_codiagonal_ktree {E A B} (f : ktree E A (A + (A + B))) (a0 : A) end)) a0. Proof. revert a0. - bcoinduction c CIH. + bcoinduction c cih. intros. rewrite unfold_iter_ktree. rewrite (unfold_iter_ktree (fun _ => _ _ _)). rewrite unfold_iter_ktree, !bind_bind. @@ -340,7 +353,7 @@ Proof. (* We move to the eworld *) repeat red. (* First coinductive point in the simulation: at the entry point of the iteration over f *) - bcoinduction c' CIH. + bcoinduction c' CIH. intros. rewrite bind_ret_l. (* We unfold one step on both sides *) rewrite unfold_iter. @@ -367,7 +380,7 @@ Proof. rewrite tau_euttge. do 2 step. generalize xb. - bcoinduction c'' cih'. + bcoinduction c'' cih'. intros. (* We unfold a new step of computation *) rewrite 2 unfold_iter. rewrite !bind_bind. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index fa6f4fd7..d7ba85a7 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -281,7 +281,7 @@ Ltac refold_in h := try fold (@eutt E _ _) in h end. -Ltac to_mon := +Ltac to_mon_core := match goal with | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) @@ -291,6 +291,23 @@ match goal with with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) end. +(* Ltac under_forall' tac := +let dummy := fresh "dummy" in +assert (dummy : True) by constructor; + intros; + tac; + revert_until dummy; + clear dummy. +Ltac to_mon := under_forall' to_mon_core. *) + +Ltac to_mon := +let dummy := fresh "dummy" in +assert (dummy : True) by constructor; + intros; + to_mon_core; + revert_until dummy; + clear dummy. + Ltac to_mon_in h := match type of h with | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => @@ -327,7 +344,7 @@ Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := iunfold_coind; coinduction R H; icbn. Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := -icoinduction R H; intros; to_mon. +icoinduction R H; to_mon. (* The [icbn] tactic: unfolding the ITree definition *) diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 086a3e45..cd089b17 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -13,7 +13,7 @@ From Stdlib Require Import Morphisms RelationClasses. -From Paco Require Import paco. +From Coinduction Require Import all. From ITree Require Import Basics.Basics @@ -26,7 +26,6 @@ From ITree Require Import Eq.Shallow Eq.Eqit Eq.UpToTaus - Eq.Paco2 Indexed.Sum Indexed.Function Indexed.Relation @@ -118,13 +117,14 @@ Instance eq_itree_interp {E F} interp. Proof. intros f g Hfg T. - ginit. pcofix CIH. - intros l r0 Hlr. + bcoinduction c cih. intros. rewrite 2 unfold_interp. - punfold Hlr; red in Hlr. - destruct Hlr; cbn; subst; try discriminate; pclearbot; try (gstep; constructor; eauto with paco; fail). - guclo eqit_clo_bind. econstructor; [eapply Hfg|]. - intros ? _ []. + step in H. + + destruct H; cbn; subst; try easy; eauto with itree. + fail. + + step. gstep; econstructor; eauto with paco itree. Qed. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index 8db74e85..ed6ab58e 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -106,7 +106,7 @@ Lemma translate_id : forall E R (t : itree E R), translate (id_ _) t ≅ t. Proof. intros E R t. revert t. - bcoinduction c cih. + bcoinduction c cih. intros. rewrite itree_eta. rewrite (itree_eta t). rewrite unfold_translate. @@ -121,7 +121,7 @@ Lemma translate_cmpE : forall E F G R (g : F ~> G) (f : E ~> F) (t : itree E R), Proof. intros E F G R g f t. revert t. - bcoinduction c cih. + bcoinduction c cih. intros. rewrite !unfold_translate. genobs_clear t ot. destruct ot; cbn; try constructor; eauto. Qed. @@ -161,7 +161,7 @@ Instance eq_itree_translate {E F} translate. Proof. intros f g Hfg T. - bcoinduction c cih. + bcoinduction c cih. intros. rewrite 2 unfold_translate. step in H. destruct H; cbn; try easy; try rewrite Hfg; eauto with itree. @@ -175,7 +175,7 @@ Instance eutt_translate {E F} Proof. repeat red. intros until T. - bcoinduction c cih. + bcoinduction c cih. intros. rewrite !unfold_translate. step in H0. induction H0; subst; simpl; eauto with itree. - rewrite H. econstructor. eauto with itree. @@ -198,7 +198,7 @@ Lemma eutt_translate_gen : Proof. intros *. revert t s. - bcoinduction c cih. + bcoinduction c cih. intros. rewrite !unfold_translate. step in H. induction H; intros; subst; simpl; eauto with itree. Qed. From 74e8635ad27eb6466cd53c117c1d00b1411ad023 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Mar 2026 20:14:15 -0400 Subject: [PATCH 098/189] Done through InterpFacts --- theories/Eq/Eqit.v | 8 +- theories/Interp/InterpFacts.v | 156 ++++++++++++++-------------------- 2 files changed, 72 insertions(+), 92 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index d7ba85a7..8fd2ac4b 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -291,14 +291,13 @@ match goal with with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) end. -(* Ltac under_forall' tac := +Ltac under_forall' tac := let dummy := fresh "dummy" in assert (dummy : True) by constructor; intros; tac; revert_until dummy; clear dummy. -Ltac to_mon := under_forall' to_mon_core. *) Ltac to_mon := let dummy := fresh "dummy" in @@ -346,6 +345,11 @@ iunfold_coind; coinduction R H; icbn. Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := icoinduction R H; to_mon. +Tactic Notation "bcoinduction" := +let c := fresh "c" in +let cih := fresh "cih" in +bcoinduction c cih. + (* The [icbn] tactic: unfolding the ITree definition *) (* Since [itrees] are defined with nesting, un-nesting is often needed diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index cd089b17..760cbd05 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -122,10 +122,8 @@ Proof. step in H. destruct H; cbn; subst; try easy; eauto with itree. - fail. - - step. - gstep; econstructor; eauto with paco itree. + to_mon. unfold eq_Handler, i_pointwise in Hfg. + rewrite Hfg. ebind. intros ??[=<-]. taus; eauto with itree. Qed. #[global] @@ -145,18 +143,15 @@ Instance eutt_interp (E F : Type -> Type) Proof. repeat red. intros until T. - ginit. pcofix CIH. intros. - - rewrite !unfold_interp. punfold H1. red in H1. - induction H1; intros; subst; pclearbot; simpl. - - gstep. constructor. eauto. - - gstep. constructor. eauto with paco. - - guclo eqit_clo_bind; econstructor; [apply H|]. - intros; subst. - gstep; constructor; eauto with paco itree. - - rewrite tau_euttge, unfold_interp. auto. - - rewrite tau_euttge, unfold_interp. auto. -Qed. + bcoinduction. intros. + rewrite !unfold_interp. step in H0. + induction H0; intros; subst; cbn; eauto with itree; to_mon. + eapply eqit_clo_bind_chain. + - do 2 step. apply H. + - intros ??[=<-]. taus; eauto with itree. + - taul. to_mon. rewrite unfold_interp. apply IHeqitF. + - taur. to_mon. rewrite unfold_interp. apply IHeqitF. +Qed. #[global] Instance euttge_interp (E F : Type -> Type) @@ -167,17 +162,13 @@ Instance euttge_interp (E F : Type -> Type) Proof. repeat red. intros until T. - ginit. pcofix CIH. intros. - - rewrite !unfold_interp. punfold H1. red in H1. - induction H1; intros; subst; pclearbot; simpl. - - gstep. constructor. eauto. - - gstep. constructor. eauto with paco. - - guclo eqit_clo_bind; econstructor; [apply H|]. - intros; subst. - gstep; constructor; eauto with paco itree. - - rewrite tau_euttge, unfold_interp. auto. - - discriminate. + bcoinduction. intros. + rewrite !unfold_interp. step in H0. + induction H0; intros; subst; cbn; try easy; eauto with itree; to_mon. + eapply eqit_clo_bind_chain. + - do 2 step. apply H. + - intros ??[=<-]. taus; eauto with itree. + - taul. to_mon. rewrite unfold_interp. apply IHeqitF. Qed. #[global] @@ -186,18 +177,13 @@ Instance eutt_interp' {E F : Type -> Type} {R : Type} (RR: R -> R -> Prop) (f : (@interp E (itree F) _ _ _ f R). Proof. repeat red. - einit. - ecofix CIH. intros. + bcoinduction. intros. rewrite !unfold_interp. - punfold H0. - induction H0; intros; subst; pclearbot; simpl. - - estep. - - estep. - - ebind; econstructor. - + reflexivity. - + intros; subst. estep. ebase. - - rewrite tau_euttge, unfold_interp. eauto. - - rewrite tau_euttge, unfold_interp. eauto. + step in H. + induction H; cbn; try easy; eauto with itree; to_mon. + - ebind. intros; subst; taus; eauto with itree. + - rewrite unfold_interp. now taul. + - rewrite unfold_interp. now taur. Qed. #[global] @@ -232,16 +218,14 @@ Lemma interp_bind {E F R S} interp f (ITree.bind t k) ≅ ITree.bind (interp f t) (fun r => interp f (k r)). Proof. - revert R t k. ginit. pcofix CIH; intros. + revert R t k. bcoinduction; intros. rewrite unfold_bind, (unfold_interp t). - destruct (observe t); cbn. + destruct (observe t); cbn; to_mon. - rewrite bind_ret_l. apply reflexivity. - - rewrite bind_tau, !interp_tau. - gstep. econstructor. eauto with paco. - - rewrite interp_vis, bind_bind. - guclo eqit_clo_bind; econstructor; try reflexivity. + - taus. fold_subst. apply cih. + - rewrite interp_vis, bind_bind. ebind. intros; subst. - rewrite bind_tau. gstep; constructor; eauto with paco. + rewrite bind_tau. taus. apply cih. Qed. #[global] Hint Rewrite @interp_bind : itree. @@ -251,23 +235,24 @@ Qed. Lemma interp_id_h {A R} (t : itree A R) : interp (id_ A) t ≳ t. Proof. - revert t. ginit. pcofix CIH. intros. + revert t. bcoinduction. intros. rewrite (itree_eta t), unfold_interp. - destruct (observe t); try (gstep; constructor; auto with paco). - cbn. gstep. red; cbn. constructor; red; intros. - ITree.fold_subst. - rewrite bind_ret_l, tau_euttge. eauto with paco. + destruct (observe t); cbn. + - reflexivity. + - taus. apply cih. + - constructor. intro. fold_subst. + rewrite bind_ret_, tau_euttge. apply cih. Qed. Lemma interp_trigger_h {E R} (t : itree E R) : interp ITree.trigger t ≈ t. Proof. - revert t. einit. ecofix CIH. intros. + revert t. bcoinduction. intros. rewrite unfold_interp. rewrite (itree_eta t) at 2. - destruct (observe t); try estep. - unfold ITree.trigger. simpl. rewrite bind_vis. - evis. intros. rewrite bind_ret_l, tau_euttge. - auto with paco. + destruct (observe t); cbn; eauto with itree. + constructor; intro. fold_subst. + rewrite bind_ret_l, tau_euttge. + apply cih. Qed. (** ** Composition of [interp] *) @@ -277,46 +262,36 @@ Theorem interp_interp {E F G R} (f : E ~> itree F) (g : F ~> itree G) : interp g (interp f t) ≅ interp (fun _ e => interp g (f _ e)) t. Proof. - ginit. pcofix CIH. intros. + bcoinduction. intros. rewrite 2 (unfold_interp t). - destruct (observe t); cbn. - - rewrite interp_ret. gstep. constructor. reflexivity. - - rewrite interp_tau. gstep. constructor. auto with paco. - - rewrite interp_bind. - guclo eqit_clo_bind. - apply pbc_intro_h with (RU := eq). - + reflexivity. - + intros ? _ []. - rewrite interp_tau. - gstep; constructor. - auto with paco. + destruct (observe t); cbn; eauto with itree. + to_mon. rewrite interp_bind. ebind. intros; subst. + rewrite interp_tau. taus. apply cih. Qed. Lemma interp_translate {E F G} (f : E ~> F) (g : F ~> itree G) {R} (t : itree E R) : interp g (translate f t) ≅ interp (fun _ e => g _ (f _ e)) t. Proof. revert t. - ginit. pcofix CIH. + bcoinduction. intros t. rewrite !unfold_interp. unfold _interp. rewrite unfold_translate_. unfold translateF. destruct (observe t); cbn. - apply reflexivity. (* SAZ: typeclass resolution failure? *) - - gstep. constructor. gbase. apply CIH. - - guclo eqit_clo_bind; econstructor. - + reflexivity. - + intros ? _ []. gstep; constructor; auto with paco. + - taus. apply cih. + - to_mon. ebind. intros; subst. taus. apply cih. Qed. Lemma translate_to_interp {E F R} (f : E ~> F) (t : itree E R) : translate f t ≈ interp (fun _ e => ITree.trigger (f _ e)) t. Proof. - revert t. einit. ecofix CIH. intros. + revert t. bcoinduction. intros. rewrite unfold_translate. rewrite unfold_interp. - destruct (observe t); try estep. - unfold ITree.trigger. simpl. rewrite bind_vis. - evis. intros. rewrite bind_ret_l, tau_euttge. auto with paco. + destruct (observe t); cbn; eauto with itree. + constructor. intro. fold_subst. + rewrite bind_ret_l, tau_euttge. apply cih. Qed. Lemma interp_forever {E F} (f : E ~> itree F) {R S} @@ -324,13 +299,13 @@ Lemma interp_forever {E F} (f : E ~> itree F) {R S} : interp f (ITree.forever t) ≅ @ITree.forever F R S (interp f t). Proof. - ginit. pcofix CIH. + bcoinduction. rewrite (unfold_forever t). rewrite (unfold_forever (interp _ _)). rewrite interp_bind. - guclo eqit_clo_bind. econstructor; [reflexivity |]. - intros ? _ []. rewrite interp_tau. - gstep. constructor; auto with paco. + ebind. intros; subst. + rewrite interp_tau. + taus. apply cih. Qed. Lemma interp_iter' {E F} (f : E ~> itree F) {I A} @@ -341,14 +316,14 @@ Lemma interp_iter' {E F} (f : E ~> itree F) {I A} interp f (ITree.iter t i) ≅ ITree.iter t' i. Proof. - ginit. pcofix CIH; intros i. + bcoinduction; intros i. rewrite 2 unfold_iter. rewrite interp_bind. - guclo eqit_clo_bind; econstructor; eauto. - { apply EQ_t. } - intros [] _ []; cbn. - - rewrite interp_tau; gstep; constructor; auto with paco. - - rewrite interp_ret. gstep; constructor; auto. + ebind. + { do 2 step. apply EQ_t. } + intros [] _ []; cbn; to_mon. + - taus. apply cih. + - reflexivity. Qed. Lemma interp_iter {E F} (f : E ~> itree F) {A B} @@ -366,13 +341,14 @@ Lemma interp_iter'_eutt {E F} (f: E ~> itree F) {I A} (Heq: forall i, interp f (t i) ≈ t' i): forall i, interp f (ITree.iter t i) ≈ ITree.iter t' i. Proof. - ginit. gcofix CIH; intros i. + bcoinduction; intros i. rewrite 2 unfold_iter. rewrite interp_bind. - guclo eqit_clo_bind; econstructor; eauto. apply Heq. + ebind. + do 2 step. apply Heq. intros [] _ []; cbn. - - rewrite interp_tau; gstep; constructor; auto with paco. - - rewrite interp_ret. gstep; constructor; auto. + - taus. apply cih. + - reflexivity. Qed. Lemma interp_loop {E F} (f : E ~> itree F) {A B C} From a5d0fa859a0d9d9c1cef5705543ea77720613051 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 26 Mar 2026 21:02:34 -0400 Subject: [PATCH 099/189] Grind. --- .Makefile.d | 4 +- theories/Core/KTreeFacts.v | 4 - theories/Eq/Eqit.v | 203 ++++++++++++++++++++++++++++--- theories/Eq/UpToTaus.v | 151 ----------------------- theories/Interp/RecursionFacts.v | 123 +++++++++---------- theories/Simple.v | 7 +- 6 files changed, 255 insertions(+), 237 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index d9a50e9c..d292f880 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -102,8 +102,8 @@ theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Inter theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 072abe4f..1ab275fd 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -41,8 +41,6 @@ Ltac unfold_ktree := From Coinduction Require Import all. -Ltac ebind := eapply eqit_clo_bind_chain; eauto with itree. - From Corelib Require Import Program.Tactics. Ltac under_forall' tac := @@ -72,8 +70,6 @@ Proof. (* need eq_itree proper up to everything *) rewrite !unfold_iter. rewrite bind_map, bind_bind. - (* problem: this puts us at the gfp, so we lose the cih. *) - (* problem: this puts in chain_b automatically *) ebind. intros [a | b] _ []. - rewrite bind_tau. taus. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 8fd2ac4b..b56f272c 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1944,23 +1944,7 @@ Proof. eapply IHeqitF; eauto. Qed. -(* Q: best way we want to define this? Does this ever leave the file? *) -(* need something STRONG about elem- tower induction? *) - -(* if 2 trees related by elem, - -and 2 continuations same, - -then bind ok? *) - - - -(* We would like this below property to be true, but it may not be: -the property as stated is not inf-closed, which means tower induction -fails. we need some kind of coinductive reasoning for the taus cause, -but `coinduction` also fails to help us because it creates a new, -unrelated chain to the ones we want to reason about. *) Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) @@ -1983,6 +1967,9 @@ Qed. End eqit_h. +Ltac ebind := eapply eqit_clo_bind_chain; eauto with itree. + + Lemma eutt_Tau {E R} (t1 t2 : itree E R): Tau t1 ≈ Tau t2 <-> t1 ≈ t2. Proof. @@ -2631,3 +2618,187 @@ u and v are of different types. *) End eqit_elem. +(** * Equivalence up to taus *) + +(** Abbreviated as [eutt]. *) + +(** We consider [Tau] as an "internal step", that should not be + visible to the outside world, so adding or removing [Tau] + constructors from an itree should produce an equivalent itree. + + We must be careful because there may be infinite sequences of + taus (i.e., [spin]). Here we shall only allow inserting finitely + many [Tau]s between any two visible steps ([Ret] or [Vis]), so that + [spin] is only related to itself. This ensures that equivalence + up to taus is transitive (and in fact an equivalence relation). + *) + +(** A rewrite hint database named [itree] is available via the tactic + [autorewrite with itree] as a custom simplifier of expressions using + mainly [Ret], [Tau], [Vis], [ITree.bind] and [ITree.Interp.Interp.interp]. + *) + +(** This file contains only the definition of the [eutt] relation. + Theorems about [eutt] are split in two more modules: + + - [ITree.Eq.UpToTausCore] proves that [eutt] is reflexive, symmetric, + and that [ITree.Eq.Eqit.eq_itree] is a subrelation of [eutt]. + Equations for [ITree.Core.ITreeDefinition] combinators which only rely on + those properties can also be found here. + + - [ITree.Eq.UpToTausEquivalence] proves that [eutt] is transitive, + and, more generally, contains theorems for up-to reasoning in + coinductive proofs. + *) + + +#[global] +Instance eutt_cong_eutt {E R1 R2 RR}: + Proper (eutt eq ==> eutt eq ==> flip impl) + (@eqit E true true R1 R2 RR). +Proof. + intros!. now rewrite H, H0. +Qed. + +#[global] +Instance eutt_cong_euttge {E R1 R2 RR}: + Proper (euttge eq ==> euttge eq ==> flip impl) + (@eqit E true true R1 R2 RR). +Proof. + intros!. now rewrite H, H0. +Qed. + +#[global] +Instance eutt_cong_eq {E R1 R2 RR}: + Proper (eq_itree eq ==> eq_itree eq ==> flip impl) + (@eqit E true true R1 R2 RR). +Proof. + intros!. now rewrite H, H0. +Qed. + +#[global] +Instance eutt_cong_eutt' {E R1 R2 RR} : + Proper (eutt eq ==> eutt eq ==> flip impl) (@eutt E R1 R2 RR). +Proof. + apply eutt_cong_eutt. +Qed. + +(* Specialization of [eutt_clo_bind] to the recurrent case where [UU := eq] + in order to avoid having to provide the relation manually everytime *) +Lemma eutt_eq_bind : forall E R1 R2 RR U (t: itree E U) (k1: U -> itree E R1) (k2: U -> itree E R2), + (forall u, eutt RR (k1 u) (k2 u)) -> eutt RR (ITree.bind t k1) (ITree.bind t k2). +Proof. + intros. + apply eutt_clo_bind with (UU := Logic.eq); [reflexivity |]. + intros ? ? ->; apply H. +Qed. + +(* Further specialization for [RR := eq] *) +Lemma eutt_eq_bind' {E U R} (t1 t2: itree E U) (k1 k2: U -> itree E R): + t1 ≈ t2 -> + (forall u, (k1 u) ≈ (k2 u)) -> + (ITree.bind t1 k1) ≈ (ITree.bind t2 k2). +Proof. + intros -> Hk. now apply eutt_eq_bind. +Qed. + +(* Exposing a version specialized to [eutt] so that users don't have to know about [eqit] *) +Lemma eutt_Ret : + forall E (R1 R2 : Type) (RR : R1 -> R2 -> Prop) r1 r2, RR r1 r2 <-> eutt (E := E) RR (Ret r1) (Ret r2). +Proof. + intros; apply eqit_Ret. +Qed. + +(* [eutt] can be thought as the elementary block of a relational program logic. + The following few lemmas give elementary logical rules to compose proofs. + *) +Lemma eutt_conj {E} {R S} {RS RS'} : + forall (t : itree E R) (s : itree E S), + eutt RS t s -> + eutt RS' t s -> + eutt (cup RS RS') t s. +Proof. + repeat red. + icoinduction c cih. intros * EQ EQ'. + step in EQ; step in EQ'. + genobs t ot; genobs s os. + hinduction EQ before cih; subst; intros; simpl. + - now inv EQ'; constructor; constructor. + - taus. eapply cih; eauto. apply eqit_inv_Tau. now step. + - constructor. intro v. specialize (REL v). + eapply cih; eauto. + now eapply eqitF_inv_VisF in EQ'; eauto. + - taul. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_l. + now step. + - taur. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_r. + now step. +Qed. + +Lemma eutt_disj_l {E} {R S} {RS RS'} : + forall (t : itree E R) (s : itree E S), + eutt RS t s -> + eutt (cup RS RS') t s. +Proof. + intros. + eapply (eqit_mono RS _); eauto. +Qed. + +Lemma eutt_disj_r {E} {R S} {RS RS'} : + forall (t : itree E R) (s : itree E S), + eutt RS' t s -> + eutt (cup RS RS') t s. +Proof. + intros. + eapply (eqit_mono RS' _); eauto. +Qed. + +Lemma eutt_equiv {E} {R S} {RS RS'} : + forall (t : itree E R) (s : itree E S), + (HeterogeneousRelations.eq_rel RS RS') -> + eutt RS t s <-> eutt RS' t s. +Proof. + intros * EQ; split; intros EUTT; eapply eqit_mono; try apply EUTT; eauto. + all:apply EQ. +Qed. + +(* Rewriting equivalent simulation relations under [eq_itree] and [eutt] *) +#[global] +Instance eq_itree_Proper_R_Het {E : Type -> Type} {R1 R2:Type} + : Proper ((@HeterogeneousRelations.eq_rel R1 R2) ==> Logic.eq ==> Logic.eq ==> iff) (@eq_itree E R1 R2). +Proof. + repeat intro; subst. + unfold eq_itree; rewrite H; reflexivity. +Qed. + +#[global] +Instance eutt_Proper_R_Het {E : Type -> Type} {R1 R2:Type} + : Proper ((@HeterogeneousRelations.eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). +Proof. + repeat intro; subst. + unfold eutt; rewrite H; reflexivity. +Qed. + +(* Stronger subrelation result which applies for [eutt RR t t]. This is + relevant for post-conditions *) +Lemma eutt_sub_self {E R} (R1 R2: R -> R -> Prop) (t: itree E R): + (forall r, R1 r r -> R2 r r) -> + eutt R1 t t -> + eutt R2 t t. +Proof. + intros Hrel; revert t. icoinduction c cih; intros t Heutt. + step in Heutt. + remember t as t' in Heutt at 2. assert (Ht': t' ≈ t) by now subst. clear Heqt'. + rewrite (itree_eta t), (itree_eta t') in Ht'. + revert Ht'. induction Heutt; clear t; intros Heq. + - apply eutt_inv_Ret in Heq; subst. + constructor; auto. + - apply eqit_inv_Tau in Heq. + constructor. eapply cih. + now rewrite <- Heq at 2. + - constructor. intros v. eapply eqit_inv_Vis in Heq. + specialize (REL v). eapply cih. now rewrite <- Heq at 2. + - taul. taur. apply IHHeutt. rewrite <- (itree_eta t1). + now rewrite tau_euttge in Heq. + - apply IHHeutt. rewrite <- (itree_eta). + now rewrite tau_euttge in Heq. +Qed. \ No newline at end of file diff --git a/theories/Eq/UpToTaus.v b/theories/Eq/UpToTaus.v index c422c505..38205f1c 100644 --- a/theories/Eq/UpToTaus.v +++ b/theories/Eq/UpToTaus.v @@ -719,157 +719,6 @@ Proof. repeat intro. eapply euttG_cong_euttge; eauto; apply eq_sub_euttge; eauto. Qed. *) -#[global] -Instance eutt_cong_eutt {E R1 R2 RR}: - Proper (eutt eq ==> eutt eq ==> flip impl) - (@eqit E true true R1 R2 RR). -Proof. - intros!. now rewrite H, H0. -Qed. - -#[global] -Instance eutt_cong_euttge {E R1 R2 RR}: - Proper (euttge eq ==> euttge eq ==> flip impl) - (@eqit E true true R1 R2 RR). -Proof. - intros!. now rewrite H, H0. -Qed. - -#[global] -Instance eutt_cong_eq {E R1 R2 RR}: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E true true R1 R2 RR). -Proof. - intros!. now rewrite H, H0. -Qed. - -#[global] -Instance eutt_cong_eutt' {E R1 R2 RR} : - Proper (eutt eq ==> eutt eq ==> flip impl) (@eutt E R1 R2 RR). -Proof. - apply eutt_cong_eutt. -Qed. - -(* Specialization of [eutt_clo_bind] to the recurrent case where [UU := eq] - in order to avoid having to provide the relation manually everytime *) -Lemma eutt_eq_bind : forall E R1 R2 RR U (t: itree E U) (k1: U -> itree E R1) (k2: U -> itree E R2), - (forall u, eutt RR (k1 u) (k2 u)) -> eutt RR (ITree.bind t k1) (ITree.bind t k2). -Proof. - intros. - apply eutt_clo_bind with (UU := Logic.eq); [reflexivity |]. - intros ? ? ->; apply H. -Qed. - -(* Further specialization for [RR := eq] *) -Lemma eutt_eq_bind' {E U R} (t1 t2: itree E U) (k1 k2: U -> itree E R): - t1 ≈ t2 -> - (forall u, (k1 u) ≈ (k2 u)) -> - (ITree.bind t1 k1) ≈ (ITree.bind t2 k2). -Proof. - intros -> Hk. now apply eutt_eq_bind. -Qed. - -(* Exposing a version specialized to [eutt] so that users don't have to know about [eqit] *) -Lemma eutt_Ret : - forall E (R1 R2 : Type) (RR : R1 -> R2 -> Prop) r1 r2, RR r1 r2 <-> eutt (E := E) RR (Ret r1) (Ret r2). -Proof. - intros; apply eqit_Ret. -Qed. - -(* [eutt] can be thought as the elementary block of a relational program logic. - The following few lemmas give elementary logical rules to compose proofs. - *) -Lemma eutt_conj {E} {R S} {RS RS'} : - forall (t : itree E R) (s : itree E S), - eutt RS t s -> - eutt RS' t s -> - eutt (cup RS RS') t s. -Proof. - repeat red. - icoinduction c cih. intros * EQ EQ'. - step in EQ; step in EQ'. - genobs t ot; genobs s os. - hinduction EQ before cih; subst; intros; simpl. - - now inv EQ'; constructor; constructor. - - taus. eapply cih; eauto. apply eqit_inv_Tau. now step. - - constructor. intro v. specialize (REL v). - eapply cih; eauto. - now eapply eqitF_inv_VisF in EQ'; eauto. - - taul. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_l. - now step. - - taur. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_r. - now step. -Qed. - -Lemma eutt_disj_l {E} {R S} {RS RS'} : - forall (t : itree E R) (s : itree E S), - eutt RS t s -> - eutt (cup RS RS') t s. -Proof. - intros. - eapply (eqit_mono RS _); eauto. -Qed. - -Lemma eutt_disj_r {E} {R S} {RS RS'} : - forall (t : itree E R) (s : itree E S), - eutt RS' t s -> - eutt (cup RS RS') t s. -Proof. - intros. - eapply (eqit_mono RS' _); eauto. -Qed. - -Lemma eutt_equiv {E} {R S} {RS RS'} : - forall (t : itree E R) (s : itree E S), - (HeterogeneousRelations.eq_rel RS RS') -> - eutt RS t s <-> eutt RS' t s. -Proof. - intros * EQ; split; intros EUTT; eapply eqit_mono; try apply EUTT; eauto. - all:apply EQ. -Qed. - -(* Rewriting equivalent simulation relations under [eq_itree] and [eutt] *) -#[global] -Instance eq_itree_Proper_R {E : Type -> Type} {R1 R2:Type} - : Proper ((@HeterogeneousRelations.eq_rel R1 R2) ==> Logic.eq ==> Logic.eq ==> iff) (@eq_itree E R1 R2). -Proof. - repeat intro; subst. - unfold eq_itree; rewrite H; reflexivity. -Qed. - -#[global] -Instance eutt_Proper_R {E : Type -> Type} {R1 R2:Type} - : Proper ((@HeterogeneousRelations.eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). -Proof. - repeat intro; subst. - unfold eutt; rewrite H; reflexivity. -Qed. - -(* Stronger subrelation result which applies for [eutt RR t t]. This is - relevant for post-conditions *) -Lemma eutt_sub_self {E R} (R1 R2: R -> R -> Prop) (t: itree E R): - (forall r, R1 r r -> R2 r r) -> - eutt R1 t t -> - eutt R2 t t. -Proof. - intros Hrel; revert t. icoinduction c cih; intros t Heutt. - step in Heutt. - remember t as t' in Heutt at 2. assert (Ht': t' ≈ t) by now subst. clear Heqt'. - rewrite (itree_eta t), (itree_eta t') in Ht'. - revert Ht'. induction Heutt; clear t; intros Heq. - - apply eutt_inv_Ret in Heq; subst. - constructor; auto. - - apply eqit_inv_Tau in Heq. - constructor. eapply cih. - now rewrite <- Heq at 2. - - constructor. intros v. eapply eqit_inv_Vis in Heq. - specialize (REL v). eapply cih. now rewrite <- Heq at 2. - - taul. taur. apply IHHeutt. rewrite <- (itree_eta t1). - now rewrite tau_euttge in Heq. - - apply IHHeutt. rewrite <- (itree_eta). - now rewrite tau_euttge in Heq. -Qed. - (* wish list: absolute #1: more smoothness with step and observe; it still doesn't quite work right diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index 0e7de593..d5ba63fc 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -5,13 +5,13 @@ [recursive] as handlers. *) -Require Import Paco.paco. - From Stdlib Require Import Program.Tactics Setoid Morphisms. +From Coinduction Require Import all. + From ITree Require Import Basics.Utils Basics.Category @@ -21,7 +21,6 @@ From ITree Require Import Core.KTree Eq.Eqit Eq.UpToTaus - Eq.Paco2 Indexed.Sum Indexed.Function Indexed.Relation @@ -66,7 +65,7 @@ Proof. - destruct e; cbn. + rewrite bind_ret_l; reflexivity. + rewrite bind_vis. - pstep; constructor. intros. left. + step; constructor. intros. rewrite bind_ret_l. apply reflexivity. Qed. @@ -83,30 +82,36 @@ Definition mrecursive (f : D ~> itree (D +' E)) Global Instance eq_itree_mrec {R} : Proper (eq_itree eq ==> eq_itree eq) (@interp_mrec _ _ ctx R). Proof. - ginit. pcofix CIH. intros. + repeat red. + bcoinduction. intros. rewrite !unfold_interp_mrec. - punfold H0. inv H0; try discriminate; pclearbot; simpobs; [| |destruct e]; gstep. - - apply reflexivity. - - econstructor. eauto with paco. - - econstructor. gbase. eapply CIH. apply eqit_bind; auto; reflexivity. - - econstructor. gstep; constructor. auto with paco itree. + step in H. inv H; try easy; eauto with itree. + - taus. now apply cih. + - cbn. destruct e. + + taus. apply cih. + ebind. intros; subst. + do 2 step. apply REL. + + constructor. intro. step. taus. apply cih. + apply REL. Qed. Theorem interp_mrec_bind {U T} (t : itree _ U) (k : U -> itree _ T) : interp_mrec ctx (ITree.bind t k) ≅ ITree.bind (interp_mrec ctx t) (fun x => interp_mrec ctx (k x)). Proof. - revert t k; ginit. pcofix CIH; intros. + revert t k; bcoinduction; intros. rewrite (unfold_interp_mrec _ t). rewrite (unfold_bind t). destruct (observe t); cbn; - [| |destruct e]; - autorewrite with itree. - 1: apply reflexivity. - all: rewrite unfold_interp_mrec; ITree.fold_subst. - all: try (gstep; econstructor; eauto with paco). - - rewrite <- bind_bind; eauto with paco. - - intros. red. rewrite bind_tau. gstep; constructor; auto with paco. + [| |destruct e]; cbn. + - apply reflexivity. + - taus. fold_subst. apply cih. + - to_mon. taus. fold_subst. + rewrite <- bind_bind. + apply cih. + - constructor. intro. fold_subst. + rewrite bind_ret_l, bind_tau. + step. taus. apply cih. Qed. Theorem interp_mrec_trigger {U} (a : (D +' E) U) : @@ -117,7 +122,7 @@ Proof. destruct a; cbn. rewrite tau_euttge, bind_ret_r. reflexivity. - pstep; constructor. intros; left. rewrite tau_euttge, unfold_interp_mrec; cbn. + step; constructor. intros. rewrite tau_euttge, unfold_interp_mrec; cbn. apply reflexivity. Qed. @@ -125,19 +130,17 @@ Theorem interp_mrec_as_interp {T} (c : itree _ T) : interp_mrec ctx c ≈ interp (mrecursive ctx) c. Proof. rewrite <- (tau_eutt (interp _ _)). - revert_until T. ginit. pcofix CIH. intros. + revert_until T. bcoinduction. intros. rewrite unfold_interp_mrec, unfold_interp. - destruct (observe c); [| |destruct e]; simpl; eauto with paco. - - gstep; repeat econstructor; eauto. - - gstep; constructor; eauto with paco. - - rewrite interp_mrec_bind. unfold mrec. - gstep; constructor. - guclo eqit_clo_bind; econstructor; [reflexivity|]. - intros ? _ []; eauto with paco. - - rewrite tau_euttge. unfold ITree.trigger, case_; simpl. rewrite bind_vis. - gstep. constructor. - intros; red. - rewrite bind_ret_l. rewrite tau_euttge. auto with paco. + destruct (observe c0); [| |destruct e]; simpl; eauto with paco. + - now taur. + - taus. apply cih. + - taus. rewrite interp_mrec_bind. unfold mrec. + ebind. intros; subst. apply cih. + - to_mon. rewrite tau_euttge. + unfold ITree.trigger. rewrite bind_vis. + constructor. intro. + rewrite bind_ret_l. rewrite tau_euttge. apply cih. Qed. Theorem mrec_as_interp {T} (d : D T) : @@ -158,25 +161,25 @@ Theorem unfold_interp_mrec_h {T} (t : itree _ T) ≈ interp_mrec ctx t. Proof. rewrite <- tau_eutt. - revert t. ginit; pcofix CIH. intros. + revert t. bcoinduction. intros. rewrite (itree_eta t); destruct (observe t). - - rewrite 2 unfold_interp_mrec; cbn; gstep; repeat constructor; auto with paco. - - rewrite unfold_interp, 2 unfold_interp_mrec; cbn. gstep. - constructor; auto with paco. + - rewrite 2 unfold_interp_mrec; now taul. + - rewrite unfold_interp, 2 unfold_interp_mrec. + taus. apply cih. - rewrite interp_vis. rewrite (unfold_interp_mrec _ (Vis _ _)). - destruct e; cbn. + destruct e; cbn; to_mon. + rewrite 2 interp_mrec_bind. - gstep; constructor. - guclo eqit_clo_bind; econstructor; [reflexivity|]. - intros ? _ []; rewrite unfold_interp_mrec; cbn; auto with paco. + taus. + ebind; intros; subst. + rewrite unfold_interp_mrec; cbn; apply cih. + unfold inr_, Handler.Inr_sum1_Handler, Handler.Handler.inr_, Handler.Handler.htrigger. - rewrite bind_trigger, unfold_interp_mrec; cbn. + rewrite bind_trigger, unfold_interp_mrec; cbn; to_mon. rewrite tau_euttge. - gstep; constructor. - intros; red. gstep; constructor. + constructor. + intros. step. taus. rewrite unfold_interp_mrec; cbn. - auto with paco. + apply cih. Qed. End Facts. @@ -190,17 +193,16 @@ Global Instance Proper_interp_mrec {D E} : interp_mrec. Proof. intros f g Hfg R. - ginit; pcofix CIH; intros t1 t2 Ht. + bcoinduction; intros t1 t2 Ht. rewrite 2 unfold_interp_mrec. - punfold Ht; induction Ht; cbn; pclearbot. - 3: { destruct e; gstep; constructor. - + gfinal; left. apply CIH. - eapply eutt_clo_bind; eauto. - intros ? _ []. auto with itree. - + gstep; constructor. auto with paco itree. + step in Ht; induction Ht; cbn. + 3: { destruct e; constructor. + + apply cih. ebind. apply Hfg. + intros ? _ []. apply REL. + + intros; step; taus. eauto with paco itree. } - 1,2: gstep; constructor; auto with paco itree. - 1,2: rewrite unfold_interp_mrec, tau_euttge; auto. + 1,2: constructor; auto with paco itree. + all: to_mon; rewrite unfold_interp_mrec, tau_euttge; auto. Qed. (** [rec body] is equivalent to [interp (recursive body)], @@ -235,17 +237,16 @@ Instance euttge_interp_mrec {D E} : interp_mrec. Proof. intros f g Hfg R. - ginit; pcofix CIH; intros t1 t2 Ht. + bcoinduction; intros t1 t2 Ht. rewrite 2 unfold_interp_mrec. - punfold Ht; induction Ht; cbn; pclearbot. - 3: { destruct e; gstep; constructor. - + gfinal; left. apply CIH. - eapply eqit_bind; auto. apply Hfg. - + gstep; constructor. auto with paco itree. + step in Ht; induction Ht; try easy; cbn. + 3: { destruct e; constructor. + + apply cih. ebind. apply Hfg. + intros ? _ []. apply REL. + + intros; step; taus. eauto with paco itree. } - 1,2: gstep; constructor; auto with paco. - 1: rewrite unfold_interp_mrec, tau_euttge; auto. - discriminate. + 1,2: constructor; auto with paco itree. + all: to_mon; rewrite unfold_interp_mrec, tau_euttge; auto. Qed. #[global] diff --git a/theories/Simple.v b/theories/Simple.v index bad559d5..5ac5b2c6 100644 --- a/theories/Simple.v +++ b/theories/Simple.v @@ -7,6 +7,8 @@ From Stdlib Require Import Setoid Morphisms. +From Coinduction Require Import all. + From ITree Require Import Eq.Shallow. (* end hide *) @@ -309,9 +311,8 @@ Proof. intros. subst. reflexivity. Qed. Lemma eutt_vis {U : Type} (e : E U) (k1 k2 : U -> itree E R) : (forall u, k1 u ≈ k2 u) -> Vis e k1 ≈ Vis e k2. -Proof. - intros. ITree.Eq.UpToTaus.einit. ITree.Eq.UpToTaus.evis. - intros. ITree.Eq.UpToTaus.efinal. apply H. +Proof. + intros. apply ITree.Eq.Eqit.eqit_Vis. intros. apply H. Qed. Lemma eutt_inv_ret (r1 r2 : R) From 4a4d48f90e45df8ddcae7d5dedacaf515948b0f1 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 27 Mar 2026 16:51:06 -0400 Subject: [PATCH 100/189] Consoloated EuttExtras; done w SimUpToTaus --- .Makefile.d | 6 +- Makefile.conf | 8 +- _CoqProject.itree | 1 - theories/Eq.v | 3 +- theories/Eq/Eqit.v | 16 +++- theories/Eq/EuttExtras.v | 33 ------- theories/Eq/SimUpToTaus.v | 185 ++++++++++++++++++++++++-------------- 7 files changed, 137 insertions(+), 115 deletions(-) delete mode 100644 theories/Eq/EuttExtras.v diff --git a/.Makefile.d b/.Makefile.d index d292f880..340e21f9 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -50,8 +50,8 @@ theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.b theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/EuttExtras.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/EuttExtras.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -64,8 +64,6 @@ theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus. theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vo theories/Eq/EuttExtras.glob theories/Eq/EuttExtras.v.beautified theories/Eq/EuttExtras.required_vo: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EuttExtras.vos theories/Eq/EuttExtras.vok theories/Eq/EuttExtras.required_vos: theories/Eq/EuttExtras.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile.conf b/Makefile.conf index 4db136fe..f5a69775 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true diff --git a/_CoqProject.itree b/_CoqProject.itree index 766887ea..55a96f9f 100644 --- a/_CoqProject.itree +++ b/_CoqProject.itree @@ -37,7 +37,6 @@ theories/Eq/Eqit.v theories/Eq/UpToTaus.v theories/Eq/SimUpToTaus.v theories/Eq/EqAxiom.v -theories/Eq/EuttExtras.v theories/Eq/Rutt.v theories/Eq/RuttFacts.v diff --git a/theories/Eq.v b/theories/Eq.v index 12d862a2..81e0273d 100644 --- a/theories/Eq.v +++ b/theories/Eq.v @@ -4,5 +4,4 @@ From ITree.Eq Require Export Shallow Eqit UpToTaus - SimUpToTaus - EuttExtras. + SimUpToTaus. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index b56f272c..e2f65845 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -574,6 +574,14 @@ Proof. (* do induction and conclude trivially with constructors. *) induction euv; eauto with itree. Qed. + +Lemma eutt_flip : forall (E : Type -> Type) (A B : Type) (R : A -> B -> Prop) + (ta : itree E A) (tb : itree E B), + eutt R ta tb -> eutt (flip R) tb ta. +Proof. + intros. now apply eqit_flip. +Qed. + #[global] Hint Unfold flip : itree. (** [eqit] itself is monotone *) @@ -2618,6 +2626,8 @@ u and v are of different types. *) End eqit_elem. +Section eutt_facts. + (** * Equivalence up to taus *) (** Abbreviated as [eutt]. *) @@ -2786,7 +2796,7 @@ Lemma eutt_sub_self {E R} (R1 R2: R -> R -> Prop) (t: itree E R): eutt R2 t t. Proof. intros Hrel; revert t. icoinduction c cih; intros t Heutt. - step in Heutt. + step in Heutt. remember t as t' in Heutt at 2. assert (Ht': t' ≈ t) by now subst. clear Heqt'. rewrite (itree_eta t), (itree_eta t') in Ht'. revert Ht'. induction Heutt; clear t; intros Heq. @@ -2801,4 +2811,6 @@ Proof. now rewrite tau_euttge in Heq. - apply IHHeutt. rewrite <- (itree_eta). now rewrite tau_euttge in Heq. -Qed. \ No newline at end of file +Qed. + +End eutt_facts. diff --git a/theories/Eq/EuttExtras.v b/theories/Eq/EuttExtras.v deleted file mode 100644 index 41eb3d52..00000000 --- a/theories/Eq/EuttExtras.v +++ /dev/null @@ -1,33 +0,0 @@ -(** * More facts about eutt *) - -(** ... that have been added recently and I don't know where to put. *) - -(* TODO: Figure out some way to organize Eq/UpToTaus.v and Eq/Eq.v *) - -From Paco Require Import paco. - -From ITree Require Import - Core.ITreeDefinition - Eq.Eqit. - -Lemma paco2_eqit_refl : forall E R r (t : itree E R), paco2 (eqit_ eq true true id) r t t. -Proof. - intros. eapply paco2_mon with (r := bot2). - { enough (t ≈ t); auto. reflexivity. } - { contradiction. } -Qed. - -Lemma eutt_subrel : forall (E : Type -> Type) (A B : Type) (R1 R2 : A -> B -> Prop) - (ta : itree E A) (tb : itree E B), - (forall a b, R1 a b -> R2 a b) -> eutt R1 ta tb -> eutt R2 ta tb. -Proof. - intros. eapply eqit_mon; eauto. -Qed. - -Lemma eutt_flip : forall (E : Type -> Type) (A B : Type) (R : A -> B -> Prop) - (ta : itree E A) (tb : itree E B), - eutt R ta tb -> eutt (flip R) tb ta. -Proof. - intros. apply eqit_flip. - eapply eutt_subrel with (R1 := R); eauto. -Qed. diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index cf05895c..d09a9066 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -15,19 +15,18 @@ [eutt_sutt] and [sutt_eutt]. *) -From Paco Require Import paco. +From Coinduction Require Import all. From Stdlib Require Import - Morphisms. + Morphisms + Program.Basics. From ITree Require Import Axioms Basics.Utils Core.ITreeDefinition Eq.Eqit - Eq.UpToTaus - Eq.Shallow - Eq.Paco2. + Eq.Shallow. Section SUTT. @@ -48,8 +47,18 @@ Inductive suttF (sutt: itree' E R1 -> itree' E R2 -> Prop) : . Hint Constructors suttF : itree. +Lemma suttF_mono : Proper (leq ==> leq) suttF. +Proof. + repeat intro. + induction H0; eauto with itree. + constructor; intro; apply H, SUTTK. + constructor; apply H, EQTAUS. +Qed. + +Definition sutt_mon := {| body := suttF ; Hbody := suttF_mono |}. + Definition sutt (t1 : itree E R1) (t2 : itree E R2) := - paco2 suttF bot2 (observe t1) (observe t2). + gfp sutt_mon (observe t1) (observe t2). Hint Unfold sutt : itree. End SUTT. @@ -57,6 +66,36 @@ End SUTT. Global Hint Constructors suttF : itree. Global Hint Unfold sutt : itree. +(** Sutt-specific tactics, analogous to the eqit-specific tactics in [Eq.Eqit]. *) + +Tactic Notation "sstep" := + unfold sutt; step; cbn [sutt_mon body]. +Tactic Notation "sstep" "in" ident(h) := + unfold sutt in h; step in h; cbn [sutt_mon body] in h. + +Ltac fold_sutt := + match goal with + | |- context[@suttF ?E ?R1 ?R2 ?RR] => + change (@suttF E R1 R2 RR) with (body (@sutt_mon E R1 R2 RR)) + end. +Ltac fold_sutt_in h := + match type of h with + | context[@suttF ?E ?R1 ?R2 ?RR] => + change (@suttF E R1 R2 RR) with (body (@sutt_mon E R1 R2 RR)) in h + end. +Tactic Notation "sunstep" := fold_sutt; unstep. +Tactic Notation "sunstep" "in" ident(h) := fold_sutt_in h; unstep in h. + +(* [scoinduction] unfolds [sutt] in the conclusion only, then applies coinduction. *) +Local Ltac revert_one := + match goal with [ H : _ |- _ ] => revert H end. +Ltac sunfold_coind := + first + [intros ?; sunfold_coind; revert_one | + unfold sutt]. +Tactic Notation "scoinduction" simple_intropattern(R) simple_intropattern(H) := + sunfold_coind; coinduction R H; cbn [sutt_mon body]. + Section SUTT_rel. Context {E : Type -> Type} {R : Type} (RR : R -> R -> Prop). @@ -73,14 +112,8 @@ Section SUTT_facts. Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). -Lemma monotone_suttF : monotone2 (@suttF E _ _ RR). -Proof. repeat red; intros. induction IN; eauto with itree. Qed. -Hint Resolve monotone_suttF : paco. - End SUTT_facts. -Global Hint Resolve monotone_suttF : paco. - Lemma suttF_inv_vis {E R1 R2} (RR : R1 -> R2 -> Prop) sutt : forall X e (k1 : X -> itree E R1) (k2 : X -> itree E R2), suttF RR sutt (VisF e k1) (VisF e k2) -> @@ -94,8 +127,8 @@ Lemma sutt_inv_vis {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR (Vis e k1) (Vis e k2) -> forall x, sutt RR (k1 x) (k2 x). Proof. - intros. pstep. punfold H. simpl in *. - eapply suttF_inv_vis in H; pclearbot; punfold H. + intros. sstep in H. simpl in H. + now apply (suttF_inv_vis _ _ _ _ _ _ H). Qed. Lemma sutt_tau_right {E R1 R2} (RR : R1 -> R2 -> Prop) : @@ -103,9 +136,8 @@ Lemma sutt_tau_right {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 t2 -> sutt RR t1 (Tau t2). Proof. - intros. punfold H. pstep. - repeat red. repeat red in H. constructor. - auto. + intros. sstep. sstep in H. + constructor. auto. Qed. Lemma sutt_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : @@ -113,9 +145,8 @@ Lemma sutt_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 t2 -> sutt RR (Tau t1) t2. Proof. - intros. punfold H. pstep. - repeat red. repeat red in H. constructor. - eauto with paco. + intros. sstep. + constructor. exact H. Qed. Lemma sutt_elim_tau_right {E R1 R2} (RR : R1 -> R2 -> Prop) : @@ -123,22 +154,22 @@ Lemma sutt_elim_tau_right {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 (Tau t2) -> sutt RR t1 t2. Proof. - pcofix CIH. pstep. intros. - punfold H0. repeat red in H0. - inv H0. - - eapply monotone_suttF; eauto using upaco2_mon_bot with paco. - - constructor. pclearbot. eauto with paco. + unfold sutt at -1. icoinduction c CIH. intros t1 t2 H. sstep in H. + inv H. + - eapply suttF_mono; [|exact EQTAUS]. + intros ?? ?. now apply (gfp_chain c). + - constructor. apply CIH. exact EQTAUS. Qed. Lemma suttF_inv_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : forall (t1: itree E R1) ot2, - suttF RR (upaco2 (suttF RR) bot2) (TauF t1) ot2 -> - suttF RR (upaco2 (suttF RR) bot2) (observe t1) ot2. + suttF RR (gfp (@sutt_mon E R1 R2 RR)) (TauF t1) ot2 -> + suttF RR (gfp (@sutt_mon E R1 R2 RR)) (observe t1) ot2. Proof. intros. remember (TauF t1) as ott1. induction H; intros; subst; try dependent destruction Heqott1; eauto with itree. - pclearbot. punfold EQTAUS. + sstep in EQTAUS. exact EQTAUS. Qed. Lemma sutt_inv_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : @@ -146,8 +177,7 @@ Lemma sutt_inv_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR (Tau t1) t2 -> sutt RR t1 t2. Proof. - intros. - punfold H. pstep. repeat red in H |- *. + intros. sstep in H. sstep. apply suttF_inv_tau_left; auto. Qed. @@ -155,31 +185,42 @@ Theorem sutt_eutt {E R1 R2} (RR : R1 -> R2 -> Prop) : forall (t1 : itree E R1) (t2 : itree E R2), sutt RR t1 t2 -> sutt (flip RR) t2 t1 -> eutt RR t1 t2. Proof. - pcofix CIH. intros. - punfold H0. punfold H. pstep. red. - induction H0; intros; subst; auto with itree. - - constructor. intro. right. eapply suttF_inv_vis in H. pclearbot. eauto with paco itree. - - constructor; eauto. eapply IHsuttF; auto. eapply suttF_inv_tau_left; auto. - - (* doing induction when one of the trees is a tau doesn't work well *) - inv H; pclearbot. + icoinduction c CIH. intros t1 t2 H1 H2. + sstep in H1. sstep in H2. + induction H1; intros; subst; auto with itree. + - (* suttF_vis *) + constructor. intro x. apply CIH. + + unfold sutt. exact (SUTTK x). + + unfold sutt. exact (suttF_inv_vis _ _ _ _ _ _ H2 x). + - (* suttF_tau_right *) + constructor; eauto. eapply IHsuttF; auto. eapply suttF_inv_tau_left; auto. + - (* suttF_tau_left *) + inv H2. + clear t1 t2. genobs t0 ot0. - hinduction EQTAUS0 before CIH; intros; subst; pclearbot. + hinduction EQTAUS0 before CIH; intros; subst. * constructor; eauto. simpobs. constructor. eauto. - * constructor; eauto. simpobs. constructor. intros. - right. apply CIH; auto with itree. eapply sutt_inv_vis in EQTAUS; eauto with itree. + * constructor; eauto. simpobs. constructor. intro x. + apply CIH. + -- exact (sutt_inv_vis _ _ _ _ _ EQTAUS x). + -- unfold sutt. apply SUTTK. * constructor; eauto. simpobs. eapply IHEQTAUS0; eauto. - rewrite (itree_eta' ot1). apply sutt_inv_tau_left; auto. - * constructor. right. apply CIH; auto. apply sutt_elim_tau_right; auto. - + constructor. right. apply CIH; apply sutt_elim_tau_right; auto. + rewrite (itree_eta' ot1). apply sutt_inv_tau_left. unfold sutt. exact EQTAUS. + * constructor. apply CIH; auto. apply sutt_elim_tau_right; auto. + + constructor. apply CIH; apply sutt_elim_tau_right; auto. Qed. Theorem eutt_sutt {E R1 R2} (RR : R1 -> R2 -> Prop) : forall (t1 : itree E R1) (t2 : itree E R2), eutt RR t1 t2 -> sutt RR t1 t2. Proof. - pcofix CIH. pstep. intros. - punfold H0. red in H0. - induction H0; constructor; pclearbot; eauto 7 with paco itree. + scoinduction c CIH. intros t1 t2 H. + step in H. + induction H. + - constructor; auto. + - constructor. constructor. apply CIH. exact REL. + - constructor. intro. apply CIH. apply REL. + - constructor. step. exact IHeqitF. + - constructor. exact IHeqitF. Qed. (** Generalized heterogeneous version of [eutt_bind] *) @@ -189,15 +230,17 @@ Lemma sutt_bind' {E R1 R2 S1 S2} {RR: R1 -> R2 -> Prop} {SS: S1 -> S2 -> Prop}: forall s1 s2, (forall r1 r2, RR r1 r2 -> sutt SS (s1 r1) (s2 r2)) -> @sutt E _ _ SS (ITree.bind t1 s1) (ITree.bind t2 s2). Proof. - pcofix self. pstep. intros. - punfold H0. unfold observe; cbn. - induction H0; intros. - - simpl. apply H1 in H. punfold H. eapply monotone_suttF; eauto using upaco2_mon_bot. - - simpl. pclearbot. econstructor. eauto with itree. - - constructor. eauto with paco. - - constructor. pclearbot. - right. specialize (self t0 (go ot2) EQTAUS _ _ H1). - apply self. + scoinduction c CIH. intros t1 t2 H s1 s2 Hs. + sstep in H. unfold observe; cbn. + induction H; intros. + - simpl. apply Hs in H. sstep in H. + eapply suttF_mono; [|exact H]. + intros ?? ?. now apply (gfp_chain c). + - simpl. econstructor. intros. apply CIH; eauto with itree. + - constructor. eauto. + - constructor. + change (elem c (observe (ITree.bind t0 s1)) (observe (ITree.bind (go ot2) s2))). + apply CIH; auto. Qed. (* todo: this could be made stronger with eutt rather than eq_itree @@ -206,18 +249,22 @@ Qed. : Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (@sutt E R1 R2 r). Proof. - repeat red. pcofix CIH; pstep. intros. - punfold H0; punfold H1; punfold H2. red in H0, H1. - (* rename H1 into H2, Hxy into H1. *) - hinduction H2 before CIH; subst; intros. - - inv H0; try discriminate. inv H1; try discriminate. econstructor. eauto. + repeat red. scoinduction c CIH. intros x y H x0 y0 H0 H1. + step in H. step in H0. sstep in H1. + revert x H x0 H0. + induction H1; intros. + - inv H1; try discriminate. inv H0; try discriminate. econstructor. eauto. + - dependent destruction H; try discriminate. + dependent destruction H0; try discriminate. + simpobs. + constructor. intros. eapply CIH. + apply REL. + apply REL0. apply SUTTK. - dependent destruction H0; try discriminate. - dependent destruction H1; try discriminate. - simpobs. pclearbot. - constructor. intros. right. eauto 7 with paco itree. - - dependent destruction H1; try discriminate. - simpobs. pclearbot. punfold REL. auto with itree. - - dependent destruction H0; try discriminate. - simpobs. pclearbot. constructor. - right. rewrite (itree_eta' ot2) in *. eauto with itree. -Qed. + simpobs. constructor. + apply IHsuttF; auto. now step in REL. + - dependent destruction H; try discriminate. + simpobs. constructor. + rewrite (itree_eta' ot2) in *. eapply CIH. + apply REL. step; apply H0. apply EQTAUS. +Qed. \ No newline at end of file From 2c155fe241f86c09f329907d202ce682e1c09586 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 14:16:54 -0400 Subject: [PATCH 101/189] Done up through HandlerFacts, now on Rutt --- .Makefile.d | 4 +- theories/Basics/CategoryRelations.v | 1 - theories/Eq/Eqit.v | 4 +- theories/Interp/HandlerFacts.v | 110 ++++++++++++++-------------- 4 files changed, 62 insertions(+), 57 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 340e21f9..62f5e2cb 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -60,8 +60,8 @@ theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Basics/CategoryRelations.v b/theories/Basics/CategoryRelations.v index 21ebc5ad..d0066a9d 100644 --- a/theories/Basics/CategoryRelations.v +++ b/theories/Basics/CategoryRelations.v @@ -539,7 +539,6 @@ Ltac decomp := 3 : refine ((inr (inr c0))). intuition; econstructor; auto. intuition. - exists (inr (inr d0)); intuition; econstructor; auto. - split. Unshelve. econstructor. reflexivity. cbn. auto. Qed. Global Instance Monoidal_sum_rel : Monoidal relationH sum void. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e2f65845..8fe6ae1e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -29,7 +29,7 @@ From Stdlib Require Import Morphisms Relations. -From Coinduction Require Import all. +From Coinduction Require Export all. (* important: Basics.Utils must come after Coinduction, as it re-implements several tactics. *) @@ -350,6 +350,8 @@ let c := fresh "c" in let cih := fresh "cih" in bcoinduction c cih. +Ltac bcbn := cbn; to_mon. + (* The [icbn] tactic: unfolding the ITree definition *) (* Since [itrees] are defined with nesting, un-nesting is often needed diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index f3fa1914..71e25f2f 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -6,8 +6,6 @@ From Stdlib Require Import Morphisms RelationClasses. -From Paco Require Import paco. - From ITree Require Import Basics.Basics Basics.Category @@ -149,51 +147,53 @@ Proof. (* h is pretty big and duplicating it slows down the display of the goal, so we try to rewrite with EQh only when necessary. *) end. - remember (Tau (f T a0)) as t eqn:tmp_t. clear tmp_t. - revert t; einit; ecofix CIH; intros t. + remember (Tau (f T a0)) as t eqn:tmp_t. clear tmp_t. + (* eutt needs to be transparent for coinductive unfolding to work *) + Local Transparent eutt. + + revert t; bcoinduction; intros t. rewrite (itree_eta t). destruct (observe t). - - rewrite unfold_interp_mrec; cbn. + - rewrite unfold_interp_mrec. bcbn. rewrite 2 interp_ret. rewrite unfold_interp_mrec. reflexivity. - - rewrite unfold_interp_mrec; cbn. + - rewrite unfold_interp_mrec. bcbn. rewrite 2 interp_tau. rewrite (unfold_interp_mrec _ _ (Tau _)); cbn. - estep. - - rewrite unfold_interp_mrec; cbn. + now taus. + - rewrite unfold_interp_mrec. bcbn. rewrite interp_vis. - destruct e; cbn. + destruct e; bcbn. + rewrite interp_tau. rewrite 2 interp_mrec_bind, interp_bind. - subst h; cbn. + subst h; bcbn. rewrite interp_trigger. - rewrite unfold_interp_mrec; cbn. - rewrite interp_mrec_trigger; cbn. + rewrite unfold_interp_mrec; bcbn. + rewrite interp_mrec_trigger; bcbn. unfold Recursion.mrec. rewrite !interp_tau. - rewrite (unfold_interp_mrec _ _ (Tau _)); cbn. + rewrite (unfold_interp_mrec _ _ (Tau _)); bcbn. rewrite !bind_tau. - etau. rewrite tau_euttge, <- interp_bind, <- 2 interp_mrec_bind. + taus. rewrite tau_euttge, <- interp_bind, <- 2 interp_mrec_bind. setoid_rewrite (tau_euttge (interp _ _)). rewrite <- interp_bind. auto with paco. + rewrite interp_vis. rewrite interp_mrec_bind. - subst h; cbn. - Local Transparent eutt. - ebind. apply (pbc_intro_h _ _ _ _ _ eq). - { rewrite interp_mrec_as_interp, interp_interp. + subst h; bcbn. + ebind. instantiate (1:=eq). + { do 2 step. rewrite interp_mrec_as_interp, interp_interp. rewrite <- interp_id_h at 1. eapply eutt_interp; try reflexivity. intros ? ?. rewrite interp_trigger; cbn. reflexivity. } intros ? _ []. - rewrite (unfold_interp_mrec _ _ (Tau _)); cbn. - etau. + rewrite (unfold_interp_mrec _ _ (Tau _)); bcbn. + taus. rewrite tau_euttge. - auto with paco. + apply cih. Qed. Section DinatSimulation. @@ -223,42 +223,42 @@ Theorem interleaved_mrec : forall t1 t2, interleaved t1 t2 -> Recursion.interp_mrec (cat f (case_ g inr_)) t1 ≈ Recursion.interp_mrec (cat g (case_ f inr_)) t2. -Proof. - einit; ecofix CIH; intros. - induction H0. - - rewrite 2 unfold_interp_mrec; cbn. estep. +Proof with eauto with itree. + bcoinduction; intros. + induction H. + - rewrite 2 unfold_interp_mrec; bcbn. reflexivity. - rewrite (itree_eta t); destruct (observe t). + rewrite interp_ret, 2 bind_ret_l. auto. - + rewrite interp_tau, 2 bind_tau, 2 unfold_interp_mrec; cbn. - estep. + + rewrite interp_tau, 2 bind_tau, 2 unfold_interp_mrec; bcbn. + taus... + rewrite interp_vis, bind_vis. rewrite bind_bind. - rewrite (unfold_interp_mrec _ _ (Vis _ _)); cbn. - destruct e; cbn. setoid_rewrite (tau_euttge (interp _ _)). + rewrite (unfold_interp_mrec _ _ (Vis _ _)); bcbn. + destruct e; bcbn. setoid_rewrite (tau_euttge (interp _ _)). * unfold cat at 3, Cat_Handler at 3, Handler.cat. change (g X b) with (Tau (g0 X b)). - rewrite bind_tau, unfold_interp_mrec; cbn. - etau. rewrite tau_euttge. ebase. + rewrite bind_tau, unfold_interp_mrec; bcbn. + taus. rewrite tau_euttge... * unfold inr_, Inr_sum1_Handler, Handler.inr_, Handler.htrigger. rewrite bind_trigger. - rewrite unfold_interp_mrec; cbn. - evis; intros; etau. rewrite tau_euttge. ebase. + rewrite unfold_interp_mrec; bcbn. + constructor; intros. repeat rewrite tau_euttge... - rewrite (itree_eta t); destruct (observe t). + rewrite interp_ret, 2 bind_ret_l. auto. - + rewrite interp_tau, 2 bind_tau, 2 unfold_interp_mrec; cbn. - estep. + + rewrite interp_tau, 2 bind_tau, 2 unfold_interp_mrec; bcbn. + taus... + rewrite interp_vis, bind_vis. rewrite bind_bind. - rewrite (unfold_interp_mrec _ _ (Vis _ _)); cbn. - destruct e; cbn. setoid_rewrite (tau_euttge (interp _ _)). + rewrite (unfold_interp_mrec _ _ (Vis _ _)); bcbn. + destruct e; bcbn. setoid_rewrite (tau_euttge (interp _ _)). * unfold cat at 2, Cat_Handler at 2, Handler.cat. change (f X a) with (Tau (f0 X a)). - rewrite !bind_tau, (unfold_interp_mrec _ _ (Tau _)); cbn. - etau. rewrite tau_euttge. ebase. + rewrite !bind_tau, (unfold_interp_mrec _ _ (Tau _)); bcbn. + taus. rewrite tau_euttge... * unfold inr_, Inr_sum1_Handler, Handler.inr_, Handler.htrigger. rewrite bind_trigger. - rewrite unfold_interp_mrec; cbn. - evis; intros; etau. rewrite tau_euttge. ebase. + rewrite unfold_interp_mrec; bcbn. + constructor; intros. repeat rewrite tau_euttge... Qed. End DinatSimulation. @@ -324,29 +324,33 @@ Proof. apply euttge_interp; try reflexivity. apply tau_euttge. } - revert t. einit; ecofix CIH. intros. - rewrite (itree_eta t); destruct (observe t); cbn. - all: rewrite (unfold_interp_mrec _ _ (go _)), unfold_interp; cbn. - 1,2: rewrite unfold_interp_mrec; cbn. - 1,2: rewrite (unfold_interp_mrec _ _ (go _)); estep. + Local Transparent eutt. + + revert t. bcoinduction; intros. + rewrite (itree_eta t); destruct (observe t); bcbn. + all: rewrite (unfold_interp_mrec _ _ (go _)), unfold_interp; bcbn. + 1,2: rewrite unfold_interp_mrec; bcbn. + 1,2: rewrite (unfold_interp_mrec _ _ (go _)); eauto with itree. + taus. apply cih. destruct e. - rewrite (interp_mrec_bind _ (ITree.trigger _)). - rewrite interp_mrec_trigger; cbn. + rewrite interp_mrec_trigger; bcbn. unfold Recursion.mrec. remember (f X a0) as fxa eqn:Hfxa; unfold f in Hfxa; subst fxa. - rewrite interp_tau, unfold_interp_mrec; cbn. - rewrite (unfold_interp_mrec _ _ (Tau _)); cbn. + rewrite interp_tau, unfold_interp_mrec; bcbn. + rewrite (unfold_interp_mrec _ _ (Tau _)); bcbn. rewrite !bind_tau. - etau. + taus. rewrite tau_euttge. setoid_rewrite tau_euttge. rewrite <- interp_mrec_bind, <- interp_bind. auto with paco. - rewrite bind_trigger. setoid_rewrite tau_euttge. - rewrite 2 unfold_interp_mrec; cbn. - destruct s; estep. + rewrite 2 unfold_interp_mrec; bcbn. + destruct s. taus. rewrite <- interp_mrec_bind, <- interp_bind. - auto with paco. + apply cih. + constructor; intros. now step; taus. Qed. Global Instance Iterative_Handler : Iterative Handler sum1. From 2e14238ecb483bcf610b90577e9080c1b1e52cfd Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 14:18:09 -0400 Subject: [PATCH 102/189] Removed UpToTaus.v --- .Makefile.d | 2 - _CoqProject.itree | 1 - theories/Eq/UpToTaus.v | 729 ----------------------------------------- 3 files changed, 732 deletions(-) delete mode 100644 theories/Eq/UpToTaus.v diff --git a/.Makefile.d b/.Makefile.d index 62f5e2cb..3bddb972 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -58,8 +58,6 @@ theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vo theories/Eq/UpToTaus.glob theories/Eq/UpToTaus.v.beautified theories/Eq/UpToTaus.required_vo: theories/Eq/UpToTaus.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/UpToTaus.vos theories/Eq/UpToTaus.vok theories/Eq/UpToTaus.required_vos: theories/Eq/UpToTaus.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/_CoqProject.itree b/_CoqProject.itree index 55a96f9f..502d07b1 100644 --- a/_CoqProject.itree +++ b/_CoqProject.itree @@ -34,7 +34,6 @@ theories/Eq.v theories/Eq/Paco2.v theories/Eq/Shallow.v theories/Eq/Eqit.v -theories/Eq/UpToTaus.v theories/Eq/SimUpToTaus.v theories/Eq/EqAxiom.v theories/Eq/Rutt.v diff --git a/theories/Eq/UpToTaus.v b/theories/Eq/UpToTaus.v deleted file mode 100644 index 38205f1c..00000000 --- a/theories/Eq/UpToTaus.v +++ /dev/null @@ -1,729 +0,0 @@ -(** * Equivalence up to taus *) - -(** Abbreviated as [eutt]. *) - -(** We consider [Tau] as an "internal step", that should not be - visible to the outside world, so adding or removing [Tau] - constructors from an itree should produce an equivalent itree. - - We must be careful because there may be infinite sequences of - taus (i.e., [spin]). Here we shall only allow inserting finitely - many [Tau]s between any two visible steps ([Ret] or [Vis]), so that - [spin] is only related to itself. This ensures that equivalence - up to taus is transitive (and in fact an equivalence relation). - *) - -(** A rewrite hint database named [itree] is available via the tactic - [autorewrite with itree] as a custom simplifier of expressions using - mainly [Ret], [Tau], [Vis], [ITree.bind] and [ITree.Interp.Interp.interp]. - *) - -(** This file contains only the definition of the [eutt] relation. - Theorems about [eutt] are split in two more modules: - - - [ITree.Eq.UpToTausCore] proves that [eutt] is reflexive, symmetric, - and that [ITree.Eq.Eqit.eq_itree] is a subrelation of [eutt]. - Equations for [ITree.Core.ITreeDefinition] combinators which only rely on - those properties can also be found here. - - - [ITree.Eq.UpToTausEquivalence] proves that [eutt] is transitive, - and, more generally, contains theorems for up-to reasoning in - coinductive proofs. - *) - -(** Splitting things this way makes the library easier to build in parallel. - *) - -(* begin hide *) -From Stdlib Require Import - Structures.Orders (* Hint Unfold is_true *) - Program - Setoid - Morphisms - Relations. - -From Coinduction Require Import all. - -(* important: Basics.Utils must come after Coinduction, as it -re-implements several tactics. *) -From ITree Require Import - Basics.Basics - Basics.Utils - Basics.HeterogeneousRelations - Core.ITreeDefinition - Eq.Eqit - Eq.Shallow. - -Import RelNotations. - -Local Open Scope itree_scope. -(* end hide *) - -(** ** gpaco -*) - -(* Tactic Notation "gpaco_" := - match goal with - | [|- context[gpaco2]] => eapply gpaco2_gpaco; [eauto with paco|] - end. -Ltac gpaco := repeat red; under_forall ltac:(gpaco_). - -(**** END ****) - -Section EUTTG. - -Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). - -Definition transU := @eqit_trans_clo E R1 R2 RR true true true true. -Definition transD := @eqit_trans_clo E R1 R2 RR true true false false. -Definition bindC := @eqit_bind_clo E R1 R2 true true. - -Definition euttVC gH r := - gupaco2 (eqit_ RR true true id) transD (transU (r \2/ gH)). - -Variant euttG rH rL gL gH t1 t2 : Prop := -| euttG_intro - (IN: gpaco2 (@eqit_ E R1 R2 RR true true (euttVC gH)) transD (transU rH \2/ rL) gL t1 t2) -. - -Hint Unfold transU transD bindC euttVC : itree. -Hint Constructors euttG : itree. - -Lemma transD_mon r1 r2 t1 t2 - (IN: transD r1 t1 t2) - (LE: r1 <2= r2): - transD r2 t1 t2. -Proof. eapply eqitC_mon, LE; eauto. Qed. - -Lemma transU_mon r1 r2 t1 t2 - (IN: transU r1 t1 t2) - (LE: r1 <2= r2): - transU r2 t1 t2. -Proof. - destruct IN. econstructor; eauto. -Qed. - -Lemma transDleU: transD <3= transU. -Proof. - intros. destruct PR. econstructor; eauto using eqit_mon. -Qed. - -Lemma transD_compose: - compose transD transD <3= transD. -Proof. - intros. destruct PR. destruct REL. - econstructor; try eapply eqit_trans; eauto; auto_ctrans. -Qed. - -Lemma transU_compose: - compose transU transU <3= transU. -Proof. - intros. destruct PR. destruct REL. - econstructor; try eapply eqit_trans; eauto; auto_ctrans. -Qed. - -Lemma transD_id: id <3= transD. -Proof. intros. econstructor; try reflexivity; auto_ctrans. Qed. - -Lemma transU_id: id <3= transU. -Proof. intros. econstructor; try reflexivity; auto_ctrans. Qed. - -Hint Resolve transD_mon transU_mon : paco. - -Lemma euttVC_mon gH: - monotone2 (euttVC gH). -Proof. - red; intros. - eapply gupaco2_mon; eauto. intros. - eapply transU_mon; eauto. intros. - destruct PR0; eauto. -Qed. -Hint Resolve euttVC_mon : paco. - -Lemma euttVC_compat gH: - compose transD (euttVC gH) <3= compose (euttVC gH) transD. -Proof. - intros. gclo. eapply transD_mon; eauto. intros. - eapply gupaco2_mon; eauto. intros. - eapply transU_mon; eauto. intros. - destruct PR2; eauto. - left. econstructor; try reflexivity; auto_ctrans. -Qed. -Hint Resolve euttVC_compat : paco. - -Lemma euttVC_id gH: - id <3= euttVC gH. -Proof. - intros. gbase. econstructor; try reflexivity; auto_ctrans. -Qed. -Hint Resolve euttVC_id : paco. - -End EUTTG. - -#[global] Hint Unfold transU transD bindC euttVC : itree. -#[global] Hint Constructors euttG : itree. -#[global] Hint Resolve transD_mon transU_mon : paco. -#[global] Hint Resolve euttVC_mon : paco. -#[global] Hint Resolve euttVC_compat : paco. -#[global] Hint Resolve transD_id transU_id euttVC_id : paco. - -#[global] -Instance geuttG_cong_euttge {E R1 R2 RR} gH r g: - Proper (euttge eq ==> euttge eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RR true true (euttVC RR gH)) (transD RR) r g). -Proof. - repeat intro. guclo eqit_clo_trans. econstructor; eauto; auto_ctrans. -Qed. - -#[global] -Instance geuttG_cong_eq {E R1 R2 RR} gH r g: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (gpaco2 (@eqit_ E R1 R2 RR true true (euttVC RR gH)) (transD RR) r g). -Proof. - repeat intro. eapply geuttG_cong_euttge; - [ eapply eq_sub_euttge; eassumption .. | eauto with itree ]. -Qed. - -Lemma eqit_ret_gen {E R1 R2 RR} t v - (IN: @eqit E R1 R2 RR true true t (Ret v)): - eqit RR true false t (Ret v). -Proof. - punfold IN. pstep. red in IN |- *. simpl in *. - remember (RetF v) as ot. - hinduction IN before RR; intros; subst; try inv Heqot; eauto with itree. -Qed. - -Section EUTTG_Properties1. - -Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). - -Local Notation euttG := (@euttG E R1 R2 RR). - -Lemma rclo_transD r: - rclo2 (transD RR) r <2= @transD E R1 R2 RR r. -Proof. - intros. induction PR; eauto with paco. - destruct IN. apply H in REL. destruct REL. - econstructor; try apply REL; try eapply eqit_trans; eauto; auto_ctrans. -Qed. - -Lemma rclo_flip clo (r: itree E R1 -> itree E R2 -> Prop) - (MON: monotone2 clo): - flip (rclo2 (fun x : itree E R2 -> itree E R1 -> Prop => flip (clo (flip x))) (flip r)) <2= rclo2 clo r. -Proof. - intros. induction PR; eauto with paco. - apply rclo2_clo; eauto. -Qed. - -Lemma transD_flip r: - flip (transD (flip RR) (flip r)) <2= @transD E _ _ RR r. -Proof. - unfold flip. intros. destruct PR. econstructor; eauto. -Qed. - -Lemma transU_flip r: - flip (transU (flip RR) (flip r)) <2= @transU E R1 R2 RR r. -Proof. - unfold flip. intros. destruct PR. econstructor; eauto. -Qed. - -Lemma euttVC_flip gH r: - flip (euttVC (flip RR) (flip gH) (flip r)) <2= @euttVC E R1 R2 RR gH r. -Proof. - pcofix CIH. intros. gunfold PR. - gclo. apply rclo_transD. - eapply rclo_flip; eauto with paco. - eapply rclo2_mon_gen; eauto; intros. - { eapply transD_flip. eauto. } - destruct PR0; cycle 1. - { gbase. destruct H; eauto using transU_flip with itree. } - gstep. apply eqitF_flip. - eapply eqitF_mono; eauto with paco. intros. - gbase. eapply CIH. - eapply gupaco2_mon; eauto. intros. - destruct PR1; eauto. -Qed. - -Lemma euttG_flip gH r: - flip (gupaco2 (eqit_ (flip RR) true true (euttVC (flip RR) (flip gH))) (transD (flip RR)) (flip r)) <2= - gupaco2 (@eqit_ E R1 R2 RR true true (euttVC RR gH)) (transD RR) r. -Proof. - pcofix CIH; intros. - destruct PR. econstructor. - eapply rclo_flip; eauto with paco. - eapply rclo2_mon_gen; [ eauto using transD_flip with itree .. | ]. intros. - destruct PR; [ | eauto with itree ]. - left. punfold H. pstep. apply eqitF_flip. - eapply eqitF_mono; eauto with paco; intros. - - eapply euttVC_flip. apply PR. - - apply rclo_flip; eauto with paco. - eapply rclo2_mon_gen; [ eauto using transD_flip with paco itree .. | ]. - intros. right. left. destruct PR0. - + eapply CIH. red. eauto with paco. - + apply CIH0. destruct H0; eauto. -Qed. - -Lemma transD_dist: - forall r1 r2, @transD E R1 R2 RR (r1 \2/ r2) <2= (transD RR r1 \2/ transD RR r2). -Proof. apply eqitC_dist. Qed. - -Lemma transU_dist: - forall r1 r2, @transU E R1 R2 RR (r1 \2/ r2) <2= (transU RR r1 \2/ transU RR r2). -Proof. - intros. destruct PR. destruct REL; [left|right]; eauto with itree. -Qed. - -Lemma transU_dist_rev: - forall r1 r2, (transU RR r1 \2/ transU RR r2) <2= @transU E R1 R2 RR (r1 \2/ r2). -Proof. - intros. destruct PR, H; eauto with itree. -Qed. - -Variant transL (r: itree E R1 -> itree E R2 -> Prop) (t1: itree E R1) (t2: itree E R2) : Prop := -| transL_intro t' RR1 - (EQL: eqit RR1 true true t1 t') - (EQR: r t' t2) - (LERR: forall x x' y, RR1 x x' -> RR x' y -> RR x y) - : transL r t1 t2 -. -Hint Constructors transL : itree. - -Lemma transD_transL r: - transD RR (transL r) <2= transL (transD RR r). -Proof. - intros. destruct PR, REL. - econstructor; [|econstructor|]; try apply EQR. - - eapply eqit_trans. - + apply euttge_sub_eutt. eauto. - + eauto. - - reflexivity. - - eauto. - - auto_ctrans. - - auto_ctrans. - - auto_ctrans. -Qed. - -Lemma transLleU: transL <3= transU RR. -Proof. - intros. destruct PR. econstructor; eauto. reflexivity. auto_ctrans. -Qed. - -Lemma transL_closed vclo r - (MON: monotone2 vclo) - (COMP: wcompatible2 (eqit_ RR true true vclo) (transD RR)) - (CLOV: forall r (CLOL: transL r <2= r), transL (vclo r) <2= vclo r) - (CLOL: transL r <2= r) - (CLOD: transD RR r <2= r): - transL (gupaco2 (eqit_ RR true true vclo) (transD RR) r) - <2= gupaco2 (eqit_ RR true true vclo) (transD RR) r. -Proof. - pcofix CIH. intros t1 t2 []. - apply gpaco2_dist in EQR; eauto with paco. - destruct EQR; cycle 1. - { gbase. apply rclo_transD in H. destruct H. eauto 6 with itree. } - assert (REL: paco2 (eqit_ RR true true vclo) r t' t2). - { eapply paco2_mon; eauto. intros. - apply rclo_transD in PR. apply CLOD. - eapply transD_mon; eauto. intros. destruct PR0; eauto. - } - clear H. - - punfold EQL. red in EQL. punfold REL. red in REL. genobs t1 ot1. genobs t' ot'. - hinduction EQL before CIH; intros; subst. - - remember (RetF r2) as ot. genobs t2 ot2. - hinduction REL0 before CIH; intros; subst; try inv Heqot. - + gstep. red. simpobs. eauto with itree. - + gclo. econstructor; auto_ctrans_eq. - * rewrite (simpobs Heqot1). reflexivity. - * rewrite (simpobs Heqot2), tau_euttge. reflexivity. - - pclearbot. apply eqit_Tau_r in REL. rewrite Heqot' in REL, REL0. clear m2 Heqot'. - genobs t' ot'. genobs t2 ot2. - hinduction REL0 before CIH; intros; subst. - + apply eqit_ret_gen in REL0. - gclo. econstructor. - * eapply eqit_trans; [rewrite (simpobs Heqot1); reflexivity|]. - eapply eqit_trans; [rewrite tau_euttge; reflexivity|]. - eauto. - * rewrite (simpobs Heqot2). reflexivity. - * gstep. econstructor. eauto. - * auto_ctrans. - * auto_ctrans. - + gstep. red. simpobs. econstructor. gbase. - destruct REL. - * eapply CIH. econstructor; [|eauto using paco2_mon with paco|]. - -- eapply eqit_trans; [apply REL0|]. rewrite tau_eutt. reflexivity. - -- auto_ctrans. - * eapply CIH0. apply CLOL. econstructor; [|eauto|]. - -- eapply eqit_trans; [apply REL0|]. rewrite tau_eutt. reflexivity. - -- auto_ctrans. - + punfold REL0. red in REL0. simpl in *. - remember (VisF e k1) as ot. genobs m1 ot2. - hinduction REL0 before CIH; intros; try discriminate. - * inv_Vis. pclearbot. gstep. red. do 2 (simpobs; econstructor; eauto). intros. - eapply MON; [|intros; gbase; eapply CIH; eauto]. - eapply CLOV. - { intros. destruct PR, EQR. - econstructor; [|eauto|]; eauto using eqit_trans; auto_ctrans. } - econstructor; [ eauto with itree | | auto ]. - eapply MON; eauto. intros. - econstructor; try reflexivity; auto_ctrans. - gfinal. destruct PR; eauto. - * gclo; econstructor; auto_ctrans_eq; try reflexivity. - rewrite (simpobs Heqot1), tau_euttge. reflexivity. - + eapply IHREL0; try eapply eqit_trans; auto_ctrans_eq. - rewrite <-itree_eta, tau_eutt. reflexivity. - + gclo; econstructor; auto_ctrans_eq; try reflexivity. - rewrite (simpobs Heqot2), tau_euttge. reflexivity. - - remember (VisF e k2) as ot. genobs t2 ot2. - hinduction REL0 before CIH; intros; subst; try discriminate. - + inv_Vis. pclearbot. gstep. red. simpobs. econstructor; eauto. intros. - eapply MON; [|intros; gbase; eapply CIH; eauto]. - eapply CLOV. - { intros. destruct PR, EQR. - econstructor; swap 1 2; eauto using eqit_trans; auto_ctrans. } - econstructor; [ eauto with itree | | auto ]. - eapply MON; eauto. intros. - econstructor; auto_ctrans_eq; try reflexivity. - gfinal. destruct PR; eauto. - + gclo; econstructor; auto_ctrans_eq; try reflexivity. - rewrite (simpobs Heqot2), tau_euttge. reflexivity. - - gclo; econstructor; auto_ctrans_eq; try reflexivity. - rewrite (simpobs Heqot1), tau_euttge. reflexivity. - - clear t' Heqot'. remember (TauF t2) as ot. genobs t0 ot0. - hinduction REL before EQL; intros; subst; try inv Heqot; eauto; cycle 1. - + gclo; econstructor; auto_ctrans_eq; try reflexivity. - rewrite (simpobs Heqot0), tau_euttge. reflexivity. - + destruct REL; cycle 1. - * gbase. apply CLOL. econstructor; [ eauto with itree | | auto ]. - apply CLOD. econstructor; auto_ctrans_eq; try reflexivity. - rewrite (simpobs Heqot0), tau_euttge. reflexivity. - * eapply IHEQL; eauto. - simpobs. econstructor; eauto. - punfold H. -Qed. - -Lemma euttVC_transL gH r: - transL (euttVC RR gH r) <2= euttVC RR gH r. -Proof. - intros. eapply transL_closed; eauto using transU_compose, transLleU, transDleU with paco. -Qed. - -End EUTTG_Properties1. - -Section EUTTG_Properties2. - -Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). - -Local Notation euttG := (@euttG E R1 R2 RR). - -Lemma euttVC_transU gH r - (CLOR: transU RR r <2= r): - transU RR (euttVC RR gH r) <2= @euttVC E _ _ RR gH r. -Proof. - intros. destruct PR. - eapply euttVC_transL; eauto using transLleU, transDleU with paco. - econstructor; eauto. - eapply euttVC_flip. unfold flip. - eapply euttVC_transL; eauto using transLleU, transDleU, transU_flip with paco. - econstructor; eauto. - apply euttVC_flip. eauto. -Qed. - -Lemma euttG_transU_aux gH r - (CLOR: transU RR r <2= r): - transU RR (gupaco2 (eqit_ RR true true (euttVC RR gH)) (transD RR) r) <2= - gupaco2 (@eqit_ E R1 R2 RR true true (euttVC RR gH)) (transD RR) r. -Proof. - intros. destruct PR. - eapply transL_closed; eauto using euttVC_transL, transLleU, transDleU with paco. - econstructor; eauto. - apply euttG_flip. unfold flip. - eapply transL_closed; - [ eauto using euttVC_transL, transLleU, transDleU, transU_flip with paco itree .. | ]. - econstructor; eauto using euttG_flip with itree. -Qed. - -Lemma euttVC_gen gH r: - transU RR (gupaco2 (eqit_ RR true true (euttVC RR gH)) (transD RR) (transU RR (r \2/ gH))) - <2= @euttVC E R1 R2 RR gH r. -Proof. - intros. eapply euttG_transU_aux in PR; eauto using transU_compose. - revert x0 x1 PR. pcofix CIH. intros. - gunfold PR. apply rclo_transD in PR. - gclo. eapply transD_mon; eauto. intros. - destruct PR0; eauto with paco. - gstep. red in H |- *. induction H; auto with itree. - - econstructor. gbase. eapply CIH. - eapply gupaco2_mon; eauto. intros. - destruct PR0; eauto. - - econstructor. intros. gbase. eapply CIH. - red in REL. gupaco. eapply gupaco2_mon_gen; eauto with paco; intros. - + eapply eqitF_mono; eauto with paco. - + eapply euttG_transU_aux; eauto using transU_compose with paco. - eapply transU_mon; eauto. intros. - destruct PR1; [|eauto 7 with paco]. - eapply gupaco2_mon; eauto. intros. - destruct PR1; eauto. -Qed. - -Lemma euttG_gen rH rL gL gH: - euttG rH rL (gL \2/ (transU RR rH \2/ rL)) gH <2= euttG rH rL gL gH. -Proof. - intros. destruct PR. econstructor. - eapply gpaco2_gen_guard. eauto. -Qed. - -Lemma euttG_cofix_aux: forall rH rL gL gH x, - (x <2= euttG rH rL (gL \2/ x) (gH \2/ x)) -> (x <2= euttG rH rL gL gH). -Proof. - intros. apply euttG_gen. - econstructor. revert x0 x1 PR. pcofix CIH. - intros t1 t2 PR. apply H in PR. destruct PR as [IN]. revert t1 t2 IN. - pcofix CIH. intros. - apply gpaco2_dist in IN; eauto with paco. - destruct IN; cycle 1. - { apply rclo_transD in H0; eauto with paco. - gclo. eapply transD_mon; eauto with paco. - } - assert (LEM: upaco2 (eqit_ RR true true (euttVC RR (gH \2/ x))) - (rclo2 (transD RR) ((gL \2/ x) \2/ (transU RR rH \2/ rL))) - <2= gpaco2 (eqit_ RR true true (euttVC RR gH)) (transD RR) r0 r0). - { intros m1 m2 [REL|REL]. - - gbase. apply CIH1. - gpaco. gfinal. right. - eapply paco2_mon; eauto. intros. - apply rclo_transD in PR. gclo. eapply transD_mon; eauto. intros. gbase. - repeat destruct PR0 as [PR0|PR0]; eauto. - - apply rclo_transD in REL. gclo. eapply transD_mon; eauto. intros. gbase. - repeat destruct PR as [PR|PR]; eauto. - } - - punfold H0. gstep. red in H0 |- *. - induction H0; auto 3 with itree. - red in REL. econstructor. intros. - eapply gupaco2_mon; eauto. intros. - apply transU_dist in PR. destruct PR; eauto using transU_mon. - eapply transU_mon; eauto. intros; destruct PR; eauto with paco. -Qed. - -End EUTTG_Properties2. - -Section EUTTG_principles. - -Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). - -Local Notation euttG := (@euttG E R1 R2 RR). - -(* Make new hypotheses *) - -Lemma euttG_cofix rH rL gL gH x - (OBG: forall gL' (INCL: gL <2= gL') (CIHL: x <2= gL') gH' (INCH: gH <2= gH') (CIHH: x <2= gH'), x <2= euttG rH rL gL' gH'): - x <2= euttG rH rL gL gH. -Proof. - eapply euttG_cofix_aux; intros. - eapply OBG; eauto. -Qed. - -Lemma euttG_accF rH rL gL gH X (f : X -> _) (g : X -> _) - (OBJ: forall gL' (INCL: gL <2= gL') (CIHL: forall x : X, gL' (f x) (g x)) gH' (INCH: gH <2= gH') (CIHH: forall x : X, gH' (f x) (g x)), forall x : X, euttG rH rL gL' gH' (f x) (g x)): - forall x : X, euttG rH rL gL gH (f x) (g x). -Proof. - intros x. - apply euttG_cofix with (x := fun a b => exists x, a = (f x) /\ b = (g x)); [ | eauto ]. - intros. destruct PR as [? [-> ->]]. apply OBJ; eauto. -Qed. - -(* Process itrees *) - -Lemma euttG_ret: forall rH rL gL gH v1 v2, - RR v1 v2 -> euttG rH rL gL gH (Ret v1) (Ret v2). -Proof. - econstructor. gstep. econstructor. eauto. -Qed. - -Lemma euttG_bind: forall rH rL gL gH t1 t2, - bindC (euttG rH rL gL gH) t1 t2 -> euttG rH rL gL gH t1 t2. -Proof. - econstructor. guclo eqit_clo_bind. - destruct H. econstructor; eauto. - intros. edestruct REL; eauto. -Qed. - -Lemma euttG_transD: forall rH rL gL gH t1 t2, - transD RR (euttG rH rL gL gH) t1 t2 -> euttG rH rL gL gH t1 t2. -Proof. - econstructor. guclo eqit_clo_trans. - destruct H. econstructor; eauto. - edestruct REL; eauto. -Qed. - -(* Drop weak hypotheses for general rewriting *) - -Lemma euttG_transU rH rL gL gH t1 t2: - transU RR (euttG rH rH rH gH) t1 t2 -> euttG rH rL gL gH t1 t2. -Proof. - intros. apply euttG_gen. - cut (gupaco2 (eqit_ RR true true (euttVC RR gH)) (transD RR) (transU RR rH) t1 t2). - { intros. econstructor. eapply gpaco2_mon; eauto. } - eapply euttG_transU_aux; eauto using transU_compose. - eapply transU_mon; eauto. intros. destruct PR. - eapply gpaco2_mon; eauto; intros; - repeat destruct PR as [PR|PR]; eauto using transU_id. -Qed. - -Lemma euttG_drop rH rL gL gH t1 t2: - euttG rH rH rH gH t1 t2 -> euttG rH rL gL gH t1 t2. -Proof. - intros. apply euttG_gen. destruct H. econstructor. - eapply gpaco2_mon; intros; eauto; [destruct PR|]; eauto using transU_id. -Qed. - -(* Make a weakly guarded progress *) - -Lemma euttG_tau: forall rH rL gL gH t1 t2, - euttG rH gL gL gH t1 t2 -> euttG rH rL gL gH (Tau t1) (Tau t2). -Proof. - intros. apply euttG_gen. destruct H. econstructor. - gstep. econstructor. - eapply gpaco2_mon; eauto; intros; repeat destruct PR as [PR|PR]; eauto. -Qed. - -(* Make a strongly guarded progress *) - -Lemma euttG_vis: forall rH rL gL gH u (e: E u) k1 k2, - (forall v, euttG gH gH gH gH (k1 v) (k2 v)) -> euttG rH rL gL gH (Vis e k1) (Vis e k2). -Proof. - econstructor. gstep. econstructor. intros. - specialize (H v). destruct H. - apply euttVC_gen. econstructor; auto_ctrans_eq; try reflexivity. - eapply gpaco2_mon_gen; eauto; intros; repeat destruct PR as [PR|PR]; - eauto using gpaco2_clo, transDleU, transU_mon with paco. -Qed. - -Lemma euttG_vis_gen rH rL gL gH u1 (e1: E u1) u2 (e2 : E u2) k1 k2 (p : u1 = u2) - : eqeq E p e1 e2 -> pweqeq (euttG gH gH gH gH) p k1 k2 -> - euttG rH rL gL gH (Vis e1 k1) (Vis e2 k2). -Proof. - econstructor. gstep. apply (eqitF_VisF_gen p); auto. destruct p; cbn in *; intros. - specialize (H0 x). destruct H0. - apply euttVC_gen. econstructor; auto_ctrans_eq; try reflexivity. - eapply gpaco2_mon_gen; eauto; intros; repeat destruct PR as [PR|PR]; - eauto using gpaco2_clo, transDleU, transU_mon with paco. -Qed. - -(* Use available hypotheses *) - -Lemma euttG_base: forall rH rL gL gH t1 t2, - rH t1 t2 \/ rL t1 t2 -> euttG rH rL gL gH t1 t2. -Proof. - intros. econstructor. gbase. - destruct H; eauto using transU_id. -Qed. - -(** - Correctness - **) - -Lemma euttG_le_eutt: - euttG bot2 bot2 bot2 bot2 <2= eutt RR. -Proof. - intros. destruct PR. - assert(paco2 (eqit_ RR true true (euttVC RR bot2)) bot2 x0 x1). - { eapply gpaco2_init; eauto with paco. - eapply gpaco2_mon; eauto; intros; - repeat destruct PR as [PR|PR]; destruct PR; contradiction. - } - clear IN. - revert x0 x1 H. pcofix CIH. intros. - punfold H. pstep. unfold_eqit. - induction H; pclearbot; auto with itree. - econstructor; intros. specialize (REL v). - right. apply CIH. - ginit. gupaco. eapply gupaco2_mon_gen; eauto with paco; intros. - - eapply eqitF_mono; eauto with paco. - - apply euttG_transU_aux. - { intros. destruct PR0; contradiction. } - eapply transU_mon; eauto. intros. - pclearbot. gfinal. eauto. -Qed. - -Lemma eutt_le_euttG rH rL gL gH: - eutt RR <2= euttG rH rL gL gH. -Proof. - intros. econstructor. econstructor. apply rclo2_base. left. - eapply paco2_mon_bot; eauto; intros. - eapply eqitF_mono; eauto with paco. -Qed. - -End EUTTG_principles. - -Ltac apply_paco_acc CIH unpack_goal unpack_hyp := - apply euttG_accF; - let gL' := fresh "gL'" in - let INCL := fresh "INCL" in - let CIHL := fresh CIH "L" in - let gH' := fresh "gH'" in - let INCH := fresh "INCH" in - let CIHH := fresh CIH "H" in - intros gL' INCL CIHL gH' INCH CIHH; - unpack_goal tt; - unpack_hyp CIHL; - unpack_hyp CIHH. - -Ltac ecofix CIH := pcofix_with ltac:(apply_paco_acc CIH). - -Ltac einit := repeat red; under_forall ltac:(eapply euttG_le_eutt; eauto with paco itree). -Ltac efinal := repeat red; under_forall ltac:(eapply eutt_le_euttG; eauto with paco itree). -Ltac ebase := repeat red; under_forall ltac:(eapply euttG_base; eauto with paco itree). -Ltac eret := repeat red; under_forall ltac:(eapply euttG_ret; eauto with paco itree). -Ltac etau := repeat red; under_forall ltac:(eapply euttG_tau; eauto with paco itree). -Ltac evis := repeat red; under_forall ltac:(eapply euttG_vis; eauto with paco itree). -Ltac estep := first [eret|etau|evis]. -Ltac ebind := repeat red; under_forall ltac:(eapply euttG_bind; eauto with paco itree). -Ltac edrop := repeat red; under_forall ltac:(eapply euttG_drop; eauto with paco itree). - -Global Hint Resolve euttG_ret : paco. -Global Hint Resolve euttG_tau : paco. -Global Hint Resolve euttG_vis : paco. -Global Hint Resolve euttG_base : paco. -Global Hint Resolve euttG_le_eutt: paco. - -#[global] -Instance euttG_reflexive {E R} rH rL gL gH: - Reflexive (@euttG E R R eq rH rL gL gH). -Proof. - red; intros. efinal. reflexivity. -Qed. - -#[global] -Instance euttG_cong_eutt {E R1 R2 RR} rH gH: - Proper (eutt eq ==> eutt eq ==> flip impl) - (@euttG E R1 R2 RR rH rH rH gH). -Proof. - repeat intro. eapply euttG_transU. econstructor; auto_ctrans_eq; eauto. -Qed. - -#[global] -Instance euttG_cong_euttge {E R1 R2 RR} rH rL gL gH: - Proper (euttge eq ==> euttge eq ==> flip impl) - (@euttG E R1 R2 RR rH rL gL gH). -Proof. - repeat intro. eapply euttG_transD. econstructor; auto_ctrans_eq; eauto. -Qed. - -#[global] -Instance euttG_cong_eq {E R1 R2 RR} rH rL gL gH: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@euttG E R1 R2 RR rH rL gL gH). -Proof. - repeat intro. eapply euttG_cong_euttge; eauto; apply eq_sub_euttge; eauto. -Qed. *) - -(* wish list: - -absolute #1: more smoothness with step and observe; it still doesn't quite work right -any form of eqitF, no matter how obscure, should work with step -*) - -(* itree eta up to anything = eq_itree Proper up to anything *) - From 3daa15e20fd232afc6834789e61dd75c29da3457 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 15:26:05 -0400 Subject: [PATCH 103/189] Removed UpToTaus dependencies --- .Makefile.d | 52 ++++++++++++++++---------------- .gitignore | 1 + Makefile | 10 ++---- theories/Core/ITreeMonad.v | 4 +-- theories/Core/KTree.v | 1 - theories/Core/KTreeFacts.v | 3 +- theories/Eq.v | 1 - theories/Eq/Eqit.v | 3 +- theories/Events/FailFacts.v | 1 - theories/Events/StateFacts.v | 1 - theories/ITree.v | 1 - theories/Interp/Handler.v | 1 - theories/Interp/HandlerFacts.v | 1 - theories/Interp/InterpFacts.v | 1 - theories/Interp/RecursionFacts.v | 1 - theories/Interp/Traces.v | 1 - theories/Interp/TranslateFacts.v | 1 - theories/Simple.v | 1 - 18 files changed, 34 insertions(+), 51 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 3bddb972..4a8f845a 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,7 +1,7 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -44,14 +44,14 @@ theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Cor theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -88,26 +88,26 @@ theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/I theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/UpToTaus.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/UpToTaus.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo theories/Eq/UpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos theories/Eq/UpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -128,8 +128,8 @@ theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/ theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/UpToTaus.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/UpToTaus.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/.gitignore b/.gitignore index affc2b4e..65a2870a 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ tutorial/imp_test.mli *.native *.install +.mcp.json diff --git a/Makefile b/Makefile index 2784ed89..c5f54563 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.0.1 +## GNUMakefile for Rocq 9.1.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code he may need +# add any other Makefile code they may need -include Makefile.local # Parameters ################################################################## @@ -77,7 +77,6 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" -ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -87,9 +86,6 @@ else STDTIME?=command time endif endif -else -STDTIME?=command time -f $(TIMEFMT) -endif COQBIN?= ifneq (,$(COQBIN)) @@ -278,7 +274,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.0.1 +COQMAKEFILE_VERSION:=9.1.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/theories/Core/ITreeMonad.v b/theories/Core/ITreeMonad.v index 8e272245..00f29a0f 100644 --- a/theories/Core/ITreeMonad.v +++ b/theories/Core/ITreeMonad.v @@ -7,9 +7,7 @@ From ITree Require Import Basics.Basics Basics.Monad Core.ITreeDefinition - Eq.Eqit - Eq.UpToTaus. - + Eq.Eqit. #[global] Instance Eq1_ITree {E} : Eq1 (itree E) := fun a => eutt eq. diff --git a/theories/Core/KTree.v b/theories/Core/KTree.v index 3626fe57..78399228 100644 --- a/theories/Core/KTree.v +++ b/theories/Core/KTree.v @@ -15,7 +15,6 @@ From ITree Require Import Basics.Function Core.ITreeDefinition Eq.Eqit - (* Eq.UpToTaus *) (* see what breaks here, if anything *) . (* end hide *) diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 1ab275fd..3d031c4e 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -20,8 +20,7 @@ From ITree Require Import Core.ITreeMonad Core.KTree Eq.Shallow - Eq.Eqit - Eq.UpToTaus. + Eq.Eqit. Import CatNotations. Local Open Scope itree_scope. diff --git a/theories/Eq.v b/theories/Eq.v index 81e0273d..b870af7e 100644 --- a/theories/Eq.v +++ b/theories/Eq.v @@ -3,5 +3,4 @@ From ITree.Eq Require Export Shallow Eqit - UpToTaus SimUpToTaus. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 8fe6ae1e..72b7e795 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2135,7 +2135,8 @@ Proof. (* 2. we know they are by the CIH... *) all: try eapply CIH. (* 3. so the rest is just 'fancy reflexivity. *) - all: constructor; reflexivity. + all: constructor; ITree.fold_subst. + all: simpl; reflexivity. Qed. Lemma bind_ret_r' {E R} (u : itree E R) (f : R -> R) : diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index 5d89f660..7c7dc6b3 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -17,7 +17,6 @@ From ITree Require Import Core.KTree Core.KTreeFacts Eq.Eqit - Eq.UpToTaus Eq.Paco2 Indexed.Sum Interp.Interp diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index ff136936..e7cffac1 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -15,7 +15,6 @@ From ITree Require Import Core.KTree Core.KTreeFacts Eq.Eqit - Eq.UpToTaus Eq.Paco2 Indexed.Sum Interp.Interp diff --git a/theories/ITree.v b/theories/ITree.v index 401bbbad..d6afe3bb 100644 --- a/theories/ITree.v +++ b/theories/ITree.v @@ -14,7 +14,6 @@ From ITree Require Export Core.ITreeDefinition Core.KTree Core.Subevent - Eq.UpToTaus Indexed.Function Indexed.Sum Interp.Interp diff --git a/theories/Interp/Handler.v b/theories/Interp/Handler.v index 8f8e0adb..c22e3e48 100644 --- a/theories/Interp/Handler.v +++ b/theories/Interp/Handler.v @@ -12,7 +12,6 @@ From ITree Require Import Basics.Category Core.ITreeDefinition Eq.Eqit - Eq.UpToTaus Indexed.Sum Indexed.Relation Interp.Interp diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 71e25f2f..7d4ea2ef 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -11,7 +11,6 @@ From ITree Require Import Basics.Category Core.ITreeDefinition Eq.Eqit - Eq.UpToTaus Indexed.Sum Interp.Interp Interp.Handler diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 760cbd05..19d8523d 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -25,7 +25,6 @@ From ITree Require Import Core.KTreeFacts Eq.Shallow Eq.Eqit - Eq.UpToTaus Indexed.Sum Indexed.Function Indexed.Relation diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index d5ba63fc..2364ecae 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -20,7 +20,6 @@ From ITree Require Import Core.ITreeDefinition Core.KTree Eq.Eqit - Eq.UpToTaus Indexed.Sum Indexed.Function Indexed.Relation diff --git a/theories/Interp/Traces.v b/theories/Interp/Traces.v index 41d832b3..4808b211 100644 --- a/theories/Interp/Traces.v +++ b/theories/Interp/Traces.v @@ -9,7 +9,6 @@ From ITree Require Import Axioms Core.ITreeDefinition Eq.Eqit - Eq.UpToTaus Eq.SimUpToTaus Eq.Shallow Eq.Paco2. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index ed6ab58e..cb57372d 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -16,7 +16,6 @@ From ITree Require Import Core.Subevent Eq.Shallow Eq.Eqit - Eq.UpToTaus Indexed.Sum Indexed.Function Indexed.Relation diff --git a/theories/Simple.v b/theories/Simple.v index 5ac5b2c6..8b313927 100644 --- a/theories/Simple.v +++ b/theories/Simple.v @@ -271,7 +271,6 @@ End SimpleTheory. From ITree Require Import Eq.Eqit - Eq.UpToTaus Interp.InterpFacts Interp.RecursionFacts. From 498e403e7cfb1f85f985313152b51d47850e1233 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 17:09:16 -0400 Subject: [PATCH 104/189] Changes to Rutt, IP --- theories/Eq/Rutt.v | 318 ++++++++++++++++----------------------------- 1 file changed, 112 insertions(+), 206 deletions(-) diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 4b00d619..e08db247 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -17,24 +17,18 @@ From Stdlib Require Import Morphisms -. + Program. -From ExtLib Require Import - Structures.Monad. +From Coinduction Require Import all. From ITree Require Import Basics.Utils Axioms - ITree - Eq - Basics -. + Core.ITreeDefinition + Eq.Eqit + Eq.Shallow. -From Paco Require Import paco. - -Import Monads. -Import MonadNotation. -Local Open Scope monad_scope. +Local Open Scope itree_scope. Section RuttF. @@ -45,58 +39,62 @@ Section RuttF. Contributions to that effect are welcome. *) Context (REv : forall (A B : Type), E1 A -> E2 B -> Prop ). Context (RAns : forall (A B : Type), E1 A -> A -> E2 B -> B -> Prop ). - Context (RR : R1 -> R2 -> Prop). Arguments REv {A} {B}. Arguments RAns {A} {B}. - Inductive ruttF (sim : itree E1 R1 -> itree E2 R2 -> Prop) : itree' E1 R1 -> itree' E2 R2 -> Prop := + Inductive ruttF (RR: R1 -> R2 -> Prop) (sim : itree E1 R1 -> itree E2 R2 -> Prop) : itree' E1 R1 -> itree' E2 R2 -> Prop := | EqRet : forall (r1 : R1) (r2 : R2), RR r1 r2 -> - ruttF sim (RetF r1) (RetF r2) + ruttF RR sim (RetF r1) (RetF r2) | EqTau : forall (m1 : itree E1 R1) (m2 : itree E2 R2), sim m1 m2 -> - ruttF sim (TauF m1) (TauF m2) + ruttF RR sim (TauF m1) (TauF m2) | EqVis : forall (A B : Type) (e1 : E1 A) (e2 : E2 B ) (k1 : A -> itree E1 R1) (k2 : B -> itree E2 R2), REv e1 e2 -> (forall (a : A) (b : B), RAns e1 a e2 b -> sim (k1 a) (k2 b)) -> - ruttF sim (VisF e1 k1) (VisF e2 k2) + ruttF RR sim (VisF e1 k1) (VisF e2 k2) | EqTauL : forall (t1 : itree E1 R1) (ot2 : itree' E2 R2), - ruttF sim (observe t1) ot2 -> - ruttF sim (TauF t1) ot2 + ruttF RR sim (observe t1) ot2 -> + ruttF RR sim (TauF t1) ot2 | EqTauR : forall (ot1 : itree' E1 R1) (t2 : itree E2 R2), - ruttF sim ot1 (observe t2) -> - ruttF sim ot1 (TauF t2). + ruttF RR sim ot1 (observe t2) -> + ruttF RR sim ot1 (TauF t2). Hint Constructors ruttF : itree. - Definition rutt_ (sim : itree E1 R1 -> itree E2 R2 -> Prop) - (t1 : itree E1 R1) (t2 : itree E2 R2) := - ruttF sim (observe t1) (observe t2). - Hint Unfold rutt_ : itree. + Definition rutt_ (sim : (R1 -> R2 -> Prop) -> itree E1 R1 -> itree E2 R2 -> Prop) : + (R1 -> R2 -> Prop) -> itree E1 R1 -> itree E2 R2 -> Prop := + fun RR t1 t2 => + ruttF RR (sim RR) (observe t1) (observe t2). - Lemma rutt_monot : monotone2 rutt_. + Lemma rutt_mono : Proper (leq ==> leq) rutt_. Proof. - red. intros. red; induction IN; eauto with itree. + repeat intro. unfold rutt_ in *. induction H0; eauto with itree. + constructor; now apply H. + constructor; intros; eauto; now apply H, H1. Qed. - Definition rutt : itree E1 R1 -> itree E2 R2 -> Prop := paco2 rutt_ bot2. + Definition rutt_mon : mon ((R1 -> R2 -> Prop) -> itree E1 R1 -> itree E2 R2 -> Prop) := + {| body := rutt_ ; Hbody := rutt_mono |}. + + Definition rutt : (R1 -> R2 -> Prop) -> itree E1 R1 -> itree E2 R2 -> Prop := gfp rutt_mon. Hint Unfold rutt : itree. - Lemma ruttF_inv_VisF_r {sim} t1 U2 (e2: E2 U2) (k2: U2 -> _): - ruttF sim t1 (VisF e2 k2) -> + Lemma ruttF_inv_VisF_r {sim} RR t1 U2 (e2: E2 U2) (k2: U2 -> _): + ruttF RR sim t1 (VisF e2 k2) -> (exists U1 (e1: E1 U1) k1, t1 = VisF e1 k1 /\ forall v1 v2, RAns e1 v1 e2 v2 -> sim (k1 v1) (k2 v2)) \/ (exists t1', t1 = TauF t1' /\ - ruttF sim (observe t1') (VisF e2 k2)). + ruttF RR sim (observe t1') (VisF e2 k2)). Proof. refine (fun H => - match H in ruttF _ _ t2 return + match H in ruttF _ _ _ t2 return match t2 return Prop with | VisF e2 k2 => _ | _ => True end with - | EqVis _ _ _ _ _ _ _ _ _ => _ + | EqVis _ _ _ _ _ _ _ _ _ _ => _ | _ => _ end); try exact I. - left; eauto. @@ -104,46 +102,56 @@ Section RuttF. Qed. Lemma ruttF_inv_VisF {sim} - U1 U2 (e1 : E1 U1) (e2 : E2 U2) (k1 : U1 -> _) (k2 : U2 -> _) - : ruttF sim (VisF e1 k1) (VisF e2 k2) -> + RR U1 U2 (e1 : E1 U1) (e2 : E2 U2) (k1 : U1 -> _) (k2 : U2 -> _) + : ruttF RR sim (VisF e1 k1) (VisF e2 k2) -> forall v1 v2, RAns e1 v1 e2 v2 -> sim (k1 v1) (k2 v2). Proof. intros H. dependent destruction H. assumption. Qed. +End RuttF. - Ltac unfold_rutt := - (try match goal with [|- rutt_ _ _ _ _ _ _ _ ] => red end); - (repeat match goal with [H: rutt_ _ _ _ _ _ _ _ |- _ ] => red in H end). +(** ** Rutt-specific tactics *) - Lemma fold_ruttF: - forall (t1: itree E1 R1) (t2: itree E2 R2) ot1 ot2, - ruttF (upaco2 rutt_ bot2) ot1 ot2 -> - ot1 = observe t1 -> - ot2 = observe t2 -> - rutt t1 t2. - Proof. - intros * eq -> ->; pfold; auto. - Qed. -End RuttF. +(** [rstep] unfolds [rutt] one step, exposing the [ruttF] functor. *) +Tactic Notation "rstep" := + unfold rutt; step; cbn [rutt_mon body rutt_]. +Tactic Notation "rstep" "in" ident(h) := + unfold rutt in h; step in h; cbn [rutt_mon body rutt_] in h. -Tactic Notation "fold_ruttF" hyp(H) := - try punfold H; - try red in H; - match type of H with - | ruttF ?_REV ?_RANS ?_RR (upaco2 (rutt_ ?_REV ?_RANS ?_RR) bot2) ?_OT1 ?_OT2 => - match _OT1 with - | observe _ => idtac - | ?_OT1 => rewrite (itree_eta' _OT1) in H - end; - match _OT2 with - | observe _ => idtac - | ?_OT2 => rewrite (itree_eta' _OT2) in H - end; - eapply fold_ruttF in H; [| eauto | eauto] +Ltac fold_rutt := + match goal with + | |- context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR] => + change (@ruttF E1 E2 R1 R2 REv RAns RR) with (body (@rutt_mon E1 E2 R1 R2 REv RAns RR)) + end. +Ltac fold_rutt_in h := + match type of h with + | context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR] => + change (@ruttF E1 E2 R1 R2 REv RAns RR) with (body (@rutt_mon E1 E2 R1 R2 REv RAns RR)) in h end. +Tactic Notation "runstep" := fold_rutt; unstep. +Tactic Notation "runstep" "in" ident(h) := fold_rutt_in h; unstep in h. + +Local Ltac revert_one := + match goal with [ H : _ |- _ ] => revert H end. +Ltac runfold_coind := + first + [intros ?; runfold_coind; revert_one | + unfold rutt]. +Tactic Notation "rcoinduction" simple_intropattern(R) simple_intropattern(H) := + runfold_coind; coinduction R H; cbn [rutt_mon body rutt_]. + +#[local] Ltac rcbn := cbn[rutt_mon body rutt_]. +#[local] Ltac rcbn_in H := cbn[rutt_mon body rutt_] in H. -#[global] Hint Resolve rutt_monot : paco. +#[local] Tactic Notation "rcbn" "in" ident(h) := rcbn_in h. +#[local] Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body rutt] in *. + + +#[global] Hint Constructors ruttF : itree. +#[global] Hint Unfold rutt_ : itree. +#[global] Hint Unfold rutt_mon : itree. +#[global] Hint Unfold rutt : itree. Section ConstructionInversion. Variables (E1 E2: Type -> Type). @@ -155,19 +163,19 @@ Variable (RR: R1 -> R2 -> Prop). Lemma rutt_Ret r1 r2: RR r1 r2 -> @rutt E1 E2 R1 R2 REv RAns RR (Ret r1: itree E1 R1) (Ret r2: itree E2 R2). -Proof. intros. pstep; constructor; auto. Qed. +Proof. intros. rstep. constructor; auto. Qed. Lemma rutt_inv_Ret r1 r2: rutt REv RAns RR (Ret r1) (Ret r2) -> RR r1 r2. Proof. - intros. punfold H. inv H. eauto. + intros. rstep in H. inv H. eauto. Qed. Lemma rutt_inv_Ret_l r1 t2: rutt REv RAns RR (Ret r1) t2 -> exists r2, t2 ≳ Ret r2 /\ RR r1 r2. Proof. - intros Hrutt; punfold Hrutt; red in Hrutt; cbn in Hrutt. - setoid_rewrite (itree_eta t2). remember (RetF r1) as ot1; revert Heqot1. + intros Hrutt. rstep in Hrutt. rcbn in Hrutt. + setoid_rewrite (itree_eta t2). remember (RetF r1) as ot1; revert Heqot1. induction Hrutt; intros; try discriminate. - inversion Heqot1; subst. exists r2. split; [reflexivity|auto]. - destruct (IHHrutt Heqot1) as [r2 [H1 H2]]. exists r2; split; auto. @@ -177,7 +185,7 @@ Qed. Lemma rutt_inv_Ret_r t1 r2: rutt REv RAns RR t1 (Ret r2) -> exists r1, t1 ≳ Ret r1 /\ RR r1 r2. Proof. - intros Hrutt; punfold Hrutt; red in Hrutt; cbn in Hrutt. + intros Hrutt. rstep in Hrutt. cbn in Hrutt. setoid_rewrite (itree_eta t1). remember (RetF r2) as ot2; revert Heqot2. induction Hrutt; intros; try discriminate. - inversion Heqot2; subst. exists r1. split; [reflexivity|auto]. @@ -185,37 +193,54 @@ Proof. rewrite <- itree_eta in H1. now rewrite tau_euttge. Qed. +(** Helper: inversion of [ruttF] at [TauF] on the left. *) +Lemma ruttF_inv_tau_l t1 ot2 : + ruttF REv RAns RR (rutt REv RAns RR) (TauF t1) ot2 -> + ruttF REv RAns RR (rutt REv RAns RR) (observe t1) ot2. +Proof. + intros H. remember (TauF t1) as tt1. + induction H; try discriminate. + - inv Heqtt1. constructor. rstep in H. exact H. + - inv Heqtt1. exact H. + - constructor. auto. +Qed. + +(** Helper: inversion of [ruttF] at [TauF] on the right. *) +Lemma ruttF_inv_tau_r ot1 t2 : + ruttF REv RAns RR (rutt REv RAns RR) ot1 (TauF t2) -> + ruttF REv RAns RR (rutt REv RAns RR) ot1 (observe t2). +Proof. + intros H. remember (TauF t2) as tt2. + induction H; try discriminate. + - inv Heqtt2. constructor. rstep in H. exact H. + - constructor. auto. + - inv Heqtt2. exact H. +Qed. + Lemma rutt_inv_Tau_l t1 t2 : rutt REv RAns RR (Tau t1) t2 -> rutt REv RAns RR t1 t2. Proof. - intros. punfold H. red in H. simpl in *. - remember (TauF t1) as tt1. genobs t2 ot2. - hinduction H before t1; intros; try discriminate. - - inv Heqtt1. pclearbot. pstep. red. simpobs. econstructor; eauto. pstep_reverse. - - inv Heqtt1. punfold_reverse H. - - red in IHruttF. pstep. red; simpobs. econstructor; eauto. pstep_reverse. + intros. rstep in H. rstep. + apply ruttF_inv_tau_l. exact H. Qed. Lemma rutt_add_Tau_l t1 t2 : rutt REv RAns RR t1 t2 -> rutt REv RAns RR (Tau t1) t2. Proof. - intros. pfold. red. cbn. constructor. pstep_reverse. + intros. rstep. constructor. rstep in H. exact H. Qed. Lemma rutt_inv_Tau_r t1 t2 : rutt REv RAns RR t1 (Tau t2) -> rutt REv RAns RR t1 t2. Proof. - intros. punfold H. red in H. simpl in *. - pstep. red. remember (TauF t2) as tt2 eqn:Ett2 in H. - revert t2 Ett2; induction H; try discriminate; intros; inversion Ett2; subst; auto. - - pclearbot. constructor. pstep_reverse. - - constructor. eapply IHruttF; eauto. + intros. rstep in H. rstep. + apply ruttF_inv_tau_r. exact H. Qed. Lemma rutt_add_Tau_r t1 t2 : rutt REv RAns RR t1 t2 -> rutt REv RAns RR t1 (Tau t2). Proof. - intros. pfold. red. cbn. constructor. pstep_reverse. + intros. rstep. constructor. rstep in H. exact H. Qed. Lemma rutt_inv_Tau t1 t2 : @@ -230,8 +255,7 @@ Lemma rutt_Vis {T1 T2} (e1: E1 T1) (e2: E2 T2) (forall t1 t2, RAns _ _ e1 t1 e2 t2 -> rutt REv RAns RR (k1 t1) (k2 t2)) -> rutt REv RAns RR (Vis e1 k1) (Vis e2 k2). Proof. - intros He Hk. pstep; constructor; auto. - intros; left. apply Hk; auto. + intros He Hk. rstep. constructor; auto. Qed. Lemma rutt_inv_Vis_l {U1} (e1: E1 U1) k1 t2: @@ -241,13 +265,12 @@ Lemma rutt_inv_Vis_l {U1} (e1: E1 U1) k1 t2: REv _ _ e1 e2 /\ (forall v1 v2, RAns _ _ e1 v1 e2 v2 -> rutt REv RAns RR (k1 v1) (k2 v2)). Proof. - intros Hrutt; punfold Hrutt; red in Hrutt; cbn in Hrutt. + intros Hrutt. rstep in Hrutt. cbn in Hrutt. setoid_rewrite (itree_eta t2). remember (VisF e1 k1) as ot1; revert Heqot1. induction Hrutt; intros; try discriminate; subst. - inversion Heqot1; subst A. inversion_sigma; rewrite <- eq_rect_eq in *; subst; rename B into U2. exists U2, e2, k2; split. reflexivity. split; auto. - intros v1 v2 HAns. specialize (H0 v1 v2 HAns). red in H0. now pclearbot. - destruct (IHHrutt eq_refl) as (U2 & e2 & k2 & Ht0 & HAns). rewrite <- itree_eta in Ht0. exists U2, e2, k2; split; auto. now rewrite tau_eutt. @@ -260,13 +283,12 @@ Lemma rutt_inv_Vis_r {U2} t1 (e2: E2 U2) k2: REv U1 U2 e1 e2 /\ (forall v1 v2, RAns _ _ e1 v1 e2 v2 -> rutt REv RAns RR (k1 v1) (k2 v2)). Proof. - intros Hrutt; punfold Hrutt; red in Hrutt; cbn in Hrutt. + intros Hrutt. rstep in Hrutt. cbn in Hrutt. setoid_rewrite (itree_eta t1). remember (VisF e2 k2) as ot2; revert Heqot2. induction Hrutt; intros; try discriminate; subst. - inversion Heqot2; subst B. inversion_sigma; rewrite <- eq_rect_eq in *; subst; rename A into U1. exists U1, e1, k1; split. reflexivity. split; auto. - intros v1 v2 HAns. specialize (H0 v1 v2 HAns). red in H0. now pclearbot. - destruct (IHHrutt eq_refl) as (U1 & e1 & k1 & Ht0 & HAns). rewrite <- itree_eta in Ht0. exists U1, e1, k1; split; auto. now rewrite tau_eutt. @@ -277,124 +299,8 @@ Lemma rutt_inv_Vis U1 U2 (e1: E1 U1) (e2: E2 U2) rutt REv RAns RR (Vis e1 k1) (Vis e2 k2) -> forall u1 u2, RAns U1 U2 e1 u1 e2 u2 -> rutt REv RAns RR (k1 u1) (k2 u2). Proof. - intros H u1 u2 Hans. punfold H. - apply ruttF_inv_VisF with (v1 := u1) (v2 := u2) in H. pclearbot; auto. - assumption. -Qed. -End ConstructionInversion. - -Section euttge_trans_clo. - - Context {E1 E2 : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). - - (* Closing a relation over itrees under [euttge]. - Essentially the same closure as [eqit_trans_clo], but heterogeneous - in the interface argument [E]. - We only define the closure under [euttge] as opposed to [eqit_trans_clo] - capturing closure under [eq_itree] and [eutt] at the same time, since it's - the only one we need. - *) - - (* A transitivity functor *) - Variant euttge_trans_clo (r : itree E1 R1 -> itree E2 R2 -> Prop) : - itree E1 R1 -> itree E2 R2 -> Prop := - eqit_trans_clo_intro t1 t2 t1' t2' RR1 RR2 - (EQVl: euttge RR1 t1 t1') - (EQVr: euttge RR2 t2 t2') - (REL: r t1' t2') - (LERR1: forall x x' y, RR1 x x' -> RR x' y -> RR x y) - (LERR2: forall x y y', RR2 y y' -> RR x y' -> RR x y) : - euttge_trans_clo r t1 t2. - Hint Constructors euttge_trans_clo : itree. - - Lemma euttge_trans_clo_mon r1 r2 t1 t2 - (IN : euttge_trans_clo r1 t1 t2) - (LE : r1 <2= r2) : - euttge_trans_clo r2 t1 t2. - Proof. - destruct IN; econstructor; eauto. - Qed. - - Hint Resolve euttge_trans_clo_mon : paco. - -End euttge_trans_clo. - -(*replicate this proof for the models functor*) -(* Validity of the up-to [euttge] principle *) -Lemma euttge_trans_clo_wcompat E1 E2 R1 R2 (REv : forall A B, E1 A -> E2 B -> Prop) - (RAns : forall A B, E1 A -> A -> E2 B -> B -> Prop ) (RR : R1 -> R2 -> Prop) : - wcompatible2 (rutt_ REv RAns RR) (euttge_trans_clo RR). -Proof. - constructor; eauto with paco. - { red. intros. eapply euttge_trans_clo_mon; eauto. } - intros. - destruct PR. punfold EQVl. punfold EQVr. unfold_eqit. - hinduction REL before r; intros; clear t1' t2'. - - remember (RetF r1) as x. red. - hinduction EQVl before r; intros; subst; try inv Heqx; eauto; (try constructor; eauto). - remember (RetF r3) as x. hinduction EQVr before r; intros; subst; try inv Heqx; (try constructor; eauto). - - red. remember (TauF m1) as x. - hinduction EQVl before r; intros; subst; try inv Heqx; try inv CHECK; ( try (constructor; eauto; fail )). - remember (TauF m3) as y. - hinduction EQVr before r; intros; subst; try inv Heqy; try inv CHECK; (try (constructor; eauto; fail)). - pclearbot. constructor. gclo. econstructor; eauto with paco. - - remember (VisF e1 k1) as x. red. - hinduction EQVl before r; intros; subst; try discriminate; try (constructor; eauto; fail). - remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; subst; try discriminate; try (constructor; eauto; fail). - dependent destruction Heqx. - dependent destruction Heqy. - constructor; auto. intros. apply H0 in H1. pclearbot. - apply gpaco2_clo. - econstructor; eauto with itree. - - remember (TauF t1) as x. red. - hinduction EQVl before r; intros; subst; try inv Heqx; try inv CHECK; (try (constructor; eauto; fail)). - pclearbot. punfold REL. constructor. eapply IHREL; eauto. - - remember (TauF t2) as y. red. - hinduction EQVr before r; intros; subst; try inv Heqy; try inv CHECK; (try (constructor; eauto; fail)). - pclearbot. punfold REL. constructor. eapply IHREL; eauto. -Qed. - -#[global] Hint Resolve euttge_trans_clo_wcompat : paco. - -(* The validity of the up-to [euttge] entails we can rewrite under [euttge] - and hence also [eq_itree] during coinductive proofs of [rutt] -*) -#[global] Instance grutt_cong_eqit {R1 R2 : Type} {E1 E2 : Type -> Type} {REv : forall A B, E1 A -> E2 B -> Prop} - {RAns : forall A B, E1 A -> A -> E2 B -> B -> Prop} {RR1 RR2} {RS : R1 -> R2 -> Prop} r rg - (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) - (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : - Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) - (gpaco2 (rutt_ REv RAns RS) (euttge_trans_clo RS) r rg). -Proof. - repeat intro. gclo. econstructor; eauto; - try eapply eqit_mon; try apply H; try apply H0; auto. + intros H u1 u2 Hans. rstep in H. + exact (ruttF_inv_VisF _ _ _ _ _ _ _ _ _ H u1 u2 Hans). Qed. -Global Instance grutt_cong_euttge {R1 R2 : Type} {E1 E2 : Type -> Type} {REv : forall A B, E1 A -> E2 B -> Prop} - {RAns : forall A B, E1 A -> A -> E2 B -> B -> Prop} {RR1 RR2} {RS : R1 -> R2 -> Prop} r rg - (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) - (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : - Proper (euttge RR1 ==> euttge RR2 ==> flip impl) - (gpaco2 (rutt_ REv RAns RS) (euttge_trans_clo RS) r rg). -Proof. - repeat intro. gclo. econstructor; eauto. -Qed. - -(* Provide these explicitly since typeclasses eauto cannot infer them *) - -#[global] Instance grutt_cong_eqit_eq {R1 R2 : Type} {E1 E2 : Type -> Type} {REv : forall A B, E1 A -> E2 B -> Prop} - {RAns : forall A B, E1 A -> A -> E2 B -> B -> Prop} {RS : R1 -> R2 -> Prop} r rg: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (gpaco2 (rutt_ REv RAns RS) (euttge_trans_clo RS) r rg). -Proof. - apply grutt_cong_eqit; now intros * ->. -Qed. - -#[global] Instance grutt_cong_euttge_eq {R1 R2 : Type} {E1 E2 : Type -> Type} {REv : forall A B, E1 A -> E2 B -> Prop} - {RAns : forall A B, E1 A -> A -> E2 B -> B -> Prop} {RS : R1 -> R2 -> Prop} r rg: - Proper (euttge eq ==> euttge eq ==> flip impl) - (gpaco2 (rutt_ REv RAns RS) (euttge_trans_clo RS) r rg). -Proof. - apply grutt_cong_euttge; now intros * ->. -Qed. +End ConstructionInversion. \ No newline at end of file From 247e515a4f91aa96a940848ee8a4ddb778cbbce9 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 17:34:03 -0400 Subject: [PATCH 105/189] Done with Rutt. --- theories/Eq/Rutt.v | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index e08db247..6d328403 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -141,11 +141,11 @@ Ltac runfold_coind := Tactic Notation "rcoinduction" simple_intropattern(R) simple_intropattern(H) := runfold_coind; coinduction R H; cbn [rutt_mon body rutt_]. -#[local] Ltac rcbn := cbn[rutt_mon body rutt_]. -#[local] Ltac rcbn_in H := cbn[rutt_mon body rutt_] in H. +#[local] Ltac rcbn := cbn[rutt_mon body]; try unfold rutt_. +#[local] Ltac rcbn_in H := cbn[rutt_mon body]; try unfold rutt_ in H. #[local] Tactic Notation "rcbn" "in" ident(h) := rcbn_in h. -#[local] Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body rutt] in *. +#[local] Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body]; try unfold rutt_ in *. #[global] Hint Constructors ruttF : itree. @@ -174,8 +174,8 @@ Qed. Lemma rutt_inv_Ret_l r1 t2: rutt REv RAns RR (Ret r1) t2 -> exists r2, t2 ≳ Ret r2 /\ RR r1 r2. Proof. - intros Hrutt. rstep in Hrutt. rcbn in Hrutt. - setoid_rewrite (itree_eta t2). remember (RetF r1) as ot1; revert Heqot1. + intros Hrutt. rstep in Hrutt. rcbn in Hrutt. + setoid_rewrite (itree_eta t2). remember (observe (Ret r1)) as ot1; revert Heqot1. induction Hrutt; intros; try discriminate. - inversion Heqot1; subst. exists r2. split; [reflexivity|auto]. - destruct (IHHrutt Heqot1) as [r2 [H1 H2]]. exists r2; split; auto. @@ -185,8 +185,8 @@ Qed. Lemma rutt_inv_Ret_r t1 r2: rutt REv RAns RR t1 (Ret r2) -> exists r1, t1 ≳ Ret r1 /\ RR r1 r2. Proof. - intros Hrutt. rstep in Hrutt. cbn in Hrutt. - setoid_rewrite (itree_eta t1). remember (RetF r2) as ot2; revert Heqot2. + intros Hrutt. rstep in Hrutt. rcbn in Hrutt. + setoid_rewrite (itree_eta t1). remember (observe (Ret r2)) as ot2; revert Heqot2. induction Hrutt; intros; try discriminate. - inversion Heqot2; subst. exists r1. split; [reflexivity|auto]. - destruct (IHHrutt Heqot2) as [r1 [H1 H2]]. exists r1; split; auto. @@ -265,8 +265,8 @@ Lemma rutt_inv_Vis_l {U1} (e1: E1 U1) k1 t2: REv _ _ e1 e2 /\ (forall v1 v2, RAns _ _ e1 v1 e2 v2 -> rutt REv RAns RR (k1 v1) (k2 v2)). Proof. - intros Hrutt. rstep in Hrutt. cbn in Hrutt. - setoid_rewrite (itree_eta t2). remember (VisF e1 k1) as ot1; revert Heqot1. + intros Hrutt. rstep in Hrutt. rcbn in Hrutt. + setoid_rewrite (itree_eta t2). remember (observe (Vis e1 k1)) as ot1; revert Heqot1. induction Hrutt; intros; try discriminate; subst. - inversion Heqot1; subst A. inversion_sigma; rewrite <- eq_rect_eq in *; subst; rename B into U2. @@ -283,8 +283,8 @@ Lemma rutt_inv_Vis_r {U2} t1 (e2: E2 U2) k2: REv U1 U2 e1 e2 /\ (forall v1 v2, RAns _ _ e1 v1 e2 v2 -> rutt REv RAns RR (k1 v1) (k2 v2)). Proof. - intros Hrutt. rstep in Hrutt. cbn in Hrutt. - setoid_rewrite (itree_eta t1). remember (VisF e2 k2) as ot2; revert Heqot2. + intros Hrutt. rstep in Hrutt. rcbn in Hrutt. + setoid_rewrite (itree_eta t1). remember (observe (Vis e2 k2)) as ot2; revert Heqot2. induction Hrutt; intros; try discriminate; subst. - inversion Heqot2; subst B. inversion_sigma; rewrite <- eq_rect_eq in *; subst; rename A into U1. From 7242662569400785c8a8099aaebfec576dc37b0c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 18:00:40 -0400 Subject: [PATCH 106/189] Reintroduce eret, etau, evis tactics. --- theories/Eq/Eqit.v | 3 +++ 1 file changed, 3 insertions(+) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 72b7e795..634d3b2d 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1977,6 +1977,9 @@ Qed. End eqit_h. +Ltac eret := constructor; eauto with itree. +Ltac etau := taus; eauto with itree. +Ltac evis := constructor; intros; eauto with itree. Ltac ebind := eapply eqit_clo_bind_chain; eauto with itree. From d23471c726f81dd4d8001da488c27b141164487e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 18:00:55 -0400 Subject: [PATCH 107/189] StateFacts.v --- .Makefile.d | 8 +-- theories/Events/StateFacts.v | 128 +++++++++++++++-------------------- 2 files changed, 58 insertions(+), 78 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 4a8f845a..808660ee 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -62,8 +62,8 @@ theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus. theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Utils.vo theories/Eq.vo theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Utils.vos theories/Eq.vos theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -106,8 +106,8 @@ theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Ev theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index e7cffac1..8591a6c8 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -3,7 +3,6 @@ (* begin hide *) From Stdlib Require Import Program.Tactics Morphisms. -From Paco Require Import paco. From ITree Require Import Basics.Basics @@ -15,7 +14,6 @@ From ITree Require Import Core.KTree Core.KTreeFacts Eq.Eqit - Eq.Paco2 Indexed.Sum Interp.Interp Interp.InterpFacts @@ -60,15 +58,14 @@ Instance eq_itree_interp_state {E F S R} (h : E ~> Monads.stateT S (itree F)) : (@interp_state _ _ _ _ _ _ h R). Proof. revert_until R. - ginit. pcofix CIH. intros h x y H0 x2 _ []. + bcoinduction. intros h x y H0 x2 _ []. rewrite !unfold_interp_state. - punfold H0; repeat red in H0. - destruct H0; subst; pclearbot; try discriminate; cbn. - - gstep; constructor; auto. - - gstep; constructor; auto with paco. - - guclo eqit_clo_bind. econstructor. - + reflexivity. - + intros [] _ []. gstep; constructor; auto with paco itree. + step in H0. + destruct H0; subst; try discriminate; cbn. + - reflexivity. + - taus; now apply cih. + - to_mon. ebind; intros; subst. + + taus; auto with itree. Qed. Lemma interp_state_ret {E F : Type -> Type} {R S : Type} @@ -125,23 +122,18 @@ Lemma interp_state_bind {E F : Type -> Type} {A B S : Type} (interp_state f t s >>= fun st => interp_state f (k (snd st)) (fst st)). Proof. revert t k s. - ginit. pcofix CIH. + bcoinduction. intros t k s. rewrite unfold_bind. rewrite (unfold_interp_state f t). destruct (observe t). - - cbn. rewrite !bind_ret_l. cbn. + - bcbn. rewrite !bind_ret_l. apply reflexivity. - - cbn. rewrite !bind_tau, interp_state_tau. - gstep. econstructor. gbase. apply CIH. - - cbn. rewrite interp_state_vis, bind_bind. - guclo eqit_clo_bind. econstructor. - + reflexivity. - + intros u2 ? []. + - bcbn. taus. apply cih. + - bcbn. rewrite interp_state_vis, bind_bind. + ebind; intros; subst. rewrite bind_tau. - gstep; constructor. - ITree.fold_subst. - auto with paco. + taus. now apply cih. Qed. #[global] @@ -150,15 +142,13 @@ Instance eutt_interp_state {E F: Type -> Type} {S : Type} Proper (eutt RR ==> eq ==> eutt (prod_rel eq RR)) (@interp_state E (itree F) S _ _ _ h R). Proof. repeat intro. subst. revert_until RR. - einit. ecofix CIH. intros. + bcoinduction. intros. - rewrite !unfold_interp_state. punfold H0. red in H0. - induction H0; intros; subst; simpl; pclearbot. - - eret. - - etau. - - ebind. econstructor; [reflexivity|]. - intros; subst. - etau. ebase. + rewrite !unfold_interp_state. step in H. + induction H; intros; subst; bcbn. + - eret. + - etau. + - ebind; intros; subst. taus. apply cih. apply REL. - rewrite tau_euttge, unfold_interp_state; eauto. - rewrite tau_euttge, unfold_interp_state; eauto. Qed. @@ -169,15 +159,13 @@ Instance eutt_interp_state_eq {E F: Type -> Type} {S : Type} Proper (eutt eq ==> eq ==> eutt eq) (@interp_state E (itree F) S _ _ _ h R). Proof. repeat intro. subst. revert_until R. - einit. ecofix CIH. intros. + bcoinduction. intros. - rewrite !unfold_interp_state. punfold H0. red in H0. - induction H0; intros; subst; simpl; pclearbot. - - eret. - - etau. - - ebind. econstructor; [reflexivity|]. - intros; subst. - etau. ebase. + rewrite !unfold_interp_state. step in H. + induction H; intros; subst; bcbn; eauto with itree. + - eret. + - ebind. intros; subst. + etau. - rewrite tau_euttge, unfold_interp_state; eauto. - rewrite tau_euttge, unfold_interp_state; eauto. Qed. @@ -199,14 +187,14 @@ Lemma eutt_interp_state_aloop {E F S I I' A A'} (interp_state h (ITree.iter t2 i') s2)). Proof. intro Ht. - einit. ecofix CIH. intros. + bcoinduction. intros. rewrite 2 unfold_iter. rewrite 2 interp_state_bind. - ebind; econstructor. - - eapply Ht; auto. - - intros [s1' i1'] [s2' i2'] [? []]; cbn. - + rewrite 2 interp_state_tau. auto with paco. - + rewrite 2 interp_state_ret. auto with paco. + ebind; intros; subst. + - do 2 step. eapply Ht; auto. + - inv H1. inv snd_rel. + + rewrite 2 interp_state_tau. etau. + + rewrite 2 interp_state_ret. eret. Qed. Lemma eutt_interp_state_iter {E F S A A' B B'} @@ -234,17 +222,15 @@ Lemma eutt_eq_interp_state_iter {E F S} (f: E ~> stateT S (itree F)) {I A} Basics.iter (fun i => interp_state f (t i)) i s. Proof. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in *; cbn. - ginit. gcofix CIH; intros i s. - rewrite 2 unfold_iter; cbn. + bcoinduction; intros i s. + rewrite 2 unfold_iter; bcbn. rewrite !bind_bind. setoid_rewrite bind_ret_l. rewrite interp_state_bind. - guclo eqit_clo_bind; econstructor; eauto. reflexivity. - intros [s' []] _ []; cbn. - - rewrite interp_state_tau. - gstep; constructor. - auto with paco. - - rewrite interp_state_ret; apply reflexivity. + ebind. + intros [s' []] _ []; bcbn. + - etau. + - eret. Qed. Lemma eutt_interp_state_loop {E F S A B C} (RS : S -> S -> Prop) @@ -270,11 +256,9 @@ Proof. cbn in H2; destruct H2 as [H21 H22]. destruct (snd u1); rewrite <- H22. - rewrite bind_ret_l, 2 interp_state_ret. - pstep. - constructor. - split; cbn; auto using H21. - - rewrite bind_ret_l, 2 interp_state_ret. pstep. constructor. - split; cbn; auto using H21. + step. + eret. + - rewrite bind_ret_l, 2 interp_state_ret. step. eret. Qed. (* SAZ: These are probably too specialized. *) @@ -290,18 +274,16 @@ Lemma interp_state_iter {E F } S (f : E ~> stateT S (itree F)) {I A} (Basics.iter t' i). Proof. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in *; cbn. - ginit. pcofix CIH; intros i s. - rewrite 2 unfold_iter; cbn. + bcoinduction; intros i s. + rewrite 2 unfold_iter; bcbn. rewrite !bind_bind. setoid_rewrite bind_ret_l. rewrite interp_state_bind. - guclo eqit_clo_bind; econstructor; eauto. - - apply EQ_t. - - intros [s' []] _ []; cbn. - + rewrite interp_state_tau. - gstep; constructor. - auto with paco. - + rewrite interp_state_ret; apply reflexivity. + ebind. + - do 2 step. apply EQ_t. + - intros [s' []] _ []; bcbn. + + etau. + + eret. Qed. Lemma interp_state_iter' {E F } S (f : E ~> stateT S (itree F)) {I A} @@ -321,16 +303,14 @@ Lemma interp_state_iter'_eutt {E F S} (f: E ~> stateT S (itree F)) {I A} forall i s, interp_state f (ITree.iter t i) s ≈ Basics.iter t' i s. Proof. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in *; cbn. - ginit. gcofix CIH; intros i s. - rewrite 2 unfold_iter; cbn. + bcoinduction; intros i s. + rewrite 2 unfold_iter; bcbn. rewrite !bind_bind. setoid_rewrite bind_ret_l. rewrite interp_state_bind. - guclo eqit_clo_bind; econstructor; eauto. - - apply Heq. - - intros [s' []] _ []; cbn. - + rewrite interp_state_tau. - gstep; constructor. - auto with paco. - + rewrite interp_state_ret; apply reflexivity. + ebind. + - do 2 step. apply Heq. + - intros [s' []] _ []; bcbn. + + etau. + + eret. Qed. From 8818a31f57375d5c3bbae837e32814dd06ad66e6 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 30 Mar 2026 18:46:46 -0400 Subject: [PATCH 108/189] Working on eutt_conj detail for has_post --- theories/Eq/Eqit.v | 11 ++++++++--- theories/Props/HasPost.v | 9 ++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 634d3b2d..db6cdda5 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2728,18 +2728,23 @@ Qed. (* [eutt] can be thought as the elementary block of a relational program logic. The following few lemmas give elementary logical rules to compose proofs. *) + (* for meeting: need a relation combinator that takes + fun x y => P x y and + fun x' y' => Q x y and makes + fun x y => P x y /\ Q x y + + *) Lemma eutt_conj {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), eutt RS t s -> eutt RS' t s -> - eutt (cup RS RS') t s. + eutt (cap RS RS') t s. Proof. - repeat red. icoinduction c cih. intros * EQ EQ'. step in EQ; step in EQ'. genobs t ot; genobs s os. hinduction EQ before cih; subst; intros; simpl. - - now inv EQ'; constructor; constructor. + - inv EQ'. eret. now constructor. - taus. eapply cih; eauto. apply eqit_inv_Tau. now step. - constructor. intro v. specialize (REL v). eapply cih; eauto. diff --git a/theories/Props/HasPost.v b/theories/Props/HasPost.v index c75a50c1..2c849a2a 100644 --- a/theories/Props/HasPost.v +++ b/theories/Props/HasPost.v @@ -1,5 +1,4 @@ (* begin hide *) -From Paco Require Import paco. From Stdlib Require Import Morphisms. From ITree Require Import Basics.Utils @@ -48,8 +47,12 @@ Definition has_post_strong {E X} (t : itree E X) (Q : X -> Prop) : Prop := Lemma has_post_post_strong : forall {E X} (t : itree E X) Q, has_post t Q <-> has_post_strong t Q. Proof. - intros; split; intros HP. - - apply eutt_conj; [reflexivity | auto]. + intros; split; intros HP; red in HP; red. + assert (t ≈ t) by auto. + - specialize (eutt_conj _ _ HP H) as Hconj. + Search cap. apply cap_spec in Hconj. + fail. + - red. eapply eutt_conj; [reflexivity | auto]. - eapply eqit_mon; eauto. intros * H; apply H. Qed. From b7accc7027da12bbb311522c0302d88588e4917f Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 31 Mar 2026 10:55:18 -0400 Subject: [PATCH 109/189] build, switching for demo --- .Makefile.d | 376 ++++++++++++++++++++++----------------------- Makefile | 10 +- Makefile.conf | 8 +- theories/Eq/Eqit.v | 9 +- 4 files changed, 204 insertions(+), 199 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 808660ee..204bf11b 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,188 +1,188 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile b/Makefile index c5f54563..2784ed89 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.1.1 +## GNUMakefile for Rocq 9.0.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code they may need +# add any other Makefile code he may need -include Makefile.local # Parameters ################################################################## @@ -77,6 +77,7 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" +ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -86,6 +87,9 @@ else STDTIME?=command time endif endif +else +STDTIME?=command time -f $(TIMEFMT) +endif COQBIN?= ifneq (,$(COQBIN)) @@ -274,7 +278,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.1.1 +COQMAKEFILE_VERSION:=9.0.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index f5a69775..4db136fe 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index db6cdda5..83d9e21d 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1912,6 +1912,9 @@ Qed. (* This might be good when doing other proofs, as it shows up often. *) + +(* RTODO: Rename these *) +(* this one can be eqit_bind_chain *) Lemma eqit_clo_bind_chain b1 b2 (c : Chain (eqit_mon b1 b2)) {U1 U2} (t1 : itree E U1) (t2 : itree E U2) @@ -1955,7 +1958,6 @@ Proof. Qed. - Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): @@ -2730,9 +2732,8 @@ Qed. *) (* for meeting: need a relation combinator that takes fun x y => P x y and - fun x' y' => Q x y and makes - fun x y => P x y /\ Q x y - + fun x y => Q x y and makes + fun x y => P x y /\ Q x y *) Lemma eutt_conj {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), From c90131ffd3f0ac53840b9343a836185e1cda5def Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 31 Mar 2026 16:17:21 -0400 Subject: [PATCH 110/189] Refactor subrelationH, done w HasPost --- .Makefile.d | 376 +++++++++++------------ Makefile | 10 +- Makefile.conf | 8 +- theories/Basics/CategoryRelations.v | 10 +- theories/Basics/HeterogeneousRelations.v | 48 ++- theories/Eq/Eqit.v | 11 +- theories/Props/HasPost.v | 67 ++-- 7 files changed, 275 insertions(+), 255 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 204bf11b..808660ee 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,188 +1,188 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile b/Makefile index 2784ed89..c5f54563 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.0.1 +## GNUMakefile for Rocq 9.1.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code he may need +# add any other Makefile code they may need -include Makefile.local # Parameters ################################################################## @@ -77,7 +77,6 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" -ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -87,9 +86,6 @@ else STDTIME?=command time endif endif -else -STDTIME?=command time -f $(TIMEFMT) -endif COQBIN?= ifneq (,$(COQBIN)) @@ -278,7 +274,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.0.1 +COQMAKEFILE_VERSION:=9.1.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index 4db136fe..f5a69775 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true diff --git a/theories/Basics/CategoryRelations.v b/theories/Basics/CategoryRelations.v index d0066a9d..7cb20ee2 100644 --- a/theories/Basics/CategoryRelations.v +++ b/theories/Basics/CategoryRelations.v @@ -158,7 +158,7 @@ Section Facts. Global Instance CatIdL_rel: CatIdL relationH. Proof. - constructor; unfold subrelationH, cat, id_, Cat_rel, Id_rel, rel_compose; intros. + constructor; unfold subrelationH, SubRelH_binary, cat, id_, Cat_rel, Id_rel, rel_compose; intros. - edestruct H as (B' & EQ & R). rewrite <- EQ in R. assumption. - exists x. split. reflexivity. assumption. @@ -166,7 +166,7 @@ Section Facts. Global Instance CatIdR_rel: CatIdR relationH. Proof. - constructor; unfold subrelationH, cat, id_, Cat_rel, Id_rel, rel_compose; intros. + constructor; unfold subrelationH, SubRelH_binary, cat, id_, Cat_rel, Id_rel, rel_compose; intros. - edestruct H as (B' & R & EQ). rewrite EQ in R. assumption. - exists y. split. assumption. reflexivity. @@ -174,7 +174,7 @@ Section Facts. Global Instance CatAssoc_rel: CatAssoc relationH. Proof. - constructor; unfold subrelationH, cat, id_, Cat_rel, Id_rel, rel_compose; + constructor; unfold subrelationH, SubRelH_binary, cat, id_, Cat_rel, Id_rel, rel_compose; intros A D H. - edestruct H as (C & (B & Rf & Rg) & Rh); clear H. exists B. split; [assumption | ]. @@ -189,7 +189,7 @@ Section Facts. (eq2 ==> eq2 ==> eq2) cat. Proof. intros a b c. - constructor; unfold subrelationH, cat, id_, Cat_rel, Id_rel, rel_compose; + constructor; unfold subrelationH, SubRelH_binary, cat, id_, Cat_rel, Id_rel, rel_compose; intros A C He. - edestruct He as (B & Hx & Hx0). unfold eq2, Eq2_rel, eq_rel, subrelationH in *. @@ -331,7 +331,7 @@ Section Facts. - cbv; intros ? ? ?; subst; auto. destruct x, y. cbv; intros. destruct H; cbn in *; subst; auto. - - red. intros. destruct x, y. inversion H. subst. repeat constructor. + - cbv. intros [? ?] [? ?] H. inversion H. subst. repeat constructor. Qed. Global Instance BimapCat_prod_rel : BimapCat relationH prod. diff --git a/theories/Basics/HeterogeneousRelations.v b/theories/Basics/HeterogeneousRelations.v index b7e12ce7..e535b52d 100644 --- a/theories/Basics/HeterogeneousRelations.v +++ b/theories/Basics/HeterogeneousRelations.v @@ -24,9 +24,13 @@ Section RelationH_Operations. (** ** Relations for morphisms/parametricity *) - (* Heterogeneous notion of [subrelation] *) - Definition subrelationH {A B} (R S : relationH A B) : Prop := - forall (x : A) (y : B), R x y -> S x y. + Class SubRelH (T : Type) := subrelationH : T -> T -> Prop. + + #[global] Instance SubRelH_binary (A B : Type) : SubRelH (A -> B -> Prop) := + fun R S => forall (x : A) (y : B), R x y -> S x y. + + #[global] Instance SubRelH_unary (A : Type) : SubRelH (A -> Prop) := + fun P Q => forall x, P x -> Q x. Definition eq_rel {A B} (R S : relationH A B) := subrelationH R S /\ subrelationH S R. @@ -38,6 +42,22 @@ Section RelationH_Operations. Definition fun_rel {A B: Type} (f: A -> B): relationH A B := fun x y => y = f x. + Class Conj (T : Type) := conj_rel : T -> T -> T. + + #[global] Instance Conj_binary (A B : Type) : Conj (A -> B -> Prop) := + fun RR1 RR2 x y => RR1 x y /\ RR2 x y. + + #[global] Instance Conj_unary (A : Type) : Conj (A -> Prop) := + fun P1 P2 x => P1 x /\ P2 x. + + Class Disj (T : Type) := disj_rel : T -> T -> T. + + #[global] Instance Disj_binary (A B : Type) : Disj (A -> B -> Prop) := + fun RR1 RR2 x y => RR1 x y \/ RR2 x y. + + #[global] Instance Disj_unary (A : Type) : Disj (A -> Prop) := + fun P1 P2 x => P1 x \/ P2 x. + (** ** Relations for morphisms/parametricity *) (** Logical relation for the [sum] type. *) @@ -65,8 +85,10 @@ Arguments fst_rel {A1 A2 B1 B2 RA RB}. Arguments snd_rel {A1 A2 B1 B2 RA RB}. Arguments rel_compose [A B C] S R. -Arguments subrelationH [A B] R S. Arguments transpose [A B] R. +Arguments subrelationH {T _}. +Arguments conj_rel {T _}. +Arguments disj_rel {T _}. Arguments sum_rel [A1 A2 B1 B2] RA RB. Arguments prod_rel [A1 A2 B1 B2] RA RB. @@ -79,6 +101,8 @@ Module RelNotations. Infix "∘" := rel_compose (at level 40, left associativity) : relationH_scope. Infix "⊕" := sum_rel (at level 39, left associativity) : relationH_scope. Infix "⊗" := prod_rel (at level 38, left associativity) : relationH_scope. + Infix "∩" := conj_rel (at level 50, no associativity) : relationH_scope. + Infix "∪" := disj_rel (at level 50, no associativity) : relationH_scope. Infix "⊑" := subrelationH (at level 70, no associativity) : relationH_scope. Notation "† R" := (transpose R) (at level 5, right associativity) : relationH_scope. @@ -246,19 +270,19 @@ Section RelationEqRel. #[global] Instance eq_rel_Reflexive {A B} : Reflexive (@eq_rel A B). Proof. - red. unfold eq_rel, subrelationH. tauto. + red. unfold eq_rel, subrelationH, SubRelH_binary. tauto. Qed. #[global] Instance eq_rel_Symmetric {A B} : Symmetric (@eq_rel A B). Proof. - red. unfold eq_rel, subrelationH. tauto. + red. unfold eq_rel, subrelationH, SubRelH_binary. tauto. Qed. #[global] Instance eq_rel_Transitive {A B} : Transitive (@eq_rel A B). Proof. - red. unfold eq_rel, subrelationH. intros. + red. unfold eq_rel, subrelationH, SubRelH_binary. intros. destruct H, H0. split; eauto. Qed. @@ -411,8 +435,8 @@ Section TransposeFacts. Proof. intros A B R. split. - - unfold subrelationH. unfold transpose. tauto. - - unfold subrelationH, transpose. tauto. + - unfold subrelationH, SubRelH_binary. unfold transpose. tauto. + - unfold subrelationH, SubRelH_binary, transpose. tauto. Qed. Lemma transpose_inclusion : forall {A B} (R1 : relationH A B) (R2 : relationH A B), @@ -421,9 +445,9 @@ Section TransposeFacts. intros A B R1 R2. split. - intros HS. - unfold subrelationH, transpose in *. eauto. + unfold subrelationH, SubRelH_binary, transpose in *. eauto. - intros HS. - unfold subrelationH, transpose in *. eauto. + unfold subrelationH, SubRelH_binary, transpose in *. eauto. Qed. #[global] @@ -532,7 +556,7 @@ Section ProdRelFacts. Lemma prod_rel_eq : forall (A B:Type), (@eq A) ⊗ (@eq B) ≡ @eq (A * B). Proof. intros. - unfold eq_rel; split; unfold subrelationH; intros. + unfold eq_rel; split; unfold subrelationH, SubRelH_binary; intros. - destruct x, y. repeat red in H. destruct H. cbn in *; subst; reflexivity. - destruct x; destruct y. cbn in H. repeat red. inversion H. split; reflexivity. Qed. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 83d9e21d..06b58980 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -503,10 +503,10 @@ Qed. (@eqitF E R1 R2). Proof. repeat red. - intros. subst. split; unfold subrelationH; intros. - all: - induction H0; auto with itree; econstructor; intros; - try (now apply H); now apply H2. + intros. subst. split; unfold subrelationH, SubRelH_binary; intros. + all: + induction H0; auto with itree; econstructor; intros; + try (now apply H); now apply H2. Qed. #[global] Instance eqitF_Proper_R2 {E : Type -> Type} {R1 R2:Type} : @@ -2735,11 +2735,12 @@ Qed. fun x y => Q x y and makes fun x y => P x y /\ Q x y *) + Open Scope relationH_scope. Lemma eutt_conj {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), eutt RS t s -> eutt RS' t s -> - eutt (cap RS RS') t s. + eutt (conj_rel RS RS') t s. Proof. icoinduction c cih. intros * EQ EQ'. step in EQ; step in EQ'. diff --git a/theories/Props/HasPost.v b/theories/Props/HasPost.v index 2c849a2a..c6e32ffa 100644 --- a/theories/Props/HasPost.v +++ b/theories/Props/HasPost.v @@ -8,6 +8,8 @@ From ITree Require Import Interp.TranslateFacts. Set Implicit Arguments. Set Strict Implicit. +Import RelNotations. +#[local] Open Scope relationH_scope. (* end hide *) (** * Unary interpretation for [eutt]: a traditional program logic @@ -49,12 +51,9 @@ Lemma has_post_post_strong : forall {E X} (t : itree E X) Q, Proof. intros; split; intros HP; red in HP; red. assert (t ≈ t) by auto. - - specialize (eutt_conj _ _ HP H) as Hconj. - Search cap. apply cap_spec in Hconj. - fail. - - red. eapply eutt_conj; [reflexivity | auto]. - - eapply eqit_mon; eauto. - intros * H; apply H. + - eapply eutt_conj; [reflexivity | auto]. + - eapply (eqit_mono (fun x y : X => x = y /\ Q x)); eauto. + now intros!. Qed. Module HasPostNotations. @@ -68,9 +67,9 @@ Import HasPostNotations. Proof. repeat red; unfold has_post; intros * EUTT * EQ *; split; intros HP. - rewrite <- EUTT; eapply eutt_equiv; eauto. - split; red; intros; apply EQ; auto. + split; intros ? ? H; apply EQ; auto. - rewrite EUTT; eapply eutt_equiv; eauto. - split; red; intros; apply EQ; auto. + split; intros ? ? H; apply EQ; auto. Qed. #[global] Instance has_post_eutt {E X} : @@ -78,9 +77,9 @@ Qed. Proof. repeat red; unfold has_post; intros * EUTT * EQ *; split; intros HP. - rewrite <- EUTT; eapply eutt_equiv; eauto. - split; red; intros; apply EQ; auto. + split; intros ? ? H; apply EQ; auto. - rewrite EUTT; eapply eutt_equiv; eauto. - split; red; intros; apply EQ; auto. + split; intros ? ? H; apply EQ; auto. Qed. (** [has_post] logical primitives. @@ -92,7 +91,7 @@ Qed. Lemma has_post_conj : forall {E X} (t : itree E X) P Q, t ⤳ P -> t ⤳ Q -> - t ⤳ (P /1\ Q). + t ⤳ (P ∩ Q). Proof. intros * HP HQ. pose proof eutt_conj _ _ HP HQ. @@ -102,41 +101,40 @@ Qed. (* Left disjunction introduction *) Lemma has_post_disj_l : forall {E X} (t : itree E X) P Q, t ⤳ P -> - t ⤳ (P \1/ Q). + t ⤳ (P ∪ Q). Proof. - intros * HP. - epose proof eutt_disj_l _ _ HP as H. - apply H. + unfold has_post, disj_rel, Disj_unary; intros * HP. + eapply eqit_mono. 4: exact HP. 1,2: auto. + intros; left; auto. Qed. (* Right disjunction introduction *) Lemma has_post_disj_r : forall {E X} (t : itree E X) P Q, t ⤳ Q -> - t ⤳ (P \1/ Q). + t ⤳ (P ∪ Q). Proof. - intros * HQ. - epose proof eutt_disj_r _ _ HQ as H. - apply H. + unfold has_post, disj_rel, Disj_unary; intros * HQ. + eapply eqit_mono. 4: exact HQ. 1,2: auto. + intros; right; auto. Qed. (* Weakening *) Lemma has_post_weaken : forall {E X} (t : itree E X) P Q, t ⤳ P -> - P <1= Q -> + P ⊑ Q -> t ⤳ Q. Proof. - intros * HP INCL. - eapply eqit_mon; eauto. - intros; apply INCL; auto. + unfold has_post, subrelationH, SubRelH_unary; intros * HP INCL. + eapply eqit_mono. 4: exact HP. 1,2: auto. + cbn. intros ? ? H; apply INCL; exact H. Qed. (* Trivial postcondition *) Lemma has_post_True : forall {E X} (t : itree E X), t ⤳ fun _ => True. Proof. - intros *. - eapply eqit_mon; eauto. - reflexivity. + intros *. red. + eapply (eqit_mono eq _ true true); auto. Qed. (** Structural proof rules *) @@ -174,7 +172,7 @@ Proof. intros i ? [<- ?]. specialize (IND i); apply has_post_post_strong in IND; auto. unfold has_post_strong in IND. - eapply eqit_mon; try apply IND; auto. + eapply eqit_mono; try apply IND; auto. intros [] ? [<- ?]; eauto. Qed. @@ -207,8 +205,8 @@ Proof. clear KEQ. apply has_post_post_strong in POST1. apply has_post_post_strong in POST2. - pose proof eqit_trans _ _ _ _ _ _ _ POST1 EQ as EQ1. - pose proof eqit_trans _ _ _ _ _ _ _ EQ1 POST2 as EQ2. + pose proof eqit_trans POST1 EQ as EQ1. + pose proof eqit_trans EQ1 POST2 as EQ2. clear -EQ2. eapply eutt_equiv; eauto. split. @@ -234,19 +232,20 @@ Qed. This assumes UIP. *) + (* tour: this proof *) Lemma eutt_eq_itree {E X} (R : X -> X -> Prop) : forall (t : itree E X), eutt R t t -> eq_itree R t t. Proof. enough (forall (t u : itree E X), eutt R t u -> eq_itree eq t u -> eq_itree R t u). { intros; apply H; [ auto | apply Reflexive_eqit_eq ]. } - pcofix CIH. - intros t u H EQ. pfold. red. + bcoinduction. + intros t u H EQ. rewrite (itree_eta t), (itree_eta u) in H. - punfold EQ. destruct EQ; try discriminate; constructor. + step in EQ. cbn. destruct EQ; try discriminate; constructor. - rewrite <- eutt_Ret in H. auto. - - pclearbot. right; apply CIH; [ | apply REL ]. + - apply cih; [ | apply REL ]. revert H; apply eqit_Tau. - - pclearbot. right; apply CIH; [ | apply REL ]. + - intro. apply cih; [ | apply REL ]. eapply eqit_inv_Vis with (1 := H). Qed. From cf68c57291adf2563163532948f2ae656d1fcd50 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 31 Mar 2026 17:13:22 -0400 Subject: [PATCH 111/189] In Leaf.v, now considering eqit_Leaf_bind_clo. Also pivoting to rewrite strategies. --- theories/Props/Leaf.v | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 47924978..bce24ec5 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -112,20 +112,20 @@ Lemma Leaf_eutt_l {E A B R}: Proof. intros * EQ FIN; revert u EQ. - induction FIN; intros u2 EQ. - - punfold EQ. - red in EQ; rewrite H in EQ; clear H t. + induction FIN; intros u2 EQ. + - step in EQ. + rewrite H in EQ; clear H t. remember (RetF a); genobs u2 ou. - hinduction EQ before R; intros; try now discriminate. + hinduction EQ before R; intros; try easy. + inv Heqi; eauto with itree. + edestruct IHEQ as (b & IN & HR); eauto with itree. - - punfold EQ; red in EQ; rewrite H in EQ; clear H t. + - step in EQ; rewrite H in EQ; clear H t. remember (TauF u); genobs u2 ou2. - hinduction EQ before R; intros; try discriminate; pclearbot; inv Heqi. + hinduction EQ before R; intros; try easy; inv Heqi. + edestruct IHFIN as (? & ? & ?); [ .. | eexists ]; eauto with itree. - + eauto with itree. + + eapply IHFIN. now step. + edestruct IHEQ as (? & ? & ?); [ .. | eexists ]; eauto with itree. - - punfold EQ; red in EQ; rewrite H in EQ; clear H t. + - step in EQ; rewrite H in EQ; clear H t. remember (VisF e k); genobs u2 ou2. hinduction EQ before R; intros; try discriminate; pclearbot. + revert x FIN IHFIN. @@ -179,14 +179,14 @@ Proof. revert t k Hequ. induction FIN; intros t' k' ->; rename t' into t. - unfold observe in H; cbn in H. - desobs t EQ; cbn in *; try congruence. + desobs t EQ_; cbn in *; try congruence. exists r; auto with itree. - unfold observe in H; cbn in H. - desobs t EQ; cbn in *; try congruence; [ eexists; eauto with itree | ]. + desobs t EQ_; cbn in *; try congruence; [ eexists; eauto with itree | ]. inversion H; clear H; symmetry in H1. edestruct IHFIN as (? & ? & ?); [ eauto | eexists; eauto with itree ]. - unfold observe in H; cbn in H. - desobs t EQ; cbn in *; try congruence; [ eexists; eauto with itree | ]. + desobs t EQ_; cbn in *; try congruence; [ eexists; eauto with itree | ]. revert x FIN IHFIN. refine (match H in _ = u return match u with VisF e0 k0 => _ | RetF _ | TauF _ => False end with eq_refl => _ end). intros. @@ -211,7 +211,7 @@ Section LeafBind. | pbc_intro_h U1 U2 (RU : U1 -> U2 -> Prop) (t1 : itree E U1) (t2 : itree E U2) (k1 : U1 -> itree E R) (k2 : U2 -> itree E S) - (EQV: eqit RU b1 b2 t1 t2) + (EQV: eqit b1 b2 RU t1 t2) (REL: forall u1 u2, u1 ∈ t1 -> u2 ∈ t2 -> RU u1 u2 -> r (k1 u1) (k2 u2)) @@ -220,7 +220,7 @@ Section LeafBind. . Hint Constructors eqit_Leaf_bind_clo : itree. - Lemma eqit_Leaf_clo_bind (RS : R -> S -> Prop) b1 b2 vclo +Lemma eqit_Leaf_clo_bind (RS : R -> S -> Prop) b1 b2 vclo (MON: monotone2 vclo) (CMP: compose (eqitC RS b1 b2) vclo <3= compose vclo (eqitC RS b1 b2)) (ID: id <3= vclo): From 37c18285f5e5a83d86f63ebe1737763ce7ad8ae7 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 1 Apr 2026 16:29:18 -0400 Subject: [PATCH 112/189] Refactor names --- extra/Dijkstra/StateSpecT.v | 2 +- extra/Dijkstra/TracesIT.v | 6 +-- extra/IForest.v | 4 +- extra/ITrace/ITraceFacts.v | 2 +- hoare_example/ImpHoare.v | 12 +++--- secure_example/LabelledImp2AsmCorrectness.v | 42 +++++++++---------- .../LabelledImpInline2AsmCorrectness.v | 42 +++++++++---------- theories/Core/KTreeFacts.v | 12 +++--- theories/Eq/Eqit.v | 22 +++++----- theories/Events/FailFacts.v | 4 +- theories/Events/StateFacts.v | 2 +- theories/Interp/InterpFacts.v | 4 +- theories/Props/HasPost.v | 8 ++-- theories/Props/Leaf.v | 5 ++- tutorial/Asm.v | 2 +- tutorial/AsmOptimization.v | 12 +++--- tutorial/Imp2AsmCorrectness.v | 34 +++++++-------- 17 files changed, 108 insertions(+), 107 deletions(-) diff --git a/extra/Dijkstra/StateSpecT.v b/extra/Dijkstra/StateSpecT.v index e2e62f8c..40a1cf21 100644 --- a/extra/Dijkstra/StateSpecT.v +++ b/extra/Dijkstra/StateSpecT.v @@ -148,7 +148,7 @@ Section LoopInvarSpecific. MonadIter_stateT0, reassoc. unfold Basics.iter. unfold MonadIterDelay. eapply eutt_iter. intro. destruct a0 as [a' s']. simpl. - eapply eutt_clo_bind; try reflexivity. intros. + eapply eutt_bind_eutt; try reflexivity. intros. subst. destruct u2. simpl. destruct s1; reflexivity. + assert (Hpdiv : resp_eutt (p \1/ any_infinite)). { intros t1 t2 Heutt. split; intros; basic_solve. diff --git a/extra/Dijkstra/TracesIT.v b/extra/Dijkstra/TracesIT.v index 0423656a..20702657 100644 --- a/extra/Dijkstra/TracesIT.v +++ b/extra/Dijkstra/TracesIT.v @@ -156,7 +156,7 @@ Section TraceSpec. apply all_infinite_bind. auto. + right. split; auto. destruct p as [p Hp]. simpl in *. eapply Hp; try apply H1. - eapply eutt_clo_bind with (UU := fun a b => False); intuition. + eapply eutt_bind_eutt with (UU := fun a b => False); intuition. apply noret_bind_nop. auto. - eapply apply_monot; try apply H. clear H. simpl. intros. basic_solve. @@ -164,7 +164,7 @@ Section TraceSpec. + right. split; auto. right. split. * apply all_infinite_bind. auto. * destruct p as [p Hp]. simpl in *. eapply Hp; try apply H0. - eapply eutt_clo_bind with (UU := fun a b => False); intuition. + eapply eutt_bind_eutt with (UU := fun a b => False); intuition. apply euttNoRet_sym. apply noret_bind_nop. auto. Qed. Next Obligation. @@ -196,7 +196,7 @@ Section TraceSpec. enough (↑ log ++ ITree.bind b' g' ≈ ITree.bind (↑ log ++ b') (fun _ => ITree.spin)). { rewrite H. auto. } unfold append. rewrite bind_bind. - eapply eutt_clo_bind with (RR := eq) (UU := eq); try reflexivity. + eapply eutt_bind_eutt with (RR := eq) (UU := eq); try reflexivity. intros. apply euttNoRet_subrel. eapply euttNoRet_trans with (t2 := b'). + apply euttNoRet_sym. apply noret_bind_nop. eapply all_infinite_bind_append; eauto. + apply noret_bind_nop. eapply all_infinite_bind_append; eauto. diff --git a/extra/IForest.v b/extra/IForest.v index 53890da2..5faea018 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -466,7 +466,7 @@ Proof. rewrite eq2 in H. assert (x <- ta ;; k2 x ≈ ta). { rewrite <- (Eqit.bind_ret_r ta). - apply eutt_clo_bind with (UU := fun u1 u2 => u1 = u2 /\ Leaf u1 ta). + apply eutt_bind_eutt with (UU := fun u1 u2 => u1 = u2 /\ Leaf u1 ta). rewrite Eqit.bind_ret_r. apply eutt_Leaf. intros. destruct H1. subst. specialize (HK u2 H2). pclearbot. pinversion HK. subst. assumption. } @@ -792,7 +792,7 @@ Proof. subst. do 3 red. intros. destruct a0. rewrite Eqit.bind_bind. - eapply eutt_clo_bind. reflexivity. + eapply eutt_bind_eutt. reflexivity. intros. rewrite H. destruct u2; rewrite Eqit.bind_ret_l; cbn; reflexivity. } diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index 2dd3ccc3..7cbfcee0 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -107,7 +107,7 @@ Qed. Global Instance proper_append {E R} : Proper (@eutt (EvAns E) unit unit eq ==> @eutt (EvAns E) R R eq ==> eutt eq) (@append E R). Proof. intros log1 log2 Hlog b1 b2 Hb. unfold append. rewrite Hlog. - eapply eutt_clo_bind; eauto. reflexivity. + eapply eutt_bind_eutt; eauto. reflexivity. Qed. Lemma may_converge_append : forall (E : Type -> Type) (R : Type) diff --git a/hoare_example/ImpHoare.v b/hoare_example/ImpHoare.v index 5fd6a249..9641d115 100644 --- a/hoare_example/ImpHoare.v +++ b/hoare_example/ImpHoare.v @@ -223,7 +223,7 @@ Qed. Definition state_eq2 {E : Type -> Type} {A B S : Type} (k1 k2 : A -> stateT S (itree E) B ) : Prop := forall a, state_eq (k1 a) (k2 a). -Lemma eq_itree_clo_bind {E : Type -> Type} {R1 R2 : Type} : +Lemma eq_itree_bind {E : Type -> Type} {R1 R2 : Type} : forall (RR : R1 -> R2 -> Prop) (U1 U2 : Type) (UU : U1 -> U2 -> Prop) (t1 : itree E U1) (t2 : itree E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2), @@ -239,7 +239,7 @@ Global Instance bind_state_eq2 {E : Type -> Type} {A B S : Type} {m : stateT S ( Proper (@state_eq2 E A B S ==> @state_eq E S B) (bind m). Proof. repeat intro. unfold state_eq2, state_eq in H. cbn. - eapply eq_itree_clo_bind; try reflexivity. intros. subst. + eapply eq_itree_bind; try reflexivity. intros. subst. destruct u2 as [s' a]. simpl. rewrite H. reflexivity. Qed. @@ -268,7 +268,7 @@ Proof. fold (run_state_itree s while_denote1). fold (run_state_itree s while_denote2). unfold while_denote1. unfold while_denote2. rewrite H. reflexivity. - rewrite interp_bind. rewrite interp_state_bind_state. - clear s. intro s. eapply eq_itree_clo_bind; try reflexivity. + clear s. intro s. eapply eq_itree_bind; try reflexivity. intros. subst. destruct u2 as [s' b0 ]. simpl. destruct b0. + rewrite interp_bind. rewrite interp_state_bind. unfold interp_imp, interp_map. reflexivity. @@ -564,7 +564,7 @@ Qed. Lemma denote_imp_bind : forall (c1 c2 : com), state_eq (denote_imp (c1 ;;; c2)) (denote_imp c1 ;; denote_imp c2). Proof. intros. intro. cbn. unfold denote_imp. simpl. setoid_rewrite interp_imp_bind. - eapply eq_itree_clo_bind; try reflexivity. intros. subst. destruct u2. reflexivity. + eapply eq_itree_bind; try reflexivity. intros. subst. destruct u2. reflexivity. Qed. Definition state_eq_eutt {R S : Type} {E : Type -> Type} (m0 m1 : stateT S (itree E) R) :Prop := @@ -720,7 +720,7 @@ Global Instance state_eutt_bind_r {A B S : Type} {E : Type -> Type} Proof. repeat intro. rename x into k0. rename y into k1. rename H into Heutt. red. red. red in Heutt. red in Heutt. cbn. - eapply eutt_clo_bind; try reflexivity. intros. subst. destruct u2 as [s' a]. simpl. + eapply eutt_bind_eutt; try reflexivity. intros. subst. destruct u2 as [s' a]. simpl. rewrite Heutt. reflexivity. Qed. @@ -729,7 +729,7 @@ Global Instance state_eutt_bind_l' {A B S : Type} {E : Type -> Type} : Proof. unfold Proper, respectful, pointwise_relation. intros m0 m1 Hmeutt k0 k1 Hkeutt. intro. cbn. red in Hmeutt. rewrite Hmeutt. - eapply eutt_clo_bind; try reflexivity. intros. subst. destruct u2 as [s' a]. + eapply eutt_bind_eutt; try reflexivity. intros. subst. destruct u2 as [s' a]. simpl. red in Hkeutt. rewrite Hkeutt. reflexivity. Qed. diff --git a/secure_example/LabelledImp2AsmCorrectness.v b/secure_example/LabelledImp2AsmCorrectness.v index 07b49cfc..1f25afad 100644 --- a/secure_example/LabelledImp2AsmCorrectness.v +++ b/secure_example/LabelledImp2AsmCorrectness.v @@ -346,7 +346,7 @@ Section Bisimulation. Proof. repeat intro. unfold interp_asm, interp_imp. repeat rewrite interp_state_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply H; auto. } intros [s1 a] [ [regs mem] a']. intros Hs. destruct Hs. @@ -371,7 +371,7 @@ Section Bisimulation. 2 : { split; auto. } destruct H3. destruct j1 as [s1 a]. destruct j2 as [ [regs1 mem1] a']. cbn in *. - eapply eutt_clo_bind; eauto. intros [s2 r1] [ [regs2 mem2 ] r2 ] Hs. + eapply eutt_bind_eutt; eauto. intros [s2 r1] [ [regs2 mem2 ] r2 ] Hs. red in Hs. cbn in *. destruct Hs as [Hs Hr]. inv Hr; apply eqit_Ret; constructor; split; auto. @@ -660,9 +660,9 @@ Section Linking. rewrite bind_ret_l. destruct (label_case x); cbn. - rewrite !bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. repeat rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. unfold from_bif, FromBifunctor_ktree_fin; cbn. repeat rewrite bind_bind. repeat setoid_rewrite bind_ret_l. @@ -675,7 +675,7 @@ Section Linking. + rewrite (relabel_asm_correct _ _ _ _). cbn. rewrite bind_ret_l. setoid_rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros ? ? []. repeat rewrite bind_ret_l. apply eqit_Ret. @@ -870,12 +870,12 @@ Section Correctness. repeat setoid_rewrite interp_state_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [g_imp' v] [ [g_asm' l'] [] ] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -899,12 +899,12 @@ Section Correctness. repeat setoid_rewrite interp_state_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [g_imp' v] [ [g_asm' l'] [] ] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -928,12 +928,12 @@ Section Correctness. repeat setoid_rewrite interp_state_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [g_imp' v] [ [g_asm' l'] [] ] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -970,7 +970,7 @@ Section Correctness. (* By correctness of the compilation of expressions, we can match the head trees. *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } (* Once again, we get related environments *) @@ -995,7 +995,7 @@ Section Correctness. red. intros. unfold compile_output. unfold interp_imp, interp_asm. rewrite denote_list_app. do 2 rewrite interp_state_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } intros [g_imp' v] [ [g_asm' l'] y] HSIM. simpl in HSIM. cbn. @@ -1037,7 +1037,7 @@ Section Correctness. rewrite unfold_iter_ktree. rewrite unfold_iter. rewrite !bind_bind. - eapply eutt_clo_bind. reflexivity. + eapply eutt_bind_eutt. reflexivity. intros. subst. destruct u2 as [[]|[]]. 2 : { force_right. reflexivity. } @@ -1046,7 +1046,7 @@ Section Correctness. apply eutt_iter' with (RI := fun _ r => inl tt = r). - intros _ _ []. rewrite <- bind_ret_r at 1. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros [|[]] _ []; apply eqit_Ret; auto; constructor; auto. - constructor. Qed. @@ -1082,19 +1082,19 @@ Section Correctness. reflexivity. - simpl. rewrite bind_bind. setoid_rewrite bind_bind. rewrite throw_prefix_bind. rewrite IHe1. rewrite bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite throw_prefix_bind. rewrite IHe2. rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. reflexivity. - simpl. rewrite bind_bind. setoid_rewrite bind_bind. rewrite throw_prefix_bind. rewrite IHe1. rewrite bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite throw_prefix_bind. rewrite IHe2. rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. reflexivity. - simpl. rewrite bind_bind. setoid_rewrite bind_bind. rewrite throw_prefix_bind. rewrite IHe1. rewrite bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite throw_prefix_bind. rewrite IHe2. rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. reflexivity. @@ -1154,7 +1154,7 @@ Section Correctness. cbn. rewrite throw_prefix_bind. rewrite <- fold_to_itree'. rewrite throw_prefix_denote_expr. rewrite bind_bind. setoid_rewrite bind_ret_l. red. intros. unfold interp_imp, interp_asm. do 2 rewrite interp_state_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } intros. destruct u1 as [s v]. destruct u2 as [ [reg mem] ? ]. destruct u. cbn. assert (Htmp : reg 0 = v). @@ -1182,7 +1182,7 @@ Section Correctness. repeat rewrite bind_bind. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. red. intros. unfold interp_asm, interp_imp. - do 2 rewrite interp_state_bind. eapply eutt_clo_bind. + do 2 rewrite interp_state_bind. eapply eutt_bind_eutt. { eapply compile_expr_correct; auto. } intros [m v] [ [reg mem] [] ]. cbn. intros [HRenv [ Hreg0 ? ] ]. @@ -1196,7 +1196,7 @@ Section Correctness. * repeat setoid_rewrite bind_bind. setoid_rewrite throw_prefix_bind. setoid_rewrite bind_bind. rewrite bind_trigger. rewrite interp_state_vis. cbn. setoid_rewrite bind_ret_l. rewrite tau_eutt. cbn. unfold get_reg, tmp_if. rewrite Hreg0. - setoid_rewrite bind_bind. do 2 rewrite interp_state_bind. eapply eutt_clo_bind. + setoid_rewrite bind_bind. do 2 rewrite interp_state_bind. eapply eutt_bind_eutt. { apply IHs. auto. } intros [ st [ [] | [ | ] ] ] [ [reg' mem' ] l' ] Hst. -- cbn. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. diff --git a/secure_example/LabelledImpInline2AsmCorrectness.v b/secure_example/LabelledImpInline2AsmCorrectness.v index 07f8c750..048281c5 100644 --- a/secure_example/LabelledImpInline2AsmCorrectness.v +++ b/secure_example/LabelledImpInline2AsmCorrectness.v @@ -354,7 +354,7 @@ Section Bisimulation. Proof. repeat intro. unfold interp_imp_inline, interp_asm. repeat rewrite interp_state_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply H; auto. } intros [[regs1 mem1] a] [ [regs2 mem2] a']. intros Hs. destruct Hs. @@ -379,7 +379,7 @@ Section Bisimulation. 2 : { split; auto. } destruct H3. destruct j1 as [ [regs1 mem1] a]. destruct j2 as [ [regs2 mem2] a']. cbn in *. - eapply eutt_clo_bind; eauto. intros [ [regs3 mem3] r1] [ [regs4 mem4 ] r2 ] Hs. + eapply eutt_bind_eutt; eauto. intros [ [regs3 mem3] r1] [ [regs4 mem4 ] r2 ] Hs. red in Hs. cbn in *. destruct Hs as [Hs Hr]. inv Hr; apply eqit_Ret; constructor; split; auto. @@ -665,9 +665,9 @@ Section Linking. rewrite bind_ret_l. destruct (label_case x); cbn. - rewrite !bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. repeat rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. unfold from_bif, FromBifunctor_ktree_fin; cbn. repeat rewrite bind_bind. repeat setoid_rewrite bind_ret_l. @@ -680,7 +680,7 @@ Section Linking. + rewrite (relabel_asm_correct _ _ _ _). cbn. rewrite bind_ret_l. setoid_rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros ? ? []. repeat rewrite bind_ret_l. apply eqit_Ret. @@ -940,12 +940,12 @@ Section Correctness. repeat setoid_rewrite interp_state_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [ [l_imp' g_imp'] v] [ [g_asm' l'] [] ] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -969,12 +969,12 @@ Section Correctness. repeat setoid_rewrite interp_state_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [ [l_imp' g_imp'] v] [ [g_asm' l'] [] ] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -998,12 +998,12 @@ Section Correctness. repeat setoid_rewrite interp_state_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [ [l_imp' g_imp'] v] [ [g_asm' l'] [] ] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -1040,7 +1040,7 @@ Section Correctness. (* By correctness of the compilation of expressions, we can match the head trees. *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } (* Once again, we get related environments *) @@ -1065,7 +1065,7 @@ Section Correctness. red. intros. unfold compile_output. unfold interp_imp_inline, interp_asm. rewrite denote_list_app. do 2 rewrite interp_state_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } intros [ [l_imp' g_imp'] v] [ [g_asm' l'] y] HSIM. simpl in HSIM. cbn. @@ -1107,7 +1107,7 @@ Section Correctness. rewrite unfold_iter_ktree. rewrite unfold_iter. rewrite !bind_bind. - eapply eutt_clo_bind. reflexivity. + eapply eutt_bind_eutt. reflexivity. intros. subst. destruct u2 as [[]|[]]. 2 : { force_right. reflexivity. } @@ -1116,7 +1116,7 @@ Section Correctness. apply eutt_iter' with (RI := fun _ r => inl tt = r). - intros _ _ []. rewrite <- bind_ret_r at 1. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros [|[]] _ []; apply eqit_Ret; auto; constructor; auto. - constructor. Qed. @@ -1154,19 +1154,19 @@ Section Correctness. reflexivity. - simpl. rewrite bind_bind. setoid_rewrite bind_bind. rewrite throw_prefix_bind. rewrite IHe1. rewrite bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite throw_prefix_bind. rewrite IHe2. rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. reflexivity. - simpl. rewrite bind_bind. setoid_rewrite bind_bind. rewrite throw_prefix_bind. rewrite IHe1. rewrite bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite throw_prefix_bind. rewrite IHe2. rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. reflexivity. - simpl. rewrite bind_bind. setoid_rewrite bind_bind. rewrite throw_prefix_bind. rewrite IHe1. rewrite bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite throw_prefix_bind. rewrite IHe2. rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. reflexivity. @@ -1347,7 +1347,7 @@ Section Correctness. cbn. rewrite throw_prefix_bind. rewrite <- fold_to_itree'. rewrite throw_prefix_denote_expr. rewrite bind_bind. setoid_rewrite bind_ret_l. red. intros. unfold interp_imp_inline, interp_asm. do 2 rewrite interp_state_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } intros. destruct u1 as [ [reg0 mem0] v]. destruct u2 as [ [reg mem] ? ]. destruct u. cbn. assert (Htmp : reg 0 = v). @@ -1376,7 +1376,7 @@ Section Correctness. repeat rewrite bind_bind. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. red. intros. unfold interp_imp_inline, interp_asm. - do 2 rewrite interp_state_bind. eapply eutt_clo_bind. + do 2 rewrite interp_state_bind. eapply eutt_bind_eutt. { eapply compile_expr_correct; auto. } intros [ [reg0 mem0] v] [ [reg mem] [] ]. cbn. intros [HRenv [ Hreg0 ? ] ]. @@ -1390,7 +1390,7 @@ Section Correctness. * repeat setoid_rewrite bind_bind. setoid_rewrite throw_prefix_bind. setoid_rewrite bind_bind. rewrite bind_trigger. rewrite interp_state_vis. cbn. setoid_rewrite bind_ret_l. rewrite tau_eutt. cbn. unfold get_reg, tmp_if. rewrite Hreg0. - setoid_rewrite bind_bind. do 2 rewrite interp_state_bind. eapply eutt_clo_bind. + setoid_rewrite bind_bind. do 2 rewrite interp_state_bind. eapply eutt_bind_eutt. { apply IHs; auto. } intros [ [reg'0 mem'0 ] [ [] | [ | ] ] ] [ [reg' mem' ] l' ] Hst. -- cbn. setoid_rewrite bind_ret_l. setoid_rewrite throw_prefix_ret. diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 3d031c4e..5bba48e3 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -97,7 +97,7 @@ Proof. bcoinduction c cih. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. - eapply eqit_clo_bind_chain. + eapply eqit_bind_chain. do 2 step. apply eutt_body. intros ? ? []; econstructor; eauto. Qed. @@ -207,7 +207,7 @@ Qed. #[global] Instance IterUnfold_ktree {E} : IterUnfold (ktree E) sum. Proof. repeat intro. unfold_ktree. rewrite unfold_iter_ktree. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros [] ? []; try rewrite tau_eutt; reflexivity. Qed. @@ -267,18 +267,18 @@ Proof. | inr b0 => Ret (inr b0) end)) a0). - apply eutt_iter; intros x. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. reflexivity. intros [] ? []. rewrite tau_eutt; reflexivity. reflexivity. - rewrite iter_dinatural_ktree. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. reflexivity. intros [] ? []. + rewrite tau_eutt. apply eutt_iter; intros x. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. reflexivity. intros [] ? []. rewrite tau_eutt; reflexivity. @@ -328,7 +328,7 @@ Proof. rewrite iter_codiagonal_ktree. apply eutt_iter. intros a1. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. reflexivity. intros [| []] ? []; rewrite ?tau_eutt; reflexivity. Qed. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 06b58980..1ccfe594 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -92,7 +92,7 @@ Section eqit. The lattice on which the greatest fixed point is taken quantifies over types: [forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop]. This allows chains to work uniformly across all type instantiations, - which is essential for the bind closure principle. + which is essential for the up-to bind principle. *) Context {E : Type -> Type}. @@ -1915,7 +1915,7 @@ often. *) (* RTODO: Rename these *) (* this one can be eqit_bind_chain *) -Lemma eqit_clo_bind_chain +Lemma eqit_bind_chain b1 b2 (c : Chain (eqit_mon b1 b2)) {U1 U2} (t1 : itree E U1) (t2 : itree E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) (UU : U1 -> U2 -> Prop) : @@ -1958,21 +1958,21 @@ Proof. Qed. -Lemma eutt_clo_bind {U1 U2 UU} t1 t2 k1 k2 +Lemma eutt_bind_eutt {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eutt RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - unfold eutt. eapply eqit_clo_bind_chain; eauto. + unfold eutt. eapply eqit_bind_chain; eauto. Qed. -Lemma eutt_clo_bind_chain {U1 U2 UU} t1 t2 k1 k2 +Lemma eutt_bind_b {U1 U2 UU} t1 t2 k1 k2 (c : euttC) (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): eqit_mon true true (elem c) _ _ RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - eapply eqit_clo_bind_chain; intros. + eapply eqit_bind_chain; intros. all: now do 2 step; [apply EQT || apply EQK]. Qed. @@ -1982,7 +1982,7 @@ End eqit_h. Ltac eret := constructor; eauto with itree. Ltac etau := taus; eauto with itree. Ltac evis := constructor; intros; eauto with itree. -Ltac ebind := eapply eqit_clo_bind_chain; eauto with itree. +Ltac ebind := eapply eqit_bind_chain; eauto with itree. Lemma eutt_Tau {E R} (t1 t2 : itree E R): @@ -2005,10 +2005,10 @@ Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 @eqit E b1 b2 _ _ RS (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros. - eapply eqit_clo_bind_chain; eauto. + eapply eqit_bind_chain; eauto. Qed. -Lemma eq_itree_clo_bind {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop) {U1 U2 UU} t1 t2 k1 k2 +Lemma eq_itree_bind {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop) {U1 U2 UU} t1 t2 k1 k2 (EQT: @eq_itree E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eq_itree RR (k1 u1) (k2 u2)): eq_itree RR (ITree.bind t1 k1) (ITree.bind t2 k2). @@ -2701,13 +2701,13 @@ Proof. apply eutt_cong_eutt. Qed. -(* Specialization of [eutt_clo_bind] to the recurrent case where [UU := eq] +(* Specialization of [eutt_bind_eutt] to the recurrent case where [UU := eq] in order to avoid having to provide the relation manually everytime *) Lemma eutt_eq_bind : forall E R1 R2 RR U (t: itree E U) (k1: U -> itree E R1) (k2: U -> itree E R2), (forall u, eutt RR (k1 u) (k2 u)) -> eutt RR (ITree.bind t k1) (ITree.bind t k2). Proof. intros. - apply eutt_clo_bind with (UU := Logic.eq); [reflexivity |]. + apply eutt_bind_eutt with (UU := Logic.eq); [reflexivity |]. intros ? ? ->; apply H. Qed. diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index 7c7dc6b3..940a6f3d 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -100,7 +100,7 @@ Section FailTLaws. + eapply eutt_eq_bind; intros []; reflexivity. + rewrite bind_ret_l; reflexivity. - repeat intro; cbn. - eapply eutt_clo_bind; eauto. + eapply eutt_bind_eutt; eauto. intros [] [] REL; cbn in *; subst; try contradiction. + apply H0. + reflexivity. @@ -138,7 +138,7 @@ Proof. cbn; repeat (rewrite ?bind_bind, ?bind_ret_l, ?bind_map; try reflexivity). cbn; repeat (rewrite ?bind_bind, ?bind_ret_l, ?bind_map; try reflexivity). cbn; repeat (rewrite ?bind_bind, ?bind_ret_l, ?bind_map; try reflexivity). - apply eq_itree_clo_bind with (UU := Logic.eq); [reflexivity | intros x ? <-]. + apply eq_itree_bind with (UU := Logic.eq); [reflexivity | intros x ? <-]. destruct x as [x|]. - rewrite bind_ret_l; reflexivity. - rewrite bind_ret_l; reflexivity. diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index 8591a6c8..00464638 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -251,7 +251,7 @@ Proof. eapply (eutt_interp_state_iter eq eq); auto; intros. rewrite 2 interp_state_bind. subst. - eapply eutt_clo_bind; eauto. + eapply eutt_bind_eutt; eauto. intros. cbn in H2; destruct H2 as [H21 H22]. destruct (snd u1); rewrite <- H22. diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 19d8523d..59369488 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -145,7 +145,7 @@ Proof. bcoinduction. intros. rewrite !unfold_interp. step in H0. induction H0; intros; subst; cbn; eauto with itree; to_mon. - eapply eqit_clo_bind_chain. + eapply eqit_bind_chain. - do 2 step. apply H. - intros ??[=<-]. taus; eauto with itree. - taul. to_mon. rewrite unfold_interp. apply IHeqitF. @@ -164,7 +164,7 @@ Proof. bcoinduction. intros. rewrite !unfold_interp. step in H0. induction H0; intros; subst; cbn; try easy; eauto with itree; to_mon. - eapply eqit_clo_bind_chain. + eapply eqit_bind_chain. - do 2 step. apply H. - intros ??[=<-]. taus; eauto with itree. - taul. to_mon. rewrite unfold_interp. apply IHeqitF. diff --git a/theories/Props/HasPost.v b/theories/Props/HasPost.v index c6e32ffa..7177bdb7 100644 --- a/theories/Props/HasPost.v +++ b/theories/Props/HasPost.v @@ -156,7 +156,7 @@ Lemma has_post_bind : forall {E X Y} (t : itree E X) (k : X -> itree E Y) S Q, ITree.bind t k ⤳ Q. Proof. intros * POST1 POST2. - apply eutt_clo_bind with (UU := fun x y => x = y /\ S x) ; [apply has_post_post_strong; exact POST1 |]. + apply eutt_bind_eutt with (UU := fun x y => x = y /\ S x) ; [apply has_post_post_strong; exact POST1 |]. intros ? ? [<- ?]; eapply POST2; eauto. Qed. @@ -188,7 +188,7 @@ Qed. (** Enriched relational cut rule The main benefit of the approach: post-conditions can be leveraged when performing a cut during relational proofs. - This lemma generalizes [eutt_clo_bind] + This lemma generalizes [eutt_bind_eutt] *) Lemma eutt_post_bind : forall E R1 R2 RR S1 S2 SS Q1 Q2 @@ -200,7 +200,7 @@ Lemma eutt_post_bind : eutt RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros * POST1 POST2 EQ KEQ. - apply eutt_clo_bind with (UU := fun x y => SS x y /\ Q1 x /\ Q2 y). + apply eutt_bind_eutt with (UU := fun x y => SS x y /\ Q1 x /\ Q2 y). 2: intros ? ? (? & ? & ?); apply KEQ; auto. clear KEQ. apply has_post_post_strong in POST1. @@ -222,7 +222,7 @@ Lemma eutt_post_bind_eq : forall E R1 R2 RR U Q (t: itree E U) (k1: U -> itree E eutt RR (ITree.bind t k1) (ITree.bind t k2). Proof. intros * POST ?. - apply eutt_clo_bind with (UU := fun x y => x = y /\ Q x); [apply has_post_post_strong; exact POST |]. + apply eutt_bind_eutt with (UU := fun x y => x = y /\ Q x); [apply has_post_post_strong; exact POST |]. intros ? ? [-> ?]; auto. Qed. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index bce24ec5..2ea8ef23 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -274,6 +274,7 @@ Lemma eqit_clo_bind_gen : eqit RR b1 b2 (k1 u1) (k2 u2)) -> eqit RR b1 b2 (x <- t1;; k1 x) (x <- t2;; k2 x). Proof. + intros. ginit. guclo (@eqit_Leaf_clo_bind E R1 R2). econstructor; eauto. @@ -283,7 +284,7 @@ Proof. Qed. (** Specialization of the cut rule to [eutt] *) -Lemma eutt_clo_bind_gen : +Lemma eutt_bind_eutt_gen : forall {E} {R1 R2} (RR : R1 -> R2 -> Prop) {U1 U2} {UU : U1 -> U2 -> Prop} (t1 : itree E U1) (t2 : itree E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2), @@ -302,7 +303,7 @@ Lemma eutt_eq_bind_gen {E R S T} (RS : R -> S -> Prop) (forall u, u ∈ t -> eutt RS (k1 u) (k2 u)) -> eutt RS (t >>= k1) (t >>= k2). Proof. - intros; eapply eutt_clo_bind_gen. + intros; eapply eutt_bind_eutt_gen. reflexivity. intros * IN _ <-; eauto. Qed. diff --git a/tutorial/Asm.v b/tutorial/Asm.v index f2db2ba0..bc281be1 100644 --- a/tutorial/Asm.v +++ b/tutorial/Asm.v @@ -380,7 +380,7 @@ Section InterpAsmProperties. repeat rewrite interp_bind. repeat rewrite interp_state_bind. repeat rewrite bind_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { reflexivity. } intros. rewrite H. diff --git a/tutorial/AsmOptimization.v b/tutorial/AsmOptimization.v index 5ea4a264..95940ec4 100644 --- a/tutorial/AsmOptimization.v +++ b/tutorial/AsmOptimization.v @@ -135,7 +135,7 @@ Proof. intros t mem1 mem2 regs1 regs2 H1 H2. rewrite interp_asm_bind. rewrite <- bind_ret_r at 1. - apply (@eutt_clo_bind _ _ _ _ _ _ rel_asm). + apply (@eutt_bind_eutt _ _ _ _ _ _ rel_asm). { unfold interp_asm. unfold rel_asm. eapply interp_map_proper; try typeclasses eauto; auto. @@ -331,7 +331,7 @@ Lemma ph_blk_append_correct {E} {HasExit : Exit -< E} : specialize H with (i:=i). pose proof (H E tt) as H2. do 2 rewrite interp_asm_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. apply H2; auto. intros. destruct H0 as [J1 [J2 J3]]. @@ -406,9 +406,9 @@ Proof. unfold interp_asm, interp_map. repeat setoid_rewrite interp_bind. repeat rewrite interp_state_bind. - apply (@eutt_clo_bind _ _ _ _ _ _ rel_asm). + apply (@eutt_bind_eutt _ _ _ _ _ _ rel_asm). - { apply (@eutt_clo_bind _ _ _ _ _ _ rel_asm). + { apply (@eutt_bind_eutt _ _ _ _ _ _ rel_asm). - unfold inr_, Inr_Kleisli, lift_ktree_. unfold ret, Monad_itree. repeat rewrite interp_ret. @@ -441,12 +441,12 @@ Proof. intros j1 j2 [K1 [K2 ->]]; cbn. rewrite !interp_bind, !interp_state_bind, !bind_bind. (* Slow! *) - apply (@eutt_clo_bind _ _ _ _ _ _ rel_asm); + apply (@eutt_bind_eutt _ _ _ _ _ _ rel_asm); [|intros ? ? [? [? ->]]]; cbn. { refine (peephole_block_correct _ _ _ _ _ _ _ _ _ _ _ _); eauto. } unfold CategorySub.to_bif, ToBifunctor_ktree_fin. - apply (@eutt_clo_bind _ _ _ _ _ _ rel_asm); + apply (@eutt_bind_eutt _ _ _ _ _ _ rel_asm); [|intros ? ? [? [? ->]]]; cbn. { rewrite bind_ret_l. diff --git a/tutorial/Imp2AsmCorrectness.v b/tutorial/Imp2AsmCorrectness.v index 84505f1f..52c1a997 100644 --- a/tutorial/Imp2AsmCorrectness.v +++ b/tutorial/Imp2AsmCorrectness.v @@ -360,7 +360,7 @@ Section Bisimulation. repeat intro. rewrite interp_asm_bind. rewrite interp_imp_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply H; auto. } intros. destruct u1 as [? ?]. @@ -395,7 +395,7 @@ Section Bisimulation. rewrite interp_state_bind, bind_bind. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. - apply (@eutt_clo_bind _ _ _ _ _ _ (state_invariant (sum_rel R S))). + apply (@eutt_bind_eutt _ _ _ _ _ _ (state_invariant (sum_rel R S))). - auto. - intros ? ? [? []]; cbn; apply eqit_Ret; constructor; split; auto. - constructor; auto. @@ -547,9 +547,9 @@ Section Linking. rewrite bind_ret_l. destruct (label_case x); cbn. - rewrite !bind_bind. setoid_rewrite bind_ret_l. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. intros; subst. + eapply eutt_bind_eutt; try reflexivity. intros; subst. unfold from_bif, FromBifunctor_ktree_fin; cbn. setoid_rewrite bind_ret_l. destruct u0. @@ -561,7 +561,7 @@ Section Linking. + rewrite (relabel_asm_correct _ _ _ _). cbn. rewrite bind_ret_l. setoid_rewrite bind_bind. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros ? ? []. repeat rewrite bind_ret_l. apply eqit_Ret. @@ -634,14 +634,14 @@ Section Correctness. rewrite interp_imp_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [g_imp' v] [g_asm' [l' []]] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) rewrite interp_asm_bind. rewrite interp_imp_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -662,14 +662,14 @@ Section Correctness. rewrite interp_imp_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [g_imp' v] [g_asm' [l' []]] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) rewrite interp_asm_bind. rewrite interp_imp_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -690,14 +690,14 @@ Section Correctness. rewrite interp_imp_bind. (* The Induction hypothesis on [e1] relates the first itrees *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe1; assumption. } (* We obtain new related environments *) intros [g_imp' v] [g_asm' [l' []]] HSIM. (* The Induction hypothesis on [e2] relates the second itrees *) rewrite interp_asm_bind. rewrite interp_imp_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHe2. eapply sim_rel_Renv; eassumption. } (* And we once again get new related environments *) @@ -731,7 +731,7 @@ Section Correctness. (* By correctness of the compilation of expressions, we can match the head trees. *) - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply compile_expr_correct; eauto. } (* Once again, we get related environments *) @@ -782,7 +782,7 @@ Section Correctness. rewrite bind_ret_l, tau_eutt. rewrite unfold_iter_ktree. rewrite !bind_bind. - eapply eutt_clo_bind. reflexivity. + eapply eutt_bind_eutt. reflexivity. intros. subst. destruct u2 as [[]|[]]. 2 : { force_right. reflexivity. } @@ -791,7 +791,7 @@ Section Correctness. apply eutt_iter' with (RI := fun _ r => inl tt = r). - intros _ _ []. rewrite <- bind_ret_r at 1. - eapply eutt_clo_bind; try reflexivity. + eapply eutt_bind_eutt; try reflexivity. intros [|[]] _ []; apply eqit_Ret; auto; constructor; auto. - constructor. Qed. @@ -867,7 +867,7 @@ Section Correctness. repeat intro. rewrite interp_asm_bind. rewrite interp_imp_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { apply compile_expr_correct; auto. } (* We get in return [sim_rel] related environments *) @@ -923,7 +923,7 @@ Section Correctness. rewrite !interp_asm_bind. rewrite !bind_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { apply compile_expr_correct; auto. } intros [g_imp' v] [g_asm' [l' x]] HSIM. @@ -952,7 +952,7 @@ Section Correctness. rewrite !interp_asm_bind. rewrite !interp_imp_bind. rewrite !bind_bind. - eapply eutt_clo_bind. + eapply eutt_bind_eutt. { eapply IHs; auto. } intros [g_imp'' v''] [g_asm'' [l'' x']] [HSIM' ?]. force_right; force_left. From 94fb49c4f29dac5b90c75316e3719e066d4ab8e6 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 8 Apr 2026 15:08:50 -0400 Subject: [PATCH 113/189] Done up to some of RuttFacts, switching for proof check --- .gitignore | 1 + theories/Eq/Rutt.v | 17 ++-- theories/Eq/RuttFacts.v | 42 ++++----- theories/Props/Leaf.v | 190 ++++++++++++++++++---------------------- 4 files changed, 111 insertions(+), 139 deletions(-) diff --git a/.gitignore b/.gitignore index 65a2870a..041b4399 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ tutorial/imp_test.mli *.install .mcp.json +rocq_mcp_cache_8675_.v \ No newline at end of file diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 6d328403..4dc327a3 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -113,11 +113,19 @@ End RuttF. (** ** Rutt-specific tactics *) +Ltac rcbn := cbn[rutt_mon body]; try unfold rutt_. +Ltac rcbn_in H := cbn[rutt_mon body] in H; try unfold rutt_ in H. + +Tactic Notation "rcbn" "in" ident(h) := rcbn_in h. +Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body] in *; try unfold rutt_ in *. + (** [rstep] unfolds [rutt] one step, exposing the [ruttF] functor. *) Tactic Notation "rstep" := - unfold rutt; step; cbn [rutt_mon body rutt_]. + unfold rutt; step; rcbn. Tactic Notation "rstep" "in" ident(h) := - unfold rutt in h; step in h; cbn [rutt_mon body rutt_] in h. + unfold rutt in h; + step in h; + rcbn in h. Ltac fold_rutt := match goal with @@ -141,11 +149,6 @@ Ltac runfold_coind := Tactic Notation "rcoinduction" simple_intropattern(R) simple_intropattern(H) := runfold_coind; coinduction R H; cbn [rutt_mon body rutt_]. -#[local] Ltac rcbn := cbn[rutt_mon body]; try unfold rutt_. -#[local] Ltac rcbn_in H := cbn[rutt_mon body]; try unfold rutt_ in H. - -#[local] Tactic Notation "rcbn" "in" ident(h) := rcbn_in h. -#[local] Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body]; try unfold rutt_ in *. #[global] Hint Constructors ruttF : itree. diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 82dc4ad9..a611ac98 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -13,9 +13,6 @@ From Stdlib Require Import Morphisms RelationClasses. -From Paco Require Import - paco. - From ITree Require Import ITree ITreeFacts @@ -98,16 +95,16 @@ Proof. reflexivity. Qed. Lemma rutt_flip {E1 E2 R1 R2 REv RAns RR} (t1: itree E1 R1) (t2: itree E2 R2): rutt REv RAns RR t1 t2 <-> rutt (flip_REv REv) (flip_RAns RAns) (flip RR) t2 t1. Proof. - split; revert t1 t2; pcofix CIH; intros t1 t2 Hrutt; - punfold Hrutt; red in Hrutt; pstep; red. + split; revert t1 t2; rcoinduction c CIH; intros t1 t2 Hrutt; + rstep in Hrutt; red. - induction Hrutt; try now constructor. - * apply EqTau. right. apply CIH. now pclearbot. - * apply EqVis. auto. intros b a HAns. cbn in HAns. right. - specialize (H0 a b HAns). apply CIH. now pclearbot. + * apply EqTau. now apply CIH. + * apply EqVis. auto. intros b a HAns. cbn in HAns. + specialize (H0 a b HAns). now apply CIH. - induction Hrutt; try now constructor. - * apply EqTau. right. apply CIH. now pclearbot. - * apply EqVis. auto. intros b a HAns. cbn in HAns. right. - specialize (H0 a b HAns). apply CIH. now pclearbot. + * apply EqTau. now apply CIH. + * apply EqVis. auto. intros b a HAns. cbn in HAns. + specialize (H0 a b HAns). now apply CIH. Qed. (* Progressive [Proper] instances for [rutt] and congruence with eutt. *) @@ -121,29 +118,20 @@ Qed. ==> iff) (@rutt E1 E2 R1 R2). Proof. intros REv1 REv2 HREv RAns1 RAns2 HRAns RR1 RR2 HRR t1 _ <- t2 _ <-. - split; intros Hrutt. - - - revert t1 t2 Hrutt; pcofix CIH; intros t1 t2 Hrutt. - pstep. punfold Hrutt. red in Hrutt; red. + split; intros Hrutt; + revert t1 t2 Hrutt; rcoinduction c CIH; intros t1 t2 Hrutt; + rstep in Hrutt; rcbn; hinduction Hrutt before CIH; intros; eauto using EqTauL, EqTauR. - * apply EqRet. now apply HRR. - * apply EqTau. right. apply CIH. now pclearbot. + 1,4: apply EqRet; now apply HRR. + 1,3: apply EqTau; now apply CIH. * apply EqVis. now apply HREv. intros. assert (H2: RAns1 A B e1 a e2 b). { erewrite <- eq_RAns_iff. apply H1. assumption. } - intros. specialize (H0 a b H2). red. right. apply CIH. - red in H0. now pclearbot. - - - revert t1 t2 Hrutt; pcofix CIH; intros t1 t2 Hrutt. - pstep. punfold Hrutt. red in Hrutt; red. - hinduction Hrutt before CIH; intros; eauto using EqTauL, EqTauR. - * apply EqRet. now apply HRR. - * apply EqTau. right. apply CIH. now pclearbot. + intros. specialize (H0 a b H2). now apply CIH. * apply EqVis. now apply HREv. intros. assert (H2: RAns2 A B e1 a e2 b). { erewrite eq_RAns_iff. apply H1. assumption. } - intros. specialize (H0 a b H2). red. right. apply CIH. - red in H0. now pclearbot. + intros. specialize (H0 a b H2). now apply CIH. Qed. #[global] Instance rutt_Proper_R2 {E1 E2 R1 R2}: diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 2ea8ef23..2f90fe76 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -12,7 +12,6 @@ From ITree Require Import Events.StateFacts Props.HasPost. -From Paco Require Import paco. From Stdlib Require Import Morphisms Basics Program.Equality. Import ITree. Import ITreeNotations. @@ -127,7 +126,7 @@ Proof. + edestruct IHEQ as (? & ? & ?); [ .. | eexists ]; eauto with itree. - step in EQ; rewrite H in EQ; clear H t. remember (VisF e k); genobs u2 ou2. - hinduction EQ before R; intros; try discriminate; pclearbot. + hinduction EQ before R; intros; try discriminate. + revert x FIN IHFIN. refine (match Heqi in _ = u return match u with VisF e0 k0 => _ | RetF _ | TauF _ => False end with eq_refl => _ end). intros. edestruct IHFIN as (? & ? & ?); [ | eexists ]; eauto with itree. @@ -193,94 +192,66 @@ Proof. edestruct IHFIN as (? & ? & ?); [ reflexivity | eexists; eauto with itree ]. Qed. -(** Leaf-aware up-to bind closure - This construction generalizes [eqit_bind_clo]: one can - indeed provide an arbitrary cut at the relational - redicate [RU] of one's choice, but the continuations - are only required to be related pointwise at the intersection - of [RU] with the respective leaves of the prefixes. +(** Leaf-aware bind rule for [eqit]. + Generalizes [eqit_bind_chain]: continuations need only be related + pointwise at the intersection of [UU] with the respective leaves + of the prefixes. *) -Section LeafBind. - - Context {E : Type -> Type} {R S : Type}. - - Local Open Scope itree. - - Inductive eqit_Leaf_bind_clo b1 b2 (r : itree E R -> itree E S -> Prop) : - itree E R -> itree E S -> Prop := - | pbc_intro_h U1 U2 (RU : U1 -> U2 -> Prop) - (t1 : itree E U1) (t2 : itree E U2) - (k1 : U1 -> itree E R) (k2 : U2 -> itree E S) - (EQV: eqit b1 b2 RU t1 t2) - (REL: forall u1 u2, - u1 ∈ t1 -> u2 ∈ t2 -> RU u1 u2 -> - r (k1 u1) (k2 u2)) - : eqit_Leaf_bind_clo b1 b2 r - (ITree.bind t1 k1) (ITree.bind t2 k2) - . - Hint Constructors eqit_Leaf_bind_clo : itree. - -Lemma eqit_Leaf_clo_bind (RS : R -> S -> Prop) b1 b2 vclo - (MON: monotone2 vclo) - (CMP: compose (eqitC RS b1 b2) vclo <3= compose vclo (eqitC RS b1 b2)) - (ID: id <3= vclo): - eqit_Leaf_bind_clo b1 b2 <3= gupaco2 (eqit_ RS b1 b2 vclo) (eqitC RS b1 b2). - Proof. - gcofix CIH. intros. destruct PR. - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; try (rewrite (itree_eta (x <- _;; _ x)), unfold_bind; reflexivity). - punfold EQV. unfold_eqit. - genobs t1 ot1. - genobs t2 ot2. - hinduction EQV before CIH; intros; pclearbot. - - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; try (rewrite <- !itree_eta; reflexivity). - gbase; cbn. - apply REL0; auto with itree. - - gstep. econstructor. - gbase. - apply CIH. - econstructor; eauto with itree. - - gstep. econstructor. - intros; apply ID; unfold id. - gbase. - apply CIH. - econstructor; eauto with itree. - - destruct b1; try discriminate. - guclo eqit_clo_trans. - econstructor. - 3:{ eapply IHEQV; eauto with itree. } - 3,4:auto_ctrans_eq. - 2: reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind, <-itree_eta. reflexivity. - - destruct b2; try discriminate. - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; eauto with itree; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind, <-itree_eta. reflexivity. - Qed. - -End LeafBind. - -(** General cut rule for [eqit] - This result generalizes [eqit_clo_bind]. *) Lemma eqit_clo_bind_gen : forall {E} {R1 R2} (RR : R1 -> R2 -> Prop) {U1 U2} {UU : U1 -> U2 -> Prop} - b1 b2 + b1 b2 (c : Chain (eqit_mon b1 b2)) (t1 : itree E U1) (t2 : itree E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2), - eqit UU b1 b2 t1 t2 -> + elem c _ _ UU t1 t2 -> (forall (u1 : U1) (u2 : U2), u1 ∈ t1 -> u2 ∈ t2 -> UU u1 u2 -> - eqit RR b1 b2 (k1 u1) (k2 u2)) -> - eqit RR b1 b2 (x <- t1;; k1 x) (x <- t2;; k2 x). + elem c _ _ RR (k1 u1) (k2 u2)) -> + elem c _ _ RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - - intros. - ginit. guclo (@eqit_Leaf_clo_bind E R1 R2). - econstructor; eauto. - intros * IN1 IN2 HR. - gfinal; right. - apply H0; auto. + intros E R1 R2 RR U1 U2. + intros UU b1 b2 c t1 t2 k1 k2. + revert UU t1 t2 k1 k2. + tower induction. + { intros. unfold Datatypes.id. apply H0; auto. } + intros x IH. + intros UU t1 t2 k1 k2 EQT EQKL. + cbn [eqit_mon body] in *. + unfold eqit_ in *. + genobs t1 ot1. + genobs t2 ot2. + hinduction EQT before RR; intros. + 1-3: rewrite 2 observe_bind; simpobs. + + (* ret *) + apply EQKL. + * apply LeafRet; auto. + * apply LeafRet; auto. + * exact REL. + + (* tau *) + taus. + eapply IH. + * exact REL. + * intros u1 u2 HL1 HL2 HU. + step. apply EQKL. + -- eapply LeafTau; eauto. + -- eapply LeafTau; eauto. + -- exact HU. + + (* vis *) + constructor. intro v. + eapply IH. + * apply REL. + * intros u1 u2 HL1 HL2 HU. + step. apply EQKL. + -- eapply LeafVis; eauto. + -- eapply LeafVis; eauto. + -- exact HU. + + (* taul *) + rewrite observe_bind. simpobs. + taul. + eapply IHEQT; eauto with itree. + + (* taur *) + setoid_rewrite observe_bind at 2. simpobs. + taur. + eapply IHEQT; eauto with itree. Qed. (** Specialization of the cut rule to [eutt] *) @@ -294,7 +265,7 @@ Lemma eutt_bind_eutt_gen : eutt RR (k1 u1) (k2 u2)) -> eutt RR (x <- t1;; k1 x) (x <- t2;; k2 x). Proof. - intros *; apply eqit_clo_bind_gen. + intros *. unfold eutt. apply eqit_clo_bind_gen. Qed. (** Often useful particular case of identical prefixes *) @@ -333,16 +304,25 @@ Proof. intuition; now subst. Qed. -Lemma has_post_Leaf_equiv {E R} (t: itree E R) Q: - has_post t Q <-> (forall r, r ∈ t -> Q r). +Lemma has_post_of_Leaf {E R} (Q : R -> Prop) : + forall (t : itree E R), + (forall r, r ∈ t -> Q r) -> + t ≈⟨ fun x _ => Q x ⟩ t. Proof. - intuition. eapply has_post_Leaf; eauto. - revert t H. pcofix CIH; intros t Hpost. pstep; red. + icoinduction c cih. intros t Hpost. setoid_rewrite (itree_eta t) in Hpost. - desobs t Ht; clear t Ht. + desobs t Ht. - constructor. apply Hpost, Leaf_Ret. - - constructor. right; apply CIH. intros. apply Hpost, Leaf_Tau, H. - - constructor. intros. right. apply CIH. intros. eapply Hpost, Leaf_Vis, H. + - constructor. apply cih. intros. apply Hpost. apply Leaf_Tau. exact H. + - constructor. intros. apply cih. intros. eapply Hpost. eapply Leaf_Vis. exact H. +Qed. + +Lemma has_post_Leaf_equiv {E R} (t: itree E R) Q: + has_post t Q <-> (forall r, r ∈ t -> Q r). +Proof. + split. + - intros; eapply has_post_Leaf; eauto. + - intro Hpost. exact (has_post_of_Leaf Q t Hpost). Qed. (** Leaf-based inversion principles for iter *) @@ -431,7 +411,7 @@ Proof. revert t Ht u Hu; induction Hsub; intros. - apply SubtreeRefl. now rewrite Ht, Hu. - apply SubtreeTau, IHHsub; auto. apply eqit_Tau, Ht. - - eapply SubtreeVis. now rewrite Ht, H. apply IHHsub; auto. reflexivity. + - eapply SubtreeVis. now rewrite Ht, H. apply IHHsub; auto. Qed. Lemma subtree_image {E R} (t u: itree E R) x: @@ -446,30 +426,30 @@ Qed. Lemma Leaf_interp_subtree_inv {E F R} (h: E ~> itree F) (t u: itree E R): subtree u t -> has_post (interp h u) (fun x : R => x ∈ t). Proof. - revert t u. ginit. gcofix CIH; intros * Hsub. + revert t u. unfold has_post. bcoinduction c cih; intros * Hsub. rewrite (itree_eta u) in Hsub. - rewrite ! unfold_interp. + rewrite unfold_interp. desobs u Hu; clear u Hu; cbn. - - gstep; red. constructor. eapply subtree_image; eauto. apply Leaf_Ret. - - gstep; red. constructor. gfinal; left. apply CIH. apply SubtreeTau, Hsub. - - guclo eqit_clo_bind; econstructor. reflexivity. intros u _ <-. - gstep; red. constructor. gfinal; left. apply CIH. eapply SubtreeVis, Hsub. - reflexivity. + - constructor. eapply subtree_image; eauto. apply Leaf_Ret. + - constructor. apply cih. apply SubtreeTau, Hsub. + - to_mon. eapply eqit_bind_chain. reflexivity. + intros u _ <-. + taus. apply cih. eapply SubtreeVis, Hsub. reflexivity. Qed. Lemma Leaf_interp_state_subtree_inv {E F S R} (h: E ~> Monads.stateT S (itree F)) (t u: itree E R) (s: S): subtree u t -> has_post (interp_state h u s) (fun x => snd x ∈ t). Proof. - revert t u s. ginit. gcofix CIH; intros * Hsub. + revert t u s. unfold has_post. bcoinduction c cih; intros * Hsub. rewrite (itree_eta u) in Hsub. - rewrite ! unfold_interp_state. + rewrite unfold_interp_state. desobs u Hu; clear u Hu; cbn. - - gstep; red. constructor. eapply subtree_image; eauto. apply Leaf_Ret. - - gstep; red. constructor. gfinal; left. apply CIH. apply SubtreeTau, Hsub. - - guclo eqit_clo_bind; econstructor. reflexivity. intros [u1 u2] _ <-; cbn. - gstep; red. constructor. gfinal; left. apply CIH. eapply SubtreeVis, Hsub. - reflexivity. + - constructor. eapply subtree_image; eauto. apply Leaf_Ret. + - constructor. apply cih. apply SubtreeTau, Hsub. + - to_mon. eapply eqit_bind_chain. reflexivity. + intros [u1 u2] _ <-; cbn. + taus. apply cih. eapply SubtreeVis, Hsub. reflexivity. Qed. End Subtree. From 41d30f57483703e28562c5d4cb51039101d3ee0d Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 8 Apr 2026 15:47:03 -0400 Subject: [PATCH 114/189] Progress and made fixing script. Curious about rutt and eqit_trans. --- .Makefile.d | 56 ----------------------------------------- Makefile.conf | 4 +-- theories/Eq/Rutt.v | 9 +++++-- theories/Eq/RuttFacts.v | 42 +++++++++++++++++++------------ validate-coqproject.sh | 21 ++++++++++++++++ 5 files changed, 56 insertions(+), 76 deletions(-) create mode 100755 validate-coqproject.sh diff --git a/.Makefile.d b/.Makefile.d index 808660ee..f161cfdf 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -130,59 +130,3 @@ theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Depe theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile.conf b/Makefile.conf index f5a69775..98dfaee5 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -32,8 +32,8 @@ COQMF_METAFILE = COQMF_OCAMLLIBS = COQMF_SRC_SUBDIRS = -COQMF_COQLIBS = -Q theories ITree -Q extra ITree.Extra -COQMF_COQLIBS_NOML = -Q theories ITree -Q extra ITree.Extra +COQMF_COQLIBS = -Q theories ITree +COQMF_COQLIBS_NOML = -Q theories ITree COQMF_CMDLINE_COQLIBS = ############################################################################### diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 4dc327a3..8a7ba62a 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -127,6 +127,12 @@ Tactic Notation "rstep" "in" ident(h) := step in h; rcbn in h. +#[local] Ltac refold := + repeat match goal with + | |- context[gfp (@rutt_mon ?E1 ?E2 ?R1 ?R2 ?RE ?RA)] => + fold (@rutt E1 E2 R1 R2 RE RA) + end. + Ltac fold_rutt := match goal with | |- context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR] => @@ -147,8 +153,7 @@ Ltac runfold_coind := [intros ?; runfold_coind; revert_one | unfold rutt]. Tactic Notation "rcoinduction" simple_intropattern(R) simple_intropattern(H) := - runfold_coind; coinduction R H; cbn [rutt_mon body rutt_]. - + runfold_coind; coinduction R H; rcbn; refold. #[global] Hint Constructors ruttF : itree. diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index a611ac98..25f5d149 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -96,7 +96,7 @@ Lemma rutt_flip {E1 E2 R1 R2 REv RAns RR} (t1: itree E1 R1) (t2: itree E2 R2): rutt REv RAns RR t1 t2 <-> rutt (flip_REv REv) (flip_RAns RAns) (flip RR) t2 t1. Proof. split; revert t1 t2; rcoinduction c CIH; intros t1 t2 Hrutt; - rstep in Hrutt; red. + rstep in Hrutt. - induction Hrutt; try now constructor. * apply EqTau. now apply CIH. * apply EqVis. auto. intros b a HAns. cbn in HAns. @@ -144,21 +144,31 @@ Qed. Proof. clear. intros REv1 REv2 HREv RAns1 RAns2 HRAns RR1 RR2 HRR t1 t1' Ht1 t2 t2' Ht2. split; intros Hrutt. - - rewrite <- HREv, <- HRAns, <- HRR; clear HREv REv2 HRAns RAns2 HRR RR2. - ginit. gclo. econstructor; eauto with paco. - * symmetry in Ht1. apply eq_sub_euttge in Ht1. apply Ht1. - * symmetry in Ht2. apply eq_sub_euttge in Ht2. apply Ht2. - * intros; now subst. - * intros; now subst. - + revert_until RR1. rcoinduction c cih. intros. + rstep in Hrutt; rstep in Ht1; rstep in Ht2. + hinduction Hrutt before cih; try solve [inv Ht1; inv Ht2; easy]; intros. + + inv Ht1; inv Ht2; try easy. now constructor. + + inv Ht1; inv Ht2; try easy. constructor. eapply cih; eauto. + + apply eqitF_inv_VisF_l in Ht1; + apply eqitF_inv_VisF_l in Ht2. crunch; simpobs; try easy. + constructor; eauto. intros. eapply cih. + apply H4. apply H2. now apply H0. + + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. - rewrite HREv, HRAns, HRR; clear HREv REv1 HRAns RAns1 HRR RR1. - ginit. gclo. econstructor; eauto with paco. - * apply eq_sub_euttge in Ht1. apply Ht1. - * apply eq_sub_euttge in Ht2. apply Ht2. - * intros; now subst. - * intros; now subst. -Qed. + revert_until RR2. rcoinduction c cih. intros. + rstep in Hrutt; rstep in Ht1; rstep in Ht2. + hinduction Hrutt before cih; try solve [inv Ht1; inv Ht2; easy]; intros. + + inv Ht1; inv Ht2; try easy. now constructor. + + inv Ht1; inv Ht2; try easy. constructor. eapply cih; eauto. + + apply eqitF_inv_VisF_r in Ht1; + apply eqitF_inv_VisF_r in Ht2. crunch; simpobs; try easy. + constructor; eauto. intros. eapply cih. + apply H4. apply H2. now apply H0. + + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. +Qed. Lemma rutt_cong_eutt {E1 E2 R1 R2}: forall REv RAns RR (t1: itree E1 R1) t1' (t2: itree E2 R2), @@ -171,8 +181,8 @@ Proof. between t1 and t1'. Finally, explore ruttF until landing on an rutt where the t1/t1' relation can be substituted by CIH, and conclude. *) intros * Hrutt Heutt; revert t1 t1' Heutt t2 Hrutt. - ginit; gcofix CIH; intros t1 t1' Heutt t2 Hrutt. - punfold Hrutt; red in Hrutt. + rcoinduction c cih; intros t1 t1' Heutt t2 Hrutt. + rstep in Hrutt. rewrite (itree_eta t1) in Heutt. rewrite (itree_eta t2). diff --git a/validate-coqproject.sh b/validate-coqproject.sh new file mode 100755 index 00000000..14ab1cac --- /dev/null +++ b/validate-coqproject.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e +# +# Purpose: Checks that files in _CoqProject actually exist +# + +## Usage: validate-coqproject <_CoqProject-filename> +## +## +## author: rab +## date: Wed Apr 8 15:24:03 EDT 2026 + + +NUM_ARGS=1 + + +if [[ "$#" -ne "$NUM_ARGS" ]]; then + >&2 echo "Usage: $0 <_CoqProject-filename>" + exit 1 +fi + +tail -n +3 "$1" | while IFS= read -r f; do [[ -z "$f" ]] || [[ -e "$f" ]] || echo "$f"; done From cebaf61dc33bed6a0981ed64fca97a8e8e7db65e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 8 Apr 2026 17:20:49 -0400 Subject: [PATCH 115/189] Progress on rutt. Proving some hard lemmas. --- theories/Eq/Rutt.v | 30 ++++++++++ theories/Eq/RuttFacts.v | 126 +++++++++++++++++++++++++++++++--------- 2 files changed, 127 insertions(+), 29 deletions(-) diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 8a7ba62a..2a2e8dbe 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -146,6 +146,36 @@ Ltac fold_rutt_in h := Tactic Notation "runstep" := fold_rutt; unstep. Tactic Notation "runstep" "in" ident(h) := fold_rutt_in h; unstep in h. +Ltac to_rmon_core := +match goal with +| |- context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR (?f ?RR) (observe ?t1) (observe ?t2)] => + change (@ruttF E1 E2 R1 R2 REv RAns RR (f RR) (observe t1) (observe t2)) + with (@rutt_mon E1 E2 R1 R2 REv RAns f RR t1 t2) +| |- context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR (?f ?RR) (?con1 ?a1) (?con2 ?a2)] => + change (@ruttF E1 E2 R1 R2 REv RAns RR (f RR) (con1 a1) (con2 a2)) + with (@rutt_mon E1 E2 R1 R2 REv RAns f RR (go (con1 a1)) (go (con2 a2))) +end. + +Ltac to_rmon := +let dummy := fresh "dummy" in +assert (dummy : True) by constructor; + intros; + to_rmon_core; + revert_until dummy; + clear dummy. + +Ltac to_rmon_in h := +match type of h with +| context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR (?f ?RR) (observe ?t1) (observe ?t2)] => + change (@ruttF E1 E2 R1 R2 REv RAns RR (f RR) (observe t1) (observe t2)) + with (@rutt_mon E1 E2 R1 R2 REv RAns f RR t1 t2) in h +| context[@ruttF ?E1 ?E2 ?R1 ?R2 ?REv ?RAns ?RR (?f ?RR) (?con1 ?a1) (?con2 ?a2)] => + change (@ruttF E1 E2 R1 R2 REv RAns RR (f RR) (con1 a1) (con2 a2)) + with (@rutt_mon E1 E2 R1 R2 REv RAns f RR (go (con1 a1)) (go (con2 a2))) in h +end. + +Tactic Notation "to_rmon" "in" ident(h) := to_rmon_in h. + Local Ltac revert_one := match goal with [ H : _ |- _ ] => revert H end. Ltac runfold_coind := diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 25f5d149..549bd03c 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -134,6 +134,41 @@ Proof. intros. specialize (H0 a b H2). now apply CIH. Qed. +#[global] Instance eq_proper_ruttC {E1 E2 R1 R2 REv RAns} + (RR : R1 -> R2 -> Prop) (c : Chain (@rutt_mon E1 E2 R1 R2 REv RAns)): + Proper (eq_itree eq ==> eq_itree eq ==> iff) (elem c RR). +Proof. + split; revert_until c; tower induction; + intros x IH t1 t1' Ht1 t2 t2' Ht2; + step in Ht1; step in Ht2; rcbn; intros Hrutt; + genobs t1' ot1'; genobs t2' ot2'; + move Hrutt before IH; revert_until Hrutt; + induction Hrutt; intros; subst. + 1-3,6-8: inv Ht1; inv Ht2; simpobs; try easy; try now constructor. + + simpobs. constructor. eapply IH; eauto. + + simpobs. + dependent destruction H3; dependent destruction H4; + dependent destruction H6; dependent destruction H7. + constructor; auto. intros. eapply IH. apply REL. apply REL0. now apply H0. + + simpobs. constructor. eapply IH; eauto. + + simpobs. + dependent destruction H4; dependent destruction H5; + dependent destruction H7; dependent destruction H8. + constructor; auto. intros. eapply IH. apply REL. apply REL0. now apply H0. + + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. +Qed. + +#[global] Instance eq_proper_rutt {E1 E2 R1 R2 REv RAns} + (RR : R1 -> R2 -> Prop): + Proper (eq_itree eq ==> eq_itree eq ==> iff) (@rutt E1 E2 R1 R2 REv RAns RR). +Proof. + unfold rutt. intros t1 t1' Ht1 t2 t2' Ht2. + apply eq_proper_ruttC; auto. +Qed. + #[global] Instance rutt_Proper_R2 {E1 E2 R1 R2}: Proper (eq_REv (* REv *) ==> eq_RAns (* RAns *) @@ -142,33 +177,66 @@ Qed. ==> eq_itree eq (* t2 *) ==> iff) (@rutt E1 E2 R1 R2). Proof. - clear. intros REv1 REv2 HREv RAns1 RAns2 HRAns RR1 RR2 HRR t1 t1' Ht1 t2 t2' Ht2. - split; intros Hrutt. - - rewrite <- HREv, <- HRAns, <- HRR; clear HREv REv2 HRAns RAns2 HRR RR2. - revert_until RR1. rcoinduction c cih. intros. - rstep in Hrutt; rstep in Ht1; rstep in Ht2. - hinduction Hrutt before cih; try solve [inv Ht1; inv Ht2; easy]; intros. - + inv Ht1; inv Ht2; try easy. now constructor. - + inv Ht1; inv Ht2; try easy. constructor. eapply cih; eauto. - + apply eqitF_inv_VisF_l in Ht1; - apply eqitF_inv_VisF_l in Ht2. crunch; simpobs; try easy. - constructor; eauto. intros. eapply cih. - apply H4. apply H2. now apply H0. - + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. - + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. - - rewrite HREv, HRAns, HRR; clear HREv REv1 HRAns RAns1 HRR RR1. - revert_until RR2. rcoinduction c cih. intros. - rstep in Hrutt; rstep in Ht1; rstep in Ht2. - hinduction Hrutt before cih; try solve [inv Ht1; inv Ht2; easy]; intros. - + inv Ht1; inv Ht2; try easy. now constructor. - + inv Ht1; inv Ht2; try easy. constructor. eapply cih; eauto. - + apply eqitF_inv_VisF_r in Ht1; - apply eqitF_inv_VisF_r in Ht2. crunch; simpobs; try easy. - constructor; eauto. intros. eapply cih. - apply H4. apply H2. now apply H0. - + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. - + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. -Qed. + intros REv1 REv2 HREv RAns1 RAns2 HRAns RR1 RR2 HRR t1 t1' Ht1 t2 t2' Ht2. + rewrite Ht1, Ht2. apply rutt_Proper_R; auto. +Qed. + +#[global] Instance eutt_proper_ruttC {E1 E2 R1 R2 REv RAns} + (RR : R1 -> R2 -> Prop) (c : Chain (@rutt_mon E1 E2 R1 R2 REv RAns)): + Proper (eutt eq ==> eutt eq ==> flip impl) (elem c RR). +Proof. + unfold Proper, respectful, flip, impl. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + rcbn; intros EQ. + genobs x' ox'; genobs y' oy'. + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + (* EqRet *) + + clear x' y' Heqox' Heqoy'. + genobs x ox. genret r1 or1. revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy. genret r2 or2. revert y Heqoy. + hinduction EQy before oy; try easy. + -- subst; intros [=<-] ? ?. constructor. auto. + -- intros. apply EqTauR; auto. eapply IHEQy; eauto. + * intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. + + (* EqTau *) + + clear x' y' Heqox' Heqoy'. + genobs x ox. gentau m1 om1. revert x Heqox. + hinduction EQx before ox; try easy. + * intros [=<-] ? ? ?. clear x Heqox. + genobs y oy. gentau m2 om2. revert y Heqoy. + hinduction EQy before oy; try easy. + -- intros [=<-] ? ?. to_rmon_core. constructor. eapply IH; eauto. + -- intros. apply EqTauR; auto. eapply IHEQy; eauto. + -- intros [=<-] ? ?. + * intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. + * shelve. (* EQx TauR case for Tau *) + + (* EqVis *) + + clear x' y' Heqox' Heqoy'. + genobs x ox. genvis e1 k1 ot1. revert x Heqox. + hinduction EQx before ox; try easy. + * intros. apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + clear x Heqox. + genobs y oy. genvis e2 k2 ot2. revert y Heqoy. + hinduction EQy before oy; try easy. + -- intros. apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst. + constructor; auto. intros. eapply IH. apply H1. apply H2. eauto. + -- intros. apply EqTauR; auto. eapply IHEQy; eauto. + * intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. + * shelve. (* EQx TauR case for Vis *) + + (* EqTauL *) + + shelve. + + (* EqTauR *) + + shelve. +Admitted. Lemma rutt_cong_eutt {E1 E2 R1 R2}: forall REv RAns RR (t1: itree E1 R1) t1' (t2: itree E2 R2), @@ -184,9 +252,9 @@ Proof. rcoinduction c cih; intros t1 t1' Heutt t2 Hrutt. rstep in Hrutt. rewrite (itree_eta t1) in Heutt. - rewrite (itree_eta t2). + to_rmon. rewrite (itree_eta t2). - move Hrutt before CIH; revert_until Hrutt. + move Hrutt before cih; revert_until Hrutt. induction Hrutt as [r1 r2|m1 m2| |m1 ot2|]; clear t1 t2; intros t1' Heutt. (* EqRet: t1 = Ret r1 ≈ t1'; we can rewrite away the Taus with the euttge From 4d6b954ce41d49dd02fa2126a357cd512e08f808 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 10 Apr 2026 17:38:42 -0400 Subject: [PATCH 116/189] Progress, though slow. Continuing. --- .gitignore | 3 +- theories/Eq/Eqit.v | 32 ++++++++++++--- theories/Eq/RuttFacts.v | 86 +++++++++++++++++++++++++---------------- 3 files changed, 81 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index 041b4399..178181ed 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,5 @@ tutorial/imp_test.mli *.install .mcp.json -rocq_mcp_cache_8675_.v \ No newline at end of file +rocq_mcp_cache_8675_.v +rocq_mcp_cache_85046_.v diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 1ccfe594..728a2182 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -283,12 +283,34 @@ Ltac refold_in h := Ltac to_mon_core := match goal with -| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => - change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) + +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (observe ?t1) (observe ?t2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (observe t1) (observe t2)) with (eqit_mon b1 b2 f R1 R2 RR t1 t2) -| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?con1 ?a1) (?con2 ?a2)] => - change (eqitF RR b1 b2 (f R1 R2 RR) (con1 a1) (con2 a2)) - with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) + +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (?con1 ?a1) (?con2 ?a2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (con1 a1) (con2 a2)) + with (eqit_mon b1 b2 f R1 R2 RR + (go (con1 a1)) (go (con2 a2))) + +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (?con ?a) (observe ?t2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (con a) (observe t2)) + with (eqit_mon b1 b2 f R1 R2 RR + (go (con a)) t2) + +| |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (observe ?t1) (?con ?a)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (observe t1) (con a)) + with (eqit_mon b1 b2 f R1 R2 RR + t1 (go (con a))) + end. Ltac under_forall' tac := diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 549bd03c..b1b2b08c 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -181,9 +181,9 @@ Proof. rewrite Ht1, Ht2. apply rutt_Proper_R; auto. Qed. -#[global] Instance eutt_proper_ruttC {E1 E2 R1 R2 REv RAns} +#[global] Instance euttge_proper_ruttC {E1 E2 R1 R2 REv RAns} (RR : R1 -> R2 -> Prop) (c : Chain (@rutt_mon E1 E2 R1 R2 REv RAns)): - Proper (eutt eq ==> eutt eq ==> flip impl) (elem c RR). + Proper (euttge eq ==> euttge eq ==> flip impl) (elem c RR). Proof. unfold Proper, respectful, flip, impl. tower induction. @@ -194,49 +194,64 @@ Proof. induction EQ; intros. (* EqRet *) - + clear x' y' Heqox' Heqoy'. + - clear x' y' Heqox' Heqoy'. genobs x ox. genret r1 or1. revert x Heqox. hinduction EQx before ox; try easy. - * intros; subst; inv Heqor1. clear x Heqox. + + intros; subst; inv Heqor1. clear x Heqox. genobs y oy. genret r2 or2. revert y Heqoy. hinduction EQy before oy; try easy. - -- subst; intros [=<-] ? ?. constructor. auto. - -- intros. apply EqTauR; auto. eapply IHEQy; eauto. - * intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. + * subst; intros [=<-] ? ?. constructor. auto. + * intros. apply EqTauR; auto. eapply IHEQy; eauto. + + intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. (* EqTau *) - + clear x' y' Heqox' Heqoy'. + - clear x' y' Heqox' Heqoy'. genobs x ox. gentau m1 om1. revert x Heqox. hinduction EQx before ox; try easy. - * intros [=<-] ? ? ?. clear x Heqox. + + intros [=<-] ? ?. genobs y oy. gentau m2 om2. revert y Heqoy. hinduction EQy before oy; try easy. - -- intros [=<-] ? ?. to_rmon_core. constructor. eapply IH; eauto. - -- intros. apply EqTauR; auto. eapply IHEQy; eauto. - -- intros [=<-] ? ?. - * intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. - * shelve. (* EQx TauR case for Tau *) + * intros [=<-] ? ?. to_rmon_core. intros ? ?. rcbn. constructor. eapply IH; eauto. + * intros. apply EqTauR; auto. eapply IHEQy; eauto. + + intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. (* EqVis *) - + clear x' y' Heqox' Heqoy'. + - clear x' y' Heqox' Heqoy'. genobs x ox. genvis e1 k1 ot1. revert x Heqox. hinduction EQx before ox; try easy. - * intros. apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + + intros. apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. clear x Heqox. genobs y oy. genvis e2 k2 ot2. revert y Heqoy. hinduction EQy before oy; try easy. - -- intros. apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst. - constructor; auto. intros. eapply IH. apply H1. apply H2. eauto. - -- intros. apply EqTauR; auto. eapply IHEQy; eauto. - * intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. - * shelve. (* EQx TauR case for Vis *) + * intros. apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst. + constructor; auto. intros. eapply IH. apply (REL a). apply (REL0 b). apply H0; auto. + * intros. apply EqTauR; auto. eapply IHEQy; eauto. + + intros; subst. apply EqTauL; auto. eapply IHEQx; eauto. (* EqTauL *) - + shelve. + - edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + apply EqTauL; auto. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t1)) by (now step). + unstep; eapply euttge_tau_inv; eauto. (* EqTauR *) - + shelve. -Admitted. + - edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + apply EqTauR; auto. + eapply IHEQ; eauto. + assert (euttge eq (Tau x0) (Tau t2)) by (now step). + unstep; eapply euttge_tau_inv; eauto. +Qed. + +#[global] Instance euttge_proper_rutt {E1 E2 R1 R2 REv RAns} + (RR : R1 -> R2 -> Prop): + Proper (euttge eq ==> euttge eq ==> flip impl) (@rutt E1 E2 R1 R2 REv RAns RR). +Proof. + unfold rutt. intros t1 t1' Ht1 t2 t2' Ht2. + apply euttge_proper_ruttC; auto. +Qed. Lemma rutt_cong_eutt {E1 E2 R1 R2}: forall REv RAns RR (t1: itree E1 R1) t1' (t2: itree E2 R2), @@ -260,22 +275,25 @@ Proof. (* EqRet: t1 = Ret r1 ≈ t1'; we can rewrite away the Taus with the euttge closure and finish immediately with EqRet. *) * apply eutt_inv_Ret_l in Heutt. rewrite Heutt. - gfinal; right; pstep. now apply EqRet. - + now constructor. (* EqTau: The hardest case. When Heutt is EqTauL then we lack information to proceed, which requires that [desobs m1]. We then have to restart analyzing based on m1; the Ret case repeats EqRet above, while the Vis case repeats EqVis below. *) - * punfold Heutt; red in Heutt; cbn in Heutt. - rewrite itree_eta. pclearbot. fold_ruttF H. - remember (TauF m1) as ot1; revert m1 m2 H Heqot1. - induction Heutt as [|m1_bis m1'| |m1_bis ot1' _|t1_bis m1']; + * step in Heutt. + rewrite itree_eta. step in H. rcbn in H. + remember (observe (Tau m1)) as ot1; revert m1 m2 H Heqot1. + induction Heutt; intros * Hrutt Heqot1; clear t1'; try discriminate. - + inv Heqot1. pclearbot. gfinal; right; pstep; red. - apply EqTau. right. now apply (CIH m1). - + inv Heqot1. rewrite (itree_eta m1) in Hrutt. + + inv Heqot1. + apply EqTau. unstep in Hrutt. eapply cih; eauto. + + inv Heqot1. to_rmon in Hrutt. rewrite (itree_eta m1) in Hrutt. desobs m1 Hm1; clear m1 Hm1. - { fold_eqitF Heutt. apply eutt_inv_Ret_l in Heutt. + { + change (eqitF eq true true (eqit true true eq) (RetF r) ot2) + with (eqit_mon true true (@eqit E1 true true) R1 R1 eq (Ret r) (go ot2)) in Heutt. + (* TODO: NEED TO STEP IN HEUTT *) + apply eutt_inv_Ret_l in Heutt. rewrite Heutt, tau_euttge. gfinal; right. eapply paco2_mon_bot; eauto. } { apply rutt_inv_Tau_l in Hrutt. eapply IHHeutt; eauto. } { clear IHHeutt. remember (VisF e k) as m1; revert Heqm1. From e35d4d32e6aa6daaa45e64db75ae39e003a221e2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 13 Apr 2026 17:06:34 -0400 Subject: [PATCH 117/189] Done with RuttFacts, moving on --- theories/Eq/RuttFacts.v | 239 +++++++++++++++++++--------------------- 1 file changed, 115 insertions(+), 124 deletions(-) diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index b1b2b08c..5d64a16f 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -259,80 +259,89 @@ Lemma rutt_cong_eutt {E1 E2 R1 R2}: t1 ≈ t1' -> rutt REv RAns RR t1' t2. Proof. - (* First by coinduction; then do an induction on Hrutt to expose the ruttF - linking t1 and t2; then an induction on Heutt to expose the relation - between t1 and t1'. Finally, explore ruttF until landing on an rutt where - the t1/t1' relation can be substituted by CIH, and conclude. *) intros * Hrutt Heutt; revert t1 t1' Heutt t2 Hrutt. rcoinduction c cih; intros t1 t1' Heutt t2 Hrutt. - rstep in Hrutt. - rewrite (itree_eta t1) in Heutt. - to_rmon. rewrite (itree_eta t2). - + rstep in Hrutt. + rewrite (itree_eta t1') in *. + remember (observe t1) as ot1 eqn:Hot1. + remember (observe t2) as ot2 eqn:Hot2. move Hrutt before cih; revert_until Hrutt. - induction Hrutt as [r1 r2|m1 m2| |m1 ot2|]; clear t1 t2; intros t1' Heutt. - - (* EqRet: t1 = Ret r1 ≈ t1'; we can rewrite away the Taus with the euttge - closure and finish immediately with EqRet. *) - * apply eutt_inv_Ret_l in Heutt. rewrite Heutt. - now constructor. - (* EqTau: The hardest case. When Heutt is EqTauL then we lack information to - proceed, which requires that [desobs m1]. We then have to restart - analyzing based on m1; the Ret case repeats EqRet above, while the Vis - case repeats EqVis below. *) - * step in Heutt. - rewrite itree_eta. step in H. rcbn in H. - remember (observe (Tau m1)) as ot1; revert m1 m2 H Heqot1. - induction Heutt; - intros * Hrutt Heqot1; clear t1'; try discriminate. - + inv Heqot1. - apply EqTau. unstep in Hrutt. eapply cih; eauto. - + inv Heqot1. to_rmon in Hrutt. rewrite (itree_eta m1) in Hrutt. - desobs m1 Hm1; clear m1 Hm1. - { - change (eqitF eq true true (eqit true true eq) (RetF r) ot2) - with (eqit_mon true true (@eqit E1 true true) R1 R1 eq (Ret r) (go ot2)) in Heutt. - (* TODO: NEED TO STEP IN HEUTT *) - apply eutt_inv_Ret_l in Heutt. - rewrite Heutt, tau_euttge. gfinal; right. eapply paco2_mon_bot; eauto. } - { apply rutt_inv_Tau_l in Hrutt. eapply IHHeutt; eauto. } - { clear IHHeutt. remember (VisF e k) as m1; revert Heqm1. - induction Heutt as [| |U1 e1 k1 k1' Hk1k1'| |]; intros; try discriminate. - - symmetry in Heqm1; dependent destruction Heqm1. - rewrite tau_euttge, (itree_eta m2). - punfold Hrutt; red in Hrutt; cbn in Hrutt. - remember (VisF e1 k1) as m1; revert Heqm1. - induction Hrutt; intros; try discriminate. - * dependent destruction Heqm1. - gfinal; right. pstep; red; cbn. - apply EqVis; auto. intros v1 v2 HAns. specialize (H0 v1 v2 HAns). - hnf in H0; hnf. pclearbot; right. apply (CIH (k1 v1)); auto. - apply Hk1k1'. - * idtac. rewrite tau_euttge, (itree_eta t2). now apply IHHrutt. - - idtac. rewrite tau_euttge, itree_eta; now apply IHHeutt. } - + inv Heqot1. gfinal; right. pstep; red. apply EqTau. right. - fold_eqitF Heutt. rewrite tau_euttge in Heutt. now apply (CIH m1). - - (* EqVis: Similar to EqRet, but we don't have t1' ≳ Vis e1 k1 because the - continuations are "only" ≈. The up-to-eutt principle that enforces Vis - steps could work, but we don't have it for rutt. Instead we peel the Tau - layers off t1' with a manual induction. *) - * rewrite itree_eta. gfinal; right; pstep. - rename H0 into HAns. punfold Heutt; red in Heutt; cbn in Heutt. - remember (VisF e1 k1) as m1; revert Heqm1. - induction Heutt; intros; try discriminate. - + dependent destruction Heqm1. - apply EqVis; auto. intros a b HAns'. specialize (HAns a b HAns'). - hnf in HAns; hnf. pclearbot; right. apply (CIH (k1 a)); auto. apply REL. - + now apply EqTauL, IHHeutt. - - (* EqTauL: We get a very strong IHHrutt at the ruttF level, which we can - apply immediately; then handle the added Tau in ≈, which is trivial. *) - * apply IHHrutt. rewrite <- itree_eta. now rewrite <- tau_eutt. - - (* EqTauR: Adding a Tau on the side of t2 changes absolutely nothing to the - way we rewrite t1, so we can follow down and recurse. *) - * rewrite tau_euttge. rewrite (itree_eta t0). now apply IHHrutt. + induction Hrutt as [r1 r2|m1 m2| |m1 ot2'|]; intros tt1 tt1' Heutt' tt2 Hot1' Hot2'. + - (* EqRet *) + step in Heutt'. cbn in Heutt'. + rewrite <- Hot1' in Heutt'. clear Hot1' Hot2' tt1 tt2. + remember (RetF r1) as oRetL eqn:HoRetL. + induction Heutt'; try discriminate. + + inv HoRetL. now constructor. + + apply EqTauL. now apply IHHeutt'. + - (* EqTau *) + step in Heutt'. cbn in Heutt'. + rewrite <- Hot1' in Heutt'. clear tt1 Hot1'. + clear tt2 Hot2'. + step in H. rcbn in H. + remember (TauF m1) as oTauL eqn:HoTauL. + revert m1 m2 H HoTauL. + induction Heutt' as [r1 r2 _|m1' m1''|U' e1 k1 k1' _|t1' ot1' _ IHHeutt'|t1'' m1'']; + intros m1 m2 H HoTauL; try discriminate. + + (* EqTau of Heutt' *) + inv HoTauL. apply EqTau. apply cih with m1. + * apply REL. + * unfold rutt. step. exact H. + + (* EqTauL of Heutt': need to case on the head of m1 *) + inv HoTauL. + destruct (observe m1) as [r1|m1_body|U1 e1 k1] eqn:Hobs_m1. + * (* m1 = Ret r1 *) + remember (RetF r1) as oRetL eqn:HoRetL. + clear Hobs_m1 m1 IHIHHeutt'. + revert H. + induction IHHeutt'; try discriminate; intros. + ** inv HoRetL. + apply EqTauR. + remember (RetF r1) as oRetL2 eqn:HoRetL2. + induction H; try discriminate. + *** inv HoRetL2. constructor. now subst. + *** apply EqTauR. now apply IHruttF. + ** apply EqTauL. apply IHIHHeutt'; auto. + * (* m1 = Tau m1_body *) + apply (IHIHHeutt' m1_body m2); auto. + apply ruttF_inv_tau_l in H. exact H. + * (* m1 = Vis e1 k1 *) + remember (VisF e1 k1) as oVisL eqn:HoVisL. + clear Hobs_m1 m1 IHIHHeutt'. + revert H. + induction IHHeutt'; try discriminate; intros. + ** symmetry in HoVisL; dependent destruction HoVisL. + apply EqTauR. + remember (VisF e k0) as oVisL2 eqn:HoVisL2. + induction H; try discriminate. + *** dependent destruction HoVisL2. + apply EqVis; auto. intros a b HAns. + apply cih with (k0 a). + **** apply REL. + **** apply H0; auto. + *** apply EqTauR. apply IHruttF; auto. + ** apply EqTauL. apply IHIHHeutt'; auto. + + (* EqTauR of Heutt' *) + apply EqTau. apply cih with m1. + * rewrite <- tau_eutt with (t:=m1). step. subst t1''. exact Heutt'. + * unfold rutt. step. exact H. + - (* EqVis *) + step in Heutt'. cbn in Heutt'. + rewrite <- Hot1' in Heutt'. clear tt1 Hot1' tt2 Hot2'. + remember (VisF e1 k1) as oVisL eqn:HoVisL. + induction Heutt'; try discriminate; intros. + + dependent destruction HoVisL. + apply EqVis; auto. intros a b HAns. + apply cih with (k1 a). + * apply REL. + * apply H0; auto. + + apply EqTauL. apply IHHeutt'; auto. + - (* EqTauL *) + eapply IHHrutt with (t1 := m1) (t1' := tt1') (t2 := tt2); auto. + rewrite <- tau_eutt with (t:=m1). rewrite <- Heutt'. + rewrite (itree_eta tt1). rewrite <- Hot1'. reflexivity. + - (* EqTauR *) + apply EqTauR. eapply IHHrutt; eauto. Qed. #[global] Instance rutt_Proper_R3 {E1 E2 R1 R2}: @@ -362,36 +371,6 @@ Context (REv : forall (A B : Type), E1 A -> E2 B -> Prop). Context (RAns : forall (A B : Type), E1 A -> A -> E2 B -> B -> Prop). Context (RR : R1 -> R2 -> Prop). -Inductive rutt_bind_clo (r : itree E1 R1 -> itree E2 R2 -> Prop) : - itree E1 R1 -> itree E2 R2 -> Prop := -| rbc_intro_h U1 U2 (RU : U1 -> U2 -> Prop) t1 t2 k1 k2 - (EQV: rutt REv RAns RU t1 t2) - (REL: forall u1 u2, RU u1 u2 -> r (k1 u1) (k2 u2)) - : rutt_bind_clo r (ITree.bind t1 k1) (ITree.bind t2 k2) -. -Hint Constructors rutt_bind_clo: core. - -Lemma rutt_clo_bind : - rutt_bind_clo <3= gupaco2 (rutt_ REv RAns RR) (euttge_trans_clo RR). -Proof. - intros rr. gcofix CIH. intros. destruct PR. - gclo; econstructor; auto_ctrans_eq. - 1,2: rewrite unfold_bind; reflexivity. - punfold EQV. unfold rutt_ in *. - hinduction EQV before CIH; intros; pclearbot; cbn; - repeat (change (ITree.subst ?k ?m) with (ITree.bind m k)). - - gclo. econstructor; auto_ctrans_eq. - 1,2: reflexivity. - eauto with paco. - - gstep. econstructor. eauto 7 with paco. - - gstep. econstructor; eauto 7 with paco. - intros. specialize (H0 a b H1). pclearbot. eauto 7 with paco. - - gclo. econstructor; auto_ctrans_eq; cycle -1; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. - - gclo. econstructor; auto_ctrans_eq; cycle -1; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind. reflexivity. -Qed. - End RuttBind. Lemma rutt_bind {E1 E2 R1 R2 T1 T2} @@ -404,11 +383,27 @@ Lemma rutt_bind {E1 E2 R1 R2 T1 T2} rutt REv RAns RT (k1 r1) (k2 r2)) -> rutt REv RAns RT (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. ginit. - (* For some reason [guclo] fails, apparently trying to infer the type in a - context with less information? *) - eapply gpaco2_uclo; [|eapply rutt_clo_bind|]; eauto with paco. - econstructor; eauto. intros; subst. gfinal. right. apply H0. eauto. + revert t1 t2. rcoinduction c cih. intros t1 t2 Hrutt EQK. + rstep in Hrutt. + genobs t1 ot1. genobs t2 ot2. + hinduction Hrutt before cih; intros. + - (* Ret *) + rewrite !observe_bind; simpobs. + specialize (EQK _ _ H). + rstep in EQK. now do 2 rstep. + - (* Tau *) + rewrite !observe_bind; simpobs. + apply EqTau. apply cih; auto. + - (* Vis *) + rewrite !observe_bind; simpobs. + apply EqVis; auto. intros a b HAns. + apply cih; auto. now apply H0. + - (* TauL *) + rewrite observe_bind; simpobs. + apply EqTauL. apply IHHrutt; auto. + - (* TauR *) + setoid_rewrite observe_bind at 2; simpobs. + apply EqTauR. apply IHHrutt; auto. Qed. @@ -421,36 +416,32 @@ Section RuttMrec. rutt (sum_prerel RPreInv RPre) (sum_postrel RPostInv RPost) (fun (a : A) (b : B) => RPostInv A B d1 a d2 b) (bodies1 A d1) (bodies2 B d2) ). - Lemma interp_mrec_rutt (R1 R2 : Type) (RR : R1 -> R2 -> Prop) : forall (t1 : itree (D1 +' E1) R1) (t2 : itree (D2 +' E2) R2), rutt (sum_prerel RPreInv RPre) (sum_postrel RPostInv RPost) RR t1 t2 -> rutt RPre RPost RR (interp_mrec bodies1 t1) (interp_mrec bodies2 t2). Proof. - ginit. gcofix CIH. - intros t1 t2 Ht12. punfold Ht12. red in Ht12. + rcoinduction c cih. + intros t1 t2 Ht12. rstep in Ht12. remember (observe t1) as ot1. remember (observe t2) as ot2. - hinduction Ht12 before r; intros. + hinduction Ht12 before R1; intros; to_rmon. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. - gstep. red. cbn. constructor. auto. + repeat rewrite unfold_interp_mrec. cbn. now constructor. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. - repeat rewrite unfold_interp_mrec. cbn. gstep. constructor. - pclearbot. gfinal. eauto. + repeat rewrite unfold_interp_mrec. cbn. constructor; now apply cih. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. repeat rewrite unfold_interp_mrec. cbn. inv H. - + apply inj_pair2 in H1, H4. subst. gstep. constructor. - gfinal. left. eapply CIH. + + apply inj_pair2 in H1, H4. subst. constructor. + eapply cih. eapply rutt_bind; eauto. - intros. cbn in H. clear - H H0. specialize (H0 r1 r2 (sum_postrel_inl _ _ _ _ _ _ _ _ H)). - pclearbot. auto. - + apply inj_pair2 in H1, H4. subst. gstep. constructor. - auto. intros. repeat rewrite tau_euttge. gfinal. left. eapply CIH. - clear - H0 H. specialize (H0 a b (sum_postrel_inr _ _ _ _ _ _ _ _ H)). - pclearbot. auto. - - apply simpobs in Heqot1. rewrite Heqot1. rewrite unfold_interp_mrec at 1. cbn. - rewrite tau_euttge. auto. + intros. cbn in H. clear - H H0. apply H0. now constructor. + + apply inj_pair2 in H1, H4. subst. constructor. + auto. intros. repeat rewrite tau_euttge. eapply cih. + clear - H0 H. apply H0. now constructor. + - apply simpobs in Heqot1. rewrite Heqot1. rewrite unfold_interp_mrec at 1. + cbn. constructor. now apply IHHt12. - apply simpobs in Heqot2. rewrite Heqot2. setoid_rewrite unfold_interp_mrec at 2. - cbn. rewrite tau_euttge. auto. + cbn. constructor. now apply IHHt12. Qed. Lemma mrec_rutt (A B : Type) (d1 : D1 A) (d2 : D2 B) : From e8ac446f3a1a06121f934759907dc58043352261 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 13 Apr 2026 18:02:58 -0400 Subject: [PATCH 118/189] Added TODOs --- REFACTOR-TODOS.md | 17 ++++++ dune-errors.txt | 146 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 REFACTOR-TODOS.md create mode 100644 dune-errors.txt diff --git a/REFACTOR-TODOS.md b/REFACTOR-TODOS.md new file mode 100644 index 00000000..57f19a84 --- /dev/null +++ b/REFACTOR-TODOS.md @@ -0,0 +1,17 @@ +- unify how we deal with each node of a tree. + +- rets: a constructor pattern that either concludes or leads to computation. +- taus: coinductive conclusion. +- single tau: simple inductive conclusion. +- vis: this is the tricky one, and the strongest reason for a unified front. +there is some inv_Vis, some dependent destruction, some vis_gen... we need a +single pipeline for concluding proofs about vis nodes. + - the 'refine match' pattern that appears here is not lovely either. + See Finite.v. +- [ ] Remove "Add Parametric Morphism" +- [ ] Generally clean up Eqit.v. + - [ ] rename and redo sections + - [ ] keep building tests until rewriting robustness is clear + - [ ] organize file + - [ ] remove add parametric morphism +- [ ] rest of rtodos \ No newline at end of file diff --git a/dune-errors.txt b/dune-errors.txt new file mode 100644 index 00000000..fdbb8736 --- /dev/null +++ b/dune-errors.txt @@ -0,0 +1,146 @@ +Warning: Dune's Coq Build Language is deprecated, and will be removed in Dune +3.24. Please upgrade to the new Rocq Build Language. +Hint: To disable this warning, add the following to your dune-project file: +(warnings (deprecated_coq_lang disabled)) + +File "./examples/ITreePredicatesExample.v", line 103, characters 4-9: +Error: No matching clauses for match. + + +File "./examples/Nimp.v", line 32, characters 0-53: +Error: Notation "_ --> _" is already defined at level 55 with arguments +constr at next level, constr at level 55 while it is now required to be +at level 80 with arguments constr at next level, constr at level 55. + + +File "./extra/IForest.v", line 295, characters 4-14: +Error: +Could not find an instance for "pacotac_internal.paco_class + (gfp (eqit_mon false false) R R Logic.eq x + y)" +in +environment: +R : Type +F : Type -> Type +E : Type -> Type +h_spec : forall T : Type, E T -> iforest F T +RR : relation R +r : itree E R -> itree F R -> Prop +CIH : + forall x y : itree E R, + x ≅ y -> forall y0 : itree F R, interp_iforest h_spec R RR x y0 -> r y y0 +x, y : itree E R +eq : gfp (eqit_mon false false) R R Logic.eq x y +t : itree F R +H : + interp_iforestF h_spec RR (upaco2 (interp_iforest_ E F h_spec R RR) bot2) + (⊙ x) t +_typ_ := ?_typ_ : Type +_lem_ := ?_lem_ : _typ_ +_X_ : gfp (eqit_mon false false) R R Logic.eq x y + + + +File "./extra/Secure/SecureEqHalt.v", line 114, characters 0-86: +Error: +The following term contains unresolved implicit arguments: + {| L := nat; leq := fun n m : nat => n <= m |} +More precisely: +- ?CompleteLattice: Cannot infer the implicit parameter CompleteLattice of + lattice.leq whose type is "CompleteLattice nat" (no type class instance + found) in environment: + n, m : nat + + +File "./extra/Secure/SecureEqHaltProgInsens.v", line 106, characters 0-86: +Error: +The following term contains unresolved implicit arguments: + {| L := nat; leq := fun n m : nat => n <= m |} +More precisely: +- ?CompleteLattice: Cannot infer the implicit parameter CompleteLattice of + lattice.leq whose type is "CompleteLattice nat" (no type class instance + found) in environment: + n, m : nat + + +File "./theories/Events/ExceptionFacts.v", line 56, characters 2-7: +Error: No matching clauses for match. + + +File "./theories/Events/FailFacts.v", line 151, characters 2-7: +Error: No matching clauses for match. + + +File "./theories/Events/MapDefaultFacts.v", line 182, characters 4-9: +Error: No matching clauses for match. + + +File "./theories/Interp/Traces.v", line 87, characters 4-13: +Error: +Could not find an instance for "pacotac_internal.paco_class + (gfp (sutt_mon eq) (⊙ t1) (⊙ t2))" +in +environment: +E : Type -> Type +R : Type +r : R +t2, t1 : itree E R +H : gfp (sutt_mon eq) (⊙ t1) (⊙ t2) +Heqi : RetF r = ⊙ t1 +_typ_ := ?_typ_ : Type +_lem_ := ?_lem_ : _typ_ +_X_ : gfp (sutt_mon eq) (⊙ t1) (⊙ t2) + + + +File "./theories/Props/Finite.v", line 187, characters 4-14: +Error: +Could not find an instance for "pacotac_internal.paco_class + (gfp (eqit_mon true true) A B R t u2)" +in +environment: +E : Type -> Type +A : Type +B : Type +R : A -> B -> Prop +a : A +t : itree E A +H : ⊙ t = RetF a +u2 : itree E B +EQ : gfp (eqit_mon true true) A B R t u2 +_typ_ := ?_typ_ : Type +_lem_ := ?_lem_ : _typ_ +_X_ : gfp (eqit_mon true true) A B R t u2 + + + +File "./theories/Props/Infinite.v", line 61, characters 4-14: +Error: +Could not find an instance for "pacotac_internal.paco_class + (gfp (eqit_mon true true) X X R x y)" +in +environment: +E : Type -> Type +X : Type +R : X -> X -> Prop +r : itree E X -> Prop +CH : forall x y : itree E X, x ≈⟨ R ⟩ y -> any_infinite x -> r y +x, y : itree E X +H0 : gfp (eqit_mon true true) X X R x y +H1 : any_infinite x +_typ_ := ?_typ_ : Type +_lem_ := ?_lem_ : _typ_ +_X_ : gfp (eqit_mon true true) X X R x y + + + +File "./tutorial/AsmCombinators.v", line 120, characters 0-47: +Error: +The following term contains unresolved implicit arguments: + (fun A : nat => pure_asm id) +More precisely: +- ?c: Cannot infer an internal placeholder of type + "CompleteLattice (fin A)" (no type class instance found) in + environment: + A : nat + From 840dc6666e963284ad0a92dcbade58a564a2f9c5 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 13 Apr 2026 18:03:29 -0400 Subject: [PATCH 119/189] Done through Finite.v --- theories/Props/Finite.v | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/theories/Props/Finite.v b/theories/Props/Finite.v index 67f44a30..4feb0777 100644 --- a/theories/Props/Finite.v +++ b/theories/Props/Finite.v @@ -9,7 +9,6 @@ From ITree Require Import Leaf. From ITree.Events Require Import Nondeterminism Exception. (* For counterexamples *) -From Paco Require Import paco. From Stdlib Require Import Morphisms Basics Program.Equality. Import ITree. Import ITreeNotations. @@ -184,16 +183,15 @@ Proof. intros * EQ FIN; revert u EQ. induction FIN; intros u2 EQ. - - punfold EQ. - red in EQ; rewrite H in EQ; clear H. + - step in EQ. + rewrite H in EQ; clear H. remember (RetF a); genobs u2 ou. - hinduction EQ before R; intros; try discriminate; eauto with itree. - - punfold EQ; red in EQ; rewrite H in EQ; clear H. - remember (TauF u); genobs u2 ou2. - hinduction EQ before R; intros; try discriminate; pclearbot; inv Heqi; eauto with itree. - - punfold EQ; red in EQ; rewrite H in EQ; clear H. + hinduction EQ before R; intros; try easy; eauto with itree. + - step in EQ; rewrite H in EQ; clear H. + apply IHFIN. rewrite <- tau_euttge. now step. + - step in EQ; rewrite H in EQ; clear H. remember (VisF e k); genobs u2 ou2. - hinduction EQ before R; intros; try discriminate; pclearbot. + hinduction EQ before R; intros; try easy. + revert H0 H1. refine (match Heqi in _ = u return match u with VisF e0 k0 => _ | _ => False end with eq_refl => _ end). eauto with itree. @@ -227,16 +225,14 @@ Proof. intros * EQ FIN; revert u EQ. induction FIN; intros u2 EQ. - - punfold EQ. - red in EQ; rewrite H in EQ; clear H. + - step in EQ. rewrite H in EQ; clear H. remember (RetF a); genobs u2 ou. - hinduction EQ before R; intros; try discriminate; eauto with itree. - - punfold EQ; red in EQ; rewrite H in EQ; clear H. - remember (TauF u); genobs u2 ou2. - hinduction EQ before R; intros; try discriminate; pclearbot; inv Heqi; eauto with itree. - - punfold EQ; red in EQ; rewrite H in EQ; clear H. + hinduction EQ before R; intros; try easy; eauto with itree. + - step in EQ; rewrite H in EQ; clear H. + apply IHFIN. rewrite <- tau_euttge. now step. + - step in EQ; rewrite H in EQ; clear H. remember (VisF e k); genobs u2 ou2. - hinduction EQ before R; intros; try discriminate; pclearbot. + hinduction EQ before R; intros; try easy. + revert x FIN IHFIN. refine (match Heqi in _ = u return match u with VisF e0 k0 => _ | _ => False end with eq_refl => _ end). eauto with itree. @@ -368,17 +364,17 @@ Proof. revert t k Hequ. induction FIN; intros t' k' ->; rename t' into t. - unfold observe in H; cbn in H. - desobs t EQ; cbn in *; try congruence. + desobs t teq; cbn in *; try congruence. split; eauto with itree. - unfold observe in H; cbn in H. - desobs t EQ; cbn in *; try congruence. + desobs t teq; cbn in *; try congruence. split; eauto with itree. inversion H; clear H; symmetry in H1. edestruct IHFIN as (? & ? & ? & ?). apply H1. split; eauto with itree. - unfold observe in H; cbn in H. - desobs t EQ; cbn in *; try congruence. + desobs t teq; cbn in *; try congruence. split; eauto with itree. revert x FIN IHFIN. refine (match H in _ = u return match u with VisF e0 k0 => _ | _ => False end with eq_refl => _ end). @@ -499,7 +495,7 @@ Module Counterexamples. (** * Counterexamples *) -(** Counterexamples to statements that could be expected to be true at firt glance. *) +(** Counterexamples to statements that could be expected to be true at first glance. *) (** [all_finite] does _not_ entail [any_finite]. From ff373c93d1320c658a16aebf797ec9ff39c65b98 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 14 Apr 2026 10:06:17 -0400 Subject: [PATCH 120/189] Progress, switching for meeting --- .Makefile.d | 8 +- theories/Eq/Eqit.v | 3 +- theories/Interp/Traces.v | 31 +++--- theories/Props/Cofinite.v | 16 ++-- theories/Props/EuttNoRet.v | 110 +++++++++++----------- theories/Props/Infinite.v | 187 ++++++++++++++++++++----------------- 6 files changed, 185 insertions(+), 170 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index f161cfdf..898494c3 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -76,8 +76,8 @@ theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite. theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/Eq/Shallow.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/Eq/Shallow.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -100,8 +100,8 @@ theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recu theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 728a2182..da3b09dc 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -144,8 +144,7 @@ Section eqit. - intros ?; apply Hsim; auto. Qed. - (** Rocq is smart enough to figure out that [eqitF_mono] proves [eqit_] is - monotone. *) + (* The monotone relation `b`. `eqit` is `gfp b`. *) Definition eqit_mon b1 b2 : mon (forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) := {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. diff --git a/theories/Interp/Traces.v b/theories/Interp/Traces.v index 4808b211..5132a2bc 100644 --- a/theories/Interp/Traces.v +++ b/theories/Interp/Traces.v @@ -1,8 +1,7 @@ (** * ITrees as sets of traces *) (* begin hide *) -From Paco Require Import - paco. +From Coinduction Require Import all. From ITree Require Import Basics.Utils @@ -10,8 +9,7 @@ From ITree Require Import Core.ITreeDefinition Eq.Eqit Eq.SimUpToTaus - Eq.Shallow - Eq.Paco2. + Eq.Shallow. Local Open Scope itree. (* end hide *) @@ -84,24 +82,24 @@ Proof. red. intros. red in H0. remember (observe t1). generalize dependent t1. generalize dependent t2. induction H0; intros; try solve [constructor]. - - punfold H. rewrite <- Heqi in H. + - sstep in H. rewrite <- Heqi in H. remember (RetF _). remember (observe t2). generalize dependent t2. induction H; intros; try inv Heqi0; red; rewrite <- Heqi1; constructor. eapply IHsuttF; eauto. - apply IHis_traceF with (t1:=t); auto. apply sutt_inv_tau_left. red. red in H. rewrite <- Heqi in H. auto. - - punfold H. rewrite <- Heqi in H. + - sstep in H. rewrite <- Heqi in H. remember (VisF _ _). remember (observe t2). generalize dependent t2. induction H; intros; try discriminate. + inv_Vis. subst. red. rewrite <- Heqi1. constructor. + red. rewrite <- Heqi1. constructor. eapply IHsuttF; eauto. - - punfold H. rewrite <- Heqi in H. + - sstep in H. rewrite <- Heqi in H. remember (VisF _ _). remember (observe t2). generalize dependent t2. induction H; intros; try discriminate. - + inv_Vis. pclearbot. subst. red. rewrite <- Heqi1. constructor. + + inv_Vis. subst. red. rewrite <- Heqi1. constructor. eapply IHis_traceF; auto with itree. + red. rewrite <- Heqi1. constructor. apply IHsuttF; auto. Qed. @@ -132,10 +130,10 @@ Qed. Lemma trace_incl_sutt : forall {E R} (t1 t2 : itree E R), trace_incl t1 t2 -> sutt eq t1 t2. Proof. - intros E R. pcofix CIH. pstep. intros t1 t2 Hincl. + intros E R. scoinduction c CIH. intros t1 t2 Hincl. unfold trace_incl in *. unfold is_trace in *. destruct (observe t1). - - assert (H : is_traceF (RetF r0 : itreeF E R (itree E R)) (TRet r0)) by constructor. + - assert (H : is_traceF (RetF r : itreeF E R (itree E R)) (TRet r)) by constructor. apply Hincl in H. clear Hincl. destruct (observe t2); inv H. + constructor. auto. + constructor. @@ -143,7 +141,7 @@ Proof. generalize dependent t. induction H1; intros; try inv Heqt0; auto with itree. constructor. eapply IHis_traceF; eauto. - - constructor. right. apply CIH. intros. apply Hincl. constructor. auto. + - constructor. apply CIH. intros. apply Hincl. constructor. auto. - assert (H: is_traceF (VisF e k) (TEventEnd e)) by constructor. apply Hincl in H. destruct (observe t2); inv H. + constructor. @@ -158,10 +156,10 @@ Proof. * constructor. eapply IHis_traceF; eauto. intros. rewrite is_traceF_tau. apply Hincl; auto. * apply eq_trace_inv in Heqt0; destruct Heqt0 as [<- <-]. - subst. constructor. intro. right. apply CIH. intros. + subst. constructor. intro. apply CIH. intros. assert (is_traceF (VisF e k) (TEventResponse e x tr)) by (constructor; auto). apply Hincl in H1. inv H1. ddestruction. auto. - + ddestruction. constructor. intro. right. apply CIH. intros. + + ddestruction. constructor. intro. apply CIH. intros. assert (is_traceF (VisF e0 k) (TEventResponse e0 x tr)) by (constructor; auto). apply Hincl in H0. inv H0. ddestruction; auto. Qed. @@ -180,9 +178,10 @@ Proof. intros E R t1 t2 [? ?]. apply sutt_eutt. - apply trace_incl_sutt; auto. - apply trace_incl_sutt in H0. clear H. - generalize dependent t1. generalize dependent t2. pcofix CIH; pstep; intros. - punfold H0. induction H0; constructor; try red; pclearbot; eauto with paco itree. - right. rewrite itree_eta'. eauto with paco itree. + generalize dependent t1. generalize dependent t2. + scoinduction c CIH. intros t1 t2 H0. sstep in H0. + induction H0; constructor; eauto with itree. + apply (CIH t0 (go ot2)). apply EQTAUS. Qed. Theorem trace_eq_iff_eutt : forall {E R} (t1 t2 : itree E R), diff --git a/theories/Props/Cofinite.v b/theories/Props/Cofinite.v index 6f24ff66..b8ba3ca2 100644 --- a/theories/Props/Cofinite.v +++ b/theories/Props/Cofinite.v @@ -6,21 +6,25 @@ From ITree Require Import Props.Finite Props.Infinite. -From Paco Require Import paco. +From Coinduction Require Import all. Theorem not_all_infinite_any_finite {E A} (t : itree E A) : all_infinite t -> any_finite t -> False. Proof. - intros H1 H2. induction H2; punfold H1; inversion H1; try congruence. - all: pclearbot; rewrite H in H0; inversion H0; subst; auto. + intros H1 H2. induction H2; apply (gfp_fp all_infinite_mon) in H1; + cbn[all_infinite_mon body] in H1; unfold all_infinite_ in H1; + inversion H1; try congruence. + all: rewrite H in H0; inversion H0; subst; auto. ddestruction. exact (IHany_finite (H3 _)). Qed. Theorem not_any_infinite_all_finite {E A} (t : itree E A) : any_infinite t -> all_finite t -> False. Proof. - intros H1 H2; induction H2; punfold H1; inversion H1; try congruence. - - pclearbot. rewrite H in H0; inversion H0; subst; auto. - - pclearbot. rewrite H in H3. inversion H3; subst; ddestruction. + intros H1 H2; induction H2; apply (gfp_fp any_infinite_mon) in H1; + cbn[any_infinite_mon body] in H1; unfold any_infinite_ in H1; + inversion H1; try congruence. + - rewrite H in H0; inversion H0; subst; auto. + - rewrite H in H3. inversion H3; subst; ddestruction. exact (H2 _ H4). Qed. diff --git a/theories/Props/EuttNoRet.v b/theories/Props/EuttNoRet.v index 13d7f402..a527a6af 100644 --- a/theories/Props/EuttNoRet.v +++ b/theories/Props/EuttNoRet.v @@ -6,10 +6,11 @@ From ITree Require Import Axioms ITree ITreeFacts + Eq.Shallow Props.Infinite . -From Paco Require Import paco. +From Coinduction Require Import all. Import Monads. Import MonadNotation. @@ -27,20 +28,24 @@ Definition euttNoRet {E} {A B : Type} (ta : itree E A) (tb : itree E B) := Lemma euttNoRet_spin : forall (E : Type -> Type) (A B : Type), @euttNoRet E A B ITree.spin ITree.spin. Proof. - intros. pcofix CIH. pfold. red. cbn. constructor. right. - eauto. + intros. unfold euttNoRet. icoinduction c cih. cbn. constructor. exact cih. Qed. Lemma noret_bind_nop : forall (E : Type -> Type) (A B : Type) (t : itree E A) (f : A -> itree E B), all_infinite t -> euttNoRet t (t >>= f). Proof. - intros. einit. generalize dependent t. ecofix CIH. intros t Hdivt. pinversion Hdivt. - - specialize (itree_eta t) as Ht. rewrite <- H in Ht. - cbn. rewrite Ht. - assert (ITree.bind (Tau t0) f ≅ Tau (ITree.bind t0 f)); try apply bind_tau. - setoid_rewrite H1. etau. - - specialize (itree_eta t) as Ht. rewrite <- H in Ht. - cbn. rewrite Ht. rewrite bind_vis. evis. + intros E A B. unfold euttNoRet. icoinduction c cih. intros t f Hdiv. + apply (gfp_fp all_infinite_mon) in Hdiv. + cbn[all_infinite_mon body] in Hdiv. unfold all_infinite_ in Hdiv. + inversion Hdiv; subst. + - unfold bind, Monad_itree. + rewrite observe_bind. rewrite <- H. cbn. apply EqTau. + change (ITree.subst f t0) with (ITree.bind t0 f). + apply cih. auto. + - unfold bind, Monad_itree. + rewrite observe_bind. rewrite <- H. cbn. apply EqVis. + intros v. change (ITree.subst f (k v)) with (ITree.bind (k v) f). + apply cih. apply H0. Qed. Lemma euttNoRet_subrel : forall (E : Type -> Type) (A B : Type) (R : A -> B -> Prop) @@ -48,66 +53,60 @@ Lemma euttNoRet_subrel : forall (E : Type -> Type) (A B : Type) (R : A -> B -> P euttNoRet ta tb -> eutt R ta tb. Proof. intros. - eapply eutt_subrel with (R1 := fun a b => False); tauto. + eapply eqit_mono with (b1 := true) (b2 := true) (RR := fun _ _ => False); + try (repeat intro; contradiction); auto. Qed. Lemma all_infinite_euttNoRet : forall (E : Type -> Type) (A B : Type) (R : A -> B -> Prop) (ta : itree E A) (tb : itree E B), all_infinite ta -> eutt R ta tb -> euttNoRet ta tb. Proof. - (* oddly had trouble doing this with euttG, maybe I should reread the gpaco paper*) - intros E A B R. pcofix CIH. pstep. intros ta tb Hdiv Heutt. - punfold Heutt. unfold_eqit. dependent induction Heutt; pclearbot. - - exfalso. clear CIH. specialize (itree_eta ta) as Hta. - rewrite <- x0 in Hta. rewrite Hta in Hdiv. pinversion Hdiv. - - rewrite <- x0. rewrite <- x. constructor. right. - assert (m1 ≈ ta). - { specialize (itree_eta ta) as Hta. rewrite <- x0 in Hta. - rewrite Hta. rewrite tau_eutt. reflexivity. } - assert (m2 ≈ tb). - { specialize (itree_eta tb) as Htb. rewrite <- x in Htb. - rewrite Htb. rewrite tau_eutt. reflexivity. } - apply CIH; auto. - rewrite H. auto. - - rewrite <- x0. rewrite <- x. constructor. - intros. right. apply CIH; auto with itree. - specialize (itree_eta ta) as Hta. rewrite <- x0 in Hta. - rewrite Hta in Hdiv. pinversion Hdiv. - dependent destruction H2. apply H0. - - rewrite <- x. constructor; auto. eapply IHHeutt; eauto. - assert (t1 ≈ ta). - { specialize (itree_eta ta) as Hta. rewrite <- x in Hta. - rewrite Hta. rewrite tau_eutt. reflexivity. } - rewrite H. auto. - - rewrite <- x. constructor; auto. + intros E A B R. unfold euttNoRet. icoinduction c cih. intros ta tb Hdiv Heutt. + step in Heutt. cbn[eqit_mon body] in Heutt. unfold eqit_ in Heutt. + cbn[eqit_mon body]. unfold eqit_. + apply (gfp_fp all_infinite_mon) in Hdiv. + cbn[all_infinite_mon body] in Hdiv. unfold all_infinite_ in Hdiv. + dependent induction Heutt. + - exfalso. rewrite <- x0 in Hdiv. inversion Hdiv. + - rewrite <- x0. rewrite <- x. apply EqTau. apply cih. + + rewrite <- x0 in Hdiv. inversion Hdiv; subst. auto. + + auto. + - rewrite <- x0. rewrite <- x. apply EqVis. intros v. apply cih. + + rewrite <- x0 in Hdiv. inversion Hdiv; subst. ddestruction. apply H0. + + apply REL. + - rewrite <- x. apply EqTauL; auto. apply IHHeutt; auto. + rewrite <- x in Hdiv. inversion Hdiv; subst. + apply (gfp_fp all_infinite_mon) in H0. + cbn[all_infinite_mon body] in H0. unfold all_infinite_ in H0. exact H0. + - rewrite <- x. apply EqTauR; auto. Qed. Lemma euttNoRet_all_infinite : forall (E : Type -> Type) (A B : Type) (t1 : itree E A) (t2 : itree E B), euttNoRet t1 t2 -> all_infinite t1. Proof. - intros A B. pcofix CIH. intros. pfold. red. - punfold H0. - unfold_eqit. - dependent induction H0; try contradiction; pclearbot. - - rewrite <- x0. constructor. right. eapply CIH; eauto. - - rewrite <- x0. constructor. intros. right. eapply CIH; eauto. eapply REL. - - rewrite <- x. constructor. right. eapply CIH with (t2 := t2); eauto. - pfold. auto. - - eapply IHeqitF; eauto. + intros E A B. unfold all_infinite. coinduction c cih. intros t1 t2 H. + cbn[all_infinite_mon body]. unfold all_infinite_. + unfold euttNoRet in H. step in H. cbn[eqit_mon body] in H. unfold eqit_ in H. + dependent induction H; try contradiction. + - rewrite <- x0. constructor. apply cih with (t2 := m2). unfold euttNoRet. auto. + - rewrite <- x0. constructor. intros v. apply cih with (t2 := k2 v). + unfold euttNoRet. apply REL. + - rewrite <- x. constructor. apply cih with (t2 := t2). unfold euttNoRet. + step. cbn[eqit_mon body]. unfold eqit_. auto. + - eapply IHeqitF; eauto. Qed. Lemma euttNoRet_sym : forall (E : Type -> Type) (A B : Type) (t1 : itree E A) (t2 : itree E B), euttNoRet t1 t2 -> euttNoRet t2 t1. Proof. - intros E A B. pcofix CIH. intros. pfold. red. - punfold H0. unfold_eqit. - dependent induction H0; try contradiction; pclearbot. - - rewrite <- x0. rewrite <- x. constructor. right. auto. - - rewrite <- x0. rewrite <- x. constructor. intros. unfold id. - right. apply CIH. apply REL. - - rewrite <- x. constructor; auto. - - rewrite <- x. constructor; auto. + intros E A B. unfold euttNoRet. icoinduction c cih. intros t1 t2 H. + unfold euttNoRet in H. step in H. cbn[eqit_mon body] in H. unfold eqit_ in H. + dependent induction H; try contradiction. + - rewrite <- x0. rewrite <- x. apply EqTau. apply cih. auto. + - rewrite <- x0. rewrite <- x. apply EqVis. intros v. apply cih. apply REL. + - rewrite <- x. apply EqTauR; auto. + - rewrite <- x. apply EqTauL; auto. Qed. Lemma all_infinite_bind : forall (E : Type -> Type) (R U: Type) (t : itree E R) @@ -123,8 +122,9 @@ Lemma euttNoRet_trans : forall (E : Type -> Type) (A B C : Type) (t1 : itree E A euttNoRet t1 t2 -> euttNoRet t2 t3 -> euttNoRet t1 t3. Proof. intros. unfold euttNoRet in *. - apply eutt_subrel with (R1 := @rcompose A B C (fun a b => False) (fun b c => False) ). - - intros. inversion H1; contradiction. + eapply eqit_mono with (b1 := true) (b2 := true) + (RR := rcompose (fun (_:A)(_:B) => False) (fun (_:B)(_:C) => False)); auto. + - intros x y Hc. inversion Hc; contradiction. - eapply eqit_trans; eauto. Qed. diff --git a/theories/Props/Infinite.v b/theories/Props/Infinite.v index be296402..15b8244b 100644 --- a/theories/Props/Infinite.v +++ b/theories/Props/Infinite.v @@ -9,8 +9,6 @@ From Stdlib Require Import Morphisms RelationClasses. -From Paco Require Import paco. - From ITree Require Import Axioms Basics @@ -35,61 +33,61 @@ Definition any_infinite_ {E X} sim := fun t1 => @any_infiniteF E X sim (observe t1). #[global] Hint Unfold any_infinite_ : itree. -Lemma any_infiniteF_mono {E X} sim sim' x0 - (IN: any_infiniteF sim x0) - (LE: sim <1= sim'): - @any_infiniteF E X sim' x0. -Proof. - intros. induction IN; eauto with itree. +Lemma any_infinite__mono {E X} : +Proper (leq ==> leq) (@any_infinite_ E X). +Proof. + repeat red; intros. induction H0; + econstructor; eapply H; eauto. Qed. -Lemma any_infiniteF__mono {E X} : - monotone1 (@any_infinite_ E X). -Proof. - do 2 red. intros. eapply any_infiniteF_mono; eauto. -Qed. -#[global] Hint Resolve any_infiniteF__mono : paco. +Definition any_infinite_mon {E X} : mon (itree E X -> Prop) := + {| body := @any_infinite_ E X ; Hbody := any_infinite__mono |}. -Definition any_infinite {E A} : itree E A -> Prop := - paco1 (@any_infinite_ E A) bot1. +Definition any_infinite {E X} : itree E X -> Prop := + gfp any_infinite_mon. #[global] Instance any_infinite_proper_eutt {E X R} : Proper (eutt R ==> iff) (@any_infinite E X). Proof. - repeat intro. split. - - revert x y H. pcofix CH. intros. - punfold H0. unfold_eqit. pfold. red. punfold H1. red in H1. - induction H0. - + inversion H1. - + apply DivTau. inversion H1; subst. right. eapply CH. - red in H0. pclearbot. apply REL. - pclearbot. apply H0. - + inversion H1; subst. dependent destruction H3. eapply DivVis. - pclearbot. right. eapply CH. apply REL. eapply H0. - + apply IHeqitF. inversion H1; subst. - pclearbot. punfold H2. - + econstructor. left. pfold. red. - apply IHeqitF. apply H1. - - revert x y H. pcofix CH. intros. - punfold H0. unfold_eqit. pfold. red. punfold H1. red in H1. - induction H0. - + inversion H1. - + apply DivTau. inversion H1; subst. right. eapply CH. - red in H0. pclearbot. apply REL. - pclearbot. apply H0. - + inversion H1; subst. dependent destruction H3. eapply DivVis. - pclearbot. right. eapply CH. apply REL. eapply H0. - + econstructor. left. pfold. red. - apply IHeqitF. apply H1. - + apply IHeqitF. inversion H1; subst. - pclearbot. punfold H2. + intros t1 t2 Ht. split; intros Hinf. + - revert t2 t1 Ht Hinf. unfold any_infinite at 2. coinduction c cih. + intros t2 t1 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. + cbn[any_infinite_mon body]. unfold any_infinite_. + apply (gfp_fp any_infinite_mon) in Hinf. + cbn[any_infinite_mon body] in Hinf. unfold any_infinite_ in Hinf. + induction Ht. + + inversion Hinf. + + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. dependent destruction H2. + econstructor. eapply cih; [apply REL|]. eauto. + + apply IHHt. inversion Hinf; subst. + apply (gfp_fp any_infinite_mon) in H0. + cbn[any_infinite_mon body] in H0. unfold any_infinite_ in H0. exact H0. + + constructor. step. cbn[any_infinite_mon body]. unfold any_infinite_. + apply IHHt. exact Hinf. + - revert t1 t2 Ht Hinf. unfold any_infinite at 2. coinduction c cih. + intros t1 t2 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. + cbn[any_infinite_mon body]. unfold any_infinite_. + apply (gfp_fp any_infinite_mon) in Hinf. + cbn[any_infinite_mon body] in Hinf. unfold any_infinite_ in Hinf. + induction Ht. + + inversion Hinf. + + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. dependent destruction H2. + econstructor. eapply cih; [apply REL|]. eauto. + + constructor. step. cbn[any_infinite_mon body]. unfold any_infinite_. + apply IHHt. exact Hinf. + + apply IHHt. inversion Hinf; subst. + apply (gfp_fp any_infinite_mon) in H0. + cbn[any_infinite_mon body] in H0. unfold any_infinite_ in H0. exact H0. Qed. Theorem spin_infinite {E A} : @any_infinite E A ITree.spin. Proof. - unfold any_infinite, ITree.spin. - pcofix H. pfold. constructor. right. apply H. -Qed. + unfold any_infinite. coinduction c cih. + cbn[any_infinite_mon body]. unfold any_infinite_. cbn. + constructor. exact cih. +Qed. Variant all_infiniteF {E : Type -> Type} {A : Type} (F : itree E A -> Prop) : itree' E A -> Prop := | MDivTau (t : itree E A) : F t -> all_infiniteF F (TauF t) @@ -101,19 +99,21 @@ Definition all_infinite_ {E A} (sim : itree E A -> Prop) t := all_infiniteF sim Lemma all_infiniteF_mono {E A} (sim sim' : itree E A -> Prop) t (IN : all_infiniteF sim t) - (LE : sim <1= sim') : all_infiniteF sim' t. + (LE : forall x, sim x -> sim' x) : all_infiniteF sim' t. Proof. induction IN; eauto with itree. Qed. -Lemma all_infiniteF_mono' {E A} : monotone1 (@all_infinite_ E A). +Lemma all_infinite__mono {E A} : Proper (leq ==> leq) (@all_infinite_ E A). Proof. - unfold all_infinite_. - red. intros. eapply all_infiniteF_mono; eauto. + repeat red; intros sim sim' LE t IN. + unfold all_infinite_ in *. eapply all_infiniteF_mono; eauto. Qed. -#[global] Hint Resolve all_infiniteF_mono' : paco. -Definition all_infinite {E A} := paco1 (@all_infinite_ E A) bot1. +Definition all_infinite_mon {E A} : mon (itree E A -> Prop) := + {| body := @all_infinite_ E A ; Hbody := all_infinite__mono |}. + +Definition all_infinite {E A} : itree E A -> Prop := gfp (@all_infinite_mon E A). #[global] Hint Unfold all_infinite : itree. @@ -142,43 +142,50 @@ Ltac contra_void := try match goal with | a : void |- _ => contradiction end. #[global] Instance eutt_proper_all_infinite {E A R} : Proper (eutt R ==> iff) (@all_infinite E A). Proof. - intros t1 t2 Ht. split. - - revert t1 t2 Ht. pcofix CIH. intros t1 t2 Ht Hdiv. - punfold Ht. unfold_eqit. pfold. red. punfold Hdiv. red in Hdiv. + intros t1 t2 Ht. split; intros Hinf. + - revert t1 t2 Ht Hinf. unfold all_infinite at 2. coinduction c cih. + intros t1 t2 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. + cbn[all_infinite_mon body]. unfold all_infinite_. + apply (gfp_fp all_infinite_mon) in Hinf. + cbn[all_infinite_mon body] in Hinf. unfold all_infinite_ in Hinf. induction Ht. - + inversion Hdiv. - + constructor. inversion Hdiv. subst. right. - pclearbot. - eapply CIH; eauto. - + constructor. inversion Hdiv. subst. ddestruction. - subst. intros. right. inversion Hdiv. ddestruction. - subst. pclearbot. eapply CIH; auto with itree. - + apply IHHt. inversion Hdiv. subst. pclearbot. punfold H0. - + constructor. left. pfold. apply IHHt. auto. - - revert t1 t2 Ht. pcofix CIH. intros t1 t2 Ht Hdiv. - punfold Ht. unfold_eqit. pfold. red. punfold Hdiv. red in Hdiv. + + inversion Hinf. + + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. dependent destruction H2. + econstructor. intros b. eapply cih; [apply REL|]. apply H0. + + apply IHHt. inversion Hinf; subst. + apply (gfp_fp all_infinite_mon) in H0. + cbn[all_infinite_mon body] in H0. unfold all_infinite_ in H0. exact H0. + + constructor. step. cbn[all_infinite_mon body]. unfold all_infinite_. + apply IHHt. exact Hinf. + - revert t1 t2 Ht Hinf. unfold all_infinite at 2. coinduction c cih. + intros t1 t2 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. + cbn[all_infinite_mon body]. unfold all_infinite_. + apply (gfp_fp all_infinite_mon) in Hinf. + cbn[all_infinite_mon body] in Hinf. unfold all_infinite_ in Hinf. induction Ht. - + inversion Hdiv. - + constructor. inversion Hdiv. subst. right. - pclearbot; eauto. - + constructor. inversion Hdiv. subst. ddestruction. - subst. intros. right. inversion Hdiv. subst. ddestruction. - subst. pclearbot. eapply CIH; auto with itree. - + constructor. left. pfold. apply IHHt. auto. - + apply IHHt. inversion Hdiv. subst. pclearbot. punfold H0. + + inversion Hinf. + + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. dependent destruction H2. + econstructor. intros b. eapply cih; [apply REL|]. apply H0. + + constructor. step. cbn[all_infinite_mon body]. unfold all_infinite_. + apply IHHt. exact Hinf. + + apply IHHt. inversion Hinf; subst. + apply (gfp_fp all_infinite_mon) in H0. + cbn[all_infinite_mon body] in H0. unfold all_infinite_ in H0. exact H0. Qed. Lemma not_converge_to_all_infinite : forall (E : Type -> Type) (A : Type) (t : itree E A), (forall a, ~ may_converge a t) -> all_infinite t. Proof. - intros E A. pcofix CIH. intros t Hcon. pfold. - red. destruct (observe t) eqn : Heq; - specialize (itree_eta t) as Ht; rewrite Heq in Ht. - - exfalso. apply (Hcon r0). rewrite Ht. constructor. reflexivity. - - constructor. right. apply CIH. - setoid_rewrite Ht in Hcon. setoid_rewrite tau_eutt in Hcon. - auto. - - constructor. right. apply CIH. + intros E A. unfold all_infinite. coinduction c cih. intros t Hcon. + cbn[all_infinite_mon body]. unfold all_infinite_. + destruct (observe t) eqn:Heq; + specialize (itree_eta t) as Ht; rewrite Heq in Ht. + - exfalso. apply (Hcon r). rewrite Ht. constructor. reflexivity. + - constructor. apply cih. + setoid_rewrite Ht in Hcon. setoid_rewrite tau_eutt in Hcon. auto. + - constructor. intros b. apply cih. intros a Hcontra. setoid_rewrite Ht in Hcon. apply (Hcon a). eapply conv_vis; try reflexivity; eauto. Qed. @@ -195,10 +202,13 @@ Lemma all_infinite_not_converge : forall (E : Type -> Type) (R : Type) (t : itre may_converge r t -> ~ all_infinite t. Proof. intros E R t r Hc Hd. induction Hc. - - rewrite H in Hd. pinversion Hd. - - apply IHHc. rewrite H in Hd. pinversion Hd. - ddestruction. subst. - apply H1. + - rewrite H in Hd. apply (gfp_fp all_infinite_mon) in Hd. + cbn[all_infinite_mon body] in Hd. unfold all_infinite_ in Hd. + inversion Hd. + - apply IHHc. rewrite H in Hd. + apply (gfp_fp all_infinite_mon) in Hd. + cbn[all_infinite_mon body] in Hd. unfold all_infinite_ in Hd. + inversion Hd. ddestruction. subst. apply H1. Qed. Lemma may_converge_Ret_inv E (A : Type) (a a' : A) : may_converge (E := E) a (Ret a') -> a = a'. @@ -215,5 +225,8 @@ Ltac inv_infinite_ret := match goal with [ H : any_infiniteF _ (RetF _) |- _ ] Lemma no_infinite_ret (E : Type -> Type) (A : Type) (t: itree E A) (a : A) : any_infinite t -> t ≈ Ret a -> False. Proof. - intros H HContra. rewrite HContra in H. pinversion H. + intros H HContra. rewrite HContra in H. + apply (gfp_fp any_infinite_mon) in H. + cbn[any_infinite_mon body] in H. unfold any_infinite_ in H. + inversion H. Qed. From 96959d2468d08e08e20eda83ccd176fc60cb48df Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 15 Apr 2026 19:05:20 -0400 Subject: [PATCH 121/189] Done up to iForest. That next. --- .Makefile.d | 60 ++++++++++- Makefile.conf | 4 +- REFACTOR-TODOS.md | 10 +- extra/IForest.v | 2 - theories/Basics/Utils.v | 2 +- theories/Eq/Eqit.v | 64 +++++------ theories/Eq/Rutt.v | 6 +- theories/Eq/RuttFacts.v | 10 +- theories/Events/ExceptionFacts.v | 174 +++++++++++++++--------------- theories/Events/FailFacts.v | 67 +++++------- theories/Events/MapDefaultFacts.v | 49 ++++----- theories/Interp/InterpFacts.v | 7 +- theories/Interp/RecursionFacts.v | 2 +- 13 files changed, 252 insertions(+), 205 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 898494c3..d2a52373 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -128,5 +128,61 @@ theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/ theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Paco2.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Paco2.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile.conf b/Makefile.conf index 98dfaee5..f5a69775 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -32,8 +32,8 @@ COQMF_METAFILE = COQMF_OCAMLLIBS = COQMF_SRC_SUBDIRS = -COQMF_COQLIBS = -Q theories ITree -COQMF_COQLIBS_NOML = -Q theories ITree +COQMF_COQLIBS = -Q theories ITree -Q extra ITree.Extra +COQMF_COQLIBS_NOML = -Q theories ITree -Q extra ITree.Extra COQMF_CMDLINE_COQLIBS = ############################################################################### diff --git a/REFACTOR-TODOS.md b/REFACTOR-TODOS.md index 57f19a84..af829742 100644 --- a/REFACTOR-TODOS.md +++ b/REFACTOR-TODOS.md @@ -8,10 +8,16 @@ there is some inv_Vis, some dependent destruction, some vis_gen... we need a single pipeline for concluding proofs about vis nodes. - the 'refine match' pattern that appears here is not lovely either. See Finite.v. -- [ ] Remove "Add Parametric Morphism" - [ ] Generally clean up Eqit.v. - [ ] rename and redo sections - [ ] keep building tests until rewriting robustness is clear - [ ] organize file - [ ] remove add parametric morphism -- [ ] rest of rtodos \ No newline at end of file +- [ ] rest of rtodos + +- [ ] Get "MWE ITree library" for RIP volume + - want highlights of itrees +NEXT: +- [ ] Gather and organize knowledge for talk and RIP presentation about + how one would teach the essentials of itrees. +- [ ] \ No newline at end of file diff --git a/extra/IForest.v b/extra/IForest.v index 5faea018..740dc212 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -19,8 +19,6 @@ From ITree Require Import Props.Leaf Basics.HeterogeneousRelations. -From Paco Require Import paco. - From ExtLib Require Import Structures.Functor. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 71a0194c..1083ddba 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -5,7 +5,7 @@ Require Import Program.Tactics. From Paco Require Import paco. -Ltac inv H := inversion H; clear H; subst. +Ltac inv H := inversion H; clear H; subst; try easy. (* [inv], [rewrite_everywhere], [..._except] are general purpose *) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index da3b09dc..7b54df41 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -659,7 +659,7 @@ Properties of the chains specialize to the relations: the gfp is an element of t : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). Proof. intros ?? t u v EQ1 EQ2. - inv EQ1; try now (inv EQ2; try easy; eauto with itree). + inv EQ1; try now (inv EQ2; eauto with itree). apply eqitF_inv_VisF_l in EQ2 as [(? & -> & ?) | [abs _]]; [| easy]. constructor; eauto. Qed. @@ -750,8 +750,7 @@ Section eqit_inv. step. remember (observe (Tau t1)). induction H; inv Heqi. - - step in REL. now taur. - - assumption. + - step in REL. now taur. - taur. now apply IHeqitF. Qed. @@ -765,7 +764,6 @@ Section eqit_inv. induction H; inv Heqi. - step in REL. now taul. - taul. now apply IHeqitF. - - assumption. Qed. Lemma eqitF_inv_Tau t1 t2 : @@ -781,10 +779,8 @@ Section eqit_inv. - inv H; inv Heqot1; simpobs. + taul. now step in REL. + taul. now apply IHeqitF. - + assumption. - inv H; inv Heqot2; simpobs. + taur. now step in REL. - + assumption. + taur. now apply IHeqitF. Qed. @@ -846,7 +842,7 @@ Proof. genobs t ot; genobs u ou. revert t u Heqot Heqou. induction EQ; intros; try easy. - - inv H; inv H0; try easy. + - inv H; inv H0. - inv H; simpobs. edestruct euttge_tau_r_inv; [step; eauto |]. step. @@ -1033,20 +1029,20 @@ Proof with eauto with itree. all: hinduction H1 before RR; intros. (* ret and taus cases *) - 1-2, 6-7: inv H; inv H0; simpobs; try easy; eauto with itree. + 1-2, 6-7: inv H; inv H0; simpobs; eauto with itree. (* vis *) 1,4: - genvis e k1 ok1; inv H; simpobs; try easy; - genvis e k2 ok2; inv H0; simpobs; try easy; + genvis e k1 ok1; inv H; simpobs; + genvis e k2 ok2; inv H0; simpobs; do 2 inv_Vis; constructor; intros; specialize (REL1 v); specialize (REL0 v); eapply cih; eauto. (* inductive steps *) 1,3: - inv H; simpobs; try easy; taul; eapply IHeqitF; eauto; now step in REL. + inv H; simpobs; taul; eapply IHeqitF; eauto; now step in REL. 1-2: - inv H0; simpobs; try easy; taur; eapply IHeqitF; eauto; now step in REL. + inv H0; simpobs; taur; eapply IHeqitF; eauto; now step in REL. Qed. (* [euttge_proper_euttgeC] with [euttge eq] on BOTH arguments is FALSE. @@ -1069,7 +1065,7 @@ assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq - reflexivity. - step. taul. reflexivity. - reflexivity. } - step in Hfalse. inv Hfalse. easy. + step in Hfalse. inv Hfalse. Qed. (* RTODO: see if this is true *) @@ -1219,10 +1215,10 @@ Proof. step in H0; step in H1; icbn in *. (* this proof is largely uninteresting and is just diagram chase. *) all: - inv H2; simpobs; try easy. + inv H2; simpobs. all: - try genvis e k1 ok1; inv H0; simpobs; try easy; - try genvis e k2 ok2; inv H1; simpobs; try easy. + try genvis e k1 ok1; inv H0; simpobs; + try genvis e k2 ok2; inv H1; simpobs. all: try do 2 inv_Vis; constructor; intros; try eapply H; eauto. all: inv H1; inv H0. all: @@ -1629,7 +1625,7 @@ Qed. Lemma eqit_inv_Ret {E R1 R2 RR} b1 b2 r1 r2 : @eqit E b1 b2 R1 R2 RR (Ret r1) (Ret r2) -> RR r1 r2. Proof. - intros. step in H. inv H. eauto. + intros. step in H. inv H. Qed. (* Axiom-free, weaker version of [eqit_inv_vis] *) @@ -1804,7 +1800,6 @@ Proof. genobs t2 ot2. remember {| _observe := ot2 |}. hinduction Heutt before r1; intros; inv Heqi. - - reflexivity. - rewrite tau_euttge. rewrite itree_eta. now eapply IHHeutt. Qed. @@ -1817,7 +1812,6 @@ Proof. rewrite itree_eta. remember (observe (Ret r2)); genobs t1 ot1; remember {| _observe := ot1 |}. hinduction Heutt before R; intros; inv Heqi. - - reflexivity. - rewrite tau_euttge. rewrite itree_eta. now eapply IHHeutt. Qed. @@ -1895,10 +1889,8 @@ Proof. + inv H. * taul. eapply IHeqitF; eauto. * taul. eapply IHeqitF; eauto. - * assumption. + inv H. * taur. eapply IHeqitF; eauto. - * assumption. * taur. eapply IHeqitF; eauto. - step. now constructor. Qed. @@ -1934,8 +1926,6 @@ Qed. often. *) -(* RTODO: Rename these *) -(* this one can be eqit_bind_chain *) Lemma eqit_bind_chain b1 b2 (c : Chain (eqit_mon b1 b2)) {U1 U2} (t1 : itree E U1) (t2 : itree E U2) @@ -1954,7 +1944,7 @@ Proof. genobs t2 ot2. hinduction H0 before RR; intros; try easy. (* be careful not to rewrite all here; this will mess up taul and taur cases. *) - 1-3: rewrite 2observe_bind; simpobs. + 1-3: rewrite 2 observe_bind; simpobs. (* ret *) + eapply H1; eauto. (* taus *) @@ -1978,7 +1968,6 @@ Proof. eapply IHeqitF; eauto. Qed. - Lemma eutt_bind_eutt {U1 U2 UU} t1 t2 k1 k2 (EQT: @eutt E U1 U2 UU t1 t2) (EQK: forall u1 u2, UU u1 u2 -> eutt RR (k1 u1) (k2 u2)): @@ -2440,7 +2429,7 @@ Proof. * step; icbn; inv H0; unfold observe, _observe; rewrite <- Heqtl; now constructor. + left; exists t; split. * step; icbn; rewrite Ema; constructor; apply reflexivity. - * inv Heqtl. inv H0. assumption. + * inv Heqtl. inv H0. - subst. unfold observe, _observe in Heqtl; cbn in Heqtl. destruct (observe ma) eqn:Ema; try discriminate. @@ -2488,7 +2477,6 @@ Proof. induction H; intros EQ1 EQ2; try (now inv EQ1 || now inv EQ2). - apply IHeqitF; auto. inv EQ2. - reflexivity. Qed. Lemma eutt_spin_Ret_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} (v: R2), @@ -2502,7 +2490,6 @@ Proof. induction H; intros EQ1 EQ2; try (now inv EQ1 || now inv EQ2). - apply IHeqitF; auto. inv EQ2. - reflexivity. Qed. Lemma eutt_Vis_spin_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k: X -> itree E R1), @@ -2516,7 +2503,6 @@ Proof. induction H; intros EQ1 EQ2; try (now inv EQ1 || now inv EQ2). - apply IHeqitF; auto. inv EQ2. - reflexivity. Qed. Lemma eutt_spin_Vis_abs: forall {E R1 R2} {RR: R1 -> R2 -> Prop} {X} (e: E X) (k: X -> itree E R2), @@ -2530,7 +2516,6 @@ Proof. induction H; intros EQ1 EQ2; try (now inv EQ1 || now inv EQ2). - apply IHeqitF; auto. inv EQ2. - reflexivity. Qed. Section eqit_elem. (*** *** Properties of the chain. *) @@ -2848,3 +2833,22 @@ Proof. Qed. End eutt_facts. + +(* RTODO: move these somewhere reasonable *) + +#[global] +Instance observing_eq_chain E R b1 b2 + (c : Chain (eqit_mon b1 b2)) : + Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (elem c _ _ eq)) (observe). +Proof. + repeat intro. + step. rewrite H. reflexivity. +Qed. + + +#[global] +Instance observing_eq_eqitF E R b1 b2 : + Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (eqit b1 b2 eq)) (observe). +Proof. + repeat intro; now eapply observing_eq_chain. +Qed. diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 2a2e8dbe..8b065e1d 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -206,7 +206,7 @@ Proof. intros. rstep. constructor; auto. Qed. Lemma rutt_inv_Ret r1 r2: rutt REv RAns RR (Ret r1) (Ret r2) -> RR r1 r2. Proof. - intros. rstep in H. inv H. eauto. + intros. rstep in H. inv H. Qed. Lemma rutt_inv_Ret_l r1 t2: @@ -239,7 +239,7 @@ Proof. intros H. remember (TauF t1) as tt1. induction H; try discriminate. - inv Heqtt1. constructor. rstep in H. exact H. - - inv Heqtt1. exact H. + - inv Heqtt1. - constructor. auto. Qed. @@ -252,7 +252,7 @@ Proof. induction H; try discriminate. - inv Heqtt2. constructor. rstep in H. exact H. - constructor. auto. - - inv Heqtt2. exact H. + - inv Heqtt2. Qed. Lemma rutt_inv_Tau_l t1 t2 : diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 5d64a16f..f20d6d38 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -144,7 +144,7 @@ Proof. genobs t1' ot1'; genobs t2' ot2'; move Hrutt before IH; revert_until Hrutt; induction Hrutt; intros; subst. - 1-3,6-8: inv Ht1; inv Ht2; simpobs; try easy; try now constructor. + 1-3,6-8: inv Ht1; inv Ht2; simpobs; try now constructor. + simpobs. constructor. eapply IH; eauto. + simpobs. dependent destruction H3; dependent destruction H4; @@ -155,10 +155,10 @@ Proof. dependent destruction H4; dependent destruction H5; dependent destruction H7; dependent destruction H8. constructor; auto. intros. eapply IH. apply REL. apply REL0. now apply H0. - + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. - + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. - + inv Ht1; try easy. constructor. eapply IHHrutt; eauto. now unstep. - + inv Ht2; try easy. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht1. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht2. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht1. constructor. eapply IHHrutt; eauto. now unstep. + + inv Ht2. constructor. eapply IHHrutt; eauto. now unstep. Qed. #[global] Instance eq_proper_rutt {E1 E2 R1 R2 REv RAns} diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 4199b019..730e4abd 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -5,7 +5,7 @@ From Stdlib Require Import From ExtLib Require Import Structures.Monad. -From Paco Require Import paco. +From Coinduction Require Import all. From ITree Require Import ITree @@ -53,50 +53,65 @@ Qed. Global Instance proper_eqitree_try_catch {E Err R} : Proper (eq_itree eq ==> pointwise_relation Err (eq_itree eq) ==> eq_itree eq) (@try_catch Err R E). Proof. intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. - ginit. gcofix CIH. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. - pinversion Ht; try inv CHECK. - - repeat rewrite bind_ret_l. gfinal; right. pfold; constructor; auto. - - repeat rewrite bind_ret_l. gstep; constructor. gfinal. left. eauto. + bcoinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. + step in Ht; inv Ht. + - repeat rewrite bind_ret_l. eret. + - repeat rewrite bind_ret_l. etau. - destruct e. - + destruct e. cbn. repeat rewrite bind_map. repeat rewrite bind_ret_r. gfinal. - right. eapply paco2_mon; try apply Hk. intros; contradiction. - + cbn. repeat rewrite bind_map. repeat rewrite bind_trigger. gstep. constructor. intros. - gstep. constructor. gfinal. left. eauto with itree. + + destruct e. cbn. rewrite 2 bind_map. rewrite 2 bind_ret_r. + step. apply Hk. + + cbn. evis. do 2 setoid_rewrite bind_ret_l. + step. etau. Qed. Global Instance proper_eutt_try_catch {E Err R} : Proper (eutt eq ==> pointwise_relation Err (eutt eq) ==> eutt eq) (@try_catch Err R E). Proof. intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. - ginit. gcofix CIH. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. - punfold Ht. red in Ht. - hinduction Ht before r; intros; subst; eauto; try inv CHECK; pclearbot. - - repeat rewrite bind_ret_l. gfinal; right. pfold; constructor; auto. - - repeat rewrite bind_ret_l. gstep; constructor. gfinal. left. eauto. + bcoinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. + step in Ht. + hinduction Ht before c; intros; subst; eauto. + - repeat rewrite bind_ret_l. eret. + - repeat rewrite bind_ret_l. etau. - destruct e. - + destruct e. cbn. repeat rewrite bind_map. repeat rewrite bind_ret_r. gfinal. - right. eapply paco2_mon; try apply Hk. intros; contradiction. - + cbn. repeat rewrite bind_map. repeat rewrite bind_trigger. gstep. constructor. intros. - gstep. constructor. gfinal. left. eauto with itree. + (* RTODO: make cbn work here *) + + destruct e. bcbn. rewrite 2 bind_map. rewrite 2 bind_ret_r. + step. apply Hk. + + bcbn. evis. do 2 setoid_rewrite bind_ret_l. + step. etau. - rewrite bind_ret_l. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. - rewrite bind_ret_l. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. Qed. -Global Instance proper_eqitree_throw_prefix {E Err R b} : Proper (eqit eq b b ==> eqit eq b b) (@throw_prefix Err R E). +Global Instance proper_eqitree_throw_prefix_false {E Err R} : Proper (eqit false false eq ==> eqit false false eq) (@throw_prefix Err R E). Proof. intros t1 t2 Ht. generalize dependent t2. revert t1. - ginit. gcofix CIH. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. - punfold Ht. red in Ht. hinduction Ht before r; intros; subst; eauto; try inv CHECK. - - repeat rewrite bind_ret_l. gfinal; right. subst. pfold; constructor; auto. - - repeat rewrite bind_ret_l. gstep; constructor. gfinal. left. pclearbot. - eapply CIH. auto. + bcoinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. + step in Ht. inv Ht. + - repeat rewrite bind_ret_l. bcbn. eret. - destruct e. - + destruct e. cbn. repeat rewrite bind_map. repeat rewrite bind_ret_r. repeat rewrite bind_ret_l. gfinal. - right. pfold; constructor; auto. - + cbn. repeat rewrite bind_map. repeat rewrite bind_trigger. gstep. constructor. intros. - gstep. constructor. gfinal. left. pclearbot. eapply CIH; eauto with itree. - - rewrite bind_ret_l. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. - - rewrite bind_ret_l. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. + + destruct e. bcbn. eret. + + setoid_rewrite bind_map. rewrite 2 bind_trigger. + evis. step. bcbn. etau. +Qed. + +Global Instance proper_eutt_throw_prefix {E Err R} : Proper (eutt eq ==> eutt eq) (@throw_prefix Err R E). +Proof. + intros t1 t2 Ht. generalize dependent t2. revert t1. + bcoinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. + step in Ht. hinduction Ht before c; intros; subst; eauto. + - repeat rewrite bind_ret_l. bcbn. eret. + - destruct e. + + destruct e. bcbn. eret. + + setoid_rewrite bind_map. rewrite 2 bind_trigger. + evis. step. bcbn. etau. + - bcbn. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. + - bcbn. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. +Qed. + +Global Instance proper_eqitree_throw_prefix {E Err R b} : Proper (eqit b b eq ==> eqit b b eq) (@throw_prefix Err R E). +Proof. + destruct b; [apply proper_eutt_throw_prefix | apply proper_eqitree_throw_prefix_false]. Qed. Definition throw_prefix_ret : forall E Err R (r : R), @@ -128,18 +143,14 @@ Qed. Lemma try_catch_throw_prefix_nop : forall E Err R kcatch (ttry : itree (exceptE Err +' E) R), try_catch (throw_prefix ttry) kcatch ≈ throw_prefix ttry. Proof. - intros E Err R kcatch. ginit. gcofix CIH. intros. + intros E Err R kcatch. bcoinduction. intros. destruct (observe ttry) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - - rewrite Heq. rewrite throw_prefix_ret. rewrite try_catch_ret. gfinal. right. - pfold; constructor; auto. - - rewrite Heq. rewrite throw_prefix_tau. rewrite try_catch_tau. gstep. constructor. - gfinal; left; auto. + - rewrite Heq. rewrite throw_prefix_ret. rewrite try_catch_ret. reflexivity. + - rewrite Heq. rewrite throw_prefix_tau. rewrite try_catch_tau. etau. - destruct e. - + destruct e. rewrite Heq. rewrite throw_prefix_exc. rewrite try_catch_ret. gfinal. - right. pfold; constructor; auto. - + rewrite Heq. rewrite throw_prefix_ev. rewrite try_catch_ev. gstep. - constructor. intros. red. rewrite try_catch_tau. repeat rewrite tau_euttge. - gfinal. left. auto. + + destruct e. rewrite Heq. rewrite throw_prefix_exc. rewrite try_catch_ret. reflexivity. + + rewrite Heq. rewrite throw_prefix_ev. rewrite try_catch_ev. evis. + rewrite try_catch_tau. repeat rewrite tau_euttge. apply cih. Qed. Lemma throw_prefix_bind_decomp : forall E Err R (t : itree (exceptE Err +' E) R ), @@ -149,16 +160,15 @@ Lemma throw_prefix_bind_decomp : forall E Err R (t : itree (exceptE Err +' E) R | inl a => Ret a end). Proof. - intros E Err R. ginit. gcofix CIH. intros. + intros E Err R. bcoinduction. intros. destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - - rewrite Heq. rewrite throw_prefix_ret. rewrite bind_ret_l. gfinal. right. pfold; constructor; auto. - - rewrite Heq. rewrite throw_prefix_tau. rewrite bind_tau. gstep. constructor. - gfinal; left. auto. + - rewrite Heq. rewrite throw_prefix_ret. rewrite bind_ret_l. eret. + - rewrite Heq. rewrite throw_prefix_tau. rewrite bind_tau. etau. - destruct e. - + rewrite Heq. destruct e. rewrite throw_prefix_exc. rewrite bind_ret_l. cbn. rewrite bind_trigger. - gstep. constructor. intros []. - + rewrite Heq. rewrite throw_prefix_ev. rewrite bind_vis. gstep. constructor. - intros. red. rewrite tau_euttge. gfinal; left; auto. + + rewrite Heq. destruct e. rewrite throw_prefix_exc. rewrite bind_ret_l. bcbn. evis. + easy. + + rewrite Heq. rewrite throw_prefix_ev. rewrite bind_vis. evis. + intros. rewrite tau_euttge. apply cih. Qed. Lemma try_catch_to_throw_prefix : forall E Err R (ttry : itree (exceptE Err +' E) R ) (kcatch : Err -> itree (exceptE Err +' E) R), @@ -168,37 +178,35 @@ Lemma try_catch_to_throw_prefix : forall E Err R (ttry : itree (exceptE Err +' E | inl a => Ret a end). Proof. - intros. revert ttry. ginit. gcofix CIH. + intros. revert ttry. bcoinduction. intros. destruct (observe ttry) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - - rewrite Heq. rewrite try_catch_ret. rewrite throw_prefix_ret. rewrite bind_ret_l. gfinal. - right. pfold; constructor; auto. + - rewrite Heq. rewrite try_catch_ret. rewrite throw_prefix_ret. rewrite bind_ret_l. + eret. - rewrite Heq. rewrite try_catch_tau. rewrite throw_prefix_tau. rewrite bind_tau. - gstep. constructor. gfinal; left; auto. + etau. - destruct e. + destruct e. rewrite Heq. rewrite try_catch_exc. rewrite throw_prefix_exc. rewrite bind_ret_l. - gfinal; right. apply paco2_mon with (r := bot2); intros; try contradiction. - enough (kcatch e ≈ kcatch e); auto. reflexivity. + reflexivity. + rewrite Heq. rewrite try_catch_ev. rewrite throw_prefix_ev. rewrite bind_vis. setoid_rewrite tau_euttge. - gstep. constructor. intros. gfinal. left. auto. + evis. Qed. Lemma throw_prefix_of_try_catch : forall E Err R (ttry : itree (exceptE Err +' E) R ) (kcatch : Err -> itree (exceptE Err +' E) R), throw_prefix (try_catch ttry kcatch) ≈ try_catch (ITree.bind ttry (fun r => Ret (inl r)) ) (fun e => throw_prefix (kcatch e) ). Proof. - intros. revert ttry. ginit. gcofix CIH. + intros. revert ttry. bcoinduction. intros. destruct (observe ttry) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite bind_ret_l. repeat rewrite try_catch_ret. rewrite throw_prefix_ret. - gfinal; right; pfold; constructor; auto. + eret. - rewrite Heq. rewrite bind_tau. repeat rewrite try_catch_tau. rewrite throw_prefix_tau. - gstep. constructor. gfinal. left. auto. + etau. - destruct e. + destruct e. rewrite Heq. rewrite bind_vis. repeat rewrite try_catch_exc. - gfinal; right. apply paco2_mon with (r := bot2); intros; try contradiction. - enough (throw_prefix (kcatch e) ≈ throw_prefix (kcatch e)); auto; try reflexivity. + reflexivity. + rewrite Heq. rewrite bind_vis. repeat rewrite try_catch_ev. rewrite throw_prefix_ev. setoid_rewrite throw_prefix_tau. repeat setoid_rewrite tau_euttge. - gstep. constructor. intros. gfinal. left. auto. + evis. Qed. Lemma throw_prefix_bind : forall E Err R S (t : itree (exceptE Err +' E) R ) (k : R -> itree (exceptE Err +' E) S), @@ -207,19 +215,17 @@ Lemma throw_prefix_bind : forall E Err R S (t : itree (exceptE Err +' E) R ) (k | inl r' => throw_prefix (k r') | inr e => Ret (inr e) end ). Proof. - intros. revert t. ginit. gcofix CIH. + intros. revert t. bcoinduction. intros. destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite throw_prefix_ret. repeat rewrite bind_ret_l. - gfinal; right. apply paco2_mon with (r := bot2); intros; try contradiction. - enough (throw_prefix (k r0) ≅ throw_prefix (k r0)); auto; try reflexivity. + reflexivity. - rewrite Heq. rewrite throw_prefix_tau. repeat rewrite bind_tau. rewrite throw_prefix_tau. - gstep. constructor. gfinal; eauto. + etau. - destruct e. + destruct e. rewrite Heq. rewrite throw_prefix_exc. rewrite bind_vis. rewrite throw_prefix_exc. - rewrite bind_ret_l. gstep; constructor; auto. + rewrite bind_ret_l. eret. + rewrite Heq. rewrite throw_prefix_ev. repeat rewrite bind_vis. rewrite throw_prefix_ev. - gstep. constructor. intros. red. rewrite bind_tau. gstep. constructor. - gfinal. eauto. + evis. rewrite bind_tau. step. taus. apply cih. Qed. Lemma throw_prefix_iter : forall E Err A B (body : A -> itree (exceptE Err +' E) (A + B) ) (init : A), @@ -229,34 +235,32 @@ Lemma throw_prefix_iter : forall E Err A B (body : A -> itree (exceptE Err +' E) | inl (inr b) => Ret (inr (inl b)) | inr e => Ret (inr (inr e)) end) init. Proof. - intros E Err A B. ginit. gcofix CIH. intros. + intros E Err A B. bcoinduction. intros. setoid_rewrite unfold_iter_ktree at 2 3. destruct (observe (body init) ) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq at 1. rewrite bind_ret_l. setoid_rewrite bind_bind. rewrite Heq at 1. rewrite throw_prefix_ret. rewrite bind_ret_l. - destruct r0; rewrite bind_ret_l. - + rewrite throw_prefix_tau. gstep. constructor. gfinal. eauto. - + rewrite throw_prefix_ret. gfinal. right. pfold; constructor; auto. + destruct r; rewrite bind_ret_l. + + rewrite throw_prefix_tau. etau. + + rewrite throw_prefix_ret. eret. - rewrite Heq at 1. setoid_rewrite bind_bind. rewrite Heq at 1. rewrite throw_prefix_tau. repeat rewrite bind_tau. rewrite throw_prefix_tau. - gstep. constructor. setoid_rewrite throw_prefix_bind at 1. guclo eqit_clo_bind. - econstructor; try reflexivity. intros; subst. destruct u2 as [ [ a | b] | e ]. - + rewrite bind_ret_l. rewrite throw_prefix_tau. gstep. constructor. gfinal. eauto. - + rewrite bind_ret_l. rewrite throw_prefix_ret. gstep; constructor; auto. - + rewrite bind_ret_l. gstep; constructor; auto. + etau. setoid_rewrite throw_prefix_bind at 1. ebind; intros; subst. + destruct u2 as [ [ a | b] | e ]. + + rewrite bind_ret_l. rewrite throw_prefix_tau. step; etau. + + rewrite bind_ret_l. rewrite throw_prefix_ret. step; eret. + + rewrite bind_ret_l. step; eret. - rewrite Heq at 1. setoid_rewrite bind_bind. rewrite Heq at 1. destruct e. + destruct e. rewrite bind_vis. rewrite throw_prefix_exc. setoid_rewrite throw_prefix_exc. repeat rewrite bind_ret_l. - gstep; constructor; auto. + eret. + rewrite bind_vis. rewrite throw_prefix_ev. setoid_rewrite throw_prefix_ev. - rewrite bind_vis. setoid_rewrite bind_tau. gstep; constructor. intros. red. - gstep; constructor. rewrite throw_prefix_bind. - guclo eqit_clo_bind. econstructor; try reflexivity. intros; subst. + rewrite bind_vis. setoid_rewrite bind_tau. evis. step; etau. + rewrite throw_prefix_bind. ebind; intros; subst. destruct u2 as [ [ a | b] | e' ]. - * rewrite bind_ret_l. rewrite throw_prefix_tau. gstep; constructor. - gfinal. eauto. + * rewrite bind_ret_l. rewrite throw_prefix_tau. step; etau. * rewrite bind_ret_l. rewrite throw_prefix_ret. - gstep; constructor; auto. - * rewrite bind_ret_l. gstep; constructor; auto. + step; eret. + * rewrite bind_ret_l. step; eret. Qed. diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index 940a6f3d..05d26ac3 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -4,8 +4,6 @@ From Stdlib Require Import Morphisms. -From Paco Require Import paco. - From ITree Require Import Basics.Utils Basics.Basics @@ -17,7 +15,6 @@ From ITree Require Import Core.KTree Core.KTreeFacts Eq.Eqit - Eq.Paco2 Indexed.Sum Interp.Interp Interp.InterpFacts @@ -148,14 +145,13 @@ Global Instance interp_fail_eq_itree {X E F} {R : X -> X -> Prop} (h : E ~> fail Proper (eq_itree R ==> eq_itree (option_rel R)) (@interp_fail _ _ _ _ _ h X). Proof. repeat red. - ginit. - pcofix CIH. + bcoinduction. intros s t EQ. rewrite 2 unfold_interp_fail. - punfold EQ; red in EQ. - destruct EQ; cbn; subst; try discriminate; pclearbot; try (gstep; constructor; eauto with paco; fail). - guclo eqit_clo_bind; econstructor; [reflexivity | intros x ? <-]. - destruct x as [x|]; gstep; econstructor; eauto with paco itree. + step in EQ. + destruct EQ; cbn; subst; try discriminate; eauto with itree. + to_mon. ebind; intros; subst. destruct u2. + etau. eret. Qed. (* Convenient special case: [option_rel eq eq] is equivalent to [eq], so we can avoid bothering *) @@ -171,16 +167,14 @@ Global Instance interp_fail_eutt {X E F R} (h : E ~> failT (itree F)) : Proper (eutt R ==> eutt (option_rel R)) (@interp_fail _ _ _ _ _ h X). Proof. repeat red. - einit. - ecofix CIH. + bcoinduction. intros s t EQ. rewrite 2 unfold_interp_fail. - punfold EQ; red in EQ. - induction EQ; intros; cbn; subst; try discriminate; pclearbot; try (estep; constructor; eauto with paco; fail). - - ebind; econstructor; [reflexivity |]. - intros [] [] EQ; inv EQ. - + estep; ebase. - + eret. + step in EQ. + induction EQ; intros; bcbn; subst; try discriminate. + - eret. + - etau. + - ebind; intros; subst. destruct u2; econstructor; eauto with itree. - rewrite tau_euttge, unfold_interp_fail; eauto. - rewrite tau_euttge, unfold_interp_fail; eauto. Qed. @@ -248,21 +242,17 @@ Lemma interp_fail_bind : forall {X Y E F} (t : itree _ X) (k : X -> itree _ Y) ( ITree.bind (interp_fail h t) (fun mx => match mx with | None => ret None | Some x => interp_fail h (k x) end). Proof. - intros X Y E F; ginit; pcofix CIH; intros. + intros X Y E F; bcoinduction; intros. rewrite unfold_bind. rewrite (unfold_interp_fail h t). - destruct (observe t) eqn:EQ; cbn. - - rewrite bind_ret_l. apply reflexivity. - - cbn. rewrite bind_tau, !interp_fail_tau. - gstep. econstructor; eauto with paco. + destruct (observe t) eqn:EQ; bcbn. + - rewrite bind_ret_l. reflexivity. + - taus. apply cih. - rewrite bind_bind, interp_fail_vis. - guclo eqit_clo_bind; econstructor. - reflexivity. - intros [] ? <-; cbn. + ebind; intros; subst. + destruct u2. + rewrite bind_tau. - gstep; constructor. - ITree.fold_subst. - auto with paco. + etau. + rewrite bind_ret_l. apply reflexivity. Qed. @@ -275,21 +265,16 @@ Lemma interp_failure_bind' : forall {X Y E F} (t : itree _ X) (k : X -> itree _ Proof. intros X Y E F. cbn. - ginit; pcofix CIH; intros. - cbn in *. + bcoinduction; intros. rewrite unfold_bind, (unfold_interp_fail _ t). - destruct (observe t) eqn:EQ; cbn. - - rewrite bind_ret_l. apply reflexivity. - - rewrite bind_tau, !interp_fail_tau. - gstep. econstructor; eauto with paco. + destruct (observe t) eqn:EQ; bcbn. + - rewrite bind_ret_l. reflexivity. + - etau. apply cih. - rewrite bind_bind, interp_fail_vis. - guclo eqit_clo_bind; econstructor. - reflexivity. - intros [] ? <-; cbn. + ebind; intros; subst. + destruct u2. + rewrite bind_tau. - gstep; constructor. - ITree.fold_subst. - auto with paco. + etau. + rewrite bind_ret_l. - apply reflexivity. + reflexivity. Qed. diff --git a/theories/Events/MapDefaultFacts.v b/theories/Events/MapDefaultFacts.v index 99c1b53e..7ad1122b 100644 --- a/theories/Events/MapDefaultFacts.v +++ b/theories/Events/MapDefaultFacts.v @@ -12,8 +12,6 @@ From ExtLib Require Import From ExtLib.Structures Require Maps. -From Paco Require Import paco. - From ITree Require Import Basics.HeterogeneousRelations ITree @@ -179,23 +177,20 @@ Section MapFacts. Proof. unfold map_default_eq, interp_map; intros. revert t s1 s2 H. - ginit. - pcofix CH. + bcoinduction. intros. repeat rewrite unfold_interp_state. unfold _interp_state. destruct (observe t). - - gstep. constructor. constructor; auto. - - gstep. constructor. gbase. apply CH. assumption. - - guclo eqit_clo_bind. econstructor. + - eret. + - etau. + - ebind. unfold pure_state. destruct e. - + cbn. eapply eqit_mon; [ exact (fun x => x) .. | | apply handle_map_eq; assumption ]. - auto. auto. intros. apply PR. - + cbn. apply eqit_Vis. intros. apply eqit_Ret. constructor; auto. + + cbn. step. now eapply handle_map_eq. + + cbn. evis. step; eret. + intros. destruct u1. destruct u2. cbn. - destruct H as [H1 H2]; cbn in H1, H2; subst. - gstep; constructor. - gbase. apply CH. assumption. + destruct H0 as [H1 H2]; cbn in H1, H2; subst. + etau. Qed. Global Instance interp_map_proper {R E d} {RR : R -> R -> Prop} : @@ -204,29 +199,25 @@ Section MapFacts. unfold map_default_eq, interp_map. repeat intro. revert x y H s1 s2 H0. - einit. - ecofix CH. + bcoinduction. intros. rewrite! unfold_interp_state. - punfold H0. red in H0. - revert s1 s2 H1. - induction H0; intros; subst; simpl; pclearbot. + step in H. + revert s1 s2 H0. + induction H; intros; subst; bcbn. - eret. - etau. - ebind. - apply pbc_intro_h with (RU := prod_rel (@eq_map _ _ _ _ d) eq). - { (* SAZ: I must be missing some lemma that should solve this case *) - unfold case_. unfold Case_sum1, case_sum1. - destruct e. apply handle_map_eq. assumption. - unfold pure_state. - pstep. econstructor. intros. constructor. pfold. econstructor. constructor; auto. - } - intros. destruct H as [HH1 ->]. - estep; constructor. ebase. + + unfold case_. unfold Case_sum1, case_sum1. + do 2 step. destruct e. + * apply handle_map_eq. assumption. + * unfold pure_state. step. evis. step. eret. + + intros. etau. + inv H. rewrite snd_rel. eapply cih; eauto. apply REL. - rewrite tau_euttge, unfold_interp_state. - eauto. + now eapply IHeqitF. - rewrite tau_euttge, unfold_interp_state. - eauto. + now eapply IHeqitF. Qed. End MapFacts. diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 59369488..9402de35 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -121,8 +121,11 @@ Proof. step in H. destruct H; cbn; subst; try easy; eauto with itree. - to_mon. unfold eq_Handler, i_pointwise in Hfg. - rewrite Hfg. ebind. intros ??[=<-]. taus; eauto with itree. + unfold eq_Handler, i_pointwise in Hfg. + rewrite Hfg. + to_mon. + (* RTODO: fix ebind so it works with eqitF *) + ebind. intros ??[=<-]. taus; eauto with itree. Qed. #[global] diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index 2364ecae..14bd980c 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -84,7 +84,7 @@ Proof. repeat red. bcoinduction. intros. rewrite !unfold_interp_mrec. - step in H. inv H; try easy; eauto with itree. + step in H. inv H; eauto with itree. - taus. now apply cih. - cbn. destruct e. + taus. apply cih. From 0a7240a34da254fc95270bcbe074dade3023c870 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 20 Apr 2026 18:33:19 -0400 Subject: [PATCH 122/189] Some more care with iForest.v. --- extra/IForest.v | 258 ++++++++++++++++++++++++++++++++++++--------- theories/Eq/Eqit.v | 2 +- 2 files changed, 209 insertions(+), 51 deletions(-) diff --git a/extra/IForest.v b/extra/IForest.v index 740dc212..4214a8ca 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -12,6 +12,8 @@ TODO: There may be a better definition of [bind]. *) (* begin hide *) +From Coinduction Require Import all. + From ITree Require Import Axioms ITree @@ -24,6 +26,7 @@ From ExtLib Require Import From Stdlib Require Import Relations + Program Morphisms. Import ITree.Basics.Basics.Monads. @@ -139,28 +142,188 @@ Inductive interp_iforestF {E F} (h_spec : forall T, E T -> itree F T -> Prop) Lemma interp_iforestF_mono E F h_spec R RR (t0 : itree' E R) (t1 : itree F R) sim sim' (IN : interp_iforestF h_spec RR sim t0 t1) - (LE : sim <2= sim') : + (LE : forall x y, sim x y -> sim' x y) : (interp_iforestF h_spec RR sim' t0 t1). Proof. induction IN; eauto with itree. Qed. -#[global] Hint Resolve interp_iforestF_mono : paco. +Definition interp_iforest_ E F h_spec R RR sim : + itree E R -> itree F R -> Prop := + fun t0 t1 => interp_iforestF h_spec RR sim (observe t0) t1. -Definition interp_iforest_ E F h_spec R RR sim (t0 : itree E R) (t1 : itree F R) : Prop := - interp_iforestF h_spec RR sim (observe t0) t1. -#[global] Hint Unfold interp_iforest_ : itree. +#[global] Hint Unfold interp_iforest_ : itree. -Lemma interp_iforest__mono E F h_spec R RR : monotone2 (interp_iforest_ E F h_spec R RR). +Definition interp_iforest_mon (E F : Type -> Type) (h_spec : E ~> iforest F) + R (RR : relation R) : mon (itree E R -> itree F R -> Prop). Proof. - do 2 red. intros. eapply interp_iforestF_mono; eauto. -Qed. -#[global] Hint Resolve interp_iforest__mono : paco. + refine {| body := interp_iforest_ E F h_spec R RR |}. + intros sim sim' LE t0 t1 H. unfold interp_iforest_ in *. + eapply interp_iforestF_mono; eauto. +Defined. (* Definition 5.2 *) Definition interp_iforest {E F} (h_spec : E ~> iforest F) : forall R (RR: relation R), itree E R -> iforest F R := - fun R (RR: relation R) => paco2 (interp_iforest_ E F h_spec R RR) bot2. + fun R (RR: relation R) => gfp (interp_iforest_mon E F h_spec R RR). + + +#[local] Ltac iunfold_all := + unfold euttge, eq_itree, eutt, eqit, + interp_iforest, interp_iforest_, interp_iforest_mon in *. + +#[local] Ltac iunfold_in h := + unfold euttge, eq_itree, eutt, eqit, + interp_iforest, interp_iforest_, interp_iforest_mon in h. + +#[local] Ltac iunfold := + unfold euttge, eq_itree, eutt, eqit, + interp_iforest, interp_iforest_, interp_iforest_mon. + +#[local] Ltac iunfold_coind := + first + [ intros ?; iunfold_coind; revert_last + | unfold euttge, eutt, eq_itree, eqit, + interp_iforest, interp_iforest_, interp_iforest_mon + ]. + +#[local] Ltac refold := + repeat match goal with + | |- context[gfp (@eqit_mon ?E ?b1 ?b2)] => + fold (@eqit E b1 b2); + try fold (@eq_itree E _ _); + try fold (@euttge E _ _); + try fold (@eutt E _ _) + | |- context[gfp (interp_iforest_mon ?E ?F ?h ?R ?RR)] => + fold (@interp_iforest E F h R RR) + end. + +#[local] Ltac refold_in h := + match type of h with + | context[gfp (@eqit_mon ?E ?b1 ?b2)] => + fold (@eqit E b1 b2) in h; + try fold (@eq_itree E _ _) in h; + try fold (@euttge E _ _) in h; + try fold (@eutt E _ _) in h + | context[gfp (interp_iforest_mon ?E ?F ?h ?R ?RR)] => + fold (@interp_iforest E F h R RR) in h + end. + +#[local] Ltac to_mon_core := + match goal with + | |- context[ + @interp_iforestF ?E ?F ?h_spec ?R ?RR ?sim + (observe ?t0) ?t1 + ] => + change (interp_iforestF h_spec RR sim (observe t0) t1) + with (interp_iforest_mon E F h_spec R RR sim t0 t1) + + | |- context[ + @interp_iforestF ?E ?F ?h_spec ?R ?RR ?sim + (?con1 ?a1) ?t1 + ] => + change (interp_iforestF h_spec RR sim (con1 a1) t1) + with (interp_iforest_mon E F h_spec R RR + sim (go (con1 a1)) t1) + + | |- context[ + @interp_iforestF ?E ?F ?h_spec ?R ?RR ?sim + (observe ?t0) (?con2 ?a2) + ] => + change (interp_iforestF h_spec RR sim (observe t0) (con2 a2)) + with (interp_iforest_mon E F h_spec R RR + sim t0 (go (con2 a2))) + end. + +#[local] Ltac to_mon := + let dummy := fresh "dummy" in + assert (dummy : True) by constructor; + intros; + to_mon_core; + revert_until dummy; + clear dummy. + +#[local] Ltac to_mon_in h := + match type of h with + | context[ + @interp_iforestF ?E ?F ?h_spec ?R ?RR ?sim + (observe ?t0) ?t1 + ] => + change (interp_iforestF h_spec RR sim (observe t0) t1) + with (interp_iforest_mon E F h_spec R RR sim t0 t1) in h + + | context[ + @interp_iforestF ?E ?F ?h_spec ?R ?RR ?sim + (?con1 ?a1) ?t1 + ] => + change (interp_iforestF h_spec RR sim (con1 a1) t1) + with (interp_iforest_mon E F h_spec R RR + sim (go (con1 a1)) t1) in h + end. + +#[local] Ltac icbn := + cbn[eqit_mon body eqit_ interp_iforest_]. + +#[local] Ltac icbn_in H := + cbn[eqit_mon body eqit_ interp_iforest_] in H. + +#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. +#[local] Tactic Notation "icbn" "in" "*" := + cbn[eqit_mon body eqit_ interp_iforest_] in *. + + +#[local] Tactic Notation "refold" "in" ident(h) := refold_in h. +#[local] Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. +#[local] Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. +#[local] Tactic Notation "iunfold" "in" "*" := iunfold_all. + + +#[local] Tactic Notation "step" := + iunfold; + step; + cbn[eqit_mon body eqit_ interp_iforest_ ]; + try refold. + +#[local] Tactic Notation "unstep" := + iunfold; + try to_mon; + unstep; + try refold. + + +#[local] Tactic Notation "step" "in" ident(h) := + iunfold in h; + step in h; + cbn[eqit_ body interp_iforest_ body] in h; + try refold_in h. + +#[local] Tactic Notation "unstep" "in" ident(h) := + iunfold_in h; + try to_mon_in h; + unstep_in h; + try refold_in h. + +#[local] Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := + iunfold_coind; + coinduction R H; + cbn [body]; + unfold interp_iforest_. + +#[local] Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := + icoinduction R H; + to_mon. + +#[local] Tactic Notation "bcoinduction" := + let c := fresh "c" in + let cih := fresh "cih" in + bcoinduction c cih. + +#[local] Ltac bcbn := + cbn[eqit_mon body eqit_ interp_iforest_mon]; + unfold interp_iforest_; + to_mon. + + (* Figure 7: Interpreter law for Ret *) Lemma interp_iforest_ret : @@ -172,21 +335,20 @@ Proof. repeat red. split; [| split]. - intros. split; intros. - + unfold interp_iforest in H0. - pinversion H0. subst. - cbn. rewrite <- H. assumption. - + pstep. econstructor. reflexivity. rewrite H. cbn in H0. assumption. + + step in H0. inv H0. + cbn. now rewrite <- H. + + unfold interp_iforest. step. econstructor; eauto. now rewrite H. - do 3 red. - intros t1 t2 eq; split; intros H; pinversion H; subst. - + red. pstep. econstructor. reflexivity. rewrite <- eq. assumption. - + red. pstep. econstructor. reflexivity. rewrite eq. assumption. - - do 3 red. intros. split; intros; cbn in *. rewrite <- H. assumption. rewrite H; assumption. + intros t1 t2 eq; split; intros H; step in H; inv H. + + step. econstructor; eauto. now rewrite <- eq. + + step. econstructor; eauto. now rewrite eq. + - do 3 red. intros. split; intros; cbn in *. now rewrite <- H. now rewrite H. Qed. #[global] Instance interp_iforestF_Proper {E F} (h_spec : E ~> iforest F) R RR (t : itree' E R) (sim : itree E R -> itree F R -> Prop) - (HS: forall t, Proper(eutt eq ==> flip impl) (sim t)) + (HS: forall t, Proper (eutt eq ==> flip impl) (sim t)) : Proper(eutt eq ==> iff) (interp_iforestF h_spec RR sim t). Proof. @@ -194,42 +356,38 @@ Proof. intros. split; intros. - inversion H0; subst; econstructor; eauto. - + rewrite <- H. assumption. - + specialize (HS t1). rewrite <- H. assumption. - + rewrite <- H. assumption. + + now rewrite <- H. + + specialize (HS t1). now rewrite <- H. + + now rewrite <- H. - - inversion H0; subst; econstructor; eauto. - rewrite H. assumption. specialize (HS t1). rewrite H. assumption. - rewrite H. assumption. + - inversion H0; subst; econstructor; eauto. + all: now rewrite H. Qed. #[global] Instance interp_iforest_Proper - {E F} (h_spec : E ~> iforest F) R RR (t : itree E R) : - Proper(eq_itree Logic.eq ==> iff) (interp_iforest h_spec R RR t). + {E F} (h_spec : E ~> iforest F) R RR (t : itree E R) + (c : Chain (interp_iforest_mon E F h_spec R RR)) + : + Proper (eq_itree eq ==> iff) (elem c t). Proof. - do 2 red. - intros. - split. - - revert t x y H. - pcofix CIH. - intros t x y eq HI. - red in HI. punfold HI. red in HI. - pstep. red. genobs t ot. - inversion HI; subst; econstructor; eauto. - + rewrite <- eq. assumption. - + pclearbot. right. eapply CIH; eauto. - + rewrite <- eq. apply eq2. - + intros. specialize (HK a H0). pclearbot. right. eapply CIH. 2 : { apply HK. } reflexivity. - - revert t x y H. - pcofix CIH. - intros t x y eq HI. - red in HI. punfold HI. red in HI. - pstep. red. genobs t ot. - inversion HI; subst; econstructor; eauto. - + rewrite eq. assumption. - + pclearbot. right. eapply CIH; eauto. - + rewrite eq. apply eq2. - + intros. specialize (HK a H0). pclearbot. right. eapply CIH. 2 : { apply HK. } reflexivity. + do 2 red. revert t. + tower induction. + { split. all: repeat intro; apply H; auto. } + split. + - intros HI. + repeat red; repeat red in HI. + inv HI. + + rewrite H0 in eq2. + eapply Interp_iforest_Ret; eauto. + + econstructor. symmetry in H0. eapply H; eauto. + + econstructor; eauto. now rewrite <- H0. + - intros HI. + repeat red; repeat red in HI. + inv HI. + + rewrite <- H0 in eq2. + eapply Interp_iforest_Ret; eauto. + + econstructor. eapply H; eauto. + + econstructor; eauto. now rewrite H0. Qed. #[global] Instance interp_iforest_Proper2 diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 7b54df41..84da9658 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -244,7 +244,7 @@ Experimenting with the latter at the moment. *) (* We first enhance the coinduction tactic to recognize goals that do not have a syntactic match with [gfp _] *) - +Locate revert_last. #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. From 9b3182dda8c0bf4e6954f2fcb7bb3328ea29c06e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 21 Apr 2026 13:32:04 -0400 Subject: [PATCH 123/189] removed a print stmt --- .Makefile.d | 4 ++-- theories/Eq/Eqit.v | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index d2a52373..27f9b81d 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -134,8 +134,8 @@ extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.req extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 84da9658..7160b5f8 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -244,7 +244,6 @@ Experimenting with the latter at the moment. *) (* We first enhance the coinduction tactic to recognize goals that do not have a syntactic match with [gfp _] *) -Locate revert_last. #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. From a806a2971f22063a05049d1c4d7b5c6004fdd106 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 21 Apr 2026 17:29:33 -0400 Subject: [PATCH 124/189] iForest progress, better tactics. Long road of a file. --- .Makefile.d | 4 +- extra/IForest.v | 399 ++++++++++++++---------------------------- theories/Eq/Eqit.v | 102 +++++------ theories/Props/Leaf.v | 2 +- 4 files changed, 187 insertions(+), 320 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 27f9b81d..d2a52373 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -134,8 +134,8 @@ extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.req extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/extra/IForest.v b/extra/IForest.v index 4214a8ca..9ed57fa4 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -170,21 +170,21 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit, - interp_iforest, interp_iforest_, interp_iforest_mon in *. + interp_iforest in *. #[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit, - interp_iforest, interp_iforest_, interp_iforest_mon in h. + interp_iforest in h. #[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit, - interp_iforest, interp_iforest_, interp_iforest_mon. + interp_iforest. #[local] Ltac iunfold_coind := first [ intros ?; iunfold_coind; revert_last | unfold euttge, eutt, eq_itree, eqit, - interp_iforest, interp_iforest_, interp_iforest_mon + interp_iforest ]. #[local] Ltac refold := @@ -211,6 +211,12 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Ltac to_mon_core := match goal with + | |- context[ + @interp_iforest_ ?E ?F ?h_spec ?R ?RR ?sim ?t0 ?t1 + ] => + change (interp_iforest_ E F h_spec R RR sim t0 t1) + with (interp_iforest_mon E F h_spec R RR sim t0 t1) + | |- context[ @interp_iforestF ?E ?F ?h_spec ?R ?RR ?sim (observe ?t0) ?t1 @@ -262,15 +268,17 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : end. #[local] Ltac icbn := - cbn[eqit_mon body eqit_ interp_iforest_]. + cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_]; + try unfold interp_iforest_. #[local] Ltac icbn_in H := - cbn[eqit_mon body eqit_ interp_iforest_] in H. + cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_] in H; + try unfold interp_iforest_ in H. #[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. #[local] Tactic Notation "icbn" "in" "*" := - cbn[eqit_mon body eqit_ interp_iforest_] in *. - + cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_] in *; + try unfold interp_iforest_ in *. #[local] Tactic Notation "refold" "in" ident(h) := refold_in h. #[local] Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. @@ -279,35 +287,19 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Tactic Notation "step" := - iunfold; - step; - cbn[eqit_mon body eqit_ interp_iforest_ ]; - try refold. + iunfold; step; icbn; try refold. #[local] Tactic Notation "unstep" := - iunfold; - try to_mon; - unstep; - try refold. - + iunfold; try to_mon; unstep; try refold. #[local] Tactic Notation "step" "in" ident(h) := - iunfold in h; - step in h; - cbn[eqit_ body interp_iforest_ body] in h; - try refold_in h. + iunfold in h; step in h; icbn in h; try refold_in h. #[local] Tactic Notation "unstep" "in" ident(h) := - iunfold_in h; - try to_mon_in h; - unstep_in h; - try refold_in h. + iunfold_in h; try to_mon_in h; unstep_in h; try refold_in h. #[local] Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := - iunfold_coind; - coinduction R H; - cbn [body]; - unfold interp_iforest_. + iunfold_coind; coinduction R H; icbn. #[local] Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := icoinduction R H; @@ -319,8 +311,8 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : bcoinduction c cih. #[local] Ltac bcbn := - cbn[eqit_mon body eqit_ interp_iforest_mon]; - unfold interp_iforest_; + cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_]; + cbn; to_mon. @@ -338,11 +330,11 @@ Proof. + step in H0. inv H0. cbn. now rewrite <- H. + unfold interp_iforest. step. econstructor; eauto. now rewrite H. - - do 3 red. + - repeat red. intros t1 t2 eq; split; intros H; step in H; inv H. + step. econstructor; eauto. now rewrite <- eq. + step. econstructor; eauto. now rewrite eq. - - do 3 red. intros. split; intros; cbn in *. now rewrite <- H. now rewrite H. + - repeat red. intros. split; intros; cbn in *. now rewrite <- H. now rewrite H. Qed. #[global] Instance interp_iforestF_Proper @@ -352,7 +344,7 @@ Qed. : Proper(eutt eq ==> iff) (interp_iforestF h_spec RR sim t). Proof. - do 2 red. + repeat red. intros. split; intros. - inversion H0; subst; econstructor; eauto. @@ -370,7 +362,7 @@ Qed. : Proper (eq_itree eq ==> iff) (elem c t). Proof. - do 2 red. revert t. + repeat red. revert t. tower induction. { split. all: repeat intro; apply H; auto. } split. @@ -391,32 +383,29 @@ Proof. Qed. #[global] Instance interp_iforest_Proper2 - {E F} (h_spec : E ~> iforest F) R RR (t : itree E R) : - Proper(eutt Logic.eq ==> iff) (interp_iforest h_spec R RR t). + {E F} (h_spec : E ~> iforest F) R RR (t : itree E R) + (c : Chain (interp_iforest_mon E F h_spec R RR)) + : + Proper (eutt eq ==> iff) (elem c t). Proof. - do 2 red. - intros. - split. - - revert t x y H. - pcofix CIH. - intros t x y eq HI. - red in HI. punfold HI. red in HI. - pstep. red. genobs t ot. - inversion HI; subst; econstructor; eauto. - + rewrite <- eq. assumption. - + pclearbot. right. eapply CIH; eauto. - + rewrite <- eq. apply eq2. - + intros. specialize (HK a H0). pclearbot. right. eapply CIH. 2 : { apply HK. } reflexivity. - - revert t x y H. - pcofix CIH. - intros t x y eq HI. - red in HI. punfold HI. red in HI. - pstep. red. genobs t ot. - inversion HI; subst; econstructor; eauto. - + rewrite eq. assumption. - + pclearbot. right. eapply CIH; eauto. - + rewrite eq. apply eq2. - + intros. specialize (HK a H0). pclearbot. right. eapply CIH. 2 : { apply HK. } reflexivity. + repeat red. revert t. + tower induction. + { split. all: repeat intro; apply H; auto. } + split. + - intros HI. + repeat red; repeat red in HI. + inv HI. + + rewrite H0 in eq2. + eapply Interp_iforest_Ret; eauto. + + econstructor. symmetry in H0. eapply H; eauto. + + econstructor; eauto. now rewrite <- H0. + - intros HI. + repeat red; repeat red in HI. + inv HI. + + rewrite <- H0 in eq2. + eapply Interp_iforest_Ret; eauto. + + econstructor. eapply H; eauto. + + econstructor; eauto. now rewrite H0. Qed. (* This exists in the stdlib as [ProofIrrelevance.inj_pair2], but we reprove @@ -436,59 +425,34 @@ Proof. Qed. #[global] Instance interp_iforest_Proper3 - {E F} (h_spec : E ~> iforest F) R RR : - Proper(eq_itree eq ==> eq ==> iff) (interp_iforest h_spec R RR). + {E F} (h_spec : E ~> iforest F) R RR + (c : Chain (interp_iforest_mon E F h_spec R RR)) + : + Proper (eq_itree eq ==> eq ==> iff) (elem c). Proof. - do 4 red. - intros; split. - - subst. - revert x y H y0. - pcofix CIH. - intros x y eq t H. - pstep; red. - punfold H. red in H. - - punfold eq. red in eq. - genobs x obsx. - genobs y obsy. - revert x y Heqobsx Heqobsy t H. - - induction eq; intros x y Heqobsx Heqobsy t H; inversion H; subst; pclearbot. - + econstructor; eauto. - + econstructor. right. eapply CIH. apply REL. apply HS. - + apply inj_pair2 in H2. - apply inj_pair2 in H3. subst. - econstructor; eauto. intros X HX. specialize (REL X). specialize (HK X HX). pclearbot. - right. eapply CIH; eauto. - + eapply IHeq. reflexivity. reflexivity. - punfold HS. - + econstructor. left. pstep. eapply IHeq. reflexivity. reflexivity. assumption. - + econstructor. left. pstep. eapply IHeq. reflexivity. reflexivity. assumption. - + econstructor. left. pstep. eapply IHeq. reflexivity. reflexivity. assumption. - - - subst. - revert x y H y0. - pcofix CIH. - intros x y eq t H. - pstep; red. - punfold H. red in H. - - punfold eq. red in eq. - genobs x obsx. - genobs y obsy. - revert x y Heqobsx Heqobsy t H. - - induction eq; intros x y Heqobsx Heqobsy t H; inversion H; subst; pclearbot. - + econstructor; eauto. - + econstructor. right. eapply CIH. apply REL. apply HS. - + apply inj_pair2 in H2. - apply inj_pair2 in H3. subst. - econstructor; eauto. intros X HX. specialize (REL X). specialize (HK X HX). pclearbot. - right. eapply CIH; eauto. - + econstructor. left. pstep. eapply IHeq. reflexivity. reflexivity. assumption. - + econstructor. left. pstep. eapply IHeq. reflexivity. reflexivity. assumption. - + econstructor. left. pstep. eapply IHeq. reflexivity. reflexivity. assumption. - + eapply IHeq. reflexivity. reflexivity. punfold HS. + repeat red. tower induction. + { split. all: repeat intro; apply H; auto. } + split. + - intros HI. + repeat red; repeat red in HI. + step in H0. + inv HI; simpobs. + + inv H0. eapply Interp_iforest_Ret; eauto. + + inv H0. econstructor. symmetry in REL. eapply H; eauto. + + eapply eqitF_inv_VisF_l in H0. crunch; try easy. + simpobs. econstructor; eauto. intros. + symmetry in H1. eapply H. + apply H1. all: eauto. + - intros HI. + repeat red; repeat red in HI. + step in H0. + inv HI; simpobs. + + inv H0. eapply Interp_iforest_Ret; eauto. + + inv H0. econstructor. eapply H; eauto. + + eapply eqitF_inv_VisF_r in H0. crunch; try easy. + simpobs. econstructor; eauto. intros. + eapply H. + apply H1. all: eauto. Qed. (* Lemma 5.4: interp_iforest_correct - note that the paper presents a slightly simpler formulation where t = t' *) @@ -499,30 +463,22 @@ Lemma interp_iforest_correct_exec: Proof. intros. revert t t' H1. - pcofix CIH. + bcoinduction. intros t t' eq. - pstep. - red. unfold interp, Basics.iter, MonadIter_itree. rewrite (itree_eta t) in eq. - destruct (observe t). - - econstructor. reflexivity. rewrite <- eq. rewrite unfold_iter. cbn. - rewrite Eqit.bind_ret_l. cbn. reflexivity. - - econstructor. right. - eapply CIH. rewrite tau_eutt in eq. rewrite eq. reflexivity. - - econstructor. - 2 : { rewrite <- eq. rewrite unfold_iter. cbn. - unfold ITree.map. rewrite Eqit.bind_bind. - setoid_rewrite Eqit.bind_ret_l at 1. cbn. setoid_rewrite tau_eutt. - reflexivity. } - apply H. - intros a. cbn. - right. - unfold interp, Basics.iter, MonadIter_itree in CIH. unfold fmap, Functor_itree, ITree.map in CIH. - specialize (CIH (k a) (k a)). - apply CIH. - reflexivity. -Qed. + destruct (observe t) eqn:oeqt. + - rewrite <- eq. rewrite unfold_iter. bcbn. + rewrite Eqit.bind_ret_l. repeat red. simpobs. now econstructor. + - rewrite <- eq. rewrite unfold_iter. bcbn. rewrite Eqit.bind_ret_l. + rewrite tau_eutt. + repeat red. simpobs. econstructor. now apply cih. + - rewrite <- eq. rewrite unfold_iter. bcbn. + rewrite bind_map. repeat red; simpobs. econstructor. + + apply H. + + ebind. intros; subst. rewrite tau_eutt. reflexivity. + + intros. rewrite tau_eutt. now apply cih. +Qed. (* Lemma 5.5 - note that the paper presents this lemma after unfolding the definition of Proper. *) @@ -531,46 +487,36 @@ Qed. Proper (@eutt _ _ _ RR ==> eq ==> flip Basics.impl) (@interp_iforest E _ h_spec R RR). Proof. intros. - - do 5 red. + repeat red. intros t1 t2 eqt s' s eqs HI. subst. - revert t1 t2 eqt s HI. - - pcofix CIH. - + icoinduction c cih. intros. + step in HI. - pstep. red. - punfold HI. red in HI. - - punfold eqt. red in eqt. + step in eqt. genobs t1 obst1. genobs t2 obst2. revert t1 t2 Heqobst1 Heqobst2 s HI. - induction eqt; intros. - - inversion HI; subst. - econstructor. etransitivity; eauto. assumption. - - inversion HI; subst. - econstructor. pclearbot. right. eapply CIH; eauto. - - inversion HI. - subst. + - inv HI. econstructor. etransitivity; eauto. eauto. + - inv HI. + econstructor. eapply cih; eauto. + - inv HI. apply inj_pair2 in H1. apply inj_pair2 in H2. subst. econstructor. apply HTA. apply eq2. - intros a Ha. specialize (REL a). specialize (HK a Ha). red in REL. pclearbot. - right. eapply CIH. apply REL. apply HK. - - econstructor. - left. pstep. red. eapply IHeqt. reflexivity. eassumption. assumption. - - inversion HI; subst. - pclearbot. + intros a Ha. specialize (REL a). specialize (HK a Ha). red in REL. + eapply cih. apply REL. apply HK. + - econstructor. step. + eapply IHeqt. reflexivity. eassumption. assumption. + - inv HI. eapply IHeqt. reflexivity. reflexivity. - pinversion HS. + now unstep. Qed. Lemma Leaf_Vis_sub : forall {E} {R} X (e : E X) (k : X -> itree E R) u x, Leaf u (k x) -> Leaf u (Vis e k). @@ -583,18 +529,13 @@ Lemma eutt_Leaf_ : forall {E} {R} (RR : R -> Prop) (ta : itree E R) (IN: forall (a : R), Leaf a ta -> RR a), eutt (fun u1 u2 => u1 = u2 /\ RR u1) ta ta. Proof. intros E R. - ginit. - gcofix CIH; intros. - + icoinduction c cih. intros. setoid_rewrite (itree_eta ta) in IN. - - gstep. red. - destruct (observe ta). - - econstructor. split; auto. apply IN. econstructor. reflexivity. - - econstructor. gfinal. left. apply CIH. intros. eapply IN. rewrite tau_eutt. assumption. - - econstructor. intros. red. - gfinal. left. apply CIH. intros. eapply IN. eapply Leaf_Vis_sub. apply H. + - econstructor. split; auto. apply IN. now econstructor. + - econstructor. apply cih. intros. eapply IN. now rewrite tau_eutt. + - econstructor. intros. + apply cih. intros. eapply IN. eapply Leaf_Vis_sub. apply H. Qed. Lemma eutt_Leaf : forall E R (ta : itree E R), eutt (fun u1 u2 => u1 = u2 /\ Leaf u1 ta) ta ta. @@ -614,8 +555,8 @@ Proof. red. split; [| split]. - intros; split; intros. - + unfold trigger in H0. red in H0. - pinversion H0; subst. + + unfold trigger in H0. step in H0. + inv H0. apply inj_pair2 in H3. apply inj_pair2 in H4. subst. unfold subevent, resum, ReSum_id, Id_IFun, id_ in HTA. @@ -624,16 +565,16 @@ Proof. { rewrite <- (Eqit.bind_ret_r ta). apply eutt_bind_eutt with (UU := fun u1 u2 => u1 = u2 /\ Leaf u1 ta). rewrite Eqit.bind_ret_r. apply eutt_Leaf. - intros. destruct H1. subst. specialize (HK u2 H2). pclearbot. pinversion HK. subst. assumption. + intros. destruct H0. subst. specialize (HK u2 H1). step in HK. inv HK. } - rewrite H1 in H. - specialize (HP R e e eq_refl). unfold Eq1_iforest in HP. destruct HP as (P & _ & _). + rewrite H0 in H. + specialize (HP R e e eq_refl). unfold Eq1_iforest in HP. destruct HP as (P & _ & _). rewrite P. apply HTA. symmetry. assumption. + unfold trigger, subevent, resum, ReSum_id, Id_IFun, id_. - red. pstep. eapply Interp_iforest_Vis with (k2 := (fun x : R => Ret x)). + step. eapply Interp_iforest_Vis with (k2 := (fun x : R => Ret x)). * apply H0. * unfold bind, Monad_itree. rewrite Eqit.bind_ret_r. assumption. - * intros a. left. pstep. red. econstructor. reflexivity. reflexivity. + * intros. step. econstructor; eauto. - hnf. intros; split; intros. rewrite <- H. assumption. rewrite H. assumption. @@ -662,8 +603,7 @@ Lemma interp_iforest_spin_accepts_anything : interp_iforest h_spec R RR ITree.spin t. Proof. intros. - pcofix CIH. - pstep. red. cbn. econstructor. right. apply CIH. + icoinduction c cih. cbn. econstructor. apply cih. Qed. (* Figure 7: Structural law for tau *) @@ -676,10 +616,9 @@ Proof. split; [| split]. - intros; split; intros. + rewrite <- H. - pstep. red. econstructor. left. apply H0. + step. now econstructor. + rewrite H. - pinversion H0. subst. - apply HS. + step in H0. inv H0. - typeclasses eauto. - typeclasses eauto. Qed. @@ -692,8 +631,7 @@ Lemma interp_iforest_ret_inv : exists r2, RR r1 r2 /\ t ≈ ret r2. Proof. intros. - punfold H. - red in H. inversion H; subst. + step in H. inv H. exists r2; eauto. Qed. @@ -707,8 +645,7 @@ Lemma interp_iforest_vis_inv : h_spec S e ms /\ t ≈ (bind ms ks). Proof. intros. - punfold H. - red in H. inversion H; subst. + step in H; inv H. apply inj_pair2 in H2. apply inj_pair2 in H3. subst. @@ -723,10 +660,7 @@ Lemma interp_iforest_tau_inv : interp_iforest h_spec R RR s t. Proof. intros. - punfold H. - red in H. inversion H; subst. - pclearbot. - apply HS. + step in H; inv H. Qed. Lemma case_iforest_handler_correct: @@ -774,99 +708,32 @@ Definition iter_cont {I E R} (step' : I -> itree E (I + R)) : ITree.bind (step' i) (@iter_cont I E R step') ≈ r /\ (forall j, step j (step' j))). -Section LeafBind. - - Context {E : Type -> Type} {R S : Type}. - - Import ITreeNotations. - Local Open Scope itree. - - Inductive eqit_Leaf_bind_clo b1 b2 (r : itree E R -> itree E S -> Prop) : - itree E R -> itree E S -> Prop := - | pbc_intro_h U (t1 t2: itree E U) (k1 : U -> itree E R) (k2 : U -> itree E S) - (EQV: eqit eq b1 b2 t1 t2) - (REL: forall u, Leaf u t1 -> r (k1 u) (k2 u)) - : eqit_Leaf_bind_clo b1 b2 r (ITree.bind t1 k1) (ITree.bind t2 k2) - . - Hint Constructors eqit_Leaf_bind_clo: itree. - - Lemma eqit_Leaf_clo_bind (RS : R -> S -> Prop) b1 b2 vclo - (MON: monotone2 vclo) - (CMP: compose (eqitC RS b1 b2) vclo <3= compose vclo (eqitC RS b1 b2)) - (ID: id <3= vclo): - eqit_Leaf_bind_clo b1 b2 <3= gupaco2 (eqit_ RS b1 b2 vclo) (eqitC RS b1 b2). - Proof. - gcofix CIH. intros. destruct PR. - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; try (rewrite (itree_eta (x <- _;; _ x)), unfold_bind; reflexivity). - punfold EQV. unfold_eqit. - genobs t1 ot1. - genobs t2 ot2. - hinduction EQV before CIH; intros; pclearbot. - - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; try (rewrite <- !itree_eta; reflexivity). - gbase; cbn. - apply REL0. - rewrite itree_eta, <- Heqot1; constructor; reflexivity. - - gstep. econstructor. - gbase. - apply CIH. - constructor; auto. - intros u HR. - apply REL0. - rewrite itree_eta, <- Heqot1. econstructor 2. reflexivity. assumption. - - gstep. econstructor. - intros; apply ID; unfold id. - gbase. - apply CIH. - constructor; auto. eapply REL. - intros ? HR; apply REL0. - rewrite itree_eta, <- Heqot1. - econstructor 3; eauto; reflexivity. - - destruct b1; try discriminate. - guclo eqit_clo_trans. - econstructor. - 3:{ eapply IHEQV; eauto. - intros ? HR; apply REL. - rewrite itree_eta, <- Heqot1; econstructor 2. reflexivity. eauto. - } - 3,4:auto_ctrans_eq. - 2: reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind, <-itree_eta. reflexivity. - - destruct b2; try discriminate. - guclo eqit_clo_trans. - econstructor; auto_ctrans_eq; cycle -1; eauto; try reflexivity. - eapply eqit_Tau_l. rewrite unfold_bind, <-itree_eta. reflexivity. - Qed. - -End LeafBind. - Lemma eqit_Leaf_bind' {E} {R} {T} b1 b2 (t1 t2: itree E T) (k1 k2: T -> itree E R) : - eqit eq b1 b2 t1 t2 -> - (forall r, Leaf r t1 -> eqit eq b1 b2 (k1 r) (k2 r)) -> - @eqit E _ _ eq b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit b1 b2 eq t1 t2 -> + (forall r, Leaf r t1 -> eqit b1 b2 eq (k1 r) (k2 r)) -> + eqit b1 b2 eq (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. ginit. guclo (@eqit_Leaf_clo_bind E R R eq). unfold eqit in *. - econstructor; eauto with paco. + intros. eapply eqit_clo_bind_gen; eauto. intros; subst. + eapply H0. eauto. Qed. Lemma eqit_Leaf_bind'' {E} {R S} {T} (RS : R -> S -> Prop) b1 b2 (t1 t2: itree E T) (k1: T -> itree E R) (k2 : T -> itree E S) : - eqit eq b1 b2 t1 t2 -> - (forall r, Leaf r t1 -> eqit RS b1 b2 (k1 r) (k2 r)) -> - @eqit E _ _ RS b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit b1 b2 eq t1 t2 -> + (forall r, Leaf r t1 -> eqit b1 b2 RS (k1 r) (k2 r)) -> + eqit b1 b2 RS (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. ginit. guclo (@eqit_Leaf_clo_bind E R S RS). unfold eqit in *. - econstructor; eauto with paco. + intros. eapply eqit_clo_bind_gen; eauto. intros; subst. + eapply H0. eauto. Qed. Lemma eutt_ret_vis_abs: forall {X Y E} (x: X) (e: E Y) k, Ret x ≈ Vis e k -> False. Proof. intros. - punfold H; inv H. + now step in H; inv H. Qed. - +(* *) Ltac simpl_iter := unfold iter, Iter_Kleisli, Basics.iter, MonadIter_itree. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 7160b5f8..0b411dcc 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -640,83 +640,83 @@ Section eqit_gen. Properties of the chains specialize to the relations: the gfp is an element of the chain. *) - #[global] Instance Reflexive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) +#[global] Instance Reflexive_eqitF b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive RR -> Reflexive sim -> Reflexive (eqitF RR b1 b2 sim). - Proof. +Proof. red. destruct x; constructor; eauto with itree. - Qed. +Qed. (* We of course exclude the asymmetric case *) - #[global] Instance Symmetric_eqitF b (sim : itree E R -> itree E R -> Prop) +#[global] Instance Symmetric_eqitF b (sim : itree E R -> itree E R -> Prop) : Symmetric RR -> Symmetric sim -> Symmetric (eqitF RR b b sim). - Proof. +Proof. red. induction 3; constructor; subst; eauto. - Qed. +Qed. (* Note the strong bisimulation assumption *) - #[global] Instance Transitive_eqitF (sim : itree E R -> itree E R -> Prop) +#[global] Instance Transitive_eqitF (sim : itree E R -> itree E R -> Prop) : Transitive RR -> Transitive sim -> Transitive (eqitF RR false false sim). - Proof. +Proof. intros ?? t u v EQ1 EQ2. inv EQ1; try now (inv EQ2; eauto with itree). apply eqitF_inv_VisF_l in EQ2 as [(? & -> & ?) | [abs _]]; [| easy]. constructor; eauto. - Qed. +Qed. - #[global] Instance Reflexive_eqit_ b1 b2 +#[global] Instance Reflexive_eqit_ b1 b2 (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) : Reflexive RR -> Reflexive (sim R R RR) -> Reflexive (eqit_ b1 b2 sim R R RR). - Proof. repeat red. intros. reflexivity. Qed. +Proof. repeat red. intros. reflexivity. Qed. - #[global] Instance Symmetric_eqit_ b +#[global] Instance Symmetric_eqit_ b (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) : Symmetric RR -> Symmetric (sim R R RR) -> Symmetric (eqit_ b b sim R R RR). - Proof. repeat red; symmetry; auto. Qed. +Proof. repeat red; symmetry; auto. Qed. - #[global] Instance Transitive_eqit_ - (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) - : Transitive RR -> Transitive (sim R R RR) -> Transitive (eqit_ false false sim R R RR). - Proof. repeat red; etransitivity; eauto. Qed. +#[global] Instance Transitive_eqit_ + (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + : Transitive RR -> Transitive (sim R R RR) -> Transitive (eqit_ false false sim R R RR). +Proof. repeat red; etransitivity; eauto. Qed. - (* Prove Reflexive/Symmetric for eqit first (by coinduction), - then derive for elem via gfp_chain. *) +(* Prove Reflexive/Symmetric for eqit first (by coinduction), + then derive for elem via gfp_chain. *) - #[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E b1 b2 _ _ RR). - Proof. - red; intros. - revert x. icoinduction c CIH. intro. - now repeat apply Reflexive_eqit_. - Qed. +#[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E b1 b2 _ _ RR). +Proof. + red; intros. + revert x. icoinduction c CIH. intro. + now repeat apply Reflexive_eqit_. +Qed. - #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E b b _ _ RR). - Proof. - intros Hsym x y Hxy. - apply eqit_flip. - eapply eqit_mono; [auto | auto | | exact Hxy]; auto. - Qed. +#[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E b b _ _ RR). +Proof. + intros Hsym x y Hxy. + apply eqit_flip. + eapply eqit_mono; [auto | auto | | exact Hxy]; auto. +Qed. - #[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) - {c: Chain (@eqit_mon E b1 b2)}: Reflexive (elem c R R RR). - Proof. - red; intro x. - apply (gfp_chain c). - reflexivity. - Qed. +#[global] Instance Reflexive_elem (b1 b2: bool) (HR : Reflexive RR) + {c: Chain (@eqit_mon E b1 b2)}: Reflexive (elem c R R RR). +Proof. + red; intro x. + apply (gfp_chain c). + reflexivity. +Qed. - Lemma inf_closed_Symmetric_at : - inf_closed (X := forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) - (fun x => Symmetric (x R R RR)). - Proof. - intros T HT x y Hxy. - intros z Hz. apply HT; auto. - Qed. +Lemma inf_closed_Symmetric_at : + inf_closed (X := forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) + (fun x => Symmetric (x R R RR)). +Proof. + intros T HT x y Hxy. + intros z Hz. apply HT; auto. +Qed. - #[global] Instance Symmetric_elem (b: bool) (HS : Symmetric RR) - {c: Chain (@eqit_mon E b b)}: Symmetric (elem c R R RR). - Proof. - revert c. apply (tower inf_closed_Symmetric_at). - intros c Hsym. apply Symmetric_eqit_; auto. - Qed. +#[global] Instance Symmetric_elem (b: bool) (HS : Symmetric RR) + {c: Chain (@eqit_mon E b b)}: Symmetric (elem c R R RR). +Proof. + revert c. apply (tower inf_closed_Symmetric_at). + intros c Hsym. apply Symmetric_eqit_; auto. +Qed. End eqit_gen. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 2f90fe76..5e85c71c 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -21,7 +21,7 @@ Import ITreeNotations. (** The [Leaf a t] predicate expresses that [t] has a [Ret] leaf with value [a]. - + (* TODO REWRITE THIS WITH NEW THEORY *) We provide the elementary structural lemmas to work with this predicate, and one main useful result relying on [Leaf]: the up-to bind closure [eqit_bind_clo] can be refined such that From 210b6f29b4962949fc15371829eadc22e8c1d273 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 23 Apr 2026 11:23:20 -0400 Subject: [PATCH 125/189] Done with IForest. --- extra/IForest.v | 47 +++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/extra/IForest.v b/extra/IForest.v index 9ed57fa4..c3fa44c4 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -971,12 +971,11 @@ Proof. destruct eqtt' as (ta & k & HPA & EQ & HRET). eapply H; [symmetry; eauto | clear eq t']. eapply H; [eauto | clear EQ t]. - eapply H; eauto. + eapply H. 2: eauto. rewrite <- (Monad.bind_ret_r _ ta) at 2. apply eqit_Leaf_bind'; [reflexivity |]. intros. rewrite (HRET r); auto. - reflexivity. * cbn. exists t', (fun x => Ret x); split; [auto|]; split. @@ -1029,51 +1028,43 @@ Proof. intros. rewrite H. assumption. Qed. -Definition eq_relation {A} (R S : A -> A -> Prop) := - R <2= S /\ S <2= R. - #[global] Instance eutt_EQ_REL_Proper {E} {A} : - Proper (eq_relation ==> eutt eq ==> @eutt E A A eq ==> iff) (eutt). + Proper (eq_rel ==> @eutt E A A eq ==> @eutt E A A eq ==> iff) (eutt). Proof. repeat red. intros; split; intros. - rewrite <- H0. rewrite <- H1. clear H0 H1. destruct H. - eapply eqit_mon; eauto. + eapply eqit_mono; eauto. - rewrite H0, H1. destruct H. - eapply eqit_mon; eauto. + eapply eqit_mono; eauto. Qed. Lemma eutt_EQ_REL_Reflexive_ {E} {A} (ta : itree E A) : - forall R, (EQ_REL ta) <2= R -> + forall R, (EQ_REL ta) <= R -> eutt R ta ta. Proof. revert ta. - ginit. gcofix CIH. intros ta HEQ. - gstep. red. - genobs ta obs. - destruct obs. - - econstructor. apply HEQ. red. split; auto. rewrite itree_eta. rewrite <- Heqobs. constructor 1. reflexivity. - - econstructor. gbase. apply CIH. - setoid_rewrite itree_eta in HEQ. - destruct (observe ta); inversion Heqobs. subst. - assert (Tau t0 ≈ t0) by apply tau_eutt. - setoid_rewrite H in HEQ. - auto. - - econstructor. intros. red. gbase. apply CIH. - intros. apply HEQ. - rewrite itree_eta. rewrite <- Heqobs. - red in PR. destruct PR. - red. split; auto. - econstructor 3. reflexivity. apply H0. + icoinduction c cih. intros ta R HEQ. + desobs ta hta. + - econstructor. apply HEQ. red. split; auto. + rewrite itree_eta. rewrite hta. now constructor. + - econstructor. apply cih. intros!. apply HEQ. + red. destruct H. split; auto. + econstructor 2; eauto. + - econstructor; intros. apply cih. + intros!. apply HEQ. + rewrite itree_eta, hta. + destruct H. + split; auto. + econstructor 3; eauto. Qed. Lemma eutt_EQ_REL_Reflexive {E} {A} (ta : itree E A) : eutt (EQ_REL ta) ta ta. Proof. - apply eutt_EQ_REL_Reflexive_. - auto. + now apply eutt_EQ_REL_Reflexive_. Qed. Definition RET_EQ {E} {A} (ta : itree E A) : A -> A -> Prop := From dc79d5debcfcc6d3f91275a8750450aa3fa403ab Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 23 Apr 2026 13:12:38 -0400 Subject: [PATCH 126/189] Some refactoring. Done up to deterimize in itracefacts. --- _CoqProject.backup | 5 + extra/IForest.v | 32 ++---- extra/ITrace/ITraceFacts.v | 189 ++++++++++++++++--------------- theories/Basics/Utils.v | 26 +++++ theories/Eq/Eqit.v | 153 ++++++++++++++----------- theories/Eq/Rutt.v | 24 ++-- theories/Eq/SimUpToTaus.v | 22 ++-- theories/Events/ExceptionFacts.v | 2 +- theories/Interp/TranslateFacts.v | 2 +- 9 files changed, 248 insertions(+), 207 deletions(-) create mode 100644 _CoqProject.backup diff --git a/_CoqProject.backup b/_CoqProject.backup new file mode 100644 index 00000000..ef1176f7 --- /dev/null +++ b/_CoqProject.backup @@ -0,0 +1,5 @@ +-Q _build/default/theories ITree +-Q _build/default/extra ITree.Extra +-Q _build/default/examples ITreeExamples +-Q _build/default/tutorial ITreeTutorial +-Q _build/default/tests ITreeTests diff --git a/extra/IForest.v b/extra/IForest.v index c3fa44c4..100aaf2d 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -168,24 +168,11 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : fun R (RR: relation R) => gfp (interp_iforest_mon E F h_spec R RR). -#[local] Ltac iunfold_all := - unfold euttge, eq_itree, eutt, eqit, - interp_iforest in *. +#[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit, interp_iforest. +#[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit, interp_iforest in h. +#[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit, interp_iforest in *. -#[local] Ltac iunfold_in h := - unfold euttge, eq_itree, eutt, eqit, - interp_iforest in h. - -#[local] Ltac iunfold := - unfold euttge, eq_itree, eutt, eqit, - interp_iforest. - -#[local] Ltac iunfold_coind := - first - [ intros ?; iunfold_coind; revert_last - | unfold euttge, eutt, eq_itree, eqit, - interp_iforest - ]. +#[local] Ltac iunfold_coind := unfold_coind_with iunfold. #[local] Ltac refold := repeat match goal with @@ -314,6 +301,9 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_]; cbn; to_mon. + +(* step -> inversion; common pattern for eutt Hyps *) +Ltac sinv H := step in H; inv H. @@ -331,7 +321,7 @@ Proof. cbn. now rewrite <- H. + unfold interp_iforest. step. econstructor; eauto. now rewrite H. - repeat red. - intros t1 t2 eq; split; intros H; step in H; inv H. + intros t1 t2 eq; split; intros H; sinv H. + step. econstructor; eauto. now rewrite <- eq. + step. econstructor; eauto. now rewrite eq. - repeat red. intros. split; intros; cbn in *. now rewrite <- H. now rewrite H. @@ -645,7 +635,7 @@ Lemma interp_iforest_vis_inv : h_spec S e ms /\ t ≈ (bind ms ks). Proof. intros. - step in H; inv H. + sinv H. apply inj_pair2 in H2. apply inj_pair2 in H3. subst. @@ -660,7 +650,7 @@ Lemma interp_iforest_tau_inv : interp_iforest h_spec R RR s t. Proof. intros. - step in H; inv H. + sinv H. Qed. Lemma case_iforest_handler_correct: @@ -731,7 +721,7 @@ Qed. Lemma eutt_ret_vis_abs: forall {X Y E} (x: X) (e: E Y) k, Ret x ≈ Vis e k -> False. Proof. intros. - now step in H; inv H. + now sinv H. Qed. (* *) Ltac simpl_iter := diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index 7cbfcee0..5773b122 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -1,5 +1,6 @@ From Stdlib Require Import Morphisms. + From ITree Require Import Utils @@ -7,6 +8,7 @@ From ITree Require Import ITree ITreeFacts Eq.Rutt + Eq.RuttFacts Props.Infinite. From ITree.Extra Require Import @@ -15,12 +17,15 @@ From ITree.Extra Require Import Set Implicit Arguments. -From Paco Require Import paco. Import Monads. Import MonadNotation. Local Open Scope monad_scope. +Tactic Notation "step" := repeat red; step. +Tactic Notation "step" "in" ident(h) := repeat red in h; step in h. +Tactic Notation "sinv" ident(h) := step in h; inv h. + Lemma classic_empty : forall (A : Type), ( exists e : A + (A -> void), True ). Proof. intros. destruct (classic (exists a : A, True)). @@ -47,24 +52,19 @@ Lemma may_converge_trace : forall (E : Type -> Type) (R : Type) (b : itrace E R) (r1 r2 : R), may_converge r1 b -> may_converge r2 b -> r1 = r2. Proof. - intros. induction H; inversion H0; subst. - - rewrite H in H1. pinversion H1. subst. auto. - - rewrite H in H1. pinversion H1. - - destruct e. destruct b. apply IHmay_converge. rewrite H in H0. inversion H0; subst; - contra_void. - + pinversion H3. - + destruct e; [ | contradiction ]. destruct b. - pinversion H3. ddestruction. - enough (k tt ≈ k0 tt); try apply REL. - rewrite H5. auto. - + contradiction. - - destruct e. destruct e0. destruct b. destruct b0. + intros. induction H; inv H0. + - rewrite H in H1. sinv H1. + - rewrite H in H1. sinv H1. + - destruct e. destruct b. apply IHmay_converge. + + rewrite H in H2. sinv H2. + + contra_void. + - destruct e; try contra_void. + destruct e0; try contra_void. + destruct b. destruct b0. apply IHmay_converge. rewrite H in H2. - pinversion H2. ddestruction. + sinv H2. ddestruction. subst. enough (k tt ≈ k0 tt); try apply REL. - rewrite H4. auto; contra_void. - + destruct b0. - + destruct b. + rewrite H0. auto. Qed. Lemma finite_nil {E : Type -> Type} : finite (@Nil E). @@ -89,8 +89,9 @@ Proof. - destruct IHmay_converge as [l Hl]. unfold ev_list in l. inversion e. subst. exists (cons e l). simpl. rewrite H. - destruct b. pfold. red. cbn. constructor. - intros. destruct v. left. auto. + destruct b. + apply eqit_Vis. + intros. now destruct u. subst. contradiction. Qed. @@ -99,15 +100,13 @@ Lemma append_vis : forall (E : Type -> Type) (R : Type) Vis e k ++ b ≈ Vis e (fun a => k a ++ b). Proof. intros E R. unfold append. intros. - pfold. red. cbn. constructor. intros. left. - enough ( (ITree.bind (k v) (fun _ : unit => b) ≈ (ITree.bind (k v) (fun _ : unit => b) ) ) ); auto. - reflexivity. + step. cbn. evis. Qed. Global Instance proper_append {E R} : Proper (@eutt (EvAns E) unit unit eq ==> @eutt (EvAns E) R R eq ==> eutt eq) (@append E R). Proof. intros log1 log2 Hlog b1 b2 Hb. unfold append. rewrite Hlog. - eapply eutt_bind_eutt; eauto. reflexivity. + eapply eutt_bind_eutt; eauto. Qed. Lemma may_converge_append : forall (E : Type -> Type) (R : Type) @@ -128,11 +127,11 @@ Lemma converge_itrace_ev_list : forall (E : Type -> Type) (R : Type) Proof. intros. induction H. - exists nil. cbn. rewrite H. - pfold. red. cbn. constructor. auto. + step. cbn. eret. - destruct IHmay_converge as [log Hlog]. inversion e. subst. exists (cons e log). cbn. rewrite append_vis. rewrite H. - pfold. red. cbn. constructor. cbn. intros. destruct v. - left. destruct b. apply Hlog. subst. contradiction. + step. constructor. intros. destruct v. + destruct b. apply Hlog. subst. contradiction. Qed. Lemma classic_converge_itrace : forall (E : Type -> Type) (R : Type) (b : itrace E R), @@ -169,7 +168,7 @@ Proof. intros. induction log. - cbn. unfold append. rewrite bind_ret_l. auto. - cbn. unfold append. - pfold. red. cbn. constructor. intros. left. auto. + step. repeat red. cbn. constructor. intro. auto. Qed. Lemma inv_append_eutt : forall (E : Type -> Type) (R : Type) (r1 r2 : R) @@ -179,15 +178,13 @@ Lemma inv_append_eutt : forall (E : Type -> Type) (R : Type) (r1 r2 : R) Proof. intros. generalize dependent log2. induction log1; intros. - destruct log2. - + split; auto. cbn in H. pinversion H. cbn. unfold append in *. - cbn in *. subst. auto. - + pinversion H. + + split; auto. cbn in H. sinv H. + + sinv H. - destruct log2. - + pinversion H. - + cbn in H. unfold append in H. pinversion H. cbn in *. ddestruction. - subst. + + sinv H. + + cbn in H. unfold append in H. sinv H. cbn in *. ddestruction. enough (log1 = log2 /\ r1 = r2). - { destruct H0. subst. auto. } + { destruct H. subst. auto. } apply IHlog1. apply REL. apply tt. Qed. @@ -195,111 +192,110 @@ Lemma trace_refine_proper_left' : forall (E : Type -> Type) (R : Type) (b1 b2 : (t : itree E R), (b1 ≈ b2) -> rutt (REvRef E) (RAnsRef E) eq b1 t -> rutt (REvRef E) (RAnsRef E) eq b2 t. Proof. - intros E R. pcofix CIH. intros. pfold. red. - punfold H1. red in H1. punfold H0. red in H0. - genobs_clear t ot3. - hinduction H0 before CIH; intros; clear b1 b2; eauto. - - remember (RetF r1) as ot1. hinduction H1 before CIH; intros; inv Heqot1; eauto with paco. + intros E R. rcoinduction c cih. intros. + step in H0. repeat red in H0. step in H. + genobs t ot3. clear Heqot3. + hinduction H before cih; intros; subst; eauto. + - remember (RetF r2) as ot1. hinduction H0 before cih; intros; inv Heqot1; eauto with paco. + constructor. auto. + constructor. eapply IHruttF; eauto. (* Tau Tau case causes the most problems, seems *) - assert (DEC: (exists m3, ot3 = TauF m3) \/ (forall m3, ot3 <> TauF m3)). { destruct ot3; eauto; right; red; intros; inv H. } destruct DEC as [EQ | EQ]. - + destruct EQ as [m3 ?]; subst. pclearbot. - constructor. right. eapply CIH; eauto. - apply rutt_inv_Tau. pfold. auto. - + inv H1; try (exfalso; eapply EQ; eauto; fail). - pclearbot. constructor. - punfold REL. red in REL. - hinduction H0 before CIH; intros; subst; try (exfalso; eapply EQ; eauto; fail). + + destruct EQ as [m3 ?]; subst. + constructor. eapply cih; eauto. + apply rutt_inv_Tau. now step. + + inv H0; try (exfalso; eapply EQ; eauto; fail). + constructor. + step in REL. + hinduction H1 before cih; intros; subst; try (exfalso; eapply EQ; eauto; fail). * dependent induction REL; rewrite <- x. ++ constructor. auto. ++ constructor. eapply IHREL; eauto. * dependent induction REL; rewrite <- x. - ++ constructor; auto. intros. apply H0 in H1. right. - pclearbot. eapply CIH; eauto with itree. + ++ constructor; auto. intros. apply H0 in H1. + eapply cih. apply REL. assumption. ++ constructor. eapply IHREL; eauto. * eapply IHruttF; eauto. clear IHruttF. dependent induction REL; try (exfalso; eapply EQ; eauto; fail). - ++ pclearbot. rewrite <- x. constructor; auto. pstep_reverse. + ++ rewrite <- x. constructor; auto. now unstep. ++ auto. ++ rewrite <- x. constructor; auto. eapply IHREL; eauto. - remember (VisF e k1) as ot1. - hinduction H1 before CIH; intros; dependent destruction Heqot1. - + pclearbot. constructor; auto. intros. apply H0 in H1. - pclearbot. right. - eapply CIH; eauto with itree. + hinduction H0 before cih; intros; dependent destruction Heqot1. + + constructor; auto. intros. apply H0 in H1. + eapply cih. apply REL. assumption. + constructor. eapply IHruttF; eauto. - - eapply IHeqitF. remember (TauF t1) as otf1. - hinduction H1 before CIH; intros; dependent destruction Heqotf1; eauto. - + constructor. pclearbot. pstep_reverse. + - eapply IHeqitF; eauto. remember (TauF t1) as otf1. + hinduction H0 before cih; intros; dependent destruction Heqotf1; eauto. + + constructor. now unstep. + constructor. eapply IHruttF; eauto. - - constructor. eapply IHeqitF. eauto. + - constructor. eapply IHeqitF; eauto. Qed. Lemma trace_refine_proper_right' : forall (E : Type -> Type) (R : Type) (b : itrace E R) (t1 t2 : itree E R), t1 ≈ t2 -> rutt (REvRef E) (RAnsRef E) eq b t1 -> rutt (REvRef E) (RAnsRef E) eq b t2. Proof. - intros E R. pcofix CIH. intros. punfold H1. red in H1. - punfold H0. red in H0. pfold. red. + intros E R. rcoinduction c CIH. intros. step in H. + step in H0. repeat red in H0. genobs_clear t2 ot2. - hinduction H0 before CIH; intros; clear t1; subst; eauto. - - remember (RetF r2) as ot1. hinduction H1 before CIH; intros; inv Heqot1; eauto with paco. + hinduction H before CIH; intros; clear t1; subst; eauto. + - remember (RetF r2) as ot1. hinduction H0 before CIH; intros; inv Heqot1; eauto with paco. + constructor; auto. + constructor. eauto. - - pclearbot. remember (TauF m1) as otm1. - hinduction H1 before CIH; intros; subst; try (inv Heqotm1). - + constructor. pclearbot. right. eapply CIH; eauto. - + constructor. right. eapply CIH; eauto. - apply rutt_inv_Tau_r. pfold. auto. - + punfold REL. red in REL. + - remember (TauF m1) as otm1. + hinduction H0 before CIH; intros; subst; try (inv Heqotm1). + + constructor. eapply CIH; eauto. + + constructor. eapply CIH; eauto. + apply rutt_inv_Tau_r. now step. + + step in REL. dependent induction REL; subst. * constructor. clear IHruttF. - hinduction H1 before CIH; intros; dependent destruction x0. + hinduction H0 before CIH; intros; dependent destruction x0. ++ rewrite <- x. constructor. auto. ++ constructor. auto. - * pclearbot. eapply IHruttF; auto. 2 : symmetry; eauto. - pclearbot. pfold. red. rewrite <- x. constructor; auto. - punfold REL. + * eapply IHruttF. 2 : symmetry; eauto. + step. rewrite <- x. constructor; auto. + now step in REL. * constructor. rewrite <- x. - clear IHruttF. hinduction H1 before CIH; intros; dependent destruction x0. + clear IHruttF. hinduction H0 before CIH; intros; dependent destruction x0. ++ constructor; auto. intros. apply H0 in H1. - pclearbot. right. eapply CIH; eauto with itree. + eapply CIH. apply REL. assumption. ++ constructor. eapply IHruttF; eauto. - * eapply IHruttF; eauto. + * unstep in REL. eapply IHruttF; eauto. * constructor. rewrite <- x. eapply IHREL; eauto. - - remember (VisF e k1) as ot1. hinduction H1 before CIH; intros; inv Heqot1. + - remember (VisF e k1) as ot1. hinduction H0 before CIH; intros; inv Heqot1. + ddestruction. constructor; auto. intros. apply H0 in H1. - right. pclearbot. eapply CIH; eauto; apply REL. + eapply CIH. apply REL. assumption. + constructor. eauto. - eapply IHeqitF; eauto. remember (TauF t0) as otf0. - hinduction H1 before CIH; intros; dependent destruction Heqotf0; eauto. - + constructor. pclearbot. pstep_reverse. + hinduction H0 before CIH; intros; dependent destruction Heqotf0; eauto. + + constructor. now unstep. + constructor. eapply IHruttF; eauto. - - constructor. eapply IHeqitF. eauto. + - constructor. eapply IHeqitF; eauto. Qed. #[global] Instance trace_refine_proper {E R} : Proper (@eutt E R R eq ==> eutt eq ==> iff) trace_refine. Proof. intros b1 b2 Heuttb t1 t2 Heuttt. split; intros; - try (eapply trace_refine_proper_right'; [eauto | eapply trace_refine_proper_left'; eauto]); - auto; symmetry; auto. + try (eapply trace_refine_proper_right'; [eauto | eapply trace_refine_proper_left'; eauto]). + now rewrite Heuttb, Heuttt. Qed. Lemma trace_refine_ret : forall (E : Type -> Type) (R : Type) (r : R), @trace_refine E R (Ret r) (Ret r). Proof. - intros. pfold. constructor. auto. + intros. step. constructor. auto. Qed. Lemma trace_refine_ret_inv_r : forall (E : Type -> Type) (R : Type) (r : R) (t : itree E R), Ret r ⊑ t -> t ≈ Ret r. Proof. - intros. pfold. red. punfold H. red in H. cbn in *. + intros. step. step in H. repeat red in H. dependent induction H; subst. - rewrite <- x. constructor. auto. - rewrite <- x. constructor; auto. @@ -309,7 +305,7 @@ Lemma trace_refine_ret_inv_l : forall (E : Type -> Type) (R : Type) (r : R) (b : itrace E R), b ⊑ Ret r -> (b ≈ Ret r)%itree. Proof. - intros. pfold. red. punfold H. red in H. cbn in *. + intros. step. step in H. repeat red in H. dependent induction H; subst. - rewrite <- x. constructor. auto. - rewrite <- x. constructor; auto. @@ -320,18 +316,17 @@ Lemma trace_refine_vis_inv : forall (E : Type -> Type) (R A: Type) (e : E A) (a trace_refine (Vis e k) (Vis (evans A e a) (fun _ => b)) -> trace_refine (k a) b . Proof. intros E R A e a. intros. - red in H. red. punfold H. red in H. inversion H. ddestruction. + red in H. red. step in H. repeat red in H. inv H. ddestruction. subst. assert (RAnsRef E unit A (evans A e a) tt e a); eauto with itree. - apply H7 in H0. pclearbot. auto. Qed. Lemma trace_refine_vis_add : forall (E : Type -> Type) (R A: Type) (e : E A) (a : A) (b :itrace E R) (k : A -> itree E R), b ⊑ k a -> Vis (evans A e a) (fun _ => b) ⊑ Vis e k. Proof. - intros. pfold. red. cbn. constructor; eauto with itree. - intros. left. inversion H0. ddestruction. + intros. step. constructor; eauto with itree. + intros. inv H0. ddestruction. subst. auto. Qed. @@ -350,20 +345,32 @@ Section Determinize. Context (classicT : forall (P : Type), P + (P -> False)). -CoFixpoint determinize_ (E : Type -> Type) (R : Type) (ot : itree' E R) : itrace E R. +Program Definition determinizeF {E : Type -> Type} {R : Type} (sim : itree' E R -> itrace E R) (ot : itree' E R) +: itrace E R. Proof. destruct ot. - apply (Ret r). - - apply (Tau (determinize_ E R (observe t) ) ). + - apply (Tau (sim (observe t) ) ). - destruct (classicT X) as [ | f]. - + apply (Vis (evans X e x) (fun _ => (determinize_ E R (observe (k x)) ) )). + + apply (Vis (evans X e x) (fun _ => (sim (observe (k x)) ) )). + apply (Vis (evempty X (fun x => match f x with end) e) (fun v : void => match v return itrace E R with end) ). Defined. +Definition determinize_ {E R} sim := fun t => @determinizeF E R sim (observe t). + +Lemma determinize_mono E R : Proper (leq ==> leq) (@determinize_ E R). + +Program Definition determinize_mon : +mon () + Definition determinize {E R} (t : itree E R) : itrace E R := determinize_ (observe t). End Determinize. +(* INTERESTING: paco can do pcofix with a cofixpoint, +but coinduction can't. +*) + (* may be a better idea to make this an axiom *) Lemma itree_refine_nonempty : forall (E : Type -> Type) (R : Type) (t : itree E R), exists b : itrace E R, b ⊑ t. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 1083ddba..dda0a3b2 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -185,3 +185,29 @@ Tactic Notation "unstep" "in" ident(h) := unstep_in h. Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. +(* ----------------------------------------------------------------- *) +(** Shared scaffolding for relations defined as [gfp xxx_mon]. Each + file still writes its own one-line [step] / [unstep] / [coinduction] + notations (since those shadow the generic [step] / [unstep] Ltacs + above when parsed via a higher-order notation), but pulls these + helpers in to avoid re-deriving them per file. *) + +(** Run [tac] under leading ∀'s, putting them back afterwards. + Needed for pattern-matching tactics that must fire on bodies + beneath quantifiers (e.g. [change]-style [to_mon] rewrites). *) +Ltac under_forall' tac := + let dummy := fresh "dummy" in + assert (dummy : True) by constructor; + intros; tac; revert_until dummy; clear dummy. + +Ltac revert_one := + match goal with [ H : _ |- _ ] => revert H end. + +(** Intro leading ∀'s, run [unf], revert. Gets a quantified goal + into the [gfp _] shape expected by [coinduction R H]. *) +Ltac unfold_coind_with unf := + first [ intros ?; unfold_coind_with unf; revert_one | unf ]. + +(** The ITree-specific [to_mon_4cases_with] macro lives in + [theories/Eq/Eqit.v], where [observe] and [go] are in scope. *) + diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 0b411dcc..6bdb8031 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -238,28 +238,65 @@ Arguments eqit_mon {E} b1 b2. (** Tactics *) -(* Ongoing hesitation: should the [icoinduction] tactic expose a [eqit_mon R b b'] -goal, or directly a [eqitF R b b'] one? -Experimenting with the latter at the moment. *) +(** The generic [coinduction] scaffolding lives in [Basics.Utils]: + [under_forall'], [revert_one], [unfold_coind_with], [step_with], + [unstep_with], [coinduction_with]. Here we (1) provide the + ITree-specific [to_mon_4cases_with] macro that all [eqit]-family + relations (and friends like [sutt], [rutt], [interp_iforest]) + instantiate, and (2) define four hooks for the [eqit] family + itself ([iunfold] / [icbn] / [refold] / [to_mon_core]), then + plumb them into the generics. *) + +(** Generic [to_mon] body for ITree relations whose monotone wrapper + equates [F_prefix t1 t2] with [mon_prefix t1 t2] (where + [F_prefix] / [mon_prefix] are the heads with everything except + the two trees already applied). Four shape cases cover how the + trees can appear in the goal: both [observe]s, both + constructor-applied (so we wrap with [go]), or one of each. *) + +Tactic Notation "to_mon_4cases_with" + uconstr(F_prefix) uconstr(mon_prefix) := + match goal with + | |- context[F_prefix (observe ?t1) (observe ?t2)] => + change (F_prefix (observe t1) (observe t2)) + with (mon_prefix t1 t2) + | |- context[F_prefix (?c1 ?a1) (?c2 ?a2)] => + change (F_prefix (c1 a1) (c2 a2)) + with (mon_prefix (go (c1 a1)) (go (c2 a2))) + | |- context[F_prefix (?c ?a) (observe ?t2)] => + change (F_prefix (c a) (observe t2)) + with (mon_prefix (go (c a)) t2) + | |- context[F_prefix (observe ?t1) (?c ?a)] => + change (F_prefix (observe t1) (c a)) + with (mon_prefix t1 (go (c a))) + end. -(* We first enhance the coinduction tactic to recognize goals that - do not have a syntactic match with [gfp _] *) -#[local] Ltac iunfold_all := - unfold euttge, eq_itree, eutt, eqit in *. +Tactic Notation "to_mon_4cases_in_with" ident(h) + uconstr(F_prefix) uconstr(mon_prefix) := + match type of h with + | context[F_prefix (observe ?t1) (observe ?t2)] => + change (F_prefix (observe t1) (observe t2)) + with (mon_prefix t1 t2) in h + | context[F_prefix (?c1 ?a1) (?c2 ?a2)] => + change (F_prefix (c1 a1) (c2 a2)) + with (mon_prefix (go (c1 a1)) (go (c2 a2))) in h + | context[F_prefix (?c ?a) (observe ?t2)] => + change (F_prefix (c a) (observe t2)) + with (mon_prefix (go (c a)) t2) in h + | context[F_prefix (observe ?t1) (?c ?a)] => + change (F_prefix (observe t1) (c a)) + with (mon_prefix t1 (go (c a))) in h + end. -#[local] Ltac iunfold_in h := - unfold euttge, eq_itree, eutt, eqit in h. +(** --- Per-relation hooks for the [eqit] family. --- *) -#[local] Ltac iunfold := - unfold euttge, eq_itree, eutt, eqit. +#[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. +#[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit in h. +#[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. +#[local] Ltac icbn := cbn [eqit_mon body eqit_]. +#[local] Ltac icbn_in h := cbn [eqit_mon body eqit_] in h. -(* Trick for unfolding only the relevant instances *) -#[local] Ltac iunfold_coind := - first - [intros ?; iunfold_coind; revert_last | - unfold euttge,eutt,eq_itree,eqit]. - Ltac refold := repeat match goal with | |- context[gfp (@eqit_mon ?E ?b1 ?b2)] => @@ -269,7 +306,6 @@ Ltac refold := try fold (@eutt E _ _) end. - Ltac refold_in h := match type of h with | context[gfp (@eqit_mon ?E ?b1 ?b2)] => @@ -287,21 +323,18 @@ match goal with change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) with (eqit_mon b1 b2 f R1 R2 RR t1 t2) - | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?con1 ?a1) (?con2 ?a2)] => change (eqitF RR b1 b2 (f R1 R2 RR) (con1 a1) (con2 a2)) with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) - | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?con ?a) (observe ?t2)] => change (eqitF RR b1 b2 (f R1 R2 RR) (con a) (observe t2)) with (eqit_mon b1 b2 f R1 R2 RR (go (con a)) t2) - | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (?con ?a)] => change (eqitF RR b1 b2 (f R1 R2 RR) @@ -311,14 +344,6 @@ match goal with end. -Ltac under_forall' tac := -let dummy := fresh "dummy" in -assert (dummy : True) by constructor; - intros; - tac; - revert_until dummy; - clear dummy. - Ltac to_mon := let dummy := fresh "dummy" in assert (dummy : True) by constructor; @@ -328,59 +353,53 @@ assert (dummy : True) by constructor; clear dummy. Ltac to_mon_in h := -match type of h with -| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => + match type of h with + | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) - with (eqit_mon b1 b2 f R1 R2 RR t1 t2) in h -| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?con1 ?a1) (?con2 ?a2)] => - change (eqitF RR b1 b2 (f R1 R2 RR) (con1 a1) (con2 a2)) - with (eqit_mon b1 b2 f R1 R2 RR (go (con1 a1)) (go (con2 a2))) in h -end. - -#[local] Ltac icbn := cbn[eqit_mon body eqit_]. -#[local] Ltac icbn_in H := cbn[eqit_mon body eqit_] in H. + with (eqit_mon b1 b2 f R1 R2 RR t1 t2) in h + | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?c1 ?a1) (?c2 ?a2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) (c1 a1) (c2 a2)) + with (eqit_mon b1 b2 f R1 R2 RR (go (c1 a1)) (go (c2 a2))) in h + end. -#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. -#[local] Tactic Notation "icbn" "in" "*" := cbn[eqit_mon body eqit_] in *. +(** --- Orchestration via the [Utils.v] generics. --- *) +#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. +#[local] Tactic Notation "icbn" "in" "*" := cbn [eqit_mon body eqit_] in *. Tactic Notation "refold" "in" ident(h) := refold_in h. Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. + Tactic Notation "step" := iunfold; step; icbn; try refold. -Tactic Notation "unstep" := iunfold; try to_mon; unstep; try refold. Tactic Notation "step" "in" ident(h) := - iunfold in h; - step in h; - cbn[eqit_mon body] in h; - unfold eqit_ in h; - try refold_in h. -Tactic Notation "unstep" "in" ident(h) := -iunfold_in h; try to_mon_in h; unstep_in h; try refold_in h. + iunfold in h; step in h; icbn in h; try refold_in h. + +Tactic Notation "unstep" := iunfold; try to_mon; unstep; try refold. +Tactic Notation "unstep" "in" ident(h) := + iunfold_in h; try to_mon_in h; unstep_in h; try refold_in h. -Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := -iunfold_coind; coinduction R H; icbn. +Ltac iunfold_coind := + first [ intros ?; iunfold_coind; revert_last | iunfold ]. -Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := -icoinduction R H; to_mon. +Tactic Notation "icoinduction" + simple_intropattern(R) simple_intropattern(H) := + iunfold_coind; coinduction R H; icbn. + +Tactic Notation "bcoinduction" + simple_intropattern(R) simple_intropattern(H) := + icoinduction R H; to_mon. Tactic Notation "bcoinduction" := -let c := fresh "c" in -let cih := fresh "cih" in -bcoinduction c cih. + let c := fresh "c" in let cih := fresh "cih" in bcoinduction c cih. + +Ltac bcbn := cbn; to_mon. -Ltac bcbn := cbn; to_mon. +(* step -> inversion; common pattern for eutt Hyps *) +Ltac sinv H := step in H; inv H. -(* The [icbn] tactic: unfolding the ITree definition *) -(* Since [itrees] are defined with nesting, un-nesting is often needed - during a proof to get Rocq to recognize certain terms as valid under - certain tactics. Example: [dependent induction] does not work for - [eqit_mon], but it does for [eqitF]. Unfolding icbn to [eqitF] - [eqit_mon], but it does for [eqitF]. Unfolding icbn to [eqitF] - in both hypotheses and the goal is so common that the library uses - an internal tactic for doing so all at once. *) (* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by @@ -1604,7 +1623,7 @@ End eqit_eq. Lemma eqitree_inv_Ret_r {E R} (t : itree E R) r : t ≅ (Ret r) -> observe t = RetF r. Proof. - intros; step in H; inv H; try inv CHECK; eauto. + intros; sinv H. Qed. Lemma eqitree_inv_Vis_r {E R U} (t : itree E R) (e : E U) (k : U -> _) : @@ -1618,7 +1637,7 @@ Qed. Lemma eqitree_inv_Tau_r {E R} (t t' : itree E R) : t ≅ Tau t' -> exists t0, observe t = TauF t0 /\ t0 ≅ t'. Proof. - intros; step in H; inv H; try inv CHECK; eauto. + intros; sinv H; try inv CHECK; eauto. Qed. Lemma eqit_inv_Ret {E R1 R2 RR} b1 b2 r1 r2 : diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 8b065e1d..1731a890 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -113,19 +113,18 @@ End RuttF. (** ** Rutt-specific tactics *) +#[local] Ltac runfold := unfold rutt. +#[local] Ltac runfold_in h := unfold rutt in h. + Ltac rcbn := cbn[rutt_mon body]; try unfold rutt_. Ltac rcbn_in H := cbn[rutt_mon body] in H; try unfold rutt_ in H. -Tactic Notation "rcbn" "in" ident(h) := rcbn_in h. -Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body] in *; try unfold rutt_ in *. +Tactic Notation "rcbn" "in" ident(h) := rcbn_in h. +Tactic Notation "rcbn" "in" "*" := cbn[rutt_mon body] in *; try unfold rutt_ in *. (** [rstep] unfolds [rutt] one step, exposing the [ruttF] functor. *) -Tactic Notation "rstep" := - unfold rutt; step; rcbn. -Tactic Notation "rstep" "in" ident(h) := - unfold rutt in h; - step in h; - rcbn in h. +Tactic Notation "rstep" := runfold; step; rcbn. +Tactic Notation "rstep" "in" ident(h) := runfold_in h; step in h; rcbn in h. #[local] Ltac refold := repeat match goal with @@ -176,14 +175,9 @@ end. Tactic Notation "to_rmon" "in" ident(h) := to_rmon_in h. -Local Ltac revert_one := - match goal with [ H : _ |- _ ] => revert H end. -Ltac runfold_coind := - first - [intros ?; runfold_coind; revert_one | - unfold rutt]. +#[local] Ltac runfold_coind := unfold_coind_with runfold. Tactic Notation "rcoinduction" simple_intropattern(R) simple_intropattern(H) := - runfold_coind; coinduction R H; rcbn; refold. + runfold_coind; coinduction R H; rcbn; refold. #[global] Hint Constructors ruttF : itree. diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index d09a9066..0f4af159 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -68,10 +68,11 @@ Global Hint Unfold sutt : itree. (** Sutt-specific tactics, analogous to the eqit-specific tactics in [Eq.Eqit]. *) -Tactic Notation "sstep" := - unfold sutt; step; cbn [sutt_mon body]. -Tactic Notation "sstep" "in" ident(h) := - unfold sutt in h; step in h; cbn [sutt_mon body] in h. +#[local] Ltac sunfold := unfold sutt. +#[local] Ltac sunfold_in h := unfold sutt in h. + +#[local] Ltac scbn := cbn [sutt_mon body]. +#[local] Ltac scbn_in h := cbn [sutt_mon body] in h. Ltac fold_sutt := match goal with @@ -83,18 +84,17 @@ Ltac fold_sutt_in h := | context[@suttF ?E ?R1 ?R2 ?RR] => change (@suttF E R1 R2 RR) with (body (@sutt_mon E R1 R2 RR)) in h end. + +Tactic Notation "sstep" := sunfold; step; scbn. +Tactic Notation "sstep" "in" ident(h) := sunfold_in h; step in h; scbn_in h. + Tactic Notation "sunstep" := fold_sutt; unstep. Tactic Notation "sunstep" "in" ident(h) := fold_sutt_in h; unstep in h. (* [scoinduction] unfolds [sutt] in the conclusion only, then applies coinduction. *) -Local Ltac revert_one := - match goal with [ H : _ |- _ ] => revert H end. -Ltac sunfold_coind := - first - [intros ?; sunfold_coind; revert_one | - unfold sutt]. +#[local] Ltac sunfold_coind := unfold_coind_with sunfold. Tactic Notation "scoinduction" simple_intropattern(R) simple_intropattern(H) := - sunfold_coind; coinduction R H; cbn [sutt_mon body]. + sunfold_coind; coinduction R H; scbn. Section SUTT_rel. diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 730e4abd..e86b14e6 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -54,7 +54,7 @@ Global Instance proper_eqitree_try_catch {E Err R} : Proper (eq_itree eq ==> poi Proof. intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. bcoinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. - step in Ht; inv Ht. + sinv Ht. - repeat rewrite bind_ret_l. eret. - repeat rewrite bind_ret_l. etau. - destruct e. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index cb57372d..13bb4e2e 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -218,7 +218,7 @@ Proof. intros. rewrite (itree_eta t) in H. setoid_rewrite (itree_eta t). desobs t Ht; clear t Ht; rewrite unfold_translate in H; cbn in H. - step in H; easy. - - step in H; inv H; easy. + - sinv H; easy. - apply eqitree_inv_Vis_r in H; break H. cbn in H. inv_Vis. exists e, k. repeat now split. From d77d8474d6356680db85e184a64cd38ab4f381a5 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 23 Apr 2026 14:01:10 -0400 Subject: [PATCH 127/189] Done with more extras, saving for now. --- .Makefile.d | 36 --------------------- extra/Dijkstra/PureITreeBasics.v | 52 ++++++++++++++++-------------- extra/Dijkstra/PureITreeDijkstra.v | 34 +++++++++---------- 3 files changed, 42 insertions(+), 80 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index d2a52373..0fd22370 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -130,18 +130,6 @@ theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Depe theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -162,27 +150,3 @@ extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vo extra/Secure/SecureEqBind.glob extra/Secure/SecureEqBind.v.beautified extra/Secure/SecureEqBind.required_vo: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqWcompat.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqBind.vos extra/Secure/SecureEqBind.vok extra/Secure/SecureEqBind.required_vos: extra/Secure/SecureEqBind.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqWcompat.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsens.glob extra/Secure/SecureEqProgInsens.v.beautified extra/Secure/SecureEqProgInsens.required_vo: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsens.vok extra/Secure/SecureEqProgInsens.required_vos: extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqProgInsensFacts.glob extra/Secure/SecureEqProgInsensFacts.v.beautified extra/Secure/SecureEqProgInsensFacts.required_vo: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqProgInsensFacts.vok extra/Secure/SecureEqProgInsensFacts.required_vos: extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vo extra/Secure/SecureStateHandler.glob extra/Secure/SecureStateHandler.v.beautified extra/Secure/SecureStateHandler.required_vo: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Eq/EqAxiom.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandler.vos extra/Secure/SecureStateHandler.vok extra/Secure/SecureStateHandler.required_vos: extra/Secure/SecureStateHandler.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Eq/EqAxiom.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vo extra/Secure/SecureStateHandlerPi.glob extra/Secure/SecureStateHandlerPi.v.beautified extra/Secure/SecureStateHandlerPi.required_vo: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vo extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqProgInsens.vo extra/Secure/SecureEqProgInsensFacts.vo extra/Secure/SecureEqWcompat.vo extra/Secure/SecureStateHandler.vo extra/Secure/StrongBisimProper.vo theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureStateHandlerPi.vos extra/Secure/SecureStateHandlerPi.vok extra/Secure/SecureStateHandlerPi.required_vos: extra/Secure/SecureStateHandlerPi.v extra/Secure/SecureEqBind.vos extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqProgInsens.vos extra/Secure/SecureEqProgInsensFacts.vos extra/Secure/SecureEqWcompat.vos extra/Secure/SecureStateHandler.vos extra/Secure/StrongBisimProper.vos theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/extra/Dijkstra/PureITreeBasics.v b/extra/Dijkstra/PureITreeBasics.v index 8350da9a..e8eed0f6 100644 --- a/extra/Dijkstra/PureITreeBasics.v +++ b/extra/Dijkstra/PureITreeBasics.v @@ -4,8 +4,6 @@ From Stdlib Require Import From ExtLib Require Import Structures.Monad. -From Paco Require Import paco. - From ITree Require Import Axioms ITree @@ -23,11 +21,15 @@ Set Implicit Arguments. (** The itree Tau (Tau (Tau ...))*) #[local] Notation spin := ITree.spin. +#[local] Tactic Notation "step" := repeat red; step. +#[local] Tactic Notation "step" "in" ident(h) := repeat red in h; step in h. +#[local] Tactic Notation "sinv" ident(h) := step in h; inv h. + (*this implies that if a spec w accepts spin, then bind w f should too? *) Lemma spin_bind : forall (E : Type -> Type) (A B : Type) (f : A -> itree E B), spin ≈ ITree.bind spin f. Proof. - intros. pcofix CIH. pfold. unfold bind. simpl. red. - cbn. constructor. right. auto. + intros. bcoinduction. simpl. + now constructor. Qed. (*Depreacated predicate on itree predicates. Intended to denote that a predicate is invariant wrt adding @@ -49,23 +51,25 @@ Lemma tau_invar_resp_eutt1: forall (E : Type -> Type) (A : Type) (P : itree E A (*spin is the only divergent itree with the void1 event type,*) Lemma div_spin_eutt : forall (A : Type) (t : itree void1 A), any_infinite t -> t ≈ spin. Proof. - intros A. pcofix CIH. intros. pfold. red. cbn. + intros A. bcoinduction. intros. cbn. destruct (observe t) eqn : Heqt. - - specialize (itree_eta t) as H. rewrite Heqt in H. rewrite H in H0. pinversion H0. - - constructor. right. apply CIH. specialize (itree_eta t) as H. rewrite Heqt in H. + - specialize (itree_eta t) as Heta. rewrite Heqt in Heta. rewrite Heta in H. sinv H. + - constructor. apply cih. specialize (itree_eta t) as Heta. rewrite Heqt in Heta. assert (t ≈ Tau t0). - + rewrite H. reflexivity. - + rewrite <- tau_eutt. rewrite <- H1. auto. + + rewrite Heta. reflexivity. + + rewrite <- tau_eutt. rewrite <- H0. auto. - destruct e. Qed. Lemma eutt_reta_or_div_aux : forall A (t : itree void1 A), ~(exists a, ret a ≈ t) -> any_infinite t. Proof. - intro A. pcofix CIH. pfold. unfold any_infinite_. intros. destruct (observe t) eqn : Heqt. - - exfalso. specialize (itree_eta t) as H. rewrite Heqt in H. apply H0. - exists r0. rewrite H. reflexivity. - - constructor. right. eapply CIH; eauto. intro. apply H0. - destruct H as [a Ha]. exists a. specialize (itree_eta t) as Ht. rewrite Heqt in Ht. + intro A. unfold any_infinite, any_infinite_. + coinduction c cih. + intros. destruct (observe t) eqn : Heqt. + - exfalso. specialize (itree_eta t) as Heta. rewrite Heqt in Heta. apply H. + exists r. rewrite Heta. reflexivity. + - repeat red; simpobs; constructor. eapply cih; eauto. intro. apply H. + destruct H0 as [a Ha]. exists a. specialize (itree_eta t) as Ht. rewrite Heqt in Ht. rewrite Ht. rewrite tau_eutt. auto. - destruct e. Qed. @@ -79,7 +83,7 @@ Qed. Lemma ret_not_div : forall (A : Type) (E : Type -> Type) (a : A), ~ (@any_infinite E A (ret a)). Proof. - intros. intro Hcontra. pinversion Hcontra. + intros. intro Hcontra. sinv Hcontra. Qed. Lemma not_ret_eutt_spin : forall A E (a : A), ~ (Ret a ≈ @spin E A). @@ -91,20 +95,18 @@ Qed. Lemma eutt_ret_euttge : forall (E : Type -> Type) (A : Type) (a : A) (t : itree E A), t ≈ Ret a -> t ≳ Ret a. Proof. - intros. generalize dependent t. pcofix CIH. intros. pfold. red. pinversion H0; subst; auto. - - cbn. auto with itree. - - cbn. apply EqTauL; auto. - genobs t1 ot1. genobs (go (@RetF E A _ a)) ot2. clear H1. - generalize dependent t1. generalize dependent t. - induction REL; intros; subst; auto; try discriminate. - + constructor. inversion Heqot2. auto. - + constructor; auto. eapply IHREL; eauto. + intros. generalize dependent t. icoinduction c cih. intros. sinv H. + - taul. + (* Unset Printing Notations. *) + remember (observe (Ret a)). + induction REL; try easy. + + eret. + + taul. now apply IHREL. Qed. Lemma unfold_spin : forall (E : Type -> Type) (A : Type), (@spin E A) ≅ Tau spin. Proof. - intros. pcofix CIH. cbn. pfold. red. cbn. apply EqTau. cbn. - left. pcofix CIH'. pfold. red. cbn. auto with itree. + intros. step. cbn. reflexivity. Qed. Lemma burn_eutt_r : forall (A : Type) (t t' : itree void1 A) (n : nat), t≈ t' -> burn n t ≈ t'. diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index 4d107df0..3a369fd1 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -1,8 +1,6 @@ From ExtLib Require Import Structures.Monad. -From Paco Require Import paco. - From ITree Require Import Indexed.Sum ITree @@ -153,8 +151,8 @@ Section PureITree. Proof. intros. intros t1 t2 Ht. split; intros. - destruct H1. - + left. eapply H; eauto. symmetry. auto. - + right. eapply H0; eauto. symmetry. auto. + + left. eapply H; eauto. now rewrite <- Ht. + + right. eapply H0; eauto. now rewrite <- Ht. - destruct H1. + left. eapply H; eauto. + right. eapply H0; eauto. @@ -226,31 +224,29 @@ Hint Constructors iterF_body : itree. iter_ind body p Hp a') ) . *) Hint Constructors iterF : itree. -Lemma iterF_monotone {A B} (body: (A -> PureITreeSpec (A + B))) - (sim sim' : A -> Prop) (a : A) - (p : itree void1 B -> Prop) (Hp : resp_eutt p) - (IN : iterF body a p Hp sim) (LE : sim <1= sim'): - iterF body a p Hp sim'. - Proof. - induction IN; constructor; auto. - destruct (body a) as [fa Hfa] eqn : Heq. simpl in *. - refine (Hfa _ _ _ _ _ H). intros. inversion H0; eauto with itree. - Qed. Definition iter_ {A B} sim (body : A -> PureITreeSpec (A + B)) a p Hp : Prop := iterF body a p Hp sim. Hint Unfold iter_ : itree. - Lemma iterF_monotone' {A B} body p Hp : monotone1 (fun sim a => @iter_ A B sim body a p Hp). + Lemma iter_mono {A B} body p Hp : + Proper (leq ==> leq) + (fun sim a => @iter_ A B sim body a p Hp). Proof. - do 2 red. intros. eapply iterF_monotone; eauto. - Qed. + repeat red. intros. + induction H0; constructor; auto. + destruct (body a) as [fa Hfa] eqn : Heq. simpl in *. + refine (Hfa _ _ _ _ _ H0). intros. inversion H1; eauto with itree. + eapply cont_a; eauto. now apply H. +Qed. - Hint Resolve iterF_monotone' : paco. +Lemma do_iter_mon_next : False. +fail "next todo: iter_mon". +Abort. Definition _iter {A B} := fun (f : A -> PureITreeSpec (A + B) ) (a : A) (p : itree void1 B -> Prop) (Hp : resp_eutt p) => - paco1 (fun (F : A -> Prop) a => @iter_ A B F f a p Hp ) bot1 a. + gfp (fun (F : A -> Prop) a => @iter_ A B F f a p Hp ) a. From 8a7637394dc760375a2913a1ee2aed8d189bf221 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 23 Apr 2026 14:24:53 -0400 Subject: [PATCH 128/189] More progress. --- .Makefile.d | 14 ++------------ extra/Dijkstra/DelaySpecMonad.v | 11 ++++------- extra/Dijkstra/IterRel.v | 33 ++++++++++++++++----------------- 3 files changed, 22 insertions(+), 36 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 0fd22370..25bb66c5 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -130,23 +130,13 @@ theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Depe theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vo extra/Dijkstra/PureITreeDijkstra.glob extra/Dijkstra/PureITreeDijkstra.v.beautified extra/Dijkstra/PureITreeDijkstra.required_vo: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Indexed/Sum.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeDijkstra.vos extra/Dijkstra/PureITreeDijkstra.vok extra/Dijkstra/PureITreeDijkstra.required_vos: extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Indexed/Sum.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vo extra/Dijkstra/TracesIT.glob extra/Dijkstra/TracesIT.v.beautified extra/Dijkstra/TracesIT.required_vo: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/TracesIT.vos extra/Dijkstra/TracesIT.vok extra/Dijkstra/TracesIT.required_vos: extra/Dijkstra/TracesIT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vo extra/Dijkstra/StateIOTrace.glob extra/Dijkstra/StateIOTrace.v.beautified extra/Dijkstra/StateIOTrace.required_vo: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/StateSpecT.vo extra/Dijkstra/TracesIT.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePreds.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateIOTrace.vos extra/Dijkstra/StateIOTrace.vok extra/Dijkstra/StateIOTrace.required_vos: extra/Dijkstra/StateIOTrace.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/StateSpecT.vos extra/Dijkstra/TracesIT.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePreds.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/extra/Dijkstra/DelaySpecMonad.v b/extra/Dijkstra/DelaySpecMonad.v index 16372a0b..8cd89ff6 100644 --- a/extra/Dijkstra/DelaySpecMonad.v +++ b/extra/Dijkstra/DelaySpecMonad.v @@ -14,8 +14,6 @@ From ITree.Extra Require Import Dijkstra.PureITreeBasics Dijkstra.IterRel. -From Paco Require Import paco. - Import Monads. Import MonadNotation. @@ -29,7 +27,7 @@ Ltac clear_ret_eutt_spin := match goal with | H : ret ?a ≈ ITree.spin |- _ => simpl in H; exfalso; eapply not_ret_eutt_spin; eauto | H : Ret ?a ≈ ITree.spin |- _ => exfalso; eapply not_ret_eutt_spin; eauto | H : ITree.spin ≈ ret ?a |- _ => exfalso; symmetry in H; eapply not_ret_eutt_spin; eauto - | H : any_infinite (ret _ ) |- _ => pinversion H + | H : any_infinite (ret _ ) |- _ => step in H; inv H end. Ltac invert_evidence := @@ -38,7 +36,6 @@ Ltac invert_evidence := | H : _ \/ _ |- _ => destruct H | H : exists a : ?A, _ |- _ => destruct H as [?a ?H] | x : ?A + ?B |- _ => destruct x as [?a | ?b] - | H : upaco1 _ _ _ |- _ => pclearbot end. Ltac invert_ret := simpl in *; match goal with | H : Ret ?a ≈ Ret ?b |- _ => @@ -114,7 +111,7 @@ Qed. Instance DelaySpecMonadLaws : MonadLawsE DelaySpec. Next Obligation. repeat red. cbn. split; intros; basic_solve; auto. - - pinversion H. + - repeat red in H; step in H; inv H. - left. exists x. split; auto; reflexivity. Qed. Next Obligation. @@ -122,7 +119,7 @@ Next Obligation. repeat red. cbn. split; intros. - red in H. simpl in H. destruct w as [w Hw]. simpl in *. eapply Hw; try apply H. intros. simpl in *. destruct p as [p Hp]. simpl in *. basic_solve. - + eapply Hp; eauto. symmetry. auto. + + eapply Hp; eauto. now rewrite <- H0. + apply div_spin_eutt in H0. eapply Hp; eauto. - red. destruct w as [w Hw]. simpl in *. eapply Hw; try apply H. intros. destruct p as [p Hp]. simpl in *. @@ -206,7 +203,7 @@ Notation "x =[ g ]=> y" := (iter_arrow_rel g x y) (at level 70) : delayspec_scop Lemma iter_inl_spin : forall (A B : Type) (g : A -> Delay (A + B) ) (a : A), not_wf_from (iter_arrow_rel g) a -> ITree.iter g a ≈ ITree.spin. Proof. - intros A B g. einit. ecofix CIH. intros. pinversion H0; try apply not_wf_F_mono'. + intros A B g. icoinduction c CIH. intros. pinversion H0; try apply not_wf_F_mono'. setoid_rewrite unfold_iter_ktree. unfold iter_arrow_rel in Hrel. apply eutt_ret_euttge in Hrel. rewrite Hrel. rewrite bind_ret_l. rewrite unfold_spin. etau. Qed. diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 495e108e..2e9beee3 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -1,7 +1,9 @@ From Stdlib Require Import Arith Lia. -From Paco Require Import paco. +From Coinduction Require Import all. -From ITree Require Import Axioms. +From ITree Require Import +Axioms +Utils. Create HintDb not_wf. @@ -17,21 +19,18 @@ Section IterRel. | not_wf (a' : A) (Hrel : r a a') (Hcorec : F a') . Hint Constructors not_wf_F : not_wf. - Lemma not_wf_F_mono sim sim' a - (IN : not_wf_F sim a) - (LE : sim <1= sim') : not_wf_F sim' a. + Lemma not_wf_F_mono : Proper (leq ==> leq) + not_wf_F. Proof. - destruct IN. eauto with not_wf. + repeat red. intros; inv H0. + econstructor; eauto. now apply H. Qed. - Lemma not_wf_F_mono' : monotone1 not_wf_F. - Proof. - red. intros. eapply not_wf_F_mono; eauto. - Qed. - Hint Resolve not_wf_F_mono' : paco. +Definition not_wf_F_mon := +{| body := not_wf_F ; Hbody := not_wf_F_mono |}. Definition not_wf_from : A -> Prop := - paco1 not_wf_F bot1. + gfp not_wf_F_mon. Inductive wf_from (a : A) : Prop := | base : (forall a', ~ (r a a')) -> wf_from a @@ -41,16 +40,16 @@ Section IterRel. Lemma neg_wf_from_not_wf_from_l : forall (a : A), ~(wf_from a) -> not_wf_from a. Proof. - pcofix CIH. intros. pfold. destruct (classic (exists a', r a a' /\ ~ ( wf_from a') )). - - destruct H as [a' [Hr Hwf] ]. econstructor; eauto. + unfold not_wf_from. coinduction c CIH. intros. destruct (classic (exists a', r a a' /\ ~ ( wf_from a') )). + - destruct H0 as [a' [Hr Hwf] ]. econstructor; eauto. - assert (forall a', ~ r a a' \/ wf_from a'). { intros. destruct (classic (r a a')); auto. destruct (classic (wf_from a')); auto. - exfalso. apply H. exists a'. auto. + exfalso. apply H0. exists a'. auto. } - clear H. - exfalso. apply H0. clear H0. apply step. intros. destruct (H1 a'); auto with not_wf. + clear H0. + exfalso. apply H. clear H. apply step. intros. destruct (H1 a'); auto with not_wf. Qed. Lemma neg_wf_from_not_wf_from_r : forall (a : A), From 63dab15742104cb9ac22540f6c7c76195e370469 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 26 Apr 2026 22:16:28 -0400 Subject: [PATCH 129/189] Done with IterRel --- extra/Dijkstra/IterRel.v | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 2e9beee3..2ea47e6b 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -54,11 +54,11 @@ Definition not_wf_F_mon := Lemma neg_wf_from_not_wf_from_r : forall (a : A), not_wf_from a -> ~ (wf_from a). - Proof. - intros. intro Hcontra. punfold H. inversion H. pclearbot. clear H. generalize dependent a'. + Proof. + intros. intro Hcontra. repeat red in H. step in H. inversion H. clear H. generalize dependent a'. induction Hcontra; intros. - apply H in Hrel. auto. - - punfold Hcorec. inversion Hcorec. pclearbot. specialize (H0 a' Hrel a'0 Hrel0). + - step in Hcorec. inversion Hcorec. specialize (H0 a' Hrel a'0 Hrel0). auto. Qed. @@ -78,10 +78,12 @@ Definition not_wf_F_mon := P a -> (forall a1 a2, P a1 -> r a1 a2 -> P a2 ) -> (forall a, P a -> r a (f a)) -> not_wf_from a. Proof. - intros. generalize dependent a. pcofix CIH. intros. pfold. + intros. generalize dependent a. unfold not_wf_from. + coinduction c cih. + intros. apply not_wf with (a' := f a). - auto using H1. - - right. apply CIH. eapply H0; eauto. + - apply cih. eapply H0; eauto. Qed. Lemma intro_wf : forall (P : A-> Prop) (m : A -> nat) (a : A), @@ -121,10 +123,10 @@ Qed. Lemma wf_from_gt : forall (n : nat), wf_from (fun n0 n1 => n0 > n1) n. Proof. intros. - enough (forall n', n' <= n -> wf_from (fun n0 n1 => n0 > n1) n' ); auto. + enough (forall n', le n' n -> wf_from (fun n0 n1 => n0 > n1) n' ); auto. induction n; intros. - assert (n' = 0); try lia. subst. apply base. intros. lia. - - apply step. intros n'' Hn''. assert (n'' <= n); try lia. auto. + - apply step. intros n'' Hn''. assert (le n'' n); try lia. auto. Qed. (*induct on f a*) Lemma no_inf_dec_seq_aux : forall (r : nat -> nat -> Prop) (n: nat), @@ -145,7 +147,7 @@ Proof. intros A r f inv a Hinv Hgt Ha. remember (f a) as n0. generalize dependent a. - enough (forall a, f a <= n0 -> inv a -> wf_from r a). + enough (forall a, le (f a) n0 -> inv a -> wf_from r a). { intros. apply H. lia. auto. } From f3f314b7c50b82b362df4a8e8bfdc05b6af37e80 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 26 Apr 2026 22:25:58 -0400 Subject: [PATCH 130/189] Done with DelaySpecMonad --- .Makefile.d | 4 ++-- extra/Dijkstra/DelaySpecMonad.v | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 25bb66c5..8e6aeb75 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -134,8 +134,8 @@ extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.req extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/extra/Dijkstra/DelaySpecMonad.v b/extra/Dijkstra/DelaySpecMonad.v index 8cd89ff6..1d688863 100644 --- a/extra/Dijkstra/DelaySpecMonad.v +++ b/extra/Dijkstra/DelaySpecMonad.v @@ -7,6 +7,7 @@ From ExtLib Require Import From ITree Require Import ITree ITreeFacts + HeterogeneousRelations Props.Infinite. From ITree.Extra Require Import @@ -203,7 +204,7 @@ Notation "x =[ g ]=> y" := (iter_arrow_rel g x y) (at level 70) : delayspec_scop Lemma iter_inl_spin : forall (A B : Type) (g : A -> Delay (A + B) ) (a : A), not_wf_from (iter_arrow_rel g) a -> ITree.iter g a ≈ ITree.spin. Proof. - intros A B g. icoinduction c CIH. intros. pinversion H0; try apply not_wf_F_mono'. + intros A B g. bcoinduction. intros. red in H; sinv H; try apply not_wf_F_mono'. setoid_rewrite unfold_iter_ktree. unfold iter_arrow_rel in Hrel. apply eutt_ret_euttge in Hrel. rewrite Hrel. rewrite bind_ret_l. rewrite unfold_spin. etau. Qed. @@ -244,7 +245,7 @@ Lemma loop_invar : forall (A B : Type) (g : A -> Delay (A + B) ) (a : A) (q : Delay (A + B) -> Prop) (Hq : resp_eutt q), (q -+> p) -> (q (g a)) -> (forall t, q t -> q (bind t (iter_lift g))) -> - (p \1/ any_infinite) (ITree.iter g a). + (Disj_unary _ p any_infinite) (ITree.iter g a). Proof. intros. unfold loop_invar_imp in *. set (iter_arrow_rel g) as rg. From 408c19c91f5d7d1e1512a0258199638bd92a6a01 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 26 Apr 2026 22:31:48 -0400 Subject: [PATCH 131/189] Done with StateSpecT --- .Makefile.d | 6 ++++-- extra/Dijkstra/StateSpecT.v | 26 ++++++++++++++------------ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 8e6aeb75..51cfda62 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -138,5 +138,7 @@ extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.b extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/extra/Dijkstra/StateSpecT.v b/extra/Dijkstra/StateSpecT.v index 40a1cf21..a8e7a828 100644 --- a/extra/Dijkstra/StateSpecT.v +++ b/extra/Dijkstra/StateSpecT.v @@ -4,11 +4,10 @@ From Stdlib Require Import From ExtLib Require Import Structures.Monad. -From Paco Require Import paco. - From ITree Require Import ITree ITreeFacts + HeterogeneousRelations Props.Infinite. From ITree.Extra Require Import @@ -137,11 +136,11 @@ Section LoopInvarSpecific. (Hp : resp_eutt p) (Hq : resp_eutt q) , (q (reassoc (g a s) )) -> (q -+> p) -> (forall t, q t -> q (t >>= (iter_lift ( iso_destatify_arrow g) ))) -> - (p \1/ any_infinite) (MonadIter_stateT0 _ _ g a s) . + (Disj_unary _ p any_infinite) (MonadIter_stateT0 _ _ g a s) . Proof. intros. set (iso_destatify_arrow g) as g'. - enough ((p \1/ any_infinite) (ITree.iter g' (s,a) )). + enough ((Disj_unary _ p any_infinite) (ITree.iter g' (s,a) )). - assert (ITree.iter g' (s,a) ≈ iter g a s). + unfold g', iso_destatify_arrow. unfold iter, Iter_Kleisli, Basics.iter, MonadIterDelay, StateIter, @@ -150,12 +149,13 @@ Section LoopInvarSpecific. destruct a0 as [a' s']. simpl. eapply eutt_bind_eutt; try reflexivity. intros. subst. destruct u2. simpl. destruct s1; reflexivity. - + assert (Hpdiv : resp_eutt (p \1/ any_infinite)). - { intros t1 t2 Heutt. split; intros; basic_solve. - - left. eapply Hp; eauto. symmetry. auto. - - right. rewrite <- Heutt. auto. - - left. eapply Hp; eauto. - - right. rewrite Heutt. auto. + + assert (Hpdiv : resp_eutt (Disj_unary _ p any_infinite)). + { intros t1 t2 Heutt. split; intros; + destruct H4. + - left. now rewrite <- Heutt. + - right. now rewrite <- Heutt. + - left. now rewrite Heutt. + - right. now rewrite Heutt. } eapply Hpdiv; try apply H2. symmetry. auto. - eapply loop_invar; eauto. @@ -170,11 +170,13 @@ Section LoopInvarSpecific. intros. unfold MonadIter_stateT0. apply iter_inl_spin. (*seems to require some coinduciton*) generalize dependent a. generalize dependent s. - pcofix CIH. intros. pinversion H0; try apply not_wf_F_mono'. pfold. + (* RTODO improve with tactics *) + unfold not_wf_from at -1. coinduction c cih. + intros. red in H; sinv H; try apply not_wf_F_mono'. apply not_wf with (a' := a'); eauto. - red in Hrel. destruct a' as [s' a']. simpl. red. simpl. rewrite Hrel. rewrite bind_ret_l. simpl. reflexivity. - - right. destruct a'. eauto. + - destruct a'. eapply cih; eauto. Qed. Lemma iter_wf_converge_state : forall (A B S : Type) (g : A -> stateT S Delay (A + B) ) (a : A) (s : S), From 43ad6f4560dd8ad440680383262d9f9b9e6740ad Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 30 Apr 2026 17:04:33 -0400 Subject: [PATCH 132/189] Done with ITraceFacts. --- .Makefile.d | 286 +++++++++++++++++++------------------ Makefile | 10 +- Makefile.conf | 8 +- REFACTOR-TODOS.md | 14 +- extra/ITrace/ITraceFacts.v | 242 ++++++++++++++----------------- theories/Eq/Eqit.v | 227 ++++++++--------------------- tutorial/Asm.v | 3 +- 7 files changed, 333 insertions(+), 457 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 25bb66c5..30647e15 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,142 +1,144 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/Eq/Shallow.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/Eq/Shallow.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/Eq/Shallow.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/Eq/Shallow.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/Eq/RuttFacts.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker diff --git a/Makefile b/Makefile index c5f54563..2784ed89 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.1.1 +## GNUMakefile for Rocq 9.0.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code they may need +# add any other Makefile code he may need -include Makefile.local # Parameters ################################################################## @@ -77,6 +77,7 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" +ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -86,6 +87,9 @@ else STDTIME?=command time endif endif +else +STDTIME?=command time -f $(TIMEFMT) +endif COQBIN?= ifneq (,$(COQBIN)) @@ -274,7 +278,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.1.1 +COQMAKEFILE_VERSION:=9.0.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index f5a69775..4db136fe 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true diff --git a/REFACTOR-TODOS.md b/REFACTOR-TODOS.md index af829742..65e3275a 100644 --- a/REFACTOR-TODOS.md +++ b/REFACTOR-TODOS.md @@ -1,3 +1,11 @@ +- [ ] Generally clean up Eqit.v. + - [ ] rename and redo sections + - [ ] keep building tests until rewriting robustness is clear + - [ ] organize file + - [ ] remove add parametric morphism +- [ ] rest of rtodos + +- [ ] get tutorial building - unify how we deal with each node of a tree. - rets: a constructor pattern that either concludes or leads to computation. @@ -8,12 +16,6 @@ there is some inv_Vis, some dependent destruction, some vis_gen... we need a single pipeline for concluding proofs about vis nodes. - the 'refine match' pattern that appears here is not lovely either. See Finite.v. -- [ ] Generally clean up Eqit.v. - - [ ] rename and redo sections - - [ ] keep building tests until rewriting robustness is clear - - [ ] organize file - - [ ] remove add parametric morphism -- [ ] rest of rtodos - [ ] Get "MWE ITree library" for RIP volume - want highlights of itrees diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index 5773b122..2865f547 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -345,45 +345,34 @@ Section Determinize. Context (classicT : forall (P : Type), P + (P -> False)). -Program Definition determinizeF {E : Type -> Type} {R : Type} (sim : itree' E R -> itrace E R) (ot : itree' E R) -: itrace E R. +CoFixpoint determinize_ (E : Type -> Type) (R : Type) (ot : itree' E R) : itrace E R. Proof. destruct ot. - apply (Ret r). - - apply (Tau (sim (observe t) ) ). + - apply (Tau (determinize_ E R (observe t) ) ). - destruct (classicT X) as [ | f]. - + apply (Vis (evans X e x) (fun _ => (sim (observe (k x)) ) )). + + apply (Vis (evans X e x) (fun _ => (determinize_ E R (observe (k x)) ) )). + apply (Vis (evempty X (fun x => match f x with end) e) (fun v : void => match v return itrace E R with end) ). Defined. -Definition determinize_ {E R} sim := fun t => @determinizeF E R sim (observe t). - -Lemma determinize_mono E R : Proper (leq ==> leq) (@determinize_ E R). - -Program Definition determinize_mon : -mon () - Definition determinize {E R} (t : itree E R) : itrace E R := determinize_ (observe t). End Determinize. -(* INTERESTING: paco can do pcofix with a cofixpoint, -but coinduction can't. -*) - (* may be a better idea to make this an axiom *) Lemma itree_refine_nonempty : forall (E : Type -> Type) (R : Type) (t : itree E R), exists b : itrace E R, b ⊑ t. Proof. intros. destruct classicT_inhabited as [classicT]. exists (determinize classicT t). generalize dependent t. - pcofix CIH. intros. pfold. red. unfold determinize. destruct (observe t). - - cbn. constructor. auto. - - cbn. constructor. right. apply CIH. + red. rcoinduction c cih. + intros. unfold determinize. desobs t Hot. + - cbn. eret. + - cbn. constructor. apply cih. - unfold observe. cbn. destruct (classicT _). - + constructor; eauto with itree. intros. right. + + constructor; eauto with itree. intros. inversion H. ddestruction. - subst. apply CIH. + subst. apply cih. + constructor; auto with itree. intros. contradiction. Qed. @@ -394,7 +383,7 @@ Lemma refine_set_eq_to_eutt_vis_aux : forall (E : Type -> Type) (R : Type) (r : (A B : Type) (e : E A) (e0 : E B) (k : A -> itree E R) (k0 : B -> itree E R) (Ht1 : t1 ≅ Vis e k) (Ht2 : t2 ≅ Vis e0 k0 ), - eqitF eq true true id (upaco2 (eqit_ eq true true id) r) (VisF e k) (VisF e0 k0). + eqitF eq true true r (VisF e k) (VisF e0 k0). Proof. intros. destruct (classic_empty A) as [ [a | Ha] _ ]. @@ -405,12 +394,12 @@ Proof. rewrite <- Ht1 in Hbk. apply H0 in Hbk as Hbk0. rewrite Ht1 in Hbk. rewrite Ht2 in Hbk0. - pinversion Hbk. - pinversion Hbk0. ddestruction. + sinv Hbk. + sinv Hbk0. ddestruction. subst. - inversion H10. ddestruction. + inversion H8. ddestruction. subst. constructor. - intros. right. eapply CIH; eauto. + intros. eapply CIH; eauto. intros. setoid_rewrite Ht1 in H0. setoid_rewrite Ht2 in H0. split; intros. + apply trace_refine_vis_add with (e := e) in H. apply H0 in H. @@ -421,15 +410,15 @@ Proof. set (Vis (evempty A Ha e) ke) as b. assert (b ⊑ t1). { - unfold b. rewrite Ht1. pfold. red. cbn. + unfold b. rewrite Ht1. step. red. cbn. constructor. { apply ree. } { intros []. } } apply H0 in H as H1. unfold b in *. clear b. rewrite Ht1 in H. rewrite Ht2 in H1. - pinversion H. pinversion H1. ddestruction. - subst. inversion H12. ddestruction. + sinv H. sinv H1. ddestruction. + subst. inversion H6. ddestruction. constructor. - intros. right. eapply CIH. + intros. eapply CIH. intros. setoid_rewrite Ht1 in H0. setoid_rewrite Ht2 in H0. split; intros; contradiction. Qed. @@ -438,7 +427,7 @@ Lemma trace_refine_vis : forall (E : Type -> Type) (R A : Type) (b : itrace E R) (e : E A) (k : A -> itree E R), b ⊑ Vis e k -> exists X, exists e0 : EvAns E X, exists k0, (b ≈ Vis e0 k0)%itree. Proof. - intros. punfold H. red in H. cbn in H. + intros. step in H. repeat red in H. dependent induction H. - exists A0. exists e1. exists k1. specialize (itree_eta b) as Hb. rewrite <- x in Hb. @@ -458,7 +447,7 @@ Lemma trace_refine_vis_l : forall (E : Type -> Type) (R A: Type) (t : itree E R) (e : EvAns E A) (k : A -> itrace E R), Vis e k ⊑ t -> exists X, exists e0 : E X, exists k0 : X -> itree E R, t ≈ Vis e0 k0. Proof. - intros. punfold H. red in H. cbn in *. + intros. step in H. repeat red in H. dependent induction H. - exists B. exists e2. exists k2. specialize (itree_eta t) as Ht. rewrite <- x in Ht. rewrite Ht. reflexivity. @@ -493,33 +482,35 @@ Proof. rewrite H0. constructor. reflexivity. - rewrite H in H1. apply trace_refine_vis_l in H1 as Ht0. destruct Ht0 as [X [e0 [k0 Ht0] ] ]. - rewrite Ht0 in H1. pinversion H1. subst. + rewrite Ht0 in H1. sinv H1. subst. ddestruction. subst. rewrite Ht0. inversion H4; subst; ddestruction; subst; try contradiction. eapply conv_vis; try reflexivity. Unshelve. 2 : exact a. - apply IHmay_converge. pclearbot. + apply IHmay_converge. specialize (H9 tt a). assert (RAnsRef E unit X (evans X e0 a) tt e0 a). - constructor. apply H9 in H2. pclearbot. destruct b. auto. + constructor. apply H9 in H1. destruct b. auto. Qed. Lemma trace_refine_all_infinite : forall (E : Type -> Type) (R : Type) (t : itree E R) (b : itrace E R), all_infinite t -> b ⊑ t -> all_infinite b. Proof. - intros E R. pcofix CIH. intros. punfold H0. red in H0. - punfold H1. red in H1. pfold. red. dependent induction H1. - - rewrite <- x in H0. inversion H0. - - rewrite <- x0. constructor. right. pclearbot. eapply CIH; eauto. - rewrite <- x in H0. inv H0. pclearbot. auto. - - rewrite <- x0. rewrite <- x in H0. constructor. inv H0. - ddestruction. subst. intros. right. pclearbot. - inversion H; subst; ddestruction; try contradiction. destruct b0. - eapply CIH; try apply H3. - specialize (H1 tt a). assert (RAnsRef _ _ _ (evans B e2 a) tt e2 a ). - constructor. apply H1 in H0. pclearbot. eauto. - - rewrite <- x. constructor. left. pfold. eapply IHruttF; eauto. - - eapply IHruttF; auto. rewrite <- x in H0. inv H0. - pclearbot. punfold H2. + intros E R. unfold all_infinite at -1. + coinduction c cih. + intros. step in H. step in H0. repeat red in H, H0; repeat red. + dependent induction H0. + - rewrite <- x in H. inv H. + - rewrite <- x0. constructor. eapply cih; eauto. + rewrite <- x in H. inv H. + - rewrite <- x0. rewrite <- x in H. constructor. inv H. + ddestruction. subst. intros. + inv H1; subst; ddestruction; try contradiction. destruct b0. + eapply cih; try apply H3. + specialize (H0 tt a). assert (RAnsRef _ _ _ (evans B e2 a) tt e2 a ). + constructor. apply H0 in H. eauto. + - rewrite <- x. constructor. apply (b_chain c). eapply IHruttF; eauto. + - eapply IHruttF; auto. rewrite <- x in H. inv H. + now step in H2. Qed. Lemma trace_refine_converge_bind : forall (E : Type -> Type) (R S : Type) @@ -532,12 +523,12 @@ Proof. - specialize (IHmay_converge H1). rewrite H in H2. apply trace_refine_vis_l in H2 as Ht. destruct Ht as [X [e0 [k0 Ht] ] ]. - rewrite Ht in H2. punfold H2. red in H2. cbn in H2. inversion H2; subst. - ddestruction. subst. pclearbot. - inversion H5; ddestruction; subst; try contradiction. - ddestruction. subst. rewrite H. rewrite Ht. - pfold. red. cbn. constructor; auto. - intros. apply H10 in H3. pclearbot. left. + rewrite Ht in H2. step in H2. repeat red in H2. inv H2. + ddestruction. subst. + inversion H5; subst; ddestruction; try easy. + rewrite H. rewrite Ht. + step. repeat red. cbn. constructor; auto. + intros. apply H10 in H2. destruct a0. destruct b. apply IHmay_converge. auto. Qed. @@ -546,20 +537,20 @@ Lemma trace_refine_diverge_bind : forall (E : Type -> Type) (R S : Type) all_infinite b -> b ⊑ t -> ITree.bind b f ⊑ ITree.bind t g. Proof. intros E R S b t f g. generalize dependent b. generalize dependent t. - pcofix CIH. intros. - punfold H0. red in H0. - punfold H1. red in H1. pfold. red. cbn. - dependent induction H1. - - rewrite <- x0 in H0. inv H0. + red. rcoinduction c cih. intros. + step in H0. + step in H. repeat red in H0, H. + dependent induction H0. + - rewrite <- x0 in H. inv H. - unfold observe. cbn. rewrite <- x0. rewrite <- x. - cbn. constructor. right. pclearbot. apply CIH; auto. - rewrite <- x0 in H0. inv H0. pclearbot. auto. + cbn. constructor. apply cih; auto. + rewrite <- x0 in H. inv H. - unfold observe. cbn. rewrite <- x0. rewrite <- x. cbn. constructor; auto. intros. - rewrite <- x0 in H0. inv H0. ddestruction. subst. pclearbot. - apply H1 in H2. right. pclearbot. eapply CIH; eauto. apply H4. + rewrite <- x0 in H. inv H. ddestruction. subst. + apply H0 in H2. eapply cih; eauto. apply H4. - unfold observe at 1. cbn. rewrite <- x. cbn. constructor. - eapply IHruttF; eauto. rewrite <- x in H0. inv H0. pclearbot. pstep_reverse. + eapply IHruttF; eauto. rewrite <- x in H. inv H. now unstep. - unfold observe at 2. cbn. rewrite <- x. cbn. constructor. eapply IHruttF; eauto. Qed. @@ -567,61 +558,50 @@ Qed. Lemma refine_set_eq_to_eutt : forall (E : Type -> Type) (R : Type) (t1 t2 : itree E R), (forall b, b ⊑ t1 <-> b ⊑ t2) -> t1 ≈ t2. Proof. - intros E R. pcofix CIH. intros. - pfold. red. + intros E R. icoinduction c CIH. intros. remember (observe t1) as ot1. remember (observe t2) as ot2. destruct (ot1); destruct (ot2). + all: specialize (itree_eta t1) as Ht1; rewrite <- Heqot1 in Ht1; + specialize (itree_eta t2) as Ht2; rewrite <- Heqot2 in Ht2. (*Ret Ret*) - - specialize (H0 (Ret r0) ) as Hr0. - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - rewrite Ht1 in Hr0. rewrite Ht2 in Hr0. - assert (Ret r0 ⊑ t2). - { rewrite Ht2. apply Hr0. pfold. constructor. auto. } - rewrite Ht2 in H. pinversion H. subst. constructor. auto. - (*Ret Tau *) - - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - setoid_rewrite Ht2 in H0. - specialize (H0 (Ret r0) ). - rewrite tau_eutt in H0. constructor; auto. + - specialize (H (Ret r0)) as Hr0. + rewrite Ht1 in Hr0. rewrite Ht2 in Hr0. assert (Ret r0 ⊑ t1). - { rewrite Ht1. pfold. constructor. auto. } - apply H0 in H. punfold H. red in H. cbn in H. - clear H0 Ht1 Ht2 Heqot1 Heqot2. dependent induction H. - + rewrite <- x. constructor; auto. - + rewrite <- x. constructor; auto. + { rewrite Ht1. apply Hr0. step. eret. } + rewrite Ht1 in H0. sinv H0. + (*Ret Tau *) + - setoid_rewrite Ht2 in H. + specialize (H (Ret r) ). + rewrite tau_eutt in H. taur. + assert (Ret r ⊑ t1). + { rewrite Ht1. step. eret. } + apply H in H0. step in H0. repeat red in H0; cbn in H0. + clear H Ht1 Ht2 Heqot1 Heqot2. dependent induction H0. + + rewrite <- x. eret. + + rewrite <- x. taur; auto. (*Ret Vis*) - exfalso. - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - assert (Ret r0 ⊑ t1). - { rewrite Ht1. pfold. constructor. auto. } - apply H0 in H. rewrite Ht2 in H. pinversion H. + assert (Ret r ⊑ t1). + { rewrite Ht1. step. eret. } + apply H in H0. rewrite Ht2 in H0. sinv H0. (*Tau Ret*) - - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - setoid_rewrite Ht1 in H0. setoid_rewrite Ht2 in H0. - assert (Ret r0 ⊑ t2). - { rewrite Ht2. pfold. constructor. auto. } - rewrite Ht2 in H. apply H0 in H as H1. punfold H1. - clear Heqot1 Heqot2 Ht1 Ht2 H H0. red in H1. cbn in *. - constructor; auto. inv H1. dependent induction H2; intros; subst. - + rewrite <- x. constructor; auto. - + rewrite <- x. auto with itree. + - setoid_rewrite Ht1 in H. setoid_rewrite Ht2 in H. + assert (Ret r ⊑ t2). + { rewrite Ht2. step. eret. } + rewrite Ht2 in H0. apply H in H0 as H1. step in H1. + clear Heqot1 Heqot2 Ht1 Ht2 H H0. repeat red in H1. cbn in *. + taul. inv H1. dependent induction H2; intros; subst. + + rewrite <- x. eret. + + rewrite <- x. taul; auto. (*Tau Tau*) - - constructor. right. eapply CIH. + - constructor. eapply CIH. intros. - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. assert (t1 ≈ t). { rewrite Ht1. rewrite tau_eutt. reflexivity. } assert (t2 ≈ t0). { rewrite Ht2. rewrite tau_eutt. reflexivity. } - rewrite <- H. rewrite <- H1. auto. + now rewrite <- H0, <- H1. (*Tau Vis*) - - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - specialize (itree_refine_nonempty t1) as [b Hbt1]. - apply H0 in Hbt1 as Hbt2. rewrite Ht1 in Hbt1. + - specialize (itree_refine_nonempty t1) as [b Hbt1]. + apply H in Hbt1 as Hbt2. rewrite Ht1 in Hbt1. rewrite tau_eutt in Hbt1. rewrite Ht2 in Hbt2. apply trace_refine_vis in Hbt2 as Hb. @@ -629,9 +609,9 @@ Proof. rewrite Hb in Hbt2. rewrite Hb in Hbt1. clear Hb b. constructor; auto. - setoid_rewrite Ht1 in H0. setoid_rewrite tau_eutt in H0. + setoid_rewrite Ht1 in H. setoid_rewrite tau_eutt in H. clear Heqot1 Heqot2. clear Ht1 t1. - punfold Hbt1. red in Hbt1. cbn in *. + step in Hbt1. repeat red in Hbt1. cbn in *. dependent induction Hbt1. + rewrite <- x. specialize (itree_eta t) as Ht. rewrite <- x in Ht. @@ -642,19 +622,15 @@ Proof. specialize (itree_eta t) as Ht. rewrite <- x in Ht. rewrite Ht. rewrite tau_eutt. reflexivity. } - setoid_rewrite H. auto. + setoid_rewrite H0. auto. (*Vis Ret*) - exfalso. - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - assert (Ret r0 ⊑ t2). - { rewrite Ht2. pfold. constructor. auto. } - apply H0 in H. rewrite Ht1 in H. pinversion H. + assert (Ret r ⊑ t2). + { rewrite Ht2. step. eret. } + apply H in H0. rewrite Ht1 in H0. sinv H0. (*Vis Tau*) - - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - specialize (itree_refine_nonempty t2) as [b Hbt2]. - apply H0 in Hbt2 as Hbt1. rewrite Ht1 in Hbt1. + - specialize (itree_refine_nonempty t2) as [b Hbt2]. + apply H in Hbt2 as Hbt1. rewrite Ht1 in Hbt1. rewrite Ht2 in Hbt2. rewrite tau_eutt in Hbt2. apply trace_refine_vis in Hbt1 as Hb. @@ -662,9 +638,9 @@ Proof. rewrite Hb in Hbt2. rewrite Hb in Hbt1. clear Hb b. constructor; auto. - setoid_rewrite Ht2 in H0. setoid_rewrite tau_eutt in H0. + setoid_rewrite Ht2 in H. setoid_rewrite tau_eutt in H. clear Heqot1 Heqot2. clear Ht2 t2. - punfold Hbt2. red in Hbt2. cbn in *. + step in Hbt2. repeat red in Hbt2. cbn in *. dependent induction Hbt2. + rewrite <- x. specialize (itree_eta t) as Ht. rewrite <- x in Ht. @@ -675,11 +651,9 @@ Proof. specialize (itree_eta t) as Ht. rewrite <- x in Ht. rewrite Ht. rewrite tau_eutt. reflexivity. } - setoid_rewrite H. auto. + setoid_rewrite H0. auto. (*Vis Vis*) - - specialize (itree_eta t1) as Ht1. rewrite <- Heqot1 in Ht1. - specialize (itree_eta t2) as Ht2. rewrite <- Heqot2 in Ht2. - eapply refine_set_eq_to_eutt_vis_aux; eauto. + - eapply refine_set_eq_to_eutt_vis_aux; eauto. Qed. Lemma trace_set_complete : forall E R (t1 t2 : itree E R), (forall b, b ⊑ t1 <-> b ⊑ t2) <-> t1 ≈ t2. @@ -693,26 +667,26 @@ Lemma trace_refine_bind_cont_inv : forall (E : Type -> Type) (R S : Type) (f : R -> itree E S) (r : R), may_converge r b -> b ⊑ m -> ITree.bind b g ⊑ ITree.bind m f -> g r ⊑ f r. Proof. - intros E R S. pcofix CIH. intros b m g f a Hconv Hrefb Hrefbind. + intros E R S. red. rcoinduction c CIH. intros b m g f a Hconv Hrefb Hrefbind. generalize dependent m. dependent induction Hconv; intros m Hrefb Hrefbind. - rewrite H in Hrefbind. rewrite bind_ret_l in Hrefbind. rewrite H in Hrefb. apply trace_refine_ret_inv_r in Hrefb. rewrite Hrefb in Hrefbind. - rewrite bind_ret_l in Hrefbind. apply pacobot2; eauto. + rewrite bind_ret_l in Hrefbind. now step. - (*m must be a vis, the continuations must refine then continuation in the m I use in the inductive hypothesis *) destruct e; try contradiction. rewrite H in Hrefb. rewrite H in Hrefbind. rewrite bind_vis in Hrefbind. apply trace_refine_vis_l in Hrefb as Hvis. destruct Hvis as [X [e' [k' Hvis ] ] ]. rewrite Hvis in Hrefbind. rewrite bind_vis in Hrefbind. - punfold Hrefbind. red in Hrefbind. cbn in Hrefbind. inv Hrefbind. + step in Hrefbind. repeat red in Hrefbind; cbn in Hrefbind. inv Hrefbind. ddestruction. inv H2. ddestruction; subst. - rewrite Hvis in Hrefb. punfold Hrefb. red in Hrefb. cbn in Hrefb. inv Hrefb. + rewrite Hvis in Hrefb. step in Hrefb. repeat red in Hrefb; cbn in Hrefb. inv Hrefb. ddestruction. assert (RAnsRef E unit A (evans _ e' ans) tt e' ans ); try (constructor; auto; fail). specialize (IHHconv (k' ans) ). apply IHHconv. - + apply H8 in H0. pclearbot. destruct b. auto. - + apply H7 in H0. pclearbot. destruct b. auto. + + apply H8 in H0. destruct b. auto. + + apply H7 in H0. destruct b. auto. Qed. Lemma may_converge_two_list: @@ -728,8 +702,8 @@ Proof. { cbn. reflexivity. } rewrite H0 in H. destruct log' as [ | h t ]. - + setoid_rewrite bind_ret_l in H. simpl in H. pinversion H. - + simpl in H. unfold append in H. repeat rewrite bind_vis in H. pinversion H. + + setoid_rewrite bind_ret_l in H. simpl in H. sinv H. + + simpl in H. unfold append in H. repeat rewrite bind_vis in H. sinv H. ddestruction; subst. assert (ev_list_to_stream log ++ b ≈ ev_list_to_stream t ++ Ret a). { apply REL. apply tt. } @@ -743,6 +717,6 @@ Proof. intros E A log b' Hdiv. induction log. - cbn in Hdiv. setoid_rewrite bind_ret_l in Hdiv. auto. - apply IHlog. simpl in Hdiv. unfold append in Hdiv. - rewrite bind_vis in Hdiv. pinversion Hdiv. ddestruction. subst. apply H0. + rewrite bind_vis in Hdiv. sinv Hdiv. ddestruction. subst. apply H0. apply tt. Qed. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 6bdb8031..81a04c21 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1,9 +1,8 @@ (* RTODOS: - rename and redo sections -- keep building tests until rewriting robustness is clear - - organize file - - remove add parametric morphism +- organize file +- remove add parametric morphism *) (** * Strong bisimulation *) @@ -233,11 +232,11 @@ Arguments eqit_mon {E} b1 b2. #[global] Hint Unfold euttge : itree. (* Alternative notation to the ` with a \dot. Would be good to pick an ascii one instead maybe? *) - #[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). + (* #[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). *) (* end hide *) (** Tactics *) - +(* RTODO Clean this up massively *) (** The generic [coinduction] scaffolding lives in [Basics.Utils]: [under_forall'], [revert_one], [unfold_coind_with], [step_with], [unstep_with], [coinduction_with]. Here we (1) provide the @@ -254,39 +253,6 @@ Arguments eqit_mon {E} b1 b2. trees can appear in the goal: both [observe]s, both constructor-applied (so we wrap with [go]), or one of each. *) -Tactic Notation "to_mon_4cases_with" - uconstr(F_prefix) uconstr(mon_prefix) := - match goal with - | |- context[F_prefix (observe ?t1) (observe ?t2)] => - change (F_prefix (observe t1) (observe t2)) - with (mon_prefix t1 t2) - | |- context[F_prefix (?c1 ?a1) (?c2 ?a2)] => - change (F_prefix (c1 a1) (c2 a2)) - with (mon_prefix (go (c1 a1)) (go (c2 a2))) - | |- context[F_prefix (?c ?a) (observe ?t2)] => - change (F_prefix (c a) (observe t2)) - with (mon_prefix (go (c a)) t2) - | |- context[F_prefix (observe ?t1) (?c ?a)] => - change (F_prefix (observe t1) (c a)) - with (mon_prefix t1 (go (c a))) - end. - -Tactic Notation "to_mon_4cases_in_with" ident(h) - uconstr(F_prefix) uconstr(mon_prefix) := - match type of h with - | context[F_prefix (observe ?t1) (observe ?t2)] => - change (F_prefix (observe t1) (observe t2)) - with (mon_prefix t1 t2) in h - | context[F_prefix (?c1 ?a1) (?c2 ?a2)] => - change (F_prefix (c1 a1) (c2 a2)) - with (mon_prefix (go (c1 a1)) (go (c2 a2))) in h - | context[F_prefix (?c ?a) (observe ?t2)] => - change (F_prefix (c a) (observe t2)) - with (mon_prefix (go (c a)) t2) in h - | context[F_prefix (observe ?t1) (?c ?a)] => - change (F_prefix (observe t1) (c a)) - with (mon_prefix t1 (go (c a))) in h - end. (** --- Per-relation hooks for the [eqit] family. --- *) @@ -317,7 +283,6 @@ Ltac refold_in h := Ltac to_mon_core := match goal with - | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => change (eqitF RR b1 b2 (f R1 R2 RR) @@ -341,7 +306,6 @@ match goal with (observe t1) (con a)) with (eqit_mon b1 b2 f R1 R2 RR t1 (go (con a))) - end. Ltac to_mon := @@ -534,7 +498,7 @@ Qed. Lemma eqitF_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 r: flip (eqitF (flip RR) b2 b1 (flip r)) <= @eqitF E R1 R2 RR b1 b2 r. Proof. - repeat intro; induction H; eauto with itree. + intros!; induction H; eauto with itree. Qed. #[global] Instance eqitF_Proper_R {E : Type -> Type} {R1 R2:Type} : @@ -562,7 +526,7 @@ Qed. : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eqit E b1 b2 R1 R2). Proof with auto with itree. repeat red. - repeat intro. subst. + intros!. subst. split. - revert_until H. icoinduction R CIH. intros. step in H0. @@ -577,19 +541,19 @@ Qed. #[global] Instance eq_itree_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eq_itree E R1 R2). Proof. - now repeat intro; apply eqit_Proper_R. + now intros!; apply eqit_Proper_R. Qed. #[global] Instance euttge_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@euttge E R1 R2). Proof. - now repeat intro; apply eqit_Proper_R. + now intros!; apply eqit_Proper_R. Qed. #[global] Instance eutt_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). Proof. - now repeat intro; apply eqit_Proper_R. + now intros!; apply eqit_Proper_R. Qed. @@ -633,7 +597,7 @@ Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) (LERR: RR <= RR'): @eqit E b1 b2 R1 R2 RR <= eqit b1' b2' RR'. Proof. - repeat intro. + intros!. revert a a0 H. icoinduction c CIH; intros. step in H. induction H; eauto with itree. @@ -881,7 +845,7 @@ repeat match goal with Ltac inf_closed_impl_auto := repeat match goal with | [|- inf_closed (fun _ => _ -> _)] => - apply inf_closed_impl; repeat intro; + apply inf_closed_impl; intros!; match goal with [H : _ <= _ |- _] => apply H; auto end end. @@ -1322,13 +1286,13 @@ Arguments eqit_trans {E R1 R2 R3} [RR1 RR2 b1 b2 t1 t2 t3]. Proof. red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. - repeat intro. now apply TRANS. + intros!. now apply TRANS. Qed. #[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): Transitive (@eqit E b1 b2 R R eq). Proof. - apply Transitive_eqit. repeat intro; subst; eauto. + apply Transitive_eqit. intros!; subst; eauto. Qed. #[global] Instance Equivalence_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b: bool): @@ -1346,7 +1310,7 @@ Qed. #[global] Instance Transitive_eutt {E R RR} : Transitive RR -> Transitive (@eutt E R R RR). Proof. red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. - repeat intro. now apply TRANS. + intros!. now apply TRANS. Qed. @@ -1402,7 +1366,7 @@ Qed. #[global] Instance Transitive_euttge {E R RR} : Transitive RR -> Transitive (@euttge E R R RR). Proof. red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. - repeat intro. now apply TRANS. + intros!. now apply TRANS. Qed. #[global] Instance PreOrder_euttge {E R RR} : PreOrder RR -> PreOrder (@euttge E R R RR). @@ -1415,7 +1379,7 @@ Qed. Proper (eq_itree (E := E) eq ==> (eq_itree (R2 := R2) eq) ==> iff) (eq_itree eq). Proof. split; - repeat intro. + intros!. do 2 (etransitivity; symmetry; eauto). do 2 (etransitivity; eauto); now symmetry. Qed. @@ -1598,7 +1562,7 @@ Qed. #[global] Instance observing_sub_elem b1 b2 (c : Chain (eqit_mon b1 b2)) (l r : itree E R) : subrelation (@observing E R R eq) (elem c R R eq). Proof. - repeat intro. + intros!. inv H. step. rewrite observing_observe. @@ -1710,14 +1674,13 @@ Qed. (** *** Transitivity properties *) -Add Parametric Morphism {E R1 R2 RR1 RR2 RS} b1 b2 +#[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : - (@eqit E b1 b2 R1 R2 RS) - with signature (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) - as eqitgen_cong_eqit. + Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) + (@eqit E b1 b2 R1 R2 RS). Proof. -repeat intro; unfold flip, eq_itree in *. +intros!; unfold flip, eq_itree in *. (* Given *) (* LERR1: ∀ x x' y. RR1 x x' -> RS x' y -> RS x y *) @@ -2070,7 +2033,7 @@ forall t u SS, (elem c SS t u ==> forall x y, SS x y -> elem c (k x) (g y) -> el Proper (pointwise_relation _ (eqit b1 b2 eq) ==> eqit b1 b2 eq ==> eqit b1 b2 eq) (@ITree.subst E R S). Proof. - repeat intro; eapply eqit_bind'; eauto. + intros!; eapply eqit_bind'; eauto. intros; subst; auto. Qed. @@ -2078,19 +2041,10 @@ Qed. Proper (eqit b1 b2 eq ==> pointwise_relation _ (eqit b1 b2 eq) ==> eqit b1 b2 eq) (@ITree.bind E R S). Proof. - repeat intro; eapply eqit_bind'; eauto. + intros!; eapply eqit_bind'; eauto. intros; subst; auto. Qed. -(* #[global] Instance eqit_bind {E R S} b1 b2 : - Proper (eqitF eq b1 b2 ==> pointwise_relation _ (eqitF eq b1 b2) ==> - eqitF eq b1 b2) (@ITree.bind E R S). -Proof. - repeat intro; eapply eqit_bind'; eauto. - intros; subst; auto. -Qed. *) - - Lemma eqit_map {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) f1 f2 t1 t2 : @@ -2108,16 +2062,15 @@ Qed. eqit b1 b2 eq ==> eqit b1 b2 eq) (@ITree.map E R S). Proof. - repeat intro; eapply eqit_map; eauto. + intros!; eapply eqit_map; eauto. intros; subst; auto. Qed. -Add Parametric Morphism {E R1}: - (eqit_ false false (gfp (eqit_mon false false)) _ _ eq) - with signature (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) - as eqitF_cong_eqit. +#[global] Instance eqitF_cong_eqit {E R1} : + Proper (@eq_itree E R1 _ eq ==> eq_itree eq ==> flip impl) + (eqit_ false false (gfp (eqit_mon false false)) _ _ eq). Proof. - red; intros. + intros!. unstep. rewrite H. rewrite H0. now step. Qed. @@ -2128,10 +2081,14 @@ Proof. apply Transitive_elem. typeclasses eauto. Qed. -Add Parametric Morphism {E R} (c : Chain (@eqit_mon E false false)) : - (elem c R R eq) - with signature (observing eq ==> observing eq ==> flip impl) - as elem_observing_proper. +(* This lemma requires a bit of cleverness: [elem c], where [c] is [Chain +(eqit_mon eq false false)], is respected by [observing eq]. Such respectfulness +in turn reqires transitivity of [elem c] and the fact that [observing eq] is a +subrelation of [elem c]. Some work in the reasoning, but with short proofs- and +worth it! +*) +#[global] Instance elem_observing_proper {E R} (c : Chain (@eqit_mon E false false)) : + Proper (observing eq ==> observing eq ==> flip impl) (elem c R R eq). Proof. intros x y Hxy x' y' Hx'y' Helem. symmetry in Hx'y'. @@ -2140,12 +2097,6 @@ Proof. do 2 (etransitivity; eauto). Qed. -(* This lemma requires a bit of cleverness: [elem c], where [c] is [Chain -(eqit_mon eq false false)], is respected by [observing eq]. Such respectfulness -in turn reqires transitivity of [elem c] and the fact that [observing eq] is a -subrelation of [elem c]. Some work in the reasoning, but with short proofs- and -worth it! -*) Lemma bind_ret_r {E R} : forall s : itree E R, ITree.bind s (fun x => Ret x) ≅ s. @@ -2559,55 +2510,26 @@ forall (c : Chain (eqit_mon RR false false)), Equivalence RR -> Equivalence c we want euttge to be a preorder - is this true? forall (c : Chain (eqit_mon RR true false)), Preorder RR -> Preorder c -can we generalize to be heterogeneous for an RR that relates R1, R2? - -next q: -weak bisim: - -4. DONE -forall (c : Chain (eqit_mon RR true true)), Refl RR -> Refl c -5. DONE -forall (c : Chain (eqit_mon RR true true)), Sym RR -> Sym c -(* do not attempt: *) -forall (c : Chain (eqit_mon RR true true)), Trans RR -> Trans c - -but at the gfp, it is true. -(* this is true: *) -(* Equiv RR -> Equiv eutt RR *) - -next big piece is how it all interacts w bind. - -we should be able to prove this: - -forall X1 X2 Y1 Y2, -eutt (RR : X1 -> X2 -> Prop) u v -> (forall x1 x2, RR x1 x2 -> eutt SS (k x1) (g x2) --> eutt SS (bind u k) (bind v g) - -but this should be a particular case of a more gen lemma: under context reasoning -(here bind is the context) - -back to bind: -[DONE, SORT OF]6. -forall (c : Chain (eqit_mon SS b1 b2)) RR, -Proper (eutt RR ==> (fun k g => (forall x y, RR x y -> c (k x) (g y))) ==> c) -bind - -could be interesting: -chain_mono: - -RR1 <= RR2, b1 <= b1', ... -(Chain eqit_mon RR b1 b2) <= -(Chain eqit_mon RR' b1' b2') -) - *) +(* Rtodo: figure out if this is reasonable *) (* Conjecture chain_mono RR1 RR2 b1 b2 b1' b2' : (* we know from JOACHIM PARROW AND TJARK WEBER 2016 that the companion is monotone. *) ... -(Chain eqit_mon RR b1 b2) <= -(Chain eqit_mon RR' b1' b2') . *) +*) +(* Lemma chain_mono {E R1 R2} (RR1 : R1 -> R2 -> Prop) RR2 b1 b2 b1' b2' +(c : Chain (@eqit_mon E b1 b2)) +(c' : Chain (@eqit_mon E b1' b2')) : +RR1 <= RR2 -> +(b1 -> b1') -> +(b2 -> b2') -> +(elem c R1 R2 RR1) <= (elem c' _ _ RR2). +Proof. + tower induction. + Search elem. + { intros!. repeat red in H0. eapply H; eauto. apply H1. apply H0. apply H1. } + intros!. icbn in *. induction H3. *) Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. @@ -2629,26 +2551,13 @@ Lemma Symmetric_elem_eutt R RS (c : Chain (@eqit_mon E true true)) : Symmetric RS -> Symmetric (elem c R R RS). Proof. typeclasses eauto. Qed. -(* modified: eutt RX u v -> eqit RX b1 b2 u v. otherwise you get stuck -when you need to know something about b1/b2. *) +(* A very important lemma *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g (c : Chain (eqit_mon b1 b2)) : eqit b1 b2 RX u v -> (forall x1 x2, RX x1 x2 -> elem c _ _ SS (k x1) (g x2)) -> elem c _ _ SS (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). Proof. - revert u v. - tower induction. intros. icbn. - rewrite 2observe_bind. - step in H0. induction H0; simpobs. - - now apply H1. - - constructor. eapply H; eauto. intros. - (* `step` tactic fails here as there are 2 chains *) - now apply (b_chain x), H1. - - constructor. intro. eapply H; eauto. intros. - now apply (b_chain x), H1. - (* note: we cannot prove these cases for a generic b1 b2 in the chain *) - - taul. rewrite observe_bind. eapply IHeqitF; eauto. - - taur. rewrite observe_bind. eapply IHeqitF; eauto. + intros. eapply eqit_bind_chain; eauto. now do 2 step. Qed. @@ -2695,9 +2604,8 @@ Section eutt_facts. #[global] -Instance eutt_cong_eutt {E R1 R2 RR}: - Proper (eutt eq ==> eutt eq ==> flip impl) - (@eqit E true true R1 R2 RR). +Instance eutt_cong_eutt {E R1 R2 RR} : + Proper (eutt eq ==> eutt eq ==> flip impl) (@eutt E R1 R2 RR). Proof. intros!. now rewrite H, H0. Qed. @@ -2718,12 +2626,6 @@ Proof. intros!. now rewrite H, H0. Qed. -#[global] -Instance eutt_cong_eutt' {E R1 R2 RR} : - Proper (eutt eq ==> eutt eq ==> flip impl) (@eutt E R1 R2 RR). -Proof. - apply eutt_cong_eutt. -Qed. (* Specialization of [eutt_bind_eutt] to the recurrent case where [UU := eq] in order to avoid having to provide the relation manually everytime *) @@ -2754,11 +2656,6 @@ Qed. (* [eutt] can be thought as the elementary block of a relational program logic. The following few lemmas give elementary logical rules to compose proofs. *) - (* for meeting: need a relation combinator that takes - fun x y => P x y and - fun x y => Q x y and makes - fun x y => P x y /\ Q x y - *) Open Scope relationH_scope. Lemma eutt_conj {E} {R S} {RS RS'} : forall (t : itree E R) (s : itree E S), @@ -2805,7 +2702,7 @@ Lemma eutt_equiv {E} {R S} {RS RS'} : eutt RS t s <-> eutt RS' t s. Proof. intros * EQ; split; intros EUTT; eapply eqit_mono; try apply EUTT; eauto. - all:apply EQ. + all: apply EQ. Qed. (* Rewriting equivalent simulation relations under [eq_itree] and [eutt] *) @@ -2813,7 +2710,7 @@ Qed. Instance eq_itree_Proper_R_Het {E : Type -> Type} {R1 R2:Type} : Proper ((@HeterogeneousRelations.eq_rel R1 R2) ==> Logic.eq ==> Logic.eq ==> iff) (@eq_itree E R1 R2). Proof. - repeat intro; subst. + intros!; subst. unfold eq_itree; rewrite H; reflexivity. Qed. @@ -2821,7 +2718,7 @@ Qed. Instance eutt_Proper_R_Het {E : Type -> Type} {R1 R2:Type} : Proper ((@HeterogeneousRelations.eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). Proof. - repeat intro; subst. + intros!; subst. unfold eutt; rewrite H; reflexivity. Qed. @@ -2854,19 +2751,17 @@ End eutt_facts. (* RTODO: move these somewhere reasonable *) -#[global] -Instance observing_eq_chain E R b1 b2 +#[global] Instance observing_eq_chain E R b1 b2 (c : Chain (eqit_mon b1 b2)) : Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (elem c _ _ eq)) (observe). Proof. - repeat intro. + intros!. step. rewrite H. reflexivity. Qed. -#[global] -Instance observing_eq_eqitF E R b1 b2 : +#[global] Instance observing_eq_eqitF E R b1 b2 : Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (eqit b1 b2 eq)) (observe). Proof. - repeat intro; now eapply observing_eq_chain. + intros!; now eapply observing_eq_chain. Qed. diff --git a/tutorial/Asm.v b/tutorial/Asm.v index bc281be1..623a2207 100644 --- a/tutorial/Asm.v +++ b/tutorial/Asm.v @@ -349,7 +349,6 @@ Section InterpAsmProperties. Proof. repeat intro. unfold interp_asm. - unfold interp_map. rewrite H0. rewrite H. rewrite H1. @@ -376,7 +375,7 @@ Section InterpAsmProperties. Proof. intros. unfold interp_asm. - unfold interp_map. cbn. + unfold interp_map. repeat rewrite interp_bind. repeat rewrite interp_state_bind. repeat rewrite bind_bind. From 79c8d87aa797bfa53b4c4d9989d8051032fae723 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 1 May 2026 16:12:17 -0400 Subject: [PATCH 133/189] Some small Dijkstra work --- .Makefile.d | 8 +++- extra/Dijkstra/ITreeDijkstra.v | 72 ++++++++++++++++++---------------- theories/Eq/Eqit.v | 2 +- 3 files changed, 46 insertions(+), 36 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 51cfda62..aae381e0 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -140,5 +140,9 @@ extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijk extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index 6fb065f2..4b79a930 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -4,8 +4,6 @@ From Stdlib Require Import From ExtLib Require Import Structures.Monad. -From Paco Require Import paco. - From ITree Require Import Axioms ITree @@ -38,7 +36,7 @@ Section ITreeDijkstra. Instance proper_itree_spec {R} {p : ITDInput R}: Proper (eutt eq ==> iff) (proj1_sig p). Proof. intros ? ? ?. destruct p as [p Hp]. simpl. split; intros; eapply Hp; eauto. - symmetry. auto. + now rewrite <- H. Qed. Program Definition bind_ex (A B: Type) (w: ITreeSpec A) (g : A -> ITreeSpec B) : ITreeSpec B := @@ -54,15 +52,18 @@ Section ITreeDijkstra. intros. specialize (noret_cast_nop H0) as Ht1. rewrite H in H0. specialize (noret_cast_nop H0) as Ht2. - eapply Hp; eauto. - symmetry in H. - eapply noret_cast_cast; eauto. + eapply Hp. + clear Ht2. + symmetry in H. + eapply noret_cast_cast. all: eauto. - left. exists a. split; auto. rewrite H. auto. - right. rewrite H at 1. split; auto. destruct p as [p Hp]; simpl in *. - eapply Hp; eauto. + eapply Hp. + symmetry in H. + symmetry. eapply noret_cast_cast; eauto. - rewrite H. auto. + auto. Qed. Next Obligation. Proof. @@ -193,15 +194,17 @@ Section ITreeDijkstra. Definition is_inf_ {A : Type} (F : stream A -> Prop) : stream A -> Prop := fun s => is_infF F (observe_stream s). - Definition is_inf {A : Type} := paco1 (@is_inf_ A) bot1. - - Lemma is_inf_monot {A} : monotone1 (@is_inf_ A). - Proof. - red. intros. red in IN. red. induction IN; auto with itree. - Qed. + Lemma is_inf_mono {A} : Proper (leq ==> leq) (@is_inf_ A). + Proof. + intros!. + inv H0. red. rewrite <- H1. econstructor. + now apply H. + Qed. - Hint Resolve is_inf_monot : paco. + Definition is_inf_mon A : mon (stream A -> Prop) := + {| body := @is_inf_ A; Hbody := is_inf_mono |}. + Definition is_inf {A : Type} := gfp (@is_inf_mon A). CoFixpoint app' {A : Type} (osl: stream' A) (sr : stream A) : stream A := match osl with @@ -221,34 +224,37 @@ Section ITreeDijkstra. Definition bisim_ {A : Type} (F : stream A -> stream A -> Prop) : stream A -> stream A -> Prop := fun s1 s2 => bisimF F (observe_stream s1) (observe_stream s2). - Definition bisim {A : Type} := paco2 (@bisim_ A) bot2. - - Lemma bisim_monot {A} : monotone2 (@bisim_ A). - Proof. - red. intros. red in IN. red. induction IN; auto with itree. - Qed. + Lemma bisim_mono {A} : Proper (leq ==> leq) (@bisim_ A). + Proof. + intros!. red. inv H0. + - constructor. + - constructor. now apply H. + Qed. + + Definition bisim_mon {A} : mon (stream A -> stream A -> Prop) := + {| body := @bisim_ A ; Hbody := bisim_mono |}. - Hint Resolve bisim_monot : paco. + Definition bisim {A : Type} := gfp (@bisim_mon A). Instance bisim_equiv {A} : Equivalence (@bisim A). Proof. constructor; red. - - pcofix CIH. intros. pfold. red. destruct (observe_stream x); auto with itree. - - pcofix CIH. intros. - pfold. red. - pinversion H0; subst; auto with itree. - - pcofix CIH. intros. pfold. red. - pinversion H0; pinversion H1; auto with itree. + - unfold bisim. coinduction c cih. intros. cbn; red. destruct (observe_stream x); auto with itree. + - unfold bisim at -1. coinduction c cih. intros. + cbn; red. + red in H; sinv H; auto with itree. + - unfold bisim at 3. coinduction c cih. intros. cbn; red. + red in H; sinv H; red in H0; sinv H0; auto with itree. + rewrite <- H in H3. discriminate. - + rewrite <- H2 in H5. discriminate. - + rewrite <- H2 in H4. injection H4; intros; subst. - constructor. right. eauto. + + rewrite <- H2 in H4. discriminate. + + rewrite <- H2 in H. injection H; intros; subst. + constructor. eauto. Qed. Instance proper_bisim_app {A} : Proper (@bisim A ==> bisim ==> bisim) app. Proof. - repeat red. pcofix CIH. intros s1 s2 H12 s3 s4 H34. - pfold. red. unfold app. pinversion H12. + repeat red. coinduction c cih. intros s1 s2 H12 s3 s4 H34. + cbn; red. unfold app. pinversion H12. - simpl. destruct s3. destruct s4. pinversion H34; simpl in *; subst; auto with itree. constructor. left. apply pacobot2. auto. - cbn. constructor. right. apply CIH; auto. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 6bdb8031..2a052324 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -397,7 +397,7 @@ Tactic Notation "bcoinduction" := Ltac bcbn := cbn; to_mon. (* step -> inversion; common pattern for eutt Hyps *) -Ltac sinv H := step in H; inv H. +Ltac sinv H := repeat red in H; step in H; inv H. From ca69fcac6631c7b3f7536d6405adbc3e2c5433fa Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 1 May 2026 16:14:00 -0400 Subject: [PATCH 134/189] Add makefile.d to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 178181ed..184cc756 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ tutorial/imp_test.mli .mcp.json rocq_mcp_cache_8675_.v rocq_mcp_cache_85046_.v +.Makefile.d \ No newline at end of file From 2f500d49d1505288b21b6b8aac8c547372df51e6 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 1 May 2026 17:23:03 -0400 Subject: [PATCH 135/189] Various small tweaks. Now onto rutt gfp forall refactor. --- .Makefile.d | 298 +++++++++++++++++---------------- .gitignore | 2 +- Makefile | 10 +- Makefile.conf | 8 +- _CoqProject | 111 ++++++++++++ theories/Interp/HandlerFacts.v | 2 +- 6 files changed, 274 insertions(+), 157 deletions(-) create mode 100644 _CoqProject diff --git a/.Makefile.d b/.Makefile.d index 30647e15..ab0e5f3b 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -1,144 +1,154 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/Eq/Shallow.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/Eq/Shallow.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/Eq/RuttFacts.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerburtonpatel/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/Eq/Shallow.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/Eq/Shallow.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/Eq/RuttFacts.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/.gitignore b/.gitignore index 184cc756..a1c1f5b5 100644 --- a/.gitignore +++ b/.gitignore @@ -32,7 +32,7 @@ deps.dot .coqdeps.d Makefile.coq Makefile.coq.conf -/_CoqProject +# /_CoqProject examples/_CoqProject tutorial/_CoqProject _CoqPath diff --git a/Makefile b/Makefile index 2784ed89..c5f54563 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.0.1 +## GNUMakefile for Rocq 9.1.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code he may need +# add any other Makefile code they may need -include Makefile.local # Parameters ################################################################## @@ -77,7 +77,6 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" -ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -87,9 +86,6 @@ else STDTIME?=command time endif endif -else -STDTIME?=command time -f $(TIMEFMT) -endif COQBIN?= ifneq (,$(COQBIN)) @@ -278,7 +274,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.0.1 +COQMAKEFILE_VERSION:=9.1.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index 4db136fe..f5a69775 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true diff --git a/_CoqProject b/_CoqProject new file mode 100644 index 00000000..eb0245f7 --- /dev/null +++ b/_CoqProject @@ -0,0 +1,111 @@ +# THIS IS AN AUTOMATICALLY GENERATED FILE +# PLEASE EDIT _CoqConfig INSTEAD + +-Q theories ITree + +theories/Simple.v +theories/ITree.v +theories/ITreeFacts.v +theories/Axioms.v + +theories/Basics/Utils.v +theories/Basics/Basics.v +theories/Basics/HeterogeneousRelations.v +theories/Basics/Category.v +theories/Basics/CategoryOps.v +theories/Basics/CategoryTheory.v +theories/Basics/CategoryFacts.v +theories/Basics/CategorySub.v +theories/Basics/CategoryFunctor.v +theories/Basics/CategoryRelations.v +theories/Basics/Monad.v +theories/Basics/MonadProp.v +theories/Basics/MonadState.v +theories/Basics/CategoryKleisli.v +theories/Basics/CategoryKleisliFacts.v +theories/Basics/Function.v +theories/Basics/FunctionFacts.v + +theories/Core/ITreeDefinition.v +theories/Core/KTree.v +theories/Core/KTreeFacts.v +theories/Core/Subevent.v +theories/Core/ITreeMonad.v + +theories/Eq.v +theories/Eq/Paco2.v +theories/Eq/Shallow.v +theories/Eq/Eqit.v +theories/Eq/SimUpToTaus.v +theories/Eq/EqAxiom.v +theories/Eq/Rutt.v +theories/Eq/RuttFacts.v + +theories/Props/Leaf.v +theories/Props/Finite.v +theories/Props/HasPost.v +theories/Props/Infinite.v +theories/Props/Cofinite.v +theories/Props/EuttNoRet.v + +theories/Indexed/Sum.v +theories/Indexed/Relation.v +theories/Indexed/Function.v +theories/Indexed/FunctionFacts.v + +theories/Interp/Interp.v +theories/Interp/TranslateFacts.v +theories/Interp/InterpFacts.v +theories/Interp/Handler.v +theories/Interp/HandlerFacts.v +theories/Interp/Recursion.v +theories/Interp/RecursionFacts.v +theories/Interp/Traces.v + +theories/Events.v +theories/Events/State.v +theories/Events/StateFacts.v +theories/Events/Reader.v +theories/Events/Writer.v +theories/Events/Exception.v +theories/Events/ExceptionFacts.v +theories/Events/Nondeterminism.v +theories/Events/Map.v +theories/Events/MapDefault.v +theories/Events/MapDefaultFacts.v +theories/Events/Concurrency.v +theories/Events/Dependent.v +theories/Events/FailFacts.v +-Q extra ITree.Extra + +extra/IForest.v + +extra/ITrace/ITraceDefinition.v +extra/ITrace/ITraceFacts.v +# extra/ITrace/ITracePrefix.v +# extra/ITrace/ITraceBind.v +# extra/ITrace/ITracePreds.v + +extra/Dijkstra/DijkstraMonad.v +extra/Dijkstra/IterRel.v +extra/Dijkstra/PureITreeBasics.v +# extra/Dijkstra/PureITreeDijkstra.v +extra/Dijkstra/DelaySpecMonad.v +extra/Dijkstra/StateSpecT.v +extra/Dijkstra/StateDelaySpec.v +# extra/Dijkstra/TracesIT.v +extra/Dijkstra/ITreeDijkstra.v +# extra/Dijkstra/StateIOTrace.v + +# extra/Secure/Labels.v +# extra/Secure/StrongBisimProper.v +# extra/Secure/SecureEqHalt.v +# extra/Secure/SecureEqHaltProgInsens.v +# extra/Secure/SecureEqEuttHalt.v +# extra/Secure/SecureEqEuttTrans.v +# extra/Secure/SecureEqWcompat.v +# extra/Secure/SecureEqBind.v +# extra/Secure/SecureEqProgInsens.v +# extra/Secure/SecureEqProgInsensFacts.v +# extra/Secure/SecureStateHandler.v +# extra/Secure/SecureStateHandlerPi.v diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 7d4ea2ef..696f8396 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -1,5 +1,5 @@ (** * Theorems for [ITree.Interp.Handler] *) - +(* RTODO: investigate very slow compilation time for this file *) (* begin hide *) From Stdlib Require Import Setoid From aa501647d0d11ef2f7ced25c3159277508058076 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 1 May 2026 18:09:57 -0400 Subject: [PATCH 136/189] Notes and ideas on stepping --- .Makefile.d | 2 -- theories/Eq/Eqit.v | 52 ++++++++++++++++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index ab0e5f3b..d53bb8ea 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -136,8 +136,6 @@ extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/Eq/RuttFacts.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vo extra/ITrace/ITracePreds.glob extra/ITrace/ITracePreds.v.beautified extra/ITrace/ITracePreds.required_vo: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vo extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePreds.vos extra/ITrace/ITracePreds.vok extra/ITrace/ITracePreds.required_vos: extra/ITrace/ITracePreds.v extra/ITrace/ITraceBind.vos extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 19a41eaf..382dfe1c 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -237,25 +237,42 @@ Arguments eqit_mon {E} b1 b2. (** Tactics *) (* RTODO Clean this up massively *) -(** The generic [coinduction] scaffolding lives in [Basics.Utils]: - [under_forall'], [revert_one], [unfold_coind_with], [step_with], - [unstep_with], [coinduction_with]. Here we (1) provide the - ITree-specific [to_mon_4cases_with] macro that all [eqit]-family - relations (and friends like [sutt], [rutt], [interp_iforest]) - instantiate, and (2) define four hooks for the [eqit] family - itself ([iunfold] / [icbn] / [refold] / [to_mon_core]), then - plumb them into the generics. *) - -(** Generic [to_mon] body for ITree relations whose monotone wrapper - equates [F_prefix t1 t2] with [mon_prefix t1 t2] (where - [F_prefix] / [mon_prefix] are the heads with everything except - the two trees already applied). Four shape cases cover how the - trees can appear in the goal: both [observe]s, both - constructor-applied (so we wrap with [go]), or one of each. *) - (** --- Per-relation hooks for the [eqit] family. --- *) + +(* Here we go: +stepping means + +b gfp -> gfp + +gfp to b gfp in goal +b gfp to gfp in ctx + +elem to b elem to (gfp to b gfp) in goal + +b elem to elem in ctx + +unstepping is redundant as the (gfp == b gfp) loop +is closed + +for b gfp -> gfp, we should be fine at F +for gfp -> b gfp we are fine at F + +for b elem to elem in ctx, we need better tactic support +for b elem to gfp b in goal, we might be fine +for F elem vs b elem - test +for elem upwards, we are fine + +we need a tactic for stepping to F, and we need +one for stepping to b + +why do we need forced itrees (itree') in eqitF? + +because we can destruct itree'. + +*) + #[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. #[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit in h. #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. @@ -417,6 +434,7 @@ Goal eutt RR u v. step. step. (* now in the loop *) step. unstep. Fail unstep. step. Fail step. now (unstep; apply EQ2). + to_mon in H. Abort. End step_notation_tests. @@ -2765,3 +2783,5 @@ Qed. Proof. intros!; now eapply observing_eq_chain. Qed. + +(* RTODO: Strengthen rewrites *) \ No newline at end of file From 03311e36d0ec055a632f6ae33196f18ffc3792e2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 3 May 2026 15:00:27 -0400 Subject: [PATCH 137/189] Changed CIH, much progress on ITreeDijkstra. --- extra/Dijkstra/ITreeDijkstra.v | 323 ++++++++++++++++-------------- extra/Dijkstra/IterRel.v | 4 +- extra/Dijkstra/PureITreeBasics.v | 8 +- extra/Dijkstra/StateSpecT.v | 4 +- extra/IForest.v | 28 +-- extra/ITrace/ITraceFacts.v | 36 ++-- theories/Core/KTreeFacts.v | 24 +-- theories/Eq/Eqit.v | 22 +- theories/Eq/RuttFacts.v | 28 +-- theories/Events/ExceptionFacts.v | 6 +- theories/Events/FailFacts.v | 4 +- theories/Events/MapDefaultFacts.v | 2 +- theories/Events/StateFacts.v | 8 +- theories/Interp/HandlerFacts.v | 6 +- theories/Interp/InterpFacts.v | 26 +-- theories/Interp/RecursionFacts.v | 28 +-- theories/Interp/TranslateFacts.v | 14 +- theories/Props/EuttNoRet.v | 28 +-- theories/Props/HasPost.v | 4 +- theories/Props/Infinite.v | 34 ++-- theories/Props/Leaf.v | 18 +- 21 files changed, 343 insertions(+), 312 deletions(-) diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index 4b79a930..0b54ccc9 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -22,6 +22,26 @@ Import MonadNotation. #[local] Open Scope monad_scope. #[local] Open Scope delayspec_scope. + #[local] Tactic Notation "step" := + match goal with + | |- context [@body _] => step + | |- context [@elem _] => step + | |- _ => (* gfp case *) repeat red; step + end. + +#[local] Tactic Notation "step" "in" ident(h) := + repeat red in h; step in h; + match type of h with + | context [@body _] => repeat red in h + | _ => idtac + end. + +#[local] Tactic Notation "coinduction" simple_intropattern(c) + simple_intropattern(CIH) := + repeat red; coinduction c CIH. + + + Section ITreeDijkstra. Context (E : Type -> Type). @@ -100,7 +120,7 @@ Section ITreeDijkstra. (*bind_ret*) repeat red. cbn. intros. split; intros; basic_solve. - apply invert_ret in H. subst. auto. - - pinversion H. + - sinv H. - left. exists x. split; auto. constructor. reflexivity. Qed. Next Obligation. @@ -239,11 +259,11 @@ Section ITreeDijkstra. Instance bisim_equiv {A} : Equivalence (@bisim A). Proof. constructor; red. - - unfold bisim. coinduction c cih. intros. cbn; red. destruct (observe_stream x); auto with itree. - - unfold bisim at -1. coinduction c cih. intros. + - coinduction c CIH. intros. cbn; red. destruct (observe_stream x); auto with itree. + - coinduction c CIH. intros. cbn; red. red in H; sinv H; auto with itree. - - unfold bisim at 3. coinduction c cih. intros. cbn; red. + - unfold bisim at 3. coinduction c CIH. intros. cbn; red. red in H; sinv H; red in H0; sinv H0; auto with itree. + rewrite <- H in H3. discriminate. + rewrite <- H2 in H4. discriminate. @@ -251,24 +271,34 @@ Section ITreeDijkstra. constructor. eauto. Qed. +(* step notes: +step on elem should not reduce +step on mon can reduce +step on gfp can reduce. +*) + Instance proper_bisim_app {A} : Proper (@bisim A ==> bisim ==> bisim) app. Proof. - repeat red. coinduction c cih. intros s1 s2 H12 s3 s4 H34. - cbn; red. unfold app. pinversion H12. - - simpl. destruct s3. destruct s4. pinversion H34; simpl in *; subst; auto with itree. - constructor. left. apply pacobot2. auto. - - cbn. constructor. right. apply CIH; auto. + coinduction c CIH. intros s1 s2 H12 s3 s4 H34. + cbn; red. unfold app. sinv H12. + - simpl. destruct s3. destruct s4. sinv H34; simpl in *; subst; auto with itree. + constructor. now do 2 step. + - cbn. constructor. apply CIH; auto. Qed. - Instance proper_bisim_inf_imp {A} : Proper (@bisim A ==> impl) is_inf. + + +#[local] Tactic Notation "icbn" := repeat red; cbn. + + Instance proper_bisim_inf_imp {A} : Proper (@bisim A ==> Basics.impl) is_inf. Proof. - repeat red. pcofix CIH. - intros s1 s2 H12 H. pfold. red. punfold H. red in H. - punfold H12. red in H12. inversion H12; subst; auto. - - rewrite <- H1 in H. inversion H. - - inversion H. subst. pclearbot. - constructor. right. eapply CIH; eauto. - rewrite <- H3 in H0. injection H0 as H0 . subst. auto. + coinduction c CIH. + intros s1 s2 H12 H. icbn. step in H. + step in H12. inv H12. + - rewrite <- H1 in H. inv H. + - inversion H; subst. + constructor. eapply CIH; eauto. + rewrite <- H3 in H0. inv H0. Qed. Instance proper_bisim_inf {A} : Proper (@bisim A ==> iff) (is_inf). @@ -279,9 +309,9 @@ Section ITreeDijkstra. Lemma app_inf : forall (A : Type) (s1 s2 : stream A), is_inf s1 -> bisim (app s1 s2) s1. Proof. - intros A. pcofix CIH. intros s1 s2 Hinf. pfold. unfold app. - pinversion Hinf. - red. cbn. rewrite <- H. constructor. right. apply CIH; auto. + intros A. coinduction c CIH. intros s1 s2 Hinf. icbn. unfold app. + sinv Hinf. + cbn. constructor. apply CIH; auto. Qed. Variant forall_streamF {A : Type} (P : A -> Prop) (F : stream A -> Prop) : stream' A -> Prop := @@ -293,14 +323,15 @@ Section ITreeDijkstra. Definition forall_stream_ {A : Type} (P : A -> Prop) (F : stream A -> Prop) : stream A -> Prop := fun s => forall_streamF P F (observe_stream s). - Lemma forall_stream_monot (A : Type) (P : A -> Prop) : monotone1 (forall_stream_ P). + Lemma forall_stream_mono (A : Type) (P : A -> Prop) : Proper (leq ==> leq) (forall_stream_ P). Proof. - red. intros. red. red in IN. destruct IN; auto with itree. + repeat red. intros. red in H0. destruct H0; auto with itree. + constructor; auto. now apply H. Qed. - Hint Resolve forall_stream_monot : paco. + Definition forall_stream_mon A P := Build_mon (forall_stream_mono A P). - Definition forall_stream {A : Type} (P : A -> Prop) := paco1 (forall_stream_ P) bot1. + Definition forall_stream {A : Type} (P : A -> Prop) := gfp (forall_stream_mon A P). Inductive inf_manyF {A : Type} (P : A -> Prop) (F : stream A -> Prop) : stream' A -> Prop := | cons_search (h : A) (t : stream A) : inf_manyF P F (observe_stream t) -> inf_manyF P F (ConsF h t) @@ -312,33 +343,34 @@ Section ITreeDijkstra. Definition inf_many_ {A : Type} (P : A -> Prop) (F : stream A -> Prop) : stream A -> Prop := fun s => inf_manyF P F (observe_stream s). - Lemma inf_many_monot (A : Type) (P : A -> Prop) : monotone1 (inf_many_ P). + Lemma inf_many_mono (A : Type) (P : A -> Prop) : Proper (leq ==> leq) (inf_many_ P). Proof. - red. intros. red in IN. red. induction IN; auto with itree. + repeat red. intros. red in H0. induction H0; auto with itree. + apply cons_found; auto. now apply H. Qed. - Hint Resolve inf_many_monot : paco. + Definition inf_many_mon A P := Build_mon (inf_many_mono A P). - Definition inf_many {A : Type} (P : A -> Prop) := paco1 (inf_many_ P) bot1. + Definition inf_many {A : Type} (P : A -> Prop) := gfp (inf_many_mon A P). Lemma inf_many_inf : forall (A : Type) (P : A -> Prop) (s : stream A), inf_many P s -> is_inf s. Proof. - intros A P. pcofix CIH. intros s Him. - punfold Him. red in Him. pfold. red. - induction Him; auto with itree. pclearbot. - auto with itree. + intros A P. coinduction c CIH. intros s Him. + step in Him. icbn. + induction Him; auto with itree. + constructor. apply CIH. now step. Qed. Lemma inf_and_forall : forall (A : Type) (P : A -> Prop) (s : stream A), is_inf s -> forall_stream P s -> inf_many P s. Proof. - intros A P. pcofix CIH. intros s Hinf Hforall. - pfold. red. punfold Hinf. red in Hinf. punfold Hforall. - red in Hforall. inversion Hinf. - inversion Hforall. + intros A P. coinduction c CIH. intros s Hinf Hforall. + icbn. step in Hinf. step in Hforall. + inv Hinf. + inv Hforall. - rewrite <- H in H2. discriminate. - - pclearbot. rewrite <- H in H1. injection H1 as H1. subst. + - rewrite <- H in H1. inv H1. apply cons_found; auto. Qed. @@ -347,7 +379,6 @@ Section ITreeDijkstra. (*need a way to relate trees across event types if they never use it*) Definition rel_eventless {E1 E2 R} (t1 : itree E1 R) (t2 : itree E2 R) : Prop := False. - Inductive eqitEF {E1 E2 : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop) (sim : itree E1 R1 -> itree E2 R2 -> Prop) : itree' E1 R1 -> itree' E2 R2 -> Prop := | EqERet : forall r1 r2, RR r1 r2 -> eqitEF RR sim (RetF r1) (RetF r2) @@ -368,15 +399,16 @@ Section ITreeDijkstra. (t1 : itree E1 R1) (t2 : itree E2 R2) := eqitEF RR sim (observe t1) (observe t2). - Definition eqitE {E1 E2} {R1 R2} RR := paco2 (eqitE_ E1 E2 R1 R2 RR) bot2. + Lemma eqitE_mono {E1 E2 R1 R2 RR} : Proper (leq ==> leq) (@eqitE_ E1 E2 R1 R2 RR). + Proof. + repeat red. intros. rename x into t1. rename y into t2. + induction H0; eauto with itree. + constructor. now apply H. + Qed. - Lemma eqitE_monot {E1 E2 R1 R2 RR} : monotone2 (@eqitE_ E1 E2 R1 R2 RR). - Proof. - repeat red. intros. rename x0 into t1. rename x1 into t2. - induction IN; eauto with itree. - Qed. + Definition eqitE_mon {E1 E2 R1 R2 RR} := Build_mon (@eqitE_mono E1 E2 R1 R2 RR). - Hint Resolve eqitE_monot : paco. + Definition eqitE {E1 E2} {R1 R2} RR := gfp (@eqitE_mon E1 E2 R1 R2 RR). Definition equivE {E1 E2} {R} : itree E1 R -> itree E2 R -> Prop := eqitE eq. @@ -390,35 +422,33 @@ Section ITreeDijkstra. : itree E R -> Prop := fun t => eventlessF F (observe t). Hint Unfold eventless_ : itree. - - Definition eventless {E : Type -> Type} {R : Type} : itree E R -> Prop := - paco1 (eventless_) bot1. - - Lemma eventless_monot {E1 R} : monotone1 (@eventless_ E1 R). + + Lemma eventless_mono {E1 R} : Proper (leq ==> leq) (@eventless_ E1 R). Proof. - red. intros. red in IN. red. inversion IN; auto with itree. + repeat red. intros. red in H0. inversion H0; auto with itree. + constructor. now apply H. Qed. - Hint Resolve eventless_monot : paco. + Definition eventless_mon {E1 R} := Build_mon (@eventless_mono E1 R). + + Definition eventless {E : Type -> Type} {R : Type} : itree E R -> Prop := + gfp (@eventless_mon E R). - Instance proper_eventless_imp {E1 R} : Proper (eutt eq ==> impl) (@eventless E1 R) . + Instance proper_eventless_imp {E1 R} : Proper (eutt eq ==> Basics.impl) (@eventless E1 R) . Proof. - repeat red. pcofix CIH. + repeat red. coinduction c CIH. intros t1 t2 Heutt Hev. - pfold. punfold Heutt. red. - unfold_eqit. assert (Hev' : eventless t1); auto. punfold Hev. + step in Heutt. icbn. + assert (Hev' := Hev). step in Hev. dependent induction Heutt; subst; auto with itree. - - rewrite <- x. auto with itree. - - rewrite <- x. constructor. right. eapply CIH; eauto. - specialize (itree_eta t1) as Ht1. rewrite <- x0 in Ht1. - rewrite Ht1. rewrite tau_eutt. pclearbot. auto. - - red in Hev. inversion Hev; subst. - + rewrite <- H0 in x0. discriminate. - + rewrite <- H in x0. discriminate. - - red in Hev. rewrite <- x in Hev. inversion Hev; subst. - pclearbot. eapply IHHeutt; try apply H0; eauto. red. - punfold H0. - - rewrite <- x. constructor. right. eapply CIH; eauto with itree. + - simpobs. auto with itree. + - simpobs. constructor. eapply CIH; eauto. + inv Hev. + - simpobs. inv Hev. + - simpobs. inv Hev. + eapply IHHeutt; try apply H0; eauto. + now step in H0. + - simpobs. constructor. unstep in Heutt. eapply CIH; eauto with itree. Qed. Instance proper_eventless {E1 R} : Proper (eutt eq ==> iff) (@eventless E1 R). @@ -432,42 +462,38 @@ Section ITreeDijkstra. (t1 : itree E1 R1) (t2 : itree E1 R2), eventless t1 -> eutt RR t1 t2 -> eqitE RR t1 t2. Proof. - intros E1 R1 R2 RR. pcofix CIH. intros. - punfold H1. unfold_eqit. pfold. red. dependent induction H1; auto. - - rewrite <- x0. rewrite <- x. constructor. auto. - - rewrite <- x0. rewrite <- x. - constructor. right. + intros E1 R1 R2 RR. coinduction c CIH. intros. + step in H0. icbn. dependent induction H0; auto. + - simpobs. eret. + - simpobs. + constructor. specialize (itree_eta t1) as Ht1. specialize (itree_eta t2) as Ht2. - rewrite <- x0 in Ht1. rewrite <- x in Ht2. + simpobs. assert (t1 ≈ m1). { rewrite Ht1. rewrite tau_eutt. reflexivity. } assert (t2 ≈ m2). { rewrite Ht2. rewrite tau_eutt. reflexivity. } - pclearbot. apply CIH; auto. - rewrite <- H. auto. - - exfalso. pinversion H0. - + rewrite <- H1 in x0. discriminate. - + rewrite <- H in x0. discriminate. - - rewrite <- x. constructor. - specialize (itree_eta t1) as Ht1. rewrite <- x in Ht1. - rewrite Ht1 in H0. pinversion H0. - subst. eapply IHeqitF; try apply H2; eauto. - - rewrite <- x. constructor. eapply IHeqitF; eauto. + now rewrite <- H0. + - exfalso. step in H; simpobs. inv H. + - simpobs. constructor. + specialize (itree_eta t1) as Ht1. simpobs. + sinv H. + + simpobs; easy. + + eapply IHeqitF; eauto. rewrite <- tau_eutt. step. + rewrite x, <- H1. now constructor. + - simpobs. constructor. eapply IHeqitF; eauto. Qed. Lemma eventless_div : forall (R : Type) (t : itree E R), eventless t -> all_infinite t -> t ≈ ITree.spin. Proof. - intros R. pcofix CIH. intros. - pinversion H0. - - specialize (itree_eta t) as Ht. rewrite <- H2 in Ht. - rewrite Ht in H1. pinversion H1. - - pfold. red. cbn. rewrite <- H. - red in H0. rewrite <- H in H0. + intros R. coinduction c CIH. intros. + sinv H. + - specialize (itree_eta t) as Ht. simpobs. + rewrite Ht in H0. sinv H0. + - icbn. simpobs. + red in H0. step in H0; simpobs; inv H0. constructor. - right. apply CIH; auto. - specialize (itree_eta t) as Ht. rewrite <- H in Ht. - rewrite Ht in H1. punfold H1. red in H1. cbn in H1. - inversion H1. subst. pclearbot. auto. + apply CIH; auto. Qed. Lemma eventless_ret : forall (R : Type) (t : itree E R) (r : R), @@ -475,17 +501,16 @@ Section ITreeDijkstra. Proof. intros R t r. intros. induction H0; auto. rewrite H0 in H. - pinversion H. + sinv H. Qed. Lemma eqitE_imp_eutt : forall (E : Type -> Type) (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (t1 : itree E R1) (t2 : itree E R2), eqitE RR t1 t2 -> eutt RR t1 t2. Proof. - intros E1 R1 R2 RR. pcofix CIH. - intros t1 t2 Heq. pfold. punfold Heq. - red. red in Heq. induction Heq; auto with itree. - pclearbot. constructor. right. apply CIH. auto. + intros E1 R1 R2 RR. coinduction c CIH. + intros t1 t2 Heq. icbn. step in Heq. + induction Heq; auto with itree. Qed. Lemma eqitE_imp_eventlessl : forall (E1 E2 : Type -> Type) (R1 R2 : Type) @@ -493,11 +518,10 @@ Section ITreeDijkstra. (t1 : itree E1 R1) (t2 : itree E2 R2), eqitE RR t1 t2 -> eventless t1. Proof. - intros E1 E2 R1 R2 RR. pcofix CIH. - intros. punfold H0. red in H0. - pfold. red. induction H0; eauto with itree. - pclearbot. - constructor. right. eapply CIH; eauto. + intros E1 E2 R1 R2 RR. coinduction c CIH. + intros. step in H. + icbn. induction H; eauto with itree. + constructor. apply (CIH t0 (ITreeDefinition.go ot2)). now step. Qed. Lemma eqitE_imp_eventlessr : forall (E1 E2 : Type -> Type) (R1 R2 : Type) @@ -505,18 +529,17 @@ Section ITreeDijkstra. (t1 : itree E1 R1) (t2 : itree E2 R2), eqitE RR t1 t2 -> eventless t2. Proof. - intros E1 E2 R1 R2 RR. pcofix CIH. - intros. punfold H0. red in H0. - pfold. red. induction H0; eauto with itree. - pclearbot. - constructor. right. eapply CIH; eauto. + intros E1 E2 R1 R2 RR. coinduction c CIH. + intros. step in H. + icbn. induction H; eauto with itree. + constructor. apply (CIH (ITreeDefinition.go ot1) t0). now step. Qed. Lemma eventless_spin : forall (E1 : Type -> Type) (R : Type), eventless (@ITree.spin E1 R). Proof. - intros E1 R. pcofix CIH. pfold. red. cbn. constructor. - right. auto. + intros E1 R. coinduction c CIH. icbn. cbn. constructor. + auto. Qed. CoFixpoint remove_events' {E1 E2 : Type -> Type} {A : Type} @@ -533,10 +556,10 @@ Section ITreeDijkstra. (t : itree E1 A), eventless t -> @equivE E1 E2 A t (remove_events t). Proof. - intros E1 E2 A. pcofix CIH. intros. - pfold. red. pinversion H0. + intros E1 E2 A. coinduction c CIH. intros. + icbn. sinv H. - cbn. unfold remove_events. rewrite <- H1. cbn. auto with itree. - - unfold remove_events. rewrite <- H. cbn. constructor. right. apply CIH. + - unfold remove_events. rewrite <- H0. cbn. constructor. apply CIH. auto. Qed. @@ -544,46 +567,54 @@ Section ITreeDijkstra. (t : itree E1 A), eventless (@remove_events E1 E2 A t). Proof. - intros E1 E2 A. pcofix CIH. intros. - pfold. red. unfold remove_events. destruct (observe t) eqn : Heq. + intros E1 E2 A. coinduction c CIH. intros. + icbn. unfold remove_events. destruct (observe t) eqn : Heq. - cbn. constructor. - - cbn. constructor. right. apply CIH. - - cbn. constructor. left. apply pacobot1, eventless_spin. + - cbn. constructor. apply CIH. + - cbn. constructor. do 2 step. apply eventless_spin. Qed. Lemma delay_eventless : forall (A : Type) (d : Delay A), eventless d. Proof. - intros A. pcofix CIH. intros. - pfold. red. destruct (observe d); auto with itree. + intros A. coinduction c CIH. intros. + icbn. destruct (observe d); auto with itree. destruct e. Qed. - (* TODO need to get this done at some point*) Lemma eqitE_inv_Tau : forall (E1 E2 : Type -> Type) (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (t1 : itree E1 R1) (t2 : itree E2 R2), eqitE RR (Tau t1) (Tau t2) -> eqitE RR t1 t2. Proof. intros E1 E2 R1 R2 RR. - pcofix CIH. intros. - punfold H0. red in H0. simpl in H0. - pfold. red. remember (TauF t1) as tt1. - remember (TauF t2) as tt2. genobs t1 ot1. - genobs t2 ot2. induction H0; try discriminate. - - pclearbot. injection Heqtt1 as Heqtt1. injection Heqtt2 as Heqtt2. subst. - punfold H. red in H. auto. eapply eqitE_monot; eauto. - intros. pclearbot. left. eapply paco2_mon; try apply PR. intros. contradiction. - Abort. + coinduction c CIH. intros. icbn. + intros. + step in H. + remember (TauF t1) as ot1. + remember (TauF t2) as ot2. + revert t1 t2 Heqot1 Heqot2. cbn in H. + induction H; intros t1' t2' Heqot1 Heqot2; try easy; subst. + - inv Heqot1; inv Heqot2. now step. + - inv H; inv Heqot1; simpobs. + + constructor. now apply IHeqitEF. + + constructor. now apply IHeqitEF. + + now do 2 step. + - inv H; inv Heqot2; simpobs. + + constructor. now apply IHeqitEF. + + now do 2 step. + + constructor. now apply IHeqitEF. + Qed. + Lemma inv_remove_events : forall (E1 E2 : Type -> Type) (R : Type) (t1 : itree E1 R) (t2 : itree E2 R), eventless t1 -> eventless t2 -> @remove_events E1 E2 R t1 ≈ @remove_events E2 E2 R t2 -> equivE t1 t2. Proof. - intros E1 E2 R. pcofix CIH. + intros E1 E2 R. coinduction c CIH. intros t1 t2 Hev1 Hev2 Heutt. pfold. red. - punfold Heutt. unfold_eqit. dependent induction Heutt; subst. + step in Heutt. unfold_eqit. dependent induction Heutt; subst. - unfold remove_events in x0, x. destruct (observe t1); destruct (observe t2); try discriminate. constructor. cbn in *. injection x0. injection x. intros. subst. auto. @@ -591,7 +622,7 @@ Section ITreeDijkstra. destruct (observe t1) eqn : Heq1; destruct (observe t2) eqn : Heq2; try discriminate. + cbn in *. constructor. injection x0. injection x. intros. subst. pclearbot. - right. apply CIH; auto. + apply CIH; auto. * specialize (itree_eta t1) as Ht1. rewrite Heq1 in Ht1. assert (t ≈ t1). { rewrite Ht1. rewrite tau_eutt. reflexivity. } @@ -600,13 +631,13 @@ Section ITreeDijkstra. assert (t0 ≈ t2). { rewrite Ht2. rewrite tau_eutt. reflexivity. } rewrite H. auto. - + pinversion Hev2. + + sinv Hev2. * rewrite Heq2 in H0. discriminate. * rewrite Heq2 in H. discriminate. - + pinversion Hev1. + + sinv Hev1. * rewrite Heq1 in H0. discriminate. * rewrite Heq1 in H. discriminate. - + pinversion Hev1. + + sinv Hev1. * rewrite Heq1 in H0. discriminate. * rewrite Heq1 in H. discriminate. - unfold remove_events in *. destruct (observe t1); cbn in x0; discriminate. @@ -619,7 +650,7 @@ Section ITreeDijkstra. rewrite H. auto. * unfold remove_events. rewrite x. auto. + exfalso. specialize (itree_eta t1) as Ht1. rewrite Heq in Ht1. - rewrite Ht1 in Hev1. pinversion Hev1. + rewrite Ht1 in Hev1. sinv Hev1. - unfold remove_events in x. destruct (observe t2) eqn : Heq; cbn in *; try discriminate. + injection x as x. constructor. apply IHHeutt; auto. @@ -629,7 +660,7 @@ Section ITreeDijkstra. rewrite H. auto. * unfold remove_events. rewrite x. auto. + exfalso. specialize (itree_eta t2) as Ht2. rewrite Heq in Ht2. - rewrite Ht2 in Hev2. pinversion Hev2. + rewrite Ht2 in Hev2. sinv Hev2. Qed. Lemma remove_events_eqitE : forall (E1 E2 E3 E4 : Type -> Type) (R1 R2 : Type) @@ -637,10 +668,10 @@ Section ITreeDijkstra. (t1 : itree E1 R1) (t2 : itree E2 R2), eqitE RR t1 t2 -> eqitE RR (@remove_events E1 E3 R1 t1) (@remove_events E2 E4 R2 t2). Proof. - intros E1 E2 E3 E4 R1 R2 RR. pcofix CIH. intros. - punfold H0. red in H0. pfold. red. unfold remove_events. + intros E1 E2 E3 E4 R1 R2 RR. coinduction c CIH. intros. + step in H0. red in H0. icbn. unfold remove_events. induction H0; cbn; auto with itree. - pclearbot. constructor. right. apply CIH; auto. + constructor. apply CIH; auto. Qed. Lemma eqitE_trans : forall (E1 E2 E3 : Type -> Type) (R : Type) @@ -670,10 +701,10 @@ Section ITreeDijkstra. (t1 : itree E1 R) (t2 : itree E2 R), equivE t1 t2 -> equivE t2 t1. Proof. - intros E1 E2 R. pcofix CIH. intros. - punfold H0. red in H0. pfold. red. + intros E1 E2 R. coinduction c CIH. intros. + step in H0. red in H0. pfold. red. induction H0; eauto with itree. - pclearbot. constructor. right. apply CIH; auto. + constructor. apply CIH; auto. Qed. @@ -772,9 +803,9 @@ Section RetBindCounter. unfold p. cbn. reflexivity. } apply Hcontra in H. clear Hcontra. basic_solve. - - unfold p in H0. cbn in H0. pinversion H0. - - clear H0. pinversion H; try apply all_infiniteF_mono'. ddestruction. - specialize (H1 tt). punfold H1; try apply all_infiniteF_mono'. + - unfold p in H0. cbn in H0. sinv H0. + - clear H0. sinv H; try apply all_infiniteF_mono'. ddestruction. + specialize (H1 tt). step in H1; try apply all_infiniteF_mono'. inv H1. Qed. diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 2ea47e6b..1812e621 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -79,11 +79,11 @@ Definition not_wf_F_mon := not_wf_from a. Proof. intros. generalize dependent a. unfold not_wf_from. - coinduction c cih. + coinduction c CIH. intros. apply not_wf with (a' := f a). - auto using H1. - - apply cih. eapply H0; eauto. + - apply CIH. eapply H0; eauto. Qed. Lemma intro_wf : forall (P : A-> Prop) (m : A -> nat) (a : A), diff --git a/extra/Dijkstra/PureITreeBasics.v b/extra/Dijkstra/PureITreeBasics.v index e8eed0f6..4c4235db 100644 --- a/extra/Dijkstra/PureITreeBasics.v +++ b/extra/Dijkstra/PureITreeBasics.v @@ -54,7 +54,7 @@ Proof. intros A. bcoinduction. intros. cbn. destruct (observe t) eqn : Heqt. - specialize (itree_eta t) as Heta. rewrite Heqt in Heta. rewrite Heta in H. sinv H. - - constructor. apply cih. specialize (itree_eta t) as Heta. rewrite Heqt in Heta. + - constructor. apply CIH. specialize (itree_eta t) as Heta. rewrite Heqt in Heta. assert (t ≈ Tau t0). + rewrite Heta. reflexivity. + rewrite <- tau_eutt. rewrite <- H0. auto. @@ -64,11 +64,11 @@ Qed. Lemma eutt_reta_or_div_aux : forall A (t : itree void1 A), ~(exists a, ret a ≈ t) -> any_infinite t. Proof. intro A. unfold any_infinite, any_infinite_. - coinduction c cih. + coinduction c CIH. intros. destruct (observe t) eqn : Heqt. - exfalso. specialize (itree_eta t) as Heta. rewrite Heqt in Heta. apply H. exists r. rewrite Heta. reflexivity. - - repeat red; simpobs; constructor. eapply cih; eauto. intro. apply H. + - repeat red; simpobs; constructor. eapply CIH; eauto. intro. apply H. destruct H0 as [a Ha]. exists a. specialize (itree_eta t) as Ht. rewrite Heqt in Ht. rewrite Ht. rewrite tau_eutt. auto. - destruct e. @@ -95,7 +95,7 @@ Qed. Lemma eutt_ret_euttge : forall (E : Type -> Type) (A : Type) (a : A) (t : itree E A), t ≈ Ret a -> t ≳ Ret a. Proof. - intros. generalize dependent t. icoinduction c cih. intros. sinv H. + intros. generalize dependent t. icoinduction c CIH. intros. sinv H. - taul. (* Unset Printing Notations. *) remember (observe (Ret a)). diff --git a/extra/Dijkstra/StateSpecT.v b/extra/Dijkstra/StateSpecT.v index a8e7a828..8c6612ec 100644 --- a/extra/Dijkstra/StateSpecT.v +++ b/extra/Dijkstra/StateSpecT.v @@ -171,12 +171,12 @@ Section LoopInvarSpecific. apply iter_inl_spin. (*seems to require some coinduciton*) generalize dependent a. generalize dependent s. (* RTODO improve with tactics *) - unfold not_wf_from at -1. coinduction c cih. + unfold not_wf_from at -1. coinduction c CIH. intros. red in H; sinv H; try apply not_wf_F_mono'. apply not_wf with (a' := a'); eauto. - red in Hrel. destruct a' as [s' a']. simpl. red. simpl. rewrite Hrel. rewrite bind_ret_l. simpl. reflexivity. - - destruct a'. eapply cih; eauto. + - destruct a'. eapply CIH; eauto. Qed. Lemma iter_wf_converge_state : forall (A B S : Type) (g : A -> stateT S Delay (A + B) ) (a : A) (s : S), diff --git a/extra/IForest.v b/extra/IForest.v index 100aaf2d..6b4a3305 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -294,8 +294,8 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Tactic Notation "bcoinduction" := let c := fresh "c" in - let cih := fresh "cih" in - bcoinduction c cih. + let CIH := fresh "CIH" in + bcoinduction c CIH. #[local] Ltac bcbn := cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_]; @@ -462,12 +462,12 @@ Proof. rewrite Eqit.bind_ret_l. repeat red. simpobs. now econstructor. - rewrite <- eq. rewrite unfold_iter. bcbn. rewrite Eqit.bind_ret_l. rewrite tau_eutt. - repeat red. simpobs. econstructor. now apply cih. + repeat red. simpobs. econstructor. now apply CIH. - rewrite <- eq. rewrite unfold_iter. bcbn. rewrite bind_map. repeat red; simpobs. econstructor. + apply H. + ebind. intros; subst. rewrite tau_eutt. reflexivity. - + intros. rewrite tau_eutt. now apply cih. + + intros. rewrite tau_eutt. now apply CIH. Qed. (* Lemma 5.5 - note that the paper presents this lemma after unfolding the definition of Proper. @@ -481,7 +481,7 @@ Proof. intros t1 t2 eqt s' s eqs HI. subst. revert t1 t2 eqt s HI. - icoinduction c cih. + icoinduction c CIH. intros. step in HI. @@ -492,7 +492,7 @@ Proof. induction eqt; intros. - inv HI. econstructor. etransitivity; eauto. eauto. - inv HI. - econstructor. eapply cih; eauto. + econstructor. eapply CIH; eauto. - inv HI. apply inj_pair2 in H1. apply inj_pair2 in H2. @@ -501,7 +501,7 @@ Proof. apply HTA. apply eq2. intros a Ha. specialize (REL a). specialize (HK a Ha). red in REL. - eapply cih. apply REL. apply HK. + eapply CIH. apply REL. apply HK. - econstructor. step. eapply IHeqt. reflexivity. eassumption. assumption. - inv HI. @@ -519,13 +519,13 @@ Lemma eutt_Leaf_ : forall {E} {R} (RR : R -> Prop) (ta : itree E R) (IN: forall (a : R), Leaf a ta -> RR a), eutt (fun u1 u2 => u1 = u2 /\ RR u1) ta ta. Proof. intros E R. - icoinduction c cih. intros. + icoinduction c CIH. intros. setoid_rewrite (itree_eta ta) in IN. destruct (observe ta). - econstructor. split; auto. apply IN. now econstructor. - - econstructor. apply cih. intros. eapply IN. now rewrite tau_eutt. + - econstructor. apply CIH. intros. eapply IN. now rewrite tau_eutt. - econstructor. intros. - apply cih. intros. eapply IN. eapply Leaf_Vis_sub. apply H. + apply CIH. intros. eapply IN. eapply Leaf_Vis_sub. apply H. Qed. Lemma eutt_Leaf : forall E R (ta : itree E R), eutt (fun u1 u2 => u1 = u2 /\ Leaf u1 ta) ta ta. @@ -593,7 +593,7 @@ Lemma interp_iforest_spin_accepts_anything : interp_iforest h_spec R RR ITree.spin t. Proof. intros. - icoinduction c cih. cbn. econstructor. apply cih. + icoinduction c CIH. cbn. econstructor. apply CIH. Qed. (* Figure 7: Structural law for tau *) @@ -1037,14 +1037,14 @@ Lemma eutt_EQ_REL_Reflexive_ {E} {A} (ta : itree E A) : eutt R ta ta. Proof. revert ta. - icoinduction c cih. intros ta R HEQ. + icoinduction c CIH. intros ta R HEQ. desobs ta hta. - econstructor. apply HEQ. red. split; auto. rewrite itree_eta. rewrite hta. now constructor. - - econstructor. apply cih. intros!. apply HEQ. + - econstructor. apply CIH. intros!. apply HEQ. red. destruct H. split; auto. econstructor 2; eauto. - - econstructor; intros. apply cih. + - econstructor; intros. apply CIH. intros!. apply HEQ. rewrite itree_eta, hta. destruct H. diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index 2865f547..c98378cb 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -192,11 +192,11 @@ Lemma trace_refine_proper_left' : forall (E : Type -> Type) (R : Type) (b1 b2 : (t : itree E R), (b1 ≈ b2) -> rutt (REvRef E) (RAnsRef E) eq b1 t -> rutt (REvRef E) (RAnsRef E) eq b2 t. Proof. - intros E R. rcoinduction c cih. intros. + intros E R. rcoinduction c CIH. intros. step in H0. repeat red in H0. step in H. genobs t ot3. clear Heqot3. - hinduction H before cih; intros; subst; eauto. - - remember (RetF r2) as ot1. hinduction H0 before cih; intros; inv Heqot1; eauto with paco. + hinduction H before CIH; intros; subst; eauto. + - remember (RetF r2) as ot1. hinduction H0 before CIH; intros; inv Heqot1; eauto with paco. + constructor. auto. + constructor. eapply IHruttF; eauto. (* Tau Tau case causes the most problems, seems *) @@ -204,18 +204,18 @@ Proof. { destruct ot3; eauto; right; red; intros; inv H. } destruct DEC as [EQ | EQ]. + destruct EQ as [m3 ?]; subst. - constructor. eapply cih; eauto. + constructor. eapply CIH; eauto. apply rutt_inv_Tau. now step. + inv H0; try (exfalso; eapply EQ; eauto; fail). constructor. step in REL. - hinduction H1 before cih; intros; subst; try (exfalso; eapply EQ; eauto; fail). + hinduction H1 before CIH; intros; subst; try (exfalso; eapply EQ; eauto; fail). * dependent induction REL; rewrite <- x. ++ constructor. auto. ++ constructor. eapply IHREL; eauto. * dependent induction REL; rewrite <- x. ++ constructor; auto. intros. apply H0 in H1. - eapply cih. apply REL. assumption. + eapply CIH. apply REL. assumption. ++ constructor. eapply IHREL; eauto. * eapply IHruttF; eauto. clear IHruttF. dependent induction REL; try (exfalso; eapply EQ; eauto; fail). @@ -223,12 +223,12 @@ Proof. ++ auto. ++ rewrite <- x. constructor; auto. eapply IHREL; eauto. - remember (VisF e k1) as ot1. - hinduction H0 before cih; intros; dependent destruction Heqot1. + hinduction H0 before CIH; intros; dependent destruction Heqot1. + constructor; auto. intros. apply H0 in H1. - eapply cih. apply REL. assumption. + eapply CIH. apply REL. assumption. + constructor. eapply IHruttF; eauto. - eapply IHeqitF; eauto. remember (TauF t1) as otf1. - hinduction H0 before cih; intros; dependent destruction Heqotf1; eauto. + hinduction H0 before CIH; intros; dependent destruction Heqotf1; eauto. + constructor. now unstep. + constructor. eapply IHruttF; eauto. - constructor. eapply IHeqitF; eauto. @@ -365,14 +365,14 @@ Lemma itree_refine_nonempty : forall (E : Type -> Type) (R : Type) (t : itree E Proof. intros. destruct classicT_inhabited as [classicT]. exists (determinize classicT t). generalize dependent t. - red. rcoinduction c cih. + red. rcoinduction c CIH. intros. unfold determinize. desobs t Hot. - cbn. eret. - - cbn. constructor. apply cih. + - cbn. constructor. apply CIH. - unfold observe. cbn. destruct (classicT _). + constructor; eauto with itree. intros. inversion H. ddestruction. - subst. apply cih. + subst. apply CIH. + constructor; auto with itree. intros. contradiction. Qed. @@ -496,16 +496,16 @@ Lemma trace_refine_all_infinite : forall (E : Type -> Type) (R : Type) all_infinite t -> b ⊑ t -> all_infinite b. Proof. intros E R. unfold all_infinite at -1. - coinduction c cih. + coinduction c CIH. intros. step in H. step in H0. repeat red in H, H0; repeat red. dependent induction H0. - rewrite <- x in H. inv H. - - rewrite <- x0. constructor. eapply cih; eauto. + - rewrite <- x0. constructor. eapply CIH; eauto. rewrite <- x in H. inv H. - rewrite <- x0. rewrite <- x in H. constructor. inv H. ddestruction. subst. intros. inv H1; subst; ddestruction; try contradiction. destruct b0. - eapply cih; try apply H3. + eapply CIH; try apply H3. specialize (H0 tt a). assert (RAnsRef _ _ _ (evans B e2 a) tt e2 a ). constructor. apply H0 in H. eauto. - rewrite <- x. constructor. apply (b_chain c). eapply IHruttF; eauto. @@ -537,18 +537,18 @@ Lemma trace_refine_diverge_bind : forall (E : Type -> Type) (R S : Type) all_infinite b -> b ⊑ t -> ITree.bind b f ⊑ ITree.bind t g. Proof. intros E R S b t f g. generalize dependent b. generalize dependent t. - red. rcoinduction c cih. intros. + red. rcoinduction c CIH. intros. step in H0. step in H. repeat red in H0, H. dependent induction H0. - rewrite <- x0 in H. inv H. - unfold observe. cbn. rewrite <- x0. rewrite <- x. - cbn. constructor. apply cih; auto. + cbn. constructor. apply CIH; auto. rewrite <- x0 in H. inv H. - unfold observe. cbn. rewrite <- x0. rewrite <- x. cbn. constructor; auto. intros. rewrite <- x0 in H. inv H. ddestruction. subst. - apply H0 in H2. eapply cih; eauto. apply H4. + apply H0 in H2. eapply CIH; eauto. apply H4. - unfold observe at 1. cbn. rewrite <- x. cbn. constructor. eapply IHruttF; eauto. rewrite <- x in H. inv H. now unstep. - unfold observe at 2. cbn. rewrite <- x. cbn. constructor. diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 5bba48e3..2cbfbbc8 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -61,7 +61,7 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) end) (inl x). Proof. (* this proof should follow from the facts about elem *) - bcoinduction c cih. intros. + bcoinduction c CIH. intros. intros. (* Unset Printing Notations. *) @@ -72,10 +72,10 @@ Proof. ebind. intros [a | b] _ []. - rewrite bind_tau. taus. - eapply cih. + eapply CIH. - rewrite bind_ret_l, tau_euttge. (* question: why doesn't accumulate acc work? *) - do 2 step. revert b. bcoinduction c' cih'. intros. + do 2 step. revert b. bcoinduction c' CIH'. intros. rewrite !unfold_iter. rewrite bind_map. ebind. @@ -94,7 +94,7 @@ Lemma eq_itree_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eq_itree E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. eapply eqit_bind_chain. @@ -112,7 +112,7 @@ Lemma eutt_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. ebind. @@ -131,12 +131,12 @@ Lemma eutt_iter'' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI1 i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. ebind. do 2 step; eauto. - intros ? ? []; econstructor; eauto. now apply cih, HSUB. + intros ? ? []; econstructor; eauto. now apply CIH, HSUB. Qed. Definition eutt_iter_gen' {F A B R1 R2 S} (HS : R2 <= R1) : @@ -245,7 +245,7 @@ Lemma iter_dinatural_ktree {E A B C} end). Proof. revert A B C f g a0. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite unfold_iter_ktree. rewrite bind_bind. ebind. @@ -253,7 +253,7 @@ Proof. (* Tour: show this *) (* old TODO: here we should be able to apply symmetry and be done. *) (* Win! *) - - rewrite bind_tau. taus. symmetry. eapply cih. + - rewrite bind_tau. taus. symmetry. eapply CIH. - rewrite bind_ret_l. reflexivity. Qed. @@ -297,7 +297,7 @@ Lemma iter_codiagonal_ktree {E A B} (f : ktree E A (A + (A + B))) (a0 : A) end)) a0. Proof. revert a0. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite unfold_iter_ktree. rewrite (unfold_iter_ktree (fun _ => _ _ _)). rewrite unfold_iter_ktree, !bind_bind. @@ -375,7 +375,7 @@ Proof. rewrite tau_euttge. do 2 step. generalize xb. - bcoinduction c'' cih'. intros. + bcoinduction c'' CIH'. intros. (* We unfold a new step of computation *) rewrite 2 unfold_iter. rewrite !bind_bind. @@ -385,7 +385,7 @@ Proof. + (* We loop back in the second loop *) rewrite !bind_ret_l. taus. - apply cih'. + apply CIH'. + rewrite !bind_ret_l. reflexivity. Qed. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 382dfe1c..7c8416ed 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -373,7 +373,7 @@ Tactic Notation "bcoinduction" icoinduction R H; to_mon. Tactic Notation "bcoinduction" := - let c := fresh "c" in let cih := fresh "cih" in bcoinduction c cih. + let c := fresh "c" in let CIH := fresh "CIH" in bcoinduction c CIH. Ltac bcbn := cbn; to_mon. @@ -1024,7 +1024,7 @@ Qed. Proof with eauto with itree. split; intros; revert_until RR; - icoinduction c cih; intros; + icoinduction c CIH; intros; step in H0; step in H1; step in H; icbn in *. all: hinduction H1 before RR; intros. @@ -1037,7 +1037,7 @@ Proof with eauto with itree. do 2 inv_Vis; constructor; intros; specialize (REL1 v); specialize (REL0 v); - eapply cih; eauto. + eapply CIH; eauto. (* inductive steps *) 1,3: inv H; simpobs; taul; eapply IHeqitF; eauto; now step in REL. @@ -1496,7 +1496,7 @@ Abort. (* Test [coinduction] tactic, notations *) Goal u ≈ t -> t ≈ u. - icoinduction r cih. + icoinduction r CIH. intros. step. rewrite H. @@ -2681,14 +2681,14 @@ Lemma eutt_conj {E} {R S} {RS RS'} : eutt RS' t s -> eutt (conj_rel RS RS') t s. Proof. - icoinduction c cih. intros * EQ EQ'. + icoinduction c CIH. intros * EQ EQ'. step in EQ; step in EQ'. genobs t ot; genobs s os. - hinduction EQ before cih; subst; intros; simpl. + hinduction EQ before CIH; subst; intros; simpl. - inv EQ'. eret. now constructor. - - taus. eapply cih; eauto. apply eqit_inv_Tau. now step. + - taus. eapply CIH; eauto. apply eqit_inv_Tau. now step. - constructor. intro v. specialize (REL v). - eapply cih; eauto. + eapply CIH; eauto. now eapply eqitF_inv_VisF in EQ'; eauto. - taul. eapply IHEQ; eauto. subst. unstep. eapply eqit_inv_Tau_l. now step. @@ -2747,7 +2747,7 @@ Lemma eutt_sub_self {E R} (R1 R2: R -> R -> Prop) (t: itree E R): eutt R1 t t -> eutt R2 t t. Proof. - intros Hrel; revert t. icoinduction c cih; intros t Heutt. + intros Hrel; revert t. icoinduction c CIH; intros t Heutt. step in Heutt. remember t as t' in Heutt at 2. assert (Ht': t' ≈ t) by now subst. clear Heqt'. rewrite (itree_eta t), (itree_eta t') in Ht'. @@ -2755,10 +2755,10 @@ Proof. - apply eutt_inv_Ret in Heq; subst. constructor; auto. - apply eqit_inv_Tau in Heq. - constructor. eapply cih. + constructor. eapply CIH. now rewrite <- Heq at 2. - constructor. intros v. eapply eqit_inv_Vis in Heq. - specialize (REL v). eapply cih. now rewrite <- Heq at 2. + specialize (REL v). eapply CIH. now rewrite <- Heq at 2. - taul. taur. apply IHHeutt. rewrite <- (itree_eta t1). now rewrite tau_euttge in Heq. - apply IHHeutt. rewrite <- (itree_eta). diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index f20d6d38..10b28104 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -260,12 +260,12 @@ Lemma rutt_cong_eutt {E1 E2 R1 R2}: rutt REv RAns RR t1' t2. Proof. intros * Hrutt Heutt; revert t1 t1' Heutt t2 Hrutt. - rcoinduction c cih; intros t1 t1' Heutt t2 Hrutt. + rcoinduction c CIH; intros t1 t1' Heutt t2 Hrutt. rstep in Hrutt. rewrite (itree_eta t1') in *. remember (observe t1) as ot1 eqn:Hot1. remember (observe t2) as ot2 eqn:Hot2. - move Hrutt before cih; revert_until Hrutt. + move Hrutt before CIH; revert_until Hrutt. induction Hrutt as [r1 r2|m1 m2| |m1 ot2'|]; intros tt1 tt1' Heutt' tt2 Hot1' Hot2'. - (* EqRet *) step in Heutt'. cbn in Heutt'. @@ -284,7 +284,7 @@ Proof. induction Heutt' as [r1 r2 _|m1' m1''|U' e1 k1 k1' _|t1' ot1' _ IHHeutt'|t1'' m1'']; intros m1 m2 H HoTauL; try discriminate. + (* EqTau of Heutt' *) - inv HoTauL. apply EqTau. apply cih with m1. + inv HoTauL. apply EqTau. apply CIH with m1. * apply REL. * unfold rutt. step. exact H. + (* EqTauL of Heutt': need to case on the head of m1 *) @@ -316,13 +316,13 @@ Proof. induction H; try discriminate. *** dependent destruction HoVisL2. apply EqVis; auto. intros a b HAns. - apply cih with (k0 a). + apply CIH with (k0 a). **** apply REL. **** apply H0; auto. *** apply EqTauR. apply IHruttF; auto. ** apply EqTauL. apply IHIHHeutt'; auto. + (* EqTauR of Heutt' *) - apply EqTau. apply cih with m1. + apply EqTau. apply CIH with m1. * rewrite <- tau_eutt with (t:=m1). step. subst t1''. exact Heutt'. * unfold rutt. step. exact H. - (* EqVis *) @@ -332,7 +332,7 @@ Proof. induction Heutt'; try discriminate; intros. + dependent destruction HoVisL. apply EqVis; auto. intros a b HAns. - apply cih with (k1 a). + apply CIH with (k1 a). * apply REL. * apply H0; auto. + apply EqTauL. apply IHHeutt'; auto. @@ -383,21 +383,21 @@ Lemma rutt_bind {E1 E2 R1 R2 T1 T2} rutt REv RAns RT (k1 r1) (k2 r2)) -> rutt REv RAns RT (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - revert t1 t2. rcoinduction c cih. intros t1 t2 Hrutt EQK. + revert t1 t2. rcoinduction c CIH. intros t1 t2 Hrutt EQK. rstep in Hrutt. genobs t1 ot1. genobs t2 ot2. - hinduction Hrutt before cih; intros. + hinduction Hrutt before CIH; intros. - (* Ret *) rewrite !observe_bind; simpobs. specialize (EQK _ _ H). rstep in EQK. now do 2 rstep. - (* Tau *) rewrite !observe_bind; simpobs. - apply EqTau. apply cih; auto. + apply EqTau. apply CIH; auto. - (* Vis *) rewrite !observe_bind; simpobs. apply EqVis; auto. intros a b HAns. - apply cih; auto. now apply H0. + apply CIH; auto. now apply H0. - (* TauL *) rewrite observe_bind; simpobs. apply EqTauL. apply IHHrutt; auto. @@ -420,23 +420,23 @@ Section RuttMrec. rutt (sum_prerel RPreInv RPre) (sum_postrel RPostInv RPost) RR t1 t2 -> rutt RPre RPost RR (interp_mrec bodies1 t1) (interp_mrec bodies2 t2). Proof. - rcoinduction c cih. + rcoinduction c CIH. intros t1 t2 Ht12. rstep in Ht12. remember (observe t1) as ot1. remember (observe t2) as ot2. hinduction Ht12 before R1; intros; to_rmon. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. repeat rewrite unfold_interp_mrec. cbn. now constructor. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. - repeat rewrite unfold_interp_mrec. cbn. constructor; now apply cih. + repeat rewrite unfold_interp_mrec. cbn. constructor; now apply CIH. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. repeat rewrite unfold_interp_mrec. cbn. inv H. + apply inj_pair2 in H1, H4. subst. constructor. - eapply cih. + eapply CIH. eapply rutt_bind; eauto. intros. cbn in H. clear - H H0. apply H0. now constructor. + apply inj_pair2 in H1, H4. subst. constructor. - auto. intros. repeat rewrite tau_euttge. eapply cih. + auto. intros. repeat rewrite tau_euttge. eapply CIH. clear - H0 H. apply H0. now constructor. - apply simpobs in Heqot1. rewrite Heqot1. rewrite unfold_interp_mrec at 1. cbn. constructor. now apply IHHt12. diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index e86b14e6..600809f4 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -150,7 +150,7 @@ Proof. - destruct e. + destruct e. rewrite Heq. rewrite throw_prefix_exc. rewrite try_catch_ret. reflexivity. + rewrite Heq. rewrite throw_prefix_ev. rewrite try_catch_ev. evis. - rewrite try_catch_tau. repeat rewrite tau_euttge. apply cih. + rewrite try_catch_tau. repeat rewrite tau_euttge. apply CIH. Qed. Lemma throw_prefix_bind_decomp : forall E Err R (t : itree (exceptE Err +' E) R ), @@ -168,7 +168,7 @@ Proof. + rewrite Heq. destruct e. rewrite throw_prefix_exc. rewrite bind_ret_l. bcbn. evis. easy. + rewrite Heq. rewrite throw_prefix_ev. rewrite bind_vis. evis. - intros. rewrite tau_euttge. apply cih. + intros. rewrite tau_euttge. apply CIH. Qed. Lemma try_catch_to_throw_prefix : forall E Err R (ttry : itree (exceptE Err +' E) R ) (kcatch : Err -> itree (exceptE Err +' E) R), @@ -225,7 +225,7 @@ Proof. + destruct e. rewrite Heq. rewrite throw_prefix_exc. rewrite bind_vis. rewrite throw_prefix_exc. rewrite bind_ret_l. eret. + rewrite Heq. rewrite throw_prefix_ev. repeat rewrite bind_vis. rewrite throw_prefix_ev. - evis. rewrite bind_tau. step. taus. apply cih. + evis. rewrite bind_tau. step. taus. apply CIH. Qed. Lemma throw_prefix_iter : forall E Err A B (body : A -> itree (exceptE Err +' E) (A + B) ) (init : A), diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index 05d26ac3..e8f54503 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -247,7 +247,7 @@ Proof. rewrite (unfold_interp_fail h t). destruct (observe t) eqn:EQ; bcbn. - rewrite bind_ret_l. reflexivity. - - taus. apply cih. + - taus. apply CIH. - rewrite bind_bind, interp_fail_vis. ebind; intros; subst. destruct u2. @@ -269,7 +269,7 @@ Proof. rewrite unfold_bind, (unfold_interp_fail _ t). destruct (observe t) eqn:EQ; bcbn. - rewrite bind_ret_l. reflexivity. - - etau. apply cih. + - etau. apply CIH. - rewrite bind_bind, interp_fail_vis. ebind; intros; subst. destruct u2. diff --git a/theories/Events/MapDefaultFacts.v b/theories/Events/MapDefaultFacts.v index 7ad1122b..5edeb78b 100644 --- a/theories/Events/MapDefaultFacts.v +++ b/theories/Events/MapDefaultFacts.v @@ -213,7 +213,7 @@ Section MapFacts. * apply handle_map_eq. assumption. * unfold pure_state. step. evis. step. eret. + intros. etau. - inv H. rewrite snd_rel. eapply cih; eauto. apply REL. + inv H. rewrite snd_rel. eapply CIH; eauto. apply REL. - rewrite tau_euttge, unfold_interp_state. now eapply IHeqitF. - rewrite tau_euttge, unfold_interp_state. diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index 00464638..498bc7c0 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -63,7 +63,7 @@ Proof. step in H0. destruct H0; subst; try discriminate; cbn. - reflexivity. - - taus; now apply cih. + - taus; now apply CIH. - to_mon. ebind; intros; subst. + taus; auto with itree. Qed. @@ -129,11 +129,11 @@ Proof. destruct (observe t). - bcbn. rewrite !bind_ret_l. apply reflexivity. - - bcbn. taus. apply cih. + - bcbn. taus. apply CIH. - bcbn. rewrite interp_state_vis, bind_bind. ebind; intros; subst. rewrite bind_tau. - taus. now apply cih. + taus. now apply CIH. Qed. #[global] @@ -148,7 +148,7 @@ Proof. induction H; intros; subst; bcbn. - eret. - etau. - - ebind; intros; subst. taus. apply cih. apply REL. + - ebind; intros; subst. taus. apply CIH. apply REL. - rewrite tau_euttge, unfold_interp_state; eauto. - rewrite tau_euttge, unfold_interp_state; eauto. Qed. diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 696f8396..46d4127b 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -192,7 +192,7 @@ Proof. rewrite (unfold_interp_mrec _ _ (Tau _)); bcbn. taus. rewrite tau_euttge. - apply cih. + apply CIH. Qed. Section DinatSimulation. @@ -330,7 +330,7 @@ Proof. all: rewrite (unfold_interp_mrec _ _ (go _)), unfold_interp; bcbn. 1,2: rewrite unfold_interp_mrec; bcbn. 1,2: rewrite (unfold_interp_mrec _ _ (go _)); eauto with itree. - taus. apply cih. + taus. apply CIH. destruct e. - rewrite (interp_mrec_bind _ (ITree.trigger _)). rewrite interp_mrec_trigger; bcbn. @@ -348,7 +348,7 @@ Proof. rewrite 2 unfold_interp_mrec; bcbn. destruct s. taus. rewrite <- interp_mrec_bind, <- interp_bind. - apply cih. + apply CIH. constructor; intros. now step; taus. Qed. diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 9402de35..6553d71e 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -116,7 +116,7 @@ Instance eq_itree_interp {E F} interp. Proof. intros f g Hfg T. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite 2 unfold_interp. step in H. @@ -224,10 +224,10 @@ Proof. rewrite unfold_bind, (unfold_interp t). destruct (observe t); cbn; to_mon. - rewrite bind_ret_l. apply reflexivity. - - taus. fold_subst. apply cih. + - taus. fold_subst. apply CIH. - rewrite interp_vis, bind_bind. ebind. intros; subst. - rewrite bind_tau. taus. apply cih. + rewrite bind_tau. taus. apply CIH. Qed. #[global] Hint Rewrite @interp_bind : itree. @@ -241,9 +241,9 @@ Proof. rewrite (itree_eta t), unfold_interp. destruct (observe t); cbn. - reflexivity. - - taus. apply cih. + - taus. apply CIH. - constructor. intro. fold_subst. - rewrite bind_ret_, tau_euttge. apply cih. + rewrite bind_ret_, tau_euttge. apply CIH. Qed. Lemma interp_trigger_h {E R} (t : itree E R) : @@ -254,7 +254,7 @@ Proof. destruct (observe t); cbn; eauto with itree. constructor; intro. fold_subst. rewrite bind_ret_l, tau_euttge. - apply cih. + apply CIH. Qed. (** ** Composition of [interp] *) @@ -268,7 +268,7 @@ Proof. rewrite 2 (unfold_interp t). destruct (observe t); cbn; eauto with itree. to_mon. rewrite interp_bind. ebind. intros; subst. - rewrite interp_tau. taus. apply cih. + rewrite interp_tau. taus. apply CIH. Qed. Lemma interp_translate {E F G} (f : E ~> F) (g : F ~> itree G) {R} (t : itree E R) : @@ -281,8 +281,8 @@ Proof. rewrite unfold_translate_. unfold translateF. destruct (observe t); cbn. - apply reflexivity. (* SAZ: typeclass resolution failure? *) - - taus. apply cih. - - to_mon. ebind. intros; subst. taus. apply cih. + - taus. apply CIH. + - to_mon. ebind. intros; subst. taus. apply CIH. Qed. Lemma translate_to_interp {E F R} (f : E ~> F) (t : itree E R) : @@ -293,7 +293,7 @@ Proof. rewrite unfold_interp. destruct (observe t); cbn; eauto with itree. constructor. intro. fold_subst. - rewrite bind_ret_l, tau_euttge. apply cih. + rewrite bind_ret_l, tau_euttge. apply CIH. Qed. Lemma interp_forever {E F} (f : E ~> itree F) {R S} @@ -307,7 +307,7 @@ Proof. rewrite interp_bind. ebind. intros; subst. rewrite interp_tau. - taus. apply cih. + taus. apply CIH. Qed. Lemma interp_iter' {E F} (f : E ~> itree F) {I A} @@ -324,7 +324,7 @@ Proof. ebind. { do 2 step. apply EQ_t. } intros [] _ []; cbn; to_mon. - - taus. apply cih. + - taus. apply CIH. - reflexivity. Qed. @@ -349,7 +349,7 @@ Proof. ebind. do 2 step. apply Heq. intros [] _ []; cbn. - - taus. apply cih. + - taus. apply CIH. - reflexivity. Qed. diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index 14bd980c..24b5ea2e 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -85,12 +85,12 @@ Proof. bcoinduction. intros. rewrite !unfold_interp_mrec. step in H. inv H; eauto with itree. - - taus. now apply cih. + - taus. now apply CIH. - cbn. destruct e. - + taus. apply cih. + + taus. apply CIH. ebind. intros; subst. do 2 step. apply REL. - + constructor. intro. step. taus. apply cih. + + constructor. intro. step. taus. apply CIH. apply REL. Qed. @@ -104,13 +104,13 @@ Proof. destruct (observe t); cbn; [| |destruct e]; cbn. - apply reflexivity. - - taus. fold_subst. apply cih. + - taus. fold_subst. apply CIH. - to_mon. taus. fold_subst. rewrite <- bind_bind. - apply cih. + apply CIH. - constructor. intro. fold_subst. rewrite bind_ret_l, bind_tau. - step. taus. apply cih. + step. taus. apply CIH. Qed. Theorem interp_mrec_trigger {U} (a : (D +' E) U) : @@ -133,13 +133,13 @@ Proof. rewrite unfold_interp_mrec, unfold_interp. destruct (observe c0); [| |destruct e]; simpl; eauto with paco. - now taur. - - taus. apply cih. + - taus. apply CIH. - taus. rewrite interp_mrec_bind. unfold mrec. - ebind. intros; subst. apply cih. + ebind. intros; subst. apply CIH. - to_mon. rewrite tau_euttge. unfold ITree.trigger. rewrite bind_vis. constructor. intro. - rewrite bind_ret_l. rewrite tau_euttge. apply cih. + rewrite bind_ret_l. rewrite tau_euttge. apply CIH. Qed. Theorem mrec_as_interp {T} (d : D T) : @@ -164,21 +164,21 @@ Proof. rewrite (itree_eta t); destruct (observe t). - rewrite 2 unfold_interp_mrec; now taul. - rewrite unfold_interp, 2 unfold_interp_mrec. - taus. apply cih. + taus. apply CIH. - rewrite interp_vis. rewrite (unfold_interp_mrec _ (Vis _ _)). destruct e; cbn; to_mon. + rewrite 2 interp_mrec_bind. taus. ebind; intros; subst. - rewrite unfold_interp_mrec; cbn; apply cih. + rewrite unfold_interp_mrec; cbn; apply CIH. + unfold inr_, Handler.Inr_sum1_Handler, Handler.Handler.inr_, Handler.Handler.htrigger. rewrite bind_trigger, unfold_interp_mrec; cbn; to_mon. rewrite tau_euttge. constructor. intros. step. taus. rewrite unfold_interp_mrec; cbn. - apply cih. + apply CIH. Qed. End Facts. @@ -196,7 +196,7 @@ Proof. rewrite 2 unfold_interp_mrec. step in Ht; induction Ht; cbn. 3: { destruct e; constructor. - + apply cih. ebind. apply Hfg. + + apply CIH. ebind. apply Hfg. intros ? _ []. apply REL. + intros; step; taus. eauto with paco itree. } @@ -240,7 +240,7 @@ Proof. rewrite 2 unfold_interp_mrec. step in Ht; induction Ht; try easy; cbn. 3: { destruct e; constructor. - + apply cih. ebind. apply Hfg. + + apply CIH. ebind. apply Hfg. intros ? _ []. apply REL. + intros; step; taus. eauto with paco itree. } diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index 13bb4e2e..ad2a761c 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -68,7 +68,7 @@ Qed. Instance eq_itree_translate' : Proper (eq_itree eq ==> eq_itree eq) (@translate _ _ h R). Proof. - intros!. revert x y H. icoinduction c cih. intros. + intros!. revert x y H. icoinduction c CIH. intros. to_mon. rewrite itree_eta, (itree_eta (translate h y)), !unfold_translate, <-!itree_eta. step in H. @@ -92,7 +92,7 @@ Lemma translate_bind : forall {E F R S} (h : E ~> F) (t : itree E S) (k : S -> i Proof. intros E F R S h t k. revert S t k. - icoinduction c cih. + icoinduction c CIH. intros s t k. to_mon. match goal with | [ |- _ ?t1 ?t2 ] => rewrite (itree_eta_ t1), (itree_eta_ t2) @@ -105,7 +105,7 @@ Lemma translate_id : forall E R (t : itree E R), translate (id_ _) t ≅ t. Proof. intros E R t. revert t. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite itree_eta. rewrite (itree_eta t). rewrite unfold_translate. @@ -120,7 +120,7 @@ Lemma translate_cmpE : forall E F G R (g : F ~> G) (f : E ~> F) (t : itree E R), Proof. intros E F G R g f t. revert t. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite !unfold_translate. genobs_clear t ot. destruct ot; cbn; try constructor; eauto. Qed. @@ -160,7 +160,7 @@ Instance eq_itree_translate {E F} translate. Proof. intros f g Hfg T. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite 2 unfold_translate. step in H. destruct H; cbn; try easy; try rewrite Hfg; eauto with itree. @@ -174,7 +174,7 @@ Instance eutt_translate {E F} Proof. repeat red. intros until T. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite !unfold_translate. step in H0. induction H0; subst; simpl; eauto with itree. - rewrite H. econstructor. eauto with itree. @@ -197,7 +197,7 @@ Lemma eutt_translate_gen : Proof. intros *. revert t s. - bcoinduction c cih. intros. + bcoinduction c CIH. intros. rewrite !unfold_translate. step in H. induction H; intros; subst; simpl; eauto with itree. Qed. diff --git a/theories/Props/EuttNoRet.v b/theories/Props/EuttNoRet.v index a527a6af..34820c8d 100644 --- a/theories/Props/EuttNoRet.v +++ b/theories/Props/EuttNoRet.v @@ -28,24 +28,24 @@ Definition euttNoRet {E} {A B : Type} (ta : itree E A) (tb : itree E B) := Lemma euttNoRet_spin : forall (E : Type -> Type) (A B : Type), @euttNoRet E A B ITree.spin ITree.spin. Proof. - intros. unfold euttNoRet. icoinduction c cih. cbn. constructor. exact cih. + intros. unfold euttNoRet. icoinduction c CIH. cbn. constructor. exact CIH. Qed. Lemma noret_bind_nop : forall (E : Type -> Type) (A B : Type) (t : itree E A) (f : A -> itree E B), all_infinite t -> euttNoRet t (t >>= f). Proof. - intros E A B. unfold euttNoRet. icoinduction c cih. intros t f Hdiv. + intros E A B. unfold euttNoRet. icoinduction c CIH. intros t f Hdiv. apply (gfp_fp all_infinite_mon) in Hdiv. cbn[all_infinite_mon body] in Hdiv. unfold all_infinite_ in Hdiv. inversion Hdiv; subst. - unfold bind, Monad_itree. rewrite observe_bind. rewrite <- H. cbn. apply EqTau. change (ITree.subst f t0) with (ITree.bind t0 f). - apply cih. auto. + apply CIH. auto. - unfold bind, Monad_itree. rewrite observe_bind. rewrite <- H. cbn. apply EqVis. intros v. change (ITree.subst f (k v)) with (ITree.bind (k v) f). - apply cih. apply H0. + apply CIH. apply H0. Qed. Lemma euttNoRet_subrel : forall (E : Type -> Type) (A B : Type) (R : A -> B -> Prop) @@ -61,17 +61,17 @@ Lemma all_infinite_euttNoRet : forall (E : Type -> Type) (A B : Type) (R : A -> (ta : itree E A) (tb : itree E B), all_infinite ta -> eutt R ta tb -> euttNoRet ta tb. Proof. - intros E A B R. unfold euttNoRet. icoinduction c cih. intros ta tb Hdiv Heutt. + intros E A B R. unfold euttNoRet. icoinduction c CIH. intros ta tb Hdiv Heutt. step in Heutt. cbn[eqit_mon body] in Heutt. unfold eqit_ in Heutt. cbn[eqit_mon body]. unfold eqit_. apply (gfp_fp all_infinite_mon) in Hdiv. cbn[all_infinite_mon body] in Hdiv. unfold all_infinite_ in Hdiv. dependent induction Heutt. - exfalso. rewrite <- x0 in Hdiv. inversion Hdiv. - - rewrite <- x0. rewrite <- x. apply EqTau. apply cih. + - rewrite <- x0. rewrite <- x. apply EqTau. apply CIH. + rewrite <- x0 in Hdiv. inversion Hdiv; subst. auto. + auto. - - rewrite <- x0. rewrite <- x. apply EqVis. intros v. apply cih. + - rewrite <- x0. rewrite <- x. apply EqVis. intros v. apply CIH. + rewrite <- x0 in Hdiv. inversion Hdiv; subst. ddestruction. apply H0. + apply REL. - rewrite <- x. apply EqTauL; auto. apply IHHeutt; auto. @@ -84,14 +84,14 @@ Qed. Lemma euttNoRet_all_infinite : forall (E : Type -> Type) (A B : Type) (t1 : itree E A) (t2 : itree E B), euttNoRet t1 t2 -> all_infinite t1. Proof. - intros E A B. unfold all_infinite. coinduction c cih. intros t1 t2 H. + intros E A B. unfold all_infinite. coinduction c CIH. intros t1 t2 H. cbn[all_infinite_mon body]. unfold all_infinite_. unfold euttNoRet in H. step in H. cbn[eqit_mon body] in H. unfold eqit_ in H. dependent induction H; try contradiction. - - rewrite <- x0. constructor. apply cih with (t2 := m2). unfold euttNoRet. auto. - - rewrite <- x0. constructor. intros v. apply cih with (t2 := k2 v). + - rewrite <- x0. constructor. apply CIH with (t2 := m2). unfold euttNoRet. auto. + - rewrite <- x0. constructor. intros v. apply CIH with (t2 := k2 v). unfold euttNoRet. apply REL. - - rewrite <- x. constructor. apply cih with (t2 := t2). unfold euttNoRet. + - rewrite <- x. constructor. apply CIH with (t2 := t2). unfold euttNoRet. step. cbn[eqit_mon body]. unfold eqit_. auto. - eapply IHeqitF; eauto. Qed. @@ -100,11 +100,11 @@ Qed. Lemma euttNoRet_sym : forall (E : Type -> Type) (A B : Type) (t1 : itree E A) (t2 : itree E B), euttNoRet t1 t2 -> euttNoRet t2 t1. Proof. - intros E A B. unfold euttNoRet. icoinduction c cih. intros t1 t2 H. + intros E A B. unfold euttNoRet. icoinduction c CIH. intros t1 t2 H. unfold euttNoRet in H. step in H. cbn[eqit_mon body] in H. unfold eqit_ in H. dependent induction H; try contradiction. - - rewrite <- x0. rewrite <- x. apply EqTau. apply cih. auto. - - rewrite <- x0. rewrite <- x. apply EqVis. intros v. apply cih. apply REL. + - rewrite <- x0. rewrite <- x. apply EqTau. apply CIH. auto. + - rewrite <- x0. rewrite <- x. apply EqVis. intros v. apply CIH. apply REL. - rewrite <- x. apply EqTauR; auto. - rewrite <- x. apply EqTauL; auto. Qed. diff --git a/theories/Props/HasPost.v b/theories/Props/HasPost.v index 7177bdb7..2aa79b9d 100644 --- a/theories/Props/HasPost.v +++ b/theories/Props/HasPost.v @@ -243,9 +243,9 @@ Proof. rewrite (itree_eta t), (itree_eta u) in H. step in EQ. cbn. destruct EQ; try discriminate; constructor. - rewrite <- eutt_Ret in H. auto. - - apply cih; [ | apply REL ]. + - apply CIH; [ | apply REL ]. revert H; apply eqit_Tau. - - intro. apply cih; [ | apply REL ]. + - intro. apply CIH; [ | apply REL ]. eapply eqit_inv_Vis with (1 := H). Qed. diff --git a/theories/Props/Infinite.v b/theories/Props/Infinite.v index 15b8244b..bcf34665 100644 --- a/theories/Props/Infinite.v +++ b/theories/Props/Infinite.v @@ -50,31 +50,31 @@ Definition any_infinite {E X} : itree E X -> Prop := Instance any_infinite_proper_eutt {E X R} : Proper (eutt R ==> iff) (@any_infinite E X). Proof. intros t1 t2 Ht. split; intros Hinf. - - revert t2 t1 Ht Hinf. unfold any_infinite at 2. coinduction c cih. + - revert t2 t1 Ht Hinf. unfold any_infinite at 2. coinduction c CIH. intros t2 t1 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. cbn[any_infinite_mon body]. unfold any_infinite_. apply (gfp_fp any_infinite_mon) in Hinf. cbn[any_infinite_mon body] in Hinf. unfold any_infinite_ in Hinf. induction Ht. + inversion Hinf. - + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. constructor. eapply CIH; eauto. + inversion Hinf; subst. dependent destruction H2. - econstructor. eapply cih; [apply REL|]. eauto. + econstructor. eapply CIH; [apply REL|]. eauto. + apply IHHt. inversion Hinf; subst. apply (gfp_fp any_infinite_mon) in H0. cbn[any_infinite_mon body] in H0. unfold any_infinite_ in H0. exact H0. + constructor. step. cbn[any_infinite_mon body]. unfold any_infinite_. apply IHHt. exact Hinf. - - revert t1 t2 Ht Hinf. unfold any_infinite at 2. coinduction c cih. + - revert t1 t2 Ht Hinf. unfold any_infinite at 2. coinduction c CIH. intros t1 t2 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. cbn[any_infinite_mon body]. unfold any_infinite_. apply (gfp_fp any_infinite_mon) in Hinf. cbn[any_infinite_mon body] in Hinf. unfold any_infinite_ in Hinf. induction Ht. + inversion Hinf. - + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. constructor. eapply CIH; eauto. + inversion Hinf; subst. dependent destruction H2. - econstructor. eapply cih; [apply REL|]. eauto. + econstructor. eapply CIH; [apply REL|]. eauto. + constructor. step. cbn[any_infinite_mon body]. unfold any_infinite_. apply IHHt. exact Hinf. + apply IHHt. inversion Hinf; subst. @@ -84,9 +84,9 @@ Qed. Theorem spin_infinite {E A} : @any_infinite E A ITree.spin. Proof. - unfold any_infinite. coinduction c cih. + unfold any_infinite. coinduction c CIH. cbn[any_infinite_mon body]. unfold any_infinite_. cbn. - constructor. exact cih. + constructor. exact CIH. Qed. Variant all_infiniteF {E : Type -> Type} {A : Type} (F : itree E A -> Prop) : itree' E A -> Prop := @@ -143,31 +143,31 @@ Ltac contra_void := try match goal with | a : void |- _ => contradiction end. Instance eutt_proper_all_infinite {E A R} : Proper (eutt R ==> iff) (@all_infinite E A). Proof. intros t1 t2 Ht. split; intros Hinf. - - revert t1 t2 Ht Hinf. unfold all_infinite at 2. coinduction c cih. + - revert t1 t2 Ht Hinf. unfold all_infinite at 2. coinduction c CIH. intros t1 t2 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. cbn[all_infinite_mon body]. unfold all_infinite_. apply (gfp_fp all_infinite_mon) in Hinf. cbn[all_infinite_mon body] in Hinf. unfold all_infinite_ in Hinf. induction Ht. + inversion Hinf. - + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. constructor. eapply CIH; eauto. + inversion Hinf; subst. dependent destruction H2. - econstructor. intros b. eapply cih; [apply REL|]. apply H0. + econstructor. intros b. eapply CIH; [apply REL|]. apply H0. + apply IHHt. inversion Hinf; subst. apply (gfp_fp all_infinite_mon) in H0. cbn[all_infinite_mon body] in H0. unfold all_infinite_ in H0. exact H0. + constructor. step. cbn[all_infinite_mon body]. unfold all_infinite_. apply IHHt. exact Hinf. - - revert t1 t2 Ht Hinf. unfold all_infinite at 2. coinduction c cih. + - revert t1 t2 Ht Hinf. unfold all_infinite at 2. coinduction c CIH. intros t1 t2 Ht Hinf. step in Ht. cbn[eqit_mon body] in Ht. unfold eqit_ in Ht. cbn[all_infinite_mon body]. unfold all_infinite_. apply (gfp_fp all_infinite_mon) in Hinf. cbn[all_infinite_mon body] in Hinf. unfold all_infinite_ in Hinf. induction Ht. + inversion Hinf. - + inversion Hinf; subst. constructor. eapply cih; eauto. + + inversion Hinf; subst. constructor. eapply CIH; eauto. + inversion Hinf; subst. dependent destruction H2. - econstructor. intros b. eapply cih; [apply REL|]. apply H0. + econstructor. intros b. eapply CIH; [apply REL|]. apply H0. + constructor. step. cbn[all_infinite_mon body]. unfold all_infinite_. apply IHHt. exact Hinf. + apply IHHt. inversion Hinf; subst. @@ -178,14 +178,14 @@ Qed. Lemma not_converge_to_all_infinite : forall (E : Type -> Type) (A : Type) (t : itree E A), (forall a, ~ may_converge a t) -> all_infinite t. Proof. - intros E A. unfold all_infinite. coinduction c cih. intros t Hcon. + intros E A. unfold all_infinite. coinduction c CIH. intros t Hcon. cbn[all_infinite_mon body]. unfold all_infinite_. destruct (observe t) eqn:Heq; specialize (itree_eta t) as Ht; rewrite Heq in Ht. - exfalso. apply (Hcon r). rewrite Ht. constructor. reflexivity. - - constructor. apply cih. + - constructor. apply CIH. setoid_rewrite Ht in Hcon. setoid_rewrite tau_eutt in Hcon. auto. - - constructor. intros b. apply cih. + - constructor. intros b. apply CIH. intros a Hcontra. setoid_rewrite Ht in Hcon. apply (Hcon a). eapply conv_vis; try reflexivity; eauto. Qed. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 5e85c71c..4f7ed25f 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -309,12 +309,12 @@ Lemma has_post_of_Leaf {E R} (Q : R -> Prop) : (forall r, r ∈ t -> Q r) -> t ≈⟨ fun x _ => Q x ⟩ t. Proof. - icoinduction c cih. intros t Hpost. + icoinduction c CIH. intros t Hpost. setoid_rewrite (itree_eta t) in Hpost. desobs t Ht. - constructor. apply Hpost, Leaf_Ret. - - constructor. apply cih. intros. apply Hpost. apply Leaf_Tau. exact H. - - constructor. intros. apply cih. intros. eapply Hpost. eapply Leaf_Vis. exact H. + - constructor. apply CIH. intros. apply Hpost. apply Leaf_Tau. exact H. + - constructor. intros. apply CIH. intros. eapply Hpost. eapply Leaf_Vis. exact H. Qed. Lemma has_post_Leaf_equiv {E R} (t: itree E R) Q: @@ -426,30 +426,30 @@ Qed. Lemma Leaf_interp_subtree_inv {E F R} (h: E ~> itree F) (t u: itree E R): subtree u t -> has_post (interp h u) (fun x : R => x ∈ t). Proof. - revert t u. unfold has_post. bcoinduction c cih; intros * Hsub. + revert t u. unfold has_post. bcoinduction c CIH; intros * Hsub. rewrite (itree_eta u) in Hsub. rewrite unfold_interp. desobs u Hu; clear u Hu; cbn. - constructor. eapply subtree_image; eauto. apply Leaf_Ret. - - constructor. apply cih. apply SubtreeTau, Hsub. + - constructor. apply CIH. apply SubtreeTau, Hsub. - to_mon. eapply eqit_bind_chain. reflexivity. intros u _ <-. - taus. apply cih. eapply SubtreeVis, Hsub. reflexivity. + taus. apply CIH. eapply SubtreeVis, Hsub. reflexivity. Qed. Lemma Leaf_interp_state_subtree_inv {E F S R} (h: E ~> Monads.stateT S (itree F)) (t u: itree E R) (s: S): subtree u t -> has_post (interp_state h u s) (fun x => snd x ∈ t). Proof. - revert t u s. unfold has_post. bcoinduction c cih; intros * Hsub. + revert t u s. unfold has_post. bcoinduction c CIH; intros * Hsub. rewrite (itree_eta u) in Hsub. rewrite unfold_interp_state. desobs u Hu; clear u Hu; cbn. - constructor. eapply subtree_image; eauto. apply Leaf_Ret. - - constructor. apply cih. apply SubtreeTau, Hsub. + - constructor. apply CIH. apply SubtreeTau, Hsub. - to_mon. eapply eqit_bind_chain. reflexivity. intros [u1 u2] _ <-; cbn. - taus. apply cih. eapply SubtreeVis, Hsub. reflexivity. + taus. apply CIH. eapply SubtreeVis, Hsub. reflexivity. Qed. End Subtree. From e9d2e9ead6d32ba2e3f648113bd46ac1f9df5e44 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 3 May 2026 23:23:29 -0400 Subject: [PATCH 138/189] Sweeping progress on extras. Committing to check master. --- .Makefile.d | 12 +- _CoqProject | 4 +- examples/ITreePredicatesExample.v | 16 +- extra/Dijkstra/DelaySpecMonad.v | 2 +- extra/Dijkstra/ITreeDijkstra.v | 35 +- extra/Dijkstra/IterRel.v | 3 +- extra/Dijkstra/PureITreeBasics.v | 4 +- extra/Dijkstra/PureITreeDijkstra.v | 60 +-- extra/Dijkstra/StateIOTrace.v | 16 +- extra/Dijkstra/TracesIT.v | 26 +- extra/IForest.v | 10 +- extra/ITrace/ITraceBind.v | 345 ++++++++-------- extra/ITrace/ITraceFacts.v | 14 +- extra/ITrace/ITracePreds.v | 24 +- extra/ITrace/ITracePrefix.v | 167 ++++---- extra/Secure/SecureEqBind.v | 118 +++--- extra/Secure/SecureEqEuttHalt.v | 538 ++++++++++++------------- extra/Secure/SecureEqEuttTrans.v | 70 ++-- extra/Secure/SecureEqHalt.v | 28 +- extra/Secure/SecureEqHaltProgInsens.v | 42 +- extra/Secure/SecureEqProgInsens.v | 172 ++++---- extra/Secure/SecureEqProgInsensFacts.v | 28 +- extra/Secure/SecureEqWcompat.v | 146 +++---- extra/Secure/SecureStateHandler.v | 180 ++++----- extra/Secure/SecureStateHandlerPi.v | 60 +-- hoare_example/ImpHoare.v | 50 +-- secure_example/LabelledImpHandler.v | 2 +- theories/Basics/Utils.v | 26 +- theories/Core/KTreeFacts.v | 31 +- theories/Eq/Eqit.v | 99 ++--- theories/Eq/Rutt.v | 5 - theories/Eq/RuttFacts.v | 22 +- theories/Eq/SimUpToTaus.v | 43 +- theories/Events/ExceptionFacts.v | 20 +- theories/Events/FailFacts.v | 8 +- theories/Events/MapDefaultFacts.v | 4 +- theories/Events/StateFacts.v | 16 +- theories/Interp/HandlerFacts.v | 15 +- theories/Interp/InterpFacts.v | 26 +- theories/Interp/RecursionFacts.v | 12 +- theories/Interp/Traces.v | 10 +- theories/Interp/TranslateFacts.v | 10 +- theories/Props/HasPost.v | 2 +- theories/Props/Leaf.v | 4 +- 44 files changed, 1247 insertions(+), 1278 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index d53bb8ea..7ded4325 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -44,8 +44,8 @@ theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Cor theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -136,10 +136,14 @@ extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/Eq/RuttFacts.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/_CoqProject b/_CoqProject index eb0245f7..a71459f0 100644 --- a/_CoqProject +++ b/_CoqProject @@ -82,8 +82,8 @@ extra/IForest.v extra/ITrace/ITraceDefinition.v extra/ITrace/ITraceFacts.v -# extra/ITrace/ITracePrefix.v -# extra/ITrace/ITraceBind.v +extra/ITrace/ITracePrefix.v +extra/ITrace/ITraceBind.v # extra/ITrace/ITracePreds.v extra/Dijkstra/DijkstraMonad.v diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index acbc059d..ccedf0c5 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -105,8 +105,8 @@ Section Proper. rewrite (itree_eta (interpret_state x x2)). rewrite (itree_eta (interpret_state y y0)). rewrite !unfold_interpret_state. subst. - punfold H0. repeat red in H0. unfold interpret_stateF. - destruct (observe x); inv H0; try discriminate; pclearbot; simpl; + step in H0. repeat red in H0. unfold interpret_stateF. + destruct (observe x); inv H0; try discriminate; simpl; try (gstep; constructor; eauto with paco; fail). ddestruction. destruct e; gstep; econstructor; eauto with paco itree. @@ -240,17 +240,17 @@ Proof. rewrite (itree_eta (interpret_state t s')). rewrite !unfold_interpret_state. unfold interpret_stateF. - punfold H0. repeat red in H0. + step in H0. repeat red in H0. destruct (observe t); cbn. - rewrite !bind_ret_l. gstep. econstructor. eauto. - rewrite !bind_tau. gstep. econstructor. gbase. eapply CIH. - inversion H0. subst. pclearbot. assumption. + inversion H0. subst. assumption. - destruct e; cbn. + (* e is Get, which is ruled out by the NoGets predicate *) inversion H0. + rewrite !bind_tau. gstep. econstructor. gbase. eapply CIH. - inversion H0. ddestruction. pclearbot. assumption. + inversion H0. ddestruction. assumption. Qed. @@ -272,18 +272,18 @@ Proof. rewrite (itree_eta (interpret_state t s')). rewrite !unfold_interpret_state. unfold interpret_stateF. - punfold H0. repeat red in H0. + step in H0. repeat red in H0. destruct (observe t); cbn. - rewrite !bind_ret_l. gfinal. right. eapply paco2_mon_bot; eauto with paco. apply INV. - rewrite !bind_tau. gstep. econstructor. gbase. eapply CIH; auto. - inversion H0. subst. pclearbot. assumption. + inversion H0. subst. assumption. - destruct e; cbn. + (* e is Get, which is ruled out by the NoGets predicate *) inversion H0. + rewrite !bind_tau. gstep. econstructor. gbase. eapply CIH; auto. - inversion H0. ddestruction. pclearbot. assumption. + inversion H0. ddestruction. assumption. Qed. Theorem state_independent': forall {S R} (t:itree (stateE S) R) diff --git a/extra/Dijkstra/DelaySpecMonad.v b/extra/Dijkstra/DelaySpecMonad.v index 1d688863..2393b03d 100644 --- a/extra/Dijkstra/DelaySpecMonad.v +++ b/extra/Dijkstra/DelaySpecMonad.v @@ -204,7 +204,7 @@ Notation "x =[ g ]=> y" := (iter_arrow_rel g x y) (at level 70) : delayspec_scop Lemma iter_inl_spin : forall (A B : Type) (g : A -> Delay (A + B) ) (a : A), not_wf_from (iter_arrow_rel g) a -> ITree.iter g a ≈ ITree.spin. Proof. - intros A B g. bcoinduction. intros. red in H; sinv H; try apply not_wf_F_mono'. + intros A B g. coinduction. intros. red in H; sinv H; try apply not_wf_F_mono'. setoid_rewrite unfold_iter_ktree. unfold iter_arrow_rel in Hrel. apply eutt_ret_euttge in Hrel. rewrite Hrel. rewrite bind_ret_l. rewrite unfold_spin. etau. Qed. diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index 0b54ccc9..9449fb65 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -613,15 +613,15 @@ step on gfp can reduce. equivE t1 t2. Proof. intros E1 E2 R. coinduction c CIH. - intros t1 t2 Hev1 Hev2 Heutt. pfold. red. - step in Heutt. unfold_eqit. dependent induction Heutt; subst. + intros t1 t2 Hev1 Hev2 Heutt. icbn. + step in Heutt. dependent induction Heutt; subst. - unfold remove_events in x0, x. destruct (observe t1); destruct (observe t2); try discriminate. - constructor. cbn in *. injection x0. injection x. intros. subst. auto. + constructor. cbn in *. inv x0; inv x. - unfold remove_events in x0, x. destruct (observe t1) eqn : Heq1; destruct (observe t2) eqn : Heq2; try discriminate. + cbn in *. constructor. - injection x0. injection x. intros. subst. pclearbot. + inv x0. inv x. intros. apply CIH; auto. * specialize (itree_eta t1) as Ht1. rewrite Heq1 in Ht1. assert (t ≈ t1). @@ -669,8 +669,8 @@ step on gfp can reduce. eqitE RR t1 t2 -> eqitE RR (@remove_events E1 E3 R1 t1) (@remove_events E2 E4 R2 t2). Proof. intros E1 E2 E3 E4 R1 R2 RR. coinduction c CIH. intros. - step in H0. red in H0. icbn. unfold remove_events. - induction H0; cbn; auto with itree. + step in H. icbn. unfold remove_events. + induction H; cbn; auto with itree. constructor. apply CIH; auto. Qed. @@ -702,13 +702,12 @@ step on gfp can reduce. equivE t1 t2 -> equivE t2 t1. Proof. intros E1 E2 R. coinduction c CIH. intros. - step in H0. red in H0. pfold. red. - induction H0; eauto with itree. - constructor. apply CIH; auto. + step in H. icbn. + induction H; eauto with itree. Qed. - Instance proper_eutt_equivE_imp {E1 E2} {R} : Proper (eutt eq ==> (eutt eq) ==> impl) (@equivE E1 E2 R). + Instance proper_eutt_equivE_imp {E1 E2} {R} : Proper (eutt eq ==> (eutt eq) ==> Basics.impl) (@equivE E1 E2 R). Proof. intros t1 t2 Ht12 t3 t4 Ht34. intro. apply eqitE_imp_eventlessl in H as Ht1. @@ -734,7 +733,7 @@ step on gfp can reduce. (*could also use an eventless predicate*) - (*gets the idea across, obviously I want to pacoize this*) + (*this is a key part of an effect observation from *) CoInductive itree_includes' {R : Type} : itree E R -> stream Ev -> Delay R -> Prop := | includes_base (t : itree E R) (d : Delay R) : equivE t d -> itree_includes' t Nil d @@ -749,8 +748,18 @@ step on gfp can reduce. Vis e k ≈ t -> F (k a) s d -> itree_includesF F t (Cons (ev A e a) s) (Tau d). + Hint Constructors itree_includesF : itree. + + Lemma itree_includes_mono {R} : Proper (leq ==> leq) (@itree_includesF R). + Proof. + repeat intro. induction H0; eauto with itree. + econstructor; eauto. now apply H. + Qed. + + Definition itree_includes_mon {R} := Build_mon (@itree_includes_mono R). + Definition itree_includes {R : Type} : itree E R -> stream Ev -> Delay R -> Prop := - paco3 (@itree_includesF R) bot3. + gfp (@itree_includes_mon R). End ITreeDijkstra. @@ -790,7 +799,7 @@ Section RetBindCounter. *) Program Definition w : ITreeSpec Sound unit := fun p => p (Vis Ring (fun _ => Ret tt) ). - (*This proof is hideous for a few reasons but it is a good start, + (* This proof is hideous for a few reasons but it is a good start, and great confirmation that our whole IBranch excursion wasn't a soul crushing waste of time *) diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 1812e621..8b1176a0 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -3,6 +3,7 @@ From Coinduction Require Import all. From ITree Require Import Axioms +Eq.Eqit Utils. Create HintDb not_wf. @@ -40,7 +41,7 @@ Definition not_wf_F_mon := Lemma neg_wf_from_not_wf_from_l : forall (a : A), ~(wf_from a) -> not_wf_from a. Proof. - unfold not_wf_from. coinduction c CIH. intros. destruct (classic (exists a', r a a' /\ ~ ( wf_from a') )). + coinduction c CIH. intros. destruct (classic (exists a', r a a' /\ ~ ( wf_from a') )). - destruct H0 as [a' [Hr Hwf] ]. econstructor; eauto. - assert (forall a', ~ r a a' \/ wf_from a'). { diff --git a/extra/Dijkstra/PureITreeBasics.v b/extra/Dijkstra/PureITreeBasics.v index 4c4235db..7b53dd0e 100644 --- a/extra/Dijkstra/PureITreeBasics.v +++ b/extra/Dijkstra/PureITreeBasics.v @@ -28,7 +28,7 @@ Set Implicit Arguments. (*this implies that if a spec w accepts spin, then bind w f should too? *) Lemma spin_bind : forall (E : Type -> Type) (A B : Type) (f : A -> itree E B), spin ≈ ITree.bind spin f. Proof. - intros. bcoinduction. simpl. + intros. coinduction. simpl. now constructor. Qed. @@ -51,7 +51,7 @@ Lemma tau_invar_resp_eutt1: forall (E : Type -> Type) (A : Type) (P : itree E A (*spin is the only divergent itree with the void1 event type,*) Lemma div_spin_eutt : forall (A : Type) (t : itree void1 A), any_infinite t -> t ≈ spin. Proof. - intros A. bcoinduction. intros. cbn. + intros A. coinduction. intros. cbn. destruct (observe t) eqn : Heqt. - specialize (itree_eta t) as Heta. rewrite Heqt in Heta. rewrite Heta in H. sinv H. - constructor. apply CIH. specialize (itree_eta t) as Heta. rewrite Heqt in Heta. diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index 3a369fd1..dcb8dd1c 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -254,11 +254,11 @@ Abort. monotonici B (_iter f a). Proof. unfold monotonici. intros. generalize dependent a. - pcofix CIH. pfold. intros. punfold H1. + coinduction c CIH. step. intros. step in H1. red. red in H1. inversion H1; simpl in *. constructor. destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. refine (Hfa _ _ _ _ _ H0). intros t. intros. inversion H2; subst; eauto with itree. - pclearbot. eapply cont_a; eauto with itree. + eapply cont_a; eauto with itree. Qed. Definition iterp {A B} (body : A -> PureITreeSpec (A + B) ) (init : A) : PureITreeSpec B := @@ -370,13 +370,13 @@ Abort. intros A B f a. constructor. (*this case went through without even needing coinduction???*) - - intros. red. repeat red in H. punfold H. destruct H. + - intros. red. repeat red in H. step in H. destruct H. cbn. unfold bindpi, _bindpi. destruct (f a) as [fa Hfa]; simpl in *. eapply Hfa; eauto. intros t ?Ht. inversion Ht; eauto. + left. exists (inr b). split; auto. - + left. exists (inl a'). split; auto. pclearbot. auto. + + left. exists (inl a'). split; auto. auto. (*very suspicious that I no longer need to coinduct, I think I will move this onto a refactor branch to experiment on*) - - revert a. (* pcofix CIH. *) intros. cbn in H. pfold. unfold bindpi, _bindpi in H. + - revert a. (* coinduction c CIH. *) intros. cbn in H. step. unfold bindpi, _bindpi in H. constructor. destruct (f a) as [fa Hfa]; simpl in *. eapply Hfa; try apply H. intros t ?Ht. simpl in Ht. basic_solve; auto. + eapply cont_a; try apply H0. cbn in H1. @@ -387,8 +387,8 @@ Abort. Instance PureITreeIterNatural : IterNatural (Kleisli PureITreeSpec) sum. Proof. intros A B C. intros. constructor. - - intros. generalize dependent a. pcofix CIH. intros. pfold. repeat red in H. - punfold H0. destruct H0. + - intros. generalize dependent a. coinduction c CIH. intros. step. repeat red in H. + step in H0. destruct H0. destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. constructor. cbn. rewrite Heq. simpl. unfold _bindpi. eapply Hfa; eauto. intros t ?Ht. basic_solve. @@ -400,10 +400,10 @@ Abort. * right. split; auto. eapply inf_tau; try apply spin_div. eapply Hp; eauto. symmetry. apply div_spin_eutt. auto. + left. exists (inl a'). split; auto. cbn. unfold _bindpi, _retpi, id. left. exists a'. split; try reflexivity. eapply cont_a; try reflexivity. right. apply CIH; auto. - - intros. generalize dependent a. pcofix CIH. intros. pfold. red. + - intros. generalize dependent a. coinduction c CIH. intros. step. red. repeat red in H0. constructor. - destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. punfold H0. destruct H0. simpl in H. + destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. step in H0. destruct H0. simpl in H. cbn in H. unfold bindpi, _bindpi in H. rewrite Heq in H. simpl in *. eapply Hfa; try apply H. intros t ?. simpl in *. basic_solve. + cbn in H1. unfold _bindpi, _retpi in H1. basic_solve. unfold id in *. basic_solve. @@ -422,18 +422,18 @@ Abort. intros A B C. intros. constructor. (* can't coinduct in this case it seems, fingers crossed I don't need to *) - intros. cbn. unfold bindpi, _bindpi. destruct (f a) as [fa Hfa] eqn : Heq. simpl. - cbn in H. punfold H. destruct H. cbn in H. unfold bindpi, _bindpi in H. rewrite Heq in H. simpl in *. + cbn in H. step in H. destruct H. cbn in H. unfold bindpi, _bindpi in H. rewrite Heq in H. simpl in *. eapply Hfa; try apply H. intros t ?. simpl in H0. basic_solve; auto. + rename a0 into b. left. exists (inl b). split; auto. cbn. cbn in H1. clear H. clear H0. - generalize dependent b. pcofix CIH. - intros. pfold. constructor. cbn. unfold bindpi, _bindpi. + generalize dependent b. coinduction c CIH. + intros. step. constructor. cbn. unfold bindpi, _bindpi. destruct (g b) as [gb Hgb] eqn : ?Heq. simpl in *. eapply Hgb; try apply H1. intros ?t ?Ht. basic_solve. * right. split; auto. apply inf_tau; auto. apply spin_div. * rename b0 into c. left. exists (inr c). split; auto. cbn. unfold _retpi. eapply term_b; eauto. reflexivity. - * left. exists (inl a'). split; auto. cbn. punfold Hcorec. destruct Hcorec. cbn in H. + * left. exists (inl a'). split; auto. cbn. step in Hcorec. destruct Hcorec. cbn in H. unfold bindpi, _bindpi in H. destruct (f a') as [fa' Hfa'] eqn :?Heq. simpl in *. eapply Hfa'; try apply H. intros ?t ?Ht. simpl in *. basic_solve. -- cbn in H2. rename a0 into b'. eapply cont_a; eauto. auto. @@ -442,12 +442,12 @@ Abort. -- apply inf_tau; auto. + cbn in H1. unfold _retpi in H1. basic_solve. rename b into c. left. exists (inr c). auto. - - intros. generalize dependent a. pcofix CIH. - intros. pfold. constructor. cbn. cbn in H0. unfold bindpi, _bindpi in *. + - intros. generalize dependent a. coinduction c CIH. + intros. step. constructor. cbn. cbn in H0. unfold bindpi, _bindpi in *. destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. eapply Hfa; try apply H0. intros t ?. simpl in *. basic_solve. + rename a0 into b. left. exists (inl b). split; auto. cbn. cbn in H1. red in H1. - punfold H1. destruct H1. cbn in H1. unfold bindpi, _bindpi in H1. destruct (g b) as [gb Hgb] eqn : ?Heq. + step in H1. destruct H1. cbn in H1. unfold bindpi, _bindpi in H1. destruct (g b) as [gb Hgb] eqn : ?Heq. simpl in *. eapply Hgb; try apply H1. intros ?t ?Ht. simpl in *. clear H1. basic_solve. * cbn in H2. eapply cont_a; try apply H1. right. apply CIH. cbn. @@ -466,8 +466,8 @@ Abort. Instance PureITreeIterCodiagonal : IterCodiagonal (Kleisli PureITreeSpec) sum. Proof. intros A B f. constructor. - - intros. generalize dependent a. pcofix CIH. intros. cbn in H0. punfold H0. - pfold. destruct H0. constructor. cbn in H. cbn. punfold H. destruct H. + - intros. generalize dependent a. coinduction c CIH. intros. cbn in H0. step in H0. + step. destruct H0. constructor. cbn in H. cbn. step in H. destruct H. unfold bindpi, _bindpi. destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. eapply Hfa; try apply H. intros t ?. simpl in *. basic_solve. + right. split; auto. @@ -476,30 +476,30 @@ Abort. + left. exists (inr (inl a0) ). clear H. split; auto. cbn. unfold _retpi. eapply cont_a; unfold id; try reflexivity. right. apply CIH. apply Hcorec. + left. exists (inl a'). split; auto. cbn. unfold _retpi. - eapply cont_a; try reflexivity. clear H. right. apply CIH. red. pfold. - red. constructor. punfold Hcorec. red in Hcorec. destruct Hcorec. destruct (f a') as [fa' Hfa'] eqn : ?Heq. - simpl in *. red. pfold. constructor. rewrite Heq0. simpl in *. + eapply cont_a; try reflexivity. clear H. right. apply CIH. red. step. + red. constructor. step in Hcorec. red in Hcorec. destruct Hcorec. destruct (f a') as [fa' Hfa'] eqn : ?Heq. + simpl in *. red. step. constructor. rewrite Heq0. simpl in *. eapply Hfa'; try apply H. clear H. intros ?t ?Ht. auto. - - intros. punfold H. generalize dependent a. pcofix CIH. intros. cbn in H0. pfold. constructor. - destruct H0. cbn in H. cbn. unfold bindpi, _bindpi in H. pfold. constructor. + - intros. step in H. generalize dependent a. coinduction c CIH. intros. cbn in H0. step. constructor. + destruct H0. cbn in H. cbn. unfold bindpi, _bindpi in H. step. constructor. destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. eapply Hfa; try apply H. rename H into Ha. intros t ?. simpl in *. basic_solve. + cbn in H0. unfold _retpi in H0. basic_solve. eapply cont_a; try apply H. clear H. left. generalize dependent a0. - pcofix CIH'. intros. pfold. constructor. clear Ha. punfold Hcorec. + coinduction c CIH'. intros. step. constructor. clear Ha. step in Hcorec. destruct Hcorec. cbn in H. unfold bindpi, _bindpi in H. simpl in *. destruct (f a0) as [fa0 Hfa0] eqn : ?Heq. simpl in *. eapply Hfa0; try apply H. clear H. intros ?t ?Ht. simpl in *. basic_solve. * cbn in H0. unfold _retpi in H0. basic_solve. eapply cont_a; try apply H. auto. * cbn in H0. unfold _retpi in H0. basic_solve. eapply term_b; try apply H. eapply cont_a; try reflexivity. - right. apply CIH. punfold Hcorec. + right. apply CIH. step in Hcorec. * cbn in H0. unfold _retpi, id in H0. basic_solve. eapply term_b; try apply H. eapply term_b; try reflexivity. auto. * apply inf_tau; auto. + cbn in H0. unfold _retpi, id in H0. basic_solve. eapply term_b; try apply H. eapply cont_a; try reflexivity. - right. apply CIH. punfold Hcorec. + right. apply CIH. step in Hcorec. + cbn in H0. unfold _retpi, id in H0. basic_solve. eapply term_b; try apply H. eapply term_b; try reflexivity. auto. + apply inf_tau; auto. @@ -510,7 +510,7 @@ Abort. (p : itree void1 B -> Prop) (Hp : resp_eutt void1 B p), proj1_sig (obsip B (iter f a)) p Hp -> proj1_sig (iterp (fun x => obsip _ (f x) ) a) p Hp. Proof. - intros. generalize dependent a. pcofix CIH. intros. pfold. constructor. + intros. generalize dependent a. coinduction c CIH. intros. step. constructor. cbn. red. simpl. specialize (unfold_iter_ktree f a) as Hunfold. cbn in H0. red in H0. symmetry in Hunfold. eapply Hp in H0; @@ -535,7 +535,7 @@ Abort. proj1_sig (iterp (fun x => obsip _ (f x) ) a) p Hp -> proj1_sig (obsip B (iter f a)) p Hp. Proof. intros. cbn. red. cbn in H. red in H. cbn in H. - punfold H. destruct H. cbn in H. red in H. + step in H. destruct H. cbn in H. red in H. basic_solve; auto. - apply div_spin_eutt in Ht as H1. eapply Hp; eauto. specialize (unfold_iter_ktree f a) as Hunfold. rewrite Hunfold. rewrite H1. @@ -560,7 +560,7 @@ Abort. exists 0. assert (resp_eutt _ _ (fun _ : itree void1 nat => False) ). { intros t1 t2. tauto. } exists H. split; auto. - pcofix CIH. pfold. constructor. cbn. red. eapply cont_a; eauto. reflexivity. + coinduction c CIH. step. constructor. cbn. red. eapply cont_a; eauto. reflexivity. Qed. Lemma iter_too_big : ~ forall A B (f : A -> itree void1 (A + B) ) (a : A) @@ -579,7 +579,7 @@ Abort. intros. constructor. - apply obsip_pres_iter_right. - intros. cbn. red. cbn in H. unfold obsip, _obsip in H. simpl in H. - red in H. punfold H. destruct H. simpl in *. + red in H. step in H. destruct H. simpl in *. cbn in H. Abort. *) diff --git a/extra/Dijkstra/StateIOTrace.v b/extra/Dijkstra/StateIOTrace.v index 03ead0e3..c80b4275 100644 --- a/extra/Dijkstra/StateIOTrace.v +++ b/extra/Dijkstra/StateIOTrace.v @@ -190,7 +190,7 @@ Section PrintMults. 2 : destruct ev; assert void; try apply Hempty; try constructor; contradiction. assert (A = nat). { - destruct ev; auto. cbn in *. pinversion Href. ddestruction; subst. + destruct ev; auto. cbn in *. sinv Href. ddestruction; subst. cbn in *. inversion H1; auto. } subst. rename ans into n. exists n. @@ -199,14 +199,14 @@ Section PrintMults. exists k0. split. { simpl in Href. clear Henv. unf_res. - pinversion Href. ddestruction; subst. inversion H1. ddestruction; subst. reflexivity. + sinv Href. ddestruction; subst. inversion H1. ddestruction; subst. reflexivity. } clear Hp p Hbhd b. assert (k0 tt ⊑ kp n). - { clear Heqkp. pinversion Href. ddestruction; subst. + { clear Heqkp. sinv Href. ddestruction; subst. unfold resum, ReSum_id, id_, Id_IFun in *. inversion H1. ddestruction; subst. assert (RAnsRef IO unit nat (evans nat Read n) tt Read n); auto with itree. - apply H6 in H. pclearbot. auto. + apply H6 in H. auto. } clear Href ev. subst. rewrite bind_ret_l in H. simpl in *. rewrite interp_state_bind in H. rewrite interp_state_trigger in H. simpl in *. rewrite bind_ret_l in H. @@ -231,11 +231,11 @@ Section PrintMults. generalize dependent tr. generalize dependent next_to_write. - pcofix CIH. + coinduction c CIH. (*This coinductive hypothesis looks good*) intros. rename H1 into HX. - pfold. red. + step. red. (*should be able to learn that observe tr is what we need*) (*This block shows how to proceed through the loop body*) @@ -254,13 +254,13 @@ Section PrintMults. rewrite bind_vis in H. setoid_rewrite bind_ret_l in H. unf_res. - punfold H. red in H. cbn in *. + step in H. red in H. cbn in *. dependent induction H. 2:{ rewrite <- x. constructor; auto. eapply IHruttF; eauto; reflexivity. } inversion H; ddestruction; subst; ddestruction; try contradiction. subst. specialize (H0 tt tt). destruct a. - prove_arg H0; auto with itree. pclearbot. + prove_arg H0; auto with itree. match type of H0 with paco2 _ bot2 ?tr ?t => assert (Hk1 : tr ⊑ t); auto end. rewrite <- x. constructor; auto. diff --git a/extra/Dijkstra/TracesIT.v b/extra/Dijkstra/TracesIT.v index 20702657..4a03d152 100644 --- a/extra/Dijkstra/TracesIT.v +++ b/extra/Dijkstra/TracesIT.v @@ -332,28 +332,28 @@ Proof. red in Hlog. apply H. clear H. subst. cbn. red. split; intros. - unfold append in *. rewrite bind_ret_l in H. rewrite bind_ret_l. unfold decide_ex in *. - generalize dependent b. pcofix CIH. intros b Hb Hdiv. - pfold. red. + generalize dependent b. coinduction c CIH. intros b Hb Hdiv. + step. red. rewrite unfold_iter in Hb at 1. rewrite bind_bind in Hb. apply bind_trigger_refine in Hb as Hb'; try (exists true; auto). basic_solve. destruct a. + rewrite bind_ret_l in H0. cbn in H0. rewrite tau_eutt in H0. - punfold H. red in H. cbn in H. clear Hb. + step in H. red in H. cbn in H. clear Hb. enough (paco1 (trace_forall_ (is_bool true) (fun _ => True) ) r b). - { punfold H1. } + { step in H1. } dependent induction H. - * pfold. red. rewrite <- x. constructor; auto with itree. intros. - destruct a. right. pclearbot. eapply CIH. + * step. rewrite <- x. constructor; auto with itree. intros. + destruct a. right. eapply CIH. ++ assert (k1 tt ≈ k' tt)%itree; try apply REL. rewrite H. auto. - ++ apply simpobs in x. rewrite x in Hdiv. pinversion Hdiv. + ++ apply simpobs in x. rewrite x in Hdiv. sinv Hdiv. ddestruction. apply H1. - * pfold. red. rewrite <- x. constructor. left. eapply IHeqitF; eauto. + * step. rewrite <- x. constructor. left. eapply IHeqitF; eauto. apply simpobs in x. rewrite x in Hdiv. rewrite tau_eutt in Hdiv. auto. + rewrite bind_ret_l in H0. cbn in H0. apply trace_refine_ret_inv_l in H0. - rewrite H in Hdiv. pinversion Hdiv. ddestruction. + rewrite H in Hdiv. sinv Hdiv. ddestruction. specialize (H2 tt). - rewrite H0 in H2. pinversion H2. + rewrite H0 in H2. sinv H2. - red. rewrite append_nil. rewrite append_nil in H. unfold decide_ex in *. induction H. + exfalso. rewrite H in H0. rewrite unfold_iter in H0. @@ -365,17 +365,17 @@ Proof. clear IHmay_converge. rewrite unfold_iter in H0. rewrite bind_bind in H0. rewrite H in H0. eapply bind_trigger_refine in H0; try (exists true; auto). basic_solve. - pinversion H0. ddestruction. + sinv H0. ddestruction. assert (k tt ≈ k' tt)%itree; try apply REL. rewrite bind_ret_l in H2. cbn in *. rewrite tau_eutt in H2. rewrite H3. auto. * clear IHmay_converge. rewrite unfold_iter in H0. rewrite bind_bind in H0. rewrite H in H0. eapply bind_trigger_refine in H0; try (exists true; auto). basic_solve. - pinversion H0. ddestruction. + sinv H0. ddestruction. rewrite bind_ret_l in H2. cbn in H2. apply trace_refine_ret_inv_l in H2. eapply front_and_last_base with (r := tt); eauto with itree. - pfold. red. cbn. constructor. intros. left. + step. cbn. constructor. intros. left. rewrite <- H2. destruct v. auto. Qed. diff --git a/extra/IForest.v b/extra/IForest.v index 6b4a3305..639bda94 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -172,8 +172,6 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit, interp_iforest in h. #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit, interp_iforest in *. -#[local] Ltac iunfold_coind := unfold_coind_with iunfold. - #[local] Ltac refold := repeat match goal with | |- context[gfp (@eqit_mon ?E ?b1 ?b2)] => @@ -288,14 +286,14 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := iunfold_coind; coinduction R H; icbn. -#[local] Tactic Notation "bcoinduction" simple_intropattern(R) simple_intropattern(H) := +#[local] Tactic Notation "coinduction" simple_intropattern(R) simple_intropattern(H) := icoinduction R H; to_mon. -#[local] Tactic Notation "bcoinduction" := +#[local] Tactic Notation "coinduction" := let c := fresh "c" in let CIH := fresh "CIH" in - bcoinduction c CIH. + coinduction c CIH. #[local] Ltac bcbn := cbn[eqit_mon body eqit_ interp_iforest_mon interp_iforest_]; @@ -453,7 +451,7 @@ Lemma interp_iforest_correct_exec: Proof. intros. revert t t' H1. - bcoinduction. + coinduction. intros t t' eq. unfold interp, Basics.iter, MonadIter_itree. rewrite (itree_eta t) in eq. diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 7fea0653..0dc615c3 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -17,9 +17,6 @@ From ITree.Extra Require Import ITrace.ITracePrefix . - -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -91,7 +88,7 @@ Lemma refine_ret_vis_contra : forall (E: Type -> Type) (R A: Type) (r : R) (e : E A) (k : A -> itree E R), ~ (Ret r ⊑ Vis e k). Proof. - intros. intro Hcontra. pinversion Hcontra. + intros. intro Hcontra. sinv Hcontra. Qed. (* maybe a better way of doing it is to use strong LEM to see if X = A in the vis case @@ -102,11 +99,11 @@ Qed. Lemma peel_t_ret : forall E R S (b : itrace E S) (t : itree E R) r, t ≅ Ret r -> (peel b t ≅ Ret r). Proof. intros. unfold peel. - pinversion H; subst; try inv CHECK. + sinv H; subst; try inv CHECK. destruct (observe b); cbn; auto. - - pfold. red. cbn. constructor. auto. - - pfold. red. cbn. constructor; auto. - - pfold. red. cbn. simpl. destruct e. + - step. cbn. constructor. auto. + - step. cbn. constructor; auto. + - step. cbn. simpl. destruct e. + cbn. constructor. auto. + cbn. constructor. auto. Qed. @@ -119,40 +116,38 @@ Lemma peel_refine_t : forall (E : Type -> Type) (R S : Type) peel b t ⊑ t. Proof. intros E R S b t f. generalize dependent b. generalize dependent t. - pcofix CIH. intros. - punfold Hrutt. red in Hrutt. cbn in Hrutt. pfold. red. + icoinduction c CIH. intros. + step in Hrutt. cbn in Hrutt. unfold peel. destruct (observe t) eqn : Heq. - destruct (observe b); cbn; try (constructor; auto). destruct e; cbn; constructor; auto. - dependent induction Hrutt. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. - rewrite Heq in x. rewrite bind_tau in x. pinversion x. - inv CHECK. - + rewrite <- x0. cbn. constructor. right. eapply CIH. - pclearbot. symmetry in Heq. apply simpobs in x0. + rewrite Heq in x. rewrite bind_tau in x. sinv x. + + rewrite <- x0. cbn. constructor. eapply CIH. + symmetry in Heq. apply simpobs in x0. apply simpobs in x. apply simpobs in Heq. apply eq_sub_eutt in x0. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. rewrite tau_eutt in x0. rewrite <- Heq. rewrite x. rewrite tau_eutt. auto. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. - rewrite Heq in x. rewrite bind_tau in x. pinversion x. - inv CHECK. - + rewrite <- x. cbn. constructor. right. eapply CIH. + rewrite Heq in x. rewrite bind_tau in x. sinv x. + + rewrite <- x. cbn. constructor. eapply CIH. clear IHHrutt. symmetry in Heq. apply simpobs in Heq. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. - rewrite <- Heq. pfold. auto. + rewrite <- Heq. step. auto. + cbn. destruct (observe b) eqn : Heq'. - * cbn. rewrite <- Heq'. constructor. right. eapply CIH. + * cbn. rewrite <- Heq'. constructor. eapply CIH. symmetry in Heq'. apply simpobs in Heq'. rewrite Heq'. symmetry in Heq. apply simpobs in Heq. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. rewrite <- Heq. apply simpobs in x. rewrite x. - rewrite tau_eutt. pfold. auto. + rewrite tau_eutt. step. auto. * cbn. clear IHHrutt. - constructor. right. eapply CIH. + constructor. eapply CIH. symmetry in Heq. apply simpobs in Heq. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. rewrite <- Heq. @@ -160,32 +155,32 @@ Proof. rewrite tau_eutt in x. rewrite x. enough (Tau t1 ⊑ t2). { rewrite tau_eutt in H. auto. } - pfold. auto. + step. auto. * destruct e; cbn. - ++ constructor. right. rewrite <- Heq'. clear IHHrutt. + ++ constructor. rewrite <- Heq'. clear IHHrutt. eapply CIH. symmetry in Heq. apply simpobs in Heq. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. apply simpobs in x. apply eq_sub_eutt in x. rewrite tau_eutt in x. - rewrite <- Heq. rewrite x. pfold. red. + rewrite <- Heq. rewrite x. step. rewrite Heq'. auto. - ++ constructor. right. rewrite <- Heq'. clear IHHrutt. + ++ constructor. rewrite <- Heq'. clear IHHrutt. eapply CIH. symmetry in Heq. apply simpobs in Heq. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. apply simpobs in x. apply eq_sub_eutt in x. rewrite tau_eutt in x. - rewrite <- Heq. rewrite x. pfold. red. + rewrite <- Heq. rewrite x. step. rewrite Heq'. auto. - dependent induction Hrutt. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. rewrite Heq in x. rewrite bind_vis in x. - pinversion x. + sinv x. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. rewrite Heq in x. rewrite bind_vis in x. - pinversion x; inv CHECK. + sinv x; inv CHECK. + rewrite <- x0. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. - rewrite Heq in x. rewrite bind_vis in x. pinversion x. + rewrite Heq in x. rewrite bind_vis in x. sinv x. ddestruction. inversion H; ddestruction. * unfold observe. cbn. unfold peel_vis. destruct (classicT (B = B) ); try contradiction. @@ -193,23 +188,23 @@ Proof. remember (eq_sym _) as He. clear HeqHe. dependent destruction He. cbn. constructor; eauto. intros. inversion H1. ddestruction. - apply H0 in H1. pclearbot. unfold id. right. eapply CIH. - red in x1. cbn in x1. inversion x1. ddestruction. + apply H0 in H1. unfold id. eapply CIH. + red in H. cbn in H. inversion H. ddestruction. specialize (H0 tt a (rar _ _ _)). - specialize (REL0 a). pclearbot. + specialize (REL0 a). change (paco2 ?x ?y ?t ?u) with (eq_itree eq t u) in REL0. rewrite REL0. apply H0. * cbn. constructor; eauto. intros. contradiction. + rewrite <- x. cbn. constructor. eapply IHHrutt; eauto. + exfalso. symmetry in Heq. apply simpobs in x. apply simpobs in Heq. rewrite Heq in x. rewrite bind_vis in x. - pinversion x; inv CHECK. + sinv x; inv CHECK. Qed. Lemma not_spin_eutt_ret : forall E R (r : R), ~ (@ITree.spin E R ≈ Ret r). Proof. intros. intros Hcontra. specialize (@spin_infinite E R) as Hdiv. - rewrite Hcontra in Hdiv. pinversion Hdiv. + rewrite Hcontra in Hdiv. sinv Hdiv. Qed. @@ -217,64 +212,64 @@ Lemma proper_peel_eutt_l : forall (E : Type -> Type) (R S : Type) (b b': itrace E R) (t : itree E S), (b ≈ b') -> (peel b t ≈ peel b' t). Proof. - intros E R S. pcofix CIH. intros. unfold peel. + intros E R S. coinduction c CIH. intros. unfold peel. destruct (observe t). - - pfold. red. destruct (observe b); destruct (observe b'); cbn; + - step. destruct (observe b); destruct (observe b'); cbn; try (destruct e); try (destruct e0); cbn; try (constructor; auto; fail). - - pfold. punfold H0. red in H0. dependent induction H0. + - step. step in H0. red in H0. dependent induction H0. + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. rewrite x0. eapply CIH. reflexivity. + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. - pclearbot. eapply CIH. auto. + eapply CIH. auto. + rewrite <- x0. rewrite <- x. destruct e; cbn. * red. cbn. constructor. right. rewrite x. rewrite x0. - eapply CIH. pfold. red. rewrite <- x. rewrite <- x0. + eapply CIH. step. rewrite <- x. rewrite <- x0. constructor. auto. * red. cbn. constructor. right. rewrite x0. rewrite x. - eapply CIH. pfold. red. rewrite <- x0. rewrite <- x. + eapply CIH. step. rewrite <- x0. rewrite <- x. constructor. auto. + destruct (observe b); destruct (observe b'); dependent destruction x. * red. cbn. constructor. right. remember (@go (EvAns E) _ (RetF r0)) as t1. assert (RetF r0 = observe t1). { rewrite Heqt1. auto. } - rewrite H. eapply CIH. rewrite Heqt1. pfold. auto. - * red. cbn. constructor. right. eapply CIH. + rewrite H. eapply CIH. rewrite Heqt1. step. auto. + * red. cbn. constructor. eapply CIH. enough (t2 ≈ Tau t3). { rewrite tau_eutt in H. auto. } - pfold. auto. + step. auto. * red. destruct e; cbn. ++ constructor. right. remember (@go (EvAns E) _ (VisF (evans A ev ans) k ) ) as t1. assert (VisF (evans A ev ans) k = observe t1). { rewrite Heqt1. auto. } - rewrite H. eapply CIH. subst. pfold. auto. + rewrite H. eapply CIH. subst. step. auto. ++ constructor. right. remember (go (VisF (evempty A Hempty ev) k ) ) as t1. assert (VisF (evempty A Hempty ev) k = observe t1 ). { subst. auto. } - rewrite H. eapply CIH. subst. pfold. auto. + rewrite H. eapply CIH. subst. step. auto. + destruct (observe b); destruct (observe b'); dependent destruction x. * red. cbn. constructor. right. remember (@go (EvAns E) _ (RetF r0)) as t2. assert (RetF r0 = observe t2). { subst. auto. } - rewrite H. eapply CIH. rewrite Heqt2. pfold. auto. - * red. cbn. constructor. right. eapply CIH. + rewrite H. eapply CIH. rewrite Heqt2. step. auto. + * red. cbn. constructor. eapply CIH. enough (Tau t1 ≈ t3). { rewrite tau_eutt in H. auto. } - pfold. auto. + step. auto. * red. destruct e; cbn. ++ constructor. right. remember (@go (EvAns E) _ (VisF (evans A ev ans) k ) ) as t2. assert (VisF (evans A ev ans) k = observe t2). { subst. auto. } - rewrite H. eapply CIH. subst. pfold. auto. + rewrite H. eapply CIH. subst. step. auto. ++ constructor. right. remember (go (VisF (evempty A Hempty ev) k ) ) as t2. assert (VisF (evempty A Hempty ev) k = observe t2 ). { subst. auto. } - rewrite H. eapply CIH. subst. pfold. auto. - - pfold. punfold H0. red in H0. dependent induction H0. + rewrite H. eapply CIH. subst. step. auto. + - step. step in H0. red in H0. dependent induction H0. + rewrite <- x0. rewrite <- x. red. cbn. constructor. left. apply pacobot2. enough (@ITree.spin (EvAns E) S ≈ ITree.spin); auto. @@ -283,13 +278,13 @@ Proof. remember (go (VisF e k) ) as t0. assert (VisF e k = observe t0). { subst. auto. } - rewrite H. eapply CIH. pclearbot. auto. + rewrite H. eapply CIH. auto. + rewrite <- x0. rewrite <- x. red. destruct e; cbn. * unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X) ). ++ unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. cbn. constructor. intros. - right. eapply CIH. pclearbot. auto with itree. + eapply CIH. auto with itree. ++ cbn. constructor. left. apply pacobot2. enough (@ITree.spin (EvAns E) S ≈ ITree.spin ); auto. reflexivity. @@ -303,7 +298,7 @@ Proof. rewrite H. eapply CIH. enough (t1 ≈ Tau t0). { rewrite tau_eutt in H1. auto. } - pfold; auto. + step; auto. * cbn. constructor; eauto. rewrite <- Heq. eapply IHeqitF; eauto. rewrite Heq. auto. + rewrite <- x. red. destruct (observe b) eqn : Heq. @@ -315,7 +310,7 @@ Proof. rewrite H. eapply CIH. enough (Tau t0 ≈ t2). { rewrite tau_eutt in H1. auto. } - pfold; auto. + step; auto. * cbn. constructor; eauto. rewrite <- Heq. eapply IHeqitF; eauto. rewrite Heq. auto. Qed. @@ -326,23 +321,23 @@ Lemma proper_peel_eutt_r : forall (E : Type -> Type) (R S : Type) (b: itrace E R) (t t': itree E S), (t ≈ t') -> (peel b t ≈ peel b t'). Proof. - intros E R S. pcofix CIH. intros. - pfold. red. unfold peel. destruct (observe b) eqn : Heqb. - - punfold H0. red in H0. dependent induction H0. + intros E R S. coinduction c CIH. intros. + step. unfold peel. destruct (observe b) eqn : Heqb. + - step in H0. red in H0. dependent induction H0. + rewrite <- x. rewrite <- x0. cbn. constructor. auto. + rewrite <- x. rewrite <- x0. cbn. constructor. right. rewrite <- Heqb. - eapply CIH. pclearbot. auto. + eapply CIH. auto. + rewrite <- x0. rewrite <- x. cbn. constructor. left. apply paco2_eqit_refl. + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. - - punfold H0. red in H0. dependent induction H0. + - step in H0. red in H0. dependent induction H0. + rewrite <- x. rewrite <- x0. cbn. constructor. auto. + rewrite <- x0. rewrite <- x. cbn. constructor. right. - pclearbot. eapply CIH; auto. + eapply CIH; auto. + rewrite <- x0. rewrite <- x. cbn. constructor. right. rewrite x0. rewrite x. eapply CIH. - pfold. red. rewrite <- x0. rewrite <- x. + step. rewrite <- x0. rewrite <- x. constructor. auto. + rewrite <- x. destruct (observe t') eqn : Heqt'. * cbn. constructor; auto. clear IHeqitF. @@ -357,9 +352,9 @@ Proof. * cbn. constructor. right. eapply CIH; eauto. enough (t1 ≈ Tau t2). { rewrite tau_eutt in H. auto. } - pfold. auto. - * cbn. constructor. rewrite <- Heqt'. right. eapply CIH. - pfold. red. rewrite Heqt'. auto. + step. auto. + * cbn. constructor. rewrite <- Heqt'. eapply CIH. + step. rewrite Heqt'. auto. + rewrite <- x. destruct (observe t). * cbn. constructor; auto. clear IHeqitF. dependent induction H0. @@ -369,21 +364,21 @@ Proof. ** constructor; auto. eapply IHeqitF; eauto. ** destruct e; cbn; try (constructor; auto; rewrite <- Heqt1; eapply IHeqitF; eauto). * cbn. constructor. right. eapply CIH; eauto. - rewrite <- tau_eutt at 1. pfold. auto. + rewrite <- tau_eutt at 1. step. auto. * cbn. constructor. right. remember ((Vis e k) ) as t1. assert (VisF e k = observe t1). { subst. auto. } - rewrite H. eapply CIH. subst. pfold. auto. - - punfold H0. red in H0. dependent induction H0. + rewrite H. eapply CIH. subst. step. auto. + - step in H0. red in H0. dependent induction H0. + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; auto. + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; right; rewrite <- Heqb; - eapply CIH; pclearbot; eauto. + eapply CIH; eauto. + rewrite <- x. rewrite <- x0. destruct e0; cbn. * unfold observe. cbn. unfold peel_vis. destruct (classicT (A = u) ). ++ unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. intros. - right. eapply CIH. pclearbot. auto with itree. + eapply CIH. auto with itree. ++ cbn. constructor. left. apply paco2_eqit_refl. * constructor. contradiction. + rewrite <- x. destruct (observe t'); destruct e; cbn. @@ -393,17 +388,17 @@ Proof. * constructor; auto. clear IHeqitF. dependent induction H0. ++ rewrite <- x. cbn. constructor; auto. ++ rewrite <- x. cbn. constructor; eauto. - * constructor. rewrite <- Heqb. right. eapply CIH. - setoid_rewrite <- tau_eutt at 2. pfold. auto. - * rewrite <- Heqb. constructor. right. eapply CIH. - setoid_rewrite <- tau_eutt at 2. pfold. auto. + * constructor. rewrite <- Heqb. eapply CIH. + setoid_rewrite <- tau_eutt at 2. step. auto. + * rewrite <- Heqb. constructor. eapply CIH. + setoid_rewrite <- tau_eutt at 2. step. auto. * constructor; auto. clear IHeqitF. dependent induction H0. ++ rewrite <- x. unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. - cbn. constructor. intros. right. pclearbot. eapply CIH; eauto with itree. + cbn. constructor. intros. right. eapply CIH; eauto with itree. ** cbn. constructor. left. apply paco2_eqit_refl. ++ rewrite <- x. cbn. constructor; auto; eapply IHeqitF; eauto. * constructor; auto. clear IHeqitF. @@ -418,16 +413,16 @@ Proof. ++ rewrite <- x. cbn. constructor; auto. ++ rewrite <- x. cbn. constructor; eauto. * constructor. right. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. - pfold. auto. + step. auto. * constructor. rewrite <- Heqb. right. eapply CIH; eauto. rewrite <- tau_eutt. - pfold. auto. + step. auto. * constructor; auto. clear IHeqitF. dependent induction H0. ++ rewrite <- x. unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. - cbn. constructor. intros. right. pclearbot. eapply CIH; apply REL. + cbn. constructor. intros. right. eapply CIH; apply REL. ** cbn. constructor. left. apply paco2_eqit_refl. ++ rewrite <- x. cbn. constructor; eauto. * constructor; auto. clear IHeqitF. dependent induction H0. @@ -446,7 +441,7 @@ Lemma not_peel_vis_ret: forall (R : Type) (E : Type -> Type) (S X : Type) (e : E ~ (peel t1 (Vis e k) ≈ Ret r). Proof. intros R E S X e k r t1 Heutt. - punfold Heutt. unfold peel in *. red in Heutt. cbn in *. + step in Heutt. unfold peel in *. red in Heutt. cbn in *. dependent induction Heutt. - destruct (observe t1); cbn in x; try discriminate. destruct e0; cbn in *; try discriminate. @@ -456,7 +451,7 @@ Proof. dependent destruction He. discriminate. - destruct (observe t1); cbn in x; try discriminate. + injection x as Hspin. rewrite Hspin in Heutt. - eapply not_spin_eutt_ret. pfold. eauto. + eapply not_spin_eutt_ret. step. eauto. + injection x as Ht0. eapply IHHeutt; eauto. rewrite Ht0. reflexivity. + destruct e0; cbn in *; try discriminate. unfold observe in x. cbn in x. unfold peel_vis in *. @@ -464,7 +459,7 @@ Proof. * unfold eq_rect_r, eq_rect in x. remember (eq_sym e0) as He. dependent destruction He. discriminate. * cbn in x. injection x as Hspin. rewrite Hspin in Heutt. - eapply not_spin_eutt_ret. pfold. eauto. + eapply not_spin_eutt_ret. step. eauto. Qed. Lemma peel_ret_inv: @@ -472,7 +467,7 @@ Lemma peel_ret_inv: (peel b t ≈ Ret r) -> (t ≈ Ret r). Proof. intros R r E S b t H. unfold peel in H. - punfold H. red in H. cbn in H. pfold. red. cbn. + step in H. red in H. cbn in H. step. cbn. dependent induction H. - unfold peel in x. destruct (observe b); destruct (observe t); cbn in *; dependent destruction x; try (constructor; auto; fail). @@ -486,19 +481,19 @@ Proof. * discriminate. - destruct (observe b); destruct (observe t); cbn in x; dependent destruction x. + constructor; auto. eapply IHeqitF with (b := Ret r0); eauto. - + exfalso. eapply not_spin_eutt_ret. pfold. eauto. + + exfalso. eapply not_spin_eutt_ret. step. eauto. + constructor; auto. eapply IHeqitF; eauto. + exfalso. destruct (observe t0). * cbn in H. eapply not_spin_eutt_ret. - inv H. pfold. eauto. + inv H. step. eauto. * cbn in H. inv H. eapply not_peel_vis_ret. - pfold. eauto. + step. eauto. * destruct e0. ++ clear IHeqitF. unfold observe in H. cbn in H. unfold peel_vis in H. destruct (classicT (A = X) ). ** unfold eq_rect_r, eq_rect in H. remember (eq_sym e0) as He. dependent destruction He. inv H. - ** eapply not_spin_eutt_ret. pfold. eauto. + ** eapply not_spin_eutt_ret. step. eauto. ++ cbn in H. inv H. + destruct e; cbn in x; try discriminate. + constructor; auto. eapply IHeqitF with (b := Vis e k); eauto. cbn. @@ -510,7 +505,7 @@ Proof. dependent destruction He. discriminate. * injection x as Hspin. cbn in Hspin. exfalso. assert (t1 ≈ Ret r). - { pfold. auto. } + { step. auto. } rewrite Hspin in H0. eapply not_spin_eutt_ret; eauto. Qed. @@ -533,8 +528,8 @@ Lemma eqitF_mon: Proof. intros E R r t1 t0' REL. induction REL; constructor; eauto. - - pclearbot. left. apply pacobot2; auto. - - pclearbot. intros. left. apply pacobot2; auto. + - left. apply pacobot2; auto. + - intros. left. apply pacobot2; auto. Qed. Lemma eqitF_observe_peel_cont_vis: @@ -555,7 +550,7 @@ Proof. destruct (classicT (A = X) ). - unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. - intros. right. pclearbot. eapply CIH. auto with itree. + intros. right. eapply CIH. auto with itree. - cbn. apply eqitF_r_refl. Qed. @@ -565,47 +560,47 @@ Lemma proper_peel_cont_eutt_l : forall (E : Type -> Type) (R S : Type) (b ≈ b') -> (peel_cont b t s ≈ peel_cont b' t s). Proof. intros E R S. unfold peel_cont. intros b b' t _. - revert b b' t. pcofix CIH. intros. pfold. punfold H0. red in H0. + revert b b' t. coinduction c CIH. intros. step. step in H0. red in H0. destruct (observe t) eqn : Heqt. - red. destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inversion H0; cbn; try (constructor; auto; fail); try (constructor; auto; eapply eqitF_mon; eauto; fail); try (destruct e; cbn); try (constructor; auto; eapply eqitF_mon; eauto; fail). - + constructor. pclearbot. left. apply pacobot2; auto. + + constructor. left. apply pacobot2; auto. + subst. ddestruction. subst. cbn. constructor. intros. left. inv H0. - ddestruction. subst. pclearbot. apply pacobot2; auto. + ddestruction. subst. apply pacobot2; auto. + ddestruction. subst. ddestruction. subst. cbn. constructor; auto. intros []. (*looks like I didn't actually need to induct here ... *) - dependent induction H0; try clear IHeqitF. + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. - rewrite x. eapply CIH; eauto. pfold. red. rewrite <- x. constructor; auto. + rewrite x. eapply CIH; eauto. step. rewrite <- x. constructor; auto. + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. - eapply CIH. pclearbot. auto. + eapply CIH. auto. + rewrite <- x0. rewrite <- x. red. destruct e; cbn; constructor; right. - * rewrite x. rewrite x0. eapply CIH; eauto. pfold. red. + * rewrite x. rewrite x0. eapply CIH; eauto. step. red. rewrite <- x0. rewrite <- x. constructor. auto. - * rewrite x. rewrite x0. eapply CIH; eauto. pfold. red. + * rewrite x. rewrite x0. eapply CIH; eauto. step. red. rewrite <- x0. rewrite <- x. constructor. auto. + rewrite <- x. red. cbn. destruct (observe b') eqn : Heqb'; cbn. * constructor. right. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. - pfold. auto. - * constructor. right. eapply CIH. setoid_rewrite <- tau_eutt at 2. - pfold. auto. + step. auto. + * constructor. eapply CIH. setoid_rewrite <- tau_eutt at 2. + step. auto. * constructor. right. rewrite <- Heqb'. eapply CIH. - symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. pfold. auto. + symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. step. auto. + rewrite <- x. red. cbn. destruct (observe b) eqn : Heqb; cbn. * constructor; auto. right. rewrite <- Heqb. eapply CIH. - pfold. red. rewrite Heqb. auto. - * constructor. right. eapply CIH. rewrite <- tau_eutt at 1. pfold. auto. - * constructor. right. rewrite <- Heqb. eapply CIH. pfold. + step. rewrite Heqb. auto. + * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. + * constructor. right. rewrite <- Heqb. eapply CIH. step. red. rewrite Heqb. auto. - red. dependent induction H0; cbn. - + rewrite <- x0. rewrite <- x. cbn. constructor. left. pfold. apply eqitF_r_refl. + + rewrite <- x0. rewrite <- x. cbn. constructor. left. step. apply eqitF_r_refl. + rewrite <- x0. rewrite <- x. cbn. constructor. right. rewrite <- Heqt. eapply CIH. - pclearbot. auto. + auto. + rewrite <- x. rewrite <- x0. destruct e; cbn; try (apply eqitF_observe_peel_cont_vis; auto). apply eqitF_r_refl. + rewrite <- x. cbn. constructor; eauto. @@ -615,19 +610,19 @@ Qed. Lemma peel_cont_ret_inv : forall E R S (b : itrace E R) (t : itree E S) (s : S), t ≈ Ret s -> (peel_cont_ (observe b) (observe t) ≈ b). Proof. - intros E R S. pcofix CIH. intros. punfold H0. red in H0. cbn in H0. dependent induction H0; subst. - - rewrite <- x. cbn. pfold. red. cbn. apply eqitF_r_refl. + intros E R S. coinduction c CIH. intros. step in H0. red in H0. cbn in H0. dependent induction H0; subst. + - rewrite <- x. cbn. step. cbn. apply eqitF_r_refl. - rewrite <- x. destruct (observe b) eqn : Hb. - + pfold. red. cbn. constructor; auto. + + step. cbn. constructor; auto. specialize (IHeqitF r CIH (Ret r0) t1 s ); auto. assert (S = S). auto. apply IHeqitF in H; auto. rewrite Hb. - punfold H. - + pfold. red. rewrite Hb. cbn. constructor. right. eapply CIH with (s := s). - pfold. auto. - + pfold. red. rewrite Hb. cbn. rewrite <- Hb. constructor; auto. + step in H. + + step. rewrite Hb. cbn. constructor. right. eapply CIH with (s := s). + step. auto. + + step. rewrite Hb. cbn. rewrite <- Hb. constructor; auto. specialize (IHeqitF r CIH b t1 s ); auto. - assert (S = S). auto. apply IHeqitF in H; auto. punfold H. + assert (S = S). auto. apply IHeqitF in H; auto. step in H. Qed. Lemma proper_peel_cont_eutt_r : forall (E : Type -> Type) (R S : Type) @@ -635,16 +630,16 @@ Lemma proper_peel_cont_eutt_r : forall (E : Type -> Type) (R S : Type) (t ≈ t') -> (peel_cont b t s ≈ peel_cont b t' s). Proof. intros E R S. unfold peel_cont. intros b t t' _. - revert b t t'. pcofix CIH. intros. pfold. punfold H0. red in H0. dependent induction H0. + revert b t t'. coinduction c CIH. intros. step. step in H0. red in H0. dependent induction H0. - rewrite <- x. rewrite <- x0. red. cbn. apply eqitF_r_refl. - rewrite <- x. rewrite <- x0. red. destruct (observe b) eqn : Heqb; cbn. - + constructor. right. rewrite <- Heqb. eapply CIH. pclearbot. auto. - + constructor. right. eapply CIH. pclearbot. auto. - + constructor. right. rewrite <- Heqb. eapply CIH; pclearbot; auto. - - rewrite <- x. rewrite <- x0. pclearbot. destruct (observe b) eqn : Heqb; red; cbn. + + constructor. right. rewrite <- Heqb. eapply CIH. auto. + + constructor. eapply CIH. auto. + + constructor. right. rewrite <- Heqb. eapply CIH; auto. + - rewrite <- x. rewrite <- x0. destruct (observe b) eqn : Heqb; red; cbn. + apply eqitF_r_refl. - + constructor. rewrite x. rewrite x0. right. eapply CIH. - pfold. red. rewrite <- x. rewrite <- x0. constructor. intros. + + constructor. rewrite x. rewrite x0. eapply CIH. + step. rewrite <- x. rewrite <- x0. constructor. intros. left. auto. + destruct e0; cbn. * unfold observe. cbn. unfold peel_cont_vis. @@ -657,11 +652,11 @@ Proof. + constructor; eauto. rewrite <- Heqb. eapply IHeqitF; eauto. + cbn. destruct (observe t') eqn : Heqt'; cbn. * constructor. left. apply pacobot2. - eapply peel_cont_ret_inv with (s := r0). pfold. auto. + eapply peel_cont_ret_inv with (s := r0). step. auto. * constructor. right. eapply CIH; eauto. setoid_rewrite <- tau_eutt at 2. - pfold. auto. + step. auto. * constructor. right. rewrite <- Heqt'. eapply CIH. - pfold. red. rewrite Heqt'. auto. + step. rewrite Heqt'. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. - rewrite <- x. destruct (observe b) eqn : Heqb; red; cbn. + constructor; auto. rewrite <- Heqb. eapply IHeqitF; eauto. @@ -669,10 +664,10 @@ Proof. * constructor. left. apply pacobot2. enough (t0 ≈ peel_cont_ (observe t0) (observe t2) ). auto. symmetry. - eapply peel_cont_ret_inv with (s := r0). symmetry. pfold. auto. - * constructor. right. eapply CIH. rewrite <- tau_eutt at 1. pfold. auto. + eapply peel_cont_ret_inv with (s := r0). symmetry. step. auto. + * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. * constructor. right. rewrite <- Heqt. eapply CIH. - pfold. red. rewrite Heqt. auto. + step. rewrite Heqt. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. Qed. @@ -685,7 +680,7 @@ Qed. Lemma peel_cont_bind : forall (E : Type -> Type) (R S : Type) (b : itrace E S) (t : itree E R) (f : R -> itree E S), b ⊑ ITree.bind t f -> (ITree.bind (peel b t) (peel_cont b t) ≈ b). Proof. - intros E R S. pcofix CIH. intros. punfold H0. pfold. red. red in H0. cbn in *. + intros E R S. coinduction c CIH. intros. step in H0. step. red in H0. cbn in *. unfold ITree.bind in H0. unfold ITree.bind. cbn in *. unfold observe at 1. cbn. *) @@ -695,18 +690,18 @@ Lemma vis_refine_peel : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : (peel (Vis (evans _ e a) k1) (Vis e k2) ≈ Vis (evans _ e a) k3) -> (k3 tt ≈ peel (k1 tt) (k2 a)). Proof. - intros E R S A. (* pcofix CIH. *) intros e a k1 k2 k3 Hpeel. - unfold peel in *. cbn in *. punfold Hpeel. + intros E R S A. (* coinduction c CIH. *) intros e a k1 k2 k3 Hpeel. + unfold peel in *. cbn in *. step in Hpeel. red in Hpeel. cbn in *. cbn in Hpeel. unfold observe in Hpeel. cbn in Hpeel. unfold peel_vis in Hpeel. assert (A = A). auto. destruct (classicT (A = A) ); try contradiction. unfold eq_rect_r, eq_rect in Hpeel. remember (eq_sym e0) as He. dependent destruction He. cbn in *. - clear HeqHe e0 H. pfold. red. cbn. inv Hpeel. ddestruction. - pclearbot. specialize (REL tt). + clear HeqHe e0 H. step. cbn. inv Hpeel. ddestruction. + specialize (REL tt). assert (peel_ (observe (k1 tt)) (observe (k2 a)) ≈ k3 tt ). auto. - symmetry in H. punfold H. + symmetry in H. step in H. Qed. Lemma vis_refine_peel_cont : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : A) @@ -714,13 +709,13 @@ Lemma vis_refine_peel_cont : forall (E : Type -> Type) (R S A : Type) (e : E A) (peel_cont_ (VisF (evans _ e a) k1) (VisF e k2) ≈ t) -> (t ≈ peel_cont_ (observe (k1 tt)) (observe (k2 a))). Proof. - intros E R S A e a k1 k2 t Hpeelcont. punfold Hpeelcont. red in Hpeelcont. + intros E R S A e a k1 k2 t Hpeelcont. step in Hpeelcont. red in Hpeelcont. unfold observe in Hpeelcont at 1. cbn in *. unfold peel_cont_vis in *. assert (A = A); auto. destruct (classicT (A = A) ); try contradiction. unfold eq_rect_r, eq_rect in *. remember (eq_sym e0) as He. dependent destruction He. cbn in *. symmetry. assert (Tau (peel_cont_ (observe (k1 tt)) (observe (k2 a) ) ) ≈ t ). - { pfold. auto. } + { step. auto. } rewrite tau_eutt in H0. auto. Qed. @@ -728,7 +723,7 @@ Lemma spin_not_vis : forall (E : Type -> Type) (R A : Type) (e : E A) (k : A -> itree E R), ~ ITree.spin ≈ Vis e k. Proof. - intros E R A e k Hcontra. punfold Hcontra. red in Hcontra. cbn in *. + intros E R A e k Hcontra. step in Hcontra. red in Hcontra. cbn in *. dependent induction Hcontra. eapply IHHcontra; eauto. Qed. @@ -754,7 +749,7 @@ Lemma vis_peel_l : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : A) (peel b t ≈ Vis (evans _ e a) k) -> exists k', (b ≈ Vis (evans _ e a) k'). Proof. intros E R S A e a b t f k Href Hpeel. - punfold Hpeel. red in Hpeel. cbn in Hpeel. dependent induction Hpeel. + step in Hpeel. red in Hpeel. cbn in Hpeel. dependent induction Hpeel. - unfold peel in x. destruct (observe b) eqn : Heqb; destruct (observe t) eqn : Heqt; try destruct e0; cbn in *; dependent destruction x. unfold observe in x. cbn in x. @@ -765,7 +760,7 @@ Proof. symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqb. apply simpobs in Heqt. rewrite Heqb in Href. rewrite Heqt in Href. rewrite bind_vis in Href. - punfold Href. red in Href. cbn in *. inv Href. + step in Href. red in Href. cbn in *. inv Href. ddestruction. subst. inv H1. auto. } destruct (classicT (A0 = X0)); try (exfalso; auto; fail). @@ -778,7 +773,7 @@ Proof. + symmetry in Heqt. apply simpobs in Heqt. rewrite Heqt in Href. rewrite tau_eutt in Href. eapply IHHpeel in Href; eauto. unfold peel. rewrite Heqb. auto. - + exfalso. eapply spin_not_vis. pfold. eauto. + + exfalso. eapply spin_not_vis. step. eauto. + symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqt. apply simpobs in Heqb. setoid_rewrite Heqb. setoid_rewrite tau_eutt. rewrite Heqb in Href. rewrite Heqt in Href. repeat rewrite tau_eutt in Href. @@ -795,7 +790,7 @@ Proof. + unfold observe in x. cbn in x. unfold peel_vis in x. symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqt. apply simpobs in Heqb. rewrite Heqb in Href. rewrite Heqt in Href. - rewrite bind_vis in Href. punfold Href. red in Href. cbn in *. + rewrite bind_vis in Href. step in Href. red in Href. cbn in *. inv Href. ddestruction. subst. inv H1. subst; ddestruction; subst. assert (A0 = A0); auto. destruct (classicT (A0 = A0) ); try contradiction. unfold eq_rect_r, eq_rect in *. remember (eq_sym e0) as He. @@ -809,7 +804,7 @@ Lemma vis_peel_r : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : A) Proof. intros E R S A e a b t f k Href Hpeel. eapply vis_peel_l in Hpeel as Hpeell; eauto. destruct Hpeell as [k' Hb]. - rewrite Hb in Href. rewrite Hb in Hpeel. clear Hb b. punfold Hpeel. red in Hpeel. cbn in *. + rewrite Hb in Href. rewrite Hb in Hpeel. clear Hb b. step in Hpeel. red in Hpeel. cbn in *. unfold peel in Hpeel. cbn in *. dependent induction Hpeel. - destruct (observe t) eqn : Heqt; dependent destruction x. symmetry in Heqt. apply simpobs in Heqt. setoid_rewrite Heqt. @@ -817,7 +812,7 @@ Proof. cbn in *; try discriminate. unfold eq_rect_r, eq_rect in x. remember (eq_sym e1) as He. dependent destruction He. cbn in *. exists k0. - rewrite Heqt in Href. rewrite bind_vis in Href. punfold Href. red in Href. + rewrite Heqt in Href. rewrite bind_vis in Href. step in Href. red in Href. cbn in *. inv Href. ddestruction; subst. inv H1. ddestruction; subst. reflexivity. - destruct (observe t) eqn : Heqt; cbn in *; dependent destruction x. + symmetry in Heqt. apply simpobs in Heqt. rewrite Heqt in Href. rewrite tau_eutt in Href. @@ -827,7 +822,7 @@ Proof. * unfold eq_rect_r, eq_rect in x. remember (eq_sym e1) as He. dependent destruction He. cbn in *. discriminate. * cbn in x. injection x as Ht1. rewrite Ht1 in Hpeel. - exfalso. eapply spin_not_vis. pfold. eauto. + exfalso. eapply spin_not_vis. step. eauto. Qed. Lemma peel_cont_vis_eutt: forall (R : Type) (r : R) (E : Type -> Type) (S A : Type) (ev : E A) @@ -835,7 +830,7 @@ Lemma peel_cont_vis_eutt: forall (R : Type) (r : R) (E : Type -> Type) (S A : Ty (peel_cont (Vis (evans A ev ans) kb) (Vis ev kt) r ≈ peel_cont (kb tt) (kt ans) r). Proof. intros R r E S A ev ans kb kt. - pfold. cbn. red. unfold observe at 1. cbn in *. unfold peel_cont_vis. + step. cbn. red. unfold observe at 1. cbn in *. unfold peel_cont_vis. assert (A = A); auto. destruct (classicT (A = A)); try contradiction. unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. cbn. constructor; auto. unfold peel_cont. @@ -865,10 +860,10 @@ Proof. rewrite Hkb in H1. rewrite Htk in H1. apply vis_refine_peel in H1 as Hk. rewrite peel_cont_vis_eutt. apply IHmay_converge; auto. - + rewrite bind_vis in Hrutt. punfold Hrutt. red in Hrutt. cbn in *. + + rewrite bind_vis in Hrutt. step in Hrutt. red in Hrutt. cbn in *. inv Hrutt. ddestruction; subst. assert (RAnsRef E unit A (evans A ev ans) tt ev ans ); auto with itree. - apply H8 in H. pclearbot. auto. + apply H8 in H. auto. + destruct b. symmetry. auto. Qed. @@ -895,20 +890,20 @@ Proof. apply trace_refine_ret_inv_r in Hrutt. constructor. assert (exists s, t0 ≈ Ret s). { - punfold Hrutt. red in Hrutt. dependent induction Hrutt. + step in Hrutt. red in Hrutt. dependent induction Hrutt. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Ht0; cbn in *; try discriminate. - exists r1. pfold. red. rewrite Ht0. cbn. auto with itree. + exists r1. step. rewrite Ht0. cbn. auto with itree. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Ht0; cbn in *; try discriminate. - + exists r1. pfold. red. rewrite Ht0. cbn. auto with itree. + + exists r1. step. rewrite Ht0. cbn. auto with itree. + injection x as Ht1. symmetry in Ht0. apply simpobs in Ht0. apply eq_sub_eutt in Ht0 as Ht0'. setoid_rewrite Ht0'. setoid_rewrite tau_eutt. eapply IHHrutt; eauto. rewrite Ht1. eauto. subst. cbn. unfold ITree.bind. reflexivity. } - destruct H as [s Ht0]. punfold Ht0. red in Ht0. cbn in Ht0. + destruct H as [s Ht0]. step in Ht0. red in Ht0. cbn in Ht0. clear Heqt Hrutt. dependent induction Ht0. - - rewrite <- x. cbn. punfold Heqb. red in Heqb. cbn in *. inv Heqb; try inv CHECK. + - rewrite <- x. cbn. step in Heqb. red in Heqb. cbn in *. inv Heqb; try inv CHECK. rewrite H0. auto with itree. - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. Qed. @@ -930,13 +925,13 @@ Lemma trace_prefix_vis_evans: forall (E : Type -> Type) (R S : Type) (r : itrace (observe (peel_ (VisF (evans A0 ev ans) k) (observe t0))) (VisF (evans A0 ev ans) k). Proof. intros E R S r A0 ev ans k k' t0 f Hk' Ht0 CIH. - punfold Ht0. red in Ht0. cbn in *. dependent induction Ht0. + step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. - rewrite <- x. unfold observe. cbn. unfold peel_vis. assert (A0 = A0); auto. destruct (classicT (A0 = A0)); try contradiction. unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. - dependent destruction He. cbn. constructor. right. eapply CIH. + dependent destruction He. cbn. constructor. eapply CIH. assert (RAnsRef E unit A0 (evans A0 ev ans) tt ev ans); auto with itree. - apply Hk' in H0. pclearbot. assert (k1 ans ≈ k' ans); try apply REL. + apply Hk' in H0. assert (k1 ans ≈ k' ans); try apply REL. rewrite H1. eauto. - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. Qed. @@ -974,7 +969,7 @@ Lemma trace_prefix_peel_ret_vis: forall (E : Type -> Type) (R S : Type) (VisF (evans A0 ev ans) k). Proof. intros E R S r A0 ev ans k t0 s Ht0. - punfold Ht0. red in Ht0. cbn in *. dependent induction Ht0. + step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. - rewrite <- x. cbn. remember (go (VisF (evans A0 ev ans) k ) ) as t. enough (trace_prefixF (upaco2 trace_prefix_ r) (RetF s) (observe t) ). { subst. auto. } @@ -994,7 +989,7 @@ Lemma trace_prefix_peel_ret_vis_empty: forall (E : Type -> Type) (R S : Type) (VisF (evempty A0 Hempty ev) k). Proof. intros E R S r A0 Hempty ev k t0 s Ht0. - punfold Ht0. red in Ht0. cbn in *. dependent induction Ht0. + step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. - rewrite <- x. cbn. remember (go (VisF (evempty A0 Hempty ev) k ) ) as t. enough (trace_prefixF (upaco2 trace_prefix_ r) (RetF s) (observe t) ). { subst. auto. } @@ -1007,18 +1002,18 @@ Lemma trace_prefix_peel : forall (E : Type -> Type) (S R : Type) (b : itrace E R b ⊑ ITree.bind t f -> trace_prefix (peel b t) b. Proof. - intros E S R. pcofix CIH. intros b t f Href. pfold. red. unfold peel. + intros E S R. coinduction c CIH. intros b t f Href. step. unfold peel. destruct (observe b) eqn : Heqb; destruct (observe t) eqn : Heqt; cbn. - rewrite <- Heqb. auto with itree. - eapply trace_prefix_tau_ret; eauto. - symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqb. apply simpobs in Heqt. rewrite Heqb in Href. rewrite Heqt in Href. rewrite bind_vis in Href. - pinversion Href. + sinv Href. - rewrite <- Heqb. auto with itree. - - constructor. right. eapply CIH. symmetry in Heqb. symmetry in Heqt. + - constructor. eapply CIH. symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqb. apply simpobs in Heqt. rewrite Heqb in Href. rewrite Heqt in Href. repeat rewrite tau_eutt in Href. eauto. - - constructor. rewrite <- Heqt. right. eapply CIH. + - constructor. rewrite <- Heqt. eapply CIH. symmetry in Heqb. apply simpobs in Heqb. rewrite Heqb in Href. rewrite tau_eutt in Href. eauto. - destruct e; cbn; rewrite <- Heqb; auto with itree. @@ -1029,14 +1024,14 @@ Proof. rewrite tau_eutt in Hvis. assert ((exists B, exists k', exists (e1 : E B) , t0 ≈ Vis e1 k') \/ exists s, t0 ≈ Ret s). { - punfold Hvis. red in Hvis. clear Heqb Heqt. + step in Hvis. red in Hvis. clear Heqb Heqt. dependent induction Hvis. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Heqt0; try discriminate. - + right. exists r0. pfold. red. cbn. rewrite Heqt0. auto with itree. + + right. exists r0. step. cbn. rewrite Heqt0. auto with itree. + cbn in x. left. exists X0. exists k2. exists e1. symmetry in Heqt0. apply simpobs in Heqt0. rewrite Heqt0. reflexivity. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Heqt0; try discriminate. - + right. exists r0. pfold. red. cbn. rewrite Heqt0. auto with itree. + + right. exists r0. step. cbn. rewrite Heqt0. auto with itree. + injection x as Ht1. symmetry in Heqt0. apply simpobs in Heqt0. setoid_rewrite Heqt0. setoid_rewrite tau_eutt. eapply IHHvis; eauto. rewrite Ht1. auto. @@ -1044,10 +1039,10 @@ Proof. destruct H as [ [B [k' [e1 Ht0] ] ] | [s Ht0] ]. + rewrite Heqt in Href. rewrite tau_eutt in Href. rewrite Ht0 in Href. rewrite bind_vis in Href. - pinversion Href. subst; ddestruction; subst. - rewrite Ht0 in Hvis. rewrite bind_vis in Hvis. pinversion Hvis. + sinv Href. subst; ddestruction; subst. + rewrite Ht0 in Hvis. rewrite bind_vis in Hvis. sinv Hvis. subst; ddestruction; subst. clear Heqt Heqb. - punfold Ht0. red in Ht0. cbn in *. + step in Ht0. red in Ht0. cbn in *. destruct e. * inv H1. ddestruction; subst. cbn. constructor. eapply trace_prefix_vis_evans; eauto with itree. @@ -1060,15 +1055,15 @@ Proof. - destruct e; cbn; [ | constructor ]. symmetry in Heqt. apply simpobs in Heqt. rewrite Heqt in Href. rewrite bind_vis in Href. symmetry in Heqb. apply simpobs in Heqb. - rewrite Heqb in Href. pinversion Href. subst; ddestruction; subst. + rewrite Heqb in Href. sinv Href. subst; ddestruction; subst. inversion H1. ddestruction; subst. unfold observe at 1. cbn. unfold peel_vis. assert (A = A); auto. destruct (classicT (A = A) ); try contradiction. unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. - dependent destruction He. cbn. constructor. right. eapply CIH. + dependent destruction He. cbn. constructor. eapply CIH. ddestruction; subst. assert (RAnsRef E unit A (evans A ev ans) tt ev ans ); auto with itree. - apply H6 in H0. pclearbot. eauto. + apply H6 in H0. eauto. Qed. Lemma peel_bind : forall (E : Type -> Type) (S R : Type) (b : itrace E R) (t : itree E S) @@ -1092,12 +1087,12 @@ Lemma bind_peel_ret_tau_aux: Ret r0 ⊑ ITree.bind t0 f -> exists r : R, t0 ≈ Ret r. Proof. intros E S R f r0 t0 Hrutt. - punfold Hrutt. red in Hrutt. cbn in *. dependent induction Hrutt. + step in Hrutt. red in Hrutt. cbn in *. dependent induction Hrutt. - unfold ITree.bind in x. unfold observe in x at 1. cbn in *. destruct (observe t0) eqn : Ht0; try discriminate. - exists r. pfold. red. rewrite Ht0. constructor. auto. + exists r. step. rewrite Ht0. constructor. auto. - unfold observe in x. cbn in x. destruct (observe t0) eqn : Ht0; try discriminate. - + exists r. pfold. red. rewrite Ht0. constructor. auto. + + exists r. step. rewrite Ht0. constructor. auto. + symmetry in Ht0. apply simpobs in Ht0. setoid_rewrite Ht0. setoid_rewrite tau_eutt. cbn in x. injection x as Ht2. eapply IHHrutt; auto. subst. reflexivity. @@ -1122,9 +1117,9 @@ Proof. intros. rewrite bind_trigger in H0. apply trace_refine_vis in H0 as Hvis. destruct Hvis as [X [e' [k' Hbvis] ] ]. setoid_rewrite Hbvis. rewrite Hbvis in H0. - punfold H0. red in H0. cbn in *. inv H0. ddestruction. subst. inv H3; ddestruction; subst. - - exists a. exists k'. split; try reflexivity. pclearbot. + step in H0. red in H0. cbn in *. inv H0. ddestruction. subst. inv H3; ddestruction; subst. + - exists a. exists k'. split; try reflexivity. assert (RAnsRef E unit A (evans A e a) tt e a ); auto with itree. - apply H8 in H0. pclearbot. auto. + apply H8 in H0. auto. - destruct H as [a _]. contradiction. Qed. diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index c98378cb..33ff807d 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -192,11 +192,11 @@ Lemma trace_refine_proper_left' : forall (E : Type -> Type) (R : Type) (b1 b2 : (t : itree E R), (b1 ≈ b2) -> rutt (REvRef E) (RAnsRef E) eq b1 t -> rutt (REvRef E) (RAnsRef E) eq b2 t. Proof. - intros E R. rcoinduction c CIH. intros. + intros E R. icoinduction c CIH. intros. step in H0. repeat red in H0. step in H. genobs t ot3. clear Heqot3. hinduction H before CIH; intros; subst; eauto. - - remember (RetF r2) as ot1. hinduction H0 before CIH; intros; inv Heqot1; eauto with paco. + - remember (RetF r2) as ot1. hinduction H0 before CIH; intros; inv Heqot1; eauto. + constructor. auto. + constructor. eapply IHruttF; eauto. (* Tau Tau case causes the most problems, seems *) @@ -238,7 +238,7 @@ Lemma trace_refine_proper_right' : forall (E : Type -> Type) (R : Type) (b : itr (t1 t2 : itree E R), t1 ≈ t2 -> rutt (REvRef E) (RAnsRef E) eq b t1 -> rutt (REvRef E) (RAnsRef E) eq b t2. Proof. - intros E R. rcoinduction c CIH. intros. step in H. + intros E R. icoinduction c CIH. intros. step in H. step in H0. repeat red in H0. genobs_clear t2 ot2. hinduction H before CIH; intros; clear t1; subst; eauto. @@ -365,7 +365,7 @@ Lemma itree_refine_nonempty : forall (E : Type -> Type) (R : Type) (t : itree E Proof. intros. destruct classicT_inhabited as [classicT]. exists (determinize classicT t). generalize dependent t. - red. rcoinduction c CIH. + icoinduction c CIH. intros. unfold determinize. desobs t Hot. - cbn. eret. - cbn. constructor. apply CIH. @@ -410,7 +410,7 @@ Proof. set (Vis (evempty A Ha e) ke) as b. assert (b ⊑ t1). { - unfold b. rewrite Ht1. step. red. cbn. + unfold b. rewrite Ht1. step. cbn. constructor. { apply ree. } { intros []. } } apply H0 in H as H1. unfold b in *. clear b. @@ -537,7 +537,7 @@ Lemma trace_refine_diverge_bind : forall (E : Type -> Type) (R S : Type) all_infinite b -> b ⊑ t -> ITree.bind b f ⊑ ITree.bind t g. Proof. intros E R S b t f g. generalize dependent b. generalize dependent t. - red. rcoinduction c CIH. intros. + red. icoinduction c CIH. intros. step in H0. step in H. repeat red in H0, H. dependent induction H0. @@ -667,7 +667,7 @@ Lemma trace_refine_bind_cont_inv : forall (E : Type -> Type) (R S : Type) (f : R -> itree E S) (r : R), may_converge r b -> b ⊑ m -> ITree.bind b g ⊑ ITree.bind m f -> g r ⊑ f r. Proof. - intros E R S. red. rcoinduction c CIH. intros b m g f a Hconv Hrefb Hrefbind. + intros E R S. red. coinduction c CIH. intros b m g f a Hconv Hrefb Hrefbind. generalize dependent m. dependent induction Hconv; intros m Hrefb Hrefbind. - rewrite H in Hrefbind. rewrite bind_ret_l in Hrefbind. rewrite H in Hrefb. diff --git a/extra/ITrace/ITracePreds.v b/extra/ITrace/ITracePreds.v index 304248d8..6b384f4c 100644 --- a/extra/ITrace/ITracePreds.v +++ b/extra/ITrace/ITracePreds.v @@ -47,15 +47,15 @@ Lemma trace_forall_proper_aux: forall (E : Type -> Type) (R : Type) (PE : forall (PR : R -> Prop) (b1 b2 : itree (EvAns E) R), (b1 ≈ b2) -> trace_forall PE PR b1 -> trace_forall PE PR b2. Proof. - intros E R PE PR. pcofix CIH. intros b1 b2 Heutt Hforall. - pfold. red. punfold Hforall. red in Hforall. - punfold Heutt. red in Heutt. induction Heutt; subst; auto. + intros E R PE PR. coinduction c CIH. intros b1 b2 Heutt Hforall. + step. step in Hforall. red in Hforall. + step in Heutt. red in Heutt. induction Heutt; subst; auto. - inv Hforall. auto with itree. - - inv Hforall. pclearbot. constructor. right. eapply CIH; eauto. - - inv Hforall. ddestruction. subst. pclearbot. + - inv Hforall. constructor. right. eapply CIH; eauto. + - inv Hforall. ddestruction. subst. constructor; auto. intros. right. eapply CIH; eauto with itree. apply H3. - - apply IHHeutt. inv Hforall. pclearbot. punfold H0. - - constructor. left. pfold. red. apply IHHeutt. auto. + - apply IHHeutt. inv Hforall. step in H0. + - constructor. left. step. apply IHHeutt. auto. Qed. #[global] Instance trace_forall_proper_eutt {E R PE PR} : Proper (eutt eq ==> iff) (@trace_forall E R PE PR). @@ -67,7 +67,7 @@ Qed. Lemma forall_spin : forall E R PE PR, trace_forall PE PR (@ITree.spin (EvAns E) R). Proof. - intros. pcofix CIH. pfold. red. cbn. constructor. + intros. coinduction c CIH. step. cbn. constructor. right. auto. Qed. @@ -155,9 +155,9 @@ Section StateMachine. Lemma state_machine_proper_aux : forall PEv PRet (t1 t2 : itrace E R), (t1 ≈ t2) -> state_machine PEv PRet t1 -> state_machine PEv PRet t2. Proof. - pcofix CIH. intros PEV PREt t1 t2 Heutt Hsm. pfold. red. - punfold Hsm; try apply monotone_state_machine. - punfold Heutt. red in Heutt. red in Hsm. + coinduction c CIH. intros PEV PREt t1 t2 Heutt Hsm. step. red. + step in Hsm; try apply monotone_state_machine. + step in Heutt. red in Heutt. red in Hsm. induction Hsm. - remember (RetF r0) as ot1. induction Heutt; subst; auto with itree; try discriminate. injection Heqot1; intros; subst; auto with itree. @@ -165,7 +165,7 @@ Section StateMachine. rewrite tau_eutt in H. auto. - remember (VisF (evans A e a) k ) as ot1. induction Heutt; subst; auto with itree; try discriminate. injection Heqot1; intros; subst. dependent destruction H1. - subst. constructor; auto. right. pclearbot. eapply CIH; eauto with itree. + subst. constructor; auto. right. eapply CIH; eauto with itree. Qed. #[global] Instance state_machine_proper_eutt {PEv PRet} : Proper (eutt eq ==> iff) (@state_machine PEv PRet). diff --git a/extra/ITrace/ITracePrefix.v b/extra/ITrace/ITracePrefix.v index afe3ac0b..bc16d930 100644 --- a/extra/ITrace/ITracePrefix.v +++ b/extra/ITrace/ITracePrefix.v @@ -2,8 +2,9 @@ From Stdlib Require Import Morphisms . +From Coinduction Require Import all. + From ITree Require Import - Basics.Utils Axioms ITree ITreeFacts @@ -16,8 +17,6 @@ From ITree.Extra Require Import ITrace.ITraceFacts . -From Paco Require Import paco. - Import Monads. Import MonadNotation. #[local] Open Scope monad_scope. @@ -43,19 +42,20 @@ Definition trace_prefix_ {E R S} F (br : itrace E R) (bs : itrace E S) := trace_ #[global] Hint Unfold trace_prefix_ : itree. -Lemma trace_prefix_monot {E R S} : monotone2 (@trace_prefix_ E R S). +Lemma trace_prefix_mono {E R S} : Proper (leq ==> leq) (@trace_prefix_ E R S). Proof. - repeat intro. red. red in IN. induction IN; eauto with itree. + repeat intro. red. red in H0. induction H0; eauto with itree; + constructor; now apply H. Qed. -#[global] Hint Resolve trace_prefix_monot : paco. +Definition trace_prefix_mon {E R S} := Build_mon (@trace_prefix_mono E R S). -Definition trace_prefix {E R S} : itrace E R -> itrace E S -> Prop := paco2 trace_prefix_ bot2. +Definition trace_prefix {E R S} : itrace E R -> itrace E S -> Prop := gfp (@trace_prefix_mon E R S). Lemma prefix_vis : forall E R S A (e : E A) (ans : A) (k : unit -> itrace E R) (t : itrace E S), trace_prefix (Vis (evans _ e ans) k ) t -> exists k', (t ≈ Vis (evans _ e ans) k' )%itree. Proof. - intros E R S A e ans k t Hbp. punfold Hbp. red in Hbp. cbn in *. + intros E R S A e ans k t Hbp. step in Hbp. cbn in *. dependent induction Hbp. - apply simpobs in x. enough (exists k', bs ≈ (Vis (evans A e ans) k' ))%itree. + destruct H as [k' Hk']. exists k'. rewrite x. rewrite tau_eutt. auto. @@ -72,19 +72,19 @@ Qed. Lemma trace_prefix_proper_aux_vis: forall (E : Type -> Type) (S R : Type) (t1 : itree (EvAns E) R) (b2 : itrace E R), - eqitF eq true true id - (upaco2 (eqit_ eq true true id) bot2) + eqitF eq true true + (eutt eq) (observe t1) (observe b2) -> forall (r : itrace E R -> itrace E S -> Prop) (X : Type) (e : EvAns E X) (k : X -> itree (EvAns E) S), - trace_prefixF (upaco2 trace_prefix_ bot2) + trace_prefixF (gfp trace_prefix_mon) (observe t1) (VisF e k) -> (forall (b1 b2 : itrace E R) (b : itrace E S), (b1 ≈ b2) -> trace_prefix b1 b -> r b2 b) -> - trace_prefixF (upaco2 trace_prefix_ r) + trace_prefixF r (observe b2) (VisF e k). Proof. intros E S R t1 b2 Heutt r X e k H0 CIH. @@ -92,33 +92,33 @@ Proof. - rewrite <- x0 in Heutt. dependent induction Heutt. + rewrite <- x. apply trace_prefix_ret. + rewrite <- x. constructor. eapply IHHeutt; eauto. - - eapply IHtrace_prefixF; auto. - apply simpobs in x. assert (t1 ≈ b2); auto with itree. - rewrite x in H. rewrite tau_eutt in H. punfold H. + - eapply IHtrace_prefixF. 3: reflexivity. all: eauto. + apply simpobs in x. assert (t1 ≈ b2) by now step. + rewrite x in H. rewrite tau_eutt in H. now step in H. - rewrite <- x in Heutt. dependent induction Heutt. + rewrite <- x. constructor. + rewrite <- x. constructor. eapply IHHeutt; eauto. - - pclearbot. rewrite <- x in Heutt. dependent induction Heutt. - + rewrite <- x. constructor. right. pclearbot. eapply CIH; eauto with itree. + - rewrite <- x in Heutt. dependent induction Heutt. + + rewrite <- x. constructor. eapply CIH; eauto with itree. + rewrite <- x. constructor. eapply IHHeutt; eauto. Qed. Lemma trace_prefix_tau_inv: forall (E : Type -> Type) (S R : Type) (m1 : itree (EvAns E) R) (t : itree (EvAns E) S), - trace_prefixF (upaco2 trace_prefix_ bot2) + trace_prefixF (trace_prefix) (TauF m1) (TauF t) -> trace_prefix m1 t. Proof. intros E S R m1 t Hbp. - dependent induction Hbp. - - pclearbot. auto. - - pfold. red. clear IHHbp. dependent induction Hbp. + dependent induction Hbp. + - auto. + - step. clear IHHbp. dependent induction Hbp. + rewrite <- x0. auto with itree. - + rewrite <- x. constructor. pclearbot. punfold H. + + rewrite <- x. constructor. now step in H. + rewrite <- x. constructor. eapply IHHbp; eauto. + auto. - - pfold. red. clear IHHbp. dependent induction Hbp. - + rewrite <- x. constructor. pclearbot. punfold H. + - step. clear IHHbp. dependent induction Hbp. + + rewrite <- x. constructor. now step in H. + auto. + rewrite <- x. constructor. eapply IHHbp; eauto. Qed. @@ -126,53 +126,55 @@ Qed. Lemma trace_prefix_proper_l : forall E R S (b1 b2 : itrace E R) (b : itrace E S), (b1 ≈ b2) -> trace_prefix b1 b -> trace_prefix b2 b. Proof. - intros E R S. pcofix CIH. intros b1 b2 b Heutt Hbp. - pfold. red. punfold Heutt. red in Heutt. punfold Hbp. red in Hbp. + intros E R S. icoinduction c CIH. intros b1 b2 b Heutt Hbp. + step in Heutt. step in Hbp. dependent induction Heutt. - rewrite <- x. constructor. - - rewrite <- x. rewrite <- x0 in Hbp. clear x0 x. pclearbot. + - rewrite <- x. rewrite <- x0 in Hbp. clear x0 x. destruct (observe b) eqn : Heqb. + inv Hbp. constructor. dependent induction H0. * apply simpobs in x0. assert (m1 ≈ m2); auto. rewrite x0 in H. clear x x0 Heqb CIH REL. - punfold H. red in H. cbn in *. dependent induction H. + step in H. cbn in *. dependent induction H. ++ rewrite <- x. apply trace_prefix_ret. ++ rewrite <- x. constructor. eapply IHeqitF; eauto. - * eapply IHtrace_prefixF; auto. + * eapply IHtrace_prefixF. 5: reflexivity. all: auto. apply simpobs in x. assert (m1 ≈ m2); auto. rewrite x in H. rewrite tau_eutt in H. auto. - + constructor. right. eapply CIH; eauto. eapply trace_prefix_tau_inv; eauto. + + constructor. eapply CIH; eauto. eapply trace_prefix_tau_inv; eauto. + constructor. clear Heqb. inv Hbp. dependent induction H0. * apply simpobs in x0. assert (m1 ≈ m2); auto. - rewrite x0 in H. punfold H. red in H. cbn in *. + rewrite x0 in H. step in H. cbn in *. dependent induction H. ++ rewrite <- x. apply trace_prefix_ret. - ++ rewrite <- x. constructor. eapply IHeqitF; eauto. + ++ rewrite <- x. constructor. eapply IHeqitF; try apply x0; eauto. assert (m1 ≈ m2); auto. - apply simpobs in x. rewrite x in H0. rewrite tau_eutt in H0. auto. - * eapply IHtrace_prefixF; auto. + sinv x0. apply simpobs in x, H2. + rewrite x, H2, tau_eutt in H0. + now rewrite <- H0, H2. + * eapply IHtrace_prefixF. 4: reflexivity. all: auto. assert (m1 ≈ m2); auto. apply simpobs in x. rewrite x in H. rewrite tau_eutt in H. auto. * assert (m1 ≈ m2); auto. apply simpobs in x. rewrite x in H0. - punfold H0. red in H0. cbn in *. + step in H0. cbn in *. dependent induction H0. ++ rewrite <- x. constructor. - ++ rewrite <- x. constructor. eapply IHeqitF; eauto. + ++ rewrite <- x. constructor. eapply IHeqitF; try apply x0; eauto. assert (m1 ≈ m2); auto. apply simpobs in x. rewrite x in H1. rewrite tau_eutt in H1. auto. - * pclearbot. apply simpobs in x. assert (m1 ≈ m2); auto. - rewrite x in H0. punfold H0. red in H0. cbn in *. + * apply simpobs in x. assert (m1 ≈ m2); auto. + rewrite x in H0. step in H0. cbn in *. dependent induction H0. - ++ rewrite <- x. constructor. right. pclearbot. eapply CIH; eauto with itree. - ++ rewrite <- x. constructor. eapply IHeqitF; eauto. + ++ rewrite <- x. constructor. eapply CIH; try apply REL0; eauto. + ++ rewrite <- x. constructor. eapply IHeqitF; try apply x0; eauto. assert (m1 ≈ m2); auto. apply simpobs in x. rewrite x in H1. rewrite tau_eutt in H1. auto. - - rewrite <- x. rewrite <- x0 in Hbp. clear x x0. pclearbot. + - rewrite <- x. rewrite <- x0 in Hbp. clear x x0. dependent induction Hbp. + rewrite <- x. constructor. eapply IHHbp; eauto. + rewrite <- x. constructor. - + rewrite <- x. pclearbot. constructor. right. eapply CIH; eauto with itree. + + rewrite <- x. constructor. eapply CIH; try apply REL; eauto with itree. - rewrite <- x in Hbp. destruct (observe b) eqn : Heqb. + clear IHHeutt. inv Hbp. clear Heqb x. @@ -181,10 +183,10 @@ Proof. dependent induction Heutt. ++ rewrite <- x. apply trace_prefix_ret. ++ rewrite <- x. constructor. eapply IHHeutt; eauto. - * eapply IHtrace_prefixF; auto. - assert (t1 ≈ b2); auto with itree. - apply simpobs in x. rewrite x in H. rewrite tau_eutt in H. punfold H. - + constructor. eapply IHHeutt; eauto. pstep_reverse. eapply trace_prefix_tau_inv; eauto. + * eapply IHtrace_prefixF. 4: reflexivity. all: auto. + assert (t1 ≈ b2) by now step. + apply simpobs in x. rewrite x in H. rewrite tau_eutt in H. now step in H. + + constructor. eapply IHHeutt; eauto. unstep. eapply trace_prefix_tau_inv; eauto. + clear IHHeutt. inv Hbp. eapply trace_prefix_proper_aux_vis; eauto. - rewrite <- x. constructor. eapply IHHeutt; eauto. Qed. @@ -192,15 +194,15 @@ Qed. Lemma trace_prefixF_tau_inv_r: forall (E : Type -> Type) (S R : Type) (t1 : itree (EvAns E) S) (b : itrace E R), - trace_prefixF (upaco2 trace_prefix_ bot2) + trace_prefixF (trace_prefix) (observe b) (TauF t1) -> - trace_prefixF (upaco2 trace_prefix_ bot2) + trace_prefixF (trace_prefix) (observe b) (observe t1). Proof. intros E S R t1 b Hbp. dependent induction Hbp. - rewrite <- x0. apply trace_prefix_ret. - - pclearbot. rewrite <- x. constructor. punfold H. + - rewrite <- x. constructor. now step in H. - rewrite <- x. constructor. eapply IHHbp; eauto. - auto. Qed. @@ -208,53 +210,53 @@ Qed. Lemma trace_prefixF_vis_l: forall (E : Type -> Type) (S R : Type) (m1 m2 : itree (EvAns E) S), - paco2 (eqit_ eq true true id) bot2 m1 m2 -> + eutt eq m1 m2 -> forall (r : itrace E R -> itrace E S -> Prop) (X : Type) (e : EvAns E X) (k : X -> itree (EvAns E) R), - trace_prefixF (upaco2 trace_prefix_ bot2) + trace_prefixF (trace_prefix) (VisF e k) (observe m1) -> (forall (b : itrace E R) (b1 b2 : itrace E S), (b1 ≈ b2) -> trace_prefix b b1 -> r b b2 ) -> - trace_prefixF (upaco2 trace_prefix_ r) + trace_prefixF r (VisF e k) (observe m2). Proof. intros E S R m1 m2 REL r X e k H1 CIH. - punfold REL. red in REL. + step in REL. dependent induction H1. - - eapply IHtrace_prefixF; auto. rewrite <- x in REL. - assert (Tau bs ≈ m2). - { pfold. auto. } - rewrite tau_eutt in H. punfold H. + - eapply IHtrace_prefixF. 4: reflexivity. all: auto. + rewrite <- x in REL. + assert (Tau bs ≈ m2) by now step. + rewrite tau_eutt in H. now step in H. - rewrite <- x in REL. dependent induction REL. + rewrite <- x. constructor. + rewrite <- x. constructor. eapply IHREL; eauto. - - pclearbot. rewrite <- x in REL. dependent induction REL. - + rewrite <- x. constructor. right. pclearbot. eapply CIH; eauto with itree. + - rewrite <- x in REL. dependent induction REL. + + rewrite <- x. constructor. eapply CIH; try apply REL; eauto with itree. + rewrite <- x. constructor. eapply IHREL; eauto. Qed. Lemma trace_prefix_proper_r : forall E R S (b : itrace E R) (b1 b2 : itrace E S), (b1 ≈ b2) -> trace_prefix b b1 -> trace_prefix b b2. Proof. - intros E R S. pcofix CIH. intros b b1 b2 Heutt Hbp. - punfold Heutt. red in Heutt. punfold Hbp. red in Hbp. - pfold. red. dependent induction Heutt. + intros E R S. icoinduction c CIH. intros b b1 b2 Heutt Hbp. + step in Heutt. step in Hbp. + dependent induction Heutt. - rewrite <- x. rewrite <- x0 in Hbp. clear x0 x. induction Hbp; auto with itree. - + pclearbot. constructor. right. eapply CIH; eauto. reflexivity. - + constructor. pclearbot. left. apply pacobot2; eauto. - - pclearbot. rewrite <- x0 in Hbp. rewrite <- x. clear x0 x. + + constructor. eapply CIH; eauto. + + constructor. now do 2 ITree.Basics.Utils.step. + - rewrite <- x0 in Hbp. rewrite <- x. clear x0 x. destruct (observe b). + apply trace_prefix_ret. - + constructor. right. pclearbot. eapply CIH; eauto. apply trace_prefix_tau_inv. auto. + + constructor. eapply CIH; eauto. apply trace_prefix_tau_inv. auto. + inv Hbp. constructor. eapply trace_prefixF_vis_l; eauto. - - rewrite <- x. rewrite <- x0 in Hbp. pclearbot. clear x x0. dependent induction Hbp. + - rewrite <- x. rewrite <- x0 in Hbp. clear x x0. dependent induction Hbp. + rewrite <- x0. apply trace_prefix_ret. + rewrite <- x. constructor. eapply IHHbp; eauto. + rewrite <- x. constructor. - + rewrite <- x. constructor. right. pclearbot. eapply CIH; eauto with itree. + + rewrite <- x. constructor. eapply CIH; try apply REL; eauto with itree. - eapply IHHeutt; auto. rewrite <- x in Hbp. eapply trace_prefixF_tau_inv_r; eauto. - rewrite <- x. constructor. eapply IHHeutt; eauto. Qed. @@ -280,8 +282,8 @@ Lemma ind_comb_bind : forall E R S (b1 : itrace E R) (b2 : itrace E S) (b : itra Proof. intros E R S b1 b2 b Hind. induction Hind. - rewrite H. rewrite bind_ret_l. auto. - - rewrite H. rewrite H0. rewrite bind_vis. pfold. red. constructor. intros. - left. destruct v. apply IHHind. + - rewrite H. rewrite H0. rewrite bind_vis. step. constructor. intros. + destruct v. apply IHHind. Qed. Inductive trace_prefix_ind {E R S} : itrace E R -> itrace E S -> Prop := @@ -296,7 +298,7 @@ Lemma trace_prefix_ind_comb : forall E R S (b1 : itrace E R) (b2 : itrace E S), exists b3, ind_comb b1 b3 b2. Proof. intros E R S b1 b2 Hpre. induction Hpre. - - exists b2. econstructor; eauto. reflexivity. + - exists b2. econstructor; eauto. - destruct IHHpre as [b3 Hb3]. exists b3. eapply left_vis_comb; eauto. Qed. @@ -318,22 +320,22 @@ Proof. apply prefix_vis in Hbp as Hb2. destruct Hb2 as [k' Hk']. rewrite Hk' in Hbp. eapply left_vis_bp; eauto. destruct b. apply IHHconv. - punfold Hbp. red in Hbp. cbn in *. inversion Hbp. subst; ddestruction; subst. - pclearbot. auto. + step in Hbp. cbn in *. inversion Hbp. subst; ddestruction; subst. + auto. Qed. -Lemma trace_prefix_div : forall E R S (b1 : itrace E R) (b2 : itrace E S), +Lemma trace_prefix_div E R S (b1 : itrace E R) (b2 : itrace E S) : all_infinite b1 -> trace_prefix b1 b2 -> euttNoRet b1 b2. Proof. - intros E R S. pcofix CIH. intros b1 b2 Hdiv Hbf. pfold. red. - punfold Hbf. red in Hbf. punfold Hdiv. red in Hdiv. induction Hbf. + revert b1 b2. icoinduction c CIH. intros b1 b2 Hdiv Hbf. + step in Hbf. step in Hdiv. induction Hbf. - inv Hdiv. - - constructor. inv Hdiv. pclearbot. right. apply CIH; auto. - - constructor; auto. apply IHHbf. pstep_reverse. inv Hdiv. pclearbot. auto. + - constructor. inv Hdiv. apply CIH; auto. + - constructor; auto. apply IHHbf. unstep. inv Hdiv. - constructor; auto. - constructor. intros []. - - pclearbot. constructor. intros. right. pclearbot. inv Hdiv. ddestruction; subst. - pclearbot. destruct v. apply CIH; auto. apply H1. + - constructor. intros. inv Hdiv. ddestruction; subst. + destruct v. apply CIH; auto. apply H1. Qed. Lemma trace_prefix_bind : forall E R S (b1 : itrace E R) (b2 : itrace E S), @@ -342,7 +344,10 @@ Proof. intros. destruct (classic_converge b1). - destruct H0 as [r Hconv]. eapply converge_trace_prefix in Hconv; eauto. apply trace_prefix_ind_bind. auto. - - eapply trace_prefix_div in H0 as Heuttdiv; eauto. + - (* question why does *) + (* eapply trace_prefix_div in H0. *) + (* do that ?*) + specialize (@trace_prefix_div E R S b1 b2 H0 H) as Heuttnoret. exists (fun _ => ITree.spin). apply euttNoRet_subrel. apply euttNoRet_sym. eapply noret_bind_nop with (f := (fun _ => ITree.spin) ) in H0 as H1. eapply euttNoRet_trans; try apply H1. apply euttNoRet_sym. auto. diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index af1b8867..b2bc57f6 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -28,15 +28,15 @@ Lemma eqit_bind_shalt_aux1: paco2 (secure_eqit_ Label priv RS b1 b2 l id) bot2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros E S2 S1 R1 R2 RR RS b1 b2 Label priv l k1 k2 A e k0 t2 SECCHECK SIZECHECK H0 t1 Heqot1. - pstep. red. unfold ITree.bind at 1, observe at 1. cbn. rewrite <- Heqot1. + pstep. unfold ITree.bind at 1, observe at 1. cbn. rewrite <- Heqot1. cbn. rewrite itree_eta' at 1. pstep_reverse. - generalize dependent t2. pcofix CIH. intros t2 Ht2. + generalize dependent t2. coinduction c CIH. intros t2 Ht2. pstep. red. - punfold Ht2. red in Ht2. + step in Ht2. red in Ht2. unfold ITree.bind at 1. unfold observe at 2. cbn in *. inv Ht2; ddestruction; subst; try contra_size; try contradiction; try rewrite <- H; cbn; - try unpriv_halt; right; eapply CIH; pclearbot; eauto; - try (pfold; rewrite H in H1; apply H1). + try unpriv_halt; right; eapply CIH; eauto; + try (step; rewrite H in H1; apply H1). contra_size. Qed. @@ -53,15 +53,15 @@ Lemma eqit_bind_shalt_aux2: paco2 (secure_eqit_ Label priv RS b1 b2 l id) bot2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros E S2 S1 R1 R2 RR RS b1 b2 Label priv l k1 k2 A e k0 t1 t2 SECCHECK SIZECHECK H0 Heqot1. - pstep. red. unfold ITree.bind at 2, observe at 2. cbn. rewrite <- Heqot1. + pstep. unfold ITree.bind at 2, observe at 2. cbn. rewrite <- Heqot1. cbn. rewrite itree_eta'. pstep_reverse. - generalize dependent t1. pcofix CIH. intros t1 Ht1. + generalize dependent t1. coinduction c CIH. intros t1 Ht1. pstep. red. - punfold Ht1. red in Ht1. + step in Ht1. red in Ht1. unfold ITree.bind at 1, observe at 1. cbn in *. inv Ht1; ddestruction; subst; try contra_size; try contradiction; cbn; - try unpriv_halt; try contra_size; try (right; eapply CIH; pclearbot; eauto). - pfold. rewrite H0 in H1. auto. apply H1. + try unpriv_halt; try contra_size; try (right; eapply CIH; eauto). + step. rewrite H0 in H1. auto. apply H1. Qed. Lemma secure_eqit_bind' : forall E R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) @@ -71,51 +71,51 @@ Lemma secure_eqit_bind' : forall E R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 eqit_secure Label priv RR b1 b2 l t1 t2 -> paco2 (secure_eqit_ Label priv RS b1 b2 l id) r (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. revert H0. revert t1 t2. pcofix CIH. intros t1 t2 Ht12. - punfold Ht12. red in Ht12. + intros. revert H0. revert t1 t2. coinduction c CIH. intros t1 t2 Ht12. + step in Ht12. red in Ht12. genobs t1 ot1. genobs t2 ot2. hinduction Ht12 before r; intros; eauto. - - pstep. red. unfold ITree.bind, observe. unfold observe. cbn. + - pstep. unfold ITree.bind, observe. unfold observe. cbn. rewrite <- Heqot1. rewrite <- Heqot2. pstep_reverse. eapply paco2_mon; eauto. - - pstep. red. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. constructor. right. eapply CIH. pclearbot. + - pstep. unfold ITree.bind, observe. unfold observe. cbn. + rewrite <- Heqot1. rewrite <- Heqot2. cbn. constructor. eapply CIH. auto. - - pstep. red. unfold ITree.bind at 1, observe at 1. cbn. + - pstep. unfold ITree.bind at 1, observe at 1. cbn. rewrite <- Heqot1. cbn. constructor; auto. pstep_reverse. - - pstep. red. unfold ITree.bind at 2, observe at 2. cbn. + - pstep. unfold ITree.bind at 2, observe at 2. cbn. rewrite <- Heqot2. cbn. constructor; auto. pstep_reverse. - - pstep. red. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. pclearbot. + - pstep. unfold ITree.bind, observe. unfold observe. cbn. + rewrite <- Heqot1. rewrite <- Heqot2. cbn. constructor; auto. right. eapply CIH; eauto. apply H. - - pstep. red. unfold ITree.bind, observe. unfold observe. cbn. + - pstep. unfold ITree.bind, observe. unfold observe. cbn. rewrite <- Heqot1. rewrite <- Heqot2. cbn. unpriv_co. - right. pclearbot. eapply CIH; apply H. - - pstep. red. unfold ITree.bind, observe. unfold observe. cbn. + right. eapply CIH; apply H. + - pstep. unfold ITree.bind, observe. unfold observe. cbn. rewrite <- Heqot1. rewrite <- Heqot2. cbn. unpriv_co. - right. pclearbot. eapply CIH; apply H. - - pstep. red. unfold ITree.bind, observe. unfold observe. cbn. + right. eapply CIH; apply H. + - pstep. unfold ITree.bind, observe. unfold observe. cbn. rewrite <- Heqot1. rewrite <- Heqot2. cbn. unpriv_co. - right. pclearbot. eapply CIH; apply H. - - pstep. red. unfold ITree.bind at 1, observe at 1. cbn. + right. eapply CIH; apply H. + - pstep. unfold ITree.bind at 1, observe at 1. cbn. rewrite <- Heqot1. cbn. unpriv_ind. pstep_reverse; try eapply H0; eauto. - - pstep. red. unfold ITree.bind at 2, observe at 2. cbn. + - pstep. unfold ITree.bind at 2, observe at 2. cbn. rewrite <- Heqot2. cbn. unpriv_ind. pstep_reverse; try eapply H0; eauto. - - pclearbot. + - eapply paco2_mon with (r := bot2); intros; try contradiction. - eapply eqit_bind_shalt_aux1; eauto. pfold. red. rewrite <- Heqot2. + eapply eqit_bind_shalt_aux1; eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. left. eauto. - - pclearbot. + - eapply paco2_mon with (r := bot2); intros; try contradiction. - eapply eqit_bind_shalt_aux2; eauto. pfold. red. cbn. rewrite <- Heqot1. + eapply eqit_bind_shalt_aux2; eauto. step. cbn. rewrite <- Heqot1. unpriv_halt. left. eauto. - - pclearbot. + - eapply paco2_mon with (r := bot2); intros; try contradiction. eapply eqit_bind_shalt_aux1 with (A := A); eauto. - pfold. red. rewrite <- Heqot2. cbn. unpriv_halt. - - pclearbot. + step. rewrite <- Heqot2. cbn. unpriv_halt. + - eapply paco2_mon with (r := bot2); intros; try contradiction. - eapply eqit_bind_shalt_aux2; eauto. pfold. red. cbn. rewrite <- Heqot1. + eapply eqit_bind_shalt_aux2; eauto. step. cbn. rewrite <- Heqot1. unpriv_halt. Qed. @@ -157,12 +157,12 @@ Lemma iter_bind_shalt_aux1: end)). Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r A e k1 t0 SECCHECK SIZECHECK H. - generalize dependent t0. pcofix CIH. intros t0 Ht0. - pstep. red. cbn. unfold observe. cbn. punfold Ht0. - red in Ht0. cbn in *. inv Ht0; inv_vis_secure; cbn; pclearbot; unpriv_halt; try contra_size; + generalize dependent t0. coinduction c CIH. intros t0 Ht0. + pstep. cbn. unfold observe. cbn. step in Ht0. + red in Ht0. cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; right; eauto. eapply CIH; eauto. - rewrite H in H1. pfold. red. auto. + rewrite H in H1. step. auto. Qed. Lemma iter_bind_shalt_aux2: @@ -192,12 +192,12 @@ Lemma iter_bind_shalt_aux2: end))). Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r A e t0 k2 SECCHECK SIZECHECK H. - generalize dependent t0. pcofix CIH. intros t0 Ht0. - pstep. red. cbn. unfold observe. cbn. punfold Ht0. - red in Ht0. cbn in *. inv Ht0; inv_vis_secure; cbn; pclearbot; unpriv_halt; try contra_size; + generalize dependent t0. coinduction c CIH. intros t0 Ht0. + pstep. cbn. unfold observe. cbn. step in Ht0. + red in Ht0. cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; try (right; eauto). eapply CIH; eauto. - rewrite H0 in H1. pfold. red. auto. + rewrite H0 in H1. step. auto. Qed. Lemma iter_bind_aux: @@ -223,12 +223,12 @@ Lemma iter_bind_aux: end)). Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r t1 t2 H CIH0. - generalize dependent t2. revert t1. pcofix CIH1. - intros t1 t2 Ht12. punfold Ht12. pstep. red. + generalize dependent t2. revert t1. coinduction c CIH1. + intros t1 t2 Ht12. step in Ht12. pstep. red. unfold observe. cbn. - hinduction Ht12 before r; intros; cbn; eauto; pclearbot; + hinduction Ht12 before r; intros; cbn; eauto; try (unpriv_co; fail); - try (constructor; auto; pclearbot; right; eapply CIH1; eauto with itree; fail). + try (constructor; auto; right; eapply CIH1; eauto with itree; fail). - inv H; cbn; eauto with itree. - unpriv_ind. unfold observe at 1. cbn. eapply H0; eauto with itree. - unpriv_ind. unfold observe at 3. cbn. eapply H0; eauto with itree. @@ -252,32 +252,32 @@ Proof. guclo eqit_bind_clo. *) (* look into the more general secure_eqitC closure, see if that is weakly compatible, *) - pcofix CIH. + coinduction c CIH. intros a1 a2 Ha. specialize (Hbody a1 a2 Ha) as Hbodya. - punfold Hbodya. red in Hbodya. pfold. red. + step in Hbodya. red in Hbodya. step. red. unfold observe. (* write lemmas for unfolding the observe of iter *) cbn. hinduction Hbodya before r; intros; cbn; auto with itree. - inv H; cbn; eauto with itree. - - cbn. pclearbot. constructor. + - cbn. constructor. left. eapply iter_bind_aux; eauto. - - constructor; auto. pclearbot. left. eapply iter_bind_aux; eauto. - - unpriv_co. pclearbot. left. eapply iter_bind_aux; eauto. - - unpriv_co. pclearbot. left. eapply iter_bind_aux; eauto. - - unpriv_co. pclearbot. left. eapply iter_bind_aux; eauto. + - constructor; auto. left. eapply iter_bind_aux; eauto. + - unpriv_co. left. eapply iter_bind_aux; eauto. + - unpriv_co. left. eapply iter_bind_aux; eauto. + - unpriv_co. left. eapply iter_bind_aux; eauto. - unpriv_ind. (* here is where it gets bad, I am pretty sure H0 does match up but could take very particular *) unfold observe at 1. cbn. eauto. - unpriv_ind. unfold observe at 3. cbn. eauto. - - pclearbot. unpriv_halt. + - unpriv_halt. left. eapply iter_bind_shalt_aux1; eauto. - - unpriv_halt. pclearbot. left. eapply iter_bind_shalt_aux2; eauto. - - unpriv_halt. pclearbot. specialize (H b). left. + - unpriv_halt. left. eapply iter_bind_shalt_aux2; eauto. + - unpriv_halt. specialize (H b). left. eapply iter_bind_shalt_aux1; eauto. - - unpriv_halt. pclearbot. specialize (H a). left. eapply iter_bind_shalt_aux2; eauto. + - unpriv_halt. specialize (H a). left. eapply iter_bind_shalt_aux2; eauto. Qed. Lemma secure_eqit_ret : forall (E : Type -> Type) Label priv l b1 b2 (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (r1 : R1) (r2 : R2), RR r1 r2 -> @eqit_secure E R1 R2 Label priv RR b1 b2 l (Ret r1) (Ret r2). Proof. - intros. pfold. constructor. auto. + intros. step. constructor. auto. Qed. diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 2f9ad6e0..8e6b99a0 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -20,11 +20,11 @@ Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : i eqit_secure Label priv RR true true l (Tau t1) t2 -> eqit_secure Label priv RR true true l t1 t2. Proof. intros E R1 R2 Label priv l RR. intros t1 t2 Hsec. pstep. red. - punfold Hsec. red in Hsec. cbn in *. remember (TauF t1) as x. - hinduction Hsec before priv; intros; inv Heqx; pclearbot; try inv CHECK; auto with itree. + step in Hsec. red in Hsec. cbn in *. remember (TauF t1) as x. + hinduction Hsec before priv; intros; inv Heqx; try inv CHECK; auto with itree. - constructor; auto. pstep_reverse. - unpriv_ind. pstep_reverse. - - punfold H. + - step in H. Qed. Lemma unpriv_e_eqit_secure : forall E A R1 R2 Label priv l RR (e : E A) (k : A -> itree E R1) @@ -34,15 +34,15 @@ Lemma unpriv_e_eqit_secure : forall E A R1 R2 Label priv l RR (e : E A) (k : A - forall a, eqit_secure Label priv RR true true l (k a) t. Proof. intros. generalize dependent t. rename H into Hunpriv. generalize dependent a. - intros. punfold H0. red in H0. cbn in *. pfold. red. + intros. step in H0. red in H0. cbn in *. step. red. remember (VisF e k) as x. genobs_clear t ot. hinduction H0 before l; intros; try inv Heqx; ddestruction; subst; try contradiction; try contra_size; auto. - constructor; auto. eapply IHsecure_eqitF; eauto. - - pclearbot. constructor; auto. pstep_reverse. - - unpriv_ind. pstep_reverse. pclearbot. apply H. + - constructor; auto. pstep_reverse. + - unpriv_ind. pstep_reverse. apply H. - unpriv_ind. eapply H0; eauto. - - pclearbot. rewrite itree_eta'. pstep_reverse. + - rewrite itree_eta'. pstep_reverse. Qed. @@ -63,18 +63,18 @@ Lemma eses_aux1: forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) (VisF e k). Proof. intros E R2 R1 Label priv l RR r m1 m2 REL CIH X e k Hsec SECCHECK. - remember (VisF e k) as x. punfold REL. red in REL. rewrite Heqx. + remember (VisF e k) as x. step in REL. red in REL. rewrite Heqx. hinduction Hsec before r; intros; try inv Heqx; ddestruction; subst; try contradiction; auto. - eapply IHHsec; eauto. - pstep_reverse. setoid_rewrite <- tau_eutt at 1. pfold. auto. - - pclearbot. remember (VisF e0 k1) as y. + pstep_reverse. setoid_rewrite <- tau_eutt at 1. step. auto. + - remember (VisF e0 k1) as y. hinduction REL before r; intros; try inv Heqy; ddestruction; subst; auto. + constructor; auto. right. eapply CIH; eauto; try apply H. - pclearbot. apply REL. + apply REL. + constructor; eauto. - rewrite H2. remember (VisF e k1) as y. hinduction REL before r; intros; try inv Heqy; ddestruction; subst; auto. - + pclearbot. rewrite <- H2. unpriv_ind. rewrite H2. eapply H0; eauto. + + rewrite <- H2. unpriv_ind. rewrite H2. eapply H0; eauto. Unshelve. all: auto. pstep_reverse. + constructor; auto. eapply IHREL; eauto. Qed. @@ -92,16 +92,16 @@ forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) (RetF r0). Proof. intros E R2 R1 Label priv l RR r m1 m2 r0 Heutt Hsec. - punfold Heutt. red in Heutt. remember (RetF r0) as x. + step in Heutt. red in Heutt. remember (RetF r0) as x. rewrite Heqx. hinduction Hsec before r; intros; inv Heqx; auto with itree. - remember (RetF r1) as y. hinduction Heutt before r; intros; inv Heqy; auto with itree. constructor; auto. eapply IHHeutt; eauto. - - eapply IHHsec; eauto. pstep_reverse. rewrite <- tau_eutt at 1. pfold. auto. + - eapply IHHsec; eauto. pstep_reverse. rewrite <- tau_eutt at 1. step. auto. - remember (VisF e k1) as y. hinduction Heutt before r; intros; inv Heqy; ddestruction; subst; auto. + unpriv_ind. rewrite H2. eapply H0; eauto. - pclearbot. pstep_reverse. + pstep_reverse. + constructor; auto. eapply IHHeutt; eauto. Qed. @@ -112,9 +112,9 @@ Lemma eutt_secure_eqit_secure : forall E Label priv l R1 R2 RR (t1 t1': itree E t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> eqit_secure Label priv RR true true l t1' t2. Proof. - intros E Label priv l R1 R2 RR. pcofix CIH. intros t1 t1' t2 Heutt Hsec. - punfold Heutt. red in Heutt. punfold Hsec. red in Hsec. - pfold. red. hinduction Heutt before r; intros; subst; auto with itree. + intros E Label priv l R1 R2 RR. coinduction c CIH. intros t1 t1' t2 Heutt Hsec. + step in Heutt. red in Heutt. step in Hsec. red in Hsec. + step. hinduction Heutt before r; intros; subst; auto with itree. - remember (RetF r2) as x. hinduction Hsec before r; intros; try inv Heqx; auto with itree. + constructor; auto. eapply IHHsec; eauto. + unpriv_ind. eapply H0; eauto. @@ -123,74 +123,74 @@ Proof. { destruct ot2; eauto; right; repeat intro; discriminate. } (* because of the extra inductive cases this is not enough *) destruct Ht2 as [ [m3 Hm3] | Ht2 ]. - + subst. pclearbot. constructor. right. eapply CIH; eauto. + + subst. constructor. right. eapply CIH; eauto. apply tau_eqit_secure. apply eqit_secure_sym. apply tau_eqit_secure. - apply eqit_secure_sym. pfold. auto. + apply eqit_secure_sym. step. auto. + destruct ot2; try (exfalso; eapply Ht2; eauto; fail). - * pclearbot. rewrite itree_eta' at 1. eapply eses_aux2 with (m1 := Tau m1); eauto. + * rewrite itree_eta' at 1. eapply eses_aux2 with (m1 := Tau m1); eauto. do 2 rewrite tau_eutt. auto. * assert (leq (priv _ e) l \/ ~ leq (priv _ e) l). { apply classic. } destruct H as [SECCHECK | SECCHECK]; destruct ( classic_empty X ). - ++ pclearbot. rewrite itree_eta' at 1. apply eses_aux1 with (m1 := Tau m1); auto. + ++ rewrite itree_eta' at 1. apply eses_aux1 with (m1 := Tau m1); auto. do 2 rewrite tau_eutt. auto. - ++ pclearbot. rewrite itree_eta' at 1. apply eses_aux1 with (m1 := Tau m1); auto. + ++ rewrite itree_eta' at 1. apply eses_aux1 with (m1 := Tau m1); auto. do 2 rewrite tau_eutt. auto. - ++ unpriv_halt. pclearbot. right. eapply CIH; eauto. - apply tau_eqit_secure. pfold. auto. - ++ pclearbot. - unpriv_co. pclearbot. right. eapply CIH. apply REL. + ++ unpriv_halt. right. eapply CIH; eauto. + apply tau_eqit_secure. step. auto. + ++ + unpriv_co. eapply CIH. apply REL. apply tau_eqit_secure. apply eqit_secure_sym. eapply unpriv_e_eqit_secure; eauto. - apply eqit_secure_sym. pfold. auto. - - pclearbot. rewrite itree_eta' at 1. pstep_reverse. + apply eqit_secure_sym. step. auto. + - rewrite itree_eta' at 1. pstep_reverse. assert (eqit_secure Label priv RR true true l (Vis e k1) t2 ). - { pfold; auto. } + { step; auto. } clear Hsec. rename H into Hsec. destruct (classic (leq (priv _ e) l ) ). - + pstep. red. punfold Hsec. red in Hsec. + + pstep. step in Hsec. red in Hsec. cbn in *. remember (VisF e k1) as x. hinduction Hsec before r; intros; inv Heqx; ddestruction; subst; try contradiction; auto. * constructor; auto. eapply IHHsec; eauto. - * constructor; auto; intros. right. eapply CIH; try apply REL. pclearbot. apply H. + * constructor; auto; intros. right. eapply CIH; try apply REL. apply H. * rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. + destruct (classic_empty u). - * pfold. red. cbn. punfold Hsec. red in Hsec. cbn in *. + * step. cbn. step in Hsec. red in Hsec. cbn in *. destruct (observe t2). -- inv Hsec; contra_size. -- unpriv_halt. right. apply CIH with (t1 := Vis e k1). - ++ pfold. constructor. left. auto. - ++ inv Hsec; ddestruction; subst; try contradiction; try contra_size. pfold. auto. - pclearbot. auto. + ++ step. constructor. left. auto. + ++ inv Hsec; ddestruction; subst; try contradiction; try contra_size. step. auto. + auto. -- inv Hsec; ddestruction; subst; try contradiction; try contra_size. ++ unpriv_halt. right. apply CIH with (t1 := Vis e k1). - { pfold. constructor. red. auto. } - { rewrite H1 in H3. pfold. apply H3. } - ++ pclearbot. unpriv_halt. right. apply CIH with (t1 := Vis e k1). - { pfold. constructor. red. auto. } + { step. constructor. red. auto. } + { rewrite H1 in H3. step. apply H3. } + ++ unpriv_halt. right. apply CIH with (t1 := Vis e k1). + { step. constructor. red. auto. } { apply H2. } - ++ pclearbot. unpriv_halt. contra_size. - * pfold. red. cbn. punfold Hsec. red in Hsec. cbn in *. + ++ unpriv_halt. contra_size. + * step. cbn. step in Hsec. red in Hsec. cbn in *. destruct (observe t2). ++ rewrite itree_eta' at 1. rewrite itree_eta' in Hsec at 1. - eapply eses_aux2; eauto. pfold. constructor. red. auto. + eapply eses_aux2; eauto. step. constructor. red. auto. ++ unpriv_co. right. apply CIH with (t1 := k1 a); try apply REL. eapply unpriv_e_eqit_secure; eauto. apply eqit_secure_sym. - apply tau_eqit_secure. apply eqit_secure_sym. pfold. auto. + apply tau_eqit_secure. apply eqit_secure_sym. step. auto. ++ destruct (classic (leq (priv _ e0) l )). ** rewrite itree_eta' at 1. eapply eses_aux1 with (m1 := Vis e k1); eauto. - pfold. constructor. red. auto. + step. constructor. red. auto. ** destruct (classic_empty X). --- unpriv_halt. right. eapply CIH; try apply REL. - eapply unpriv_e_eqit_secure; eauto. pfold. auto. + eapply unpriv_e_eqit_secure; eauto. step. auto. --- unpriv_co. right. eapply CIH; try apply REL. (* eapply unpriv_e_eqit_secure; eauto. *) do 2 (eapply unpriv_e_eqit_secure; eauto; apply eqit_secure_sym). - pfold. auto. + step. auto. - eapply IHHeutt; eauto. pstep_reverse. - apply tau_eqit_secure. pfold. auto. + apply tau_eqit_secure. step. auto. Qed. @@ -202,30 +202,30 @@ Lemma eqit_secure_TauLR : eqit_secure Label priv RR2 b1 b2 l t0 t4. Proof. intros E R3 Label priv l b1 b2 R2 RR2. - intros. punfold H. red in H. cbn in *. pstep. red. + intros. step in H. red in H. cbn in *. pstep. red. remember (TauF t0) as x. remember (TauF t4) as y. hinduction H before b2; intros; try discriminate. - - inv Heqx; inv Heqy. pclearbot. pstep_reverse. + - inv Heqx; inv Heqy. pstep_reverse. - inv Heqx. inv H; eauto with itree. - + pclearbot. unpriv_ind. pstep_reverse. + + unpriv_ind. pstep_reverse. + unpriv_ind. rewrite H1 in H2. specialize (H2 a). genobs (k1 a) ok1. clear Heqok1. remember (TauF t4) as y. hinduction H2 before b2; intros; inv Heqy; try inv CHECK; eauto with itree. - * pclearbot. constructor; auto; pstep_reverse. - * pclearbot. unpriv_ind. pstep_reverse. - * pclearbot. punfold H. - + pclearbot. punfold H2. + * constructor; auto; pstep_reverse. + * unpriv_ind. pstep_reverse. + * step in H. + + step in H2. - inv Heqy. inv H; eauto with itree. - + pclearbot. unpriv_ind. pstep_reverse. + + unpriv_ind. pstep_reverse. + rewrite H0 in H2. unpriv_ind. specialize (H2 a). genobs (k2 a) ok2. clear Heqok2. remember (TauF t0) as y. hinduction H2 before b2; intros; inv Heqy; try inv CHECK; eauto with itree. - * pclearbot. constructor; auto. pstep_reverse. - * unpriv_ind. pclearbot. pstep_reverse. - * pclearbot. punfold H. - + pclearbot. punfold H2. + * constructor; auto. pstep_reverse. + * unpriv_ind. pstep_reverse. + * step in H. + + step in H2. Qed. Lemma eqit_secure_TauLVisR: @@ -237,25 +237,25 @@ Lemma eqit_secure_TauLVisR: eqit_secure Label priv RR2 b1 b2 l t3 (k a). Proof. intros E R3 Label priv l b1 b2 R2 RR t3 A e k a He Hsec. - punfold Hsec. red in Hsec. cbn in *. + step in Hsec. red in Hsec. cbn in *. remember (TauF t3) as x. remember (VisF e k) as y. hinduction Hsec before b2; intros; try discriminate. - inv Heqx. inv CHECK. - remember (VisF e k) as y. pfold. red. clear IHHsec. + remember (VisF e k) as y. step. clear IHHsec. hinduction Hsec before b2; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. pclearbot. pstep_reverse. - + unpriv_ind. pclearbot. pstep_reverse. - + pclearbot. specialize (H a). punfold H. - - inv Heqx. inv Heqy. ddestruction; subst. pclearbot. apply H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + specialize (H a). step in H. + - inv Heqx. inv Heqy. ddestruction; subst. apply H. - inv Heqx. inv Heqy. ddestruction; subst. rewrite H2 in H. clear H0. clear H2 t1. remember (TauF t3) as x. - pfold. red. specialize (H a). + step. specialize (H a). hinduction H before b2; intros; inv Heqx; try contra_size; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. punfold H. - - pclearbot. inv Heqx. inv Heqy. ddestruction; subst. contra_size. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. + - inv Heqx. inv Heqy. ddestruction; subst. contra_size. Qed. Lemma eqit_secure_TauRVisL: @@ -267,24 +267,24 @@ Lemma eqit_secure_TauRVisL: eqit_secure Label priv RR2 b1 b2 l (k a) t3. Proof. intros E R3 Label priv l b1 b2 R2 RR t3 A e k a He Hsec. - punfold Hsec. red in Hsec. cbn in *. + step in Hsec. red in Hsec. cbn in *. remember (TauF t3) as x. remember (VisF e k) as y. hinduction Hsec before b2; intros; try discriminate. - - inv Heqx. inv CHECK. remember (VisF e k) as y. pfold. red. clear IHHsec. + - inv Heqx. inv CHECK. remember (VisF e k) as y. step. clear IHHsec. hinduction Hsec before b1; intros; inv Heqy; ddestruction; subst; try contradiction; eauto with itree. - + constructor; auto with itree. pclearbot. pstep_reverse. - + unpriv_ind. pclearbot. pstep_reverse. + + constructor; auto with itree. pstep_reverse. + + unpriv_ind. pstep_reverse. + contra_size. + contra_size. - + pclearbot. specialize (H a). punfold H. - - inv Heqx. inv Heqy. ddestruction; subst. pclearbot. apply H. - - inv Heqx. inv Heqy. ddestruction; subst. pclearbot. rewrite H2 in H. inv CHECK. - specialize (H a). pfold. red. remember (TauF t3) as y. + + specialize (H a). step in H. + - inv Heqx. inv Heqy. ddestruction; subst. apply H. + - inv Heqx. inv Heqy. ddestruction; subst. rewrite H2 in H. inv CHECK. + specialize (H a). step. remember (TauF t3) as y. hinduction H before b2; intros; inv Heqy; try contra_size; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. punfold H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. - inv Heqx. inv Heqy. ddestruction; subst. contra_size. Qed. @@ -300,29 +300,29 @@ Lemma eqit_secure_VisLR: eqit_secure Label priv RR2 b1 b2 l (k2 a) (k a0). Proof. intros E R3 Label priv l b1 b2 R2 RR2 A e k2 SECCHECK X e0 k a H0 a0 H1. - pfold. red. - punfold H1. red in H1. cbn in *. remember (VisF e k2) as x. + step. red. + step in H1. red in H1. cbn in *. remember (VisF e k2) as x. remember (VisF e0 k) as y. hinduction H1 before l; intros; try discriminate. - inv Heqx. inv Heqy. ddestruction; subst. contradiction. - - pclearbot. inv Heqx. inv Heqy. ddestruction; subst. pstep_reverse. + - inv Heqx. inv Heqy. ddestruction; subst. pstep_reverse. - inv Heqx. ddestruction; subst. inv CHECK. clear H0. specialize (H a). rewrite Heqy in H. clear Heqy. remember (VisF e1 k) as y. hinduction H before l; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + unpriv_ind. pclearbot. pstep_reverse. - + pclearbot. specialize (H a0). punfold H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + specialize (H a0). step in H. - inv Heqy. ddestruction; subst. inv CHECK. clear H0. rewrite Heqx in H. specialize (H a0). remember (VisF e0 k0) as y. hinduction H before b1; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. specialize (H a). punfold H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + specialize (H a). step in H. - inv Heqx; inv Heqy; ddestruction; subst. contra_size. - inv Heqx; inv Heqy; ddestruction; subst. contra_size. Qed. @@ -340,7 +340,7 @@ Lemma eqit_secure_private_VisLR: eqit_secure Label priv RR2 b1 b2 l (k2 a) (k a0)) -> eqit_secure Label priv RR2 b1 b2 l (Vis e k2) (Vis e0 k) . Proof. - intros. pfold. red. cbn. unpriv_co. left. apply H3. + intros. step. cbn. unpriv_co. left. apply H3. Qed. Lemma eqit_secure_private_VisL: @@ -353,7 +353,7 @@ Lemma eqit_secure_private_VisL: eqit_secure Label priv RR2 true b2 l (k2 a) t) -> eqit_secure Label priv RR2 true b2 l (Vis e k2) t . Proof. - intros. pfold. red. cbn. unpriv_ind. pstep_reverse. apply H1. + intros. step. cbn. unpriv_ind. pstep_reverse. apply H1. Qed. Lemma eqit_secure_private_VisR: @@ -366,7 +366,7 @@ Lemma eqit_secure_private_VisR: eqit_secure Label priv RR2 b1 true l t (k2 a)) -> eqit_secure Label priv RR2 b1 true l t (Vis e k2). Proof. - intros. pfold. red. cbn. unpriv_ind. pstep_reverse. apply H1. + intros. step. cbn. unpriv_ind. pstep_reverse. apply H1. Qed. Lemma eqit_secure_public_Vis : forall (E : Type -> Type) (R1 R2 : Type) (Label : Preorder) (priv : forall x : Type, E x -> L) @@ -377,8 +377,8 @@ Lemma eqit_secure_public_Vis : forall (E : Type -> Type) (R1 R2 : Type) (Label forall a, eqit_secure Label priv RR b1 b2 l (k1 a) (k2 a)). Proof. split; intros. - - pinversion H0; ddestruction; subst; try contradiction; apply H2. - - pfold. constructor; auto. left. apply H0. + - sinv H0; ddestruction; subst; try contradiction; apply H2. + - step. constructor; auto. left. apply H0. Qed. Lemma eqit_secure_trans_aux1: @@ -396,7 +396,7 @@ Lemma eqit_secure_trans_aux1: (observe t) (RetF r0). Proof. intros E R3 R1 Label priv l b2 R2 RR1 RR2 r r0 t4 Ht23 t H. - punfold H. red in H. + step in H. red in H. remember (RetF r0) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; auto. - remember (RetF r1) as y. @@ -405,17 +405,17 @@ Proof. - eapply IHHt23; eauto. remember (TauF t1) as y. hinduction H before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. punfold H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. - assert (Hne : nonempty A). { eauto. } (* add the condition that lets us assume this*) inv Hne. eapply (H0 a); eauto. remember (VisF e k1) as y. hinduction H1 before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. rewrite itree_eta' at 1. pstep_reverse. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + rewrite itree_eta' at 1. pstep_reverse. Qed. Lemma eqit_secure_trans_aux2: @@ -437,18 +437,18 @@ Lemma eqit_secure_trans_aux2: (observe t) (VisF e0 k). Proof. intros E R3 R1 Label priv l b2 R2 RR1 RR2 r X e0 k t4 He0 Ht23 CIH0 t Ht. - punfold Ht. red in Ht. remember (VisF e0 k) as x. + step in Ht. red in Ht. remember (VisF e0 k) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; ddestruction; subst; try contradiction; eauto. - eapply IHHt23; eauto. clear IHHt23. remember (TauF t1) as y. hinduction Ht before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. punfold H. - - pclearbot. remember (VisF e0 k1) as y. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. + - remember (VisF e0 k1) as y. hinduction Ht before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; eauto with itree. - + pclearbot. constructor; auto. right. eapply CIH0. apply H. + + constructor; auto. right. eapply CIH0. apply H. apply H0. + rewrite itree_eta'. unpriv_ind. eapply H0; eauto. - assert (nonempty A); eauto. inv H1. eapply H0; eauto. @@ -456,9 +456,9 @@ Proof. remember (VisF e k1) as y. hinduction Ht before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. rewrite itree_eta' at 1. pstep_reverse. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + rewrite itree_eta' at 1. pstep_reverse. Qed. @@ -473,59 +473,59 @@ Lemma secret_halt_trans_1 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR1 Proof. intros E Label priv l b1 b2 R1 R2 R3 A RR1 RR2 t1 e k t3 He HA. generalize dependent t3. generalize dependent t1. - pcofix CIH. intros t1 t3 Ht1 Ht3. - pfold. red. punfold Ht1. red in Ht1. punfold Ht3. red in Ht3. + coinduction c CIH. intros t1 t3 Ht1 Ht3. + step. step in Ht1. red in Ht1. step in Ht3. red in Ht3. cbn in *. remember (VisF e k) as x. hinduction Ht1 before r; intros; inv Heqx; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - - pclearbot. inv Ht3; ddestruction; subst; try contradiction; try contra_size. - + constructor. right. apply CIH; auto. pfold. auto. - + unpriv_co; auto. right. apply CIH; auto. pfold. rewrite H0 in H2. apply H2. - + pclearbot. constructor. right. apply CIH; auto. - + pclearbot. destruct (classic_empty B). - * unpriv_halt. right. apply CIH; auto with itree. pfold. + - inv Ht3; ddestruction; subst; try contradiction; try contra_size. + + constructor. right. apply CIH; auto. step. auto. + + unpriv_co; auto. right. apply CIH; auto. step. rewrite H0 in H2. apply H2. + + constructor. right. apply CIH; auto. + + destruct (classic_empty B). + * unpriv_halt. right. apply CIH; auto with itree. step. red. cbn. unpriv_halt. * unpriv_co. right. apply CIH; auto. apply H1. - + pclearbot. unpriv_halt. right. apply CIH; auto. pfold. + + unpriv_halt. right. apply CIH; auto. step. red. cbn. unpriv_halt. contra_size. - - pclearbot. inv Ht3; ddestruction; subst; try contradiction; try contra_size. + - inv Ht3; ddestruction; subst; try contradiction; try contra_size. + unpriv_halt. right. apply CIH; auto. - * pfold. red. cbn. unpriv_halt. - * pfold. auto. + * step. cbn. unpriv_halt. + * step. auto. + unpriv_halt. right. apply CIH; auto. - * pfold. red. cbn. unpriv_halt. - * pfold. auto. rewrite H0 in H2. apply H2. - + pclearbot. unpriv_halt. right. apply CIH; auto. - pfold. red. cbn. unpriv_halt. - + pclearbot. unpriv_halt. right. apply CIH. - * pfold. red. cbn. unpriv_halt. + * step. cbn. unpriv_halt. + * step. auto. rewrite H0 in H2. apply H2. + + unpriv_halt. right. apply CIH; auto. + step. cbn. unpriv_halt. + + unpriv_halt. right. apply CIH. + * step. cbn. unpriv_halt. * apply H1. + unpriv_halt. contra_size. - - pclearbot. inv Ht3; ddestruction; subst; try contradiction; try contra_size; + - inv Ht3; ddestruction; subst; try contradiction; try contra_size; destruct (classic_empty A0). + unpriv_halt. right. apply CIH; auto. - * pfold. red. cbn. unpriv_halt. contra_size. - * pfold. auto. + * step. cbn. unpriv_halt. contra_size. + * step. auto. + unpriv_co. right. apply CIH; auto; try apply H. - pfold. auto. + step. auto. + unpriv_halt. right. apply CIH; auto. - * pfold. red. cbn. unpriv_halt. contra_size. - * pfold. rewrite H0 in H2. apply H2. + * step. cbn. unpriv_halt. contra_size. + * step. rewrite H0 in H2. apply H2. + unpriv_co. right. apply CIH. apply H. rewrite H0 in H2. - pfold. apply H2. - + pclearbot. unpriv_halt. right. apply CIH; auto. pfold. + step. apply H2. + + unpriv_halt. right. apply CIH; auto. step. red. cbn. unpriv_halt. contra_size. - + pclearbot. unpriv_co. right. apply CIH; auto. apply H. - + unpriv_halt. pclearbot. right. apply CIH; try apply H1. - pfold. red. cbn. unpriv_halt. contra_size. - + pclearbot. destruct (classic_empty B). + + unpriv_co. right. apply CIH; auto. apply H. + + unpriv_halt. right. apply CIH; try apply H1. + step. cbn. unpriv_halt. contra_size. + + destruct (classic_empty B). * unpriv_halt. right. apply CIH; auto. apply H. - pfold. red. cbn. unpriv_halt. + step. cbn. unpriv_halt. * unpriv_co. right. apply CIH; eauto. apply H. apply H1. - + pclearbot. unpriv_halt. contra_size. - + pclearbot. unpriv_halt. right. apply CIH; auto. apply H. - pfold. red. cbn. unpriv_halt. contra_size. + + unpriv_halt. contra_size. + + unpriv_halt. right. apply CIH; auto. apply H. + step. cbn. unpriv_halt. contra_size. Qed. Lemma secret_halt_trans_2 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR1 : R1 -> R2 -> Prop) @@ -538,41 +538,41 @@ Lemma secret_halt_trans_2 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR Proof. intros E Label priv l b1 b2 R1 R2 R3 A RR1 RR2 e k t2 t3 He HA. generalize dependent t3. generalize dependent t2. - pcofix CIH. intros t2 t3 Ht2 Ht23. pfold. - red. cbn. punfold Ht2. punfold Ht23. red in Ht2. red in Ht23. + coinduction c CIH. intros t2 t3 Ht2 Ht23. step. + red. cbn. step in Ht2. step in Ht23. red in Ht2. red in Ht23. cbn in *. hinduction Ht23 before r; intros; eauto with itree. - inv Ht2. ddestruction; subst. contra_size. - - unpriv_halt. right. pclearbot. eapply CIH; eauto. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. - pfold. auto. + - unpriv_halt. right. eapply CIH; eauto. + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + step. auto. - eapply IHHt23; eauto. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. - punfold H0. - - pclearbot. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. - - unpriv_halt. pclearbot. inv SIZECHECK. right. eapply CIH; try apply H. + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + step in H0. + - + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + - unpriv_halt. inv SIZECHECK. right. eapply CIH; try apply H. Unshelve. all : auto. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. - + pfold. apply H2. + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + + step. apply H2. + apply H1. - - pclearbot. unpriv_halt. right. eapply CIH; try apply H. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. - pfold. auto. - - pclearbot. unpriv_halt. inv SIZECHECK1. inv SIZECHECK2. right. eapply CIH; try apply H. + - unpriv_halt. right. eapply CIH; try apply H. + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + step. auto. + - unpriv_halt. inv SIZECHECK1. inv SIZECHECK2. right. eapply CIH; try apply H. Unshelve. all : auto. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. - + pfold. apply H2. + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + + step. apply H2. + apply H1. - inv SIZECHECK. eapply H0; eauto. Unshelve. all : auto. - inv Ht2; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto. + inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. rewrite itree_eta' at 1. pstep_reverse. - - unpriv_halt. right. eapply CIH; eauto. pfold. apply Ht2. - pfold. apply H. - - pclearbot. unpriv_halt. right. eapply CIH; eauto. pfold. auto. + - unpriv_halt. right. eapply CIH; eauto. step. apply Ht2. + step. apply H. + - unpriv_halt. right. eapply CIH; eauto. step. auto. - unpriv_halt. contra_size. - - unpriv_halt. right. pclearbot. eapply CIH with (t2 := Vis e1 k1); eauto. - + pfold. auto. + - unpriv_halt. right. eapply CIH with (t2 := Vis e1 k1); eauto. + + step. auto. + apply H. - unpriv_halt. contra_size. Qed. @@ -584,14 +584,14 @@ Lemma eqit_secure_RR_imp : forall E b1 b2 R1 R2 (RR1 RR2 : R1 -> R2 -> Prop) Lab eqit_secure Label priv RR2 b1 b2 l t1 t2. Proof. intros. generalize dependent t2. revert t1. - pcofix CIH. intros t1 t2 Ht12. pfold. red. - punfold Ht12. red in Ht12. + coinduction c CIH. intros t1 t2 Ht12. step. red. + step in Ht12. red in Ht12. hinduction Ht12 before r; intros; eauto; - try (pclearbot; constructor; auto; right; eapply CIH; eauto; fail); - try (pclearbot; unpriv_co; right; eapply CIH; eauto; apply H0; fail). - pclearbot. constructor; auto. right. eapply CIH; eauto. apply H0. - - pclearbot. unpriv_halt. right. eapply CIH; eauto. apply H0. - - pclearbot. unpriv_halt. right. eapply CIH; eauto. apply H0. + try ( constructor; auto; right; eapply CIH; eauto; fail); + try ( unpriv_co; right; eapply CIH; eauto; apply H0; fail). + constructor; auto. right. eapply CIH; eauto. apply H0. + - unpriv_halt. right. eapply CIH; eauto. apply H0. + - unpriv_halt. right. eapply CIH; eauto. apply H0. Qed. Lemma secret_halt_trans_3 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR1 : R1 -> R2 -> Prop) @@ -615,24 +615,24 @@ Lemma eqit_secure_trans : forall E Label priv l b1 b2 (R1 R2 R3 : Type) (RR1 : R eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. intros E Label priv l b1 b2 R1 R2 R3 RR1 RR2. - pcofix CIH0. intros t1 t2 t3 Ht12 Ht23. - punfold Ht12. red in Ht12. punfold Ht23. red in Ht23. pfold. red. + coinduction c CIH0. intros t1 t2 t3 Ht12 Ht23. + step in Ht12. red in Ht12. step in Ht23. red in Ht23. step. red. hinduction Ht12 before r; intros; try inv CHECK; auto with itree. - remember (RetF r2) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; eauto with itree. rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - - pclearbot. genobs t4 ot4. + - genobs t4 ot4. assert ( (exists t5, ot4 = TauF t5) \/ (forall t5, ot4 <> TauF t5) ). { destruct ot4; eauto; right; intros; discriminate. } destruct H0 as [ [t5 Ht4] | Ht4]. + subst. rewrite Ht4. rewrite Ht4 in Ht23. constructor. - right. eapply CIH0; eauto. eapply eqit_secure_TauLR. pfold. + right. eapply CIH0; eauto. eapply eqit_secure_TauLR. step. auto. + destruct ot4; try (exfalso; eapply Ht4; eauto; fail ). * inv Ht23. inv CHECK. rewrite itree_eta' at 1. assert (eqit_secure Label priv (rcompose RR1 RR2) true b2 l (Tau t0) (Ret r0) ). - { pfold. red. cbn. rewrite itree_eta' at 1. eapply eqit_secure_trans_aux1; eauto. - pfold. red. constructor; auto. pstep_reverse. } + { step. cbn. rewrite itree_eta' at 1. eapply eqit_secure_trans_aux1; eauto. + step. constructor; auto. pstep_reverse. } rewrite itree_eta'. pstep_reverse. eapply paco2_mon; eauto. intros; contradiction. * destruct (classic (leq (priv _ e) l ) ). @@ -643,26 +643,26 @@ Proof. pstep_reverse. eapply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_3 with (t2 := Tau t3); eauto. - ** pfold. constructor. left. auto. - ** pfold. auto. + ** step. constructor. left. auto. + ** step. auto. ++ unpriv_co. right. eapply CIH0; eauto. assert (eqit_secure Label priv RR2 b1 b2 l (Tau t3) (Vis e k)). - pfold. auto. eapply eqit_secure_TauLVisR; eauto. + step. auto. eapply eqit_secure_TauLVisR; eauto. - apply IHHt12; auto. remember (TauF t0) as y. hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + pclearbot. constructor; auto. pstep_reverse. - + pclearbot. unpriv_ind. pstep_reverse. - + pclearbot. punfold H. - - pclearbot. remember (VisF e k2) as x. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. + - remember (VisF e k2) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; ddestruction; subst; try contradiction; eauto with itree. - + pclearbot. constructor; auto. intros. right. eapply CIH0; eauto; try apply H0. + + constructor; auto. intros. right. eapply CIH0; eauto; try apply H0. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - - pclearbot. remember (TauF t0) as x. + - remember (TauF t0) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; auto. - + pclearbot. unpriv_co. right. eapply CIH0; try apply H0. + + unpriv_co. right. eapply CIH0; try apply H0. auto. + destruct ot2. * clear IHHt23. rewrite itree_eta'. unpriv_ind. @@ -670,11 +670,11 @@ Proof. clear Heqt a k1. cbn. eapply eqit_secure_trans_aux1; eauto. * unpriv_co. right. eapply CIH0; try apply H. clear IHHt23. remember (TauF t) as y. - pfold. red. + step. red. hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; eauto with itree. - -- pclearbot. constructor; auto. pstep_reverse. - -- pclearbot. unpriv_ind. pstep_reverse. - -- pclearbot. punfold H. + -- constructor; auto. pstep_reverse. + -- unpriv_ind. pstep_reverse. + -- step in H. * destruct (classic (leq (priv _ e0) l ) ). -- rewrite itree_eta'. unpriv_ind. cbn. clear IHHt23. remember (k1 a) as t. specialize (H a). setoid_rewrite <- Heqt in H. @@ -683,19 +683,19 @@ Proof. ++ rewrite itree_eta'. unpriv_ind. pstep_reverse. apply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_3; eauto. apply H. - pfold. auto. + step. auto. ++ unpriv_co. right. eapply CIH0. apply H. - clear IHHt23. pstep. red. remember (VisF e0 k) as y. + clear IHHt23. pstep. remember (VisF e0 k) as y. hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** pclearbot. constructor; auto. pstep_reverse. - ** unpriv_ind. pclearbot. pstep_reverse. - ** pclearbot. rewrite itree_eta' at 1. pstep_reverse. + ** constructor; auto. pstep_reverse. + ** unpriv_ind. pstep_reverse. + ** rewrite itree_eta' at 1. pstep_reverse. + constructor; auto. eapply IHHt23; eauto. - + pclearbot. unpriv_co. right. eapply CIH0; try apply H0. apply H. + + unpriv_co. right. eapply CIH0; try apply H0. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - + unpriv_halt. right. pclearbot. eapply CIH0; eauto. apply H0. - - pclearbot. + + unpriv_halt. right. eapply CIH0; eauto. apply H0. + - genobs_clear t3 ot3. assert (Hne : nonempty A); eauto. inv Hne. assert ( (exists t4, ot3 = TauF t4) \/ (forall t4, ot3 <> TauF t4) ). @@ -703,7 +703,7 @@ Proof. destruct H0 as [ [t4 Ht3] | Ht3]. + subst. constructor. right. eapply CIH0; try apply H. Unshelve. all: auto. - eapply eqit_secure_TauRVisL; eauto. pfold. auto. + eapply eqit_secure_TauRVisL; eauto. step. auto. (* should be fine but new lemma, also shelved goal *) + destruct ot3; try (exfalso; eapply Ht4; eauto; fail ). @@ -711,7 +711,7 @@ Proof. constructor; auto. rewrite H4. eapply eqit_secure_trans_aux1; eauto. rewrite <- H4. apply H1. Unshelve. auto. (* shelved goal*) * constructor. right. eapply CIH0; try apply H. - eapply eqit_secure_TauRVisL; eauto. pfold. auto. + eapply eqit_secure_TauRVisL; eauto. step. auto. (* same goal as last admit *) * destruct (classic (leq (priv _ e0) l ) ). -- inv Ht23; try inv CHECK; ddestruction; subst; try contradiction. @@ -721,23 +721,23 @@ Proof. ++ rewrite itree_eta'. rewrite itree_eta' at 1. pstep_reverse. eapply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_3 with (t2 := Vis e k2); eauto. - ** pfold. red. cbn. unpriv_co. - ** pfold. auto. + ** step. cbn. unpriv_co. + ** step. auto. ++ unpriv_co. right. eapply CIH0; try apply H. Unshelve. all : auto. assert (eqit_secure Label priv RR2 b1 b2 l (Vis e k2) (Vis e0 k) ). - pfold. auto. eapply eqit_secure_VisLR; eauto. - - pclearbot. remember (VisF e2 k2) as x. + step. auto. eapply eqit_secure_VisLR; eauto. + - remember (VisF e2 k2) as x. (* maybe need to separate the inductive and coinductive progress cases? *) hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; try contradiction; try contra_size; ddestruction; subst; auto. + constructor; auto. eapply IHHt23; eauto. - + pclearbot. unpriv_co. right. eapply CIH0; try apply H0. apply H. - + pclearbot. assert (Hne : nonempty B); eauto. inv Hne. + + unpriv_co. right. eapply CIH0; try apply H0. apply H. + + assert (Hne : nonempty B); eauto. inv Hne. unpriv_co. right. eapply CIH0; eauto; try eapply H0. apply H. Unshelve. auto. - + pclearbot. assert (Hne : nonempty B0); eauto. inv Hne. + + assert (Hne : nonempty B0); eauto. inv Hne. unpriv_co. right. eapply CIH0; try apply H0. apply H. Unshelve. auto. + genobs t2 ot2. destruct ot2. @@ -746,104 +746,104 @@ Proof. Unshelve. auto. * assert (Hne : nonempty B); eauto. inv Hne. unpriv_co. right. eapply CIH0; try apply H1. Unshelve. all : auto. - clear H0. specialize (H a). pfold. red. genobs (k2 a) ok2. + clear H0. specialize (H a). step. genobs (k2 a) ok2. clear Heqok2 H1 k2. remember (TauF t) as y. hinduction H before r; intros; inv Heqy; try inv CHECK; auto. - -- constructor; auto. pclearbot. pstep_reverse. + -- constructor; auto. pstep_reverse. -- constructor; eauto. - -- pclearbot. unpriv_ind. pstep_reverse. + -- unpriv_ind. pstep_reverse. -- unpriv_ind. eapply H0; eauto. - -- pclearbot. rewrite itree_eta' at 1. pstep_reverse. + -- rewrite itree_eta' at 1. pstep_reverse. * inv SIZECHECK2. destruct (classic (leq (priv _ e) l ) ). -- rewrite itree_eta'. unpriv_ind. eapply eqit_secure_trans_aux2; eauto. Unshelve. all : auto. -- destruct (classic_empty X). ++ unpriv_halt. right. eapply CIH0; eauto. apply H1. - pfold. apply H. Unshelve. auto. + step. apply H. Unshelve. auto. ++ unpriv_co. right. eapply CIH0; try apply H1. Unshelve. all : auto. - clear H0. pstep. red. remember (VisF e k) as y. + clear H0. pstep. remember (VisF e k) as y. specialize (H a). clear Heqot2. genobs (k2 a) ok2. clear Heqok2. hinduction H before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** pclearbot. constructor; auto. pstep_reverse. - ** unpriv_ind. pclearbot. pstep_reverse. - ** pclearbot. rewrite itree_eta' at 1. pstep_reverse. + ** constructor; auto. pstep_reverse. + ** unpriv_ind. pstep_reverse. + ** rewrite itree_eta' at 1. pstep_reverse. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - + pclearbot. inv SIZECHECK2. unpriv_halt. right. eapply CIH0; eauto. apply H0. + + inv SIZECHECK2. unpriv_halt. right. eapply CIH0; eauto. apply H0. apply H. Unshelve. auto. - remember (VisF e k2) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; auto. + constructor; auto. eapply IHHt23; eauto. - + constructor; auto. pclearbot. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. + + constructor; auto. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. pstep_reverse. Unshelve. auto. + unpriv_ind. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. - pclearbot. pstep_reverse. Unshelve. auto. + pstep_reverse. Unshelve. auto. + assert (Hne : nonempty A0). { eauto. } inv Hne. eauto. Unshelve. auto. + unpriv_ind. eauto. - + pclearbot. rewrite itree_eta'. pstep_reverse. + + rewrite itree_eta'. pstep_reverse. apply paco2_mon with (r := bot2); intros; try contradiction. inv SIZECHECK0. eapply secret_halt_trans_3 with (t2 := k0 a); eauto. - * pfold. apply H1. + * step. apply H1. * apply H. - - pclearbot. + - remember (TauF t0) as y. - hinduction Ht23 before r; intros; inv Heqy; subst; eauto with itree; pclearbot. + hinduction Ht23 before r; intros; inv Heqy; subst; eauto with itree; + unpriv_halt. right. eapply CIH0; eauto. + clear IHHt23. rewrite itree_eta'. rewrite itree_eta' at 1. pstep_reverse. apply paco2_mon with (r := bot2); intros; try contradiction. - eapply secret_halt_trans_2; eauto. pfold. auto. + eapply secret_halt_trans_2; eauto. step. auto. + unpriv_halt. right. eapply CIH0; eauto. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. + unpriv_halt. contra_size. - - pclearbot. + - inv Ht23; ddestruction; subst; try contra_size; try contradiction; try inv CHECK. - + constructor. right. eapply CIH0; eauto. pfold. auto. + + constructor. right. eapply CIH0; eauto. step. auto. + unpriv_co. right. eapply CIH0; eauto. rewrite H0 in H2. - pfold. apply H2. - + pclearbot. constructor. right. eapply CIH0; eauto. - + pclearbot. destruct (classic_empty B). - * unpriv_halt. right. eapply CIH0; eauto. pfold. red. cbn. unpriv_halt. + step. apply H2. + + constructor. right. eapply CIH0; eauto. + + destruct (classic_empty B). + * unpriv_halt. right. eapply CIH0; eauto. step. cbn. unpriv_halt. * unpriv_co. right. eapply CIH0; eauto. apply H1. - + pclearbot. unpriv_halt. right. eapply CIH0; eauto. - pfold. red. cbn. unpriv_halt. contra_size. - - pclearbot. rewrite itree_eta' at 1. pstep_reverse. + + unpriv_halt. right. eapply CIH0; eauto. + step. cbn. unpriv_halt. contra_size. + - rewrite itree_eta' at 1. pstep_reverse. apply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_2 with (t2 := Vis e2 k2); eauto. - + pfold. red. cbn. unpriv_halt. - + pfold. auto. - - pclearbot. destruct (classic_empty A). + + step. cbn. unpriv_halt. + + step. auto. + - destruct (classic_empty A). + inv Ht23; ddestruction; subst; try contradiction; try contra_size; try inv CHECK. * unpriv_halt. right. eapply CIH0 with (t2 := Vis e2 k2); eauto. - -- pfold. red. cbn. unpriv_halt. contra_size. - -- pfold. auto. + -- step. cbn. unpriv_halt. contra_size. + -- step. auto. * unpriv_halt. right. rewrite H1 in H3. eapply CIH0 with (t2 := Vis e2 k2); eauto. - -- pfold. red. cbn. unpriv_halt. contra_size. - -- pfold. apply H3. - * unpriv_halt. pclearbot. right. eapply CIH0; eauto. - pfold. red. cbn. unpriv_halt. contra_size. - * unpriv_halt. pclearbot. right. eapply CIH0 with (t2 := Vis e2 k2); eauto. - -- pfold. red. cbn. unpriv_halt. contra_size. + -- step. cbn. unpriv_halt. contra_size. + -- step. apply H3. + * unpriv_halt. right. eapply CIH0; eauto. + step. cbn. unpriv_halt. contra_size. + * unpriv_halt. right. eapply CIH0 with (t2 := Vis e2 k2); eauto. + -- step. cbn. unpriv_halt. contra_size. -- apply H2. * unpriv_halt. contra_size. + destruct (observe t3). * inv Ht23; ddestruction; subst; try contra_size; try contradiction. * unpriv_co. right. eapply CIH0; eauto. apply H. inv Ht23; ddestruction; subst; try contra_size; try contradiction. - pfold. auto. pclearbot. auto. + step. auto. auto. * destruct (classic (leq (priv _ e) l ) ). { inv Ht23; ddestruction; subst; try contra_size; try contradiction. } destruct (classic_empty X). - -- unpriv_halt. right. eapply CIH0; eauto. apply H. pfold. auto. + -- unpriv_halt. right. eapply CIH0; eauto. apply H. step. auto. -- unpriv_co. right. eapply CIH0; eauto. apply H. inv Ht23; ddestruction; subst; try contra_size; try contradiction. - ++ pfold. apply H5. - ++ pclearbot. apply H4. + ++ step. apply H5. + ++ apply H4. Qed. @@ -851,33 +851,33 @@ Lemma eqit_itree_eqit_secure : forall E Label priv l R1 R2 RR (t1 t1': itree E R t1 ≅ t1' -> eqit_secure Label priv RR false false l t1 t2 -> eqit_secure Label priv RR false false l t1' t2. Proof. - intros E Label priv l R1 R2 RR. pcofix CIH. + intros E Label priv l R1 R2 RR. coinduction c CIH. intros t1 t1' t2 Heq Hsec. pstep. red. - punfold Heq. red in Heq. punfold Hsec. red in Hsec. + step in Heq. red in Heq. step in Hsec. red in Hsec. inv Heq; try inv CHECK. - rewrite <- H0 in Hsec. rewrite itree_eta' at 1. pstep_reverse. - eapply paco2_mon with (r := bot2); intros; try contradiction. pfold. + eapply paco2_mon with (r := bot2); intros; try contradiction. step. red. cbn. remember (RetF r2) as x. clear H H0. hinduction Hsec before r; intros; inv Heqx; eauto with itree. - - pclearbot. genobs t2 ot2. + - genobs t2 ot2. assert ( (exists t3, ot2 = TauF t3) \/ (forall t3, ot2 <> TauF t3) ). { destruct ot2; eauto; right; intros; discriminate. } destruct H1 as [ [t3 Ht2] | Ht2]. + subst. rewrite Ht2. rewrite Ht2 in Hsec. constructor. - right. eapply CIH; eauto. rewrite <- H0 in Hsec. inv Hsec; try inv CHECK. pclearbot. auto. + right. eapply CIH; eauto. rewrite <- H0 in Hsec. inv Hsec; try inv CHECK. auto. + destruct ot2; try (exfalso; eapply Ht2; eauto; fail ). * rewrite <- H0 in Hsec. inv Hsec; try inv CHECK. * rewrite <- H0 in Hsec. inv Hsec; ddestruction; subst; try inv CHECK. - -- pclearbot. unpriv_co. right. eapply CIH; eauto. apply H3. - -- pclearbot. unpriv_halt. right. eapply CIH; eauto. + -- unpriv_co. right. eapply CIH; eauto. apply H3. + -- unpriv_halt. right. eapply CIH; eauto. - rewrite <- H0 in Hsec. inv Hsec; ddestruction; subst; try inv CHECK; try contradiction; try contra_size. - + pclearbot. constructor; auto. right. eapply CIH; eauto with itree. apply H2. - + pclearbot. unpriv_co. right. eapply CIH; eauto with itree. apply H2. - + pclearbot. unpriv_co. right. eapply CIH; eauto with itree. apply H2. - + pclearbot. unpriv_halt. right. eapply CIH; eauto. pfold. constructor. left. auto. - + pclearbot. unpriv_halt. right. eapply CIH with (t1 := Vis e k1); try apply H2. - pfold. constructor. left. auto. - + pclearbot. unpriv_halt. right. eapply CIH; eauto with itree. apply H2. + + constructor; auto. right. eapply CIH; eauto with itree. apply H2. + + unpriv_co. right. eapply CIH; eauto with itree. apply H2. + + unpriv_co. right. eapply CIH; eauto with itree. apply H2. + + unpriv_halt. right. eapply CIH; eauto. step. constructor. left. auto. + + unpriv_halt. right. eapply CIH with (t1 := Vis e k1); try apply H2. + step. constructor. left. auto. + + unpriv_halt. right. eapply CIH; eauto with itree. apply H2. Qed. Lemma eqit_secure_eq_trans : forall E R b1 b2 Label priv l (t1 t2 t3 : itree E R), diff --git a/extra/Secure/SecureEqEuttTrans.v b/extra/Secure/SecureEqEuttTrans.v index 438d904c..55332be9 100644 --- a/extra/Secure/SecureEqEuttTrans.v +++ b/extra/Secure/SecureEqEuttTrans.v @@ -31,12 +31,12 @@ Lemma eses_aux3: Proof. intros E R3 R1 Label priv l R2 RR1 RR2 r m1 m2 REL r0 Hsec. remember (RetF r0) as x. - punfold REL. red in REL. hinduction Hsec before r; intros; inv Heqx; eauto. + step in REL. red in REL. hinduction Hsec before r; intros; inv Heqx; eauto. - remember (RetF r2) as y. hinduction REL before r; intros; inv Heqy; eauto with itree. - - eapply IHHsec; eauto. pstep_reverse. setoid_rewrite <- tau_eutt at 1. pfold. auto. + - eapply IHHsec; eauto. pstep_reverse. setoid_rewrite <- tau_eutt at 1. step. auto. - remember (VisF e k2) as y. hinduction REL before r; intros; inv Heqy; ddestruction; subst; eauto with itree. - pclearbot. unpriv_ind. eapply H0; eauto. pstep_reverse. + unpriv_ind. eapply H0; eauto. pstep_reverse. Qed. @@ -58,20 +58,20 @@ Lemma eses_aux4: (VisF e k) (observe m2). Proof. intros E R3 R1 Label priv l R2 RR1 RR2 r m1 m2 CIH REL X e k Hsec SECCHECK. - punfold REL. red in REL. remember (VisF e k) as y. + step in REL. red in REL. remember (VisF e k) as y. hinduction Hsec before r; intros; inv Heqy; ddestruction; subst; try contradiction. - - eapply IHHsec; eauto. pstep_reverse. rewrite <- tau_eutt at 1. pfold. auto. - - pclearbot. inv REL; ddestruction; subst. - + constructor; auto. right. pclearbot. eapply CIH; eauto with itree. + - eapply IHHsec; eauto. pstep_reverse. rewrite <- tau_eutt at 1. step. auto. + - inv REL; ddestruction; subst. + + constructor; auto. right. eapply CIH; eauto with itree. apply H. + constructor; auto. remember (VisF e0 k2) as y. hinduction REL0 before r; intros; inv Heqy; ddestruction; subst; try contradiction. - * constructor; auto. right. pclearbot. eapply CIH; eauto with itree. apply H. + * constructor; auto. right. eapply CIH; eauto with itree. apply H. * constructor; auto. eapply IHREL0; eauto. - rewrite H2. remember (VisF e k2) as y. hinduction REL before r; intros; inv Heqy; ddestruction; subst; try contradiction. + rewrite itree_eta' at 1. unpriv_ind. rewrite <- H2. eapply H0; eauto. - pclearbot. + pstep_reverse. + constructor; auto. eapply IHREL; eauto. Qed. @@ -82,9 +82,9 @@ Lemma eutt_secure_eqit_secure : forall E Label priv l R1 R2 R3 (RR1 : R1 -> R2 - eqit_secure Label priv RR1 true true l t1 t2 -> eutt RR2 t2 t3 -> eqit_secure Label priv (rcompose RR1 RR2) true true l t1 t3. Proof. - intros E Label priv l R1 R2 R3 RR1 RR2. pcofix CIH. intros t1 t2 t3 Hsec Heutt. - punfold Heutt. red in Heutt. punfold Hsec. red in Hsec. - pfold. red. hinduction Heutt before r; intros; subst; auto with itree. + intros E Label priv l R1 R2 R3 RR1 RR2. coinduction c CIH. intros t1 t2 t3 Hsec Heutt. + step in Heutt. red in Heutt. step in Hsec. red in Hsec. + step. hinduction Heutt before r; intros; subst; auto with itree. - remember (RetF r2) as x. remember (RetF r1) as y. hinduction Hsec before r; intros; try inv Heqx; try inv Heqy; subst; auto with itree. + constructor; eauto with itree. + constructor; auto. eapply IHHsec; eauto. @@ -94,61 +94,61 @@ Proof. { destruct ot1; eauto; right; repeat intro; discriminate. } (* because of the extra inductive cases this is not enough *) destruct Ht1 as [ [m3 Hm3] | Ht1 ]. - + subst. pclearbot. constructor. right. eapply CIH; eauto. + + subst. constructor. right. eapply CIH; eauto. apply tau_eqit_secure. apply eqit_secure_sym. apply tau_eqit_secure. - apply eqit_secure_sym. pfold. auto. + apply eqit_secure_sym. step. auto. + destruct ot1; try (exfalso; eapply Ht1; eauto; fail). - * pclearbot. rewrite itree_eta'. rewrite itree_eta' in Hsec. - eapply eses_aux3; eauto. pfold. constructor. + * rewrite itree_eta'. rewrite itree_eta' in Hsec. + eapply eses_aux3; eauto. step. constructor. left. auto. * assert (leq (priv _ e) l \/ ~ leq (priv _ e) l). { apply classic. } destruct H as [SECCHECK | SECCHECK]; destruct ( classic_empty X ). - ++ pclearbot. rewrite itree_eta'. rewrite itree_eta' in Hsec. + ++ rewrite itree_eta'. rewrite itree_eta' in Hsec. eapply eses_aux4; eauto. do 2 rewrite tau_eutt. auto. - ++ pclearbot. rewrite itree_eta'. + ++ rewrite itree_eta'. rewrite itree_eta' in Hsec. eapply eses_aux4; eauto. do 2 rewrite tau_eutt. auto. - ++ unpriv_halt. pclearbot. right. eapply CIH; eauto. + ++ unpriv_halt. right. eapply CIH; eauto. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. - pfold. auto. - ++ pclearbot. - unpriv_co. pclearbot. right. eapply CIH; try apply REL. + step. auto. + ++ + unpriv_co. right. eapply CIH; try apply REL. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. eapply unpriv_e_eqit_secure; eauto. - pfold. auto. - - pclearbot. destruct (classic (leq (priv _ e) l ) ). + step. auto. + - destruct (classic (leq (priv _ e) l ) ). + genobs_clear t1 ot1. remember (VisF e k1) as y. hinduction Hsec before r; intros; try inv Heqy; ddestruction; subst; try contradiction; eauto with itree. - * constructor; auto. right. pclearbot. eapply CIH; eauto with itree. apply H. + * constructor; auto. right. eapply CIH; eauto with itree. apply H. * rewrite itree_eta'. unpriv_ind. eapply H0; eauto. + remember (VisF e k1) as y. hinduction Hsec before r; intros; inv Heqy; ddestruction; subst; try contradiction. * eauto with itree. - * pclearbot. unpriv_co. right. eapply CIH; eauto with itree. apply H. - * pclearbot. unpriv_co. right. eapply CIH; eauto with itree. apply H. + * unpriv_co. right. eapply CIH; eauto with itree. apply H. + * unpriv_co. right. eapply CIH; eauto with itree. apply H. * rewrite itree_eta'. unpriv_ind. eapply H0; eauto. * destruct (observe t0). -- rewrite itree_eta' at 1. unpriv_ind. specialize (H a). eapply eses_aux3; eauto. -- unpriv_co. right. eapply CIH; eauto with itree. apply tau_eqit_secure. - pfold. apply H. + step. apply H. -- destruct (classic (leq (priv _ e) l ) ). ++ rewrite itree_eta' at 1. unpriv_ind. eapply eses_aux4; eauto. ++ destruct (classic_empty X). - ** unpriv_halt. right. eapply CIH; eauto with itree. pfold. apply H. + ** unpriv_halt. right. eapply CIH; eauto with itree. step. apply H. ** unpriv_co. right. eapply CIH; eauto with itree. - eapply unpriv_e_eqit_secure; eauto. pfold. apply H. - * pclearbot. unpriv_halt. right. eapply CIH; eauto. pfold. + eapply unpriv_e_eqit_secure; eauto. step. apply H. + * unpriv_halt. right. eapply CIH; eauto. step. constructor; intros; auto with itree. - * pclearbot. unpriv_halt. right. eapply CIH; eauto with itree. apply H. - * pclearbot. unpriv_halt. right. eapply CIH; eauto with itree. apply H. - pfold. constructor; auto with itree. + * unpriv_halt. right. eapply CIH; eauto with itree. apply H. + * unpriv_halt. right. eapply CIH; eauto with itree. apply H. + step. constructor; auto with itree. - eapply IHHeutt; eauto. pstep_reverse. apply eqit_secure_sym. - apply tau_eqit_secure. apply eqit_secure_sym. pfold. auto. + apply tau_eqit_secure. apply eqit_secure_sym. step. auto. Qed. diff --git a/extra/Secure/SecureEqHalt.v b/extra/Secure/SecureEqHalt.v index 2c1fc3a8..320f86a1 100644 --- a/extra/Secure/SecureEqHalt.v +++ b/extra/Secure/SecureEqHalt.v @@ -173,30 +173,30 @@ Ltac gfinal_with H := gfinal; left; apply H. Lemma eqit_secure_sym : forall b1 b2 E R1 R2 RR Label priv l (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv (flip RR) b2 b1 l t2 t1. Proof. - intros b1 b2 E R1 R2 RR Label priv l. pcofix CIH. - intros t1 t2 Hsec. pfold. red. punfold Hsec. red in Hsec. - hinduction Hsec before r; intros; eauto with itree; pclearbot; + intros b1 b2 E R1 R2 RR Label priv l. coinduction c CIH. + intros t1 t2 Hsec. step. step in Hsec. red in Hsec. + hinduction Hsec before r; intros; eauto with itree; try (unpriv_co; right; apply CIH; apply H); try unpriv_halt. - constructor; auto with itree. intros. right. apply CIH; apply H. - specialize (H a). remember (k2 a) as t. clear Heqt k2. left. - intros. pfold. red. cbn. punfold H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto; + intros. step. cbn. step in H. red in H. cbn in H. + inv H; ddestruction; subst; try contra_size; try contradiction; eauto; try (unpriv_halt; fail). - + unpriv_halt. right. apply CIH. pfold. auto. + + unpriv_halt. right. apply CIH. step. auto. + rewrite H0. rewrite H0 in H2. unpriv_halt. - right. apply CIH. pfold. apply H2. + right. apply CIH. step. apply H2. + unpriv_halt. right. apply CIH. apply H1. + unpriv_halt. right. apply CIH. apply H1. - specialize (H b). remember (k1 b) as t. clear Heqt k1. left. - intros. pfold. red. cbn. punfold H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto; + intros. step. cbn. step in H. red in H. cbn in H. + inv H; ddestruction; subst; try contra_size; try contradiction; eauto; try (unpriv_halt; fail). - + unpriv_halt. right. apply CIH. pfold. auto. + + unpriv_halt. right. apply CIH. step. auto. + rewrite H1. rewrite H1 in H2. unpriv_halt. - right. apply CIH. pfold. apply H2. + right. apply CIH. step. apply H2. + unpriv_halt. inv SIZECHECK0. contradiction. + unpriv_halt. right. apply CIH. apply H2. Qed. @@ -206,10 +206,10 @@ Lemma secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l (b1 -> b3) -> (b2 -> b4) -> (RR1 <2= RR2) -> eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit_secure Label priv RR2 b3 b4 l t1 t2. Proof. - intros. generalize dependent t2. revert t1. pcofix CIH. + intros. generalize dependent t2. revert t1. coinduction c CIH. intros t1 t2 Ht12. pstep. red. - punfold Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; pclearbot; + step in Ht12. red in Ht12. + hinduction Ht12 before r; intros; eauto; try (unpriv_co; right; apply CIH; try red; eauto; fail); try (unpriv_halt; try contra_size; right; apply CIH; try red; eauto; fail). constructor; auto. right. eauto. apply CIH; apply H2. diff --git a/extra/Secure/SecureEqHaltProgInsens.v b/extra/Secure/SecureEqHaltProgInsens.v index aa7f5f16..5694a518 100644 --- a/extra/Secure/SecureEqHaltProgInsens.v +++ b/extra/Secure/SecureEqHaltProgInsens.v @@ -151,10 +151,10 @@ Definition halt : itree E R := Vis HaltE (fun _ => Tau Tau ...) Lemma refl_counter_counter : ~ eqit_secure NatPreorder priv_counter eq true true 0 refl_counter refl_counter. Proof. - intro Hcontra. punfold Hcontra; try eapply secure_eqit_mono; eauto. + intro Hcontra. step in Hcontra; try eapply secure_eqit_mono; eauto. red in Hcontra. cbn in *. inv Hcontra; ddestruction; subst. - cbv in SECCHECK. inv SECCHECK. - - specialize (H0 true false). pclearbot. pinversion H0; try eapply secure_eqit_mono; eauto. + - specialize (H0 true false). sinv H0; try eapply secure_eqit_mono; eauto. discriminate. - rewrite H3 in H0. clear H3. specialize (H0 true). cbn in *. inv H0; ddestruction; subst. specialize (H2 false). rewrite H in H2. @@ -169,13 +169,13 @@ Definition halt : itree E R := Vis HaltE (fun _ => Tau Tau ...) Lemma halt_not_ret : forall A (a : A) k, ~ eqit_secure NatPreorder priv_counter eq true true 0 (Vis Halt k) (Ret a). Proof. - intros. intro Hcontra. pinversion Hcontra. ddestruction; subst. + intros. intro Hcontra. sinv Hcontra. ddestruction; subst. inv SIZECHECK. contradiction. Qed. Lemma halt_spin : eqit_secure NatPreorder priv_counter eq true true 0 (trigger Halt) (ITree.spin). Proof. - pcofix CIH. pfold. red. cbn. eapply EqVisUnprivHaltLTauR. + coinduction c CIH. step. cbn. eapply EqVisUnprivHaltLTauR. - intro. inv H. - constructor. intros; contradiction. - right. apply CIH. @@ -188,10 +188,10 @@ Definition halt : itree E R := Vis HaltE (fun _ => Tau Tau ...) (* b := SecretFlip; if b then return tt else PublicOut; return tt*) Lemma refl_counter2_counter : ~ eqit_secure NatPreorder priv_counter eq true true 0 refl_counter2 refl_counter2. Proof. - unfold refl_counter2. intro Hcontra. punfold Hcontra; try eapply secure_eqit_mono; eauto. + unfold refl_counter2. intro Hcontra. step in Hcontra; try eapply secure_eqit_mono; eauto. red in Hcontra. cbn in Hcontra. inv Hcontra; ddestruction; subst; try (inv SIZECHECK; apply H; constructor; fail). - inv SECCHECK. - - specialize (H0 true false). pclearbot. punfold H0; try eapply secure_eqit_mono; eauto. + - specialize (H0 true false). step in H0; try eapply secure_eqit_mono; eauto. red in H0. cbn in *. inv H0; ddestruction; subst. cbn in *. apply SECCHECK; auto. - rewrite H3 in H0; clear H3. specialize (H0 true). cbn in *. @@ -271,30 +271,30 @@ Ltac ne A := let Hne := fresh "H" in assert (Hne : nonempty A); eauto; inv Hne. Lemma eqit_secure_sym : forall b1 b2 E R1 R2 RR Label priv l (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv (flip RR) b2 b1 l t2 t1. Proof. - intros b1 b2 E R1 R2 RR Label priv l. pcofix CIH. - intros t1 t2 Hsec. pfold. red. punfold Hsec. red in Hsec. - hinduction Hsec before r; intros; eauto with itree; pclearbot; + intros b1 b2 E R1 R2 RR Label priv l. coinduction c CIH. + intros t1 t2 Hsec. step. step in Hsec. red in Hsec. + hinduction Hsec before r; intros; eauto with itree; try (unpriv_co; right; apply CIH; apply H); try unpriv_halt. - constructor; auto. intros. right. apply CIH; apply H. - - constructor; auto. right. eapply CIH. apply H. - - constructor; auto. right. eapply CIH. apply H. + - constructor; auto. eapply CIH. apply H. + - constructor; auto. eapply CIH. apply H. - specialize (H a). remember (k2 a) as t. clear Heqt k2. left. - intros. pfold. red. cbn. punfold H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto with itree; + intros. step. cbn. step in H. red in H. cbn in H. + inv H; ddestruction; subst; try contra_size; try contradiction; eauto with itree; try (unpriv_halt; fail). + constructor; auto. right. eapply CIH; eauto. apply H2. - + unpriv_halt. right. eapply CIH. apply H1. - + unpriv_halt. right. eapply CIH. apply H1. + + unpriv_halt. eapply CIH. apply H1. + + unpriv_halt. eapply CIH. apply H1. - specialize (H b). remember (k1 b) as t. clear Heqt k1. left. - intros. pfold. red. cbn. punfold H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; pclearbot; eauto with itree; + intros. step. cbn. step in H. red in H. cbn in H. + inv H; ddestruction; subst; try contra_size; try contradiction; eauto with itree; try (unpriv_halt; fail). + constructor; auto. right. eapply CIH; eauto. apply H2. + unpriv_halt. right. inv SIZECHECK0. contradiction. - + unpriv_halt. right. eapply CIH. apply H2. + + unpriv_halt. eapply CIH. apply H2. Qed. Lemma secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l @@ -302,10 +302,10 @@ Lemma secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l (b1 -> b3) -> (b2 -> b4) -> (RR1 <2= RR2) -> eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit_secure Label priv RR2 b3 b4 l t1 t2. Proof. - intros. generalize dependent t2. revert t1. pcofix CIH. + intros. generalize dependent t2. revert t1. coinduction c CIH. intros t1 t2 Ht12. pstep. red. - punfold Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; pclearbot; + step in Ht12. red in Ht12. + hinduction Ht12 before r; intros; eauto; try (unpriv_co; right; apply CIH; try red; eauto; fail); try (unpriv_halt; try contra_size; right; apply CIH; try red; eauto; fail). all : (constructor; auto; right; eauto; apply CIH; apply H2). diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index ee7c93f1..191ce6a5 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -106,18 +106,18 @@ Ltac contra_size := Lemma eqit_secure_imp_pi_eqit_scure b1 b2 E R1 R2 RR Label priv l : forall (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR b1 b2 l t1 t2 -> pi_eqit_secure Label priv RR b1 b2 l t1 t2. Proof. - pcofix CIH. intros t1 t2 Hps. pfold. red. punfold Hps. red in Hps. + coinduction c CIH. intros t1 t2 Hps. step. step in Hps. red in Hps. hinduction Hps before r; intros. - constructor; auto with itree. - - constructor. right. pclearbot. eauto with itree. - - rewrite itree_eta'. constructor; auto with itree. right. eapply CIH. pfold. apply Hps. - - rewrite itree_eta' at 1. constructor; auto with itree. right. eapply CIH. pfold. apply Hps. - - pclearbot. constructor; auto with itree. right. eapply CIH; eauto with itree. apply H. - - pclearbot. unpriv_pi. right. eapply CIH; apply H. - - pclearbot. unpriv_pi. right. eapply CIH; apply H. - - pclearbot. unpriv_pi. right. eapply CIH; apply H. - - pclearbot. unpriv_pi. right. eapply CIH. pfold. apply H. - - pclearbot. unpriv_pi. right. eapply CIH. pfold. apply H. + - constructor. right. eauto with itree. + - rewrite itree_eta'. constructor; auto with itree. eapply CIH. step. apply Hps. + - rewrite itree_eta' at 1. constructor; auto with itree. eapply CIH. step. apply Hps. + - constructor; auto with itree. right. eapply CIH; eauto with itree. apply H. + - unpriv_pi. right. eapply CIH; apply H. + - unpriv_pi. right. eapply CIH; apply H. + - unpriv_pi. right. eapply CIH; apply H. + - unpriv_pi. eapply CIH. step. apply H. + - unpriv_pi. eapply CIH. step. apply H. - unpriv_pi. inv SIZECHECK. contradiction. - unpriv_pi. inv SIZECHECK. contradiction. - unpriv_pi. inv SIZECHECK. contradiction. @@ -128,8 +128,8 @@ Qed. Lemma pi_eqit_secure_sym b1 b2 E R1 R2 RR Label priv l : forall (t1 : itree E R1) (t2 : itree E R2), pi_eqit_secure Label priv RR b1 b2 l t1 t2 -> pi_eqit_secure Label priv (flip RR) b2 b1 l t2 t1. Proof. - pcofix CIH. intros t1 t2 Hsec. - punfold Hsec. pfold. red in Hsec. red. inversion Hsec; pclearbot; eauto; + coinduction c CIH. intros t1 t2 Hsec. + step in Hsec. step. red in Hsec. red. inversion Hsec; eauto; try (unpriv_pi; right; eapply CIH; apply H1; fail). constructor; auto. right. eapply CIH; apply H1. Qed. @@ -140,10 +140,10 @@ Lemma pi_secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label pri (b1 -> b3) -> (b2 -> b4) -> (RR1 <2= RR2) -> pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> pi_eqit_secure Label priv RR2 b3 b4 l t1 t2. Proof. - intros. generalize dependent t2. revert t1. pcofix CIH. + intros. generalize dependent t2. revert t1. coinduction c CIH. intros t1 t2 Ht12. pstep. red. - punfold Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; pclearbot; + step in Ht12. red in Ht12. + hinduction Ht12 before r; intros; eauto; try (unpriv_pi; right; apply CIH; try red; eauto; fail); constructor; auto. right. eauto. apply CIH; apply H2. Qed. @@ -152,14 +152,14 @@ Qed. Lemma pi_eqit_secure_spin b E R1 R2 (RR : R1 -> R2 -> Prop) Label priv l : forall (t1 : itree E R1), pi_eqit_secure Label priv RR b true l t1 (ITree.spin). Proof. - pcofix CIH. intros. pfold. red. cbn. constructor; auto. + coinduction c CIH. intros. step. cbn. constructor; auto. Qed. Lemma pi_eqit_secure_private_halt b E R1 R2 (RR : R1 -> R2 -> Prop) Label priv l A (e : E A) k: empty A -> ~ leq (priv A e) l -> forall (t1 : itree E R1), pi_eqit_secure Label priv RR b true l t1 (Vis e k). Proof. - intros HA t1. pfold. red. cbn. intros. unpriv_pi. inv HA; contradiction. + intros HA t1. step. cbn. intros. unpriv_pi. inv HA; contradiction. Qed. Lemma pi_eqit_secure_mixed_trans_aux1: @@ -168,15 +168,15 @@ Lemma pi_eqit_secure_mixed_trans_aux1: paco2 (pi_secure_eqit_ Label priv RR1 true b2 l id) bot2 t1 (Tau t2) -> pi_eqit_secure Label priv RR1 true b2 l t1 t2. Proof. - intros E R1 b2 R2 RR1 Label priv l. pcofix CIH. - intros t1 t2 Htau. punfold Htau. red in Htau. - pfold. red. cbn in *. inv Htau; pclearbot; eauto. + intros E R1 b2 R2 RR1 Label priv l. coinduction c CIH. + intros t1 t2 Htau. step in Htau. red in Htau. + step. cbn in *. inv Htau; eauto. - constructor; auto. left. eapply paco2_mon; eauto. intros; contradiction. - - constructor; auto. right. eapply CIH; eauto. pfold. red. rewrite <- H0. + - constructor; auto. right. eapply CIH; eauto. step. rewrite <- H0. cbn. pstep_reverse. - pstep_reverse. eapply paco2_mon; eauto. intros; contradiction. - unpriv_pi. left. eapply paco2_mon; eauto. intros; contradiction. - - unpriv_pi. right. eapply CIH. pfold. red. rewrite <- H0. + - unpriv_pi. eapply CIH. step. rewrite <- H0. cbn. pstep_reverse. Qed. @@ -185,43 +185,43 @@ Lemma pi_eqit_secure_mixed_trans b1 b2 E R1 R2 R3 (RR1 : R1 -> R2 -> Prop) (RR2 pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit RR2 b1 b2 t2 t3 -> pi_eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. - pcofix CIH. intros t1 t2 t3 Hsec Heq. punfold Heq. - red in Heq. punfold Hsec. red in Hsec. pfold. red. - hinduction Heq before r; intros; try inv CHECK; pclearbot. - - inv Hsec; eauto with itree; unpriv_pi; pclearbot. + coinduction c CIH. intros t1 t2 t3 Hsec Heq. step in Heq. + red in Heq. step in Hsec. red in Hsec. step. red. + hinduction Heq before r; intros; try inv CHECK; + - inv Hsec; eauto with itree; unpriv_pi; + rewrite itree_eta'. constructor; auto with itree. right. eapply CIH; eauto. - pfold. red. rewrite H0. constructor. auto. + step. rewrite H0. constructor. auto. + rewrite itree_eta'. unpriv_pi. right. eapply CIH; eauto. - apply H1. pfold. red. rewrite H0. constructor; auto. - - inv Hsec; pclearbot; eauto with itree. + apply H1. step. rewrite H0. constructor; auto. + - inv Hsec; eauto with itree. + constructor. right. eapply CIH; eauto with itree. - pfold. red. rewrite H0. constructor; auto. pstep_reverse. + step. rewrite H0. constructor; auto. pstep_reverse. + unpriv_pi. right. eapply CIH; eauto. apply H1. + rewrite itree_eta'. unpriv_pi. right. eapply CIH; eauto. inv CHECK. apply pi_eqit_secure_mixed_trans_aux1. - pfold. red. rewrite <- H0. cbn. pstep_reverse. + step. rewrite <- H0. cbn. pstep_reverse. - inv Hsec. - + pclearbot. rewrite itree_eta'. constructor; auto. right. eapply CIH; eauto. - pfold. red. rewrite H0. constructor. left. auto. + + rewrite itree_eta'. constructor; auto. right. eapply CIH; eauto. + step. rewrite H0. constructor. left. auto. + ddestruction. subst. constructor; auto with itree. right. - pclearbot. eapply CIH; eauto with itree. apply H1. - + ddestruction. subst. unpriv_pi. right. pclearbot. + eapply CIH; eauto with itree. apply H1. + + ddestruction. subst. unpriv_pi. right. eapply CIH; eauto with itree. apply H1. - + ddestruction. subst. unpriv_pi. right. pclearbot. + + ddestruction. subst. unpriv_pi. right. eapply CIH; eauto with itree. apply H1. - + pclearbot. remember (VisF e k2) as ovis. rewrite itree_eta'. + + remember (VisF e k2) as ovis. rewrite itree_eta'. unpriv_pi. rewrite Heqovis. right. eapply CIH; eauto with itree. apply H1. - pfold. red. rewrite H0. constructor. left. auto. - + ddestruction. subst. unpriv_pi. right. eapply CIH; eauto with itree. pclearbot. apply H1. - - eapply IHHeq; eauto. clear IHHeq. inv Hsec; pclearbot. + step. rewrite H0. constructor. left. auto. + + ddestruction. subst. unpriv_pi. right. eapply CIH; eauto with itree. apply H1. + - eapply IHHeq; eauto. clear IHHeq. inv Hsec; + constructor; auto. - + constructor; auto. left. apply pi_eqit_secure_mixed_trans_aux1. pfold. red. + + constructor; auto. left. apply pi_eqit_secure_mixed_trans_aux1. step. red. rewrite <- H0. cbn. pstep_reverse. + pstep_reverse. + unpriv_pi. - + unpriv_pi. left. apply pi_eqit_secure_mixed_trans_aux1. pfold. red. + + unpriv_pi. left. apply pi_eqit_secure_mixed_trans_aux1. step. red. rewrite <- H0. cbn. pstep_reverse. - - constructor; auto. left. pfold. eapply IHHeq; eauto. + - constructor; auto. left. step. eapply IHHeq; eauto. Qed. Lemma pi_eqit_secure_RR_imp b1 b2 E R1 R2 (RR1 : R1 -> R2 -> Prop ) (RR2 : R1 -> R2 -> Prop) @@ -230,11 +230,11 @@ Lemma pi_eqit_secure_RR_imp b1 b2 E R1 R2 (RR1 : R1 -> R2 -> Prop ) (RR2 : R1 -> pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> pi_eqit_secure Label priv RR2 b1 b2 l t1 t2. Proof. - intro Himp. pcofix CIH. - intros. pfold. red. punfold H0. red in H0. + intro Himp. coinduction c CIH. + intros. step. step in H0. red in H0. inv H0; eauto; - try (constructor; auto; pclearbot; eauto; fail); - try (pclearbot; constructor; auto; right; eapply CIH; eauto; try apply H2; fail). + try (constructor; auto; eauto; fail); + try ( constructor; auto; right; eapply CIH; eauto; try apply H2; fail). Qed. Lemma pi_eqit_secureC_wcompat_id : forall b1 b2 E R1 R2 (RR : R1 -> R2 -> Prop ) @@ -244,7 +244,7 @@ Lemma pi_eqit_secureC_wcompat_id : forall b1 b2 E R1 R2 (RR : R1 -> R2 -> Prop Proof. econstructor. pmonauto_itree. intros. destruct PR. - punfold EQVl. punfold EQVr. unfold_eqit. red in REL. red. + step in EQVl. step in EQVr. unfold_eqit. red in REL. red. hinduction REL before r; intros; clear t1' t2'; try inv CHECK. - genobs_clear t1 ot1. genobs_clear t2 ot2. remember (RetF r1) as x. @@ -253,75 +253,75 @@ Proof. hinduction EQVr before r; intros; inv Heqy; eauto with itree. rewrite itree_eta' at 1. constructor; eauto with itree. gstep. red. eapply IHEQVr; eauto. - + rewrite itree_eta'. constructor; auto. cbn. gstep. red. cbn. + + rewrite itree_eta'. constructor; auto. cbn. gstep. cbn. eauto. - remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; subst; eauto. + remember (TauF t2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; subst; eauto. - pclearbot. constructor. gclo. econstructor; eauto with paco. - pclearbot. + constructor. gclo. econstructor; eauto with paco. + remember (TauF m1) as ot1. rewrite itree_eta' at 1. - constructor; auto. rewrite Heqot1. gstep. red. cbn. eauto. - + constructor; auto. gstep. red. eapply IHEQVl; eauto. - - inv EQVl; pclearbot; try inv CHECK. + constructor; auto. rewrite Heqot1. gstep. cbn. eauto. + + constructor; auto. gstep. eapply IHEQVl; eauto. + - inv EQVl; try inv CHECK. + constructor; auto. gclo. econstructor; eauto with paco itree. + constructor; auto. gclo. econstructor; eauto with paco itree. - apply eqit_inv_Tau_r. pfold. auto. - - inv EQVr; pclearbot; try inv CHECK. + apply eqit_inv_Tau_r. step. auto. + - inv EQVr; try inv CHECK. + constructor; auto. gclo. econstructor; eauto with paco itree. + constructor; auto. gclo. econstructor; eauto with paco itree. - apply eqit_inv_Tau_r. pfold. auto. + apply eqit_inv_Tau_r. step. auto. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto. + ddestruction. subst. remember (VisF e0 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto. * ddestruction. subst. constructor; auto. - intros. apply gpaco2_clo. pclearbot. econstructor; eauto with itree. apply H. - * pclearbot. remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. - constructor; auto. rewrite Heqovis. gstep. red. eapply IHEQVr; eauto with itree. - + constructor; auto. gstep. red. eapply IHEQVl; eauto. + intros. apply gpaco2_clo. econstructor; eauto with itree. apply H. + * remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. + constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto with itree. + + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto. - + ddestruction. subst. pclearbot. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; pclearbot; eauto. + + ddestruction. subst. remember (TauF t2) as y. + hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto. * unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. gfinal. left. apply H. * remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. constructor; auto. - rewrite Heqovis. gstep. red. eapply IHEQVr; eauto. - + constructor; auto. gstep. red. eapply IHEQVl; eauto. + rewrite Heqovis. gstep. eapply IHEQVr; eauto. + + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (TauF t1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto. + remember (VisF e k2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto. * ddestruction. subst. - pclearbot. unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. + unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. gfinal. left. apply H. * remember (TauF m1) as otm1. rewrite itree_eta' at 1. constructor; auto. gstep. rewrite Heqotm1. red. eapply IHEQVr; eauto. - + constructor; auto. gstep. red. eapply IHEQVl; eauto. + + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (VisF e1 k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto. + ddestruction. subst. remember (VisF e2 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto. - * ddestruction. subst. unpriv_pi. gclo. pclearbot. + * ddestruction. subst. unpriv_pi. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. * remember (VisF e1 k1) as ovis. rewrite itree_eta' at 1. constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto. + remember (VisF e2 k2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; subst; eauto. - * ddestruction. subst. pclearbot. unpriv_pi. + * ddestruction. subst. unpriv_pi. gclo. eapply eqit_trans_clo_intro with (t1' := Vis e1 k0); eauto with paco itree. - gstep. red. cbn. unpriv_pi. gfinal. left. apply H. + gstep. cbn. unpriv_pi. gfinal. left. apply H. * remember (TauF t3) as ott3. rewrite itree_eta' at 1. constructor; auto. - rewrite Heqott3. gstep. red. eapply IHEQVr; eauto. + rewrite Heqott3. gstep. eapply IHEQVr; eauto. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto. - + ddestruction. subst. pclearbot. unpriv_pi. + + ddestruction. subst. unpriv_pi. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (VisF e k2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto. - + ddestruction. subst. pclearbot. unpriv_pi. + + ddestruction. subst. unpriv_pi. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. + constructor; auto. gstep. eapply IHEQVr; eauto. Qed. @@ -372,7 +372,7 @@ Qed. Lemma pi_eqit_secure_ret E Label priv l b1 b2 R1 R2 (RR : R1 -> R2 -> Prop) r1 r2 : RR r1 r2 -> @pi_eqit_secure E R1 R2 Label priv RR b1 b2 l (Ret r1) (Ret r2). Proof. - intros; pfold; constructor; auto. + intros; step; constructor; auto. Qed. Lemma pi_eqit_secure_bind E Label priv l b1 b2 R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) k1 k2 : @@ -381,7 +381,7 @@ Lemma pi_eqit_secure_bind E Label priv l b1 b2 R1 R2 S1 S2 (RR : R1 -> R2 -> Pro pi_eqit_secure Label priv RR b1 b2 l t1 t2 -> pi_eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - ginit. gcofix CIH. intros. pinversion H1. + ginit. gcofix CIH. intros. sinv H1. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. repeat rewrite bind_ret_l. gfinal. right. eapply paco2_mon; try apply H0; auto. intros; contradiction. @@ -389,28 +389,28 @@ Proof. repeat rewrite bind_tau. gstep. constructor. gfinal. left. eapply CIH; eauto. - apply simpobs in H. apply simpobs in H2. rewrite H2. rewrite H. rewrite bind_tau. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. - pfold. red. cbn. pstep_reverse. + step. cbn. pstep_reverse. - apply simpobs in H. apply simpobs in H2. rewrite H2. rewrite H. rewrite bind_tau. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. - pfold. red. cbn. pstep_reverse. + step. cbn. pstep_reverse. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. repeat rewrite bind_vis. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. apply H3. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. rewrite bind_tau. gstep. red. cbn. unpriv_pi. + rewrite bind_vis. rewrite bind_tau. gstep. cbn. unpriv_pi. gfinal. left. eapply CIH; eauto. apply H3. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. rewrite bind_tau. gstep. red. cbn. unpriv_pi. + rewrite bind_vis. rewrite bind_tau. gstep. cbn. unpriv_pi. gfinal. left. eapply CIH; eauto. apply H3. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - repeat rewrite bind_vis. gstep. red. cbn. unpriv_pi. + repeat rewrite bind_vis. gstep. cbn. unpriv_pi. gfinal. left. eapply CIH; eauto. apply H3. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. gstep. red. unpriv_pi. - gfinal. left. eapply CIH; eauto. pfold. red. cbn. pstep_reverse. + rewrite bind_vis. gstep. unpriv_pi. + gfinal. left. eapply CIH; eauto. step. cbn. pstep_reverse. - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. gstep. red. unpriv_pi. - gfinal. left. eapply CIH; eauto. pfold. red. cbn. pstep_reverse. + rewrite bind_vis. gstep. unpriv_pi. + gfinal. left. eapply CIH; eauto. step. cbn. pstep_reverse. Qed. Lemma pi_eqit_secure_iter_bind_aux: @@ -438,7 +438,7 @@ Lemma pi_eqit_secure_iter_bind_aux: Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r CIH t1 t2 H2. generalize dependent t2. revert t1. gcofix CIH'. intros t1 t2 Ht12. - pinversion Ht12; apply simpobs in H; apply simpobs in H0. + sinv Ht12; apply simpobs in H; apply simpobs in H0. - rewrite H, H0. repeat rewrite bind_ret_l. inv H1. + gstep. constructor. gfinal. left. apply CIH'0. eapply CIH; eauto. + gstep. constructor; auto. @@ -472,7 +472,7 @@ Lemma secure_eqit_iter E A1 A2 B1 B2 (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> P pi_eqit_secure Label priv RB b1 b2 l (ITree.iter body1 a1) (ITree.iter body2 a2). Proof. intro Hbody. ginit. gcofix CIH. intros. rewrite unfold_iter. rewrite unfold_iter. - apply Hbody in H0. pinversion H0; apply simpobs in H; apply simpobs in H1. + apply Hbody in H0. sinv H0; apply simpobs in H; apply simpobs in H1. - rewrite H. rewrite H1. repeat rewrite bind_ret_l. inv H2. + gstep. constructor. gfinal. left. eapply CIH; eauto. + gstep. constructor; auto. diff --git a/extra/Secure/SecureEqProgInsensFacts.v b/extra/Secure/SecureEqProgInsensFacts.v index d755c0ea..dac1bf0e 100644 --- a/extra/Secure/SecureEqProgInsensFacts.v +++ b/extra/Secure/SecureEqProgInsensFacts.v @@ -34,23 +34,23 @@ Proof. - rewrite Heq. assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Ret r1) (Ret s) ). rewrite <- Heq. auto. - pinversion H. subst. inv H2. + sinv H. subst. inv H2. + rewrite bind_ret_l. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. + rewrite bind_ret_l. gstep. constructor. auto. - rewrite Heq. rewrite bind_tau. gstep. constructor; auto. gfinal. left. eapply CIH'. assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Tau t0) (Ret s)). - rewrite <- Heq. auto. pinversion H. rewrite <- itree_eta. auto. + rewrite <- Heq. auto. sinv H. rewrite <- itree_eta. auto. - destruct (classic (leq (priv _ e) l ) ). + exfalso. apply HRinv in Hr0. assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s) ). { rewrite <- Heq. auto. } - pinversion H0; subst. ddestruction. subst. contradiction. + sinv H0; subst. ddestruction. subst. contradiction. + rewrite Heq. rewrite bind_vis. gstep. constructor; auto. intros x. gfinal. left. eapply CIH'. assert ( pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s)) . - rewrite <- Heq. auto. pinversion H0; subst; ddestruction; subst. + rewrite <- Heq. auto. sinv H0; subst; ddestruction; subst. rewrite <- itree_eta. apply H2. Qed. @@ -70,9 +70,9 @@ Lemma pi_eqit_secure_trans_ret E R1 R2 R3 Label priv l b1 b2 pi_eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. revert t1 t3. ginit. gcofix CIH. - intros. pinversion H0; subst; try inv CHECK; use_simpobs. + intros. sinv H0; subst; try inv CHECK; use_simpobs. - rewrite H. generalize dependent t3. gcofix CIH'. intros t3 Ht3. - pinversion Ht3; use_simpobs. + sinv Ht3; use_simpobs. + rewrite H2. gstep. constructor; auto. econstructor; eauto. + rewrite H2. gstep. constructor; auto. gfinal. left. eapply CIH'. symmetry in H1. use_simpobs. rewrite H1 in H4. auto. @@ -90,7 +90,7 @@ Lemma pi_eqit_secure_pub_vis E R1 R2 RR Label priv l b1 b2 A (e : E A) (forall a, pi_eqit_secure Label priv RR b1 b2 l (k1 a) (k2 a) ) -> pi_eqit_secure Label priv RR b1 b2 l (Vis e k1) (Vis e k2). Proof. - intros. pfold. constructor; auto. left. apply H0. + intros. step. constructor; auto. left. apply H0. Qed. Lemma pi_eqit_secure_priv_vislr E R1 R2 RR Label priv l b1 b2 A B (e1 : E A) (e2 : E B) @@ -99,7 +99,7 @@ Lemma pi_eqit_secure_priv_vislr E R1 R2 RR Label priv l b1 b2 A B (e1 : E A) (e2 (forall a b, pi_eqit_secure Label priv RR b1 b2 l (k1 a) (k2 b) ) -> pi_eqit_secure Label priv RR b1 b2 l (Vis e1 k1) (Vis e2 k2). Proof. - intros. pfold. constructor; auto. left. apply H1. + intros. step. constructor; auto. left. apply H1. Qed. Lemma pi_eqit_secure_priv_visl E R1 R2 RR Label priv l b2 A (e1 : E A) @@ -108,7 +108,7 @@ Lemma pi_eqit_secure_priv_visl E R1 R2 RR Label priv l b2 A (e1 : E A) (forall a, pi_eqit_secure Label priv RR true b2 l (k1 a) t2 ) -> pi_eqit_secure Label priv RR true b2 l (Vis e1 k1) t2. Proof. - intros. pfold. constructor; auto. left. apply H0. + intros. step. constructor; auto. left. apply H0. Qed. Lemma pi_eqit_secure_priv_visr E R1 R2 RR Label priv l b1 A (e1 : E A) @@ -117,7 +117,7 @@ Lemma pi_eqit_secure_priv_visr E R1 R2 RR Label priv l b1 A (e1 : E A) (forall a, pi_eqit_secure Label priv RR b1 true l t1 (k2 a) ) -> pi_eqit_secure Label priv RR b1 true l t1 (Vis e1 k2). Proof. - intros. pfold. constructor; auto. left. apply H0. + intros. step. constructor; auto. left. apply H0. Qed. Lemma pi_secure_eqit_bind' @@ -135,7 +135,7 @@ Lemma pi_secure_eqit_bind' Proof. intros. revert H0. generalize dependent t2. generalize dependent t1. gcofix CIH. intros t1 t2 Ht12. - pinversion Ht12; use_simpobs. + sinv Ht12; use_simpobs. - rewrite H0, H1. repeat rewrite bind_ret_l. gfinal. right. eapply paco2_mon; try apply CIH0. auto. - rewrite H0, H1. repeat rewrite bind_tau. gstep. constructor. gfinal. left. eapply CIH. @@ -148,11 +148,11 @@ Proof. rewrite H0. auto. - rewrite H0, H1. repeat rewrite bind_vis. gstep. constructor; auto. intros. gfinal. left. eapply CIH; eauto. apply H2. - - rewrite H0, H1. rewrite bind_vis, bind_tau. gstep. red. cbn. unpriv_pi. + - rewrite H0, H1. rewrite bind_vis, bind_tau. gstep. cbn. unpriv_pi. gfinal. left. eapply CIH; eauto. apply H2. - - rewrite H0, H1. rewrite bind_vis, bind_tau. gstep. red. cbn. unpriv_pi. + - rewrite H0, H1. rewrite bind_vis, bind_tau. gstep. cbn. unpriv_pi. gfinal. left. eapply CIH; eauto. apply H2. - - rewrite H0, H1. repeat rewrite bind_vis. gstep. red. cbn. unpriv_pi. + - rewrite H0, H1. repeat rewrite bind_vis. gstep. cbn. unpriv_pi. gfinal. left. eapply CIH. apply H2. - rewrite H0. rewrite bind_vis. gstep. constructor; auto. gfinal. left. eapply CIH. apply simpobs in H1. rewrite <- itree_eta in H1. rewrite H1. diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 28e25df8..4549cd4f 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -23,7 +23,7 @@ Lemma eqit_secureC_wcompat_id : forall b1 b2 E R1 R2 (RR : R1 -> R2 -> Prop ) Proof. econstructor. pmonauto_itree. intros. destruct PR. - punfold EQVl. punfold EQVr. unfold_eqit. red in REL. red. + step in EQVl. step in EQVr. unfold_eqit. red in REL. red. hinduction REL before r; intros; clear t1' t2'; try inv CHECK. - genobs_clear t1 ot1. genobs_clear t2 ot2. remember (RetF r1) as x. @@ -34,26 +34,26 @@ Proof. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. remember (TauF t2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. - pclearbot. constructor. gclo. econstructor; eauto with paco. + constructor. gclo. econstructor; eauto with paco. - eapply IHREL; eauto. remember (TauF t1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. - constructor; auto. pclearbot. pstep_reverse. + constructor; auto. pstep_reverse. - eapply IHREL; eauto. remember (TauF t2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree. - constructor; auto. pclearbot. pstep_reverse. + constructor; auto. pstep_reverse. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. ddestruction. subst. remember (VisF e0 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. ddestruction. subst. constructor; auto. - intros. apply gpaco2_clo. pclearbot. econstructor; eauto with itree. apply H. + intros. apply gpaco2_clo. econstructor; eauto with itree. apply H. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. - ddestruction. subst. pclearbot. remember (TauF t2) as y. + ddestruction. subst. remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. - pclearbot. + unpriv_co. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. - remember (TauF t1) as x. @@ -61,49 +61,49 @@ Proof. remember (VisF e k2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. ddestruction. subst. - pclearbot. unpriv_co. gclo. econstructor; eauto with paco itree. + unpriv_co. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. - remember (VisF e1 k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. ddestruction. subst. remember (VisF e2 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. - ddestruction. subst. unpriv_co. gclo. pclearbot. + ddestruction. subst. unpriv_co. gclo. econstructor; eauto with itree paco. gfinal. left. apply H. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. - ddestruction. subst. pclearbot. unpriv_ind. + ddestruction. subst. unpriv_ind. eapply H0; eauto. pstep_reverse. - remember (VisF e k2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree. - ddestruction. subst. pclearbot. unpriv_ind. + ddestruction. subst. unpriv_ind. eapply H0; eauto. pstep_reverse. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. ddestruction. subst. remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. - pclearbot. unpriv_halt. gclo. econstructor; eauto with paco. - pfold. constructor. red; auto. + unpriv_halt. gclo. econstructor; eauto with paco. + step. constructor. red; auto. - remember (VisF e k2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree. ddestruction. subst. remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree. - pclearbot. unpriv_halt. gclo. econstructor; eauto with paco. - pfold. constructor. red; auto. + unpriv_halt. gclo. econstructor; eauto with paco. + step. constructor. red; auto. - remember (VisF e1 k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; try contra_size; eauto with itree. ddestruction. subst. remember (VisF e2 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. - ddestruction. subst. unpriv_halt. pclearbot. + ddestruction. subst. unpriv_halt. gclo. econstructor 1 with (t1' := Vis e1 k0); eauto with paco itree. - + pfold. constructor; left; auto. + + step. constructor; left; auto. + gfinal. left. apply H. - remember (VisF e1 k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; try contra_size; eauto with itree. ddestruction. subst. remember (VisF e2 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. - ddestruction. subst. unpriv_halt. pclearbot. + ddestruction. subst. unpriv_halt. gclo. econstructor 1 with (t2' := Vis e2 k4); eauto with paco itree. - + pfold. constructor. left. auto. + + step. constructor. left. auto. + gfinal. left. apply H. Qed. @@ -113,7 +113,7 @@ Lemma eqit_secure_shalt_refl : forall E R1 R2 b1 b2 (RR : R1 -> R2 -> Prop) Labe (~ leq (priv _ e) l) -> empty A -> eqit_secure Label priv RR b1 b2 l (Vis e k1) (Vis e k2). Proof. - intros. pfold. red. cbn. unpriv_halt. contra_size. + intros. step. cbn. unpriv_halt. contra_size. Qed. Ltac inv_vis_secure := ddestruction; subst; @@ -121,10 +121,10 @@ Ltac inv_vis_secure := ddestruction; subst; Ltac clear_trivial := repeat match goal with | H : empty ?A, H' : forall a : ?A, ?P |- _ => clear H' end. -Ltac eqit_secureC_halt_cases E := repeat (pclearbot; clear_trivial; match goal with +Ltac eqit_secureC_halt_cases E := repeat ( clear_trivial; match goal with | |- _ (TauF _ ) (TauF _) => constructor; gclo; pclearbot | |- eqit_secureC ?RR ?Label ?priv ?l ?b1 ?b2 _ ?t1 ?t2 => econstructor; clear_trivial; eauto with paco - | H : secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l _ _ (observe ?t1) _ |- eqit_secure ?Label ?priv ?RR ?b1 ?b2 ?l ?t1 ?t2 => pfold; eauto with itree + | H : secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l _ _ (observe ?t1) _ |- eqit_secure ?Label ?priv ?RR ?b1 ?b2 ?l ?t1 ?t2 => step; eauto with itree | H : nonempty ?A |- _ _ (@VisF _ _ _ ?A ?e _ ) => unpriv_co; gclo ; pclearbot | H : nonempty ?A |- _ (@VisF _ _ _ ?A ?e _ ) _ => unpriv_co; gclo ; pclearbot | H : empty ?A |- _ _ (@VisF _ _ _ ?A ?e _ ) => unpriv_halt; gclo ; pclearbot @@ -133,10 +133,10 @@ Ltac eqit_secureC_halt_cases E := repeat (pclearbot; clear_trivial; match goal w | H : forall a, secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l _ _ _ (observe ?t2), H1 : observe ?t2 = VisF ?e ?k |- eqit_secure _ _ _ _ _ _ _ (Vis ?e ?k) => - rewrite H1 in H; pfold; apply H + rewrite H1 in H; step; apply H | HA : empty ?A, HB : empty ?B, ev1 : E ?A |- eqit_secure _ _ _ _ _ _ (go (@VisF _ _ _ ?A _ _ )) (go (@VisF _ _ _ ?B _ _ )) - => pfold; red; cbn; unpriv_halt; try contra_size + => step; red; cbn; unpriv_halt; try contra_size | H : forall a : ?A, paco2 _ bot2 (?k a) ?t |- eqit_secure _ _ _ _ _ _ (?k ?a) (?t) => red; eauto with itree | H : forall a : ?A, paco2 _ bot2 ?t (?k a) |- eqit_secure _ _ _ _ _ _ ?t (?k ?a) => red; eauto with itree | H : forall (a : ?A) (b : ?B), paco2 _ bot2 (?k1 a) (?k2 b) |- @@ -149,10 +149,10 @@ Ltac eqit_secureC_halt_cases E := repeat (pclearbot; clear_trivial; match goal w | HA : empty ?A, HB : empty ?B |- gpaco2 _ _ _ _ (go (@VisF _ _ _ ?A _ _) ) (go (@VisF _ _ _ ?B _ _)) => gfinal; right; pstep; red; cbn; unpriv_halt | H : forall (a : ?A), _ (observe (?k a) ) observe (?t), Heq : observe ?t = VisF ?e ?k1 |- - eqit_secure _ _ _ _ _ _ (?k ?a) _ => rewrite itree_eta' in Heq; rewrite Heq in H; pfold; apply H + eqit_secure _ _ _ _ _ _ (?k ?a) _ => rewrite itree_eta' in Heq; rewrite Heq in H; step; apply H | H : forall a : ?A, ?P (observe (?k a) ) (observe ?t), Heq : observe ?t = VisF ?e ?k2 |- eqit_secure _ _ _ _ _ _ (?k ?a) _ => - rewrite itree_eta' in Heq; rewrite Heq in H; pfold; apply H + rewrite itree_eta' in Heq; rewrite Heq in H; step; apply H end; clear_trivial) . @@ -184,103 +184,103 @@ Proof. econstructor. { red. intros. eauto with paco. } intros. dependent destruction PR. - punfold EQVl. punfold EQVr. red in EQVl. red in EQVr. red in REL. red. + step in EQVl. step in EQVr. red in EQVl. red in EQVr. red in REL. red. hinduction REL before r; intros; clear t1' t2'; try inv CHECK. - remember (RetF r1) as x. hinduction EQVl before r; intros; subst; try inv Heqx; eauto with itree. remember (RetF r3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; eauto with itree. rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - remember (TauF t1) as x. hinduction EQVl before r; intros; subst; try inv Heqx; try inv CHECK; eauto with itree. - + remember (TauF t4) as y. pclearbot. + + remember (TauF t4) as y. (* think I might have a lead on the problem, should H0 have vclo not id here?*) hinduction EQVr before r; intros; subst; try inv Heqy; - try inv CHECK; pclearbot; try fold_secure; eauto with itree. + try inv CHECK; try fold_secure; eauto with itree. * constructor. gclo. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. - + remember (TauF t3) as y. pclearbot. + + remember (TauF t3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; - try inv CHECK; pclearbot; repeat fold_secure; eauto with itree. + try inv CHECK; repeat fold_secure; eauto with itree. * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. - + remember (TauF t3) as y. pclearbot. + + remember (TauF t3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; - try inv CHECK; pclearbot; repeat fold_secure; eauto with itree. + try inv CHECK; repeat fold_secure; eauto with itree. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. contra_size. - eapply IHREL; eauto. remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. pclearbot. pstep_reverse. - + unpriv_ind. pclearbot. pstep_reverse. - + pclearbot. punfold H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. - eapply IHREL; eauto. remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECL; eauto with itree. - + constructor; auto. pclearbot. pstep_reverse. - + unpriv_ind. pclearbot. pstep_reverse. - + pclearbot. punfold H. + + constructor; auto. pstep_reverse. + + unpriv_ind. pstep_reverse. + + step in H. - remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree. remember (VisF e0 k3) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; inv_vis_secure; eauto with itree. - + pclearbot. constructor; auto. intros. gclo. econstructor; eauto. + + constructor; auto. intros. gclo. econstructor; eauto. apply H0. apply H. gfinal; left; apply H1. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - unfold id in H. remember (VisF e k1) as x. hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree. - + pclearbot. remember (TauF t2) as y. + + remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. - * constructor. gclo. pclearbot. inv SIZECHECK. spew a. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. pclearbot. inv SIZECHECK0. spew a0; spew a. econstructor; eauto. + * constructor. gclo. inv SIZECHECK. spew a. econstructor; eauto. gfinal; eauto. + * unpriv_co. gclo. inv SIZECHECK0. spew a0; spew a. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. pclearbot. inv SIZECHECK0. + * unpriv_halt. inv SIZECHECK0. gclo. spew a. econstructor; eauto. gfinal; eauto. - + pclearbot. pclearbot. inv SIZECHECK. remember (TauF t2) as y. + + inv SIZECHECK. remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. - * unpriv_co. gclo. pclearbot. spew a0. spew a. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. pclearbot. fold_secure. spew a0; spew a. econstructor; eauto. gfinal; eauto. + * unpriv_co. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. + * unpriv_co. gclo. fold_secure. spew a0; spew a. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. - * pclearbot. unpriv_halt. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. - + pclearbot. inv SIZECHECK0. remember (TauF t2) as y. + * unpriv_halt. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. + + inv SIZECHECK0. remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. - * unpriv_halt. gclo. pclearbot. spew a; econstructor; eauto. + * unpriv_halt. gclo. spew a; econstructor; eauto. gfinal; eauto. - * unpriv_halt. gclo. pclearbot. fold_secure. spew a. econstructor; eauto. gfinal; eauto. + * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. - * pclearbot. unpriv_halt. contra_size. + * unpriv_halt. contra_size. - unfold id in H. remember (VisF e k2) as x. hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree. - + pclearbot. remember (TauF t0) as y. + + remember (TauF t0) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree; repeat fold_secure. - * constructor. gclo. pclearbot. fold_secure. inv SIZECHECK. + * constructor. gclo. fold_secure. inv SIZECHECK. spew a; econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. pclearbot. fold_secure. inv SIZECHECK0. spew a; spew a0. econstructor; eauto. + * unpriv_co. gclo. fold_secure. inv SIZECHECK0. spew a; spew a0. econstructor; eauto. gfinal; eauto. * rewrite itree_eta'. unpriv_ind. eauto. - * unpriv_halt. pclearbot. inv SIZECHECK0. + * unpriv_halt. inv SIZECHECK0. gclo. spew a; econstructor; eauto. gfinal; eauto. - + pclearbot. pclearbot. inv SIZECHECK. remember (TauF t1) as y. + + inv SIZECHECK. remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. - * unpriv_co. gclo. pclearbot. spew a0; spew a. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. pclearbot. spew b; spew a; spew a0; econstructor; eauto. + * unpriv_co. gclo. spew a0; spew a. econstructor; eauto. gfinal; eauto. + * unpriv_co. gclo. spew b; spew a; spew a0; econstructor; eauto. gfinal; eauto. * rewrite itree_eta'. unpriv_ind. eauto. - * pclearbot. unpriv_halt. gclo. spew a. econstructor; eauto. gfinal; eauto. - + pclearbot. inv SIZECHECK0. remember (TauF t1) as y. + * unpriv_halt. gclo. spew a. econstructor; eauto. gfinal; eauto. + + inv SIZECHECK0. remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree. - * unpriv_halt. gclo. pclearbot. fold_secure. spew a. econstructor; eauto. + * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. gfinal; eauto. - * unpriv_halt. gclo. pclearbot. fold_secure. spew a. econstructor; eauto. + * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. gfinal; eauto. * rewrite itree_eta'. unpriv_ind. eauto. - * pclearbot. unpriv_halt. contra_size. + * unpriv_halt. contra_size. - unfold id in H. remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; pclearbot; fold_secure. + hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; fold_secure. 1: inv SIZECHECK1; inv SIZECHECK2; remember (VisF e1 k1) as y. 2: inv SIZECHECK0; inv SIZECHECK3; remember (VisF e0 k0) as y. 3: inv SIZECHECK1; inv SIZECHECK2; remember (VisF e0 k0) as y. @@ -290,29 +290,29 @@ Proof. all: rewrite itree_eta'; unpriv_ind; auto with itree; eauto. - inv SIZECHECK. eapply H0; eauto. Unshelve. all : auto. remember (VisF e k1) as x. clear H0. - hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; try inv CHECK; pclearbot; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; try inv CHECK; eauto with itree. + constructor; auto. pstep_reverse. + unpriv_ind. pstep_reverse. + rewrite itree_eta' at 1 . pstep_reverse. - inv SIZECHECK. eapply (H0 a); eauto. remember (VisF e k2) as x. clear H0. - hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; try inv CHECK; pclearbot; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; try inv CHECK; eauto with itree. + constructor; auto. pstep_reverse. + unpriv_ind. pstep_reverse. + rewrite itree_eta' at 1 . pstep_reverse. - remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; pclearbot; eauto with itree; + hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree; inv EQVl; inv_vis_secure; eqit_secureC_halt_cases E. - + pclearbot. find_size A0; eqit_secureC_halt_cases E. - + pclearbot. find_size A1; eqit_secureC_halt_cases E. + + find_size A0; eqit_secureC_halt_cases E. + + find_size A1; eqit_secureC_halt_cases E. - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; pclearbot; eauto with itree; + hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree; inv EQVr; inv_vis_secure; eqit_secureC_halt_cases E. + find_size A0; eqit_secureC_halt_cases E. + find_size A1; eqit_secureC_halt_cases E. - unfold id in H. remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; pclearbot; eauto with itree; + hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; inv EQVl; inv_vis_secure; (* maybe I should just write a new one *) do 2 ( @@ -331,7 +331,7 @@ Proof. try apply H3; try apply H; eqit_secureC_halt_cases E. Unshelve. all : auto. - unfold id in H. remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; pclearbot; eauto with itree; + hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; inv EQVr; inv_vis_secure; do 2 ( repeat match goal with | H : nonempty ?A |- _ => inv H end; diff --git a/extra/Secure/SecureStateHandler.v b/extra/Secure/SecureStateHandler.v index 5f7d9d4d..dfd3f5ce 100644 --- a/extra/Secure/SecureStateHandler.v +++ b/extra/Secure/SecureStateHandler.v @@ -101,9 +101,9 @@ Qed. Lemma diverges_with_bind : forall E (P : forall A, E A -> Prop) (A B : Type) (k : A -> itree E B) (t : itree E A) , diverges_with P t -> diverges_with P (ITree.bind t k). Proof. - intros P A B k. pcofix CIH. intros. - pfold. red. unfold observe. cbn. - pinversion H0; cbn. + intros P A B k. coinduction c CIH. intros. + step. unfold observe. cbn. + sinv H0; cbn. - constructor; eauto. - constructor; intros; eauto. right. eapply CIH; eauto. apply H1. Qed. @@ -111,7 +111,7 @@ Qed. Lemma diverges_with_halt : forall E (A B : Type) (e : E A) (k : A -> itree E B) (P : forall A, E A -> Prop), P A e -> empty A -> diverges_with P (Vis e k). Proof. - intros. pfold. constructor; auto. intros; contra_size. + intros. step. constructor; auto. intros; contra_size. Qed. Lemma diverges_secure_equiv_halt_r : forall A R1 R2 RR (e : E1 A) (k : A -> itree E1 R1) (t : itree E1 R2), @@ -120,16 +120,16 @@ Lemma diverges_secure_equiv_halt_r : forall A R1 R2 RR (e : E1 A) (k : A -> itre eqit_secure Label priv1 RR true true l (Vis e k) t -> diverges_with (fun _ e => ~ leq (priv1 _ e) l) t. Proof. - intros A R1 R2 RR e k t Hemp Hsec. revert t. pcofix CIH. - intros. punfold H0. red in H0. + intros A R1 R2 RR e k t Hemp Hsec. revert t. coinduction c CIH. + intros. step in H0. red in H0. cbn in *. remember (VisF e k) as ov. remember (observe t) as ot. hinduction H0 before r; intros; inv Heqov; subst; ddestruction; subst; try discriminate; try contradiction; try contra_size; use_simpobs. - - rewrite Heqot. pfold. constructor. left. eapply IHsecure_eqitF; eauto. - - pclearbot. rewrite Heqot. pfold. constructor; eauto. - - rewrite Heqot. pfold. constructor. right. pclearbot. eapply CIH; eauto. - - pclearbot. rewrite Heqot. pfold. constructor; auto. right. eapply CIH; eauto. apply H. - - rewrite Heqot. pfold. constructor; auto. right. eapply CIH; eauto. contra_size. + - rewrite Heqot. step. constructor. left. eapply IHsecure_eqitF; eauto. + - rewrite Heqot. step. constructor; eauto. + - rewrite Heqot. step. constructor. right. eapply CIH; eauto. + - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. apply H. + - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. contra_size. Qed. Lemma diverges_secure_equiv_halt_l : forall A R1 R2 RR (e : E1 A) (k : A -> itree E1 R1) (t : itree E1 R2), @@ -138,22 +138,22 @@ Lemma diverges_secure_equiv_halt_l : forall A R1 R2 RR (e : E1 A) (k : A -> itre eqit_secure Label priv1 RR true true l t (Vis e k) -> diverges_with (fun _ e => ~ leq (priv1 _ e) l) t. Proof. - intros A R1 R2 RR e k t Hemp Hsec. revert t. pcofix CIH. - intros. punfold H0. red in H0. + intros A R1 R2 RR e k t Hemp Hsec. revert t. coinduction c CIH. + intros. step in H0. red in H0. cbn in *. remember (VisF e k) as ov. remember (observe t) as ot. hinduction H0 before r; intros; inv Heqov; subst; ddestruction; subst; try discriminate; try contradiction; try contra_size; use_simpobs. - - rewrite Heqot. pfold. constructor. left. eapply IHsecure_eqitF; eauto. - - pclearbot. rewrite Heqot. pfold. constructor; eauto. - - rewrite Heqot. pfold. constructor. right. pclearbot. eapply CIH; eauto. - - pclearbot. rewrite Heqot. pfold. constructor; auto. right. eapply CIH; eauto. contra_size. - - pclearbot. rewrite Heqot. pfold. constructor; auto. right. eapply CIH; eauto. apply H. + - rewrite Heqot. step. constructor. left. eapply IHsecure_eqitF; eauto. + - rewrite Heqot. step. constructor; eauto. + - rewrite Heqot. step. constructor. right. eapply CIH; eauto. + - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. contra_size. + - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. apply H. Qed. Lemma diverges_with_spin : forall E A P, diverges_with P (@ITree.spin E A). Proof. - intros. pcofix CIH. pfold. red. cbn. constructor. + intros. coinduction c CIH. step. cbn. constructor. right; auto. Qed. @@ -162,40 +162,40 @@ Lemma eqit_secure_silent_diverge : forall A B RR (t1 : itree E2 A) (t2 : itree E diverges_with (fun _ e => ~ leq (priv2 _ e) l) t2 -> eqit_secure Label priv2 RR true true l t1 t2. Proof. - intros A B RR. pcofix CIH. intros. - punfold H0. red in H0. punfold H1. red in H1. + intros A B RR. coinduction c CIH. intros. + step in H0. red in H0. step in H1. red in H1. inversion H0; inversion H1; use_simpobs; try rewrite H; try rewrite H3. - - pfold. constructor. right. pclearbot. eapply CIH; eauto. + - step. constructor. right. eapply CIH; eauto. - destruct (classic_empty B0). - + pclearbot. pfold. constructor; auto. pstep_reverse. clear H. clear CIH. - generalize dependent t. pcofix CIH. intros. - pinversion H2; use_simpobs. - * rewrite H. pfold. red. cbn. unpriv_halt. - * rewrite H. pfold. red. cbn. unpriv_halt. - + pfold. red. cbn. unpriv_co. right. pclearbot. eapply CIH; eauto. apply H4. - - pclearbot. destruct (classic_empty B0). - + pclearbot. clear H4. clear CIH. - generalize dependent t2. pcofix CIH. intros. + + step. constructor; auto. pstep_reverse. clear H. clear CIH. + generalize dependent t. coinduction c CIH. intros. + sinv H2; use_simpobs. + * rewrite H. step. cbn. unpriv_halt. + * rewrite H. step. cbn. unpriv_halt. + + step. cbn. unpriv_co. right. eapply CIH; eauto. apply H4. + - destruct (classic_empty B0). + + clear H4. clear CIH. + generalize dependent t2. coinduction c CIH. intros. inversion H4; use_simpobs. - * rewrite H1. pfold. red. cbn. pclearbot. unpriv_halt. right. eapply CIH; eauto. punfold H7. - * rewrite H1. pfold. red. cbn. unpriv_halt. right. pclearbot. eapply CIH; eauto. pstep_reverse. - + rewrite H4. pfold. red. cbn. unpriv_co. right. pclearbot. eapply CIH; eauto. apply H2. - - pclearbot. rewrite H4. + * rewrite H1. step. cbn. unpriv_halt. right. eapply CIH; eauto. step in H7. + * rewrite H1. step. cbn. unpriv_halt. right. eapply CIH; eauto. pstep_reverse. + + rewrite H4. step. cbn. unpriv_co. right. eapply CIH; eauto. apply H2. + - rewrite H4. destruct (classic_empty B0); destruct (classic_empty B1). - + pfold. red. cbn. unpriv_halt. contra_size. + + step. cbn. unpriv_halt. contra_size. + assert (diverges_with (fun _ e => ~ leq (priv2 _ e) l) (Vis e0 k0)). - { pfold. constructor; auto. } + { step. constructor; auto. } rewrite <- H4. rewrite <- H4 in H9. clear H4. clear H1 CIH. generalize dependent t2. - pcofix CIH. intros. pinversion H9; use_simpobs. - * rewrite H1. pfold. red. cbn. unpriv_halt. - * rewrite H1. pfold. red. cbn. unpriv_halt. right. eapply CIH; eauto. apply H4. + coinduction c CIH. intros. sinv H9; use_simpobs. + * rewrite H1. step. cbn. unpriv_halt. + * rewrite H1. step. cbn. unpriv_halt. right. eapply CIH; eauto. apply H4. + assert (diverges_with (fun _ e => ~ leq (priv2 _ e) l) (Vis e k)). - { pfold. constructor; auto. } + { step. constructor; auto. } rewrite <- H. rewrite <- H in H9. clear H. clear H0 CIH. generalize dependent t1. - pcofix CIH. intros. pinversion H9; use_simpobs. - * rewrite H. pfold. red. cbn. unpriv_halt. - * rewrite H. pfold. red. cbn. unpriv_halt. right. eapply CIH; eauto. apply H0. - + pfold. red. cbn. unpriv_co. right. eapply CIH; eauto. apply H2. apply H5. + coinduction c CIH. intros. sinv H9; use_simpobs. + * rewrite H. step. cbn. unpriv_halt. + * rewrite H. step. cbn. unpriv_halt. right. eapply CIH; eauto. apply H0. + + step. cbn. unpriv_co. right. eapply CIH; eauto. apply H2. apply H5. Qed. Lemma silent_diverges_eqit_secure_spin : forall A B (RR : A -> B -> Prop) (t : itree E2 A), @@ -203,23 +203,23 @@ Lemma silent_diverges_eqit_secure_spin : forall A B (RR : A -> B -> Prop) (t : i Proof. intros. split. { intros. eapply eqit_secure_silent_diverge; eauto. apply diverges_with_spin. } - revert t. pcofix CIH. - intros t Ht. punfold Ht. red in Ht. remember (observe t) as ot. + revert t. coinduction c CIH. + intros t Ht. step in Ht. red in Ht. remember (observe t) as ot. remember (observe ITree.spin) as otspin. hinduction Ht before r; intros; subst; try discriminate; use_simpobs. - - pclearbot. rewrite Heqot. pfold. constructor. right. eapply CIH; eauto. rewrite Heqotspin. - pfold; constructor; auto. pstep_reverse. - - rewrite Heqot. pfold; constructor. left. eapply IHHt; eauto. + - rewrite Heqot. step. constructor. right. eapply CIH; eauto. rewrite Heqotspin. + step; constructor; auto. pstep_reverse. + - rewrite Heqot. step; constructor. left. eapply IHHt; eauto. - eapply IHHt; eauto. assert (ITree.spin ≅ t2). - { clear IHHt Ht. generalize dependent t2. pcofix CIH'. - intros. punfold Heqotspin. red in Heqotspin. cbn in *. inversion Heqotspin; try inv CHECK0. - subst. pclearbot. eapply paco2_mon; eauto; intros; try contradiction. } + { clear IHHt Ht. generalize dependent t2. coinduction c CIH'. + intros. step in Heqotspin. red in Heqotspin. cbn in *. inversion Heqotspin; try inv CHECK0. + subst. eapply paco2_mon; eauto; intros; try contradiction. } apply EqAxiom.bisimulation_is_eq in H. subst; auto. - - rewrite Heqot. pfold. constructor; auto. right. eapply CIH; eauto. pclearbot. rewrite Heqotspin. - pfold; constructor; auto. pstep_reverse. - - rewrite Heqot. pfold. constructor; auto. left. eapply H0; eauto. - - rewrite Heqot. pclearbot. pfold; constructor; auto. right. eapply CIH; eauto. - rewrite Heqotspin. pfold; constructor; auto. pstep_reverse. eapply unpriv_e_eqit_secure; eauto. + - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. rewrite Heqotspin. + step; constructor; auto. pstep_reverse. + - rewrite Heqot. step. constructor; auto. left. eapply H0; eauto. + - rewrite Heqot. step; constructor; auto. right. eapply CIH; eauto. + rewrite Heqotspin. step; constructor; auto. pstep_reverse. eapply unpriv_e_eqit_secure; eauto. Qed. @@ -229,14 +229,14 @@ Proof. split; intros. - red. intros. specialize (H0 s1). cbn. induction H0. - + pfold; constructor. split; try constructor. cbn. etransitivity; eauto. symmetry. auto. - + pfold; constructor; auto. pstep_reverse. eapply IHterminates; eauto. - + destruct H3. pfold. red. cbn. timeout 10 setoid_rewrite itree_eta' at 2. unpriv_ind. + + step; constructor. split; try constructor. cbn. etransitivity; eauto. symmetry. auto. + + step; constructor; auto. pstep_reverse. eapply IHterminates; eauto. + + destruct H3. step. cbn. timeout 10 setoid_rewrite itree_eta' at 2. unpriv_ind. pstep_reverse. eapply H2; eauto. - cbn in *. red in H0. assert (RS s s). reflexivity. inv H. specialize (H0 a s s H1). remember (m s) as t. clear Heqt. - punfold H0. red in H0. cbn in H0. remember (RetF (s,a) ) as oret. remember (observe t) as ot. + step in H0. red in H0. cbn in H0. remember (RetF (s,a) ) as oret. remember (observe t) as ot. hinduction H0 before E1; intros; try discriminate; use_simpobs. + rewrite Heqot. injection Heqoret; intros; subst. destruct r1, H. cbn in *. constructor. symmetry. auto. @@ -266,8 +266,8 @@ Lemma diverge_with_respectful_handler : forall (R : Type) (t : itree E1 R), diverges_with (fun _ e => ~ leq (priv1 _ e) l ) t -> forall s, diverges_with (fun _ e => ~ leq (priv2 _ e) l) (interp_state handler t s). Proof. - intro R. pcofix CIH. intros t Hdiv s. pinversion Hdiv; use_simpobs. - - rewrite H. rewrite interp_state_tau. pfold. constructor. right. eapply CIH; eauto. + intro R. coinduction c CIH. intros t Hdiv s. sinv Hdiv; use_simpobs. + - rewrite H. rewrite interp_state_tau. step. constructor. right. eapply CIH; eauto. - rewrite H. rewrite interp_state_vis. destruct (classic_empty B). + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. @@ -275,9 +275,9 @@ Proof. intros; contradiction. + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. specialize (FINCHECK s). induction FINCHECK. - * rewrite bind_ret_l. cbn. pfold. constructor. right. eapply CIH; eauto. apply H0. - * rewrite bind_tau. pfold. constructor. left. eapply IHFINCHECK; eauto. - * destruct H5. rewrite bind_vis. pfold. constructor; auto. left. eapply H4; eauto. + * rewrite bind_ret_l. cbn. step. constructor. right. eapply CIH; eauto. apply H0. + * rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. + * destruct H5. rewrite bind_vis. step. constructor; auto. left. eapply H4; eauto. Qed. @@ -286,23 +286,23 @@ Lemma interp_eqit_secure_state : forall (R1 R2 : Type) (RR : R1 -> R2 -> Prop) ( eqit_secure Label priv1 RR true true l t1 t2 -> state_eqit_secure true true RR (interp_state handler t1) (interp_state handler t2). Proof. - intros R1 R2 RR. pcofix CIH. intros t1 t2 Ht s1 s2 Hs. punfold Ht. + intros R1 R2 RR. coinduction c CIH. intros t1 t2 Ht s1 s2 Hs. step in Ht. red in Ht. remember (observe t1) as ot1. remember (observe t2) as ot2. hinduction Ht before r; intros; use_simpobs. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_ret. pfold. constructor. auto. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_tau. pfold. constructor. - pclearbot. right. apply CIH; auto. - - rewrite Heqot1. rewrite interp_state_tau. pfold. constructor; auto. pstep_reverse. - - rewrite Heqot2. rewrite interp_state_tau. pfold. constructor; auto. pstep_reverse. + - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_ret. step. constructor. auto. + - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_tau. step. constructor. + right. apply CIH; auto. + - rewrite Heqot1. rewrite interp_state_tau. step. constructor; auto. pstep_reverse. + - rewrite Heqot2. rewrite interp_state_tau. step. constructor; auto. pstep_reverse. - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. - specialize (Hhandler A e). pclearbot. repeat rewrite bind_tau. + specialize (Hhandler A e). repeat rewrite bind_tau. (* could use the bind closure here, but maybe we can do manually for now*) repeat setoid_rewrite <- interp_state_tau. inv Hhandler; try contradiction. specialize (RESCHECK s1 s2 Hs). eapply secure_eqit_bind'; eauto. intros [] [] []. simpl in *. subst. repeat rewrite interp_state_tau. - pfold. constructor. right. eapply CIH; eauto. apply H. - - pclearbot. rewrite Heqot1. rewrite Heqot2. + step. constructor. right. eapply CIH; eauto. apply H. + - rewrite Heqot1. rewrite Heqot2. rewrite interp_state_tau. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction; try contra_size. specialize (FINCHECK s1). induction FINCHECK. @@ -310,7 +310,7 @@ Proof. apply CIH. apply H. etransitivity; [symmetry |]; eauto. + rewrite bind_tau. pstep. constructor 3; auto. pstep_reverse. + rewrite bind_vis. pstep. destruct H2. constructor 9; auto. intros. pstep_reverse. - - pclearbot. rewrite Heqot1. rewrite Heqot2. + - rewrite Heqot1. rewrite Heqot2. rewrite interp_state_tau. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction; try contra_size. specialize (FINCHECK s2). induction FINCHECK. @@ -318,7 +318,7 @@ Proof. apply CIH. apply H. etransitivity; eauto. + rewrite bind_tau. pstep. constructor 4; auto. pstep_reverse. + rewrite bind_vis. pstep. destruct H2. constructor 10; auto. intros. pstep_reverse. - - pclearbot. rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. + - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. specialize (Hhandler _ e1) as He1. specialize (Hhandler _ e2) as He2. inv He1; inv He2; try contradiction; try contra_size. eapply secure_eqit_bind' with (RR := prod_rel RS (fun _ _ => True)). @@ -347,25 +347,25 @@ Proof. eapply H0; eauto. simpl. etransitivity; eauto. + rewrite bind_tau. pstep. constructor 4; auto. pstep_reverse. + rewrite bind_vis. pstep. destruct H3. constructor 10; auto. intros. pstep_reverse. - - pclearbot. + - rewrite Heqot1. rewrite interp_state_vis. rewrite Heqot2. rewrite interp_state_tau. pose proof Hhandler as Hhandler'. specialize (Hhandler' _ e). inv Hhandler'; try contradiction; try contra_size. eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. + eapply diverges_with_bind; eauto. - + pfold. constructor. left. eapply diverge_with_respectful_handler; eauto. + + step. constructor. left. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_r; eauto. - - pclearbot. + - rewrite Heqot1. rewrite interp_state_tau. rewrite Heqot2. rewrite interp_state_vis. pose proof Hhandler as Hhandler'. specialize (Hhandler' _ e). inv Hhandler'; try contradiction; try contra_size. eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. - + pfold. constructor. left. eapply diverge_with_respectful_handler; eauto. + + step. constructor. left. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_l; eauto. + eapply diverges_with_bind; eauto. - - pclearbot. rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. + - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. pose proof Hhandler as Hhandler'. pose proof Hhandler as Hhandler''. specialize (Hhandler'' _ e2). inv Hhandler''; try contradiction; try contra_size. @@ -373,24 +373,24 @@ Proof. eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. + eapply diverges_with_bind; eauto. + specialize (FINCHECK s2). induction FINCHECK. - * rewrite bind_ret_l. pfold; constructor. left. cbn. + * rewrite bind_ret_l. step; constructor. left. cbn. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_r; eauto. apply H. - * rewrite bind_tau. pfold; constructor. left. eapply IHFINCHECK; eauto. - * rewrite bind_vis. pfold. constructor. left. eapply H1; eauto. destruct H2; auto. + * rewrite bind_tau. step; constructor. left. eapply IHFINCHECK; eauto. + * rewrite bind_vis. step. constructor. left. eapply H1; eauto. destruct H2; auto. + eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. * apply diverges_with_bind. specialize (Hhandler _ e1). inv Hhandler; try contradiction; try contra_size; auto. * apply diverges_with_bind; auto. - - pclearbot. rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. + - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. pose proof Hhandler as Hhandler'. pose proof Hhandler as Hhandler''. eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. + specialize (Hhandler'' _ e1). inv Hhandler''; try contradiction; try contra_size. * specialize (FINCHECK s1). induction FINCHECK. - ++ rewrite bind_ret_l. pfold; constructor. cbn. left. + ++ rewrite bind_ret_l. step; constructor. cbn. left. eapply diverge_with_respectful_handler. eapply diverges_secure_equiv_halt_l; eauto. apply H. - ++ rewrite bind_tau. pfold. constructor. left. eapply IHFINCHECK; eauto. - ++ destruct H2. rewrite bind_vis. pfold. constructor; auto. left. eapply H1; eauto. + ++ rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. + ++ destruct H2. rewrite bind_vis. step. constructor; auto. left. eapply H1; eauto. * apply diverges_with_bind; auto. + specialize (Hhandler'' _ e2). inv Hhandler''; try contradiction; try contra_size. apply diverges_with_bind; auto. diff --git a/extra/Secure/SecureStateHandlerPi.v b/extra/Secure/SecureStateHandlerPi.v index 3ee93db4..30f9631a 100644 --- a/extra/Secure/SecureStateHandlerPi.v +++ b/extra/Secure/SecureStateHandlerPi.v @@ -54,7 +54,7 @@ Definition secure_in_empty_context {R} (m : stateT S (itree E2) R) := Lemma diverges_with_spin : forall E A P, diverges_with P (@ITree.spin E A). Proof. - intros. pcofix CIH. pfold. red. cbn. constructor. + intros. coinduction c CIH. step. cbn. constructor. right; auto. Qed. @@ -62,15 +62,15 @@ Lemma pi_eqit_secure_silent_divergel : forall A B RR (t1 : itree E2 A) (t2 : itr diverges_with (fun _ e => ~ leq (priv2 _ e) l) t1 -> pi_eqit_secure Label priv2 RR true true l t1 t2. Proof. - intros A B RR. pcofix CIH. intros. - punfold H0. all : try apply mono_diverges_with. red in H0. + intros A B RR. coinduction c CIH. intros. + step in H0. all : try apply mono_diverges_with. red in H0. inversion H0; use_simpobs; try rewrite H; try rewrite H3. - - pfold. constructor; auto. right. pclearbot. eapply CIH; eauto. + - step. constructor; auto. right. eapply CIH; eauto. - destruct (classic_empty B0). + eapply paco2_mon with (r := bot2); intros; try contradiction. apply pi_eqit_secure_sym. apply pi_eqit_secure_private_halt; auto. - + pfold. red. cbn. constructor; auto. right. pclearbot. eapply CIH; eauto. + + step. cbn. constructor; auto. right. eapply CIH; eauto. apply H1. Qed. @@ -87,8 +87,8 @@ Lemma silent_terminates_eqit_secure_ret : forall R (m : stateT S (itree E2) R), Proof. red. intros. specialize (H0 s1). cbn. induction H0. - - pfold; constructor. split; try constructor. cbn. etransitivity; eauto. symmetry. auto. - - pfold; constructor; auto. + - step; constructor. split; try constructor. cbn. etransitivity; eauto. symmetry. auto. + - step; constructor; auto. left. eapply IHterminates; auto. - apply pi_eqit_secure_priv_visl; auto. destruct H3. auto. Qed. @@ -109,8 +109,8 @@ Lemma diverge_with_respectful_handler : forall (R : Type) (t : itree E1 R), diverges_with (fun _ e => ~ leq (priv1 _ e) l ) t -> forall s, diverges_with (fun _ e => ~ leq (priv2 _ e) l) (interp_state handler t s). Proof. - intro R. pcofix CIH. intros t Hdiv s. pinversion Hdiv; use_simpobs. - - rewrite H. rewrite interp_state_tau. pfold. constructor. right. eapply CIH; eauto. + intro R. coinduction c CIH. intros t Hdiv s. sinv Hdiv; use_simpobs. + - rewrite H. rewrite interp_state_tau. step. constructor. right. eapply CIH; eauto. - rewrite H. rewrite interp_state_vis. destruct (classic_empty B). + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. @@ -118,51 +118,51 @@ Proof. intros; contradiction. + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. specialize (FINCHECK s). induction FINCHECK. - * rewrite bind_ret_l. cbn. pfold. constructor. right. eapply CIH; eauto. apply H0. - * rewrite bind_tau. pfold. constructor. left. eapply IHFINCHECK; eauto. - * destruct H5. rewrite bind_vis. pfold. constructor; auto. left. eapply H4; eauto. + * rewrite bind_ret_l. cbn. step. constructor. right. eapply CIH; eauto. apply H0. + * rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. + * destruct H5. rewrite bind_vis. step. constructor; auto. left. eapply H4; eauto. Qed. *) Lemma diverges_with_bind : forall E R S P (t : itree E R) (k : R -> itree E S), diverges_with P t -> diverges_with P (ITree.bind t k). Proof. - intros E R1 R2 P. pcofix CIH. - intros t k Ht. punfold Ht. pfold. red. + intros E R1 R2 P. coinduction c CIH. + intros t k Ht. step in Ht. step. red. unfold observe. cbn. red in Ht. inv Ht. - - cbn. constructor. right. pclearbot. eapply CIH; eauto. - - pclearbot. cbn. constructor; auto. right. eapply CIH; eauto. apply H0. + - cbn. constructor. right. eapply CIH; eauto. + - cbn. constructor; auto. right. eapply CIH; eauto. apply H0. Qed. Lemma interp_pi_eqit_secure_state : forall (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (t1 : itree E1 R1) (t2 : itree E1 R2), pi_eqit_secure Label priv1 RR true true l t1 t2 -> state_pi_eqit_secure true true RR (interp_state handler t1) (interp_state handler t2). Proof. - intros R1 R2 RR. ginit. gcofix CIH. intros t1 t2 Ht s1 s2 Hs. punfold Ht. + intros R1 R2 RR. ginit. gcofix CIH. intros t1 t2 Ht s1 s2 Hs. step in Ht. red in Ht. inv Ht; intros; use_simpobs. - rewrite H, H0. repeat rewrite interp_state_ret. gstep. constructor. split; auto. - rewrite H, H0. repeat rewrite interp_state_tau. gstep. constructor. - gfinal. left. pclearbot. apply CIH; auto. - - pclearbot. rewrite H. rewrite interp_state_tau. gstep. constructor; auto. + gfinal. left. apply CIH; auto. + - rewrite H. rewrite interp_state_tau. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. apply simpobs in H0. rewrite <- itree_eta in H0. rewrite H0. auto. - - pclearbot. rewrite H0. rewrite interp_state_tau. gstep. constructor; auto. + - rewrite H0. rewrite interp_state_tau. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. apply simpobs in H. rewrite <- itree_eta in H. rewrite H. auto. - - pclearbot. rewrite H, H0. + - rewrite H, H0. repeat rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. eapply pi_secure_eqit_bind'; eauto. intros. destruct H2; destruct r1; destruct r2; cbn in *; subst. - pfold. constructor. right. eapply CIH; eauto. apply H1. - - rewrite H, H0. pclearbot. rewrite interp_state_tau. + step. constructor. right. eapply CIH; eauto. apply H1. + - rewrite H, H0. rewrite interp_state_tau. gstep. constructor; auto. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. red in RESCHECK. apply RESCHECK in Hs as He. remember (handler A e s1) as t3. clear Heqt3. cbn in He. generalize dependent t3. gcofix CIH'. - intros t3 Ht3. pinversion Ht3; use_simpobs; subst. + intros t3 Ht3. sinv Ht3; use_simpobs; subst. + destruct H4. cbn in *. destruct r1. cbn in *. rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. gfinal. left. eapply CIH'0. eapply CIH; eauto. cbn. apply H1. @@ -172,13 +172,13 @@ Proof. + rewrite H2. rewrite bind_vis. gstep. constructor; auto. intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. - - rewrite H, H0. pclearbot. rewrite interp_state_tau. + - rewrite H, H0. rewrite interp_state_tau. gstep. constructor; auto. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. red in RESCHECK. symmetry in Hs. apply RESCHECK in Hs as He. remember (handler A e s2) as t3. clear Heqt3. cbn in He. generalize dependent t3. gcofix CIH'. - intros t3 Ht3. pinversion Ht3; use_simpobs; subst. + intros t3 Ht3. sinv Ht3; use_simpobs; subst. + destruct H4. cbn in *. destruct r1. cbn in *. rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. gfinal. left. eapply CIH'0. eapply CIH; eauto. cbn. apply H1. @@ -189,7 +189,7 @@ Proof. + rewrite H2. rewrite bind_vis. gstep. constructor; auto. intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. - - pclearbot. rewrite H, H0. repeat rewrite interp_state_vis. + - rewrite H, H0. repeat rewrite interp_state_vis. specialize (Hhandler A e1) as He1. specialize (Hhandler B e2) as He2. inv He1; inv He2; try contradiction. eapply pi_secure_eqit_bind' with (RR := prod_rel RS top2); eauto. @@ -210,7 +210,7 @@ Proof. red in RESCHECK. apply RESCHECK in Hs as He. remember (handler A e s1) as t3. clear Heqt3. cbn in He. generalize dependent t3. gcofix CIH'. - intros t3 Ht3. pinversion Ht3; use_simpobs; subst. + intros t3 Ht3. sinv Ht3; use_simpobs; subst. + destruct H4. cbn in *. destruct r1. cbn in *. rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. gfinal. left. eapply CIH; eauto. cbn. apply H1. @@ -221,12 +221,12 @@ Proof. intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. - apply simpobs in H. rewrite <- itree_eta in H. rewrite H. - pclearbot. rewrite H0. rewrite interp_state_vis. + rewrite H0. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. red in RESCHECK. symmetry in Hs. apply RESCHECK in Hs as He. remember (handler A e s2) as t3. clear Heqt3. cbn in He. generalize dependent t3. gcofix CIH'. - intros t3 Ht3. pinversion Ht3; use_simpobs; subst. + intros t3 Ht3. sinv Ht3; use_simpobs; subst. + destruct H4. cbn in *. destruct r1. cbn in *. rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. gfinal. left. cbn. eapply CIH; eauto. cbn. apply H1. diff --git a/hoare_example/ImpHoare.v b/hoare_example/ImpHoare.v index 9641d115..6078c7dd 100644 --- a/hoare_example/ImpHoare.v +++ b/hoare_example/ImpHoare.v @@ -328,7 +328,7 @@ Proof. } enough (p (Ret (s',tt) ) ). { - unfold p in H0. basic_solve; auto. pinversion H0. + unfold p in H0. basic_solve; auto. sinv H0. } enough (p (CategoryOps.iter body tt s) ). { @@ -382,7 +382,7 @@ Proof. exists s0. split; auto. symmetry. auto. * right. destruct (eutt_reta_or_div t); basic_solve; auto. cbn in H0. rewrite <- H1 in H0. setoid_rewrite bind_ret_l in H0. - pinversion H0. + sinv H0. + unfold q. unfold DelaySpecMonad.iter_lift, iso_destatify_arrow, reassoc. basic_solve; try (destruct (classic_bool b s0) ); @@ -449,14 +449,14 @@ Proof. enough (p (Ret (s',tt))). { - unfold p in H0. basic_solve; auto. pinversion H0. + unfold p in H0. basic_solve; auto. sinv H0. } enough ((p \1/ any_infinite) (CategoryOps.iter body tt s ) ). { destruct H0. - eapply Hp; try apply H0. rewrite <- Heutt. reflexivity. - unfold CategoryOps.iter, Iter_Kleisli, Basics.iter in H0. - unfold body in H0. rewrite Heutt in H0. pinversion H0. + unfold body in H0. rewrite Heutt in H0. sinv H0. } eapply Hloop; eauto. + unfold reassoc. unfold body. destruct (classic_bool b s). @@ -500,7 +500,7 @@ Proof. rewrite <- spin_bind in H0. symmetry in H0. apply not_ret_eutt_spin in H0. auto. * cbn in H0. right. destruct (eutt_reta_or_div t); auto. basic_solve. rewrite <- H1 in H0. setoid_rewrite bind_ret_l in H0. - pinversion H0. + sinv H0. + unfold DelaySpecMonad.iter_lift, iso_destatify_arrow, reassoc. intros t Ht. cbn. destruct (eutt_reta_or_div t); @@ -518,10 +518,10 @@ Proof. -- destruct a as [s3 [] ]. unfold q in Ht. basic_solve. ++ rewrite H3 in H0. basic_solve. unfold q. left. exists s3. split; try (left; reflexivity). symmetry in H2. - cbn in H0. pinversion H0. subst. injection REL; intros; subst. + cbn in H0. sinv H0. subst. injection REL; intros; subst. eapply H; eauto. - ++ rewrite H3 in H0. cbn in *; basic_solve; pinversion H0; try discriminate; basic_solve. - ++ rewrite <- H0 in H3. pinversion H3. + ++ rewrite H3 in H0. cbn in *; basic_solve; sinv H0; try discriminate; basic_solve. + ++ rewrite <- H0 in H3. sinv H3. -- rewrite <- H0. setoid_rewrite bind_ret_l. setoid_rewrite bind_bind. do 2 red in H1. unfold interp_imp, interp_map in H1. rewrite H1. setoid_rewrite bind_ret_l. simpl. apply div_spin_eutt in H2. @@ -534,9 +534,9 @@ Proof. tau_steps. reflexivity. -- unfold q. left. exists s''. split; try (right; reflexivity). unfold q in Ht. basic_solve. - ++ rewrite H3 in H0. basic_solve. auto. pinversion H0. injection REL; intros; subst; auto. - ++ rewrite H3 in H0. basic_solve. pinversion H0. discriminate. - ++ rewrite <- H0 in H3. pinversion H3. + ++ rewrite H3 in H0. basic_solve. auto. sinv H0. injection REL; intros; subst; auto. + ++ rewrite H3 in H0. basic_solve. sinv H0. discriminate. + ++ rewrite <- H0 in H3. sinv H3. -- rewrite <- H0. setoid_rewrite bind_ret_l. setoid_rewrite bind_bind. do 2 red in H1. unfold interp_imp, interp_map in H1. @@ -545,17 +545,17 @@ Proof. -- unfold q. left. exists s''. split; try (right; reflexivity). unfold q in Ht. basic_solve. - ++ rewrite H3 in H0. basic_solve. pinversion H0; injection REL; intros; subst; auto. - ++ rewrite H3 in H0. basic_solve. pinversion H0; discriminate. - ++ rewrite <- H0 in H3. pinversion H3. + ++ rewrite H3 in H0. basic_solve. sinv H0; injection REL; intros; subst; auto. + ++ rewrite H3 in H0. basic_solve. sinv H0; discriminate. + ++ rewrite <- H0 in H3. sinv H3. * destruct b0 as [s'' [] ]. eapply Hq. -- rewrite <- H0. setoid_rewrite bind_ret_l. reflexivity. -- unfold q. left. exists s''. split; try (right; reflexivity). unfold q in Ht. basic_solve. - ++ rewrite H1 in H0. basic_solve. pinversion H0. discriminate. - ++ rewrite H1 in H0. basic_solve. pinversion H0; injection REL; intros; subst; auto. - ++ rewrite <- H0 in H1. pinversion H1. + ++ rewrite H1 in H0. basic_solve. sinv H0. discriminate. + ++ rewrite H1 in H0. basic_solve. sinv H0; injection REL; intros; subst; auto. + ++ rewrite <- H0 in H1. sinv H1. * clear Ht. unfold q. right. apply div_spin_eutt in H0. rewrite H0. rewrite <- spin_bind. apply spin_infinite. @@ -887,8 +887,8 @@ Section SQRTEx. eapply intro_not_wf with (P := fun s => lookup_default n 0 s = n0) (f := fun s => inc_var i s); auto. - intros s0 s1 Hinv Heval. unfold body_arrow in Heval. simpl in Heval. rewrite Hinv in Heval. eqbdestruct (lookup_default i 0 s0 * lookup_default i 0 s0) n0. - + simpl in *. basic_solve. pinversion Heval; discriminate. - + simpl in Heval. basic_solve. pinversion Heval. injection REL; intros; subst. unfold inc_var. rewrite lookup_neq; auto. + + simpl in *. basic_solve. sinv Heval; discriminate. + + simpl in Heval. basic_solve. sinv Heval. injection REL; intros; subst. unfold inc_var. rewrite lookup_neq; auto. - intros s' Hinv. unfold body_arrow. simpl. rewrite Hinv. eqbdestruct (lookup_default i 0 s' * lookup_default i 0 s') n0; simpl. + exfalso. eapply H; apply Heq. @@ -909,14 +909,14 @@ Section SQRTEx. unfold body_arrow in Heutt. simpl in Heutt. destruct Hs1 as [Hsqrt1 Hconst]. eqbdestruct (lookup_default i 0 s1 * lookup_default i 0 s1) (lookup_default n 0 s1); - simpl in *; basic_solve; pinversion Heutt; try discriminate; injection REL; intros; subst. + simpl in *; basic_solve; sinv Heutt; try discriminate; injection REL; intros; subst. split. + unfold inc_var. rewrite lookup_eq. nia. + unfold inc_var. rewrite lookup_neq; auto. - intros s1 s2 Hs1 Heutt. unfold body_arrow in Heutt. simpl in *. eqbdestruct (lookup_default i 0 s1 * lookup_default i 0 s1) (lookup_default n 0 s1); simpl in *; - pinversion Heutt; try discriminate; injection REL; intros; subst. + sinv Heutt; try discriminate; injection REL; intros; subst. unfold inc_var. rewrite lookup_eq. nia. - split; nia. Qed. @@ -937,9 +937,9 @@ Section SQRTEx. rewrite compile_nat_sqrt_body. unfold run_state_itree. apply iter_inl_spin_state. apply ( diverge_if_not_square_nat_sqrt_aux) in H. unfold state_iter_arrow_rel. - simpl. unfold body_arrow in H. simpl in *. generalize dependent s. pcofix CIH. intros. - pinversion H0; try apply not_wf_F_mono'. - pfold. eapply not_wf with (a' := (a',tt)). + simpl. unfold body_arrow in H. simpl in *. generalize dependent s. coinduction c CIH. intros. + sinv H0; try apply not_wf_F_mono'. + step. eapply not_wf with (a' := (a',tt)). - symmetry. auto. - right. auto. Qed. @@ -1014,7 +1014,7 @@ Section SQRTEx. basic_solve. match type of Hconv with ?m s ≈ _ => fold (run_state_itree s m) in Hconv end. rewrite compile_nat_sqrt_body in Hconv. unfold run_state_itree in Hconv. rewrite Hconv in H. - pinversion H. + sinv H. - eapply loop_invar_state with (q := q); eauto. (*Establishment*) + unfold reassoc. simpl. rewrite Hi0. simpl. diff --git a/secure_example/LabelledImpHandler.v b/secure_example/LabelledImpHandler.v index 46320b6a..fe4d67ed 100644 --- a/secure_example/LabelledImpHandler.v +++ b/secure_example/LabelledImpHandler.v @@ -90,7 +90,7 @@ Proof. setoid_rewrite bind_trigger. apply eqit_secure_public_Vis. cbv. auto. intros []. * eapply respect_private_e. cbv. auto. constructor. intros []. - intros. setoid_rewrite bind_trigger. pfold. constructor. intros []. + intros. setoid_rewrite bind_trigger. step. constructor. intros []. cbv. auto. + destruct (priv_map x) eqn : Hl. * apply respect_public'. cbv. rewrite Hl. auto. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index dda0a3b2..05ab1f56 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -186,28 +186,4 @@ Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. (* ----------------------------------------------------------------- *) -(** Shared scaffolding for relations defined as [gfp xxx_mon]. Each - file still writes its own one-line [step] / [unstep] / [coinduction] - notations (since those shadow the generic [step] / [unstep] Ltacs - above when parsed via a higher-order notation), but pulls these - helpers in to avoid re-deriving them per file. *) - -(** Run [tac] under leading ∀'s, putting them back afterwards. - Needed for pattern-matching tactics that must fire on bodies - beneath quantifiers (e.g. [change]-style [to_mon] rewrites). *) -Ltac under_forall' tac := - let dummy := fresh "dummy" in - assert (dummy : True) by constructor; - intros; tac; revert_until dummy; clear dummy. - -Ltac revert_one := - match goal with [ H : _ |- _ ] => revert H end. - -(** Intro leading ∀'s, run [unf], revert. Gets a quantified goal - into the [gfp _] shape expected by [coinduction R H]. *) -Ltac unfold_coind_with unf := - first [ intros ?; unfold_coind_with unf; revert_one | unf ]. - -(** The ITree-specific [to_mon_4cases_with] macro lives in - [theories/Eq/Eqit.v], where [observe] and [go] are in scope. *) - + diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 2cbfbbc8..c553f766 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -9,6 +9,7 @@ From Stdlib Require Import Relations.Relations. From ITree Require Import + Basics.Utils Basics.Basics Basics.CategoryOps Basics.CategoryTheory @@ -20,7 +21,8 @@ From ITree Require Import Core.ITreeMonad Core.KTree Eq.Shallow - Eq.Eqit. + Eq.Eqit + . Import CatNotations. Local Open Scope itree_scope. @@ -37,7 +39,6 @@ Ltac unfold_ktree := lift_ktree_; cbn. (** ** [ITree.aloop] *) -From Coinduction Require Import all. From Corelib Require Import Program.Tactics. @@ -59,11 +60,10 @@ Lemma bind_iter {E A B C} (f : A -> itree E (A + B)) (g : B -> itree E (B + C)) | inl a => ITree.map inl (f a) | inr b => ITree.map (bimap inr (id_ _)) (g b) end) (inl x). -Proof. +Proof. + coinduction. (* this proof should follow from the facts about elem *) - bcoinduction c CIH. intros. - intros. - + intros. (* Unset Printing Notations. *) (* these rewrites must go through *) (* need eq_itree proper up to everything *) @@ -75,7 +75,7 @@ Proof. eapply CIH. - rewrite bind_ret_l, tau_euttge. (* question: why doesn't accumulate acc work? *) - do 2 step. revert b. bcoinduction c' CIH'. intros. + do 2 step. revert b. coinduction. intros. rewrite !unfold_iter. rewrite bind_map. ebind. @@ -84,6 +84,7 @@ Proof. + reflexivity. Qed. + Lemma eq_itree_iter' {E I1 I2 R1 R2} (RI : I1 -> I2 -> Prop) (RR : R1 -> R2 -> Prop) @@ -94,7 +95,7 @@ Lemma eq_itree_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eq_itree E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c CIH. intros. + coinduction c cih. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. eapply eqit_bind_chain. @@ -112,7 +113,7 @@ Lemma eutt_iter' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c CIH. intros. + coinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. ebind. @@ -131,7 +132,7 @@ Lemma eutt_iter'' {E I1 I2 R1 R2} : forall (i1 : I1) (i2 : I2) (RI_i : RI1 i1 i2), @eutt E _ _ RR (ITree.iter body1 i1) (ITree.iter body2 i2). Proof. - bcoinduction c CIH. intros. + coinduction c CIH. intros. specialize (eutt_body i1 i2 RI_i). do 2 rewrite unfold_iter. ebind. @@ -215,7 +216,7 @@ Qed. Proof. repeat intro. unfold_ktree. revert a0. - bcoinduction c' CIH. intros. + coinduction c' CIH. intros. rewrite 2 unfold_iter_ktree. rewrite !bind_bind. ebind. @@ -245,7 +246,7 @@ Lemma iter_dinatural_ktree {E A B C} end). Proof. revert A B C f g a0. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite unfold_iter_ktree. rewrite bind_bind. ebind. @@ -297,7 +298,7 @@ Lemma iter_codiagonal_ktree {E A B} (f : ktree E A (A + (A + B))) (a0 : A) end)) a0. Proof. revert a0. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite unfold_iter_ktree. rewrite (unfold_iter_ktree (fun _ => _ _ _)). rewrite unfold_iter_ktree, !bind_bind. @@ -348,7 +349,7 @@ Proof. (* We move to the eworld *) repeat red. (* First coinductive point in the simulation: at the entry point of the iteration over f *) - bcoinduction c' CIH. intros. + coinduction c' CIH. intros. rewrite bind_ret_l. (* We unfold one step on both sides *) rewrite unfold_iter. @@ -375,7 +376,7 @@ Proof. rewrite tau_euttge. do 2 step. generalize xb. - bcoinduction c'' CIH'. intros. + coinduction c'' CIH'. intros. (* We unfold a new step of computation *) rewrite 2 unfold_iter. rewrite !bind_bind. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 7c8416ed..15c9746e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -230,10 +230,6 @@ Arguments eqit_mon {E} b1 b2. #[global] Hint Unfold eq_itree : itree. #[global] Hint Unfold eutt : itree. #[global] Hint Unfold euttge : itree. - (* Alternative notation to the ` with a \dot. Would be good to pick an ascii - one instead maybe? *) - (* #[local] Notation "̇ R" := (elem R) (at level 2, R at level 1, format "̇ R"). *) - (* end hide *) (** Tactics *) (* RTODO Clean this up massively *) @@ -273,12 +269,12 @@ because we can destruct itree'. *) -#[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. +#[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. #[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit in h. -#[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. +#[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. -#[local] Ltac icbn := cbn [eqit_mon body eqit_]. -#[local] Ltac icbn_in h := cbn [eqit_mon body eqit_] in h. +Ltac icbn := repeat red. +Ltac icbn_in h := cbn [eqit_mon body eqit_] in h. Ltac refold := repeat match goal with @@ -353,9 +349,23 @@ Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. -Tactic Notation "step" := iunfold; step; icbn; try refold. +Tactic Notation "step" := +(match goal with +| |- context[elem _] => idtac +| |- _ => +repeat red end) +; ITree.Basics.Utils.step; icbn; try refold. + + +(* Tactic Notation "step" "in" ident(h) := +iunfold in h; step in h; icbn in h; try refold_in h. *) + Tactic Notation "step" "in" ident(h) := - iunfold in h; step in h; icbn in h; try refold_in h. + repeat red in h; step in h; + match type of h with + | context [@body _] => repeat red in h + | _ => idtac + end; try refold in h. Tactic Notation "unstep" := iunfold; try to_mon; unstep; try refold. Tactic Notation "unstep" "in" ident(h) := @@ -364,16 +374,18 @@ Tactic Notation "unstep" "in" ident(h) := Ltac iunfold_coind := first [ intros ?; iunfold_coind; revert_last | iunfold ]. -Tactic Notation "icoinduction" - simple_intropattern(R) simple_intropattern(H) := - iunfold_coind; coinduction R H; icbn. +Tactic Notation "coinduction" + simple_intropattern(c) simple_intropattern(CIH) := + repeat red; coinduction c CIH. + +Tactic Notation "coinduction" := + let c := fresh "c" in let CIH := fresh "CIH" in coinduction c CIH. -Tactic Notation "bcoinduction" + +Tactic Notation "icoinduction" simple_intropattern(R) simple_intropattern(H) := - icoinduction R H; to_mon. + coinduction R H; icbn. -Tactic Notation "bcoinduction" := - let c := fresh "c" in let CIH := fresh "CIH" in bcoinduction c CIH. Ltac bcbn := cbn; to_mon. @@ -523,8 +535,7 @@ Qed. Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq_rel ==> eq_rel) (@eqitF E R1 R2). Proof. - repeat red. - intros. subst. split; unfold subrelationH, SubRelH_binary; intros. + intros!. subst. split; unfold subrelationH, SubRelH_binary; intros. all: induction H0; auto with itree; econstructor; intros; try (now apply H); now apply H2. @@ -534,8 +545,7 @@ Qed. Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqitF E R1 R2). Proof. - repeat red. - intros. subst. split; intros. + intros!. subst. split; intros. all: induction H0; auto with itree; econstructor; now apply H. Qed. @@ -543,7 +553,6 @@ Qed. #[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} b1 b2 : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eqit E b1 b2 R1 R2). Proof with auto with itree. - repeat red. intros!. subst. split. - revert_until H. icoinduction R CIH. intros. @@ -664,21 +673,6 @@ Proof. constructor; eauto. Qed. -#[global] Instance Reflexive_eqit_ b1 b2 - (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) - : Reflexive RR -> Reflexive (sim R R RR) -> Reflexive (eqit_ b1 b2 sim R R RR). -Proof. repeat red. intros. reflexivity. Qed. - -#[global] Instance Symmetric_eqit_ b - (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) - : Symmetric RR -> Symmetric (sim R R RR) -> Symmetric (eqit_ b b sim R R RR). -Proof. repeat red; symmetry; auto. Qed. - -#[global] Instance Transitive_eqit_ - (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) - : Transitive RR -> Transitive (sim R R RR) -> Transitive (eqit_ false false sim R R RR). -Proof. repeat red; etransitivity; eauto. Qed. - (* Prove Reflexive/Symmetric for eqit first (by coinduction), then derive for elem via gfp_chain. *) @@ -686,7 +680,7 @@ Proof. repeat red; etransitivity; eauto. Qed. Proof. red; intros. revert x. icoinduction c CIH. intro. - now repeat apply Reflexive_eqit_. + now repeat apply Reflexive_eqitF. Qed. #[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E b b _ _ RR). @@ -716,7 +710,7 @@ Qed. {c: Chain (@eqit_mon E b b)}: Symmetric (elem c R R RR). Proof. revert c. apply (tower inf_closed_Symmetric_at). - intros c Hsym. apply Symmetric_eqit_; auto. + intros c Hsym. intros!. apply Symmetric_eqitF; auto. Qed. End eqit_gen. @@ -901,7 +895,7 @@ Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - icbn; intros EQ. + intros EQ. icbn in *. genobs x' ox'; genobs y' oy'. (* [hinduction] is not sufficient here, because [move] is unable to pass through [ox] to reach [x] *) @@ -1076,7 +1070,7 @@ Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - icbn; intros EQ. + intros EQ. icbn in *. genobs x' ox'; genobs y' oy'. (* [hinduction] is not sufficient here, because [move] is unable to pass through [ox] to reach [x] *) @@ -1139,7 +1133,7 @@ Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - icbn; intros EQ. + intros EQ. icbn in *. genobs x' ox'; genobs y' oy'. revert x x' y y' Heqox' Heqoy' EQx EQy. induction EQ; intros. @@ -1339,7 +1333,7 @@ Proof. (fun x => Transitive (x R R RR))). { intros T HTr x y z Hxy Hyz i Hi. apply (HTr _ Hi) with y; [exact (Hxy i Hi) | exact (Hyz i Hi)]. } revert c. apply (tower Hinf). intros c Htrans. - apply Transitive_eqit_; auto. + intros!. icbn in *. eapply Transitive_eqitF; eauto. Qed. #[global] Instance Equivalence_elem {E R RR} (HT : Equivalence RR) @@ -1529,15 +1523,6 @@ Proof. apply Symmetric_eqitF; eauto. Qed. -#[global] Instance Reflexive_eqit__eq b1 b2 - (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) -: Reflexive (sim R R eq) -> Reflexive (eqit_ b1 b2 sim R R eq). -Proof. apply Reflexive_eqit_; eauto. Qed. - -#[global] Instance Symmetric_eqit__eq b - (sim : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) -: Symmetric (sim R R eq) -> Symmetric (eqit_ b b sim R R eq). -Proof. apply Symmetric_eqit_; eauto. Qed. (** *** [eqit] is an equivalence relation *) @@ -1769,15 +1754,15 @@ Proof. intros. split; intros H. - eapply transitivity. 2 : { apply H. } - red. apply eqit_Tau_r. reflexivity. - - red. red. step. econstructor. auto. now step in H. + apply eqit_Tau_r. reflexivity. + - step. econstructor. auto. now step in H. Qed. Lemma tau_eqit_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), eqit true false RR t s -> eqit true false RR (Tau t) s. Proof. intros. - red. step. econstructor. auto. now step in H. + step. econstructor. auto. now step in H. Qed. Lemma tau_eutt_RR_r : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), @@ -1786,8 +1771,8 @@ Proof. intros. split; intros H. - eapply transitivity. apply H. - red. apply eqit_Tau_l. reflexivity. - - red. red. step. econstructor. auto. now step in H. + apply eqit_Tau_l. reflexivity. + - step. econstructor. auto. now step in H. Qed. Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index 1731a890..ac534c74 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -175,11 +175,6 @@ end. Tactic Notation "to_rmon" "in" ident(h) := to_rmon_in h. -#[local] Ltac runfold_coind := unfold_coind_with runfold. -Tactic Notation "rcoinduction" simple_intropattern(R) simple_intropattern(H) := - runfold_coind; coinduction R H; rcbn; refold. - - #[global] Hint Constructors ruttF : itree. #[global] Hint Unfold rutt_ : itree. #[global] Hint Unfold rutt_mon : itree. diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 10b28104..cfbb01ca 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -95,8 +95,8 @@ Proof. reflexivity. Qed. Lemma rutt_flip {E1 E2 R1 R2 REv RAns RR} (t1: itree E1 R1) (t2: itree E2 R2): rutt REv RAns RR t1 t2 <-> rutt (flip_REv REv) (flip_RAns RAns) (flip RR) t2 t1. Proof. - split; revert t1 t2; rcoinduction c CIH; intros t1 t2 Hrutt; - rstep in Hrutt. + split; revert t1 t2; coinduction c CIH; icbn; intros t1 t2 Hrutt; + step in Hrutt. - induction Hrutt; try now constructor. * apply EqTau. now apply CIH. * apply EqVis. auto. intros b a HAns. cbn in HAns. @@ -119,8 +119,8 @@ Qed. Proof. intros REv1 REv2 HREv RAns1 RAns2 HRAns RR1 RR2 HRR t1 _ <- t2 _ <-. split; intros Hrutt; - revert t1 t2 Hrutt; rcoinduction c CIH; intros t1 t2 Hrutt; - rstep in Hrutt; rcbn; + revert t1 t2 Hrutt; coinduction c CIH; intros t1 t2 Hrutt; + step in Hrutt; rcbn; hinduction Hrutt before CIH; intros; eauto using EqTauL, EqTauR. 1,4: apply EqRet; now apply HRR. 1,3: apply EqTau; now apply CIH. @@ -260,8 +260,8 @@ Lemma rutt_cong_eutt {E1 E2 R1 R2}: rutt REv RAns RR t1' t2. Proof. intros * Hrutt Heutt; revert t1 t1' Heutt t2 Hrutt. - rcoinduction c CIH; intros t1 t1' Heutt t2 Hrutt. - rstep in Hrutt. + coinduction c CIH; icbn; intros t1 t1' Heutt t2 Hrutt. + step in Hrutt. rewrite (itree_eta t1') in *. remember (observe t1) as ot1 eqn:Hot1. remember (observe t2) as ot2 eqn:Hot2. @@ -383,14 +383,14 @@ Lemma rutt_bind {E1 E2 R1 R2 T1 T2} rutt REv RAns RT (k1 r1) (k2 r2)) -> rutt REv RAns RT (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - revert t1 t2. rcoinduction c CIH. intros t1 t2 Hrutt EQK. - rstep in Hrutt. + revert t1 t2. coinduction c CIH. icbn. intros t1 t2 Hrutt EQK. + step in Hrutt. genobs t1 ot1. genobs t2 ot2. hinduction Hrutt before CIH; intros. - (* Ret *) rewrite !observe_bind; simpobs. specialize (EQK _ _ H). - rstep in EQK. now do 2 rstep. + step in EQK. now do 2 step. - (* Tau *) rewrite !observe_bind; simpobs. apply EqTau. apply CIH; auto. @@ -420,8 +420,8 @@ Section RuttMrec. rutt (sum_prerel RPreInv RPre) (sum_postrel RPostInv RPost) RR t1 t2 -> rutt RPre RPost RR (interp_mrec bodies1 t1) (interp_mrec bodies2 t2). Proof. - rcoinduction c CIH. - intros t1 t2 Ht12. rstep in Ht12. + coinduction c CIH. icbn. + intros t1 t2 Ht12. step in Ht12. remember (observe t1) as ot1. remember (observe t2) as ot2. hinduction Ht12 before R1; intros; to_rmon. - apply simpobs in Heqot1, Heqot2. rewrite Heqot1, Heqot2. diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index 0f4af159..6d9d6e20 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -68,7 +68,9 @@ Global Hint Unfold sutt : itree. (** Sutt-specific tactics, analogous to the eqit-specific tactics in [Eq.Eqit]. *) -#[local] Ltac sunfold := unfold sutt. +(* RTODO remove *) + +(* #[local] Ltac sunfold := unfold sutt. #[local] Ltac sunfold_in h := unfold sutt in h. #[local] Ltac scbn := cbn [sutt_mon body]. @@ -83,18 +85,15 @@ Ltac fold_sutt_in h := match type of h with | context[@suttF ?E ?R1 ?R2 ?RR] => change (@suttF E R1 R2 RR) with (body (@sutt_mon E R1 R2 RR)) in h - end. + end. *) -Tactic Notation "sstep" := sunfold; step; scbn. -Tactic Notation "sstep" "in" ident(h) := sunfold_in h; step in h; scbn_in h. +(* Tactic Notation "step" := sunfold; step; scbn. +Tactic Notation "step" "in" ident(h) := sunfold_in h; step in h; scbn_in h. Tactic Notation "sunstep" := fold_sutt; unstep. -Tactic Notation "sunstep" "in" ident(h) := fold_sutt_in h; unstep in h. +Tactic Notation "sunstep" "in" ident(h) := fold_sutt_in h; unstep in h. *) -(* [scoinduction] unfolds [sutt] in the conclusion only, then applies coinduction. *) -#[local] Ltac sunfold_coind := unfold_coind_with sunfold. -Tactic Notation "scoinduction" simple_intropattern(R) simple_intropattern(H) := - sunfold_coind; coinduction R H; scbn. +(* [coinduction] unfolds [sutt] in the conclusion only, then applies coinduction. *) Section SUTT_rel. @@ -127,7 +126,7 @@ Lemma sutt_inv_vis {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR (Vis e k1) (Vis e k2) -> forall x, sutt RR (k1 x) (k2 x). Proof. - intros. sstep in H. simpl in H. + intros. step in H. simpl in H. now apply (suttF_inv_vis _ _ _ _ _ _ H). Qed. @@ -136,7 +135,7 @@ Lemma sutt_tau_right {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 t2 -> sutt RR t1 (Tau t2). Proof. - intros. sstep. sstep in H. + intros. step. step in H. constructor. auto. Qed. @@ -145,7 +144,7 @@ Lemma sutt_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 t2 -> sutt RR (Tau t1) t2. Proof. - intros. sstep. + intros. step. constructor. exact H. Qed. @@ -154,7 +153,7 @@ Lemma sutt_elim_tau_right {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 (Tau t2) -> sutt RR t1 t2. Proof. - unfold sutt at -1. icoinduction c CIH. intros t1 t2 H. sstep in H. + unfold sutt at -1. icoinduction c CIH. intros t1 t2 H. step in H. inv H. - eapply suttF_mono; [|exact EQTAUS]. intros ?? ?. now apply (gfp_chain c). @@ -169,7 +168,7 @@ Proof. intros. remember (TauF t1) as ott1. induction H; intros; subst; try dependent destruction Heqott1; eauto with itree. - sstep in EQTAUS. exact EQTAUS. + step in EQTAUS. exact EQTAUS. Qed. Lemma sutt_inv_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : @@ -177,7 +176,7 @@ Lemma sutt_inv_tau_left {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR (Tau t1) t2 -> sutt RR t1 t2. Proof. - intros. sstep in H. sstep. + intros. step in H. step. apply suttF_inv_tau_left; auto. Qed. @@ -186,7 +185,7 @@ Theorem sutt_eutt {E R1 R2} (RR : R1 -> R2 -> Prop) : sutt RR t1 t2 -> sutt (flip RR) t2 t1 -> eutt RR t1 t2. Proof. icoinduction c CIH. intros t1 t2 H1 H2. - sstep in H1. sstep in H2. + step in H1. step in H2. induction H1; intros; subst; auto with itree. - (* suttF_vis *) constructor. intro x. apply CIH. @@ -213,7 +212,7 @@ Theorem eutt_sutt {E R1 R2} (RR : R1 -> R2 -> Prop) : forall (t1 : itree E R1) (t2 : itree E R2), eutt RR t1 t2 -> sutt RR t1 t2. Proof. - scoinduction c CIH. intros t1 t2 H. + coinduction c CIH. intros t1 t2 H. step in H. induction H. - constructor; auto. @@ -230,10 +229,10 @@ Lemma sutt_bind' {E R1 R2 S1 S2} {RR: R1 -> R2 -> Prop} {SS: S1 -> S2 -> Prop}: forall s1 s2, (forall r1 r2, RR r1 r2 -> sutt SS (s1 r1) (s2 r2)) -> @sutt E _ _ SS (ITree.bind t1 s1) (ITree.bind t2 s2). Proof. - scoinduction c CIH. intros t1 t2 H s1 s2 Hs. - sstep in H. unfold observe; cbn. + coinduction c CIH. intros t1 t2 H s1 s2 Hs. + step in H. unfold observe; cbn. induction H; intros. - - simpl. apply Hs in H. sstep in H. + - simpl. apply Hs in H. step in H. eapply suttF_mono; [|exact H]. intros ?? ?. now apply (gfp_chain c). - simpl. econstructor. intros. apply CIH; eauto with itree. @@ -249,8 +248,8 @@ Qed. : Proper (eq_itree eq ==> eq_itree eq ==> flip impl) (@sutt E R1 R2 r). Proof. - repeat red. scoinduction c CIH. intros x y H x0 y0 H0 H1. - step in H. step in H0. sstep in H1. + repeat red. coinduction c CIH. intros x y H x0 y0 H0 H1. + step in H. step in H0. step in H1. revert x H x0 H0. induction H1; intros. - inv H1; try discriminate. inv H0; try discriminate. econstructor. eauto. diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 600809f4..06999245 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -53,7 +53,7 @@ Qed. Global Instance proper_eqitree_try_catch {E Err R} : Proper (eq_itree eq ==> pointwise_relation Err (eq_itree eq) ==> eq_itree eq) (@try_catch Err R E). Proof. intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. - bcoinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. + coinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. sinv Ht. - repeat rewrite bind_ret_l. eret. - repeat rewrite bind_ret_l. etau. @@ -67,7 +67,7 @@ Qed. Global Instance proper_eutt_try_catch {E Err R} : Proper (eutt eq ==> pointwise_relation Err (eutt eq) ==> eutt eq) (@try_catch Err R E). Proof. intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. - bcoinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. + coinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. step in Ht. hinduction Ht before c; intros; subst; eauto. - repeat rewrite bind_ret_l. eret. @@ -86,7 +86,7 @@ Qed. Global Instance proper_eqitree_throw_prefix_false {E Err R} : Proper (eqit false false eq ==> eqit false false eq) (@throw_prefix Err R E). Proof. intros t1 t2 Ht. generalize dependent t2. revert t1. - bcoinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. + coinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. step in Ht. inv Ht. - repeat rewrite bind_ret_l. bcbn. eret. - destruct e. @@ -98,7 +98,7 @@ Qed. Global Instance proper_eutt_throw_prefix {E Err R} : Proper (eutt eq ==> eutt eq) (@throw_prefix Err R E). Proof. intros t1 t2 Ht. generalize dependent t2. revert t1. - bcoinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. + coinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. step in Ht. hinduction Ht before c; intros; subst; eauto. - repeat rewrite bind_ret_l. bcbn. eret. - destruct e. @@ -143,7 +143,7 @@ Qed. Lemma try_catch_throw_prefix_nop : forall E Err R kcatch (ttry : itree (exceptE Err +' E) R), try_catch (throw_prefix ttry) kcatch ≈ throw_prefix ttry. Proof. - intros E Err R kcatch. bcoinduction. intros. + intros E Err R kcatch. coinduction. intros. destruct (observe ttry) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite throw_prefix_ret. rewrite try_catch_ret. reflexivity. - rewrite Heq. rewrite throw_prefix_tau. rewrite try_catch_tau. etau. @@ -160,7 +160,7 @@ Lemma throw_prefix_bind_decomp : forall E Err R (t : itree (exceptE Err +' E) R | inl a => Ret a end). Proof. - intros E Err R. bcoinduction. intros. + intros E Err R. coinduction. intros. destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite throw_prefix_ret. rewrite bind_ret_l. eret. - rewrite Heq. rewrite throw_prefix_tau. rewrite bind_tau. etau. @@ -178,7 +178,7 @@ Lemma try_catch_to_throw_prefix : forall E Err R (ttry : itree (exceptE Err +' E | inl a => Ret a end). Proof. - intros. revert ttry. bcoinduction. + intros. revert ttry. coinduction. intros. destruct (observe ttry) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite try_catch_ret. rewrite throw_prefix_ret. rewrite bind_ret_l. eret. @@ -194,7 +194,7 @@ Qed. Lemma throw_prefix_of_try_catch : forall E Err R (ttry : itree (exceptE Err +' E) R ) (kcatch : Err -> itree (exceptE Err +' E) R), throw_prefix (try_catch ttry kcatch) ≈ try_catch (ITree.bind ttry (fun r => Ret (inl r)) ) (fun e => throw_prefix (kcatch e) ). Proof. - intros. revert ttry. bcoinduction. + intros. revert ttry. coinduction. intros. destruct (observe ttry) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite bind_ret_l. repeat rewrite try_catch_ret. rewrite throw_prefix_ret. eret. @@ -215,7 +215,7 @@ Lemma throw_prefix_bind : forall E Err R S (t : itree (exceptE Err +' E) R ) (k | inl r' => throw_prefix (k r') | inr e => Ret (inr e) end ). Proof. - intros. revert t. bcoinduction. + intros. revert t. coinduction. intros. destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. rewrite throw_prefix_ret. repeat rewrite bind_ret_l. reflexivity. @@ -235,7 +235,7 @@ Lemma throw_prefix_iter : forall E Err A B (body : A -> itree (exceptE Err +' E) | inl (inr b) => Ret (inr (inl b)) | inr e => Ret (inr (inr e)) end) init. Proof. - intros E Err A B. bcoinduction. intros. + intros E Err A B. coinduction. intros. setoid_rewrite unfold_iter_ktree at 2 3. destruct (observe (body init) ) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq at 1. rewrite bind_ret_l. setoid_rewrite bind_bind. diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index e8f54503..856a6f36 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -145,7 +145,7 @@ Global Instance interp_fail_eq_itree {X E F} {R : X -> X -> Prop} (h : E ~> fail Proper (eq_itree R ==> eq_itree (option_rel R)) (@interp_fail _ _ _ _ _ h X). Proof. repeat red. - bcoinduction. + coinduction. intros s t EQ. rewrite 2 unfold_interp_fail. step in EQ. @@ -167,7 +167,7 @@ Global Instance interp_fail_eutt {X E F R} (h : E ~> failT (itree F)) : Proper (eutt R ==> eutt (option_rel R)) (@interp_fail _ _ _ _ _ h X). Proof. repeat red. - bcoinduction. + coinduction. intros s t EQ. rewrite 2 unfold_interp_fail. step in EQ. @@ -242,7 +242,7 @@ Lemma interp_fail_bind : forall {X Y E F} (t : itree _ X) (k : X -> itree _ Y) ( ITree.bind (interp_fail h t) (fun mx => match mx with | None => ret None | Some x => interp_fail h (k x) end). Proof. - intros X Y E F; bcoinduction; intros. + intros X Y E F; coinduction; intros. rewrite unfold_bind. rewrite (unfold_interp_fail h t). destruct (observe t) eqn:EQ; bcbn. @@ -265,7 +265,7 @@ Lemma interp_failure_bind' : forall {X Y E F} (t : itree _ X) (k : X -> itree _ Proof. intros X Y E F. cbn. - bcoinduction; intros. + coinduction; intros. rewrite unfold_bind, (unfold_interp_fail _ t). destruct (observe t) eqn:EQ; bcbn. - rewrite bind_ret_l. reflexivity. diff --git a/theories/Events/MapDefaultFacts.v b/theories/Events/MapDefaultFacts.v index 5edeb78b..9636d65d 100644 --- a/theories/Events/MapDefaultFacts.v +++ b/theories/Events/MapDefaultFacts.v @@ -177,7 +177,7 @@ Section MapFacts. Proof. unfold map_default_eq, interp_map; intros. revert t s1 s2 H. - bcoinduction. + coinduction. intros. repeat rewrite unfold_interp_state. unfold _interp_state. destruct (observe t). @@ -199,7 +199,7 @@ Section MapFacts. unfold map_default_eq, interp_map. repeat intro. revert x y H s1 s2 H0. - bcoinduction. + coinduction. intros. rewrite! unfold_interp_state. step in H. diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index 498bc7c0..87400bc4 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -58,7 +58,7 @@ Instance eq_itree_interp_state {E F S R} (h : E ~> Monads.stateT S (itree F)) : (@interp_state _ _ _ _ _ _ h R). Proof. revert_until R. - bcoinduction. intros h x y H0 x2 _ []. + coinduction. intros h x y H0 x2 _ []. rewrite !unfold_interp_state. step in H0. destruct H0; subst; try discriminate; cbn. @@ -122,7 +122,7 @@ Lemma interp_state_bind {E F : Type -> Type} {A B S : Type} (interp_state f t s >>= fun st => interp_state f (k (snd st)) (fst st)). Proof. revert t k s. - bcoinduction. + coinduction. intros t k s. rewrite unfold_bind. rewrite (unfold_interp_state f t). @@ -142,7 +142,7 @@ Instance eutt_interp_state {E F: Type -> Type} {S : Type} Proper (eutt RR ==> eq ==> eutt (prod_rel eq RR)) (@interp_state E (itree F) S _ _ _ h R). Proof. repeat intro. subst. revert_until RR. - bcoinduction. intros. + coinduction. intros. rewrite !unfold_interp_state. step in H. induction H; intros; subst; bcbn. @@ -159,7 +159,7 @@ Instance eutt_interp_state_eq {E F: Type -> Type} {S : Type} Proper (eutt eq ==> eq ==> eutt eq) (@interp_state E (itree F) S _ _ _ h R). Proof. repeat intro. subst. revert_until R. - bcoinduction. intros. + coinduction. intros. rewrite !unfold_interp_state. step in H. induction H; intros; subst; bcbn; eauto with itree. @@ -187,7 +187,7 @@ Lemma eutt_interp_state_aloop {E F S I I' A A'} (interp_state h (ITree.iter t2 i') s2)). Proof. intro Ht. - bcoinduction. intros. + coinduction. intros. rewrite 2 unfold_iter. rewrite 2 interp_state_bind. ebind; intros; subst. @@ -222,7 +222,7 @@ Lemma eutt_eq_interp_state_iter {E F S} (f: E ~> stateT S (itree F)) {I A} Basics.iter (fun i => interp_state f (t i)) i s. Proof. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in *; cbn. - bcoinduction; intros i s. + coinduction; intros i s. rewrite 2 unfold_iter; bcbn. rewrite !bind_bind. setoid_rewrite bind_ret_l. @@ -274,7 +274,7 @@ Lemma interp_state_iter {E F } S (f : E ~> stateT S (itree F)) {I A} (Basics.iter t' i). Proof. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in *; cbn. - bcoinduction; intros i s. + coinduction; intros i s. rewrite 2 unfold_iter; bcbn. rewrite !bind_bind. setoid_rewrite bind_ret_l. @@ -303,7 +303,7 @@ Lemma interp_state_iter'_eutt {E F S} (f: E ~> stateT S (itree F)) {I A} forall i s, interp_state f (ITree.iter t i) s ≈ Basics.iter t' i s. Proof. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in *; cbn. - bcoinduction; intros i s. + coinduction; intros i s. rewrite 2 unfold_iter; bcbn. rewrite !bind_bind. setoid_rewrite bind_ret_l. diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 46d4127b..01f16efd 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -1,6 +1,6 @@ (** * Theorems for [ITree.Interp.Handler] *) -(* RTODO: investigate very slow compilation time for this file *) (* begin hide *) +(* RTODO: investigate very slow compilation time for this file *) From Stdlib Require Import Setoid Morphisms @@ -150,7 +150,7 @@ Proof. (* eutt needs to be transparent for coinductive unfolding to work *) Local Transparent eutt. - revert t; bcoinduction; intros t. + revert t; coinduction; intros t. rewrite (itree_eta t). destruct (observe t). - rewrite unfold_interp_mrec. bcbn. @@ -166,10 +166,11 @@ Proof. destruct e; bcbn. + rewrite interp_tau. rewrite 2 interp_mrec_bind, interp_bind. - subst h; bcbn. + subst h. + bcbn. rewrite interp_trigger. - rewrite unfold_interp_mrec; bcbn. - rewrite interp_mrec_trigger; bcbn. + rewrite unfold_interp_mrec. bcbn. + rewrite interp_mrec_trigger. bcbn. unfold Recursion.mrec. rewrite !interp_tau. rewrite (unfold_interp_mrec _ _ (Tau _)); bcbn. @@ -223,7 +224,7 @@ Theorem interleaved_mrec : forall t1 t2, Recursion.interp_mrec (cat f (case_ g inr_)) t1 ≈ Recursion.interp_mrec (cat g (case_ f inr_)) t2. Proof with eauto with itree. - bcoinduction; intros. + coinduction; intros. induction H. - rewrite 2 unfold_interp_mrec; bcbn. reflexivity. - rewrite (itree_eta t); destruct (observe t). @@ -325,7 +326,7 @@ Proof. } Local Transparent eutt. - revert t. bcoinduction; intros. + revert t. coinduction; intros. rewrite (itree_eta t); destruct (observe t); bcbn. all: rewrite (unfold_interp_mrec _ _ (go _)), unfold_interp; bcbn. 1,2: rewrite unfold_interp_mrec; bcbn. diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 6553d71e..f0cb2b7b 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -116,7 +116,7 @@ Instance eq_itree_interp {E F} interp. Proof. intros f g Hfg T. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite 2 unfold_interp. step in H. @@ -145,7 +145,7 @@ Instance eutt_interp (E F : Type -> Type) Proof. repeat red. intros until T. - bcoinduction. intros. + coinduction. intros. rewrite !unfold_interp. step in H0. induction H0; intros; subst; cbn; eauto with itree; to_mon. eapply eqit_bind_chain. @@ -164,7 +164,7 @@ Instance euttge_interp (E F : Type -> Type) Proof. repeat red. intros until T. - bcoinduction. intros. + coinduction. intros. rewrite !unfold_interp. step in H0. induction H0; intros; subst; cbn; try easy; eauto with itree; to_mon. eapply eqit_bind_chain. @@ -179,7 +179,7 @@ Instance eutt_interp' {E F : Type -> Type} {R : Type} (RR: R -> R -> Prop) (f : (@interp E (itree F) _ _ _ f R). Proof. repeat red. - bcoinduction. intros. + coinduction. intros. rewrite !unfold_interp. step in H. induction H; cbn; try easy; eauto with itree; to_mon. @@ -220,7 +220,7 @@ Lemma interp_bind {E F R S} interp f (ITree.bind t k) ≅ ITree.bind (interp f t) (fun r => interp f (k r)). Proof. - revert R t k. bcoinduction; intros. + revert R t k. coinduction; intros. rewrite unfold_bind, (unfold_interp t). destruct (observe t); cbn; to_mon. - rewrite bind_ret_l. apply reflexivity. @@ -237,7 +237,7 @@ Qed. Lemma interp_id_h {A R} (t : itree A R) : interp (id_ A) t ≳ t. Proof. - revert t. bcoinduction. intros. + revert t. coinduction. intros. rewrite (itree_eta t), unfold_interp. destruct (observe t); cbn. - reflexivity. @@ -249,7 +249,7 @@ Qed. Lemma interp_trigger_h {E R} (t : itree E R) : interp ITree.trigger t ≈ t. Proof. - revert t. bcoinduction. intros. + revert t. coinduction. intros. rewrite unfold_interp. rewrite (itree_eta t) at 2. destruct (observe t); cbn; eauto with itree. constructor; intro. fold_subst. @@ -264,7 +264,7 @@ Theorem interp_interp {E F G R} (f : E ~> itree F) (g : F ~> itree G) : interp g (interp f t) ≅ interp (fun _ e => interp g (f _ e)) t. Proof. - bcoinduction. intros. + coinduction. intros. rewrite 2 (unfold_interp t). destruct (observe t); cbn; eauto with itree. to_mon. rewrite interp_bind. ebind. intros; subst. @@ -275,7 +275,7 @@ Lemma interp_translate {E F G} (f : E ~> F) (g : F ~> itree G) {R} (t : itree E interp g (translate f t) ≅ interp (fun _ e => g _ (f _ e)) t. Proof. revert t. - bcoinduction. + coinduction. intros t. rewrite !unfold_interp. unfold _interp. rewrite unfold_translate_. unfold translateF. @@ -288,7 +288,7 @@ Qed. Lemma translate_to_interp {E F R} (f : E ~> F) (t : itree E R) : translate f t ≈ interp (fun _ e => ITree.trigger (f _ e)) t. Proof. - revert t. bcoinduction. intros. + revert t. coinduction. intros. rewrite unfold_translate. rewrite unfold_interp. destruct (observe t); cbn; eauto with itree. @@ -301,7 +301,7 @@ Lemma interp_forever {E F} (f : E ~> itree F) {R S} : interp f (ITree.forever t) ≅ @ITree.forever F R S (interp f t). Proof. - bcoinduction. + coinduction. rewrite (unfold_forever t). rewrite (unfold_forever (interp _ _)). rewrite interp_bind. @@ -318,7 +318,7 @@ Lemma interp_iter' {E F} (f : E ~> itree F) {I A} interp f (ITree.iter t i) ≅ ITree.iter t' i. Proof. - bcoinduction; intros i. + coinduction; intros i. rewrite 2 unfold_iter. rewrite interp_bind. ebind. @@ -343,7 +343,7 @@ Lemma interp_iter'_eutt {E F} (f: E ~> itree F) {I A} (Heq: forall i, interp f (t i) ≈ t' i): forall i, interp f (ITree.iter t i) ≈ ITree.iter t' i. Proof. - bcoinduction; intros i. + coinduction; intros i. rewrite 2 unfold_iter. rewrite interp_bind. ebind. diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index 24b5ea2e..08926a62 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -82,7 +82,7 @@ Global Instance eq_itree_mrec {R} : Proper (eq_itree eq ==> eq_itree eq) (@interp_mrec _ _ ctx R). Proof. repeat red. - bcoinduction. intros. + coinduction. intros. rewrite !unfold_interp_mrec. step in H. inv H; eauto with itree. - taus. now apply CIH. @@ -98,7 +98,7 @@ Theorem interp_mrec_bind {U T} (t : itree _ U) (k : U -> itree _ T) : interp_mrec ctx (ITree.bind t k) ≅ ITree.bind (interp_mrec ctx t) (fun x => interp_mrec ctx (k x)). Proof. - revert t k; bcoinduction; intros. + revert t k; coinduction; intros. rewrite (unfold_interp_mrec _ t). rewrite (unfold_bind t). destruct (observe t); cbn; @@ -129,7 +129,7 @@ Theorem interp_mrec_as_interp {T} (c : itree _ T) : interp_mrec ctx c ≈ interp (mrecursive ctx) c. Proof. rewrite <- (tau_eutt (interp _ _)). - revert_until T. bcoinduction. intros. + revert_until T. coinduction. intros. rewrite unfold_interp_mrec, unfold_interp. destruct (observe c0); [| |destruct e]; simpl; eauto with paco. - now taur. @@ -160,7 +160,7 @@ Theorem unfold_interp_mrec_h {T} (t : itree _ T) ≈ interp_mrec ctx t. Proof. rewrite <- tau_eutt. - revert t. bcoinduction. intros. + revert t. coinduction. intros. rewrite (itree_eta t); destruct (observe t). - rewrite 2 unfold_interp_mrec; now taul. - rewrite unfold_interp, 2 unfold_interp_mrec. @@ -192,7 +192,7 @@ Global Instance Proper_interp_mrec {D E} : interp_mrec. Proof. intros f g Hfg R. - bcoinduction; intros t1 t2 Ht. + coinduction; intros t1 t2 Ht. rewrite 2 unfold_interp_mrec. step in Ht; induction Ht; cbn. 3: { destruct e; constructor. @@ -236,7 +236,7 @@ Instance euttge_interp_mrec {D E} : interp_mrec. Proof. intros f g Hfg R. - bcoinduction; intros t1 t2 Ht. + coinduction; intros t1 t2 Ht. rewrite 2 unfold_interp_mrec. step in Ht; induction Ht; try easy; cbn. 3: { destruct e; constructor. diff --git a/theories/Interp/Traces.v b/theories/Interp/Traces.v index 5132a2bc..97012d53 100644 --- a/theories/Interp/Traces.v +++ b/theories/Interp/Traces.v @@ -82,20 +82,20 @@ Proof. red. intros. red in H0. remember (observe t1). generalize dependent t1. generalize dependent t2. induction H0; intros; try solve [constructor]. - - sstep in H. rewrite <- Heqi in H. + - step in H. rewrite <- Heqi in H. remember (RetF _). remember (observe t2). generalize dependent t2. induction H; intros; try inv Heqi0; red; rewrite <- Heqi1; constructor. eapply IHsuttF; eauto. - apply IHis_traceF with (t1:=t); auto. apply sutt_inv_tau_left. red. red in H. rewrite <- Heqi in H. auto. - - sstep in H. rewrite <- Heqi in H. + - step in H. rewrite <- Heqi in H. remember (VisF _ _). remember (observe t2). generalize dependent t2. induction H; intros; try discriminate. + inv_Vis. subst. red. rewrite <- Heqi1. constructor. + red. rewrite <- Heqi1. constructor. eapply IHsuttF; eauto. - - sstep in H. rewrite <- Heqi in H. + - step in H. rewrite <- Heqi in H. remember (VisF _ _). remember (observe t2). generalize dependent t2. induction H; intros; try discriminate. @@ -130,7 +130,7 @@ Qed. Lemma trace_incl_sutt : forall {E R} (t1 t2 : itree E R), trace_incl t1 t2 -> sutt eq t1 t2. Proof. - intros E R. scoinduction c CIH. intros t1 t2 Hincl. + intros E R. coinduction c CIH. intros t1 t2 Hincl. unfold trace_incl in *. unfold is_trace in *. destruct (observe t1). - assert (H : is_traceF (RetF r : itreeF E R (itree E R)) (TRet r)) by constructor. @@ -179,7 +179,7 @@ Proof. - apply trace_incl_sutt; auto. - apply trace_incl_sutt in H0. clear H. generalize dependent t1. generalize dependent t2. - scoinduction c CIH. intros t1 t2 H0. sstep in H0. + coinduction c CIH. intros t1 t2 H0. step in H0. induction H0; constructor; eauto with itree. apply (CIH t0 (go ot2)). apply EQTAUS. Qed. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index ad2a761c..e1c67248 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -105,7 +105,7 @@ Lemma translate_id : forall E R (t : itree E R), translate (id_ _) t ≅ t. Proof. intros E R t. revert t. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite itree_eta. rewrite (itree_eta t). rewrite unfold_translate. @@ -120,7 +120,7 @@ Lemma translate_cmpE : forall E F G R (g : F ~> G) (f : E ~> F) (t : itree E R), Proof. intros E F G R g f t. revert t. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite !unfold_translate. genobs_clear t ot. destruct ot; cbn; try constructor; eauto. Qed. @@ -160,7 +160,7 @@ Instance eq_itree_translate {E F} translate. Proof. intros f g Hfg T. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite 2 unfold_translate. step in H. destruct H; cbn; try easy; try rewrite Hfg; eauto with itree. @@ -174,7 +174,7 @@ Instance eutt_translate {E F} Proof. repeat red. intros until T. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite !unfold_translate. step in H0. induction H0; subst; simpl; eauto with itree. - rewrite H. econstructor. eauto with itree. @@ -197,7 +197,7 @@ Lemma eutt_translate_gen : Proof. intros *. revert t s. - bcoinduction c CIH. intros. + coinduction c CIH. intros. rewrite !unfold_translate. step in H. induction H; intros; subst; simpl; eauto with itree. Qed. diff --git a/theories/Props/HasPost.v b/theories/Props/HasPost.v index 2aa79b9d..82e5eeb7 100644 --- a/theories/Props/HasPost.v +++ b/theories/Props/HasPost.v @@ -238,7 +238,7 @@ Lemma eutt_eq_itree {E X} (R : X -> X -> Prop) : forall (t : itree E X), Proof. enough (forall (t u : itree E X), eutt R t u -> eq_itree eq t u -> eq_itree R t u). { intros; apply H; [ auto | apply Reflexive_eqit_eq ]. } - bcoinduction. + coinduction. intros t u H EQ. rewrite (itree_eta t), (itree_eta u) in H. step in EQ. cbn. destruct EQ; try discriminate; constructor. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 4f7ed25f..d1825a02 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -426,7 +426,7 @@ Qed. Lemma Leaf_interp_subtree_inv {E F R} (h: E ~> itree F) (t u: itree E R): subtree u t -> has_post (interp h u) (fun x : R => x ∈ t). Proof. - revert t u. unfold has_post. bcoinduction c CIH; intros * Hsub. + revert t u. unfold has_post. coinduction c CIH; intros * Hsub. rewrite (itree_eta u) in Hsub. rewrite unfold_interp. desobs u Hu; clear u Hu; cbn. @@ -441,7 +441,7 @@ Lemma Leaf_interp_state_subtree_inv {E F S R} (h: E ~> Monads.stateT S (itree F) (t u: itree E R) (s: S): subtree u t -> has_post (interp_state h u s) (fun x => snd x ∈ t). Proof. - revert t u s. unfold has_post. bcoinduction c CIH; intros * Hsub. + revert t u s. unfold has_post. coinduction c CIH; intros * Hsub. rewrite (itree_eta u) in Hsub. rewrite unfold_interp_state. desobs u Hu; clear u Hu; cbn. From abb2d37e19d14316cccd6106cfeb08abde5a8e1a Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 3 May 2026 23:48:49 -0400 Subject: [PATCH 139/189] Progress on itracebind. --- extra/ITrace/ITraceBind.v | 255 +++++++++++++++++++------------------- 1 file changed, 126 insertions(+), 129 deletions(-) diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 0dc615c3..ffc3f605 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -180,7 +180,7 @@ Proof. sinv x; inv CHECK. + rewrite <- x0. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. - rewrite Heq in x. rewrite bind_vis in x. sinv x. + rewrite Heq in x. rewrite bind_vis in x. step in x; inversion x. ddestruction. inversion H; ddestruction. * unfold observe. cbn. unfold peel_vis. destruct (classicT (B = B) ); try contradiction. @@ -189,16 +189,15 @@ Proof. dependent destruction He. cbn. constructor; eauto. intros. inversion H1. ddestruction. apply H0 in H1. unfold id. eapply CIH. - red in H. cbn in H. inversion H. ddestruction. + cbn in x1. inversion x1. ddestruction. specialize (H0 tt a (rar _ _ _)). specialize (REL0 a). - change (paco2 ?x ?y ?t ?u) with (eq_itree eq t u) in REL0. rewrite REL0. apply H0. * cbn. constructor; eauto. intros. contradiction. + rewrite <- x. cbn. constructor. eapply IHHrutt; eauto. + exfalso. symmetry in Heq. apply simpobs in x. apply simpobs in Heq. rewrite Heq in x. rewrite bind_vis in x. - sinv x; inv CHECK. + sinv x. Qed. Lemma not_spin_eutt_ret : forall E R (r : R), ~ (@ITree.spin E R ≈ Ret r). @@ -212,102 +211,97 @@ Lemma proper_peel_eutt_l : forall (E : Type -> Type) (R S : Type) (b b': itrace E R) (t : itree E S), (b ≈ b') -> (peel b t ≈ peel b' t). Proof. - intros E R S. coinduction c CIH. intros. unfold peel. + intros E R S. icoinduction c CIH. intros. unfold peel. destruct (observe t). - - step. destruct (observe b); destruct (observe b'); cbn; + - destruct (observe b); destruct (observe b'); cbn; try (destruct e); try (destruct e0); cbn; try (constructor; auto; fail). - - step. step in H0. red in H0. dependent induction H0. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. - right. rewrite x0. eapply CIH. reflexivity. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. + - step in H. dependent induction H. + + rewrite <- x0. rewrite <- x. cbn. constructor. + rewrite x0. eapply CIH. reflexivity. + + rewrite <- x0. rewrite <- x. cbn. constructor. eapply CIH. auto. + rewrite <- x0. rewrite <- x. destruct e; cbn. - * red. cbn. constructor. right. rewrite x. rewrite x0. + * cbn. constructor. rewrite x. rewrite x0. eapply CIH. step. rewrite <- x. rewrite <- x0. constructor. auto. - * red. cbn. constructor. right. rewrite x0. rewrite x. + * cbn. constructor. rewrite x0. rewrite x. eapply CIH. step. rewrite <- x0. rewrite <- x. constructor. auto. + destruct (observe b); destruct (observe b'); dependent destruction x. - * red. cbn. constructor. right. remember (@go (EvAns E) _ (RetF r0)) as t1. - assert (RetF r0 = observe t1). + * cbn. constructor. remember (@go (EvAns E) _ (RetF r)) as t1. + assert (RetF r = observe t1). { rewrite Heqt1. auto. } - rewrite H. eapply CIH. rewrite Heqt1. step. auto. - * red. cbn. constructor. eapply CIH. + rewrite H0. eapply CIH. rewrite Heqt1. step. auto. + * cbn. constructor. eapply CIH. enough (t2 ≈ Tau t3). - { rewrite tau_eutt in H. auto. } + { rewrite tau_eutt in H0. auto. } step. auto. - * red. destruct e; cbn. - ++ constructor. right. + * destruct e; cbn. + ++ constructor. remember (@go (EvAns E) _ (VisF (evans A ev ans) k ) ) as t1. assert (VisF (evans A ev ans) k = observe t1). { rewrite Heqt1. auto. } - rewrite H. eapply CIH. subst. step. auto. - ++ constructor. right. + rewrite H0. eapply CIH. subst. step. auto. + ++ constructor. remember (go (VisF (evempty A Hempty ev) k ) ) as t1. assert (VisF (evempty A Hempty ev) k = observe t1 ). { subst. auto. } - rewrite H. eapply CIH. subst. step. auto. + rewrite H0. eapply CIH. subst. step. auto. + destruct (observe b); destruct (observe b'); dependent destruction x. - * red. cbn. constructor. right. remember (@go (EvAns E) _ (RetF r0)) as t2. - assert (RetF r0 = observe t2). + * cbn. constructor. remember (@go (EvAns E) _ (RetF r)) as t2. + assert (RetF r = observe t2). { subst. auto. } - rewrite H. eapply CIH. rewrite Heqt2. step. auto. - * red. cbn. constructor. eapply CIH. + rewrite H0. eapply CIH. rewrite Heqt2. step. auto. + * cbn. constructor. eapply CIH. enough (Tau t1 ≈ t3). - { rewrite tau_eutt in H. auto. } + { rewrite tau_eutt in H0. auto. } step. auto. - * red. destruct e; cbn. - ++ constructor. right. + * destruct e; cbn. + ++ constructor. remember (@go (EvAns E) _ (VisF (evans A ev ans) k ) ) as t2. assert (VisF (evans A ev ans) k = observe t2). { subst. auto. } - rewrite H. eapply CIH. subst. step. auto. - ++ constructor. right. + rewrite H0. eapply CIH. subst. step. auto. + ++ constructor. remember (go (VisF (evempty A Hempty ev) k ) ) as t2. assert (VisF (evempty A Hempty ev) k = observe t2 ). { subst. auto. } - rewrite H. eapply CIH. subst. step. auto. - - step. step in H0. red in H0. dependent induction H0. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. - left. apply pacobot2. - enough (@ITree.spin (EvAns E) S ≈ ITree.spin); auto. - reflexivity. - + rewrite <- x. rewrite <- x0. red. cbn. constructor. right. + rewrite H0. eapply CIH. subst. step. auto. + - step in H. dependent induction H. + + rewrite <- x0. rewrite <- x. reflexivity. + + rewrite <- x. rewrite <- x0. cbn. constructor. remember (go (VisF e k) ) as t0. assert (VisF e k = observe t0). { subst. auto. } rewrite H. eapply CIH. auto. - + rewrite <- x0. rewrite <- x. red. destruct e; cbn. + + rewrite <- x0. rewrite <- x. destruct e; cbn. * unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X) ). ++ unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. cbn. constructor. intros. eapply CIH. auto with itree. - ++ cbn. constructor. left. apply pacobot2. - enough (@ITree.spin (EvAns E) S ≈ ITree.spin ); auto. - reflexivity. - * constructor. left. contradiction. - + rewrite <- x. red. destruct (observe b') eqn : Heq. + ++ reflexivity. + * constructor. contradiction. + + rewrite <- x. destruct (observe b') eqn : Heq. * rewrite <- Heq. cbn. constructor; auto. eapply IHeqitF; eauto. rewrite Heq. auto. - * cbn. constructor. right. + * cbn. constructor. remember (go (VisF e k) ) as t2. assert (VisF e k = observe t2). { subst. auto. } - rewrite H. eapply CIH. + rewrite H0. eapply CIH. enough (t1 ≈ Tau t0). { rewrite tau_eutt in H1. auto. } step; auto. * cbn. constructor; eauto. rewrite <- Heq. eapply IHeqitF; eauto. rewrite Heq. auto. - + rewrite <- x. red. destruct (observe b) eqn : Heq. + + rewrite <- x. destruct (observe b) eqn : Heq. * rewrite <- Heq. cbn. constructor; auto. eapply IHeqitF; eauto. rewrite Heq. auto. - * cbn. constructor. right. + * cbn. constructor. remember (go (VisF e k) ) as t1. assert (VisF e k = observe t1). { subst. auto. } - rewrite H. eapply CIH. + rewrite H0. eapply CIH. enough (Tau t0 ≈ t2). { rewrite tau_eutt in H1. auto. } step; auto. @@ -322,26 +316,25 @@ Lemma proper_peel_eutt_r : forall (E : Type -> Type) (R S : Type) (t ≈ t') -> (peel b t ≈ peel b t'). Proof. intros E R S. coinduction c CIH. intros. - step. unfold peel. destruct (observe b) eqn : Heqb. - - step in H0. red in H0. dependent induction H0. - + rewrite <- x. rewrite <- x0. cbn. constructor. auto. - + rewrite <- x. rewrite <- x0. cbn. constructor. right. rewrite <- Heqb. + unfold peel. destruct (observe b) eqn : Heqb. + - step in H. dependent induction H. + + rewrite <- x. rewrite <- x0. reflexivity. + + rewrite <- x. rewrite <- x0. cbn. constructor. rewrite <- Heqb. eapply CIH. auto. - + rewrite <- x0. rewrite <- x. cbn. constructor. - left. apply paco2_eqit_refl. - + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. + + rewrite <- x0. rewrite <- x. cbn. reflexivity. + + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. - - step in H0. red in H0. dependent induction H0. + - step in H. dependent induction H. + rewrite <- x. rewrite <- x0. cbn. constructor. auto. - + rewrite <- x0. rewrite <- x. cbn. constructor. right. + + rewrite <- x0. rewrite <- x. cbn. constructor. eapply CIH; auto. - + rewrite <- x0. rewrite <- x. cbn. constructor. right. + + rewrite <- x0. rewrite <- x. cbn. constructor. rewrite x0. rewrite x. eapply CIH. step. rewrite <- x0. rewrite <- x. constructor. auto. + rewrite <- x. destruct (observe t') eqn : Heqt'. * cbn. constructor; auto. clear IHeqitF. - dependent induction H0. + dependent induction H. ++ rewrite <- x. destruct (observe t0); cbn; try (constructor; auto; fail). destruct e; cbn; constructor; auto. ++ rewrite <- x. cbn. destruct (observe t2) eqn : Heqt2; cbn. @@ -349,29 +342,29 @@ Proof. ** constructor; auto. eapply IHeqitF; eauto. ** destruct e; cbn; try (constructor; auto; rewrite <- Heqt2; eapply IHeqitF; eauto). - * cbn. constructor. right. eapply CIH; eauto. + * cbn. constructor. eapply CIH; eauto. enough (t1 ≈ Tau t2). - { rewrite tau_eutt in H. auto. } + { rewrite tau_eutt in H0. auto. } step. auto. * cbn. constructor. rewrite <- Heqt'. eapply CIH. step. rewrite Heqt'. auto. + rewrite <- x. destruct (observe t). * cbn. constructor; auto. clear IHeqitF. - dependent induction H0. + dependent induction H. ++ rewrite <- x. destruct (observe t0); try (destruct e); cbn; constructor; auto. ++ rewrite <- x. destruct (observe t1) eqn : Heqt1; cbn. ** constructor; auto. rewrite <- Heqt1. eapply IHeqitF; eauto. ** constructor; auto. eapply IHeqitF; eauto. ** destruct e; cbn; try (constructor; auto; rewrite <- Heqt1; eapply IHeqitF; eauto). - * cbn. constructor. right. eapply CIH; eauto. + * cbn. constructor. eapply CIH; eauto. rewrite <- tau_eutt at 1. step. auto. - * cbn. constructor. right. remember ((Vis e k) ) as t1. + * cbn. constructor. remember ((Vis e k) ) as t1. assert (VisF e k = observe t1). { subst. auto. } - rewrite H. eapply CIH. subst. step. auto. - - step in H0. red in H0. dependent induction H0. + rewrite H0. eapply CIH. subst. step. auto. + - step in H. dependent induction H. + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; auto. - + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; right; rewrite <- Heqb; + + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; rewrite <- Heqb; eapply CIH; eauto. + rewrite <- x. rewrite <- x0. destruct e0; cbn. * unfold observe. cbn. unfold peel_vis. @@ -379,13 +372,13 @@ Proof. ++ unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. intros. eapply CIH. auto with itree. - ++ cbn. constructor. left. apply paco2_eqit_refl. + ++ cbn. reflexivity. * constructor. contradiction. + rewrite <- x. destruct (observe t'); destruct e; cbn. - * constructor; auto. clear IHeqitF. dependent induction H0. + * constructor; auto. clear IHeqitF. dependent induction H. ++ rewrite <- x. cbn. constructor; auto. ++ rewrite <- x. cbn. constructor; eauto. - * constructor; auto. clear IHeqitF. dependent induction H0. + * constructor; auto. clear IHeqitF. dependent induction H. ++ rewrite <- x. cbn. constructor; auto. ++ rewrite <- x. cbn. constructor; eauto. * constructor. rewrite <- Heqb. eapply CIH. @@ -393,39 +386,39 @@ Proof. * rewrite <- Heqb. constructor. eapply CIH. setoid_rewrite <- tau_eutt at 2. step. auto. * constructor; auto. clear IHeqitF. - dependent induction H0. + dependent induction H. ++ rewrite <- x. unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. - cbn. constructor. intros. right. eapply CIH; eauto with itree. - ** cbn. constructor. left. apply paco2_eqit_refl. + cbn. constructor. intros. idtac. eapply CIH; eauto with itree. + ** cbn. reflexivity. ++ rewrite <- x. cbn. constructor; auto; eapply IHeqitF; eauto. * constructor; auto. clear IHeqitF. - dependent induction H0. + dependent induction H. ++ rewrite <- x. cbn. constructor. contradiction. ++ rewrite <- x. cbn. constructor; auto; eapply IHeqitF; eauto. + rewrite <- x. cbn. destruct (observe t) eqn : Heqt; destruct e; cbn. - * constructor; auto. clear IHeqitF. dependent induction H0. + * constructor; auto. clear IHeqitF. dependent induction H. ++ rewrite <- x. cbn. constructor; auto. ++ rewrite <- x. cbn. constructor; eauto. - * constructor; auto. clear IHeqitF. dependent induction H0. + * constructor; auto. clear IHeqitF. dependent induction H. ++ rewrite <- x. cbn. constructor; auto. ++ rewrite <- x. cbn. constructor; eauto. - * constructor. right. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. + * constructor. idtac. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. step. auto. - * constructor. rewrite <- Heqb. right. eapply CIH; eauto. rewrite <- tau_eutt. + * constructor. rewrite <- Heqb. idtac. eapply CIH; eauto. rewrite <- tau_eutt. step. auto. - * constructor; auto. clear IHeqitF. dependent induction H0. + * constructor; auto. clear IHeqitF. dependent induction H. ++ rewrite <- x. unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. - cbn. constructor. intros. right. eapply CIH; apply REL. - ** cbn. constructor. left. apply paco2_eqit_refl. + cbn. constructor. intros. idtac. eapply CIH; apply REL. + ** cbn. reflexivity. ++ rewrite <- x. cbn. constructor; eauto. - * constructor; auto. clear IHeqitF. dependent induction H0. + * constructor; auto. clear IHeqitF. dependent induction H. ++ rewrite <- x. cbn. constructor. contradiction. ++ rewrite <- x. cbn. constructor; eauto. Qed. @@ -441,7 +434,7 @@ Lemma not_peel_vis_ret: forall (R : Type) (E : Type -> Type) (S X : Type) (e : E ~ (peel t1 (Vis e k) ≈ Ret r). Proof. intros R E S X e k r t1 Heutt. - step in Heutt. unfold peel in *. red in Heutt. cbn in *. + step in Heutt. unfold peel in *. cbn in *. dependent induction Heutt. - destruct (observe t1); cbn in x; try discriminate. destruct e0; cbn in *; try discriminate. @@ -467,7 +460,7 @@ Lemma peel_ret_inv: (peel b t ≈ Ret r) -> (t ≈ Ret r). Proof. intros R r E S b t H. unfold peel in H. - step in H. red in H. cbn in H. step. cbn. + step in H. cbn in H. step. cbn. dependent induction H. - unfold peel in x. destruct (observe b); destruct (observe t); cbn in *; dependent destruction x; try (constructor; auto; fail). @@ -509,18 +502,18 @@ Proof. rewrite Hspin in H0. eapply not_spin_eutt_ret; eauto. Qed. -Lemma eqitF_r_refl: forall (E : Type -> Type) (R: Type) r +(* Lemma eqitF_r_refl: forall (E : Type -> Type) (R: Type) r (ot: itree' E R), eqitF eq true true id (upaco2 (eqit_ eq true true id) r) ot ot. Proof. intros E R r ot. destruct ot; constructor; auto. - - left. apply pacobot2, reflexivity. - - left. apply pacobot2, reflexivity. -Qed. + - idtac. apply pacobot2, reflexivity. + - idtac. apply pacobot2, reflexivity. +Qed. *) -Lemma eqitF_mon: +(* Lemma eqitF_mon: forall (E : Type -> Type) (R : Type) (r : itree (EvAns E) R -> itree (EvAns E) R -> Prop) (t1 : itree' (EvAns E) R) (t0 : itree' (EvAns E) R), eqitF eq true true id (upaco2 (eqit_ eq true true id) bot2) t1 t0 -> @@ -528,20 +521,20 @@ Lemma eqitF_mon: Proof. intros E R r t1 t0' REL. induction REL; constructor; eauto. - - left. apply pacobot2; auto. - - intros. left. apply pacobot2; auto. -Qed. + - idtac. apply pacobot2; auto. + - intros. idtac. apply pacobot2; auto. +Qed. *) Lemma eqitF_observe_peel_cont_vis: forall (E : Type -> Type) (R S A : Type) (ev : E A) (ans : A) (k1 k2 : unit -> itree (EvAns E) R), - (forall v : unit, id (upaco2 (eqit_ eq true true id) bot2) (k1 v) (k2 v)) -> + (forall v : unit, eutt eq (k1 v) (k2 v)) -> forall r : itree (EvAns E) R -> itree (EvAns E) R -> Prop, (forall (b b' : itrace E R) (t : itree E S), (b ≈ b') -> r (peel_cont_ (observe b) (observe t)) (peel_cont_ (observe b') (observe t))) -> forall (X : Type) (e : E X) (k : X -> itree E S), - eqitF eq true true id (upaco2 (eqit_ eq true true id) r) + eqitF eq true true (r) (observe (peel_cont_ (VisF (evans A ev ans) k1) (VisF e k))) (observe (peel_cont_ (VisF (evans A ev ans) k2) (VisF e k))). Proof. @@ -550,9 +543,9 @@ Proof. destruct (classicT (A = X) ). - unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. - intros. right. eapply CIH. auto with itree. - - cbn. apply eqitF_r_refl. -Qed. + intros. idtac. eapply CIH. auto with itree. + - cbn. taus. +Admitted. Lemma proper_peel_cont_eutt_l : forall (E : Type -> Type) (R S : Type) @@ -560,46 +553,50 @@ Lemma proper_peel_cont_eutt_l : forall (E : Type -> Type) (R S : Type) (b ≈ b') -> (peel_cont b t s ≈ peel_cont b' t s). Proof. intros E R S. unfold peel_cont. intros b b' t _. - revert b b' t. coinduction c CIH. intros. step. step in H0. red in H0. + revert b b' t. coinduction c CIH. intros. step in H. destruct (observe t) eqn : Heqt. - - red. destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inversion H0; cbn; + (* todo: this *) + fail. + - destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inversion H; cbn; try (constructor; auto; fail); try (constructor; auto; eapply eqitF_mon; eauto; fail); try (destruct e; cbn); try (constructor; auto; eapply eqitF_mon; eauto; fail). - + constructor. left. apply pacobot2; auto. - + subst. ddestruction. subst. cbn. constructor. intros. left. inv H0. - ddestruction. subst. apply pacobot2; auto. - + ddestruction. subst. ddestruction. subst. cbn. constructor; auto. intros []. + + taul. to_mon. now do 2 step. + + subst. ddestruction. subst. cbn. constructor. intros. idtac. inv H. + ddestruction. subst. to_mon. now do 2 step. + + ddestruction. subst. ddestruction. subst. cbn. constructor; auto. + now do 2 ITree.Basics.Utils.step. + + (*looks like I didn't actually need to induct here ... *) - dependent induction H0; try clear IHeqitF. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. + + rewrite <- x0. rewrite <- x. red. cbn. constructor. idtac. rewrite x. eapply CIH; eauto. step. rewrite <- x. constructor; auto. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. right. + + rewrite <- x0. rewrite <- x. red. cbn. constructor. idtac. eapply CIH. auto. - + rewrite <- x0. rewrite <- x. red. destruct e; cbn; constructor; right. + + rewrite <- x0. rewrite <- x. red. destruct e; cbn; constructor; idtac. * rewrite x. rewrite x0. eapply CIH; eauto. step. red. rewrite <- x0. rewrite <- x. constructor. auto. * rewrite x. rewrite x0. eapply CIH; eauto. step. red. rewrite <- x0. rewrite <- x. constructor. auto. + rewrite <- x. red. cbn. destruct (observe b') eqn : Heqb'; cbn. - * constructor. right. rewrite <- Heqb'. eapply CIH. + * constructor. idtac. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. step. auto. * constructor. eapply CIH. setoid_rewrite <- tau_eutt at 2. step. auto. - * constructor. right. rewrite <- Heqb'. eapply CIH. + * constructor. idtac. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. step. auto. + rewrite <- x. red. cbn. destruct (observe b) eqn : Heqb; cbn. - * constructor; auto. right. rewrite <- Heqb. eapply CIH. + * constructor; auto. idtac. rewrite <- Heqb. eapply CIH. step. rewrite Heqb. auto. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. - * constructor. right. rewrite <- Heqb. eapply CIH. step. + * constructor. idtac. rewrite <- Heqb. eapply CIH. step. red. rewrite Heqb. auto. - red. dependent induction H0; cbn. - + rewrite <- x0. rewrite <- x. cbn. constructor. left. step. apply eqitF_r_refl. - + rewrite <- x0. rewrite <- x. cbn. constructor. right. rewrite <- Heqt. eapply CIH. + + rewrite <- x0. rewrite <- x. cbn. constructor. idtac. step. apply eqitF_r_refl. + + rewrite <- x0. rewrite <- x. cbn. constructor. idtac. rewrite <- Heqt. eapply CIH. auto. + rewrite <- x. rewrite <- x0. destruct e; cbn; try (apply eqitF_observe_peel_cont_vis; auto). apply eqitF_r_refl. @@ -610,7 +607,7 @@ Qed. Lemma peel_cont_ret_inv : forall E R S (b : itrace E R) (t : itree E S) (s : S), t ≈ Ret s -> (peel_cont_ (observe b) (observe t) ≈ b). Proof. - intros E R S. coinduction c CIH. intros. step in H0. red in H0. cbn in H0. dependent induction H0; subst. + intros E R S. coinduction c CIH. intros. step in H. cbn in H0. dependent induction H0; subst. - rewrite <- x. cbn. step. cbn. apply eqitF_r_refl. - rewrite <- x. destruct (observe b) eqn : Hb. + step. cbn. constructor; auto. @@ -618,7 +615,7 @@ Proof. specialize (IHeqitF r CIH (Ret r0) t1 s ); auto. assert (S = S). auto. apply IHeqitF in H; auto. rewrite Hb. step in H. - + step. rewrite Hb. cbn. constructor. right. eapply CIH with (s := s). + + step. rewrite Hb. cbn. constructor. idtac. eapply CIH with (s := s). step. auto. + step. rewrite Hb. cbn. rewrite <- Hb. constructor; auto. specialize (IHeqitF r CIH b t1 s ); auto. @@ -630,43 +627,43 @@ Lemma proper_peel_cont_eutt_r : forall (E : Type -> Type) (R S : Type) (t ≈ t') -> (peel_cont b t s ≈ peel_cont b t' s). Proof. intros E R S. unfold peel_cont. intros b t t' _. - revert b t t'. coinduction c CIH. intros. step. step in H0. red in H0. dependent induction H0. + revert b t t'. coinduction c CIH. intros. step. step in H. dependent induction H0. - rewrite <- x. rewrite <- x0. red. cbn. apply eqitF_r_refl. - rewrite <- x. rewrite <- x0. red. destruct (observe b) eqn : Heqb; cbn. - + constructor. right. rewrite <- Heqb. eapply CIH. auto. + + constructor. idtac. rewrite <- Heqb. eapply CIH. auto. + constructor. eapply CIH. auto. - + constructor. right. rewrite <- Heqb. eapply CIH; auto. + + constructor. idtac. rewrite <- Heqb. eapply CIH; auto. - rewrite <- x. rewrite <- x0. destruct (observe b) eqn : Heqb; red; cbn. + apply eqitF_r_refl. + constructor. rewrite x. rewrite x0. eapply CIH. step. rewrite <- x. rewrite <- x0. constructor. intros. - left. auto. + idtac. auto. + destruct e0; cbn. * unfold observe. cbn. unfold peel_cont_vis. destruct (classicT (A = u) ); try apply eqitF_r_refl. unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. - dependent destruction He. cbn. constructor. intros. right. + dependent destruction He. cbn. constructor. intros. idtac. eapply CIH. auto with itree. * apply eqitF_r_refl. - rewrite <- x. destruct (observe b) eqn : Heqb; red; cbn. + constructor; eauto. rewrite <- Heqb. eapply IHeqitF; eauto. + cbn. destruct (observe t') eqn : Heqt'; cbn. - * constructor. left. apply pacobot2. + * constructor. idtac. apply pacobot2. eapply peel_cont_ret_inv with (s := r0). step. auto. - * constructor. right. eapply CIH; eauto. setoid_rewrite <- tau_eutt at 2. + * constructor. idtac. eapply CIH; eauto. setoid_rewrite <- tau_eutt at 2. step. auto. - * constructor. right. rewrite <- Heqt'. eapply CIH. + * constructor. idtac. rewrite <- Heqt'. eapply CIH. step. rewrite Heqt'. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. - rewrite <- x. destruct (observe b) eqn : Heqb; red; cbn. + constructor; auto. rewrite <- Heqb. eapply IHeqitF; eauto. + destruct (observe t) eqn : Heqt; cbn. - * constructor. left. apply pacobot2. + * constructor. idtac. apply pacobot2. enough (t0 ≈ peel_cont_ (observe t0) (observe t2) ). auto. symmetry. eapply peel_cont_ret_inv with (s := r0). symmetry. step. auto. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. - * constructor. right. rewrite <- Heqt. eapply CIH. + * constructor. idtac. rewrite <- Heqt. eapply CIH. step. rewrite Heqt. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. Qed. @@ -1027,11 +1024,11 @@ Proof. step in Hvis. red in Hvis. clear Heqb Heqt. dependent induction Hvis. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Heqt0; try discriminate. - + right. exists r0. step. cbn. rewrite Heqt0. auto with itree. - + cbn in x. left. exists X0. exists k2. exists e1. symmetry in Heqt0. + + idtac. exists r0. step. cbn. rewrite Heqt0. auto with itree. + + cbn in x. idtac. exists X0. exists k2. exists e1. symmetry in Heqt0. apply simpobs in Heqt0. rewrite Heqt0. reflexivity. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Heqt0; try discriminate. - + right. exists r0. step. cbn. rewrite Heqt0. auto with itree. + + idtac. exists r0. step. cbn. rewrite Heqt0. auto with itree. + injection x as Ht1. symmetry in Heqt0. apply simpobs in Heqt0. setoid_rewrite Heqt0. setoid_rewrite tau_eutt. eapply IHHvis; eauto. rewrite Ht1. auto. @@ -1117,7 +1114,7 @@ Proof. intros. rewrite bind_trigger in H0. apply trace_refine_vis in H0 as Hvis. destruct Hvis as [X [e' [k' Hbvis] ] ]. setoid_rewrite Hbvis. rewrite Hbvis in H0. - step in H0. red in H0. cbn in *. inv H0. ddestruction. subst. inv H3; ddestruction; subst. + step in H. cbn in *. inv H0. ddestruction. subst. inv H3; ddestruction; subst. - exists a. exists k'. split; try reflexivity. assert (RAnsRef E unit A (evans A e a) tt e a ); auto with itree. apply H8 in H0. auto. From de8029c4ce0718d7a973f2ccc411e09dc432f5fb Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Sun, 3 May 2026 23:56:11 -0400 Subject: [PATCH 140/189] hey this sux --- .Makefile.d | 14 ++++++++-- _CoqProject | 14 +++++----- extra/Secure/SecureEqHalt.v | 54 ++++++++++++++++--------------------- 3 files changed, 42 insertions(+), 40 deletions(-) diff --git a/.Makefile.d b/.Makefile.d index 7ded4325..219d5c8f 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -138,8 +138,6 @@ extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFac extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vo extra/ITrace/ITraceBind.glob extra/ITrace/ITraceBind.v.beautified extra/ITrace/ITraceBind.required_vo: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo extra/ITrace/ITracePrefix.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceBind.vos extra/ITrace/ITraceBind.vok extra/ITrace/ITraceBind.required_vos: extra/ITrace/ITraceBind.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos extra/ITrace/ITracePrefix.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker @@ -154,3 +152,15 @@ extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkst extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/_CoqProject b/_CoqProject index a71459f0..99653e38 100644 --- a/_CoqProject +++ b/_CoqProject @@ -83,7 +83,7 @@ extra/IForest.v extra/ITrace/ITraceDefinition.v extra/ITrace/ITraceFacts.v extra/ITrace/ITracePrefix.v -extra/ITrace/ITraceBind.v +# extra/ITrace/ITraceBind.v # extra/ITrace/ITracePreds.v extra/Dijkstra/DijkstraMonad.v @@ -97,12 +97,12 @@ extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/ITreeDijkstra.v # extra/Dijkstra/StateIOTrace.v -# extra/Secure/Labels.v -# extra/Secure/StrongBisimProper.v -# extra/Secure/SecureEqHalt.v -# extra/Secure/SecureEqHaltProgInsens.v -# extra/Secure/SecureEqEuttHalt.v -# extra/Secure/SecureEqEuttTrans.v +extra/Secure/Labels.v +extra/Secure/StrongBisimProper.v +extra/Secure/SecureEqHalt.v +extra/Secure/SecureEqHaltProgInsens.v +extra/Secure/SecureEqEuttHalt.v +extra/Secure/SecureEqEuttTrans.v # extra/Secure/SecureEqWcompat.v # extra/Secure/SecureEqBind.v # extra/Secure/SecureEqProgInsens.v diff --git a/extra/Secure/SecureEqHalt.v b/extra/Secure/SecureEqHalt.v index 320f86a1..e162cb0e 100644 --- a/extra/Secure/SecureEqHalt.v +++ b/extra/Secure/SecureEqHalt.v @@ -7,15 +7,10 @@ From ITree Require Import From ITree.Extra Require Export Secure.Labels. -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. -Ltac pmonauto_itree := - let IN := fresh "IN" in - try (repeat intro; destruct IN; eauto with paco itree; fail). (* will need more propositional constraints on Preorders *) @@ -26,57 +21,54 @@ Section SecureUntimed. Context (RR : R1 -> R2 -> Prop). Coercion is_true : bool >-> Sortclass. - Inductive secure_eqitF (b1 b2 : bool) (l : L) vclo (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := + Inductive secure_eqitF (b1 b2 : bool) (l : L) (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := (* eqitF constructors *) - | secEqRet r1 r2 : RR r1 r2 -> secure_eqitF b1 b2 l vclo sim (RetF r1) (RetF r2) - | secEqTau t1 t2 : sim t1 t2 -> secure_eqitF b1 b2 l vclo sim (TauF t1) (TauF t2) - | secEqTauL t1 ot2 (CHECK : b1) : secure_eqitF b1 b2 l vclo sim (observe t1) ot2 -> secure_eqitF b1 b2 l vclo sim (TauF t1) ot2 - | secEqTauR ot1 t2 (CHECK : b2) : secure_eqitF b1 b2 l vclo sim ot1 (observe t2) -> secure_eqitF b1 b2 l vclo sim ot1 (TauF t2) + | secEqRet r1 r2 : RR r1 r2 -> secure_eqitF b1 b2 l sim (RetF r1) (RetF r2) + | secEqTau t1 t2 : sim t1 t2 -> secure_eqitF b1 b2 l sim (TauF t1) (TauF t2) + | secEqTauL t1 ot2 (CHECK : b1) : secure_eqitF b1 b2 l sim (observe t1) ot2 -> secure_eqitF b1 b2 l sim (TauF t1) ot2 + | secEqTauR ot1 t2 (CHECK : b2) : secure_eqitF b1 b2 l sim ot1 (observe t2) -> secure_eqitF b1 b2 l sim ot1 (TauF t2) (* info_flow protecting coinductive constructors *) | EqVisPriv {A} (e : E A) k1 k2 (SECCHECK : leq (priv A e) l) : - ((forall a, vclo sim (k1 a) (k2 a) : Prop)) -> secure_eqitF b1 b2 l vclo sim (VisF e k1) (VisF e k2) + ((forall a, sim (k1 a) (k2 a) : Prop)) -> secure_eqitF b1 b2 l sim (VisF e k1) (VisF e k2) | EqVisUnPrivTauLCo {A} (e : E A) k1 t2 (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, vclo sim (k1 a) t2) -> secure_eqitF b1 b2 l vclo sim (VisF e k1) (TauF t2) + (forall a, sim (k1 a) t2) -> secure_eqitF b1 b2 l sim (VisF e k1) (TauF t2) | EqVisUnPrivTauRCo {A} (e : E A) t1 k2 (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, vclo sim t1 (k2 a)) -> secure_eqitF b1 b2 l vclo sim (TauF t1) (VisF e k2) + (forall a, sim t1 (k2 a)) -> secure_eqitF b1 b2 l sim (TauF t1) (VisF e k2) | EqVisUnPrivVisCo {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) (SIZECHECK1 : nonempty A ) (SIZECHECK2 : nonempty B) : - (forall a b, vclo sim (k1 a) (k2 b)) -> secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall a b, sim (k1 a) (k2 b)) -> secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) (* info_flow protecting inductive constructors *) | EqVisUnPrivLInd {A} (e : E A) k1 t2 (CHECK : b1) (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, secure_eqitF b1 b2 l vclo sim (observe (k1 a)) (observe t2) ) -> - secure_eqitF b1 b2 l vclo sim (VisF e k1) (observe t2) + (forall a, secure_eqitF b1 b2 l sim (observe (k1 a)) (observe t2) ) -> + secure_eqitF b1 b2 l sim (VisF e k1) (observe t2) | EqVisUnPrivRInd {A} (e : E A) t1 k2 (CHECK : b2) (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, secure_eqitF b1 b2 l vclo sim (observe t1) (observe (k2 a) )) -> - secure_eqitF b1 b2 l vclo sim (observe t1) (VisF e k2) + (forall a, secure_eqitF b1 b2 l sim (observe t1) (observe (k2 a) )) -> + secure_eqitF b1 b2 l sim (observe t1) (VisF e k2) (* info_flow protecting constructors for halting events, should capture the notion that a secret halt means that either it halted or it is performing some secret or silent computation and you can't tell which *) | EqVisUnprivHaltLTauR {A} (e : E A) k1 t2 (SECCHECK : ~ leq (priv A e) l ) (SIZECHECK : empty A) : - sim (Vis e k1) t2 -> secure_eqitF b1 b2 l vclo sim (VisF e k1) (TauF t2) + sim (Vis e k1) t2 -> secure_eqitF b1 b2 l sim (VisF e k1) (TauF t2) | EqVisUnprivHaltRTauL {A} (e : E A) t1 k2 (SECCHECK : ~ leq (priv A e) l ) (SIZECHECK : empty A) : - sim t1 (Vis e k2) -> secure_eqitF b1 b2 l vclo sim (TauF t1) (VisF e k2) + sim t1 (Vis e k2) -> secure_eqitF b1 b2 l sim (TauF t1) (VisF e k2) | EqVisUnprivHaltLVisR {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) (SIZECHECK : empty A) : - (forall b, vclo sim (Vis e1 k1) (k2 b) ) -> secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall b, sim (Vis e1 k1) (k2 b) ) -> secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) | EqVisUnprivHaltRVisL {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) (SIZECHECK : empty B) : - (forall a, vclo sim (k1 a) (Vis e2 k2)) -> secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall a, sim (k1 a) (Vis e2 k2)) -> secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) . Hint Constructors secure_eqitF : itree. - Definition secure_eqit_ (b1 b2 : bool) (l : L) vclo (sim : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := - fun t1 t2 => secure_eqitF b1 b2 l vclo sim (observe t1) (observe t2). + Definition secure_eqit_ (b1 b2 : bool) (l : L) (sim : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := + fun t1 t2 => secure_eqitF b1 b2 l sim (observe t1) (observe t2). Hint Unfold secure_eqit_ : itree. - Lemma secure_eqitF_mono b1 b2 l x0 x1 vclo vclo' sim sim' - (IN: secure_eqitF b1 b2 l vclo sim x0 x1) - (MON: monotone2 vclo) - (LEc: vclo <3= vclo') - (LE: sim <2= sim'): - secure_eqitF b1 b2 l vclo' sim' x0 x1. + Lemma secure_eqitF_mono b1 b2 l sim : + Proper (leq ==> leq) + (secure_eqitF b1 b2 l sim). Proof. intros. induction IN; eauto with itree. Qed. @@ -114,7 +106,7 @@ End SecureUntimed. Definition NatPreorder : Preorder := {| L := nat; - leq := fun n m => n <= m + leq := fun n m => Nat.leq n m |}. Ltac unpriv_co := try apply EqVisUnPrivVisCo; From 319670ab6ad2bcbe6a9a1cf34b3029f5c8ab4a03 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 4 May 2026 12:05:12 -0400 Subject: [PATCH 141/189] Improved HandlerFacts build time by 32x, Translate by unmeasured amt --- .Makefile.d | 2 + _CoqProject | 2 +- theories/Eq/Eqit.v | 8 +- theories/Interp/HandlerFacts.v | 6 +- theories/Interp/TranslateFacts.v | 16 +- timing-experiments/HandlerFacts.times | 340 +++++++++++++++++++ timing-experiments/HandlerFacts.v.timing-NEW | 339 ++++++++++++++++++ timing-experiments/HandlerFacts.v.timing-OLD | 340 +++++++++++++++++++ timing-experiments/get-times.sh | 21 ++ timing-experiments/sum-times.sh | 21 ++ 10 files changed, 1083 insertions(+), 12 deletions(-) create mode 100644 timing-experiments/HandlerFacts.times create mode 100644 timing-experiments/HandlerFacts.v.timing-NEW create mode 100644 timing-experiments/HandlerFacts.v.timing-OLD create mode 100755 timing-experiments/get-times.sh create mode 100755 timing-experiments/sum-times.sh diff --git a/.Makefile.d b/.Makefile.d index 219d5c8f..f8616b06 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -164,3 +164,5 @@ extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker +extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/_CoqProject b/_CoqProject index 99653e38..c1006c40 100644 --- a/_CoqProject +++ b/_CoqProject @@ -103,7 +103,7 @@ extra/Secure/SecureEqHalt.v extra/Secure/SecureEqHaltProgInsens.v extra/Secure/SecureEqEuttHalt.v extra/Secure/SecureEqEuttTrans.v -# extra/Secure/SecureEqWcompat.v +extra/Secure/SecureEqWcompat.v # extra/Secure/SecureEqBind.v # extra/Secure/SecureEqProgInsens.v # extra/Secure/SecureEqProgInsensFacts.v diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 15c9746e..9022ebba 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -349,6 +349,7 @@ Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. +(* RTODO possible fix here: with body vs elem *) Tactic Notation "step" := (match goal with | |- context[elem _] => idtac @@ -387,7 +388,7 @@ Tactic Notation "icoinduction" coinduction R H; icbn. -Ltac bcbn := cbn; to_mon. + (* step -> inversion; common pattern for eutt Hyps *) Ltac sinv H := repeat red in H; step in H; inv H. @@ -2769,4 +2770,9 @@ Proof. intros!; now eapply observing_eq_chain. Qed. +Ltac bcbn := cbn; to_mon; +repeat match goal with +| |- context [{| _observe := observe ?t |}] => rewrite <- (itree_eta t) +end. + (* RTODO: Strengthen rewrites *) \ No newline at end of file diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 01f16efd..f819f467 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -167,18 +167,20 @@ Proof. + rewrite interp_tau. rewrite 2 interp_mrec_bind, interp_bind. subst h. - bcbn. + bcbn. rewrite interp_trigger. rewrite unfold_interp_mrec. bcbn. rewrite interp_mrec_trigger. bcbn. unfold Recursion.mrec. + (* TOUR: Note that if you eta-expand the second tree (as before), + the next 3 tactics take 8 seconds each. *) rewrite !interp_tau. rewrite (unfold_interp_mrec _ _ (Tau _)); bcbn. rewrite !bind_tau. taus. rewrite tau_euttge, <- interp_bind, <- 2 interp_mrec_bind. setoid_rewrite (tau_euttge (interp _ _)). rewrite <- interp_bind. - auto with paco. + auto. + rewrite interp_vis. rewrite interp_mrec_bind. subst h; bcbn. diff --git a/theories/Interp/TranslateFacts.v b/theories/Interp/TranslateFacts.v index e1c67248..52a7a958 100644 --- a/theories/Interp/TranslateFacts.v +++ b/theories/Interp/TranslateFacts.v @@ -48,20 +48,20 @@ Qed. Lemma translate_ret : forall (r:R), translate h (Ret r) ≅ Ret r. Proof. intros r. - rewrite itree_eta, unfold_translate. cbn. reflexivity. + rewrite unfold_translate. cbn. reflexivity. Qed. Lemma translate_tau : forall (t : itree E R), translate h (Tau t) ≅ Tau (translate h t). Proof. intros t. - rewrite itree_eta, unfold_translate. cbn. reflexivity. + rewrite unfold_translate. cbn. reflexivity. Qed. Lemma translate_vis : forall X (e:E X) (k : X -> itree E R), translate h (Vis e k) ≅ Vis (h _ e) (fun x => translate h (k x)). Proof. intros X e k. - rewrite itree_eta, unfold_translate. cbn. reflexivity. + rewrite unfold_translate. cbn. reflexivity. Qed. #[global] @@ -70,7 +70,7 @@ Instance eq_itree_translate' : Proof. intros!. revert x y H. icoinduction c CIH. intros. to_mon. - rewrite itree_eta, (itree_eta (translate h y)), !unfold_translate, <-!itree_eta. + rewrite !unfold_translate. step in H. induction H; simpobs; simpl; eauto with itree. Qed. @@ -106,11 +106,13 @@ Proof. intros E R t. revert t. coinduction c CIH. intros. - rewrite itree_eta. + (* TOUR: order: need `rewrite itree_eta.` last, or we + will be doing rewrites under {| _observe := observe _ |}, which is very slow. *) rewrite (itree_eta t). rewrite unfold_translate. unfold translateF. - destruct (observe t); cbn; try constructor; eauto. + rewrite itree_eta. + destruct (observe t); cbn; try constructor; eauto. Qed. Import CatNotations. @@ -125,8 +127,6 @@ Proof. genobs_clear t ot. destruct ot; cbn; try constructor; eauto. Qed. -(**) - Definition respectful_eq_itree {E F : Type -> Type} : (itree E ~> itree F) -> (itree E ~> itree F) -> Prop := i_respectful (fun _ => eq_itree eq) (fun _ => eq_itree eq). diff --git a/timing-experiments/HandlerFacts.times b/timing-experiments/HandlerFacts.times new file mode 100644 index 00000000..15735153 --- /dev/null +++ b/timing-experiments/HandlerFacts.times @@ -0,0 +1,340 @@ +0.006 +0.063 +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0.002 +0. +0. +0. +0. +0. +0.009 +0. +0. +0. +0. +0. +0.04 +0. +0.001 +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0.013 +0. +0.001 +0. +0. +0. +0.013 +0. +0.001 +0. +0. +0. +0. +0. +0.016 +0. +0. +0.015 +0. +0.001 +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0.001 +0. +0.001 +0. +0. +0. +0.003 +0. +0. +0.001 +0. +0. +0. +0. +0. +0. +0. +0. +0.001 +0. +0. +0. +0. +0. +0. +0. +0. +0.011 +0. +0. +0.001 +0.001 +0. +0. +0.004 +0.017 +0.001 +0. +0.015 +0. +0.033 +0.014 +0.001 +0. +0.016 +0. +0.033 +0.016 +0. +0. +0.016 +0. +0.02 +0.001 +0. +0.015 +0.052 +0.002 +0.001 +0.042 +0.031 +0. +0.036 +0.001 +0. +0.034 +8.041 +8.279 +8.157 +0. +0.112 +0.06 +0.028 +0. +0. +0.015 +0.017 +0.003 +0.007 +0. +0. +0.009 +0.019 +0.049 +0.001 +0. +0.008 +0. +0. +0. +0.028 +0. +0.012 +0. +0.098 +0. +0. +0. +0. +0. +0.005 +0. +0. +0. +0.002 +0. +0.002 +0. +0. +0.028 +0.001 +0. +0.017 +0. +0.042 +0. +0. +0.075 +0.001 +0. +0.032 +0.014 +0.016 +0.001 +0.068 +0. +0. +0. +6.961 +0. +0.01 +0. +0. +3.493 +3.454 +0. +0.02 +0. +0.019 +0. +0.048 +0. +0. +0.079 +0.001 +0. +0.034 +0.017 +0.014 +0.001 +0.071 +0. +0. +0. +5.897 +0. +0.01 +0. +0. +8.043 +8.116 +0. +0.021 +0.034 +0.001 +0. +0. +0. +0. +0. +0. +0.002 +0. +0. +0.001 +0. +0. +0. +0. +0.013 +0. +0. +0. +0.001 +0.01 +0. +0. +0.005 +0.001 +0. +0. +0.002 +0.012 +0.017 +0. +0. +0.012 +0. +0. +0. +0. +0.001 +0. +0.002 +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0.002 +0. +0. +0.002 +0. +0. +0. +0. +0.003 +0.017 +0.089 +0.026 +5.724 +0. +0. +0. +0. +0.017 +0.011 +0. +0.002 +0.042 +8.26 +8.356 +0. +0.007 +0.018 +0.031 +0. +0. +0.017 +0.018 +0.032 +0. +0. +0.029 +0. +0. +0.002 +0.05 +0. +0. +0. +0. +0.003 diff --git a/timing-experiments/HandlerFacts.v.timing-NEW b/timing-experiments/HandlerFacts.v.timing-NEW new file mode 100644 index 00000000..c1563322 --- /dev/null +++ b/timing-experiments/HandlerFacts.v.timing-NEW @@ -0,0 +1,339 @@ +Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.056 secs (0.048u,0.007s) +Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) +Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) +Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) +Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) +Chars 782 - 794 [compute;~intros.] 0. secs (0.u,0.s) +Chars 797 - 821 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) +Chars 822 - 826 [Qed.] 0. secs (0.u,0.s) +Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) +Chars 879 - 891 [compute;~intros.] 0. secs (0.u,0.s) +Chars 894 - 919 [rewrite~interp_trigger_h.] 0.001 secs (0.001u,0.s) +Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) +Chars 933 - 937 [Qed.] 0. secs (0.u,0.s) +Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) +Chars 990 - 1002 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1005 - 1028 [rewrite~interp_trigger.] 0.008 secs (0.008u,0.s) +Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) +Chars 1044 - 1048 [Qed.] 0. secs (0.u,0.s) +Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) +Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) +Chars 1105 - 1117 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1120 - 1142 [rewrite~interp_interp.] 0.036 secs (0.036u,0.s) +Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) +Chars 1158 - 1162 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) +Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) +Chars 1226 - 1251 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) +Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) +Chars 1336 - 1355 [compute;~contradiction.] 0. secs (0.u,0.s) +Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) +Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) +Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) +Chars 1524 - 1536 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1539 - 1571 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) +Chars 1572 - 1576 [Qed.] 0. secs (0.u,0.s) +Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) +Chars 1636 - 1648 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1651 - 1674 [rewrite~interp_trigger.] 0.012 secs (0.011u,0.001s) +Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) +Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) +Chars 1754 - 1766 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1769 - 1792 [rewrite~interp_trigger.] 0.011 secs (0.009u,0.002s) +Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) +Chars 1808 - 1812 [Qed.] 0.001 secs (0.u,0.s) +Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) +Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) +Chars 1884 - 1896 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1899 - 1925 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) +Chars 1928 - 1929 [-] 0. secs (0.u,0.s) +Chars 1930 - 1959 [rewrite~<-~H,~interp_trigger.] 0.015 secs (0.015u,0.s) +Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) +Chars 1975 - 1976 [-] 0. secs (0.u,0.s) +Chars 1977 - 2007 [rewrite~<-~H0,~interp_trigger.] 0.014 secs (0.014u,0.s) +Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) +Chars 2021 - 2025 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) +Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) +Chars 2096 - 2121 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) +Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) +Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) +Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) +Chars 2301 - 2314 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2317 - 2348 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) +Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) +Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) +Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) +Chars 2419 - 2431 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2434 - 2464 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) +Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) +Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) +Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) +Chars 2552 - 2564 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2567 - 2577 [pattern~f.] 0.003 secs (0.003u,0.s) +Chars 2580 - 2678 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) +Chars 2681 - 2682 [{] 0. secs (0.u,0.s) +Chars 2683 - 2738 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) +Chars 2743 - 2744 [-] 0. secs (0.u,0.s) +Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) +Chars 2755 - 2792 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 2799 - 2800 [+] 0. secs (0.u,0.s) +Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) +Chars 2820 - 2821 [+] 0. secs (0.u,0.s) +Chars 2822 - 2879 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) +Chars 2884 - 2885 [-] 0. secs (0.u,0.s) +Chars 2886 - 2928 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) +Chars 2935 - 2936 [+] 0. secs (0.u,0.s) +Chars 2937 - 2948 [intros~?~?.] 0. secs (0.u,0.s) +Chars 2949 - 2969 [apply~euttge_interp.] 0. secs (0.u,0.s) +Chars 2978 - 2979 [*] 0. secs (0.u,0.s) +Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) +Chars 3001 - 3002 [*] 0. secs (0.u,0.s) +Chars 3003 - 3020 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 3027 - 3028 [+] 0. secs (0.u,0.s) +Chars 3029 - 3048 [rewrite~tau_euttge.] 0.01 secs (0.01u,0.s) +Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) +Chars 3064 - 3065 [}] 0. secs (0.u,0.s) +Chars 3068 - 3296 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) +Chars 3299 - 3338 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) +Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) +Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 3453 - 3485 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) +Chars 3488 - 3510 [rewrite~(itree_eta~t).] 0.016 secs (0.016u,0.s) +Chars 3513 - 3534 [destruct~(observe~t).] 0. secs (0.u,0.s) +Chars 3537 - 3538 [-] 0. secs (0.u,0.s) +Chars 3539 - 3566 [rewrite~unfold_interp_mrec.] 0.014 secs (0.014u,0.s) +Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) +Chars 3578 - 3599 [rewrite~2!interp_ret.] 0.03 secs (0.03u,0.s) +Chars 3604 - 3631 [rewrite~unfold_interp_mrec.] 0.013 secs (0.013u,0.s) +Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.u,0.s) +Chars 3651 - 3652 [-] 0. secs (0.u,0.s) +Chars 3653 - 3680 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) +Chars 3692 - 3713 [rewrite~2!interp_tau.] 0.032 secs (0.032u,0.s) +Chars 3718 - 3764 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) +Chars 3782 - 3783 [-] 0. secs (0.u,0.s) +Chars 3784 - 3811 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) +Chars 3822 - 3841 [rewrite~interp_vis.] 0.019 secs (0.019u,0.s) +Chars 3846 - 3863 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) +Chars 3868 - 3869 [+] 0. secs (0.u,0.s) +Chars 3870 - 3889 [rewrite~interp_tau.] 0.014 secs (0.014u,0.s) +Chars 3896 - 3936 [rewrite~2!interp_mrec_bind,~in...] 0.049 secs (0.049u,0.s) +Chars 3943 - 3951 [subst~h.] 0.002 secs (0.002u,0.s) +Chars 3959 - 3964 [bcbn.] 0.041 secs (0.04u,0.s) +Chars 3971 - 3994 [rewrite~interp_trigger.] 0.033 secs (0.032u,0.s) +Chars 4001 - 4028 [rewrite~unfold_interp_mrec.] 0.033 secs (0.033u,0.s) +Chars 4030 - 4035 [bcbn.] 0.036 secs (0.036u,0.s) +Chars 4043 - 4071 [rewrite~interp_mrec_trigger.] 0.025 secs (0.025u,0.s) +Chars 4072 - 4077 [bcbn.] 0.035 secs (0.035u,0.s) +Chars 4085 - 4107 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 4236 - 4256 [rewrite~!interp_tau.] 0.086 secs (0.086u,0.s) +Chars 4263 - 4310 [rewrite~(unfold_interp_mrec~_~...] 0.081 secs (0.08u,0.s) +Chars 4317 - 4335 [rewrite~!bind_tau.] 0.072 secs (0.071u,0.s) +Chars 4342 - 4347 [taus.] 0. secs (0.u,0.s) +Chars 4348 - 4406 [rewrite~tau_euttge,~<-~interp_...] 0.105 secs (0.104u,0.s) +Chars 4413 - 4454 [setoid_rewrite~(tau_euttge~(in...] 0.057 secs (0.057u,0.s) +Chars 4461 - 4484 [rewrite~<-~interp_bind.] 0.025 secs (0.025u,0.s) +Chars 4491 - 4496 [auto.] 0. secs (0.u,0.s) +Chars 4501 - 4502 [+] 0. secs (0.u,0.s) +Chars 4503 - 4522 [rewrite~interp_vis.] 0.015 secs (0.015u,0.s) +Chars 4529 - 4554 [rewrite~interp_mrec_bind.] 0.015 secs (0.015u,0.s) +Chars 4561 - 4575 [subst~h;~bcbn.] 0.002 secs (0.002u,0.s) +Chars 4582 - 4588 [ebind.] 0.008 secs (0.008u,0.s) +Chars 4589 - 4609 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) +Chars 4617 - 4618 [{] 0. secs (0.u,0.s) +Chars 4619 - 4629 [do~2~step.] 0.008 secs (0.008u,0.s) +Chars 4630 - 4675 [rewrite~interp_mrec_as_interp,...] 0.017 secs (0.017u,0.s) +Chars 4684 - 4712 [rewrite~<-~interp_id_h~~at~1.] 0.046 secs (0.046u,0.s) +Chars 4721 - 4757 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) +Chars 4766 - 4777 [intros~?~?.] 0. secs (0.u,0.s) +Chars 4786 - 4814 [rewrite~interp_trigger;~cbn.] 0.007 secs (0.007u,0.s) +Chars 4823 - 4835 [reflexivity.] 0. secs (0.u,0.s) +Chars 4836 - 4837 [}] 0. secs (0.u,0.s) +Chars 4844 - 4858 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 4865 - 4912 [rewrite~(unfold_interp_mrec~_~...] 0.026 secs (0.026u,0.s) +Chars 4919 - 4924 [taus.] 0. secs (0.u,0.s) +Chars 4932 - 4951 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) +Chars 4958 - 4968 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4970 - 4974 [Qed.] 0.094 secs (0.094u,0.s) +Chars 4976 - 5000 [Section~DinatSimulation.] 0. secs (0.u,0.s) +Chars 5002 - 5033 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 5034 - 5096 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) +Chars 5097 - 5116 [Context~{R~:~Type}.] 0. secs (0.u,0.s) +Chars 5118 - 5188 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) +Chars 5190 - 5650 [Inductive~interleaved~:~itree~...] 0.004 secs (0.004u,0.s) +Chars 5651 - 5698 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) +Chars 5700 - 5744 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5745 - 5789 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5791 - 5963 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) +Chars 5964 - 5992 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 5996 - 6016 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 6019 - 6031 [induction~H.] 0. secs (0.u,0.s) +Chars 6034 - 6035 [-] 0. secs (0.u,0.s) +Chars 6036 - 6071 [rewrite~2!unfold_interp_mrec;~...] 0.025 secs (0.025u,0.s) +Chars 6072 - 6084 [reflexivity.] 0. secs (0.u,0.s) +Chars 6089 - 6090 [-] 0. secs (0.u,0.s) +Chars 6091 - 6135 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) +Chars 6140 - 6141 [+] 0. secs (0.u,0.s) +Chars 6142 - 6175 [rewrite~interp_ret,~2!bind_ret_l.] 0.039 secs (0.038u,0.s) +Chars 6176 - 6181 [auto.] 0. secs (0.u,0.s) +Chars 6186 - 6187 [+] 0. secs (0.u,0.s) +Chars 6188 - 6247 [rewrite~interp_tau,~2!bind_tau...] 0.068 secs (0.068u,0.s) +Chars 6254 - 6261 [taus~...] 0.001 secs (0.001u,0.s) +Chars 6268 - 6269 [+] 0. secs (0.u,0.s) +Chars 6270 - 6299 [rewrite~interp_vis,~bind_vis.] 0.029 secs (0.029u,0.s) +Chars 6306 - 6324 [rewrite~bind_bind.] 0.013 secs (0.013u,0.s) +Chars 6331 - 6380 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 6387 - 6404 [destruct~e;~bcbn.] 0.028 secs (0.028u,0.s) +Chars 6405 - 6446 [setoid_rewrite~(tau_euttge~(in...] 0.061 secs (0.06u,0.s) +Chars 6453 - 6454 [*] 0. secs (0.u,0.s) +Chars 6455 - 6502 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 6511 - 6546 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) +Chars 6555 - 6598 [rewrite~bind_tau,~unfold_inter...] 0.028 secs (0.028u,0.s) +Chars 6607 - 6612 [taus.] 0. secs (0.u,0.s) +Chars 6613 - 6634 [rewrite~tau_euttge~...] 0.009 secs (0.009u,0.s) +Chars 6641 - 6642 [*] 0. secs (0.u,0.s) +Chars 6643 - 6705 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 6714 - 6735 [rewrite~bind_trigger.] 0.013 secs (0.013u,0.s) +Chars 6744 - 6777 [rewrite~unfold_interp_mrec;~bcbn.] 0.013 secs (0.013u,0.s) +Chars 6786 - 6806 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 6807 - 6835 [repeat~rewrite~tau_euttge~...] 0.018 secs (0.018u,0.s) +Chars 6839 - 6840 [-] 0. secs (0.u,0.s) +Chars 6841 - 6885 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) +Chars 6890 - 6891 [+] 0. secs (0.u,0.s) +Chars 6892 - 6925 [rewrite~interp_ret,~2!bind_ret_l.] 0.039 secs (0.039u,0.s) +Chars 6926 - 6931 [auto.] 0. secs (0.u,0.s) +Chars 6936 - 6937 [+] 0. secs (0.u,0.s) +Chars 6938 - 6997 [rewrite~interp_tau,~2!bind_tau...] 0.07 secs (0.069u,0.s) +Chars 7004 - 7011 [taus~...] 0.001 secs (0.001u,0.s) +Chars 7018 - 7019 [+] 0. secs (0.u,0.s) +Chars 7020 - 7049 [rewrite~interp_vis,~bind_vis.] 0.029 secs (0.029u,0.s) +Chars 7056 - 7074 [rewrite~bind_bind.] 0.015 secs (0.014u,0.s) +Chars 7081 - 7130 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) +Chars 7137 - 7154 [destruct~e;~bcbn.] 0.03 secs (0.03u,0.s) +Chars 7155 - 7196 [setoid_rewrite~(tau_euttge~(in...] 0.062 secs (0.062u,0.s) +Chars 7203 - 7204 [*] 0. secs (0.u,0.s) +Chars 7205 - 7252 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 7261 - 7296 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) +Chars 7305 - 7363 [rewrite~!bind_tau,~(unfold_int...] 0.033 secs (0.033u,0.s) +Chars 7372 - 7377 [taus.] 0. secs (0.u,0.s) +Chars 7378 - 7399 [rewrite~tau_euttge~...] 0.008 secs (0.008u,0.s) +Chars 7407 - 7408 [*] 0. secs (0.u,0.s) +Chars 7409 - 7471 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 7480 - 7501 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) +Chars 7510 - 7543 [rewrite~unfold_interp_mrec;~bcbn.] 0.014 secs (0.014u,0.s) +Chars 7552 - 7572 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 7573 - 7601 [repeat~rewrite~tau_euttge~...] 0.019 secs (0.019u,0.s) +Chars 7602 - 7606 [Qed.] 0.03 secs (0.029u,0.s) +Chars 7608 - 7628 [End~DinatSimulation.] 0. secs (0.u,0.s) +Chars 7630 - 7648 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) +Chars 7650 - 7710 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) +Chars 7711 - 7717 [Proof.] 0. secs (0.u,0.s) +Chars 7720 - 7749 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) +Chars 7752 - 7788 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 7789 - 7825 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) +Chars 7828 - 8010 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) +Chars 8013 - 8014 [{] 0. secs (0.u,0.s) +Chars 8015 - 8024 [compute~in~H.] 0. secs (0.u,0.s) +Chars 8025 - 8078 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) +Chars 8083 - 8084 [-] 0. secs (0.u,0.s) +Chars 8085 - 8094 [symmetry.] 0. secs (0.u,0.s) +Chars 8095 - 8137 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8144 - 8158 [1:~intros~?~?.] 0. secs (0.u,0.s) +Chars 8165 - 8227 [1,~2:~rewrite~tau_euttge;~appl...] 0.011 secs (0.011u,0.s) +Chars 8234 - 8284 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) +Chars 8289 - 8290 [-] 0. secs (0.u,0.s) +Chars 8291 - 8351 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8358 - 8387 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8394 - 8413 [rewrite~tau_euttge.] 0.009 secs (0.009u,0.s) +Chars 8414 - 8439 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) +Chars 8446 - 8457 [intros~?~?.] 0. secs (0.u,0.s) +Chars 8464 - 8483 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) +Chars 8490 - 8532 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) +Chars 8539 - 8590 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) +Chars 8593 - 8594 [}] 0. secs (0.u,0.s) +Chars 8597 - 8630 [rewrite~<-~interp_mrec_as_interp.] 0.003 secs (0.003u,0.s) +Chars 8634 - 8671 [rewrite~<-~(bind_ret_r~(interp...] 0.011 secs (0.011u,0.s) +Chars 8674 - 8712 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.015 secs (0.015u,0.s) +Chars 8716 - 8739 [apply~interleaved_mrec.] 0. secs (0.u,0.s) +Chars 8742 - 8759 [do~2~constructor.] 0. secs (0.u,0.s) +Chars 8760 - 8764 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8766 - 8783 [Import~Recursion.] 0. secs (0.u,0.s) +Chars 8785 - 8847 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) +Chars 8848 - 8854 [Proof.] 0. secs (0.u,0.s) +Chars 8857 - 8880 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) +Chars 8883 - 8921 [remember~(f0~T~x)~as~t~eqn:EQt...] 0. secs (0.u,0.s) +Chars 8924 - 8960 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 8963 - 9662 [enough~~(interp_mrec~(fun~_~d~...] 0.001 secs (0.001u,0.s) +Chars 9665 - 9666 [{] 0. secs (0.u,0.s) +Chars 9667 - 9675 [subst~f.] 0. secs (0.u,0.s) +Chars 9676 - 9731 [etransitivity;~[~etransitivity...] 0. secs (0.u,0.s) +Chars 9736 - 9737 [-] 0. secs (0.u,0.s) +Chars 9738 - 9747 [symmetry.] 0. secs (0.u,0.s) +Chars 9748 - 9790 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 9797 - 9798 [+] 0. secs (0.u,0.s) +Chars 9799 - 9810 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9811 - 9858 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) +Chars 9867 - 9878 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9879 - 9896 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 9903 - 9904 [+] 0. secs (0.u,0.s) +Chars 9905 - 9978 [apply~euttge_interp_mrec;~repe...] 0.001 secs (0.001u,0.s) +Chars 9987 - 9999 [reflexivity.] 0. secs (0.u,0.s) +Chars 10004 - 10005 [-] 0. secs (0.u,0.s) +Chars 10006 - 10108 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) +Chars 10115 - 10132 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 10135 - 10136 [}] 0. secs (0.u,0.s) +Chars 10139 - 10162 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 10167 - 10176 [revert~t.] 0. secs (0.u,0.s) +Chars 10177 - 10197 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 10201 - 10251 [rewrite~(itree_eta~t);~destruc...] 0.014 secs (0.014u,0.s) +Chars 10254 - 10320 [all:~rewrite~(unfold_interp_mr...] 0.081 secs (0.081u,0.s) +Chars 10323 - 10361 [1,~2:~rewrite~unfold_interp_mr...] 0.05 secs (0.049u,0.s) +Chars 10364 - 10427 [1,~2:~rewrite~(unfold_interp_m...] 0.029 secs (0.028u,0.s) +Chars 10430 - 10435 [taus.] 0. secs (0.u,0.s) +Chars 10436 - 10446 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10450 - 10461 [destruct~e.] 0. secs (0.u,0.s) +Chars 10464 - 10465 [-] 0. secs (0.u,0.s) +Chars 10466 - 10513 [rewrite~(interp_mrec_bind~_~(I...] 0.014 secs (0.014u,0.s) +Chars 10518 - 10552 [rewrite~interp_mrec_trigger;~b...] 0.009 secs (0.009u,0.s) +Chars 10557 - 10579 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 10584 - 10647 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.001 secs (0.001u,0.s) +Chars 10652 - 10697 [rewrite~interp_tau,~unfold_int...] 0.052 secs (0.052u,0.s) +Chars 10702 - 10749 [rewrite~(unfold_interp_mrec~_~...] 0.035 secs (0.035u,0.s) +Chars 10754 - 10772 [rewrite~!bind_tau.] 0.033 secs (0.033u,0.s) +Chars 10777 - 10782 [taus.] 0. secs (0.u,0.s) +Chars 10788 - 10807 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) +Chars 10808 - 10834 [setoid_rewrite~tau_euttge.] 0.016 secs (0.016u,0.s) +Chars 10839 - 10883 [rewrite~<-~interp_mrec_bind,~<...] 0.027 secs (0.027u,0.s) +Chars 10888 - 10903 [auto~with~paco.] 0. secs (0.u,0.s) +Chars 10906 - 10907 [-] 0. secs (0.u,0.s) +Chars 10908 - 10929 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) +Chars 10934 - 10960 [setoid_rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) +Chars 10965 - 11000 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.026u,0.s) +Chars 11005 - 11016 [destruct~s.] 0. secs (0.u,0.s) +Chars 11017 - 11022 [taus.] 0. secs (0.u,0.s) +Chars 11028 - 11072 [rewrite~<-~interp_mrec_bind,~<...] 0.024 secs (0.024u,0.s) +Chars 11077 - 11087 [apply~CIH.] 0. secs (0.u,0.s) +Chars 11093 - 11113 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 11114 - 11129 [now~step;~taus.] 0.002 secs (0.002u,0.s) +Chars 11132 - 11136 [Qed.] 0.041 secs (0.04u,0.s) +Chars 11138 - 11197 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) +Chars 11198 - 11204 [Proof.] 0. secs (0.u,0.s) +Chars 11207 - 11232 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 11233 - 11237 [Qed.] 0. secs (0.u,0.s) +Chars 11239 - 11259 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/timing-experiments/HandlerFacts.v.timing-OLD b/timing-experiments/HandlerFacts.v.timing-OLD new file mode 100644 index 00000000..482d6ef4 --- /dev/null +++ b/timing-experiments/HandlerFacts.v.timing-OLD @@ -0,0 +1,340 @@ +Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.004u,0.002s) +Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.063 secs (0.053u,0.01s) +Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) +Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) +Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) +Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) +Chars 782 - 794 [compute;~intros.] 0. secs (0.u,0.s) +Chars 797 - 821 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) +Chars 822 - 826 [Qed.] 0. secs (0.u,0.s) +Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) +Chars 879 - 891 [compute;~intros.] 0. secs (0.u,0.s) +Chars 894 - 919 [rewrite~interp_trigger_h.] 0.002 secs (0.002u,0.s) +Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) +Chars 933 - 937 [Qed.] 0. secs (0.u,0.s) +Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) +Chars 990 - 1002 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1005 - 1028 [rewrite~interp_trigger.] 0.009 secs (0.009u,0.s) +Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) +Chars 1044 - 1048 [Qed.] 0. secs (0.u,0.s) +Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) +Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) +Chars 1105 - 1117 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1120 - 1142 [rewrite~interp_interp.] 0.04 secs (0.039u,0.s) +Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) +Chars 1158 - 1162 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) +Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) +Chars 1226 - 1251 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) +Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) +Chars 1336 - 1355 [compute;~contradiction.] 0. secs (0.u,0.s) +Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) +Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) +Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) +Chars 1524 - 1536 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1539 - 1571 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) +Chars 1572 - 1576 [Qed.] 0. secs (0.u,0.s) +Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) +Chars 1636 - 1648 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1651 - 1674 [rewrite~interp_trigger.] 0.013 secs (0.011u,0.001s) +Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) +Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) +Chars 1754 - 1766 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1769 - 1792 [rewrite~interp_trigger.] 0.013 secs (0.01u,0.002s) +Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) +Chars 1808 - 1812 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) +Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) +Chars 1884 - 1896 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1899 - 1925 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) +Chars 1928 - 1929 [-] 0. secs (0.u,0.s) +Chars 1930 - 1959 [rewrite~<-~H,~interp_trigger.] 0.016 secs (0.016u,0.s) +Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) +Chars 1975 - 1976 [-] 0. secs (0.u,0.s) +Chars 1977 - 2007 [rewrite~<-~H0,~interp_trigger.] 0.015 secs (0.015u,0.s) +Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) +Chars 2021 - 2025 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) +Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) +Chars 2096 - 2121 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) +Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) +Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) +Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) +Chars 2301 - 2314 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2317 - 2348 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) +Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) +Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) +Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) +Chars 2419 - 2431 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2434 - 2464 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) +Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) +Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) +Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) +Chars 2552 - 2564 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2567 - 2577 [pattern~f.] 0.003 secs (0.003u,0.s) +Chars 2580 - 2678 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) +Chars 2681 - 2682 [{] 0. secs (0.u,0.s) +Chars 2683 - 2738 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) +Chars 2743 - 2744 [-] 0. secs (0.u,0.s) +Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) +Chars 2755 - 2792 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 2799 - 2800 [+] 0. secs (0.u,0.s) +Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) +Chars 2820 - 2821 [+] 0. secs (0.u,0.s) +Chars 2822 - 2879 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) +Chars 2884 - 2885 [-] 0. secs (0.u,0.s) +Chars 2886 - 2928 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) +Chars 2935 - 2936 [+] 0. secs (0.u,0.s) +Chars 2937 - 2948 [intros~?~?.] 0. secs (0.u,0.s) +Chars 2949 - 2969 [apply~euttge_interp.] 0. secs (0.u,0.s) +Chars 2978 - 2979 [*] 0. secs (0.u,0.s) +Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) +Chars 3001 - 3002 [*] 0. secs (0.u,0.s) +Chars 3003 - 3020 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 3027 - 3028 [+] 0. secs (0.u,0.s) +Chars 3029 - 3048 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) +Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) +Chars 3064 - 3065 [}] 0. secs (0.u,0.s) +Chars 3068 - 3296 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) +Chars 3299 - 3338 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) +Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) +Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 3453 - 3485 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) +Chars 3488 - 3510 [rewrite~(itree_eta~t).] 0.017 secs (0.017u,0.s) +Chars 3513 - 3534 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 3537 - 3538 [-] 0. secs (0.u,0.s) +Chars 3539 - 3566 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) +Chars 3578 - 3599 [rewrite~2!interp_ret.] 0.033 secs (0.032u,0.s) +Chars 3604 - 3631 [rewrite~unfold_interp_mrec.] 0.014 secs (0.014u,0.s) +Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3651 - 3652 [-] 0. secs (0.u,0.s) +Chars 3653 - 3680 [rewrite~unfold_interp_mrec.] 0.016 secs (0.016u,0.s) +Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) +Chars 3692 - 3713 [rewrite~2!interp_tau.] 0.033 secs (0.033u,0.s) +Chars 3718 - 3764 [rewrite~(unfold_interp_mrec~_~...] 0.016 secs (0.015u,0.s) +Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) +Chars 3782 - 3783 [-] 0. secs (0.u,0.s) +Chars 3784 - 3811 [rewrite~unfold_interp_mrec.] 0.016 secs (0.016u,0.s) +Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) +Chars 3822 - 3841 [rewrite~interp_vis.] 0.02 secs (0.02u,0.s) +Chars 3846 - 3863 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) +Chars 3868 - 3869 [+] 0. secs (0.u,0.s) +Chars 3870 - 3889 [rewrite~interp_tau.] 0.015 secs (0.015u,0.s) +Chars 3896 - 3936 [rewrite~2!interp_mrec_bind,~in...] 0.052 secs (0.051u,0.s) +Chars 3943 - 3951 [subst~h.] 0.002 secs (0.002u,0.s) +Chars 3959 - 3964 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3975 - 3998 [rewrite~interp_trigger.] 0.042 secs (0.042u,0.s) +Chars 4005 - 4032 [rewrite~unfold_interp_mrec.] 0.031 secs (0.03u,0.s) +Chars 4034 - 4039 [bcbn.] 0. secs (0.u,0.s) +Chars 4047 - 4075 [rewrite~interp_mrec_trigger.] 0.036 secs (0.036u,0.s) +Chars 4076 - 4081 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 4089 - 4111 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 4118 - 4137 [rewrite~interp_tau.] 0.034 secs (0.034u,0.s) +Chars 4144 - 4168 [Time~rewrite~interp_tau.] 8.041 secs (7.951u,0.085s) +Chars 4175 - 4222 [rewrite~(unfold_interp_mrec~_~...] 8.279 secs (8.144u,0.114s) +Chars 4229 - 4247 [rewrite~!bind_tau.] 8.157 secs (8.067u,0.079s) +Chars 4254 - 4259 [taus.] 0. secs (0.u,0.s) +Chars 4260 - 4318 [rewrite~tau_euttge,~<-~interp_...] 0.112 secs (0.111u,0.001s) +Chars 4325 - 4366 [setoid_rewrite~(tau_euttge~(in...] 0.06 secs (0.06u,0.s) +Chars 4373 - 4396 [rewrite~<-~interp_bind.] 0.028 secs (0.028u,0.s) +Chars 4403 - 4418 [auto~with~paco.] 0. secs (0.u,0.s) +Chars 4423 - 4424 [+] 0. secs (0.u,0.s) +Chars 4425 - 4444 [rewrite~interp_vis.] 0.015 secs (0.015u,0.s) +Chars 4451 - 4476 [rewrite~interp_mrec_bind.] 0.017 secs (0.016u,0.s) +Chars 4483 - 4497 [subst~h;~bcbn.] 0.003 secs (0.003u,0.s) +Chars 4504 - 4510 [ebind.] 0.007 secs (0.007u,0.s) +Chars 4511 - 4531 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) +Chars 4539 - 4540 [{] 0. secs (0.u,0.s) +Chars 4541 - 4551 [do~2~step.] 0.009 secs (0.009u,0.s) +Chars 4552 - 4597 [rewrite~interp_mrec_as_interp,...] 0.019 secs (0.019u,0.s) +Chars 4606 - 4634 [rewrite~<-~interp_id_h~~at~1.] 0.049 secs (0.048u,0.s) +Chars 4643 - 4679 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) +Chars 4688 - 4699 [intros~?~?.] 0. secs (0.u,0.s) +Chars 4708 - 4736 [rewrite~interp_trigger;~cbn.] 0.008 secs (0.008u,0.s) +Chars 4745 - 4757 [reflexivity.] 0. secs (0.u,0.s) +Chars 4758 - 4759 [}] 0. secs (0.u,0.s) +Chars 4766 - 4780 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 4787 - 4834 [rewrite~(unfold_interp_mrec~_~...] 0.028 secs (0.028u,0.s) +Chars 4841 - 4846 [taus.] 0. secs (0.u,0.s) +Chars 4854 - 4873 [rewrite~tau_euttge.] 0.012 secs (0.011u,0.s) +Chars 4880 - 4890 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4892 - 4896 [Qed.] 0.098 secs (0.096u,0.001s) +Chars 4898 - 4922 [Section~DinatSimulation.] 0. secs (0.u,0.s) +Chars 4924 - 4955 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 4956 - 5018 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) +Chars 5019 - 5038 [Context~{R~:~Type}.] 0. secs (0.u,0.s) +Chars 5040 - 5110 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) +Chars 5112 - 5572 [Inductive~interleaved~:~itree~...] 0.005 secs (0.005u,0.s) +Chars 5573 - 5620 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) +Chars 5622 - 5666 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5667 - 5711 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5713 - 5885 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) +Chars 5886 - 5914 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 5918 - 5938 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 5941 - 5953 [induction~H.] 0. secs (0.u,0.s) +Chars 5956 - 5957 [-] 0. secs (0.u,0.s) +Chars 5958 - 5993 [rewrite~2!unfold_interp_mrec;~...] 0.028 secs (0.027u,0.s) +Chars 5994 - 6006 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6011 - 6012 [-] 0. secs (0.u,0.s) +Chars 6013 - 6057 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) +Chars 6062 - 6063 [+] 0. secs (0.u,0.s) +Chars 6064 - 6097 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.041u,0.s) +Chars 6098 - 6103 [auto.] 0. secs (0.u,0.s) +Chars 6108 - 6109 [+] 0. secs (0.u,0.s) +Chars 6110 - 6169 [rewrite~interp_tau,~2!bind_tau...] 0.075 secs (0.074u,0.s) +Chars 6176 - 6183 [taus~...] 0.001 secs (0.001u,0.s) +Chars 6190 - 6191 [+] 0. secs (0.u,0.s) +Chars 6192 - 6221 [rewrite~interp_vis,~bind_vis.] 0.032 secs (0.031u,0.s) +Chars 6228 - 6246 [rewrite~bind_bind.] 0.014 secs (0.014u,0.s) +Chars 6253 - 6302 [rewrite~(unfold_interp_mrec~_~...] 0.016 secs (0.016u,0.s) +Chars 6309 - 6326 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) +Chars 6327 - 6368 [setoid_rewrite~(tau_euttge~(in...] 0.068 secs (0.068u,0.s) +Chars 6375 - 6376 [*] 0. secs (0.u,0.s) +Chars 6377 - 6424 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 6433 - 6468 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) +Chars 6477 - 6520 [rewrite~bind_tau,~unfold_inter...] 6.961 secs (6.893u,0.062s) +Chars 6529 - 6534 [taus.] 0. secs (0.u,0.s) +Chars 6535 - 6556 [rewrite~tau_euttge~...] 0.01 secs (0.009u,0.s) +Chars 6563 - 6564 [*] 0. secs (0.u,0.s) +Chars 6565 - 6627 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 6636 - 6657 [rewrite~bind_trigger.] 3.493 secs (3.458u,0.034s) +Chars 6666 - 6699 [rewrite~unfold_interp_mrec;~bcbn.] 3.454 secs (3.424u,0.029s) +Chars 6708 - 6728 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 6729 - 6757 [repeat~rewrite~tau_euttge~...] 0.02 secs (0.02u,0.s) +Chars 6761 - 6762 [-] 0. secs (0.u,0.s) +Chars 6763 - 6807 [rewrite~(itree_eta~t);~destruc...] 0.019 secs (0.019u,0.s) +Chars 6812 - 6813 [+] 0. secs (0.u,0.s) +Chars 6814 - 6847 [rewrite~interp_ret,~2!bind_ret_l.] 0.048 secs (0.046u,0.s) +Chars 6848 - 6853 [auto.] 0. secs (0.u,0.s) +Chars 6858 - 6859 [+] 0. secs (0.u,0.s) +Chars 6860 - 6919 [rewrite~interp_tau,~2!bind_tau...] 0.079 secs (0.078u,0.s) +Chars 6926 - 6933 [taus~...] 0.001 secs (0.001u,0.s) +Chars 6940 - 6941 [+] 0. secs (0.u,0.s) +Chars 6942 - 6971 [rewrite~interp_vis,~bind_vis.] 0.034 secs (0.033u,0.s) +Chars 6978 - 6996 [rewrite~bind_bind.] 0.017 secs (0.016u,0.s) +Chars 7003 - 7052 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 7059 - 7076 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) +Chars 7077 - 7118 [setoid_rewrite~(tau_euttge~(in...] 0.071 secs (0.07u,0.001s) +Chars 7125 - 7126 [*] 0. secs (0.u,0.s) +Chars 7127 - 7174 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 7183 - 7218 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) +Chars 7227 - 7285 [rewrite~!bind_tau,~(unfold_int...] 15.897 secs (15.705u,0.167s) +Chars 7294 - 7299 [taus.] 0. secs (0.u,0.s) +Chars 7300 - 7321 [rewrite~tau_euttge~...] 0.01 secs (0.009u,0.s) +Chars 7329 - 7330 [*] 0. secs (0.u,0.s) +Chars 7331 - 7393 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 7402 - 7423 [rewrite~bind_trigger.] 8.043 secs (7.978u,0.044s) +Chars 7432 - 7465 [rewrite~unfold_interp_mrec;~bcbn.] 8.116 secs (8.016u,0.069s) +Chars 7474 - 7494 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 7495 - 7523 [repeat~rewrite~tau_euttge~...] 0.021 secs (0.021u,0.s) +Chars 7524 - 7528 [Qed.] 0.034 secs (0.034u,0.s) +Chars 7530 - 7550 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) +Chars 7552 - 7570 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) +Chars 7572 - 7632 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) +Chars 7633 - 7639 [Proof.] 0. secs (0.u,0.s) +Chars 7642 - 7671 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) +Chars 7674 - 7710 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 7711 - 7747 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) +Chars 7750 - 7932 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) +Chars 7935 - 7936 [{] 0. secs (0.u,0.s) +Chars 7937 - 7946 [compute~in~H.] 0. secs (0.u,0.s) +Chars 7947 - 8000 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) +Chars 8005 - 8006 [-] 0. secs (0.u,0.s) +Chars 8007 - 8016 [symmetry.] 0. secs (0.u,0.s) +Chars 8017 - 8059 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8066 - 8080 [1:~intros~?~?.] 0. secs (0.u,0.s) +Chars 8087 - 8149 [1,~2:~rewrite~tau_euttge;~appl...] 0.013 secs (0.013u,0.s) +Chars 8156 - 8206 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) +Chars 8211 - 8212 [-] 0. secs (0.u,0.s) +Chars 8213 - 8273 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8280 - 8309 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8316 - 8335 [rewrite~tau_euttge.] 0.01 secs (0.01u,0.s) +Chars 8336 - 8361 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) +Chars 8368 - 8379 [intros~?~?.] 0. secs (0.u,0.s) +Chars 8386 - 8405 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) +Chars 8412 - 8454 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) +Chars 8461 - 8512 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) +Chars 8515 - 8516 [}] 0. secs (0.u,0.s) +Chars 8519 - 8552 [rewrite~<-~interp_mrec_as_interp.] 0.002 secs (0.002u,0.s) +Chars 8556 - 8593 [rewrite~<-~(bind_ret_r~(interp...] 0.012 secs (0.012u,0.s) +Chars 8596 - 8634 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.017 secs (0.017u,0.s) +Chars 8638 - 8661 [apply~interleaved_mrec.] 0. secs (0.u,0.s) +Chars 8664 - 8681 [do~2~constructor.] 0. secs (0.u,0.s) +Chars 8682 - 8686 [Qed.] 0.012 secs (0.012u,0.s) +Chars 8688 - 8705 [Import~Recursion.] 0. secs (0.u,0.s) +Chars 8707 - 8769 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) +Chars 8770 - 8776 [Proof.] 0. secs (0.u,0.s) +Chars 8779 - 8802 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) +Chars 8805 - 8843 [remember~(f0~T~x)~as~t~eqn:EQt...] 0.001 secs (0.001u,0.s) +Chars 8846 - 8882 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 8885 - 9584 [enough~~(interp_mrec~(fun~_~d~...] 0.002 secs (0.002u,0.s) +Chars 9587 - 9588 [{] 0. secs (0.u,0.s) +Chars 9589 - 9597 [subst~f.] 0. secs (0.u,0.s) +Chars 9598 - 9653 [etransitivity;~[~etransitivity...] 0. secs (0.u,0.s) +Chars 9658 - 9659 [-] 0. secs (0.u,0.s) +Chars 9660 - 9669 [symmetry.] 0. secs (0.u,0.s) +Chars 9670 - 9712 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 9719 - 9720 [+] 0. secs (0.u,0.s) +Chars 9721 - 9732 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9733 - 9780 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) +Chars 9789 - 9800 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9801 - 9818 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 9825 - 9826 [+] 0. secs (0.u,0.s) +Chars 9827 - 9900 [apply~euttge_interp_mrec;~repe...] 0.002 secs (0.002u,0.s) +Chars 9909 - 9921 [reflexivity.] 0. secs (0.u,0.s) +Chars 9926 - 9927 [-] 0. secs (0.u,0.s) +Chars 9928 - 10030 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) +Chars 10037 - 10054 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 10057 - 10058 [}] 0. secs (0.u,0.s) +Chars 10061 - 10084 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 10089 - 10098 [revert~t.] 0. secs (0.u,0.s) +Chars 10099 - 10119 [coinduction;~intros.] 0.003 secs (0.003u,0.s) +Chars 10123 - 10173 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) +Chars 10176 - 10242 [all:~rewrite~(unfold_interp_mr...] 0.089 secs (0.089u,0.s) +Chars 10245 - 10283 [1,~2:~rewrite~unfold_interp_mr...] 0.026 secs (0.026u,0.s) +Chars 10286 - 10349 [1,~2:~rewrite~(unfold_interp_m...] 15.724 secs (15.595u,0.102s) +Chars 10352 - 10357 [taus.] 0. secs (0.u,0.s) +Chars 10358 - 10368 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10372 - 10383 [destruct~e.] 0. secs (0.u,0.s) +Chars 10386 - 10387 [-] 0. secs (0.u,0.s) +Chars 10388 - 10435 [rewrite~(interp_mrec_bind~_~(I...] 0.017 secs (0.016u,0.s) +Chars 10440 - 10474 [rewrite~interp_mrec_trigger;~b...] 0.011 secs (0.011u,0.s) +Chars 10479 - 10501 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 10506 - 10569 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 10574 - 10619 [rewrite~interp_tau,~unfold_int...] 0.042 secs (0.041u,0.s) +Chars 10624 - 10671 [rewrite~(unfold_interp_mrec~_~...] 8.26 secs (8.188u,0.053s) +Chars 10676 - 10694 [rewrite~!bind_tau.] 8.356 secs (8.248u,0.068s) +Chars 10699 - 10704 [taus.] 0. secs (0.u,0.s) +Chars 10710 - 10729 [rewrite~tau_euttge.] 0.007 secs (0.007u,0.s) +Chars 10730 - 10756 [setoid_rewrite~tau_euttge.] 0.018 secs (0.018u,0.s) +Chars 10761 - 10805 [rewrite~<-~interp_mrec_bind,~<...] 0.031 secs (0.031u,0.s) +Chars 10810 - 10825 [auto~with~paco.] 0. secs (0.u,0.s) +Chars 10828 - 10829 [-] 0. secs (0.u,0.s) +Chars 10830 - 10851 [rewrite~bind_trigger.] 0.017 secs (0.017u,0.s) +Chars 10856 - 10882 [setoid_rewrite~tau_euttge.] 0.018 secs (0.018u,0.s) +Chars 10887 - 10922 [rewrite~2!unfold_interp_mrec;~...] 0.032 secs (0.032u,0.s) +Chars 10927 - 10938 [destruct~s.] 0. secs (0.u,0.s) +Chars 10939 - 10944 [taus.] 0. secs (0.u,0.s) +Chars 10950 - 10994 [rewrite~<-~interp_mrec_bind,~<...] 0.029 secs (0.028u,0.s) +Chars 10999 - 11009 [apply~CIH.] 0. secs (0.u,0.s) +Chars 11015 - 11035 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 11036 - 11051 [now~step;~taus.] 0.002 secs (0.002u,0.s) +Chars 11054 - 11058 [Qed.] 0.05 secs (0.049u,0.s) +Chars 11060 - 11119 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) +Chars 11120 - 11126 [Proof.] 0. secs (0.u,0.s) +Chars 11129 - 11154 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 11155 - 11159 [Qed.] 0. secs (0.u,0.s) +Chars 11161 - 11181 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/timing-experiments/get-times.sh b/timing-experiments/get-times.sh new file mode 100755 index 00000000..1d7344f4 --- /dev/null +++ b/timing-experiments/get-times.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e +# +# Purpose: +# + +## Usage: +## +## +## author: rab +## date: Mon May 4 12:03:49 EDT 2026 + + +NUM_ARGS=1 + + +if [[ "$#" -ne "$NUM_ARGS" ]]; then + >&2 echo "Usage: $0 .v.timing file" + exit 1 +fi + +grep -oe ".\.[0-9]* secs" "$1" | ./sum-times.sh - \ No newline at end of file diff --git a/timing-experiments/sum-times.sh b/timing-experiments/sum-times.sh new file mode 100755 index 00000000..e8fbc078 --- /dev/null +++ b/timing-experiments/sum-times.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e +# +# Purpose: +# + +## Usage: +## +## +## author: rab +## date: Mon May 4 11:50:06 EDT 2026 + + +NUM_ARGS=1 + + +if [[ "$#" -ne "$NUM_ARGS" ]]; then + >&2 echo "Usage: $0 times-file" + exit 1 +fi + +awk '{ sum += $1 } END { print sum }' "$1" \ No newline at end of file From 254bc8e6103da58d47b7a0e945011c2c589ce5b8 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 4 May 2026 12:12:20 -0400 Subject: [PATCH 142/189] Cleaned scripts. --- timing-experiments/HandlerFacts.times | 340 -------------------------- timing-experiments/get-times.sh | 6 +- timing-experiments/sum-times.sh | 21 -- 3 files changed, 3 insertions(+), 364 deletions(-) delete mode 100644 timing-experiments/HandlerFacts.times delete mode 100755 timing-experiments/sum-times.sh diff --git a/timing-experiments/HandlerFacts.times b/timing-experiments/HandlerFacts.times deleted file mode 100644 index 15735153..00000000 --- a/timing-experiments/HandlerFacts.times +++ /dev/null @@ -1,340 +0,0 @@ -0.006 -0.063 -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0.002 -0. -0. -0. -0. -0. -0.009 -0. -0. -0. -0. -0. -0.04 -0. -0.001 -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0.013 -0. -0.001 -0. -0. -0. -0.013 -0. -0.001 -0. -0. -0. -0. -0. -0.016 -0. -0. -0.015 -0. -0.001 -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0.001 -0. -0.001 -0. -0. -0. -0.003 -0. -0. -0.001 -0. -0. -0. -0. -0. -0. -0. -0. -0.001 -0. -0. -0. -0. -0. -0. -0. -0. -0.011 -0. -0. -0.001 -0.001 -0. -0. -0.004 -0.017 -0.001 -0. -0.015 -0. -0.033 -0.014 -0.001 -0. -0.016 -0. -0.033 -0.016 -0. -0. -0.016 -0. -0.02 -0.001 -0. -0.015 -0.052 -0.002 -0.001 -0.042 -0.031 -0. -0.036 -0.001 -0. -0.034 -8.041 -8.279 -8.157 -0. -0.112 -0.06 -0.028 -0. -0. -0.015 -0.017 -0.003 -0.007 -0. -0. -0.009 -0.019 -0.049 -0.001 -0. -0.008 -0. -0. -0. -0.028 -0. -0.012 -0. -0.098 -0. -0. -0. -0. -0. -0.005 -0. -0. -0. -0.002 -0. -0.002 -0. -0. -0.028 -0.001 -0. -0.017 -0. -0.042 -0. -0. -0.075 -0.001 -0. -0.032 -0.014 -0.016 -0.001 -0.068 -0. -0. -0. -6.961 -0. -0.01 -0. -0. -3.493 -3.454 -0. -0.02 -0. -0.019 -0. -0.048 -0. -0. -0.079 -0.001 -0. -0.034 -0.017 -0.014 -0.001 -0.071 -0. -0. -0. -5.897 -0. -0.01 -0. -0. -8.043 -8.116 -0. -0.021 -0.034 -0.001 -0. -0. -0. -0. -0. -0. -0.002 -0. -0. -0.001 -0. -0. -0. -0. -0.013 -0. -0. -0. -0.001 -0.01 -0. -0. -0.005 -0.001 -0. -0. -0.002 -0.012 -0.017 -0. -0. -0.012 -0. -0. -0. -0. -0.001 -0. -0.002 -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0. -0.002 -0. -0. -0.002 -0. -0. -0. -0. -0.003 -0.017 -0.089 -0.026 -5.724 -0. -0. -0. -0. -0.017 -0.011 -0. -0.002 -0.042 -8.26 -8.356 -0. -0.007 -0.018 -0.031 -0. -0. -0.017 -0.018 -0.032 -0. -0. -0.029 -0. -0. -0.002 -0.05 -0. -0. -0. -0. -0.003 diff --git a/timing-experiments/get-times.sh b/timing-experiments/get-times.sh index 1d7344f4..7bf74b17 100755 --- a/timing-experiments/get-times.sh +++ b/timing-experiments/get-times.sh @@ -1,9 +1,9 @@ #!/bin/bash -e # -# Purpose: +# Purpose: Prints the sum total time of all measured commands in a .v.timing file. # -## Usage: +## Usage: ./get-times.sh . ## ## ## author: rab @@ -18,4 +18,4 @@ if [[ "$#" -ne "$NUM_ARGS" ]]; then exit 1 fi -grep -oe ".\.[0-9]* secs" "$1" | ./sum-times.sh - \ No newline at end of file +grep -oe ".\.[0-9]* secs" "$1" | awk '{ sum += $1 } END { print sum }' \ No newline at end of file diff --git a/timing-experiments/sum-times.sh b/timing-experiments/sum-times.sh deleted file mode 100755 index e8fbc078..00000000 --- a/timing-experiments/sum-times.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -e -# -# Purpose: -# - -## Usage: -## -## -## author: rab -## date: Mon May 4 11:50:06 EDT 2026 - - -NUM_ARGS=1 - - -if [[ "$#" -ne "$NUM_ARGS" ]]; then - >&2 echo "Usage: $0 times-file" - exit 1 -fi - -awk '{ sum += $1 } END { print sum }' "$1" \ No newline at end of file From 4c5c813e405bed05ac34818e403d1f80cf8a13e9 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 4 May 2026 12:13:11 -0400 Subject: [PATCH 143/189] Various other progress on extras. --- extra/Dijkstra/StateSpecT.v | 3 +-- extra/ITrace/ITraceBind.v | 16 +++++++-------- extra/Secure/SecureEqHalt.v | 40 ++++++++++++++++++++----------------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/extra/Dijkstra/StateSpecT.v b/extra/Dijkstra/StateSpecT.v index 8c6612ec..3c3e4bad 100644 --- a/extra/Dijkstra/StateSpecT.v +++ b/extra/Dijkstra/StateSpecT.v @@ -170,8 +170,7 @@ Section LoopInvarSpecific. intros. unfold MonadIter_stateT0. apply iter_inl_spin. (*seems to require some coinduciton*) generalize dependent a. generalize dependent s. - (* RTODO improve with tactics *) - unfold not_wf_from at -1. coinduction c CIH. + coinduction c CIH. intros. red in H; sinv H; try apply not_wf_F_mono'. apply not_wf with (a' := a'); eauto. - red in Hrel. destruct a' as [s' a']. simpl. red. simpl. rewrite Hrel. diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index ffc3f605..0fa87524 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -21,6 +21,8 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. +#[local] Tactic Notation "step" := ITree.Basics.Utils.step. + (* Contains the proof of peel_lemma which allows us to decompose a trace of bind t f into a head that refines t and a tail that refines f *) @@ -553,17 +555,13 @@ Lemma proper_peel_cont_eutt_l : forall (E : Type -> Type) (R S : Type) (b ≈ b') -> (peel_cont b t s ≈ peel_cont b' t s). Proof. intros E R S. unfold peel_cont. intros b b' t _. - revert b b' t. coinduction c CIH. intros. step in H. + revert b b' t. icoinduction c CIH. intros. step in H. destruct (observe t) eqn : Heqt. (* todo: this *) - fail. - - destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inversion H; cbn; - try (constructor; auto; fail); - try (constructor; auto; eapply eqitF_mon; eauto; fail); - try (destruct e; cbn); - try (constructor; auto; eapply eqitF_mon; eauto; fail). - + taul. to_mon. now do 2 step. - + subst. ddestruction. subst. cbn. constructor. intros. idtac. inv H. + - destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inv H; cbn; + try solve [to_mon; constructor; eauto; now do 2 step]. + + taus. + + subst. ddestruction. subst. cbn. constructor. intros. idtac. inv H. ddestruction. subst. to_mon. now do 2 step. + ddestruction. subst. ddestruction. subst. cbn. constructor; auto. now do 2 ITree.Basics.Utils.step. diff --git a/extra/Secure/SecureEqHalt.v b/extra/Secure/SecureEqHalt.v index e162cb0e..0cf6b5b3 100644 --- a/extra/Secure/SecureEqHalt.v +++ b/extra/Secure/SecureEqHalt.v @@ -1,3 +1,7 @@ +From Stdlib Require Import PeanoNat. + +From Coinduction Require all. (* don't import; library's leq clashes with Preorder leq *) + From ITree Require Import Basics.Utils Axioms @@ -7,6 +11,7 @@ From ITree Require Import From ITree.Extra Require Export Secure.Labels. + Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -66,26 +71,18 @@ Section SecureUntimed. Hint Unfold secure_eqit_ : itree. - Lemma secure_eqitF_mono b1 b2 l sim : - Proper (leq ==> leq) - (secure_eqitF b1 b2 l sim). - Proof. - intros. induction IN; eauto with itree. - Qed. - Lemma secure_eqit_mono b1 b2 l vclo (MON: monotone2 vclo) : monotone2 (secure_eqit_ b1 b2 l vclo). + Lemma secure_eqitF_mono b1 b2 l : + Proper (Coinduction.lattice.leq ==> Coinduction.lattice.leq) + (secure_eqit_ b1 b2 l). Proof. - do 2 red. intros; eapply secure_eqitF_mono; eauto. + intros!. red; red in H0. + induction H0; try solve [constructor; intros; eauto with itree; now apply H]. Qed. - Hint Resolve secure_eqit_mono : paco. - - Definition eqit_secure b1 b2 l := paco2 (secure_eqit_ b1 b2 l id) bot2. - - (* want and eqitC_secure which could help prove some interesting stuff - - *) + Definition secure_eqit_mon b1 b2 l := Build_mon (secure_eqitF_mono b1 b2 l). + Definition eqit_secure b1 b2 l := gfp (secure_eqit_mon b1 b2 l). (* Note that this is not reflexive (think it is symmetric and transitive) @@ -99,14 +96,12 @@ Section SecureUntimed. End SecureUntimed. -#[global] Hint Resolve secure_eqit_mono : paco. - #[global] Hint Constructors secure_eqitF : itree. Definition NatPreorder : Preorder := {| L := nat; - leq := fun n m => Nat.leq n m + leq := fun n m => Nat.le n m |}. Ltac unpriv_co := try apply EqVisUnPrivVisCo; @@ -133,6 +128,15 @@ Section eqit_secureC. Context {E: Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). Context (Label : Preorder) (priv : forall A, E A -> L) (l : L). +Lemma eqit_secure_trans t1 t2 t1' t2' RR1 RR2 + (EQVl: eqit_secure Label priv RR1 b1 b1' l t1 t1') + (EQVr: eqit_secure Label priv RR2 b2 b2' l t2 t2') + (REL: r t1' t2') + (LERR1: forall x x' y, RR1 x x' -> RR x' y -> RR x y) + (LERR2: forall x y y', RR2 y y' -> RR x y' -> RR x y) : + eqit_secure Label priv RR b1 b2' l t1 t2. + + Variant eqit_secure_trans_clo (b1 b2 b1' b2' : bool) (r : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := From a0b4c7a9a0556964e87baf71734c462aec288329 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 4 May 2026 12:16:18 -0400 Subject: [PATCH 144/189] Removed Paco2.v. --- .Makefile.d | 2 - _CoqProject | 1 - theories/Eq/Paco2.v | 182 -------------------------------------------- 3 files changed, 185 deletions(-) delete mode 100644 theories/Eq/Paco2.v diff --git a/.Makefile.d b/.Makefile.d index f8616b06..ddb81327 100644 --- a/.Makefile.d +++ b/.Makefile.d @@ -52,8 +52,6 @@ theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMon theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vo theories/Eq/Paco2.glob theories/Eq/Paco2.v.beautified theories/Eq/Paco2.required_vo: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Paco2.vos theories/Eq/Paco2.vok theories/Eq/Paco2.required_vos: theories/Eq/Paco2.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/_CoqProject b/_CoqProject index c1006c40..0b93798b 100644 --- a/_CoqProject +++ b/_CoqProject @@ -33,7 +33,6 @@ theories/Core/Subevent.v theories/Core/ITreeMonad.v theories/Eq.v -theories/Eq/Paco2.v theories/Eq/Shallow.v theories/Eq/Eqit.v theories/Eq/SimUpToTaus.v diff --git a/theories/Eq/Paco2.v b/theories/Eq/Paco2.v deleted file mode 100644 index 4250f345..00000000 --- a/theories/Eq/Paco2.v +++ /dev/null @@ -1,182 +0,0 @@ -(** Redefinition of [pcofix] and [pcofix] without using the [JMeq_eq] axiom. -Both tactics are now called [pcofix]. The same core is reused to define [ecofix] -in [Eq.UpToTaus]. *) - -From Paco Require Import paco. - -Ltac debug_goal := - match goal with - | [ |- ?G ] => idtac G - end. - -(* A variant of [paco2_acc] that is more convenient to use in the [pcofix] tactic. *) -Lemma paco2_accF - : forall {T0 : Type} {T1 : forall a : T0, Type} - (gf : rel2 T0 T1 -> rel2 T0 T1) (r : rel2 T0 T1) - (X : Type) - (f0 : X -> T0) (f1 : forall x : X, T1 (f0 x)), - (forall rr : rel2 T0 T1, - (forall a0 a1, r a0 a1 -> rr a0 a1) -> - (forall x, rr (f0 x) (f1 x)) -> - forall x : X, paco2 gf rr (f0 x) (f1 x)) -> - forall x : X, paco2 gf r (f0 x) (f1 x). -Proof. - intros. - apply paco2_acc with - (l := fun a0 (a1 : T1 a0) => exists x, existT _ (f0 x) (f1 x) = existT _ a0 a1); [ | eauto ]. - intros rr INC CIH x0 x1 PR. change (paco2 gf rr (projT1 (existT _ _ x1)) (projT2 (existT _ _ x1))). - destruct PR as [? <-]. - eauto. -Qed. - -Lemma gpaco2_accF - : forall {T0 : Type} {T1 : forall a : T0, Type} - (gf : rel2 T0 T1 -> rel2 T0 T1), - monotone2 gf -> - forall (clo : rel2 T0 T1 -> rel2 T0 T1) (r rg : rel2 T0 T1) - (X : Type) - (f0 : X -> T0) (f1 : forall x : X, T1 (f0 x)) - (OBG : forall rr : rel2 T0 T1, - (forall x y, rg x y -> rr x y) -> - (forall x, rr (f0 x) (f1 x)) -> - forall x : X, gpaco2 gf clo r rr (f0 x) (f1 x)), - forall x : X, gpaco2 gf clo r rg (f0 x) (f1 x). -Proof. - intros. - apply gpaco2_cofix with - (l := fun a0 (a1 : T1 a0) => exists x, existT _ (f0 x) (f1 x) = existT _ a0 a1); [ eauto | | eauto ]. - intros. change (gpaco2 gf clo r rr (projT1 (existT _ _ x1)) (projT2 (existT _ _ x1))). - destruct PR as [? <-]. - eauto. -Qed. - -Ltac apply_paco_acc self unpack_goal unpack_hyp := - let unpack _tt := - let r := fresh "r" in - let self_ := fresh "_tmp_" self in - let self := fresh self in - intros r self_ self; - let self1 := fresh self in - rename self_ into self1; - unpack_goal tt; - unpack_hyp self in - lazymatch goal with - | [ |- forall _, paco2 ?gf ?r0 _ _ ] => apply paco2_accF; unpack tt - | [ |- forall _, gpaco2 ?gf ?clo _ _ _ _ ] => apply gpaco2_accF; [ eauto with paco | unpack tt ] - (* TODO: other arities *) - | _ => fail "paco not found at the head of the goal" - end. - -Lemma curry_sig {A : Type} {P : A -> Type} {Q : forall (a : A) (b : P a), Prop} - : (forall x : sigT P, Q (projT1 x) (projT2 x)) -> forall (a : A) (p : P a), Q a p. -Proof. - exact (fun H a p => H (existT _ a p)). -Qed. - -(* [pcofix self]: Apply coinduction to a goal with [paco] at the head of the conclusion - (possibly after unfolding definitions). - The parameter [self] is the name of the coinduction hypothesis. *) - -(* Internal definition of [pcofix_]: -Example initial goal: -<< -=========== -forall (x : X) (y : Y), hyp x y -> paco2 gf bot2 (f0 x y) (f1 x y) ->> - 1. [pcofix_] first recursively introduces all hypotheses [H], being careful to - preserve existing names, and at the same time builds up continuations - to process the goal once we reach the conclusion. This technique has the - benefit that the name of each hypothesis is available, so it does - not need to be guessed repeatedly. -Goal after step 1: -<< -x : X -y : Y -H : hyp x y -=========== -paco2 gf bot2 (f0 x y) (f1 x y) ->> - 2. Having reached the conclusion, we use the [pack_goal0] continuation to - regeneralize the hypotheses we introduced into a single sigma type - (a chain of [{_ & _}]/[sigT]), -Goal after step 2: -<< -=========== -forall (u : {x : X & {y : Y & {_ : hyp x y & unit}}}), - paco2 gf bot2 (f0 (projT1 u) (projT2 u)) (f1 (projT1 u) (projT2 u)) ->> - 3. We can now apply [paco2_accF] (depending on the arity of paco) -Goal after step 3: -<< -r : rel2 T0 T1 -_pacotmp_SELF: forall (u : _), r (f0 (projT1 u) (projT2 u)) (f1 (projT1 u) (projT2 u)) -========== -forall (u : {x : X & {y : Y & {_ : hyp x y & unit}}}), - paco2 gf r (f0 (projT1 u) (projT2 u)) (f1 (projT1 u) (projT2 u)) ->> - 4. We decompose the tuple in the goal using the [unpack_goal0] continuation - (basically the reverse of [pack_goal0]) and [revert_tmp0]. -Goal after step 4: -<< -r : rel2 T0 T1 -_pacotmp_SELF: forall (u : _), r (f0 (projT1 u) (projT2 u)) (f1 (projT1 u) (projT2 u)) -========== -forall x y, hyp x y -> paco2 gf r (f0 x y) (f1 x y) ->> - 5. We decompose the tuple in the coinduction hypothesis -Goal after step 5: -<< -r : rel2 T0 T1 -SELF: forall x y, hyp x y -> r (f0 x y) (f1 x y) -========== -forall x y, hyp x y -> paco2 gf r (f0 x y) (f1 x y) ->> -tODO: Currently this step does not preserve variable names, -so the actual hypothesis looks more like this: -<< -SELF: forall x0 x1, hyp x0 x1 -> r (f0 x0 x1) (f1 x0 x1) ->> -*) -Ltac pcofix_ apply_paco_acc0 pack_goal0 unpack_goal0 revert_tmp0 unpack_hyp0 := - hnf; - lazymatch goal with - | [ |- forall H : ?X, _ ] => - (* 1. *) - let H := fresh H in - intros H; - let pack_goal := (revert H; apply curry_sig; pack_goal0) in - let unpack_goal H0 := ltac:(unpack_goal0 H0; destruct H0 as [H H0]; cbn [projT1 projT2]) in - let revert_tmp := revert H; revert_tmp0 in - let unpack_hyp tmp_self := - intros H; - let tmp := fresh tmp_self in - rename tmp_self into tmp; - assert (tmp_self := fun TMP => tmp (existT _ H TMP)); - clear tmp; - unpack_hyp0 tmp_self in - pcofix_ apply_paco_acc0 pack_goal unpack_goal revert_tmp unpack_hyp - | _ => - let (* 4 *) unpack_goal _tt := - let tmp_H0 := fresh "_pacotmp_" in - intros tmp_H0; unpack_goal0 tmp_H0; clear tmp_H0; - revert_tmp0 in - let (* 5 *) unpack_hyp HYP := - let tmp_prop := fresh HYP "_prop_" in - let tmp_hyp := fresh HYP "_v_" in - evar (tmp_prop : Prop); assert (tmp_hyp : tmp_prop); subst tmp_prop; - [ unpack_hyp0 HYP; cbn in HYP; exact (HYP tt) - | clear HYP ]; - try rename tmp_hyp into HYP in - (* 2. pack_goal *) assert (tmp_H0 := tt); revert tmp_H0; pack_goal0; - (* 3. paco_acc *) apply_paco_acc0 unpack_goal unpack_hyp - end. - -Ltac pcofix_with apply_paco_acc0 := - let pack_goal0 := idtac in - let unpack_goal0 _ := idtac in - let revert_tmp0 := idtac in - let unpack_hyp0 _ := idtac in - pcofix_ apply_paco_acc0 pack_goal0 unpack_goal0 revert_tmp0 unpack_hyp0. - -Tactic Notation "pcofix" ident(self) := - pcofix_with ltac:(apply_paco_acc self). From d8ecfa5a3227a920ac19d9c32d21aa433558aa15 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 4 May 2026 12:18:37 -0400 Subject: [PATCH 145/189] Builds. No longer tracking .Makefile.d. --- .Makefile.d | 166 ---------------------------------------------------- .gitignore | 2 +- _CoqProject | 10 ++-- 3 files changed, 6 insertions(+), 172 deletions(-) delete mode 100644 .Makefile.d diff --git a/.Makefile.d b/.Makefile.d deleted file mode 100644 index ddb81327..00000000 --- a/.Makefile.d +++ /dev/null @@ -1,166 +0,0 @@ -theories/Simple.vo theories/Simple.glob theories/Simple.v.beautified theories/Simple.required_vo: theories/Simple.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Simple.vos theories/Simple.vok theories/Simple.required_vos: theories/Simple.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vo theories/ITree.glob theories/ITree.v.beautified theories/ITree.required_vo: theories/ITree.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITree.vos theories/ITree.vok theories/ITree.required_vos: theories/ITree.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vo theories/ITreeFacts.glob theories/ITreeFacts.v.beautified theories/ITreeFacts.required_vo: theories/ITreeFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/FunctionFacts.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTreeFacts.vo theories/Eq.vo theories/Indexed/FunctionFacts.vo theories/Interp/HandlerFacts.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/ITreeFacts.vos theories/ITreeFacts.vok theories/ITreeFacts.required_vos: theories/ITreeFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/FunctionFacts.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTreeFacts.vos theories/Eq.vos theories/Indexed/FunctionFacts.vos theories/Interp/HandlerFacts.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vo theories/Axioms.glob theories/Axioms.v.beautified theories/Axioms.required_vo: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Axioms.vos theories/Axioms.vok theories/Axioms.required_vos: theories/Axioms.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vo theories/Basics/Utils.glob theories/Basics/Utils.v.beautified theories/Basics/Utils.required_vo: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Utils.vos theories/Basics/Utils.vok theories/Basics/Utils.required_vos: theories/Basics/Utils.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vo theories/Basics/Basics.glob theories/Basics/Basics.v.beautified theories/Basics/Basics.required_vo: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Basics.vos theories/Basics/Basics.vok theories/Basics/Basics.required_vos: theories/Basics/Basics.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vo theories/Basics/HeterogeneousRelations.glob theories/Basics/HeterogeneousRelations.v.beautified theories/Basics/HeterogeneousRelations.required_vo: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/HeterogeneousRelations.vos theories/Basics/HeterogeneousRelations.vok theories/Basics/HeterogeneousRelations.required_vos: theories/Basics/HeterogeneousRelations.v theories/Basics/Utils.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vo theories/Basics/Category.glob theories/Basics/Category.v.beautified theories/Basics/Category.required_vo: theories/Basics/Category.v theories/Basics/CategoryFacts.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Category.vos theories/Basics/Category.vok theories/Basics/Category.required_vos: theories/Basics/Category.v theories/Basics/CategoryFacts.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vo theories/Basics/CategoryOps.glob theories/Basics/CategoryOps.v.beautified theories/Basics/CategoryOps.required_vo: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryOps.vos theories/Basics/CategoryOps.vok theories/Basics/CategoryOps.required_vos: theories/Basics/CategoryOps.v /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vo theories/Basics/CategoryTheory.glob theories/Basics/CategoryTheory.v.beautified theories/Basics/CategoryTheory.required_vo: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryTheory.vos theories/Basics/CategoryTheory.vok theories/Basics/CategoryTheory.required_vos: theories/Basics/CategoryTheory.v theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vo theories/Basics/CategoryFacts.glob theories/Basics/CategoryFacts.v.beautified theories/Basics/CategoryFacts.required_vo: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFacts.vos theories/Basics/CategoryFacts.vok theories/Basics/CategoryFacts.required_vos: theories/Basics/CategoryFacts.v theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vo theories/Basics/CategorySub.glob theories/Basics/CategorySub.v.beautified theories/Basics/CategorySub.required_vo: theories/Basics/CategorySub.v theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategorySub.vos theories/Basics/CategorySub.vok theories/Basics/CategorySub.required_vos: theories/Basics/CategorySub.v theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vo theories/Basics/CategoryFunctor.glob theories/Basics/CategoryFunctor.v.beautified theories/Basics/CategoryFunctor.required_vo: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryFunctor.vos theories/Basics/CategoryFunctor.vok theories/Basics/CategoryFunctor.required_vos: theories/Basics/CategoryFunctor.v theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vo theories/Basics/CategoryRelations.glob theories/Basics/CategoryRelations.v.beautified theories/Basics/CategoryRelations.required_vo: theories/Basics/CategoryRelations.v theories/Basics/Basics.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryRelations.vos theories/Basics/CategoryRelations.vok theories/Basics/CategoryRelations.required_vos: theories/Basics/CategoryRelations.v theories/Basics/Basics.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vo theories/Basics/Monad.glob theories/Basics/Monad.v.beautified theories/Basics/Monad.required_vo: theories/Basics/Monad.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Monad.vos theories/Basics/Monad.vok theories/Basics/Monad.required_vos: theories/Basics/Monad.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vo theories/Basics/MonadProp.glob theories/Basics/MonadProp.v.beautified theories/Basics/MonadProp.required_vo: theories/Basics/MonadProp.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadProp.vos theories/Basics/MonadProp.vok theories/Basics/MonadProp.required_vos: theories/Basics/MonadProp.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vo theories/Basics/MonadState.glob theories/Basics/MonadState.v.beautified theories/Basics/MonadState.required_vo: theories/Basics/MonadState.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/MonadState.vos theories/Basics/MonadState.vok theories/Basics/MonadState.required_vos: theories/Basics/MonadState.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisli.glob theories/Basics/CategoryKleisli.v.beautified theories/Basics/CategoryKleisli.required_vo: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisli.vok theories/Basics/CategoryKleisli.required_vos: theories/Basics/CategoryKleisli.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryKleisliFacts.glob theories/Basics/CategoryKleisliFacts.v.beautified theories/Basics/CategoryKleisliFacts.required_vo: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryFunctor.vo theories/Basics/CategoryKleisli.vo theories/Basics/Function.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryKleisliFacts.vok theories/Basics/CategoryKleisliFacts.required_vos: theories/Basics/CategoryKleisliFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryFunctor.vos theories/Basics/CategoryKleisli.vos theories/Basics/Function.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vo theories/Basics/Function.glob theories/Basics/Function.v.beautified theories/Basics/Function.required_vo: theories/Basics/Function.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/Function.vos theories/Basics/Function.vok theories/Basics/Function.required_vos: theories/Basics/Function.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vo theories/Basics/FunctionFacts.glob theories/Basics/FunctionFacts.v.beautified theories/Basics/FunctionFacts.required_vo: theories/Basics/FunctionFacts.v theories/Axioms.vo theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Basics/FunctionFacts.vos theories/Basics/FunctionFacts.vok theories/Basics/FunctionFacts.required_vos: theories/Basics/FunctionFacts.v theories/Axioms.vos theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vo theories/Core/ITreeDefinition.glob theories/Core/ITreeDefinition.v.beautified theories/Core/ITreeDefinition.required_vo: theories/Core/ITreeDefinition.v theories/Basics/Basics.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeDefinition.vos theories/Core/ITreeDefinition.vok theories/Core/ITreeDefinition.required_vos: theories/Core/ITreeDefinition.v theories/Basics/Basics.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vo theories/Core/KTree.glob theories/Core/KTree.v.beautified theories/Core/KTree.required_vo: theories/Core/KTree.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Function.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTree.vos theories/Core/KTree.vok theories/Core/KTree.required_vos: theories/Core/KTree.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Function.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vo theories/Core/KTreeFacts.glob theories/Core/KTreeFacts.v.beautified theories/Core/KTreeFacts.required_vo: theories/Core/KTreeFacts.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Basics/CategoryOps.vo theories/Basics/CategoryTheory.vo theories/Basics/Function.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/ITreeMonad.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/KTreeFacts.vos theories/Core/KTreeFacts.vok theories/Core/KTreeFacts.required_vos: theories/Core/KTreeFacts.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Basics/CategoryOps.vos theories/Basics/CategoryTheory.vos theories/Basics/Function.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/ITreeMonad.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vo theories/Core/Subevent.glob theories/Core/Subevent.v.beautified theories/Core/Subevent.required_vo: theories/Core/Subevent.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/Subevent.vos theories/Core/Subevent.vok theories/Core/Subevent.required_vos: theories/Core/Subevent.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vo theories/Core/ITreeMonad.glob theories/Core/ITreeMonad.v.beautified theories/Core/ITreeMonad.required_vo: theories/Core/ITreeMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Core/ITreeMonad.vos theories/Core/ITreeMonad.vok theories/Core/ITreeMonad.required_vos: theories/Core/ITreeMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vo theories/Eq.glob theories/Eq.v.beautified theories/Eq.required_vo: theories/Eq.v theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq.vos theories/Eq.vok theories/Eq.required_vos: theories/Eq.v theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vo theories/Eq/Shallow.glob theories/Eq/Shallow.v.beautified theories/Eq/Shallow.required_vo: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Shallow.vos theories/Eq/Shallow.vok theories/Eq/Shallow.required_vos: theories/Eq/Shallow.v theories/Core/ITreeDefinition.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vo theories/Eq/Eqit.glob theories/Eq/Eqit.v.beautified theories/Eq/Eqit.required_vo: theories/Eq/Eqit.v theories/Basics/Basics.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Eqit.vos theories/Eq/Eqit.vok theories/Eq/Eqit.required_vos: theories/Eq/Eqit.v theories/Basics/Basics.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vo theories/Eq/SimUpToTaus.glob theories/Eq/SimUpToTaus.v.beautified theories/Eq/SimUpToTaus.required_vo: theories/Eq/SimUpToTaus.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/SimUpToTaus.vos theories/Eq/SimUpToTaus.vok theories/Eq/SimUpToTaus.required_vos: theories/Eq/SimUpToTaus.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vo theories/Eq/EqAxiom.glob theories/Eq/EqAxiom.v.beautified theories/Eq/EqAxiom.required_vo: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/EqAxiom.vos theories/Eq/EqAxiom.vok theories/Eq/EqAxiom.required_vos: theories/Eq/EqAxiom.v theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vo theories/Eq/Rutt.glob theories/Eq/Rutt.v.beautified theories/Eq/Rutt.required_vo: theories/Eq/Rutt.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/Rutt.vos theories/Eq/Rutt.vok theories/Eq/Rutt.required_vos: theories/Eq/Rutt.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vo theories/Eq/RuttFacts.glob theories/Eq/RuttFacts.v.beautified theories/Eq/RuttFacts.required_vo: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vo theories/Core/Subevent.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Eq/RuttFacts.vos theories/Eq/RuttFacts.vok theories/Eq/RuttFacts.required_vos: theories/Eq/RuttFacts.v theories/Basics/HeterogeneousRelations.vos theories/Core/Subevent.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vo theories/Props/Leaf.glob theories/Props/Leaf.v.beautified theories/Props/Leaf.required_vo: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/Interp/InterpFacts.vo theories/Props/HasPost.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Leaf.vos theories/Props/Leaf.vok theories/Props/Leaf.required_vos: theories/Props/Leaf.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/Interp/InterpFacts.vos theories/Props/HasPost.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vo theories/Props/Finite.glob theories/Props/Finite.v.beautified theories/Props/Finite.required_vo: theories/Props/Finite.v theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/Events/Exception.vo theories/Events/Nondeterminism.vo theories/ITree.vo theories/Interp/TranslateFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Finite.vos theories/Props/Finite.vok theories/Props/Finite.required_vos: theories/Props/Finite.v theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/Events/Exception.vos theories/Events/Nondeterminism.vos theories/ITree.vos theories/Interp/TranslateFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vo theories/Props/HasPost.glob theories/Props/HasPost.v.beautified theories/Props/HasPost.required_vo: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo theories/ITree.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/HasPost.vos theories/Props/HasPost.vok theories/Props/HasPost.required_vos: theories/Props/HasPost.v theories/Basics/HeterogeneousRelations.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos theories/ITree.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vo theories/Props/Infinite.glob theories/Props/Infinite.v.beautified theories/Props/Infinite.required_vo: theories/Props/Infinite.v theories/Axioms.vo theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Infinite.vos theories/Props/Infinite.vok theories/Props/Infinite.required_vos: theories/Props/Infinite.v theories/Axioms.vos theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vo theories/Props/Cofinite.glob theories/Props/Cofinite.v.beautified theories/Props/Cofinite.required_vo: theories/Props/Cofinite.v theories/Axioms.vo theories/ITree.vo theories/Props/Finite.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/Cofinite.vos theories/Props/Cofinite.vok theories/Props/Cofinite.required_vos: theories/Props/Cofinite.v theories/Axioms.vos theories/ITree.vos theories/Props/Finite.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vo theories/Props/EuttNoRet.glob theories/Props/EuttNoRet.v.beautified theories/Props/EuttNoRet.required_vo: theories/Props/EuttNoRet.v theories/Axioms.vo theories/Eq/Shallow.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Props/EuttNoRet.vos theories/Props/EuttNoRet.vok theories/Props/EuttNoRet.required_vos: theories/Props/EuttNoRet.v theories/Axioms.vos theories/Eq/Shallow.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vo theories/Indexed/Sum.glob theories/Indexed/Sum.v.beautified theories/Indexed/Sum.required_vo: theories/Indexed/Sum.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Sum.vos theories/Indexed/Sum.vok theories/Indexed/Sum.required_vos: theories/Indexed/Sum.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vo theories/Indexed/Relation.glob theories/Indexed/Relation.v.beautified theories/Indexed/Relation.required_vo: theories/Indexed/Relation.v theories/Basics/Basics.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Relation.vos theories/Indexed/Relation.vok theories/Indexed/Relation.required_vos: theories/Indexed/Relation.v theories/Basics/Basics.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vo theories/Indexed/Function.glob theories/Indexed/Function.v.beautified theories/Indexed/Function.required_vo: theories/Indexed/Function.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/Function.vos theories/Indexed/Function.vok theories/Indexed/Function.required_vos: theories/Indexed/Function.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vo theories/Indexed/FunctionFacts.glob theories/Indexed/FunctionFacts.v.beautified theories/Indexed/FunctionFacts.required_vo: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Indexed/FunctionFacts.vos theories/Indexed/FunctionFacts.vok theories/Indexed/FunctionFacts.required_vos: theories/Indexed/FunctionFacts.v theories/Basics/Basics.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vo theories/Interp/Interp.glob theories/Interp/Interp.v.beautified theories/Interp/Interp.required_vo: theories/Interp/Interp.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Indexed/Relation.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Interp.vos theories/Interp/Interp.vok theories/Interp/Interp.required_vos: theories/Interp/Interp.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Indexed/Relation.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vo theories/Interp/TranslateFacts.glob theories/Interp/TranslateFacts.v.beautified theories/Interp/TranslateFacts.required_vo: theories/Interp/TranslateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Core/KTreeFacts.vo theories/Core/Subevent.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/TranslateFacts.vos theories/Interp/TranslateFacts.vok theories/Interp/TranslateFacts.required_vos: theories/Interp/TranslateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Core/KTreeFacts.vos theories/Core/Subevent.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vo theories/Interp/InterpFacts.glob theories/Interp/InterpFacts.v.beautified theories/Interp/InterpFacts.required_vo: theories/Interp/InterpFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryKleisliFacts.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/InterpFacts.vos theories/Interp/InterpFacts.vok theories/Interp/InterpFacts.required_vos: theories/Interp/InterpFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryKleisliFacts.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vo theories/Interp/Handler.glob theories/Interp/Handler.v.beautified theories/Interp/Handler.required_vo: theories/Interp/Handler.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Handler.vos theories/Interp/Handler.vok theories/Interp/Handler.required_vos: theories/Interp/Handler.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vo theories/Interp/HandlerFacts.glob theories/Interp/HandlerFacts.v.beautified theories/Interp/HandlerFacts.required_vo: theories/Interp/HandlerFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo theories/Interp/TranslateFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/HandlerFacts.vos theories/Interp/HandlerFacts.vok theories/Interp/HandlerFacts.required_vos: theories/Interp/HandlerFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos theories/Interp/TranslateFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vo theories/Interp/Recursion.glob theories/Interp/Recursion.v.beautified theories/Interp/Recursion.required_vo: theories/Interp/Recursion.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Core/ITreeDefinition.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Recursion.vos theories/Interp/Recursion.vok theories/Interp/Recursion.required_vos: theories/Interp/Recursion.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Core/ITreeDefinition.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vo theories/Interp/RecursionFacts.glob theories/Interp/RecursionFacts.v.beautified theories/Interp/RecursionFacts.required_vo: theories/Interp/RecursionFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/Function.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Eq/Eqit.vo theories/Indexed/Function.vo theories/Indexed/Relation.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/Recursion.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/RecursionFacts.vos theories/Interp/RecursionFacts.vok theories/Interp/RecursionFacts.required_vos: theories/Interp/RecursionFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/Function.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Eq/Eqit.vos theories/Indexed/Function.vos theories/Indexed/Relation.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/Recursion.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vo theories/Interp/Traces.glob theories/Interp/Traces.v.beautified theories/Interp/Traces.required_vo: theories/Interp/Traces.v theories/Axioms.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Eq/Eqit.vo theories/Eq/Shallow.vo theories/Eq/SimUpToTaus.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Interp/Traces.vos theories/Interp/Traces.vok theories/Interp/Traces.required_vos: theories/Interp/Traces.v theories/Axioms.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Eq/Eqit.vos theories/Eq/Shallow.vos theories/Eq/SimUpToTaus.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vo theories/Events.glob theories/Events.v.beautified theories/Events.required_vo: theories/Events.v theories/Events/Concurrency.vo theories/Events/Dependent.vo theories/Events/Exception.vo theories/Events/Map.vo theories/Events/Nondeterminism.vo theories/Events/Reader.vo theories/Events/State.vo theories/Events/Writer.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events.vos theories/Events.vok theories/Events.required_vos: theories/Events.v theories/Events/Concurrency.vos theories/Events/Dependent.vos theories/Events/Exception.vos theories/Events/Map.vos theories/Events/Nondeterminism.vos theories/Events/Reader.vos theories/Events/State.vos theories/Events/Writer.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vo theories/Events/State.glob theories/Events/State.v.beautified theories/Events/State.required_vo: theories/Events/State.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/State.vos theories/Events/State.vok theories/Events/State.required_vos: theories/Events/State.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vo theories/Events/StateFacts.glob theories/Events/StateFacts.v.beautified theories/Events/StateFacts.required_vo: theories/Events/StateFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/StateFacts.vos theories/Events/StateFacts.vok theories/Events/StateFacts.required_vos: theories/Events/StateFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vo theories/Events/Reader.glob theories/Events/Reader.v.beautified theories/Events/Reader.required_vo: theories/Events/Reader.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Reader.vos theories/Events/Reader.vok theories/Events/Reader.required_vos: theories/Events/Reader.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vo theories/Events/Writer.glob theories/Events/Writer.v.beautified theories/Events/Writer.required_vo: theories/Events/Writer.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Writer.vos theories/Events/Writer.vok theories/Events/Writer.required_vos: theories/Events/Writer.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vo theories/Events/Exception.glob theories/Events/Exception.v.beautified theories/Events/Exception.required_vo: theories/Events/Exception.v theories/ITree.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Exception.vos theories/Events/Exception.vok theories/Events/Exception.required_vos: theories/Events/Exception.v theories/ITree.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vo theories/Events/ExceptionFacts.glob theories/Events/ExceptionFacts.v.beautified theories/Events/ExceptionFacts.required_vo: theories/Events/ExceptionFacts.v theories/Events/Exception.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/ExceptionFacts.vos theories/Events/ExceptionFacts.vok theories/Events/ExceptionFacts.required_vos: theories/Events/ExceptionFacts.v theories/Events/Exception.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vo theories/Events/Nondeterminism.glob theories/Events/Nondeterminism.v.beautified theories/Events/Nondeterminism.required_vo: theories/Events/Nondeterminism.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/Exception.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Nondeterminism.vos theories/Events/Nondeterminism.vok theories/Events/Nondeterminism.required_vos: theories/Events/Nondeterminism.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/Exception.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vo theories/Events/Map.glob theories/Events/Map.v.beautified theories/Events/Map.required_vo: theories/Events/Map.v theories/Basics/Basics.vo theories/Basics/CategoryOps.vo theories/Basics/MonadState.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Map.vos theories/Events/Map.vok theories/Events/Map.required_vos: theories/Events/Map.v theories/Basics/Basics.vos theories/Basics/CategoryOps.vos theories/Basics/MonadState.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vo theories/Events/MapDefault.glob theories/Events/MapDefault.v.beautified theories/Events/MapDefault.required_vo: theories/Events/MapDefault.v theories/Basics/Basics.vo theories/Basics/CategoryKleisli.vo theories/Basics/CategoryOps.vo theories/Basics/Monad.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Events/State.vo theories/Indexed/Function.vo theories/Indexed/Sum.vo theories/Interp/Handler.vo theories/Interp/Interp.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefault.vos theories/Events/MapDefault.vok theories/Events/MapDefault.required_vos: theories/Events/MapDefault.v theories/Basics/Basics.vos theories/Basics/CategoryKleisli.vos theories/Basics/CategoryOps.vos theories/Basics/Monad.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Events/State.vos theories/Indexed/Function.vos theories/Indexed/Sum.vos theories/Interp/Handler.vos theories/Interp/Interp.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vo theories/Events/MapDefaultFacts.glob theories/Events/MapDefaultFacts.v.beautified theories/Events/MapDefaultFacts.required_vo: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vo theories/Eq/Paco2.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/MapDefaultFacts.vos theories/Events/MapDefaultFacts.vok theories/Events/MapDefaultFacts.required_vos: theories/Events/MapDefaultFacts.v theories/Basics/HeterogeneousRelations.vos theories/Eq/Paco2.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vo theories/Events/Concurrency.glob theories/Events/Concurrency.v.beautified theories/Events/Concurrency.required_vo: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Concurrency.vos theories/Events/Concurrency.vok theories/Events/Concurrency.required_vos: theories/Events/Concurrency.v theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vo theories/Events/Dependent.glob theories/Events/Dependent.v.beautified theories/Events/Dependent.required_vo: theories/Events/Dependent.v theories/Basics/Basics.vo theories/Core/ITreeDefinition.vo theories/Core/Subevent.vo theories/Indexed/Sum.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/Dependent.vos theories/Events/Dependent.vok theories/Events/Dependent.required_vos: theories/Events/Dependent.v theories/Basics/Basics.vos theories/Core/ITreeDefinition.vos theories/Core/Subevent.vos theories/Indexed/Sum.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vo theories/Events/FailFacts.glob theories/Events/FailFacts.v.beautified theories/Events/FailFacts.required_vo: theories/Events/FailFacts.v theories/Basics/Basics.vo theories/Basics/Category.vo theories/Basics/CategoryKleisli.vo theories/Basics/HeterogeneousRelations.vo theories/Basics/Monad.vo theories/Basics/Utils.vo theories/Core/ITreeDefinition.vo theories/Core/KTree.vo theories/Core/KTreeFacts.vo theories/Eq/Eqit.vo theories/Indexed/Sum.vo theories/Interp/Interp.vo theories/Interp/InterpFacts.vo theories/Interp/RecursionFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -theories/Events/FailFacts.vos theories/Events/FailFacts.vok theories/Events/FailFacts.required_vos: theories/Events/FailFacts.v theories/Basics/Basics.vos theories/Basics/Category.vos theories/Basics/CategoryKleisli.vos theories/Basics/HeterogeneousRelations.vos theories/Basics/Monad.vos theories/Basics/Utils.vos theories/Core/ITreeDefinition.vos theories/Core/KTree.vos theories/Core/KTreeFacts.vos theories/Eq/Eqit.vos theories/Indexed/Sum.vos theories/Interp/Interp.vos theories/Interp/InterpFacts.vos theories/Interp/RecursionFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vo extra/IForest.glob extra/IForest.v.beautified extra/IForest.required_vo: extra/IForest.v theories/Axioms.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Leaf.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/IForest.vos extra/IForest.vok extra/IForest.required_vos: extra/IForest.v theories/Axioms.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Leaf.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceDefinition.glob extra/ITrace/ITraceDefinition.v.beautified extra/ITrace/ITraceDefinition.required_vo: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceDefinition.vok extra/ITrace/ITraceDefinition.required_vos: extra/ITrace/ITraceDefinition.v theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vo extra/ITrace/ITraceFacts.glob extra/ITrace/ITraceFacts.v.beautified extra/ITrace/ITraceFacts.required_vo: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vo theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Rutt.vo theories/Eq/RuttFacts.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITraceFacts.vos extra/ITrace/ITraceFacts.vok extra/ITrace/ITraceFacts.required_vos: extra/ITrace/ITraceFacts.v extra/ITrace/ITraceDefinition.vos theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Rutt.vos theories/Eq/RuttFacts.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vo extra/ITrace/ITracePrefix.glob extra/ITrace/ITracePrefix.v.beautified extra/ITrace/ITracePrefix.required_vo: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vo extra/ITrace/ITraceFacts.vo theories/Axioms.vo theories/Eq/Rutt.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/ITrace/ITracePrefix.vos extra/ITrace/ITracePrefix.vok extra/ITrace/ITracePrefix.required_vos: extra/ITrace/ITracePrefix.v extra/ITrace/ITraceDefinition.vos extra/ITrace/ITraceFacts.vos theories/Axioms.vos theories/Eq/Rutt.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/DijkstraMonad.glob extra/Dijkstra/DijkstraMonad.v.beautified extra/Dijkstra/DijkstraMonad.required_vo: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vo theories/Basics/Monad.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/DijkstraMonad.vok extra/Dijkstra/DijkstraMonad.required_vos: extra/Dijkstra/DijkstraMonad.v theories/Basics/Basics.vos theories/Basics/Monad.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vo extra/Dijkstra/IterRel.glob extra/Dijkstra/IterRel.v.beautified extra/Dijkstra/IterRel.required_vo: extra/Dijkstra/IterRel.v theories/Axioms.vo theories/Basics/Utils.vo theories/Eq/Eqit.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/IterRel.vos extra/Dijkstra/IterRel.vok extra/Dijkstra/IterRel.required_vos: extra/Dijkstra/IterRel.v theories/Axioms.vos theories/Basics/Utils.vos theories/Eq/Eqit.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/PureITreeBasics.glob extra/Dijkstra/PureITreeBasics.v.beautified extra/Dijkstra/PureITreeBasics.required_vo: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/PureITreeBasics.vok extra/Dijkstra/PureITreeBasics.required_vos: extra/Dijkstra/PureITreeBasics.v theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DelaySpecMonad.glob extra/Dijkstra/DelaySpecMonad.v.beautified extra/Dijkstra/DelaySpecMonad.required_vo: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DelaySpecMonad.vok extra/Dijkstra/DelaySpecMonad.required_vos: extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vo extra/Dijkstra/StateSpecT.glob extra/Dijkstra/StateSpecT.v.beautified extra/Dijkstra/StateSpecT.required_vo: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/IterRel.vo extra/Dijkstra/PureITreeBasics.vo theories/Basics/HeterogeneousRelations.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateSpecT.vos extra/Dijkstra/StateSpecT.vok extra/Dijkstra/StateSpecT.required_vos: extra/Dijkstra/StateSpecT.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/IterRel.vos extra/Dijkstra/PureITreeBasics.vos theories/Basics/HeterogeneousRelations.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vo extra/Dijkstra/StateDelaySpec.glob extra/Dijkstra/StateDelaySpec.v.beautified extra/Dijkstra/StateDelaySpec.required_vo: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo extra/Dijkstra/StateSpecT.vo theories/Events/MapDefault.vo theories/Events/State.vo theories/Events/StateFacts.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/StateDelaySpec.vos extra/Dijkstra/StateDelaySpec.vok extra/Dijkstra/StateDelaySpec.required_vos: extra/Dijkstra/StateDelaySpec.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos extra/Dijkstra/StateSpecT.vos theories/Events/MapDefault.vos theories/Events/State.vos theories/Events/StateFacts.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vo extra/Dijkstra/ITreeDijkstra.glob extra/Dijkstra/ITreeDijkstra.v.beautified extra/Dijkstra/ITreeDijkstra.required_vo: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vo extra/Dijkstra/DijkstraMonad.vo extra/Dijkstra/PureITreeBasics.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo theories/Props/EuttNoRet.vo theories/Props/Infinite.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Dijkstra/ITreeDijkstra.vos extra/Dijkstra/ITreeDijkstra.vok extra/Dijkstra/ITreeDijkstra.required_vos: extra/Dijkstra/ITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.vos extra/Dijkstra/DijkstraMonad.vos extra/Dijkstra/PureITreeBasics.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos theories/Props/EuttNoRet.vos theories/Props/Infinite.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vo extra/Secure/Labels.glob extra/Secure/Labels.v.beautified extra/Secure/Labels.required_vo: extra/Secure/Labels.v theories/Axioms.vo theories/Basics/Utils.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/Labels.vos extra/Secure/Labels.vok extra/Secure/Labels.required_vos: extra/Secure/Labels.v theories/Axioms.vos theories/Basics/Utils.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vo extra/Secure/StrongBisimProper.glob extra/Secure/StrongBisimProper.v.beautified extra/Secure/StrongBisimProper.required_vo: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/StrongBisimProper.vos extra/Secure/StrongBisimProper.vok extra/Secure/StrongBisimProper.required_vos: extra/Secure/StrongBisimProper.v theories/Eq/EqAxiom.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vo extra/Secure/SecureEqHalt.glob extra/Secure/SecureEqHalt.v.beautified extra/Secure/SecureEqHalt.required_vo: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vo theories/Axioms.vo theories/Basics/Utils.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHalt.vos extra/Secure/SecureEqHalt.vok extra/Secure/SecureEqHalt.required_vos: extra/Secure/SecureEqHalt.v extra/Secure/Labels.vos theories/Axioms.vos theories/Basics/Utils.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vo extra/Secure/SecureEqHaltProgInsens.glob extra/Secure/SecureEqHaltProgInsens.v.beautified extra/Secure/SecureEqHaltProgInsens.required_vo: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqHaltProgInsens.vos extra/Secure/SecureEqHaltProgInsens.vok extra/Secure/SecureEqHaltProgInsens.required_vos: extra/Secure/SecureEqHaltProgInsens.v extra/Secure/Labels.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqEuttHalt.glob extra/Secure/SecureEqEuttHalt.v.beautified extra/Secure/SecureEqEuttHalt.required_vo: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqEuttHalt.vok extra/Secure/SecureEqEuttHalt.required_vos: extra/Secure/SecureEqEuttHalt.v extra/Secure/Labels.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vo extra/Secure/SecureEqEuttTrans.glob extra/Secure/SecureEqEuttTrans.v.beautified extra/Secure/SecureEqEuttTrans.required_vo: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vo extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqEuttTrans.vos extra/Secure/SecureEqEuttTrans.vok extra/Secure/SecureEqEuttTrans.required_vos: extra/Secure/SecureEqEuttTrans.v extra/Secure/SecureEqEuttHalt.vos extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vo extra/Secure/SecureEqWcompat.glob extra/Secure/SecureEqWcompat.v.beautified extra/Secure/SecureEqWcompat.required_vo: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vo theories/Axioms.vo theories/ITree.vo theories/ITreeFacts.vo /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker -extra/Secure/SecureEqWcompat.vos extra/Secure/SecureEqWcompat.vok extra/Secure/SecureEqWcompat.required_vos: extra/Secure/SecureEqWcompat.v extra/Secure/SecureEqHalt.vos theories/Axioms.vos theories/ITree.vos theories/ITreeFacts.vos /Users/rogerab/.opam/default/lib/rocq-runtime/rocqworker diff --git a/.gitignore b/.gitignore index a1c1f5b5..9010bb3a 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,4 @@ tutorial/imp_test.mli .mcp.json rocq_mcp_cache_8675_.v rocq_mcp_cache_85046_.v -.Makefile.d \ No newline at end of file +.Makefile.d diff --git a/_CoqProject b/_CoqProject index 0b93798b..11e28464 100644 --- a/_CoqProject +++ b/_CoqProject @@ -98,11 +98,11 @@ extra/Dijkstra/ITreeDijkstra.v extra/Secure/Labels.v extra/Secure/StrongBisimProper.v -extra/Secure/SecureEqHalt.v -extra/Secure/SecureEqHaltProgInsens.v -extra/Secure/SecureEqEuttHalt.v -extra/Secure/SecureEqEuttTrans.v -extra/Secure/SecureEqWcompat.v +# extra/Secure/SecureEqHalt.v +# extra/Secure/SecureEqHaltProgInsens.v +# extra/Secure/SecureEqEuttHalt.v +# extra/Secure/SecureEqEuttTrans.v +# extra/Secure/SecureEqWcompat.v # extra/Secure/SecureEqBind.v # extra/Secure/SecureEqProgInsens.v # extra/Secure/SecureEqProgInsensFacts.v From a9b341d5795e376150908c9c0eaf20ed56fb20ee Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 4 May 2026 13:30:13 -0400 Subject: [PATCH 146/189] Start of many timing experiments. Developing vsrocq extension. --- extra/Dijkstra/DelaySpecMonad.v.timing | 443 ++++ extra/Dijkstra/DijkstraMonad.v.timing | 50 + extra/Dijkstra/ITreeDijkstra.v.timing | 851 ++++++++ extra/Dijkstra/IterRel.v.timing | 178 ++ extra/Dijkstra/PureITreeBasics.v.timing | 151 ++ extra/Dijkstra/StateDelaySpec.v.timing | 310 +++ extra/Dijkstra/StateSpecT.v.timing | 244 +++ extra/IForest.v.timing | 1131 ++++++++++ extra/ITrace/ITraceDefinition.v.timing | 24 + extra/ITrace/ITraceFacts.v.timing | 1232 +++++++++++ extra/ITrace/ITracePrefix.v.timing | 561 +++++ extra/Secure/Labels.v.timing | 15 + extra/Secure/StrongBisimProper.v.timing | 11 + theories/Axioms.v.timing | 20 + theories/Basics/Basics.v.timing | 51 + theories/Basics/Category.v.timing | 1 + theories/Basics/CategoryFacts.v.timing | 694 ++++++ theories/Basics/CategoryFunctor.v.timing | 22 + theories/Basics/CategoryKleisli.v.timing | 23 + theories/Basics/CategoryKleisliFacts.v.timing | 307 +++ theories/Basics/CategoryOps.v.timing | 126 ++ theories/Basics/CategoryRelations.v.timing | 430 ++++ theories/Basics/CategorySub.v.timing | 128 ++ theories/Basics/CategoryTheory.v.timing | 241 +++ theories/Basics/Function.v.timing | 18 + theories/Basics/FunctionFacts.v.timing | 143 ++ .../Basics/HeterogeneousRelations.v.timing | 652 ++++++ theories/Basics/Monad.v.timing | 21 + theories/Basics/MonadProp.v.timing | 232 ++ theories/Basics/MonadState.v.timing | 400 ++++ theories/Basics/Utils.v.timing | 46 + theories/Core/ITreeDefinition.v.timing | 55 + theories/Core/ITreeMonad.v.timing | 36 + theories/Core/KTree.v.timing | 14 + theories/Core/KTreeFacts.v.timing | 275 +++ theories/Core/Subevent.v.timing | 50 + theories/Eq.v.timing | 1 + theories/Eq/EqAxiom.v.timing | 7 + theories/Eq/Eqit.v.timing | 1912 +++++++++++++++++ theories/Eq/Rutt.v.timing | 236 ++ theories/Eq/RuttFacts.v.timing | 577 +++++ theories/Eq/Shallow.v.timing | 102 + theories/Eq/SimUpToTaus.v.timing | 244 +++ theories/Events.v.timing | 1 + theories/Events/Concurrency.v.timing | 10 + theories/Events/Dependent.v.timing | 6 + theories/Events/Exception.v.timing | 6 + theories/Events/ExceptionFacts.v | 3 +- theories/Events/ExceptionFacts.v.timing | 495 +++++ theories/Events/FailFacts.v.timing | 200 ++ theories/Events/Map.v.timing | 25 + theories/Events/MapDefault.v.timing | 28 + theories/Events/MapDefaultFacts.v.timing | 210 ++ theories/Events/Nondeterminism.v.timing | 11 + theories/Events/Reader.v.timing | 14 + theories/Events/State.v.timing | 23 + theories/Events/StateFacts.v.timing | 247 +++ theories/Events/Writer.v.timing | 17 + theories/ITree.v.timing | 1 + theories/ITreeFacts.v.timing | 1 + theories/Indexed/Function.v.timing | 14 + theories/Indexed/FunctionFacts.v.timing | 11 + theories/Indexed/Relation.v.timing | 29 + theories/Indexed/Sum.v.timing | 9 + theories/Interp/Handler.v.timing | 27 + theories/Interp/HandlerFacts.v.timing | 339 +++ theories/Interp/Interp.v.timing | 7 + theories/Interp/InterpFacts.v.timing | 341 +++ theories/Interp/Recursion.v.timing | 24 + theories/Interp/RecursionFacts.v.timing | 242 +++ theories/Interp/Traces.v.timing | 223 ++ theories/Interp/TranslateFacts.v.timing | 171 ++ theories/Props/Cofinite.v.timing | 20 + theories/Props/EuttNoRet.v.timing | 269 +++ theories/Props/Finite.v.timing | 363 ++++ theories/Props/HasPost.v.timing | 163 ++ theories/Props/Infinite.v.timing | 325 +++ theories/Props/Leaf.v.timing | 401 ++++ theories/Simple.v.timing | 233 ++ timing-experiments/all-times.sh | 27 + timing-experiments/get-times.sh | 2 +- timing-experiments/sum-times.sh | 22 + 82 files changed, 16823 insertions(+), 2 deletions(-) create mode 100644 extra/Dijkstra/DelaySpecMonad.v.timing create mode 100644 extra/Dijkstra/DijkstraMonad.v.timing create mode 100644 extra/Dijkstra/ITreeDijkstra.v.timing create mode 100644 extra/Dijkstra/IterRel.v.timing create mode 100644 extra/Dijkstra/PureITreeBasics.v.timing create mode 100644 extra/Dijkstra/StateDelaySpec.v.timing create mode 100644 extra/Dijkstra/StateSpecT.v.timing create mode 100644 extra/IForest.v.timing create mode 100644 extra/ITrace/ITraceDefinition.v.timing create mode 100644 extra/ITrace/ITraceFacts.v.timing create mode 100644 extra/ITrace/ITracePrefix.v.timing create mode 100644 extra/Secure/Labels.v.timing create mode 100644 extra/Secure/StrongBisimProper.v.timing create mode 100644 theories/Axioms.v.timing create mode 100644 theories/Basics/Basics.v.timing create mode 100644 theories/Basics/Category.v.timing create mode 100644 theories/Basics/CategoryFacts.v.timing create mode 100644 theories/Basics/CategoryFunctor.v.timing create mode 100644 theories/Basics/CategoryKleisli.v.timing create mode 100644 theories/Basics/CategoryKleisliFacts.v.timing create mode 100644 theories/Basics/CategoryOps.v.timing create mode 100644 theories/Basics/CategoryRelations.v.timing create mode 100644 theories/Basics/CategorySub.v.timing create mode 100644 theories/Basics/CategoryTheory.v.timing create mode 100644 theories/Basics/Function.v.timing create mode 100644 theories/Basics/FunctionFacts.v.timing create mode 100644 theories/Basics/HeterogeneousRelations.v.timing create mode 100644 theories/Basics/Monad.v.timing create mode 100644 theories/Basics/MonadProp.v.timing create mode 100644 theories/Basics/MonadState.v.timing create mode 100644 theories/Basics/Utils.v.timing create mode 100644 theories/Core/ITreeDefinition.v.timing create mode 100644 theories/Core/ITreeMonad.v.timing create mode 100644 theories/Core/KTree.v.timing create mode 100644 theories/Core/KTreeFacts.v.timing create mode 100644 theories/Core/Subevent.v.timing create mode 100644 theories/Eq.v.timing create mode 100644 theories/Eq/EqAxiom.v.timing create mode 100644 theories/Eq/Eqit.v.timing create mode 100644 theories/Eq/Rutt.v.timing create mode 100644 theories/Eq/RuttFacts.v.timing create mode 100644 theories/Eq/Shallow.v.timing create mode 100644 theories/Eq/SimUpToTaus.v.timing create mode 100644 theories/Events.v.timing create mode 100644 theories/Events/Concurrency.v.timing create mode 100644 theories/Events/Dependent.v.timing create mode 100644 theories/Events/Exception.v.timing create mode 100644 theories/Events/ExceptionFacts.v.timing create mode 100644 theories/Events/FailFacts.v.timing create mode 100644 theories/Events/Map.v.timing create mode 100644 theories/Events/MapDefault.v.timing create mode 100644 theories/Events/MapDefaultFacts.v.timing create mode 100644 theories/Events/Nondeterminism.v.timing create mode 100644 theories/Events/Reader.v.timing create mode 100644 theories/Events/State.v.timing create mode 100644 theories/Events/StateFacts.v.timing create mode 100644 theories/Events/Writer.v.timing create mode 100644 theories/ITree.v.timing create mode 100644 theories/ITreeFacts.v.timing create mode 100644 theories/Indexed/Function.v.timing create mode 100644 theories/Indexed/FunctionFacts.v.timing create mode 100644 theories/Indexed/Relation.v.timing create mode 100644 theories/Indexed/Sum.v.timing create mode 100644 theories/Interp/Handler.v.timing create mode 100644 theories/Interp/HandlerFacts.v.timing create mode 100644 theories/Interp/Interp.v.timing create mode 100644 theories/Interp/InterpFacts.v.timing create mode 100644 theories/Interp/Recursion.v.timing create mode 100644 theories/Interp/RecursionFacts.v.timing create mode 100644 theories/Interp/Traces.v.timing create mode 100644 theories/Interp/TranslateFacts.v.timing create mode 100644 theories/Props/Cofinite.v.timing create mode 100644 theories/Props/EuttNoRet.v.timing create mode 100644 theories/Props/Finite.v.timing create mode 100644 theories/Props/HasPost.v.timing create mode 100644 theories/Props/Infinite.v.timing create mode 100644 theories/Props/Leaf.v.timing create mode 100644 theories/Simple.v.timing create mode 100755 timing-experiments/all-times.sh create mode 100755 timing-experiments/sum-times.sh diff --git a/extra/Dijkstra/DelaySpecMonad.v.timing b/extra/Dijkstra/DelaySpecMonad.v.timing new file mode 100644 index 00000000..2e0c0686 --- /dev/null +++ b/extra/Dijkstra/DelaySpecMonad.v.timing @@ -0,0 +1,443 @@ +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.159 secs (0.142u,0.016s) +Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.013 secs (0.011u,0.002s) +Chars 312 - 326 [Import~Monads.] 0. secs (0.u,0.s) +Chars 327 - 348 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 350 - 382 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 384 - 407 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 719 - 1124 [Ltac~~clear_ret_eutt_spin~:=~~...] 0. secs (0.u,0.s) +Chars 1126 - 1435 [Ltac~~invert_evidence~:=~~~int...] 0. secs (0.u,0.s) +Chars 1437 - 1691 [Ltac~~invert_ret~:=~~~simpl~in...] 0. secs (0.u,0.s) +Chars 1694 - 1771 [Ltac~basic_solve~:=~invert_evi...] 0. secs (0.u,0.s) +Chars 1773 - 1846 [Ltac~dest_dep~f~a~:=~destruct~...] 0. secs (0.u,0.s) +Chars 1848 - 1878 [Declare~Scope~delayspec_scope.] 0. secs (0.u,0.s) +Chars 1879 - 1924 [Delimit~Scope~delayspec_scope~...] 0. secs (0.u,0.s) +Chars 1926 - 1962 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) +Chars 1964 - 2051 [Notation~"a~∈~b"~:=~(proj1_sig...] 0. secs (0.u,0.s) +Chars 2052 - 2153 [Notation~"a~∋~b"~:=~(proj1_sig...] 0. secs (0.u,0.s) +Chars 2155 - 2200 [Definition~Delay~(A~:~Type)~:=...] 0. secs (0.u,0.s) +Chars 2202 - 2273 [#[global]~Instance~EqMDelay~:~...] 0. secs (0.u,0.s) +Chars 2274 - 2340 [#[global]~Instance~MonadDelay~...] 0. secs (0.u,0.s) +Chars 2341 - 2426 [#[global]~Instance~MonadIterDe...] 0. secs (0.u,0.s) +Chars 2428 - 2511 [Definition~DelaySpecInput~(A~:...] 0. secs (0.u,0.s) +Chars 2513 - 2604 [Definition~DelayIn~{A~:~Type}~...] 0. secs (0.u,0.s) +Chars 2606 - 2767 [Definition~DelaySpec~(A~:~Type...] 0. secs (0.u,0.s) +Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.002 secs (0.001u,0.s) +Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.028 secs (0.026u,0.001s) +Chars 3076 - 3092 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 3095 - 3114 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 3115 - 3142 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) +Chars 3145 - 3146 [-] 0. secs (0.u,0.s) +Chars 3147 - 3152 [left.] 0. secs (0.u,0.s) +Chars 3153 - 3162 [exists~a.] 0. secs (0.u,0.s) +Chars 3163 - 3175 [split;~auto.] 0. secs (0.u,0.s) +Chars 3176 - 3186 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 3187 - 3192 [auto.] 0. secs (0.u,0.s) +Chars 3195 - 3196 [-] 0. secs (0.u,0.s) +Chars 3197 - 3203 [right.] 0. secs (0.u,0.s) +Chars 3204 - 3221 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) +Chars 3222 - 3227 [auto.] 0. secs (0.u,0.s) +Chars 3230 - 3231 [-] 0. secs (0.u,0.s) +Chars 3232 - 3237 [left.] 0. secs (0.u,0.s) +Chars 3238 - 3247 [exists~a.] 0. secs (0.u,0.s) +Chars 3248 - 3262 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) +Chars 3263 - 3268 [auto.] 0. secs (0.u,0.s) +Chars 3271 - 3272 [-] 0. secs (0.u,0.s) +Chars 3273 - 3279 [right.] 0. secs (0.u,0.s) +Chars 3280 - 3294 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) +Chars 3295 - 3300 [auto.] 0. secs (0.u,0.s) +Chars 3301 - 3305 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.001 secs (0.001u,0.s) +Chars 3426 - 3442 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 3445 - 3449 [red.] 0. secs (0.u,0.s) +Chars 3450 - 3460 [red~in~H0.] 0. secs (0.u,0.s) +Chars 3461 - 3482 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 3483 - 3494 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 3495 - 3519 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 3522 - 3528 [simpl.] 0. secs (0.u,0.s) +Chars 3529 - 3536 [intros.] 0. secs (0.u,0.s) +Chars 3537 - 3549 [basic_solve.] 0. secs (0.u,0.s) +Chars 3552 - 3553 [-] 0. secs (0.u,0.s) +Chars 3554 - 3559 [left.] 0. secs (0.u,0.s) +Chars 3560 - 3569 [exists~a.] 0. secs (0.u,0.s) +Chars 3570 - 3582 [split;~auto.] 0. secs (0.u,0.s) +Chars 3583 - 3596 [dest_dep~f~a.] 0.042 secs (0.042u,0.s) +Chars 3597 - 3615 [eapply~Hfa;~eauto.] 0. secs (0.u,0.s) +Chars 3618 - 3619 [-] 0. secs (0.u,0.s) +Chars 3620 - 3626 [right.] 0. secs (0.u,0.s) +Chars 3627 - 3639 [split;~auto.] 0. secs (0.u,0.s) +Chars 3640 - 3644 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) +Chars 3747 - 3831 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) +Chars 3832 - 3838 [Proof.] 0. secs (0.u,0.s) +Chars 3841 - 3878 [constructor;~repeat~intro;~try...] 0.003 secs (0.003u,0.s) +Chars 3881 - 3882 [-] 0. secs (0.u,0.s) +Chars 3883 - 3899 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 3900 - 3917 [specialize~(H~p).] 0. secs (0.u,0.s) +Chars 3918 - 3924 [tauto.] 0. secs (0.u,0.s) +Chars 3927 - 3928 [-] 0. secs (0.u,0.s) +Chars 3929 - 3949 [repeat~red~in~H,~H0.] 0. secs (0.u,0.s) +Chars 3950 - 3967 [specialize~(H~p).] 0. secs (0.u,0.s) +Chars 3968 - 3986 [specialize~(H0~p).] 0. secs (0.u,0.s) +Chars 3987 - 3993 [tauto.] 0.001 secs (0.001u,0.s) +Chars 3994 - 3998 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4000 - 4104 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) +Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.01 secs (0.01u,0.s) +Chars 4177 - 4193 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4196 - 4207 [repeat~red.] 0. secs (0.u,0.s) +Chars 4208 - 4212 [cbn.] 0. secs (0.u,0.s) +Chars 4213 - 4246 [split;~intros;~basic_solve;~auto.] 0.001 secs (0.001u,0.s) +Chars 4249 - 4250 [-] 0. secs (0.u,0.s) +Chars 4251 - 4285 [repeat~red~in~H;~step~in~H;~in...] 0. secs (0.u,0.s) +Chars 4289 - 4290 [-] 0. secs (0.u,0.s) +Chars 4291 - 4296 [left.] 0. secs (0.u,0.s) +Chars 4297 - 4306 [exists~x.] 0. secs (0.u,0.s) +Chars 4307 - 4332 [split;~auto;~reflexivity.] 0. secs (0.u,0.s) +Chars 4333 - 4337 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4338 - 4354 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4357 - 4373 [rename~x~into~w.] 0. secs (0.u,0.s) +Chars 4376 - 4387 [repeat~red.] 0. secs (0.u,0.s) +Chars 4388 - 4392 [cbn.] 0. secs (0.u,0.s) +Chars 4393 - 4407 [split;~intros.] 0. secs (0.u,0.s) +Chars 4410 - 4411 [-] 0. secs (0.u,0.s) +Chars 4412 - 4421 [red~in~H.] 0. secs (0.u,0.s) +Chars 4422 - 4433 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 4434 - 4455 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 4456 - 4467 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4468 - 4491 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 4496 - 4503 [intros.] 0. secs (0.u,0.s) +Chars 4504 - 4515 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4516 - 4537 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 4538 - 4549 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4550 - 4562 [basic_solve.] 0. secs (0.u,0.s) +Chars 4567 - 4568 [+] 0. secs (0.u,0.s) +Chars 4569 - 4586 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4587 - 4605 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 4611 - 4612 [+] 0. secs (0.u,0.s) +Chars 4613 - 4639 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 4640 - 4657 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) +Chars 4660 - 4661 [-] 0. secs (0.u,0.s) +Chars 4662 - 4666 [red.] 0. secs (0.u,0.s) +Chars 4667 - 4688 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 4689 - 4700 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4701 - 4724 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 4725 - 4732 [intros.] 0. secs (0.u,0.s) +Chars 4737 - 4758 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 4759 - 4770 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4775 - 4818 [destruct~(eutt_reta_or_div~t);...] 0. secs (0.u,0.s) +Chars 4823 - 4824 [+] 0. secs (0.u,0.s) +Chars 4825 - 4830 [left.] 0. secs (0.u,0.s) +Chars 4831 - 4840 [exists~a.] 0. secs (0.u,0.s) +Chars 4841 - 4853 [split;~auto.] 0. secs (0.u,0.s) +Chars 4854 - 4871 [eapply~Hp;~eauto.] 0.002 secs (0.001u,0.s) +Chars 4876 - 4877 [+] 0. secs (0.u,0.s) +Chars 4878 - 4884 [right.] 0. secs (0.u,0.s) +Chars 4885 - 4897 [split;~auto.] 0. secs (0.u,0.s) +Chars 4898 - 4922 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 4923 - 4932 [symmetry.] 0. secs (0.u,0.s) +Chars 4933 - 4953 [apply~div_spin_eutt.] 0. secs (0.u,0.s) +Chars 4954 - 4959 [auto.] 0. secs (0.u,0.s) +Chars 4960 - 4964 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4965 - 4981 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4984 - 5000 [rename~x~into~w.] 0. secs (0.u,0.s) +Chars 5003 - 5014 [repeat~red.] 0. secs (0.u,0.s) +Chars 5015 - 5019 [cbn.] 0. secs (0.u,0.s) +Chars 5020 - 5034 [split;~intros.] 0. secs (0.u,0.s) +Chars 5037 - 5038 [-] 0. secs (0.u,0.s) +Chars 5039 - 5043 [red.] 0. secs (0.u,0.s) +Chars 5044 - 5053 [red~in~H.] 0. secs (0.u,0.s) +Chars 5054 - 5075 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 5076 - 5087 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5088 - 5109 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 5110 - 5121 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5126 - 5149 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 5150 - 5157 [intros.] 0. secs (0.u,0.s) +Chars 5158 - 5169 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5170 - 5178 [clear~H.] 0. secs (0.u,0.s) +Chars 5179 - 5191 [basic_solve.] 0.001 secs (0.001u,0.s) +Chars 5196 - 5197 [+] 0. secs (0.u,0.s) +Chars 5198 - 5203 [left.] 0. secs (0.u,0.s) +Chars 5204 - 5213 [exists~a.] 0. secs (0.u,0.s) +Chars 5214 - 5219 [auto.] 0. secs (0.u,0.s) +Chars 5224 - 5225 [+] 0. secs (0.u,0.s) +Chars 5226 - 5232 [right.] 0. secs (0.u,0.s) +Chars 5233 - 5238 [auto.] 0. secs (0.u,0.s) +Chars 5241 - 5242 [-] 0. secs (0.u,0.s) +Chars 5243 - 5247 [red.] 0. secs (0.u,0.s) +Chars 5248 - 5257 [red~in~H.] 0. secs (0.u,0.s) +Chars 5258 - 5279 [destruct~w~as~[w~Hw].] 0.001 secs (0.001u,0.s) +Chars 5280 - 5291 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5292 - 5313 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 5314 - 5325 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5330 - 5353 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 5354 - 5365 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5366 - 5373 [intros.] 0. secs (0.u,0.s) +Chars 5374 - 5386 [basic_solve.] 0. secs (0.u,0.s) +Chars 5391 - 5392 [+] 0. secs (0.u,0.s) +Chars 5393 - 5398 [left.] 0. secs (0.u,0.s) +Chars 5399 - 5408 [exists~a.] 0. secs (0.u,0.s) +Chars 5409 - 5414 [auto.] 0. secs (0.u,0.s) +Chars 5419 - 5420 [+] 0. secs (0.u,0.s) +Chars 5421 - 5427 [right.] 0. secs (0.u,0.s) +Chars 5428 - 5440 [split;~auto.] 0. secs (0.u,0.s) +Chars 5441 - 5447 [right.] 0. secs (0.u,0.s) +Chars 5448 - 5484 [split;~try~auto~using~spin_inf...] 0. secs (0.u,0.s) +Chars 5485 - 5489 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5490 - 5506 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 5509 - 5534 [intros~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 5535 - 5567 [unfold~pointwise_relation~in~Hk.] 0. secs (0.u,0.s) +Chars 5570 - 5581 [repeat~red.] 0. secs (0.u,0.s) +Chars 5582 - 5736 [unfold~bind_del,~_bind_del;~sp...] 0.007 secs (0.007u,0.s) +Chars 5739 - 5740 [-] 0. secs (0.u,0.s) +Chars 5741 - 5755 [rewrite~<-~Hw.] 0.001 secs (0.001u,0.s) +Chars 5756 - 5792 [eapply~Hw1;~try~apply~H;~simpl...] 0. secs (0.u,0.s) +Chars 5793 - 5800 [intros.] 0. secs (0.u,0.s) +Chars 5805 - 5858 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.001 secs (0.001u,0.s) +Chars 5863 - 5868 [left.] 0. secs (0.u,0.s) +Chars 5869 - 5878 [exists~a.] 0. secs (0.u,0.s) +Chars 5879 - 5891 [split;~auto.] 0. secs (0.u,0.s) +Chars 5896 - 5914 [specialize~(Hk~a).] 0. secs (0.u,0.s) +Chars 5915 - 6054 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.001 secs (0.001u,0.s) +Chars 6059 - 6068 [apply~Hk.] 0. secs (0.u,0.s) +Chars 6069 - 6074 [auto.] 0. secs (0.u,0.s) +Chars 6077 - 6078 [-] 0. secs (0.u,0.s) +Chars 6079 - 6090 [rewrite~Hw.] 0.002 secs (0.002u,0.s) +Chars 6091 - 6127 [eapply~Hw2;~try~apply~H;~simpl...] 0. secs (0.u,0.s) +Chars 6128 - 6135 [intros.] 0. secs (0.u,0.s) +Chars 6140 - 6193 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.001 secs (0.001u,0.s) +Chars 6198 - 6203 [left.] 0. secs (0.u,0.s) +Chars 6204 - 6213 [exists~a.] 0. secs (0.u,0.s) +Chars 6214 - 6226 [split;~auto.] 0. secs (0.u,0.s) +Chars 6231 - 6249 [specialize~(Hk~a).] 0. secs (0.u,0.s) +Chars 6250 - 6389 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.001 secs (0.001u,0.s) +Chars 6394 - 6403 [apply~Hk.] 0. secs (0.u,0.s) +Chars 6404 - 6409 [auto.] 0. secs (0.u,0.s) +Chars 6410 - 6414 [Qed.] 0.01 secs (0.009u,0.s) +Chars 6416 - 6521 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) +Chars 6523 - 6582 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) +Chars 6583 - 6589 [Proof.] 0. secs (0.u,0.s) +Chars 6592 - 6604 [constructor.] 0. secs (0.u,0.s) +Chars 6607 - 6608 [-] 0. secs (0.u,0.s) +Chars 6609 - 6616 [intros.] 0. secs (0.u,0.s) +Chars 6617 - 6628 [repeat~red.] 0. secs (0.u,0.s) +Chars 6629 - 6636 [intros.] 0. secs (0.u,0.s) +Chars 6637 - 6648 [destruct~w.] 0. secs (0.u,0.s) +Chars 6649 - 6654 [auto.] 0. secs (0.u,0.s) +Chars 6657 - 6658 [-] 0. secs (0.u,0.s) +Chars 6659 - 6666 [intros.] 0. secs (0.u,0.s) +Chars 6667 - 6679 [destruct~w1.] 0. secs (0.u,0.s) +Chars 6680 - 6692 [destruct~w2.] 0. secs (0.u,0.s) +Chars 6693 - 6705 [destruct~w3.] 0. secs (0.u,0.s) +Chars 6706 - 6712 [intro.] 0. secs (0.u,0.s) +Chars 6713 - 6724 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6729 - 6747 [specialize~(H~p2).] 0. secs (0.u,0.s) +Chars 6748 - 6767 [specialize~(H0~p2).] 0. secs (0.u,0.s) +Chars 6768 - 6779 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6780 - 6787 [intros.] 0. secs (0.u,0.s) +Chars 6788 - 6793 [auto.] 0. secs (0.u,0.s) +Chars 6796 - 6797 [-] 0. secs (0.u,0.s) +Chars 6798 - 6802 [red.] 0. secs (0.u,0.s) +Chars 6803 - 6810 [intros.] 0. secs (0.u,0.s) +Chars 6811 - 6822 [repeat~red.] 0. secs (0.u,0.s) +Chars 6823 - 6827 [cbn.] 0. secs (0.u,0.s) +Chars 6828 - 6852 [destruct~w1~as~[w1~Hw1].] 0. secs (0.u,0.s) +Chars 6853 - 6877 [destruct~w2~as~[w2~Hw2].] 0. secs (0.u,0.s) +Chars 6882 - 6889 [intros.] 0. secs (0.u,0.s) +Chars 6890 - 6901 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6902 - 6910 [apply~H.] 0. secs (0.u,0.s) +Chars 6911 - 6922 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6923 - 6948 [eapply~Hw2;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 6949 - 6960 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6961 - 6968 [intros.] 0. secs (0.u,0.s) +Chars 6973 - 6985 [basic_solve.] 0. secs (0.u,0.s) +Chars 6990 - 6991 [+] 0. secs (0.u,0.s) +Chars 6992 - 6997 [left.] 0. secs (0.u,0.s) +Chars 6998 - 7007 [exists~a.] 0. secs (0.u,0.s) +Chars 7008 - 7020 [split;~auto.] 0. secs (0.u,0.s) +Chars 7021 - 7030 [apply~H0.] 0. secs (0.u,0.s) +Chars 7031 - 7036 [auto.] 0. secs (0.u,0.s) +Chars 7041 - 7042 [+] 0. secs (0.u,0.s) +Chars 7043 - 7049 [right.] 0. secs (0.u,0.s) +Chars 7050 - 7055 [auto.] 0. secs (0.u,0.s) +Chars 7056 - 7060 [Qed.] 0.006 secs (0.005u,0.s) +Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.001 secs (0.001u,0.s) +Chars 7153 - 7224 [#[global]~Instance~DelaySpecOb...] 0. secs (0.u,0.s) +Chars 7226 - 7310 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) +Chars 7311 - 7317 [Proof.] 0. secs (0.u,0.s) +Chars 7320 - 7332 [constructor.] 0. secs (0.u,0.s) +Chars 7335 - 7336 [-] 0. secs (0.u,0.s) +Chars 7337 - 7348 [repeat~red.] 0. secs (0.u,0.s) +Chars 7349 - 7353 [cbn.] 0. secs (0.u,0.s) +Chars 7354 - 7360 [tauto.] 0. secs (0.u,0.s) +Chars 7363 - 7364 [-] 0. secs (0.u,0.s) +Chars 7365 - 7376 [repeat~red.] 0. secs (0.u,0.s) +Chars 7377 - 7381 [cbn.] 0. secs (0.u,0.s) +Chars 7382 - 7409 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) +Chars 7414 - 7415 [+] 0. secs (0.u,0.s) +Chars 7416 - 7459 [destruct~(eutt_reta_or_div~m);...] 0. secs (0.u,0.s) +Chars 7466 - 7467 [*] 0. secs (0.u,0.s) +Chars 7468 - 7473 [left.] 0. secs (0.u,0.s) +Chars 7474 - 7483 [exists~a.] 0. secs (0.u,0.s) +Chars 7484 - 7496 [split;~auto.] 0. secs (0.u,0.s) +Chars 7497 - 7518 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7519 - 7530 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7531 - 7554 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) +Chars 7563 - 7577 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 7578 - 7604 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7605 - 7617 [reflexivity.] 0. secs (0.u,0.s) +Chars 7624 - 7625 [*] 0. secs (0.u,0.s) +Chars 7626 - 7632 [right.] 0. secs (0.u,0.s) +Chars 7633 - 7645 [split;~auto.] 0. secs (0.u,0.s) +Chars 7646 - 7672 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 7673 - 7694 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7695 - 7718 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) +Chars 7727 - 7738 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7739 - 7755 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 7760 - 7761 [+] 0. secs (0.u,0.s) +Chars 7762 - 7783 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7784 - 7795 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7796 - 7820 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 7821 - 7834 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 7835 - 7861 [setoid_rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 7862 - 7874 [reflexivity.] 0. secs (0.u,0.s) +Chars 7879 - 7880 [+] 0. secs (0.u,0.s) +Chars 7881 - 7906 [apply~div_spin_eutt~in~H.] 0. secs (0.u,0.s) +Chars 7907 - 7928 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7929 - 7940 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7941 - 7965 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 7966 - 7976 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 7983 - 7992 [symmetry.] 0. secs (0.u,0.s) +Chars 7993 - 8009 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 8010 - 8014 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8016 - 8127 [Definition~iter_arrow_rel~{A~B...] 0. secs (0.u,0.s) +Chars 8129 - 8211 [Notation~"x~=[~g~]=>~y"~:=~(it...] 0. secs (0.u,0.s) +Chars 8213 - 8360 [Lemma~iter_inl_spin~:~~~forall...] 0. secs (0.u,0.s) +Chars 8361 - 8367 [Proof.] 0. secs (0.u,0.s) +Chars 8370 - 8383 [intros~A~B~g.] 0. secs (0.u,0.s) +Chars 8384 - 8396 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 8397 - 8404 [intros.] 0. secs (0.u,0.s) +Chars 8405 - 8448 [red~in~H;~sinv~H;~try~apply~no...] 0.008 secs (0.008u,0.s) +Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.031 secs (0.031u,0.s) +Chars 8485 - 8515 [unfold~iter_arrow_rel~in~Hrel.] 0. secs (0.u,0.s) +Chars 8516 - 8546 [apply~eutt_ret_euttge~in~Hrel.] 0. secs (0.u,0.s) +Chars 8549 - 8562 [rewrite~Hrel.] 0.004 secs (0.004u,0.s) +Chars 8563 - 8582 [rewrite~bind_ret_l.] 0.01 secs (0.01u,0.s) +Chars 8583 - 8603 [rewrite~unfold_spin.] 0.011 secs (0.011u,0.s) +Chars 8604 - 8609 [etau.] 0.001 secs (0.u,0.s) +Chars 8610 - 8614 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8759 - 8973 [Lemma~iter_wf_converge~:~~~for...] 0. secs (0.u,0.s) +Chars 8974 - 8980 [Proof.] 0. secs (0.u,0.s) +Chars 8983 - 9008 [intros~A~B~g~a~Hwf~Hconv.] 0. secs (0.u,0.s) +Chars 9011 - 9025 [induction~Hwf.] 0. secs (0.u,0.s) +Chars 9028 - 9029 [-] 0. secs (0.u,0.s) +Chars 9030 - 9051 [specialize~(Hconv~a).] 0. secs (0.u,0.s) +Chars 9052 - 9088 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) +Chars 9093 - 9094 [+] 0. secs (0.u,0.s) +Chars 9095 - 9103 [exfalso.] 0. secs (0.u,0.s) +Chars 9104 - 9117 [apply~(H~a').] 0. secs (0.u,0.s) +Chars 9118 - 9123 [auto.] 0. secs (0.u,0.s) +Chars 9128 - 9129 [+] 0. secs (0.u,0.s) +Chars 9130 - 9139 [exists~b.] 0. secs (0.u,0.s) +Chars 9140 - 9160 [rewrite~unfold_iter.] 0. secs (0.u,0.s) +Chars 9161 - 9174 [rewrite~Hret.] 0.001 secs (0.001u,0.s) +Chars 9175 - 9194 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 9201 - 9213 [reflexivity.] 0. secs (0.u,0.s) +Chars 9216 - 9217 [-] 0. secs (0.u,0.s) +Chars 9218 - 9239 [specialize~(Hconv~a).] 0. secs (0.u,0.s) +Chars 9240 - 9276 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) +Chars 9281 - 9282 [+] 0. secs (0.u,0.s) +Chars 9283 - 9309 [apply~H0~in~Hret~as~Hret'.] 0. secs (0.u,0.s) +Chars 9310 - 9338 [destruct~Hret'~as~[b~Hret'].] 0. secs (0.u,0.s) +Chars 9339 - 9348 [exists~b.] 0. secs (0.u,0.s) +Chars 9355 - 9375 [rewrite~unfold_iter.] 0. secs (0.u,0.s) +Chars 9376 - 9389 [rewrite~Hret.] 0.001 secs (0.001u,0.s) +Chars 9390 - 9409 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 9410 - 9427 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 9428 - 9433 [auto.] 0. secs (0.u,0.s) +Chars 9438 - 9439 [+] 0. secs (0.u,0.s) +Chars 9440 - 9449 [exists~b.] 0. secs (0.u,0.s) +Chars 9450 - 9470 [rewrite~unfold_iter.] 0. secs (0.u,0.s) +Chars 9471 - 9484 [rewrite~Hret.] 0.001 secs (0.001u,0.s) +Chars 9485 - 9504 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 9511 - 9523 [reflexivity.] 0. secs (0.u,0.s) +Chars 9524 - 9528 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0. secs (0.u,0.s) +Chars 9682 - 9863 [Definition~iter_lift~{A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 9865 - 9940 [Notation~"q~-+>~p"~:=~(loop_in...] 0. secs (0.u,0.s) +Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0. secs (0.u,0.s) +Chars 10289 - 10295 [Proof.] 0. secs (0.u,0.s) +Chars 10298 - 10305 [intros.] 0. secs (0.u,0.s) +Chars 10306 - 10333 [unfold~loop_invar_imp~in~*.] 0. secs (0.u,0.s) +Chars 10336 - 10365 [set~(rg~:=~iter_arrow_rel~g).] 0. secs (0.u,0.s) +Chars 10368 - 10395 [destruct~(classic_wf~rg~a).] 0. secs (0.u,0.s) +Chars 10398 - 10399 [-] 0. secs (0.u,0.s) +Chars 10400 - 10405 [left.] 0. secs (0.u,0.s) +Chars 10406 - 10419 [induction~H2.] 0. secs (0.u,0.s) +Chars 10424 - 10425 [+] 0. secs (0.u,0.s) +Chars 10426 - 10458 [unfold~rg,~iter_arrow_rel~in~H2.] 0. secs (0.u,0.s) +Chars 10459 - 10506 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) +Chars 10513 - 10514 [*] 0. secs (0.u,0.s) +Chars 10515 - 10530 [symmetry~in~H3.] 0. secs (0.u,0.s) +Chars 10531 - 10546 [apply~H2~in~H3.] 0. secs (0.u,0.s) +Chars 10547 - 10561 [contradiction.] 0. secs (0.u,0.s) +Chars 10568 - 10569 [*] 0. secs (0.u,0.s) +Chars 10570 - 10578 [apply~H.] 0. secs (0.u,0.s) +Chars 10579 - 10583 [cbn.] 0. secs (0.u,0.s) +Chars 10584 - 10608 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.005 secs (0.005u,0.s) +Chars 10651 - 10665 [rewrite~<-~H3.] 0.002 secs (0.002u,0.s) +Chars 10674 - 10707 [repeat~setoid_rewrite~bind_ret_l.] 0.01 secs (0.01u,0.s) +Chars 10708 - 10720 [reflexivity.] 0. secs (0.u,0.s) +Chars 10727 - 10728 [*] 0. secs (0.u,0.s) +Chars 10729 - 10755 [apply~div_spin_eutt~in~H3.] 0. secs (0.u,0.s) +Chars 10756 - 10764 [apply~H.] 0. secs (0.u,0.s) +Chars 10765 - 10769 [cbn.] 0. secs (0.u,0.s) +Chars 10778 - 10802 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 10803 - 10814 [rewrite~H3.] 0. secs (0.u,0.s) +Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) +Chars 10851 - 10862 [rewrite~H3.] 0.002 secs (0.002u,0.s) +Chars 10871 - 10880 [symmetry.] 0. secs (0.u,0.s) +Chars 10881 - 10909 [setoid_rewrite~~<-~spin_bind.] 0.003 secs (0.003u,0.s) +Chars 10910 - 10926 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 10931 - 10932 [+] 0. secs (0.u,0.s) +Chars 10933 - 10948 [unfold~rg~in~*.] 0. secs (0.u,0.s) +Chars 10955 - 11002 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) +Chars 11009 - 11010 [*] 0. secs (0.u,0.s) +Chars 11011 - 11021 [cbn~in~H4.] 0. secs (0.u,0.s) +Chars 11022 - 11071 [rewrite~unfold_iter,~<-~H4,~bi...] 0.006 secs (0.006u,0.s) +Chars 11080 - 11089 [apply~H3.] 0. secs (0.u,0.s) +Chars 11098 - 11100 [--] 0. secs (0.u,0.s) +Chars 11101 - 11105 [red.] 0. secs (0.u,0.s) +Chars 11106 - 11127 [symmetry;~assumption.] 0. secs (0.u,0.s) +Chars 11136 - 11138 [--] 0. secs (0.u,0.s) +Chars 11139 - 11162 [unfold~iter_lift~in~H1.] 0. secs (0.u,0.s) +Chars 11163 - 11188 [specialize~(H1~(g~a)~H0).] 0. secs (0.u,0.s) +Chars 11200 - 11224 [eapply~Hq;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 11225 - 11229 [cbn.] 0. secs (0.u,0.s) +Chars 11230 - 11244 [rewrite~<-~H4.] 0.002 secs (0.002u,0.s) +Chars 11245 - 11271 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 11283 - 11295 [reflexivity.] 0. secs (0.u,0.s) +Chars 11302 - 11303 [*] 0. secs (0.u,0.s) +Chars 11304 - 11314 [cbn~in~H4.] 0. secs (0.u,0.s) +Chars 11315 - 11354 [rewrite~unfold_iter,~<-~H4,~bi...] 0.005 secs (0.005u,0.s) +Chars 11363 - 11371 [apply~H.] 0. secs (0.u,0.s) +Chars 11372 - 11376 [cbn.] 0. secs (0.u,0.s) +Chars 11377 - 11396 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 11397 - 11414 [eapply~Hq;~eauto.] 0. secs (0.u,0.s) +Chars 11421 - 11422 [*] 0. secs (0.u,0.s) +Chars 11423 - 11449 [apply~div_spin_eutt~in~H4.] 0. secs (0.u,0.s) +Chars 11450 - 11458 [apply~H.] 0. secs (0.u,0.s) +Chars 11459 - 11463 [cbn.] 0. secs (0.u,0.s) +Chars 11472 - 11496 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 11497 - 11508 [rewrite~H4.] 0.001 secs (0.001u,0.s) +Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) +Chars 11545 - 11556 [rewrite~H4.] 0.002 secs (0.002u,0.s) +Chars 11557 - 11592 [repeat~setoid_rewrite~~<-~spin...] 0.006 secs (0.006u,0.s) +Chars 11601 - 11613 [reflexivity.] 0. secs (0.u,0.s) +Chars 11616 - 11617 [-] 0. secs (0.u,0.s) +Chars 11618 - 11644 [apply~iter_inl_spin~in~H2.] 0. secs (0.u,0.s) +Chars 11645 - 11651 [right.] 0. secs (0.u,0.s) +Chars 11652 - 11663 [rewrite~H2.] 0.001 secs (0.001u,0.s) +Chars 11664 - 11684 [apply~spin_infinite.] 0. secs (0.u,0.s) +Chars 11685 - 11689 [Qed.] 0.007 secs (0.006u,0.s) diff --git a/extra/Dijkstra/DijkstraMonad.v.timing b/extra/Dijkstra/DijkstraMonad.v.timing new file mode 100644 index 00000000..452119a0 --- /dev/null +++ b/extra/Dijkstra/DijkstraMonad.v.timing @@ -0,0 +1,50 @@ +Chars 113 - 162 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) +Chars 229 - 250 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 252 - 281 [Declare~Scope~dijkstra_scope.] 0. secs (0.u,0.s) +Chars 282 - 325 [Delimit~Scope~dijkstra_scope~w...] 0. secs (0.u,0.s) +Chars 327 - 362 [#[local]~Open~Scope~dijkstra_s...] 0. secs (0.u,0.s) +Chars 363 - 395 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 423 - 495 [Class~OrderM~(M~:~Type~->~Type...] 0. secs (0.u,0.s) +Chars 497 - 526 [Arguments~lem~{M~OrderM~A}.] 0. secs (0.u,0.s) +Chars 528 - 579 [Infix~"<≈"~:=~lem~(~at~level~7...] 0. secs (0.u,0.s) +Chars 581 - 602 [Section~OrderedMonad.] 0. secs (0.u,0.s) +Chars 606 - 633 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 636 - 657 [Context~{Eq~:~Eq1~W}.] 0. secs (0.u,0.s) +Chars 660 - 687 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) +Chars 690 - 726 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) +Chars 729 - 757 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) +Chars 760 - 1086 [Class~OrderedMonad~:={~~~~~~~~...] 0.001 secs (0.001u,0.s) +Chars 1088 - 1105 [End~OrderedMonad.] 0. secs (0.u,0.s) +Chars 1139 - 1157 [Section~SpecMonad.] 0. secs (0.u,0.s) +Chars 1161 - 1188 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 1191 - 1218 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) +Chars 1221 - 1249 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) +Chars 1252 - 1293 [Context~{OrderedMonadW~:~Order...] 0. secs (0.u,0.s) +Chars 1296 - 1408 [Class~SpecMonad~:={~~~~~~~~~~~...] 0. secs (0.u,0.s) +Chars 1412 - 1461 [Infix~"∈"~:=~In~(~at~level~70)...] 0. secs (0.u,0.s) +Chars 1462 - 1476 [End~SpecMonad.] 0.001 secs (0.u,0.s) +Chars 1509 - 1564 [Class~EffectObs~(M~W~:~Type~->...] 0. secs (0.u,0.s) +Chars 1566 - 1592 [Section~EffectObservation.] 0. secs (0.u,0.s) +Chars 1596 - 1625 [Context~(M~W~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 1628 - 1655 [Context~{MMonad~:~Monad~M}.] 0. secs (0.u,0.s) +Chars 1658 - 1685 [Context~{WMonad~:~Monad~W}.] 0. secs (0.u,0.s) +Chars 1688 - 1710 [Context~{EqW~:~Eq1~W}.] 0. secs (0.u,0.s) +Chars 1713 - 1749 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) +Chars 1752 - 1780 [Context~{WOrder~:~OrderM~W}.] 0. secs (0.u,0.s) +Chars 1783 - 1821 [Context~{WOrderLaws~:~OrderedM...] 0. secs (0.u,0.s) +Chars 1824 - 1854 [Context~(Obs~:~EffectObs~M~W).] 0. secs (0.u,0.s) +Chars 1858 - 2077 [Class~MonadMorphism~:={~~~~~~~...] 0.001 secs (0.001u,0.s) +Chars 2079 - 2101 [End~EffectObservation.] 0. secs (0.u,0.s) +Chars 2130 - 2152 [Section~DijkstraMonad.] 0. secs (0.u,0.s) +Chars 2155 - 2184 [Context~(M~W~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 2187 - 2214 [Context~{MMonad~:~Monad~M}.] 0. secs (0.u,0.s) +Chars 2217 - 2244 [Context~{WMonad~:~Monad~W}.] 0. secs (0.u,0.s) +Chars 2247 - 2269 [Context~{EqW~:~Eq1~W}.] 0. secs (0.u,0.s) +Chars 2272 - 2308 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) +Chars 2311 - 2339 [Context~{WOrder~:~OrderM~W}.] 0. secs (0.u,0.s) +Chars 2342 - 2382 [Context~{WOrderLaws~:~OrderedM...] 0. secs (0.u,0.s) +Chars 2385 - 2417 [Context~(Obs~:~EffectObs~M~W).] 0. secs (0.u,0.s) +Chars 2512 - 2595 [Definition~DijkstraMonad~(A~:~...] 0. secs (0.u,0.s) +Chars 2599 - 2684 [Definition~DijkstraProp~(A~:~T...] 0. secs (0.u,0.s) +Chars 2686 - 2704 [End~DijkstraMonad.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/ITreeDijkstra.v.timing b/extra/Dijkstra/ITreeDijkstra.v.timing new file mode 100644 index 00000000..a99836ad --- /dev/null +++ b/extra/Dijkstra/ITreeDijkstra.v.timing @@ -0,0 +1,851 @@ +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 95 - 201 [From~ITree~Require~Import~Axio...] 0.163 secs (0.146u,0.017s) +Chars 203 - 322 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.012u,0.002s) +Chars 324 - 338 [Import~Monads.] 0. secs (0.u,0.s) +Chars 339 - 360 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 362 - 394 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 395 - 431 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) +Chars 435 - 608 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) +Chars 610 - 774 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) +Chars 776 - 901 [#[local]~Tactic~Notation~"coin...] 0. secs (0.u,0.s) +Chars 906 - 928 [Section~ITreeDijkstra.] 0. secs (0.u,0.s) +Chars 932 - 959 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 963 - 1035 [Definition~ITDInput~(A~:~Type)...] 0. secs (0.u,0.s) +Chars 1039 - 1193 [Definition~ITreeSpec~(A~:~Type...] 0. secs (0.u,0.s) +Chars 1197 - 1281 [#[program]~Definition~ret_itre...] 0.002 secs (0.001u,0.s) +Chars 1285 - 1373 [Instance~proper_itree_spec~~{R...] 0. secs (0.u,0.s) +Chars 1376 - 1382 [Proof.] 0. secs (0.u,0.s) +Chars 1387 - 1400 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 1401 - 1422 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 1423 - 1429 [simpl.] 0. secs (0.u,0.s) +Chars 1430 - 1462 [split;~intros;~eapply~Hp;~eauto.] 0.027 secs (0.025u,0.001s) +Chars 1467 - 1484 [now~rewrite~<-~H.] 0.002 secs (0.002u,0.s) +Chars 1487 - 1491 [Qed.] 0. secs (0.u,0.s) +Chars 1495 - 1704 [#[program]~Definition~bind_ex~...] 0.003 secs (0.003u,0.s) +Chars 1707 - 1723 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) +Chars 1737 - 1748 [repeat~red.] 0. secs (0.u,0.s) +Chars 1749 - 1776 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) +Chars 1781 - 1782 [-] 0. secs (0.u,0.s) +Chars 1783 - 1788 [left.] 0. secs (0.u,0.s) +Chars 1789 - 1798 [exists~a.] 0. secs (0.u,0.s) +Chars 1799 - 1815 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) +Chars 1816 - 1821 [auto.] 0. secs (0.u,0.s) +Chars 1826 - 1827 [-] 0. secs (0.u,0.s) +Chars 1828 - 1834 [right.] 0. secs (0.u,0.s) +Chars 1835 - 1853 [rewrite~<-~H~~at~1.] 0.001 secs (0.001u,0.s) +Chars 1854 - 1866 [split;~auto.] 0. secs (0.u,0.s) +Chars 1873 - 1906 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) +Chars 1913 - 1954 [specialize~(all_infinite_euttN...] 0. secs (0.u,0.s) +Chars 1961 - 1968 [intros.] 0. secs (0.u,0.s) +Chars 1975 - 2013 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) +Chars 2020 - 2036 [rewrite~H~in~H0.] 0.001 secs (0.001u,0.s) +Chars 2037 - 2075 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) +Chars 2082 - 2092 [eapply~Hp.] 0. secs (0.u,0.s) +Chars 2100 - 2110 [clear~Ht2.] 0. secs (0.u,0.s) +Chars 2118 - 2132 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 2140 - 2163 [eapply~noret_cast_cast.] 0. secs (0.u,0.s) +Chars 2164 - 2175 [all:~eauto.] 0.001 secs (0.001u,0.s) +Chars 2180 - 2181 [-] 0. secs (0.u,0.s) +Chars 2182 - 2187 [left.] 0. secs (0.u,0.s) +Chars 2188 - 2197 [exists~a.] 0. secs (0.u,0.s) +Chars 2198 - 2210 [split;~auto.] 0. secs (0.u,0.s) +Chars 2211 - 2221 [rewrite~H.] 0.047 secs (0.047u,0.s) +Chars 2222 - 2227 [auto.] 0. secs (0.u,0.s) +Chars 2232 - 2233 [-] 0. secs (0.u,0.s) +Chars 2234 - 2240 [right.] 0. secs (0.u,0.s) +Chars 2241 - 2256 [rewrite~H~~at~1.] 0.001 secs (0.001u,0.s) +Chars 2257 - 2269 [split;~auto.] 0. secs (0.u,0.s) +Chars 2276 - 2309 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) +Chars 2316 - 2326 [eapply~Hp.] 0. secs (0.u,0.s) +Chars 2334 - 2348 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 2356 - 2365 [symmetry.] 0. secs (0.u,0.s) +Chars 2373 - 2403 [eapply~noret_cast_cast;~eauto.] 0. secs (0.u,0.s) +Chars 2410 - 2415 [auto.] 0. secs (0.u,0.s) +Chars 2419 - 2423 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2426 - 2442 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 2445 - 2451 [Proof.] 0. secs (0.u,0.s) +Chars 2456 - 2477 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 2478 - 2489 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2491 - 2515 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 2520 - 2527 [intros.] 0. secs (0.u,0.s) +Chars 2528 - 2539 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2544 - 2565 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 2566 - 2590 [destruct~p'~as~[p'~Hp'].] 0. secs (0.u,0.s) +Chars 2591 - 2602 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2607 - 2619 [basic_solve.] 0. secs (0.u,0.s) +Chars 2624 - 2625 [-] 0. secs (0.u,0.s) +Chars 2626 - 2631 [left.] 0. secs (0.u,0.s) +Chars 2632 - 2641 [exists~a.] 0. secs (0.u,0.s) +Chars 2642 - 2654 [split;~auto.] 0. secs (0.u,0.s) +Chars 2655 - 2682 [destruct~(g~a)~as~[ga~Hga].] 0. secs (0.u,0.s) +Chars 2683 - 2694 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2701 - 2726 [eapply~Hga;~try~apply~H2.] 0. secs (0.u,0.s) +Chars 2733 - 2739 [simpl.] 0. secs (0.u,0.s) +Chars 2740 - 2745 [auto.] 0. secs (0.u,0.s) +Chars 2750 - 2751 [-] 0. secs (0.u,0.s) +Chars 2752 - 2758 [right.] 0. secs (0.u,0.s) +Chars 2759 - 2771 [split;~auto.] 0. secs (0.u,0.s) +Chars 2774 - 2778 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2782 - 2873 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0. secs (0.u,0.s) +Chars 2877 - 2942 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) +Chars 2945 - 2951 [Proof.] 0. secs (0.u,0.s) +Chars 2956 - 2997 [constructor;~red;~intros;~red;...] 0.002 secs (0.002u,0.s) +Chars 3002 - 3003 [-] 0. secs (0.u,0.s) +Chars 3004 - 3013 [red~in~H.] 0. secs (0.u,0.s) +Chars 3014 - 3021 [intros.] 0. secs (0.u,0.s) +Chars 3022 - 3032 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 3033 - 3045 [reflexivity.] 0. secs (0.u,0.s) +Chars 3050 - 3051 [-] 0. secs (0.u,0.s) +Chars 3052 - 3059 [intros.] 0. secs (0.u,0.s) +Chars 3060 - 3069 [red~in~H.] 0. secs (0.u,0.s) +Chars 3070 - 3080 [red~in~H0.] 0. secs (0.u,0.s) +Chars 3081 - 3091 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 3092 - 3103 [rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 3110 - 3122 [reflexivity.] 0. secs (0.u,0.s) +Chars 3125 - 3129 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3133 - 3237 [Instance~ItreeSpecMonad~:~(Mon...] 0. secs (0.u,0.s) +Chars 6181 - 6241 [Inductive~Ev~:~Type~:=~~~~~ev~...] 0. secs (0.u,0.s) +Chars 6245 - 6332 [Variant~streamF~{A~:~Type}~{F~...] 0. secs (0.u,0.s) +Chars 6336 - 6416 [CoInductive~stream~(A~:~Type)~...] 0. secs (0.u,0.s) +Chars 6420 - 6466 [Notation~stream'~A:=~(@streamF...] 0. secs (0.u,0.s) +Chars 6470 - 6529 [Definition~Nil~{A}~:~stream~A~...] 0. secs (0.u,0.s) +Chars 6533 - 6607 [Definition~Cons~{A}~(h~:~A)~(t...] 0. secs (0.u,0.s) +Chars 6611 - 6680 [Definition~observe_stream~{A}~...] 0. secs (0.u,0.s) +Chars 6684 - 6828 [Variant~is_infF~{A~:~Type}~(F~...] 0. secs (0.u,0.s) +Chars 6832 - 6866 [Hint~Constructors~is_infF:~itree.] 0. secs (0.u,0.s) +Chars 6870 - 6987 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) +Chars 6991 - 7049 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) +Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) +Chars 7065 - 7073 [intros~!.] 0. secs (0.u,0.s) +Chars 7079 - 7086 [inv~H0.] 0. secs (0.u,0.s) +Chars 7087 - 7091 [red.] 0. secs (0.u,0.s) +Chars 7092 - 7106 [rewrite~<-~H1.] 0. secs (0.u,0.s) +Chars 7107 - 7120 [econstructor.] 0. secs (0.u,0.s) +Chars 7125 - 7137 [now~apply~H.] 0. secs (0.u,0.s) +Chars 7142 - 7146 [Qed.] 0. secs (0.u,0.s) +Chars 7151 - 7253 [Definition~is_inf_mon~A~:~mon~...] 0. secs (0.u,0.s) +Chars 7258 - 7310 [Definition~is_inf~{A~:~Type}~:...] 0. secs (0.u,0.s) +Chars 7314 - 7487 [CoFixpoint~app'~{A~:~Type}~(os...] 0. secs (0.u,0.s) +Chars 7491 - 7588 [Definition~app~{A~:~Type}~(sl~...] 0. secs (0.u,0.s) +Chars 7592 - 7817 [Variant~bisimF~{A~:~Type}~(F~:...] 0. secs (0.u,0.s) +Chars 7821 - 7854 [Hint~Constructors~bisimF:~itree.] 0. secs (0.u,0.s) +Chars 7858 - 8022 [Definition~bisim_~{A~:~Type}~(...] 0. secs (0.u,0.s) +Chars 8026 - 8082 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) +Chars 8086 - 8092 [Proof.] 0. secs (0.u,0.s) +Chars 8098 - 8106 [intros~!.] 0. secs (0.u,0.s) +Chars 8107 - 8111 [red.] 0. secs (0.u,0.s) +Chars 8112 - 8119 [inv~H0.] 0.006 secs (0.005u,0.s) +Chars 8125 - 8126 [-] 0. secs (0.u,0.s) +Chars 8127 - 8139 [constructor.] 0. secs (0.u,0.s) +Chars 8145 - 8146 [-] 0. secs (0.u,0.s) +Chars 8147 - 8159 [constructor.] 0. secs (0.u,0.s) +Chars 8160 - 8172 [now~apply~H.] 0. secs (0.u,0.s) +Chars 8176 - 8180 [Qed.] 0. secs (0.u,0.s) +Chars 8187 - 8301 [Definition~bisim_mon~{A}~:~mon...] 0. secs (0.u,0.s) +Chars 8306 - 8356 [Definition~bisim~{A~:~Type}~:=...] 0. secs (0.u,0.s) +Chars 8360 - 8410 [Instance~bisim_equiv~~{A}:~(Eq...] 0. secs (0.u,0.s) +Chars 8413 - 8419 [Proof.] 0. secs (0.u,0.s) +Chars 8424 - 8441 [constructor;~red.] 0. secs (0.u,0.s) +Chars 8446 - 8447 [-] 0. secs (0.u,0.s) +Chars 8448 - 8466 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8467 - 8474 [intros.] 0. secs (0.u,0.s) +Chars 8475 - 8484 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8485 - 8530 [destruct~(observe_stream~x);~a...] 0. secs (0.u,0.s) +Chars 8535 - 8536 [-] 0. secs (0.u,0.s) +Chars 8537 - 8555 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8556 - 8563 [intros.] 0. secs (0.u,0.s) +Chars 8570 - 8579 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8586 - 8620 [red~in~H;~sinv~H;~auto~with~it...] 0.008 secs (0.008u,0.s) +Chars 8625 - 8626 [-] 0. secs (0.u,0.s) +Chars 8627 - 8645 [unfold~bisim~at~3.] 0. secs (0.u,0.s) +Chars 8646 - 8664 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8665 - 8672 [intros.] 0. secs (0.u,0.s) +Chars 8673 - 8682 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8689 - 8743 [red~in~H;~sinv~H;~red~in~H0;~s...] 0.028 secs (0.028u,0.s) +Chars 8750 - 8751 [+] 0. secs (0.u,0.s) +Chars 8752 - 8771 [rewrite~<-~H~in~H3.] 0. secs (0.u,0.s) +Chars 8772 - 8785 [discriminate.] 0. secs (0.u,0.s) +Chars 8792 - 8793 [+] 0. secs (0.u,0.s) +Chars 8794 - 8814 [rewrite~<-~H2~in~H4.] 0. secs (0.u,0.s) +Chars 8815 - 8828 [discriminate.] 0. secs (0.u,0.s) +Chars 8835 - 8836 [+] 0. secs (0.u,0.s) +Chars 8837 - 8856 [rewrite~<-~H2~in~H.] 0. secs (0.u,0.s) +Chars 8857 - 8884 [injection~H;~intros;~subst.] 0. secs (0.u,0.s) +Chars 8893 - 8905 [constructor.] 0. secs (0.u,0.s) +Chars 8906 - 8912 [eauto.] 0. secs (0.u,0.s) +Chars 8916 - 8920 [Qed.] 0.006 secs (0.006u,0.s) +Chars 9025 - 9099 [Instance~proper_bisim_app~~{A}...] 0. secs (0.u,0.s) +Chars 9102 - 9108 [Proof.] 0. secs (0.u,0.s) +Chars 9114 - 9132 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9133 - 9160 [intros~s1~s2~H12~s3~s4~H34.] 0. secs (0.u,0.s) +Chars 9166 - 9175 [cbn;~red.] 0. secs (0.u,0.s) +Chars 9176 - 9187 [unfold~app.] 0. secs (0.u,0.s) +Chars 9188 - 9197 [sinv~H12.] 0.008 secs (0.008u,0.s) +Chars 9202 - 9203 [-] 0. secs (0.u,0.s) +Chars 9204 - 9210 [simpl.] 0. secs (0.u,0.s) +Chars 9211 - 9223 [destruct~s3.] 0. secs (0.u,0.s) +Chars 9224 - 9236 [destruct~s4.] 0. secs (0.u,0.s) +Chars 9237 - 9282 [sinv~H34;~simpl~in~*;~subst;~a...] 0.011 secs (0.01u,0.s) +Chars 9289 - 9301 [constructor.] 0. secs (0.u,0.s) +Chars 9302 - 9316 [now~do~2~step.] 0.001 secs (0.001u,0.s) +Chars 9322 - 9323 [-] 0. secs (0.u,0.s) +Chars 9324 - 9328 [cbn.] 0. secs (0.u,0.s) +Chars 9329 - 9341 [constructor.] 0. secs (0.u,0.s) +Chars 9342 - 9358 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 9361 - 9365 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9369 - 9420 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 9426 - 9503 [Instance~proper_bisim_inf_imp~...] 0. secs (0.u,0.s) +Chars 9506 - 9512 [Proof.] 0. secs (0.u,0.s) +Chars 9517 - 9535 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9540 - 9559 [intros~s1~s2~H12~H.] 0. secs (0.u,0.s) +Chars 9560 - 9565 [icbn.] 0. secs (0.u,0.s) +Chars 9566 - 9576 [step~in~H.] 0. secs (0.u,0.s) +Chars 9582 - 9594 [step~in~H12.] 0. secs (0.u,0.s) +Chars 9595 - 9603 [inv~H12.] 0.004 secs (0.004u,0.s) +Chars 9609 - 9610 [-] 0. secs (0.u,0.s) +Chars 9611 - 9630 [rewrite~<-~H1~in~H.] 0. secs (0.u,0.s) +Chars 9631 - 9637 [inv~H.] 0. secs (0.u,0.s) +Chars 9642 - 9643 [-] 0. secs (0.u,0.s) +Chars 9644 - 9663 [inversion~H;~subst.] 0. secs (0.u,0.s) +Chars 9671 - 9683 [constructor.] 0. secs (0.u,0.s) +Chars 9684 - 9702 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 9709 - 9729 [rewrite~<-~H3~in~H0.] 0. secs (0.u,0.s) +Chars 9730 - 9737 [inv~H0.] 0. secs (0.u,0.s) +Chars 9740 - 9744 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9748 - 9815 [Instance~proper_bisim_inf~~{A}...] 0. secs (0.u,0.s) +Chars 9818 - 9824 [Proof.] 0. secs (0.u,0.s) +Chars 9829 - 9873 [split;~try~apply~proper_bisim_...] 0. secs (0.u,0.s) +Chars 9878 - 9896 [apply~bisim_equiv.] 0. secs (0.u,0.s) +Chars 9897 - 9902 [auto.] 0. secs (0.u,0.s) +Chars 9905 - 9909 [Qed.] 0. secs (0.u,0.s) +Chars 9913 - 10001 [Lemma~app_inf~:~~~forall~(A~:~...] 0. secs (0.u,0.s) +Chars 10004 - 10010 [Proof.] 0. secs (0.u,0.s) +Chars 10015 - 10024 [intros~A.] 0. secs (0.u,0.s) +Chars 10025 - 10043 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 10044 - 10062 [intros~s1~s2~Hinf.] 0. secs (0.u,0.s) +Chars 10063 - 10068 [icbn.] 0. secs (0.u,0.s) +Chars 10069 - 10080 [unfold~app.] 0. secs (0.u,0.s) +Chars 10085 - 10095 [sinv~Hinf.] 0.003 secs (0.003u,0.s) +Chars 10100 - 10104 [cbn.] 0. secs (0.u,0.s) +Chars 10105 - 10117 [constructor.] 0. secs (0.u,0.s) +Chars 10118 - 10134 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 10137 - 10141 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10145 - 10372 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) +Chars 10376 - 10417 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) +Chars 10421 - 10570 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) +Chars 10574 - 10668 [Lemma~forall_stream_mono~(A~:~...] 0. secs (0.u,0.s) +Chars 10671 - 10677 [Proof.] 0. secs (0.u,0.s) +Chars 10682 - 10693 [repeat~red.] 0. secs (0.u,0.s) +Chars 10694 - 10701 [intros.] 0. secs (0.u,0.s) +Chars 10702 - 10712 [red~in~H0.] 0. secs (0.u,0.s) +Chars 10713 - 10742 [destruct~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 10747 - 10765 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 10766 - 10778 [now~apply~H.] 0. secs (0.u,0.s) +Chars 10782 - 10786 [Qed.] 0. secs (0.u,0.s) +Chars 10790 - 10861 [Definition~forall_stream_mon~A...] 0. secs (0.u,0.s) +Chars 10866 - 10949 [Definition~forall_stream~{A~:~...] 0. secs (0.u,0.s) +Chars 10953 - 11236 [Inductive~inf_manyF~{A~:~Type}...] 0. secs (0.u,0.s) +Chars 11240 - 11276 [Hint~Constructors~inf_manyF:~i...] 0. secs (0.u,0.s) +Chars 11280 - 11419 [Definition~inf_many_~{A~:~Type...] 0. secs (0.u,0.s) +Chars 11423 - 11507 [Lemma~inf_many_mono~(A~:~Type)...] 0. secs (0.u,0.s) +Chars 11510 - 11516 [Proof.] 0. secs (0.u,0.s) +Chars 11521 - 11532 [repeat~red.] 0. secs (0.u,0.s) +Chars 11533 - 11540 [intros.] 0. secs (0.u,0.s) +Chars 11541 - 11551 [red~in~H0.] 0. secs (0.u,0.s) +Chars 11552 - 11582 [induction~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 11587 - 11610 [apply~cons_found;~auto.] 0. secs (0.u,0.s) +Chars 11611 - 11623 [now~apply~H.] 0. secs (0.u,0.s) +Chars 11627 - 11631 [Qed.] 0. secs (0.u,0.s) +Chars 11635 - 11696 [Definition~inf_many_mon~A~P~:=...] 0. secs (0.u,0.s) +Chars 11701 - 11774 [Definition~inf_many~{A~:~Type}...] 0. secs (0.u,0.s) +Chars 11778 - 11880 [Lemma~inf_many_inf~:~~~forall~...] 0. secs (0.u,0.s) +Chars 11883 - 11889 [Proof.] 0. secs (0.u,0.s) +Chars 11894 - 11905 [intros~A~P.] 0. secs (0.u,0.s) +Chars 11906 - 11924 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 11925 - 11938 [intros~s~Him.] 0. secs (0.u,0.s) +Chars 11943 - 11955 [step~in~Him.] 0. secs (0.u,0.s) +Chars 11956 - 11961 [icbn.] 0. secs (0.u,0.s) +Chars 11967 - 11998 [induction~Him;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 12003 - 12015 [constructor.] 0. secs (0.u,0.s) +Chars 12016 - 12026 [apply~CIH.] 0. secs (0.u,0.s) +Chars 12027 - 12036 [now~step.] 0. secs (0.u,0.s) +Chars 12040 - 12044 [Qed.] 0. secs (0.u,0.s) +Chars 12048 - 12173 [Lemma~inf_and_forall~:~~~foral...] 0. secs (0.u,0.s) +Chars 12176 - 12182 [Proof.] 0. secs (0.u,0.s) +Chars 12187 - 12198 [intros~A~P.] 0. secs (0.u,0.s) +Chars 12199 - 12217 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 12218 - 12240 [intros~s~Hinf~Hforall.] 0. secs (0.u,0.s) +Chars 12245 - 12250 [icbn.] 0. secs (0.u,0.s) +Chars 12251 - 12264 [step~in~Hinf.] 0. secs (0.u,0.s) +Chars 12265 - 12281 [step~in~Hforall.] 0. secs (0.u,0.s) +Chars 12286 - 12295 [inv~Hinf.] 0.001 secs (0.001u,0.s) +Chars 12300 - 12312 [inv~Hforall.] 0.002 secs (0.002u,0.s) +Chars 12317 - 12318 [-] 0. secs (0.u,0.s) +Chars 12319 - 12338 [rewrite~<-~H~in~H2.] 0. secs (0.u,0.s) +Chars 12339 - 12352 [discriminate.] 0.001 secs (0.001u,0.s) +Chars 12357 - 12358 [-] 0. secs (0.u,0.s) +Chars 12359 - 12378 [rewrite~<-~H~in~H1.] 0. secs (0.u,0.s) +Chars 12379 - 12386 [inv~H1.] 0.001 secs (0.001u,0.s) +Chars 12393 - 12416 [apply~cons_found;~auto.] 0. secs (0.u,0.s) +Chars 12419 - 12423 [Qed.] 0.002 secs (0.002u,0.s) +Chars 12534 - 12621 [Definition~rel_eventless~{E1}~...] 0. secs (0.u,0.s) +Chars 12624 - 13283 [Inductive~eqitEF~{E1~E2~:~Type...] 0.002 secs (0.002u,0.s) +Chars 13287 - 13320 [Hint~Constructors~eqitEF:~itree.] 0. secs (0.u,0.s) +Chars 13324 - 13558 [Definition~eqitE_~(E1~E2~:~Typ...] 0. secs (0.u,0.s) +Chars 13562 - 13645 [Lemma~eqitE_mono~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) +Chars 13650 - 13656 [Proof.] 0. secs (0.u,0.s) +Chars 13663 - 13674 [repeat~red.] 0. secs (0.u,0.s) +Chars 13675 - 13682 [intros.] 0. secs (0.u,0.s) +Chars 13683 - 13700 [rename~x~into~t1.] 0. secs (0.u,0.s) +Chars 13701 - 13718 [rename~y~into~t2.] 0. secs (0.u,0.s) +Chars 13725 - 13756 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 13763 - 13775 [constructor.] 0. secs (0.u,0.s) +Chars 13776 - 13788 [now~apply~H.] 0. secs (0.u,0.s) +Chars 13794 - 13798 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13802 - 13882 [Definition~eqitE_mon~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 13886 - 13957 [Definition~eqitE~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) +Chars 13961 - 14038 [Definition~equivE~{E1}~{E2}~{R...] 0. secs (0.u,0.s) +Chars 14042 - 14256 [Variant~eventlessF~{E~:~Type~-...] 0. secs (0.u,0.s) +Chars 14260 - 14297 [Hint~Constructors~eventlessF:~...] 0. secs (0.u,0.s) +Chars 14301 - 14438 [Definition~eventless_~{E~:~Typ...] 0. secs (0.u,0.s) +Chars 14442 - 14473 [Hint~Unfold~eventless_:~itree.] 0. secs (0.u,0.s) +Chars 14479 - 14549 [Lemma~eventless_mono~{E1}~{R}~...] 0. secs (0.u,0.s) +Chars 14552 - 14558 [Proof.] 0. secs (0.u,0.s) +Chars 14563 - 14574 [repeat~red.] 0. secs (0.u,0.s) +Chars 14575 - 14582 [intros.] 0. secs (0.u,0.s) +Chars 14583 - 14593 [red~in~H0.] 0. secs (0.u,0.s) +Chars 14594 - 14624 [inversion~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 14629 - 14641 [constructor.] 0. secs (0.u,0.s) +Chars 14642 - 14654 [now~apply~H.] 0. secs (0.u,0.s) +Chars 14659 - 14663 [Qed.] 0. secs (0.u,0.s) +Chars 14667 - 14735 [Definition~eventless_mon~{E1}~...] 0. secs (0.u,0.s) +Chars 14739 - 14842 [Definition~eventless~{E~:~Type...] 0. secs (0.u,0.s) +Chars 14846 - 14937 [Instance~proper_eventless_imp~...] 0. secs (0.u,0.s) +Chars 14940 - 14946 [Proof.] 0. secs (0.u,0.s) +Chars 14951 - 14962 [repeat~red.] 0. secs (0.u,0.s) +Chars 14963 - 14981 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 14986 - 15009 [intros~t1~t2~Heutt~Hev.] 0. secs (0.u,0.s) +Chars 15014 - 15028 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 15029 - 15034 [icbn.] 0. secs (0.u,0.s) +Chars 15039 - 15060 [pose~proof~Hev~as~Hev'.] 0. secs (0.u,0.s) +Chars 15061 - 15073 [step~in~Hev.] 0. secs (0.u,0.s) +Chars 15078 - 15128 [dependent~induction~Heutt;~sub...] 0.017 secs (0.017u,0.s) +Chars 15133 - 15134 [-] 0. secs (0.u,0.s) +Chars 15135 - 15143 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15144 - 15160 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 15165 - 15166 [-] 0. secs (0.u,0.s) +Chars 15167 - 15175 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15176 - 15188 [constructor.] 0. secs (0.u,0.s) +Chars 15189 - 15207 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 15214 - 15222 [inv~Hev.] 0. secs (0.u,0.s) +Chars 15228 - 15229 [-] 0. secs (0.u,0.s) +Chars 15230 - 15238 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15239 - 15247 [inv~Hev.] 0. secs (0.u,0.s) +Chars 15253 - 15254 [-] 0. secs (0.u,0.s) +Chars 15255 - 15263 [simpobs.] 0. secs (0.u,0.s) +Chars 15264 - 15272 [inv~Hev.] 0.004 secs (0.004u,0.s) +Chars 15279 - 15315 [eapply~IHHeutt;~try~apply~H0;~...] 0.001 secs (0.001u,0.s) +Chars 15322 - 15337 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 15343 - 15344 [-] 0. secs (0.u,0.s) +Chars 15345 - 15353 [simpobs.] 0. secs (0.u,0.s) +Chars 15354 - 15366 [constructor.] 0. secs (0.u,0.s) +Chars 15367 - 15383 [unstep~in~Heutt.] 0. secs (0.u,0.s) +Chars 15384 - 15413 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 15416 - 15420 [Qed.] 0.015 secs (0.014u,0.s) +Chars 15424 - 15502 [Instance~proper_eventless~~{E1...] 0. secs (0.u,0.s) +Chars 15505 - 15511 [Proof.] 0. secs (0.u,0.s) +Chars 15516 - 15535 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 15536 - 15554 [split;~intros~Hev.] 0. secs (0.u,0.s) +Chars 15559 - 15560 [-] 0. secs (0.u,0.s) +Chars 15561 - 15578 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) +Chars 15579 - 15584 [auto.] 0. secs (0.u,0.s) +Chars 15589 - 15590 [-] 0. secs (0.u,0.s) +Chars 15591 - 15609 [symmetry~in~Heutt.] 0. secs (0.u,0.s) +Chars 15610 - 15627 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) +Chars 15628 - 15633 [auto.] 0. secs (0.u,0.s) +Chars 15636 - 15640 [Qed.] 0. secs (0.u,0.s) +Chars 15644 - 15843 [Lemma~eutt_eventless~:~~~foral...] 0. secs (0.u,0.s) +Chars 15846 - 15852 [Proof.] 0. secs (0.u,0.s) +Chars 15857 - 15876 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 15877 - 15895 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 15896 - 15903 [intros.] 0. secs (0.u,0.s) +Chars 15908 - 15919 [step~in~H0.] 0. secs (0.u,0.s) +Chars 15920 - 15925 [icbn.] 0. secs (0.u,0.s) +Chars 15926 - 15955 [dependent~induction~H0;~auto.] 0.014 secs (0.014u,0.s) +Chars 15960 - 15961 [-] 0. secs (0.u,0.s) +Chars 15962 - 15970 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15971 - 15976 [eret.] 0. secs (0.u,0.s) +Chars 15982 - 15983 [-] 0. secs (0.u,0.s) +Chars 15984 - 15992 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15999 - 16011 [constructor.] 0. secs (0.u,0.s) +Chars 16020 - 16053 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 16054 - 16087 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 16094 - 16102 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 16110 - 16129 [assert~(t1~≈~m1).] 0. secs (0.u,0.s) +Chars 16130 - 16131 [{] 0. secs (0.u,0.s) +Chars 16132 - 16144 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 16145 - 16162 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 16163 - 16175 [reflexivity.] 0. secs (0.u,0.s) +Chars 16176 - 16177 [}] 0. secs (0.u,0.s) +Chars 16184 - 16203 [assert~(t2~≈~m2).] 0. secs (0.u,0.s) +Chars 16204 - 16205 [{] 0. secs (0.u,0.s) +Chars 16206 - 16218 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 16219 - 16236 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 16237 - 16249 [reflexivity.] 0. secs (0.u,0.s) +Chars 16250 - 16251 [}] 0. secs (0.u,0.s) +Chars 16258 - 16274 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 16281 - 16299 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 16305 - 16306 [-] 0. secs (0.u,0.s) +Chars 16307 - 16315 [exfalso.] 0. secs (0.u,0.s) +Chars 16316 - 16335 [step~in~H;~simpobs.] 0.001 secs (0.001u,0.s) +Chars 16336 - 16342 [inv~H.] 0. secs (0.u,0.s) +Chars 16347 - 16348 [-] 0. secs (0.u,0.s) +Chars 16349 - 16357 [simpobs.] 0. secs (0.u,0.s) +Chars 16358 - 16370 [constructor.] 0. secs (0.u,0.s) +Chars 16377 - 16410 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 16411 - 16419 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 16427 - 16434 [sinv~H.] 0.014 secs (0.014u,0.s) +Chars 16442 - 16443 [+] 0. secs (0.u,0.s) +Chars 16444 - 16458 [simpobs;~easy.] 0.002 secs (0.002u,0.s) +Chars 16467 - 16468 [+] 0. secs (0.u,0.s) +Chars 16469 - 16491 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 16492 - 16512 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 16513 - 16518 [step.] 0. secs (0.u,0.s) +Chars 16526 - 16543 [rewrite~x,~<-~H1.] 0. secs (0.u,0.s) +Chars 16544 - 16560 [now~constructor.] 0. secs (0.u,0.s) +Chars 16566 - 16567 [-] 0. secs (0.u,0.s) +Chars 16568 - 16576 [simpobs.] 0. secs (0.u,0.s) +Chars 16577 - 16589 [constructor.] 0. secs (0.u,0.s) +Chars 16590 - 16612 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 16615 - 16619 [Qed.] 0.012 secs (0.012u,0.s) +Chars 16623 - 16736 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) +Chars 16739 - 16745 [Proof.] 0. secs (0.u,0.s) +Chars 16750 - 16759 [intros~R.] 0. secs (0.u,0.s) +Chars 16760 - 16778 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 16779 - 16786 [intros.] 0. secs (0.u,0.s) +Chars 16793 - 16800 [sinv~H.] 0.022 secs (0.022u,0.s) +Chars 16805 - 16806 [-] 0. secs (0.u,0.s) +Chars 16807 - 16838 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 16839 - 16847 [simpobs.] 0. secs (0.u,0.s) +Chars 16855 - 16872 [rewrite~Ht~in~H0.] 0.001 secs (0.001u,0.s) +Chars 16873 - 16881 [sinv~H0.] 0. secs (0.u,0.s) +Chars 16886 - 16887 [-] 0. secs (0.u,0.s) +Chars 16888 - 16893 [icbn.] 0. secs (0.u,0.s) +Chars 16894 - 16902 [simpobs.] 0. secs (0.u,0.s) +Chars 16910 - 16920 [red~in~H0.] 0. secs (0.u,0.s) +Chars 16921 - 16949 [step~in~H0;~simpobs;~inv~H0.] 0.009 secs (0.009u,0.s) +Chars 16957 - 16969 [constructor.] 0. secs (0.u,0.s) +Chars 16976 - 16992 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 16996 - 17000 [Qed.] 0.006 secs (0.006u,0.s) +Chars 17004 - 17122 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) +Chars 17125 - 17131 [Proof.] 0. secs (0.u,0.s) +Chars 17136 - 17149 [intros~R~t~r.] 0. secs (0.u,0.s) +Chars 17154 - 17161 [intros.] 0. secs (0.u,0.s) +Chars 17162 - 17181 [induction~H0;~auto.] 0. secs (0.u,0.s) +Chars 17182 - 17198 [rewrite~H0~in~H.] 0. secs (0.u,0.s) +Chars 17203 - 17210 [sinv~H.] 0. secs (0.u,0.s) +Chars 17213 - 17217 [Qed.] 0. secs (0.u,0.s) +Chars 17221 - 17416 [Lemma~eqitE_imp_eutt~:~~~foral...] 0. secs (0.u,0.s) +Chars 17419 - 17425 [Proof.] 0. secs (0.u,0.s) +Chars 17430 - 17449 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 17450 - 17468 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 17473 - 17490 [intros~t1~t2~Heq.] 0. secs (0.u,0.s) +Chars 17491 - 17496 [icbn.] 0. secs (0.u,0.s) +Chars 17497 - 17509 [step~in~Heq.] 0. secs (0.u,0.s) +Chars 17515 - 17546 [induction~Heq;~auto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 17549 - 17553 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17557 - 17807 [Lemma~eqitE_imp_eventlessl~:~~...] 0. secs (0.u,0.s) +Chars 17810 - 17816 [Proof.] 0. secs (0.u,0.s) +Chars 17821 - 17843 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 17844 - 17862 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 17867 - 17874 [intros.] 0. secs (0.u,0.s) +Chars 17875 - 17885 [step~in~H.] 0. secs (0.u,0.s) +Chars 17891 - 17896 [icbn.] 0. secs (0.u,0.s) +Chars 17897 - 17927 [induction~H;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 17932 - 17944 [constructor.] 0. secs (0.u,0.s) +Chars 17945 - 17985 [apply~(CIH~t0~(ITreeDefinition...] 0. secs (0.u,0.s) +Chars 17986 - 17995 [now~step.] 0. secs (0.u,0.s) +Chars 17999 - 18003 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18007 - 18257 [Lemma~eqitE_imp_eventlessr~:~~...] 0. secs (0.u,0.s) +Chars 18260 - 18266 [Proof.] 0. secs (0.u,0.s) +Chars 18271 - 18293 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 18294 - 18312 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 18317 - 18324 [intros.] 0. secs (0.u,0.s) +Chars 18325 - 18335 [step~in~H.] 0. secs (0.u,0.s) +Chars 18340 - 18345 [icbn.] 0. secs (0.u,0.s) +Chars 18346 - 18376 [induction~H;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 18381 - 18393 [constructor.] 0. secs (0.u,0.s) +Chars 18394 - 18434 [apply~(CIH~(ITreeDefinition.go...] 0. secs (0.u,0.s) +Chars 18435 - 18444 [now~step.] 0. secs (0.u,0.s) +Chars 18448 - 18452 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18456 - 18553 [Lemma~eventless_spin~:~~~foral...] 0. secs (0.u,0.s) +Chars 18556 - 18562 [Proof.] 0. secs (0.u,0.s) +Chars 18567 - 18579 [intros~E1~R.] 0. secs (0.u,0.s) +Chars 18580 - 18598 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 18599 - 18604 [icbn.] 0. secs (0.u,0.s) +Chars 18605 - 18609 [cbn.] 0. secs (0.u,0.s) +Chars 18610 - 18622 [constructor.] 0. secs (0.u,0.s) +Chars 18627 - 18632 [auto.] 0. secs (0.u,0.s) +Chars 18635 - 18639 [Qed.] 0. secs (0.u,0.s) +Chars 18643 - 18874 [CoFixpoint~remove_events'~{E1~...] 0. secs (0.u,0.s) +Chars 18878 - 18977 [Definition~remove_events~{E1}~...] 0. secs (0.u,0.s) +Chars 18981 - 19177 [Lemma~remove_events_eventless_...] 0. secs (0.u,0.s) +Chars 19180 - 19186 [Proof.] 0. secs (0.u,0.s) +Chars 19191 - 19206 [intros~E1~E2~A.] 0. secs (0.u,0.s) +Chars 19207 - 19225 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19226 - 19233 [intros.] 0. secs (0.u,0.s) +Chars 19238 - 19243 [icbn.] 0. secs (0.u,0.s) +Chars 19244 - 19251 [sinv~H.] 0.005 secs (0.004u,0.s) +Chars 19256 - 19257 [-] 0. secs (0.u,0.s) +Chars 19258 - 19262 [cbn.] 0. secs (0.u,0.s) +Chars 19263 - 19284 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 19285 - 19299 [rewrite~<-~H1.] 0. secs (0.u,0.s) +Chars 19300 - 19304 [cbn.] 0. secs (0.u,0.s) +Chars 19305 - 19321 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 19326 - 19327 [-] 0. secs (0.u,0.s) +Chars 19328 - 19349 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 19350 - 19364 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 19365 - 19369 [cbn.] 0. secs (0.u,0.s) +Chars 19370 - 19382 [constructor.] 0. secs (0.u,0.s) +Chars 19383 - 19393 [apply~CIH.] 0. secs (0.u,0.s) +Chars 19400 - 19405 [auto.] 0. secs (0.u,0.s) +Chars 19408 - 19412 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19416 - 19590 [Lemma~remove_events_eventless~...] 0. secs (0.u,0.s) +Chars 19593 - 19599 [Proof.] 0. secs (0.u,0.s) +Chars 19604 - 19619 [intros~E1~E2~A.] 0. secs (0.u,0.s) +Chars 19620 - 19638 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19639 - 19646 [intros.] 0. secs (0.u,0.s) +Chars 19651 - 19656 [icbn.] 0. secs (0.u,0.s) +Chars 19657 - 19678 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 19679 - 19710 [destruct~(observe~t)~eqn:Heq.] 0. secs (0.u,0.s) +Chars 19715 - 19716 [-] 0. secs (0.u,0.s) +Chars 19717 - 19721 [cbn.] 0. secs (0.u,0.s) +Chars 19722 - 19734 [constructor.] 0. secs (0.u,0.s) +Chars 19739 - 19740 [-] 0. secs (0.u,0.s) +Chars 19741 - 19745 [cbn.] 0. secs (0.u,0.s) +Chars 19746 - 19758 [constructor.] 0. secs (0.u,0.s) +Chars 19759 - 19769 [apply~CIH.] 0. secs (0.u,0.s) +Chars 19774 - 19775 [-] 0. secs (0.u,0.s) +Chars 19776 - 19780 [cbn.] 0. secs (0.u,0.s) +Chars 19781 - 19793 [constructor.] 0. secs (0.u,0.s) +Chars 19794 - 19804 [do~2~step.] 0. secs (0.u,0.s) +Chars 19805 - 19826 [apply~eventless_spin.] 0. secs (0.u,0.s) +Chars 19830 - 19834 [Qed.] 0.001 secs (0.001u,0.s) +Chars 19838 - 19913 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) +Chars 19916 - 19922 [Proof.] 0. secs (0.u,0.s) +Chars 19927 - 19936 [intros~A.] 0. secs (0.u,0.s) +Chars 19937 - 19955 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19956 - 19963 [intros.] 0. secs (0.u,0.s) +Chars 19968 - 19973 [icbn.] 0. secs (0.u,0.s) +Chars 19974 - 20012 [destruct~(observe~d);~auto~wit...] 0. secs (0.u,0.s) +Chars 20017 - 20028 [destruct~e.] 0. secs (0.u,0.s) +Chars 20031 - 20035 [Qed.] 0. secs (0.u,0.s) +Chars 20039 - 20238 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 20241 - 20247 [Proof.] 0. secs (0.u,0.s) +Chars 20252 - 20274 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 20280 - 20298 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 20299 - 20306 [intros.] 0. secs (0.u,0.s) +Chars 20307 - 20312 [icbn.] 0. secs (0.u,0.s) +Chars 20318 - 20325 [intros.] 0. secs (0.u,0.s) +Chars 20330 - 20340 [step~in~H.] 0. secs (0.u,0.s) +Chars 20346 - 20372 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 20378 - 20404 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 20410 - 20437 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 20438 - 20447 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 20453 - 20512 [induction~H;~intros~t1'~t2'~He...] 0.016 secs (0.016u,0.s) +Chars 20517 - 20518 [-] 0. secs (0.u,0.s) +Chars 20519 - 20542 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) +Chars 20543 - 20552 [now~step.] 0.001 secs (0.001u,0.s) +Chars 20559 - 20560 [-] 0. secs (0.u,0.s) +Chars 20561 - 20588 [inv~H;~inv~Heqot1;~simpobs.] 0.031 secs (0.031u,0.s) +Chars 20596 - 20597 [+] 0. secs (0.u,0.s) +Chars 20598 - 20610 [constructor.] 0. secs (0.u,0.s) +Chars 20611 - 20630 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20638 - 20639 [+] 0. secs (0.u,0.s) +Chars 20640 - 20652 [constructor.] 0. secs (0.u,0.s) +Chars 20653 - 20672 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20679 - 20680 [+] 0. secs (0.u,0.s) +Chars 20681 - 20695 [now~do~2~step.] 0.001 secs (0.001u,0.s) +Chars 20701 - 20702 [-] 0. secs (0.u,0.s) +Chars 20703 - 20730 [inv~H;~inv~Heqot2;~simpobs.] 0.03 secs (0.03u,0.s) +Chars 20738 - 20739 [+] 0. secs (0.u,0.s) +Chars 20740 - 20752 [constructor.] 0. secs (0.u,0.s) +Chars 20753 - 20772 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20780 - 20781 [+] 0. secs (0.u,0.s) +Chars 20782 - 20796 [now~do~2~step.] 0.001 secs (0.001u,0.s) +Chars 20804 - 20805 [+] 0. secs (0.u,0.s) +Chars 20806 - 20818 [constructor.] 0. secs (0.u,0.s) +Chars 20819 - 20838 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20842 - 20846 [Qed.] 0.009 secs (0.009u,0.s) +Chars 20852 - 21107 [Lemma~inv_remove_events~:~~~fo...] 0. secs (0.u,0.s) +Chars 21110 - 21116 [Proof.] 0. secs (0.u,0.s) +Chars 21121 - 21136 [intros~E1~E2~R.] 0. secs (0.u,0.s) +Chars 21137 - 21155 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 21160 - 21189 [intros~t1~t2~Hev1~Hev2~Heutt.] 0. secs (0.u,0.s) +Chars 21190 - 21195 [icbn.] 0. secs (0.u,0.s) +Chars 21200 - 21214 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 21215 - 21248 [dependent~induction~Heutt;~subst.] 0.025 secs (0.024u,0.s) +Chars 21253 - 21254 [-] 0. secs (0.u,0.s) +Chars 21255 - 21285 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) +Chars 21292 - 21355 [destruct~(observe~t1);~destruc...] 0.003 secs (0.003u,0.s) +Chars 21362 - 21374 [constructor.] 0. secs (0.u,0.s) +Chars 21375 - 21384 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 21385 - 21399 [inv~x0;~inv~x.] 0.001 secs (0.001u,0.s) +Chars 21405 - 21406 [-] 0. secs (0.u,0.s) +Chars 21407 - 21437 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) +Chars 21444 - 21529 [destruct~(observe~t1)~eqn:Heq1...] 0.003 secs (0.003u,0.s) +Chars 21536 - 21537 [+] 0. secs (0.u,0.s) +Chars 21538 - 21547 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 21548 - 21560 [constructor.] 0. secs (0.u,0.s) +Chars 21569 - 21576 [inv~x0.] 0.002 secs (0.002u,0.s) +Chars 21577 - 21583 [inv~x.] 0.002 secs (0.002u,0.s) +Chars 21584 - 21591 [intros.] 0. secs (0.u,0.s) +Chars 21602 - 21618 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 21627 - 21628 [*] 0. secs (0.u,0.s) +Chars 21629 - 21662 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 21663 - 21683 [rewrite~Heq1~in~Ht1.] 0. secs (0.u,0.s) +Chars 21694 - 21712 [assert~(t~≈~t1).] 0. secs (0.u,0.s) +Chars 21723 - 21724 [{] 0. secs (0.u,0.s) +Chars 21725 - 21737 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 21738 - 21755 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 21756 - 21768 [reflexivity.] 0. secs (0.u,0.s) +Chars 21769 - 21770 [}] 0. secs (0.u,0.s) +Chars 21781 - 21791 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 21792 - 21797 [auto.] 0. secs (0.u,0.s) +Chars 21806 - 21807 [*] 0. secs (0.u,0.s) +Chars 21808 - 21841 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 21842 - 21862 [rewrite~Heq2~in~Ht2.] 0. secs (0.u,0.s) +Chars 21873 - 21892 [assert~(t0~≈~t2).] 0. secs (0.u,0.s) +Chars 21903 - 21904 [{] 0. secs (0.u,0.s) +Chars 21905 - 21917 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 21918 - 21935 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 21936 - 21948 [reflexivity.] 0. secs (0.u,0.s) +Chars 21949 - 21950 [}] 0. secs (0.u,0.s) +Chars 21961 - 21971 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 21972 - 21977 [auto.] 0. secs (0.u,0.s) +Chars 21984 - 21985 [+] 0. secs (0.u,0.s) +Chars 21986 - 21996 [sinv~Hev2.] 0.009 secs (0.009u,0.s) +Chars 22005 - 22006 [*] 0. secs (0.u,0.s) +Chars 22007 - 22026 [rewrite~Heq2~in~H0.] 0. secs (0.u,0.s) +Chars 22027 - 22040 [discriminate.] 0. secs (0.u,0.s) +Chars 22049 - 22050 [*] 0. secs (0.u,0.s) +Chars 22051 - 22069 [rewrite~Heq2~in~H.] 0. secs (0.u,0.s) +Chars 22070 - 22083 [discriminate.] 0. secs (0.u,0.s) +Chars 22090 - 22091 [+] 0. secs (0.u,0.s) +Chars 22092 - 22102 [sinv~Hev1.] 0.01 secs (0.01u,0.s) +Chars 22111 - 22112 [*] 0. secs (0.u,0.s) +Chars 22113 - 22132 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) +Chars 22133 - 22146 [discriminate.] 0. secs (0.u,0.s) +Chars 22155 - 22156 [*] 0. secs (0.u,0.s) +Chars 22157 - 22175 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) +Chars 22176 - 22189 [discriminate.] 0. secs (0.u,0.s) +Chars 22196 - 22197 [+] 0. secs (0.u,0.s) +Chars 22198 - 22208 [sinv~Hev1.] 0.009 secs (0.009u,0.s) +Chars 22217 - 22218 [*] 0. secs (0.u,0.s) +Chars 22219 - 22238 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) +Chars 22239 - 22252 [discriminate.] 0. secs (0.u,0.s) +Chars 22261 - 22262 [*] 0. secs (0.u,0.s) +Chars 22263 - 22281 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) +Chars 22282 - 22295 [discriminate.] 0. secs (0.u,0.s) +Chars 22300 - 22301 [-] 0. secs (0.u,0.s) +Chars 22302 - 22328 [unfold~remove_events~in~*.] 0. secs (0.u,0.s) +Chars 22329 - 22376 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) +Chars 22381 - 22382 [-] 0. secs (0.u,0.s) +Chars 22383 - 22409 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) +Chars 22410 - 22470 [destruct~(observe~t1)~eqn:Heq;...] 0.001 secs (0.001u,0.s) +Chars 22477 - 22478 [+] 0. secs (0.u,0.s) +Chars 22479 - 22496 [injection~x~as~x.] 0. secs (0.u,0.s) +Chars 22497 - 22509 [constructor.] 0. secs (0.u,0.s) +Chars 22518 - 22538 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 22547 - 22548 [*] 0. secs (0.u,0.s) +Chars 22549 - 22582 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 22583 - 22602 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) +Chars 22613 - 22631 [assert~(t~≈~t1).] 0. secs (0.u,0.s) +Chars 22642 - 22643 [{] 0. secs (0.u,0.s) +Chars 22644 - 22656 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 22657 - 22674 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 22675 - 22687 [reflexivity.] 0. secs (0.u,0.s) +Chars 22688 - 22689 [}] 0. secs (0.u,0.s) +Chars 22701 - 22712 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 22713 - 22718 [auto.] 0. secs (0.u,0.s) +Chars 22727 - 22728 [*] 0. secs (0.u,0.s) +Chars 22729 - 22750 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 22751 - 22761 [rewrite~x.] 0. secs (0.u,0.s) +Chars 22762 - 22767 [auto.] 0. secs (0.u,0.s) +Chars 22774 - 22775 [+] 0. secs (0.u,0.s) +Chars 22776 - 22784 [exfalso.] 0. secs (0.u,0.s) +Chars 22785 - 22818 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 22819 - 22838 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) +Chars 22847 - 22867 [rewrite~Ht1~in~Hev1.] 0. secs (0.u,0.s) +Chars 22868 - 22878 [sinv~Hev1.] 0. secs (0.u,0.s) +Chars 22883 - 22884 [-] 0. secs (0.u,0.s) +Chars 22885 - 22911 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) +Chars 22912 - 22972 [destruct~(observe~t2)~eqn:Heq;...] 0.001 secs (0.001u,0.s) +Chars 22979 - 22980 [+] 0. secs (0.u,0.s) +Chars 22981 - 22998 [injection~x~as~x.] 0. secs (0.u,0.s) +Chars 22999 - 23011 [constructor.] 0. secs (0.u,0.s) +Chars 23020 - 23040 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 23049 - 23050 [*] 0. secs (0.u,0.s) +Chars 23051 - 23084 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 23085 - 23104 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) +Chars 23115 - 23133 [assert~(t~≈~t2).] 0. secs (0.u,0.s) +Chars 23144 - 23145 [{] 0. secs (0.u,0.s) +Chars 23146 - 23158 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 23159 - 23176 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 23177 - 23189 [reflexivity.] 0. secs (0.u,0.s) +Chars 23190 - 23191 [}] 0. secs (0.u,0.s) +Chars 23202 - 23212 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 23213 - 23218 [auto.] 0. secs (0.u,0.s) +Chars 23227 - 23228 [*] 0. secs (0.u,0.s) +Chars 23229 - 23250 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 23251 - 23261 [rewrite~x.] 0. secs (0.u,0.s) +Chars 23262 - 23267 [auto.] 0. secs (0.u,0.s) +Chars 23274 - 23275 [+] 0. secs (0.u,0.s) +Chars 23276 - 23284 [exfalso.] 0. secs (0.u,0.s) +Chars 23285 - 23318 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 23319 - 23338 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) +Chars 23347 - 23367 [rewrite~Ht2~in~Hev2.] 0. secs (0.u,0.s) +Chars 23368 - 23378 [sinv~Hev2.] 0. secs (0.u,0.s) +Chars 23381 - 23385 [Qed.] 0.034 secs (0.034u,0.s) +Chars 23389 - 23698 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) +Chars 23701 - 23707 [Proof.] 0. secs (0.u,0.s) +Chars 23712 - 23740 [intros~E1~E2~E3~E4~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 23741 - 23759 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 23760 - 23767 [intros.] 0. secs (0.u,0.s) +Chars 23772 - 23782 [step~in~H.] 0. secs (0.u,0.s) +Chars 23783 - 23788 [icbn.] 0. secs (0.u,0.s) +Chars 23789 - 23810 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 23815 - 23849 [induction~H;~cbn;~auto~with~it...] 0.002 secs (0.002u,0.s) +Chars 23854 - 23866 [constructor.] 0. secs (0.u,0.s) +Chars 23867 - 23883 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 23886 - 23890 [Qed.] 0.002 secs (0.002u,0.s) +Chars 23894 - 24093 [Lemma~eqitE_trans~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 24096 - 24102 [Proof.] 0. secs (0.u,0.s) +Chars 24107 - 24144 [intros~E1~E2~E3~R~t1~t2~t3~Ht1...] 0. secs (0.u,0.s) +Chars 24149 - 24177 [assert~(Ht1~:~eventless~t1).] 0. secs (0.u,0.s) +Chars 24182 - 24183 [{] 0. secs (0.u,0.s) +Chars 24184 - 24219 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) +Chars 24220 - 24221 [}] 0. secs (0.u,0.s) +Chars 24226 - 24254 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) +Chars 24259 - 24260 [{] 0. secs (0.u,0.s) +Chars 24261 - 24296 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) +Chars 24297 - 24298 [}] 0. secs (0.u,0.s) +Chars 24303 - 24331 [assert~(Ht3~:~eventless~t3).] 0. secs (0.u,0.s) +Chars 24336 - 24337 [{] 0. secs (0.u,0.s) +Chars 24338 - 24373 [eapply~eqitE_imp_eventlessr;~e...] 0. secs (0.u,0.s) +Chars 24374 - 24375 [}] 0. secs (0.u,0.s) +Chars 24380 - 24410 [apply~inv_remove_events;~auto.] 0. secs (0.u,0.s) +Chars 24415 - 24471 [assert~(remove_events~t1~≈~@re...] 0. secs (0.u,0.s) +Chars 24476 - 24477 [{] 0. secs (0.u,0.s) +Chars 24484 - 24505 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) +Chars 24506 - 24532 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) +Chars 24533 - 24538 [auto.] 0. secs (0.u,0.s) +Chars 24543 - 24544 [}] 0. secs (0.u,0.s) +Chars 24549 - 24605 [assert~(remove_events~t2~≈~@re...] 0. secs (0.u,0.s) +Chars 24610 - 24611 [{] 0. secs (0.u,0.s) +Chars 24618 - 24639 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) +Chars 24640 - 24666 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) +Chars 24667 - 24672 [auto.] 0. secs (0.u,0.s) +Chars 24677 - 24678 [}] 0. secs (0.u,0.s) +Chars 24683 - 24693 [rewrite~H.] 0. secs (0.u,0.s) +Chars 24694 - 24699 [auto.] 0. secs (0.u,0.s) +Chars 24702 - 24706 [Qed.] 0. secs (0.u,0.s) +Chars 24710 - 24870 [Lemma~equivE_sym~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 24873 - 24879 [Proof.] 0. secs (0.u,0.s) +Chars 24884 - 24899 [intros~E1~E2~R.] 0. secs (0.u,0.s) +Chars 24900 - 24918 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 24919 - 24926 [intros.] 0. secs (0.u,0.s) +Chars 24931 - 24941 [step~in~H.] 0. secs (0.u,0.s) +Chars 24942 - 24947 [icbn.] 0. secs (0.u,0.s) +Chars 24953 - 24983 [induction~H;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 24986 - 24990 [Qed.] 0.001 secs (0.001u,0.s) +Chars 24995 - 25106 [Instance~proper_eutt_equivE_im...] 0. secs (0.u,0.s) +Chars 25109 - 25115 [Proof.] 0. secs (0.u,0.s) +Chars 25120 - 25149 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) +Chars 25150 - 25156 [intro.] 0. secs (0.u,0.s) +Chars 25161 - 25200 [apply~eqitE_imp_eventlessl~in~...] 0. secs (0.u,0.s) +Chars 25205 - 25244 [apply~eqitE_imp_eventlessr~in~...] 0. secs (0.u,0.s) +Chars 25249 - 25277 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) +Chars 25282 - 25283 [{] 0. secs (0.u,0.s) +Chars 25284 - 25300 [rewrite~<-~Ht12.] 0.001 secs (0.001u,0.s) +Chars 25301 - 25306 [auto.] 0. secs (0.u,0.s) +Chars 25307 - 25308 [}] 0. secs (0.u,0.s) +Chars 25313 - 25341 [assert~(Ht4~:~eventless~t4).] 0. secs (0.u,0.s) +Chars 25346 - 25347 [{] 0. secs (0.u,0.s) +Chars 25348 - 25364 [rewrite~<-~Ht34.] 0.001 secs (0.001u,0.s) +Chars 25365 - 25370 [auto.] 0. secs (0.u,0.s) +Chars 25371 - 25372 [}] 0. secs (0.u,0.s) +Chars 25377 - 25411 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) +Chars 25416 - 25417 [-] 0. secs (0.u,0.s) +Chars 25418 - 25435 [symmetry~in~Ht12.] 0. secs (0.u,0.s) +Chars 25436 - 25440 [red.] 0. secs (0.u,0.s) +Chars 25441 - 25468 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) +Chars 25473 - 25474 [-] 0. secs (0.u,0.s) +Chars 25475 - 25515 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) +Chars 25522 - 25549 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) +Chars 25552 - 25556 [Qed.] 0. secs (0.u,0.s) +Chars 25560 - 25662 [Instance~proper_eutt_equivE~~{...] 0. secs (0.u,0.s) +Chars 25665 - 25671 [Proof.] 0. secs (0.u,0.s) +Chars 25676 - 25690 [split;~intros.] 0. secs (0.u,0.s) +Chars 25695 - 25696 [-] 0. secs (0.u,0.s) +Chars 25697 - 25710 [rewrite~<-~H.] 0.006 secs (0.006u,0.s) +Chars 25711 - 25725 [rewrite~<-~H0.] 0.009 secs (0.009u,0.s) +Chars 25726 - 25731 [auto.] 0. secs (0.u,0.s) +Chars 25736 - 25737 [-] 0. secs (0.u,0.s) +Chars 25738 - 25752 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 25753 - 25768 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 25775 - 25788 [rewrite~<-~H.] 0.006 secs (0.006u,0.s) +Chars 25789 - 25803 [rewrite~<-~H0.] 0.007 secs (0.007u,0.s) +Chars 25804 - 25809 [auto.] 0. secs (0.u,0.s) +Chars 25812 - 25816 [Qed.] 0.001 secs (0.001u,0.s) +Chars 25923 - 26315 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) +Chars 26319 - 26749 [Variant~itree_includesF~{R~:~T...] 0. secs (0.u,0.s) +Chars 26753 - 26795 [Hint~Constructors~itree_includ...] 0. secs (0.u,0.s) +Chars 26800 - 26874 [Lemma~itree_includes_mono~{R}~...] 0. secs (0.u,0.s) +Chars 26877 - 26883 [Proof.] 0. secs (0.u,0.s) +Chars 26889 - 26902 [repeat~intro.] 0. secs (0.u,0.s) +Chars 26903 - 26934 [induction~H0;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 26940 - 26960 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 26961 - 26973 [now~apply~H.] 0. secs (0.u,0.s) +Chars 26977 - 26981 [Qed.] 0. secs (0.u,0.s) +Chars 26986 - 27058 [Definition~itree_includes_mon~...] 0. secs (0.u,0.s) +Chars 27065 - 27181 [Definition~itree_includes~{R~:...] 0. secs (0.u,0.s) +Chars 27183 - 27201 [End~ITreeDijkstra.] 0.004 secs (0.004u,0.s) +Chars 27203 - 27226 [Section~RetBindCounter.] 0. secs (0.u,0.s) +Chars 27230 - 27284 [Variant~Sound~:~Type~->~Prop~:...] 0. secs (0.u,0.s) +Chars 27691 - 27779 [#[program]~Definition~p~:~ITDI...] 0. secs (0.u,0.s) +Chars 27782 - 27798 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 27803 - 27814 [repeat~red.] 0. secs (0.u,0.s) +Chars 27815 - 27822 [intros.] 0. secs (0.u,0.s) +Chars 27823 - 27846 [split;~rewrite~H;~auto.] 0.011 secs (0.011u,0.s) +Chars 27849 - 27853 [Qed.] 0. secs (0.u,0.s) +Chars 28479 - 28567 [#[program]~Definition~w~:~ITre...] 0.001 secs (0.001u,0.s) +Chars 28746 - 28854 [Lemma~bind_ret_failure~:~~~~~~...] 0. secs (0.u,0.s) +Chars 28857 - 28863 [Proof.] 0. secs (0.u,0.s) +Chars 28868 - 28872 [cbn.] 0. secs (0.u,0.s) +Chars 28873 - 28888 [intros~Hcontra.] 0. secs (0.u,0.s) +Chars 28893 - 28916 [specialize~(Hcontra~p).] 0. secs (0.u,0.s) +Chars 28921 - 28963 [assert~(p~∋~Vis~Ring~(fun~_~=>...] 0. secs (0.u,0.s) +Chars 28968 - 28969 [{] 0. secs (0.u,0.s) +Chars 28976 - 28985 [unfold~p.] 0. secs (0.u,0.s) +Chars 28986 - 28990 [cbn.] 0. secs (0.u,0.s) +Chars 28991 - 29003 [reflexivity.] 0. secs (0.u,0.s) +Chars 29008 - 29009 [}] 0. secs (0.u,0.s) +Chars 29014 - 29033 [apply~Hcontra~in~H.] 0. secs (0.u,0.s) +Chars 29034 - 29048 [clear~Hcontra.] 0. secs (0.u,0.s) +Chars 29049 - 29061 [basic_solve.] 0. secs (0.u,0.s) +Chars 29066 - 29067 [-] 0. secs (0.u,0.s) +Chars 29068 - 29083 [unfold~p~in~H0.] 0. secs (0.u,0.s) +Chars 29084 - 29094 [cbn~in~H0.] 0. secs (0.u,0.s) +Chars 29095 - 29103 [sinv~H0.] 0.001 secs (0.001u,0.s) +Chars 29108 - 29109 [-] 0. secs (0.u,0.s) +Chars 29110 - 29119 [clear~H0.] 0. secs (0.u,0.s) +Chars 29120 - 29158 [sinv~H;~try~apply~all_infinite...] 0.001 secs (0.001u,0.s) +Chars 29159 - 29172 [ddestruction.] 0. secs (0.u,0.s) +Chars 29179 - 29198 [specialize~(H1~tt).] 0. secs (0.u,0.s) +Chars 29199 - 29241 [step~in~H1;~try~apply~all_infi...] 0. secs (0.u,0.s) +Chars 29248 - 29255 [inv~H1.] 0. secs (0.u,0.s) +Chars 29258 - 29262 [Qed.] 0.002 secs (0.002u,0.s) +Chars 29264 - 29283 [End~RetBindCounter.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/IterRel.v.timing b/extra/Dijkstra/IterRel.v.timing new file mode 100644 index 00000000..2e6e9cc5 --- /dev/null +++ b/extra/Dijkstra/IterRel.v.timing @@ -0,0 +1,178 @@ +Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.107 secs (0.095u,0.012s) +Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.002 secs (0.002u,0.s) +Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.06 secs (0.054u,0.006s) +Chars 128 - 149 [Create~HintDb~not_wf.] 0. secs (0.u,0.s) +Chars 151 - 174 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 282 - 298 [Section~IterRel.] 0. secs (0.u,0.s) +Chars 302 - 321 [Context~(A~:~Type).] 0. secs (0.u,0.s) +Chars 324 - 353 [Context~(r~:~A~->~A~->~Prop).] 0. secs (0.u,0.s) +Chars 357 - 463 [Variant~not_wf_F~(F~:~A~->~Pro...] 0. secs (0.u,0.s) +Chars 466 - 502 [Hint~Constructors~not_wf_F:~no...] 0. secs (0.u,0.s) +Chars 506 - 566 [Lemma~not_wf_F_mono~:~Proper~(...] 0. secs (0.u,0.s) +Chars 570 - 576 [Proof.] 0. secs (0.u,0.s) +Chars 581 - 592 [repeat~red.] 0. secs (0.u,0.s) +Chars 593 - 608 [intros;~inv~H0.] 0. secs (0.u,0.s) +Chars 614 - 634 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 635 - 647 [now~apply~H.] 0. secs (0.u,0.s) +Chars 652 - 656 [Qed.] 0. secs (0.u,0.s) +Chars 658 - 734 [Definition~not_wf_F_mon~:=~{|~...] 0. secs (0.u,0.s) +Chars 738 - 797 [Definition~not_wf_from~:~A~->~...] 0. secs (0.u,0.s) +Chars 801 - 950 [Inductive~wf_from~(a~:~A)~:~Pr...] 0. secs (0.u,0.s) +Chars 953 - 988 [Hint~Constructors~wf_from:~not...] 0. secs (0.u,0.s) +Chars 991 - 1077 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) +Chars 1080 - 1086 [Proof.] 0. secs (0.u,0.s) +Chars 1093 - 1111 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 1112 - 1119 [intros.] 0. secs (0.u,0.s) +Chars 1120 - 1179 [destruct~(classic~(exists~a',~...] 0. secs (0.u,0.s) +Chars 1184 - 1185 [-] 0. secs (0.u,0.s) +Chars 1186 - 1216 [destruct~H0~as~[a'~[Hr~Hwf]].] 0. secs (0.u,0.s) +Chars 1217 - 1237 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 1242 - 1243 [-] 0. secs (0.u,0.s) +Chars 1244 - 1287 [assert~(forall~a',~~~r~a~a'~\/...] 0. secs (0.u,0.s) +Chars 1294 - 1295 [{] 0. secs (0.u,0.s) +Chars 1304 - 1311 [intros.] 0. secs (0.u,0.s) +Chars 1320 - 1354 [destruct~(classic~(r~a~a'));~a...] 0. secs (0.u,0.s) +Chars 1355 - 1393 [destruct~(classic~(wf_from~a')...] 0. secs (0.u,0.s) +Chars 1402 - 1410 [exfalso.] 0. secs (0.u,0.s) +Chars 1411 - 1420 [apply~H0.] 0. secs (0.u,0.s) +Chars 1421 - 1431 [exists~a'.] 0. secs (0.u,0.s) +Chars 1432 - 1437 [auto.] 0. secs (0.u,0.s) +Chars 1444 - 1445 [}] 0. secs (0.u,0.s) +Chars 1452 - 1461 [clear~H0.] 0. secs (0.u,0.s) +Chars 1468 - 1476 [exfalso.] 0. secs (0.u,0.s) +Chars 1477 - 1485 [apply~H.] 0. secs (0.u,0.s) +Chars 1486 - 1494 [clear~H.] 0. secs (0.u,0.s) +Chars 1495 - 1506 [apply~step.] 0. secs (0.u,0.s) +Chars 1507 - 1514 [intros.] 0. secs (0.u,0.s) +Chars 1515 - 1550 [destruct~(H1~a');~auto~with~no...] 0.001 secs (0.001u,0.s) +Chars 1553 - 1557 [Qed.] 0. secs (0.u,0.s) +Chars 1561 - 1648 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) +Chars 1655 - 1661 [Proof.] 0. secs (0.u,0.s) +Chars 1668 - 1675 [intros.] 0. secs (0.u,0.s) +Chars 1676 - 1690 [intro~Hcontra.] 0. secs (0.u,0.s) +Chars 1691 - 1707 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 1708 - 1718 [step~in~H.] 0. secs (0.u,0.s) +Chars 1719 - 1731 [inversion~H.] 0. secs (0.u,0.s) +Chars 1732 - 1740 [clear~H.] 0. secs (0.u,0.s) +Chars 1741 - 1765 [generalize~dependent~a'.] 0. secs (0.u,0.s) +Chars 1770 - 1796 [induction~Hcontra;~intros.] 0. secs (0.u,0.s) +Chars 1801 - 1802 [-] 0. secs (0.u,0.s) +Chars 1803 - 1819 [apply~H~in~Hrel.] 0. secs (0.u,0.s) +Chars 1820 - 1825 [auto.] 0. secs (0.u,0.s) +Chars 1830 - 1831 [-] 0. secs (0.u,0.s) +Chars 1832 - 1847 [step~in~Hcorec.] 0. secs (0.u,0.s) +Chars 1848 - 1865 [inversion~Hcorec.] 0. secs (0.u,0.s) +Chars 1866 - 1900 [specialize~(H0~a'~Hrel~a'0~Hre...] 0. secs (0.u,0.s) +Chars 1907 - 1912 [auto.] 0. secs (0.u,0.s) +Chars 1915 - 1919 [Qed.] 0. secs (0.u,0.s) +Chars 1923 - 2008 [Lemma~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) +Chars 2011 - 2017 [Proof.] 0. secs (0.u,0.s) +Chars 2022 - 2102 [split;~try~apply~neg_wf_from_n...] 0. secs (0.u,0.s) +Chars 2105 - 2109 [Qed.] 0. secs (0.u,0.s) +Chars 2113 - 2175 [Lemma~classic_wf~:~forall~a~:~...] 0. secs (0.u,0.s) +Chars 2178 - 2184 [Proof.] 0. secs (0.u,0.s) +Chars 2189 - 2196 [intros.] 0. secs (0.u,0.s) +Chars 2197 - 2234 [destruct~(classic~(wf_from~a))...] 0. secs (0.u,0.s) +Chars 2239 - 2274 [apply~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) +Chars 2275 - 2280 [auto.] 0. secs (0.u,0.s) +Chars 2283 - 2287 [Qed.] 0. secs (0.u,0.s) +Chars 2291 - 2462 [Lemma~intro_not_wf~:~~~forall~...] 0. secs (0.u,0.s) +Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) +Chars 2476 - 2483 [intros.] 0. secs (0.u,0.s) +Chars 2484 - 2507 [generalize~dependent~a.] 0. secs (0.u,0.s) +Chars 2508 - 2527 [unfold~not_wf_from.] 0. secs (0.u,0.s) +Chars 2532 - 2550 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 2556 - 2563 [intros.] 0. secs (0.u,0.s) +Chars 2569 - 2599 [apply~not_wf~with~(a'~:=~f~a).] 0. secs (0.u,0.s) +Chars 2604 - 2605 [-] 0. secs (0.u,0.s) +Chars 2606 - 2620 [auto~using~H1.] 0. secs (0.u,0.s) +Chars 2625 - 2626 [-] 0. secs (0.u,0.s) +Chars 2627 - 2637 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2638 - 2655 [eapply~H0;~eauto.] 0.023 secs (0.021u,0.001s) +Chars 2658 - 2662 [Qed.] 0. secs (0.u,0.s) +Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0. secs (0.u,0.s) +Chars 2855 - 2861 [Proof.] 0. secs (0.u,0.s) +Chars 2866 - 2879 [intros~P~m~a.] 0. secs (0.u,0.s) +Chars 2880 - 2909 [remember~(m~a)~as~ma~eqn:Hma~.] 0. secs (0.u,0.s) +Chars 2910 - 2923 [revert~a~Hma.] 0. secs (0.u,0.s) +Chars 2928 - 2980 [induction~ma~using~lt_wf_ind;~...] 0. secs (0.u,0.s) +Chars 2985 - 3003 [apply~step;~eauto.] 0. secs (0.u,0.s) +Chars 3006 - 3010 [Qed.] 0. secs (0.u,0.s) +Chars 3012 - 3024 [End~IterRel.] 0. secs (0.u,0.s) +Chars 3026 - 3118 [Definition~rel_rev~{A~:~Type}~...] 0. secs (0.u,0.s) +Chars 3189 - 3310 [Lemma~well_found_wf_from~:~~~f...] 0. secs (0.u,0.s) +Chars 3311 - 3317 [Proof.] 0. secs (0.u,0.s) +Chars 3320 - 3337 [intros~A~r~Hwf~a.] 0. secs (0.u,0.s) +Chars 3338 - 3365 [unfold~well_founded~in~Hwf.] 0. secs (0.u,0.s) +Chars 3368 - 3388 [unfold~rel_rev~in~*.] 0. secs (0.u,0.s) +Chars 3389 - 3407 [induction~(Hwf~a).] 0. secs (0.u,0.s) +Chars 3408 - 3419 [apply~step.] 0. secs (0.u,0.s) +Chars 3420 - 3427 [intros.] 0. secs (0.u,0.s) +Chars 3430 - 3445 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 3446 - 3451 [auto.] 0. secs (0.u,0.s) +Chars 3452 - 3456 [Qed.] 0. secs (0.u,0.s) +Chars 3545 - 3675 [Lemma~wf_from_sub_rel~:~~~fora...] 0. secs (0.u,0.s) +Chars 3676 - 3682 [Proof.] 0. secs (0.u,0.s) +Chars 3685 - 3692 [intros.] 0. secs (0.u,0.s) +Chars 3693 - 3706 [induction~H0.] 0. secs (0.u,0.s) +Chars 3709 - 3710 [-] 0. secs (0.u,0.s) +Chars 3711 - 3722 [apply~base.] 0. secs (0.u,0.s) +Chars 3723 - 3741 [intros~a'~Hcontra.] 0. secs (0.u,0.s) +Chars 3742 - 3761 [apply~H~in~Hcontra.] 0. secs (0.u,0.s) +Chars 3762 - 3779 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 3782 - 3783 [-] 0. secs (0.u,0.s) +Chars 3784 - 3795 [apply~step.] 0. secs (0.u,0.s) +Chars 3796 - 3813 [intros~a'~Hr0aa'.] 0. secs (0.u,0.s) +Chars 3814 - 3832 [apply~H~in~Hr0aa'.] 0. secs (0.u,0.s) +Chars 3833 - 3838 [auto.] 0. secs (0.u,0.s) +Chars 3839 - 3843 [Qed.] 0. secs (0.u,0.s) +Chars 3845 - 3915 [Lemma~wf_from_gt~:~forall~n~:~...] 0. secs (0.u,0.s) +Chars 3916 - 3922 [Proof.] 0. secs (0.u,0.s) +Chars 3925 - 3932 [intros.] 0. secs (0.u,0.s) +Chars 3935 - 4007 [enough~(forall~n',~le~n'~n~->~...] 0. secs (0.u,0.s) +Chars 4010 - 4030 [induction~n;~intros.] 0. secs (0.u,0.s) +Chars 4033 - 4034 [-] 0. secs (0.u,0.s) +Chars 4035 - 4060 [assert~(n'~=~0);~try~lia.] 0.001 secs (0.u,0.s) +Chars 4061 - 4067 [subst.] 0. secs (0.u,0.s) +Chars 4068 - 4079 [apply~base.] 0. secs (0.u,0.s) +Chars 4080 - 4087 [intros.] 0. secs (0.u,0.s) +Chars 4088 - 4092 [lia.] 0. secs (0.u,0.s) +Chars 4095 - 4096 [-] 0. secs (0.u,0.s) +Chars 4097 - 4108 [apply~step.] 0. secs (0.u,0.s) +Chars 4109 - 4125 [intros~n''~Hn''.] 0. secs (0.u,0.s) +Chars 4126 - 4153 [assert~(le~n''~n);~try~lia.] 0. secs (0.u,0.s) +Chars 4154 - 4159 [auto.] 0. secs (0.u,0.s) +Chars 4160 - 4164 [Qed.] 0. secs (0.u,0.s) +Chars 4183 - 4312 [Lemma~no_inf_dec_seq_aux~:~~~f...] 0. secs (0.u,0.s) +Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) +Chars 4322 - 4329 [intros.] 0. secs (0.u,0.s) +Chars 4330 - 4375 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) +Chars 4378 - 4391 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4392 - 4397 [auto.] 0. secs (0.u,0.s) +Chars 4398 - 4402 [Qed.] 0. secs (0.u,0.s) +Chars 4587 - 4810 [Lemma~wf_intro_gt~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 4811 - 4817 [Proof.] 0. secs (0.u,0.s) +Chars 4820 - 4851 [intros~A~r~f~inv~a~Hinv~Hgt~Ha.] 0. secs (0.u,0.s) +Chars 4854 - 4875 [remember~(f~a)~as~n0.] 0. secs (0.u,0.s) +Chars 4878 - 4901 [generalize~dependent~a.] 0. secs (0.u,0.s) +Chars 4904 - 4959 [enough~(forall~a,~le~(f~a)~n0~...] 0. secs (0.u,0.s) +Chars 4962 - 4963 [{] 0. secs (0.u,0.s) +Chars 4968 - 4975 [intros.] 0. secs (0.u,0.s) +Chars 4976 - 4984 [apply~H.] 0. secs (0.u,0.s) +Chars 4985 - 4989 [lia.] 0. secs (0.u,0.s) +Chars 4990 - 4995 [auto.] 0. secs (0.u,0.s) +Chars 4998 - 4999 [}] 0. secs (0.u,0.s) +Chars 5002 - 5023 [induction~n0;~intros.] 0. secs (0.u,0.s) +Chars 5026 - 5027 [-] 0. secs (0.u,0.s) +Chars 5028 - 5039 [apply~base.] 0. secs (0.u,0.s) +Chars 5040 - 5066 [assert~(f~a~=~0);~try~lia.] 0. secs (0.u,0.s) +Chars 5071 - 5089 [intros~a'~Hcontra.] 0. secs (0.u,0.s) +Chars 5094 - 5127 [specialize~(Hgt~a~a'~H0~Hcontra).] 0. secs (0.u,0.s) +Chars 5128 - 5132 [lia.] 0. secs (0.u,0.s) +Chars 5135 - 5136 [-] 0. secs (0.u,0.s) +Chars 5137 - 5148 [apply~step.] 0. secs (0.u,0.s) +Chars 5149 - 5163 [intros~a'~Ha'.] 0. secs (0.u,0.s) +Chars 5168 - 5186 [apply~IHn0;~eauto.] 0. secs (0.u,0.s) +Chars 5191 - 5218 [assert~(f~a~>~f~a');~eauto.] 0. secs (0.u,0.s) +Chars 5219 - 5223 [lia.] 0. secs (0.u,0.s) +Chars 5224 - 5228 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/PureITreeBasics.v.timing b/extra/Dijkstra/PureITreeBasics.v.timing new file mode 100644 index 00000000..a9b9ca80 --- /dev/null +++ b/extra/Dijkstra/PureITreeBasics.v.timing @@ -0,0 +1,151 @@ +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.16 secs (0.143u,0.016s) +Chars 182 - 196 [Import~Monads.] 0. secs (0.u,0.s) +Chars 197 - 218 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 219 - 251 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 253 - 276 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 396 - 433 [#[local]~Notation~spin~:=~ITre...] 0. secs (0.u,0.s) +Chars 435 - 487 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) +Chars 489 - 565 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) +Chars 567 - 628 [#[local]~Tactic~Notation~"sinv...] 0. secs (0.u,0.s) +Chars 708 - 814 [Lemma~spin_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 815 - 821 [Proof.] 0. secs (0.u,0.s) +Chars 824 - 831 [intros.] 0. secs (0.u,0.s) +Chars 832 - 844 [coinduction.] 0.002 secs (0.001u,0.s) +Chars 845 - 851 [simpl.] 0. secs (0.u,0.s) +Chars 854 - 870 [now~constructor.] 0. secs (0.u,0.s) +Chars 871 - 875 [Qed.] 0.003 secs (0.002u,0.s) +Chars 1051 - 1206 [Definition~tau_invar~(E~:~Type...] 0. secs (0.u,0.s) +Chars 1382 - 1435 [Notation~resp_eutt~P:=~(Proper...] 0. secs (0.u,0.s) +Chars 1437 - 1619 [Lemma~tau_invar_resp_eutt1~:~~...] 0. secs (0.u,0.s) +Chars 1622 - 1628 [Proof.] 0. secs (0.u,0.s) +Chars 1633 - 1640 [intros.] 0. secs (0.u,0.s) +Chars 1641 - 1658 [unfold~tau_invar.] 0. secs (0.u,0.s) +Chars 1659 - 1735 [split;~intros;~eapply~H;~try~e...] 0.025 secs (0.023u,0.001s) +Chars 1738 - 1742 [Qed.] 0. secs (0.u,0.s) +Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0. secs (0.u,0.s) +Chars 1899 - 1905 [Proof.] 0. secs (0.u,0.s) +Chars 1908 - 1917 [intros~A.] 0. secs (0.u,0.s) +Chars 1918 - 1930 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1931 - 1938 [intros.] 0. secs (0.u,0.s) +Chars 1939 - 1943 [cbn.] 0. secs (0.u,0.s) +Chars 1946 - 1978 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) +Chars 1981 - 1982 [-] 0. secs (0.u,0.s) +Chars 1983 - 2016 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) +Chars 2017 - 2038 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) +Chars 2039 - 2057 [rewrite~Heta~in~H.] 0.001 secs (0.001u,0.s) +Chars 2058 - 2065 [sinv~H.] 0. secs (0.u,0.s) +Chars 2069 - 2070 [-] 0. secs (0.u,0.s) +Chars 2071 - 2083 [constructor.] 0. secs (0.u,0.s) +Chars 2084 - 2094 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2095 - 2128 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) +Chars 2129 - 2150 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) +Chars 2155 - 2177 [assert~(t~≈~Tau~t0).] 0. secs (0.u,0.s) +Chars 2182 - 2183 [+] 0. secs (0.u,0.s) +Chars 2184 - 2197 [rewrite~Heta.] 0. secs (0.u,0.s) +Chars 2198 - 2210 [reflexivity.] 0. secs (0.u,0.s) +Chars 2215 - 2216 [+] 0. secs (0.u,0.s) +Chars 2217 - 2237 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 2238 - 2252 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 2253 - 2258 [auto.] 0. secs (0.u,0.s) +Chars 2261 - 2262 [-] 0. secs (0.u,0.s) +Chars 2263 - 2274 [destruct~e.] 0. secs (0.u,0.s) +Chars 2275 - 2279 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2281 - 2383 [Lemma~eutt_reta_or_div_aux~:~~...] 0. secs (0.u,0.s) +Chars 2384 - 2390 [Proof.] 0. secs (0.u,0.s) +Chars 2393 - 2401 [intro~A.] 0. secs (0.u,0.s) +Chars 2402 - 2437 [unfold~any_infinite,~any_infin...] 0. secs (0.u,0.s) +Chars 2441 - 2459 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 2463 - 2470 [intros.] 0. secs (0.u,0.s) +Chars 2471 - 2503 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) +Chars 2506 - 2507 [-] 0. secs (0.u,0.s) +Chars 2508 - 2516 [exfalso.] 0. secs (0.u,0.s) +Chars 2517 - 2550 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) +Chars 2551 - 2572 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) +Chars 2573 - 2581 [apply~H.] 0. secs (0.u,0.s) +Chars 2586 - 2595 [exists~r.] 0. secs (0.u,0.s) +Chars 2596 - 2609 [rewrite~Heta.] 0. secs (0.u,0.s) +Chars 2610 - 2622 [reflexivity.] 0. secs (0.u,0.s) +Chars 2625 - 2626 [-] 0. secs (0.u,0.s) +Chars 2627 - 2660 [repeat~red;~simpobs;~constructor.] 0. secs (0.u,0.s) +Chars 2661 - 2679 [eapply~CIH;~eauto.] 0.034 secs (0.033u,0.s) +Chars 2680 - 2686 [intro.] 0. secs (0.u,0.s) +Chars 2687 - 2695 [apply~H.] 0. secs (0.u,0.s) +Chars 2700 - 2722 [destruct~H0~as~[a~Ha].] 0. secs (0.u,0.s) +Chars 2723 - 2732 [exists~a.] 0. secs (0.u,0.s) +Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 2765 - 2784 [rewrite~Heqt~in~Ht.] 0. secs (0.u,0.s) +Chars 2789 - 2800 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 2801 - 2818 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 2819 - 2824 [auto.] 0. secs (0.u,0.s) +Chars 2827 - 2828 [-] 0. secs (0.u,0.s) +Chars 2829 - 2840 [destruct~e.] 0. secs (0.u,0.s) +Chars 2841 - 2845 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2984 - 3083 [Lemma~eutt_reta_or_div~:~~~for...] 0. secs (0.u,0.s) +Chars 3084 - 3090 [Proof.] 0. secs (0.u,0.s) +Chars 3093 - 3104 [intros~A~t.] 0. secs (0.u,0.s) +Chars 3106 - 3160 [specialize~(classic~(exists~a,...] 0. secs (0.u,0.s) +Chars 3161 - 3181 [destruct~Hlem;~auto.] 0. secs (0.u,0.s) +Chars 3184 - 3190 [right.] 0. secs (0.u,0.s) +Chars 3191 - 3218 [apply~eutt_reta_or_div_aux.] 0. secs (0.u,0.s) +Chars 3219 - 3224 [auto.] 0. secs (0.u,0.s) +Chars 3225 - 3229 [Qed.] 0. secs (0.u,0.s) +Chars 3231 - 3327 [Lemma~ret_not_div~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 3328 - 3334 [Proof.] 0. secs (0.u,0.s) +Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) +Chars 3345 - 3359 [intro~Hcontra.] 0. secs (0.u,0.s) +Chars 3360 - 3373 [sinv~Hcontra.] 0. secs (0.u,0.s) +Chars 3375 - 3379 [Qed.] 0. secs (0.u,0.s) +Chars 3381 - 3451 [Lemma~not_ret_eutt_spin~:~fora...] 0. secs (0.u,0.s) +Chars 3452 - 3458 [Proof.] 0. secs (0.u,0.s) +Chars 3461 - 3468 [intros.] 0. secs (0.u,0.s) +Chars 3469 - 3483 [intro~Hcontra.] 0. secs (0.u,0.s) +Chars 3484 - 3504 [symmetry~in~Hcontra.] 0. secs (0.u,0.s) +Chars 3505 - 3543 [revert~Hcontra;~apply~no_infin...] 0. secs (0.u,0.s) +Chars 3546 - 3566 [apply~spin_infinite.] 0. secs (0.u,0.s) +Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) +Chars 3573 - 3692 [Lemma~eutt_ret_euttge~:~~~fora...] 0. secs (0.u,0.s) +Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) +Chars 3702 - 3709 [intros.] 0. secs (0.u,0.s) +Chars 3710 - 3733 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 3734 - 3753 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3754 - 3761 [intros.] 0. secs (0.u,0.s) +Chars 3762 - 3769 [sinv~H.] 0.017 secs (0.017u,0.s) +Chars 3773 - 3774 [-] 0. secs (0.u,0.s) +Chars 3775 - 3780 [taul.] 0. secs (0.u,0.s) +Chars 3821 - 3848 [remember~(observe~(Ret~a)).] 0.001 secs (0.001u,0.s) +Chars 3853 - 3877 [induction~REL;~try~easy.] 0.039 secs (0.039u,0.s) +Chars 3883 - 3884 [+] 0. secs (0.u,0.s) +Chars 3885 - 3890 [eret.] 0. secs (0.u,0.s) +Chars 3896 - 3897 [+] 0. secs (0.u,0.s) +Chars 3898 - 3903 [taul.] 0. secs (0.u,0.s) +Chars 3904 - 3920 [now~apply~IHREL.] 0. secs (0.u,0.s) +Chars 3923 - 3927 [Qed.] 0.008 secs (0.008u,0.s) +Chars 3929 - 4012 [Lemma~unfold_spin~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 4013 - 4019 [Proof.] 0. secs (0.u,0.s) +Chars 4022 - 4029 [intros.] 0. secs (0.u,0.s) +Chars 4030 - 4035 [step.] 0.001 secs (0.001u,0.s) +Chars 4036 - 4040 [cbn.] 0. secs (0.u,0.s) +Chars 4041 - 4053 [reflexivity.] 0. secs (0.u,0.s) +Chars 4055 - 4059 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4061 - 4160 [Lemma~burn_eutt_r~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 4161 - 4167 [Proof.] 0. secs (0.u,0.s) +Chars 4170 - 4177 [intros.] 0. secs (0.u,0.s) +Chars 4178 - 4201 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 4202 - 4226 [generalize~dependent~t'.] 0. secs (0.u,0.s) +Chars 4227 - 4260 [induction~n;~intros;~simpl;~auto.] 0. secs (0.u,0.s) +Chars 4263 - 4310 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) +Chars 4313 - 4314 [-] 0. secs (0.u,0.s) +Chars 4315 - 4346 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 4347 - 4365 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) +Chars 4366 - 4380 [rewrite~<-~Ht.] 0. secs (0.u,0.s) +Chars 4381 - 4386 [auto.] 0. secs (0.u,0.s) +Chars 4389 - 4390 [-] 0. secs (0.u,0.s) +Chars 4391 - 4401 [apply~IHn.] 0. secs (0.u,0.s) +Chars 4402 - 4433 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 4434 - 4452 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) +Chars 4453 - 4469 [rewrite~Ht~in~H.] 0.013 secs (0.013u,0.s) +Chars 4474 - 4496 [rewrite~tau_eutt~in~H.] 0.012 secs (0.012u,0.s) +Chars 4497 - 4502 [auto.] 0. secs (0.u,0.s) +Chars 4503 - 4507 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateDelaySpec.v.timing b/extra/Dijkstra/StateDelaySpec.v.timing new file mode 100644 index 00000000..22c06d07 --- /dev/null +++ b/extra/Dijkstra/StateDelaySpec.v.timing @@ -0,0 +1,310 @@ +Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.104 secs (0.092u,0.011s) +Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.044 secs (0.04u,0.003s) +Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.035 secs (0.029u,0.005s) +Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.046 secs (0.041u,0.004s) +Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) +Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.021 secs (0.02u,0.s) +Chars 433 - 469 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) +Chars 615 - 638 [Section~StateDelaySpec.] 0. secs (0.u,0.s) +Chars 642 - 662 [Context~(St~:~Type).] 0. secs (0.u,0.s) +Chars 666 - 719 [Definition~StateDelaySpec~:=~S...] 0. secs (0.u,0.s) +Chars 723 - 786 [Definition~StateDelaySpecOrder...] 0. secs (0.u,0.s) +Chars 790 - 865 [Definition~StateDelaySpecOrder...] 0. secs (0.u,0.s) +Chars 869 - 926 [Definition~StateDelaySpecEq~:=...] 0. secs (0.u,0.s) +Chars 930 - 1001 [Definition~StateDelaySpecMonad...] 0. secs (0.u,0.s) +Chars 1005 - 1050 [Definition~StateDelay~:=~State...] 0. secs (0.u,0.s) +Chars 1054 - 1117 [Definition~StateDelayObs~:=~Ef...] 0. secs (0.u,0.s) +Chars 1121 - 1194 [Definition~StateDelayMonadMorp...] 0. secs (0.u,0.s) +Chars 1198 - 1270 [Definition~PrePost~A~:~Type~:=...] 0. secs (0.u,0.s) +Chars 1274 - 1416 [Definition~PrePostRef~{A~:~Typ...] 0. secs (0.u,0.s) +Chars 1420 - 1575 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) +Chars 1579 - 1671 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) +Chars 1675 - 1907 [Lemma~encode_correct~:~~~foral...] 0. secs (0.u,0.s) +Chars 1910 - 1916 [Proof.] 0. secs (0.u,0.s) +Chars 1921 - 1928 [intros.] 0. secs (0.u,0.s) +Chars 1929 - 1933 [cbn.] 0. secs (0.u,0.s) +Chars 1934 - 1967 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 1972 - 1986 [split;~intros.] 0. secs (0.u,0.s) +Chars 1991 - 1992 [-] 0. secs (0.u,0.s) +Chars 1993 - 2004 [repeat~red.] 0. secs (0.u,0.s) +Chars 2005 - 2011 [simpl.] 0. secs (0.u,0.s) +Chars 2012 - 2019 [intros.] 0. secs (0.u,0.s) +Chars 2020 - 2041 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 2042 - 2054 [simpl~in~H1.] 0. secs (0.u,0.s) +Chars 2055 - 2082 [destruct~H1~as~[Hpre~Himp].] 0. secs (0.u,0.s) +Chars 2089 - 2094 [auto.] 0. secs (0.u,0.s) +Chars 2099 - 2100 [-] 0. secs (0.u,0.s) +Chars 2101 - 2118 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 2119 - 2131 [simpl~in~H0.] 0. secs (0.u,0.s) +Chars 2138 - 2164 [set~(p~:=~exist~_~post~H).] 0. secs (0.u,0.s) +Chars 2165 - 2192 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 2199 - 2208 [apply~H0.] 0. secs (0.u,0.s) +Chars 2209 - 2214 [auto.] 0. secs (0.u,0.s) +Chars 2217 - 2221 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2225 - 2282 [Definition~PrePostPair~A~:~Typ...] 0. secs (0.u,0.s) +Chars 2286 - 2485 [Definition~PrePostPairRef~{A~:...] 0. secs (0.u,0.s) +Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.003 secs (0.003u,0.s) +Chars 2757 - 2773 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 2776 - 2801 [destruct~H0~as~[H0|~H1].] 0. secs (0.u,0.s) +Chars 2804 - 2805 [-] 0. secs (0.u,0.s) +Chars 2806 - 2829 [destruct~H0~as~[Hp~Hr].] 0. secs (0.u,0.s) +Chars 2830 - 2835 [left.] 0. secs (0.u,0.s) +Chars 2836 - 2841 [auto.] 0. secs (0.u,0.s) +Chars 2844 - 2845 [-] 0. secs (0.u,0.s) +Chars 2846 - 2869 [destruct~H1~as~[Hp~Hr].] 0. secs (0.u,0.s) +Chars 2870 - 2876 [right.] 0. secs (0.u,0.s) +Chars 2877 - 2882 [auto.] 0. secs (0.u,0.s) +Chars 2885 - 2889 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2893 - 3236 [Lemma~encode_pair_correct~:~~~...] 0. secs (0.u,0.s) +Chars 3239 - 3245 [Proof.] 0. secs (0.u,0.s) +Chars 3250 - 3257 [intros.] 0. secs (0.u,0.s) +Chars 3258 - 3262 [cbn.] 0. secs (0.u,0.s) +Chars 3263 - 3296 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 3297 - 3311 [split;~intros.] 0. secs (0.u,0.s) +Chars 3316 - 3317 [-] 0. secs (0.u,0.s) +Chars 3318 - 3329 [repeat~red.] 0. secs (0.u,0.s) +Chars 3330 - 3336 [simpl.] 0. secs (0.u,0.s) +Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) +Chars 3345 - 3367 [destruct~p~as~[p~Hrp].] 0. secs (0.u,0.s) +Chars 3374 - 3392 [specialize~(H1~s).] 0. secs (0.u,0.s) +Chars 3393 - 3405 [destruct~H1.] 0. secs (0.u,0.s) +Chars 3412 - 3468 [destruct~H2~as~[[Hs~Hp]|~[Hs~H...] 0. secs (0.u,0.s) +Chars 3473 - 3474 [-] 0. secs (0.u,0.s) +Chars 3475 - 3492 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 3493 - 3504 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 3511 - 3525 [split;~intros.] 0. secs (0.u,0.s) +Chars 3532 - 3533 [+] 0. secs (0.u,0.s) +Chars 3534 - 3561 [set~(p~:=~exist~_~post0~H).] 0. secs (0.u,0.s) +Chars 3562 - 3590 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 3599 - 3608 [apply~H1.] 0. secs (0.u,0.s) +Chars 3609 - 3614 [left.] 0. secs (0.u,0.s) +Chars 3615 - 3627 [split;~auto.] 0. secs (0.u,0.s) +Chars 3634 - 3635 [+] 0. secs (0.u,0.s) +Chars 3636 - 3664 [set~(p~:=~exist~_~post1~H0).] 0. secs (0.u,0.s) +Chars 3665 - 3693 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 3702 - 3711 [apply~H1.] 0. secs (0.u,0.s) +Chars 3712 - 3718 [right.] 0. secs (0.u,0.s) +Chars 3719 - 3731 [split;~auto.] 0. secs (0.u,0.s) +Chars 3734 - 3738 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3742 - 3794 [Definition~PrePostList~A~:~Typ...] 0. secs (0.u,0.s) +Chars 3798 - 3977 [Definition~PrePostListRef~{A~:...] 0. secs (0.u,0.s) +Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) +Chars 4217 - 4233 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4238 - 4258 [induction~H0;~eauto.] 0. secs (0.u,0.s) +Chars 4263 - 4288 [destruct~x~as~[post~pre].] 0. secs (0.u,0.s) +Chars 4289 - 4312 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) +Chars 4313 - 4318 [left.] 0. secs (0.u,0.s) +Chars 4319 - 4324 [auto.] 0. secs (0.u,0.s) +Chars 4327 - 4331 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4336 - 4545 [Lemma~enocde_list_correct~:~~~...] 0. secs (0.u,0.s) +Chars 4548 - 4554 [Proof.] 0. secs (0.u,0.s) +Chars 4559 - 4566 [intros.] 0. secs (0.u,0.s) +Chars 4567 - 4600 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 4601 - 4615 [split;~intros.] 0. secs (0.u,0.s) +Chars 4620 - 4621 [-] 0. secs (0.u,0.s) +Chars 4622 - 4633 [repeat~red.] 0. secs (0.u,0.s) +Chars 4634 - 4641 [intros.] 0. secs (0.u,0.s) +Chars 4642 - 4663 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 4664 - 4674 [red~in~H0.] 0. secs (0.u,0.s) +Chars 4681 - 4710 [specialize~(H0~s)~as~Hrefine.] 0. secs (0.u,0.s) +Chars 4711 - 4736 [unfold~encode_list~in~H1.] 0. secs (0.u,0.s) +Chars 4737 - 4748 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4755 - 4769 [induction~ppl.] 0. secs (0.u,0.s) +Chars 4776 - 4777 [+] 0. secs (0.u,0.s) +Chars 4778 - 4791 [inversion~H1.] 0. secs (0.u,0.s) +Chars 4798 - 4799 [+] 0. secs (0.u,0.s) +Chars 4800 - 4825 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) +Chars 4834 - 4854 [inversion~H1;~subst.] 0.001 secs (0.001u,0.s) +Chars 4863 - 4864 [*] 0. secs (0.u,0.s) +Chars 4865 - 4877 [destruct~H3.] 0. secs (0.u,0.s) +Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) +Chars 4894 - 4932 [assert~(pre~s~->~post~(m~s));~...] 0. secs (0.u,0.s) +Chars 4943 - 4950 [intros.] 0. secs (0.u,0.s) +Chars 4951 - 4982 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) +Chars 4991 - 4992 [*] 0. secs (0.u,0.s) +Chars 4993 - 5011 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 5022 - 5024 [--] 0. secs (0.u,0.s) +Chars 5025 - 5043 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) +Chars 5054 - 5056 [--] 0. secs (0.u,0.s) +Chars 5057 - 5064 [intros.] 0. secs (0.u,0.s) +Chars 5065 - 5084 [specialize~(H0~s0).] 0. secs (0.u,0.s) +Chars 5085 - 5098 [inversion~H0.] 0. secs (0.u,0.s) +Chars 5099 - 5104 [auto.] 0. secs (0.u,0.s) +Chars 5115 - 5117 [--] 0. secs (0.u,0.s) +Chars 5118 - 5136 [specialize~(H0~s).] 0. secs (0.u,0.s) +Chars 5137 - 5150 [inversion~H0.] 0. secs (0.u,0.s) +Chars 5151 - 5156 [auto.] 0. secs (0.u,0.s) +Chars 5161 - 5162 [-] 0. secs (0.u,0.s) +Chars 5163 - 5188 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) +Chars 5189 - 5200 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5201 - 5212 [repeat~red.] 0. secs (0.u,0.s) +Chars 5213 - 5230 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 5231 - 5242 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5243 - 5250 [intros.] 0. secs (0.u,0.s) +Chars 5257 - 5277 [induction~ppl;~auto.] 0. secs (0.u,0.s) +Chars 5284 - 5309 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) +Chars 5310 - 5336 [specialize~(H0~s)~as~Henc.] 0. secs (0.u,0.s) +Chars 5343 - 5375 [assert~(Heutt~:~resp_eutt~post).] 0. secs (0.u,0.s) +Chars 5382 - 5383 [{] 0. secs (0.u,0.s) +Chars 5384 - 5396 [inversion~H.] 0.004 secs (0.003u,0.s) +Chars 5397 - 5402 [auto.] 0. secs (0.u,0.s) +Chars 5403 - 5404 [}] 0. secs (0.u,0.s) +Chars 5411 - 5441 [set~(p~:=~exist~_~post~Heutt).] 0. secs (0.u,0.s) +Chars 5442 - 5471 [specialize~(Henc~p)~as~Hencp.] 0. secs (0.u,0.s) +Chars 5478 - 5498 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 5505 - 5506 [+] 0. secs (0.u,0.s) +Chars 5507 - 5535 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 5536 - 5548 [apply~Hencp.] 0. secs (0.u,0.s) +Chars 5557 - 5562 [left.] 0. secs (0.u,0.s) +Chars 5563 - 5575 [split;~auto.] 0. secs (0.u,0.s) +Chars 5582 - 5583 [+] 0. secs (0.u,0.s) +Chars 5584 - 5602 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 5611 - 5612 [*] 0. secs (0.u,0.s) +Chars 5613 - 5625 [inversion~H.] 0.001 secs (0.001u,0.s) +Chars 5626 - 5631 [auto.] 0. secs (0.u,0.s) +Chars 5640 - 5641 [*] 0. secs (0.u,0.s) +Chars 5642 - 5654 [clear~IHppl.] 0. secs (0.u,0.s) +Chars 5655 - 5662 [intros.] 0. secs (0.u,0.s) +Chars 5663 - 5672 [apply~H0.] 0. secs (0.u,0.s) +Chars 5673 - 5679 [eauto.] 0. secs (0.u,0.s) +Chars 5682 - 5686 [Qed.] 0.008 secs (0.008u,0.s) +Chars 5690 - 5770 [Definition~DynPrePost~A~:~Type...] 0. secs (0.u,0.s) +Chars 5774 - 5916 [Definition~DynPrePostRef~{A~:~...] 0. secs (0.u,0.s) +Chars 5920 - 6081 [#[program]~Definition~encode_d...] 0.002 secs (0.002u,0.s) +Chars 6085 - 6320 [Lemma~encode_dyn_correct~:~~~f...] 0. secs (0.u,0.s) +Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) +Chars 6338 - 6345 [intros.] 0. secs (0.u,0.s) +Chars 6346 - 6379 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 6380 - 6394 [split;~intros.] 0. secs (0.u,0.s) +Chars 6401 - 6402 [-] 0. secs (0.u,0.s) +Chars 6403 - 6414 [repeat~red.] 0. secs (0.u,0.s) +Chars 6415 - 6425 [red~in~H0.] 0. secs (0.u,0.s) +Chars 6426 - 6433 [intros.] 0. secs (0.u,0.s) +Chars 6434 - 6455 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 6456 - 6467 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6476 - 6499 [destruct~H1~as~[Hs~Hr].] 0. secs (0.u,0.s) +Chars 6500 - 6505 [auto.] 0. secs (0.u,0.s) +Chars 6512 - 6513 [-] 0. secs (0.u,0.s) +Chars 6514 - 6531 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 6532 - 6536 [red.] 0. secs (0.u,0.s) +Chars 6537 - 6544 [intros.] 0. secs (0.u,0.s) +Chars 6553 - 6588 [set~(p~:=~exist~_~(post~s)~(H~...] 0. secs (0.u,0.s) +Chars 6589 - 6609 [specialize~(H0~s~p).] 0. secs (0.u,0.s) +Chars 6618 - 6633 [unfold~p~in~H0.] 0. secs (0.u,0.s) +Chars 6634 - 6645 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6646 - 6651 [auto.] 0. secs (0.u,0.s) +Chars 6656 - 6660 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6664 - 6807 [Definition~DynPrePostListRef~{...] 0. secs (0.u,0.s) +Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) +Chars 7028 - 7044 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 7049 - 7069 [induction~H0;~eauto.] 0. secs (0.u,0.s) +Chars 7070 - 7075 [left.] 0. secs (0.u,0.s) +Chars 7076 - 7101 [destruct~x~as~[pre~post].] 0. secs (0.u,0.s) +Chars 7102 - 7125 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) +Chars 7130 - 7142 [split;~auto.] 0. secs (0.u,0.s) +Chars 7145 - 7149 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7153 - 7392 [Lemma~enocde_list_dyn_correct~...] 0. secs (0.u,0.s) +Chars 7395 - 7401 [Proof.] 0. secs (0.u,0.s) +Chars 7406 - 7413 [intros.] 0. secs (0.u,0.s) +Chars 7414 - 7447 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 7448 - 7462 [split;~intros.] 0. secs (0.u,0.s) +Chars 7467 - 7468 [-] 0. secs (0.u,0.s) +Chars 7469 - 7480 [repeat~red.] 0. secs (0.u,0.s) +Chars 7481 - 7488 [intros.] 0. secs (0.u,0.s) +Chars 7489 - 7510 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7511 - 7523 [simpl~in~H1.] 0. secs (0.u,0.s) +Chars 7524 - 7534 [red~in~H0.] 0. secs (0.u,0.s) +Chars 7535 - 7558 [rename~H0~into~Hrefine.] 0. secs (0.u,0.s) +Chars 7565 - 7597 [unfold~DynPrePostRef~in~Hrefine.] 0. secs (0.u,0.s) +Chars 7604 - 7618 [induction~ppl.] 0. secs (0.u,0.s) +Chars 7625 - 7626 [+] 0. secs (0.u,0.s) +Chars 7627 - 7640 [inversion~H1.] 0. secs (0.u,0.s) +Chars 7647 - 7648 [+] 0. secs (0.u,0.s) +Chars 7649 - 7674 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) +Chars 7683 - 7703 [inversion~H1;~subst.] 0.001 secs (0.001u,0.s) +Chars 7712 - 7713 [*] 0. secs (0.u,0.s) +Chars 7714 - 7726 [destruct~H2.] 0. secs (0.u,0.s) +Chars 7737 - 7777 [assert~(pre~s~->~post~s~(m~s))...] 0. secs (0.u,0.s) +Chars 7788 - 7795 [intros.] 0. secs (0.u,0.s) +Chars 7796 - 7827 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) +Chars 7836 - 7837 [*] 0. secs (0.u,0.s) +Chars 7838 - 7856 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 7867 - 7869 [--] 0. secs (0.u,0.s) +Chars 7870 - 7888 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) +Chars 7899 - 7901 [--] 0. secs (0.u,0.s) +Chars 7902 - 7909 [intros.] 0. secs (0.u,0.s) +Chars 7910 - 7934 [inversion~Hrefine;~auto.] 0. secs (0.u,0.s) +Chars 7939 - 7940 [-] 0. secs (0.u,0.s) +Chars 7941 - 7966 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) +Chars 7967 - 7978 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7979 - 7990 [repeat~red.] 0. secs (0.u,0.s) +Chars 7991 - 8008 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 8009 - 8020 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 8021 - 8028 [intros.] 0. secs (0.u,0.s) +Chars 8035 - 8055 [induction~ppl;~auto.] 0. secs (0.u,0.s) +Chars 8062 - 8087 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) +Chars 8094 - 8140 [assert~(Heutt~:~forall~s,~resp...] 0. secs (0.u,0.s) +Chars 8147 - 8148 [{] 0. secs (0.u,0.s) +Chars 8149 - 8161 [inversion~H.] 0.001 secs (0.001u,0.s) +Chars 8162 - 8167 [auto.] 0. secs (0.u,0.s) +Chars 8168 - 8169 [}] 0. secs (0.u,0.s) +Chars 8176 - 8196 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 8203 - 8204 [+] 0. secs (0.u,0.s) +Chars 8205 - 8209 [red.] 0. secs (0.u,0.s) +Chars 8210 - 8217 [intros.] 0. secs (0.u,0.s) +Chars 8218 - 8256 [set~(p~:=~exist~_~(post~s)~(He...] 0. secs (0.u,0.s) +Chars 8265 - 8285 [specialize~(H0~s~p).] 0. secs (0.u,0.s) +Chars 8286 - 8313 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 8314 - 8323 [apply~H0.] 0. secs (0.u,0.s) +Chars 8332 - 8337 [left.] 0. secs (0.u,0.s) +Chars 8338 - 8350 [split;~auto.] 0. secs (0.u,0.s) +Chars 8357 - 8358 [+] 0. secs (0.u,0.s) +Chars 8359 - 8377 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 8386 - 8387 [*] 0. secs (0.u,0.s) +Chars 8388 - 8400 [inversion~H.] 0.001 secs (0.001u,0.s) +Chars 8401 - 8406 [auto.] 0. secs (0.u,0.s) +Chars 8415 - 8416 [*] 0. secs (0.u,0.s) +Chars 8417 - 8429 [clear~IHppl.] 0. secs (0.u,0.s) +Chars 8430 - 8437 [intros.] 0. secs (0.u,0.s) +Chars 8448 - 8468 [specialize~(H0~s~p).] 0. secs (0.u,0.s) +Chars 8469 - 8478 [apply~H0.] 0. secs (0.u,0.s) +Chars 8479 - 8485 [eauto.] 0. secs (0.u,0.s) +Chars 8488 - 8492 [Qed.] 0.009 secs (0.008u,0.s) +Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.003 secs (0.003u,0.s) +Chars 8993 - 8999 [Proof.] 0. secs (0.u,0.s) +Chars 9004 - 9011 [intros.] 0. secs (0.u,0.s) +Chars 9012 - 9028 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 9029 - 9040 [repeat~red.] 0. secs (0.u,0.s) +Chars 9041 - 9048 [intros.] 0. secs (0.u,0.s) +Chars 9053 - 9074 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 9075 - 9086 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 9091 - 9103 [destruct~H3.] 0. secs (0.u,0.s) +Chars 9108 - 9155 [destruct~(eutt_reta_or_div~(m~...] 0. secs (0.u,0.s) +Chars 9160 - 9161 [-] 0. secs (0.u,0.s) +Chars 9162 - 9183 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) +Chars 9190 - 9200 [cbn~in~H5.] 0. secs (0.u,0.s) +Chars 9201 - 9232 [rewrite~<-~H5,~bind_ret_l;~cbn.] 0.005 secs (0.005u,0.s) +Chars 9233 - 9246 [apply~H4,~H0.] 0. secs (0.u,0.s) +Chars 9247 - 9258 [rewrite~H5.] 0.001 secs (0.001u,0.s) +Chars 9265 - 9302 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) +Chars 9307 - 9308 [-] 0. secs (0.u,0.s) +Chars 9309 - 9335 [apply~div_spin_eutt~in~H5.] 0. secs (0.u,0.s) +Chars 9342 - 9367 [rewrite~H5,~<-~spin_bind.] 0.003 secs (0.003u,0.s) +Chars 9368 - 9381 [apply~H4,~H1.] 0. secs (0.u,0.s) +Chars 9382 - 9396 [rewrite~<-~H5.] 0.001 secs (0.001u,0.s) +Chars 9397 - 9434 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) +Chars 9437 - 9441 [Qed.] 0.004 secs (0.003u,0.s) +Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.001 secs (0.001u,0.s) +Chars 9947 - 9953 [Proof.] 0. secs (0.u,0.s) +Chars 9958 - 9965 [intros.] 0. secs (0.u,0.s) +Chars 9970 - 10004 [eapply~combine_prepost_aux;~ea...] 0.002 secs (0.002u,0.s) +Chars 10009 - 10016 [intros.] 0. secs (0.u,0.s) +Chars 10021 - 10047 [specialize~(H1~a)~as~Hpp2.] 0. secs (0.u,0.s) +Chars 10048 - 10067 [repeat~red~in~Hpp2.] 0. secs (0.u,0.s) +Chars 10072 - 10112 [specialize~(Hpp2~s~(exist~_~po...] 0. secs (0.u,0.s) +Chars 10113 - 10124 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 10129 - 10140 [apply~Hpp2.] 0. secs (0.u,0.s) +Chars 10141 - 10154 [split;~eauto.] 0. secs (0.u,0.s) +Chars 10157 - 10161 [Qed.] 0. secs (0.u,0.s) +Chars 10163 - 10182 [End~StateDelaySpec.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateSpecT.v.timing b/extra/Dijkstra/StateSpecT.v.timing new file mode 100644 index 00000000..245f21bf --- /dev/null +++ b/extra/Dijkstra/StateSpecT.v.timing @@ -0,0 +1,244 @@ +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.164 secs (0.145u,0.017s) +Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.011u,0.002s) +Chars 341 - 355 [Import~Monads.] 0. secs (0.u,0.s) +Chars 356 - 377 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 379 - 411 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 412 - 447 [#[local]~Open~Scope~dijkstra_s...] 0. secs (0.u,0.s) +Chars 448 - 484 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) +Chars 486 - 505 [Section~StateSpecT.] 0. secs (0.u,0.s) +Chars 508 - 527 [Context~(S~:~Type).] 0. secs (0.u,0.s) +Chars 530 - 557 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 560 - 587 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) +Chars 590 - 618 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) +Chars 621 - 662 [Context~{OrderedMonadW~:~Order...] 0. secs (0.u,0.s) +Chars 665 - 687 [Context~{EqW~:~Eq1~W}.] 0. secs (0.u,0.s) +Chars 690 - 749 [Context~{EquivRel~:~forall~A,~...] 0. secs (0.u,0.s) +Chars 752 - 788 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) +Chars 792 - 841 [Definition~StateSpecT~(A~:~Typ...] 0. secs (0.u,0.s) +Chars 845 - 970 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) +Chars 974 - 1041 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) +Chars 1044 - 1050 [Proof.] 0. secs (0.u,0.s) +Chars 1055 - 1078 [destruct~OrderedMonadW.] 0. secs (0.u,0.s) +Chars 1083 - 1095 [constructor.] 0. secs (0.u,0.s) +Chars 1100 - 1101 [-] 0. secs (0.u,0.s) +Chars 1102 - 1115 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1117 - 1122 [auto.] 0. secs (0.u,0.s) +Chars 1127 - 1128 [-] 0. secs (0.u,0.s) +Chars 1129 - 1142 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1143 - 1163 [eapply~trans;~eauto.] 0.028 secs (0.026u,0.002s) +Chars 1168 - 1169 [-] 0. secs (0.u,0.s) +Chars 1170 - 1201 [intros~A~B~w1~w2~f1~f2~Hlw~Hlf.] 0. secs (0.u,0.s) +Chars 1202 - 1225 [unfold~StateSpecT~in~*.] 0. secs (0.u,0.s) +Chars 1232 - 1243 [repeat~red.] 0. secs (0.u,0.s) +Chars 1250 - 1257 [intros.] 0. secs (0.u,0.s) +Chars 1258 - 1276 [apply~monot;~auto.] 0. secs (0.u,0.s) +Chars 1277 - 1284 [intros.] 0. secs (0.u,0.s) +Chars 1285 - 1306 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) +Chars 1307 - 1313 [simpl.] 0. secs (0.u,0.s) +Chars 1320 - 1338 [repeat~red~in~Hlf.] 0. secs (0.u,0.s) +Chars 1339 - 1349 [apply~Hlf.] 0. secs (0.u,0.s) +Chars 1352 - 1356 [Qed.] 0. secs (0.u,0.s) +Chars 1360 - 1463 [#[global]~Instance~StateSpecTE...] 0. secs (0.u,0.s) +Chars 1467 - 1530 [#[global]~Instance~StateSpecTM...] 0. secs (0.u,0.s) +Chars 1533 - 1539 [Proof.] 0. secs (0.u,0.s) +Chars 1544 - 1564 [destruct~MonadLawsW.] 0. secs (0.u,0.s) +Chars 1569 - 1581 [constructor.] 0. secs (0.u,0.s) +Chars 1586 - 1587 [-] 0. secs (0.u,0.s) +Chars 1588 - 1603 [intros~A~B~f~a.] 0. secs (0.u,0.s) +Chars 1604 - 1610 [intro.] 0. secs (0.u,0.s) +Chars 1611 - 1622 [repeat~red.] 0. secs (0.u,0.s) +Chars 1629 - 1633 [cbn.] 0. secs (0.u,0.s) +Chars 1640 - 1659 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 1660 - 1666 [simpl.] 0. secs (0.u,0.s) +Chars 1667 - 1679 [reflexivity.] 0. secs (0.u,0.s) +Chars 1684 - 1685 [-] 0. secs (0.u,0.s) +Chars 1686 - 1697 [intros~A~w.] 0. secs (0.u,0.s) +Chars 1698 - 1704 [intro.] 0. secs (0.u,0.s) +Chars 1705 - 1709 [cbn.] 0. secs (0.u,0.s) +Chars 1716 - 1754 [etransitivity;~[~~|~apply~bind...] 0. secs (0.u,0.s) +Chars 1761 - 1799 [eapply~Proper_bind;~[~reflexiv...] 0. secs (0.u,0.s) +Chars 1806 - 1829 [intros~[];~reflexivity.] 0. secs (0.u,0.s) +Chars 1834 - 1835 [-] 0. secs (0.u,0.s) +Chars 1836 - 1855 [intros~A~B~C~w~f~g.] 0. secs (0.u,0.s) +Chars 1856 - 1862 [intro.] 0. secs (0.u,0.s) +Chars 1863 - 1867 [cbn.] 0. secs (0.u,0.s) +Chars 1868 - 1886 [rewrite~bind_bind.] 0. secs (0.u,0.s) +Chars 1887 - 1899 [reflexivity.] 0. secs (0.u,0.s) +Chars 1904 - 1905 [-] 0. secs (0.u,0.s) +Chars 1906 - 1935 [intros~A~B~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 1942 - 1946 [cbn.] 0. secs (0.u,0.s) +Chars 1947 - 1956 [do~2~red.] 0. secs (0.u,0.s) +Chars 1957 - 1964 [intros.] 0. secs (0.u,0.s) +Chars 1965 - 1980 [do~2~red~in~Hw.] 0. secs (0.u,0.s) +Chars 1981 - 1992 [rewrite~Hw.] 0.001 secs (0.001u,0.s) +Chars 1993 - 2008 [do~3~red~in~Hk.] 0. secs (0.u,0.s) +Chars 2015 - 2033 [setoid_rewrite~Hk.] 0.001 secs (0.001u,0.s) +Chars 2034 - 2046 [reflexivity.] 0. secs (0.u,0.s) +Chars 2049 - 2053 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2057 - 2077 [Section~Observation.] 0. secs (0.u,0.s) +Chars 2082 - 2109 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 2114 - 2141 [Context~{MonadM~:~Monad~M}.] 0. secs (0.u,0.s) +Chars 2146 - 2184 [Context~{EffectObsMW~:~EffectO...] 0. secs (0.u,0.s) +Chars 2189 - 2247 [Context~{MonadMorphismMW~:~Mon...] 0. secs (0.u,0.s) +Chars 2253 - 2354 [#[global]~Instance~EffectObsSt...] 0. secs (0.u,0.s) +Chars 2360 - 2456 [#[global]~Instance~MonadMorphi...] 0. secs (0.u,0.s) +Chars 2461 - 2467 [Proof.] 0. secs (0.u,0.s) +Chars 2474 - 2499 [destruct~MonadMorphismMW.] 0. secs (0.u,0.s) +Chars 2506 - 2518 [constructor.] 0. secs (0.u,0.s) +Chars 2525 - 2526 [-] 0. secs (0.u,0.s) +Chars 2527 - 2534 [intros.] 0. secs (0.u,0.s) +Chars 2535 - 2546 [repeat~red.] 0. secs (0.u,0.s) +Chars 2547 - 2554 [intros.] 0. secs (0.u,0.s) +Chars 2555 - 2597 [specialize~(ret_pres~(S~*~A)%t...] 0. secs (0.u,0.s) +Chars 2606 - 2610 [cbn.] 0. secs (0.u,0.s) +Chars 2611 - 2631 [rewrite~<-~ret_pres.] 0. secs (0.u,0.s) +Chars 2632 - 2644 [reflexivity.] 0. secs (0.u,0.s) +Chars 2651 - 2652 [-] 0. secs (0.u,0.s) +Chars 2653 - 2660 [intros.] 0. secs (0.u,0.s) +Chars 2661 - 2672 [repeat~red.] 0. secs (0.u,0.s) +Chars 2673 - 2680 [intros.] 0. secs (0.u,0.s) +Chars 2681 - 2685 [cbn.] 0. secs (0.u,0.s) +Chars 2686 - 2736 [specialize~(bind_pres~(S~*~A)%...] 0. secs (0.u,0.s) +Chars 2745 - 2773 [unfold~obs,~EffectObsStateT.] 0. secs (0.u,0.s) +Chars 2782 - 2800 [rewrite~bind_pres.] 0. secs (0.u,0.s) +Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) +Chars 2818 - 2822 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2826 - 2842 [End~Observation.] 0. secs (0.u,0.s) +Chars 3250 - 3265 [End~StateSpecT.] 0. secs (0.u,0.s) +Chars 3267 - 3293 [Section~LoopInvarSpecific.] 0. secs (0.u,0.s) +Chars 3296 - 3315 [Context~(S~:~Type).] 0. secs (0.u,0.s) +Chars 3319 - 3379 [Definition~StateSpec~(A~:~Type...] 0. secs (0.u,0.s) +Chars 3383 - 3431 [Definition~State~(A~:~Type)~:=...] 0. secs (0.u,0.s) +Chars 3435 - 3493 [Instance~StateIter~:~(MonadIte...] 0. secs (0.u,0.s) +Chars 3497 - 3746 [Definition~reassoc~{A~B~:~Type...] 0.001 secs (0.001u,0.s) +Chars 3750 - 3884 [Definition~iso_arrow~{A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 3888 - 3985 [Definition~decurry_flip~{A~B~C...] 0. secs (0.u,0.s) +Chars 4016 - 4162 [Definition~iso_destatify_arrow...] 0. secs (0.u,0.s) +Chars 4203 - 4626 [Lemma~loop_invar_state~:~~~for...] 0.001 secs (0.001u,0.s) +Chars 4629 - 4635 [Proof.] 0. secs (0.u,0.s) +Chars 4640 - 4647 [intros.] 0. secs (0.u,0.s) +Chars 4652 - 4686 [set~(g'~:=~iso_destatify_arrow...] 0. secs (0.u,0.s) +Chars 4691 - 4753 [enough~((Disj_unary~_~p~any_in...] 0. secs (0.u,0.s) +Chars 4758 - 4759 [-] 0. secs (0.u,0.s) +Chars 4760 - 4804 [assert~(ITree.iter~g'~(s,~a)~≈...] 0. secs (0.u,0.s) +Chars 4811 - 4812 [+] 0. secs (0.u,0.s) +Chars 4813 - 4844 [unfold~g',~iso_destatify_arrow.] 0.043 secs (0.043u,0.s) +Chars 4853 - 4955 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 4956 - 4975 [unfold~Basics.iter.] 0. secs (0.u,0.s) +Chars 4984 - 5006 [unfold~MonadIterDelay.] 0. secs (0.u,0.s) +Chars 5007 - 5024 [eapply~eutt_iter.] 0. secs (0.u,0.s) +Chars 5025 - 5031 [intro.] 0. secs (0.u,0.s) +Chars 5040 - 5063 [destruct~a0~as~[a'~s'].] 0. secs (0.u,0.s) +Chars 5064 - 5070 [simpl.] 0. secs (0.u,0.s) +Chars 5079 - 5118 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) +Chars 5119 - 5126 [intros.] 0. secs (0.u,0.s) +Chars 5135 - 5141 [subst.] 0. secs (0.u,0.s) +Chars 5142 - 5154 [destruct~u2.] 0. secs (0.u,0.s) +Chars 5155 - 5161 [simpl.] 0. secs (0.u,0.s) +Chars 5162 - 5187 [destruct~s1;~reflexivity.] 0. secs (0.u,0.s) +Chars 5194 - 5195 [+] 0. secs (0.u,0.s) +Chars 5196 - 5253 [assert~(Hpdiv~:~resp_eutt~(Dis...] 0. secs (0.u,0.s) +Chars 5262 - 5263 [{] 0. secs (0.u,0.s) +Chars 5264 - 5283 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 5284 - 5320 [split;~intros;~destruct~H4.] 0. secs (0.u,0.s) +Chars 5332 - 5333 [-] 0. secs (0.u,0.s) +Chars 5334 - 5339 [left.] 0. secs (0.u,0.s) +Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) +Chars 5372 - 5373 [-] 0. secs (0.u,0.s) +Chars 5374 - 5380 [right.] 0. secs (0.u,0.s) +Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) +Chars 5414 - 5415 [-] 0. secs (0.u,0.s) +Chars 5416 - 5421 [left.] 0. secs (0.u,0.s) +Chars 5422 - 5440 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) +Chars 5452 - 5453 [-] 0. secs (0.u,0.s) +Chars 5454 - 5460 [right.] 0. secs (0.u,0.s) +Chars 5461 - 5479 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) +Chars 5490 - 5491 [}] 0. secs (0.u,0.s) +Chars 5500 - 5527 [eapply~Hpdiv;~try~apply~H2.] 0. secs (0.u,0.s) +Chars 5528 - 5537 [symmetry.] 0. secs (0.u,0.s) +Chars 5538 - 5543 [auto.] 0. secs (0.u,0.s) +Chars 5549 - 5550 [-] 0. secs (0.u,0.s) +Chars 5551 - 5576 [eapply~loop_invar;~eauto.] 0. secs (0.u,0.s) +Chars 5579 - 5583 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5587 - 5723 [Definition~state_iter_arrow_re...] 0. secs (0.u,0.s) +Chars 5727 - 5926 [Lemma~iter_inl_spin_state~:~~~...] 0. secs (0.u,0.s) +Chars 5929 - 5935 [Proof.] 0. secs (0.u,0.s) +Chars 5940 - 5947 [intros.] 0. secs (0.u,0.s) +Chars 5948 - 5973 [unfold~MonadIter_stateT0.] 0. secs (0.u,0.s) +Chars 5978 - 5998 [apply~iter_inl_spin.] 0. secs (0.u,0.s) +Chars 6041 - 6064 [generalize~dependent~a.] 0. secs (0.u,0.s) +Chars 6065 - 6088 [generalize~dependent~s.] 0. secs (0.u,0.s) +Chars 6093 - 6111 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6118 - 6125 [intros.] 0. secs (0.u,0.s) +Chars 6126 - 6169 [red~in~H;~sinv~H;~try~apply~no...] 0.002 secs (0.002u,0.s) +Chars 6175 - 6211 [apply~not_wf~with~(a'~:=~a');~...] 0. secs (0.u,0.s) +Chars 6216 - 6217 [-] 0. secs (0.u,0.s) +Chars 6218 - 6230 [red~in~Hrel.] 0. secs (0.u,0.s) +Chars 6231 - 6254 [destruct~a'~as~[s'~a'].] 0. secs (0.u,0.s) +Chars 6255 - 6261 [simpl.] 0. secs (0.u,0.s) +Chars 6262 - 6266 [red.] 0. secs (0.u,0.s) +Chars 6267 - 6273 [simpl.] 0. secs (0.u,0.s) +Chars 6274 - 6287 [rewrite~Hrel.] 0.003 secs (0.003u,0.s) +Chars 6294 - 6313 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 6314 - 6320 [simpl.] 0. secs (0.u,0.s) +Chars 6321 - 6333 [reflexivity.] 0. secs (0.u,0.s) +Chars 6338 - 6339 [-] 0. secs (0.u,0.s) +Chars 6340 - 6352 [destruct~a'.] 0. secs (0.u,0.s) +Chars 6353 - 6371 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6374 - 6378 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6382 - 6651 [Lemma~iter_wf_converge_state~:...] 0. secs (0.u,0.s) +Chars 6654 - 6660 [Proof.] 0. secs (0.u,0.s) +Chars 6665 - 6672 [intros.] 0. secs (0.u,0.s) +Chars 6673 - 6727 [unfold~MonadIter_stateT0,~Basi...] 0. secs (0.u,0.s) +Chars 6732 - 6755 [apply~iter_wf_converge.] 0. secs (0.u,0.s) +Chars 6760 - 6761 [-] 0. secs (0.u,0.s) +Chars 6762 - 6799 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) +Chars 6806 - 6819 [repeat~intro.] 0. secs (0.u,0.s) +Chars 6820 - 6847 [unfold~iter_arrow_rel~in~*.] 0. secs (0.u,0.s) +Chars 6848 - 6876 [unfold~state_iter_arrow_rel.] 0. secs (0.u,0.s) +Chars 6883 - 6896 [clear~H0~a~s.] 0. secs (0.u,0.s) +Chars 6903 - 6923 [destruct~x~as~[s~a].] 0. secs (0.u,0.s) +Chars 6924 - 6935 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6936 - 6958 [destruct~y~as~[s'~a'].] 0. secs (0.u,0.s) +Chars 6965 - 7014 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) +Chars 7021 - 7022 [+] 0. secs (0.u,0.s) +Chars 7023 - 7037 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 7038 - 7058 [rewrite~<-~H0~in~H1.] 0.018 secs (0.018u,0.s) +Chars 7059 - 7071 [simpl~in~H1.] 0. secs (0.u,0.s) +Chars 7072 - 7097 [rewrite~bind_ret_l~in~H1.] 0.018 secs (0.018u,0.s) +Chars 7106 - 7117 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7118 - 7130 [destruct~a0.] 0. secs (0.u,0.s) +Chars 7131 - 7142 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7143 - 7168 [destruct~s1;~basic_solve.] 0.001 secs (0.001u,0.s) +Chars 7177 - 7189 [reflexivity.] 0. secs (0.u,0.s) +Chars 7196 - 7197 [+] 0. secs (0.u,0.s) +Chars 7198 - 7224 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 7225 - 7242 [rewrite~H0~in~H1.] 0.017 secs (0.017u,0.s) +Chars 7243 - 7270 [rewrite~<-~spin_bind~in~H1.] 0.016 secs (0.016u,0.s) +Chars 7279 - 7294 [symmetry~in~H1.] 0. secs (0.u,0.s) +Chars 7295 - 7303 [exfalso.] 0. secs (0.u,0.s) +Chars 7304 - 7336 [eapply~not_ret_eutt_spin;~eauto.] 0. secs (0.u,0.s) +Chars 7340 - 7341 [-] 0. secs (0.u,0.s) +Chars 7342 - 7355 [clear~H0~a~s.] 0. secs (0.u,0.s) +Chars 7356 - 7369 [intros~[s~a].] 0. secs (0.u,0.s) +Chars 7370 - 7389 [specialize~(H~a~s).] 0. secs (0.u,0.s) +Chars 7390 - 7402 [basic_solve.] 0. secs (0.u,0.s) +Chars 7408 - 7438 [destruct~ab~as~[s'~[a'|~b]].] 0. secs (0.u,0.s) +Chars 7444 - 7445 [+] 0. secs (0.u,0.s) +Chars 7446 - 7468 [exists~(inl~(s',~a')).] 0. secs (0.u,0.s) +Chars 7469 - 7475 [simpl.] 0. secs (0.u,0.s) +Chars 7476 - 7486 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 7487 - 7506 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7507 - 7513 [simpl.] 0. secs (0.u,0.s) +Chars 7521 - 7533 [reflexivity.] 0. secs (0.u,0.s) +Chars 7539 - 7540 [+] 0. secs (0.u,0.s) +Chars 7541 - 7561 [exists~(inr~(s',~b)).] 0. secs (0.u,0.s) +Chars 7562 - 7568 [simpl.] 0. secs (0.u,0.s) +Chars 7569 - 7579 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 7580 - 7599 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7600 - 7606 [simpl.] 0. secs (0.u,0.s) +Chars 7614 - 7626 [reflexivity.] 0. secs (0.u,0.s) +Chars 7629 - 7633 [Qed.] 0.008 secs (0.007u,0.s) +Chars 7635 - 7657 [End~LoopInvarSpecific.] 0. secs (0.u,0.s) diff --git a/extra/IForest.v.timing b/extra/IForest.v.timing new file mode 100644 index 00000000..425c93a0 --- /dev/null +++ b/extra/IForest.v.timing @@ -0,0 +1,1131 @@ +Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.161 secs (0.144u,0.016s) +Chars 461 - 512 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.s) +Chars 586 - 620 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 622 - 643 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 644 - 664 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 665 - 694 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 695 - 722 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 801 - 877 [Definition~iforest~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 1082 - 1148 [Notation~eutt_closed~:=~(Prope...] 0. secs (0.u,0.s) +Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) +Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.001 secs (0.001u,0.s) +Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0. secs (0.u,0.s) +Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0. secs (0.u,0.s) +Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0. secs (0.u,0.s) +Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.001 secs (0.u,0.s) +Chars 2851 - 2980 [Lemma~bind_iforest_bind_ifores...] 0. secs (0.u,0.s) +Chars 2981 - 2987 [Proof.] 0. secs (0.u,0.s) +Chars 2990 - 2997 [intros.] 0. secs (0.u,0.s) +Chars 2998 - 3004 [split.] 0. secs (0.u,0.s) +Chars 3007 - 3014 [intros.] 0. secs (0.u,0.s) +Chars 3017 - 3018 [-] 0. secs (0.u,0.s) +Chars 3019 - 3023 [red.] 0. secs (0.u,0.s) +Chars 3024 - 3033 [red~in~H.] 0. secs (0.u,0.s) +Chars 3038 - 3078 [destruct~H~as~(ta,~(ka,~(HPA,~...] 0. secs (0.u,0.s) +Chars 3083 - 3093 [exists~ta.] 0. secs (0.u,0.s) +Chars 3094 - 3106 [split;~auto.] 0. secs (0.u,0.s) +Chars 3111 - 3116 [left.] 0. secs (0.u,0.s) +Chars 3118 - 3128 [exists~ka.] 0. secs (0.u,0.s) +Chars 3129 - 3141 [split;~auto.] 0. secs (0.u,0.s) +Chars 3144 - 3145 [-] 0. secs (0.u,0.s) +Chars 3146 - 3153 [intros.] 0. secs (0.u,0.s) +Chars 3158 - 3162 [red.] 0. secs (0.u,0.s) +Chars 3163 - 3172 [red~in~H.] 0. secs (0.u,0.s) +Chars 3177 - 3227 [destruct~H~as~(ta,~(EQ1,~[(k,~...] 0. secs (0.u,0.s) +Chars 3232 - 3233 [+] 0. secs (0.u,0.s) +Chars 3234 - 3244 [exists~ta.] 0. secs (0.u,0.s) +Chars 3245 - 3254 [exists~k.] 0. secs (0.u,0.s) +Chars 3255 - 3260 [auto.] 0. secs (0.u,0.s) +Chars 3265 - 3266 [+] 0. secs (0.u,0.s) +Chars 3267 - 3277 [exists~ta.] 0. secs (0.u,0.s) +Chars 3278 - 3307 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) +Chars 3314 - 3326 [split;~auto.] 0. secs (0.u,0.s) +Chars 3333 - 3371 [specialize~(HX~(fun~_~=>~ITree...] 0. secs (0.u,0.s) +Chars 3378 - 3402 [destruct~HX~as~(HA,~H).] 0. secs (0.u,0.s) +Chars 3409 - 3421 [split;~auto.] 0. secs (0.u,0.s) +Chars 3422 - 3426 [Qed.] 0.025 secs (0.024u,0.001s) +Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0. secs (0.u,0.s) +Chars 3627 - 3748 [Definition~handler_correct~{E}...] 0. secs (0.u,0.s) +Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.002 secs (0.002u,0.s) +Chars 4598 - 4650 [#[global]~Hint~Constructors~in...] 0. secs (0.u,0.s) +Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0. secs (0.u,0.s) +Chars 4878 - 4884 [Proof.] 0. secs (0.u,0.s) +Chars 4887 - 4918 [induction~IN;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 4919 - 4923 [Qed.] 0. secs (0.u,0.s) +Chars 4925 - 5071 [Definition~interp_iforest_~E~F...] 0. secs (0.u,0.s) +Chars 5073 - 5119 [#[global]~Hint~Unfold~interp_i...] 0. secs (0.u,0.s) +Chars 5122 - 5270 [Definition~interp_iforest_mon~...] 0. secs (0.u,0.s) +Chars 5271 - 5277 [Proof.] 0. secs (0.u,0.s) +Chars 5280 - 5333 [refine~{|~body~:=~interp_ifore...] 0.003 secs (0.003u,0.s) +Chars 5336 - 5363 [intros~sim~sim'~LE~t0~t1~H.] 0. secs (0.u,0.s) +Chars 5364 - 5392 [unfold~interp_iforest_~in~*.] 0. secs (0.u,0.s) +Chars 5395 - 5430 [eapply~interp_iforestF_mono;~e...] 0. secs (0.u,0.s) +Chars 5431 - 5439 [Defined.] 0. secs (0.u,0.s) +Chars 5462 - 5650 [Definition~interp_iforest~{E}~...] 0. secs (0.u,0.s) +Chars 5653 - 5734 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) +Chars 5735 - 5822 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) +Chars 5823 - 5909 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) +Chars 5911 - 6235 [#[local]~Ltac~~refold~:=~~~rep...] 0. secs (0.u,0.s) +Chars 6237 - 6583 [#[local]~Ltac~~refold_in~h~:=~...] 0. secs (0.u,0.s) +Chars 6585 - 7579 [#[local]~Ltac~~to_mon_core~:=~...] 0. secs (0.u,0.s) +Chars 7581 - 7738 [#[local]~Ltac~~to_mon~:=~~~let...] 0. secs (0.u,0.s) +Chars 7740 - 8262 [#[local]~Ltac~~to_mon_in~h~:=~...] 0. secs (0.u,0.s) +Chars 8264 - 8378 [#[local]~Ltac~~icbn~:=~~~cbn[e...] 0. secs (0.u,0.s) +Chars 8381 - 8510 [#[local]~Ltac~~icbn_in~H~:=~~~...] 0. secs (0.u,0.s) +Chars 8512 - 8571 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 8572 - 8718 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 8721 - 8784 [#[local]~Tactic~Notation~"refo...] 0. secs (0.u,0.s) +Chars 8785 - 8848 [#[local]~Tactic~Notation~"to_m...] 0. secs (0.u,0.s) +Chars 8849 - 8914 [#[local]~Tactic~Notation~"iunf...] 0. secs (0.u,0.s) +Chars 8915 - 8974 [#[local]~Tactic~Notation~"iunf...] 0. secs (0.u,0.s) +Chars 8977 - 9046 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) +Chars 9048 - 9127 [#[local]~Tactic~Notation~"unst...] 0. secs (0.u,0.s) +Chars 9129 - 9232 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) +Chars 9234 - 9347 [#[local]~Tactic~Notation~"unst...] 0. secs (0.u,0.s) +Chars 9349 - 9477 [#[local]~Tactic~Notation~"icoi...] 0. secs (0.u,0.s) +Chars 9479 - 9596 [#[local]~Tactic~Notation~"coin...] 0. secs (0.u,0.s) +Chars 9598 - 9712 [#[local]~Tactic~Notation~"coin...] 0. secs (0.u,0.s) +Chars 9714 - 9816 [#[local]~Ltac~~bcbn~:=~~~cbn[e...] 0. secs (0.u,0.s) +Chars 9874 - 9906 [Ltac~sinv~H~:=~step~in~H;~inv~H.] 0. secs (0.u,0.s) +Chars 9951 - 10094 [Lemma~interp_iforest_ret~:~~~f...] 0. secs (0.u,0.s) +Chars 10095 - 10101 [Proof.] 0. secs (0.u,0.s) +Chars 10104 - 10111 [intros.] 0. secs (0.u,0.s) +Chars 10114 - 10125 [repeat~red.] 0. secs (0.u,0.s) +Chars 10128 - 10145 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 10148 - 10149 [-] 0. secs (0.u,0.s) +Chars 10150 - 10157 [intros.] 0. secs (0.u,0.s) +Chars 10158 - 10172 [split;~intros.] 0. secs (0.u,0.s) +Chars 10177 - 10178 [+] 0. secs (0.u,0.s) +Chars 10179 - 10190 [step~in~H0.] 0. secs (0.u,0.s) +Chars 10191 - 10198 [inv~H0.] 0.002 secs (0.002u,0.s) +Chars 10205 - 10209 [cbn.] 0. secs (0.u,0.s) +Chars 10210 - 10227 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10232 - 10233 [+] 0. secs (0.u,0.s) +Chars 10234 - 10256 [unfold~interp_iforest.] 0. secs (0.u,0.s) +Chars 10257 - 10262 [step.] 0. secs (0.u,0.s) +Chars 10263 - 10283 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 10284 - 10298 [now~rewrite~H.] 0. secs (0.u,0.s) +Chars 10301 - 10302 [-] 0. secs (0.u,0.s) +Chars 10303 - 10314 [repeat~red.] 0. secs (0.u,0.s) +Chars 10319 - 10360 [intros~t1~t2~eq;~split;~intros...] 0.035 secs (0.035u,0.s) +Chars 10366 - 10367 [+] 0. secs (0.u,0.s) +Chars 10368 - 10373 [step.] 0. secs (0.u,0.s) +Chars 10374 - 10394 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 10395 - 10413 [now~rewrite~<-~eq.] 0. secs (0.u,0.s) +Chars 10419 - 10420 [+] 0. secs (0.u,0.s) +Chars 10421 - 10426 [step.] 0. secs (0.u,0.s) +Chars 10427 - 10447 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 10448 - 10463 [now~rewrite~eq.] 0. secs (0.u,0.s) +Chars 10466 - 10467 [-] 0. secs (0.u,0.s) +Chars 10468 - 10479 [repeat~red.] 0. secs (0.u,0.s) +Chars 10480 - 10487 [intros.] 0. secs (0.u,0.s) +Chars 10488 - 10512 [split;~intros;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 10513 - 10530 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10531 - 10545 [now~rewrite~H.] 0. secs (0.u,0.s) +Chars 10547 - 10551 [Qed.] 0.004 secs (0.004u,0.s) +Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 10829 - 10835 [Proof.] 0. secs (0.u,0.s) +Chars 10838 - 10849 [repeat~red.] 0. secs (0.u,0.s) +Chars 10852 - 10859 [intros.] 0. secs (0.u,0.s) +Chars 10862 - 10876 [split;~intros.] 0. secs (0.u,0.s) +Chars 10879 - 10880 [-] 0. secs (0.u,0.s) +Chars 10881 - 10922 [inversion~H0;~subst;~econstruc...] 0.003 secs (0.003u,0.s) +Chars 10927 - 10928 [+] 0. secs (0.u,0.s) +Chars 10929 - 10946 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10951 - 10952 [+] 0. secs (0.u,0.s) +Chars 10953 - 10972 [specialize~(HS~t1).] 0. secs (0.u,0.s) +Chars 10973 - 10990 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10995 - 10996 [+] 0. secs (0.u,0.s) +Chars 10997 - 11014 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 11018 - 11019 [-] 0. secs (0.u,0.s) +Chars 11020 - 11061 [inversion~H0;~subst;~econstruc...] 0.006 secs (0.005u,0.s) +Chars 11067 - 11086 [all:~now~rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 11088 - 11092 [Qed.] 0.002 secs (0.002u,0.s) +Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 11304 - 11310 [Proof.] 0. secs (0.u,0.s) +Chars 11313 - 11324 [repeat~red.] 0. secs (0.u,0.s) +Chars 11325 - 11334 [revert~t.] 0. secs (0.u,0.s) +Chars 11338 - 11354 [tower~induction.] 0. secs (0.u,0.s) +Chars 11358 - 11359 [{] 0. secs (0.u,0.s) +Chars 11360 - 11366 [split.] 0. secs (0.u,0.s) +Chars 11367 - 11400 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 11401 - 11402 [}] 0. secs (0.u,0.s) +Chars 11407 - 11413 [split.] 0. secs (0.u,0.s) +Chars 11416 - 11417 [-] 0. secs (0.u,0.s) +Chars 11418 - 11428 [intros~HI.] 0. secs (0.u,0.s) +Chars 11433 - 11462 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 11469 - 11476 [inv~HI.] 0.007 secs (0.007u,0.s) +Chars 11483 - 11484 [+] 0. secs (0.u,0.s) +Chars 11485 - 11503 [rewrite~H0~in~eq2.] 0.016 secs (0.016u,0.s) +Chars 11511 - 11544 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 11550 - 11551 [+] 0. secs (0.u,0.s) +Chars 11552 - 11565 [econstructor.] 0. secs (0.u,0.s) +Chars 11566 - 11581 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 11582 - 11598 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 11605 - 11606 [+] 0. secs (0.u,0.s) +Chars 11607 - 11627 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 11628 - 11646 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 11650 - 11651 [-] 0. secs (0.u,0.s) +Chars 11652 - 11662 [intros~HI.] 0. secs (0.u,0.s) +Chars 11667 - 11696 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 11703 - 11710 [inv~HI.] 0.008 secs (0.008u,0.s) +Chars 11717 - 11718 [+] 0. secs (0.u,0.s) +Chars 11719 - 11740 [rewrite~<-~H0~in~eq2.] 0.015 secs (0.015u,0.s) +Chars 11748 - 11781 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 11787 - 11788 [+] 0. secs (0.u,0.s) +Chars 11789 - 11802 [econstructor.] 0. secs (0.u,0.s) +Chars 11803 - 11819 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 11826 - 11827 [+] 0. secs (0.u,0.s) +Chars 11828 - 11848 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 11849 - 11864 [now~rewrite~H0.] 0. secs (0.u,0.s) +Chars 11866 - 11870 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 12086 - 12092 [Proof.] 0. secs (0.u,0.s) +Chars 12095 - 12106 [repeat~red.] 0. secs (0.u,0.s) +Chars 12107 - 12116 [revert~t.] 0. secs (0.u,0.s) +Chars 12120 - 12136 [tower~induction.] 0. secs (0.u,0.s) +Chars 12140 - 12141 [{] 0. secs (0.u,0.s) +Chars 12142 - 12148 [split.] 0. secs (0.u,0.s) +Chars 12149 - 12182 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 12183 - 12184 [}] 0. secs (0.u,0.s) +Chars 12189 - 12195 [split.] 0. secs (0.u,0.s) +Chars 12198 - 12199 [-] 0. secs (0.u,0.s) +Chars 12200 - 12210 [intros~HI.] 0. secs (0.u,0.s) +Chars 12215 - 12244 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 12251 - 12258 [inv~HI.] 0.007 secs (0.007u,0.s) +Chars 12265 - 12266 [+] 0. secs (0.u,0.s) +Chars 12267 - 12285 [rewrite~H0~in~eq2.] 0.013 secs (0.013u,0.s) +Chars 12293 - 12326 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 12332 - 12333 [+] 0. secs (0.u,0.s) +Chars 12334 - 12347 [econstructor.] 0. secs (0.u,0.s) +Chars 12348 - 12363 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 12364 - 12380 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 12387 - 12388 [+] 0. secs (0.u,0.s) +Chars 12389 - 12409 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) +Chars 12410 - 12428 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 12432 - 12433 [-] 0. secs (0.u,0.s) +Chars 12434 - 12444 [intros~HI.] 0. secs (0.u,0.s) +Chars 12450 - 12479 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 12486 - 12493 [inv~HI.] 0.009 secs (0.009u,0.s) +Chars 12500 - 12501 [+] 0. secs (0.u,0.s) +Chars 12502 - 12523 [rewrite~<-~H0~in~eq2.] 0.012 secs (0.012u,0.s) +Chars 12531 - 12564 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 12570 - 12571 [+] 0. secs (0.u,0.s) +Chars 12572 - 12585 [econstructor.] 0. secs (0.u,0.s) +Chars 12586 - 12602 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 12609 - 12610 [+] 0. secs (0.u,0.s) +Chars 12611 - 12631 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) +Chars 12632 - 12647 [now~rewrite~H0.] 0. secs (0.u,0.s) +Chars 12649 - 12653 [Qed.] 0.004 secs (0.004u,0.s) +Chars 12934 - 13050 [Lemma~inj_pair2~:~~~forall~(U~...] 0. secs (0.u,0.s) +Chars 13051 - 13057 [Proof.] 0. secs (0.u,0.s) +Chars 13060 - 13067 [intros.] 0. secs (0.u,0.s) +Chars 13068 - 13087 [apply~JMeq.JMeq_eq.] 0. secs (0.u,0.s) +Chars 13090 - 13202 [refine~~~match~H~in~(_~=~w)~re...] 0. secs (0.u,0.s) +Chars 13203 - 13207 [Qed.] 0. secs (0.u,0.s) +Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 13409 - 13415 [Proof.] 0. secs (0.u,0.s) +Chars 13418 - 13429 [repeat~red.] 0. secs (0.u,0.s) +Chars 13430 - 13446 [tower~induction.] 0. secs (0.u,0.s) +Chars 13450 - 13451 [{] 0. secs (0.u,0.s) +Chars 13452 - 13458 [split.] 0. secs (0.u,0.s) +Chars 13459 - 13492 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 13493 - 13494 [}] 0. secs (0.u,0.s) +Chars 13499 - 13505 [split.] 0. secs (0.u,0.s) +Chars 13508 - 13509 [-] 0. secs (0.u,0.s) +Chars 13510 - 13520 [intros~HI.] 0. secs (0.u,0.s) +Chars 13525 - 13554 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 13560 - 13571 [step~in~H0.] 0. secs (0.u,0.s) +Chars 13579 - 13595 [inv~HI;~simpobs.] 0.02 secs (0.02u,0.s) +Chars 13600 - 13601 [+] 0. secs (0.u,0.s) +Chars 13602 - 13609 [inv~H0.] 0.008 secs (0.008u,0.s) +Chars 13610 - 13643 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 13649 - 13650 [+] 0. secs (0.u,0.s) +Chars 13651 - 13658 [inv~H0.] 0.011 secs (0.011u,0.s) +Chars 13659 - 13672 [econstructor.] 0. secs (0.u,0.s) +Chars 13673 - 13689 [symmetry~in~REL.] 0. secs (0.u,0.s) +Chars 13690 - 13706 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 13712 - 13713 [+] 0. secs (0.u,0.s) +Chars 13714 - 13744 [eapply~eqitF_inv_VisF_l~in~H0.] 0. secs (0.u,0.s) +Chars 13745 - 13762 [crunch;~try~easy.] 0.008 secs (0.008u,0.s) +Chars 13770 - 13778 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13779 - 13799 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13800 - 13807 [intros.] 0. secs (0.u,0.s) +Chars 13815 - 13830 [symmetry~in~H1.] 0. secs (0.u,0.s) +Chars 13831 - 13840 [eapply~H.] 0. secs (0.u,0.s) +Chars 13848 - 13857 [apply~H1.] 0. secs (0.u,0.s) +Chars 13858 - 13869 [all:~eauto.] 0. secs (0.u,0.s) +Chars 13872 - 13873 [-] 0. secs (0.u,0.s) +Chars 13874 - 13884 [intros~HI.] 0. secs (0.u,0.s) +Chars 13889 - 13918 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 13923 - 13934 [step~in~H0.] 0. secs (0.u,0.s) +Chars 13942 - 13958 [inv~HI;~simpobs.] 0.021 secs (0.021u,0.s) +Chars 13966 - 13967 [+] 0. secs (0.u,0.s) +Chars 13968 - 13975 [inv~H0.] 0.008 secs (0.008u,0.s) +Chars 13976 - 14009 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 14015 - 14016 [+] 0. secs (0.u,0.s) +Chars 14017 - 14024 [inv~H0.] 0.014 secs (0.014u,0.s) +Chars 14025 - 14038 [econstructor.] 0. secs (0.u,0.s) +Chars 14039 - 14055 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 14061 - 14062 [+] 0. secs (0.u,0.s) +Chars 14063 - 14093 [eapply~eqitF_inv_VisF_r~in~H0.] 0. secs (0.u,0.s) +Chars 14094 - 14111 [crunch;~try~easy.] 0.007 secs (0.007u,0.s) +Chars 14119 - 14127 [simpobs.] 0.003 secs (0.002u,0.s) +Chars 14128 - 14148 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 14149 - 14156 [intros.] 0. secs (0.u,0.s) +Chars 14164 - 14173 [eapply~H.] 0. secs (0.u,0.s) +Chars 14182 - 14191 [apply~H1.] 0. secs (0.u,0.s) +Chars 14192 - 14203 [all:~eauto.] 0. secs (0.u,0.s) +Chars 14204 - 14208 [Qed.] 0.015 secs (0.014u,0.s) +Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0.001 secs (0.001u,0.s) +Chars 14547 - 14553 [Proof.] 0. secs (0.u,0.s) +Chars 14556 - 14563 [intros.] 0. secs (0.u,0.s) +Chars 14566 - 14581 [revert~t~t'~H1.] 0. secs (0.u,0.s) +Chars 14584 - 14596 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 14599 - 14614 [intros~t~t'~eq.] 0. secs (0.u,0.s) +Chars 14617 - 14661 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) +Chars 14664 - 14692 [rewrite~(itree_eta~t)~in~eq.] 0.014 secs (0.014u,0.s) +Chars 14695 - 14725 [destruct~(observe~t)~eqn:oeqt.] 0. secs (0.u,0.s) +Chars 14729 - 14730 [-] 0. secs (0.u,0.s) +Chars 14731 - 14745 [rewrite~<-~eq.] 0.061 secs (0.061u,0.s) +Chars 14746 - 14766 [rewrite~unfold_iter.] 0.058 secs (0.058u,0.s) +Chars 14767 - 14772 [bcbn.] 0. secs (0.u,0.s) +Chars 14778 - 14802 [rewrite~Eqit.bind_ret_l.] 0.057 secs (0.057u,0.s) +Chars 14803 - 14814 [repeat~red.] 0. secs (0.u,0.s) +Chars 14815 - 14823 [simpobs.] 0. secs (0.u,0.s) +Chars 14824 - 14841 [now~econstructor.] 0. secs (0.u,0.s) +Chars 14845 - 14846 [-] 0. secs (0.u,0.s) +Chars 14847 - 14861 [rewrite~<-~eq.] 0.06 secs (0.059u,0.s) +Chars 14862 - 14882 [rewrite~unfold_iter.] 0.058 secs (0.057u,0.s) +Chars 14883 - 14888 [bcbn.] 0. secs (0.u,0.s) +Chars 14889 - 14913 [rewrite~Eqit.bind_ret_l.] 0.056 secs (0.056u,0.s) +Chars 14918 - 14935 [rewrite~tau_eutt.] 0.058 secs (0.058u,0.s) +Chars 14941 - 14952 [repeat~red.] 0. secs (0.u,0.s) +Chars 14953 - 14961 [simpobs.] 0. secs (0.u,0.s) +Chars 14962 - 14975 [econstructor.] 0. secs (0.u,0.s) +Chars 14976 - 14990 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 14995 - 14996 [-] 0. secs (0.u,0.s) +Chars 14997 - 15011 [rewrite~<-~eq.] 0.063 secs (0.062u,0.s) +Chars 15012 - 15032 [rewrite~unfold_iter.] 0.068 secs (0.067u,0.s) +Chars 15033 - 15038 [bcbn.] 0. secs (0.u,0.s) +Chars 15043 - 15060 [rewrite~bind_map.] 0.058 secs (0.058u,0.s) +Chars 15061 - 15081 [repeat~red;~simpobs.] 0.001 secs (0.001u,0.s) +Chars 15082 - 15095 [econstructor.] 0. secs (0.u,0.s) +Chars 15100 - 15101 [+] 0. secs (0.u,0.s) +Chars 15102 - 15110 [apply~H.] 0. secs (0.u,0.s) +Chars 15116 - 15117 [+] 0. secs (0.u,0.s) +Chars 15118 - 15124 [ebind.] 0.004 secs (0.004u,0.s) +Chars 15125 - 15139 [intros;~subst.] 0. secs (0.u,0.s) +Chars 15140 - 15157 [rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 15158 - 15170 [reflexivity.] 0. secs (0.u,0.s) +Chars 15176 - 15177 [+] 0. secs (0.u,0.s) +Chars 15178 - 15185 [intros.] 0. secs (0.u,0.s) +Chars 15186 - 15203 [rewrite~tau_eutt.] 0.023 secs (0.023u,0.s) +Chars 15204 - 15218 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 15220 - 15224 [Qed.] 0.011 secs (0.011u,0.s) +Chars 15328 - 15564 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 15565 - 15571 [Proof.] 0. secs (0.u,0.s) +Chars 15574 - 15581 [intros.] 0. secs (0.u,0.s) +Chars 15584 - 15595 [repeat~red.] 0. secs (0.u,0.s) +Chars 15598 - 15627 [intros~t1~t2~eqt~s'~s~eqs~HI.] 0. secs (0.u,0.s) +Chars 15630 - 15636 [subst.] 0. secs (0.u,0.s) +Chars 15639 - 15661 [revert~t1~t2~eqt~s~HI.] 0. secs (0.u,0.s) +Chars 15664 - 15683 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 15687 - 15694 [intros.] 0. secs (0.u,0.s) +Chars 15697 - 15708 [step~in~HI.] 0. secs (0.u,0.s) +Chars 15712 - 15724 [step~in~eqt.] 0. secs (0.u,0.s) +Chars 15728 - 15744 [genobs~t1~obst1.] 0. secs (0.u,0.s) +Chars 15747 - 15763 [genobs~t2~obst2.] 0. secs (0.u,0.s) +Chars 15766 - 15802 [revert~t1~t2~Heqobst1~Heqobst2...] 0. secs (0.u,0.s) +Chars 15805 - 15827 [induction~eqt;~intros.] 0. secs (0.u,0.s) +Chars 15830 - 15831 [-] 0. secs (0.u,0.s) +Chars 15832 - 15839 [inv~HI.] 0.003 secs (0.003u,0.s) +Chars 15840 - 15853 [econstructor.] 0. secs (0.u,0.s) +Chars 15854 - 15875 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 15876 - 15882 [eauto.] 0. secs (0.u,0.s) +Chars 15887 - 15888 [-] 0. secs (0.u,0.s) +Chars 15889 - 15896 [inv~HI.] 0.004 secs (0.004u,0.s) +Chars 15902 - 15915 [econstructor.] 0. secs (0.u,0.s) +Chars 15916 - 15934 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 15937 - 15938 [-] 0. secs (0.u,0.s) +Chars 15939 - 15946 [inv~HI.] 0.005 secs (0.005u,0.s) +Chars 15952 - 15974 [apply~inj_pair2~in~H1.] 0. secs (0.u,0.s) +Chars 15979 - 16001 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) +Chars 16006 - 16012 [subst.] 0. secs (0.u,0.s) +Chars 16017 - 16030 [econstructor.] 0. secs (0.u,0.s) +Chars 16035 - 16045 [apply~HTA.] 0. secs (0.u,0.s) +Chars 16050 - 16060 [apply~eq2.] 0. secs (0.u,0.s) +Chars 16065 - 16077 [intros~a~Ha.] 0. secs (0.u,0.s) +Chars 16078 - 16097 [specialize~(REL~a).] 0. secs (0.u,0.s) +Chars 16098 - 16119 [specialize~(HK~a~Ha).] 0. secs (0.u,0.s) +Chars 16120 - 16131 [red~in~REL.] 0. secs (0.u,0.s) +Chars 16137 - 16148 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 16149 - 16159 [apply~REL.] 0. secs (0.u,0.s) +Chars 16160 - 16169 [apply~HK.] 0. secs (0.u,0.s) +Chars 16172 - 16173 [-] 0. secs (0.u,0.s) +Chars 16174 - 16187 [econstructor.] 0. secs (0.u,0.s) +Chars 16188 - 16193 [step.] 0. secs (0.u,0.s) +Chars 16199 - 16212 [eapply~IHeqt.] 0. secs (0.u,0.s) +Chars 16213 - 16225 [reflexivity.] 0. secs (0.u,0.s) +Chars 16226 - 16238 [eassumption.] 0. secs (0.u,0.s) +Chars 16239 - 16250 [assumption.] 0. secs (0.u,0.s) +Chars 16253 - 16254 [-] 0. secs (0.u,0.s) +Chars 16255 - 16262 [inv~HI.] 0.007 secs (0.007u,0.s) +Chars 16268 - 16281 [eapply~IHeqt.] 0. secs (0.u,0.s) +Chars 16282 - 16294 [reflexivity.] 0. secs (0.u,0.s) +Chars 16295 - 16307 [reflexivity.] 0. secs (0.u,0.s) +Chars 16312 - 16323 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 16325 - 16329 [Qed.] 0.01 secs (0.01u,0.s) +Chars 16331 - 16439 [Lemma~Leaf_Vis_sub~:~~~forall~...] 0. secs (0.u,0.s) +Chars 16440 - 16446 [Proof.] 0. secs (0.u,0.s) +Chars 16449 - 16456 [intros.] 0. secs (0.u,0.s) +Chars 16459 - 16474 [eapply~LeafVis.] 0. secs (0.u,0.s) +Chars 16475 - 16487 [reflexivity.] 0. secs (0.u,0.s) +Chars 16488 - 16496 [apply~H.] 0. secs (0.u,0.s) +Chars 16497 - 16501 [Qed.] 0. secs (0.u,0.s) +Chars 16503 - 16658 [Lemma~eutt_Leaf_~:~~~forall~{E...] 0. secs (0.u,0.s) +Chars 16659 - 16665 [Proof.] 0. secs (0.u,0.s) +Chars 16668 - 16679 [intros~E~R.] 0. secs (0.u,0.s) +Chars 16682 - 16701 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 16702 - 16709 [intros.] 0. secs (0.u,0.s) +Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.002 secs (0.002u,0.s) +Chars 16752 - 16774 [destruct~(observe~ta).] 0. secs (0.u,0.s) +Chars 16777 - 16778 [-] 0. secs (0.u,0.s) +Chars 16779 - 16792 [econstructor.] 0. secs (0.u,0.s) +Chars 16794 - 16806 [split;~auto.] 0. secs (0.u,0.s) +Chars 16807 - 16816 [apply~IN.] 0. secs (0.u,0.s) +Chars 16817 - 16834 [now~econstructor.] 0. secs (0.u,0.s) +Chars 16837 - 16838 [-] 0. secs (0.u,0.s) +Chars 16839 - 16852 [econstructor.] 0. secs (0.u,0.s) +Chars 16853 - 16863 [apply~CIH.] 0. secs (0.u,0.s) +Chars 16864 - 16871 [intros.] 0. secs (0.u,0.s) +Chars 16872 - 16882 [eapply~IN.] 0. secs (0.u,0.s) +Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 16907 - 16908 [-] 0. secs (0.u,0.s) +Chars 16909 - 16922 [econstructor.] 0. secs (0.u,0.s) +Chars 16923 - 16930 [intros.] 0. secs (0.u,0.s) +Chars 16936 - 16946 [apply~CIH.] 0. secs (0.u,0.s) +Chars 16947 - 16954 [intros.] 0. secs (0.u,0.s) +Chars 16955 - 16965 [eapply~IN.] 0. secs (0.u,0.s) +Chars 16966 - 16986 [eapply~Leaf_Vis_sub.] 0. secs (0.u,0.s) +Chars 16987 - 16995 [apply~H.] 0. secs (0.u,0.s) +Chars 16996 - 17000 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17002 - 17097 [Lemma~eutt_Leaf~:~~~forall~E~R...] 0. secs (0.u,0.s) +Chars 17098 - 17104 [Proof.] 0. secs (0.u,0.s) +Chars 17107 - 17114 [intros.] 0. secs (0.u,0.s) +Chars 17117 - 17134 [apply~eutt_Leaf_.] 0. secs (0.u,0.s) +Chars 17135 - 17140 [auto.] 0. secs (0.u,0.s) +Chars 17141 - 17145 [Qed.] 0. secs (0.u,0.s) +Chars 17251 - 17467 [Lemma~interp_iforest_trigger~:...] 0. secs (0.u,0.s) +Chars 17468 - 17474 [Proof.] 0. secs (0.u,0.s) +Chars 17477 - 17484 [intros.] 0. secs (0.u,0.s) +Chars 17487 - 17491 [red.] 0. secs (0.u,0.s) +Chars 17494 - 17511 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 17514 - 17515 [-] 0. secs (0.u,0.s) +Chars 17516 - 17538 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 17543 - 17544 [+] 0. secs (0.u,0.s) +Chars 17545 - 17566 [unfold~trigger~in~H0.] 0. secs (0.u,0.s) +Chars 17567 - 17578 [step~in~H0.] 0. secs (0.u,0.s) +Chars 17586 - 17593 [inv~H0.] 0.003 secs (0.003u,0.s) +Chars 17601 - 17623 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) +Chars 17624 - 17646 [apply~inj_pair2~in~H4.] 0. secs (0.u,0.s) +Chars 17653 - 17659 [subst.] 0. secs (0.u,0.s) +Chars 17666 - 17720 [unfold~subevent,~resum,~ReSum_...] 0. secs (0.u,0.s) +Chars 17727 - 17744 [rewrite~eq2~in~H.] 0.012 secs (0.012u,0.s) +Chars 17751 - 17783 [assert~(x~<-~ta;;~k2~x~≈~ta).] 0. secs (0.u,0.s) +Chars 17790 - 17791 [{] 0. secs (0.u,0.s) +Chars 17792 - 17824 [rewrite~<-~(Eqit.bind_ret_r~ta).] 0.001 secs (0.001u,0.s) +Chars 17833 - 17902 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 17911 - 17935 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) +Chars 17936 - 17952 [apply~eutt_Leaf.] 0. secs (0.u,0.s) +Chars 17961 - 17968 [intros.] 0. secs (0.u,0.s) +Chars 17969 - 17981 [destruct~H0.] 0. secs (0.u,0.s) +Chars 17982 - 17988 [subst.] 0. secs (0.u,0.s) +Chars 17989 - 18011 [specialize~(HK~u2~H1).] 0. secs (0.u,0.s) +Chars 18012 - 18023 [step~in~HK.] 0. secs (0.u,0.s) +Chars 18024 - 18031 [inv~HK.] 0.001 secs (0.001u,0.s) +Chars 18038 - 18039 [}] 0. secs (0.u,0.s) +Chars 18046 - 18062 [rewrite~H0~in~H.] 0.013 secs (0.013u,0.s) +Chars 18069 - 18099 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) +Chars 18100 - 18125 [unfold~Eq1_iforest~in~HP.] 0. secs (0.u,0.s) +Chars 18126 - 18153 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) +Chars 18160 - 18170 [rewrite~P.] 0. secs (0.u,0.s) +Chars 18171 - 18181 [apply~HTA.] 0. secs (0.u,0.s) +Chars 18182 - 18191 [symmetry.] 0. secs (0.u,0.s) +Chars 18192 - 18203 [assumption.] 0. secs (0.u,0.s) +Chars 18208 - 18209 [+] 0. secs (0.u,0.s) +Chars 18210 - 18266 [unfold~trigger,~subevent,~resu...] 0. secs (0.u,0.s) +Chars 18273 - 18278 [step.] 0. secs (0.u,0.s) +Chars 18279 - 18339 [eapply~Interp_iforest_Vis~with...] 0. secs (0.u,0.s) +Chars 18346 - 18347 [*] 0. secs (0.u,0.s) +Chars 18348 - 18357 [apply~H0.] 0. secs (0.u,0.s) +Chars 18364 - 18365 [*] 0. secs (0.u,0.s) +Chars 18366 - 18391 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 18392 - 18416 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) +Chars 18417 - 18428 [assumption.] 0. secs (0.u,0.s) +Chars 18435 - 18436 [*] 0. secs (0.u,0.s) +Chars 18437 - 18444 [intros.] 0. secs (0.u,0.s) +Chars 18445 - 18450 [step.] 0. secs (0.u,0.s) +Chars 18451 - 18471 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 18474 - 18475 [-] 0. secs (0.u,0.s) +Chars 18476 - 18480 [hnf.] 0. secs (0.u,0.s) +Chars 18481 - 18503 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 18508 - 18521 [rewrite~<-~H.] 0.028 secs (0.028u,0.s) +Chars 18522 - 18533 [assumption.] 0. secs (0.u,0.s) +Chars 18538 - 18548 [rewrite~H.] 0.027 secs (0.026u,0.s) +Chars 18549 - 18560 [assumption.] 0. secs (0.u,0.s) +Chars 18563 - 18564 [-] 0. secs (0.u,0.s) +Chars 18565 - 18569 [hnf.] 0. secs (0.u,0.s) +Chars 18574 - 18596 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 18601 - 18631 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) +Chars 18632 - 18659 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) +Chars 18664 - 18681 [rewrite~P;~eauto.] 0. secs (0.u,0.s) +Chars 18682 - 18691 [symmetry.] 0. secs (0.u,0.s) +Chars 18692 - 18703 [assumption.] 0. secs (0.u,0.s) +Chars 18708 - 18738 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) +Chars 18739 - 18766 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) +Chars 18771 - 18788 [rewrite~P;~eauto.] 0. secs (0.u,0.s) +Chars 18789 - 18793 [Qed.] 0.008 secs (0.008u,0.s) +Chars 19261 - 19411 [Lemma~interp_iforest_spin_acce...] 0. secs (0.u,0.s) +Chars 19412 - 19418 [Proof.] 0. secs (0.u,0.s) +Chars 19421 - 19428 [intros.] 0. secs (0.u,0.s) +Chars 19431 - 19450 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19451 - 19455 [cbn.] 0. secs (0.u,0.s) +Chars 19456 - 19469 [econstructor.] 0. secs (0.u,0.s) +Chars 19470 - 19480 [apply~CIH.] 0. secs (0.u,0.s) +Chars 19482 - 19486 [Qed.] 0. secs (0.u,0.s) +Chars 19527 - 19720 [Lemma~interp_iforest_tau~:~~~f...] 0. secs (0.u,0.s) +Chars 19721 - 19727 [Proof.] 0. secs (0.u,0.s) +Chars 19730 - 19737 [intros.] 0. secs (0.u,0.s) +Chars 19740 - 19757 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 19760 - 19761 [-] 0. secs (0.u,0.s) +Chars 19762 - 19784 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 19789 - 19790 [+] 0. secs (0.u,0.s) +Chars 19791 - 19804 [rewrite~<-~H.] 0.022 secs (0.022u,0.s) +Chars 19811 - 19816 [step.] 0. secs (0.u,0.s) +Chars 19817 - 19834 [now~econstructor.] 0. secs (0.u,0.s) +Chars 19840 - 19841 [+] 0. secs (0.u,0.s) +Chars 19842 - 19852 [rewrite~H.] 0.023 secs (0.022u,0.s) +Chars 19859 - 19870 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19871 - 19878 [inv~H0.] 0.001 secs (0.001u,0.s) +Chars 19881 - 19882 [-] 0. secs (0.u,0.s) +Chars 19883 - 19901 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 19904 - 19905 [-] 0. secs (0.u,0.s) +Chars 19906 - 19924 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 19925 - 19929 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0. secs (0.u,0.s) +Chars 20131 - 20137 [Proof.] 0. secs (0.u,0.s) +Chars 20140 - 20147 [intros.] 0. secs (0.u,0.s) +Chars 20150 - 20160 [step~in~H.] 0. secs (0.u,0.s) +Chars 20161 - 20167 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 20171 - 20188 [exists~r2;~eauto.] 0. secs (0.u,0.s) +Chars 20189 - 20193 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0.001 secs (0.001u,0.s) +Chars 20468 - 20474 [Proof.] 0. secs (0.u,0.s) +Chars 20477 - 20484 [intros.] 0. secs (0.u,0.s) +Chars 20487 - 20494 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 20498 - 20520 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) +Chars 20523 - 20545 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) +Chars 20548 - 20554 [subst.] 0. secs (0.u,0.s) +Chars 20557 - 20567 [exists~ta.] 0. secs (0.u,0.s) +Chars 20568 - 20578 [exists~k2.] 0. secs (0.u,0.s) +Chars 20579 - 20591 [split;~auto.] 0. secs (0.u,0.s) +Chars 20592 - 20596 [Qed.] 0.002 secs (0.002u,0.s) +Chars 20598 - 20796 [Lemma~interp_iforest_tau_inv~:...] 0. secs (0.u,0.s) +Chars 20797 - 20803 [Proof.] 0. secs (0.u,0.s) +Chars 20806 - 20813 [intros.] 0. secs (0.u,0.s) +Chars 20816 - 20823 [sinv~H.] 0.001 secs (0.001u,0.s) +Chars 20825 - 20829 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.001 secs (0.001u,0.s) +Chars 21130 - 21136 [Proof.] 0. secs (0.u,0.s) +Chars 21139 - 21182 [intros~E1~E2~F~h1_spec~h2_spec...] 0. secs (0.u,0.s) +Chars 21185 - 21213 [unfold~handler_correct~in~*.] 0. secs (0.u,0.s) +Chars 21216 - 21227 [intros~T~e.] 0. secs (0.u,0.s) +Chars 21230 - 21241 [destruct~e.] 0. secs (0.u,0.s) +Chars 21242 - 21251 [apply~C1.] 0. secs (0.u,0.s) +Chars 21252 - 21261 [apply~C2.] 0. secs (0.u,0.s) +Chars 21262 - 21266 [Qed.] 0. secs (0.u,0.s) +Chars 21268 - 21500 [Definition~iforest_compose~{F~...] 0. secs (0.u,0.s) +Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0. secs (0.u,0.s) +Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0. secs (0.u,0.s) +Chars 21849 - 21993 [Definition~iter_cont~{I}~{E}~{...] 0. secs (0.u,0.s) +Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) +Chars 22317 - 22547 [Lemma~eqit_Leaf_bind'~{E}~{R}~...] 0. secs (0.u,0.s) +Chars 22548 - 22554 [Proof.] 0. secs (0.u,0.s) +Chars 22557 - 22564 [intros.] 0. secs (0.u,0.s) +Chars 22565 - 22597 [eapply~eqit_clo_bind_gen;~eauto.] 0.004 secs (0.004u,0.s) +Chars 22598 - 22612 [intros;~subst.] 0. secs (0.u,0.s) +Chars 22616 - 22626 [eapply~H0.] 0. secs (0.u,0.s) +Chars 22627 - 22633 [eauto.] 0. secs (0.u,0.s) +Chars 22635 - 22639 [Qed.] 0. secs (0.u,0.s) +Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0. secs (0.u,0.s) +Chars 22916 - 22922 [Proof.] 0. secs (0.u,0.s) +Chars 22925 - 22932 [intros.] 0. secs (0.u,0.s) +Chars 22933 - 22965 [eapply~eqit_clo_bind_gen;~eauto.] 0.002 secs (0.002u,0.s) +Chars 22966 - 22980 [intros;~subst.] 0. secs (0.u,0.s) +Chars 22984 - 22994 [eapply~H0.] 0. secs (0.u,0.s) +Chars 22995 - 23001 [eauto.] 0. secs (0.u,0.s) +Chars 23003 - 23007 [Qed.] 0. secs (0.u,0.s) +Chars 23009 - 23094 [Lemma~eutt_ret_vis_abs~:~~~for...] 0. secs (0.u,0.s) +Chars 23095 - 23101 [Proof.] 0. secs (0.u,0.s) +Chars 23104 - 23111 [intros.] 0. secs (0.u,0.s) +Chars 23114 - 23125 [now~sinv~H.] 0.001 secs (0.001u,0.s) +Chars 23127 - 23131 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23139 - 23218 [Ltac~simpl_iter~:=~unfold~iter...] 0. secs (0.u,0.s) +Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.006 secs (0.006u,0.s) +Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0. secs (0.u,0.s) +Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.001 secs (0.001u,0.s) +Chars 23925 - 23931 [Proof.] 0. secs (0.u,0.s) +Chars 23934 - 23941 [intros.] 0. secs (0.u,0.s) +Chars 23942 - 23965 [rewrite~iter_dinatural.] 0.004 secs (0.004u,0.s) +Chars 23966 - 23978 [reflexivity.] 0. secs (0.u,0.s) +Chars 23979 - 23983 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.008 secs (0.008u,0.s) +Chars 24680 - 24686 [Proof.] 0. secs (0.u,0.s) +Chars 24689 - 24708 [intros~a~b~m~x0~a1.] 0. secs (0.u,0.s) +Chars 24711 - 24756 [pose~proof~(iter_succ_dinatura...] 0. secs (0.u,0.s) +Chars 24759 - 24783 [specialize~(H0~(a1,~0)).] 0. secs (0.u,0.s) +Chars 24786 - 24814 [unfold~f~at~1,~g~at~1~in~H0.] 0. secs (0.u,0.s) +Chars 24817 - 24857 [unfold~cat~at~1,~Cat_Kleisli~a...] 0. secs (0.u,0.s) +Chars 24860 - 24979 [match~goal~with~|~H:(?body1~≈~...] 0.001 secs (0.001u,0.s) +Chars 24981 - 25000 [assert~(s1~≈~s2).] 0. secs (0.u,0.s) +Chars 25001 - 25002 [{] 0. secs (0.u,0.s) +Chars 25007 - 25013 [subst.] 0. secs (0.u,0.s) +Chars 25018 - 25171 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) +Chars 25176 - 25205 [assert~(iter~k1~⩯~iter~k2).] 0. secs (0.u,0.s) +Chars 25206 - 25207 [{] 0. secs (0.u,0.s) +Chars 25214 - 25243 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 25250 - 25256 [subst.] 0. secs (0.u,0.s) +Chars 25257 - 25266 [do~3~red.] 0. secs (0.u,0.s) +Chars 25267 - 25274 [intros.] 0. secs (0.u,0.s) +Chars 25281 - 25324 [destruct~a0;~rewrite~Monad.bin...] 0.004 secs (0.003u,0.s) +Chars 25331 - 25343 [reflexivity.] 0. secs (0.u,0.s) +Chars 25348 - 25349 [}] 0. secs (0.u,0.s) +Chars 25354 - 25368 [do~3~red~in~H.] 0. secs (0.u,0.s) +Chars 25373 - 25381 [apply~H.] 0. secs (0.u,0.s) +Chars 25384 - 25385 [}] 0. secs (0.u,0.s) +Chars 25388 - 25401 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 25402 - 25408 [subst.] 0.001 secs (0.001u,0.s) +Chars 25409 - 25417 [clear~H.] 0. secs (0.u,0.s) +Chars 25418 - 25429 [rewrite~H0.] 0.002 secs (0.002u,0.s) +Chars 25432 - 25444 [unfold~f,~g.] 0. secs (0.u,0.s) +Chars 25447 - 25471 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 25472 - 25497 [rewrite~Monad.bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 25500 - 25504 [cbn.] 0. secs (0.u,0.s) +Chars 25507 - 25615 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) +Chars 25618 - 25647 [assert~(iter~i1~⩯~iter~i2).] 0. secs (0.u,0.s) +Chars 25648 - 25649 [{] 0. secs (0.u,0.s) +Chars 25654 - 25683 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 25688 - 25694 [subst.] 0. secs (0.u,0.s) +Chars 25699 - 25708 [do~3~red.] 0. secs (0.u,0.s) +Chars 25709 - 25716 [intros.] 0. secs (0.u,0.s) +Chars 25721 - 25733 [destruct~a0.] 0. secs (0.u,0.s) +Chars 25734 - 25757 [rewrite~Eqit.bind_bind.] 0.002 secs (0.002u,0.s) +Chars 25762 - 25784 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 25785 - 25797 [reflexivity.] 0. secs (0.u,0.s) +Chars 25802 - 25809 [intros.] 0. secs (0.u,0.s) +Chars 25810 - 25820 [rewrite~H.] 0. secs (0.u,0.s) +Chars 25821 - 25880 [destruct~u2;~rewrite~Eqit.bind...] 0.004 secs (0.004u,0.s) +Chars 25883 - 25884 [}] 0. secs (0.u,0.s) +Chars 25887 - 25901 [do~3~red~in~H.] 0. secs (0.u,0.s) +Chars 25904 - 25912 [apply~H.] 0. secs (0.u,0.s) +Chars 25913 - 25917 [Qed.] 0.01 secs (0.01u,0.s) +Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0.001 secs (0.001u,0.s) +Chars 26139 - 26240 [Lemma~Eq1_iforest'_Eq1_iforest...] 0. secs (0.u,0.s) +Chars 26241 - 26247 [Proof.] 0. secs (0.u,0.s) +Chars 26250 - 26257 [intros.] 0. secs (0.u,0.s) +Chars 26260 - 26264 [red.] 0. secs (0.u,0.s) +Chars 26267 - 26276 [red~in~H.] 0. secs (0.u,0.s) +Chars 26279 - 26312 [destruct~H~as~(HXY,~(EPA,~EPA')).] 0. secs (0.u,0.s) +Chars 26315 - 26321 [split.] 0. secs (0.u,0.s) +Chars 26324 - 26331 [intros.] 0. secs (0.u,0.s) +Chars 26334 - 26343 [exists~x.] 0. secs (0.u,0.s) +Chars 26344 - 26366 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) +Chars 26367 - 26388 [specialize~(HXY~x~x).] 0. secs (0.u,0.s) +Chars 26390 - 26400 [apply~HXY.] 0. secs (0.u,0.s) +Chars 26401 - 26413 [reflexivity.] 0. secs (0.u,0.s) +Chars 26414 - 26425 [assumption.] 0. secs (0.u,0.s) +Chars 26428 - 26445 [split;~try~tauto.] 0. secs (0.u,0.s) +Chars 26448 - 26455 [intros.] 0. secs (0.u,0.s) +Chars 26458 - 26467 [exists~y.] 0. secs (0.u,0.s) +Chars 26468 - 26490 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) +Chars 26491 - 26512 [specialize~(HXY~y~y).] 0. secs (0.u,0.s) +Chars 26514 - 26524 [apply~HXY.] 0. secs (0.u,0.s) +Chars 26525 - 26537 [reflexivity.] 0. secs (0.u,0.s) +Chars 26538 - 26549 [assumption.] 0. secs (0.u,0.s) +Chars 26550 - 26554 [Qed.] 0. secs (0.u,0.s) +Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0. secs (0.u,0.s) +Chars 26740 - 26746 [Proof.] 0. secs (0.u,0.s) +Chars 26749 - 26756 [intros.] 0. secs (0.u,0.s) +Chars 26759 - 26776 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 26779 - 26780 [-] 0. secs (0.u,0.s) +Chars 26781 - 26817 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) +Chars 26822 - 26823 [*] 0. secs (0.u,0.s) +Chars 26824 - 26833 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 26840 - 26860 [repeat~red~in~eqtt'.] 0. secs (0.u,0.s) +Chars 26867 - 26911 [destruct~eqtt'~as~(ta,~(k,~(EQ...] 0. secs (0.u,0.s) +Chars 26916 - 26917 [+] 0. secs (0.u,0.s) +Chars 26918 - 26950 [unfold~bind,~Monad_itree~in~EQ2.] 0. secs (0.u,0.s) +Chars 26951 - 26991 [rewrite~EQ1,~Eqit.bind_ret_l,~...] 0.033 secs (0.032u,0.s) +Chars 26998 - 27031 [eapply~H;~[~apply~EQ2~|~apply~...] 0. secs (0.u,0.s) +Chars 27038 - 27050 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) +Chars 27051 - 27070 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 27074 - 27075 [*] 0. secs (0.u,0.s) +Chars 27076 - 27080 [cbn.] 0. secs (0.u,0.s) +Chars 27086 - 27145 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) +Chars 27152 - 27153 [+] 0. secs (0.u,0.s) +Chars 27154 - 27179 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 27180 - 27217 [rewrite~Eqit.bind_ret_l;~refle...] 0. secs (0.u,0.s) +Chars 27224 - 27225 [+] 0. secs (0.u,0.s) +Chars 27226 - 27233 [intros.] 0. secs (0.u,0.s) +Chars 27234 - 27266 [apply~Leaf_Ret_inv~in~H0;~subst.] 0. secs (0.u,0.s) +Chars 27267 - 27289 [revert~eqtt';~apply~H.] 0. secs (0.u,0.s) +Chars 27290 - 27295 [auto.] 0. secs (0.u,0.s) +Chars 27298 - 27299 [-] 0. secs (0.u,0.s) +Chars 27300 - 27338 [intros~t~t'~EQ;~cbn;~split;~in...] 0. secs (0.u,0.s) +Chars 27343 - 27344 [*] 0. secs (0.u,0.s) +Chars 27345 - 27386 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) +Chars 27393 - 27453 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) +Chars 27460 - 27462 [--] 0. secs (0.u,0.s) +Chars 27463 - 27488 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 27489 - 27513 [rewrite~Eqit.bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 27514 - 27523 [symmetry.] 0. secs (0.u,0.s) +Chars 27524 - 27535 [assumption.] 0. secs (0.u,0.s) +Chars 27542 - 27544 [--] 0. secs (0.u,0.s) +Chars 27545 - 27558 [intros~?~RET.] 0. secs (0.u,0.s) +Chars 27559 - 27592 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) +Chars 27593 - 27610 [rewrite~EQ2,~EQ1.] 0.006 secs (0.006u,0.s) +Chars 27620 - 27624 [cbn.] 0. secs (0.u,0.s) +Chars 27625 - 27644 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 27645 - 27654 [apply~KA.] 0. secs (0.u,0.s) +Chars 27655 - 27667 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) +Chars 27668 - 27686 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 27691 - 27692 [*] 0. secs (0.u,0.s) +Chars 27693 - 27734 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) +Chars 27741 - 27801 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) +Chars 27808 - 27810 [--] 0. secs (0.u,0.s) +Chars 27811 - 27836 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 27837 - 27861 [rewrite~Eqit.bind_ret_l.] 0. secs (0.u,0.s) +Chars 27862 - 27874 [reflexivity.] 0. secs (0.u,0.s) +Chars 27881 - 27883 [--] 0. secs (0.u,0.s) +Chars 27884 - 27897 [intros~?~RET.] 0. secs (0.u,0.s) +Chars 27898 - 27931 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) +Chars 27932 - 27953 [rewrite~EQ,~EQ2,~EQ1.] 0.009 secs (0.009u,0.s) +Chars 27963 - 27967 [cbn.] 0. secs (0.u,0.s) +Chars 27968 - 27987 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 27988 - 27997 [apply~KA.] 0. secs (0.u,0.s) +Chars 27998 - 28010 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) +Chars 28011 - 28029 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 28032 - 28033 [-] 0. secs (0.u,0.s) +Chars 28034 - 28045 [assumption.] 0. secs (0.u,0.s) +Chars 28046 - 28050 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28052 - 28177 [#[global]~Instance~bind_ifores...] 0. secs (0.u,0.s) +Chars 28178 - 28184 [Proof.] 0. secs (0.u,0.s) +Chars 28187 - 28255 [repeat~red;~intros~PA1~PA2~EQP...] 0. secs (0.u,0.s) +Chars 28258 - 28259 [-] 0. secs (0.u,0.s) +Chars 28260 - 28298 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) +Chars 28303 - 28307 [red.] 0. secs (0.u,0.s) +Chars 28312 - 28325 [exists~ta,k.] 0. secs (0.u,0.s) +Chars 28326 - 28332 [split.] 0. secs (0.u,0.s) +Chars 28337 - 28338 [+] 0. secs (0.u,0.s) +Chars 28339 - 28352 [destruct~EQP.] 0. secs (0.u,0.s) +Chars 28353 - 28369 [apply~(H~ta~ta).] 0. secs (0.u,0.s) +Chars 28370 - 28382 [reflexivity.] 0. secs (0.u,0.s) +Chars 28383 - 28394 [assumption.] 0. secs (0.u,0.s) +Chars 28399 - 28400 [+] 0. secs (0.u,0.s) +Chars 28401 - 28407 [split.] 0. secs (0.u,0.s) +Chars 28408 - 28423 [rewrite~<-~EQt.] 0. secs (0.u,0.s) +Chars 28424 - 28435 [assumption.] 0. secs (0.u,0.s) +Chars 28436 - 28443 [intros.] 0. secs (0.u,0.s) +Chars 28450 - 28468 [repeat~red~in~EQK.] 0. secs (0.u,0.s) +Chars 28470 - 28499 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) +Chars 28500 - 28513 [destruct~EQK.] 0. secs (0.u,0.s) +Chars 28520 - 28534 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 28535 - 28544 [apply~HK.] 0. secs (0.u,0.s) +Chars 28545 - 28556 [assumption.] 0. secs (0.u,0.s) +Chars 28557 - 28569 [reflexivity.] 0. secs (0.u,0.s) +Chars 28571 - 28572 [-] 0. secs (0.u,0.s) +Chars 28574 - 28612 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) +Chars 28617 - 28621 [red.] 0. secs (0.u,0.s) +Chars 28626 - 28639 [exists~ta,k.] 0. secs (0.u,0.s) +Chars 28640 - 28646 [split.] 0. secs (0.u,0.s) +Chars 28651 - 28652 [+] 0. secs (0.u,0.s) +Chars 28653 - 28666 [destruct~EQP.] 0. secs (0.u,0.s) +Chars 28667 - 28683 [apply~(H~ta~ta).] 0. secs (0.u,0.s) +Chars 28684 - 28696 [reflexivity.] 0. secs (0.u,0.s) +Chars 28697 - 28708 [assumption.] 0. secs (0.u,0.s) +Chars 28713 - 28714 [+] 0. secs (0.u,0.s) +Chars 28715 - 28721 [split.] 0. secs (0.u,0.s) +Chars 28722 - 28734 [rewrite~EQt.] 0. secs (0.u,0.s) +Chars 28735 - 28746 [assumption.] 0. secs (0.u,0.s) +Chars 28747 - 28754 [intros.] 0. secs (0.u,0.s) +Chars 28761 - 28779 [repeat~red~in~EQK.] 0. secs (0.u,0.s) +Chars 28781 - 28810 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) +Chars 28811 - 28824 [destruct~EQK.] 0. secs (0.u,0.s) +Chars 28831 - 28842 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 28843 - 28852 [apply~HK.] 0. secs (0.u,0.s) +Chars 28853 - 28864 [assumption.] 0. secs (0.u,0.s) +Chars 28865 - 28877 [reflexivity.] 0. secs (0.u,0.s) +Chars 28878 - 28882 [Qed.] 0.002 secs (0.002u,0.s) +Chars 28884 - 29021 [#[global]~Instance~bind_Propt_...] 0. secs (0.u,0.s) +Chars 29022 - 29028 [Proof.] 0. secs (0.u,0.s) +Chars 29031 - 29042 [repeat~red.] 0. secs (0.u,0.s) +Chars 29045 - 29052 [intros.] 0. secs (0.u,0.s) +Chars 29055 - 29072 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 29075 - 29114 [destruct~H0~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) +Chars 29117 - 29130 [exists~ta,k.] 0. secs (0.u,0.s) +Chars 29131 - 29143 [split;~auto.] 0. secs (0.u,0.s) +Chars 29144 - 29150 [split.] 0. secs (0.u,0.s) +Chars 29151 - 29167 [rewrite~H;~auto.] 0. secs (0.u,0.s) +Chars 29168 - 29179 [assumption.] 0. secs (0.u,0.s) +Chars 29180 - 29184 [Qed.] 0.001 secs (0.001u,0.s) +Chars 29186 - 29259 [#[local]~Notation~agrees_itree...] 0. secs (0.u,0.s) +Chars 29261 - 29506 [Definition~bind_stronger~{E}~{...] 0.001 secs (0.001u,0.s) +Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0. secs (0.u,0.s) +Chars 29681 - 29687 [Proof.] 0. secs (0.u,0.s) +Chars 29690 - 29704 [split;~intros.] 0. secs (0.u,0.s) +Chars 29707 - 29708 [-] 0. secs (0.u,0.s) +Chars 29709 - 29713 [cbn.] 0. secs (0.u,0.s) +Chars 29714 - 29718 [red.] 0. secs (0.u,0.s) +Chars 29723 - 29740 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 29745 - 29769 [eapply~eqit_Leaf_bind''.] 0. secs (0.u,0.s) +Chars 29774 - 29775 [+] 0. secs (0.u,0.s) +Chars 29776 - 29788 [reflexivity.] 0. secs (0.u,0.s) +Chars 29793 - 29794 [+] 0. secs (0.u,0.s) +Chars 29795 - 29802 [intros.] 0. secs (0.u,0.s) +Chars 29803 - 29818 [apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 29819 - 29827 [apply~H.] 0. secs (0.u,0.s) +Chars 29828 - 29839 [assumption.] 0. secs (0.u,0.s) +Chars 29842 - 29843 [-] 0. secs (0.u,0.s) +Chars 29844 - 29853 [revert~H.] 0. secs (0.u,0.s) +Chars 29858 - 29920 [induction~H0;~cbn;~unfold~ITre...] 0.062 secs (0.061u,0.s) +Chars 29925 - 29926 [+] 0. secs (0.u,0.s) +Chars 29927 - 29963 [intros~H';~apply~eqit_inv_Ret~...] 0. secs (0.u,0.s) +Chars 29964 - 29969 [auto.] 0. secs (0.u,0.s) +Chars 29974 - 29975 [+] 0. secs (0.u,0.s) +Chars 29976 - 30009 [rewrite~2!tau_eutt;~apply~IHLeaf.] 0.019 secs (0.018u,0.s) +Chars 30014 - 30015 [+] 0. secs (0.u,0.s) +Chars 30016 - 30053 [intros~H';~eapply~eqit_inv_Vis...] 0. secs (0.u,0.s) +Chars 30054 - 30060 [eauto.] 0. secs (0.u,0.s) +Chars 30061 - 30065 [Qed.] 0.005 secs (0.005u,0.s) +Chars 30067 - 30279 [Lemma~distinguish_bind~{E}~{A}...] 0. secs (0.u,0.s) +Chars 30280 - 30286 [Proof.] 0. secs (0.u,0.s) +Chars 30289 - 30339 [intros~HI;~eapply~eqit_bind_Le...] 0. secs (0.u,0.s) +Chars 30340 - 30344 [Qed.] 0. secs (0.u,0.s) +Chars 30346 - 30502 [Lemma~not_Leaf~{E}~{A}~{B}~:~~...] 0. secs (0.u,0.s) +Chars 30503 - 30509 [Proof.] 0. secs (0.u,0.s) +Chars 30512 - 30541 [intros~[b]~ta~[tb~HK]~a~HRet.] 0. secs (0.u,0.s) +Chars 30542 - 30585 [revert~tb~HK;~induction~HRet;~...] 0. secs (0.u,0.s) +Chars 30588 - 30589 [-] 0. secs (0.u,0.s) +Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.007u,0.s) +Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.002 secs (0.002u,0.s) +Chars 30652 - 30690 [generalize~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) +Chars 30691 - 30721 [rewrite~(HK~(fun~_~=>~ret~b)).] 0.008 secs (0.008u,0.s) +Chars 30726 - 30750 [apply~eutt_Ret_spin_abs.] 0. secs (0.u,0.s) +Chars 30753 - 30754 [-] 0. secs (0.u,0.s) +Chars 30755 - 30774 [eapply~(IHHRet~tb).] 0. secs (0.u,0.s) +Chars 30775 - 30803 [intros~k;~specialize~(HK~k).] 0. secs (0.u,0.s) +Chars 30808 - 30818 [cbn~in~HK.] 0. secs (0.u,0.s) +Chars 30819 - 30848 [rewrite~unfold_bind,~H~in~HK.] 0.018 secs (0.018u,0.s) +Chars 30849 - 30872 [rewrite~tau_eutt~in~HK.] 0. secs (0.u,0.s) +Chars 30873 - 30878 [auto.] 0. secs (0.u,0.s) +Chars 30881 - 30882 [-] 0. secs (0.u,0.s) +Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.008u,0.s) +Chars 30917 - 30951 [setoid_rewrite~H~in~HK;~clear~...] 0.002 secs (0.002u,0.s) +Chars 30956 - 30996 [pose~proof~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) +Chars 31001 - 31057 [apply~(IHHRet~(ITree.bind~(k~x...] 0. secs (0.u,0.s) +Chars 31062 - 31095 [intros~k';~rewrite~(HK~k')~in~t2.] 0.011 secs (0.011u,0.s) +Chars 31100 - 31143 [eapply~eqit_inv_Vis~in~t2;~sym...] 0. secs (0.u,0.s) +Chars 31144 - 31148 [Qed.] 0.003 secs (0.003u,0.s) +Chars 31206 - 31324 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) +Chars 31325 - 31331 [Proof.] 0. secs (0.u,0.s) +Chars 31334 - 31341 [intros.] 0. secs (0.u,0.s) +Chars 31344 - 31361 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 31364 - 31365 [+] 0. secs (0.u,0.s) +Chars 31366 - 31402 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) +Chars 31407 - 31408 [*] 0. secs (0.u,0.s) +Chars 31409 - 31418 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 31425 - 31470 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) +Chars 31477 - 31519 [eapply~H;~[~symmetry;~eauto~|~...] 0. secs (0.u,0.s) +Chars 31526 - 31557 [eapply~H;~[~eauto~|~clear~EQ~t~].] 0. secs (0.u,0.s) +Chars 31564 - 31573 [eapply~H.] 0. secs (0.u,0.s) +Chars 31574 - 31583 [2:~eauto.] 0. secs (0.u,0.s) +Chars 31590 - 31630 [rewrite~<-~(Monad.bind_ret_r~_...] 0. secs (0.u,0.s) +Chars 31637 - 31676 [apply~eqit_Leaf_bind';~[~refle...] 0. secs (0.u,0.s) +Chars 31685 - 31692 [intros.] 0. secs (0.u,0.s) +Chars 31701 - 31724 [rewrite~(HRET~r);~auto.] 0. secs (0.u,0.s) +Chars 31730 - 31731 [*] 0. secs (0.u,0.s) +Chars 31732 - 31736 [cbn.] 0. secs (0.u,0.s) +Chars 31743 - 31794 [exists~t',(fun~x~=>~Ret~x);~sp...] 0. secs (0.u,0.s) +Chars 31801 - 31826 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 31827 - 31857 [rewrite~Eqit.bind_ret_r;~auto.] 0. secs (0.u,0.s) +Chars 31864 - 31884 [intros;~reflexivity.] 0. secs (0.u,0.s) +Chars 31888 - 31889 [+] 0. secs (0.u,0.s) +Chars 31890 - 31925 [intros~x~y~EQ;~split;~intros~e...] 0. secs (0.u,0.s) +Chars 31930 - 31931 [*] 0. secs (0.u,0.s) +Chars 31932 - 31941 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 31948 - 31994 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) +Chars 32001 - 32043 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) +Chars 32050 - 32070 [rewrite~<-~EQ;~auto.] 0. secs (0.u,0.s) +Chars 32076 - 32077 [*] 0. secs (0.u,0.s) +Chars 32078 - 32087 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 32094 - 32140 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) +Chars 32147 - 32189 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) +Chars 32196 - 32213 [rewrite~EQ;~auto.] 0. secs (0.u,0.s) +Chars 32216 - 32217 [+] 0. secs (0.u,0.s) +Chars 32218 - 32223 [auto.] 0. secs (0.u,0.s) +Chars 32224 - 32228 [Qed.] 0.002 secs (0.002u,0.s) +Chars 32230 - 32323 [Definition~EQ_REL~{E}~{A}~(ta~...] 0. secs (0.u,0.s) +Chars 32325 - 32395 [Lemma~Symmteric_EQ_REL~{E}~{A}...] 0. secs (0.u,0.s) +Chars 32396 - 32402 [Proof.] 0. secs (0.u,0.s) +Chars 32405 - 32416 [repeat~red.] 0. secs (0.u,0.s) +Chars 32419 - 32439 [intros~a~b~(EQ,~H).] 0. secs (0.u,0.s) +Chars 32442 - 32448 [split.] 0. secs (0.u,0.s) +Chars 32451 - 32452 [-] 0. secs (0.u,0.s) +Chars 32453 - 32462 [symmetry.] 0. secs (0.u,0.s) +Chars 32463 - 32474 [assumption.] 0. secs (0.u,0.s) +Chars 32477 - 32478 [-] 0. secs (0.u,0.s) +Chars 32479 - 32491 [subst;~auto.] 0. secs (0.u,0.s) +Chars 32492 - 32496 [Qed.] 0. secs (0.u,0.s) +Chars 32498 - 32570 [Lemma~Transitive_EQ_REL~{E}~{A...] 0. secs (0.u,0.s) +Chars 32571 - 32577 [Proof.] 0. secs (0.u,0.s) +Chars 32580 - 32591 [repeat~red.] 0. secs (0.u,0.s) +Chars 32594 - 32629 [intros~a~b~c~(EQ1,~H1)~(EQ2,~H2).] 0. secs (0.u,0.s) +Chars 32632 - 32638 [split.] 0. secs (0.u,0.s) +Chars 32641 - 32642 [-] 0. secs (0.u,0.s) +Chars 32643 - 32655 [rewrite~EQ1.] 0. secs (0.u,0.s) +Chars 32656 - 32667 [assumption.] 0. secs (0.u,0.s) +Chars 32670 - 32671 [-] 0. secs (0.u,0.s) +Chars 32672 - 32683 [assumption.] 0. secs (0.u,0.s) +Chars 32684 - 32688 [Qed.] 0. secs (0.u,0.s) +Chars 32690 - 32784 [#[global]~Instance~EQ_REL_Prop...] 0. secs (0.u,0.s) +Chars 32785 - 32791 [Proof.] 0. secs (0.u,0.s) +Chars 32794 - 32805 [repeat~red.] 0. secs (0.u,0.s) +Chars 32808 - 32815 [intros.] 0. secs (0.u,0.s) +Chars 32816 - 32822 [subst.] 0. secs (0.u,0.s) +Chars 32825 - 32859 [split;~intros;~unfold~EQ_REL~i...] 0. secs (0.u,0.s) +Chars 32862 - 32863 [-] 0. secs (0.u,0.s) +Chars 32864 - 32870 [split.] 0. secs (0.u,0.s) +Chars 32871 - 32883 [destruct~H0.] 0. secs (0.u,0.s) +Chars 32884 - 32895 [assumption.] 0. secs (0.u,0.s) +Chars 32896 - 32908 [destruct~H0.] 0. secs (0.u,0.s) +Chars 32913 - 32920 [intros.] 0. secs (0.u,0.s) +Chars 32921 - 32934 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 32935 - 32946 [assumption.] 0. secs (0.u,0.s) +Chars 32949 - 32950 [-] 0. secs (0.u,0.s) +Chars 32951 - 32963 [destruct~H0.] 0. secs (0.u,0.s) +Chars 32968 - 32974 [split.] 0. secs (0.u,0.s) +Chars 32975 - 32986 [assumption.] 0. secs (0.u,0.s) +Chars 32991 - 32998 [intros.] 0. secs (0.u,0.s) +Chars 32999 - 33009 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 33010 - 33021 [assumption.] 0. secs (0.u,0.s) +Chars 33022 - 33026 [Qed.] 0.001 secs (0.001u,0.s) +Chars 33028 - 33147 [#[global]~Instance~eutt_EQ_REL...] 0. secs (0.u,0.s) +Chars 33148 - 33154 [Proof.] 0. secs (0.u,0.s) +Chars 33157 - 33168 [repeat~red.] 0. secs (0.u,0.s) +Chars 33171 - 33193 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 33196 - 33197 [-] 0. secs (0.u,0.s) +Chars 33199 - 33213 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 33214 - 33228 [rewrite~<-~H1.] 0.001 secs (0.001u,0.s) +Chars 33234 - 33246 [clear~H0~H1.] 0. secs (0.u,0.s) +Chars 33252 - 33263 [destruct~H.] 0. secs (0.u,0.s) +Chars 33269 - 33293 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) +Chars 33296 - 33297 [-] 0. secs (0.u,0.s) +Chars 33298 - 33313 [rewrite~H0,~H1.] 0.001 secs (0.001u,0.s) +Chars 33318 - 33329 [destruct~H.] 0. secs (0.u,0.s) +Chars 33334 - 33358 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) +Chars 33359 - 33363 [Qed.] 0. secs (0.u,0.s) +Chars 33365 - 33468 [Lemma~eutt_EQ_REL_Reflexive_~{...] 0. secs (0.u,0.s) +Chars 33469 - 33475 [Proof.] 0. secs (0.u,0.s) +Chars 33478 - 33488 [revert~ta.] 0. secs (0.u,0.s) +Chars 33491 - 33510 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 33511 - 33527 [intros~ta~R~HEQ.] 0. secs (0.u,0.s) +Chars 33530 - 33544 [desobs~ta~hta.] 0. secs (0.u,0.s) +Chars 33548 - 33549 [-] 0. secs (0.u,0.s) +Chars 33550 - 33563 [econstructor.] 0. secs (0.u,0.s) +Chars 33564 - 33574 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 33575 - 33579 [red.] 0. secs (0.u,0.s) +Chars 33580 - 33592 [split;~auto.] 0. secs (0.u,0.s) +Chars 33598 - 33616 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) +Chars 33617 - 33629 [rewrite~hta.] 0. secs (0.u,0.s) +Chars 33630 - 33646 [now~constructor.] 0. secs (0.u,0.s) +Chars 33650 - 33651 [-] 0. secs (0.u,0.s) +Chars 33652 - 33665 [econstructor.] 0. secs (0.u,0.s) +Chars 33666 - 33676 [apply~CIH.] 0. secs (0.u,0.s) +Chars 33677 - 33685 [intros~!.] 0. secs (0.u,0.s) +Chars 33686 - 33696 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 33702 - 33706 [red.] 0. secs (0.u,0.s) +Chars 33707 - 33718 [destruct~H.] 0. secs (0.u,0.s) +Chars 33719 - 33731 [split;~auto.] 0. secs (0.u,0.s) +Chars 33737 - 33759 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 33763 - 33764 [-] 0. secs (0.u,0.s) +Chars 33765 - 33786 [econstructor;~intros.] 0. secs (0.u,0.s) +Chars 33787 - 33797 [apply~CIH.] 0. secs (0.u,0.s) +Chars 33803 - 33811 [intros~!.] 0. secs (0.u,0.s) +Chars 33812 - 33822 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 33827 - 33850 [rewrite~itree_eta,~hta.] 0.001 secs (0.001u,0.s) +Chars 33855 - 33866 [destruct~H.] 0. secs (0.u,0.s) +Chars 33871 - 33883 [split;~auto.] 0. secs (0.u,0.s) +Chars 33888 - 33910 [econstructor~3;~eauto.] 0. secs (0.u,0.s) +Chars 33912 - 33916 [Qed.] 0.003 secs (0.003u,0.s) +Chars 33918 - 33996 [Lemma~eutt_EQ_REL_Reflexive~{E...] 0. secs (0.u,0.s) +Chars 33997 - 34003 [Proof.] 0. secs (0.u,0.s) +Chars 34006 - 34039 [now~apply~eutt_EQ_REL_Reflexive_.] 0. secs (0.u,0.s) +Chars 34041 - 34045 [Qed.] 0. secs (0.u,0.s) +Chars 34047 - 34146 [Definition~RET_EQ~{E}~{A}~(ta~...] 0. secs (0.u,0.s) +Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 34539 - 34545 [Proof.] 0. secs (0.u,0.s) +Chars 34577 - 34622 [intros~E~A~B~C~PA~KB~KC~PQOK~K...] 0. secs (0.u,0.s) +Chars 34629 - 34642 [red~in~eqtt'.] 0. secs (0.u,0.s) +Chars 34649 - 34700 [destruct~eqtt'~as~(tb,~(kbc,~(...] 0. secs (0.u,0.s) +Chars 34707 - 34754 [destruct~HBC~as~(ta,~(kab,~(HT...] 0. secs (0.u,0.s) +Chars 34761 - 34765 [red.] 0. secs (0.u,0.s) +Chars 34766 - 34776 [exists~ta.] 0. secs (0.u,0.s) +Chars 34777 - 34818 [exists~(fun~a~=>~ITree.bind~(k...] 0. secs (0.u,0.s) +Chars 34825 - 34847 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) +Chars 34854 - 34855 [*] 0. secs (0.u,0.s) +Chars 34856 - 34886 [setoid_rewrite~EQc;~clear~EQc.] 0. secs (0.u,0.s) +Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.001 secs (0.001u,0.s) +Chars 34915 - 34957 [setoid_rewrite~EQb~in~HRkbc;~c...] 0.001 secs (0.001u,0.s) +Chars 34966 - 34991 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 35000 - 35023 [rewrite~Eqit.bind_bind.] 0. secs (0.u,0.s) +Chars 35024 - 35036 [reflexivity.] 0. secs (0.u,0.s) +Chars 35043 - 35044 [*] 0. secs (0.u,0.s) +Chars 35045 - 35059 [intros~a~HRet.] 0. secs (0.u,0.s) +Chars 35068 - 35088 [exists~(kab~a),kbc.] 0. secs (0.u,0.s) +Chars 35097 - 35118 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) +Chars 35127 - 35129 [--] 0. secs (0.u,0.s) +Chars 35130 - 35142 [reflexivity.] 0. secs (0.u,0.s) +Chars 35151 - 35153 [--] 0. secs (0.u,0.s) +Chars 35154 - 35168 [intros~b~HRET.] 0. secs (0.u,0.s) +Chars 35169 - 35181 [apply~HRkbc.] 0. secs (0.u,0.s) +Chars 35182 - 35194 [rewrite~EQb.] 0.001 secs (0.001u,0.s) +Chars 35195 - 35219 [eapply~Leaf_bind;~eauto.] 0. secs (0.u,0.s) +Chars 35220 - 35224 [Qed.] 0.003 secs (0.003u,0.s) +Chars 35226 - 35258 [Module~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) +Chars 35262 - 35312 [Inductive~ND~:~Type~->~Prop~:=...] 0. secs (0.u,0.s) +Chars 35316 - 35399 [Definition~PA~:~iforest~ND~boo...] 0. secs (0.u,0.s) +Chars 35403 - 35462 [Definition~KB~:~bool~->~ifores...] 0. secs (0.u,0.s) +Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0. secs (0.u,0.s) +Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.011 secs (0.011u,0.s) +Chars 35958 - 36019 [Lemma~bind_right_assoc~:~bind~...] 0. secs (0.u,0.s) +Chars 36022 - 36028 [Proof.] 0. secs (0.u,0.s) +Chars 36033 - 36044 [repeat~red.] 0. secs (0.u,0.s) +Chars 36049 - 36071 [exists~(trigger~Pick).] 0. secs (0.u,0.s) +Chars 36076 - 36293 [exists~~~~~(fun~b~:~bool~=>~~~...] 0.009 secs (0.009u,0.s) +Chars 36298 - 36310 [split;~auto.] 0. secs (0.u,0.s) +Chars 36315 - 36319 [red.] 0. secs (0.u,0.s) +Chars 36320 - 36332 [reflexivity.] 0. secs (0.u,0.s) +Chars 36337 - 36343 [split.] 0. secs (0.u,0.s) +Chars 36344 - 36356 [reflexivity.] 0. secs (0.u,0.s) +Chars 36361 - 36368 [intros.] 0. secs (0.u,0.s) +Chars 36369 - 36380 [repeat~red.] 0. secs (0.u,0.s) +Chars 36381 - 36403 [exists~(trigger~Pick).] 0. secs (0.u,0.s) +Chars 36408 - 36557 [exists~~~~~(fun~x~:~bool~=>~~~...] 0.009 secs (0.009u,0.s) +Chars 36562 - 36568 [split.] 0. secs (0.u,0.s) +Chars 36573 - 36577 [red.] 0. secs (0.u,0.s) +Chars 36578 - 36582 [red.] 0. secs (0.u,0.s) +Chars 36584 - 36596 [reflexivity.] 0. secs (0.u,0.s) +Chars 36601 - 36607 [split.] 0. secs (0.u,0.s) +Chars 36612 - 36623 [destruct~a.] 0. secs (0.u,0.s) +Chars 36628 - 36629 [-] 0. secs (0.u,0.s) +Chars 36630 - 36642 [reflexivity.] 0. secs (0.u,0.s) +Chars 36647 - 36648 [-] 0. secs (0.u,0.s) +Chars 36649 - 36661 [reflexivity.] 0. secs (0.u,0.s) +Chars 36666 - 36667 [-] 0. secs (0.u,0.s) +Chars 36668 - 36675 [intros.] 0. secs (0.u,0.s) +Chars 36682 - 36694 [destruct~a0.] 0. secs (0.u,0.s) +Chars 36701 - 36712 [destruct~a.] 0. secs (0.u,0.s) +Chars 36719 - 36723 [red.] 0. secs (0.u,0.s) +Chars 36724 - 36729 [left.] 0. secs (0.u,0.s) +Chars 36730 - 36742 [reflexivity.] 0. secs (0.u,0.s) +Chars 36749 - 36753 [red.] 0. secs (0.u,0.s) +Chars 36754 - 36760 [right.] 0. secs (0.u,0.s) +Chars 36761 - 36773 [reflexivity.] 0. secs (0.u,0.s) +Chars 36780 - 36791 [destruct~a.] 0. secs (0.u,0.s) +Chars 36798 - 36802 [red.] 0. secs (0.u,0.s) +Chars 36803 - 36815 [reflexivity.] 0. secs (0.u,0.s) +Chars 36816 - 36820 [red.] 0. secs (0.u,0.s) +Chars 36822 - 36834 [reflexivity.] 0. secs (0.u,0.s) +Chars 36837 - 36841 [Qed.] 0.001 secs (0.001u,0.s) +Chars 36845 - 36900 [Lemma~not_bind_left_assoc~:~~~...] 0. secs (0.u,0.s) +Chars 36903 - 36909 [Proof.] 0. secs (0.u,0.s) +Chars 36914 - 36922 [intro~H.] 0. secs (0.u,0.s) +Chars 36927 - 36943 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 36948 - 36989 [destruct~H~as~(ta,~(k,~(HB,~(H...] 0. secs (0.u,0.s) +Chars 36994 - 37039 [destruct~HB~as~(tb,~(kb,~(HX,~...] 0. secs (0.u,0.s) +Chars 37044 - 37054 [red~in~HX.] 0. secs (0.u,0.s) +Chars 37059 - 37075 [rewrite~HX~in~*.] 0.001 secs (0.001u,0.s) +Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.001 secs (0.001u,0.s) +Chars 37112 - 37124 [clear~tb~HX.] 0. secs (0.u,0.s) +Chars 37129 - 37149 [rewrite~HEQ'~in~HEQ.] 0. secs (0.u,0.s) +Chars 37154 - 37170 [unfold~t~in~HEQ.] 0. secs (0.u,0.s) +Chars 37175 - 37207 [unfold~bind,~Monad_itree~in~HEQ.] 0. secs (0.u,0.s) +Chars 37212 - 37242 [rewrite~Eqit.bind_bind~in~HEQ.] 0.003 secs (0.003u,0.s) +Chars 37247 - 37576 [assert~~(forall~r,~~~Leaf~r~(I...] 0.001 secs (0.001u,0.s) +Chars 37581 - 37606 [apply~eqit_bind_Leaf_inv.] 0. secs (0.u,0.s) +Chars 37607 - 37617 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 37622 - 37662 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) +Chars 37667 - 37668 [{] 0. secs (0.u,0.s) +Chars 37669 - 37684 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 37685 - 37700 [econstructor~3.] 0. secs (0.u,0.s) +Chars 37701 - 37713 [reflexivity.] 0. secs (0.u,0.s) +Chars 37714 - 37728 [constructor~1.] 0. secs (0.u,0.s) +Chars 37729 - 37741 [reflexivity.] 0. secs (0.u,0.s) +Chars 37742 - 37743 [}] 0. secs (0.u,0.s) +Chars 37748 - 37789 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) +Chars 37794 - 37795 [{] 0. secs (0.u,0.s) +Chars 37796 - 37811 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 37812 - 37827 [econstructor~3.] 0. secs (0.u,0.s) +Chars 37828 - 37840 [reflexivity.] 0. secs (0.u,0.s) +Chars 37841 - 37855 [constructor~1.] 0. secs (0.u,0.s) +Chars 37856 - 37868 [reflexivity.] 0. secs (0.u,0.s) +Chars 37869 - 37870 [}] 0. secs (0.u,0.s) +Chars 37875 - 37915 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) +Chars 37920 - 37921 [{] 0. secs (0.u,0.s) +Chars 37922 - 37937 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 37938 - 37953 [econstructor~3.] 0. secs (0.u,0.s) +Chars 37954 - 37966 [reflexivity.] 0. secs (0.u,0.s) +Chars 37967 - 37981 [constructor~1.] 0. secs (0.u,0.s) +Chars 37982 - 37994 [reflexivity.] 0. secs (0.u,0.s) +Chars 37995 - 37996 [}] 0. secs (0.u,0.s) +Chars 38001 - 38042 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) +Chars 38047 - 38048 [{] 0. secs (0.u,0.s) +Chars 38049 - 38064 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 38065 - 38080 [econstructor~3.] 0. secs (0.u,0.s) +Chars 38081 - 38093 [reflexivity.] 0. secs (0.u,0.s) +Chars 38094 - 38108 [constructor~1.] 0. secs (0.u,0.s) +Chars 38109 - 38121 [reflexivity.] 0. secs (0.u,0.s) +Chars 38122 - 38123 [}] 0. secs (0.u,0.s) +Chars 38128 - 38142 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 38147 - 38161 [apply~H~in~H1.] 0. secs (0.u,0.s) +Chars 38166 - 38184 [apply~HRET'~in~H2.] 0. secs (0.u,0.s) +Chars 38189 - 38207 [apply~HRET'~in~H3.] 0. secs (0.u,0.s) +Chars 38212 - 38222 [red~in~H2.] 0. secs (0.u,0.s) +Chars 38223 - 38233 [red~in~H3.] 0. secs (0.u,0.s) +Chars 38234 - 38244 [red~in~H2.] 0. secs (0.u,0.s) +Chars 38245 - 38255 [red~in~H3.] 0. secs (0.u,0.s) +Chars 38260 - 38277 [rewrite~H2~in~H0.] 0.001 secs (0.001u,0.s) +Chars 38282 - 38299 [rewrite~H3~in~H1.] 0.001 secs (0.001u,0.s) +Chars 38304 - 38324 [rewrite~<-~H0~in~H1.] 0. secs (0.u,0.s) +Chars 38329 - 38378 [apply~eqit_bind_Leaf_inv~with~...] 0. secs (0.u,0.s) +Chars 38383 - 38408 [apply~eqit_inv_Ret~in~H1.] 0. secs (0.u,0.s) +Chars 38409 - 38422 [inversion~H1.] 0. secs (0.u,0.s) +Chars 38427 - 38428 [{] 0. secs (0.u,0.s) +Chars 38429 - 38444 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 38445 - 38460 [econstructor~3.] 0. secs (0.u,0.s) +Chars 38461 - 38473 [reflexivity.] 0. secs (0.u,0.s) +Chars 38474 - 38488 [constructor~1.] 0. secs (0.u,0.s) +Chars 38489 - 38501 [reflexivity.] 0. secs (0.u,0.s) +Chars 38502 - 38503 [}] 0. secs (0.u,0.s) +Chars 38504 - 38508 [Qed.] 0.004 secs (0.004u,0.s) +Chars 38510 - 38622 [Lemma~bind_bind_counterexample...] 0. secs (0.u,0.s) +Chars 38623 - 38629 [Proof.] 0. secs (0.u,0.s) +Chars 38632 - 38641 [exists~t.] 0. secs (0.u,0.s) +Chars 38644 - 38650 [split.] 0. secs (0.u,0.s) +Chars 38653 - 38676 [apply~bind_right_assoc.] 0. secs (0.u,0.s) +Chars 38679 - 38705 [apply~not_bind_left_assoc.] 0. secs (0.u,0.s) +Chars 38706 - 38710 [Qed.] 0. secs (0.u,0.s) +Chars 38712 - 38741 [End~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceDefinition.v.timing b/extra/ITrace/ITraceDefinition.v.timing new file mode 100644 index 00000000..13a65ba5 --- /dev/null +++ b/extra/ITrace/ITraceDefinition.v.timing @@ -0,0 +1,24 @@ +Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.167 secs (0.147u,0.02s) +Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) +Chars 122 - 136 [Import~Monads.] 0. secs (0.u,0.s) +Chars 137 - 158 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 159 - 188 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 190 - 454 [Variant~EvAns~(E~:~Type~->~Typ...] 0. secs (0.u,0.s) +Chars 456 - 476 [Arguments~evans~{E}.] 0. secs (0.u,0.s) +Chars 477 - 499 [Arguments~evempty~{E}.] 0. secs (0.u,0.s) +Chars 501 - 570 [Definition~itrace~(E~:~Type~->...] 0. secs (0.u,0.s) +Chars 572 - 643 [Definition~itrace'~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 645 - 702 [Definition~ev_stream~(E~:~Type...] 0. secs (0.u,0.s) +Chars 704 - 762 [Definition~Nil~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) +Chars 764 - 825 [Definition~ev_list~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 827 - 996 [Fixpoint~ev_list_to_stream~{E~...] 0. secs (0.u,0.s) +Chars 1079 - 1171 [Definition~append~{E}~{R}~(s~:...] 0. secs (0.u,0.s) +Chars 1173 - 1207 [Notation~"s~++~b"~:=~(append~s...] 0. secs (0.u,0.s) +Chars 1209 - 1457 [Variant~REvRef~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) +Chars 1458 - 1501 [#[global]~Hint~Constructors~RE...] 0. secs (0.u,0.s) +Chars 1536 - 1709 [Variant~RAnsRef~(E~:~Type~->~T...] 0. secs (0.u,0.s) +Chars 1710 - 1754 [#[global]~Hint~Constructors~RA...] 0. secs (0.u,0.s) +Chars 1756 - 1862 [Definition~trace_refine~{E}~{R...] 0. secs (0.u,0.s) +Chars 1865 - 1920 [Notation~"b~⊑~t"~:=~(trace_ref...] 0. secs (0.u,0.s) +Chars 1922 - 2005 [Definition~finite~{E~:~Type~->...] 0. secs (0.u,0.s) +Chars 2007 - 2081 [#[global]~Instance~itrace_eq~~...] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceFacts.v.timing b/extra/ITrace/ITraceFacts.v.timing new file mode 100644 index 00000000..08a3c46f --- /dev/null +++ b/extra/ITrace/ITraceFacts.v.timing @@ -0,0 +1,1232 @@ +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 50 - 177 [From~ITree~Require~Import~Util...] 0.166 secs (0.148u,0.018s) +Chars 179 - 241 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) +Chars 243 - 266 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 269 - 283 [Import~Monads.] 0. secs (0.u,0.s) +Chars 284 - 305 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 306 - 335 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 337 - 380 [Tactic~Notation~"step"~:=~repe...] 0. secs (0.u,0.s) +Chars 382 - 449 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 451 - 503 [Tactic~Notation~"sinv"~ident(h...] 0. secs (0.u,0.s) +Chars 506 - 584 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) +Chars 585 - 591 [Proof.] 0. secs (0.u,0.s) +Chars 594 - 601 [intros.] 0. secs (0.u,0.s) +Chars 602 - 642 [destruct~(classic~(exists~a~:~...] 0. secs (0.u,0.s) +Chars 645 - 646 [-] 0. secs (0.u,0.s) +Chars 647 - 665 [destruct~H;~eauto.] 0. secs (0.u,0.s) +Chars 668 - 669 [-] 0. secs (0.u,0.s) +Chars 670 - 700 [assert~(f~:~A~->~void);~eauto.] 0. secs (0.u,0.s) +Chars 701 - 708 [intros.] 0. secs (0.u,0.s) +Chars 713 - 721 [exfalso.] 0. secs (0.u,0.s) +Chars 722 - 737 [apply~H;~eauto.] 0. secs (0.u,0.s) +Chars 738 - 742 [Qed.] 0. secs (0.u,0.s) +Chars 744 - 835 [Lemma~REvRef_inv~{E}~{A}~(e~e'...] 0. secs (0.u,0.s) +Chars 836 - 842 [Proof.] 0. secs (0.u,0.s) +Chars 845 - 854 [intros~x.] 0. secs (0.u,0.s) +Chars 855 - 867 [inversion~x.] 0.001 secs (0.001u,0.s) +Chars 868 - 881 [ddestruction.] 0.024 secs (0.023u,0.001s) +Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) +Chars 895 - 899 [Qed.] 0.001 secs (0.001u,0.s) +Chars 901 - 981 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0. secs (0.u,0.s) +Chars 982 - 988 [Proof.] 0. secs (0.u,0.s) +Chars 991 - 1000 [intros~x.] 0. secs (0.u,0.s) +Chars 1001 - 1013 [inversion~x.] 0.001 secs (0.001u,0.s) +Chars 1016 - 1017 [-] 0. secs (0.u,0.s) +Chars 1018 - 1031 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 1032 - 1053 [eexists;~reflexivity.] 0. secs (0.u,0.s) +Chars 1056 - 1057 [-] 0. secs (0.u,0.s) +Chars 1058 - 1097 [enough~(unit~->~void)~by~contr...] 0. secs (0.u,0.s) +Chars 1098 - 1109 [destruct~H.] 0. secs (0.u,0.s) +Chars 1110 - 1115 [auto.] 0. secs (0.u,0.s) +Chars 1116 - 1120 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1122 - 1299 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) +Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) +Chars 1309 - 1316 [intros.] 0. secs (0.u,0.s) +Chars 1317 - 1337 [induction~H;~inv~H0.] 0.005 secs (0.005u,0.s) +Chars 1341 - 1342 [-] 0. secs (0.u,0.s) +Chars 1343 - 1359 [rewrite~H~in~H1.] 0.048 secs (0.048u,0.s) +Chars 1360 - 1368 [sinv~H1.] 0.002 secs (0.002u,0.s) +Chars 1371 - 1372 [-] 0. secs (0.u,0.s) +Chars 1373 - 1389 [rewrite~H~in~H1.] 0.013 secs (0.013u,0.s) +Chars 1390 - 1398 [sinv~H1.] 0.002 secs (0.002u,0.s) +Chars 1401 - 1402 [-] 0. secs (0.u,0.s) +Chars 1403 - 1414 [destruct~e.] 0. secs (0.u,0.s) +Chars 1415 - 1426 [destruct~b.] 0. secs (0.u,0.s) +Chars 1427 - 1448 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 1453 - 1454 [+] 0. secs (0.u,0.s) +Chars 1455 - 1471 [rewrite~H~in~H2.] 0.014 secs (0.014u,0.s) +Chars 1472 - 1480 [sinv~H2.] 0.002 secs (0.002u,0.s) +Chars 1486 - 1487 [+] 0. secs (0.u,0.s) +Chars 1488 - 1500 [contra_void.] 0. secs (0.u,0.s) +Chars 1504 - 1505 [-] 0. secs (0.u,0.s) +Chars 1506 - 1534 [destruct~e;~try~contra_void.] 0. secs (0.u,0.s) +Chars 1540 - 1569 [destruct~e0;~try~contra_void.] 0. secs (0.u,0.s) +Chars 1574 - 1585 [destruct~b.] 0. secs (0.u,0.s) +Chars 1586 - 1598 [destruct~b0.] 0. secs (0.u,0.s) +Chars 1603 - 1624 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 1625 - 1641 [rewrite~H~in~H2.] 0.013 secs (0.013u,0.s) +Chars 1646 - 1654 [sinv~H2.] 0.006 secs (0.006u,0.s) +Chars 1655 - 1668 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 1673 - 1679 [subst.] 0. secs (0.u,0.s) +Chars 1680 - 1719 [enough~(k~tt~≈~k0~tt);~try~app...] 0. secs (0.u,0.s) +Chars 1724 - 1735 [rewrite~H0.] 0.003 secs (0.003u,0.s) +Chars 1736 - 1741 [auto.] 0. secs (0.u,0.s) +Chars 1742 - 1746 [Qed.] 0.013 secs (0.013u,0.s) +Chars 1748 - 1802 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) +Chars 1803 - 1809 [Proof.] 0. secs (0.u,0.s) +Chars 1812 - 1827 [apply~conv_ret.] 0. secs (0.u,0.s) +Chars 1828 - 1839 [unfold~Nil.] 0. secs (0.u,0.s) +Chars 1840 - 1852 [reflexivity.] 0. secs (0.u,0.s) +Chars 1853 - 1857 [Qed.] 0. secs (0.u,0.s) +Chars 1859 - 1965 [Lemma~finite_list_to_stream~:~...] 0. secs (0.u,0.s) +Chars 1966 - 1972 [Proof.] 0. secs (0.u,0.s) +Chars 1975 - 1979 [red.] 0. secs (0.u,0.s) +Chars 1980 - 1987 [intros.] 0. secs (0.u,0.s) +Chars 1988 - 2000 [induction~l.] 0. secs (0.u,0.s) +Chars 2003 - 2004 [-] 0. secs (0.u,0.s) +Chars 2005 - 2009 [cbn.] 0. secs (0.u,0.s) +Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) +Chars 2023 - 2035 [reflexivity.] 0. secs (0.u,0.s) +Chars 2038 - 2039 [-] 0. secs (0.u,0.s) +Chars 2040 - 2044 [cbn.] 0. secs (0.u,0.s) +Chars 2045 - 2078 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 2079 - 2085 [simpl.] 0. secs (0.u,0.s) +Chars 2086 - 2092 [eauto.] 0. secs (0.u,0.s) +Chars 2097 - 2106 [Unshelve.] 0. secs (0.u,0.s) +Chars 2107 - 2116 [exact~tt.] 0. secs (0.u,0.s) +Chars 2117 - 2121 [Qed.] 0. secs (0.u,0.s) +Chars 2123 - 2255 [Lemma~finite_stream_list~:~~~f...] 0. secs (0.u,0.s) +Chars 2256 - 2262 [Proof.] 0. secs (0.u,0.s) +Chars 2265 - 2272 [intros.] 0. secs (0.u,0.s) +Chars 2273 - 2282 [red~in~H.] 0. secs (0.u,0.s) +Chars 2283 - 2295 [induction~H.] 0. secs (0.u,0.s) +Chars 2298 - 2299 [-] 0. secs (0.u,0.s) +Chars 2300 - 2311 [exists~nil.] 0. secs (0.u,0.s) +Chars 2312 - 2317 [auto.] 0. secs (0.u,0.s) +Chars 2320 - 2321 [-] 0. secs (0.u,0.s) +Chars 2322 - 2356 [destruct~IHmay_converge~as~[l~...] 0. secs (0.u,0.s) +Chars 2357 - 2377 [unfold~ev_list~in~l.] 0. secs (0.u,0.s) +Chars 2382 - 2394 [inversion~e.] 0. secs (0.u,0.s) +Chars 2395 - 2401 [subst.] 0. secs (0.u,0.s) +Chars 2406 - 2424 [exists~(cons~e~l).] 0. secs (0.u,0.s) +Chars 2425 - 2431 [simpl.] 0. secs (0.u,0.s) +Chars 2432 - 2442 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 2447 - 2458 [destruct~b.] 0. secs (0.u,0.s) +Chars 2464 - 2479 [apply~eqit_Vis.] 0. secs (0.u,0.s) +Chars 2485 - 2492 [intros.] 0. secs (0.u,0.s) +Chars 2493 - 2508 [now~destruct~u.] 0. secs (0.u,0.s) +Chars 2513 - 2519 [subst.] 0. secs (0.u,0.s) +Chars 2520 - 2534 [contradiction.] 0. secs (0.u,0.s) +Chars 2535 - 2539 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2541 - 2728 [Lemma~append_vis~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 2729 - 2735 [Proof.] 0. secs (0.u,0.s) +Chars 2738 - 2749 [intros~E~R.] 0. secs (0.u,0.s) +Chars 2750 - 2764 [unfold~append.] 0. secs (0.u,0.s) +Chars 2765 - 2772 [intros.] 0. secs (0.u,0.s) +Chars 2775 - 2780 [step.] 0.001 secs (0.001u,0.s) +Chars 2781 - 2785 [cbn.] 0. secs (0.u,0.s) +Chars 2786 - 2791 [evis.] 0. secs (0.u,0.s) +Chars 2793 - 2797 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2799 - 2928 [#[global]~Instance~proper_appe...] 0. secs (0.u,0.s) +Chars 2929 - 2935 [Proof.] 0. secs (0.u,0.s) +Chars 2938 - 2969 [intros~log1~log2~Hlog~b1~b2~Hb.] 0. secs (0.u,0.s) +Chars 2970 - 2984 [unfold~append.] 0. secs (0.u,0.s) +Chars 2985 - 2998 [rewrite~Hlog.] 0.001 secs (0.001u,0.s) +Chars 3001 - 3030 [eapply~eutt_bind_eutt;~eauto.] 0.003 secs (0.002u,0.s) +Chars 3031 - 3035 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3037 - 3209 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) +Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) +Chars 3219 - 3226 [intros.] 0. secs (0.u,0.s) +Chars 3227 - 3239 [induction~H.] 0. secs (0.u,0.s) +Chars 3242 - 3243 [-] 0. secs (0.u,0.s) +Chars 3244 - 3258 [unfold~append.] 0. secs (0.u,0.s) +Chars 3259 - 3269 [rewrite~H.] 0.004 secs (0.004u,0.s) +Chars 3270 - 3289 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 3294 - 3306 [constructor.] 0. secs (0.u,0.s) +Chars 3307 - 3319 [reflexivity.] 0. secs (0.u,0.s) +Chars 3322 - 3323 [-] 0. secs (0.u,0.s) +Chars 3324 - 3334 [rewrite~H.] 0.004 secs (0.004u,0.s) +Chars 3335 - 3347 [inversion~e.] 0. secs (0.u,0.s) +Chars 3348 - 3354 [subst.] 0. secs (0.u,0.s) +Chars 3355 - 3374 [rewrite~append_vis.] 0.005 secs (0.005u,0.s) +Chars 3379 - 3419 [eapply~conv_vis;~eauto;~try~re...] 0.001 secs (0.001u,0.s) +Chars 3420 - 3426 [simpl.] 0. secs (0.u,0.s) +Chars 3427 - 3433 [eauto.] 0. secs (0.u,0.s) +Chars 3438 - 3444 [subst.] 0. secs (0.u,0.s) +Chars 3445 - 3459 [contradiction.] 0. secs (0.u,0.s) +Chars 3460 - 3464 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3466 - 3679 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) +Chars 3680 - 3686 [Proof.] 0. secs (0.u,0.s) +Chars 3689 - 3696 [intros.] 0. secs (0.u,0.s) +Chars 3697 - 3709 [induction~H.] 0. secs (0.u,0.s) +Chars 3712 - 3713 [-] 0. secs (0.u,0.s) +Chars 3714 - 3725 [exists~nil.] 0. secs (0.u,0.s) +Chars 3726 - 3730 [cbn.] 0. secs (0.u,0.s) +Chars 3731 - 3741 [rewrite~H.] 0. secs (0.u,0.s) +Chars 3746 - 3751 [step.] 0.001 secs (0.001u,0.s) +Chars 3752 - 3756 [cbn.] 0. secs (0.u,0.s) +Chars 3757 - 3762 [eret.] 0. secs (0.u,0.s) +Chars 3767 - 3768 [-] 0. secs (0.u,0.s) +Chars 3769 - 3807 [destruct~IHmay_converge~as~[lo...] 0. secs (0.u,0.s) +Chars 3808 - 3820 [inversion~e.] 0. secs (0.u,0.s) +Chars 3821 - 3827 [subst.] 0. secs (0.u,0.s) +Chars 3832 - 3852 [exists~(cons~e~log).] 0. secs (0.u,0.s) +Chars 3853 - 3857 [cbn.] 0. secs (0.u,0.s) +Chars 3858 - 3877 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) +Chars 3878 - 3888 [rewrite~H.] 0. secs (0.u,0.s) +Chars 3893 - 3898 [step.] 0.001 secs (0.001u,0.s) +Chars 3899 - 3911 [constructor.] 0. secs (0.u,0.s) +Chars 3912 - 3919 [intros.] 0. secs (0.u,0.s) +Chars 3920 - 3931 [destruct~v.] 0. secs (0.u,0.s) +Chars 3938 - 3949 [destruct~b.] 0. secs (0.u,0.s) +Chars 3950 - 3961 [apply~Hlog.] 0. secs (0.u,0.s) +Chars 3962 - 3968 [subst.] 0. secs (0.u,0.s) +Chars 3969 - 3983 [contradiction.] 0. secs (0.u,0.s) +Chars 3984 - 3988 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3990 - 4172 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) +Chars 4173 - 4179 [Proof.] 0. secs (0.u,0.s) +Chars 4182 - 4189 [intros.] 0. secs (0.u,0.s) +Chars 4192 - 4228 [destruct~(classic_converge~b);...] 0. secs (0.u,0.s) +Chars 4229 - 4250 [destruct~H~as~[r~Hr].] 0. secs (0.u,0.s) +Chars 4251 - 4256 [left.] 0. secs (0.u,0.s) +Chars 4259 - 4268 [exists~r.] 0. secs (0.u,0.s) +Chars 4269 - 4299 [apply~converge_itrace_ev_list.] 0. secs (0.u,0.s) +Chars 4300 - 4305 [auto.] 0. secs (0.u,0.s) +Chars 4306 - 4310 [Qed.] 0. secs (0.u,0.s) +Chars 4312 - 4354 [Arguments~classic_converge_itr...] 0. secs (0.u,0.s) +Chars 4356 - 4460 [Lemma~append_nil~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 4461 - 4467 [Proof.] 0. secs (0.u,0.s) +Chars 4470 - 4477 [intros.] 0. secs (0.u,0.s) +Chars 4478 - 4492 [unfold~append.] 0. secs (0.u,0.s) +Chars 4493 - 4512 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 4513 - 4525 [reflexivity.] 0. secs (0.u,0.s) +Chars 4526 - 4530 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4532 - 4783 [Lemma~append_assoc~:~~~forall~...] 0. secs (0.u,0.s) +Chars 4784 - 4790 [Proof.] 0. secs (0.u,0.s) +Chars 4793 - 4810 [intros~E~R~b~log.] 0. secs (0.u,0.s) +Chars 4811 - 4825 [induction~log.] 0. secs (0.u,0.s) +Chars 4828 - 4829 [-] 0. secs (0.u,0.s) +Chars 4830 - 4836 [simpl.] 0. secs (0.u,0.s) +Chars 4837 - 4844 [intros.] 0. secs (0.u,0.s) +Chars 4845 - 4864 [rewrite~append_nil.] 0. secs (0.u,0.s) +Chars 4865 - 4877 [reflexivity.] 0. secs (0.u,0.s) +Chars 4880 - 4881 [-] 0. secs (0.u,0.s) +Chars 4882 - 4886 [cbn.] 0. secs (0.u,0.s) +Chars 4887 - 4894 [intros.] 0. secs (0.u,0.s) +Chars 4895 - 4914 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) +Chars 4915 - 4936 [setoid_rewrite~IHlog.] 0.002 secs (0.002u,0.s) +Chars 4941 - 4960 [rewrite~append_vis.] 0. secs (0.u,0.s) +Chars 4961 - 4973 [reflexivity.] 0. secs (0.u,0.s) +Chars 4974 - 4978 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4980 - 5159 [Lemma~append_div~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) +Chars 5169 - 5176 [intros.] 0. secs (0.u,0.s) +Chars 5177 - 5191 [induction~log.] 0. secs (0.u,0.s) +Chars 5194 - 5195 [-] 0. secs (0.u,0.s) +Chars 5196 - 5200 [cbn.] 0. secs (0.u,0.s) +Chars 5201 - 5215 [unfold~append.] 0. secs (0.u,0.s) +Chars 5216 - 5235 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5236 - 5241 [auto.] 0. secs (0.u,0.s) +Chars 5244 - 5245 [-] 0. secs (0.u,0.s) +Chars 5246 - 5250 [cbn.] 0. secs (0.u,0.s) +Chars 5251 - 5265 [unfold~append.] 0. secs (0.u,0.s) +Chars 5270 - 5275 [step.] 0. secs (0.u,0.s) +Chars 5276 - 5287 [repeat~red.] 0. secs (0.u,0.s) +Chars 5288 - 5292 [cbn.] 0. secs (0.u,0.s) +Chars 5293 - 5305 [constructor.] 0. secs (0.u,0.s) +Chars 5306 - 5312 [intro.] 0. secs (0.u,0.s) +Chars 5313 - 5318 [auto.] 0. secs (0.u,0.s) +Chars 5320 - 5324 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5326 - 5566 [Lemma~inv_append_eutt~:~~~fora...] 0. secs (0.u,0.s) +Chars 5567 - 5573 [Proof.] 0. secs (0.u,0.s) +Chars 5576 - 5583 [intros.] 0. secs (0.u,0.s) +Chars 5584 - 5610 [generalize~dependent~log2.] 0. secs (0.u,0.s) +Chars 5611 - 5634 [induction~log1;~intros.] 0. secs (0.u,0.s) +Chars 5637 - 5638 [-] 0. secs (0.u,0.s) +Chars 5639 - 5653 [destruct~log2.] 0. secs (0.u,0.s) +Chars 5658 - 5659 [+] 0. secs (0.u,0.s) +Chars 5660 - 5672 [split;~auto.] 0. secs (0.u,0.s) +Chars 5673 - 5682 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 5683 - 5690 [sinv~H.] 0.004 secs (0.004u,0.s) +Chars 5696 - 5697 [+] 0. secs (0.u,0.s) +Chars 5698 - 5705 [sinv~H.] 0.002 secs (0.002u,0.s) +Chars 5708 - 5709 [-] 0. secs (0.u,0.s) +Chars 5710 - 5724 [destruct~log2.] 0. secs (0.u,0.s) +Chars 5729 - 5730 [+] 0. secs (0.u,0.s) +Chars 5731 - 5738 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 5743 - 5744 [+] 0. secs (0.u,0.s) +Chars 5745 - 5754 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 5755 - 5774 [unfold~append~in~H.] 0. secs (0.u,0.s) +Chars 5775 - 5782 [sinv~H.] 0.006 secs (0.006u,0.s) +Chars 5783 - 5792 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5793 - 5806 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 5813 - 5845 [enough~(log1~=~log2~/\~r1~=~r2).] 0. secs (0.u,0.s) +Chars 5852 - 5853 [{] 0. secs (0.u,0.s) +Chars 5854 - 5865 [destruct~H.] 0. secs (0.u,0.s) +Chars 5866 - 5872 [subst.] 0. secs (0.u,0.s) +Chars 5873 - 5878 [auto.] 0. secs (0.u,0.s) +Chars 5879 - 5880 [}] 0. secs (0.u,0.s) +Chars 5887 - 5900 [apply~IHlog1.] 0. secs (0.u,0.s) +Chars 5901 - 5911 [apply~REL.] 0. secs (0.u,0.s) +Chars 5912 - 5921 [apply~tt.] 0. secs (0.u,0.s) +Chars 5922 - 5926 [Qed.] 0.014 secs (0.014u,0.s) +Chars 5928 - 6216 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) +Chars 6217 - 6223 [Proof.] 0. secs (0.u,0.s) +Chars 6226 - 6237 [intros~E~R.] 0. secs (0.u,0.s) +Chars 6238 - 6257 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6258 - 6265 [intros.] 0. secs (0.u,0.s) +Chars 6269 - 6280 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6281 - 6298 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 6299 - 6309 [step~in~H.] 0. secs (0.u,0.s) +Chars 6312 - 6325 [genobs~t~ot3.] 0. secs (0.u,0.s) +Chars 6326 - 6339 [clear~Heqot3.] 0. secs (0.u,0.s) +Chars 6343 - 6389 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) +Chars 6392 - 6393 [-] 0. secs (0.u,0.s) +Chars 6394 - 6420 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) +Chars 6421 - 6473 [hinduction~H0~before~CIH;~intr...] 0.016 secs (0.016u,0.s) +Chars 6480 - 6481 [+] 0. secs (0.u,0.s) +Chars 6482 - 6494 [constructor.] 0. secs (0.u,0.s) +Chars 6495 - 6500 [auto.] 0. secs (0.u,0.s) +Chars 6505 - 6506 [+] 0. secs (0.u,0.s) +Chars 6507 - 6519 [constructor.] 0. secs (0.u,0.s) +Chars 6520 - 6542 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 6598 - 6599 [-] 0. secs (0.u,0.s) +Chars 6601 - 6673 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) +Chars 6679 - 6680 [{] 0. secs (0.u,0.s) +Chars 6681 - 6728 [destruct~ot3;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) +Chars 6729 - 6730 [}] 0. secs (0.u,0.s) +Chars 6736 - 6762 [destruct~DEC~as~[EQ|~EQ].] 0. secs (0.u,0.s) +Chars 6768 - 6769 [+] 0. secs (0.u,0.s) +Chars 6770 - 6799 [destruct~EQ~as~[m3~?];~subst.] 0. secs (0.u,0.s) +Chars 6807 - 6819 [constructor.] 0. secs (0.u,0.s) +Chars 6820 - 6838 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6846 - 6865 [apply~rutt_inv_Tau.] 0. secs (0.u,0.s) +Chars 6866 - 6875 [now~step.] 0. secs (0.u,0.s) +Chars 6882 - 6883 [+] 0. secs (0.u,0.s) +Chars 6884 - 6930 [inv~H0;~try~(exfalso;~eapply~E...] 0.024 secs (0.023u,0.s) +Chars 6938 - 6950 [constructor.] 0. secs (0.u,0.s) +Chars 6958 - 6970 [step~in~REL.] 0. secs (0.u,0.s) +Chars 6979 - 7058 [hinduction~H1~before~CIH;~intr...] 0.002 secs (0.002u,0.s) +Chars 7066 - 7067 [*] 0. secs (0.u,0.s) +Chars 7068 - 7106 [dependent~induction~REL;~rewri...] 0.035 secs (0.035u,0.s) +Chars 7116 - 7118 [++] 0. secs (0.u,0.s) +Chars 7119 - 7131 [constructor.] 0. secs (0.u,0.s) +Chars 7132 - 7137 [auto.] 0. secs (0.u,0.s) +Chars 7147 - 7149 [++] 0. secs (0.u,0.s) +Chars 7150 - 7162 [constructor.] 0. secs (0.u,0.s) +Chars 7163 - 7183 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) +Chars 7191 - 7192 [*] 0. secs (0.u,0.s) +Chars 7193 - 7231 [dependent~induction~REL;~rewri...] 0.05 secs (0.05u,0.s) +Chars 7241 - 7243 [++] 0. secs (0.u,0.s) +Chars 7244 - 7262 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 7263 - 7270 [intros.] 0. secs (0.u,0.s) +Chars 7271 - 7286 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 7300 - 7311 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7312 - 7322 [apply~REL.] 0. secs (0.u,0.s) +Chars 7323 - 7334 [assumption.] 0. secs (0.u,0.s) +Chars 7345 - 7347 [++] 0. secs (0.u,0.s) +Chars 7348 - 7360 [constructor.] 0. secs (0.u,0.s) +Chars 7361 - 7381 [eapply~IHREL;~eauto.] 0.005 secs (0.005u,0.s) +Chars 7389 - 7390 [*] 0. secs (0.u,0.s) +Chars 7391 - 7413 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 7414 - 7428 [clear~IHruttF.] 0. secs (0.u,0.s) +Chars 7438 - 7501 [dependent~induction~REL;~try~(...] 0.041 secs (0.041u,0.s) +Chars 7511 - 7513 [++] 0. secs (0.u,0.s) +Chars 7514 - 7527 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7528 - 7546 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7547 - 7558 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 7569 - 7571 [++] 0. secs (0.u,0.s) +Chars 7572 - 7577 [auto.] 0. secs (0.u,0.s) +Chars 7587 - 7589 [++] 0. secs (0.u,0.s) +Chars 7590 - 7603 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7604 - 7622 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7623 - 7643 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) +Chars 7646 - 7647 [-] 0. secs (0.u,0.s) +Chars 7648 - 7676 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) +Chars 7681 - 7744 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.013u,0.s) +Chars 7749 - 7750 [+] 0. secs (0.u,0.s) +Chars 7751 - 7769 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 7770 - 7777 [intros.] 0. secs (0.u,0.s) +Chars 7778 - 7793 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 7800 - 7811 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7812 - 7822 [apply~REL.] 0. secs (0.u,0.s) +Chars 7823 - 7834 [assumption.] 0. secs (0.u,0.s) +Chars 7840 - 7841 [+] 0. secs (0.u,0.s) +Chars 7842 - 7854 [constructor.] 0. secs (0.u,0.s) +Chars 7855 - 7877 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 7880 - 7881 [-] 0. secs (0.u,0.s) +Chars 7882 - 7904 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 7905 - 7932 [remember~(TauF~t1)~as~otf1.] 0.001 secs (0.001u,0.s) +Chars 7937 - 8008 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.013u,0.s) +Chars 8013 - 8014 [+] 0. secs (0.u,0.s) +Chars 8015 - 8027 [constructor.] 0. secs (0.u,0.s) +Chars 8028 - 8039 [now~unstep.] 0. secs (0.u,0.s) +Chars 8045 - 8046 [+] 0. secs (0.u,0.s) +Chars 8047 - 8059 [constructor.] 0. secs (0.u,0.s) +Chars 8060 - 8082 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 8085 - 8086 [-] 0. secs (0.u,0.s) +Chars 8087 - 8099 [constructor.] 0. secs (0.u,0.s) +Chars 8100 - 8122 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 8123 - 8127 [Qed.] 0.123 secs (0.122u,0.001s) +Chars 8129 - 8422 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) +Chars 8423 - 8429 [Proof.] 0. secs (0.u,0.s) +Chars 8432 - 8443 [intros~E~R.] 0. secs (0.u,0.s) +Chars 8444 - 8463 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 8464 - 8471 [intros.] 0. secs (0.u,0.s) +Chars 8472 - 8482 [step~in~H.] 0. secs (0.u,0.s) +Chars 8486 - 8497 [step~in~H0.] 0. secs (0.u,0.s) +Chars 8498 - 8515 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 8519 - 8539 [genobs_clear~t2~ot2.] 0. secs (0.u,0.s) +Chars 8542 - 8598 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) +Chars 8601 - 8602 [-] 0. secs (0.u,0.s) +Chars 8603 - 8629 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) +Chars 8630 - 8692 [hinduction~H0~before~CIH;~intr...] 0.015 secs (0.015u,0.s) +Chars 8697 - 8698 [+] 0. secs (0.u,0.s) +Chars 8699 - 8717 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8722 - 8723 [+] 0. secs (0.u,0.s) +Chars 8724 - 8736 [constructor.] 0. secs (0.u,0.s) +Chars 8737 - 8743 [eauto.] 0. secs (0.u,0.s) +Chars 8746 - 8747 [-] 0. secs (0.u,0.s) +Chars 8748 - 8775 [remember~(TauF~m1)~as~otm1.] 0. secs (0.u,0.s) +Chars 8780 - 8839 [hinduction~H0~before~CIH;~intr...] 0.014 secs (0.014u,0.s) +Chars 8844 - 8845 [+] 0. secs (0.u,0.s) +Chars 8846 - 8858 [constructor.] 0. secs (0.u,0.s) +Chars 8859 - 8877 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 8882 - 8883 [+] 0. secs (0.u,0.s) +Chars 8884 - 8896 [constructor.] 0. secs (0.u,0.s) +Chars 8897 - 8915 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 8922 - 8943 [apply~rutt_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 8944 - 8953 [now~step.] 0. secs (0.u,0.s) +Chars 8959 - 8960 [+] 0. secs (0.u,0.s) +Chars 8961 - 8973 [step~in~REL.] 0. secs (0.u,0.s) +Chars 8981 - 9012 [dependent~induction~REL;~subst.] 0.029 secs (0.029u,0.s) +Chars 9019 - 9020 [*] 0. secs (0.u,0.s) +Chars 9021 - 9033 [constructor.] 0. secs (0.u,0.s) +Chars 9034 - 9048 [clear~IHruttF.] 0. secs (0.u,0.s) +Chars 9057 - 9116 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) +Chars 9125 - 9127 [++] 0. secs (0.u,0.s) +Chars 9128 - 9141 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9142 - 9154 [constructor.] 0. secs (0.u,0.s) +Chars 9155 - 9160 [auto.] 0. secs (0.u,0.s) +Chars 9169 - 9171 [++] 0. secs (0.u,0.s) +Chars 9172 - 9184 [constructor.] 0. secs (0.u,0.s) +Chars 9185 - 9190 [auto.] 0. secs (0.u,0.s) +Chars 9197 - 9198 [*] 0. secs (0.u,0.s) +Chars 9199 - 9214 [eapply~IHruttF.] 0. secs (0.u,0.s) +Chars 9215 - 9235 [2:~symmetry;~eauto.] 0. secs (0.u,0.s) +Chars 9244 - 9249 [step.] 0.001 secs (0.001u,0.s) +Chars 9250 - 9263 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9264 - 9282 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9291 - 9307 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 9315 - 9316 [*] 0. secs (0.u,0.s) +Chars 9317 - 9329 [constructor.] 0. secs (0.u,0.s) +Chars 9330 - 9343 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9352 - 9366 [clear~IHruttF.] 0. secs (0.u,0.s) +Chars 9367 - 9426 [hinduction~H0~before~CIH;~intr...] 0.011 secs (0.011u,0.s) +Chars 9435 - 9437 [++] 0. secs (0.u,0.s) +Chars 9438 - 9456 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 9457 - 9464 [intros.] 0. secs (0.u,0.s) +Chars 9465 - 9480 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 9491 - 9502 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9503 - 9513 [apply~REL.] 0. secs (0.u,0.s) +Chars 9514 - 9525 [assumption.] 0. secs (0.u,0.s) +Chars 9535 - 9537 [++] 0. secs (0.u,0.s) +Chars 9538 - 9550 [constructor.] 0. secs (0.u,0.s) +Chars 9551 - 9573 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 9580 - 9581 [*] 0. secs (0.u,0.s) +Chars 9582 - 9596 [unstep~in~REL.] 0. secs (0.u,0.s) +Chars 9597 - 9619 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 9626 - 9627 [*] 0. secs (0.u,0.s) +Chars 9628 - 9640 [constructor.] 0. secs (0.u,0.s) +Chars 9641 - 9654 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9655 - 9675 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 9678 - 9679 [-] 0. secs (0.u,0.s) +Chars 9680 - 9708 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) +Chars 9709 - 9754 [hinduction~H0~before~CIH;~intr...] 0.019 secs (0.019u,0.s) +Chars 9759 - 9760 [+] 0. secs (0.u,0.s) +Chars 9761 - 9774 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 9775 - 9793 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9794 - 9801 [intros.] 0. secs (0.u,0.s) +Chars 9802 - 9817 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 9824 - 9835 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9836 - 9846 [apply~REL.] 0. secs (0.u,0.s) +Chars 9847 - 9858 [assumption.] 0. secs (0.u,0.s) +Chars 9864 - 9865 [+] 0. secs (0.u,0.s) +Chars 9866 - 9878 [constructor.] 0. secs (0.u,0.s) +Chars 9879 - 9885 [eauto.] 0. secs (0.u,0.s) +Chars 9888 - 9889 [-] 0. secs (0.u,0.s) +Chars 9890 - 9912 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 9913 - 9940 [remember~(TauF~t0)~as~otf0.] 0.001 secs (0.001u,0.s) +Chars 9945 - 10016 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) +Chars 10021 - 10022 [+] 0. secs (0.u,0.s) +Chars 10023 - 10035 [constructor.] 0. secs (0.u,0.s) +Chars 10036 - 10047 [now~unstep.] 0. secs (0.u,0.s) +Chars 10053 - 10054 [+] 0. secs (0.u,0.s) +Chars 10055 - 10067 [constructor.] 0. secs (0.u,0.s) +Chars 10068 - 10090 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 10093 - 10094 [-] 0. secs (0.u,0.s) +Chars 10095 - 10107 [constructor.] 0. secs (0.u,0.s) +Chars 10108 - 10130 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 10131 - 10135 [Qed.] 0.064 secs (0.063u,0.s) +Chars 10137 - 10241 [#[global]~Instance~trace_refin...] 0. secs (0.u,0.s) +Chars 10242 - 10248 [Proof.] 0. secs (0.u,0.s) +Chars 10251 - 10284 [intros~b1~b2~Heuttb~t1~t2~Heuttt.] 0. secs (0.u,0.s) +Chars 10287 - 10397 [split;~intros;~~try~~~(eapply~...] 0.002 secs (0.002u,0.s) +Chars 10402 - 10429 [now~rewrite~Heuttb,~Heuttt.] 0.014 secs (0.014u,0.s) +Chars 10430 - 10434 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10436 - 10545 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) +Chars 10546 - 10552 [Proof.] 0. secs (0.u,0.s) +Chars 10555 - 10562 [intros.] 0. secs (0.u,0.s) +Chars 10563 - 10568 [step.] 0. secs (0.u,0.s) +Chars 10569 - 10581 [constructor.] 0. secs (0.u,0.s) +Chars 10582 - 10587 [auto.] 0. secs (0.u,0.s) +Chars 10588 - 10592 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10594 - 10751 [Lemma~trace_refine_ret_inv_r~:...] 0. secs (0.u,0.s) +Chars 10752 - 10758 [Proof.] 0. secs (0.u,0.s) +Chars 10761 - 10768 [intros.] 0. secs (0.u,0.s) +Chars 10769 - 10774 [step.] 0.001 secs (0.001u,0.s) +Chars 10775 - 10785 [step~in~H.] 0. secs (0.u,0.s) +Chars 10786 - 10802 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 10806 - 10835 [dependent~induction~H;~subst.] 0.023 secs (0.023u,0.s) +Chars 10838 - 10839 [-] 0. secs (0.u,0.s) +Chars 10840 - 10853 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10854 - 10866 [constructor.] 0. secs (0.u,0.s) +Chars 10867 - 10872 [auto.] 0. secs (0.u,0.s) +Chars 10875 - 10876 [-] 0. secs (0.u,0.s) +Chars 10877 - 10890 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10891 - 10909 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 10910 - 10914 [Qed.] 0.019 secs (0.018u,0.s) +Chars 10916 - 11082 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) +Chars 11083 - 11089 [Proof.] 0. secs (0.u,0.s) +Chars 11092 - 11099 [intros.] 0. secs (0.u,0.s) +Chars 11100 - 11105 [step.] 0.001 secs (0.001u,0.s) +Chars 11106 - 11116 [step~in~H.] 0. secs (0.u,0.s) +Chars 11117 - 11133 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 11136 - 11165 [dependent~induction~H;~subst.] 0.024 secs (0.024u,0.s) +Chars 11168 - 11169 [-] 0. secs (0.u,0.s) +Chars 11170 - 11183 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 11184 - 11196 [constructor.] 0. secs (0.u,0.s) +Chars 11197 - 11202 [auto.] 0. secs (0.u,0.s) +Chars 11205 - 11206 [-] 0. secs (0.u,0.s) +Chars 11207 - 11220 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 11221 - 11239 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 11240 - 11244 [Qed.] 0.022 secs (0.022u,0.s) +Chars 11246 - 11486 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) +Chars 11487 - 11493 [Proof.] 0. secs (0.u,0.s) +Chars 11496 - 11513 [intros~E~R~A~e~a.] 0. secs (0.u,0.s) +Chars 11514 - 11521 [intros.] 0. secs (0.u,0.s) +Chars 11524 - 11533 [red~in~H.] 0. secs (0.u,0.s) +Chars 11534 - 11538 [red.] 0. secs (0.u,0.s) +Chars 11539 - 11549 [step~in~H.] 0. secs (0.u,0.s) +Chars 11550 - 11566 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 11567 - 11573 [inv~H.] 0.007 secs (0.007u,0.s) +Chars 11574 - 11587 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 11590 - 11596 [subst.] 0. secs (0.u,0.s) +Chars 11599 - 11664 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 11665 - 11669 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11671 - 11885 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) +Chars 11886 - 11892 [Proof.] 0. secs (0.u,0.s) +Chars 11895 - 11902 [intros.] 0. secs (0.u,0.s) +Chars 11903 - 11908 [step.] 0. secs (0.u,0.s) +Chars 11909 - 11939 [constructor;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 11942 - 11949 [intros.] 0. secs (0.u,0.s) +Chars 11950 - 11957 [inv~H0.] 0.006 secs (0.006u,0.s) +Chars 11958 - 11971 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 11974 - 11980 [subst.] 0. secs (0.u,0.s) +Chars 11981 - 11986 [auto.] 0. secs (0.u,0.s) +Chars 11987 - 11991 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11993 - 12128 [Lemma~event_ans_constr~:~~~for...] 0. secs (0.u,0.s) +Chars 12129 - 12135 [Proof.] 0. secs (0.u,0.s) +Chars 12138 - 12145 [intros.] 0. secs (0.u,0.s) +Chars 12148 - 12200 [destruct~(classic_empty~R)~as~...] 0. secs (0.u,0.s) +Chars 12203 - 12204 [-] 0. secs (0.u,0.s) +Chars 12205 - 12217 [exists~unit.] 0. secs (0.u,0.s) +Chars 12218 - 12239 [exists~(evans~R~e~a).] 0. secs (0.u,0.s) +Chars 12240 - 12257 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 12260 - 12261 [-] 0. secs (0.u,0.s) +Chars 12262 - 12274 [exists~void.] 0. secs (0.u,0.s) +Chars 12275 - 12303 [exists~(evempty~R~Hempty~e).] 0. secs (0.u,0.s) +Chars 12304 - 12321 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 12322 - 12326 [Qed.] 0. secs (0.u,0.s) +Chars 12389 - 12409 [Section~Determinize.] 0. secs (0.u,0.s) +Chars 12411 - 12468 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) +Chars 12470 - 12555 [CoFixpoint~determinize_~(E~:~T...] 0. secs (0.u,0.s) +Chars 12556 - 12562 [Proof.] 0. secs (0.u,0.s) +Chars 12565 - 12577 [destruct~ot.] 0. secs (0.u,0.s) +Chars 12580 - 12581 [-] 0. secs (0.u,0.s) +Chars 12582 - 12596 [apply~(Ret~r).] 0. secs (0.u,0.s) +Chars 12599 - 12600 [-] 0. secs (0.u,0.s) +Chars 12601 - 12646 [apply~(Tau~(determinize_~E~R~(...] 0. secs (0.u,0.s) +Chars 12649 - 12650 [-] 0. secs (0.u,0.s) +Chars 12651 - 12683 [destruct~(classicT~X)~as~[|~f].] 0. secs (0.u,0.s) +Chars 12688 - 12689 [+] 0. secs (0.u,0.s) +Chars 12690 - 12765 [apply~(Vis~(evans~X~e~x)~(fun~...] 0. secs (0.u,0.s) +Chars 12770 - 12771 [+] 0. secs (0.u,0.s) +Chars 12772 - 12882 [apply~~(Vis~(evempty~X~(fun~x~...] 0. secs (0.u,0.s) +Chars 12883 - 12891 [Defined.] 0. secs (0.u,0.s) +Chars 12893 - 12979 [Definition~determinize~{E}~{R}...] 0. secs (0.u,0.s) +Chars 12981 - 12997 [End~Determinize.] 0. secs (0.u,0.s) +Chars 13048 - 13165 [Lemma~itree_refine_nonempty~:~...] 0. secs (0.u,0.s) +Chars 13166 - 13172 [Proof.] 0. secs (0.u,0.s) +Chars 13175 - 13182 [intros.] 0. secs (0.u,0.s) +Chars 13183 - 13225 [destruct~classicT_inhabited~as...] 0. secs (0.u,0.s) +Chars 13228 - 13260 [exists~(determinize~classicT~t).] 0. secs (0.u,0.s) +Chars 13261 - 13284 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 13287 - 13306 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 13310 - 13317 [intros.] 0. secs (0.u,0.s) +Chars 13318 - 13337 [unfold~determinize.] 0. secs (0.u,0.s) +Chars 13338 - 13351 [desobs~t~Hot.] 0. secs (0.u,0.s) +Chars 13354 - 13355 [-] 0. secs (0.u,0.s) +Chars 13356 - 13360 [cbn.] 0. secs (0.u,0.s) +Chars 13361 - 13366 [eret.] 0. secs (0.u,0.s) +Chars 13369 - 13370 [-] 0. secs (0.u,0.s) +Chars 13371 - 13375 [cbn.] 0. secs (0.u,0.s) +Chars 13376 - 13388 [constructor.] 0. secs (0.u,0.s) +Chars 13389 - 13399 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13403 - 13404 [-] 0. secs (0.u,0.s) +Chars 13405 - 13420 [unfold~observe.] 0. secs (0.u,0.s) +Chars 13421 - 13425 [cbn.] 0. secs (0.u,0.s) +Chars 13426 - 13448 [destruct~(classicT~_).] 0. secs (0.u,0.s) +Chars 13453 - 13454 [+] 0. secs (0.u,0.s) +Chars 13455 - 13485 [constructor;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 13486 - 13493 [intros.] 0. secs (0.u,0.s) +Chars 13500 - 13512 [inversion~H.] 0.003 secs (0.003u,0.s) +Chars 13513 - 13526 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 13533 - 13539 [subst.] 0. secs (0.u,0.s) +Chars 13540 - 13550 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13555 - 13556 [+] 0. secs (0.u,0.s) +Chars 13557 - 13586 [constructor;~auto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 13587 - 13594 [intros.] 0. secs (0.u,0.s) +Chars 13595 - 13609 [contradiction.] 0. secs (0.u,0.s) +Chars 13610 - 13614 [Qed.] 0.006 secs (0.006u,0.s) +Chars 13616 - 14338 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) +Chars 14339 - 14345 [Proof.] 0. secs (0.u,0.s) +Chars 14348 - 14355 [intros.] 0. secs (0.u,0.s) +Chars 14358 - 14403 [destruct~(classic_empty~A)~as~...] 0. secs (0.u,0.s) +Chars 14406 - 14407 [-] 0. secs (0.u,0.s) +Chars 14408 - 14481 [specialize~trace_refine_vis_ad...] 0. secs (0.u,0.s) +Chars 14486 - 14518 [assert~(exists~b,~b~⊑~k~a).] 0. secs (0.u,0.s) +Chars 14523 - 14524 [{] 0. secs (0.u,0.s) +Chars 14525 - 14553 [apply~itree_refine_nonempty.] 0. secs (0.u,0.s) +Chars 14554 - 14555 [}] 0. secs (0.u,0.s) +Chars 14560 - 14582 [destruct~H~as~[b~Hbk].] 0. secs (0.u,0.s) +Chars 14583 - 14631 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) +Chars 14636 - 14658 [rewrite~<-~Ht1~in~Hbk.] 0.002 secs (0.002u,0.s) +Chars 14663 - 14687 [apply~H0~in~Hbk~as~Hbk0.] 0. secs (0.u,0.s) +Chars 14692 - 14711 [rewrite~Ht1~in~Hbk.] 0.004 secs (0.004u,0.s) +Chars 14712 - 14732 [rewrite~Ht2~in~Hbk0.] 0.002 secs (0.002u,0.s) +Chars 14737 - 14746 [sinv~Hbk.] 0.011 secs (0.011u,0.s) +Chars 14751 - 14761 [sinv~Hbk0.] 0.016 secs (0.016u,0.s) +Chars 14762 - 14775 [ddestruction.] 0.008 secs (0.008u,0.s) +Chars 14780 - 14786 [subst.] 0. secs (0.u,0.s) +Chars 14791 - 14804 [inversion~H8.] 0.001 secs (0.001u,0.s) +Chars 14805 - 14818 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 14823 - 14829 [subst.] 0. secs (0.u,0.s) +Chars 14830 - 14842 [constructor.] 0. secs (0.u,0.s) +Chars 14847 - 14854 [intros.] 0. secs (0.u,0.s) +Chars 14855 - 14873 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 14878 - 14885 [intros.] 0. secs (0.u,0.s) +Chars 14886 - 14911 [setoid_rewrite~Ht1~in~H0.] 0.017 secs (0.016u,0.s) +Chars 14912 - 14937 [setoid_rewrite~Ht2~in~H0.] 0.046 secs (0.046u,0.s) +Chars 14942 - 14956 [split;~intros.] 0. secs (0.u,0.s) +Chars 14961 - 14962 [+] 0. secs (0.u,0.s) +Chars 14963 - 15009 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) +Chars 15010 - 15024 [apply~H0~in~H.] 0. secs (0.u,0.s) +Chars 15031 - 15063 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) +Chars 15064 - 15069 [auto.] 0. secs (0.u,0.s) +Chars 15074 - 15075 [+] 0. secs (0.u,0.s) +Chars 15076 - 15122 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) +Chars 15123 - 15137 [apply~H0~in~H.] 0. secs (0.u,0.s) +Chars 15144 - 15176 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) +Chars 15177 - 15182 [auto.] 0. secs (0.u,0.s) +Chars 15185 - 15186 [-] 0. secs (0.u,0.s) +Chars 15187 - 15250 [set~(ke~:=~fun~v~:~void~=>~mat...] 0. secs (0.u,0.s) +Chars 15255 - 15290 [set~(b~:=~Vis~(evempty~A~Ha~e)...] 0. secs (0.u,0.s) +Chars 15295 - 15313 [assert~(b~⊑~t1).] 0. secs (0.u,0.s) +Chars 15318 - 15319 [{] 0. secs (0.u,0.s) +Chars 15326 - 15335 [unfold~b.] 0. secs (0.u,0.s) +Chars 15336 - 15348 [rewrite~Ht1.] 0.004 secs (0.004u,0.s) +Chars 15349 - 15354 [step.] 0. secs (0.u,0.s) +Chars 15355 - 15359 [cbn.] 0. secs (0.u,0.s) +Chars 15366 - 15378 [constructor.] 0. secs (0.u,0.s) +Chars 15379 - 15380 [{] 0. secs (0.u,0.s) +Chars 15381 - 15391 [apply~ree.] 0. secs (0.u,0.s) +Chars 15392 - 15393 [}] 0. secs (0.u,0.s) +Chars 15394 - 15395 [{] 0. secs (0.u,0.s) +Chars 15396 - 15406 [intros~[].] 0. secs (0.u,0.s) +Chars 15407 - 15408 [}] 0. secs (0.u,0.s) +Chars 15413 - 15414 [}] 0. secs (0.u,0.s) +Chars 15419 - 15439 [apply~H0~in~H~as~H1.] 0. secs (0.u,0.s) +Chars 15440 - 15454 [unfold~b~in~*.] 0. secs (0.u,0.s) +Chars 15455 - 15463 [clear~b.] 0. secs (0.u,0.s) +Chars 15468 - 15485 [rewrite~Ht1~in~H.] 0.002 secs (0.002u,0.s) +Chars 15486 - 15504 [rewrite~Ht2~in~H1.] 0.002 secs (0.002u,0.s) +Chars 15509 - 15516 [sinv~H.] 0.012 secs (0.012u,0.s) +Chars 15517 - 15525 [sinv~H1.] 0.015 secs (0.015u,0.s) +Chars 15526 - 15539 [ddestruction.] 0.007 secs (0.007u,0.s) +Chars 15544 - 15550 [subst.] 0. secs (0.u,0.s) +Chars 15551 - 15564 [inversion~H6.] 0.001 secs (0.001u,0.s) +Chars 15565 - 15578 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 15583 - 15595 [constructor.] 0. secs (0.u,0.s) +Chars 15600 - 15607 [intros.] 0. secs (0.u,0.s) +Chars 15608 - 15619 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 15624 - 15631 [intros.] 0. secs (0.u,0.s) +Chars 15632 - 15657 [setoid_rewrite~Ht1~in~H0.] 0.017 secs (0.016u,0.s) +Chars 15658 - 15683 [setoid_rewrite~Ht2~in~H0.] 0.046 secs (0.046u,0.s) +Chars 15688 - 15717 [split;~intros;~contradiction.] 0.001 secs (0.001u,0.s) +Chars 15718 - 15722 [Qed.] 0.036 secs (0.036u,0.s) +Chars 15724 - 15953 [Lemma~trace_refine_vis~:~~~for...] 0. secs (0.u,0.s) +Chars 15954 - 15960 [Proof.] 0. secs (0.u,0.s) +Chars 15963 - 15970 [intros.] 0. secs (0.u,0.s) +Chars 15971 - 15981 [step~in~H.] 0. secs (0.u,0.s) +Chars 15982 - 15998 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 16002 - 16024 [dependent~induction~H.] 0.036 secs (0.036u,0.s) +Chars 16027 - 16028 [-] 0. secs (0.u,0.s) +Chars 16029 - 16039 [exists~A0.] 0. secs (0.u,0.s) +Chars 16040 - 16050 [exists~e1.] 0. secs (0.u,0.s) +Chars 16051 - 16061 [exists~k1.] 0. secs (0.u,0.s) +Chars 16066 - 16097 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) +Chars 16098 - 16117 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) +Chars 16122 - 16133 [rewrite~Hb.] 0.001 secs (0.001u,0.s) +Chars 16134 - 16146 [reflexivity.] 0. secs (0.u,0.s) +Chars 16149 - 16150 [-] 0. secs (0.u,0.s) +Chars 16151 - 16257 [enough~~(exists~(X~:~Type)~(e0...] 0. secs (0.u,0.s) +Chars 16262 - 16263 [{] 0. secs (0.u,0.s) +Chars 16270 - 16306 [destruct~H0~as~[X~[e0~[k0~Ht1]]].] 0. secs (0.u,0.s) +Chars 16313 - 16322 [exists~X.] 0. secs (0.u,0.s) +Chars 16323 - 16333 [exists~e0.] 0. secs (0.u,0.s) +Chars 16334 - 16344 [exists~k0.] 0. secs (0.u,0.s) +Chars 16351 - 16382 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) +Chars 16383 - 16402 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) +Chars 16403 - 16414 [rewrite~Hb.] 0.001 secs (0.001u,0.s) +Chars 16421 - 16438 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 16439 - 16444 [auto.] 0. secs (0.u,0.s) +Chars 16449 - 16450 [}] 0. secs (0.u,0.s) +Chars 16455 - 16477 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 16478 - 16482 [Qed.] 0.029 secs (0.029u,0.s) +Chars 16484 - 16730 [Lemma~trace_refine_vis_l~:~~~f...] 0. secs (0.u,0.s) +Chars 16731 - 16737 [Proof.] 0. secs (0.u,0.s) +Chars 16740 - 16747 [intros.] 0. secs (0.u,0.s) +Chars 16748 - 16758 [step~in~H.] 0. secs (0.u,0.s) +Chars 16759 - 16775 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 16779 - 16801 [dependent~induction~H.] 0.029 secs (0.029u,0.s) +Chars 16804 - 16805 [-] 0. secs (0.u,0.s) +Chars 16806 - 16815 [exists~B.] 0. secs (0.u,0.s) +Chars 16816 - 16826 [exists~e2.] 0. secs (0.u,0.s) +Chars 16828 - 16838 [exists~k2.] 0. secs (0.u,0.s) +Chars 16839 - 16870 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 16875 - 16894 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 16895 - 16906 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 16907 - 16919 [reflexivity.] 0. secs (0.u,0.s) +Chars 16922 - 16923 [-] 0. secs (0.u,0.s) +Chars 16924 - 16942 [assert~(t2~≈~t).] 0. secs (0.u,0.s) +Chars 16947 - 16948 [{] 0. secs (0.u,0.s) +Chars 16955 - 16980 [specialize~(itree_eta~t).] 0. secs (0.u,0.s) +Chars 16981 - 16994 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 16995 - 17002 [intros.] 0. secs (0.u,0.s) +Chars 17009 - 17020 [rewrite~H0.] 0.004 secs (0.004u,0.s) +Chars 17021 - 17038 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 17039 - 17051 [reflexivity.] 0. secs (0.u,0.s) +Chars 17056 - 17057 [}] 0. secs (0.u,0.s) +Chars 17062 - 17083 [setoid_rewrite~~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 17084 - 17106 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 17107 - 17111 [Qed.] 0.026 secs (0.026u,0.s) +Chars 17113 - 17318 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) +Chars 17319 - 17325 [Proof.] 0. secs (0.u,0.s) +Chars 17328 - 17335 [intros.] 0. secs (0.u,0.s) +Chars 17336 - 17348 [induction~H.] 0. secs (0.u,0.s) +Chars 17351 - 17352 [-] 0. secs (0.u,0.s) +Chars 17353 - 17368 [exists~(Ret~r).] 0. secs (0.u,0.s) +Chars 17369 - 17379 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 17380 - 17386 [split.] 0. secs (0.u,0.s) +Chars 17391 - 17392 [+] 0. secs (0.u,0.s) +Chars 17393 - 17405 [constructor.] 0. secs (0.u,0.s) +Chars 17406 - 17418 [reflexivity.] 0. secs (0.u,0.s) +Chars 17423 - 17424 [+] 0. secs (0.u,0.s) +Chars 17425 - 17448 [apply~trace_refine_ret.] 0. secs (0.u,0.s) +Chars 17451 - 17452 [-] 0. secs (0.u,0.s) +Chars 17453 - 17500 [destruct~IHmay_converge~as~[br...] 0. secs (0.u,0.s) +Chars 17505 - 17548 [exists~(Vis~(evans~B~e~b)~(fun...] 0. secs (0.u,0.s) +Chars 17549 - 17555 [split.] 0. secs (0.u,0.s) +Chars 17560 - 17561 [+] 0. secs (0.u,0.s) +Chars 17562 - 17595 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 17596 - 17602 [eauto.] 0. secs (0.u,0.s) +Chars 17603 - 17612 [Unshelve.] 0. secs (0.u,0.s) +Chars 17613 - 17622 [exact~tt.] 0. secs (0.u,0.s) +Chars 17627 - 17628 [+] 0. secs (0.u,0.s) +Chars 17629 - 17639 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 17640 - 17667 [apply~trace_refine_vis_add.] 0. secs (0.u,0.s) +Chars 17668 - 17673 [auto.] 0. secs (0.u,0.s) +Chars 17674 - 17678 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17680 - 17886 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) +Chars 17887 - 17893 [Proof.] 0. secs (0.u,0.s) +Chars 17896 - 17903 [intros.] 0. secs (0.u,0.s) +Chars 17904 - 17927 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 17928 - 17948 [induction~H;~intros.] 0. secs (0.u,0.s) +Chars 17951 - 17952 [-] 0. secs (0.u,0.s) +Chars 17953 - 17969 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) +Chars 17970 - 18005 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 18010 - 18021 [rewrite~H0.] 0.003 secs (0.003u,0.s) +Chars 18022 - 18034 [constructor.] 0. secs (0.u,0.s) +Chars 18035 - 18047 [reflexivity.] 0. secs (0.u,0.s) +Chars 18050 - 18051 [-] 0. secs (0.u,0.s) +Chars 18052 - 18068 [rewrite~H~in~H1.] 0.002 secs (0.002u,0.s) +Chars 18069 - 18107 [apply~trace_refine_vis_l~in~H1...] 0. secs (0.u,0.s) +Chars 18112 - 18148 [destruct~Ht0~as~[X~[e0~[k0~Ht0...] 0. secs (0.u,0.s) +Chars 18153 - 18171 [rewrite~Ht0~in~H1.] 0.007 secs (0.007u,0.s) +Chars 18172 - 18180 [sinv~H1.] 0.008 secs (0.008u,0.s) +Chars 18181 - 18187 [subst.] 0. secs (0.u,0.s) +Chars 18192 - 18205 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 18206 - 18212 [subst.] 0. secs (0.u,0.s) +Chars 18213 - 18225 [rewrite~Ht0.] 0.003 secs (0.003u,0.s) +Chars 18230 - 18290 [inversion~H4;~subst;~ddestruct...] 0.007 secs (0.006u,0.s) +Chars 18295 - 18328 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 18329 - 18338 [Unshelve.] 0. secs (0.u,0.s) +Chars 18339 - 18351 [2:~exact~a.] 0. secs (0.u,0.s) +Chars 18356 - 18377 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 18383 - 18404 [specialize~(H9~tt~a).] 0. secs (0.u,0.s) +Chars 18405 - 18454 [assert~(RAnsRef~E~unit~X~(evan...] 0. secs (0.u,0.s) +Chars 18459 - 18471 [constructor.] 0. secs (0.u,0.s) +Chars 18472 - 18487 [apply~H9~in~H1.] 0. secs (0.u,0.s) +Chars 18488 - 18499 [destruct~b.] 0. secs (0.u,0.s) +Chars 18500 - 18505 [auto.] 0. secs (0.u,0.s) +Chars 18506 - 18510 [Qed.] 0.01 secs (0.01u,0.s) +Chars 18512 - 18701 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) +Chars 18702 - 18708 [Proof.] 0. secs (0.u,0.s) +Chars 18711 - 18722 [intros~E~R.] 0. secs (0.u,0.s) +Chars 18723 - 18749 [unfold~all_infinite~at~-~1.] 0. secs (0.u,0.s) +Chars 18753 - 18771 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 18775 - 18782 [intros.] 0. secs (0.u,0.s) +Chars 18783 - 18793 [step~in~H.] 0. secs (0.u,0.s) +Chars 18794 - 18805 [step~in~H0.] 0. secs (0.u,0.s) +Chars 18806 - 18838 [repeat~red~in~H,~H0;~repeat~red.] 0. secs (0.u,0.s) +Chars 18844 - 18867 [dependent~induction~H0.] 0.032 secs (0.032u,0.s) +Chars 18870 - 18871 [-] 0. secs (0.u,0.s) +Chars 18872 - 18890 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 18891 - 18897 [inv~H.] 0. secs (0.u,0.s) +Chars 18901 - 18902 [-] 0. secs (0.u,0.s) +Chars 18903 - 18917 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 18918 - 18930 [constructor.] 0. secs (0.u,0.s) +Chars 18931 - 18949 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 18954 - 18972 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 18973 - 18979 [inv~H.] 0. secs (0.u,0.s) +Chars 18982 - 18983 [-] 0. secs (0.u,0.s) +Chars 18984 - 18998 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 18999 - 19017 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 19018 - 19030 [constructor.] 0. secs (0.u,0.s) +Chars 19031 - 19037 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 19042 - 19055 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 19056 - 19062 [subst.] 0. secs (0.u,0.s) +Chars 19063 - 19070 [intros.] 0. secs (0.u,0.s) +Chars 19076 - 19123 [inv~H1;~subst;~ddestruction;~t...] 0.013 secs (0.012u,0.s) +Chars 19124 - 19136 [destruct~b0.] 0. secs (0.u,0.s) +Chars 19141 - 19166 [eapply~CIH;~try~apply~H3.] 0. secs (0.u,0.s) +Chars 19171 - 19192 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) +Chars 19193 - 19240 [assert~(RAnsRef~_~_~_~(evans~B...] 0. secs (0.u,0.s) +Chars 19245 - 19257 [constructor.] 0. secs (0.u,0.s) +Chars 19258 - 19272 [apply~H0~in~H.] 0. secs (0.u,0.s) +Chars 19273 - 19279 [eauto.] 0. secs (0.u,0.s) +Chars 19282 - 19283 [-] 0. secs (0.u,0.s) +Chars 19284 - 19297 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 19298 - 19310 [constructor.] 0. secs (0.u,0.s) +Chars 19311 - 19329 [apply~(b_chain~c).] 0. secs (0.u,0.s) +Chars 19330 - 19352 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 19355 - 19356 [-] 0. secs (0.u,0.s) +Chars 19357 - 19378 [eapply~IHruttF;~auto.] 0.001 secs (0.001u,0.s) +Chars 19379 - 19397 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 19398 - 19404 [inv~H.] 0.005 secs (0.005u,0.s) +Chars 19409 - 19424 [now~step~in~H2.] 0. secs (0.u,0.s) +Chars 19426 - 19430 [Qed.] 0.035 secs (0.035u,0.s) +Chars 19432 - 19717 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) +Chars 19718 - 19724 [Proof.] 0. secs (0.u,0.s) +Chars 19727 - 19734 [intros.] 0. secs (0.u,0.s) +Chars 19735 - 19758 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 19759 - 19789 [dependent~induction~H;~intros.] 0. secs (0.u,0.s) +Chars 19792 - 19793 [-] 0. secs (0.u,0.s) +Chars 19794 - 19804 [rewrite~H.] 0.004 secs (0.004u,0.s) +Chars 19805 - 19821 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) +Chars 19822 - 19857 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 19862 - 19873 [rewrite~H0.] 0.003 secs (0.003u,0.s) +Chars 19874 - 19900 [repeat~rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 19901 - 19906 [auto.] 0. secs (0.u,0.s) +Chars 19909 - 19910 [-] 0. secs (0.u,0.s) +Chars 19911 - 19942 [specialize~(IHmay_converge~H1).] 0. secs (0.u,0.s) +Chars 19947 - 19963 [rewrite~H~in~H2.] 0.002 secs (0.002u,0.s) +Chars 19964 - 20001 [apply~trace_refine_vis_l~in~H2...] 0. secs (0.u,0.s) +Chars 20006 - 20040 [destruct~Ht~as~[X~[e0~[k0~Ht]]].] 0. secs (0.u,0.s) +Chars 20045 - 20062 [rewrite~Ht~in~H2.] 0.002 secs (0.002u,0.s) +Chars 20063 - 20074 [step~in~H2.] 0. secs (0.u,0.s) +Chars 20075 - 20092 [repeat~red~in~H2.] 0. secs (0.u,0.s) +Chars 20093 - 20100 [inv~H2.] 0.008 secs (0.008u,0.s) +Chars 20106 - 20119 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 20120 - 20126 [subst.] 0. secs (0.u,0.s) +Chars 20131 - 20175 [inversion~H5;~subst;~ddestruct...] 0.009 secs (0.009u,0.s) +Chars 20181 - 20191 [rewrite~H.] 0.004 secs (0.004u,0.s) +Chars 20192 - 20203 [rewrite~Ht.] 0.004 secs (0.004u,0.s) +Chars 20208 - 20213 [step.] 0. secs (0.u,0.s) +Chars 20214 - 20225 [repeat~red.] 0. secs (0.u,0.s) +Chars 20226 - 20230 [cbn.] 0. secs (0.u,0.s) +Chars 20231 - 20249 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 20254 - 20261 [intros.] 0. secs (0.u,0.s) +Chars 20262 - 20278 [apply~H10~in~H2.] 0. secs (0.u,0.s) +Chars 20283 - 20295 [destruct~a0.] 0. secs (0.u,0.s) +Chars 20296 - 20307 [destruct~b.] 0. secs (0.u,0.s) +Chars 20308 - 20329 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 20330 - 20335 [auto.] 0. secs (0.u,0.s) +Chars 20336 - 20340 [Qed.] 0.015 secs (0.015u,0.s) +Chars 20342 - 20600 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) +Chars 20601 - 20607 [Proof.] 0. secs (0.u,0.s) +Chars 20610 - 20631 [intros~E~R~S~b~t~f~g.] 0. secs (0.u,0.s) +Chars 20632 - 20655 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 20656 - 20679 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 20682 - 20686 [red.] 0. secs (0.u,0.s) +Chars 20687 - 20706 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 20707 - 20714 [intros.] 0. secs (0.u,0.s) +Chars 20717 - 20728 [step~in~H0.] 0. secs (0.u,0.s) +Chars 20732 - 20742 [step~in~H.] 0. secs (0.u,0.s) +Chars 20743 - 20763 [repeat~red~in~H0,~H.] 0. secs (0.u,0.s) +Chars 20767 - 20790 [dependent~induction~H0.] 0.048 secs (0.048u,0.s) +Chars 20793 - 20794 [-] 0. secs (0.u,0.s) +Chars 20795 - 20814 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) +Chars 20815 - 20821 [inv~H.] 0. secs (0.u,0.s) +Chars 20824 - 20825 [-] 0. secs (0.u,0.s) +Chars 20826 - 20841 [unfold~observe.] 0. secs (0.u,0.s) +Chars 20842 - 20846 [cbn.] 0. secs (0.u,0.s) +Chars 20847 - 20861 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 20862 - 20875 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 20880 - 20884 [cbn.] 0. secs (0.u,0.s) +Chars 20885 - 20897 [constructor.] 0. secs (0.u,0.s) +Chars 20898 - 20914 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 20919 - 20938 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) +Chars 20939 - 20945 [inv~H.] 0. secs (0.u,0.s) +Chars 20949 - 20950 [-] 0. secs (0.u,0.s) +Chars 20951 - 20966 [unfold~observe.] 0. secs (0.u,0.s) +Chars 20967 - 20971 [cbn.] 0. secs (0.u,0.s) +Chars 20972 - 20986 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 20987 - 21000 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 21001 - 21005 [cbn.] 0. secs (0.u,0.s) +Chars 21006 - 21024 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 21029 - 21036 [intros.] 0. secs (0.u,0.s) +Chars 21041 - 21060 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) +Chars 21061 - 21067 [inv~H.] 0.014 secs (0.014u,0.s) +Chars 21068 - 21081 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 21082 - 21088 [subst.] 0. secs (0.u,0.s) +Chars 21094 - 21109 [apply~H0~in~H2.] 0. secs (0.u,0.s) +Chars 21110 - 21128 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 21129 - 21138 [apply~H4.] 0. secs (0.u,0.s) +Chars 21141 - 21142 [-] 0. secs (0.u,0.s) +Chars 21143 - 21163 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 21164 - 21168 [cbn.] 0. secs (0.u,0.s) +Chars 21169 - 21182 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 21183 - 21187 [cbn.] 0. secs (0.u,0.s) +Chars 21188 - 21200 [constructor.] 0. secs (0.u,0.s) +Chars 21205 - 21227 [eapply~IHruttF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 21228 - 21246 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 21247 - 21253 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 21254 - 21265 [now~unstep.] 0. secs (0.u,0.s) +Chars 21268 - 21269 [-] 0. secs (0.u,0.s) +Chars 21270 - 21290 [unfold~observe~at~2.] 0. secs (0.u,0.s) +Chars 21291 - 21295 [cbn.] 0. secs (0.u,0.s) +Chars 21296 - 21309 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 21310 - 21314 [cbn.] 0. secs (0.u,0.s) +Chars 21315 - 21327 [constructor.] 0. secs (0.u,0.s) +Chars 21332 - 21354 [eapply~IHruttF;~eauto.] 0.004 secs (0.004u,0.s) +Chars 21355 - 21359 [Qed.] 0.059 secs (0.059u,0.s) +Chars 21361 - 21500 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) +Chars 21501 - 21507 [Proof.] 0. secs (0.u,0.s) +Chars 21510 - 21521 [intros~E~R.] 0. secs (0.u,0.s) +Chars 21522 - 21541 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 21542 - 21549 [intros.] 0. secs (0.u,0.s) +Chars 21552 - 21581 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 21582 - 21611 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 21614 - 21645 [destruct~(ot1);~destruct~(ot2).] 0.002 secs (0.002u,0.s) +Chars 21648 - 21776 [all:~~specialize~(itree_eta~t1...] 0.001 secs (0.001u,0.s) +Chars 21793 - 21794 [-] 0. secs (0.u,0.s) +Chars 21795 - 21826 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) +Chars 21831 - 21850 [rewrite~Ht1~in~Hr0.] 0.017 secs (0.017u,0.s) +Chars 21851 - 21870 [rewrite~Ht2~in~Hr0.] 0.046 secs (0.046u,0.s) +Chars 21876 - 21899 [assert~(Ret~r0~⊑~t1).] 0. secs (0.u,0.s) +Chars 21904 - 21905 [{] 0. secs (0.u,0.s) +Chars 21906 - 21918 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 21919 - 21929 [apply~Hr0.] 0. secs (0.u,0.s) +Chars 21930 - 21935 [step.] 0. secs (0.u,0.s) +Chars 21936 - 21941 [eret.] 0. secs (0.u,0.s) +Chars 21942 - 21943 [}] 0. secs (0.u,0.s) +Chars 21948 - 21966 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) +Chars 21967 - 21975 [sinv~H0.] 0.004 secs (0.004u,0.s) +Chars 21994 - 21995 [-] 0. secs (0.u,0.s) +Chars 21996 - 22020 [setoid_rewrite~Ht2~in~H.] 0.042 secs (0.042u,0.s) +Chars 22025 - 22049 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) +Chars 22054 - 22076 [rewrite~tau_eutt~in~H.] 0.001 secs (0.001u,0.s) +Chars 22077 - 22082 [taur.] 0. secs (0.u,0.s) +Chars 22088 - 22110 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) +Chars 22115 - 22116 [{] 0. secs (0.u,0.s) +Chars 22117 - 22129 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 22130 - 22135 [step.] 0. secs (0.u,0.s) +Chars 22136 - 22141 [eret.] 0. secs (0.u,0.s) +Chars 22142 - 22143 [}] 0. secs (0.u,0.s) +Chars 22148 - 22162 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 22163 - 22174 [step~in~H0.] 0. secs (0.u,0.s) +Chars 22175 - 22203 [repeat~red~in~H0;~cbn~in~H0.] 0. secs (0.u,0.s) +Chars 22208 - 22238 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 22239 - 22262 [dependent~induction~H0.] 0.033 secs (0.032u,0.s) +Chars 22267 - 22268 [+] 0. secs (0.u,0.s) +Chars 22269 - 22282 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22283 - 22288 [eret.] 0. secs (0.u,0.s) +Chars 22294 - 22295 [+] 0. secs (0.u,0.s) +Chars 22296 - 22309 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22310 - 22321 [taur;~auto.] 0. secs (0.u,0.s) +Chars 22341 - 22342 [-] 0. secs (0.u,0.s) +Chars 22343 - 22351 [exfalso.] 0. secs (0.u,0.s) +Chars 22356 - 22378 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) +Chars 22383 - 22384 [{] 0. secs (0.u,0.s) +Chars 22385 - 22397 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 22398 - 22403 [step.] 0. secs (0.u,0.s) +Chars 22404 - 22409 [eret.] 0. secs (0.u,0.s) +Chars 22410 - 22411 [}] 0. secs (0.u,0.s) +Chars 22416 - 22430 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 22431 - 22449 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) +Chars 22450 - 22458 [sinv~H0.] 0.001 secs (0.001u,0.s) +Chars 22476 - 22477 [-] 0. secs (0.u,0.s) +Chars 22478 - 22502 [setoid_rewrite~Ht1~in~H.] 0.017 secs (0.017u,0.s) +Chars 22503 - 22527 [setoid_rewrite~Ht2~in~H.] 0.042 secs (0.042u,0.s) +Chars 22532 - 22554 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) +Chars 22559 - 22560 [{] 0. secs (0.u,0.s) +Chars 22561 - 22573 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) +Chars 22574 - 22579 [step.] 0. secs (0.u,0.s) +Chars 22580 - 22585 [eret.] 0. secs (0.u,0.s) +Chars 22586 - 22587 [}] 0. secs (0.u,0.s) +Chars 22592 - 22610 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) +Chars 22611 - 22631 [apply~H~in~H0~as~H1.] 0. secs (0.u,0.s) +Chars 22632 - 22643 [step~in~H1.] 0. secs (0.u,0.s) +Chars 22649 - 22682 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) +Chars 22683 - 22700 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 22701 - 22710 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 22715 - 22720 [taul.] 0. secs (0.u,0.s) +Chars 22721 - 22728 [inv~H1.] 0.009 secs (0.009u,0.s) +Chars 22729 - 22767 [dependent~induction~H2;~intros...] 0.031 secs (0.03u,0.s) +Chars 22772 - 22773 [+] 0. secs (0.u,0.s) +Chars 22774 - 22787 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22788 - 22793 [eret.] 0. secs (0.u,0.s) +Chars 22799 - 22800 [+] 0. secs (0.u,0.s) +Chars 22801 - 22814 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22815 - 22826 [taul;~auto.] 0. secs (0.u,0.s) +Chars 22844 - 22845 [-] 0. secs (0.u,0.s) +Chars 22846 - 22858 [constructor.] 0. secs (0.u,0.s) +Chars 22859 - 22870 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 22876 - 22883 [intros.] 0. secs (0.u,0.s) +Chars 22888 - 22906 [assert~(t1~≈~t).] 0. secs (0.u,0.s) +Chars 22907 - 22908 [{] 0. secs (0.u,0.s) +Chars 22909 - 22921 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 22922 - 22939 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 22940 - 22952 [reflexivity.] 0. secs (0.u,0.s) +Chars 22953 - 22954 [}] 0. secs (0.u,0.s) +Chars 22959 - 22978 [assert~(t2~≈~t0).] 0. secs (0.u,0.s) +Chars 22979 - 22980 [{] 0. secs (0.u,0.s) +Chars 22981 - 22993 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 22994 - 23011 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 23012 - 23024 [reflexivity.] 0. secs (0.u,0.s) +Chars 23025 - 23026 [}] 0. secs (0.u,0.s) +Chars 23031 - 23056 [now~rewrite~<-~H0,~<-~H1.] 0.001 secs (0.001u,0.s) +Chars 23074 - 23075 [-] 0. secs (0.u,0.s) +Chars 23076 - 23126 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) +Chars 23131 - 23155 [apply~H~in~Hbt1~as~Hbt2.] 0. secs (0.u,0.s) +Chars 23156 - 23176 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) +Chars 23181 - 23206 [rewrite~tau_eutt~in~Hbt1.] 0.002 secs (0.002u,0.s) +Chars 23211 - 23231 [rewrite~Ht2~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 23236 - 23273 [apply~trace_refine_vis~in~Hbt2...] 0. secs (0.u,0.s) +Chars 23278 - 23312 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) +Chars 23317 - 23336 [rewrite~Hb~in~Hbt2.] 0.003 secs (0.003u,0.s) +Chars 23341 - 23360 [rewrite~Hb~in~Hbt1.] 0.003 secs (0.003u,0.s) +Chars 23361 - 23372 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 23377 - 23395 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 23400 - 23424 [setoid_rewrite~Ht1~in~H.] 0.016 secs (0.015u,0.s) +Chars 23425 - 23454 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.001u,0.s) +Chars 23459 - 23479 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 23480 - 23493 [clear~Ht1~t1.] 0. secs (0.u,0.s) +Chars 23498 - 23511 [step~in~Hbt1.] 0. secs (0.u,0.s) +Chars 23512 - 23531 [repeat~red~in~Hbt1.] 0. secs (0.u,0.s) +Chars 23532 - 23541 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23546 - 23571 [dependent~induction~Hbt1.] 0.048 secs (0.048u,0.s) +Chars 23576 - 23577 [+] 0. secs (0.u,0.s) +Chars 23578 - 23591 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 23598 - 23629 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 23630 - 23649 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 23656 - 23700 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) +Chars 23705 - 23706 [+] 0. secs (0.u,0.s) +Chars 23707 - 23720 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 23721 - 23739 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 23740 - 23761 [eapply~IHHbt1;~eauto.] 0.004 secs (0.004u,0.s) +Chars 23768 - 23786 [assert~(t0~≈~t).] 0. secs (0.u,0.s) +Chars 23793 - 23794 [{] 0. secs (0.u,0.s) +Chars 23803 - 23834 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 23835 - 23854 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 23855 - 23866 [rewrite~Ht.] 0.001 secs (0.001u,0.s) +Chars 23875 - 23892 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 23893 - 23905 [reflexivity.] 0. secs (0.u,0.s) +Chars 23912 - 23913 [}] 0. secs (0.u,0.s) +Chars 23920 - 23938 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) +Chars 23939 - 23944 [auto.] 0. secs (0.u,0.s) +Chars 23961 - 23962 [-] 0. secs (0.u,0.s) +Chars 23963 - 23971 [exfalso.] 0. secs (0.u,0.s) +Chars 23976 - 23998 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) +Chars 24003 - 24004 [{] 0. secs (0.u,0.s) +Chars 24005 - 24017 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) +Chars 24018 - 24023 [step.] 0. secs (0.u,0.s) +Chars 24024 - 24029 [eret.] 0. secs (0.u,0.s) +Chars 24030 - 24031 [}] 0. secs (0.u,0.s) +Chars 24036 - 24050 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 24051 - 24069 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) +Chars 24070 - 24078 [sinv~H0.] 0.002 secs (0.002u,0.s) +Chars 24095 - 24096 [-] 0. secs (0.u,0.s) +Chars 24097 - 24147 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) +Chars 24152 - 24176 [apply~H~in~Hbt2~as~Hbt1.] 0. secs (0.u,0.s) +Chars 24177 - 24197 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) +Chars 24202 - 24222 [rewrite~Ht2~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 24227 - 24252 [rewrite~tau_eutt~in~Hbt2.] 0.004 secs (0.004u,0.s) +Chars 24257 - 24294 [apply~trace_refine_vis~in~Hbt1...] 0. secs (0.u,0.s) +Chars 24299 - 24333 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) +Chars 24338 - 24357 [rewrite~Hb~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 24362 - 24381 [rewrite~Hb~in~Hbt1.] 0.003 secs (0.003u,0.s) +Chars 24382 - 24393 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 24398 - 24416 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 24421 - 24445 [setoid_rewrite~Ht2~in~H.] 0.045 secs (0.045u,0.s) +Chars 24446 - 24475 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) +Chars 24480 - 24500 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 24501 - 24514 [clear~Ht2~t2.] 0. secs (0.u,0.s) +Chars 24519 - 24532 [step~in~Hbt2.] 0. secs (0.u,0.s) +Chars 24533 - 24552 [repeat~red~in~Hbt2.] 0. secs (0.u,0.s) +Chars 24553 - 24562 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 24567 - 24592 [dependent~induction~Hbt2.] 0.046 secs (0.046u,0.s) +Chars 24597 - 24598 [+] 0. secs (0.u,0.s) +Chars 24599 - 24612 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 24619 - 24650 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 24651 - 24670 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 24677 - 24721 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) +Chars 24726 - 24727 [+] 0. secs (0.u,0.s) +Chars 24728 - 24741 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 24742 - 24760 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 24761 - 24782 [eapply~IHHbt2;~eauto.] 0.006 secs (0.005u,0.s) +Chars 24789 - 24807 [assert~(t2~≈~t).] 0. secs (0.u,0.s) +Chars 24814 - 24815 [{] 0. secs (0.u,0.s) +Chars 24824 - 24855 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 24856 - 24875 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 24876 - 24887 [rewrite~Ht.] 0.001 secs (0.001u,0.s) +Chars 24896 - 24913 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 24914 - 24926 [reflexivity.] 0. secs (0.u,0.s) +Chars 24933 - 24934 [}] 0. secs (0.u,0.s) +Chars 24941 - 24959 [setoid_rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 24960 - 24965 [auto.] 0. secs (0.u,0.s) +Chars 24984 - 24985 [-] 0. secs (0.u,0.s) +Chars 24986 - 25030 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) +Chars 25031 - 25035 [Qed.] 0.185 secs (0.184u,0.001s) +Chars 25037 - 25144 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) +Chars 25145 - 25151 [Proof.] 0. secs (0.u,0.s) +Chars 25154 - 25161 [intros.] 0. secs (0.u,0.s) +Chars 25162 - 25215 [split;~intros;~try~apply~refin...] 0. secs (0.u,0.s) +Chars 25218 - 25228 [rewrite~H.] 0. secs (0.u,0.s) +Chars 25229 - 25241 [split;~auto.] 0. secs (0.u,0.s) +Chars 25242 - 25246 [Qed.] 0. secs (0.u,0.s) +Chars 25248 - 25575 [Lemma~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) +Chars 25576 - 25582 [Proof.] 0. secs (0.u,0.s) +Chars 25585 - 25598 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 25599 - 25603 [red.] 0. secs (0.u,0.s) +Chars 25604 - 25622 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 25623 - 25661 [intros~b~m~g~f~a~Hconv~Hrefb~H...] 0. secs (0.u,0.s) +Chars 25664 - 25688 [generalize~dependent~m.] 0. secs (0.u,0.s) +Chars 25691 - 25743 [dependent~induction~Hconv;~int...] 0. secs (0.u,0.s) +Chars 25746 - 25747 [-] 0. secs (0.u,0.s) +Chars 25748 - 25770 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) +Chars 25771 - 25802 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 25803 - 25822 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) +Chars 25827 - 25865 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 25866 - 25892 [rewrite~Hrefb~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 25897 - 25928 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 25929 - 25938 [now~step.] 0.001 secs (0.001u,0.s) +Chars 25942 - 25943 [-] 0. secs (0.u,0.s) +Chars 26067 - 26097 [destruct~e;~try~contradiction.] 0.001 secs (0.001u,0.s) +Chars 26098 - 26117 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) +Chars 26122 - 26144 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) +Chars 26145 - 26174 [rewrite~bind_vis~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 26179 - 26221 [apply~trace_refine_vis_l~in~Hr...] 0. secs (0.u,0.s) +Chars 26222 - 26261 [destruct~Hvis~as~[X~[e'~[k'~Hv...] 0. secs (0.u,0.s) +Chars 26266 - 26291 [rewrite~Hvis~in~Hrefbind.] 0.007 secs (0.007u,0.s) +Chars 26292 - 26321 [rewrite~bind_vis~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 26326 - 26343 [step~in~Hrefbind.] 0. secs (0.u,0.s) +Chars 26344 - 26384 [repeat~red~in~Hrefbind;~cbn~in...] 0. secs (0.u,0.s) +Chars 26385 - 26398 [inv~Hrefbind.] 0.017 secs (0.017u,0.s) +Chars 26403 - 26416 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 26417 - 26424 [inv~H2.] 0.011 secs (0.011u,0.s) +Chars 26425 - 26445 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 26450 - 26472 [rewrite~Hvis~in~Hrefb.] 0.003 secs (0.003u,0.s) +Chars 26473 - 26487 [step~in~Hrefb.] 0. secs (0.u,0.s) +Chars 26488 - 26522 [repeat~red~in~Hrefb;~cbn~in~Hr...] 0. secs (0.u,0.s) +Chars 26523 - 26533 [inv~Hrefb.] 0.017 secs (0.017u,0.s) +Chars 26538 - 26551 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 26556 - 26641 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 26646 - 26677 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) +Chars 26678 - 26692 [apply~IHHconv.] 0. secs (0.u,0.s) +Chars 26697 - 26698 [+] 0. secs (0.u,0.s) +Chars 26699 - 26714 [apply~H8~in~H0.] 0. secs (0.u,0.s) +Chars 26715 - 26726 [destruct~b.] 0. secs (0.u,0.s) +Chars 26727 - 26732 [auto.] 0. secs (0.u,0.s) +Chars 26737 - 26738 [+] 0. secs (0.u,0.s) +Chars 26739 - 26754 [apply~H7~in~H0.] 0. secs (0.u,0.s) +Chars 26755 - 26766 [destruct~b.] 0. secs (0.u,0.s) +Chars 26767 - 26772 [auto.] 0. secs (0.u,0.s) +Chars 26773 - 26777 [Qed.] 0.037 secs (0.036u,0.s) +Chars 26779 - 27007 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) +Chars 27008 - 27014 [Proof.] 0. secs (0.u,0.s) +Chars 27017 - 27024 [intros.] 0. secs (0.u,0.s) +Chars 27025 - 27051 [generalize~dependent~log'.] 0. secs (0.u,0.s) +Chars 27054 - 27081 [induction~log;~cbn;~intros.] 0. secs (0.u,0.s) +Chars 27084 - 27085 [-] 0. secs (0.u,0.s) +Chars 27086 - 27097 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 27098 - 27129 [setoid_rewrite~bind_ret_l~in~H.] 0.016 secs (0.016u,0.s) +Chars 27130 - 27140 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 27145 - 27171 [apply~may_converge_append.] 0. secs (0.u,0.s) +Chars 27172 - 27200 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) +Chars 27203 - 27204 [-] 0. secs (0.u,0.s) +Chars 27205 - 27299 [assert~~(Vis~a0~(fun~_~=>~ev_l...] 0. secs (0.u,0.s) +Chars 27304 - 27305 [{] 0. secs (0.u,0.s) +Chars 27306 - 27310 [cbn.] 0. secs (0.u,0.s) +Chars 27311 - 27323 [reflexivity.] 0. secs (0.u,0.s) +Chars 27324 - 27325 [}] 0. secs (0.u,0.s) +Chars 27330 - 27346 [rewrite~H0~in~H.] 0.013 secs (0.013u,0.s) +Chars 27351 - 27378 [destruct~log'~as~[|~h~t].] 0. secs (0.u,0.s) +Chars 27383 - 27384 [+] 0. secs (0.u,0.s) +Chars 27385 - 27416 [setoid_rewrite~bind_ret_l~in~H.] 0.02 secs (0.02u,0.s) +Chars 27417 - 27428 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 27429 - 27436 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 27442 - 27443 [+] 0. secs (0.u,0.s) +Chars 27444 - 27455 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 27456 - 27475 [unfold~append~in~H.] 0. secs (0.u,0.s) +Chars 27476 - 27505 [repeat~rewrite~bind_vis~in~H.] 0.036 secs (0.036u,0.s) +Chars 27506 - 27513 [sinv~H.] 0.006 secs (0.006u,0.s) +Chars 27520 - 27540 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 27547 - 27616 [assert~(ev_list_to_stream~log~...] 0. secs (0.u,0.s) +Chars 27623 - 27624 [{] 0. secs (0.u,0.s) +Chars 27625 - 27635 [apply~REL.] 0. secs (0.u,0.s) +Chars 27636 - 27645 [apply~tt.] 0. secs (0.u,0.s) +Chars 27646 - 27647 [}] 0. secs (0.u,0.s) +Chars 27654 - 27674 [eapply~IHlog;~eauto.] 0. secs (0.u,0.s) +Chars 27675 - 27679 [Qed.] 0.01 secs (0.01u,0.s) +Chars 27681 - 27894 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) +Chars 27895 - 27901 [Proof.] 0. secs (0.u,0.s) +Chars 27904 - 27927 [intros~E~A~log~b'~Hdiv.] 0. secs (0.u,0.s) +Chars 27928 - 27942 [induction~log.] 0. secs (0.u,0.s) +Chars 27945 - 27946 [-] 0. secs (0.u,0.s) +Chars 27947 - 27959 [cbn~in~Hdiv.] 0. secs (0.u,0.s) +Chars 27960 - 27994 [setoid_rewrite~bind_ret_l~in~H...] 0.001 secs (0.001u,0.s) +Chars 27995 - 28000 [auto.] 0. secs (0.u,0.s) +Chars 28003 - 28004 [-] 0. secs (0.u,0.s) +Chars 28005 - 28017 [apply~IHlog.] 0. secs (0.u,0.s) +Chars 28018 - 28032 [simpl~in~Hdiv.] 0. secs (0.u,0.s) +Chars 28033 - 28055 [unfold~append~in~Hdiv.] 0. secs (0.u,0.s) +Chars 28060 - 28085 [rewrite~bind_vis~in~Hdiv.] 0.001 secs (0.001u,0.s) +Chars 28086 - 28096 [sinv~Hdiv.] 0.003 secs (0.003u,0.s) +Chars 28097 - 28110 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 28111 - 28117 [subst.] 0. secs (0.u,0.s) +Chars 28118 - 28127 [apply~H0.] 0. secs (0.u,0.s) +Chars 28132 - 28141 [apply~tt.] 0. secs (0.u,0.s) +Chars 28142 - 28146 [Qed.] 0.004 secs (0.004u,0.s) diff --git a/extra/ITrace/ITracePrefix.v.timing b/extra/ITrace/ITracePrefix.v.timing new file mode 100644 index 00000000..66e4470e --- /dev/null +++ b/extra/ITrace/ITracePrefix.v.timing @@ -0,0 +1,561 @@ +Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.156 secs (0.141u,0.015s) +Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.01 secs (0.008u,0.001s) +Chars 293 - 307 [Import~Monads.] 0. secs (0.u,0.s) +Chars 308 - 329 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 330 - 362 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 364 - 387 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.004 secs (0.003u,0.s) +Chars 1395 - 1445 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) +Chars 1447 - 1563 [Definition~trace_prefix_~{E}~{...] 0. secs (0.u,0.s) +Chars 1565 - 1609 [#[global]~Hint~Unfold~trace_pr...] 0. secs (0.u,0.s) +Chars 1611 - 1689 [Lemma~trace_prefix_mono~{E}~{R...] 0. secs (0.u,0.s) +Chars 1690 - 1696 [Proof.] 0. secs (0.u,0.s) +Chars 1699 - 1712 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1713 - 1717 [red.] 0. secs (0.u,0.s) +Chars 1718 - 1728 [red~in~H0.] 0. secs (0.u,0.s) +Chars 1729 - 1789 [induction~H0;~eauto~with~itree...] 0.002 secs (0.002u,0.s) +Chars 1791 - 1795 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1797 - 1873 [Definition~trace_prefix_mon~{E...] 0. secs (0.u,0.s) +Chars 1875 - 1975 [Definition~trace_prefix~{E}~{R...] 0. secs (0.u,0.s) +Chars 1977 - 2170 [Lemma~prefix_vis~:~~~forall~E~...] 0. secs (0.u,0.s) +Chars 2171 - 2177 [Proof.] 0. secs (0.u,0.s) +Chars 2180 - 2209 [intros~E~R~S~A~e~ans~k~t~Hbp.] 0. secs (0.u,0.s) +Chars 2210 - 2222 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 2223 - 2232 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 2235 - 2259 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) +Chars 2262 - 2263 [-] 0. secs (0.u,0.s) +Chars 2264 - 2283 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 2284 - 2343 [enough~(exists~k',~bs~≈~Vis~(e...] 0. secs (0.u,0.s) +Chars 2348 - 2349 [+] 0. secs (0.u,0.s) +Chars 2350 - 2373 [destruct~H~as~[k'~Hk'].] 0. secs (0.u,0.s) +Chars 2374 - 2384 [exists~k'.] 0. secs (0.u,0.s) +Chars 2385 - 2395 [rewrite~x.] 0.002 secs (0.002u,0.s) +Chars 2396 - 2413 [rewrite~tau_eutt.] 0.035 secs (0.035u,0.s) +Chars 2414 - 2419 [auto.] 0. secs (0.u,0.s) +Chars 2424 - 2425 [+] 0. secs (0.u,0.s) +Chars 2426 - 2446 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 2449 - 2450 [-] 0. secs (0.u,0.s) +Chars 2451 - 2461 [exists~ks.] 0. secs (0.u,0.s) +Chars 2462 - 2481 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 2482 - 2492 [rewrite~x.] 0.001 secs (0.001u,0.s) +Chars 2493 - 2505 [reflexivity.] 0. secs (0.u,0.s) +Chars 2506 - 2510 [Qed.] 0.008 secs (0.008u,0.s) +Chars 2512 - 2608 [Lemma~trace_prefix_ret~:~~~for...] 0. secs (0.u,0.s) +Chars 2609 - 2615 [Proof.] 0. secs (0.u,0.s) +Chars 2618 - 2625 [intros.] 0. secs (0.u,0.s) +Chars 2626 - 2648 [remember~(go~ob)~as~b.] 0. secs (0.u,0.s) +Chars 2649 - 2673 [assert~(observe~b~=~ob).] 0. secs (0.u,0.s) +Chars 2676 - 2677 [{] 0. secs (0.u,0.s) +Chars 2678 - 2684 [subst.] 0. secs (0.u,0.s) +Chars 2685 - 2690 [auto.] 0. secs (0.u,0.s) +Chars 2691 - 2692 [}] 0. secs (0.u,0.s) +Chars 2695 - 2708 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 2709 - 2725 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 2726 - 2730 [Qed.] 0. secs (0.u,0.s) +Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.001 secs (0.001u,0.s) +Chars 3374 - 3380 [Proof.] 0. secs (0.u,0.s) +Chars 3383 - 3423 [intros~E~S~R~t1~b2~Heutt~r~X~e...] 0. secs (0.u,0.s) +Chars 3426 - 3449 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) +Chars 3452 - 3453 [-] 0. secs (0.u,0.s) +Chars 3454 - 3477 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) +Chars 3478 - 3504 [dependent~induction~Heutt.] 0.026 secs (0.026u,0.s) +Chars 3509 - 3510 [+] 0. secs (0.u,0.s) +Chars 3511 - 3524 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3525 - 3548 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 3553 - 3554 [+] 0. secs (0.u,0.s) +Chars 3555 - 3568 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3569 - 3581 [constructor.] 0. secs (0.u,0.s) +Chars 3582 - 3604 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 3607 - 3608 [-] 0. secs (0.u,0.s) +Chars 3609 - 3632 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 3633 - 3648 [3:~reflexivity.] 0. secs (0.u,0.s) +Chars 3649 - 3660 [all:~eauto.] 0. secs (0.u,0.s) +Chars 3666 - 3685 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 3686 - 3717 [assert~(t1~≈~b2)~by~now~step.] 0.003 secs (0.003u,0.s) +Chars 3722 - 3737 [rewrite~x~in~H.] 0.015 secs (0.015u,0.s) +Chars 3738 - 3760 [rewrite~tau_eutt~in~H.] 0.016 secs (0.016u,0.s) +Chars 3761 - 3775 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 3778 - 3779 [-] 0. secs (0.u,0.s) +Chars 3780 - 3802 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) +Chars 3803 - 3829 [dependent~induction~Heutt.] 0.029 secs (0.029u,0.s) +Chars 3834 - 3835 [+] 0. secs (0.u,0.s) +Chars 3836 - 3849 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3850 - 3862 [constructor.] 0. secs (0.u,0.s) +Chars 3867 - 3868 [+] 0. secs (0.u,0.s) +Chars 3869 - 3882 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3883 - 3895 [constructor.] 0. secs (0.u,0.s) +Chars 3896 - 3918 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 3921 - 3922 [-] 0. secs (0.u,0.s) +Chars 3923 - 3945 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) +Chars 3946 - 3972 [dependent~induction~Heutt.] 0.035 secs (0.034u,0.s) +Chars 3977 - 3978 [+] 0. secs (0.u,0.s) +Chars 3979 - 3992 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3993 - 4005 [constructor.] 0. secs (0.u,0.s) +Chars 4006 - 4035 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 4040 - 4041 [+] 0. secs (0.u,0.s) +Chars 4042 - 4055 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4056 - 4068 [constructor.] 0. secs (0.u,0.s) +Chars 4069 - 4091 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4092 - 4096 [Qed.] 0.067 secs (0.066u,0.s) +Chars 4098 - 4312 [Lemma~trace_prefix_tau_inv~:~~...] 0. secs (0.u,0.s) +Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) +Chars 4322 - 4344 [intros~E~S~R~m1~t~Hbp.] 0. secs (0.u,0.s) +Chars 4347 - 4371 [dependent~induction~Hbp.] 0.005 secs (0.005u,0.s) +Chars 4374 - 4375 [-] 0. secs (0.u,0.s) +Chars 4376 - 4381 [auto.] 0. secs (0.u,0.s) +Chars 4384 - 4385 [-] 0. secs (0.u,0.s) +Chars 4386 - 4391 [step.] 0. secs (0.u,0.s) +Chars 4392 - 4404 [clear~IHHbp.] 0. secs (0.u,0.s) +Chars 4405 - 4429 [dependent~induction~Hbp.] 0.006 secs (0.006u,0.s) +Chars 4434 - 4435 [+] 0. secs (0.u,0.s) +Chars 4436 - 4450 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 4451 - 4467 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 4472 - 4473 [+] 0. secs (0.u,0.s) +Chars 4474 - 4487 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4488 - 4500 [constructor.] 0. secs (0.u,0.s) +Chars 4501 - 4515 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 4520 - 4521 [+] 0. secs (0.u,0.s) +Chars 4522 - 4535 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4536 - 4548 [constructor.] 0. secs (0.u,0.s) +Chars 4549 - 4569 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 4574 - 4575 [+] 0. secs (0.u,0.s) +Chars 4576 - 4581 [auto.] 0. secs (0.u,0.s) +Chars 4584 - 4585 [-] 0. secs (0.u,0.s) +Chars 4586 - 4591 [step.] 0. secs (0.u,0.s) +Chars 4592 - 4604 [clear~IHHbp.] 0. secs (0.u,0.s) +Chars 4605 - 4629 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) +Chars 4634 - 4635 [+] 0. secs (0.u,0.s) +Chars 4636 - 4649 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4650 - 4662 [constructor.] 0. secs (0.u,0.s) +Chars 4663 - 4677 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 4682 - 4683 [+] 0. secs (0.u,0.s) +Chars 4684 - 4689 [auto.] 0. secs (0.u,0.s) +Chars 4694 - 4695 [+] 0. secs (0.u,0.s) +Chars 4696 - 4709 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4710 - 4722 [constructor.] 0. secs (0.u,0.s) +Chars 4723 - 4743 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 4744 - 4748 [Qed.] 0.011 secs (0.011u,0.s) +Chars 4750 - 4890 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) +Chars 4891 - 4897 [Proof.] 0. secs (0.u,0.s) +Chars 4900 - 4913 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 4914 - 4933 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 4934 - 4959 [intros~b1~b2~b~Heutt~Hbp.] 0. secs (0.u,0.s) +Chars 4962 - 4976 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 4977 - 4989 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 4992 - 5018 [dependent~induction~Heutt.] 0.03 secs (0.03u,0.s) +Chars 5021 - 5022 [-] 0. secs (0.u,0.s) +Chars 5023 - 5036 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5037 - 5049 [constructor.] 0. secs (0.u,0.s) +Chars 5052 - 5053 [-] 0. secs (0.u,0.s) +Chars 5054 - 5067 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5068 - 5089 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 5090 - 5101 [clear~x0~x.] 0. secs (0.u,0.s) +Chars 5106 - 5138 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) +Chars 5143 - 5144 [+] 0. secs (0.u,0.s) +Chars 5145 - 5153 [inv~Hbp.] 0.009 secs (0.009u,0.s) +Chars 5154 - 5166 [constructor.] 0. secs (0.u,0.s) +Chars 5167 - 5191 [dependent~induction~H0.] 0.011 secs (0.011u,0.s) +Chars 5198 - 5199 [*] 0. secs (0.u,0.s) +Chars 5200 - 5220 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) +Chars 5221 - 5246 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5255 - 5271 [rewrite~x0~in~H.] 0.016 secs (0.015u,0.s) +Chars 5272 - 5296 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) +Chars 5305 - 5315 [step~in~H.] 0. secs (0.u,0.s) +Chars 5316 - 5325 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5326 - 5348 [dependent~induction~H.] 0.028 secs (0.028u,0.s) +Chars 5357 - 5359 [++] 0. secs (0.u,0.s) +Chars 5360 - 5373 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5374 - 5397 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 5406 - 5408 [++] 0. secs (0.u,0.s) +Chars 5409 - 5422 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5423 - 5435 [constructor.] 0. secs (0.u,0.s) +Chars 5436 - 5458 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5465 - 5466 [*] 0. secs (0.u,0.s) +Chars 5467 - 5490 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 5491 - 5506 [5:~reflexivity.] 0. secs (0.u,0.s) +Chars 5507 - 5517 [all:~auto.] 0. secs (0.u,0.s) +Chars 5526 - 5545 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 5546 - 5571 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5580 - 5595 [rewrite~x~in~H.] 0.016 secs (0.015u,0.s) +Chars 5596 - 5618 [rewrite~tau_eutt~in~H.] 0.015 secs (0.014u,0.s) +Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) +Chars 5629 - 5630 [+] 0. secs (0.u,0.s) +Chars 5631 - 5643 [constructor.] 0. secs (0.u,0.s) +Chars 5644 - 5662 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 5663 - 5698 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) +Chars 5703 - 5704 [+] 0. secs (0.u,0.s) +Chars 5705 - 5717 [constructor.] 0. secs (0.u,0.s) +Chars 5718 - 5729 [clear~Heqb.] 0. secs (0.u,0.s) +Chars 5730 - 5738 [inv~Hbp.] 0.01 secs (0.01u,0.s) +Chars 5739 - 5762 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) +Chars 5769 - 5770 [*] 0. secs (0.u,0.s) +Chars 5771 - 5791 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) +Chars 5792 - 5817 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5826 - 5842 [rewrite~x0~in~H.] 0.015 secs (0.015u,0.s) +Chars 5843 - 5853 [step~in~H.] 0. secs (0.u,0.s) +Chars 5854 - 5863 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5872 - 5894 [dependent~induction~H.] 0.048 secs (0.048u,0.s) +Chars 5903 - 5905 [++] 0. secs (0.u,0.s) +Chars 5906 - 5919 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5920 - 5943 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 5952 - 5954 [++] 0. secs (0.u,0.s) +Chars 5955 - 5968 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5969 - 5981 [constructor.] 0. secs (0.u,0.s) +Chars 5982 - 6018 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) +Chars 6031 - 6056 [assert~(m1~≈~m2);~auto.] 0.002 secs (0.002u,0.s) +Chars 6068 - 6076 [sinv~x0.] 0.013 secs (0.013u,0.s) +Chars 6077 - 6100 [apply~simpobs~in~x,~H2.] 0. secs (0.u,0.s) +Chars 6114 - 6144 [rewrite~x,~H2,~tau_eutt~in~H0.] 0.039 secs (0.039u,0.s) +Chars 6157 - 6179 [now~rewrite~<-~H0,~H2.] 0.002 secs (0.002u,0.s) +Chars 6187 - 6188 [*] 0. secs (0.u,0.s) +Chars 6189 - 6212 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 6213 - 6228 [4:~reflexivity.] 0. secs (0.u,0.s) +Chars 6229 - 6239 [all:~auto.] 0. secs (0.u,0.s) +Chars 6248 - 6273 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6274 - 6293 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6302 - 6317 [rewrite~x~in~H.] 0.015 secs (0.015u,0.s) +Chars 6318 - 6340 [rewrite~tau_eutt~in~H.] 0.014 secs (0.014u,0.s) +Chars 6341 - 6346 [auto.] 0. secs (0.u,0.s) +Chars 6353 - 6354 [*] 0. secs (0.u,0.s) +Chars 6355 - 6380 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6381 - 6400 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6409 - 6425 [rewrite~x~in~H0.] 0.014 secs (0.014u,0.s) +Chars 6434 - 6445 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6446 - 6455 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6464 - 6487 [dependent~induction~H0.] 0.044 secs (0.043u,0.s) +Chars 6496 - 6498 [++] 0. secs (0.u,0.s) +Chars 6499 - 6512 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6513 - 6525 [constructor.] 0. secs (0.u,0.s) +Chars 6534 - 6536 [++] 0. secs (0.u,0.s) +Chars 6537 - 6550 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6551 - 6563 [constructor.] 0. secs (0.u,0.s) +Chars 6564 - 6600 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) +Chars 6612 - 6637 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6649 - 6668 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6669 - 6685 [rewrite~x~in~H1.] 0.022 secs (0.022u,0.s) +Chars 6686 - 6709 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) +Chars 6710 - 6715 [auto.] 0. secs (0.u,0.s) +Chars 6722 - 6723 [*] 0. secs (0.u,0.s) +Chars 6725 - 6744 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6745 - 6770 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6779 - 6795 [rewrite~x~in~H0.] 0.015 secs (0.015u,0.s) +Chars 6796 - 6807 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6808 - 6817 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6826 - 6849 [dependent~induction~H0.] 0.046 secs (0.045u,0.s) +Chars 6858 - 6860 [++] 0. secs (0.u,0.s) +Chars 6861 - 6874 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6875 - 6887 [constructor.] 0. secs (0.u,0.s) +Chars 6888 - 6922 [eapply~CIH;~try~apply~REL0;~ea...] 0. secs (0.u,0.s) +Chars 6932 - 6934 [++] 0. secs (0.u,0.s) +Chars 6935 - 6948 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6949 - 6961 [constructor.] 0. secs (0.u,0.s) +Chars 6962 - 6998 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) +Chars 7010 - 7035 [assert~(m1~≈~m2);~auto.] 0.001 secs (0.u,0.s) +Chars 7047 - 7066 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 7067 - 7083 [rewrite~x~in~H1.] 0.023 secs (0.023u,0.s) +Chars 7084 - 7107 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) +Chars 7108 - 7113 [auto.] 0. secs (0.u,0.s) +Chars 7116 - 7117 [-] 0. secs (0.u,0.s) +Chars 7118 - 7131 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7132 - 7153 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 7154 - 7165 [clear~x~x0.] 0. secs (0.u,0.s) +Chars 7171 - 7195 [dependent~induction~Hbp.] 0.012 secs (0.012u,0.s) +Chars 7200 - 7201 [+] 0. secs (0.u,0.s) +Chars 7202 - 7215 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7216 - 7228 [constructor.] 0. secs (0.u,0.s) +Chars 7229 - 7249 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 7254 - 7255 [+] 0. secs (0.u,0.s) +Chars 7256 - 7269 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7270 - 7282 [constructor.] 0. secs (0.u,0.s) +Chars 7287 - 7288 [+] 0. secs (0.u,0.s) +Chars 7289 - 7302 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7304 - 7316 [constructor.] 0. secs (0.u,0.s) +Chars 7317 - 7361 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) +Chars 7364 - 7365 [-] 0. secs (0.u,0.s) +Chars 7366 - 7386 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) +Chars 7391 - 7423 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) +Chars 7428 - 7429 [+] 0. secs (0.u,0.s) +Chars 7430 - 7444 [clear~IHHeutt.] 0. secs (0.u,0.s) +Chars 7445 - 7453 [inv~Hbp.] 0.014 secs (0.014u,0.s) +Chars 7454 - 7467 [clear~Heqb~x.] 0. secs (0.u,0.s) +Chars 7474 - 7497 [dependent~induction~H0.] 0.008 secs (0.008u,0.s) +Chars 7504 - 7505 [*] 0. secs (0.u,0.s) +Chars 7506 - 7529 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) +Chars 7530 - 7545 [clear~CIH~x0~x.] 0. secs (0.u,0.s) +Chars 7554 - 7581 [dependent~induction~Heutt.] 0.026 secs (0.026u,0.s) +Chars 7590 - 7592 [++] 0. secs (0.u,0.s) +Chars 7593 - 7606 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7607 - 7630 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 7639 - 7641 [++] 0. secs (0.u,0.s) +Chars 7642 - 7655 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7656 - 7668 [constructor.] 0. secs (0.u,0.s) +Chars 7669 - 7691 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7698 - 7699 [*] 0. secs (0.u,0.s) +Chars 7700 - 7723 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 7724 - 7739 [4:~reflexivity.] 0. secs (0.u,0.s) +Chars 7740 - 7750 [all:~auto.] 0. secs (0.u,0.s) +Chars 7759 - 7790 [assert~(t1~≈~b2)~by~now~step.] 0.001 secs (0.001u,0.s) +Chars 7800 - 7819 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 7820 - 7835 [rewrite~x~in~H.] 0.016 secs (0.016u,0.s) +Chars 7836 - 7858 [rewrite~tau_eutt~in~H.] 0.013 secs (0.013u,0.s) +Chars 7859 - 7873 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 7878 - 7879 [+] 0. secs (0.u,0.s) +Chars 7880 - 7892 [constructor.] 0. secs (0.u,0.s) +Chars 7893 - 7915 [eapply~IHHeutt;~eauto.] 0.002 secs (0.002u,0.s) +Chars 7916 - 7923 [unstep.] 0. secs (0.u,0.s) +Chars 7924 - 7959 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) +Chars 7964 - 7965 [+] 0. secs (0.u,0.s) +Chars 7966 - 7980 [clear~IHHeutt.] 0. secs (0.u,0.s) +Chars 7981 - 7989 [inv~Hbp.] 0.015 secs (0.015u,0.s) +Chars 7990 - 8032 [eapply~trace_prefix_proper_aux...] 0. secs (0.u,0.s) +Chars 8035 - 8036 [-] 0. secs (0.u,0.s) +Chars 8037 - 8050 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 8051 - 8063 [constructor.] 0. secs (0.u,0.s) +Chars 8064 - 8086 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 8087 - 8091 [Qed.] 0.217 secs (0.215u,0.001s) +Chars 8093 - 8369 [Lemma~trace_prefixF_tau_inv_r~...] 0. secs (0.u,0.s) +Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) +Chars 8379 - 8401 [intros~E~S~R~t1~b~Hbp.] 0. secs (0.u,0.s) +Chars 8404 - 8429 [dependent~induction~Hbp.] 0.005 secs (0.005u,0.s) +Chars 8432 - 8433 [-] 0. secs (0.u,0.s) +Chars 8434 - 8448 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 8449 - 8472 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 8475 - 8476 [-] 0. secs (0.u,0.s) +Chars 8478 - 8491 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 8492 - 8504 [constructor.] 0. secs (0.u,0.s) +Chars 8505 - 8519 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 8522 - 8523 [-] 0. secs (0.u,0.s) +Chars 8524 - 8537 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 8538 - 8550 [constructor.] 0. secs (0.u,0.s) +Chars 8551 - 8571 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 8574 - 8575 [-] 0. secs (0.u,0.s) +Chars 8576 - 8581 [auto.] 0. secs (0.u,0.s) +Chars 8582 - 8586 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8588 - 9127 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) +Chars 9128 - 9134 [Proof.] 0. secs (0.u,0.s) +Chars 9137 - 9175 [intros~E~S~R~m1~m2~REL~r~X~e~k...] 0. secs (0.u,0.s) +Chars 9178 - 9190 [step~in~REL.] 0. secs (0.u,0.s) +Chars 9193 - 9216 [dependent~induction~H1.] 0.014 secs (0.013u,0.s) +Chars 9219 - 9220 [-] 0. secs (0.u,0.s) +Chars 9221 - 9244 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 9245 - 9260 [4:~reflexivity.] 0. secs (0.u,0.s) +Chars 9261 - 9271 [all:~auto.] 0. secs (0.u,0.s) +Chars 9276 - 9296 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) +Chars 9301 - 9336 [assert~(Tau~bs~≈~m2)~by~now~step.] 0.001 secs (0.001u,0.s) +Chars 9342 - 9364 [rewrite~tau_eutt~in~H.] 0.019 secs (0.018u,0.s) +Chars 9365 - 9379 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 9382 - 9383 [-] 0. secs (0.u,0.s) +Chars 9384 - 9404 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) +Chars 9405 - 9429 [dependent~induction~REL.] 0.031 secs (0.031u,0.s) +Chars 9434 - 9435 [+] 0. secs (0.u,0.s) +Chars 9436 - 9449 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9450 - 9462 [constructor.] 0. secs (0.u,0.s) +Chars 9467 - 9468 [+] 0. secs (0.u,0.s) +Chars 9469 - 9482 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9483 - 9495 [constructor.] 0. secs (0.u,0.s) +Chars 9496 - 9516 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 9519 - 9520 [-] 0. secs (0.u,0.s) +Chars 9522 - 9542 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) +Chars 9543 - 9567 [dependent~induction~REL.] 0.034 secs (0.033u,0.s) +Chars 9572 - 9573 [+] 0. secs (0.u,0.s) +Chars 9574 - 9587 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9588 - 9600 [constructor.] 0. secs (0.u,0.s) +Chars 9601 - 9645 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) +Chars 9650 - 9651 [+] 0. secs (0.u,0.s) +Chars 9652 - 9665 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9666 - 9678 [constructor.] 0. secs (0.u,0.s) +Chars 9679 - 9699 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 9700 - 9704 [Qed.] 0.047 secs (0.046u,0.s) +Chars 9706 - 9846 [Lemma~trace_prefix_proper_r~:~...] 0. secs (0.u,0.s) +Chars 9847 - 9853 [Proof.] 0. secs (0.u,0.s) +Chars 9856 - 9869 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 9870 - 9889 [icoinduction~c~CIH.] 0.006 secs (0.006u,0.s) +Chars 9890 - 9915 [intros~b~b1~b2~Heutt~Hbp.] 0. secs (0.u,0.s) +Chars 9918 - 9932 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 9933 - 9945 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 9949 - 9975 [dependent~induction~Heutt.] 0.03 secs (0.03u,0.s) +Chars 9978 - 9979 [-] 0. secs (0.u,0.s) +Chars 9980 - 9993 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9994 - 10015 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 10016 - 10027 [clear~x0~x.] 0. secs (0.u,0.s) +Chars 10028 - 10059 [induction~Hbp;~auto~with~itree.] 0.007 secs (0.007u,0.s) +Chars 10064 - 10065 [+] 0. secs (0.u,0.s) +Chars 10067 - 10079 [constructor.] 0. secs (0.u,0.s) +Chars 10080 - 10098 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 10103 - 10104 [+] 0. secs (0.u,0.s) +Chars 10105 - 10117 [constructor.] 0. secs (0.u,0.s) +Chars 10118 - 10151 [now~do~2~ITree.Basics.Utils.step.] 0.001 secs (0.001u,0.s) +Chars 10155 - 10156 [-] 0. secs (0.u,0.s) +Chars 10158 - 10179 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 10180 - 10193 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10194 - 10205 [clear~x0~x.] 0. secs (0.u,0.s) +Chars 10210 - 10231 [destruct~(observe~b).] 0. secs (0.u,0.s) +Chars 10236 - 10237 [+] 0. secs (0.u,0.s) +Chars 10238 - 10261 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 10266 - 10267 [+] 0. secs (0.u,0.s) +Chars 10268 - 10280 [constructor.] 0. secs (0.u,0.s) +Chars 10281 - 10299 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 10300 - 10327 [apply~trace_prefix_tau_inv.] 0. secs (0.u,0.s) +Chars 10328 - 10333 [auto.] 0. secs (0.u,0.s) +Chars 10338 - 10339 [+] 0. secs (0.u,0.s) +Chars 10340 - 10348 [inv~Hbp.] 0.009 secs (0.009u,0.s) +Chars 10349 - 10361 [constructor.] 0. secs (0.u,0.s) +Chars 10362 - 10396 [eapply~trace_prefixF_vis_l;~ea...] 0. secs (0.u,0.s) +Chars 10399 - 10400 [-] 0. secs (0.u,0.s) +Chars 10401 - 10414 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10415 - 10436 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 10438 - 10449 [clear~x~x0.] 0. secs (0.u,0.s) +Chars 10450 - 10474 [dependent~induction~Hbp.] 0.015 secs (0.015u,0.s) +Chars 10479 - 10480 [+] 0. secs (0.u,0.s) +Chars 10481 - 10495 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 10496 - 10519 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 10524 - 10525 [+] 0. secs (0.u,0.s) +Chars 10526 - 10539 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10540 - 10552 [constructor.] 0. secs (0.u,0.s) +Chars 10553 - 10573 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 10578 - 10579 [+] 0. secs (0.u,0.s) +Chars 10580 - 10593 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10594 - 10606 [constructor.] 0. secs (0.u,0.s) +Chars 10611 - 10612 [+] 0. secs (0.u,0.s) +Chars 10613 - 10626 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10627 - 10639 [constructor.] 0. secs (0.u,0.s) +Chars 10640 - 10684 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) +Chars 10687 - 10688 [-] 0. secs (0.u,0.s) +Chars 10689 - 10710 [eapply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 10711 - 10731 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) +Chars 10732 - 10770 [eapply~trace_prefixF_tau_inv_r...] 0. secs (0.u,0.s) +Chars 10773 - 10774 [-] 0. secs (0.u,0.s) +Chars 10775 - 10788 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10789 - 10801 [constructor.] 0. secs (0.u,0.s) +Chars 10802 - 10824 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 10825 - 10829 [Qed.] 0.046 secs (0.046u,0.s) +Chars 10831 - 10939 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) +Chars 10940 - 10946 [Proof.] 0. secs (0.u,0.s) +Chars 10949 - 10962 [repeat~intro.] 0. secs (0.u,0.s) +Chars 10963 - 10977 [split;~intros.] 0. secs (0.u,0.s) +Chars 10980 - 10981 [-] 0. secs (0.u,0.s) +Chars 10982 - 11018 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) +Chars 11023 - 11059 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) +Chars 11062 - 11063 [-] 0. secs (0.u,0.s) +Chars 11064 - 11078 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 11079 - 11094 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 11099 - 11135 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) +Chars 11140 - 11176 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) +Chars 11177 - 11181 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11183 - 11598 [Inductive~ind_comb~{E}~{R}~{S}...] 0.004 secs (0.004u,0.s) +Chars 11600 - 11755 [Lemma~ind_comb_bind~:~~~forall...] 0. secs (0.u,0.s) +Chars 11756 - 11762 [Proof.] 0. secs (0.u,0.s) +Chars 11765 - 11791 [intros~E~R~S~b1~b2~b~Hind.] 0. secs (0.u,0.s) +Chars 11792 - 11807 [induction~Hind.] 0. secs (0.u,0.s) +Chars 11810 - 11811 [-] 0. secs (0.u,0.s) +Chars 11812 - 11822 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 11823 - 11842 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 11843 - 11848 [auto.] 0. secs (0.u,0.s) +Chars 11851 - 11852 [-] 0. secs (0.u,0.s) +Chars 11853 - 11863 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 11864 - 11875 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 11876 - 11893 [rewrite~bind_vis.] 0.001 secs (0.001u,0.s) +Chars 11894 - 11899 [step.] 0.001 secs (0.001u,0.s) +Chars 11900 - 11912 [constructor.] 0. secs (0.u,0.s) +Chars 11913 - 11920 [intros.] 0. secs (0.u,0.s) +Chars 11925 - 11936 [destruct~v.] 0. secs (0.u,0.s) +Chars 11937 - 11950 [apply~IHHind.] 0. secs (0.u,0.s) +Chars 11951 - 11955 [Qed.] 0.003 secs (0.003u,0.s) +Chars 11957 - 12359 [Inductive~trace_prefix_ind~{E}...] 0.003 secs (0.003u,0.s) +Chars 12361 - 12504 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) +Chars 12505 - 12511 [Proof.] 0. secs (0.u,0.s) +Chars 12514 - 12538 [intros~E~R~S~b1~b2~Hpre.] 0. secs (0.u,0.s) +Chars 12539 - 12554 [induction~Hpre.] 0. secs (0.u,0.s) +Chars 12557 - 12558 [-] 0. secs (0.u,0.s) +Chars 12559 - 12569 [exists~b2.] 0. secs (0.u,0.s) +Chars 12570 - 12590 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 12593 - 12594 [-] 0. secs (0.u,0.s) +Chars 12595 - 12623 [destruct~IHHpre~as~[b3~Hb3].] 0. secs (0.u,0.s) +Chars 12628 - 12638 [exists~b3.] 0. secs (0.u,0.s) +Chars 12639 - 12667 [eapply~left_vis_comb;~eauto.] 0.004 secs (0.003u,0.s) +Chars 12668 - 12672 [Qed.] 0. secs (0.u,0.s) +Chars 12674 - 12829 [Lemma~trace_prefix_ind_bind~:~...] 0. secs (0.u,0.s) +Chars 12830 - 12836 [Proof.] 0. secs (0.u,0.s) +Chars 12839 - 12846 [intros.] 0. secs (0.u,0.s) +Chars 12847 - 12880 [apply~trace_prefix_ind_comb~in~H.] 0. secs (0.u,0.s) +Chars 12881 - 12904 [destruct~H~as~[b3~Hb3].] 0. secs (0.u,0.s) +Chars 12907 - 12934 [apply~ind_comb_bind~in~Hb3.] 0. secs (0.u,0.s) +Chars 12935 - 12956 [exists~(fun~_~=>~b3).] 0. secs (0.u,0.s) +Chars 12957 - 12962 [auto.] 0. secs (0.u,0.s) +Chars 12963 - 12967 [Qed.] 0. secs (0.u,0.s) +Chars 12969 - 13127 [Lemma~converge_trace_prefix~:~...] 0. secs (0.u,0.s) +Chars 13128 - 13134 [Proof.] 0. secs (0.u,0.s) +Chars 13137 - 13168 [intros~E~R~S~b1~b2~r~Hbp~Hconv.] 0. secs (0.u,0.s) +Chars 13169 - 13193 [generalize~dependent~b2.] 0. secs (0.u,0.s) +Chars 13194 - 13218 [induction~Hconv;~intros.] 0. secs (0.u,0.s) +Chars 13221 - 13222 [-] 0. secs (0.u,0.s) +Chars 13223 - 13249 [eapply~left_ret_bp;~eauto.] 0. secs (0.u,0.s) +Chars 13252 - 13253 [-] 0. secs (0.u,0.s) +Chars 13254 - 13271 [rewrite~H~in~Hbp.] 0.002 secs (0.002u,0.s) +Chars 13272 - 13302 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) +Chars 13307 - 13338 [apply~prefix_vis~in~Hbp~as~Hb2.] 0. secs (0.u,0.s) +Chars 13343 - 13368 [destruct~Hb2~as~[k'~Hk'].] 0. secs (0.u,0.s) +Chars 13369 - 13388 [rewrite~Hk'~in~Hbp.] 0.003 secs (0.003u,0.s) +Chars 13393 - 13419 [eapply~left_vis_bp;~eauto.] 0.002 secs (0.002u,0.s) +Chars 13420 - 13431 [destruct~b.] 0. secs (0.u,0.s) +Chars 13432 - 13446 [apply~IHHconv.] 0. secs (0.u,0.s) +Chars 13451 - 13463 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 13464 - 13473 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 13474 - 13488 [inversion~Hbp.] 0.005 secs (0.005u,0.s) +Chars 13489 - 13516 [subst;~ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 13522 - 13527 [auto.] 0. secs (0.u,0.s) +Chars 13528 - 13532 [Qed.] 0.006 secs (0.006u,0.s) +Chars 13534 - 13662 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) +Chars 13663 - 13669 [Proof.] 0. secs (0.u,0.s) +Chars 13672 - 13685 [revert~b1~b2.] 0. secs (0.u,0.s) +Chars 13686 - 13705 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 13706 - 13728 [intros~b1~b2~Hdiv~Hbf.] 0. secs (0.u,0.s) +Chars 13731 - 13743 [step~in~Hbf.] 0. secs (0.u,0.s) +Chars 13744 - 13757 [step~in~Hdiv.] 0. secs (0.u,0.s) +Chars 13758 - 13772 [induction~Hbf.] 0.001 secs (0.001u,0.s) +Chars 13775 - 13776 [-] 0. secs (0.u,0.s) +Chars 13777 - 13786 [inv~Hdiv.] 0. secs (0.u,0.s) +Chars 13789 - 13790 [-] 0. secs (0.u,0.s) +Chars 13791 - 13803 [constructor.] 0. secs (0.u,0.s) +Chars 13804 - 13813 [inv~Hdiv.] 0.005 secs (0.005u,0.s) +Chars 13814 - 13830 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 13833 - 13834 [-] 0. secs (0.u,0.s) +Chars 13835 - 13853 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 13854 - 13866 [apply~IHHbf.] 0. secs (0.u,0.s) +Chars 13867 - 13874 [unstep.] 0. secs (0.u,0.s) +Chars 13875 - 13884 [inv~Hdiv.] 0. secs (0.u,0.s) +Chars 13888 - 13889 [-] 0. secs (0.u,0.s) +Chars 13890 - 13908 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 13911 - 13912 [-] 0. secs (0.u,0.s) +Chars 13913 - 13925 [constructor.] 0. secs (0.u,0.s) +Chars 13926 - 13936 [intros~[].] 0. secs (0.u,0.s) +Chars 13939 - 13940 [-] 0. secs (0.u,0.s) +Chars 13942 - 13954 [constructor.] 0. secs (0.u,0.s) +Chars 13955 - 13962 [intros.] 0. secs (0.u,0.s) +Chars 13963 - 13972 [inv~Hdiv.] 0.007 secs (0.007u,0.s) +Chars 13973 - 13993 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 13999 - 14010 [destruct~v.] 0. secs (0.u,0.s) +Chars 14011 - 14027 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 14028 - 14037 [apply~H1.] 0. secs (0.u,0.s) +Chars 14038 - 14042 [Qed.] 0.014 secs (0.014u,0.s) +Chars 14044 - 14181 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) +Chars 14182 - 14188 [Proof.] 0. secs (0.u,0.s) +Chars 14191 - 14198 [intros.] 0. secs (0.u,0.s) +Chars 14199 - 14230 [destruct~(classic_converge~b1).] 0. secs (0.u,0.s) +Chars 14233 - 14234 [-] 0. secs (0.u,0.s) +Chars 14235 - 14260 [destruct~H0~as~[r~Hconv].] 0. secs (0.u,0.s) +Chars 14261 - 14306 [eapply~converge_trace_prefix~i...] 0. secs (0.u,0.s) +Chars 14311 - 14339 [apply~trace_prefix_ind_bind.] 0. secs (0.u,0.s) +Chars 14340 - 14345 [auto.] 0. secs (0.u,0.s) +Chars 14348 - 14349 [-] 0. secs (0.u,0.s) +Chars 14439 - 14501 [specialize~(@trace_prefix_div~...] 0. secs (0.u,0.s) +Chars 14507 - 14536 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) +Chars 14537 - 14560 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 14561 - 14581 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 14586 - 14655 [eapply~noret_bind_nop~with~(f~...] 0. secs (0.u,0.s) +Chars 14660 - 14697 [eapply~euttNoRet_trans;~try~ap...] 0.002 secs (0.002u,0.s) +Chars 14698 - 14718 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 14719 - 14724 [auto.] 0. secs (0.u,0.s) +Chars 14725 - 14729 [Qed.] 0. secs (0.u,0.s) diff --git a/extra/Secure/Labels.v.timing b/extra/Secure/Labels.v.timing new file mode 100644 index 00000000..f4ffdd62 --- /dev/null +++ b/extra/Secure/Labels.v.timing @@ -0,0 +1,15 @@ +Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.132 secs (0.118u,0.014s) +Chars 104 - 153 [Variant~nonempty~(A~:~Type)~:~...] 0. secs (0.u,0.s) +Chars 155 - 220 [Variant~empty~(A~:~Type)~:~Pro...] 0. secs (0.u,0.s) +Chars 222 - 276 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) +Chars 277 - 283 [Proof.] 0. secs (0.u,0.s) +Chars 286 - 293 [intros.] 0. secs (0.u,0.s) +Chars 294 - 333 [destruct~(classic~(nonempty~A)...] 0. secs (0.u,0.s) +Chars 336 - 341 [left.] 0. secs (0.u,0.s) +Chars 342 - 354 [constructor.] 0. secs (0.u,0.s) +Chars 355 - 362 [intros.] 0. secs (0.u,0.s) +Chars 363 - 371 [apply~H.] 0. secs (0.u,0.s) +Chars 372 - 390 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 391 - 395 [Qed.] 0. secs (0.u,0.s) +Chars 397 - 463 [Class~Preorder~:={~L~~:~Type;~...] 0. secs (0.u,0.s) +Chars 465 - 656 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) diff --git a/extra/Secure/StrongBisimProper.v.timing b/extra/Secure/StrongBisimProper.v.timing new file mode 100644 index 00000000..20ae18cb --- /dev/null +++ b/extra/Secure/StrongBisimProper.v.timing @@ -0,0 +1,11 @@ +Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.177 secs (0.157u,0.017s) +Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.006 secs (0.005u,0.s) +Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0. secs (0.u,0.s) +Chars 380 - 386 [Proof.] 0. secs (0.u,0.s) +Chars 389 - 402 [repeat~intro.] 0. secs (0.u,0.s) +Chars 403 - 433 [apply~bisimulation_is_eq~in~H.] 0. secs (0.u,0.s) +Chars 434 - 465 [apply~bisimulation_is_eq~in~H0.] 0. secs (0.u,0.s) +Chars 468 - 474 [subst.] 0. secs (0.u,0.s) +Chars 475 - 480 [auto.] 0. secs (0.u,0.s) +Chars 481 - 485 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Axioms.v.timing b/theories/Axioms.v.timing new file mode 100644 index 00000000..9191cd14 --- /dev/null +++ b/theories/Axioms.v.timing @@ -0,0 +1,20 @@ +Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.094 secs (0.083u,0.01s) +Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0. secs (0.u,0.s) +Chars 368 - 391 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 490 - 599 [Ltac~~ddestruction~:=~~~repeat...] 0. secs (0.u,0.s) +Chars 666 - 719 [Definition~eq_rect_eq~:=~Eqdep...] 0. secs (0.u,0.s) +Chars 721 - 766 [Definition~classic~:=~Classica...] 0. secs (0.u,0.s) +Chars 768 - 812 [Definition~choice~:=~Classical...] 0. secs (0.u,0.s) +Chars 814 - 906 [Definition~functional_extensio...] 0. secs (0.u,0.s) +Chars 944 - 1161 [Definition~GuardedFunctionalCh...] 0. secs (0.u,0.s) +Chars 1162 - 1231 [Axiom~(guarded_choice~:~forall...] 0. secs (0.u,0.s) +Chars 1233 - 1303 [Inductive~mwitness~:~Type~:=~~...] 0. secs (0.u,0.s) +Chars 1305 - 1380 [Lemma~classicT_inhabited~:~inh...] 0. secs (0.u,0.s) +Chars 1381 - 1387 [Proof.] 0. secs (0.u,0.s) +Chars 1390 - 1521 [destruct~~(choice~~~~~(fun~(P~...] 0. secs (0.u,0.s) +Chars 1524 - 1525 [{] 0. secs (0.u,0.s) +Chars 1526 - 1634 [intros~P;~destruct~(classic~(i...] 0. secs (0.u,0.s) +Chars 1635 - 1636 [}] 0. secs (0.u,0.s) +Chars 1639 - 1651 [constructor.] 0. secs (0.u,0.s) +Chars 1652 - 1713 [intros~P;~specialize~(H~P);~de...] 0. secs (0.u,0.s) +Chars 1714 - 1718 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Basics.v.timing b/theories/Basics/Basics.v.timing new file mode 100644 index 00000000..b1a54ccd --- /dev/null +++ b/theories/Basics/Basics.v.timing @@ -0,0 +1,51 @@ +Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.u,0.001s) +Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.s) +Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.002 secs (0.001u,0.s) +Chars 364 - 405 [Import~FunctorNotation~MonadNo...] 0. secs (0.u,0.s) +Chars 406 - 429 [#[local]~Open~Scope~monad.] 0. secs (0.u,0.s) +Chars 827 - 935 [Notation~"E~~>~F"~:=~(forall~T...] 0. secs (0.u,0.s) +Chars 1099 - 1158 [Definition~idM~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) +Chars 1206 - 1233 [Notation~void~:=~Empty_set.] 0. secs (0.u,0.s) +Chars 1278 - 1292 [Module~Monads.] 0. secs (0.u,0.s) +Chars 1294 - 1337 [Definition~identity~(a~:~Type)...] 0. secs (0.u,0.s) +Chars 1339 - 1428 [Definition~stateT~(s~:~Type)~(...] 0. secs (0.u,0.s) +Chars 1429 - 1476 [Definition~state~(s~a~:~Type)~...] 0. secs (0.u,0.s) +Chars 1478 - 1554 [Definition~run_stateT~{s}~{m}~...] 0. secs (0.u,0.s) +Chars 1556 - 1659 [Definition~liftState~{s}~{a}~{...] 0. secs (0.u,0.s) +Chars 1661 - 1742 [Definition~readerT~(r~:~Type)~...] 0. secs (0.u,0.s) +Chars 1743 - 1784 [Definition~reader~(r~a~:~Type)...] 0. secs (0.u,0.s) +Chars 1786 - 1871 [Definition~writerT~(w~:~Type)~...] 0. secs (0.u,0.s) +Chars 1872 - 1898 [Definition~writer~:=~prod.] 0. secs (0.u,0.s) +Chars 1900 - 2072 [#[global]~Instance~Functor_sta...] 0. secs (0.u,0.s) +Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.u,0.s) +Chars 2274 - 2285 [End~Monads.] 0. secs (0.u,0.s) +Chars 2452 - 2572 [#[universes(polymorphic)]~Clas...] 0. secs (0.u,0.s) +Chars 2574 - 2628 [#[global]~Hint~Mode~MonadIter~...] 0. secs (0.u,0.s) +Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.004 secs (0.004u,0.s) +Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.003 secs (0.003u,0.s) +Chars 3534 - 3710 [#[global]~Instance~MonadIter_r...] 0. secs (0.u,0.s) +Chars 3712 - 4047 [#[global]~Instance~MonadIter_o...] 0.002 secs (0.002u,0.s) +Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.s) +Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0. secs (0.u,0.s) +Chars 4687 - 4778 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) +Chars 4911 - 4994 [Definition~equiv_pred~{A~:~Typ...] 0. secs (0.u,0.s) +Chars 4996 - 5142 [Definition~sum_pred~{A~B~:~Typ...] 0. secs (0.u,0.s) +Chars 5144 - 5260 [Definition~prod_pred~{A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 5262 - 5316 [Definition~TT~{A~:~Type}~:~A~-...] 0. secs (0.u,0.s) +Chars 5317 - 5364 [#[global]~Hint~Unfold~TT~sum_p...] 0. secs (0.u,0.s) +Chars 5366 - 5434 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) +Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) +Chars 5444 - 5456 [split;~auto.] 0. secs (0.u,0.s) +Chars 5457 - 5461 [Qed.] 0. secs (0.u,0.s) +Chars 5462 - 5530 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) +Chars 5531 - 5537 [Proof.] 0. secs (0.u,0.s) +Chars 5540 - 5589 [red;~intros~*~EQ;~split;~intro...] 0. secs (0.u,0.s) +Chars 5590 - 5594 [Qed.] 0. secs (0.u,0.s) +Chars 5595 - 5664 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) +Chars 5665 - 5671 [Proof.] 0. secs (0.u,0.s) +Chars 5674 - 5751 [red;~intros~*~EQ1~EQ2;~split;~...] 0. secs (0.u,0.s) +Chars 5752 - 5756 [Qed.] 0. secs (0.u,0.s) +Chars 5757 - 5827 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) +Chars 5828 - 5834 [Proof.] 0.005 secs (0.004u,0.s) +Chars 5837 - 5862 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5863 - 5867 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Category.v.timing b/theories/Basics/Category.v.timing new file mode 100644 index 00000000..9c041e38 --- /dev/null +++ b/theories/Basics/Category.v.timing @@ -0,0 +1 @@ +Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.006 secs (0.005u,0.001s) diff --git a/theories/Basics/CategoryFacts.v.timing b/theories/Basics/CategoryFacts.v.timing new file mode 100644 index 00000000..912b8727 --- /dev/null +++ b/theories/Basics/CategoryFacts.v.timing @@ -0,0 +1,694 @@ +Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.001u,0.s) +Chars 176 - 191 [Import~Carrier.] 0. secs (0.u,0.s) +Chars 192 - 212 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 213 - 234 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) +Chars 251 - 269 [Create~HintDb~cat.] 0. secs (0.u,0.s) +Chars 322 - 591 [Ltac~~unfold_coproduct~:=~~~un...] 0. secs (0.u,0.s) +Chars 642 - 985 [Ltac~~cat_auto_simpl~:=~~~matc...] 0. secs (0.u,0.s) +Chars 1011 - 1028 [Section~IsoFacts.] 0. secs (0.u,0.s) +Chars 1030 - 1065 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) +Chars 1066 - 1118 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) +Chars 1120 - 1150 [Context~{CatIdL_C~:~CatIdL~C}.] 0. secs (0.u,0.s) +Chars 1184 - 1243 [#[global]~Instance~SemiIso_Id~...] 0. secs (0.u,0.s) +Chars 1244 - 1250 [Proof.] 0. secs (0.u,0.s) +Chars 1251 - 1266 [apply~cat_id_l.] 0. secs (0.u,0.s) +Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) +Chars 1273 - 1340 [Context~{Equivalence_Eq2_C~:~f...] 0. secs (0.u,0.s) +Chars 1342 - 1357 [Section~IsoCat.] 0. secs (0.u,0.s) +Chars 1359 - 1393 [Context~{CatAssoc_C~:~CatAssoc...] 0. secs (0.u,0.s) +Chars 1394 - 1501 [Context~~{Proper_Cat_C~:~foral...] 0. secs (0.u,0.s) +Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0. secs (0.u,0.s) +Chars 1742 - 1748 [Proof.] 0. secs (0.u,0.s) +Chars 1751 - 1755 [red.] 0. secs (0.u,0.s) +Chars 1758 - 1836 [rewrite~cat_assoc,~<-~(cat_ass...] 0.005 secs (0.004u,0.s) +Chars 1839 - 1851 [reflexivity.] 0. secs (0.u,0.s) +Chars 1852 - 1856 [Qed.] 0. secs (0.u,0.s) +Chars 1858 - 1869 [End~IsoCat.] 0. secs (0.u,0.s) +Chars 1871 - 1888 [Section~IsoBimap.] 0. secs (0.u,0.s) +Chars 1890 - 1916 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) +Chars 1917 - 1951 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) +Chars 1952 - 1990 [Context~{BimapId_bif~:~BimapId...] 0. secs (0.u,0.s) +Chars 1991 - 2031 [Context~{BimapCat_bif~:~BimapC...] 0. secs (0.u,0.s) +Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0. secs (0.u,0.s) +Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0. secs (0.u,0.s) +Chars 2402 - 2408 [Proof.] 0. secs (0.u,0.s) +Chars 2411 - 2415 [red.] 0. secs (0.u,0.s) +Chars 2418 - 2478 [rewrite~bimap_cat,~(semi_iso~f...] 0.003 secs (0.002u,0.s) +Chars 2481 - 2493 [reflexivity.] 0. secs (0.u,0.s) +Chars 2494 - 2498 [Qed.] 0. secs (0.u,0.s) +Chars 2500 - 2513 [End~IsoBimap.] 0. secs (0.u,0.s) +Chars 2515 - 2528 [End~IsoFacts.] 0. secs (0.u,0.s) +Chars 2552 - 2574 [Section~CategoryFacts.] 0. secs (0.u,0.s) +Chars 2576 - 2611 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) +Chars 2613 - 2637 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) +Chars 2638 - 2695 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) +Chars 2697 - 2736 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) +Chars 2738 - 2756 [Context~{i~:~obj}.] 0. secs (0.u,0.s) +Chars 2757 - 2791 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) +Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0.006 secs (0.005u,0.s) +Chars 2879 - 2936 [Lemma~initial_unique~:~forall~...] 0. secs (0.u,0.s) +Chars 2937 - 2943 [Proof.] 0. secs (0.u,0.s) +Chars 2946 - 2953 [intros.] 0. secs (0.u,0.s) +Chars 2956 - 3003 [rewrite~(initial_object~f),~(i...] 0. secs (0.u,0.s) +Chars 3006 - 3018 [reflexivity.] 0. secs (0.u,0.s) +Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) +Chars 3025 - 3043 [Context~{t~:~obj}.] 0. secs (0.u,0.s) +Chars 3044 - 3080 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) +Chars 3081 - 3129 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) +Chars 3171 - 3229 [Lemma~terminal_unique~:~forall...] 0. secs (0.u,0.s) +Chars 3230 - 3236 [Proof.] 0. secs (0.u,0.s) +Chars 3239 - 3246 [intros.] 0. secs (0.u,0.s) +Chars 3249 - 3298 [rewrite~(terminal_object~f),~(...] 0. secs (0.u,0.s) +Chars 3301 - 3313 [reflexivity.] 0. secs (0.u,0.s) +Chars 3314 - 3318 [Qed.] 0. secs (0.u,0.s) +Chars 3320 - 3338 [End~CategoryFacts.] 0. secs (0.u,0.s) +Chars 3340 - 3381 [#[global]~Hint~Resolve~initial...] 0. secs (0.u,0.s) +Chars 3405 - 3428 [Section~BifunctorFacts.] 0. secs (0.u,0.s) +Chars 3430 - 3465 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) +Chars 3467 - 3491 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) +Chars 3492 - 3549 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) +Chars 3551 - 3590 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) +Chars 3592 - 3626 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) +Chars 3628 - 3654 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) +Chars 3655 - 3731 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) +Chars 3733 - 3843 [Lemma~bimap_slide~{a}~{b}~{c}~...] 0. secs (0.u,0.s) +Chars 3844 - 3850 [Proof.] 0. secs (0.u,0.s) +Chars 3853 - 3891 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) +Chars 3894 - 3906 [reflexivity.] 0. secs (0.u,0.s) +Chars 3907 - 3911 [Qed.] 0. secs (0.u,0.s) +Chars 3913 - 4024 [Lemma~bimap_slide'~{a}~{b}~{c}...] 0. secs (0.u,0.s) +Chars 4025 - 4031 [Proof.] 0. secs (0.u,0.s) +Chars 4034 - 4072 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) +Chars 4075 - 4087 [reflexivity.] 0. secs (0.u,0.s) +Chars 4088 - 4092 [Qed.] 0. secs (0.u,0.s) +Chars 4094 - 4113 [End~BifunctorFacts.] 0. secs (0.u,0.s) +Chars 4137 - 4160 [Section~CoproductFacts.] 0. secs (0.u,0.s) +Chars 4162 - 4197 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) +Chars 4199 - 4223 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) +Chars 4224 - 4281 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) +Chars 4283 - 4322 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) +Chars 4324 - 4358 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) +Chars 4360 - 4386 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) +Chars 4387 - 4473 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) +Chars 4474 - 4514 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) +Chars 4516 - 4629 [Lemma~case_inl'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 4630 - 4636 [Proof.] 0. secs (0.u,0.s) +Chars 4639 - 4683 [rewrite~<-~cat_assoc,~case_inl...] 0.001 secs (0.001u,0.s) +Chars 4684 - 4688 [Qed.] 0. secs (0.u,0.s) +Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 4804 - 4810 [Proof.] 0. secs (0.u,0.s) +Chars 4813 - 4857 [rewrite~<-~cat_assoc,~case_inr...] 0.001 secs (0.001u,0.s) +Chars 4858 - 4862 [Qed.] 0. secs (0.u,0.s) +Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0. secs (0.u,0.s) +Chars 5026 - 5032 [Proof.] 0. secs (0.u,0.s) +Chars 5035 - 5078 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) +Chars 5081 - 5082 [-] 0. secs (0.u,0.s) +Chars 5083 - 5113 [rewrite~case_inl;~reflexivity.] 0.01 secs (0.009u,0.s) +Chars 5116 - 5117 [-] 0. secs (0.u,0.s) +Chars 5118 - 5148 [rewrite~case_inr;~reflexivity.] 0. secs (0.u,0.s) +Chars 5149 - 5153 [Qed.] 0. secs (0.u,0.s) +Chars 5210 - 5271 [Corollary~case_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) +Chars 5272 - 5278 [Proof.] 0. secs (0.u,0.s) +Chars 5281 - 5333 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) +Chars 5334 - 5338 [Qed.] 0. secs (0.u,0.s) +Chars 5340 - 5426 [Lemma~case_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) +Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) +Chars 5436 - 5471 [eapply~case_universal;~reflexi...] 0. secs (0.u,0.s) +Chars 5472 - 5476 [Qed.] 0. secs (0.u,0.s) +Chars 5563 - 5690 [Lemma~coprod_split~{a}~{b}~{c}...] 0.001 secs (0.001u,0.s) +Chars 5691 - 5697 [Proof.] 0. secs (0.u,0.s) +Chars 5700 - 5707 [intros.] 0. secs (0.u,0.s) +Chars 5708 - 5730 [rewrite~(case_eta'~g).] 0. secs (0.u,0.s) +Chars 5733 - 5766 [apply~case_universal;~assumption.] 0. secs (0.u,0.s) +Chars 5767 - 5771 [Qed.] 0. secs (0.u,0.s) +Chars 5773 - 5890 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) +Chars 5892 - 6032 [Ltac~~cat_auto'~:=~~~repeat~in...] 0. secs (0.u,0.s) +Chars 6034 - 6122 [Lemma~swap_case~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) +Chars 6123 - 6129 [Proof.] 0. secs (0.u,0.s) +Chars 6132 - 6168 [intros;~unfold~swap,~Swap_Copr...] 0. secs (0.u,0.s) +Chars 6171 - 6208 [rewrite~cat_case,~inr_case,~in...] 0.002 secs (0.002u,0.s) +Chars 6211 - 6223 [reflexivity.] 0. secs (0.u,0.s) +Chars 6224 - 6228 [Qed.] 0. secs (0.u,0.s) +Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0. secs (0.u,0.s) +Chars 6282 - 6288 [Proof.] 0. secs (0.u,0.s) +Chars 6289 - 6304 [apply~case_inr.] 0. secs (0.u,0.s) +Chars 6305 - 6309 [Qed.] 0. secs (0.u,0.s) +Chars 6311 - 6362 [Lemma~inl_swap~{a}~{b}~:~inl_~...] 0. secs (0.u,0.s) +Chars 6363 - 6369 [Proof.] 0. secs (0.u,0.s) +Chars 6370 - 6385 [apply~case_inl.] 0. secs (0.u,0.s) +Chars 6386 - 6390 [Qed.] 0. secs (0.u,0.s) +Chars 6392 - 6500 [Lemma~bimap_case_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) +Chars 6501 - 6507 [Proof.] 0. secs (0.u,0.s) +Chars 6508 - 6520 [reflexivity.] 0. secs (0.u,0.s) +Chars 6521 - 6525 [Qed.] 0. secs (0.u,0.s) +Chars 6527 - 6615 [Lemma~inr_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 6616 - 6622 [Proof.] 0. secs (0.u,0.s) +Chars 6623 - 6638 [apply~case_inr.] 0. secs (0.u,0.s) +Chars 6639 - 6643 [Qed.] 0. secs (0.u,0.s) +Chars 6645 - 6733 [Lemma~inl_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 6734 - 6740 [Proof.] 0. secs (0.u,0.s) +Chars 6741 - 6756 [apply~case_inl.] 0. secs (0.u,0.s) +Chars 6757 - 6761 [Qed.] 0. secs (0.u,0.s) +Chars 6763 - 6922 [Lemma~bimap_case~{a}~{a'}~{b}~...] 0.001 secs (0.001u,0.s) +Chars 6923 - 6929 [Proof.] 0. secs (0.u,0.s) +Chars 6930 - 6940 [cat_auto'.] 0.043 secs (0.038u,0.004s) +Chars 6941 - 6945 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6947 - 7024 [Lemma~inl_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 7025 - 7031 [Proof.] 0. secs (0.u,0.s) +Chars 7032 - 7042 [cat_auto'.] 0.01 secs (0.01u,0.s) +Chars 7043 - 7047 [Qed.] 0. secs (0.u,0.s) +Chars 7049 - 7121 [Lemma~inl_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) +Chars 7129 - 7139 [cat_auto'.] 0.006 secs (0.006u,0.s) +Chars 7140 - 7144 [Qed.] 0. secs (0.u,0.s) +Chars 7146 - 7223 [Lemma~inr_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 7224 - 7230 [Proof.] 0. secs (0.u,0.s) +Chars 7231 - 7241 [cat_auto'.] 0.013 secs (0.013u,0.s) +Chars 7242 - 7246 [Qed.] 0. secs (0.u,0.s) +Chars 7248 - 7320 [Lemma~inr_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 7321 - 7327 [Proof.] 0. secs (0.u,0.s) +Chars 7328 - 7338 [cat_auto'.] 0.009 secs (0.009u,0.s) +Chars 7339 - 7343 [Qed.] 0. secs (0.u,0.s) +Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0. secs (0.u,0.s) +Chars 7504 - 7510 [Proof.] 0. secs (0.u,0.s) +Chars 7513 - 7544 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) +Chars 7547 - 7577 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 7580 - 7612 [rewrite~eqac,~eqbd;~reflexivity.] 0.002 secs (0.002u,0.s) +Chars 7613 - 7617 [Qed.] 0. secs (0.u,0.s) +Chars 7619 - 7669 [#[global]~Instance~BimapId_Cop...] 0. secs (0.u,0.s) +Chars 7670 - 7676 [Proof.] 0. secs (0.u,0.s) +Chars 7679 - 7690 [intros~A~B.] 0. secs (0.u,0.s) +Chars 7693 - 7702 [symmetry.] 0. secs (0.u,0.s) +Chars 7703 - 7733 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 7736 - 7755 [rewrite~2!cat_id_l.] 0.001 secs (0.001u,0.s) +Chars 7758 - 7773 [apply~case_eta.] 0. secs (0.u,0.s) +Chars 7774 - 7778 [Qed.] 0. secs (0.u,0.s) +Chars 7780 - 7832 [#[global]~Instance~BimapCat_Co...] 0. secs (0.u,0.s) +Chars 7833 - 7839 [Proof.] 0. secs (0.u,0.s) +Chars 7840 - 7850 [cat_auto'.] 0.075 secs (0.074u,0.s) +Chars 7851 - 7855 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7857 - 7911 [#[global]~Instance~Bifunctor_C...] 0. secs (0.u,0.s) +Chars 7912 - 7918 [Proof.] 0. secs (0.u,0.s) +Chars 7921 - 7952 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 7953 - 7957 [Qed.] 0. secs (0.u,0.s) +Chars 7996 - 8080 [#[global]~Instance~SwapInvolut...] 0. secs (0.u,0.s) +Chars 8081 - 8087 [Proof.] 0. secs (0.u,0.s) +Chars 8088 - 8098 [cat_auto'.] 0.022 secs (0.022u,0.s) +Chars 8099 - 8103 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8142 - 8232 [#[global]~Instance~AssocRMono_...] 0. secs (0.u,0.s) +Chars 8233 - 8239 [Proof.] 0. secs (0.u,0.s) +Chars 8240 - 8250 [cat_auto'.] 0.115 secs (0.114u,0.s) +Chars 8251 - 8255 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8257 - 8347 [#[global]~Instance~AssocLMono_...] 0. secs (0.u,0.s) +Chars 8348 - 8354 [Proof.] 0. secs (0.u,0.s) +Chars 8355 - 8365 [cat_auto'.] 0.113 secs (0.112u,0.s) +Chars 8366 - 8370 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8372 - 8390 [Context~(i~:~obj).] 0. secs (0.u,0.s) +Chars 8391 - 8425 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) +Chars 8426 - 8472 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) +Chars 8507 - 8589 [#[global]~Instance~UnitLMono_C...] 0. secs (0.u,0.s) +Chars 8590 - 8596 [Proof.] 0. secs (0.u,0.s) +Chars 8597 - 8607 [cat_auto'.] 0.018 secs (0.018u,0.s) +Chars 8608 - 8612 [Qed.] 0. secs (0.u,0.s) +Chars 8650 - 8732 [#[global]~Instance~UnitRMono_C...] 0. secs (0.u,0.s) +Chars 8733 - 8739 [Proof.] 0. secs (0.u,0.s) +Chars 8740 - 8750 [cat_auto'.] 0.018 secs (0.018u,0.s) +Chars 8751 - 8755 [Qed.] 0. secs (0.u,0.s) +Chars 8757 - 8838 [#[global]~Instance~UnitLEpi_Co...] 0. secs (0.u,0.s) +Chars 8839 - 8845 [Proof.] 0. secs (0.u,0.s) +Chars 8846 - 8856 [cat_auto'.] 0.003 secs (0.003u,0.s) +Chars 8857 - 8861 [Qed.] 0. secs (0.u,0.s) +Chars 8863 - 8944 [#[global]~Instance~UnitREpi_Co...] 0. secs (0.u,0.s) +Chars 8945 - 8951 [Proof.] 0. secs (0.u,0.s) +Chars 8952 - 8962 [cat_auto'.] 0.002 secs (0.002u,0.s) +Chars 8963 - 8967 [Qed.] 0. secs (0.u,0.s) +Chars 8969 - 9018 [Lemma~inr_unit_l~{a}~:~inr_~>>...] 0. secs (0.u,0.s) +Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) +Chars 9026 - 9047 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 9048 - 9052 [Qed.] 0. secs (0.u,0.s) +Chars 9054 - 9103 [Lemma~inl_unit_r~{a}~:~inl_~>>...] 0. secs (0.u,0.s) +Chars 9104 - 9110 [Proof.] 0. secs (0.u,0.s) +Chars 9111 - 9132 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 9133 - 9137 [Qed.] 0. secs (0.u,0.s) +Chars 9139 - 9201 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) +Chars 9202 - 9208 [Proof.] 0. secs (0.u,0.s) +Chars 9209 - 9219 [cat_auto'.] 0.04 secs (0.039u,0.s) +Chars 9220 - 9224 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9226 - 9290 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) +Chars 9291 - 9297 [Proof.] 0. secs (0.u,0.s) +Chars 9298 - 9308 [cat_auto'.] 0.006 secs (0.006u,0.s) +Chars 9309 - 9313 [Qed.] 0. secs (0.u,0.s) +Chars 9376 - 9434 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) +Chars 9435 - 9441 [Proof.] 0. secs (0.u,0.s) +Chars 9442 - 9452 [cat_auto'.] 0.13 secs (0.129u,0.s) +Chars 9453 - 9457 [Qed.] 0.004 secs (0.004u,0.s) +Chars 9459 - 9519 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) +Chars 9520 - 9526 [Proof.] 0. secs (0.u,0.s) +Chars 9527 - 9537 [cat_auto'.] 0.786 secs (0.783u,0.003s) +Chars 9538 - 9542 [Qed.] 0.021 secs (0.021u,0.s) +Chars 9544 - 9598 [#[global]~Instance~Monoidal_Co...] 0. secs (0.u,0.s) +Chars 9599 - 9605 [Proof.] 0. secs (0.u,0.s) +Chars 9608 - 9660 [constructor;~idtac~+~construct...] 0.003 secs (0.003u,0.s) +Chars 9661 - 9665 [Qed.] 0. secs (0.u,0.s) +Chars 9667 - 9727 [#[global]~Instance~AssocLAssoc...] 0. secs (0.u,0.s) +Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) +Chars 9735 - 9745 [cat_auto'.] 0.772 secs (0.77u,0.001s) +Chars 9746 - 9750 [Qed.] 0.021 secs (0.021u,0.s) +Chars 9813 - 9869 [#[global]~Instance~SwapUnitL_C...] 0. secs (0.u,0.s) +Chars 9870 - 9876 [Proof.] 0. secs (0.u,0.s) +Chars 9877 - 9887 [cat_auto'.] 0.027 secs (0.026u,0.s) +Chars 9888 - 9892 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9894 - 9950 [#[global]~Instance~SwapAssocR_...] 0. secs (0.u,0.s) +Chars 9951 - 9957 [Proof.] 0. secs (0.u,0.s) +Chars 9958 - 9968 [cat_auto'.] 0.464 secs (0.463u,0.s) +Chars 9969 - 9973 [Qed.] 0.013 secs (0.013u,0.s) +Chars 9975 - 10031 [#[global]~Instance~SwapAssocL_...] 0. secs (0.u,0.s) +Chars 10032 - 10038 [Proof.] 0. secs (0.u,0.s) +Chars 10039 - 10049 [cat_auto'.] 0.456 secs (0.456u,0.s) +Chars 10050 - 10054 [Qed.] 0.013 secs (0.013u,0.s) +Chars 10056 - 10116 [#[global]~Instance~SymMonoidal...] 0. secs (0.u,0.s) +Chars 10117 - 10123 [Proof.] 0. secs (0.u,0.s) +Chars 10126 - 10157 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 10158 - 10162 [Qed.] 0. secs (0.u,0.s) +Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.001 secs (0.001u,0.s) +Chars 10270 - 10276 [Proof.] 0. secs (0.u,0.s) +Chars 10277 - 10287 [cat_auto'.] 0.079 secs (0.079u,0.s) +Chars 10288 - 10292 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 10424 - 10430 [Proof.] 0. secs (0.u,0.s) +Chars 10431 - 10441 [cat_auto'.] 0.067 secs (0.066u,0.s) +Chars 10442 - 10446 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10448 - 10467 [End~CoproductFacts.] 0.001 secs (0.001u,0.s) +Chars 10490 - 10511 [Section~ProductFacts.] 0. secs (0.u,0.s) +Chars 10513 - 10548 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) +Chars 10550 - 10574 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) +Chars 10575 - 10632 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) +Chars 10634 - 10673 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) +Chars 10675 - 10709 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) +Chars 10711 - 10737 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) +Chars 10738 - 10824 [Context~{Prod_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) +Chars 10825 - 10861 [Context~{Product_C~:~Product~C...] 0. secs (0.u,0.s) +Chars 10863 - 10974 [Lemma~pair_fst'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 10975 - 10981 [Proof.] 0. secs (0.u,0.s) +Chars 10984 - 11012 [rewrite~cat_assoc,~pair_fst.] 0.001 secs (0.001u,0.s) +Chars 11013 - 11025 [reflexivity.] 0. secs (0.u,0.s) +Chars 11026 - 11030 [Qed.] 0. secs (0.u,0.s) +Chars 11032 - 11143 [Lemma~pair_snd'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 11144 - 11150 [Proof.] 0. secs (0.u,0.s) +Chars 11153 - 11181 [rewrite~cat_assoc,~pair_snd.] 0.001 secs (0.001u,0.s) +Chars 11182 - 11194 [reflexivity.] 0. secs (0.u,0.s) +Chars 11195 - 11199 [Qed.] 0. secs (0.u,0.s) +Chars 11235 - 11359 [Lemma~pair_cat~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) +Chars 11360 - 11366 [Proof.] 0. secs (0.u,0.s) +Chars 11369 - 11390 [apply~pair_universal.] 0. secs (0.u,0.s) +Chars 11393 - 11394 [-] 0. secs (0.u,0.s) +Chars 11395 - 11426 [rewrite~pair_fst';~reflexivity.] 0. secs (0.u,0.s) +Chars 11429 - 11430 [-] 0. secs (0.u,0.s) +Chars 11431 - 11462 [rewrite~pair_snd';~reflexivity.] 0. secs (0.u,0.s) +Chars 11463 - 11467 [Qed.] 0. secs (0.u,0.s) +Chars 11513 - 11574 [Corollary~pair_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) +Chars 11575 - 11581 [Proof.] 0. secs (0.u,0.s) +Chars 11584 - 11636 [apply~pair_universal;~rewrite~...] 0.001 secs (0.001u,0.s) +Chars 11637 - 11641 [Qed.] 0. secs (0.u,0.s) +Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) +Chars 11730 - 11736 [Proof.] 0. secs (0.u,0.s) +Chars 11739 - 11774 [eapply~pair_universal;~reflexi...] 0. secs (0.u,0.s) +Chars 11775 - 11779 [Qed.] 0. secs (0.u,0.s) +Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.001 secs (0.001u,0.s) +Chars 11992 - 11998 [Proof.] 0. secs (0.u,0.s) +Chars 12001 - 12008 [intros.] 0. secs (0.u,0.s) +Chars 12009 - 12031 [rewrite~(pair_eta'~g).] 0. secs (0.u,0.s) +Chars 12034 - 12067 [apply~pair_universal;~assumption.] 0. secs (0.u,0.s) +Chars 12068 - 12072 [Qed.] 0. secs (0.u,0.s) +Chars 12074 - 12106 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) +Chars 12107 - 12138 [Existing~Instance~Swap_Product.] 0. secs (0.u,0.s) +Chars 12139 - 12172 [Existing~Instance~AssocR_Product.] 0. secs (0.u,0.s) +Chars 12173 - 12206 [Existing~Instance~AssocL_Product.] 0. secs (0.u,0.s) +Chars 12207 - 12239 [Existing~Instance~UnitL_Product.] 0. secs (0.u,0.s) +Chars 12240 - 12273 [Existing~Instance~UnitL'_Product.] 0. secs (0.u,0.s) +Chars 12274 - 12306 [Existing~Instance~UnitR_Product.] 0. secs (0.u,0.s) +Chars 12307 - 12340 [Existing~Instance~UnitR'_Product.] 0. secs (0.u,0.s) +Chars 12342 - 12593 [Ltac~~unfold_product~:=~~~unfo...] 0. secs (0.u,0.s) +Chars 12642 - 12991 [Ltac~~cat_auto_simpl_prod~:=~~...] 0. secs (0.u,0.s) +Chars 12993 - 13116 [Ltac~~cat_auto_prod~:=~~~unfol...] 0. secs (0.u,0.s) +Chars 13118 - 13268 [Ltac~~cat_auto_prod'~:=~~~repe...] 0. secs (0.u,0.s) +Chars 13271 - 13359 [Lemma~swap_pair~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) +Chars 13360 - 13366 [Proof.] 0. secs (0.u,0.s) +Chars 13369 - 13403 [intros;~unfold~swap,~Swap_Prod...] 0. secs (0.u,0.s) +Chars 13406 - 13443 [rewrite~pair_cat,~pair_fst,~pa...] 0.002 secs (0.002u,0.s) +Chars 13448 - 13460 [reflexivity.] 0. secs (0.u,0.s) +Chars 13461 - 13465 [Qed.] 0. secs (0.u,0.s) +Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) +Chars 13519 - 13525 [Proof.] 0. secs (0.u,0.s) +Chars 13526 - 13541 [apply~pair_snd.] 0. secs (0.u,0.s) +Chars 13542 - 13546 [Qed.] 0. secs (0.u,0.s) +Chars 13548 - 13599 [Lemma~swap_fst~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) +Chars 13600 - 13606 [Proof.] 0. secs (0.u,0.s) +Chars 13607 - 13622 [apply~pair_fst.] 0. secs (0.u,0.s) +Chars 13623 - 13627 [Qed.] 0. secs (0.u,0.s) +Chars 13629 - 13737 [Lemma~bimap_pair_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) +Chars 13738 - 13744 [Proof.] 0. secs (0.u,0.s) +Chars 13745 - 13757 [reflexivity.] 0. secs (0.u,0.s) +Chars 13758 - 13762 [Qed.] 0. secs (0.u,0.s) +Chars 13764 - 13852 [Lemma~bimap_fst~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 13853 - 13859 [Proof.] 0. secs (0.u,0.s) +Chars 13860 - 13875 [apply~pair_fst.] 0. secs (0.u,0.s) +Chars 13876 - 13880 [Qed.] 0. secs (0.u,0.s) +Chars 13882 - 13970 [Lemma~bimap_snd~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 13971 - 13977 [Proof.] 0. secs (0.u,0.s) +Chars 13978 - 13993 [apply~pair_snd.] 0. secs (0.u,0.s) +Chars 13994 - 13998 [Qed.] 0. secs (0.u,0.s) +Chars 14000 - 14157 [Lemma~pair_bimap~{a}~{b}~{b'}~...] 0.001 secs (0.001u,0.s) +Chars 14158 - 14164 [Proof.] 0. secs (0.u,0.s) +Chars 14165 - 14180 [cat_auto_prod'.] 0.042 secs (0.042u,0.s) +Chars 14181 - 14185 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14187 - 14259 [Lemma~assoc_r_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 14260 - 14266 [Proof.] 0. secs (0.u,0.s) +Chars 14267 - 14282 [cat_auto_prod'.] 0.006 secs (0.006u,0.s) +Chars 14283 - 14287 [Qed.] 0. secs (0.u,0.s) +Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 14362 - 14368 [Proof.] 0. secs (0.u,0.s) +Chars 14369 - 14384 [cat_auto_prod'.] 0.009 secs (0.009u,0.s) +Chars 14385 - 14389 [Qed.] 0. secs (0.u,0.s) +Chars 14391 - 14468 [Lemma~assoc_l_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 14469 - 14475 [Proof.] 0. secs (0.u,0.s) +Chars 14476 - 14491 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) +Chars 14492 - 14496 [Qed.] 0. secs (0.u,0.s) +Chars 14499 - 14576 [Lemma~assoc_r_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 14577 - 14583 [Proof.] 0. secs (0.u,0.s) +Chars 14584 - 14599 [cat_auto_prod'.] 0.014 secs (0.014u,0.s) +Chars 14600 - 14604 [Qed.] 0. secs (0.u,0.s) +Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0. secs (0.u,0.s) +Chars 14907 - 14913 [Proof.] 0. secs (0.u,0.s) +Chars 14916 - 14947 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) +Chars 14950 - 14978 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) +Chars 14981 - 15013 [rewrite~eqac,~eqbd;~reflexivity.] 0.003 secs (0.003u,0.s) +Chars 15014 - 15018 [Qed.] 0. secs (0.u,0.s) +Chars 15020 - 15061 [Instance~BimapId_Product~:~(Bi...] 0. secs (0.u,0.s) +Chars 15062 - 15068 [Proof.] 0. secs (0.u,0.s) +Chars 15071 - 15082 [intros~A~B.] 0. secs (0.u,0.s) +Chars 15085 - 15094 [symmetry.] 0. secs (0.u,0.s) +Chars 15095 - 15123 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) +Chars 15126 - 15145 [rewrite~2!cat_id_r.] 0.001 secs (0.001u,0.s) +Chars 15148 - 15163 [apply~pair_eta.] 0. secs (0.u,0.s) +Chars 15164 - 15168 [Qed.] 0. secs (0.u,0.s) +Chars 15170 - 15213 [Instance~BimapCat_Product~:~(B...] 0. secs (0.u,0.s) +Chars 15214 - 15220 [Proof.] 0. secs (0.u,0.s) +Chars 15221 - 15236 [cat_auto_prod'.] 0.073 secs (0.073u,0.s) +Chars 15237 - 15241 [Qed.] 0.001 secs (0.001u,0.s) +Chars 15243 - 15288 [Instance~Bifunctor_Product~:~(...] 0. secs (0.u,0.s) +Chars 15289 - 15295 [Proof.] 0. secs (0.u,0.s) +Chars 15298 - 15329 [constructor;~typeclasses~eauto.] 0.001 secs (0.001u,0.s) +Chars 15330 - 15334 [Qed.] 0. secs (0.u,0.s) +Chars 15373 - 15448 [Instance~SwapInvolutive_Produc...] 0. secs (0.u,0.s) +Chars 15449 - 15455 [Proof.] 0. secs (0.u,0.s) +Chars 15456 - 15471 [cat_auto_prod'.] 0.03 secs (0.03u,0.s) +Chars 15472 - 15476 [Qed.] 0.001 secs (0.001u,0.s) +Chars 15515 - 15596 [Instance~AssocRMono_Product~~{...] 0. secs (0.u,0.s) +Chars 15597 - 15603 [Proof.] 0. secs (0.u,0.s) +Chars 15604 - 15619 [cat_auto_prod'.] 0.142 secs (0.141u,0.s) +Chars 15620 - 15624 [Qed.] 0.003 secs (0.003u,0.s) +Chars 15626 - 15707 [Instance~AssocLMono_Product~~{...] 0. secs (0.u,0.s) +Chars 15708 - 15714 [Proof.] 0. secs (0.u,0.s) +Chars 15715 - 15730 [cat_auto_prod'.] 0.137 secs (0.137u,0.s) +Chars 15731 - 15735 [Qed.] 0.003 secs (0.003u,0.s) +Chars 15737 - 15755 [Context~(t~:~obj).] 0. secs (0.u,0.s) +Chars 15756 - 15792 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) +Chars 15793 - 15841 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) +Chars 15874 - 15947 [Instance~UnitLMono_Product~~{a...] 0. secs (0.u,0.s) +Chars 15948 - 15954 [Proof.] 0. secs (0.u,0.s) +Chars 15955 - 15970 [cat_auto_prod'.] 0.026 secs (0.026u,0.s) +Chars 15971 - 15995 [rewrite~terminal_unique.] 0. secs (0.u,0.s) +Chars 15996 - 16008 [reflexivity.] 0. secs (0.u,0.s) +Chars 16009 - 16013 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16051 - 16131 [#[global]~Instance~UnitRMono_P...] 0. secs (0.u,0.s) +Chars 16132 - 16138 [Proof.] 0. secs (0.u,0.s) +Chars 16139 - 16154 [cat_auto_prod'.] 0.027 secs (0.027u,0.s) +Chars 16155 - 16179 [rewrite~terminal_unique.] 0. secs (0.u,0.s) +Chars 16180 - 16192 [reflexivity.] 0. secs (0.u,0.s) +Chars 16193 - 16197 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16199 - 16278 [#[global]~Instance~UnitLEpi_Pr...] 0. secs (0.u,0.s) +Chars 16279 - 16285 [Proof.] 0. secs (0.u,0.s) +Chars 16286 - 16301 [cat_auto_prod'.] 0.003 secs (0.003u,0.s) +Chars 16302 - 16306 [Qed.] 0. secs (0.u,0.s) +Chars 16308 - 16387 [#[global]~Instance~UnitREpi_Pr...] 0. secs (0.u,0.s) +Chars 16388 - 16394 [Proof.] 0. secs (0.u,0.s) +Chars 16395 - 16410 [cat_auto_prod'.] 0.002 secs (0.002u,0.s) +Chars 16411 - 16415 [Qed.] 0. secs (0.u,0.s) +Chars 16417 - 16468 [Lemma~unit_l'_snd~{a}~:~unit_l...] 0. secs (0.u,0.s) +Chars 16469 - 16475 [Proof.] 0. secs (0.u,0.s) +Chars 16476 - 16497 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 16498 - 16502 [Qed.] 0. secs (0.u,0.s) +Chars 16504 - 16555 [Lemma~unit_r'_fst~{a}~:~unit_r...] 0. secs (0.u,0.s) +Chars 16556 - 16562 [Proof.] 0. secs (0.u,0.s) +Chars 16563 - 16584 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 16585 - 16589 [Qed.] 0. secs (0.u,0.s) +Chars 16591 - 16644 [Instance~UnitLNatural_Product~...] 0. secs (0.u,0.s) +Chars 16645 - 16651 [Proof.] 0. secs (0.u,0.s) +Chars 16652 - 16667 [cat_auto_prod'.] 0.007 secs (0.007u,0.s) +Chars 16668 - 16672 [Qed.] 0. secs (0.u,0.s) +Chars 16674 - 16729 [Instance~UnitL'Natural_Product...] 0. secs (0.u,0.s) +Chars 16730 - 16736 [Proof.] 0. secs (0.u,0.s) +Chars 16737 - 16752 [cat_auto_prod'.] 0.055 secs (0.055u,0.s) +Chars 16753 - 16777 [rewrite~terminal_unique.] 0. secs (0.u,0.s) +Chars 16778 - 16790 [reflexivity.] 0. secs (0.u,0.s) +Chars 16791 - 16795 [Qed.] 0.002 secs (0.001u,0.s) +Chars 16856 - 16905 [Instance~AssocRUnit_Product~:~...] 0. secs (0.u,0.s) +Chars 16906 - 16912 [Proof.] 0. secs (0.u,0.s) +Chars 16913 - 16928 [cat_auto_prod'.] 0.089 secs (0.088u,0.s) +Chars 16929 - 16933 [Qed.] 0.002 secs (0.002u,0.s) +Chars 16935 - 16986 [Instance~AssocRAssocR_Product~...] 0. secs (0.u,0.s) +Chars 16987 - 16993 [Proof.] 0. secs (0.u,0.s) +Chars 16994 - 17009 [cat_auto_prod'.] 0.927 secs (0.919u,0.004s) +Chars 17010 - 17014 [Qed.] 0.022 secs (0.022u,0.s) +Chars 17016 - 17061 [Instance~Monoidal_Product~:~(M...] 0. secs (0.u,0.s) +Chars 17062 - 17068 [Proof.] 0. secs (0.u,0.s) +Chars 17071 - 17123 [constructor;~idtac~+~construct...] 0.003 secs (0.003u,0.s) +Chars 17124 - 17128 [Qed.] 0. secs (0.u,0.s) +Chars 17130 - 17181 [Instance~AssocLAssocL_Product~...] 0. secs (0.u,0.s) +Chars 17182 - 17188 [Proof.] 0. secs (0.u,0.s) +Chars 17189 - 17204 [cat_auto_prod'.] 0.901 secs (0.896u,0.004s) +Chars 17205 - 17209 [Qed.] 0.022 secs (0.021u,0.s) +Chars 17272 - 17319 [Instance~SwapUnitL_Product~:~(...] 0. secs (0.u,0.s) +Chars 17320 - 17326 [Proof.] 0. secs (0.u,0.s) +Chars 17327 - 17342 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) +Chars 17343 - 17347 [Qed.] 0. secs (0.u,0.s) +Chars 17349 - 17396 [Instance~SwapAssocR_Product~:~...] 0. secs (0.u,0.s) +Chars 17397 - 17403 [Proof.] 0. secs (0.u,0.s) +Chars 17404 - 17419 [cat_auto_prod'.] 0.516 secs (0.514u,0.002s) +Chars 17420 - 17424 [Qed.] 0.014 secs (0.014u,0.s) +Chars 17426 - 17473 [Instance~SwapAssocL_Product~:~...] 0. secs (0.u,0.s) +Chars 17474 - 17480 [Proof.] 0. secs (0.u,0.s) +Chars 17481 - 17496 [cat_auto_prod'.] 0.523 secs (0.52u,0.002s) +Chars 17497 - 17501 [Qed.] 0.014 secs (0.014u,0.s) +Chars 17503 - 17554 [Instance~SymMonoidal_Product~:...] 0. secs (0.u,0.s) +Chars 17555 - 17561 [Proof.] 0. secs (0.u,0.s) +Chars 17564 - 17595 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 17596 - 17600 [Qed.] 0. secs (0.u,0.s) +Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.001 secs (0.001u,0.s) +Chars 17713 - 17719 [Proof.] 0. secs (0.u,0.s) +Chars 17720 - 17735 [cat_auto_prod'.] 0.087 secs (0.087u,0.s) +Chars 17736 - 17740 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.001 secs (0.001u,0.s) +Chars 17877 - 17883 [Proof.] 0. secs (0.u,0.s) +Chars 17884 - 17899 [cat_auto_prod'.] 0.077 secs (0.077u,0.s) +Chars 17900 - 17904 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17906 - 17923 [End~ProductFacts.] 0.001 secs (0.001u,0.s) +Chars 17926 - 18039 [Ltac~~cat_auto_step~:=~~~repea...] 0. secs (0.u,0.s) +Chars 18041 - 18152 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) +Chars 18194 - 18223 [Section~TracedIterativeFacts.] 0. secs (0.u,0.s) +Chars 18225 - 18260 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) +Chars 18262 - 18286 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) +Chars 18287 - 18344 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) +Chars 18346 - 18385 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) +Chars 18386 - 18420 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) +Chars 18422 - 18448 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) +Chars 18449 - 18535 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) +Chars 18536 - 18576 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) +Chars 18578 - 18610 [Context~{Iter_bif~:~Iter~C~bif}.] 0. secs (0.u,0.s) +Chars 18611 - 18651 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) +Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0. secs (0.u,0.s) +Chars 18754 - 18760 [Proof.] 0. secs (0.u,0.s) +Chars 18763 - 18776 [repeat~intro.] 0. secs (0.u,0.s) +Chars 18779 - 18791 [unfold~loop.] 0. secs (0.u,0.s) +Chars 18794 - 18804 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 18807 - 18819 [reflexivity.] 0. secs (0.u,0.s) +Chars 18820 - 18824 [Qed.] 0. secs (0.u,0.s) +Chars 19094 - 19222 [Lemma~loop_natural_left~{a}~{a...] 0.001 secs (0.001u,0.s) +Chars 19223 - 19229 [Proof.] 0. secs (0.u,0.s) +Chars 19232 - 19244 [unfold~loop.] 0. secs (0.u,0.s) +Chars 19247 - 19382 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) +Chars 19385 - 19386 [-] 0. secs (0.u,0.s) +Chars 19387 - 19410 [rewrite~iter_dinatural.] 0.001 secs (0.001u,0.s) +Chars 19415 - 19424 [cat_auto.] 0.122 secs (0.122u,0.s) +Chars 19425 - 19444 [do~2~cat_auto_step.] 0.002 secs (0.001u,0.s) +Chars 19445 - 19454 [cat_auto.] 0.07 secs (0.07u,0.s) +Chars 19457 - 19458 [-] 0. secs (0.u,0.s) +Chars 19459 - 19468 [cat_auto.] 0.066 secs (0.065u,0.s) +Chars 19469 - 19473 [Qed.] 0.01 secs (0.01u,0.s) +Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.001 secs (0.001u,0.s) +Chars 19843 - 19849 [Proof.] 0. secs (0.u,0.s) +Chars 19852 - 19864 [unfold~loop.] 0. secs (0.u,0.s) +Chars 19867 - 19885 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 19886 - 19900 [cat_auto_step.] 0. secs (0.u,0.s) +Chars 19903 - 19924 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) +Chars 19925 - 19939 [cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 19942 - 19995 [rewrite~!cat_assoc,~!bimap_cat...] 0.017 secs (0.017u,0.s) +Chars 19998 - 20010 [reflexivity.] 0. secs (0.u,0.s) +Chars 20011 - 20015 [Qed.] 0.002 secs (0.002u,0.s) +Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.001 secs (0.001u,0.s) +Chars 20160 - 20166 [Proof.] 0. secs (0.u,0.s) +Chars 20169 - 20181 [unfold~loop.] 0. secs (0.u,0.s) +Chars 20184 - 20319 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) +Chars 20322 - 20323 [-] 0. secs (0.u,0.s) +Chars 20324 - 20347 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 20352 - 20361 [cat_auto.] 0.124 secs (0.124u,0.s) +Chars 20362 - 20381 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 20382 - 20391 [cat_auto.] 0.111 secs (0.11u,0.s) +Chars 20394 - 20395 [-] 0. secs (0.u,0.s) +Chars 20396 - 20405 [cat_auto.] 0.065 secs (0.065u,0.s) +Chars 20406 - 20410 [Qed.] 0.011 secs (0.011u,0.s) +Chars 20412 - 20430 [Context~{i~:~obj}.] 0. secs (0.u,0.s) +Chars 20431 - 20465 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) +Chars 20466 - 20512 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) +Chars 20514 - 20613 [Lemma~loop_vanishing_1~{a}~{b}...] 0.001 secs (0.001u,0.s) +Chars 20614 - 20620 [Proof.] 0. secs (0.u,0.s) +Chars 20623 - 20635 [unfold~loop.] 0. secs (0.u,0.s) +Chars 20638 - 20658 [rewrite~iter_unfold.] 0.001 secs (0.001u,0.s) +Chars 20659 - 20668 [cat_auto.] 0.049 secs (0.048u,0.s) +Chars 20669 - 20683 [cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 20684 - 20693 [cat_auto.] 0.062 secs (0.062u,0.s) +Chars 20694 - 20698 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.002 secs (0.002u,0.s) +Chars 21137 - 21143 [Proof.] 0. secs (0.u,0.s) +Chars 21146 - 21158 [unfold~loop.] 0. secs (0.u,0.s) +Chars 21161 - 21291 [transitivity~~(inr_~>>>~inr_~>...] 0.001 secs (0.001u,0.s) +Chars 21294 - 21295 [-] 0. secs (0.u,0.s) +Chars 21296 - 21441 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) +Chars 21446 - 21447 [+] 0. secs (0.u,0.s) +Chars 21448 - 21457 [cat_auto.] 0.123 secs (0.123u,0.s) +Chars 21458 - 21477 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 21478 - 21499 [rewrite~iter_natural.] 0.002 secs (0.002u,0.s) +Chars 21506 - 21520 [cat_auto_step.] 0. secs (0.u,0.s) +Chars 21521 - 21539 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 21540 - 21554 [cat_auto_step.] 0. secs (0.u,0.s) +Chars 21561 - 21570 [cat_auto.] 0.122 secs (0.121u,0.s) +Chars 21575 - 21576 [+] 0. secs (0.u,0.s) +Chars 21577 - 21600 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 21607 - 21635 [rewrite~cat_assoc,~case_inl.] 0.006 secs (0.006u,0.s) +Chars 21642 - 21663 [rewrite~iter_natural.] 0.004 secs (0.004u,0.s) +Chars 21670 - 21679 [cat_auto.] 0.172 secs (0.171u,0.s) +Chars 21680 - 21699 [do~3~cat_auto_step.] 0.003 secs (0.003u,0.s) +Chars 21706 - 21715 [cat_auto.] 0.33 secs (0.328u,0.002s) +Chars 21719 - 21720 [-] 0. secs (0.u,0.s) +Chars 21721 - 21745 [rewrite~iter_codiagonal.] 0.002 secs (0.002u,0.s) +Chars 21750 - 21806 [rewrite~(cat_assoc~_~(bimap~_~...] 0.013 secs (0.013u,0.s) +Chars 21811 - 21954 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) +Chars 21959 - 21960 [+] 0. secs (0.u,0.s) +Chars 21961 - 21984 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 21991 - 22000 [cat_auto.] 0.253 secs (0.252u,0.001s) +Chars 22001 - 22020 [do~2~cat_auto_step.] 0.002 secs (0.002u,0.s) +Chars 22021 - 22030 [cat_auto.] 0.366 secs (0.364u,0.001s) +Chars 22035 - 22036 [+] 0. secs (0.u,0.s) +Chars 22037 - 22046 [cat_auto.] 0.136 secs (0.136u,0.s) +Chars 22047 - 22051 [Qed.] 0.049 secs (0.048u,0.s) +Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.002 secs (0.002u,0.s) +Chars 22211 - 22217 [Proof.] 0. secs (0.u,0.s) +Chars 22220 - 22232 [unfold~loop.] 0. secs (0.u,0.s) +Chars 22235 - 22244 [cat_auto.] 0.248 secs (0.246u,0.001s) +Chars 22247 - 22248 [-] 0. secs (0.u,0.s) +Chars 22249 - 22438 [transitivity~~(inr_~>>>~~~iter...] 0.003 secs (0.003u,0.s) +Chars 22444 - 22445 [+] 0. secs (0.u,0.s) +Chars 22446 - 22478 [rewrite~cat_assoc,~iter_natural.] 0.006 secs (0.006u,0.s) +Chars 22485 - 22516 [do~2~(cat_auto_step;~cat_auto).] 0.751 secs (0.748u,0.003s) +Chars 22521 - 22522 [+] 0. secs (0.u,0.s) +Chars 22523 - 22546 [rewrite~iter_dinatural.] 0.004 secs (0.004u,0.s) +Chars 22553 - 22584 [do~3~(cat_auto;~cat_auto_step).] 1.711 secs (1.703u,0.006s) +Chars 22588 - 22589 [-] 0. secs (0.u,0.s) +Chars 22590 - 22610 [rewrite~iter_unfold.] 0.004 secs (0.004u,0.s) +Chars 22611 - 22620 [cat_auto.] 0.355 secs (0.353u,0.001s) +Chars 22621 - 22625 [Qed.] 0.088 secs (0.087u,0.s) +Chars 22627 - 22672 [Lemma~loop_yanking~{a}~:~loop~...] 0. secs (0.u,0.s) +Chars 22673 - 22679 [Proof.] 0. secs (0.u,0.s) +Chars 22682 - 22694 [unfold~loop.] 0. secs (0.u,0.s) +Chars 22695 - 22717 [rewrite~2!iter_unfold.] 0.005 secs (0.005u,0.s) +Chars 22718 - 22727 [cat_auto.] 0.112 secs (0.112u,0.s) +Chars 22728 - 22732 [Qed.] 0.005 secs (0.005u,0.s) +Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.002 secs (0.002u,0.s) +Chars 22928 - 22934 [Proof.] 0. secs (0.u,0.s) +Chars 22937 - 22948 [intros~Hij.] 0. secs (0.u,0.s) +Chars 22949 - 22972 [rewrite~loop_dinatural.] 0. secs (0.u,0.s) +Chars 22975 - 22996 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 22999 - 23017 [rewrite~bimap_cat.] 0.001 secs (0.001u,0.s) +Chars 23020 - 23032 [rewrite~Hij.] 0.001 secs (0.001u,0.s) +Chars 23035 - 23052 [rewrite~cat_id_l.] 0.001 secs (0.001u,0.s) +Chars 23055 - 23072 [rewrite~bimap_id.] 0.001 secs (0.001u,0.s) +Chars 23075 - 23092 [rewrite~cat_id_l.] 0. secs (0.u,0.s) +Chars 23095 - 23107 [reflexivity.] 0. secs (0.u,0.s) +Chars 23108 - 23112 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23407 - 23509 [Theorem~cat_from_loop~{a}~{b}~...] 0.001 secs (0.001u,0.s) +Chars 23510 - 23516 [Proof.] 0. secs (0.u,0.s) +Chars 23618 - 23638 [rewrite~bimap_slide.] 0.001 secs (0.001u,0.s) +Chars 23641 - 23662 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 23776 - 23806 [rewrite~<-~loop_natural_right.] 0. secs (0.u,0.s) +Chars 23914 - 23933 [rewrite~swap_bimap.] 0.001 secs (0.001u,0.s) +Chars 23936 - 23958 [rewrite~<-~!cat_assoc.] 0.004 secs (0.004u,0.s) +Chars 24088 - 24122 [rewrite~swap_involutive,~cat_i...] 0.003 secs (0.003u,0.s) +Chars 24252 - 24281 [rewrite~<-~loop_natural_left.] 0.002 secs (0.002u,0.s) +Chars 24380 - 24401 [rewrite~loop_yanking.] 0.001 secs (0.001u,0.s) +Chars 24404 - 24421 [rewrite~cat_id_r.] 0. secs (0.u,0.s) +Chars 24451 - 24463 [reflexivity.] 0. secs (0.u,0.s) +Chars 24464 - 24468 [Qed.] 0.002 secs (0.002u,0.s) +Chars 24625 - 24704 [Fact~fwd_eqn~{a}~{b}~(f~g~:~C~...] 0. secs (0.u,0.s) +Chars 24705 - 24711 [Proof.] 0. secs (0.u,0.s) +Chars 24714 - 24744 [intro~H;~apply~H;~reflexivity.] 0. secs (0.u,0.s) +Chars 24745 - 24749 [Qed.] 0. secs (0.u,0.s) +Chars 24800 - 24886 [Fact~cat_eq2_l~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) +Chars 24887 - 24893 [Proof.] 0. secs (0.u,0.s) +Chars 24896 - 24929 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) +Chars 24930 - 24934 [Qed.] 0. secs (0.u,0.s) +Chars 24936 - 25022 [Fact~cat_eq2_r~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) +Chars 25023 - 25029 [Proof.] 0. secs (0.u,0.s) +Chars 25032 - 25065 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) +Chars 25066 - 25070 [Qed.] 0. secs (0.u,0.s) +Chars 25072 - 25205 [Fact~local_rewrite1~{a}~{b}~{c...] 0.003 secs (0.003u,0.s) +Chars 25206 - 25212 [Proof.] 0. secs (0.u,0.s) +Chars 25215 - 25224 [symmetry.] 0. secs (0.u,0.s) +Chars 25227 - 25254 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) +Chars 25257 - 25307 [do~2~apply~(cat_eq2_l~(bimap~(...] 0.001 secs (0.001u,0.s) +Chars 25310 - 25397 [rewrite~<-~cat_assoc,~bimap_ca...] 0.02 secs (0.02u,0.s) +Chars 25400 - 25473 [rewrite~<-~(cat_assoc~_~_~asso...] 0.007 secs (0.007u,0.s) +Chars 25476 - 25506 [rewrite~<-~swap_assoc_l~in~Eq.] 0.002 secs (0.002u,0.s) +Chars 25509 - 25547 [rewrite~(cat_assoc~_~_~assoc_r...] 0.001 secs (0.001u,0.s) +Chars 25550 - 25577 [rewrite~assoc_l_mono~in~Eq.] 0.002 secs (0.002u,0.s) +Chars 25580 - 25603 [rewrite~cat_id_r~in~Eq.] 0.001 secs (0.001u,0.s) +Chars 25606 - 25624 [rewrite~cat_assoc.] 0. secs (0.u,0.s) +Chars 25627 - 25638 [assumption.] 0. secs (0.u,0.s) +Chars 25639 - 25643 [Qed.] 0.007 secs (0.007u,0.s) +Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.003 secs (0.003u,0.s) +Chars 25778 - 25784 [Proof.] 0. secs (0.u,0.s) +Chars 25787 - 25796 [symmetry.] 0. secs (0.u,0.s) +Chars 25799 - 25826 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) +Chars 25829 - 25879 [do~2~apply~(cat_eq2_r~(bimap~(...] 0.001 secs (0.001u,0.s) +Chars 25882 - 25966 [rewrite~cat_assoc,~bimap_cat,~...] 0.022 secs (0.022u,0.s) +Chars 25969 - 26005 [rewrite~2!(cat_assoc~assoc_l)~...] 0.004 secs (0.004u,0.s) +Chars 26008 - 26038 [rewrite~<-~swap_assoc_r~in~Eq.] 0.002 secs (0.002u,0.s) +Chars 26041 - 26080 [rewrite~<-~2!(cat_assoc~assoc_...] 0.004 secs (0.004u,0.s) +Chars 26083 - 26120 [rewrite~assoc_l_mono,~cat_id_l...] 0.004 secs (0.004u,0.s) +Chars 26123 - 26134 [assumption.] 0. secs (0.u,0.s) +Chars 26135 - 26139 [Qed.] 0.006 secs (0.006u,0.s) +Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.008 secs (0.008u,0.s) +Chars 26438 - 26444 [Proof.] 0. secs (0.u,0.s) +Chars 26447 - 26484 [rewrite~swap_bimap,~loop_super...] 0.004 secs (0.004u,0.s) +Chars 26487 - 26533 [rewrite~loop_natural_left,~loo...] 0.004 secs (0.004u,0.s) +Chars 26536 - 26563 [rewrite~(swap_bimap~cd~ab).] 0.006 secs (0.006u,0.s) +Chars 26566 - 26588 [rewrite~<-~!cat_assoc.] 0.023 secs (0.023u,0.s) +Chars 26591 - 26614 [rewrite~local_rewrite1.] 0.005 secs (0.005u,0.s) +Chars 26617 - 26637 [rewrite~2!cat_assoc.] 0.006 secs (0.006u,0.s) +Chars 26640 - 26676 [rewrite~<-~(cat_assoc~swap~ass...] 0.004 secs (0.004u,0.s) +Chars 26679 - 26702 [rewrite~local_rewrite2.] 0.003 secs (0.003u,0.s) +Chars 26705 - 26727 [rewrite~<-~!cat_assoc.] 0.012 secs (0.012u,0.s) +Chars 26730 - 26742 [reflexivity.] 0. secs (0.u,0.s) +Chars 26743 - 26747 [Qed.] 0.008 secs (0.008u,0.s) +Chars 26749 - 26774 [End~TracedIterativeFacts.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/CategoryFunctor.v.timing b/theories/Basics/CategoryFunctor.v.timing new file mode 100644 index 00000000..7ce6e3e3 --- /dev/null +++ b/theories/Basics/CategoryFunctor.v.timing @@ -0,0 +1,22 @@ +Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0. secs (0.u,0.s) +Chars 135 - 155 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 156 - 183 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 185 - 201 [Section~Functor.] 0. secs (0.u,0.s) +Chars 203 - 435 [Context~{obj1~obj2~:~Type}~{C1...] 0. secs (0.u,0.s) +Chars 437 - 458 [Arguments~fmap~{a~b}.] 0. secs (0.u,0.s) +Chars 460 - 698 [Class~Functor~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) +Chars 700 - 712 [End~Functor.] 0. secs (0.u,0.s) +Chars 714 - 750 [Arguments~Functor~:~clear~impl...] 0. secs (0.u,0.s) +Chars 751 - 802 [Arguments~Functor~{_~_}~C1~C2~...] 0. secs (0.u,0.s) +Chars 804 - 822 [Section~FunctorId.] 0. secs (0.u,0.s) +Chars 824 - 1041 [Context~{obj~:~Type}~{C1~C2~:~...] 0. secs (0.u,0.s) +Chars 1043 - 1097 [Lemma~fmap_id0~:~forall~a,~fma...] 0. secs (0.u,0.s) +Chars 1098 - 1104 [Proof.] 0. secs (0.u,0.s) +Chars 1105 - 1119 [apply~fmap_id.] 0. secs (0.u,0.s) +Chars 1120 - 1124 [Qed.] 0. secs (0.u,0.s) +Chars 1126 - 1237 [Lemma~fmap_cat0~:~~~forall~a~b...] 0. secs (0.u,0.s) +Chars 1238 - 1244 [Proof.] 0. secs (0.u,0.s) +Chars 1245 - 1260 [apply~fmap_cat.] 0. secs (0.u,0.s) +Chars 1261 - 1265 [Qed.] 0. secs (0.u,0.s) +Chars 1267 - 1281 [End~FunctorId.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisli.v.timing b/theories/Basics/CategoryKleisli.v.timing new file mode 100644 index 00000000..b8955abf --- /dev/null +++ b/theories/Basics/CategoryKleisli.v.timing @@ -0,0 +1,23 @@ +Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 701 - 750 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.s) +Chars 877 - 909 [Implicit~Type~m~:~Type~->~Type.] 0. secs (0.u,0.s) +Chars 910 - 938 [Implicit~Types~a~b~c~:~Type.] 0. secs (0.u,0.s) +Chars 940 - 984 [Definition~Kleisli~m~a~b~:~Typ...] 0. secs (0.u,0.s) +Chars 1104 - 1181 [Definition~Kleisli_arrow~{m}~{...] 0. secs (0.u,0.s) +Chars 1182 - 1259 [Definition~Kleisli_apply~{m}~{...] 0. secs (0.u,0.s) +Chars 1262 - 1352 [Definition~pure~{m}~`{Monad~m}...] 0. secs (0.u,0.s) +Chars 1354 - 1372 [Section~Instances.] 0. secs (0.u,0.s) +Chars 1375 - 1402 [Context~{m~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 1405 - 1424 [Context~`{Monad~m}.] 0. secs (0.u,0.s) +Chars 1427 - 1444 [Context~`{Eq1~m}.] 0. secs (0.u,0.s) +Chars 1448 - 1540 [#[global]~Instance~Eq2_Kleisli...] 0. secs (0.u,0.s) +Chars 1544 - 1651 [#[global]~Instance~Cat_Kleisli...] 0. secs (0.u,0.s) +Chars 1655 - 1750 [Definition~map~{a}~{b}~{c}~(g~...] 0. secs (0.u,0.s) +Chars 1756 - 1860 [#[global]~Instance~Initial_Kle...] 0. secs (0.u,0.s) +Chars 1864 - 1936 [#[global]~Instance~Id_Kleisli~...] 0. secs (0.u,0.s) +Chars 1940 - 2038 [#[global]~Instance~Case_Kleisl...] 0. secs (0.u,0.s) +Chars 2042 - 2122 [#[global]~Instance~Inl_Kleisli...] 0. secs (0.u,0.s) +Chars 2126 - 2206 [#[global]~Instance~Inr_Kleisli...] 0. secs (0.u,0.s) +Chars 2210 - 2310 [#[global]~Instance~Iter_Kleisl...] 0. secs (0.u,0.s) +Chars 2312 - 2326 [End~Instances.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisliFacts.v.timing b/theories/Basics/CategoryKleisliFacts.v.timing new file mode 100644 index 00000000..91ad4c9f --- /dev/null +++ b/theories/Basics/CategoryKleisliFacts.v.timing @@ -0,0 +1,307 @@ +Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) +Chars 165 - 214 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) +Chars 379 - 399 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 400 - 427 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 428 - 457 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 460 - 479 [Section~BasicFacts.] 0. secs (0.u,0.s) +Chars 483 - 510 [Context~{m~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 513 - 535 [Context~{Eq1~:~Eq1~m}.] 0. secs (0.u,0.s) +Chars 538 - 561 [Context~{Mm~:~Monad~m}.] 0. secs (0.u,0.s) +Chars 564 - 605 [Context~{Eq1P~:~@Eq1Equivalenc...] 0. secs (0.u,0.s) +Chars 608 - 644 [Context~{ML~:~@MonadLawsE~m~Eq...] 0. secs (0.u,0.s) +Chars 650 - 743 [Instance~Proper_Kleisli_apply~...] 0. secs (0.u,0.s) +Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) +Chars 757 - 782 [compute;~intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 785 - 789 [Qed.] 0. secs (0.u,0.s) +Chars 793 - 872 [Lemma~fold_Kleisli~{a}~{b}~(f~...] 0. secs (0.u,0.s) +Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) +Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) +Chars 895 - 899 [Qed.] 0. secs (0.u,0.s) +Chars 905 - 986 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 989 - 995 [Proof.] 0. secs (0.u,0.s) +Chars 1000 - 1020 [split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 1025 - 1026 [-] 0. secs (0.u,0.s) +Chars 1027 - 1039 [reflexivity.] 0. secs (0.u,0.s) +Chars 1044 - 1045 [-] 0. secs (0.u,0.s) +Chars 1046 - 1061 [symmetry;~auto.] 0. secs (0.u,0.s) +Chars 1066 - 1067 [-] 0. secs (0.u,0.s) +Chars 1068 - 1089 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 1092 - 1096 [Qed.] 0. secs (0.u,0.s) +Chars 1100 - 1184 [#[global]~Instance~Functor_pur...] 0. secs (0.u,0.s) +Chars 1187 - 1193 [Proof.] 0. secs (0.u,0.s) +Chars 1198 - 1218 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 1223 - 1224 [-] 0. secs (0.u,0.s) +Chars 1225 - 1237 [reflexivity.] 0. secs (0.u,0.s) +Chars 1242 - 1243 [-] 0. secs (0.u,0.s) +Chars 1244 - 1253 [intros~?.] 0. secs (0.u,0.s) +Chars 1254 - 1284 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 1285 - 1304 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 1311 - 1323 [reflexivity.] 0. secs (0.u,0.s) +Chars 1328 - 1329 [-] 0. secs (0.u,0.s) +Chars 1330 - 1345 [intros~?~?~?~?.] 0. secs (0.u,0.s) +Chars 1346 - 1358 [unfold~pure.] 0. secs (0.u,0.s) +Chars 1359 - 1369 [rewrite~H.] 0. secs (0.u,0.s) +Chars 1370 - 1382 [reflexivity.] 0. secs (0.u,0.s) +Chars 1385 - 1389 [Qed.] 0. secs (0.u,0.s) +Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0. secs (0.u,0.s) +Chars 1912 - 1918 [Proof.] 0. secs (0.u,0.s) +Chars 1921 - 1934 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1937 - 1961 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 1964 - 1988 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) +Chars 1989 - 1993 [Qed.] 0. secs (0.u,0.s) +Chars 1995 - 2021 [#[local]~Opaque~bind~ret~eq1.] 0. secs (0.u,0.s) +Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0. secs (0.u,0.s) +Chars 2152 - 2158 [Proof.] 0. secs (0.u,0.s) +Chars 2161 - 2242 [compute;~intros~x;~destruct~x~...] 0.005 secs (0.004u,0.s) +Chars 2243 - 2247 [Qed.] 0.01 secs (0.009u,0.s) +Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0. secs (0.u,0.s) +Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) +Chars 2379 - 2460 [compute;~intros~x;~destruct~x~...] 0.003 secs (0.003u,0.s) +Chars 2461 - 2465 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2467 - 2523 [#[global]~Instance~CatAssoc_Kl...] 0. secs (0.u,0.s) +Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) +Chars 2533 - 2537 [red.] 0. secs (0.u,0.s) +Chars 2538 - 2559 [intros~a~b~c~d~f~g~h.] 0. secs (0.u,0.s) +Chars 2563 - 2587 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 2590 - 2594 [compute.] 0. secs (0.u,0.s) +Chars 2595 - 2604 [intros~x.] 0. secs (0.u,0.s) +Chars 2607 - 2632 [setoid_rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 2635 - 2647 [reflexivity.] 0. secs (0.u,0.s) +Chars 2648 - 2652 [Qed.] 0. secs (0.u,0.s) +Chars 2698 - 2750 [#[global]~Instance~CatIdL_Klei...] 0. secs (0.u,0.s) +Chars 2751 - 2757 [Proof.] 0. secs (0.u,0.s) +Chars 2760 - 2823 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) +Chars 2826 - 2845 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 2846 - 2858 [reflexivity.] 0. secs (0.u,0.s) +Chars 2859 - 2863 [Qed.] 0. secs (0.u,0.s) +Chars 2865 - 2917 [#[global]~Instance~CatIdR_Klei...] 0. secs (0.u,0.s) +Chars 2918 - 2924 [Proof.] 0. secs (0.u,0.s) +Chars 2927 - 2990 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) +Chars 2993 - 3012 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) +Chars 3015 - 3027 [reflexivity.] 0. secs (0.u,0.s) +Chars 3028 - 3032 [Qed.] 0. secs (0.u,0.s) +Chars 3034 - 3090 [#[global]~Instance~Category_Kl...] 0. secs (0.u,0.s) +Chars 3091 - 3097 [Proof.] 0. secs (0.u,0.s) +Chars 3100 - 3131 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 3132 - 3136 [Qed.] 0. secs (0.u,0.s) +Chars 3138 - 3209 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) +Chars 3217 - 3231 [intros~A~f~[].] 0. secs (0.u,0.s) +Chars 3232 - 3236 [Qed.] 0. secs (0.u,0.s) +Chars 3240 - 3374 [#[global]~Instance~Proper_case...] 0. secs (0.u,0.s) +Chars 3375 - 3381 [Proof.] 0. secs (0.u,0.s) +Chars 3384 - 3430 [repeat~intro;~destruct~(_~:~_~...] 0. secs (0.u,0.s) +Chars 3431 - 3435 [Qed.] 0. secs (0.u,0.s) +Chars 3528 - 3603 [#[global]~Instance~Proper_pure...] 0. secs (0.u,0.s) +Chars 3604 - 3610 [Proof.] 0. secs (0.u,0.s) +Chars 3613 - 3626 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3629 - 3641 [unfold~pure.] 0. secs (0.u,0.s) +Chars 3644 - 3672 [erewrite~(H~a);~reflexivity.] 0. secs (0.u,0.s) +Chars 3673 - 3677 [Qed.] 0. secs (0.u,0.s) +Chars 3679 - 3742 [Lemma~pure_id~{A~:~Type}~:~(id...] 0. secs (0.u,0.s) +Chars 3743 - 3749 [Proof.] 0. secs (0.u,0.s) +Chars 3752 - 3764 [reflexivity.] 0. secs (0.u,0.s) +Chars 3765 - 3769 [Qed.] 0. secs (0.u,0.s) +Chars 3771 - 3876 [Fact~compose_pure~{A}~{B}~{C}~...] 0. secs (0.u,0.s) +Chars 3877 - 3883 [Proof.] 0. secs (0.u,0.s) +Chars 3886 - 3895 [intros~a.] 0. secs (0.u,0.s) +Chars 3898 - 3928 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 3931 - 3950 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 3953 - 3965 [reflexivity.] 0. secs (0.u,0.s) +Chars 3966 - 3970 [Qed.] 0. secs (0.u,0.s) +Chars 3972 - 4106 [Fact~compose_pure_l~{A}~{B}~{C...] 0. secs (0.u,0.s) +Chars 4107 - 4113 [Proof.] 0. secs (0.u,0.s) +Chars 4116 - 4137 [rewrite~<-~cat_assoc.] 0. secs (0.u,0.s) +Chars 4140 - 4161 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) +Chars 4164 - 4176 [reflexivity.] 0. secs (0.u,0.s) +Chars 4177 - 4181 [Qed.] 0. secs (0.u,0.s) +Chars 4183 - 4317 [Fact~compose_pure_r~{A}~{B}~{C...] 0. secs (0.u,0.s) +Chars 4318 - 4324 [Proof.] 0. secs (0.u,0.s) +Chars 4327 - 4345 [rewrite~cat_assoc.] 0.013 secs (0.013u,0.s) +Chars 4348 - 4369 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) +Chars 4372 - 4384 [reflexivity.] 0. secs (0.u,0.s) +Chars 4385 - 4389 [Qed.] 0. secs (0.u,0.s) +Chars 4391 - 4493 [Fact~pure_cat~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) +Chars 4494 - 4500 [Proof.] 0. secs (0.u,0.s) +Chars 4503 - 4519 [intros;~intro~a.] 0. secs (0.u,0.s) +Chars 4522 - 4558 [unfold~pure,~pure,~cat,~Cat_Kl...] 0. secs (0.u,0.s) +Chars 4561 - 4580 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 4581 - 4593 [reflexivity.] 0. secs (0.u,0.s) +Chars 4594 - 4598 [Qed.] 0. secs (0.u,0.s) +Chars 4601 - 4700 [Fact~cat_pure~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) +Chars 4701 - 4707 [Proof.] 0. secs (0.u,0.s) +Chars 4710 - 4722 [reflexivity.] 0. secs (0.u,0.s) +Chars 4723 - 4727 [Qed.] 0. secs (0.u,0.s) +Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0. secs (0.u,0.s) +Chars 4787 - 4793 [Proof.] 0. secs (0.u,0.s) +Chars 4796 - 4819 [intros~[];~reflexivity.] 0. secs (0.u,0.s) +Chars 4820 - 4824 [Qed.] 0. secs (0.u,0.s) +Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) +Chars 4884 - 4890 [Proof.] 0. secs (0.u,0.s) +Chars 4891 - 4903 [reflexivity.] 0. secs (0.u,0.s) +Chars 4904 - 4908 [Qed.] 0. secs (0.u,0.s) +Chars 4910 - 4967 [Lemma~pure_inr~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) +Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) +Chars 4975 - 4987 [reflexivity.] 0. secs (0.u,0.s) +Chars 4988 - 4992 [Qed.] 0. secs (0.u,0.s) +Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.001 secs (0.001u,0.s) +Chars 5121 - 5127 [Proof.] 0. secs (0.u,0.s) +Chars 5130 - 5153 [intros~[];~reflexivity.] 0. secs (0.u,0.s) +Chars 5154 - 5158 [Qed.] 0. secs (0.u,0.s) +Chars 5251 - 5325 [Lemma~unit_l_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) +Chars 5326 - 5332 [Proof.] 0. secs (0.u,0.s) +Chars 5335 - 5348 [intros~[[]|~].] 0. secs (0.u,0.s) +Chars 5349 - 5361 [reflexivity.] 0. secs (0.u,0.s) +Chars 5362 - 5366 [Qed.] 0. secs (0.u,0.s) +Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) +Chars 5446 - 5452 [Proof.] 0. secs (0.u,0.s) +Chars 5455 - 5467 [reflexivity.] 0. secs (0.u,0.s) +Chars 5468 - 5472 [Qed.] 0. secs (0.u,0.s) +Chars 5474 - 5548 [Lemma~unit_r_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) +Chars 5549 - 5555 [Proof.] 0. secs (0.u,0.s) +Chars 5558 - 5571 [intros~[|~[]].] 0. secs (0.u,0.s) +Chars 5572 - 5584 [reflexivity.] 0. secs (0.u,0.s) +Chars 5585 - 5589 [Qed.] 0. secs (0.u,0.s) +Chars 5591 - 5668 [Lemma~unit_r'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) +Chars 5669 - 5675 [Proof.] 0. secs (0.u,0.s) +Chars 5678 - 5690 [reflexivity.] 0. secs (0.u,0.s) +Chars 5691 - 5695 [Qed.] 0. secs (0.u,0.s) +Chars 5733 - 5823 [Lemma~case_l~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) +Chars 5824 - 5830 [Proof.] 0. secs (0.u,0.s) +Chars 5833 - 5853 [rewrite~unit_l_pure.] 0.002 secs (0.002u,0.s) +Chars 5856 - 5868 [reflexivity.] 0. secs (0.u,0.s) +Chars 5869 - 5873 [Qed.] 0. secs (0.u,0.s) +Chars 5912 - 6016 [Lemma~case_l'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) +Chars 6017 - 6023 [Proof.] 0. secs (0.u,0.s) +Chars 6026 - 6047 [rewrite~unit_l'_pure.] 0.001 secs (0.001u,0.s) +Chars 6050 - 6056 [intro.] 0. secs (0.u,0.s) +Chars 6057 - 6087 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 6090 - 6122 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6123 - 6127 [Qed.] 0.001 secs (0.u,0.s) +Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) +Chars 6221 - 6227 [Proof.] 0. secs (0.u,0.s) +Chars 6230 - 6250 [rewrite~unit_r_pure.] 0.002 secs (0.002u,0.s) +Chars 6253 - 6265 [reflexivity.] 0. secs (0.u,0.s) +Chars 6266 - 6270 [Qed.] 0.001 secs (0.u,0.s) +Chars 6272 - 6376 [Lemma~case_r'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) +Chars 6377 - 6383 [Proof.] 0. secs (0.u,0.s) +Chars 6386 - 6407 [rewrite~unit_r'_pure.] 0.001 secs (0.001u,0.s) +Chars 6410 - 6416 [intro.] 0. secs (0.u,0.s) +Chars 6417 - 6447 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 6450 - 6482 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.u,0.s) +Chars 6483 - 6487 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.003 secs (0.002u,0.s) +Chars 6585 - 6591 [Proof.] 0. secs (0.u,0.s) +Chars 6594 - 6624 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 6627 - 6645 [rewrite~!cat_id_l.] 0.004 secs (0.003u,0.s) +Chars 6646 - 6668 [rewrite~<-~!case_pure.] 0.003 secs (0.002u,0.s) +Chars 6669 - 6694 [rewrite~<-~!compose_pure.] 0.008 secs (0.007u,0.s) +Chars 6695 - 6714 [rewrite~<-~pure_id.] 0.002 secs (0.002u,0.s) +Chars 6717 - 6735 [rewrite~!cat_id_l.] 0.002 secs (0.002u,0.s) +Chars 6739 - 6751 [reflexivity.] 0. secs (0.u,0.s) +Chars 6752 - 6756 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.002 secs (0.002u,0.s) +Chars 6848 - 6854 [Proof.] 0. secs (0.u,0.s) +Chars 6857 - 6887 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 6890 - 6939 [rewrite~!cat_id_l,~<-~case_pur...] 0.007 secs (0.007u,0.s) +Chars 6942 - 6954 [reflexivity.] 0. secs (0.u,0.s) +Chars 6955 - 6959 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6961 - 7023 [#[global]~Instance~Coproduct_K...] 0. secs (0.u,0.s) +Chars 7024 - 7030 [Proof.] 0. secs (0.u,0.s) +Chars 7033 - 7045 [constructor.] 0. secs (0.u,0.s) +Chars 7048 - 7049 [-] 0. secs (0.u,0.s) +Chars 7050 - 7067 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 7072 - 7097 [unfold~inl_,~Inl_Kleisli.] 0. secs (0.u,0.s) +Chars 7102 - 7119 [rewrite~pure_cat.] 0. secs (0.u,0.s) +Chars 7124 - 7136 [reflexivity.] 0. secs (0.u,0.s) +Chars 7139 - 7140 [-] 0. secs (0.u,0.s) +Chars 7141 - 7158 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 7163 - 7188 [unfold~inr_,~Inr_Kleisli.] 0. secs (0.u,0.s) +Chars 7193 - 7210 [rewrite~pure_cat.] 0. secs (0.u,0.s) +Chars 7215 - 7227 [reflexivity.] 0. secs (0.u,0.s) +Chars 7230 - 7231 [-] 0. secs (0.u,0.s) +Chars 7232 - 7266 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~y].] 0. secs (0.u,0.s) +Chars 7271 - 7272 [+] 0. secs (0.u,0.s) +Chars 7273 - 7304 [unfold~inl_,~Inl_Kleisli~in~Hf.] 0. secs (0.u,0.s) +Chars 7311 - 7334 [rewrite~pure_cat~in~Hf.] 0.001 secs (0.001u,0.s) +Chars 7341 - 7359 [specialize~(Hf~x).] 0. secs (0.u,0.s) +Chars 7360 - 7372 [simpl~in~Hf.] 0. secs (0.u,0.s) +Chars 7373 - 7384 [rewrite~Hf.] 0. secs (0.u,0.s) +Chars 7385 - 7397 [reflexivity.] 0. secs (0.u,0.s) +Chars 7402 - 7403 [+] 0. secs (0.u,0.s) +Chars 7404 - 7435 [unfold~inr_,~Inr_Kleisli~in~Hg.] 0. secs (0.u,0.s) +Chars 7442 - 7465 [rewrite~pure_cat~in~Hg.] 0.001 secs (0.001u,0.s) +Chars 7472 - 7490 [specialize~(Hg~y).] 0. secs (0.u,0.s) +Chars 7491 - 7503 [simpl~in~Hg.] 0. secs (0.u,0.s) +Chars 7504 - 7515 [rewrite~Hg.] 0. secs (0.u,0.s) +Chars 7516 - 7528 [reflexivity.] 0. secs (0.u,0.s) +Chars 7531 - 7532 [-] 0. secs (0.u,0.s) +Chars 7533 - 7551 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 7552 - 7556 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7558 - 7617 [#[global]~Instance~bimap_id_kl...] 0. secs (0.u,0.s) +Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) +Chars 7627 - 7666 [unfold~BimapId,~bimap,~Bimap_C...] 0. secs (0.u,0.s) +Chars 7669 - 7676 [intros.] 0. secs (0.u,0.s) +Chars 7679 - 7697 [rewrite~!cat_id_l.] 0.004 secs (0.004u,0.s) +Chars 7700 - 7744 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) +Chars 7747 - 7765 [rewrite~case_pure.] 0. secs (0.u,0.s) +Chars 7768 - 7834 [unfold~pure,~id_,~case_,~Case_...] 0. secs (0.u,0.s) +Chars 7837 - 7841 [red.] 0. secs (0.u,0.s) +Chars 7842 - 7848 [intro.] 0. secs (0.u,0.s) +Chars 7849 - 7874 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) +Chars 7875 - 7879 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0. secs (0.u,0.s) +Chars 8098 - 8104 [Proof.] 0. secs (0.u,0.s) +Chars 8109 - 8140 [intros~a1~b1~b2~c1~c2~f1~g1~g2.] 0. secs (0.u,0.s) +Chars 8145 - 8200 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) +Chars 8205 - 8216 [unfold~map.] 0. secs (0.u,0.s) +Chars 8217 - 8241 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.003 secs (0.003u,0.s) +Chars 8276 - 8288 [unfold~pure.] 0. secs (0.u,0.s) +Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 8316 - 8328 [reflexivity.] 0. secs (0.u,0.s) +Chars 8331 - 8335 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8339 - 8549 [Lemma~map_inr_case_kleisli~:~~...] 0.001 secs (0.001u,0.s) +Chars 8552 - 8558 [Proof.] 0. secs (0.u,0.s) +Chars 8563 - 8594 [intros~a2~b1~b2~c1~c2~f2~g1~g2.] 0. secs (0.u,0.s) +Chars 8599 - 8654 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) +Chars 8659 - 8670 [unfold~map.] 0. secs (0.u,0.s) +Chars 8671 - 8695 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8700 - 8725 [setoid_rewrite~bind_bind.] 0.002 secs (0.002u,0.s) +Chars 8730 - 8742 [unfold~pure.] 0. secs (0.u,0.s) +Chars 8743 - 8769 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 8770 - 8782 [reflexivity.] 0. secs (0.u,0.s) +Chars 8785 - 8789 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8792 - 8853 [#[global]~Instance~bimap_cat_k...] 0. secs (0.u,0.s) +Chars 8854 - 8860 [Proof.] 0. secs (0.u,0.s) +Chars 8863 - 8903 [unfold~BimapCat,~bimap,~Bimap_...] 0. secs (0.u,0.s) +Chars 8906 - 8913 [intros.] 0. secs (0.u,0.s) +Chars 8916 - 8960 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) +Chars 8963 - 8981 [rewrite~!cat_pure.] 0.021 secs (0.02u,0.s) +Chars 8982 - 9000 [rewrite~!cat_case.] 0.003 secs (0.003u,0.s) +Chars 9003 - 9032 [rewrite~map_inl_case_kleisli.] 0.002 secs (0.002u,0.s) +Chars 9035 - 9064 [rewrite~map_inr_case_kleisli.] 0.002 secs (0.002u,0.s) +Chars 9067 - 9079 [reflexivity.] 0. secs (0.u,0.s) +Chars 9080 - 9084 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0. secs (0.u,0.s) +Chars 9232 - 9238 [Proof.] 0. secs (0.u,0.s) +Chars 9241 - 9248 [intros.] 0. secs (0.u,0.s) +Chars 9251 - 9264 [repeat~intro.] 0. secs (0.u,0.s) +Chars 9267 - 9297 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 9300 - 9337 [unfold~case_,~Case_Kleisli,~ca...] 0. secs (0.u,0.s) +Chars 9340 - 9352 [destruct~a0.] 0. secs (0.u,0.s) +Chars 9355 - 9356 [-] 0. secs (0.u,0.s) +Chars 9357 - 9387 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) +Chars 9388 - 9398 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 9399 - 9411 [reflexivity.] 0. secs (0.u,0.s) +Chars 9414 - 9415 [-] 0. secs (0.u,0.s) +Chars 9416 - 9446 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) +Chars 9447 - 9458 [rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 9459 - 9471 [reflexivity.] 0. secs (0.u,0.s) +Chars 9472 - 9476 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0.001 secs (0.001u,0.s) +Chars 9541 - 9572 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9573 - 9577 [Qed.] 0. secs (0.u,0.s) +Chars 9579 - 9594 [End~BasicFacts.] 0.001 secs (0.001u,0.s) +Chars 9596 - 9769 [Notation~Proper_iter~m~a~b:=~~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryOps.v.timing b/theories/Basics/CategoryOps.v.timing new file mode 100644 index 00000000..2013e111 --- /dev/null +++ b/theories/Basics/CategoryOps.v.timing @@ -0,0 +1,126 @@ +Chars 1896 - 1918 [Module~Import~Carrier.] 0. secs (0.u,0.s) +Chars 2035 - 2091 [Notation~Hom~obj:=~(obj~->~obj...] 0. secs (0.u,0.s) +Chars 2803 - 2860 [Notation~binop~obj:=~(obj~->~o...] 0. secs (0.u,0.s) +Chars 2862 - 2874 [End~Carrier.] 0. secs (0.u,0.s) +Chars 2913 - 2937 [Declare~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 2938 - 2971 [Delimit~Scope~cat_scope~with~cat.] 0. secs (0.u,0.s) +Chars 3021 - 3036 [Section~CatOps.] 0. secs (0.u,0.s) +Chars 3038 - 3073 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 3195 - 3254 [Class~Eq2~:~Type~:=~~~~~eq2~:~...] 0. secs (0.u,0.s) +Chars 3330 - 3374 [Class~Id_~:~Type~:=~~~~~id_~:~...] 0. secs (0.u,0.s) +Chars 3603 - 3669 [Class~Cat~:~Type~:=~~~~~cat~:~...] 0. secs (0.u,0.s) +Chars 3768 - 3821 [Class~Initial~(i~:~obj)~:=~~~~...] 0. secs (0.u,0.s) +Chars 3919 - 3971 [Class~Terminal~(t~:~obj)~:=~~~...] 0. secs (0.u,0.s) +Chars 3973 - 4023 [Definition~op~:~Hom~obj~:=~fun...] 0. secs (0.u,0.s) +Chars 4025 - 4036 [End~CatOps.] 0. secs (0.u,0.s) +Chars 4038 - 4068 [Arguments~eq2~{obj~C~Eq2~a~b}.] 0. secs (0.u,0.s) +Chars 4069 - 4095 [Arguments~id_~{obj~C~Id_}.] 0. secs (0.u,0.s) +Chars 4096 - 4128 [Arguments~cat~{obj~C~Cat~a~b~c}.] 0. secs (0.u,0.s) +Chars 4129 - 4165 [Arguments~empty~{obj~C~i~Initi...] 0. secs (0.u,0.s) +Chars 4166 - 4201 [Arguments~one~{obj~C~t~Termina...] 0. secs (0.u,0.s) +Chars 4202 - 4223 [Arguments~op~{obj}~C.] 0. secs (0.u,0.s) +Chars 4247 - 4270 [Section~CocartesianOps.] 0. secs (0.u,0.s) +Chars 4272 - 4325 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 4724 - 4805 [Class~Bimap~:=~~~~~bimap~:~for...] 0. secs (0.u,0.s) +Chars 4933 - 5003 [Class~Case~:=~~~~~case_~:~fora...] 0. secs (0.u,0.s) +Chars 5047 - 5095 [Class~Inl~:=~~~~~inl_~:~forall...] 0. secs (0.u,0.s) +Chars 5140 - 5188 [Class~Inr~:=~~~~~inr_~:~forall...] 0. secs (0.u,0.s) +Chars 5891 - 5971 [Class~AssocR~:=~~~~~assoc_r~:~...] 0. secs (0.u,0.s) +Chars 5973 - 6053 [Class~AssocL~:=~~~~~assoc_l~:~...] 0. secs (0.u,0.s) +Chars 6076 - 6136 [Class~UnitL~(i~:~obj)~:=~~~~~u...] 0. secs (0.u,0.s) +Chars 6138 - 6200 [Class~UnitL'~(i~:~obj)~:=~~~~~...] 0. secs (0.u,0.s) +Chars 6202 - 6262 [Class~UnitR~(i~:~obj)~:=~~~~~u...] 0. secs (0.u,0.s) +Chars 6264 - 6326 [Class~UnitR'~(i~:~obj)~:=~~~~~...] 0. secs (0.u,0.s) +Chars 6420 - 6490 [Class~Pair~:=~~~~~pair_~:~fora...] 0. secs (0.u,0.s) +Chars 6535 - 6583 [Class~Fst~:=~~~~~fst_~:~forall...] 0. secs (0.u,0.s) +Chars 6629 - 6677 [Class~Snd~:=~~~~~snd_~:~forall...] 0. secs (0.u,0.s) +Chars 6701 - 6758 [Class~Swap~:=~~~~~swap~:~foral...] 0. secs (0.u,0.s) +Chars 6760 - 6779 [End~CocartesianOps.] 0. secs (0.u,0.s) +Chars 6781 - 6823 [Arguments~bimap~{obj~C~bif~Bim...] 0. secs (0.u,0.s) +Chars 6824 - 6863 [Arguments~case_~{obj~C~bif~Cas...] 0. secs (0.u,0.s) +Chars 6864 - 6899 [Arguments~inl_~{obj~C~bif~Inl~...] 0. secs (0.u,0.s) +Chars 6900 - 6935 [Arguments~inr_~{obj~C~bif~Inr~...] 0. secs (0.u,0.s) +Chars 6936 - 6975 [Arguments~pair_~{obj~C~bif~Pai...] 0. secs (0.u,0.s) +Chars 6976 - 7011 [Arguments~fst_~{obj~C~bif~Fst~...] 0. secs (0.u,0.s) +Chars 7012 - 7047 [Arguments~snd_~{obj~C~bif~Snd~...] 0. secs (0.u,0.s) +Chars 7048 - 7091 [Arguments~assoc_r~{obj~C~bif~A...] 0. secs (0.u,0.s) +Chars 7092 - 7135 [Arguments~assoc_l~{obj~C~bif~A...] 0. secs (0.u,0.s) +Chars 7136 - 7176 [Arguments~unit_l~{obj~C~bif~i~...] 0. secs (0.u,0.s) +Chars 7177 - 7218 [Arguments~unit_l'~{obj~C~bif~i...] 0. secs (0.u,0.s) +Chars 7219 - 7259 [Arguments~unit_r~{obj~C~bif~i~...] 0. secs (0.u,0.s) +Chars 7260 - 7301 [Arguments~unit_r'~{obj~C~bif~i...] 0. secs (0.u,0.s) +Chars 7302 - 7338 [Arguments~swap~{obj~C~bif~Swap...] 0. secs (0.u,0.s) +Chars 7484 - 7551 [Notation~assoc_r_~a~b~c:=~(@as...] 0. secs (0.u,0.s) +Chars 7552 - 7619 [Notation~assoc_l_~a~b~c:=~(@as...] 0. secs (0.u,0.s) +Chars 7620 - 7683 [Notation~unit_l_~i~a:=~(@unit_...] 0. secs (0.u,0.s) +Chars 7684 - 7747 [Notation~unit_l'_~i~a:=~(@unit...] 0. secs (0.u,0.s) +Chars 7748 - 7811 [Notation~unit_r_~i~a:=~(@unit_...] 0. secs (0.u,0.s) +Chars 7812 - 7875 [Notation~unit_r'_~i~a:=~(@unit...] 0. secs (0.u,0.s) +Chars 7876 - 7933 [Notation~swap_~a~b:=~(@swap~_~...] 0. secs (0.u,0.s) +Chars 7966 - 8027 [Notation~case__~C:=~(@case_~_~...] 0. secs (0.u,0.s) +Chars 8028 - 8089 [Notation~pair__~C:=~(@pair_~_~...] 0. secs (0.u,0.s) +Chars 8116 - 8143 [Module~Import~CatNotations.] 0. secs (0.u,0.s) +Chars 8145 - 8190 [Infix~"⩯"~:=~eq2~(~at~level~70...] 0. secs (0.u,0.s) +Chars 8191 - 8256 [Infix~">>>"~:=~cat~(~at~level~...] 0. secs (0.u,0.s) +Chars 8258 - 8275 [End~CatNotations.] 0. secs (0.u,0.s) +Chars 8277 - 8298 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) +Chars 8405 - 8592 [Definition~merge~{obj~:~Type}~...] 0. secs (0.u,0.s) +Chars 8726 - 8755 [Section~CocartesianConstruct.] 0. secs (0.u,0.s) +Chars 8757 - 8808 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 8809 - 8927 [Variables~(SUM~:~binop~obj)~(C...] 0. secs (0.u,0.s) +Chars 8963 - 9092 [#[global]~Instance~Bimap_Copro...] 0. secs (0.u,0.s) +Chars 9128 - 9207 [#[global]~Instance~Swap_Coprod...] 0. secs (0.u,0.s) +Chars 9245 - 9385 [#[global]~Instance~AssocR_Copr...] 0.001 secs (0.001u,0.s) +Chars 9387 - 9527 [#[global]~Instance~AssocL_Copr...] 0.001 secs (0.001u,0.s) +Chars 9529 - 9590 [Variables~(Id_C~:~Id_~C)~(I~:~...] 0. secs (0.u,0.s) +Chars 9648 - 9733 [#[global]~Instance~UnitL_Copro...] 0. secs (0.u,0.s) +Chars 9735 - 9807 [#[global]~Instance~UnitL'_Copr...] 0. secs (0.u,0.s) +Chars 9809 - 9894 [#[global]~Instance~UnitR_Copro...] 0. secs (0.u,0.s) +Chars 9896 - 9968 [#[global]~Instance~UnitR'_Copr...] 0. secs (0.u,0.s) +Chars 9970 - 9995 [End~CocartesianConstruct.] 0. secs (0.u,0.s) +Chars 10122 - 10149 [Section~CartesianConstruct.] 0. secs (0.u,0.s) +Chars 10309 - 10360 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 10361 - 10484 [Variables~(PROD~:~binop~obj)~(...] 0. secs (0.u,0.s) +Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0. secs (0.u,0.s) +Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0. secs (0.u,0.s) +Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.001 secs (0.001u,0.s) +Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.001 secs (0.001u,0.s) +Chars 11032 - 11095 [Variables~(Id_C~:~Id_~C)~(T~:~...] 0. secs (0.u,0.s) +Chars 11151 - 11219 [#[local]~Instance~UnitL_Produc...] 0. secs (0.u,0.s) +Chars 11221 - 11304 [#[local]~Instance~UnitL'_Produ...] 0. secs (0.u,0.s) +Chars 11306 - 11374 [#[local]~Instance~UnitR_Produc...] 0. secs (0.u,0.s) +Chars 11376 - 11459 [#[local]~Instance~UnitR'_Produ...] 0. secs (0.u,0.s) +Chars 11461 - 11484 [End~CartesianConstruct.] 0. secs (0.u,0.s) +Chars 11608 - 11632 [Section~CartesianClosed.] 0. secs (0.u,0.s) +Chars 11635 - 11737 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 11908 - 11978 [Class~Apply~:~Type~:=~~~~~appl...] 0. secs (0.u,0.s) +Chars 11982 - 12063 [Class~Curry~:~Type~:=~~~~~curr...] 0. secs (0.u,0.s) +Chars 12065 - 12085 [End~CartesianClosed.] 0. secs (0.u,0.s) +Chars 12087 - 12127 [Arguments~apply_~{obj~C~PROD~E...] 0. secs (0.u,0.s) +Chars 12128 - 12170 [Arguments~curry_~{obj~C~PROD~E...] 0. secs (0.u,0.s) +Chars 12174 - 12189 [Section~Dagger.] 0. secs (0.u,0.s) +Chars 12192 - 12227 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 12231 - 12297 [Class~Dagger~:~Type~:=~~~~~dag...] 0. secs (0.u,0.s) +Chars 12299 - 12310 [End~Dagger.] 0. secs (0.u,0.s) +Chars 12312 - 12343 [Arguments~dagger~{obj~C~_~a~b}.] 0. secs (0.u,0.s) +Chars 12380 - 12398 [Section~Iteration.] 0. secs (0.u,0.s) +Chars 12400 - 12435 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 12436 - 12464 [Variable~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 12689 - 12754 [Class~Iter~:~Type~:=~~~~~iter~...] 0. secs (0.u,0.s) +Chars 12756 - 12893 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) +Chars 12951 - 13075 [Definition~loop~(a~b~c~:~obj)~...] 0.001 secs (0.u,0.s) +Chars 13362 - 13376 [End~Iteration.] 0. secs (0.u,0.s) +Chars 13378 - 13411 [Arguments~iter~{obj~C~bif~_~a~b}.] 0. secs (0.u,0.s) +Chars 13412 - 13457 [Arguments~loop~{obj~C~bif~_~_~...] 0. secs (0.u,0.s) +Chars 13509 - 13523 [Section~RESUM.] 0. secs (0.u,0.s) +Chars 13525 - 13578 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 13579 - 13609 [Context~`{Id_~_~C}~`{Cat~_~C}.] 0. secs (0.u,0.s) +Chars 13610 - 13664 [Context~`{Case~_~C~bif}~`{Inl~...] 0. secs (0.u,0.s) +Chars 13666 - 13709 [Class~ReSum~(a~b~:~obj)~:=~~~~...] 0. secs (0.u,0.s) +Chars 13953 - 14028 [#[global]~Instance~ReSum_id~~`...] 0. secs (0.u,0.s) +Chars 14029 - 14155 [#[global]~Instance~ReSum_sum~~...] 0. secs (0.u,0.s) +Chars 14156 - 14261 [#[global]~Instance~ReSum_inl~~...] 0. secs (0.u,0.s) +Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0. secs (0.u,0.s) +Chars 14368 - 14464 [#[global]~Instance~ReSum_empty...] 0. secs (0.u,0.s) +Chars 14776 - 14786 [End~RESUM.] 0. secs (0.u,0.s) +Chars 14788 - 14844 [#[global]~Hint~Mode~ReSum~!~!~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryRelations.v.timing b/theories/Basics/CategoryRelations.v.timing new file mode 100644 index 00000000..b79b5006 --- /dev/null +++ b/theories/Basics/CategoryRelations.v.timing @@ -0,0 +1,430 @@ +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.006s) +Chars 378 - 397 [Section~Operations.] 0. secs (0.u,0.s) +Chars 401 - 421 [Import~RelNotations.] 0. secs (0.u,0.s) +Chars 424 - 457 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) +Chars 606 - 657 [#[global]~Instance~Eq2_rel~:~(...] 0. secs (0.u,0.s) +Chars 858 - 934 [#[global]~Instance~Cat_rel~:~(...] 0. secs (0.u,0.s) +Chars 991 - 1037 [#[global]~Instance~Id_rel~:~(I...] 0. secs (0.u,0.s) +Chars 1089 - 1184 [#[global]~Instance~Initial_rel...] 0. secs (0.u,0.s) +Chars 1268 - 1357 [#[global]~Instance~Case_rel~:~...] 0. secs (0.u,0.s) +Chars 1361 - 1435 [#[global]~Instance~Inl_rel~:~(...] 0. secs (0.u,0.s) +Chars 1439 - 1513 [#[global]~Instance~Inr_rel~:~(...] 0. secs (0.u,0.s) +Chars 1596 - 1695 [#[global]~Instance~Pair_rel~:~...] 0. secs (0.u,0.s) +Chars 1699 - 1775 [#[global]~Instance~Fst_rel~:~(...] 0. secs (0.u,0.s) +Chars 1779 - 1855 [#[global]~Instance~Snd_rel~:~(...] 0. secs (0.u,0.s) +Chars 2614 - 2709 [#[global]~Instance~Bimap_sum_r...] 0. secs (0.u,0.s) +Chars 2713 - 3006 [#[global]~Instance~AssocR_sum~...] 0. secs (0.u,0.s) +Chars 3010 - 3303 [#[global]~Instance~AssocL_sum~...] 0. secs (0.u,0.s) +Chars 3307 - 3498 [#[global]~Instance~UnitL_sum~:...] 0. secs (0.u,0.s) +Chars 3502 - 3693 [#[global]~Instance~UnitR_sum~:...] 0. secs (0.u,0.s) +Chars 3697 - 3892 [#[global]~Instance~UnitL'_sum~...] 0. secs (0.u,0.s) +Chars 3896 - 4091 [#[global]~Instance~UnitR'_sum~...] 0. secs (0.u,0.s) +Chars 4095 - 4192 [#[global]~Instance~Bimap_prod_...] 0. secs (0.u,0.s) +Chars 4196 - 4318 [#[global]~Instance~AssocR_prod...] 0. secs (0.u,0.s) +Chars 4322 - 4444 [#[global]~Instance~AssocL_prod...] 0. secs (0.u,0.s) +Chars 4448 - 4537 [#[global]~Instance~UnitL_prod~...] 0. secs (0.u,0.s) +Chars 4541 - 4629 [#[global]~Instance~UnitR_prod~...] 0. secs (0.u,0.s) +Chars 4633 - 4723 [#[global]~Instance~UnitL'_prod...] 0. secs (0.u,0.s) +Chars 4727 - 4817 [#[global]~Instance~UnitR'_prod...] 0. secs (0.u,0.s) +Chars 4882 - 4961 [#[global]~Instance~Dagger_rel~...] 0. secs (0.u,0.s) +Chars 4963 - 4978 [End~Operations.] 0.001 secs (0.001u,0.s) +Chars 5097 - 5111 [Section~Facts.] 0. secs (0.u,0.s) +Chars 5115 - 5135 [Section~CategoryRel.] 0. secs (0.u,0.s) +Chars 5141 - 5186 [#[global]~Instance~CatIdL_rel~...] 0. secs (0.u,0.s) +Chars 5191 - 5197 [Proof.] 0. secs (0.u,0.s) +Chars 5204 - 5301 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 5308 - 5309 [-] 0. secs (0.u,0.s) +Chars 5310 - 5339 [edestruct~H~as~(B',~(EQ,~R)).] 0. secs (0.u,0.s) +Chars 5340 - 5359 [rewrite~<-~EQ~in~R.] 0. secs (0.u,0.s) +Chars 5368 - 5379 [assumption.] 0. secs (0.u,0.s) +Chars 5386 - 5387 [-] 0. secs (0.u,0.s) +Chars 5388 - 5397 [exists~x.] 0. secs (0.u,0.s) +Chars 5398 - 5404 [split.] 0. secs (0.u,0.s) +Chars 5405 - 5417 [reflexivity.] 0. secs (0.u,0.s) +Chars 5418 - 5429 [assumption.] 0. secs (0.u,0.s) +Chars 5434 - 5438 [Qed.] 0. secs (0.u,0.s) +Chars 5444 - 5489 [#[global]~Instance~CatIdR_rel~...] 0.011 secs (0.011u,0.s) +Chars 5494 - 5500 [Proof.] 0. secs (0.u,0.s) +Chars 5507 - 5604 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 5611 - 5612 [-] 0. secs (0.u,0.s) +Chars 5613 - 5642 [edestruct~H~as~(B',~(R,~EQ)).] 0. secs (0.u,0.s) +Chars 5643 - 5659 [rewrite~EQ~in~R.] 0. secs (0.u,0.s) +Chars 5668 - 5679 [assumption.] 0. secs (0.u,0.s) +Chars 5686 - 5687 [-] 0. secs (0.u,0.s) +Chars 5688 - 5697 [exists~y.] 0. secs (0.u,0.s) +Chars 5698 - 5704 [split.] 0. secs (0.u,0.s) +Chars 5705 - 5716 [assumption.] 0. secs (0.u,0.s) +Chars 5717 - 5729 [reflexivity.] 0. secs (0.u,0.s) +Chars 5734 - 5738 [Qed.] 0. secs (0.u,0.s) +Chars 5744 - 5793 [#[global]~Instance~CatAssoc_re...] 0. secs (0.u,0.s) +Chars 5798 - 5804 [Proof.] 0. secs (0.u,0.s) +Chars 5811 - 5922 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 5929 - 5930 [-] 0. secs (0.u,0.s) +Chars 5931 - 5980 [edestruct~H~as~(C,~((B,~(Rf,~R...] 0. secs (0.u,0.s) +Chars 5989 - 5998 [exists~B.] 0. secs (0.u,0.s) +Chars 5999 - 6022 [split;~[~assumption~|~~].] 0. secs (0.u,0.s) +Chars 6031 - 6040 [exists~C.] 0. secs (0.u,0.s) +Chars 6041 - 6059 [split;~assumption.] 0. secs (0.u,0.s) +Chars 6066 - 6067 [-] 0. secs (0.u,0.s) +Chars 6068 - 6117 [edestruct~H~as~(B,~(Rf,~(C,~(R...] 0. secs (0.u,0.s) +Chars 6126 - 6135 [exists~C.] 0. secs (0.u,0.s) +Chars 6136 - 6159 [split;~[~~|~assumption~].] 0. secs (0.u,0.s) +Chars 6168 - 6196 [exists~B;~split;~assumption.] 0. secs (0.u,0.s) +Chars 6201 - 6205 [Qed.] 0. secs (0.u,0.s) +Chars 6211 - 6364 [#[global]~Instance~ProperCat_r...] 0. secs (0.u,0.s) +Chars 6369 - 6375 [Proof.] 0. secs (0.u,0.s) +Chars 6382 - 6395 [intros~a~b~c.] 0. secs (0.u,0.s) +Chars 6402 - 6514 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 6521 - 6522 [-] 0. secs (0.u,0.s) +Chars 6523 - 6554 [edestruct~He~as~(B,~(Hx,~Hx0)).] 0. secs (0.u,0.s) +Chars 6563 - 6610 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) +Chars 6619 - 6634 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 6643 - 6652 [exists~B.] 0. secs (0.u,0.s) +Chars 6653 - 6659 [split.] 0. secs (0.u,0.s) +Chars 6660 - 6682 [specialize~(H~A~B~Hx).] 0. secs (0.u,0.s) +Chars 6683 - 6694 [assumption.] 0. secs (0.u,0.s) +Chars 6703 - 6727 [specialize~(H0~_~_~Hx0).] 0. secs (0.u,0.s) +Chars 6728 - 6739 [assumption.] 0. secs (0.u,0.s) +Chars 6746 - 6747 [-] 0. secs (0.u,0.s) +Chars 6748 - 6779 [edestruct~He~as~(B,~(Hy,~Hy0)).] 0. secs (0.u,0.s) +Chars 6788 - 6835 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) +Chars 6844 - 6859 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 6868 - 6877 [exists~B.] 0. secs (0.u,0.s) +Chars 6878 - 6884 [split.] 0. secs (0.u,0.s) +Chars 6885 - 6908 [specialize~(H1~_~_~Hy).] 0. secs (0.u,0.s) +Chars 6909 - 6920 [assumption.] 0. secs (0.u,0.s) +Chars 6929 - 6953 [specialize~(H2~_~_~Hy0).] 0. secs (0.u,0.s) +Chars 6954 - 6965 [assumption.] 0. secs (0.u,0.s) +Chars 6970 - 6974 [Qed.] 0. secs (0.u,0.s) +Chars 6980 - 7030 [#[global]~Instance~Category_re...] 0. secs (0.u,0.s) +Chars 7035 - 7041 [Proof.] 0. secs (0.u,0.s) +Chars 7048 - 7079 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 7084 - 7088 [Qed.] 0. secs (0.u,0.s) +Chars 7092 - 7108 [End~CategoryRel.] 0. secs (0.u,0.s) +Chars 7112 - 7177 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 7180 - 7186 [Proof.] 0. secs (0.u,0.s) +Chars 7191 - 7208 [split;~intros~[].] 0. secs (0.u,0.s) +Chars 7211 - 7215 [Qed.] 0. secs (0.u,0.s) +Chars 7219 - 7240 [Section~CoproductRel.] 0. secs (0.u,0.s) +Chars 7246 - 7298 [#[global]~Instance~CaseInl_rel...] 0. secs (0.u,0.s) +Chars 7303 - 7309 [Proof.] 0. secs (0.u,0.s) +Chars 7316 - 7322 [split.] 0. secs (0.u,0.s) +Chars 7329 - 7384 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) +Chars 7391 - 7404 [intros~x~?~?.] 0. secs (0.u,0.s) +Chars 7411 - 7452 [exists~(inl~x);~split;~auto;~r...] 0. secs (0.u,0.s) +Chars 7457 - 7461 [Qed.] 0. secs (0.u,0.s) +Chars 7467 - 7519 [#[global]~Instance~CaseInr_rel...] 0. secs (0.u,0.s) +Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) +Chars 7537 - 7543 [split.] 0. secs (0.u,0.s) +Chars 7550 - 7605 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) +Chars 7612 - 7625 [intros~x~?~?.] 0. secs (0.u,0.s) +Chars 7632 - 7673 [exists~(inr~x);~split;~auto;~r...] 0. secs (0.u,0.s) +Chars 7678 - 7682 [Qed.] 0. secs (0.u,0.s) +Chars 7688 - 7752 [#[global]~Instance~CaseUnivers...] 0. secs (0.u,0.s) +Chars 7757 - 7763 [Proof.] 0. secs (0.u,0.s) +Chars 7770 - 7805 [intros~a~b~c~R~S~T~[TR~RT]~[TS...] 0. secs (0.u,0.s) +Chars 7812 - 7818 [split.] 0. secs (0.u,0.s) +Chars 7825 - 7903 [intros~[]~?~?;~cbn;~[~apply~TR...] 0. secs (0.u,0.s) +Chars 7910 - 8026 [intros~[]~?~HR;~[~apply~RT~in~...] 0. secs (0.u,0.s) +Chars 8031 - 8035 [Qed.] 0. secs (0.u,0.s) +Chars 8041 - 8148 [#[global]~Instance~Proper_Case...] 0. secs (0.u,0.s) +Chars 8153 - 8159 [Proof.] 0. secs (0.u,0.s) +Chars 8166 - 8294 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) +Chars 8299 - 8303 [Qed.] 0. secs (0.u,0.s) +Chars 8309 - 8365 [#[global]~Instance~Coproduct_r...] 0. secs (0.u,0.s) +Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) +Chars 8383 - 8414 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 8419 - 8423 [Qed.] 0. secs (0.u,0.s) +Chars 8427 - 8444 [End~CoproductRel.] 0. secs (0.u,0.s) +Chars 8448 - 8467 [Section~ProductRel.] 0. secs (0.u,0.s) +Chars 8473 - 8525 [#[global]~Instance~PairFst_rel...] 0. secs (0.u,0.s) +Chars 8530 - 8536 [Proof.] 0. secs (0.u,0.s) +Chars 8543 - 8549 [split.] 0. secs (0.u,0.s) +Chars 8556 - 8557 [-] 0. secs (0.u,0.s) +Chars 8558 - 8610 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) +Chars 8617 - 8618 [-] 0. secs (0.u,0.s) +Chars 8619 - 8632 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 8641 - 8667 [exists~(inl~y);~compute;~auto.] 0. secs (0.u,0.s) +Chars 8672 - 8676 [Qed.] 0. secs (0.u,0.s) +Chars 8682 - 8734 [#[global]~Instance~PairSnd_rel...] 0. secs (0.u,0.s) +Chars 8739 - 8745 [Proof.] 0. secs (0.u,0.s) +Chars 8752 - 8758 [split.] 0. secs (0.u,0.s) +Chars 8765 - 8766 [-] 0. secs (0.u,0.s) +Chars 8767 - 8819 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) +Chars 8826 - 8827 [-] 0. secs (0.u,0.s) +Chars 8828 - 8841 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 8850 - 8876 [exists~(inr~y);~compute;~auto.] 0. secs (0.u,0.s) +Chars 8881 - 8885 [Qed.] 0. secs (0.u,0.s) +Chars 8891 - 8955 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) +Chars 8960 - 8966 [Proof.] 0. secs (0.u,0.s) +Chars 8973 - 9020 [intros~?~?~?~R~S~RS~[RSR~RRS]~...] 0. secs (0.u,0.s) +Chars 9027 - 9028 [-] 0. secs (0.u,0.s) +Chars 9029 - 9033 [compute.] 0. secs (0.u,0.s) +Chars 9034 - 9129 [intros~?~[]~?;~[~apply~RSR~|~a...] 0. secs (0.u,0.s) +Chars 9136 - 9137 [-] 0. secs (0.u,0.s) +Chars 9138 - 9142 [compute.] 0. secs (0.u,0.s) +Chars 9143 - 9265 [intros~?~[]~EQ;~[~apply~RRS~in...] 0.001 secs (0.001u,0.s) +Chars 9270 - 9274 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9280 - 9387 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) +Chars 9392 - 9398 [Proof.] 0. secs (0.u,0.s) +Chars 9405 - 9449 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) +Chars 9456 - 9504 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) +Chars 9511 - 9559 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) +Chars 9564 - 9568 [Qed.] 0. secs (0.u,0.s) +Chars 9574 - 9626 [#[global]~Instance~Product_rel...] 0. secs (0.u,0.s) +Chars 9631 - 9637 [Proof.] 0. secs (0.u,0.s) +Chars 9644 - 9675 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9680 - 9684 [Qed.] 0. secs (0.u,0.s) +Chars 9688 - 9703 [End~ProductRel.] 0. secs (0.u,0.s) +Chars 9707 - 9725 [Section~DaggerRel.] 0. secs (0.u,0.s) +Chars 9731 - 9797 [#[global]~Instance~DaggerInvol...] 0.023 secs (0.022u,0.s) +Chars 9802 - 9808 [Proof.] 0. secs (0.u,0.s) +Chars 9815 - 9844 [split;~intros~?~?~H;~apply~H.] 0. secs (0.u,0.s) +Chars 9849 - 9853 [Qed.] 0. secs (0.u,0.s) +Chars 9859 - 9890 [#[local]~Existing~Instance~Eq2...] 0. secs (0.u,0.s) +Chars 9895 - 9925 [#[local]~Existing~Instance~Id_Op.] 0. secs (0.u,0.s) +Chars 9930 - 9961 [#[local]~Existing~Instance~Cat...] 0. secs (0.u,0.s) +Chars 9967 - 10055 [#[global]~Instance~DaggerFunct...] 0. secs (0.u,0.s) +Chars 10060 - 10066 [Proof.] 0. secs (0.u,0.s) +Chars 10073 - 10085 [constructor.] 0. secs (0.u,0.s) +Chars 10092 - 10093 [-] 0. secs (0.u,0.s) +Chars 10094 - 10147 [split;~intros~?~?~H;~inversion...] 0. secs (0.u,0.s) +Chars 10154 - 10155 [-] 0. secs (0.u,0.s) +Chars 10156 - 10202 [split;~intros~?~?~(?,~(?,~?));...] 0. secs (0.u,0.s) +Chars 10209 - 10210 [-] 0. secs (0.u,0.s) +Chars 10211 - 10240 [intros~a~b~x~y~[INCL1~INCL2].] 0. secs (0.u,0.s) +Chars 10249 - 10307 [split;~intros~?~?~H;~[~apply~I...] 0. secs (0.u,0.s) +Chars 10312 - 10316 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10322 - 10376 [#[global]~Instance~DaggerLaws_...] 0. secs (0.u,0.s) +Chars 10381 - 10387 [Proof.] 0. secs (0.u,0.s) +Chars 10394 - 10425 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 10430 - 10434 [Qed.] 0. secs (0.u,0.s) +Chars 10438 - 10452 [End~DaggerRel.] 0. secs (0.u,0.s) +Chars 10456 - 10478 [Section~BifunctorProd.] 0. secs (0.u,0.s) +Chars 10484 - 10542 [#[global]~Instance~BimapId_pro...] 0. secs (0.u,0.s) +Chars 10547 - 10553 [Proof.] 0. secs (0.u,0.s) +Chars 10560 - 10566 [split.] 0. secs (0.u,0.s) +Chars 10573 - 10574 [-] 0. secs (0.u,0.s) +Chars 10575 - 10606 [compute;~intros~?~?~?;~subst;~...] 0. secs (0.u,0.s) +Chars 10615 - 10629 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 10638 - 10650 [compute;~intros.] 0. secs (0.u,0.s) +Chars 10651 - 10685 [destruct~H;~cbn~in~*;~subst;~a...] 0. secs (0.u,0.s) +Chars 10692 - 10693 [-] 0. secs (0.u,0.s) +Chars 10694 - 10698 [compute.] 0. secs (0.u,0.s) +Chars 10699 - 10720 [intros~[?~?]~[?~?]~H.] 0. secs (0.u,0.s) +Chars 10721 - 10733 [inversion~H.] 0. secs (0.u,0.s) +Chars 10734 - 10740 [subst.] 0. secs (0.u,0.s) +Chars 10741 - 10760 [repeat~constructor.] 0. secs (0.u,0.s) +Chars 10765 - 10769 [Qed.] 0. secs (0.u,0.s) +Chars 10775 - 10835 [#[global]~Instance~BimapCat_pr...] 0. secs (0.u,0.s) +Chars 10840 - 10846 [Proof.] 0. secs (0.u,0.s) +Chars 10853 - 10859 [split.] 0. secs (0.u,0.s) +Chars 10866 - 10867 [-] 0. secs (0.u,0.s) +Chars 10868 - 10901 [compute;~intros~[]~[]~([],~(H1...] 0. secs (0.u,0.s) +Chars 10910 - 10934 [inv~H1;~inv~H2;~eauto~~6.] 0.001 secs (0.001u,0.s) +Chars 10941 - 10942 [-] 0. secs (0.u,0.s) +Chars 10943 - 10963 [compute;~intros~[]~[]~H.] 0. secs (0.u,0.s) +Chars 10964 - 11004 [destruct~H~as~[(?,~(?,~?))~(?,...] 0. secs (0.u,0.s) +Chars 11013 - 11045 [cbn~in~*;~eexists~(_,~_);~eauto.] 0. secs (0.u,0.s) +Chars 11050 - 11054 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11060 - 11122 [#[global]~Instance~Bifunctor_p...] 0. secs (0.u,0.s) +Chars 11127 - 11133 [Proof.] 0. secs (0.u,0.s) +Chars 11140 - 11175 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) +Chars 11180 - 11184 [Qed.] 0. secs (0.u,0.s) +Chars 11190 - 11306 [#[global]~Instance~Iso_Assoc_p...] 0. secs (0.u,0.s) +Chars 11311 - 11317 [Proof.] 0. secs (0.u,0.s) +Chars 11324 - 11330 [split.] 0. secs (0.u,0.s) +Chars 11337 - 11338 [-] 0. secs (0.u,0.s) +Chars 11339 - 11350 [compute;~split.] 0. secs (0.u,0.s) +Chars 11359 - 11360 [+] 0. secs (0.u,0.s) +Chars 11361 - 11397 [intros~?~?~?;~repeat~destructn...] 0. secs (0.u,0.s) +Chars 11408 - 11479 [destructn~ex;~repeat~destructn...] 0.001 secs (0.001u,0.s) +Chars 11488 - 11489 [+] 0. secs (0.u,0.s) +Chars 11490 - 11536 [intros~((?,~?),~?)~((x,~y),~z)...] 0.001 secs (0.001u,0.s) +Chars 11547 - 11575 [exists~(x,~(y,~z));~intuition.] 0. secs (0.u,0.s) +Chars 11582 - 11583 [-] 0. secs (0.u,0.s) +Chars 11584 - 11595 [compute;~split.] 0. secs (0.u,0.s) +Chars 11604 - 11605 [+] 0. secs (0.u,0.s) +Chars 11606 - 11679 [intros~?~?~?;~destructn~ex;~re...] 0.003 secs (0.003u,0.s) +Chars 11688 - 11689 [+] 0. secs (0.u,0.s) +Chars 11690 - 11737 [intros~?~(x,~(y,~z))~->;~repea...] 0. secs (0.u,0.s) +Chars 11748 - 11774 [exists~(x,~y,~z);~intuition.] 0. secs (0.u,0.s) +Chars 11779 - 11783 [Qed.] 0.006 secs (0.005u,0.s) +Chars 11789 - 11897 [#[global]~Instance~Iso_UnitL_p...] 0. secs (0.u,0.s) +Chars 11902 - 11908 [Proof.] 0. secs (0.u,0.s) +Chars 11915 - 12044 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) +Chars 12051 - 12070 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 12077 - 12097 [exists~(tt,~y);~auto.] 0. secs (0.u,0.s) +Chars 12102 - 12106 [Qed.] 0.001 secs (0.u,0.s) +Chars 12112 - 12220 [#[global]~Instance~Iso_UnitR_p...] 0. secs (0.u,0.s) +Chars 12225 - 12231 [Proof.] 0. secs (0.u,0.s) +Chars 12238 - 12367 [split;~compute;~split;~intros;...] 0.002 secs (0.001u,0.s) +Chars 12374 - 12393 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 12400 - 12420 [exists~(y,~tt);~auto.] 0. secs (0.u,0.s) +Chars 12425 - 12429 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12435 - 12508 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) +Chars 12513 - 12519 [Proof.] 0. secs (0.u,0.s) +Chars 12526 - 12696 [split;~compute;~intros;~~repea...] 0.002 secs (0.002u,0.s) +Chars 12703 - 12704 [-] 0. secs (0.u,0.s) +Chars 12705 - 12737 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 12744 - 12745 [-] 0. secs (0.u,0.s) +Chars 12746 - 12810 [eexists~(_,~_);~constructor;~[...] 0. secs (0.u,0.s) +Chars 12815 - 12819 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12825 - 12900 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) +Chars 12905 - 12911 [Proof.] 0. secs (0.u,0.s) +Chars 12918 - 13076 [split;~compute;~intros;~~repea...] 0.004 secs (0.003u,0.s) +Chars 13083 - 13115 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 13122 - 13159 [exists~(tt,~x);~intuition~subs...] 0. secs (0.u,0.s) +Chars 13164 - 13168 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13174 - 13243 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) +Chars 13248 - 13254 [Proof.] 0. secs (0.u,0.s) +Chars 13261 - 13293 [split;~compute;~intros~[[?~?]~...] 0.001 secs (0.001u,0.s) +Chars 13300 - 13301 [-] 0. secs (0.u,0.s) +Chars 13302 - 13325 [intros~[[?~[]]~[?~[]]].] 0. secs (0.u,0.s) +Chars 13326 - 13336 [intuition.] 0.001 secs (0.001u,0.s) +Chars 13337 - 13353 [cbn~in~*;~subst.] 0. secs (0.u,0.s) +Chars 13354 - 13377 [constructor;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 13384 - 13385 [-] 0. secs (0.u,0.s) +Chars 13386 - 13417 [intros~[];~eexists~(_,~(u,~_)).] 0. secs (0.u,0.s) +Chars 13418 - 13428 [intuition.] 0. secs (0.u,0.s) +Chars 13433 - 13437 [Qed.] 0.002 secs (0.002u,0.s) +Chars 13439 - 13884 [Ltac~~decomp~:=~~~repeat~~~~la...] 0. secs (0.u,0.s) +Chars 13890 - 13958 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) +Chars 13963 - 13969 [Proof.] 0. secs (0.u,0.s) +Chars 13976 - 13995 [split;~compute;~decomp.] 0.011 secs (0.011u,0.s) +Chars 14002 - 14003 [-] 0. secs (0.u,0.s) +Chars 14004 - 14027 [eexists~(_,~_,~(_,~_)).] 0. secs (0.u,0.s) +Chars 14028 - 14050 [firstorder~~congruence.] 0. secs (0.u,0.s) +Chars 14057 - 14058 [-] 0. secs (0.u,0.s) +Chars 14059 - 14094 [eexists~(_,~(_,~_,~_));~firsto...] 0.001 secs (0.001u,0.s) +Chars 14095 - 14118 [eexists~(_,~(_,~_),~_).] 0. secs (0.u,0.s) +Chars 14119 - 14148 [firstorder~~(cbn;~congruence).] 0.001 secs (0.001u,0.s) +Chars 14153 - 14157 [Qed.] 0.015 secs (0.015u,0.s) +Chars 14163 - 14228 [#[global]~Instance~Monoidal_pr...] 0. secs (0.u,0.s) +Chars 14233 - 14239 [Proof.] 0. secs (0.u,0.s) +Chars 14246 - 14277 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 14282 - 14286 [Qed.] 0. secs (0.u,0.s) +Chars 14290 - 14308 [End~BifunctorProd.] 0. secs (0.u,0.s) +Chars 14312 - 14333 [Section~BifunctorSum.] 0. secs (0.u,0.s) +Chars 14339 - 14395 [#[global]~Instance~BimapId_sum...] 0. secs (0.u,0.s) +Chars 14400 - 14406 [Proof.] 0. secs (0.u,0.s) +Chars 14413 - 14419 [split.] 0. secs (0.u,0.s) +Chars 14426 - 14430 [red.] 0. secs (0.u,0.s) +Chars 14431 - 14444 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 14445 - 14461 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 14468 - 14527 [destruct~x,~y;~subst;~inversio...] 0.002 secs (0.002u,0.s) +Chars 14534 - 14580 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) +Chars 14587 - 14633 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) +Chars 14640 - 14644 [red.] 0. secs (0.u,0.s) +Chars 14645 - 14658 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 14659 - 14675 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 14682 - 14688 [subst.] 0. secs (0.u,0.s) +Chars 14689 - 14700 [repeat~red.] 0. secs (0.u,0.s) +Chars 14701 - 14739 [destruct~y;~econstructor;~refl...] 0. secs (0.u,0.s) +Chars 14744 - 14748 [Qed.] 0.003 secs (0.003u,0.s) +Chars 14754 - 14812 [#[global]~Instance~BimapCat_su...] 0. secs (0.u,0.s) +Chars 14817 - 14823 [Proof.] 0. secs (0.u,0.s) +Chars 14830 - 14836 [split.] 0. secs (0.u,0.s) +Chars 14843 - 14847 [compute.] 0. secs (0.u,0.s) +Chars 14848 - 14986 [intros;~destruct~x,~y;~destruc...] 0.006 secs (0.006u,0.s) +Chars 14993 - 15006 [repeat~intro.] 0. secs (0.u,0.s) +Chars 15007 - 15073 [inversion~H;~inversion~H0;~inv...] 0.002 secs (0.002u,0.s) +Chars 15081 - 15097 [exists~(inl~x0).] 0. secs (0.u,0.s) +Chars 15098 - 15125 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 15132 - 15148 [exists~(inr~x0).] 0. secs (0.u,0.s) +Chars 15149 - 15176 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 15181 - 15185 [Qed.] 0.007 secs (0.007u,0.s) +Chars 15191 - 15251 [#[global]~Instance~Bifunctor_s...] 0. secs (0.u,0.s) +Chars 15256 - 15262 [Proof.] 0. secs (0.u,0.s) +Chars 15269 - 15304 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) +Chars 15309 - 15313 [Qed.] 0. secs (0.u,0.s) +Chars 15319 - 15433 [#[global]~Instance~Iso_Assoc_s...] 0. secs (0.u,0.s) +Chars 15438 - 15444 [Proof.] 0. secs (0.u,0.s) +Chars 15451 - 15457 [split.] 0. secs (0.u,0.s) +Chars 15464 - 15465 [-] 0. secs (0.u,0.s) +Chars 15466 - 15647 [compute;~split;~intros;~~repea...] 0.013 secs (0.013u,0.s) +Chars 15656 - 15683 [exists~(inl~a0);~intuition.] 0. secs (0.u,0.s) +Chars 15692 - 15725 [exists~(inr~(inl~b0));~intuition.] 0. secs (0.u,0.s) +Chars 15734 - 15767 [exists~(inr~(inr~c0));~intuition.] 0. secs (0.u,0.s) +Chars 15774 - 15775 [-] 0. secs (0.u,0.s) +Chars 15776 - 15947 [compute;~split;~intros;~~repea...] 0.012 secs (0.012u,0.s) +Chars 15956 - 15989 [exists~(inl~(inl~a0));~intuition.] 0. secs (0.u,0.s) +Chars 15998 - 16031 [exists~(inl~(inr~b0));~intuition.] 0. secs (0.u,0.s) +Chars 16040 - 16067 [exists~(inr~c0);~intuition.] 0. secs (0.u,0.s) +Chars 16072 - 16076 [Qed.] 0.012 secs (0.012u,0.s) +Chars 16082 - 16188 [#[global]~Instance~Iso_UnitL_s...] 0. secs (0.u,0.s) +Chars 16193 - 16199 [Proof.] 0. secs (0.u,0.s) +Chars 16206 - 16334 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) +Chars 16341 - 16360 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 16367 - 16388 [exists~(inr~y);~auto.] 0. secs (0.u,0.s) +Chars 16393 - 16397 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16403 - 16509 [#[global]~Instance~Iso_UnitR_s...] 0. secs (0.u,0.s) +Chars 16514 - 16520 [Proof.] 0. secs (0.u,0.s) +Chars 16527 - 16655 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) +Chars 16662 - 16681 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 16688 - 16709 [exists~(inl~y);~auto.] 0. secs (0.u,0.s) +Chars 16714 - 16718 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16724 - 16795 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) +Chars 16800 - 16806 [Proof.] 0. secs (0.u,0.s) +Chars 16813 - 16994 [split;~compute;~intros;~~repea...] 0.004 secs (0.004u,0.s) +Chars 17001 - 17033 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 17040 - 17072 [eexists;~intuition~subst;~eauto.] 0.001 secs (0.001u,0.s) +Chars 17077 - 17081 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17087 - 17160 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) +Chars 17165 - 17171 [Proof.] 0. secs (0.u,0.s) +Chars 17178 - 17359 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) +Chars 17366 - 17398 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 17405 - 17443 [exists~(inr~x);~intuition~subs...] 0. secs (0.u,0.s) +Chars 17448 - 17452 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17458 - 17525 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) +Chars 17530 - 17536 [Proof.] 0. secs (0.u,0.s) +Chars 17543 - 17562 [split;~compute;~intros.] 0. secs (0.u,0.s) +Chars 17569 - 17580 [destruct~H.] 0. secs (0.u,0.s) +Chars 17587 - 17732 [destruct~x;~try~destruct~s;~tr...] 0.006 secs (0.006u,0.s) +Chars 17739 - 17783 [destruct~s;~try~contradiction;...] 0. secs (0.u,0.s) +Chars 17790 - 17859 [inversion~H;~subst;~eauto;~try...] 0.005 secs (0.005u,0.s) +Chars 17866 - 17872 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 17873 - 17896 [exists~(inl~a2);~eauto.] 0. secs (0.u,0.s) +Chars 17904 - 17940 [inv~H;~exists~(inr~(inr~b2));~...] 0.001 secs (0.001u,0.s) +Chars 17946 - 17950 [Qed.] 0.008 secs (0.008u,0.s) +Chars 17956 - 18022 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) +Chars 18027 - 18033 [Proof.] 0. secs (0.u,0.s) +Chars 18040 - 18221 [split;~compute;~intros;~~repea...] 0.05 secs (0.05u,0.s) +Chars 18228 - 18229 [-] 0. secs (0.u,0.s) +Chars 18230 - 18269 [exists~(inl~(inl~a2));~intuiti...] 0. secs (0.u,0.s) +Chars 18276 - 18277 [-] 0. secs (0.u,0.s) +Chars 18278 - 18317 [eexists~(inl~(inr~_));~intuiti...] 0. secs (0.u,0.s) +Chars 18324 - 18325 [-] 0. secs (0.u,0.s) +Chars 18326 - 18365 [eexists~(inr~(inl~_));~intuiti...] 0. secs (0.u,0.s) +Chars 18372 - 18373 [-] 0. secs (0.u,0.s) +Chars 18374 - 18413 [eexists~(inr~(inr~_));~intuiti...] 0. secs (0.u,0.s) +Chars 18420 - 18421 [-] 0. secs (0.u,0.s) +Chars 18422 - 18455 [eexists~(inl~_);~intuition;~auto.] 0. secs (0.u,0.s) +Chars 18464 - 18503 [exists~(inl~(inl~a1));~intuiti...] 0. secs (0.u,0.s) +Chars 18510 - 18511 [-] 0. secs (0.u,0.s) +Chars 18512 - 18571 [exists~(inr~(inl~(inl~b1)));~i...] 0.001 secs (0.001u,0.s) +Chars 18580 - 18586 [split.] 0. secs (0.u,0.s) +Chars 18587 - 18600 [econstructor.] 0. secs (0.u,0.s) +Chars 18601 - 18610 [Unshelve.] 0. secs (0.u,0.s) +Chars 18611 - 18638 [3:~exact~(inr~(inl~b1)).] 0. secs (0.u,0.s) +Chars 18639 - 18655 [intuition;~auto.] 0. secs (0.u,0.s) +Chars 18664 - 18674 [intuition.] 0.002 secs (0.002u,0.s) +Chars 18681 - 18682 [-] 0. secs (0.u,0.s) +Chars 18683 - 18742 [exists~(inr~(inl~(inr~c0)));~i...] 0.001 secs (0.001u,0.s) +Chars 18751 - 18757 [split.] 0. secs (0.u,0.s) +Chars 18758 - 18767 [Unshelve.] 0. secs (0.u,0.s) +Chars 18768 - 18781 [econstructor.] 0. secs (0.u,0.s) +Chars 18782 - 18791 [Unshelve.] 0. secs (0.u,0.s) +Chars 18800 - 18828 [3:~refine~(inr~(inr~c0)).] 0. secs (0.u,0.s) +Chars 18829 - 18859 [intuition;~econstructor;~auto.] 0. secs (0.u,0.s) +Chars 18868 - 18878 [intuition.] 0. secs (0.u,0.s) +Chars 18885 - 18886 [-] 0. secs (0.u,0.s) +Chars 18887 - 18940 [exists~(inr~(inr~d0));~intuiti...] 0.001 secs (0.001u,0.s) +Chars 18946 - 18950 [Qed.] 0.03 secs (0.03u,0.s) +Chars 18956 - 19019 [#[global]~Instance~Monoidal_su...] 0. secs (0.u,0.s) +Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) +Chars 19037 - 19068 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 19073 - 19077 [Qed.] 0. secs (0.u,0.s) +Chars 19081 - 19098 [End~BifunctorSum.] 0. secs (0.u,0.s) +Chars 19100 - 19110 [End~Facts.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategorySub.v.timing b/theories/Basics/CategorySub.v.timing new file mode 100644 index 00000000..9210db47 --- /dev/null +++ b/theories/Basics/CategorySub.v.timing @@ -0,0 +1,128 @@ +Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.003u,0.002s) +Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.006 secs (0.003u,0.001s) +Chars 244 - 264 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 265 - 292 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 309 - 335 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) +Chars 337 - 357 [Section~Subcategory.] 0. secs (0.u,0.s) +Chars 569 - 659 [Context~{obj~:~Type}~(C~:~obj~...] 0. secs (0.u,0.s) +Chars 661 - 721 [Definition~sub~(a~b~:~sobj)~:~...] 0. secs (0.u,0.s) +Chars 723 - 795 [Definition~subm~(a~b~:~sobj)~(...] 0. secs (0.u,0.s) +Chars 796 - 870 [Definition~unsubm~(a~b~:~sobj)...] 0. secs (0.u,0.s) +Chars 872 - 933 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 935 - 998 [#[global]~Instance~Eq2_sub~:~(...] 0. secs (0.u,0.s) +Chars 1000 - 1062 [#[global]~Instance~Id_sub~:~(I...] 0. secs (0.u,0.s) +Chars 1064 - 1129 [#[global]~Instance~Cat_sub~:~(...] 0. secs (0.u,0.s) +Chars 1131 - 1199 [Context~(bif~:~obj~->~obj~->~o...] 0. secs (0.u,0.s) +Chars 1201 - 1299 [Class~ToBifunctor~:~Type~:=~~~...] 0. secs (0.u,0.s) +Chars 1301 - 1403 [Class~FromBifunctor~:~Type~:=~...] 0. secs (0.u,0.s) +Chars 1405 - 1430 [Arguments~to_bif~{_~a~b}.] 0. secs (0.u,0.s) +Chars 1431 - 1458 [Arguments~from_bif~{_~a~b}.] 0. secs (0.u,0.s) +Chars 1460 - 1591 [Context~{ToBif~:~ToBifunctor}~...] 0.001 secs (0.u,0.s) +Chars 1593 - 1607 [Section~Bimap.] 0. secs (0.u,0.s) +Chars 1609 - 1643 [Context~{Bimap_C~:~Bimap~C~bif}.] 0. secs (0.u,0.s) +Chars 1645 - 1750 [Definition~Bimap_sub~:~Bimap~s...] 0.002 secs (0.001u,0.s) +Chars 1752 - 1762 [End~Bimap.] 0. secs (0.u,0.s) +Chars 1764 - 1840 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) +Chars 1842 - 1935 [#[global]~Instance~Case_sub~:~...] 0. secs (0.u,0.s) +Chars 1937 - 2019 [#[global]~Instance~Inl_sub~:~(...] 0. secs (0.u,0.s) +Chars 2021 - 2103 [#[global]~Instance~Inr_sub~:~(...] 0. secs (0.u,0.s) +Chars 2105 - 2137 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) +Chars 2139 - 2236 [#[global]~Instance~Iter_sub~:~...] 0. secs (0.u,0.s) +Chars 2238 - 2254 [Section~CatLaws.] 0. secs (0.u,0.s) +Chars 2256 - 2349 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) +Chars 2351 - 2441 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 2443 - 2487 [#[global]~Instance~Category_su...] 0. secs (0.u,0.s) +Chars 2488 - 2494 [Proof.] 0. secs (0.u,0.s) +Chars 2497 - 2542 [destruct~Category_C;~construct...] 0.002 secs (0.002u,0.s) +Chars 2545 - 2554 [do~2~red.] 0. secs (0.u,0.s) +Chars 2555 - 2562 [intros.] 0. secs (0.u,0.s) +Chars 2563 - 2597 [eapply~category_proper_cat;~ea...] 0. secs (0.u,0.s) +Chars 2598 - 2602 [Qed.] 0. secs (0.u,0.s) +Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0. secs (0.u,0.s) +Chars 2673 - 2679 [Proof.] 0. secs (0.u,0.s) +Chars 2680 - 2690 [hnf;~auto.] 0. secs (0.u,0.s) +Chars 2691 - 2695 [Qed.] 0. secs (0.u,0.s) +Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0. secs (0.u,0.s) +Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) +Chars 2775 - 2785 [hnf;~auto.] 0. secs (0.u,0.s) +Chars 2786 - 2790 [Qed.] 0. secs (0.u,0.s) +Chars 2792 - 2852 [#[global]~Instance~Functor_uns...] 0. secs (0.u,0.s) +Chars 2853 - 2859 [Proof.] 0. secs (0.u,0.s) +Chars 2862 - 2907 [constructor;~reflexivity~+~typ...] 0.001 secs (0.001u,0.s) +Chars 2908 - 2912 [Qed.] 0. secs (0.u,0.s) +Chars 2914 - 2926 [End~CatLaws.] 0. secs (0.u,0.s) +Chars 2928 - 3800 [Ltac~~unfold_sub~:=~~~repeat~~...] 0. secs (0.u,0.s) +Chars 3803 - 3988 [Ltac~~simpl_bif~:=~~~try~rewri...] 0. secs (0.u,0.s) +Chars 3990 - 4012 [Section~CoproductLaws.] 0. secs (0.u,0.s) +Chars 4014 - 4141 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) +Chars 4143 - 4194 [#[global]~Instance~Coproduct_s...] 0. secs (0.u,0.s) +Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) +Chars 4204 - 4251 [destruct~Coproduct_C;~construc...] 0. secs (0.u,0.s) +Chars 4254 - 4287 [all:~unfold~Morphisms.respectful.] 0. secs (0.u,0.s) +Chars 4290 - 4306 [all:~unfold_sub.] 0.012 secs (0.011u,0.001s) +Chars 4309 - 4337 [all:~try~rewrite~!cat_assoc.] 0.004 secs (0.004u,0.s) +Chars 4340 - 4366 [all:~try~simpl_bif;~eauto.] 0.031 secs (0.031u,0.s) +Chars 4369 - 4370 [-] 0. secs (0.u,0.s) +Chars 4371 - 4419 [enough~(from_bif~>>>~fg~⩯~case...] 0. secs (0.u,0.s) +Chars 4424 - 4425 [{] 0. secs (0.u,0.s) +Chars 4426 - 4480 [rewrite~<-~H1,~<-~cat_assoc,~(...] 0.004 secs (0.004u,0.s) +Chars 4481 - 4493 [reflexivity.] 0. secs (0.u,0.s) +Chars 4494 - 4495 [}] 0. secs (0.u,0.s) +Chars 4500 - 4550 [apply~case_universal;~rewrite~...] 0.003 secs (0.003u,0.s) +Chars 4553 - 4554 [-] 0. secs (0.u,0.s) +Chars 4555 - 4562 [intros.] 0. secs (0.u,0.s) +Chars 4563 - 4586 [unfold~case_,~Case_sub.] 0. secs (0.u,0.s) +Chars 4591 - 4617 [apply~category_proper_cat.] 0. secs (0.u,0.s) +Chars 4618 - 4630 [reflexivity.] 0. secs (0.u,0.s) +Chars 4635 - 4671 [eapply~coproduct_proper_case;~...] 0. secs (0.u,0.s) +Chars 4672 - 4676 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.002 secs (0.001u,0.s) +Chars 4829 - 4835 [Proof.] 0. secs (0.u,0.s) +Chars 4838 - 4878 [unfold~bimap~at~1,~Bimap_Copro...] 0. secs (0.u,0.s) +Chars 4881 - 4892 [unfold_sub.] 0.001 secs (0.001u,0.s) +Chars 4895 - 4918 [rewrite~<-~2!cat_assoc.] 0.013 secs (0.01u,0.001s) +Chars 4921 - 4941 [rewrite~<-~cat_case.] 0.003 secs (0.002u,0.s) +Chars 4942 - 4960 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 4963 - 4975 [reflexivity.] 0. secs (0.u,0.s) +Chars 4976 - 4980 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4982 - 5024 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) +Chars 5026 - 5077 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) +Chars 5078 - 5084 [Proof.] 0. secs (0.u,0.s) +Chars 5087 - 5112 [constructor;~red;~intros.] 0. secs (0.u,0.s) +Chars 5115 - 5160 [all:~unfold~Morphisms.respectf...] 0.007 secs (0.005u,0.001s) +Chars 5163 - 5164 [-] 0. secs (0.u,0.s) +Chars 5165 - 5201 [rewrite~iter_unfold,~cat_assoc...] 0.003 secs (0.002u,0.s) +Chars 5202 - 5214 [reflexivity.] 0. secs (0.u,0.s) +Chars 5217 - 5218 [-] 0. secs (0.u,0.s) +Chars 5219 - 5244 [rewrite~bimap_sub_unfold.] 0.005 secs (0.004u,0.s) +Chars 5249 - 5277 [rewrite~!(cat_assoc~to_bif).] 0.004 secs (0.004u,0.s) +Chars 5282 - 5316 [rewrite~<-~(cat_assoc~(C:=C)~f).] 0.002 secs (0.002u,0.s) +Chars 5321 - 5363 [rewrite~cat_assoc,~(cat_assoc~...] 0.004 secs (0.004u,0.s) +Chars 5368 - 5401 [rewrite~(semi_iso~_~_),~cat_id_r.] 0.007 secs (0.007u,0.s) +Chars 5406 - 5427 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) +Chars 5432 - 5444 [reflexivity.] 0. secs (0.u,0.s) +Chars 5447 - 5448 [-] 0. secs (0.u,0.s) +Chars 5449 - 5482 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.012 secs (0.012u,0.s) +Chars 5487 - 5519 [rewrite~!(cat_assoc~_~_~to_bif).] 0.01 secs (0.01u,0.s) +Chars 5524 - 5542 [rewrite~!cat_case.] 0.011 secs (0.011u,0.s) +Chars 5547 - 5607 [rewrite~!(cat_assoc~_~from_bif...] 0.04 secs (0.039u,0.s) +Chars 5612 - 5635 [rewrite~iter_dinatural.] 0.001 secs (0.001u,0.s) +Chars 5640 - 5652 [reflexivity.] 0. secs (0.u,0.s) +Chars 5655 - 5656 [-] 0. secs (0.u,0.s) +Chars 5657 - 5690 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.004 secs (0.004u,0.s) +Chars 5695 - 5726 [rewrite~(cat_assoc~_~_~to_bif).] 0.002 secs (0.002u,0.s) +Chars 5731 - 5758 [rewrite~cat_case,~cat_id_l.] 0.007 secs (0.007u,0.s) +Chars 5763 - 5820 [rewrite~(cat_assoc~_~_~to_bif)...] 0.012 secs (0.012u,0.s) +Chars 5825 - 5863 [rewrite~iter_natural,~iter_cod...] 0.003 secs (0.003u,0.s) +Chars 5868 - 5934 [rewrite~(cat_assoc~_~(bimap~_~...] 0.013 secs (0.013u,0.s) +Chars 5939 - 5951 [reflexivity.] 0. secs (0.u,0.s) +Chars 5954 - 5955 [-] 0. secs (0.u,0.s) +Chars 5956 - 5986 [intros;~unfold~iter,~Iter_sub.] 0. secs (0.u,0.s) +Chars 5991 - 6059 [apply~iterative_proper_iter,~c...] 0. secs (0.u,0.s) +Chars 6060 - 6064 [Qed.] 0.013 secs (0.013u,0.s) +Chars 6066 - 6084 [End~CoproductLaws.] 0. secs (0.u,0.s) +Chars 6086 - 6102 [End~Subcategory.] 0.001 secs (0.001u,0.s) +Chars 6104 - 6142 [Arguments~subm~{obj~C~sobj~Emb...] 0. secs (0.u,0.s) +Chars 6143 - 6183 [Arguments~unsubm~{obj~C~sobj~E...] 0. secs (0.u,0.s) +Chars 6184 - 6221 [Arguments~to_bif~{_~C~_~_~_~_~...] 0. secs (0.u,0.s) +Chars 6222 - 6261 [Arguments~from_bif~{_~C~_~_~_~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryTheory.v.timing b/theories/Basics/CategoryTheory.v.timing new file mode 100644 index 00000000..33bf57ee --- /dev/null +++ b/theories/Basics/CategoryTheory.v.timing @@ -0,0 +1,241 @@ +Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0. secs (0.u,0.s) +Chars 291 - 306 [Import~Carrier.] 0. secs (0.u,0.s) +Chars 307 - 327 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 328 - 349 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) +Chars 351 - 395 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) +Chars 434 - 450 [Section~CatLaws.] 0. secs (0.u,0.s) +Chars 452 - 487 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 488 - 540 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) +Chars 592 - 670 [Class~CatIdL~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) +Chars 672 - 750 [Class~CatIdR~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) +Chars 752 - 885 [Class~CatAssoc~:~Prop~:=~~~~~c...] 0. secs (0.u,0.s) +Chars 887 - 1114 [Class~Category~:~Prop~:={~~~~~...] 0. secs (0.u,0.s) +Chars 1115 - 1161 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 1162 - 1208 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 1209 - 1256 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 1257 - 1305 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 1421 - 1540 [Class~InitialObject~(i~:~obj)~...] 0. secs (0.u,0.s) +Chars 1651 - 1772 [Class~TerminalObject~(t~:~obj)...] 0. secs (0.u,0.s) +Chars 1774 - 1786 [End~CatLaws.] 0. secs (0.u,0.s) +Chars 1788 - 1844 [Arguments~cat_id_l~{obj~C~Eq2C...] 0. secs (0.u,0.s) +Chars 1845 - 1901 [Arguments~cat_id_r~{obj~C~Eq2C...] 0. secs (0.u,0.s) +Chars 1902 - 1963 [Arguments~cat_assoc~{obj~C~Eq2...] 0. secs (0.u,0.s) +Chars 1964 - 2033 [Arguments~category_proper_cat~...] 0. secs (0.u,0.s) +Chars 2034 - 2104 [Arguments~initial_object~{obj~...] 0. secs (0.u,0.s) +Chars 2105 - 2178 [Arguments~terminal_object~{obj...] 0. secs (0.u,0.s) +Chars 2216 - 2258 [Notation~unique_initial~:=~ini...] 0. secs (0.u,0.s) +Chars 2297 - 2341 [Notation~unique_terminal~:=~te...] 0. secs (0.u,0.s) +Chars 2983 - 2999 [Section~SemiIso.] 0. secs (0.u,0.s) +Chars 3001 - 3036 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 3037 - 3089 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) +Chars 3188 - 3281 [Class~SemiIso~{a~b~:~obj}~(f~:...] 0. secs (0.u,0.s) +Chars 3316 - 3430 [Class~Iso~{a~b~:~obj}~(f~:~C~a...] 0. secs (0.u,0.s) +Chars 3432 - 3444 [End~SemiIso.] 0. secs (0.u,0.s) +Chars 3446 - 3483 [#[global]~Existing~Instance~is...] 0. secs (0.u,0.s) +Chars 3484 - 3520 [#[global]~Existing~Instance~is...] 0. secs (0.u,0.s) +Chars 3521 - 3581 [Arguments~semi_iso~{obj~C~Eq2C...] 0. secs (0.u,0.s) +Chars 3603 - 3623 [Section~OppositeCat.] 0. secs (0.u,0.s) +Chars 3627 - 3662 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 3665 - 3717 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) +Chars 4146 - 4206 [Instance~Eq2_Op~:~(Eq2~(op~C))...] 0. secs (0.u,0.s) +Chars 4210 - 4258 [Instance~Id_Op~:~(Id_~(op~C))~...] 0. secs (0.u,0.s) +Chars 4262 - 4332 [Instance~Cat_Op~:~(Cat~(op~C))...] 0. secs (0.u,0.s) +Chars 4334 - 4350 [End~OppositeCat.] 0. secs (0.u,0.s) +Chars 4370 - 4389 [Section~DaggerLaws.] 0. secs (0.u,0.s) +Chars 4393 - 4428 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 4431 - 4483 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) +Chars 4486 - 4512 [Context~{DagC~:~Dagger~C}.] 0. secs (0.u,0.s) +Chars 4517 - 4590 [Instance~Dagger_Op~:~(Dagger~(...] 0. secs (0.u,0.s) +Chars 4594 - 4693 [Class~DaggerInvolution~:~Prop~...] 0. secs (0.u,0.s) +Chars 4697 - 4728 [#[local]~Existing~Instance~Eq2...] 0. secs (0.u,0.s) +Chars 4731 - 4761 [#[local]~Existing~Instance~Id_Op.] 0. secs (0.u,0.s) +Chars 4764 - 4795 [#[local]~Existing~Instance~Cat...] 0. secs (0.u,0.s) +Chars 4798 - 4934 [Class~DaggerLaws~:~Prop~:={~~~...] 0. secs (0.u,0.s) +Chars 4937 - 4983 [#[global]~Existing~Instance~da...] 0. secs (0.u,0.s) +Chars 4986 - 5029 [#[global]~Existing~Instance~da...] 0. secs (0.u,0.s) +Chars 5031 - 5046 [End~DaggerLaws.] 0. secs (0.u,0.s) +Chars 5070 - 5092 [Section~BifunctorLaws.] 0. secs (0.u,0.s) +Chars 5094 - 5129 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 5130 - 5185 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 5186 - 5212 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 5213 - 5247 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) +Chars 5348 - 5441 [Class~BimapId~:~Prop~:=~~~~~bi...] 0. secs (0.u,0.s) +Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.001 secs (0.001u,0.s) +Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) +Chars 5887 - 5934 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) +Chars 5935 - 5983 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) +Chars 5984 - 6035 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) +Chars 6037 - 6055 [End~BifunctorLaws.] 0. secs (0.u,0.s) +Chars 6057 - 6121 [Arguments~bimap_id~{obj~C~Eq2_...] 0. secs (0.u,0.s) +Chars 6122 - 6211 [Arguments~bimap_cat~{obj~C~Eq2...] 0. secs (0.u,0.s) +Chars 6283 - 6305 [Section~CoproductLaws.] 0. secs (0.u,0.s) +Chars 6307 - 6342 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 6343 - 6398 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 6399 - 6425 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 6426 - 6512 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) +Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) +Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) +Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) +Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) +Chars 7200 - 7247 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) +Chars 7248 - 7295 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) +Chars 7296 - 7349 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) +Chars 7350 - 7400 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) +Chars 7402 - 7420 [End~CoproductLaws.] 0. secs (0.u,0.s) +Chars 7422 - 7498 [Arguments~case_inl~{obj~C~Eq2_...] 0. secs (0.u,0.s) +Chars 7499 - 7575 [Arguments~case_inr~{obj~C~Eq2_...] 0. secs (0.u,0.s) +Chars 7576 - 7640 [Arguments~case_universal~{obj~...] 0. secs (0.u,0.s) +Chars 7671 - 7701 [Notation~inl_case~:=~case_inl.] 0. secs (0.u,0.s) +Chars 7702 - 7732 [Notation~inr_case~:=~case_inr.] 0. secs (0.u,0.s) +Chars 7805 - 7825 [Section~ProductLaws.] 0. secs (0.u,0.s) +Chars 7827 - 7862 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 7863 - 7918 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 7919 - 7945 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 7946 - 8032 [Context~{Pair_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) +Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) +Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) +Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) +Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.007 secs (0.006u,0.s) +Chars 8708 - 8753 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) +Chars 8754 - 8799 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) +Chars 8800 - 8851 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) +Chars 8852 - 8900 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) +Chars 8902 - 8918 [End~ProductLaws.] 0. secs (0.u,0.s) +Chars 8920 - 8996 [Arguments~pair_fst~{obj~C~Eq2_...] 0. secs (0.u,0.s) +Chars 8997 - 9073 [Arguments~pair_snd~{obj~C~Eq2_...] 0. secs (0.u,0.s) +Chars 9074 - 9138 [Arguments~pair_universal~{obj~...] 0. secs (0.u,0.s) +Chars 9165 - 9194 [Section~CartesianClosureLaws.] 0. secs (0.u,0.s) +Chars 9196 - 9231 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 9232 - 9287 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 9288 - 9342 [Context~(ONE~:~obj)~{Term_C~:~...] 0. secs (0.u,0.s) +Chars 9343 - 9370 [Context~(PROD~:~binop~obj).] 0. secs (0.u,0.s) +Chars 9371 - 9460 [Context~{Pair_C~:~Pair~C~PROD}...] 0. secs (0.u,0.s) +Chars 9461 - 9487 [Context~(EXP~:~binop~obj).] 0. secs (0.u,0.s) +Chars 9488 - 9562 [Context~{Apply_C~:~Apply~C~PRO...] 0. secs (0.u,0.s) +Chars 9564 - 9596 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) +Chars 9598 - 9754 [Class~CurryApply~:~Prop~:=~~~~...] 0. secs (0.u,0.s) +Chars 9756 - 10022 [Class~CartesianClosed~:~Prop~:...] 0.001 secs (0.001u,0.s) +Chars 10023 - 10070 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 10071 - 10117 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 10118 - 10168 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 10169 - 10221 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) +Chars 10223 - 10248 [End~CartesianClosureLaws.] 0. secs (0.u,0.s) +Chars 10250 - 10353 [Arguments~curry_apply~~~{obj~C...] 0. secs (0.u,0.s) +Chars 10386 - 10407 [Section~MonoidalLaws.] 0. secs (0.u,0.s) +Chars 10409 - 10444 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 10445 - 10500 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 10501 - 10527 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 10529 - 10563 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) +Chars 10565 - 10601 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) +Chars 10602 - 10638 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) +Chars 10745 - 10830 [Notation~AssocIso~:=~(forall~a...] 0. secs (0.u,0.s) +Chars 10968 - 11081 [Corollary~assoc_r_mono~{AssocI...] 0. secs (0.u,0.s) +Chars 11082 - 11088 [Proof.] 0. secs (0.u,0.s) +Chars 11091 - 11126 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) +Chars 11127 - 11131 [Qed.] 0. secs (0.u,0.s) +Chars 11227 - 11340 [Corollary~assoc_l_mono~{AssocI...] 0. secs (0.u,0.s) +Chars 11341 - 11347 [Proof.] 0. secs (0.u,0.s) +Chars 11350 - 11385 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) +Chars 11386 - 11390 [Qed.] 0. secs (0.u,0.s) +Chars 11392 - 11410 [Context~(i~:~obj).] 0. secs (0.u,0.s) +Chars 11411 - 11449 [Context~{UnitL_bif~:~UnitL~C~b...] 0. secs (0.u,0.s) +Chars 11450 - 11488 [Context~{UnitL'_bif~:~UnitL'~C...] 0. secs (0.u,0.s) +Chars 11489 - 11527 [Context~{UnitR_bif~:~UnitR~C~b...] 0. secs (0.u,0.s) +Chars 11528 - 11566 [Context~{UnitR'_bif~:~UnitR'~C...] 0. secs (0.u,0.s) +Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0. secs (0.u,0.s) +Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0. secs (0.u,0.s) +Chars 11910 - 11988 [Notation~UnitLIso~:=~(forall~a...] 0. secs (0.u,0.s) +Chars 12086 - 12185 [Corollary~unit_l_mono~{UnitLIs...] 0. secs (0.u,0.s) +Chars 12186 - 12192 [Proof.] 0. secs (0.u,0.s) +Chars 12195 - 12230 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) +Chars 12231 - 12235 [Qed.] 0. secs (0.u,0.s) +Chars 12303 - 12393 [Corollary~unit_l_epi~{UnitLIso...] 0. secs (0.u,0.s) +Chars 12394 - 12400 [Proof.] 0. secs (0.u,0.s) +Chars 12403 - 12438 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) +Chars 12439 - 12443 [Qed.] 0. secs (0.u,0.s) +Chars 12496 - 12574 [Notation~UnitRIso~:=~(forall~a...] 0. secs (0.u,0.s) +Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0. secs (0.u,0.s) +Chars 12676 - 12682 [Proof.] 0. secs (0.u,0.s) +Chars 12685 - 12720 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) +Chars 12721 - 12725 [Qed.] 0. secs (0.u,0.s) +Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0. secs (0.u,0.s) +Chars 12818 - 12824 [Proof.] 0. secs (0.u,0.s) +Chars 12827 - 12862 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) +Chars 12863 - 12867 [Qed.] 0. secs (0.u,0.s) +Chars 12924 - 13042 [Class~AssocRUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) +Chars 13072 - 13264 [Class~AssocRAssocR~:~Prop~:=~~...] 0.003 secs (0.003u,0.s) +Chars 13266 - 13603 [Class~Monoidal~:~Prop~:={~~~~~...] 0.001 secs (0.001u,0.s) +Chars 13604 - 13651 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13652 - 13699 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13700 - 13748 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13749 - 13797 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13798 - 13850 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13851 - 13904 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13905 - 13955 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 13956 - 14009 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) +Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) +Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.012 secs (0.012u,0.s) +Chars 14435 - 14452 [End~MonoidalLaws.] 0.001 secs (0.001u,0.s) +Chars 14454 - 14545 [Arguments~assoc_r_mono~~~{obj~...] 0. secs (0.u,0.s) +Chars 14546 - 14637 [Arguments~assoc_l_mono~~~{obj~...] 0. secs (0.u,0.s) +Chars 14638 - 14725 [Arguments~unit_l_mono~~~{obj~C...] 0. secs (0.u,0.s) +Chars 14726 - 14812 [Arguments~unit_l_epi~~~{obj~C~...] 0. secs (0.u,0.s) +Chars 14813 - 14900 [Arguments~unit_r_mono~~~{obj~C...] 0. secs (0.u,0.s) +Chars 14901 - 14987 [Arguments~unit_r_epi~~~{obj~C~...] 0. secs (0.u,0.s) +Chars 14989 - 15099 [Arguments~assoc_r_unit~~~{obj~...] 0. secs (0.u,0.s) +Chars 15100 - 15197 [Arguments~assoc_r_assoc_r~~~{o...] 0. secs (0.u,0.s) +Chars 15199 - 15309 [Arguments~assoc_l_unit~~~{obj~...] 0. secs (0.u,0.s) +Chars 15310 - 15407 [Arguments~assoc_l_assoc_l~~~{o...] 0. secs (0.u,0.s) +Chars 15450 - 15472 [Section~SymmetricLaws.] 0. secs (0.u,0.s) +Chars 15474 - 15509 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 15510 - 15565 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 15566 - 15592 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 15593 - 15627 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) +Chars 15628 - 15660 [Context~{Swap_bif~:~Swap~C~bif}.] 0. secs (0.u,0.s) +Chars 15693 - 15778 [Notation~SwapInvolutive~:=~(fo...] 0. secs (0.u,0.s) +Chars 15780 - 15890 [Corollary~swap_involutive~{Swa...] 0. secs (0.u,0.s) +Chars 15891 - 15897 [Proof.] 0. secs (0.u,0.s) +Chars 15900 - 15941 [intros;~apply~semi_iso,~SwapIn...] 0. secs (0.u,0.s) +Chars 15942 - 15946 [Qed.] 0. secs (0.u,0.s) +Chars 15948 - 15966 [Context~(i~:~obj).] 0. secs (0.u,0.s) +Chars 15967 - 16003 [Context~{UnitL_i~:~UnitL~C~bif...] 0. secs (0.u,0.s) +Chars 16004 - 16040 [Context~{UnitL'_i~:~UnitL'~C~b...] 0. secs (0.u,0.s) +Chars 16041 - 16077 [Context~{UnitR_i~:~UnitR~C~bif...] 0. secs (0.u,0.s) +Chars 16078 - 16114 [Context~{UnitR'_i~:~UnitR'~C~b...] 0. secs (0.u,0.s) +Chars 16161 - 16245 [Class~SwapUnitL~:~Prop~:=~~~~~...] 0. secs (0.u,0.s) +Chars 16247 - 16283 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) +Chars 16284 - 16320 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) +Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) +Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0. secs (0.u,0.s) +Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) +Chars 16989 - 17007 [End~SymmetricLaws.] 0. secs (0.u,0.s) +Chars 17009 - 17094 [Arguments~swap_involutive~~~{o...] 0. secs (0.u,0.s) +Chars 17095 - 17180 [Arguments~swap_unit_l~~~{obj~C...] 0. secs (0.u,0.s) +Chars 17181 - 17281 [Arguments~swap_assoc_r~~~{obj~...] 0. secs (0.u,0.s) +Chars 17282 - 17382 [Arguments~swap_assoc_l~~~{obj~...] 0. secs (0.u,0.s) +Chars 17384 - 17406 [Section~IterationLaws.] 0. secs (0.u,0.s) +Chars 17408 - 17443 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) +Chars 17444 - 17499 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) +Chars 17500 - 17526 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) +Chars 17527 - 17557 [Context~{Case_C~:~Case~C~bif}.] 0. secs (0.u,0.s) +Chars 17558 - 17586 [Context~{Inl_C~:~Inl~C~bif}.] 0. secs (0.u,0.s) +Chars 17587 - 17615 [Context~{Inr_C~:~Inr~C~bif}.] 0. secs (0.u,0.s) +Chars 17616 - 17646 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) +Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0. secs (0.u,0.s) +Chars 17942 - 18083 [Class~IterNatural~:~Prop~:=~~~...] 0.001 secs (0.001u,0.s) +Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.001 secs (0.001u,0.s) +Chars 18534 - 18679 [Class~IterCodiagonal~:~Prop~:=...] 0.001 secs (0.001u,0.s) +Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0. secs (0.u,0.s) +Chars 19031 - 19076 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) +Chars 19077 - 19123 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) +Chars 19124 - 19172 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) +Chars 19173 - 19222 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) +Chars 19223 - 19273 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) +Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.014 secs (0.011u,0.002s) +Chars 19692 - 19710 [End~IterationLaws.] 0. secs (0.u,0.s) +Chars 19712 - 19796 [Arguments~iter_unfold~{obj~C~E...] 0. secs (0.u,0.s) +Chars 19797 - 19897 [Arguments~iter_natural~~~{obj~...] 0. secs (0.u,0.s) +Chars 19898 - 19996 [Arguments~iter_dinatural~~~{ob...] 0. secs (0.u,0.s) +Chars 19997 - 20095 [Arguments~iter_codiagonal~~~{o...] 0. secs (0.u,0.s) +Chars 20096 - 20193 [Arguments~iterative_proper_ite...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Function.v.timing b/theories/Basics/Function.v.timing new file mode 100644 index 00000000..99bd21bd --- /dev/null +++ b/theories/Basics/Function.v.timing @@ -0,0 +1,18 @@ +Chars 125 - 194 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) +Chars 196 - 216 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 217 - 247 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 297 - 342 [Definition~Fun~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) +Chars 413 - 475 [Definition~apply_Fun~{A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 514 - 591 [#[global]~Instance~eeq~:~(Eq2~...] 0. secs (0.u,0.s) +Chars 618 - 679 [#[global]~Instance~Id_Fun~:~(I...] 0. secs (0.u,0.s) +Chars 709 - 785 [#[global]~Instance~Cat_Fun~:~(...] 0. secs (0.u,0.s) +Chars 823 - 914 [#[global]~Instance~Initial_voi...] 0. secs (0.u,0.s) +Chars 949 - 1021 [#[global]~Instance~Terminal_un...] 0. secs (0.u,0.s) +Chars 1084 - 1248 [#[global]~Instance~case_sum~:~...] 0. secs (0.u,0.s) +Chars 1268 - 1317 [#[global]~Instance~sum_inl~:~(...] 0. secs (0.u,0.s) +Chars 1318 - 1367 [#[global]~Instance~sum_inr~:~(...] 0. secs (0.u,0.s) +Chars 1399 - 1480 [#[global]~Instance~Pair_Fun~:~...] 0. secs (0.u,0.s) +Chars 1482 - 1532 [#[global]~Instance~Fst_Fun~:~(...] 0. secs (0.u,0.s) +Chars 1533 - 1583 [#[global]~Instance~Snd_Fun~:~(...] 0. secs (0.u,0.s) +Chars 1697 - 1779 [#[global]~Instance~Apply_Fun~:...] 0. secs (0.u,0.s) +Chars 1783 - 1875 [#[global]~Instance~Curry_Fun~:...] 0. secs (0.u,0.s) diff --git a/theories/Basics/FunctionFacts.v.timing b/theories/Basics/FunctionFacts.v.timing new file mode 100644 index 00000000..e37ca0f1 --- /dev/null +++ b/theories/Basics/FunctionFacts.v.timing @@ -0,0 +1,143 @@ +Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.1 secs (0.09u,0.009s) +Chars 209 - 229 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 230 - 257 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 274 - 378 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) +Chars 379 - 385 [Proof.] 0. secs (0.u,0.s) +Chars 386 - 397 [congruence.] 0. secs (0.u,0.s) +Chars 398 - 402 [Qed.] 0. secs (0.u,0.s) +Chars 404 - 474 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 475 - 481 [Proof.] 0. secs (0.u,0.s) +Chars 482 - 506 [constructor;~congruence.] 0. secs (0.u,0.s) +Chars 507 - 511 [Qed.] 0. secs (0.u,0.s) +Chars 513 - 628 [#[global]~Instance~Proper_cat~...] 0. secs (0.u,0.s) +Chars 629 - 635 [Proof.] 0. secs (0.u,0.s) +Chars 636 - 652 [compute;~congruence.] 0. secs (0.u,0.s) +Chars 653 - 657 [Qed.] 0. secs (0.u,0.s) +Chars 659 - 706 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) +Chars 707 - 713 [Proof.] 0. secs (0.u,0.s) +Chars 714 - 731 [red;~reflexivity.] 0. secs (0.u,0.s) +Chars 732 - 736 [Qed.] 0. secs (0.u,0.s) +Chars 738 - 785 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) +Chars 786 - 792 [Proof.] 0. secs (0.u,0.s) +Chars 793 - 810 [red;~reflexivity.] 0. secs (0.u,0.s) +Chars 811 - 815 [Qed.] 0.002 secs (0.002u,0.s) +Chars 817 - 865 [#[global]~Instance~cat_Fun_ass...] 0. secs (0.u,0.s) +Chars 866 - 872 [Proof.] 0. secs (0.u,0.s) +Chars 873 - 890 [red;~reflexivity.] 0. secs (0.u,0.s) +Chars 891 - 895 [Qed.] 0. secs (0.u,0.s) +Chars 897 - 1002 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 1004 - 1069 [#[global]~Instance~TerminalObj...] 0. secs (0.u,0.s) +Chars 1070 - 1076 [Proof.] 0. secs (0.u,0.s) +Chars 1077 - 1081 [red.] 0. secs (0.u,0.s) +Chars 1082 - 1089 [intros.] 0. secs (0.u,0.s) +Chars 1090 - 1096 [intro.] 0. secs (0.u,0.s) +Chars 1097 - 1113 [destruct~(f~a0).] 0. secs (0.u,0.s) +Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) +Chars 1127 - 1131 [Qed.] 0. secs (0.u,0.s) +Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0. secs (0.u,0.s) +Chars 1262 - 1268 [Proof.] 0. secs (0.u,0.s) +Chars 1269 - 1306 [compute;~intros;~subst;~destru...] 0. secs (0.u,0.s) +Chars 1307 - 1311 [Qed.] 0. secs (0.u,0.s) +Chars 1313 - 1360 [#[global]~Instance~Category_Fu...] 0. secs (0.u,0.s) +Chars 1361 - 1367 [Proof.] 0. secs (0.u,0.s) +Chars 1370 - 1401 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1402 - 1406 [Qed.] 0. secs (0.u,0.s) +Chars 1408 - 1461 [#[global]~Instance~Coproduct_F...] 0. secs (0.u,0.s) +Chars 1462 - 1468 [Proof.] 0. secs (0.u,0.s) +Chars 1471 - 1483 [constructor.] 0. secs (0.u,0.s) +Chars 1486 - 1487 [-] 0. secs (0.u,0.s) +Chars 1488 - 1505 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 1510 - 1527 [compute;~reflexivity.] 0. secs (0.u,0.s) +Chars 1530 - 1531 [-] 0. secs (0.u,0.s) +Chars 1532 - 1549 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 1554 - 1571 [compute;~reflexivity.] 0. secs (0.u,0.s) +Chars 1574 - 1575 [-] 0. secs (0.u,0.s) +Chars 1576 - 1626 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~...] 0. secs (0.u,0.s) +Chars 1629 - 1630 [-] 0. secs (0.u,0.s) +Chars 1631 - 1649 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1650 - 1654 [Qed.] 0. secs (0.u,0.s) +Chars 1656 - 1706 [#[global]~Instance~PairFst_Fun...] 0. secs (0.u,0.s) +Chars 1707 - 1713 [Proof.] 0. secs (0.u,0.s) +Chars 1716 - 1722 [split.] 0. secs (0.u,0.s) +Chars 1723 - 1727 [Qed.] 0. secs (0.u,0.s) +Chars 1729 - 1779 [#[global]~Instance~PairSnd_Fun...] 0. secs (0.u,0.s) +Chars 1780 - 1786 [Proof.] 0. secs (0.u,0.s) +Chars 1789 - 1795 [split.] 0. secs (0.u,0.s) +Chars 1796 - 1800 [Qed.] 0. secs (0.u,0.s) +Chars 1802 - 1864 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) +Chars 1865 - 1871 [Proof.] 0. secs (0.u,0.s) +Chars 1874 - 1887 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1890 - 1913 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) +Chars 1914 - 1932 [specialize~(H~a0).] 0. secs (0.u,0.s) +Chars 1933 - 1952 [specialize~(H0~a0).] 0. secs (0.u,0.s) +Chars 1953 - 1966 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 1969 - 1983 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 1984 - 2004 [unfold~cat,~Cat_Fun.] 0. secs (0.u,0.s) +Chars 2007 - 2024 [destruct~(fg~a0).] 0. secs (0.u,0.s) +Chars 2025 - 2037 [reflexivity.] 0. secs (0.u,0.s) +Chars 2038 - 2042 [Qed.] 0. secs (0.u,0.s) +Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) +Chars 2148 - 2154 [Proof.] 0. secs (0.u,0.s) +Chars 2157 - 2188 [intros~?~?~?~f1~f2~F~g1~g2~G~c.] 0. secs (0.u,0.s) +Chars 2191 - 2214 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) +Chars 2215 - 2225 [rewrite~F.] 0. secs (0.u,0.s) +Chars 2226 - 2236 [rewrite~G.] 0. secs (0.u,0.s) +Chars 2237 - 2249 [reflexivity.] 0. secs (0.u,0.s) +Chars 2250 - 2254 [Qed.] 0. secs (0.u,0.s) +Chars 2258 - 2275 [Section~Products.] 0. secs (0.u,0.s) +Chars 2278 - 2310 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) +Chars 2314 - 2371 [#[global]~Instance~BimapId_Fun...] 0. secs (0.u,0.s) +Chars 2374 - 2380 [Proof.] 0. secs (0.u,0.s) +Chars 2385 - 2398 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2403 - 2415 [destruct~a0.] 0. secs (0.u,0.s) +Chars 2416 - 2428 [reflexivity.] 0. secs (0.u,0.s) +Chars 2431 - 2435 [Qed.] 0. secs (0.u,0.s) +Chars 2442 - 2501 [#[global]~Instance~BimapCat_Fu...] 0. secs (0.u,0.s) +Chars 2504 - 2510 [Proof.] 0. secs (0.u,0.s) +Chars 2515 - 2528 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2533 - 2544 [destruct~a.] 0. secs (0.u,0.s) +Chars 2549 - 2561 [reflexivity.] 0. secs (0.u,0.s) +Chars 2564 - 2568 [Qed.] 0. secs (0.u,0.s) +Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0. secs (0.u,0.s) +Chars 2724 - 2730 [Proof.] 0. secs (0.u,0.s) +Chars 2735 - 2748 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2753 - 2781 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) +Chars 2782 - 2792 [rewrite~H.] 0.005 secs (0.004u,0.s) +Chars 2793 - 2804 [rewrite~H0.] 0.005 secs (0.004u,0.001s) +Chars 2805 - 2817 [reflexivity.] 0. secs (0.u,0.s) +Chars 2820 - 2824 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2828 - 2889 [#[global]~Instance~Bifunctor_F...] 0. secs (0.u,0.s) +Chars 2892 - 2898 [Proof.] 0. secs (0.u,0.s) +Chars 2903 - 2915 [constructor.] 0. secs (0.u,0.s) +Chars 2920 - 2921 [-] 0. secs (0.u,0.s) +Chars 2922 - 2945 [exact~BimapId_Fun_prod.] 0. secs (0.u,0.s) +Chars 2950 - 2951 [-] 0. secs (0.u,0.s) +Chars 2952 - 2976 [exact~BimapCat_Fun_prod.] 0. secs (0.u,0.s) +Chars 2981 - 2982 [-] 0. secs (0.u,0.s) +Chars 2983 - 3010 [exact~BimapProper_Fun_prod.] 0. secs (0.u,0.s) +Chars 3013 - 3017 [Qed.] 0. secs (0.u,0.s) +Chars 3021 - 3073 [#[global]~Instance~Product_Fun...] 0.016 secs (0.015u,0.001s) +Chars 3076 - 3082 [Proof.] 0. secs (0.u,0.s) +Chars 3087 - 3118 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 3121 - 3125 [Qed.] 0. secs (0.u,0.s) +Chars 3131 - 3144 [End~Products.] 0. secs (0.u,0.s) +Chars 3146 - 3171 [Section~CartesianClosure.] 0. secs (0.u,0.s) +Chars 3175 - 3237 [#[global]~Instance~CurryApply_...] 0. secs (0.u,0.s) +Chars 3240 - 3246 [Proof.] 0. secs (0.u,0.s) +Chars 3251 - 3255 [red.] 0. secs (0.u,0.s) +Chars 3256 - 3269 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3270 - 3282 [destruct~a0.] 0. secs (0.u,0.s) +Chars 3283 - 3322 [unfold~curry_,~Curry_Fun,~cat,...] 0. secs (0.u,0.s) +Chars 3323 - 3335 [reflexivity.] 0. secs (0.u,0.s) +Chars 3338 - 3342 [Qed.] 0. secs (0.u,0.s) +Chars 3415 - 3492 [#[global]~Instance~CartesianCl...] 0. secs (0.u,0.s) +Chars 3495 - 3501 [Proof.] 0. secs (0.u,0.s) +Chars 3506 - 3541 [constructor;~try~typeclasses~e...] 0.003 secs (0.003u,0.s) +Chars 3546 - 3559 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3560 - 3585 [unfold~curry_,~Curry_Fun.] 0. secs (0.u,0.s) +Chars 3586 - 3618 [apply~functional_extensionality.] 0. secs (0.u,0.s) +Chars 3623 - 3630 [intros.] 0. secs (0.u,0.s) +Chars 3631 - 3639 [apply~H.] 0. secs (0.u,0.s) +Chars 3642 - 3646 [Qed.] 0. secs (0.u,0.s) +Chars 3647 - 3668 [End~CartesianClosure.] 0. secs (0.u,0.s) diff --git a/theories/Basics/HeterogeneousRelations.v.timing b/theories/Basics/HeterogeneousRelations.v.timing new file mode 100644 index 00000000..1b1e5d3d --- /dev/null +++ b/theories/Basics/HeterogeneousRelations.v.timing @@ -0,0 +1,652 @@ +Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) +Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.021 secs (0.017u,0.004s) +Chars 157 - 201 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) +Chars 405 - 458 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) +Chars 460 - 512 [Definition~relationH~(A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 514 - 543 [Section~RelationH_Operations.] 0. secs (0.u,0.s) +Chars 547 - 676 [Definition~rel_compose~{A}~{B}...] 0. secs (0.u,0.s) +Chars 731 - 789 [Class~SubRelH~(T~:~Type)~:=~~~...] 0. secs (0.u,0.s) +Chars 793 - 924 [#[global]~Instance~SubRelH_bin...] 0. secs (0.u,0.s) +Chars 928 - 1033 [#[global]~Instance~SubRelH_una...] 0. secs (0.u,0.s) +Chars 1037 - 1129 [Definition~eq_rel~{A}~{B}~(R~S...] 0. secs (0.u,0.s) +Chars 1133 - 1224 [Definition~transpose~{A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 1277 - 1361 [Definition~fun_rel~{A~B~:~Type...] 0. secs (0.u,0.s) +Chars 1365 - 1413 [Class~Conj~(T~:~Type)~:=~~~~~c...] 0. secs (0.u,0.s) +Chars 1417 - 1530 [#[global]~Instance~Conj_binary...] 0. secs (0.u,0.s) +Chars 1534 - 1629 [#[global]~Instance~Conj_unary~...] 0. secs (0.u,0.s) +Chars 1633 - 1681 [Class~Disj~(T~:~Type)~:=~~~~~d...] 0. secs (0.u,0.s) +Chars 1685 - 1798 [#[global]~Instance~Disj_binary...] 0. secs (0.u,0.s) +Chars 1802 - 1897 [#[global]~Instance~Disj_unary~...] 0. secs (0.u,0.s) +Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) +Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) +Chars 2536 - 2561 [End~RelationH_Operations.] 0. secs (0.u,0.s) +Chars 2563 - 2606 [#[global]~Hint~Constructors~pr...] 0. secs (0.u,0.s) +Chars 2607 - 2649 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) +Chars 2651 - 2694 [Arguments~inl_morphism~{A1~A2~...] 0. secs (0.u,0.s) +Chars 2695 - 2738 [Arguments~inr_morphism~{A1~A2~...] 0. secs (0.u,0.s) +Chars 2739 - 2777 [Arguments~fst_rel~{A1~A2~B1~B2...] 0. secs (0.u,0.s) +Chars 2778 - 2816 [Arguments~snd_rel~{A1~A2~B1~B2...] 0. secs (0.u,0.s) +Chars 2818 - 2852 [Arguments~rel_compose~[A~B~C]~...] 0. secs (0.u,0.s) +Chars 2853 - 2881 [Arguments~transpose~[A~B]~R.] 0. secs (0.u,0.s) +Chars 2882 - 2911 [Arguments~subrelationH~{T~_}.] 0. secs (0.u,0.s) +Chars 2912 - 2937 [Arguments~conj_rel~{T~_}.] 0. secs (0.u,0.s) +Chars 2938 - 2963 [Arguments~disj_rel~{T~_}.] 0. secs (0.u,0.s) +Chars 2964 - 3002 [Arguments~sum_rel~[A1~A2~B1~B2...] 0. secs (0.u,0.s) +Chars 3003 - 3042 [Arguments~prod_rel~[A1~A2~B1~B...] 0. secs (0.u,0.s) +Chars 3044 - 3074 [Declare~Scope~relationH_scope.] 0. secs (0.u,0.s) +Chars 3075 - 3120 [Delimit~Scope~relationH_scope~...] 0. secs (0.u,0.s) +Chars 3122 - 3142 [Module~RelNotations.] 0. secs (0.u,0.s) +Chars 3234 - 3313 [Infix~"∘"~:=~rel_compose~(~at~...] 0. secs (0.u,0.s) +Chars 3316 - 3391 [Infix~"⊕"~:=~sum_rel~(~at~leve...] 0. secs (0.u,0.s) +Chars 3394 - 3470 [Infix~"⊗"~:=~prod_rel~(~at~lev...] 0. secs (0.u,0.s) +Chars 3473 - 3547 [Infix~"∩"~:=~conj_rel~(~at~lev...] 0. secs (0.u,0.s) +Chars 3550 - 3624 [Infix~"∪"~:=~disj_rel~(~at~lev...] 0. secs (0.u,0.s) +Chars 3628 - 3706 [Infix~"⊑"~:=~subrelationH~(~at...] 0. secs (0.u,0.s) +Chars 3709 - 3795 [Notation~"†~R"~:=~(transpose~R...] 0. secs (0.u,0.s) +Chars 3799 - 3871 [Infix~"≡"~:=~eq_rel~(~at~level...] 0. secs (0.u,0.s) +Chars 3873 - 3890 [End~RelNotations.] 0.001 secs (0.u,0.s) +Chars 3892 - 3912 [Import~RelNotations.] 0. secs (0.u,0.s) +Chars 3913 - 3949 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) +Chars 3951 - 4029 [Definition~relationH_of_Type~(...] 0. secs (0.u,0.s) +Chars 4031 - 4135 [#[global]~Instance~Proper_rela...] 0. secs (0.u,0.s) +Chars 4136 - 4142 [Proof.] 0. secs (0.u,0.s) +Chars 4145 - 4158 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4161 - 4172 [repeat~red.] 0. secs (0.u,0.s) +Chars 4175 - 4189 [split;~intros.] 0. secs (0.u,0.s) +Chars 4192 - 4193 [-] 0. secs (0.u,0.s) +Chars 4194 - 4213 [rewrite~<-~H,~<-~H0.] 0. secs (0.u,0.s) +Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) +Chars 4222 - 4223 [-] 0. secs (0.u,0.s) +Chars 4224 - 4238 [rewrite~H,~H0.] 0. secs (0.u,0.s) +Chars 4239 - 4244 [auto.] 0. secs (0.u,0.s) +Chars 4245 - 4249 [Qed.] 0. secs (0.u,0.s) +Chars 4334 - 4425 [Class~ReflexiveH~{A~:~Type}~(R...] 0. secs (0.u,0.s) +Chars 4427 - 4525 [Class~SymmetricH~{A~:~Type}~(R...] 0. secs (0.u,0.s) +Chars 4527 - 4638 [Class~TransitiveH~{A~:~Type}~(...] 0. secs (0.u,0.s) +Chars 4640 - 4758 [Class~PER~{A~:~Type}~(R~:~rela...] 0. secs (0.u,0.s) +Chars 4759 - 4796 [#[global]~Existing~Instance~pe...] 0. secs (0.u,0.s) +Chars 4797 - 4835 [#[global]~Existing~Instance~pe...] 0. secs (0.u,0.s) +Chars 4837 - 4960 [Class~Preorder~{A~:~Type}~(R~:...] 0. secs (0.u,0.s) +Chars 4961 - 4998 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) +Chars 4999 - 5037 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) +Chars 5039 - 5201 [Class~EquivalenceH~{A~:~Type}~...] 0. secs (0.u,0.s) +Chars 5202 - 5241 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) +Chars 5242 - 5281 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) +Chars 5282 - 5322 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) +Chars 5324 - 5401 [#[global]~Instance~relationH_r...] 0. secs (0.u,0.s) +Chars 5402 - 5408 [Proof.] 0. secs (0.u,0.s) +Chars 5411 - 5424 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5427 - 5439 [reflexivity.] 0. secs (0.u,0.s) +Chars 5440 - 5448 [Defined.] 0. secs (0.u,0.s) +Chars 5450 - 5527 [#[global]~Instance~relationH_s...] 0. secs (0.u,0.s) +Chars 5528 - 5534 [Proof.] 0. secs (0.u,0.s) +Chars 5537 - 5550 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5551 - 5561 [cbn;~auto.] 0. secs (0.u,0.s) +Chars 5562 - 5570 [Defined.] 0. secs (0.u,0.s) +Chars 5572 - 5651 [#[global]~Instance~relationH_t...] 0. secs (0.u,0.s) +Chars 5652 - 5658 [Proof.] 0. secs (0.u,0.s) +Chars 5661 - 5674 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5675 - 5684 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5685 - 5699 [etransitivity.] 0. secs (0.u,0.s) +Chars 5702 - 5710 [apply~H.] 0. secs (0.u,0.s) +Chars 5711 - 5720 [apply~H0.] 0. secs (0.u,0.s) +Chars 5721 - 5729 [Defined.] 0. secs (0.u,0.s) +Chars 5731 - 5789 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) +Chars 5790 - 5796 [Proof.] 0. secs (0.u,0.s) +Chars 5799 - 5830 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5831 - 5839 [Defined.] 0. secs (0.u,0.s) +Chars 5841 - 5909 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) +Chars 5910 - 5916 [Proof.] 0. secs (0.u,0.s) +Chars 5919 - 5950 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5951 - 5959 [Defined.] 0. secs (0.u,0.s) +Chars 5961 - 6030 [#[global]~Instance~relationH_E...] 0. secs (0.u,0.s) +Chars 6031 - 6037 [Proof.] 0. secs (0.u,0.s) +Chars 6040 - 6071 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 6072 - 6080 [Defined.] 0. secs (0.u,0.s) +Chars 6082 - 6172 [Lemma~ReflexiveH_Reflexive~{A~...] 0. secs (0.u,0.s) +Chars 6173 - 6179 [Proof.] 0. secs (0.u,0.s) +Chars 6182 - 6196 [split;~intros.] 0. secs (0.u,0.s) +Chars 6199 - 6200 [-] 0. secs (0.u,0.s) +Chars 6201 - 6205 [red.] 0. secs (0.u,0.s) +Chars 6206 - 6214 [apply~H.] 0. secs (0.u,0.s) +Chars 6217 - 6218 [-] 0. secs (0.u,0.s) +Chars 6219 - 6227 [apply~H.] 0. secs (0.u,0.s) +Chars 6228 - 6232 [Qed.] 0. secs (0.u,0.s) +Chars 6234 - 6324 [Lemma~SymmetricH_Symmetric~{A~...] 0. secs (0.u,0.s) +Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) +Chars 6334 - 6348 [split;~intros.] 0. secs (0.u,0.s) +Chars 6351 - 6352 [-] 0. secs (0.u,0.s) +Chars 6353 - 6357 [red.] 0. secs (0.u,0.s) +Chars 6358 - 6381 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) +Chars 6382 - 6389 [intros.] 0. secs (0.u,0.s) +Chars 6390 - 6409 [specialize~(H~x~y).] 0. secs (0.u,0.s) +Chars 6410 - 6419 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 6424 - 6432 [apply~H.] 0. secs (0.u,0.s) +Chars 6433 - 6444 [assumption.] 0. secs (0.u,0.s) +Chars 6447 - 6448 [-] 0. secs (0.u,0.s) +Chars 6449 - 6453 [red.] 0. secs (0.u,0.s) +Chars 6454 - 6466 [intros~p~HP.] 0. secs (0.u,0.s) +Chars 6467 - 6476 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6477 - 6485 [apply~H.] 0. secs (0.u,0.s) +Chars 6486 - 6490 [Qed.] 0.01 secs (0.009u,0.s) +Chars 6492 - 6586 [Lemma~TransitiveH_Transitive~{...] 0. secs (0.u,0.s) +Chars 6587 - 6593 [Proof.] 0. secs (0.u,0.s) +Chars 6596 - 6610 [split;~intros.] 0. secs (0.u,0.s) +Chars 6613 - 6614 [-] 0. secs (0.u,0.s) +Chars 6615 - 6619 [red.] 0. secs (0.u,0.s) +Chars 6620 - 6639 [intros~x~y~z~H0~H1.] 0. secs (0.u,0.s) +Chars 6640 - 6664 [unfold~TransitiveH~in~H.] 0. secs (0.u,0.s) +Chars 6665 - 6681 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 6684 - 6685 [-] 0. secs (0.u,0.s) +Chars 6686 - 6690 [red.] 0. secs (0.u,0.s) +Chars 6691 - 6711 [intros~p~q~HP~HQ~EQ.] 0. secs (0.u,0.s) +Chars 6716 - 6739 [unfold~Transitive~in~H.] 0. secs (0.u,0.s) +Chars 6740 - 6750 [cbn~in~EQ.] 0. secs (0.u,0.s) +Chars 6755 - 6771 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 6772 - 6776 [Qed.] 0. secs (0.u,0.s) +Chars 6802 - 6823 [Section~SubRelationH.] 0. secs (0.u,0.s) +Chars 7061 - 7130 [Lemma~subrelationH_Reflexive~{...] 0. secs (0.u,0.s) +Chars 7133 - 7139 [Proof.] 0. secs (0.u,0.s) +Chars 7144 - 7158 [intros~!;~auto.] 0. secs (0.u,0.s) +Chars 7161 - 7165 [Qed.] 0. secs (0.u,0.s) +Chars 7169 - 7260 [Lemma~subrelationH_antisym~{A~...] 0. secs (0.u,0.s) +Chars 7263 - 7269 [Proof.] 0. secs (0.u,0.s) +Chars 7274 - 7286 [split;~auto.] 0. secs (0.u,0.s) +Chars 7289 - 7293 [Qed.] 0. secs (0.u,0.s) +Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0. secs (0.u,0.s) +Chars 7401 - 7407 [Proof.] 0. secs (0.u,0.s) +Chars 7412 - 7426 [intros~!;~auto.] 0. secs (0.u,0.s) +Chars 7429 - 7433 [Qed.] 0. secs (0.u,0.s) +Chars 7437 - 7525 [Lemma~subrelationH_refl_eq~{A~...] 0. secs (0.u,0.s) +Chars 7528 - 7534 [Proof.] 0. secs (0.u,0.s) +Chars 7539 - 7547 [intros~!.] 0. secs (0.u,0.s) +Chars 7552 - 7563 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7564 - 7568 [cbn.] 0. secs (0.u,0.s) +Chars 7569 - 7577 [apply~H.] 0. secs (0.u,0.s) +Chars 7580 - 7584 [Qed.] 0. secs (0.u,0.s) +Chars 7587 - 7604 [End~SubRelationH.] 0. secs (0.u,0.s) +Chars 7606 - 7628 [Section~RelationEqRel.] 0. secs (0.u,0.s) +Chars 7676 - 7746 [#[global]~Instance~eq_rel_Refl...] 0. secs (0.u,0.s) +Chars 7749 - 7755 [Proof.] 0. secs (0.u,0.s) +Chars 7760 - 7764 [red.] 0. secs (0.u,0.s) +Chars 7765 - 7809 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 7810 - 7816 [tauto.] 0. secs (0.u,0.s) +Chars 7819 - 7823 [Qed.] 0. secs (0.u,0.s) +Chars 7827 - 7897 [#[global]~Instance~eq_rel_Symm...] 0. secs (0.u,0.s) +Chars 7900 - 7906 [Proof.] 0. secs (0.u,0.s) +Chars 7911 - 7915 [red.] 0. secs (0.u,0.s) +Chars 7916 - 7960 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 7961 - 7967 [tauto.] 0. secs (0.u,0.s) +Chars 7970 - 7974 [Qed.] 0. secs (0.u,0.s) +Chars 7978 - 8050 [#[global]~Instance~eq_rel_Tran...] 0. secs (0.u,0.s) +Chars 8053 - 8059 [Proof.] 0. secs (0.u,0.s) +Chars 8064 - 8068 [red.] 0. secs (0.u,0.s) +Chars 8069 - 8113 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 8114 - 8121 [intros.] 0. secs (0.u,0.s) +Chars 8126 - 8141 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 8142 - 8155 [split;~eauto.] 0. secs (0.u,0.s) +Chars 8158 - 8162 [Qed.] 0. secs (0.u,0.s) +Chars 8166 - 8234 [#[global]~Instance~eq_rel_Equi...] 0. secs (0.u,0.s) +Chars 8237 - 8243 [Proof.] 0. secs (0.u,0.s) +Chars 8248 - 8273 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 8276 - 8280 [Qed.] 0. secs (0.u,0.s) +Chars 8398 - 8490 [#[global]~Instance~eq_rel_Prop...] 0. secs (0.u,0.s) +Chars 8493 - 8499 [Proof.] 0. secs (0.u,0.s) +Chars 8504 - 8527 [intros~?~?~EQ1~?~?~EQ2.] 0. secs (0.u,0.s) +Chars 8532 - 8561 [rewrite~EQ1,~EQ2;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8564 - 8568 [Qed.] 0. secs (0.u,0.s) +Chars 9006 - 9024 [End~RelationEqRel.] 0. secs (0.u,0.s) +Chars 9026 - 9050 [Section~RelationCompose.] 0. secs (0.u,0.s) +Chars 9085 - 9167 [Lemma~eq_id_r~:~forall~{A~B~:~...] 0. secs (0.u,0.s) +Chars 9170 - 9176 [Proof.] 0. secs (0.u,0.s) +Chars 9181 - 9196 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 9201 - 9202 [-] 0. secs (0.u,0.s) +Chars 9203 - 9212 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9213 - 9241 [destruct~H~as~(b,~(HR,~EQ)).] 0. secs (0.u,0.s) +Chars 9248 - 9262 [rewrite~<-~EQ.] 0. secs (0.u,0.s) +Chars 9263 - 9274 [assumption.] 0. secs (0.u,0.s) +Chars 9279 - 9280 [-] 0. secs (0.u,0.s) +Chars 9281 - 9285 [cbn.] 0. secs (0.u,0.s) +Chars 9286 - 9295 [exists~y.] 0. secs (0.u,0.s) +Chars 9296 - 9308 [split;~auto.] 0. secs (0.u,0.s) +Chars 9311 - 9315 [Qed.] 0. secs (0.u,0.s) +Chars 9319 - 9394 [Lemma~eq_id_l~:~forall~{A}~{B}...] 0. secs (0.u,0.s) +Chars 9397 - 9403 [Proof.] 0. secs (0.u,0.s) +Chars 9408 - 9423 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 9428 - 9429 [-] 0. secs (0.u,0.s) +Chars 9430 - 9439 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9440 - 9468 [destruct~H~as~(b,~(EQ,~HR)).] 0. secs (0.u,0.s) +Chars 9475 - 9486 [rewrite~EQ.] 0. secs (0.u,0.s) +Chars 9487 - 9498 [assumption.] 0. secs (0.u,0.s) +Chars 9503 - 9504 [-] 0. secs (0.u,0.s) +Chars 9505 - 9509 [cbn.] 0. secs (0.u,0.s) +Chars 9510 - 9519 [exists~x.] 0. secs (0.u,0.s) +Chars 9520 - 9532 [split;~auto.] 0. secs (0.u,0.s) +Chars 9535 - 9539 [Qed.] 0. secs (0.u,0.s) +Chars 9579 - 9718 [Lemma~compose_assoc~:~~~forall...] 0. secs (0.u,0.s) +Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) +Chars 9732 - 9757 [split;~intros~!;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 9762 - 9763 [-] 0. secs (0.u,0.s) +Chars 9764 - 9782 [repeat~destruct~H.] 0. secs (0.u,0.s) +Chars 9783 - 9802 [repeat~destruct~H0.] 0. secs (0.u,0.s) +Chars 9809 - 9840 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 9845 - 9846 [-] 0. secs (0.u,0.s) +Chars 9847 - 9865 [repeat~destruct~H.] 0. secs (0.u,0.s) +Chars 9866 - 9885 [repeat~destruct~H0.] 0. secs (0.u,0.s) +Chars 9892 - 9923 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 9926 - 9930 [Qed.] 0. secs (0.u,0.s) +Chars 9935 - 10123 [#[global]~Instance~Proper_comp...] 0. secs (0.u,0.s) +Chars 10126 - 10132 [Proof.] 0. secs (0.u,0.s) +Chars 10137 - 10168 [intros~?~?~?~S~S'~EQS~R~R'~EQR.] 0. secs (0.u,0.s) +Chars 10173 - 10276 [split;~intros~?~?~EQ;~destruct...] 0. secs (0.u,0.s) +Chars 10279 - 10283 [Qed.] 0. secs (0.u,0.s) +Chars 10285 - 10305 [End~RelationCompose.] 0. secs (0.u,0.s) +Chars 10307 - 10330 [Section~TransposeFacts.] 0. secs (0.u,0.s) +Chars 10805 - 10900 [Instance~transpose_Reflexive~~...] 0. secs (0.u,0.s) +Chars 10903 - 10909 [Proof.] 0. secs (0.u,0.s) +Chars 10914 - 10918 [red.] 0. secs (0.u,0.s) +Chars 10919 - 10928 [intros~x.] 0. secs (0.u,0.s) +Chars 10929 - 10938 [apply~RR.] 0. secs (0.u,0.s) +Chars 10941 - 10945 [Qed.] 0. secs (0.u,0.s) +Chars 10949 - 11044 [Instance~transpose_Symmetric~~...] 0. secs (0.u,0.s) +Chars 11047 - 11053 [Proof.] 0. secs (0.u,0.s) +Chars 11058 - 11098 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) +Chars 11099 - 11132 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 11137 - 11146 [apply~RS.] 0. secs (0.u,0.s) +Chars 11147 - 11158 [assumption.] 0. secs (0.u,0.s) +Chars 11161 - 11165 [Qed.] 0. secs (0.u,0.s) +Chars 11169 - 11268 [Instance~transpose_Transitive~...] 0. secs (0.u,0.s) +Chars 11271 - 11277 [Proof.] 0. secs (0.u,0.s) +Chars 11282 - 11322 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) +Chars 11327 - 11362 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 11367 - 11392 [unfold~TransitiveH~in~RT.] 0. secs (0.u,0.s) +Chars 11451 - 11473 [specialize~(RT~z~y~x).] 0. secs (0.u,0.s) +Chars 11474 - 11490 [apply~RT;~eauto.] 0. secs (0.u,0.s) +Chars 11493 - 11497 [Qed.] 0. secs (0.u,0.s) +Chars 11632 - 11691 [Lemma~transpose_eq~{A~:~Type}~...] 0. secs (0.u,0.s) +Chars 11694 - 11700 [Proof.] 0. secs (0.u,0.s) +Chars 11705 - 11751 [split;~unfold~transpose;~intro...] 0. secs (0.u,0.s) +Chars 11754 - 11758 [Qed.] 0. secs (0.u,0.s) +Chars 11762 - 11849 [Lemma~transpose_sym~{A~:~Type}...] 0. secs (0.u,0.s) +Chars 11852 - 11858 [Proof.] 0. secs (0.u,0.s) +Chars 11863 - 11906 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) +Chars 11911 - 11944 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 11945 - 11955 [red~in~RS.] 0. secs (0.u,0.s) +Chars 11960 - 11975 [apply~(RS~y~x).] 0. secs (0.u,0.s) +Chars 11976 - 11987 [assumption.] 0. secs (0.u,0.s) +Chars 11992 - 12025 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 12026 - 12036 [red~in~RS.] 0. secs (0.u,0.s) +Chars 12041 - 12056 [apply~(RS~x~y).] 0. secs (0.u,0.s) +Chars 12057 - 12068 [assumption.] 0. secs (0.u,0.s) +Chars 12071 - 12075 [Qed.] 0. secs (0.u,0.s) +Chars 12079 - 12206 [Lemma~transpose_compose~{A~B~C...] 0. secs (0.u,0.s) +Chars 12209 - 12215 [Proof.] 0. secs (0.u,0.s) +Chars 12220 - 12268 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) +Chars 12273 - 12274 [-] 0. secs (0.u,0.s) +Chars 12275 - 12303 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) +Chars 12304 - 12313 [exists~b.] 0. secs (0.u,0.s) +Chars 12314 - 12320 [tauto.] 0. secs (0.u,0.s) +Chars 12325 - 12326 [-] 0. secs (0.u,0.s) +Chars 12327 - 12355 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) +Chars 12356 - 12365 [exists~b.] 0. secs (0.u,0.s) +Chars 12366 - 12372 [tauto.] 0. secs (0.u,0.s) +Chars 12375 - 12379 [Qed.] 0. secs (0.u,0.s) +Chars 12383 - 12484 [#[global]~Instance~Proper_tran...] 0. secs (0.u,0.s) +Chars 12487 - 12493 [Proof.] 0. secs (0.u,0.s) +Chars 12498 - 12562 [intros~?~?~EQ;~split;~unfold~t...] 0. secs (0.u,0.s) +Chars 12565 - 12569 [Qed.] 0. secs (0.u,0.s) +Chars 12647 - 12732 [Lemma~transpose_involution~:~f...] 0. secs (0.u,0.s) +Chars 12735 - 12741 [Proof.] 0. secs (0.u,0.s) +Chars 12746 - 12759 [intros~A~B~R.] 0. secs (0.u,0.s) +Chars 12764 - 12770 [split.] 0. secs (0.u,0.s) +Chars 12775 - 12776 [-] 0. secs (0.u,0.s) +Chars 12777 - 12813 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 12814 - 12831 [unfold~transpose.] 0. secs (0.u,0.s) +Chars 12832 - 12838 [tauto.] 0. secs (0.u,0.s) +Chars 12843 - 12844 [-] 0. secs (0.u,0.s) +Chars 12845 - 12892 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 12893 - 12899 [tauto.] 0. secs (0.u,0.s) +Chars 12902 - 12906 [Qed.] 0. secs (0.u,0.s) +Chars 12910 - 13034 [Lemma~transpose_inclusion~:~~~...] 0. secs (0.u,0.s) +Chars 13037 - 13043 [Proof.] 0. secs (0.u,0.s) +Chars 13048 - 13065 [intros~A~B~R1~R2.] 0. secs (0.u,0.s) +Chars 13070 - 13076 [split.] 0. secs (0.u,0.s) +Chars 13081 - 13082 [-] 0. secs (0.u,0.s) +Chars 13083 - 13093 [intros~HS.] 0. secs (0.u,0.s) +Chars 13100 - 13152 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 13153 - 13159 [eauto.] 0. secs (0.u,0.s) +Chars 13164 - 13165 [-] 0. secs (0.u,0.s) +Chars 13166 - 13176 [intros~HS.] 0. secs (0.u,0.s) +Chars 13183 - 13235 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 13236 - 13242 [eauto.] 0. secs (0.u,0.s) +Chars 13245 - 13249 [Qed.] 0. secs (0.u,0.s) +Chars 13253 - 13353 [#[global]~Instance~transpose_P...] 0. secs (0.u,0.s) +Chars 13356 - 13362 [Proof.] 0. secs (0.u,0.s) +Chars 13367 - 13396 [intros~A~B~R1~R2~(Hab,~Hba).] 0. secs (0.u,0.s) +Chars 13401 - 13407 [split.] 0. secs (0.u,0.s) +Chars 13412 - 13413 [-] 0. secs (0.u,0.s) +Chars 13414 - 13447 [apply~transpose_inclusion~in~Hab.] 0. secs (0.u,0.s) +Chars 13448 - 13459 [assumption.] 0. secs (0.u,0.s) +Chars 13464 - 13465 [-] 0. secs (0.u,0.s) +Chars 13466 - 13499 [apply~transpose_inclusion~in~Hba.] 0. secs (0.u,0.s) +Chars 13500 - 13511 [assumption.] 0. secs (0.u,0.s) +Chars 13514 - 13518 [Qed.] 0. secs (0.u,0.s) +Chars 13583 - 13670 [Lemma~transpose_sym_eq_rel~{A}...] 0. secs (0.u,0.s) +Chars 13673 - 13679 [Proof.] 0. secs (0.u,0.s) +Chars 13684 - 13727 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) +Chars 13732 - 13733 [-] 0. secs (0.u,0.s) +Chars 13734 - 13767 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 13768 - 13792 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) +Chars 13793 - 13808 [apply~(RS~y~x).] 0. secs (0.u,0.s) +Chars 13809 - 13820 [assumption.] 0. secs (0.u,0.s) +Chars 13825 - 13826 [-] 0. secs (0.u,0.s) +Chars 13827 - 13860 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 13861 - 13885 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) +Chars 13886 - 13901 [apply~(RS~x~y).] 0. secs (0.u,0.s) +Chars 13902 - 13913 [assumption.] 0. secs (0.u,0.s) +Chars 13916 - 13920 [Qed.] 0. secs (0.u,0.s) +Chars 13956 - 14048 [Lemma~transpose_monotone~{A}~{...] 0. secs (0.u,0.s) +Chars 14051 - 14057 [Proof.] 0. secs (0.u,0.s) +Chars 14062 - 14088 [unfold~transpose;~intros~!.] 0. secs (0.u,0.s) +Chars 14093 - 14101 [apply~H.] 0. secs (0.u,0.s) +Chars 14102 - 14107 [auto.] 0. secs (0.u,0.s) +Chars 14110 - 14114 [Qed.] 0. secs (0.u,0.s) +Chars 14116 - 14135 [End~TransposeFacts.] 0. secs (0.u,0.s) +Chars 14137 - 14158 [Section~ProdRelFacts.] 0. secs (0.u,0.s) +Chars 14274 - 14294 [Section~Equivalence.] 0. secs (0.u,0.s) +Chars 14299 - 14320 [Context~{R~S~:~Type}.] 0. secs (0.u,0.s) +Chars 14325 - 14354 [Context~(RR~:~relationH~R~R).] 0. secs (0.u,0.s) +Chars 14359 - 14388 [Context~(SS~:~relationH~S~S).] 0. secs (0.u,0.s) +Chars 14394 - 14491 [#[global]~Instance~prod_rel_re...] 0. secs (0.u,0.s) +Chars 14496 - 14502 [Proof.] 0. secs (0.u,0.s) +Chars 14509 - 14519 [intros~[].] 0. secs (0.u,0.s) +Chars 14520 - 14552 [apply~ReflexiveH_Reflexive~in~H.] 0. secs (0.u,0.s) +Chars 14553 - 14586 [apply~ReflexiveH_Reflexive~in~H0.] 0. secs (0.u,0.s) +Chars 14593 - 14597 [cbn.] 0. secs (0.u,0.s) +Chars 14598 - 14604 [split.] 0. secs (0.u,0.s) +Chars 14605 - 14613 [apply~H.] 0. secs (0.u,0.s) +Chars 14614 - 14623 [apply~H0.] 0. secs (0.u,0.s) +Chars 14628 - 14632 [Qed.] 0. secs (0.u,0.s) +Chars 14638 - 14735 [#[global]~Instance~prod_rel_sy...] 0. secs (0.u,0.s) +Chars 14740 - 14746 [Proof.] 0. secs (0.u,0.s) +Chars 14753 - 14766 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 14767 - 14799 [apply~SymmetricH_Symmetric~in~H.] 0. secs (0.u,0.s) +Chars 14800 - 14833 [apply~SymmetricH_Symmetric~in~H0.] 0. secs (0.u,0.s) +Chars 14840 - 14873 [destruct~x;~destruct~y;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 14874 - 14886 [destruct~H1.] 0. secs (0.u,0.s) +Chars 14887 - 14893 [split.] 0. secs (0.u,0.s) +Chars 14900 - 14901 [-] 0. secs (0.u,0.s) +Chars 14902 - 14925 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) +Chars 14926 - 14934 [apply~H.] 0.02 secs (0.02u,0.s) +Chars 14935 - 14940 [auto.] 0. secs (0.u,0.s) +Chars 14947 - 14948 [-] 0. secs (0.u,0.s) +Chars 14949 - 14973 [unfold~SymmetricH~in~H0.] 0. secs (0.u,0.s) +Chars 14974 - 14983 [apply~H0.] 0. secs (0.u,0.s) +Chars 14984 - 14989 [auto.] 0. secs (0.u,0.s) +Chars 14994 - 14998 [Qed.] 0. secs (0.u,0.s) +Chars 15004 - 15106 [#[global]~Instance~prod_rel_tr...] 0. secs (0.u,0.s) +Chars 15111 - 15117 [Proof.] 0. secs (0.u,0.s) +Chars 15124 - 15132 [intros~!.] 0. secs (0.u,0.s) +Chars 15139 - 15173 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 15174 - 15209 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 15216 - 15240 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) +Chars 15247 - 15309 [inversion~H1;~inversion~H2;~su...] 0. secs (0.u,0.s) +Chars 15314 - 15318 [Qed.] 0. secs (0.u,0.s) +Chars 15324 - 15426 [#[global]~Instance~prod_rel_eq...] 0. secs (0.u,0.s) +Chars 15431 - 15437 [Proof.] 0. secs (0.u,0.s) +Chars 15444 - 15475 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 15480 - 15484 [Qed.] 0. secs (0.u,0.s) +Chars 15490 - 15571 [#[global]~Instance~prod_rel_PE...] 0. secs (0.u,0.s) +Chars 15576 - 15582 [Proof.] 0. secs (0.u,0.s) +Chars 15589 - 15601 [constructor.] 0. secs (0.u,0.s) +Chars 15608 - 15609 [-] 0. secs (0.u,0.s) +Chars 15610 - 15625 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 15634 - 15662 [eapply~SymmetricH_Symmetric.] 0. secs (0.u,0.s) +Chars 15671 - 15737 [eapply~@prod_rel_sym;~[~eapply...] 0. secs (0.u,0.s) +Chars 15746 - 15781 [eapply~SymmetricH_Symmetric;~e...] 0. secs (0.u,0.s) +Chars 15788 - 15789 [-] 0. secs (0.u,0.s) +Chars 15790 - 15820 [eapply~TransitiveH_Transitive.] 0. secs (0.u,0.s) +Chars 15829 - 15852 [eapply~@prod_rel_trans.] 0. secs (0.u,0.s) +Chars 15861 - 15862 [+] 0. secs (0.u,0.s) +Chars 15863 - 15878 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 15889 - 15926 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) +Chars 15935 - 15936 [+] 0. secs (0.u,0.s) +Chars 15937 - 15952 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 15963 - 16000 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) +Chars 16005 - 16009 [Qed.] 0. secs (0.u,0.s) +Chars 16013 - 16029 [End~Equivalence.] 0. secs (0.u,0.s) +Chars 16083 - 16235 [Lemma~prod_rel_monotone~{A~B~C...] 0. secs (0.u,0.s) +Chars 16238 - 16244 [Proof.] 0. secs (0.u,0.s) +Chars 16249 - 16257 [intros~!.] 0. secs (0.u,0.s) +Chars 16258 - 16272 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 16273 - 16284 [repeat~red.] 0. secs (0.u,0.s) +Chars 16285 - 16302 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 16303 - 16315 [destruct~H1.] 0. secs (0.u,0.s) +Chars 16320 - 16326 [split.] 0. secs (0.u,0.s) +Chars 16331 - 16332 [-] 0. secs (0.u,0.s) +Chars 16333 - 16341 [apply~H.] 0. secs (0.u,0.s) +Chars 16342 - 16353 [assumption.] 0. secs (0.u,0.s) +Chars 16358 - 16359 [-] 0. secs (0.u,0.s) +Chars 16360 - 16369 [apply~H0.] 0. secs (0.u,0.s) +Chars 16370 - 16381 [assumption.] 0. secs (0.u,0.s) +Chars 16384 - 16388 [Qed.] 0. secs (0.u,0.s) +Chars 16451 - 16527 [Lemma~prod_rel_eq~:~forall~A~B...] 0. secs (0.u,0.s) +Chars 16530 - 16536 [Proof.] 0. secs (0.u,0.s) +Chars 16541 - 16548 [intros.] 0. secs (0.u,0.s) +Chars 16553 - 16619 [unfold~eq_rel;~split;~unfold~s...] 0. secs (0.u,0.s) +Chars 16624 - 16625 [-] 0. secs (0.u,0.s) +Chars 16626 - 16640 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 16641 - 16657 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 16658 - 16669 [destruct~H.] 0. secs (0.u,0.s) +Chars 16670 - 16699 [cbn~in~*;~subst;~reflexivity.] 0. secs (0.u,0.s) +Chars 16704 - 16705 [-] 0. secs (0.u,0.s) +Chars 16706 - 16729 [destruct~x;~destruct~y.] 0. secs (0.u,0.s) +Chars 16730 - 16739 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 16740 - 16751 [repeat~red.] 0. secs (0.u,0.s) +Chars 16752 - 16764 [inversion~H.] 0. secs (0.u,0.s) +Chars 16765 - 16784 [split;~reflexivity.] 0. secs (0.u,0.s) +Chars 16787 - 16791 [Qed.] 0. secs (0.u,0.s) +Chars 16795 - 16941 [Definition~prod_fst_rel~{A~B~:...] 0. secs (0.u,0.s) +Chars 16945 - 17091 [Definition~prod_snd_rel~{A~B~:...] 0. secs (0.u,0.s) +Chars 17095 - 17277 [Lemma~prod_inv~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) +Chars 17280 - 17286 [Proof.] 0. secs (0.u,0.s) +Chars 17291 - 17298 [intros.] 0. secs (0.u,0.s) +Chars 17303 - 17314 [destruct~H.] 0. secs (0.u,0.s) +Chars 17315 - 17354 [unfold~prod_fst_rel,~prod_snd_...] 0. secs (0.u,0.s) +Chars 17355 - 17364 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 17369 - 17378 [apply~H0.] 0. secs (0.u,0.s) +Chars 17381 - 17385 [Qed.] 0. secs (0.u,0.s) +Chars 17389 - 17578 [Lemma~prod_compose~{A~B~C~D~E~...] 0. secs (0.u,0.s) +Chars 17581 - 17587 [Proof.] 0. secs (0.u,0.s) +Chars 17592 - 17607 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 17612 - 17613 [-] 0. secs (0.u,0.s) +Chars 17614 - 17628 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 17629 - 17640 [repeat~red.] 0. secs (0.u,0.s) +Chars 17641 - 17657 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 17658 - 17680 [destruct~H~as~[H1~H2].] 0. secs (0.u,0.s) +Chars 17687 - 17703 [unfold~fst,~snd.] 0. secs (0.u,0.s) +Chars 17704 - 17718 [cbn~in~H1,~H2.] 0. secs (0.u,0.s) +Chars 17725 - 17755 [edestruct~H1~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) +Chars 17762 - 17792 [edestruct~H2~as~(e,~(HT,~HU)).] 0. secs (0.u,0.s) +Chars 17799 - 17813 [exists~(b,~e).] 0. secs (0.u,0.s) +Chars 17814 - 17839 [split;~cbn;~split;~eauto.] 0. secs (0.u,0.s) +Chars 17844 - 17845 [-] 0. secs (0.u,0.s) +Chars 17846 - 17860 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 17861 - 17872 [repeat~red.] 0. secs (0.u,0.s) +Chars 17873 - 17889 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 17890 - 17916 [destruct~H~as~[x~[H1~H2]].] 0. secs (0.u,0.s) +Chars 17923 - 17929 [split.] 0. secs (0.u,0.s) +Chars 17936 - 17937 [+] 0. secs (0.u,0.s) +Chars 17938 - 17953 [exists~(fst~x).] 0. secs (0.u,0.s) +Chars 17954 - 17986 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) +Chars 17993 - 17994 [+] 0. secs (0.u,0.s) +Chars 17995 - 18010 [exists~(snd~x).] 0. secs (0.u,0.s) +Chars 18011 - 18043 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) +Chars 18046 - 18050 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18054 - 18160 [#[global]~Instance~Proper_prod...] 0. secs (0.u,0.s) +Chars 18163 - 18169 [Proof.] 0. secs (0.u,0.s) +Chars 18174 - 18182 [intros~!.] 0. secs (0.u,0.s) +Chars 18183 - 18283 [split;~intros~!;~destruct~x1,~...] 0.001 secs (0.001u,0.s) +Chars 18286 - 18290 [Qed.] 0. secs (0.u,0.s) +Chars 18523 - 18646 [Lemma~transpose_prod~{A~B~C~D~...] 0. secs (0.u,0.s) +Chars 18649 - 18655 [Proof.] 0. secs (0.u,0.s) +Chars 18660 - 18753 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) +Chars 18756 - 18760 [Qed.] 0. secs (0.u,0.s) +Chars 18761 - 18778 [End~ProdRelFacts.] 0. secs (0.u,0.s) +Chars 18781 - 18801 [Section~SumRelFacts.] 0. secs (0.u,0.s) +Chars 18915 - 18935 [Section~Equivalence.] 0. secs (0.u,0.s) +Chars 18940 - 18961 [Context~{A~B~:~Type}.] 0. secs (0.u,0.s) +Chars 18966 - 18994 [Context~(R~:~relationH~A~A).] 0. secs (0.u,0.s) +Chars 18999 - 19027 [Context~(S~:~relationH~B~B).] 0. secs (0.u,0.s) +Chars 19033 - 19127 [#[global]~Instance~sum_rel_ref...] 0. secs (0.u,0.s) +Chars 19132 - 19138 [Proof.] 0. secs (0.u,0.s) +Chars 19145 - 19155 [intros~[].] 0. secs (0.u,0.s) +Chars 19156 - 19189 [apply~ReflexiveH_Reflexive~in~RR.] 0. secs (0.u,0.s) +Chars 19196 - 19229 [apply~ReflexiveH_Reflexive~in~SR.] 0. secs (0.u,0.s) +Chars 19236 - 19240 [cbn.] 0. secs (0.u,0.s) +Chars 19247 - 19259 [constructor.] 0. secs (0.u,0.s) +Chars 19260 - 19269 [apply~RR.] 0. secs (0.u,0.s) +Chars 19276 - 19288 [constructor.] 0. secs (0.u,0.s) +Chars 19289 - 19298 [apply~SR.] 0. secs (0.u,0.s) +Chars 19303 - 19307 [Qed.] 0. secs (0.u,0.s) +Chars 19313 - 19406 [#[global]~Instance~sum_rel_sym...] 0. secs (0.u,0.s) +Chars 19411 - 19417 [Proof.] 0. secs (0.u,0.s) +Chars 19424 - 19437 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 19438 - 19471 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 19478 - 19511 [apply~SymmetricH_Symmetric~in~SS.] 0. secs (0.u,0.s) +Chars 19518 - 19532 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 19539 - 19540 [-] 0. secs (0.u,0.s) +Chars 19541 - 19553 [constructor.] 0. secs (0.u,0.s) +Chars 19554 - 19566 [inversion~H.] 0. secs (0.u,0.s) +Chars 19567 - 19573 [subst.] 0. secs (0.u,0.s) +Chars 19574 - 19583 [apply~RS.] 0. secs (0.u,0.s) +Chars 19584 - 19589 [auto.] 0. secs (0.u,0.s) +Chars 19596 - 19597 [-] 0. secs (0.u,0.s) +Chars 19598 - 19610 [inversion~H.] 0. secs (0.u,0.s) +Chars 19617 - 19618 [-] 0. secs (0.u,0.s) +Chars 19619 - 19631 [inversion~H.] 0. secs (0.u,0.s) +Chars 19638 - 19639 [-] 0. secs (0.u,0.s) +Chars 19640 - 19652 [constructor.] 0. secs (0.u,0.s) +Chars 19653 - 19665 [inversion~H.] 0. secs (0.u,0.s) +Chars 19666 - 19672 [subst.] 0. secs (0.u,0.s) +Chars 19673 - 19682 [apply~SS.] 0. secs (0.u,0.s) +Chars 19683 - 19688 [auto.] 0. secs (0.u,0.s) +Chars 19693 - 19697 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19703 - 19802 [#[global]~Instance~sum_rel_tra...] 0. secs (0.u,0.s) +Chars 19807 - 19813 [Proof.] 0. secs (0.u,0.s) +Chars 19820 - 19828 [intros~!.] 0. secs (0.u,0.s) +Chars 19835 - 19870 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 19871 - 19906 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 19913 - 19937 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) +Chars 19944 - 20014 [destruct~x,~y,~z;~try~contradi...] 0.006 secs (0.005u,0.001s) +Chars 20021 - 20030 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 20037 - 20049 [constructor.] 0. secs (0.u,0.s) +Chars 20050 - 20056 [eauto.] 0. secs (0.u,0.s) +Chars 20057 - 20069 [constructor.] 0. secs (0.u,0.s) +Chars 20070 - 20076 [eauto.] 0. secs (0.u,0.s) +Chars 20081 - 20085 [Qed.] 0.003 secs (0.002u,0.s) +Chars 20091 - 20190 [#[global]~Instance~sum_rel_eqv...] 0. secs (0.u,0.s) +Chars 20195 - 20201 [Proof.] 0. secs (0.u,0.s) +Chars 20208 - 20239 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 20244 - 20248 [Qed.] 0. secs (0.u,0.s) +Chars 20252 - 20268 [End~Equivalence.] 0. secs (0.u,0.s) +Chars 20321 - 20474 [Lemma~sum_rel_monotone~{A~B~C~...] 0. secs (0.u,0.s) +Chars 20477 - 20483 [Proof.] 0. secs (0.u,0.s) +Chars 20488 - 20586 [intros~!;~destruct~x,~y;~repea...] 0.002 secs (0.002u,0.s) +Chars 20589 - 20593 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20632 - 20704 [Lemma~sum_rel_eq~:~forall~A~B~...] 0. secs (0.u,0.s) +Chars 20707 - 20713 [Proof.] 0. secs (0.u,0.s) +Chars 20718 - 20725 [intros.] 0. secs (0.u,0.s) +Chars 20726 - 20730 [red.] 0. secs (0.u,0.s) +Chars 20735 - 20762 [split;~repeat~intro;~eauto.] 0. secs (0.u,0.s) +Chars 20767 - 20809 [inversion~H;~subst;~auto;~try~...] 0.001 secs (0.u,0.s) +Chars 20814 - 20820 [subst.] 0. secs (0.u,0.s) +Chars 20821 - 20852 [destruct~y;~constructor;~eauto.] 0. secs (0.u,0.s) +Chars 20855 - 20859 [Qed.] 0. secs (0.u,0.s) +Chars 20863 - 21049 [Lemma~sum_compose~{A~B~C~D~E~F...] 0. secs (0.u,0.s) +Chars 21052 - 21058 [Proof.] 0. secs (0.u,0.s) +Chars 21063 - 21078 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 21083 - 21084 [-] 0. secs (0.u,0.s) +Chars 21085 - 21106 [destruct~x,~y;~inv~H.] 0.006 secs (0.005u,0.s) +Chars 21113 - 21156 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) +Chars 21163 - 21206 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) +Chars 21211 - 21212 [-] 0. secs (0.u,0.s) +Chars 21213 - 21257 [destruct~H~as~(?,~(H1,~H2));~i...] 0.003 secs (0.003u,0.s) +Chars 21264 - 21293 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) +Chars 21300 - 21329 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) +Chars 21332 - 21336 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21340 - 21444 [#[global]~Instance~Proper_sum_...] 0. secs (0.u,0.s) +Chars 21447 - 21453 [Proof.] 0. secs (0.u,0.s) +Chars 21458 - 21466 [intros~!.] 0. secs (0.u,0.s) +Chars 21471 - 21659 [split;~intros~!;~destruct~x1,~...] 0.006 secs (0.006u,0.s) +Chars 21662 - 21666 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21892 - 22014 [Lemma~transpose_sum~{A~B~C~D~:...] 0. secs (0.u,0.s) +Chars 22017 - 22023 [Proof.] 0. secs (0.u,0.s) +Chars 22028 - 22173 [split;~unfold~transpose;~cbn;~...] 0.003 secs (0.003u,0.s) +Chars 22176 - 22180 [Qed.] 0.002 secs (0.002u,0.s) +Chars 22182 - 22198 [End~SumRelFacts.] 0. secs (0.u,0.s) +Chars 22200 - 22356 [Lemma~PER_reflexivityH1~:~~~fo...] 0. secs (0.u,0.s) +Chars 22357 - 22363 [Proof.] 0. secs (0.u,0.s) +Chars 22366 - 22373 [intros.] 0. secs (0.u,0.s) +Chars 22376 - 22392 [assert~(R~b~a).] 0. secs (0.u,0.s) +Chars 22393 - 22394 [{] 0. secs (0.u,0.s) +Chars 22395 - 22415 [specialize~(RS~a~b).] 0. secs (0.u,0.s) +Chars 22416 - 22425 [apply~RS.] 0. secs (0.u,0.s) +Chars 22426 - 22437 [assumption.] 0. secs (0.u,0.s) +Chars 22438 - 22439 [}] 0. secs (0.u,0.s) +Chars 22442 - 22464 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) +Chars 22465 - 22480 [apply~RT;~auto.] 0. secs (0.u,0.s) +Chars 22481 - 22485 [Qed.] 0. secs (0.u,0.s) +Chars 22487 - 22643 [Lemma~PER_reflexivityH2~:~~~fo...] 0. secs (0.u,0.s) +Chars 22644 - 22650 [Proof.] 0. secs (0.u,0.s) +Chars 22653 - 22660 [intros.] 0. secs (0.u,0.s) +Chars 22663 - 22678 [assert~(R~a~b).] 0. secs (0.u,0.s) +Chars 22679 - 22680 [{] 0. secs (0.u,0.s) +Chars 22681 - 22701 [specialize~(RS~b~a).] 0. secs (0.u,0.s) +Chars 22702 - 22711 [apply~RS.] 0. secs (0.u,0.s) +Chars 22712 - 22723 [assumption.] 0. secs (0.u,0.s) +Chars 22724 - 22725 [}] 0. secs (0.u,0.s) +Chars 22728 - 22750 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) +Chars 22751 - 22766 [apply~RT;~auto.] 0. secs (0.u,0.s) +Chars 22767 - 22771 [Qed.] 0. secs (0.u,0.s) +Chars 22773 - 23006 [Ltac~~PER_reflexivityH~:=~~~ma...] 0. secs (0.u,0.s) +Chars 23009 - 23107 [Definition~diagonal_prop~{A~:~...] 0. secs (0.u,0.s) +Chars 23109 - 23198 [Lemma~diagonal_prop_SymmetricH...] 0. secs (0.u,0.s) +Chars 23199 - 23205 [Proof.] 0. secs (0.u,0.s) +Chars 23208 - 23212 [red.] 0. secs (0.u,0.s) +Chars 23213 - 23228 [intros~a1~a2~H.] 0. secs (0.u,0.s) +Chars 23231 - 23240 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23241 - 23267 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) +Chars 23268 - 23274 [tauto.] 0. secs (0.u,0.s) +Chars 23275 - 23279 [Qed.] 0. secs (0.u,0.s) +Chars 23281 - 23372 [Lemma~diagonal_prop_Transitive...] 0. secs (0.u,0.s) +Chars 23373 - 23379 [Proof.] 0. secs (0.u,0.s) +Chars 23382 - 23386 [red.] 0. secs (0.u,0.s) +Chars 23387 - 23394 [intros.] 0. secs (0.u,0.s) +Chars 23397 - 23406 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23407 - 23433 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) +Chars 23436 - 23442 [tauto.] 0. secs (0.u,0.s) +Chars 23443 - 23447 [Qed.] 0. secs (0.u,0.s) +Chars 23449 - 23524 [Lemma~diagonal_prop_PER~{A~:~T...] 0. secs (0.u,0.s) +Chars 23525 - 23531 [Proof.] 0. secs (0.u,0.s) +Chars 23534 - 23546 [constructor.] 0. secs (0.u,0.s) +Chars 23549 - 23553 [red.] 0. secs (0.u,0.s) +Chars 23554 - 23561 [intros.] 0. secs (0.u,0.s) +Chars 23564 - 23573 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23574 - 23607 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) +Chars 23610 - 23614 [red.] 0. secs (0.u,0.s) +Chars 23615 - 23622 [intros.] 0. secs (0.u,0.s) +Chars 23625 - 23634 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23635 - 23668 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) +Chars 23669 - 23673 [Qed.] 0. secs (0.u,0.s) +Chars 23905 - 24127 [Definition~option_rel~{X~:~Typ...] 0. secs (0.u,0.s) +Chars 24128 - 24168 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) +Chars 24170 - 24255 [Lemma~option_rel_eq~:~~~forall...] 0. secs (0.u,0.s) +Chars 24256 - 24262 [Proof.] 0. secs (0.u,0.s) +Chars 24265 - 24328 [intros~?;~split;~intros~[]~[]~...] 0.001 secs (0.001u,0.s) +Chars 24329 - 24333 [Qed.] 0. secs (0.u,0.s) +Chars 24335 - 24375 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) +Chars 24377 - 24443 [Notation~prerel~E~D:=~(forall~...] 0. secs (0.u,0.s) +Chars 24444 - 24520 [Notation~postrel~E~D:=~(forall...] 0. secs (0.u,0.s) +Chars 24522 - 24852 [Variant~sum_prerel~{E1~E2~D1~D...] 0.001 secs (0.001u,0.s) +Chars 24854 - 25198 [Variant~sum_postrel~{E1~E2~D1~...] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/Monad.v.timing b/theories/Basics/Monad.v.timing new file mode 100644 index 00000000..81522051 --- /dev/null +++ b/theories/Basics/Monad.v.timing @@ -0,0 +1,21 @@ +Chars 65 - 107 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 109 - 158 [From~ExtLib~Require~Export~Str...] 0. secs (0.u,0.s) +Chars 160 - 229 [From~ITree~Require~Import~Basi...] 0.002 secs (0.002u,0.s) +Chars 246 - 272 [Set~Primitive~Projections.] 0. secs (0.u,0.s) +Chars 336 - 412 [Class~Eq1~(M~:~Type~->~Type)~:...] 0. secs (0.u,0.s) +Chars 414 - 436 [Arguments~eq1~{M~_~_}.] 0. secs (0.u,0.s) +Chars 437 - 484 [Infix~"≈"~:=~eq1~(~at~level~70...] 0. secs (0.u,0.s) +Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0. secs (0.u,0.s) +Chars 653 - 691 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) +Chars 693 - 706 [Section~Laws.] 0. secs (0.u,0.s) +Chars 710 - 737 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 740 - 763 [Context~{Eq1~:~@Eq1~M}.] 0. secs (0.u,0.s) +Chars 766 - 792 [Context~{Monad~:~Monad~M}.] 0. secs (0.u,0.s) +Chars 796 - 825 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 999 - 1456 [Class~MonadLawsE~:~Prop~:={~~~...] 0.002 secs (0.002u,0.s) +Chars 1458 - 1467 [End~Laws.] 0. secs (0.u,0.s) +Chars 1469 - 1509 [#[global]~Existing~Instance~Pr...] 0. secs (0.u,0.s) +Chars 1511 - 1542 [Arguments~bind_ret_l~{M~_~_~_}.] 0. secs (0.u,0.s) +Chars 1543 - 1574 [Arguments~bind_ret_r~{M~_~_~_}.] 0. secs (0.u,0.s) +Chars 1575 - 1605 [Arguments~bind_bind~{M~_~_~_}.] 0. secs (0.u,0.s) +Chars 1606 - 1638 [Arguments~Proper_bind~{M~_~_~_}.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadProp.v.timing b/theories/Basics/MonadProp.v.timing new file mode 100644 index 00000000..8ec87e24 --- /dev/null +++ b/theories/Basics/MonadProp.v.timing @@ -0,0 +1,232 @@ +Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.005 secs (0.003u,0.002s) +Chars 88 - 137 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) +Chars 253 - 287 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 288 - 308 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 309 - 336 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 337 - 358 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) +Chars 360 - 373 [Section~prop.] 0. secs (0.u,0.s) +Chars 376 - 534 [#[global]~Instance~Monad_Prop~...] 0. secs (0.u,0.s) +Chars 538 - 590 [#[global]~Instance~Eq1_Prop~:~...] 0. secs (0.u,0.s) +Chars 594 - 656 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) +Chars 659 - 665 [Proof.] 0. secs (0.u,0.s) +Chars 670 - 682 [constructor.] 0. secs (0.u,0.s) +Chars 687 - 688 [-] 0. secs (0.u,0.s) +Chars 689 - 715 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) +Chars 720 - 721 [-] 0. secs (0.u,0.s) +Chars 722 - 735 [repeat~intro.] 0. secs (0.u,0.s) +Chars 736 - 747 [destruct~H.] 0. secs (0.u,0.s) +Chars 748 - 760 [split;~auto.] 0. secs (0.u,0.s) +Chars 765 - 766 [-] 0. secs (0.u,0.s) +Chars 767 - 780 [repeat~intro.] 0. secs (0.u,0.s) +Chars 781 - 796 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 797 - 823 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) +Chars 826 - 830 [Qed.] 0. secs (0.u,0.s) +Chars 834 - 881 [Instance~MonadLawsE_Prop~:~(Mo...] 0. secs (0.u,0.s) +Chars 884 - 890 [Proof.] 0. secs (0.u,0.s) +Chars 895 - 907 [constructor.] 0. secs (0.u,0.s) +Chars 912 - 913 [-] 0. secs (0.u,0.s) +Chars 914 - 946 [split;~repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) +Chars 953 - 954 [+] 0. secs (0.u,0.s) +Chars 955 - 981 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 982 - 991 [red~in~H.] 0. secs (0.u,0.s) +Chars 992 - 1004 [subst;~auto.] 0. secs (0.u,0.s) +Chars 1011 - 1012 [+] 0. secs (0.u,0.s) +Chars 1013 - 1035 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 1036 - 1048 [reflexivity.] 0. secs (0.u,0.s) +Chars 1053 - 1054 [-] 0. secs (0.u,0.s) +Chars 1055 - 1061 [split.] 0. secs (0.u,0.s) +Chars 1062 - 1087 [repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) +Chars 1094 - 1095 [+] 0. secs (0.u,0.s) +Chars 1096 - 1122 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 1123 - 1146 [red~in~H0;~subst;~auto.] 0. secs (0.u,0.s) +Chars 1153 - 1154 [+] 0. secs (0.u,0.s) +Chars 1155 - 1159 [red.] 0. secs (0.u,0.s) +Chars 1160 - 1173 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1174 - 1196 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) +Chars 1214 - 1215 [-] 0. secs (0.u,0.s) +Chars 1216 - 1379 [intros;~split;~repeat~intro;~s...] 0.001 secs (0.u,0.s) +Chars 1384 - 1385 [-] 0. secs (0.u,0.s) +Chars 1386 - 1405 [repeat~intro;~auto.] 0. secs (0.u,0.s) +Chars 1406 - 1417 [destruct~H.] 0. secs (0.u,0.s) +Chars 1424 - 1532 [split;~simpl;~repeat~red;~intr...] 0.001 secs (0.u,0.s) +Chars 1535 - 1539 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) +Chars 1684 - 1690 [Proof.] 0. secs (0.u,0.s) +Chars 1695 - 1805 [repeat~red;~split;~repeat~intr...] 0.001 secs (0.001u,0.s) +Chars 1807 - 1811 [Qed.] 0.001 secs (0.u,0.s) +Chars 1815 - 1883 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) +Chars 1886 - 1892 [Proof.] 0. secs (0.u,0.s) +Chars 1897 - 1929 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 1934 - 1935 [-] 0. secs (0.u,0.s) +Chars 1936 - 1957 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 1958 - 1969 [destruct~H.] 0. secs (0.u,0.s) +Chars 1976 - 1977 [+] 0. secs (0.u,0.s) +Chars 1978 - 1993 [exists~(inr~x).] 0. secs (0.u,0.s) +Chars 1994 - 2018 [split;~repeat~red;~auto.] 0. secs (0.u,0.s) +Chars 2025 - 2026 [+] 0. secs (0.u,0.s) +Chars 2027 - 2049 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2054 - 2055 [-] 0. secs (0.u,0.s) +Chars 2056 - 2077 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 2078 - 2108 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) +Chars 2109 - 2121 [destruct~x0.] 0. secs (0.u,0.s) +Chars 2128 - 2129 [+] 0. secs (0.u,0.s) +Chars 2130 - 2152 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 2159 - 2160 [+] 0. secs (0.u,0.s) +Chars 2161 - 2175 [constructor~1.] 0. secs (0.u,0.s) +Chars 2176 - 2193 [repeat~red~in~H2.] 0. secs (0.u,0.s) +Chars 2194 - 2206 [subst;~auto.] 0. secs (0.u,0.s) +Chars 2209 - 2213 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2217 - 2287 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) +Chars 2290 - 2296 [Proof.] 0. secs (0.u,0.s) +Chars 2301 - 2333 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 2338 - 2339 [-] 0. secs (0.u,0.s) +Chars 2340 - 2361 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 2362 - 2392 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) +Chars 2393 - 2406 [induction~H1.] 0. secs (0.u,0.s) +Chars 2413 - 2414 [+] 0. secs (0.u,0.s) +Chars 2415 - 2429 [constructor~1.] 0. secs (0.u,0.s) +Chars 2430 - 2452 [eexists;~split;~eauto.] 0.007 secs (0.007u,0.s) +Chars 2453 - 2475 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2476 - 2488 [reflexivity.] 0. secs (0.u,0.s) +Chars 2495 - 2496 [+] 0. secs (0.u,0.s) +Chars 2497 - 2531 [econstructor~2;~repeat~red;~ea...] 0. secs (0.u,0.s) +Chars 2540 - 2562 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2563 - 2591 [eexists;~split;~reflexivity.] 0. secs (0.u,0.s) +Chars 2596 - 2597 [-] 0. secs (0.u,0.s) +Chars 2598 - 2619 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 2626 - 2686 [induction~H;~repeat~red~in~H;~...] 0. secs (0.u,0.s) +Chars 2693 - 2694 [+] 0. secs (0.u,0.s) +Chars 2695 - 2756 [destruct~x;~destruct~H2~as~(?,...] 0. secs (0.u,0.s) +Chars 2765 - 2787 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2788 - 2802 [constructor~1.] 0. secs (0.u,0.s) +Chars 2803 - 2808 [auto.] 0. secs (0.u,0.s) +Chars 2815 - 2816 [+] 0. secs (0.u,0.s) +Chars 2817 - 2888 [destruct~x;~destruct~H3~as~(?,...] 0. secs (0.u,0.s) +Chars 2897 - 2947 [decompose~[~ex~and~]~IHiter_Pr...] 0. secs (0.u,0.s) +Chars 2956 - 2984 [inversion~H;~clear~H;~subst.] 0. secs (0.u,0.s) +Chars 2993 - 3015 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3016 - 3038 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 3041 - 3045 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3049 - 3123 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) +Chars 3126 - 3132 [Proof.] 0. secs (0.u,0.s) +Chars 3137 - 3169 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 3174 - 3175 [-] 0. secs (0.u,0.s) +Chars 3176 - 3215 [induction~H;~destruct~H~as~(?,...] 0. secs (0.u,0.s) +Chars 3222 - 3223 [+] 0. secs (0.u,0.s) +Chars 3224 - 3253 [destruct~x;~repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 3262 - 3263 [*] 0. secs (0.u,0.s) +Chars 3264 - 3286 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3287 - 3305 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3306 - 3328 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3329 - 3341 [reflexivity.] 0. secs (0.u,0.s) +Chars 3350 - 3351 [*] 0. secs (0.u,0.s) +Chars 3352 - 3372 [inversion~H0;~subst.] 0. secs (0.u,0.s) +Chars 3373 - 3395 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3396 - 3414 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3421 - 3422 [+] 0. secs (0.u,0.s) +Chars 3423 - 3470 [destruct~x;~repeat~red~in~H1;~...] 0. secs (0.u,0.s) +Chars 3479 - 3515 [destruct~IHiter_Prop~as~(?,~(?...] 0. secs (0.u,0.s) +Chars 3516 - 3550 [destruct~x;~eexists;~split;~ea...] 0. secs (0.u,0.s) +Chars 3559 - 3560 [*] 0. secs (0.u,0.s) +Chars 3561 - 3583 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 3584 - 3606 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3615 - 3616 [*] 0. secs (0.u,0.s) +Chars 3617 - 3634 [repeat~red~in~H3.] 0. secs (0.u,0.s) +Chars 3635 - 3641 [subst.] 0. secs (0.u,0.s) +Chars 3642 - 3653 [repeat~red.] 0. secs (0.u,0.s) +Chars 3654 - 3668 [constructor~1.] 0. secs (0.u,0.s) +Chars 3669 - 3691 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3696 - 3697 [-] 0. secs (0.u,0.s) +Chars 3698 - 3724 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 3725 - 3755 [destruct~x0;~repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 3762 - 3763 [+] 0. secs (0.u,0.s) +Chars 3764 - 3788 [generalize~dependent~a0.] 0. secs (0.u,0.s) +Chars 3789 - 3837 [induction~H0;~intros;~destruct...] 0. secs (0.u,0.s) +Chars 3846 - 3847 [*] 0. secs (0.u,0.s) +Chars 3848 - 3859 [destruct~x.] 0. secs (0.u,0.s) +Chars 3870 - 3872 [--] 0. secs (0.u,0.s) +Chars 3873 - 3895 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 3896 - 3918 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3932 - 3946 [constructor~1.] 0. secs (0.u,0.s) +Chars 3947 - 3969 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3970 - 3982 [reflexivity.] 0. secs (0.u,0.s) +Chars 3993 - 3995 [--] 0. secs (0.u,0.s) +Chars 3996 - 4026 [inversion~H1;~clear~H1;~subst.] 0. secs (0.u,0.s) +Chars 4027 - 4041 [constructor~1.] 0. secs (0.u,0.s) +Chars 4042 - 4064 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 4073 - 4074 [*] 0. secs (0.u,0.s) +Chars 4075 - 4104 [destruct~x;~try~inversion~H2.] 0. secs (0.u,0.s) +Chars 4115 - 4137 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 4138 - 4142 [2:~{] 0. secs (0.u,0.s) +Chars 4143 - 4161 [apply~IHiter_Prop.] 0. secs (0.u,0.s) +Chars 4162 - 4171 [apply~H2.] 0. secs (0.u,0.s) +Chars 4172 - 4173 [}] 0. secs (0.u,0.s) +Chars 4184 - 4206 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 4213 - 4214 [+] 0. secs (0.u,0.s) +Chars 4215 - 4221 [subst.] 0. secs (0.u,0.s) +Chars 4222 - 4236 [constructor~1.] 0. secs (0.u,0.s) +Chars 4237 - 4259 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 4260 - 4272 [reflexivity.] 0. secs (0.u,0.s) +Chars 4275 - 4279 [Qed.] 0.016 secs (0.016u,0.s) +Chars 4283 - 4362 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) +Chars 4365 - 4371 [Proof.] 0. secs (0.u,0.s) +Chars 4376 - 4408 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 4413 - 4414 [-] 0. secs (0.u,0.s) +Chars 4415 - 4427 [induction~H.] 0. secs (0.u,0.s) +Chars 4434 - 4435 [+] 0. secs (0.u,0.s) +Chars 4436 - 4453 [remember~(inr~r).] 0. secs (0.u,0.s) +Chars 4454 - 4477 [generalize~dependent~r.] 0. secs (0.u,0.s) +Chars 4478 - 4505 [induction~H;~intros;~subst.] 0. secs (0.u,0.s) +Chars 4514 - 4515 [*] 0. secs (0.u,0.s) +Chars 4516 - 4530 [constructor~1.] 0. secs (0.u,0.s) +Chars 4531 - 4566 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4575 - 4576 [*] 0. secs (0.u,0.s) +Chars 4577 - 4592 [econstructor~2.] 0. secs (0.u,0.s) +Chars 4593 - 4597 [2:~{] 0. secs (0.u,0.s) +Chars 4598 - 4622 [apply~IHiter_Prop;~auto.] 0. secs (0.u,0.s) +Chars 4623 - 4624 [}] 0. secs (0.u,0.s) +Chars 4635 - 4670 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4677 - 4678 [+] 0. secs (0.u,0.s) +Chars 4679 - 4697 [remember~(inl~i').] 0. secs (0.u,0.s) +Chars 4698 - 4722 [generalize~dependent~i'.] 0. secs (0.u,0.s) +Chars 4723 - 4750 [induction~H;~intros;~subst.] 0.001 secs (0.001u,0.s) +Chars 4759 - 4760 [*] 0. secs (0.u,0.s) +Chars 4761 - 4783 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 4784 - 4819 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4828 - 4829 [*] 0. secs (0.u,0.s) +Chars 4830 - 4845 [econstructor~2.] 0. secs (0.u,0.s) +Chars 4846 - 4850 [2:~{] 0. secs (0.u,0.s) +Chars 4851 - 4877 [eapply~IHiter_Prop;~eauto.] 0. secs (0.u,0.s) +Chars 4878 - 4879 [}] 0. secs (0.u,0.s) +Chars 4890 - 4925 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4930 - 4931 [-] 0. secs (0.u,0.s) +Chars 4932 - 4944 [induction~H.] 0. secs (0.u,0.s) +Chars 4951 - 4952 [+] 0. secs (0.u,0.s) +Chars 4953 - 4979 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 4980 - 5039 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) +Chars 5048 - 5062 [constructor~1.] 0. secs (0.u,0.s) +Chars 5063 - 5077 [constructor~1.] 0. secs (0.u,0.s) +Chars 5078 - 5083 [auto.] 0. secs (0.u,0.s) +Chars 5090 - 5091 [+] 0. secs (0.u,0.s) +Chars 5092 - 5118 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 5127 - 5186 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) +Chars 5195 - 5196 [*] 0. secs (0.u,0.s) +Chars 5197 - 5218 [destruct~IHiter_Prop.] 0. secs (0.u,0.s) +Chars 5229 - 5231 [--] 0. secs (0.u,0.s) +Chars 5232 - 5246 [constructor~1.] 0. secs (0.u,0.s) +Chars 5247 - 5269 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5280 - 5282 [--] 0. secs (0.u,0.s) +Chars 5283 - 5305 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5306 - 5328 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5337 - 5338 [*] 0. secs (0.u,0.s) +Chars 5339 - 5361 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5362 - 5376 [constructor~1.] 0. secs (0.u,0.s) +Chars 5377 - 5385 [apply~H.] 0. secs (0.u,0.s) +Chars 5388 - 5392 [Qed.] 0.004 secs (0.004u,0.s) +Chars 5396 - 5462 [#[global]~Instance~Iterative_P...] 0. secs (0.u,0.s) +Chars 5465 - 5471 [Proof.] 0. secs (0.u,0.s) +Chars 5476 - 5507 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5510 - 5514 [Qed.] 0. secs (0.u,0.s) +Chars 5516 - 5525 [End~prop.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadState.v.timing b/theories/Basics/MonadState.v.timing new file mode 100644 index 00000000..c182b133 --- /dev/null +++ b/theories/Basics/MonadState.v.timing @@ -0,0 +1,400 @@ +Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.003u,0.002s) +Chars 73 - 122 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.009 secs (0.007u,0.002s) +Chars 271 - 305 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 306 - 326 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 327 - 354 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 355 - 376 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) +Chars 378 - 392 [Section~State.] 0. secs (0.u,0.s) +Chars 395 - 421 [Variable~(M~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 424 - 442 [Variable~(S~:~Type).] 0. secs (0.u,0.s) +Chars 445 - 467 [Context~{EQM~:~Eq1~M}.] 0. secs (0.u,0.s) +Chars 470 - 492 [Context~{HM~:~Monad~M}.] 0. secs (0.u,0.s) +Chars 495 - 535 [Context~{HEQP~:~@Eq1Equivalenc...] 0. secs (0.u,0.s) +Chars 538 - 571 [Context~{ML~:~@MonadLawsE~M~_~...] 0. secs (0.u,0.s) +Chars 575 - 622 [#[global]~Instance~Eq1_stateTM...] 0. secs (0.u,0.s) +Chars 625 - 631 [Proof.] 0. secs (0.u,0.s) +Chars 636 - 678 [exact~(fun~a~=>~pointwise_rela...] 0. secs (0.u,0.s) +Chars 681 - 689 [Defined.] 0. secs (0.u,0.s) +Chars 693 - 777 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) +Chars 780 - 786 [Proof.] 0. secs (0.u,0.s) +Chars 789 - 801 [constructor.] 0. secs (0.u,0.s) +Chars 804 - 805 [-] 0. secs (0.u,0.s) +Chars 806 - 817 [repeat~red.] 0. secs (0.u,0.s) +Chars 822 - 834 [reflexivity.] 0. secs (0.u,0.s) +Chars 837 - 838 [-] 0. secs (0.u,0.s) +Chars 839 - 850 [repeat~red.] 0. secs (0.u,0.s) +Chars 851 - 858 [intros.] 0. secs (0.u,0.s) +Chars 859 - 868 [symmetry.] 0. secs (0.u,0.s) +Chars 869 - 877 [apply~H.] 0. secs (0.u,0.s) +Chars 880 - 881 [-] 0. secs (0.u,0.s) +Chars 882 - 893 [repeat~red.] 0. secs (0.u,0.s) +Chars 894 - 901 [intros.] 0. secs (0.u,0.s) +Chars 902 - 923 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 924 - 932 [apply~H.] 0. secs (0.u,0.s) +Chars 934 - 943 [apply~H0.] 0. secs (0.u,0.s) +Chars 946 - 950 [Qed.] 0. secs (0.u,0.s) +Chars 954 - 1013 [Instance~MonadLawsE_stateTM~:~...] 0. secs (0.u,0.s) +Chars 1016 - 1022 [Proof.] 0. secs (0.u,0.s) +Chars 1025 - 1037 [constructor.] 0. secs (0.u,0.s) +Chars 1040 - 1041 [-] 0. secs (0.u,0.s) +Chars 1042 - 1046 [cbn.] 0. secs (0.u,0.s) +Chars 1047 - 1062 [intros~a~b~f~x.] 0. secs (0.u,0.s) +Chars 1067 - 1078 [repeat~red.] 0. secs (0.u,0.s) +Chars 1080 - 1089 [intros~s.] 0. secs (0.u,0.s) +Chars 1094 - 1113 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) +Chars 1129 - 1130 [-] 0. secs (0.u,0.s) +Chars 1131 - 1135 [cbn.] 0. secs (0.u,0.s) +Chars 1136 - 1147 [intros~a~x.] 0. secs (0.u,0.s) +Chars 1152 - 1163 [repeat~red.] 0. secs (0.u,0.s) +Chars 1164 - 1173 [intros~s.] 0. secs (0.u,0.s) +Chars 1178 - 1279 [assert~~(EQM~_~(bind~(x~s)~(fu...] 0. secs (0.u,0.s) +Chars 1284 - 1285 [{] 0. secs (0.u,0.s) +Chars 1286 - 1304 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 1305 - 1317 [reflexivity.] 0. secs (0.u,0.s) +Chars 1318 - 1325 [intros.] 0. secs (0.u,0.s) +Chars 1327 - 1338 [repeat~red.] 0. secs (0.u,0.s) +Chars 1339 - 1364 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) +Chars 1365 - 1366 [}] 0. secs (0.u,0.s) +Chars 1371 - 1381 [rewrite~H.] 0. secs (0.u,0.s) +Chars 1386 - 1405 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) +Chars 1406 - 1418 [reflexivity.] 0. secs (0.u,0.s) +Chars 1421 - 1422 [-] 0. secs (0.u,0.s) +Chars 1423 - 1427 [cbn.] 0. secs (0.u,0.s) +Chars 1428 - 1447 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) +Chars 1452 - 1463 [repeat~red.] 0. secs (0.u,0.s) +Chars 1464 - 1473 [intros~s.] 0. secs (0.u,0.s) +Chars 1478 - 1496 [rewrite~bind_bind.] 0.001 secs (0.u,0.s) +Chars 1501 - 1519 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 1524 - 1525 [+] 0. secs (0.u,0.s) +Chars 1526 - 1538 [reflexivity.] 0. secs (0.u,0.s) +Chars 1543 - 1544 [+] 0. secs (0.u,0.s) +Chars 1545 - 1557 [reflexivity.] 0. secs (0.u,0.s) +Chars 1560 - 1561 [-] 0. secs (0.u,0.s) +Chars 1562 - 1573 [repeat~red.] 0. secs (0.u,0.s) +Chars 1574 - 1602 [intros~a~b~x~y~H~x0~y0~H0~s.] 0. secs (0.u,0.s) +Chars 1607 - 1625 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 1630 - 1631 [+] 0. secs (0.u,0.s) +Chars 1632 - 1640 [apply~H.] 0. secs (0.u,0.s) +Chars 1645 - 1646 [+] 0. secs (0.u,0.s) +Chars 1647 - 1658 [repeat~red.] 0. secs (0.u,0.s) +Chars 1665 - 1677 [destruct~a0.] 0. secs (0.u,0.s) +Chars 1684 - 1693 [apply~H0.] 0. secs (0.u,0.s) +Chars 1696 - 1700 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1704 - 1739 [Context~{IM~:~Iter~(Kleisli~M)...] 0. secs (0.u,0.s) +Chars 1742 - 1782 [Context~{CM~:~Iterative~(Kleis...] 0. secs (0.u,0.s) +Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0. secs (0.u,0.s) +Chars 1948 - 2110 [Definition~iso_inv~{a~b~:~Type...] 0. secs (0.u,0.s) +Chars 2114 - 2254 [Definition~internalize~{a~b~:~...] 0. secs (0.u,0.s) +Chars 2258 - 2377 [Lemma~internalize_eq~{a~b~:~Ty...] 0. secs (0.u,0.s) +Chars 2380 - 2386 [Proof.] 0. secs (0.u,0.s) +Chars 2391 - 2397 [split.] 0. secs (0.u,0.s) +Chars 2402 - 2403 [-] 0. secs (0.u,0.s) +Chars 2404 - 2411 [intros.] 0. secs (0.u,0.s) +Chars 2418 - 2429 [repeat~red.] 0. secs (0.u,0.s) +Chars 2430 - 2442 [destruct~a0.] 0.008 secs (0.008u,0.s) +Chars 2449 - 2468 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 2469 - 2473 [cbn.] 0. secs (0.u,0.s) +Chars 2475 - 2483 [apply~H.] 0. secs (0.u,0.s) +Chars 2488 - 2489 [-] 0. secs (0.u,0.s) +Chars 2490 - 2497 [intros.] 0. secs (0.u,0.s) +Chars 2504 - 2515 [repeat~red.] 0. secs (0.u,0.s) +Chars 2516 - 2523 [intros.] 0. secs (0.u,0.s) +Chars 2530 - 2554 [unfold~internalize~in~H.] 0. secs (0.u,0.s) +Chars 2561 - 2585 [specialize~(H~(a1,~a0)).] 0. secs (0.u,0.s) +Chars 2592 - 2600 [apply~H.] 0. secs (0.u,0.s) +Chars 2603 - 2607 [Qed.] 0. secs (0.u,0.s) +Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0. secs (0.u,0.s) +Chars 2779 - 2785 [Proof.] 0. secs (0.u,0.s) +Chars 2790 - 2801 [repeat~red.] 0. secs (0.u,0.s) +Chars 2806 - 2818 [destruct~a0.] 0. secs (0.u,0.s) +Chars 2823 - 2827 [cbn.] 0. secs (0.u,0.s) +Chars 2832 - 2851 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 2856 - 2880 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 2885 - 2889 [cbn.] 0. secs (0.u,0.s) +Chars 2894 - 2906 [reflexivity.] 0. secs (0.u,0.s) +Chars 2909 - 2913 [Qed.] 0. secs (0.u,0.s) +Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0. secs (0.u,0.s) +Chars 3092 - 3098 [Proof.] 0. secs (0.u,0.s) +Chars 3103 - 3114 [repeat~red.] 0. secs (0.u,0.s) +Chars 3119 - 3131 [destruct~a0.] 0. secs (0.u,0.s) +Chars 3136 - 3173 [unfold~internalize,~cat,~Cat_K...] 0. secs (0.u,0.s) +Chars 3174 - 3178 [cbn.] 0. secs (0.u,0.s) +Chars 3183 - 3207 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) +Chars 3212 - 3213 [-] 0. secs (0.u,0.s) +Chars 3214 - 3226 [reflexivity.] 0. secs (0.u,0.s) +Chars 3231 - 3232 [-] 0. secs (0.u,0.s) +Chars 3233 - 3244 [repeat~red.] 0. secs (0.u,0.s) +Chars 3251 - 3263 [destruct~a1.] 0. secs (0.u,0.s) +Chars 3270 - 3282 [unfold~pure.] 0. secs (0.u,0.s) +Chars 3283 - 3295 [reflexivity.] 0. secs (0.u,0.s) +Chars 3298 - 3302 [Qed.] 0. secs (0.u,0.s) +Chars 3307 - 3370 [#[global]~Instance~Iter_stateT...] 0. secs (0.u,0.s) +Chars 3373 - 3379 [Proof.] 0. secs (0.u,0.s) +Chars 3384 - 3515 [exact~~~(fun~(a~b~:~Type)~(f~:...] 0. secs (0.u,0.s) +Chars 3518 - 3526 [Defined.] 0. secs (0.u,0.s) +Chars 3530 - 3670 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) +Chars 3673 - 3679 [Proof.] 0. secs (0.u,0.s) +Chars 3684 - 3696 [destruct~CM.] 0. secs (0.u,0.s) +Chars 3701 - 3712 [repeat~red.] 0. secs (0.u,0.s) +Chars 3717 - 3739 [intros~a~b~x~y~H~a0~s.] 0. secs (0.u,0.s) +Chars 3744 - 3772 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 3777 - 3788 [repeat~red.] 0. secs (0.u,0.s) +Chars 3793 - 3805 [destruct~a1.] 0. secs (0.u,0.s) +Chars 3810 - 3814 [cbn.] 0. secs (0.u,0.s) +Chars 3819 - 3837 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 3842 - 3843 [-] 0. secs (0.u,0.s) +Chars 3844 - 3852 [apply~H.] 0. secs (0.u,0.s) +Chars 3857 - 3858 [-] 0. secs (0.u,0.s) +Chars 3859 - 3870 [repeat~red.] 0. secs (0.u,0.s) +Chars 3871 - 3912 [destruct~a2~as~[s'~[x1|~y1]];~...] 0. secs (0.u,0.s) +Chars 3914 - 3918 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3922 - 3997 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) +Chars 4000 - 4006 [Proof.] 0. secs (0.u,0.s) +Chars 4009 - 4021 [destruct~CM.] 0. secs (0.u,0.s) +Chars 4024 - 4042 [unfold~IterUnfold.] 0. secs (0.u,0.s) +Chars 4045 - 4058 [intros~a~b~f.] 0. secs (0.u,0.s) +Chars 4061 - 4072 [repeat~red.] 0. secs (0.u,0.s) +Chars 4075 - 4087 [intros~a0~s.] 0. secs (0.u,0.s) +Chars 4090 - 4114 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 4117 - 4143 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) +Chars 4146 - 4171 [rewrite~iterative_unfold.] 0.001 secs (0.001u,0.s) +Chars 4222 - 4246 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 4249 - 4255 [simpl.] 0. secs (0.u,0.s) +Chars 4258 - 4276 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) +Chars 4279 - 4297 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 4300 - 4301 [+] 0. secs (0.u,0.s) +Chars 4302 - 4314 [reflexivity.] 0. secs (0.u,0.s) +Chars 4317 - 4318 [+] 0. secs (0.u,0.s) +Chars 4319 - 4330 [repeat~red.] 0. secs (0.u,0.s) +Chars 4331 - 4366 [destruct~a1~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) +Chars 4371 - 4372 [*] 0. secs (0.u,0.s) +Chars 4373 - 4385 [unfold~pure.] 0. secs (0.u,0.s) +Chars 4386 - 4405 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 4412 - 4424 [reflexivity.] 0. secs (0.u,0.s) +Chars 4429 - 4430 [*] 0. secs (0.u,0.s) +Chars 4431 - 4443 [unfold~pure.] 0. secs (0.u,0.s) +Chars 4444 - 4463 [rewrite~bind_ret_l.] 0.014 secs (0.013u,0.s) +Chars 4470 - 4482 [reflexivity.] 0. secs (0.u,0.s) +Chars 4485 - 4489 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4493 - 4570 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) +Chars 4573 - 4579 [Proof.] 0. secs (0.u,0.s) +Chars 4584 - 4596 [destruct~CM.] 0. secs (0.u,0.s) +Chars 4601 - 4620 [unfold~IterNatural.] 0. secs (0.u,0.s) +Chars 4625 - 4642 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 4647 - 4658 [repeat~red.] 0. secs (0.u,0.s) +Chars 4663 - 4675 [intros~a0~s.] 0. secs (0.u,0.s) +Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.013 secs (0.013u,0.s) +Chars 4718 - 4746 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 4751 - 4762 [repeat~red.] 0. secs (0.u,0.s) +Chars 4767 - 4779 [destruct~a1.] 0. secs (0.u,0.s) +Chars 4784 - 4808 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 4813 - 4817 [cbn.] 0. secs (0.u,0.s) +Chars 4822 - 4841 [rewrite~!bind_bind.] 0.01 secs (0.008u,0.002s) +Chars 4846 - 4864 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 4869 - 4870 [-] 0. secs (0.u,0.s) +Chars 4871 - 4883 [reflexivity.] 0. secs (0.u,0.s) +Chars 4888 - 4889 [-] 0. secs (0.u,0.s) +Chars 4890 - 4901 [repeat~red.] 0. secs (0.u,0.s) +Chars 4902 - 4937 [destruct~a2~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) +Chars 4944 - 4945 [+] 0. secs (0.u,0.s) +Chars 4946 - 4958 [unfold~pure.] 0. secs (0.u,0.s) +Chars 4959 - 4978 [rewrite~bind_ret_l.] 0.003 secs (0.002u,0.s) +Chars 4987 - 4991 [cbn.] 0. secs (0.u,0.s) +Chars 4992 - 5016 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 5017 - 5021 [cbn.] 0. secs (0.u,0.s) +Chars 5030 - 5048 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 5057 - 5076 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5085 - 5104 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5113 - 5117 [cbn.] 0. secs (0.u,0.s) +Chars 5126 - 5149 [unfold~id_,~Id_Kleisli.] 0. secs (0.u,0.s) +Chars 5150 - 5162 [unfold~pure.] 0. secs (0.u,0.s) +Chars 5163 - 5182 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5183 - 5195 [reflexivity.] 0. secs (0.u,0.s) +Chars 5202 - 5203 [+] 0. secs (0.u,0.s) +Chars 5204 - 5216 [unfold~pure.] 0. secs (0.u,0.s) +Chars 5217 - 5236 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 5245 - 5249 [cbn.] 0. secs (0.u,0.s) +Chars 5250 - 5274 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 5275 - 5279 [cbn.] 0. secs (0.u,0.s) +Chars 5288 - 5306 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 5315 - 5333 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 5342 - 5343 [*] 0. secs (0.u,0.s) +Chars 5344 - 5356 [reflexivity.] 0. secs (0.u,0.s) +Chars 5365 - 5366 [*] 0. secs (0.u,0.s) +Chars 5367 - 5378 [repeat~red.] 0. secs (0.u,0.s) +Chars 5379 - 5391 [destruct~a2.] 0. secs (0.u,0.s) +Chars 5402 - 5406 [cbn.] 0. secs (0.u,0.s) +Chars 5417 - 5436 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 5437 - 5449 [reflexivity.] 0. secs (0.u,0.s) +Chars 5452 - 5456 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0.001 secs (0.001u,0.s) +Chars 5644 - 5650 [Proof.] 0. secs (0.u,0.s) +Chars 5655 - 5667 [reflexivity.] 0. secs (0.u,0.s) +Chars 5670 - 5674 [Qed.] 0. secs (0.u,0.s) +Chars 5679 - 5798 [Lemma~eq2_to_eq1~:~~~forall~a~...] 0. secs (0.u,0.s) +Chars 5801 - 5807 [Proof.] 0. secs (0.u,0.s) +Chars 5812 - 5833 [intros~a~b~f~g~x~s~H.] 0. secs (0.u,0.s) +Chars 5838 - 5846 [apply~H.] 0. secs (0.u,0.s) +Chars 5849 - 5853 [Qed.] 0. secs (0.u,0.s) +Chars 5858 - 6115 [Lemma~iter_dinatural_helper~:~...] 0.001 secs (0.001u,0.s) +Chars 6118 - 6124 [Proof.] 0. secs (0.u,0.s) +Chars 6129 - 6141 [destruct~CM.] 0. secs (0.u,0.s) +Chars 6146 - 6163 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 6168 - 6179 [repeat~red.] 0. secs (0.u,0.s) +Chars 6184 - 6196 [destruct~a0.] 0. secs (0.u,0.s) +Chars 6201 - 6238 [unfold~cat,~Cat_Kleisli,~inter...] 0. secs (0.u,0.s) +Chars 6243 - 6247 [cbn.] 0. secs (0.u,0.s) +Chars 6252 - 6277 [repeat~rewrite~bind_bind.] 0.006 secs (0.006u,0.s) +Chars 6282 - 6300 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 6305 - 6306 [-] 0. secs (0.u,0.s) +Chars 6307 - 6319 [reflexivity.] 0. secs (0.u,0.s) +Chars 6324 - 6325 [-] 0. secs (0.u,0.s) +Chars 6326 - 6337 [repeat~red.] 0. secs (0.u,0.s) +Chars 6344 - 6372 [destruct~a1~as~[s'~[x|~y]].] 0. secs (0.u,0.s) +Chars 6379 - 6380 [+] 0. secs (0.u,0.s) +Chars 6381 - 6393 [unfold~pure.] 0. secs (0.u,0.s) +Chars 6402 - 6421 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 6430 - 6476 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 6485 - 6497 [reflexivity.] 0. secs (0.u,0.s) +Chars 6504 - 6505 [+] 0. secs (0.u,0.s) +Chars 6506 - 6518 [unfold~pure.] 0. secs (0.u,0.s) +Chars 6519 - 6538 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 6547 - 6593 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 6604 - 6608 [cbn.] 0. secs (0.u,0.s) +Chars 6619 - 6638 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 6639 - 6651 [reflexivity.] 0. secs (0.u,0.s) +Chars 6654 - 6658 [Qed.] 0.004 secs (0.004u,0.s) +Chars 6663 - 6744 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) +Chars 6747 - 6753 [Proof.] 0. secs (0.u,0.s) +Chars 6758 - 6770 [destruct~CM.] 0. secs (0.u,0.s) +Chars 6775 - 6796 [unfold~IterDinatural.] 0. secs (0.u,0.s) +Chars 6801 - 6812 [repeat~red.] 0. secs (0.u,0.s) +Chars 6817 - 6840 [intros~a~b~c~f~g~a0~a1.] 0. secs (0.u,0.s) +Chars 6845 - 6871 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) +Chars 6876 - 6896 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 6901 - 6930 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 6935 - 6963 [apply~iter_dinatural_helper.] 0. secs (0.u,0.s) +Chars 6968 - 6996 [rewrite~iterative_dinatural.] 0.004 secs (0.004u,0.s) +Chars 7001 - 7005 [cbn.] 0. secs (0.u,0.s) +Chars 7010 - 7034 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 7039 - 7057 [rewrite~bind_bind.] 0.003 secs (0.003u,0.s) +Chars 7062 - 7081 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 7082 - 7086 [cbn.] 0. secs (0.u,0.s) +Chars 7091 - 7109 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 7114 - 7115 [-] 0. secs (0.u,0.s) +Chars 7116 - 7128 [reflexivity.] 0. secs (0.u,0.s) +Chars 7133 - 7134 [-] 0. secs (0.u,0.s) +Chars 7135 - 7146 [repeat~red.] 0. secs (0.u,0.s) +Chars 7153 - 7180 [destruct~a2~as~[s~[x|~y]].] 0. secs (0.u,0.s) +Chars 7187 - 7188 [+] 0. secs (0.u,0.s) +Chars 7189 - 7201 [unfold~pure.] 0. secs (0.u,0.s) +Chars 7210 - 7229 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 7238 - 7242 [cbn.] 0. secs (0.u,0.s) +Chars 7251 - 7280 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 7289 - 7300 [repeat~red.] 0. secs (0.u,0.s) +Chars 7309 - 7321 [destruct~a2.] 0. secs (0.u,0.s) +Chars 7330 - 7334 [cbn.] 0. secs (0.u,0.s) +Chars 7335 - 7354 [rewrite~!bind_bind.] 0.006 secs (0.006u,0.s) +Chars 7363 - 7381 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 7390 - 7391 [*] 0. secs (0.u,0.s) +Chars 7392 - 7404 [reflexivity.] 0. secs (0.u,0.s) +Chars 7413 - 7414 [*] 0. secs (0.u,0.s) +Chars 7415 - 7426 [repeat~red.] 0. secs (0.u,0.s) +Chars 7437 - 7466 [destruct~a2~as~[s'~[x'|~y]].] 0. secs (0.u,0.s) +Chars 7477 - 7479 [**] 0. secs (0.u,0.s) +Chars 7480 - 7484 [cbn.] 0. secs (0.u,0.s) +Chars 7486 - 7505 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7506 - 7552 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 7566 - 7578 [reflexivity.] 0. secs (0.u,0.s) +Chars 7589 - 7591 [**] 0. secs (0.u,0.s) +Chars 7592 - 7596 [cbn.] 0. secs (0.u,0.s) +Chars 7598 - 7617 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7618 - 7664 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 7678 - 7697 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 7698 - 7710 [reflexivity.] 0. secs (0.u,0.s) +Chars 7717 - 7718 [+] 0. secs (0.u,0.s) +Chars 7719 - 7731 [unfold~pure.] 0. secs (0.u,0.s) +Chars 7740 - 7759 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 7768 - 7772 [cbn.] 0. secs (0.u,0.s) +Chars 7781 - 7793 [reflexivity.] 0. secs (0.u,0.s) +Chars 7798 - 7802 [Qed.] 0.009 secs (0.009u,0.s) +Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) +Chars 7893 - 7899 [Proof.] 0. secs (0.u,0.s) +Chars 7904 - 7916 [destruct~CM.] 0. secs (0.u,0.s) +Chars 7921 - 7943 [unfold~IterCodiagonal.] 0. secs (0.u,0.s) +Chars 7948 - 7961 [intros~a~b~f.] 0. secs (0.u,0.s) +Chars 7966 - 7992 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) +Chars 7997 - 8008 [repeat~red.] 0. secs (0.u,0.s) +Chars 8013 - 8020 [intros.] 0. secs (0.u,0.s) +Chars 8025 - 8045 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 8050 - 8079 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 8084 - 8110 [eapply~Proper_cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8116 - 8283 [assert~~(internalize~~~~~(fun~...] 0. secs (0.u,0.s) +Chars 8288 - 8289 [{] 0. secs (0.u,0.s) +Chars 8290 - 8301 [repeat~red.] 0. secs (0.u,0.s) +Chars 8308 - 8320 [destruct~a2.] 0. secs (0.u,0.s) +Chars 8327 - 8346 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 8353 - 8357 [cbn.] 0. secs (0.u,0.s) +Chars 8359 - 8371 [reflexivity.] 0. secs (0.u,0.s) +Chars 8376 - 8377 [}] 0. secs (0.u,0.s) +Chars 8381 - 8389 [apply~H.] 0. secs (0.u,0.s) +Chars 8393 - 8405 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8409 - 8429 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 8434 - 8463 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 8467 - 8491 [apply~iterative_natural.] 0. secs (0.u,0.s) +Chars 8495 - 8524 [rewrite~iterative_codiagonal.] 0.003 secs (0.003u,0.s) +Chars 8528 - 8557 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 8561 - 8585 [rewrite~internalize_cat.] 0.005 secs (0.005u,0.s) +Chars 8645 - 8656 [repeat~red.] 0. secs (0.u,0.s) +Chars 8660 - 8672 [destruct~a2.] 0. secs (0.u,0.s) +Chars 8676 - 8700 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8701 - 8705 [cbn.] 0. secs (0.u,0.s) +Chars 8709 - 8734 [repeat~rewrite~bind_bind.] 0.012 secs (0.012u,0.s) +Chars 8738 - 8763 [unfold~internalize,~pure.] 0. secs (0.u,0.s) +Chars 8767 - 8771 [cbn.] 0. secs (0.u,0.s) +Chars 8775 - 8793 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 8798 - 8799 [-] 0. secs (0.u,0.s) +Chars 8800 - 8812 [reflexivity.] 0. secs (0.u,0.s) +Chars 8817 - 8818 [-] 0. secs (0.u,0.s) +Chars 8819 - 8830 [repeat~red.] 0. secs (0.u,0.s) +Chars 8837 - 8871 [destruct~a3~as~[s'~[x|~[y|~z]]].] 0. secs (0.u,0.s) +Chars 8878 - 8879 [+] 0. secs (0.u,0.s) +Chars 8880 - 8899 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 8908 - 8912 [cbn.] 0. secs (0.u,0.s) +Chars 8913 - 8942 [unfold~id_,~Id_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 8951 - 8970 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 8979 - 9003 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 9012 - 9030 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) +Chars 9039 - 9058 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9067 - 9071 [cbn.] 0. secs (0.u,0.s) +Chars 9073 - 9104 [unfold~inl_,~Inl_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 9113 - 9132 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9133 - 9145 [reflexivity.] 0. secs (0.u,0.s) +Chars 9152 - 9153 [+] 0. secs (0.u,0.s) +Chars 9154 - 9173 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 9182 - 9186 [cbn.] 0. secs (0.u,0.s) +Chars 9195 - 9214 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 9223 - 9247 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 9256 - 9286 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 9287 - 9291 [cbn.] 0. secs (0.u,0.s) +Chars 9300 - 9331 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 9340 - 9359 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9360 - 9372 [reflexivity.] 0. secs (0.u,0.s) +Chars 9379 - 9380 [+] 0. secs (0.u,0.s) +Chars 9381 - 9400 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) +Chars 9409 - 9413 [cbn.] 0. secs (0.u,0.s) +Chars 9422 - 9441 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 9450 - 9474 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 9483 - 9513 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 9514 - 9518 [cbn.] 0. secs (0.u,0.s) +Chars 9527 - 9558 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 9567 - 9586 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9595 - 9607 [reflexivity.] 0. secs (0.u,0.s) +Chars 9610 - 9614 [Qed.] 0.013 secs (0.013u,0.s) +Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) +Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) +Chars 9703 - 9736 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9739 - 9743 [Qed.] 0. secs (0.u,0.s) +Chars 9745 - 9755 [End~State.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/Utils.v.timing b/theories/Basics/Utils.v.timing new file mode 100644 index 00000000..1d04dc62 --- /dev/null +++ b/theories/Basics/Utils.v.timing @@ -0,0 +1,46 @@ +Chars 0 - 51 [#[global]~Set~Warnings~"-intui...] 0. secs (0.u,0.s) +Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 90 - 121 [Require~Import~Program.Tactics.] 0. secs (0.u,0.s) +Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.022 secs (0.018u,0.003s) +Chars 155 - 207 [Ltac~inv~H~:=~inversion~H;~cle...] 0. secs (0.u,0.s) +Chars 278 - 334 [Lemma~hexploit_mp~:~forall~P~Q...] 0. secs (0.u,0.s) +Chars 335 - 341 [Proof.] 0. secs (0.u,0.s) +Chars 342 - 352 [intuition.] 0. secs (0.u,0.s) +Chars 353 - 361 [Defined.] 0. secs (0.u,0.s) +Chars 362 - 413 [Ltac~hexploit~x~:=~eapply~hexp...] 0. secs (0.u,0.s) +Chars 415 - 540 [Ltac~~rewrite_everywhere~lem~:...] 0. secs (0.u,0.s) +Chars 542 - 742 [Ltac~~rewrite_everywhere_excep...] 0. secs (0.u,0.s) +Chars 745 - 808 [Ltac~copy~h~:=~let~foo~:=~fres...] 0. secs (0.u,0.s) +Chars 810 - 860 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) +Chars 862 - 998 [Ltac~~flatten_goal~:=~~~match~...] 0. secs (0.u,0.s) +Chars 1000 - 1139 [Ltac~~flatten_hyp~h~:=~~~match...] 0. secs (0.u,0.s) +Chars 1141 - 1372 [Ltac~~flatten_all~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 1418 - 1812 [Ltac~~invn~f~:=~~~match~goal~w...] 0. secs (0.u,0.s) +Chars 1863 - 2307 [Ltac~~destructn~f~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 2355 - 2767 [Ltac~~appn~f~:=~~~match~goal~w...] 0. secs (0.u,0.s) +Chars 2816 - 3238 [Ltac~~eappn~f~:=~~~match~goal~...] 0. secs (0.u,0.s) +Chars 3240 - 3436 [Ltac~~break~H~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) +Chars 3438 - 3670 [Ltac~~crunch~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) +Chars 3672 - 3993 [Ltac~~saturate~H~:=~~~match~go...] 0. secs (0.u,0.s) +Chars 4025 - 4125 [Lemma~pacobot1~(T0~:~Type)~(gf...] 0. secs (0.u,0.s) +Chars 4126 - 4132 [Proof.] 0. secs (0.u,0.s) +Chars 4135 - 4147 [intros~x0~H.] 0. secs (0.u,0.s) +Chars 4148 - 4185 [apply~(paco1_mon~_~H);~contrad...] 0. secs (0.u,0.s) +Chars 4186 - 4190 [Qed.] 0. secs (0.u,0.s) +Chars 4192 - 4319 [Lemma~pacobot2~(T0~:~Type)~(T1...] 0. secs (0.u,0.s) +Chars 4320 - 4326 [Proof.] 0. secs (0.u,0.s) +Chars 4329 - 4344 [intros~x0~x1~H.] 0. secs (0.u,0.s) +Chars 4345 - 4383 [eapply~(paco2_mon~_~H);~contra...] 0. secs (0.u,0.s) +Chars 4384 - 4388 [Qed.] 0. secs (0.u,0.s) +Chars 4499 - 4575 [Lemma~pfp_gfp~{X}~{L~:~Complet...] 0. secs (0.u,0.s) +Chars 4576 - 4582 [Proof.] 0. secs (0.u,0.s) +Chars 4583 - 4597 [apply~b_chain.] 0. secs (0.u,0.s) +Chars 4598 - 4602 [Qed.] 0. secs (0.u,0.s) +Chars 4655 - 4969 [Ltac~~step_~:=~~~match~goal~wi...] 0. secs (0.u,0.s) +Chars 4971 - 5134 [Ltac~~step~:=~~~match~goal~wit...] 0. secs (0.u,0.s) +Chars 5137 - 5225 [Ltac~~step_in~h~:=~~~match~typ...] 0. secs (0.u,0.s) +Chars 5227 - 5277 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 5279 - 5357 [Ltac~unstep~:=~match~goal~with...] 0. secs (0.u,0.s) +Chars 5359 - 5449 [Ltac~~unstep_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 5451 - 5505 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) +Chars 5556 - 5666 [Tactic~Notation~"hinduction"~h...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeDefinition.v.timing b/theories/Core/ITreeDefinition.v.timing new file mode 100644 index 00000000..2e1d5e0f --- /dev/null +++ b/theories/Core/ITreeDefinition.v.timing @@ -0,0 +1,55 @@ +Chars 63 - 104 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) +Chars 105 - 150 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) +Chars 151 - 190 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) +Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.003 secs (0.002u,0.001s) +Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.021 secs (0.017u,0.004s) +Chars 267 - 290 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 291 - 315 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 316 - 342 [Set~Primitive~Projections.] 0. secs (0.u,0.s) +Chars 699 - 713 [Section~itree.] 0. secs (0.u,0.s) +Chars 717 - 755 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 875 - 996 [Variant~itreeF~(itree~:~Type)~...] 0. secs (0.u,0.s) +Chars 1234 - 1295 [CoInductive~itree~:~Type~:=~go...] 0. secs (0.u,0.s) +Chars 1924 - 1934 [End~itree.] 0. secs (0.u,0.s) +Chars 1953 - 1979 [Declare~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 1980 - 2014 [Bind~Scope~itree_scope~with~it...] 0. secs (0.u,0.s) +Chars 2015 - 2052 [Delimit~Scope~itree_scope~with...] 0. secs (0.u,0.s) +Chars 2053 - 2082 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 2084 - 2122 [Arguments~itree~_~_~:~clear~im...] 0. secs (0.u,0.s) +Chars 2123 - 2162 [Arguments~itreeF~_~_~:~clear~i...] 0. secs (0.u,0.s) +Chars 2164 - 2184 [Create~HintDb~itree.] 0. secs (0.u,0.s) +Chars 2307 - 2355 [Notation~itree'~E~R:=~(itreeF~...] 0. secs (0.u,0.s) +Chars 2437 - 2510 [Definition~observe~{E}~{R}~(t~...] 0. secs (0.u,0.s) +Chars 3361 - 3393 [Notation~Ret~x:=~(go~(RetF~x)).] 0. secs (0.u,0.s) +Chars 3394 - 3426 [Notation~Tau~t:=~(go~(TauF~t)).] 0. secs (0.u,0.s) +Chars 3427 - 3463 [Notation~Vis~e~k:=~(go~(VisF~e...] 0. secs (0.u,0.s) +Chars 5126 - 5139 [Module~ITree.] 0. secs (0.u,0.s) +Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0. secs (0.u,0.s) +Chars 5899 - 6013 [Definition~bind~{E~:~Type~->~T...] 0. secs (0.u,0.s) +Chars 6089 - 6213 [Definition~cat~{E}~{T}~{U}~{V}...] 0. secs (0.u,0.s) +Chars 6495 - 6595 [Notation~on_left~lr~l~t:=~matc...] 0. secs (0.u,0.s) +Chars 6764 - 6946 [Definition~iter~{E~:~Type~->~T...] 0. secs (0.u,0.s) +Chars 7273 - 7371 [Definition~map~{E}~{R}~{S}~(f~...] 0. secs (0.u,0.s) +Chars 7421 - 7513 [Definition~trigger~{E~:~Type~-...] 0. secs (0.u,0.s) +Chars 7551 - 7626 [Definition~ignore~{E}~{R}~:~it...] 0. secs (0.u,0.s) +Chars 7650 - 7696 [CoFixpoint~spin~{E}~{R}~:~itre...] 0. secs (0.u,0.s) +Chars 7738 - 7851 [Definition~forever~{E}~{R}~{S}...] 0. secs (0.u,0.s) +Chars 7853 - 7932 [Ltac~fold_subst~:=~repeat~chan...] 0. secs (0.u,0.s) +Chars 7934 - 8165 [Ltac~~fold_monad~:=~~~repeat~c...] 0. secs (0.u,0.s) +Chars 8167 - 8177 [End~ITree.] 0. secs (0.u,0.s) +Chars 8554 - 8576 [Module~ITreeNotations.] 0. secs (0.u,0.s) +Chars 8577 - 8670 [Notation~"t1~>>=~k2"~:=~(ITree...] 0. secs (0.u,0.s) +Chars 8671 - 8798 [Notation~"x~<-~t1~;;~t2"~:=~(I...] 0. secs (0.u,0.s) +Chars 8799 - 8903 [Notation~"t1~;;~t2"~:=~(ITree....] 0. secs (0.u,0.s) +Chars 8904 - 9070 [Notation~"'~p~<-~t1~;;~t2"~:=~...] 0. secs (0.u,0.s) +Chars 9071 - 9145 [Infix~">=>"~:=~ITree.cat~(~at~...] 0. secs (0.u,0.s) +Chars 9146 - 9165 [End~ITreeNotations.] 0. secs (0.u,0.s) +Chars 9188 - 9273 [#[global]~Instance~Functor_itr...] 0. secs (0.u,0.s) +Chars 9426 - 9614 [#[global]~Instance~Applicative...] 0. secs (0.u,0.s) +Chars 9616 - 9727 [#[global]~Instance~Monad_itree...] 0. secs (0.u,0.s) +Chars 9729 - 9817 [#[global]~Instance~MonadIter_i...] 0. secs (0.u,0.s) +Chars 9838 - 9885 [Ltac~genobs~x~ox~:=~remember~(...] 0. secs (0.u,0.s) +Chars 9886 - 9983 [Ltac~~genobs_clear~x~ox~:=~~~g...] 0. secs (0.u,0.s) +Chars 9984 - 10239 [Ltac~~simpobs~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) +Chars 10275 - 10321 [Ltac~desobs~t~H~:=~destruct~(o...] 0. secs (0.u,0.s) +Chars 10403 - 10603 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeMonad.v.timing b/theories/Core/ITreeMonad.v.timing new file mode 100644 index 00000000..cf3ce770 --- /dev/null +++ b/theories/Core/ITreeMonad.v.timing @@ -0,0 +1,36 @@ +Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.042 secs (0.033u,0.008s) +Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0. secs (0.u,0.s) +Chars 353 - 424 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) +Chars 425 - 431 [Proof.] 0. secs (0.u,0.s) +Chars 434 - 445 [repeat~red.] 0. secs (0.u,0.s) +Chars 448 - 457 [intros~a.] 0. secs (0.u,0.s) +Chars 460 - 478 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 479 - 483 [Qed.] 0. secs (0.u,0.s) +Chars 485 - 548 [#[global]~Instance~MonadLawsE_...] 0. secs (0.u,0.s) +Chars 549 - 555 [Proof.] 0. secs (0.u,0.s) +Chars 558 - 570 [constructor.] 0. secs (0.u,0.s) +Chars 573 - 574 [-] 0. secs (0.u,0.s) +Chars 575 - 590 [intros~a~b~f~x.] 0. secs (0.u,0.s) +Chars 595 - 637 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) +Chars 642 - 664 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) +Chars 665 - 684 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 685 - 697 [reflexivity.] 0. secs (0.u,0.s) +Chars 700 - 701 [-] 0. secs (0.u,0.s) +Chars 702 - 713 [intros~a~x.] 0. secs (0.u,0.s) +Chars 717 - 759 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) +Chars 764 - 786 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) +Chars 787 - 806 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) +Chars 807 - 819 [reflexivity.] 0. secs (0.u,0.s) +Chars 822 - 823 [-] 0. secs (0.u,0.s) +Chars 824 - 843 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) +Chars 844 - 886 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) +Chars 891 - 913 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) +Chars 914 - 932 [rewrite~bind_bind.] 0.014 secs (0.013u,0.001s) +Chars 933 - 945 [reflexivity.] 0. secs (0.u,0.s) +Chars 948 - 949 [-] 0. secs (0.u,0.s) +Chars 950 - 981 [unfold~Monad.bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 986 - 993 [intros.] 0. secs (0.u,0.s) +Chars 998 - 1009 [repeat~red.] 0. secs (0.u,0.s) +Chars 1014 - 1021 [intros.] 0. secs (0.u,0.s) +Chars 1026 - 1048 [apply~eqit_bind;~auto.] 0. secs (0.u,0.s) +Chars 1049 - 1053 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/KTree.v.timing b/theories/Core/KTree.v.timing new file mode 100644 index 00000000..b3a13720 --- /dev/null +++ b/theories/Core/KTree.v.timing @@ -0,0 +1,14 @@ +Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.04 secs (0.032u,0.007s) +Chars 382 - 414 [Implicit~Type~E~:~Type~->~Type.] 0. secs (0.u,0.s) +Chars 415 - 441 [Implicit~Types~a~b~:~Type.] 0. secs (0.u,0.s) +Chars 443 - 483 [Notation~ktree~E:=~(Kleisli~(i...] 0. secs (0.u,0.s) +Chars 485 - 511 [Declare~Scope~ktree_scope.] 0. secs (0.u,0.s) +Chars 512 - 546 [Bind~Scope~ktree_scope~with~kt...] 0. secs (0.u,0.s) +Chars 548 - 599 [Notation~ktree_apply~:=~(@Klei...] 0. secs (0.u,0.s) +Chars 600 - 647 [Notation~lift_ktree~:=~(@pure~...] 0. secs (0.u,0.s) +Chars 648 - 702 [Notation~lift_ktree_~E~a~b:=~(...] 0. secs (0.u,0.s) +Chars 906 - 925 [Section~Operations.] 0. secs (0.u,0.s) +Chars 927 - 954 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 956 - 993 [#[local]~Notation~ktree~:=~(kt...] 0. secs (0.u,0.s) +Chars 1488 - 1503 [End~Operations.] 0. secs (0.u,0.s) diff --git a/theories/Core/KTreeFacts.v.timing b/theories/Core/KTreeFacts.v.timing new file mode 100644 index 00000000..49fc1948 --- /dev/null +++ b/theories/Core/KTreeFacts.v.timing @@ -0,0 +1,275 @@ +Chars 103 - 198 [From~Stdlib~Require~Import~Cla...] 0.005 secs (0.004u,0.001s) +Chars 200 - 530 [From~ITree~Require~Import~Basi...] 0.043 secs (0.034u,0.008s) +Chars 532 - 552 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 553 - 582 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 583 - 610 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 627 - 888 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) +Chars 916 - 960 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) +Chars 963 - 1150 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) +Chars 1152 - 1193 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) +Chars 1196 - 1500 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.017 secs (0.015u,0.001s) +Chars 1501 - 1507 [Proof.] 0. secs (0.u,0.s) +Chars 1510 - 1522 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1585 - 1592 [intros.] 0. secs (0.u,0.s) +Chars 1715 - 1736 [rewrite~!unfold_iter.] 0.054 secs (0.054u,0.s) +Chars 1739 - 1767 [rewrite~bind_map,~bind_bind.] 0.029 secs (0.025u,0.004s) +Chars 1770 - 1776 [ebind.] 0.005 secs (0.005u,0.s) +Chars 1780 - 1800 [intros~[a|~b]~_~[].] 0.001 secs (0.001u,0.s) +Chars 1803 - 1804 [-] 0. secs (0.u,0.s) +Chars 1805 - 1822 [rewrite~bind_tau.] 0.012 secs (0.012u,0.s) +Chars 1823 - 1828 [taus.] 0. secs (0.u,0.s) +Chars 1833 - 1844 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 1848 - 1849 [-] 0. secs (0.u,0.s) +Chars 1850 - 1881 [rewrite~bind_ret_l,~tau_euttge.] 0.016 secs (0.016u,0.s) +Chars 1937 - 1947 [do~2~step.] 0.007 secs (0.007u,0.s) +Chars 1948 - 1957 [revert~b.] 0. secs (0.u,0.s) +Chars 1958 - 1970 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1971 - 1978 [intros.] 0. secs (0.u,0.s) +Chars 1984 - 2005 [rewrite~!unfold_iter.] 0.023 secs (0.023u,0.s) +Chars 2010 - 2027 [rewrite~bind_map.] 0.012 secs (0.012u,0.s) +Chars 2032 - 2038 [ebind.] 0.006 secs (0.006u,0.s) +Chars 2044 - 2072 [intros~[b'|~c'']~_~[];~cbn.] 0.001 secs (0.001u,0.s) +Chars 2077 - 2078 [+] 0. secs (0.u,0.s) +Chars 2079 - 2088 [now~taus.] 0. secs (0.u,0.s) +Chars 2093 - 2094 [+] 0. secs (0.u,0.s) +Chars 2095 - 2107 [reflexivity.] 0. secs (0.u,0.s) +Chars 2108 - 2112 [Qed.] 0.014 secs (0.014u,0.s) +Chars 2117 - 2511 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) +Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) +Chars 2521 - 2539 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) +Chars 2540 - 2547 [intros.] 0. secs (0.u,0.s) +Chars 2551 - 2585 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) +Chars 2588 - 2613 [do~2~rewrite~unfold_iter.] 0.02 secs (0.02u,0.s) +Chars 2616 - 2639 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 2643 - 2653 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 2654 - 2670 [apply~eutt_body.] 0. secs (0.u,0.s) +Chars 2674 - 2709 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) +Chars 2711 - 2715 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2717 - 3099 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) +Chars 3100 - 3106 [Proof.] 0. secs (0.u,0.s) +Chars 3109 - 3127 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3128 - 3135 [intros.] 0. secs (0.u,0.s) +Chars 3139 - 3173 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) +Chars 3176 - 3201 [do~2~rewrite~unfold_iter.] 0.021 secs (0.021u,0.s) +Chars 3204 - 3210 [ebind.] 0.003 secs (0.003u,0.s) +Chars 3213 - 3230 [do~2~step;~eauto.] 0.011 secs (0.01u,0.s) +Chars 3234 - 3269 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) +Chars 3271 - 3275 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3277 - 3692 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0. secs (0.u,0.s) +Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) +Chars 3702 - 3720 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3721 - 3728 [intros.] 0. secs (0.u,0.s) +Chars 3732 - 3766 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) +Chars 3769 - 3794 [do~2~rewrite~unfold_iter.] 0.02 secs (0.02u,0.s) +Chars 3797 - 3803 [ebind.] 0.003 secs (0.003u,0.s) +Chars 3807 - 3824 [do~2~step;~eauto.] 0.011 secs (0.011u,0.s) +Chars 3828 - 3863 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) +Chars 3864 - 3884 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) +Chars 3885 - 3889 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3891 - 4097 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) +Chars 4098 - 4104 [Proof.] 0. secs (0.u,0.s) +Chars 4107 - 4154 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) +Chars 4155 - 4170 [red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 4173 - 4199 [eapply~eutt_iter'';~eauto.] 0. secs (0.u,0.s) +Chars 4200 - 4204 [Qed.] 0. secs (0.u,0.s) +Chars 4224 - 4424 [#[global]~Instance~eq_itree_it...] 0. secs (0.u,0.s) +Chars 4425 - 4431 [Proof.] 0. secs (0.u,0.s) +Chars 4434 - 4463 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) +Chars 4464 - 4486 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 4489 - 4502 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 4505 - 4538 [eapply~(eq_itree_iter'~eq);~auto.] 0.002 secs (0.002u,0.s) +Chars 4541 - 4581 [intros;~eapply~eqit_mono,~EQ_B...] 0.001 secs (0.001u,0.s) +Chars 4584 - 4632 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) +Chars 4633 - 4637 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4639 - 4841 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) +Chars 4842 - 4848 [Proof.] 0. secs (0.u,0.s) +Chars 4851 - 4880 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) +Chars 4881 - 4903 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 4906 - 4919 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 4922 - 4951 [eapply~(eutt_iter'~eq);~auto.] 0.002 secs (0.002u,0.s) +Chars 4954 - 5001 [intros~?~_~[];~eapply~eqit_mon...] 0.001 secs (0.001u,0.s) +Chars 5004 - 5045 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) +Chars 5046 - 5050 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5052 - 5234 [Definition~eutt_iter_gen~{F}~{...] 0. secs (0.u,0.s) +Chars 5235 - 5241 [Proof.] 0. secs (0.u,0.s) +Chars 5244 - 5291 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) +Chars 5292 - 5307 [red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 5310 - 5335 [eapply~eutt_iter';~eauto.] 0. secs (0.u,0.s) +Chars 5336 - 5340 [Qed.] 0. secs (0.u,0.s) +Chars 5342 - 5470 [#[global]~Instance~eq2_ktree_i...] 0. secs (0.u,0.s) +Chars 5471 - 5477 [Proof.] 0. secs (0.u,0.s) +Chars 5478 - 5494 [apply~eutt_iter.] 0. secs (0.u,0.s) +Chars 5495 - 5499 [Qed.] 0. secs (0.u,0.s) +Chars 5501 - 5524 [Section~KTreeIterative.] 0. secs (0.u,0.s) +Chars 5526 - 5720 [Lemma~unfold_iter_ktree~{E}~{A...] 0. secs (0.u,0.s) +Chars 5721 - 5727 [Proof.] 0. secs (0.u,0.s) +Chars 5730 - 5748 [apply~unfold_iter.] 0. secs (0.u,0.s) +Chars 5749 - 5753 [Qed.] 0. secs (0.u,0.s) +Chars 5755 - 5822 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) +Chars 5823 - 5829 [Proof.] 0. secs (0.u,0.s) +Chars 5832 - 5845 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5846 - 5859 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 5860 - 5886 [rewrite~unfold_iter_ktree.] 0.001 secs (0.001u,0.s) +Chars 5889 - 5928 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) +Chars 5931 - 5981 [intros~[]~?~[];~try~rewrite~ta...] 0.001 secs (0.001u,0.s) +Chars 5982 - 5986 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5988 - 6057 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) +Chars 6058 - 6064 [Proof.] 0. secs (0.u,0.s) +Chars 6067 - 6080 [repeat~intro.] 0. secs (0.u,0.s) +Chars 6081 - 6094 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 6097 - 6107 [revert~a0.] 0. secs (0.u,0.s) +Chars 6110 - 6129 [coinduction~c'~CIH.] 0.002 secs (0.001u,0.s) +Chars 6130 - 6137 [intros.] 0. secs (0.u,0.s) +Chars 6141 - 6169 [rewrite~2!unfold_iter_ktree.] 0.03 secs (0.029u,0.s) +Chars 6172 - 6191 [rewrite~!bind_bind.] 0.03 secs (0.03u,0.s) +Chars 6194 - 6200 [ebind.] 0.006 secs (0.006u,0.s) +Chars 6204 - 6219 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) +Chars 6222 - 6223 [-] 0. secs (0.u,0.s) +Chars 6224 - 6255 [rewrite~bind_tau,~2!bind_ret_l.] 0.044 secs (0.044u,0.s) +Chars 6256 - 6265 [now~taus.] 0. secs (0.u,0.s) +Chars 6269 - 6270 [-] 0. secs (0.u,0.s) +Chars 6271 - 6302 [rewrite~bind_ret_l,~!bind_bind.] 0.028 secs (0.027u,0.s) +Chars 6303 - 6329 [setoid_rewrite~bind_ret_l.] 0.029 secs (0.029u,0.s) +Chars 6330 - 6349 [rewrite~bind_ret_r.] 0.012 secs (0.012u,0.s) +Chars 6354 - 6366 [reflexivity.] 0. secs (0.u,0.s) +Chars 6367 - 6371 [Qed.] 0.01 secs (0.01u,0.s) +Chars 6373 - 6911 [Lemma~iter_dinatural_ktree~{E}...] 0.001 secs (0.001u,0.s) +Chars 6912 - 6918 [Proof.] 0. secs (0.u,0.s) +Chars 6921 - 6941 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) +Chars 6945 - 6963 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 6964 - 6971 [intros.] 0. secs (0.u,0.s) +Chars 6975 - 7001 [rewrite~unfold_iter_ktree.] 0.013 secs (0.013u,0.s) +Chars 7004 - 7022 [rewrite~bind_bind.] 0.013 secs (0.013u,0.s) +Chars 7025 - 7031 [ebind.] 0.006 secs (0.006u,0.s) +Chars 7035 - 7050 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) +Chars 7162 - 7163 [-] 0. secs (0.u,0.s) +Chars 7164 - 7181 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) +Chars 7182 - 7187 [taus.] 0. secs (0.u,0.s) +Chars 7188 - 7197 [symmetry.] 0. secs (0.u,0.s) +Chars 7198 - 7209 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7213 - 7214 [-] 0. secs (0.u,0.s) +Chars 7215 - 7234 [rewrite~bind_ret_l.] 0.012 secs (0.012u,0.s) +Chars 7235 - 7247 [reflexivity.] 0. secs (0.u,0.s) +Chars 7249 - 7253 [Qed.] 0.007 secs (0.007u,0.s) +Chars 7255 - 7328 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) +Chars 7329 - 7335 [Proof.] 0. secs (0.u,0.s) +Chars 7338 - 7351 [repeat~intro.] 0. secs (0.u,0.s) +Chars 7352 - 7365 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 7368 - 7630 [transitivity~~(iter~(C:=ktree~...] 0. secs (0.u,0.s) +Chars 7633 - 7634 [-] 0. secs (0.u,0.s) +Chars 7635 - 7661 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) +Chars 7666 - 7688 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 7693 - 7705 [reflexivity.] 0. secs (0.u,0.s) +Chars 7710 - 7725 [intros~[]~?~[].] 0. secs (0.u,0.s) +Chars 7730 - 7760 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) +Chars 7765 - 7777 [reflexivity.] 0. secs (0.u,0.s) +Chars 7780 - 7781 [-] 0. secs (0.u,0.s) +Chars 7782 - 7811 [rewrite~iter_dinatural_ktree.] 0.001 secs (0.001u,0.s) +Chars 7816 - 7838 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 7843 - 7855 [reflexivity.] 0. secs (0.u,0.s) +Chars 7860 - 7875 [intros~[]~?~[].] 0. secs (0.u,0.s) +Chars 7880 - 7881 [+] 0. secs (0.u,0.s) +Chars 7882 - 7899 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 7906 - 7932 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) +Chars 7939 - 7961 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 7968 - 7980 [reflexivity.] 0. secs (0.u,0.s) +Chars 7987 - 8002 [intros~[]~?~[].] 0. secs (0.u,0.s) +Chars 8009 - 8039 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) +Chars 8046 - 8058 [reflexivity.] 0. secs (0.u,0.s) +Chars 8063 - 8064 [+] 0. secs (0.u,0.s) +Chars 8065 - 8077 [reflexivity.] 0. secs (0.u,0.s) +Chars 8078 - 8082 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8084 - 8392 [Lemma~iter_codiagonal_ktree~{E...] 0.001 secs (0.001u,0.s) +Chars 8393 - 8399 [Proof.] 0. secs (0.u,0.s) +Chars 8402 - 8412 [revert~a0.] 0. secs (0.u,0.s) +Chars 8415 - 8433 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 8434 - 8441 [intros.] 0. secs (0.u,0.s) +Chars 8445 - 8471 [rewrite~unfold_iter_ktree.] 0.011 secs (0.011u,0.s) +Chars 8474 - 8519 [rewrite~(unfold_iter_ktree~(fu...] 0.015 secs (0.015u,0.s) +Chars 8522 - 8560 [rewrite~unfold_iter_ktree,~!bi...] 0.045 secs (0.044u,0.s) +Chars 8563 - 8569 [ebind.] 0.006 secs (0.006u,0.s) +Chars 8573 - 8592 [intros~[|~[]]~?~[].] 0.003 secs (0.003u,0.s) +Chars 8595 - 8596 [-] 0. secs (0.u,0.s) +Chars 8597 - 8626 [rewrite~bind_ret_l,~bind_tau.] 0.029 secs (0.029u,0.s) +Chars 8631 - 8636 [taus.] 0. secs (0.u,0.s) +Chars 8642 - 8651 [revert~a.] 0. secs (0.u,0.s) +Chars 8656 - 8671 [accumulate~acc.] 0.002 secs (0.002u,0.s) +Chars 8677 - 8684 [intros.] 0. secs (0.u,0.s) +Chars 8689 - 8715 [rewrite~unfold_iter_ktree.] 0.012 secs (0.012u,0.s) +Chars 8720 - 8765 [rewrite~(unfold_iter_ktree~(fu...] 0.014 secs (0.014u,0.s) +Chars 8770 - 8789 [rewrite~!bind_bind.] 0.027 secs (0.027u,0.s) +Chars 8794 - 8800 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8806 - 8825 [intros~[|~[]]~?~[].] 0.002 secs (0.002u,0.s) +Chars 8830 - 8831 [+] 0. secs (0.u,0.s) +Chars 8832 - 8861 [rewrite~bind_tau,~bind_ret_l.] 0.028 secs (0.028u,0.s) +Chars 8862 - 8871 [now~taus.] 0. secs (0.u,0.s) +Chars 8877 - 8878 [+] 0. secs (0.u,0.s) +Chars 8879 - 8900 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) +Chars 8901 - 8910 [now~taus.] 0. secs (0.u,0.s) +Chars 8916 - 8917 [+] 0. secs (0.u,0.s) +Chars 8918 - 8939 [rewrite~2!bind_ret_l.] 0.026 secs (0.026u,0.s) +Chars 8940 - 8952 [reflexivity.] 0. secs (0.u,0.s) +Chars 8956 - 8957 [-] 0. secs (0.u,0.s) +Chars 8958 - 8979 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) +Chars 8984 - 8993 [now~taus.] 0. secs (0.u,0.s) +Chars 8997 - 8998 [-] 0. secs (0.u,0.s) +Chars 8999 - 9020 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) +Chars 9025 - 9037 [reflexivity.] 0. secs (0.u,0.s) +Chars 9039 - 9043 [Qed.] 0.023 secs (0.022u,0.s) +Chars 9045 - 9120 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) +Chars 9121 - 9127 [Proof.] 0. secs (0.u,0.s) +Chars 9130 - 9143 [repeat~intro.] 0. secs (0.u,0.s) +Chars 9144 - 9157 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 9160 - 9190 [rewrite~iter_codiagonal_ktree.] 0.001 secs (0.001u,0.s) +Chars 9193 - 9209 [apply~eutt_iter.] 0. secs (0.u,0.s) +Chars 9212 - 9222 [intros~a1.] 0. secs (0.u,0.s) +Chars 9225 - 9247 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 9250 - 9262 [reflexivity.] 0. secs (0.u,0.s) +Chars 9265 - 9316 [intros~[|~[]]~?~[];~rewrite~?t...] 0.001 secs (0.001u,0.s) +Chars 9317 - 9321 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9323 - 9388 [#[global]~Instance~Iterative_k...] 0. secs (0.u,0.s) +Chars 9389 - 9395 [Proof.] 0. secs (0.u,0.s) +Chars 9398 - 9423 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9424 - 9428 [Qed.] 0. secs (0.u,0.s) +Chars 9489 - 9693 [Lemma~cat_iter~:~~~forall~{E~:...] 0.001 secs (0.001u,0.s) +Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) +Chars 9703 - 9712 [intros~*.] 0. secs (0.u,0.s) +Chars 9715 - 9728 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 9761 - 9772 [repeat~red.] 0. secs (0.u,0.s) +Chars 9870 - 9889 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) +Chars 9890 - 9897 [intros.] 0. secs (0.u,0.s) +Chars 9903 - 9922 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 9966 - 9986 [rewrite~unfold_iter.] 0.013 secs (0.013u,0.s) +Chars 9993 - 10013 [rewrite~unfold_iter.] 0.016 secs (0.016u,0.s) +Chars 10016 - 10035 [rewrite~!bind_bind.] 0.029 secs (0.029u,0.s) +Chars 10038 - 10044 [ebind.] 0.006 secs (0.006u,0.s) +Chars 10090 - 10112 [intros~[xa|~xb]~?~<-.] 0.001 secs (0.001u,0.s) +Chars 10115 - 10116 [-] 0. secs (0.u,0.s) +Chars 10180 - 10201 [rewrite~!bind_ret_l.] 0.018 secs (0.017u,0.s) +Chars 10206 - 10223 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) +Chars 10228 - 10233 [taus.] 0. secs (0.u,0.s) +Chars 10239 - 10259 [specialize~(CIH~xa).] 0. secs (0.u,0.s) +Chars 10264 - 10273 [symmetry.] 0. secs (0.u,0.s) +Chars 10279 - 10301 [rewrite~<-~bind_ret_l.] 0.011 secs (0.011u,0.s) +Chars 10302 - 10311 [symmetry.] 0. secs (0.u,0.s) +Chars 10317 - 10327 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10331 - 10332 [-] 0. secs (0.u,0.s) +Chars 10369 - 10390 [rewrite~!bind_ret_l.] 0.031 secs (0.031u,0.s) +Chars 10628 - 10647 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) +Chars 10652 - 10662 [do~2~step.] 0.008 secs (0.008u,0.s) +Chars 10668 - 10682 [generalize~xb.] 0. secs (0.u,0.s) +Chars 10687 - 10708 [coinduction~c''~CIH'.] 0.002 secs (0.002u,0.s) +Chars 10709 - 10716 [intros.] 0. secs (0.u,0.s) +Chars 10768 - 10790 [rewrite~2!unfold_iter.] 0.029 secs (0.028u,0.s) +Chars 10796 - 10815 [rewrite~!bind_bind.] 0.035 secs (0.035u,0.s) +Chars 10866 - 10872 [ebind.] 0.006 secs (0.006u,0.s) +Chars 10877 - 10900 [intros~[xb'|~xc]~?~<-.] 0.002 secs (0.002u,0.s) +Chars 10905 - 10906 [+] 0. secs (0.u,0.s) +Chars 10951 - 10971 [rewrite~!bind_ret_l.] 0.052 secs (0.052u,0.s) +Chars 10978 - 10983 [taus.] 0. secs (0.u,0.s) +Chars 10990 - 11001 [apply~CIH'.] 0. secs (0.u,0.s) +Chars 11008 - 11009 [+] 0. secs (0.u,0.s) +Chars 11010 - 11030 [rewrite~!bind_ret_l.] 0.033 secs (0.033u,0.s) +Chars 11037 - 11049 [reflexivity.] 0. secs (0.u,0.s) +Chars 11051 - 11055 [Qed.] 0.025 secs (0.025u,0.s) +Chars 11057 - 11076 [End~KTreeIterative.] 0. secs (0.u,0.s) diff --git a/theories/Core/Subevent.v.timing b/theories/Core/Subevent.v.timing new file mode 100644 index 00000000..97948b83 --- /dev/null +++ b/theories/Core/Subevent.v.timing @@ -0,0 +1,50 @@ +Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.03 secs (0.024u,0.006s) +Chars 665 - 740 [Notation~Subevent~E~F:=~(@ReSu...] 0. secs (0.u,0.s) +Chars 741 - 826 [Notation~"E~-<~F"~:=~(Subevent...] 0. secs (0.u,0.s) +Chars 828 - 902 [Definition~subevent~{E~F~:~Typ...] 0. secs (0.u,0.s) +Chars 968 - 995 [Module~Import~SumNotations.] 0. secs (0.u,0.s) +Chars 997 - 1021 [Declare~Scope~sum_scope.] 0. secs (0.u,0.s) +Chars 1022 - 1055 [Delimit~Scope~sum_scope~with~sum.] 0. secs (0.u,0.s) +Chars 1056 - 1087 [Bind~Scope~sum_scope~with~sum1.] 0. secs (0.u,0.s) +Chars 1089 - 1131 [Notation~"(|~x~)"~:=~(inr1~x)~...] 0. secs (0.u,0.s) +Chars 1132 - 1174 [Notation~"(~x~|)"~:=~(inl1~x)~...] 0. secs (0.u,0.s) +Chars 1175 - 1225 [Notation~"(|~x~|)"~:=~(inr1~(i...] 0. secs (0.u,0.s) +Chars 1226 - 1276 [Notation~"(||~x~)"~:=~(inr1~(i...] 0. secs (0.u,0.s) +Chars 1277 - 1335 [Notation~"(||~x~|)"~:=~(inr1~(...] 0. secs (0.u,0.s) +Chars 1336 - 1394 [Notation~"(|||~x~)"~:=~(inr1~(...] 0. secs (0.u,0.s) +Chars 1395 - 1461 [Notation~"(|||~x~|)"~:=~(inr1~...] 0. secs (0.u,0.s) +Chars 1462 - 1528 [Notation~"(||||~x~)"~:=~(inr1~...] 0. secs (0.u,0.s) +Chars 1529 - 1605 [Notation~"(||||~x~|)"~:=~(inr1...] 0. secs (0.u,0.s) +Chars 1606 - 1682 [Notation~"(|||||~x~)"~:=~(inr1...] 0. secs (0.u,0.s) +Chars 1683 - 1767 [Notation~"(|||||~x~|)"~:=~(inr...] 0. secs (0.u,0.s) +Chars 1768 - 1852 [Notation~"(||||||~x~)"~:=~(inr...] 0. secs (0.u,0.s) +Chars 1853 - 1945 [Notation~"(||||||~x~|)"~:=~(in...] 0. secs (0.u,0.s) +Chars 1946 - 2038 [Notation~"(|||||||~x~)"~:=~(in...] 0. secs (0.u,0.s) +Chars 2040 - 2057 [End~SumNotations.] 0.001 secs (0.u,0.s) +Chars 2059 - 2086 [#[local]~Open~Scope~sum_scope.] 0. secs (0.u,0.s) +Chars 2127 - 2170 [Notation~vis~e~k:=~(Vis~(subev...] 0. secs (0.u,0.s) +Chars 2236 - 2289 [Notation~trigger~e:=~(ITree.tr...] 0. secs (0.u,0.s) +Chars 2442 - 2483 [Class~Embeddable~U~V~:=~~~~~em...] 0. secs (0.u,0.s) +Chars 2485 - 2685 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) +Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) +Chars 2939 - 3043 [Lemma~resum_to_subevent~:~~~fo...] 0. secs (0.u,0.s) +Chars 3044 - 3050 [Proof.] 0. secs (0.u,0.s) +Chars 3053 - 3073 [intros;~reflexivity.] 0. secs (0.u,0.s) +Chars 3074 - 3078 [Qed.] 0. secs (0.u,0.s) +Chars 3080 - 3204 [Lemma~subevent_subevent'~:~~~f...] 0. secs (0.u,0.s) +Chars 3205 - 3211 [Proof.] 0. secs (0.u,0.s) +Chars 3214 - 3226 [reflexivity.] 0. secs (0.u,0.s) +Chars 3227 - 3231 [Qed.] 0. secs (0.u,0.s) +Chars 3233 - 3430 [Lemma~subevent_subevent~:~~~fo...] 0. secs (0.u,0.s) +Chars 3431 - 3437 [Proof.] 0. secs (0.u,0.s) +Chars 3440 - 3452 [reflexivity.] 0. secs (0.u,0.s) +Chars 3453 - 3457 [Qed.] 0. secs (0.u,0.s) +Chars 3459 - 3540 [#[global]~Instance~subevent_vo...] 0. secs (0.u,0.s) +Chars 3542 - 3638 [Lemma~subevent_left~{E}~{F}~{R...] 0. secs (0.u,0.s) +Chars 3639 - 3645 [Proof.] 0. secs (0.u,0.s) +Chars 3648 - 3660 [reflexivity.] 0. secs (0.u,0.s) +Chars 3661 - 3665 [Qed.] 0. secs (0.u,0.s) +Chars 3667 - 3764 [Lemma~subevent_right~{E}~{F}~{...] 0. secs (0.u,0.s) +Chars 3765 - 3771 [Proof.] 0. secs (0.u,0.s) +Chars 3774 - 3786 [reflexivity.] 0. secs (0.u,0.s) +Chars 3787 - 3791 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq.v.timing b/theories/Eq.v.timing new file mode 100644 index 00000000..57cac33e --- /dev/null +++ b/theories/Eq.v.timing @@ -0,0 +1 @@ +Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.139 secs (0.123u,0.016s) diff --git a/theories/Eq/EqAxiom.v.timing b/theories/Eq/EqAxiom.v.timing new file mode 100644 index 00000000..b569c7d8 --- /dev/null +++ b/theories/Eq/EqAxiom.v.timing @@ -0,0 +1,7 @@ +Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.039 secs (0.031u,0.007s) +Chars 492 - 604 [Axiom~~~(bisimulation_is_eq~:~...] 0. secs (0.u,0.s) +Chars 606 - 666 [Lemma~itree_eta_~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) +Chars 667 - 673 [Proof.] 0. secs (0.u,0.s) +Chars 676 - 701 [apply~bisimulation_is_eq.] 0. secs (0.u,0.s) +Chars 702 - 718 [apply~itree_eta.] 0. secs (0.u,0.s) +Chars 719 - 723 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Eqit.v.timing b/theories/Eq/Eqit.v.timing new file mode 100644 index 00000000..35e6c6f6 --- /dev/null +++ b/theories/Eq/Eqit.v.timing @@ -0,0 +1,1912 @@ +Chars 699 - 830 [From~Stdlib~Require~Import~Str...] 0.01 secs (0.006u,0.003s) +Chars 832 - 868 [From~Coinduction~Require~Expor...] 0.002 secs (0.001u,0.s) +Chars 967 - 1107 [From~ITree~Require~Import~Basi...] 0.023 secs (0.018u,0.004s) +Chars 1110 - 1139 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 2730 - 2774 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) +Chars 2776 - 2789 [Section~eqit.] 0. secs (0.u,0.s) +Chars 3466 - 3493 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 3920 - 4636 [Inductive~eqitF~{R1~R2~:~Type}...] 0.002 secs (0.002u,0.s) +Chars 4639 - 4671 [Hint~Constructors~eqitF:~itree.] 0. secs (0.u,0.s) +Chars 4675 - 4939 [Definition~eqit_~b1~b2~~~(sim~...] 0. secs (0.u,0.s) +Chars 4942 - 4968 [Hint~Unfold~eqit_:~itree.] 0. secs (0.u,0.s) +Chars 5020 - 5080 [Lemma~eqitF_mono~b1~b2~:~Prope...] 0. secs (0.u,0.s) +Chars 5083 - 5089 [Proof.] 0. secs (0.u,0.s) +Chars 5094 - 5130 [intros~sim~sim'~Hsim~R1~R2~RR~...] 0. secs (0.u,0.s) +Chars 5135 - 5148 [unfold~eqit_.] 0. secs (0.u,0.s) +Chars 5149 - 5159 [intros~IN.] 0. secs (0.u,0.s) +Chars 5164 - 5196 [induction~IN;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 5201 - 5202 [-] 0. secs (0.u,0.s) +Chars 5203 - 5220 [apply~Hsim;~auto.] 0.013 secs (0.012u,0.s) +Chars 5225 - 5226 [-] 0. secs (0.u,0.s) +Chars 5227 - 5254 [intros~?;~apply~Hsim;~auto.] 0. secs (0.u,0.s) +Chars 5257 - 5261 [Qed.] 0. secs (0.u,0.s) +Chars 5320 - 5484 [Definition~eqit_mon~b1~b2~:~~~...] 0. secs (0.u,0.s) +Chars 5488 - 5609 [Definition~eqit~b1~b2~:~~~fora...] 0. secs (0.u,0.s) +Chars 5820 - 5901 [Definition~eq_itree~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 5905 - 5980 [Definition~eutt~{R1}~{R2}~(RR~...] 0. secs (0.u,0.s) +Chars 5984 - 6062 [Definition~euttge~{R1}~{R2}~(R...] 0. secs (0.u,0.s) +Chars 6064 - 6073 [End~eqit.] 0. secs (0.u,0.s) +Chars 6074 - 6120 [Arguments~eqit_~{E}~b1~b2~sim~...] 0. secs (0.u,0.s) +Chars 6121 - 6161 [Arguments~eqit~{E}~b1~b2~{R1~R...] 0. secs (0.u,0.s) +Chars 6162 - 6191 [Arguments~eqit_mon~{E}~b1~b2.] 0. secs (0.u,0.s) +Chars 6415 - 6481 [Infix~"≅⟨~R~⟩"~:=~(eq_itree~R)...] 0. secs (0.u,0.s) +Chars 6486 - 6544 [Infix~"≅"~:=~(eq_itree~eq)~(~a...] 0. secs (0.u,0.s) +Chars 6567 - 6655 [Infix~"{≅⟨~R~⟩}"~:=~(eqitF~R~f...] 0. secs (0.u,0.s) +Chars 6660 - 6754 [Infix~"{≅}"~:=~(eqitF~eq~false...] 0. secs (0.u,0.s) +Chars 6778 - 6870 [Infix~"{[≅⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) +Chars 6875 - 6973 [Infix~"{[≅]}"~:=~(eqitF~eq~fal...] 0. secs (0.u,0.s) +Chars 6993 - 7089 [Infix~"[≅⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) +Chars 7094 - 7182 [Infix~"[≅]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) +Chars 7188 - 7248 [Infix~"≈⟨~R~⟩"~:=~(eutt~R)~(~a...] 0. secs (0.u,0.s) +Chars 7253 - 7305 [Infix~"≈"~:=~(eutt~eq)~(~at~le...] 0. secs (0.u,0.s) +Chars 7328 - 7410 [Infix~"{≈⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) +Chars 7415 - 7503 [Infix~"{≈}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) +Chars 7527 - 7617 [Infix~"{[≈⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) +Chars 7622 - 7718 [Infix~"{[≈]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) +Chars 7738 - 7832 [Infix~"[≈⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) +Chars 7837 - 7923 [Infix~"[≈]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) +Chars 7929 - 7991 [Infix~"≳⟨~R~⟩"~:=~(euttge~R)~(...] 0. secs (0.u,0.s) +Chars 7996 - 8052 [Infix~"≳"~:=~(euttge~eq)~(~at~...] 0. secs (0.u,0.s) +Chars 8075 - 8160 [Infix~"{≳⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) +Chars 8165 - 8256 [Infix~"{≳}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) +Chars 8280 - 8371 [Infix~"{[≳⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) +Chars 8376 - 8473 [Infix~"{[≳]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) +Chars 8493 - 8588 [Infix~"[≳⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) +Chars 8593 - 8680 [Infix~"[≳]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) +Chars 8703 - 8750 [Notation~euttC~:=~(Chain~(eqit...] 0. secs (0.u,0.s) +Chars 8755 - 8805 [Notation~euttgeC~:=~(Chain~(eq...] 0. secs (0.u,0.s) +Chars 8810 - 8863 [Notation~eq_itreeC~:=~(Chain~(...] 0. secs (0.u,0.s) +Chars 8922 - 8983 [Notation~"⊙~x"~:=~(observe~x)~...] 0. secs (0.u,0.s) +Chars 9015 - 9057 [#[global]~Hint~Constructors~eq...] 0. secs (0.u,0.s) +Chars 9062 - 9098 [#[global]~Hint~Unfold~eqit_:~i...] 0. secs (0.u,0.s) +Chars 9103 - 9142 [#[global]~Hint~Unfold~eqit_mon...] 0. secs (0.u,0.s) +Chars 9147 - 9182 [#[global]~Hint~Unfold~eqit:~it...] 0. secs (0.u,0.s) +Chars 9187 - 9226 [#[global]~Hint~Unfold~eq_itree...] 0. secs (0.u,0.s) +Chars 9231 - 9266 [#[global]~Hint~Unfold~eutt:~it...] 0. secs (0.u,0.s) +Chars 9271 - 9308 [#[global]~Hint~Unfold~euttge:~...] 0. secs (0.u,0.s) +Chars 10050 - 10116 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) +Chars 10117 - 10188 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) +Chars 10189 - 10260 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) +Chars 10262 - 10286 [Ltac~icbn~:=~repeat~red.] 0. secs (0.u,0.s) +Chars 10288 - 10337 [Ltac~icbn_in~h~:=~cbn[eqit_mon...] 0. secs (0.u,0.s) +Chars 10339 - 10554 [Ltac~~refold~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) +Chars 10556 - 10791 [Ltac~~refold_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 10793 - 11889 [Ltac~~to_mon_core~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 11891 - 12075 [Ltac~~to_mon~:=~~~let~dummy~:=...] 0. secs (0.u,0.s) +Chars 12078 - 12553 [Ltac~~to_mon_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 12613 - 12672 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 12673 - 12748 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 12750 - 12804 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) +Chars 12805 - 12859 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) +Chars 12860 - 12916 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) +Chars 12917 - 12967 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) +Chars 13018 - 13165 [Tactic~Notation~"step"~:=~~mat...] 0. secs (0.u,0.s) +Chars 13268 - 13440 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 13443 - 13511 [Tactic~Notation~"unstep"~:=~iu...] 0. secs (0.u,0.s) +Chars 13512 - 13616 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) +Chars 13618 - 13699 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) +Chars 13701 - 13816 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) +Chars 13818 - 13919 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) +Chars 13922 - 14032 [Tactic~Notation~"icoinduction"...] 0. secs (0.u,0.s) +Chars 14091 - 14140 [Ltac~sinv~H~:=~repeat~red~in~H...] 0. secs (0.u,0.s) +Chars 14278 - 14546 [Ltac~~solve_eqitF~:=~~~iunfold...] 0. secs (0.u,0.s) +Chars 14785 - 14820 [Ltac~taul~:=~apply~EqTauL;~[~a...] 0. secs (0.u,0.s) +Chars 14821 - 14856 [Ltac~taur~:=~apply~EqTauR;~[~a...] 0. secs (0.u,0.s) +Chars 14858 - 14883 [Ltac~taus~:=~apply~EqTau.] 0. secs (0.u,0.s) +Chars 14887 - 14914 [Module~step_notation_tests.] 0. secs (0.u,0.s) +Chars 14918 - 14954 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 14957 - 14989 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 14992 - 15033 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 15036 - 15072 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 15075 - 15111 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 15114 - 15173 [#[local]~Parameter~(eqc~:~Chai...] 0. secs (0.u,0.s) +Chars 15176 - 15211 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 15214 - 15252 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 15255 - 15290 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 15293 - 15331 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 15334 - 15368 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 15371 - 15406 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 15449 - 15466 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 15515 - 15520 [step.] 0.001 secs (0.001u,0.s) +Chars 15521 - 15528 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15533 - 15538 [step.] 0.001 secs (0.001u,0.s) +Chars 15543 - 15553 [Fail~step.] 0. secs (0.u,0.s) +Chars 15559 - 15566 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15572 - 15584 [Fail~unstep.] 0.001 secs (0.001u,0.s) +Chars 15591 - 15663 [assert~(eqitF~eq~false~false~(...] 0. secs (0.u,0.s) +Chars 15668 - 15673 [step.] 0.002 secs (0.002u,0.s) +Chars 15704 - 15709 [step.] 0.024 secs (0.024u,0.s) +Chars 15710 - 15717 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15718 - 15730 [Fail~unstep.] 0.001 secs (0.001u,0.s) +Chars 15731 - 15736 [step.] 0.001 secs (0.001u,0.s) +Chars 15737 - 15747 [Fail~step.] 0. secs (0.u,0.s) +Chars 15748 - 15772 [now~unstep;~apply~EQ2.] 0.002 secs (0.002u,0.s) +Chars 15778 - 15809 [assert~((elem~eqc~_~_~eq)~v~w).] 0. secs (0.u,0.s) +Chars 15814 - 15819 [step.] 0.001 secs (0.001u,0.s) +Chars 15820 - 15825 [step.] 0.002 secs (0.002u,0.s) +Chars 15857 - 15862 [step.] 0.001 secs (0.001u,0.s) +Chars 15863 - 15870 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15871 - 15883 [Fail~unstep.] 0.001 secs (0.001u,0.s) +Chars 15884 - 15889 [step.] 0.002 secs (0.002u,0.s) +Chars 15890 - 15900 [Fail~step.] 0. secs (0.u,0.s) +Chars 15901 - 15925 [now~unstep;~apply~EQ2.] 0.003 secs (0.002u,0.s) +Chars 15931 - 15943 [to_mon~in~H.] 0. secs (0.u,0.s) +Chars 15947 - 15953 [Abort.] 0. secs (0.u,0.s) +Chars 15956 - 15980 [End~step_notation_tests.] 0. secs (0.u,0.s) +Chars 15983 - 16281 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) +Chars 16282 - 16288 [Proof.] 0. secs (0.u,0.s) +Chars 16291 - 16598 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) +Chars 16601 - 16602 [-] 0. secs (0.u,0.s) +Chars 16603 - 16615 [left;~eauto.] 0. secs (0.u,0.s) +Chars 16618 - 16619 [-] 0. secs (0.u,0.s) +Chars 16620 - 16639 [destruct~i0;~eauto.] 0.001 secs (0.u,0.s) +Chars 16640 - 16644 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16646 - 16947 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.u,0.s) +Chars 16948 - 16954 [Proof.] 0. secs (0.u,0.s) +Chars 16957 - 17176 [refine~~~(fun~H~=>~~~~match~~~...] 0. secs (0.u,0.s) +Chars 17179 - 17180 [-] 0. secs (0.u,0.s) +Chars 17181 - 17193 [left;~eauto.] 0. secs (0.u,0.s) +Chars 17196 - 17197 [-] 0. secs (0.u,0.s) +Chars 17198 - 17216 [destruct~i;~eauto.] 0.001 secs (0.u,0.s) +Chars 17217 - 17221 [Qed.] 0.001 secs (0.u,0.s) +Chars 17223 - 17472 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0. secs (0.u,0.s) +Chars 17473 - 17479 [Proof.] 0. secs (0.u,0.s) +Chars 17482 - 17717 [refine~~~(fun~H~=>~~~~match~~~...] 0. secs (0.u,0.s) +Chars 17720 - 17721 [-] 0. secs (0.u,0.s) +Chars 17722 - 17749 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) +Chars 17752 - 17753 [-] 0. secs (0.u,0.s) +Chars 17754 - 17774 [destruct~i;~exact~I.] 0. secs (0.u,0.s) +Chars 17775 - 17779 [Qed.] 0. secs (0.u,0.s) +Chars 17781 - 17974 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 17975 - 17981 [Proof.] 0. secs (0.u,0.s) +Chars 17984 - 17993 [intros~H.] 0. secs (0.u,0.s) +Chars 17994 - 18018 [dependent~destruction~H.] 0.003 secs (0.002u,0.s) +Chars 18019 - 18030 [assumption.] 0. secs (0.u,0.s) +Chars 18031 - 18035 [Qed.] 0.002 secs (0.001u,0.s) +Chars 18037 - 18277 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 18278 - 18284 [Proof.] 0. secs (0.u,0.s) +Chars 18287 - 18333 [destruct~p;~intros~<-;~cbn;~co...] 0.012 secs (0.012u,0.s) +Chars 18334 - 18338 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18340 - 18469 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 18470 - 18476 [Proof.] 0. secs (0.u,0.s) +Chars 18479 - 18518 [intros~!;~induction~H;~eauto~w...] 0. secs (0.u,0.s) +Chars 18519 - 18523 [Qed.] 0. secs (0.u,0.s) +Chars 18525 - 18677 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) +Chars 18678 - 18684 [Proof.] 0. secs (0.u,0.s) +Chars 18687 - 18695 [intros~!.] 0. secs (0.u,0.s) +Chars 18696 - 18702 [subst.] 0. secs (0.u,0.s) +Chars 18703 - 18754 [split;~unfold~subrelationH,~Su...] 0. secs (0.u,0.s) +Chars 18757 - 18851 [all:~~induction~H0;~auto~with~...] 0.003 secs (0.003u,0.s) +Chars 18852 - 18856 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18858 - 19023 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) +Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) +Chars 19033 - 19041 [intros~!.] 0. secs (0.u,0.s) +Chars 19042 - 19048 [subst.] 0. secs (0.u,0.s) +Chars 19049 - 19063 [split;~intros.] 0. secs (0.u,0.s) +Chars 19066 - 19135 [all:~induction~H0;~auto~with~i...] 0.001 secs (0.001u,0.s) +Chars 19136 - 19140 [Qed.] 0.001 secs (0.001u,0.s) +Chars 19142 - 19286 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) +Chars 19287 - 19314 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) +Chars 19317 - 19325 [intros~!.] 0. secs (0.u,0.s) +Chars 19326 - 19332 [subst.] 0. secs (0.u,0.s) +Chars 19336 - 19342 [split.] 0. secs (0.u,0.s) +Chars 19345 - 19346 [-] 0. secs (0.u,0.s) +Chars 19347 - 19362 [revert_until~H.] 0. secs (0.u,0.s) +Chars 19363 - 19382 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) +Chars 19383 - 19390 [intros.] 0. secs (0.u,0.s) +Chars 19395 - 19406 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19411 - 19438 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) +Chars 19443 - 19469 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) +Chars 19473 - 19474 [-] 0. secs (0.u,0.s) +Chars 19475 - 19490 [revert_until~H.] 0. secs (0.u,0.s) +Chars 19491 - 19510 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) +Chars 19511 - 19518 [intros.] 0. secs (0.u,0.s) +Chars 19525 - 19536 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19541 - 19568 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) +Chars 19574 - 19600 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) +Chars 19602 - 19606 [Qed.] 0.006 secs (0.006u,0.s) +Chars 19609 - 19750 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 19751 - 19757 [Proof.] 0. secs (0.u,0.s) +Chars 19760 - 19793 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 19794 - 19798 [Qed.] 0. secs (0.u,0.s) +Chars 19800 - 19937 [#[global]~Instance~euttge_Prop...] 0. secs (0.u,0.s) +Chars 19938 - 19944 [Proof.] 0. secs (0.u,0.s) +Chars 19947 - 19980 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 19981 - 19985 [Qed.] 0. secs (0.u,0.s) +Chars 19987 - 20120 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 20121 - 20127 [Proof.] 0. secs (0.u,0.s) +Chars 20130 - 20163 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 20164 - 20168 [Qed.] 0. secs (0.u,0.s) +Chars 20613 - 20764 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 20765 - 20771 [Proof.] 0. secs (0.u,0.s) +Chars 20798 - 20817 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 20818 - 20833 [intros~u~v~euv.] 0. secs (0.u,0.s) +Chars 20901 - 20913 [step~in~euv.] 0. secs (0.u,0.s) +Chars 20979 - 21011 [induction~euv;~eauto~with~itree.] 0.003 secs (0.003u,0.s) +Chars 21012 - 21016 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21018 - 21196 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 21197 - 21203 [Proof.] 0. secs (0.u,0.s) +Chars 21206 - 21213 [intros.] 0. secs (0.u,0.s) +Chars 21214 - 21234 [now~apply~eqit_flip.] 0. secs (0.u,0.s) +Chars 21237 - 21241 [Qed.] 0. secs (0.u,0.s) +Chars 21243 - 21278 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) +Chars 21314 - 21487 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 21488 - 21494 [Proof.] 0. secs (0.u,0.s) +Chars 21497 - 21505 [intros~!.] 0. secs (0.u,0.s) +Chars 21509 - 21523 [revert~a~a0~H.] 0. secs (0.u,0.s) +Chars 21527 - 21554 [icoinduction~c~CIH;~intros.] 0.001 secs (0.001u,0.s) +Chars 21559 - 21569 [step~in~H.] 0. secs (0.u,0.s) +Chars 21570 - 21600 [induction~H;~eauto~with~itree.] 0.003 secs (0.003u,0.s) +Chars 21603 - 21616 [econstructor.] 0. secs (0.u,0.s) +Chars 21617 - 21632 [now~apply~LERR.] 0. secs (0.u,0.s) +Chars 21635 - 21639 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21738 - 21755 [Section~eqit_gen.] 0. secs (0.u,0.s) +Chars 21808 - 21867 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 22239 - 22389 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 22390 - 22396 [Proof.] 0. secs (0.u,0.s) +Chars 22401 - 22405 [red.] 0. secs (0.u,0.s) +Chars 22406 - 22448 [destruct~x;~constructor;~eauto...] 0. secs (0.u,0.s) +Chars 22449 - 22453 [Qed.] 0. secs (0.u,0.s) +Chars 22504 - 22648 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 22649 - 22655 [Proof.] 0. secs (0.u,0.s) +Chars 22660 - 22664 [red.] 0. secs (0.u,0.s) +Chars 22665 - 22704 [induction~3;~constructor;~subs...] 0.001 secs (0.001u,0.s) +Chars 22705 - 22709 [Qed.] 0. secs (0.u,0.s) +Chars 22759 - 22913 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 22914 - 22920 [Proof.] 0. secs (0.u,0.s) +Chars 22925 - 22949 [intros~?~?~t~u~v~EQ1~EQ2.] 0. secs (0.u,0.s) +Chars 22954 - 22999 [inv~EQ1;~try~now~inv~EQ2;~eaut...] 0.035 secs (0.035u,0.s) +Chars 23004 - 23072 [apply~eqitF_inv_VisF_l~in~EQ2~...] 0.001 secs (0.001u,0.s) +Chars 23077 - 23096 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 23097 - 23101 [Qed.] 0.002 secs (0.002u,0.s) +Chars 23210 - 23301 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 23302 - 23308 [Proof.] 0. secs (0.u,0.s) +Chars 23311 - 23323 [red;~intros.] 0. secs (0.u,0.s) +Chars 23326 - 23335 [revert~x.] 0. secs (0.u,0.s) +Chars 23336 - 23355 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 23356 - 23362 [intro.] 0. secs (0.u,0.s) +Chars 23366 - 23399 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) +Chars 23400 - 23404 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23406 - 23491 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 23492 - 23498 [Proof.] 0. secs (0.u,0.s) +Chars 23501 - 23521 [intros~Hsym~x~y~Hxy.] 0. secs (0.u,0.s) +Chars 23524 - 23540 [apply~eqit_flip.] 0. secs (0.u,0.s) +Chars 23543 - 23595 [eapply~eqit_mono;~[~auto~|~aut...] 0.001 secs (0.001u,0.s) +Chars 23597 - 23601 [Qed.] 0. secs (0.u,0.s) +Chars 23603 - 23731 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 23732 - 23738 [Proof.] 0. secs (0.u,0.s) +Chars 23741 - 23754 [red;~intro~x.] 0. secs (0.u,0.s) +Chars 23757 - 23777 [apply~(gfp_chain~c).] 0.001 secs (0.001u,0.s) +Chars 23780 - 23792 [reflexivity.] 0. secs (0.u,0.s) +Chars 23793 - 23797 [Qed.] 0. secs (0.u,0.s) +Chars 23799 - 23956 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) +Chars 23957 - 23963 [Proof.] 0. secs (0.u,0.s) +Chars 23966 - 23986 [intros~T~HT~x~y~Hxy.] 0. secs (0.u,0.s) +Chars 23989 - 24001 [intros~z~Hz.] 0. secs (0.u,0.s) +Chars 24002 - 24017 [apply~HT;~auto.] 0. secs (0.u,0.s) +Chars 24018 - 24022 [Qed.] 0. secs (0.u,0.s) +Chars 24024 - 24146 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 24147 - 24153 [Proof.] 0. secs (0.u,0.s) +Chars 24156 - 24165 [revert~c.] 0. secs (0.u,0.s) +Chars 24166 - 24204 [apply~(tower~inf_closed_Symmet...] 0. secs (0.u,0.s) +Chars 24207 - 24221 [intros~c~Hsym.] 0. secs (0.u,0.s) +Chars 24222 - 24230 [intros~!.] 0. secs (0.u,0.s) +Chars 24231 - 24259 [apply~Symmetric_eqitF;~auto.] 0. secs (0.u,0.s) +Chars 24260 - 24264 [Qed.] 0. secs (0.u,0.s) +Chars 24266 - 24279 [End~eqit_gen.] 0. secs (0.u,0.s) +Chars 24282 - 24299 [Section~eqit_inv.] 0. secs (0.u,0.s) +Chars 24303 - 24377 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 24380 - 24429 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) +Chars 24433 - 24899 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) +Chars 24903 - 24998 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 25001 - 25007 [Proof.] 0. secs (0.u,0.s) +Chars 25012 - 25023 [intros~*~H.] 0. secs (0.u,0.s) +Chars 25028 - 25038 [step~in~H.] 0. secs (0.u,0.s) +Chars 25043 - 25048 [step.] 0.001 secs (0.001u,0.s) +Chars 25056 - 25084 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) +Chars 25089 - 25111 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) +Chars 25118 - 25119 [-] 0. secs (0.u,0.s) +Chars 25120 - 25132 [step~in~REL.] 0. secs (0.u,0.s) +Chars 25133 - 25142 [now~taur.] 0. secs (0.u,0.s) +Chars 25147 - 25148 [-] 0. secs (0.u,0.s) +Chars 25149 - 25154 [taur.] 0. secs (0.u,0.s) +Chars 25155 - 25173 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25177 - 25181 [Qed.] 0.002 secs (0.002u,0.s) +Chars 25186 - 25281 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 25284 - 25290 [Proof.] 0. secs (0.u,0.s) +Chars 25295 - 25306 [intros~*~H.] 0. secs (0.u,0.s) +Chars 25311 - 25321 [step~in~H.] 0. secs (0.u,0.s) +Chars 25326 - 25331 [step.] 0.001 secs (0.001u,0.s) +Chars 25339 - 25367 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) +Chars 25372 - 25394 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) +Chars 25401 - 25402 [-] 0. secs (0.u,0.s) +Chars 25403 - 25415 [step~in~REL.] 0. secs (0.u,0.s) +Chars 25416 - 25425 [now~taul.] 0. secs (0.u,0.s) +Chars 25431 - 25432 [-] 0. secs (0.u,0.s) +Chars 25433 - 25438 [taul.] 0. secs (0.u,0.s) +Chars 25439 - 25457 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25461 - 25465 [Qed.] 0.002 secs (0.002u,0.s) +Chars 25470 - 25658 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0. secs (0.u,0.s) +Chars 25661 - 25667 [Proof.] 0. secs (0.u,0.s) +Chars 25672 - 25679 [intros.] 0. secs (0.u,0.s) +Chars 25684 - 25710 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 25716 - 25742 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 25748 - 25775 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 25780 - 25839 [induction~H;~intros~t1'~t2'~He...] 0.022 secs (0.021u,0.s) +Chars 25844 - 25845 [-] 0. secs (0.u,0.s) +Chars 25846 - 25869 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) +Chars 25870 - 25881 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 25888 - 25889 [-] 0. secs (0.u,0.s) +Chars 25890 - 25917 [inv~H;~inv~Heqot1;~simpobs.] 0.034 secs (0.034u,0.s) +Chars 25925 - 25926 [+] 0. secs (0.u,0.s) +Chars 25927 - 25932 [taul.] 0. secs (0.u,0.s) +Chars 25933 - 25949 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 25958 - 25959 [+] 0. secs (0.u,0.s) +Chars 25960 - 25965 [taul.] 0. secs (0.u,0.s) +Chars 25966 - 25984 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25991 - 25992 [-] 0. secs (0.u,0.s) +Chars 25993 - 26020 [inv~H;~inv~Heqot2;~simpobs.] 0.032 secs (0.032u,0.s) +Chars 26028 - 26029 [+] 0. secs (0.u,0.s) +Chars 26030 - 26035 [taur.] 0. secs (0.u,0.s) +Chars 26036 - 26052 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 26060 - 26061 [+] 0. secs (0.u,0.s) +Chars 26062 - 26067 [taur.] 0. secs (0.u,0.s) +Chars 26068 - 26086 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 26090 - 26094 [Qed.] 0.007 secs (0.007u,0.s) +Chars 26099 - 26194 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) +Chars 26197 - 26203 [Proof.] 0. secs (0.u,0.s) +Chars 26208 - 26215 [intros.] 0. secs (0.u,0.s) +Chars 26220 - 26236 [step~in~H;~step.] 0.001 secs (0.001u,0.s) +Chars 26241 - 26265 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) +Chars 26269 - 26273 [Qed.] 0. secs (0.u,0.s) +Chars 26278 - 26337 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0. secs (0.u,0.s) +Chars 26340 - 26346 [Proof.] 0. secs (0.u,0.s) +Chars 26351 - 26371 [intros~H;~step~in~H.] 0. secs (0.u,0.s) +Chars 26376 - 26459 [genobs~t1~ot1;~genobs~t2~ot2;~...] 0. secs (0.u,0.s) +Chars 26464 - 26524 [destruct~H;~intros~*~E1~E2;~re...] 0.001 secs (0.001u,0.s) +Chars 26529 - 26530 [-] 0. secs (0.u,0.s) +Chars 26531 - 26558 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) +Chars 26563 - 26564 [-] 0. secs (0.u,0.s) +Chars 26565 - 26584 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) +Chars 26585 - 26598 [destruct~ot2.] 0. secs (0.u,0.s) +Chars 26605 - 26668 [1,~3:~step;~unfold~observe,~_o...] 0.003 secs (0.003u,0.s) +Chars 26675 - 26743 [1:~apply~eqit_inv_Tau_r;~step;...] 0.001 secs (0.001u,0.s) +Chars 26748 - 26749 [-] 0. secs (0.u,0.s) +Chars 26750 - 26769 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) +Chars 26770 - 26783 [destruct~ot1.] 0. secs (0.u,0.s) +Chars 26790 - 26853 [1,~3:~step;~unfold~observe,~_o...] 0.002 secs (0.002u,0.s) +Chars 26860 - 26928 [1:~apply~eqit_inv_Tau_l;~step;...] 0.001 secs (0.001u,0.s) +Chars 26931 - 26935 [Qed.] 0.006 secs (0.006u,0.s) +Chars 26937 - 27122 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) +Chars 27123 - 27129 [Proof.] 0. secs (0.u,0.s) +Chars 27132 - 27150 [intros~om1~Heq~H2.] 0. secs (0.u,0.s) +Chars 27214 - 27260 [induction~H2;~taul;~simpobs;~e...] 0.003 secs (0.003u,0.s) +Chars 27262 - 27266 [Qed.] 0. secs (0.u,0.s) +Chars 27269 - 27282 [End~eqit_inv.] 0. secs (0.u,0.s) +Chars 27284 - 27328 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) +Chars 27329 - 27373 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) +Chars 27374 - 27422 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) +Chars 27424 - 27552 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) +Chars 27553 - 27559 [Proof.] 0. secs (0.u,0.s) +Chars 27562 - 27584 [intros~EQ;~step~in~EQ.] 0. secs (0.u,0.s) +Chars 27587 - 27620 [desobs~t~ot;~eauto;~inv~EQ;~easy.] 0.006 secs (0.006u,0.s) +Chars 27621 - 27625 [Qed.] 0.004 secs (0.004u,0.s) +Chars 27627 - 27800 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 27801 - 27807 [Proof.] 0. secs (0.u,0.s) +Chars 27810 - 27820 [intros~EQ.] 0. secs (0.u,0.s) +Chars 27823 - 27845 [step~in~EQ;~cbn~in~EQ.] 0. secs (0.u,0.s) +Chars 27848 - 27873 [genobs~t~ot;~genobs~u~ou.] 0. secs (0.u,0.s) +Chars 27876 - 27899 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) +Chars 27902 - 27933 [induction~EQ;~intros;~try~easy.] 0.007 secs (0.007u,0.s) +Chars 27936 - 27937 [-] 0. secs (0.u,0.s) +Chars 27938 - 27952 [inv~H;~inv~H0.] 0.001 secs (0.001u,0.s) +Chars 27956 - 27957 [-] 0. secs (0.u,0.s) +Chars 27958 - 27973 [inv~H;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 27978 - 28022 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 28027 - 28032 [step.] 0.001 secs (0.001u,0.s) +Chars 28037 - 28045 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 28050 - 28055 [taul.] 0. secs (0.u,0.s) +Chars 28060 - 28067 [unstep.] 0.002 secs (0.002u,0.s) +Chars 28072 - 28091 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 28092 - 28096 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28099 - 28237 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) +Chars 28240 - 28432 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) +Chars 28437 - 28562 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) +Chars 28565 - 28621 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) +Chars 28622 - 28677 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) +Chars 29406 - 29568 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 29569 - 29597 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 29600 - 29638 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 29641 - 29657 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 29660 - 29725 [clear~c;~intros~c~IH~x~x'~EQx~...] 0.001 secs (0.001u,0.s) +Chars 29730 - 29740 [intros~EQ.] 0. secs (0.u,0.s) +Chars 29741 - 29751 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 29757 - 29786 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 29906 - 29945 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 29950 - 29971 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 29976 - 29977 [+] 0. secs (0.u,0.s) +Chars 29978 - 30004 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30011 - 30023 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 30030 - 30044 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 30051 - 30066 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30073 - 30108 [hinduction~EQx~before~ox;~try~...] 0.036 secs (0.036u,0.s) +Chars 30115 - 30116 [*] 0. secs (0.u,0.s) +Chars 30117 - 30143 [intros;~subst;~inv~Heqor1.] 0.005 secs (0.005u,0.s) +Chars 30144 - 30158 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 30167 - 30194 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 30203 - 30218 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30227 - 30262 [hinduction~EQy~before~oy;~try~...] 0.024 secs (0.024u,0.s) +Chars 30271 - 30296 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 30305 - 30336 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30343 - 30344 [*] 0. secs (0.u,0.s) +Chars 30345 - 30381 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 30386 - 30387 [+] 0. secs (0.u,0.s) +Chars 30388 - 30414 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30421 - 30433 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 30440 - 30454 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 30461 - 30476 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30483 - 30518 [hinduction~EQx~before~ox;~try~...] 0.038 secs (0.038u,0.s) +Chars 30525 - 30526 [*] 0. secs (0.u,0.s) +Chars 30527 - 30545 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 30554 - 30568 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 30577 - 30604 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 30613 - 30628 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30637 - 30672 [hinduction~EQy~before~oy;~try~...] 0.027 secs (0.027u,0.s) +Chars 30681 - 30699 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 30708 - 30715 [intros.] 0. secs (0.u,0.s) +Chars 30724 - 30729 [taur.] 0. secs (0.u,0.s) +Chars 30738 - 30755 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30762 - 30763 [*] 0. secs (0.u,0.s) +Chars 30764 - 30800 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 30805 - 30806 [+] 0. secs (0.u,0.s) +Chars 30807 - 30833 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30840 - 30852 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 30859 - 30875 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 30882 - 30897 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30904 - 30939 [hinduction~EQx~before~ox;~try~...] 0.038 secs (0.037u,0.s) +Chars 30946 - 30947 [*] 0. secs (0.u,0.s) +Chars 30948 - 30955 [intros.] 0. secs (0.u,0.s) +Chars 30964 - 31030 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 31039 - 31053 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 31062 - 31091 [genobs~y~oy;~genvis~e~k2~ot2.] 0. secs (0.u,0.s) +Chars 31100 - 31115 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 31124 - 31159 [hinduction~EQy~before~oy;~try~...] 0.025 secs (0.025u,0.s) +Chars 31168 - 31260 [intros;~apply~eq_inv_VisF_weak...] 0.015 secs (0.015u,0.s) +Chars 31269 - 31276 [intros.] 0. secs (0.u,0.s) +Chars 31285 - 31290 [taur.] 0. secs (0.u,0.s) +Chars 31299 - 31316 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 31323 - 31324 [*] 0. secs (0.u,0.s) +Chars 31325 - 31361 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 31366 - 31367 [+] 0. secs (0.u,0.s) +Chars 31368 - 31412 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 31419 - 31427 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 31434 - 31439 [taul.] 0. secs (0.u,0.s) +Chars 31446 - 31465 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 31472 - 31523 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 31530 - 31567 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 31572 - 31573 [+] 0. secs (0.u,0.s) +Chars 31574 - 31618 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 31625 - 31633 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 31640 - 31645 [taur.] 0. secs (0.u,0.s) +Chars 31652 - 31671 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 31678 - 31729 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 31736 - 31773 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 31774 - 31778 [Qed.] 0.019 secs (0.019u,0.s) +Chars 31838 - 32032 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 32033 - 32039 [Proof.] 0. secs (0.u,0.s) +Chars 32042 - 32098 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) +Chars 32101 - 32105 [Qed.] 0. secs (0.u,0.s) +Chars 32147 - 32332 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 32334 - 32340 [Proof.] 0. secs (0.u,0.s) +Chars 32343 - 32422 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) +Chars 32425 - 32429 [Qed.] 0. secs (0.u,0.s) +Chars 32432 - 32536 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 32537 - 32543 [Proof.] 0. secs (0.u,0.s) +Chars 32544 - 32564 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32565 - 32569 [Qed.] 0. secs (0.u,0.s) +Chars 32571 - 32680 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 32681 - 32687 [Proof.] 0. secs (0.u,0.s) +Chars 32688 - 32708 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32709 - 32713 [Qed.] 0. secs (0.u,0.s) +Chars 32715 - 32817 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) +Chars 32818 - 32824 [Proof.] 0. secs (0.u,0.s) +Chars 32825 - 32846 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32847 - 32851 [Qed.] 0. secs (0.u,0.s) +Chars 32853 - 32960 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) +Chars 32961 - 32967 [Proof.] 0. secs (0.u,0.s) +Chars 32968 - 32988 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32989 - 32993 [Qed.] 0. secs (0.u,0.s) +Chars 32995 - 33095 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 33096 - 33102 [Proof.] 0. secs (0.u,0.s) +Chars 33103 - 33123 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 33124 - 33128 [Qed.] 0. secs (0.u,0.s) +Chars 33130 - 33235 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 33236 - 33242 [Proof.] 0. secs (0.u,0.s) +Chars 33243 - 33263 [now~apply~eqit_mono.] 0.002 secs (0.002u,0.s) +Chars 33264 - 33268 [Qed.] 0. secs (0.u,0.s) +Chars 33270 - 33426 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 33427 - 33433 [Proof.] 0. secs (0.u,0.s) +Chars 33437 - 33450 [split;~intro.] 0. secs (0.u,0.s) +Chars 33454 - 33487 [1:~symmetry~in~H;~symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 33491 - 33622 [all:~~apply~eq_sub_euttge~with...] 0.002 secs (0.002u,0.s) +Chars 33623 - 33627 [Qed.] 0.001 secs (0.001u,0.s) +Chars 33629 - 33778 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 33780 - 33808 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 33812 - 33926 [split;~intros;~revert_until~RR...] 0.005 secs (0.005u,0.s) +Chars 33929 - 33968 [all:~hinduction~H1~before~RR;~...] 0.003 secs (0.003u,0.s) +Chars 33999 - 34050 [1-2,~6-7:~inv~H;~inv~H0;~simpo...] 0.179 secs (0.178u,0.001s) +Chars 34066 - 34245 [1,~4:~~genvis~e~k1~ok1;~inv~H;...] 0.168 secs (0.166u,0.001s) +Chars 34273 - 34342 [1,~3:~inv~H;~simpobs;~taul;~ea...] 0.073 secs (0.072u,0.s) +Chars 34345 - 34415 [1-2:~inv~H0;~simpobs;~taur;~ea...] 0.072 secs (0.071u,0.s) +Chars 34416 - 34420 [Qed.] 0.056 secs (0.055u,0.s) +Chars 34923 - 35089 [Lemma~not_euttge_proper_euttge...] 0. secs (0.u,0.s) +Chars 35092 - 35130 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 35134 - 35140 [intro.] 0. secs (0.u,0.s) +Chars 35142 - 35266 [assert~~(Hfalse~:~~~euttge~(E:...] 0. secs (0.u,0.s) +Chars 35269 - 35270 [{] 0. secs (0.u,0.s) +Chars 35271 - 35313 [eapply~H~with~(x~:=~Ret~tt)~(y...] 0. secs (0.u,0.s) +Chars 35436 - 35437 [-] 0. secs (0.u,0.s) +Chars 35438 - 35450 [reflexivity.] 0. secs (0.u,0.s) +Chars 35455 - 35456 [-] 0. secs (0.u,0.s) +Chars 35457 - 35462 [step.] 0.001 secs (0.001u,0.s) +Chars 35463 - 35468 [taul.] 0. secs (0.u,0.s) +Chars 35469 - 35481 [reflexivity.] 0. secs (0.u,0.s) +Chars 35486 - 35487 [-] 0. secs (0.u,0.s) +Chars 35488 - 35500 [reflexivity.] 0. secs (0.u,0.s) +Chars 35501 - 35502 [}] 0. secs (0.u,0.s) +Chars 35505 - 35520 [step~in~Hfalse.] 0. secs (0.u,0.s) +Chars 35521 - 35532 [inv~Hfalse.] 0.002 secs (0.002u,0.s) +Chars 35534 - 35538 [Qed.] 0.003 secs (0.003u,0.s) +Chars 35575 - 35742 [Lemma~euttge_proper_flip_euttg...] 0. secs (0.u,0.s) +Chars 35743 - 35771 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 35774 - 35812 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 35815 - 35831 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 35834 - 35899 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) +Chars 35904 - 35914 [intros~EQ.] 0. secs (0.u,0.s) +Chars 35915 - 35925 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 35931 - 35960 [genobs~x'~ox';~genobs~y'~oy'.] 0.002 secs (0.002u,0.s) +Chars 36080 - 36119 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 36124 - 36145 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 36150 - 36151 [+] 0. secs (0.u,0.s) +Chars 36152 - 36178 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36185 - 36197 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 36204 - 36218 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 36225 - 36240 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 36247 - 36282 [hinduction~EQx~before~ox;~try~...] 0.034 secs (0.034u,0.s) +Chars 36289 - 36290 [*] 0. secs (0.u,0.s) +Chars 36291 - 36317 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) +Chars 36318 - 36332 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 36341 - 36368 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 36377 - 36392 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 36401 - 36436 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) +Chars 36445 - 36470 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 36477 - 36478 [*] 0. secs (0.u,0.s) +Chars 36479 - 36515 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 36520 - 36521 [+] 0. secs (0.u,0.s) +Chars 36522 - 36548 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36555 - 36567 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 36574 - 36588 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 36595 - 36610 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 36617 - 36652 [hinduction~EQx~before~ox;~try~...] 0.036 secs (0.036u,0.s) +Chars 36659 - 36660 [*] 0. secs (0.u,0.s) +Chars 36661 - 36679 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 36688 - 36702 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 36711 - 36738 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 36747 - 36762 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 36771 - 36807 [hinduction~EQy~before~om2;~try...] 0.027 secs (0.027u,0.s) +Chars 36816 - 36834 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 36843 - 36859 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 36868 - 36873 [taul.] 0. secs (0.u,0.s) +Chars 36874 - 36880 [subst.] 0. secs (0.u,0.s) +Chars 36881 - 36886 [step.] 0.002 secs (0.002u,0.s) +Chars 37045 - 37051 [admit.] 0. secs (0.u,0.s) +Chars 37059 - 37060 [*] 0. secs (0.u,0.s) +Chars 37061 - 37097 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 37102 - 37103 [+] 0. secs (0.u,0.s) +Chars 37104 - 37130 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 37137 - 37149 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 37156 - 37172 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 37179 - 37194 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 37201 - 37236 [hinduction~EQx~before~ox;~try~...] 0.034 secs (0.034u,0.s) +Chars 37243 - 37250 [intros.] 0. secs (0.u,0.s) +Chars 37251 - 37259 [inv_Vis.] 0.006 secs (0.006u,0.s) +Chars 37267 - 37297 [apply~eqitF_inv_VisF_l~in~EQy.] 0. secs (0.u,0.s) +Chars 37298 - 37327 [break~EQy;~try~easy;~break~H.] 0.003 secs (0.003u,0.s) +Chars 37335 - 37345 [simpobs~...] 0.017 secs (0.017u,0.s) +Chars 37352 - 37359 [intros.] 0. secs (0.u,0.s) +Chars 37360 - 37365 [taul.] 0. secs (0.u,0.s) +Chars 37366 - 37386 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 37393 - 37394 [+] 0. secs (0.u,0.s) +Chars 37395 - 37439 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 37446 - 37454 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 37461 - 37466 [taul.] 0. secs (0.u,0.s) +Chars 37473 - 37492 [eapply~IHEQ;~eauto.] 0.001 secs (0.001u,0.s) +Chars 37499 - 37550 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 37557 - 37594 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 37599 - 37600 [+] 0. secs (0.u,0.s) +Chars 37601 - 37606 [easy.] 0.012 secs (0.012u,0.s) +Chars 37608 - 37614 [Abort.] 0. secs (0.u,0.s) +Chars 37838 - 38009 [#[global]~Instance~euttge_eq_p...] 0. secs (0.u,0.s) +Chars 38010 - 38038 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 38041 - 38079 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 38082 - 38098 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 38101 - 38166 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) +Chars 38171 - 38181 [intros~EQ.] 0. secs (0.u,0.s) +Chars 38182 - 38192 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 38198 - 38227 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 38232 - 38271 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 38276 - 38297 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 38302 - 38303 [+] 0. secs (0.u,0.s) +Chars 38304 - 38330 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 38337 - 38349 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 38356 - 38370 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 38377 - 38392 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 38399 - 38434 [hinduction~EQx~before~ox;~try~...] 0.035 secs (0.035u,0.s) +Chars 38441 - 38442 [*] 0. secs (0.u,0.s) +Chars 38443 - 38469 [intros;~subst;~inv~Heqor1.] 0.005 secs (0.005u,0.s) +Chars 38470 - 38484 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 38493 - 38520 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 38529 - 38544 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 38645 - 38680 [hinduction~EQy~before~oy;~try~...] 0.019 secs (0.019u,0.s) +Chars 38689 - 38714 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 38721 - 38722 [*] 0. secs (0.u,0.s) +Chars 38723 - 38759 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 38764 - 38765 [+] 0. secs (0.u,0.s) +Chars 38766 - 38792 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 38799 - 38811 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 38818 - 38832 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 38839 - 38854 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 38861 - 38896 [hinduction~EQx~before~ox;~try~...] 0.037 secs (0.037u,0.s) +Chars 38903 - 38904 [*] 0. secs (0.u,0.s) +Chars 38905 - 38923 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 38932 - 38946 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 38955 - 38982 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 38991 - 39006 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 39015 - 39050 [hinduction~EQy~before~oy;~try~...] 0.022 secs (0.022u,0.s) +Chars 39059 - 39077 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 39084 - 39085 [*] 0. secs (0.u,0.s) +Chars 39086 - 39122 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 39127 - 39128 [+] 0. secs (0.u,0.s) +Chars 39129 - 39155 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 39162 - 39174 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 39181 - 39197 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 39204 - 39219 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 39226 - 39261 [hinduction~EQx~before~ox;~try~...] 0.037 secs (0.036u,0.s) +Chars 39268 - 39269 [*] 0. secs (0.u,0.s) +Chars 39270 - 39277 [intros.] 0. secs (0.u,0.s) +Chars 39286 - 39352 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 39361 - 39375 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 39384 - 39413 [genobs~y~oy;~genvis~e~k2~ot2.] 0. secs (0.u,0.s) +Chars 39422 - 39437 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 39446 - 39481 [hinduction~EQy~before~oy;~try~...] 0.02 secs (0.02u,0.s) +Chars 39490 - 39582 [intros;~apply~eq_inv_VisF_weak...] 0.015 secs (0.015u,0.s) +Chars 39589 - 39590 [*] 0. secs (0.u,0.s) +Chars 39591 - 39627 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 39632 - 39633 [+] 0. secs (0.u,0.s) +Chars 39634 - 39678 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 39685 - 39693 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 39700 - 39705 [taul.] 0. secs (0.u,0.s) +Chars 39712 - 39731 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 39738 - 39789 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 39796 - 39833 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 39838 - 39839 [+] 0. secs (0.u,0.s) +Chars 39840 - 39845 [easy.] 0.012 secs (0.012u,0.s) +Chars 39895 - 39899 [Qed.] 0.017 secs (0.017u,0.s) +Chars 39901 - 40061 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 40062 - 40068 [Proof.] 0. secs (0.u,0.s) +Chars 40071 - 40084 [split;~intro.] 0. secs (0.u,0.s) +Chars 40087 - 40088 [-] 0. secs (0.u,0.s) +Chars 40211 - 40267 [symmetry~in~H;~apply~eq_sub_eu...] 0. secs (0.u,0.s) +Chars 40272 - 40287 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 40292 - 40331 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) +Chars 40334 - 40335 [-] 0. secs (0.u,0.s) +Chars 40448 - 40489 [apply~eq_sub_euttge~with~(RR~:...] 0. secs (0.u,0.s) +Chars 40494 - 40533 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) +Chars 40534 - 40538 [Qed.] 0.001 secs (0.001u,0.s) +Chars 40541 - 40705 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 40706 - 40712 [Proof.] 0. secs (0.u,0.s) +Chars 40716 - 40801 [split;~revert_until~c;~tower~i...] 0.009 secs (0.008u,0.s) +Chars 40875 - 40899 [all:~inv~H2;~simpobs.] 0.107 secs (0.107u,0.s) +Chars 40902 - 40987 [all:~~try~genvis~e~k1~ok1;~inv...] 0.219 secs (0.218u,0.001s) +Chars 40991 - 41055 [all:~try~do~2~inv_Vis;~constru...] 0.119 secs (0.118u,0.s) +Chars 41058 - 41078 [all:~inv~H1;~inv~H0.] 0.021 secs (0.021u,0.s) +Chars 41083 - 41141 [all:~eapply~H;~try~eapply~REL0...] 0.001 secs (0.001u,0.s) +Chars 41145 - 41149 [Qed.] 0.046 secs (0.046u,0.s) +Chars 41188 - 41343 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 41344 - 41389 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) +Chars 41391 - 41490 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) +Chars 41491 - 41497 [Proof.] 0. secs (0.u,0.s) +Chars 41500 - 41507 [intros.] 0. secs (0.u,0.s) +Chars 41508 - 41526 [destruct~H;~eauto.] 0. secs (0.u,0.s) +Chars 41527 - 41531 [Qed.] 0. secs (0.u,0.s) +Chars 41560 - 41759 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 41760 - 41766 [Proof.] 0. secs (0.u,0.s) +Chars 41769 - 41781 [unfold~eqit.] 0. secs (0.u,0.s) +Chars 41782 - 41798 [revert_until~b2.] 0. secs (0.u,0.s) +Chars 41908 - 41927 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 41928 - 41935 [intros.] 0. secs (0.u,0.s) +Chars 41939 - 41951 [step~in~INL.] 0. secs (0.u,0.s) +Chars 41952 - 41964 [step~in~INR.] 0. secs (0.u,0.s) +Chars 42062 - 42103 [hinduction~INL~before~CIH;~int...] 0. secs (0.u,0.s) +Chars 42104 - 42116 [clear~t1~t2.] 0. secs (0.u,0.s) +Chars 42148 - 42149 [-] 0. secs (0.u,0.s) +Chars 42150 - 42163 [genret~r2~ot.] 0.002 secs (0.002u,0.s) +Chars 42168 - 42231 [hinduction~INR~before~CIH;~int...] 0.018 secs (0.018u,0.s) +Chars 42234 - 42235 [-] 0. secs (0.u,0.s) +Chars 42236 - 42250 [genobs~t3~ot3.] 0. secs (0.u,0.s) +Chars 42324 - 42396 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) +Chars 42401 - 42402 [{] 0. secs (0.u,0.s) +Chars 42403 - 42449 [destruct~ot3;~eauto;~right;~re...] 0.004 secs (0.004u,0.s) +Chars 42450 - 42451 [}] 0. secs (0.u,0.s) +Chars 42456 - 42486 [destruct~DEC~as~[[m3~?]|~EQ].] 0. secs (0.u,0.s) +Chars 42527 - 42528 [+] 0. secs (0.u,0.s) +Chars 42529 - 42544 [subst;~simpobs.] 0.001 secs (0.001u,0.s) +Chars 42552 - 42565 [econstructor.] 0. secs (0.u,0.s) +Chars 42572 - 42590 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 42597 - 42616 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) +Chars 42623 - 42632 [now~step.] 0.001 secs (0.001u,0.s) +Chars 42692 - 42693 [+] 0. secs (0.u,0.s) +Chars 42694 - 42741 [inv~INR;~try~(exfalso;~eapply~...] 0.032 secs (0.032u,0.s) +Chars 42748 - 42753 [taul.] 0. secs (0.u,0.s) +Chars 42761 - 42773 [step~in~REL.] 0. secs (0.u,0.s) +Chars 42780 - 42854 [hinduction~REL0~before~CIH;~in...] 0.002 secs (0.002u,0.s) +Chars 42936 - 42937 [*] 0. secs (0.u,0.s) +Chars 42938 - 42963 [remember~(RetF~r1)~as~ot.] 0. secs (0.u,0.s) +Chars 42972 - 43036 [hinduction~REL0~before~CIH;~in...] 0.02 secs (0.02u,0.s) +Chars 43043 - 43044 [*] 0. secs (0.u,0.s) +Chars 43045 - 43072 [remember~(VisF~e~k1)~as~ot.] 0. secs (0.u,0.s) +Chars 43081 - 43166 [hinduction~REL0~before~CIH;~in...] 0.016 secs (0.015u,0.s) +Chars 43175 - 43188 [econstructor.] 0. secs (0.u,0.s) +Chars 43189 - 43196 [intros.] 0. secs (0.u,0.s) +Chars 43205 - 43240 [apply~(CIH~_~_~_~(REL~v)~(REL0...] 0. secs (0.u,0.s) +Chars 43248 - 43249 [*] 0. secs (0.u,0.s) +Chars 43250 - 43271 [eapply~IHREL0;~eauto.] 0. secs (0.u,0.s) +Chars 43280 - 43304 [destruct~b1;~inv~CHECK0.] 0.007 secs (0.007u,0.s) +Chars 43313 - 43320 [unstep.] 0.002 secs (0.002u,0.s) +Chars 43321 - 43342 [apply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 43343 - 43352 [now~step.] 0.001 secs (0.001u,0.s) +Chars 43356 - 43357 [-] 0. secs (0.u,0.s) +Chars 43358 - 43385 [remember~(VisF~e~k2)~as~ot.] 0. secs (0.u,0.s) +Chars 43390 - 43474 [hinduction~INR~before~CIH;~int...] 0.013 secs (0.013u,0.s) +Chars 43479 - 43492 [econstructor.] 0. secs (0.u,0.s) +Chars 43493 - 43500 [intros.] 0. secs (0.u,0.s) +Chars 43505 - 43540 [apply~(CIH~_~_~_~(REL0~v)~(REL...] 0. secs (0.u,0.s) +Chars 43544 - 43545 [-] 0. secs (0.u,0.s) +Chars 43546 - 43563 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 43566 - 43567 [-] 0. secs (0.u,0.s) +Chars 43568 - 43581 [gentau~t0~ot.] 0. secs (0.u,0.s) +Chars 43586 - 43600 [genobs~t3~ot3.] 0. secs (0.u,0.s) +Chars 43606 - 43668 [hinduction~INR~before~CIH;~int...] 0.008 secs (0.008u,0.s) +Chars 43673 - 43674 [+] 0. secs (0.u,0.s) +Chars 43675 - 43699 [eapply~(IHINL~(Tau~m2)).] 0. secs (0.u,0.s) +Chars 43706 - 43718 [step~in~REL.] 0. secs (0.u,0.s) +Chars 43719 - 43736 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 43741 - 43742 [+] 0. secs (0.u,0.s) +Chars 43743 - 43760 [now~eapply~IHINL.] 0. secs (0.u,0.s) +Chars 43765 - 43766 [+] 0. secs (0.u,0.s) +Chars 43767 - 43772 [taur.] 0. secs (0.u,0.s) +Chars 43773 - 43793 [eapply~IHINR;~eauto.] 0.001 secs (0.001u,0.s) +Chars 43795 - 43799 [Qed.] 0.039 secs (0.038u,0.s) +Chars 43800 - 43859 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) +Chars 43977 - 44131 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 44132 - 44138 [Proof.] 0. secs (0.u,0.s) +Chars 44141 - 44153 [red;~intros.] 0. secs (0.u,0.s) +Chars 44154 - 44190 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) +Chars 44194 - 44230 [eapply~eqit_mono,~eqit_trans;~...] 0.002 secs (0.002u,0.s) +Chars 44233 - 44241 [intros~!.] 0. secs (0.u,0.s) +Chars 44242 - 44258 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 44259 - 44263 [Qed.] 0. secs (0.u,0.s) +Chars 44265 - 44383 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 44384 - 44390 [Proof.] 0. secs (0.u,0.s) +Chars 44393 - 44415 [apply~Transitive_eqit.] 0. secs (0.u,0.s) +Chars 44416 - 44438 [intros~!;~subst;~eauto.] 0. secs (0.u,0.s) +Chars 44439 - 44443 [Qed.] 0. secs (0.u,0.s) +Chars 44445 - 44596 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 44597 - 44603 [Proof.] 0. secs (0.u,0.s) +Chars 44606 - 44641 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) +Chars 44642 - 44646 [Qed.] 0. secs (0.u,0.s) +Chars 44648 - 44770 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 44771 - 44777 [Proof.] 0. secs (0.u,0.s) +Chars 44780 - 44815 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) +Chars 44816 - 44820 [Qed.] 0. secs (0.u,0.s) +Chars 44822 - 44913 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 44914 - 44920 [Proof.] 0. secs (0.u,0.s) +Chars 44923 - 44935 [red;~intros.] 0. secs (0.u,0.s) +Chars 44936 - 44972 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) +Chars 44973 - 45009 [eapply~eqit_mono,~eqit_trans;~...] 0.002 secs (0.002u,0.s) +Chars 45012 - 45020 [intros~!.] 0. secs (0.u,0.s) +Chars 45021 - 45037 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 45039 - 45043 [Qed.] 0. secs (0.u,0.s) +Chars 45046 - 45178 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 45179 - 45185 [Proof.] 0. secs (0.u,0.s) +Chars 45188 - 45328 [assert~~(Hinf~:~~~inf_closed~~...] 0. secs (0.u,0.s) +Chars 45331 - 45332 [{] 0. secs (0.u,0.s) +Chars 45333 - 45365 [intros~T~HTr~x~y~z~Hxy~Hyz~i~Hi.] 0. secs (0.u,0.s) +Chars 45366 - 45429 [apply~(HTr~_~Hi)~with~y;~[~exa...] 0. secs (0.u,0.s) +Chars 45430 - 45431 [}] 0. secs (0.u,0.s) +Chars 45434 - 45443 [revert~c.] 0. secs (0.u,0.s) +Chars 45444 - 45463 [apply~(tower~Hinf).] 0. secs (0.u,0.s) +Chars 45464 - 45480 [intros~c~Htrans.] 0. secs (0.u,0.s) +Chars 45483 - 45491 [intros~!.] 0. secs (0.u,0.s) +Chars 45492 - 45502 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 45503 - 45534 [eapply~Transitive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 45535 - 45539 [Qed.] 0.001 secs (0.001u,0.s) +Chars 45541 - 45676 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 45677 - 45683 [Proof.] 0. secs (0.u,0.s) +Chars 45686 - 45717 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 45718 - 45722 [Qed.] 0. secs (0.u,0.s) +Chars 45726 - 45806 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 45807 - 45813 [Proof.] 0. secs (0.u,0.s) +Chars 45816 - 45880 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) +Chars 45881 - 45885 [Qed.] 0. secs (0.u,0.s) +Chars 45886 - 45966 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 45967 - 45973 [Proof.] 0. secs (0.u,0.s) +Chars 45976 - 46043 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) +Chars 46044 - 46048 [Qed.] 0. secs (0.u,0.s) +Chars 46050 - 46168 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 46169 - 46175 [Proof.] 0. secs (0.u,0.s) +Chars 46178 - 46189 [repeat~red.] 0. secs (0.u,0.s) +Chars 46193 - 46218 [intros~t~t'~EQ1~u~u'~EQ2.] 0. secs (0.u,0.s) +Chars 46221 - 46241 [split;~intros~EQUIV.] 0. secs (0.u,0.s) +Chars 46245 - 46246 [-] 0. secs (0.u,0.s) +Chars 46247 - 46263 [symmetry~in~EQ1.] 0. secs (0.u,0.s) +Chars 46269 - 46311 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) +Chars 46316 - 46347 [rewrite~rcompose_eql~in~EQUIV'.] 0.003 secs (0.003u,0.s) +Chars 46352 - 46396 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) +Chars 46401 - 46437 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) +Chars 46440 - 46441 [-] 0. secs (0.u,0.s) +Chars 46442 - 46484 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) +Chars 46489 - 46520 [rewrite~rcompose_eql~in~EQUIV'.] 0.001 secs (0.001u,0.s) +Chars 46525 - 46541 [symmetry~in~EQ2.] 0. secs (0.u,0.s) +Chars 46546 - 46590 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) +Chars 46595 - 46631 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) +Chars 46632 - 46636 [Qed.] 0.001 secs (0.001u,0.s) +Chars 46638 - 46732 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 46733 - 46739 [Proof.] 0. secs (0.u,0.s) +Chars 46742 - 46760 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 46761 - 46765 [Qed.] 0. secs (0.u,0.s) +Chars 46767 - 46862 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 46863 - 46869 [Proof.] 0. secs (0.u,0.s) +Chars 46872 - 46884 [red;~intros.] 0. secs (0.u,0.s) +Chars 46885 - 46921 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) +Chars 46922 - 46958 [eapply~eqit_mono,~eqit_trans;~...] 0.003 secs (0.002u,0.s) +Chars 46961 - 46969 [intros~!.] 0. secs (0.u,0.s) +Chars 46970 - 46986 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 46988 - 46992 [Qed.] 0. secs (0.u,0.s) +Chars 46994 - 47083 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) +Chars 47084 - 47090 [Proof.] 0. secs (0.u,0.s) +Chars 47093 - 47124 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 47126 - 47130 [Qed.] 0. secs (0.u,0.s) +Chars 47132 - 47284 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 47286 - 47292 [Proof.] 0. secs (0.u,0.s) +Chars 47296 - 47314 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 47317 - 47355 [do~2~(etransitivity;~symmetry;...] 0.003 secs (0.003u,0.s) +Chars 47358 - 47400 [do~2~(etransitivity;~eauto);~n...] 0.005 secs (0.005u,0.s) +Chars 47402 - 47406 [Qed.] 0. secs (0.u,0.s) +Chars 47437 - 47450 [Module~Tests.] 0. secs (0.u,0.s) +Chars 47453 - 47489 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 47492 - 47524 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 47527 - 47568 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 47571 - 47607 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 47610 - 47646 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 47649 - 47684 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 47687 - 47725 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 47728 - 47763 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 47766 - 47804 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 47807 - 47841 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 47844 - 47879 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 47881 - 47898 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 47903 - 47918 [rewrite~EQUIV2.] 0.007 secs (0.007u,0.s) +Chars 47923 - 47938 [rewrite~<-~EQ2.] 0.008 secs (0.008u,0.s) +Chars 47943 - 47966 [eapply~eq_proper_euttC.] 0. secs (0.u,0.s) +Chars 47971 - 47986 [rewrite~<-~EQ1.] 0. secs (0.u,0.s) +Chars 47991 - 48001 [exact~EQ1.] 0. secs (0.u,0.s) +Chars 48007 - 48027 [rewrite~EQ2,~<-~EQ2.] 0.001 secs (0.001u,0.s) +Chars 48033 - 48043 [exact~EQ2.] 0. secs (0.u,0.s) +Chars 48048 - 48053 [step.] 0.002 secs (0.002u,0.s) +Chars 48058 - 48063 [step.] 0.002 secs (0.002u,0.s) +Chars 48069 - 48084 [rewrite~<-~EQ1.] 0.007 secs (0.007u,0.s) +Chars 48090 - 48104 [rewrite~<-~GT.] 0.025 secs (0.025u,0.s) +Chars 48110 - 48122 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) +Chars 48127 - 48145 [rewrite~<-~EQUIV1.] 0.008 secs (0.008u,0.s) +Chars 48148 - 48154 [Abort.] 0. secs (0.u,0.s) +Chars 48159 - 48204 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) +Chars 48367 - 48407 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) +Chars 48412 - 48421 [intros~H.] 0. secs (0.u,0.s) +Chars 48426 - 48438 [rewrite~EQ1.] 0.005 secs (0.005u,0.s) +Chars 48443 - 48460 [rewrite~EQ1~in~H.] 0.005 secs (0.005u,0.s) +Chars 48465 - 48483 [rewrite~<-~EQUIV1.] 0.005 secs (0.005u,0.s) +Chars 48528 - 48551 [rewrite~<-~EQUIV1~in~H.] 0.005 secs (0.005u,0.s) +Chars 48556 - 48579 [rewrite~<-~EQUIV2~in~H.] 0.007 secs (0.007u,0.s) +Chars 48585 - 48597 [rewrite~GT2.] 0.001 secs (0.001u,0.s) +Chars 48602 - 48622 [rewrite~<-~GT2~in~H.] 0.019 secs (0.019u,0.s) +Chars 48627 - 48638 [rewrite~GT.] 0.001 secs (0.001u,0.s) +Chars 48643 - 48662 [rewrite~<-~GT~in~H.] 0.019 secs (0.019u,0.s) +Chars 48724 - 48738 [Fail~symmetry.] 0. secs (0.u,0.s) +Chars 48743 - 48762 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) +Chars 48767 - 48781 [rewrite~<-~GT.] 0.019 secs (0.019u,0.s) +Chars 48787 - 48798 [assumption.] 0. secs (0.u,0.s) +Chars 48802 - 48806 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48830 - 48873 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) +Chars 48877 - 48944 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) +Chars 48947 - 48987 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) +Chars 48993 - 48998 [step.] 0.001 secs (0.001u,0.s) +Chars 49032 - 49039 [unstep.] 0.002 secs (0.002u,0.s) +Chars 49045 - 49089 [assert~(eutt~(E:=VE)~eq~(Ret~t...] 0. secs (0.u,0.s) +Chars 49095 - 49100 [step.] 0.001 secs (0.001u,0.s) +Chars 49159 - 49185 [rewrite~observing_observe.] 0.004 secs (0.004u,0.s) +Chars 49188 - 49194 [Abort.] 0. secs (0.u,0.s) +Chars 49220 - 49244 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) +Chars 49249 - 49258 [intros~H.] 0. secs (0.u,0.s) +Chars 49263 - 49275 [rewrite~EQ1.] 0. secs (0.u,0.s) +Chars 49280 - 49297 [rewrite~EQ1~in~H.] 0.006 secs (0.005u,0.s) +Chars 49302 - 49311 [symmetry.] 0. secs (0.u,0.s) +Chars 49316 - 49330 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 49335 - 49347 [reflexivity.] 0. secs (0.u,0.s) +Chars 49350 - 49354 [Qed.] 0. secs (0.u,0.s) +Chars 49440 - 49515 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) +Chars 49520 - 49538 [intros~EQ1~EQ2'~H.] 0. secs (0.u,0.s) +Chars 49543 - 49555 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) +Chars 49560 - 49572 [rewrite~EQ2.] 0.001 secs (0.001u,0.s) +Chars 49577 - 49601 [apply~eqit_flip~in~EQ2'.] 0. secs (0.u,0.s) +Chars 49606 - 49626 [rewrite~EQ2~in~EQ2'.] 0.01 secs (0.01u,0.s) +Chars 49726 - 49744 [Fail~rewrite~EQ2'.] 0. secs (0.u,0.s) +Chars 49751 - 49772 [Fail~rewrite~<-~EQ2'.] 0. secs (0.u,0.s) +Chars 49842 - 49851 [Admitted.] 0. secs (0.u,0.s) +Chars 49901 - 49925 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) +Chars 49930 - 49949 [icoinduction~r~CIH.] 0.001 secs (0.001u,0.s) +Chars 49954 - 49961 [intros.] 0. secs (0.u,0.s) +Chars 49966 - 49971 [step.] 0.002 secs (0.002u,0.s) +Chars 49977 - 49987 [rewrite~H.] 0.012 secs (0.012u,0.s) +Chars 49993 - 50005 [reflexivity.] 0. secs (0.u,0.s) +Chars 50007 - 50011 [Qed.] 0.001 secs (0.001u,0.s) +Chars 50013 - 50023 [End~Tests.] 0. secs (0.u,0.s) +Chars 50025 - 50077 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) +Chars 50082 - 50098 [Section~eqit_eq.] 0. secs (0.u,0.s) +Chars 50149 - 50187 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 50189 - 50248 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) +Chars 50250 - 50383 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 50384 - 50390 [Proof.] 0. secs (0.u,0.s) +Chars 50393 - 50422 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 50423 - 50427 [Qed.] 0. secs (0.u,0.s) +Chars 50429 - 50556 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 50557 - 50563 [Proof.] 0. secs (0.u,0.s) +Chars 50566 - 50595 [apply~Symmetric_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 50597 - 50601 [Qed.] 0. secs (0.u,0.s) +Chars 50650 - 50718 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 50719 - 50725 [Proof.] 0. secs (0.u,0.s) +Chars 50728 - 50756 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 50757 - 50761 [Qed.] 0. secs (0.u,0.s) +Chars 50763 - 50825 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 50826 - 50832 [Proof.] 0. secs (0.u,0.s) +Chars 50835 - 50863 [apply~Symmetric_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 50864 - 50868 [Qed.] 0. secs (0.u,0.s) +Chars 50903 - 51002 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) +Chars 51003 - 51009 [Proof.] 0. secs (0.u,0.s) +Chars 51012 - 51058 [constructor;~step~in~H;~step;~...] 0.001 secs (0.001u,0.s) +Chars 51061 - 51065 [Qed.] 0. secs (0.u,0.s) +Chars 51068 - 51163 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) +Chars 51164 - 51170 [Proof.] 0. secs (0.u,0.s) +Chars 51173 - 51191 [constructor;~step.] 0.001 secs (0.001u,0.s) +Chars 51192 - 51205 [econstructor.] 0. secs (0.u,0.s) +Chars 51206 - 51212 [eauto.] 0. secs (0.u,0.s) +Chars 51213 - 51217 [Qed.] 0. secs (0.u,0.s) +Chars 51219 - 51346 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) +Chars 51347 - 51353 [Proof.] 0. secs (0.u,0.s) +Chars 51356 - 51378 [constructor;~red~in~H.] 0. secs (0.u,0.s) +Chars 51379 - 51415 [step;~econstructor;~auto~with~...] 0.001 secs (0.001u,0.s) +Chars 51416 - 51420 [Qed.] 0. secs (0.u,0.s) +Chars 51422 - 51506 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 51507 - 51513 [Proof.] 0. secs (0.u,0.s) +Chars 51516 - 51535 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 51538 - 51543 [step.] 0.001 secs (0.001u,0.s) +Chars 51544 - 51574 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) +Chars 51575 - 51604 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 51605 - 51609 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51611 - 51756 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 51757 - 51763 [Proof.] 0. secs (0.u,0.s) +Chars 51766 - 51774 [intros~!.] 0. secs (0.u,0.s) +Chars 51777 - 51783 [inv~H.] 0.004 secs (0.004u,0.s) +Chars 51786 - 51791 [step.] 0.001 secs (0.001u,0.s) +Chars 51794 - 51820 [rewrite~observing_observe.] 0. secs (0.u,0.s) +Chars 51823 - 51828 [step.] 0.002 secs (0.002u,0.s) +Chars 51829 - 51841 [reflexivity.] 0. secs (0.u,0.s) +Chars 51842 - 51846 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51873 - 51930 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) +Chars 51931 - 51937 [Proof.] 0. secs (0.u,0.s) +Chars 51938 - 51963 [apply~observing_sub_eqit.] 0. secs (0.u,0.s) +Chars 51964 - 51977 [econstructor.] 0. secs (0.u,0.s) +Chars 51978 - 51990 [reflexivity.] 0. secs (0.u,0.s) +Chars 51991 - 51995 [Qed.] 0. secs (0.u,0.s) +Chars 51997 - 52052 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) +Chars 52053 - 52059 [Proof.] 0. secs (0.u,0.s) +Chars 52060 - 52077 [apply~itree_eta_.] 0. secs (0.u,0.s) +Chars 52078 - 52082 [Qed.] 0. secs (0.u,0.s) +Chars 52084 - 52142 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) +Chars 52143 - 52149 [Proof.] 0. secs (0.u,0.s) +Chars 52150 - 52162 [reflexivity.] 0. secs (0.u,0.s) +Chars 52163 - 52167 [Qed.] 0. secs (0.u,0.s) +Chars 52169 - 52181 [End~eqit_eq.] 0. secs (0.u,0.s) +Chars 52215 - 52303 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 52304 - 52310 [Proof.] 0. secs (0.u,0.s) +Chars 52313 - 52328 [intros;~sinv~H.] 0.004 secs (0.004u,0.s) +Chars 52329 - 52333 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52335 - 52486 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 52487 - 52493 [Proof.] 0. secs (0.u,0.s) +Chars 52496 - 52543 [intros;~step~in~H;~apply~eqitF...] 0. secs (0.u,0.s) +Chars 52546 - 52600 [destruct~H~as~[[?~[->~?]]|~[]]...] 0. secs (0.u,0.s) +Chars 52603 - 52625 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 52626 - 52630 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52632 - 52745 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 52746 - 52752 [Proof.] 0. secs (0.u,0.s) +Chars 52755 - 52792 [intros;~sinv~H;~try~inv~CHECK;...] 0.007 secs (0.007u,0.s) +Chars 52793 - 52797 [Qed.] 0.002 secs (0.002u,0.s) +Chars 52799 - 52900 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 52901 - 52907 [Proof.] 0. secs (0.u,0.s) +Chars 52910 - 52917 [intros.] 0. secs (0.u,0.s) +Chars 52918 - 52928 [step~in~H.] 0. secs (0.u,0.s) +Chars 52929 - 52935 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 52937 - 52941 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52994 - 53223 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0. secs (0.u,0.s) +Chars 53224 - 53230 [Proof.] 0. secs (0.u,0.s) +Chars 53233 - 53240 [intros.] 0. secs (0.u,0.s) +Chars 53241 - 53283 [step~in~H;~apply~eqitF_inv_Vis...] 0. secs (0.u,0.s) +Chars 53286 - 53308 [destruct~H~as~[p~[]].] 0. secs (0.u,0.s) +Chars 53309 - 53331 [exists~p;~split;~auto.] 0. secs (0.u,0.s) +Chars 53332 - 53336 [Qed.] 0. secs (0.u,0.s) +Chars 53362 - 53568 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 53569 - 53575 [Proof.] 0. secs (0.u,0.s) +Chars 53578 - 53647 [intros~H~x;~step~in~H;~apply~e...] 0.001 secs (0.001u,0.s) +Chars 53648 - 53652 [Qed.] 0. secs (0.u,0.s) +Chars 53695 - 53774 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) +Chars 53775 - 53781 [Proof.] 0. secs (0.u,0.s) +Chars 53784 - 53819 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) +Chars 53820 - 53824 [Qed.] 0. secs (0.u,0.s) +Chars 53826 - 53908 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) +Chars 53909 - 53915 [Proof.] 0. secs (0.u,0.s) +Chars 53918 - 53953 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) +Chars 53954 - 53958 [Qed.] 0. secs (0.u,0.s) +Chars 53960 - 54086 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 54087 - 54093 [Proof.] 0. secs (0.u,0.s) +Chars 54096 - 54103 [intros.] 0. secs (0.u,0.s) +Chars 54104 - 54109 [step.] 0.001 secs (0.001u,0.s) +Chars 54110 - 54130 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 54131 - 54145 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 54147 - 54151 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54153 - 54279 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 54280 - 54286 [Proof.] 0. secs (0.u,0.s) +Chars 54289 - 54296 [intros.] 0. secs (0.u,0.s) +Chars 54297 - 54302 [step.] 0.001 secs (0.001u,0.s) +Chars 54303 - 54323 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 54324 - 54338 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 54340 - 54344 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54346 - 54400 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) +Chars 54401 - 54407 [Proof.] 0. secs (0.u,0.s) +Chars 54410 - 54427 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) +Chars 54428 - 54440 [reflexivity.] 0. secs (0.u,0.s) +Chars 54441 - 54445 [Qed.] 0. secs (0.u,0.s) +Chars 54447 - 54499 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) +Chars 54500 - 54506 [Proof.] 0. secs (0.u,0.s) +Chars 54509 - 54543 [apply~euttge_sub_eutt,~tau_eut...] 0. secs (0.u,0.s) +Chars 54544 - 54548 [Qed.] 0. secs (0.u,0.s) +Chars 54551 - 54625 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) +Chars 54626 - 54632 [Proof.] 0. secs (0.u,0.s) +Chars 54635 - 54640 [step.] 0.001 secs (0.001u,0.s) +Chars 54641 - 54652 [repeat~red.] 0. secs (0.u,0.s) +Chars 54653 - 54661 [simpobs.] 0. secs (0.u,0.s) +Chars 54662 - 54668 [simpl.] 0. secs (0.u,0.s) +Chars 54669 - 54675 [subst.] 0. secs (0.u,0.s) +Chars 54676 - 54683 [unstep.] 0.002 secs (0.002u,0.s) +Chars 54684 - 54712 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 54713 - 54717 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54755 - 55068 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) +Chars 55070 - 55076 [Proof.] 0. secs (0.u,0.s) +Chars 55078 - 55114 [intros~!;~unfold~flip,~eq_itre...] 0. secs (0.u,0.s) +Chars 56277 - 56283 [idtac.] 0. secs (0.u,0.s) +Chars 56323 - 56383 [assert~(rcompose~RR1~RS~<=~RS)...] 0. secs (0.u,0.s) +Chars 56387 - 56454 [assert~(rcompose~RS~(flip~RR2)...] 0. secs (0.u,0.s) +Chars 56457 - 56555 [assert~(eqit~b1~b2~RR1~x~y)~by...] 0.003 secs (0.003u,0.s) +Chars 56558 - 56662 [assert~(eqit~b1~b2~RR2~x0~y0)~...] 0.003 secs (0.003u,0.s) +Chars 56691 - 56735 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) +Chars 56739 - 56837 [assert~(Hdiag~:~eqit~b1~b2~RS~...] 0.001 secs (0.001u,0.s) +Chars 56875 - 56897 [apply~eqit_flip~in~H0.] 0. secs (0.u,0.s) +Chars 56947 - 57007 [eapply~eqit_mono~with~(RR~:=~r...] 0.002 secs (0.002u,0.s) +Chars 57011 - 57036 [eapply~eqit_trans;~eauto.] 0.002 secs (0.002u,0.s) +Chars 57040 - 57109 [eapply~eqit_mono~with~(b1~:=~f...] 0.005 secs (0.005u,0.s) +Chars 57111 - 57115 [Qed.] 0.001 secs (0.001u,0.s) +Chars 57158 - 57307 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) +Chars 57308 - 57314 [Proof.] 0. secs (0.u,0.s) +Chars 57317 - 57324 [intros.] 0. secs (0.u,0.s) +Chars 57327 - 57343 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 57346 - 57347 [-] 0. secs (0.u,0.s) +Chars 57348 - 57368 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 57369 - 57374 [2:~{] 0. secs (0.u,0.s) +Chars 57375 - 57383 [apply~H.] 0. secs (0.u,0.s) +Chars 57384 - 57385 [}] 0. secs (0.u,0.s) +Chars 57390 - 57407 [apply~eqit_Tau_r.] 0. secs (0.u,0.s) +Chars 57408 - 57420 [reflexivity.] 0. secs (0.u,0.s) +Chars 57423 - 57424 [-] 0. secs (0.u,0.s) +Chars 57425 - 57430 [step.] 0.001 secs (0.001u,0.s) +Chars 57431 - 57444 [econstructor.] 0. secs (0.u,0.s) +Chars 57445 - 57450 [auto.] 0. secs (0.u,0.s) +Chars 57451 - 57465 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 57467 - 57471 [Qed.] 0.001 secs (0.001u,0.s) +Chars 57473 - 57643 [Lemma~tau_eqit_RR_l~:~~~forall...] 0. secs (0.u,0.s) +Chars 57644 - 57650 [Proof.] 0. secs (0.u,0.s) +Chars 57653 - 57660 [intros.] 0. secs (0.u,0.s) +Chars 57663 - 57668 [step.] 0.001 secs (0.001u,0.s) +Chars 57669 - 57682 [econstructor.] 0. secs (0.u,0.s) +Chars 57683 - 57688 [auto.] 0. secs (0.u,0.s) +Chars 57689 - 57703 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 57705 - 57709 [Qed.] 0.001 secs (0.001u,0.s) +Chars 57711 - 57860 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) +Chars 57861 - 57867 [Proof.] 0. secs (0.u,0.s) +Chars 57870 - 57877 [intros.] 0. secs (0.u,0.s) +Chars 57880 - 57896 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 57899 - 57900 [-] 0. secs (0.u,0.s) +Chars 57901 - 57921 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 57922 - 57930 [apply~H.] 0. secs (0.u,0.s) +Chars 57935 - 57952 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) +Chars 57953 - 57965 [reflexivity.] 0. secs (0.u,0.s) +Chars 57968 - 57969 [-] 0. secs (0.u,0.s) +Chars 57970 - 57975 [step.] 0.001 secs (0.001u,0.s) +Chars 57976 - 57989 [econstructor.] 0. secs (0.u,0.s) +Chars 57990 - 57995 [auto.] 0. secs (0.u,0.s) +Chars 57996 - 58010 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 58011 - 58015 [Qed.] 0.001 secs (0.001u,0.s) +Chars 58017 - 58106 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 58107 - 58113 [Proof.] 0. secs (0.u,0.s) +Chars 58116 - 58129 [intros~Heutt.] 0. secs (0.u,0.s) +Chars 58130 - 58144 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 58148 - 58166 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 58170 - 58198 [remember~(observe~(Ret~r1)).] 0. secs (0.u,0.s) +Chars 58201 - 58215 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 58218 - 58249 [remember~{|~_observe~:=~ot2~|}.] 0. secs (0.u,0.s) +Chars 58252 - 58297 [hinduction~Heutt~before~r1;~in...] 0.005 secs (0.005u,0.s) +Chars 58301 - 58302 [-] 0. secs (0.u,0.s) +Chars 58303 - 58322 [rewrite~tau_euttge.] 0. secs (0.u,0.s) +Chars 58323 - 58341 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 58342 - 58361 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 58362 - 58366 [Qed.] 0.003 secs (0.003u,0.s) +Chars 58463 - 58552 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0.001 secs (0.u,0.s) +Chars 58553 - 58559 [Proof.] 0. secs (0.u,0.s) +Chars 58562 - 58575 [intros~Heutt.] 0. secs (0.u,0.s) +Chars 58576 - 58590 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 58595 - 58613 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 58617 - 58692 [remember~(observe~(Ret~r2));~g...] 0. secs (0.u,0.s) +Chars 58695 - 58739 [hinduction~Heutt~before~R;~int...] 0.005 secs (0.005u,0.s) +Chars 58743 - 58744 [-] 0. secs (0.u,0.s) +Chars 58745 - 58764 [rewrite~tau_euttge.] 0. secs (0.u,0.s) +Chars 58765 - 58783 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 58784 - 58803 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 58804 - 58808 [Qed.] 0.003 secs (0.003u,0.s) +Chars 58852 - 59019 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) +Chars 59021 - 59117 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 59118 - 59124 [Proof.] 0. secs (0.u,0.s) +Chars 59127 - 59178 [apply~observing_sub_eqit;~cons...] 0. secs (0.u,0.s) +Chars 59179 - 59183 [Qed.] 0. secs (0.u,0.s) +Chars 59185 - 59274 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) +Chars 59275 - 59281 [Proof.] 0. secs (0.u,0.s) +Chars 59282 - 59318 [apply~observing_sub_eqit,~bind...] 0. secs (0.u,0.s) +Chars 59319 - 59323 [Qed.] 0. secs (0.u,0.s) +Chars 59325 - 59420 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) +Chars 59421 - 59427 [Proof.] 0. secs (0.u,0.s) +Chars 59428 - 59458 [apply~(unfold_bind~(Tau~t)~k).] 0. secs (0.u,0.s) +Chars 59459 - 59463 [Qed.] 0. secs (0.u,0.s) +Chars 59465 - 59609 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) +Chars 59610 - 59616 [Proof.] 0. secs (0.u,0.s) +Chars 59617 - 59650 [apply~(unfold_bind~(Vis~e~ek)~k).] 0. secs (0.u,0.s) +Chars 59651 - 59655 [Qed.] 0. secs (0.u,0.s) +Chars 59657 - 59775 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) +Chars 59776 - 59782 [Proof.] 0. secs (0.u,0.s) +Chars 59785 - 59810 [rewrite~unfold_bind;~cbn.] 0.001 secs (0.u,0.s) +Chars 59813 - 59818 [step.] 0.001 secs (0.001u,0.s) +Chars 59821 - 59833 [constructor.] 0. secs (0.u,0.s) +Chars 59836 - 59843 [intros.] 0. secs (0.u,0.s) +Chars 59844 - 59861 [apply~bind_ret_l.] 0. secs (0.u,0.s) +Chars 59862 - 59866 [Qed.] 0.001 secs (0.001u,0.s) +Chars 59868 - 60025 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 60026 - 60032 [Proof.] 0. secs (0.u,0.s) +Chars 60035 - 60057 [rewrite~unfold_aloop_.] 0.006 secs (0.006u,0.s) +Chars 60058 - 60070 [reflexivity.] 0. secs (0.u,0.s) +Chars 60071 - 60075 [Qed.] 0. secs (0.u,0.s) +Chars 60077 - 60199 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) +Chars 60200 - 60206 [Proof.] 0. secs (0.u,0.s) +Chars 60209 - 60257 [rewrite~itree_eta,~(itree_eta~...] 0.001 secs (0.001u,0.s) +Chars 60260 - 60272 [reflexivity.] 0. secs (0.u,0.s) +Chars 60273 - 60277 [Qed.] 0. secs (0.u,0.s) +Chars 60279 - 60393 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) +Chars 60394 - 60454 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) +Chars 60456 - 60471 [Section~eqit_h.] 0. secs (0.u,0.s) +Chars 60473 - 60539 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 60598 - 60715 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) +Chars 60716 - 60722 [Proof.] 0. secs (0.u,0.s) +Chars 60725 - 60741 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 60744 - 60745 [-] 0. secs (0.u,0.s) +Chars 60746 - 60756 [step~in~H.] 0. secs (0.u,0.s) +Chars 60757 - 60762 [step.] 0.001 secs (0.001u,0.s) +Chars 60769 - 60786 [move~H~before~RR.] 0. secs (0.u,0.s) +Chars 60787 - 60802 [revert_until~H.] 0. secs (0.u,0.s) +Chars 60807 - 60835 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) +Chars 60841 - 60869 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) +Chars 60875 - 60889 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 60895 - 60909 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 60915 - 60971 [hinduction~H~before~RR;~intros...] 0.011 secs (0.011u,0.s) +Chars 60977 - 60978 [+] 0. secs (0.u,0.s) +Chars 60979 - 60990 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 60996 - 60997 [+] 0. secs (0.u,0.s) +Chars 60998 - 61004 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 61012 - 61013 [*] 0. secs (0.u,0.s) +Chars 61014 - 61019 [taul.] 0. secs (0.u,0.s) +Chars 61020 - 61042 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61050 - 61051 [*] 0. secs (0.u,0.s) +Chars 61052 - 61057 [taul.] 0. secs (0.u,0.s) +Chars 61058 - 61080 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61086 - 61087 [+] 0. secs (0.u,0.s) +Chars 61088 - 61094 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 61102 - 61103 [*] 0. secs (0.u,0.s) +Chars 61104 - 61109 [taur.] 0. secs (0.u,0.s) +Chars 61110 - 61132 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61140 - 61141 [*] 0. secs (0.u,0.s) +Chars 61142 - 61147 [taur.] 0. secs (0.u,0.s) +Chars 61148 - 61170 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61174 - 61175 [-] 0. secs (0.u,0.s) +Chars 61176 - 61181 [step.] 0.001 secs (0.001u,0.s) +Chars 61182 - 61198 [now~constructor.] 0. secs (0.u,0.s) +Chars 61202 - 61206 [Qed.] 0.005 secs (0.005u,0.s) +Chars 61209 - 61432 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) +Chars 61433 - 61439 [Proof.] 0. secs (0.u,0.s) +Chars 61442 - 61458 [destruct~p;~cbn.] 0. secs (0.u,0.s) +Chars 61459 - 61471 [intros~<-~H.] 0. secs (0.u,0.s) +Chars 61472 - 61477 [step.] 0.001 secs (0.001u,0.s) +Chars 61478 - 61491 [econstructor.] 0. secs (0.u,0.s) +Chars 61492 - 61500 [apply~H.] 0. secs (0.u,0.s) +Chars 61501 - 61505 [Qed.] 0.001 secs (0.001u,0.s) +Chars 61507 - 61679 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) +Chars 61680 - 61686 [Proof.] 0. secs (0.u,0.s) +Chars 61689 - 61741 [apply~eqit_Vis_gen~with~(p~:=~...] 0. secs (0.u,0.s) +Chars 61742 - 61746 [Qed.] 0. secs (0.u,0.s) +Chars 61748 - 61845 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) +Chars 61846 - 61852 [Proof.] 0. secs (0.u,0.s) +Chars 61855 - 61871 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 61874 - 61875 [-] 0. secs (0.u,0.s) +Chars 61876 - 61881 [step.] 0.001 secs (0.001u,0.s) +Chars 61882 - 61900 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 61903 - 61904 [-] 0. secs (0.u,0.s) +Chars 61905 - 61915 [step~in~H.] 0. secs (0.u,0.s) +Chars 61916 - 61941 [inversion~H;~subst;~auto.] 0.001 secs (0.001u,0.s) +Chars 61942 - 61946 [Qed.] 0.001 secs (0.001u,0.s) +Chars 62131 - 62449 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) +Chars 62450 - 62456 [Proof.] 0. secs (0.u,0.s) +Chars 62460 - 62476 [revert_until~U2.] 0. secs (0.u,0.s) +Chars 62480 - 62496 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 62500 - 62501 [-] 0. secs (0.u,0.s) +Chars 62502 - 62509 [intros.] 0. secs (0.u,0.s) +Chars 62513 - 62530 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 62535 - 62536 [-] 0. secs (0.u,0.s) +Chars 62537 - 62544 [intros.] 0. secs (0.u,0.s) +Chars 62548 - 62558 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 62562 - 62576 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 62581 - 62595 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 62598 - 62640 [hinduction~H0~before~RR;~intro...] 0.028 secs (0.028u,0.s) +Chars 62725 - 62762 [1-3:~rewrite~2!observe_bind;~s...] 0.013 secs (0.013u,0.s) +Chars 62777 - 62778 [+] 0. secs (0.u,0.s) +Chars 62779 - 62796 [eapply~H1;~eauto.] 0. secs (0.u,0.s) +Chars 62813 - 62814 [+] 0. secs (0.u,0.s) +Chars 62815 - 62827 [constructor.] 0. secs (0.u,0.s) +Chars 62832 - 62848 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) +Chars 62854 - 62882 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) +Chars 62897 - 62898 [+] 0. secs (0.u,0.s) +Chars 62899 - 62911 [constructor.] 0. secs (0.u,0.s) +Chars 62917 - 62923 [intro.] 0. secs (0.u,0.s) +Chars 62929 - 62945 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) +Chars 62950 - 62978 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) +Chars 62994 - 62995 [+] 0. secs (0.u,0.s) +Chars 62996 - 63017 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 63023 - 63031 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 63037 - 63042 [taul.] 0. secs (0.u,0.s) +Chars 63048 - 63070 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 63088 - 63089 [+] 0. secs (0.u,0.s) +Chars 63090 - 63123 [setoid_rewrite~observe_bind~at~2.] 0.016 secs (0.015u,0.s) +Chars 63129 - 63137 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 63143 - 63148 [taur.] 0. secs (0.u,0.s) +Chars 63154 - 63176 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 63178 - 63182 [Qed.] 0.006 secs (0.006u,0.s) +Chars 63185 - 63377 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) +Chars 63378 - 63384 [Proof.] 0. secs (0.u,0.s) +Chars 63389 - 63401 [unfold~eutt.] 0. secs (0.u,0.s) +Chars 63402 - 63432 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 63435 - 63439 [Qed.] 0. secs (0.u,0.s) +Chars 63442 - 63676 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) +Chars 63677 - 63683 [Proof.] 0. secs (0.u,0.s) +Chars 63688 - 63719 [eapply~eqit_bind_chain;~intros.] 0. secs (0.u,0.s) +Chars 63725 - 63770 [all:~now~do~2~step;~[~apply~EQ...] 0.018 secs (0.017u,0.s) +Chars 63771 - 63775 [Qed.] 0.001 secs (0.001u,0.s) +Chars 63779 - 63790 [End~eqit_h.] 0. secs (0.u,0.s) +Chars 63792 - 63835 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 63837 - 63873 [Ltac~etau~:=~taus;~eauto~with~...] 0. secs (0.u,0.s) +Chars 63876 - 63927 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) +Chars 63929 - 63984 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) +Chars 63989 - 64065 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) +Chars 64066 - 64072 [Proof.] 0. secs (0.u,0.s) +Chars 64075 - 64090 [apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 64091 - 64095 [Qed.] 0. secs (0.u,0.s) +Chars 64097 - 64176 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) +Chars 64177 - 64183 [Proof.] 0. secs (0.u,0.s) +Chars 64186 - 64201 [apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 64202 - 64206 [Qed.] 0. secs (0.u,0.s) +Chars 64208 - 64470 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 64471 - 64477 [Proof.] 0. secs (0.u,0.s) +Chars 64480 - 64487 [intros.] 0. secs (0.u,0.s) +Chars 64490 - 64520 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 64522 - 64526 [Qed.] 0. secs (0.u,0.s) +Chars 64528 - 64789 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) +Chars 64790 - 64796 [Proof.] 0. secs (0.u,0.s) +Chars 64799 - 64824 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) +Chars 64825 - 64829 [Qed.] 0. secs (0.u,0.s) +Chars 65435 - 65596 [#[global]~Instance~eqit_subst~...] 0. secs (0.u,0.s) +Chars 65597 - 65603 [Proof.] 0. secs (0.u,0.s) +Chars 65606 - 65640 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) +Chars 65643 - 65663 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 65664 - 65668 [Qed.] 0. secs (0.u,0.s) +Chars 65670 - 65829 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) +Chars 65830 - 65836 [Proof.] 0. secs (0.u,0.s) +Chars 65839 - 65873 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) +Chars 65876 - 65896 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 65897 - 65901 [Qed.] 0.001 secs (0.001u,0.s) +Chars 65903 - 66150 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 66151 - 66157 [Proof.] 0. secs (0.u,0.s) +Chars 66160 - 66185 [unfold~ITree.map;~intros.] 0. secs (0.u,0.s) +Chars 66188 - 66213 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) +Chars 66216 - 66248 [intros;~step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 66249 - 66253 [Qed.] 0.001 secs (0.001u,0.s) +Chars 66255 - 66412 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) +Chars 66413 - 66419 [Proof.] 0. secs (0.u,0.s) +Chars 66422 - 66454 [intros~!;~eapply~eqit_map;~eauto.] 0. secs (0.u,0.s) +Chars 66457 - 66477 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 66478 - 66482 [Qed.] 0. secs (0.u,0.s) +Chars 66484 - 66669 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) +Chars 66671 - 66677 [Proof.] 0. secs (0.u,0.s) +Chars 66681 - 66689 [intros~!.] 0. secs (0.u,0.s) +Chars 66693 - 66700 [unstep.] 0.001 secs (0.001u,0.s) +Chars 66701 - 66711 [rewrite~H.] 0. secs (0.u,0.s) +Chars 66712 - 66723 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 66724 - 66733 [now~step.] 0.001 secs (0.001u,0.s) +Chars 66735 - 66739 [Qed.] 0.001 secs (0.001u,0.s) +Chars 66743 - 66861 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) +Chars 66862 - 66868 [Proof.] 0. secs (0.u,0.s) +Chars 66871 - 66893 [apply~Transitive_elem.] 0. secs (0.u,0.s) +Chars 66894 - 66912 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 66914 - 66918 [Qed.] 0. secs (0.u,0.s) +Chars 67247 - 67405 [#[global]~Instance~elem_observ...] 0. secs (0.u,0.s) +Chars 67407 - 67413 [Proof.] 0. secs (0.u,0.s) +Chars 67417 - 67450 [intros~x~y~Hxy~x'~y'~Hx'y'~Helem.] 0. secs (0.u,0.s) +Chars 67453 - 67471 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) +Chars 67476 - 67516 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) +Chars 67519 - 67561 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) +Chars 67564 - 67592 [do~2~(etransitivity;~eauto).] 0.001 secs (0.001u,0.s) +Chars 67595 - 67599 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67604 - 67693 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) +Chars 67694 - 67700 [Proof.] 0. secs (0.u,0.s) +Chars 67703 - 67719 [unfold~eq_itree.] 0. secs (0.u,0.s) +Chars 67720 - 67727 [intros.] 0. secs (0.u,0.s) +Chars 67813 - 67866 [rewrite~(itree_eta_~(ITree.bin...] 0.01 secs (0.01u,0.s) +Chars 67893 - 67902 [revert~s.] 0. secs (0.u,0.s) +Chars 67906 - 67925 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 67929 - 67936 [intros.] 0. secs (0.u,0.s) +Chars 68011 - 68057 [desobs~s~H;~cbn;~simpobs;~cons...] 0.001 secs (0.001u,0.s) +Chars 68085 - 68097 [reflexivity.] 0. secs (0.u,0.s) +Chars 68238 - 68272 [all:~eapply~elem_observing_pro...] 0.001 secs (0.001u,0.s) +Chars 68317 - 68337 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) +Chars 68391 - 68426 [all:~constructor;~ITree.fold_s...] 0. secs (0.u,0.s) +Chars 68429 - 68453 [all:~simpl;~reflexivity.] 0. secs (0.u,0.s) +Chars 68455 - 68459 [Qed.] 0.005 secs (0.005u,0.s) +Chars 68462 - 68584 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) +Chars 68585 - 68591 [Proof.] 0. secs (0.u,0.s) +Chars 68594 - 68602 [intro~H.] 0. secs (0.u,0.s) +Chars 68603 - 68634 [rewrite~<-~(bind_ret_r~u)~~at~2.] 0. secs (0.u,0.s) +Chars 68635 - 68651 [apply~eqit_bind.] 0. secs (0.u,0.s) +Chars 68654 - 68655 [-] 0. secs (0.u,0.s) +Chars 68656 - 68668 [reflexivity.] 0. secs (0.u,0.s) +Chars 68671 - 68672 [-] 0. secs (0.u,0.s) +Chars 68673 - 68677 [hnf.] 0. secs (0.u,0.s) +Chars 68678 - 68685 [intros.] 0. secs (0.u,0.s) +Chars 68686 - 68701 [apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 68702 - 68707 [auto.] 0. secs (0.u,0.s) +Chars 68708 - 68712 [Qed.] 0. secs (0.u,0.s) +Chars 68714 - 68877 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) +Chars 68880 - 69057 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) +Chars 69058 - 69064 [Proof.] 0. secs (0.u,0.s) +Chars 69067 - 69083 [unfold~eq_itree.] 0. secs (0.u,0.s) +Chars 69084 - 69091 [intros.] 0. secs (0.u,0.s) +Chars 69095 - 69206 [lazymatch~goal~with~|~|-~_~(IT...] 0.002 secs (0.002u,0.s) +Chars 69209 - 69286 [lazymatch~goal~with~|~|-~_~?t0...] 0.001 secs (0.001u,0.s) +Chars 69289 - 69302 [revert~s~k~h.] 0. secs (0.u,0.s) +Chars 69306 - 69325 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 69328 - 69335 [intros.] 0. secs (0.u,0.s) +Chars 69338 - 69363 [desobs~s~H;~cbn;~simpobs.] 0.002 secs (0.002u,0.s) +Chars 69367 - 69375 [1:~step.] 0.002 secs (0.002u,0.s) +Chars 69376 - 69388 [reflexivity.] 0. secs (0.u,0.s) +Chars 69392 - 69447 [all:~constructor;~intros;~eapp...] 0.001 secs (0.001u,0.s) +Chars 69450 - 69470 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) +Chars 69473 - 69490 [all:~constructor.] 0. secs (0.u,0.s) +Chars 69494 - 69510 [all:~fold_subst.] 0.001 secs (0.001u,0.s) +Chars 69514 - 69547 [all:~repeat~rewrite~observe_bind.] 0.003 secs (0.003u,0.s) +Chars 69550 - 69567 [all:~reflexivity.] 0. secs (0.u,0.s) +Chars 69568 - 69572 [Qed.] 0.007 secs (0.007u,0.s) +Chars 69575 - 69717 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) +Chars 69718 - 69724 [Proof.] 0. secs (0.u,0.s) +Chars 69727 - 69744 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 69745 - 69752 [intros.] 0. secs (0.u,0.s) +Chars 69753 - 69771 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 69772 - 69798 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 69799 - 69811 [reflexivity.] 0. secs (0.u,0.s) +Chars 69812 - 69816 [Qed.] 0.001 secs (0.001u,0.s) +Chars 69818 - 69970 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) +Chars 69971 - 69977 [Proof.] 0. secs (0.u,0.s) +Chars 69980 - 69997 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 69998 - 70005 [intros.] 0. secs (0.u,0.s) +Chars 70006 - 70024 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 70025 - 70051 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 70052 - 70064 [reflexivity.] 0. secs (0.u,0.s) +Chars 70065 - 70069 [Qed.] 0. secs (0.u,0.s) +Chars 70071 - 70224 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) +Chars 70225 - 70231 [Proof.] 0. secs (0.u,0.s) +Chars 70234 - 70241 [intros.] 0. secs (0.u,0.s) +Chars 70242 - 70259 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 70260 - 70276 [apply~bind_bind.] 0. secs (0.u,0.s) +Chars 70277 - 70281 [Qed.] 0. secs (0.u,0.s) +Chars 70283 - 70373 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 70374 - 70380 [Proof.] 0. secs (0.u,0.s) +Chars 70383 - 70390 [intros.] 0. secs (0.u,0.s) +Chars 70391 - 70408 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 70411 - 70443 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 70444 - 70448 [Qed.] 0. secs (0.u,0.s) +Chars 70450 - 70558 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 70559 - 70565 [Proof.] 0. secs (0.u,0.s) +Chars 70568 - 70575 [intros.] 0. secs (0.u,0.s) +Chars 70578 - 70595 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 70598 - 70628 [rewrite~bind_tau;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 70629 - 70633 [Qed.] 0. secs (0.u,0.s) +Chars 70635 - 70678 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 70679 - 70722 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 70723 - 70764 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) +Chars 70765 - 70806 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) +Chars 70807 - 70848 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) +Chars 70849 - 70889 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) +Chars 70890 - 70930 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) +Chars 70931 - 70973 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) +Chars 70994 - 71085 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) +Chars 71087 - 71179 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) +Chars 71296 - 71371 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) +Chars 71443 - 71521 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) +Chars 71584 - 71638 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) +Chars 71640 - 71738 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) +Chars 71740 - 71839 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) +Chars 71841 - 71936 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) +Chars 71938 - 72036 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) +Chars 72038 - 72107 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) +Chars 72109 - 72370 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 72371 - 72377 [Proof.] 0. secs (0.u,0.s) +Chars 72380 - 72387 [intros.] 0. secs (0.u,0.s) +Chars 72390 - 72400 [step~in~H.] 0. secs (0.u,0.s) +Chars 72403 - 72448 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) +Chars 72451 - 72476 [remember~(Ret~b)~as~retb.] 0. secs (0.u,0.s) +Chars 72480 - 72510 [remember~(observe~retb)~as~tr.] 0. secs (0.u,0.s) +Chars 72513 - 72554 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) +Chars 72557 - 72613 [hinduction~H~before~RR;~intros...] 0.001 secs (0.001u,0.s) +Chars 72616 - 72617 [-] 0. secs (0.u,0.s) +Chars 72618 - 72632 [intros;~subst.] 0. secs (0.u,0.s) +Chars 72637 - 72687 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 72692 - 72740 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 72745 - 72754 [exists~r.] 0. secs (0.u,0.s) +Chars 72755 - 72761 [split.] 0. secs (0.u,0.s) +Chars 72766 - 72767 [*] 0. secs (0.u,0.s) +Chars 72768 - 72791 [rewrite~itree_eta,~Ema.] 0.006 secs (0.006u,0.s) +Chars 72792 - 72804 [reflexivity.] 0. secs (0.u,0.s) +Chars 72809 - 72810 [*] 0. secs (0.u,0.s) +Chars 72811 - 72830 [rewrite~itree_eta_.] 0.006 secs (0.006u,0.s) +Chars 72831 - 72847 [unfold~_observe.] 0. secs (0.u,0.s) +Chars 72848 - 72866 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) +Chars 72867 - 72877 [inv~Heqtr.] 0.001 secs (0.001u,0.s) +Chars 72883 - 72907 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 72910 - 72911 [-] 0. secs (0.u,0.s) +Chars 72912 - 72919 [intros.] 0. secs (0.u,0.s) +Chars 72920 - 72926 [subst.] 0. secs (0.u,0.s) +Chars 72931 - 72981 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 72986 - 73034 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 73039 - 73040 [+] 0. secs (0.u,0.s) +Chars 73041 - 73050 [exists~r.] 0. secs (0.u,0.s) +Chars 73051 - 73057 [split.] 0. secs (0.u,0.s) +Chars 73064 - 73065 [*] 0. secs (0.u,0.s) +Chars 73066 - 73089 [rewrite~itree_eta,~Ema.] 0.007 secs (0.007u,0.s) +Chars 73090 - 73102 [reflexivity.] 0. secs (0.u,0.s) +Chars 73109 - 73110 [*] 0. secs (0.u,0.s) +Chars 73111 - 73116 [step.] 0.001 secs (0.001u,0.s) +Chars 73117 - 73154 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) +Chars 73155 - 73173 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) +Chars 73174 - 73192 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 73197 - 73198 [+] 0. secs (0.u,0.s) +Chars 73199 - 73210 [inv~Heqotl.] 0.003 secs (0.003u,0.s) +Chars 73218 - 73243 [edestruct~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 73244 - 73253 [exists~x.] 0. secs (0.u,0.s) +Chars 73261 - 73273 [destruct~H0.] 0. secs (0.u,0.s) +Chars 73281 - 73294 [split;~eauto.] 0. secs (0.u,0.s) +Chars 73301 - 73319 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 73320 - 73325 [taul.] 0. secs (0.u,0.s) +Chars 73333 - 73348 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 73350 - 73354 [Qed.] 0.007 secs (0.007u,0.s) +Chars 73356 - 73519 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 73520 - 73526 [Proof.] 0. secs (0.u,0.s) +Chars 73529 - 73567 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) +Chars 73568 - 73572 [Qed.] 0. secs (0.u,0.s) +Chars 73574 - 73740 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) +Chars 73741 - 73747 [Proof.] 0. secs (0.u,0.s) +Chars 73750 - 73788 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) +Chars 73789 - 73793 [Qed.] 0. secs (0.u,0.s) +Chars 73795 - 74063 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) +Chars 74065 - 74505 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) +Chars 74506 - 74512 [Proof.] 0. secs (0.u,0.s) +Chars 74515 - 74522 [intros.] 0. secs (0.u,0.s) +Chars 74523 - 74533 [step~in~H.] 0. secs (0.u,0.s) +Chars 74537 - 74582 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) +Chars 74585 - 74613 [remember~(Vis~e~kxc)~as~vis.] 0. secs (0.u,0.s) +Chars 74616 - 74645 [remember~(observe~vis)~as~tr.] 0. secs (0.u,0.s) +Chars 74649 - 74692 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) +Chars 74695 - 74748 [induction~H;~try~(solve~[~intr...] 0.002 secs (0.002u,0.s) +Chars 74751 - 74752 [-] 0. secs (0.u,0.s) +Chars 74753 - 74760 [intros.] 0. secs (0.u,0.s) +Chars 74761 - 74809 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 74814 - 74862 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 74867 - 74868 [+] 0. secs (0.u,0.s) +Chars 74869 - 74875 [right.] 0. secs (0.u,0.s) +Chars 74876 - 74885 [exists~r.] 0. secs (0.u,0.s) +Chars 74886 - 74892 [split.] 0. secs (0.u,0.s) +Chars 74899 - 74900 [*] 0. secs (0.u,0.s) +Chars 74901 - 74920 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 74921 - 74933 [constructor.] 0. secs (0.u,0.s) +Chars 74934 - 74939 [auto.] 0. secs (0.u,0.s) +Chars 74946 - 74947 [*] 0. secs (0.u,0.s) +Chars 74948 - 74992 [step;~unfold~observe~at~1;~unf...] 0.001 secs (0.001u,0.s) +Chars 74993 - 75010 [rewrite~<-~Heqtl.] 0. secs (0.u,0.s) +Chars 75019 - 75027 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 75028 - 75046 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 75051 - 75052 [+] 0. secs (0.u,0.s) +Chars 75053 - 75058 [left.] 0. secs (0.u,0.s) +Chars 75065 - 75083 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) +Chars 75091 - 75108 [revert~e0~Heqvis.] 0. secs (0.u,0.s) +Chars 75109 - 75129 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) +Chars 75130 - 75148 [inv_eq_VisF~Heqtl.] 0.002 secs (0.002u,0.s) +Chars 75149 - 75156 [intros.] 0. secs (0.u,0.s) +Chars 75163 - 75174 [inv~Heqvis.] 0.002 secs (0.002u,0.s) +Chars 75182 - 75195 [cbn~in~Heqtr.] 0. secs (0.u,0.s) +Chars 75203 - 75221 [inv_eq_VisF~Heqtr.] 0.002 secs (0.002u,0.s) +Chars 75228 - 75237 [exists~k.] 0. secs (0.u,0.s) +Chars 75238 - 75244 [split.] 0. secs (0.u,0.s) +Chars 75251 - 75252 [*] 0. secs (0.u,0.s) +Chars 75253 - 75272 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 75273 - 75285 [constructor.] 0. secs (0.u,0.s) +Chars 75287 - 75299 [reflexivity.] 0. secs (0.u,0.s) +Chars 75306 - 75307 [*] 0. secs (0.u,0.s) +Chars 75308 - 75313 [auto.] 0. secs (0.u,0.s) +Chars 75316 - 75317 [-] 0. secs (0.u,0.s) +Chars 75318 - 75325 [intros.] 0. secs (0.u,0.s) +Chars 75326 - 75332 [subst.] 0. secs (0.u,0.s) +Chars 75337 - 75385 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 75390 - 75439 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 75444 - 75445 [+] 0. secs (0.u,0.s) +Chars 75446 - 75469 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 75476 - 75477 [*] 0. secs (0.u,0.s) +Chars 75478 - 75514 [rewrite~itree_eta,~Ema;~reflex...] 0.007 secs (0.007u,0.s) +Chars 75521 - 75522 [*] 0. secs (0.u,0.s) +Chars 75523 - 75528 [step.] 0.001 secs (0.001u,0.s) +Chars 75530 - 75585 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) +Chars 75586 - 75604 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 75609 - 75610 [+] 0. secs (0.u,0.s) +Chars 75611 - 75621 [inv~Heqtl.] 0.005 secs (0.005u,0.s) +Chars 75622 - 75677 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 75684 - 75749 [destruct~IHeqitF~as~[(k0,~(?,~...] 0. secs (0.u,0.s) +Chars 75756 - 75757 [*] 0. secs (0.u,0.s) +Chars 75758 - 75768 [exists~k0.] 0. secs (0.u,0.s) +Chars 75769 - 75781 [split;~auto.] 0. secs (0.u,0.s) +Chars 75790 - 75843 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 75851 - 75852 [*] 0. secs (0.u,0.s) +Chars 75853 - 75862 [exists~a.] 0. secs (0.u,0.s) +Chars 75863 - 75875 [split;~auto.] 0. secs (0.u,0.s) +Chars 75884 - 75937 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 75938 - 75942 [Qed.] 0.01 secs (0.01u,0.s) +Chars 75944 - 76280 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) +Chars 76281 - 76287 [Proof.] 0. secs (0.u,0.s) +Chars 76290 - 76297 [intros.] 0. secs (0.u,0.s) +Chars 76298 - 76322 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) +Chars 76323 - 76328 [auto.] 0. secs (0.u,0.s) +Chars 76329 - 76333 [Qed.] 0. secs (0.u,0.s) +Chars 76335 - 76674 [Lemma~eqitree_inv_bind_vis~:~~...] 0. secs (0.u,0.s) +Chars 76675 - 76681 [Proof.] 0. secs (0.u,0.s) +Chars 76684 - 76691 [intros.] 0. secs (0.u,0.s) +Chars 76692 - 76716 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) +Chars 76717 - 76722 [auto.] 0. secs (0.u,0.s) +Chars 76723 - 76727 [Qed.] 0. secs (0.u,0.s) +Chars 76729 - 77077 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) +Chars 77078 - 77084 [Proof.] 0. secs (0.u,0.s) +Chars 77087 - 77094 [intros.] 0. secs (0.u,0.s) +Chars 77095 - 77105 [step~in~H.] 0. secs (0.u,0.s) +Chars 77109 - 77154 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) +Chars 77157 - 77182 [remember~(Tau~tc)~as~tau.] 0. secs (0.u,0.s) +Chars 77185 - 77214 [remember~(observe~tau)~as~tr.] 0. secs (0.u,0.s) +Chars 77217 - 77257 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) +Chars 77260 - 77313 [induction~H;~intros;~try~(solv...] 0.002 secs (0.002u,0.s) +Chars 77316 - 77317 [-] 0. secs (0.u,0.s) +Chars 77318 - 77328 [inv~Heqtr.] 0.002 secs (0.002u,0.s) +Chars 77329 - 77377 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 77382 - 77430 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 77435 - 77436 [+] 0. secs (0.u,0.s) +Chars 77437 - 77460 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 77467 - 77468 [*] 0. secs (0.u,0.s) +Chars 77469 - 77512 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 77519 - 77520 [*] 0. secs (0.u,0.s) +Chars 77521 - 77601 [step;~icbn;~inv~H0;~unfold~obs...] 0.002 secs (0.002u,0.s) +Chars 77606 - 77607 [+] 0. secs (0.u,0.s) +Chars 77608 - 77630 [left;~exists~t;~split.] 0. secs (0.u,0.s) +Chars 77637 - 77638 [*] 0. secs (0.u,0.s) +Chars 77639 - 77695 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 77702 - 77703 [*] 0. secs (0.u,0.s) +Chars 77704 - 77714 [inv~Heqtl.] 0.001 secs (0.001u,0.s) +Chars 77715 - 77722 [inv~H0.] 0. secs (0.u,0.s) +Chars 77726 - 77727 [-] 0. secs (0.u,0.s) +Chars 77728 - 77734 [subst.] 0. secs (0.u,0.s) +Chars 77739 - 77787 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 77792 - 77840 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 77845 - 77846 [+] 0. secs (0.u,0.s) +Chars 77847 - 77870 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 77877 - 77878 [*] 0. secs (0.u,0.s) +Chars 77879 - 77922 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 77929 - 77930 [*] 0. secs (0.u,0.s) +Chars 77931 - 77998 [step;~icbn;~unfold~observe~at~...] 0.001 secs (0.001u,0.s) +Chars 77999 - 78019 [constructor~4;~auto.] 0. secs (0.u,0.s) +Chars 78024 - 78025 [+] 0. secs (0.u,0.s) +Chars 78026 - 78036 [inv~Heqtl.] 0.005 secs (0.005u,0.s) +Chars 78037 - 78090 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 78097 - 78162 [destruct~IHeqitF~as~[(t0,~(?,~...] 0. secs (0.u,0.s) +Chars 78169 - 78170 [*] 0. secs (0.u,0.s) +Chars 78171 - 78181 [exists~t0.] 0. secs (0.u,0.s) +Chars 78182 - 78194 [split;~auto.] 0. secs (0.u,0.s) +Chars 78203 - 78258 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 78265 - 78266 [*] 0. secs (0.u,0.s) +Chars 78267 - 78276 [exists~a.] 0. secs (0.u,0.s) +Chars 78277 - 78289 [split;~auto.] 0. secs (0.u,0.s) +Chars 78298 - 78351 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 78354 - 78355 [-] 0. secs (0.u,0.s) +Chars 78356 - 78366 [inv~Heqtr.] 0.006 secs (0.006u,0.s) +Chars 78371 - 78394 [left;~exists~ma;~split.] 0. secs (0.u,0.s) +Chars 78399 - 78400 [+] 0. secs (0.u,0.s) +Chars 78401 - 78425 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 78431 - 78432 [+] 0. secs (0.u,0.s) +Chars 78433 - 78458 [inv~H1;~step;~assumption.] 0.004 secs (0.004u,0.s) +Chars 78459 - 78463 [Qed.] 0.011 secs (0.011u,0.s) +Chars 78465 - 78730 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) +Chars 78731 - 78737 [Proof.] 0. secs (0.u,0.s) +Chars 78740 - 78747 [intros.] 0. secs (0.u,0.s) +Chars 78748 - 78772 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) +Chars 78773 - 78778 [auto.] 0. secs (0.u,0.s) +Chars 78779 - 78783 [Qed.] 0. secs (0.u,0.s) +Chars 78785 - 79053 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) +Chars 79054 - 79060 [Proof.] 0. secs (0.u,0.s) +Chars 79063 - 79070 [intros.] 0. secs (0.u,0.s) +Chars 79071 - 79095 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) +Chars 79096 - 79101 [auto.] 0. secs (0.u,0.s) +Chars 79102 - 79106 [Qed.] 0. secs (0.u,0.s) +Chars 79108 - 79230 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 79231 - 79237 [Proof.] 0. secs (0.u,0.s) +Chars 79240 - 79247 [intros.] 0. secs (0.u,0.s) +Chars 79250 - 79260 [step~in~H.] 0. secs (0.u,0.s) +Chars 79263 - 79295 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) +Chars 79298 - 79336 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 79339 - 79357 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 79360 - 79422 [induction~H;~intros~EQ1~EQ2;~t...] 0.004 secs (0.004u,0.s) +Chars 79425 - 79426 [-] 0. secs (0.u,0.s) +Chars 79427 - 79447 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 79452 - 79460 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 79461 - 79465 [Qed.] 0.002 secs (0.001u,0.s) +Chars 79467 - 79589 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 79590 - 79596 [Proof.] 0. secs (0.u,0.s) +Chars 79599 - 79606 [intros.] 0. secs (0.u,0.s) +Chars 79609 - 79619 [step~in~H.] 0. secs (0.u,0.s) +Chars 79622 - 79654 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) +Chars 79657 - 79695 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 79698 - 79716 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 79719 - 79781 [induction~H;~intros~EQ1~EQ2;~t...] 0.006 secs (0.006u,0.s) +Chars 79784 - 79785 [-] 0. secs (0.u,0.s) +Chars 79786 - 79806 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 79811 - 79819 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 79820 - 79824 [Qed.] 0.001 secs (0.001u,0.s) +Chars 79826 - 79976 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 79977 - 79983 [Proof.] 0. secs (0.u,0.s) +Chars 79986 - 79993 [intros.] 0. secs (0.u,0.s) +Chars 79996 - 80006 [step~in~H.] 0. secs (0.u,0.s) +Chars 80009 - 80043 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) +Chars 80046 - 80084 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 80087 - 80105 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 80108 - 80170 [induction~H;~intros~EQ1~EQ2;~t...] 0.006 secs (0.005u,0.s) +Chars 80173 - 80174 [-] 0. secs (0.u,0.s) +Chars 80175 - 80195 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 80200 - 80208 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 80209 - 80213 [Qed.] 0.002 secs (0.002u,0.s) +Chars 80215 - 80365 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 80366 - 80372 [Proof.] 0. secs (0.u,0.s) +Chars 80375 - 80382 [intros.] 0. secs (0.u,0.s) +Chars 80385 - 80395 [step~in~H.] 0. secs (0.u,0.s) +Chars 80398 - 80432 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) +Chars 80435 - 80473 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 80476 - 80494 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 80497 - 80559 [induction~H;~intros~EQ1~EQ2;~t...] 0.007 secs (0.006u,0.s) +Chars 80562 - 80563 [-] 0. secs (0.u,0.s) +Chars 80564 - 80584 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 80589 - 80597 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 80598 - 80602 [Qed.] 0.002 secs (0.002u,0.s) +Chars 80603 - 80621 [Section~eqit_elem.] 0. secs (0.u,0.s) +Chars 81928 - 82002 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 82004 - 82063 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) +Chars 82101 - 82218 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) +Chars 82219 - 82225 [Proof.] 0. secs (0.u,0.s) +Chars 82228 - 82259 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 82260 - 82264 [Qed.] 0. secs (0.u,0.s) +Chars 82266 - 82383 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 82384 - 82390 [Proof.] 0. secs (0.u,0.s) +Chars 82391 - 82409 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 82410 - 82414 [Qed.] 0. secs (0.u,0.s) +Chars 82416 - 82533 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 82534 - 82540 [Proof.] 0. secs (0.u,0.s) +Chars 82541 - 82559 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 82560 - 82564 [Qed.] 0. secs (0.u,0.s) +Chars 82595 - 82830 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.001 secs (0.001u,0.s) +Chars 82831 - 82837 [Proof.] 0. secs (0.u,0.s) +Chars 82840 - 82847 [intros.] 0. secs (0.u,0.s) +Chars 82848 - 82878 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 82879 - 82893 [now~do~2~step.] 0.003 secs (0.003u,0.s) +Chars 82895 - 82899 [Qed.] 0. secs (0.u,0.s) +Chars 83086 - 83100 [End~eqit_elem.] 0. secs (0.u,0.s) +Chars 83103 - 83122 [Section~eutt_facts.] 0. secs (0.u,0.s) +Chars 84517 - 84630 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 84631 - 84637 [Proof.] 0. secs (0.u,0.s) +Chars 84640 - 84648 [intros~!.] 0. secs (0.u,0.s) +Chars 84649 - 84667 [now~rewrite~H,~H0.] 0.015 secs (0.015u,0.s) +Chars 84668 - 84672 [Qed.] 0. secs (0.u,0.s) +Chars 84674 - 84811 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 84812 - 84818 [Proof.] 0. secs (0.u,0.s) +Chars 84821 - 84829 [intros~!.] 0. secs (0.u,0.s) +Chars 84830 - 84848 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) +Chars 84849 - 84853 [Qed.] 0. secs (0.u,0.s) +Chars 84855 - 84992 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 84993 - 84999 [Proof.] 0. secs (0.u,0.s) +Chars 85002 - 85010 [intros~!.] 0. secs (0.u,0.s) +Chars 85011 - 85029 [now~rewrite~H,~H0.] 0.019 secs (0.018u,0.s) +Chars 85030 - 85034 [Qed.] 0. secs (0.u,0.s) +Chars 85188 - 85374 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) +Chars 85375 - 85381 [Proof.] 0. secs (0.u,0.s) +Chars 85384 - 85391 [intros.] 0. secs (0.u,0.s) +Chars 85394 - 85454 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 85457 - 85480 [intros~?~?~->;~apply~H.] 0. secs (0.u,0.s) +Chars 85481 - 85485 [Qed.] 0. secs (0.u,0.s) +Chars 85531 - 85697 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) +Chars 85698 - 85704 [Proof.] 0. secs (0.u,0.s) +Chars 85707 - 85720 [intros~->~Hk.] 0.001 secs (0.001u,0.s) +Chars 85721 - 85744 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) +Chars 85745 - 85749 [Qed.] 0. secs (0.u,0.s) +Chars 85844 - 85966 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) +Chars 85967 - 85973 [Proof.] 0. secs (0.u,0.s) +Chars 85976 - 85999 [intros;~apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 86000 - 86004 [Qed.] 0. secs (0.u,0.s) +Chars 86168 - 86195 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) +Chars 86197 - 86347 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) +Chars 86348 - 86354 [Proof.] 0. secs (0.u,0.s) +Chars 86357 - 86376 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 86377 - 86393 [intros~*~EQ~EQ'.] 0. secs (0.u,0.s) +Chars 86396 - 86420 [step~in~EQ;~step~in~EQ'.] 0. secs (0.u,0.s) +Chars 86424 - 86449 [genobs~t~ot;~genobs~s~os.] 0. secs (0.u,0.s) +Chars 86452 - 86499 [hinduction~EQ~before~CIH;~subs...] 0.001 secs (0.001u,0.s) +Chars 86502 - 86503 [-] 0. secs (0.u,0.s) +Chars 86504 - 86512 [inv~EQ'.] 0.006 secs (0.006u,0.s) +Chars 86513 - 86518 [eret.] 0. secs (0.u,0.s) +Chars 86519 - 86535 [now~constructor.] 0. secs (0.u,0.s) +Chars 86539 - 86540 [-] 0. secs (0.u,0.s) +Chars 86541 - 86546 [taus.] 0. secs (0.u,0.s) +Chars 86547 - 86565 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 86566 - 86585 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) +Chars 86586 - 86595 [now~step.] 0.001 secs (0.001u,0.s) +Chars 86600 - 86601 [-] 0. secs (0.u,0.s) +Chars 86602 - 86614 [constructor.] 0. secs (0.u,0.s) +Chars 86615 - 86623 [intro~v.] 0. secs (0.u,0.s) +Chars 86624 - 86643 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 86648 - 86666 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 86672 - 86712 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) +Chars 86715 - 86716 [-] 0. secs (0.u,0.s) +Chars 86717 - 86722 [taul.] 0. secs (0.u,0.s) +Chars 86723 - 86742 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 86743 - 86749 [subst.] 0. secs (0.u,0.s) +Chars 86750 - 86757 [unstep.] 0.002 secs (0.002u,0.s) +Chars 86758 - 86780 [eapply~eqit_inv_Tau_l.] 0. secs (0.u,0.s) +Chars 86786 - 86795 [now~step.] 0.001 secs (0.001u,0.s) +Chars 86800 - 86801 [-] 0. secs (0.u,0.s) +Chars 86802 - 86807 [taur.] 0. secs (0.u,0.s) +Chars 86808 - 86827 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 86828 - 86834 [subst.] 0. secs (0.u,0.s) +Chars 86835 - 86842 [unstep.] 0.002 secs (0.002u,0.s) +Chars 86843 - 86865 [eapply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 86871 - 86880 [now~step.] 0.001 secs (0.001u,0.s) +Chars 86883 - 86887 [Qed.] 0.01 secs (0.01u,0.s) +Chars 86889 - 87015 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 87017 - 87023 [Proof.] 0. secs (0.u,0.s) +Chars 87026 - 87033 [intros.] 0. secs (0.u,0.s) +Chars 87036 - 87067 [eapply~(eqit_mono~RS~_);~eauto.] 0.001 secs (0.001u,0.s) +Chars 87068 - 87072 [Qed.] 0. secs (0.u,0.s) +Chars 87074 - 87201 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 87203 - 87209 [Proof.] 0. secs (0.u,0.s) +Chars 87212 - 87219 [intros.] 0. secs (0.u,0.s) +Chars 87222 - 87254 [eapply~(eqit_mono~RS'~_);~eauto.] 0.001 secs (0.001u,0.s) +Chars 87255 - 87259 [Qed.] 0. secs (0.u,0.s) +Chars 87261 - 87420 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) +Chars 87422 - 87428 [Proof.] 0. secs (0.u,0.s) +Chars 87431 - 87504 [intros~*~EQ;~split;~intros~EUT...] 0.003 secs (0.003u,0.s) +Chars 87507 - 87521 [all:~apply~EQ.] 0. secs (0.u,0.s) +Chars 87522 - 87526 [Qed.] 0. secs (0.u,0.s) +Chars 87604 - 87783 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 87784 - 87790 [Proof.] 0. secs (0.u,0.s) +Chars 87793 - 87808 [intros~!;~subst.] 0. secs (0.u,0.s) +Chars 87811 - 87851 [unfold~eq_itree;~rewrite~H;~re...] 0. secs (0.u,0.s) +Chars 87852 - 87856 [Qed.] 0. secs (0.u,0.s) +Chars 87858 - 88018 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 88019 - 88025 [Proof.] 0. secs (0.u,0.s) +Chars 88028 - 88043 [intros~!;~subst.] 0. secs (0.u,0.s) +Chars 88046 - 88082 [unfold~eutt;~rewrite~H;~reflex...] 0. secs (0.u,0.s) +Chars 88083 - 88087 [Qed.] 0. secs (0.u,0.s) +Chars 88196 - 88327 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) +Chars 88328 - 88334 [Proof.] 0. secs (0.u,0.s) +Chars 88337 - 88359 [intros~Hrel;~revert~t.] 0. secs (0.u,0.s) +Chars 88360 - 88395 [icoinduction~c~CIH;~intros~t~H...] 0.001 secs (0.001u,0.s) +Chars 88398 - 88412 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 88415 - 88446 [remember~t~as~t'~in~Heutt~at~2.] 0. secs (0.u,0.s) +Chars 88447 - 88483 [assert~(Ht'~:~t'~≈~t)~by~now~s...] 0. secs (0.u,0.s) +Chars 88484 - 88496 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 88499 - 88544 [rewrite~(itree_eta~t),~(itree_...] 0.028 secs (0.028u,0.s) +Chars 88547 - 88558 [revert~Ht'.] 0. secs (0.u,0.s) +Chars 88559 - 88596 [induction~Heutt;~clear~t;~intr...] 0.001 secs (0.u,0.s) +Chars 88599 - 88600 [-] 0. secs (0.u,0.s) +Chars 88601 - 88634 [apply~eutt_inv_Ret~in~Heq;~subst.] 0. secs (0.u,0.s) +Chars 88639 - 88657 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 88660 - 88661 [-] 0. secs (0.u,0.s) +Chars 88662 - 88688 [apply~eqit_inv_Tau~in~Heq.] 0. secs (0.u,0.s) +Chars 88693 - 88705 [constructor.] 0. secs (0.u,0.s) +Chars 88706 - 88717 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 88723 - 88747 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 88750 - 88751 [-] 0. secs (0.u,0.s) +Chars 88752 - 88764 [constructor.] 0. secs (0.u,0.s) +Chars 88765 - 88774 [intros~v.] 0. secs (0.u,0.s) +Chars 88775 - 88802 [eapply~eqit_inv_Vis~in~Heq.] 0. secs (0.u,0.s) +Chars 88807 - 88826 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 88827 - 88838 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 88839 - 88863 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 88866 - 88867 [-] 0. secs (0.u,0.s) +Chars 88868 - 88873 [taul.] 0. secs (0.u,0.s) +Chars 88874 - 88879 [taur.] 0. secs (0.u,0.s) +Chars 88880 - 88894 [apply~IHHeutt.] 0. secs (0.u,0.s) +Chars 88895 - 88921 [rewrite~<-~(itree_eta~t1).] 0. secs (0.u,0.s) +Chars 88929 - 88959 [now~rewrite~tau_euttge~in~Heq.] 0.017 secs (0.017u,0.s) +Chars 88963 - 88964 [-] 0. secs (0.u,0.s) +Chars 88965 - 88979 [apply~IHHeutt.] 0. secs (0.u,0.s) +Chars 88980 - 89003 [rewrite~<-~itree_eta.] 0. secs (0.u,0.s) +Chars 89011 - 89041 [now~rewrite~tau_euttge~in~Heq.] 0.011 secs (0.011u,0.s) +Chars 89043 - 89047 [Qed.] 0.004 secs (0.004u,0.s) +Chars 89049 - 89064 [End~eutt_facts.] 0. secs (0.u,0.s) +Chars 89113 - 89280 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 89282 - 89288 [Proof.] 0. secs (0.u,0.s) +Chars 89292 - 89300 [intros~!.] 0. secs (0.u,0.s) +Chars 89304 - 89309 [step.] 0.002 secs (0.002u,0.s) +Chars 89310 - 89320 [rewrite~H.] 0.006 secs (0.006u,0.s) +Chars 89321 - 89333 [reflexivity.] 0. secs (0.u,0.s) +Chars 89335 - 89339 [Qed.] 0.001 secs (0.001u,0.s) +Chars 89346 - 89481 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 89483 - 89489 [Proof.] 0. secs (0.u,0.s) +Chars 89493 - 89532 [intros~!;~now~eapply~observing...] 0. secs (0.u,0.s) +Chars 89533 - 89537 [Qed.] 0. secs (0.u,0.s) +Chars 89540 - 89667 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) diff --git a/theories/Eq/Rutt.v.timing b/theories/Eq/Rutt.v.timing new file mode 100644 index 00000000..0515e67c --- /dev/null +++ b/theories/Eq/Rutt.v.timing @@ -0,0 +1,236 @@ +Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) +Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.144 secs (0.13u,0.013s) +Chars 1082 - 1111 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 1113 - 1127 [Section~RuttF.] 0. secs (0.u,0.s) +Chars 1131 - 1162 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 1165 - 1188 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) +Chars 1426 - 1485 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 1488 - 1558 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) +Chars 1561 - 1583 [Arguments~REv~{A~B}.] 0. secs (0.u,0.s) +Chars 1586 - 1609 [Arguments~RAns~{A~B}.] 0. secs (0.u,0.s) +Chars 1613 - 2457 [Inductive~ruttF~(RR~:~R1~->~R2...] 0.002 secs (0.001u,0.s) +Chars 2460 - 2492 [Hint~Constructors~ruttF:~itree.] 0. secs (0.u,0.s) +Chars 2496 - 2714 [Definition~rutt_~~~(sim~:~(R1~...] 0. secs (0.u,0.s) +Chars 2718 - 2763 [Lemma~rutt_mono~:~Proper~(leq~...] 0. secs (0.u,0.s) +Chars 2766 - 2772 [Proof.] 0. secs (0.u,0.s) +Chars 2777 - 2790 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2791 - 2809 [unfold~rutt_~in~*.] 0. secs (0.u,0.s) +Chars 2810 - 2841 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 2846 - 2871 [constructor;~now~apply~H.] 0. secs (0.u,0.s) +Chars 2877 - 2921 [constructor;~intros;~eauto;~no...] 0. secs (0.u,0.s) +Chars 2925 - 2929 [Qed.] 0. secs (0.u,0.s) +Chars 2933 - 3066 [Definition~rutt_mon~:~~~mon~((...] 0. secs (0.u,0.s) +Chars 3071 - 3162 [Definition~rutt~:~(R1~->~R2~->...] 0. secs (0.u,0.s) +Chars 3165 - 3190 [Hint~Unfold~rutt:~itree.] 0. secs (0.u,0.s) +Chars 3194 - 3494 [Lemma~ruttF_inv_VisF_r~{sim}~R...] 0.001 secs (0.001u,0.s) +Chars 3497 - 3503 [Proof.] 0. secs (0.u,0.s) +Chars 3508 - 3745 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) +Chars 3750 - 3751 [-] 0. secs (0.u,0.s) +Chars 3752 - 3764 [left;~eauto.] 0.001 secs (0.u,0.s) +Chars 3769 - 3770 [-] 0. secs (0.u,0.s) +Chars 3771 - 3790 [destruct~i0;~eauto.] 0.001 secs (0.u,0.s) +Chars 3793 - 3797 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3801 - 4007 [Lemma~ruttF_inv_VisF~{sim}~RR~...] 0. secs (0.u,0.s) +Chars 4010 - 4016 [Proof.] 0. secs (0.u,0.s) +Chars 4021 - 4030 [intros~H.] 0. secs (0.u,0.s) +Chars 4031 - 4055 [dependent~destruction~H.] 0.005 secs (0.004u,0.001s) +Chars 4056 - 4067 [assumption.] 0. secs (0.u,0.s) +Chars 4070 - 4074 [Qed.] 0.024 secs (0.022u,0.002s) +Chars 4076 - 4086 [End~RuttF.] 0. secs (0.u,0.s) +Chars 4121 - 4161 [#[local]~Ltac~runfold~:=~unfol...] 0. secs (0.u,0.s) +Chars 4162 - 4209 [#[local]~Ltac~runfold_in~h~:=~...] 0. secs (0.u,0.s) +Chars 4211 - 4261 [Ltac~rcbn~:=~cbn[rutt_mon~body...] 0. secs (0.u,0.s) +Chars 4262 - 4327 [Ltac~rcbn_in~H~:=~cbn[rutt_mon...] 0. secs (0.u,0.s) +Chars 4329 - 4379 [Tactic~Notation~"rcbn"~"in"~id...] 0. secs (0.u,0.s) +Chars 4380 - 4462 [Tactic~Notation~"rcbn"~"in"~"*...] 0. secs (0.u,0.s) +Chars 4534 - 4581 [Tactic~Notation~"rstep"~:=~run...] 0. secs (0.u,0.s) +Chars 4582 - 4658 [Tactic~Notation~"rstep"~"in"~i...] 0. secs (0.u,0.s) +Chars 4660 - 4811 [#[local]~Ltac~~refold~:=~~~rep...] 0. secs (0.u,0.s) +Chars 4813 - 5006 [Ltac~~fold_rutt~:=~~~match~goa...] 0. secs (0.u,0.s) +Chars 5007 - 5212 [Ltac~~fold_rutt_in~h~:=~~~matc...] 0. secs (0.u,0.s) +Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~f...] 0. secs (0.u,0.s) +Chars 5261 - 5332 [Tactic~Notation~"runstep"~"in"...] 0. secs (0.u,0.s) +Chars 5334 - 5841 [Ltac~~to_rmon_core~:=~~~match~...] 0. secs (0.u,0.s) +Chars 5843 - 6021 [Ltac~~to_rmon~:=~~~let~dummy~:...] 0. secs (0.u,0.s) +Chars 6023 - 6539 [Ltac~~to_rmon_in~h~:=~~~match~...] 0. secs (0.u,0.s) +Chars 6541 - 6597 [Tactic~Notation~"to_rmon"~"in"...] 0. secs (0.u,0.s) +Chars 6599 - 6641 [#[global]~Hint~Constructors~ru...] 0. secs (0.u,0.s) +Chars 6642 - 6678 [#[global]~Hint~Unfold~rutt_:~i...] 0. secs (0.u,0.s) +Chars 6679 - 6718 [#[global]~Hint~Unfold~rutt_mon...] 0. secs (0.u,0.s) +Chars 6719 - 6754 [#[global]~Hint~Unfold~rutt:~it...] 0. secs (0.u,0.s) +Chars 6756 - 6786 [Section~ConstructionInversion.] 0. secs (0.u,0.s) +Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 6820 - 6844 [Variables~(R1~R2~:~Type).] 0. secs (0.u,0.s) +Chars 6845 - 6898 [Variable~(REv~:~forall~T1~T2,~...] 0. secs (0.u,0.s) +Chars 6899 - 6965 [Variable~(RAns~:~forall~T1~T2,...] 0. secs (0.u,0.s) +Chars 6966 - 6998 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 7000 - 7112 [Lemma~rutt_Ret~r1~r2~:~~~RR~r1...] 0. secs (0.u,0.s) +Chars 7113 - 7119 [Proof.] 0. secs (0.u,0.s) +Chars 7120 - 7127 [intros.] 0. secs (0.u,0.s) +Chars 7128 - 7134 [rstep.] 0. secs (0.u,0.s) +Chars 7135 - 7153 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7154 - 7158 [Qed.] 0. secs (0.u,0.s) +Chars 7160 - 7235 [Lemma~rutt_inv_Ret~r1~r2~:~rut...] 0. secs (0.u,0.s) +Chars 7236 - 7242 [Proof.] 0. secs (0.u,0.s) +Chars 7245 - 7252 [intros.] 0. secs (0.u,0.s) +Chars 7253 - 7264 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 7265 - 7271 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 7272 - 7276 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7278 - 7377 [Lemma~rutt_inv_Ret_l~r1~t2~:~~...] 0. secs (0.u,0.s) +Chars 7378 - 7384 [Proof.] 0. secs (0.u,0.s) +Chars 7387 - 7400 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 7401 - 7416 [rstep~in~Hrutt.] 0. secs (0.u,0.s) +Chars 7417 - 7431 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) +Chars 7435 - 7465 [setoid_rewrite~(itree_eta~t2).] 0.003 secs (0.003u,0.s) +Chars 7466 - 7516 [remember~(observe~(Ret~r1))~as...] 0. secs (0.u,0.s) +Chars 7521 - 7563 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) +Chars 7566 - 7567 [-] 0. secs (0.u,0.s) +Chars 7568 - 7592 [inversion~Heqot1;~subst.] 0. secs (0.u,0.s) +Chars 7593 - 7603 [exists~r2.] 0. secs (0.u,0.s) +Chars 7604 - 7630 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) +Chars 7633 - 7634 [-] 0. secs (0.u,0.s) +Chars 7635 - 7677 [destruct~(IHHrutt~Heqot1)~as~[...] 0. secs (0.u,0.s) +Chars 7678 - 7701 [exists~r2;~split;~auto.] 0. secs (0.u,0.s) +Chars 7706 - 7733 [rewrite~<-~itree_eta~in~H1.] 0.034 secs (0.034u,0.s) +Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) +Chars 7758 - 7762 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7764 - 7863 [Lemma~rutt_inv_Ret_r~t1~r2~:~~...] 0. secs (0.u,0.s) +Chars 7864 - 7870 [Proof.] 0. secs (0.u,0.s) +Chars 7873 - 7886 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 7887 - 7902 [rstep~in~Hrutt.] 0. secs (0.u,0.s) +Chars 7903 - 7917 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) +Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.002 secs (0.002u,0.s) +Chars 7951 - 8001 [remember~(observe~(Ret~r2))~as...] 0. secs (0.u,0.s) +Chars 8004 - 8046 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) +Chars 8049 - 8050 [-] 0. secs (0.u,0.s) +Chars 8051 - 8075 [inversion~Heqot2;~subst.] 0. secs (0.u,0.s) +Chars 8076 - 8086 [exists~r1.] 0. secs (0.u,0.s) +Chars 8087 - 8113 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) +Chars 8116 - 8117 [-] 0. secs (0.u,0.s) +Chars 8118 - 8160 [destruct~(IHHrutt~Heqot2)~as~[...] 0. secs (0.u,0.s) +Chars 8161 - 8184 [exists~r1;~split;~auto.] 0. secs (0.u,0.s) +Chars 8189 - 8216 [rewrite~<-~itree_eta~in~H1.] 0.007 secs (0.007u,0.s) +Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0.001 secs (0.u,0.s) +Chars 8241 - 8245 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8306 - 8449 [Lemma~ruttF_inv_tau_l~t1~ot2~:...] 0. secs (0.u,0.s) +Chars 8450 - 8456 [Proof.] 0. secs (0.u,0.s) +Chars 8459 - 8468 [intros~H.] 0. secs (0.u,0.s) +Chars 8469 - 8495 [remember~(TauF~t1)~as~tt1.] 0. secs (0.u,0.s) +Chars 8498 - 8528 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) +Chars 8531 - 8532 [-] 0. secs (0.u,0.s) +Chars 8533 - 8544 [inv~Heqtt1.] 0. secs (0.u,0.s) +Chars 8545 - 8557 [constructor.] 0. secs (0.u,0.s) +Chars 8558 - 8569 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 8570 - 8578 [exact~H.] 0. secs (0.u,0.s) +Chars 8581 - 8582 [-] 0. secs (0.u,0.s) +Chars 8583 - 8594 [inv~Heqtt1.] 0. secs (0.u,0.s) +Chars 8597 - 8598 [-] 0. secs (0.u,0.s) +Chars 8599 - 8611 [constructor.] 0. secs (0.u,0.s) +Chars 8612 - 8617 [auto.] 0. secs (0.u,0.s) +Chars 8618 - 8622 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8684 - 8827 [Lemma~ruttF_inv_tau_r~ot1~t2~:...] 0. secs (0.u,0.s) +Chars 8828 - 8834 [Proof.] 0. secs (0.u,0.s) +Chars 8837 - 8846 [intros~H.] 0. secs (0.u,0.s) +Chars 8847 - 8873 [remember~(TauF~t2)~as~tt2.] 0. secs (0.u,0.s) +Chars 8876 - 8906 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) +Chars 8909 - 8910 [-] 0. secs (0.u,0.s) +Chars 8911 - 8922 [inv~Heqtt2.] 0. secs (0.u,0.s) +Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) +Chars 8936 - 8947 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 8948 - 8956 [exact~H.] 0. secs (0.u,0.s) +Chars 8959 - 8960 [-] 0. secs (0.u,0.s) +Chars 8961 - 8973 [constructor.] 0. secs (0.u,0.s) +Chars 8974 - 8979 [auto.] 0. secs (0.u,0.s) +Chars 8982 - 8983 [-] 0. secs (0.u,0.s) +Chars 8984 - 8995 [inv~Heqtt2.] 0. secs (0.u,0.s) +Chars 8996 - 9000 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9002 - 9088 [Lemma~rutt_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 9089 - 9095 [Proof.] 0. secs (0.u,0.s) +Chars 9098 - 9105 [intros.] 0. secs (0.u,0.s) +Chars 9106 - 9117 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 9118 - 9124 [rstep.] 0. secs (0.u,0.s) +Chars 9127 - 9149 [apply~ruttF_inv_tau_l.] 0. secs (0.u,0.s) +Chars 9150 - 9158 [exact~H.] 0. secs (0.u,0.s) +Chars 9159 - 9163 [Qed.] 0. secs (0.u,0.s) +Chars 9165 - 9251 [Lemma~rutt_add_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 9252 - 9258 [Proof.] 0. secs (0.u,0.s) +Chars 9261 - 9268 [intros.] 0. secs (0.u,0.s) +Chars 9269 - 9275 [rstep.] 0. secs (0.u,0.s) +Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) +Chars 9289 - 9300 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 9301 - 9309 [exact~H.] 0. secs (0.u,0.s) +Chars 9310 - 9314 [Qed.] 0. secs (0.u,0.s) +Chars 9316 - 9402 [Lemma~rutt_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 9403 - 9409 [Proof.] 0. secs (0.u,0.s) +Chars 9412 - 9419 [intros.] 0. secs (0.u,0.s) +Chars 9420 - 9431 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 9432 - 9438 [rstep.] 0. secs (0.u,0.s) +Chars 9441 - 9463 [apply~ruttF_inv_tau_r.] 0. secs (0.u,0.s) +Chars 9464 - 9472 [exact~H.] 0. secs (0.u,0.s) +Chars 9473 - 9477 [Qed.] 0. secs (0.u,0.s) +Chars 9479 - 9565 [Lemma~rutt_add_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 9566 - 9572 [Proof.] 0. secs (0.u,0.s) +Chars 9575 - 9582 [intros.] 0. secs (0.u,0.s) +Chars 9583 - 9589 [rstep.] 0. secs (0.u,0.s) +Chars 9590 - 9602 [constructor.] 0. secs (0.u,0.s) +Chars 9603 - 9614 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 9615 - 9623 [exact~H.] 0. secs (0.u,0.s) +Chars 9624 - 9628 [Qed.] 0. secs (0.u,0.s) +Chars 9630 - 9720 [Lemma~rutt_inv_Tau~t1~t2~:~~~r...] 0. secs (0.u,0.s) +Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) +Chars 9730 - 9787 [intros;~apply~rutt_inv_Tau_r,~...] 0. secs (0.u,0.s) +Chars 9788 - 9792 [Qed.] 0. secs (0.u,0.s) +Chars 9794 - 10034 [Lemma~rutt_Vis~{T1}~{T2}~(e1~:...] 0. secs (0.u,0.s) +Chars 10035 - 10041 [Proof.] 0. secs (0.u,0.s) +Chars 10044 - 10057 [intros~He~Hk.] 0. secs (0.u,0.s) +Chars 10058 - 10064 [rstep.] 0. secs (0.u,0.s) +Chars 10065 - 10083 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 10084 - 10088 [Qed.] 0. secs (0.u,0.s) +Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0.003 secs (0.003u,0.s) +Chars 10323 - 10329 [Proof.] 0. secs (0.u,0.s) +Chars 10332 - 10345 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 10346 - 10361 [rstep~in~Hrutt.] 0. secs (0.u,0.s) +Chars 10362 - 10376 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) +Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.006 secs (0.006u,0.s) +Chars 10410 - 10463 [remember~(observe~(Vis~e1~k1))...] 0. secs (0.u,0.s) +Chars 10466 - 10515 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) +Chars 10518 - 10519 [-] 0. secs (0.u,0.s) +Chars 10520 - 10546 [inversion~Heqot1;~subst~A.] 0.001 secs (0.001u,0.s) +Chars 10547 - 10620 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) +Chars 10625 - 10650 [exists~U2,e2,k2;~split.] 0. secs (0.u,0.s) +Chars 10651 - 10663 [reflexivity.] 0. secs (0.u,0.s) +Chars 10664 - 10676 [split;~auto.] 0. secs (0.u,0.s) +Chars 10679 - 10680 [-] 0. secs (0.u,0.s) +Chars 10681 - 10739 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) +Chars 10744 - 10772 [rewrite~<-~itree_eta~in~Ht0.] 0.014 secs (0.014u,0.s) +Chars 10777 - 10808 [exists~U2,e2,k2;~split;~auto.] 0. secs (0.u,0.s) +Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 10831 - 10835 [Qed.] 0.005 secs (0.005u,0.s) +Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0. secs (0.u,0.s) +Chars 11072 - 11078 [Proof.] 0. secs (0.u,0.s) +Chars 11081 - 11094 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 11095 - 11110 [rstep~in~Hrutt.] 0. secs (0.u,0.s) +Chars 11111 - 11125 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) +Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.008 secs (0.008u,0.s) +Chars 11159 - 11212 [remember~(observe~(Vis~e2~k2))...] 0. secs (0.u,0.s) +Chars 11215 - 11264 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) +Chars 11267 - 11268 [-] 0. secs (0.u,0.s) +Chars 11269 - 11295 [inversion~Heqot2;~subst~B.] 0.001 secs (0.001u,0.s) +Chars 11296 - 11369 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) +Chars 11374 - 11399 [exists~U1,e1,k1;~split.] 0. secs (0.u,0.s) +Chars 11400 - 11412 [reflexivity.] 0. secs (0.u,0.s) +Chars 11413 - 11425 [split;~auto.] 0. secs (0.u,0.s) +Chars 11428 - 11429 [-] 0. secs (0.u,0.s) +Chars 11430 - 11488 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) +Chars 11493 - 11521 [rewrite~<-~itree_eta~in~Ht0.] 0.014 secs (0.014u,0.s) +Chars 11526 - 11557 [exists~U1,e1,k1;~split;~auto.] 0. secs (0.u,0.s) +Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 11580 - 11584 [Qed.] 0.005 secs (0.005u,0.s) +Chars 11586 - 11809 [Lemma~rutt_inv_Vis~U1~U2~(e1~:...] 0. secs (0.u,0.s) +Chars 11810 - 11816 [Proof.] 0. secs (0.u,0.s) +Chars 11819 - 11839 [intros~H~u1~u2~Hans.] 0. secs (0.u,0.s) +Chars 11840 - 11851 [rstep~in~H.] 0. secs (0.u,0.s) +Chars 11854 - 11908 [exact~(ruttF_inv_VisF~_~_~_~_~...] 0. secs (0.u,0.s) +Chars 11909 - 11913 [Qed.] 0. secs (0.u,0.s) +Chars 11915 - 11941 [End~ConstructionInversion.] 0. secs (0.u,0.s) diff --git a/theories/Eq/RuttFacts.v.timing b/theories/Eq/RuttFacts.v.timing new file mode 100644 index 00000000..b2147ef2 --- /dev/null +++ b/theories/Eq/RuttFacts.v.timing @@ -0,0 +1,577 @@ +Chars 329 - 405 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) +Chars 407 - 525 [From~ITree~Require~Import~ITre...] 0.16 secs (0.144u,0.016s) +Chars 560 - 772 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.002 secs (0.002u,0.s) +Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) +Chars 782 - 789 [intros.] 0. secs (0.u,0.s) +Chars 790 - 811 [apply~rutt_Vis;~auto.] 0. secs (0.u,0.s) +Chars 814 - 821 [intros.] 0. secs (0.u,0.s) +Chars 822 - 843 [apply~rutt_Ret;~auto.] 0. secs (0.u,0.s) +Chars 844 - 848 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1067 - 1199 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) +Chars 1201 - 1276 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) +Chars 1277 - 1283 [Proof.] 0. secs (0.u,0.s) +Chars 1286 - 1298 [constructor.] 0. secs (0.u,0.s) +Chars 1301 - 1302 [-] 0. secs (0.u,0.s) +Chars 1303 - 1307 [red.] 0. secs (0.u,0.s) +Chars 1308 - 1312 [red.] 0. secs (0.u,0.s) +Chars 1313 - 1325 [reflexivity.] 0. secs (0.u,0.s) +Chars 1328 - 1329 [-] 0. secs (0.u,0.s) +Chars 1330 - 1334 [red.] 0. secs (0.u,0.s) +Chars 1335 - 1346 [intros~*~H.] 0. secs (0.u,0.s) +Chars 1347 - 1356 [red~in~H.] 0. secs (0.u,0.s) +Chars 1357 - 1361 [red.] 0. secs (0.u,0.s) +Chars 1362 - 1375 [now~symmetry.] 0. secs (0.u,0.s) +Chars 1378 - 1379 [-] 0. secs (0.u,0.s) +Chars 1380 - 1384 [hnf.] 0. secs (0.u,0.s) +Chars 1385 - 1400 [intros~*~H1~H2.] 0. secs (0.u,0.s) +Chars 1401 - 1415 [red~in~H1,~H2.] 0. secs (0.u,0.s) +Chars 1416 - 1420 [red.] 0. secs (0.u,0.s) +Chars 1421 - 1442 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 1443 - 1447 [Qed.] 0. secs (0.u,0.s) +Chars 1449 - 1569 [Definition~flip_REv~{E1~E2~:~T...] 0. secs (0.u,0.s) +Chars 1571 - 1653 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) +Chars 1654 - 1660 [Proof.] 0. secs (0.u,0.s) +Chars 1661 - 1673 [reflexivity.] 0. secs (0.u,0.s) +Chars 1674 - 1678 [Qed.] 0. secs (0.u,0.s) +Chars 1801 - 1971 [Definition~RAns_pair~E1~E2~~~(...] 0. secs (0.u,0.s) +Chars 1973 - 2100 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) +Chars 2101 - 2107 [Proof.] 0. secs (0.u,0.s) +Chars 2108 - 2120 [reflexivity.] 0. secs (0.u,0.s) +Chars 2121 - 2125 [Qed.] 0. secs (0.u,0.s) +Chars 2127 - 2294 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) +Chars 2296 - 2437 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) +Chars 2438 - 2444 [Proof.] 0. secs (0.u,0.s) +Chars 2445 - 2454 [intros~*.] 0. secs (0.u,0.s) +Chars 2455 - 2482 [rewrite~<-~!RAns_pair_iff.] 0.024 secs (0.023u,0.001s) +Chars 2483 - 2498 [split;~apply~H.] 0. secs (0.u,0.s) +Chars 2499 - 2503 [Qed.] 0. secs (0.u,0.s) +Chars 2505 - 2582 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) +Chars 2583 - 2589 [Proof.] 0. secs (0.u,0.s) +Chars 2592 - 2604 [constructor.] 0. secs (0.u,0.s) +Chars 2607 - 2608 [-] 0. secs (0.u,0.s) +Chars 2609 - 2618 [red;~red.] 0. secs (0.u,0.s) +Chars 2619 - 2631 [reflexivity.] 0. secs (0.u,0.s) +Chars 2634 - 2635 [-] 0. secs (0.u,0.s) +Chars 2636 - 2645 [red;~red.] 0. secs (0.u,0.s) +Chars 2646 - 2659 [now~symmetry.] 0. secs (0.u,0.s) +Chars 2662 - 2663 [-] 0. secs (0.u,0.s) +Chars 2664 - 2673 [red;~red.] 0. secs (0.u,0.s) +Chars 2674 - 2689 [intros~*~H1~H2.] 0. secs (0.u,0.s) +Chars 2690 - 2704 [red~in~H1,~H2.] 0. secs (0.u,0.s) +Chars 2705 - 2726 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 2727 - 2731 [Qed.] 0. secs (0.u,0.s) +Chars 2733 - 2896 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 2898 - 3023 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) +Chars 3024 - 3030 [Proof.] 0. secs (0.u,0.s) +Chars 3031 - 3043 [reflexivity.] 0. secs (0.u,0.s) +Chars 3044 - 3048 [Qed.] 0. secs (0.u,0.s) +Chars 3050 - 3175 [Lemma~flip_flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 3176 - 3182 [Proof.] 0. secs (0.u,0.s) +Chars 3183 - 3195 [reflexivity.] 0. secs (0.u,0.s) +Chars 3196 - 3200 [Qed.] 0. secs (0.u,0.s) +Chars 3202 - 3363 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) +Chars 3364 - 3370 [Proof.] 0. secs (0.u,0.s) +Chars 3373 - 3456 [split;~revert~t1~t2;~coinducti...] 0.002 secs (0.002u,0.s) +Chars 3459 - 3460 [-] 0. secs (0.u,0.s) +Chars 3461 - 3498 [induction~Hrutt;~try~now~const...] 0.044 secs (0.043u,0.s) +Chars 3503 - 3504 [*] 0. secs (0.u,0.s) +Chars 3505 - 3517 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 3518 - 3532 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3537 - 3538 [*] 0. secs (0.u,0.s) +Chars 3539 - 3551 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 3552 - 3557 [auto.] 0. secs (0.u,0.s) +Chars 3558 - 3574 [intros~b~a~HAns.] 0. secs (0.u,0.s) +Chars 3575 - 3587 [cbn~in~HAns.] 0. secs (0.u,0.s) +Chars 3594 - 3619 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) +Chars 3620 - 3634 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3637 - 3638 [-] 0. secs (0.u,0.s) +Chars 3639 - 3676 [induction~Hrutt;~try~now~const...] 0.01 secs (0.01u,0.s) +Chars 3681 - 3682 [*] 0. secs (0.u,0.s) +Chars 3683 - 3695 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 3696 - 3710 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3715 - 3716 [*] 0. secs (0.u,0.s) +Chars 3717 - 3729 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 3730 - 3735 [auto.] 0. secs (0.u,0.s) +Chars 3736 - 3752 [intros~b~a~HAns.] 0. secs (0.u,0.s) +Chars 3753 - 3765 [cbn~in~HAns.] 0. secs (0.u,0.s) +Chars 3772 - 3797 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) +Chars 3798 - 3812 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3813 - 3817 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3894 - 4150 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) +Chars 4151 - 4157 [Proof.] 0. secs (0.u,0.s) +Chars 4160 - 4229 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) +Chars 4232 - 4412 [split;~intros~Hrutt;~revert~t1...] 0.008 secs (0.008u,0.s) +Chars 4417 - 4449 [1,~4:~apply~EqRet;~now~apply~HRR.] 0. secs (0.u,0.s) +Chars 4455 - 4487 [1,~3:~apply~EqTau;~now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4492 - 4493 [*] 0. secs (0.u,0.s) +Chars 4494 - 4506 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 4507 - 4522 [now~apply~HREv.] 0. secs (0.u,0.s) +Chars 4523 - 4530 [intros.] 0. secs (0.u,0.s) +Chars 4537 - 4570 [assert~(H2~:~RAns1~A~B~e1~a~e2...] 0. secs (0.u,0.s) +Chars 4577 - 4578 [{] 0. secs (0.u,0.s) +Chars 4579 - 4603 [erewrite~<-~eq_RAns_iff.] 0. secs (0.u,0.s) +Chars 4604 - 4613 [apply~H1.] 0. secs (0.u,0.s) +Chars 4614 - 4625 [assumption.] 0. secs (0.u,0.s) +Chars 4626 - 4627 [}] 0. secs (0.u,0.s) +Chars 4634 - 4641 [intros.] 0. secs (0.u,0.s) +Chars 4642 - 4665 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) +Chars 4666 - 4680 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4685 - 4686 [*] 0. secs (0.u,0.s) +Chars 4687 - 4699 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 4700 - 4715 [now~apply~HREv.] 0. secs (0.u,0.s) +Chars 4716 - 4723 [intros.] 0. secs (0.u,0.s) +Chars 4730 - 4763 [assert~(H2~:~RAns2~A~B~e1~a~e2...] 0. secs (0.u,0.s) +Chars 4770 - 4771 [{] 0. secs (0.u,0.s) +Chars 4772 - 4793 [erewrite~eq_RAns_iff.] 0. secs (0.u,0.s) +Chars 4794 - 4803 [apply~H1.] 0. secs (0.u,0.s) +Chars 4804 - 4815 [assumption.] 0. secs (0.u,0.s) +Chars 4816 - 4817 [}] 0. secs (0.u,0.s) +Chars 4824 - 4831 [intros.] 0. secs (0.u,0.s) +Chars 4832 - 4855 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) +Chars 4856 - 4870 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4871 - 4875 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4877 - 5066 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) +Chars 5067 - 5073 [Proof.] 0. secs (0.u,0.s) +Chars 5076 - 5314 [split;~revert_until~c;~tower~i...] 0.013 secs (0.013u,0.s) +Chars 5317 - 5373 [1-3,~6-8:~inv~Ht1;~inv~Ht2;~si...] 0.188 secs (0.187u,0.001s) +Chars 5376 - 5377 [+] 0. secs (0.u,0.s) +Chars 5378 - 5386 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5387 - 5399 [constructor.] 0. secs (0.u,0.s) +Chars 5400 - 5417 [eapply~IH;~eauto.] 0. secs (0.u,0.s) +Chars 5420 - 5421 [+] 0. secs (0.u,0.s) +Chars 5422 - 5430 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5435 - 5542 [dependent~destruction~H3;~depe...] 0.008 secs (0.008u,0.s) +Chars 5547 - 5565 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5566 - 5573 [intros.] 0. secs (0.u,0.s) +Chars 5574 - 5584 [eapply~IH.] 0. secs (0.u,0.s) +Chars 5585 - 5595 [apply~REL.] 0. secs (0.u,0.s) +Chars 5596 - 5607 [apply~REL0.] 0. secs (0.u,0.s) +Chars 5608 - 5621 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 5624 - 5625 [+] 0. secs (0.u,0.s) +Chars 5626 - 5634 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 5635 - 5647 [constructor.] 0. secs (0.u,0.s) +Chars 5648 - 5665 [eapply~IH;~eauto.] 0. secs (0.u,0.s) +Chars 5668 - 5669 [+] 0. secs (0.u,0.s) +Chars 5670 - 5678 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 5683 - 5790 [dependent~destruction~H4;~depe...] 0.008 secs (0.008u,0.s) +Chars 5795 - 5813 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5814 - 5821 [intros.] 0. secs (0.u,0.s) +Chars 5822 - 5832 [eapply~IH.] 0. secs (0.u,0.s) +Chars 5833 - 5843 [apply~REL.] 0. secs (0.u,0.s) +Chars 5844 - 5855 [apply~REL0.] 0. secs (0.u,0.s) +Chars 5856 - 5869 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 5872 - 5873 [+] 0. secs (0.u,0.s) +Chars 5874 - 5882 [inv~Ht1.] 0.019 secs (0.019u,0.s) +Chars 5883 - 5895 [constructor.] 0. secs (0.u,0.s) +Chars 5896 - 5918 [eapply~IHHrutt;~eauto.] 0.002 secs (0.002u,0.s) +Chars 5919 - 5930 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 5933 - 5934 [+] 0. secs (0.u,0.s) +Chars 5935 - 5943 [inv~Ht2.] 0.018 secs (0.018u,0.s) +Chars 5944 - 5956 [constructor.] 0. secs (0.u,0.s) +Chars 5957 - 5979 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 5980 - 5991 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 5994 - 5995 [+] 0. secs (0.u,0.s) +Chars 5996 - 6004 [inv~Ht1.] 0.021 secs (0.021u,0.s) +Chars 6005 - 6017 [constructor.] 0. secs (0.u,0.s) +Chars 6018 - 6040 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 6041 - 6052 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 6055 - 6056 [+] 0. secs (0.u,0.s) +Chars 6057 - 6065 [inv~Ht2.] 0.02 secs (0.02u,0.s) +Chars 6066 - 6078 [constructor.] 0. secs (0.u,0.s) +Chars 6079 - 6101 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 6102 - 6113 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 6114 - 6118 [Qed.] 0.045 secs (0.045u,0.s) +Chars 6120 - 6283 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) +Chars 6284 - 6290 [Proof.] 0. secs (0.u,0.s) +Chars 6293 - 6305 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 6306 - 6335 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) +Chars 6338 - 6366 [apply~eq_proper_ruttC;~auto.] 0. secs (0.u,0.s) +Chars 6367 - 6371 [Qed.] 0. secs (0.u,0.s) +Chars 6373 - 6630 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) +Chars 6631 - 6637 [Proof.] 0. secs (0.u,0.s) +Chars 6640 - 6714 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) +Chars 6717 - 6734 [rewrite~Ht1,~Ht2.] 0.004 secs (0.004u,0.s) +Chars 6735 - 6761 [apply~rutt_Proper_R;~auto.] 0. secs (0.u,0.s) +Chars 6762 - 6766 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6768 - 6963 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 6964 - 6970 [Proof.] 0. secs (0.u,0.s) +Chars 6973 - 7011 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 7014 - 7030 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 7033 - 7098 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) +Chars 7101 - 7117 [rcbn;~intros~EQ.] 0. secs (0.u,0.s) +Chars 7120 - 7149 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 7152 - 7191 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 7194 - 7215 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 7233 - 7234 [-] 0. secs (0.u,0.s) +Chars 7235 - 7261 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 7266 - 7278 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 7279 - 7293 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 7294 - 7309 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 7314 - 7349 [hinduction~EQx~before~ox;~try~...] 0.032 secs (0.032u,0.s) +Chars 7354 - 7355 [+] 0. secs (0.u,0.s) +Chars 7356 - 7382 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) +Chars 7383 - 7397 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 7404 - 7416 [genobs~y~oy.] 0. secs (0.u,0.s) +Chars 7417 - 7431 [genret~r2~or2.] 0. secs (0.u,0.s) +Chars 7432 - 7447 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 7454 - 7489 [hinduction~EQy~before~oy;~try~...] 0.02 secs (0.02u,0.s) +Chars 7496 - 7497 [*] 0. secs (0.u,0.s) +Chars 7498 - 7522 [subst;~intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 7523 - 7535 [constructor.] 0. secs (0.u,0.s) +Chars 7536 - 7541 [auto.] 0. secs (0.u,0.s) +Chars 7548 - 7549 [*] 0. secs (0.u,0.s) +Chars 7550 - 7557 [intros.] 0. secs (0.u,0.s) +Chars 7558 - 7577 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 7578 - 7598 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) +Chars 7603 - 7604 [+] 0. secs (0.u,0.s) +Chars 7605 - 7619 [intros;~subst.] 0. secs (0.u,0.s) +Chars 7620 - 7639 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 7640 - 7660 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 7678 - 7679 [-] 0. secs (0.u,0.s) +Chars 7680 - 7706 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 7711 - 7723 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 7724 - 7738 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 7739 - 7754 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 7759 - 7794 [hinduction~EQx~before~ox;~try~...] 0.033 secs (0.033u,0.s) +Chars 7799 - 7800 [+] 0. secs (0.u,0.s) +Chars 7801 - 7818 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 7825 - 7837 [genobs~y~oy.] 0. secs (0.u,0.s) +Chars 7838 - 7852 [gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 7853 - 7868 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 7875 - 7910 [hinduction~EQy~before~oy;~try~...] 0.031 secs (0.031u,0.s) +Chars 7917 - 7918 [*] 0. secs (0.u,0.s) +Chars 7919 - 7936 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 7937 - 7950 [to_rmon_core.] 0. secs (0.u,0.s) +Chars 7951 - 7962 [intros~?~?.] 0. secs (0.u,0.s) +Chars 7963 - 7968 [rcbn.] 0. secs (0.u,0.s) +Chars 7969 - 7981 [constructor.] 0. secs (0.u,0.s) +Chars 7982 - 7999 [eapply~IH;~eauto.] 0. secs (0.u,0.s) +Chars 8006 - 8007 [*] 0. secs (0.u,0.s) +Chars 8008 - 8015 [intros.] 0. secs (0.u,0.s) +Chars 8016 - 8035 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 8036 - 8056 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) +Chars 8061 - 8062 [+] 0. secs (0.u,0.s) +Chars 8063 - 8077 [intros;~subst.] 0. secs (0.u,0.s) +Chars 8078 - 8097 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 8098 - 8118 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 8136 - 8137 [-] 0. secs (0.u,0.s) +Chars 8138 - 8164 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 8169 - 8181 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 8182 - 8199 [genvis~e1~k1~ot1.] 0. secs (0.u,0.s) +Chars 8200 - 8215 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 8220 - 8255 [hinduction~EQx~before~ox;~try~...] 0.033 secs (0.033u,0.s) +Chars 8260 - 8261 [+] 0. secs (0.u,0.s) +Chars 8262 - 8269 [intros.] 0. secs (0.u,0.s) +Chars 8270 - 8336 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 8343 - 8357 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 8364 - 8376 [genobs~y~oy.] 0. secs (0.u,0.s) +Chars 8377 - 8394 [genvis~e2~k2~ot2.] 0. secs (0.u,0.s) +Chars 8395 - 8410 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 8417 - 8452 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) +Chars 8459 - 8460 [*] 0. secs (0.u,0.s) +Chars 8461 - 8468 [intros.] 0. secs (0.u,0.s) +Chars 8469 - 8535 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 8544 - 8562 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8563 - 8570 [intros.] 0. secs (0.u,0.s) +Chars 8571 - 8581 [eapply~IH.] 0. secs (0.u,0.s) +Chars 8582 - 8596 [apply~(REL~a).] 0. secs (0.u,0.s) +Chars 8597 - 8612 [apply~(REL0~b).] 0. secs (0.u,0.s) +Chars 8613 - 8628 [apply~H0;~auto.] 0. secs (0.u,0.s) +Chars 8635 - 8636 [*] 0. secs (0.u,0.s) +Chars 8637 - 8644 [intros.] 0. secs (0.u,0.s) +Chars 8645 - 8664 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 8665 - 8685 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) +Chars 8690 - 8691 [+] 0. secs (0.u,0.s) +Chars 8692 - 8706 [intros;~subst.] 0. secs (0.u,0.s) +Chars 8707 - 8726 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 8727 - 8747 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 8766 - 8767 [-] 0. secs (0.u,0.s) +Chars 8768 - 8812 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 8817 - 8825 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 8830 - 8849 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 8854 - 8873 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 8878 - 8929 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 8934 - 8971 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 8990 - 8991 [-] 0. secs (0.u,0.s) +Chars 8992 - 9036 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 9041 - 9049 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 9054 - 9073 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 9078 - 9097 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 9102 - 9153 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 9158 - 9195 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 9196 - 9200 [Qed.] 0.021 secs (0.021u,0.s) +Chars 9202 - 9371 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 9372 - 9378 [Proof.] 0. secs (0.u,0.s) +Chars 9381 - 9393 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 9394 - 9423 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) +Chars 9426 - 9458 [apply~euttge_proper_ruttC;~auto.] 0. secs (0.u,0.s) +Chars 9459 - 9463 [Qed.] 0. secs (0.u,0.s) +Chars 9465 - 9633 [Lemma~rutt_cong_eutt~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 9634 - 9640 [Proof.] 0. secs (0.u,0.s) +Chars 9643 - 9694 [intros~*~Hrutt~Heutt;~revert~t...] 0. secs (0.u,0.s) +Chars 9697 - 9751 [coinduction~c~CIH;~icbn;~intro...] 0.001 secs (0.001u,0.s) +Chars 9754 - 9768 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 9771 - 9800 [rewrite~(itree_eta~t1')~in~*.] 1.129 secs (1.123u,0.007s) +Chars 9803 - 9841 [remember~(observe~t1)~as~ot1~e...] 0. secs (0.u,0.s) +Chars 9844 - 9882 [remember~(observe~t2)~as~ot2~e...] 0. secs (0.u,0.s) +Chars 9885 - 9927 [move~Hrutt~before~CIH;~revert_...] 0. secs (0.u,0.s) +Chars 9930 - 10014 [induction~Hrutt~as~[r1~r2|~m1~...] 0. secs (0.u,0.s) +Chars 10017 - 10018 [-] 0. secs (0.u,0.s) +Chars 10035 - 10050 [step~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10051 - 10065 [cbn~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10070 - 10097 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10098 - 10124 [clear~Hot1'~Hot2'~tt1~tt2.] 0. secs (0.u,0.s) +Chars 10129 - 10168 [remember~(RetF~r1)~as~oRetL~eq...] 0. secs (0.u,0.s) +Chars 10173 - 10208 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) +Chars 10213 - 10214 [+] 0. secs (0.u,0.s) +Chars 10215 - 10226 [inv~HoRetL.] 0.002 secs (0.002u,0.s) +Chars 10227 - 10243 [now~constructor.] 0. secs (0.u,0.s) +Chars 10248 - 10249 [+] 0. secs (0.u,0.s) +Chars 10250 - 10263 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 10264 - 10283 [now~apply~IHHeutt'.] 0. secs (0.u,0.s) +Chars 10286 - 10287 [-] 0. secs (0.u,0.s) +Chars 10304 - 10319 [step~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10320 - 10334 [cbn~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10339 - 10366 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10367 - 10383 [clear~tt1~Hot1'.] 0. secs (0.u,0.s) +Chars 10388 - 10404 [clear~tt2~Hot2'.] 0. secs (0.u,0.s) +Chars 10409 - 10419 [step~in~H.] 0. secs (0.u,0.s) +Chars 10420 - 10430 [rcbn~in~H.] 0. secs (0.u,0.s) +Chars 10435 - 10474 [remember~(TauF~m1)~as~oTauL~eq...] 0. secs (0.u,0.s) +Chars 10479 - 10501 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) +Chars 10506 - 10637 [induction~Heutt'~~as~[r1~r2~_|...] 0.001 secs (0.001u,0.s) +Chars 10642 - 10643 [+] 0. secs (0.u,0.s) +Chars 10672 - 10683 [inv~HoTauL.] 0.007 secs (0.007u,0.s) +Chars 10684 - 10696 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 10697 - 10715 [apply~CIH~with~m1.] 0. secs (0.u,0.s) +Chars 10722 - 10723 [*] 0. secs (0.u,0.s) +Chars 10724 - 10734 [apply~REL.] 0. secs (0.u,0.s) +Chars 10741 - 10742 [*] 0. secs (0.u,0.s) +Chars 10743 - 10755 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 10756 - 10761 [step.] 0. secs (0.u,0.s) +Chars 10762 - 10770 [exact~H.] 0. secs (0.u,0.s) +Chars 10775 - 10776 [+] 0. secs (0.u,0.s) +Chars 10838 - 10849 [inv~HoTauL.] 0.01 secs (0.01u,0.s) +Chars 10856 - 10915 [destruct~(observe~m1)~as~[r1|~...] 0.001 secs (0.001u,0.s) +Chars 10922 - 10923 [*] 0. secs (0.u,0.s) +Chars 10950 - 10989 [remember~(RetF~r1)~as~oRetL~eq...] 0.001 secs (0.001u,0.s) +Chars 10998 - 11026 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) +Chars 11035 - 11044 [revert~H.] 0. secs (0.u,0.s) +Chars 11053 - 11098 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) +Chars 11107 - 11109 [**] 0. secs (0.u,0.s) +Chars 11110 - 11121 [inv~HoRetL.] 0.004 secs (0.004u,0.s) +Chars 11133 - 11146 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 11158 - 11199 [remember~(RetF~r1)~as~oRetL2~e...] 0. secs (0.u,0.s) +Chars 11211 - 11241 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) +Chars 11253 - 11256 [***] 0. secs (0.u,0.s) +Chars 11257 - 11269 [inv~HoRetL2.] 0.002 secs (0.002u,0.s) +Chars 11270 - 11282 [constructor.] 0. secs (0.u,0.s) +Chars 11283 - 11293 [now~subst.] 0. secs (0.u,0.s) +Chars 11305 - 11308 [***] 0. secs (0.u,0.s) +Chars 11309 - 11322 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 11323 - 11341 [now~apply~IHruttF.] 0. secs (0.u,0.s) +Chars 11350 - 11352 [**] 0. secs (0.u,0.s) +Chars 11353 - 11366 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 11367 - 11390 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) +Chars 11397 - 11398 [*] 0. secs (0.u,0.s) +Chars 11430 - 11466 [apply~(IHIHHeutt'~m1_body~m2);...] 0. secs (0.u,0.s) +Chars 11475 - 11502 [apply~ruttF_inv_tau_l~in~H.] 0. secs (0.u,0.s) +Chars 11503 - 11511 [exact~H.] 0. secs (0.u,0.s) +Chars 11518 - 11519 [*] 0. secs (0.u,0.s) +Chars 11549 - 11591 [remember~(VisF~e1~k1)~as~oVisL...] 0.001 secs (0.001u,0.s) +Chars 11600 - 11628 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) +Chars 11637 - 11646 [revert~H.] 0. secs (0.u,0.s) +Chars 11655 - 11700 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) +Chars 11709 - 11711 [**] 0. secs (0.u,0.s) +Chars 11712 - 11761 [symmetry~in~HoVisL;~dependent~...] 0.004 secs (0.004u,0.s) +Chars 11773 - 11786 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 11798 - 11841 [remember~(VisF~e~k0)~as~oVisL2...] 0. secs (0.u,0.s) +Chars 11853 - 11883 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) +Chars 11895 - 11898 [***] 0. secs (0.u,0.s) +Chars 11899 - 11929 [dependent~destruction~HoVisL2.] 0.003 secs (0.003u,0.s) +Chars 11945 - 11963 [apply~EqVis;~auto.] 0. secs (0.u,0.s) +Chars 11964 - 11980 [intros~a~b~HAns.] 0. secs (0.u,0.s) +Chars 11996 - 12018 [apply~CIH~with~(k0~a).] 0. secs (0.u,0.s) +Chars 12034 - 12038 [****] 0. secs (0.u,0.s) +Chars 12039 - 12049 [apply~REL.] 0. secs (0.u,0.s) +Chars 12065 - 12069 [****] 0. secs (0.u,0.s) +Chars 12070 - 12085 [apply~H0;~auto.] 0. secs (0.u,0.s) +Chars 12097 - 12100 [***] 0. secs (0.u,0.s) +Chars 12101 - 12114 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 12115 - 12135 [apply~IHruttF;~auto.] 0. secs (0.u,0.s) +Chars 12144 - 12146 [**] 0. secs (0.u,0.s) +Chars 12147 - 12160 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 12161 - 12184 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) +Chars 12189 - 12190 [+] 0. secs (0.u,0.s) +Chars 12220 - 12232 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 12233 - 12251 [apply~CIH~with~m1.] 0. secs (0.u,0.s) +Chars 12258 - 12259 [*] 0. secs (0.u,0.s) +Chars 12260 - 12293 [rewrite~<-~tau_eutt~with~(t~:=...] 0.001 secs (0.001u,0.s) +Chars 12294 - 12299 [step.] 0.001 secs (0.001u,0.s) +Chars 12300 - 12311 [subst~t1''.] 0. secs (0.u,0.s) +Chars 12312 - 12325 [exact~Heutt'.] 0. secs (0.u,0.s) +Chars 12332 - 12333 [*] 0. secs (0.u,0.s) +Chars 12334 - 12346 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 12347 - 12352 [step.] 0. secs (0.u,0.s) +Chars 12353 - 12361 [exact~H.] 0. secs (0.u,0.s) +Chars 12364 - 12365 [-] 0. secs (0.u,0.s) +Chars 12382 - 12397 [step~in~Heutt'.] 0. secs (0.u,0.s) +Chars 12398 - 12412 [cbn~in~Heutt'.] 0. secs (0.u,0.s) +Chars 12417 - 12444 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) +Chars 12445 - 12471 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) +Chars 12476 - 12518 [remember~(VisF~e1~k1)~as~oVisL...] 0. secs (0.u,0.s) +Chars 12523 - 12566 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) +Chars 12571 - 12572 [+] 0. secs (0.u,0.s) +Chars 12573 - 12602 [dependent~destruction~HoVisL.] 0.002 secs (0.002u,0.s) +Chars 12609 - 12627 [apply~EqVis;~auto.] 0. secs (0.u,0.s) +Chars 12628 - 12644 [intros~a~b~HAns.] 0. secs (0.u,0.s) +Chars 12651 - 12673 [apply~CIH~with~(k1~a).] 0. secs (0.u,0.s) +Chars 12680 - 12681 [*] 0. secs (0.u,0.s) +Chars 12682 - 12692 [apply~REL.] 0. secs (0.u,0.s) +Chars 12699 - 12700 [*] 0. secs (0.u,0.s) +Chars 12701 - 12716 [apply~H0;~auto.] 0. secs (0.u,0.s) +Chars 12721 - 12722 [+] 0. secs (0.u,0.s) +Chars 12723 - 12736 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 12737 - 12758 [apply~IHHeutt';~auto.] 0. secs (0.u,0.s) +Chars 12761 - 12762 [-] 0. secs (0.u,0.s) +Chars 12780 - 12843 [eapply~IHHrutt~with~(t1~:=~m1)...] 0. secs (0.u,0.s) +Chars 12848 - 12881 [rewrite~<-~tau_eutt~with~(t~:=...] 0. secs (0.u,0.s) +Chars 12882 - 12900 [rewrite~<-~Heutt'.] 0. secs (0.u,0.s) +Chars 12905 - 12929 [rewrite~(itree_eta~tt1).] 0.001 secs (0.001u,0.s) +Chars 12930 - 12947 [rewrite~<-~Hot1'.] 0. secs (0.u,0.s) +Chars 12948 - 12960 [reflexivity.] 0. secs (0.u,0.s) +Chars 12963 - 12964 [-] 0. secs (0.u,0.s) +Chars 12982 - 12995 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 12996 - 13018 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 13019 - 13023 [Qed.] 0.027 secs (0.027u,0.s) +Chars 13025 - 13282 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) +Chars 13283 - 13289 [Proof.] 0. secs (0.u,0.s) +Chars 13292 - 13363 [intros~REv~REv2~HREv~RAns~RAns...] 0. secs (0.u,0.s) +Chars 13366 - 13437 [rewrite~<-~HREv,~<-~HRAns,~<-~...] 0.006 secs (0.006u,0.s) +Chars 13440 - 13460 [split;~intros~Hrutt.] 0. secs (0.u,0.s) +Chars 13463 - 13464 [-] 0. secs (0.u,0.s) +Chars 13465 - 13494 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) +Chars 13499 - 13522 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) +Chars 13523 - 13552 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) +Chars 13555 - 13556 [-] 0. secs (0.u,0.s) +Chars 13557 - 13578 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) +Chars 13583 - 13612 [eapply~rutt_cong_eutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13617 - 13640 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) +Chars 13641 - 13670 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) +Chars 13671 - 13675 [Qed.] 0.002 secs (0.002u,0.s) +Chars 13714 - 13731 [Section~RuttBind.] 0. secs (0.u,0.s) +Chars 13732 - 13763 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 13764 - 13787 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) +Chars 13788 - 13846 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 13847 - 13916 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) +Chars 13917 - 13949 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 13951 - 13964 [End~RuttBind.] 0. secs (0.u,0.s) +Chars 13966 - 14339 [Lemma~rutt_bind~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) +Chars 14340 - 14346 [Proof.] 0. secs (0.u,0.s) +Chars 14349 - 14362 [revert~t1~t2.] 0. secs (0.u,0.s) +Chars 14363 - 14381 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 14382 - 14387 [icbn.] 0. secs (0.u,0.s) +Chars 14388 - 14411 [intros~t1~t2~Hrutt~EQK.] 0. secs (0.u,0.s) +Chars 14414 - 14428 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 14431 - 14445 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 14446 - 14460 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 14463 - 14499 [hinduction~Hrutt~before~CIH;~i...] 0. secs (0.u,0.s) +Chars 14502 - 14503 [-] 0. secs (0.u,0.s) +Chars 14518 - 14549 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 14554 - 14577 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) +Chars 14583 - 14595 [step~in~EQK.] 0. secs (0.u,0.s) +Chars 14596 - 14610 [now~do~2~step.] 0.002 secs (0.002u,0.s) +Chars 14613 - 14614 [-] 0. secs (0.u,0.s) +Chars 14629 - 14660 [rewrite~!observe_bind;~simpobs.] 0.005 secs (0.005u,0.s) +Chars 14665 - 14677 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 14678 - 14694 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 14697 - 14698 [-] 0. secs (0.u,0.s) +Chars 14713 - 14744 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 14749 - 14767 [apply~EqVis;~auto.] 0.001 secs (0.001u,0.s) +Chars 14768 - 14784 [intros~a~b~HAns.] 0. secs (0.u,0.s) +Chars 14789 - 14805 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 14806 - 14819 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 14823 - 14824 [-] 0. secs (0.u,0.s) +Chars 14840 - 14870 [rewrite~observe_bind;~simpobs.] 0.002 secs (0.002u,0.s) +Chars 14875 - 14888 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 14889 - 14909 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) +Chars 14912 - 14913 [-] 0. secs (0.u,0.s) +Chars 14929 - 14971 [setoid_rewrite~observe_bind~at...] 0.018 secs (0.018u,0.s) +Chars 14976 - 14989 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 14990 - 15010 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) +Chars 15011 - 15015 [Qed.] 0.006 secs (0.006u,0.s) +Chars 15018 - 15035 [Section~RuttMrec.] 0. secs (0.u,0.s) +Chars 15038 - 15145 [Context~(D1~D2~E1~E2~:~Type~->...] 0. secs (0.u,0.s) +Chars 15148 - 15254 [Context~(RPre~:~prerel~E1~E2)~...] 0. secs (0.u,0.s) +Chars 15258 - 15516 [Context~~(Hbodies~:~forall~A~B...] 0. secs (0.u,0.s) +Chars 15520 - 15800 [Lemma~interp_mrec_rutt~(R1~R2~...] 0. secs (0.u,0.s) +Chars 15803 - 15809 [Proof.] 0. secs (0.u,0.s) +Chars 15814 - 15832 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 15833 - 15838 [icbn.] 0. secs (0.u,0.s) +Chars 15844 - 15862 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) +Chars 15863 - 15876 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 15882 - 15911 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 15912 - 15941 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 15946 - 15989 [hinduction~Ht12~before~R1;~int...] 0.002 secs (0.002u,0.s) +Chars 15995 - 15996 [-] 0. secs (0.u,0.s) +Chars 15997 - 16029 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) +Chars 16030 - 16053 [rewrite~Heqot1,~Heqot2.] 0.134 secs (0.134u,0.s) +Chars 16060 - 16094 [repeat~rewrite~unfold_interp_m...] 0.14 secs (0.139u,0.s) +Chars 16095 - 16099 [cbn.] 0. secs (0.u,0.s) +Chars 16100 - 16116 [now~constructor.] 0. secs (0.u,0.s) +Chars 16123 - 16124 [-] 0. secs (0.u,0.s) +Chars 16125 - 16157 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) +Chars 16158 - 16181 [rewrite~Heqot1,~Heqot2.] 0.141 secs (0.14u,0.s) +Chars 16188 - 16222 [repeat~rewrite~unfold_interp_m...] 0.144 secs (0.143u,0.s) +Chars 16223 - 16227 [cbn.] 0. secs (0.u,0.s) +Chars 16228 - 16255 [constructor;~now~apply~CIH.] 0. secs (0.u,0.s) +Chars 16261 - 16262 [-] 0. secs (0.u,0.s) +Chars 16263 - 16295 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) +Chars 16296 - 16319 [rewrite~Heqot1,~Heqot2.] 0.158 secs (0.154u,0.001s) +Chars 16326 - 16360 [repeat~rewrite~unfold_interp_m...] 0.16 secs (0.157u,0.s) +Chars 16361 - 16365 [cbn.] 0. secs (0.u,0.s) +Chars 16372 - 16378 [inv~H.] 0.016 secs (0.015u,0.s) +Chars 16385 - 16386 [+] 0. secs (0.u,0.s) +Chars 16387 - 16413 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) +Chars 16414 - 16420 [subst.] 0.001 secs (0.001u,0.s) +Chars 16421 - 16433 [constructor.] 0. secs (0.u,0.s) +Chars 16442 - 16453 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 16464 - 16488 [eapply~rutt_bind;~eauto.] 0.001 secs (0.001u,0.s) +Chars 16497 - 16504 [intros.] 0. secs (0.u,0.s) +Chars 16505 - 16514 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 16515 - 16528 [clear~-~H~H0.] 0. secs (0.u,0.s) +Chars 16529 - 16538 [apply~H0.] 0. secs (0.u,0.s) +Chars 16539 - 16555 [now~constructor.] 0. secs (0.u,0.s) +Chars 16562 - 16563 [+] 0. secs (0.u,0.s) +Chars 16564 - 16590 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) +Chars 16591 - 16597 [subst.] 0.001 secs (0.001u,0.s) +Chars 16598 - 16610 [constructor.] 0. secs (0.u,0.s) +Chars 16619 - 16624 [auto.] 0. secs (0.u,0.s) +Chars 16625 - 16632 [intros.] 0. secs (0.u,0.s) +Chars 16633 - 16659 [repeat~rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) +Chars 16660 - 16671 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 16681 - 16694 [clear~-~H0~H.] 0. secs (0.u,0.s) +Chars 16695 - 16704 [apply~H0.] 0. secs (0.u,0.s) +Chars 16705 - 16721 [now~constructor.] 0. secs (0.u,0.s) +Chars 16727 - 16728 [-] 0. secs (0.u,0.s) +Chars 16729 - 16753 [apply~simpobs~in~Heqot1.] 0. secs (0.u,0.s) +Chars 16754 - 16769 [rewrite~Heqot1.] 0.076 secs (0.075u,0.s) +Chars 16770 - 16802 [rewrite~unfold_interp_mrec~~at~1.] 0.071 secs (0.071u,0.s) +Chars 16810 - 16814 [cbn.] 0. secs (0.u,0.s) +Chars 16815 - 16827 [constructor.] 0. secs (0.u,0.s) +Chars 16828 - 16845 [now~apply~IHHt12.] 0. secs (0.u,0.s) +Chars 16851 - 16852 [-] 0. secs (0.u,0.s) +Chars 16853 - 16877 [apply~simpobs~in~Heqot2.] 0. secs (0.u,0.s) +Chars 16878 - 16893 [rewrite~Heqot2.] 0.072 secs (0.071u,0.s) +Chars 16894 - 16933 [setoid_rewrite~unfold_interp_m...] 0.085 secs (0.084u,0.s) +Chars 16940 - 16944 [cbn.] 0. secs (0.u,0.s) +Chars 16945 - 16957 [constructor.] 0. secs (0.u,0.s) +Chars 16958 - 16975 [now~apply~IHHt12.] 0. secs (0.u,0.s) +Chars 16979 - 16983 [Qed.] 0.016 secs (0.016u,0.s) +Chars 16987 - 17182 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) +Chars 17185 - 17191 [Proof.] 0. secs (0.u,0.s) +Chars 17196 - 17203 [intros.] 0. secs (0.u,0.s) +Chars 17204 - 17227 [apply~interp_mrec_rutt.] 0. secs (0.u,0.s) +Chars 17228 - 17233 [auto.] 0. secs (0.u,0.s) +Chars 17236 - 17240 [Qed.] 0. secs (0.u,0.s) +Chars 17242 - 17255 [End~RuttMrec.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Shallow.v.timing b/theories/Eq/Shallow.v.timing new file mode 100644 index 00000000..19dda312 --- /dev/null +++ b/theories/Eq/Shallow.v.timing @@ -0,0 +1,102 @@ +Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.024 secs (0.019u,0.004s) +Chars 349 - 372 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 389 - 523 [Definition~eqeq~{A~:~Type}~(P~...] 0. secs (0.u,0.s) +Chars 525 - 720 [Definition~pweqeq~{R1}~{R2}~(R...] 0. secs (0.u,0.s) +Chars 722 - 889 [Lemma~pweqeq_mon~{R1}~{R2}~(RR...] 0. secs (0.u,0.s) +Chars 890 - 896 [Proof.] 0. secs (0.u,0.s) +Chars 899 - 921 [destruct~p;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 922 - 926 [Qed.] 0. secs (0.u,0.s) +Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0. secs (0.u,0.s) +Chars 1164 - 1170 [Proof.] 0. secs (0.u,0.s) +Chars 1173 - 1331 [refine~~~(fun~H~=>~~~~match~~~...] 0.002 secs (0.002u,0.s) +Chars 1334 - 1360 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 1361 - 1365 [Qed.] 0. secs (0.u,0.s) +Chars 1367 - 1526 [Ltac~~inv_Vis~:=~~~discriminat...] 0. secs (0.u,0.s) +Chars 1585 - 1798 [Record~observing~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 1799 - 1845 [#[global]~Hint~Constructors~ob...] 0. secs (0.u,0.s) +Chars 1847 - 1875 [Section~observing_relations.] 0. secs (0.u,0.s) +Chars 1877 - 1915 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 1916 - 1966 [Variable~(eq_~:~itree'~E~R~->~...] 0. secs (0.u,0.s) +Chars 1968 - 2056 [#[global]~Instance~observing_o...] 0. secs (0.u,0.s) +Chars 2057 - 2063 [Proof.] 0. secs (0.u,0.s) +Chars 2064 - 2089 [intros~?~?~[];~compute;~auto.] 0. secs (0.u,0.s) +Chars 2090 - 2094 [Qed.] 0. secs (0.u,0.s) +Chars 2096 - 2171 [#[global]~Instance~observing_g...] 0. secs (0.u,0.s) +Chars 2172 - 2178 [Proof.] 0. secs (0.u,0.s) +Chars 2179 - 2200 [compute;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 2201 - 2205 [Qed.] 0. secs (0.u,0.s) +Chars 2207 - 2326 [#[global]~Instance~monotonic_o...] 0. secs (0.u,0.s) +Chars 2327 - 2333 [Proof.] 0. secs (0.u,0.s) +Chars 2334 - 2373 [intros~?~?~?~[];~compute;~eaut...] 0. secs (0.u,0.s) +Chars 2374 - 2378 [Qed.] 0. secs (0.u,0.s) +Chars 2380 - 2472 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 2473 - 2502 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) +Chars 2505 - 2529 [intros~[];~split;~compute~...] 0.012 secs (0.011u,0.s) +Chars 2532 - 2533 [-] 0. secs (0.u,0.s) +Chars 2534 - 2556 [intros~?~?~[];~auto~...] 0. secs (0.u,0.s) +Chars 2559 - 2560 [-] 0. secs (0.u,0.s) +Chars 2561 - 2598 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) +Chars 2599 - 2603 [Qed.] 0. secs (0.u,0.s) +Chars 2605 - 2629 [End~observing_relations.] 0. secs (0.u,0.s) +Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0. secs (0.u,0.s) +Chars 2959 - 2965 [Proof.] 0. secs (0.u,0.s) +Chars 2966 - 2978 [reflexivity.] 0. secs (0.u,0.s) +Chars 2979 - 2983 [Qed.] 0. secs (0.u,0.s) +Chars 2985 - 3097 [#[global]~Instance~observing_b...] 0. secs (0.u,0.s) +Chars 3098 - 3104 [Proof.] 0. secs (0.u,0.s) +Chars 3107 - 3127 [repeat~intro;~subst.] 0. secs (0.u,0.s) +Chars 3128 - 3140 [constructor.] 0. secs (0.u,0.s) +Chars 3141 - 3156 [unfold~observe.] 0. secs (0.u,0.s) +Chars 3157 - 3161 [cbn.] 0. secs (0.u,0.s) +Chars 3164 - 3194 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) +Chars 3195 - 3207 [reflexivity.] 0. secs (0.u,0.s) +Chars 3208 - 3212 [Qed.] 0. secs (0.u,0.s) +Chars 3214 - 3313 [Lemma~bind_ret_~{E}~{R}~{S}~(r...] 0. secs (0.u,0.s) +Chars 3314 - 3320 [Proof.] 0. secs (0.u,0.s) +Chars 3321 - 3346 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3347 - 3351 [Qed.] 0. secs (0.u,0.s) +Chars 3353 - 3462 [Lemma~bind_tau_~{E}~{R}~U~t~(k...] 0. secs (0.u,0.s) +Chars 3463 - 3469 [Proof.] 0. secs (0.u,0.s) +Chars 3470 - 3495 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3496 - 3500 [Qed.] 0. secs (0.u,0.s) +Chars 3502 - 3668 [Lemma~bind_vis_~{E}~{R}~{U}~{V...] 0. secs (0.u,0.s) +Chars 3669 - 3675 [Proof.] 0. secs (0.u,0.s) +Chars 3676 - 3701 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3702 - 3706 [Qed.] 0. secs (0.u,0.s) +Chars 3802 - 3980 [Lemma~unfold_aloop_~{E}~{A}~{B...] 0. secs (0.u,0.s) +Chars 3981 - 3987 [Proof.] 0. secs (0.u,0.s) +Chars 3988 - 4013 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 4014 - 4018 [Qed.] 0. secs (0.u,0.s) +Chars 4058 - 4192 [Lemma~unfold_forever_~{E}~{R}~...] 0. secs (0.u,0.s) +Chars 4193 - 4199 [Proof.] 0. secs (0.u,0.s) +Chars 4200 - 4213 [econstructor.] 0. secs (0.u,0.s) +Chars 4214 - 4226 [reflexivity.] 0. secs (0.u,0.s) +Chars 4227 - 4231 [Qed.] 0. secs (0.u,0.s) +Chars 4282 - 4463 [Inductive~going~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 4464 - 4506 [#[global]~Hint~Constructors~go...] 0. secs (0.u,0.s) +Chars 4508 - 4641 [Lemma~observing_going~{E}~{R1}...] 0. secs (0.u,0.s) +Chars 4642 - 4648 [Proof.] 0. secs (0.u,0.s) +Chars 4651 - 4674 [split;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4677 - 4695 [intros~[[]];~auto.] 0. secs (0.u,0.s) +Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) +Chars 4702 - 4726 [Section~going_relations.] 0. secs (0.u,0.s) +Chars 4728 - 4766 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 4767 - 4815 [Variable~(eq_~:~itree~E~R~->~i...] 0. secs (0.u,0.s) +Chars 4817 - 4884 [#[global]~Instance~going_go~:~...] 0. secs (0.u,0.s) +Chars 4885 - 4891 [Proof.] 0. secs (0.u,0.s) +Chars 4892 - 4912 [intros~?~?~[];~auto.] 0. secs (0.u,0.s) +Chars 4913 - 4917 [Qed.] 0. secs (0.u,0.s) +Chars 4919 - 5026 [#[global]~Instance~monotonic_g...] 0. secs (0.u,0.s) +Chars 5027 - 5033 [Proof.] 0. secs (0.u,0.s) +Chars 5034 - 5068 [intros~?~?~?~[];~eauto~with~it...] 0. secs (0.u,0.s) +Chars 5069 - 5073 [Qed.] 0. secs (0.u,0.s) +Chars 5075 - 5159 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) +Chars 5169 - 5215 [intros~[];~constructor;~comput...] 0.049 secs (0.048u,0.s) +Chars 5218 - 5219 [-] 0. secs (0.u,0.s) +Chars 5220 - 5251 [intros~?~?~[];~auto~with~itree.] 0. secs (0.u,0.s) +Chars 5254 - 5255 [-] 0. secs (0.u,0.s) +Chars 5256 - 5293 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) +Chars 5294 - 5298 [Qed.] 0. secs (0.u,0.s) +Chars 5300 - 5320 [End~going_relations.] 0. secs (0.u,0.s) diff --git a/theories/Eq/SimUpToTaus.v.timing b/theories/Eq/SimUpToTaus.v.timing new file mode 100644 index 00000000..3b9cfb50 --- /dev/null +++ b/theories/Eq/SimUpToTaus.v.timing @@ -0,0 +1,244 @@ +Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 573 - 635 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.136 secs (0.121u,0.014s) +Chars 750 - 763 [Section~SUTT.] 0. secs (0.u,0.s) +Chars 765 - 831 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.002 secs (0.001u,0.s) +Chars 1324 - 1356 [Hint~Constructors~suttF:~itree.] 0. secs (0.u,0.s) +Chars 1358 - 1404 [Lemma~suttF_mono~:~Proper~(leq...] 0. secs (0.u,0.s) +Chars 1405 - 1411 [Proof.] 0. secs (0.u,0.s) +Chars 1414 - 1427 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1430 - 1461 [induction~H0;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 1464 - 1499 [constructor;~intro;~apply~H,~S...] 0. secs (0.u,0.s) +Chars 1502 - 1531 [constructor;~apply~H,~EQTAUS.] 0. secs (0.u,0.s) +Chars 1532 - 1536 [Qed.] 0. secs (0.u,0.s) +Chars 1538 - 1603 [Definition~sutt_mon~:=~{|~body...] 0. secs (0.u,0.s) +Chars 1605 - 1701 [Definition~sutt~(t1~:~itree~E~...] 0. secs (0.u,0.s) +Chars 1702 - 1727 [Hint~Unfold~sutt:~itree.] 0. secs (0.u,0.s) +Chars 1729 - 1738 [End~SUTT.] 0. secs (0.u,0.s) +Chars 1740 - 1779 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) +Chars 1780 - 1812 [#[global]~Hint~Unfold~sutt:~it...] 0. secs (0.u,0.s) +Chars 2768 - 2785 [Section~SUTT_rel.] 0. secs (0.u,0.s) +Chars 2787 - 2847 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 2849 - 2949 [Lemma~reflexive_suttF~`{Reflex...] 0. secs (0.u,0.s) +Chars 2950 - 2956 [Proof.] 0. secs (0.u,0.s) +Chars 2959 - 2976 [unfold~Reflexive.] 0. secs (0.u,0.s) +Chars 2977 - 2986 [intros~x.] 0. secs (0.u,0.s) +Chars 2989 - 3018 [destruct~x;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) +Chars 3025 - 3038 [End~SUTT_rel.] 0. secs (0.u,0.s) +Chars 3040 - 3059 [Section~SUTT_facts.] 0. secs (0.u,0.s) +Chars 3061 - 3127 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 3129 - 3144 [End~SUTT_facts.] 0. secs (0.u,0.s) +Chars 3146 - 3365 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) +Chars 3366 - 3372 [Proof.] 0. secs (0.u,0.s) +Chars 3375 - 3382 [intros.] 0. secs (0.u,0.s) +Chars 3383 - 3389 [inv~H.] 0.003 secs (0.003u,0.s) +Chars 3390 - 3409 [ddestruction;~auto.] 0.002 secs (0.001u,0.s) +Chars 3410 - 3414 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3416 - 3600 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 3601 - 3607 [Proof.] 0. secs (0.u,0.s) +Chars 3610 - 3617 [intros.] 0. secs (0.u,0.s) +Chars 3618 - 3628 [step~in~H.] 0. secs (0.u,0.s) +Chars 3629 - 3640 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 3643 - 3683 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) +Chars 3684 - 3688 [Qed.] 0. secs (0.u,0.s) +Chars 3690 - 3838 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 3839 - 3845 [Proof.] 0. secs (0.u,0.s) +Chars 3848 - 3855 [intros.] 0. secs (0.u,0.s) +Chars 3856 - 3861 [step.] 0. secs (0.u,0.s) +Chars 3862 - 3872 [step~in~H.] 0.019 secs (0.018u,0.001s) +Chars 3875 - 3887 [constructor.] 0. secs (0.u,0.s) +Chars 3888 - 3893 [auto.] 0. secs (0.u,0.s) +Chars 3894 - 3898 [Qed.] 0. secs (0.u,0.s) +Chars 3900 - 4047 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) +Chars 4048 - 4054 [Proof.] 0. secs (0.u,0.s) +Chars 4057 - 4064 [intros.] 0. secs (0.u,0.s) +Chars 4065 - 4070 [step.] 0. secs (0.u,0.s) +Chars 4073 - 4085 [constructor.] 0. secs (0.u,0.s) +Chars 4086 - 4094 [exact~H.] 0. secs (0.u,0.s) +Chars 4095 - 4099 [Qed.] 0. secs (0.u,0.s) +Chars 4101 - 4252 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) +Chars 4253 - 4259 [Proof.] 0. secs (0.u,0.s) +Chars 4262 - 4280 [unfold~sutt~at~-~1.] 0. secs (0.u,0.s) +Chars 4281 - 4300 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 4301 - 4316 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 4317 - 4327 [step~in~H.] 0. secs (0.u,0.s) +Chars 4330 - 4336 [inv~H.] 0.008 secs (0.008u,0.s) +Chars 4339 - 4340 [-] 0. secs (0.u,0.s) +Chars 4341 - 4376 [eapply~suttF_mono;~[~~|~exact~...] 0. secs (0.u,0.s) +Chars 4381 - 4393 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 4394 - 4418 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) +Chars 4421 - 4422 [-] 0. secs (0.u,0.s) +Chars 4423 - 4435 [constructor.] 0. secs (0.u,0.s) +Chars 4436 - 4446 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4447 - 4460 [exact~EQTAUS.] 0. secs (0.u,0.s) +Chars 4461 - 4465 [Qed.] 0.03 secs (0.03u,0.s) +Chars 4467 - 4677 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) +Chars 4678 - 4684 [Proof.] 0. secs (0.u,0.s) +Chars 4687 - 4694 [intros.] 0. secs (0.u,0.s) +Chars 4697 - 4724 [remember~(TauF~t1)~as~ott1.] 0. secs (0.u,0.s) +Chars 4727 - 4807 [induction~H;~intros;~subst;~tr...] 0.005 secs (0.005u,0.s) +Chars 4810 - 4825 [step~in~EQTAUS.] 0. secs (0.u,0.s) +Chars 4826 - 4839 [exact~EQTAUS.] 0. secs (0.u,0.s) +Chars 4840 - 4844 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4846 - 4995 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) +Chars 4996 - 5002 [Proof.] 0. secs (0.u,0.s) +Chars 5005 - 5012 [intros.] 0. secs (0.u,0.s) +Chars 5013 - 5023 [step~in~H.] 0. secs (0.u,0.s) +Chars 5024 - 5029 [step.] 0. secs (0.u,0.s) +Chars 5032 - 5063 [apply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) +Chars 5064 - 5068 [Qed.] 0. secs (0.u,0.s) +Chars 5070 - 5229 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) +Chars 5230 - 5236 [Proof.] 0. secs (0.u,0.s) +Chars 5239 - 5258 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 5259 - 5278 [intros~t1~t2~H1~H2.] 0. secs (0.u,0.s) +Chars 5281 - 5292 [step~in~H1.] 0. secs (0.u,0.s) +Chars 5293 - 5304 [step~in~H2.] 0. secs (0.u,0.s) +Chars 5307 - 5352 [induction~H1;~intros;~subst;~a...] 0.005 secs (0.005u,0.s) +Chars 5355 - 5356 [-] 0. secs (0.u,0.s) +Chars 5377 - 5389 [constructor.] 0. secs (0.u,0.s) +Chars 5390 - 5398 [intro~x.] 0. secs (0.u,0.s) +Chars 5399 - 5409 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5414 - 5415 [+] 0. secs (0.u,0.s) +Chars 5416 - 5428 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 5429 - 5445 [exact~(SUTTK~x).] 0. secs (0.u,0.s) +Chars 5450 - 5451 [+] 0. secs (0.u,0.s) +Chars 5452 - 5464 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 5465 - 5504 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) +Chars 5507 - 5508 [-] 0. secs (0.u,0.s) +Chars 5535 - 5554 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 5555 - 5576 [eapply~IHsuttF;~auto.] 0. secs (0.u,0.s) +Chars 5577 - 5609 [eapply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) +Chars 5612 - 5613 [-] 0. secs (0.u,0.s) +Chars 5639 - 5646 [inv~H2.] 0.017 secs (0.016u,0.s) +Chars 5651 - 5652 [+] 0. secs (0.u,0.s) +Chars 5653 - 5665 [clear~t1~t2.] 0. secs (0.u,0.s) +Chars 5666 - 5680 [genobs~t0~ot0.] 0. secs (0.u,0.s) +Chars 5687 - 5732 [hinduction~EQTAUS0~before~CIH;...] 0.001 secs (0.001u,0.s) +Chars 5739 - 5740 [*] 0. secs (0.u,0.s) +Chars 5741 - 5760 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 5761 - 5769 [simpobs.] 0. secs (0.u,0.s) +Chars 5770 - 5782 [constructor.] 0. secs (0.u,0.s) +Chars 5783 - 5789 [eauto.] 0. secs (0.u,0.s) +Chars 5796 - 5797 [*] 0. secs (0.u,0.s) +Chars 5798 - 5817 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 5818 - 5826 [simpobs.] 0. secs (0.u,0.s) +Chars 5827 - 5839 [constructor.] 0. secs (0.u,0.s) +Chars 5840 - 5848 [intro~x.] 0. secs (0.u,0.s) +Chars 5857 - 5867 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5876 - 5878 [--] 0. secs (0.u,0.s) +Chars 5879 - 5919 [exact~(sutt_inv_vis~_~_~_~_~_~...] 0. secs (0.u,0.s) +Chars 5928 - 5930 [--] 0. secs (0.u,0.s) +Chars 5931 - 5943 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 5944 - 5956 [apply~SUTTK.] 0. secs (0.u,0.s) +Chars 5963 - 5964 [*] 0. secs (0.u,0.s) +Chars 5965 - 5984 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 5985 - 5993 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5994 - 6018 [eapply~IHEQTAUS0;~eauto.] 0. secs (0.u,0.s) +Chars 6027 - 6052 [rewrite~(itree_eta'~ot1).] 0. secs (0.u,0.s) +Chars 6053 - 6077 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) +Chars 6078 - 6090 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 6091 - 6104 [exact~EQTAUS.] 0. secs (0.u,0.s) +Chars 6111 - 6112 [*] 0. secs (0.u,0.s) +Chars 6113 - 6125 [constructor.] 0. secs (0.u,0.s) +Chars 6126 - 6142 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 6143 - 6175 [apply~sutt_elim_tau_right;~auto.] 0. secs (0.u,0.s) +Chars 6180 - 6181 [+] 0. secs (0.u,0.s) +Chars 6182 - 6194 [constructor.] 0. secs (0.u,0.s) +Chars 6195 - 6238 [apply~CIH;~apply~sutt_elim_tau...] 0. secs (0.u,0.s) +Chars 6239 - 6243 [Qed.] 0.01 secs (0.01u,0.s) +Chars 6245 - 6380 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) +Chars 6381 - 6387 [Proof.] 0. secs (0.u,0.s) +Chars 6390 - 6408 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 6409 - 6424 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 6427 - 6437 [step~in~H.] 0. secs (0.u,0.s) +Chars 6440 - 6452 [induction~H.] 0. secs (0.u,0.s) +Chars 6455 - 6456 [-] 0. secs (0.u,0.s) +Chars 6457 - 6475 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 6478 - 6479 [-] 0. secs (0.u,0.s) +Chars 6480 - 6492 [constructor.] 0. secs (0.u,0.s) +Chars 6493 - 6505 [constructor.] 0. secs (0.u,0.s) +Chars 6506 - 6516 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6517 - 6527 [exact~REL.] 0. secs (0.u,0.s) +Chars 6530 - 6531 [-] 0. secs (0.u,0.s) +Chars 6532 - 6544 [constructor.] 0. secs (0.u,0.s) +Chars 6545 - 6551 [intro.] 0. secs (0.u,0.s) +Chars 6552 - 6562 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6563 - 6573 [apply~REL.] 0. secs (0.u,0.s) +Chars 6576 - 6577 [-] 0. secs (0.u,0.s) +Chars 6578 - 6590 [constructor.] 0. secs (0.u,0.s) +Chars 6591 - 6596 [step.] 0. secs (0.u,0.s) +Chars 6597 - 6611 [exact~IHeqitF.] 0. secs (0.u,0.s) +Chars 6614 - 6615 [-] 0. secs (0.u,0.s) +Chars 6616 - 6628 [constructor.] 0. secs (0.u,0.s) +Chars 6629 - 6643 [exact~IHeqitF.] 0. secs (0.u,0.s) +Chars 6644 - 6648 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6706 - 6967 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 6968 - 6974 [Proof.] 0. secs (0.u,0.s) +Chars 6977 - 6995 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6996 - 7020 [intros~t1~t2~H~s1~s2~Hs.] 0. secs (0.u,0.s) +Chars 7023 - 7033 [step~in~H.] 0. secs (0.u,0.s) +Chars 7034 - 7054 [unfold~observe;~cbn.] 0. secs (0.u,0.s) +Chars 7057 - 7077 [induction~H;~intros.] 0. secs (0.u,0.s) +Chars 7080 - 7081 [-] 0. secs (0.u,0.s) +Chars 7082 - 7088 [simpl.] 0. secs (0.u,0.s) +Chars 7089 - 7103 [apply~Hs~in~H.] 0. secs (0.u,0.s) +Chars 7104 - 7114 [step~in~H.] 0. secs (0.u,0.s) +Chars 7119 - 7149 [eapply~suttF_mono;~[~~|~exact~...] 0.001 secs (0.001u,0.s) +Chars 7154 - 7166 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 7167 - 7191 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) +Chars 7194 - 7195 [-] 0. secs (0.u,0.s) +Chars 7196 - 7202 [simpl.] 0. secs (0.u,0.s) +Chars 7203 - 7216 [econstructor.] 0. secs (0.u,0.s) +Chars 7217 - 7224 [intros.] 0. secs (0.u,0.s) +Chars 7225 - 7253 [apply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 7256 - 7257 [-] 0. secs (0.u,0.s) +Chars 7258 - 7270 [constructor.] 0. secs (0.u,0.s) +Chars 7271 - 7277 [eauto.] 0. secs (0.u,0.s) +Chars 7280 - 7281 [-] 0. secs (0.u,0.s) +Chars 7282 - 7294 [constructor.] 0. secs (0.u,0.s) +Chars 7299 - 7379 [change~~~(elem~c~(observe~(ITr...] 0. secs (0.u,0.s) +Chars 7384 - 7400 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 7401 - 7405 [Qed.] 0.004 secs (0.004u,0.s) +Chars 7479 - 7624 [#[global]~Instance~Proper_sutt...] 0. secs (0.u,0.s) +Chars 7625 - 7631 [Proof.] 0. secs (0.u,0.s) +Chars 7634 - 7645 [repeat~red.] 0. secs (0.u,0.s) +Chars 7646 - 7664 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 7665 - 7690 [intros~x~y~H~x0~y0~H0~H1.] 0. secs (0.u,0.s) +Chars 7693 - 7703 [step~in~H.] 0. secs (0.u,0.s) +Chars 7704 - 7715 [step~in~H0.] 0. secs (0.u,0.s) +Chars 7716 - 7727 [step~in~H1.] 0. secs (0.u,0.s) +Chars 7730 - 7747 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) +Chars 7750 - 7771 [induction~H1;~intros.] 0. secs (0.u,0.s) +Chars 7774 - 7775 [-] 0. secs (0.u,0.s) +Chars 7776 - 7801 [inv~H1;~try~discriminate.] 0.017 secs (0.017u,0.s) +Chars 7802 - 7827 [inv~H0;~try~discriminate.] 0.014 secs (0.014u,0.s) +Chars 7828 - 7841 [econstructor.] 0. secs (0.u,0.s) +Chars 7842 - 7848 [eauto.] 0. secs (0.u,0.s) +Chars 7851 - 7852 [-] 0. secs (0.u,0.s) +Chars 7853 - 7895 [dependent~destruction~H;~try~d...] 0.017 secs (0.017u,0.s) +Chars 7900 - 7943 [dependent~destruction~H0;~try~...] 0.017 secs (0.017u,0.s) +Chars 7948 - 7956 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 7961 - 7973 [constructor.] 0. secs (0.u,0.s) +Chars 7974 - 7981 [intros.] 0. secs (0.u,0.s) +Chars 7982 - 7993 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7999 - 8009 [apply~REL.] 0. secs (0.u,0.s) +Chars 8015 - 8026 [apply~REL0.] 0. secs (0.u,0.s) +Chars 8027 - 8039 [apply~SUTTK.] 0. secs (0.u,0.s) +Chars 8044 - 8045 [-] 0. secs (0.u,0.s) +Chars 8046 - 8089 [dependent~destruction~H0;~try~...] 0.016 secs (0.015u,0.s) +Chars 8094 - 8102 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 8103 - 8115 [constructor.] 0. secs (0.u,0.s) +Chars 8121 - 8141 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) +Chars 8142 - 8158 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 8162 - 8163 [-] 0. secs (0.u,0.s) +Chars 8164 - 8206 [dependent~destruction~H;~try~d...] 0.016 secs (0.016u,0.s) +Chars 8211 - 8219 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 8220 - 8232 [constructor.] 0. secs (0.u,0.s) +Chars 8237 - 8267 [rewrite~(itree_eta'~ot2)~in~*.] 0. secs (0.u,0.s) +Chars 8268 - 8279 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8285 - 8295 [apply~REL.] 0. secs (0.u,0.s) +Chars 8296 - 8311 [step;~apply~H0.] 0.001 secs (0.001u,0.s) +Chars 8312 - 8325 [apply~EQTAUS.] 0. secs (0.u,0.s) +Chars 8327 - 8331 [Qed.] 0.046 secs (0.045u,0.s) diff --git a/theories/Events.v.timing b/theories/Events.v.timing new file mode 100644 index 00000000..fb11e63a --- /dev/null +++ b/theories/Events.v.timing @@ -0,0 +1 @@ +Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.088 secs (0.075u,0.013s) diff --git a/theories/Events/Concurrency.v.timing b/theories/Events/Concurrency.v.timing new file mode 100644 index 00000000..ffc33a13 --- /dev/null +++ b/theories/Events/Concurrency.v.timing @@ -0,0 +1,10 @@ +Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.032 secs (0.025u,0.007s) +Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) +Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.03 secs (0.024u,0.005s) +Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.057 secs (0.056u,0.001s) +Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0. secs (0.u,0.s) +Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.002 secs (0.002u,0.s) +Chars 2164 - 2274 [CoFixpoint~round_robin~{E}~(q~...] 0. secs (0.u,0.s) +Chars 2276 - 2372 [Definition~run_spawn~{E}~(t~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Dependent.v.timing b/theories/Events/Dependent.v.timing new file mode 100644 index 00000000..46b419dc --- /dev/null +++ b/theories/Events/Dependent.v.timing @@ -0,0 +1,6 @@ +Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.032 secs (0.027u,0.005s) +Chars 720 - 748 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) +Chars 765 - 852 [Variant~depE~{I~:~Type}~(F~:~I...] 0. secs (0.u,0.s) +Chars 854 - 876 [Arguments~Dep~{I~F}~&.] 0. secs (0.u,0.s) +Chars 878 - 970 [Definition~dep~{I}~{F}~{E}~`{d...] 0. secs (0.u,0.s) +Chars 972 - 1102 [Definition~undep~{I}~{F}~(f~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Exception.v.timing b/theories/Events/Exception.v.timing new file mode 100644 index 00000000..3c5312a6 --- /dev/null +++ b/theories/Events/Exception.v.timing @@ -0,0 +1,6 @@ +Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.049 secs (0.038u,0.011s) +Chars 77 - 100 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 156 - 237 [Variant~exceptE~(Err~:~Type)~:...] 0. secs (0.u,0.s) +Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.017 secs (0.016u,0.001s) +Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.002 secs (0.002u,0.s) +Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.002 secs (0.002u,0.s) diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 06999245..92e6b956 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -58,7 +58,8 @@ Proof. - repeat rewrite bind_ret_l. eret. - repeat rewrite bind_ret_l. etau. - destruct e. - + destruct e. cbn. rewrite 2 bind_map. rewrite 2 bind_ret_r. + + destruct e. bcbn. + rewrite 2 bind_map. rewrite 2 bind_ret_r. step. apply Hk. + cbn. evis. do 2 setoid_rewrite bind_ret_l. step. etau. diff --git a/theories/Events/ExceptionFacts.v.timing b/theories/Events/ExceptionFacts.v.timing new file mode 100644 index 00000000..9cb2fdbe --- /dev/null +++ b/theories/Events/ExceptionFacts.v.timing @@ -0,0 +1,495 @@ +Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 61 - 110 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.001s) +Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.162 secs (0.145u,0.017s) +Chars 242 - 256 [Import~Monads.] 0. secs (0.u,0.s) +Chars 257 - 278 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 279 - 311 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 313 - 437 [Lemma~try_catch_ret~:~~~forall...] 0. secs (0.u,0.s) +Chars 438 - 444 [Proof.] 0. secs (0.u,0.s) +Chars 447 - 454 [intros.] 0. secs (0.u,0.s) +Chars 455 - 472 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 473 - 529 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 532 - 552 [rewrite~unfold_iter.] 0.032 secs (0.029u,0.003s) +Chars 553 - 557 [cbn.] 0. secs (0.u,0.s) +Chars 558 - 577 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) +Chars 578 - 590 [reflexivity.] 0. secs (0.u,0.s) +Chars 591 - 595 [Qed.] 0.002 secs (0.002u,0.s) +Chars 597 - 740 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 741 - 747 [Proof.] 0. secs (0.u,0.s) +Chars 750 - 757 [intros.] 0. secs (0.u,0.s) +Chars 758 - 775 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 776 - 832 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 835 - 855 [rewrite~unfold_iter.] 0.04 secs (0.04u,0.s) +Chars 856 - 860 [cbn.] 0. secs (0.u,0.s) +Chars 861 - 880 [rewrite~bind_ret_l.] 0.008 secs (0.008u,0.s) +Chars 881 - 893 [reflexivity.] 0. secs (0.u,0.s) +Chars 894 - 898 [Qed.] 0.003 secs (0.003u,0.s) +Chars 900 - 1122 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) +Chars 1123 - 1129 [Proof.] 0. secs (0.u,0.s) +Chars 1133 - 1140 [intros.] 0. secs (0.u,0.s) +Chars 1141 - 1158 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 1159 - 1215 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 1219 - 1239 [rewrite~unfold_iter.] 0.007 secs (0.007u,0.s) +Chars 1240 - 1244 [cbn.] 0. secs (0.u,0.s) +Chars 1245 - 1262 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 1266 - 1284 [rewrite~bind_bind.] 0.006 secs (0.006u,0.s) +Chars 1285 - 1311 [setoid_rewrite~bind_ret_l.] 0.01 secs (0.01u,0.s) +Chars 1312 - 1331 [rewrite~bind_ret_r.] 0.001 secs (0.001u,0.s) +Chars 1335 - 1347 [reflexivity.] 0. secs (0.u,0.s) +Chars 1348 - 1352 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1354 - 1549 [Lemma~try_catch_ev~:~~~forall~...] 0. secs (0.u,0.s) +Chars 1550 - 1556 [Proof.] 0. secs (0.u,0.s) +Chars 1559 - 1566 [intros.] 0. secs (0.u,0.s) +Chars 1567 - 1584 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 1585 - 1641 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 1644 - 1664 [rewrite~unfold_iter.] 0.01 secs (0.01u,0.s) +Chars 1665 - 1669 [cbn.] 0. secs (0.u,0.s) +Chars 1670 - 1692 [unfold~ITree.map~at~3.] 0. secs (0.u,0.s) +Chars 1695 - 1720 [setoid_rewrite~bind_bind.] 0.011 secs (0.011u,0.s) +Chars 1721 - 1742 [rewrite~bind_trigger.] 0.01 secs (0.01u,0.s) +Chars 1743 - 1747 [cbn.] 0. secs (0.u,0.s) +Chars 1750 - 1776 [setoid_rewrite~bind_ret_l.] 0.016 secs (0.016u,0.s) +Chars 1777 - 1789 [reflexivity.] 0. secs (0.u,0.s) +Chars 1790 - 1794 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1796 - 1948 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 1949 - 1955 [Proof.] 0. secs (0.u,0.s) +Chars 1958 - 1983 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 1984 - 1994 [red~in~Hk.] 0. secs (0.u,0.s) +Chars 1995 - 2019 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 2020 - 2030 [revert~t1.] 0. secs (0.u,0.s) +Chars 2033 - 2045 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 2046 - 2053 [intros.] 0. secs (0.u,0.s) +Chars 2054 - 2071 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 2073 - 2106 [setoid_rewrite~unfold_iter_ktree.] 0.053 secs (0.053u,0.s) +Chars 2109 - 2117 [sinv~Ht.] 0.242 secs (0.24u,0.002s) +Chars 2121 - 2122 [-] 0. secs (0.u,0.s) +Chars 2123 - 2149 [repeat~rewrite~bind_ret_l.] 0.049 secs (0.048u,0.s) +Chars 2150 - 2155 [eret.] 0. secs (0.u,0.s) +Chars 2159 - 2160 [-] 0. secs (0.u,0.s) +Chars 2161 - 2187 [repeat~rewrite~bind_ret_l.] 0.052 secs (0.052u,0.s) +Chars 2188 - 2193 [etau.] 0.002 secs (0.002u,0.s) +Chars 2198 - 2199 [-] 0. secs (0.u,0.s) +Chars 2200 - 2211 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2216 - 2217 [+] 0. secs (0.u,0.s) +Chars 2218 - 2229 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2230 - 2235 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 2242 - 2261 [rewrite~2!bind_map.] 0.044 secs (0.044u,0.s) +Chars 2262 - 2283 [rewrite~2!bind_ret_r.] 0.03 secs (0.03u,0.s) +Chars 2291 - 2296 [step.] 0.007 secs (0.007u,0.s) +Chars 2297 - 2306 [apply~Hk.] 0. secs (0.u,0.s) +Chars 2312 - 2313 [+] 0. secs (0.u,0.s) +Chars 2314 - 2318 [cbn.] 0. secs (0.u,0.s) +Chars 2319 - 2324 [evis.] 0.002 secs (0.002u,0.s) +Chars 2325 - 2356 [do~2~setoid_rewrite~bind_ret_l.] 0.067 secs (0.067u,0.s) +Chars 2365 - 2370 [step.] 0.002 secs (0.002u,0.s) +Chars 2371 - 2376 [etau.] 0.002 secs (0.002u,0.s) +Chars 2377 - 2381 [Qed.] 0.034 secs (0.034u,0.s) +Chars 2383 - 2520 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 2521 - 2527 [Proof.] 0. secs (0.u,0.s) +Chars 2530 - 2555 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 2556 - 2566 [red~in~Hk.] 0. secs (0.u,0.s) +Chars 2567 - 2591 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 2592 - 2602 [revert~t1.] 0. secs (0.u,0.s) +Chars 2605 - 2617 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 2618 - 2625 [intros.] 0. secs (0.u,0.s) +Chars 2626 - 2643 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 2644 - 2677 [setoid_rewrite~unfold_iter_ktree.] 0.051 secs (0.051u,0.s) +Chars 2680 - 2691 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 2695 - 2740 [hinduction~Ht~before~c;~intros...] 0.016 secs (0.016u,0.s) +Chars 2743 - 2744 [-] 0. secs (0.u,0.s) +Chars 2745 - 2771 [repeat~rewrite~bind_ret_l.] 0.044 secs (0.043u,0.s) +Chars 2772 - 2777 [eret.] 0. secs (0.u,0.s) +Chars 2781 - 2782 [-] 0. secs (0.u,0.s) +Chars 2783 - 2809 [repeat~rewrite~bind_ret_l.] 0.049 secs (0.049u,0.s) +Chars 2810 - 2815 [etau.] 0.002 secs (0.002u,0.s) +Chars 2820 - 2821 [-] 0. secs (0.u,0.s) +Chars 2822 - 2833 [destruct~e.] 0. secs (0.u,0.s) +Chars 2872 - 2873 [+] 0. secs (0.u,0.s) +Chars 2874 - 2885 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2886 - 2891 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 2892 - 2911 [rewrite~2!bind_map.] 0.041 secs (0.041u,0.s) +Chars 2912 - 2933 [rewrite~2!bind_ret_r.] 0.028 secs (0.027u,0.s) +Chars 2941 - 2946 [step.] 0.006 secs (0.006u,0.s) +Chars 2947 - 2956 [apply~Hk.] 0. secs (0.u,0.s) +Chars 2962 - 2963 [+] 0. secs (0.u,0.s) +Chars 2964 - 2969 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 2970 - 2975 [evis.] 0.002 secs (0.002u,0.s) +Chars 2976 - 3007 [do~2~setoid_rewrite~bind_ret_l.] 0.065 secs (0.064u,0.s) +Chars 3016 - 3021 [step.] 0.002 secs (0.002u,0.s) +Chars 3022 - 3027 [etau.] 0.002 secs (0.002u,0.s) +Chars 3031 - 3032 [-] 0. secs (0.u,0.s) +Chars 3033 - 3052 [rewrite~bind_ret_l.] 0.025 secs (0.025u,0.s) +Chars 3053 - 3072 [rewrite~tau_euttge.] 0.014 secs (0.014u,0.s) +Chars 3073 - 3099 [rewrite~unfold_iter_ktree.] 0.025 secs (0.025u,0.s) +Chars 3100 - 3119 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 3122 - 3123 [-] 0. secs (0.u,0.s) +Chars 3124 - 3143 [rewrite~bind_ret_l.] 0.027 secs (0.027u,0.s) +Chars 3144 - 3163 [rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) +Chars 3164 - 3190 [rewrite~unfold_iter_ktree.] 0.028 secs (0.028u,0.s) +Chars 3191 - 3210 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 3211 - 3215 [Qed.] 0.029 secs (0.029u,0.s) +Chars 3218 - 3357 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 3358 - 3364 [Proof.] 0. secs (0.u,0.s) +Chars 3367 - 3383 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 3384 - 3408 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 3409 - 3419 [revert~t1.] 0. secs (0.u,0.s) +Chars 3422 - 3434 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3435 - 3442 [intros.] 0. secs (0.u,0.s) +Chars 3443 - 3463 [unfold~throw_prefix.] 0. secs (0.u,0.s) +Chars 3464 - 3497 [setoid_rewrite~unfold_iter_ktree.] 0.055 secs (0.054u,0.s) +Chars 3500 - 3511 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 3512 - 3519 [inv~Ht.] 0.218 secs (0.217u,0.001s) +Chars 3522 - 3523 [-] 0. secs (0.u,0.s) +Chars 3524 - 3550 [repeat~rewrite~bind_ret_l.] 0.055 secs (0.055u,0.s) +Chars 3551 - 3556 [bcbn.] 0. secs (0.u,0.s) +Chars 3557 - 3562 [eret.] 0.001 secs (0.001u,0.s) +Chars 3565 - 3566 [-] 0. secs (0.u,0.s) +Chars 3567 - 3578 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 3583 - 3584 [+] 0. secs (0.u,0.s) +Chars 3585 - 3596 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 3597 - 3602 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3603 - 3608 [eret.] 0. secs (0.u,0.s) +Chars 3613 - 3614 [+] 0. secs (0.u,0.s) +Chars 3615 - 3639 [setoid_rewrite~bind_map.] 0.042 secs (0.042u,0.s) +Chars 3640 - 3663 [rewrite~2!bind_trigger.] 0.05 secs (0.049u,0.s) +Chars 3670 - 3675 [evis.] 0.001 secs (0.001u,0.s) +Chars 3676 - 3681 [step.] 0.002 secs (0.002u,0.s) +Chars 3682 - 3687 [bcbn.] 0. secs (0.u,0.s) +Chars 3688 - 3693 [etau.] 0.001 secs (0.001u,0.s) +Chars 3695 - 3699 [Qed.] 0.033 secs (0.033u,0.s) +Chars 3701 - 3807 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 3808 - 3814 [Proof.] 0. secs (0.u,0.s) +Chars 3817 - 3833 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 3834 - 3858 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 3859 - 3869 [revert~t1.] 0. secs (0.u,0.s) +Chars 3872 - 3884 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3885 - 3892 [intros.] 0. secs (0.u,0.s) +Chars 3893 - 3913 [unfold~throw_prefix.] 0. secs (0.u,0.s) +Chars 3914 - 3947 [setoid_rewrite~unfold_iter_ktree.] 0.055 secs (0.054u,0.s) +Chars 3950 - 3961 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 3962 - 4007 [hinduction~Ht~before~c;~intros...] 0.015 secs (0.015u,0.s) +Chars 4010 - 4011 [-] 0. secs (0.u,0.s) +Chars 4012 - 4038 [repeat~rewrite~bind_ret_l.] 0.056 secs (0.056u,0.s) +Chars 4039 - 4044 [bcbn.] 0. secs (0.u,0.s) +Chars 4045 - 4050 [eret.] 0.001 secs (0.001u,0.s) +Chars 4053 - 4054 [-] 0. secs (0.u,0.s) +Chars 4055 - 4066 [destruct~e.] 0. secs (0.u,0.s) +Chars 4071 - 4072 [+] 0. secs (0.u,0.s) +Chars 4073 - 4084 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 4085 - 4090 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 4091 - 4096 [eret.] 0. secs (0.u,0.s) +Chars 4101 - 4102 [+] 0. secs (0.u,0.s) +Chars 4103 - 4127 [setoid_rewrite~bind_map.] 0.043 secs (0.042u,0.s) +Chars 4128 - 4151 [rewrite~2!bind_trigger.] 0.049 secs (0.049u,0.s) +Chars 4158 - 4163 [evis.] 0.001 secs (0.001u,0.s) +Chars 4164 - 4169 [step.] 0.002 secs (0.002u,0.s) +Chars 4170 - 4175 [bcbn.] 0. secs (0.u,0.s) +Chars 4176 - 4181 [etau.] 0.002 secs (0.002u,0.s) +Chars 4185 - 4186 [-] 0. secs (0.u,0.s) +Chars 4187 - 4192 [bcbn.] 0.035 secs (0.034u,0.s) +Chars 4193 - 4212 [rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) +Chars 4213 - 4239 [rewrite~unfold_iter_ktree.] 0.029 secs (0.029u,0.s) +Chars 4240 - 4259 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 4262 - 4263 [-] 0. secs (0.u,0.s) +Chars 4264 - 4269 [bcbn.] 0.033 secs (0.033u,0.s) +Chars 4270 - 4289 [rewrite~tau_euttge.] 0.017 secs (0.017u,0.s) +Chars 4290 - 4316 [rewrite~unfold_iter_ktree.] 0.031 secs (0.031u,0.s) +Chars 4317 - 4336 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 4337 - 4341 [Qed.] 0.03 secs (0.03u,0.s) +Chars 4343 - 4462 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 4463 - 4469 [Proof.] 0. secs (0.u,0.s) +Chars 4472 - 4559 [destruct~b;~~[~apply~proper_eu...] 0. secs (0.u,0.s) +Chars 4560 - 4564 [Qed.] 0. secs (0.u,0.s) +Chars 4566 - 4670 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) +Chars 4671 - 4677 [Proof.] 0. secs (0.u,0.s) +Chars 4680 - 4687 [intros.] 0. secs (0.u,0.s) +Chars 4688 - 4721 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) +Chars 4722 - 4726 [cbn.] 0. secs (0.u,0.s) +Chars 4727 - 4746 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 4747 - 4759 [reflexivity.] 0. secs (0.u,0.s) +Chars 4760 - 4764 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4766 - 4896 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) +Chars 4897 - 4903 [Proof.] 0. secs (0.u,0.s) +Chars 4906 - 4913 [intros.] 0. secs (0.u,0.s) +Chars 4914 - 4952 [setoid_rewrite~unfold_iter_ktr...] 0.009 secs (0.009u,0.s) +Chars 4953 - 4957 [cbn.] 0. secs (0.u,0.s) +Chars 4958 - 4977 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 4980 - 4992 [reflexivity.] 0. secs (0.u,0.s) +Chars 4993 - 4997 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4999 - 5126 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) +Chars 5127 - 5133 [Proof.] 0. secs (0.u,0.s) +Chars 5136 - 5143 [intros.] 0. secs (0.u,0.s) +Chars 5144 - 5177 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) +Chars 5178 - 5182 [cbn.] 0. secs (0.u,0.s) +Chars 5183 - 5202 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 5203 - 5215 [reflexivity.] 0. secs (0.u,0.s) +Chars 5216 - 5220 [Qed.] 0.002 secs (0.002u,0.s) +Chars 5222 - 5404 [Definition~throw_prefix_ev~:~~...] 0. secs (0.u,0.s) +Chars 5405 - 5411 [Proof.] 0. secs (0.u,0.s) +Chars 5414 - 5421 [intros.] 0. secs (0.u,0.s) +Chars 5422 - 5460 [setoid_rewrite~unfold_iter_ktr...] 0.012 secs (0.012u,0.s) +Chars 5461 - 5465 [cbn.] 0. secs (0.u,0.s) +Chars 5466 - 5483 [rewrite~bind_map.] 0.007 secs (0.007u,0.s) +Chars 5486 - 5507 [rewrite~bind_trigger.] 0.007 secs (0.007u,0.s) +Chars 5508 - 5523 [apply~eqit_Vis.] 0. secs (0.u,0.s) +Chars 5524 - 5531 [intros.] 0. secs (0.u,0.s) +Chars 5532 - 5544 [reflexivity.] 0. secs (0.u,0.s) +Chars 5545 - 5549 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5551 - 5709 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) +Chars 5710 - 5716 [Proof.] 0. secs (0.u,0.s) +Chars 5720 - 5742 [intros~E~Err~R~kcatch.] 0. secs (0.u,0.s) +Chars 5743 - 5755 [coinduction.] 0.002 secs (0.001u,0.s) +Chars 5756 - 5763 [intros.] 0. secs (0.u,0.s) +Chars 5766 - 5839 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) +Chars 5842 - 5843 [-] 0. secs (0.u,0.s) +Chars 5844 - 5856 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 5857 - 5882 [rewrite~throw_prefix_ret.] 0.015 secs (0.014u,0.s) +Chars 5883 - 5905 [rewrite~try_catch_ret.] 0.014 secs (0.014u,0.s) +Chars 5906 - 5918 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 5921 - 5922 [-] 0. secs (0.u,0.s) +Chars 5923 - 5935 [rewrite~Heq.] 0.015 secs (0.014u,0.s) +Chars 5936 - 5961 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 5962 - 5984 [rewrite~try_catch_tau.] 0.013 secs (0.013u,0.s) +Chars 5985 - 5990 [etau.] 0. secs (0.u,0.s) +Chars 5993 - 5994 [-] 0. secs (0.u,0.s) +Chars 5995 - 6006 [destruct~e.] 0. secs (0.u,0.s) +Chars 6010 - 6011 [+] 0. secs (0.u,0.s) +Chars 6012 - 6023 [destruct~e.] 0. secs (0.u,0.s) +Chars 6024 - 6036 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 6037 - 6062 [rewrite~throw_prefix_exc.] 0.014 secs (0.014u,0.s) +Chars 6063 - 6085 [rewrite~try_catch_ret.] 0.014 secs (0.014u,0.s) +Chars 6086 - 6098 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6102 - 6103 [+] 0. secs (0.u,0.s) +Chars 6104 - 6116 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 6117 - 6141 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) +Chars 6142 - 6163 [rewrite~try_catch_ev.] 0.017 secs (0.016u,0.s) +Chars 6164 - 6169 [evis.] 0.001 secs (0.001u,0.s) +Chars 6175 - 6197 [rewrite~try_catch_tau.] 0.012 secs (0.012u,0.s) +Chars 6198 - 6224 [repeat~rewrite~tau_euttge.] 0.012 secs (0.012u,0.s) +Chars 6225 - 6235 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6236 - 6240 [Qed.] 0.012 secs (0.012u,0.s) +Chars 6242 - 6621 [Lemma~throw_prefix_bind_decomp...] 0.004 secs (0.004u,0.s) +Chars 6622 - 6628 [Proof.] 0. secs (0.u,0.s) +Chars 6631 - 6646 [intros~E~Err~R.] 0. secs (0.u,0.s) +Chars 6647 - 6659 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 6660 - 6667 [intros.] 0. secs (0.u,0.s) +Chars 6670 - 6740 [destruct~(observe~t)~eqn:Heq;~...] 0.001 secs (0.001u,0.s) +Chars 6743 - 6744 [-] 0. secs (0.u,0.s) +Chars 6745 - 6757 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 6758 - 6783 [rewrite~throw_prefix_ret.] 0.017 secs (0.017u,0.s) +Chars 6784 - 6803 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 6804 - 6809 [eret.] 0. secs (0.u,0.s) +Chars 6813 - 6814 [-] 0. secs (0.u,0.s) +Chars 6815 - 6827 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 6828 - 6853 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) +Chars 6854 - 6871 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 6872 - 6877 [etau.] 0. secs (0.u,0.s) +Chars 6880 - 6881 [-] 0. secs (0.u,0.s) +Chars 6882 - 6893 [destruct~e.] 0. secs (0.u,0.s) +Chars 6898 - 6899 [+] 0. secs (0.u,0.s) +Chars 6900 - 6912 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 6913 - 6924 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 6925 - 6950 [rewrite~throw_prefix_exc.] 0.017 secs (0.016u,0.s) +Chars 6951 - 6970 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 6971 - 6976 [bcbn.] 0. secs (0.u,0.s) +Chars 6977 - 6982 [evis.] 0.001 secs (0.001u,0.s) +Chars 6990 - 6995 [easy.] 0.003 secs (0.003u,0.s) +Chars 7001 - 7002 [+] 0. secs (0.u,0.s) +Chars 7003 - 7015 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 7016 - 7040 [rewrite~throw_prefix_ev.] 0.018 secs (0.018u,0.s) +Chars 7041 - 7058 [rewrite~bind_vis.] 0.017 secs (0.016u,0.s) +Chars 7059 - 7064 [evis.] 0.001 secs (0.001u,0.s) +Chars 7072 - 7079 [intros.] 0. secs (0.u,0.s) +Chars 7080 - 7099 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) +Chars 7100 - 7110 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7112 - 7116 [Qed.] 0.014 secs (0.014u,0.s) +Chars 7118 - 7617 [Lemma~try_catch_to_throw_prefi...] 0. secs (0.u,0.s) +Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) +Chars 7627 - 7634 [intros.] 0. secs (0.u,0.s) +Chars 7635 - 7647 [revert~ttry.] 0. secs (0.u,0.s) +Chars 7648 - 7660 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7664 - 7671 [intros.] 0. secs (0.u,0.s) +Chars 7672 - 7745 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) +Chars 7748 - 7749 [-] 0. secs (0.u,0.s) +Chars 7750 - 7762 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 7763 - 7785 [rewrite~try_catch_ret.] 0.014 secs (0.013u,0.s) +Chars 7786 - 7811 [rewrite~throw_prefix_ret.] 0.017 secs (0.016u,0.s) +Chars 7812 - 7831 [rewrite~bind_ret_l.] 0.018 secs (0.016u,0.s) +Chars 7837 - 7842 [eret.] 0. secs (0.u,0.s) +Chars 7846 - 7847 [-] 0. secs (0.u,0.s) +Chars 7848 - 7860 [rewrite~Heq.] 0.016 secs (0.016u,0.s) +Chars 7861 - 7883 [rewrite~try_catch_tau.] 0.014 secs (0.014u,0.s) +Chars 7884 - 7909 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) +Chars 7910 - 7927 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 7932 - 7937 [etau.] 0. secs (0.u,0.s) +Chars 7941 - 7942 [-] 0. secs (0.u,0.s) +Chars 7943 - 7954 [destruct~e.] 0. secs (0.u,0.s) +Chars 7959 - 7960 [+] 0. secs (0.u,0.s) +Chars 7961 - 7972 [destruct~e.] 0. secs (0.u,0.s) +Chars 7973 - 7985 [rewrite~Heq.] 0.016 secs (0.015u,0.s) +Chars 7986 - 8008 [rewrite~try_catch_exc.] 0.014 secs (0.014u,0.s) +Chars 8009 - 8034 [rewrite~throw_prefix_exc.] 0.016 secs (0.016u,0.s) +Chars 8035 - 8054 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 8061 - 8073 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8079 - 8080 [+] 0. secs (0.u,0.s) +Chars 8081 - 8093 [rewrite~Heq.] 0.016 secs (0.016u,0.s) +Chars 8094 - 8115 [rewrite~try_catch_ev.] 0.014 secs (0.014u,0.s) +Chars 8116 - 8140 [rewrite~throw_prefix_ev.] 0.017 secs (0.017u,0.s) +Chars 8141 - 8158 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) +Chars 8159 - 8185 [setoid_rewrite~tau_euttge.] 0.017 secs (0.017u,0.s) +Chars 8192 - 8197 [evis.] 0. secs (0.u,0.s) +Chars 8199 - 8203 [Qed.] 0.013 secs (0.013u,0.s) +Chars 8205 - 8472 [Lemma~throw_prefix_of_try_catc...] 0. secs (0.u,0.s) +Chars 8473 - 8479 [Proof.] 0. secs (0.u,0.s) +Chars 8482 - 8489 [intros.] 0. secs (0.u,0.s) +Chars 8490 - 8502 [revert~ttry.] 0. secs (0.u,0.s) +Chars 8503 - 8515 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 8519 - 8526 [intros.] 0. secs (0.u,0.s) +Chars 8527 - 8600 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) +Chars 8603 - 8604 [-] 0. secs (0.u,0.s) +Chars 8605 - 8617 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 8618 - 8637 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 8638 - 8667 [repeat~rewrite~try_catch_ret.] 0.031 secs (0.031u,0.s) +Chars 8668 - 8693 [rewrite~throw_prefix_ret.] 0.014 secs (0.014u,0.s) +Chars 8698 - 8703 [eret.] 0. secs (0.u,0.s) +Chars 8707 - 8708 [-] 0. secs (0.u,0.s) +Chars 8709 - 8721 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 8722 - 8739 [rewrite~bind_tau.] 0.017 secs (0.017u,0.s) +Chars 8740 - 8769 [repeat~rewrite~try_catch_tau.] 0.033 secs (0.033u,0.s) +Chars 8770 - 8795 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 8800 - 8805 [etau.] 0. secs (0.u,0.s) +Chars 8809 - 8810 [-] 0. secs (0.u,0.s) +Chars 8811 - 8822 [destruct~e.] 0. secs (0.u,0.s) +Chars 8827 - 8828 [+] 0. secs (0.u,0.s) +Chars 8829 - 8840 [destruct~e.] 0. secs (0.u,0.s) +Chars 8841 - 8853 [rewrite~Heq.] 0.018 secs (0.018u,0.s) +Chars 8854 - 8871 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) +Chars 8872 - 8901 [repeat~rewrite~try_catch_exc.] 0.032 secs (0.031u,0.s) +Chars 8908 - 8920 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8926 - 8927 [+] 0. secs (0.u,0.s) +Chars 8928 - 8940 [rewrite~Heq.] 0.018 secs (0.018u,0.s) +Chars 8941 - 8958 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) +Chars 8959 - 8987 [repeat~rewrite~try_catch_ev.] 0.034 secs (0.034u,0.s) +Chars 8988 - 9012 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) +Chars 9019 - 9051 [setoid_rewrite~throw_prefix_tau.] 0.084 secs (0.084u,0.s) +Chars 9058 - 9091 [repeat~setoid_rewrite~tau_euttge.] 0.048 secs (0.048u,0.s) +Chars 9098 - 9103 [evis.] 0. secs (0.u,0.s) +Chars 9105 - 9109 [Qed.] 0.017 secs (0.017u,0.s) +Chars 9111 - 9475 [Lemma~throw_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) +Chars 9476 - 9482 [Proof.] 0. secs (0.u,0.s) +Chars 9485 - 9492 [intros.] 0. secs (0.u,0.s) +Chars 9493 - 9502 [revert~t.] 0. secs (0.u,0.s) +Chars 9503 - 9515 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 9519 - 9526 [intros.] 0. secs (0.u,0.s) +Chars 9527 - 9597 [destruct~(observe~t)~eqn:Heq;~...] 0.001 secs (0.001u,0.s) +Chars 9600 - 9601 [-] 0. secs (0.u,0.s) +Chars 9602 - 9614 [rewrite~Heq.] 0.021 secs (0.021u,0.s) +Chars 9615 - 9640 [rewrite~throw_prefix_ret.] 0.019 secs (0.019u,0.s) +Chars 9641 - 9667 [repeat~rewrite~bind_ret_l.] 0.035 secs (0.034u,0.s) +Chars 9672 - 9684 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9688 - 9689 [-] 0. secs (0.u,0.s) +Chars 9690 - 9702 [rewrite~Heq.] 0.018 secs (0.018u,0.s) +Chars 9703 - 9728 [rewrite~throw_prefix_tau.] 0.019 secs (0.019u,0.s) +Chars 9729 - 9753 [repeat~rewrite~bind_tau.] 0.035 secs (0.035u,0.s) +Chars 9754 - 9779 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 9784 - 9789 [etau.] 0. secs (0.u,0.s) +Chars 9793 - 9794 [-] 0. secs (0.u,0.s) +Chars 9795 - 9806 [destruct~e.] 0. secs (0.u,0.s) +Chars 9811 - 9812 [+] 0. secs (0.u,0.s) +Chars 9813 - 9824 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 9825 - 9837 [rewrite~Heq.] 0.018 secs (0.018u,0.s) +Chars 9838 - 9863 [rewrite~throw_prefix_exc.] 0.019 secs (0.019u,0.s) +Chars 9864 - 9881 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) +Chars 9882 - 9907 [rewrite~throw_prefix_exc.] 0.015 secs (0.015u,0.s) +Chars 9914 - 9933 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 9934 - 9939 [eret.] 0. secs (0.u,0.s) +Chars 9945 - 9946 [+] 0. secs (0.u,0.s) +Chars 9947 - 9959 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 9960 - 9984 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) +Chars 9985 - 10009 [repeat~rewrite~bind_vis.] 0.036 secs (0.036u,0.s) +Chars 10010 - 10034 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) +Chars 10041 - 10046 [evis.] 0.001 secs (0.001u,0.s) +Chars 10047 - 10064 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 10065 - 10070 [step.] 0.002 secs (0.002u,0.s) +Chars 10071 - 10076 [taus.] 0. secs (0.u,0.s) +Chars 10077 - 10087 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10090 - 10094 [Qed.] 0.018 secs (0.018u,0.s) +Chars 10096 - 10694 [Lemma~throw_prefix_iter~:~~~fo...] 0.007 secs (0.007u,0.s) +Chars 10695 - 10701 [Proof.] 0. secs (0.u,0.s) +Chars 10704 - 10721 [intros~E~Err~A~B.] 0. secs (0.u,0.s) +Chars 10722 - 10734 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 10735 - 10742 [intros.] 0. secs (0.u,0.s) +Chars 10745 - 10785 [setoid_rewrite~unfold_iter_ktr...] 0.051 secs (0.05u,0.s) +Chars 10788 - 10869 [destruct~(observe~(body~init))...] 0.003 secs (0.003u,0.s) +Chars 10872 - 10873 [-] 0. secs (0.u,0.s) +Chars 10874 - 10891 [rewrite~Heq~~at~1.] 0.02 secs (0.02u,0.s) +Chars 10892 - 10911 [rewrite~bind_ret_l.] 0.02 secs (0.02u,0.s) +Chars 10912 - 10937 [setoid_rewrite~bind_bind.] 0.042 secs (0.042u,0.s) +Chars 10943 - 10960 [rewrite~Heq~~at~1.] 0.024 secs (0.024u,0.s) +Chars 10961 - 10986 [rewrite~throw_prefix_ret.] 0.024 secs (0.024u,0.s) +Chars 10987 - 11006 [rewrite~bind_ret_l.] 0.023 secs (0.022u,0.s) +Chars 11011 - 11042 [destruct~r;~rewrite~bind_ret_l.] 0.042 secs (0.042u,0.s) +Chars 11047 - 11048 [+] 0. secs (0.u,0.s) +Chars 11049 - 11074 [rewrite~throw_prefix_tau.] 0.017 secs (0.017u,0.s) +Chars 11075 - 11080 [etau.] 0. secs (0.u,0.s) +Chars 11086 - 11087 [+] 0. secs (0.u,0.s) +Chars 11088 - 11113 [rewrite~throw_prefix_ret.] 0.015 secs (0.014u,0.s) +Chars 11114 - 11119 [eret.] 0. secs (0.u,0.s) +Chars 11123 - 11124 [-] 0. secs (0.u,0.s) +Chars 11125 - 11142 [rewrite~Heq~~at~1.] 0.021 secs (0.021u,0.s) +Chars 11143 - 11168 [setoid_rewrite~bind_bind.] 0.044 secs (0.044u,0.s) +Chars 11169 - 11186 [rewrite~Heq~~at~1.] 0.024 secs (0.024u,0.s) +Chars 11191 - 11216 [rewrite~throw_prefix_tau.] 0.025 secs (0.025u,0.s) +Chars 11217 - 11241 [repeat~rewrite~bind_tau.] 0.05 secs (0.049u,0.s) +Chars 11242 - 11267 [rewrite~throw_prefix_tau.] 0.02 secs (0.02u,0.s) +Chars 11272 - 11277 [etau.] 0.002 secs (0.002u,0.s) +Chars 11278 - 11316 [setoid_rewrite~throw_prefix_bi...] 0.046 secs (0.046u,0.s) +Chars 11317 - 11338 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 11344 - 11376 [destruct~u2~as~[[a|~b]|~e].] 0. secs (0.u,0.s) +Chars 11381 - 11382 [+] 0. secs (0.u,0.s) +Chars 11383 - 11402 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 11403 - 11428 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 11429 - 11440 [step;~etau.] 0.002 secs (0.002u,0.s) +Chars 11446 - 11447 [+] 0. secs (0.u,0.s) +Chars 11448 - 11467 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 11468 - 11493 [rewrite~throw_prefix_ret.] 0.012 secs (0.012u,0.s) +Chars 11494 - 11505 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 11511 - 11512 [+] 0. secs (0.u,0.s) +Chars 11513 - 11532 [rewrite~bind_ret_l.] 0.016 secs (0.016u,0.s) +Chars 11533 - 11544 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 11548 - 11549 [-] 0. secs (0.u,0.s) +Chars 11550 - 11567 [rewrite~Heq~~at~1.] 0.021 secs (0.021u,0.s) +Chars 11568 - 11593 [setoid_rewrite~bind_bind.] 0.045 secs (0.044u,0.s) +Chars 11594 - 11611 [rewrite~Heq~~at~1.] 0.024 secs (0.024u,0.s) +Chars 11616 - 11627 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 11632 - 11633 [+] 0. secs (0.u,0.s) +Chars 11634 - 11645 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 11646 - 11663 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) +Chars 11664 - 11689 [rewrite~throw_prefix_exc.] 0.02 secs (0.02u,0.s) +Chars 11696 - 11728 [setoid_rewrite~throw_prefix_exc.] 0.077 secs (0.076u,0.s) +Chars 11729 - 11755 [repeat~rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) +Chars 11762 - 11767 [eret.] 0. secs (0.u,0.s) +Chars 11773 - 11774 [+] 0. secs (0.u,0.s) +Chars 11775 - 11792 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) +Chars 11793 - 11817 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) +Chars 11818 - 11849 [setoid_rewrite~throw_prefix_ev.] 0.091 secs (0.091u,0.s) +Chars 11856 - 11873 [rewrite~bind_vis.] 0.024 secs (0.024u,0.s) +Chars 11874 - 11898 [setoid_rewrite~bind_tau.] 0.051 secs (0.05u,0.s) +Chars 11899 - 11904 [evis.] 0.001 secs (0.001u,0.s) +Chars 11905 - 11916 [step;~etau.] 0.004 secs (0.004u,0.s) +Chars 11924 - 11950 [rewrite~throw_prefix_bind.] 0.015 secs (0.015u,0.s) +Chars 11951 - 11972 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 11980 - 12013 [destruct~u2~as~[[a|~b]|~e'].] 0. secs (0.u,0.s) +Chars 12020 - 12021 [*] 0. secs (0.u,0.s) +Chars 12022 - 12041 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 12042 - 12067 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 12068 - 12079 [step;~etau.] 0.002 secs (0.002u,0.s) +Chars 12087 - 12088 [*] 0. secs (0.u,0.s) +Chars 12089 - 12108 [rewrite~bind_ret_l.] 0.017 secs (0.016u,0.s) +Chars 12109 - 12134 [rewrite~throw_prefix_ret.] 0.012 secs (0.012u,0.s) +Chars 12143 - 12154 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 12162 - 12163 [*] 0. secs (0.u,0.s) +Chars 12164 - 12183 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 12184 - 12195 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 12197 - 12201 [Qed.] 0.063 secs (0.063u,0.s) diff --git a/theories/Events/FailFacts.v.timing b/theories/Events/FailFacts.v.timing new file mode 100644 index 00000000..652ea903 --- /dev/null +++ b/theories/Events/FailFacts.v.timing @@ -0,0 +1,200 @@ +Chars 58 - 100 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.002s) +Chars 102 - 430 [From~ITree~Require~Import~Basi...] 0.061 secs (0.051u,0.009s) +Chars 432 - 454 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 455 - 489 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 490 - 519 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 521 - 535 [Import~Monads.] 0. secs (0.u,0.s) +Chars 537 - 551 [Section~FailT.] 0. secs (0.u,0.s) +Chars 555 - 641 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) +Chars 645 - 724 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) +Chars 728 - 929 [#[global]~Instance~failT_fun~:...] 0.002 secs (0.002u,0.s) +Chars 933 - 1179 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) +Chars 1183 - 1815 [#[global]~Instance~failT_iter~...] 0. secs (0.u,0.s) +Chars 1817 - 1827 [End~FailT.] 0. secs (0.u,0.s) +Chars 1829 - 1847 [Section~FailTLaws.] 0. secs (0.u,0.s) +Chars 1851 - 1942 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) +Chars 1946 - 2017 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) +Chars 2020 - 2026 [Proof.] 0. secs (0.u,0.s) +Chars 2031 - 2052 [apply~Reflexive_eqit.] 0. secs (0.u,0.s) +Chars 2057 - 2073 [intros~[];~auto.] 0. secs (0.u,0.s) +Chars 2076 - 2080 [Qed.] 0. secs (0.u,0.s) +Chars 2084 - 2155 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) +Chars 2158 - 2164 [Proof.] 0. secs (0.u,0.s) +Chars 2169 - 2190 [apply~Symmetric_eqit.] 0. secs (0.u,0.s) +Chars 2195 - 2214 [intros~[]~[];~auto.] 0. secs (0.u,0.s) +Chars 2217 - 2221 [Qed.] 0. secs (0.u,0.s) +Chars 2225 - 2298 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 2301 - 2307 [Proof.] 0. secs (0.u,0.s) +Chars 2312 - 2334 [apply~Transitive_eqit.] 0. secs (0.u,0.s) +Chars 2339 - 2394 [intros~[]~[]~[]~?~?;~subst;~cb...] 0.001 secs (0.001u,0.s) +Chars 2397 - 2401 [Qed.] 0. secs (0.u,0.s) +Chars 2405 - 2480 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 2483 - 2489 [Proof.] 0. secs (0.u,0.s) +Chars 2494 - 2519 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2522 - 2526 [Qed.] 0. secs (0.u,0.s) +Chars 2530 - 2597 [#[global]~Instance~MonadLaws_f...] 0. secs (0.u,0.s) +Chars 2600 - 2606 [Proof.] 0. secs (0.u,0.s) +Chars 2611 - 2622 [split;~cbn.] 0. secs (0.u,0.s) +Chars 2627 - 2628 [-] 0. secs (0.u,0.s) +Chars 2629 - 2674 [cbn;~intros;~rewrite~bind_ret_...] 0.001 secs (0.001u,0.s) +Chars 2679 - 2680 [-] 0. secs (0.u,0.s) +Chars 2681 - 2693 [cbn;~intros.] 0. secs (0.u,0.s) +Chars 2700 - 2731 [rewrite~<-~(bind_ret_r~x)~~at~2.] 0.001 secs (0.001u,0.s) +Chars 2738 - 2782 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) +Chars 2787 - 2788 [-] 0. secs (0.u,0.s) +Chars 2789 - 2820 [intros;~cbn;~rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 2827 - 2858 [eapply~eutt_eq_bind;~intros~[].] 0. secs (0.u,0.s) +Chars 2866 - 2867 [+] 0. secs (0.u,0.s) +Chars 2868 - 2912 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) +Chars 2920 - 2921 [+] 0. secs (0.u,0.s) +Chars 2922 - 2954 [rewrite~bind_ret_l;~reflexivity.] 0. secs (0.u,0.s) +Chars 2959 - 2960 [-] 0. secs (0.u,0.s) +Chars 2961 - 2979 [repeat~intro;~cbn.] 0. secs (0.u,0.s) +Chars 2986 - 3015 [eapply~eutt_bind_eutt;~eauto.] 0.029 secs (0.029u,0.s) +Chars 3022 - 3075 [intros~[]~[]~REL;~cbn~in~*;~su...] 0. secs (0.u,0.s) +Chars 3082 - 3083 [+] 0. secs (0.u,0.s) +Chars 3084 - 3093 [apply~H0.] 0. secs (0.u,0.s) +Chars 3100 - 3101 [+] 0. secs (0.u,0.s) +Chars 3102 - 3114 [reflexivity.] 0. secs (0.u,0.s) +Chars 3117 - 3121 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3125 - 3139 [End~FailTLaws.] 0. secs (0.u,0.s) +Chars 3291 - 3455 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.001u,0.s) +Chars 3456 - 3496 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) +Chars 3539 - 3787 [Definition~_interp_fail~{E}~{F...] 0.001 secs (0.001u,0.s) +Chars 3810 - 3948 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) +Chars 3949 - 3955 [Proof.] 0. secs (0.u,0.s) +Chars 3958 - 3984 [unfold~interp_fail,~interp.] 0. secs (0.u,0.s) +Chars 3985 - 4046 [unfold~Basics.iter,~failT_iter...] 0. secs (0.u,0.s) +Chars 4049 - 4069 [rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) +Chars 4070 - 4074 [cbn.] 0. secs (0.u,0.s) +Chars 4077 - 4098 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 4101 - 4175 [cbn;~repeat~(rewrite~?bind_bin...] 0.029 secs (0.025u,0.004s) +Chars 4178 - 4252 [cbn;~repeat~(rewrite~?bind_bin...] 0.024 secs (0.024u,0.s) +Chars 4255 - 4329 [cbn;~repeat~(rewrite~?bind_bin...] 0.032 secs (0.032u,0.s) +Chars 4332 - 4405 [apply~eq_itree_bind~with~(UU~:...] 0.001 secs (0.001u,0.s) +Chars 4409 - 4428 [destruct~x~as~[x|~].] 0. secs (0.u,0.s) +Chars 4431 - 4432 [-] 0. secs (0.u,0.s) +Chars 4433 - 4465 [rewrite~bind_ret_l;~reflexivity.] 0.005 secs (0.005u,0.s) +Chars 4468 - 4469 [-] 0. secs (0.u,0.s) +Chars 4470 - 4502 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) +Chars 4503 - 4507 [Qed.] 0.013 secs (0.013u,0.s) +Chars 4509 - 4683 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 4684 - 4690 [Proof.] 0. secs (0.u,0.s) +Chars 4693 - 4704 [repeat~red.] 0. secs (0.u,0.s) +Chars 4708 - 4720 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4724 - 4738 [intros~s~t~EQ.] 0. secs (0.u,0.s) +Chars 4741 - 4770 [rewrite~2!unfold_interp_fail.] 0.022 secs (0.022u,0.s) +Chars 4773 - 4784 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 4788 - 4848 [destruct~EQ;~cbn;~subst;~try~d...] 0.006 secs (0.006u,0.s) +Chars 4852 - 4859 [to_mon.] 0. secs (0.u,0.s) +Chars 4860 - 4881 [ebind;~intros;~subst.] 0.018 secs (0.018u,0.s) +Chars 4882 - 4894 [destruct~u2.] 0. secs (0.u,0.s) +Chars 4898 - 4903 [etau.] 0.004 secs (0.004u,0.s) +Chars 4904 - 4909 [eret.] 0. secs (0.u,0.s) +Chars 4911 - 4915 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5016 - 5161 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 5162 - 5168 [Proof.] 0. secs (0.u,0.s) +Chars 5171 - 5184 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5187 - 5209 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) +Chars 5212 - 5245 [apply~interp_fail_eq_itree;~auto.] 0. secs (0.u,0.s) +Chars 5246 - 5250 [Qed.] 0. secs (0.u,0.s) +Chars 5252 - 5395 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 5396 - 5402 [Proof.] 0. secs (0.u,0.s) +Chars 5405 - 5416 [repeat~red.] 0. secs (0.u,0.s) +Chars 5420 - 5432 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 5436 - 5450 [intros~s~t~EQ.] 0. secs (0.u,0.s) +Chars 5453 - 5482 [rewrite~2!unfold_interp_fail.] 0.023 secs (0.023u,0.s) +Chars 5485 - 5496 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 5500 - 5552 [induction~EQ;~intros;~bcbn;~su...] 0.028 secs (0.027u,0.s) +Chars 5556 - 5557 [-] 0. secs (0.u,0.s) +Chars 5558 - 5563 [eret.] 0. secs (0.u,0.s) +Chars 5567 - 5568 [-] 0. secs (0.u,0.s) +Chars 5569 - 5574 [etau.] 0.001 secs (0.001u,0.s) +Chars 5578 - 5579 [-] 0. secs (0.u,0.s) +Chars 5580 - 5601 [ebind;~intros;~subst.] 0.017 secs (0.017u,0.s) +Chars 5602 - 5646 [destruct~u2;~econstructor;~eau...] 0.004 secs (0.004u,0.s) +Chars 5651 - 5652 [-] 0. secs (0.u,0.s) +Chars 5653 - 5699 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) +Chars 5702 - 5703 [-] 0. secs (0.u,0.s) +Chars 5704 - 5750 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) +Chars 5751 - 5755 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5856 - 5989 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 5990 - 5996 [Proof.] 0. secs (0.u,0.s) +Chars 5999 - 6012 [repeat~intro.] 0. secs (0.u,0.s) +Chars 6015 - 6037 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) +Chars 6040 - 6069 [apply~interp_fail_eutt;~auto.] 0. secs (0.u,0.s) +Chars 6070 - 6074 [Qed.] 0.001 secs (0.u,0.s) +Chars 6076 - 6211 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) +Chars 6212 - 6218 [Proof.] 0. secs (0.u,0.s) +Chars 6219 - 6246 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) +Chars 6247 - 6259 [reflexivity.] 0. secs (0.u,0.s) +Chars 6260 - 6264 [Qed.] 0. secs (0.u,0.s) +Chars 6266 - 6651 [Lemma~interp_fail_vis~{E~F~:~T...] 0. secs (0.u,0.s) +Chars 6652 - 6658 [Proof.] 0. secs (0.u,0.s) +Chars 6661 - 6688 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) +Chars 6689 - 6701 [reflexivity.] 0. secs (0.u,0.s) +Chars 6702 - 6706 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7143 - 7261 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) +Chars 7262 - 7268 [Proof.] 0. secs (0.u,0.s) +Chars 7271 - 7319 [intros;~rewrite~unfold_interp_...] 0.001 secs (0.001u,0.s) +Chars 7320 - 7324 [Qed.] 0.001 secs (0.u,0.s) +Chars 7326 - 7460 [Lemma~interp_fail_ret~:~~~fora...] 0. secs (0.u,0.s) +Chars 7461 - 7467 [Proof.] 0. secs (0.u,0.s) +Chars 7470 - 7518 [intros;~rewrite~unfold_interp_...] 0.001 secs (0.001u,0.s) +Chars 7519 - 7523 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7525 - 7673 [Lemma~interp_fail_trigger~{E~F...] 0. secs (0.u,0.s) +Chars 7674 - 7680 [Proof.] 0. secs (0.u,0.s) +Chars 7683 - 7704 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 7705 - 7729 [rewrite~interp_fail_vis.] 0.001 secs (0.u,0.s) +Chars 7732 - 7819 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) +Chars 7822 - 7842 [eapply~eutt_eq_bind.] 0. secs (0.u,0.s) +Chars 7845 - 7906 [intros~[];~try~reflexivity;~re...] 0.002 secs (0.002u,0.s) +Chars 7909 - 7921 [reflexivity.] 0. secs (0.u,0.s) +Chars 7922 - 7926 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7942 - 8230 [Lemma~interp_fail_bind~:~~~for...] 0.001 secs (0.001u,0.s) +Chars 8231 - 8237 [Proof.] 0. secs (0.u,0.s) +Chars 8240 - 8276 [intros~X~Y~E~F;~coinduction;~i...] 0.001 secs (0.001u,0.s) +Chars 8279 - 8299 [rewrite~unfold_bind.] 0.013 secs (0.013u,0.s) +Chars 8302 - 8335 [rewrite~(unfold_interp_fail~h~t).] 0.015 secs (0.015u,0.s) +Chars 8338 - 8372 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) +Chars 8375 - 8376 [-] 0. secs (0.u,0.s) +Chars 8377 - 8396 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 8397 - 8409 [reflexivity.] 0. secs (0.u,0.s) +Chars 8413 - 8414 [-] 0. secs (0.u,0.s) +Chars 8415 - 8420 [taus.] 0. secs (0.u,0.s) +Chars 8421 - 8431 [apply~CIH.] 0. secs (0.u,0.s) +Chars 8435 - 8436 [-] 0. secs (0.u,0.s) +Chars 8437 - 8472 [rewrite~bind_bind,~interp_fail...] 0.027 secs (0.026u,0.s) +Chars 8477 - 8498 [ebind;~intros;~subst.] 0.007 secs (0.007u,0.s) +Chars 8505 - 8517 [destruct~u2.] 0. secs (0.u,0.s) +Chars 8523 - 8524 [+] 0. secs (0.u,0.s) +Chars 8525 - 8542 [rewrite~bind_tau.] 0.016 secs (0.016u,0.s) +Chars 8549 - 8554 [etau.] 0. secs (0.u,0.s) +Chars 8560 - 8561 [+] 0. secs (0.u,0.s) +Chars 8562 - 8581 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 8588 - 8606 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 8607 - 8611 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8626 - 8856 [Lemma~interp_failure_bind'~:~~...] 0.001 secs (0.001u,0.s) +Chars 8857 - 8863 [Proof.] 0. secs (0.u,0.s) +Chars 8866 - 8881 [intros~X~Y~E~F.] 0. secs (0.u,0.s) +Chars 8884 - 8888 [cbn.] 0. secs (0.u,0.s) +Chars 8891 - 8911 [coinduction;~intros.] 0.001 secs (0.001u,0.s) +Chars 8916 - 8962 [rewrite~unfold_bind,~(unfold_i...] 0.027 secs (0.026u,0.s) +Chars 8965 - 8999 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) +Chars 9002 - 9003 [-] 0. secs (0.u,0.s) +Chars 9004 - 9023 [rewrite~bind_ret_l.] 0.014 secs (0.013u,0.s) +Chars 9024 - 9036 [reflexivity.] 0.001 secs (0.u,0.s) +Chars 9040 - 9041 [-] 0. secs (0.u,0.s) +Chars 9042 - 9047 [etau.] 0.01 secs (0.01u,0.s) +Chars 9048 - 9058 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9062 - 9063 [-] 0. secs (0.u,0.s) +Chars 9064 - 9099 [rewrite~bind_bind,~interp_fail...] 0.025 secs (0.025u,0.s) +Chars 9104 - 9125 [ebind;~intros;~subst.] 0.007 secs (0.007u,0.s) +Chars 9131 - 9143 [destruct~u2.] 0. secs (0.u,0.s) +Chars 9149 - 9150 [+] 0. secs (0.u,0.s) +Chars 9151 - 9168 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 9175 - 9180 [etau.] 0. secs (0.u,0.s) +Chars 9186 - 9187 [+] 0. secs (0.u,0.s) +Chars 9188 - 9207 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 9214 - 9226 [reflexivity.] 0. secs (0.u,0.s) +Chars 9227 - 9231 [Qed.] 0.011 secs (0.011u,0.s) diff --git a/theories/Events/Map.v.timing b/theories/Events/Map.v.timing new file mode 100644 index 00000000..25e03cd5 --- /dev/null +++ b/theories/Events/Map.v.timing @@ -0,0 +1,25 @@ +Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.031 secs (0.025u,0.006s) +Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) +Chars 145 - 181 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) +Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.083 secs (0.077u,0.005s) +Chars 376 - 410 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 427 - 439 [Section~Map.] 0. secs (0.u,0.s) +Chars 443 - 466 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) +Chars 470 - 599 [Variant~mapE~:~Type~->~Type~:=...] 0. secs (0.u,0.s) +Chars 603 - 679 [Definition~insert~{E}~`{mapE~-...] 0. secs (0.u,0.s) +Chars 682 - 759 [Definition~lookup~{E}~`{mapE~-...] 0. secs (0.u,0.s) +Chars 762 - 833 [Definition~remove~{E}~`{mapE~-...] 0. secs (0.u,0.s) +Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0. secs (0.u,0.s) +Chars 1066 - 1089 [Import~Structures.Maps.] 0. secs (0.u,0.s) +Chars 1093 - 1114 [Context~{map~:~Type}.] 0. secs (0.u,0.s) +Chars 1117 - 1143 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) +Chars 1147 - 1401 [Definition~handle_map~{E}~:~ma...] 0. secs (0.u,0.s) +Chars 1405 - 1522 [Definition~run_map~{E}~:~itree...] 0. secs (0.u,0.s) +Chars 1524 - 1532 [End~Map.] 0. secs (0.u,0.s) +Chars 1534 - 1561 [Arguments~insert~{K~V~E~_}.] 0. secs (0.u,0.s) +Chars 1562 - 1589 [Arguments~lookup~{K~V~E~_}.] 0. secs (0.u,0.s) +Chars 1590 - 1617 [Arguments~remove~{K~V~E~_}.] 0. secs (0.u,0.s) +Chars 1618 - 1649 [Arguments~lookup_def~{K~V~E~_}.] 0. secs (0.u,0.s) +Chars 1650 - 1686 [Arguments~run_map~{K~V~map~M~_...] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefault.v.timing b/theories/Events/MapDefault.v.timing new file mode 100644 index 00000000..5ff14f4e --- /dev/null +++ b/theories/Events/MapDefault.v.timing @@ -0,0 +1,28 @@ +Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.004 secs (0.003u,0.001s) +Chars 183 - 239 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) +Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.039 secs (0.031u,0.007s) +Chars 499 - 533 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 550 - 562 [Section~Map.] 0. secs (0.u,0.s) +Chars 566 - 589 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) +Chars 593 - 728 [Variant~mapE~(d~:~V)~:~Type~->...] 0. secs (0.u,0.s) +Chars 732 - 753 [Arguments~Insert~{d}.] 0. secs (0.u,0.s) +Chars 756 - 780 [Arguments~LookupDef~{d}.] 0. secs (0.u,0.s) +Chars 783 - 804 [Arguments~Remove~{d}.] 0. secs (0.u,0.s) +Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0. secs (0.u,0.s) +Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0.013 secs (0.013u,0.s) +Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0. secs (0.u,0.s) +Chars 1060 - 1083 [Import~Structures.Maps.] 0. secs (0.u,0.s) +Chars 1087 - 1108 [Context~{map~:~Type}.] 0. secs (0.u,0.s) +Chars 1111 - 1137 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) +Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.002 secs (0.002u,0.s) +Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0. secs (0.u,0.s) +Chars 1830 - 1966 [Definition~interp_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) +Chars 2165 - 2273 [Definition~eq_map~(d~:~V)~(m1~...] 0. secs (0.u,0.s) +Chars 2277 - 2285 [End~Map.] 0. secs (0.u,0.s) +Chars 2287 - 2316 [Arguments~insert~{K~V~E~d~_}.] 0. secs (0.u,0.s) +Chars 2317 - 2350 [Arguments~lookup_def~{K~V~E~d~_}.] 0. secs (0.u,0.s) +Chars 2351 - 2380 [Arguments~remove~{K~V~E~d~_}.] 0. secs (0.u,0.s) +Chars 2381 - 2423 [Arguments~interp_map~{K~V~map~...] 0. secs (0.u,0.s) +Chars 2424 - 2455 [Arguments~eq_map~{K~V~map~M~d}.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefaultFacts.v.timing b/theories/Events/MapDefaultFacts.v.timing new file mode 100644 index 00000000..76dbdce7 --- /dev/null +++ b/theories/Events/MapDefaultFacts.v.timing @@ -0,0 +1,210 @@ +Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 137 - 174 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 176 - 220 [From~ExtLib~Require~Import~Cor...] 0.002 secs (0.002u,0.s) +Chars 222 - 263 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) +Chars 265 - 431 [From~ITree~Require~Import~Basi...] 0.16 secs (0.143u,0.016s) +Chars 433 - 467 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 468 - 491 [Import~Structures.Maps.] 0. secs (0.u,0.s) +Chars 508 - 525 [Section~MapFacts.] 0. secs (0.u,0.s) +Chars 529 - 552 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) +Chars 555 - 576 [Context~{map~:~Type}.] 0. secs (0.u,0.s) +Chars 579 - 605 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) +Chars 608 - 634 [Context~{MOk~:~MapOk~eq~M}.] 0. secs (0.u,0.s) +Chars 637 - 666 [Context~{Kdec~:~@RelDec~K~eq}.] 0. secs (0.u,0.s) +Chars 669 - 707 [Context~{KdecOk~:~RelDec_Corre...] 0. secs (0.u,0.s) +Chars 741 - 806 [Lemma~lookup_add_eq~:~forall~k...] 0. secs (0.u,0.s) +Chars 809 - 815 [Proof.] 0. secs (0.u,0.s) +Chars 820 - 827 [intros.] 0. secs (0.u,0.s) +Chars 832 - 875 [rewrite~mapsto_lookup;~apply~m...] 0. secs (0.u,0.s) +Chars 881 - 890 [Unshelve.] 0. secs (0.u,0.s) +Chars 895 - 916 [2:~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 919 - 923 [Qed.] 0. secs (0.u,0.s) +Chars 957 - 1042 [Lemma~lookup_add_neq~:~~~foral...] 0. secs (0.u,0.s) +Chars 1045 - 1051 [Proof.] 0. secs (0.u,0.s) +Chars 1056 - 1063 [intros.] 0. secs (0.u,0.s) +Chars 1068 - 1140 [generalize~(@mapsto_add_neq~_~...] 0. secs (0.u,0.s) +Chars 1145 - 1182 [setoid_rewrite~~<-~mapsto_look...] 0.003 secs (0.002u,0.s) +Chars 1187 - 1226 [destruct~(lookup~k~s)~as~[v'|~...] 0. secs (0.u,0.s) +Chars 1231 - 1232 [-] 0. secs (0.u,0.s) +Chars 1233 - 1251 [specialize~(H~v').] 0. secs (0.u,0.s) +Chars 1258 - 1272 [apply~H;~auto.] 0. secs (0.u,0.s) +Chars 1277 - 1278 [-] 0. secs (0.u,0.s) +Chars 1279 - 1347 [destruct~(lookup~k~(add~k'~v~s...] 0. secs (0.u,0.s) +Chars 1354 - 1372 [specialize~(H~v').] 0. secs (0.u,0.s) +Chars 1379 - 1403 [symmetry;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 1406 - 1410 [Qed.] 0. secs (0.u,0.s) +Chars 1444 - 1513 [Lemma~lookup_remove_eq~:~foral...] 0. secs (0.u,0.s) +Chars 1516 - 1522 [Proof.] 0. secs (0.u,0.s) +Chars 1527 - 1534 [intros.] 0. secs (0.u,0.s) +Chars 1539 - 1617 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) +Chars 1622 - 1650 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) +Chars 1655 - 1695 [exfalso;~eapply~mapsto_remove_...] 0. secs (0.u,0.s) +Chars 1698 - 1702 [Qed.] 0. secs (0.u,0.s) +Chars 1736 - 1827 [Lemma~lookup_remove_neq~:~~~fo...] 0. secs (0.u,0.s) +Chars 1830 - 1836 [Proof.] 0. secs (0.u,0.s) +Chars 1841 - 1848 [intros.] 0. secs (0.u,0.s) +Chars 1853 - 1914 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) +Chars 1919 - 1920 [-] 0. secs (0.u,0.s) +Chars 1921 - 1949 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) +Chars 1956 - 1992 [apply~mapsto_remove_neq~in~EQ;...] 0. secs (0.u,0.s) +Chars 1999 - 2038 [symmetry;~rewrite~mapsto_looku...] 0. secs (0.u,0.s) +Chars 2043 - 2044 [-] 0. secs (0.u,0.s) +Chars 2046 - 2120 [match~goal~with~|~|-~_~=~?x~=>...] 0.022 secs (0.021u,0.001s) +Chars 2128 - 2157 [rewrite~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) +Chars 2165 - 2204 [eapply~mapsto_remove_neq~in~EQ...] 0. secs (0.u,0.s) +Chars 2212 - 2244 [rewrite~<-~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) +Chars 2252 - 2279 [rewrite~EQ~in~EQ';~inv~EQ'.] 0. secs (0.u,0.s) +Chars 2287 - 2296 [Unshelve.] 0. secs (0.u,0.s) +Chars 2304 - 2327 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2330 - 2334 [Qed.] 0. secs (0.u,0.s) +Chars 2338 - 2402 [#[global]~Instance~eq_map_refl...] 0. secs (0.u,0.s) +Chars 2405 - 2411 [Proof.] 0. secs (0.u,0.s) +Chars 2416 - 2420 [red.] 0. secs (0.u,0.s) +Chars 2421 - 2428 [intros.] 0. secs (0.u,0.s) +Chars 2429 - 2443 [unfold~eq_map.] 0. secs (0.u,0.s) +Chars 2444 - 2450 [tauto.] 0. secs (0.u,0.s) +Chars 2453 - 2457 [Qed.] 0. secs (0.u,0.s) +Chars 2465 - 2528 [#[global]~Instance~eq_map_sym~...] 0. secs (0.u,0.s) +Chars 2531 - 2537 [Proof.] 0. secs (0.u,0.s) +Chars 2542 - 2555 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2560 - 2579 [unfold~eq_map~in~H.] 0. secs (0.u,0.s) +Chars 2584 - 2594 [rewrite~H.] 0. secs (0.u,0.s) +Chars 2599 - 2611 [reflexivity.] 0. secs (0.u,0.s) +Chars 2614 - 2618 [Qed.] 0. secs (0.u,0.s) +Chars 2622 - 2688 [#[global]~Instance~eq_map_tran...] 0. secs (0.u,0.s) +Chars 2691 - 2697 [Proof.] 0. secs (0.u,0.s) +Chars 2702 - 2715 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2721 - 2740 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) +Chars 2745 - 2755 [rewrite~H.] 0. secs (0.u,0.s) +Chars 2756 - 2767 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 2768 - 2780 [reflexivity.] 0. secs (0.u,0.s) +Chars 2783 - 2787 [Qed.] 0. secs (0.u,0.s) +Chars 2792 - 2810 [Section~Relations.] 0. secs (0.u,0.s) +Chars 2813 - 2836 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) +Chars 2839 - 2870 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 2874 - 3094 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) +Chars 3098 - 3112 [End~Relations.] 0. secs (0.u,0.s) +Chars 3116 - 3259 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) +Chars 3262 - 3268 [Proof.] 0. secs (0.u,0.s) +Chars 3273 - 3294 [intros~d~s1~s2~k~v~H.] 0. secs (0.u,0.s) +Chars 3299 - 3318 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) +Chars 3323 - 3333 [intros~k'.] 0. secs (0.u,0.s) +Chars 3338 - 3364 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) +Chars 3369 - 3370 [-] 0. secs (0.u,0.s) +Chars 3371 - 3377 [subst.] 0. secs (0.u,0.s) +Chars 3384 - 3411 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) +Chars 3418 - 3455 [rewrite~2!lookup_add_eq;~refle...] 0. secs (0.u,0.s) +Chars 3460 - 3461 [-] 0. secs (0.u,0.s) +Chars 3462 - 3489 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) +Chars 3496 - 3527 [rewrite~2!lookup_add_neq;~auto.] 0. secs (0.u,0.s) +Chars 3530 - 3534 [Qed.] 0. secs (0.u,0.s) +Chars 3544 - 3684 [Lemma~eq_map_remove~:~~~forall...] 0. secs (0.u,0.s) +Chars 3687 - 3693 [Proof.] 0. secs (0.u,0.s) +Chars 3698 - 3717 [intros~d~s1~s2~k~H.] 0. secs (0.u,0.s) +Chars 3722 - 3752 [unfold~eq_map~in~*;~intros~k'.] 0. secs (0.u,0.s) +Chars 3757 - 3779 [unfold~lookup_default.] 0. secs (0.u,0.s) +Chars 3784 - 3810 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) +Chars 3815 - 3816 [-] 0. secs (0.u,0.s) +Chars 3817 - 3857 [subst;~rewrite~2!lookup_remove...] 0. secs (0.u,0.s) +Chars 3862 - 3863 [-] 0. secs (0.u,0.s) +Chars 3864 - 3898 [rewrite~2!lookup_remove_neq;~a...] 0. secs (0.u,0.s) +Chars 3905 - 3913 [apply~H.] 0. secs (0.u,0.s) +Chars 3916 - 3920 [Qed.] 0. secs (0.u,0.s) +Chars 3926 - 4136 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) +Chars 4139 - 4145 [Proof.] 0. secs (0.u,0.s) +Chars 4150 - 4157 [intros.] 0. secs (0.u,0.s) +Chars 4162 - 4223 [destruct~m;~cbn;~red;~apply~eq...] 0.001 secs (0.001u,0.s) +Chars 4228 - 4229 [-] 0. secs (0.u,0.s) +Chars 4230 - 4247 [apply~eq_map_add.] 0. secs (0.u,0.s) +Chars 4248 - 4259 [assumption.] 0. secs (0.u,0.s) +Chars 4264 - 4265 [-] 0. secs (0.u,0.s) +Chars 4266 - 4286 [apply~eq_map_remove.] 0. secs (0.u,0.s) +Chars 4287 - 4298 [assumption.] 0. secs (0.u,0.s) +Chars 4301 - 4305 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4310 - 4423 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) +Chars 4426 - 4432 [Proof.] 0. secs (0.u,0.s) +Chars 4437 - 4450 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4455 - 4461 [subst.] 0. secs (0.u,0.s) +Chars 4466 - 4486 [apply~handle_map_eq.] 0. secs (0.u,0.s) +Chars 4491 - 4502 [assumption.] 0. secs (0.u,0.s) +Chars 4505 - 4509 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4652 - 4766 [Lemma~interp_map_id~d~{E}~{X}~...] 0. secs (0.u,0.s) +Chars 4769 - 4775 [Proof.] 0. secs (0.u,0.s) +Chars 4780 - 4822 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) +Chars 4827 - 4844 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) +Chars 4849 - 4861 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4867 - 4874 [intros.] 0. secs (0.u,0.s) +Chars 4879 - 4914 [repeat~rewrite~unfold_interp_s...] 0.06 secs (0.06u,0.s) +Chars 4915 - 4936 [unfold~_interp_state.] 0. secs (0.u,0.s) +Chars 4941 - 4962 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 4967 - 4968 [-] 0. secs (0.u,0.s) +Chars 4969 - 4974 [eret.] 0. secs (0.u,0.s) +Chars 4980 - 4981 [-] 0. secs (0.u,0.s) +Chars 4982 - 4987 [etau.] 0.001 secs (0.001u,0.s) +Chars 4993 - 4994 [-] 0. secs (0.u,0.s) +Chars 4995 - 5001 [ebind.] 0.01 secs (0.01u,0.s) +Chars 5009 - 5027 [unfold~pure_state.] 0. secs (0.u,0.s) +Chars 5034 - 5045 [destruct~e.] 0. secs (0.u,0.s) +Chars 5052 - 5053 [+] 0. secs (0.u,0.s) +Chars 5054 - 5058 [cbn.] 0. secs (0.u,0.s) +Chars 5059 - 5064 [step.] 0.003 secs (0.003u,0.s) +Chars 5065 - 5090 [now~eapply~handle_map_eq.] 0. secs (0.u,0.s) +Chars 5098 - 5099 [+] 0. secs (0.u,0.s) +Chars 5100 - 5104 [cbn.] 0. secs (0.u,0.s) +Chars 5105 - 5110 [evis.] 0.001 secs (0.001u,0.s) +Chars 5111 - 5122 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 5130 - 5131 [+] 0. secs (0.u,0.s) +Chars 5132 - 5139 [intros.] 0. secs (0.u,0.s) +Chars 5140 - 5152 [destruct~u1.] 0. secs (0.u,0.s) +Chars 5153 - 5165 [destruct~u2.] 0. secs (0.u,0.s) +Chars 5166 - 5170 [cbn.] 0. secs (0.u,0.s) +Chars 5179 - 5224 [destruct~H0~as~[H1~H2];~cbn~in...] 0. secs (0.u,0.s) +Chars 5233 - 5238 [etau.] 0.001 secs (0.001u,0.s) +Chars 5242 - 5246 [Qed.] 0.012 secs (0.012u,0.s) +Chars 5251 - 5401 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) +Chars 5404 - 5410 [Proof.] 0. secs (0.u,0.s) +Chars 5415 - 5449 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) +Chars 5454 - 5467 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5472 - 5494 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) +Chars 5499 - 5511 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5517 - 5524 [intros.] 0. secs (0.u,0.s) +Chars 5529 - 5558 [rewrite~!unfold_interp_state.] 0.029 secs (0.029u,0.s) +Chars 5564 - 5574 [step~in~H.] 0. secs (0.u,0.s) +Chars 5580 - 5596 [revert~s1~s2~H0.] 0. secs (0.u,0.s) +Chars 5601 - 5634 [induction~H;~intros;~subst;~bcbn.] 0.03 secs (0.03u,0.s) +Chars 5640 - 5641 [-] 0. secs (0.u,0.s) +Chars 5642 - 5647 [eret.] 0. secs (0.u,0.s) +Chars 5653 - 5654 [-] 0. secs (0.u,0.s) +Chars 5655 - 5660 [etau.] 0.002 secs (0.002u,0.s) +Chars 5665 - 5666 [-] 0. secs (0.u,0.s) +Chars 5667 - 5673 [ebind.] 0.017 secs (0.017u,0.s) +Chars 5680 - 5681 [+] 0. secs (0.u,0.s) +Chars 5682 - 5695 [unfold~case_.] 0. secs (0.u,0.s) +Chars 5696 - 5724 [unfold~Case_sum1,~case_sum1.] 0. secs (0.u,0.s) +Chars 5733 - 5743 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 5744 - 5755 [destruct~e.] 0. secs (0.u,0.s) +Chars 5764 - 5765 [*] 0. secs (0.u,0.s) +Chars 5766 - 5786 [apply~handle_map_eq.] 0. secs (0.u,0.s) +Chars 5787 - 5798 [assumption.] 0. secs (0.u,0.s) +Chars 5807 - 5808 [*] 0. secs (0.u,0.s) +Chars 5809 - 5827 [unfold~pure_state.] 0. secs (0.u,0.s) +Chars 5828 - 5833 [step.] 0.001 secs (0.001u,0.s) +Chars 5834 - 5839 [evis.] 0.001 secs (0.001u,0.s) +Chars 5840 - 5845 [step.] 0.001 secs (0.001u,0.s) +Chars 5846 - 5851 [eret.] 0. secs (0.u,0.s) +Chars 5859 - 5860 [+] 0. secs (0.u,0.s) +Chars 5861 - 5868 [intros.] 0. secs (0.u,0.s) +Chars 5869 - 5874 [etau.] 0.006 secs (0.006u,0.s) +Chars 5882 - 5888 [inv~H.] 0.017 secs (0.017u,0.s) +Chars 5889 - 5905 [rewrite~snd_rel.] 0. secs (0.u,0.s) +Chars 5906 - 5924 [eapply~CIH;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5925 - 5935 [apply~REL.] 0. secs (0.u,0.s) +Chars 5940 - 5941 [-] 0. secs (0.u,0.s) +Chars 5942 - 5982 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) +Chars 5989 - 6008 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) +Chars 6014 - 6015 [-] 0. secs (0.u,0.s) +Chars 6016 - 6056 [rewrite~tau_euttge,~unfold_int...] 0.019 secs (0.018u,0.s) +Chars 6063 - 6082 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) +Chars 6086 - 6090 [Qed.] 0.016 secs (0.016u,0.s) +Chars 6092 - 6105 [End~MapFacts.] 0.007 secs (0.007u,0.s) diff --git a/theories/Events/Nondeterminism.v.timing b/theories/Events/Nondeterminism.v.timing new file mode 100644 index 00000000..208419bd --- /dev/null +++ b/theories/Events/Nondeterminism.v.timing @@ -0,0 +1,11 @@ +Chars 84 - 107 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 108 - 132 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.031 secs (0.024u,0.006s) +Chars 167 - 188 [Import~ListNotations.] 0. secs (0.u,0.s) +Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.055 secs (0.047u,0.007s) +Chars 374 - 428 [Variant~nondetE~:~Type~->~Prop...] 0. secs (0.u,0.s) +Chars 469 - 592 [Definition~or~{E}~`{nondetE~-<...] 0. secs (0.u,0.s) +Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0. secs (0.u,0.s) +Chars 982 - 1212 [Definition~remove_from~{X}~:~l...] 0.003 secs (0.003u,0.s) +Chars 1347 - 1383 [Variant~no_choice~:~Set~:=~~~~...] 0. secs (0.u,0.s) +Chars 1502 - 1744 [Definition~choose~{E}~`{nondet...] 0.001 secs (0.001u,0.s) diff --git a/theories/Events/Reader.v.timing b/theories/Events/Reader.v.timing new file mode 100644 index 00000000..e8882b16 --- /dev/null +++ b/theories/Events/Reader.v.timing @@ -0,0 +1,14 @@ +Chars 65 - 88 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 89 - 113 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.032 secs (0.025u,0.006s) +Chars 148 - 169 [Import~ListNotations.] 0. secs (0.u,0.s) +Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.055 secs (0.048u,0.007s) +Chars 358 - 373 [Section~Reader.] 0. secs (0.u,0.s) +Chars 375 - 397 [Variable~(Env~:~Type).] 0. secs (0.u,0.s) +Chars 399 - 453 [Variant~readerE~:~Type~->~Prop...] 0. secs (0.u,0.s) +Chars 455 - 521 [Definition~ask~{E}~`{readerE~-...] 0. secs (0.u,0.s) +Chars 523 - 639 [Definition~eval_reader~{E}~:~E...] 0. secs (0.u,0.s) +Chars 641 - 761 [Definition~run_reader~{E}~:~En...] 0. secs (0.u,0.s) +Chars 763 - 774 [End~Reader.] 0. secs (0.u,0.s) +Chars 776 - 800 [Arguments~ask~{Env~E~_}.] 0. secs (0.u,0.s) +Chars 801 - 836 [Arguments~run_reader~{Env~E}~_...] 0. secs (0.u,0.s) diff --git a/theories/Events/State.v.timing b/theories/Events/State.v.timing new file mode 100644 index 00000000..8ce3baf0 --- /dev/null +++ b/theories/Events/State.v.timing @@ -0,0 +1,23 @@ +Chars 81 - 154 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.005s) +Chars 358 - 392 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 394 - 423 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.001 secs (0.001u,0.s) +Chars 758 - 804 [Arguments~interp_state~{E~M~S~...] 0. secs (0.u,0.s) +Chars 806 - 820 [Section~State.] 0. secs (0.u,0.s) +Chars 824 - 844 [Variable~(S~:~Type).] 0. secs (0.u,0.s) +Chars 848 - 927 [Variant~stateE~:~Type~->~Type~...] 0. secs (0.u,0.s) +Chars 931 - 990 [Definition~get~{E}~`{stateE~-<...] 0. secs (0.u,0.s) +Chars 993 - 1060 [Definition~put~{E}~`{stateE~-<...] 0. secs (0.u,0.s) +Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0. secs (0.u,0.s) +Chars 1353 - 1455 [Definition~pure_state~{S}~{E}~...] 0. secs (0.u,0.s) +Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.u,0.s) +Chars 1581 - 1591 [End~State.] 0. secs (0.u,0.s) +Chars 1593 - 1615 [Arguments~get~{S~E~_}.] 0. secs (0.u,0.s) +Chars 1616 - 1638 [Arguments~put~{S~E~_}.] 0. secs (0.u,0.s) +Chars 1639 - 1673 [Arguments~run_state~{S~E}~[_]~...] 0. secs (0.u,0.s) +Chars 1715 - 1733 [Section~eff_hom_e.] 0. secs (0.u,0.s) +Chars 1736 - 1765 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 2030 - 2116 [CoInductive~eff_hom_e~:~Type~:...] 0. secs (0.u,0.s) +Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.002 secs (0.002u,0.s) +Chars 2409 - 2423 [End~eff_hom_e.] 0. secs (0.u,0.s) diff --git a/theories/Events/StateFacts.v.timing b/theories/Events/StateFacts.v.timing new file mode 100644 index 00000000..7070c147 --- /dev/null +++ b/theories/Events/StateFacts.v.timing @@ -0,0 +1,247 @@ +Chars 56 - 109 [From~Stdlib~Require~Import~Pro...] 0.003 secs (0.001u,0.001s) +Chars 112 - 440 [From~ITree~Require~Import~Basi...] 0.061 secs (0.052u,0.009s) +Chars 442 - 464 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 466 - 495 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 497 - 511 [Import~Monads.] 0. secs (0.u,0.s) +Chars 528 - 830 [Definition~_interp_state~{E}~{...] 0.001 secs (0.001u,0.s) +Chars 832 - 1012 [Lemma~unfold_interp_state~{E}~...] 0. secs (0.u,0.s) +Chars 1013 - 1019 [Proof.] 0. secs (0.u,0.s) +Chars 1022 - 1117 [unfold~interp_state,~interp,~B...] 0. secs (0.u,0.s) +Chars 1120 - 1145 [rewrite~unfold_iter;~cbn.] 0.006 secs (0.006u,0.s) +Chars 1148 - 1170 [destruct~observe;~cbn.] 0.001 secs (0.001u,0.s) +Chars 1173 - 1174 [-] 0. secs (0.u,0.s) +Chars 1175 - 1196 [rewrite~2!bind_ret_l.] 0.04 secs (0.04u,0.s) +Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) +Chars 1212 - 1213 [-] 0. secs (0.u,0.s) +Chars 1214 - 1235 [rewrite~2!bind_ret_l.] 0.016 secs (0.015u,0.001s) +Chars 1240 - 1252 [reflexivity.] 0. secs (0.u,0.s) +Chars 1255 - 1256 [-] 0. secs (0.u,0.s) +Chars 1257 - 1290 [rewrite~bind_map,~bind_bind;~cbn.] 0.018 secs (0.015u,0.002s) +Chars 1291 - 1317 [setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) +Chars 1322 - 1351 [apply~eqit_bind;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 1352 - 1356 [Qed.] 0.012 secs (0.012u,0.s) +Chars 1358 - 1535 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) +Chars 1536 - 1542 [Proof.] 0. secs (0.u,0.s) +Chars 1545 - 1560 [revert_until~R.] 0. secs (0.u,0.s) +Chars 1563 - 1575 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1576 - 1600 [intros~h~x~y~H0~x2~_~[].] 0. secs (0.u,0.s) +Chars 1603 - 1632 [rewrite~!unfold_interp_state.] 0.027 secs (0.026u,0.s) +Chars 1635 - 1646 [step~in~H0.] 0. secs (0.u,0.s) +Chars 1650 - 1692 [destruct~H0;~subst;~try~discri...] 0.001 secs (0.001u,0.s) +Chars 1695 - 1696 [-] 0. secs (0.u,0.s) +Chars 1697 - 1709 [reflexivity.] 0. secs (0.u,0.s) +Chars 1713 - 1714 [-] 0. secs (0.u,0.s) +Chars 1715 - 1735 [taus;~now~apply~CIH.] 0. secs (0.u,0.s) +Chars 1740 - 1741 [-] 0. secs (0.u,0.s) +Chars 1742 - 1749 [to_mon.] 0. secs (0.u,0.s) +Chars 1750 - 1771 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 1778 - 1779 [+] 0. secs (0.u,0.s) +Chars 1780 - 1802 [taus;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 1804 - 1808 [Qed.] 0.009 secs (0.008u,0.s) +Chars 1810 - 1992 [Lemma~interp_state_ret~{E~F~:~...] 0. secs (0.u,0.s) +Chars 1993 - 1999 [Proof.] 0. secs (0.u,0.s) +Chars 2002 - 2020 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) +Chars 2021 - 2033 [reflexivity.] 0. secs (0.u,0.s) +Chars 2034 - 2038 [Qed.] 0. secs (0.u,0.s) +Chars 2040 - 2283 [Lemma~interp_state_vis~{E~F~:~...] 0. secs (0.u,0.s) +Chars 2284 - 2290 [Proof.] 0. secs (0.u,0.s) +Chars 2293 - 2334 [rewrite~unfold_interp_state;~r...] 0.001 secs (0.001u,0.s) +Chars 2335 - 2339 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2341 - 2523 [Lemma~interp_state_tau~{E~F~:~...] 0. secs (0.u,0.s) +Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) +Chars 2533 - 2574 [rewrite~unfold_interp_state;~r...] 0.002 secs (0.002u,0.s) +Chars 2575 - 2579 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2581 - 2788 [Lemma~interp_state_trigger_eqi...] 0. secs (0.u,0.s) +Chars 2789 - 2795 [Proof.] 0. secs (0.u,0.s) +Chars 2798 - 2819 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 2820 - 2845 [rewrite~interp_state_vis.] 0.001 secs (0.001u,0.s) +Chars 2848 - 2882 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 2885 - 2895 [intros~[].] 0. secs (0.u,0.s) +Chars 2896 - 2921 [rewrite~interp_state_ret.] 0.003 secs (0.003u,0.s) +Chars 2922 - 2934 [reflexivity.] 0. secs (0.u,0.s) +Chars 2935 - 2939 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2941 - 3114 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) +Chars 3115 - 3121 [Proof.] 0. secs (0.u,0.s) +Chars 3124 - 3145 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 3146 - 3171 [rewrite~interp_state_vis.] 0. secs (0.u,0.s) +Chars 3174 - 3261 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) +Chars 3264 - 3298 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 3301 - 3346 [intros~[];~rewrite~interp_stat...] 0.002 secs (0.002u,0.s) +Chars 3349 - 3361 [reflexivity.] 0. secs (0.u,0.s) +Chars 3362 - 3366 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3368 - 3655 [Lemma~interp_state_bind~{E~F~:...] 0. secs (0.u,0.s) +Chars 3656 - 3662 [Proof.] 0. secs (0.u,0.s) +Chars 3665 - 3678 [revert~t~k~s.] 0. secs (0.u,0.s) +Chars 3681 - 3693 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 3697 - 3710 [intros~t~k~s.] 0. secs (0.u,0.s) +Chars 3713 - 3733 [rewrite~unfold_bind.] 0.013 secs (0.013u,0.s) +Chars 3736 - 3770 [rewrite~(unfold_interp_state~f...] 0.017 secs (0.017u,0.s) +Chars 3773 - 3794 [destruct~(observe~t).] 0. secs (0.u,0.s) +Chars 3797 - 3798 [-] 0. secs (0.u,0.s) +Chars 3799 - 3804 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3805 - 3825 [rewrite~!bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 3831 - 3849 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 3852 - 3853 [-] 0. secs (0.u,0.s) +Chars 3854 - 3859 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3860 - 3865 [taus.] 0. secs (0.u,0.s) +Chars 3866 - 3876 [apply~CIH.] 0.001 secs (0.001u,0.s) +Chars 3879 - 3880 [-] 0. secs (0.u,0.s) +Chars 3881 - 3886 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3887 - 3923 [rewrite~interp_state_vis,~bind...] 0.027 secs (0.026u,0.s) +Chars 3928 - 3949 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 3957 - 3974 [rewrite~bind_tau.] 0.016 secs (0.016u,0.s) +Chars 3981 - 3986 [taus.] 0. secs (0.u,0.s) +Chars 3987 - 4001 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4003 - 4007 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4009 - 4222 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) +Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) +Chars 4232 - 4245 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4246 - 4252 [subst.] 0. secs (0.u,0.s) +Chars 4253 - 4269 [revert_until~RR.] 0. secs (0.u,0.s) +Chars 4272 - 4284 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4285 - 4292 [intros.] 0. secs (0.u,0.s) +Chars 4296 - 4325 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) +Chars 4326 - 4336 [step~in~H.] 0. secs (0.u,0.s) +Chars 4340 - 4373 [induction~H;~intros;~subst;~bcbn.] 0.027 secs (0.027u,0.s) +Chars 4377 - 4378 [-] 0. secs (0.u,0.s) +Chars 4379 - 4384 [eret.] 0. secs (0.u,0.s) +Chars 4388 - 4389 [-] 0. secs (0.u,0.s) +Chars 4390 - 4395 [etau.] 0.002 secs (0.002u,0.s) +Chars 4399 - 4400 [-] 0. secs (0.u,0.s) +Chars 4401 - 4422 [ebind;~intros;~subst.] 0.017 secs (0.017u,0.s) +Chars 4423 - 4428 [taus.] 0. secs (0.u,0.s) +Chars 4429 - 4439 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4440 - 4450 [apply~REL.] 0. secs (0.u,0.s) +Chars 4454 - 4455 [-] 0. secs (0.u,0.s) +Chars 4456 - 4503 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) +Chars 4506 - 4507 [-] 0. secs (0.u,0.s) +Chars 4508 - 4555 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) +Chars 4556 - 4560 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4562 - 4761 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) +Chars 4762 - 4768 [Proof.] 0. secs (0.u,0.s) +Chars 4771 - 4784 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4785 - 4791 [subst.] 0. secs (0.u,0.s) +Chars 4792 - 4807 [revert_until~R.] 0. secs (0.u,0.s) +Chars 4810 - 4822 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4823 - 4830 [intros.] 0. secs (0.u,0.s) +Chars 4835 - 4864 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) +Chars 4865 - 4875 [step~in~H.] 0. secs (0.u,0.s) +Chars 4879 - 4930 [induction~H;~intros;~subst;~bc...] 0.033 secs (0.033u,0.s) +Chars 4934 - 4935 [-] 0. secs (0.u,0.s) +Chars 4936 - 4941 [eret.] 0.001 secs (0.001u,0.s) +Chars 4945 - 4946 [-] 0. secs (0.u,0.s) +Chars 4947 - 4953 [ebind.] 0.006 secs (0.006u,0.s) +Chars 4954 - 4968 [intros;~subst.] 0. secs (0.u,0.s) +Chars 4973 - 4978 [etau.] 0.002 secs (0.001u,0.s) +Chars 4981 - 4982 [-] 0. secs (0.u,0.s) +Chars 4983 - 5030 [rewrite~tau_euttge,~unfold_int...] 0.015 secs (0.015u,0.s) +Chars 5033 - 5034 [-] 0. secs (0.u,0.s) +Chars 5035 - 5082 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) +Chars 5083 - 5087 [Qed.] 0.01 secs (0.01u,0.s) +Chars 5090 - 5726 [Lemma~eutt_interp_state_aloop~...] 0.002 secs (0.002u,0.s) +Chars 5727 - 5733 [Proof.] 0. secs (0.u,0.s) +Chars 5736 - 5745 [intro~Ht.] 0. secs (0.u,0.s) +Chars 5748 - 5760 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 5761 - 5768 [intros.] 0. secs (0.u,0.s) +Chars 5771 - 5793 [rewrite~2!unfold_iter.] 0.025 secs (0.025u,0.s) +Chars 5796 - 5824 [rewrite~2!interp_state_bind.] 0.025 secs (0.025u,0.s) +Chars 5827 - 5848 [ebind;~intros;~subst.] 0.003 secs (0.003u,0.s) +Chars 5852 - 5853 [-] 0. secs (0.u,0.s) +Chars 5854 - 5864 [do~2~step.] 0.012 secs (0.012u,0.s) +Chars 5865 - 5881 [eapply~Ht;~auto.] 0. secs (0.u,0.s) +Chars 5884 - 5885 [-] 0. secs (0.u,0.s) +Chars 5886 - 5893 [inv~H1.] 0.008 secs (0.008u,0.s) +Chars 5894 - 5906 [inv~snd_rel.] 0.016 secs (0.016u,0.s) +Chars 5911 - 5912 [+] 0. secs (0.u,0.s) +Chars 5913 - 5940 [rewrite~2!interp_state_tau.] 0.028 secs (0.028u,0.s) +Chars 5941 - 5946 [etau.] 0. secs (0.u,0.s) +Chars 5952 - 5953 [+] 0. secs (0.u,0.s) +Chars 5954 - 5981 [rewrite~2!interp_state_ret.] 0.028 secs (0.027u,0.s) +Chars 5982 - 5987 [eret.] 0. secs (0.u,0.s) +Chars 5989 - 5993 [Qed.] 0.01 secs (0.01u,0.s) +Chars 5995 - 6657 [Lemma~eutt_interp_state_iter~{...] 0.002 secs (0.002u,0.s) +Chars 6658 - 6664 [Proof.] 0. secs (0.u,0.s) +Chars 6667 - 6697 [apply~eutt_interp_state_aloop.] 0. secs (0.u,0.s) +Chars 6698 - 6702 [Qed.] 0. secs (0.u,0.s) +Chars 6704 - 6915 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) +Chars 6916 - 6922 [Proof.] 0. secs (0.u,0.s) +Chars 6925 - 7003 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 7006 - 7030 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) +Chars 7033 - 7061 [rewrite~2!unfold_iter;~bcbn.] 0.029 secs (0.029u,0.s) +Chars 7064 - 7083 [rewrite~!bind_bind.] 0.018 secs (0.018u,0.s) +Chars 7086 - 7112 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 7115 - 7141 [rewrite~interp_state_bind.] 0.014 secs (0.014u,0.s) +Chars 7144 - 7150 [ebind.] 0.006 secs (0.006u,0.s) +Chars 7153 - 7179 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) +Chars 7182 - 7183 [-] 0. secs (0.u,0.s) +Chars 7184 - 7189 [etau.] 0.001 secs (0.001u,0.s) +Chars 7193 - 7194 [-] 0. secs (0.u,0.s) +Chars 7195 - 7200 [eret.] 0. secs (0.u,0.s) +Chars 7202 - 7206 [Qed.] 0.011 secs (0.011u,0.s) +Chars 7208 - 7735 [Lemma~eutt_interp_state_loop~{...] 0.002 secs (0.002u,0.s) +Chars 7736 - 7742 [Proof.] 0. secs (0.u,0.s) +Chars 7745 - 7752 [intros.] 0. secs (0.u,0.s) +Chars 7755 - 7922 [unfold~loop,~bimap,~Bimap_Copr...] 0. secs (0.u,0.s) +Chars 7925 - 7946 [rewrite~2!bind_ret_l.] 0.009 secs (0.009u,0.s) +Chars 7949 - 8001 [eapply~(eutt_interp_state_iter...] 0.019 secs (0.019u,0.s) +Chars 8004 - 8032 [rewrite~2!interp_state_bind.] 0.007 secs (0.007u,0.s) +Chars 8035 - 8041 [subst.] 0. secs (0.u,0.s) +Chars 8044 - 8073 [eapply~eutt_bind_eutt;~eauto.] 0.01 secs (0.01u,0.s) +Chars 8076 - 8083 [intros.] 0. secs (0.u,0.s) +Chars 8086 - 8122 [cbn~in~H2;~destruct~H2~as~[H21...] 0. secs (0.u,0.s) +Chars 8125 - 8159 [destruct~(snd~u1);~rewrite~<-~...] 0.001 secs (0.001u,0.s) +Chars 8162 - 8163 [-] 0. secs (0.u,0.s) +Chars 8164 - 8203 [rewrite~bind_ret_l,~2!interp_s...] 0.007 secs (0.007u,0.s) +Chars 8208 - 8213 [step.] 0.001 secs (0.001u,0.s) +Chars 8219 - 8224 [eret.] 0.001 secs (0.001u,0.s) +Chars 8228 - 8229 [-] 0. secs (0.u,0.s) +Chars 8230 - 8269 [rewrite~bind_ret_l,~2!interp_s...] 0.008 secs (0.007u,0.s) +Chars 8270 - 8275 [step.] 0.001 secs (0.001u,0.s) +Chars 8276 - 8281 [eret.] 0.001 secs (0.001u,0.s) +Chars 8283 - 8287 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8336 - 8479 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) +Chars 8481 - 8799 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) +Chars 8800 - 8806 [Proof.] 0. secs (0.u,0.s) +Chars 8809 - 8887 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 8890 - 8914 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) +Chars 8917 - 8945 [rewrite~2!unfold_iter;~bcbn.] 0.029 secs (0.029u,0.s) +Chars 8948 - 8967 [rewrite~!bind_bind.] 0.017 secs (0.017u,0.s) +Chars 8970 - 8996 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 8999 - 9025 [rewrite~interp_state_bind.] 0.014 secs (0.014u,0.s) +Chars 9028 - 9034 [ebind.] 0.006 secs (0.006u,0.s) +Chars 9038 - 9039 [-] 0. secs (0.u,0.s) +Chars 9040 - 9050 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 9051 - 9062 [apply~EQ_t.] 0. secs (0.u,0.s) +Chars 9065 - 9066 [-] 0. secs (0.u,0.s) +Chars 9067 - 9093 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) +Chars 9098 - 9099 [+] 0. secs (0.u,0.s) +Chars 9100 - 9105 [etau.] 0.001 secs (0.001u,0.s) +Chars 9111 - 9112 [+] 0. secs (0.u,0.s) +Chars 9113 - 9118 [eret.] 0. secs (0.u,0.s) +Chars 9120 - 9124 [Qed.] 0.011 secs (0.011u,0.s) +Chars 9126 - 9370 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) +Chars 9371 - 9377 [Proof.] 0. secs (0.u,0.s) +Chars 9380 - 9405 [eapply~interp_state_iter.] 0. secs (0.u,0.s) +Chars 9408 - 9417 [intros~i.] 0. secs (0.u,0.s) +Chars 9420 - 9424 [red.] 0. secs (0.u,0.s) +Chars 9425 - 9437 [reflexivity.] 0. secs (0.u,0.s) +Chars 9438 - 9442 [Qed.] 0. secs (0.u,0.s) +Chars 9444 - 9721 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) +Chars 9722 - 9728 [Proof.] 0. secs (0.u,0.s) +Chars 9731 - 9809 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 9812 - 9836 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) +Chars 9839 - 9867 [rewrite~2!unfold_iter;~bcbn.] 0.029 secs (0.029u,0.s) +Chars 9870 - 9889 [rewrite~!bind_bind.] 0.016 secs (0.016u,0.s) +Chars 9892 - 9918 [setoid_rewrite~bind_ret_l.] 0.03 secs (0.03u,0.s) +Chars 9921 - 9947 [rewrite~interp_state_bind.] 0.013 secs (0.013u,0.s) +Chars 9950 - 9956 [ebind.] 0.006 secs (0.006u,0.s) +Chars 9960 - 9961 [-] 0. secs (0.u,0.s) +Chars 9962 - 9972 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 9973 - 9983 [apply~Heq.] 0. secs (0.u,0.s) +Chars 9986 - 9987 [-] 0. secs (0.u,0.s) +Chars 9988 - 10014 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) +Chars 10019 - 10020 [+] 0. secs (0.u,0.s) +Chars 10021 - 10026 [etau.] 0.001 secs (0.001u,0.s) +Chars 10032 - 10033 [+] 0. secs (0.u,0.s) +Chars 10034 - 10039 [eret.] 0. secs (0.u,0.s) +Chars 10041 - 10045 [Qed.] 0.01 secs (0.01u,0.s) diff --git a/theories/Events/Writer.v.timing b/theories/Events/Writer.v.timing new file mode 100644 index 00000000..111d4bf4 --- /dev/null +++ b/theories/Events/Writer.v.timing @@ -0,0 +1,17 @@ +Chars 57 - 80 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 81 - 105 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.031 secs (0.025u,0.006s) +Chars 145 - 166 [Import~ListNotations.] 0. secs (0.u,0.s) +Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.089 secs (0.084u,0.005s) +Chars 501 - 529 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) +Chars 589 - 663 [Variant~writerE~(W~:~Type)~:~T...] 0. secs (0.u,0.s) +Chars 687 - 778 [Definition~tell~{W}~{E}~`{writ...] 0. secs (0.u,0.s) +Chars 919 - 1083 [Definition~handle_writer_list~...] 0. secs (0.u,0.s) +Chars 1085 - 1236 [Definition~run_writer_list_sta...] 0.001 secs (0.001u,0.s) +Chars 1238 - 1280 [Arguments~run_writer_list_stat...] 0. secs (0.u,0.s) +Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0. secs (0.u,0.s) +Chars 1604 - 1640 [Arguments~run_writer_list~{W~E...] 0. secs (0.u,0.s) +Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0. secs (0.u,0.s) +Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.001u,0.s) +Chars 2160 - 2200 [Arguments~run_writer~{W~E}~Mon...] 0. secs (0.u,0.s) diff --git a/theories/ITree.v.timing b/theories/ITree.v.timing new file mode 100644 index 00000000..efff63d7 --- /dev/null +++ b/theories/ITree.v.timing @@ -0,0 +1 @@ +Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.042 secs (0.034u,0.008s) diff --git a/theories/ITreeFacts.v.timing b/theories/ITreeFacts.v.timing new file mode 100644 index 00000000..77c93217 --- /dev/null +++ b/theories/ITreeFacts.v.timing @@ -0,0 +1 @@ +Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.184 secs (0.161u,0.02s) diff --git a/theories/Indexed/Function.v.timing b/theories/Indexed/Function.v.timing new file mode 100644 index 00000000..69e4223e --- /dev/null +++ b/theories/Indexed/Function.v.timing @@ -0,0 +1,14 @@ +Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.011 secs (0.008u,0.002s) +Chars 352 - 378 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) +Chars 428 - 482 [Definition~IFun~(E~F~:~Type~->...] 0. secs (0.u,0.s) +Chars 545 - 610 [Definition~apply_IFun~{E}~{F}~...] 0. secs (0.u,0.s) +Chars 642 - 700 [Definition~apply_IFun'~{E}~{F}...] 0. secs (0.u,0.s) +Chars 730 - 784 [Definition~as_IFun~{E}~{F}~(f~...] 0. secs (0.u,0.s) +Chars 851 - 939 [#[global]~Instance~Eq2_IFun~:~...] 0. secs (0.u,0.s) +Chars 971 - 1029 [#[global]~Instance~Id_IFun~:~(...] 0. secs (0.u,0.s) +Chars 1060 - 1141 [#[global]~Instance~Cat_IFun~:~...] 0. secs (0.u,0.s) +Chars 1181 - 1250 [#[global]~Instance~Initial_voi...] 0. secs (0.u,0.s) +Chars 1299 - 1484 [Definition~case_sum1~{A~B~C~:~...] 0. secs (0.u,0.s) +Chars 1486 - 1546 [#[global]~Instance~Case_sum1~:...] 0. secs (0.u,0.s) +Chars 1547 - 1600 [#[global]~Instance~Inl_sum1~:~...] 0. secs (0.u,0.s) +Chars 1601 - 1654 [#[global]~Instance~Inr_sum1~:~...] 0. secs (0.u,0.s) diff --git a/theories/Indexed/FunctionFacts.v.timing b/theories/Indexed/FunctionFacts.v.timing new file mode 100644 index 00000000..38a8d83b --- /dev/null +++ b/theories/Indexed/FunctionFacts.v.timing @@ -0,0 +1,11 @@ +Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.006 secs (0.004u,0.001s) +Chars 212 - 238 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) +Chars 255 - 475 [#[global]~Instance~Proper_appl...] 0. secs (0.u,0.s) +Chars 476 - 482 [Proof.] 0. secs (0.u,0.s) +Chars 485 - 503 [repeat~red;~eauto.] 0. secs (0.u,0.s) +Chars 504 - 508 [Qed.] 0. secs (0.u,0.s) +Chars 510 - 626 [Lemma~fold_apply_IFun~{E~F~:~T...] 0. secs (0.u,0.s) +Chars 627 - 633 [Proof.] 0. secs (0.u,0.s) +Chars 636 - 648 [reflexivity.] 0. secs (0.u,0.s) +Chars 649 - 653 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Relation.v.timing b/theories/Indexed/Relation.v.timing new file mode 100644 index 00000000..f04e1ad1 --- /dev/null +++ b/theories/Indexed/Relation.v.timing @@ -0,0 +1,29 @@ +Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.005 secs (0.003u,0.002s) +Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.002 secs (0.001u,0.s) +Chars 157 - 183 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) +Chars 292 - 538 [Definition~i_respectful~{A~B~:...] 0. secs (0.u,0.s) +Chars 540 - 718 [Definition~i_pointwise~{A~B~:~...] 0. secs (0.u,0.s) +Chars 720 - 915 [#[global]~Instance~Reflexive_i...] 0. secs (0.u,0.s) +Chars 916 - 922 [Proof.] 0. secs (0.u,0.s) +Chars 925 - 971 [repeat~red;~intros;~red~in~Ref...] 0. secs (0.u,0.s) +Chars 972 - 976 [Qed.] 0. secs (0.u,0.s) +Chars 978 - 1173 [#[global]~Instance~Symmetric_i...] 0. secs (0.u,0.s) +Chars 1174 - 1180 [Proof.] 0. secs (0.u,0.s) +Chars 1183 - 1229 [repeat~red;~intros;~red~in~Sym...] 0. secs (0.u,0.s) +Chars 1230 - 1234 [Qed.] 0. secs (0.u,0.s) +Chars 1236 - 1435 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 1436 - 1442 [Proof.] 0. secs (0.u,0.s) +Chars 1445 - 1492 [repeat~red;~intros;~red~in~Tra...] 0. secs (0.u,0.s) +Chars 1493 - 1497 [Qed.] 0. secs (0.u,0.s) +Chars 1499 - 1702 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 1703 - 1709 [Proof.] 0. secs (0.u,0.s) +Chars 1712 - 1741 [split;~try~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1742 - 1746 [Qed.] 0. secs (0.u,0.s) +Chars 1748 - 1944 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) +Chars 1945 - 1951 [Proof.] 0. secs (0.u,0.s) +Chars 1954 - 1986 [repeat~red;~intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 1987 - 1991 [Qed.] 0. secs (0.u,0.s) +Chars 2060 - 2248 [Definition~subrelation_i_respe...] 0. secs (0.u,0.s) +Chars 2249 - 2255 [Proof.] 0. secs (0.u,0.s) +Chars 2258 - 2275 [repeat~red;~auto.] 0. secs (0.u,0.s) +Chars 2276 - 2280 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Sum.v.timing b/theories/Indexed/Sum.v.timing new file mode 100644 index 00000000..826513fa --- /dev/null +++ b/theories/Indexed/Sum.v.timing @@ -0,0 +1,9 @@ +Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) +Chars 189 - 212 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 213 - 237 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 368 - 461 [Variant~sum1~(E1~E2~:~Type~->~...] 0. secs (0.u,0.s) +Chars 462 - 489 [Arguments~inr1~{E1~E2}~[X].] 0. secs (0.u,0.s) +Chars 490 - 517 [Arguments~inl1~{E1~E2}~[X].] 0. secs (0.u,0.s) +Chars 561 - 647 [Notation~"E1~+'~E2"~:=~(sum1~E...] 0. secs (0.u,0.s) +Chars 680 - 713 [Variant~void1~:~Type~->~Prop~:=.] 0. secs (0.u,0.s) +Chars 884 - 1036 [#[universes(polymorphic)]~Defi...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Handler.v.timing b/theories/Interp/Handler.v.timing new file mode 100644 index 00000000..ce37c368 --- /dev/null +++ b/theories/Interp/Handler.v.timing @@ -0,0 +1,27 @@ +Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.038 secs (0.031u,0.006s) +Chars 362 - 396 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 398 - 427 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 476 - 491 [Module~Handler.] 0. secs (0.u,0.s) +Chars 726 - 818 [Definition~htrigger~{A}~{B}~(m...] 0. secs (0.u,0.s) +Chars 971 - 1037 [Definition~id_~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) +Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0. secs (0.u,0.s) +Chars 1282 - 1360 [Definition~inl_~{E~F~:~Type~->...] 0. secs (0.u,0.s) +Chars 1404 - 1482 [Definition~inr_~{E~F~:~Type~->...] 0. secs (0.u,0.s) +Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0.013 secs (0.012u,0.s) +Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0. secs (0.u,0.s) +Chars 2305 - 2405 [Definition~empty~{E~:~Type~->~...] 0. secs (0.u,0.s) +Chars 2407 - 2419 [End~Handler.] 0. secs (0.u,0.s) +Chars 2451 - 2507 [Definition~Handler~(E~F~:~Type...] 0. secs (0.u,0.s) +Chars 2673 - 2735 [Definition~handle~{E}~{F}~(f~:...] 0. secs (0.u,0.s) +Chars 2736 - 2800 [Definition~handling~{E}~{F}~(f...] 0. secs (0.u,0.s) +Chars 2802 - 2924 [Definition~eq_Handler~{E~F~:~T...] 0. secs (0.u,0.s) +Chars 2926 - 3046 [Definition~eutt_Handler~{E~F~:...] 0. secs (0.u,0.s) +Chars 3098 - 3162 [#[global]~Instance~Eq2_Handler...] 0. secs (0.u,0.s) +Chars 3164 - 3226 [#[global]~Instance~Id_Handler~...] 0. secs (0.u,0.s) +Chars 3228 - 3291 [#[global]~Instance~Cat_Handler...] 0. secs (0.u,0.s) +Chars 3293 - 3370 [#[global]~Instance~Case_sum1_H...] 0. secs (0.u,0.s) +Chars 3372 - 3446 [#[global]~Instance~Inl_sum1_Ha...] 0. secs (0.u,0.s) +Chars 3448 - 3522 [#[global]~Instance~Inr_sum1_Ha...] 0. secs (0.u,0.s) +Chars 3524 - 3609 [#[global]~Instance~Initial_voi...] 0. secs (0.u,0.s) +Chars 3611 - 3674 [#[global]~Instance~Iter_Handle...] 0. secs (0.u,0.s) diff --git a/theories/Interp/HandlerFacts.v.timing b/theories/Interp/HandlerFacts.v.timing new file mode 100644 index 00000000..7e3f88b3 --- /dev/null +++ b/theories/Interp/HandlerFacts.v.timing @@ -0,0 +1,339 @@ +Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.057 secs (0.049u,0.008s) +Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) +Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) +Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) +Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) +Chars 782 - 794 [compute;~intros.] 0. secs (0.u,0.s) +Chars 797 - 821 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) +Chars 822 - 826 [Qed.] 0. secs (0.u,0.s) +Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) +Chars 879 - 891 [compute;~intros.] 0. secs (0.u,0.s) +Chars 894 - 919 [rewrite~interp_trigger_h.] 0.001 secs (0.001u,0.s) +Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) +Chars 933 - 937 [Qed.] 0. secs (0.u,0.s) +Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) +Chars 990 - 1002 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1005 - 1028 [rewrite~interp_trigger.] 0.008 secs (0.008u,0.s) +Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) +Chars 1044 - 1048 [Qed.] 0. secs (0.u,0.s) +Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) +Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) +Chars 1105 - 1117 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1120 - 1142 [rewrite~interp_interp.] 0.037 secs (0.037u,0.s) +Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) +Chars 1158 - 1162 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) +Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) +Chars 1226 - 1251 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) +Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) +Chars 1336 - 1355 [compute;~contradiction.] 0. secs (0.u,0.s) +Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) +Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) +Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) +Chars 1524 - 1536 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1539 - 1571 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) +Chars 1572 - 1576 [Qed.] 0. secs (0.u,0.s) +Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) +Chars 1636 - 1648 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1651 - 1674 [rewrite~interp_trigger.] 0.012 secs (0.011u,0.001s) +Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) +Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) +Chars 1754 - 1766 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1769 - 1792 [rewrite~interp_trigger.] 0.012 secs (0.009u,0.002s) +Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) +Chars 1808 - 1812 [Qed.] 0.001 secs (0.u,0.s) +Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) +Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) +Chars 1884 - 1896 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1899 - 1925 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) +Chars 1928 - 1929 [-] 0. secs (0.u,0.s) +Chars 1930 - 1959 [rewrite~<-~H,~interp_trigger.] 0.016 secs (0.015u,0.s) +Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) +Chars 1975 - 1976 [-] 0. secs (0.u,0.s) +Chars 1977 - 2007 [rewrite~<-~H0,~interp_trigger.] 0.014 secs (0.014u,0.s) +Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) +Chars 2021 - 2025 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) +Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) +Chars 2096 - 2121 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) +Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) +Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) +Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) +Chars 2301 - 2314 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2317 - 2348 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) +Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) +Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) +Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) +Chars 2419 - 2431 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2434 - 2464 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) +Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) +Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) +Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) +Chars 2552 - 2564 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2567 - 2577 [pattern~f.] 0.003 secs (0.003u,0.s) +Chars 2580 - 2678 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) +Chars 2681 - 2682 [{] 0. secs (0.u,0.s) +Chars 2683 - 2738 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) +Chars 2743 - 2744 [-] 0. secs (0.u,0.s) +Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) +Chars 2755 - 2792 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 2799 - 2800 [+] 0. secs (0.u,0.s) +Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) +Chars 2820 - 2821 [+] 0. secs (0.u,0.s) +Chars 2822 - 2879 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) +Chars 2884 - 2885 [-] 0. secs (0.u,0.s) +Chars 2886 - 2928 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) +Chars 2935 - 2936 [+] 0. secs (0.u,0.s) +Chars 2937 - 2948 [intros~?~?.] 0. secs (0.u,0.s) +Chars 2949 - 2969 [apply~euttge_interp.] 0. secs (0.u,0.s) +Chars 2978 - 2979 [*] 0. secs (0.u,0.s) +Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) +Chars 3001 - 3002 [*] 0. secs (0.u,0.s) +Chars 3003 - 3020 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 3027 - 3028 [+] 0. secs (0.u,0.s) +Chars 3029 - 3048 [rewrite~tau_euttge.] 0.01 secs (0.01u,0.s) +Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) +Chars 3064 - 3065 [}] 0. secs (0.u,0.s) +Chars 3068 - 3296 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) +Chars 3299 - 3338 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) +Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) +Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 3453 - 3485 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) +Chars 3488 - 3510 [rewrite~(itree_eta~t).] 0.016 secs (0.016u,0.s) +Chars 3513 - 3534 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 3537 - 3538 [-] 0. secs (0.u,0.s) +Chars 3539 - 3566 [rewrite~unfold_interp_mrec.] 0.015 secs (0.014u,0.s) +Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) +Chars 3578 - 3599 [rewrite~2!interp_ret.] 0.031 secs (0.031u,0.s) +Chars 3604 - 3631 [rewrite~unfold_interp_mrec.] 0.013 secs (0.013u,0.s) +Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3651 - 3652 [-] 0. secs (0.u,0.s) +Chars 3653 - 3680 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) +Chars 3692 - 3713 [rewrite~2!interp_tau.] 0.032 secs (0.032u,0.s) +Chars 3718 - 3764 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) +Chars 3782 - 3783 [-] 0. secs (0.u,0.s) +Chars 3784 - 3811 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) +Chars 3822 - 3841 [rewrite~interp_vis.] 0.019 secs (0.019u,0.s) +Chars 3846 - 3863 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) +Chars 3868 - 3869 [+] 0. secs (0.u,0.s) +Chars 3870 - 3889 [rewrite~interp_tau.] 0.015 secs (0.014u,0.s) +Chars 3896 - 3936 [rewrite~2!interp_mrec_bind,~in...] 0.048 secs (0.048u,0.s) +Chars 3943 - 3951 [subst~h.] 0.002 secs (0.002u,0.s) +Chars 3959 - 3964 [bcbn.] 0.041 secs (0.041u,0.s) +Chars 3971 - 3994 [rewrite~interp_trigger.] 0.033 secs (0.032u,0.s) +Chars 4001 - 4028 [rewrite~unfold_interp_mrec.] 0.029 secs (0.029u,0.s) +Chars 4030 - 4035 [bcbn.] 0.036 secs (0.036u,0.s) +Chars 4043 - 4071 [rewrite~interp_mrec_trigger.] 0.027 secs (0.027u,0.s) +Chars 4072 - 4077 [bcbn.] 0.037 secs (0.037u,0.s) +Chars 4085 - 4107 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 4236 - 4256 [rewrite~!interp_tau.] 0.095 secs (0.093u,0.s) +Chars 4263 - 4310 [rewrite~(unfold_interp_mrec~_~...] 0.087 secs (0.086u,0.s) +Chars 4317 - 4335 [rewrite~!bind_tau.] 0.083 secs (0.08u,0.s) +Chars 4342 - 4347 [taus.] 0. secs (0.u,0.s) +Chars 4348 - 4406 [rewrite~tau_euttge,~<-~interp_...] 0.111 secs (0.111u,0.s) +Chars 4413 - 4454 [setoid_rewrite~(tau_euttge~(in...] 0.06 secs (0.06u,0.s) +Chars 4461 - 4484 [rewrite~<-~interp_bind.] 0.028 secs (0.027u,0.s) +Chars 4491 - 4496 [auto.] 0. secs (0.u,0.s) +Chars 4501 - 4502 [+] 0. secs (0.u,0.s) +Chars 4503 - 4522 [rewrite~interp_vis.] 0.016 secs (0.016u,0.s) +Chars 4529 - 4554 [rewrite~interp_mrec_bind.] 0.016 secs (0.016u,0.s) +Chars 4561 - 4575 [subst~h;~bcbn.] 0.003 secs (0.003u,0.s) +Chars 4582 - 4588 [ebind.] 0.008 secs (0.008u,0.s) +Chars 4589 - 4609 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) +Chars 4617 - 4618 [{] 0. secs (0.u,0.s) +Chars 4619 - 4629 [do~2~step.] 0.008 secs (0.008u,0.s) +Chars 4630 - 4675 [rewrite~interp_mrec_as_interp,...] 0.018 secs (0.018u,0.s) +Chars 4684 - 4712 [rewrite~<-~interp_id_h~~at~1.] 0.052 secs (0.052u,0.s) +Chars 4721 - 4757 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) +Chars 4766 - 4777 [intros~?~?.] 0. secs (0.u,0.s) +Chars 4786 - 4814 [rewrite~interp_trigger;~cbn.] 0.008 secs (0.008u,0.s) +Chars 4823 - 4835 [reflexivity.] 0. secs (0.u,0.s) +Chars 4836 - 4837 [}] 0. secs (0.u,0.s) +Chars 4844 - 4858 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 4865 - 4912 [rewrite~(unfold_interp_mrec~_~...] 0.027 secs (0.027u,0.s) +Chars 4919 - 4924 [taus.] 0. secs (0.u,0.s) +Chars 4932 - 4951 [rewrite~tau_euttge.] 0.012 secs (0.012u,0.s) +Chars 4958 - 4968 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4970 - 4974 [Qed.] 0.106 secs (0.103u,0.s) +Chars 4976 - 5000 [Section~DinatSimulation.] 0. secs (0.u,0.s) +Chars 5002 - 5033 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 5034 - 5096 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) +Chars 5097 - 5116 [Context~{R~:~Type}.] 0. secs (0.u,0.s) +Chars 5118 - 5188 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) +Chars 5190 - 5650 [Inductive~interleaved~:~itree~...] 0.004 secs (0.004u,0.s) +Chars 5651 - 5698 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) +Chars 5700 - 5744 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5745 - 5789 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5791 - 5963 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) +Chars 5964 - 5992 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 5996 - 6016 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 6019 - 6031 [induction~H.] 0. secs (0.u,0.s) +Chars 6034 - 6035 [-] 0. secs (0.u,0.s) +Chars 6036 - 6071 [rewrite~2!unfold_interp_mrec;~...] 0.029 secs (0.028u,0.s) +Chars 6072 - 6084 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6089 - 6090 [-] 0. secs (0.u,0.s) +Chars 6091 - 6135 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) +Chars 6140 - 6141 [+] 0. secs (0.u,0.s) +Chars 6142 - 6175 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.042u,0.s) +Chars 6176 - 6181 [auto.] 0. secs (0.u,0.s) +Chars 6186 - 6187 [+] 0. secs (0.u,0.s) +Chars 6188 - 6247 [rewrite~interp_tau,~2!bind_tau...] 0.074 secs (0.073u,0.s) +Chars 6254 - 6261 [taus~...] 0.001 secs (0.001u,0.s) +Chars 6268 - 6269 [+] 0. secs (0.u,0.s) +Chars 6270 - 6299 [rewrite~interp_vis,~bind_vis.] 0.032 secs (0.032u,0.s) +Chars 6306 - 6324 [rewrite~bind_bind.] 0.015 secs (0.015u,0.s) +Chars 6331 - 6380 [rewrite~(unfold_interp_mrec~_~...] 0.015 secs (0.015u,0.s) +Chars 6387 - 6404 [destruct~e;~bcbn.] 0.03 secs (0.03u,0.s) +Chars 6405 - 6446 [setoid_rewrite~(tau_euttge~(in...] 0.066 secs (0.066u,0.s) +Chars 6453 - 6454 [*] 0. secs (0.u,0.s) +Chars 6455 - 6502 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 6511 - 6546 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) +Chars 6555 - 6598 [rewrite~bind_tau,~unfold_inter...] 0.03 secs (0.03u,0.s) +Chars 6607 - 6612 [taus.] 0. secs (0.u,0.s) +Chars 6613 - 6634 [rewrite~tau_euttge~...] 0.01 secs (0.01u,0.s) +Chars 6641 - 6642 [*] 0. secs (0.u,0.s) +Chars 6643 - 6705 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 6714 - 6735 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) +Chars 6744 - 6777 [rewrite~unfold_interp_mrec;~bcbn.] 0.014 secs (0.014u,0.s) +Chars 6786 - 6806 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 6807 - 6835 [repeat~rewrite~tau_euttge~...] 0.019 secs (0.019u,0.s) +Chars 6839 - 6840 [-] 0. secs (0.u,0.s) +Chars 6841 - 6885 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) +Chars 6890 - 6891 [+] 0. secs (0.u,0.s) +Chars 6892 - 6925 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.042u,0.s) +Chars 6926 - 6931 [auto.] 0. secs (0.u,0.s) +Chars 6936 - 6937 [+] 0. secs (0.u,0.s) +Chars 6938 - 6997 [rewrite~interp_tau,~2!bind_tau...] 0.074 secs (0.074u,0.s) +Chars 7004 - 7011 [taus~...] 0.001 secs (0.001u,0.s) +Chars 7018 - 7019 [+] 0. secs (0.u,0.s) +Chars 7020 - 7049 [rewrite~interp_vis,~bind_vis.] 0.031 secs (0.03u,0.s) +Chars 7056 - 7074 [rewrite~bind_bind.] 0.016 secs (0.016u,0.s) +Chars 7081 - 7130 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 7137 - 7154 [destruct~e;~bcbn.] 0.033 secs (0.032u,0.s) +Chars 7155 - 7196 [setoid_rewrite~(tau_euttge~(in...] 0.067 secs (0.066u,0.s) +Chars 7203 - 7204 [*] 0. secs (0.u,0.s) +Chars 7205 - 7252 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 7261 - 7296 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) +Chars 7305 - 7363 [rewrite~!bind_tau,~(unfold_int...] 0.036 secs (0.036u,0.s) +Chars 7372 - 7377 [taus.] 0. secs (0.u,0.s) +Chars 7378 - 7399 [rewrite~tau_euttge~...] 0.009 secs (0.009u,0.s) +Chars 7407 - 7408 [*] 0. secs (0.u,0.s) +Chars 7409 - 7471 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 7480 - 7501 [rewrite~bind_trigger.] 0.015 secs (0.015u,0.s) +Chars 7510 - 7543 [rewrite~unfold_interp_mrec;~bcbn.] 0.016 secs (0.016u,0.s) +Chars 7552 - 7572 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 7573 - 7601 [repeat~rewrite~tau_euttge~...] 0.021 secs (0.021u,0.s) +Chars 7602 - 7606 [Qed.] 0.032 secs (0.032u,0.s) +Chars 7608 - 7628 [End~DinatSimulation.] 0. secs (0.u,0.s) +Chars 7630 - 7648 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) +Chars 7650 - 7710 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) +Chars 7711 - 7717 [Proof.] 0. secs (0.u,0.s) +Chars 7720 - 7749 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) +Chars 7752 - 7788 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 7789 - 7825 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) +Chars 7828 - 8010 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) +Chars 8013 - 8014 [{] 0. secs (0.u,0.s) +Chars 8015 - 8024 [compute~in~H.] 0. secs (0.u,0.s) +Chars 8025 - 8078 [etransitivity;~[~etransitivity...] 0.002 secs (0.002u,0.s) +Chars 8083 - 8084 [-] 0. secs (0.u,0.s) +Chars 8085 - 8094 [symmetry.] 0. secs (0.u,0.s) +Chars 8095 - 8137 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8144 - 8158 [1:~intros~?~?.] 0. secs (0.u,0.s) +Chars 8165 - 8227 [1,~2:~rewrite~tau_euttge;~appl...] 0.012 secs (0.012u,0.s) +Chars 8234 - 8284 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) +Chars 8289 - 8290 [-] 0. secs (0.u,0.s) +Chars 8291 - 8351 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) +Chars 8358 - 8387 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8394 - 8413 [rewrite~tau_euttge.] 0.009 secs (0.009u,0.s) +Chars 8414 - 8439 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) +Chars 8446 - 8457 [intros~?~?.] 0. secs (0.u,0.s) +Chars 8464 - 8483 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) +Chars 8490 - 8532 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) +Chars 8539 - 8590 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) +Chars 8593 - 8594 [}] 0. secs (0.u,0.s) +Chars 8597 - 8630 [rewrite~<-~interp_mrec_as_interp.] 0.003 secs (0.003u,0.s) +Chars 8634 - 8671 [rewrite~<-~(bind_ret_r~(interp...] 0.012 secs (0.012u,0.s) +Chars 8674 - 8712 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.016 secs (0.016u,0.s) +Chars 8716 - 8739 [apply~interleaved_mrec.] 0. secs (0.u,0.s) +Chars 8742 - 8759 [do~2~constructor.] 0. secs (0.u,0.s) +Chars 8760 - 8764 [Qed.] 0.013 secs (0.013u,0.s) +Chars 8766 - 8783 [Import~Recursion.] 0. secs (0.u,0.s) +Chars 8785 - 8847 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) +Chars 8848 - 8854 [Proof.] 0. secs (0.u,0.s) +Chars 8857 - 8880 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) +Chars 8883 - 8921 [remember~(f0~T~x)~as~t~eqn:EQt...] 0.001 secs (0.001u,0.s) +Chars 8924 - 8960 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 8963 - 9662 [enough~~(interp_mrec~(fun~_~d~...] 0.002 secs (0.002u,0.s) +Chars 9665 - 9666 [{] 0. secs (0.u,0.s) +Chars 9667 - 9675 [subst~f.] 0. secs (0.u,0.s) +Chars 9676 - 9731 [etransitivity;~[~etransitivity...] 0. secs (0.u,0.s) +Chars 9736 - 9737 [-] 0. secs (0.u,0.s) +Chars 9738 - 9747 [symmetry.] 0. secs (0.u,0.s) +Chars 9748 - 9790 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 9797 - 9798 [+] 0. secs (0.u,0.s) +Chars 9799 - 9810 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9811 - 9858 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) +Chars 9867 - 9878 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9879 - 9896 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 9903 - 9904 [+] 0. secs (0.u,0.s) +Chars 9905 - 9978 [apply~euttge_interp_mrec;~repe...] 0.002 secs (0.002u,0.s) +Chars 9987 - 9999 [reflexivity.] 0. secs (0.u,0.s) +Chars 10004 - 10005 [-] 0. secs (0.u,0.s) +Chars 10006 - 10108 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) +Chars 10115 - 10132 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 10135 - 10136 [}] 0. secs (0.u,0.s) +Chars 10139 - 10162 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 10167 - 10176 [revert~t.] 0. secs (0.u,0.s) +Chars 10177 - 10197 [coinduction;~intros.] 0.003 secs (0.003u,0.s) +Chars 10201 - 10251 [rewrite~(itree_eta~t);~destruc...] 0.015 secs (0.015u,0.s) +Chars 10254 - 10320 [all:~rewrite~(unfold_interp_mr...] 0.088 secs (0.087u,0.s) +Chars 10323 - 10361 [1,~2:~rewrite~unfold_interp_mr...] 0.052 secs (0.052u,0.s) +Chars 10364 - 10427 [1,~2:~rewrite~(unfold_interp_m...] 0.031 secs (0.031u,0.s) +Chars 10430 - 10435 [taus.] 0. secs (0.u,0.s) +Chars 10436 - 10446 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10450 - 10461 [destruct~e.] 0. secs (0.u,0.s) +Chars 10464 - 10465 [-] 0. secs (0.u,0.s) +Chars 10466 - 10513 [rewrite~(interp_mrec_bind~_~(I...] 0.016 secs (0.016u,0.s) +Chars 10518 - 10552 [rewrite~interp_mrec_trigger;~b...] 0.01 secs (0.01u,0.s) +Chars 10557 - 10579 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 10584 - 10647 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 10652 - 10697 [rewrite~interp_tau,~unfold_int...] 0.055 secs (0.055u,0.s) +Chars 10702 - 10749 [rewrite~(unfold_interp_mrec~_~...] 0.039 secs (0.039u,0.s) +Chars 10754 - 10772 [rewrite~!bind_tau.] 0.037 secs (0.037u,0.s) +Chars 10777 - 10782 [taus.] 0. secs (0.u,0.s) +Chars 10788 - 10807 [rewrite~tau_euttge.] 0.007 secs (0.007u,0.s) +Chars 10808 - 10834 [setoid_rewrite~tau_euttge.] 0.017 secs (0.017u,0.s) +Chars 10839 - 10883 [rewrite~<-~interp_mrec_bind,~<...] 0.028 secs (0.028u,0.s) +Chars 10888 - 10903 [auto~with~paco.] 0. secs (0.u,0.s) +Chars 10906 - 10907 [-] 0. secs (0.u,0.s) +Chars 10908 - 10929 [rewrite~bind_trigger.] 0.015 secs (0.015u,0.s) +Chars 10934 - 10960 [setoid_rewrite~tau_euttge.] 0.016 secs (0.016u,0.s) +Chars 10965 - 11000 [rewrite~2!unfold_interp_mrec;~...] 0.028 secs (0.027u,0.s) +Chars 11005 - 11016 [destruct~s.] 0. secs (0.u,0.s) +Chars 11017 - 11022 [taus.] 0. secs (0.u,0.s) +Chars 11028 - 11072 [rewrite~<-~interp_mrec_bind,~<...] 0.026 secs (0.026u,0.s) +Chars 11077 - 11087 [apply~CIH.] 0. secs (0.u,0.s) +Chars 11093 - 11113 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 11114 - 11129 [now~step;~taus.] 0.002 secs (0.002u,0.s) +Chars 11132 - 11136 [Qed.] 0.045 secs (0.044u,0.s) +Chars 11138 - 11197 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) +Chars 11198 - 11204 [Proof.] 0. secs (0.u,0.s) +Chars 11207 - 11232 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 11233 - 11237 [Qed.] 0. secs (0.u,0.s) +Chars 11239 - 11259 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/theories/Interp/Interp.v.timing b/theories/Interp/Interp.v.timing new file mode 100644 index 00000000..172ba8a1 --- /dev/null +++ b/theories/Interp/Interp.v.timing @@ -0,0 +1,7 @@ +Chars 1099 - 1172 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.026 secs (0.021u,0.005s) +Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.u,0.s) +Chars 2077 - 2212 [Definition~translate~{E}~{F}~(...] 0. secs (0.u,0.s) +Chars 2214 - 2248 [Arguments~translate~{E~F}~&~h~...] 0. secs (0.u,0.s) +Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.003 secs (0.003u,0.s) +Chars 2853 - 2893 [Arguments~interp~{E~M~FM~MM~IM...] 0. secs (0.u,0.s) diff --git a/theories/Interp/InterpFacts.v.timing b/theories/Interp/InterpFacts.v.timing new file mode 100644 index 00000000..a040a9c5 --- /dev/null +++ b/theories/Interp/InterpFacts.v.timing @@ -0,0 +1,341 @@ +Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) +Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.052 secs (0.045u,0.007s) +Chars 701 - 723 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 740 - 837 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 838 - 844 [Proof.] 0. secs (0.u,0.s) +Chars 847 - 865 [unfold~eq_Handler.] 0. secs (0.u,0.s) +Chars 868 - 923 [apply~(Equivalence_i_pointwise...] 0.001 secs (0.001u,0.s) +Chars 924 - 928 [Qed.] 0. secs (0.u,0.s) +Chars 930 - 1031 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 1032 - 1038 [Proof.] 0. secs (0.u,0.s) +Chars 1041 - 1061 [unfold~eutt_Handler.] 0. secs (0.u,0.s) +Chars 1064 - 1115 [apply~(Equivalence_i_pointwise...] 0. secs (0.u,0.s) +Chars 1116 - 1120 [Qed.] 0. secs (0.u,0.s) +Chars 1122 - 1213 [Definition~Equivalence_eq2_Han...] 0. secs (0.u,0.s) +Chars 1214 - 1220 [Proof.] 0. secs (0.u,0.s) +Chars 1223 - 1254 [exact~Equivalence_eutt_Handler.] 0. secs (0.u,0.s) +Chars 1255 - 1259 [Qed.] 0. secs (0.u,0.s) +Chars 1291 - 1505 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) +Chars 1528 - 1634 [Lemma~unfold_interp~{E}~{F}~{R...] 0. secs (0.u,0.s) +Chars 1635 - 1641 [Proof.] 0. secs (0.u,0.s) +Chars 1644 - 1688 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) +Chars 1689 - 1709 [rewrite~unfold_iter.] 0.002 secs (0.002u,0.s) +Chars 1712 - 1774 [destruct~(observe~t);~cbn;~rew...] 0.04 secs (0.04u,0.s) +Chars 1775 - 1796 [all:~try~reflexivity.] 0. secs (0.u,0.s) +Chars 1797 - 1801 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1936 - 2017 [Lemma~interp_ret~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) +Chars 2018 - 2024 [Proof.] 0. secs (0.u,0.s) +Chars 2025 - 2047 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) +Chars 2048 - 2060 [reflexivity.] 0. secs (0.u,0.s) +Chars 2061 - 2065 [Qed.] 0. secs (0.u,0.s) +Chars 2067 - 2179 [Lemma~interp_tau~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) +Chars 2180 - 2186 [Proof.] 0. secs (0.u,0.s) +Chars 2187 - 2209 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) +Chars 2210 - 2222 [reflexivity.] 0. secs (0.u,0.s) +Chars 2223 - 2227 [Qed.] 0. secs (0.u,0.s) +Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) +Chars 2395 - 2401 [Proof.] 0. secs (0.u,0.s) +Chars 2402 - 2424 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) +Chars 2425 - 2437 [reflexivity.] 0. secs (0.u,0.s) +Chars 2438 - 2442 [Qed.] 0. secs (0.u,0.s) +Chars 2444 - 2581 [Lemma~interp_trigger~{E~F~:~Ty...] 0. secs (0.u,0.s) +Chars 2582 - 2588 [Proof.] 0. secs (0.u,0.s) +Chars 2591 - 2612 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 2613 - 2632 [rewrite~interp_vis.] 0.011 secs (0.01u,0.001s) +Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.014 secs (0.011u,0.002s) +Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.s) +Chars 2691 - 2710 [rewrite~bind_ret_r.] 0.007 secs (0.007u,0.s) +Chars 2713 - 2725 [reflexivity.] 0. secs (0.u,0.s) +Chars 2726 - 2730 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2732 - 2775 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 2776 - 2819 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 2820 - 2867 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 2899 - 3058 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) +Chars 3059 - 3065 [Proof.] 0. secs (0.u,0.s) +Chars 3068 - 3085 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) +Chars 3088 - 3106 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3107 - 3114 [intros.] 0. secs (0.u,0.s) +Chars 3118 - 3142 [rewrite~2!unfold_interp.] 0.022 secs (0.022u,0.s) +Chars 3145 - 3155 [step~in~H.] 0. secs (0.u,0.s) +Chars 3160 - 3211 [destruct~H;~cbn;~subst;~try~ea...] 0.038 secs (0.038u,0.s) +Chars 3214 - 3252 [unfold~eq_Handler,~i_pointwise...] 0. secs (0.u,0.s) +Chars 3256 - 3268 [rewrite~Hfg.] 0.158 secs (0.157u,0.001s) +Chars 3272 - 3279 [to_mon.] 0. secs (0.u,0.s) +Chars 3331 - 3337 [ebind.] 0.006 secs (0.006u,0.s) +Chars 3338 - 3353 [intros~?~?~[=<-].] 0. secs (0.u,0.s) +Chars 3354 - 3377 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 3379 - 3383 [Qed.] 0.008 secs (0.008u,0.s) +Chars 3385 - 3504 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) +Chars 3505 - 3511 [Proof.] 0. secs (0.u,0.s) +Chars 3514 - 3525 [repeat~red.] 0. secs (0.u,0.s) +Chars 3528 - 3551 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) +Chars 3554 - 3566 [reflexivity.] 0. secs (0.u,0.s) +Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) +Chars 3573 - 3732 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) +Chars 3733 - 3739 [Proof.] 0. secs (0.u,0.s) +Chars 3742 - 3753 [repeat~red.] 0. secs (0.u,0.s) +Chars 3756 - 3771 [intros~until~T.] 0. secs (0.u,0.s) +Chars 3774 - 3786 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 3787 - 3794 [intros.] 0. secs (0.u,0.s) +Chars 3797 - 3820 [rewrite~!unfold_interp.] 0.021 secs (0.021u,0.s) +Chars 3821 - 3832 [step~in~H0.] 0. secs (0.u,0.s) +Chars 3836 - 3895 [induction~H0;~intros;~subst;~c...] 0.256 secs (0.254u,0.001s) +Chars 3901 - 3924 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 3928 - 3929 [-] 0. secs (0.u,0.s) +Chars 3930 - 3940 [do~2~step.] 0.01 secs (0.01u,0.s) +Chars 3941 - 3949 [apply~H.] 0. secs (0.u,0.s) +Chars 3953 - 3954 [-] 0. secs (0.u,0.s) +Chars 3955 - 3970 [intros~?~?~[=<-].] 0. secs (0.u,0.s) +Chars 3971 - 3994 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 3998 - 3999 [-] 0. secs (0.u,0.s) +Chars 4000 - 4005 [taul.] 0. secs (0.u,0.s) +Chars 4006 - 4013 [to_mon.] 0. secs (0.u,0.s) +Chars 4014 - 4036 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 4037 - 4051 [apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 4055 - 4056 [-] 0. secs (0.u,0.s) +Chars 4057 - 4062 [taur.] 0. secs (0.u,0.s) +Chars 4063 - 4070 [to_mon.] 0. secs (0.u,0.s) +Chars 4071 - 4093 [rewrite~unfold_interp.] 0.011 secs (0.01u,0.s) +Chars 4094 - 4108 [apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 4110 - 4114 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4117 - 4359 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 4360 - 4366 [Proof.] 0. secs (0.u,0.s) +Chars 4369 - 4380 [repeat~red.] 0. secs (0.u,0.s) +Chars 4383 - 4398 [intros~until~T.] 0. secs (0.u,0.s) +Chars 4401 - 4413 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4414 - 4421 [intros.] 0. secs (0.u,0.s) +Chars 4424 - 4447 [rewrite~!unfold_interp.] 0.018 secs (0.017u,0.s) +Chars 4448 - 4459 [step~in~H0.] 0. secs (0.u,0.s) +Chars 4463 - 4532 [induction~H0;~intros;~subst;~c...] 0.184 secs (0.182u,0.001s) +Chars 4535 - 4558 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 4562 - 4563 [-] 0. secs (0.u,0.s) +Chars 4564 - 4574 [do~2~step.] 0.01 secs (0.01u,0.s) +Chars 4575 - 4583 [apply~H.] 0. secs (0.u,0.s) +Chars 4587 - 4588 [-] 0. secs (0.u,0.s) +Chars 4589 - 4604 [intros~?~?~[=<-].] 0. secs (0.u,0.s) +Chars 4605 - 4628 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 4632 - 4633 [-] 0. secs (0.u,0.s) +Chars 4634 - 4639 [taul.] 0. secs (0.u,0.s) +Chars 4640 - 4647 [to_mon.] 0. secs (0.u,0.s) +Chars 4648 - 4670 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 4671 - 4685 [apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 4687 - 4691 [Qed.] 0.008 secs (0.008u,0.s) +Chars 4693 - 4871 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) +Chars 4872 - 4878 [Proof.] 0. secs (0.u,0.s) +Chars 4881 - 4892 [repeat~red.] 0. secs (0.u,0.s) +Chars 4895 - 4907 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4908 - 4915 [intros.] 0. secs (0.u,0.s) +Chars 4918 - 4941 [rewrite~!unfold_interp.] 0.022 secs (0.022u,0.s) +Chars 4944 - 4954 [step~in~H.] 0. secs (0.u,0.s) +Chars 4957 - 5010 [induction~H;~cbn;~try~easy;~ea...] 0.304 secs (0.302u,0.001s) +Chars 5014 - 5015 [-] 0. secs (0.u,0.s) +Chars 5016 - 5022 [ebind.] 0.014 secs (0.014u,0.s) +Chars 5023 - 5061 [intros;~subst;~taus;~eauto~wit...] 0.003 secs (0.003u,0.s) +Chars 5065 - 5066 [-] 0. secs (0.u,0.s) +Chars 5067 - 5089 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 5090 - 5099 [now~taul.] 0. secs (0.u,0.s) +Chars 5103 - 5104 [-] 0. secs (0.u,0.s) +Chars 5105 - 5127 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) +Chars 5128 - 5137 [now~taur.] 0. secs (0.u,0.s) +Chars 5139 - 5143 [Qed.] 0.007 secs (0.007u,0.s) +Chars 5145 - 5308 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 5309 - 5315 [Proof.] 0. secs (0.u,0.s) +Chars 5318 - 5329 [repeat~red.] 0. secs (0.u,0.s) +Chars 5330 - 5350 [apply~euttge_interp.] 0. secs (0.u,0.s) +Chars 5351 - 5363 [reflexivity.] 0. secs (0.u,0.s) +Chars 5364 - 5368 [Qed.] 0. secs (0.u,0.s) +Chars 5833 - 6011 [Lemma~interp_bind~{E}~{F}~{R}~...] 0. secs (0.u,0.s) +Chars 6012 - 6018 [Proof.] 0. secs (0.u,0.s) +Chars 6021 - 6034 [revert~R~t~k.] 0. secs (0.u,0.s) +Chars 6035 - 6055 [coinduction;~intros.] 0.001 secs (0.001u,0.s) +Chars 6059 - 6098 [rewrite~unfold_bind,~(unfold_i...] 0.024 secs (0.024u,0.s) +Chars 6101 - 6135 [destruct~(observe~t);~cbn;~to_...] 0.001 secs (0.001u,0.s) +Chars 6139 - 6140 [-] 0. secs (0.u,0.s) +Chars 6141 - 6160 [rewrite~bind_ret_l.] 0.012 secs (0.012u,0.s) +Chars 6161 - 6179 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 6182 - 6183 [-] 0. secs (0.u,0.s) +Chars 6184 - 6189 [taus.] 0. secs (0.u,0.s) +Chars 6190 - 6201 [fold_subst.] 0. secs (0.u,0.s) +Chars 6202 - 6212 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6216 - 6217 [-] 0. secs (0.u,0.s) +Chars 6218 - 6248 [rewrite~interp_vis,~bind_bind.] 0.023 secs (0.023u,0.s) +Chars 6249 - 6255 [ebind.] 0.005 secs (0.005u,0.s) +Chars 6261 - 6275 [intros;~subst.] 0. secs (0.u,0.s) +Chars 6280 - 6297 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) +Chars 6298 - 6303 [taus.] 0. secs (0.u,0.s) +Chars 6304 - 6314 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6316 - 6320 [Qed.] 0.008 secs (0.008u,0.s) +Chars 6322 - 6366 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 6404 - 6471 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) +Chars 6472 - 6478 [Proof.] 0. secs (0.u,0.s) +Chars 6481 - 6490 [revert~t.] 0. secs (0.u,0.s) +Chars 6491 - 6503 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 6504 - 6511 [intros.] 0. secs (0.u,0.s) +Chars 6514 - 6551 [rewrite~(itree_eta~t),~unfold_...] 0.019 secs (0.019u,0.s) +Chars 6554 - 6580 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) +Chars 6585 - 6586 [-] 0. secs (0.u,0.s) +Chars 6587 - 6599 [reflexivity.] 0. secs (0.u,0.s) +Chars 6603 - 6604 [-] 0. secs (0.u,0.s) +Chars 6605 - 6610 [taus.] 0. secs (0.u,0.s) +Chars 6611 - 6621 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6625 - 6626 [-] 0. secs (0.u,0.s) +Chars 6627 - 6639 [constructor.] 0. secs (0.u,0.s) +Chars 6640 - 6646 [intro.] 0. secs (0.u,0.s) +Chars 6647 - 6658 [fold_subst.] 0. secs (0.u,0.s) +Chars 6661 - 6691 [rewrite~bind_ret_,~tau_euttge.] 0.009 secs (0.009u,0.s) +Chars 6692 - 6702 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6704 - 6708 [Qed.] 0.006 secs (0.006u,0.s) +Chars 6710 - 6788 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) +Chars 6789 - 6795 [Proof.] 0. secs (0.u,0.s) +Chars 6798 - 6807 [revert~t.] 0. secs (0.u,0.s) +Chars 6808 - 6820 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 6821 - 6828 [intros.] 0. secs (0.u,0.s) +Chars 6831 - 6853 [rewrite~unfold_interp.] 0.009 secs (0.009u,0.s) +Chars 6854 - 6881 [rewrite~(itree_eta~t)~~at~2.] 0.011 secs (0.01u,0.s) +Chars 6884 - 6928 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) +Chars 6932 - 6951 [constructor;~intro.] 0. secs (0.u,0.s) +Chars 6952 - 6963 [fold_subst.] 0. secs (0.u,0.s) +Chars 6967 - 6998 [rewrite~bind_ret_l,~tau_euttge.] 0.01 secs (0.01u,0.s) +Chars 7001 - 7011 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7013 - 7017 [Qed.] 0.005 secs (0.005u,0.s) +Chars 7054 - 7225 [Theorem~interp_interp~{E}~{F}~...] 0. secs (0.u,0.s) +Chars 7226 - 7232 [Proof.] 0. secs (0.u,0.s) +Chars 7235 - 7247 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7248 - 7255 [intros.] 0. secs (0.u,0.s) +Chars 7259 - 7287 [rewrite~2!(unfold_interp~t).] 0.022 secs (0.022u,0.s) +Chars 7290 - 7334 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) +Chars 7338 - 7345 [to_mon.] 0. secs (0.u,0.s) +Chars 7346 - 7366 [rewrite~interp_bind.] 0.011 secs (0.011u,0.s) +Chars 7367 - 7373 [ebind.] 0.005 secs (0.005u,0.s) +Chars 7374 - 7388 [intros;~subst.] 0. secs (0.u,0.s) +Chars 7393 - 7412 [rewrite~interp_tau.] 0.011 secs (0.011u,0.s) +Chars 7413 - 7418 [taus.] 0. secs (0.u,0.s) +Chars 7419 - 7429 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7433 - 7437 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7439 - 7589 [Lemma~interp_translate~{E}~{F}...] 0.001 secs (0.001u,0.s) +Chars 7590 - 7596 [Proof.] 0. secs (0.u,0.s) +Chars 7599 - 7608 [revert~t.] 0. secs (0.u,0.s) +Chars 7613 - 7625 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 7629 - 7638 [intros~t.] 0. secs (0.u,0.s) +Chars 7641 - 7664 [rewrite~!unfold_interp.] 0.024 secs (0.023u,0.s) +Chars 7665 - 7680 [unfold~_interp.] 0. secs (0.u,0.s) +Chars 7683 - 7709 [rewrite~unfold_translate_.] 0.008 secs (0.008u,0.s) +Chars 7710 - 7728 [unfold~translateF.] 0. secs (0.u,0.s) +Chars 7731 - 7757 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) +Chars 7760 - 7761 [-] 0. secs (0.u,0.s) +Chars 7762 - 7780 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 7824 - 7825 [-] 0. secs (0.u,0.s) +Chars 7826 - 7831 [taus.] 0. secs (0.u,0.s) +Chars 7832 - 7842 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7846 - 7847 [-] 0. secs (0.u,0.s) +Chars 7848 - 7855 [to_mon.] 0. secs (0.u,0.s) +Chars 7856 - 7862 [ebind.] 0.006 secs (0.006u,0.s) +Chars 7863 - 7877 [intros;~subst.] 0. secs (0.u,0.s) +Chars 7878 - 7883 [taus.] 0. secs (0.u,0.s) +Chars 7884 - 7894 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7897 - 7901 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7903 - 8032 [Lemma~translate_to_interp~{E}~...] 0. secs (0.u,0.s) +Chars 8033 - 8039 [Proof.] 0. secs (0.u,0.s) +Chars 8042 - 8051 [revert~t.] 0. secs (0.u,0.s) +Chars 8052 - 8064 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 8065 - 8072 [intros.] 0. secs (0.u,0.s) +Chars 8075 - 8100 [rewrite~unfold_translate.] 0.01 secs (0.01u,0.s) +Chars 8103 - 8125 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) +Chars 8128 - 8172 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) +Chars 8176 - 8188 [constructor.] 0. secs (0.u,0.s) +Chars 8189 - 8195 [intro.] 0. secs (0.u,0.s) +Chars 8196 - 8207 [fold_subst.] 0. secs (0.u,0.s) +Chars 8211 - 8242 [rewrite~bind_ret_l,~tau_euttge.] 0.012 secs (0.012u,0.s) +Chars 8243 - 8253 [apply~CIH.] 0. secs (0.u,0.s) +Chars 8255 - 8259 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8261 - 8406 [Lemma~interp_forever~{E}~{F}~(...] 0. secs (0.u,0.s) +Chars 8407 - 8413 [Proof.] 0. secs (0.u,0.s) +Chars 8416 - 8428 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 8432 - 8459 [rewrite~(unfold_forever~t).] 0.01 secs (0.01u,0.s) +Chars 8462 - 8500 [rewrite~(unfold_forever~(inter...] 0.012 secs (0.012u,0.s) +Chars 8503 - 8523 [rewrite~interp_bind.] 0.009 secs (0.009u,0.s) +Chars 8526 - 8532 [ebind.] 0.005 secs (0.005u,0.s) +Chars 8533 - 8547 [intros;~subst.] 0. secs (0.u,0.s) +Chars 8550 - 8569 [rewrite~interp_tau.] 0.01 secs (0.01u,0.s) +Chars 8572 - 8577 [taus.] 0. secs (0.u,0.s) +Chars 8578 - 8588 [apply~CIH.] 0. secs (0.u,0.s) +Chars 8590 - 8594 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8596 - 8841 [Lemma~interp_iter'~{E}~{F}~(f~...] 0. secs (0.u,0.s) +Chars 8842 - 8848 [Proof.] 0. secs (0.u,0.s) +Chars 8851 - 8873 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) +Chars 8877 - 8899 [rewrite~2!unfold_iter.] 0.022 secs (0.022u,0.s) +Chars 8902 - 8922 [rewrite~interp_bind.] 0.01 secs (0.01u,0.s) +Chars 8925 - 8931 [ebind.] 0.005 secs (0.005u,0.s) +Chars 8935 - 8936 [{] 0. secs (0.u,0.s) +Chars 8937 - 8947 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 8948 - 8959 [apply~EQ_t.] 0. secs (0.u,0.s) +Chars 8960 - 8961 [}] 0. secs (0.u,0.s) +Chars 8964 - 8992 [intros~[]~_~[];~cbn;~to_mon.] 0.001 secs (0.001u,0.s) +Chars 8996 - 8997 [-] 0. secs (0.u,0.s) +Chars 8998 - 9003 [taus.] 0. secs (0.u,0.s) +Chars 9004 - 9014 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9018 - 9019 [-] 0. secs (0.u,0.s) +Chars 9020 - 9032 [reflexivity.] 0. secs (0.u,0.s) +Chars 9034 - 9038 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9040 - 9218 [Lemma~interp_iter~{E}~{F}~(f~:...] 0. secs (0.u,0.s) +Chars 9219 - 9225 [Proof.] 0. secs (0.u,0.s) +Chars 9228 - 9284 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 9287 - 9306 [apply~interp_iter'.] 0. secs (0.u,0.s) +Chars 9309 - 9321 [reflexivity.] 0. secs (0.u,0.s) +Chars 9322 - 9326 [Qed.] 0. secs (0.u,0.s) +Chars 9328 - 9548 [Lemma~interp_iter'_eutt~{E}~{F...] 0. secs (0.u,0.s) +Chars 9549 - 9555 [Proof.] 0. secs (0.u,0.s) +Chars 9558 - 9580 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) +Chars 9584 - 9606 [rewrite~2!unfold_iter.] 0.021 secs (0.021u,0.s) +Chars 9609 - 9629 [rewrite~interp_bind.] 0.009 secs (0.009u,0.s) +Chars 9632 - 9638 [ebind.] 0.005 secs (0.005u,0.s) +Chars 9642 - 9652 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 9653 - 9663 [apply~Heq.] 0. secs (0.u,0.s) +Chars 9666 - 9686 [intros~[]~_~[];~cbn.] 0.001 secs (0.001u,0.s) +Chars 9689 - 9690 [-] 0. secs (0.u,0.s) +Chars 9691 - 9696 [taus.] 0. secs (0.u,0.s) +Chars 9697 - 9707 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9711 - 9712 [-] 0. secs (0.u,0.s) +Chars 9713 - 9725 [reflexivity.] 0. secs (0.u,0.s) +Chars 9727 - 9731 [Qed.] 0.006 secs (0.006u,0.s) +Chars 9733 - 9916 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) +Chars 9917 - 9923 [Proof.] 0. secs (0.u,0.s) +Chars 9926 - 9938 [unfold~loop.] 0. secs (0.u,0.s) +Chars 9939 - 9979 [unfold~cat,~Cat_Kleisli,~ITree...] 0. secs (0.u,0.s) +Chars 9982 - 10002 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) +Chars 10005 - 10021 [apply~eqit_bind.] 0. secs (0.u,0.s) +Chars 10024 - 10025 [{] 0. secs (0.u,0.s) +Chars 10026 - 10074 [unfold~inr_,~Inr_Kleisli,~lift...] 0. secs (0.u,0.s) +Chars 10079 - 10098 [rewrite~interp_ret.] 0.001 secs (0.001u,0.s) +Chars 10103 - 10115 [reflexivity.] 0. secs (0.u,0.s) +Chars 10118 - 10119 [}] 0. secs (0.u,0.s) +Chars 10122 - 10135 [repeat~intro.] 0. secs (0.u,0.s) +Chars 10138 - 10158 [rewrite~interp_iter.] 0.003 secs (0.003u,0.s) +Chars 10161 - 10181 [apply~eq_itree_iter.] 0. secs (0.u,0.s) +Chars 10184 - 10198 [intros~?~?~[].] 0. secs (0.u,0.s) +Chars 10201 - 10221 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) +Chars 10224 - 10257 [apply~eqit_bind;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 10260 - 10275 [intros~[];~cbn.] 0. secs (0.u,0.s) +Chars 10276 - 10287 [unfold~cat.] 0. secs (0.u,0.s) +Chars 10288 - 10308 [rewrite~interp_bind.] 0.002 secs (0.002u,0.s) +Chars 10311 - 10312 [-] 0. secs (0.u,0.s) +Chars 10313 - 10374 [unfold~inl_,~Inl_Kleisli,~inr_...] 0. secs (0.u,0.s) +Chars 10379 - 10423 [rewrite~interp_ret,~!bind_ret_...] 0.009 secs (0.009u,0.s) +Chars 10428 - 10440 [reflexivity.] 0. secs (0.u,0.s) +Chars 10443 - 10444 [-] 0. secs (0.u,0.s) +Chars 10445 - 10515 [unfold~cat,~id_,~Id_Kleisli,~i...] 0. secs (0.u,0.s) +Chars 10520 - 10577 [rewrite~interp_bind,~interp_re...] 0.012 secs (0.012u,0.s) +Chars 10582 - 10594 [reflexivity.] 0. secs (0.u,0.s) +Chars 10595 - 10599 [Qed.] 0.007 secs (0.007u,0.s) +Chars 10601 - 10750 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) +Chars 10751 - 10757 [Proof.] 0. secs (0.u,0.s) +Chars 10760 - 10788 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) +Chars 10791 - 10817 [rewrite~interp_iter'_eutt.] 0. secs (0.u,0.s) +Chars 10818 - 10830 [reflexivity.] 0. secs (0.u,0.s) +Chars 10831 - 10839 [clear~i.] 0. secs (0.u,0.s) +Chars 10842 - 10851 [intros~i.] 0. secs (0.u,0.s) +Chars 10852 - 10856 [cbn.] 0. secs (0.u,0.s) +Chars 10857 - 10885 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) +Chars 10886 - 10898 [reflexivity.] 0. secs (0.u,0.s) +Chars 10899 - 10903 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Interp/Recursion.v.timing b/theories/Interp/Recursion.v.timing new file mode 100644 index 00000000..6bc100cc --- /dev/null +++ b/theories/Interp/Recursion.v.timing @@ -0,0 +1,24 @@ +Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.028 secs (0.023u,0.005s) +Chars 128 - 150 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 151 - 183 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.002 secs (0.001u,0.s) +Chars 2132 - 2170 [Arguments~interp_mrec~{D~E}~&~...] 0. secs (0.u,0.s) +Chars 2276 - 2409 [Definition~mrec~{D~E~:~Type~->...] 0. secs (0.u,0.s) +Chars 2411 - 2442 [Arguments~mrec~{D~E}~&~ctx~[T].] 0. secs (0.u,0.s) +Chars 2508 - 2614 [Definition~trigger_inl1~{D~E~:...] 0. secs (0.u,0.s) +Chars 2616 - 2649 [Arguments~trigger_inl1~{D~E}~[T].] 0. secs (0.u,0.s) +Chars 2781 - 2815 [#[local]~Notation~endo~T:=~(T~...] 0. secs (0.u,0.s) +Chars 2817 - 2950 [Definition~mrec_fix~{D~E~:~Typ...] 0. secs (0.u,0.s) +Chars 2952 - 2979 [Arguments~mrec_fix~{D~E}~&.] 0. secs (0.u,0.s) +Chars 2981 - 3136 [Notation~"'mrec-fix'~f~d~:=~g"...] 0. secs (0.u,0.s) +Chars 3209 - 3282 [Inductive~callE~(A~B~:~Type)~:...] 0. secs (0.u,0.s) +Chars 3284 - 3305 [Arguments~Call~{A~B}.] 0. secs (0.u,0.s) +Chars 3354 - 3442 [Definition~unCall~{A}~{B}~{T}~...] 0.002 secs (0.001u,0.s) +Chars 3500 - 3648 [Definition~calling~{A}~{B}~{F~...] 0. secs (0.u,0.s) +Chars 3846 - 4007 [Definition~calling'~{A}~{B}~{F...] 0. secs (0.u,0.s) +Chars 4056 - 4216 [Definition~rec~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) +Chars 4218 - 4242 [Arguments~rec~{E~A~B}~&.] 0. secs (0.u,0.s) +Chars 4496 - 4586 [Definition~call~{E}~{A}~{B}~(a...] 0. secs (0.u,0.s) +Chars 4652 - 4800 [Definition~rec_fix~{E~:~Type~-...] 0. secs (0.u,0.s) +Chars 4802 - 4830 [Arguments~rec_fix~{E~A~B}~&.] 0. secs (0.u,0.s) +Chars 4832 - 4926 [Notation~"'rec-fix'~f~a~:=~g"~...] 0. secs (0.u,0.s) diff --git a/theories/Interp/RecursionFacts.v.timing b/theories/Interp/RecursionFacts.v.timing new file mode 100644 index 00000000..2eb104c0 --- /dev/null +++ b/theories/Interp/RecursionFacts.v.timing @@ -0,0 +1,242 @@ +Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.005 secs (0.003u,0.002s) +Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.055 secs (0.048u,0.007s) +Chars 669 - 691 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 693 - 707 [Section~Facts.] 0. secs (0.u,0.s) +Chars 709 - 766 [Context~{D~E~:~Type~->~Type}~(...] 0. secs (0.u,0.s) +Chars 804 - 1117 [Definition~_interp_mrec~{R~:~T...] 0.001 secs (0.001u,0.s) +Chars 1433 - 1534 [Lemma~unfold_interp_mrec~R~(t~...] 0. secs (0.u,0.s) +Chars 1535 - 1541 [Proof.] 0. secs (0.u,0.s) +Chars 1544 - 1563 [unfold~interp_mrec.] 0. secs (0.u,0.s) +Chars 1566 - 1586 [rewrite~unfold_iter.] 0.005 secs (0.005u,0.s) +Chars 1589 - 1611 [destruct~observe;~cbn.] 0. secs (0.u,0.s) +Chars 1614 - 1615 [-] 0. secs (0.u,0.s) +Chars 1616 - 1648 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) +Chars 1651 - 1652 [-] 0. secs (0.u,0.s) +Chars 1653 - 1685 [rewrite~bind_ret_l;~reflexivity.] 0.031 secs (0.031u,0.s) +Chars 1688 - 1689 [-] 0. secs (0.u,0.s) +Chars 1690 - 1706 [destruct~e;~cbn.] 0. secs (0.u,0.s) +Chars 1711 - 1712 [+] 0. secs (0.u,0.s) +Chars 1713 - 1745 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) +Chars 1750 - 1751 [+] 0. secs (0.u,0.s) +Chars 1752 - 1769 [rewrite~bind_vis.] 0.004 secs (0.004u,0.s) +Chars 1776 - 1794 [step;~constructor.] 0.002 secs (0.002u,0.s) +Chars 1795 - 1802 [intros.] 0. secs (0.u,0.s) +Chars 1809 - 1828 [rewrite~bind_ret_l.] 0.007 secs (0.006u,0.s) +Chars 1835 - 1853 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 1854 - 1858 [Qed.] 0.007 secs (0.006u,0.s) +Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0. secs (0.u,0.s) +Chars 2130 - 2230 [#[global]~Instance~eq_itree_mr...] 0. secs (0.u,0.s) +Chars 2231 - 2237 [Proof.] 0. secs (0.u,0.s) +Chars 2240 - 2251 [repeat~red.] 0. secs (0.u,0.s) +Chars 2255 - 2267 [coinduction.] 0.002 secs (0.001u,0.s) +Chars 2268 - 2275 [intros.] 0. secs (0.u,0.s) +Chars 2278 - 2306 [rewrite~!unfold_interp_mrec.] 0.025 secs (0.023u,0.002s) +Chars 2309 - 2319 [step~in~H.] 0. secs (0.u,0.s) +Chars 2320 - 2344 [inv~H;~eauto~with~itree.] 0.064 secs (0.063u,0.s) +Chars 2348 - 2349 [-] 0. secs (0.u,0.s) +Chars 2350 - 2355 [taus.] 0. secs (0.u,0.s) +Chars 2356 - 2370 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 2374 - 2375 [-] 0. secs (0.u,0.s) +Chars 2376 - 2380 [cbn.] 0. secs (0.u,0.s) +Chars 2381 - 2392 [destruct~e.] 0. secs (0.u,0.s) +Chars 2397 - 2398 [+] 0. secs (0.u,0.s) +Chars 2399 - 2404 [taus.] 0. secs (0.u,0.s) +Chars 2405 - 2415 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2422 - 2428 [ebind.] 0.004 secs (0.004u,0.s) +Chars 2429 - 2443 [intros;~subst.] 0. secs (0.u,0.s) +Chars 2450 - 2460 [do~2~step.] 0.006 secs (0.006u,0.s) +Chars 2461 - 2471 [apply~REL.] 0. secs (0.u,0.s) +Chars 2477 - 2478 [+] 0. secs (0.u,0.s) +Chars 2479 - 2491 [constructor.] 0. secs (0.u,0.s) +Chars 2492 - 2498 [intro.] 0. secs (0.u,0.s) +Chars 2499 - 2504 [step.] 0.001 secs (0.001u,0.s) +Chars 2505 - 2510 [taus.] 0. secs (0.u,0.s) +Chars 2511 - 2521 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2526 - 2536 [apply~REL.] 0. secs (0.u,0.s) +Chars 2540 - 2544 [Qed.] 0.009 secs (0.009u,0.s) +Chars 2546 - 2721 [Theorem~interp_mrec_bind~{U}~{...] 0. secs (0.u,0.s) +Chars 2722 - 2728 [Proof.] 0. secs (0.u,0.s) +Chars 2731 - 2763 [revert~t~k;~coinduction;~intros.] 0.001 secs (0.001u,0.s) +Chars 2766 - 2799 [rewrite~(unfold_interp_mrec~_~t).] 0.012 secs (0.012u,0.s) +Chars 2802 - 2826 [rewrite~(unfold_bind~t).] 0.011 secs (0.011u,0.s) +Chars 2829 - 2881 [destruct~(observe~t);~cbn;~[~~...] 0.002 secs (0.002u,0.s) +Chars 2885 - 2886 [-] 0. secs (0.u,0.s) +Chars 2887 - 2905 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 2908 - 2909 [-] 0. secs (0.u,0.s) +Chars 2910 - 2915 [taus.] 0. secs (0.u,0.s) +Chars 2916 - 2927 [fold_subst.] 0. secs (0.u,0.s) +Chars 2928 - 2938 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2942 - 2943 [-] 0. secs (0.u,0.s) +Chars 2944 - 2951 [to_mon.] 0. secs (0.u,0.s) +Chars 2952 - 2957 [taus.] 0. secs (0.u,0.s) +Chars 2958 - 2969 [fold_subst.] 0. secs (0.u,0.s) +Chars 2975 - 2996 [rewrite~<-~bind_bind.] 0.008 secs (0.008u,0.s) +Chars 3001 - 3011 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3016 - 3017 [-] 0. secs (0.u,0.s) +Chars 3018 - 3030 [constructor.] 0. secs (0.u,0.s) +Chars 3031 - 3037 [intro.] 0. secs (0.u,0.s) +Chars 3038 - 3049 [fold_subst.] 0. secs (0.u,0.s) +Chars 3055 - 3084 [rewrite~bind_ret_l,~bind_tau.] 0.019 secs (0.019u,0.s) +Chars 3090 - 3095 [step.] 0.001 secs (0.001u,0.s) +Chars 3096 - 3101 [taus.] 0. secs (0.u,0.s) +Chars 3102 - 3112 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3116 - 3120 [Qed.] 0.009 secs (0.008u,0.s) +Chars 3122 - 3236 [Theorem~interp_mrec_trigger~{U...] 0. secs (0.u,0.s) +Chars 3237 - 3243 [Proof.] 0. secs (0.u,0.s) +Chars 3246 - 3292 [rewrite~unfold_interp_mrec;~un...] 0.009 secs (0.009u,0.s) +Chars 3295 - 3311 [destruct~a;~cbn.] 0. secs (0.u,0.s) +Chars 3314 - 3345 [rewrite~tau_euttge,~bind_ret_r.] 0.008 secs (0.008u,0.s) +Chars 3348 - 3360 [reflexivity.] 0. secs (0.u,0.s) +Chars 3363 - 3381 [step;~constructor.] 0.001 secs (0.001u,0.s) +Chars 3382 - 3389 [intros.] 0. secs (0.u,0.s) +Chars 3390 - 3434 [rewrite~tau_euttge,~unfold_int...] 0.01 secs (0.01u,0.s) +Chars 3437 - 3455 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 3456 - 3460 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3462 - 3564 [Theorem~interp_mrec_as_interp~...] 0. secs (0.u,0.s) +Chars 3565 - 3571 [Proof.] 0. secs (0.u,0.s) +Chars 3574 - 3609 [rewrite~<-~(tau_eutt~(interp~_...] 0. secs (0.u,0.s) +Chars 3612 - 3627 [revert_until~T.] 0. secs (0.u,0.s) +Chars 3628 - 3640 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 3641 - 3648 [intros.] 0. secs (0.u,0.s) +Chars 3651 - 3693 [rewrite~unfold_interp_mrec,~un...] 0.022 secs (0.021u,0.s) +Chars 3696 - 3759 [destruct~(observe~c0);~[~~|~~|...] 0.003 secs (0.003u,0.s) +Chars 3762 - 3763 [-] 0. secs (0.u,0.s) +Chars 3764 - 3773 [now~taur.] 0.001 secs (0.001u,0.s) +Chars 3777 - 3778 [-] 0. secs (0.u,0.s) +Chars 3779 - 3784 [taus.] 0. secs (0.u,0.s) +Chars 3785 - 3795 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3799 - 3800 [-] 0. secs (0.u,0.s) +Chars 3801 - 3806 [taus.] 0. secs (0.u,0.s) +Chars 3807 - 3832 [rewrite~interp_mrec_bind.] 0.009 secs (0.009u,0.s) +Chars 3833 - 3845 [unfold~mrec.] 0. secs (0.u,0.s) +Chars 3848 - 3854 [ebind.] 0.004 secs (0.004u,0.s) +Chars 3855 - 3869 [intros;~subst.] 0. secs (0.u,0.s) +Chars 3870 - 3880 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3884 - 3885 [-] 0. secs (0.u,0.s) +Chars 3886 - 3893 [to_mon.] 0. secs (0.u,0.s) +Chars 3894 - 3913 [rewrite~tau_euttge.] 0.004 secs (0.004u,0.s) +Chars 3919 - 3940 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 3942 - 3959 [rewrite~bind_vis.] 0.011 secs (0.011u,0.s) +Chars 3964 - 3976 [constructor.] 0. secs (0.u,0.s) +Chars 3977 - 3983 [intro.] 0. secs (0.u,0.s) +Chars 3989 - 4008 [rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) +Chars 4009 - 4028 [rewrite~tau_euttge.] 0.002 secs (0.002u,0.s) +Chars 4029 - 4039 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4041 - 4045 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4047 - 4137 [Theorem~mrec_as_interp~{T}~(d~...] 0. secs (0.u,0.s) +Chars 4138 - 4144 [Proof.] 0. secs (0.u,0.s) +Chars 4147 - 4175 [apply~interp_mrec_as_interp.] 0. secs (0.u,0.s) +Chars 4176 - 4180 [Qed.] 0. secs (0.u,0.s) +Chars 4182 - 4280 [Lemma~interp_mrecursive~{T}~(d...] 0. secs (0.u,0.s) +Chars 4281 - 4287 [Proof.] 0. secs (0.u,0.s) +Chars 4290 - 4308 [unfold~mrecursive.] 0. secs (0.u,0.s) +Chars 4309 - 4329 [unfold~trigger_inl1.] 0. secs (0.u,0.s) +Chars 4332 - 4355 [rewrite~interp_trigger.] 0.001 secs (0.001u,0.s) +Chars 4356 - 4360 [cbn.] 0. secs (0.u,0.s) +Chars 4361 - 4373 [reflexivity.] 0. secs (0.u,0.s) +Chars 4374 - 4378 [Qed.] 0. secs (0.u,0.s) +Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0. secs (0.u,0.s) +Chars 4517 - 4523 [Proof.] 0. secs (0.u,0.s) +Chars 4526 - 4546 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 4549 - 4558 [revert~t.] 0. secs (0.u,0.s) +Chars 4559 - 4571 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4572 - 4579 [intros.] 0. secs (0.u,0.s) +Chars 4582 - 4626 [rewrite~(itree_eta~t);~destruc...] 0.012 secs (0.012u,0.s) +Chars 4629 - 4630 [-] 0. secs (0.u,0.s) +Chars 4631 - 4670 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.025u,0.s) +Chars 4674 - 4675 [-] 0. secs (0.u,0.s) +Chars 4676 - 4720 [rewrite~unfold_interp,~2!unfol...] 0.035 secs (0.034u,0.s) +Chars 4726 - 4731 [taus.] 0. secs (0.u,0.s) +Chars 4732 - 4742 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4746 - 4747 [-] 0. secs (0.u,0.s) +Chars 4748 - 4767 [rewrite~interp_vis.] 0.012 secs (0.012u,0.s) +Chars 4772 - 4813 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) +Chars 4818 - 4842 [destruct~e;~cbn;~to_mon.] 0. secs (0.u,0.s) +Chars 4848 - 4849 [+] 0. secs (0.u,0.s) +Chars 4850 - 4877 [rewrite~2!interp_mrec_bind.] 0.024 secs (0.024u,0.s) +Chars 4884 - 4889 [taus.] 0. secs (0.u,0.s) +Chars 4897 - 4918 [ebind;~intros;~subst.] 0.004 secs (0.004u,0.s) +Chars 4926 - 4969 [rewrite~unfold_interp_mrec;~cb...] 0.009 secs (0.009u,0.s) +Chars 4975 - 4976 [+] 0. secs (0.u,0.s) +Chars 4977 - 5063 [unfold~inr_,~Handler.Inr_sum1_...] 0. secs (0.u,0.s) +Chars 5070 - 5124 [rewrite~bind_trigger,~unfold_i...] 0.024 secs (0.024u,0.s) +Chars 5131 - 5150 [rewrite~tau_euttge.] 0.003 secs (0.003u,0.s) +Chars 5157 - 5169 [constructor.] 0. secs (0.u,0.s) +Chars 5176 - 5183 [intros.] 0. secs (0.u,0.s) +Chars 5184 - 5189 [step.] 0.001 secs (0.001u,0.s) +Chars 5190 - 5195 [taus.] 0. secs (0.u,0.s) +Chars 5203 - 5235 [rewrite~unfold_interp_mrec;~cbn.] 0.008 secs (0.008u,0.s) +Chars 5242 - 5252 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5254 - 5258 [Qed.] 0.014 secs (0.013u,0.s) +Chars 5260 - 5270 [End~Facts.] 0. secs (0.u,0.s) +Chars 5272 - 5297 [#[local]~Opaque~interp_mrec.] 0. secs (0.u,0.s) +Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0. secs (0.u,0.s) +Chars 5557 - 5563 [Proof.] 0. secs (0.u,0.s) +Chars 5566 - 5583 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) +Chars 5586 - 5615 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) +Chars 5618 - 5647 [rewrite~2!unfold_interp_mrec.] 0.02 secs (0.02u,0.s) +Chars 5650 - 5680 [step~in~Ht;~induction~Ht;~cbn.] 0.001 secs (0.001u,0.s) +Chars 5684 - 5688 [3:~{] 0. secs (0.u,0.s) +Chars 5689 - 5713 [destruct~e;~constructor.] 0. secs (0.u,0.s) +Chars 5719 - 5720 [+] 0. secs (0.u,0.s) +Chars 5721 - 5731 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5732 - 5738 [ebind.] 0.004 secs (0.004u,0.s) +Chars 5739 - 5749 [apply~Hfg.] 0. secs (0.u,0.s) +Chars 5758 - 5772 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 5773 - 5783 [apply~REL.] 0. secs (0.u,0.s) +Chars 5789 - 5790 [+] 0. secs (0.u,0.s) +Chars 5791 - 5810 [intros;~step;~taus.] 0.003 secs (0.003u,0.s) +Chars 5811 - 5833 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) +Chars 5836 - 5837 [}] 0. secs (0.u,0.s) +Chars 5840 - 5879 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) +Chars 5882 - 5940 [all:~to_mon;~rewrite~unfold_in...] 0.029 secs (0.029u,0.s) +Chars 5941 - 5945 [Qed.] 0.009 secs (0.009u,0.s) +Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) +Chars 6195 - 6310 [Lemma~rec_as_interp~{E}~{A}~{B...] 0. secs (0.u,0.s) +Chars 6311 - 6317 [Proof.] 0. secs (0.u,0.s) +Chars 6320 - 6331 [unfold~rec.] 0. secs (0.u,0.s) +Chars 6334 - 6357 [rewrite~mrec_as_interp.] 0.001 secs (0.001u,0.s) +Chars 6360 - 6378 [apply~eq_sub_eutt.] 0. secs (0.u,0.s) +Chars 6381 - 6404 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) +Chars 6407 - 6408 [-] 0. secs (0.u,0.s) +Chars 6409 - 6413 [red.] 0. secs (0.u,0.s) +Chars 6414 - 6458 [unfold~case_;~intros~?~[[]|~];...] 0. secs (0.u,0.s) +Chars 6461 - 6462 [-] 0. secs (0.u,0.s) +Chars 6463 - 6475 [reflexivity.] 0. secs (0.u,0.s) +Chars 6476 - 6480 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6482 - 6607 [Lemma~interp_recursive_call~{E...] 0. secs (0.u,0.s) +Chars 6608 - 6614 [Proof.] 0. secs (0.u,0.s) +Chars 6617 - 6634 [unfold~recursive.] 0. secs (0.u,0.s) +Chars 6635 - 6647 [unfold~call.] 0. secs (0.u,0.s) +Chars 6650 - 6673 [rewrite~interp_trigger.] 0. secs (0.u,0.s) +Chars 6674 - 6678 [cbn.] 0. secs (0.u,0.s) +Chars 6681 - 6693 [reflexivity.] 0. secs (0.u,0.s) +Chars 6694 - 6698 [Qed.] 0. secs (0.u,0.s) +Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 6967 - 6973 [Proof.] 0. secs (0.u,0.s) +Chars 6976 - 6993 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) +Chars 6996 - 7025 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) +Chars 7028 - 7057 [rewrite~2!unfold_interp_mrec.] 0.013 secs (0.013u,0.s) +Chars 7060 - 7100 [step~in~Ht;~induction~Ht;~try~...] 0.08 secs (0.08u,0.s) +Chars 7104 - 7108 [3:~{] 0. secs (0.u,0.s) +Chars 7109 - 7133 [destruct~e;~constructor.] 0. secs (0.u,0.s) +Chars 7139 - 7140 [+] 0. secs (0.u,0.s) +Chars 7141 - 7151 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7152 - 7158 [ebind.] 0.004 secs (0.004u,0.s) +Chars 7159 - 7169 [apply~Hfg.] 0. secs (0.u,0.s) +Chars 7178 - 7192 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 7193 - 7203 [apply~REL.] 0. secs (0.u,0.s) +Chars 7209 - 7210 [+] 0. secs (0.u,0.s) +Chars 7211 - 7230 [intros;~step;~taus.] 0.001 secs (0.001u,0.s) +Chars 7231 - 7253 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) +Chars 7256 - 7257 [}] 0. secs (0.u,0.s) +Chars 7260 - 7299 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) +Chars 7302 - 7360 [all:~to_mon;~rewrite~unfold_in...] 0.013 secs (0.013u,0.s) +Chars 7361 - 7365 [Qed.] 0.008 secs (0.008u,0.s) +Chars 7367 - 7504 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 7505 - 7511 [Proof.] 0. secs (0.u,0.s) +Chars 7514 - 7523 [do~4~red.] 0. secs (0.u,0.s) +Chars 7524 - 7550 [eapply~euttge_interp_mrec.] 0. secs (0.u,0.s) +Chars 7551 - 7563 [reflexivity.] 0. secs (0.u,0.s) +Chars 7564 - 7568 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Interp/Traces.v.timing b/theories/Interp/Traces.v.timing new file mode 100644 index 00000000..54e8a7e9 --- /dev/null +++ b/theories/Interp/Traces.v.timing @@ -0,0 +1,223 @@ +Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) +Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.15 secs (0.135u,0.015s) +Chars 223 - 246 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) +Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.u,0.s) +Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0. secs (0.u,0.s) +Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0.004 secs (0.003u,0.s) +Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.003 secs (0.002u,0.s) +Chars 1431 - 1524 [Definition~is_trace~{E~:~Type~...] 0. secs (0.u,0.s) +Chars 1542 - 1695 [Definition~trace_incl~{E~:~Typ...] 0. secs (0.u,0.s) +Chars 1713 - 1857 [Definition~trace_eq~{E~:~Type~...] 0. secs (0.u,0.s) +Chars 1859 - 1973 [Lemma~is_traceF_tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 1974 - 1980 [Proof.] 0. secs (0.u,0.s) +Chars 1983 - 1990 [intros.] 0. secs (0.u,0.s) +Chars 1991 - 2005 [split;~intros.] 0. secs (0.u,0.s) +Chars 2008 - 2009 [-] 0. secs (0.u,0.s) +Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) +Chars 2023 - 2044 [remember~(observe~t).] 0. secs (0.u,0.s) +Chars 2049 - 2072 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 2077 - 2143 [induction~H;~intros;~subst;~co...] 0.001 secs (0.u,0.s) +Chars 2146 - 2147 [-] 0. secs (0.u,0.s) +Chars 2148 - 2190 [inversion~H;~subst;~try~constr...] 0.001 secs (0.001u,0.s) +Chars 2191 - 2195 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2197 - 2293 [Lemma~sutt_trace_incl~:~~~fora...] 0. secs (0.u,0.s) +Chars 2294 - 2300 [Proof.] 0. secs (0.u,0.s) +Chars 2303 - 2307 [red.] 0. secs (0.u,0.s) +Chars 2308 - 2315 [intros.] 0. secs (0.u,0.s) +Chars 2316 - 2326 [red~in~H0.] 0. secs (0.u,0.s) +Chars 2327 - 2349 [remember~(observe~t1).] 0. secs (0.u,0.s) +Chars 2352 - 2376 [generalize~dependent~t1.] 0. secs (0.u,0.s) +Chars 2377 - 2401 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 2404 - 2450 [induction~H0;~intros;~try~(sol...] 0.001 secs (0.u,0.s) +Chars 2453 - 2454 [-] 0. secs (0.u,0.s) +Chars 2455 - 2465 [step~in~H.] 0. secs (0.u,0.s) +Chars 2466 - 2487 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 2492 - 2510 [remember~(RetF~_).] 0. secs (0.u,0.s) +Chars 2511 - 2533 [remember~(observe~t2).] 0. secs (0.u,0.s) +Chars 2538 - 2562 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 2567 - 2638 [induction~H;~intros;~try~inv~H...] 0.028 secs (0.026u,0.002s) +Chars 2643 - 2665 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) +Chars 2668 - 2669 [-] 0. secs (0.u,0.s) +Chars 2670 - 2707 [apply~IHis_traceF~with~(t1~:=~...] 0. secs (0.u,0.s) +Chars 2712 - 2736 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) +Chars 2737 - 2741 [red.] 0. secs (0.u,0.s) +Chars 2742 - 2751 [red~in~H.] 0. secs (0.u,0.s) +Chars 2752 - 2773 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 2774 - 2779 [auto.] 0. secs (0.u,0.s) +Chars 2782 - 2783 [-] 0. secs (0.u,0.s) +Chars 2784 - 2794 [step~in~H.] 0. secs (0.u,0.s) +Chars 2795 - 2816 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 2821 - 2841 [remember~(VisF~_~_).] 0. secs (0.u,0.s) +Chars 2842 - 2864 [remember~(observe~t2).] 0. secs (0.u,0.s) +Chars 2869 - 2893 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 2898 - 2936 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) +Chars 2941 - 2942 [+] 0. secs (0.u,0.s) +Chars 2943 - 2951 [inv_Vis.] 0.007 secs (0.007u,0.s) +Chars 2952 - 2958 [subst.] 0. secs (0.u,0.s) +Chars 2959 - 2963 [red.] 0. secs (0.u,0.s) +Chars 2964 - 2981 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 2982 - 2994 [constructor.] 0. secs (0.u,0.s) +Chars 2999 - 3000 [+] 0. secs (0.u,0.s) +Chars 3001 - 3005 [red.] 0. secs (0.u,0.s) +Chars 3006 - 3023 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 3024 - 3036 [constructor.] 0. secs (0.u,0.s) +Chars 3037 - 3059 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) +Chars 3062 - 3063 [-] 0. secs (0.u,0.s) +Chars 3064 - 3074 [step~in~H.] 0. secs (0.u,0.s) +Chars 3075 - 3096 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 3101 - 3121 [remember~(VisF~_~_).] 0. secs (0.u,0.s) +Chars 3122 - 3144 [remember~(observe~t2).] 0. secs (0.u,0.s) +Chars 3149 - 3173 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 3178 - 3216 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) +Chars 3221 - 3222 [+] 0. secs (0.u,0.s) +Chars 3223 - 3231 [inv_Vis.] 0.038 secs (0.038u,0.s) +Chars 3232 - 3238 [subst.] 0. secs (0.u,0.s) +Chars 3239 - 3243 [red.] 0. secs (0.u,0.s) +Chars 3244 - 3261 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 3262 - 3274 [constructor.] 0. secs (0.u,0.s) +Chars 3281 - 3317 [eapply~IHis_traceF;~auto~with~...] 0. secs (0.u,0.s) +Chars 3322 - 3323 [+] 0. secs (0.u,0.s) +Chars 3324 - 3328 [red.] 0. secs (0.u,0.s) +Chars 3329 - 3346 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 3347 - 3359 [constructor.] 0. secs (0.u,0.s) +Chars 3360 - 3380 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) +Chars 3381 - 3385 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3387 - 3475 [Lemma~eutt_trace_eq~:~~~forall...] 0. secs (0.u,0.s) +Chars 3476 - 3482 [Proof.] 0. secs (0.u,0.s) +Chars 3485 - 3491 [split.] 0. secs (0.u,0.s) +Chars 3494 - 3495 [-] 0. secs (0.u,0.s) +Chars 3496 - 3541 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) +Chars 3544 - 3545 [-] 0. secs (0.u,0.s) +Chars 3546 - 3560 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 3561 - 3606 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) +Chars 3607 - 3611 [Qed.] 0. secs (0.u,0.s) +Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0. secs (0.u,0.s) +Chars 3973 - 3979 [Proof.] 0. secs (0.u,0.s) +Chars 3982 - 4003 [destruct~H,~t1;~auto.] 0. secs (0.u,0.s) +Chars 4006 - 4007 [-] 0. secs (0.u,0.s) +Chars 4008 - 4034 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 4037 - 4038 [-] 0. secs (0.u,0.s) +Chars 4039 - 4065 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 4066 - 4070 [Qed.] 0. secs (0.u,0.s) +Chars 4072 - 4168 [Lemma~trace_incl_sutt~:~~~fora...] 0. secs (0.u,0.s) +Chars 4169 - 4175 [Proof.] 0. secs (0.u,0.s) +Chars 4178 - 4189 [intros~E~R.] 0. secs (0.u,0.s) +Chars 4190 - 4208 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 4209 - 4228 [intros~t1~t2~Hincl.] 0. secs (0.u,0.s) +Chars 4231 - 4254 [unfold~trace_incl~in~*.] 0. secs (0.u,0.s) +Chars 4255 - 4276 [unfold~is_trace~in~*.] 0. secs (0.u,0.s) +Chars 4279 - 4301 [destruct~(observe~t1).] 0. secs (0.u,0.s) +Chars 4304 - 4305 [-] 0. secs (0.u,0.s) +Chars 4306 - 4387 [assert~(H~:~is_traceF~(RetF~r~...] 0. secs (0.u,0.s) +Chars 4392 - 4409 [apply~Hincl~in~H.] 0. secs (0.u,0.s) +Chars 4410 - 4422 [clear~Hincl.] 0. secs (0.u,0.s) +Chars 4423 - 4452 [destruct~(observe~t2);~inv~H.] 0.023 secs (0.023u,0.s) +Chars 4457 - 4458 [+] 0. secs (0.u,0.s) +Chars 4459 - 4471 [constructor.] 0. secs (0.u,0.s) +Chars 4472 - 4477 [auto.] 0. secs (0.u,0.s) +Chars 4482 - 4483 [+] 0. secs (0.u,0.s) +Chars 4484 - 4496 [constructor.] 0. secs (0.u,0.s) +Chars 4503 - 4524 [remember~(observe~t).] 0.002 secs (0.002u,0.s) +Chars 4525 - 4543 [remember~(TRet~_).] 0. secs (0.u,0.s) +Chars 4550 - 4573 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 4580 - 4633 [induction~H1;~intros;~try~inv~...] 0.014 secs (0.014u,0.s) +Chars 4640 - 4652 [constructor.] 0. secs (0.u,0.s) +Chars 4653 - 4679 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) +Chars 4682 - 4683 [-] 0. secs (0.u,0.s) +Chars 4684 - 4696 [constructor.] 0. secs (0.u,0.s) +Chars 4697 - 4707 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4708 - 4715 [intros.] 0. secs (0.u,0.s) +Chars 4716 - 4728 [apply~Hincl.] 0. secs (0.u,0.s) +Chars 4729 - 4741 [constructor.] 0. secs (0.u,0.s) +Chars 4742 - 4747 [auto.] 0. secs (0.u,0.s) +Chars 4750 - 4751 [-] 0. secs (0.u,0.s) +Chars 4752 - 4814 [assert~(H~:~is_traceF~(VisF~e~...] 0. secs (0.u,0.s) +Chars 4819 - 4836 [apply~Hincl~in~H.] 0. secs (0.u,0.s) +Chars 4837 - 4866 [destruct~(observe~t2);~inv~H.] 0.024 secs (0.024u,0.s) +Chars 4871 - 4872 [+] 0. secs (0.u,0.s) +Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) +Chars 4892 - 4964 [assert~(forall~tr,~is_traceF~(...] 0. secs (0.u,0.s) +Chars 4971 - 4972 [{] 0. secs (0.u,0.s) +Chars 4981 - 4988 [intros.] 0. secs (0.u,0.s) +Chars 4989 - 5011 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) +Chars 5012 - 5030 [apply~Hincl;~auto.] 0. secs (0.u,0.s) +Chars 5037 - 5038 [}] 0. secs (0.u,0.s) +Chars 5045 - 5057 [clear~Hincl.] 0. secs (0.u,0.s) +Chars 5058 - 5078 [rename~H~into~Hincl.] 0. secs (0.u,0.s) +Chars 5085 - 5106 [remember~(observe~t).] 0. secs (0.u,0.s) +Chars 5107 - 5130 [remember~(TEventEnd~_).] 0. secs (0.u,0.s) +Chars 5137 - 5160 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 5167 - 5206 [induction~H1;~intros;~try~disc...] 0.001 secs (0.001u,0.s) +Chars 5213 - 5214 [*] 0. secs (0.u,0.s) +Chars 5215 - 5227 [constructor.] 0. secs (0.u,0.s) +Chars 5228 - 5254 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) +Chars 5263 - 5270 [intros.] 0. secs (0.u,0.s) +Chars 5271 - 5293 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) +Chars 5294 - 5312 [apply~Hincl;~auto.] 0. secs (0.u,0.s) +Chars 5319 - 5320 [*] 0. secs (0.u,0.s) +Chars 5321 - 5376 [apply~eq_trace_inv~in~Heqt0;~d...] 0.006 secs (0.006u,0.s) +Chars 5385 - 5391 [subst.] 0. secs (0.u,0.s) +Chars 5392 - 5404 [constructor.] 0. secs (0.u,0.s) +Chars 5405 - 5411 [intro.] 0. secs (0.u,0.s) +Chars 5412 - 5422 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5423 - 5430 [intros.] 0. secs (0.u,0.s) +Chars 5439 - 5516 [assert~(is_traceF~(VisF~e~k)~(...] 0. secs (0.u,0.s) +Chars 5525 - 5543 [apply~Hincl~in~H1.] 0. secs (0.u,0.s) +Chars 5544 - 5551 [inv~H1.] 0.008 secs (0.008u,0.s) +Chars 5552 - 5565 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 5566 - 5571 [auto.] 0. secs (0.u,0.s) +Chars 5576 - 5577 [+] 0. secs (0.u,0.s) +Chars 5578 - 5591 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 5592 - 5604 [constructor.] 0. secs (0.u,0.s) +Chars 5605 - 5611 [intro.] 0. secs (0.u,0.s) +Chars 5612 - 5622 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5623 - 5630 [intros.] 0. secs (0.u,0.s) +Chars 5637 - 5716 [assert~(is_traceF~(VisF~e0~k)~...] 0. secs (0.u,0.s) +Chars 5723 - 5741 [apply~Hincl~in~H0.] 0. secs (0.u,0.s) +Chars 5742 - 5749 [inv~H0.] 0.006 secs (0.006u,0.s) +Chars 5750 - 5769 [ddestruction;~auto.] 0.003 secs (0.003u,0.s) +Chars 5770 - 5774 [Qed.] 0.023 secs (0.023u,0.s) +Chars 5776 - 5879 [Theorem~trace_incl_iff_sutt~:~...] 0. secs (0.u,0.s) +Chars 5880 - 5886 [Proof.] 0. secs (0.u,0.s) +Chars 5889 - 5895 [split.] 0. secs (0.u,0.s) +Chars 5898 - 5899 [-] 0. secs (0.u,0.s) +Chars 5900 - 5922 [apply~sutt_trace_incl.] 0. secs (0.u,0.s) +Chars 5925 - 5926 [-] 0. secs (0.u,0.s) +Chars 5927 - 5949 [apply~trace_incl_sutt.] 0. secs (0.u,0.s) +Chars 5950 - 5954 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5956 - 6044 [Lemma~trace_eq_eutt~:~~~forall...] 0. secs (0.u,0.s) +Chars 6045 - 6051 [Proof.] 0. secs (0.u,0.s) +Chars 6054 - 6077 [intros~E~R~t1~t2~[?~?].] 0. secs (0.u,0.s) +Chars 6078 - 6094 [apply~sutt_eutt.] 0. secs (0.u,0.s) +Chars 6097 - 6098 [-] 0. secs (0.u,0.s) +Chars 6099 - 6127 [apply~trace_incl_sutt;~auto.] 0. secs (0.u,0.s) +Chars 6130 - 6131 [-] 0. secs (0.u,0.s) +Chars 6132 - 6160 [apply~trace_incl_sutt~in~H0.] 0. secs (0.u,0.s) +Chars 6161 - 6169 [clear~H.] 0. secs (0.u,0.s) +Chars 6174 - 6198 [generalize~dependent~t1.] 0. secs (0.u,0.s) +Chars 6199 - 6223 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 6228 - 6246 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 6247 - 6263 [intros~t1~t2~H0.] 0. secs (0.u,0.s) +Chars 6264 - 6275 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6280 - 6324 [induction~H0;~constructor;~eau...] 0.003 secs (0.003u,0.s) +Chars 6329 - 6353 [apply~(CIH~t0~(go~ot2)).] 0. secs (0.u,0.s) +Chars 6354 - 6367 [apply~EQTAUS.] 0. secs (0.u,0.s) +Chars 6368 - 6372 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6374 - 6469 [Theorem~trace_eq_iff_eutt~:~~~...] 0. secs (0.u,0.s) +Chars 6470 - 6476 [Proof.] 0. secs (0.u,0.s) +Chars 6479 - 6485 [split.] 0. secs (0.u,0.s) +Chars 6488 - 6489 [-] 0. secs (0.u,0.s) +Chars 6490 - 6510 [apply~eutt_trace_eq.] 0. secs (0.u,0.s) +Chars 6513 - 6514 [-] 0. secs (0.u,0.s) +Chars 6515 - 6535 [apply~trace_eq_eutt.] 0. secs (0.u,0.s) +Chars 6536 - 6540 [Qed.] 0. secs (0.u,0.s) +Chars 6542 - 6630 [Inductive~event~(E~:~Type~->~T...] 0. secs (0.u,0.s) +Chars 6725 - 7006 [Inductive~step_~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) +Chars 7008 - 7125 [Definition~step~{E~:~Type~->~T...] 0. secs (0.u,0.s) +Chars 7127 - 7369 [CoInductive~simulates~{E~:~Typ...] 0. secs (0.u,0.s) +Chars 7371 - 7500 [Theorem~simulates_trace_incl~{...] 0. secs (0.u,0.s) +Chars 7501 - 7507 [Proof.] 0. secs (0.u,0.s) +Chars 7508 - 7514 [Abort.] 0. secs (0.u,0.s) +Chars 7542 - 7621 [Definition~traces~(E~:~Type~->...] 0. secs (0.u,0.s) +Chars 7623 - 7982 [Definition~bind_traces~{E~:~Ty...] 0. secs (0.u,0.s) +Chars 7984 - 8102 [Definition~ret_traces~{E~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Interp/TranslateFacts.v.timing b/theories/Interp/TranslateFacts.v.timing new file mode 100644 index 00000000..05e58e99 --- /dev/null +++ b/theories/Interp/TranslateFacts.v.timing @@ -0,0 +1,171 @@ +Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.003s) +Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.002 secs (0.002u,0.s) +Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.037 secs (0.03u,0.006s) +Chars 412 - 434 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 451 - 474 [Section~TranslateFacts.] 0. secs (0.u,0.s) +Chars 477 - 506 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 509 - 528 [Context~{R~:~Type}.] 0. secs (0.u,0.s) +Chars 531 - 552 [Context~(h~:~E~~>~F).] 0. secs (0.u,0.s) +Chars 554 - 707 [Lemma~unfold_translate_~:~~~fo...] 0. secs (0.u,0.s) +Chars 708 - 714 [Proof.] 0. secs (0.u,0.s) +Chars 717 - 726 [intros~t.] 0. secs (0.u,0.s) +Chars 727 - 740 [econstructor.] 0. secs (0.u,0.s) +Chars 741 - 753 [reflexivity.] 0. secs (0.u,0.s) +Chars 754 - 758 [Qed.] 0.014 secs (0.013u,0.001s) +Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0. secs (0.u,0.s) +Chars 910 - 916 [Proof.] 0. secs (0.u,0.s) +Chars 919 - 926 [intros.] 0. secs (0.u,0.s) +Chars 927 - 953 [rewrite~unfold_translate_.] 0.001 secs (0.001u,0.s) +Chars 954 - 966 [reflexivity.] 0. secs (0.u,0.s) +Chars 967 - 971 [Qed.] 0. secs (0.u,0.s) +Chars 973 - 1039 [Lemma~translate_ret~:~forall~r...] 0. secs (0.u,0.s) +Chars 1040 - 1046 [Proof.] 0. secs (0.u,0.s) +Chars 1049 - 1058 [intros~r.] 0. secs (0.u,0.s) +Chars 1061 - 1086 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) +Chars 1087 - 1091 [cbn.] 0. secs (0.u,0.s) +Chars 1092 - 1104 [reflexivity.] 0. secs (0.u,0.s) +Chars 1105 - 1109 [Qed.] 0. secs (0.u,0.s) +Chars 1111 - 1201 [Lemma~translate_tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 1202 - 1208 [Proof.] 0. secs (0.u,0.s) +Chars 1211 - 1220 [intros~t.] 0. secs (0.u,0.s) +Chars 1223 - 1248 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) +Chars 1249 - 1253 [cbn.] 0. secs (0.u,0.s) +Chars 1254 - 1266 [reflexivity.] 0. secs (0.u,0.s) +Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) +Chars 1273 - 1405 [Lemma~translate_vis~:~~~forall...] 0. secs (0.u,0.s) +Chars 1406 - 1412 [Proof.] 0. secs (0.u,0.s) +Chars 1415 - 1428 [intros~X~e~k.] 0. secs (0.u,0.s) +Chars 1431 - 1456 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) +Chars 1457 - 1461 [cbn.] 0. secs (0.u,0.s) +Chars 1462 - 1474 [reflexivity.] 0. secs (0.u,0.s) +Chars 1475 - 1479 [Qed.] 0. secs (0.u,0.s) +Chars 1481 - 1582 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) +Chars 1583 - 1589 [Proof.] 0. secs (0.u,0.s) +Chars 1592 - 1600 [intros~!.] 0. secs (0.u,0.s) +Chars 1601 - 1614 [revert~x~y~H.] 0. secs (0.u,0.s) +Chars 1615 - 1634 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 1635 - 1642 [intros.] 0. secs (0.u,0.s) +Chars 1646 - 1653 [to_mon.] 0. secs (0.u,0.s) +Chars 1657 - 1683 [rewrite~!unfold_translate.] 0.047 secs (0.047u,0.s) +Chars 1686 - 1696 [step~in~H.] 0. secs (0.u,0.s) +Chars 1699 - 1745 [induction~H;~simpobs;~simpl;~e...] 0.01 secs (0.009u,0.001s) +Chars 1748 - 1752 [Qed.] 0.006 secs (0.005u,0.001s) +Chars 1754 - 1887 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) +Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) +Chars 1897 - 1908 [repeat~red.] 0. secs (0.u,0.s) +Chars 1909 - 1916 [intros.] 0. secs (0.u,0.s) +Chars 1919 - 1983 [rewrite~(itree_eta'~x),~(itree...] 0.007 secs (0.006u,0.001s) +Chars 1986 - 2004 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 2005 - 2009 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2011 - 2030 [End~TranslateFacts.] 0. secs (0.u,0.s) +Chars 2032 - 2203 [Lemma~translate_bind~:~~~foral...] 0. secs (0.u,0.s) +Chars 2204 - 2210 [Proof.] 0. secs (0.u,0.s) +Chars 2213 - 2234 [intros~E~F~R~S~h~t~k.] 0. secs (0.u,0.s) +Chars 2237 - 2250 [revert~S~t~k.] 0. secs (0.u,0.s) +Chars 2253 - 2272 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 2276 - 2289 [intros~s~t~k.] 0. secs (0.u,0.s) +Chars 2290 - 2297 [to_mon.] 0. secs (0.u,0.s) +Chars 2301 - 2393 [match~goal~with~|~|-~_~?t1~?t2...] 0.021 secs (0.021u,0.s) +Chars 2396 - 2416 [unfold~observe;~cbn.] 0. secs (0.u,0.s) +Chars 2419 - 2463 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) +Chars 2465 - 2469 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2471 - 2546 [Lemma~translate_id~:~forall~E~...] 0. secs (0.u,0.s) +Chars 2547 - 2553 [Proof.] 0. secs (0.u,0.s) +Chars 2556 - 2569 [intros~E~R~t.] 0. secs (0.u,0.s) +Chars 2572 - 2581 [revert~t.] 0. secs (0.u,0.s) +Chars 2584 - 2602 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 2603 - 2610 [intros.] 0. secs (0.u,0.s) +Chars 2754 - 2776 [rewrite~(itree_eta~t).] 0.009 secs (0.009u,0.s) +Chars 2779 - 2804 [rewrite~unfold_translate.] 0.009 secs (0.009u,0.s) +Chars 2807 - 2825 [unfold~translateF.] 0. secs (0.u,0.s) +Chars 2828 - 2846 [rewrite~itree_eta.] 0.01 secs (0.01u,0.s) +Chars 2849 - 2899 [destruct~(observe~t);~cbn;~try...] 0.001 secs (0.001u,0.s) +Chars 2902 - 2906 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2908 - 2928 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0. secs (0.u,0.s) +Chars 3074 - 3080 [Proof.] 0. secs (0.u,0.s) +Chars 3083 - 3104 [intros~E~F~G~R~g~f~t.] 0. secs (0.u,0.s) +Chars 3107 - 3116 [revert~t.] 0. secs (0.u,0.s) +Chars 3119 - 3137 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3138 - 3145 [intros.] 0. secs (0.u,0.s) +Chars 3149 - 3175 [rewrite~!unfold_translate.] 0.065 secs (0.064u,0.s) +Chars 3178 - 3196 [genobs_clear~t~ot.] 0. secs (0.u,0.s) +Chars 3197 - 3238 [destruct~ot;~cbn;~try~construc...] 0.001 secs (0.001u,0.s) +Chars 3240 - 3244 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3246 - 3419 [Definition~respectful_eq_itree...] 0. secs (0.u,0.s) +Chars 3421 - 3582 [Definition~respectful_eutt~{E~...] 0. secs (0.u,0.s) +Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.003 secs (0.002u,0.s) +Chars 3784 - 3967 [#[global]~Instance~eq_itree_ap...] 0. secs (0.u,0.s) +Chars 3968 - 3974 [Proof.] 0. secs (0.u,0.s) +Chars 3977 - 3988 [repeat~red.] 0. secs (0.u,0.s) +Chars 3989 - 3996 [intros.] 0. secs (0.u,0.s) +Chars 3997 - 4013 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 4014 - 4020 [eauto.] 0. secs (0.u,0.s) +Chars 4021 - 4025 [Qed.] 0. secs (0.u,0.s) +Chars 4027 - 4194 [#[global]~Instance~eutt_apply_...] 0. secs (0.u,0.s) +Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) +Chars 4204 - 4215 [repeat~red.] 0. secs (0.u,0.s) +Chars 4216 - 4223 [intros.] 0. secs (0.u,0.s) +Chars 4224 - 4240 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 4241 - 4247 [eauto.] 0. secs (0.u,0.s) +Chars 4248 - 4252 [Qed.] 0. secs (0.u,0.s) +Chars 4254 - 4409 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) +Chars 4410 - 4416 [Proof.] 0. secs (0.u,0.s) +Chars 4419 - 4436 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) +Chars 4439 - 4457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4458 - 4465 [intros.] 0. secs (0.u,0.s) +Chars 4469 - 4496 [rewrite~2!unfold_translate.] 0.023 secs (0.023u,0.s) +Chars 4499 - 4509 [step~in~H.] 0. secs (0.u,0.s) +Chars 4513 - 4574 [destruct~H;~cbn;~try~easy;~try...] 0.051 secs (0.051u,0.s) +Chars 4576 - 4580 [Qed.] 0.006 secs (0.005u,0.s) +Chars 4582 - 4729 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) +Chars 4730 - 4736 [Proof.] 0. secs (0.u,0.s) +Chars 4739 - 4750 [repeat~red.] 0. secs (0.u,0.s) +Chars 4753 - 4768 [intros~until~T.] 0. secs (0.u,0.s) +Chars 4771 - 4789 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4790 - 4797 [intros.] 0. secs (0.u,0.s) +Chars 4800 - 4826 [rewrite~!unfold_translate.] 0.021 secs (0.021u,0.s) +Chars 4827 - 4838 [step~in~H0.] 0. secs (0.u,0.s) +Chars 4842 - 4887 [induction~H0;~subst;~simpl;~ea...] 0.006 secs (0.006u,0.s) +Chars 4891 - 4892 [-] 0. secs (0.u,0.s) +Chars 4893 - 4903 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 4904 - 4917 [econstructor.] 0. secs (0.u,0.s) +Chars 4918 - 4935 [eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 4936 - 4940 [Qed.] 0.006 secs (0.005u,0.s) +Chars 4942 - 5085 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) +Chars 5086 - 5092 [Proof.] 0. secs (0.u,0.s) +Chars 5095 - 5106 [repeat~red.] 0. secs (0.u,0.s) +Chars 5109 - 5130 [apply~eutt_translate.] 0. secs (0.u,0.s) +Chars 5133 - 5145 [reflexivity.] 0. secs (0.u,0.s) +Chars 5146 - 5150 [Qed.] 0. secs (0.u,0.s) +Chars 5152 - 5341 [Lemma~eutt_translate_gen~:~~~f...] 0. secs (0.u,0.s) +Chars 5342 - 5348 [Proof.] 0. secs (0.u,0.s) +Chars 5351 - 5360 [intros~*.] 0. secs (0.u,0.s) +Chars 5363 - 5374 [revert~t~s.] 0. secs (0.u,0.s) +Chars 5377 - 5395 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 5396 - 5403 [intros.] 0. secs (0.u,0.s) +Chars 5407 - 5433 [rewrite~!unfold_translate.] 0.023 secs (0.022u,0.s) +Chars 5434 - 5444 [step~in~H.] 0. secs (0.u,0.s) +Chars 5448 - 5500 [induction~H;~intros;~subst;~si...] 0.004 secs (0.004u,0.s) +Chars 5502 - 5506 [Qed.] 0.005 secs (0.005u,0.s) +Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0. secs (0.u,0.s) +Chars 5648 - 5654 [Proof.] 0. secs (0.u,0.s) +Chars 5657 - 5746 [intros;~unfold~trigger;~rewrit...] 0.003 secs (0.003u,0.s) +Chars 5747 - 5751 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0. secs (0.u,0.s) +Chars 5984 - 5990 [Proof.] 0. secs (0.u,0.s) +Chars 5993 - 6000 [intros.] 0. secs (0.u,0.s) +Chars 6001 - 6028 [rewrite~(itree_eta~t)~in~H.] 0.01 secs (0.01u,0.s) +Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.003 secs (0.003u,0.s) +Chars 6061 - 6126 [desobs~t~Ht;~clear~t~Ht;~rewri...] 0.031 secs (0.03u,0.s) +Chars 6129 - 6130 [-] 0. secs (0.u,0.s) +Chars 6131 - 6147 [step~in~H;~easy.] 0.001 secs (0.001u,0.s) +Chars 6151 - 6152 [-] 0. secs (0.u,0.s) +Chars 6153 - 6166 [sinv~H;~easy.] 0.005 secs (0.005u,0.s) +Chars 6171 - 6172 [-] 0. secs (0.u,0.s) +Chars 6173 - 6211 [apply~eqitree_inv_Vis_r~in~H;~...] 0. secs (0.u,0.s) +Chars 6217 - 6226 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 6227 - 6235 [inv_Vis.] 0.001 secs (0.001u,0.s) +Chars 6241 - 6253 [exists~e,k.] 0. secs (0.u,0.s) +Chars 6254 - 6271 [repeat~now~split.] 0.001 secs (0.001u,0.s) +Chars 6273 - 6277 [Qed.] 0.008 secs (0.008u,0.s) diff --git a/theories/Props/Cofinite.v.timing b/theories/Props/Cofinite.v.timing new file mode 100644 index 00000000..4b4b7f76 --- /dev/null +++ b/theories/Props/Cofinite.v.timing @@ -0,0 +1,20 @@ +Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.169 secs (0.149u,0.019s) +Chars 133 - 169 [From~Coinduction~Require~Impor...] 0. secs (0.u,0.s) +Chars 171 - 273 [Theorem~not_all_infinite_any_f...] 0. secs (0.u,0.s) +Chars 274 - 280 [Proof.] 0. secs (0.u,0.s) +Chars 283 - 296 [intros~H1~H2.] 0. secs (0.u,0.s) +Chars 297 - 449 [induction~H2;~apply~(gfp_fp~al...] 0.005 secs (0.004u,0.s) +Chars 452 - 500 [all:~rewrite~H~in~H0;~inversio...] 0.002 secs (0.001u,0.s) +Chars 503 - 516 [ddestruction.] 0.027 secs (0.025u,0.001s) +Chars 517 - 545 [exact~(IHany_finite~(H3~_)).] 0. secs (0.u,0.s) +Chars 546 - 550 [Qed.] 0.004 secs (0.004u,0.s) +Chars 552 - 654 [Theorem~not_any_infinite_all_f...] 0. secs (0.u,0.s) +Chars 655 - 661 [Proof.] 0. secs (0.u,0.s) +Chars 664 - 830 [intros~H1~H2;~induction~H2;~ap...] 0.003 secs (0.003u,0.s) +Chars 833 - 834 [-] 0. secs (0.u,0.s) +Chars 835 - 878 [rewrite~H~in~H0;~inversion~H0;...] 0. secs (0.u,0.s) +Chars 881 - 882 [-] 0. secs (0.u,0.s) +Chars 883 - 899 [rewrite~H~in~H3.] 0. secs (0.u,0.s) +Chars 900 - 934 [inversion~H3;~subst;~ddestruct...] 0.002 secs (0.002u,0.s) +Chars 939 - 955 [exact~(H2~_~H4).] 0. secs (0.u,0.s) +Chars 956 - 960 [Qed.] 0.004 secs (0.004u,0.s) diff --git a/theories/Props/EuttNoRet.v.timing b/theories/Props/EuttNoRet.v.timing new file mode 100644 index 00000000..5d4d8558 --- /dev/null +++ b/theories/Props/EuttNoRet.v.timing @@ -0,0 +1,269 @@ +Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.001u,0.002s) +Chars 45 - 147 [From~ITree~Require~Import~Axio...] 0.173 secs (0.15u,0.021s) +Chars 149 - 185 [From~Coinduction~Require~Impor...] 0. secs (0.u,0.s) +Chars 187 - 201 [Import~Monads.] 0. secs (0.u,0.s) +Chars 202 - 223 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 224 - 256 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 258 - 281 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 559 - 667 [Definition~euttNoRet~{E}~{A~B~...] 0. secs (0.u,0.s) +Chars 670 - 772 [Lemma~euttNoRet_spin~:~~~foral...] 0. secs (0.u,0.s) +Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) +Chars 782 - 789 [intros.] 0. secs (0.u,0.s) +Chars 790 - 807 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 808 - 827 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 828 - 832 [cbn.] 0. secs (0.u,0.s) +Chars 833 - 845 [constructor.] 0. secs (0.u,0.s) +Chars 846 - 856 [exact~CIH.] 0. secs (0.u,0.s) +Chars 857 - 861 [Qed.] 0.003 secs (0.002u,0.s) +Chars 863 - 1007 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) +Chars 1008 - 1014 [Proof.] 0. secs (0.u,0.s) +Chars 1017 - 1030 [intros~E~A~B.] 0. secs (0.u,0.s) +Chars 1031 - 1048 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 1049 - 1068 [icoinduction~c~CIH.] 0.026 secs (0.024u,0.002s) +Chars 1069 - 1085 [intros~t~f~Hdiv.] 0. secs (0.u,0.s) +Chars 1088 - 1128 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 1131 - 1166 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 1167 - 1196 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) +Chars 1199 - 1221 [inversion~Hdiv;~subst.] 0.001 secs (0.001u,0.s) +Chars 1224 - 1225 [-] 0. secs (0.u,0.s) +Chars 1226 - 1251 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 1256 - 1277 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 1278 - 1291 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 1292 - 1296 [cbn.] 0. secs (0.u,0.s) +Chars 1297 - 1309 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 1314 - 1363 [change~(ITree.subst~f~t0)~with...] 0. secs (0.u,0.s) +Chars 1368 - 1378 [apply~CIH.] 0. secs (0.u,0.s) +Chars 1379 - 1384 [auto.] 0. secs (0.u,0.s) +Chars 1387 - 1388 [-] 0. secs (0.u,0.s) +Chars 1389 - 1414 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 1419 - 1440 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 1441 - 1454 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 1455 - 1459 [cbn.] 0. secs (0.u,0.s) +Chars 1460 - 1472 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 1477 - 1486 [intros~v.] 0. secs (0.u,0.s) +Chars 1487 - 1542 [change~(ITree.subst~f~(k~v))~w...] 0. secs (0.u,0.s) +Chars 1547 - 1557 [apply~CIH.] 0. secs (0.u,0.s) +Chars 1558 - 1567 [apply~H0.] 0. secs (0.u,0.s) +Chars 1568 - 1572 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1577 - 1766 [Lemma~euttNoRet_subrel~:~~~for...] 0. secs (0.u,0.s) +Chars 1767 - 1773 [Proof.] 0. secs (0.u,0.s) +Chars 1776 - 1783 [intros.] 0. secs (0.u,0.s) +Chars 1786 - 1904 [eapply~eqit_mono~with~(b1~:=~t...] 0.001 secs (0.001u,0.s) +Chars 1905 - 1909 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1911 - 2121 [Lemma~all_infinite_euttNoRet~:...] 0. secs (0.u,0.s) +Chars 2122 - 2128 [Proof.] 0. secs (0.u,0.s) +Chars 2131 - 2146 [intros~E~A~B~R.] 0. secs (0.u,0.s) +Chars 2147 - 2164 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 2165 - 2184 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 2185 - 2209 [intros~ta~tb~Hdiv~Heutt.] 0. secs (0.u,0.s) +Chars 2212 - 2226 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 2227 - 2255 [cbn[eqit_mon~body]~in~Heutt.] 0. secs (0.u,0.s) +Chars 2256 - 2278 [unfold~eqit_~in~Heutt.] 0. secs (0.u,0.s) +Chars 2281 - 2300 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) +Chars 2301 - 2314 [unfold~eqit_.] 0. secs (0.u,0.s) +Chars 2317 - 2357 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 2360 - 2395 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 2396 - 2425 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2428 - 2454 [dependent~induction~Heutt.] 0.049 secs (0.048u,0.s) +Chars 2457 - 2458 [-] 0. secs (0.u,0.s) +Chars 2459 - 2467 [exfalso.] 0. secs (0.u,0.s) +Chars 2468 - 2490 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2491 - 2506 [inversion~Hdiv.] 0. secs (0.u,0.s) +Chars 2509 - 2510 [-] 0. secs (0.u,0.s) +Chars 2511 - 2525 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 2526 - 2539 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 2540 - 2552 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 2553 - 2563 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2568 - 2569 [+] 0. secs (0.u,0.s) +Chars 2570 - 2592 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2593 - 2615 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) +Chars 2616 - 2621 [auto.] 0. secs (0.u,0.s) +Chars 2626 - 2627 [+] 0. secs (0.u,0.s) +Chars 2628 - 2633 [auto.] 0. secs (0.u,0.s) +Chars 2636 - 2637 [-] 0. secs (0.u,0.s) +Chars 2638 - 2652 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 2653 - 2666 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 2667 - 2679 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 2680 - 2689 [intros~v.] 0. secs (0.u,0.s) +Chars 2690 - 2700 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2705 - 2706 [+] 0. secs (0.u,0.s) +Chars 2707 - 2729 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2730 - 2752 [inversion~Hdiv;~subst.] 0.002 secs (0.002u,0.s) +Chars 2753 - 2766 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 2767 - 2776 [apply~H0.] 0. secs (0.u,0.s) +Chars 2781 - 2782 [+] 0. secs (0.u,0.s) +Chars 2783 - 2793 [apply~REL.] 0. secs (0.u,0.s) +Chars 2796 - 2797 [-] 0. secs (0.u,0.s) +Chars 2798 - 2811 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 2812 - 2831 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 2832 - 2852 [apply~IHHeutt;~auto.] 0. secs (0.u,0.s) +Chars 2857 - 2878 [rewrite~<-~x~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2879 - 2901 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) +Chars 2906 - 2944 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 2949 - 2982 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 2983 - 3010 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 3011 - 3020 [exact~H0.] 0. secs (0.u,0.s) +Chars 3023 - 3024 [-] 0. secs (0.u,0.s) +Chars 3025 - 3038 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3039 - 3058 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 3059 - 3063 [Qed.] 0.024 secs (0.024u,0.s) +Chars 3070 - 3214 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) +Chars 3215 - 3221 [Proof.] 0. secs (0.u,0.s) +Chars 3224 - 3237 [intros~E~A~B.] 0. secs (0.u,0.s) +Chars 3238 - 3258 [unfold~all_infinite.] 0. secs (0.u,0.s) +Chars 3259 - 3277 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3278 - 3293 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 3296 - 3323 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 3324 - 3345 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 3348 - 3370 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) +Chars 3371 - 3381 [step~in~H.] 0. secs (0.u,0.s) +Chars 3382 - 3406 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) +Chars 3407 - 3425 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) +Chars 3428 - 3469 [dependent~induction~H;~try~con...] 0.013 secs (0.013u,0.s) +Chars 3472 - 3473 [-] 0. secs (0.u,0.s) +Chars 3474 - 3488 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 3489 - 3501 [constructor.] 0. secs (0.u,0.s) +Chars 3502 - 3528 [apply~CIH~with~(t2~:=~m2).] 0. secs (0.u,0.s) +Chars 3529 - 3546 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3547 - 3552 [auto.] 0. secs (0.u,0.s) +Chars 3555 - 3556 [-] 0. secs (0.u,0.s) +Chars 3557 - 3571 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 3572 - 3584 [constructor.] 0. secs (0.u,0.s) +Chars 3585 - 3594 [intros~v.] 0. secs (0.u,0.s) +Chars 3595 - 3623 [apply~CIH~with~(t2~:=~k2~v).] 0. secs (0.u,0.s) +Chars 3628 - 3645 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3646 - 3656 [apply~REL.] 0. secs (0.u,0.s) +Chars 3659 - 3660 [-] 0. secs (0.u,0.s) +Chars 3661 - 3674 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3675 - 3687 [constructor.] 0. secs (0.u,0.s) +Chars 3688 - 3714 [apply~CIH~with~(t2~:=~t2).] 0. secs (0.u,0.s) +Chars 3715 - 3732 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3737 - 3742 [step.] 0.001 secs (0.001u,0.s) +Chars 3743 - 3762 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) +Chars 3763 - 3776 [unfold~eqit_.] 0. secs (0.u,0.s) +Chars 3777 - 3782 [auto.] 0. secs (0.u,0.s) +Chars 3785 - 3786 [-] 0. secs (0.u,0.s) +Chars 3787 - 3809 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 3810 - 3814 [Qed.] 0.009 secs (0.009u,0.s) +Chars 3817 - 3952 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) +Chars 3953 - 3959 [Proof.] 0. secs (0.u,0.s) +Chars 3962 - 3975 [intros~E~A~B.] 0. secs (0.u,0.s) +Chars 3976 - 3993 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3994 - 4013 [icoinduction~c~CIH.] 0.004 secs (0.004u,0.s) +Chars 4014 - 4029 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 4032 - 4054 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) +Chars 4055 - 4065 [step~in~H.] 0. secs (0.u,0.s) +Chars 4066 - 4090 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) +Chars 4091 - 4109 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) +Chars 4112 - 4153 [dependent~induction~H;~try~con...] 0.019 secs (0.018u,0.s) +Chars 4156 - 4157 [-] 0. secs (0.u,0.s) +Chars 4158 - 4172 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 4173 - 4186 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4187 - 4199 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 4200 - 4210 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4211 - 4216 [auto.] 0. secs (0.u,0.s) +Chars 4219 - 4220 [-] 0. secs (0.u,0.s) +Chars 4221 - 4235 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 4236 - 4249 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4250 - 4262 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 4263 - 4272 [intros~v.] 0. secs (0.u,0.s) +Chars 4273 - 4283 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4284 - 4294 [apply~REL.] 0. secs (0.u,0.s) +Chars 4297 - 4298 [-] 0. secs (0.u,0.s) +Chars 4299 - 4312 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4313 - 4332 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 4335 - 4336 [-] 0. secs (0.u,0.s) +Chars 4337 - 4350 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4351 - 4370 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 4371 - 4375 [Qed.] 0.023 secs (0.023u,0.s) +Chars 4377 - 4559 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) +Chars 4560 - 4566 [Proof.] 0. secs (0.u,0.s) +Chars 4569 - 4576 [intros.] 0. secs (0.u,0.s) +Chars 4577 - 4626 [apply~noret_bind_nop~with~(B~:...] 0. secs (0.u,0.s) +Chars 4629 - 4654 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 4655 - 4689 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 4690 - 4695 [auto.] 0. secs (0.u,0.s) +Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) +Chars 4707 - 4913 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) +Chars 4914 - 4920 [Proof.] 0. secs (0.u,0.s) +Chars 4923 - 4930 [intros.] 0. secs (0.u,0.s) +Chars 4931 - 4953 [unfold~euttNoRet~in~*.] 0. secs (0.u,0.s) +Chars 4956 - 5083 [eapply~eqit_mono~with~(b1~:=~t...] 0.002 secs (0.002u,0.s) +Chars 5086 - 5087 [-] 0. secs (0.u,0.s) +Chars 5088 - 5102 [intros~x~y~Hc.] 0. secs (0.u,0.s) +Chars 5103 - 5131 [inversion~Hc;~contradiction.] 0. secs (0.u,0.s) +Chars 5134 - 5135 [-] 0. secs (0.u,0.s) +Chars 5136 - 5161 [eapply~eqit_trans;~eauto.] 0. secs (0.u,0.s) +Chars 5162 - 5166 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5169 - 5288 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 5289 - 5295 [Proof.] 0. secs (0.u,0.s) +Chars 5298 - 5327 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) +Chars 5328 - 5342 [split;~intros.] 0. secs (0.u,0.s) +Chars 5345 - 5346 [-] 0. secs (0.u,0.s) +Chars 5347 - 5388 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5389 - 5414 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 5420 - 5461 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5466 - 5504 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 5509 - 5510 [+] 0. secs (0.u,0.s) +Chars 5511 - 5549 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 5556 - 5557 [*] 0. secs (0.u,0.s) +Chars 5558 - 5578 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 5579 - 5616 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) +Chars 5623 - 5624 [*] 0. secs (0.u,0.s) +Chars 5625 - 5645 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 5646 - 5651 [auto.] 0. secs (0.u,0.s) +Chars 5656 - 5657 [+] 0. secs (0.u,0.s) +Chars 5658 - 5695 [eapply~all_infinite_euttNoRet;...] 0.002 secs (0.001u,0.s) +Chars 5698 - 5699 [-] 0. secs (0.u,0.s) +Chars 5700 - 5741 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5747 - 5772 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 5773 - 5814 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5819 - 5844 [assert~(euttNoRet~t1~t2).] 0. secs (0.u,0.s) +Chars 5849 - 5850 [{] 0. secs (0.u,0.s) +Chars 5858 - 5878 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 5879 - 5903 [apply~eutt_flip~in~Ht12.] 0. secs (0.u,0.s) +Chars 5911 - 5948 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) +Chars 5953 - 5954 [}] 0. secs (0.u,0.s) +Chars 5959 - 5984 [assert~(euttNoRet~t3~t4).] 0. secs (0.u,0.s) +Chars 5989 - 5990 [{] 0. secs (0.u,0.s) +Chars 5997 - 6017 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 6018 - 6042 [apply~eutt_flip~in~Ht34.] 0. secs (0.u,0.s) +Chars 6049 - 6086 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) +Chars 6091 - 6092 [}] 0. secs (0.u,0.s) +Chars 6097 - 6122 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 6127 - 6165 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 6170 - 6171 [+] 0. secs (0.u,0.s) +Chars 6172 - 6216 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 6221 - 6222 [+] 0. secs (0.u,0.s) +Chars 6223 - 6243 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 6244 - 6249 [auto.] 0. secs (0.u,0.s) +Chars 6250 - 6254 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6256 - 6345 [Definition~noret_cast~{E}~{A}~...] 0. secs (0.u,0.s) +Chars 6347 - 6465 [Lemma~noret_cast_nop~:~~~foral...] 0. secs (0.u,0.s) +Chars 6466 - 6472 [Proof.] 0. secs (0.u,0.s) +Chars 6475 - 6482 [intros.] 0. secs (0.u,0.s) +Chars 6483 - 6506 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 6507 - 6528 [apply~noret_bind_nop.] 0. secs (0.u,0.s) +Chars 6529 - 6534 [auto.] 0. secs (0.u,0.s) +Chars 6535 - 6539 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6541 - 6648 [#[global]~Instance~proper_nore...] 0. secs (0.u,0.s) +Chars 6649 - 6655 [Proof.] 0. secs (0.u,0.s) +Chars 6658 - 6677 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 6678 - 6696 [unfold~noret_cast.] 0. secs (0.u,0.s) +Chars 6697 - 6701 [cbn.] 0. secs (0.u,0.s) +Chars 6702 - 6716 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) +Chars 6717 - 6729 [reflexivity.] 0. secs (0.u,0.s) +Chars 6730 - 6734 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6736 - 6939 [Ltac~~infer_noret~H~:=~~~match...] 0. secs (0.u,0.s) +Chars 6941 - 7120 [Lemma~noret_cast_cast~E~(A~B~:...] 0. secs (0.u,0.s) +Chars 7121 - 7127 [Proof.] 0. secs (0.u,0.s) +Chars 7130 - 7137 [intros.] 0. secs (0.u,0.s) +Chars 7138 - 7161 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 7164 - 7205 [apply~all_infinite_euttNoRet~i...] 0. secs (0.u,0.s) +Chars 7208 - 7223 [infer_noret~H0.] 0. secs (0.u,0.s) +Chars 7226 - 7296 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 7299 - 7343 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 7346 - 7366 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 7367 - 7388 [apply~noret_bind_nop.] 0. secs (0.u,0.s) +Chars 7389 - 7394 [auto.] 0. secs (0.u,0.s) +Chars 7395 - 7399 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Finite.v.timing b/theories/Props/Finite.v.timing new file mode 100644 index 00000000..3c95d23b --- /dev/null +++ b/theories/Props/Finite.v.timing @@ -0,0 +1,363 @@ +Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.068 secs (0.057u,0.01s) +Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.022 secs (0.019u,0.002s) +Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 305 - 318 [Import~ITree.] 0. secs (0.u,0.s) +Chars 319 - 341 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 342 - 363 [Import~LeafNotations.] 0. secs (0.u,0.s) +Chars 1116 - 1458 [Inductive~all_finite~{E}~{A~:~...] 0.002 secs (0.001u,0.s) +Chars 1459 - 1506 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) +Chars 1573 - 1905 [Inductive~any_finite~{E}~{A~:~...] 0.001 secs (0.001u,0.s) +Chars 1906 - 1953 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) +Chars 1999 - 2062 [Lemma~all_finite_Ret~:~forall~...] 0. secs (0.u,0.s) +Chars 2063 - 2069 [Proof.] 0. secs (0.u,0.s) +Chars 2072 - 2108 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) +Chars 2109 - 2113 [Qed.] 0. secs (0.u,0.s) +Chars 2114 - 2160 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) +Chars 2162 - 2243 [Lemma~all_finite_Tau~:~forall~...] 0. secs (0.u,0.s) +Chars 2244 - 2250 [Proof.] 0. secs (0.u,0.s) +Chars 2253 - 2299 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) +Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) +Chars 2305 - 2351 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) +Chars 2353 - 2464 [Lemma~all_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) +Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) +Chars 2474 - 2520 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) +Chars 2521 - 2525 [Qed.] 0. secs (0.u,0.s) +Chars 2526 - 2572 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) +Chars 2574 - 2653 [Lemma~all_finite_trigger~:~for...] 0. secs (0.u,0.s) +Chars 2654 - 2660 [Proof.] 0. secs (0.u,0.s) +Chars 2663 - 2670 [intros.] 0. secs (0.u,0.s) +Chars 2671 - 2692 [apply~all_finite_Vis.] 0. secs (0.u,0.s) +Chars 2693 - 2709 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 2710 - 2714 [Qed.] 0. secs (0.u,0.s) +Chars 2715 - 2800 [#[global]~Hint~Extern~1~(all_f...] 0. secs (0.u,0.s) +Chars 2819 - 2882 [Lemma~any_finite_Ret~:~forall~...] 0. secs (0.u,0.s) +Chars 2883 - 2889 [Proof.] 0. secs (0.u,0.s) +Chars 2892 - 2928 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) +Chars 2929 - 2933 [Qed.] 0. secs (0.u,0.s) +Chars 2934 - 2980 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) +Chars 2982 - 3063 [Lemma~any_finite_Tau~:~forall~...] 0. secs (0.u,0.s) +Chars 3064 - 3070 [Proof.] 0. secs (0.u,0.s) +Chars 3073 - 3119 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) +Chars 3120 - 3124 [Qed.] 0. secs (0.u,0.s) +Chars 3125 - 3171 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) +Chars 3173 - 3274 [Lemma~any_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) +Chars 3275 - 3281 [Proof.] 0. secs (0.u,0.s) +Chars 3284 - 3330 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) +Chars 3331 - 3335 [Qed.] 0. secs (0.u,0.s) +Chars 3336 - 3382 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) +Chars 3384 - 3470 [Lemma~any_finite_trigger~:~~~f...] 0. secs (0.u,0.s) +Chars 3471 - 3477 [Proof.] 0. secs (0.u,0.s) +Chars 3480 - 3487 [intros.] 0. secs (0.u,0.s) +Chars 3488 - 3523 [apply~any_finite_Vis~with~(x~:...] 0. secs (0.u,0.s) +Chars 3524 - 3540 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 3541 - 3545 [Qed.] 0. secs (0.u,0.s) +Chars 3546 - 3631 [#[global]~Hint~Extern~1~(any_f...] 0. secs (0.u,0.s) +Chars 3675 - 3760 [Lemma~all_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) +Chars 3761 - 3767 [Proof.] 0. secs (0.u,0.s) +Chars 3770 - 3814 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 3815 - 3819 [Qed.] 0. secs (0.u,0.s) +Chars 3821 - 3934 [Lemma~all_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) +Chars 3935 - 3941 [Proof.] 0. secs (0.u,0.s) +Chars 3944 - 3994 [intros~*~FIN~x;~inv~FIN;~cbn~i...] 0.034 secs (0.033u,0.s) +Chars 3997 - 4007 [revert~H0.] 0. secs (0.u,0.s) +Chars 4010 - 4111 [refine~~~match~~~~~H~in~(_~=~u...] 0.003 secs (0.003u,0.s) +Chars 4114 - 4119 [auto.] 0. secs (0.u,0.s) +Chars 4120 - 4124 [Qed.] 0.001 secs (0.u,0.s) +Chars 4143 - 4228 [Lemma~any_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) +Chars 4229 - 4235 [Proof.] 0. secs (0.u,0.s) +Chars 4238 - 4282 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 4283 - 4287 [Qed.] 0. secs (0.u,0.s) +Chars 4289 - 4402 [Lemma~any_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) +Chars 4403 - 4409 [Proof.] 0. secs (0.u,0.s) +Chars 4412 - 4460 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 4463 - 4475 [revert~x~H0.] 0. secs (0.u,0.s) +Chars 4478 - 4579 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 4582 - 4588 [eauto.] 0. secs (0.u,0.s) +Chars 4589 - 4593 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4723 - 4849 [Lemma~all_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) +Chars 4850 - 4856 [Proof.] 0. secs (0.u,0.s) +Chars 4859 - 4890 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) +Chars 4893 - 4921 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) +Chars 4924 - 4925 [-] 0. secs (0.u,0.s) +Chars 4926 - 4937 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 4943 - 4968 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) +Chars 4973 - 5005 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) +Chars 5010 - 5069 [hinduction~EQ~before~R;~intros...] 0.038 secs (0.037u,0.s) +Chars 5072 - 5073 [-] 0. secs (0.u,0.s) +Chars 5074 - 5111 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 5116 - 5128 [apply~IHFIN.] 0. secs (0.u,0.s) +Chars 5129 - 5151 [rewrite~<-~tau_euttge.] 0.036 secs (0.031u,0.004s) +Chars 5152 - 5161 [now~step.] 0.001 secs (0.001u,0.s) +Chars 5165 - 5166 [-] 0. secs (0.u,0.s) +Chars 5167 - 5204 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 5209 - 5244 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) +Chars 5249 - 5290 [hinduction~EQ~before~R;~intros...] 0.007 secs (0.007u,0.s) +Chars 5295 - 5296 [+] 0. secs (0.u,0.s) +Chars 5297 - 5310 [revert~H0~H1.] 0. secs (0.u,0.s) +Chars 5317 - 5421 [refine~~~match~~~~~Heqi~in~(_~...] 0.003 secs (0.002u,0.s) +Chars 5428 - 5445 [eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 5450 - 5451 [+] 0. secs (0.u,0.s) +Chars 5452 - 5479 [inv~Heqi;~eauto~with~itree.] 0.005 secs (0.005u,0.s) +Chars 5480 - 5484 [Qed.] 0.005 secs (0.005u,0.s) +Chars 5486 - 5612 [Lemma~all_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) +Chars 5613 - 5619 [Proof.] 0. secs (0.u,0.s) +Chars 5622 - 5634 [intros~*~EQ.] 0. secs (0.u,0.s) +Chars 5635 - 5657 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) +Chars 5658 - 5668 [revert~EQ.] 0. secs (0.u,0.s) +Chars 5669 - 5693 [apply~all_finite_eutt_l.] 0. secs (0.u,0.s) +Chars 5694 - 5698 [Qed.] 0. secs (0.u,0.s) +Chars 5700 - 5788 [#[global]~Instance~all_finite_...] 0. secs (0.u,0.s) +Chars 5789 - 5795 [Proof.] 0. secs (0.u,0.s) +Chars 5798 - 5818 [repeat~intro;~split.] 0. secs (0.u,0.s) +Chars 5821 - 5822 [-] 0. secs (0.u,0.s) +Chars 5823 - 5855 [eapply~all_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) +Chars 5858 - 5859 [-] 0. secs (0.u,0.s) +Chars 5860 - 5892 [eapply~all_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) +Chars 5893 - 5897 [Qed.] 0. secs (0.u,0.s) +Chars 5916 - 6042 [Lemma~any_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) +Chars 6043 - 6049 [Proof.] 0. secs (0.u,0.s) +Chars 6052 - 6083 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) +Chars 6086 - 6114 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) +Chars 6117 - 6118 [-] 0. secs (0.u,0.s) +Chars 6119 - 6130 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 6131 - 6156 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) +Chars 6161 - 6193 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) +Chars 6198 - 6257 [hinduction~EQ~before~R;~intros...] 0.005 secs (0.005u,0.s) +Chars 6260 - 6261 [-] 0. secs (0.u,0.s) +Chars 6262 - 6299 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 6306 - 6318 [apply~IHFIN.] 0. secs (0.u,0.s) +Chars 6319 - 6341 [rewrite~<-~tau_euttge.] 0.03 secs (0.03u,0.s) +Chars 6342 - 6351 [now~step.] 0.001 secs (0.001u,0.s) +Chars 6355 - 6356 [-] 0. secs (0.u,0.s) +Chars 6357 - 6394 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 6399 - 6434 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) +Chars 6439 - 6480 [hinduction~EQ~before~R;~intros...] 0.006 secs (0.006u,0.s) +Chars 6485 - 6486 [+] 0. secs (0.u,0.s) +Chars 6487 - 6506 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) +Chars 6513 - 6617 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) +Chars 6624 - 6641 [eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6646 - 6647 [+] 0. secs (0.u,0.s) +Chars 6648 - 6675 [inv~Heqi;~eauto~with~itree.] 0.006 secs (0.006u,0.s) +Chars 6676 - 6680 [Qed.] 0.005 secs (0.005u,0.s) +Chars 6682 - 6808 [Lemma~any_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) +Chars 6809 - 6815 [Proof.] 0. secs (0.u,0.s) +Chars 6818 - 6830 [intros~*~EQ.] 0. secs (0.u,0.s) +Chars 6831 - 6853 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) +Chars 6854 - 6864 [revert~EQ.] 0. secs (0.u,0.s) +Chars 6865 - 6889 [apply~any_finite_eutt_l.] 0. secs (0.u,0.s) +Chars 6890 - 6894 [Qed.] 0. secs (0.u,0.s) +Chars 6896 - 6984 [#[global]~Instance~any_finite_...] 0. secs (0.u,0.s) +Chars 6985 - 6991 [Proof.] 0. secs (0.u,0.s) +Chars 6994 - 7000 [split.] 0. secs (0.u,0.s) +Chars 7003 - 7035 [eapply~any_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) +Chars 7038 - 7070 [eapply~any_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) +Chars 7071 - 7075 [Qed.] 0. secs (0.u,0.s) +Chars 7285 - 7450 [Lemma~all_finite_bind~:~~~fora...] 0. secs (0.u,0.s) +Chars 7451 - 7457 [Proof.] 0. secs (0.u,0.s) +Chars 7460 - 7547 [intros~*~FIN;~induction~FIN;~i...] 0.004 secs (0.004u,0.s) +Chars 7548 - 7552 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7554 - 7713 [Lemma~all_finite_bind_weak~:~~...] 0. secs (0.u,0.s) +Chars 7714 - 7720 [Proof.] 0. secs (0.u,0.s) +Chars 7723 - 7759 [intros;~apply~all_finite_bind;...] 0. secs (0.u,0.s) +Chars 7760 - 7764 [Qed.] 0. secs (0.u,0.s) +Chars 7821 - 7988 [Lemma~all_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) +Chars 7989 - 7995 [Proof.] 0. secs (0.u,0.s) +Chars 7998 - 8011 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 8014 - 8174 [cut~~(forall~u~:~itree~E~S,~~~...] 0. secs (0.u,0.s) +Chars 8177 - 8226 [intros~LEM~*~FIN;~eapply~LEM;~...] 0. secs (0.u,0.s) +Chars 8229 - 8254 [induction~1;~intros~*~EQ.] 0. secs (0.u,0.s) +Chars 8257 - 8258 [-] 0. secs (0.u,0.s) +Chars 8259 - 8301 [rewrite~(itree_eta~t),~H~in~EQ...] 0.013 secs (0.013u,0.s) +Chars 8306 - 8371 [symmetry~in~EQ;~apply~eqit_inv...] 0. secs (0.u,0.s) +Chars 8376 - 8412 [rewrite~EQt;~split;~auto~with~...] 0.001 secs (0.001u,0.s) +Chars 8417 - 8429 [intros~z~IN.] 0. secs (0.u,0.s) +Chars 8434 - 8485 [rewrite~EQt~in~IN;~apply~Leaf_...] 0.001 secs (0.001u,0.s) +Chars 8490 - 8519 [rewrite~EQk;~auto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 8522 - 8523 [-] 0. secs (0.u,0.s) +Chars 8524 - 8566 [rewrite~(itree_eta~t),~H~in~EQ...] 0.014 secs (0.014u,0.s) +Chars 8571 - 8594 [rewrite~tau_eutt~in~EQ.] 0.011 secs (0.011u,0.s) +Chars 8599 - 8605 [eauto.] 0. secs (0.u,0.s) +Chars 8608 - 8609 [-] 0. secs (0.u,0.s) +Chars 8610 - 8652 [rewrite~(itree_eta~t),~H~in~EQ...] 0.014 secs (0.014u,0.s) +Chars 8657 - 8703 [symmetry~in~EQ;~apply~eutt_inv...] 0. secs (0.u,0.s) +Chars 8708 - 8760 [destruct~EQ~as~[(kca,~(EQ,~EQk...] 0. secs (0.u,0.s) +Chars 8765 - 8766 [+] 0. secs (0.u,0.s) +Chars 8767 - 8778 [rewrite~EQ.] 0.001 secs (0.001u,0.s) +Chars 8785 - 8791 [split.] 0. secs (0.u,0.s) +Chars 8798 - 8819 [apply~all_finite_Vis.] 0. secs (0.u,0.s) +Chars 8826 - 8863 [intros~?;~eapply~H1;~symmetry;...] 0.001 secs (0.001u,0.s) +Chars 8870 - 8882 [intros~x~IN.] 0. secs (0.u,0.s) +Chars 8889 - 8906 [rewrite~EQ~in~IN.] 0.001 secs (0.001u,0.s) +Chars 8913 - 8950 [apply~Leaf_Vis_inv~in~IN~as~(y...] 0. secs (0.u,0.s) +Chars 8957 - 8981 [edestruct~H1~as~(_,~H).] 0. secs (0.u,0.s) +Chars 8988 - 9019 [symmetry~in~EQk;~exact~(EQk~y).] 0. secs (0.u,0.s) +Chars 9026 - 9038 [apply~H,~IN.] 0. secs (0.u,0.s) +Chars 9043 - 9044 [+] 0. secs (0.u,0.s) +Chars 9045 - 9080 [rewrite~EQ;~split;~auto~with~i...] 0.001 secs (0.001u,0.s) +Chars 9087 - 9099 [intros~y~IN.] 0. secs (0.u,0.s) +Chars 9106 - 9156 [rewrite~EQ~in~IN;~apply~Leaf_R...] 0.001 secs (0.001u,0.s) +Chars 9163 - 9175 [rewrite~EQk.] 0. secs (0.u,0.s) +Chars 9176 - 9193 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 9194 - 9198 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9200 - 9329 [Lemma~all_finite_bind_inv_left...] 0. secs (0.u,0.s) +Chars 9330 - 9336 [Proof.] 0. secs (0.u,0.s) +Chars 9339 - 9381 [intros;~eapply~all_finite_bind...] 0. secs (0.u,0.s) +Chars 9382 - 9386 [Qed.] 0. secs (0.u,0.s) +Chars 9588 - 9727 [Lemma~any_finite_bind~:~~~fora...] 0. secs (0.u,0.s) +Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) +Chars 9737 - 9767 [intros~*~IN~FIN;~induction~IN.] 0. secs (0.u,0.s) +Chars 9770 - 9771 [-] 0. secs (0.u,0.s) +Chars 9772 - 9815 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) +Chars 9818 - 9819 [-] 0. secs (0.u,0.s) +Chars 9820 - 9860 [rewrite~unfold_bind,~H,~tau_eu...] 0.003 secs (0.003u,0.s) +Chars 9863 - 9864 [-] 0. secs (0.u,0.s) +Chars 9865 - 9888 [rewrite~unfold_bind,~H.] 0.001 secs (0.001u,0.s) +Chars 9893 - 9922 [eapply~any_finite_Vis;~eauto.] 0. secs (0.u,0.s) +Chars 9923 - 9927 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10064 - 10234 [Lemma~any_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) +Chars 10235 - 10241 [Proof.] 0. secs (0.u,0.s) +Chars 10244 - 10291 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) +Chars 10294 - 10310 [revert~t~k~Hequ.] 0. secs (0.u,0.s) +Chars 10313 - 10362 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) +Chars 10365 - 10366 [-] 0. secs (0.u,0.s) +Chars 10367 - 10397 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 10402 - 10441 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 10446 - 10470 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10473 - 10474 [-] 0. secs (0.u,0.s) +Chars 10475 - 10505 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 10510 - 10549 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 10554 - 10578 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10583 - 10620 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) +Chars 10625 - 10660 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) +Chars 10665 - 10674 [apply~H1.] 0. secs (0.u,0.s) +Chars 10679 - 10703 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10706 - 10707 [-] 0. secs (0.u,0.s) +Chars 10708 - 10738 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 10743 - 10782 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 10787 - 10811 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10816 - 10835 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) +Chars 10840 - 10941 [refine~~~match~~~~~H~in~(_~=~u...] 0.003 secs (0.003u,0.s) +Chars 10946 - 10953 [intros.] 0. secs (0.u,0.s) +Chars 10958 - 11012 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) +Chars 11017 - 11041 [split;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 11042 - 11046 [Qed.] 0.003 secs (0.003u,0.s) +Chars 11048 - 11212 [Lemma~any_finite_bind_inv_weak...] 0. secs (0.u,0.s) +Chars 11213 - 11219 [Proof.] 0. secs (0.u,0.s) +Chars 11222 - 11282 [intros~*~FIN;~apply~any_finite...] 0.001 secs (0.001u,0.s) +Chars 11285 - 11298 [split;~eauto.] 0. secs (0.u,0.s) +Chars 11299 - 11303 [Qed.] 0. secs (0.u,0.s) +Chars 11305 - 11434 [Lemma~any_finite_bind_inv_left...] 0. secs (0.u,0.s) +Chars 11435 - 11441 [Proof.] 0. secs (0.u,0.s) +Chars 11444 - 11486 [intros;~eapply~any_finite_bind...] 0. secs (0.u,0.s) +Chars 11487 - 11491 [Qed.] 0. secs (0.u,0.s) +Chars 11535 - 11613 [Lemma~Leaf_finite~:~forall~E~R...] 0. secs (0.u,0.s) +Chars 11614 - 11620 [Proof.] 0. secs (0.u,0.s) +Chars 11623 - 11691 [intros~*~FIN;~induction~FIN;~r...] 0.003 secs (0.003u,0.s) +Chars 11692 - 11696 [Qed.] 0. secs (0.u,0.s) +Chars 11698 - 11784 [Lemma~finite_Leaf~:~~~forall~E...] 0. secs (0.u,0.s) +Chars 11785 - 11791 [Proof.] 0. secs (0.u,0.s) +Chars 11794 - 11822 [intros~*~FIN;~induction~FIN.] 0. secs (0.u,0.s) +Chars 11825 - 11877 [1:~exists~a;~rewrite~itree_eta...] 0.001 secs (0.001u,0.s) +Chars 11880 - 11918 [all:~destruct~IHFIN;~eauto~wit...] 0. secs (0.u,0.s) +Chars 11919 - 11923 [Qed.] 0. secs (0.u,0.s) +Chars 12232 - 12324 [Lemma~finite_non_interactive~:...] 0. secs (0.u,0.s) +Chars 12325 - 12331 [Proof.] 0. secs (0.u,0.s) +Chars 12334 - 12406 [split;~induction~1;~cbn~in~*;~...] 0.001 secs (0.001u,0.s) +Chars 12407 - 12411 [Qed.] 0. secs (0.u,0.s) +Chars 12413 - 12517 [Lemma~finite_leaf_non_interact...] 0. secs (0.u,0.s) +Chars 12518 - 12524 [Proof.] 0. secs (0.u,0.s) +Chars 12527 - 12536 [intros~*.] 0. secs (0.u,0.s) +Chars 12539 - 12570 [rewrite~finite_non_interactive.] 0. secs (0.u,0.s) +Chars 12573 - 12645 [split;~[~eauto~using~finite_Le...] 0. secs (0.u,0.s) +Chars 12646 - 12650 [Qed.] 0. secs (0.u,0.s) +Chars 12652 - 12754 [Lemma~Leaf_non_interactive_sin...] 0. secs (0.u,0.s) +Chars 12755 - 12761 [Proof.] 0. secs (0.u,0.s) +Chars 12764 - 12814 [intros~*~IN;~revert~b;~inducti...] 0. secs (0.u,0.s) +Chars 12817 - 12818 [-] 0. secs (0.u,0.s) +Chars 12819 - 12880 [rewrite~itree_eta,~H~in~IN';~a...] 0.001 secs (0.001u,0.s) +Chars 12883 - 12884 [-] 0. secs (0.u,0.s) +Chars 12885 - 12930 [rewrite~itree_eta,~H,~tau_eutt...] 0.003 secs (0.003u,0.s) +Chars 12933 - 12934 [-] 0. secs (0.u,0.s) +Chars 12935 - 12941 [inv~e.] 0. secs (0.u,0.s) +Chars 12942 - 12946 [Qed.] 0. secs (0.u,0.s) +Chars 12996 - 13114 [Lemma~all_finite_translate~{E}...] 0. secs (0.u,0.s) +Chars 13115 - 13121 [Proof.] 0. secs (0.u,0.s) +Chars 13124 - 13180 [intros~*;~induction~1;~rewrite...] 0.004 secs (0.004u,0.s) +Chars 13183 - 13184 [-] 0. secs (0.u,0.s) +Chars 13185 - 13206 [apply~all_finite_Ret.] 0. secs (0.u,0.s) +Chars 13209 - 13210 [-] 0. secs (0.u,0.s) +Chars 13211 - 13232 [apply~all_finite_Tau.] 0. secs (0.u,0.s) +Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) +Chars 13241 - 13242 [-] 0. secs (0.u,0.s) +Chars 13243 - 13264 [apply~all_finite_Vis.] 0. secs (0.u,0.s) +Chars 13265 - 13270 [auto.] 0. secs (0.u,0.s) +Chars 13271 - 13275 [Qed.] 0. secs (0.u,0.s) +Chars 13277 - 13395 [Lemma~any_finite_translate~{E}...] 0. secs (0.u,0.s) +Chars 13396 - 13402 [Proof.] 0. secs (0.u,0.s) +Chars 13405 - 13414 [intros~*.] 0. secs (0.u,0.s) +Chars 13415 - 13461 [induction~1;~rewrite~unfold_tr...] 0.003 secs (0.003u,0.s) +Chars 13464 - 13465 [-] 0. secs (0.u,0.s) +Chars 13466 - 13487 [apply~any_finite_Ret.] 0. secs (0.u,0.s) +Chars 13490 - 13491 [-] 0. secs (0.u,0.s) +Chars 13492 - 13513 [apply~any_finite_Tau.] 0. secs (0.u,0.s) +Chars 13514 - 13519 [auto.] 0. secs (0.u,0.s) +Chars 13522 - 13523 [-] 0. secs (0.u,0.s) +Chars 13524 - 13546 [eapply~any_finite_Vis.] 0. secs (0.u,0.s) +Chars 13547 - 13553 [eauto.] 0. secs (0.u,0.s) +Chars 13554 - 13558 [Qed.] 0. secs (0.u,0.s) +Chars 13614 - 13680 [Lemma~spin_not_all_finite~:~fo...] 0. secs (0.u,0.s) +Chars 13681 - 13687 [Proof.] 0. secs (0.u,0.s) +Chars 13690 - 13808 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) +Chars 13809 - 13813 [Qed.] 0. secs (0.u,0.s) +Chars 13815 - 13881 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) +Chars 13882 - 13888 [Proof.] 0. secs (0.u,0.s) +Chars 13891 - 14009 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) +Chars 14010 - 14014 [Qed.] 0. secs (0.u,0.s) +Chars 14016 - 14075 [Lemma~spin_empty_Leaf~:~forall...] 0. secs (0.u,0.s) +Chars 14076 - 14082 [Proof.] 0. secs (0.u,0.s) +Chars 14085 - 14149 [intros~*~IN;~apply~Leaf_finite...] 0. secs (0.u,0.s) +Chars 14150 - 14154 [Qed.] 0. secs (0.u,0.s) +Chars 14156 - 14179 [Module~Counterexamples.] 0. secs (0.u,0.s) +Chars 14628 - 14681 [Notation~fail~:=~(@throw~unit~...] 0. secs (0.u,0.s) +Chars 14685 - 14723 [Fact~fail_all_finite~:~all_fin...] 0. secs (0.u,0.s) +Chars 14726 - 14732 [Proof.] 0. secs (0.u,0.s) +Chars 14737 - 14749 [unfold~fail.] 0. secs (0.u,0.s) +Chars 14754 - 14786 [apply~all_finite_Vis;~intros~[].] 0. secs (0.u,0.s) +Chars 14789 - 14793 [Qed.] 0. secs (0.u,0.s) +Chars 14797 - 14841 [Fact~fail_not_any_finite~:~~~a...] 0. secs (0.u,0.s) +Chars 14844 - 14850 [Proof.] 0. secs (0.u,0.s) +Chars 14855 - 14879 [unfold~fail;~intros~FIN.] 0. secs (0.u,0.s) +Chars 14884 - 14932 [apply~any_finite_Vis_inv~in~FI...] 0. secs (0.u,0.s) +Chars 14935 - 14939 [Qed.] 0. secs (0.u,0.s) +Chars 15376 - 15436 [Definition~t~:~itree~nondetE~b...] 0. secs (0.u,0.s) +Chars 15440 - 15525 [Definition~k~:~bool~->~itree~n...] 0. secs (0.u,0.s) +Chars 15529 - 15597 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) +Chars 15600 - 15606 [Proof.] 0. secs (0.u,0.s) +Chars 15611 - 15731 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) +Chars 15734 - 15738 [Qed.] 0. secs (0.u,0.s) +Chars 15742 - 15766 [Fact~DFt~:~any_finite~t.] 0. secs (0.u,0.s) +Chars 15769 - 15775 [Proof.] 0. secs (0.u,0.s) +Chars 15780 - 15828 [apply~any_finite_Vis~with~true...] 0. secs (0.u,0.s) +Chars 15831 - 15835 [Qed.] 0. secs (0.u,0.s) +Chars 15839 - 15871 [Fact~DFk~:~any_finite~(k~false).] 0. secs (0.u,0.s) +Chars 15874 - 15880 [Proof.] 0. secs (0.u,0.s) +Chars 15885 - 15906 [cbn;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 15909 - 15913 [Qed.] 0. secs (0.u,0.s) +Chars 15917 - 15954 [Fact~NotDFtk~:~~~any_finite~(t...] 0. secs (0.u,0.s) +Chars 15957 - 15963 [Proof.] 0. secs (0.u,0.s) +Chars 15966 - 15977 [intros~abs.] 0. secs (0.u,0.s) +Chars 15980 - 16039 [apply~any_finite_bind_inv~in~a...] 0. secs (0.u,0.s) +Chars 16042 - 16063 [destruct~b;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 16066 - 16067 [-] 0. secs (0.u,0.s) +Chars 16068 - 16102 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) +Chars 16105 - 16106 [-] 0. secs (0.u,0.s) +Chars 16107 - 16122 [unfold~t~in~IN.] 0. secs (0.u,0.s) +Chars 16127 - 16143 [clear~FINk~FINt.] 0. secs (0.u,0.s) +Chars 16148 - 16181 [inv~IN;~cbn~in~*;~try~congruence.] 0.002 secs (0.002u,0.s) +Chars 16186 - 16208 [dependent~induction~H.] 0.001 secs (0.001u,0.s) +Chars 16213 - 16234 [destruct~x;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 16239 - 16276 [apply~Leaf_Ret_inv~in~H0;~cong...] 0. secs (0.u,0.s) +Chars 16281 - 16305 [apply~Leaf_finite~in~H0.] 0. secs (0.u,0.s) +Chars 16310 - 16344 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) +Chars 16347 - 16351 [Qed.] 0.003 secs (0.003u,0.s) +Chars 16353 - 16373 [End~Counterexamples.] 0. secs (0.u,0.s) diff --git a/theories/Props/HasPost.v.timing b/theories/Props/HasPost.v.timing new file mode 100644 index 00000000..8ef538ac --- /dev/null +++ b/theories/Props/HasPost.v.timing @@ -0,0 +1,163 @@ +Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.06 secs (0.051u,0.009s) +Chars 186 - 209 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 210 - 230 [Set~Strict~Implicit.] 0. secs (0.u,0.s) +Chars 231 - 251 [Import~RelNotations.] 0. secs (0.u,0.s) +Chars 252 - 288 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) +Chars 1381 - 1478 [Definition~has_post~{E}~{X}~(t...] 0. secs (0.u,0.s) +Chars 1534 - 1647 [Definition~has_post_strong~{E}...] 0. secs (0.u,0.s) +Chars 1649 - 1751 [Lemma~has_post_post_strong~:~~...] 0. secs (0.u,0.s) +Chars 1752 - 1758 [Proof.] 0. secs (0.u,0.s) +Chars 1761 - 1802 [intros;~split;~intros~HP;~red~...] 0. secs (0.u,0.s) +Chars 1805 - 1830 [assert~(t~≈~t)~by~auto.] 0. secs (0.u,0.s) +Chars 1834 - 1835 [-] 0. secs (0.u,0.s) +Chars 1836 - 1875 [eapply~eutt_conj;~[~reflexivit...] 0. secs (0.u,0.s) +Chars 1878 - 1879 [-] 0. secs (0.u,0.s) +Chars 1880 - 1936 [eapply~(eqit_mono~(fun~x~y~:~X...] 0.001 secs (0.001u,0.s) +Chars 1941 - 1953 [now~intros~!.] 0. secs (0.u,0.s) +Chars 1955 - 1959 [Qed.] 0. secs (0.u,0.s) +Chars 1961 - 1985 [Module~HasPostNotations.] 0. secs (0.u,0.s) +Chars 1988 - 2039 [Notation~"t~⤳~Q"~:=~(has_post~...] 0. secs (0.u,0.s) +Chars 2040 - 2061 [End~HasPostNotations.] 0. secs (0.u,0.s) +Chars 2062 - 2086 [Import~HasPostNotations.] 0. secs (0.u,0.s) +Chars 2112 - 2219 [#[global]~Instance~has_post_eq...] 0. secs (0.u,0.s) +Chars 2220 - 2226 [Proof.] 0. secs (0.u,0.s) +Chars 2229 - 2297 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) +Chars 2300 - 2301 [-] 0. secs (0.u,0.s) +Chars 2302 - 2344 [rewrite~<-~EUTT;~eapply~eutt_e...] 0.001 secs (0.001u,0.s) +Chars 2349 - 2385 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2388 - 2389 [-] 0. secs (0.u,0.s) +Chars 2390 - 2429 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) +Chars 2434 - 2470 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2471 - 2475 [Qed.] 0. secs (0.u,0.s) +Chars 2477 - 2576 [#[global]~Instance~has_post_eu...] 0. secs (0.u,0.s) +Chars 2577 - 2583 [Proof.] 0. secs (0.u,0.s) +Chars 2586 - 2654 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) +Chars 2657 - 2658 [-] 0. secs (0.u,0.s) +Chars 2659 - 2701 [rewrite~<-~EUTT;~eapply~eutt_e...] 0. secs (0.u,0.s) +Chars 2706 - 2742 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2745 - 2746 [-] 0. secs (0.u,0.s) +Chars 2747 - 2786 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) +Chars 2791 - 2827 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2828 - 2832 [Qed.] 0. secs (0.u,0.s) +Chars 3013 - 3119 [Lemma~has_post_conj~:~~~forall...] 0. secs (0.u,0.s) +Chars 3120 - 3126 [Proof.] 0. secs (0.u,0.s) +Chars 3129 - 3144 [intros~*~HP~HQ.] 0. secs (0.u,0.s) +Chars 3147 - 3178 [pose~proof~(eutt_conj~_~_~HP~HQ).] 0. secs (0.u,0.s) +Chars 3181 - 3186 [auto.] 0. secs (0.u,0.s) +Chars 3187 - 3191 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3229 - 3322 [Lemma~has_post_disj_l~:~~~fora...] 0. secs (0.u,0.s) +Chars 3323 - 3329 [Proof.] 0. secs (0.u,0.s) +Chars 3332 - 3383 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) +Chars 3386 - 3403 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) +Chars 3404 - 3416 [4:~exact~HP.] 0. secs (0.u,0.s) +Chars 3417 - 3427 [1,~2:~auto.] 0. secs (0.u,0.s) +Chars 3430 - 3449 [intros;~left;~auto.] 0. secs (0.u,0.s) +Chars 3450 - 3454 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3493 - 3586 [Lemma~has_post_disj_r~:~~~fora...] 0. secs (0.u,0.s) +Chars 3587 - 3593 [Proof.] 0. secs (0.u,0.s) +Chars 3596 - 3647 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) +Chars 3650 - 3667 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) +Chars 3668 - 3680 [4:~exact~HQ.] 0. secs (0.u,0.s) +Chars 3681 - 3691 [1,~2:~auto.] 0. secs (0.u,0.s) +Chars 3694 - 3714 [intros;~right;~auto.] 0.027 secs (0.026u,0.s) +Chars 3715 - 3719 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3737 - 3837 [Lemma~has_post_weaken~:~~~fora...] 0. secs (0.u,0.s) +Chars 3838 - 3844 [Proof.] 0. secs (0.u,0.s) +Chars 3847 - 3910 [unfold~has_post,~subrelationH,...] 0. secs (0.u,0.s) +Chars 3913 - 3930 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) +Chars 3931 - 3943 [4:~exact~HP.] 0. secs (0.u,0.s) +Chars 3944 - 3954 [1,~2:~auto.] 0. secs (0.u,0.s) +Chars 3957 - 3961 [cbn.] 0. secs (0.u,0.s) +Chars 3962 - 3996 [intros~?~?~H;~apply~INCL;~exac...] 0. secs (0.u,0.s) +Chars 3997 - 4001 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4031 - 4107 [Lemma~has_post_True~:~forall~{...] 0. secs (0.u,0.s) +Chars 4108 - 4114 [Proof.] 0. secs (0.u,0.s) +Chars 4117 - 4126 [intros~*.] 0. secs (0.u,0.s) +Chars 4127 - 4131 [red.] 0. secs (0.u,0.s) +Chars 4134 - 4174 [eapply~(eqit_mono~eq~_~true~tr...] 0.001 secs (0.001u,0.s) +Chars 4176 - 4180 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4307 - 4443 [Lemma~has_post_bind_weak~:~~~f...] 0. secs (0.u,0.s) +Chars 4444 - 4450 [Proof.] 0. secs (0.u,0.s) +Chars 4453 - 4467 [intros~*~POST.] 0. secs (0.u,0.s) +Chars 4470 - 4511 [apply~eutt_eq_bind;~intros~?;~...] 0. secs (0.u,0.s) +Chars 4512 - 4516 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4577 - 4732 [Lemma~has_post_bind~:~~~forall...] 0. secs (0.u,0.s) +Chars 4733 - 4739 [Proof.] 0. secs (0.u,0.s) +Chars 4742 - 4763 [intros~*~POST1~POST2.] 0. secs (0.u,0.s) +Chars 4766 - 4870 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 4873 - 4912 [intros~?~?~[<-~?];~eapply~POST...] 0. secs (0.u,0.s) +Chars 4913 - 4917 [Qed.] 0.002 secs (0.001u,0.s) +Chars 4951 - 5177 [Lemma~has_post_iter_strong~:~~...] 0. secs (0.u,0.s) +Chars 5178 - 5184 [Proof.] 0. secs (0.u,0.s) +Chars 5187 - 5205 [intros~*~IND~INIT.] 0. secs (0.u,0.s) +Chars 5208 - 5284 [eapply~(@KTreeFacts.eutt_iter_...] 0.001 secs (0.001u,0.s) +Chars 5287 - 5305 [intros~i~?~[<-~?].] 0. secs (0.u,0.s) +Chars 5308 - 5368 [specialize~(IND~i);~apply~has_...] 0.005 secs (0.004u,0.s) +Chars 5371 - 5401 [unfold~has_post_strong~in~IND.] 0. secs (0.u,0.s) +Chars 5404 - 5442 [eapply~eqit_mono;~try~apply~IN...] 0.003 secs (0.002u,0.s) +Chars 5445 - 5471 [intros~[]~?~[<-~?];~eauto.] 0.001 secs (0.001u,0.s) +Chars 5472 - 5476 [Qed.] 0.003 secs (0.002u,0.s) +Chars 5521 - 5634 [Lemma~has_post_translate~:~~~f...] 0. secs (0.u,0.s) +Chars 5635 - 5641 [Proof.] 0. secs (0.u,0.s) +Chars 5644 - 5675 [unfold~has_post;~intros~*~POST.] 0. secs (0.u,0.s) +Chars 5678 - 5709 [apply~eutt_translate_gen;~auto.] 0. secs (0.u,0.s) +Chars 5710 - 5714 [Qed.] 0.002 secs (0.002u,0.s) +Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0. secs (0.u,0.s) +Chars 6249 - 6255 [Proof.] 0. secs (0.u,0.s) +Chars 6258 - 6286 [intros~*~POST1~POST2~EQ~KEQ.] 0. secs (0.u,0.s) +Chars 6289 - 6357 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 6360 - 6403 [2:~intros~?~?~(?,~(?,~?));~app...] 0. secs (0.u,0.s) +Chars 6406 - 6416 [clear~KEQ.] 0. secs (0.u,0.s) +Chars 6419 - 6455 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) +Chars 6458 - 6494 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) +Chars 6497 - 6535 [pose~proof~(eqit_trans~POST1~E...] 0. secs (0.u,0.s) +Chars 6538 - 6577 [pose~proof~(eqit_trans~EQ1~POS...] 0. secs (0.u,0.s) +Chars 6580 - 6591 [clear~-~EQ2.] 0. secs (0.u,0.s) +Chars 6594 - 6619 [eapply~eutt_equiv;~eauto.] 0. secs (0.u,0.s) +Chars 6622 - 6628 [split.] 0. secs (0.u,0.s) +Chars 6631 - 6632 [-] 0. secs (0.u,0.s) +Chars 6633 - 6682 [intros~?~?~(?,~(?,~?));~do~2~e...] 0. secs (0.u,0.s) +Chars 6685 - 6686 [-] 0. secs (0.u,0.s) +Chars 6687 - 6700 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 6701 - 6707 [inv~H.] 0.002 secs (0.001u,0.s) +Chars 6708 - 6717 [inv~REL1.] 0.002 secs (0.001u,0.s) +Chars 6722 - 6769 [destruct~REL2~as~[->~?],~REL0~...] 0. secs (0.u,0.s) +Chars 6770 - 6774 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6833 - 7052 [Lemma~eutt_post_bind_eq~:~~~fo...] 0. secs (0.u,0.s) +Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) +Chars 7062 - 7078 [intros~*~POST~?.] 0. secs (0.u,0.s) +Chars 7081 - 7183 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 7186 - 7210 [intros~?~?~[->~?];~auto.] 0. secs (0.u,0.s) +Chars 7211 - 7215 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7435 - 7539 [Lemma~eutt_eq_itree~{E}~{X}~(R...] 0. secs (0.u,0.s) +Chars 7540 - 7546 [Proof.] 0. secs (0.u,0.s) +Chars 7549 - 7632 [enough~~(forall~t~u~:~itree~E~...] 0. secs (0.u,0.s) +Chars 7635 - 7636 [{] 0. secs (0.u,0.s) +Chars 7637 - 7689 [intros;~apply~H;~[~auto~|~appl...] 0. secs (0.u,0.s) +Chars 7690 - 7691 [}] 0. secs (0.u,0.s) +Chars 7694 - 7706 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 7710 - 7726 [intros~t~u~H~EQ.] 0. secs (0.u,0.s) +Chars 7730 - 7772 [rewrite~(itree_eta~t),~(itree_...] 0.031 secs (0.031u,0.s) +Chars 7775 - 7786 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 7787 - 7791 [cbn.] 0. secs (0.u,0.s) +Chars 7792 - 7835 [destruct~EQ;~try~discriminate;...] 0.001 secs (0.001u,0.s) +Chars 7838 - 7839 [-] 0. secs (0.u,0.s) +Chars 7840 - 7865 [rewrite~<-~eutt_Ret~in~H.] 0. secs (0.u,0.s) +Chars 7866 - 7871 [auto.] 0. secs (0.u,0.s) +Chars 7874 - 7875 [-] 0. secs (0.u,0.s) +Chars 7876 - 7903 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) +Chars 7908 - 7933 [revert~H;~apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 7936 - 7937 [-] 0. secs (0.u,0.s) +Chars 7938 - 7944 [intro.] 0. secs (0.u,0.s) +Chars 7945 - 7972 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) +Chars 7977 - 8011 [eapply~eqit_inv_Vis~with~(1~:=...] 0. secs (0.u,0.s) +Chars 8012 - 8016 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8018 - 8170 [Lemma~has_post_strong_to_eq_it...] 0. secs (0.u,0.s) +Chars 8171 - 8177 [Proof.] 0. secs (0.u,0.s) +Chars 8180 - 8210 [intros~*;~apply~eutt_eq_itree.] 0. secs (0.u,0.s) +Chars 8211 - 8215 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8217 - 8355 [Lemma~has_post_to_eq_itree~:~~...] 0. secs (0.u,0.s) +Chars 8356 - 8362 [Proof.] 0. secs (0.u,0.s) +Chars 8365 - 8436 [intros~*~H;~apply~has_post_str...] 0. secs (0.u,0.s) +Chars 8437 - 8441 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Infinite.v.timing b/theories/Props/Infinite.v.timing new file mode 100644 index 00000000..0565b0e2 --- /dev/null +++ b/theories/Props/Infinite.v.timing @@ -0,0 +1,325 @@ +Chars 170 - 245 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 247 - 352 [From~ITree~Require~Import~Axio...] 0.142 secs (0.128u,0.014s) +Chars 369 - 391 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 392 - 418 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) +Chars 420 - 443 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 467 - 715 [Inductive~any_infiniteF~{E}~{X...] 0.001 secs (0.001u,0.s) +Chars 716 - 766 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) +Chars 768 - 854 [Definition~any_infinite_~{E}~{...] 0. secs (0.u,0.s) +Chars 855 - 899 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) +Chars 901 - 977 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) +Chars 978 - 984 [Proof.] 0. secs (0.u,0.s) +Chars 988 - 1007 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 1008 - 1056 [induction~H0;~econstructor;~ea...] 0. secs (0.u,0.s) +Chars 1058 - 1062 [Qed.] 0. secs (0.u,0.s) +Chars 1065 - 1195 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) +Chars 1197 - 1273 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) +Chars 1275 - 1373 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) +Chars 1374 - 1380 [Proof.] 0. secs (0.u,0.s) +Chars 1383 - 1399 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 1400 - 1419 [split;~intros~Hinf.] 0. secs (0.u,0.s) +Chars 1422 - 1423 [-] 0. secs (0.u,0.s) +Chars 1424 - 1445 [revert~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 1446 - 1471 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) +Chars 1472 - 1490 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 1495 - 1516 [intros~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 1517 - 1528 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 1529 - 1554 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 1555 - 1574 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 1579 - 1606 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 1607 - 1628 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 1633 - 1673 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 1678 - 1713 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 1714 - 1743 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 1748 - 1761 [induction~Ht.] 0. secs (0.u,0.s) +Chars 1766 - 1767 [+] 0. secs (0.u,0.s) +Chars 1768 - 1783 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 1788 - 1789 [+] 0. secs (0.u,0.s) +Chars 1790 - 1812 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 1813 - 1825 [constructor.] 0. secs (0.u,0.s) +Chars 1826 - 1844 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 1849 - 1850 [+] 0. secs (0.u,0.s) +Chars 1851 - 1873 [inversion~Hinf;~subst.] 0.001 secs (0.001u,0.s) +Chars 1874 - 1899 [dependent~destruction~H2.] 0.002 secs (0.001u,0.s) +Chars 1906 - 1919 [econstructor.] 0. secs (0.u,0.s) +Chars 1920 - 1945 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 1946 - 1952 [eauto.] 0. secs (0.u,0.s) +Chars 1957 - 1958 [+] 0. secs (0.u,0.s) +Chars 1959 - 1970 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 1971 - 1993 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 2000 - 2038 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 2045 - 2078 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 2079 - 2106 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 2107 - 2116 [exact~H0.] 0. secs (0.u,0.s) +Chars 2121 - 2122 [+] 0. secs (0.u,0.s) +Chars 2123 - 2135 [constructor.] 0. secs (0.u,0.s) +Chars 2136 - 2141 [step.] 0. secs (0.u,0.s) +Chars 2142 - 2169 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 2170 - 2191 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 2198 - 2209 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2210 - 2221 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 2224 - 2225 [-] 0. secs (0.u,0.s) +Chars 2226 - 2247 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 2248 - 2273 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) +Chars 2274 - 2292 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 2297 - 2318 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 2319 - 2330 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 2331 - 2356 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 2357 - 2376 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 2381 - 2408 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 2409 - 2430 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 2435 - 2475 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 2480 - 2515 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 2516 - 2545 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 2550 - 2563 [induction~Ht.] 0. secs (0.u,0.s) +Chars 2568 - 2569 [+] 0. secs (0.u,0.s) +Chars 2570 - 2585 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 2590 - 2591 [+] 0. secs (0.u,0.s) +Chars 2592 - 2614 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 2615 - 2627 [constructor.] 0. secs (0.u,0.s) +Chars 2628 - 2646 [eapply~CIH;~eauto.] 0.021 secs (0.019u,0.001s) +Chars 2651 - 2652 [+] 0. secs (0.u,0.s) +Chars 2653 - 2675 [inversion~Hinf;~subst.] 0.001 secs (0.001u,0.s) +Chars 2676 - 2701 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) +Chars 2708 - 2721 [econstructor.] 0. secs (0.u,0.s) +Chars 2722 - 2747 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 2748 - 2754 [eauto.] 0. secs (0.u,0.s) +Chars 2759 - 2760 [+] 0. secs (0.u,0.s) +Chars 2761 - 2773 [constructor.] 0. secs (0.u,0.s) +Chars 2774 - 2779 [step.] 0. secs (0.u,0.s) +Chars 2780 - 2807 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 2808 - 2829 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 2836 - 2847 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2848 - 2859 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 2864 - 2865 [+] 0. secs (0.u,0.s) +Chars 2866 - 2877 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2878 - 2900 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 2907 - 2945 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 2952 - 2985 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 2986 - 3013 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 3014 - 3023 [exact~H0.] 0. secs (0.u,0.s) +Chars 3024 - 3028 [Qed.] 0.008 secs (0.007u,0.s) +Chars 3030 - 3089 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) +Chars 3090 - 3096 [Proof.] 0. secs (0.u,0.s) +Chars 3099 - 3119 [unfold~any_infinite.] 0. secs (0.u,0.s) +Chars 3120 - 3138 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3141 - 3168 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 3169 - 3190 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 3191 - 3195 [cbn.] 0. secs (0.u,0.s) +Chars 3198 - 3210 [constructor.] 0. secs (0.u,0.s) +Chars 3211 - 3221 [exact~CIH.] 0. secs (0.u,0.s) +Chars 3222 - 3226 [Qed.] 0. secs (0.u,0.s) +Chars 3228 - 3502 [Variant~all_infiniteF~{E~:~Typ...] 0. secs (0.u,0.s) +Chars 3503 - 3553 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) +Chars 3555 - 3647 [Definition~all_infinite_~{E}~{...] 0. secs (0.u,0.s) +Chars 3649 - 3808 [Lemma~all_infiniteF_mono~{E}~{...] 0. secs (0.u,0.s) +Chars 3809 - 3815 [Proof.] 0. secs (0.u,0.s) +Chars 3818 - 3849 [induction~IN;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 3850 - 3854 [Qed.] 0. secs (0.u,0.s) +Chars 3856 - 3931 [Lemma~all_infinite__mono~{E}~{...] 0. secs (0.u,0.s) +Chars 3932 - 3938 [Proof.] 0. secs (0.u,0.s) +Chars 3941 - 3977 [repeat~red;~intros~sim~sim'~LE...] 0. secs (0.u,0.s) +Chars 3980 - 4006 [unfold~all_infinite_~in~*.] 0. secs (0.u,0.s) +Chars 4007 - 4040 [eapply~all_infiniteF_mono;~eauto.] 0. secs (0.u,0.s) +Chars 4041 - 4045 [Qed.] 0. secs (0.u,0.s) +Chars 4047 - 4175 [Definition~all_infinite_mon~{E...] 0. secs (0.u,0.s) +Chars 4177 - 4258 [Definition~all_infinite~{E}~{A...] 0. secs (0.u,0.s) +Chars 4260 - 4303 [#[global]~Hint~Unfold~all_infi...] 0. secs (0.u,0.s) +Chars 4305 - 4592 [Inductive~may_converge~{E~:~Ty...] 0.001 secs (0.001u,0.s) +Chars 4593 - 4642 [#[global]~Hint~Constructors~ma...] 0. secs (0.u,0.s) +Chars 4644 - 4751 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) +Chars 4752 - 4758 [Proof.] 0. secs (0.u,0.s) +Chars 4761 - 4777 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 4778 - 4792 [split;~intros.] 0. secs (0.u,0.s) +Chars 4795 - 4796 [-] 0. secs (0.u,0.s) +Chars 4797 - 4809 [induction~H.] 0. secs (0.u,0.s) +Chars 4814 - 4815 [+] 0. secs (0.u,0.s) +Chars 4816 - 4837 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) +Chars 4838 - 4852 [rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) +Chars 4853 - 4858 [auto.] 0. secs (0.u,0.s) +Chars 4863 - 4864 [+] 0. secs (0.u,0.s) +Chars 4865 - 4888 [eapply~conv_vis;~eauto.] 0.03 secs (0.029u,0.s) +Chars 4889 - 4902 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 4909 - 4918 [symmetry.] 0. secs (0.u,0.s) +Chars 4919 - 4924 [auto.] 0. secs (0.u,0.s) +Chars 4927 - 4928 [-] 0. secs (0.u,0.s) +Chars 4929 - 4941 [induction~H.] 0. secs (0.u,0.s) +Chars 4946 - 4947 [+] 0. secs (0.u,0.s) +Chars 4948 - 4969 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) +Chars 4970 - 4981 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 4982 - 4987 [auto.] 0. secs (0.u,0.s) +Chars 4992 - 4993 [+] 0. secs (0.u,0.s) +Chars 4994 - 5017 [eapply~conv_vis;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5018 - 5029 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 5036 - 5042 [eauto.] 0. secs (0.u,0.s) +Chars 5043 - 5047 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5049 - 5126 [Ltac~contra_void~:=~try~match~...] 0. secs (0.u,0.s) +Chars 5128 - 5226 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) +Chars 5227 - 5233 [Proof.] 0. secs (0.u,0.s) +Chars 5236 - 5252 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 5253 - 5272 [split;~intros~Hinf.] 0. secs (0.u,0.s) +Chars 5275 - 5276 [-] 0. secs (0.u,0.s) +Chars 5277 - 5298 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 5299 - 5324 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) +Chars 5325 - 5343 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 5348 - 5369 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 5370 - 5381 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 5382 - 5407 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 5408 - 5427 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 5432 - 5459 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 5460 - 5481 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 5486 - 5526 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 5531 - 5566 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 5567 - 5596 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 5601 - 5614 [induction~Ht.] 0. secs (0.u,0.s) +Chars 5619 - 5620 [+] 0. secs (0.u,0.s) +Chars 5621 - 5636 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 5641 - 5642 [+] 0. secs (0.u,0.s) +Chars 5643 - 5665 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 5666 - 5678 [constructor.] 0. secs (0.u,0.s) +Chars 5679 - 5697 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 5702 - 5703 [+] 0. secs (0.u,0.s) +Chars 5704 - 5726 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 5727 - 5752 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) +Chars 5759 - 5772 [econstructor.] 0. secs (0.u,0.s) +Chars 5773 - 5782 [intros~b.] 0. secs (0.u,0.s) +Chars 5783 - 5808 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 5809 - 5818 [apply~H0.] 0. secs (0.u,0.s) +Chars 5823 - 5824 [+] 0. secs (0.u,0.s) +Chars 5825 - 5836 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 5837 - 5859 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 5866 - 5904 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 5911 - 5944 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 5945 - 5972 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 5973 - 5982 [exact~H0.] 0. secs (0.u,0.s) +Chars 5987 - 5988 [+] 0. secs (0.u,0.s) +Chars 5989 - 6001 [constructor.] 0. secs (0.u,0.s) +Chars 6002 - 6007 [step.] 0. secs (0.u,0.s) +Chars 6008 - 6035 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 6036 - 6057 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 6064 - 6075 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 6076 - 6087 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 6090 - 6091 [-] 0. secs (0.u,0.s) +Chars 6092 - 6113 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 6114 - 6139 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) +Chars 6140 - 6158 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 6163 - 6184 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 6185 - 6196 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 6197 - 6222 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 6223 - 6242 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 6247 - 6274 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 6275 - 6296 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 6301 - 6341 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 6346 - 6381 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 6382 - 6411 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 6416 - 6429 [induction~Ht.] 0. secs (0.u,0.s) +Chars 6434 - 6435 [+] 0. secs (0.u,0.s) +Chars 6436 - 6451 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 6456 - 6457 [+] 0. secs (0.u,0.s) +Chars 6458 - 6480 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 6481 - 6493 [constructor.] 0. secs (0.u,0.s) +Chars 6494 - 6512 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6517 - 6518 [+] 0. secs (0.u,0.s) +Chars 6519 - 6541 [inversion~Hinf;~subst.] 0.003 secs (0.003u,0.s) +Chars 6542 - 6567 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) +Chars 6574 - 6587 [econstructor.] 0. secs (0.u,0.s) +Chars 6588 - 6597 [intros~b.] 0. secs (0.u,0.s) +Chars 6598 - 6623 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 6624 - 6633 [apply~H0.] 0. secs (0.u,0.s) +Chars 6638 - 6639 [+] 0. secs (0.u,0.s) +Chars 6640 - 6652 [constructor.] 0. secs (0.u,0.s) +Chars 6653 - 6658 [step.] 0. secs (0.u,0.s) +Chars 6659 - 6686 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 6687 - 6708 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 6715 - 6726 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 6727 - 6738 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 6743 - 6744 [+] 0. secs (0.u,0.s) +Chars 6745 - 6756 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 6757 - 6779 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 6786 - 6824 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 6831 - 6864 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 6865 - 6892 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 6893 - 6902 [exact~H0.] 0. secs (0.u,0.s) +Chars 6903 - 6907 [Qed.] 0.007 secs (0.007u,0.s) +Chars 6909 - 7053 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) +Chars 7054 - 7060 [Proof.] 0. secs (0.u,0.s) +Chars 7063 - 7074 [intros~E~A.] 0. secs (0.u,0.s) +Chars 7075 - 7095 [unfold~all_infinite.] 0. secs (0.u,0.s) +Chars 7096 - 7114 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 7115 - 7129 [intros~t~Hcon.] 0. secs (0.u,0.s) +Chars 7132 - 7159 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 7160 - 7181 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 7184 - 7268 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) +Chars 7271 - 7272 [-] 0. secs (0.u,0.s) +Chars 7273 - 7281 [exfalso.] 0. secs (0.u,0.s) +Chars 7282 - 7297 [apply~(Hcon~r).] 0. secs (0.u,0.s) +Chars 7298 - 7309 [rewrite~Ht.] 0.003 secs (0.003u,0.s) +Chars 7310 - 7322 [constructor.] 0. secs (0.u,0.s) +Chars 7323 - 7335 [reflexivity.] 0. secs (0.u,0.s) +Chars 7338 - 7339 [-] 0. secs (0.u,0.s) +Chars 7340 - 7352 [constructor.] 0. secs (0.u,0.s) +Chars 7353 - 7363 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7368 - 7394 [setoid_rewrite~Ht~in~Hcon.] 0.003 secs (0.003u,0.s) +Chars 7395 - 7427 [setoid_rewrite~tau_eutt~in~Hcon.] 0.001 secs (0.u,0.s) +Chars 7428 - 7433 [auto.] 0. secs (0.u,0.s) +Chars 7436 - 7437 [-] 0. secs (0.u,0.s) +Chars 7438 - 7450 [constructor.] 0. secs (0.u,0.s) +Chars 7451 - 7460 [intros~b.] 0. secs (0.u,0.s) +Chars 7461 - 7471 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7476 - 7493 [intros~a~Hcontra.] 0. secs (0.u,0.s) +Chars 7494 - 7520 [setoid_rewrite~Ht~in~Hcon.] 0.006 secs (0.006u,0.s) +Chars 7525 - 7540 [apply~(Hcon~a).] 0. secs (0.u,0.s) +Chars 7541 - 7581 [eapply~conv_vis;~try~reflexivi...] 0. secs (0.u,0.s) +Chars 7582 - 7586 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7588 - 7718 [Lemma~classic_converge~:~~~for...] 0. secs (0.u,0.s) +Chars 7719 - 7725 [Proof.] 0. secs (0.u,0.s) +Chars 7728 - 7735 [intros.] 0. secs (0.u,0.s) +Chars 7736 - 7791 [destruct~(classic~(exists~a,~m...] 0. secs (0.u,0.s) +Chars 7794 - 7800 [right.] 0. secs (0.u,0.s) +Chars 7801 - 7836 [apply~not_converge_to_all_infi...] 0. secs (0.u,0.s) +Chars 7837 - 7854 [intros~a~Hcontra.] 0. secs (0.u,0.s) +Chars 7857 - 7865 [apply~H.] 0. secs (0.u,0.s) +Chars 7866 - 7875 [exists~a.] 0. secs (0.u,0.s) +Chars 7876 - 7881 [auto.] 0. secs (0.u,0.s) +Chars 7882 - 7886 [Qed.] 0. secs (0.u,0.s) +Chars 7888 - 8025 [Lemma~all_infinite_not_converg...] 0. secs (0.u,0.s) +Chars 8026 - 8032 [Proof.] 0. secs (0.u,0.s) +Chars 8035 - 8056 [intros~E~R~t~r~Hc~Hd.] 0. secs (0.u,0.s) +Chars 8057 - 8070 [induction~Hc.] 0. secs (0.u,0.s) +Chars 8073 - 8074 [-] 0. secs (0.u,0.s) +Chars 8075 - 8091 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) +Chars 8092 - 8130 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 8135 - 8168 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) +Chars 8169 - 8196 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) +Chars 8201 - 8214 [inversion~Hd.] 0. secs (0.u,0.s) +Chars 8217 - 8218 [-] 0. secs (0.u,0.s) +Chars 8219 - 8230 [apply~IHHc.] 0. secs (0.u,0.s) +Chars 8231 - 8247 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) +Chars 8252 - 8290 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 8295 - 8328 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) +Chars 8329 - 8356 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) +Chars 8361 - 8374 [inversion~Hd.] 0. secs (0.u,0.s) +Chars 8375 - 8388 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 8389 - 8395 [subst.] 0. secs (0.u,0.s) +Chars 8396 - 8405 [apply~H1.] 0. secs (0.u,0.s) +Chars 8406 - 8410 [Qed.] 0.002 secs (0.002u,0.s) +Chars 8412 - 8508 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) +Chars 8509 - 8515 [Proof.] 0. secs (0.u,0.s) +Chars 8518 - 8525 [intros.] 0. secs (0.u,0.s) +Chars 8526 - 8538 [inversion~H.] 0. secs (0.u,0.s) +Chars 8541 - 8542 [-] 0. secs (0.u,0.s) +Chars 8543 - 8568 [apply~eutt_inv_Ret~in~H0.] 0. secs (0.u,0.s) +Chars 8569 - 8574 [auto.] 0. secs (0.u,0.s) +Chars 8577 - 8578 [-] 0. secs (0.u,0.s) +Chars 8579 - 8626 [apply~eqit_inv~in~H0;~cbn~in~H...] 0. secs (0.u,0.s) +Chars 8627 - 8631 [Qed.] 0. secs (0.u,0.s) +Chars 8706 - 8805 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) +Chars 8848 - 8966 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) +Chars 8967 - 8973 [Proof.] 0. secs (0.u,0.s) +Chars 8976 - 8993 [intros~H~HContra.] 0. secs (0.u,0.s) +Chars 8994 - 9015 [rewrite~HContra~in~H.] 0.001 secs (0.u,0.s) +Chars 9018 - 9055 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 9058 - 9090 [cbn[any_infinite_mon~body]~in~H.] 0. secs (0.u,0.s) +Chars 9091 - 9117 [unfold~any_infinite_~in~H.] 0. secs (0.u,0.s) +Chars 9120 - 9132 [inversion~H.] 0. secs (0.u,0.s) +Chars 9133 - 9137 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Leaf.v.timing b/theories/Props/Leaf.v.timing new file mode 100644 index 00000000..8b31df57 --- /dev/null +++ b/theories/Props/Leaf.v.timing @@ -0,0 +1,401 @@ +Chars 57 - 260 [From~ITree~Require~Import~Basi...] 0.067 secs (0.057u,0.009s) +Chars 262 - 323 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 324 - 337 [Import~ITree.] 0. secs (0.u,0.s) +Chars 338 - 360 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 826 - 1118 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.002 secs (0.002u,0.s) +Chars 1119 - 1160 [#[global]~Hint~Constructors~Le...] 0. secs (0.u,0.s) +Chars 1162 - 1183 [Module~LeafNotations.] 0. secs (0.u,0.s) +Chars 1186 - 1233 [Notation~"a~∈~t"~:=~(Leaf~a~t)...] 0. secs (0.u,0.s) +Chars 1234 - 1252 [End~LeafNotations.] 0.001 secs (0.001u,0.s) +Chars 1254 - 1275 [Import~LeafNotations.] 0. secs (0.u,0.s) +Chars 1304 - 1363 [Lemma~Leaf_Ret~:~forall~E~R~a,...] 0. secs (0.u,0.s) +Chars 1364 - 1370 [Proof.] 0. secs (0.u,0.s) +Chars 1373 - 1407 [intros;~econstructor;~reflexiv...] 0. secs (0.u,0.s) +Chars 1408 - 1412 [Qed.] 0. secs (0.u,0.s) +Chars 1414 - 1488 [Lemma~Leaf_Tau~:~forall~E~R~a~...] 0. secs (0.u,0.s) +Chars 1489 - 1495 [Proof.] 0. secs (0.u,0.s) +Chars 1498 - 1542 [intros;~econstructor;~[~reflex...] 0. secs (0.u,0.s) +Chars 1543 - 1547 [Qed.] 0. secs (0.u,0.s) +Chars 1549 - 1650 [Lemma~Leaf_Vis~:~~~forall~E~X~...] 0. secs (0.u,0.s) +Chars 1651 - 1657 [Proof.] 0. secs (0.u,0.s) +Chars 1660 - 1711 [intros~*~IN;~econstructor~3;~[...] 0. secs (0.u,0.s) +Chars 1712 - 1716 [Qed.] 0. secs (0.u,0.s) +Chars 1742 - 1822 [Lemma~Leaf_Ret_inv~:~forall~E~...] 0. secs (0.u,0.s) +Chars 1823 - 1829 [Proof.] 0. secs (0.u,0.s) +Chars 1832 - 1878 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) +Chars 1879 - 1883 [Qed.] 0. secs (0.u,0.s) +Chars 1885 - 1963 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) +Chars 1964 - 1970 [Proof.] 0. secs (0.u,0.s) +Chars 1973 - 2019 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) +Chars 2020 - 2024 [Qed.] 0. secs (0.u,0.s) +Chars 2026 - 2135 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) +Chars 2136 - 2142 [Proof.] 0. secs (0.u,0.s) +Chars 2145 - 2193 [intros~*~IN~*;~inv~IN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 2196 - 2208 [revert~x~H0.] 0. secs (0.u,0.s) +Chars 2211 - 2326 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 2329 - 2335 [eauto.] 0.028 secs (0.028u,0.s) +Chars 2336 - 2340 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2513 - 2650 [Lemma~Leaf_eutt_l~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 2651 - 2657 [Proof.] 0. secs (0.u,0.s) +Chars 2660 - 2691 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) +Chars 2694 - 2722 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) +Chars 2726 - 2727 [-] 0. secs (0.u,0.s) +Chars 2728 - 2739 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 2745 - 2772 [rewrite~H~in~EQ;~clear~H~t.] 0. secs (0.u,0.s) +Chars 2777 - 2809 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) +Chars 2814 - 2855 [hinduction~EQ~before~R;~intros...] 0.004 secs (0.004u,0.s) +Chars 2860 - 2861 [+] 0. secs (0.u,0.s) +Chars 2862 - 2889 [inv~Heqi;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 2894 - 2895 [+] 0. secs (0.u,0.s) +Chars 2896 - 2946 [edestruct~IHEQ~as~(b,~(IN,~HR)...] 0. secs (0.u,0.s) +Chars 2949 - 2950 [-] 0. secs (0.u,0.s) +Chars 2951 - 2990 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 2995 - 3028 [remember~(TauF~u);~genobs~u2~ou2.] 0. secs (0.u,0.s) +Chars 3033 - 3084 [hinduction~EQ~before~R;~intros...] 0.02 secs (0.018u,0.002s) +Chars 3089 - 3090 [+] 0. secs (0.u,0.s) +Chars 3091 - 3158 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) +Chars 3163 - 3164 [+] 0. secs (0.u,0.s) +Chars 3165 - 3178 [eapply~IHFIN.] 0. secs (0.u,0.s) +Chars 3179 - 3188 [now~step.] 0.001 secs (0.001u,0.s) +Chars 3194 - 3195 [+] 0. secs (0.u,0.s) +Chars 3196 - 3262 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.001 secs (0.001u,0.s) +Chars 3265 - 3266 [-] 0. secs (0.u,0.s) +Chars 3267 - 3306 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 3311 - 3346 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) +Chars 3351 - 3400 [hinduction~EQ~before~R;~intros...] 0.001 secs (0.001u,0.s) +Chars 3405 - 3406 [+] 0. secs (0.u,0.s) +Chars 3407 - 3426 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) +Chars 3433 - 3551 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) +Chars 3558 - 3565 [intros.] 0. secs (0.u,0.s) +Chars 3566 - 3630 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) +Chars 3635 - 3636 [+] 0. secs (0.u,0.s) +Chars 3637 - 3704 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.002 secs (0.001u,0.s) +Chars 3705 - 3709 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3711 - 3848 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 3849 - 3855 [Proof.] 0. secs (0.u,0.s) +Chars 3858 - 3874 [intros~*~EQ~FIN.] 0. secs (0.u,0.s) +Chars 3877 - 3899 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) +Chars 3902 - 3916 [revert~EQ~FIN.] 0. secs (0.u,0.s) +Chars 3919 - 3938 [apply~@Leaf_eutt_l.] 0. secs (0.u,0.s) +Chars 3939 - 3943 [Qed.] 0. secs (0.u,0.s) +Chars 3945 - 4027 [#[global]~Instance~Leaf_eutt~~...] 0. secs (0.u,0.s) +Chars 4028 - 4034 [Proof.] 0. secs (0.u,0.s) +Chars 4037 - 4083 [apply~proper_sym_impl_iff_2;~[...] 0. secs (0.u,0.s) +Chars 4086 - 4118 [unfold~Proper,~respectful,~impl.] 0. secs (0.u,0.s) +Chars 4119 - 4133 [intros;~subst.] 0. secs (0.u,0.s) +Chars 4136 - 4205 [edestruct~@Leaf_eutt_l~as~[?~[...] 0. secs (0.u,0.s) +Chars 4206 - 4210 [Qed.] 0. secs (0.u,0.s) +Chars 4268 - 4389 [Lemma~Leaf_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) +Chars 4390 - 4396 [Proof.] 0. secs (0.u,0.s) +Chars 4399 - 4431 [intros~*~INt~INk;~induction~INt.] 0. secs (0.u,0.s) +Chars 4434 - 4435 [-] 0. secs (0.u,0.s) +Chars 4436 - 4479 [rewrite~(itree_eta~t),~H,~bind...] 0.004 secs (0.004u,0.s) +Chars 4482 - 4483 [-] 0. secs (0.u,0.s) +Chars 4484 - 4525 [rewrite~(itree_eta~t),~H,~tau_...] 0.004 secs (0.004u,0.s) +Chars 4528 - 4529 [-] 0. secs (0.u,0.s) +Chars 4530 - 4565 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) +Chars 4570 - 4598 [apply~Leaf_Vis~with~x;~auto.] 0. secs (0.u,0.s) +Chars 4599 - 4603 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4605 - 4736 [Lemma~Leaf_bind_inv~:~~~forall...] 0. secs (0.u,0.s) +Chars 4737 - 4743 [Proof.] 0. secs (0.u,0.s) +Chars 4746 - 4793 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) +Chars 4796 - 4812 [revert~t~k~Hequ.] 0. secs (0.u,0.s) +Chars 4815 - 4864 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) +Chars 4867 - 4868 [-] 0. secs (0.u,0.s) +Chars 4869 - 4899 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 4904 - 4943 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 4948 - 4974 [exists~r;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4977 - 4978 [-] 0. secs (0.u,0.s) +Chars 4979 - 5009 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 5014 - 5086 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) +Chars 5091 - 5128 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) +Chars 5133 - 5203 [edestruct~IHFIN~as~(?,~(?,~?))...] 0. secs (0.u,0.s) +Chars 5206 - 5207 [-] 0. secs (0.u,0.s) +Chars 5208 - 5238 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 5243 - 5315 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) +Chars 5320 - 5339 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) +Chars 5344 - 5459 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 5464 - 5471 [intros.] 0. secs (0.u,0.s) +Chars 5476 - 5552 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) +Chars 5553 - 5557 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5761 - 6215 [Lemma~eqit_clo_bind_gen~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 6216 - 6222 [Proof.] 0. secs (0.u,0.s) +Chars 6225 - 6249 [intros~E~R1~R2~RR~U1~U2.] 0. secs (0.u,0.s) +Chars 6252 - 6282 [intros~UU~b1~b2~c~t1~t2~k1~k2.] 0. secs (0.u,0.s) +Chars 6285 - 6307 [revert~UU~t1~t2~k1~k2.] 0. secs (0.u,0.s) +Chars 6310 - 6326 [tower~induction.] 0.005 secs (0.004u,0.s) +Chars 6329 - 6330 [{] 0. secs (0.u,0.s) +Chars 6331 - 6338 [intros.] 0. secs (0.u,0.s) +Chars 6339 - 6359 [unfold~Datatypes.id.] 0. secs (0.u,0.s) +Chars 6360 - 6375 [apply~H0;~auto.] 0.001 secs (0.001u,0.s) +Chars 6376 - 6377 [}] 0. secs (0.u,0.s) +Chars 6380 - 6392 [intros~x~IH.] 0. secs (0.u,0.s) +Chars 6395 - 6426 [intros~UU~t1~t2~k1~k2~EQT~EQKL.] 0. secs (0.u,0.s) +Chars 6429 - 6454 [cbn[eqit_mon~body]~in~*.] 0. secs (0.u,0.s) +Chars 6457 - 6475 [unfold~eqit_~in~*.] 0. secs (0.u,0.s) +Chars 6478 - 6492 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 6495 - 6509 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 6512 - 6545 [hinduction~EQT~before~RR;~intros.] 0.002 secs (0.002u,0.s) +Chars 6548 - 6585 [1-3:~rewrite~2!observe_bind;~s...] 0.014 secs (0.014u,0.s) +Chars 6589 - 6590 [+] 0. secs (0.u,0.s) +Chars 6605 - 6616 [apply~EQKL.] 0. secs (0.u,0.s) +Chars 6622 - 6623 [*] 0. secs (0.u,0.s) +Chars 6624 - 6644 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) +Chars 6649 - 6650 [*] 0. secs (0.u,0.s) +Chars 6651 - 6671 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) +Chars 6676 - 6677 [*] 0. secs (0.u,0.s) +Chars 6678 - 6688 [exact~REL.] 0. secs (0.u,0.s) +Chars 6691 - 6692 [+] 0. secs (0.u,0.s) +Chars 6707 - 6712 [taus.] 0. secs (0.u,0.s) +Chars 6718 - 6728 [eapply~IH.] 0. secs (0.u,0.s) +Chars 6733 - 6734 [*] 0. secs (0.u,0.s) +Chars 6735 - 6745 [exact~REL.] 0. secs (0.u,0.s) +Chars 6750 - 6751 [*] 0. secs (0.u,0.s) +Chars 6752 - 6776 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) +Chars 6783 - 6788 [step.] 0.001 secs (0.001u,0.s) +Chars 6789 - 6800 [apply~EQKL.] 0. secs (0.u,0.s) +Chars 6807 - 6809 [--] 0. secs (0.u,0.s) +Chars 6810 - 6832 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) +Chars 6839 - 6841 [--] 0. secs (0.u,0.s) +Chars 6842 - 6864 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) +Chars 6871 - 6873 [--] 0. secs (0.u,0.s) +Chars 6874 - 6883 [exact~HU.] 0. secs (0.u,0.s) +Chars 6886 - 6887 [+] 0. secs (0.u,0.s) +Chars 6902 - 6914 [constructor.] 0. secs (0.u,0.s) +Chars 6915 - 6923 [intro~v.] 0. secs (0.u,0.s) +Chars 6928 - 6938 [eapply~IH.] 0. secs (0.u,0.s) +Chars 6943 - 6944 [*] 0. secs (0.u,0.s) +Chars 6945 - 6955 [apply~REL.] 0. secs (0.u,0.s) +Chars 6960 - 6961 [*] 0. secs (0.u,0.s) +Chars 6962 - 6986 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) +Chars 6993 - 6998 [step.] 0.001 secs (0.001u,0.s) +Chars 6999 - 7010 [apply~EQKL.] 0. secs (0.u,0.s) +Chars 7017 - 7019 [--] 0. secs (0.u,0.s) +Chars 7020 - 7042 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) +Chars 7049 - 7051 [--] 0. secs (0.u,0.s) +Chars 7052 - 7074 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) +Chars 7081 - 7083 [--] 0. secs (0.u,0.s) +Chars 7084 - 7093 [exact~HU.] 0. secs (0.u,0.s) +Chars 7096 - 7097 [+] 0. secs (0.u,0.s) +Chars 7113 - 7134 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 7135 - 7143 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 7148 - 7153 [taul.] 0. secs (0.u,0.s) +Chars 7158 - 7189 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 7192 - 7193 [+] 0. secs (0.u,0.s) +Chars 7209 - 7242 [setoid_rewrite~observe_bind~at~2.] 0.018 secs (0.018u,0.s) +Chars 7243 - 7251 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 7256 - 7261 [taur.] 0. secs (0.u,0.s) +Chars 7266 - 7297 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 7298 - 7302 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7352 - 7740 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) +Chars 7741 - 7747 [Proof.] 0. secs (0.u,0.s) +Chars 7750 - 7759 [intros~*.] 0. secs (0.u,0.s) +Chars 7760 - 7772 [unfold~eutt.] 0. secs (0.u,0.s) +Chars 7773 - 7797 [apply~eqit_clo_bind_gen.] 0. secs (0.u,0.s) +Chars 7798 - 7802 [Qed.] 0. secs (0.u,0.s) +Chars 7862 - 8069 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) +Chars 8070 - 8076 [Proof.] 0. secs (0.u,0.s) +Chars 8079 - 8113 [intros;~eapply~eutt_bind_eutt_...] 0. secs (0.u,0.s) +Chars 8116 - 8128 [reflexivity.] 0. secs (0.u,0.s) +Chars 8131 - 8155 [intros~*~IN~_~<-;~eauto.] 0. secs (0.u,0.s) +Chars 8156 - 8160 [Qed.] 0. secs (0.u,0.s) +Chars 8162 - 8389 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) +Chars 8390 - 8396 [Proof.] 0. secs (0.u,0.s) +Chars 8399 - 8418 [intros~EQIT~r~HRET.] 0. secs (0.u,0.s) +Chars 8421 - 8439 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) +Chars 8442 - 8503 [induction~HRET;~intros;~rewrit...] 0.1 secs (0.1u,0.s) +Chars 8506 - 8507 [-] 0. secs (0.u,0.s) +Chars 8508 - 8519 [assumption.] 0. secs (0.u,0.s) +Chars 8522 - 8523 [-] 0. secs (0.u,0.s) +Chars 8524 - 8551 [rewrite~2!tau_eutt~in~EQIT.] 0.031 secs (0.031u,0.s) +Chars 8552 - 8557 [auto.] 0. secs (0.u,0.s) +Chars 8560 - 8561 [-] 0. secs (0.u,0.s) +Chars 8562 - 8575 [apply~IHHRET.] 0. secs (0.u,0.s) +Chars 8576 - 8611 [eapply~eqit_inv_Vis~in~EQIT;~e...] 0. secs (0.u,0.s) +Chars 8612 - 8616 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8655 - 8734 [Lemma~has_post_Leaf~{E}~{R}~(t...] 0. secs (0.u,0.s) +Chars 8735 - 8741 [Proof.] 0. secs (0.u,0.s) +Chars 8744 - 8764 [intros~Hcond~Himage.] 0. secs (0.u,0.s) +Chars 8767 - 8805 [rewrite~has_post_post_strong~i...] 0. secs (0.u,0.s) +Chars 8808 - 8850 [destruct~(Leaf_eutt_l~t~t~r~Hc...] 0. secs (0.u,0.s) +Chars 8853 - 8874 [intuition;~now~subst.] 0. secs (0.u,0.s) +Chars 8875 - 8879 [Qed.] 0. secs (0.u,0.s) +Chars 8881 - 9018 [Lemma~has_post_of_Leaf~{E}~{R}...] 0. secs (0.u,0.s) +Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) +Chars 9028 - 9047 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 9048 - 9063 [intros~t~Hpost.] 0. secs (0.u,0.s) +Chars 9066 - 9104 [setoid_rewrite~(itree_eta~t)~i...] 0.002 secs (0.002u,0.s) +Chars 9107 - 9119 [desobs~t~Ht.] 0. secs (0.u,0.s) +Chars 9122 - 9123 [-] 0. secs (0.u,0.s) +Chars 9124 - 9136 [constructor.] 0. secs (0.u,0.s) +Chars 9137 - 9159 [apply~Hpost,~Leaf_Ret.] 0. secs (0.u,0.s) +Chars 9162 - 9163 [-] 0. secs (0.u,0.s) +Chars 9164 - 9176 [constructor.] 0. secs (0.u,0.s) +Chars 9177 - 9187 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9188 - 9195 [intros.] 0. secs (0.u,0.s) +Chars 9196 - 9208 [apply~Hpost.] 0. secs (0.u,0.s) +Chars 9209 - 9224 [apply~Leaf_Tau.] 0. secs (0.u,0.s) +Chars 9225 - 9233 [exact~H.] 0. secs (0.u,0.s) +Chars 9236 - 9237 [-] 0. secs (0.u,0.s) +Chars 9238 - 9250 [constructor.] 0. secs (0.u,0.s) +Chars 9251 - 9258 [intros.] 0. secs (0.u,0.s) +Chars 9259 - 9269 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9270 - 9277 [intros.] 0. secs (0.u,0.s) +Chars 9278 - 9291 [eapply~Hpost.] 0. secs (0.u,0.s) +Chars 9292 - 9308 [eapply~Leaf_Vis.] 0. secs (0.u,0.s) +Chars 9309 - 9317 [exact~H.] 0. secs (0.u,0.s) +Chars 9318 - 9322 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9324 - 9420 [Lemma~has_post_Leaf_equiv~{E}~...] 0. secs (0.u,0.s) +Chars 9421 - 9427 [Proof.] 0. secs (0.u,0.s) +Chars 9430 - 9436 [split.] 0. secs (0.u,0.s) +Chars 9439 - 9440 [-] 0. secs (0.u,0.s) +Chars 9441 - 9477 [intros;~eapply~has_post_Leaf;~...] 0. secs (0.u,0.s) +Chars 9480 - 9481 [-] 0. secs (0.u,0.s) +Chars 9482 - 9494 [intro~Hpost.] 0. secs (0.u,0.s) +Chars 9495 - 9530 [exact~(has_post_of_Leaf~Q~t~Hp...] 0. secs (0.u,0.s) +Chars 9531 - 9535 [Qed.] 0. secs (0.u,0.s) +Chars 9720 - 9956 [Lemma~Leaf_iter_inv~{E}~{R}~{I...] 0. secs (0.u,0.s) +Chars 9957 - 9963 [Proof.] 0. secs (0.u,0.s) +Chars 9966 - 9987 [intros~*~Hinv~Hentry.] 0. secs (0.u,0.s) +Chars 9990 - 10021 [rewrite~<-~has_post_Leaf_equiv.] 0. secs (0.u,0.s) +Chars 10024 - 10059 [eapply~has_post_iter_strong;~e...] 0. secs (0.u,0.s) +Chars 10062 - 10097 [setoid_rewrite~has_post_Leaf_e...] 0.001 secs (0.001u,0.s) +Chars 10098 - 10104 [eauto.] 0. secs (0.u,0.s) +Chars 10105 - 10109 [Qed.] 0. secs (0.u,0.s) +Chars 10111 - 10394 [Lemma~Leaf_interp_iter_inv~{E}...] 0. secs (0.u,0.s) +Chars 10395 - 10401 [Proof.] 0. secs (0.u,0.s) +Chars 10404 - 10431 [intros~*~Hbody~Hentry~r~Hr.] 0. secs (0.u,0.s) +Chars 10434 - 10501 [apply~(Leaf_iter_inv~(fun~i~=>...] 0. secs (0.u,0.s) +Chars 10504 - 10567 [rewrite~(interp_iter'~_~_~(fun...] 0.002 secs (0.002u,0.s) +Chars 10570 - 10579 [apply~Hr.] 0. secs (0.u,0.s) +Chars 10580 - 10592 [reflexivity.] 0. secs (0.u,0.s) +Chars 10593 - 10597 [Qed.] 0. secs (0.u,0.s) +Chars 10734 - 11166 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) +Chars 11167 - 11173 [Proof.] 0. secs (0.u,0.s) +Chars 11176 - 11214 [setoid_rewrite~~<-~has_post_Le...] 0.007 secs (0.007u,0.s) +Chars 11217 - 11253 [setoid_rewrite~has_post_post_s...] 0.012 secs (0.011u,0.s) +Chars 11256 - 11286 [intros~*~Hinv~Hentrys~Hentryi.] 0. secs (0.u,0.s) +Chars 11289 - 11337 [set~(eRI~:=~fun~i1~i2~:~I~=>~i...] 0. secs (0.u,0.s) +Chars 11340 - 11388 [set~(eRR~:=~fun~r1~r2~:~R~=>~r...] 0. secs (0.u,0.s) +Chars 11391 - 11439 [set~(eRS~:=~fun~s1~s2~:~S~=>~s...] 0. secs (0.u,0.s) +Chars 11443 - 11503 [set~(R1~:=~fun~x~y~:~S~*~R~=>~...] 0. secs (0.u,0.s) +Chars 11506 - 11582 [set~(R2~:=~fun~a~b~:~S~*~R~=>~...] 0. secs (0.u,0.s) +Chars 11585 - 11665 [assert~(HR1R2~:~eq_rel~R1~R2)~...] 0.05 secs (0.05u,0.s) +Chars 11668 - 11732 [unfold~has_post_strong;~fold~R...] 0. secs (0.u,0.s) +Chars 11736 - 11866 [unshelve~~~(eapply~(eutt_inter...] 0.002 secs (0.002u,0.s) +Chars 11869 - 11904 [intros~i1~?~s1~?~[<-~Hs1]~[<-~...] 0. secs (0.u,0.s) +Chars 11908 - 11988 [set~(R3~:=~fun~x~y~:~S~*~(I~+~...] 0. secs (0.u,0.s) +Chars 11991 - 12036 [set~(R4~:=~prod_rel~eRS~(sum_r...] 0. secs (0.u,0.s) +Chars 12039 - 12068 [assert~(HR3R4~:~eq_rel~R3~R4).] 0. secs (0.u,0.s) +Chars 12071 - 12072 [{] 0. secs (0.u,0.s) +Chars 12073 - 12112 [split;~intros~[?~[|~]]~[?~[|~]...] 0. secs (0.u,0.s) +Chars 12117 - 12162 [1-4:~intros~[[]];~dintuition;~...] 0.156 secs (0.155u,0.001s) +Chars 12167 - 12229 [all:~intros~[[[=->]~?]~HZ];~in...] 0.066 secs (0.065u,0.s) +Chars 12230 - 12231 [}] 0. secs (0.u,0.s) +Chars 12235 - 12269 [rewrite~<-~(eutt_equiv~_~_~HR3...] 0. secs (0.u,0.s) +Chars 12272 - 12287 [now~apply~Hinv.] 0. secs (0.u,0.s) +Chars 12288 - 12292 [Qed.] 0.011 secs (0.011u,0.s) +Chars 12492 - 12507 [Module~Subtree.] 0. secs (0.u,0.s) +Chars 12509 - 12768 [Inductive~subtree~{E}~{R}~:~it...] 0.001 secs (0.001u,0.s) +Chars 12770 - 12885 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) +Chars 12886 - 12892 [Proof.] 0. secs (0.u,0.s) +Chars 12895 - 12923 [intros~t~t'~Ht~u~u'~Hu~Hsub.] 0. secs (0.u,0.s) +Chars 12926 - 12967 [revert~t~Ht~u~Hu;~induction~Hs...] 0. secs (0.u,0.s) +Chars 12970 - 12971 [-] 0. secs (0.u,0.s) +Chars 12972 - 12990 [apply~SubtreeRefl.] 0. secs (0.u,0.s) +Chars 12991 - 13010 [now~rewrite~Ht,~Hu.] 0.001 secs (0.001u,0.s) +Chars 13013 - 13014 [-] 0. secs (0.u,0.s) +Chars 13015 - 13046 [apply~SubtreeTau,~IHHsub;~auto.] 0. secs (0.u,0.s) +Chars 13047 - 13066 [apply~eqit_Tau,~Ht.] 0. secs (0.u,0.s) +Chars 13069 - 13070 [-] 0. secs (0.u,0.s) +Chars 13071 - 13089 [eapply~SubtreeVis.] 0. secs (0.u,0.s) +Chars 13090 - 13108 [now~rewrite~Ht,~H.] 0.003 secs (0.003u,0.s) +Chars 13109 - 13128 [apply~IHHsub;~auto.] 0. secs (0.u,0.s) +Chars 13129 - 13133 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13135 - 13217 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) +Chars 13218 - 13224 [Proof.] 0. secs (0.u,0.s) +Chars 13227 - 13241 [intros~*~Hsub.] 0. secs (0.u,0.s) +Chars 13242 - 13265 [induction~Hsub;~intros.] 0. secs (0.u,0.s) +Chars 13268 - 13269 [-] 0. secs (0.u,0.s) +Chars 13270 - 13277 [intros.] 0. secs (0.u,0.s) +Chars 13278 - 13297 [rewrite~<-~H;~auto.] 0.001 secs (0.001u,0.s) +Chars 13300 - 13301 [-] 0. secs (0.u,0.s) +Chars 13302 - 13328 [apply~IHHsub,~Leaf_Tau,~H.] 0. secs (0.u,0.s) +Chars 13331 - 13332 [-] 0. secs (0.u,0.s) +Chars 13333 - 13357 [eapply~IHHsub,~Leaf_Vis.] 0. secs (0.u,0.s) +Chars 13358 - 13381 [rewrite~H~in~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13382 - 13386 [Qed.] 0. secs (0.u,0.s) +Chars 13388 - 13524 [Lemma~Leaf_interp_subtree_inv~...] 0. secs (0.u,0.s) +Chars 13525 - 13531 [Proof.] 0. secs (0.u,0.s) +Chars 13534 - 13545 [revert~t~u.] 0. secs (0.u,0.s) +Chars 13546 - 13562 [unfold~has_post.] 0. secs (0.u,0.s) +Chars 13563 - 13596 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) +Chars 13599 - 13629 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) +Chars 13632 - 13654 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 13657 - 13686 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) +Chars 13689 - 13690 [-] 0. secs (0.u,0.s) +Chars 13691 - 13703 [constructor.] 0. secs (0.u,0.s) +Chars 13704 - 13732 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) +Chars 13733 - 13748 [apply~Leaf_Ret.] 0. secs (0.u,0.s) +Chars 13751 - 13752 [-] 0. secs (0.u,0.s) +Chars 13753 - 13765 [constructor.] 0. secs (0.u,0.s) +Chars 13766 - 13776 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13777 - 13800 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) +Chars 13803 - 13804 [-] 0. secs (0.u,0.s) +Chars 13805 - 13812 [to_mon.] 0. secs (0.u,0.s) +Chars 13813 - 13836 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 13837 - 13849 [reflexivity.] 0. secs (0.u,0.s) +Chars 13854 - 13868 [intros~u~_~<-.] 0. secs (0.u,0.s) +Chars 13873 - 13878 [taus.] 0. secs (0.u,0.s) +Chars 13879 - 13889 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13890 - 13914 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) +Chars 13915 - 13927 [reflexivity.] 0. secs (0.u,0.s) +Chars 13928 - 13932 [Qed.] 0.007 secs (0.007u,0.s) +Chars 13934 - 14113 [Lemma~Leaf_interp_state_subtre...] 0. secs (0.u,0.s) +Chars 14114 - 14120 [Proof.] 0. secs (0.u,0.s) +Chars 14123 - 14136 [revert~t~u~s.] 0. secs (0.u,0.s) +Chars 14137 - 14153 [unfold~has_post.] 0. secs (0.u,0.s) +Chars 14154 - 14187 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) +Chars 14190 - 14220 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) +Chars 14223 - 14251 [rewrite~unfold_interp_state.] 0.011 secs (0.01u,0.s) +Chars 14254 - 14283 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) +Chars 14286 - 14287 [-] 0. secs (0.u,0.s) +Chars 14288 - 14300 [constructor.] 0. secs (0.u,0.s) +Chars 14301 - 14329 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) +Chars 14330 - 14345 [apply~Leaf_Ret.] 0. secs (0.u,0.s) +Chars 14348 - 14349 [-] 0. secs (0.u,0.s) +Chars 14350 - 14362 [constructor.] 0. secs (0.u,0.s) +Chars 14363 - 14373 [apply~CIH.] 0. secs (0.u,0.s) +Chars 14374 - 14397 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) +Chars 14400 - 14401 [-] 0. secs (0.u,0.s) +Chars 14402 - 14409 [to_mon.] 0. secs (0.u,0.s) +Chars 14410 - 14433 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 14434 - 14446 [reflexivity.] 0. secs (0.u,0.s) +Chars 14451 - 14476 [intros~[u1~u2]~_~<-;~cbn.] 0. secs (0.u,0.s) +Chars 14481 - 14486 [taus.] 0. secs (0.u,0.s) +Chars 14487 - 14497 [apply~CIH.] 0. secs (0.u,0.s) +Chars 14498 - 14522 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) +Chars 14523 - 14535 [reflexivity.] 0. secs (0.u,0.s) +Chars 14536 - 14540 [Qed.] 0.006 secs (0.006u,0.s) +Chars 14542 - 14554 [End~Subtree.] 0. secs (0.u,0.s) +Chars 14555 - 14570 [Import~Subtree.] 0. secs (0.u,0.s) +Chars 14572 - 14668 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0. secs (0.u,0.s) +Chars 14669 - 14675 [Proof.] 0. secs (0.u,0.s) +Chars 14678 - 14691 [intros~Hleaf.] 0. secs (0.u,0.s) +Chars 14692 - 14752 [apply~(has_post_Leaf~(interp~h...] 0. secs (0.u,0.s) +Chars 14755 - 14785 [apply~Leaf_interp_subtree_inv.] 0. secs (0.u,0.s) +Chars 14786 - 14817 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) +Chars 14818 - 14822 [Qed.] 0. secs (0.u,0.s) +Chars 14824 - 14962 [Lemma~Leaf_interp_state_inv~{E...] 0. secs (0.u,0.s) +Chars 14963 - 14969 [Proof.] 0. secs (0.u,0.s) +Chars 14972 - 14985 [intros~Hleaf.] 0. secs (0.u,0.s) +Chars 14988 - 15060 [apply~(has_post_Leaf~(interp_s...] 0. secs (0.u,0.s) +Chars 15063 - 15099 [apply~Leaf_interp_state_subtre...] 0. secs (0.u,0.s) +Chars 15100 - 15131 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) +Chars 15132 - 15136 [Qed.] 0.001 secs (0.001u,0.s) +Chars 15175 - 15298 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) +Chars 15299 - 15305 [Proof.] 0. secs (0.u,0.s) +Chars 15308 - 15315 [intros.] 0. secs (0.u,0.s) +Chars 15316 - 15349 [rewrite~translate_to_interp~in~H.] 0.001 secs (0.001u,0.s) +Chars 15352 - 15382 [eapply~Leaf_interp_inv;~eauto.] 0. secs (0.u,0.s) +Chars 15383 - 15387 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Simple.v.timing b/theories/Simple.v.timing new file mode 100644 index 00000000..1c633795 --- /dev/null +++ b/theories/Simple.v.timing @@ -0,0 +1,233 @@ +Chars 48 - 84 [Set~Warnings~"-notation-overri...] 0. secs (0.u,0.s) +Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.021 secs (0.017u,0.003s) +Chars 305 - 347 [Require~Export~ITree.Core.ITre...] 0. secs (0.u,0.s) +Chars 348 - 370 [Export~ITreeNotations.] 0. secs (0.u,0.s) +Chars 371 - 404 [#[global]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 1062 - 1097 [Require~Export~ITree.Basics.Ba...] 0. secs (0.u,0.s) +Chars 1158 - 1191 [Require~Export~ITree.Indexed.Sum.] 0. secs (0.u,0.s) +Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.u,0.s) +Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.003 secs (0.002u,0.s) +Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.008 secs (0.007u,0.001s) +Chars 1773 - 1809 [Export~ITree.Interp.Handler.Ha...] 0. secs (0.u,0.s) +Chars 2164 - 2189 [Module~Type~SimpleTheory.] 0. secs (0.u,0.s) +Chars 2297 - 2325 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) +Chars 2327 - 2365 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 2481 - 2529 [Parameter~(eutt~:~itree~E~R~->...] 0. secs (0.u,0.s) +Chars 2531 - 2578 [Infix~"≈"~:=~eutt~(~at~level~7...] 0. secs (0.u,0.s) +Chars 2622 - 2689 [#[global]~Declare~Instance~Equ...] 0. secs (0.u,0.s) +Chars 2730 - 2791 [Parameter~(tau_eutt~:~forall~t...] 0. secs (0.u,0.s) +Chars 2793 - 2864 [Parameter~(itree_eta~:~forall~...] 0. secs (0.u,0.s) +Chars 2866 - 2940 [Parameter~(eutt_ret~:~forall~r...] 0. secs (0.u,0.s) +Chars 2942 - 3072 [Parameter~~~(eutt_vis~:~~~~~~f...] 0. secs (0.u,0.s) +Chars 3074 - 3152 [Parameter~(eutt_inv_ret~:~fora...] 0. secs (0.u,0.s) +Chars 3154 - 3289 [Parameter~~~(eutt_inv_vis~:~~~...] 0. secs (0.u,0.s) +Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0.013 secs (0.012u,0.s) +Chars 3317 - 3351 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) +Chars 3382 - 3481 [Parameter~~~(bind_ret~:~~~~~~f...] 0. secs (0.u,0.s) +Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0. secs (0.u,0.s) +Chars 3647 - 3740 [Parameter~~~(bind_ret_r~:~~~~~...] 0. secs (0.u,0.s) +Chars 3742 - 3936 [Parameter~~~(bind_bind~:~~~~~~...] 0. secs (0.u,0.s) +Chars 3938 - 3979 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) +Chars 3980 - 4021 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 4022 - 4063 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) +Chars 4064 - 4107 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 4108 - 4150 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) +Chars 4197 - 4423 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) +Chars 4425 - 4547 [Parameter~~~(unfold_interp~:~~...] 0. secs (0.u,0.s) +Chars 4617 - 4715 [Parameter~~~(interp_ret~:~~~~~...] 0. secs (0.u,0.s) +Chars 4717 - 4882 [Parameter~~~(interp_vis~:~~~~~...] 0. secs (0.u,0.s) +Chars 4884 - 5029 [Parameter~~~(interp_trigger~:~...] 0. secs (0.u,0.s) +Chars 5031 - 5221 [Parameter~~~(interp_bind~:~~~~...] 0. secs (0.u,0.s) +Chars 5223 - 5266 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 5267 - 5310 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 5311 - 5358 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 5359 - 5403 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 5548 - 5689 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) +Chars 5691 - 5824 [Parameter~~~(rec_as_interp~:~~...] 0. secs (0.u,0.s) +Chars 5826 - 5970 [Parameter~~~(interp_recursive_...] 0. secs (0.u,0.s) +Chars 6080 - 6192 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) +Chars 6194 - 6332 [Parameter~~~(mrec_as_interp~:~...] 0. secs (0.u,0.s) +Chars 6334 - 6482 [Parameter~~~(interp_mrecursive...] 0. secs (0.u,0.s) +Chars 6484 - 6538 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 6539 - 6589 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 6619 - 6703 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 6705 - 6799 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 6801 - 6891 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 6893 - 7017 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 7019 - 7150 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 7152 - 7279 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 7281 - 7413 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) +Chars 7541 - 7718 [Ltac~~tau_steps~:=~~~repeat~~~...] 0. secs (0.u,0.s) +Chars 7720 - 7737 [End~SimpleTheory.] 0. secs (0.u,0.s) +Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.007 secs (0.006u,0.s) +Chars 7873 - 7909 [Module~Export~Simple:~SimpleTh...] 0. secs (0.u,0.s) +Chars 7995 - 8023 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) +Chars 8025 - 8063 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 8160 - 8236 [Definition~eutt~:~itree~E~R~->...] 0. secs (0.u,0.s) +Chars 8238 - 8298 [Notation~"x~≈~y"~:=~(eutt~x~y)...] 0. secs (0.u,0.s) +Chars 8342 - 8394 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 8395 - 8401 [Proof.] 0. secs (0.u,0.s) +Chars 8404 - 8441 [apply~ITree.Eq.Eqit.Equivalenc...] 0. secs (0.u,0.s) +Chars 8442 - 8477 [econstructor;~eauto~using~tran...] 0. secs (0.u,0.s) +Chars 8479 - 8483 [Qed.] 0. secs (0.u,0.s) +Chars 8524 - 8581 [Lemma~tau_eutt~:~forall~t~:~it...] 0. secs (0.u,0.s) +Chars 8582 - 8588 [Proof.] 0. secs (0.u,0.s) +Chars 8589 - 8596 [intros.] 0. secs (0.u,0.s) +Chars 8597 - 8628 [rewrite~ITree.Eq.Eqit.tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 8629 - 8641 [reflexivity.] 0. secs (0.u,0.s) +Chars 8642 - 8646 [Qed.] 0. secs (0.u,0.s) +Chars 8648 - 8715 [Lemma~itree_eta~:~forall~t~:~i...] 0. secs (0.u,0.s) +Chars 8716 - 8722 [Proof.] 0. secs (0.u,0.s) +Chars 8723 - 8730 [intros.] 0. secs (0.u,0.s) +Chars 8731 - 8766 [rewrite~<-~ITree.Eq.Eqit.itree...] 0. secs (0.u,0.s) +Chars 8767 - 8779 [reflexivity.] 0. secs (0.u,0.s) +Chars 8780 - 8784 [Qed.] 0. secs (0.u,0.s) +Chars 8786 - 8846 [Lemma~eutt_ret~(r1~r2~:~R)~:~r...] 0. secs (0.u,0.s) +Chars 8847 - 8853 [Proof.] 0. secs (0.u,0.s) +Chars 8854 - 8861 [intros.] 0. secs (0.u,0.s) +Chars 8862 - 8868 [subst.] 0. secs (0.u,0.s) +Chars 8869 - 8881 [reflexivity.] 0. secs (0.u,0.s) +Chars 8882 - 8886 [Qed.] 0. secs (0.u,0.s) +Chars 8888 - 9004 [Lemma~eutt_vis~{U~:~Type}~(e~:...] 0. secs (0.u,0.s) +Chars 9005 - 9011 [Proof.] 0. secs (0.u,0.s) +Chars 9015 - 9022 [intros.] 0. secs (0.u,0.s) +Chars 9023 - 9052 [apply~ITree.Eq.Eqit.eqit_Vis.] 0. secs (0.u,0.s) +Chars 9053 - 9060 [intros.] 0. secs (0.u,0.s) +Chars 9061 - 9069 [apply~H.] 0. secs (0.u,0.s) +Chars 9071 - 9075 [Qed.] 0. secs (0.u,0.s) +Chars 9077 - 9145 [Lemma~eutt_inv_ret~(r1~r2~:~R)...] 0. secs (0.u,0.s) +Chars 9146 - 9152 [Proof.] 0. secs (0.u,0.s) +Chars 9153 - 9186 [apply~ITree.Eq.Eqit.eqit_inv_Ret.] 0. secs (0.u,0.s) +Chars 9187 - 9191 [Qed.] 0. secs (0.u,0.s) +Chars 9193 - 9317 [Lemma~eutt_inv_vis~{U~:~Type}~...] 0. secs (0.u,0.s) +Chars 9318 - 9324 [Proof.] 0. secs (0.u,0.s) +Chars 9325 - 9364 [apply~ITree.Eq.Eqit.eqit_inv_V...] 0. secs (0.u,0.s) +Chars 9365 - 9369 [Qed.] 0. secs (0.u,0.s) +Chars 9371 - 9395 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) +Chars 9397 - 9431 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) +Chars 9462 - 9557 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) +Chars 9558 - 9564 [Proof.] 0. secs (0.u,0.s) +Chars 9565 - 9621 [intros;~rewrite~ITree.Eq.Shall...] 0.035 secs (0.034u,0.s) +Chars 9622 - 9626 [Qed.] 0. secs (0.u,0.s) +Chars 9628 - 9723 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) +Chars 9724 - 9730 [Proof.] 0. secs (0.u,0.s) +Chars 9731 - 9749 [rewrite~bind_tau_.] 0.008 secs (0.008u,0.s) +Chars 9750 - 9762 [reflexivity.] 0. secs (0.u,0.s) +Chars 9763 - 9767 [Qed.] 0. secs (0.u,0.s) +Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0.002 secs (0.002u,0.s) +Chars 9928 - 9934 [Proof.] 0. secs (0.u,0.s) +Chars 9935 - 9991 [intros;~rewrite~ITree.Eq.Shall...] 0.011 secs (0.009u,0.002s) +Chars 9992 - 9996 [Qed.] 0. secs (0.u,0.s) +Chars 9998 - 10087 [Lemma~bind_ret_r~:~~~forall~{E...] 0. secs (0.u,0.s) +Chars 10088 - 10094 [Proof.] 0. secs (0.u,0.s) +Chars 10095 - 10149 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) +Chars 10150 - 10154 [Qed.] 0. secs (0.u,0.s) +Chars 10156 - 10346 [Lemma~bind_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) +Chars 10347 - 10353 [Proof.] 0. secs (0.u,0.s) +Chars 10354 - 10407 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) +Chars 10408 - 10412 [Qed.] 0. secs (0.u,0.s) +Chars 10414 - 10455 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) +Chars 10456 - 10497 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 10498 - 10539 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) +Chars 10540 - 10581 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) +Chars 10582 - 10625 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 10626 - 10668 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) +Chars 10716 - 10942 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) +Chars 10944 - 11062 [Lemma~unfold_interp~:~~~forall...] 0. secs (0.u,0.s) +Chars 11063 - 11069 [Proof.] 0. secs (0.u,0.s) +Chars 11072 - 11130 [intros;~rewrite~<-~ITree.Inter...] 0.001 secs (0.001u,0.s) +Chars 11133 - 11145 [reflexivity.] 0. secs (0.u,0.s) +Chars 11146 - 11150 [Qed.] 0. secs (0.u,0.s) +Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0. secs (0.u,0.s) +Chars 11313 - 11319 [Proof.] 0. secs (0.u,0.s) +Chars 11322 - 11365 [intros;~rewrite~unfold_interp;...] 0.001 secs (0.001u,0.s) +Chars 11366 - 11370 [Qed.] 0. secs (0.u,0.s) +Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0. secs (0.u,0.s) +Chars 11534 - 11540 [Proof.] 0. secs (0.u,0.s) +Chars 11543 - 11620 [intros;~rewrite~InterpFacts.in...] 0.004 secs (0.003u,0.s) +Chars 11621 - 11625 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0. secs (0.u,0.s) +Chars 11769 - 11775 [Proof.] 0. secs (0.u,0.s) +Chars 11778 - 11834 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) +Chars 11837 - 11849 [reflexivity.] 0. secs (0.u,0.s) +Chars 11850 - 11854 [Qed.] 0. secs (0.u,0.s) +Chars 11856 - 12042 [Lemma~interp_bind~:~~~forall~{...] 0. secs (0.u,0.s) +Chars 12043 - 12049 [Proof.] 0. secs (0.u,0.s) +Chars 12052 - 12105 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) +Chars 12108 - 12120 [reflexivity.] 0. secs (0.u,0.s) +Chars 12121 - 12125 [Qed.] 0. secs (0.u,0.s) +Chars 12127 - 12170 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 12171 - 12214 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 12215 - 12262 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 12263 - 12307 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 12453 - 12594 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) +Chars 12596 - 12725 [Lemma~rec_as_interp~:~~~forall...] 0. secs (0.u,0.s) +Chars 12726 - 12732 [Proof.] 0. secs (0.u,0.s) +Chars 12735 - 12742 [intros.] 0. secs (0.u,0.s) +Chars 12743 - 12793 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) +Chars 12794 - 12806 [reflexivity.] 0. secs (0.u,0.s) +Chars 12807 - 12811 [Qed.] 0. secs (0.u,0.s) +Chars 12813 - 12953 [Lemma~interp_recursive_call~:~...] 0. secs (0.u,0.s) +Chars 12954 - 12960 [Proof.] 0. secs (0.u,0.s) +Chars 12963 - 12970 [intros.] 0. secs (0.u,0.s) +Chars 12971 - 13029 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) +Chars 13032 - 13044 [reflexivity.] 0. secs (0.u,0.s) +Chars 13045 - 13049 [Qed.] 0. secs (0.u,0.s) +Chars 13159 - 13271 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) +Chars 13273 - 13407 [Lemma~mrec_as_interp~:~~~foral...] 0. secs (0.u,0.s) +Chars 13408 - 13414 [Proof.] 0. secs (0.u,0.s) +Chars 13417 - 13476 [intros;~rewrite~ITree.Interp.R...] 0.001 secs (0.001u,0.s) +Chars 13477 - 13489 [reflexivity.] 0. secs (0.u,0.s) +Chars 13490 - 13494 [Qed.] 0. secs (0.u,0.s) +Chars 13496 - 13640 [Lemma~interp_mrecursive~:~~~fo...] 0. secs (0.u,0.s) +Chars 13641 - 13647 [Proof.] 0. secs (0.u,0.s) +Chars 13650 - 13712 [intros;~rewrite~ITree.Interp.R...] 0.001 secs (0.001u,0.s) +Chars 13715 - 13727 [reflexivity.] 0. secs (0.u,0.s) +Chars 13728 - 13732 [Qed.] 0. secs (0.u,0.s) +Chars 13734 - 13788 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 13789 - 13839 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 13869 - 13945 [#[global]~Instance~eutt_go~~{E...] 0. secs (0.u,0.s) +Chars 13946 - 13952 [Proof.] 0. secs (0.u,0.s) +Chars 13953 - 13972 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 13973 - 13983 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 13984 - 14002 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14003 - 14007 [Qed.] 0. secs (0.u,0.s) +Chars 14009 - 14095 [#[global]~Instance~eutt_observ...] 0. secs (0.u,0.s) +Chars 14096 - 14102 [Proof.] 0. secs (0.u,0.s) +Chars 14103 - 14122 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14123 - 14133 [rewrite~H.] 0. secs (0.u,0.s) +Chars 14134 - 14152 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14153 - 14157 [Qed.] 0. secs (0.u,0.s) +Chars 14159 - 14241 [#[global]~Instance~eutt_TauF~~...] 0. secs (0.u,0.s) +Chars 14242 - 14248 [Proof.] 0. secs (0.u,0.s) +Chars 14249 - 14268 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14269 - 14279 [rewrite~H.] 0. secs (0.u,0.s) +Chars 14280 - 14298 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14299 - 14303 [Qed.] 0. secs (0.u,0.s) +Chars 14305 - 14421 [#[global]~Instance~eutt_VisF~~...] 0. secs (0.u,0.s) +Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) +Chars 14429 - 14448 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14449 - 14459 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 14460 - 14478 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14479 - 14483 [Qed.] 0. secs (0.u,0.s) +Chars 14485 - 14608 [#[global]~Instance~eutt_bind~~...] 0. secs (0.u,0.s) +Chars 14609 - 14615 [Proof.] 0. secs (0.u,0.s) +Chars 14616 - 14635 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14636 - 14650 [rewrite~H,~H0.] 0.002 secs (0.002u,0.s) +Chars 14651 - 14669 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14670 - 14674 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14676 - 14795 [#[global]~Instance~eutt_map~~{...] 0. secs (0.u,0.s) +Chars 14796 - 14802 [Proof.] 0. secs (0.u,0.s) +Chars 14803 - 14822 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14823 - 14837 [rewrite~H,~H0.] 0.003 secs (0.003u,0.s) +Chars 14838 - 14856 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14857 - 14861 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14863 - 14987 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) +Chars 14988 - 14994 [Proof.] 0. secs (0.u,0.s) +Chars 14995 - 15014 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 15015 - 15025 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 15026 - 15044 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 15045 - 15049 [Qed.] 0. secs (0.u,0.s) +Chars 15051 - 15062 [End~Simple.] 0.001 secs (0.001u,0.s) diff --git a/timing-experiments/all-times.sh b/timing-experiments/all-times.sh new file mode 100755 index 00000000..eef5a4f5 --- /dev/null +++ b/timing-experiments/all-times.sh @@ -0,0 +1,27 @@ +#!/bin/bash -e +# +# Purpose: measures and sorts all compilation times +# + +## Usage: +## +## +## author: rab +## date: Mon May 4 12:19:14 EDT 2026 + + +NUM_ARGS=0 + + +if [[ "$#" -ne "$NUM_ARGS" ]]; then + >&2 echo "Usage: $0" + exit 1 +fi + +BUILD_DIR="/Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees" +TIMING_DIR="$BUILD_DIR/timing-experiments" + +make -C "$BUILD_DIR" clean +make -C "$BUILD_DIR" TIMING=1 + +find "$BUILD_DIR" -name "*.v.timing" -exec "$TIMING_DIR/sum-times.sh" {} \; | sort -k2 -n diff --git a/timing-experiments/get-times.sh b/timing-experiments/get-times.sh index 7bf74b17..78946217 100755 --- a/timing-experiments/get-times.sh +++ b/timing-experiments/get-times.sh @@ -18,4 +18,4 @@ if [[ "$#" -ne "$NUM_ARGS" ]]; then exit 1 fi -grep -oe ".\.[0-9]* secs" "$1" | awk '{ sum += $1 } END { print sum }' \ No newline at end of file +grep -oe ".\.[0-9]* secs" "$1" | sort -n -k2 -r \ No newline at end of file diff --git a/timing-experiments/sum-times.sh b/timing-experiments/sum-times.sh new file mode 100755 index 00000000..7c4875e0 --- /dev/null +++ b/timing-experiments/sum-times.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e +# +# Purpose: Prints the sum total time of all measured commands in a .v.timing file. +# + +## Usage: ./get-times.sh . +## +## +## author: rab +## date: Mon May 4 12:03:49 EDT 2026 + + +NUM_ARGS=1 + + +if [[ "$#" -ne "$NUM_ARGS" ]]; then + >&2 echo "Usage: $0 .v.timing file" + exit 1 +fi + +echo -n "$(basename $1): " +grep -Hoe ".\.[0-9]* secs" "$1" | awk '{ split($1,a,":"); sum += a[2] } END { print sum } ' \ No newline at end of file From bdff9f087220b22dc145ebe043f5e9ceb9610abe Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 5 May 2026 14:05:00 -0400 Subject: [PATCH 147/189] Makefile.conf to .gitignore --- .gitignore | 2 ++ Makefile | 10 +++++++--- Makefile.conf | 8 ++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 9010bb3a..02dbca5c 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ tutorial/imp_test.mli rocq_mcp_cache_8675_.v rocq_mcp_cache_85046_.v .Makefile.d +Makefile.conf +Makefile diff --git a/Makefile b/Makefile index c5f54563..2784ed89 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.1.1 +## GNUMakefile for Rocq 9.0.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code they may need +# add any other Makefile code he may need -include Makefile.local # Parameters ################################################################## @@ -77,6 +77,7 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" +ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -86,6 +87,9 @@ else STDTIME?=command time endif endif +else +STDTIME?=command time -f $(TIMEFMT) +endif COQBIN?= ifneq (,$(COQBIN)) @@ -274,7 +278,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.1.1 +COQMAKEFILE_VERSION:=9.0.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index f5a69775..4db136fe 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true From c7c841325040368c4cb20ba429178056e532d06e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 5 May 2026 15:05:34 -0400 Subject: [PATCH 148/189] Timings on M1, speedups in exceptionsfacts.v --- extra/Dijkstra/DelaySpecMonad.v.timing | 512 ++--- extra/Dijkstra/DijkstraMonad.v.timing | 6 +- extra/Dijkstra/ITreeDijkstra.v.timing | 774 ++++---- extra/Dijkstra/IterRel.v.timing | 166 +- extra/Dijkstra/PureITreeBasics.v.timing | 136 +- extra/Dijkstra/StateDelaySpec.v.timing | 388 ++-- extra/Dijkstra/StateSpecT.v.timing | 260 +-- extra/IForest.v.timing | 1214 ++++++------ extra/ITrace/ITraceDefinition.v.timing | 4 +- extra/ITrace/ITraceFacts.v.timing | 1388 ++++++------- extra/ITrace/ITracePrefix.v.timing | 602 +++--- extra/Secure/Labels.v.timing | 12 +- extra/Secure/StrongBisimProper.v.timing | 16 +- theories/Axioms.v.timing | 10 +- theories/Basics/Basics.v.timing | 22 +- theories/Basics/Category.v.timing | 2 +- theories/Basics/CategoryFacts.v.timing | 594 +++--- theories/Basics/CategoryFunctor.v.timing | 10 +- theories/Basics/CategoryKleisli.v.timing | 2 +- theories/Basics/CategoryKleisliFacts.v.timing | 290 +-- theories/Basics/CategoryOps.v.timing | 14 +- theories/Basics/CategoryRelations.v.timing | 366 ++-- theories/Basics/CategorySub.v.timing | 110 +- theories/Basics/CategoryTheory.v.timing | 78 +- theories/Basics/Function.v.timing | 2 +- theories/Basics/FunctionFacts.v.timing | 102 +- .../Basics/HeterogeneousRelations.v.timing | 544 +++--- theories/Basics/Monad.v.timing | 8 +- theories/Basics/MonadProp.v.timing | 236 +-- theories/Basics/MonadState.v.timing | 524 ++--- theories/Basics/Utils.v.timing | 14 +- theories/Core/ITreeDefinition.v.timing | 10 +- theories/Core/ITreeMonad.v.timing | 40 +- theories/Core/KTree.v.timing | 4 +- theories/Core/KTreeFacts.v.timing | 342 ++-- theories/Core/Subevent.v.timing | 10 +- theories/Eq.v.timing | 2 +- theories/Eq/EqAxiom.v.timing | 6 +- theories/Eq/Eqit.v.timing | 1710 ++++++++--------- theories/Eq/Rutt.v.timing | 190 +- theories/Eq/RuttFacts.v.timing | 646 +++---- theories/Eq/Shallow.v.timing | 54 +- theories/Eq/SimUpToTaus.v.timing | 216 +-- theories/Events.v.timing | 2 +- theories/Events/Concurrency.v.timing | 6 +- theories/Events/Dependent.v.timing | 2 +- theories/Events/Exception.v.timing | 8 +- theories/Events/ExceptionFacts.v | 71 +- theories/Events/ExceptionFacts.v.timing | 686 +++---- theories/Events/FailFacts.v.timing | 228 +-- theories/Events/Map.v.timing | 10 +- theories/Events/MapDefault.v.timing | 16 +- theories/Events/MapDefaultFacts.v.timing | 216 +-- theories/Events/Nondeterminism.v.timing | 8 +- theories/Events/Reader.v.timing | 4 +- theories/Events/State.v.timing | 8 +- theories/Events/StateFacts.v.timing | 302 +-- theories/Events/Writer.v.timing | 8 +- theories/ITree.v.timing | 2 +- theories/ITreeFacts.v.timing | 2 +- theories/Indexed/Function.v.timing | 2 +- theories/Indexed/FunctionFacts.v.timing | 6 +- theories/Indexed/Relation.v.timing | 16 +- theories/Indexed/Sum.v.timing | 2 +- theories/Interp/Handler.v.timing | 10 +- theories/Interp/HandlerFacts.v.timing | 394 ++-- theories/Interp/Interp.v.timing | 6 +- theories/Interp/InterpFacts.v.timing | 406 ++-- theories/Interp/Recursion.v.timing | 6 +- theories/Interp/RecursionFacts.v.timing | 290 +-- theories/Interp/Traces.v.timing | 230 +-- theories/Interp/TranslateFacts.v.timing | 188 +- theories/Props/Cofinite.v.timing | 24 +- theories/Props/EuttNoRet.v.timing | 350 ++-- theories/Props/Finite.v.timing | 348 ++-- theories/Props/HasPost.v.timing | 180 +- theories/Props/Infinite.v.timing | 366 ++-- theories/Props/Leaf.v.timing | 444 ++--- theories/Simple.v.timing | 148 +- timing-experiments/all-times.sh | 2 +- 80 files changed, 8315 insertions(+), 8318 deletions(-) diff --git a/extra/Dijkstra/DelaySpecMonad.v.timing b/extra/Dijkstra/DelaySpecMonad.v.timing index 2e0c0686..14c87e60 100644 --- a/extra/Dijkstra/DelaySpecMonad.v.timing +++ b/extra/Dijkstra/DelaySpecMonad.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.159 secs (0.142u,0.016s) -Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.013 secs (0.011u,0.002s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.222 secs (0.195u,0.026s) +Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.018 secs (0.014u,0.003s) Chars 312 - 326 [Import~Monads.] 0. secs (0.u,0.s) Chars 327 - 348 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 350 - 382 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -23,137 +23,137 @@ Chars 2341 - 2426 [#[global]~Instance~MonadIterDe...] 0. secs (0.u,0.s) Chars 2428 - 2511 [Definition~DelaySpecInput~(A~:...] 0. secs (0.u,0.s) Chars 2513 - 2604 [Definition~DelayIn~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 2606 - 2767 [Definition~DelaySpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.002 secs (0.001u,0.s) -Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.028 secs (0.026u,0.001s) -Chars 3076 - 3092 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 3095 - 3114 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 3115 - 3142 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) +Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.003 secs (0.002u,0.s) +Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.003 secs (0.002u,0.s) +Chars 3076 - 3092 [Next~Obligation.] 0.037 secs (0.034u,0.002s) +Chars 3095 - 3114 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 3115 - 3142 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 3145 - 3146 [-] 0. secs (0.u,0.s) Chars 3147 - 3152 [left.] 0. secs (0.u,0.s) Chars 3153 - 3162 [exists~a.] 0. secs (0.u,0.s) -Chars 3163 - 3175 [split;~auto.] 0. secs (0.u,0.s) -Chars 3176 - 3186 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 3163 - 3175 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3176 - 3186 [(rewrite~H).] 0.002 secs (0.002u,0.s) Chars 3187 - 3192 [auto.] 0. secs (0.u,0.s) Chars 3195 - 3196 [-] 0. secs (0.u,0.s) Chars 3197 - 3203 [right.] 0. secs (0.u,0.s) -Chars 3204 - 3221 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) +Chars 3204 - 3221 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) Chars 3222 - 3227 [auto.] 0. secs (0.u,0.s) Chars 3230 - 3231 [-] 0. secs (0.u,0.s) Chars 3232 - 3237 [left.] 0. secs (0.u,0.s) Chars 3238 - 3247 [exists~a.] 0. secs (0.u,0.s) -Chars 3248 - 3262 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) +Chars 3248 - 3262 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) Chars 3263 - 3268 [auto.] 0. secs (0.u,0.s) Chars 3271 - 3272 [-] 0. secs (0.u,0.s) Chars 3273 - 3279 [right.] 0. secs (0.u,0.s) -Chars 3280 - 3294 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) +Chars 3280 - 3294 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) Chars 3295 - 3300 [auto.] 0. secs (0.u,0.s) -Chars 3301 - 3305 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3301 - 3305 [Qed.] 0.004 secs (0.004u,0.s) Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.001 secs (0.001u,0.s) -Chars 3426 - 3442 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 3445 - 3449 [red.] 0. secs (0.u,0.s) -Chars 3450 - 3460 [red~in~H0.] 0. secs (0.u,0.s) -Chars 3461 - 3482 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 3483 - 3494 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 3495 - 3519 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 3522 - 3528 [simpl.] 0. secs (0.u,0.s) -Chars 3529 - 3536 [intros.] 0. secs (0.u,0.s) +Chars 3426 - 3442 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 3445 - 3449 [(red).] 0. secs (0.u,0.s) +Chars 3450 - 3460 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 3461 - 3482 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 3483 - 3494 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 3495 - 3519 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 3522 - 3528 [(simpl).] 0. secs (0.u,0.s) +Chars 3529 - 3536 [(intros).] 0. secs (0.u,0.s) Chars 3537 - 3549 [basic_solve.] 0. secs (0.u,0.s) Chars 3552 - 3553 [-] 0. secs (0.u,0.s) Chars 3554 - 3559 [left.] 0. secs (0.u,0.s) Chars 3560 - 3569 [exists~a.] 0. secs (0.u,0.s) -Chars 3570 - 3582 [split;~auto.] 0. secs (0.u,0.s) -Chars 3583 - 3596 [dest_dep~f~a.] 0.042 secs (0.042u,0.s) -Chars 3597 - 3615 [eapply~Hfa;~eauto.] 0. secs (0.u,0.s) +Chars 3570 - 3582 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3583 - 3596 [(dest_dep~f~a).] 0. secs (0.u,0.s) +Chars 3597 - 3615 [(eapply~Hfa;~eauto).] 0. secs (0.u,0.s) Chars 3618 - 3619 [-] 0. secs (0.u,0.s) Chars 3620 - 3626 [right.] 0. secs (0.u,0.s) -Chars 3627 - 3639 [split;~auto.] 0. secs (0.u,0.s) -Chars 3640 - 3644 [Qed.] 0.003 secs (0.003u,0.s) -Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) +Chars 3627 - 3639 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3640 - 3644 [Qed.] 0.058 secs (0.057u,0.s) +Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0.001 secs (0.001u,0.s) Chars 3747 - 3831 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) Chars 3832 - 3838 [Proof.] 0. secs (0.u,0.s) -Chars 3841 - 3878 [constructor;~repeat~intro;~try...] 0.003 secs (0.003u,0.s) +Chars 3841 - 3878 [(constructor;~repeat~intro;~tr...] 0.005 secs (0.005u,0.s) Chars 3881 - 3882 [-] 0. secs (0.u,0.s) -Chars 3883 - 3899 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 3883 - 3899 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 3900 - 3917 [specialize~(H~p).] 0. secs (0.u,0.s) -Chars 3918 - 3924 [tauto.] 0. secs (0.u,0.s) +Chars 3918 - 3924 [tauto.] 0.001 secs (0.001u,0.s) Chars 3927 - 3928 [-] 0. secs (0.u,0.s) -Chars 3929 - 3949 [repeat~red~in~H,~H0.] 0. secs (0.u,0.s) +Chars 3929 - 3949 [(repeat~red~in~H,~H0).] 0. secs (0.u,0.s) Chars 3950 - 3967 [specialize~(H~p).] 0. secs (0.u,0.s) Chars 3968 - 3986 [specialize~(H0~p).] 0. secs (0.u,0.s) -Chars 3987 - 3993 [tauto.] 0.001 secs (0.001u,0.s) -Chars 3994 - 3998 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3987 - 3993 [tauto.] 0.002 secs (0.002u,0.s) +Chars 3994 - 3998 [Qed.] 0.003 secs (0.003u,0.s) Chars 4000 - 4104 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) -Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.01 secs (0.01u,0.s) -Chars 4177 - 4193 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4196 - 4207 [repeat~red.] 0. secs (0.u,0.s) -Chars 4208 - 4212 [cbn.] 0. secs (0.u,0.s) -Chars 4213 - 4246 [split;~intros;~basic_solve;~auto.] 0.001 secs (0.001u,0.s) +Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.017 secs (0.016u,0.s) +Chars 4177 - 4193 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4196 - 4207 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4208 - 4212 [(cbn).] 0. secs (0.u,0.s) +Chars 4213 - 4246 [(split;~intros;~basic_solve;~a...] 0.002 secs (0.002u,0.s) Chars 4249 - 4250 [-] 0. secs (0.u,0.s) -Chars 4251 - 4285 [repeat~red~in~H;~step~in~H;~in...] 0. secs (0.u,0.s) +Chars 4251 - 4285 [(repeat~red~in~H;~step~in~H;~i...] 0. secs (0.u,0.s) Chars 4289 - 4290 [-] 0. secs (0.u,0.s) Chars 4291 - 4296 [left.] 0. secs (0.u,0.s) Chars 4297 - 4306 [exists~x.] 0. secs (0.u,0.s) -Chars 4307 - 4332 [split;~auto;~reflexivity.] 0. secs (0.u,0.s) -Chars 4333 - 4337 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4338 - 4354 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4307 - 4332 [(split;~auto;~reflexivity).] 0. secs (0.u,0.s) +Chars 4333 - 4337 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4338 - 4354 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 4357 - 4373 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 4376 - 4387 [repeat~red.] 0. secs (0.u,0.s) -Chars 4388 - 4392 [cbn.] 0. secs (0.u,0.s) -Chars 4393 - 4407 [split;~intros.] 0. secs (0.u,0.s) +Chars 4376 - 4387 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4388 - 4392 [(cbn).] 0. secs (0.u,0.s) +Chars 4393 - 4407 [(split;~intros).] 0. secs (0.u,0.s) Chars 4410 - 4411 [-] 0. secs (0.u,0.s) -Chars 4412 - 4421 [red~in~H.] 0. secs (0.u,0.s) -Chars 4422 - 4433 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 4434 - 4455 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 4456 - 4467 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4468 - 4491 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 4496 - 4503 [intros.] 0. secs (0.u,0.s) -Chars 4504 - 4515 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4516 - 4537 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 4538 - 4549 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4412 - 4421 [(red~in~H).] 0. secs (0.u,0.s) +Chars 4422 - 4433 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 4434 - 4455 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 4456 - 4467 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4468 - 4491 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) +Chars 4496 - 4503 [(intros).] 0. secs (0.u,0.s) +Chars 4504 - 4515 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4516 - 4537 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 4538 - 4549 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 4550 - 4562 [basic_solve.] 0. secs (0.u,0.s) Chars 4567 - 4568 [+] 0. secs (0.u,0.s) -Chars 4569 - 4586 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4569 - 4586 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) Chars 4587 - 4605 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 4611 - 4612 [+] 0. secs (0.u,0.s) -Chars 4613 - 4639 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 4640 - 4657 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) +Chars 4613 - 4639 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 4640 - 4657 [(eapply~Hp;~eauto).] 0. secs (0.u,0.s) Chars 4660 - 4661 [-] 0. secs (0.u,0.s) -Chars 4662 - 4666 [red.] 0. secs (0.u,0.s) -Chars 4667 - 4688 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 4689 - 4700 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4701 - 4724 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 4725 - 4732 [intros.] 0. secs (0.u,0.s) -Chars 4737 - 4758 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 4759 - 4770 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4775 - 4818 [destruct~(eutt_reta_or_div~t);...] 0. secs (0.u,0.s) +Chars 4662 - 4666 [(red).] 0. secs (0.u,0.s) +Chars 4667 - 4688 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 4689 - 4700 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4701 - 4724 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) +Chars 4725 - 4732 [(intros).] 0. secs (0.u,0.s) +Chars 4737 - 4758 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 4759 - 4770 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4775 - 4818 [(destruct~(eutt_reta_or_div~t)...] 0. secs (0.u,0.s) Chars 4823 - 4824 [+] 0. secs (0.u,0.s) Chars 4825 - 4830 [left.] 0. secs (0.u,0.s) Chars 4831 - 4840 [exists~a.] 0. secs (0.u,0.s) -Chars 4841 - 4853 [split;~auto.] 0. secs (0.u,0.s) -Chars 4854 - 4871 [eapply~Hp;~eauto.] 0.002 secs (0.001u,0.s) +Chars 4841 - 4853 [(split;~auto).] 0. secs (0.u,0.s) +Chars 4854 - 4871 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) Chars 4876 - 4877 [+] 0. secs (0.u,0.s) Chars 4878 - 4884 [right.] 0. secs (0.u,0.s) -Chars 4885 - 4897 [split;~auto.] 0. secs (0.u,0.s) -Chars 4898 - 4922 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 4885 - 4897 [(split;~auto).] 0. secs (0.u,0.s) +Chars 4898 - 4922 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) Chars 4923 - 4932 [symmetry.] 0. secs (0.u,0.s) -Chars 4933 - 4953 [apply~div_spin_eutt.] 0. secs (0.u,0.s) +Chars 4933 - 4953 [(apply~div_spin_eutt).] 0. secs (0.u,0.s) Chars 4954 - 4959 [auto.] 0. secs (0.u,0.s) -Chars 4960 - 4964 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4965 - 4981 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4960 - 4964 [Qed.] 0.007 secs (0.007u,0.s) +Chars 4965 - 4981 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 4984 - 5000 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 5003 - 5014 [repeat~red.] 0. secs (0.u,0.s) -Chars 5015 - 5019 [cbn.] 0. secs (0.u,0.s) -Chars 5020 - 5034 [split;~intros.] 0. secs (0.u,0.s) +Chars 5003 - 5014 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5015 - 5019 [(cbn).] 0. secs (0.u,0.s) +Chars 5020 - 5034 [(split;~intros).] 0. secs (0.u,0.s) Chars 5037 - 5038 [-] 0. secs (0.u,0.s) -Chars 5039 - 5043 [red.] 0. secs (0.u,0.s) -Chars 5044 - 5053 [red~in~H.] 0. secs (0.u,0.s) -Chars 5054 - 5075 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 5076 - 5087 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5088 - 5109 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 5110 - 5121 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5126 - 5149 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 5150 - 5157 [intros.] 0. secs (0.u,0.s) -Chars 5158 - 5169 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5039 - 5043 [(red).] 0. secs (0.u,0.s) +Chars 5044 - 5053 [(red~in~H).] 0. secs (0.u,0.s) +Chars 5054 - 5075 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 5076 - 5087 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5088 - 5109 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 5110 - 5121 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5126 - 5149 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) +Chars 5150 - 5157 [(intros).] 0. secs (0.u,0.s) +Chars 5158 - 5169 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 5170 - 5178 [clear~H.] 0. secs (0.u,0.s) Chars 5179 - 5191 [basic_solve.] 0.001 secs (0.001u,0.s) Chars 5196 - 5197 [+] 0. secs (0.u,0.s) @@ -164,280 +164,280 @@ Chars 5224 - 5225 [+] 0. secs (0.u,0.s) Chars 5226 - 5232 [right.] 0. secs (0.u,0.s) Chars 5233 - 5238 [auto.] 0. secs (0.u,0.s) Chars 5241 - 5242 [-] 0. secs (0.u,0.s) -Chars 5243 - 5247 [red.] 0. secs (0.u,0.s) -Chars 5248 - 5257 [red~in~H.] 0. secs (0.u,0.s) -Chars 5258 - 5279 [destruct~w~as~[w~Hw].] 0.001 secs (0.001u,0.s) -Chars 5280 - 5291 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5292 - 5313 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 5314 - 5325 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5330 - 5353 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 5354 - 5365 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5366 - 5373 [intros.] 0. secs (0.u,0.s) -Chars 5374 - 5386 [basic_solve.] 0. secs (0.u,0.s) +Chars 5243 - 5247 [(red).] 0. secs (0.u,0.s) +Chars 5248 - 5257 [(red~in~H).] 0. secs (0.u,0.s) +Chars 5258 - 5279 [(destruct~w~as~[w~Hw]).] 0.001 secs (0.001u,0.s) +Chars 5280 - 5291 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5292 - 5313 [(destruct~p~as~[p~Hp]).] 0.001 secs (0.001u,0.s) +Chars 5314 - 5325 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5330 - 5353 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) +Chars 5354 - 5365 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5366 - 5373 [(intros).] 0. secs (0.u,0.s) +Chars 5374 - 5386 [basic_solve.] 0.001 secs (0.001u,0.s) Chars 5391 - 5392 [+] 0. secs (0.u,0.s) Chars 5393 - 5398 [left.] 0. secs (0.u,0.s) Chars 5399 - 5408 [exists~a.] 0. secs (0.u,0.s) Chars 5409 - 5414 [auto.] 0. secs (0.u,0.s) Chars 5419 - 5420 [+] 0. secs (0.u,0.s) Chars 5421 - 5427 [right.] 0. secs (0.u,0.s) -Chars 5428 - 5440 [split;~auto.] 0. secs (0.u,0.s) +Chars 5428 - 5440 [(split;~auto).] 0. secs (0.u,0.s) Chars 5441 - 5447 [right.] 0. secs (0.u,0.s) -Chars 5448 - 5484 [split;~try~auto~using~spin_inf...] 0. secs (0.u,0.s) -Chars 5485 - 5489 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5448 - 5484 [(split;~try~auto~using~spin_in...] 0. secs (0.u,0.s) +Chars 5485 - 5489 [Qed.] 0.013 secs (0.013u,0.s) Chars 5490 - 5506 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 5509 - 5534 [intros~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 5535 - 5567 [unfold~pointwise_relation~in~Hk.] 0. secs (0.u,0.s) -Chars 5570 - 5581 [repeat~red.] 0. secs (0.u,0.s) -Chars 5582 - 5736 [unfold~bind_del,~_bind_del;~sp...] 0.007 secs (0.007u,0.s) +Chars 5509 - 5534 [(intros~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 5535 - 5567 [(unfold~pointwise_relation~in~...] 0. secs (0.u,0.s) +Chars 5570 - 5581 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5582 - 5736 [(unfold~bind_del,~_bind_del;~s...] 0.01 secs (0.01u,0.s) Chars 5739 - 5740 [-] 0. secs (0.u,0.s) -Chars 5741 - 5755 [rewrite~<-~Hw.] 0.001 secs (0.001u,0.s) -Chars 5756 - 5792 [eapply~Hw1;~try~apply~H;~simpl...] 0. secs (0.u,0.s) -Chars 5793 - 5800 [intros.] 0. secs (0.u,0.s) -Chars 5805 - 5858 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.001 secs (0.001u,0.s) +Chars 5741 - 5755 [(rewrite~<-~Hw).] 0.002 secs (0.002u,0.s) +Chars 5756 - 5792 [(eapply~Hw1;~try~apply~H;~simp...] 0. secs (0.u,0.s) +Chars 5793 - 5800 [(intros).] 0. secs (0.u,0.s) +Chars 5805 - 5858 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.001 secs (0.001u,0.s) Chars 5863 - 5868 [left.] 0. secs (0.u,0.s) Chars 5869 - 5878 [exists~a.] 0. secs (0.u,0.s) -Chars 5879 - 5891 [split;~auto.] 0. secs (0.u,0.s) +Chars 5879 - 5891 [(split;~auto).] 0. secs (0.u,0.s) Chars 5896 - 5914 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 5915 - 6054 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.001 secs (0.001u,0.s) -Chars 6059 - 6068 [apply~Hk.] 0. secs (0.u,0.s) +Chars 5915 - 6054 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.002 secs (0.002u,0.s) +Chars 6059 - 6068 [(apply~Hk).] 0. secs (0.u,0.s) Chars 6069 - 6074 [auto.] 0. secs (0.u,0.s) Chars 6077 - 6078 [-] 0. secs (0.u,0.s) -Chars 6079 - 6090 [rewrite~Hw.] 0.002 secs (0.002u,0.s) -Chars 6091 - 6127 [eapply~Hw2;~try~apply~H;~simpl...] 0. secs (0.u,0.s) -Chars 6128 - 6135 [intros.] 0. secs (0.u,0.s) -Chars 6140 - 6193 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.001 secs (0.001u,0.s) +Chars 6079 - 6090 [(rewrite~Hw).] 0.001 secs (0.001u,0.s) +Chars 6091 - 6127 [(eapply~Hw2;~try~apply~H;~simp...] 0. secs (0.u,0.s) +Chars 6128 - 6135 [(intros).] 0. secs (0.u,0.s) +Chars 6140 - 6193 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.004 secs (0.004u,0.s) Chars 6198 - 6203 [left.] 0. secs (0.u,0.s) Chars 6204 - 6213 [exists~a.] 0. secs (0.u,0.s) -Chars 6214 - 6226 [split;~auto.] 0. secs (0.u,0.s) +Chars 6214 - 6226 [(split;~auto).] 0. secs (0.u,0.s) Chars 6231 - 6249 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 6250 - 6389 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.001 secs (0.001u,0.s) -Chars 6394 - 6403 [apply~Hk.] 0. secs (0.u,0.s) +Chars 6250 - 6389 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.002 secs (0.002u,0.s) +Chars 6394 - 6403 [(apply~Hk).] 0. secs (0.u,0.s) Chars 6404 - 6409 [auto.] 0. secs (0.u,0.s) -Chars 6410 - 6414 [Qed.] 0.01 secs (0.009u,0.s) +Chars 6410 - 6414 [Qed.] 0.013 secs (0.013u,0.s) Chars 6416 - 6521 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) Chars 6523 - 6582 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) Chars 6583 - 6589 [Proof.] 0. secs (0.u,0.s) Chars 6592 - 6604 [constructor.] 0. secs (0.u,0.s) Chars 6607 - 6608 [-] 0. secs (0.u,0.s) -Chars 6609 - 6616 [intros.] 0. secs (0.u,0.s) -Chars 6617 - 6628 [repeat~red.] 0. secs (0.u,0.s) -Chars 6629 - 6636 [intros.] 0. secs (0.u,0.s) -Chars 6637 - 6648 [destruct~w.] 0. secs (0.u,0.s) +Chars 6609 - 6616 [(intros).] 0. secs (0.u,0.s) +Chars 6617 - 6628 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6629 - 6636 [(intros).] 0. secs (0.u,0.s) +Chars 6637 - 6648 [(destruct~w).] 0. secs (0.u,0.s) Chars 6649 - 6654 [auto.] 0. secs (0.u,0.s) Chars 6657 - 6658 [-] 0. secs (0.u,0.s) -Chars 6659 - 6666 [intros.] 0. secs (0.u,0.s) -Chars 6667 - 6679 [destruct~w1.] 0. secs (0.u,0.s) -Chars 6680 - 6692 [destruct~w2.] 0. secs (0.u,0.s) -Chars 6693 - 6705 [destruct~w3.] 0. secs (0.u,0.s) +Chars 6659 - 6666 [(intros).] 0. secs (0.u,0.s) +Chars 6667 - 6679 [(destruct~w1).] 0. secs (0.u,0.s) +Chars 6680 - 6692 [(destruct~w2).] 0. secs (0.u,0.s) +Chars 6693 - 6705 [(destruct~w3).] 0. secs (0.u,0.s) Chars 6706 - 6712 [intro.] 0. secs (0.u,0.s) -Chars 6713 - 6724 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6713 - 6724 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 6729 - 6747 [specialize~(H~p2).] 0. secs (0.u,0.s) Chars 6748 - 6767 [specialize~(H0~p2).] 0. secs (0.u,0.s) -Chars 6768 - 6779 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6780 - 6787 [intros.] 0. secs (0.u,0.s) +Chars 6768 - 6779 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6780 - 6787 [(intros).] 0. secs (0.u,0.s) Chars 6788 - 6793 [auto.] 0. secs (0.u,0.s) Chars 6796 - 6797 [-] 0. secs (0.u,0.s) -Chars 6798 - 6802 [red.] 0. secs (0.u,0.s) -Chars 6803 - 6810 [intros.] 0. secs (0.u,0.s) -Chars 6811 - 6822 [repeat~red.] 0. secs (0.u,0.s) -Chars 6823 - 6827 [cbn.] 0. secs (0.u,0.s) -Chars 6828 - 6852 [destruct~w1~as~[w1~Hw1].] 0. secs (0.u,0.s) -Chars 6853 - 6877 [destruct~w2~as~[w2~Hw2].] 0. secs (0.u,0.s) -Chars 6882 - 6889 [intros.] 0. secs (0.u,0.s) -Chars 6890 - 6901 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6902 - 6910 [apply~H.] 0. secs (0.u,0.s) -Chars 6911 - 6922 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6923 - 6948 [eapply~Hw2;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 6949 - 6960 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6961 - 6968 [intros.] 0. secs (0.u,0.s) +Chars 6798 - 6802 [(red).] 0. secs (0.u,0.s) +Chars 6803 - 6810 [(intros).] 0. secs (0.u,0.s) +Chars 6811 - 6822 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6823 - 6827 [(cbn).] 0. secs (0.u,0.s) +Chars 6828 - 6852 [(destruct~w1~as~[w1~Hw1]).] 0. secs (0.u,0.s) +Chars 6853 - 6877 [(destruct~w2~as~[w2~Hw2]).] 0. secs (0.u,0.s) +Chars 6882 - 6889 [(intros).] 0. secs (0.u,0.s) +Chars 6890 - 6901 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6902 - 6910 [(apply~H).] 0. secs (0.u,0.s) +Chars 6911 - 6922 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6923 - 6948 [(eapply~Hw2;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 6949 - 6960 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6961 - 6968 [(intros).] 0. secs (0.u,0.s) Chars 6973 - 6985 [basic_solve.] 0. secs (0.u,0.s) Chars 6990 - 6991 [+] 0. secs (0.u,0.s) Chars 6992 - 6997 [left.] 0. secs (0.u,0.s) Chars 6998 - 7007 [exists~a.] 0. secs (0.u,0.s) -Chars 7008 - 7020 [split;~auto.] 0. secs (0.u,0.s) -Chars 7021 - 7030 [apply~H0.] 0. secs (0.u,0.s) +Chars 7008 - 7020 [(split;~auto).] 0. secs (0.u,0.s) +Chars 7021 - 7030 [(apply~H0).] 0. secs (0.u,0.s) Chars 7031 - 7036 [auto.] 0. secs (0.u,0.s) Chars 7041 - 7042 [+] 0. secs (0.u,0.s) Chars 7043 - 7049 [right.] 0. secs (0.u,0.s) Chars 7050 - 7055 [auto.] 0. secs (0.u,0.s) -Chars 7056 - 7060 [Qed.] 0.006 secs (0.005u,0.s) -Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.001 secs (0.001u,0.s) +Chars 7056 - 7060 [Qed.] 0.008 secs (0.008u,0.s) +Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.002 secs (0.002u,0.s) Chars 7153 - 7224 [#[global]~Instance~DelaySpecOb...] 0. secs (0.u,0.s) Chars 7226 - 7310 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) Chars 7311 - 7317 [Proof.] 0. secs (0.u,0.s) Chars 7320 - 7332 [constructor.] 0. secs (0.u,0.s) Chars 7335 - 7336 [-] 0. secs (0.u,0.s) -Chars 7337 - 7348 [repeat~red.] 0. secs (0.u,0.s) -Chars 7349 - 7353 [cbn.] 0. secs (0.u,0.s) +Chars 7337 - 7348 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7349 - 7353 [(cbn).] 0. secs (0.u,0.s) Chars 7354 - 7360 [tauto.] 0. secs (0.u,0.s) Chars 7363 - 7364 [-] 0. secs (0.u,0.s) -Chars 7365 - 7376 [repeat~red.] 0. secs (0.u,0.s) -Chars 7377 - 7381 [cbn.] 0. secs (0.u,0.s) -Chars 7382 - 7409 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) +Chars 7365 - 7376 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7377 - 7381 [(cbn).] 0. secs (0.u,0.s) +Chars 7382 - 7409 [(split;~intros;~basic_solve).] 0. secs (0.u,0.s) Chars 7414 - 7415 [+] 0. secs (0.u,0.s) -Chars 7416 - 7459 [destruct~(eutt_reta_or_div~m);...] 0. secs (0.u,0.s) +Chars 7416 - 7459 [(destruct~(eutt_reta_or_div~m)...] 0. secs (0.u,0.s) Chars 7466 - 7467 [*] 0. secs (0.u,0.s) Chars 7468 - 7473 [left.] 0. secs (0.u,0.s) Chars 7474 - 7483 [exists~a.] 0. secs (0.u,0.s) -Chars 7484 - 7496 [split;~auto.] 0. secs (0.u,0.s) -Chars 7497 - 7518 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7519 - 7530 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7531 - 7554 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) -Chars 7563 - 7577 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 7484 - 7496 [(split;~auto).] 0. secs (0.u,0.s) +Chars 7497 - 7518 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 7519 - 7530 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7531 - 7554 [(eapply~Hp;~try~apply~H).] 0. secs (0.u,0.s) +Chars 7563 - 7577 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) Chars 7578 - 7604 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 7605 - 7617 [reflexivity.] 0. secs (0.u,0.s) Chars 7624 - 7625 [*] 0. secs (0.u,0.s) Chars 7626 - 7632 [right.] 0. secs (0.u,0.s) -Chars 7633 - 7645 [split;~auto.] 0. secs (0.u,0.s) -Chars 7646 - 7672 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 7673 - 7694 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7695 - 7718 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) -Chars 7727 - 7738 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7739 - 7755 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 7633 - 7645 [(split;~auto).] 0. secs (0.u,0.s) +Chars 7646 - 7672 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 7673 - 7694 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 7695 - 7718 [(eapply~Hp;~try~apply~H).] 0. secs (0.u,0.s) +Chars 7727 - 7738 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 7739 - 7755 [(apply~spin_bind).] 0. secs (0.u,0.s) Chars 7760 - 7761 [+] 0. secs (0.u,0.s) -Chars 7762 - 7783 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7784 - 7795 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7796 - 7820 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 7821 - 7834 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) -Chars 7835 - 7861 [setoid_rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 7762 - 7783 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 7784 - 7795 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7796 - 7820 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 7821 - 7834 [(rewrite~<-~H).] 0.001 secs (0.001u,0.s) +Chars 7835 - 7861 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 7862 - 7874 [reflexivity.] 0. secs (0.u,0.s) Chars 7879 - 7880 [+] 0. secs (0.u,0.s) -Chars 7881 - 7906 [apply~div_spin_eutt~in~H.] 0. secs (0.u,0.s) -Chars 7907 - 7928 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7929 - 7940 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7941 - 7965 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 7966 - 7976 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 7881 - 7906 [(apply~div_spin_eutt~in~H).] 0. secs (0.u,0.s) +Chars 7907 - 7928 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 7929 - 7940 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7941 - 7965 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 7966 - 7976 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 7983 - 7992 [symmetry.] 0. secs (0.u,0.s) -Chars 7993 - 8009 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 7993 - 8009 [(apply~spin_bind).] 0. secs (0.u,0.s) Chars 8010 - 8014 [Qed.] 0.005 secs (0.005u,0.s) Chars 8016 - 8127 [Definition~iter_arrow_rel~{A~B...] 0. secs (0.u,0.s) Chars 8129 - 8211 [Notation~"x~=[~g~]=>~y"~:=~(it...] 0. secs (0.u,0.s) Chars 8213 - 8360 [Lemma~iter_inl_spin~:~~~forall...] 0. secs (0.u,0.s) Chars 8361 - 8367 [Proof.] 0. secs (0.u,0.s) -Chars 8370 - 8383 [intros~A~B~g.] 0. secs (0.u,0.s) -Chars 8384 - 8396 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 8397 - 8404 [intros.] 0. secs (0.u,0.s) -Chars 8405 - 8448 [red~in~H;~sinv~H;~try~apply~no...] 0.008 secs (0.008u,0.s) -Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.031 secs (0.031u,0.s) -Chars 8485 - 8515 [unfold~iter_arrow_rel~in~Hrel.] 0. secs (0.u,0.s) -Chars 8516 - 8546 [apply~eutt_ret_euttge~in~Hrel.] 0. secs (0.u,0.s) -Chars 8549 - 8562 [rewrite~Hrel.] 0.004 secs (0.004u,0.s) -Chars 8563 - 8582 [rewrite~bind_ret_l.] 0.01 secs (0.01u,0.s) -Chars 8583 - 8603 [rewrite~unfold_spin.] 0.011 secs (0.011u,0.s) -Chars 8604 - 8609 [etau.] 0.001 secs (0.u,0.s) -Chars 8610 - 8614 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8370 - 8383 [(intros~A~B~g).] 0. secs (0.u,0.s) +Chars 8384 - 8396 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 8397 - 8404 [(intros).] 0. secs (0.u,0.s) +Chars 8405 - 8448 [(red~in~H;~sinv~H;~try~apply~n...] 0.012 secs (0.012u,0.s) +Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.039 secs (0.038u,0.s) +Chars 8485 - 8515 [(unfold~iter_arrow_rel~in~Hrel).] 0. secs (0.u,0.s) +Chars 8516 - 8546 [(apply~eutt_ret_euttge~in~Hrel).] 0. secs (0.u,0.s) +Chars 8549 - 8562 [(rewrite~Hrel).] 0.005 secs (0.005u,0.s) +Chars 8563 - 8582 [(rewrite~bind_ret_l).] 0.014 secs (0.014u,0.s) +Chars 8583 - 8603 [(rewrite~unfold_spin).] 0.016 secs (0.015u,0.s) +Chars 8604 - 8609 [etau.] 0.001 secs (0.001u,0.s) +Chars 8610 - 8614 [Qed.] 0.007 secs (0.007u,0.s) Chars 8759 - 8973 [Lemma~iter_wf_converge~:~~~for...] 0. secs (0.u,0.s) Chars 8974 - 8980 [Proof.] 0. secs (0.u,0.s) -Chars 8983 - 9008 [intros~A~B~g~a~Hwf~Hconv.] 0. secs (0.u,0.s) -Chars 9011 - 9025 [induction~Hwf.] 0. secs (0.u,0.s) +Chars 8983 - 9008 [(intros~A~B~g~a~Hwf~Hconv).] 0. secs (0.u,0.s) +Chars 9011 - 9025 [(induction~Hwf).] 0. secs (0.u,0.s) Chars 9028 - 9029 [-] 0. secs (0.u,0.s) Chars 9030 - 9051 [specialize~(Hconv~a).] 0. secs (0.u,0.s) -Chars 9052 - 9088 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) +Chars 9052 - 9088 [(destruct~Hconv~as~[[a'|~b]~Hr...] 0. secs (0.u,0.s) Chars 9093 - 9094 [+] 0. secs (0.u,0.s) Chars 9095 - 9103 [exfalso.] 0. secs (0.u,0.s) -Chars 9104 - 9117 [apply~(H~a').] 0. secs (0.u,0.s) +Chars 9104 - 9117 [(apply~(H~a')).] 0. secs (0.u,0.s) Chars 9118 - 9123 [auto.] 0. secs (0.u,0.s) Chars 9128 - 9129 [+] 0. secs (0.u,0.s) Chars 9130 - 9139 [exists~b.] 0. secs (0.u,0.s) -Chars 9140 - 9160 [rewrite~unfold_iter.] 0. secs (0.u,0.s) -Chars 9161 - 9174 [rewrite~Hret.] 0.001 secs (0.001u,0.s) -Chars 9175 - 9194 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 9140 - 9160 [(rewrite~unfold_iter).] 0.001 secs (0.001u,0.s) +Chars 9161 - 9174 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) +Chars 9175 - 9194 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 9201 - 9213 [reflexivity.] 0. secs (0.u,0.s) Chars 9216 - 9217 [-] 0. secs (0.u,0.s) Chars 9218 - 9239 [specialize~(Hconv~a).] 0. secs (0.u,0.s) -Chars 9240 - 9276 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) +Chars 9240 - 9276 [(destruct~Hconv~as~[[a'|~b]~Hr...] 0. secs (0.u,0.s) Chars 9281 - 9282 [+] 0. secs (0.u,0.s) -Chars 9283 - 9309 [apply~H0~in~Hret~as~Hret'.] 0. secs (0.u,0.s) -Chars 9310 - 9338 [destruct~Hret'~as~[b~Hret'].] 0. secs (0.u,0.s) +Chars 9283 - 9309 [(apply~H0~in~Hret~as~Hret').] 0. secs (0.u,0.s) +Chars 9310 - 9338 [(destruct~Hret'~as~[b~Hret']).] 0. secs (0.u,0.s) Chars 9339 - 9348 [exists~b.] 0. secs (0.u,0.s) -Chars 9355 - 9375 [rewrite~unfold_iter.] 0. secs (0.u,0.s) -Chars 9376 - 9389 [rewrite~Hret.] 0.001 secs (0.001u,0.s) -Chars 9390 - 9409 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 9410 - 9427 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 9355 - 9375 [(rewrite~unfold_iter).] 0.001 secs (0.001u,0.s) +Chars 9376 - 9389 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) +Chars 9390 - 9409 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 9410 - 9427 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 9428 - 9433 [auto.] 0. secs (0.u,0.s) Chars 9438 - 9439 [+] 0. secs (0.u,0.s) Chars 9440 - 9449 [exists~b.] 0. secs (0.u,0.s) -Chars 9450 - 9470 [rewrite~unfold_iter.] 0. secs (0.u,0.s) -Chars 9471 - 9484 [rewrite~Hret.] 0.001 secs (0.001u,0.s) -Chars 9485 - 9504 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 9450 - 9470 [(rewrite~unfold_iter).] 0. secs (0.u,0.s) +Chars 9471 - 9484 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) +Chars 9485 - 9504 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 9511 - 9523 [reflexivity.] 0. secs (0.u,0.s) -Chars 9524 - 9528 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9524 - 9528 [Qed.] 0.004 secs (0.003u,0.s) Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0. secs (0.u,0.s) Chars 9682 - 9863 [Definition~iter_lift~{A~B~:~Ty...] 0. secs (0.u,0.s) Chars 9865 - 9940 [Notation~"q~-+>~p"~:=~(loop_in...] 0. secs (0.u,0.s) -Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0. secs (0.u,0.s) +Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0.001 secs (0.001u,0.s) Chars 10289 - 10295 [Proof.] 0. secs (0.u,0.s) -Chars 10298 - 10305 [intros.] 0. secs (0.u,0.s) -Chars 10306 - 10333 [unfold~loop_invar_imp~in~*.] 0. secs (0.u,0.s) -Chars 10336 - 10365 [set~(rg~:=~iter_arrow_rel~g).] 0. secs (0.u,0.s) -Chars 10368 - 10395 [destruct~(classic_wf~rg~a).] 0. secs (0.u,0.s) +Chars 10298 - 10305 [(intros).] 0. secs (0.u,0.s) +Chars 10306 - 10333 [(unfold~loop_invar_imp~in~*).] 0. secs (0.u,0.s) +Chars 10336 - 10365 [(set~(rg~:=~iter_arrow_rel~g)).] 0. secs (0.u,0.s) +Chars 10368 - 10395 [(destruct~(classic_wf~rg~a)).] 0. secs (0.u,0.s) Chars 10398 - 10399 [-] 0. secs (0.u,0.s) Chars 10400 - 10405 [left.] 0. secs (0.u,0.s) -Chars 10406 - 10419 [induction~H2.] 0. secs (0.u,0.s) +Chars 10406 - 10419 [(induction~H2).] 0. secs (0.u,0.s) Chars 10424 - 10425 [+] 0. secs (0.u,0.s) -Chars 10426 - 10458 [unfold~rg,~iter_arrow_rel~in~H2.] 0. secs (0.u,0.s) -Chars 10459 - 10506 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) +Chars 10426 - 10458 [(unfold~rg,~iter_arrow_rel~in~...] 0. secs (0.u,0.s) +Chars 10459 - 10506 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) Chars 10513 - 10514 [*] 0. secs (0.u,0.s) Chars 10515 - 10530 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 10531 - 10546 [apply~H2~in~H3.] 0. secs (0.u,0.s) +Chars 10531 - 10546 [(apply~H2~in~H3).] 0. secs (0.u,0.s) Chars 10547 - 10561 [contradiction.] 0. secs (0.u,0.s) Chars 10568 - 10569 [*] 0. secs (0.u,0.s) -Chars 10570 - 10578 [apply~H.] 0. secs (0.u,0.s) -Chars 10579 - 10583 [cbn.] 0. secs (0.u,0.s) -Chars 10584 - 10608 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.005 secs (0.005u,0.s) -Chars 10651 - 10665 [rewrite~<-~H3.] 0.002 secs (0.002u,0.s) -Chars 10674 - 10707 [repeat~setoid_rewrite~bind_ret_l.] 0.01 secs (0.01u,0.s) +Chars 10570 - 10578 [(apply~H).] 0. secs (0.u,0.s) +Chars 10579 - 10583 [(cbn).] 0. secs (0.u,0.s) +Chars 10584 - 10608 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.007 secs (0.007u,0.s) +Chars 10651 - 10665 [(rewrite~<-~H3).] 0.004 secs (0.004u,0.s) +Chars 10674 - 10707 [(repeat~setoid_rewrite~bind_re...] 0.013 secs (0.013u,0.s) Chars 10708 - 10720 [reflexivity.] 0. secs (0.u,0.s) Chars 10727 - 10728 [*] 0. secs (0.u,0.s) -Chars 10729 - 10755 [apply~div_spin_eutt~in~H3.] 0. secs (0.u,0.s) -Chars 10756 - 10764 [apply~H.] 0. secs (0.u,0.s) -Chars 10765 - 10769 [cbn.] 0. secs (0.u,0.s) -Chars 10778 - 10802 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 10803 - 10814 [rewrite~H3.] 0. secs (0.u,0.s) -Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) -Chars 10851 - 10862 [rewrite~H3.] 0.002 secs (0.002u,0.s) +Chars 10729 - 10755 [(apply~div_spin_eutt~in~H3).] 0. secs (0.u,0.s) +Chars 10756 - 10764 [(apply~H).] 0. secs (0.u,0.s) +Chars 10765 - 10769 [(cbn).] 0. secs (0.u,0.s) +Chars 10778 - 10802 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 10803 - 10814 [(rewrite~H3).] 0. secs (0.u,0.s) +Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) +Chars 10851 - 10862 [(rewrite~H3).] 0.003 secs (0.003u,0.s) Chars 10871 - 10880 [symmetry.] 0. secs (0.u,0.s) -Chars 10881 - 10909 [setoid_rewrite~~<-~spin_bind.] 0.003 secs (0.003u,0.s) -Chars 10910 - 10926 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 10881 - 10909 [setoid_rewrite~~<-~spin_bind.] 0.004 secs (0.004u,0.s) +Chars 10910 - 10926 [(apply~spin_bind).] 0. secs (0.u,0.s) Chars 10931 - 10932 [+] 0. secs (0.u,0.s) -Chars 10933 - 10948 [unfold~rg~in~*.] 0. secs (0.u,0.s) -Chars 10955 - 11002 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) +Chars 10933 - 10948 [(unfold~rg~in~*).] 0. secs (0.u,0.s) +Chars 10955 - 11002 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) Chars 11009 - 11010 [*] 0. secs (0.u,0.s) -Chars 11011 - 11021 [cbn~in~H4.] 0. secs (0.u,0.s) -Chars 11022 - 11071 [rewrite~unfold_iter,~<-~H4,~bi...] 0.006 secs (0.006u,0.s) -Chars 11080 - 11089 [apply~H3.] 0. secs (0.u,0.s) +Chars 11011 - 11021 [(cbn~in~H4).] 0. secs (0.u,0.s) +Chars 11022 - 11071 [(rewrite~unfold_iter,~<-~H4,~b...] 0.008 secs (0.008u,0.s) +Chars 11080 - 11089 [(apply~H3).] 0. secs (0.u,0.s) Chars 11098 - 11100 [--] 0. secs (0.u,0.s) -Chars 11101 - 11105 [red.] 0. secs (0.u,0.s) -Chars 11106 - 11127 [symmetry;~assumption.] 0. secs (0.u,0.s) +Chars 11101 - 11105 [(red).] 0. secs (0.u,0.s) +Chars 11106 - 11127 [(symmetry;~assumption).] 0. secs (0.u,0.s) Chars 11136 - 11138 [--] 0. secs (0.u,0.s) -Chars 11139 - 11162 [unfold~iter_lift~in~H1.] 0. secs (0.u,0.s) +Chars 11139 - 11162 [(unfold~iter_lift~in~H1).] 0. secs (0.u,0.s) Chars 11163 - 11188 [specialize~(H1~(g~a)~H0).] 0. secs (0.u,0.s) -Chars 11200 - 11224 [eapply~Hq;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 11225 - 11229 [cbn.] 0. secs (0.u,0.s) -Chars 11230 - 11244 [rewrite~<-~H4.] 0.002 secs (0.002u,0.s) +Chars 11200 - 11224 [(eapply~Hq;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 11225 - 11229 [(cbn).] 0. secs (0.u,0.s) +Chars 11230 - 11244 [(rewrite~<-~H4).] 0.002 secs (0.002u,0.s) Chars 11245 - 11271 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) Chars 11283 - 11295 [reflexivity.] 0. secs (0.u,0.s) Chars 11302 - 11303 [*] 0. secs (0.u,0.s) -Chars 11304 - 11314 [cbn~in~H4.] 0. secs (0.u,0.s) -Chars 11315 - 11354 [rewrite~unfold_iter,~<-~H4,~bi...] 0.005 secs (0.005u,0.s) -Chars 11363 - 11371 [apply~H.] 0. secs (0.u,0.s) -Chars 11372 - 11376 [cbn.] 0. secs (0.u,0.s) -Chars 11377 - 11396 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 11397 - 11414 [eapply~Hq;~eauto.] 0. secs (0.u,0.s) +Chars 11304 - 11314 [(cbn~in~H4).] 0. secs (0.u,0.s) +Chars 11315 - 11354 [(rewrite~unfold_iter,~<-~H4,~b...] 0.006 secs (0.006u,0.s) +Chars 11363 - 11371 [(apply~H).] 0. secs (0.u,0.s) +Chars 11372 - 11376 [(cbn).] 0. secs (0.u,0.s) +Chars 11377 - 11396 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 11397 - 11414 [(eapply~Hq;~eauto).] 0.001 secs (0.001u,0.s) Chars 11421 - 11422 [*] 0. secs (0.u,0.s) -Chars 11423 - 11449 [apply~div_spin_eutt~in~H4.] 0. secs (0.u,0.s) -Chars 11450 - 11458 [apply~H.] 0. secs (0.u,0.s) -Chars 11459 - 11463 [cbn.] 0. secs (0.u,0.s) -Chars 11472 - 11496 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 11497 - 11508 [rewrite~H4.] 0.001 secs (0.001u,0.s) -Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) -Chars 11545 - 11556 [rewrite~H4.] 0.002 secs (0.002u,0.s) -Chars 11557 - 11592 [repeat~setoid_rewrite~~<-~spin...] 0.006 secs (0.006u,0.s) +Chars 11423 - 11449 [(apply~div_spin_eutt~in~H4).] 0. secs (0.u,0.s) +Chars 11450 - 11458 [(apply~H).] 0. secs (0.u,0.s) +Chars 11459 - 11463 [(cbn).] 0. secs (0.u,0.s) +Chars 11472 - 11496 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 11497 - 11508 [(rewrite~H4).] 0.001 secs (0.u,0.s) +Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) +Chars 11545 - 11556 [(rewrite~H4).] 0.004 secs (0.004u,0.s) +Chars 11557 - 11592 [(repeat~setoid_rewrite~~<-~spi...] 0.008 secs (0.008u,0.s) Chars 11601 - 11613 [reflexivity.] 0. secs (0.u,0.s) Chars 11616 - 11617 [-] 0. secs (0.u,0.s) -Chars 11618 - 11644 [apply~iter_inl_spin~in~H2.] 0. secs (0.u,0.s) +Chars 11618 - 11644 [(apply~iter_inl_spin~in~H2).] 0. secs (0.u,0.s) Chars 11645 - 11651 [right.] 0. secs (0.u,0.s) -Chars 11652 - 11663 [rewrite~H2.] 0.001 secs (0.001u,0.s) -Chars 11664 - 11684 [apply~spin_infinite.] 0. secs (0.u,0.s) -Chars 11685 - 11689 [Qed.] 0.007 secs (0.006u,0.s) +Chars 11652 - 11663 [(rewrite~H2).] 0.001 secs (0.001u,0.s) +Chars 11664 - 11684 [(apply~spin_infinite).] 0. secs (0.u,0.s) +Chars 11685 - 11689 [Qed.] 0.009 secs (0.009u,0.s) diff --git a/extra/Dijkstra/DijkstraMonad.v.timing b/extra/Dijkstra/DijkstraMonad.v.timing index 452119a0..ce6f5d44 100644 --- a/extra/Dijkstra/DijkstraMonad.v.timing +++ b/extra/Dijkstra/DijkstraMonad.v.timing @@ -1,5 +1,5 @@ Chars 113 - 162 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) +Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.006 secs (0.004u,0.001s) Chars 229 - 250 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 252 - 281 [Declare~Scope~dijkstra_scope.] 0. secs (0.u,0.s) Chars 282 - 325 [Delimit~Scope~dijkstra_scope~w...] 0. secs (0.u,0.s) @@ -14,7 +14,7 @@ Chars 636 - 657 [Context~{Eq~:~Eq1~W}.] 0. secs (0.u,0.s) Chars 660 - 687 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) Chars 690 - 726 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) Chars 729 - 757 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 760 - 1086 [Class~OrderedMonad~:={~~~~~~~~...] 0.001 secs (0.001u,0.s) +Chars 760 - 1086 [Class~OrderedMonad~:={~~~~~~~~...] 0.002 secs (0.001u,0.s) Chars 1088 - 1105 [End~OrderedMonad.] 0. secs (0.u,0.s) Chars 1139 - 1157 [Section~SpecMonad.] 0. secs (0.u,0.s) Chars 1161 - 1188 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) @@ -23,7 +23,7 @@ Chars 1221 - 1249 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) Chars 1252 - 1293 [Context~{OrderedMonadW~:~Order...] 0. secs (0.u,0.s) Chars 1296 - 1408 [Class~SpecMonad~:={~~~~~~~~~~~...] 0. secs (0.u,0.s) Chars 1412 - 1461 [Infix~"∈"~:=~In~(~at~level~70)...] 0. secs (0.u,0.s) -Chars 1462 - 1476 [End~SpecMonad.] 0.001 secs (0.u,0.s) +Chars 1462 - 1476 [End~SpecMonad.] 0. secs (0.u,0.s) Chars 1509 - 1564 [Class~EffectObs~(M~W~:~Type~->...] 0. secs (0.u,0.s) Chars 1566 - 1592 [Section~EffectObservation.] 0. secs (0.u,0.s) Chars 1596 - 1625 [Context~(M~W~:~Type~->~Type).] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/ITreeDijkstra.v.timing b/extra/Dijkstra/ITreeDijkstra.v.timing index a99836ad..c6e5075a 100644 --- a/extra/Dijkstra/ITreeDijkstra.v.timing +++ b/extra/Dijkstra/ITreeDijkstra.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 201 [From~ITree~Require~Import~Axio...] 0.163 secs (0.146u,0.017s) -Chars 203 - 322 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.012u,0.002s) +Chars 95 - 201 [From~ITree~Require~Import~Axio...] 0.217 secs (0.193u,0.024s) +Chars 203 - 322 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) Chars 324 - 338 [Import~Monads.] 0. secs (0.u,0.s) Chars 339 - 360 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 362 - 394 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -13,96 +13,96 @@ Chars 906 - 928 [Section~ITreeDijkstra.] 0. secs (0.u,0.s) Chars 932 - 959 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 963 - 1035 [Definition~ITDInput~(A~:~Type)...] 0. secs (0.u,0.s) Chars 1039 - 1193 [Definition~ITreeSpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 1197 - 1281 [#[program]~Definition~ret_itre...] 0.002 secs (0.001u,0.s) +Chars 1197 - 1281 [#[program]~Definition~ret_itre...] 0.003 secs (0.002u,0.s) Chars 1285 - 1373 [Instance~proper_itree_spec~~{R...] 0. secs (0.u,0.s) Chars 1376 - 1382 [Proof.] 0. secs (0.u,0.s) -Chars 1387 - 1400 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 1401 - 1422 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 1423 - 1429 [simpl.] 0. secs (0.u,0.s) -Chars 1430 - 1462 [split;~intros;~eapply~Hp;~eauto.] 0.027 secs (0.025u,0.001s) -Chars 1467 - 1484 [now~rewrite~<-~H.] 0.002 secs (0.002u,0.s) +Chars 1387 - 1400 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 1401 - 1422 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 1423 - 1429 [(simpl).] 0. secs (0.u,0.s) +Chars 1430 - 1462 [(split;~intros;~eapply~Hp;~eau...] 0.002 secs (0.001u,0.s) +Chars 1467 - 1484 [now~rewrite~<-~H.] 0.037 secs (0.034u,0.003s) Chars 1487 - 1491 [Qed.] 0. secs (0.u,0.s) Chars 1495 - 1704 [#[program]~Definition~bind_ex~...] 0.003 secs (0.003u,0.s) -Chars 1707 - 1723 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 1707 - 1723 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) -Chars 1737 - 1748 [repeat~red.] 0. secs (0.u,0.s) -Chars 1749 - 1776 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) +Chars 1737 - 1748 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1749 - 1776 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 1781 - 1782 [-] 0. secs (0.u,0.s) Chars 1783 - 1788 [left.] 0. secs (0.u,0.s) Chars 1789 - 1798 [exists~a.] 0. secs (0.u,0.s) -Chars 1799 - 1815 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) +Chars 1799 - 1815 [(rewrite~H~in~H0).] 0.005 secs (0.004u,0.s) Chars 1816 - 1821 [auto.] 0. secs (0.u,0.s) Chars 1826 - 1827 [-] 0. secs (0.u,0.s) Chars 1828 - 1834 [right.] 0. secs (0.u,0.s) -Chars 1835 - 1853 [rewrite~<-~H~~at~1.] 0.001 secs (0.001u,0.s) -Chars 1854 - 1866 [split;~auto.] 0. secs (0.u,0.s) -Chars 1873 - 1906 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) +Chars 1835 - 1853 [(rewrite~<-~H~~at~1).] 0.002 secs (0.002u,0.s) +Chars 1854 - 1866 [(split;~auto).] 0. secs (0.u,0.s) +Chars 1873 - 1906 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) Chars 1913 - 1954 [specialize~(all_infinite_euttN...] 0. secs (0.u,0.s) -Chars 1961 - 1968 [intros.] 0. secs (0.u,0.s) +Chars 1961 - 1968 [(intros).] 0. secs (0.u,0.s) Chars 1975 - 2013 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 2020 - 2036 [rewrite~H~in~H0.] 0.001 secs (0.001u,0.s) +Chars 2020 - 2036 [(rewrite~H~in~H0).] 0.001 secs (0.001u,0.s) Chars 2037 - 2075 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 2082 - 2092 [eapply~Hp.] 0. secs (0.u,0.s) +Chars 2082 - 2092 [(eapply~Hp).] 0. secs (0.u,0.s) Chars 2100 - 2110 [clear~Ht2.] 0. secs (0.u,0.s) Chars 2118 - 2132 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 2140 - 2163 [eapply~noret_cast_cast.] 0. secs (0.u,0.s) -Chars 2164 - 2175 [all:~eauto.] 0.001 secs (0.001u,0.s) +Chars 2140 - 2163 [(eapply~noret_cast_cast).] 0. secs (0.u,0.s) +Chars 2164 - 2175 [all:~eauto.] 0.002 secs (0.002u,0.s) Chars 2180 - 2181 [-] 0. secs (0.u,0.s) Chars 2182 - 2187 [left.] 0. secs (0.u,0.s) Chars 2188 - 2197 [exists~a.] 0. secs (0.u,0.s) -Chars 2198 - 2210 [split;~auto.] 0. secs (0.u,0.s) -Chars 2211 - 2221 [rewrite~H.] 0.047 secs (0.047u,0.s) +Chars 2198 - 2210 [(split;~auto).] 0. secs (0.u,0.s) +Chars 2211 - 2221 [(rewrite~H).] 0.058 secs (0.058u,0.s) Chars 2222 - 2227 [auto.] 0. secs (0.u,0.s) Chars 2232 - 2233 [-] 0. secs (0.u,0.s) Chars 2234 - 2240 [right.] 0. secs (0.u,0.s) -Chars 2241 - 2256 [rewrite~H~~at~1.] 0.001 secs (0.001u,0.s) -Chars 2257 - 2269 [split;~auto.] 0. secs (0.u,0.s) -Chars 2276 - 2309 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) -Chars 2316 - 2326 [eapply~Hp.] 0. secs (0.u,0.s) +Chars 2241 - 2256 [(rewrite~H~~at~1).] 0.002 secs (0.002u,0.s) +Chars 2257 - 2269 [(split;~auto).] 0. secs (0.u,0.s) +Chars 2276 - 2309 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) +Chars 2316 - 2326 [(eapply~Hp).] 0. secs (0.u,0.s) Chars 2334 - 2348 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 2356 - 2365 [symmetry.] 0. secs (0.u,0.s) -Chars 2373 - 2403 [eapply~noret_cast_cast;~eauto.] 0. secs (0.u,0.s) +Chars 2373 - 2403 [(eapply~noret_cast_cast;~eauto).] 0. secs (0.u,0.s) Chars 2410 - 2415 [auto.] 0. secs (0.u,0.s) -Chars 2419 - 2423 [Qed.] 0.005 secs (0.005u,0.s) -Chars 2426 - 2442 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 2419 - 2423 [Qed.] 0.007 secs (0.007u,0.s) +Chars 2426 - 2442 [Next~Obligation.] 0.002 secs (0.002u,0.s) Chars 2445 - 2451 [Proof.] 0. secs (0.u,0.s) -Chars 2456 - 2477 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 2478 - 2489 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2491 - 2515 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 2520 - 2527 [intros.] 0. secs (0.u,0.s) -Chars 2528 - 2539 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2544 - 2565 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 2566 - 2590 [destruct~p'~as~[p'~Hp'].] 0. secs (0.u,0.s) -Chars 2591 - 2602 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2456 - 2477 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 2478 - 2489 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2491 - 2515 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 2520 - 2527 [(intros).] 0. secs (0.u,0.s) +Chars 2528 - 2539 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2544 - 2565 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 2566 - 2590 [(destruct~p'~as~[p'~Hp']).] 0. secs (0.u,0.s) +Chars 2591 - 2602 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 2607 - 2619 [basic_solve.] 0. secs (0.u,0.s) Chars 2624 - 2625 [-] 0. secs (0.u,0.s) Chars 2626 - 2631 [left.] 0. secs (0.u,0.s) Chars 2632 - 2641 [exists~a.] 0. secs (0.u,0.s) -Chars 2642 - 2654 [split;~auto.] 0. secs (0.u,0.s) -Chars 2655 - 2682 [destruct~(g~a)~as~[ga~Hga].] 0. secs (0.u,0.s) -Chars 2683 - 2694 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2701 - 2726 [eapply~Hga;~try~apply~H2.] 0. secs (0.u,0.s) -Chars 2733 - 2739 [simpl.] 0. secs (0.u,0.s) +Chars 2642 - 2654 [(split;~auto).] 0. secs (0.u,0.s) +Chars 2655 - 2682 [(destruct~(g~a)~as~[ga~Hga]).] 0. secs (0.u,0.s) +Chars 2683 - 2694 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2701 - 2726 [(eapply~Hga;~try~apply~H2).] 0. secs (0.u,0.s) +Chars 2733 - 2739 [(simpl).] 0. secs (0.u,0.s) Chars 2740 - 2745 [auto.] 0. secs (0.u,0.s) Chars 2750 - 2751 [-] 0. secs (0.u,0.s) Chars 2752 - 2758 [right.] 0. secs (0.u,0.s) -Chars 2759 - 2771 [split;~auto.] 0. secs (0.u,0.s) -Chars 2774 - 2778 [Qed.] 0.005 secs (0.005u,0.s) -Chars 2782 - 2873 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0. secs (0.u,0.s) +Chars 2759 - 2771 [(split;~auto).] 0. secs (0.u,0.s) +Chars 2774 - 2778 [Qed.] 0.008 secs (0.008u,0.s) +Chars 2782 - 2873 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0.001 secs (0.u,0.s) Chars 2877 - 2942 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) Chars 2945 - 2951 [Proof.] 0. secs (0.u,0.s) -Chars 2956 - 2997 [constructor;~red;~intros;~red;...] 0.002 secs (0.002u,0.s) +Chars 2956 - 2997 [(constructor;~red;~intros;~red...] 0.003 secs (0.002u,0.s) Chars 3002 - 3003 [-] 0. secs (0.u,0.s) -Chars 3004 - 3013 [red~in~H.] 0. secs (0.u,0.s) -Chars 3014 - 3021 [intros.] 0. secs (0.u,0.s) -Chars 3022 - 3032 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 3004 - 3013 [(red~in~H).] 0. secs (0.u,0.s) +Chars 3014 - 3021 [(intros).] 0. secs (0.u,0.s) +Chars 3022 - 3032 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 3033 - 3045 [reflexivity.] 0. secs (0.u,0.s) Chars 3050 - 3051 [-] 0. secs (0.u,0.s) -Chars 3052 - 3059 [intros.] 0. secs (0.u,0.s) -Chars 3060 - 3069 [red~in~H.] 0. secs (0.u,0.s) -Chars 3070 - 3080 [red~in~H0.] 0. secs (0.u,0.s) -Chars 3081 - 3091 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 3092 - 3103 [rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 3052 - 3059 [(intros).] 0. secs (0.u,0.s) +Chars 3060 - 3069 [(red~in~H).] 0. secs (0.u,0.s) +Chars 3070 - 3080 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 3081 - 3091 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 3092 - 3103 [(rewrite~H0).] 0.001 secs (0.001u,0.s) Chars 3110 - 3122 [reflexivity.] 0. secs (0.u,0.s) Chars 3125 - 3129 [Qed.] 0.001 secs (0.001u,0.s) Chars 3133 - 3237 [Instance~ItreeSpecMonad~:~(Mon...] 0. secs (0.u,0.s) @@ -119,9 +119,9 @@ Chars 6870 - 6987 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 6991 - 7049 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) Chars 7065 - 7073 [intros~!.] 0. secs (0.u,0.s) -Chars 7079 - 7086 [inv~H0.] 0. secs (0.u,0.s) -Chars 7087 - 7091 [red.] 0. secs (0.u,0.s) -Chars 7092 - 7106 [rewrite~<-~H1.] 0. secs (0.u,0.s) +Chars 7079 - 7086 [(inv~H0).] 0. secs (0.u,0.s) +Chars 7087 - 7091 [(red).] 0. secs (0.u,0.s) +Chars 7092 - 7106 [(rewrite~<-~H1).] 0. secs (0.u,0.s) Chars 7107 - 7120 [econstructor.] 0. secs (0.u,0.s) Chars 7125 - 7137 [now~apply~H.] 0. secs (0.u,0.s) Chars 7142 - 7146 [Qed.] 0. secs (0.u,0.s) @@ -135,113 +135,113 @@ Chars 7858 - 8022 [Definition~bisim_~{A~:~Type}~(...] 0. secs (0.u,0.s) Chars 8026 - 8082 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) Chars 8086 - 8092 [Proof.] 0. secs (0.u,0.s) Chars 8098 - 8106 [intros~!.] 0. secs (0.u,0.s) -Chars 8107 - 8111 [red.] 0. secs (0.u,0.s) -Chars 8112 - 8119 [inv~H0.] 0.006 secs (0.005u,0.s) +Chars 8107 - 8111 [(red).] 0. secs (0.u,0.s) +Chars 8112 - 8119 [(inv~H0).] 0.005 secs (0.005u,0.s) Chars 8125 - 8126 [-] 0. secs (0.u,0.s) Chars 8127 - 8139 [constructor.] 0. secs (0.u,0.s) Chars 8145 - 8146 [-] 0. secs (0.u,0.s) Chars 8147 - 8159 [constructor.] 0. secs (0.u,0.s) Chars 8160 - 8172 [now~apply~H.] 0. secs (0.u,0.s) -Chars 8176 - 8180 [Qed.] 0. secs (0.u,0.s) -Chars 8187 - 8301 [Definition~bisim_mon~{A}~:~mon...] 0. secs (0.u,0.s) +Chars 8176 - 8180 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8187 - 8301 [Definition~bisim_mon~{A}~:~mon...] 0.002 secs (0.002u,0.s) Chars 8306 - 8356 [Definition~bisim~{A~:~Type}~:=...] 0. secs (0.u,0.s) Chars 8360 - 8410 [Instance~bisim_equiv~~{A}:~(Eq...] 0. secs (0.u,0.s) Chars 8413 - 8419 [Proof.] 0. secs (0.u,0.s) -Chars 8424 - 8441 [constructor;~red.] 0. secs (0.u,0.s) +Chars 8424 - 8441 [(constructor;~red).] 0. secs (0.u,0.s) Chars 8446 - 8447 [-] 0. secs (0.u,0.s) Chars 8448 - 8466 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8467 - 8474 [intros.] 0. secs (0.u,0.s) -Chars 8475 - 8484 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8485 - 8530 [destruct~(observe_stream~x);~a...] 0. secs (0.u,0.s) +Chars 8467 - 8474 [(intros).] 0. secs (0.u,0.s) +Chars 8475 - 8484 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8485 - 8530 [(destruct~(observe_stream~x);~...] 0.001 secs (0.001u,0.s) Chars 8535 - 8536 [-] 0. secs (0.u,0.s) Chars 8537 - 8555 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8556 - 8563 [intros.] 0. secs (0.u,0.s) -Chars 8570 - 8579 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8586 - 8620 [red~in~H;~sinv~H;~auto~with~it...] 0.008 secs (0.008u,0.s) +Chars 8556 - 8563 [(intros).] 0. secs (0.u,0.s) +Chars 8570 - 8579 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8586 - 8620 [(red~in~H;~sinv~H;~auto~with~i...] 0.01 secs (0.01u,0.s) Chars 8625 - 8626 [-] 0. secs (0.u,0.s) -Chars 8627 - 8645 [unfold~bisim~at~3.] 0. secs (0.u,0.s) +Chars 8627 - 8645 [(unfold~bisim~at~3).] 0. secs (0.u,0.s) Chars 8646 - 8664 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8665 - 8672 [intros.] 0. secs (0.u,0.s) -Chars 8673 - 8682 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8689 - 8743 [red~in~H;~sinv~H;~red~in~H0;~s...] 0.028 secs (0.028u,0.s) +Chars 8665 - 8672 [(intros).] 0. secs (0.u,0.s) +Chars 8673 - 8682 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8689 - 8743 [(red~in~H;~sinv~H;~red~in~H0;~...] 0.04 secs (0.039u,0.s) Chars 8750 - 8751 [+] 0. secs (0.u,0.s) -Chars 8752 - 8771 [rewrite~<-~H~in~H3.] 0. secs (0.u,0.s) +Chars 8752 - 8771 [(rewrite~<-~H~in~H3).] 0. secs (0.u,0.s) Chars 8772 - 8785 [discriminate.] 0. secs (0.u,0.s) Chars 8792 - 8793 [+] 0. secs (0.u,0.s) -Chars 8794 - 8814 [rewrite~<-~H2~in~H4.] 0. secs (0.u,0.s) +Chars 8794 - 8814 [(rewrite~<-~H2~in~H4).] 0. secs (0.u,0.s) Chars 8815 - 8828 [discriminate.] 0. secs (0.u,0.s) Chars 8835 - 8836 [+] 0. secs (0.u,0.s) -Chars 8837 - 8856 [rewrite~<-~H2~in~H.] 0. secs (0.u,0.s) -Chars 8857 - 8884 [injection~H;~intros;~subst.] 0. secs (0.u,0.s) +Chars 8837 - 8856 [(rewrite~<-~H2~in~H).] 0. secs (0.u,0.s) +Chars 8857 - 8884 [(injection~H;~intros;~subst).] 0. secs (0.u,0.s) Chars 8893 - 8905 [constructor.] 0. secs (0.u,0.s) Chars 8906 - 8912 [eauto.] 0. secs (0.u,0.s) -Chars 8916 - 8920 [Qed.] 0.006 secs (0.006u,0.s) +Chars 8916 - 8920 [Qed.] 0.008 secs (0.008u,0.s) Chars 9025 - 9099 [Instance~proper_bisim_app~~{A}...] 0. secs (0.u,0.s) Chars 9102 - 9108 [Proof.] 0. secs (0.u,0.s) -Chars 9114 - 9132 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9133 - 9160 [intros~s1~s2~H12~s3~s4~H34.] 0. secs (0.u,0.s) -Chars 9166 - 9175 [cbn;~red.] 0. secs (0.u,0.s) -Chars 9176 - 9187 [unfold~app.] 0. secs (0.u,0.s) -Chars 9188 - 9197 [sinv~H12.] 0.008 secs (0.008u,0.s) +Chars 9114 - 9132 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 9133 - 9160 [(intros~s1~s2~H12~s3~s4~H34).] 0. secs (0.u,0.s) +Chars 9166 - 9175 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 9176 - 9187 [(unfold~app).] 0. secs (0.u,0.s) +Chars 9188 - 9197 [(sinv~H12).] 0.011 secs (0.011u,0.s) Chars 9202 - 9203 [-] 0. secs (0.u,0.s) -Chars 9204 - 9210 [simpl.] 0. secs (0.u,0.s) -Chars 9211 - 9223 [destruct~s3.] 0. secs (0.u,0.s) -Chars 9224 - 9236 [destruct~s4.] 0. secs (0.u,0.s) -Chars 9237 - 9282 [sinv~H34;~simpl~in~*;~subst;~a...] 0.011 secs (0.01u,0.s) +Chars 9204 - 9210 [(simpl).] 0. secs (0.u,0.s) +Chars 9211 - 9223 [(destruct~s3).] 0. secs (0.u,0.s) +Chars 9224 - 9236 [(destruct~s4).] 0. secs (0.u,0.s) +Chars 9237 - 9282 [(sinv~H34;~simpl~in~*;~subst;~...] 0.015 secs (0.015u,0.s) Chars 9289 - 9301 [constructor.] 0. secs (0.u,0.s) Chars 9302 - 9316 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 9322 - 9323 [-] 0. secs (0.u,0.s) -Chars 9324 - 9328 [cbn.] 0. secs (0.u,0.s) +Chars 9324 - 9328 [(cbn).] 0. secs (0.u,0.s) Chars 9329 - 9341 [constructor.] 0. secs (0.u,0.s) -Chars 9342 - 9358 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 9361 - 9365 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9342 - 9358 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 9361 - 9365 [Qed.] 0.005 secs (0.004u,0.s) Chars 9369 - 9420 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) Chars 9426 - 9503 [Instance~proper_bisim_inf_imp~...] 0. secs (0.u,0.s) Chars 9506 - 9512 [Proof.] 0. secs (0.u,0.s) Chars 9517 - 9535 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9540 - 9559 [intros~s1~s2~H12~H.] 0. secs (0.u,0.s) +Chars 9540 - 9559 [(intros~s1~s2~H12~H).] 0. secs (0.u,0.s) Chars 9560 - 9565 [icbn.] 0. secs (0.u,0.s) Chars 9566 - 9576 [step~in~H.] 0. secs (0.u,0.s) Chars 9582 - 9594 [step~in~H12.] 0. secs (0.u,0.s) -Chars 9595 - 9603 [inv~H12.] 0.004 secs (0.004u,0.s) +Chars 9595 - 9603 [(inv~H12).] 0.005 secs (0.005u,0.s) Chars 9609 - 9610 [-] 0. secs (0.u,0.s) -Chars 9611 - 9630 [rewrite~<-~H1~in~H.] 0. secs (0.u,0.s) -Chars 9631 - 9637 [inv~H.] 0. secs (0.u,0.s) +Chars 9611 - 9630 [(rewrite~<-~H1~in~H).] 0. secs (0.u,0.s) +Chars 9631 - 9637 [(inv~H).] 0. secs (0.u,0.s) Chars 9642 - 9643 [-] 0. secs (0.u,0.s) -Chars 9644 - 9663 [inversion~H;~subst.] 0. secs (0.u,0.s) +Chars 9644 - 9663 [(inversion~H;~subst).] 0. secs (0.u,0.s) Chars 9671 - 9683 [constructor.] 0. secs (0.u,0.s) -Chars 9684 - 9702 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 9709 - 9729 [rewrite~<-~H3~in~H0.] 0. secs (0.u,0.s) -Chars 9730 - 9737 [inv~H0.] 0. secs (0.u,0.s) -Chars 9740 - 9744 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9684 - 9702 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 9709 - 9729 [(rewrite~<-~H3~in~H0).] 0. secs (0.u,0.s) +Chars 9730 - 9737 [(inv~H0).] 0. secs (0.u,0.s) +Chars 9740 - 9744 [Qed.] 0.003 secs (0.003u,0.s) Chars 9748 - 9815 [Instance~proper_bisim_inf~~{A}...] 0. secs (0.u,0.s) Chars 9818 - 9824 [Proof.] 0. secs (0.u,0.s) -Chars 9829 - 9873 [split;~try~apply~proper_bisim_...] 0. secs (0.u,0.s) -Chars 9878 - 9896 [apply~bisim_equiv.] 0. secs (0.u,0.s) +Chars 9829 - 9873 [(split;~try~apply~proper_bisim...] 0. secs (0.u,0.s) +Chars 9878 - 9896 [(apply~bisim_equiv).] 0. secs (0.u,0.s) Chars 9897 - 9902 [auto.] 0. secs (0.u,0.s) Chars 9905 - 9909 [Qed.] 0. secs (0.u,0.s) Chars 9913 - 10001 [Lemma~app_inf~:~~~forall~(A~:~...] 0. secs (0.u,0.s) Chars 10004 - 10010 [Proof.] 0. secs (0.u,0.s) -Chars 10015 - 10024 [intros~A.] 0. secs (0.u,0.s) +Chars 10015 - 10024 [(intros~A).] 0. secs (0.u,0.s) Chars 10025 - 10043 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 10044 - 10062 [intros~s1~s2~Hinf.] 0. secs (0.u,0.s) +Chars 10044 - 10062 [(intros~s1~s2~Hinf).] 0. secs (0.u,0.s) Chars 10063 - 10068 [icbn.] 0. secs (0.u,0.s) -Chars 10069 - 10080 [unfold~app.] 0. secs (0.u,0.s) -Chars 10085 - 10095 [sinv~Hinf.] 0.003 secs (0.003u,0.s) -Chars 10100 - 10104 [cbn.] 0. secs (0.u,0.s) +Chars 10069 - 10080 [(unfold~app).] 0. secs (0.u,0.s) +Chars 10085 - 10095 [(sinv~Hinf).] 0.004 secs (0.004u,0.s) +Chars 10100 - 10104 [(cbn).] 0. secs (0.u,0.s) Chars 10105 - 10117 [constructor.] 0. secs (0.u,0.s) -Chars 10118 - 10134 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 10118 - 10134 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 10137 - 10141 [Qed.] 0.001 secs (0.001u,0.s) Chars 10145 - 10372 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) Chars 10376 - 10417 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) Chars 10421 - 10570 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) Chars 10574 - 10668 [Lemma~forall_stream_mono~(A~:~...] 0. secs (0.u,0.s) Chars 10671 - 10677 [Proof.] 0. secs (0.u,0.s) -Chars 10682 - 10693 [repeat~red.] 0. secs (0.u,0.s) -Chars 10694 - 10701 [intros.] 0. secs (0.u,0.s) -Chars 10702 - 10712 [red~in~H0.] 0. secs (0.u,0.s) -Chars 10713 - 10742 [destruct~H0;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 10747 - 10765 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 10682 - 10693 [(repeat~red).] 0. secs (0.u,0.s) +Chars 10694 - 10701 [(intros).] 0. secs (0.u,0.s) +Chars 10702 - 10712 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 10713 - 10742 [(destruct~H0;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 10747 - 10765 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 10766 - 10778 [now~apply~H.] 0. secs (0.u,0.s) Chars 10782 - 10786 [Qed.] 0. secs (0.u,0.s) Chars 10790 - 10861 [Definition~forall_stream_mon~A...] 0. secs (0.u,0.s) @@ -251,56 +251,56 @@ Chars 11240 - 11276 [Hint~Constructors~inf_manyF:~i...] 0. secs (0.u,0.s) Chars 11280 - 11419 [Definition~inf_many_~{A~:~Type...] 0. secs (0.u,0.s) Chars 11423 - 11507 [Lemma~inf_many_mono~(A~:~Type)...] 0. secs (0.u,0.s) Chars 11510 - 11516 [Proof.] 0. secs (0.u,0.s) -Chars 11521 - 11532 [repeat~red.] 0. secs (0.u,0.s) -Chars 11533 - 11540 [intros.] 0. secs (0.u,0.s) -Chars 11541 - 11551 [red~in~H0.] 0. secs (0.u,0.s) -Chars 11552 - 11582 [induction~H0;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 11587 - 11610 [apply~cons_found;~auto.] 0. secs (0.u,0.s) +Chars 11521 - 11532 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11533 - 11540 [(intros).] 0. secs (0.u,0.s) +Chars 11541 - 11551 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 11552 - 11582 [(induction~H0;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 11587 - 11610 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) Chars 11611 - 11623 [now~apply~H.] 0. secs (0.u,0.s) Chars 11627 - 11631 [Qed.] 0. secs (0.u,0.s) Chars 11635 - 11696 [Definition~inf_many_mon~A~P~:=...] 0. secs (0.u,0.s) Chars 11701 - 11774 [Definition~inf_many~{A~:~Type}...] 0. secs (0.u,0.s) Chars 11778 - 11880 [Lemma~inf_many_inf~:~~~forall~...] 0. secs (0.u,0.s) Chars 11883 - 11889 [Proof.] 0. secs (0.u,0.s) -Chars 11894 - 11905 [intros~A~P.] 0. secs (0.u,0.s) +Chars 11894 - 11905 [(intros~A~P).] 0. secs (0.u,0.s) Chars 11906 - 11924 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11925 - 11938 [intros~s~Him.] 0. secs (0.u,0.s) +Chars 11925 - 11938 [(intros~s~Him).] 0. secs (0.u,0.s) Chars 11943 - 11955 [step~in~Him.] 0. secs (0.u,0.s) Chars 11956 - 11961 [icbn.] 0. secs (0.u,0.s) -Chars 11967 - 11998 [induction~Him;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 11967 - 11998 [(induction~Him;~auto~with~itree).] 0. secs (0.u,0.s) Chars 12003 - 12015 [constructor.] 0. secs (0.u,0.s) -Chars 12016 - 12026 [apply~CIH.] 0. secs (0.u,0.s) +Chars 12016 - 12026 [(apply~CIH).] 0. secs (0.u,0.s) Chars 12027 - 12036 [now~step.] 0. secs (0.u,0.s) -Chars 12040 - 12044 [Qed.] 0. secs (0.u,0.s) +Chars 12040 - 12044 [Qed.] 0.001 secs (0.001u,0.s) Chars 12048 - 12173 [Lemma~inf_and_forall~:~~~foral...] 0. secs (0.u,0.s) Chars 12176 - 12182 [Proof.] 0. secs (0.u,0.s) -Chars 12187 - 12198 [intros~A~P.] 0. secs (0.u,0.s) +Chars 12187 - 12198 [(intros~A~P).] 0. secs (0.u,0.s) Chars 12199 - 12217 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 12218 - 12240 [intros~s~Hinf~Hforall.] 0. secs (0.u,0.s) +Chars 12218 - 12240 [(intros~s~Hinf~Hforall).] 0. secs (0.u,0.s) Chars 12245 - 12250 [icbn.] 0. secs (0.u,0.s) Chars 12251 - 12264 [step~in~Hinf.] 0. secs (0.u,0.s) Chars 12265 - 12281 [step~in~Hforall.] 0. secs (0.u,0.s) -Chars 12286 - 12295 [inv~Hinf.] 0.001 secs (0.001u,0.s) -Chars 12300 - 12312 [inv~Hforall.] 0.002 secs (0.002u,0.s) +Chars 12286 - 12295 [(inv~Hinf).] 0.002 secs (0.002u,0.s) +Chars 12300 - 12312 [(inv~Hforall).] 0.003 secs (0.003u,0.s) Chars 12317 - 12318 [-] 0. secs (0.u,0.s) -Chars 12319 - 12338 [rewrite~<-~H~in~H2.] 0. secs (0.u,0.s) -Chars 12339 - 12352 [discriminate.] 0.001 secs (0.001u,0.s) +Chars 12319 - 12338 [(rewrite~<-~H~in~H2).] 0. secs (0.u,0.s) +Chars 12339 - 12352 [discriminate.] 0. secs (0.u,0.s) Chars 12357 - 12358 [-] 0. secs (0.u,0.s) -Chars 12359 - 12378 [rewrite~<-~H~in~H1.] 0. secs (0.u,0.s) -Chars 12379 - 12386 [inv~H1.] 0.001 secs (0.001u,0.s) -Chars 12393 - 12416 [apply~cons_found;~auto.] 0. secs (0.u,0.s) -Chars 12419 - 12423 [Qed.] 0.002 secs (0.002u,0.s) +Chars 12359 - 12378 [(rewrite~<-~H~in~H1).] 0. secs (0.u,0.s) +Chars 12379 - 12386 [(inv~H1).] 0.002 secs (0.002u,0.s) +Chars 12393 - 12416 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) +Chars 12419 - 12423 [Qed.] 0.005 secs (0.005u,0.s) Chars 12534 - 12621 [Definition~rel_eventless~{E1}~...] 0. secs (0.u,0.s) Chars 12624 - 13283 [Inductive~eqitEF~{E1~E2~:~Type...] 0.002 secs (0.002u,0.s) Chars 13287 - 13320 [Hint~Constructors~eqitEF:~itree.] 0. secs (0.u,0.s) Chars 13324 - 13558 [Definition~eqitE_~(E1~E2~:~Typ...] 0. secs (0.u,0.s) Chars 13562 - 13645 [Lemma~eqitE_mono~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) Chars 13650 - 13656 [Proof.] 0. secs (0.u,0.s) -Chars 13663 - 13674 [repeat~red.] 0. secs (0.u,0.s) -Chars 13675 - 13682 [intros.] 0. secs (0.u,0.s) +Chars 13663 - 13674 [(repeat~red).] 0. secs (0.u,0.s) +Chars 13675 - 13682 [(intros).] 0. secs (0.u,0.s) Chars 13683 - 13700 [rename~x~into~t1.] 0. secs (0.u,0.s) Chars 13701 - 13718 [rename~y~into~t2.] 0. secs (0.u,0.s) -Chars 13725 - 13756 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 13725 - 13756 [(induction~H0;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 13763 - 13775 [constructor.] 0. secs (0.u,0.s) Chars 13776 - 13788 [now~apply~H.] 0. secs (0.u,0.s) Chars 13794 - 13798 [Qed.] 0.001 secs (0.001u,0.s) @@ -313,179 +313,179 @@ Chars 14301 - 14438 [Definition~eventless_~{E~:~Typ...] 0. secs (0.u,0.s) Chars 14442 - 14473 [Hint~Unfold~eventless_:~itree.] 0. secs (0.u,0.s) Chars 14479 - 14549 [Lemma~eventless_mono~{E1}~{R}~...] 0. secs (0.u,0.s) Chars 14552 - 14558 [Proof.] 0. secs (0.u,0.s) -Chars 14563 - 14574 [repeat~red.] 0. secs (0.u,0.s) -Chars 14575 - 14582 [intros.] 0. secs (0.u,0.s) -Chars 14583 - 14593 [red~in~H0.] 0. secs (0.u,0.s) -Chars 14594 - 14624 [inversion~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 14563 - 14574 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14575 - 14582 [(intros).] 0. secs (0.u,0.s) +Chars 14583 - 14593 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 14594 - 14624 [(inversion~H0;~auto~with~itree).] 0. secs (0.u,0.s) Chars 14629 - 14641 [constructor.] 0. secs (0.u,0.s) Chars 14642 - 14654 [now~apply~H.] 0. secs (0.u,0.s) -Chars 14659 - 14663 [Qed.] 0. secs (0.u,0.s) +Chars 14659 - 14663 [Qed.] 0.001 secs (0.001u,0.s) Chars 14667 - 14735 [Definition~eventless_mon~{E1}~...] 0. secs (0.u,0.s) Chars 14739 - 14842 [Definition~eventless~{E~:~Type...] 0. secs (0.u,0.s) Chars 14846 - 14937 [Instance~proper_eventless_imp~...] 0. secs (0.u,0.s) Chars 14940 - 14946 [Proof.] 0. secs (0.u,0.s) -Chars 14951 - 14962 [repeat~red.] 0. secs (0.u,0.s) +Chars 14951 - 14962 [(repeat~red).] 0. secs (0.u,0.s) Chars 14963 - 14981 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 14986 - 15009 [intros~t1~t2~Heutt~Hev.] 0. secs (0.u,0.s) +Chars 14986 - 15009 [(intros~t1~t2~Heutt~Hev).] 0. secs (0.u,0.s) Chars 15014 - 15028 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 15029 - 15034 [icbn.] 0. secs (0.u,0.s) -Chars 15039 - 15060 [pose~proof~Hev~as~Hev'.] 0. secs (0.u,0.s) +Chars 15039 - 15060 [(pose~proof~Hev~as~Hev').] 0. secs (0.u,0.s) Chars 15061 - 15073 [step~in~Hev.] 0. secs (0.u,0.s) -Chars 15078 - 15128 [dependent~induction~Heutt;~sub...] 0.017 secs (0.017u,0.s) +Chars 15078 - 15128 [(dependent~induction~Heutt;~su...] 0.024 secs (0.024u,0.s) Chars 15133 - 15134 [-] 0. secs (0.u,0.s) Chars 15135 - 15143 [simpobs.] 0.001 secs (0.001u,0.s) Chars 15144 - 15160 [auto~with~itree.] 0. secs (0.u,0.s) Chars 15165 - 15166 [-] 0. secs (0.u,0.s) -Chars 15167 - 15175 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15167 - 15175 [simpobs.] 0.002 secs (0.002u,0.s) Chars 15176 - 15188 [constructor.] 0. secs (0.u,0.s) -Chars 15189 - 15207 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 15214 - 15222 [inv~Hev.] 0. secs (0.u,0.s) +Chars 15189 - 15207 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 15214 - 15222 [(inv~Hev).] 0. secs (0.u,0.s) Chars 15228 - 15229 [-] 0. secs (0.u,0.s) -Chars 15230 - 15238 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15239 - 15247 [inv~Hev.] 0. secs (0.u,0.s) +Chars 15230 - 15238 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 15239 - 15247 [(inv~Hev).] 0. secs (0.u,0.s) Chars 15253 - 15254 [-] 0. secs (0.u,0.s) -Chars 15255 - 15263 [simpobs.] 0. secs (0.u,0.s) -Chars 15264 - 15272 [inv~Hev.] 0.004 secs (0.004u,0.s) -Chars 15279 - 15315 [eapply~IHHeutt;~try~apply~H0;~...] 0.001 secs (0.001u,0.s) +Chars 15255 - 15263 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15264 - 15272 [(inv~Hev).] 0.006 secs (0.006u,0.s) +Chars 15279 - 15315 [(eapply~IHHeutt;~try~apply~H0;...] 0.001 secs (0.001u,0.s) Chars 15322 - 15337 [now~step~in~H0.] 0. secs (0.u,0.s) Chars 15343 - 15344 [-] 0. secs (0.u,0.s) -Chars 15345 - 15353 [simpobs.] 0. secs (0.u,0.s) +Chars 15345 - 15353 [simpobs.] 0.001 secs (0.001u,0.s) Chars 15354 - 15366 [constructor.] 0. secs (0.u,0.s) Chars 15367 - 15383 [unstep~in~Heutt.] 0. secs (0.u,0.s) -Chars 15384 - 15413 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 15416 - 15420 [Qed.] 0.015 secs (0.014u,0.s) +Chars 15384 - 15413 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 15416 - 15420 [Qed.] 0.02 secs (0.02u,0.s) Chars 15424 - 15502 [Instance~proper_eventless~~{E1...] 0. secs (0.u,0.s) Chars 15505 - 15511 [Proof.] 0. secs (0.u,0.s) -Chars 15516 - 15535 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 15536 - 15554 [split;~intros~Hev.] 0. secs (0.u,0.s) +Chars 15516 - 15535 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 15536 - 15554 [(split;~intros~Hev).] 0. secs (0.u,0.s) Chars 15559 - 15560 [-] 0. secs (0.u,0.s) -Chars 15561 - 15578 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) +Chars 15561 - 15578 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) Chars 15579 - 15584 [auto.] 0. secs (0.u,0.s) Chars 15589 - 15590 [-] 0. secs (0.u,0.s) Chars 15591 - 15609 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 15610 - 15627 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) +Chars 15610 - 15627 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) Chars 15628 - 15633 [auto.] 0. secs (0.u,0.s) Chars 15636 - 15640 [Qed.] 0. secs (0.u,0.s) Chars 15644 - 15843 [Lemma~eutt_eventless~:~~~foral...] 0. secs (0.u,0.s) Chars 15846 - 15852 [Proof.] 0. secs (0.u,0.s) -Chars 15857 - 15876 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 15877 - 15895 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 15896 - 15903 [intros.] 0. secs (0.u,0.s) +Chars 15857 - 15876 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 15877 - 15895 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 15896 - 15903 [(intros).] 0. secs (0.u,0.s) Chars 15908 - 15919 [step~in~H0.] 0. secs (0.u,0.s) Chars 15920 - 15925 [icbn.] 0. secs (0.u,0.s) -Chars 15926 - 15955 [dependent~induction~H0;~auto.] 0.014 secs (0.014u,0.s) +Chars 15926 - 15955 [(dependent~induction~H0;~auto).] 0.019 secs (0.019u,0.s) Chars 15960 - 15961 [-] 0. secs (0.u,0.s) -Chars 15962 - 15970 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15962 - 15970 [simpobs.] 0.002 secs (0.002u,0.s) Chars 15971 - 15976 [eret.] 0. secs (0.u,0.s) Chars 15982 - 15983 [-] 0. secs (0.u,0.s) -Chars 15984 - 15992 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15984 - 15992 [simpobs.] 0.002 secs (0.002u,0.s) Chars 15999 - 16011 [constructor.] 0. secs (0.u,0.s) Chars 16020 - 16053 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) Chars 16054 - 16087 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 16094 - 16102 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 16110 - 16129 [assert~(t1~≈~m1).] 0. secs (0.u,0.s) +Chars 16094 - 16102 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 16110 - 16129 [(assert~(t1~≈~m1)).] 0. secs (0.u,0.s) Chars 16130 - 16131 [{] 0. secs (0.u,0.s) -Chars 16132 - 16144 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 16145 - 16162 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 16132 - 16144 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 16145 - 16162 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 16163 - 16175 [reflexivity.] 0. secs (0.u,0.s) Chars 16176 - 16177 [}] 0. secs (0.u,0.s) -Chars 16184 - 16203 [assert~(t2~≈~m2).] 0. secs (0.u,0.s) +Chars 16184 - 16203 [(assert~(t2~≈~m2)).] 0. secs (0.u,0.s) Chars 16204 - 16205 [{] 0. secs (0.u,0.s) -Chars 16206 - 16218 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 16219 - 16236 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 16206 - 16218 [(rewrite~Ht2).] 0. secs (0.u,0.s) +Chars 16219 - 16236 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 16237 - 16249 [reflexivity.] 0. secs (0.u,0.s) Chars 16250 - 16251 [}] 0. secs (0.u,0.s) -Chars 16258 - 16274 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 16258 - 16274 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 16281 - 16299 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 16305 - 16306 [-] 0. secs (0.u,0.s) Chars 16307 - 16315 [exfalso.] 0. secs (0.u,0.s) -Chars 16316 - 16335 [step~in~H;~simpobs.] 0.001 secs (0.001u,0.s) -Chars 16336 - 16342 [inv~H.] 0. secs (0.u,0.s) +Chars 16316 - 16335 [(step~in~H;~simpobs).] 0.002 secs (0.002u,0.s) +Chars 16336 - 16342 [(inv~H).] 0. secs (0.u,0.s) Chars 16347 - 16348 [-] 0. secs (0.u,0.s) -Chars 16349 - 16357 [simpobs.] 0. secs (0.u,0.s) +Chars 16349 - 16357 [simpobs.] 0.001 secs (0.001u,0.s) Chars 16358 - 16370 [constructor.] 0. secs (0.u,0.s) Chars 16377 - 16410 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) Chars 16411 - 16419 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 16427 - 16434 [sinv~H.] 0.014 secs (0.014u,0.s) +Chars 16427 - 16434 [(sinv~H).] 0.018 secs (0.018u,0.s) Chars 16442 - 16443 [+] 0. secs (0.u,0.s) -Chars 16444 - 16458 [simpobs;~easy.] 0.002 secs (0.002u,0.s) +Chars 16444 - 16458 [(simpobs;~easy).] 0.004 secs (0.003u,0.s) Chars 16467 - 16468 [+] 0. secs (0.u,0.s) -Chars 16469 - 16491 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 16492 - 16512 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 16469 - 16491 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16492 - 16512 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 16513 - 16518 [step.] 0. secs (0.u,0.s) -Chars 16526 - 16543 [rewrite~x,~<-~H1.] 0. secs (0.u,0.s) +Chars 16526 - 16543 [(rewrite~x,~<-~H1).] 0. secs (0.u,0.s) Chars 16544 - 16560 [now~constructor.] 0. secs (0.u,0.s) Chars 16566 - 16567 [-] 0. secs (0.u,0.s) -Chars 16568 - 16576 [simpobs.] 0. secs (0.u,0.s) +Chars 16568 - 16576 [simpobs.] 0.001 secs (0.001u,0.s) Chars 16577 - 16589 [constructor.] 0. secs (0.u,0.s) -Chars 16590 - 16612 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 16615 - 16619 [Qed.] 0.012 secs (0.012u,0.s) +Chars 16590 - 16612 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 16615 - 16619 [Qed.] 0.016 secs (0.015u,0.s) Chars 16623 - 16736 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) Chars 16739 - 16745 [Proof.] 0. secs (0.u,0.s) -Chars 16750 - 16759 [intros~R.] 0. secs (0.u,0.s) -Chars 16760 - 16778 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 16779 - 16786 [intros.] 0. secs (0.u,0.s) -Chars 16793 - 16800 [sinv~H.] 0.022 secs (0.022u,0.s) +Chars 16750 - 16759 [(intros~R).] 0. secs (0.u,0.s) +Chars 16760 - 16778 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 16779 - 16786 [(intros).] 0. secs (0.u,0.s) +Chars 16793 - 16800 [(sinv~H).] 0.031 secs (0.031u,0.s) Chars 16805 - 16806 [-] 0. secs (0.u,0.s) Chars 16807 - 16838 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) Chars 16839 - 16847 [simpobs.] 0. secs (0.u,0.s) -Chars 16855 - 16872 [rewrite~Ht~in~H0.] 0.001 secs (0.001u,0.s) -Chars 16873 - 16881 [sinv~H0.] 0. secs (0.u,0.s) +Chars 16855 - 16872 [(rewrite~Ht~in~H0).] 0.001 secs (0.001u,0.s) +Chars 16873 - 16881 [(sinv~H0).] 0.001 secs (0.001u,0.s) Chars 16886 - 16887 [-] 0. secs (0.u,0.s) Chars 16888 - 16893 [icbn.] 0. secs (0.u,0.s) Chars 16894 - 16902 [simpobs.] 0. secs (0.u,0.s) -Chars 16910 - 16920 [red~in~H0.] 0. secs (0.u,0.s) -Chars 16921 - 16949 [step~in~H0;~simpobs;~inv~H0.] 0.009 secs (0.009u,0.s) +Chars 16910 - 16920 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 16921 - 16949 [(step~in~H0;~simpobs;~inv~H0).] 0.012 secs (0.012u,0.s) Chars 16957 - 16969 [constructor.] 0. secs (0.u,0.s) -Chars 16976 - 16992 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.006 secs (0.006u,0.s) +Chars 16976 - 16992 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 16996 - 17000 [Qed.] 0.008 secs (0.008u,0.s) Chars 17004 - 17122 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) Chars 17125 - 17131 [Proof.] 0. secs (0.u,0.s) -Chars 17136 - 17149 [intros~R~t~r.] 0. secs (0.u,0.s) -Chars 17154 - 17161 [intros.] 0. secs (0.u,0.s) -Chars 17162 - 17181 [induction~H0;~auto.] 0. secs (0.u,0.s) -Chars 17182 - 17198 [rewrite~H0~in~H.] 0. secs (0.u,0.s) -Chars 17203 - 17210 [sinv~H.] 0. secs (0.u,0.s) -Chars 17213 - 17217 [Qed.] 0. secs (0.u,0.s) +Chars 17136 - 17149 [(intros~R~t~r).] 0. secs (0.u,0.s) +Chars 17154 - 17161 [(intros).] 0. secs (0.u,0.s) +Chars 17162 - 17181 [(induction~H0;~auto).] 0. secs (0.u,0.s) +Chars 17182 - 17198 [(rewrite~H0~in~H).] 0. secs (0.u,0.s) +Chars 17203 - 17210 [(sinv~H).] 0. secs (0.u,0.s) +Chars 17213 - 17217 [Qed.] 0.001 secs (0.001u,0.s) Chars 17221 - 17416 [Lemma~eqitE_imp_eutt~:~~~foral...] 0. secs (0.u,0.s) Chars 17419 - 17425 [Proof.] 0. secs (0.u,0.s) -Chars 17430 - 17449 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 17430 - 17449 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) Chars 17450 - 17468 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 17473 - 17490 [intros~t1~t2~Heq.] 0. secs (0.u,0.s) +Chars 17473 - 17490 [(intros~t1~t2~Heq).] 0. secs (0.u,0.s) Chars 17491 - 17496 [icbn.] 0. secs (0.u,0.s) Chars 17497 - 17509 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 17515 - 17546 [induction~Heq;~auto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 17549 - 17553 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17515 - 17546 [(induction~Heq;~auto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 17549 - 17553 [Qed.] 0.004 secs (0.004u,0.s) Chars 17557 - 17807 [Lemma~eqitE_imp_eventlessl~:~~...] 0. secs (0.u,0.s) Chars 17810 - 17816 [Proof.] 0. secs (0.u,0.s) -Chars 17821 - 17843 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 17821 - 17843 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) Chars 17844 - 17862 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 17867 - 17874 [intros.] 0. secs (0.u,0.s) +Chars 17867 - 17874 [(intros).] 0. secs (0.u,0.s) Chars 17875 - 17885 [step~in~H.] 0. secs (0.u,0.s) Chars 17891 - 17896 [icbn.] 0. secs (0.u,0.s) -Chars 17897 - 17927 [induction~H;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 17897 - 17927 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 17932 - 17944 [constructor.] 0. secs (0.u,0.s) -Chars 17945 - 17985 [apply~(CIH~t0~(ITreeDefinition...] 0. secs (0.u,0.s) +Chars 17945 - 17985 [(apply~(CIH~t0~(ITreeDefinitio...] 0. secs (0.u,0.s) Chars 17986 - 17995 [now~step.] 0. secs (0.u,0.s) -Chars 17999 - 18003 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17999 - 18003 [Qed.] 0.002 secs (0.002u,0.s) Chars 18007 - 18257 [Lemma~eqitE_imp_eventlessr~:~~...] 0. secs (0.u,0.s) Chars 18260 - 18266 [Proof.] 0. secs (0.u,0.s) -Chars 18271 - 18293 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 18271 - 18293 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) Chars 18294 - 18312 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18317 - 18324 [intros.] 0. secs (0.u,0.s) +Chars 18317 - 18324 [(intros).] 0. secs (0.u,0.s) Chars 18325 - 18335 [step~in~H.] 0. secs (0.u,0.s) Chars 18340 - 18345 [icbn.] 0. secs (0.u,0.s) -Chars 18346 - 18376 [induction~H;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 18346 - 18376 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 18381 - 18393 [constructor.] 0. secs (0.u,0.s) -Chars 18394 - 18434 [apply~(CIH~(ITreeDefinition.go...] 0. secs (0.u,0.s) +Chars 18394 - 18434 [(apply~(CIH~(ITreeDefinition.g...] 0. secs (0.u,0.s) Chars 18435 - 18444 [now~step.] 0. secs (0.u,0.s) -Chars 18448 - 18452 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18448 - 18452 [Qed.] 0.002 secs (0.002u,0.s) Chars 18456 - 18553 [Lemma~eventless_spin~:~~~foral...] 0. secs (0.u,0.s) Chars 18556 - 18562 [Proof.] 0. secs (0.u,0.s) -Chars 18567 - 18579 [intros~E1~R.] 0. secs (0.u,0.s) +Chars 18567 - 18579 [(intros~E1~R).] 0. secs (0.u,0.s) Chars 18580 - 18598 [coinduction~c~CIH.] 0. secs (0.u,0.s) Chars 18599 - 18604 [icbn.] 0. secs (0.u,0.s) -Chars 18605 - 18609 [cbn.] 0. secs (0.u,0.s) +Chars 18605 - 18609 [(cbn).] 0. secs (0.u,0.s) Chars 18610 - 18622 [constructor.] 0. secs (0.u,0.s) Chars 18627 - 18632 [auto.] 0. secs (0.u,0.s) Chars 18635 - 18639 [Qed.] 0. secs (0.u,0.s) @@ -493,73 +493,73 @@ Chars 18643 - 18874 [CoFixpoint~remove_events'~{E1~...] 0. secs (0.u,0.s) Chars 18878 - 18977 [Definition~remove_events~{E1}~...] 0. secs (0.u,0.s) Chars 18981 - 19177 [Lemma~remove_events_eventless_...] 0. secs (0.u,0.s) Chars 19180 - 19186 [Proof.] 0. secs (0.u,0.s) -Chars 19191 - 19206 [intros~E1~E2~A.] 0. secs (0.u,0.s) +Chars 19191 - 19206 [(intros~E1~E2~A).] 0. secs (0.u,0.s) Chars 19207 - 19225 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19226 - 19233 [intros.] 0. secs (0.u,0.s) +Chars 19226 - 19233 [(intros).] 0. secs (0.u,0.s) Chars 19238 - 19243 [icbn.] 0. secs (0.u,0.s) -Chars 19244 - 19251 [sinv~H.] 0.005 secs (0.004u,0.s) +Chars 19244 - 19251 [(sinv~H).] 0.006 secs (0.005u,0.s) Chars 19256 - 19257 [-] 0. secs (0.u,0.s) -Chars 19258 - 19262 [cbn.] 0. secs (0.u,0.s) -Chars 19263 - 19284 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 19285 - 19299 [rewrite~<-~H1.] 0. secs (0.u,0.s) -Chars 19300 - 19304 [cbn.] 0. secs (0.u,0.s) +Chars 19258 - 19262 [(cbn).] 0. secs (0.u,0.s) +Chars 19263 - 19284 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 19285 - 19299 [(rewrite~<-~H1).] 0. secs (0.u,0.s) +Chars 19300 - 19304 [(cbn).] 0. secs (0.u,0.s) Chars 19305 - 19321 [auto~with~itree.] 0. secs (0.u,0.s) Chars 19326 - 19327 [-] 0. secs (0.u,0.s) -Chars 19328 - 19349 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 19350 - 19364 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 19365 - 19369 [cbn.] 0. secs (0.u,0.s) +Chars 19328 - 19349 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 19350 - 19364 [(rewrite~<-~H0).] 0. secs (0.u,0.s) +Chars 19365 - 19369 [(cbn).] 0. secs (0.u,0.s) Chars 19370 - 19382 [constructor.] 0. secs (0.u,0.s) -Chars 19383 - 19393 [apply~CIH.] 0. secs (0.u,0.s) +Chars 19383 - 19393 [(apply~CIH).] 0. secs (0.u,0.s) Chars 19400 - 19405 [auto.] 0. secs (0.u,0.s) -Chars 19408 - 19412 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19408 - 19412 [Qed.] 0.003 secs (0.003u,0.s) Chars 19416 - 19590 [Lemma~remove_events_eventless~...] 0. secs (0.u,0.s) Chars 19593 - 19599 [Proof.] 0. secs (0.u,0.s) -Chars 19604 - 19619 [intros~E1~E2~A.] 0. secs (0.u,0.s) +Chars 19604 - 19619 [(intros~E1~E2~A).] 0. secs (0.u,0.s) Chars 19620 - 19638 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19639 - 19646 [intros.] 0. secs (0.u,0.s) +Chars 19639 - 19646 [(intros).] 0. secs (0.u,0.s) Chars 19651 - 19656 [icbn.] 0. secs (0.u,0.s) -Chars 19657 - 19678 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 19679 - 19710 [destruct~(observe~t)~eqn:Heq.] 0. secs (0.u,0.s) +Chars 19657 - 19678 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 19679 - 19710 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) Chars 19715 - 19716 [-] 0. secs (0.u,0.s) -Chars 19717 - 19721 [cbn.] 0. secs (0.u,0.s) +Chars 19717 - 19721 [(cbn).] 0. secs (0.u,0.s) Chars 19722 - 19734 [constructor.] 0. secs (0.u,0.s) Chars 19739 - 19740 [-] 0. secs (0.u,0.s) -Chars 19741 - 19745 [cbn.] 0. secs (0.u,0.s) +Chars 19741 - 19745 [(cbn).] 0. secs (0.u,0.s) Chars 19746 - 19758 [constructor.] 0. secs (0.u,0.s) -Chars 19759 - 19769 [apply~CIH.] 0. secs (0.u,0.s) +Chars 19759 - 19769 [(apply~CIH).] 0. secs (0.u,0.s) Chars 19774 - 19775 [-] 0. secs (0.u,0.s) -Chars 19776 - 19780 [cbn.] 0. secs (0.u,0.s) +Chars 19776 - 19780 [(cbn).] 0. secs (0.u,0.s) Chars 19781 - 19793 [constructor.] 0. secs (0.u,0.s) -Chars 19794 - 19804 [do~2~step.] 0. secs (0.u,0.s) -Chars 19805 - 19826 [apply~eventless_spin.] 0. secs (0.u,0.s) +Chars 19794 - 19804 [(do~2~step).] 0. secs (0.u,0.s) +Chars 19805 - 19826 [(apply~eventless_spin).] 0. secs (0.u,0.s) Chars 19830 - 19834 [Qed.] 0.001 secs (0.001u,0.s) Chars 19838 - 19913 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) Chars 19916 - 19922 [Proof.] 0. secs (0.u,0.s) -Chars 19927 - 19936 [intros~A.] 0. secs (0.u,0.s) +Chars 19927 - 19936 [(intros~A).] 0. secs (0.u,0.s) Chars 19937 - 19955 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19956 - 19963 [intros.] 0. secs (0.u,0.s) +Chars 19956 - 19963 [(intros).] 0. secs (0.u,0.s) Chars 19968 - 19973 [icbn.] 0. secs (0.u,0.s) -Chars 19974 - 20012 [destruct~(observe~d);~auto~wit...] 0. secs (0.u,0.s) -Chars 20017 - 20028 [destruct~e.] 0. secs (0.u,0.s) -Chars 20031 - 20035 [Qed.] 0. secs (0.u,0.s) +Chars 19974 - 20012 [(destruct~(observe~d);~auto~wi...] 0. secs (0.u,0.s) +Chars 20017 - 20028 [(destruct~e).] 0. secs (0.u,0.s) +Chars 20031 - 20035 [Qed.] 0.001 secs (0.001u,0.s) Chars 20039 - 20238 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) Chars 20241 - 20247 [Proof.] 0. secs (0.u,0.s) -Chars 20252 - 20274 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 20280 - 20298 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 20299 - 20306 [intros.] 0. secs (0.u,0.s) +Chars 20252 - 20274 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 20280 - 20298 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 20299 - 20306 [(intros).] 0. secs (0.u,0.s) Chars 20307 - 20312 [icbn.] 0. secs (0.u,0.s) -Chars 20318 - 20325 [intros.] 0. secs (0.u,0.s) +Chars 20318 - 20325 [(intros).] 0. secs (0.u,0.s) Chars 20330 - 20340 [step~in~H.] 0. secs (0.u,0.s) -Chars 20346 - 20372 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 20378 - 20404 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 20346 - 20372 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 20378 - 20404 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) Chars 20410 - 20437 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 20438 - 20447 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 20453 - 20512 [induction~H;~intros~t1'~t2'~He...] 0.016 secs (0.016u,0.s) +Chars 20438 - 20447 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 20453 - 20512 [(induction~H;~intros~t1'~t2'~H...] 0.022 secs (0.022u,0.s) Chars 20517 - 20518 [-] 0. secs (0.u,0.s) -Chars 20519 - 20542 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) +Chars 20519 - 20542 [(inv~Heqot1;~inv~Heqot2).] 0.006 secs (0.006u,0.s) Chars 20543 - 20552 [now~step.] 0.001 secs (0.001u,0.s) Chars 20559 - 20560 [-] 0. secs (0.u,0.s) -Chars 20561 - 20588 [inv~H;~inv~Heqot1;~simpobs.] 0.031 secs (0.031u,0.s) +Chars 20561 - 20588 [(inv~H;~inv~Heqot1;~simpobs).] 0.043 secs (0.042u,0.s) Chars 20596 - 20597 [+] 0. secs (0.u,0.s) Chars 20598 - 20610 [constructor.] 0. secs (0.u,0.s) Chars 20611 - 20630 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) @@ -569,7 +569,7 @@ Chars 20653 - 20672 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) Chars 20679 - 20680 [+] 0. secs (0.u,0.s) Chars 20681 - 20695 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 20701 - 20702 [-] 0. secs (0.u,0.s) -Chars 20703 - 20730 [inv~H;~inv~Heqot2;~simpobs.] 0.03 secs (0.03u,0.s) +Chars 20703 - 20730 [(inv~H;~inv~Heqot2;~simpobs).] 0.041 secs (0.041u,0.s) Chars 20738 - 20739 [+] 0. secs (0.u,0.s) Chars 20740 - 20752 [constructor.] 0. secs (0.u,0.s) Chars 20753 - 20772 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) @@ -578,274 +578,274 @@ Chars 20782 - 20796 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 20804 - 20805 [+] 0. secs (0.u,0.s) Chars 20806 - 20818 [constructor.] 0. secs (0.u,0.s) Chars 20819 - 20838 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20842 - 20846 [Qed.] 0.009 secs (0.009u,0.s) +Chars 20842 - 20846 [Qed.] 0.013 secs (0.013u,0.s) Chars 20852 - 21107 [Lemma~inv_remove_events~:~~~fo...] 0. secs (0.u,0.s) Chars 21110 - 21116 [Proof.] 0. secs (0.u,0.s) -Chars 21121 - 21136 [intros~E1~E2~R.] 0. secs (0.u,0.s) -Chars 21137 - 21155 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 21160 - 21189 [intros~t1~t2~Hev1~Hev2~Heutt.] 0. secs (0.u,0.s) +Chars 21121 - 21136 [(intros~E1~E2~R).] 0. secs (0.u,0.s) +Chars 21137 - 21155 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 21160 - 21189 [(intros~t1~t2~Hev1~Hev2~Heutt).] 0. secs (0.u,0.s) Chars 21190 - 21195 [icbn.] 0. secs (0.u,0.s) Chars 21200 - 21214 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 21215 - 21248 [dependent~induction~Heutt;~subst.] 0.025 secs (0.024u,0.s) +Chars 21215 - 21248 [(dependent~induction~Heutt;~su...] 0.034 secs (0.033u,0.s) Chars 21253 - 21254 [-] 0. secs (0.u,0.s) -Chars 21255 - 21285 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) -Chars 21292 - 21355 [destruct~(observe~t1);~destruc...] 0.003 secs (0.003u,0.s) +Chars 21255 - 21285 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) +Chars 21292 - 21355 [(destruct~(observe~t1);~destru...] 0.003 secs (0.003u,0.s) Chars 21362 - 21374 [constructor.] 0. secs (0.u,0.s) -Chars 21375 - 21384 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 21385 - 21399 [inv~x0;~inv~x.] 0.001 secs (0.001u,0.s) +Chars 21375 - 21384 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 21385 - 21399 [(inv~x0;~inv~x).] 0.001 secs (0.001u,0.s) Chars 21405 - 21406 [-] 0. secs (0.u,0.s) -Chars 21407 - 21437 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) -Chars 21444 - 21529 [destruct~(observe~t1)~eqn:Heq1...] 0.003 secs (0.003u,0.s) +Chars 21407 - 21437 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) +Chars 21444 - 21529 [(destruct~(observe~t1)~eqn:Heq...] 0.004 secs (0.004u,0.s) Chars 21536 - 21537 [+] 0. secs (0.u,0.s) -Chars 21538 - 21547 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 21538 - 21547 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 21548 - 21560 [constructor.] 0. secs (0.u,0.s) -Chars 21569 - 21576 [inv~x0.] 0.002 secs (0.002u,0.s) -Chars 21577 - 21583 [inv~x.] 0.002 secs (0.002u,0.s) -Chars 21584 - 21591 [intros.] 0. secs (0.u,0.s) -Chars 21602 - 21618 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 21569 - 21576 [(inv~x0).] 0.003 secs (0.003u,0.s) +Chars 21577 - 21583 [(inv~x).] 0.003 secs (0.003u,0.s) +Chars 21584 - 21591 [(intros).] 0. secs (0.u,0.s) +Chars 21602 - 21618 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 21627 - 21628 [*] 0. secs (0.u,0.s) Chars 21629 - 21662 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 21663 - 21683 [rewrite~Heq1~in~Ht1.] 0. secs (0.u,0.s) -Chars 21694 - 21712 [assert~(t~≈~t1).] 0. secs (0.u,0.s) +Chars 21663 - 21683 [(rewrite~Heq1~in~Ht1).] 0. secs (0.u,0.s) +Chars 21694 - 21712 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) Chars 21723 - 21724 [{] 0. secs (0.u,0.s) -Chars 21725 - 21737 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 21738 - 21755 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 21725 - 21737 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) +Chars 21738 - 21755 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 21756 - 21768 [reflexivity.] 0. secs (0.u,0.s) Chars 21769 - 21770 [}] 0. secs (0.u,0.s) -Chars 21781 - 21791 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 21781 - 21791 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 21792 - 21797 [auto.] 0. secs (0.u,0.s) Chars 21806 - 21807 [*] 0. secs (0.u,0.s) Chars 21808 - 21841 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 21842 - 21862 [rewrite~Heq2~in~Ht2.] 0. secs (0.u,0.s) -Chars 21873 - 21892 [assert~(t0~≈~t2).] 0. secs (0.u,0.s) +Chars 21842 - 21862 [(rewrite~Heq2~in~Ht2).] 0. secs (0.u,0.s) +Chars 21873 - 21892 [(assert~(t0~≈~t2)).] 0. secs (0.u,0.s) Chars 21903 - 21904 [{] 0. secs (0.u,0.s) -Chars 21905 - 21917 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 21918 - 21935 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 21905 - 21917 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) +Chars 21918 - 21935 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 21936 - 21948 [reflexivity.] 0. secs (0.u,0.s) Chars 21949 - 21950 [}] 0. secs (0.u,0.s) -Chars 21961 - 21971 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 21961 - 21971 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 21972 - 21977 [auto.] 0. secs (0.u,0.s) Chars 21984 - 21985 [+] 0. secs (0.u,0.s) -Chars 21986 - 21996 [sinv~Hev2.] 0.009 secs (0.009u,0.s) +Chars 21986 - 21996 [(sinv~Hev2).] 0.016 secs (0.016u,0.s) Chars 22005 - 22006 [*] 0. secs (0.u,0.s) -Chars 22007 - 22026 [rewrite~Heq2~in~H0.] 0. secs (0.u,0.s) +Chars 22007 - 22026 [(rewrite~Heq2~in~H0).] 0. secs (0.u,0.s) Chars 22027 - 22040 [discriminate.] 0. secs (0.u,0.s) Chars 22049 - 22050 [*] 0. secs (0.u,0.s) -Chars 22051 - 22069 [rewrite~Heq2~in~H.] 0. secs (0.u,0.s) +Chars 22051 - 22069 [(rewrite~Heq2~in~H).] 0. secs (0.u,0.s) Chars 22070 - 22083 [discriminate.] 0. secs (0.u,0.s) Chars 22090 - 22091 [+] 0. secs (0.u,0.s) -Chars 22092 - 22102 [sinv~Hev1.] 0.01 secs (0.01u,0.s) +Chars 22092 - 22102 [(sinv~Hev1).] 0.013 secs (0.013u,0.s) Chars 22111 - 22112 [*] 0. secs (0.u,0.s) -Chars 22113 - 22132 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) +Chars 22113 - 22132 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) Chars 22133 - 22146 [discriminate.] 0. secs (0.u,0.s) Chars 22155 - 22156 [*] 0. secs (0.u,0.s) -Chars 22157 - 22175 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) +Chars 22157 - 22175 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) Chars 22176 - 22189 [discriminate.] 0. secs (0.u,0.s) Chars 22196 - 22197 [+] 0. secs (0.u,0.s) -Chars 22198 - 22208 [sinv~Hev1.] 0.009 secs (0.009u,0.s) +Chars 22198 - 22208 [(sinv~Hev1).] 0.013 secs (0.013u,0.s) Chars 22217 - 22218 [*] 0. secs (0.u,0.s) -Chars 22219 - 22238 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) +Chars 22219 - 22238 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) Chars 22239 - 22252 [discriminate.] 0. secs (0.u,0.s) Chars 22261 - 22262 [*] 0. secs (0.u,0.s) -Chars 22263 - 22281 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) +Chars 22263 - 22281 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) Chars 22282 - 22295 [discriminate.] 0. secs (0.u,0.s) Chars 22300 - 22301 [-] 0. secs (0.u,0.s) -Chars 22302 - 22328 [unfold~remove_events~in~*.] 0. secs (0.u,0.s) -Chars 22329 - 22376 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) +Chars 22302 - 22328 [(unfold~remove_events~in~*).] 0. secs (0.u,0.s) +Chars 22329 - 22376 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) Chars 22381 - 22382 [-] 0. secs (0.u,0.s) -Chars 22383 - 22409 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) -Chars 22410 - 22470 [destruct~(observe~t1)~eqn:Heq;...] 0.001 secs (0.001u,0.s) +Chars 22383 - 22409 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) +Chars 22410 - 22470 [(destruct~(observe~t1)~eqn:Heq...] 0.001 secs (0.001u,0.s) Chars 22477 - 22478 [+] 0. secs (0.u,0.s) Chars 22479 - 22496 [injection~x~as~x.] 0. secs (0.u,0.s) Chars 22497 - 22509 [constructor.] 0. secs (0.u,0.s) -Chars 22518 - 22538 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 22518 - 22538 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) Chars 22547 - 22548 [*] 0. secs (0.u,0.s) Chars 22549 - 22582 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22583 - 22602 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) -Chars 22613 - 22631 [assert~(t~≈~t1).] 0. secs (0.u,0.s) +Chars 22583 - 22602 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) +Chars 22613 - 22631 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) Chars 22642 - 22643 [{] 0. secs (0.u,0.s) -Chars 22644 - 22656 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 22657 - 22674 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 22644 - 22656 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) +Chars 22657 - 22674 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 22675 - 22687 [reflexivity.] 0. secs (0.u,0.s) Chars 22688 - 22689 [}] 0. secs (0.u,0.s) -Chars 22701 - 22712 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 22701 - 22712 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 22713 - 22718 [auto.] 0. secs (0.u,0.s) Chars 22727 - 22728 [*] 0. secs (0.u,0.s) -Chars 22729 - 22750 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 22751 - 22761 [rewrite~x.] 0. secs (0.u,0.s) +Chars 22729 - 22750 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 22751 - 22761 [(rewrite~x).] 0. secs (0.u,0.s) Chars 22762 - 22767 [auto.] 0. secs (0.u,0.s) Chars 22774 - 22775 [+] 0. secs (0.u,0.s) Chars 22776 - 22784 [exfalso.] 0. secs (0.u,0.s) Chars 22785 - 22818 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22819 - 22838 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) -Chars 22847 - 22867 [rewrite~Ht1~in~Hev1.] 0. secs (0.u,0.s) -Chars 22868 - 22878 [sinv~Hev1.] 0. secs (0.u,0.s) +Chars 22819 - 22838 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) +Chars 22847 - 22867 [(rewrite~Ht1~in~Hev1).] 0.002 secs (0.002u,0.s) +Chars 22868 - 22878 [(sinv~Hev1).] 0. secs (0.u,0.s) Chars 22883 - 22884 [-] 0. secs (0.u,0.s) -Chars 22885 - 22911 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) -Chars 22912 - 22972 [destruct~(observe~t2)~eqn:Heq;...] 0.001 secs (0.001u,0.s) +Chars 22885 - 22911 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) +Chars 22912 - 22972 [(destruct~(observe~t2)~eqn:Heq...] 0.002 secs (0.002u,0.s) Chars 22979 - 22980 [+] 0. secs (0.u,0.s) Chars 22981 - 22998 [injection~x~as~x.] 0. secs (0.u,0.s) Chars 22999 - 23011 [constructor.] 0. secs (0.u,0.s) -Chars 23020 - 23040 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 23020 - 23040 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) Chars 23049 - 23050 [*] 0. secs (0.u,0.s) Chars 23051 - 23084 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 23085 - 23104 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) -Chars 23115 - 23133 [assert~(t~≈~t2).] 0. secs (0.u,0.s) +Chars 23085 - 23104 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) +Chars 23115 - 23133 [(assert~(t~≈~t2)).] 0. secs (0.u,0.s) Chars 23144 - 23145 [{] 0. secs (0.u,0.s) -Chars 23146 - 23158 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 23159 - 23176 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 23146 - 23158 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) +Chars 23159 - 23176 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 23177 - 23189 [reflexivity.] 0. secs (0.u,0.s) Chars 23190 - 23191 [}] 0. secs (0.u,0.s) -Chars 23202 - 23212 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 23202 - 23212 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 23213 - 23218 [auto.] 0. secs (0.u,0.s) Chars 23227 - 23228 [*] 0. secs (0.u,0.s) -Chars 23229 - 23250 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 23251 - 23261 [rewrite~x.] 0. secs (0.u,0.s) +Chars 23229 - 23250 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 23251 - 23261 [(rewrite~x).] 0. secs (0.u,0.s) Chars 23262 - 23267 [auto.] 0. secs (0.u,0.s) Chars 23274 - 23275 [+] 0. secs (0.u,0.s) Chars 23276 - 23284 [exfalso.] 0. secs (0.u,0.s) Chars 23285 - 23318 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 23319 - 23338 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) -Chars 23347 - 23367 [rewrite~Ht2~in~Hev2.] 0. secs (0.u,0.s) -Chars 23368 - 23378 [sinv~Hev2.] 0. secs (0.u,0.s) -Chars 23381 - 23385 [Qed.] 0.034 secs (0.034u,0.s) +Chars 23319 - 23338 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) +Chars 23347 - 23367 [(rewrite~Ht2~in~Hev2).] 0.001 secs (0.001u,0.s) +Chars 23368 - 23378 [(sinv~Hev2).] 0. secs (0.u,0.s) +Chars 23381 - 23385 [Qed.] 0.043 secs (0.043u,0.s) Chars 23389 - 23698 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) Chars 23701 - 23707 [Proof.] 0. secs (0.u,0.s) -Chars 23712 - 23740 [intros~E1~E2~E3~E4~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 23741 - 23759 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 23760 - 23767 [intros.] 0. secs (0.u,0.s) +Chars 23712 - 23740 [(intros~E1~E2~E3~E4~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 23741 - 23759 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 23760 - 23767 [(intros).] 0. secs (0.u,0.s) Chars 23772 - 23782 [step~in~H.] 0. secs (0.u,0.s) Chars 23783 - 23788 [icbn.] 0. secs (0.u,0.s) -Chars 23789 - 23810 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 23815 - 23849 [induction~H;~cbn;~auto~with~it...] 0.002 secs (0.002u,0.s) +Chars 23789 - 23810 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 23815 - 23849 [(induction~H;~cbn;~auto~with~i...] 0.006 secs (0.006u,0.s) Chars 23854 - 23866 [constructor.] 0. secs (0.u,0.s) -Chars 23867 - 23883 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 23867 - 23883 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 23886 - 23890 [Qed.] 0.002 secs (0.002u,0.s) Chars 23894 - 24093 [Lemma~eqitE_trans~:~~~forall~(...] 0. secs (0.u,0.s) Chars 24096 - 24102 [Proof.] 0. secs (0.u,0.s) -Chars 24107 - 24144 [intros~E1~E2~E3~R~t1~t2~t3~Ht1...] 0. secs (0.u,0.s) -Chars 24149 - 24177 [assert~(Ht1~:~eventless~t1).] 0. secs (0.u,0.s) +Chars 24107 - 24144 [(intros~E1~E2~E3~R~t1~t2~t3~Ht...] 0. secs (0.u,0.s) +Chars 24149 - 24177 [(assert~(Ht1~:~eventless~t1)).] 0. secs (0.u,0.s) Chars 24182 - 24183 [{] 0. secs (0.u,0.s) -Chars 24184 - 24219 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) +Chars 24184 - 24219 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) Chars 24220 - 24221 [}] 0. secs (0.u,0.s) -Chars 24226 - 24254 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) +Chars 24226 - 24254 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) Chars 24259 - 24260 [{] 0. secs (0.u,0.s) -Chars 24261 - 24296 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) +Chars 24261 - 24296 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) Chars 24297 - 24298 [}] 0. secs (0.u,0.s) -Chars 24303 - 24331 [assert~(Ht3~:~eventless~t3).] 0. secs (0.u,0.s) +Chars 24303 - 24331 [(assert~(Ht3~:~eventless~t3)).] 0. secs (0.u,0.s) Chars 24336 - 24337 [{] 0. secs (0.u,0.s) -Chars 24338 - 24373 [eapply~eqitE_imp_eventlessr;~e...] 0. secs (0.u,0.s) +Chars 24338 - 24373 [(eapply~eqitE_imp_eventlessr;~...] 0. secs (0.u,0.s) Chars 24374 - 24375 [}] 0. secs (0.u,0.s) -Chars 24380 - 24410 [apply~inv_remove_events;~auto.] 0. secs (0.u,0.s) -Chars 24415 - 24471 [assert~(remove_events~t1~≈~@re...] 0. secs (0.u,0.s) +Chars 24380 - 24410 [(apply~inv_remove_events;~auto).] 0. secs (0.u,0.s) +Chars 24415 - 24471 [(assert~(remove_events~t1~≈~@r...] 0. secs (0.u,0.s) Chars 24476 - 24477 [{] 0. secs (0.u,0.s) -Chars 24484 - 24505 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) -Chars 24506 - 24532 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) +Chars 24484 - 24505 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) +Chars 24506 - 24532 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) Chars 24533 - 24538 [auto.] 0. secs (0.u,0.s) Chars 24543 - 24544 [}] 0. secs (0.u,0.s) -Chars 24549 - 24605 [assert~(remove_events~t2~≈~@re...] 0. secs (0.u,0.s) +Chars 24549 - 24605 [(assert~(remove_events~t2~≈~@r...] 0. secs (0.u,0.s) Chars 24610 - 24611 [{] 0. secs (0.u,0.s) -Chars 24618 - 24639 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) -Chars 24640 - 24666 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) +Chars 24618 - 24639 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) +Chars 24640 - 24666 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) Chars 24667 - 24672 [auto.] 0. secs (0.u,0.s) Chars 24677 - 24678 [}] 0. secs (0.u,0.s) -Chars 24683 - 24693 [rewrite~H.] 0. secs (0.u,0.s) +Chars 24683 - 24693 [(rewrite~H).] 0. secs (0.u,0.s) Chars 24694 - 24699 [auto.] 0. secs (0.u,0.s) -Chars 24702 - 24706 [Qed.] 0. secs (0.u,0.s) +Chars 24702 - 24706 [Qed.] 0.001 secs (0.001u,0.s) Chars 24710 - 24870 [Lemma~equivE_sym~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 24873 - 24879 [Proof.] 0. secs (0.u,0.s) -Chars 24884 - 24899 [intros~E1~E2~R.] 0. secs (0.u,0.s) -Chars 24900 - 24918 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 24919 - 24926 [intros.] 0. secs (0.u,0.s) +Chars 24884 - 24899 [(intros~E1~E2~R).] 0. secs (0.u,0.s) +Chars 24900 - 24918 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 24919 - 24926 [(intros).] 0. secs (0.u,0.s) Chars 24931 - 24941 [step~in~H.] 0. secs (0.u,0.s) Chars 24942 - 24947 [icbn.] 0. secs (0.u,0.s) -Chars 24953 - 24983 [induction~H;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 24986 - 24990 [Qed.] 0.001 secs (0.001u,0.s) +Chars 24953 - 24983 [(induction~H;~eauto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 24986 - 24990 [Qed.] 0.002 secs (0.002u,0.s) Chars 24995 - 25106 [Instance~proper_eutt_equivE_im...] 0. secs (0.u,0.s) Chars 25109 - 25115 [Proof.] 0. secs (0.u,0.s) -Chars 25120 - 25149 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) +Chars 25120 - 25149 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) Chars 25150 - 25156 [intro.] 0. secs (0.u,0.s) -Chars 25161 - 25200 [apply~eqitE_imp_eventlessl~in~...] 0. secs (0.u,0.s) -Chars 25205 - 25244 [apply~eqitE_imp_eventlessr~in~...] 0. secs (0.u,0.s) -Chars 25249 - 25277 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) +Chars 25161 - 25200 [(apply~eqitE_imp_eventlessl~in...] 0. secs (0.u,0.s) +Chars 25205 - 25244 [(apply~eqitE_imp_eventlessr~in...] 0. secs (0.u,0.s) +Chars 25249 - 25277 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) Chars 25282 - 25283 [{] 0. secs (0.u,0.s) -Chars 25284 - 25300 [rewrite~<-~Ht12.] 0.001 secs (0.001u,0.s) +Chars 25284 - 25300 [(rewrite~<-~Ht12).] 0.001 secs (0.001u,0.s) Chars 25301 - 25306 [auto.] 0. secs (0.u,0.s) Chars 25307 - 25308 [}] 0. secs (0.u,0.s) -Chars 25313 - 25341 [assert~(Ht4~:~eventless~t4).] 0. secs (0.u,0.s) +Chars 25313 - 25341 [(assert~(Ht4~:~eventless~t4)).] 0. secs (0.u,0.s) Chars 25346 - 25347 [{] 0. secs (0.u,0.s) -Chars 25348 - 25364 [rewrite~<-~Ht34.] 0.001 secs (0.001u,0.s) +Chars 25348 - 25364 [(rewrite~<-~Ht34).] 0.001 secs (0.001u,0.s) Chars 25365 - 25370 [auto.] 0. secs (0.u,0.s) Chars 25371 - 25372 [}] 0. secs (0.u,0.s) -Chars 25377 - 25411 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) +Chars 25377 - 25411 [(apply~eqitE_trans~with~(t2~:=...] 0. secs (0.u,0.s) Chars 25416 - 25417 [-] 0. secs (0.u,0.s) Chars 25418 - 25435 [symmetry~in~Ht12.] 0. secs (0.u,0.s) -Chars 25436 - 25440 [red.] 0. secs (0.u,0.s) -Chars 25441 - 25468 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) +Chars 25436 - 25440 [(red).] 0. secs (0.u,0.s) +Chars 25441 - 25468 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) Chars 25473 - 25474 [-] 0. secs (0.u,0.s) -Chars 25475 - 25515 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) -Chars 25522 - 25549 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) -Chars 25552 - 25556 [Qed.] 0. secs (0.u,0.s) +Chars 25475 - 25515 [(apply~eqitE_trans~with~(t2~:=...] 0.001 secs (0.001u,0.s) +Chars 25522 - 25549 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) +Chars 25552 - 25556 [Qed.] 0.001 secs (0.001u,0.s) Chars 25560 - 25662 [Instance~proper_eutt_equivE~~{...] 0. secs (0.u,0.s) Chars 25665 - 25671 [Proof.] 0. secs (0.u,0.s) -Chars 25676 - 25690 [split;~intros.] 0. secs (0.u,0.s) +Chars 25676 - 25690 [(split;~intros).] 0. secs (0.u,0.s) Chars 25695 - 25696 [-] 0. secs (0.u,0.s) -Chars 25697 - 25710 [rewrite~<-~H.] 0.006 secs (0.006u,0.s) -Chars 25711 - 25725 [rewrite~<-~H0.] 0.009 secs (0.009u,0.s) +Chars 25697 - 25710 [(rewrite~<-~H).] 0.008 secs (0.008u,0.s) +Chars 25711 - 25725 [(rewrite~<-~H0).] 0.01 secs (0.01u,0.s) Chars 25726 - 25731 [auto.] 0. secs (0.u,0.s) Chars 25736 - 25737 [-] 0. secs (0.u,0.s) Chars 25738 - 25752 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 25753 - 25768 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 25775 - 25788 [rewrite~<-~H.] 0.006 secs (0.006u,0.s) -Chars 25789 - 25803 [rewrite~<-~H0.] 0.007 secs (0.007u,0.s) +Chars 25775 - 25788 [(rewrite~<-~H).] 0.01 secs (0.009u,0.s) +Chars 25789 - 25803 [(rewrite~<-~H0).] 0.01 secs (0.01u,0.s) Chars 25804 - 25809 [auto.] 0. secs (0.u,0.s) -Chars 25812 - 25816 [Qed.] 0.001 secs (0.001u,0.s) +Chars 25812 - 25816 [Qed.] 0.002 secs (0.002u,0.s) Chars 25923 - 26315 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) -Chars 26319 - 26749 [Variant~itree_includesF~{R~:~T...] 0. secs (0.u,0.s) +Chars 26319 - 26749 [Variant~itree_includesF~{R~:~T...] 0.001 secs (0.001u,0.s) Chars 26753 - 26795 [Hint~Constructors~itree_includ...] 0. secs (0.u,0.s) Chars 26800 - 26874 [Lemma~itree_includes_mono~{R}~...] 0. secs (0.u,0.s) Chars 26877 - 26883 [Proof.] 0. secs (0.u,0.s) -Chars 26889 - 26902 [repeat~intro.] 0. secs (0.u,0.s) -Chars 26903 - 26934 [induction~H0;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 26940 - 26960 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 26889 - 26902 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 26903 - 26934 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 26940 - 26960 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 26961 - 26973 [now~apply~H.] 0. secs (0.u,0.s) Chars 26977 - 26981 [Qed.] 0. secs (0.u,0.s) Chars 26986 - 27058 [Definition~itree_includes_mon~...] 0. secs (0.u,0.s) Chars 27065 - 27181 [Definition~itree_includes~{R~:...] 0. secs (0.u,0.s) -Chars 27183 - 27201 [End~ITreeDijkstra.] 0.004 secs (0.004u,0.s) +Chars 27183 - 27201 [End~ITreeDijkstra.] 0.005 secs (0.005u,0.s) Chars 27203 - 27226 [Section~RetBindCounter.] 0. secs (0.u,0.s) Chars 27230 - 27284 [Variant~Sound~:~Type~->~Prop~:...] 0. secs (0.u,0.s) -Chars 27691 - 27779 [#[program]~Definition~p~:~ITDI...] 0. secs (0.u,0.s) +Chars 27691 - 27779 [#[program]~Definition~p~:~ITDI...] 0.001 secs (0.001u,0.s) Chars 27782 - 27798 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 27803 - 27814 [repeat~red.] 0. secs (0.u,0.s) -Chars 27815 - 27822 [intros.] 0. secs (0.u,0.s) -Chars 27823 - 27846 [split;~rewrite~H;~auto.] 0.011 secs (0.011u,0.s) -Chars 27849 - 27853 [Qed.] 0. secs (0.u,0.s) +Chars 27803 - 27814 [(repeat~red).] 0. secs (0.u,0.s) +Chars 27815 - 27822 [(intros).] 0. secs (0.u,0.s) +Chars 27823 - 27846 [(split;~rewrite~H;~auto).] 0.012 secs (0.012u,0.s) +Chars 27849 - 27853 [Qed.] 0.001 secs (0.001u,0.s) Chars 28479 - 28567 [#[program]~Definition~w~:~ITre...] 0.001 secs (0.001u,0.s) Chars 28746 - 28854 [Lemma~bind_ret_failure~:~~~~~~...] 0. secs (0.u,0.s) Chars 28857 - 28863 [Proof.] 0. secs (0.u,0.s) -Chars 28868 - 28872 [cbn.] 0. secs (0.u,0.s) -Chars 28873 - 28888 [intros~Hcontra.] 0. secs (0.u,0.s) +Chars 28868 - 28872 [(cbn).] 0. secs (0.u,0.s) +Chars 28873 - 28888 [(intros~Hcontra).] 0. secs (0.u,0.s) Chars 28893 - 28916 [specialize~(Hcontra~p).] 0. secs (0.u,0.s) -Chars 28921 - 28963 [assert~(p~∋~Vis~Ring~(fun~_~=>...] 0. secs (0.u,0.s) +Chars 28921 - 28963 [(assert~(p~∋~Vis~Ring~(fun~_~=...] 0. secs (0.u,0.s) Chars 28968 - 28969 [{] 0. secs (0.u,0.s) -Chars 28976 - 28985 [unfold~p.] 0. secs (0.u,0.s) -Chars 28986 - 28990 [cbn.] 0. secs (0.u,0.s) +Chars 28976 - 28985 [(unfold~p).] 0. secs (0.u,0.s) +Chars 28986 - 28990 [(cbn).] 0. secs (0.u,0.s) Chars 28991 - 29003 [reflexivity.] 0. secs (0.u,0.s) Chars 29008 - 29009 [}] 0. secs (0.u,0.s) -Chars 29014 - 29033 [apply~Hcontra~in~H.] 0. secs (0.u,0.s) +Chars 29014 - 29033 [(apply~Hcontra~in~H).] 0. secs (0.u,0.s) Chars 29034 - 29048 [clear~Hcontra.] 0. secs (0.u,0.s) Chars 29049 - 29061 [basic_solve.] 0. secs (0.u,0.s) Chars 29066 - 29067 [-] 0. secs (0.u,0.s) -Chars 29068 - 29083 [unfold~p~in~H0.] 0. secs (0.u,0.s) -Chars 29084 - 29094 [cbn~in~H0.] 0. secs (0.u,0.s) -Chars 29095 - 29103 [sinv~H0.] 0.001 secs (0.001u,0.s) +Chars 29068 - 29083 [(unfold~p~in~H0).] 0. secs (0.u,0.s) +Chars 29084 - 29094 [(cbn~in~H0).] 0. secs (0.u,0.s) +Chars 29095 - 29103 [(sinv~H0).] 0.002 secs (0.002u,0.s) Chars 29108 - 29109 [-] 0. secs (0.u,0.s) Chars 29110 - 29119 [clear~H0.] 0. secs (0.u,0.s) -Chars 29120 - 29158 [sinv~H;~try~apply~all_infinite...] 0.001 secs (0.001u,0.s) +Chars 29120 - 29158 [(sinv~H;~try~apply~all_infinit...] 0.001 secs (0.001u,0.s) Chars 29159 - 29172 [ddestruction.] 0. secs (0.u,0.s) Chars 29179 - 29198 [specialize~(H1~tt).] 0. secs (0.u,0.s) -Chars 29199 - 29241 [step~in~H1;~try~apply~all_infi...] 0. secs (0.u,0.s) -Chars 29248 - 29255 [inv~H1.] 0. secs (0.u,0.s) -Chars 29258 - 29262 [Qed.] 0.002 secs (0.002u,0.s) +Chars 29199 - 29241 [(step~in~H1;~try~apply~all_inf...] 0. secs (0.u,0.s) +Chars 29248 - 29255 [(inv~H1).] 0. secs (0.u,0.s) +Chars 29258 - 29262 [Qed.] 0.006 secs (0.006u,0.s) Chars 29264 - 29283 [End~RetBindCounter.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/IterRel.v.timing b/extra/Dijkstra/IterRel.v.timing index 2e6e9cc5..e34725ce 100644 --- a/extra/Dijkstra/IterRel.v.timing +++ b/extra/Dijkstra/IterRel.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.107 secs (0.095u,0.012s) -Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.002 secs (0.002u,0.s) -Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.06 secs (0.054u,0.006s) +Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.151 secs (0.132u,0.018s) +Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.083 secs (0.074u,0.008s) Chars 128 - 149 [Create~HintDb~not_wf.] 0. secs (0.u,0.s) Chars 151 - 174 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 282 - 298 [Section~IterRel.] 0. secs (0.u,0.s) @@ -10,9 +10,9 @@ Chars 357 - 463 [Variant~not_wf_F~(F~:~A~->~Pro...] 0. secs (0.u,0.s) Chars 466 - 502 [Hint~Constructors~not_wf_F:~no...] 0. secs (0.u,0.s) Chars 506 - 566 [Lemma~not_wf_F_mono~:~Proper~(...] 0. secs (0.u,0.s) Chars 570 - 576 [Proof.] 0. secs (0.u,0.s) -Chars 581 - 592 [repeat~red.] 0. secs (0.u,0.s) -Chars 593 - 608 [intros;~inv~H0.] 0. secs (0.u,0.s) -Chars 614 - 634 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 581 - 592 [(repeat~red).] 0. secs (0.u,0.s) +Chars 593 - 608 [(intros;~inv~H0).] 0. secs (0.u,0.s) +Chars 614 - 634 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 635 - 647 [now~apply~H.] 0. secs (0.u,0.s) Chars 652 - 656 [Qed.] 0. secs (0.u,0.s) Chars 658 - 734 [Definition~not_wf_F_mon~:=~{|~...] 0. secs (0.u,0.s) @@ -22,157 +22,157 @@ Chars 953 - 988 [Hint~Constructors~wf_from:~not...] 0. secs (0.u,0.s) Chars 991 - 1077 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) Chars 1080 - 1086 [Proof.] 0. secs (0.u,0.s) Chars 1093 - 1111 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1112 - 1119 [intros.] 0. secs (0.u,0.s) -Chars 1120 - 1179 [destruct~(classic~(exists~a',~...] 0. secs (0.u,0.s) +Chars 1112 - 1119 [(intros).] 0. secs (0.u,0.s) +Chars 1120 - 1179 [(destruct~(classic~(exists~a',...] 0. secs (0.u,0.s) Chars 1184 - 1185 [-] 0. secs (0.u,0.s) -Chars 1186 - 1216 [destruct~H0~as~[a'~[Hr~Hwf]].] 0. secs (0.u,0.s) -Chars 1217 - 1237 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 1186 - 1216 [(destruct~H0~as~[a'~[Hr~Hwf]]).] 0. secs (0.u,0.s) +Chars 1217 - 1237 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 1242 - 1243 [-] 0. secs (0.u,0.s) -Chars 1244 - 1287 [assert~(forall~a',~~~r~a~a'~\/...] 0. secs (0.u,0.s) +Chars 1244 - 1287 [(assert~(forall~a',~~~r~a~a'~\...] 0. secs (0.u,0.s) Chars 1294 - 1295 [{] 0. secs (0.u,0.s) -Chars 1304 - 1311 [intros.] 0. secs (0.u,0.s) -Chars 1320 - 1354 [destruct~(classic~(r~a~a'));~a...] 0. secs (0.u,0.s) -Chars 1355 - 1393 [destruct~(classic~(wf_from~a')...] 0. secs (0.u,0.s) +Chars 1304 - 1311 [(intros).] 0. secs (0.u,0.s) +Chars 1320 - 1354 [(destruct~(classic~(r~a~a'));~...] 0.001 secs (0.u,0.s) +Chars 1355 - 1393 [(destruct~(classic~(wf_from~a'...] 0.001 secs (0.u,0.s) Chars 1402 - 1410 [exfalso.] 0. secs (0.u,0.s) -Chars 1411 - 1420 [apply~H0.] 0. secs (0.u,0.s) +Chars 1411 - 1420 [(apply~H0).] 0. secs (0.u,0.s) Chars 1421 - 1431 [exists~a'.] 0. secs (0.u,0.s) Chars 1432 - 1437 [auto.] 0. secs (0.u,0.s) Chars 1444 - 1445 [}] 0. secs (0.u,0.s) Chars 1452 - 1461 [clear~H0.] 0. secs (0.u,0.s) Chars 1468 - 1476 [exfalso.] 0. secs (0.u,0.s) -Chars 1477 - 1485 [apply~H.] 0. secs (0.u,0.s) +Chars 1477 - 1485 [(apply~H).] 0. secs (0.u,0.s) Chars 1486 - 1494 [clear~H.] 0. secs (0.u,0.s) -Chars 1495 - 1506 [apply~step.] 0. secs (0.u,0.s) -Chars 1507 - 1514 [intros.] 0. secs (0.u,0.s) -Chars 1515 - 1550 [destruct~(H1~a');~auto~with~no...] 0.001 secs (0.001u,0.s) -Chars 1553 - 1557 [Qed.] 0. secs (0.u,0.s) +Chars 1495 - 1506 [(apply~step).] 0. secs (0.u,0.s) +Chars 1507 - 1514 [(intros).] 0. secs (0.u,0.s) +Chars 1515 - 1550 [(destruct~(H1~a');~auto~with~n...] 0.002 secs (0.001u,0.s) +Chars 1553 - 1557 [Qed.] 0.001 secs (0.001u,0.s) Chars 1561 - 1648 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) Chars 1655 - 1661 [Proof.] 0. secs (0.u,0.s) -Chars 1668 - 1675 [intros.] 0. secs (0.u,0.s) +Chars 1668 - 1675 [(intros).] 0. secs (0.u,0.s) Chars 1676 - 1690 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 1691 - 1707 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 1691 - 1707 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 1708 - 1718 [step~in~H.] 0. secs (0.u,0.s) -Chars 1719 - 1731 [inversion~H.] 0. secs (0.u,0.s) +Chars 1719 - 1731 [(inversion~H).] 0. secs (0.u,0.s) Chars 1732 - 1740 [clear~H.] 0. secs (0.u,0.s) Chars 1741 - 1765 [generalize~dependent~a'.] 0. secs (0.u,0.s) -Chars 1770 - 1796 [induction~Hcontra;~intros.] 0. secs (0.u,0.s) +Chars 1770 - 1796 [(induction~Hcontra;~intros).] 0. secs (0.u,0.s) Chars 1801 - 1802 [-] 0. secs (0.u,0.s) -Chars 1803 - 1819 [apply~H~in~Hrel.] 0. secs (0.u,0.s) +Chars 1803 - 1819 [(apply~H~in~Hrel).] 0. secs (0.u,0.s) Chars 1820 - 1825 [auto.] 0. secs (0.u,0.s) Chars 1830 - 1831 [-] 0. secs (0.u,0.s) Chars 1832 - 1847 [step~in~Hcorec.] 0. secs (0.u,0.s) -Chars 1848 - 1865 [inversion~Hcorec.] 0. secs (0.u,0.s) +Chars 1848 - 1865 [(inversion~Hcorec).] 0. secs (0.u,0.s) Chars 1866 - 1900 [specialize~(H0~a'~Hrel~a'0~Hre...] 0. secs (0.u,0.s) Chars 1907 - 1912 [auto.] 0. secs (0.u,0.s) Chars 1915 - 1919 [Qed.] 0. secs (0.u,0.s) Chars 1923 - 2008 [Lemma~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) Chars 2011 - 2017 [Proof.] 0. secs (0.u,0.s) -Chars 2022 - 2102 [split;~try~apply~neg_wf_from_n...] 0. secs (0.u,0.s) +Chars 2022 - 2102 [(split;~try~apply~neg_wf_from_...] 0. secs (0.u,0.s) Chars 2105 - 2109 [Qed.] 0. secs (0.u,0.s) Chars 2113 - 2175 [Lemma~classic_wf~:~forall~a~:~...] 0. secs (0.u,0.s) Chars 2178 - 2184 [Proof.] 0. secs (0.u,0.s) -Chars 2189 - 2196 [intros.] 0. secs (0.u,0.s) -Chars 2197 - 2234 [destruct~(classic~(wf_from~a))...] 0. secs (0.u,0.s) -Chars 2239 - 2274 [apply~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) +Chars 2189 - 2196 [(intros).] 0. secs (0.u,0.s) +Chars 2197 - 2234 [(destruct~(classic~(wf_from~a)...] 0. secs (0.u,0.s) +Chars 2239 - 2274 [(apply~neg_wf_from_not_wf_from...] 0. secs (0.u,0.s) Chars 2275 - 2280 [auto.] 0. secs (0.u,0.s) Chars 2283 - 2287 [Qed.] 0. secs (0.u,0.s) Chars 2291 - 2462 [Lemma~intro_not_wf~:~~~forall~...] 0. secs (0.u,0.s) Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) -Chars 2476 - 2483 [intros.] 0. secs (0.u,0.s) +Chars 2476 - 2483 [(intros).] 0. secs (0.u,0.s) Chars 2484 - 2507 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 2508 - 2527 [unfold~not_wf_from.] 0. secs (0.u,0.s) +Chars 2508 - 2527 [(unfold~not_wf_from).] 0. secs (0.u,0.s) Chars 2532 - 2550 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2556 - 2563 [intros.] 0. secs (0.u,0.s) -Chars 2569 - 2599 [apply~not_wf~with~(a'~:=~f~a).] 0. secs (0.u,0.s) +Chars 2556 - 2563 [(intros).] 0. secs (0.u,0.s) +Chars 2569 - 2599 [(apply~not_wf~with~(a'~:=~f~a)).] 0. secs (0.u,0.s) Chars 2604 - 2605 [-] 0. secs (0.u,0.s) Chars 2606 - 2620 [auto~using~H1.] 0. secs (0.u,0.s) Chars 2625 - 2626 [-] 0. secs (0.u,0.s) -Chars 2627 - 2637 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2638 - 2655 [eapply~H0;~eauto.] 0.023 secs (0.021u,0.001s) +Chars 2627 - 2637 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2638 - 2655 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) Chars 2658 - 2662 [Qed.] 0. secs (0.u,0.s) -Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0. secs (0.u,0.s) +Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0.031 secs (0.028u,0.002s) Chars 2855 - 2861 [Proof.] 0. secs (0.u,0.s) -Chars 2866 - 2879 [intros~P~m~a.] 0. secs (0.u,0.s) -Chars 2880 - 2909 [remember~(m~a)~as~ma~eqn:Hma~.] 0. secs (0.u,0.s) +Chars 2866 - 2879 [(intros~P~m~a).] 0. secs (0.u,0.s) +Chars 2880 - 2909 [(remember~(m~a)~as~ma~eqn:Hma~).] 0. secs (0.u,0.s) Chars 2910 - 2923 [revert~a~Hma.] 0. secs (0.u,0.s) -Chars 2928 - 2980 [induction~ma~using~lt_wf_ind;~...] 0. secs (0.u,0.s) -Chars 2985 - 3003 [apply~step;~eauto.] 0. secs (0.u,0.s) +Chars 2928 - 2980 [(induction~ma~using~lt_wf_ind;...] 0. secs (0.u,0.s) +Chars 2985 - 3003 [(apply~step;~eauto).] 0. secs (0.u,0.s) Chars 3006 - 3010 [Qed.] 0. secs (0.u,0.s) Chars 3012 - 3024 [End~IterRel.] 0. secs (0.u,0.s) Chars 3026 - 3118 [Definition~rel_rev~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 3189 - 3310 [Lemma~well_found_wf_from~:~~~f...] 0. secs (0.u,0.s) Chars 3311 - 3317 [Proof.] 0. secs (0.u,0.s) -Chars 3320 - 3337 [intros~A~r~Hwf~a.] 0. secs (0.u,0.s) -Chars 3338 - 3365 [unfold~well_founded~in~Hwf.] 0. secs (0.u,0.s) -Chars 3368 - 3388 [unfold~rel_rev~in~*.] 0. secs (0.u,0.s) -Chars 3389 - 3407 [induction~(Hwf~a).] 0. secs (0.u,0.s) -Chars 3408 - 3419 [apply~step.] 0. secs (0.u,0.s) -Chars 3420 - 3427 [intros.] 0. secs (0.u,0.s) -Chars 3430 - 3445 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 3320 - 3337 [(intros~A~r~Hwf~a).] 0. secs (0.u,0.s) +Chars 3338 - 3365 [(unfold~well_founded~in~Hwf).] 0. secs (0.u,0.s) +Chars 3368 - 3388 [(unfold~rel_rev~in~*).] 0. secs (0.u,0.s) +Chars 3389 - 3407 [(induction~(Hwf~a)).] 0. secs (0.u,0.s) +Chars 3408 - 3419 [(apply~step).] 0. secs (0.u,0.s) +Chars 3420 - 3427 [(intros).] 0. secs (0.u,0.s) +Chars 3430 - 3445 [(apply~H0~in~H1).] 0. secs (0.u,0.s) Chars 3446 - 3451 [auto.] 0. secs (0.u,0.s) Chars 3452 - 3456 [Qed.] 0. secs (0.u,0.s) Chars 3545 - 3675 [Lemma~wf_from_sub_rel~:~~~fora...] 0. secs (0.u,0.s) Chars 3676 - 3682 [Proof.] 0. secs (0.u,0.s) -Chars 3685 - 3692 [intros.] 0. secs (0.u,0.s) -Chars 3693 - 3706 [induction~H0.] 0. secs (0.u,0.s) +Chars 3685 - 3692 [(intros).] 0. secs (0.u,0.s) +Chars 3693 - 3706 [(induction~H0).] 0. secs (0.u,0.s) Chars 3709 - 3710 [-] 0. secs (0.u,0.s) -Chars 3711 - 3722 [apply~base.] 0. secs (0.u,0.s) -Chars 3723 - 3741 [intros~a'~Hcontra.] 0. secs (0.u,0.s) -Chars 3742 - 3761 [apply~H~in~Hcontra.] 0. secs (0.u,0.s) -Chars 3762 - 3779 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 3711 - 3722 [(apply~base).] 0. secs (0.u,0.s) +Chars 3723 - 3741 [(intros~a'~Hcontra).] 0. secs (0.u,0.s) +Chars 3742 - 3761 [(apply~H~in~Hcontra).] 0. secs (0.u,0.s) +Chars 3762 - 3779 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3795 [apply~step.] 0. secs (0.u,0.s) -Chars 3796 - 3813 [intros~a'~Hr0aa'.] 0. secs (0.u,0.s) -Chars 3814 - 3832 [apply~H~in~Hr0aa'.] 0. secs (0.u,0.s) +Chars 3784 - 3795 [(apply~step).] 0. secs (0.u,0.s) +Chars 3796 - 3813 [(intros~a'~Hr0aa').] 0. secs (0.u,0.s) +Chars 3814 - 3832 [(apply~H~in~Hr0aa').] 0. secs (0.u,0.s) Chars 3833 - 3838 [auto.] 0. secs (0.u,0.s) Chars 3839 - 3843 [Qed.] 0. secs (0.u,0.s) Chars 3845 - 3915 [Lemma~wf_from_gt~:~forall~n~:~...] 0. secs (0.u,0.s) Chars 3916 - 3922 [Proof.] 0. secs (0.u,0.s) -Chars 3925 - 3932 [intros.] 0. secs (0.u,0.s) -Chars 3935 - 4007 [enough~(forall~n',~le~n'~n~->~...] 0. secs (0.u,0.s) -Chars 4010 - 4030 [induction~n;~intros.] 0. secs (0.u,0.s) +Chars 3925 - 3932 [(intros).] 0. secs (0.u,0.s) +Chars 3935 - 4007 [(enough~(forall~n',~le~n'~n~->...] 0. secs (0.u,0.s) +Chars 4010 - 4030 [(induction~n;~intros).] 0. secs (0.u,0.s) Chars 4033 - 4034 [-] 0. secs (0.u,0.s) -Chars 4035 - 4060 [assert~(n'~=~0);~try~lia.] 0.001 secs (0.u,0.s) +Chars 4035 - 4060 [(assert~(n'~=~0);~try~lia).] 0.001 secs (0.001u,0.s) Chars 4061 - 4067 [subst.] 0. secs (0.u,0.s) -Chars 4068 - 4079 [apply~base.] 0. secs (0.u,0.s) -Chars 4080 - 4087 [intros.] 0. secs (0.u,0.s) +Chars 4068 - 4079 [(apply~base).] 0. secs (0.u,0.s) +Chars 4080 - 4087 [(intros).] 0. secs (0.u,0.s) Chars 4088 - 4092 [lia.] 0. secs (0.u,0.s) Chars 4095 - 4096 [-] 0. secs (0.u,0.s) -Chars 4097 - 4108 [apply~step.] 0. secs (0.u,0.s) -Chars 4109 - 4125 [intros~n''~Hn''.] 0. secs (0.u,0.s) -Chars 4126 - 4153 [assert~(le~n''~n);~try~lia.] 0. secs (0.u,0.s) +Chars 4097 - 4108 [(apply~step).] 0. secs (0.u,0.s) +Chars 4109 - 4125 [(intros~n''~Hn'').] 0. secs (0.u,0.s) +Chars 4126 - 4153 [(assert~(le~n''~n);~try~lia).] 0. secs (0.u,0.s) Chars 4154 - 4159 [auto.] 0. secs (0.u,0.s) -Chars 4160 - 4164 [Qed.] 0. secs (0.u,0.s) +Chars 4160 - 4164 [Qed.] 0.001 secs (0.001u,0.s) Chars 4183 - 4312 [Lemma~no_inf_dec_seq_aux~:~~~f...] 0. secs (0.u,0.s) Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) -Chars 4322 - 4329 [intros.] 0. secs (0.u,0.s) -Chars 4330 - 4375 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) -Chars 4378 - 4391 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4322 - 4329 [(intros).] 0. secs (0.u,0.s) +Chars 4330 - 4375 [(eapply~wf_from_sub_rel;~try~a...] 0. secs (0.u,0.s) +Chars 4378 - 4391 [(repeat~intro).] 0. secs (0.u,0.s) Chars 4392 - 4397 [auto.] 0. secs (0.u,0.s) Chars 4398 - 4402 [Qed.] 0. secs (0.u,0.s) Chars 4587 - 4810 [Lemma~wf_intro_gt~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4811 - 4817 [Proof.] 0. secs (0.u,0.s) -Chars 4820 - 4851 [intros~A~r~f~inv~a~Hinv~Hgt~Ha.] 0. secs (0.u,0.s) -Chars 4854 - 4875 [remember~(f~a)~as~n0.] 0. secs (0.u,0.s) +Chars 4820 - 4851 [(intros~A~r~f~inv~a~Hinv~Hgt~Ha).] 0. secs (0.u,0.s) +Chars 4854 - 4875 [(remember~(f~a)~as~n0).] 0. secs (0.u,0.s) Chars 4878 - 4901 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 4904 - 4959 [enough~(forall~a,~le~(f~a)~n0~...] 0. secs (0.u,0.s) +Chars 4904 - 4959 [(enough~(forall~a,~le~(f~a)~n0...] 0. secs (0.u,0.s) Chars 4962 - 4963 [{] 0. secs (0.u,0.s) -Chars 4968 - 4975 [intros.] 0. secs (0.u,0.s) -Chars 4976 - 4984 [apply~H.] 0. secs (0.u,0.s) +Chars 4968 - 4975 [(intros).] 0. secs (0.u,0.s) +Chars 4976 - 4984 [(apply~H).] 0. secs (0.u,0.s) Chars 4985 - 4989 [lia.] 0. secs (0.u,0.s) Chars 4990 - 4995 [auto.] 0. secs (0.u,0.s) Chars 4998 - 4999 [}] 0. secs (0.u,0.s) -Chars 5002 - 5023 [induction~n0;~intros.] 0. secs (0.u,0.s) +Chars 5002 - 5023 [(induction~n0;~intros).] 0. secs (0.u,0.s) Chars 5026 - 5027 [-] 0. secs (0.u,0.s) -Chars 5028 - 5039 [apply~base.] 0. secs (0.u,0.s) -Chars 5040 - 5066 [assert~(f~a~=~0);~try~lia.] 0. secs (0.u,0.s) -Chars 5071 - 5089 [intros~a'~Hcontra.] 0. secs (0.u,0.s) +Chars 5028 - 5039 [(apply~base).] 0. secs (0.u,0.s) +Chars 5040 - 5066 [(assert~(f~a~=~0);~try~lia).] 0. secs (0.u,0.s) +Chars 5071 - 5089 [(intros~a'~Hcontra).] 0. secs (0.u,0.s) Chars 5094 - 5127 [specialize~(Hgt~a~a'~H0~Hcontra).] 0. secs (0.u,0.s) Chars 5128 - 5132 [lia.] 0. secs (0.u,0.s) Chars 5135 - 5136 [-] 0. secs (0.u,0.s) -Chars 5137 - 5148 [apply~step.] 0. secs (0.u,0.s) -Chars 5149 - 5163 [intros~a'~Ha'.] 0. secs (0.u,0.s) -Chars 5168 - 5186 [apply~IHn0;~eauto.] 0. secs (0.u,0.s) -Chars 5191 - 5218 [assert~(f~a~>~f~a');~eauto.] 0. secs (0.u,0.s) +Chars 5137 - 5148 [(apply~step).] 0. secs (0.u,0.s) +Chars 5149 - 5163 [(intros~a'~Ha').] 0. secs (0.u,0.s) +Chars 5168 - 5186 [(apply~IHn0;~eauto).] 0. secs (0.u,0.s) +Chars 5191 - 5218 [(assert~(f~a~>~f~a');~eauto).] 0. secs (0.u,0.s) Chars 5219 - 5223 [lia.] 0. secs (0.u,0.s) Chars 5224 - 5228 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/PureITreeBasics.v.timing b/extra/Dijkstra/PureITreeBasics.v.timing index a9b9ca80..ab19da76 100644 --- a/extra/Dijkstra/PureITreeBasics.v.timing +++ b/extra/Dijkstra/PureITreeBasics.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.16 secs (0.143u,0.016s) +Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.228 secs (0.199u,0.028s) Chars 182 - 196 [Import~Monads.] 0. secs (0.u,0.s) Chars 197 - 218 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 219 - 251 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -11,141 +11,141 @@ Chars 489 - 565 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) Chars 567 - 628 [#[local]~Tactic~Notation~"sinv...] 0. secs (0.u,0.s) Chars 708 - 814 [Lemma~spin_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) Chars 815 - 821 [Proof.] 0. secs (0.u,0.s) -Chars 824 - 831 [intros.] 0. secs (0.u,0.s) -Chars 832 - 844 [coinduction.] 0.002 secs (0.001u,0.s) -Chars 845 - 851 [simpl.] 0. secs (0.u,0.s) +Chars 824 - 831 [(intros).] 0. secs (0.u,0.s) +Chars 832 - 844 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 845 - 851 [(simpl).] 0. secs (0.u,0.s) Chars 854 - 870 [now~constructor.] 0. secs (0.u,0.s) -Chars 871 - 875 [Qed.] 0.003 secs (0.002u,0.s) +Chars 871 - 875 [Qed.] 0.004 secs (0.003u,0.001s) Chars 1051 - 1206 [Definition~tau_invar~(E~:~Type...] 0. secs (0.u,0.s) Chars 1382 - 1435 [Notation~resp_eutt~P:=~(Proper...] 0. secs (0.u,0.s) Chars 1437 - 1619 [Lemma~tau_invar_resp_eutt1~:~~...] 0. secs (0.u,0.s) Chars 1622 - 1628 [Proof.] 0. secs (0.u,0.s) -Chars 1633 - 1640 [intros.] 0. secs (0.u,0.s) -Chars 1641 - 1658 [unfold~tau_invar.] 0. secs (0.u,0.s) -Chars 1659 - 1735 [split;~intros;~eapply~H;~try~e...] 0.025 secs (0.023u,0.001s) +Chars 1633 - 1640 [(intros).] 0. secs (0.u,0.s) +Chars 1641 - 1658 [(unfold~tau_invar).] 0. secs (0.u,0.s) +Chars 1659 - 1735 [(split;~intros;~eapply~H;~try~...] 0.005 secs (0.003u,0.001s) Chars 1738 - 1742 [Qed.] 0. secs (0.u,0.s) -Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0. secs (0.u,0.s) +Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0.031 secs (0.028u,0.002s) Chars 1899 - 1905 [Proof.] 0. secs (0.u,0.s) -Chars 1908 - 1917 [intros~A.] 0. secs (0.u,0.s) -Chars 1918 - 1930 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1931 - 1938 [intros.] 0. secs (0.u,0.s) -Chars 1939 - 1943 [cbn.] 0. secs (0.u,0.s) -Chars 1946 - 1978 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) +Chars 1908 - 1917 [(intros~A).] 0. secs (0.u,0.s) +Chars 1918 - 1930 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1931 - 1938 [(intros).] 0. secs (0.u,0.s) +Chars 1939 - 1943 [(cbn).] 0. secs (0.u,0.s) +Chars 1946 - 1978 [(destruct~(observe~t)~eqn:Heqt).] 0. secs (0.u,0.s) Chars 1981 - 1982 [-] 0. secs (0.u,0.s) Chars 1983 - 2016 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2017 - 2038 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) -Chars 2039 - 2057 [rewrite~Heta~in~H.] 0.001 secs (0.001u,0.s) -Chars 2058 - 2065 [sinv~H.] 0. secs (0.u,0.s) +Chars 2017 - 2038 [(rewrite~Heqt~in~Heta).] 0. secs (0.u,0.s) +Chars 2039 - 2057 [(rewrite~Heta~in~H).] 0.001 secs (0.001u,0.s) +Chars 2058 - 2065 [sinv~H.] 0.001 secs (0.001u,0.s) Chars 2069 - 2070 [-] 0. secs (0.u,0.s) Chars 2071 - 2083 [constructor.] 0. secs (0.u,0.s) -Chars 2084 - 2094 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2084 - 2094 [(apply~CIH).] 0. secs (0.u,0.s) Chars 2095 - 2128 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2129 - 2150 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) -Chars 2155 - 2177 [assert~(t~≈~Tau~t0).] 0. secs (0.u,0.s) +Chars 2129 - 2150 [(rewrite~Heqt~in~Heta).] 0. secs (0.u,0.s) +Chars 2155 - 2177 [(assert~(t~≈~Tau~t0)).] 0. secs (0.u,0.s) Chars 2182 - 2183 [+] 0. secs (0.u,0.s) -Chars 2184 - 2197 [rewrite~Heta.] 0. secs (0.u,0.s) +Chars 2184 - 2197 [(rewrite~Heta).] 0. secs (0.u,0.s) Chars 2198 - 2210 [reflexivity.] 0. secs (0.u,0.s) Chars 2215 - 2216 [+] 0. secs (0.u,0.s) -Chars 2217 - 2237 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 2238 - 2252 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 2217 - 2237 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 2238 - 2252 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) Chars 2253 - 2258 [auto.] 0. secs (0.u,0.s) Chars 2261 - 2262 [-] 0. secs (0.u,0.s) -Chars 2263 - 2274 [destruct~e.] 0. secs (0.u,0.s) -Chars 2275 - 2279 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2263 - 2274 [(destruct~e).] 0. secs (0.u,0.s) +Chars 2275 - 2279 [Qed.] 0.006 secs (0.006u,0.s) Chars 2281 - 2383 [Lemma~eutt_reta_or_div_aux~:~~...] 0. secs (0.u,0.s) Chars 2384 - 2390 [Proof.] 0. secs (0.u,0.s) Chars 2393 - 2401 [intro~A.] 0. secs (0.u,0.s) -Chars 2402 - 2437 [unfold~any_infinite,~any_infin...] 0. secs (0.u,0.s) +Chars 2402 - 2437 [(unfold~any_infinite,~any_infi...] 0. secs (0.u,0.s) Chars 2441 - 2459 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2463 - 2470 [intros.] 0. secs (0.u,0.s) -Chars 2471 - 2503 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) +Chars 2463 - 2470 [(intros).] 0. secs (0.u,0.s) +Chars 2471 - 2503 [(destruct~(observe~t)~eqn:Heqt).] 0. secs (0.u,0.s) Chars 2506 - 2507 [-] 0. secs (0.u,0.s) Chars 2508 - 2516 [exfalso.] 0. secs (0.u,0.s) Chars 2517 - 2550 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2551 - 2572 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) -Chars 2573 - 2581 [apply~H.] 0. secs (0.u,0.s) +Chars 2551 - 2572 [(rewrite~Heqt~in~Heta).] 0. secs (0.u,0.s) +Chars 2573 - 2581 [(apply~H).] 0. secs (0.u,0.s) Chars 2586 - 2595 [exists~r.] 0. secs (0.u,0.s) -Chars 2596 - 2609 [rewrite~Heta.] 0. secs (0.u,0.s) +Chars 2596 - 2609 [(rewrite~Heta).] 0.001 secs (0.001u,0.s) Chars 2610 - 2622 [reflexivity.] 0. secs (0.u,0.s) Chars 2625 - 2626 [-] 0. secs (0.u,0.s) -Chars 2627 - 2660 [repeat~red;~simpobs;~constructor.] 0. secs (0.u,0.s) -Chars 2661 - 2679 [eapply~CIH;~eauto.] 0.034 secs (0.033u,0.s) +Chars 2627 - 2660 [(repeat~red;~simpobs;~construc...] 0. secs (0.u,0.s) +Chars 2661 - 2679 [(eapply~CIH;~eauto).] 0.042 secs (0.042u,0.s) Chars 2680 - 2686 [intro.] 0. secs (0.u,0.s) -Chars 2687 - 2695 [apply~H.] 0. secs (0.u,0.s) -Chars 2700 - 2722 [destruct~H0~as~[a~Ha].] 0. secs (0.u,0.s) +Chars 2687 - 2695 [(apply~H).] 0. secs (0.u,0.s) +Chars 2700 - 2722 [(destruct~H0~as~[a~Ha]).] 0. secs (0.u,0.s) Chars 2723 - 2732 [exists~a.] 0. secs (0.u,0.s) Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 2765 - 2784 [rewrite~Heqt~in~Ht.] 0. secs (0.u,0.s) -Chars 2789 - 2800 [rewrite~Ht.] 0. secs (0.u,0.s) -Chars 2801 - 2818 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 2765 - 2784 [(rewrite~Heqt~in~Ht).] 0. secs (0.u,0.s) +Chars 2789 - 2800 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 2801 - 2818 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 2819 - 2824 [auto.] 0. secs (0.u,0.s) Chars 2827 - 2828 [-] 0. secs (0.u,0.s) -Chars 2829 - 2840 [destruct~e.] 0. secs (0.u,0.s) -Chars 2841 - 2845 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2829 - 2840 [(destruct~e).] 0. secs (0.u,0.s) +Chars 2841 - 2845 [Qed.] 0.002 secs (0.002u,0.s) Chars 2984 - 3083 [Lemma~eutt_reta_or_div~:~~~for...] 0. secs (0.u,0.s) Chars 3084 - 3090 [Proof.] 0. secs (0.u,0.s) -Chars 3093 - 3104 [intros~A~t.] 0. secs (0.u,0.s) +Chars 3093 - 3104 [(intros~A~t).] 0. secs (0.u,0.s) Chars 3106 - 3160 [specialize~(classic~(exists~a,...] 0. secs (0.u,0.s) -Chars 3161 - 3181 [destruct~Hlem;~auto.] 0. secs (0.u,0.s) +Chars 3161 - 3181 [(destruct~Hlem;~auto).] 0. secs (0.u,0.s) Chars 3184 - 3190 [right.] 0. secs (0.u,0.s) -Chars 3191 - 3218 [apply~eutt_reta_or_div_aux.] 0. secs (0.u,0.s) +Chars 3191 - 3218 [(apply~eutt_reta_or_div_aux).] 0. secs (0.u,0.s) Chars 3219 - 3224 [auto.] 0. secs (0.u,0.s) Chars 3225 - 3229 [Qed.] 0. secs (0.u,0.s) Chars 3231 - 3327 [Lemma~ret_not_div~:~~~forall~(...] 0. secs (0.u,0.s) Chars 3328 - 3334 [Proof.] 0. secs (0.u,0.s) -Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) +Chars 3337 - 3344 [(intros).] 0. secs (0.u,0.s) Chars 3345 - 3359 [intro~Hcontra.] 0. secs (0.u,0.s) Chars 3360 - 3373 [sinv~Hcontra.] 0. secs (0.u,0.s) -Chars 3375 - 3379 [Qed.] 0. secs (0.u,0.s) +Chars 3375 - 3379 [Qed.] 0.001 secs (0.001u,0.s) Chars 3381 - 3451 [Lemma~not_ret_eutt_spin~:~fora...] 0. secs (0.u,0.s) Chars 3452 - 3458 [Proof.] 0. secs (0.u,0.s) -Chars 3461 - 3468 [intros.] 0. secs (0.u,0.s) +Chars 3461 - 3468 [(intros).] 0. secs (0.u,0.s) Chars 3469 - 3483 [intro~Hcontra.] 0. secs (0.u,0.s) Chars 3484 - 3504 [symmetry~in~Hcontra.] 0. secs (0.u,0.s) -Chars 3505 - 3543 [revert~Hcontra;~apply~no_infin...] 0. secs (0.u,0.s) -Chars 3546 - 3566 [apply~spin_infinite.] 0. secs (0.u,0.s) +Chars 3505 - 3543 [(revert~Hcontra;~apply~no_infi...] 0. secs (0.u,0.s) +Chars 3546 - 3566 [(apply~spin_infinite).] 0. secs (0.u,0.s) Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) Chars 3573 - 3692 [Lemma~eutt_ret_euttge~:~~~fora...] 0. secs (0.u,0.s) Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) -Chars 3702 - 3709 [intros.] 0. secs (0.u,0.s) +Chars 3702 - 3709 [(intros).] 0. secs (0.u,0.s) Chars 3710 - 3733 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 3734 - 3753 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3754 - 3761 [intros.] 0. secs (0.u,0.s) -Chars 3762 - 3769 [sinv~H.] 0.017 secs (0.017u,0.s) +Chars 3734 - 3753 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3754 - 3761 [(intros).] 0. secs (0.u,0.s) +Chars 3762 - 3769 [sinv~H.] 0.024 secs (0.024u,0.s) Chars 3773 - 3774 [-] 0. secs (0.u,0.s) Chars 3775 - 3780 [taul.] 0. secs (0.u,0.s) -Chars 3821 - 3848 [remember~(observe~(Ret~a)).] 0.001 secs (0.001u,0.s) -Chars 3853 - 3877 [induction~REL;~try~easy.] 0.039 secs (0.039u,0.s) +Chars 3821 - 3848 [(remember~(observe~(Ret~a))).] 0.001 secs (0.001u,0.s) +Chars 3853 - 3877 [(induction~REL;~try~easy).] 0.055 secs (0.054u,0.s) Chars 3883 - 3884 [+] 0. secs (0.u,0.s) Chars 3885 - 3890 [eret.] 0. secs (0.u,0.s) Chars 3896 - 3897 [+] 0. secs (0.u,0.s) Chars 3898 - 3903 [taul.] 0. secs (0.u,0.s) Chars 3904 - 3920 [now~apply~IHREL.] 0. secs (0.u,0.s) -Chars 3923 - 3927 [Qed.] 0.008 secs (0.008u,0.s) +Chars 3923 - 3927 [Qed.] 0.012 secs (0.011u,0.s) Chars 3929 - 4012 [Lemma~unfold_spin~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4013 - 4019 [Proof.] 0. secs (0.u,0.s) -Chars 4022 - 4029 [intros.] 0. secs (0.u,0.s) +Chars 4022 - 4029 [(intros).] 0. secs (0.u,0.s) Chars 4030 - 4035 [step.] 0.001 secs (0.001u,0.s) -Chars 4036 - 4040 [cbn.] 0. secs (0.u,0.s) +Chars 4036 - 4040 [(cbn).] 0. secs (0.u,0.s) Chars 4041 - 4053 [reflexivity.] 0. secs (0.u,0.s) Chars 4055 - 4059 [Qed.] 0.002 secs (0.002u,0.s) Chars 4061 - 4160 [Lemma~burn_eutt_r~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4161 - 4167 [Proof.] 0. secs (0.u,0.s) -Chars 4170 - 4177 [intros.] 0. secs (0.u,0.s) +Chars 4170 - 4177 [(intros).] 0. secs (0.u,0.s) Chars 4178 - 4201 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 4202 - 4226 [generalize~dependent~t'.] 0. secs (0.u,0.s) -Chars 4227 - 4260 [induction~n;~intros;~simpl;~auto.] 0. secs (0.u,0.s) -Chars 4263 - 4310 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) +Chars 4227 - 4260 [(induction~n;~intros;~simpl;~a...] 0.001 secs (0.001u,0.s) +Chars 4263 - 4310 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) Chars 4313 - 4314 [-] 0. secs (0.u,0.s) Chars 4315 - 4346 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 4347 - 4365 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) -Chars 4366 - 4380 [rewrite~<-~Ht.] 0. secs (0.u,0.s) +Chars 4347 - 4365 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) +Chars 4366 - 4380 [(rewrite~<-~Ht).] 0. secs (0.u,0.s) Chars 4381 - 4386 [auto.] 0. secs (0.u,0.s) Chars 4389 - 4390 [-] 0. secs (0.u,0.s) -Chars 4391 - 4401 [apply~IHn.] 0. secs (0.u,0.s) +Chars 4391 - 4401 [(apply~IHn).] 0. secs (0.u,0.s) Chars 4402 - 4433 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 4434 - 4452 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) -Chars 4453 - 4469 [rewrite~Ht~in~H.] 0.013 secs (0.013u,0.s) -Chars 4474 - 4496 [rewrite~tau_eutt~in~H.] 0.012 secs (0.012u,0.s) +Chars 4434 - 4452 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) +Chars 4453 - 4469 [(rewrite~Ht~in~H).] 0.018 secs (0.018u,0.s) +Chars 4474 - 4496 [(rewrite~tau_eutt~in~H).] 0.018 secs (0.018u,0.s) Chars 4497 - 4502 [auto.] 0. secs (0.u,0.s) -Chars 4503 - 4507 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4503 - 4507 [Qed.] 0.002 secs (0.002u,0.s) diff --git a/extra/Dijkstra/StateDelaySpec.v.timing b/extra/Dijkstra/StateDelaySpec.v.timing index 22c06d07..6f912395 100644 --- a/extra/Dijkstra/StateDelaySpec.v.timing +++ b/extra/Dijkstra/StateDelaySpec.v.timing @@ -1,10 +1,10 @@ -Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.104 secs (0.092u,0.011s) -Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.044 secs (0.04u,0.003s) -Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.035 secs (0.029u,0.005s) -Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.046 secs (0.041u,0.004s) +Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.138 secs (0.121u,0.016s) +Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.063 secs (0.056u,0.007s) +Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.05 secs (0.041u,0.008s) +Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.062 secs (0.054u,0.007s) Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.021 secs (0.02u,0.s) +Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.025 secs (0.024u,0.s) Chars 433 - 469 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) Chars 615 - 638 [Section~StateDelaySpec.] 0. secs (0.u,0.s) Chars 642 - 662 [Context~(St~:~Type).] 0. secs (0.u,0.s) @@ -18,293 +18,293 @@ Chars 1054 - 1117 [Definition~StateDelayObs~:=~Ef...] 0. secs (0.u,0.s) Chars 1121 - 1194 [Definition~StateDelayMonadMorp...] 0. secs (0.u,0.s) Chars 1198 - 1270 [Definition~PrePost~A~:~Type~:=...] 0. secs (0.u,0.s) Chars 1274 - 1416 [Definition~PrePostRef~{A~:~Typ...] 0. secs (0.u,0.s) -Chars 1420 - 1575 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) +Chars 1420 - 1575 [#[program]~Definition~encode~{...] 0.004 secs (0.004u,0.s) Chars 1579 - 1671 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) Chars 1675 - 1907 [Lemma~encode_correct~:~~~foral...] 0. secs (0.u,0.s) Chars 1910 - 1916 [Proof.] 0. secs (0.u,0.s) -Chars 1921 - 1928 [intros.] 0. secs (0.u,0.s) -Chars 1929 - 1933 [cbn.] 0. secs (0.u,0.s) -Chars 1934 - 1967 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 1972 - 1986 [split;~intros.] 0. secs (0.u,0.s) +Chars 1921 - 1928 [(intros).] 0. secs (0.u,0.s) +Chars 1929 - 1933 [(cbn).] 0. secs (0.u,0.s) +Chars 1934 - 1967 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) +Chars 1972 - 1986 [(split;~intros).] 0. secs (0.u,0.s) Chars 1991 - 1992 [-] 0. secs (0.u,0.s) -Chars 1993 - 2004 [repeat~red.] 0. secs (0.u,0.s) -Chars 2005 - 2011 [simpl.] 0. secs (0.u,0.s) -Chars 2012 - 2019 [intros.] 0. secs (0.u,0.s) -Chars 2020 - 2041 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 2042 - 2054 [simpl~in~H1.] 0. secs (0.u,0.s) -Chars 2055 - 2082 [destruct~H1~as~[Hpre~Himp].] 0. secs (0.u,0.s) +Chars 1993 - 2004 [(repeat~red).] 0. secs (0.u,0.s) +Chars 2005 - 2011 [(simpl).] 0. secs (0.u,0.s) +Chars 2012 - 2019 [(intros).] 0. secs (0.u,0.s) +Chars 2020 - 2041 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 2042 - 2054 [(simpl~in~H1).] 0. secs (0.u,0.s) +Chars 2055 - 2082 [(destruct~H1~as~[Hpre~Himp]).] 0. secs (0.u,0.s) Chars 2089 - 2094 [auto.] 0. secs (0.u,0.s) Chars 2099 - 2100 [-] 0. secs (0.u,0.s) -Chars 2101 - 2118 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 2119 - 2131 [simpl~in~H0.] 0. secs (0.u,0.s) -Chars 2138 - 2164 [set~(p~:=~exist~_~post~H).] 0. secs (0.u,0.s) -Chars 2165 - 2192 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 2199 - 2208 [apply~H0.] 0. secs (0.u,0.s) +Chars 2101 - 2118 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 2119 - 2131 [(simpl~in~H0).] 0. secs (0.u,0.s) +Chars 2138 - 2164 [(set~(p~:=~exist~_~post~H)).] 0. secs (0.u,0.s) +Chars 2165 - 2192 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) +Chars 2199 - 2208 [(apply~H0).] 0. secs (0.u,0.s) Chars 2209 - 2214 [auto.] 0. secs (0.u,0.s) -Chars 2217 - 2221 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2217 - 2221 [Qed.] 0.003 secs (0.003u,0.s) Chars 2225 - 2282 [Definition~PrePostPair~A~:~Typ...] 0. secs (0.u,0.s) Chars 2286 - 2485 [Definition~PrePostPairRef~{A~:...] 0. secs (0.u,0.s) -Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.003 secs (0.003u,0.s) -Chars 2757 - 2773 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 2776 - 2801 [destruct~H0~as~[H0|~H1].] 0. secs (0.u,0.s) +Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.004 secs (0.004u,0.s) +Chars 2757 - 2773 [Next~Obligation.] 0.002 secs (0.002u,0.s) +Chars 2776 - 2801 [(destruct~H0~as~[H0|~H1]).] 0. secs (0.u,0.s) Chars 2804 - 2805 [-] 0. secs (0.u,0.s) -Chars 2806 - 2829 [destruct~H0~as~[Hp~Hr].] 0. secs (0.u,0.s) +Chars 2806 - 2829 [(destruct~H0~as~[Hp~Hr]).] 0. secs (0.u,0.s) Chars 2830 - 2835 [left.] 0. secs (0.u,0.s) Chars 2836 - 2841 [auto.] 0. secs (0.u,0.s) Chars 2844 - 2845 [-] 0. secs (0.u,0.s) -Chars 2846 - 2869 [destruct~H1~as~[Hp~Hr].] 0. secs (0.u,0.s) +Chars 2846 - 2869 [(destruct~H1~as~[Hp~Hr]).] 0. secs (0.u,0.s) Chars 2870 - 2876 [right.] 0. secs (0.u,0.s) Chars 2877 - 2882 [auto.] 0. secs (0.u,0.s) -Chars 2885 - 2889 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2893 - 3236 [Lemma~encode_pair_correct~:~~~...] 0. secs (0.u,0.s) +Chars 2885 - 2889 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2893 - 3236 [Lemma~encode_pair_correct~:~~~...] 0.001 secs (0.001u,0.s) Chars 3239 - 3245 [Proof.] 0. secs (0.u,0.s) -Chars 3250 - 3257 [intros.] 0. secs (0.u,0.s) -Chars 3258 - 3262 [cbn.] 0. secs (0.u,0.s) -Chars 3263 - 3296 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 3297 - 3311 [split;~intros.] 0. secs (0.u,0.s) +Chars 3250 - 3257 [(intros).] 0. secs (0.u,0.s) +Chars 3258 - 3262 [(cbn).] 0. secs (0.u,0.s) +Chars 3263 - 3296 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) +Chars 3297 - 3311 [(split;~intros).] 0. secs (0.u,0.s) Chars 3316 - 3317 [-] 0. secs (0.u,0.s) -Chars 3318 - 3329 [repeat~red.] 0. secs (0.u,0.s) -Chars 3330 - 3336 [simpl.] 0. secs (0.u,0.s) -Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) -Chars 3345 - 3367 [destruct~p~as~[p~Hrp].] 0. secs (0.u,0.s) +Chars 3318 - 3329 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3330 - 3336 [(simpl).] 0. secs (0.u,0.s) +Chars 3337 - 3344 [(intros).] 0. secs (0.u,0.s) +Chars 3345 - 3367 [(destruct~p~as~[p~Hrp]).] 0. secs (0.u,0.s) Chars 3374 - 3392 [specialize~(H1~s).] 0. secs (0.u,0.s) -Chars 3393 - 3405 [destruct~H1.] 0. secs (0.u,0.s) -Chars 3412 - 3468 [destruct~H2~as~[[Hs~Hp]|~[Hs~H...] 0. secs (0.u,0.s) +Chars 3393 - 3405 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 3412 - 3468 [(destruct~H2~as~[[Hs~Hp]|~[Hs~...] 0. secs (0.u,0.s) Chars 3473 - 3474 [-] 0. secs (0.u,0.s) -Chars 3475 - 3492 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 3493 - 3504 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 3511 - 3525 [split;~intros.] 0. secs (0.u,0.s) +Chars 3475 - 3492 [(repeat~red~in~H1).] 0. secs (0.u,0.s) +Chars 3493 - 3504 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 3511 - 3525 [(split;~intros).] 0. secs (0.u,0.s) Chars 3532 - 3533 [+] 0. secs (0.u,0.s) -Chars 3534 - 3561 [set~(p~:=~exist~_~post0~H).] 0. secs (0.u,0.s) -Chars 3562 - 3590 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 3599 - 3608 [apply~H1.] 0. secs (0.u,0.s) +Chars 3534 - 3561 [(set~(p~:=~exist~_~post0~H)).] 0. secs (0.u,0.s) +Chars 3562 - 3590 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) +Chars 3599 - 3608 [(apply~H1).] 0. secs (0.u,0.s) Chars 3609 - 3614 [left.] 0. secs (0.u,0.s) -Chars 3615 - 3627 [split;~auto.] 0. secs (0.u,0.s) +Chars 3615 - 3627 [(split;~auto).] 0. secs (0.u,0.s) Chars 3634 - 3635 [+] 0. secs (0.u,0.s) -Chars 3636 - 3664 [set~(p~:=~exist~_~post1~H0).] 0. secs (0.u,0.s) -Chars 3665 - 3693 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 3702 - 3711 [apply~H1.] 0. secs (0.u,0.s) +Chars 3636 - 3664 [(set~(p~:=~exist~_~post1~H0)).] 0. secs (0.u,0.s) +Chars 3665 - 3693 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) +Chars 3702 - 3711 [(apply~H1).] 0. secs (0.u,0.s) Chars 3712 - 3718 [right.] 0. secs (0.u,0.s) -Chars 3719 - 3731 [split;~auto.] 0. secs (0.u,0.s) -Chars 3734 - 3738 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3719 - 3731 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3734 - 3738 [Qed.] 0.005 secs (0.005u,0.s) Chars 3742 - 3794 [Definition~PrePostList~A~:~Typ...] 0. secs (0.u,0.s) Chars 3798 - 3977 [Definition~PrePostListRef~{A~:...] 0. secs (0.u,0.s) -Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) +Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.002 secs (0.002u,0.s) Chars 4217 - 4233 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4238 - 4258 [induction~H0;~eauto.] 0. secs (0.u,0.s) -Chars 4263 - 4288 [destruct~x~as~[post~pre].] 0. secs (0.u,0.s) -Chars 4289 - 4312 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) +Chars 4238 - 4258 [(induction~H0;~eauto).] 0. secs (0.u,0.s) +Chars 4263 - 4288 [(destruct~x~as~[post~pre]).] 0. secs (0.u,0.s) +Chars 4289 - 4312 [(destruct~H0~as~[Hs~Hr]).] 0. secs (0.u,0.s) Chars 4313 - 4318 [left.] 0. secs (0.u,0.s) Chars 4319 - 4324 [auto.] 0. secs (0.u,0.s) -Chars 4327 - 4331 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4327 - 4331 [Qed.] 0.002 secs (0.002u,0.s) Chars 4336 - 4545 [Lemma~enocde_list_correct~:~~~...] 0. secs (0.u,0.s) Chars 4548 - 4554 [Proof.] 0. secs (0.u,0.s) -Chars 4559 - 4566 [intros.] 0. secs (0.u,0.s) -Chars 4567 - 4600 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 4601 - 4615 [split;~intros.] 0. secs (0.u,0.s) +Chars 4559 - 4566 [(intros).] 0. secs (0.u,0.s) +Chars 4567 - 4600 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) +Chars 4601 - 4615 [(split;~intros).] 0. secs (0.u,0.s) Chars 4620 - 4621 [-] 0. secs (0.u,0.s) -Chars 4622 - 4633 [repeat~red.] 0. secs (0.u,0.s) -Chars 4634 - 4641 [intros.] 0. secs (0.u,0.s) -Chars 4642 - 4663 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 4664 - 4674 [red~in~H0.] 0. secs (0.u,0.s) +Chars 4622 - 4633 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4634 - 4641 [(intros).] 0. secs (0.u,0.s) +Chars 4642 - 4663 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 4664 - 4674 [(red~in~H0).] 0. secs (0.u,0.s) Chars 4681 - 4710 [specialize~(H0~s)~as~Hrefine.] 0. secs (0.u,0.s) -Chars 4711 - 4736 [unfold~encode_list~in~H1.] 0. secs (0.u,0.s) -Chars 4737 - 4748 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4755 - 4769 [induction~ppl.] 0. secs (0.u,0.s) +Chars 4711 - 4736 [(unfold~encode_list~in~H1).] 0. secs (0.u,0.s) +Chars 4737 - 4748 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4755 - 4769 [(induction~ppl).] 0. secs (0.u,0.s) Chars 4776 - 4777 [+] 0. secs (0.u,0.s) -Chars 4778 - 4791 [inversion~H1.] 0. secs (0.u,0.s) +Chars 4778 - 4791 [(inversion~H1).] 0. secs (0.u,0.s) Chars 4798 - 4799 [+] 0. secs (0.u,0.s) -Chars 4800 - 4825 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) -Chars 4834 - 4854 [inversion~H1;~subst.] 0.001 secs (0.001u,0.s) +Chars 4800 - 4825 [(destruct~a~as~[post~pre]).] 0. secs (0.u,0.s) +Chars 4834 - 4854 [(inversion~H1;~subst).] 0.001 secs (0.001u,0.s) Chars 4863 - 4864 [*] 0. secs (0.u,0.s) -Chars 4865 - 4877 [destruct~H3.] 0. secs (0.u,0.s) +Chars 4865 - 4877 [(destruct~H3).] 0. secs (0.u,0.s) Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) -Chars 4894 - 4932 [assert~(pre~s~->~post~(m~s));~...] 0. secs (0.u,0.s) -Chars 4943 - 4950 [intros.] 0. secs (0.u,0.s) -Chars 4951 - 4982 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) +Chars 4894 - 4932 [(assert~(pre~s~->~post~(m~s));...] 0. secs (0.u,0.s) +Chars 4943 - 4950 [(intros).] 0. secs (0.u,0.s) +Chars 4951 - 4982 [(inversion~Hrefine;~subst;~auto).] 0. secs (0.u,0.s) Chars 4991 - 4992 [*] 0. secs (0.u,0.s) -Chars 4993 - 5011 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 4993 - 5011 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) Chars 5022 - 5024 [--] 0. secs (0.u,0.s) -Chars 5025 - 5043 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) +Chars 5025 - 5043 [(inversion~H;~auto).] 0.001 secs (0.001u,0.s) Chars 5054 - 5056 [--] 0. secs (0.u,0.s) -Chars 5057 - 5064 [intros.] 0. secs (0.u,0.s) +Chars 5057 - 5064 [(intros).] 0. secs (0.u,0.s) Chars 5065 - 5084 [specialize~(H0~s0).] 0. secs (0.u,0.s) -Chars 5085 - 5098 [inversion~H0.] 0. secs (0.u,0.s) +Chars 5085 - 5098 [(inversion~H0).] 0. secs (0.u,0.s) Chars 5099 - 5104 [auto.] 0. secs (0.u,0.s) Chars 5115 - 5117 [--] 0. secs (0.u,0.s) Chars 5118 - 5136 [specialize~(H0~s).] 0. secs (0.u,0.s) -Chars 5137 - 5150 [inversion~H0.] 0. secs (0.u,0.s) +Chars 5137 - 5150 [(inversion~H0).] 0. secs (0.u,0.s) Chars 5151 - 5156 [auto.] 0. secs (0.u,0.s) Chars 5161 - 5162 [-] 0. secs (0.u,0.s) -Chars 5163 - 5188 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) -Chars 5189 - 5200 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5201 - 5212 [repeat~red.] 0. secs (0.u,0.s) -Chars 5213 - 5230 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 5231 - 5242 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5243 - 5250 [intros.] 0. secs (0.u,0.s) -Chars 5257 - 5277 [induction~ppl;~auto.] 0. secs (0.u,0.s) -Chars 5284 - 5309 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) +Chars 5163 - 5188 [(unfold~encode_list~in~H0).] 0. secs (0.u,0.s) +Chars 5189 - 5200 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5201 - 5212 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5213 - 5230 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 5231 - 5242 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5243 - 5250 [(intros).] 0. secs (0.u,0.s) +Chars 5257 - 5277 [(induction~ppl;~auto).] 0. secs (0.u,0.s) +Chars 5284 - 5309 [(destruct~a~as~[post~pre]).] 0. secs (0.u,0.s) Chars 5310 - 5336 [specialize~(H0~s)~as~Henc.] 0. secs (0.u,0.s) -Chars 5343 - 5375 [assert~(Heutt~:~resp_eutt~post).] 0. secs (0.u,0.s) +Chars 5343 - 5375 [(assert~(Heutt~:~resp_eutt~pos...] 0. secs (0.u,0.s) Chars 5382 - 5383 [{] 0. secs (0.u,0.s) -Chars 5384 - 5396 [inversion~H.] 0.004 secs (0.003u,0.s) +Chars 5384 - 5396 [(inversion~H).] 0.005 secs (0.005u,0.s) Chars 5397 - 5402 [auto.] 0. secs (0.u,0.s) Chars 5403 - 5404 [}] 0. secs (0.u,0.s) -Chars 5411 - 5441 [set~(p~:=~exist~_~post~Heutt).] 0. secs (0.u,0.s) +Chars 5411 - 5441 [(set~(p~:=~exist~_~post~Heutt)).] 0. secs (0.u,0.s) Chars 5442 - 5471 [specialize~(Henc~p)~as~Hencp.] 0. secs (0.u,0.s) -Chars 5478 - 5498 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 5478 - 5498 [(constructor;~intros).] 0. secs (0.u,0.s) Chars 5505 - 5506 [+] 0. secs (0.u,0.s) -Chars 5507 - 5535 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 5536 - 5548 [apply~Hencp.] 0. secs (0.u,0.s) +Chars 5507 - 5535 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) +Chars 5536 - 5548 [(apply~Hencp).] 0. secs (0.u,0.s) Chars 5557 - 5562 [left.] 0. secs (0.u,0.s) -Chars 5563 - 5575 [split;~auto.] 0. secs (0.u,0.s) +Chars 5563 - 5575 [(split;~auto).] 0. secs (0.u,0.s) Chars 5582 - 5583 [+] 0. secs (0.u,0.s) -Chars 5584 - 5602 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 5584 - 5602 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) Chars 5611 - 5612 [*] 0. secs (0.u,0.s) -Chars 5613 - 5625 [inversion~H.] 0.001 secs (0.001u,0.s) +Chars 5613 - 5625 [(inversion~H).] 0.001 secs (0.001u,0.s) Chars 5626 - 5631 [auto.] 0. secs (0.u,0.s) Chars 5640 - 5641 [*] 0. secs (0.u,0.s) Chars 5642 - 5654 [clear~IHppl.] 0. secs (0.u,0.s) -Chars 5655 - 5662 [intros.] 0. secs (0.u,0.s) -Chars 5663 - 5672 [apply~H0.] 0. secs (0.u,0.s) +Chars 5655 - 5662 [(intros).] 0. secs (0.u,0.s) +Chars 5663 - 5672 [(apply~H0).] 0. secs (0.u,0.s) Chars 5673 - 5679 [eauto.] 0. secs (0.u,0.s) -Chars 5682 - 5686 [Qed.] 0.008 secs (0.008u,0.s) +Chars 5682 - 5686 [Qed.] 0.011 secs (0.011u,0.s) Chars 5690 - 5770 [Definition~DynPrePost~A~:~Type...] 0. secs (0.u,0.s) Chars 5774 - 5916 [Definition~DynPrePostRef~{A~:~...] 0. secs (0.u,0.s) -Chars 5920 - 6081 [#[program]~Definition~encode_d...] 0.002 secs (0.002u,0.s) +Chars 5920 - 6081 [#[program]~Definition~encode_d...] 0.003 secs (0.003u,0.s) Chars 6085 - 6320 [Lemma~encode_dyn_correct~:~~~f...] 0. secs (0.u,0.s) Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) -Chars 6338 - 6345 [intros.] 0. secs (0.u,0.s) -Chars 6346 - 6379 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 6380 - 6394 [split;~intros.] 0. secs (0.u,0.s) +Chars 6338 - 6345 [(intros).] 0. secs (0.u,0.s) +Chars 6346 - 6379 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) +Chars 6380 - 6394 [(split;~intros).] 0. secs (0.u,0.s) Chars 6401 - 6402 [-] 0. secs (0.u,0.s) -Chars 6403 - 6414 [repeat~red.] 0. secs (0.u,0.s) -Chars 6415 - 6425 [red~in~H0.] 0. secs (0.u,0.s) -Chars 6426 - 6433 [intros.] 0. secs (0.u,0.s) -Chars 6434 - 6455 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 6456 - 6467 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6476 - 6499 [destruct~H1~as~[Hs~Hr].] 0. secs (0.u,0.s) +Chars 6403 - 6414 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6415 - 6425 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 6426 - 6433 [(intros).] 0. secs (0.u,0.s) +Chars 6434 - 6455 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 6456 - 6467 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6476 - 6499 [(destruct~H1~as~[Hs~Hr]).] 0. secs (0.u,0.s) Chars 6500 - 6505 [auto.] 0. secs (0.u,0.s) Chars 6512 - 6513 [-] 0. secs (0.u,0.s) -Chars 6514 - 6531 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 6532 - 6536 [red.] 0. secs (0.u,0.s) -Chars 6537 - 6544 [intros.] 0. secs (0.u,0.s) -Chars 6553 - 6588 [set~(p~:=~exist~_~(post~s)~(H~...] 0. secs (0.u,0.s) +Chars 6514 - 6531 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 6532 - 6536 [(red).] 0. secs (0.u,0.s) +Chars 6537 - 6544 [(intros).] 0. secs (0.u,0.s) +Chars 6553 - 6588 [(set~(p~:=~exist~_~(post~s)~(H...] 0. secs (0.u,0.s) Chars 6589 - 6609 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 6618 - 6633 [unfold~p~in~H0.] 0. secs (0.u,0.s) -Chars 6634 - 6645 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6618 - 6633 [(unfold~p~in~H0).] 0. secs (0.u,0.s) +Chars 6634 - 6645 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 6646 - 6651 [auto.] 0. secs (0.u,0.s) -Chars 6656 - 6660 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6656 - 6660 [Qed.] 0.002 secs (0.002u,0.s) Chars 6664 - 6807 [Definition~DynPrePostListRef~{...] 0. secs (0.u,0.s) -Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) +Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.002 secs (0.002u,0.s) Chars 7028 - 7044 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 7049 - 7069 [induction~H0;~eauto.] 0. secs (0.u,0.s) +Chars 7049 - 7069 [(induction~H0;~eauto).] 0. secs (0.u,0.s) Chars 7070 - 7075 [left.] 0. secs (0.u,0.s) -Chars 7076 - 7101 [destruct~x~as~[pre~post].] 0. secs (0.u,0.s) -Chars 7102 - 7125 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) -Chars 7130 - 7142 [split;~auto.] 0. secs (0.u,0.s) -Chars 7145 - 7149 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7076 - 7101 [(destruct~x~as~[pre~post]).] 0. secs (0.u,0.s) +Chars 7102 - 7125 [(destruct~H0~as~[Hs~Hr]).] 0. secs (0.u,0.s) +Chars 7130 - 7142 [(split;~auto).] 0. secs (0.u,0.s) +Chars 7145 - 7149 [Qed.] 0.002 secs (0.002u,0.s) Chars 7153 - 7392 [Lemma~enocde_list_dyn_correct~...] 0. secs (0.u,0.s) Chars 7395 - 7401 [Proof.] 0. secs (0.u,0.s) -Chars 7406 - 7413 [intros.] 0. secs (0.u,0.s) -Chars 7414 - 7447 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 7448 - 7462 [split;~intros.] 0. secs (0.u,0.s) +Chars 7406 - 7413 [(intros).] 0. secs (0.u,0.s) +Chars 7414 - 7447 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) +Chars 7448 - 7462 [(split;~intros).] 0. secs (0.u,0.s) Chars 7467 - 7468 [-] 0. secs (0.u,0.s) -Chars 7469 - 7480 [repeat~red.] 0. secs (0.u,0.s) -Chars 7481 - 7488 [intros.] 0. secs (0.u,0.s) -Chars 7489 - 7510 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7511 - 7523 [simpl~in~H1.] 0. secs (0.u,0.s) -Chars 7524 - 7534 [red~in~H0.] 0. secs (0.u,0.s) +Chars 7469 - 7480 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7481 - 7488 [(intros).] 0. secs (0.u,0.s) +Chars 7489 - 7510 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 7511 - 7523 [(simpl~in~H1).] 0. secs (0.u,0.s) +Chars 7524 - 7534 [(red~in~H0).] 0. secs (0.u,0.s) Chars 7535 - 7558 [rename~H0~into~Hrefine.] 0. secs (0.u,0.s) -Chars 7565 - 7597 [unfold~DynPrePostRef~in~Hrefine.] 0. secs (0.u,0.s) -Chars 7604 - 7618 [induction~ppl.] 0. secs (0.u,0.s) +Chars 7565 - 7597 [(unfold~DynPrePostRef~in~Hrefi...] 0. secs (0.u,0.s) +Chars 7604 - 7618 [(induction~ppl).] 0. secs (0.u,0.s) Chars 7625 - 7626 [+] 0. secs (0.u,0.s) -Chars 7627 - 7640 [inversion~H1.] 0. secs (0.u,0.s) +Chars 7627 - 7640 [(inversion~H1).] 0. secs (0.u,0.s) Chars 7647 - 7648 [+] 0. secs (0.u,0.s) -Chars 7649 - 7674 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) -Chars 7683 - 7703 [inversion~H1;~subst.] 0.001 secs (0.001u,0.s) +Chars 7649 - 7674 [(destruct~a~as~[pre~post]).] 0. secs (0.u,0.s) +Chars 7683 - 7703 [(inversion~H1;~subst).] 0.001 secs (0.001u,0.s) Chars 7712 - 7713 [*] 0. secs (0.u,0.s) -Chars 7714 - 7726 [destruct~H2.] 0. secs (0.u,0.s) -Chars 7737 - 7777 [assert~(pre~s~->~post~s~(m~s))...] 0. secs (0.u,0.s) -Chars 7788 - 7795 [intros.] 0. secs (0.u,0.s) -Chars 7796 - 7827 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) +Chars 7714 - 7726 [(destruct~H2).] 0. secs (0.u,0.s) +Chars 7737 - 7777 [(assert~(pre~s~->~post~s~(m~s)...] 0. secs (0.u,0.s) +Chars 7788 - 7795 [(intros).] 0. secs (0.u,0.s) +Chars 7796 - 7827 [(inversion~Hrefine;~subst;~auto).] 0. secs (0.u,0.s) Chars 7836 - 7837 [*] 0. secs (0.u,0.s) -Chars 7838 - 7856 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 7838 - 7856 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) Chars 7867 - 7869 [--] 0. secs (0.u,0.s) -Chars 7870 - 7888 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) +Chars 7870 - 7888 [(inversion~H;~auto).] 0.001 secs (0.001u,0.s) Chars 7899 - 7901 [--] 0. secs (0.u,0.s) -Chars 7902 - 7909 [intros.] 0. secs (0.u,0.s) -Chars 7910 - 7934 [inversion~Hrefine;~auto.] 0. secs (0.u,0.s) +Chars 7902 - 7909 [(intros).] 0. secs (0.u,0.s) +Chars 7910 - 7934 [(inversion~Hrefine;~auto).] 0. secs (0.u,0.s) Chars 7939 - 7940 [-] 0. secs (0.u,0.s) -Chars 7941 - 7966 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) -Chars 7967 - 7978 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7979 - 7990 [repeat~red.] 0. secs (0.u,0.s) -Chars 7991 - 8008 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 8009 - 8020 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 8021 - 8028 [intros.] 0. secs (0.u,0.s) -Chars 8035 - 8055 [induction~ppl;~auto.] 0. secs (0.u,0.s) -Chars 8062 - 8087 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) -Chars 8094 - 8140 [assert~(Heutt~:~forall~s,~resp...] 0. secs (0.u,0.s) +Chars 7941 - 7966 [(unfold~encode_list~in~H0).] 0. secs (0.u,0.s) +Chars 7967 - 7978 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7979 - 7990 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7991 - 8008 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 8009 - 8020 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 8021 - 8028 [(intros).] 0. secs (0.u,0.s) +Chars 8035 - 8055 [(induction~ppl;~auto).] 0. secs (0.u,0.s) +Chars 8062 - 8087 [(destruct~a~as~[pre~post]).] 0. secs (0.u,0.s) +Chars 8094 - 8140 [(assert~(Heutt~:~forall~s,~res...] 0. secs (0.u,0.s) Chars 8147 - 8148 [{] 0. secs (0.u,0.s) -Chars 8149 - 8161 [inversion~H.] 0.001 secs (0.001u,0.s) +Chars 8149 - 8161 [(inversion~H).] 0.001 secs (0.001u,0.s) Chars 8162 - 8167 [auto.] 0. secs (0.u,0.s) Chars 8168 - 8169 [}] 0. secs (0.u,0.s) -Chars 8176 - 8196 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 8176 - 8196 [(constructor;~intros).] 0. secs (0.u,0.s) Chars 8203 - 8204 [+] 0. secs (0.u,0.s) -Chars 8205 - 8209 [red.] 0. secs (0.u,0.s) -Chars 8210 - 8217 [intros.] 0. secs (0.u,0.s) -Chars 8218 - 8256 [set~(p~:=~exist~_~(post~s)~(He...] 0. secs (0.u,0.s) +Chars 8205 - 8209 [(red).] 0. secs (0.u,0.s) +Chars 8210 - 8217 [(intros).] 0. secs (0.u,0.s) +Chars 8218 - 8256 [(set~(p~:=~exist~_~(post~s)~(H...] 0. secs (0.u,0.s) Chars 8265 - 8285 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 8286 - 8313 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 8314 - 8323 [apply~H0.] 0. secs (0.u,0.s) +Chars 8286 - 8313 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) +Chars 8314 - 8323 [(apply~H0).] 0. secs (0.u,0.s) Chars 8332 - 8337 [left.] 0. secs (0.u,0.s) -Chars 8338 - 8350 [split;~auto.] 0. secs (0.u,0.s) +Chars 8338 - 8350 [(split;~auto).] 0. secs (0.u,0.s) Chars 8357 - 8358 [+] 0. secs (0.u,0.s) -Chars 8359 - 8377 [apply~IHppl;~auto.] 0. secs (0.u,0.s) +Chars 8359 - 8377 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) Chars 8386 - 8387 [*] 0. secs (0.u,0.s) -Chars 8388 - 8400 [inversion~H.] 0.001 secs (0.001u,0.s) +Chars 8388 - 8400 [(inversion~H).] 0.001 secs (0.001u,0.s) Chars 8401 - 8406 [auto.] 0. secs (0.u,0.s) Chars 8415 - 8416 [*] 0. secs (0.u,0.s) Chars 8417 - 8429 [clear~IHppl.] 0. secs (0.u,0.s) -Chars 8430 - 8437 [intros.] 0. secs (0.u,0.s) +Chars 8430 - 8437 [(intros).] 0. secs (0.u,0.s) Chars 8448 - 8468 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 8469 - 8478 [apply~H0.] 0. secs (0.u,0.s) +Chars 8469 - 8478 [(apply~H0).] 0. secs (0.u,0.s) Chars 8479 - 8485 [eauto.] 0. secs (0.u,0.s) -Chars 8488 - 8492 [Qed.] 0.009 secs (0.008u,0.s) -Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.003 secs (0.003u,0.s) +Chars 8488 - 8492 [Qed.] 0.012 secs (0.012u,0.s) +Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.001 secs (0.001u,0.s) Chars 8993 - 8999 [Proof.] 0. secs (0.u,0.s) -Chars 9004 - 9011 [intros.] 0. secs (0.u,0.s) -Chars 9012 - 9028 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 9029 - 9040 [repeat~red.] 0. secs (0.u,0.s) -Chars 9041 - 9048 [intros.] 0. secs (0.u,0.s) -Chars 9053 - 9074 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 9075 - 9086 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 9091 - 9103 [destruct~H3.] 0. secs (0.u,0.s) -Chars 9108 - 9155 [destruct~(eutt_reta_or_div~(m~...] 0. secs (0.u,0.s) +Chars 9004 - 9011 [(intros).] 0. secs (0.u,0.s) +Chars 9012 - 9028 [(repeat~red~in~H).] 0.003 secs (0.003u,0.s) +Chars 9029 - 9040 [(repeat~red).] 0. secs (0.u,0.s) +Chars 9041 - 9048 [(intros).] 0. secs (0.u,0.s) +Chars 9053 - 9074 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 9075 - 9086 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 9091 - 9103 [(destruct~H3).] 0. secs (0.u,0.s) +Chars 9108 - 9155 [(destruct~(eutt_reta_or_div~(m...] 0. secs (0.u,0.s) Chars 9160 - 9161 [-] 0. secs (0.u,0.s) -Chars 9162 - 9183 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) -Chars 9190 - 9200 [cbn~in~H5.] 0. secs (0.u,0.s) -Chars 9201 - 9232 [rewrite~<-~H5,~bind_ret_l;~cbn.] 0.005 secs (0.005u,0.s) -Chars 9233 - 9246 [apply~H4,~H0.] 0. secs (0.u,0.s) -Chars 9247 - 9258 [rewrite~H5.] 0.001 secs (0.001u,0.s) -Chars 9265 - 9302 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) +Chars 9162 - 9183 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) +Chars 9190 - 9200 [(cbn~in~H5).] 0. secs (0.u,0.s) +Chars 9201 - 9232 [(rewrite~<-~H5,~bind_ret_l;~cbn).] 0.007 secs (0.007u,0.s) +Chars 9233 - 9246 [(apply~H4,~H0).] 0. secs (0.u,0.s) +Chars 9247 - 9258 [(rewrite~H5).] 0.001 secs (0.001u,0.s) +Chars 9265 - 9302 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) Chars 9307 - 9308 [-] 0. secs (0.u,0.s) -Chars 9309 - 9335 [apply~div_spin_eutt~in~H5.] 0. secs (0.u,0.s) -Chars 9342 - 9367 [rewrite~H5,~<-~spin_bind.] 0.003 secs (0.003u,0.s) -Chars 9368 - 9381 [apply~H4,~H1.] 0. secs (0.u,0.s) -Chars 9382 - 9396 [rewrite~<-~H5.] 0.001 secs (0.001u,0.s) -Chars 9397 - 9434 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) -Chars 9437 - 9441 [Qed.] 0.004 secs (0.003u,0.s) +Chars 9309 - 9335 [(apply~div_spin_eutt~in~H5).] 0. secs (0.u,0.s) +Chars 9342 - 9367 [(rewrite~H5,~<-~spin_bind).] 0.005 secs (0.005u,0.s) +Chars 9368 - 9381 [(apply~H4,~H1).] 0. secs (0.u,0.s) +Chars 9382 - 9396 [(rewrite~<-~H5).] 0.001 secs (0.001u,0.s) +Chars 9397 - 9434 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) +Chars 9437 - 9441 [Qed.] 0.005 secs (0.005u,0.s) Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.001 secs (0.001u,0.s) Chars 9947 - 9953 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9965 [intros.] 0. secs (0.u,0.s) -Chars 9970 - 10004 [eapply~combine_prepost_aux;~ea...] 0.002 secs (0.002u,0.s) -Chars 10009 - 10016 [intros.] 0. secs (0.u,0.s) +Chars 9958 - 9965 [(intros).] 0. secs (0.u,0.s) +Chars 9970 - 10004 [(eapply~combine_prepost_aux;~e...] 0. secs (0.u,0.s) +Chars 10009 - 10016 [(intros).] 0. secs (0.u,0.s) Chars 10021 - 10047 [specialize~(H1~a)~as~Hpp2.] 0. secs (0.u,0.s) -Chars 10048 - 10067 [repeat~red~in~Hpp2.] 0. secs (0.u,0.s) +Chars 10048 - 10067 [(repeat~red~in~Hpp2).] 0. secs (0.u,0.s) Chars 10072 - 10112 [specialize~(Hpp2~s~(exist~_~po...] 0. secs (0.u,0.s) -Chars 10113 - 10124 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 10129 - 10140 [apply~Hpp2.] 0. secs (0.u,0.s) -Chars 10141 - 10154 [split;~eauto.] 0. secs (0.u,0.s) -Chars 10157 - 10161 [Qed.] 0. secs (0.u,0.s) -Chars 10163 - 10182 [End~StateDelaySpec.] 0.001 secs (0.001u,0.s) +Chars 10113 - 10124 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 10129 - 10140 [(apply~Hpp2).] 0. secs (0.u,0.s) +Chars 10141 - 10154 [(split;~eauto).] 0. secs (0.u,0.s) +Chars 10157 - 10161 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10163 - 10182 [End~StateDelaySpec.] 0.003 secs (0.002u,0.s) diff --git a/extra/Dijkstra/StateSpecT.v.timing b/extra/Dijkstra/StateSpecT.v.timing index 245f21bf..53c068a9 100644 --- a/extra/Dijkstra/StateSpecT.v.timing +++ b/extra/Dijkstra/StateSpecT.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.164 secs (0.145u,0.017s) -Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.011u,0.002s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.224 secs (0.196u,0.027s) +Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) Chars 341 - 355 [Import~Monads.] 0. secs (0.u,0.s) Chars 356 - 377 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 379 - 411 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -20,63 +20,63 @@ Chars 792 - 841 [Definition~StateSpecT~(A~:~Typ...] 0. secs (0.u,0.s) Chars 845 - 970 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) Chars 974 - 1041 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) Chars 1044 - 1050 [Proof.] 0. secs (0.u,0.s) -Chars 1055 - 1078 [destruct~OrderedMonadW.] 0. secs (0.u,0.s) +Chars 1055 - 1078 [(destruct~OrderedMonadW).] 0. secs (0.u,0.s) Chars 1083 - 1095 [constructor.] 0. secs (0.u,0.s) Chars 1100 - 1101 [-] 0. secs (0.u,0.s) -Chars 1102 - 1115 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1102 - 1115 [(repeat~intro).] 0. secs (0.u,0.s) Chars 1117 - 1122 [auto.] 0. secs (0.u,0.s) Chars 1127 - 1128 [-] 0. secs (0.u,0.s) -Chars 1129 - 1142 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1143 - 1163 [eapply~trans;~eauto.] 0.028 secs (0.026u,0.002s) +Chars 1129 - 1142 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1143 - 1163 [(eapply~trans;~eauto).] 0.005 secs (0.003u,0.001s) Chars 1168 - 1169 [-] 0. secs (0.u,0.s) -Chars 1170 - 1201 [intros~A~B~w1~w2~f1~f2~Hlw~Hlf.] 0. secs (0.u,0.s) -Chars 1202 - 1225 [unfold~StateSpecT~in~*.] 0. secs (0.u,0.s) -Chars 1232 - 1243 [repeat~red.] 0. secs (0.u,0.s) -Chars 1250 - 1257 [intros.] 0. secs (0.u,0.s) -Chars 1258 - 1276 [apply~monot;~auto.] 0. secs (0.u,0.s) -Chars 1277 - 1284 [intros.] 0. secs (0.u,0.s) -Chars 1285 - 1306 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) -Chars 1307 - 1313 [simpl.] 0. secs (0.u,0.s) -Chars 1320 - 1338 [repeat~red~in~Hlf.] 0. secs (0.u,0.s) -Chars 1339 - 1349 [apply~Hlf.] 0. secs (0.u,0.s) -Chars 1352 - 1356 [Qed.] 0. secs (0.u,0.s) +Chars 1170 - 1201 [(intros~A~B~w1~w2~f1~f2~Hlw~Hlf).] 0. secs (0.u,0.s) +Chars 1202 - 1225 [(unfold~StateSpecT~in~*).] 0. secs (0.u,0.s) +Chars 1232 - 1243 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1250 - 1257 [(intros).] 0. secs (0.u,0.s) +Chars 1258 - 1276 [(apply~monot;~auto).] 0.035 secs (0.032u,0.002s) +Chars 1277 - 1284 [(intros).] 0. secs (0.u,0.s) +Chars 1285 - 1306 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) +Chars 1307 - 1313 [(simpl).] 0. secs (0.u,0.s) +Chars 1320 - 1338 [(repeat~red~in~Hlf).] 0. secs (0.u,0.s) +Chars 1339 - 1349 [(apply~Hlf).] 0. secs (0.u,0.s) +Chars 1352 - 1356 [Qed.] 0.001 secs (0.001u,0.s) Chars 1360 - 1463 [#[global]~Instance~StateSpecTE...] 0. secs (0.u,0.s) Chars 1467 - 1530 [#[global]~Instance~StateSpecTM...] 0. secs (0.u,0.s) Chars 1533 - 1539 [Proof.] 0. secs (0.u,0.s) -Chars 1544 - 1564 [destruct~MonadLawsW.] 0. secs (0.u,0.s) +Chars 1544 - 1564 [(destruct~MonadLawsW).] 0. secs (0.u,0.s) Chars 1569 - 1581 [constructor.] 0. secs (0.u,0.s) Chars 1586 - 1587 [-] 0. secs (0.u,0.s) -Chars 1588 - 1603 [intros~A~B~f~a.] 0. secs (0.u,0.s) +Chars 1588 - 1603 [(intros~A~B~f~a).] 0. secs (0.u,0.s) Chars 1604 - 1610 [intro.] 0. secs (0.u,0.s) -Chars 1611 - 1622 [repeat~red.] 0. secs (0.u,0.s) -Chars 1629 - 1633 [cbn.] 0. secs (0.u,0.s) -Chars 1640 - 1659 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 1660 - 1666 [simpl.] 0. secs (0.u,0.s) +Chars 1611 - 1622 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1629 - 1633 [(cbn).] 0. secs (0.u,0.s) +Chars 1640 - 1659 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 1660 - 1666 [(simpl).] 0. secs (0.u,0.s) Chars 1667 - 1679 [reflexivity.] 0. secs (0.u,0.s) Chars 1684 - 1685 [-] 0. secs (0.u,0.s) -Chars 1686 - 1697 [intros~A~w.] 0. secs (0.u,0.s) +Chars 1686 - 1697 [(intros~A~w).] 0. secs (0.u,0.s) Chars 1698 - 1704 [intro.] 0. secs (0.u,0.s) -Chars 1705 - 1709 [cbn.] 0. secs (0.u,0.s) -Chars 1716 - 1754 [etransitivity;~[~~|~apply~bind...] 0. secs (0.u,0.s) -Chars 1761 - 1799 [eapply~Proper_bind;~[~reflexiv...] 0. secs (0.u,0.s) -Chars 1806 - 1829 [intros~[];~reflexivity.] 0. secs (0.u,0.s) +Chars 1705 - 1709 [(cbn).] 0. secs (0.u,0.s) +Chars 1716 - 1754 [(etransitivity;~[~~|~apply~bin...] 0. secs (0.u,0.s) +Chars 1761 - 1799 [(eapply~Proper_bind;~[~reflexi...] 0. secs (0.u,0.s) +Chars 1806 - 1829 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 1834 - 1835 [-] 0. secs (0.u,0.s) -Chars 1836 - 1855 [intros~A~B~C~w~f~g.] 0. secs (0.u,0.s) +Chars 1836 - 1855 [(intros~A~B~C~w~f~g).] 0. secs (0.u,0.s) Chars 1856 - 1862 [intro.] 0. secs (0.u,0.s) -Chars 1863 - 1867 [cbn.] 0. secs (0.u,0.s) -Chars 1868 - 1886 [rewrite~bind_bind.] 0. secs (0.u,0.s) +Chars 1863 - 1867 [(cbn).] 0. secs (0.u,0.s) +Chars 1868 - 1886 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) Chars 1887 - 1899 [reflexivity.] 0. secs (0.u,0.s) Chars 1904 - 1905 [-] 0. secs (0.u,0.s) -Chars 1906 - 1935 [intros~A~B~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 1942 - 1946 [cbn.] 0. secs (0.u,0.s) -Chars 1947 - 1956 [do~2~red.] 0. secs (0.u,0.s) -Chars 1957 - 1964 [intros.] 0. secs (0.u,0.s) -Chars 1965 - 1980 [do~2~red~in~Hw.] 0. secs (0.u,0.s) -Chars 1981 - 1992 [rewrite~Hw.] 0.001 secs (0.001u,0.s) -Chars 1993 - 2008 [do~3~red~in~Hk.] 0. secs (0.u,0.s) -Chars 2015 - 2033 [setoid_rewrite~Hk.] 0.001 secs (0.001u,0.s) +Chars 1906 - 1935 [(intros~A~B~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 1942 - 1946 [(cbn).] 0. secs (0.u,0.s) +Chars 1947 - 1956 [(do~2~red).] 0. secs (0.u,0.s) +Chars 1957 - 1964 [(intros).] 0. secs (0.u,0.s) +Chars 1965 - 1980 [(do~2~red~in~Hw).] 0. secs (0.u,0.s) +Chars 1981 - 1992 [(rewrite~Hw).] 0.001 secs (0.001u,0.s) +Chars 1993 - 2008 [(do~3~red~in~Hk).] 0. secs (0.u,0.s) +Chars 2015 - 2033 [setoid_rewrite~Hk.] 0.002 secs (0.002u,0.s) Chars 2034 - 2046 [reflexivity.] 0. secs (0.u,0.s) -Chars 2049 - 2053 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2049 - 2053 [Qed.] 0.002 secs (0.002u,0.s) Chars 2057 - 2077 [Section~Observation.] 0. secs (0.u,0.s) Chars 2082 - 2109 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 2114 - 2141 [Context~{MonadM~:~Monad~M}.] 0. secs (0.u,0.s) @@ -85,24 +85,24 @@ Chars 2189 - 2247 [Context~{MonadMorphismMW~:~Mon...] 0. secs (0.u,0.s) Chars 2253 - 2354 [#[global]~Instance~EffectObsSt...] 0. secs (0.u,0.s) Chars 2360 - 2456 [#[global]~Instance~MonadMorphi...] 0. secs (0.u,0.s) Chars 2461 - 2467 [Proof.] 0. secs (0.u,0.s) -Chars 2474 - 2499 [destruct~MonadMorphismMW.] 0. secs (0.u,0.s) +Chars 2474 - 2499 [(destruct~MonadMorphismMW).] 0. secs (0.u,0.s) Chars 2506 - 2518 [constructor.] 0. secs (0.u,0.s) Chars 2525 - 2526 [-] 0. secs (0.u,0.s) -Chars 2527 - 2534 [intros.] 0. secs (0.u,0.s) -Chars 2535 - 2546 [repeat~red.] 0. secs (0.u,0.s) -Chars 2547 - 2554 [intros.] 0. secs (0.u,0.s) +Chars 2527 - 2534 [(intros).] 0. secs (0.u,0.s) +Chars 2535 - 2546 [(repeat~red).] 0. secs (0.u,0.s) +Chars 2547 - 2554 [(intros).] 0. secs (0.u,0.s) Chars 2555 - 2597 [specialize~(ret_pres~(S~*~A)%t...] 0. secs (0.u,0.s) -Chars 2606 - 2610 [cbn.] 0. secs (0.u,0.s) -Chars 2611 - 2631 [rewrite~<-~ret_pres.] 0. secs (0.u,0.s) +Chars 2606 - 2610 [(cbn).] 0. secs (0.u,0.s) +Chars 2611 - 2631 [(rewrite~<-~ret_pres).] 0. secs (0.u,0.s) Chars 2632 - 2644 [reflexivity.] 0. secs (0.u,0.s) Chars 2651 - 2652 [-] 0. secs (0.u,0.s) -Chars 2653 - 2660 [intros.] 0. secs (0.u,0.s) -Chars 2661 - 2672 [repeat~red.] 0. secs (0.u,0.s) -Chars 2673 - 2680 [intros.] 0. secs (0.u,0.s) -Chars 2681 - 2685 [cbn.] 0. secs (0.u,0.s) +Chars 2653 - 2660 [(intros).] 0. secs (0.u,0.s) +Chars 2661 - 2672 [(repeat~red).] 0. secs (0.u,0.s) +Chars 2673 - 2680 [(intros).] 0. secs (0.u,0.s) +Chars 2681 - 2685 [(cbn).] 0. secs (0.u,0.s) Chars 2686 - 2736 [specialize~(bind_pres~(S~*~A)%...] 0. secs (0.u,0.s) -Chars 2745 - 2773 [unfold~obs,~EffectObsStateT.] 0. secs (0.u,0.s) -Chars 2782 - 2800 [rewrite~bind_pres.] 0. secs (0.u,0.s) +Chars 2745 - 2773 [(unfold~obs,~EffectObsStateT).] 0. secs (0.u,0.s) +Chars 2782 - 2800 [(rewrite~bind_pres).] 0.001 secs (0.001u,0.s) Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) Chars 2818 - 2822 [Qed.] 0.001 secs (0.001u,0.s) Chars 2826 - 2842 [End~Observation.] 0. secs (0.u,0.s) @@ -118,37 +118,37 @@ Chars 3888 - 3985 [Definition~decurry_flip~{A~B~C...] 0. secs (0.u,0.s) Chars 4016 - 4162 [Definition~iso_destatify_arrow...] 0. secs (0.u,0.s) Chars 4203 - 4626 [Lemma~loop_invar_state~:~~~for...] 0.001 secs (0.001u,0.s) Chars 4629 - 4635 [Proof.] 0. secs (0.u,0.s) -Chars 4640 - 4647 [intros.] 0. secs (0.u,0.s) -Chars 4652 - 4686 [set~(g'~:=~iso_destatify_arrow...] 0. secs (0.u,0.s) -Chars 4691 - 4753 [enough~((Disj_unary~_~p~any_in...] 0. secs (0.u,0.s) +Chars 4640 - 4647 [(intros).] 0. secs (0.u,0.s) +Chars 4652 - 4686 [(set~(g'~:=~iso_destatify_arro...] 0. secs (0.u,0.s) +Chars 4691 - 4753 [(enough~((Disj_unary~_~p~any_i...] 0. secs (0.u,0.s) Chars 4758 - 4759 [-] 0. secs (0.u,0.s) -Chars 4760 - 4804 [assert~(ITree.iter~g'~(s,~a)~≈...] 0. secs (0.u,0.s) +Chars 4760 - 4804 [(assert~(ITree.iter~g'~(s,~a)~...] 0.001 secs (0.001u,0.s) Chars 4811 - 4812 [+] 0. secs (0.u,0.s) -Chars 4813 - 4844 [unfold~g',~iso_destatify_arrow.] 0.043 secs (0.043u,0.s) -Chars 4853 - 4955 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 4956 - 4975 [unfold~Basics.iter.] 0. secs (0.u,0.s) -Chars 4984 - 5006 [unfold~MonadIterDelay.] 0. secs (0.u,0.s) -Chars 5007 - 5024 [eapply~eutt_iter.] 0. secs (0.u,0.s) +Chars 4813 - 4844 [(unfold~g',~iso_destatify_arrow).] 0. secs (0.u,0.s) +Chars 4853 - 4955 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 4956 - 4975 [(unfold~Basics.iter).] 0. secs (0.u,0.s) +Chars 4984 - 5006 [(unfold~MonadIterDelay).] 0. secs (0.u,0.s) +Chars 5007 - 5024 [(eapply~eutt_iter).] 0. secs (0.u,0.s) Chars 5025 - 5031 [intro.] 0. secs (0.u,0.s) -Chars 5040 - 5063 [destruct~a0~as~[a'~s'].] 0. secs (0.u,0.s) -Chars 5064 - 5070 [simpl.] 0. secs (0.u,0.s) -Chars 5079 - 5118 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) -Chars 5119 - 5126 [intros.] 0. secs (0.u,0.s) +Chars 5040 - 5063 [(destruct~a0~as~[a'~s']).] 0. secs (0.u,0.s) +Chars 5064 - 5070 [(simpl).] 0. secs (0.u,0.s) +Chars 5079 - 5118 [(eapply~eutt_bind_eutt;~try~re...] 0. secs (0.u,0.s) +Chars 5119 - 5126 [(intros).] 0. secs (0.u,0.s) Chars 5135 - 5141 [subst.] 0. secs (0.u,0.s) -Chars 5142 - 5154 [destruct~u2.] 0. secs (0.u,0.s) -Chars 5155 - 5161 [simpl.] 0. secs (0.u,0.s) -Chars 5162 - 5187 [destruct~s1;~reflexivity.] 0. secs (0.u,0.s) +Chars 5142 - 5154 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 5155 - 5161 [(simpl).] 0. secs (0.u,0.s) +Chars 5162 - 5187 [(destruct~s1;~reflexivity).] 0.054 secs (0.054u,0.s) Chars 5194 - 5195 [+] 0. secs (0.u,0.s) -Chars 5196 - 5253 [assert~(Hpdiv~:~resp_eutt~(Dis...] 0. secs (0.u,0.s) +Chars 5196 - 5253 [(assert~(Hpdiv~:~resp_eutt~(Di...] 0. secs (0.u,0.s) Chars 5262 - 5263 [{] 0. secs (0.u,0.s) -Chars 5264 - 5283 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 5284 - 5320 [split;~intros;~destruct~H4.] 0. secs (0.u,0.s) +Chars 5264 - 5283 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 5284 - 5320 [(split;~intros;~destruct~H4).] 0. secs (0.u,0.s) Chars 5332 - 5333 [-] 0. secs (0.u,0.s) Chars 5334 - 5339 [left.] 0. secs (0.u,0.s) -Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) +Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 5372 - 5373 [-] 0. secs (0.u,0.s) Chars 5374 - 5380 [right.] 0. secs (0.u,0.s) -Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) +Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 5414 - 5415 [-] 0. secs (0.u,0.s) Chars 5416 - 5421 [left.] 0. secs (0.u,0.s) Chars 5422 - 5440 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) @@ -156,89 +156,89 @@ Chars 5452 - 5453 [-] 0. secs (0.u,0.s) Chars 5454 - 5460 [right.] 0. secs (0.u,0.s) Chars 5461 - 5479 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 5490 - 5491 [}] 0. secs (0.u,0.s) -Chars 5500 - 5527 [eapply~Hpdiv;~try~apply~H2.] 0. secs (0.u,0.s) +Chars 5500 - 5527 [(eapply~Hpdiv;~try~apply~H2).] 0. secs (0.u,0.s) Chars 5528 - 5537 [symmetry.] 0. secs (0.u,0.s) Chars 5538 - 5543 [auto.] 0. secs (0.u,0.s) Chars 5549 - 5550 [-] 0. secs (0.u,0.s) -Chars 5551 - 5576 [eapply~loop_invar;~eauto.] 0. secs (0.u,0.s) -Chars 5579 - 5583 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5587 - 5723 [Definition~state_iter_arrow_re...] 0. secs (0.u,0.s) +Chars 5551 - 5576 [(eapply~loop_invar;~eauto).] 0. secs (0.u,0.s) +Chars 5579 - 5583 [Qed.] 0.004 secs (0.004u,0.s) +Chars 5587 - 5723 [Definition~state_iter_arrow_re...] 0.001 secs (0.001u,0.s) Chars 5727 - 5926 [Lemma~iter_inl_spin_state~:~~~...] 0. secs (0.u,0.s) Chars 5929 - 5935 [Proof.] 0. secs (0.u,0.s) -Chars 5940 - 5947 [intros.] 0. secs (0.u,0.s) -Chars 5948 - 5973 [unfold~MonadIter_stateT0.] 0. secs (0.u,0.s) -Chars 5978 - 5998 [apply~iter_inl_spin.] 0. secs (0.u,0.s) +Chars 5940 - 5947 [(intros).] 0. secs (0.u,0.s) +Chars 5948 - 5973 [(unfold~MonadIter_stateT0).] 0. secs (0.u,0.s) +Chars 5978 - 5998 [(apply~iter_inl_spin).] 0. secs (0.u,0.s) Chars 6041 - 6064 [generalize~dependent~a.] 0. secs (0.u,0.s) Chars 6065 - 6088 [generalize~dependent~s.] 0. secs (0.u,0.s) Chars 6093 - 6111 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6118 - 6125 [intros.] 0. secs (0.u,0.s) -Chars 6126 - 6169 [red~in~H;~sinv~H;~try~apply~no...] 0.002 secs (0.002u,0.s) -Chars 6175 - 6211 [apply~not_wf~with~(a'~:=~a');~...] 0. secs (0.u,0.s) +Chars 6118 - 6125 [(intros).] 0. secs (0.u,0.s) +Chars 6126 - 6169 [(red~in~H;~sinv~H;~try~apply~n...] 0.002 secs (0.002u,0.s) +Chars 6175 - 6211 [(apply~not_wf~with~(a'~:=~a');...] 0.001 secs (0.001u,0.s) Chars 6216 - 6217 [-] 0. secs (0.u,0.s) -Chars 6218 - 6230 [red~in~Hrel.] 0. secs (0.u,0.s) -Chars 6231 - 6254 [destruct~a'~as~[s'~a'].] 0. secs (0.u,0.s) -Chars 6255 - 6261 [simpl.] 0. secs (0.u,0.s) -Chars 6262 - 6266 [red.] 0. secs (0.u,0.s) -Chars 6267 - 6273 [simpl.] 0. secs (0.u,0.s) -Chars 6274 - 6287 [rewrite~Hrel.] 0.003 secs (0.003u,0.s) -Chars 6294 - 6313 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 6314 - 6320 [simpl.] 0. secs (0.u,0.s) +Chars 6218 - 6230 [(red~in~Hrel).] 0. secs (0.u,0.s) +Chars 6231 - 6254 [(destruct~a'~as~[s'~a']).] 0. secs (0.u,0.s) +Chars 6255 - 6261 [(simpl).] 0. secs (0.u,0.s) +Chars 6262 - 6266 [(red).] 0. secs (0.u,0.s) +Chars 6267 - 6273 [(simpl).] 0. secs (0.u,0.s) +Chars 6274 - 6287 [(rewrite~Hrel).] 0.004 secs (0.004u,0.s) +Chars 6294 - 6313 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 6314 - 6320 [(simpl).] 0. secs (0.u,0.s) Chars 6321 - 6333 [reflexivity.] 0. secs (0.u,0.s) Chars 6338 - 6339 [-] 0. secs (0.u,0.s) -Chars 6340 - 6352 [destruct~a'.] 0. secs (0.u,0.s) -Chars 6353 - 6371 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6374 - 6378 [Qed.] 0.003 secs (0.003u,0.s) -Chars 6382 - 6651 [Lemma~iter_wf_converge_state~:...] 0. secs (0.u,0.s) +Chars 6340 - 6352 [(destruct~a').] 0. secs (0.u,0.s) +Chars 6353 - 6371 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 6374 - 6378 [Qed.] 0.004 secs (0.004u,0.s) +Chars 6382 - 6651 [Lemma~iter_wf_converge_state~:...] 0.001 secs (0.001u,0.s) Chars 6654 - 6660 [Proof.] 0. secs (0.u,0.s) -Chars 6665 - 6672 [intros.] 0. secs (0.u,0.s) -Chars 6673 - 6727 [unfold~MonadIter_stateT0,~Basi...] 0. secs (0.u,0.s) -Chars 6732 - 6755 [apply~iter_wf_converge.] 0. secs (0.u,0.s) +Chars 6665 - 6672 [(intros).] 0. secs (0.u,0.s) +Chars 6673 - 6727 [(unfold~MonadIter_stateT0,~Bas...] 0. secs (0.u,0.s) +Chars 6732 - 6755 [(apply~iter_wf_converge).] 0. secs (0.u,0.s) Chars 6760 - 6761 [-] 0. secs (0.u,0.s) -Chars 6762 - 6799 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) -Chars 6806 - 6819 [repeat~intro.] 0. secs (0.u,0.s) -Chars 6820 - 6847 [unfold~iter_arrow_rel~in~*.] 0. secs (0.u,0.s) -Chars 6848 - 6876 [unfold~state_iter_arrow_rel.] 0. secs (0.u,0.s) +Chars 6762 - 6799 [(eapply~wf_from_sub_rel;~try~a...] 0. secs (0.u,0.s) +Chars 6806 - 6819 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 6820 - 6847 [(unfold~iter_arrow_rel~in~*).] 0. secs (0.u,0.s) +Chars 6848 - 6876 [(unfold~state_iter_arrow_rel).] 0. secs (0.u,0.s) Chars 6883 - 6896 [clear~H0~a~s.] 0. secs (0.u,0.s) -Chars 6903 - 6923 [destruct~x~as~[s~a].] 0. secs (0.u,0.s) -Chars 6924 - 6935 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6936 - 6958 [destruct~y~as~[s'~a'].] 0. secs (0.u,0.s) -Chars 6965 - 7014 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) +Chars 6903 - 6923 [(destruct~x~as~[s~a]).] 0. secs (0.u,0.s) +Chars 6924 - 6935 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6936 - 6958 [(destruct~y~as~[s'~a']).] 0. secs (0.u,0.s) +Chars 6965 - 7014 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) Chars 7021 - 7022 [+] 0. secs (0.u,0.s) -Chars 7023 - 7037 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 7038 - 7058 [rewrite~<-~H0~in~H1.] 0.018 secs (0.018u,0.s) -Chars 7059 - 7071 [simpl~in~H1.] 0. secs (0.u,0.s) -Chars 7072 - 7097 [rewrite~bind_ret_l~in~H1.] 0.018 secs (0.018u,0.s) -Chars 7106 - 7117 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7118 - 7130 [destruct~a0.] 0. secs (0.u,0.s) -Chars 7131 - 7142 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7143 - 7168 [destruct~s1;~basic_solve.] 0.001 secs (0.001u,0.s) +Chars 7023 - 7037 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) +Chars 7038 - 7058 [(rewrite~<-~H0~in~H1).] 0.026 secs (0.025u,0.s) +Chars 7059 - 7071 [(simpl~in~H1).] 0. secs (0.u,0.s) +Chars 7072 - 7097 [(rewrite~bind_ret_l~in~H1).] 0.026 secs (0.026u,0.s) +Chars 7106 - 7117 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7118 - 7130 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 7131 - 7142 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7143 - 7168 [(destruct~s1;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 7177 - 7189 [reflexivity.] 0. secs (0.u,0.s) Chars 7196 - 7197 [+] 0. secs (0.u,0.s) -Chars 7198 - 7224 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 7225 - 7242 [rewrite~H0~in~H1.] 0.017 secs (0.017u,0.s) -Chars 7243 - 7270 [rewrite~<-~spin_bind~in~H1.] 0.016 secs (0.016u,0.s) +Chars 7198 - 7224 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 7225 - 7242 [(rewrite~H0~in~H1).] 0.024 secs (0.024u,0.s) +Chars 7243 - 7270 [(rewrite~<-~spin_bind~in~H1).] 0.023 secs (0.022u,0.s) Chars 7279 - 7294 [symmetry~in~H1.] 0. secs (0.u,0.s) Chars 7295 - 7303 [exfalso.] 0. secs (0.u,0.s) -Chars 7304 - 7336 [eapply~not_ret_eutt_spin;~eauto.] 0. secs (0.u,0.s) +Chars 7304 - 7336 [(eapply~not_ret_eutt_spin;~eau...] 0. secs (0.u,0.s) Chars 7340 - 7341 [-] 0. secs (0.u,0.s) Chars 7342 - 7355 [clear~H0~a~s.] 0. secs (0.u,0.s) -Chars 7356 - 7369 [intros~[s~a].] 0. secs (0.u,0.s) +Chars 7356 - 7369 [(intros~[s~a]).] 0. secs (0.u,0.s) Chars 7370 - 7389 [specialize~(H~a~s).] 0. secs (0.u,0.s) Chars 7390 - 7402 [basic_solve.] 0. secs (0.u,0.s) -Chars 7408 - 7438 [destruct~ab~as~[s'~[a'|~b]].] 0. secs (0.u,0.s) +Chars 7408 - 7438 [(destruct~ab~as~[s'~[a'|~b]]).] 0. secs (0.u,0.s) Chars 7444 - 7445 [+] 0. secs (0.u,0.s) Chars 7446 - 7468 [exists~(inl~(s',~a')).] 0. secs (0.u,0.s) -Chars 7469 - 7475 [simpl.] 0. secs (0.u,0.s) -Chars 7476 - 7486 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 7487 - 7506 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7507 - 7513 [simpl.] 0. secs (0.u,0.s) +Chars 7469 - 7475 [(simpl).] 0. secs (0.u,0.s) +Chars 7476 - 7486 [(rewrite~H).] 0.004 secs (0.004u,0.s) +Chars 7487 - 7506 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 7507 - 7513 [(simpl).] 0. secs (0.u,0.s) Chars 7521 - 7533 [reflexivity.] 0. secs (0.u,0.s) Chars 7539 - 7540 [+] 0. secs (0.u,0.s) Chars 7541 - 7561 [exists~(inr~(s',~b)).] 0. secs (0.u,0.s) -Chars 7562 - 7568 [simpl.] 0. secs (0.u,0.s) -Chars 7569 - 7579 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 7580 - 7599 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7600 - 7606 [simpl.] 0. secs (0.u,0.s) +Chars 7562 - 7568 [(simpl).] 0. secs (0.u,0.s) +Chars 7569 - 7579 [(rewrite~H).] 0.005 secs (0.004u,0.s) +Chars 7580 - 7599 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 7600 - 7606 [(simpl).] 0. secs (0.u,0.s) Chars 7614 - 7626 [reflexivity.] 0. secs (0.u,0.s) -Chars 7629 - 7633 [Qed.] 0.008 secs (0.007u,0.s) +Chars 7629 - 7633 [Qed.] 0.011 secs (0.011u,0.s) Chars 7635 - 7657 [End~LoopInvarSpecific.] 0. secs (0.u,0.s) diff --git a/extra/IForest.v.timing b/extra/IForest.v.timing index 425c93a0..4a589d16 100644 --- a/extra/IForest.v.timing +++ b/extra/IForest.v.timing @@ -1,7 +1,7 @@ -Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.161 secs (0.144u,0.016s) +Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.222 secs (0.197u,0.025s) Chars 461 - 512 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.s) +Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.002 secs (0.001u,0.001s) Chars 586 - 620 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 622 - 643 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 644 - 664 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -9,31 +9,31 @@ Chars 665 - 694 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) Chars 695 - 722 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 801 - 877 [Definition~iforest~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 1082 - 1148 [Notation~eutt_closed~:=~(Prope...] 0. secs (0.u,0.s) -Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) +Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.001 secs (0.001u,0.s) Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0. secs (0.u,0.s) -Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0. secs (0.u,0.s) -Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0. secs (0.u,0.s) -Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.001 secs (0.u,0.s) +Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0.001 secs (0.u,0.s) +Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0.001 secs (0.001u,0.s) +Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.002 secs (0.001u,0.s) Chars 2851 - 2980 [Lemma~bind_iforest_bind_ifores...] 0. secs (0.u,0.s) Chars 2981 - 2987 [Proof.] 0. secs (0.u,0.s) -Chars 2990 - 2997 [intros.] 0. secs (0.u,0.s) +Chars 2990 - 2997 [(intros).] 0. secs (0.u,0.s) Chars 2998 - 3004 [split.] 0. secs (0.u,0.s) -Chars 3007 - 3014 [intros.] 0. secs (0.u,0.s) +Chars 3007 - 3014 [(intros).] 0. secs (0.u,0.s) Chars 3017 - 3018 [-] 0. secs (0.u,0.s) -Chars 3019 - 3023 [red.] 0. secs (0.u,0.s) -Chars 3024 - 3033 [red~in~H.] 0. secs (0.u,0.s) -Chars 3038 - 3078 [destruct~H~as~(ta,~(ka,~(HPA,~...] 0. secs (0.u,0.s) +Chars 3019 - 3023 [(red).] 0. secs (0.u,0.s) +Chars 3024 - 3033 [(red~in~H).] 0. secs (0.u,0.s) +Chars 3038 - 3078 [(destruct~H~as~(ta,~(ka,~(HPA,...] 0. secs (0.u,0.s) Chars 3083 - 3093 [exists~ta.] 0. secs (0.u,0.s) -Chars 3094 - 3106 [split;~auto.] 0. secs (0.u,0.s) +Chars 3094 - 3106 [(split;~auto).] 0.001 secs (0.001u,0.s) Chars 3111 - 3116 [left.] 0. secs (0.u,0.s) Chars 3118 - 3128 [exists~ka.] 0. secs (0.u,0.s) -Chars 3129 - 3141 [split;~auto.] 0. secs (0.u,0.s) +Chars 3129 - 3141 [(split;~auto).] 0. secs (0.u,0.s) Chars 3144 - 3145 [-] 0. secs (0.u,0.s) -Chars 3146 - 3153 [intros.] 0. secs (0.u,0.s) -Chars 3158 - 3162 [red.] 0. secs (0.u,0.s) -Chars 3163 - 3172 [red~in~H.] 0. secs (0.u,0.s) -Chars 3177 - 3227 [destruct~H~as~(ta,~(EQ1,~[(k,~...] 0. secs (0.u,0.s) +Chars 3146 - 3153 [(intros).] 0. secs (0.u,0.s) +Chars 3158 - 3162 [(red).] 0. secs (0.u,0.s) +Chars 3163 - 3172 [(red~in~H).] 0. secs (0.u,0.s) +Chars 3177 - 3227 [(destruct~H~as~(ta,~(EQ1,~[(k,...] 0. secs (0.u,0.s) Chars 3232 - 3233 [+] 0. secs (0.u,0.s) Chars 3234 - 3244 [exists~ta.] 0. secs (0.u,0.s) Chars 3245 - 3254 [exists~k.] 0. secs (0.u,0.s) @@ -41,27 +41,27 @@ Chars 3255 - 3260 [auto.] 0. secs (0.u,0.s) Chars 3265 - 3266 [+] 0. secs (0.u,0.s) Chars 3267 - 3277 [exists~ta.] 0. secs (0.u,0.s) Chars 3278 - 3307 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 3314 - 3326 [split;~auto.] 0. secs (0.u,0.s) +Chars 3314 - 3326 [(split;~auto).] 0. secs (0.u,0.s) Chars 3333 - 3371 [specialize~(HX~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 3378 - 3402 [destruct~HX~as~(HA,~H).] 0. secs (0.u,0.s) -Chars 3409 - 3421 [split;~auto.] 0. secs (0.u,0.s) -Chars 3422 - 3426 [Qed.] 0.025 secs (0.024u,0.001s) -Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0. secs (0.u,0.s) +Chars 3378 - 3402 [(destruct~HX~as~(HA,~H)).] 0. secs (0.u,0.s) +Chars 3409 - 3421 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3422 - 3426 [Qed.] 0.003 secs (0.002u,0.s) +Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0.002 secs (0.001u,0.s) Chars 3627 - 3748 [Definition~handler_correct~{E}...] 0. secs (0.u,0.s) -Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.002 secs (0.002u,0.s) +Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.035 secs (0.032u,0.002s) Chars 4598 - 4650 [#[global]~Hint~Constructors~in...] 0. secs (0.u,0.s) -Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0. secs (0.u,0.s) +Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0.001 secs (0.001u,0.s) Chars 4878 - 4884 [Proof.] 0. secs (0.u,0.s) -Chars 4887 - 4918 [induction~IN;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 4887 - 4918 [(induction~IN;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 4919 - 4923 [Qed.] 0. secs (0.u,0.s) Chars 4925 - 5071 [Definition~interp_iforest_~E~F...] 0. secs (0.u,0.s) Chars 5073 - 5119 [#[global]~Hint~Unfold~interp_i...] 0. secs (0.u,0.s) Chars 5122 - 5270 [Definition~interp_iforest_mon~...] 0. secs (0.u,0.s) Chars 5271 - 5277 [Proof.] 0. secs (0.u,0.s) -Chars 5280 - 5333 [refine~{|~body~:=~interp_ifore...] 0.003 secs (0.003u,0.s) -Chars 5336 - 5363 [intros~sim~sim'~LE~t0~t1~H.] 0. secs (0.u,0.s) -Chars 5364 - 5392 [unfold~interp_iforest_~in~*.] 0. secs (0.u,0.s) -Chars 5395 - 5430 [eapply~interp_iforestF_mono;~e...] 0. secs (0.u,0.s) +Chars 5280 - 5333 [refine~{|~body~:=~interp_ifore...] 0.005 secs (0.005u,0.s) +Chars 5336 - 5363 [(intros~sim~sim'~LE~t0~t1~H).] 0. secs (0.u,0.s) +Chars 5364 - 5392 [(unfold~interp_iforest_~in~*).] 0. secs (0.u,0.s) +Chars 5395 - 5430 [(eapply~interp_iforestF_mono;~...] 0. secs (0.u,0.s) Chars 5431 - 5439 [Defined.] 0. secs (0.u,0.s) Chars 5462 - 5650 [Definition~interp_iforest~{E}~...] 0. secs (0.u,0.s) Chars 5653 - 5734 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) @@ -91,885 +91,885 @@ Chars 9714 - 9816 [#[local]~Ltac~~bcbn~:=~~~cbn[e...] 0. secs (0.u,0.s) Chars 9874 - 9906 [Ltac~sinv~H~:=~step~in~H;~inv~H.] 0. secs (0.u,0.s) Chars 9951 - 10094 [Lemma~interp_iforest_ret~:~~~f...] 0. secs (0.u,0.s) Chars 10095 - 10101 [Proof.] 0. secs (0.u,0.s) -Chars 10104 - 10111 [intros.] 0. secs (0.u,0.s) -Chars 10114 - 10125 [repeat~red.] 0. secs (0.u,0.s) -Chars 10128 - 10145 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 10104 - 10111 [(intros).] 0. secs (0.u,0.s) +Chars 10114 - 10125 [(repeat~red).] 0. secs (0.u,0.s) +Chars 10128 - 10145 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 10148 - 10149 [-] 0. secs (0.u,0.s) -Chars 10150 - 10157 [intros.] 0. secs (0.u,0.s) -Chars 10158 - 10172 [split;~intros.] 0. secs (0.u,0.s) +Chars 10150 - 10157 [(intros).] 0. secs (0.u,0.s) +Chars 10158 - 10172 [(split;~intros).] 0. secs (0.u,0.s) Chars 10177 - 10178 [+] 0. secs (0.u,0.s) Chars 10179 - 10190 [step~in~H0.] 0. secs (0.u,0.s) -Chars 10191 - 10198 [inv~H0.] 0.002 secs (0.002u,0.s) -Chars 10205 - 10209 [cbn.] 0. secs (0.u,0.s) -Chars 10210 - 10227 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10191 - 10198 [(inv~H0).] 0.002 secs (0.002u,0.s) +Chars 10205 - 10209 [(cbn).] 0. secs (0.u,0.s) +Chars 10210 - 10227 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 10232 - 10233 [+] 0. secs (0.u,0.s) -Chars 10234 - 10256 [unfold~interp_iforest.] 0. secs (0.u,0.s) +Chars 10234 - 10256 [(unfold~interp_iforest).] 0. secs (0.u,0.s) Chars 10257 - 10262 [step.] 0. secs (0.u,0.s) -Chars 10263 - 10283 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 10284 - 10298 [now~rewrite~H.] 0. secs (0.u,0.s) +Chars 10263 - 10283 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 10284 - 10298 [now~rewrite~H.] 0.001 secs (0.001u,0.s) Chars 10301 - 10302 [-] 0. secs (0.u,0.s) -Chars 10303 - 10314 [repeat~red.] 0. secs (0.u,0.s) -Chars 10319 - 10360 [intros~t1~t2~eq;~split;~intros...] 0.035 secs (0.035u,0.s) +Chars 10303 - 10314 [(repeat~red).] 0. secs (0.u,0.s) +Chars 10319 - 10360 [(intros~t1~t2~eq;~split;~intro...] 0.005 secs (0.004u,0.s) Chars 10366 - 10367 [+] 0. secs (0.u,0.s) Chars 10368 - 10373 [step.] 0. secs (0.u,0.s) -Chars 10374 - 10394 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 10395 - 10413 [now~rewrite~<-~eq.] 0. secs (0.u,0.s) +Chars 10374 - 10394 [(econstructor;~eauto).] 0.041 secs (0.04u,0.s) +Chars 10395 - 10413 [now~rewrite~<-~eq.] 0.001 secs (0.001u,0.s) Chars 10419 - 10420 [+] 0. secs (0.u,0.s) Chars 10421 - 10426 [step.] 0. secs (0.u,0.s) -Chars 10427 - 10447 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 10448 - 10463 [now~rewrite~eq.] 0. secs (0.u,0.s) +Chars 10427 - 10447 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 10448 - 10463 [now~rewrite~eq.] 0.001 secs (0.001u,0.s) Chars 10466 - 10467 [-] 0. secs (0.u,0.s) -Chars 10468 - 10479 [repeat~red.] 0. secs (0.u,0.s) -Chars 10480 - 10487 [intros.] 0. secs (0.u,0.s) -Chars 10488 - 10512 [split;~intros;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 10513 - 10530 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10468 - 10479 [(repeat~red).] 0. secs (0.u,0.s) +Chars 10480 - 10487 [(intros).] 0. secs (0.u,0.s) +Chars 10488 - 10512 [(split;~intros;~cbn~in~*).] 0. secs (0.u,0.s) +Chars 10513 - 10530 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 10531 - 10545 [now~rewrite~H.] 0. secs (0.u,0.s) -Chars 10547 - 10551 [Qed.] 0.004 secs (0.004u,0.s) -Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 10547 - 10551 [Qed.] 0.006 secs (0.006u,0.s) +Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) Chars 10829 - 10835 [Proof.] 0. secs (0.u,0.s) -Chars 10838 - 10849 [repeat~red.] 0. secs (0.u,0.s) -Chars 10852 - 10859 [intros.] 0. secs (0.u,0.s) -Chars 10862 - 10876 [split;~intros.] 0. secs (0.u,0.s) +Chars 10838 - 10849 [(repeat~red).] 0. secs (0.u,0.s) +Chars 10852 - 10859 [(intros).] 0. secs (0.u,0.s) +Chars 10862 - 10876 [(split;~intros).] 0. secs (0.u,0.s) Chars 10879 - 10880 [-] 0. secs (0.u,0.s) -Chars 10881 - 10922 [inversion~H0;~subst;~econstruc...] 0.003 secs (0.003u,0.s) +Chars 10881 - 10922 [(inversion~H0;~subst;~econstru...] 0.005 secs (0.005u,0.s) Chars 10927 - 10928 [+] 0. secs (0.u,0.s) -Chars 10929 - 10946 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10929 - 10946 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 10951 - 10952 [+] 0. secs (0.u,0.s) Chars 10953 - 10972 [specialize~(HS~t1).] 0. secs (0.u,0.s) Chars 10973 - 10990 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 10995 - 10996 [+] 0. secs (0.u,0.s) -Chars 10997 - 11014 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10997 - 11014 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 11018 - 11019 [-] 0. secs (0.u,0.s) -Chars 11020 - 11061 [inversion~H0;~subst;~econstruc...] 0.006 secs (0.005u,0.s) -Chars 11067 - 11086 [all:~now~rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 11088 - 11092 [Qed.] 0.002 secs (0.002u,0.s) -Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 11020 - 11061 [(inversion~H0;~subst;~econstru...] 0.008 secs (0.008u,0.s) +Chars 11067 - 11086 [all:~now~rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 11088 - 11092 [Qed.] 0.003 secs (0.003u,0.s) +Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) Chars 11304 - 11310 [Proof.] 0. secs (0.u,0.s) -Chars 11313 - 11324 [repeat~red.] 0. secs (0.u,0.s) +Chars 11313 - 11324 [(repeat~red).] 0. secs (0.u,0.s) Chars 11325 - 11334 [revert~t.] 0. secs (0.u,0.s) Chars 11338 - 11354 [tower~induction.] 0. secs (0.u,0.s) Chars 11358 - 11359 [{] 0. secs (0.u,0.s) Chars 11360 - 11366 [split.] 0. secs (0.u,0.s) -Chars 11367 - 11400 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 11367 - 11400 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) Chars 11401 - 11402 [}] 0. secs (0.u,0.s) Chars 11407 - 11413 [split.] 0. secs (0.u,0.s) Chars 11416 - 11417 [-] 0. secs (0.u,0.s) -Chars 11418 - 11428 [intros~HI.] 0. secs (0.u,0.s) -Chars 11433 - 11462 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 11469 - 11476 [inv~HI.] 0.007 secs (0.007u,0.s) +Chars 11418 - 11428 [(intros~HI).] 0. secs (0.u,0.s) +Chars 11433 - 11462 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) +Chars 11469 - 11476 [(inv~HI).] 0.01 secs (0.01u,0.s) Chars 11483 - 11484 [+] 0. secs (0.u,0.s) -Chars 11485 - 11503 [rewrite~H0~in~eq2.] 0.016 secs (0.016u,0.s) -Chars 11511 - 11544 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 11485 - 11503 [(rewrite~H0~in~eq2).] 0.023 secs (0.023u,0.s) +Chars 11511 - 11544 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 11550 - 11551 [+] 0. secs (0.u,0.s) Chars 11552 - 11565 [econstructor.] 0. secs (0.u,0.s) Chars 11566 - 11581 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 11582 - 11598 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 11582 - 11598 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 11605 - 11606 [+] 0. secs (0.u,0.s) -Chars 11607 - 11627 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 11628 - 11646 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 11607 - 11627 [(econstructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 11628 - 11646 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 11650 - 11651 [-] 0. secs (0.u,0.s) -Chars 11652 - 11662 [intros~HI.] 0. secs (0.u,0.s) -Chars 11667 - 11696 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 11703 - 11710 [inv~HI.] 0.008 secs (0.008u,0.s) +Chars 11652 - 11662 [(intros~HI).] 0. secs (0.u,0.s) +Chars 11667 - 11696 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) +Chars 11703 - 11710 [(inv~HI).] 0.012 secs (0.011u,0.s) Chars 11717 - 11718 [+] 0. secs (0.u,0.s) -Chars 11719 - 11740 [rewrite~<-~H0~in~eq2.] 0.015 secs (0.015u,0.s) -Chars 11748 - 11781 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 11719 - 11740 [(rewrite~<-~H0~in~eq2).] 0.019 secs (0.019u,0.s) +Chars 11748 - 11781 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 11787 - 11788 [+] 0. secs (0.u,0.s) Chars 11789 - 11802 [econstructor.] 0. secs (0.u,0.s) -Chars 11803 - 11819 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 11803 - 11819 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 11826 - 11827 [+] 0. secs (0.u,0.s) -Chars 11828 - 11848 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 11849 - 11864 [now~rewrite~H0.] 0. secs (0.u,0.s) -Chars 11866 - 11870 [Qed.] 0.004 secs (0.004u,0.s) -Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 11828 - 11848 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 11849 - 11864 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 11866 - 11870 [Qed.] 0.007 secs (0.007u,0.s) +Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) Chars 12086 - 12092 [Proof.] 0. secs (0.u,0.s) -Chars 12095 - 12106 [repeat~red.] 0. secs (0.u,0.s) +Chars 12095 - 12106 [(repeat~red).] 0. secs (0.u,0.s) Chars 12107 - 12116 [revert~t.] 0. secs (0.u,0.s) Chars 12120 - 12136 [tower~induction.] 0. secs (0.u,0.s) Chars 12140 - 12141 [{] 0. secs (0.u,0.s) Chars 12142 - 12148 [split.] 0. secs (0.u,0.s) -Chars 12149 - 12182 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 12149 - 12182 [all:~(repeat~intro;~apply~H;~a...] 0.001 secs (0.001u,0.s) Chars 12183 - 12184 [}] 0. secs (0.u,0.s) Chars 12189 - 12195 [split.] 0. secs (0.u,0.s) Chars 12198 - 12199 [-] 0. secs (0.u,0.s) -Chars 12200 - 12210 [intros~HI.] 0. secs (0.u,0.s) -Chars 12215 - 12244 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 12251 - 12258 [inv~HI.] 0.007 secs (0.007u,0.s) +Chars 12200 - 12210 [(intros~HI).] 0. secs (0.u,0.s) +Chars 12215 - 12244 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) +Chars 12251 - 12258 [(inv~HI).] 0.01 secs (0.01u,0.s) Chars 12265 - 12266 [+] 0. secs (0.u,0.s) -Chars 12267 - 12285 [rewrite~H0~in~eq2.] 0.013 secs (0.013u,0.s) -Chars 12293 - 12326 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 12267 - 12285 [(rewrite~H0~in~eq2).] 0.018 secs (0.018u,0.s) +Chars 12293 - 12326 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 12332 - 12333 [+] 0. secs (0.u,0.s) Chars 12334 - 12347 [econstructor.] 0. secs (0.u,0.s) Chars 12348 - 12363 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 12364 - 12380 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 12364 - 12380 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 12387 - 12388 [+] 0. secs (0.u,0.s) -Chars 12389 - 12409 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 12410 - 12428 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 12389 - 12409 [(econstructor;~eauto).] 0.003 secs (0.002u,0.s) +Chars 12410 - 12428 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 12432 - 12433 [-] 0. secs (0.u,0.s) -Chars 12434 - 12444 [intros~HI.] 0. secs (0.u,0.s) -Chars 12450 - 12479 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 12486 - 12493 [inv~HI.] 0.009 secs (0.009u,0.s) +Chars 12434 - 12444 [(intros~HI).] 0. secs (0.u,0.s) +Chars 12450 - 12479 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) +Chars 12486 - 12493 [(inv~HI).] 0.011 secs (0.011u,0.s) Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12523 [rewrite~<-~H0~in~eq2.] 0.012 secs (0.012u,0.s) -Chars 12531 - 12564 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 12502 - 12523 [(rewrite~<-~H0~in~eq2).] 0.017 secs (0.017u,0.s) +Chars 12531 - 12564 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 12570 - 12571 [+] 0. secs (0.u,0.s) Chars 12572 - 12585 [econstructor.] 0. secs (0.u,0.s) -Chars 12586 - 12602 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 12586 - 12602 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 12609 - 12610 [+] 0. secs (0.u,0.s) -Chars 12611 - 12631 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 12632 - 12647 [now~rewrite~H0.] 0. secs (0.u,0.s) -Chars 12649 - 12653 [Qed.] 0.004 secs (0.004u,0.s) +Chars 12611 - 12631 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12632 - 12647 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 12649 - 12653 [Qed.] 0.006 secs (0.006u,0.s) Chars 12934 - 13050 [Lemma~inj_pair2~:~~~forall~(U~...] 0. secs (0.u,0.s) Chars 13051 - 13057 [Proof.] 0. secs (0.u,0.s) -Chars 13060 - 13067 [intros.] 0. secs (0.u,0.s) -Chars 13068 - 13087 [apply~JMeq.JMeq_eq.] 0. secs (0.u,0.s) -Chars 13090 - 13202 [refine~~~match~H~in~(_~=~w)~re...] 0. secs (0.u,0.s) +Chars 13060 - 13067 [(intros).] 0. secs (0.u,0.s) +Chars 13068 - 13087 [(apply~JMeq.JMeq_eq).] 0. secs (0.u,0.s) +Chars 13090 - 13202 [refine~~match~H~in~(_~=~w)~ret...] 0. secs (0.u,0.s) Chars 13203 - 13207 [Qed.] 0. secs (0.u,0.s) Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 13409 - 13415 [Proof.] 0. secs (0.u,0.s) -Chars 13418 - 13429 [repeat~red.] 0. secs (0.u,0.s) +Chars 13418 - 13429 [(repeat~red).] 0. secs (0.u,0.s) Chars 13430 - 13446 [tower~induction.] 0. secs (0.u,0.s) Chars 13450 - 13451 [{] 0. secs (0.u,0.s) Chars 13452 - 13458 [split.] 0. secs (0.u,0.s) -Chars 13459 - 13492 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 13459 - 13492 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) Chars 13493 - 13494 [}] 0. secs (0.u,0.s) Chars 13499 - 13505 [split.] 0. secs (0.u,0.s) Chars 13508 - 13509 [-] 0. secs (0.u,0.s) -Chars 13510 - 13520 [intros~HI.] 0. secs (0.u,0.s) -Chars 13525 - 13554 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 13510 - 13520 [(intros~HI).] 0. secs (0.u,0.s) +Chars 13525 - 13554 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 13560 - 13571 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13579 - 13595 [inv~HI;~simpobs.] 0.02 secs (0.02u,0.s) +Chars 13579 - 13595 [(inv~HI;~simpobs).] 0.027 secs (0.026u,0.s) Chars 13600 - 13601 [+] 0. secs (0.u,0.s) -Chars 13602 - 13609 [inv~H0.] 0.008 secs (0.008u,0.s) -Chars 13610 - 13643 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 13602 - 13609 [(inv~H0).] 0.009 secs (0.009u,0.s) +Chars 13610 - 13643 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 13649 - 13650 [+] 0. secs (0.u,0.s) -Chars 13651 - 13658 [inv~H0.] 0.011 secs (0.011u,0.s) +Chars 13651 - 13658 [(inv~H0).] 0.016 secs (0.016u,0.s) Chars 13659 - 13672 [econstructor.] 0. secs (0.u,0.s) Chars 13673 - 13689 [symmetry~in~REL.] 0. secs (0.u,0.s) -Chars 13690 - 13706 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 13690 - 13706 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 13712 - 13713 [+] 0. secs (0.u,0.s) -Chars 13714 - 13744 [eapply~eqitF_inv_VisF_l~in~H0.] 0. secs (0.u,0.s) -Chars 13745 - 13762 [crunch;~try~easy.] 0.008 secs (0.008u,0.s) -Chars 13770 - 13778 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13779 - 13799 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 13800 - 13807 [intros.] 0. secs (0.u,0.s) +Chars 13714 - 13744 [(eapply~eqitF_inv_VisF_l~in~H0).] 0. secs (0.u,0.s) +Chars 13745 - 13762 [(crunch;~try~easy).] 0.008 secs (0.008u,0.s) +Chars 13770 - 13778 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13779 - 13799 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13800 - 13807 [(intros).] 0. secs (0.u,0.s) Chars 13815 - 13830 [symmetry~in~H1.] 0. secs (0.u,0.s) -Chars 13831 - 13840 [eapply~H.] 0. secs (0.u,0.s) -Chars 13848 - 13857 [apply~H1.] 0. secs (0.u,0.s) +Chars 13831 - 13840 [(eapply~H).] 0. secs (0.u,0.s) +Chars 13848 - 13857 [(apply~H1).] 0. secs (0.u,0.s) Chars 13858 - 13869 [all:~eauto.] 0. secs (0.u,0.s) Chars 13872 - 13873 [-] 0. secs (0.u,0.s) -Chars 13874 - 13884 [intros~HI.] 0. secs (0.u,0.s) -Chars 13889 - 13918 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 13874 - 13884 [(intros~HI).] 0. secs (0.u,0.s) +Chars 13889 - 13918 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 13923 - 13934 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13942 - 13958 [inv~HI;~simpobs.] 0.021 secs (0.021u,0.s) +Chars 13942 - 13958 [(inv~HI;~simpobs).] 0.027 secs (0.026u,0.s) Chars 13966 - 13967 [+] 0. secs (0.u,0.s) -Chars 13968 - 13975 [inv~H0.] 0.008 secs (0.008u,0.s) -Chars 13976 - 14009 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) +Chars 13968 - 13975 [(inv~H0).] 0.011 secs (0.011u,0.s) +Chars 13976 - 14009 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 14015 - 14016 [+] 0. secs (0.u,0.s) -Chars 14017 - 14024 [inv~H0.] 0.014 secs (0.014u,0.s) +Chars 14017 - 14024 [(inv~H0).] 0.017 secs (0.017u,0.s) Chars 14025 - 14038 [econstructor.] 0. secs (0.u,0.s) -Chars 14039 - 14055 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 14039 - 14055 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 14061 - 14062 [+] 0. secs (0.u,0.s) -Chars 14063 - 14093 [eapply~eqitF_inv_VisF_r~in~H0.] 0. secs (0.u,0.s) -Chars 14094 - 14111 [crunch;~try~easy.] 0.007 secs (0.007u,0.s) -Chars 14119 - 14127 [simpobs.] 0.003 secs (0.002u,0.s) -Chars 14128 - 14148 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 14149 - 14156 [intros.] 0. secs (0.u,0.s) -Chars 14164 - 14173 [eapply~H.] 0. secs (0.u,0.s) -Chars 14182 - 14191 [apply~H1.] 0. secs (0.u,0.s) +Chars 14063 - 14093 [(eapply~eqitF_inv_VisF_r~in~H0).] 0. secs (0.u,0.s) +Chars 14094 - 14111 [(crunch;~try~easy).] 0.01 secs (0.01u,0.s) +Chars 14119 - 14127 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 14128 - 14148 [(econstructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 14149 - 14156 [(intros).] 0. secs (0.u,0.s) +Chars 14164 - 14173 [(eapply~H).] 0. secs (0.u,0.s) +Chars 14182 - 14191 [(apply~H1).] 0. secs (0.u,0.s) Chars 14192 - 14203 [all:~eauto.] 0. secs (0.u,0.s) -Chars 14204 - 14208 [Qed.] 0.015 secs (0.014u,0.s) +Chars 14204 - 14208 [Qed.] 0.021 secs (0.02u,0.s) Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0.001 secs (0.001u,0.s) Chars 14547 - 14553 [Proof.] 0. secs (0.u,0.s) -Chars 14556 - 14563 [intros.] 0. secs (0.u,0.s) +Chars 14556 - 14563 [(intros).] 0. secs (0.u,0.s) Chars 14566 - 14581 [revert~t~t'~H1.] 0. secs (0.u,0.s) Chars 14584 - 14596 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 14599 - 14614 [intros~t~t'~eq.] 0. secs (0.u,0.s) -Chars 14617 - 14661 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) -Chars 14664 - 14692 [rewrite~(itree_eta~t)~in~eq.] 0.014 secs (0.014u,0.s) -Chars 14695 - 14725 [destruct~(observe~t)~eqn:oeqt.] 0. secs (0.u,0.s) +Chars 14599 - 14614 [(intros~t~t'~eq).] 0. secs (0.u,0.s) +Chars 14617 - 14661 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) +Chars 14664 - 14692 [(rewrite~(itree_eta~t)~in~eq).] 0.021 secs (0.021u,0.s) +Chars 14695 - 14725 [(destruct~(observe~t)~eqn:oeqt).] 0.001 secs (0.001u,0.s) Chars 14729 - 14730 [-] 0. secs (0.u,0.s) -Chars 14731 - 14745 [rewrite~<-~eq.] 0.061 secs (0.061u,0.s) -Chars 14746 - 14766 [rewrite~unfold_iter.] 0.058 secs (0.058u,0.s) +Chars 14731 - 14745 [(rewrite~<-~eq).] 0.088 secs (0.086u,0.001s) +Chars 14746 - 14766 [(rewrite~unfold_iter).] 0.082 secs (0.08u,0.001s) Chars 14767 - 14772 [bcbn.] 0. secs (0.u,0.s) -Chars 14778 - 14802 [rewrite~Eqit.bind_ret_l.] 0.057 secs (0.057u,0.s) -Chars 14803 - 14814 [repeat~red.] 0. secs (0.u,0.s) +Chars 14778 - 14802 [(rewrite~Eqit.bind_ret_l).] 0.082 secs (0.081u,0.s) +Chars 14803 - 14814 [(repeat~red).] 0. secs (0.u,0.s) Chars 14815 - 14823 [simpobs.] 0. secs (0.u,0.s) Chars 14824 - 14841 [now~econstructor.] 0. secs (0.u,0.s) Chars 14845 - 14846 [-] 0. secs (0.u,0.s) -Chars 14847 - 14861 [rewrite~<-~eq.] 0.06 secs (0.059u,0.s) -Chars 14862 - 14882 [rewrite~unfold_iter.] 0.058 secs (0.057u,0.s) +Chars 14847 - 14861 [(rewrite~<-~eq).] 0.082 secs (0.08u,0.001s) +Chars 14862 - 14882 [(rewrite~unfold_iter).] 0.082 secs (0.081u,0.001s) Chars 14883 - 14888 [bcbn.] 0. secs (0.u,0.s) -Chars 14889 - 14913 [rewrite~Eqit.bind_ret_l.] 0.056 secs (0.056u,0.s) -Chars 14918 - 14935 [rewrite~tau_eutt.] 0.058 secs (0.058u,0.s) -Chars 14941 - 14952 [repeat~red.] 0. secs (0.u,0.s) -Chars 14953 - 14961 [simpobs.] 0. secs (0.u,0.s) +Chars 14889 - 14913 [(rewrite~Eqit.bind_ret_l).] 0.079 secs (0.079u,0.s) +Chars 14918 - 14935 [(rewrite~tau_eutt).] 0.079 secs (0.078u,0.s) +Chars 14941 - 14952 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14953 - 14961 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14962 - 14975 [econstructor.] 0. secs (0.u,0.s) Chars 14976 - 14990 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 14995 - 14996 [-] 0. secs (0.u,0.s) -Chars 14997 - 15011 [rewrite~<-~eq.] 0.063 secs (0.062u,0.s) -Chars 15012 - 15032 [rewrite~unfold_iter.] 0.068 secs (0.067u,0.s) +Chars 14997 - 15011 [(rewrite~<-~eq).] 0.078 secs (0.077u,0.s) +Chars 15012 - 15032 [(rewrite~unfold_iter).] 0.081 secs (0.079u,0.001s) Chars 15033 - 15038 [bcbn.] 0. secs (0.u,0.s) -Chars 15043 - 15060 [rewrite~bind_map.] 0.058 secs (0.058u,0.s) -Chars 15061 - 15081 [repeat~red;~simpobs.] 0.001 secs (0.001u,0.s) +Chars 15043 - 15060 [(rewrite~bind_map).] 0.08 secs (0.079u,0.s) +Chars 15061 - 15081 [(repeat~red;~simpobs).] 0.001 secs (0.001u,0.s) Chars 15082 - 15095 [econstructor.] 0. secs (0.u,0.s) Chars 15100 - 15101 [+] 0. secs (0.u,0.s) -Chars 15102 - 15110 [apply~H.] 0. secs (0.u,0.s) +Chars 15102 - 15110 [(apply~H).] 0. secs (0.u,0.s) Chars 15116 - 15117 [+] 0. secs (0.u,0.s) -Chars 15118 - 15124 [ebind.] 0.004 secs (0.004u,0.s) -Chars 15125 - 15139 [intros;~subst.] 0. secs (0.u,0.s) -Chars 15140 - 15157 [rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 15118 - 15124 [ebind.] 0.006 secs (0.005u,0.s) +Chars 15125 - 15139 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 15140 - 15157 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) Chars 15158 - 15170 [reflexivity.] 0. secs (0.u,0.s) Chars 15176 - 15177 [+] 0. secs (0.u,0.s) -Chars 15178 - 15185 [intros.] 0. secs (0.u,0.s) -Chars 15186 - 15203 [rewrite~tau_eutt.] 0.023 secs (0.023u,0.s) +Chars 15178 - 15185 [(intros).] 0. secs (0.u,0.s) +Chars 15186 - 15203 [(rewrite~tau_eutt).] 0.03 secs (0.03u,0.s) Chars 15204 - 15218 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 15220 - 15224 [Qed.] 0.011 secs (0.011u,0.s) +Chars 15220 - 15224 [Qed.] 0.015 secs (0.014u,0.s) Chars 15328 - 15564 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 15565 - 15571 [Proof.] 0. secs (0.u,0.s) -Chars 15574 - 15581 [intros.] 0. secs (0.u,0.s) -Chars 15584 - 15595 [repeat~red.] 0. secs (0.u,0.s) -Chars 15598 - 15627 [intros~t1~t2~eqt~s'~s~eqs~HI.] 0. secs (0.u,0.s) +Chars 15574 - 15581 [(intros).] 0. secs (0.u,0.s) +Chars 15584 - 15595 [(repeat~red).] 0. secs (0.u,0.s) +Chars 15598 - 15627 [(intros~t1~t2~eqt~s'~s~eqs~HI).] 0. secs (0.u,0.s) Chars 15630 - 15636 [subst.] 0. secs (0.u,0.s) Chars 15639 - 15661 [revert~t1~t2~eqt~s~HI.] 0. secs (0.u,0.s) Chars 15664 - 15683 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 15687 - 15694 [intros.] 0. secs (0.u,0.s) +Chars 15687 - 15694 [(intros).] 0. secs (0.u,0.s) Chars 15697 - 15708 [step~in~HI.] 0. secs (0.u,0.s) Chars 15712 - 15724 [step~in~eqt.] 0. secs (0.u,0.s) -Chars 15728 - 15744 [genobs~t1~obst1.] 0. secs (0.u,0.s) -Chars 15747 - 15763 [genobs~t2~obst2.] 0. secs (0.u,0.s) +Chars 15728 - 15744 [(genobs~t1~obst1).] 0. secs (0.u,0.s) +Chars 15747 - 15763 [(genobs~t2~obst2).] 0. secs (0.u,0.s) Chars 15766 - 15802 [revert~t1~t2~Heqobst1~Heqobst2...] 0. secs (0.u,0.s) -Chars 15805 - 15827 [induction~eqt;~intros.] 0. secs (0.u,0.s) +Chars 15805 - 15827 [(induction~eqt;~intros).] 0.001 secs (0.001u,0.s) Chars 15830 - 15831 [-] 0. secs (0.u,0.s) -Chars 15832 - 15839 [inv~HI.] 0.003 secs (0.003u,0.s) +Chars 15832 - 15839 [(inv~HI).] 0.006 secs (0.006u,0.s) Chars 15840 - 15853 [econstructor.] 0. secs (0.u,0.s) -Chars 15854 - 15875 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 15854 - 15875 [(etransitivity;~eauto).] 0. secs (0.u,0.s) Chars 15876 - 15882 [eauto.] 0. secs (0.u,0.s) Chars 15887 - 15888 [-] 0. secs (0.u,0.s) -Chars 15889 - 15896 [inv~HI.] 0.004 secs (0.004u,0.s) +Chars 15889 - 15896 [(inv~HI).] 0.005 secs (0.005u,0.s) Chars 15902 - 15915 [econstructor.] 0. secs (0.u,0.s) -Chars 15916 - 15934 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 15916 - 15934 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 15937 - 15938 [-] 0. secs (0.u,0.s) -Chars 15939 - 15946 [inv~HI.] 0.005 secs (0.005u,0.s) -Chars 15952 - 15974 [apply~inj_pair2~in~H1.] 0. secs (0.u,0.s) -Chars 15979 - 16001 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) +Chars 15939 - 15946 [(inv~HI).] 0.007 secs (0.007u,0.s) +Chars 15952 - 15974 [(apply~inj_pair2~in~H1).] 0. secs (0.u,0.s) +Chars 15979 - 16001 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) Chars 16006 - 16012 [subst.] 0. secs (0.u,0.s) Chars 16017 - 16030 [econstructor.] 0. secs (0.u,0.s) -Chars 16035 - 16045 [apply~HTA.] 0. secs (0.u,0.s) -Chars 16050 - 16060 [apply~eq2.] 0. secs (0.u,0.s) -Chars 16065 - 16077 [intros~a~Ha.] 0. secs (0.u,0.s) +Chars 16035 - 16045 [(apply~HTA).] 0. secs (0.u,0.s) +Chars 16050 - 16060 [(apply~eq2).] 0. secs (0.u,0.s) +Chars 16065 - 16077 [(intros~a~Ha).] 0. secs (0.u,0.s) Chars 16078 - 16097 [specialize~(REL~a).] 0. secs (0.u,0.s) Chars 16098 - 16119 [specialize~(HK~a~Ha).] 0. secs (0.u,0.s) -Chars 16120 - 16131 [red~in~REL.] 0. secs (0.u,0.s) -Chars 16137 - 16148 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 16149 - 16159 [apply~REL.] 0. secs (0.u,0.s) -Chars 16160 - 16169 [apply~HK.] 0. secs (0.u,0.s) +Chars 16120 - 16131 [(red~in~REL).] 0. secs (0.u,0.s) +Chars 16137 - 16148 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 16149 - 16159 [(apply~REL).] 0. secs (0.u,0.s) +Chars 16160 - 16169 [(apply~HK).] 0. secs (0.u,0.s) Chars 16172 - 16173 [-] 0. secs (0.u,0.s) Chars 16174 - 16187 [econstructor.] 0. secs (0.u,0.s) Chars 16188 - 16193 [step.] 0. secs (0.u,0.s) -Chars 16199 - 16212 [eapply~IHeqt.] 0. secs (0.u,0.s) +Chars 16199 - 16212 [(eapply~IHeqt).] 0. secs (0.u,0.s) Chars 16213 - 16225 [reflexivity.] 0. secs (0.u,0.s) Chars 16226 - 16238 [eassumption.] 0. secs (0.u,0.s) Chars 16239 - 16250 [assumption.] 0. secs (0.u,0.s) Chars 16253 - 16254 [-] 0. secs (0.u,0.s) -Chars 16255 - 16262 [inv~HI.] 0.007 secs (0.007u,0.s) -Chars 16268 - 16281 [eapply~IHeqt.] 0. secs (0.u,0.s) +Chars 16255 - 16262 [(inv~HI).] 0.01 secs (0.01u,0.s) +Chars 16268 - 16281 [(eapply~IHeqt).] 0. secs (0.u,0.s) Chars 16282 - 16294 [reflexivity.] 0. secs (0.u,0.s) Chars 16295 - 16307 [reflexivity.] 0. secs (0.u,0.s) Chars 16312 - 16323 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 16325 - 16329 [Qed.] 0.01 secs (0.01u,0.s) +Chars 16325 - 16329 [Qed.] 0.012 secs (0.011u,0.s) Chars 16331 - 16439 [Lemma~Leaf_Vis_sub~:~~~forall~...] 0. secs (0.u,0.s) Chars 16440 - 16446 [Proof.] 0. secs (0.u,0.s) -Chars 16449 - 16456 [intros.] 0. secs (0.u,0.s) -Chars 16459 - 16474 [eapply~LeafVis.] 0. secs (0.u,0.s) +Chars 16449 - 16456 [(intros).] 0. secs (0.u,0.s) +Chars 16459 - 16474 [(eapply~LeafVis).] 0. secs (0.u,0.s) Chars 16475 - 16487 [reflexivity.] 0. secs (0.u,0.s) -Chars 16488 - 16496 [apply~H.] 0. secs (0.u,0.s) +Chars 16488 - 16496 [(apply~H).] 0. secs (0.u,0.s) Chars 16497 - 16501 [Qed.] 0. secs (0.u,0.s) Chars 16503 - 16658 [Lemma~eutt_Leaf_~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 16659 - 16665 [Proof.] 0. secs (0.u,0.s) -Chars 16668 - 16679 [intros~E~R.] 0. secs (0.u,0.s) -Chars 16682 - 16701 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 16702 - 16709 [intros.] 0. secs (0.u,0.s) -Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.002 secs (0.002u,0.s) -Chars 16752 - 16774 [destruct~(observe~ta).] 0. secs (0.u,0.s) +Chars 16668 - 16679 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 16682 - 16701 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 16702 - 16709 [(intros).] 0. secs (0.u,0.s) +Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.003 secs (0.003u,0.s) +Chars 16752 - 16774 [(destruct~(observe~ta)).] 0.001 secs (0.001u,0.s) Chars 16777 - 16778 [-] 0. secs (0.u,0.s) Chars 16779 - 16792 [econstructor.] 0. secs (0.u,0.s) -Chars 16794 - 16806 [split;~auto.] 0. secs (0.u,0.s) -Chars 16807 - 16816 [apply~IN.] 0. secs (0.u,0.s) +Chars 16794 - 16806 [(split;~auto).] 0. secs (0.u,0.s) +Chars 16807 - 16816 [(apply~IN).] 0. secs (0.u,0.s) Chars 16817 - 16834 [now~econstructor.] 0. secs (0.u,0.s) Chars 16837 - 16838 [-] 0. secs (0.u,0.s) Chars 16839 - 16852 [econstructor.] 0. secs (0.u,0.s) -Chars 16853 - 16863 [apply~CIH.] 0. secs (0.u,0.s) -Chars 16864 - 16871 [intros.] 0. secs (0.u,0.s) -Chars 16872 - 16882 [eapply~IN.] 0. secs (0.u,0.s) -Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 16853 - 16863 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 16864 - 16871 [(intros).] 0. secs (0.u,0.s) +Chars 16872 - 16882 [(eapply~IN).] 0. secs (0.u,0.s) +Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) Chars 16907 - 16908 [-] 0. secs (0.u,0.s) Chars 16909 - 16922 [econstructor.] 0. secs (0.u,0.s) -Chars 16923 - 16930 [intros.] 0. secs (0.u,0.s) -Chars 16936 - 16946 [apply~CIH.] 0. secs (0.u,0.s) -Chars 16947 - 16954 [intros.] 0. secs (0.u,0.s) -Chars 16955 - 16965 [eapply~IN.] 0. secs (0.u,0.s) -Chars 16966 - 16986 [eapply~Leaf_Vis_sub.] 0. secs (0.u,0.s) -Chars 16987 - 16995 [apply~H.] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.003 secs (0.003u,0.s) +Chars 16923 - 16930 [(intros).] 0. secs (0.u,0.s) +Chars 16936 - 16946 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 16947 - 16954 [(intros).] 0. secs (0.u,0.s) +Chars 16955 - 16965 [(eapply~IN).] 0. secs (0.u,0.s) +Chars 16966 - 16986 [(eapply~Leaf_Vis_sub).] 0. secs (0.u,0.s) +Chars 16987 - 16995 [(apply~H).] 0. secs (0.u,0.s) +Chars 16996 - 17000 [Qed.] 0.004 secs (0.004u,0.s) Chars 17002 - 17097 [Lemma~eutt_Leaf~:~~~forall~E~R...] 0. secs (0.u,0.s) Chars 17098 - 17104 [Proof.] 0. secs (0.u,0.s) -Chars 17107 - 17114 [intros.] 0. secs (0.u,0.s) -Chars 17117 - 17134 [apply~eutt_Leaf_.] 0. secs (0.u,0.s) +Chars 17107 - 17114 [(intros).] 0. secs (0.u,0.s) +Chars 17117 - 17134 [(apply~eutt_Leaf_).] 0. secs (0.u,0.s) Chars 17135 - 17140 [auto.] 0. secs (0.u,0.s) Chars 17141 - 17145 [Qed.] 0. secs (0.u,0.s) -Chars 17251 - 17467 [Lemma~interp_iforest_trigger~:...] 0. secs (0.u,0.s) +Chars 17251 - 17467 [Lemma~interp_iforest_trigger~:...] 0.001 secs (0.001u,0.s) Chars 17468 - 17474 [Proof.] 0. secs (0.u,0.s) -Chars 17477 - 17484 [intros.] 0. secs (0.u,0.s) -Chars 17487 - 17491 [red.] 0. secs (0.u,0.s) -Chars 17494 - 17511 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 17477 - 17484 [(intros).] 0. secs (0.u,0.s) +Chars 17487 - 17491 [(red).] 0. secs (0.u,0.s) +Chars 17494 - 17511 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 17514 - 17515 [-] 0. secs (0.u,0.s) -Chars 17516 - 17538 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 17516 - 17538 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 17543 - 17544 [+] 0. secs (0.u,0.s) -Chars 17545 - 17566 [unfold~trigger~in~H0.] 0. secs (0.u,0.s) +Chars 17545 - 17566 [(unfold~trigger~in~H0).] 0. secs (0.u,0.s) Chars 17567 - 17578 [step~in~H0.] 0. secs (0.u,0.s) -Chars 17586 - 17593 [inv~H0.] 0.003 secs (0.003u,0.s) -Chars 17601 - 17623 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) -Chars 17624 - 17646 [apply~inj_pair2~in~H4.] 0. secs (0.u,0.s) +Chars 17586 - 17593 [(inv~H0).] 0.003 secs (0.003u,0.s) +Chars 17601 - 17623 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) +Chars 17624 - 17646 [(apply~inj_pair2~in~H4).] 0. secs (0.u,0.s) Chars 17653 - 17659 [subst.] 0. secs (0.u,0.s) -Chars 17666 - 17720 [unfold~subevent,~resum,~ReSum_...] 0. secs (0.u,0.s) -Chars 17727 - 17744 [rewrite~eq2~in~H.] 0.012 secs (0.012u,0.s) -Chars 17751 - 17783 [assert~(x~<-~ta;;~k2~x~≈~ta).] 0. secs (0.u,0.s) +Chars 17666 - 17720 [(unfold~subevent,~resum,~ReSum...] 0. secs (0.u,0.s) +Chars 17727 - 17744 [(rewrite~eq2~in~H).] 0.016 secs (0.016u,0.s) +Chars 17751 - 17783 [(assert~(x~<-~ta;;~k2~x~≈~ta)).] 0. secs (0.u,0.s) Chars 17790 - 17791 [{] 0. secs (0.u,0.s) -Chars 17792 - 17824 [rewrite~<-~(Eqit.bind_ret_r~ta).] 0.001 secs (0.001u,0.s) -Chars 17833 - 17902 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 17911 - 17935 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) -Chars 17936 - 17952 [apply~eutt_Leaf.] 0. secs (0.u,0.s) -Chars 17961 - 17968 [intros.] 0. secs (0.u,0.s) -Chars 17969 - 17981 [destruct~H0.] 0. secs (0.u,0.s) +Chars 17792 - 17824 [(rewrite~<-~(Eqit.bind_ret_r~t...] 0.002 secs (0.002u,0.s) +Chars 17833 - 17902 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) +Chars 17911 - 17935 [(rewrite~Eqit.bind_ret_r).] 0. secs (0.u,0.s) +Chars 17936 - 17952 [(apply~eutt_Leaf).] 0. secs (0.u,0.s) +Chars 17961 - 17968 [(intros).] 0. secs (0.u,0.s) +Chars 17969 - 17981 [(destruct~H0).] 0. secs (0.u,0.s) Chars 17982 - 17988 [subst.] 0. secs (0.u,0.s) Chars 17989 - 18011 [specialize~(HK~u2~H1).] 0. secs (0.u,0.s) Chars 18012 - 18023 [step~in~HK.] 0. secs (0.u,0.s) -Chars 18024 - 18031 [inv~HK.] 0.001 secs (0.001u,0.s) +Chars 18024 - 18031 [(inv~HK).] 0.001 secs (0.001u,0.s) Chars 18038 - 18039 [}] 0. secs (0.u,0.s) -Chars 18046 - 18062 [rewrite~H0~in~H.] 0.013 secs (0.013u,0.s) +Chars 18046 - 18062 [(rewrite~H0~in~H).] 0.018 secs (0.018u,0.s) Chars 18069 - 18099 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18100 - 18125 [unfold~Eq1_iforest~in~HP.] 0. secs (0.u,0.s) -Chars 18126 - 18153 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) -Chars 18160 - 18170 [rewrite~P.] 0. secs (0.u,0.s) -Chars 18171 - 18181 [apply~HTA.] 0. secs (0.u,0.s) +Chars 18100 - 18125 [(unfold~Eq1_iforest~in~HP).] 0. secs (0.u,0.s) +Chars 18126 - 18153 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) +Chars 18160 - 18170 [(rewrite~P).] 0. secs (0.u,0.s) +Chars 18171 - 18181 [(apply~HTA).] 0. secs (0.u,0.s) Chars 18182 - 18191 [symmetry.] 0. secs (0.u,0.s) Chars 18192 - 18203 [assumption.] 0. secs (0.u,0.s) Chars 18208 - 18209 [+] 0. secs (0.u,0.s) -Chars 18210 - 18266 [unfold~trigger,~subevent,~resu...] 0. secs (0.u,0.s) +Chars 18210 - 18266 [(unfold~trigger,~subevent,~res...] 0. secs (0.u,0.s) Chars 18273 - 18278 [step.] 0. secs (0.u,0.s) -Chars 18279 - 18339 [eapply~Interp_iforest_Vis~with...] 0. secs (0.u,0.s) +Chars 18279 - 18339 [(eapply~Interp_iforest_Vis~wit...] 0. secs (0.u,0.s) Chars 18346 - 18347 [*] 0. secs (0.u,0.s) -Chars 18348 - 18357 [apply~H0.] 0. secs (0.u,0.s) +Chars 18348 - 18357 [(apply~H0).] 0. secs (0.u,0.s) Chars 18364 - 18365 [*] 0. secs (0.u,0.s) -Chars 18366 - 18391 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 18392 - 18416 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) +Chars 18366 - 18391 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 18392 - 18416 [(rewrite~Eqit.bind_ret_r).] 0.001 secs (0.001u,0.s) Chars 18417 - 18428 [assumption.] 0. secs (0.u,0.s) Chars 18435 - 18436 [*] 0. secs (0.u,0.s) -Chars 18437 - 18444 [intros.] 0. secs (0.u,0.s) +Chars 18437 - 18444 [(intros).] 0. secs (0.u,0.s) Chars 18445 - 18450 [step.] 0. secs (0.u,0.s) -Chars 18451 - 18471 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 18451 - 18471 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 18474 - 18475 [-] 0. secs (0.u,0.s) -Chars 18476 - 18480 [hnf.] 0. secs (0.u,0.s) -Chars 18481 - 18503 [intros;~split;~intros.] 0. secs (0.u,0.s) -Chars 18508 - 18521 [rewrite~<-~H.] 0.028 secs (0.028u,0.s) +Chars 18476 - 18480 [(hnf).] 0. secs (0.u,0.s) +Chars 18481 - 18503 [(intros;~split;~intros).] 0. secs (0.u,0.s) +Chars 18508 - 18521 [(rewrite~<-~H).] 0.04 secs (0.039u,0.s) Chars 18522 - 18533 [assumption.] 0. secs (0.u,0.s) -Chars 18538 - 18548 [rewrite~H.] 0.027 secs (0.026u,0.s) +Chars 18538 - 18548 [(rewrite~H).] 0.04 secs (0.039u,0.s) Chars 18549 - 18560 [assumption.] 0. secs (0.u,0.s) Chars 18563 - 18564 [-] 0. secs (0.u,0.s) -Chars 18565 - 18569 [hnf.] 0. secs (0.u,0.s) -Chars 18574 - 18596 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 18565 - 18569 [(hnf).] 0. secs (0.u,0.s) +Chars 18574 - 18596 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 18601 - 18631 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18632 - 18659 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) -Chars 18664 - 18681 [rewrite~P;~eauto.] 0. secs (0.u,0.s) +Chars 18632 - 18659 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) +Chars 18664 - 18681 [(rewrite~P;~eauto).] 0. secs (0.u,0.s) Chars 18682 - 18691 [symmetry.] 0. secs (0.u,0.s) Chars 18692 - 18703 [assumption.] 0. secs (0.u,0.s) Chars 18708 - 18738 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18739 - 18766 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) -Chars 18771 - 18788 [rewrite~P;~eauto.] 0. secs (0.u,0.s) -Chars 18789 - 18793 [Qed.] 0.008 secs (0.008u,0.s) +Chars 18739 - 18766 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) +Chars 18771 - 18788 [(rewrite~P;~eauto).] 0. secs (0.u,0.s) +Chars 18789 - 18793 [Qed.] 0.011 secs (0.011u,0.s) Chars 19261 - 19411 [Lemma~interp_iforest_spin_acce...] 0. secs (0.u,0.s) Chars 19412 - 19418 [Proof.] 0. secs (0.u,0.s) -Chars 19421 - 19428 [intros.] 0. secs (0.u,0.s) -Chars 19431 - 19450 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19451 - 19455 [cbn.] 0. secs (0.u,0.s) +Chars 19421 - 19428 [(intros).] 0. secs (0.u,0.s) +Chars 19431 - 19450 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 19451 - 19455 [(cbn).] 0. secs (0.u,0.s) Chars 19456 - 19469 [econstructor.] 0. secs (0.u,0.s) -Chars 19470 - 19480 [apply~CIH.] 0. secs (0.u,0.s) -Chars 19482 - 19486 [Qed.] 0. secs (0.u,0.s) +Chars 19470 - 19480 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 19482 - 19486 [Qed.] 0.001 secs (0.001u,0.s) Chars 19527 - 19720 [Lemma~interp_iforest_tau~:~~~f...] 0. secs (0.u,0.s) Chars 19721 - 19727 [Proof.] 0. secs (0.u,0.s) -Chars 19730 - 19737 [intros.] 0. secs (0.u,0.s) -Chars 19740 - 19757 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 19730 - 19737 [(intros).] 0. secs (0.u,0.s) +Chars 19740 - 19757 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 19760 - 19761 [-] 0. secs (0.u,0.s) -Chars 19762 - 19784 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 19762 - 19784 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 19789 - 19790 [+] 0. secs (0.u,0.s) -Chars 19791 - 19804 [rewrite~<-~H.] 0.022 secs (0.022u,0.s) +Chars 19791 - 19804 [(rewrite~<-~H).] 0.034 secs (0.034u,0.s) Chars 19811 - 19816 [step.] 0. secs (0.u,0.s) Chars 19817 - 19834 [now~econstructor.] 0. secs (0.u,0.s) Chars 19840 - 19841 [+] 0. secs (0.u,0.s) -Chars 19842 - 19852 [rewrite~H.] 0.023 secs (0.022u,0.s) +Chars 19842 - 19852 [(rewrite~H).] 0.032 secs (0.032u,0.s) Chars 19859 - 19870 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19871 - 19878 [inv~H0.] 0.001 secs (0.001u,0.s) +Chars 19871 - 19878 [(inv~H0).] 0.001 secs (0.001u,0.s) Chars 19881 - 19882 [-] 0. secs (0.u,0.s) Chars 19883 - 19901 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 19904 - 19905 [-] 0. secs (0.u,0.s) Chars 19906 - 19924 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19925 - 19929 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19925 - 19929 [Qed.] 0.003 secs (0.003u,0.s) Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0. secs (0.u,0.s) Chars 20131 - 20137 [Proof.] 0. secs (0.u,0.s) -Chars 20140 - 20147 [intros.] 0. secs (0.u,0.s) +Chars 20140 - 20147 [(intros).] 0. secs (0.u,0.s) Chars 20150 - 20160 [step~in~H.] 0. secs (0.u,0.s) -Chars 20161 - 20167 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 20171 - 20188 [exists~r2;~eauto.] 0. secs (0.u,0.s) -Chars 20189 - 20193 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20161 - 20167 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 20171 - 20188 [(exists~r2;~eauto).] 0. secs (0.u,0.s) +Chars 20189 - 20193 [Qed.] 0.002 secs (0.002u,0.s) Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0.001 secs (0.001u,0.s) Chars 20468 - 20474 [Proof.] 0. secs (0.u,0.s) -Chars 20477 - 20484 [intros.] 0. secs (0.u,0.s) -Chars 20487 - 20494 [sinv~H.] 0.003 secs (0.003u,0.s) -Chars 20498 - 20520 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) -Chars 20523 - 20545 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) +Chars 20477 - 20484 [(intros).] 0. secs (0.u,0.s) +Chars 20487 - 20494 [(sinv~H).] 0.004 secs (0.004u,0.s) +Chars 20498 - 20520 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) +Chars 20523 - 20545 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) Chars 20548 - 20554 [subst.] 0. secs (0.u,0.s) Chars 20557 - 20567 [exists~ta.] 0. secs (0.u,0.s) Chars 20568 - 20578 [exists~k2.] 0. secs (0.u,0.s) -Chars 20579 - 20591 [split;~auto.] 0. secs (0.u,0.s) -Chars 20592 - 20596 [Qed.] 0.002 secs (0.002u,0.s) +Chars 20579 - 20591 [(split;~auto).] 0. secs (0.u,0.s) +Chars 20592 - 20596 [Qed.] 0.004 secs (0.003u,0.s) Chars 20598 - 20796 [Lemma~interp_iforest_tau_inv~:...] 0. secs (0.u,0.s) Chars 20797 - 20803 [Proof.] 0. secs (0.u,0.s) -Chars 20806 - 20813 [intros.] 0. secs (0.u,0.s) -Chars 20816 - 20823 [sinv~H.] 0.001 secs (0.001u,0.s) +Chars 20806 - 20813 [(intros).] 0. secs (0.u,0.s) +Chars 20816 - 20823 [(sinv~H).] 0.001 secs (0.001u,0.s) Chars 20825 - 20829 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.001 secs (0.001u,0.s) +Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.002 secs (0.001u,0.s) Chars 21130 - 21136 [Proof.] 0. secs (0.u,0.s) -Chars 21139 - 21182 [intros~E1~E2~F~h1_spec~h2_spec...] 0. secs (0.u,0.s) -Chars 21185 - 21213 [unfold~handler_correct~in~*.] 0. secs (0.u,0.s) -Chars 21216 - 21227 [intros~T~e.] 0. secs (0.u,0.s) -Chars 21230 - 21241 [destruct~e.] 0. secs (0.u,0.s) -Chars 21242 - 21251 [apply~C1.] 0. secs (0.u,0.s) -Chars 21252 - 21261 [apply~C2.] 0. secs (0.u,0.s) +Chars 21139 - 21182 [(intros~E1~E2~F~h1_spec~h2_spe...] 0. secs (0.u,0.s) +Chars 21185 - 21213 [(unfold~handler_correct~in~*).] 0. secs (0.u,0.s) +Chars 21216 - 21227 [(intros~T~e).] 0. secs (0.u,0.s) +Chars 21230 - 21241 [(destruct~e).] 0. secs (0.u,0.s) +Chars 21242 - 21251 [(apply~C1).] 0. secs (0.u,0.s) +Chars 21252 - 21261 [(apply~C2).] 0. secs (0.u,0.s) Chars 21262 - 21266 [Qed.] 0. secs (0.u,0.s) Chars 21268 - 21500 [Definition~iforest_compose~{F~...] 0. secs (0.u,0.s) -Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0. secs (0.u,0.s) +Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0.001 secs (0.001u,0.s) Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0. secs (0.u,0.s) Chars 21849 - 21993 [Definition~iter_cont~{I}~{E}~{...] 0. secs (0.u,0.s) -Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) +Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) Chars 22317 - 22547 [Lemma~eqit_Leaf_bind'~{E}~{R}~...] 0. secs (0.u,0.s) Chars 22548 - 22554 [Proof.] 0. secs (0.u,0.s) -Chars 22557 - 22564 [intros.] 0. secs (0.u,0.s) -Chars 22565 - 22597 [eapply~eqit_clo_bind_gen;~eauto.] 0.004 secs (0.004u,0.s) -Chars 22598 - 22612 [intros;~subst.] 0. secs (0.u,0.s) -Chars 22616 - 22626 [eapply~H0.] 0. secs (0.u,0.s) +Chars 22557 - 22564 [(intros).] 0. secs (0.u,0.s) +Chars 22565 - 22597 [(eapply~eqit_clo_bind_gen;~eau...] 0.004 secs (0.004u,0.s) +Chars 22598 - 22612 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 22616 - 22626 [(eapply~H0).] 0. secs (0.u,0.s) Chars 22627 - 22633 [eauto.] 0. secs (0.u,0.s) -Chars 22635 - 22639 [Qed.] 0. secs (0.u,0.s) -Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0. secs (0.u,0.s) +Chars 22635 - 22639 [Qed.] 0.001 secs (0.001u,0.s) +Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0.001 secs (0.001u,0.s) Chars 22916 - 22922 [Proof.] 0. secs (0.u,0.s) -Chars 22925 - 22932 [intros.] 0. secs (0.u,0.s) -Chars 22933 - 22965 [eapply~eqit_clo_bind_gen;~eauto.] 0.002 secs (0.002u,0.s) -Chars 22966 - 22980 [intros;~subst.] 0. secs (0.u,0.s) -Chars 22984 - 22994 [eapply~H0.] 0. secs (0.u,0.s) +Chars 22925 - 22932 [(intros).] 0. secs (0.u,0.s) +Chars 22933 - 22965 [(eapply~eqit_clo_bind_gen;~eau...] 0.003 secs (0.003u,0.s) +Chars 22966 - 22980 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 22984 - 22994 [(eapply~H0).] 0. secs (0.u,0.s) Chars 22995 - 23001 [eauto.] 0. secs (0.u,0.s) -Chars 23003 - 23007 [Qed.] 0. secs (0.u,0.s) +Chars 23003 - 23007 [Qed.] 0.001 secs (0.001u,0.s) Chars 23009 - 23094 [Lemma~eutt_ret_vis_abs~:~~~for...] 0. secs (0.u,0.s) Chars 23095 - 23101 [Proof.] 0. secs (0.u,0.s) -Chars 23104 - 23111 [intros.] 0. secs (0.u,0.s) -Chars 23114 - 23125 [now~sinv~H.] 0.001 secs (0.001u,0.s) -Chars 23127 - 23131 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23104 - 23111 [(intros).] 0. secs (0.u,0.s) +Chars 23114 - 23125 [now~sinv~H.] 0.002 secs (0.002u,0.s) +Chars 23127 - 23131 [Qed.] 0.002 secs (0.002u,0.s) Chars 23139 - 23218 [Ltac~simpl_iter~:=~unfold~iter...] 0. secs (0.u,0.s) -Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.006 secs (0.006u,0.s) +Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.004 secs (0.004u,0.s) Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0. secs (0.u,0.s) -Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.001 secs (0.001u,0.s) +Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.002 secs (0.002u,0.s) Chars 23925 - 23931 [Proof.] 0. secs (0.u,0.s) -Chars 23934 - 23941 [intros.] 0. secs (0.u,0.s) -Chars 23942 - 23965 [rewrite~iter_dinatural.] 0.004 secs (0.004u,0.s) +Chars 23934 - 23941 [(intros).] 0. secs (0.u,0.s) +Chars 23942 - 23965 [(rewrite~iter_dinatural).] 0.005 secs (0.005u,0.s) Chars 23966 - 23978 [reflexivity.] 0. secs (0.u,0.s) -Chars 23979 - 23983 [Qed.] 0.001 secs (0.001u,0.s) -Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.008 secs (0.008u,0.s) +Chars 23979 - 23983 [Qed.] 0.002 secs (0.002u,0.s) +Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.003 secs (0.003u,0.s) Chars 24680 - 24686 [Proof.] 0. secs (0.u,0.s) -Chars 24689 - 24708 [intros~a~b~m~x0~a1.] 0. secs (0.u,0.s) -Chars 24711 - 24756 [pose~proof~(iter_succ_dinatura...] 0. secs (0.u,0.s) +Chars 24689 - 24708 [(intros~a~b~m~x0~a1).] 0. secs (0.u,0.s) +Chars 24711 - 24756 [(pose~proof~(iter_succ_dinatur...] 0. secs (0.u,0.s) Chars 24759 - 24783 [specialize~(H0~(a1,~0)).] 0. secs (0.u,0.s) -Chars 24786 - 24814 [unfold~f~at~1,~g~at~1~in~H0.] 0. secs (0.u,0.s) -Chars 24817 - 24857 [unfold~cat~at~1,~Cat_Kleisli~a...] 0. secs (0.u,0.s) -Chars 24860 - 24979 [match~goal~with~|~H:(?body1~≈~...] 0.001 secs (0.001u,0.s) -Chars 24981 - 25000 [assert~(s1~≈~s2).] 0. secs (0.u,0.s) +Chars 24786 - 24814 [(unfold~f~at~1,~g~at~1~in~H0).] 0. secs (0.u,0.s) +Chars 24817 - 24857 [(unfold~cat~at~1,~Cat_Kleisli~...] 0. secs (0.u,0.s) +Chars 24860 - 24979 [(match~goal~with~~|~H:(?body1~...] 0.002 secs (0.002u,0.s) +Chars 24981 - 25000 [(assert~(s1~≈~s2)).] 0. secs (0.u,0.s) Chars 25001 - 25002 [{] 0. secs (0.u,0.s) Chars 25007 - 25013 [subst.] 0. secs (0.u,0.s) -Chars 25018 - 25171 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) -Chars 25176 - 25205 [assert~(iter~k1~⩯~iter~k2).] 0. secs (0.u,0.s) +Chars 25018 - 25171 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) +Chars 25176 - 25205 [(assert~(iter~k1~⩯~iter~k2)).] 0.001 secs (0.001u,0.s) Chars 25206 - 25207 [{] 0. secs (0.u,0.s) -Chars 25214 - 25243 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 25214 - 25243 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 25250 - 25256 [subst.] 0. secs (0.u,0.s) -Chars 25257 - 25266 [do~3~red.] 0. secs (0.u,0.s) -Chars 25267 - 25274 [intros.] 0. secs (0.u,0.s) -Chars 25281 - 25324 [destruct~a0;~rewrite~Monad.bin...] 0.004 secs (0.003u,0.s) +Chars 25257 - 25266 [(do~3~red).] 0. secs (0.u,0.s) +Chars 25267 - 25274 [(intros).] 0. secs (0.u,0.s) +Chars 25281 - 25324 [(destruct~a0;~rewrite~Monad.bi...] 0.004 secs (0.004u,0.s) Chars 25331 - 25343 [reflexivity.] 0. secs (0.u,0.s) Chars 25348 - 25349 [}] 0. secs (0.u,0.s) -Chars 25354 - 25368 [do~3~red~in~H.] 0. secs (0.u,0.s) -Chars 25373 - 25381 [apply~H.] 0. secs (0.u,0.s) +Chars 25354 - 25368 [(do~3~red~in~H).] 0. secs (0.u,0.s) +Chars 25373 - 25381 [(apply~H).] 0. secs (0.u,0.s) Chars 25384 - 25385 [}] 0. secs (0.u,0.s) -Chars 25388 - 25401 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 25388 - 25401 [(rewrite~<-~H).] 0.002 secs (0.002u,0.s) Chars 25402 - 25408 [subst.] 0.001 secs (0.001u,0.s) Chars 25409 - 25417 [clear~H.] 0. secs (0.u,0.s) -Chars 25418 - 25429 [rewrite~H0.] 0.002 secs (0.002u,0.s) -Chars 25432 - 25444 [unfold~f,~g.] 0. secs (0.u,0.s) -Chars 25447 - 25471 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 25472 - 25497 [rewrite~Monad.bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 25500 - 25504 [cbn.] 0. secs (0.u,0.s) -Chars 25507 - 25615 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) -Chars 25618 - 25647 [assert~(iter~i1~⩯~iter~i2).] 0. secs (0.u,0.s) +Chars 25418 - 25429 [(rewrite~H0).] 0.003 secs (0.003u,0.s) +Chars 25432 - 25444 [(unfold~f,~g).] 0. secs (0.u,0.s) +Chars 25447 - 25471 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 25472 - 25497 [(rewrite~Monad.bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 25500 - 25504 [(cbn).] 0. secs (0.u,0.s) +Chars 25507 - 25615 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) +Chars 25618 - 25647 [(assert~(iter~i1~⩯~iter~i2)).] 0.001 secs (0.001u,0.s) Chars 25648 - 25649 [{] 0. secs (0.u,0.s) -Chars 25654 - 25683 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 25654 - 25683 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 25688 - 25694 [subst.] 0. secs (0.u,0.s) -Chars 25699 - 25708 [do~3~red.] 0. secs (0.u,0.s) -Chars 25709 - 25716 [intros.] 0. secs (0.u,0.s) -Chars 25721 - 25733 [destruct~a0.] 0. secs (0.u,0.s) -Chars 25734 - 25757 [rewrite~Eqit.bind_bind.] 0.002 secs (0.002u,0.s) -Chars 25762 - 25784 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 25699 - 25708 [(do~3~red).] 0. secs (0.u,0.s) +Chars 25709 - 25716 [(intros).] 0. secs (0.u,0.s) +Chars 25721 - 25733 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 25734 - 25757 [(rewrite~Eqit.bind_bind).] 0.003 secs (0.003u,0.s) +Chars 25762 - 25784 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 25785 - 25797 [reflexivity.] 0. secs (0.u,0.s) -Chars 25802 - 25809 [intros.] 0. secs (0.u,0.s) -Chars 25810 - 25820 [rewrite~H.] 0. secs (0.u,0.s) -Chars 25821 - 25880 [destruct~u2;~rewrite~Eqit.bind...] 0.004 secs (0.004u,0.s) +Chars 25802 - 25809 [(intros).] 0. secs (0.u,0.s) +Chars 25810 - 25820 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 25821 - 25880 [(destruct~u2;~rewrite~Eqit.bin...] 0.007 secs (0.007u,0.s) Chars 25883 - 25884 [}] 0. secs (0.u,0.s) -Chars 25887 - 25901 [do~3~red~in~H.] 0. secs (0.u,0.s) -Chars 25904 - 25912 [apply~H.] 0. secs (0.u,0.s) -Chars 25913 - 25917 [Qed.] 0.01 secs (0.01u,0.s) +Chars 25887 - 25901 [(do~3~red~in~H).] 0. secs (0.u,0.s) +Chars 25904 - 25912 [(apply~H).] 0. secs (0.u,0.s) +Chars 25913 - 25917 [Qed.] 0.013 secs (0.013u,0.s) Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0.001 secs (0.001u,0.s) Chars 26139 - 26240 [Lemma~Eq1_iforest'_Eq1_iforest...] 0. secs (0.u,0.s) Chars 26241 - 26247 [Proof.] 0. secs (0.u,0.s) -Chars 26250 - 26257 [intros.] 0. secs (0.u,0.s) -Chars 26260 - 26264 [red.] 0. secs (0.u,0.s) -Chars 26267 - 26276 [red~in~H.] 0. secs (0.u,0.s) -Chars 26279 - 26312 [destruct~H~as~(HXY,~(EPA,~EPA')).] 0. secs (0.u,0.s) +Chars 26250 - 26257 [(intros).] 0. secs (0.u,0.s) +Chars 26260 - 26264 [(red).] 0. secs (0.u,0.s) +Chars 26267 - 26276 [(red~in~H).] 0. secs (0.u,0.s) +Chars 26279 - 26312 [(destruct~H~as~(HXY,~(EPA,~EPA...] 0. secs (0.u,0.s) Chars 26315 - 26321 [split.] 0. secs (0.u,0.s) -Chars 26324 - 26331 [intros.] 0. secs (0.u,0.s) +Chars 26324 - 26331 [(intros).] 0. secs (0.u,0.s) Chars 26334 - 26343 [exists~x.] 0. secs (0.u,0.s) -Chars 26344 - 26366 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) +Chars 26344 - 26366 [(split;~[~reflexivity~|~~]).] 0. secs (0.u,0.s) Chars 26367 - 26388 [specialize~(HXY~x~x).] 0. secs (0.u,0.s) -Chars 26390 - 26400 [apply~HXY.] 0. secs (0.u,0.s) +Chars 26390 - 26400 [(apply~HXY).] 0. secs (0.u,0.s) Chars 26401 - 26413 [reflexivity.] 0. secs (0.u,0.s) Chars 26414 - 26425 [assumption.] 0. secs (0.u,0.s) -Chars 26428 - 26445 [split;~try~tauto.] 0. secs (0.u,0.s) -Chars 26448 - 26455 [intros.] 0. secs (0.u,0.s) +Chars 26428 - 26445 [(split;~try~tauto).] 0.001 secs (0.001u,0.s) +Chars 26448 - 26455 [(intros).] 0. secs (0.u,0.s) Chars 26458 - 26467 [exists~y.] 0. secs (0.u,0.s) -Chars 26468 - 26490 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) +Chars 26468 - 26490 [(split;~[~reflexivity~|~~]).] 0. secs (0.u,0.s) Chars 26491 - 26512 [specialize~(HXY~y~y).] 0. secs (0.u,0.s) -Chars 26514 - 26524 [apply~HXY.] 0. secs (0.u,0.s) +Chars 26514 - 26524 [(apply~HXY).] 0. secs (0.u,0.s) Chars 26525 - 26537 [reflexivity.] 0. secs (0.u,0.s) Chars 26538 - 26549 [assumption.] 0. secs (0.u,0.s) -Chars 26550 - 26554 [Qed.] 0. secs (0.u,0.s) +Chars 26550 - 26554 [Qed.] 0.001 secs (0.001u,0.s) Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 26740 - 26746 [Proof.] 0. secs (0.u,0.s) -Chars 26749 - 26756 [intros.] 0. secs (0.u,0.s) -Chars 26759 - 26776 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 26749 - 26756 [(intros).] 0. secs (0.u,0.s) +Chars 26759 - 26776 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 26779 - 26780 [-] 0. secs (0.u,0.s) -Chars 26781 - 26817 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) +Chars 26781 - 26817 [(intros~t~t'~eq;~split;~intros...] 0. secs (0.u,0.s) Chars 26822 - 26823 [*] 0. secs (0.u,0.s) -Chars 26824 - 26833 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 26840 - 26860 [repeat~red~in~eqtt'.] 0. secs (0.u,0.s) -Chars 26867 - 26911 [destruct~eqtt'~as~(ta,~(k,~(EQ...] 0. secs (0.u,0.s) +Chars 26824 - 26833 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 26840 - 26860 [(repeat~red~in~eqtt').] 0. secs (0.u,0.s) +Chars 26867 - 26911 [(destruct~eqtt'~as~(ta,~(k,~(E...] 0. secs (0.u,0.s) Chars 26916 - 26917 [+] 0. secs (0.u,0.s) -Chars 26918 - 26950 [unfold~bind,~Monad_itree~in~EQ2.] 0. secs (0.u,0.s) -Chars 26951 - 26991 [rewrite~EQ1,~Eqit.bind_ret_l,~...] 0.033 secs (0.032u,0.s) -Chars 26998 - 27031 [eapply~H;~[~apply~EQ2~|~apply~...] 0. secs (0.u,0.s) -Chars 27038 - 27050 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) -Chars 27051 - 27070 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 26918 - 26950 [(unfold~bind,~Monad_itree~in~E...] 0. secs (0.u,0.s) +Chars 26951 - 26991 [(rewrite~EQ1,~Eqit.bind_ret_l,...] 0.044 secs (0.043u,0.s) +Chars 26998 - 27031 [(eapply~H;~[~apply~EQ2~|~apply...] 0. secs (0.u,0.s) +Chars 27038 - 27050 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) +Chars 27051 - 27070 [(constructor;~eauto).] 0. secs (0.u,0.s) Chars 27074 - 27075 [*] 0. secs (0.u,0.s) -Chars 27076 - 27080 [cbn.] 0. secs (0.u,0.s) -Chars 27086 - 27145 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) +Chars 27076 - 27080 [(cbn).] 0. secs (0.u,0.s) +Chars 27086 - 27145 [(exists~(Ret~x),(fun~_~=>~t);~...] 0. secs (0.u,0.s) Chars 27152 - 27153 [+] 0. secs (0.u,0.s) -Chars 27154 - 27179 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 27180 - 27217 [rewrite~Eqit.bind_ret_l;~refle...] 0. secs (0.u,0.s) +Chars 27154 - 27179 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 27180 - 27217 [(rewrite~Eqit.bind_ret_l;~refl...] 0.001 secs (0.001u,0.s) Chars 27224 - 27225 [+] 0. secs (0.u,0.s) -Chars 27226 - 27233 [intros.] 0. secs (0.u,0.s) -Chars 27234 - 27266 [apply~Leaf_Ret_inv~in~H0;~subst.] 0. secs (0.u,0.s) -Chars 27267 - 27289 [revert~eqtt';~apply~H.] 0. secs (0.u,0.s) +Chars 27226 - 27233 [(intros).] 0. secs (0.u,0.s) +Chars 27234 - 27266 [(apply~Leaf_Ret_inv~in~H0;~sub...] 0. secs (0.u,0.s) +Chars 27267 - 27289 [(revert~eqtt';~apply~H).] 0. secs (0.u,0.s) Chars 27290 - 27295 [auto.] 0. secs (0.u,0.s) Chars 27298 - 27299 [-] 0. secs (0.u,0.s) -Chars 27300 - 27338 [intros~t~t'~EQ;~cbn;~split;~in...] 0. secs (0.u,0.s) +Chars 27300 - 27338 [(intros~t~t'~EQ;~cbn;~split;~i...] 0. secs (0.u,0.s) Chars 27343 - 27344 [*] 0. secs (0.u,0.s) -Chars 27345 - 27386 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) -Chars 27393 - 27453 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) +Chars 27345 - 27386 [(destruct~HX~as~(ta,~(k,~(EQ1,...] 0. secs (0.u,0.s) +Chars 27393 - 27453 [(exists~(Ret~x),(fun~_~=>~t);~...] 0. secs (0.u,0.s) Chars 27460 - 27462 [--] 0. secs (0.u,0.s) -Chars 27463 - 27488 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 27489 - 27513 [rewrite~Eqit.bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 27463 - 27488 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 27489 - 27513 [(rewrite~Eqit.bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 27514 - 27523 [symmetry.] 0. secs (0.u,0.s) Chars 27524 - 27535 [assumption.] 0. secs (0.u,0.s) Chars 27542 - 27544 [--] 0. secs (0.u,0.s) -Chars 27545 - 27558 [intros~?~RET.] 0. secs (0.u,0.s) -Chars 27559 - 27592 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) -Chars 27593 - 27610 [rewrite~EQ2,~EQ1.] 0.006 secs (0.006u,0.s) -Chars 27620 - 27624 [cbn.] 0. secs (0.u,0.s) -Chars 27625 - 27644 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 27645 - 27654 [apply~KA.] 0. secs (0.u,0.s) -Chars 27655 - 27667 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) -Chars 27668 - 27686 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 27545 - 27558 [(intros~?~RET).] 0. secs (0.u,0.s) +Chars 27559 - 27592 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) +Chars 27593 - 27610 [(rewrite~EQ2,~EQ1).] 0.009 secs (0.009u,0.s) +Chars 27620 - 27624 [(cbn).] 0. secs (0.u,0.s) +Chars 27625 - 27644 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 27645 - 27654 [(apply~KA).] 0. secs (0.u,0.s) +Chars 27655 - 27667 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) +Chars 27668 - 27686 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 27691 - 27692 [*] 0. secs (0.u,0.s) -Chars 27693 - 27734 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) -Chars 27741 - 27801 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) +Chars 27693 - 27734 [(destruct~HX~as~(ta,~(k,~(EQ1,...] 0. secs (0.u,0.s) +Chars 27741 - 27801 [(exists~(Ret~x),(fun~_~=>~t);~...] 0. secs (0.u,0.s) Chars 27808 - 27810 [--] 0. secs (0.u,0.s) -Chars 27811 - 27836 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 27837 - 27861 [rewrite~Eqit.bind_ret_l.] 0. secs (0.u,0.s) +Chars 27811 - 27836 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 27837 - 27861 [(rewrite~Eqit.bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 27862 - 27874 [reflexivity.] 0. secs (0.u,0.s) Chars 27881 - 27883 [--] 0. secs (0.u,0.s) -Chars 27884 - 27897 [intros~?~RET.] 0. secs (0.u,0.s) -Chars 27898 - 27931 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) -Chars 27932 - 27953 [rewrite~EQ,~EQ2,~EQ1.] 0.009 secs (0.009u,0.s) -Chars 27963 - 27967 [cbn.] 0. secs (0.u,0.s) -Chars 27968 - 27987 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 27988 - 27997 [apply~KA.] 0. secs (0.u,0.s) -Chars 27998 - 28010 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) -Chars 28011 - 28029 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 27884 - 27897 [(intros~?~RET).] 0. secs (0.u,0.s) +Chars 27898 - 27931 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) +Chars 27932 - 27953 [(rewrite~EQ,~EQ2,~EQ1).] 0.014 secs (0.014u,0.s) +Chars 27963 - 27967 [(cbn).] 0. secs (0.u,0.s) +Chars 27968 - 27987 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 27988 - 27997 [(apply~KA).] 0. secs (0.u,0.s) +Chars 27998 - 28010 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) +Chars 28011 - 28029 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 28032 - 28033 [-] 0. secs (0.u,0.s) Chars 28034 - 28045 [assumption.] 0. secs (0.u,0.s) -Chars 28046 - 28050 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28046 - 28050 [Qed.] 0.005 secs (0.005u,0.s) Chars 28052 - 28177 [#[global]~Instance~bind_ifores...] 0. secs (0.u,0.s) Chars 28178 - 28184 [Proof.] 0. secs (0.u,0.s) -Chars 28187 - 28255 [repeat~red;~intros~PA1~PA2~EQP...] 0. secs (0.u,0.s) +Chars 28187 - 28255 [(repeat~red;~intros~PA1~PA2~EQ...] 0. secs (0.u,0.s) Chars 28258 - 28259 [-] 0. secs (0.u,0.s) -Chars 28260 - 28298 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) -Chars 28303 - 28307 [red.] 0. secs (0.u,0.s) +Chars 28260 - 28298 [(destruct~H~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) +Chars 28303 - 28307 [(red).] 0. secs (0.u,0.s) Chars 28312 - 28325 [exists~ta,k.] 0. secs (0.u,0.s) Chars 28326 - 28332 [split.] 0. secs (0.u,0.s) Chars 28337 - 28338 [+] 0. secs (0.u,0.s) -Chars 28339 - 28352 [destruct~EQP.] 0. secs (0.u,0.s) -Chars 28353 - 28369 [apply~(H~ta~ta).] 0. secs (0.u,0.s) +Chars 28339 - 28352 [(destruct~EQP).] 0. secs (0.u,0.s) +Chars 28353 - 28369 [(apply~(H~ta~ta)).] 0. secs (0.u,0.s) Chars 28370 - 28382 [reflexivity.] 0. secs (0.u,0.s) Chars 28383 - 28394 [assumption.] 0. secs (0.u,0.s) Chars 28399 - 28400 [+] 0. secs (0.u,0.s) Chars 28401 - 28407 [split.] 0. secs (0.u,0.s) -Chars 28408 - 28423 [rewrite~<-~EQt.] 0. secs (0.u,0.s) +Chars 28408 - 28423 [(rewrite~<-~EQt).] 0.001 secs (0.001u,0.s) Chars 28424 - 28435 [assumption.] 0. secs (0.u,0.s) -Chars 28436 - 28443 [intros.] 0. secs (0.u,0.s) -Chars 28450 - 28468 [repeat~red~in~EQK.] 0. secs (0.u,0.s) +Chars 28436 - 28443 [(intros).] 0. secs (0.u,0.s) +Chars 28450 - 28468 [(repeat~red~in~EQK).] 0. secs (0.u,0.s) Chars 28470 - 28499 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) -Chars 28500 - 28513 [destruct~EQK.] 0. secs (0.u,0.s) -Chars 28520 - 28534 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 28535 - 28544 [apply~HK.] 0. secs (0.u,0.s) +Chars 28500 - 28513 [(destruct~EQK).] 0. secs (0.u,0.s) +Chars 28520 - 28534 [(rewrite~<-~H0).] 0. secs (0.u,0.s) +Chars 28535 - 28544 [(apply~HK).] 0. secs (0.u,0.s) Chars 28545 - 28556 [assumption.] 0. secs (0.u,0.s) Chars 28557 - 28569 [reflexivity.] 0. secs (0.u,0.s) Chars 28571 - 28572 [-] 0. secs (0.u,0.s) -Chars 28574 - 28612 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) -Chars 28617 - 28621 [red.] 0. secs (0.u,0.s) +Chars 28574 - 28612 [(destruct~H~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) +Chars 28617 - 28621 [(red).] 0. secs (0.u,0.s) Chars 28626 - 28639 [exists~ta,k.] 0. secs (0.u,0.s) Chars 28640 - 28646 [split.] 0. secs (0.u,0.s) Chars 28651 - 28652 [+] 0. secs (0.u,0.s) -Chars 28653 - 28666 [destruct~EQP.] 0. secs (0.u,0.s) -Chars 28667 - 28683 [apply~(H~ta~ta).] 0. secs (0.u,0.s) +Chars 28653 - 28666 [(destruct~EQP).] 0. secs (0.u,0.s) +Chars 28667 - 28683 [(apply~(H~ta~ta)).] 0. secs (0.u,0.s) Chars 28684 - 28696 [reflexivity.] 0. secs (0.u,0.s) Chars 28697 - 28708 [assumption.] 0. secs (0.u,0.s) Chars 28713 - 28714 [+] 0. secs (0.u,0.s) Chars 28715 - 28721 [split.] 0. secs (0.u,0.s) -Chars 28722 - 28734 [rewrite~EQt.] 0. secs (0.u,0.s) +Chars 28722 - 28734 [(rewrite~EQt).] 0. secs (0.u,0.s) Chars 28735 - 28746 [assumption.] 0. secs (0.u,0.s) -Chars 28747 - 28754 [intros.] 0. secs (0.u,0.s) -Chars 28761 - 28779 [repeat~red~in~EQK.] 0. secs (0.u,0.s) +Chars 28747 - 28754 [(intros).] 0. secs (0.u,0.s) +Chars 28761 - 28779 [(repeat~red~in~EQK).] 0. secs (0.u,0.s) Chars 28781 - 28810 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) -Chars 28811 - 28824 [destruct~EQK.] 0. secs (0.u,0.s) -Chars 28831 - 28842 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 28843 - 28852 [apply~HK.] 0. secs (0.u,0.s) +Chars 28811 - 28824 [(destruct~EQK).] 0. secs (0.u,0.s) +Chars 28831 - 28842 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 28843 - 28852 [(apply~HK).] 0. secs (0.u,0.s) Chars 28853 - 28864 [assumption.] 0. secs (0.u,0.s) Chars 28865 - 28877 [reflexivity.] 0. secs (0.u,0.s) -Chars 28878 - 28882 [Qed.] 0.002 secs (0.002u,0.s) +Chars 28878 - 28882 [Qed.] 0.003 secs (0.003u,0.s) Chars 28884 - 29021 [#[global]~Instance~bind_Propt_...] 0. secs (0.u,0.s) Chars 29022 - 29028 [Proof.] 0. secs (0.u,0.s) -Chars 29031 - 29042 [repeat~red.] 0. secs (0.u,0.s) -Chars 29045 - 29052 [intros.] 0. secs (0.u,0.s) -Chars 29055 - 29072 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 29075 - 29114 [destruct~H0~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) +Chars 29031 - 29042 [(repeat~red).] 0. secs (0.u,0.s) +Chars 29045 - 29052 [(intros).] 0. secs (0.u,0.s) +Chars 29055 - 29072 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 29075 - 29114 [(destruct~H0~as~(ta,~(k,~(HA,~...] 0. secs (0.u,0.s) Chars 29117 - 29130 [exists~ta,k.] 0. secs (0.u,0.s) -Chars 29131 - 29143 [split;~auto.] 0. secs (0.u,0.s) +Chars 29131 - 29143 [(split;~auto).] 0.001 secs (0.u,0.s) Chars 29144 - 29150 [split.] 0. secs (0.u,0.s) -Chars 29151 - 29167 [rewrite~H;~auto.] 0. secs (0.u,0.s) +Chars 29151 - 29167 [(rewrite~H;~auto).] 0.001 secs (0.001u,0.s) Chars 29168 - 29179 [assumption.] 0. secs (0.u,0.s) Chars 29180 - 29184 [Qed.] 0.001 secs (0.001u,0.s) Chars 29186 - 29259 [#[local]~Notation~agrees_itree...] 0. secs (0.u,0.s) Chars 29261 - 29506 [Definition~bind_stronger~{E}~{...] 0.001 secs (0.001u,0.s) -Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0. secs (0.u,0.s) +Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0.001 secs (0.001u,0.s) Chars 29681 - 29687 [Proof.] 0. secs (0.u,0.s) -Chars 29690 - 29704 [split;~intros.] 0. secs (0.u,0.s) +Chars 29690 - 29704 [(split;~intros).] 0. secs (0.u,0.s) Chars 29707 - 29708 [-] 0. secs (0.u,0.s) -Chars 29709 - 29713 [cbn.] 0. secs (0.u,0.s) -Chars 29714 - 29718 [red.] 0. secs (0.u,0.s) -Chars 29723 - 29740 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 29745 - 29769 [eapply~eqit_Leaf_bind''.] 0. secs (0.u,0.s) +Chars 29709 - 29713 [(cbn).] 0. secs (0.u,0.s) +Chars 29714 - 29718 [(red).] 0. secs (0.u,0.s) +Chars 29723 - 29740 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 29745 - 29769 [(eapply~eqit_Leaf_bind'').] 0. secs (0.u,0.s) Chars 29774 - 29775 [+] 0. secs (0.u,0.s) Chars 29776 - 29788 [reflexivity.] 0. secs (0.u,0.s) Chars 29793 - 29794 [+] 0. secs (0.u,0.s) -Chars 29795 - 29802 [intros.] 0. secs (0.u,0.s) -Chars 29803 - 29818 [apply~eqit_Ret.] 0. secs (0.u,0.s) -Chars 29819 - 29827 [apply~H.] 0. secs (0.u,0.s) +Chars 29795 - 29802 [(intros).] 0. secs (0.u,0.s) +Chars 29803 - 29818 [(apply~eqit_Ret).] 0. secs (0.u,0.s) +Chars 29819 - 29827 [(apply~H).] 0. secs (0.u,0.s) Chars 29828 - 29839 [assumption.] 0. secs (0.u,0.s) Chars 29842 - 29843 [-] 0. secs (0.u,0.s) Chars 29844 - 29853 [revert~H.] 0. secs (0.u,0.s) -Chars 29858 - 29920 [induction~H0;~cbn;~unfold~ITre...] 0.062 secs (0.061u,0.s) +Chars 29858 - 29920 [(induction~H0;~cbn;~unfold~ITr...] 0.086 secs (0.085u,0.001s) Chars 29925 - 29926 [+] 0. secs (0.u,0.s) -Chars 29927 - 29963 [intros~H';~apply~eqit_inv_Ret~...] 0. secs (0.u,0.s) +Chars 29927 - 29963 [(intros~H';~apply~eqit_inv_Ret...] 0. secs (0.u,0.s) Chars 29964 - 29969 [auto.] 0. secs (0.u,0.s) Chars 29974 - 29975 [+] 0. secs (0.u,0.s) -Chars 29976 - 30009 [rewrite~2!tau_eutt;~apply~IHLeaf.] 0.019 secs (0.018u,0.s) +Chars 29976 - 30009 [(rewrite~2!tau_eutt;~apply~IHL...] 0.026 secs (0.025u,0.s) Chars 30014 - 30015 [+] 0. secs (0.u,0.s) -Chars 30016 - 30053 [intros~H';~eapply~eqit_inv_Vis...] 0. secs (0.u,0.s) +Chars 30016 - 30053 [(intros~H';~eapply~eqit_inv_Vi...] 0. secs (0.u,0.s) Chars 30054 - 30060 [eauto.] 0. secs (0.u,0.s) -Chars 30061 - 30065 [Qed.] 0.005 secs (0.005u,0.s) +Chars 30061 - 30065 [Qed.] 0.007 secs (0.006u,0.s) Chars 30067 - 30279 [Lemma~distinguish_bind~{E}~{A}...] 0. secs (0.u,0.s) Chars 30280 - 30286 [Proof.] 0. secs (0.u,0.s) -Chars 30289 - 30339 [intros~HI;~eapply~eqit_bind_Le...] 0. secs (0.u,0.s) +Chars 30289 - 30339 [(intros~HI;~eapply~eqit_bind_L...] 0. secs (0.u,0.s) Chars 30340 - 30344 [Qed.] 0. secs (0.u,0.s) Chars 30346 - 30502 [Lemma~not_Leaf~{E}~{A}~{B}~:~~...] 0. secs (0.u,0.s) Chars 30503 - 30509 [Proof.] 0. secs (0.u,0.s) -Chars 30512 - 30541 [intros~[b]~ta~[tb~HK]~a~HRet.] 0. secs (0.u,0.s) -Chars 30542 - 30585 [revert~tb~HK;~induction~HRet;~...] 0. secs (0.u,0.s) +Chars 30512 - 30541 [(intros~[b]~ta~[tb~HK]~a~HRet).] 0. secs (0.u,0.s) +Chars 30542 - 30585 [(revert~tb~HK;~induction~HRet;...] 0. secs (0.u,0.s) Chars 30588 - 30589 [-] 0. secs (0.u,0.s) -Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.007u,0.s) -Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.002 secs (0.002u,0.s) -Chars 30652 - 30690 [generalize~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 30691 - 30721 [rewrite~(HK~(fun~_~=>~ret~b)).] 0.008 secs (0.008u,0.s) -Chars 30726 - 30750 [apply~eutt_Ret_spin_abs.] 0. secs (0.u,0.s) +Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.011 secs (0.011u,0.s) +Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.003 secs (0.003u,0.s) +Chars 30652 - 30690 [(generalize~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) +Chars 30691 - 30721 [(rewrite~(HK~(fun~_~=>~ret~b))).] 0.011 secs (0.011u,0.s) +Chars 30726 - 30750 [(apply~eutt_Ret_spin_abs).] 0. secs (0.u,0.s) Chars 30753 - 30754 [-] 0. secs (0.u,0.s) -Chars 30755 - 30774 [eapply~(IHHRet~tb).] 0. secs (0.u,0.s) -Chars 30775 - 30803 [intros~k;~specialize~(HK~k).] 0. secs (0.u,0.s) -Chars 30808 - 30818 [cbn~in~HK.] 0. secs (0.u,0.s) -Chars 30819 - 30848 [rewrite~unfold_bind,~H~in~HK.] 0.018 secs (0.018u,0.s) -Chars 30849 - 30872 [rewrite~tau_eutt~in~HK.] 0. secs (0.u,0.s) +Chars 30755 - 30774 [(eapply~(IHHRet~tb)).] 0. secs (0.u,0.s) +Chars 30775 - 30803 [(intros~k;~specialize~(HK~k)).] 0. secs (0.u,0.s) +Chars 30808 - 30818 [(cbn~in~HK).] 0. secs (0.u,0.s) +Chars 30819 - 30848 [(rewrite~unfold_bind,~H~in~HK).] 0.027 secs (0.027u,0.s) +Chars 30849 - 30872 [(rewrite~tau_eutt~in~HK).] 0. secs (0.u,0.s) Chars 30873 - 30878 [auto.] 0. secs (0.u,0.s) Chars 30881 - 30882 [-] 0. secs (0.u,0.s) -Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.008u,0.s) -Chars 30917 - 30951 [setoid_rewrite~H~in~HK;~clear~...] 0.002 secs (0.002u,0.s) -Chars 30956 - 30996 [pose~proof~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 31001 - 31057 [apply~(IHHRet~(ITree.bind~(k~x...] 0. secs (0.u,0.s) -Chars 31062 - 31095 [intros~k';~rewrite~(HK~k')~in~t2.] 0.011 secs (0.011u,0.s) -Chars 31100 - 31143 [eapply~eqit_inv_Vis~in~t2;~sym...] 0. secs (0.u,0.s) -Chars 31144 - 31148 [Qed.] 0.003 secs (0.003u,0.s) +Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.012 secs (0.012u,0.s) +Chars 30917 - 30951 [(setoid_rewrite~H~in~HK;~clear...] 0.003 secs (0.003u,0.s) +Chars 30956 - 30996 [(pose~proof~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) +Chars 31001 - 31057 [(apply~(IHHRet~(ITree.bind~(k~...] 0. secs (0.u,0.s) +Chars 31062 - 31095 [(intros~k';~rewrite~(HK~k')~in...] 0.017 secs (0.017u,0.s) +Chars 31100 - 31143 [(eapply~eqit_inv_Vis~in~t2;~sy...] 0. secs (0.u,0.s) +Chars 31144 - 31148 [Qed.] 0.004 secs (0.004u,0.s) Chars 31206 - 31324 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 31325 - 31331 [Proof.] 0. secs (0.u,0.s) -Chars 31334 - 31341 [intros.] 0. secs (0.u,0.s) -Chars 31344 - 31361 [split;~[~~|~split~].] 0. secs (0.u,0.s) +Chars 31334 - 31341 [(intros).] 0. secs (0.u,0.s) +Chars 31344 - 31361 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 31364 - 31365 [+] 0. secs (0.u,0.s) -Chars 31366 - 31402 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) +Chars 31366 - 31402 [(intros~t~t'~eq;~split;~intros...] 0. secs (0.u,0.s) Chars 31407 - 31408 [*] 0. secs (0.u,0.s) -Chars 31409 - 31418 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 31425 - 31470 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) -Chars 31477 - 31519 [eapply~H;~[~symmetry;~eauto~|~...] 0. secs (0.u,0.s) -Chars 31526 - 31557 [eapply~H;~[~eauto~|~clear~EQ~t~].] 0. secs (0.u,0.s) -Chars 31564 - 31573 [eapply~H.] 0. secs (0.u,0.s) +Chars 31409 - 31418 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 31425 - 31470 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) +Chars 31477 - 31519 [(eapply~H;~[~symmetry;~eauto~|...] 0.001 secs (0.001u,0.s) +Chars 31526 - 31557 [(eapply~H;~[~eauto~|~clear~EQ~...] 0. secs (0.u,0.s) +Chars 31564 - 31573 [(eapply~H).] 0. secs (0.u,0.s) Chars 31574 - 31583 [2:~eauto.] 0. secs (0.u,0.s) -Chars 31590 - 31630 [rewrite~<-~(Monad.bind_ret_r~_...] 0. secs (0.u,0.s) -Chars 31637 - 31676 [apply~eqit_Leaf_bind';~[~refle...] 0. secs (0.u,0.s) -Chars 31685 - 31692 [intros.] 0. secs (0.u,0.s) -Chars 31701 - 31724 [rewrite~(HRET~r);~auto.] 0. secs (0.u,0.s) +Chars 31590 - 31630 [(rewrite~<-~(Monad.bind_ret_r~...] 0.001 secs (0.001u,0.s) +Chars 31637 - 31676 [(apply~eqit_Leaf_bind';~[~refl...] 0. secs (0.u,0.s) +Chars 31685 - 31692 [(intros).] 0. secs (0.u,0.s) +Chars 31701 - 31724 [(rewrite~(HRET~r);~auto).] 0.001 secs (0.001u,0.s) Chars 31730 - 31731 [*] 0. secs (0.u,0.s) -Chars 31732 - 31736 [cbn.] 0. secs (0.u,0.s) -Chars 31743 - 31794 [exists~t',(fun~x~=>~Ret~x);~sp...] 0. secs (0.u,0.s) -Chars 31801 - 31826 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 31827 - 31857 [rewrite~Eqit.bind_ret_r;~auto.] 0. secs (0.u,0.s) -Chars 31864 - 31884 [intros;~reflexivity.] 0. secs (0.u,0.s) +Chars 31732 - 31736 [(cbn).] 0. secs (0.u,0.s) +Chars 31743 - 31794 [(exists~t',(fun~x~=>~Ret~x);~s...] 0. secs (0.u,0.s) +Chars 31801 - 31826 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 31827 - 31857 [(rewrite~Eqit.bind_ret_r;~auto).] 0.001 secs (0.001u,0.s) +Chars 31864 - 31884 [(intros;~reflexivity).] 0. secs (0.u,0.s) Chars 31888 - 31889 [+] 0. secs (0.u,0.s) -Chars 31890 - 31925 [intros~x~y~EQ;~split;~intros~e...] 0. secs (0.u,0.s) +Chars 31890 - 31925 [(intros~x~y~EQ;~split;~intros~...] 0. secs (0.u,0.s) Chars 31930 - 31931 [*] 0. secs (0.u,0.s) -Chars 31932 - 31941 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 31948 - 31994 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) -Chars 32001 - 32043 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) -Chars 32050 - 32070 [rewrite~<-~EQ;~auto.] 0. secs (0.u,0.s) +Chars 31932 - 31941 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 31948 - 31994 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) +Chars 32001 - 32043 [(exists~ta,k;~split;~[~auto~|~...] 0.001 secs (0.001u,0.s) +Chars 32050 - 32070 [(rewrite~<-~EQ;~auto).] 0.001 secs (0.001u,0.s) Chars 32076 - 32077 [*] 0. secs (0.u,0.s) -Chars 32078 - 32087 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 32094 - 32140 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) -Chars 32147 - 32189 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) -Chars 32196 - 32213 [rewrite~EQ;~auto.] 0. secs (0.u,0.s) +Chars 32078 - 32087 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 32094 - 32140 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) +Chars 32147 - 32189 [(exists~ta,k;~split;~[~auto~|~...] 0.001 secs (0.001u,0.s) +Chars 32196 - 32213 [(rewrite~EQ;~auto).] 0.001 secs (0.001u,0.s) Chars 32216 - 32217 [+] 0. secs (0.u,0.s) Chars 32218 - 32223 [auto.] 0. secs (0.u,0.s) -Chars 32224 - 32228 [Qed.] 0.002 secs (0.002u,0.s) +Chars 32224 - 32228 [Qed.] 0.004 secs (0.004u,0.s) Chars 32230 - 32323 [Definition~EQ_REL~{E}~{A}~(ta~...] 0. secs (0.u,0.s) Chars 32325 - 32395 [Lemma~Symmteric_EQ_REL~{E}~{A}...] 0. secs (0.u,0.s) Chars 32396 - 32402 [Proof.] 0. secs (0.u,0.s) -Chars 32405 - 32416 [repeat~red.] 0. secs (0.u,0.s) -Chars 32419 - 32439 [intros~a~b~(EQ,~H).] 0. secs (0.u,0.s) +Chars 32405 - 32416 [(repeat~red).] 0. secs (0.u,0.s) +Chars 32419 - 32439 [(intros~a~b~(EQ,~H)).] 0. secs (0.u,0.s) Chars 32442 - 32448 [split.] 0. secs (0.u,0.s) Chars 32451 - 32452 [-] 0. secs (0.u,0.s) Chars 32453 - 32462 [symmetry.] 0. secs (0.u,0.s) Chars 32463 - 32474 [assumption.] 0. secs (0.u,0.s) Chars 32477 - 32478 [-] 0. secs (0.u,0.s) -Chars 32479 - 32491 [subst;~auto.] 0. secs (0.u,0.s) +Chars 32479 - 32491 [(subst;~auto).] 0. secs (0.u,0.s) Chars 32492 - 32496 [Qed.] 0. secs (0.u,0.s) Chars 32498 - 32570 [Lemma~Transitive_EQ_REL~{E}~{A...] 0. secs (0.u,0.s) Chars 32571 - 32577 [Proof.] 0. secs (0.u,0.s) -Chars 32580 - 32591 [repeat~red.] 0. secs (0.u,0.s) -Chars 32594 - 32629 [intros~a~b~c~(EQ1,~H1)~(EQ2,~H2).] 0. secs (0.u,0.s) +Chars 32580 - 32591 [(repeat~red).] 0. secs (0.u,0.s) +Chars 32594 - 32629 [(intros~a~b~c~(EQ1,~H1)~(EQ2,~...] 0. secs (0.u,0.s) Chars 32632 - 32638 [split.] 0. secs (0.u,0.s) Chars 32641 - 32642 [-] 0. secs (0.u,0.s) -Chars 32643 - 32655 [rewrite~EQ1.] 0. secs (0.u,0.s) +Chars 32643 - 32655 [(rewrite~EQ1).] 0. secs (0.u,0.s) Chars 32656 - 32667 [assumption.] 0. secs (0.u,0.s) Chars 32670 - 32671 [-] 0. secs (0.u,0.s) Chars 32672 - 32683 [assumption.] 0. secs (0.u,0.s) Chars 32684 - 32688 [Qed.] 0. secs (0.u,0.s) Chars 32690 - 32784 [#[global]~Instance~EQ_REL_Prop...] 0. secs (0.u,0.s) Chars 32785 - 32791 [Proof.] 0. secs (0.u,0.s) -Chars 32794 - 32805 [repeat~red.] 0. secs (0.u,0.s) -Chars 32808 - 32815 [intros.] 0. secs (0.u,0.s) +Chars 32794 - 32805 [(repeat~red).] 0. secs (0.u,0.s) +Chars 32808 - 32815 [(intros).] 0. secs (0.u,0.s) Chars 32816 - 32822 [subst.] 0. secs (0.u,0.s) -Chars 32825 - 32859 [split;~intros;~unfold~EQ_REL~i...] 0. secs (0.u,0.s) +Chars 32825 - 32859 [(split;~intros;~unfold~EQ_REL~...] 0. secs (0.u,0.s) Chars 32862 - 32863 [-] 0. secs (0.u,0.s) Chars 32864 - 32870 [split.] 0. secs (0.u,0.s) -Chars 32871 - 32883 [destruct~H0.] 0. secs (0.u,0.s) +Chars 32871 - 32883 [(destruct~H0).] 0. secs (0.u,0.s) Chars 32884 - 32895 [assumption.] 0. secs (0.u,0.s) -Chars 32896 - 32908 [destruct~H0.] 0. secs (0.u,0.s) -Chars 32913 - 32920 [intros.] 0. secs (0.u,0.s) -Chars 32921 - 32934 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 32896 - 32908 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 32913 - 32920 [(intros).] 0. secs (0.u,0.s) +Chars 32921 - 32934 [(rewrite~<-~H).] 0.002 secs (0.002u,0.s) Chars 32935 - 32946 [assumption.] 0. secs (0.u,0.s) Chars 32949 - 32950 [-] 0. secs (0.u,0.s) -Chars 32951 - 32963 [destruct~H0.] 0. secs (0.u,0.s) +Chars 32951 - 32963 [(destruct~H0).] 0. secs (0.u,0.s) Chars 32968 - 32974 [split.] 0. secs (0.u,0.s) Chars 32975 - 32986 [assumption.] 0. secs (0.u,0.s) -Chars 32991 - 32998 [intros.] 0. secs (0.u,0.s) -Chars 32999 - 33009 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 32991 - 32998 [(intros).] 0. secs (0.u,0.s) +Chars 32999 - 33009 [(rewrite~H).] 0.002 secs (0.002u,0.s) Chars 33010 - 33021 [assumption.] 0. secs (0.u,0.s) Chars 33022 - 33026 [Qed.] 0.001 secs (0.001u,0.s) Chars 33028 - 33147 [#[global]~Instance~eutt_EQ_REL...] 0. secs (0.u,0.s) Chars 33148 - 33154 [Proof.] 0. secs (0.u,0.s) -Chars 33157 - 33168 [repeat~red.] 0. secs (0.u,0.s) -Chars 33171 - 33193 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 33157 - 33168 [(repeat~red).] 0. secs (0.u,0.s) +Chars 33171 - 33193 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 33196 - 33197 [-] 0. secs (0.u,0.s) -Chars 33199 - 33213 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 33214 - 33228 [rewrite~<-~H1.] 0.001 secs (0.001u,0.s) +Chars 33199 - 33213 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) +Chars 33214 - 33228 [(rewrite~<-~H1).] 0.001 secs (0.001u,0.s) Chars 33234 - 33246 [clear~H0~H1.] 0. secs (0.u,0.s) -Chars 33252 - 33263 [destruct~H.] 0. secs (0.u,0.s) -Chars 33269 - 33293 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) +Chars 33252 - 33263 [(destruct~H).] 0. secs (0.u,0.s) +Chars 33269 - 33293 [(eapply~eqit_mono;~eauto).] 0.002 secs (0.001u,0.s) Chars 33296 - 33297 [-] 0. secs (0.u,0.s) -Chars 33298 - 33313 [rewrite~H0,~H1.] 0.001 secs (0.001u,0.s) -Chars 33318 - 33329 [destruct~H.] 0. secs (0.u,0.s) -Chars 33334 - 33358 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) -Chars 33359 - 33363 [Qed.] 0. secs (0.u,0.s) +Chars 33298 - 33313 [(rewrite~H0,~H1).] 0.002 secs (0.002u,0.s) +Chars 33318 - 33329 [(destruct~H).] 0. secs (0.u,0.s) +Chars 33334 - 33358 [(eapply~eqit_mono;~eauto).] 0.002 secs (0.002u,0.s) +Chars 33359 - 33363 [Qed.] 0.001 secs (0.001u,0.s) Chars 33365 - 33468 [Lemma~eutt_EQ_REL_Reflexive_~{...] 0. secs (0.u,0.s) Chars 33469 - 33475 [Proof.] 0. secs (0.u,0.s) Chars 33478 - 33488 [revert~ta.] 0. secs (0.u,0.s) -Chars 33491 - 33510 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 33511 - 33527 [intros~ta~R~HEQ.] 0. secs (0.u,0.s) -Chars 33530 - 33544 [desobs~ta~hta.] 0. secs (0.u,0.s) +Chars 33491 - 33510 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 33511 - 33527 [(intros~ta~R~HEQ).] 0. secs (0.u,0.s) +Chars 33530 - 33544 [(desobs~ta~hta).] 0. secs (0.u,0.s) Chars 33548 - 33549 [-] 0. secs (0.u,0.s) Chars 33550 - 33563 [econstructor.] 0. secs (0.u,0.s) -Chars 33564 - 33574 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 33575 - 33579 [red.] 0. secs (0.u,0.s) -Chars 33580 - 33592 [split;~auto.] 0. secs (0.u,0.s) -Chars 33598 - 33616 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) -Chars 33617 - 33629 [rewrite~hta.] 0. secs (0.u,0.s) +Chars 33564 - 33574 [(apply~HEQ).] 0. secs (0.u,0.s) +Chars 33575 - 33579 [(red).] 0. secs (0.u,0.s) +Chars 33580 - 33592 [(split;~auto).] 0. secs (0.u,0.s) +Chars 33598 - 33616 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) +Chars 33617 - 33629 [(rewrite~hta).] 0. secs (0.u,0.s) Chars 33630 - 33646 [now~constructor.] 0. secs (0.u,0.s) Chars 33650 - 33651 [-] 0. secs (0.u,0.s) Chars 33652 - 33665 [econstructor.] 0. secs (0.u,0.s) -Chars 33666 - 33676 [apply~CIH.] 0. secs (0.u,0.s) +Chars 33666 - 33676 [(apply~CIH).] 0. secs (0.u,0.s) Chars 33677 - 33685 [intros~!.] 0. secs (0.u,0.s) -Chars 33686 - 33696 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 33702 - 33706 [red.] 0. secs (0.u,0.s) -Chars 33707 - 33718 [destruct~H.] 0. secs (0.u,0.s) -Chars 33719 - 33731 [split;~auto.] 0. secs (0.u,0.s) -Chars 33737 - 33759 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 33686 - 33696 [(apply~HEQ).] 0. secs (0.u,0.s) +Chars 33702 - 33706 [(red).] 0. secs (0.u,0.s) +Chars 33707 - 33718 [(destruct~H).] 0. secs (0.u,0.s) +Chars 33719 - 33731 [(split;~auto).] 0. secs (0.u,0.s) +Chars 33737 - 33759 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) Chars 33763 - 33764 [-] 0. secs (0.u,0.s) -Chars 33765 - 33786 [econstructor;~intros.] 0. secs (0.u,0.s) -Chars 33787 - 33797 [apply~CIH.] 0. secs (0.u,0.s) +Chars 33765 - 33786 [(econstructor;~intros).] 0. secs (0.u,0.s) +Chars 33787 - 33797 [(apply~CIH).] 0. secs (0.u,0.s) Chars 33803 - 33811 [intros~!.] 0. secs (0.u,0.s) -Chars 33812 - 33822 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 33827 - 33850 [rewrite~itree_eta,~hta.] 0.001 secs (0.001u,0.s) -Chars 33855 - 33866 [destruct~H.] 0. secs (0.u,0.s) -Chars 33871 - 33883 [split;~auto.] 0. secs (0.u,0.s) -Chars 33888 - 33910 [econstructor~3;~eauto.] 0. secs (0.u,0.s) -Chars 33912 - 33916 [Qed.] 0.003 secs (0.003u,0.s) +Chars 33812 - 33822 [(apply~HEQ).] 0. secs (0.u,0.s) +Chars 33827 - 33850 [(rewrite~itree_eta,~hta).] 0.002 secs (0.002u,0.s) +Chars 33855 - 33866 [(destruct~H).] 0. secs (0.u,0.s) +Chars 33871 - 33883 [(split;~auto).] 0. secs (0.u,0.s) +Chars 33888 - 33910 [(econstructor~3;~eauto).] 0. secs (0.u,0.s) +Chars 33912 - 33916 [Qed.] 0.005 secs (0.005u,0.s) Chars 33918 - 33996 [Lemma~eutt_EQ_REL_Reflexive~{E...] 0. secs (0.u,0.s) Chars 33997 - 34003 [Proof.] 0. secs (0.u,0.s) Chars 34006 - 34039 [now~apply~eutt_EQ_REL_Reflexive_.] 0. secs (0.u,0.s) @@ -977,144 +977,144 @@ Chars 34041 - 34045 [Qed.] 0. secs (0.u,0.s) Chars 34047 - 34146 [Definition~RET_EQ~{E}~{A}~(ta~...] 0. secs (0.u,0.s) Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 34539 - 34545 [Proof.] 0. secs (0.u,0.s) -Chars 34577 - 34622 [intros~E~A~B~C~PA~KB~KC~PQOK~K...] 0. secs (0.u,0.s) -Chars 34629 - 34642 [red~in~eqtt'.] 0. secs (0.u,0.s) -Chars 34649 - 34700 [destruct~eqtt'~as~(tb,~(kbc,~(...] 0. secs (0.u,0.s) -Chars 34707 - 34754 [destruct~HBC~as~(ta,~(kab,~(HT...] 0. secs (0.u,0.s) -Chars 34761 - 34765 [red.] 0. secs (0.u,0.s) +Chars 34577 - 34622 [(intros~E~A~B~C~PA~KB~KC~PQOK~...] 0. secs (0.u,0.s) +Chars 34629 - 34642 [(red~in~eqtt').] 0. secs (0.u,0.s) +Chars 34649 - 34700 [(destruct~eqtt'~as~(tb,~(kbc,~...] 0. secs (0.u,0.s) +Chars 34707 - 34754 [(destruct~HBC~as~(ta,~(kab,~(H...] 0. secs (0.u,0.s) +Chars 34761 - 34765 [(red).] 0. secs (0.u,0.s) Chars 34766 - 34776 [exists~ta.] 0. secs (0.u,0.s) Chars 34777 - 34818 [exists~(fun~a~=>~ITree.bind~(k...] 0. secs (0.u,0.s) -Chars 34825 - 34847 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) +Chars 34825 - 34847 [(split;~[~auto~|~~];~split).] 0. secs (0.u,0.s) Chars 34854 - 34855 [*] 0. secs (0.u,0.s) -Chars 34856 - 34886 [setoid_rewrite~EQc;~clear~EQc.] 0. secs (0.u,0.s) -Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.001 secs (0.001u,0.s) -Chars 34915 - 34957 [setoid_rewrite~EQb~in~HRkbc;~c...] 0.001 secs (0.001u,0.s) -Chars 34966 - 34991 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 35000 - 35023 [rewrite~Eqit.bind_bind.] 0. secs (0.u,0.s) +Chars 34856 - 34886 [(setoid_rewrite~EQc;~clear~EQc).] 0.003 secs (0.003u,0.s) +Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.002 secs (0.002u,0.s) +Chars 34915 - 34957 [(setoid_rewrite~EQb~in~HRkbc;~...] 0.002 secs (0.002u,0.s) +Chars 34966 - 34991 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 35000 - 35023 [(rewrite~Eqit.bind_bind).] 0. secs (0.u,0.s) Chars 35024 - 35036 [reflexivity.] 0. secs (0.u,0.s) Chars 35043 - 35044 [*] 0. secs (0.u,0.s) -Chars 35045 - 35059 [intros~a~HRet.] 0. secs (0.u,0.s) +Chars 35045 - 35059 [(intros~a~HRet).] 0. secs (0.u,0.s) Chars 35068 - 35088 [exists~(kab~a),kbc.] 0. secs (0.u,0.s) -Chars 35097 - 35118 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) +Chars 35097 - 35118 [(split;~[~auto~|~~];~split).] 0. secs (0.u,0.s) Chars 35127 - 35129 [--] 0. secs (0.u,0.s) Chars 35130 - 35142 [reflexivity.] 0. secs (0.u,0.s) Chars 35151 - 35153 [--] 0. secs (0.u,0.s) -Chars 35154 - 35168 [intros~b~HRET.] 0. secs (0.u,0.s) -Chars 35169 - 35181 [apply~HRkbc.] 0. secs (0.u,0.s) -Chars 35182 - 35194 [rewrite~EQb.] 0.001 secs (0.001u,0.s) -Chars 35195 - 35219 [eapply~Leaf_bind;~eauto.] 0. secs (0.u,0.s) +Chars 35154 - 35168 [(intros~b~HRET).] 0. secs (0.u,0.s) +Chars 35169 - 35181 [(apply~HRkbc).] 0. secs (0.u,0.s) +Chars 35182 - 35194 [(rewrite~EQb).] 0.002 secs (0.002u,0.s) +Chars 35195 - 35219 [(eapply~Leaf_bind;~eauto).] 0. secs (0.u,0.s) Chars 35220 - 35224 [Qed.] 0.003 secs (0.003u,0.s) Chars 35226 - 35258 [Module~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) Chars 35262 - 35312 [Inductive~ND~:~Type~->~Prop~:=...] 0. secs (0.u,0.s) Chars 35316 - 35399 [Definition~PA~:~iforest~ND~boo...] 0. secs (0.u,0.s) Chars 35403 - 35462 [Definition~KB~:~bool~->~ifores...] 0. secs (0.u,0.s) Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0. secs (0.u,0.s) -Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.011 secs (0.011u,0.s) +Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.001 secs (0.001u,0.s) Chars 35958 - 36019 [Lemma~bind_right_assoc~:~bind~...] 0. secs (0.u,0.s) Chars 36022 - 36028 [Proof.] 0. secs (0.u,0.s) -Chars 36033 - 36044 [repeat~red.] 0. secs (0.u,0.s) +Chars 36033 - 36044 [(repeat~red).] 0. secs (0.u,0.s) Chars 36049 - 36071 [exists~(trigger~Pick).] 0. secs (0.u,0.s) -Chars 36076 - 36293 [exists~~~~~(fun~b~:~bool~=>~~~...] 0.009 secs (0.009u,0.s) -Chars 36298 - 36310 [split;~auto.] 0. secs (0.u,0.s) -Chars 36315 - 36319 [red.] 0. secs (0.u,0.s) +Chars 36076 - 36293 [exists~~~~(fun~b~:~bool~=>~~~~...] 0.001 secs (0.001u,0.s) +Chars 36298 - 36310 [(split;~auto).] 0. secs (0.u,0.s) +Chars 36315 - 36319 [(red).] 0. secs (0.u,0.s) Chars 36320 - 36332 [reflexivity.] 0. secs (0.u,0.s) Chars 36337 - 36343 [split.] 0. secs (0.u,0.s) Chars 36344 - 36356 [reflexivity.] 0. secs (0.u,0.s) -Chars 36361 - 36368 [intros.] 0. secs (0.u,0.s) -Chars 36369 - 36380 [repeat~red.] 0. secs (0.u,0.s) +Chars 36361 - 36368 [(intros).] 0. secs (0.u,0.s) +Chars 36369 - 36380 [(repeat~red).] 0. secs (0.u,0.s) Chars 36381 - 36403 [exists~(trigger~Pick).] 0. secs (0.u,0.s) -Chars 36408 - 36557 [exists~~~~~(fun~x~:~bool~=>~~~...] 0.009 secs (0.009u,0.s) +Chars 36408 - 36557 [exists~~~~(fun~x~:~bool~=>~~~~...] 0. secs (0.u,0.s) Chars 36562 - 36568 [split.] 0. secs (0.u,0.s) -Chars 36573 - 36577 [red.] 0. secs (0.u,0.s) -Chars 36578 - 36582 [red.] 0. secs (0.u,0.s) +Chars 36573 - 36577 [(red).] 0. secs (0.u,0.s) +Chars 36578 - 36582 [(red).] 0. secs (0.u,0.s) Chars 36584 - 36596 [reflexivity.] 0. secs (0.u,0.s) Chars 36601 - 36607 [split.] 0. secs (0.u,0.s) -Chars 36612 - 36623 [destruct~a.] 0. secs (0.u,0.s) +Chars 36612 - 36623 [(destruct~a).] 0. secs (0.u,0.s) Chars 36628 - 36629 [-] 0. secs (0.u,0.s) Chars 36630 - 36642 [reflexivity.] 0. secs (0.u,0.s) Chars 36647 - 36648 [-] 0. secs (0.u,0.s) Chars 36649 - 36661 [reflexivity.] 0. secs (0.u,0.s) Chars 36666 - 36667 [-] 0. secs (0.u,0.s) -Chars 36668 - 36675 [intros.] 0. secs (0.u,0.s) -Chars 36682 - 36694 [destruct~a0.] 0. secs (0.u,0.s) -Chars 36701 - 36712 [destruct~a.] 0. secs (0.u,0.s) -Chars 36719 - 36723 [red.] 0. secs (0.u,0.s) +Chars 36668 - 36675 [(intros).] 0. secs (0.u,0.s) +Chars 36682 - 36694 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 36701 - 36712 [(destruct~a).] 0. secs (0.u,0.s) +Chars 36719 - 36723 [(red).] 0. secs (0.u,0.s) Chars 36724 - 36729 [left.] 0. secs (0.u,0.s) Chars 36730 - 36742 [reflexivity.] 0. secs (0.u,0.s) -Chars 36749 - 36753 [red.] 0. secs (0.u,0.s) +Chars 36749 - 36753 [(red).] 0. secs (0.u,0.s) Chars 36754 - 36760 [right.] 0. secs (0.u,0.s) Chars 36761 - 36773 [reflexivity.] 0. secs (0.u,0.s) -Chars 36780 - 36791 [destruct~a.] 0. secs (0.u,0.s) -Chars 36798 - 36802 [red.] 0. secs (0.u,0.s) +Chars 36780 - 36791 [(destruct~a).] 0. secs (0.u,0.s) +Chars 36798 - 36802 [(red).] 0. secs (0.u,0.s) Chars 36803 - 36815 [reflexivity.] 0. secs (0.u,0.s) -Chars 36816 - 36820 [red.] 0. secs (0.u,0.s) +Chars 36816 - 36820 [(red).] 0. secs (0.u,0.s) Chars 36822 - 36834 [reflexivity.] 0. secs (0.u,0.s) -Chars 36837 - 36841 [Qed.] 0.001 secs (0.001u,0.s) +Chars 36837 - 36841 [Qed.] 0.002 secs (0.002u,0.s) Chars 36845 - 36900 [Lemma~not_bind_left_assoc~:~~~...] 0. secs (0.u,0.s) Chars 36903 - 36909 [Proof.] 0. secs (0.u,0.s) Chars 36914 - 36922 [intro~H.] 0. secs (0.u,0.s) -Chars 36927 - 36943 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 36948 - 36989 [destruct~H~as~(ta,~(k,~(HB,~(H...] 0. secs (0.u,0.s) -Chars 36994 - 37039 [destruct~HB~as~(tb,~(kb,~(HX,~...] 0. secs (0.u,0.s) -Chars 37044 - 37054 [red~in~HX.] 0. secs (0.u,0.s) -Chars 37059 - 37075 [rewrite~HX~in~*.] 0.001 secs (0.001u,0.s) -Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.001 secs (0.001u,0.s) +Chars 36927 - 36943 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 36948 - 36989 [(destruct~H~as~(ta,~(k,~(HB,~(...] 0. secs (0.u,0.s) +Chars 36994 - 37039 [(destruct~HB~as~(tb,~(kb,~(HX,...] 0. secs (0.u,0.s) +Chars 37044 - 37054 [(red~in~HX).] 0. secs (0.u,0.s) +Chars 37059 - 37075 [(rewrite~HX~in~*).] 0.001 secs (0.001u,0.s) +Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.002 secs (0.002u,0.s) Chars 37112 - 37124 [clear~tb~HX.] 0. secs (0.u,0.s) -Chars 37129 - 37149 [rewrite~HEQ'~in~HEQ.] 0. secs (0.u,0.s) -Chars 37154 - 37170 [unfold~t~in~HEQ.] 0. secs (0.u,0.s) -Chars 37175 - 37207 [unfold~bind,~Monad_itree~in~HEQ.] 0. secs (0.u,0.s) -Chars 37212 - 37242 [rewrite~Eqit.bind_bind~in~HEQ.] 0.003 secs (0.003u,0.s) -Chars 37247 - 37576 [assert~~(forall~r,~~~Leaf~r~(I...] 0.001 secs (0.001u,0.s) -Chars 37581 - 37606 [apply~eqit_bind_Leaf_inv.] 0. secs (0.u,0.s) -Chars 37607 - 37617 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 37622 - 37662 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) +Chars 37129 - 37149 [(rewrite~HEQ'~in~HEQ).] 0.001 secs (0.001u,0.s) +Chars 37154 - 37170 [(unfold~t~in~HEQ).] 0. secs (0.u,0.s) +Chars 37175 - 37207 [(unfold~bind,~Monad_itree~in~H...] 0. secs (0.u,0.s) +Chars 37212 - 37242 [(rewrite~Eqit.bind_bind~in~HEQ).] 0.005 secs (0.005u,0.s) +Chars 37247 - 37576 [(assert~~~(forall~r,~~~~Leaf~r...] 0.001 secs (0.001u,0.s) +Chars 37581 - 37606 [(apply~eqit_bind_Leaf_inv).] 0. secs (0.u,0.s) +Chars 37607 - 37617 [(apply~HEQ).] 0. secs (0.u,0.s) +Chars 37622 - 37662 [(assert~(Leaf~true~(ITree.trig...] 0. secs (0.u,0.s) Chars 37667 - 37668 [{] 0. secs (0.u,0.s) -Chars 37669 - 37684 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 37669 - 37684 [(unfold~trigger).] 0. secs (0.u,0.s) Chars 37685 - 37700 [econstructor~3.] 0. secs (0.u,0.s) Chars 37701 - 37713 [reflexivity.] 0. secs (0.u,0.s) Chars 37714 - 37728 [constructor~1.] 0. secs (0.u,0.s) Chars 37729 - 37741 [reflexivity.] 0. secs (0.u,0.s) Chars 37742 - 37743 [}] 0. secs (0.u,0.s) -Chars 37748 - 37789 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) +Chars 37748 - 37789 [(assert~(Leaf~false~(ITree.tri...] 0. secs (0.u,0.s) Chars 37794 - 37795 [{] 0. secs (0.u,0.s) -Chars 37796 - 37811 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 37796 - 37811 [(unfold~trigger).] 0. secs (0.u,0.s) Chars 37812 - 37827 [econstructor~3.] 0. secs (0.u,0.s) Chars 37828 - 37840 [reflexivity.] 0. secs (0.u,0.s) Chars 37841 - 37855 [constructor~1.] 0. secs (0.u,0.s) Chars 37856 - 37868 [reflexivity.] 0. secs (0.u,0.s) Chars 37869 - 37870 [}] 0. secs (0.u,0.s) -Chars 37875 - 37915 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) +Chars 37875 - 37915 [(assert~(Leaf~true~(ITree.trig...] 0. secs (0.u,0.s) Chars 37920 - 37921 [{] 0. secs (0.u,0.s) -Chars 37922 - 37937 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 37922 - 37937 [(unfold~trigger).] 0. secs (0.u,0.s) Chars 37938 - 37953 [econstructor~3.] 0. secs (0.u,0.s) Chars 37954 - 37966 [reflexivity.] 0. secs (0.u,0.s) Chars 37967 - 37981 [constructor~1.] 0. secs (0.u,0.s) Chars 37982 - 37994 [reflexivity.] 0. secs (0.u,0.s) Chars 37995 - 37996 [}] 0. secs (0.u,0.s) -Chars 38001 - 38042 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) +Chars 38001 - 38042 [(assert~(Leaf~false~(ITree.tri...] 0. secs (0.u,0.s) Chars 38047 - 38048 [{] 0. secs (0.u,0.s) -Chars 38049 - 38064 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 38049 - 38064 [(unfold~trigger).] 0. secs (0.u,0.s) Chars 38065 - 38080 [econstructor~3.] 0. secs (0.u,0.s) Chars 38081 - 38093 [reflexivity.] 0. secs (0.u,0.s) Chars 38094 - 38108 [constructor~1.] 0. secs (0.u,0.s) Chars 38109 - 38121 [reflexivity.] 0. secs (0.u,0.s) Chars 38122 - 38123 [}] 0. secs (0.u,0.s) -Chars 38128 - 38142 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 38147 - 38161 [apply~H~in~H1.] 0. secs (0.u,0.s) -Chars 38166 - 38184 [apply~HRET'~in~H2.] 0. secs (0.u,0.s) -Chars 38189 - 38207 [apply~HRET'~in~H3.] 0. secs (0.u,0.s) -Chars 38212 - 38222 [red~in~H2.] 0. secs (0.u,0.s) -Chars 38223 - 38233 [red~in~H3.] 0. secs (0.u,0.s) -Chars 38234 - 38244 [red~in~H2.] 0. secs (0.u,0.s) -Chars 38245 - 38255 [red~in~H3.] 0. secs (0.u,0.s) -Chars 38260 - 38277 [rewrite~H2~in~H0.] 0.001 secs (0.001u,0.s) -Chars 38282 - 38299 [rewrite~H3~in~H1.] 0.001 secs (0.001u,0.s) -Chars 38304 - 38324 [rewrite~<-~H0~in~H1.] 0. secs (0.u,0.s) -Chars 38329 - 38378 [apply~eqit_bind_Leaf_inv~with~...] 0. secs (0.u,0.s) -Chars 38383 - 38408 [apply~eqit_inv_Ret~in~H1.] 0. secs (0.u,0.s) -Chars 38409 - 38422 [inversion~H1.] 0. secs (0.u,0.s) +Chars 38128 - 38142 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 38147 - 38161 [(apply~H~in~H1).] 0. secs (0.u,0.s) +Chars 38166 - 38184 [(apply~HRET'~in~H2).] 0. secs (0.u,0.s) +Chars 38189 - 38207 [(apply~HRET'~in~H3).] 0. secs (0.u,0.s) +Chars 38212 - 38222 [(red~in~H2).] 0. secs (0.u,0.s) +Chars 38223 - 38233 [(red~in~H3).] 0. secs (0.u,0.s) +Chars 38234 - 38244 [(red~in~H2).] 0. secs (0.u,0.s) +Chars 38245 - 38255 [(red~in~H3).] 0. secs (0.u,0.s) +Chars 38260 - 38277 [(rewrite~H2~in~H0).] 0.001 secs (0.001u,0.s) +Chars 38282 - 38299 [(rewrite~H3~in~H1).] 0.001 secs (0.001u,0.s) +Chars 38304 - 38324 [(rewrite~<-~H0~in~H1).] 0.001 secs (0.001u,0.s) +Chars 38329 - 38378 [(apply~eqit_bind_Leaf_inv~with...] 0. secs (0.u,0.s) +Chars 38383 - 38408 [(apply~eqit_inv_Ret~in~H1).] 0. secs (0.u,0.s) +Chars 38409 - 38422 [(inversion~H1).] 0. secs (0.u,0.s) Chars 38427 - 38428 [{] 0. secs (0.u,0.s) -Chars 38429 - 38444 [unfold~trigger.] 0. secs (0.u,0.s) +Chars 38429 - 38444 [(unfold~trigger).] 0. secs (0.u,0.s) Chars 38445 - 38460 [econstructor~3.] 0. secs (0.u,0.s) Chars 38461 - 38473 [reflexivity.] 0. secs (0.u,0.s) Chars 38474 - 38488 [constructor~1.] 0. secs (0.u,0.s) @@ -1125,7 +1125,7 @@ Chars 38510 - 38622 [Lemma~bind_bind_counterexample...] 0. secs (0.u,0.s) Chars 38623 - 38629 [Proof.] 0. secs (0.u,0.s) Chars 38632 - 38641 [exists~t.] 0. secs (0.u,0.s) Chars 38644 - 38650 [split.] 0. secs (0.u,0.s) -Chars 38653 - 38676 [apply~bind_right_assoc.] 0. secs (0.u,0.s) -Chars 38679 - 38705 [apply~not_bind_left_assoc.] 0. secs (0.u,0.s) +Chars 38653 - 38676 [(apply~bind_right_assoc).] 0. secs (0.u,0.s) +Chars 38679 - 38705 [(apply~not_bind_left_assoc).] 0. secs (0.u,0.s) Chars 38706 - 38710 [Qed.] 0. secs (0.u,0.s) Chars 38712 - 38741 [End~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceDefinition.v.timing b/extra/ITrace/ITraceDefinition.v.timing index 13a65ba5..5c77332c 100644 --- a/extra/ITrace/ITraceDefinition.v.timing +++ b/extra/ITrace/ITraceDefinition.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.167 secs (0.147u,0.02s) -Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) +Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.226 secs (0.199u,0.027s) +Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) Chars 122 - 136 [Import~Monads.] 0. secs (0.u,0.s) Chars 137 - 158 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 159 - 188 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceFacts.v.timing b/extra/ITrace/ITraceFacts.v.timing index 08a3c46f..6f357e26 100644 --- a/extra/ITrace/ITraceFacts.v.timing +++ b/extra/ITrace/ITraceFacts.v.timing @@ -1,544 +1,544 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 50 - 177 [From~ITree~Require~Import~Util...] 0.166 secs (0.148u,0.018s) -Chars 179 - 241 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 50 - 177 [From~ITree~Require~Import~Util...] 0.233 secs (0.205u,0.027s) +Chars 179 - 241 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.u,0.s) Chars 243 - 266 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 269 - 283 [Import~Monads.] 0. secs (0.u,0.s) Chars 284 - 305 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 306 - 335 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 337 - 380 [Tactic~Notation~"step"~:=~repe...] 0. secs (0.u,0.s) +Chars 337 - 380 [Tactic~Notation~"step"~:=~(rep...] 0. secs (0.u,0.s) Chars 382 - 449 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) Chars 451 - 503 [Tactic~Notation~"sinv"~ident(h...] 0. secs (0.u,0.s) Chars 506 - 584 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) Chars 585 - 591 [Proof.] 0. secs (0.u,0.s) -Chars 594 - 601 [intros.] 0. secs (0.u,0.s) -Chars 602 - 642 [destruct~(classic~(exists~a~:~...] 0. secs (0.u,0.s) +Chars 594 - 601 [(intros).] 0. secs (0.u,0.s) +Chars 602 - 642 [(destruct~(classic~(exists~a~:...] 0. secs (0.u,0.s) Chars 645 - 646 [-] 0. secs (0.u,0.s) -Chars 647 - 665 [destruct~H;~eauto.] 0. secs (0.u,0.s) +Chars 647 - 665 [(destruct~H;~eauto).] 0. secs (0.u,0.s) Chars 668 - 669 [-] 0. secs (0.u,0.s) -Chars 670 - 700 [assert~(f~:~A~->~void);~eauto.] 0. secs (0.u,0.s) -Chars 701 - 708 [intros.] 0. secs (0.u,0.s) +Chars 670 - 700 [(assert~(f~:~A~->~void);~eauto).] 0. secs (0.u,0.s) +Chars 701 - 708 [(intros).] 0. secs (0.u,0.s) Chars 713 - 721 [exfalso.] 0. secs (0.u,0.s) -Chars 722 - 737 [apply~H;~eauto.] 0. secs (0.u,0.s) +Chars 722 - 737 [(apply~H;~eauto).] 0. secs (0.u,0.s) Chars 738 - 742 [Qed.] 0. secs (0.u,0.s) Chars 744 - 835 [Lemma~REvRef_inv~{E}~{A}~(e~e'...] 0. secs (0.u,0.s) Chars 836 - 842 [Proof.] 0. secs (0.u,0.s) -Chars 845 - 854 [intros~x.] 0. secs (0.u,0.s) -Chars 855 - 867 [inversion~x.] 0.001 secs (0.001u,0.s) -Chars 868 - 881 [ddestruction.] 0.024 secs (0.023u,0.001s) +Chars 845 - 854 [(intros~x).] 0. secs (0.u,0.s) +Chars 855 - 867 [(inversion~x).] 0.002 secs (0.002u,0.s) +Chars 868 - 881 [ddestruction.] 0.003 secs (0.002u,0.s) Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) -Chars 895 - 899 [Qed.] 0.001 secs (0.001u,0.s) -Chars 901 - 981 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0. secs (0.u,0.s) +Chars 895 - 899 [Qed.] 0.003 secs (0.002u,0.s) +Chars 901 - 981 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0.032 secs (0.029u,0.002s) Chars 982 - 988 [Proof.] 0. secs (0.u,0.s) -Chars 991 - 1000 [intros~x.] 0. secs (0.u,0.s) -Chars 1001 - 1013 [inversion~x.] 0.001 secs (0.001u,0.s) +Chars 991 - 1000 [(intros~x).] 0. secs (0.u,0.s) +Chars 1001 - 1013 [(inversion~x).] 0.002 secs (0.002u,0.s) Chars 1016 - 1017 [-] 0. secs (0.u,0.s) Chars 1018 - 1031 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 1032 - 1053 [eexists;~reflexivity.] 0. secs (0.u,0.s) +Chars 1032 - 1053 [(eexists;~reflexivity).] 0. secs (0.u,0.s) Chars 1056 - 1057 [-] 0. secs (0.u,0.s) -Chars 1058 - 1097 [enough~(unit~->~void)~by~contr...] 0. secs (0.u,0.s) -Chars 1098 - 1109 [destruct~H.] 0. secs (0.u,0.s) +Chars 1058 - 1097 [(enough~(unit~->~void)~by~cont...] 0. secs (0.u,0.s) +Chars 1098 - 1109 [(destruct~H).] 0. secs (0.u,0.s) Chars 1110 - 1115 [auto.] 0. secs (0.u,0.s) -Chars 1116 - 1120 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1116 - 1120 [Qed.] 0.003 secs (0.002u,0.s) Chars 1122 - 1299 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) -Chars 1309 - 1316 [intros.] 0. secs (0.u,0.s) -Chars 1317 - 1337 [induction~H;~inv~H0.] 0.005 secs (0.005u,0.s) +Chars 1309 - 1316 [(intros).] 0. secs (0.u,0.s) +Chars 1317 - 1337 [(induction~H;~inv~H0).] 0.006 secs (0.006u,0.s) Chars 1341 - 1342 [-] 0. secs (0.u,0.s) -Chars 1343 - 1359 [rewrite~H~in~H1.] 0.048 secs (0.048u,0.s) -Chars 1360 - 1368 [sinv~H1.] 0.002 secs (0.002u,0.s) +Chars 1343 - 1359 [(rewrite~H~in~H1).] 0.06 secs (0.06u,0.s) +Chars 1360 - 1368 [sinv~H1.] 0.003 secs (0.003u,0.s) Chars 1371 - 1372 [-] 0. secs (0.u,0.s) -Chars 1373 - 1389 [rewrite~H~in~H1.] 0.013 secs (0.013u,0.s) +Chars 1373 - 1389 [(rewrite~H~in~H1).] 0.019 secs (0.018u,0.s) Chars 1390 - 1398 [sinv~H1.] 0.002 secs (0.002u,0.s) Chars 1401 - 1402 [-] 0. secs (0.u,0.s) -Chars 1403 - 1414 [destruct~e.] 0. secs (0.u,0.s) -Chars 1415 - 1426 [destruct~b.] 0. secs (0.u,0.s) -Chars 1427 - 1448 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 1403 - 1414 [(destruct~e).] 0. secs (0.u,0.s) +Chars 1415 - 1426 [(destruct~b).] 0. secs (0.u,0.s) +Chars 1427 - 1448 [(apply~IHmay_converge).] 0. secs (0.u,0.s) Chars 1453 - 1454 [+] 0. secs (0.u,0.s) -Chars 1455 - 1471 [rewrite~H~in~H2.] 0.014 secs (0.014u,0.s) -Chars 1472 - 1480 [sinv~H2.] 0.002 secs (0.002u,0.s) +Chars 1455 - 1471 [(rewrite~H~in~H2).] 0.017 secs (0.016u,0.s) +Chars 1472 - 1480 [sinv~H2.] 0.006 secs (0.006u,0.s) Chars 1486 - 1487 [+] 0. secs (0.u,0.s) Chars 1488 - 1500 [contra_void.] 0. secs (0.u,0.s) Chars 1504 - 1505 [-] 0. secs (0.u,0.s) -Chars 1506 - 1534 [destruct~e;~try~contra_void.] 0. secs (0.u,0.s) -Chars 1540 - 1569 [destruct~e0;~try~contra_void.] 0. secs (0.u,0.s) -Chars 1574 - 1585 [destruct~b.] 0. secs (0.u,0.s) -Chars 1586 - 1598 [destruct~b0.] 0. secs (0.u,0.s) -Chars 1603 - 1624 [apply~IHmay_converge.] 0. secs (0.u,0.s) -Chars 1625 - 1641 [rewrite~H~in~H2.] 0.013 secs (0.013u,0.s) -Chars 1646 - 1654 [sinv~H2.] 0.006 secs (0.006u,0.s) -Chars 1655 - 1668 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 1506 - 1534 [(destruct~e;~try~contra_void).] 0. secs (0.u,0.s) +Chars 1540 - 1569 [(destruct~e0;~try~contra_void).] 0. secs (0.u,0.s) +Chars 1574 - 1585 [(destruct~b).] 0. secs (0.u,0.s) +Chars 1586 - 1598 [(destruct~b0).] 0. secs (0.u,0.s) +Chars 1603 - 1624 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 1625 - 1641 [(rewrite~H~in~H2).] 0.017 secs (0.017u,0.s) +Chars 1646 - 1654 [sinv~H2.] 0.009 secs (0.009u,0.s) +Chars 1655 - 1668 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 1673 - 1679 [subst.] 0. secs (0.u,0.s) -Chars 1680 - 1719 [enough~(k~tt~≈~k0~tt);~try~app...] 0. secs (0.u,0.s) -Chars 1724 - 1735 [rewrite~H0.] 0.003 secs (0.003u,0.s) +Chars 1680 - 1719 [(enough~(k~tt~≈~k0~tt);~try~ap...] 0. secs (0.u,0.s) +Chars 1724 - 1735 [(rewrite~H0).] 0.005 secs (0.005u,0.s) Chars 1736 - 1741 [auto.] 0. secs (0.u,0.s) -Chars 1742 - 1746 [Qed.] 0.013 secs (0.013u,0.s) +Chars 1742 - 1746 [Qed.] 0.019 secs (0.019u,0.s) Chars 1748 - 1802 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 1803 - 1809 [Proof.] 0. secs (0.u,0.s) -Chars 1812 - 1827 [apply~conv_ret.] 0. secs (0.u,0.s) -Chars 1828 - 1839 [unfold~Nil.] 0. secs (0.u,0.s) +Chars 1812 - 1827 [(apply~conv_ret).] 0. secs (0.u,0.s) +Chars 1828 - 1839 [(unfold~Nil).] 0. secs (0.u,0.s) Chars 1840 - 1852 [reflexivity.] 0. secs (0.u,0.s) Chars 1853 - 1857 [Qed.] 0. secs (0.u,0.s) Chars 1859 - 1965 [Lemma~finite_list_to_stream~:~...] 0. secs (0.u,0.s) Chars 1966 - 1972 [Proof.] 0. secs (0.u,0.s) -Chars 1975 - 1979 [red.] 0. secs (0.u,0.s) -Chars 1980 - 1987 [intros.] 0. secs (0.u,0.s) -Chars 1988 - 2000 [induction~l.] 0. secs (0.u,0.s) +Chars 1975 - 1979 [(red).] 0. secs (0.u,0.s) +Chars 1980 - 1987 [(intros).] 0. secs (0.u,0.s) +Chars 1988 - 2000 [(induction~l).] 0. secs (0.u,0.s) Chars 2003 - 2004 [-] 0. secs (0.u,0.s) -Chars 2005 - 2009 [cbn.] 0. secs (0.u,0.s) +Chars 2005 - 2009 [(cbn).] 0. secs (0.u,0.s) Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) Chars 2023 - 2035 [reflexivity.] 0. secs (0.u,0.s) Chars 2038 - 2039 [-] 0. secs (0.u,0.s) -Chars 2040 - 2044 [cbn.] 0. secs (0.u,0.s) -Chars 2045 - 2078 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) -Chars 2079 - 2085 [simpl.] 0. secs (0.u,0.s) +Chars 2040 - 2044 [(cbn).] 0. secs (0.u,0.s) +Chars 2045 - 2078 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 2079 - 2085 [(simpl).] 0. secs (0.u,0.s) Chars 2086 - 2092 [eauto.] 0. secs (0.u,0.s) Chars 2097 - 2106 [Unshelve.] 0. secs (0.u,0.s) Chars 2107 - 2116 [exact~tt.] 0. secs (0.u,0.s) Chars 2117 - 2121 [Qed.] 0. secs (0.u,0.s) Chars 2123 - 2255 [Lemma~finite_stream_list~:~~~f...] 0. secs (0.u,0.s) Chars 2256 - 2262 [Proof.] 0. secs (0.u,0.s) -Chars 2265 - 2272 [intros.] 0. secs (0.u,0.s) -Chars 2273 - 2282 [red~in~H.] 0. secs (0.u,0.s) -Chars 2283 - 2295 [induction~H.] 0. secs (0.u,0.s) +Chars 2265 - 2272 [(intros).] 0. secs (0.u,0.s) +Chars 2273 - 2282 [(red~in~H).] 0. secs (0.u,0.s) +Chars 2283 - 2295 [(induction~H).] 0. secs (0.u,0.s) Chars 2298 - 2299 [-] 0. secs (0.u,0.s) Chars 2300 - 2311 [exists~nil.] 0. secs (0.u,0.s) Chars 2312 - 2317 [auto.] 0. secs (0.u,0.s) Chars 2320 - 2321 [-] 0. secs (0.u,0.s) -Chars 2322 - 2356 [destruct~IHmay_converge~as~[l~...] 0. secs (0.u,0.s) -Chars 2357 - 2377 [unfold~ev_list~in~l.] 0. secs (0.u,0.s) -Chars 2382 - 2394 [inversion~e.] 0. secs (0.u,0.s) +Chars 2322 - 2356 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) +Chars 2357 - 2377 [(unfold~ev_list~in~l).] 0. secs (0.u,0.s) +Chars 2382 - 2394 [(inversion~e).] 0. secs (0.u,0.s) Chars 2395 - 2401 [subst.] 0. secs (0.u,0.s) Chars 2406 - 2424 [exists~(cons~e~l).] 0. secs (0.u,0.s) -Chars 2425 - 2431 [simpl.] 0. secs (0.u,0.s) -Chars 2432 - 2442 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 2447 - 2458 [destruct~b.] 0. secs (0.u,0.s) -Chars 2464 - 2479 [apply~eqit_Vis.] 0. secs (0.u,0.s) -Chars 2485 - 2492 [intros.] 0. secs (0.u,0.s) +Chars 2425 - 2431 [(simpl).] 0. secs (0.u,0.s) +Chars 2432 - 2442 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 2447 - 2458 [(destruct~b).] 0. secs (0.u,0.s) +Chars 2464 - 2479 [(apply~eqit_Vis).] 0. secs (0.u,0.s) +Chars 2485 - 2492 [(intros).] 0. secs (0.u,0.s) Chars 2493 - 2508 [now~destruct~u.] 0. secs (0.u,0.s) Chars 2513 - 2519 [subst.] 0. secs (0.u,0.s) Chars 2520 - 2534 [contradiction.] 0. secs (0.u,0.s) -Chars 2535 - 2539 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2535 - 2539 [Qed.] 0.002 secs (0.001u,0.s) Chars 2541 - 2728 [Lemma~append_vis~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 2729 - 2735 [Proof.] 0. secs (0.u,0.s) -Chars 2738 - 2749 [intros~E~R.] 0. secs (0.u,0.s) -Chars 2750 - 2764 [unfold~append.] 0. secs (0.u,0.s) -Chars 2765 - 2772 [intros.] 0. secs (0.u,0.s) -Chars 2775 - 2780 [step.] 0.001 secs (0.001u,0.s) -Chars 2781 - 2785 [cbn.] 0. secs (0.u,0.s) +Chars 2738 - 2749 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 2750 - 2764 [(unfold~append).] 0. secs (0.u,0.s) +Chars 2765 - 2772 [(intros).] 0. secs (0.u,0.s) +Chars 2775 - 2780 [step.] 0.002 secs (0.002u,0.s) +Chars 2781 - 2785 [(cbn).] 0. secs (0.u,0.s) Chars 2786 - 2791 [evis.] 0. secs (0.u,0.s) -Chars 2793 - 2797 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2793 - 2797 [Qed.] 0.003 secs (0.003u,0.s) Chars 2799 - 2928 [#[global]~Instance~proper_appe...] 0. secs (0.u,0.s) Chars 2929 - 2935 [Proof.] 0. secs (0.u,0.s) -Chars 2938 - 2969 [intros~log1~log2~Hlog~b1~b2~Hb.] 0. secs (0.u,0.s) -Chars 2970 - 2984 [unfold~append.] 0. secs (0.u,0.s) -Chars 2985 - 2998 [rewrite~Hlog.] 0.001 secs (0.001u,0.s) -Chars 3001 - 3030 [eapply~eutt_bind_eutt;~eauto.] 0.003 secs (0.002u,0.s) -Chars 3031 - 3035 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2938 - 2969 [(intros~log1~log2~Hlog~b1~b2~Hb).] 0. secs (0.u,0.s) +Chars 2970 - 2984 [(unfold~append).] 0. secs (0.u,0.s) +Chars 2985 - 2998 [(rewrite~Hlog).] 0.002 secs (0.002u,0.s) +Chars 3001 - 3030 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 3031 - 3035 [Qed.] 0.006 secs (0.006u,0.s) Chars 3037 - 3209 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) -Chars 3219 - 3226 [intros.] 0. secs (0.u,0.s) -Chars 3227 - 3239 [induction~H.] 0. secs (0.u,0.s) +Chars 3219 - 3226 [(intros).] 0. secs (0.u,0.s) +Chars 3227 - 3239 [(induction~H).] 0. secs (0.u,0.s) Chars 3242 - 3243 [-] 0. secs (0.u,0.s) -Chars 3244 - 3258 [unfold~append.] 0. secs (0.u,0.s) -Chars 3259 - 3269 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 3270 - 3289 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 3244 - 3258 [(unfold~append).] 0. secs (0.u,0.s) +Chars 3259 - 3269 [(rewrite~H).] 0.006 secs (0.005u,0.s) +Chars 3270 - 3289 [(rewrite~bind_ret_l).] 0.005 secs (0.004u,0.s) Chars 3294 - 3306 [constructor.] 0. secs (0.u,0.s) Chars 3307 - 3319 [reflexivity.] 0. secs (0.u,0.s) Chars 3322 - 3323 [-] 0. secs (0.u,0.s) -Chars 3324 - 3334 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 3335 - 3347 [inversion~e.] 0. secs (0.u,0.s) +Chars 3324 - 3334 [(rewrite~H).] 0.006 secs (0.005u,0.s) +Chars 3335 - 3347 [(inversion~e).] 0. secs (0.u,0.s) Chars 3348 - 3354 [subst.] 0. secs (0.u,0.s) -Chars 3355 - 3374 [rewrite~append_vis.] 0.005 secs (0.005u,0.s) -Chars 3379 - 3419 [eapply~conv_vis;~eauto;~try~re...] 0.001 secs (0.001u,0.s) -Chars 3420 - 3426 [simpl.] 0. secs (0.u,0.s) +Chars 3355 - 3374 [(rewrite~append_vis).] 0.008 secs (0.008u,0.s) +Chars 3379 - 3419 [(eapply~conv_vis;~eauto;~try~r...] 0.002 secs (0.002u,0.s) +Chars 3420 - 3426 [(simpl).] 0. secs (0.u,0.s) Chars 3427 - 3433 [eauto.] 0. secs (0.u,0.s) Chars 3438 - 3444 [subst.] 0. secs (0.u,0.s) Chars 3445 - 3459 [contradiction.] 0. secs (0.u,0.s) -Chars 3460 - 3464 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3460 - 3464 [Qed.] 0.003 secs (0.003u,0.s) Chars 3466 - 3679 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) Chars 3680 - 3686 [Proof.] 0. secs (0.u,0.s) -Chars 3689 - 3696 [intros.] 0. secs (0.u,0.s) -Chars 3697 - 3709 [induction~H.] 0. secs (0.u,0.s) +Chars 3689 - 3696 [(intros).] 0. secs (0.u,0.s) +Chars 3697 - 3709 [(induction~H).] 0. secs (0.u,0.s) Chars 3712 - 3713 [-] 0. secs (0.u,0.s) Chars 3714 - 3725 [exists~nil.] 0. secs (0.u,0.s) -Chars 3726 - 3730 [cbn.] 0. secs (0.u,0.s) -Chars 3731 - 3741 [rewrite~H.] 0. secs (0.u,0.s) -Chars 3746 - 3751 [step.] 0.001 secs (0.001u,0.s) -Chars 3752 - 3756 [cbn.] 0. secs (0.u,0.s) +Chars 3726 - 3730 [(cbn).] 0. secs (0.u,0.s) +Chars 3731 - 3741 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 3746 - 3751 [step.] 0.002 secs (0.002u,0.s) +Chars 3752 - 3756 [(cbn).] 0. secs (0.u,0.s) Chars 3757 - 3762 [eret.] 0. secs (0.u,0.s) Chars 3767 - 3768 [-] 0. secs (0.u,0.s) -Chars 3769 - 3807 [destruct~IHmay_converge~as~[lo...] 0. secs (0.u,0.s) -Chars 3808 - 3820 [inversion~e.] 0. secs (0.u,0.s) +Chars 3769 - 3807 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) +Chars 3808 - 3820 [(inversion~e).] 0. secs (0.u,0.s) Chars 3821 - 3827 [subst.] 0. secs (0.u,0.s) Chars 3832 - 3852 [exists~(cons~e~log).] 0. secs (0.u,0.s) -Chars 3853 - 3857 [cbn.] 0. secs (0.u,0.s) -Chars 3858 - 3877 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) -Chars 3878 - 3888 [rewrite~H.] 0. secs (0.u,0.s) -Chars 3893 - 3898 [step.] 0.001 secs (0.001u,0.s) +Chars 3853 - 3857 [(cbn).] 0. secs (0.u,0.s) +Chars 3858 - 3877 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) +Chars 3878 - 3888 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 3893 - 3898 [step.] 0.002 secs (0.002u,0.s) Chars 3899 - 3911 [constructor.] 0. secs (0.u,0.s) -Chars 3912 - 3919 [intros.] 0. secs (0.u,0.s) -Chars 3920 - 3931 [destruct~v.] 0. secs (0.u,0.s) -Chars 3938 - 3949 [destruct~b.] 0. secs (0.u,0.s) -Chars 3950 - 3961 [apply~Hlog.] 0. secs (0.u,0.s) +Chars 3912 - 3919 [(intros).] 0. secs (0.u,0.s) +Chars 3920 - 3931 [(destruct~v).] 0. secs (0.u,0.s) +Chars 3938 - 3949 [(destruct~b).] 0. secs (0.u,0.s) +Chars 3950 - 3961 [(apply~Hlog).] 0. secs (0.u,0.s) Chars 3962 - 3968 [subst.] 0. secs (0.u,0.s) Chars 3969 - 3983 [contradiction.] 0. secs (0.u,0.s) -Chars 3984 - 3988 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3984 - 3988 [Qed.] 0.005 secs (0.005u,0.s) Chars 3990 - 4172 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) Chars 4173 - 4179 [Proof.] 0. secs (0.u,0.s) -Chars 4182 - 4189 [intros.] 0. secs (0.u,0.s) -Chars 4192 - 4228 [destruct~(classic_converge~b);...] 0. secs (0.u,0.s) -Chars 4229 - 4250 [destruct~H~as~[r~Hr].] 0. secs (0.u,0.s) +Chars 4182 - 4189 [(intros).] 0. secs (0.u,0.s) +Chars 4192 - 4228 [(destruct~(classic_converge~b)...] 0. secs (0.u,0.s) +Chars 4229 - 4250 [(destruct~H~as~[r~Hr]).] 0. secs (0.u,0.s) Chars 4251 - 4256 [left.] 0. secs (0.u,0.s) Chars 4259 - 4268 [exists~r.] 0. secs (0.u,0.s) -Chars 4269 - 4299 [apply~converge_itrace_ev_list.] 0. secs (0.u,0.s) +Chars 4269 - 4299 [(apply~converge_itrace_ev_list).] 0. secs (0.u,0.s) Chars 4300 - 4305 [auto.] 0. secs (0.u,0.s) Chars 4306 - 4310 [Qed.] 0. secs (0.u,0.s) Chars 4312 - 4354 [Arguments~classic_converge_itr...] 0. secs (0.u,0.s) Chars 4356 - 4460 [Lemma~append_nil~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 4461 - 4467 [Proof.] 0. secs (0.u,0.s) -Chars 4470 - 4477 [intros.] 0. secs (0.u,0.s) -Chars 4478 - 4492 [unfold~append.] 0. secs (0.u,0.s) -Chars 4493 - 4512 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 4470 - 4477 [(intros).] 0. secs (0.u,0.s) +Chars 4478 - 4492 [(unfold~append).] 0. secs (0.u,0.s) +Chars 4493 - 4512 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 4513 - 4525 [reflexivity.] 0. secs (0.u,0.s) -Chars 4526 - 4530 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4526 - 4530 [Qed.] 0.003 secs (0.003u,0.s) Chars 4532 - 4783 [Lemma~append_assoc~:~~~forall~...] 0. secs (0.u,0.s) Chars 4784 - 4790 [Proof.] 0. secs (0.u,0.s) -Chars 4793 - 4810 [intros~E~R~b~log.] 0. secs (0.u,0.s) -Chars 4811 - 4825 [induction~log.] 0. secs (0.u,0.s) +Chars 4793 - 4810 [(intros~E~R~b~log).] 0. secs (0.u,0.s) +Chars 4811 - 4825 [(induction~log).] 0. secs (0.u,0.s) Chars 4828 - 4829 [-] 0. secs (0.u,0.s) -Chars 4830 - 4836 [simpl.] 0. secs (0.u,0.s) -Chars 4837 - 4844 [intros.] 0. secs (0.u,0.s) -Chars 4845 - 4864 [rewrite~append_nil.] 0. secs (0.u,0.s) +Chars 4830 - 4836 [(simpl).] 0. secs (0.u,0.s) +Chars 4837 - 4844 [(intros).] 0. secs (0.u,0.s) +Chars 4845 - 4864 [(rewrite~append_nil).] 0.001 secs (0.u,0.s) Chars 4865 - 4877 [reflexivity.] 0. secs (0.u,0.s) Chars 4880 - 4881 [-] 0. secs (0.u,0.s) -Chars 4882 - 4886 [cbn.] 0. secs (0.u,0.s) -Chars 4887 - 4894 [intros.] 0. secs (0.u,0.s) -Chars 4895 - 4914 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) -Chars 4915 - 4936 [setoid_rewrite~IHlog.] 0.002 secs (0.002u,0.s) -Chars 4941 - 4960 [rewrite~append_vis.] 0. secs (0.u,0.s) +Chars 4882 - 4886 [(cbn).] 0. secs (0.u,0.s) +Chars 4887 - 4894 [(intros).] 0. secs (0.u,0.s) +Chars 4895 - 4914 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) +Chars 4915 - 4936 [setoid_rewrite~IHlog.] 0.003 secs (0.003u,0.s) +Chars 4941 - 4960 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) Chars 4961 - 4973 [reflexivity.] 0. secs (0.u,0.s) -Chars 4974 - 4978 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4974 - 4978 [Qed.] 0.003 secs (0.003u,0.s) Chars 4980 - 5159 [Lemma~append_div~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5176 [intros.] 0. secs (0.u,0.s) -Chars 5177 - 5191 [induction~log.] 0. secs (0.u,0.s) +Chars 5169 - 5176 [(intros).] 0. secs (0.u,0.s) +Chars 5177 - 5191 [(induction~log).] 0. secs (0.u,0.s) Chars 5194 - 5195 [-] 0. secs (0.u,0.s) -Chars 5196 - 5200 [cbn.] 0. secs (0.u,0.s) -Chars 5201 - 5215 [unfold~append.] 0. secs (0.u,0.s) -Chars 5216 - 5235 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5196 - 5200 [(cbn).] 0. secs (0.u,0.s) +Chars 5201 - 5215 [(unfold~append).] 0. secs (0.u,0.s) +Chars 5216 - 5235 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 5236 - 5241 [auto.] 0. secs (0.u,0.s) Chars 5244 - 5245 [-] 0. secs (0.u,0.s) -Chars 5246 - 5250 [cbn.] 0. secs (0.u,0.s) -Chars 5251 - 5265 [unfold~append.] 0. secs (0.u,0.s) +Chars 5246 - 5250 [(cbn).] 0. secs (0.u,0.s) +Chars 5251 - 5265 [(unfold~append).] 0. secs (0.u,0.s) Chars 5270 - 5275 [step.] 0. secs (0.u,0.s) -Chars 5276 - 5287 [repeat~red.] 0. secs (0.u,0.s) -Chars 5288 - 5292 [cbn.] 0. secs (0.u,0.s) +Chars 5276 - 5287 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5288 - 5292 [(cbn).] 0. secs (0.u,0.s) Chars 5293 - 5305 [constructor.] 0. secs (0.u,0.s) Chars 5306 - 5312 [intro.] 0. secs (0.u,0.s) Chars 5313 - 5318 [auto.] 0. secs (0.u,0.s) Chars 5320 - 5324 [Qed.] 0.001 secs (0.001u,0.s) Chars 5326 - 5566 [Lemma~inv_append_eutt~:~~~fora...] 0. secs (0.u,0.s) Chars 5567 - 5573 [Proof.] 0. secs (0.u,0.s) -Chars 5576 - 5583 [intros.] 0. secs (0.u,0.s) +Chars 5576 - 5583 [(intros).] 0. secs (0.u,0.s) Chars 5584 - 5610 [generalize~dependent~log2.] 0. secs (0.u,0.s) -Chars 5611 - 5634 [induction~log1;~intros.] 0. secs (0.u,0.s) +Chars 5611 - 5634 [(induction~log1;~intros).] 0. secs (0.u,0.s) Chars 5637 - 5638 [-] 0. secs (0.u,0.s) -Chars 5639 - 5653 [destruct~log2.] 0. secs (0.u,0.s) +Chars 5639 - 5653 [(destruct~log2).] 0. secs (0.u,0.s) Chars 5658 - 5659 [+] 0. secs (0.u,0.s) -Chars 5660 - 5672 [split;~auto.] 0. secs (0.u,0.s) -Chars 5673 - 5682 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 5683 - 5690 [sinv~H.] 0.004 secs (0.004u,0.s) +Chars 5660 - 5672 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5673 - 5682 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 5683 - 5690 [sinv~H.] 0.003 secs (0.003u,0.s) Chars 5696 - 5697 [+] 0. secs (0.u,0.s) -Chars 5698 - 5705 [sinv~H.] 0.002 secs (0.002u,0.s) +Chars 5698 - 5705 [sinv~H.] 0.003 secs (0.003u,0.s) Chars 5708 - 5709 [-] 0. secs (0.u,0.s) -Chars 5710 - 5724 [destruct~log2.] 0. secs (0.u,0.s) +Chars 5710 - 5724 [(destruct~log2).] 0. secs (0.u,0.s) Chars 5729 - 5730 [+] 0. secs (0.u,0.s) -Chars 5731 - 5738 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 5731 - 5738 [sinv~H.] 0.006 secs (0.006u,0.s) Chars 5743 - 5744 [+] 0. secs (0.u,0.s) -Chars 5745 - 5754 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 5755 - 5774 [unfold~append~in~H.] 0. secs (0.u,0.s) -Chars 5775 - 5782 [sinv~H.] 0.006 secs (0.006u,0.s) -Chars 5783 - 5792 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5793 - 5806 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 5813 - 5845 [enough~(log1~=~log2~/\~r1~=~r2).] 0. secs (0.u,0.s) +Chars 5745 - 5754 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 5755 - 5774 [(unfold~append~in~H).] 0. secs (0.u,0.s) +Chars 5775 - 5782 [sinv~H.] 0.009 secs (0.009u,0.s) +Chars 5783 - 5792 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5793 - 5806 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 5813 - 5845 [(enough~(log1~=~log2~/\~r1~=~r...] 0. secs (0.u,0.s) Chars 5852 - 5853 [{] 0. secs (0.u,0.s) -Chars 5854 - 5865 [destruct~H.] 0. secs (0.u,0.s) +Chars 5854 - 5865 [(destruct~H).] 0. secs (0.u,0.s) Chars 5866 - 5872 [subst.] 0. secs (0.u,0.s) Chars 5873 - 5878 [auto.] 0. secs (0.u,0.s) Chars 5879 - 5880 [}] 0. secs (0.u,0.s) -Chars 5887 - 5900 [apply~IHlog1.] 0. secs (0.u,0.s) -Chars 5901 - 5911 [apply~REL.] 0. secs (0.u,0.s) -Chars 5912 - 5921 [apply~tt.] 0. secs (0.u,0.s) -Chars 5922 - 5926 [Qed.] 0.014 secs (0.014u,0.s) +Chars 5887 - 5900 [(apply~IHlog1).] 0. secs (0.u,0.s) +Chars 5901 - 5911 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5912 - 5921 [(apply~tt).] 0. secs (0.u,0.s) +Chars 5922 - 5926 [Qed.] 0.021 secs (0.02u,0.s) Chars 5928 - 6216 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) Chars 6217 - 6223 [Proof.] 0. secs (0.u,0.s) -Chars 6226 - 6237 [intros~E~R.] 0. secs (0.u,0.s) +Chars 6226 - 6237 [(intros~E~R).] 0. secs (0.u,0.s) Chars 6238 - 6257 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6258 - 6265 [intros.] 0. secs (0.u,0.s) +Chars 6258 - 6265 [(intros).] 0. secs (0.u,0.s) Chars 6269 - 6280 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6281 - 6298 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 6281 - 6298 [(repeat~red~in~H0).] 0. secs (0.u,0.s) Chars 6299 - 6309 [step~in~H.] 0. secs (0.u,0.s) -Chars 6312 - 6325 [genobs~t~ot3.] 0. secs (0.u,0.s) +Chars 6312 - 6325 [(genobs~t~ot3).] 0. secs (0.u,0.s) Chars 6326 - 6339 [clear~Heqot3.] 0. secs (0.u,0.s) -Chars 6343 - 6389 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) +Chars 6343 - 6389 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) Chars 6392 - 6393 [-] 0. secs (0.u,0.s) -Chars 6394 - 6420 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) -Chars 6421 - 6473 [hinduction~H0~before~CIH;~intr...] 0.016 secs (0.016u,0.s) +Chars 6394 - 6420 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 6421 - 6473 [(hinduction~H0~before~CIH;~int...] 0.022 secs (0.022u,0.s) Chars 6480 - 6481 [+] 0. secs (0.u,0.s) Chars 6482 - 6494 [constructor.] 0. secs (0.u,0.s) Chars 6495 - 6500 [auto.] 0. secs (0.u,0.s) Chars 6505 - 6506 [+] 0. secs (0.u,0.s) Chars 6507 - 6519 [constructor.] 0. secs (0.u,0.s) -Chars 6520 - 6542 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 6520 - 6542 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 6598 - 6599 [-] 0. secs (0.u,0.s) -Chars 6601 - 6673 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) +Chars 6601 - 6673 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) Chars 6679 - 6680 [{] 0. secs (0.u,0.s) -Chars 6681 - 6728 [destruct~ot3;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) +Chars 6681 - 6728 [(destruct~ot3;~eauto;~right;~r...] 0.007 secs (0.007u,0.s) Chars 6729 - 6730 [}] 0. secs (0.u,0.s) -Chars 6736 - 6762 [destruct~DEC~as~[EQ|~EQ].] 0. secs (0.u,0.s) +Chars 6736 - 6762 [(destruct~DEC~as~[EQ|~EQ]).] 0. secs (0.u,0.s) Chars 6768 - 6769 [+] 0. secs (0.u,0.s) -Chars 6770 - 6799 [destruct~EQ~as~[m3~?];~subst.] 0. secs (0.u,0.s) +Chars 6770 - 6799 [(destruct~EQ~as~[m3~?];~subst).] 0. secs (0.u,0.s) Chars 6807 - 6819 [constructor.] 0. secs (0.u,0.s) -Chars 6820 - 6838 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6846 - 6865 [apply~rutt_inv_Tau.] 0. secs (0.u,0.s) -Chars 6866 - 6875 [now~step.] 0. secs (0.u,0.s) +Chars 6820 - 6838 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 6846 - 6865 [(apply~rutt_inv_Tau).] 0. secs (0.u,0.s) +Chars 6866 - 6875 [now~step.] 0.001 secs (0.001u,0.s) Chars 6882 - 6883 [+] 0. secs (0.u,0.s) -Chars 6884 - 6930 [inv~H0;~try~(exfalso;~eapply~E...] 0.024 secs (0.023u,0.s) +Chars 6884 - 6930 [(inv~H0;~try~(exfalso;~eapply~...] 0.036 secs (0.035u,0.s) Chars 6938 - 6950 [constructor.] 0. secs (0.u,0.s) Chars 6958 - 6970 [step~in~REL.] 0. secs (0.u,0.s) -Chars 6979 - 7058 [hinduction~H1~before~CIH;~intr...] 0.002 secs (0.002u,0.s) +Chars 6979 - 7058 [(hinduction~H1~before~CIH;~int...] 0.003 secs (0.003u,0.s) Chars 7066 - 7067 [*] 0. secs (0.u,0.s) -Chars 7068 - 7106 [dependent~induction~REL;~rewri...] 0.035 secs (0.035u,0.s) +Chars 7068 - 7106 [(dependent~induction~REL;~rewr...] 0.051 secs (0.05u,0.s) Chars 7116 - 7118 [++] 0. secs (0.u,0.s) Chars 7119 - 7131 [constructor.] 0. secs (0.u,0.s) Chars 7132 - 7137 [auto.] 0. secs (0.u,0.s) Chars 7147 - 7149 [++] 0. secs (0.u,0.s) Chars 7150 - 7162 [constructor.] 0. secs (0.u,0.s) -Chars 7163 - 7183 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) +Chars 7163 - 7183 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) Chars 7191 - 7192 [*] 0. secs (0.u,0.s) -Chars 7193 - 7231 [dependent~induction~REL;~rewri...] 0.05 secs (0.05u,0.s) +Chars 7193 - 7231 [(dependent~induction~REL;~rewr...] 0.071 secs (0.07u,0.001s) Chars 7241 - 7243 [++] 0. secs (0.u,0.s) -Chars 7244 - 7262 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 7263 - 7270 [intros.] 0. secs (0.u,0.s) -Chars 7271 - 7286 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 7300 - 7311 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7312 - 7322 [apply~REL.] 0. secs (0.u,0.s) +Chars 7244 - 7262 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 7263 - 7270 [(intros).] 0. secs (0.u,0.s) +Chars 7271 - 7286 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 7300 - 7311 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7312 - 7322 [(apply~REL).] 0. secs (0.u,0.s) Chars 7323 - 7334 [assumption.] 0. secs (0.u,0.s) Chars 7345 - 7347 [++] 0. secs (0.u,0.s) Chars 7348 - 7360 [constructor.] 0. secs (0.u,0.s) -Chars 7361 - 7381 [eapply~IHREL;~eauto.] 0.005 secs (0.005u,0.s) +Chars 7361 - 7381 [(eapply~IHREL;~eauto).] 0.005 secs (0.005u,0.s) Chars 7389 - 7390 [*] 0. secs (0.u,0.s) -Chars 7391 - 7413 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 7391 - 7413 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 7414 - 7428 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 7438 - 7501 [dependent~induction~REL;~try~(...] 0.041 secs (0.041u,0.s) +Chars 7438 - 7501 [(dependent~induction~REL;~try~...] 0.062 secs (0.061u,0.001s) Chars 7511 - 7513 [++] 0. secs (0.u,0.s) -Chars 7514 - 7527 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 7528 - 7546 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7547 - 7558 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 7514 - 7527 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 7528 - 7546 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 7547 - 7558 [now~unstep.] 0.004 secs (0.004u,0.s) Chars 7569 - 7571 [++] 0. secs (0.u,0.s) Chars 7572 - 7577 [auto.] 0. secs (0.u,0.s) Chars 7587 - 7589 [++] 0. secs (0.u,0.s) -Chars 7590 - 7603 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 7604 - 7622 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7623 - 7643 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) +Chars 7590 - 7603 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 7604 - 7622 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 7623 - 7643 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) Chars 7646 - 7647 [-] 0. secs (0.u,0.s) -Chars 7648 - 7676 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) -Chars 7681 - 7744 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.013u,0.s) +Chars 7648 - 7676 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 7681 - 7744 [(hinduction~H0~before~CIH;~int...] 0.018 secs (0.018u,0.s) Chars 7749 - 7750 [+] 0. secs (0.u,0.s) -Chars 7751 - 7769 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 7770 - 7777 [intros.] 0. secs (0.u,0.s) -Chars 7778 - 7793 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 7800 - 7811 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7812 - 7822 [apply~REL.] 0. secs (0.u,0.s) +Chars 7751 - 7769 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 7770 - 7777 [(intros).] 0. secs (0.u,0.s) +Chars 7778 - 7793 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 7800 - 7811 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7812 - 7822 [(apply~REL).] 0. secs (0.u,0.s) Chars 7823 - 7834 [assumption.] 0. secs (0.u,0.s) Chars 7840 - 7841 [+] 0. secs (0.u,0.s) Chars 7842 - 7854 [constructor.] 0. secs (0.u,0.s) -Chars 7855 - 7877 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 7855 - 7877 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 7880 - 7881 [-] 0. secs (0.u,0.s) -Chars 7882 - 7904 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 7905 - 7932 [remember~(TauF~t1)~as~otf1.] 0.001 secs (0.001u,0.s) -Chars 7937 - 8008 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.013u,0.s) +Chars 7882 - 7904 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 7905 - 7932 [(remember~(TauF~t1)~as~otf1).] 0.001 secs (0.001u,0.s) +Chars 7937 - 8008 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.019u,0.s) Chars 8013 - 8014 [+] 0. secs (0.u,0.s) Chars 8015 - 8027 [constructor.] 0. secs (0.u,0.s) -Chars 8028 - 8039 [now~unstep.] 0. secs (0.u,0.s) +Chars 8028 - 8039 [now~unstep.] 0.001 secs (0.001u,0.s) Chars 8045 - 8046 [+] 0. secs (0.u,0.s) Chars 8047 - 8059 [constructor.] 0. secs (0.u,0.s) -Chars 8060 - 8082 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 8060 - 8082 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) Chars 8085 - 8086 [-] 0. secs (0.u,0.s) Chars 8087 - 8099 [constructor.] 0. secs (0.u,0.s) -Chars 8100 - 8122 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 8123 - 8127 [Qed.] 0.123 secs (0.122u,0.001s) +Chars 8100 - 8122 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 8123 - 8127 [Qed.] 0.182 secs (0.178u,0.003s) Chars 8129 - 8422 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) Chars 8423 - 8429 [Proof.] 0. secs (0.u,0.s) -Chars 8432 - 8443 [intros~E~R.] 0. secs (0.u,0.s) +Chars 8432 - 8443 [(intros~E~R).] 0. secs (0.u,0.s) Chars 8444 - 8463 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 8464 - 8471 [intros.] 0. secs (0.u,0.s) +Chars 8464 - 8471 [(intros).] 0. secs (0.u,0.s) Chars 8472 - 8482 [step~in~H.] 0. secs (0.u,0.s) Chars 8486 - 8497 [step~in~H0.] 0. secs (0.u,0.s) -Chars 8498 - 8515 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 8519 - 8539 [genobs_clear~t2~ot2.] 0. secs (0.u,0.s) -Chars 8542 - 8598 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) +Chars 8498 - 8515 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 8519 - 8539 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) +Chars 8542 - 8598 [(hinduction~H~before~CIH;~intr...] 0.003 secs (0.003u,0.s) Chars 8601 - 8602 [-] 0. secs (0.u,0.s) -Chars 8603 - 8629 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) -Chars 8630 - 8692 [hinduction~H0~before~CIH;~intr...] 0.015 secs (0.015u,0.s) +Chars 8603 - 8629 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 8630 - 8692 [(hinduction~H0~before~CIH;~int...] 0.022 secs (0.021u,0.s) Chars 8697 - 8698 [+] 0. secs (0.u,0.s) -Chars 8699 - 8717 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8699 - 8717 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 8722 - 8723 [+] 0. secs (0.u,0.s) Chars 8724 - 8736 [constructor.] 0. secs (0.u,0.s) Chars 8737 - 8743 [eauto.] 0. secs (0.u,0.s) Chars 8746 - 8747 [-] 0. secs (0.u,0.s) -Chars 8748 - 8775 [remember~(TauF~m1)~as~otm1.] 0. secs (0.u,0.s) -Chars 8780 - 8839 [hinduction~H0~before~CIH;~intr...] 0.014 secs (0.014u,0.s) +Chars 8748 - 8775 [(remember~(TauF~m1)~as~otm1).] 0.001 secs (0.001u,0.s) +Chars 8780 - 8839 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) Chars 8844 - 8845 [+] 0. secs (0.u,0.s) Chars 8846 - 8858 [constructor.] 0. secs (0.u,0.s) -Chars 8859 - 8877 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 8859 - 8877 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 8882 - 8883 [+] 0. secs (0.u,0.s) Chars 8884 - 8896 [constructor.] 0. secs (0.u,0.s) -Chars 8897 - 8915 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 8922 - 8943 [apply~rutt_inv_Tau_r.] 0. secs (0.u,0.s) -Chars 8944 - 8953 [now~step.] 0. secs (0.u,0.s) +Chars 8897 - 8915 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 8922 - 8943 [(apply~rutt_inv_Tau_r).] 0. secs (0.u,0.s) +Chars 8944 - 8953 [now~step.] 0.001 secs (0.001u,0.s) Chars 8959 - 8960 [+] 0. secs (0.u,0.s) Chars 8961 - 8973 [step~in~REL.] 0. secs (0.u,0.s) -Chars 8981 - 9012 [dependent~induction~REL;~subst.] 0.029 secs (0.029u,0.s) +Chars 8981 - 9012 [(dependent~induction~REL;~subst).] 0.041 secs (0.041u,0.s) Chars 9019 - 9020 [*] 0. secs (0.u,0.s) Chars 9021 - 9033 [constructor.] 0. secs (0.u,0.s) Chars 9034 - 9048 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9057 - 9116 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) +Chars 9057 - 9116 [(hinduction~H0~before~CIH;~int...] 0.012 secs (0.012u,0.s) Chars 9125 - 9127 [++] 0. secs (0.u,0.s) -Chars 9128 - 9141 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9128 - 9141 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9142 - 9154 [constructor.] 0. secs (0.u,0.s) Chars 9155 - 9160 [auto.] 0. secs (0.u,0.s) Chars 9169 - 9171 [++] 0. secs (0.u,0.s) Chars 9172 - 9184 [constructor.] 0. secs (0.u,0.s) Chars 9185 - 9190 [auto.] 0. secs (0.u,0.s) Chars 9197 - 9198 [*] 0. secs (0.u,0.s) -Chars 9199 - 9214 [eapply~IHruttF.] 0. secs (0.u,0.s) -Chars 9215 - 9235 [2:~symmetry;~eauto.] 0. secs (0.u,0.s) +Chars 9199 - 9214 [(eapply~IHruttF).] 0. secs (0.u,0.s) +Chars 9215 - 9235 [2:~(symmetry;~eauto).] 0. secs (0.u,0.s) Chars 9244 - 9249 [step.] 0.001 secs (0.001u,0.s) -Chars 9250 - 9263 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9264 - 9282 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9250 - 9263 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9264 - 9282 [(constructor;~auto).] 0.003 secs (0.003u,0.s) Chars 9291 - 9307 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 9315 - 9316 [*] 0. secs (0.u,0.s) Chars 9317 - 9329 [constructor.] 0. secs (0.u,0.s) -Chars 9330 - 9343 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9330 - 9343 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9352 - 9366 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9367 - 9426 [hinduction~H0~before~CIH;~intr...] 0.011 secs (0.011u,0.s) +Chars 9367 - 9426 [(hinduction~H0~before~CIH;~int...] 0.015 secs (0.015u,0.s) Chars 9435 - 9437 [++] 0. secs (0.u,0.s) -Chars 9438 - 9456 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 9457 - 9464 [intros.] 0. secs (0.u,0.s) -Chars 9465 - 9480 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 9491 - 9502 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9503 - 9513 [apply~REL.] 0. secs (0.u,0.s) +Chars 9438 - 9456 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 9457 - 9464 [(intros).] 0. secs (0.u,0.s) +Chars 9465 - 9480 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 9491 - 9502 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9503 - 9513 [(apply~REL).] 0. secs (0.u,0.s) Chars 9514 - 9525 [assumption.] 0. secs (0.u,0.s) Chars 9535 - 9537 [++] 0. secs (0.u,0.s) Chars 9538 - 9550 [constructor.] 0. secs (0.u,0.s) -Chars 9551 - 9573 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 9551 - 9573 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 9580 - 9581 [*] 0. secs (0.u,0.s) Chars 9582 - 9596 [unstep~in~REL.] 0. secs (0.u,0.s) -Chars 9597 - 9619 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 9597 - 9619 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 9626 - 9627 [*] 0. secs (0.u,0.s) Chars 9628 - 9640 [constructor.] 0. secs (0.u,0.s) -Chars 9641 - 9654 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9655 - 9675 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 9641 - 9654 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9655 - 9675 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) Chars 9678 - 9679 [-] 0. secs (0.u,0.s) -Chars 9680 - 9708 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) -Chars 9709 - 9754 [hinduction~H0~before~CIH;~intr...] 0.019 secs (0.019u,0.s) +Chars 9680 - 9708 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 9709 - 9754 [(hinduction~H0~before~CIH;~int...] 0.028 secs (0.027u,0.s) Chars 9759 - 9760 [+] 0. secs (0.u,0.s) -Chars 9761 - 9774 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 9775 - 9793 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9794 - 9801 [intros.] 0. secs (0.u,0.s) -Chars 9802 - 9817 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 9824 - 9835 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9836 - 9846 [apply~REL.] 0. secs (0.u,0.s) +Chars 9761 - 9774 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 9775 - 9793 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 9794 - 9801 [(intros).] 0. secs (0.u,0.s) +Chars 9802 - 9817 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 9824 - 9835 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9836 - 9846 [(apply~REL).] 0. secs (0.u,0.s) Chars 9847 - 9858 [assumption.] 0. secs (0.u,0.s) Chars 9864 - 9865 [+] 0. secs (0.u,0.s) Chars 9866 - 9878 [constructor.] 0. secs (0.u,0.s) Chars 9879 - 9885 [eauto.] 0. secs (0.u,0.s) Chars 9888 - 9889 [-] 0. secs (0.u,0.s) -Chars 9890 - 9912 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 9913 - 9940 [remember~(TauF~t0)~as~otf0.] 0.001 secs (0.001u,0.s) -Chars 9945 - 10016 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) +Chars 9890 - 9912 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 9913 - 9940 [(remember~(TauF~t0)~as~otf0).] 0.001 secs (0.001u,0.s) +Chars 9945 - 10016 [(hinduction~H0~before~CIH;~int...] 0.015 secs (0.015u,0.s) Chars 10021 - 10022 [+] 0. secs (0.u,0.s) Chars 10023 - 10035 [constructor.] 0. secs (0.u,0.s) -Chars 10036 - 10047 [now~unstep.] 0. secs (0.u,0.s) +Chars 10036 - 10047 [now~unstep.] 0.001 secs (0.001u,0.s) Chars 10053 - 10054 [+] 0. secs (0.u,0.s) Chars 10055 - 10067 [constructor.] 0. secs (0.u,0.s) -Chars 10068 - 10090 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) +Chars 10068 - 10090 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 10093 - 10094 [-] 0. secs (0.u,0.s) Chars 10095 - 10107 [constructor.] 0. secs (0.u,0.s) -Chars 10108 - 10130 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 10131 - 10135 [Qed.] 0.064 secs (0.063u,0.s) -Chars 10137 - 10241 [#[global]~Instance~trace_refin...] 0. secs (0.u,0.s) +Chars 10108 - 10130 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 10131 - 10135 [Qed.] 0.089 secs (0.088u,0.001s) +Chars 10137 - 10241 [#[global]~Instance~trace_refin...] 0.003 secs (0.002u,0.s) Chars 10242 - 10248 [Proof.] 0. secs (0.u,0.s) -Chars 10251 - 10284 [intros~b1~b2~Heuttb~t1~t2~Heuttt.] 0. secs (0.u,0.s) -Chars 10287 - 10397 [split;~intros;~~try~~~(eapply~...] 0.002 secs (0.002u,0.s) -Chars 10402 - 10429 [now~rewrite~Heuttb,~Heuttt.] 0.014 secs (0.014u,0.s) -Chars 10430 - 10434 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10251 - 10284 [(intros~b1~b2~Heuttb~t1~t2~Heu...] 0. secs (0.u,0.s) +Chars 10287 - 10397 [(split;~intros;~~~try~~~~(eapp...] 0.003 secs (0.003u,0.s) +Chars 10402 - 10429 [now~rewrite~Heuttb,~Heuttt.] 0.019 secs (0.019u,0.s) +Chars 10430 - 10434 [Qed.] 0.003 secs (0.003u,0.s) Chars 10436 - 10545 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) Chars 10546 - 10552 [Proof.] 0. secs (0.u,0.s) -Chars 10555 - 10562 [intros.] 0. secs (0.u,0.s) -Chars 10563 - 10568 [step.] 0. secs (0.u,0.s) +Chars 10555 - 10562 [(intros).] 0. secs (0.u,0.s) +Chars 10563 - 10568 [step.] 0.001 secs (0.001u,0.s) Chars 10569 - 10581 [constructor.] 0. secs (0.u,0.s) Chars 10582 - 10587 [auto.] 0. secs (0.u,0.s) Chars 10588 - 10592 [Qed.] 0.001 secs (0.001u,0.s) Chars 10594 - 10751 [Lemma~trace_refine_ret_inv_r~:...] 0. secs (0.u,0.s) Chars 10752 - 10758 [Proof.] 0. secs (0.u,0.s) -Chars 10761 - 10768 [intros.] 0. secs (0.u,0.s) +Chars 10761 - 10768 [(intros).] 0. secs (0.u,0.s) Chars 10769 - 10774 [step.] 0.001 secs (0.001u,0.s) Chars 10775 - 10785 [step~in~H.] 0. secs (0.u,0.s) -Chars 10786 - 10802 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 10806 - 10835 [dependent~induction~H;~subst.] 0.023 secs (0.023u,0.s) +Chars 10786 - 10802 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 10806 - 10835 [(dependent~induction~H;~subst).] 0.031 secs (0.031u,0.s) Chars 10838 - 10839 [-] 0. secs (0.u,0.s) -Chars 10840 - 10853 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10840 - 10853 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10854 - 10866 [constructor.] 0. secs (0.u,0.s) Chars 10867 - 10872 [auto.] 0. secs (0.u,0.s) Chars 10875 - 10876 [-] 0. secs (0.u,0.s) -Chars 10877 - 10890 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 10891 - 10909 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 10910 - 10914 [Qed.] 0.019 secs (0.018u,0.s) +Chars 10877 - 10890 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 10891 - 10909 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 10910 - 10914 [Qed.] 0.026 secs (0.025u,0.s) Chars 10916 - 11082 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) Chars 11083 - 11089 [Proof.] 0. secs (0.u,0.s) -Chars 11092 - 11099 [intros.] 0. secs (0.u,0.s) +Chars 11092 - 11099 [(intros).] 0. secs (0.u,0.s) Chars 11100 - 11105 [step.] 0.001 secs (0.001u,0.s) Chars 11106 - 11116 [step~in~H.] 0. secs (0.u,0.s) -Chars 11117 - 11133 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 11136 - 11165 [dependent~induction~H;~subst.] 0.024 secs (0.024u,0.s) +Chars 11117 - 11133 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 11136 - 11165 [(dependent~induction~H;~subst).] 0.034 secs (0.033u,0.s) Chars 11168 - 11169 [-] 0. secs (0.u,0.s) -Chars 11170 - 11183 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 11170 - 11183 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 11184 - 11196 [constructor.] 0. secs (0.u,0.s) Chars 11197 - 11202 [auto.] 0. secs (0.u,0.s) Chars 11205 - 11206 [-] 0. secs (0.u,0.s) -Chars 11207 - 11220 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 11221 - 11239 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 11240 - 11244 [Qed.] 0.022 secs (0.022u,0.s) +Chars 11207 - 11220 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 11221 - 11239 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 11240 - 11244 [Qed.] 0.027 secs (0.026u,0.s) Chars 11246 - 11486 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) Chars 11487 - 11493 [Proof.] 0. secs (0.u,0.s) -Chars 11496 - 11513 [intros~E~R~A~e~a.] 0. secs (0.u,0.s) -Chars 11514 - 11521 [intros.] 0. secs (0.u,0.s) -Chars 11524 - 11533 [red~in~H.] 0. secs (0.u,0.s) -Chars 11534 - 11538 [red.] 0. secs (0.u,0.s) +Chars 11496 - 11513 [(intros~E~R~A~e~a).] 0. secs (0.u,0.s) +Chars 11514 - 11521 [(intros).] 0. secs (0.u,0.s) +Chars 11524 - 11533 [(red~in~H).] 0. secs (0.u,0.s) +Chars 11534 - 11538 [(red).] 0. secs (0.u,0.s) Chars 11539 - 11549 [step~in~H.] 0. secs (0.u,0.s) -Chars 11550 - 11566 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 11567 - 11573 [inv~H.] 0.007 secs (0.007u,0.s) -Chars 11574 - 11587 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 11550 - 11566 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 11567 - 11573 [(inv~H).] 0.011 secs (0.011u,0.s) +Chars 11574 - 11587 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 11590 - 11596 [subst.] 0. secs (0.u,0.s) -Chars 11599 - 11664 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) -Chars 11665 - 11669 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11599 - 11664 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 11665 - 11669 [Qed.] 0.008 secs (0.007u,0.s) Chars 11671 - 11885 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) Chars 11886 - 11892 [Proof.] 0. secs (0.u,0.s) -Chars 11895 - 11902 [intros.] 0. secs (0.u,0.s) -Chars 11903 - 11908 [step.] 0. secs (0.u,0.s) -Chars 11909 - 11939 [constructor;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 11942 - 11949 [intros.] 0. secs (0.u,0.s) -Chars 11950 - 11957 [inv~H0.] 0.006 secs (0.006u,0.s) -Chars 11958 - 11971 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 11895 - 11902 [(intros).] 0. secs (0.u,0.s) +Chars 11903 - 11908 [step.] 0.001 secs (0.u,0.s) +Chars 11909 - 11939 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 11942 - 11949 [(intros).] 0. secs (0.u,0.s) +Chars 11950 - 11957 [(inv~H0).] 0.007 secs (0.007u,0.s) +Chars 11958 - 11971 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 11974 - 11980 [subst.] 0. secs (0.u,0.s) Chars 11981 - 11986 [auto.] 0. secs (0.u,0.s) -Chars 11987 - 11991 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11987 - 11991 [Qed.] 0.006 secs (0.006u,0.s) Chars 11993 - 12128 [Lemma~event_ans_constr~:~~~for...] 0. secs (0.u,0.s) Chars 12129 - 12135 [Proof.] 0. secs (0.u,0.s) -Chars 12138 - 12145 [intros.] 0. secs (0.u,0.s) -Chars 12148 - 12200 [destruct~(classic_empty~R)~as~...] 0. secs (0.u,0.s) +Chars 12138 - 12145 [(intros).] 0. secs (0.u,0.s) +Chars 12148 - 12200 [(destruct~(classic_empty~R)~as...] 0. secs (0.u,0.s) Chars 12203 - 12204 [-] 0. secs (0.u,0.s) Chars 12205 - 12217 [exists~unit.] 0. secs (0.u,0.s) Chars 12218 - 12239 [exists~(evans~R~e~a).] 0. secs (0.u,0.s) @@ -552,681 +552,681 @@ Chars 12389 - 12409 [Section~Determinize.] 0. secs (0.u,0.s) Chars 12411 - 12468 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) Chars 12470 - 12555 [CoFixpoint~determinize_~(E~:~T...] 0. secs (0.u,0.s) Chars 12556 - 12562 [Proof.] 0. secs (0.u,0.s) -Chars 12565 - 12577 [destruct~ot.] 0. secs (0.u,0.s) +Chars 12565 - 12577 [(destruct~ot).] 0. secs (0.u,0.s) Chars 12580 - 12581 [-] 0. secs (0.u,0.s) -Chars 12582 - 12596 [apply~(Ret~r).] 0. secs (0.u,0.s) +Chars 12582 - 12596 [(apply~(Ret~r)).] 0. secs (0.u,0.s) Chars 12599 - 12600 [-] 0. secs (0.u,0.s) -Chars 12601 - 12646 [apply~(Tau~(determinize_~E~R~(...] 0. secs (0.u,0.s) +Chars 12601 - 12646 [(apply~(Tau~(determinize_~E~R~...] 0. secs (0.u,0.s) Chars 12649 - 12650 [-] 0. secs (0.u,0.s) -Chars 12651 - 12683 [destruct~(classicT~X)~as~[|~f].] 0. secs (0.u,0.s) +Chars 12651 - 12683 [(destruct~(classicT~X)~as~[|~f]).] 0. secs (0.u,0.s) Chars 12688 - 12689 [+] 0. secs (0.u,0.s) -Chars 12690 - 12765 [apply~(Vis~(evans~X~e~x)~(fun~...] 0. secs (0.u,0.s) +Chars 12690 - 12765 [(apply~(Vis~(evans~X~e~x)~(fun...] 0. secs (0.u,0.s) Chars 12770 - 12771 [+] 0. secs (0.u,0.s) -Chars 12772 - 12882 [apply~~(Vis~(evempty~X~(fun~x~...] 0. secs (0.u,0.s) +Chars 12772 - 12882 [(apply~~~(Vis~(evempty~X~(fun~...] 0. secs (0.u,0.s) Chars 12883 - 12891 [Defined.] 0. secs (0.u,0.s) Chars 12893 - 12979 [Definition~determinize~{E}~{R}...] 0. secs (0.u,0.s) Chars 12981 - 12997 [End~Determinize.] 0. secs (0.u,0.s) Chars 13048 - 13165 [Lemma~itree_refine_nonempty~:~...] 0. secs (0.u,0.s) Chars 13166 - 13172 [Proof.] 0. secs (0.u,0.s) -Chars 13175 - 13182 [intros.] 0. secs (0.u,0.s) -Chars 13183 - 13225 [destruct~classicT_inhabited~as...] 0. secs (0.u,0.s) +Chars 13175 - 13182 [(intros).] 0. secs (0.u,0.s) +Chars 13183 - 13225 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) Chars 13228 - 13260 [exists~(determinize~classicT~t).] 0. secs (0.u,0.s) Chars 13261 - 13284 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 13287 - 13306 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13310 - 13317 [intros.] 0. secs (0.u,0.s) -Chars 13318 - 13337 [unfold~determinize.] 0. secs (0.u,0.s) -Chars 13338 - 13351 [desobs~t~Hot.] 0. secs (0.u,0.s) +Chars 13310 - 13317 [(intros).] 0. secs (0.u,0.s) +Chars 13318 - 13337 [(unfold~determinize).] 0. secs (0.u,0.s) +Chars 13338 - 13351 [(desobs~t~Hot).] 0. secs (0.u,0.s) Chars 13354 - 13355 [-] 0. secs (0.u,0.s) -Chars 13356 - 13360 [cbn.] 0. secs (0.u,0.s) +Chars 13356 - 13360 [(cbn).] 0. secs (0.u,0.s) Chars 13361 - 13366 [eret.] 0. secs (0.u,0.s) Chars 13369 - 13370 [-] 0. secs (0.u,0.s) -Chars 13371 - 13375 [cbn.] 0. secs (0.u,0.s) +Chars 13371 - 13375 [(cbn).] 0. secs (0.u,0.s) Chars 13376 - 13388 [constructor.] 0. secs (0.u,0.s) -Chars 13389 - 13399 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13389 - 13399 [(apply~CIH).] 0. secs (0.u,0.s) Chars 13403 - 13404 [-] 0. secs (0.u,0.s) -Chars 13405 - 13420 [unfold~observe.] 0. secs (0.u,0.s) -Chars 13421 - 13425 [cbn.] 0. secs (0.u,0.s) -Chars 13426 - 13448 [destruct~(classicT~_).] 0. secs (0.u,0.s) +Chars 13405 - 13420 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 13421 - 13425 [(cbn).] 0. secs (0.u,0.s) +Chars 13426 - 13448 [(destruct~(classicT~_)).] 0.001 secs (0.001u,0.s) Chars 13453 - 13454 [+] 0. secs (0.u,0.s) -Chars 13455 - 13485 [constructor;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 13486 - 13493 [intros.] 0. secs (0.u,0.s) -Chars 13500 - 13512 [inversion~H.] 0.003 secs (0.003u,0.s) -Chars 13513 - 13526 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 13455 - 13485 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 13486 - 13493 [(intros).] 0. secs (0.u,0.s) +Chars 13500 - 13512 [(inversion~H).] 0.002 secs (0.002u,0.s) +Chars 13513 - 13526 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 13533 - 13539 [subst.] 0. secs (0.u,0.s) -Chars 13540 - 13550 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13540 - 13550 [(apply~CIH).] 0. secs (0.u,0.s) Chars 13555 - 13556 [+] 0. secs (0.u,0.s) -Chars 13557 - 13586 [constructor;~auto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 13587 - 13594 [intros.] 0. secs (0.u,0.s) +Chars 13557 - 13586 [(constructor;~auto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 13587 - 13594 [(intros).] 0. secs (0.u,0.s) Chars 13595 - 13609 [contradiction.] 0. secs (0.u,0.s) -Chars 13610 - 13614 [Qed.] 0.006 secs (0.006u,0.s) +Chars 13610 - 13614 [Qed.] 0.011 secs (0.011u,0.s) Chars 13616 - 14338 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) Chars 14339 - 14345 [Proof.] 0. secs (0.u,0.s) -Chars 14348 - 14355 [intros.] 0. secs (0.u,0.s) -Chars 14358 - 14403 [destruct~(classic_empty~A)~as~...] 0. secs (0.u,0.s) +Chars 14348 - 14355 [(intros).] 0. secs (0.u,0.s) +Chars 14358 - 14403 [(destruct~(classic_empty~A)~as...] 0. secs (0.u,0.s) Chars 14406 - 14407 [-] 0. secs (0.u,0.s) Chars 14408 - 14481 [specialize~trace_refine_vis_ad...] 0. secs (0.u,0.s) -Chars 14486 - 14518 [assert~(exists~b,~b~⊑~k~a).] 0. secs (0.u,0.s) +Chars 14486 - 14518 [(assert~(exists~b,~b~⊑~k~a)).] 0. secs (0.u,0.s) Chars 14523 - 14524 [{] 0. secs (0.u,0.s) -Chars 14525 - 14553 [apply~itree_refine_nonempty.] 0. secs (0.u,0.s) +Chars 14525 - 14553 [(apply~itree_refine_nonempty).] 0. secs (0.u,0.s) Chars 14554 - 14555 [}] 0. secs (0.u,0.s) -Chars 14560 - 14582 [destruct~H~as~[b~Hbk].] 0. secs (0.u,0.s) -Chars 14583 - 14631 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) -Chars 14636 - 14658 [rewrite~<-~Ht1~in~Hbk.] 0.002 secs (0.002u,0.s) -Chars 14663 - 14687 [apply~H0~in~Hbk~as~Hbk0.] 0. secs (0.u,0.s) -Chars 14692 - 14711 [rewrite~Ht1~in~Hbk.] 0.004 secs (0.004u,0.s) -Chars 14712 - 14732 [rewrite~Ht2~in~Hbk0.] 0.002 secs (0.002u,0.s) -Chars 14737 - 14746 [sinv~Hbk.] 0.011 secs (0.011u,0.s) -Chars 14751 - 14761 [sinv~Hbk0.] 0.016 secs (0.016u,0.s) +Chars 14560 - 14582 [(destruct~H~as~[b~Hbk]).] 0. secs (0.u,0.s) +Chars 14583 - 14631 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) +Chars 14636 - 14658 [(rewrite~<-~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) +Chars 14663 - 14687 [(apply~H0~in~Hbk~as~Hbk0).] 0. secs (0.u,0.s) +Chars 14692 - 14711 [(rewrite~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) +Chars 14712 - 14732 [(rewrite~Ht2~in~Hbk0).] 0.003 secs (0.003u,0.s) +Chars 14737 - 14746 [sinv~Hbk.] 0.016 secs (0.016u,0.s) +Chars 14751 - 14761 [sinv~Hbk0.] 0.023 secs (0.023u,0.s) Chars 14762 - 14775 [ddestruction.] 0.008 secs (0.008u,0.s) Chars 14780 - 14786 [subst.] 0. secs (0.u,0.s) -Chars 14791 - 14804 [inversion~H8.] 0.001 secs (0.001u,0.s) -Chars 14805 - 14818 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 14791 - 14804 [(inversion~H8).] 0.002 secs (0.002u,0.s) +Chars 14805 - 14818 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 14823 - 14829 [subst.] 0. secs (0.u,0.s) Chars 14830 - 14842 [constructor.] 0. secs (0.u,0.s) -Chars 14847 - 14854 [intros.] 0. secs (0.u,0.s) -Chars 14855 - 14873 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 14878 - 14885 [intros.] 0. secs (0.u,0.s) -Chars 14886 - 14911 [setoid_rewrite~Ht1~in~H0.] 0.017 secs (0.016u,0.s) -Chars 14912 - 14937 [setoid_rewrite~Ht2~in~H0.] 0.046 secs (0.046u,0.s) -Chars 14942 - 14956 [split;~intros.] 0. secs (0.u,0.s) +Chars 14847 - 14854 [(intros).] 0. secs (0.u,0.s) +Chars 14855 - 14873 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 14878 - 14885 [(intros).] 0. secs (0.u,0.s) +Chars 14886 - 14911 [setoid_rewrite~Ht1~in~H0.] 0.024 secs (0.023u,0.s) +Chars 14912 - 14937 [setoid_rewrite~Ht2~in~H0.] 0.064 secs (0.063u,0.001s) +Chars 14942 - 14956 [(split;~intros).] 0. secs (0.u,0.s) Chars 14961 - 14962 [+] 0. secs (0.u,0.s) -Chars 14963 - 15009 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) -Chars 15010 - 15024 [apply~H0~in~H.] 0. secs (0.u,0.s) -Chars 15031 - 15063 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) +Chars 14963 - 15009 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) +Chars 15010 - 15024 [(apply~H0~in~H).] 0. secs (0.u,0.s) +Chars 15031 - 15063 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) Chars 15064 - 15069 [auto.] 0. secs (0.u,0.s) Chars 15074 - 15075 [+] 0. secs (0.u,0.s) -Chars 15076 - 15122 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) -Chars 15123 - 15137 [apply~H0~in~H.] 0. secs (0.u,0.s) -Chars 15144 - 15176 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) +Chars 15076 - 15122 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) +Chars 15123 - 15137 [(apply~H0~in~H).] 0. secs (0.u,0.s) +Chars 15144 - 15176 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) Chars 15177 - 15182 [auto.] 0. secs (0.u,0.s) Chars 15185 - 15186 [-] 0. secs (0.u,0.s) -Chars 15187 - 15250 [set~(ke~:=~fun~v~:~void~=>~mat...] 0. secs (0.u,0.s) -Chars 15255 - 15290 [set~(b~:=~Vis~(evempty~A~Ha~e)...] 0. secs (0.u,0.s) -Chars 15295 - 15313 [assert~(b~⊑~t1).] 0. secs (0.u,0.s) +Chars 15187 - 15250 [(set~(ke~:=~fun~v~:~void~=>~ma...] 0. secs (0.u,0.s) +Chars 15255 - 15290 [(set~(b~:=~Vis~(evempty~A~Ha~e...] 0. secs (0.u,0.s) +Chars 15295 - 15313 [(assert~(b~⊑~t1)).] 0. secs (0.u,0.s) Chars 15318 - 15319 [{] 0. secs (0.u,0.s) -Chars 15326 - 15335 [unfold~b.] 0. secs (0.u,0.s) -Chars 15336 - 15348 [rewrite~Ht1.] 0.004 secs (0.004u,0.s) -Chars 15349 - 15354 [step.] 0. secs (0.u,0.s) -Chars 15355 - 15359 [cbn.] 0. secs (0.u,0.s) +Chars 15326 - 15335 [(unfold~b).] 0. secs (0.u,0.s) +Chars 15336 - 15348 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) +Chars 15349 - 15354 [step.] 0.001 secs (0.001u,0.s) +Chars 15355 - 15359 [(cbn).] 0. secs (0.u,0.s) Chars 15366 - 15378 [constructor.] 0. secs (0.u,0.s) Chars 15379 - 15380 [{] 0. secs (0.u,0.s) -Chars 15381 - 15391 [apply~ree.] 0. secs (0.u,0.s) +Chars 15381 - 15391 [(apply~ree).] 0. secs (0.u,0.s) Chars 15392 - 15393 [}] 0. secs (0.u,0.s) Chars 15394 - 15395 [{] 0. secs (0.u,0.s) -Chars 15396 - 15406 [intros~[].] 0. secs (0.u,0.s) +Chars 15396 - 15406 [(intros~[]).] 0. secs (0.u,0.s) Chars 15407 - 15408 [}] 0. secs (0.u,0.s) Chars 15413 - 15414 [}] 0. secs (0.u,0.s) -Chars 15419 - 15439 [apply~H0~in~H~as~H1.] 0. secs (0.u,0.s) -Chars 15440 - 15454 [unfold~b~in~*.] 0. secs (0.u,0.s) +Chars 15419 - 15439 [(apply~H0~in~H~as~H1).] 0. secs (0.u,0.s) +Chars 15440 - 15454 [(unfold~b~in~*).] 0. secs (0.u,0.s) Chars 15455 - 15463 [clear~b.] 0. secs (0.u,0.s) -Chars 15468 - 15485 [rewrite~Ht1~in~H.] 0.002 secs (0.002u,0.s) -Chars 15486 - 15504 [rewrite~Ht2~in~H1.] 0.002 secs (0.002u,0.s) -Chars 15509 - 15516 [sinv~H.] 0.012 secs (0.012u,0.s) -Chars 15517 - 15525 [sinv~H1.] 0.015 secs (0.015u,0.s) -Chars 15526 - 15539 [ddestruction.] 0.007 secs (0.007u,0.s) +Chars 15468 - 15485 [(rewrite~Ht1~in~H).] 0.003 secs (0.003u,0.s) +Chars 15486 - 15504 [(rewrite~Ht2~in~H1).] 0.005 secs (0.005u,0.s) +Chars 15509 - 15516 [sinv~H.] 0.016 secs (0.016u,0.s) +Chars 15517 - 15525 [sinv~H1.] 0.022 secs (0.022u,0.s) +Chars 15526 - 15539 [ddestruction.] 0.008 secs (0.008u,0.s) Chars 15544 - 15550 [subst.] 0. secs (0.u,0.s) -Chars 15551 - 15564 [inversion~H6.] 0.001 secs (0.001u,0.s) -Chars 15565 - 15578 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 15551 - 15564 [(inversion~H6).] 0.002 secs (0.002u,0.s) +Chars 15565 - 15578 [ddestruction.] 0.007 secs (0.007u,0.s) Chars 15583 - 15595 [constructor.] 0. secs (0.u,0.s) -Chars 15600 - 15607 [intros.] 0. secs (0.u,0.s) -Chars 15608 - 15619 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 15624 - 15631 [intros.] 0. secs (0.u,0.s) -Chars 15632 - 15657 [setoid_rewrite~Ht1~in~H0.] 0.017 secs (0.016u,0.s) -Chars 15658 - 15683 [setoid_rewrite~Ht2~in~H0.] 0.046 secs (0.046u,0.s) -Chars 15688 - 15717 [split;~intros;~contradiction.] 0.001 secs (0.001u,0.s) -Chars 15718 - 15722 [Qed.] 0.036 secs (0.036u,0.s) -Chars 15724 - 15953 [Lemma~trace_refine_vis~:~~~for...] 0. secs (0.u,0.s) +Chars 15600 - 15607 [(intros).] 0. secs (0.u,0.s) +Chars 15608 - 15619 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15624 - 15631 [(intros).] 0. secs (0.u,0.s) +Chars 15632 - 15657 [setoid_rewrite~Ht1~in~H0.] 0.024 secs (0.023u,0.s) +Chars 15658 - 15683 [setoid_rewrite~Ht2~in~H0.] 0.065 secs (0.064u,0.001s) +Chars 15688 - 15717 [(split;~intros;~contradiction).] 0. secs (0.u,0.s) +Chars 15718 - 15722 [Qed.] 0.05 secs (0.049u,0.s) +Chars 15724 - 15953 [Lemma~trace_refine_vis~:~~~for...] 0.001 secs (0.001u,0.s) Chars 15954 - 15960 [Proof.] 0. secs (0.u,0.s) -Chars 15963 - 15970 [intros.] 0. secs (0.u,0.s) +Chars 15963 - 15970 [(intros).] 0. secs (0.u,0.s) Chars 15971 - 15981 [step~in~H.] 0. secs (0.u,0.s) -Chars 15982 - 15998 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 16002 - 16024 [dependent~induction~H.] 0.036 secs (0.036u,0.s) +Chars 15982 - 15998 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 16002 - 16024 [dependent~induction~H.] 0.046 secs (0.046u,0.s) Chars 16027 - 16028 [-] 0. secs (0.u,0.s) Chars 16029 - 16039 [exists~A0.] 0. secs (0.u,0.s) Chars 16040 - 16050 [exists~e1.] 0. secs (0.u,0.s) Chars 16051 - 16061 [exists~k1.] 0. secs (0.u,0.s) Chars 16066 - 16097 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16098 - 16117 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) -Chars 16122 - 16133 [rewrite~Hb.] 0.001 secs (0.001u,0.s) +Chars 16098 - 16117 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) +Chars 16122 - 16133 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) Chars 16134 - 16146 [reflexivity.] 0. secs (0.u,0.s) Chars 16149 - 16150 [-] 0. secs (0.u,0.s) -Chars 16151 - 16257 [enough~~(exists~(X~:~Type)~(e0...] 0. secs (0.u,0.s) +Chars 16151 - 16257 [(enough~~~(exists~(X~:~Type)~(...] 0. secs (0.u,0.s) Chars 16262 - 16263 [{] 0. secs (0.u,0.s) -Chars 16270 - 16306 [destruct~H0~as~[X~[e0~[k0~Ht1]]].] 0. secs (0.u,0.s) +Chars 16270 - 16306 [(destruct~H0~as~[X~[e0~[k0~Ht1...] 0. secs (0.u,0.s) Chars 16313 - 16322 [exists~X.] 0. secs (0.u,0.s) Chars 16323 - 16333 [exists~e0.] 0. secs (0.u,0.s) Chars 16334 - 16344 [exists~k0.] 0. secs (0.u,0.s) Chars 16351 - 16382 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16383 - 16402 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) -Chars 16403 - 16414 [rewrite~Hb.] 0.001 secs (0.001u,0.s) -Chars 16421 - 16438 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 16383 - 16402 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) +Chars 16403 - 16414 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) +Chars 16421 - 16438 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 16439 - 16444 [auto.] 0. secs (0.u,0.s) Chars 16449 - 16450 [}] 0. secs (0.u,0.s) -Chars 16455 - 16477 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 16478 - 16482 [Qed.] 0.029 secs (0.029u,0.s) -Chars 16484 - 16730 [Lemma~trace_refine_vis_l~:~~~f...] 0. secs (0.u,0.s) +Chars 16455 - 16477 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16478 - 16482 [Qed.] 0.035 secs (0.034u,0.s) +Chars 16484 - 16730 [Lemma~trace_refine_vis_l~:~~~f...] 0.001 secs (0.001u,0.s) Chars 16731 - 16737 [Proof.] 0. secs (0.u,0.s) -Chars 16740 - 16747 [intros.] 0. secs (0.u,0.s) +Chars 16740 - 16747 [(intros).] 0. secs (0.u,0.s) Chars 16748 - 16758 [step~in~H.] 0. secs (0.u,0.s) -Chars 16759 - 16775 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 16779 - 16801 [dependent~induction~H.] 0.029 secs (0.029u,0.s) +Chars 16759 - 16775 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 16779 - 16801 [dependent~induction~H.] 0.045 secs (0.044u,0.s) Chars 16804 - 16805 [-] 0. secs (0.u,0.s) Chars 16806 - 16815 [exists~B.] 0. secs (0.u,0.s) Chars 16816 - 16826 [exists~e2.] 0. secs (0.u,0.s) Chars 16828 - 16838 [exists~k2.] 0. secs (0.u,0.s) Chars 16839 - 16870 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 16875 - 16894 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 16895 - 16906 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 16875 - 16894 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 16895 - 16906 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) Chars 16907 - 16919 [reflexivity.] 0. secs (0.u,0.s) Chars 16922 - 16923 [-] 0. secs (0.u,0.s) -Chars 16924 - 16942 [assert~(t2~≈~t).] 0. secs (0.u,0.s) +Chars 16924 - 16942 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) Chars 16947 - 16948 [{] 0. secs (0.u,0.s) Chars 16955 - 16980 [specialize~(itree_eta~t).] 0. secs (0.u,0.s) -Chars 16981 - 16994 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 16995 - 17002 [intros.] 0. secs (0.u,0.s) -Chars 17009 - 17020 [rewrite~H0.] 0.004 secs (0.004u,0.s) -Chars 17021 - 17038 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 16981 - 16994 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 16995 - 17002 [(intros).] 0. secs (0.u,0.s) +Chars 17009 - 17020 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 17021 - 17038 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 17039 - 17051 [reflexivity.] 0. secs (0.u,0.s) Chars 17056 - 17057 [}] 0. secs (0.u,0.s) -Chars 17062 - 17083 [setoid_rewrite~~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 17084 - 17106 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 17107 - 17111 [Qed.] 0.026 secs (0.026u,0.s) +Chars 17062 - 17083 [setoid_rewrite~~<-~H0.] 0.002 secs (0.002u,0.s) +Chars 17084 - 17106 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 17107 - 17111 [Qed.] 0.038 secs (0.037u,0.s) Chars 17113 - 17318 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) Chars 17319 - 17325 [Proof.] 0. secs (0.u,0.s) -Chars 17328 - 17335 [intros.] 0. secs (0.u,0.s) -Chars 17336 - 17348 [induction~H.] 0. secs (0.u,0.s) +Chars 17328 - 17335 [(intros).] 0. secs (0.u,0.s) +Chars 17336 - 17348 [(induction~H).] 0. secs (0.u,0.s) Chars 17351 - 17352 [-] 0. secs (0.u,0.s) Chars 17353 - 17368 [exists~(Ret~r).] 0. secs (0.u,0.s) -Chars 17369 - 17379 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 17369 - 17379 [(rewrite~H).] 0.003 secs (0.003u,0.s) Chars 17380 - 17386 [split.] 0. secs (0.u,0.s) Chars 17391 - 17392 [+] 0. secs (0.u,0.s) Chars 17393 - 17405 [constructor.] 0. secs (0.u,0.s) Chars 17406 - 17418 [reflexivity.] 0. secs (0.u,0.s) Chars 17423 - 17424 [+] 0. secs (0.u,0.s) -Chars 17425 - 17448 [apply~trace_refine_ret.] 0. secs (0.u,0.s) +Chars 17425 - 17448 [(apply~trace_refine_ret).] 0. secs (0.u,0.s) Chars 17451 - 17452 [-] 0. secs (0.u,0.s) -Chars 17453 - 17500 [destruct~IHmay_converge~as~[br...] 0. secs (0.u,0.s) +Chars 17453 - 17500 [(destruct~IHmay_converge~as~[b...] 0. secs (0.u,0.s) Chars 17505 - 17548 [exists~(Vis~(evans~B~e~b)~(fun...] 0. secs (0.u,0.s) Chars 17549 - 17555 [split.] 0. secs (0.u,0.s) Chars 17560 - 17561 [+] 0. secs (0.u,0.s) -Chars 17562 - 17595 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 17562 - 17595 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) Chars 17596 - 17602 [eauto.] 0. secs (0.u,0.s) Chars 17603 - 17612 [Unshelve.] 0. secs (0.u,0.s) Chars 17613 - 17622 [exact~tt.] 0. secs (0.u,0.s) Chars 17627 - 17628 [+] 0. secs (0.u,0.s) -Chars 17629 - 17639 [rewrite~H.] 0.002 secs (0.002u,0.s) -Chars 17640 - 17667 [apply~trace_refine_vis_add.] 0. secs (0.u,0.s) +Chars 17629 - 17639 [(rewrite~H).] 0.004 secs (0.004u,0.s) +Chars 17640 - 17667 [(apply~trace_refine_vis_add).] 0. secs (0.u,0.s) Chars 17668 - 17673 [auto.] 0. secs (0.u,0.s) -Chars 17674 - 17678 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17674 - 17678 [Qed.] 0.002 secs (0.002u,0.s) Chars 17680 - 17886 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) Chars 17887 - 17893 [Proof.] 0. secs (0.u,0.s) -Chars 17896 - 17903 [intros.] 0. secs (0.u,0.s) +Chars 17896 - 17903 [(intros).] 0. secs (0.u,0.s) Chars 17904 - 17927 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 17928 - 17948 [induction~H;~intros.] 0. secs (0.u,0.s) +Chars 17928 - 17948 [(induction~H;~intros).] 0. secs (0.u,0.s) Chars 17951 - 17952 [-] 0. secs (0.u,0.s) -Chars 17953 - 17969 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) -Chars 17970 - 18005 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 18010 - 18021 [rewrite~H0.] 0.003 secs (0.003u,0.s) +Chars 17953 - 17969 [(rewrite~H~in~H0).] 0.006 secs (0.005u,0.s) +Chars 17970 - 18005 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 18010 - 18021 [(rewrite~H0).] 0.004 secs (0.004u,0.s) Chars 18022 - 18034 [constructor.] 0. secs (0.u,0.s) Chars 18035 - 18047 [reflexivity.] 0. secs (0.u,0.s) Chars 18050 - 18051 [-] 0. secs (0.u,0.s) -Chars 18052 - 18068 [rewrite~H~in~H1.] 0.002 secs (0.002u,0.s) -Chars 18069 - 18107 [apply~trace_refine_vis_l~in~H1...] 0. secs (0.u,0.s) -Chars 18112 - 18148 [destruct~Ht0~as~[X~[e0~[k0~Ht0...] 0. secs (0.u,0.s) -Chars 18153 - 18171 [rewrite~Ht0~in~H1.] 0.007 secs (0.007u,0.s) -Chars 18172 - 18180 [sinv~H1.] 0.008 secs (0.008u,0.s) +Chars 18052 - 18068 [(rewrite~H~in~H1).] 0.003 secs (0.003u,0.s) +Chars 18069 - 18107 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 18112 - 18148 [(destruct~Ht0~as~[X~[e0~[k0~Ht...] 0. secs (0.u,0.s) +Chars 18153 - 18171 [(rewrite~Ht0~in~H1).] 0.003 secs (0.003u,0.s) +Chars 18172 - 18180 [sinv~H1.] 0.011 secs (0.011u,0.s) Chars 18181 - 18187 [subst.] 0. secs (0.u,0.s) -Chars 18192 - 18205 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 18192 - 18205 [ddestruction.] 0.006 secs (0.006u,0.s) Chars 18206 - 18212 [subst.] 0. secs (0.u,0.s) -Chars 18213 - 18225 [rewrite~Ht0.] 0.003 secs (0.003u,0.s) -Chars 18230 - 18290 [inversion~H4;~subst;~ddestruct...] 0.007 secs (0.006u,0.s) -Chars 18295 - 18328 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 18213 - 18225 [(rewrite~Ht0).] 0.005 secs (0.005u,0.s) +Chars 18230 - 18290 [(inversion~H4;~subst;~ddestruc...] 0.008 secs (0.008u,0.s) +Chars 18295 - 18328 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) Chars 18329 - 18338 [Unshelve.] 0. secs (0.u,0.s) Chars 18339 - 18351 [2:~exact~a.] 0. secs (0.u,0.s) -Chars 18356 - 18377 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 18356 - 18377 [(apply~IHmay_converge).] 0. secs (0.u,0.s) Chars 18383 - 18404 [specialize~(H9~tt~a).] 0. secs (0.u,0.s) -Chars 18405 - 18454 [assert~(RAnsRef~E~unit~X~(evan...] 0. secs (0.u,0.s) +Chars 18405 - 18454 [(assert~(RAnsRef~E~unit~X~(eva...] 0. secs (0.u,0.s) Chars 18459 - 18471 [constructor.] 0. secs (0.u,0.s) -Chars 18472 - 18487 [apply~H9~in~H1.] 0. secs (0.u,0.s) -Chars 18488 - 18499 [destruct~b.] 0. secs (0.u,0.s) +Chars 18472 - 18487 [(apply~H9~in~H1).] 0. secs (0.u,0.s) +Chars 18488 - 18499 [(destruct~b).] 0. secs (0.u,0.s) Chars 18500 - 18505 [auto.] 0. secs (0.u,0.s) -Chars 18506 - 18510 [Qed.] 0.01 secs (0.01u,0.s) +Chars 18506 - 18510 [Qed.] 0.017 secs (0.017u,0.s) Chars 18512 - 18701 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) Chars 18702 - 18708 [Proof.] 0. secs (0.u,0.s) -Chars 18711 - 18722 [intros~E~R.] 0. secs (0.u,0.s) -Chars 18723 - 18749 [unfold~all_infinite~at~-~1.] 0. secs (0.u,0.s) +Chars 18711 - 18722 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 18723 - 18749 [(unfold~all_infinite~at~-~1).] 0. secs (0.u,0.s) Chars 18753 - 18771 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18775 - 18782 [intros.] 0. secs (0.u,0.s) +Chars 18775 - 18782 [(intros).] 0. secs (0.u,0.s) Chars 18783 - 18793 [step~in~H.] 0. secs (0.u,0.s) Chars 18794 - 18805 [step~in~H0.] 0. secs (0.u,0.s) -Chars 18806 - 18838 [repeat~red~in~H,~H0;~repeat~red.] 0. secs (0.u,0.s) -Chars 18844 - 18867 [dependent~induction~H0.] 0.032 secs (0.032u,0.s) +Chars 18806 - 18838 [(repeat~red~in~H,~H0;~repeat~r...] 0. secs (0.u,0.s) +Chars 18844 - 18867 [dependent~induction~H0.] 0.04 secs (0.04u,0.s) Chars 18870 - 18871 [-] 0. secs (0.u,0.s) -Chars 18872 - 18890 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 18891 - 18897 [inv~H.] 0. secs (0.u,0.s) +Chars 18872 - 18890 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 18891 - 18897 [(inv~H).] 0. secs (0.u,0.s) Chars 18901 - 18902 [-] 0. secs (0.u,0.s) -Chars 18903 - 18917 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 18903 - 18917 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 18918 - 18930 [constructor.] 0. secs (0.u,0.s) -Chars 18931 - 18949 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 18954 - 18972 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 18973 - 18979 [inv~H.] 0. secs (0.u,0.s) +Chars 18931 - 18949 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 18954 - 18972 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 18973 - 18979 [(inv~H).] 0. secs (0.u,0.s) Chars 18982 - 18983 [-] 0. secs (0.u,0.s) -Chars 18984 - 18998 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 18999 - 19017 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 18984 - 18998 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 18999 - 19017 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) Chars 19018 - 19030 [constructor.] 0. secs (0.u,0.s) -Chars 19031 - 19037 [inv~H.] 0.006 secs (0.006u,0.s) -Chars 19042 - 19055 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 19031 - 19037 [(inv~H).] 0.011 secs (0.011u,0.s) +Chars 19042 - 19055 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 19056 - 19062 [subst.] 0. secs (0.u,0.s) -Chars 19063 - 19070 [intros.] 0. secs (0.u,0.s) -Chars 19076 - 19123 [inv~H1;~subst;~ddestruction;~t...] 0.013 secs (0.012u,0.s) -Chars 19124 - 19136 [destruct~b0.] 0. secs (0.u,0.s) -Chars 19141 - 19166 [eapply~CIH;~try~apply~H3.] 0. secs (0.u,0.s) +Chars 19063 - 19070 [(intros).] 0. secs (0.u,0.s) +Chars 19076 - 19123 [(inv~H1;~subst;~ddestruction;~...] 0.011 secs (0.011u,0.s) +Chars 19124 - 19136 [(destruct~b0).] 0. secs (0.u,0.s) +Chars 19141 - 19166 [(eapply~CIH;~try~apply~H3).] 0. secs (0.u,0.s) Chars 19171 - 19192 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) -Chars 19193 - 19240 [assert~(RAnsRef~_~_~_~(evans~B...] 0. secs (0.u,0.s) +Chars 19193 - 19240 [(assert~(RAnsRef~_~_~_~(evans~...] 0. secs (0.u,0.s) Chars 19245 - 19257 [constructor.] 0. secs (0.u,0.s) -Chars 19258 - 19272 [apply~H0~in~H.] 0. secs (0.u,0.s) +Chars 19258 - 19272 [(apply~H0~in~H).] 0. secs (0.u,0.s) Chars 19273 - 19279 [eauto.] 0. secs (0.u,0.s) Chars 19282 - 19283 [-] 0. secs (0.u,0.s) -Chars 19284 - 19297 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 19284 - 19297 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 19298 - 19310 [constructor.] 0. secs (0.u,0.s) -Chars 19311 - 19329 [apply~(b_chain~c).] 0. secs (0.u,0.s) -Chars 19330 - 19352 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 19311 - 19329 [(apply~(b_chain~c)).] 0. secs (0.u,0.s) +Chars 19330 - 19352 [(eapply~IHruttF;~eauto).] 0.005 secs (0.005u,0.s) Chars 19355 - 19356 [-] 0. secs (0.u,0.s) -Chars 19357 - 19378 [eapply~IHruttF;~auto.] 0.001 secs (0.001u,0.s) -Chars 19379 - 19397 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 19398 - 19404 [inv~H.] 0.005 secs (0.005u,0.s) +Chars 19357 - 19378 [(eapply~IHruttF;~auto).] 0.001 secs (0.001u,0.s) +Chars 19379 - 19397 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 19398 - 19404 [(inv~H).] 0.007 secs (0.007u,0.s) Chars 19409 - 19424 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 19426 - 19430 [Qed.] 0.035 secs (0.035u,0.s) +Chars 19426 - 19430 [Qed.] 0.049 secs (0.048u,0.s) Chars 19432 - 19717 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) Chars 19718 - 19724 [Proof.] 0. secs (0.u,0.s) -Chars 19727 - 19734 [intros.] 0. secs (0.u,0.s) +Chars 19727 - 19734 [(intros).] 0. secs (0.u,0.s) Chars 19735 - 19758 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 19759 - 19789 [dependent~induction~H;~intros.] 0. secs (0.u,0.s) +Chars 19759 - 19789 [(dependent~induction~H;~intros).] 0. secs (0.u,0.s) Chars 19792 - 19793 [-] 0. secs (0.u,0.s) -Chars 19794 - 19804 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 19805 - 19821 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) -Chars 19822 - 19857 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 19862 - 19873 [rewrite~H0.] 0.003 secs (0.003u,0.s) -Chars 19874 - 19900 [repeat~rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 19794 - 19804 [(rewrite~H).] 0.005 secs (0.005u,0.s) +Chars 19805 - 19821 [(rewrite~H~in~H0).] 0.009 secs (0.009u,0.s) +Chars 19822 - 19857 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 19862 - 19873 [(rewrite~H0).] 0.004 secs (0.004u,0.s) +Chars 19874 - 19900 [(repeat~rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) Chars 19901 - 19906 [auto.] 0. secs (0.u,0.s) Chars 19909 - 19910 [-] 0. secs (0.u,0.s) Chars 19911 - 19942 [specialize~(IHmay_converge~H1).] 0. secs (0.u,0.s) -Chars 19947 - 19963 [rewrite~H~in~H2.] 0.002 secs (0.002u,0.s) -Chars 19964 - 20001 [apply~trace_refine_vis_l~in~H2...] 0. secs (0.u,0.s) -Chars 20006 - 20040 [destruct~Ht~as~[X~[e0~[k0~Ht]]].] 0. secs (0.u,0.s) -Chars 20045 - 20062 [rewrite~Ht~in~H2.] 0.002 secs (0.002u,0.s) +Chars 19947 - 19963 [(rewrite~H~in~H2).] 0.003 secs (0.003u,0.s) +Chars 19964 - 20001 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 20006 - 20040 [(destruct~Ht~as~[X~[e0~[k0~Ht]...] 0. secs (0.u,0.s) +Chars 20045 - 20062 [(rewrite~Ht~in~H2).] 0.003 secs (0.003u,0.s) Chars 20063 - 20074 [step~in~H2.] 0. secs (0.u,0.s) -Chars 20075 - 20092 [repeat~red~in~H2.] 0. secs (0.u,0.s) -Chars 20093 - 20100 [inv~H2.] 0.008 secs (0.008u,0.s) -Chars 20106 - 20119 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 20075 - 20092 [(repeat~red~in~H2).] 0. secs (0.u,0.s) +Chars 20093 - 20100 [(inv~H2).] 0.014 secs (0.013u,0.s) +Chars 20106 - 20119 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 20120 - 20126 [subst.] 0. secs (0.u,0.s) -Chars 20131 - 20175 [inversion~H5;~subst;~ddestruct...] 0.009 secs (0.009u,0.s) -Chars 20181 - 20191 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 20192 - 20203 [rewrite~Ht.] 0.004 secs (0.004u,0.s) -Chars 20208 - 20213 [step.] 0. secs (0.u,0.s) -Chars 20214 - 20225 [repeat~red.] 0. secs (0.u,0.s) -Chars 20226 - 20230 [cbn.] 0. secs (0.u,0.s) -Chars 20231 - 20249 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 20254 - 20261 [intros.] 0. secs (0.u,0.s) -Chars 20262 - 20278 [apply~H10~in~H2.] 0. secs (0.u,0.s) -Chars 20283 - 20295 [destruct~a0.] 0. secs (0.u,0.s) -Chars 20296 - 20307 [destruct~b.] 0. secs (0.u,0.s) -Chars 20308 - 20329 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 20131 - 20175 [(inversion~H5;~subst;~ddestruc...] 0.012 secs (0.012u,0.s) +Chars 20181 - 20191 [(rewrite~H).] 0.009 secs (0.009u,0.s) +Chars 20192 - 20203 [(rewrite~Ht).] 0.004 secs (0.004u,0.s) +Chars 20208 - 20213 [step.] 0.001 secs (0.001u,0.s) +Chars 20214 - 20225 [(repeat~red).] 0. secs (0.u,0.s) +Chars 20226 - 20230 [(cbn).] 0. secs (0.u,0.s) +Chars 20231 - 20249 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 20254 - 20261 [(intros).] 0. secs (0.u,0.s) +Chars 20262 - 20278 [(apply~H10~in~H2).] 0. secs (0.u,0.s) +Chars 20283 - 20295 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 20296 - 20307 [(destruct~b).] 0. secs (0.u,0.s) +Chars 20308 - 20329 [(apply~IHmay_converge).] 0. secs (0.u,0.s) Chars 20330 - 20335 [auto.] 0. secs (0.u,0.s) -Chars 20336 - 20340 [Qed.] 0.015 secs (0.015u,0.s) +Chars 20336 - 20340 [Qed.] 0.024 secs (0.023u,0.s) Chars 20342 - 20600 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) Chars 20601 - 20607 [Proof.] 0. secs (0.u,0.s) -Chars 20610 - 20631 [intros~E~R~S~b~t~f~g.] 0. secs (0.u,0.s) +Chars 20610 - 20631 [(intros~E~R~S~b~t~f~g).] 0. secs (0.u,0.s) Chars 20632 - 20655 [generalize~dependent~b.] 0. secs (0.u,0.s) Chars 20656 - 20679 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 20682 - 20686 [red.] 0. secs (0.u,0.s) +Chars 20682 - 20686 [(red).] 0. secs (0.u,0.s) Chars 20687 - 20706 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20707 - 20714 [intros.] 0. secs (0.u,0.s) +Chars 20707 - 20714 [(intros).] 0. secs (0.u,0.s) Chars 20717 - 20728 [step~in~H0.] 0. secs (0.u,0.s) Chars 20732 - 20742 [step~in~H.] 0. secs (0.u,0.s) -Chars 20743 - 20763 [repeat~red~in~H0,~H.] 0. secs (0.u,0.s) -Chars 20767 - 20790 [dependent~induction~H0.] 0.048 secs (0.048u,0.s) +Chars 20743 - 20763 [(repeat~red~in~H0,~H).] 0. secs (0.u,0.s) +Chars 20767 - 20790 [dependent~induction~H0.] 0.063 secs (0.063u,0.s) Chars 20793 - 20794 [-] 0. secs (0.u,0.s) -Chars 20795 - 20814 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) -Chars 20815 - 20821 [inv~H.] 0. secs (0.u,0.s) +Chars 20795 - 20814 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) +Chars 20815 - 20821 [(inv~H).] 0.001 secs (0.001u,0.s) Chars 20824 - 20825 [-] 0. secs (0.u,0.s) -Chars 20826 - 20841 [unfold~observe.] 0. secs (0.u,0.s) -Chars 20842 - 20846 [cbn.] 0. secs (0.u,0.s) -Chars 20847 - 20861 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 20862 - 20875 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 20880 - 20884 [cbn.] 0. secs (0.u,0.s) +Chars 20826 - 20841 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 20842 - 20846 [(cbn).] 0. secs (0.u,0.s) +Chars 20847 - 20861 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 20862 - 20875 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 20880 - 20884 [(cbn).] 0. secs (0.u,0.s) Chars 20885 - 20897 [constructor.] 0. secs (0.u,0.s) -Chars 20898 - 20914 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 20919 - 20938 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) -Chars 20939 - 20945 [inv~H.] 0. secs (0.u,0.s) +Chars 20898 - 20914 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 20919 - 20938 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) +Chars 20939 - 20945 [(inv~H).] 0. secs (0.u,0.s) Chars 20949 - 20950 [-] 0. secs (0.u,0.s) -Chars 20951 - 20966 [unfold~observe.] 0. secs (0.u,0.s) -Chars 20967 - 20971 [cbn.] 0. secs (0.u,0.s) -Chars 20972 - 20986 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 20987 - 21000 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 21001 - 21005 [cbn.] 0. secs (0.u,0.s) -Chars 21006 - 21024 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 21029 - 21036 [intros.] 0. secs (0.u,0.s) -Chars 21041 - 21060 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) -Chars 21061 - 21067 [inv~H.] 0.014 secs (0.014u,0.s) -Chars 21068 - 21081 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 20951 - 20966 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 20967 - 20971 [(cbn).] 0. secs (0.u,0.s) +Chars 20972 - 20986 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 20987 - 21000 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 21001 - 21005 [(cbn).] 0. secs (0.u,0.s) +Chars 21006 - 21024 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 21029 - 21036 [(intros).] 0. secs (0.u,0.s) +Chars 21041 - 21060 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) +Chars 21061 - 21067 [(inv~H).] 0.023 secs (0.023u,0.s) +Chars 21068 - 21081 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 21082 - 21088 [subst.] 0. secs (0.u,0.s) -Chars 21094 - 21109 [apply~H0~in~H2.] 0. secs (0.u,0.s) -Chars 21110 - 21128 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 21129 - 21138 [apply~H4.] 0. secs (0.u,0.s) +Chars 21094 - 21109 [(apply~H0~in~H2).] 0. secs (0.u,0.s) +Chars 21110 - 21128 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 21129 - 21138 [(apply~H4).] 0. secs (0.u,0.s) Chars 21141 - 21142 [-] 0. secs (0.u,0.s) -Chars 21143 - 21163 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 21164 - 21168 [cbn.] 0. secs (0.u,0.s) -Chars 21169 - 21182 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 21183 - 21187 [cbn.] 0. secs (0.u,0.s) +Chars 21143 - 21163 [(unfold~observe~at~1).] 0. secs (0.u,0.s) +Chars 21164 - 21168 [(cbn).] 0. secs (0.u,0.s) +Chars 21169 - 21182 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 21183 - 21187 [(cbn).] 0. secs (0.u,0.s) Chars 21188 - 21200 [constructor.] 0. secs (0.u,0.s) -Chars 21205 - 21227 [eapply~IHruttF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 21228 - 21246 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 21247 - 21253 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 21205 - 21227 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 21228 - 21246 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 21247 - 21253 [(inv~H).] 0.01 secs (0.01u,0.s) Chars 21254 - 21265 [now~unstep.] 0. secs (0.u,0.s) Chars 21268 - 21269 [-] 0. secs (0.u,0.s) -Chars 21270 - 21290 [unfold~observe~at~2.] 0. secs (0.u,0.s) -Chars 21291 - 21295 [cbn.] 0. secs (0.u,0.s) -Chars 21296 - 21309 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 21310 - 21314 [cbn.] 0. secs (0.u,0.s) +Chars 21270 - 21290 [(unfold~observe~at~2).] 0. secs (0.u,0.s) +Chars 21291 - 21295 [(cbn).] 0. secs (0.u,0.s) +Chars 21296 - 21309 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 21310 - 21314 [(cbn).] 0. secs (0.u,0.s) Chars 21315 - 21327 [constructor.] 0. secs (0.u,0.s) -Chars 21332 - 21354 [eapply~IHruttF;~eauto.] 0.004 secs (0.004u,0.s) -Chars 21355 - 21359 [Qed.] 0.059 secs (0.059u,0.s) +Chars 21332 - 21354 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 21355 - 21359 [Qed.] 0.075 secs (0.074u,0.s) Chars 21361 - 21500 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) Chars 21501 - 21507 [Proof.] 0. secs (0.u,0.s) -Chars 21510 - 21521 [intros~E~R.] 0. secs (0.u,0.s) -Chars 21522 - 21541 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 21542 - 21549 [intros.] 0. secs (0.u,0.s) -Chars 21552 - 21581 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 21582 - 21611 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) -Chars 21614 - 21645 [destruct~(ot1);~destruct~(ot2).] 0.002 secs (0.002u,0.s) -Chars 21648 - 21776 [all:~~specialize~(itree_eta~t1...] 0.001 secs (0.001u,0.s) +Chars 21510 - 21521 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 21522 - 21541 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 21542 - 21549 [(intros).] 0. secs (0.u,0.s) +Chars 21552 - 21581 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 21582 - 21611 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 21614 - 21645 [(destruct~(ot1);~destruct~(ot2)).] 0.01 secs (0.01u,0.s) +Chars 21648 - 21776 [all:~~(specialize~(itree_eta~t...] 0.001 secs (0.001u,0.s) Chars 21793 - 21794 [-] 0. secs (0.u,0.s) Chars 21795 - 21826 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) -Chars 21831 - 21850 [rewrite~Ht1~in~Hr0.] 0.017 secs (0.017u,0.s) -Chars 21851 - 21870 [rewrite~Ht2~in~Hr0.] 0.046 secs (0.046u,0.s) -Chars 21876 - 21899 [assert~(Ret~r0~⊑~t1).] 0. secs (0.u,0.s) +Chars 21831 - 21850 [(rewrite~Ht1~in~Hr0).] 0.02 secs (0.02u,0.s) +Chars 21851 - 21870 [(rewrite~Ht2~in~Hr0).] 0.061 secs (0.06u,0.s) +Chars 21876 - 21899 [(assert~(Ret~r0~⊑~t1)).] 0. secs (0.u,0.s) Chars 21904 - 21905 [{] 0. secs (0.u,0.s) -Chars 21906 - 21918 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 21919 - 21929 [apply~Hr0.] 0. secs (0.u,0.s) +Chars 21906 - 21918 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) +Chars 21919 - 21929 [(apply~Hr0).] 0. secs (0.u,0.s) Chars 21930 - 21935 [step.] 0. secs (0.u,0.s) Chars 21936 - 21941 [eret.] 0. secs (0.u,0.s) Chars 21942 - 21943 [}] 0. secs (0.u,0.s) -Chars 21948 - 21966 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) -Chars 21967 - 21975 [sinv~H0.] 0.004 secs (0.004u,0.s) +Chars 21948 - 21966 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) +Chars 21967 - 21975 [sinv~H0.] 0.008 secs (0.008u,0.s) Chars 21994 - 21995 [-] 0. secs (0.u,0.s) -Chars 21996 - 22020 [setoid_rewrite~Ht2~in~H.] 0.042 secs (0.042u,0.s) +Chars 21996 - 22020 [setoid_rewrite~Ht2~in~H.] 0.058 secs (0.057u,0.s) Chars 22025 - 22049 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) -Chars 22054 - 22076 [rewrite~tau_eutt~in~H.] 0.001 secs (0.001u,0.s) +Chars 22054 - 22076 [(rewrite~tau_eutt~in~H).] 0.001 secs (0.001u,0.s) Chars 22077 - 22082 [taur.] 0. secs (0.u,0.s) -Chars 22088 - 22110 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) +Chars 22088 - 22110 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) Chars 22115 - 22116 [{] 0. secs (0.u,0.s) -Chars 22117 - 22129 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 22130 - 22135 [step.] 0. secs (0.u,0.s) +Chars 22117 - 22129 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) +Chars 22130 - 22135 [step.] 0.001 secs (0.001u,0.s) Chars 22136 - 22141 [eret.] 0. secs (0.u,0.s) Chars 22142 - 22143 [}] 0. secs (0.u,0.s) -Chars 22148 - 22162 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 22148 - 22162 [(apply~H~in~H0).] 0. secs (0.u,0.s) Chars 22163 - 22174 [step~in~H0.] 0. secs (0.u,0.s) -Chars 22175 - 22203 [repeat~red~in~H0;~cbn~in~H0.] 0. secs (0.u,0.s) +Chars 22175 - 22203 [(repeat~red~in~H0;~cbn~in~H0).] 0. secs (0.u,0.s) Chars 22208 - 22238 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 22239 - 22262 [dependent~induction~H0.] 0.033 secs (0.032u,0.s) +Chars 22239 - 22262 [dependent~induction~H0.] 0.043 secs (0.043u,0.s) Chars 22267 - 22268 [+] 0. secs (0.u,0.s) -Chars 22269 - 22282 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22269 - 22282 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 22283 - 22288 [eret.] 0. secs (0.u,0.s) Chars 22294 - 22295 [+] 0. secs (0.u,0.s) -Chars 22296 - 22309 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 22310 - 22321 [taur;~auto.] 0. secs (0.u,0.s) +Chars 22296 - 22309 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22310 - 22321 [(taur;~auto).] 0.001 secs (0.001u,0.s) Chars 22341 - 22342 [-] 0. secs (0.u,0.s) Chars 22343 - 22351 [exfalso.] 0. secs (0.u,0.s) -Chars 22356 - 22378 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) +Chars 22356 - 22378 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) Chars 22383 - 22384 [{] 0. secs (0.u,0.s) -Chars 22385 - 22397 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 22398 - 22403 [step.] 0. secs (0.u,0.s) +Chars 22385 - 22397 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) +Chars 22398 - 22403 [step.] 0.001 secs (0.001u,0.s) Chars 22404 - 22409 [eret.] 0. secs (0.u,0.s) Chars 22410 - 22411 [}] 0. secs (0.u,0.s) -Chars 22416 - 22430 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 22431 - 22449 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) -Chars 22450 - 22458 [sinv~H0.] 0.001 secs (0.001u,0.s) +Chars 22416 - 22430 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 22431 - 22449 [(rewrite~Ht2~in~H0).] 0.006 secs (0.005u,0.s) +Chars 22450 - 22458 [sinv~H0.] 0.002 secs (0.002u,0.s) Chars 22476 - 22477 [-] 0. secs (0.u,0.s) -Chars 22478 - 22502 [setoid_rewrite~Ht1~in~H.] 0.017 secs (0.017u,0.s) -Chars 22503 - 22527 [setoid_rewrite~Ht2~in~H.] 0.042 secs (0.042u,0.s) -Chars 22532 - 22554 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) +Chars 22478 - 22502 [setoid_rewrite~Ht1~in~H.] 0.024 secs (0.024u,0.s) +Chars 22503 - 22527 [setoid_rewrite~Ht2~in~H.] 0.058 secs (0.058u,0.s) +Chars 22532 - 22554 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) Chars 22559 - 22560 [{] 0. secs (0.u,0.s) -Chars 22561 - 22573 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) -Chars 22574 - 22579 [step.] 0. secs (0.u,0.s) +Chars 22561 - 22573 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) +Chars 22574 - 22579 [step.] 0.001 secs (0.001u,0.s) Chars 22580 - 22585 [eret.] 0. secs (0.u,0.s) Chars 22586 - 22587 [}] 0. secs (0.u,0.s) -Chars 22592 - 22610 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) -Chars 22611 - 22631 [apply~H~in~H0~as~H1.] 0. secs (0.u,0.s) +Chars 22592 - 22610 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) +Chars 22611 - 22631 [(apply~H~in~H0~as~H1).] 0. secs (0.u,0.s) Chars 22632 - 22643 [step~in~H1.] 0. secs (0.u,0.s) Chars 22649 - 22682 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) -Chars 22683 - 22700 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 22701 - 22710 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 22683 - 22700 [(repeat~red~in~H1).] 0. secs (0.u,0.s) +Chars 22701 - 22710 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 22715 - 22720 [taul.] 0. secs (0.u,0.s) -Chars 22721 - 22728 [inv~H1.] 0.009 secs (0.009u,0.s) -Chars 22729 - 22767 [dependent~induction~H2;~intros...] 0.031 secs (0.03u,0.s) +Chars 22721 - 22728 [(inv~H1).] 0.013 secs (0.013u,0.s) +Chars 22729 - 22767 [(dependent~induction~H2;~intro...] 0.045 secs (0.045u,0.s) Chars 22772 - 22773 [+] 0. secs (0.u,0.s) -Chars 22774 - 22787 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22774 - 22787 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 22788 - 22793 [eret.] 0. secs (0.u,0.s) Chars 22799 - 22800 [+] 0. secs (0.u,0.s) -Chars 22801 - 22814 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 22815 - 22826 [taul;~auto.] 0. secs (0.u,0.s) +Chars 22801 - 22814 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22815 - 22826 [(taul;~auto).] 0.001 secs (0.001u,0.s) Chars 22844 - 22845 [-] 0. secs (0.u,0.s) Chars 22846 - 22858 [constructor.] 0. secs (0.u,0.s) -Chars 22859 - 22870 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 22876 - 22883 [intros.] 0. secs (0.u,0.s) -Chars 22888 - 22906 [assert~(t1~≈~t).] 0. secs (0.u,0.s) +Chars 22859 - 22870 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 22876 - 22883 [(intros).] 0. secs (0.u,0.s) +Chars 22888 - 22906 [(assert~(t1~≈~t)).] 0. secs (0.u,0.s) Chars 22907 - 22908 [{] 0. secs (0.u,0.s) -Chars 22909 - 22921 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 22922 - 22939 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 22909 - 22921 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 22922 - 22939 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 22940 - 22952 [reflexivity.] 0. secs (0.u,0.s) Chars 22953 - 22954 [}] 0. secs (0.u,0.s) -Chars 22959 - 22978 [assert~(t2~≈~t0).] 0. secs (0.u,0.s) +Chars 22959 - 22978 [(assert~(t2~≈~t0)).] 0. secs (0.u,0.s) Chars 22979 - 22980 [{] 0. secs (0.u,0.s) -Chars 22981 - 22993 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 22994 - 23011 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 22981 - 22993 [(rewrite~Ht2).] 0. secs (0.u,0.s) +Chars 22994 - 23011 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 23012 - 23024 [reflexivity.] 0. secs (0.u,0.s) Chars 23025 - 23026 [}] 0. secs (0.u,0.s) -Chars 23031 - 23056 [now~rewrite~<-~H0,~<-~H1.] 0.001 secs (0.001u,0.s) +Chars 23031 - 23056 [now~rewrite~<-~H0,~<-~H1.] 0.002 secs (0.002u,0.s) Chars 23074 - 23075 [-] 0. secs (0.u,0.s) Chars 23076 - 23126 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 23131 - 23155 [apply~H~in~Hbt1~as~Hbt2.] 0. secs (0.u,0.s) -Chars 23156 - 23176 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 23181 - 23206 [rewrite~tau_eutt~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 23211 - 23231 [rewrite~Ht2~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 23236 - 23273 [apply~trace_refine_vis~in~Hbt2...] 0. secs (0.u,0.s) -Chars 23278 - 23312 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) -Chars 23317 - 23336 [rewrite~Hb~in~Hbt2.] 0.003 secs (0.003u,0.s) -Chars 23341 - 23360 [rewrite~Hb~in~Hbt1.] 0.003 secs (0.003u,0.s) +Chars 23131 - 23155 [(apply~H~in~Hbt1~as~Hbt2).] 0. secs (0.u,0.s) +Chars 23156 - 23176 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) +Chars 23181 - 23206 [(rewrite~tau_eutt~in~Hbt1).] 0.003 secs (0.003u,0.s) +Chars 23211 - 23231 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 23236 - 23273 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) +Chars 23278 - 23312 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) +Chars 23317 - 23336 [(rewrite~Hb~in~Hbt2).] 0.008 secs (0.008u,0.s) +Chars 23341 - 23360 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) Chars 23361 - 23372 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 23377 - 23395 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 23400 - 23424 [setoid_rewrite~Ht1~in~H.] 0.016 secs (0.015u,0.s) -Chars 23425 - 23454 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.001u,0.s) +Chars 23377 - 23395 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 23400 - 23424 [setoid_rewrite~Ht1~in~H.] 0.023 secs (0.023u,0.s) +Chars 23425 - 23454 [setoid_rewrite~tau_eutt~in~H.] 0.003 secs (0.003u,0.s) Chars 23459 - 23479 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 23480 - 23493 [clear~Ht1~t1.] 0. secs (0.u,0.s) Chars 23498 - 23511 [step~in~Hbt1.] 0. secs (0.u,0.s) -Chars 23512 - 23531 [repeat~red~in~Hbt1.] 0. secs (0.u,0.s) -Chars 23532 - 23541 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23546 - 23571 [dependent~induction~Hbt1.] 0.048 secs (0.048u,0.s) +Chars 23512 - 23531 [(repeat~red~in~Hbt1).] 0. secs (0.u,0.s) +Chars 23532 - 23541 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 23546 - 23571 [dependent~induction~Hbt1.] 0.066 secs (0.065u,0.s) Chars 23576 - 23577 [+] 0. secs (0.u,0.s) -Chars 23578 - 23591 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 23578 - 23591 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 23598 - 23629 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23630 - 23649 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 23656 - 23700 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) +Chars 23630 - 23649 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 23656 - 23700 [(eapply~refine_set_eq_to_eutt_...] 0.001 secs (0.u,0.s) Chars 23705 - 23706 [+] 0. secs (0.u,0.s) -Chars 23707 - 23720 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 23721 - 23739 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 23740 - 23761 [eapply~IHHbt1;~eauto.] 0.004 secs (0.004u,0.s) -Chars 23768 - 23786 [assert~(t0~≈~t).] 0. secs (0.u,0.s) +Chars 23707 - 23720 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 23721 - 23739 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 23740 - 23761 [(eapply~IHHbt1;~eauto).] 0.005 secs (0.005u,0.s) +Chars 23768 - 23786 [(assert~(t0~≈~t)).] 0. secs (0.u,0.s) Chars 23793 - 23794 [{] 0. secs (0.u,0.s) Chars 23803 - 23834 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23835 - 23854 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 23855 - 23866 [rewrite~Ht.] 0.001 secs (0.001u,0.s) -Chars 23875 - 23892 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 23835 - 23854 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 23855 - 23866 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 23875 - 23892 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 23893 - 23905 [reflexivity.] 0. secs (0.u,0.s) Chars 23912 - 23913 [}] 0. secs (0.u,0.s) Chars 23920 - 23938 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) Chars 23939 - 23944 [auto.] 0. secs (0.u,0.s) Chars 23961 - 23962 [-] 0. secs (0.u,0.s) Chars 23963 - 23971 [exfalso.] 0. secs (0.u,0.s) -Chars 23976 - 23998 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) +Chars 23976 - 23998 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) Chars 24003 - 24004 [{] 0. secs (0.u,0.s) -Chars 24005 - 24017 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) -Chars 24018 - 24023 [step.] 0. secs (0.u,0.s) +Chars 24005 - 24017 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) +Chars 24018 - 24023 [step.] 0.001 secs (0.001u,0.s) Chars 24024 - 24029 [eret.] 0. secs (0.u,0.s) Chars 24030 - 24031 [}] 0. secs (0.u,0.s) -Chars 24036 - 24050 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 24051 - 24069 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) +Chars 24036 - 24050 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 24051 - 24069 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) Chars 24070 - 24078 [sinv~H0.] 0.002 secs (0.002u,0.s) Chars 24095 - 24096 [-] 0. secs (0.u,0.s) Chars 24097 - 24147 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 24152 - 24176 [apply~H~in~Hbt2~as~Hbt1.] 0. secs (0.u,0.s) -Chars 24177 - 24197 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 24202 - 24222 [rewrite~Ht2~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 24227 - 24252 [rewrite~tau_eutt~in~Hbt2.] 0.004 secs (0.004u,0.s) -Chars 24257 - 24294 [apply~trace_refine_vis~in~Hbt1...] 0. secs (0.u,0.s) -Chars 24299 - 24333 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) -Chars 24338 - 24357 [rewrite~Hb~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 24362 - 24381 [rewrite~Hb~in~Hbt1.] 0.003 secs (0.003u,0.s) +Chars 24152 - 24176 [(apply~H~in~Hbt2~as~Hbt1).] 0. secs (0.u,0.s) +Chars 24177 - 24197 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) +Chars 24202 - 24222 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 24227 - 24252 [(rewrite~tau_eutt~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 24257 - 24294 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) +Chars 24299 - 24333 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) +Chars 24338 - 24357 [(rewrite~Hb~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 24362 - 24381 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) Chars 24382 - 24393 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 24398 - 24416 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 24421 - 24445 [setoid_rewrite~Ht2~in~H.] 0.045 secs (0.045u,0.s) +Chars 24398 - 24416 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 24421 - 24445 [setoid_rewrite~Ht2~in~H.] 0.06 secs (0.059u,0.s) Chars 24446 - 24475 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) Chars 24480 - 24500 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 24501 - 24514 [clear~Ht2~t2.] 0. secs (0.u,0.s) Chars 24519 - 24532 [step~in~Hbt2.] 0. secs (0.u,0.s) -Chars 24533 - 24552 [repeat~red~in~Hbt2.] 0. secs (0.u,0.s) -Chars 24553 - 24562 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 24567 - 24592 [dependent~induction~Hbt2.] 0.046 secs (0.046u,0.s) +Chars 24533 - 24552 [(repeat~red~in~Hbt2).] 0. secs (0.u,0.s) +Chars 24553 - 24562 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 24567 - 24592 [dependent~induction~Hbt2.] 0.064 secs (0.063u,0.001s) Chars 24597 - 24598 [+] 0. secs (0.u,0.s) -Chars 24599 - 24612 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 24599 - 24612 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 24619 - 24650 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24651 - 24670 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 24677 - 24721 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) +Chars 24651 - 24670 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 24677 - 24721 [(eapply~refine_set_eq_to_eutt_...] 0.001 secs (0.001u,0.s) Chars 24726 - 24727 [+] 0. secs (0.u,0.s) -Chars 24728 - 24741 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 24742 - 24760 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 24761 - 24782 [eapply~IHHbt2;~eauto.] 0.006 secs (0.005u,0.s) -Chars 24789 - 24807 [assert~(t2~≈~t).] 0. secs (0.u,0.s) +Chars 24728 - 24741 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 24742 - 24760 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 24761 - 24782 [(eapply~IHHbt2;~eauto).] 0.005 secs (0.005u,0.s) +Chars 24789 - 24807 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) Chars 24814 - 24815 [{] 0. secs (0.u,0.s) Chars 24824 - 24855 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24856 - 24875 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 24876 - 24887 [rewrite~Ht.] 0.001 secs (0.001u,0.s) -Chars 24896 - 24913 [rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 24856 - 24875 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 24876 - 24887 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 24896 - 24913 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 24914 - 24926 [reflexivity.] 0. secs (0.u,0.s) Chars 24933 - 24934 [}] 0. secs (0.u,0.s) -Chars 24941 - 24959 [setoid_rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 24941 - 24959 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) Chars 24960 - 24965 [auto.] 0. secs (0.u,0.s) Chars 24984 - 24985 [-] 0. secs (0.u,0.s) -Chars 24986 - 25030 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) -Chars 25031 - 25035 [Qed.] 0.185 secs (0.184u,0.001s) +Chars 24986 - 25030 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) +Chars 25031 - 25035 [Qed.] 0.249 secs (0.245u,0.004s) Chars 25037 - 25144 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) Chars 25145 - 25151 [Proof.] 0. secs (0.u,0.s) -Chars 25154 - 25161 [intros.] 0. secs (0.u,0.s) -Chars 25162 - 25215 [split;~intros;~try~apply~refin...] 0. secs (0.u,0.s) -Chars 25218 - 25228 [rewrite~H.] 0. secs (0.u,0.s) -Chars 25229 - 25241 [split;~auto.] 0. secs (0.u,0.s) +Chars 25154 - 25161 [(intros).] 0. secs (0.u,0.s) +Chars 25162 - 25215 [(split;~intros;~try~apply~refi...] 0. secs (0.u,0.s) +Chars 25218 - 25228 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 25229 - 25241 [(split;~auto).] 0. secs (0.u,0.s) Chars 25242 - 25246 [Qed.] 0. secs (0.u,0.s) Chars 25248 - 25575 [Lemma~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) Chars 25576 - 25582 [Proof.] 0. secs (0.u,0.s) -Chars 25585 - 25598 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 25599 - 25603 [red.] 0. secs (0.u,0.s) +Chars 25585 - 25598 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 25599 - 25603 [(red).] 0. secs (0.u,0.s) Chars 25604 - 25622 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25623 - 25661 [intros~b~m~g~f~a~Hconv~Hrefb~H...] 0. secs (0.u,0.s) +Chars 25623 - 25661 [(intros~b~m~g~f~a~Hconv~Hrefb~...] 0. secs (0.u,0.s) Chars 25664 - 25688 [generalize~dependent~m.] 0. secs (0.u,0.s) -Chars 25691 - 25743 [dependent~induction~Hconv;~int...] 0. secs (0.u,0.s) +Chars 25691 - 25743 [(dependent~induction~Hconv;~in...] 0.001 secs (0.001u,0.s) Chars 25746 - 25747 [-] 0. secs (0.u,0.s) -Chars 25748 - 25770 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) -Chars 25771 - 25802 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 25803 - 25822 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) -Chars 25827 - 25865 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 25866 - 25892 [rewrite~Hrefb~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 25897 - 25928 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 25929 - 25938 [now~step.] 0.001 secs (0.001u,0.s) +Chars 25748 - 25770 [(rewrite~H~in~Hrefbind).] 0.009 secs (0.009u,0.s) +Chars 25771 - 25802 [(rewrite~bind_ret_l~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 25803 - 25822 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) +Chars 25827 - 25865 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 25866 - 25892 [(rewrite~Hrefb~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 25897 - 25928 [(rewrite~bind_ret_l~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 25929 - 25938 [now~step.] 0.002 secs (0.002u,0.s) Chars 25942 - 25943 [-] 0. secs (0.u,0.s) -Chars 26067 - 26097 [destruct~e;~try~contradiction.] 0.001 secs (0.001u,0.s) -Chars 26098 - 26117 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) -Chars 26122 - 26144 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) -Chars 26145 - 26174 [rewrite~bind_vis~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 26179 - 26221 [apply~trace_refine_vis_l~in~Hr...] 0. secs (0.u,0.s) -Chars 26222 - 26261 [destruct~Hvis~as~[X~[e'~[k'~Hv...] 0. secs (0.u,0.s) -Chars 26266 - 26291 [rewrite~Hvis~in~Hrefbind.] 0.007 secs (0.007u,0.s) -Chars 26292 - 26321 [rewrite~bind_vis~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 26067 - 26097 [(destruct~e;~try~contradiction).] 0.001 secs (0.001u,0.s) +Chars 26098 - 26117 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) +Chars 26122 - 26144 [(rewrite~H~in~Hrefbind).] 0.005 secs (0.005u,0.s) +Chars 26145 - 26174 [(rewrite~bind_vis~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 26179 - 26221 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 26222 - 26261 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) +Chars 26266 - 26291 [(rewrite~Hvis~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 26292 - 26321 [(rewrite~bind_vis~in~Hrefbind).] 0.003 secs (0.003u,0.s) Chars 26326 - 26343 [step~in~Hrefbind.] 0. secs (0.u,0.s) -Chars 26344 - 26384 [repeat~red~in~Hrefbind;~cbn~in...] 0. secs (0.u,0.s) -Chars 26385 - 26398 [inv~Hrefbind.] 0.017 secs (0.017u,0.s) -Chars 26403 - 26416 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 26417 - 26424 [inv~H2.] 0.011 secs (0.011u,0.s) -Chars 26425 - 26445 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 26450 - 26472 [rewrite~Hvis~in~Hrefb.] 0.003 secs (0.003u,0.s) +Chars 26344 - 26384 [(repeat~red~in~Hrefbind;~cbn~i...] 0. secs (0.u,0.s) +Chars 26385 - 26398 [(inv~Hrefbind).] 0.024 secs (0.024u,0.s) +Chars 26403 - 26416 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 26417 - 26424 [(inv~H2).] 0.014 secs (0.014u,0.s) +Chars 26425 - 26445 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 26450 - 26472 [(rewrite~Hvis~in~Hrefb).] 0.004 secs (0.004u,0.s) Chars 26473 - 26487 [step~in~Hrefb.] 0. secs (0.u,0.s) -Chars 26488 - 26522 [repeat~red~in~Hrefb;~cbn~in~Hr...] 0. secs (0.u,0.s) -Chars 26523 - 26533 [inv~Hrefb.] 0.017 secs (0.017u,0.s) -Chars 26538 - 26551 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 26556 - 26641 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 26488 - 26522 [(repeat~red~in~Hrefb;~cbn~in~H...] 0. secs (0.u,0.s) +Chars 26523 - 26533 [(inv~Hrefb).] 0.024 secs (0.023u,0.s) +Chars 26538 - 26551 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 26556 - 26641 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) Chars 26646 - 26677 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) -Chars 26678 - 26692 [apply~IHHconv.] 0. secs (0.u,0.s) +Chars 26678 - 26692 [(apply~IHHconv).] 0. secs (0.u,0.s) Chars 26697 - 26698 [+] 0. secs (0.u,0.s) -Chars 26699 - 26714 [apply~H8~in~H0.] 0. secs (0.u,0.s) -Chars 26715 - 26726 [destruct~b.] 0. secs (0.u,0.s) +Chars 26699 - 26714 [(apply~H8~in~H0).] 0. secs (0.u,0.s) +Chars 26715 - 26726 [(destruct~b).] 0. secs (0.u,0.s) Chars 26727 - 26732 [auto.] 0. secs (0.u,0.s) Chars 26737 - 26738 [+] 0. secs (0.u,0.s) -Chars 26739 - 26754 [apply~H7~in~H0.] 0. secs (0.u,0.s) -Chars 26755 - 26766 [destruct~b.] 0. secs (0.u,0.s) +Chars 26739 - 26754 [(apply~H7~in~H0).] 0. secs (0.u,0.s) +Chars 26755 - 26766 [(destruct~b).] 0. secs (0.u,0.s) Chars 26767 - 26772 [auto.] 0. secs (0.u,0.s) -Chars 26773 - 26777 [Qed.] 0.037 secs (0.036u,0.s) +Chars 26773 - 26777 [Qed.] 0.047 secs (0.046u,0.s) Chars 26779 - 27007 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) Chars 27008 - 27014 [Proof.] 0. secs (0.u,0.s) -Chars 27017 - 27024 [intros.] 0. secs (0.u,0.s) +Chars 27017 - 27024 [(intros).] 0. secs (0.u,0.s) Chars 27025 - 27051 [generalize~dependent~log'.] 0. secs (0.u,0.s) -Chars 27054 - 27081 [induction~log;~cbn;~intros.] 0. secs (0.u,0.s) +Chars 27054 - 27081 [(induction~log;~cbn;~intros).] 0. secs (0.u,0.s) Chars 27084 - 27085 [-] 0. secs (0.u,0.s) -Chars 27086 - 27097 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 27098 - 27129 [setoid_rewrite~bind_ret_l~in~H.] 0.016 secs (0.016u,0.s) -Chars 27130 - 27140 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 27145 - 27171 [apply~may_converge_append.] 0. secs (0.u,0.s) -Chars 27172 - 27200 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) +Chars 27086 - 27097 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 27098 - 27129 [setoid_rewrite~bind_ret_l~in~H.] 0.02 secs (0.02u,0.s) +Chars 27130 - 27140 [(rewrite~H).] 0.004 secs (0.004u,0.s) +Chars 27145 - 27171 [(apply~may_converge_append).] 0. secs (0.u,0.s) +Chars 27172 - 27200 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) Chars 27203 - 27204 [-] 0. secs (0.u,0.s) -Chars 27205 - 27299 [assert~~(Vis~a0~(fun~_~=>~ev_l...] 0. secs (0.u,0.s) +Chars 27205 - 27299 [(assert~~~(Vis~a0~(fun~_~=>~ev...] 0. secs (0.u,0.s) Chars 27304 - 27305 [{] 0. secs (0.u,0.s) -Chars 27306 - 27310 [cbn.] 0. secs (0.u,0.s) +Chars 27306 - 27310 [(cbn).] 0. secs (0.u,0.s) Chars 27311 - 27323 [reflexivity.] 0. secs (0.u,0.s) Chars 27324 - 27325 [}] 0. secs (0.u,0.s) -Chars 27330 - 27346 [rewrite~H0~in~H.] 0.013 secs (0.013u,0.s) -Chars 27351 - 27378 [destruct~log'~as~[|~h~t].] 0. secs (0.u,0.s) +Chars 27330 - 27346 [(rewrite~H0~in~H).] 0.02 secs (0.019u,0.s) +Chars 27351 - 27378 [(destruct~log'~as~[|~h~t]).] 0. secs (0.u,0.s) Chars 27383 - 27384 [+] 0. secs (0.u,0.s) -Chars 27385 - 27416 [setoid_rewrite~bind_ret_l~in~H.] 0.02 secs (0.02u,0.s) -Chars 27417 - 27428 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 27429 - 27436 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 27385 - 27416 [setoid_rewrite~bind_ret_l~in~H.] 0.027 secs (0.027u,0.s) +Chars 27417 - 27428 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 27429 - 27436 [sinv~H.] 0.004 secs (0.004u,0.s) Chars 27442 - 27443 [+] 0. secs (0.u,0.s) -Chars 27444 - 27455 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 27456 - 27475 [unfold~append~in~H.] 0. secs (0.u,0.s) -Chars 27476 - 27505 [repeat~rewrite~bind_vis~in~H.] 0.036 secs (0.036u,0.s) -Chars 27506 - 27513 [sinv~H.] 0.006 secs (0.006u,0.s) -Chars 27520 - 27540 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 27547 - 27616 [assert~(ev_list_to_stream~log~...] 0. secs (0.u,0.s) +Chars 27444 - 27455 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 27456 - 27475 [(unfold~append~in~H).] 0. secs (0.u,0.s) +Chars 27476 - 27505 [(repeat~rewrite~bind_vis~in~H).] 0.048 secs (0.048u,0.s) +Chars 27506 - 27513 [sinv~H.] 0.009 secs (0.009u,0.s) +Chars 27520 - 27540 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 27547 - 27616 [(assert~(ev_list_to_stream~log...] 0. secs (0.u,0.s) Chars 27623 - 27624 [{] 0. secs (0.u,0.s) -Chars 27625 - 27635 [apply~REL.] 0. secs (0.u,0.s) -Chars 27636 - 27645 [apply~tt.] 0. secs (0.u,0.s) +Chars 27625 - 27635 [(apply~REL).] 0. secs (0.u,0.s) +Chars 27636 - 27645 [(apply~tt).] 0. secs (0.u,0.s) Chars 27646 - 27647 [}] 0. secs (0.u,0.s) -Chars 27654 - 27674 [eapply~IHlog;~eauto.] 0. secs (0.u,0.s) -Chars 27675 - 27679 [Qed.] 0.01 secs (0.01u,0.s) +Chars 27654 - 27674 [(eapply~IHlog;~eauto).] 0. secs (0.u,0.s) +Chars 27675 - 27679 [Qed.] 0.014 secs (0.013u,0.s) Chars 27681 - 27894 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) Chars 27895 - 27901 [Proof.] 0. secs (0.u,0.s) -Chars 27904 - 27927 [intros~E~A~log~b'~Hdiv.] 0. secs (0.u,0.s) -Chars 27928 - 27942 [induction~log.] 0. secs (0.u,0.s) +Chars 27904 - 27927 [(intros~E~A~log~b'~Hdiv).] 0. secs (0.u,0.s) +Chars 27928 - 27942 [(induction~log).] 0. secs (0.u,0.s) Chars 27945 - 27946 [-] 0. secs (0.u,0.s) -Chars 27947 - 27959 [cbn~in~Hdiv.] 0. secs (0.u,0.s) +Chars 27947 - 27959 [(cbn~in~Hdiv).] 0. secs (0.u,0.s) Chars 27960 - 27994 [setoid_rewrite~bind_ret_l~in~H...] 0.001 secs (0.001u,0.s) Chars 27995 - 28000 [auto.] 0. secs (0.u,0.s) Chars 28003 - 28004 [-] 0. secs (0.u,0.s) -Chars 28005 - 28017 [apply~IHlog.] 0. secs (0.u,0.s) -Chars 28018 - 28032 [simpl~in~Hdiv.] 0. secs (0.u,0.s) -Chars 28033 - 28055 [unfold~append~in~Hdiv.] 0. secs (0.u,0.s) -Chars 28060 - 28085 [rewrite~bind_vis~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 28086 - 28096 [sinv~Hdiv.] 0.003 secs (0.003u,0.s) +Chars 28005 - 28017 [(apply~IHlog).] 0. secs (0.u,0.s) +Chars 28018 - 28032 [(simpl~in~Hdiv).] 0. secs (0.u,0.s) +Chars 28033 - 28055 [(unfold~append~in~Hdiv).] 0. secs (0.u,0.s) +Chars 28060 - 28085 [(rewrite~bind_vis~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 28086 - 28096 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) Chars 28097 - 28110 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 28111 - 28117 [subst.] 0. secs (0.u,0.s) -Chars 28118 - 28127 [apply~H0.] 0. secs (0.u,0.s) -Chars 28132 - 28141 [apply~tt.] 0. secs (0.u,0.s) +Chars 28118 - 28127 [(apply~H0).] 0. secs (0.u,0.s) +Chars 28132 - 28141 [(apply~tt).] 0. secs (0.u,0.s) Chars 28142 - 28146 [Qed.] 0.004 secs (0.004u,0.s) diff --git a/extra/ITrace/ITracePrefix.v.timing b/extra/ITrace/ITracePrefix.v.timing index 66e4470e..9ae4d06b 100644 --- a/extra/ITrace/ITracePrefix.v.timing +++ b/extra/ITrace/ITracePrefix.v.timing @@ -1,561 +1,561 @@ -Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.156 secs (0.141u,0.015s) -Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.01 secs (0.008u,0.001s) +Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) +Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.219 secs (0.194u,0.025s) +Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.012 secs (0.01u,0.001s) Chars 293 - 307 [Import~Monads.] 0. secs (0.u,0.s) Chars 308 - 329 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 330 - 362 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) Chars 364 - 387 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.004 secs (0.003u,0.s) +Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.005 secs (0.004u,0.001s) Chars 1395 - 1445 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) Chars 1447 - 1563 [Definition~trace_prefix_~{E}~{...] 0. secs (0.u,0.s) Chars 1565 - 1609 [#[global]~Hint~Unfold~trace_pr...] 0. secs (0.u,0.s) Chars 1611 - 1689 [Lemma~trace_prefix_mono~{E}~{R...] 0. secs (0.u,0.s) Chars 1690 - 1696 [Proof.] 0. secs (0.u,0.s) -Chars 1699 - 1712 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1713 - 1717 [red.] 0. secs (0.u,0.s) -Chars 1718 - 1728 [red~in~H0.] 0. secs (0.u,0.s) -Chars 1729 - 1789 [induction~H0;~eauto~with~itree...] 0.002 secs (0.002u,0.s) +Chars 1699 - 1712 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1713 - 1717 [(red).] 0. secs (0.u,0.s) +Chars 1718 - 1728 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 1729 - 1789 [(induction~H0;~eauto~with~itre...] 0.037 secs (0.033u,0.003s) Chars 1791 - 1795 [Qed.] 0.001 secs (0.001u,0.s) Chars 1797 - 1873 [Definition~trace_prefix_mon~{E...] 0. secs (0.u,0.s) Chars 1875 - 1975 [Definition~trace_prefix~{E}~{R...] 0. secs (0.u,0.s) Chars 1977 - 2170 [Lemma~prefix_vis~:~~~forall~E~...] 0. secs (0.u,0.s) Chars 2171 - 2177 [Proof.] 0. secs (0.u,0.s) -Chars 2180 - 2209 [intros~E~R~S~A~e~ans~k~t~Hbp.] 0. secs (0.u,0.s) +Chars 2180 - 2209 [(intros~E~R~S~A~e~ans~k~t~Hbp).] 0. secs (0.u,0.s) Chars 2210 - 2222 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 2223 - 2232 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 2235 - 2259 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) +Chars 2223 - 2232 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 2235 - 2259 [dependent~induction~Hbp.] 0.014 secs (0.014u,0.s) Chars 2262 - 2263 [-] 0. secs (0.u,0.s) -Chars 2264 - 2283 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 2284 - 2343 [enough~(exists~k',~bs~≈~Vis~(e...] 0. secs (0.u,0.s) +Chars 2264 - 2283 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 2284 - 2343 [(enough~(exists~k',~bs~≈~Vis~(...] 0. secs (0.u,0.s) Chars 2348 - 2349 [+] 0. secs (0.u,0.s) -Chars 2350 - 2373 [destruct~H~as~[k'~Hk'].] 0. secs (0.u,0.s) +Chars 2350 - 2373 [(destruct~H~as~[k'~Hk']).] 0. secs (0.u,0.s) Chars 2374 - 2384 [exists~k'.] 0. secs (0.u,0.s) -Chars 2385 - 2395 [rewrite~x.] 0.002 secs (0.002u,0.s) -Chars 2396 - 2413 [rewrite~tau_eutt.] 0.035 secs (0.035u,0.s) +Chars 2385 - 2395 [(rewrite~x).] 0.003 secs (0.003u,0.s) +Chars 2396 - 2413 [(rewrite~tau_eutt).] 0.002 secs (0.002u,0.s) Chars 2414 - 2419 [auto.] 0. secs (0.u,0.s) Chars 2424 - 2425 [+] 0. secs (0.u,0.s) -Chars 2426 - 2446 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 2426 - 2446 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) Chars 2449 - 2450 [-] 0. secs (0.u,0.s) Chars 2451 - 2461 [exists~ks.] 0. secs (0.u,0.s) -Chars 2462 - 2481 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 2482 - 2492 [rewrite~x.] 0.001 secs (0.001u,0.s) +Chars 2462 - 2481 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 2482 - 2492 [(rewrite~x).] 0.045 secs (0.044u,0.s) Chars 2493 - 2505 [reflexivity.] 0. secs (0.u,0.s) -Chars 2506 - 2510 [Qed.] 0.008 secs (0.008u,0.s) +Chars 2506 - 2510 [Qed.] 0.011 secs (0.011u,0.s) Chars 2512 - 2608 [Lemma~trace_prefix_ret~:~~~for...] 0. secs (0.u,0.s) Chars 2609 - 2615 [Proof.] 0. secs (0.u,0.s) -Chars 2618 - 2625 [intros.] 0. secs (0.u,0.s) -Chars 2626 - 2648 [remember~(go~ob)~as~b.] 0. secs (0.u,0.s) -Chars 2649 - 2673 [assert~(observe~b~=~ob).] 0. secs (0.u,0.s) +Chars 2618 - 2625 [(intros).] 0. secs (0.u,0.s) +Chars 2626 - 2648 [(remember~(go~ob)~as~b).] 0. secs (0.u,0.s) +Chars 2649 - 2673 [(assert~(observe~b~=~ob)).] 0. secs (0.u,0.s) Chars 2676 - 2677 [{] 0. secs (0.u,0.s) Chars 2678 - 2684 [subst.] 0. secs (0.u,0.s) Chars 2685 - 2690 [auto.] 0. secs (0.u,0.s) Chars 2691 - 2692 [}] 0. secs (0.u,0.s) -Chars 2695 - 2708 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 2695 - 2708 [(rewrite~<-~H).] 0. secs (0.u,0.s) Chars 2709 - 2725 [auto~with~itree.] 0. secs (0.u,0.s) Chars 2726 - 2730 [Qed.] 0. secs (0.u,0.s) Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.001 secs (0.001u,0.s) Chars 3374 - 3380 [Proof.] 0. secs (0.u,0.s) -Chars 3383 - 3423 [intros~E~S~R~t1~b2~Heutt~r~X~e...] 0. secs (0.u,0.s) -Chars 3426 - 3449 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) +Chars 3383 - 3423 [(intros~E~S~R~t1~b2~Heutt~r~X~...] 0. secs (0.u,0.s) +Chars 3426 - 3449 [dependent~induction~H0.] 0.018 secs (0.018u,0.s) Chars 3452 - 3453 [-] 0. secs (0.u,0.s) -Chars 3454 - 3477 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) -Chars 3478 - 3504 [dependent~induction~Heutt.] 0.026 secs (0.026u,0.s) +Chars 3454 - 3477 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) +Chars 3478 - 3504 [dependent~induction~Heutt.] 0.037 secs (0.036u,0.s) Chars 3509 - 3510 [+] 0. secs (0.u,0.s) -Chars 3511 - 3524 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 3525 - 3548 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 3511 - 3524 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 3525 - 3548 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 3553 - 3554 [+] 0. secs (0.u,0.s) -Chars 3555 - 3568 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3555 - 3568 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3569 - 3581 [constructor.] 0. secs (0.u,0.s) -Chars 3582 - 3604 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 3582 - 3604 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) Chars 3607 - 3608 [-] 0. secs (0.u,0.s) -Chars 3609 - 3632 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 3609 - 3632 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 3633 - 3648 [3:~reflexivity.] 0. secs (0.u,0.s) Chars 3649 - 3660 [all:~eauto.] 0. secs (0.u,0.s) -Chars 3666 - 3685 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 3686 - 3717 [assert~(t1~≈~b2)~by~now~step.] 0.003 secs (0.003u,0.s) -Chars 3722 - 3737 [rewrite~x~in~H.] 0.015 secs (0.015u,0.s) -Chars 3738 - 3760 [rewrite~tau_eutt~in~H.] 0.016 secs (0.016u,0.s) +Chars 3666 - 3685 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 3686 - 3717 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) +Chars 3722 - 3737 [(rewrite~x~in~H).] 0.024 secs (0.024u,0.s) +Chars 3738 - 3760 [(rewrite~tau_eutt~in~H).] 0.023 secs (0.023u,0.s) Chars 3761 - 3775 [now~step~in~H.] 0. secs (0.u,0.s) Chars 3778 - 3779 [-] 0. secs (0.u,0.s) -Chars 3780 - 3802 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) -Chars 3803 - 3829 [dependent~induction~Heutt.] 0.029 secs (0.029u,0.s) +Chars 3780 - 3802 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) +Chars 3803 - 3829 [dependent~induction~Heutt.] 0.042 secs (0.041u,0.001s) Chars 3834 - 3835 [+] 0. secs (0.u,0.s) -Chars 3836 - 3849 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3836 - 3849 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3850 - 3862 [constructor.] 0. secs (0.u,0.s) Chars 3867 - 3868 [+] 0. secs (0.u,0.s) -Chars 3869 - 3882 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3869 - 3882 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3883 - 3895 [constructor.] 0. secs (0.u,0.s) -Chars 3896 - 3918 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 3896 - 3918 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) Chars 3921 - 3922 [-] 0. secs (0.u,0.s) -Chars 3923 - 3945 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) -Chars 3946 - 3972 [dependent~induction~Heutt.] 0.035 secs (0.034u,0.s) +Chars 3923 - 3945 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) +Chars 3946 - 3972 [dependent~induction~Heutt.] 0.05 secs (0.049u,0.s) Chars 3977 - 3978 [+] 0. secs (0.u,0.s) -Chars 3979 - 3992 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3979 - 3992 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3993 - 4005 [constructor.] 0. secs (0.u,0.s) -Chars 4006 - 4035 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 4006 - 4035 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) Chars 4040 - 4041 [+] 0. secs (0.u,0.s) -Chars 4042 - 4055 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4042 - 4055 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4056 - 4068 [constructor.] 0. secs (0.u,0.s) -Chars 4069 - 4091 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 4092 - 4096 [Qed.] 0.067 secs (0.066u,0.s) -Chars 4098 - 4312 [Lemma~trace_prefix_tau_inv~:~~...] 0. secs (0.u,0.s) +Chars 4069 - 4091 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 4092 - 4096 [Qed.] 0.097 secs (0.095u,0.002s) +Chars 4098 - 4312 [Lemma~trace_prefix_tau_inv~:~~...] 0.001 secs (0.u,0.s) Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) -Chars 4322 - 4344 [intros~E~S~R~m1~t~Hbp.] 0. secs (0.u,0.s) -Chars 4347 - 4371 [dependent~induction~Hbp.] 0.005 secs (0.005u,0.s) +Chars 4322 - 4344 [(intros~E~S~R~m1~t~Hbp).] 0. secs (0.u,0.s) +Chars 4347 - 4371 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) Chars 4374 - 4375 [-] 0. secs (0.u,0.s) Chars 4376 - 4381 [auto.] 0. secs (0.u,0.s) Chars 4384 - 4385 [-] 0. secs (0.u,0.s) Chars 4386 - 4391 [step.] 0. secs (0.u,0.s) Chars 4392 - 4404 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4405 - 4429 [dependent~induction~Hbp.] 0.006 secs (0.006u,0.s) +Chars 4405 - 4429 [dependent~induction~Hbp.] 0.008 secs (0.008u,0.s) Chars 4434 - 4435 [+] 0. secs (0.u,0.s) -Chars 4436 - 4450 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 4436 - 4450 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 4451 - 4467 [auto~with~itree.] 0. secs (0.u,0.s) Chars 4472 - 4473 [+] 0. secs (0.u,0.s) -Chars 4474 - 4487 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4474 - 4487 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4488 - 4500 [constructor.] 0. secs (0.u,0.s) Chars 4501 - 4515 [now~step~in~H.] 0. secs (0.u,0.s) Chars 4520 - 4521 [+] 0. secs (0.u,0.s) -Chars 4522 - 4535 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4522 - 4535 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4536 - 4548 [constructor.] 0. secs (0.u,0.s) -Chars 4549 - 4569 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 4549 - 4569 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) Chars 4574 - 4575 [+] 0. secs (0.u,0.s) Chars 4576 - 4581 [auto.] 0. secs (0.u,0.s) Chars 4584 - 4585 [-] 0. secs (0.u,0.s) Chars 4586 - 4591 [step.] 0. secs (0.u,0.s) Chars 4592 - 4604 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4605 - 4629 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) +Chars 4605 - 4629 [dependent~induction~Hbp.] 0.013 secs (0.012u,0.s) Chars 4634 - 4635 [+] 0. secs (0.u,0.s) -Chars 4636 - 4649 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4636 - 4649 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4650 - 4662 [constructor.] 0. secs (0.u,0.s) Chars 4663 - 4677 [now~step~in~H.] 0. secs (0.u,0.s) Chars 4682 - 4683 [+] 0. secs (0.u,0.s) Chars 4684 - 4689 [auto.] 0. secs (0.u,0.s) Chars 4694 - 4695 [+] 0. secs (0.u,0.s) -Chars 4696 - 4709 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4696 - 4709 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4710 - 4722 [constructor.] 0. secs (0.u,0.s) -Chars 4723 - 4743 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 4744 - 4748 [Qed.] 0.011 secs (0.011u,0.s) +Chars 4723 - 4743 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 4744 - 4748 [Qed.] 0.016 secs (0.016u,0.s) Chars 4750 - 4890 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) Chars 4891 - 4897 [Proof.] 0. secs (0.u,0.s) -Chars 4900 - 4913 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 4914 - 4933 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 4934 - 4959 [intros~b1~b2~b~Heutt~Hbp.] 0. secs (0.u,0.s) +Chars 4900 - 4913 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 4914 - 4933 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4934 - 4959 [(intros~b1~b2~b~Heutt~Hbp).] 0. secs (0.u,0.s) Chars 4962 - 4976 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 4977 - 4989 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 4992 - 5018 [dependent~induction~Heutt.] 0.03 secs (0.03u,0.s) +Chars 4992 - 5018 [dependent~induction~Heutt.] 0.043 secs (0.042u,0.001s) Chars 5021 - 5022 [-] 0. secs (0.u,0.s) -Chars 5023 - 5036 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5023 - 5036 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5037 - 5049 [constructor.] 0. secs (0.u,0.s) Chars 5052 - 5053 [-] 0. secs (0.u,0.s) -Chars 5054 - 5067 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 5068 - 5089 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 5054 - 5067 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 5068 - 5089 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 5090 - 5101 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 5106 - 5138 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) +Chars 5106 - 5138 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) Chars 5143 - 5144 [+] 0. secs (0.u,0.s) -Chars 5145 - 5153 [inv~Hbp.] 0.009 secs (0.009u,0.s) +Chars 5145 - 5153 [(inv~Hbp).] 0.013 secs (0.012u,0.s) Chars 5154 - 5166 [constructor.] 0. secs (0.u,0.s) -Chars 5167 - 5191 [dependent~induction~H0.] 0.011 secs (0.011u,0.s) +Chars 5167 - 5191 [dependent~induction~H0.] 0.015 secs (0.015u,0.s) Chars 5198 - 5199 [*] 0. secs (0.u,0.s) -Chars 5200 - 5220 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) -Chars 5221 - 5246 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5255 - 5271 [rewrite~x0~in~H.] 0.016 secs (0.015u,0.s) +Chars 5200 - 5220 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) +Chars 5221 - 5246 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 5255 - 5271 [(rewrite~x0~in~H).] 0.023 secs (0.022u,0.s) Chars 5272 - 5296 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) Chars 5305 - 5315 [step~in~H.] 0. secs (0.u,0.s) -Chars 5316 - 5325 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5326 - 5348 [dependent~induction~H.] 0.028 secs (0.028u,0.s) +Chars 5316 - 5325 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5326 - 5348 [dependent~induction~H.] 0.041 secs (0.04u,0.s) Chars 5357 - 5359 [++] 0. secs (0.u,0.s) -Chars 5360 - 5373 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 5374 - 5397 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 5360 - 5373 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 5374 - 5397 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 5406 - 5408 [++] 0. secs (0.u,0.s) -Chars 5409 - 5422 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5409 - 5422 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5423 - 5435 [constructor.] 0. secs (0.u,0.s) -Chars 5436 - 5458 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5436 - 5458 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) Chars 5465 - 5466 [*] 0. secs (0.u,0.s) -Chars 5467 - 5490 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 5467 - 5490 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 5491 - 5506 [5:~reflexivity.] 0. secs (0.u,0.s) -Chars 5507 - 5517 [all:~auto.] 0. secs (0.u,0.s) -Chars 5526 - 5545 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 5546 - 5571 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5580 - 5595 [rewrite~x~in~H.] 0.016 secs (0.015u,0.s) -Chars 5596 - 5618 [rewrite~tau_eutt~in~H.] 0.015 secs (0.014u,0.s) +Chars 5507 - 5517 [all:~auto.] 0.001 secs (0.001u,0.s) +Chars 5526 - 5545 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 5546 - 5571 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 5580 - 5595 [(rewrite~x~in~H).] 0.023 secs (0.022u,0.s) +Chars 5596 - 5618 [(rewrite~tau_eutt~in~H).] 0.021 secs (0.02u,0.s) Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) Chars 5629 - 5630 [+] 0. secs (0.u,0.s) Chars 5631 - 5643 [constructor.] 0. secs (0.u,0.s) -Chars 5644 - 5662 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 5663 - 5698 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) +Chars 5644 - 5662 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 5663 - 5698 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) Chars 5703 - 5704 [+] 0. secs (0.u,0.s) Chars 5705 - 5717 [constructor.] 0. secs (0.u,0.s) Chars 5718 - 5729 [clear~Heqb.] 0. secs (0.u,0.s) -Chars 5730 - 5738 [inv~Hbp.] 0.01 secs (0.01u,0.s) -Chars 5739 - 5762 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) +Chars 5730 - 5738 [(inv~Hbp).] 0.014 secs (0.013u,0.s) +Chars 5739 - 5762 [dependent~induction~H0.] 0.018 secs (0.018u,0.s) Chars 5769 - 5770 [*] 0. secs (0.u,0.s) -Chars 5771 - 5791 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) -Chars 5792 - 5817 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5826 - 5842 [rewrite~x0~in~H.] 0.015 secs (0.015u,0.s) +Chars 5771 - 5791 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) +Chars 5792 - 5817 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 5826 - 5842 [(rewrite~x0~in~H).] 0.022 secs (0.021u,0.s) Chars 5843 - 5853 [step~in~H.] 0. secs (0.u,0.s) -Chars 5854 - 5863 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5872 - 5894 [dependent~induction~H.] 0.048 secs (0.048u,0.s) +Chars 5854 - 5863 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5872 - 5894 [dependent~induction~H.] 0.068 secs (0.068u,0.s) Chars 5903 - 5905 [++] 0. secs (0.u,0.s) -Chars 5906 - 5919 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 5920 - 5943 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 5906 - 5919 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 5920 - 5943 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 5952 - 5954 [++] 0. secs (0.u,0.s) -Chars 5955 - 5968 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 5955 - 5968 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5969 - 5981 [constructor.] 0. secs (0.u,0.s) -Chars 5982 - 6018 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) -Chars 6031 - 6056 [assert~(m1~≈~m2);~auto.] 0.002 secs (0.002u,0.s) -Chars 6068 - 6076 [sinv~x0.] 0.013 secs (0.013u,0.s) -Chars 6077 - 6100 [apply~simpobs~in~x,~H2.] 0. secs (0.u,0.s) -Chars 6114 - 6144 [rewrite~x,~H2,~tau_eutt~in~H0.] 0.039 secs (0.039u,0.s) -Chars 6157 - 6179 [now~rewrite~<-~H0,~H2.] 0.002 secs (0.002u,0.s) +Chars 5982 - 6018 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) +Chars 6031 - 6056 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 6068 - 6076 [sinv~x0.] 0.021 secs (0.021u,0.s) +Chars 6077 - 6100 [(apply~simpobs~in~x,~H2).] 0. secs (0.u,0.s) +Chars 6114 - 6144 [(rewrite~x,~H2,~tau_eutt~in~H0).] 0.054 secs (0.053u,0.s) +Chars 6157 - 6179 [now~rewrite~<-~H0,~H2.] 0.003 secs (0.003u,0.s) Chars 6187 - 6188 [*] 0. secs (0.u,0.s) -Chars 6189 - 6212 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 6189 - 6212 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 6213 - 6228 [4:~reflexivity.] 0. secs (0.u,0.s) Chars 6229 - 6239 [all:~auto.] 0. secs (0.u,0.s) -Chars 6248 - 6273 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6274 - 6293 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6302 - 6317 [rewrite~x~in~H.] 0.015 secs (0.015u,0.s) -Chars 6318 - 6340 [rewrite~tau_eutt~in~H.] 0.014 secs (0.014u,0.s) +Chars 6248 - 6273 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6274 - 6293 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6302 - 6317 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) +Chars 6318 - 6340 [(rewrite~tau_eutt~in~H).] 0.02 secs (0.019u,0.s) Chars 6341 - 6346 [auto.] 0. secs (0.u,0.s) Chars 6353 - 6354 [*] 0. secs (0.u,0.s) -Chars 6355 - 6380 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6381 - 6400 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6409 - 6425 [rewrite~x~in~H0.] 0.014 secs (0.014u,0.s) +Chars 6355 - 6380 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6381 - 6400 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6409 - 6425 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) Chars 6434 - 6445 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6446 - 6455 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6464 - 6487 [dependent~induction~H0.] 0.044 secs (0.043u,0.s) +Chars 6446 - 6455 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6464 - 6487 [dependent~induction~H0.] 0.061 secs (0.061u,0.s) Chars 6496 - 6498 [++] 0. secs (0.u,0.s) -Chars 6499 - 6512 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6499 - 6512 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 6513 - 6525 [constructor.] 0. secs (0.u,0.s) Chars 6534 - 6536 [++] 0. secs (0.u,0.s) -Chars 6537 - 6550 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6537 - 6550 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 6551 - 6563 [constructor.] 0. secs (0.u,0.s) -Chars 6564 - 6600 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) -Chars 6612 - 6637 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6649 - 6668 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6669 - 6685 [rewrite~x~in~H1.] 0.022 secs (0.022u,0.s) -Chars 6686 - 6709 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) +Chars 6564 - 6600 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) +Chars 6612 - 6637 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 6649 - 6668 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6669 - 6685 [(rewrite~x~in~H1).] 0.03 secs (0.03u,0.s) +Chars 6686 - 6709 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) Chars 6710 - 6715 [auto.] 0. secs (0.u,0.s) Chars 6722 - 6723 [*] 0. secs (0.u,0.s) -Chars 6725 - 6744 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6745 - 6770 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6779 - 6795 [rewrite~x~in~H0.] 0.015 secs (0.015u,0.s) +Chars 6725 - 6744 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6745 - 6770 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6779 - 6795 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) Chars 6796 - 6807 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6808 - 6817 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6826 - 6849 [dependent~induction~H0.] 0.046 secs (0.045u,0.s) +Chars 6808 - 6817 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6826 - 6849 [dependent~induction~H0.] 0.063 secs (0.062u,0.001s) Chars 6858 - 6860 [++] 0. secs (0.u,0.s) -Chars 6861 - 6874 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6861 - 6874 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 6875 - 6887 [constructor.] 0. secs (0.u,0.s) -Chars 6888 - 6922 [eapply~CIH;~try~apply~REL0;~ea...] 0. secs (0.u,0.s) +Chars 6888 - 6922 [(eapply~CIH;~try~apply~REL0;~e...] 0. secs (0.u,0.s) Chars 6932 - 6934 [++] 0. secs (0.u,0.s) -Chars 6935 - 6948 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 6935 - 6948 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 6949 - 6961 [constructor.] 0. secs (0.u,0.s) -Chars 6962 - 6998 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) -Chars 7010 - 7035 [assert~(m1~≈~m2);~auto.] 0.001 secs (0.u,0.s) -Chars 7047 - 7066 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 7067 - 7083 [rewrite~x~in~H1.] 0.023 secs (0.023u,0.s) -Chars 7084 - 7107 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) +Chars 6962 - 6998 [(eapply~IHeqitF;~try~apply~x0;...] 0.006 secs (0.006u,0.s) +Chars 7010 - 7035 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 7047 - 7066 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 7067 - 7083 [(rewrite~x~in~H1).] 0.032 secs (0.031u,0.s) +Chars 7084 - 7107 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) Chars 7108 - 7113 [auto.] 0. secs (0.u,0.s) Chars 7116 - 7117 [-] 0. secs (0.u,0.s) -Chars 7118 - 7131 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 7132 - 7153 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 7118 - 7131 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 7132 - 7153 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 7154 - 7165 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 7171 - 7195 [dependent~induction~Hbp.] 0.012 secs (0.012u,0.s) +Chars 7171 - 7195 [dependent~induction~Hbp.] 0.016 secs (0.016u,0.s) Chars 7200 - 7201 [+] 0. secs (0.u,0.s) -Chars 7202 - 7215 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7202 - 7215 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7216 - 7228 [constructor.] 0. secs (0.u,0.s) -Chars 7229 - 7249 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 7229 - 7249 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) Chars 7254 - 7255 [+] 0. secs (0.u,0.s) -Chars 7256 - 7269 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7256 - 7269 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7270 - 7282 [constructor.] 0. secs (0.u,0.s) Chars 7287 - 7288 [+] 0. secs (0.u,0.s) -Chars 7289 - 7302 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7289 - 7302 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7304 - 7316 [constructor.] 0. secs (0.u,0.s) -Chars 7317 - 7361 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) +Chars 7317 - 7361 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) Chars 7364 - 7365 [-] 0. secs (0.u,0.s) -Chars 7366 - 7386 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) -Chars 7391 - 7423 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) +Chars 7366 - 7386 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) +Chars 7391 - 7423 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) Chars 7428 - 7429 [+] 0. secs (0.u,0.s) Chars 7430 - 7444 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7445 - 7453 [inv~Hbp.] 0.014 secs (0.014u,0.s) +Chars 7445 - 7453 [(inv~Hbp).] 0.02 secs (0.02u,0.s) Chars 7454 - 7467 [clear~Heqb~x.] 0. secs (0.u,0.s) -Chars 7474 - 7497 [dependent~induction~H0.] 0.008 secs (0.008u,0.s) +Chars 7474 - 7497 [dependent~induction~H0.] 0.012 secs (0.011u,0.s) Chars 7504 - 7505 [*] 0. secs (0.u,0.s) -Chars 7506 - 7529 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) +Chars 7506 - 7529 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) Chars 7530 - 7545 [clear~CIH~x0~x.] 0. secs (0.u,0.s) -Chars 7554 - 7581 [dependent~induction~Heutt.] 0.026 secs (0.026u,0.s) +Chars 7554 - 7581 [dependent~induction~Heutt.] 0.037 secs (0.037u,0.s) Chars 7590 - 7592 [++] 0. secs (0.u,0.s) -Chars 7593 - 7606 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 7607 - 7630 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 7593 - 7606 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 7607 - 7630 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 7639 - 7641 [++] 0. secs (0.u,0.s) -Chars 7642 - 7655 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7642 - 7655 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7656 - 7668 [constructor.] 0. secs (0.u,0.s) -Chars 7669 - 7691 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7669 - 7691 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) Chars 7698 - 7699 [*] 0. secs (0.u,0.s) -Chars 7700 - 7723 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 7700 - 7723 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 7724 - 7739 [4:~reflexivity.] 0. secs (0.u,0.s) Chars 7740 - 7750 [all:~auto.] 0. secs (0.u,0.s) -Chars 7759 - 7790 [assert~(t1~≈~b2)~by~now~step.] 0.001 secs (0.001u,0.s) -Chars 7800 - 7819 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 7820 - 7835 [rewrite~x~in~H.] 0.016 secs (0.016u,0.s) -Chars 7836 - 7858 [rewrite~tau_eutt~in~H.] 0.013 secs (0.013u,0.s) +Chars 7759 - 7790 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) +Chars 7800 - 7819 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 7820 - 7835 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) +Chars 7836 - 7858 [(rewrite~tau_eutt~in~H).] 0.02 secs (0.02u,0.s) Chars 7859 - 7873 [now~step~in~H.] 0. secs (0.u,0.s) Chars 7878 - 7879 [+] 0. secs (0.u,0.s) Chars 7880 - 7892 [constructor.] 0. secs (0.u,0.s) -Chars 7893 - 7915 [eapply~IHHeutt;~eauto.] 0.002 secs (0.002u,0.s) +Chars 7893 - 7915 [(eapply~IHHeutt;~eauto).] 0.003 secs (0.003u,0.s) Chars 7916 - 7923 [unstep.] 0. secs (0.u,0.s) -Chars 7924 - 7959 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) +Chars 7924 - 7959 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) Chars 7964 - 7965 [+] 0. secs (0.u,0.s) Chars 7966 - 7980 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7981 - 7989 [inv~Hbp.] 0.015 secs (0.015u,0.s) -Chars 7990 - 8032 [eapply~trace_prefix_proper_aux...] 0. secs (0.u,0.s) +Chars 7981 - 7989 [(inv~Hbp).] 0.022 secs (0.022u,0.s) +Chars 7990 - 8032 [(eapply~trace_prefix_proper_au...] 0. secs (0.u,0.s) Chars 8035 - 8036 [-] 0. secs (0.u,0.s) -Chars 8037 - 8050 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 8037 - 8050 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 8051 - 8063 [constructor.] 0. secs (0.u,0.s) -Chars 8064 - 8086 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 8087 - 8091 [Qed.] 0.217 secs (0.215u,0.001s) -Chars 8093 - 8369 [Lemma~trace_prefixF_tau_inv_r~...] 0. secs (0.u,0.s) +Chars 8064 - 8086 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 8087 - 8091 [Qed.] 0.292 secs (0.288u,0.003s) +Chars 8093 - 8369 [Lemma~trace_prefixF_tau_inv_r~...] 0.001 secs (0.001u,0.s) Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) -Chars 8379 - 8401 [intros~E~S~R~t1~b~Hbp.] 0. secs (0.u,0.s) -Chars 8404 - 8429 [dependent~induction~Hbp.] 0.005 secs (0.005u,0.s) +Chars 8379 - 8401 [(intros~E~S~R~t1~b~Hbp).] 0. secs (0.u,0.s) +Chars 8404 - 8429 [dependent~induction~Hbp.] 0.013 secs (0.012u,0.s) Chars 8432 - 8433 [-] 0. secs (0.u,0.s) -Chars 8434 - 8448 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 8449 - 8472 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 8434 - 8448 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 8449 - 8472 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 8475 - 8476 [-] 0. secs (0.u,0.s) -Chars 8478 - 8491 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 8478 - 8491 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 8492 - 8504 [constructor.] 0. secs (0.u,0.s) Chars 8505 - 8519 [now~step~in~H.] 0. secs (0.u,0.s) Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8537 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 8524 - 8537 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 8538 - 8550 [constructor.] 0. secs (0.u,0.s) -Chars 8551 - 8571 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 8551 - 8571 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) Chars 8574 - 8575 [-] 0. secs (0.u,0.s) Chars 8576 - 8581 [auto.] 0. secs (0.u,0.s) -Chars 8582 - 8586 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8582 - 8586 [Qed.] 0.006 secs (0.006u,0.s) Chars 8588 - 9127 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) Chars 9128 - 9134 [Proof.] 0. secs (0.u,0.s) -Chars 9137 - 9175 [intros~E~S~R~m1~m2~REL~r~X~e~k...] 0. secs (0.u,0.s) +Chars 9137 - 9175 [(intros~E~S~R~m1~m2~REL~r~X~e~...] 0. secs (0.u,0.s) Chars 9178 - 9190 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9193 - 9216 [dependent~induction~H1.] 0.014 secs (0.013u,0.s) +Chars 9193 - 9216 [dependent~induction~H1.] 0.02 secs (0.02u,0.s) Chars 9219 - 9220 [-] 0. secs (0.u,0.s) -Chars 9221 - 9244 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) +Chars 9221 - 9244 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 9245 - 9260 [4:~reflexivity.] 0. secs (0.u,0.s) Chars 9261 - 9271 [all:~auto.] 0. secs (0.u,0.s) -Chars 9276 - 9296 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) -Chars 9301 - 9336 [assert~(Tau~bs~≈~m2)~by~now~step.] 0.001 secs (0.001u,0.s) -Chars 9342 - 9364 [rewrite~tau_eutt~in~H.] 0.019 secs (0.018u,0.s) +Chars 9276 - 9296 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) +Chars 9301 - 9336 [(assert~(Tau~bs~≈~m2)~by~now~s...] 0.002 secs (0.002u,0.s) +Chars 9342 - 9364 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) Chars 9365 - 9379 [now~step~in~H.] 0. secs (0.u,0.s) Chars 9382 - 9383 [-] 0. secs (0.u,0.s) -Chars 9384 - 9404 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) -Chars 9405 - 9429 [dependent~induction~REL.] 0.031 secs (0.031u,0.s) +Chars 9384 - 9404 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) +Chars 9405 - 9429 [dependent~induction~REL.] 0.047 secs (0.046u,0.s) Chars 9434 - 9435 [+] 0. secs (0.u,0.s) -Chars 9436 - 9449 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9436 - 9449 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9450 - 9462 [constructor.] 0. secs (0.u,0.s) Chars 9467 - 9468 [+] 0. secs (0.u,0.s) -Chars 9469 - 9482 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9469 - 9482 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9483 - 9495 [constructor.] 0. secs (0.u,0.s) -Chars 9496 - 9516 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 9496 - 9516 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) Chars 9519 - 9520 [-] 0. secs (0.u,0.s) -Chars 9522 - 9542 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) -Chars 9543 - 9567 [dependent~induction~REL.] 0.034 secs (0.033u,0.s) +Chars 9522 - 9542 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) +Chars 9543 - 9567 [dependent~induction~REL.] 0.048 secs (0.046u,0.001s) Chars 9572 - 9573 [+] 0. secs (0.u,0.s) -Chars 9574 - 9587 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9574 - 9587 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9588 - 9600 [constructor.] 0. secs (0.u,0.s) -Chars 9601 - 9645 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) +Chars 9601 - 9645 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) Chars 9650 - 9651 [+] 0. secs (0.u,0.s) -Chars 9652 - 9665 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9652 - 9665 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9666 - 9678 [constructor.] 0. secs (0.u,0.s) -Chars 9679 - 9699 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) -Chars 9700 - 9704 [Qed.] 0.047 secs (0.046u,0.s) +Chars 9679 - 9699 [(eapply~IHREL;~eauto).] 0.007 secs (0.007u,0.s) +Chars 9700 - 9704 [Qed.] 0.068 secs (0.067u,0.001s) Chars 9706 - 9846 [Lemma~trace_prefix_proper_r~:~...] 0. secs (0.u,0.s) Chars 9847 - 9853 [Proof.] 0. secs (0.u,0.s) -Chars 9856 - 9869 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 9870 - 9889 [icoinduction~c~CIH.] 0.006 secs (0.006u,0.s) -Chars 9890 - 9915 [intros~b~b1~b2~Heutt~Hbp.] 0. secs (0.u,0.s) +Chars 9856 - 9869 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 9870 - 9889 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 9890 - 9915 [(intros~b~b1~b2~Heutt~Hbp).] 0. secs (0.u,0.s) Chars 9918 - 9932 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 9933 - 9945 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 9949 - 9975 [dependent~induction~Heutt.] 0.03 secs (0.03u,0.s) +Chars 9949 - 9975 [dependent~induction~Heutt.] 0.052 secs (0.051u,0.s) Chars 9978 - 9979 [-] 0. secs (0.u,0.s) -Chars 9980 - 9993 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9994 - 10015 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 9980 - 9993 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9994 - 10015 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 10016 - 10027 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 10028 - 10059 [induction~Hbp;~auto~with~itree.] 0.007 secs (0.007u,0.s) +Chars 10028 - 10059 [(induction~Hbp;~auto~with~itree).] 0.004 secs (0.003u,0.s) Chars 10064 - 10065 [+] 0. secs (0.u,0.s) Chars 10067 - 10079 [constructor.] 0. secs (0.u,0.s) -Chars 10080 - 10098 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 10080 - 10098 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 10103 - 10104 [+] 0. secs (0.u,0.s) Chars 10105 - 10117 [constructor.] 0. secs (0.u,0.s) -Chars 10118 - 10151 [now~do~2~ITree.Basics.Utils.step.] 0.001 secs (0.001u,0.s) +Chars 10118 - 10151 [now~do~2~ITree.Basics.Utils.step.] 0.002 secs (0.002u,0.s) Chars 10155 - 10156 [-] 0. secs (0.u,0.s) -Chars 10158 - 10179 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) -Chars 10180 - 10193 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10158 - 10179 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) +Chars 10180 - 10193 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10194 - 10205 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 10210 - 10231 [destruct~(observe~b).] 0. secs (0.u,0.s) +Chars 10210 - 10231 [(destruct~(observe~b)).] 0. secs (0.u,0.s) Chars 10236 - 10237 [+] 0. secs (0.u,0.s) -Chars 10238 - 10261 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 10238 - 10261 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 10266 - 10267 [+] 0. secs (0.u,0.s) Chars 10268 - 10280 [constructor.] 0. secs (0.u,0.s) -Chars 10281 - 10299 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 10300 - 10327 [apply~trace_prefix_tau_inv.] 0. secs (0.u,0.s) +Chars 10281 - 10299 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 10300 - 10327 [(apply~trace_prefix_tau_inv).] 0. secs (0.u,0.s) Chars 10328 - 10333 [auto.] 0. secs (0.u,0.s) Chars 10338 - 10339 [+] 0. secs (0.u,0.s) -Chars 10340 - 10348 [inv~Hbp.] 0.009 secs (0.009u,0.s) +Chars 10340 - 10348 [(inv~Hbp).] 0.019 secs (0.019u,0.s) Chars 10349 - 10361 [constructor.] 0. secs (0.u,0.s) -Chars 10362 - 10396 [eapply~trace_prefixF_vis_l;~ea...] 0. secs (0.u,0.s) +Chars 10362 - 10396 [(eapply~trace_prefixF_vis_l;~e...] 0. secs (0.u,0.s) Chars 10399 - 10400 [-] 0. secs (0.u,0.s) -Chars 10401 - 10414 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 10415 - 10436 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) +Chars 10401 - 10414 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 10415 - 10436 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 10438 - 10449 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 10450 - 10474 [dependent~induction~Hbp.] 0.015 secs (0.015u,0.s) +Chars 10450 - 10474 [dependent~induction~Hbp.] 0.021 secs (0.021u,0.s) Chars 10479 - 10480 [+] 0. secs (0.u,0.s) -Chars 10481 - 10495 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 10496 - 10519 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) +Chars 10481 - 10495 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 10496 - 10519 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) Chars 10524 - 10525 [+] 0. secs (0.u,0.s) -Chars 10526 - 10539 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10526 - 10539 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10540 - 10552 [constructor.] 0. secs (0.u,0.s) -Chars 10553 - 10573 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 10553 - 10573 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) Chars 10578 - 10579 [+] 0. secs (0.u,0.s) -Chars 10580 - 10593 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10580 - 10593 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10594 - 10606 [constructor.] 0. secs (0.u,0.s) Chars 10611 - 10612 [+] 0. secs (0.u,0.s) -Chars 10613 - 10626 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10613 - 10626 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10627 - 10639 [constructor.] 0. secs (0.u,0.s) -Chars 10640 - 10684 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) +Chars 10640 - 10684 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) Chars 10687 - 10688 [-] 0. secs (0.u,0.s) -Chars 10689 - 10710 [eapply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) -Chars 10711 - 10731 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) -Chars 10732 - 10770 [eapply~trace_prefixF_tau_inv_r...] 0. secs (0.u,0.s) +Chars 10689 - 10710 [(eapply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 10711 - 10731 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) +Chars 10732 - 10770 [(eapply~trace_prefixF_tau_inv_...] 0. secs (0.u,0.s) Chars 10773 - 10774 [-] 0. secs (0.u,0.s) -Chars 10775 - 10788 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10775 - 10788 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10789 - 10801 [constructor.] 0. secs (0.u,0.s) -Chars 10802 - 10824 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 10825 - 10829 [Qed.] 0.046 secs (0.046u,0.s) +Chars 10802 - 10824 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 10825 - 10829 [Qed.] 0.065 secs (0.063u,0.001s) Chars 10831 - 10939 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) Chars 10940 - 10946 [Proof.] 0. secs (0.u,0.s) -Chars 10949 - 10962 [repeat~intro.] 0. secs (0.u,0.s) -Chars 10963 - 10977 [split;~intros.] 0. secs (0.u,0.s) +Chars 10949 - 10962 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 10963 - 10977 [(split;~intros).] 0. secs (0.u,0.s) Chars 10980 - 10981 [-] 0. secs (0.u,0.s) -Chars 10982 - 11018 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) -Chars 11023 - 11059 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) +Chars 10982 - 11018 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) +Chars 11023 - 11059 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) Chars 11062 - 11063 [-] 0. secs (0.u,0.s) Chars 11064 - 11078 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 11079 - 11094 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 11099 - 11135 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) -Chars 11140 - 11176 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) -Chars 11177 - 11181 [Qed.] 0.006 secs (0.006u,0.s) -Chars 11183 - 11598 [Inductive~ind_comb~{E}~{R}~{S}...] 0.004 secs (0.004u,0.s) +Chars 11099 - 11135 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) +Chars 11140 - 11176 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) +Chars 11177 - 11181 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11183 - 11598 [Inductive~ind_comb~{E}~{R}~{S}...] 0.005 secs (0.005u,0.s) Chars 11600 - 11755 [Lemma~ind_comb_bind~:~~~forall...] 0. secs (0.u,0.s) Chars 11756 - 11762 [Proof.] 0. secs (0.u,0.s) -Chars 11765 - 11791 [intros~E~R~S~b1~b2~b~Hind.] 0. secs (0.u,0.s) -Chars 11792 - 11807 [induction~Hind.] 0. secs (0.u,0.s) +Chars 11765 - 11791 [(intros~E~R~S~b1~b2~b~Hind).] 0. secs (0.u,0.s) +Chars 11792 - 11807 [(induction~Hind).] 0. secs (0.u,0.s) Chars 11810 - 11811 [-] 0. secs (0.u,0.s) -Chars 11812 - 11822 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 11823 - 11842 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 11812 - 11822 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 11823 - 11842 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 11843 - 11848 [auto.] 0. secs (0.u,0.s) Chars 11851 - 11852 [-] 0. secs (0.u,0.s) -Chars 11853 - 11863 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 11864 - 11875 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 11876 - 11893 [rewrite~bind_vis.] 0.001 secs (0.001u,0.s) -Chars 11894 - 11899 [step.] 0.001 secs (0.001u,0.s) +Chars 11853 - 11863 [(rewrite~H).] 0.007 secs (0.007u,0.s) +Chars 11864 - 11875 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 11876 - 11893 [(rewrite~bind_vis).] 0.001 secs (0.001u,0.s) +Chars 11894 - 11899 [step.] 0.002 secs (0.002u,0.s) Chars 11900 - 11912 [constructor.] 0. secs (0.u,0.s) -Chars 11913 - 11920 [intros.] 0. secs (0.u,0.s) -Chars 11925 - 11936 [destruct~v.] 0. secs (0.u,0.s) -Chars 11937 - 11950 [apply~IHHind.] 0. secs (0.u,0.s) -Chars 11951 - 11955 [Qed.] 0.003 secs (0.003u,0.s) -Chars 11957 - 12359 [Inductive~trace_prefix_ind~{E}...] 0.003 secs (0.003u,0.s) +Chars 11913 - 11920 [(intros).] 0. secs (0.u,0.s) +Chars 11925 - 11936 [(destruct~v).] 0. secs (0.u,0.s) +Chars 11937 - 11950 [(apply~IHHind).] 0. secs (0.u,0.s) +Chars 11951 - 11955 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11957 - 12359 [Inductive~trace_prefix_ind~{E}...] 0.004 secs (0.004u,0.s) Chars 12361 - 12504 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) Chars 12505 - 12511 [Proof.] 0. secs (0.u,0.s) -Chars 12514 - 12538 [intros~E~R~S~b1~b2~Hpre.] 0. secs (0.u,0.s) -Chars 12539 - 12554 [induction~Hpre.] 0. secs (0.u,0.s) +Chars 12514 - 12538 [(intros~E~R~S~b1~b2~Hpre).] 0. secs (0.u,0.s) +Chars 12539 - 12554 [(induction~Hpre).] 0. secs (0.u,0.s) Chars 12557 - 12558 [-] 0. secs (0.u,0.s) Chars 12559 - 12569 [exists~b2.] 0. secs (0.u,0.s) -Chars 12570 - 12590 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 12570 - 12590 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 12593 - 12594 [-] 0. secs (0.u,0.s) -Chars 12595 - 12623 [destruct~IHHpre~as~[b3~Hb3].] 0. secs (0.u,0.s) +Chars 12595 - 12623 [(destruct~IHHpre~as~[b3~Hb3]).] 0. secs (0.u,0.s) Chars 12628 - 12638 [exists~b3.] 0. secs (0.u,0.s) -Chars 12639 - 12667 [eapply~left_vis_comb;~eauto.] 0.004 secs (0.003u,0.s) -Chars 12668 - 12672 [Qed.] 0. secs (0.u,0.s) +Chars 12639 - 12667 [(eapply~left_vis_comb;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12668 - 12672 [Qed.] 0.001 secs (0.001u,0.s) Chars 12674 - 12829 [Lemma~trace_prefix_ind_bind~:~...] 0. secs (0.u,0.s) Chars 12830 - 12836 [Proof.] 0. secs (0.u,0.s) -Chars 12839 - 12846 [intros.] 0. secs (0.u,0.s) -Chars 12847 - 12880 [apply~trace_prefix_ind_comb~in~H.] 0. secs (0.u,0.s) -Chars 12881 - 12904 [destruct~H~as~[b3~Hb3].] 0. secs (0.u,0.s) -Chars 12907 - 12934 [apply~ind_comb_bind~in~Hb3.] 0. secs (0.u,0.s) +Chars 12839 - 12846 [(intros).] 0. secs (0.u,0.s) +Chars 12847 - 12880 [(apply~trace_prefix_ind_comb~i...] 0. secs (0.u,0.s) +Chars 12881 - 12904 [(destruct~H~as~[b3~Hb3]).] 0. secs (0.u,0.s) +Chars 12907 - 12934 [(apply~ind_comb_bind~in~Hb3).] 0. secs (0.u,0.s) Chars 12935 - 12956 [exists~(fun~_~=>~b3).] 0. secs (0.u,0.s) Chars 12957 - 12962 [auto.] 0. secs (0.u,0.s) Chars 12963 - 12967 [Qed.] 0. secs (0.u,0.s) Chars 12969 - 13127 [Lemma~converge_trace_prefix~:~...] 0. secs (0.u,0.s) Chars 13128 - 13134 [Proof.] 0. secs (0.u,0.s) -Chars 13137 - 13168 [intros~E~R~S~b1~b2~r~Hbp~Hconv.] 0. secs (0.u,0.s) +Chars 13137 - 13168 [(intros~E~R~S~b1~b2~r~Hbp~Hconv).] 0. secs (0.u,0.s) Chars 13169 - 13193 [generalize~dependent~b2.] 0. secs (0.u,0.s) -Chars 13194 - 13218 [induction~Hconv;~intros.] 0. secs (0.u,0.s) +Chars 13194 - 13218 [(induction~Hconv;~intros).] 0. secs (0.u,0.s) Chars 13221 - 13222 [-] 0. secs (0.u,0.s) -Chars 13223 - 13249 [eapply~left_ret_bp;~eauto.] 0. secs (0.u,0.s) +Chars 13223 - 13249 [(eapply~left_ret_bp;~eauto).] 0. secs (0.u,0.s) Chars 13252 - 13253 [-] 0. secs (0.u,0.s) -Chars 13254 - 13271 [rewrite~H~in~Hbp.] 0.002 secs (0.002u,0.s) -Chars 13272 - 13302 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) -Chars 13307 - 13338 [apply~prefix_vis~in~Hbp~as~Hb2.] 0. secs (0.u,0.s) -Chars 13343 - 13368 [destruct~Hb2~as~[k'~Hk'].] 0. secs (0.u,0.s) -Chars 13369 - 13388 [rewrite~Hk'~in~Hbp.] 0.003 secs (0.003u,0.s) -Chars 13393 - 13419 [eapply~left_vis_bp;~eauto.] 0.002 secs (0.002u,0.s) -Chars 13420 - 13431 [destruct~b.] 0. secs (0.u,0.s) -Chars 13432 - 13446 [apply~IHHconv.] 0. secs (0.u,0.s) +Chars 13254 - 13271 [(rewrite~H~in~Hbp).] 0.006 secs (0.005u,0.s) +Chars 13272 - 13302 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) +Chars 13307 - 13338 [(apply~prefix_vis~in~Hbp~as~Hb2).] 0. secs (0.u,0.s) +Chars 13343 - 13368 [(destruct~Hb2~as~[k'~Hk']).] 0. secs (0.u,0.s) +Chars 13369 - 13388 [(rewrite~Hk'~in~Hbp).] 0.004 secs (0.004u,0.s) +Chars 13393 - 13419 [(eapply~left_vis_bp;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13420 - 13431 [(destruct~b).] 0. secs (0.u,0.s) +Chars 13432 - 13446 [(apply~IHHconv).] 0. secs (0.u,0.s) Chars 13451 - 13463 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 13464 - 13473 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 13474 - 13488 [inversion~Hbp.] 0.005 secs (0.005u,0.s) -Chars 13489 - 13516 [subst;~ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 13464 - 13473 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 13474 - 13488 [(inversion~Hbp).] 0.004 secs (0.004u,0.s) +Chars 13489 - 13516 [(subst;~ddestruction;~subst).] 0.003 secs (0.003u,0.s) Chars 13522 - 13527 [auto.] 0. secs (0.u,0.s) -Chars 13528 - 13532 [Qed.] 0.006 secs (0.006u,0.s) +Chars 13528 - 13532 [Qed.] 0.009 secs (0.008u,0.s) Chars 13534 - 13662 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) Chars 13663 - 13669 [Proof.] 0. secs (0.u,0.s) Chars 13672 - 13685 [revert~b1~b2.] 0. secs (0.u,0.s) -Chars 13686 - 13705 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13706 - 13728 [intros~b1~b2~Hdiv~Hbf.] 0. secs (0.u,0.s) +Chars 13686 - 13705 [icoinduction~c~CIH.] 0.005 secs (0.005u,0.s) +Chars 13706 - 13728 [(intros~b1~b2~Hdiv~Hbf).] 0. secs (0.u,0.s) Chars 13731 - 13743 [step~in~Hbf.] 0. secs (0.u,0.s) Chars 13744 - 13757 [step~in~Hdiv.] 0. secs (0.u,0.s) -Chars 13758 - 13772 [induction~Hbf.] 0.001 secs (0.001u,0.s) +Chars 13758 - 13772 [(induction~Hbf).] 0.001 secs (0.001u,0.s) Chars 13775 - 13776 [-] 0. secs (0.u,0.s) -Chars 13777 - 13786 [inv~Hdiv.] 0. secs (0.u,0.s) +Chars 13777 - 13786 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) Chars 13789 - 13790 [-] 0. secs (0.u,0.s) Chars 13791 - 13803 [constructor.] 0. secs (0.u,0.s) -Chars 13804 - 13813 [inv~Hdiv.] 0.005 secs (0.005u,0.s) -Chars 13814 - 13830 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 13804 - 13813 [(inv~Hdiv).] 0.006 secs (0.006u,0.s) +Chars 13814 - 13830 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 13833 - 13834 [-] 0. secs (0.u,0.s) -Chars 13835 - 13853 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 13854 - 13866 [apply~IHHbf.] 0. secs (0.u,0.s) +Chars 13835 - 13853 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 13854 - 13866 [(apply~IHHbf).] 0. secs (0.u,0.s) Chars 13867 - 13874 [unstep.] 0. secs (0.u,0.s) -Chars 13875 - 13884 [inv~Hdiv.] 0. secs (0.u,0.s) +Chars 13875 - 13884 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) Chars 13888 - 13889 [-] 0. secs (0.u,0.s) -Chars 13890 - 13908 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 13890 - 13908 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 13911 - 13912 [-] 0. secs (0.u,0.s) Chars 13913 - 13925 [constructor.] 0. secs (0.u,0.s) -Chars 13926 - 13936 [intros~[].] 0. secs (0.u,0.s) +Chars 13926 - 13936 [(intros~[]).] 0. secs (0.u,0.s) Chars 13939 - 13940 [-] 0. secs (0.u,0.s) Chars 13942 - 13954 [constructor.] 0. secs (0.u,0.s) -Chars 13955 - 13962 [intros.] 0. secs (0.u,0.s) -Chars 13963 - 13972 [inv~Hdiv.] 0.007 secs (0.007u,0.s) -Chars 13973 - 13993 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 13999 - 14010 [destruct~v.] 0. secs (0.u,0.s) -Chars 14011 - 14027 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 14028 - 14037 [apply~H1.] 0. secs (0.u,0.s) -Chars 14038 - 14042 [Qed.] 0.014 secs (0.014u,0.s) +Chars 13955 - 13962 [(intros).] 0. secs (0.u,0.s) +Chars 13963 - 13972 [(inv~Hdiv).] 0.012 secs (0.012u,0.s) +Chars 13973 - 13993 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 13999 - 14010 [(destruct~v).] 0. secs (0.u,0.s) +Chars 14011 - 14027 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 14028 - 14037 [(apply~H1).] 0. secs (0.u,0.s) +Chars 14038 - 14042 [Qed.] 0.019 secs (0.018u,0.s) Chars 14044 - 14181 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 14182 - 14188 [Proof.] 0. secs (0.u,0.s) -Chars 14191 - 14198 [intros.] 0. secs (0.u,0.s) -Chars 14199 - 14230 [destruct~(classic_converge~b1).] 0. secs (0.u,0.s) +Chars 14191 - 14198 [(intros).] 0. secs (0.u,0.s) +Chars 14199 - 14230 [(destruct~(classic_converge~b1)).] 0. secs (0.u,0.s) Chars 14233 - 14234 [-] 0. secs (0.u,0.s) -Chars 14235 - 14260 [destruct~H0~as~[r~Hconv].] 0. secs (0.u,0.s) -Chars 14261 - 14306 [eapply~converge_trace_prefix~i...] 0. secs (0.u,0.s) -Chars 14311 - 14339 [apply~trace_prefix_ind_bind.] 0. secs (0.u,0.s) +Chars 14235 - 14260 [(destruct~H0~as~[r~Hconv]).] 0. secs (0.u,0.s) +Chars 14261 - 14306 [(eapply~converge_trace_prefix~...] 0.001 secs (0.001u,0.s) +Chars 14311 - 14339 [(apply~trace_prefix_ind_bind).] 0. secs (0.u,0.s) Chars 14340 - 14345 [auto.] 0. secs (0.u,0.s) Chars 14348 - 14349 [-] 0. secs (0.u,0.s) Chars 14439 - 14501 [specialize~(@trace_prefix_div~...] 0. secs (0.u,0.s) Chars 14507 - 14536 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 14537 - 14560 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 14561 - 14581 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 14586 - 14655 [eapply~noret_bind_nop~with~(f~...] 0. secs (0.u,0.s) -Chars 14660 - 14697 [eapply~euttNoRet_trans;~try~ap...] 0.002 secs (0.002u,0.s) -Chars 14698 - 14718 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 14537 - 14560 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 14561 - 14581 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 14586 - 14655 [(eapply~noret_bind_nop~with~(f...] 0. secs (0.u,0.s) +Chars 14660 - 14697 [(eapply~euttNoRet_trans;~try~a...] 0.003 secs (0.003u,0.s) +Chars 14698 - 14718 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) Chars 14719 - 14724 [auto.] 0. secs (0.u,0.s) -Chars 14725 - 14729 [Qed.] 0. secs (0.u,0.s) +Chars 14725 - 14729 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/Labels.v.timing b/extra/Secure/Labels.v.timing index f4ffdd62..8c2b78f4 100644 --- a/extra/Secure/Labels.v.timing +++ b/extra/Secure/Labels.v.timing @@ -1,15 +1,15 @@ -Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.132 secs (0.118u,0.014s) +Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.174 secs (0.155u,0.018s) Chars 104 - 153 [Variant~nonempty~(A~:~Type)~:~...] 0. secs (0.u,0.s) Chars 155 - 220 [Variant~empty~(A~:~Type)~:~Pro...] 0. secs (0.u,0.s) Chars 222 - 276 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) Chars 277 - 283 [Proof.] 0. secs (0.u,0.s) -Chars 286 - 293 [intros.] 0. secs (0.u,0.s) -Chars 294 - 333 [destruct~(classic~(nonempty~A)...] 0. secs (0.u,0.s) +Chars 286 - 293 [(intros).] 0. secs (0.u,0.s) +Chars 294 - 333 [(destruct~(classic~(nonempty~A...] 0. secs (0.u,0.s) Chars 336 - 341 [left.] 0. secs (0.u,0.s) Chars 342 - 354 [constructor.] 0. secs (0.u,0.s) -Chars 355 - 362 [intros.] 0. secs (0.u,0.s) -Chars 363 - 371 [apply~H.] 0. secs (0.u,0.s) -Chars 372 - 390 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 355 - 362 [(intros).] 0. secs (0.u,0.s) +Chars 363 - 371 [(apply~H).] 0. secs (0.u,0.s) +Chars 372 - 390 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 391 - 395 [Qed.] 0. secs (0.u,0.s) Chars 397 - 463 [Class~Preorder~:={~L~~:~Type;~...] 0. secs (0.u,0.s) Chars 465 - 656 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) diff --git a/extra/Secure/StrongBisimProper.v.timing b/extra/Secure/StrongBisimProper.v.timing index 20ae18cb..378ee0a2 100644 --- a/extra/Secure/StrongBisimProper.v.timing +++ b/extra/Secure/StrongBisimProper.v.timing @@ -1,11 +1,11 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.177 secs (0.157u,0.017s) -Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.006 secs (0.005u,0.s) -Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0. secs (0.u,0.s) +Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.002u,0.001s) +Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.215 secs (0.19u,0.024s) +Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) +Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0.001 secs (0.u,0.s) Chars 380 - 386 [Proof.] 0. secs (0.u,0.s) -Chars 389 - 402 [repeat~intro.] 0. secs (0.u,0.s) -Chars 403 - 433 [apply~bisimulation_is_eq~in~H.] 0. secs (0.u,0.s) -Chars 434 - 465 [apply~bisimulation_is_eq~in~H0.] 0. secs (0.u,0.s) +Chars 389 - 402 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 403 - 433 [(apply~bisimulation_is_eq~in~H).] 0. secs (0.u,0.s) +Chars 434 - 465 [(apply~bisimulation_is_eq~in~H0).] 0. secs (0.u,0.s) Chars 468 - 474 [subst.] 0. secs (0.u,0.s) Chars 475 - 480 [auto.] 0. secs (0.u,0.s) -Chars 481 - 485 [Qed.] 0. secs (0.u,0.s) +Chars 481 - 485 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Axioms.v.timing b/theories/Axioms.v.timing index 9191cd14..6a85654b 100644 --- a/theories/Axioms.v.timing +++ b/theories/Axioms.v.timing @@ -1,5 +1,5 @@ -Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.094 secs (0.083u,0.01s) -Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0. secs (0.u,0.s) +Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.129 secs (0.114u,0.014s) +Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0.001 secs (0.001u,0.s) Chars 368 - 391 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 490 - 599 [Ltac~~ddestruction~:=~~~repeat...] 0. secs (0.u,0.s) Chars 666 - 719 [Definition~eq_rect_eq~:=~Eqdep...] 0. secs (0.u,0.s) @@ -11,10 +11,10 @@ Chars 1162 - 1231 [Axiom~(guarded_choice~:~forall...] 0. secs (0.u,0.s) Chars 1233 - 1303 [Inductive~mwitness~:~Type~:=~~...] 0. secs (0.u,0.s) Chars 1305 - 1380 [Lemma~classicT_inhabited~:~inh...] 0. secs (0.u,0.s) Chars 1381 - 1387 [Proof.] 0. secs (0.u,0.s) -Chars 1390 - 1521 [destruct~~(choice~~~~~(fun~(P~...] 0. secs (0.u,0.s) +Chars 1390 - 1521 [(destruct~~~(choice~~~~~~(fun~...] 0. secs (0.u,0.s) Chars 1524 - 1525 [{] 0. secs (0.u,0.s) -Chars 1526 - 1634 [intros~P;~destruct~(classic~(i...] 0. secs (0.u,0.s) +Chars 1526 - 1634 [(intros~P;~destruct~(classic~(...] 0. secs (0.u,0.s) Chars 1635 - 1636 [}] 0. secs (0.u,0.s) Chars 1639 - 1651 [constructor.] 0. secs (0.u,0.s) -Chars 1652 - 1713 [intros~P;~specialize~(H~P);~de...] 0. secs (0.u,0.s) +Chars 1652 - 1713 [(intros~P;~specialize~(H~P);~d...] 0. secs (0.u,0.s) Chars 1714 - 1718 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Basics.v.timing b/theories/Basics/Basics.v.timing index b1a54ccd..317b0272 100644 --- a/theories/Basics/Basics.v.timing +++ b/theories/Basics/Basics.v.timing @@ -1,5 +1,5 @@ Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.u,0.001s) -Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.s) +Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.001u,0.s) Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.002 secs (0.001u,0.s) Chars 364 - 405 [Import~FunctorNotation~MonadNo...] 0. secs (0.u,0.s) Chars 406 - 429 [#[local]~Open~Scope~monad.] 0. secs (0.u,0.s) @@ -16,17 +16,17 @@ Chars 1661 - 1742 [Definition~readerT~(r~:~Type)~...] 0. secs (0.u,0.s) Chars 1743 - 1784 [Definition~reader~(r~a~:~Type)...] 0. secs (0.u,0.s) Chars 1786 - 1871 [Definition~writerT~(w~:~Type)~...] 0. secs (0.u,0.s) Chars 1872 - 1898 [Definition~writer~:=~prod.] 0. secs (0.u,0.s) -Chars 1900 - 2072 [#[global]~Instance~Functor_sta...] 0. secs (0.u,0.s) -Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.u,0.s) +Chars 1900 - 2072 [#[global]~Instance~Functor_sta...] 0.001 secs (0.001u,0.s) +Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.001u,0.s) Chars 2274 - 2285 [End~Monads.] 0. secs (0.u,0.s) Chars 2452 - 2572 [#[universes(polymorphic)]~Clas...] 0. secs (0.u,0.s) Chars 2574 - 2628 [#[global]~Hint~Mode~MonadIter~...] 0. secs (0.u,0.s) -Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.004 secs (0.004u,0.s) -Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.003 secs (0.003u,0.s) +Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.004 secs (0.003u,0.s) +Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.004 secs (0.003u,0.s) Chars 3534 - 3710 [#[global]~Instance~MonadIter_r...] 0. secs (0.u,0.s) Chars 3712 - 4047 [#[global]~Instance~MonadIter_o...] 0.002 secs (0.002u,0.s) Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.s) -Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0. secs (0.u,0.s) +Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0.001 secs (0.u,0.s) Chars 4687 - 4778 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) Chars 4911 - 4994 [Definition~equiv_pred~{A~:~Typ...] 0. secs (0.u,0.s) Chars 4996 - 5142 [Definition~sum_pred~{A~B~:~Typ...] 0. secs (0.u,0.s) @@ -35,17 +35,17 @@ Chars 5262 - 5316 [Definition~TT~{A~:~Type}~:~A~-...] 0. secs (0.u,0.s) Chars 5317 - 5364 [#[global]~Hint~Unfold~TT~sum_p...] 0. secs (0.u,0.s) Chars 5366 - 5434 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) -Chars 5444 - 5456 [split;~auto.] 0. secs (0.u,0.s) +Chars 5444 - 5456 [(split;~auto).] 0. secs (0.u,0.s) Chars 5457 - 5461 [Qed.] 0. secs (0.u,0.s) Chars 5462 - 5530 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) Chars 5531 - 5537 [Proof.] 0. secs (0.u,0.s) -Chars 5540 - 5589 [red;~intros~*~EQ;~split;~intro...] 0. secs (0.u,0.s) +Chars 5540 - 5589 [(red;~intros~*~EQ;~split;~intr...] 0. secs (0.u,0.s) Chars 5590 - 5594 [Qed.] 0. secs (0.u,0.s) Chars 5595 - 5664 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) Chars 5665 - 5671 [Proof.] 0. secs (0.u,0.s) -Chars 5674 - 5751 [red;~intros~*~EQ1~EQ2;~split;~...] 0. secs (0.u,0.s) +Chars 5674 - 5751 [(red;~intros~*~EQ1~EQ2;~split;...] 0. secs (0.u,0.s) Chars 5752 - 5756 [Qed.] 0. secs (0.u,0.s) Chars 5757 - 5827 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) -Chars 5828 - 5834 [Proof.] 0.005 secs (0.004u,0.s) -Chars 5837 - 5862 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5828 - 5834 [Proof.] 0. secs (0.u,0.s) +Chars 5837 - 5862 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 5863 - 5867 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Category.v.timing b/theories/Basics/Category.v.timing index 9c041e38..9c20729b 100644 --- a/theories/Basics/Category.v.timing +++ b/theories/Basics/Category.v.timing @@ -1 +1 @@ -Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.006 secs (0.005u,0.001s) +Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.01 secs (0.008u,0.002s) diff --git a/theories/Basics/CategoryFacts.v.timing b/theories/Basics/CategoryFacts.v.timing index 912b8727..65adcb24 100644 --- a/theories/Basics/CategoryFacts.v.timing +++ b/theories/Basics/CategoryFacts.v.timing @@ -1,5 +1,5 @@ -Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.001u,0.s) +Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.003 secs (0.002u,0.s) Chars 176 - 191 [Import~Carrier.] 0. secs (0.u,0.s) Chars 192 - 212 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 213 - 234 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) @@ -12,31 +12,31 @@ Chars 1066 - 1118 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) Chars 1120 - 1150 [Context~{CatIdL_C~:~CatIdL~C}.] 0. secs (0.u,0.s) Chars 1184 - 1243 [#[global]~Instance~SemiIso_Id~...] 0. secs (0.u,0.s) Chars 1244 - 1250 [Proof.] 0. secs (0.u,0.s) -Chars 1251 - 1266 [apply~cat_id_l.] 0. secs (0.u,0.s) +Chars 1251 - 1266 [(apply~cat_id_l).] 0. secs (0.u,0.s) Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) Chars 1273 - 1340 [Context~{Equivalence_Eq2_C~:~f...] 0. secs (0.u,0.s) Chars 1342 - 1357 [Section~IsoCat.] 0. secs (0.u,0.s) Chars 1359 - 1393 [Context~{CatAssoc_C~:~CatAssoc...] 0. secs (0.u,0.s) Chars 1394 - 1501 [Context~~{Proper_Cat_C~:~foral...] 0. secs (0.u,0.s) -Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0. secs (0.u,0.s) +Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0.001 secs (0.u,0.s) Chars 1742 - 1748 [Proof.] 0. secs (0.u,0.s) -Chars 1751 - 1755 [red.] 0. secs (0.u,0.s) -Chars 1758 - 1836 [rewrite~cat_assoc,~<-~(cat_ass...] 0.005 secs (0.004u,0.s) +Chars 1751 - 1755 [(red).] 0. secs (0.u,0.s) +Chars 1758 - 1836 [(rewrite~cat_assoc,~<-~(cat_as...] 0.008 secs (0.006u,0.001s) Chars 1839 - 1851 [reflexivity.] 0. secs (0.u,0.s) -Chars 1852 - 1856 [Qed.] 0. secs (0.u,0.s) +Chars 1852 - 1856 [Qed.] 0.001 secs (0.u,0.s) Chars 1858 - 1869 [End~IsoCat.] 0. secs (0.u,0.s) Chars 1871 - 1888 [Section~IsoBimap.] 0. secs (0.u,0.s) Chars 1890 - 1916 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 1917 - 1951 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 1952 - 1990 [Context~{BimapId_bif~:~BimapId...] 0. secs (0.u,0.s) Chars 1991 - 2031 [Context~{BimapCat_bif~:~BimapC...] 0. secs (0.u,0.s) -Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0. secs (0.u,0.s) -Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0. secs (0.u,0.s) +Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0.001 secs (0.001u,0.s) +Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0.001 secs (0.001u,0.s) Chars 2402 - 2408 [Proof.] 0. secs (0.u,0.s) -Chars 2411 - 2415 [red.] 0. secs (0.u,0.s) -Chars 2418 - 2478 [rewrite~bimap_cat,~(semi_iso~f...] 0.003 secs (0.002u,0.s) +Chars 2411 - 2415 [(red).] 0. secs (0.u,0.s) +Chars 2418 - 2478 [(rewrite~bimap_cat,~(semi_iso~...] 0.006 secs (0.004u,0.001s) Chars 2481 - 2493 [reflexivity.] 0. secs (0.u,0.s) -Chars 2494 - 2498 [Qed.] 0. secs (0.u,0.s) +Chars 2494 - 2498 [Qed.] 0.001 secs (0.u,0.s) Chars 2500 - 2513 [End~IsoBimap.] 0. secs (0.u,0.s) Chars 2515 - 2528 [End~IsoFacts.] 0. secs (0.u,0.s) Chars 2552 - 2574 [Section~CategoryFacts.] 0. secs (0.u,0.s) @@ -46,11 +46,11 @@ Chars 2638 - 2695 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) Chars 2697 - 2736 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) Chars 2738 - 2756 [Context~{i~:~obj}.] 0. secs (0.u,0.s) Chars 2757 - 2791 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) -Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0.006 secs (0.005u,0.s) +Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 2879 - 2936 [Lemma~initial_unique~:~forall~...] 0. secs (0.u,0.s) Chars 2937 - 2943 [Proof.] 0. secs (0.u,0.s) -Chars 2946 - 2953 [intros.] 0. secs (0.u,0.s) -Chars 2956 - 3003 [rewrite~(initial_object~f),~(i...] 0. secs (0.u,0.s) +Chars 2946 - 2953 [(intros).] 0. secs (0.u,0.s) +Chars 2956 - 3003 [(rewrite~(initial_object~f),~(...] 0.01 secs (0.009u,0.s) Chars 3006 - 3018 [reflexivity.] 0. secs (0.u,0.s) Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) Chars 3025 - 3043 [Context~{t~:~obj}.] 0. secs (0.u,0.s) @@ -58,8 +58,8 @@ Chars 3044 - 3080 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) Chars 3081 - 3129 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) Chars 3171 - 3229 [Lemma~terminal_unique~:~forall...] 0. secs (0.u,0.s) Chars 3230 - 3236 [Proof.] 0. secs (0.u,0.s) -Chars 3239 - 3246 [intros.] 0. secs (0.u,0.s) -Chars 3249 - 3298 [rewrite~(terminal_object~f),~(...] 0. secs (0.u,0.s) +Chars 3239 - 3246 [(intros).] 0. secs (0.u,0.s) +Chars 3249 - 3298 [(rewrite~(terminal_object~f),~...] 0. secs (0.u,0.s) Chars 3301 - 3313 [reflexivity.] 0. secs (0.u,0.s) Chars 3314 - 3318 [Qed.] 0. secs (0.u,0.s) Chars 3320 - 3338 [End~CategoryFacts.] 0. secs (0.u,0.s) @@ -72,14 +72,14 @@ Chars 3551 - 3590 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) Chars 3592 - 3626 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) Chars 3628 - 3654 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 3655 - 3731 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 3733 - 3843 [Lemma~bimap_slide~{a}~{b}~{c}~...] 0. secs (0.u,0.s) +Chars 3733 - 3843 [Lemma~bimap_slide~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 3844 - 3850 [Proof.] 0. secs (0.u,0.s) -Chars 3853 - 3891 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) +Chars 3853 - 3891 [(rewrite~bimap_cat,~cat_id_l,~...] 0.003 secs (0.003u,0.s) Chars 3894 - 3906 [reflexivity.] 0. secs (0.u,0.s) Chars 3907 - 3911 [Qed.] 0. secs (0.u,0.s) -Chars 3913 - 4024 [Lemma~bimap_slide'~{a}~{b}~{c}...] 0. secs (0.u,0.s) +Chars 3913 - 4024 [Lemma~bimap_slide'~{a}~{b}~{c}...] 0.001 secs (0.001u,0.s) Chars 4025 - 4031 [Proof.] 0. secs (0.u,0.s) -Chars 4034 - 4072 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) +Chars 4034 - 4072 [(rewrite~bimap_cat,~cat_id_l,~...] 0.003 secs (0.003u,0.s) Chars 4075 - 4087 [reflexivity.] 0. secs (0.u,0.s) Chars 4088 - 4092 [Qed.] 0. secs (0.u,0.s) Chars 4094 - 4113 [End~BifunctorFacts.] 0. secs (0.u,0.s) @@ -92,194 +92,194 @@ Chars 4324 - 4358 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) Chars 4360 - 4386 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 4387 - 4473 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) Chars 4474 - 4514 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) -Chars 4516 - 4629 [Lemma~case_inl'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 4516 - 4629 [Lemma~case_inl'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 4630 - 4636 [Proof.] 0. secs (0.u,0.s) -Chars 4639 - 4683 [rewrite~<-~cat_assoc,~case_inl...] 0.001 secs (0.001u,0.s) +Chars 4639 - 4683 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.002u,0.s) Chars 4684 - 4688 [Qed.] 0. secs (0.u,0.s) -Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 4804 - 4810 [Proof.] 0. secs (0.u,0.s) -Chars 4813 - 4857 [rewrite~<-~cat_assoc,~case_inr...] 0.001 secs (0.001u,0.s) +Chars 4813 - 4857 [(rewrite~<-~cat_assoc,~case_in...] 0.001 secs (0.001u,0.s) Chars 4858 - 4862 [Qed.] 0. secs (0.u,0.s) -Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0. secs (0.u,0.s) +Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) Chars 5026 - 5032 [Proof.] 0. secs (0.u,0.s) -Chars 5035 - 5078 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) +Chars 5035 - 5078 [(apply~case_universal;~rewrite...] 0.001 secs (0.001u,0.s) Chars 5081 - 5082 [-] 0. secs (0.u,0.s) -Chars 5083 - 5113 [rewrite~case_inl;~reflexivity.] 0.01 secs (0.009u,0.s) +Chars 5083 - 5113 [(rewrite~case_inl;~reflexivity).] 0.001 secs (0.001u,0.s) Chars 5116 - 5117 [-] 0. secs (0.u,0.s) -Chars 5118 - 5148 [rewrite~case_inr;~reflexivity.] 0. secs (0.u,0.s) +Chars 5118 - 5148 [(rewrite~case_inr;~reflexivity).] 0.014 secs (0.013u,0.s) Chars 5149 - 5153 [Qed.] 0. secs (0.u,0.s) Chars 5210 - 5271 [Corollary~case_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) Chars 5272 - 5278 [Proof.] 0. secs (0.u,0.s) -Chars 5281 - 5333 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) +Chars 5281 - 5333 [(apply~case_universal;~rewrite...] 0.001 secs (0.001u,0.s) Chars 5334 - 5338 [Qed.] 0. secs (0.u,0.s) -Chars 5340 - 5426 [Lemma~case_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) +Chars 5340 - 5426 [Lemma~case_eta'~{a}~{b}~{c}~(f...] 0.001 secs (0.001u,0.s) Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) -Chars 5436 - 5471 [eapply~case_universal;~reflexi...] 0. secs (0.u,0.s) +Chars 5436 - 5471 [(eapply~case_universal;~reflex...] 0. secs (0.u,0.s) Chars 5472 - 5476 [Qed.] 0. secs (0.u,0.s) Chars 5563 - 5690 [Lemma~coprod_split~{a}~{b}~{c}...] 0.001 secs (0.001u,0.s) Chars 5691 - 5697 [Proof.] 0. secs (0.u,0.s) -Chars 5700 - 5707 [intros.] 0. secs (0.u,0.s) -Chars 5708 - 5730 [rewrite~(case_eta'~g).] 0. secs (0.u,0.s) -Chars 5733 - 5766 [apply~case_universal;~assumption.] 0. secs (0.u,0.s) +Chars 5700 - 5707 [(intros).] 0. secs (0.u,0.s) +Chars 5708 - 5730 [(rewrite~(case_eta'~g)).] 0. secs (0.u,0.s) +Chars 5733 - 5766 [(apply~case_universal;~assumpt...] 0. secs (0.u,0.s) Chars 5767 - 5771 [Qed.] 0. secs (0.u,0.s) Chars 5773 - 5890 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) Chars 5892 - 6032 [Ltac~~cat_auto'~:=~~~repeat~in...] 0. secs (0.u,0.s) Chars 6034 - 6122 [Lemma~swap_case~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) Chars 6123 - 6129 [Proof.] 0. secs (0.u,0.s) -Chars 6132 - 6168 [intros;~unfold~swap,~Swap_Copr...] 0. secs (0.u,0.s) -Chars 6171 - 6208 [rewrite~cat_case,~inr_case,~in...] 0.002 secs (0.002u,0.s) +Chars 6132 - 6168 [(intros;~unfold~swap,~Swap_Cop...] 0. secs (0.u,0.s) +Chars 6171 - 6208 [(rewrite~cat_case,~inr_case,~i...] 0.003 secs (0.003u,0.s) Chars 6211 - 6223 [reflexivity.] 0. secs (0.u,0.s) Chars 6224 - 6228 [Qed.] 0. secs (0.u,0.s) Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0. secs (0.u,0.s) Chars 6282 - 6288 [Proof.] 0. secs (0.u,0.s) -Chars 6289 - 6304 [apply~case_inr.] 0. secs (0.u,0.s) +Chars 6289 - 6304 [(apply~case_inr).] 0. secs (0.u,0.s) Chars 6305 - 6309 [Qed.] 0. secs (0.u,0.s) Chars 6311 - 6362 [Lemma~inl_swap~{a}~{b}~:~inl_~...] 0. secs (0.u,0.s) Chars 6363 - 6369 [Proof.] 0. secs (0.u,0.s) -Chars 6370 - 6385 [apply~case_inl.] 0. secs (0.u,0.s) +Chars 6370 - 6385 [(apply~case_inl).] 0. secs (0.u,0.s) Chars 6386 - 6390 [Qed.] 0. secs (0.u,0.s) Chars 6392 - 6500 [Lemma~bimap_case_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) Chars 6501 - 6507 [Proof.] 0. secs (0.u,0.s) Chars 6508 - 6520 [reflexivity.] 0. secs (0.u,0.s) Chars 6521 - 6525 [Qed.] 0. secs (0.u,0.s) -Chars 6527 - 6615 [Lemma~inr_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 6527 - 6615 [Lemma~inr_bimap~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 6616 - 6622 [Proof.] 0. secs (0.u,0.s) -Chars 6623 - 6638 [apply~case_inr.] 0. secs (0.u,0.s) +Chars 6623 - 6638 [(apply~case_inr).] 0. secs (0.u,0.s) Chars 6639 - 6643 [Qed.] 0. secs (0.u,0.s) -Chars 6645 - 6733 [Lemma~inl_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 6645 - 6733 [Lemma~inl_bimap~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 6734 - 6740 [Proof.] 0. secs (0.u,0.s) -Chars 6741 - 6756 [apply~case_inl.] 0. secs (0.u,0.s) +Chars 6741 - 6756 [(apply~case_inl).] 0. secs (0.u,0.s) Chars 6757 - 6761 [Qed.] 0. secs (0.u,0.s) Chars 6763 - 6922 [Lemma~bimap_case~{a}~{a'}~{b}~...] 0.001 secs (0.001u,0.s) Chars 6923 - 6929 [Proof.] 0. secs (0.u,0.s) -Chars 6930 - 6940 [cat_auto'.] 0.043 secs (0.038u,0.004s) -Chars 6941 - 6945 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6930 - 6940 [cat_auto'.] 0.065 secs (0.057u,0.008s) +Chars 6941 - 6945 [Qed.] 0.002 secs (0.002u,0.s) Chars 6947 - 7024 [Lemma~inl_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7025 - 7031 [Proof.] 0. secs (0.u,0.s) -Chars 7032 - 7042 [cat_auto'.] 0.01 secs (0.01u,0.s) +Chars 7032 - 7042 [cat_auto'.] 0.015 secs (0.015u,0.s) Chars 7043 - 7047 [Qed.] 0. secs (0.u,0.s) Chars 7049 - 7121 [Lemma~inl_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) -Chars 7129 - 7139 [cat_auto'.] 0.006 secs (0.006u,0.s) +Chars 7129 - 7139 [cat_auto'.] 0.009 secs (0.009u,0.s) Chars 7140 - 7144 [Qed.] 0. secs (0.u,0.s) Chars 7146 - 7223 [Lemma~inr_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7224 - 7230 [Proof.] 0. secs (0.u,0.s) -Chars 7231 - 7241 [cat_auto'.] 0.013 secs (0.013u,0.s) +Chars 7231 - 7241 [cat_auto'.] 0.019 secs (0.018u,0.s) Chars 7242 - 7246 [Qed.] 0. secs (0.u,0.s) Chars 7248 - 7320 [Lemma~inr_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7321 - 7327 [Proof.] 0. secs (0.u,0.s) -Chars 7328 - 7338 [cat_auto'.] 0.009 secs (0.009u,0.s) +Chars 7328 - 7338 [cat_auto'.] 0.013 secs (0.013u,0.s) Chars 7339 - 7343 [Qed.] 0. secs (0.u,0.s) -Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0. secs (0.u,0.s) +Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0.001 secs (0.001u,0.s) Chars 7504 - 7510 [Proof.] 0. secs (0.u,0.s) -Chars 7513 - 7544 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) -Chars 7547 - 7577 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 7580 - 7612 [rewrite~eqac,~eqbd;~reflexivity.] 0.002 secs (0.002u,0.s) -Chars 7613 - 7617 [Qed.] 0. secs (0.u,0.s) +Chars 7513 - 7544 [(intros~ac~ac'~eqac~bd~bd'~eqbd).] 0. secs (0.u,0.s) +Chars 7547 - 7577 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) +Chars 7580 - 7612 [(rewrite~eqac,~eqbd;~reflexivi...] 0.004 secs (0.004u,0.s) +Chars 7613 - 7617 [Qed.] 0.001 secs (0.001u,0.s) Chars 7619 - 7669 [#[global]~Instance~BimapId_Cop...] 0. secs (0.u,0.s) Chars 7670 - 7676 [Proof.] 0. secs (0.u,0.s) -Chars 7679 - 7690 [intros~A~B.] 0. secs (0.u,0.s) +Chars 7679 - 7690 [(intros~A~B).] 0. secs (0.u,0.s) Chars 7693 - 7702 [symmetry.] 0. secs (0.u,0.s) -Chars 7703 - 7733 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 7736 - 7755 [rewrite~2!cat_id_l.] 0.001 secs (0.001u,0.s) -Chars 7758 - 7773 [apply~case_eta.] 0. secs (0.u,0.s) +Chars 7703 - 7733 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) +Chars 7736 - 7755 [(rewrite~2!cat_id_l).] 0.002 secs (0.002u,0.s) +Chars 7758 - 7773 [(apply~case_eta).] 0. secs (0.u,0.s) Chars 7774 - 7778 [Qed.] 0. secs (0.u,0.s) Chars 7780 - 7832 [#[global]~Instance~BimapCat_Co...] 0. secs (0.u,0.s) Chars 7833 - 7839 [Proof.] 0. secs (0.u,0.s) -Chars 7840 - 7850 [cat_auto'.] 0.075 secs (0.074u,0.s) +Chars 7840 - 7850 [cat_auto'.] 0.104 secs (0.104u,0.s) Chars 7851 - 7855 [Qed.] 0.002 secs (0.002u,0.s) Chars 7857 - 7911 [#[global]~Instance~Bifunctor_C...] 0. secs (0.u,0.s) Chars 7912 - 7918 [Proof.] 0. secs (0.u,0.s) -Chars 7921 - 7952 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 7921 - 7952 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 7953 - 7957 [Qed.] 0. secs (0.u,0.s) Chars 7996 - 8080 [#[global]~Instance~SwapInvolut...] 0. secs (0.u,0.s) Chars 8081 - 8087 [Proof.] 0. secs (0.u,0.s) -Chars 8088 - 8098 [cat_auto'.] 0.022 secs (0.022u,0.s) +Chars 8088 - 8098 [cat_auto'.] 0.032 secs (0.032u,0.s) Chars 8099 - 8103 [Qed.] 0.001 secs (0.001u,0.s) Chars 8142 - 8232 [#[global]~Instance~AssocRMono_...] 0. secs (0.u,0.s) Chars 8233 - 8239 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8250 [cat_auto'.] 0.115 secs (0.114u,0.s) -Chars 8251 - 8255 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8240 - 8250 [cat_auto'.] 0.167 secs (0.167u,0.s) +Chars 8251 - 8255 [Qed.] 0.005 secs (0.005u,0.s) Chars 8257 - 8347 [#[global]~Instance~AssocLMono_...] 0. secs (0.u,0.s) Chars 8348 - 8354 [Proof.] 0. secs (0.u,0.s) -Chars 8355 - 8365 [cat_auto'.] 0.113 secs (0.112u,0.s) -Chars 8366 - 8370 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8355 - 8365 [cat_auto'.] 0.164 secs (0.164u,0.s) +Chars 8366 - 8370 [Qed.] 0.004 secs (0.004u,0.s) Chars 8372 - 8390 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 8391 - 8425 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 8426 - 8472 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 8507 - 8589 [#[global]~Instance~UnitLMono_C...] 0. secs (0.u,0.s) Chars 8590 - 8596 [Proof.] 0. secs (0.u,0.s) -Chars 8597 - 8607 [cat_auto'.] 0.018 secs (0.018u,0.s) -Chars 8608 - 8612 [Qed.] 0. secs (0.u,0.s) +Chars 8597 - 8607 [cat_auto'.] 0.025 secs (0.025u,0.s) +Chars 8608 - 8612 [Qed.] 0.001 secs (0.001u,0.s) Chars 8650 - 8732 [#[global]~Instance~UnitRMono_C...] 0. secs (0.u,0.s) Chars 8733 - 8739 [Proof.] 0. secs (0.u,0.s) -Chars 8740 - 8750 [cat_auto'.] 0.018 secs (0.018u,0.s) -Chars 8751 - 8755 [Qed.] 0. secs (0.u,0.s) +Chars 8740 - 8750 [cat_auto'.] 0.026 secs (0.026u,0.s) +Chars 8751 - 8755 [Qed.] 0.001 secs (0.001u,0.s) Chars 8757 - 8838 [#[global]~Instance~UnitLEpi_Co...] 0. secs (0.u,0.s) Chars 8839 - 8845 [Proof.] 0. secs (0.u,0.s) -Chars 8846 - 8856 [cat_auto'.] 0.003 secs (0.003u,0.s) +Chars 8846 - 8856 [cat_auto'.] 0.006 secs (0.006u,0.s) Chars 8857 - 8861 [Qed.] 0. secs (0.u,0.s) Chars 8863 - 8944 [#[global]~Instance~UnitREpi_Co...] 0. secs (0.u,0.s) Chars 8945 - 8951 [Proof.] 0. secs (0.u,0.s) -Chars 8952 - 8962 [cat_auto'.] 0.002 secs (0.002u,0.s) +Chars 8952 - 8962 [cat_auto'.] 0.003 secs (0.003u,0.s) Chars 8963 - 8967 [Qed.] 0. secs (0.u,0.s) Chars 8969 - 9018 [Lemma~inr_unit_l~{a}~:~inr_~>>...] 0. secs (0.u,0.s) Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) -Chars 9026 - 9047 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 9026 - 9047 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 9048 - 9052 [Qed.] 0. secs (0.u,0.s) Chars 9054 - 9103 [Lemma~inl_unit_r~{a}~:~inl_~>>...] 0. secs (0.u,0.s) Chars 9104 - 9110 [Proof.] 0. secs (0.u,0.s) -Chars 9111 - 9132 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 9111 - 9132 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 9133 - 9137 [Qed.] 0. secs (0.u,0.s) Chars 9139 - 9201 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 9202 - 9208 [Proof.] 0. secs (0.u,0.s) -Chars 9209 - 9219 [cat_auto'.] 0.04 secs (0.039u,0.s) -Chars 9220 - 9224 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9209 - 9219 [cat_auto'.] 0.057 secs (0.056u,0.s) +Chars 9220 - 9224 [Qed.] 0.003 secs (0.003u,0.s) Chars 9226 - 9290 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 9291 - 9297 [Proof.] 0. secs (0.u,0.s) -Chars 9298 - 9308 [cat_auto'.] 0.006 secs (0.006u,0.s) +Chars 9298 - 9308 [cat_auto'.] 0.01 secs (0.01u,0.s) Chars 9309 - 9313 [Qed.] 0. secs (0.u,0.s) Chars 9376 - 9434 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 9435 - 9441 [Proof.] 0. secs (0.u,0.s) -Chars 9442 - 9452 [cat_auto'.] 0.13 secs (0.129u,0.s) -Chars 9453 - 9457 [Qed.] 0.004 secs (0.004u,0.s) +Chars 9442 - 9452 [cat_auto'.] 0.187 secs (0.187u,0.s) +Chars 9453 - 9457 [Qed.] 0.006 secs (0.006u,0.s) Chars 9459 - 9519 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 9520 - 9526 [Proof.] 0. secs (0.u,0.s) -Chars 9527 - 9537 [cat_auto'.] 0.786 secs (0.783u,0.003s) -Chars 9538 - 9542 [Qed.] 0.021 secs (0.021u,0.s) +Chars 9527 - 9537 [cat_auto'.] 1.209 secs (1.122u,0.006s) +Chars 9538 - 9542 [Qed.] 0.034 secs (0.034u,0.s) Chars 9544 - 9598 [#[global]~Instance~Monoidal_Co...] 0. secs (0.u,0.s) Chars 9599 - 9605 [Proof.] 0. secs (0.u,0.s) -Chars 9608 - 9660 [constructor;~idtac~+~construct...] 0.003 secs (0.003u,0.s) +Chars 9608 - 9660 [(constructor;~idtac~+~construc...] 0.004 secs (0.004u,0.s) Chars 9661 - 9665 [Qed.] 0. secs (0.u,0.s) Chars 9667 - 9727 [#[global]~Instance~AssocLAssoc...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9735 - 9745 [cat_auto'.] 0.772 secs (0.77u,0.001s) -Chars 9746 - 9750 [Qed.] 0.021 secs (0.021u,0.s) +Chars 9735 - 9745 [cat_auto'.] 1.127 secs (1.113u,0.003s) +Chars 9746 - 9750 [Qed.] 0.074 secs (0.037u,0.s) Chars 9813 - 9869 [#[global]~Instance~SwapUnitL_C...] 0. secs (0.u,0.s) Chars 9870 - 9876 [Proof.] 0. secs (0.u,0.s) -Chars 9877 - 9887 [cat_auto'.] 0.027 secs (0.026u,0.s) +Chars 9877 - 9887 [cat_auto'.] 0.04 secs (0.04u,0.s) Chars 9888 - 9892 [Qed.] 0.001 secs (0.001u,0.s) Chars 9894 - 9950 [#[global]~Instance~SwapAssocR_...] 0. secs (0.u,0.s) Chars 9951 - 9957 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9968 [cat_auto'.] 0.464 secs (0.463u,0.s) -Chars 9969 - 9973 [Qed.] 0.013 secs (0.013u,0.s) +Chars 9958 - 9968 [cat_auto'.] 0.726 secs (0.7u,0.001s) +Chars 9969 - 9973 [Qed.] 0.022 secs (0.022u,0.s) Chars 9975 - 10031 [#[global]~Instance~SwapAssocL_...] 0. secs (0.u,0.s) Chars 10032 - 10038 [Proof.] 0. secs (0.u,0.s) -Chars 10039 - 10049 [cat_auto'.] 0.456 secs (0.456u,0.s) -Chars 10050 - 10054 [Qed.] 0.013 secs (0.013u,0.s) +Chars 10039 - 10049 [cat_auto'.] 0.682 secs (0.68u,0.001s) +Chars 10050 - 10054 [Qed.] 0.02 secs (0.02u,0.s) Chars 10056 - 10116 [#[global]~Instance~SymMonoidal...] 0. secs (0.u,0.s) Chars 10117 - 10123 [Proof.] 0. secs (0.u,0.s) -Chars 10126 - 10157 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 10126 - 10157 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 10158 - 10162 [Qed.] 0. secs (0.u,0.s) -Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.001 secs (0.001u,0.s) +Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.002 secs (0.002u,0.s) Chars 10270 - 10276 [Proof.] 0. secs (0.u,0.s) -Chars 10277 - 10287 [cat_auto'.] 0.079 secs (0.079u,0.s) -Chars 10288 - 10292 [Qed.] 0.002 secs (0.002u,0.s) -Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 10277 - 10287 [cat_auto'.] 0.113 secs (0.113u,0.s) +Chars 10288 - 10292 [Qed.] 0.003 secs (0.003u,0.s) +Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) Chars 10424 - 10430 [Proof.] 0. secs (0.u,0.s) -Chars 10431 - 10441 [cat_auto'.] 0.067 secs (0.066u,0.s) -Chars 10442 - 10446 [Qed.] 0.002 secs (0.002u,0.s) -Chars 10448 - 10467 [End~CoproductFacts.] 0.001 secs (0.001u,0.s) +Chars 10431 - 10441 [cat_auto'.] 0.1 secs (0.1u,0.s) +Chars 10442 - 10446 [Qed.] 0.003 secs (0.003u,0.s) +Chars 10448 - 10467 [End~CoproductFacts.] 0.002 secs (0.002u,0.s) Chars 10490 - 10511 [Section~ProductFacts.] 0. secs (0.u,0.s) Chars 10513 - 10548 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) Chars 10550 - 10574 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) @@ -289,37 +289,37 @@ Chars 10675 - 10709 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) Chars 10711 - 10737 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 10738 - 10824 [Context~{Prod_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) Chars 10825 - 10861 [Context~{Product_C~:~Product~C...] 0. secs (0.u,0.s) -Chars 10863 - 10974 [Lemma~pair_fst'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 10863 - 10974 [Lemma~pair_fst'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 10975 - 10981 [Proof.] 0. secs (0.u,0.s) -Chars 10984 - 11012 [rewrite~cat_assoc,~pair_fst.] 0.001 secs (0.001u,0.s) +Chars 10984 - 11012 [(rewrite~cat_assoc,~pair_fst).] 0.002 secs (0.002u,0.s) Chars 11013 - 11025 [reflexivity.] 0. secs (0.u,0.s) Chars 11026 - 11030 [Qed.] 0. secs (0.u,0.s) -Chars 11032 - 11143 [Lemma~pair_snd'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 11032 - 11143 [Lemma~pair_snd'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 11144 - 11150 [Proof.] 0. secs (0.u,0.s) -Chars 11153 - 11181 [rewrite~cat_assoc,~pair_snd.] 0.001 secs (0.001u,0.s) +Chars 11153 - 11181 [(rewrite~cat_assoc,~pair_snd).] 0.002 secs (0.002u,0.s) Chars 11182 - 11194 [reflexivity.] 0. secs (0.u,0.s) Chars 11195 - 11199 [Qed.] 0. secs (0.u,0.s) Chars 11235 - 11359 [Lemma~pair_cat~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) Chars 11360 - 11366 [Proof.] 0. secs (0.u,0.s) -Chars 11369 - 11390 [apply~pair_universal.] 0. secs (0.u,0.s) +Chars 11369 - 11390 [(apply~pair_universal).] 0. secs (0.u,0.s) Chars 11393 - 11394 [-] 0. secs (0.u,0.s) -Chars 11395 - 11426 [rewrite~pair_fst';~reflexivity.] 0. secs (0.u,0.s) +Chars 11395 - 11426 [(rewrite~pair_fst';~reflexivity).] 0. secs (0.u,0.s) Chars 11429 - 11430 [-] 0. secs (0.u,0.s) -Chars 11431 - 11462 [rewrite~pair_snd';~reflexivity.] 0. secs (0.u,0.s) +Chars 11431 - 11462 [(rewrite~pair_snd';~reflexivity).] 0. secs (0.u,0.s) Chars 11463 - 11467 [Qed.] 0. secs (0.u,0.s) Chars 11513 - 11574 [Corollary~pair_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) Chars 11575 - 11581 [Proof.] 0. secs (0.u,0.s) -Chars 11584 - 11636 [apply~pair_universal;~rewrite~...] 0.001 secs (0.001u,0.s) +Chars 11584 - 11636 [(apply~pair_universal;~rewrite...] 0.001 secs (0.001u,0.s) Chars 11637 - 11641 [Qed.] 0. secs (0.u,0.s) -Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) +Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0.001 secs (0.001u,0.s) Chars 11730 - 11736 [Proof.] 0. secs (0.u,0.s) -Chars 11739 - 11774 [eapply~pair_universal;~reflexi...] 0. secs (0.u,0.s) +Chars 11739 - 11774 [(eapply~pair_universal;~reflex...] 0.002 secs (0.002u,0.s) Chars 11775 - 11779 [Qed.] 0. secs (0.u,0.s) Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.001 secs (0.001u,0.s) Chars 11992 - 11998 [Proof.] 0. secs (0.u,0.s) -Chars 12001 - 12008 [intros.] 0. secs (0.u,0.s) -Chars 12009 - 12031 [rewrite~(pair_eta'~g).] 0. secs (0.u,0.s) -Chars 12034 - 12067 [apply~pair_universal;~assumption.] 0. secs (0.u,0.s) +Chars 12001 - 12008 [(intros).] 0. secs (0.u,0.s) +Chars 12009 - 12031 [(rewrite~(pair_eta'~g)).] 0. secs (0.u,0.s) +Chars 12034 - 12067 [(apply~pair_universal;~assumpt...] 0. secs (0.u,0.s) Chars 12068 - 12072 [Qed.] 0. secs (0.u,0.s) Chars 12074 - 12106 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) Chars 12107 - 12138 [Existing~Instance~Swap_Product.] 0. secs (0.u,0.s) @@ -335,165 +335,165 @@ Chars 12993 - 13116 [Ltac~~cat_auto_prod~:=~~~unfol...] 0. secs (0.u,0.s) Chars 13118 - 13268 [Ltac~~cat_auto_prod'~:=~~~repe...] 0. secs (0.u,0.s) Chars 13271 - 13359 [Lemma~swap_pair~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) Chars 13360 - 13366 [Proof.] 0. secs (0.u,0.s) -Chars 13369 - 13403 [intros;~unfold~swap,~Swap_Prod...] 0. secs (0.u,0.s) -Chars 13406 - 13443 [rewrite~pair_cat,~pair_fst,~pa...] 0.002 secs (0.002u,0.s) +Chars 13369 - 13403 [(intros;~unfold~swap,~Swap_Pro...] 0. secs (0.u,0.s) +Chars 13406 - 13443 [(rewrite~pair_cat,~pair_fst,~p...] 0.003 secs (0.003u,0.s) Chars 13448 - 13460 [reflexivity.] 0. secs (0.u,0.s) Chars 13461 - 13465 [Qed.] 0. secs (0.u,0.s) Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) Chars 13519 - 13525 [Proof.] 0. secs (0.u,0.s) -Chars 13526 - 13541 [apply~pair_snd.] 0. secs (0.u,0.s) +Chars 13526 - 13541 [(apply~pair_snd).] 0. secs (0.u,0.s) Chars 13542 - 13546 [Qed.] 0. secs (0.u,0.s) Chars 13548 - 13599 [Lemma~swap_fst~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) Chars 13600 - 13606 [Proof.] 0. secs (0.u,0.s) -Chars 13607 - 13622 [apply~pair_fst.] 0. secs (0.u,0.s) +Chars 13607 - 13622 [(apply~pair_fst).] 0. secs (0.u,0.s) Chars 13623 - 13627 [Qed.] 0. secs (0.u,0.s) Chars 13629 - 13737 [Lemma~bimap_pair_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) Chars 13738 - 13744 [Proof.] 0. secs (0.u,0.s) Chars 13745 - 13757 [reflexivity.] 0. secs (0.u,0.s) Chars 13758 - 13762 [Qed.] 0. secs (0.u,0.s) -Chars 13764 - 13852 [Lemma~bimap_fst~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 13764 - 13852 [Lemma~bimap_fst~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 13853 - 13859 [Proof.] 0. secs (0.u,0.s) -Chars 13860 - 13875 [apply~pair_fst.] 0. secs (0.u,0.s) +Chars 13860 - 13875 [(apply~pair_fst).] 0. secs (0.u,0.s) Chars 13876 - 13880 [Qed.] 0. secs (0.u,0.s) -Chars 13882 - 13970 [Lemma~bimap_snd~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) +Chars 13882 - 13970 [Lemma~bimap_snd~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 13971 - 13977 [Proof.] 0. secs (0.u,0.s) -Chars 13978 - 13993 [apply~pair_snd.] 0. secs (0.u,0.s) +Chars 13978 - 13993 [(apply~pair_snd).] 0. secs (0.u,0.s) Chars 13994 - 13998 [Qed.] 0. secs (0.u,0.s) Chars 14000 - 14157 [Lemma~pair_bimap~{a}~{b}~{b'}~...] 0.001 secs (0.001u,0.s) Chars 14158 - 14164 [Proof.] 0. secs (0.u,0.s) -Chars 14165 - 14180 [cat_auto_prod'.] 0.042 secs (0.042u,0.s) -Chars 14181 - 14185 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14165 - 14180 [cat_auto_prod'.] 0.063 secs (0.062u,0.s) +Chars 14181 - 14185 [Qed.] 0.002 secs (0.002u,0.s) Chars 14187 - 14259 [Lemma~assoc_r_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14260 - 14266 [Proof.] 0. secs (0.u,0.s) -Chars 14267 - 14282 [cat_auto_prod'.] 0.006 secs (0.006u,0.s) +Chars 14267 - 14282 [cat_auto_prod'.] 0.009 secs (0.009u,0.s) Chars 14283 - 14287 [Qed.] 0. secs (0.u,0.s) -Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) Chars 14362 - 14368 [Proof.] 0. secs (0.u,0.s) -Chars 14369 - 14384 [cat_auto_prod'.] 0.009 secs (0.009u,0.s) +Chars 14369 - 14384 [cat_auto_prod'.] 0.013 secs (0.013u,0.s) Chars 14385 - 14389 [Qed.] 0. secs (0.u,0.s) Chars 14391 - 14468 [Lemma~assoc_l_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14469 - 14475 [Proof.] 0. secs (0.u,0.s) -Chars 14476 - 14491 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) -Chars 14492 - 14496 [Qed.] 0. secs (0.u,0.s) +Chars 14476 - 14491 [cat_auto_prod'.] 0.017 secs (0.017u,0.s) +Chars 14492 - 14496 [Qed.] 0.001 secs (0.001u,0.s) Chars 14499 - 14576 [Lemma~assoc_r_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14577 - 14583 [Proof.] 0. secs (0.u,0.s) -Chars 14584 - 14599 [cat_auto_prod'.] 0.014 secs (0.014u,0.s) -Chars 14600 - 14604 [Qed.] 0. secs (0.u,0.s) -Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0. secs (0.u,0.s) +Chars 14584 - 14599 [cat_auto_prod'.] 0.043 secs (0.023u,0.s) +Chars 14600 - 14604 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0.004 secs (0.001u,0.s) Chars 14907 - 14913 [Proof.] 0. secs (0.u,0.s) -Chars 14916 - 14947 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) -Chars 14950 - 14978 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) -Chars 14981 - 15013 [rewrite~eqac,~eqbd;~reflexivity.] 0.003 secs (0.003u,0.s) -Chars 15014 - 15018 [Qed.] 0. secs (0.u,0.s) +Chars 14916 - 14947 [(intros~ac~ac'~eqac~bd~bd'~eqbd).] 0. secs (0.u,0.s) +Chars 14950 - 14978 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) +Chars 14981 - 15013 [(rewrite~eqac,~eqbd;~reflexivi...] 0.02 secs (0.005u,0.s) +Chars 15014 - 15018 [Qed.] 0.001 secs (0.001u,0.s) Chars 15020 - 15061 [Instance~BimapId_Product~:~(Bi...] 0. secs (0.u,0.s) Chars 15062 - 15068 [Proof.] 0. secs (0.u,0.s) -Chars 15071 - 15082 [intros~A~B.] 0. secs (0.u,0.s) +Chars 15071 - 15082 [(intros~A~B).] 0. secs (0.u,0.s) Chars 15085 - 15094 [symmetry.] 0. secs (0.u,0.s) -Chars 15095 - 15123 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) -Chars 15126 - 15145 [rewrite~2!cat_id_r.] 0.001 secs (0.001u,0.s) -Chars 15148 - 15163 [apply~pair_eta.] 0. secs (0.u,0.s) +Chars 15095 - 15123 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) +Chars 15126 - 15145 [(rewrite~2!cat_id_r).] 0.003 secs (0.003u,0.s) +Chars 15148 - 15163 [(apply~pair_eta).] 0. secs (0.u,0.s) Chars 15164 - 15168 [Qed.] 0. secs (0.u,0.s) Chars 15170 - 15213 [Instance~BimapCat_Product~:~(B...] 0. secs (0.u,0.s) Chars 15214 - 15220 [Proof.] 0. secs (0.u,0.s) -Chars 15221 - 15236 [cat_auto_prod'.] 0.073 secs (0.073u,0.s) -Chars 15237 - 15241 [Qed.] 0.001 secs (0.001u,0.s) +Chars 15221 - 15236 [cat_auto_prod'.] 0.112 secs (0.111u,0.s) +Chars 15237 - 15241 [Qed.] 0.002 secs (0.002u,0.s) Chars 15243 - 15288 [Instance~Bifunctor_Product~:~(...] 0. secs (0.u,0.s) Chars 15289 - 15295 [Proof.] 0. secs (0.u,0.s) -Chars 15298 - 15329 [constructor;~typeclasses~eauto.] 0.001 secs (0.001u,0.s) +Chars 15298 - 15329 [(constructor;~typeclasses~eauto).] 0.002 secs (0.002u,0.s) Chars 15330 - 15334 [Qed.] 0. secs (0.u,0.s) Chars 15373 - 15448 [Instance~SwapInvolutive_Produc...] 0. secs (0.u,0.s) Chars 15449 - 15455 [Proof.] 0. secs (0.u,0.s) -Chars 15456 - 15471 [cat_auto_prod'.] 0.03 secs (0.03u,0.s) +Chars 15456 - 15471 [cat_auto_prod'.] 0.045 secs (0.045u,0.s) Chars 15472 - 15476 [Qed.] 0.001 secs (0.001u,0.s) Chars 15515 - 15596 [Instance~AssocRMono_Product~~{...] 0. secs (0.u,0.s) Chars 15597 - 15603 [Proof.] 0. secs (0.u,0.s) -Chars 15604 - 15619 [cat_auto_prod'.] 0.142 secs (0.141u,0.s) -Chars 15620 - 15624 [Qed.] 0.003 secs (0.003u,0.s) +Chars 15604 - 15619 [cat_auto_prod'.] 0.211 secs (0.21u,0.s) +Chars 15620 - 15624 [Qed.] 0.004 secs (0.004u,0.s) Chars 15626 - 15707 [Instance~AssocLMono_Product~~{...] 0. secs (0.u,0.s) Chars 15708 - 15714 [Proof.] 0. secs (0.u,0.s) -Chars 15715 - 15730 [cat_auto_prod'.] 0.137 secs (0.137u,0.s) -Chars 15731 - 15735 [Qed.] 0.003 secs (0.003u,0.s) +Chars 15715 - 15730 [cat_auto_prod'.] 0.206 secs (0.205u,0.s) +Chars 15731 - 15735 [Qed.] 0.005 secs (0.005u,0.s) Chars 15737 - 15755 [Context~(t~:~obj).] 0. secs (0.u,0.s) Chars 15756 - 15792 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) Chars 15793 - 15841 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) Chars 15874 - 15947 [Instance~UnitLMono_Product~~{a...] 0. secs (0.u,0.s) Chars 15948 - 15954 [Proof.] 0. secs (0.u,0.s) -Chars 15955 - 15970 [cat_auto_prod'.] 0.026 secs (0.026u,0.s) -Chars 15971 - 15995 [rewrite~terminal_unique.] 0. secs (0.u,0.s) +Chars 15955 - 15970 [cat_auto_prod'.] 0.041 secs (0.04u,0.s) +Chars 15971 - 15995 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 15996 - 16008 [reflexivity.] 0. secs (0.u,0.s) Chars 16009 - 16013 [Qed.] 0.001 secs (0.001u,0.s) Chars 16051 - 16131 [#[global]~Instance~UnitRMono_P...] 0. secs (0.u,0.s) Chars 16132 - 16138 [Proof.] 0. secs (0.u,0.s) -Chars 16139 - 16154 [cat_auto_prod'.] 0.027 secs (0.027u,0.s) -Chars 16155 - 16179 [rewrite~terminal_unique.] 0. secs (0.u,0.s) +Chars 16139 - 16154 [cat_auto_prod'.] 0.04 secs (0.04u,0.s) +Chars 16155 - 16179 [(rewrite~terminal_unique).] 0.001 secs (0.001u,0.s) Chars 16180 - 16192 [reflexivity.] 0. secs (0.u,0.s) Chars 16193 - 16197 [Qed.] 0.001 secs (0.001u,0.s) Chars 16199 - 16278 [#[global]~Instance~UnitLEpi_Pr...] 0. secs (0.u,0.s) Chars 16279 - 16285 [Proof.] 0. secs (0.u,0.s) -Chars 16286 - 16301 [cat_auto_prod'.] 0.003 secs (0.003u,0.s) +Chars 16286 - 16301 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) Chars 16302 - 16306 [Qed.] 0. secs (0.u,0.s) Chars 16308 - 16387 [#[global]~Instance~UnitREpi_Pr...] 0. secs (0.u,0.s) Chars 16388 - 16394 [Proof.] 0. secs (0.u,0.s) -Chars 16395 - 16410 [cat_auto_prod'.] 0.002 secs (0.002u,0.s) +Chars 16395 - 16410 [cat_auto_prod'.] 0.003 secs (0.003u,0.s) Chars 16411 - 16415 [Qed.] 0. secs (0.u,0.s) Chars 16417 - 16468 [Lemma~unit_l'_snd~{a}~:~unit_l...] 0. secs (0.u,0.s) Chars 16469 - 16475 [Proof.] 0. secs (0.u,0.s) -Chars 16476 - 16497 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 16476 - 16497 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 16498 - 16502 [Qed.] 0. secs (0.u,0.s) Chars 16504 - 16555 [Lemma~unit_r'_fst~{a}~:~unit_r...] 0. secs (0.u,0.s) Chars 16556 - 16562 [Proof.] 0. secs (0.u,0.s) -Chars 16563 - 16584 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) +Chars 16563 - 16584 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 16585 - 16589 [Qed.] 0. secs (0.u,0.s) Chars 16591 - 16644 [Instance~UnitLNatural_Product~...] 0. secs (0.u,0.s) Chars 16645 - 16651 [Proof.] 0. secs (0.u,0.s) -Chars 16652 - 16667 [cat_auto_prod'.] 0.007 secs (0.007u,0.s) +Chars 16652 - 16667 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) Chars 16668 - 16672 [Qed.] 0. secs (0.u,0.s) Chars 16674 - 16729 [Instance~UnitL'Natural_Product...] 0. secs (0.u,0.s) Chars 16730 - 16736 [Proof.] 0. secs (0.u,0.s) -Chars 16737 - 16752 [cat_auto_prod'.] 0.055 secs (0.055u,0.s) -Chars 16753 - 16777 [rewrite~terminal_unique.] 0. secs (0.u,0.s) +Chars 16737 - 16752 [cat_auto_prod'.] 0.082 secs (0.081u,0.s) +Chars 16753 - 16777 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 16778 - 16790 [reflexivity.] 0. secs (0.u,0.s) -Chars 16791 - 16795 [Qed.] 0.002 secs (0.001u,0.s) +Chars 16791 - 16795 [Qed.] 0.002 secs (0.002u,0.s) Chars 16856 - 16905 [Instance~AssocRUnit_Product~:~...] 0. secs (0.u,0.s) Chars 16906 - 16912 [Proof.] 0. secs (0.u,0.s) -Chars 16913 - 16928 [cat_auto_prod'.] 0.089 secs (0.088u,0.s) -Chars 16929 - 16933 [Qed.] 0.002 secs (0.002u,0.s) +Chars 16913 - 16928 [cat_auto_prod'.] 0.14 secs (0.136u,0.s) +Chars 16929 - 16933 [Qed.] 0.003 secs (0.003u,0.s) Chars 16935 - 16986 [Instance~AssocRAssocR_Product~...] 0. secs (0.u,0.s) Chars 16987 - 16993 [Proof.] 0. secs (0.u,0.s) -Chars 16994 - 17009 [cat_auto_prod'.] 0.927 secs (0.919u,0.004s) -Chars 17010 - 17014 [Qed.] 0.022 secs (0.022u,0.s) +Chars 16994 - 17009 [cat_auto_prod'.] 1.313 secs (1.308u,0.002s) +Chars 17010 - 17014 [Qed.] 0.035 secs (0.035u,0.s) Chars 17016 - 17061 [Instance~Monoidal_Product~:~(M...] 0. secs (0.u,0.s) Chars 17062 - 17068 [Proof.] 0. secs (0.u,0.s) -Chars 17071 - 17123 [constructor;~idtac~+~construct...] 0.003 secs (0.003u,0.s) +Chars 17071 - 17123 [(constructor;~idtac~+~construc...] 0.005 secs (0.005u,0.s) Chars 17124 - 17128 [Qed.] 0. secs (0.u,0.s) Chars 17130 - 17181 [Instance~AssocLAssocL_Product~...] 0. secs (0.u,0.s) Chars 17182 - 17188 [Proof.] 0. secs (0.u,0.s) -Chars 17189 - 17204 [cat_auto_prod'.] 0.901 secs (0.896u,0.004s) -Chars 17205 - 17209 [Qed.] 0.022 secs (0.021u,0.s) +Chars 17189 - 17204 [cat_auto_prod'.] 1.307 secs (1.305u,0.001s) +Chars 17205 - 17209 [Qed.] 0.037 secs (0.037u,0.s) Chars 17272 - 17319 [Instance~SwapUnitL_Product~:~(...] 0. secs (0.u,0.s) Chars 17320 - 17326 [Proof.] 0. secs (0.u,0.s) Chars 17327 - 17342 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) Chars 17343 - 17347 [Qed.] 0. secs (0.u,0.s) Chars 17349 - 17396 [Instance~SwapAssocR_Product~:~...] 0. secs (0.u,0.s) Chars 17397 - 17403 [Proof.] 0. secs (0.u,0.s) -Chars 17404 - 17419 [cat_auto_prod'.] 0.516 secs (0.514u,0.002s) -Chars 17420 - 17424 [Qed.] 0.014 secs (0.014u,0.s) +Chars 17404 - 17419 [cat_auto_prod'.] 0.73 secs (0.729u,0.s) +Chars 17420 - 17424 [Qed.] 0.021 secs (0.021u,0.s) Chars 17426 - 17473 [Instance~SwapAssocL_Product~:~...] 0. secs (0.u,0.s) Chars 17474 - 17480 [Proof.] 0. secs (0.u,0.s) -Chars 17481 - 17496 [cat_auto_prod'.] 0.523 secs (0.52u,0.002s) -Chars 17497 - 17501 [Qed.] 0.014 secs (0.014u,0.s) +Chars 17481 - 17496 [cat_auto_prod'.] 0.724 secs (0.722u,0.001s) +Chars 17497 - 17501 [Qed.] 0.021 secs (0.021u,0.s) Chars 17503 - 17554 [Instance~SymMonoidal_Product~:...] 0. secs (0.u,0.s) Chars 17555 - 17561 [Proof.] 0. secs (0.u,0.s) -Chars 17564 - 17595 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 17564 - 17595 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 17596 - 17600 [Qed.] 0. secs (0.u,0.s) Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.001 secs (0.001u,0.s) Chars 17713 - 17719 [Proof.] 0. secs (0.u,0.s) -Chars 17720 - 17735 [cat_auto_prod'.] 0.087 secs (0.087u,0.s) -Chars 17736 - 17740 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.001 secs (0.001u,0.s) +Chars 17720 - 17735 [cat_auto_prod'.] 0.12 secs (0.12u,0.s) +Chars 17736 - 17740 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.002 secs (0.002u,0.s) Chars 17877 - 17883 [Proof.] 0. secs (0.u,0.s) -Chars 17884 - 17899 [cat_auto_prod'.] 0.077 secs (0.077u,0.s) -Chars 17900 - 17904 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17884 - 17899 [cat_auto_prod'.] 0.108 secs (0.107u,0.s) +Chars 17900 - 17904 [Qed.] 0.003 secs (0.003u,0.s) Chars 17906 - 17923 [End~ProductFacts.] 0.001 secs (0.001u,0.s) Chars 17926 - 18039 [Ltac~~cat_auto_step~:=~~~repea...] 0. secs (0.u,0.s) Chars 18041 - 18152 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) @@ -510,185 +510,185 @@ Chars 18578 - 18610 [Context~{Iter_bif~:~Iter~C~bif}.] 0. secs (0.u,0.s) Chars 18611 - 18651 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0. secs (0.u,0.s) Chars 18754 - 18760 [Proof.] 0. secs (0.u,0.s) -Chars 18763 - 18776 [repeat~intro.] 0. secs (0.u,0.s) -Chars 18779 - 18791 [unfold~loop.] 0. secs (0.u,0.s) -Chars 18794 - 18804 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 18763 - 18776 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 18779 - 18791 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 18794 - 18804 [(rewrite~H).] 0.003 secs (0.003u,0.s) Chars 18807 - 18819 [reflexivity.] 0. secs (0.u,0.s) Chars 18820 - 18824 [Qed.] 0. secs (0.u,0.s) Chars 19094 - 19222 [Lemma~loop_natural_left~{a}~{a...] 0.001 secs (0.001u,0.s) Chars 19223 - 19229 [Proof.] 0. secs (0.u,0.s) -Chars 19232 - 19244 [unfold~loop.] 0. secs (0.u,0.s) -Chars 19247 - 19382 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) +Chars 19232 - 19244 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 19247 - 19382 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) Chars 19385 - 19386 [-] 0. secs (0.u,0.s) -Chars 19387 - 19410 [rewrite~iter_dinatural.] 0.001 secs (0.001u,0.s) -Chars 19415 - 19424 [cat_auto.] 0.122 secs (0.122u,0.s) -Chars 19425 - 19444 [do~2~cat_auto_step.] 0.002 secs (0.001u,0.s) -Chars 19445 - 19454 [cat_auto.] 0.07 secs (0.07u,0.s) +Chars 19387 - 19410 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) +Chars 19415 - 19424 [cat_auto.] 0.171 secs (0.171u,0.s) +Chars 19425 - 19444 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) +Chars 19445 - 19454 [cat_auto.] 0.098 secs (0.098u,0.s) Chars 19457 - 19458 [-] 0. secs (0.u,0.s) -Chars 19459 - 19468 [cat_auto.] 0.066 secs (0.065u,0.s) -Chars 19469 - 19473 [Qed.] 0.01 secs (0.01u,0.s) -Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.001 secs (0.001u,0.s) +Chars 19459 - 19468 [cat_auto.] 0.093 secs (0.093u,0.s) +Chars 19469 - 19473 [Qed.] 0.013 secs (0.013u,0.s) +Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.002 secs (0.002u,0.s) Chars 19843 - 19849 [Proof.] 0. secs (0.u,0.s) -Chars 19852 - 19864 [unfold~loop.] 0. secs (0.u,0.s) -Chars 19867 - 19885 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 19886 - 19900 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 19903 - 19924 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) -Chars 19925 - 19939 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 19942 - 19995 [rewrite~!cat_assoc,~!bimap_cat...] 0.017 secs (0.017u,0.s) +Chars 19852 - 19864 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 19867 - 19885 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 19886 - 19900 [cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 19903 - 19924 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) +Chars 19925 - 19939 [cat_auto_step.] 0. secs (0.u,0.s) +Chars 19942 - 19995 [(rewrite~!cat_assoc,~!bimap_ca...] 0.025 secs (0.025u,0.s) Chars 19998 - 20010 [reflexivity.] 0. secs (0.u,0.s) Chars 20011 - 20015 [Qed.] 0.002 secs (0.002u,0.s) -Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.001 secs (0.001u,0.s) +Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.002 secs (0.002u,0.s) Chars 20160 - 20166 [Proof.] 0. secs (0.u,0.s) -Chars 20169 - 20181 [unfold~loop.] 0. secs (0.u,0.s) -Chars 20184 - 20319 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) +Chars 20169 - 20181 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 20184 - 20319 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) Chars 20322 - 20323 [-] 0. secs (0.u,0.s) -Chars 20324 - 20347 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 20352 - 20361 [cat_auto.] 0.124 secs (0.124u,0.s) -Chars 20362 - 20381 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20382 - 20391 [cat_auto.] 0.111 secs (0.11u,0.s) +Chars 20324 - 20347 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) +Chars 20352 - 20361 [cat_auto.] 0.175 secs (0.174u,0.s) +Chars 20362 - 20381 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) +Chars 20382 - 20391 [cat_auto.] 0.155 secs (0.155u,0.s) Chars 20394 - 20395 [-] 0. secs (0.u,0.s) -Chars 20396 - 20405 [cat_auto.] 0.065 secs (0.065u,0.s) -Chars 20406 - 20410 [Qed.] 0.011 secs (0.011u,0.s) +Chars 20396 - 20405 [cat_auto.] 0.094 secs (0.094u,0.s) +Chars 20406 - 20410 [Qed.] 0.017 secs (0.017u,0.s) Chars 20412 - 20430 [Context~{i~:~obj}.] 0. secs (0.u,0.s) Chars 20431 - 20465 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 20466 - 20512 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 20514 - 20613 [Lemma~loop_vanishing_1~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 20614 - 20620 [Proof.] 0. secs (0.u,0.s) -Chars 20623 - 20635 [unfold~loop.] 0. secs (0.u,0.s) -Chars 20638 - 20658 [rewrite~iter_unfold.] 0.001 secs (0.001u,0.s) -Chars 20659 - 20668 [cat_auto.] 0.049 secs (0.048u,0.s) +Chars 20623 - 20635 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 20638 - 20658 [(rewrite~iter_unfold).] 0.002 secs (0.002u,0.s) +Chars 20659 - 20668 [cat_auto.] 0.068 secs (0.068u,0.s) Chars 20669 - 20683 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20684 - 20693 [cat_auto.] 0.062 secs (0.062u,0.s) -Chars 20694 - 20698 [Qed.] 0.003 secs (0.003u,0.s) -Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.002 secs (0.002u,0.s) +Chars 20684 - 20693 [cat_auto.] 0.086 secs (0.086u,0.s) +Chars 20694 - 20698 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.003 secs (0.003u,0.s) Chars 21137 - 21143 [Proof.] 0. secs (0.u,0.s) -Chars 21146 - 21158 [unfold~loop.] 0. secs (0.u,0.s) -Chars 21161 - 21291 [transitivity~~(inr_~>>>~inr_~>...] 0.001 secs (0.001u,0.s) +Chars 21146 - 21158 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 21161 - 21291 [(transitivity~~~(inr_~>>>~inr_...] 0.002 secs (0.002u,0.s) Chars 21294 - 21295 [-] 0. secs (0.u,0.s) -Chars 21296 - 21441 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) +Chars 21296 - 21441 [(transitivity~~~(inr_~>>>~~~~i...] 0.003 secs (0.003u,0.s) Chars 21446 - 21447 [+] 0. secs (0.u,0.s) -Chars 21448 - 21457 [cat_auto.] 0.123 secs (0.123u,0.s) -Chars 21458 - 21477 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 21478 - 21499 [rewrite~iter_natural.] 0.002 secs (0.002u,0.s) +Chars 21448 - 21457 [cat_auto.] 0.168 secs (0.168u,0.s) +Chars 21458 - 21477 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) +Chars 21478 - 21499 [(rewrite~iter_natural).] 0.002 secs (0.002u,0.s) Chars 21506 - 21520 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 21521 - 21539 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 21540 - 21554 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 21561 - 21570 [cat_auto.] 0.122 secs (0.121u,0.s) +Chars 21521 - 21539 [(rewrite~cat_assoc).] 0.002 secs (0.002u,0.s) +Chars 21540 - 21554 [cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 21561 - 21570 [cat_auto.] 0.171 secs (0.171u,0.s) Chars 21575 - 21576 [+] 0. secs (0.u,0.s) -Chars 21577 - 21600 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 21607 - 21635 [rewrite~cat_assoc,~case_inl.] 0.006 secs (0.006u,0.s) -Chars 21642 - 21663 [rewrite~iter_natural.] 0.004 secs (0.004u,0.s) -Chars 21670 - 21679 [cat_auto.] 0.172 secs (0.171u,0.s) -Chars 21680 - 21699 [do~3~cat_auto_step.] 0.003 secs (0.003u,0.s) -Chars 21706 - 21715 [cat_auto.] 0.33 secs (0.328u,0.002s) +Chars 21577 - 21600 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) +Chars 21607 - 21635 [(rewrite~cat_assoc,~case_inl).] 0.009 secs (0.009u,0.s) +Chars 21642 - 21663 [(rewrite~iter_natural).] 0.007 secs (0.007u,0.s) +Chars 21670 - 21679 [cat_auto.] 0.238 secs (0.238u,0.s) +Chars 21680 - 21699 [(do~3~cat_auto_step).] 0.004 secs (0.004u,0.s) +Chars 21706 - 21715 [cat_auto.] 0.46 secs (0.459u,0.s) Chars 21719 - 21720 [-] 0. secs (0.u,0.s) -Chars 21721 - 21745 [rewrite~iter_codiagonal.] 0.002 secs (0.002u,0.s) -Chars 21750 - 21806 [rewrite~(cat_assoc~_~(bimap~_~...] 0.013 secs (0.013u,0.s) -Chars 21811 - 21954 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) +Chars 21721 - 21745 [(rewrite~iter_codiagonal).] 0.003 secs (0.003u,0.s) +Chars 21750 - 21806 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.018u,0.s) +Chars 21811 - 21954 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) Chars 21959 - 21960 [+] 0. secs (0.u,0.s) -Chars 21961 - 21984 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 21991 - 22000 [cat_auto.] 0.253 secs (0.252u,0.001s) -Chars 22001 - 22020 [do~2~cat_auto_step.] 0.002 secs (0.002u,0.s) -Chars 22021 - 22030 [cat_auto.] 0.366 secs (0.364u,0.001s) +Chars 21961 - 21984 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) +Chars 21991 - 22000 [cat_auto.] 0.354 secs (0.354u,0.s) +Chars 22001 - 22020 [(do~2~cat_auto_step).] 0.003 secs (0.003u,0.s) +Chars 22021 - 22030 [cat_auto.] 0.523 secs (0.523u,0.s) Chars 22035 - 22036 [+] 0. secs (0.u,0.s) -Chars 22037 - 22046 [cat_auto.] 0.136 secs (0.136u,0.s) -Chars 22047 - 22051 [Qed.] 0.049 secs (0.048u,0.s) -Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.002 secs (0.002u,0.s) +Chars 22037 - 22046 [cat_auto.] 0.191 secs (0.191u,0.s) +Chars 22047 - 22051 [Qed.] 0.078 secs (0.078u,0.s) +Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.003 secs (0.003u,0.s) Chars 22211 - 22217 [Proof.] 0. secs (0.u,0.s) -Chars 22220 - 22232 [unfold~loop.] 0. secs (0.u,0.s) -Chars 22235 - 22244 [cat_auto.] 0.248 secs (0.246u,0.001s) +Chars 22220 - 22232 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 22235 - 22244 [cat_auto.] 0.339 secs (0.338u,0.s) Chars 22247 - 22248 [-] 0. secs (0.u,0.s) -Chars 22249 - 22438 [transitivity~~(inr_~>>>~~~iter...] 0.003 secs (0.003u,0.s) +Chars 22249 - 22438 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) Chars 22444 - 22445 [+] 0. secs (0.u,0.s) -Chars 22446 - 22478 [rewrite~cat_assoc,~iter_natural.] 0.006 secs (0.006u,0.s) -Chars 22485 - 22516 [do~2~(cat_auto_step;~cat_auto).] 0.751 secs (0.748u,0.003s) +Chars 22446 - 22478 [(rewrite~cat_assoc,~iter_natur...] 0.009 secs (0.009u,0.s) +Chars 22485 - 22516 [(do~2~(cat_auto_step;~cat_auto)).] 1.048 secs (1.047u,0.001s) Chars 22521 - 22522 [+] 0. secs (0.u,0.s) -Chars 22523 - 22546 [rewrite~iter_dinatural.] 0.004 secs (0.004u,0.s) -Chars 22553 - 22584 [do~3~(cat_auto;~cat_auto_step).] 1.711 secs (1.703u,0.006s) +Chars 22523 - 22546 [(rewrite~iter_dinatural).] 0.006 secs (0.006u,0.s) +Chars 22553 - 22584 [(do~3~(cat_auto;~cat_auto_step)).] 2.415 secs (2.411u,0.002s) Chars 22588 - 22589 [-] 0. secs (0.u,0.s) -Chars 22590 - 22610 [rewrite~iter_unfold.] 0.004 secs (0.004u,0.s) -Chars 22611 - 22620 [cat_auto.] 0.355 secs (0.353u,0.001s) -Chars 22621 - 22625 [Qed.] 0.088 secs (0.087u,0.s) +Chars 22590 - 22610 [(rewrite~iter_unfold).] 0.006 secs (0.006u,0.s) +Chars 22611 - 22620 [cat_auto.] 0.502 secs (0.501u,0.s) +Chars 22621 - 22625 [Qed.] 0.139 secs (0.139u,0.s) Chars 22627 - 22672 [Lemma~loop_yanking~{a}~:~loop~...] 0. secs (0.u,0.s) Chars 22673 - 22679 [Proof.] 0. secs (0.u,0.s) -Chars 22682 - 22694 [unfold~loop.] 0. secs (0.u,0.s) -Chars 22695 - 22717 [rewrite~2!iter_unfold.] 0.005 secs (0.005u,0.s) -Chars 22718 - 22727 [cat_auto.] 0.112 secs (0.112u,0.s) -Chars 22728 - 22732 [Qed.] 0.005 secs (0.005u,0.s) -Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.002 secs (0.002u,0.s) +Chars 22682 - 22694 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 22695 - 22717 [(rewrite~2!iter_unfold).] 0.007 secs (0.007u,0.s) +Chars 22718 - 22727 [cat_auto.] 0.154 secs (0.154u,0.s) +Chars 22728 - 22732 [Qed.] 0.007 secs (0.007u,0.s) +Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.003 secs (0.003u,0.s) Chars 22928 - 22934 [Proof.] 0. secs (0.u,0.s) -Chars 22937 - 22948 [intros~Hij.] 0. secs (0.u,0.s) -Chars 22949 - 22972 [rewrite~loop_dinatural.] 0. secs (0.u,0.s) -Chars 22975 - 22996 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 22999 - 23017 [rewrite~bimap_cat.] 0.001 secs (0.001u,0.s) -Chars 23020 - 23032 [rewrite~Hij.] 0.001 secs (0.001u,0.s) -Chars 23035 - 23052 [rewrite~cat_id_l.] 0.001 secs (0.001u,0.s) -Chars 23055 - 23072 [rewrite~bimap_id.] 0.001 secs (0.001u,0.s) -Chars 23075 - 23092 [rewrite~cat_id_l.] 0. secs (0.u,0.s) +Chars 22937 - 22948 [(intros~Hij).] 0. secs (0.u,0.s) +Chars 22949 - 22972 [(rewrite~loop_dinatural).] 0.001 secs (0.001u,0.s) +Chars 22975 - 22996 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 22999 - 23017 [(rewrite~bimap_cat).] 0.002 secs (0.002u,0.s) +Chars 23020 - 23032 [(rewrite~Hij).] 0.002 secs (0.002u,0.s) +Chars 23035 - 23052 [(rewrite~cat_id_l).] 0.002 secs (0.002u,0.s) +Chars 23055 - 23072 [(rewrite~bimap_id).] 0.002 secs (0.002u,0.s) +Chars 23075 - 23092 [(rewrite~cat_id_l).] 0. secs (0.u,0.s) Chars 23095 - 23107 [reflexivity.] 0. secs (0.u,0.s) Chars 23108 - 23112 [Qed.] 0.001 secs (0.001u,0.s) Chars 23407 - 23509 [Theorem~cat_from_loop~{a}~{b}~...] 0.001 secs (0.001u,0.s) Chars 23510 - 23516 [Proof.] 0. secs (0.u,0.s) -Chars 23618 - 23638 [rewrite~bimap_slide.] 0.001 secs (0.001u,0.s) -Chars 23641 - 23662 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 23776 - 23806 [rewrite~<-~loop_natural_right.] 0. secs (0.u,0.s) -Chars 23914 - 23933 [rewrite~swap_bimap.] 0.001 secs (0.001u,0.s) -Chars 23936 - 23958 [rewrite~<-~!cat_assoc.] 0.004 secs (0.004u,0.s) -Chars 24088 - 24122 [rewrite~swap_involutive,~cat_i...] 0.003 secs (0.003u,0.s) -Chars 24252 - 24281 [rewrite~<-~loop_natural_left.] 0.002 secs (0.002u,0.s) -Chars 24380 - 24401 [rewrite~loop_yanking.] 0.001 secs (0.001u,0.s) -Chars 24404 - 24421 [rewrite~cat_id_r.] 0. secs (0.u,0.s) +Chars 23618 - 23638 [(rewrite~bimap_slide).] 0.002 secs (0.002u,0.s) +Chars 23641 - 23662 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 23776 - 23806 [(rewrite~<-~loop_natural_right).] 0.001 secs (0.001u,0.s) +Chars 23914 - 23933 [(rewrite~swap_bimap).] 0.002 secs (0.002u,0.s) +Chars 23936 - 23958 [(rewrite~<-~!cat_assoc).] 0.006 secs (0.006u,0.s) +Chars 24088 - 24122 [(rewrite~swap_involutive,~cat_...] 0.007 secs (0.007u,0.s) +Chars 24252 - 24281 [(rewrite~<-~loop_natural_left).] 0.001 secs (0.001u,0.s) +Chars 24380 - 24401 [(rewrite~loop_yanking).] 0.001 secs (0.001u,0.s) +Chars 24404 - 24421 [(rewrite~cat_id_r).] 0.001 secs (0.001u,0.s) Chars 24451 - 24463 [reflexivity.] 0. secs (0.u,0.s) -Chars 24464 - 24468 [Qed.] 0.002 secs (0.002u,0.s) +Chars 24464 - 24468 [Qed.] 0.003 secs (0.003u,0.s) Chars 24625 - 24704 [Fact~fwd_eqn~{a}~{b}~(f~g~:~C~...] 0. secs (0.u,0.s) Chars 24705 - 24711 [Proof.] 0. secs (0.u,0.s) -Chars 24714 - 24744 [intro~H;~apply~H;~reflexivity.] 0. secs (0.u,0.s) +Chars 24714 - 24744 [(intro~H;~apply~H;~reflexivity).] 0. secs (0.u,0.s) Chars 24745 - 24749 [Qed.] 0. secs (0.u,0.s) Chars 24800 - 24886 [Fact~cat_eq2_l~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) Chars 24887 - 24893 [Proof.] 0. secs (0.u,0.s) -Chars 24896 - 24929 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) +Chars 24896 - 24929 [(intros~H;~rewrite~H;~reflexiv...] 0.001 secs (0.001u,0.s) Chars 24930 - 24934 [Qed.] 0. secs (0.u,0.s) Chars 24936 - 25022 [Fact~cat_eq2_r~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) Chars 25023 - 25029 [Proof.] 0. secs (0.u,0.s) -Chars 25032 - 25065 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) +Chars 25032 - 25065 [(intros~H;~rewrite~H;~reflexiv...] 0. secs (0.u,0.s) Chars 25066 - 25070 [Qed.] 0. secs (0.u,0.s) -Chars 25072 - 25205 [Fact~local_rewrite1~{a}~{b}~{c...] 0.003 secs (0.003u,0.s) +Chars 25072 - 25205 [Fact~local_rewrite1~{a}~{b}~{c...] 0.005 secs (0.005u,0.s) Chars 25206 - 25212 [Proof.] 0. secs (0.u,0.s) Chars 25215 - 25224 [symmetry.] 0. secs (0.u,0.s) -Chars 25227 - 25254 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) -Chars 25257 - 25307 [do~2~apply~(cat_eq2_l~(bimap~(...] 0.001 secs (0.001u,0.s) -Chars 25310 - 25397 [rewrite~<-~cat_assoc,~bimap_ca...] 0.02 secs (0.02u,0.s) -Chars 25400 - 25473 [rewrite~<-~(cat_assoc~_~_~asso...] 0.007 secs (0.007u,0.s) -Chars 25476 - 25506 [rewrite~<-~swap_assoc_l~in~Eq.] 0.002 secs (0.002u,0.s) -Chars 25509 - 25547 [rewrite~(cat_assoc~_~_~assoc_r...] 0.001 secs (0.001u,0.s) -Chars 25550 - 25577 [rewrite~assoc_l_mono~in~Eq.] 0.002 secs (0.002u,0.s) -Chars 25580 - 25603 [rewrite~cat_id_r~in~Eq.] 0.001 secs (0.001u,0.s) -Chars 25606 - 25624 [rewrite~cat_assoc.] 0. secs (0.u,0.s) +Chars 25227 - 25254 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) +Chars 25257 - 25307 [(do~2~apply~(cat_eq2_l~(bimap~...] 0.001 secs (0.001u,0.s) +Chars 25310 - 25397 [(rewrite~<-~cat_assoc,~bimap_c...] 0.029 secs (0.029u,0.s) +Chars 25400 - 25473 [(rewrite~<-~(cat_assoc~_~_~ass...] 0.01 secs (0.01u,0.s) +Chars 25476 - 25506 [(rewrite~<-~swap_assoc_l~in~Eq).] 0.004 secs (0.004u,0.s) +Chars 25509 - 25547 [(rewrite~(cat_assoc~_~_~assoc_...] 0.003 secs (0.003u,0.s) +Chars 25550 - 25577 [(rewrite~assoc_l_mono~in~Eq).] 0.004 secs (0.004u,0.s) +Chars 25580 - 25603 [(rewrite~cat_id_r~in~Eq).] 0.002 secs (0.002u,0.s) +Chars 25606 - 25624 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) Chars 25627 - 25638 [assumption.] 0. secs (0.u,0.s) -Chars 25639 - 25643 [Qed.] 0.007 secs (0.007u,0.s) -Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.003 secs (0.003u,0.s) +Chars 25639 - 25643 [Qed.] 0.011 secs (0.011u,0.s) +Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.005 secs (0.005u,0.s) Chars 25778 - 25784 [Proof.] 0. secs (0.u,0.s) Chars 25787 - 25796 [symmetry.] 0. secs (0.u,0.s) -Chars 25799 - 25826 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) -Chars 25829 - 25879 [do~2~apply~(cat_eq2_r~(bimap~(...] 0.001 secs (0.001u,0.s) -Chars 25882 - 25966 [rewrite~cat_assoc,~bimap_cat,~...] 0.022 secs (0.022u,0.s) -Chars 25969 - 26005 [rewrite~2!(cat_assoc~assoc_l)~...] 0.004 secs (0.004u,0.s) -Chars 26008 - 26038 [rewrite~<-~swap_assoc_r~in~Eq.] 0.002 secs (0.002u,0.s) -Chars 26041 - 26080 [rewrite~<-~2!(cat_assoc~assoc_...] 0.004 secs (0.004u,0.s) -Chars 26083 - 26120 [rewrite~assoc_l_mono,~cat_id_l...] 0.004 secs (0.004u,0.s) +Chars 25799 - 25826 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) +Chars 25829 - 25879 [(do~2~apply~(cat_eq2_r~(bimap~...] 0.001 secs (0.001u,0.s) +Chars 25882 - 25966 [(rewrite~cat_assoc,~bimap_cat,...] 0.031 secs (0.031u,0.s) +Chars 25969 - 26005 [(rewrite~2!(cat_assoc~assoc_l)...] 0.005 secs (0.005u,0.s) +Chars 26008 - 26038 [(rewrite~<-~swap_assoc_r~in~Eq).] 0.005 secs (0.005u,0.s) +Chars 26041 - 26080 [(rewrite~<-~2!(cat_assoc~assoc...] 0.005 secs (0.005u,0.s) +Chars 26083 - 26120 [(rewrite~assoc_l_mono,~cat_id_...] 0.006 secs (0.006u,0.s) Chars 26123 - 26134 [assumption.] 0. secs (0.u,0.s) -Chars 26135 - 26139 [Qed.] 0.006 secs (0.006u,0.s) -Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.008 secs (0.008u,0.s) +Chars 26135 - 26139 [Qed.] 0.01 secs (0.01u,0.s) +Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.011 secs (0.011u,0.s) Chars 26438 - 26444 [Proof.] 0. secs (0.u,0.s) -Chars 26447 - 26484 [rewrite~swap_bimap,~loop_super...] 0.004 secs (0.004u,0.s) -Chars 26487 - 26533 [rewrite~loop_natural_left,~loo...] 0.004 secs (0.004u,0.s) -Chars 26536 - 26563 [rewrite~(swap_bimap~cd~ab).] 0.006 secs (0.006u,0.s) -Chars 26566 - 26588 [rewrite~<-~!cat_assoc.] 0.023 secs (0.023u,0.s) -Chars 26591 - 26614 [rewrite~local_rewrite1.] 0.005 secs (0.005u,0.s) -Chars 26617 - 26637 [rewrite~2!cat_assoc.] 0.006 secs (0.006u,0.s) -Chars 26640 - 26676 [rewrite~<-~(cat_assoc~swap~ass...] 0.004 secs (0.004u,0.s) -Chars 26679 - 26702 [rewrite~local_rewrite2.] 0.003 secs (0.003u,0.s) -Chars 26705 - 26727 [rewrite~<-~!cat_assoc.] 0.012 secs (0.012u,0.s) +Chars 26447 - 26484 [(rewrite~swap_bimap,~loop_supe...] 0.008 secs (0.007u,0.s) +Chars 26487 - 26533 [(rewrite~loop_natural_left,~lo...] 0.008 secs (0.007u,0.s) +Chars 26536 - 26563 [(rewrite~(swap_bimap~cd~ab)).] 0.009 secs (0.009u,0.s) +Chars 26566 - 26588 [(rewrite~<-~!cat_assoc).] 0.033 secs (0.033u,0.s) +Chars 26591 - 26614 [(rewrite~local_rewrite1).] 0.008 secs (0.007u,0.s) +Chars 26617 - 26637 [(rewrite~2!cat_assoc).] 0.01 secs (0.01u,0.s) +Chars 26640 - 26676 [(rewrite~<-~(cat_assoc~swap~as...] 0.006 secs (0.006u,0.s) +Chars 26679 - 26702 [(rewrite~local_rewrite2).] 0.005 secs (0.005u,0.s) +Chars 26705 - 26727 [(rewrite~<-~!cat_assoc).] 0.018 secs (0.018u,0.s) Chars 26730 - 26742 [reflexivity.] 0. secs (0.u,0.s) -Chars 26743 - 26747 [Qed.] 0.008 secs (0.008u,0.s) +Chars 26743 - 26747 [Qed.] 0.012 secs (0.012u,0.s) Chars 26749 - 26774 [End~TracedIterativeFacts.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/CategoryFunctor.v.timing b/theories/Basics/CategoryFunctor.v.timing index 7ce6e3e3..43811659 100644 --- a/theories/Basics/CategoryFunctor.v.timing +++ b/theories/Basics/CategoryFunctor.v.timing @@ -1,11 +1,11 @@ -Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0. secs (0.u,0.s) +Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0.001 secs (0.u,0.s) Chars 135 - 155 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 156 - 183 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 185 - 201 [Section~Functor.] 0. secs (0.u,0.s) Chars 203 - 435 [Context~{obj1~obj2~:~Type}~{C1...] 0. secs (0.u,0.s) Chars 437 - 458 [Arguments~fmap~{a~b}.] 0. secs (0.u,0.s) -Chars 460 - 698 [Class~Functor~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) +Chars 460 - 698 [Class~Functor~:~Prop~:={~~~~~~...] 0.002 secs (0.001u,0.s) Chars 700 - 712 [End~Functor.] 0. secs (0.u,0.s) Chars 714 - 750 [Arguments~Functor~:~clear~impl...] 0. secs (0.u,0.s) Chars 751 - 802 [Arguments~Functor~{_~_}~C1~C2~...] 0. secs (0.u,0.s) @@ -13,10 +13,10 @@ Chars 804 - 822 [Section~FunctorId.] 0. secs (0.u,0.s) Chars 824 - 1041 [Context~{obj~:~Type}~{C1~C2~:~...] 0. secs (0.u,0.s) Chars 1043 - 1097 [Lemma~fmap_id0~:~forall~a,~fma...] 0. secs (0.u,0.s) Chars 1098 - 1104 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1119 [apply~fmap_id.] 0. secs (0.u,0.s) +Chars 1105 - 1119 [(apply~fmap_id).] 0. secs (0.u,0.s) Chars 1120 - 1124 [Qed.] 0. secs (0.u,0.s) Chars 1126 - 1237 [Lemma~fmap_cat0~:~~~forall~a~b...] 0. secs (0.u,0.s) Chars 1238 - 1244 [Proof.] 0. secs (0.u,0.s) -Chars 1245 - 1260 [apply~fmap_cat.] 0. secs (0.u,0.s) +Chars 1245 - 1260 [(apply~fmap_cat).] 0. secs (0.u,0.s) Chars 1261 - 1265 [Qed.] 0. secs (0.u,0.s) Chars 1267 - 1281 [End~FunctorId.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisli.v.timing b/theories/Basics/CategoryKleisli.v.timing index b8955abf..b321134d 100644 --- a/theories/Basics/CategoryKleisli.v.timing +++ b/theories/Basics/CategoryKleisli.v.timing @@ -1,6 +1,6 @@ Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 701 - 750 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.s) +Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.003 secs (0.003u,0.s) Chars 877 - 909 [Implicit~Type~m~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 910 - 938 [Implicit~Types~a~b~c~:~Type.] 0. secs (0.u,0.s) Chars 940 - 984 [Definition~Kleisli~m~a~b~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisliFacts.v.timing b/theories/Basics/CategoryKleisliFacts.v.timing index 91ad4c9f..38728d5d 100644 --- a/theories/Basics/CategoryKleisliFacts.v.timing +++ b/theories/Basics/CategoryKleisliFacts.v.timing @@ -1,6 +1,6 @@ -Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) +Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.008u,0.002s) Chars 165 - 214 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) +Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) Chars 379 - 399 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 400 - 427 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 428 - 457 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -12,7 +12,7 @@ Chars 564 - 605 [Context~{Eq1P~:~@Eq1Equivalenc...] 0. secs (0.u,0.s) Chars 608 - 644 [Context~{ML~:~@MonadLawsE~m~Eq...] 0. secs (0.u,0.s) Chars 650 - 743 [Instance~Proper_Kleisli_apply~...] 0. secs (0.u,0.s) Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) -Chars 757 - 782 [compute;~intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 757 - 782 [(compute;~intros;~subst;~auto).] 0. secs (0.u,0.s) Chars 785 - 789 [Qed.] 0. secs (0.u,0.s) Chars 793 - 872 [Lemma~fold_Kleisli~{a}~{b}~(f~...] 0. secs (0.u,0.s) Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) @@ -20,122 +20,122 @@ Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) Chars 895 - 899 [Qed.] 0. secs (0.u,0.s) Chars 905 - 986 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 989 - 995 [Proof.] 0. secs (0.u,0.s) -Chars 1000 - 1020 [split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 1000 - 1020 [(split;~repeat~intro).] 0. secs (0.u,0.s) Chars 1025 - 1026 [-] 0. secs (0.u,0.s) Chars 1027 - 1039 [reflexivity.] 0. secs (0.u,0.s) Chars 1044 - 1045 [-] 0. secs (0.u,0.s) -Chars 1046 - 1061 [symmetry;~auto.] 0. secs (0.u,0.s) +Chars 1046 - 1061 [(symmetry;~auto).] 0. secs (0.u,0.s) Chars 1066 - 1067 [-] 0. secs (0.u,0.s) -Chars 1068 - 1089 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 1068 - 1089 [(etransitivity;~eauto).] 0. secs (0.u,0.s) Chars 1092 - 1096 [Qed.] 0. secs (0.u,0.s) Chars 1100 - 1184 [#[global]~Instance~Functor_pur...] 0. secs (0.u,0.s) Chars 1187 - 1193 [Proof.] 0. secs (0.u,0.s) -Chars 1198 - 1218 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 1198 - 1218 [(constructor;~intros).] 0. secs (0.u,0.s) Chars 1223 - 1224 [-] 0. secs (0.u,0.s) Chars 1225 - 1237 [reflexivity.] 0. secs (0.u,0.s) Chars 1242 - 1243 [-] 0. secs (0.u,0.s) -Chars 1244 - 1253 [intros~?.] 0. secs (0.u,0.s) -Chars 1254 - 1284 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 1285 - 1304 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 1244 - 1253 [(intros~?).] 0. secs (0.u,0.s) +Chars 1254 - 1284 [(unfold~pure,~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 1285 - 1304 [(rewrite~bind_ret_l).] 0.001 secs (0.u,0.s) Chars 1311 - 1323 [reflexivity.] 0. secs (0.u,0.s) Chars 1328 - 1329 [-] 0. secs (0.u,0.s) -Chars 1330 - 1345 [intros~?~?~?~?.] 0. secs (0.u,0.s) -Chars 1346 - 1358 [unfold~pure.] 0. secs (0.u,0.s) -Chars 1359 - 1369 [rewrite~H.] 0. secs (0.u,0.s) +Chars 1330 - 1345 [(intros~?~?~?~?).] 0. secs (0.u,0.s) +Chars 1346 - 1358 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 1359 - 1369 [(rewrite~H).] 0. secs (0.u,0.s) Chars 1370 - 1382 [reflexivity.] 0. secs (0.u,0.s) -Chars 1385 - 1389 [Qed.] 0. secs (0.u,0.s) -Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0. secs (0.u,0.s) +Chars 1385 - 1389 [Qed.] 0.001 secs (0.u,0.s) +Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0.001 secs (0.u,0.s) Chars 1912 - 1918 [Proof.] 0. secs (0.u,0.s) -Chars 1921 - 1934 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1937 - 1961 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 1964 - 1988 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) +Chars 1921 - 1934 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1937 - 1961 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 1964 - 1988 [(apply~Proper_bind;~auto).] 0. secs (0.u,0.s) Chars 1989 - 1993 [Qed.] 0. secs (0.u,0.s) Chars 1995 - 2021 [#[local]~Opaque~bind~ret~eq1.] 0. secs (0.u,0.s) -Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0. secs (0.u,0.s) +Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) Chars 2152 - 2158 [Proof.] 0. secs (0.u,0.s) -Chars 2161 - 2242 [compute;~intros~x;~destruct~x~...] 0.005 secs (0.004u,0.s) -Chars 2243 - 2247 [Qed.] 0.01 secs (0.009u,0.s) -Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0. secs (0.u,0.s) +Chars 2161 - 2242 [(compute;~intros~x;~destruct~x...] 0.006 secs (0.005u,0.001s) +Chars 2243 - 2247 [Qed.] 0.013 secs (0.012u,0.001s) +Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) -Chars 2379 - 2460 [compute;~intros~x;~destruct~x~...] 0.003 secs (0.003u,0.s) +Chars 2379 - 2460 [(compute;~intros~x;~destruct~x...] 0.004 secs (0.004u,0.s) Chars 2461 - 2465 [Qed.] 0.001 secs (0.001u,0.s) Chars 2467 - 2523 [#[global]~Instance~CatAssoc_Kl...] 0. secs (0.u,0.s) Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2537 [red.] 0. secs (0.u,0.s) -Chars 2538 - 2559 [intros~a~b~c~d~f~g~h.] 0. secs (0.u,0.s) -Chars 2563 - 2587 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 2590 - 2594 [compute.] 0. secs (0.u,0.s) -Chars 2595 - 2604 [intros~x.] 0. secs (0.u,0.s) +Chars 2533 - 2537 [(red).] 0. secs (0.u,0.s) +Chars 2538 - 2559 [(intros~a~b~c~d~f~g~h).] 0. secs (0.u,0.s) +Chars 2563 - 2587 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 2590 - 2594 [(compute).] 0. secs (0.u,0.s) +Chars 2595 - 2604 [(intros~x).] 0. secs (0.u,0.s) Chars 2607 - 2632 [setoid_rewrite~bind_bind.] 0.001 secs (0.001u,0.s) Chars 2635 - 2647 [reflexivity.] 0. secs (0.u,0.s) Chars 2648 - 2652 [Qed.] 0. secs (0.u,0.s) Chars 2698 - 2750 [#[global]~Instance~CatIdL_Klei...] 0. secs (0.u,0.s) Chars 2751 - 2757 [Proof.] 0. secs (0.u,0.s) -Chars 2760 - 2823 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) -Chars 2826 - 2845 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 2760 - 2823 [(intros~A~B~f~a;~unfold~cat,~C...] 0. secs (0.u,0.s) +Chars 2826 - 2845 [(rewrite~bind_ret_l).] 0. secs (0.u,0.s) Chars 2846 - 2858 [reflexivity.] 0. secs (0.u,0.s) Chars 2859 - 2863 [Qed.] 0. secs (0.u,0.s) Chars 2865 - 2917 [#[global]~Instance~CatIdR_Klei...] 0. secs (0.u,0.s) Chars 2918 - 2924 [Proof.] 0. secs (0.u,0.s) -Chars 2927 - 2990 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) -Chars 2993 - 3012 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) +Chars 2927 - 2990 [(intros~A~B~f~a;~unfold~cat,~C...] 0. secs (0.u,0.s) +Chars 2993 - 3012 [(rewrite~bind_ret_r).] 0. secs (0.u,0.s) Chars 3015 - 3027 [reflexivity.] 0. secs (0.u,0.s) Chars 3028 - 3032 [Qed.] 0. secs (0.u,0.s) Chars 3034 - 3090 [#[global]~Instance~Category_Kl...] 0. secs (0.u,0.s) Chars 3091 - 3097 [Proof.] 0. secs (0.u,0.s) -Chars 3100 - 3131 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 3100 - 3131 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 3132 - 3136 [Qed.] 0. secs (0.u,0.s) Chars 3138 - 3209 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) -Chars 3217 - 3231 [intros~A~f~[].] 0. secs (0.u,0.s) +Chars 3217 - 3231 [(intros~A~f~[]).] 0. secs (0.u,0.s) Chars 3232 - 3236 [Qed.] 0. secs (0.u,0.s) Chars 3240 - 3374 [#[global]~Instance~Proper_case...] 0. secs (0.u,0.s) Chars 3375 - 3381 [Proof.] 0. secs (0.u,0.s) -Chars 3384 - 3430 [repeat~intro;~destruct~(_~:~_~...] 0. secs (0.u,0.s) +Chars 3384 - 3430 [(repeat~intro;~destruct~(_~:~_...] 0. secs (0.u,0.s) Chars 3431 - 3435 [Qed.] 0. secs (0.u,0.s) Chars 3528 - 3603 [#[global]~Instance~Proper_pure...] 0. secs (0.u,0.s) Chars 3604 - 3610 [Proof.] 0. secs (0.u,0.s) -Chars 3613 - 3626 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3629 - 3641 [unfold~pure.] 0. secs (0.u,0.s) -Chars 3644 - 3672 [erewrite~(H~a);~reflexivity.] 0. secs (0.u,0.s) +Chars 3613 - 3626 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 3629 - 3641 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 3644 - 3672 [(erewrite~(H~a);~reflexivity).] 0. secs (0.u,0.s) Chars 3673 - 3677 [Qed.] 0. secs (0.u,0.s) Chars 3679 - 3742 [Lemma~pure_id~{A~:~Type}~:~(id...] 0. secs (0.u,0.s) Chars 3743 - 3749 [Proof.] 0. secs (0.u,0.s) Chars 3752 - 3764 [reflexivity.] 0. secs (0.u,0.s) Chars 3765 - 3769 [Qed.] 0. secs (0.u,0.s) -Chars 3771 - 3876 [Fact~compose_pure~{A}~{B}~{C}~...] 0. secs (0.u,0.s) +Chars 3771 - 3876 [Fact~compose_pure~{A}~{B}~{C}~...] 0.001 secs (0.001u,0.s) Chars 3877 - 3883 [Proof.] 0. secs (0.u,0.s) -Chars 3886 - 3895 [intros~a.] 0. secs (0.u,0.s) -Chars 3898 - 3928 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 3931 - 3950 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 3886 - 3895 [(intros~a).] 0. secs (0.u,0.s) +Chars 3898 - 3928 [(unfold~pure,~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 3931 - 3950 [(rewrite~bind_ret_l).] 0. secs (0.u,0.s) Chars 3953 - 3965 [reflexivity.] 0. secs (0.u,0.s) Chars 3966 - 3970 [Qed.] 0. secs (0.u,0.s) Chars 3972 - 4106 [Fact~compose_pure_l~{A}~{B}~{C...] 0. secs (0.u,0.s) Chars 4107 - 4113 [Proof.] 0. secs (0.u,0.s) -Chars 4116 - 4137 [rewrite~<-~cat_assoc.] 0. secs (0.u,0.s) -Chars 4140 - 4161 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) +Chars 4116 - 4137 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 4140 - 4161 [(rewrite~compose_pure).] 0.001 secs (0.001u,0.s) Chars 4164 - 4176 [reflexivity.] 0. secs (0.u,0.s) -Chars 4177 - 4181 [Qed.] 0. secs (0.u,0.s) +Chars 4177 - 4181 [Qed.] 0.001 secs (0.001u,0.s) Chars 4183 - 4317 [Fact~compose_pure_r~{A}~{B}~{C...] 0. secs (0.u,0.s) Chars 4318 - 4324 [Proof.] 0. secs (0.u,0.s) -Chars 4327 - 4345 [rewrite~cat_assoc.] 0.013 secs (0.013u,0.s) -Chars 4348 - 4369 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) +Chars 4327 - 4345 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 4348 - 4369 [(rewrite~compose_pure).] 0.019 secs (0.019u,0.s) Chars 4372 - 4384 [reflexivity.] 0. secs (0.u,0.s) -Chars 4385 - 4389 [Qed.] 0. secs (0.u,0.s) +Chars 4385 - 4389 [Qed.] 0.001 secs (0.001u,0.s) Chars 4391 - 4493 [Fact~pure_cat~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) Chars 4494 - 4500 [Proof.] 0. secs (0.u,0.s) -Chars 4503 - 4519 [intros;~intro~a.] 0. secs (0.u,0.s) -Chars 4522 - 4558 [unfold~pure,~pure,~cat,~Cat_Kl...] 0. secs (0.u,0.s) -Chars 4561 - 4580 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 4503 - 4519 [(intros;~intro~a).] 0. secs (0.u,0.s) +Chars 4522 - 4558 [(unfold~pure,~pure,~cat,~Cat_K...] 0. secs (0.u,0.s) +Chars 4561 - 4580 [(rewrite~bind_ret_l).] 0. secs (0.u,0.s) Chars 4581 - 4593 [reflexivity.] 0. secs (0.u,0.s) Chars 4594 - 4598 [Qed.] 0. secs (0.u,0.s) Chars 4601 - 4700 [Fact~cat_pure~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) Chars 4701 - 4707 [Proof.] 0. secs (0.u,0.s) Chars 4710 - 4722 [reflexivity.] 0. secs (0.u,0.s) Chars 4723 - 4727 [Qed.] 0. secs (0.u,0.s) -Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0. secs (0.u,0.s) +Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0.001 secs (0.001u,0.s) Chars 4787 - 4793 [Proof.] 0. secs (0.u,0.s) -Chars 4796 - 4819 [intros~[];~reflexivity.] 0. secs (0.u,0.s) +Chars 4796 - 4819 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 4820 - 4824 [Qed.] 0. secs (0.u,0.s) Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) Chars 4884 - 4890 [Proof.] 0. secs (0.u,0.s) @@ -147,20 +147,20 @@ Chars 4975 - 4987 [reflexivity.] 0. secs (0.u,0.s) Chars 4988 - 4992 [Qed.] 0. secs (0.u,0.s) Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.001 secs (0.001u,0.s) Chars 5121 - 5127 [Proof.] 0. secs (0.u,0.s) -Chars 5130 - 5153 [intros~[];~reflexivity.] 0. secs (0.u,0.s) +Chars 5130 - 5153 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 5154 - 5158 [Qed.] 0. secs (0.u,0.s) -Chars 5251 - 5325 [Lemma~unit_l_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) +Chars 5251 - 5325 [Lemma~unit_l_pure~(A~:~Type)~:...] 0.001 secs (0.001u,0.s) Chars 5326 - 5332 [Proof.] 0. secs (0.u,0.s) -Chars 5335 - 5348 [intros~[[]|~].] 0. secs (0.u,0.s) +Chars 5335 - 5348 [(intros~[[]|~]).] 0. secs (0.u,0.s) Chars 5349 - 5361 [reflexivity.] 0. secs (0.u,0.s) Chars 5362 - 5366 [Qed.] 0. secs (0.u,0.s) Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) Chars 5446 - 5452 [Proof.] 0. secs (0.u,0.s) Chars 5455 - 5467 [reflexivity.] 0. secs (0.u,0.s) Chars 5468 - 5472 [Qed.] 0. secs (0.u,0.s) -Chars 5474 - 5548 [Lemma~unit_r_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) +Chars 5474 - 5548 [Lemma~unit_r_pure~(A~:~Type)~:...] 0.001 secs (0.001u,0.s) Chars 5549 - 5555 [Proof.] 0. secs (0.u,0.s) -Chars 5558 - 5571 [intros~[|~[]].] 0. secs (0.u,0.s) +Chars 5558 - 5571 [(intros~[|~[]]).] 0. secs (0.u,0.s) Chars 5572 - 5584 [reflexivity.] 0. secs (0.u,0.s) Chars 5585 - 5589 [Qed.] 0. secs (0.u,0.s) Chars 5591 - 5668 [Lemma~unit_r'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) @@ -169,139 +169,139 @@ Chars 5678 - 5690 [reflexivity.] 0. secs (0.u,0.s) Chars 5691 - 5695 [Qed.] 0. secs (0.u,0.s) Chars 5733 - 5823 [Lemma~case_l~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) Chars 5824 - 5830 [Proof.] 0. secs (0.u,0.s) -Chars 5833 - 5853 [rewrite~unit_l_pure.] 0.002 secs (0.002u,0.s) +Chars 5833 - 5853 [(rewrite~unit_l_pure).] 0.002 secs (0.002u,0.s) Chars 5856 - 5868 [reflexivity.] 0. secs (0.u,0.s) -Chars 5869 - 5873 [Qed.] 0. secs (0.u,0.s) +Chars 5869 - 5873 [Qed.] 0.001 secs (0.001u,0.s) Chars 5912 - 6016 [Lemma~case_l'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) Chars 6017 - 6023 [Proof.] 0. secs (0.u,0.s) -Chars 6026 - 6047 [rewrite~unit_l'_pure.] 0.001 secs (0.001u,0.s) +Chars 6026 - 6047 [(rewrite~unit_l'_pure).] 0.001 secs (0.001u,0.s) Chars 6050 - 6056 [intro.] 0. secs (0.u,0.s) -Chars 6057 - 6087 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 6090 - 6122 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6123 - 6127 [Qed.] 0.001 secs (0.u,0.s) -Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) +Chars 6057 - 6087 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) +Chars 6090 - 6122 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 6123 - 6127 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0.001 secs (0.u,0.s) Chars 6221 - 6227 [Proof.] 0. secs (0.u,0.s) -Chars 6230 - 6250 [rewrite~unit_r_pure.] 0.002 secs (0.002u,0.s) +Chars 6230 - 6250 [(rewrite~unit_r_pure).] 0.003 secs (0.002u,0.s) Chars 6253 - 6265 [reflexivity.] 0. secs (0.u,0.s) -Chars 6266 - 6270 [Qed.] 0.001 secs (0.u,0.s) +Chars 6266 - 6270 [Qed.] 0.001 secs (0.001u,0.s) Chars 6272 - 6376 [Lemma~case_r'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) Chars 6377 - 6383 [Proof.] 0. secs (0.u,0.s) -Chars 6386 - 6407 [rewrite~unit_r'_pure.] 0.001 secs (0.001u,0.s) +Chars 6386 - 6407 [(rewrite~unit_r'_pure).] 0.002 secs (0.001u,0.s) Chars 6410 - 6416 [intro.] 0. secs (0.u,0.s) -Chars 6417 - 6447 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 6450 - 6482 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.u,0.s) +Chars 6417 - 6447 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) +Chars 6450 - 6482 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) Chars 6483 - 6487 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.003 secs (0.002u,0.s) +Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.004 secs (0.003u,0.001s) Chars 6585 - 6591 [Proof.] 0. secs (0.u,0.s) -Chars 6594 - 6624 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 6627 - 6645 [rewrite~!cat_id_l.] 0.004 secs (0.003u,0.s) -Chars 6646 - 6668 [rewrite~<-~!case_pure.] 0.003 secs (0.002u,0.s) -Chars 6669 - 6694 [rewrite~<-~!compose_pure.] 0.008 secs (0.007u,0.s) -Chars 6695 - 6714 [rewrite~<-~pure_id.] 0.002 secs (0.002u,0.s) -Chars 6717 - 6735 [rewrite~!cat_id_l.] 0.002 secs (0.002u,0.s) +Chars 6594 - 6624 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) +Chars 6627 - 6645 [(rewrite~!cat_id_l).] 0.006 secs (0.004u,0.001s) +Chars 6646 - 6668 [(rewrite~<-~!case_pure).] 0.005 secs (0.004u,0.001s) +Chars 6669 - 6694 [(rewrite~<-~!compose_pure).] 0.013 secs (0.011u,0.002s) +Chars 6695 - 6714 [(rewrite~<-~pure_id).] 0.004 secs (0.003u,0.s) +Chars 6717 - 6735 [(rewrite~!cat_id_l).] 0.004 secs (0.004u,0.s) Chars 6739 - 6751 [reflexivity.] 0. secs (0.u,0.s) -Chars 6752 - 6756 [Qed.] 0.002 secs (0.002u,0.s) -Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.002 secs (0.002u,0.s) +Chars 6752 - 6756 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.003 secs (0.003u,0.s) Chars 6848 - 6854 [Proof.] 0. secs (0.u,0.s) -Chars 6857 - 6887 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 6890 - 6939 [rewrite~!cat_id_l,~<-~case_pur...] 0.007 secs (0.007u,0.s) +Chars 6857 - 6887 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) +Chars 6890 - 6939 [(rewrite~!cat_id_l,~<-~case_pu...] 0.01 secs (0.01u,0.s) Chars 6942 - 6954 [reflexivity.] 0. secs (0.u,0.s) -Chars 6955 - 6959 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6955 - 6959 [Qed.] 0.002 secs (0.002u,0.s) Chars 6961 - 7023 [#[global]~Instance~Coproduct_K...] 0. secs (0.u,0.s) Chars 7024 - 7030 [Proof.] 0. secs (0.u,0.s) Chars 7033 - 7045 [constructor.] 0. secs (0.u,0.s) Chars 7048 - 7049 [-] 0. secs (0.u,0.s) -Chars 7050 - 7067 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 7072 - 7097 [unfold~inl_,~Inl_Kleisli.] 0. secs (0.u,0.s) -Chars 7102 - 7119 [rewrite~pure_cat.] 0. secs (0.u,0.s) +Chars 7050 - 7067 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) +Chars 7072 - 7097 [(unfold~inl_,~Inl_Kleisli).] 0. secs (0.u,0.s) +Chars 7102 - 7119 [(rewrite~pure_cat).] 0. secs (0.u,0.s) Chars 7124 - 7136 [reflexivity.] 0. secs (0.u,0.s) Chars 7139 - 7140 [-] 0. secs (0.u,0.s) -Chars 7141 - 7158 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 7163 - 7188 [unfold~inr_,~Inr_Kleisli.] 0. secs (0.u,0.s) -Chars 7193 - 7210 [rewrite~pure_cat.] 0. secs (0.u,0.s) +Chars 7141 - 7158 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) +Chars 7163 - 7188 [(unfold~inr_,~Inr_Kleisli).] 0. secs (0.u,0.s) +Chars 7193 - 7210 [(rewrite~pure_cat).] 0. secs (0.u,0.s) Chars 7215 - 7227 [reflexivity.] 0. secs (0.u,0.s) Chars 7230 - 7231 [-] 0. secs (0.u,0.s) -Chars 7232 - 7266 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~y].] 0. secs (0.u,0.s) +Chars 7232 - 7266 [(intros~a~b~c~f~g~fg~Hf~Hg~[x|...] 0. secs (0.u,0.s) Chars 7271 - 7272 [+] 0. secs (0.u,0.s) -Chars 7273 - 7304 [unfold~inl_,~Inl_Kleisli~in~Hf.] 0. secs (0.u,0.s) -Chars 7311 - 7334 [rewrite~pure_cat~in~Hf.] 0.001 secs (0.001u,0.s) +Chars 7273 - 7304 [(unfold~inl_,~Inl_Kleisli~in~Hf).] 0. secs (0.u,0.s) +Chars 7311 - 7334 [(rewrite~pure_cat~in~Hf).] 0.002 secs (0.002u,0.s) Chars 7341 - 7359 [specialize~(Hf~x).] 0. secs (0.u,0.s) -Chars 7360 - 7372 [simpl~in~Hf.] 0. secs (0.u,0.s) -Chars 7373 - 7384 [rewrite~Hf.] 0. secs (0.u,0.s) +Chars 7360 - 7372 [(simpl~in~Hf).] 0. secs (0.u,0.s) +Chars 7373 - 7384 [(rewrite~Hf).] 0. secs (0.u,0.s) Chars 7385 - 7397 [reflexivity.] 0. secs (0.u,0.s) Chars 7402 - 7403 [+] 0. secs (0.u,0.s) -Chars 7404 - 7435 [unfold~inr_,~Inr_Kleisli~in~Hg.] 0. secs (0.u,0.s) -Chars 7442 - 7465 [rewrite~pure_cat~in~Hg.] 0.001 secs (0.001u,0.s) +Chars 7404 - 7435 [(unfold~inr_,~Inr_Kleisli~in~Hg).] 0. secs (0.u,0.s) +Chars 7442 - 7465 [(rewrite~pure_cat~in~Hg).] 0.002 secs (0.002u,0.s) Chars 7472 - 7490 [specialize~(Hg~y).] 0. secs (0.u,0.s) -Chars 7491 - 7503 [simpl~in~Hg.] 0. secs (0.u,0.s) -Chars 7504 - 7515 [rewrite~Hg.] 0. secs (0.u,0.s) +Chars 7491 - 7503 [(simpl~in~Hg).] 0. secs (0.u,0.s) +Chars 7504 - 7515 [(rewrite~Hg).] 0. secs (0.u,0.s) Chars 7516 - 7528 [reflexivity.] 0. secs (0.u,0.s) Chars 7531 - 7532 [-] 0. secs (0.u,0.s) Chars 7533 - 7551 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 7552 - 7556 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7552 - 7556 [Qed.] 0.002 secs (0.002u,0.s) Chars 7558 - 7617 [#[global]~Instance~bimap_id_kl...] 0. secs (0.u,0.s) Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) -Chars 7627 - 7666 [unfold~BimapId,~bimap,~Bimap_C...] 0. secs (0.u,0.s) -Chars 7669 - 7676 [intros.] 0. secs (0.u,0.s) -Chars 7679 - 7697 [rewrite~!cat_id_l.] 0.004 secs (0.004u,0.s) -Chars 7700 - 7744 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) -Chars 7747 - 7765 [rewrite~case_pure.] 0. secs (0.u,0.s) -Chars 7768 - 7834 [unfold~pure,~id_,~case_,~Case_...] 0. secs (0.u,0.s) -Chars 7837 - 7841 [red.] 0. secs (0.u,0.s) +Chars 7627 - 7666 [(unfold~BimapId,~bimap,~Bimap_...] 0. secs (0.u,0.s) +Chars 7669 - 7676 [(intros).] 0. secs (0.u,0.s) +Chars 7679 - 7697 [(rewrite~!cat_id_l).] 0.005 secs (0.005u,0.s) +Chars 7700 - 7744 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) +Chars 7747 - 7765 [(rewrite~case_pure).] 0.001 secs (0.001u,0.s) +Chars 7768 - 7834 [(unfold~pure,~id_,~case_,~Case...] 0. secs (0.u,0.s) +Chars 7837 - 7841 [(red).] 0. secs (0.u,0.s) Chars 7842 - 7848 [intro.] 0. secs (0.u,0.s) -Chars 7849 - 7874 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) +Chars 7849 - 7874 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) Chars 7875 - 7879 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0. secs (0.u,0.s) +Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0.001 secs (0.001u,0.s) Chars 8098 - 8104 [Proof.] 0. secs (0.u,0.s) -Chars 8109 - 8140 [intros~a1~b1~b2~c1~c2~f1~g1~g2.] 0. secs (0.u,0.s) -Chars 8145 - 8200 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) -Chars 8205 - 8216 [unfold~map.] 0. secs (0.u,0.s) -Chars 8217 - 8241 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.003 secs (0.003u,0.s) -Chars 8276 - 8288 [unfold~pure.] 0. secs (0.u,0.s) -Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 8109 - 8140 [(intros~a1~b1~b2~c1~c2~f1~g1~g2).] 0. secs (0.u,0.s) +Chars 8145 - 8200 [(unfold~cat,~Cat_Kleisli,~case...] 0. secs (0.u,0.s) +Chars 8205 - 8216 [(unfold~map).] 0. secs (0.u,0.s) +Chars 8217 - 8241 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.004 secs (0.004u,0.s) +Chars 8276 - 8288 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) Chars 8316 - 8328 [reflexivity.] 0. secs (0.u,0.s) -Chars 8331 - 8335 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8331 - 8335 [Qed.] 0.002 secs (0.002u,0.s) Chars 8339 - 8549 [Lemma~map_inr_case_kleisli~:~~...] 0.001 secs (0.001u,0.s) Chars 8552 - 8558 [Proof.] 0. secs (0.u,0.s) -Chars 8563 - 8594 [intros~a2~b1~b2~c1~c2~f2~g1~g2.] 0. secs (0.u,0.s) -Chars 8599 - 8654 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) -Chars 8659 - 8670 [unfold~map.] 0. secs (0.u,0.s) -Chars 8671 - 8695 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8700 - 8725 [setoid_rewrite~bind_bind.] 0.002 secs (0.002u,0.s) -Chars 8730 - 8742 [unfold~pure.] 0. secs (0.u,0.s) -Chars 8743 - 8769 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 8563 - 8594 [(intros~a2~b1~b2~c1~c2~f2~g1~g2).] 0. secs (0.u,0.s) +Chars 8599 - 8654 [(unfold~cat,~Cat_Kleisli,~case...] 0. secs (0.u,0.s) +Chars 8659 - 8670 [(unfold~map).] 0. secs (0.u,0.s) +Chars 8671 - 8695 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 8700 - 8725 [setoid_rewrite~bind_bind.] 0.003 secs (0.003u,0.s) +Chars 8730 - 8742 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 8743 - 8769 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) Chars 8770 - 8782 [reflexivity.] 0. secs (0.u,0.s) -Chars 8785 - 8789 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8785 - 8789 [Qed.] 0.002 secs (0.002u,0.s) Chars 8792 - 8853 [#[global]~Instance~bimap_cat_k...] 0. secs (0.u,0.s) Chars 8854 - 8860 [Proof.] 0. secs (0.u,0.s) -Chars 8863 - 8903 [unfold~BimapCat,~bimap,~Bimap_...] 0. secs (0.u,0.s) -Chars 8906 - 8913 [intros.] 0. secs (0.u,0.s) -Chars 8916 - 8960 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) -Chars 8963 - 8981 [rewrite~!cat_pure.] 0.021 secs (0.02u,0.s) -Chars 8982 - 9000 [rewrite~!cat_case.] 0.003 secs (0.003u,0.s) -Chars 9003 - 9032 [rewrite~map_inl_case_kleisli.] 0.002 secs (0.002u,0.s) -Chars 9035 - 9064 [rewrite~map_inr_case_kleisli.] 0.002 secs (0.002u,0.s) +Chars 8863 - 8903 [(unfold~BimapCat,~bimap,~Bimap...] 0. secs (0.u,0.s) +Chars 8906 - 8913 [(intros).] 0. secs (0.u,0.s) +Chars 8916 - 8960 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) +Chars 8963 - 8981 [(rewrite~!cat_pure).] 0.027 secs (0.027u,0.s) +Chars 8982 - 9000 [(rewrite~!cat_case).] 0.006 secs (0.006u,0.s) +Chars 9003 - 9032 [(rewrite~map_inl_case_kleisli).] 0.003 secs (0.003u,0.s) +Chars 9035 - 9064 [(rewrite~map_inr_case_kleisli).] 0.003 secs (0.003u,0.s) Chars 9067 - 9079 [reflexivity.] 0. secs (0.u,0.s) -Chars 9080 - 9084 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0. secs (0.u,0.s) +Chars 9080 - 9084 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0.001 secs (0.001u,0.s) Chars 9232 - 9238 [Proof.] 0. secs (0.u,0.s) -Chars 9241 - 9248 [intros.] 0. secs (0.u,0.s) -Chars 9251 - 9264 [repeat~intro.] 0. secs (0.u,0.s) -Chars 9267 - 9297 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 9300 - 9337 [unfold~case_,~Case_Kleisli,~ca...] 0. secs (0.u,0.s) -Chars 9340 - 9352 [destruct~a0.] 0. secs (0.u,0.s) +Chars 9241 - 9248 [(intros).] 0. secs (0.u,0.s) +Chars 9251 - 9264 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 9267 - 9297 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) +Chars 9300 - 9337 [(unfold~case_,~Case_Kleisli,~c...] 0. secs (0.u,0.s) +Chars 9340 - 9352 [(destruct~a0).] 0. secs (0.u,0.s) Chars 9355 - 9356 [-] 0. secs (0.u,0.s) -Chars 9357 - 9387 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) -Chars 9388 - 9398 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 9357 - 9387 [(unfold~cat,~Cat_Kleisli,~inl_).] 0. secs (0.u,0.s) +Chars 9388 - 9398 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 9399 - 9411 [reflexivity.] 0. secs (0.u,0.s) Chars 9414 - 9415 [-] 0. secs (0.u,0.s) -Chars 9416 - 9446 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) -Chars 9447 - 9458 [rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 9416 - 9446 [(unfold~cat,~Cat_Kleisli,~inl_).] 0. secs (0.u,0.s) +Chars 9447 - 9458 [(rewrite~H0).] 0.001 secs (0.001u,0.s) Chars 9459 - 9471 [reflexivity.] 0. secs (0.u,0.s) -Chars 9472 - 9476 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0.001 secs (0.001u,0.s) -Chars 9541 - 9572 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9472 - 9476 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0. secs (0.u,0.s) +Chars 9541 - 9572 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 9573 - 9577 [Qed.] 0. secs (0.u,0.s) -Chars 9579 - 9594 [End~BasicFacts.] 0.001 secs (0.001u,0.s) +Chars 9579 - 9594 [End~BasicFacts.] 0.002 secs (0.002u,0.s) Chars 9596 - 9769 [Notation~Proper_iter~m~a~b:=~~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryOps.v.timing b/theories/Basics/CategoryOps.v.timing index 2013e111..845ba530 100644 --- a/theories/Basics/CategoryOps.v.timing +++ b/theories/Basics/CategoryOps.v.timing @@ -68,10 +68,10 @@ Chars 8405 - 8592 [Definition~merge~{obj~:~Type}~...] 0. secs (0.u,0.s) Chars 8726 - 8755 [Section~CocartesianConstruct.] 0. secs (0.u,0.s) Chars 8757 - 8808 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 8809 - 8927 [Variables~(SUM~:~binop~obj)~(C...] 0. secs (0.u,0.s) -Chars 8963 - 9092 [#[global]~Instance~Bimap_Copro...] 0. secs (0.u,0.s) +Chars 8963 - 9092 [#[global]~Instance~Bimap_Copro...] 0.001 secs (0.001u,0.s) Chars 9128 - 9207 [#[global]~Instance~Swap_Coprod...] 0. secs (0.u,0.s) -Chars 9245 - 9385 [#[global]~Instance~AssocR_Copr...] 0.001 secs (0.001u,0.s) -Chars 9387 - 9527 [#[global]~Instance~AssocL_Copr...] 0.001 secs (0.001u,0.s) +Chars 9245 - 9385 [#[global]~Instance~AssocR_Copr...] 0.002 secs (0.001u,0.s) +Chars 9387 - 9527 [#[global]~Instance~AssocL_Copr...] 0.002 secs (0.001u,0.s) Chars 9529 - 9590 [Variables~(Id_C~:~Id_~C)~(I~:~...] 0. secs (0.u,0.s) Chars 9648 - 9733 [#[global]~Instance~UnitL_Copro...] 0. secs (0.u,0.s) Chars 9735 - 9807 [#[global]~Instance~UnitL'_Copr...] 0. secs (0.u,0.s) @@ -81,10 +81,10 @@ Chars 9970 - 9995 [End~CocartesianConstruct.] 0. secs (0.u,0.s) Chars 10122 - 10149 [Section~CartesianConstruct.] 0. secs (0.u,0.s) Chars 10309 - 10360 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 10361 - 10484 [Variables~(PROD~:~binop~obj)~(...] 0. secs (0.u,0.s) -Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0. secs (0.u,0.s) +Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0.001 secs (0.001u,0.s) Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0. secs (0.u,0.s) -Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.001 secs (0.001u,0.s) -Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.001 secs (0.001u,0.s) +Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.002 secs (0.001u,0.s) +Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.002 secs (0.001u,0.s) Chars 11032 - 11095 [Variables~(Id_C~:~Id_~C)~(T~:~...] 0. secs (0.u,0.s) Chars 11151 - 11219 [#[local]~Instance~UnitL_Produc...] 0. secs (0.u,0.s) Chars 11221 - 11304 [#[local]~Instance~UnitL'_Produ...] 0. secs (0.u,0.s) @@ -108,7 +108,7 @@ Chars 12400 - 12435 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 12436 - 12464 [Variable~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 12689 - 12754 [Class~Iter~:~Type~:=~~~~~iter~...] 0. secs (0.u,0.s) Chars 12756 - 12893 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 12951 - 13075 [Definition~loop~(a~b~c~:~obj)~...] 0.001 secs (0.u,0.s) +Chars 12951 - 13075 [Definition~loop~(a~b~c~:~obj)~...] 0.001 secs (0.001u,0.s) Chars 13362 - 13376 [End~Iteration.] 0. secs (0.u,0.s) Chars 13378 - 13411 [Arguments~iter~{obj~C~bif~_~a~b}.] 0. secs (0.u,0.s) Chars 13412 - 13457 [Arguments~loop~{obj~C~bif~_~_~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryRelations.v.timing b/theories/Basics/CategoryRelations.v.timing index b79b5006..69a76bcb 100644 --- a/theories/Basics/CategoryRelations.v.timing +++ b/theories/Basics/CategoryRelations.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.006s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.04 secs (0.032u,0.007s) Chars 378 - 397 [Section~Operations.] 0. secs (0.u,0.s) Chars 401 - 421 [Import~RelNotations.] 0. secs (0.u,0.s) Chars 424 - 457 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) @@ -33,10 +33,10 @@ Chars 5097 - 5111 [Section~Facts.] 0. secs (0.u,0.s) Chars 5115 - 5135 [Section~CategoryRel.] 0. secs (0.u,0.s) Chars 5141 - 5186 [#[global]~Instance~CatIdL_rel~...] 0. secs (0.u,0.s) Chars 5191 - 5197 [Proof.] 0. secs (0.u,0.s) -Chars 5204 - 5301 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 5204 - 5301 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) Chars 5308 - 5309 [-] 0. secs (0.u,0.s) -Chars 5310 - 5339 [edestruct~H~as~(B',~(EQ,~R)).] 0. secs (0.u,0.s) -Chars 5340 - 5359 [rewrite~<-~EQ~in~R.] 0. secs (0.u,0.s) +Chars 5310 - 5339 [(edestruct~H~as~(B',~(EQ,~R))).] 0. secs (0.u,0.s) +Chars 5340 - 5359 [(rewrite~<-~EQ~in~R).] 0. secs (0.u,0.s) Chars 5368 - 5379 [assumption.] 0. secs (0.u,0.s) Chars 5386 - 5387 [-] 0. secs (0.u,0.s) Chars 5388 - 5397 [exists~x.] 0. secs (0.u,0.s) @@ -44,12 +44,12 @@ Chars 5398 - 5404 [split.] 0. secs (0.u,0.s) Chars 5405 - 5417 [reflexivity.] 0. secs (0.u,0.s) Chars 5418 - 5429 [assumption.] 0. secs (0.u,0.s) Chars 5434 - 5438 [Qed.] 0. secs (0.u,0.s) -Chars 5444 - 5489 [#[global]~Instance~CatIdR_rel~...] 0.011 secs (0.011u,0.s) +Chars 5444 - 5489 [#[global]~Instance~CatIdR_rel~...] 0. secs (0.u,0.s) Chars 5494 - 5500 [Proof.] 0. secs (0.u,0.s) -Chars 5507 - 5604 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 5507 - 5604 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) Chars 5611 - 5612 [-] 0. secs (0.u,0.s) -Chars 5613 - 5642 [edestruct~H~as~(B',~(R,~EQ)).] 0. secs (0.u,0.s) -Chars 5643 - 5659 [rewrite~EQ~in~R.] 0. secs (0.u,0.s) +Chars 5613 - 5642 [(edestruct~H~as~(B',~(R,~EQ))).] 0. secs (0.u,0.s) +Chars 5643 - 5659 [(rewrite~EQ~in~R).] 0. secs (0.u,0.s) Chars 5668 - 5679 [assumption.] 0. secs (0.u,0.s) Chars 5686 - 5687 [-] 0. secs (0.u,0.s) Chars 5688 - 5697 [exists~y.] 0. secs (0.u,0.s) @@ -59,27 +59,27 @@ Chars 5717 - 5729 [reflexivity.] 0. secs (0.u,0.s) Chars 5734 - 5738 [Qed.] 0. secs (0.u,0.s) Chars 5744 - 5793 [#[global]~Instance~CatAssoc_re...] 0. secs (0.u,0.s) Chars 5798 - 5804 [Proof.] 0. secs (0.u,0.s) -Chars 5811 - 5922 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 5811 - 5922 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) Chars 5929 - 5930 [-] 0. secs (0.u,0.s) -Chars 5931 - 5980 [edestruct~H~as~(C,~((B,~(Rf,~R...] 0. secs (0.u,0.s) +Chars 5931 - 5980 [(edestruct~H~as~(C,~((B,~(Rf,~...] 0.017 secs (0.015u,0.001s) Chars 5989 - 5998 [exists~B.] 0. secs (0.u,0.s) -Chars 5999 - 6022 [split;~[~assumption~|~~].] 0. secs (0.u,0.s) +Chars 5999 - 6022 [(split;~[~assumption~|~~]).] 0. secs (0.u,0.s) Chars 6031 - 6040 [exists~C.] 0. secs (0.u,0.s) -Chars 6041 - 6059 [split;~assumption.] 0. secs (0.u,0.s) +Chars 6041 - 6059 [(split;~assumption).] 0. secs (0.u,0.s) Chars 6066 - 6067 [-] 0. secs (0.u,0.s) -Chars 6068 - 6117 [edestruct~H~as~(B,~(Rf,~(C,~(R...] 0. secs (0.u,0.s) +Chars 6068 - 6117 [(edestruct~H~as~(B,~(Rf,~(C,~(...] 0. secs (0.u,0.s) Chars 6126 - 6135 [exists~C.] 0. secs (0.u,0.s) -Chars 6136 - 6159 [split;~[~~|~assumption~].] 0. secs (0.u,0.s) -Chars 6168 - 6196 [exists~B;~split;~assumption.] 0. secs (0.u,0.s) +Chars 6136 - 6159 [(split;~[~~|~assumption~]).] 0. secs (0.u,0.s) +Chars 6168 - 6196 [(exists~B;~split;~assumption).] 0. secs (0.u,0.s) Chars 6201 - 6205 [Qed.] 0. secs (0.u,0.s) Chars 6211 - 6364 [#[global]~Instance~ProperCat_r...] 0. secs (0.u,0.s) Chars 6369 - 6375 [Proof.] 0. secs (0.u,0.s) -Chars 6382 - 6395 [intros~a~b~c.] 0. secs (0.u,0.s) -Chars 6402 - 6514 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) +Chars 6382 - 6395 [(intros~a~b~c).] 0. secs (0.u,0.s) +Chars 6402 - 6514 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) Chars 6521 - 6522 [-] 0. secs (0.u,0.s) -Chars 6523 - 6554 [edestruct~He~as~(B,~(Hx,~Hx0)).] 0. secs (0.u,0.s) -Chars 6563 - 6610 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) -Chars 6619 - 6634 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 6523 - 6554 [(edestruct~He~as~(B,~(Hx,~Hx0))).] 0. secs (0.u,0.s) +Chars 6563 - 6610 [(unfold~eq2,~Eq2_rel,~eq_rel,~...] 0. secs (0.u,0.s) +Chars 6619 - 6634 [(destruct~H,~H0).] 0. secs (0.u,0.s) Chars 6643 - 6652 [exists~B.] 0. secs (0.u,0.s) Chars 6653 - 6659 [split.] 0. secs (0.u,0.s) Chars 6660 - 6682 [specialize~(H~A~B~Hx).] 0. secs (0.u,0.s) @@ -87,54 +87,54 @@ Chars 6683 - 6694 [assumption.] 0. secs (0.u,0.s) Chars 6703 - 6727 [specialize~(H0~_~_~Hx0).] 0. secs (0.u,0.s) Chars 6728 - 6739 [assumption.] 0. secs (0.u,0.s) Chars 6746 - 6747 [-] 0. secs (0.u,0.s) -Chars 6748 - 6779 [edestruct~He~as~(B,~(Hy,~Hy0)).] 0. secs (0.u,0.s) -Chars 6788 - 6835 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) -Chars 6844 - 6859 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 6748 - 6779 [(edestruct~He~as~(B,~(Hy,~Hy0))).] 0. secs (0.u,0.s) +Chars 6788 - 6835 [(unfold~eq2,~Eq2_rel,~eq_rel,~...] 0. secs (0.u,0.s) +Chars 6844 - 6859 [(destruct~H,~H0).] 0. secs (0.u,0.s) Chars 6868 - 6877 [exists~B.] 0. secs (0.u,0.s) Chars 6878 - 6884 [split.] 0. secs (0.u,0.s) Chars 6885 - 6908 [specialize~(H1~_~_~Hy).] 0. secs (0.u,0.s) Chars 6909 - 6920 [assumption.] 0. secs (0.u,0.s) Chars 6929 - 6953 [specialize~(H2~_~_~Hy0).] 0. secs (0.u,0.s) Chars 6954 - 6965 [assumption.] 0. secs (0.u,0.s) -Chars 6970 - 6974 [Qed.] 0. secs (0.u,0.s) +Chars 6970 - 6974 [Qed.] 0.001 secs (0.u,0.s) Chars 6980 - 7030 [#[global]~Instance~Category_re...] 0. secs (0.u,0.s) Chars 7035 - 7041 [Proof.] 0. secs (0.u,0.s) -Chars 7048 - 7079 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 7048 - 7079 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 7084 - 7088 [Qed.] 0. secs (0.u,0.s) Chars 7092 - 7108 [End~CategoryRel.] 0. secs (0.u,0.s) Chars 7112 - 7177 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 7180 - 7186 [Proof.] 0. secs (0.u,0.s) -Chars 7191 - 7208 [split;~intros~[].] 0. secs (0.u,0.s) +Chars 7191 - 7208 [(split;~intros~[]).] 0. secs (0.u,0.s) Chars 7211 - 7215 [Qed.] 0. secs (0.u,0.s) Chars 7219 - 7240 [Section~CoproductRel.] 0. secs (0.u,0.s) Chars 7246 - 7298 [#[global]~Instance~CaseInl_rel...] 0. secs (0.u,0.s) Chars 7303 - 7309 [Proof.] 0. secs (0.u,0.s) Chars 7316 - 7322 [split.] 0. secs (0.u,0.s) -Chars 7329 - 7384 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) -Chars 7391 - 7404 [intros~x~?~?.] 0. secs (0.u,0.s) -Chars 7411 - 7452 [exists~(inl~x);~split;~auto;~r...] 0. secs (0.u,0.s) -Chars 7457 - 7461 [Qed.] 0. secs (0.u,0.s) +Chars 7329 - 7384 [(intros~?~?~[[]~[H1~H2]];~inve...] 0. secs (0.u,0.s) +Chars 7391 - 7404 [(intros~x~?~?).] 0. secs (0.u,0.s) +Chars 7411 - 7452 [(exists~(inl~x);~split;~auto;~...] 0. secs (0.u,0.s) +Chars 7457 - 7461 [Qed.] 0.001 secs (0.001u,0.s) Chars 7467 - 7519 [#[global]~Instance~CaseInr_rel...] 0. secs (0.u,0.s) Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) Chars 7537 - 7543 [split.] 0. secs (0.u,0.s) -Chars 7550 - 7605 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) -Chars 7612 - 7625 [intros~x~?~?.] 0. secs (0.u,0.s) -Chars 7632 - 7673 [exists~(inr~x);~split;~auto;~r...] 0. secs (0.u,0.s) -Chars 7678 - 7682 [Qed.] 0. secs (0.u,0.s) +Chars 7550 - 7605 [(intros~?~?~[[]~[H1~H2]];~inve...] 0. secs (0.u,0.s) +Chars 7612 - 7625 [(intros~x~?~?).] 0. secs (0.u,0.s) +Chars 7632 - 7673 [(exists~(inr~x);~split;~auto;~...] 0. secs (0.u,0.s) +Chars 7678 - 7682 [Qed.] 0.001 secs (0.001u,0.s) Chars 7688 - 7752 [#[global]~Instance~CaseUnivers...] 0. secs (0.u,0.s) Chars 7757 - 7763 [Proof.] 0. secs (0.u,0.s) -Chars 7770 - 7805 [intros~a~b~c~R~S~T~[TR~RT]~[TS...] 0. secs (0.u,0.s) +Chars 7770 - 7805 [(intros~a~b~c~R~S~T~[TR~RT]~[T...] 0. secs (0.u,0.s) Chars 7812 - 7818 [split.] 0. secs (0.u,0.s) -Chars 7825 - 7903 [intros~[]~?~?;~cbn;~[~apply~TR...] 0. secs (0.u,0.s) -Chars 7910 - 8026 [intros~[]~?~HR;~[~apply~RT~in~...] 0. secs (0.u,0.s) -Chars 8031 - 8035 [Qed.] 0. secs (0.u,0.s) +Chars 7825 - 7903 [(intros~[]~?~?;~cbn;~[~apply~T...] 0.001 secs (0.001u,0.s) +Chars 7910 - 8026 [(intros~[]~?~HR;~[~apply~RT~in...] 0. secs (0.u,0.s) +Chars 8031 - 8035 [Qed.] 0.001 secs (0.001u,0.s) Chars 8041 - 8148 [#[global]~Instance~Proper_Case...] 0. secs (0.u,0.s) Chars 8153 - 8159 [Proof.] 0. secs (0.u,0.s) -Chars 8166 - 8294 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) -Chars 8299 - 8303 [Qed.] 0. secs (0.u,0.s) +Chars 8166 - 8294 [(intros~?~?~?~R~S~[RS~SR]~T~U~...] 0. secs (0.u,0.s) +Chars 8299 - 8303 [Qed.] 0.001 secs (0.001u,0.s) Chars 8309 - 8365 [#[global]~Instance~Coproduct_r...] 0. secs (0.u,0.s) Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) -Chars 8383 - 8414 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 8383 - 8414 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 8419 - 8423 [Qed.] 0. secs (0.u,0.s) Chars 8427 - 8444 [End~CoproductRel.] 0. secs (0.u,0.s) Chars 8448 - 8467 [Section~ProductRel.] 0. secs (0.u,0.s) @@ -142,45 +142,45 @@ Chars 8473 - 8525 [#[global]~Instance~PairFst_rel...] 0. secs (0.u,0.s) Chars 8530 - 8536 [Proof.] 0. secs (0.u,0.s) Chars 8543 - 8549 [split.] 0. secs (0.u,0.s) Chars 8556 - 8557 [-] 0. secs (0.u,0.s) -Chars 8558 - 8610 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) +Chars 8558 - 8610 [(intros~?~?~([],~(?,~EQ));~inv...] 0. secs (0.u,0.s) Chars 8617 - 8618 [-] 0. secs (0.u,0.s) -Chars 8619 - 8632 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 8641 - 8667 [exists~(inl~y);~compute;~auto.] 0. secs (0.u,0.s) -Chars 8672 - 8676 [Qed.] 0. secs (0.u,0.s) +Chars 8619 - 8632 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 8641 - 8667 [(exists~(inl~y);~compute;~auto).] 0. secs (0.u,0.s) +Chars 8672 - 8676 [Qed.] 0.001 secs (0.001u,0.s) Chars 8682 - 8734 [#[global]~Instance~PairSnd_rel...] 0. secs (0.u,0.s) Chars 8739 - 8745 [Proof.] 0. secs (0.u,0.s) Chars 8752 - 8758 [split.] 0. secs (0.u,0.s) Chars 8765 - 8766 [-] 0. secs (0.u,0.s) -Chars 8767 - 8819 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) +Chars 8767 - 8819 [(intros~?~?~([],~(?,~EQ));~inv...] 0. secs (0.u,0.s) Chars 8826 - 8827 [-] 0. secs (0.u,0.s) -Chars 8828 - 8841 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 8850 - 8876 [exists~(inr~y);~compute;~auto.] 0. secs (0.u,0.s) -Chars 8881 - 8885 [Qed.] 0. secs (0.u,0.s) +Chars 8828 - 8841 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 8850 - 8876 [(exists~(inr~y);~compute;~auto).] 0. secs (0.u,0.s) +Chars 8881 - 8885 [Qed.] 0.001 secs (0.001u,0.s) Chars 8891 - 8955 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) Chars 8960 - 8966 [Proof.] 0. secs (0.u,0.s) -Chars 8973 - 9020 [intros~?~?~?~R~S~RS~[RSR~RRS]~...] 0. secs (0.u,0.s) +Chars 8973 - 9020 [(intros~?~?~?~R~S~RS~[RSR~RRS]...] 0. secs (0.u,0.s) Chars 9027 - 9028 [-] 0. secs (0.u,0.s) -Chars 9029 - 9033 [compute.] 0. secs (0.u,0.s) -Chars 9034 - 9129 [intros~?~[]~?;~[~apply~RSR~|~a...] 0. secs (0.u,0.s) +Chars 9029 - 9033 [(compute).] 0. secs (0.u,0.s) +Chars 9034 - 9129 [(intros~?~[]~?;~[~apply~RSR~|~...] 0. secs (0.u,0.s) Chars 9136 - 9137 [-] 0. secs (0.u,0.s) -Chars 9138 - 9142 [compute.] 0. secs (0.u,0.s) -Chars 9143 - 9265 [intros~?~[]~EQ;~[~apply~RRS~in...] 0.001 secs (0.001u,0.s) +Chars 9138 - 9142 [(compute).] 0. secs (0.u,0.s) +Chars 9143 - 9265 [(intros~?~[]~EQ;~[~apply~RRS~i...] 0.001 secs (0.001u,0.s) Chars 9270 - 9274 [Qed.] 0.001 secs (0.001u,0.s) Chars 9280 - 9387 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) Chars 9392 - 9398 [Proof.] 0. secs (0.u,0.s) -Chars 9405 - 9449 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) -Chars 9456 - 9504 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) -Chars 9511 - 9559 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) +Chars 9405 - 9449 [(intros~?~?~?~R~S~[RS~SR]~T~U~...] 0. secs (0.u,0.s) +Chars 9456 - 9504 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) +Chars 9511 - 9559 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) Chars 9564 - 9568 [Qed.] 0. secs (0.u,0.s) Chars 9574 - 9626 [#[global]~Instance~Product_rel...] 0. secs (0.u,0.s) Chars 9631 - 9637 [Proof.] 0. secs (0.u,0.s) -Chars 9644 - 9675 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9644 - 9675 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 9680 - 9684 [Qed.] 0. secs (0.u,0.s) Chars 9688 - 9703 [End~ProductRel.] 0. secs (0.u,0.s) Chars 9707 - 9725 [Section~DaggerRel.] 0. secs (0.u,0.s) -Chars 9731 - 9797 [#[global]~Instance~DaggerInvol...] 0.023 secs (0.022u,0.s) +Chars 9731 - 9797 [#[global]~Instance~DaggerInvol...] 0. secs (0.u,0.s) Chars 9802 - 9808 [Proof.] 0. secs (0.u,0.s) -Chars 9815 - 9844 [split;~intros~?~?~H;~apply~H.] 0. secs (0.u,0.s) +Chars 9815 - 9844 [(split;~intros~?~?~H;~apply~H).] 0. secs (0.u,0.s) Chars 9849 - 9853 [Qed.] 0. secs (0.u,0.s) Chars 9859 - 9890 [#[local]~Existing~Instance~Eq2...] 0. secs (0.u,0.s) Chars 9895 - 9925 [#[local]~Existing~Instance~Id_Op.] 0. secs (0.u,0.s) @@ -189,16 +189,16 @@ Chars 9967 - 10055 [#[global]~Instance~DaggerFunct...] 0. secs (0.u,0.s) Chars 10060 - 10066 [Proof.] 0. secs (0.u,0.s) Chars 10073 - 10085 [constructor.] 0. secs (0.u,0.s) Chars 10092 - 10093 [-] 0. secs (0.u,0.s) -Chars 10094 - 10147 [split;~intros~?~?~H;~inversion...] 0. secs (0.u,0.s) -Chars 10154 - 10155 [-] 0. secs (0.u,0.s) -Chars 10156 - 10202 [split;~intros~?~?~(?,~(?,~?));...] 0. secs (0.u,0.s) +Chars 10094 - 10147 [(split;~intros~?~?~H;~inversio...] 0.001 secs (0.001u,0.s) +Chars 10154 - 10155 [-] 0.029 secs (0.029u,0.s) +Chars 10156 - 10202 [(split;~intros~?~?~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) Chars 10209 - 10210 [-] 0. secs (0.u,0.s) -Chars 10211 - 10240 [intros~a~b~x~y~[INCL1~INCL2].] 0. secs (0.u,0.s) -Chars 10249 - 10307 [split;~intros~?~?~H;~[~apply~I...] 0. secs (0.u,0.s) +Chars 10211 - 10240 [(intros~a~b~x~y~[INCL1~INCL2]).] 0. secs (0.u,0.s) +Chars 10249 - 10307 [(split;~intros~?~?~H;~[~apply~...] 0. secs (0.u,0.s) Chars 10312 - 10316 [Qed.] 0.001 secs (0.001u,0.s) Chars 10322 - 10376 [#[global]~Instance~DaggerLaws_...] 0. secs (0.u,0.s) Chars 10381 - 10387 [Proof.] 0. secs (0.u,0.s) -Chars 10394 - 10425 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 10394 - 10425 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 10430 - 10434 [Qed.] 0. secs (0.u,0.s) Chars 10438 - 10452 [End~DaggerRel.] 0. secs (0.u,0.s) Chars 10456 - 10478 [Section~BifunctorProd.] 0. secs (0.u,0.s) @@ -206,225 +206,225 @@ Chars 10484 - 10542 [#[global]~Instance~BimapId_pro...] 0. secs (0.u,0.s) Chars 10547 - 10553 [Proof.] 0. secs (0.u,0.s) Chars 10560 - 10566 [split.] 0. secs (0.u,0.s) Chars 10573 - 10574 [-] 0. secs (0.u,0.s) -Chars 10575 - 10606 [compute;~intros~?~?~?;~subst;~...] 0. secs (0.u,0.s) -Chars 10615 - 10629 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 10638 - 10650 [compute;~intros.] 0. secs (0.u,0.s) -Chars 10651 - 10685 [destruct~H;~cbn~in~*;~subst;~a...] 0. secs (0.u,0.s) +Chars 10575 - 10606 [(compute;~intros~?~?~?;~subst;...] 0. secs (0.u,0.s) +Chars 10615 - 10629 [(destruct~x,~y).] 0. secs (0.u,0.s) +Chars 10638 - 10650 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 10651 - 10685 [(destruct~H;~cbn~in~*;~subst;~...] 0. secs (0.u,0.s) Chars 10692 - 10693 [-] 0. secs (0.u,0.s) -Chars 10694 - 10698 [compute.] 0. secs (0.u,0.s) -Chars 10699 - 10720 [intros~[?~?]~[?~?]~H.] 0. secs (0.u,0.s) -Chars 10721 - 10733 [inversion~H.] 0. secs (0.u,0.s) +Chars 10694 - 10698 [(compute).] 0. secs (0.u,0.s) +Chars 10699 - 10720 [(intros~[?~?]~[?~?]~H).] 0. secs (0.u,0.s) +Chars 10721 - 10733 [(inversion~H).] 0. secs (0.u,0.s) Chars 10734 - 10740 [subst.] 0. secs (0.u,0.s) -Chars 10741 - 10760 [repeat~constructor.] 0. secs (0.u,0.s) -Chars 10765 - 10769 [Qed.] 0. secs (0.u,0.s) +Chars 10741 - 10760 [(repeat~constructor).] 0. secs (0.u,0.s) +Chars 10765 - 10769 [Qed.] 0.001 secs (0.001u,0.s) Chars 10775 - 10835 [#[global]~Instance~BimapCat_pr...] 0. secs (0.u,0.s) Chars 10840 - 10846 [Proof.] 0. secs (0.u,0.s) Chars 10853 - 10859 [split.] 0. secs (0.u,0.s) Chars 10866 - 10867 [-] 0. secs (0.u,0.s) -Chars 10868 - 10901 [compute;~intros~[]~[]~([],~(H1...] 0. secs (0.u,0.s) -Chars 10910 - 10934 [inv~H1;~inv~H2;~eauto~~6.] 0.001 secs (0.001u,0.s) +Chars 10868 - 10901 [(compute;~intros~[]~[]~([],~(H...] 0. secs (0.u,0.s) +Chars 10910 - 10934 [(inv~H1;~inv~H2;~eauto~~6).] 0.002 secs (0.002u,0.s) Chars 10941 - 10942 [-] 0. secs (0.u,0.s) -Chars 10943 - 10963 [compute;~intros~[]~[]~H.] 0. secs (0.u,0.s) -Chars 10964 - 11004 [destruct~H~as~[(?,~(?,~?))~(?,...] 0. secs (0.u,0.s) -Chars 11013 - 11045 [cbn~in~*;~eexists~(_,~_);~eauto.] 0. secs (0.u,0.s) -Chars 11050 - 11054 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10943 - 10963 [(compute;~intros~[]~[]~H).] 0. secs (0.u,0.s) +Chars 10964 - 11004 [(destruct~H~as~[(?,~(?,~?))~(?...] 0. secs (0.u,0.s) +Chars 11013 - 11045 [(cbn~in~*;~eexists~(_,~_);~eau...] 0. secs (0.u,0.s) +Chars 11050 - 11054 [Qed.] 0.002 secs (0.002u,0.s) Chars 11060 - 11122 [#[global]~Instance~Bifunctor_p...] 0. secs (0.u,0.s) Chars 11127 - 11133 [Proof.] 0. secs (0.u,0.s) -Chars 11140 - 11175 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) +Chars 11140 - 11175 [(constructor;~try~typeclasses~...] 0.002 secs (0.002u,0.s) Chars 11180 - 11184 [Qed.] 0. secs (0.u,0.s) Chars 11190 - 11306 [#[global]~Instance~Iso_Assoc_p...] 0. secs (0.u,0.s) Chars 11311 - 11317 [Proof.] 0. secs (0.u,0.s) Chars 11324 - 11330 [split.] 0. secs (0.u,0.s) Chars 11337 - 11338 [-] 0. secs (0.u,0.s) -Chars 11339 - 11350 [compute;~split.] 0. secs (0.u,0.s) +Chars 11339 - 11350 [(compute;~split).] 0. secs (0.u,0.s) Chars 11359 - 11360 [+] 0. secs (0.u,0.s) -Chars 11361 - 11397 [intros~?~?~?;~repeat~destructn...] 0. secs (0.u,0.s) -Chars 11408 - 11479 [destructn~ex;~repeat~destructn...] 0.001 secs (0.001u,0.s) +Chars 11361 - 11397 [(intros~?~?~?;~repeat~destruct...] 0. secs (0.u,0.s) +Chars 11408 - 11479 [(destructn~ex;~repeat~destruct...] 0.001 secs (0.001u,0.s) Chars 11488 - 11489 [+] 0. secs (0.u,0.s) -Chars 11490 - 11536 [intros~((?,~?),~?)~((x,~y),~z)...] 0.001 secs (0.001u,0.s) -Chars 11547 - 11575 [exists~(x,~(y,~z));~intuition.] 0. secs (0.u,0.s) +Chars 11490 - 11536 [(intros~((?,~?),~?)~((x,~y),~z...] 0.002 secs (0.002u,0.s) +Chars 11547 - 11575 [(exists~(x,~(y,~z));~intuition).] 0.001 secs (0.001u,0.s) Chars 11582 - 11583 [-] 0. secs (0.u,0.s) -Chars 11584 - 11595 [compute;~split.] 0. secs (0.u,0.s) +Chars 11584 - 11595 [(compute;~split).] 0. secs (0.u,0.s) Chars 11604 - 11605 [+] 0. secs (0.u,0.s) -Chars 11606 - 11679 [intros~?~?~?;~destructn~ex;~re...] 0.003 secs (0.003u,0.s) +Chars 11606 - 11679 [(intros~?~?~?;~destructn~ex;~r...] 0.002 secs (0.002u,0.s) Chars 11688 - 11689 [+] 0. secs (0.u,0.s) -Chars 11690 - 11737 [intros~?~(x,~(y,~z))~->;~repea...] 0. secs (0.u,0.s) -Chars 11748 - 11774 [exists~(x,~y,~z);~intuition.] 0. secs (0.u,0.s) -Chars 11779 - 11783 [Qed.] 0.006 secs (0.005u,0.s) +Chars 11690 - 11737 [(intros~?~(x,~(y,~z))~->;~repe...] 0. secs (0.u,0.s) +Chars 11748 - 11774 [(exists~(x,~y,~z);~intuition).] 0.003 secs (0.003u,0.s) +Chars 11779 - 11783 [Qed.] 0.009 secs (0.008u,0.001s) Chars 11789 - 11897 [#[global]~Instance~Iso_UnitL_p...] 0. secs (0.u,0.s) Chars 11902 - 11908 [Proof.] 0. secs (0.u,0.s) -Chars 11915 - 12044 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) -Chars 12051 - 12070 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 12077 - 12097 [exists~(tt,~y);~auto.] 0. secs (0.u,0.s) -Chars 12102 - 12106 [Qed.] 0.001 secs (0.u,0.s) +Chars 11915 - 12044 [(split;~compute;~split;~intros...] 0.003 secs (0.002u,0.s) +Chars 12051 - 12070 [(eexists;~intuition).] 0. secs (0.u,0.s) +Chars 12077 - 12097 [(exists~(tt,~y);~auto).] 0. secs (0.u,0.s) +Chars 12102 - 12106 [Qed.] 0.001 secs (0.001u,0.s) Chars 12112 - 12220 [#[global]~Instance~Iso_UnitR_p...] 0. secs (0.u,0.s) Chars 12225 - 12231 [Proof.] 0. secs (0.u,0.s) -Chars 12238 - 12367 [split;~compute;~split;~intros;...] 0.002 secs (0.001u,0.s) -Chars 12374 - 12393 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 12400 - 12420 [exists~(y,~tt);~auto.] 0. secs (0.u,0.s) +Chars 12238 - 12367 [(split;~compute;~split;~intros...] 0.003 secs (0.002u,0.s) +Chars 12374 - 12393 [(eexists;~intuition).] 0. secs (0.u,0.s) +Chars 12400 - 12420 [(exists~(y,~tt);~auto).] 0. secs (0.u,0.s) Chars 12425 - 12429 [Qed.] 0.001 secs (0.001u,0.s) Chars 12435 - 12508 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 12513 - 12519 [Proof.] 0. secs (0.u,0.s) -Chars 12526 - 12696 [split;~compute;~intros;~~repea...] 0.002 secs (0.002u,0.s) +Chars 12526 - 12696 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.s) Chars 12703 - 12704 [-] 0. secs (0.u,0.s) -Chars 12705 - 12737 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 12705 - 12737 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) Chars 12744 - 12745 [-] 0. secs (0.u,0.s) -Chars 12746 - 12810 [eexists~(_,~_);~constructor;~[...] 0. secs (0.u,0.s) -Chars 12815 - 12819 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12746 - 12810 [(eexists~(_,~_);~constructor;~...] 0. secs (0.u,0.s) +Chars 12815 - 12819 [Qed.] 0.002 secs (0.001u,0.s) Chars 12825 - 12900 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 12905 - 12911 [Proof.] 0. secs (0.u,0.s) -Chars 12918 - 13076 [split;~compute;~intros;~~repea...] 0.004 secs (0.003u,0.s) -Chars 13083 - 13115 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 13122 - 13159 [exists~(tt,~x);~intuition~subs...] 0. secs (0.u,0.s) +Chars 12918 - 13076 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.s) +Chars 13083 - 13115 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) +Chars 13122 - 13159 [(exists~(tt,~x);~intuition~sub...] 0. secs (0.u,0.s) Chars 13164 - 13168 [Qed.] 0.001 secs (0.001u,0.s) Chars 13174 - 13243 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 13248 - 13254 [Proof.] 0. secs (0.u,0.s) -Chars 13261 - 13293 [split;~compute;~intros~[[?~?]~...] 0.001 secs (0.001u,0.s) +Chars 13261 - 13293 [(split;~compute;~intros~[[?~?]...] 0.004 secs (0.004u,0.s) Chars 13300 - 13301 [-] 0. secs (0.u,0.s) -Chars 13302 - 13325 [intros~[[?~[]]~[?~[]]].] 0. secs (0.u,0.s) +Chars 13302 - 13325 [(intros~[[?~[]]~[?~[]]]).] 0. secs (0.u,0.s) Chars 13326 - 13336 [intuition.] 0.001 secs (0.001u,0.s) -Chars 13337 - 13353 [cbn~in~*;~subst.] 0. secs (0.u,0.s) -Chars 13354 - 13377 [constructor;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 13337 - 13353 [(cbn~in~*;~subst).] 0. secs (0.u,0.s) +Chars 13354 - 13377 [(constructor;~cbn;~auto).] 0. secs (0.u,0.s) Chars 13384 - 13385 [-] 0. secs (0.u,0.s) -Chars 13386 - 13417 [intros~[];~eexists~(_,~(u,~_)).] 0. secs (0.u,0.s) +Chars 13386 - 13417 [(intros~[];~eexists~(_,~(u,~_))).] 0. secs (0.u,0.s) Chars 13418 - 13428 [intuition.] 0. secs (0.u,0.s) -Chars 13433 - 13437 [Qed.] 0.002 secs (0.002u,0.s) +Chars 13433 - 13437 [Qed.] 0.003 secs (0.003u,0.s) Chars 13439 - 13884 [Ltac~~decomp~:=~~~repeat~~~~la...] 0. secs (0.u,0.s) Chars 13890 - 13958 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 13963 - 13969 [Proof.] 0. secs (0.u,0.s) -Chars 13976 - 13995 [split;~compute;~decomp.] 0.011 secs (0.011u,0.s) +Chars 13976 - 13995 [(split;~compute;~decomp).] 0.015 secs (0.015u,0.s) Chars 14002 - 14003 [-] 0. secs (0.u,0.s) Chars 14004 - 14027 [eexists~(_,~_,~(_,~_)).] 0. secs (0.u,0.s) Chars 14028 - 14050 [firstorder~~congruence.] 0. secs (0.u,0.s) Chars 14057 - 14058 [-] 0. secs (0.u,0.s) -Chars 14059 - 14094 [eexists~(_,~(_,~_,~_));~firsto...] 0.001 secs (0.001u,0.s) +Chars 14059 - 14094 [(eexists~(_,~(_,~_,~_));~first...] 0.002 secs (0.002u,0.s) Chars 14095 - 14118 [eexists~(_,~(_,~_),~_).] 0. secs (0.u,0.s) Chars 14119 - 14148 [firstorder~~(cbn;~congruence).] 0.001 secs (0.001u,0.s) -Chars 14153 - 14157 [Qed.] 0.015 secs (0.015u,0.s) +Chars 14153 - 14157 [Qed.] 0.02 secs (0.02u,0.s) Chars 14163 - 14228 [#[global]~Instance~Monoidal_pr...] 0. secs (0.u,0.s) Chars 14233 - 14239 [Proof.] 0. secs (0.u,0.s) -Chars 14246 - 14277 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 14246 - 14277 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 14282 - 14286 [Qed.] 0. secs (0.u,0.s) Chars 14290 - 14308 [End~BifunctorProd.] 0. secs (0.u,0.s) Chars 14312 - 14333 [Section~BifunctorSum.] 0. secs (0.u,0.s) Chars 14339 - 14395 [#[global]~Instance~BimapId_sum...] 0. secs (0.u,0.s) Chars 14400 - 14406 [Proof.] 0. secs (0.u,0.s) Chars 14413 - 14419 [split.] 0. secs (0.u,0.s) -Chars 14426 - 14430 [red.] 0. secs (0.u,0.s) -Chars 14431 - 14444 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 14445 - 14461 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 14468 - 14527 [destruct~x,~y;~subst;~inversio...] 0.002 secs (0.002u,0.s) -Chars 14534 - 14580 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) -Chars 14587 - 14633 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) -Chars 14640 - 14644 [red.] 0. secs (0.u,0.s) -Chars 14645 - 14658 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 14659 - 14675 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 14426 - 14430 [(red).] 0. secs (0.u,0.s) +Chars 14431 - 14444 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 14445 - 14461 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 14468 - 14527 [(destruct~x,~y;~subst;~inversi...] 0.003 secs (0.002u,0.s) +Chars 14534 - 14580 [(inversion~H;~inversion~H2;~su...] 0.004 secs (0.004u,0.s) +Chars 14587 - 14633 [(inversion~H;~inversion~H2;~su...] 0.001 secs (0.001u,0.s) +Chars 14640 - 14644 [(red).] 0. secs (0.u,0.s) +Chars 14645 - 14658 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 14659 - 14675 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 14682 - 14688 [subst.] 0. secs (0.u,0.s) -Chars 14689 - 14700 [repeat~red.] 0. secs (0.u,0.s) -Chars 14701 - 14739 [destruct~y;~econstructor;~refl...] 0. secs (0.u,0.s) +Chars 14689 - 14700 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14701 - 14739 [(destruct~y;~econstructor;~ref...] 0. secs (0.u,0.s) Chars 14744 - 14748 [Qed.] 0.003 secs (0.003u,0.s) Chars 14754 - 14812 [#[global]~Instance~BimapCat_su...] 0. secs (0.u,0.s) Chars 14817 - 14823 [Proof.] 0. secs (0.u,0.s) Chars 14830 - 14836 [split.] 0. secs (0.u,0.s) -Chars 14843 - 14847 [compute.] 0. secs (0.u,0.s) -Chars 14848 - 14986 [intros;~destruct~x,~y;~destruc...] 0.006 secs (0.006u,0.s) -Chars 14993 - 15006 [repeat~intro.] 0. secs (0.u,0.s) -Chars 15007 - 15073 [inversion~H;~inversion~H0;~inv...] 0.002 secs (0.002u,0.s) +Chars 14843 - 14847 [(compute).] 0. secs (0.u,0.s) +Chars 14848 - 14986 [(intros;~destruct~x,~y;~destru...] 0.008 secs (0.008u,0.s) +Chars 14993 - 15006 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 15007 - 15073 [(inversion~H;~inversion~H0;~in...] 0.003 secs (0.003u,0.s) Chars 15081 - 15097 [exists~(inl~x0).] 0. secs (0.u,0.s) -Chars 15098 - 15125 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 15098 - 15125 [(split;~econstructor;~eauto).] 0. secs (0.u,0.s) Chars 15132 - 15148 [exists~(inr~x0).] 0. secs (0.u,0.s) -Chars 15149 - 15176 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 15149 - 15176 [(split;~econstructor;~eauto).] 0. secs (0.u,0.s) Chars 15181 - 15185 [Qed.] 0.007 secs (0.007u,0.s) Chars 15191 - 15251 [#[global]~Instance~Bifunctor_s...] 0. secs (0.u,0.s) Chars 15256 - 15262 [Proof.] 0. secs (0.u,0.s) -Chars 15269 - 15304 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) +Chars 15269 - 15304 [(constructor;~try~typeclasses~...] 0.004 secs (0.004u,0.s) Chars 15309 - 15313 [Qed.] 0. secs (0.u,0.s) Chars 15319 - 15433 [#[global]~Instance~Iso_Assoc_s...] 0. secs (0.u,0.s) Chars 15438 - 15444 [Proof.] 0. secs (0.u,0.s) Chars 15451 - 15457 [split.] 0. secs (0.u,0.s) Chars 15464 - 15465 [-] 0. secs (0.u,0.s) -Chars 15466 - 15647 [compute;~split;~intros;~~repea...] 0.013 secs (0.013u,0.s) -Chars 15656 - 15683 [exists~(inl~a0);~intuition.] 0. secs (0.u,0.s) -Chars 15692 - 15725 [exists~(inr~(inl~b0));~intuition.] 0. secs (0.u,0.s) -Chars 15734 - 15767 [exists~(inr~(inr~c0));~intuition.] 0. secs (0.u,0.s) +Chars 15466 - 15647 [(compute;~split;~intros;~~~rep...] 0.014 secs (0.014u,0.s) +Chars 15656 - 15683 [(exists~(inl~a0);~intuition).] 0. secs (0.u,0.s) +Chars 15692 - 15725 [(exists~(inr~(inl~b0));~intuit...] 0. secs (0.u,0.s) +Chars 15734 - 15767 [(exists~(inr~(inr~c0));~intuit...] 0. secs (0.u,0.s) Chars 15774 - 15775 [-] 0. secs (0.u,0.s) -Chars 15776 - 15947 [compute;~split;~intros;~~repea...] 0.012 secs (0.012u,0.s) -Chars 15956 - 15989 [exists~(inl~(inl~a0));~intuition.] 0. secs (0.u,0.s) -Chars 15998 - 16031 [exists~(inl~(inr~b0));~intuition.] 0. secs (0.u,0.s) -Chars 16040 - 16067 [exists~(inr~c0);~intuition.] 0. secs (0.u,0.s) -Chars 16072 - 16076 [Qed.] 0.012 secs (0.012u,0.s) +Chars 15776 - 15947 [(compute;~split;~intros;~~~rep...] 0.016 secs (0.016u,0.s) +Chars 15956 - 15989 [(exists~(inl~(inl~a0));~intuit...] 0. secs (0.u,0.s) +Chars 15998 - 16031 [(exists~(inl~(inr~b0));~intuit...] 0. secs (0.u,0.s) +Chars 16040 - 16067 [(exists~(inr~c0);~intuition).] 0. secs (0.u,0.s) +Chars 16072 - 16076 [Qed.] 0.01 secs (0.01u,0.s) Chars 16082 - 16188 [#[global]~Instance~Iso_UnitL_s...] 0. secs (0.u,0.s) Chars 16193 - 16199 [Proof.] 0. secs (0.u,0.s) -Chars 16206 - 16334 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) -Chars 16341 - 16360 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 16367 - 16388 [exists~(inr~y);~auto.] 0. secs (0.u,0.s) +Chars 16206 - 16334 [(split;~compute;~split;~intros...] 0.007 secs (0.007u,0.s) +Chars 16341 - 16360 [(eexists;~intuition).] 0. secs (0.u,0.s) +Chars 16367 - 16388 [(exists~(inr~y);~auto).] 0. secs (0.u,0.s) Chars 16393 - 16397 [Qed.] 0.001 secs (0.001u,0.s) Chars 16403 - 16509 [#[global]~Instance~Iso_UnitR_s...] 0. secs (0.u,0.s) Chars 16514 - 16520 [Proof.] 0. secs (0.u,0.s) -Chars 16527 - 16655 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) -Chars 16662 - 16681 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 16688 - 16709 [exists~(inl~y);~auto.] 0. secs (0.u,0.s) +Chars 16527 - 16655 [(split;~compute;~split;~intros...] 0.003 secs (0.003u,0.s) +Chars 16662 - 16681 [(eexists;~intuition).] 0. secs (0.u,0.s) +Chars 16688 - 16709 [(exists~(inl~y);~auto).] 0. secs (0.u,0.s) Chars 16714 - 16718 [Qed.] 0.001 secs (0.001u,0.s) Chars 16724 - 16795 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 16800 - 16806 [Proof.] 0. secs (0.u,0.s) -Chars 16813 - 16994 [split;~compute;~intros;~~repea...] 0.004 secs (0.004u,0.s) -Chars 17001 - 17033 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 17040 - 17072 [eexists;~intuition~subst;~eauto.] 0.001 secs (0.001u,0.s) -Chars 17077 - 17081 [Qed.] 0.002 secs (0.002u,0.s) +Chars 16813 - 16994 [(split;~compute;~intros;~~~rep...] 0.005 secs (0.005u,0.s) +Chars 17001 - 17033 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) +Chars 17040 - 17072 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) +Chars 17077 - 17081 [Qed.] 0.003 secs (0.003u,0.s) Chars 17087 - 17160 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 17165 - 17171 [Proof.] 0. secs (0.u,0.s) -Chars 17178 - 17359 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) -Chars 17366 - 17398 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 17405 - 17443 [exists~(inr~x);~intuition~subs...] 0. secs (0.u,0.s) -Chars 17448 - 17452 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17178 - 17359 [(split;~compute;~intros;~~~rep...] 0.007 secs (0.007u,0.s) +Chars 17366 - 17398 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) +Chars 17405 - 17443 [(exists~(inr~x);~intuition~sub...] 0. secs (0.u,0.s) +Chars 17448 - 17452 [Qed.] 0.003 secs (0.003u,0.s) Chars 17458 - 17525 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 17530 - 17536 [Proof.] 0. secs (0.u,0.s) -Chars 17543 - 17562 [split;~compute;~intros.] 0. secs (0.u,0.s) -Chars 17569 - 17580 [destruct~H.] 0. secs (0.u,0.s) -Chars 17587 - 17732 [destruct~x;~try~destruct~s;~tr...] 0.006 secs (0.006u,0.s) -Chars 17739 - 17783 [destruct~s;~try~contradiction;...] 0. secs (0.u,0.s) -Chars 17790 - 17859 [inversion~H;~subst;~eauto;~try...] 0.005 secs (0.005u,0.s) -Chars 17866 - 17872 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 17873 - 17896 [exists~(inl~a2);~eauto.] 0. secs (0.u,0.s) -Chars 17904 - 17940 [inv~H;~exists~(inr~(inr~b2));~...] 0.001 secs (0.001u,0.s) -Chars 17946 - 17950 [Qed.] 0.008 secs (0.008u,0.s) +Chars 17543 - 17562 [(split;~compute;~intros).] 0. secs (0.u,0.s) +Chars 17569 - 17580 [(destruct~H).] 0. secs (0.u,0.s) +Chars 17587 - 17732 [(destruct~x;~try~destruct~s;~t...] 0.009 secs (0.009u,0.s) +Chars 17739 - 17783 [(destruct~s;~try~contradiction...] 0. secs (0.u,0.s) +Chars 17790 - 17859 [(inversion~H;~subst;~eauto;~tr...] 0.003 secs (0.003u,0.s) +Chars 17866 - 17872 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 17873 - 17896 [(exists~(inl~a2);~eauto).] 0. secs (0.u,0.s) +Chars 17904 - 17940 [(inv~H;~exists~(inr~(inr~b2));...] 0.002 secs (0.002u,0.s) +Chars 17946 - 17950 [Qed.] 0.014 secs (0.014u,0.s) Chars 17956 - 18022 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 18027 - 18033 [Proof.] 0. secs (0.u,0.s) -Chars 18040 - 18221 [split;~compute;~intros;~~repea...] 0.05 secs (0.05u,0.s) +Chars 18040 - 18221 [(split;~compute;~intros;~~~rep...] 0.071 secs (0.07u,0.s) Chars 18228 - 18229 [-] 0. secs (0.u,0.s) -Chars 18230 - 18269 [exists~(inl~(inl~a2));~intuiti...] 0. secs (0.u,0.s) +Chars 18230 - 18269 [(exists~(inl~(inl~a2));~intuit...] 0. secs (0.u,0.s) Chars 18276 - 18277 [-] 0. secs (0.u,0.s) -Chars 18278 - 18317 [eexists~(inl~(inr~_));~intuiti...] 0. secs (0.u,0.s) +Chars 18278 - 18317 [(eexists~(inl~(inr~_));~intuit...] 0. secs (0.u,0.s) Chars 18324 - 18325 [-] 0. secs (0.u,0.s) -Chars 18326 - 18365 [eexists~(inr~(inl~_));~intuiti...] 0. secs (0.u,0.s) +Chars 18326 - 18365 [(eexists~(inr~(inl~_));~intuit...] 0. secs (0.u,0.s) Chars 18372 - 18373 [-] 0. secs (0.u,0.s) -Chars 18374 - 18413 [eexists~(inr~(inr~_));~intuiti...] 0. secs (0.u,0.s) +Chars 18374 - 18413 [(eexists~(inr~(inr~_));~intuit...] 0. secs (0.u,0.s) Chars 18420 - 18421 [-] 0. secs (0.u,0.s) -Chars 18422 - 18455 [eexists~(inl~_);~intuition;~auto.] 0. secs (0.u,0.s) -Chars 18464 - 18503 [exists~(inl~(inl~a1));~intuiti...] 0. secs (0.u,0.s) +Chars 18422 - 18455 [(eexists~(inl~_);~intuition;~a...] 0. secs (0.u,0.s) +Chars 18464 - 18503 [(exists~(inl~(inl~a1));~intuit...] 0. secs (0.u,0.s) Chars 18510 - 18511 [-] 0. secs (0.u,0.s) -Chars 18512 - 18571 [exists~(inr~(inl~(inl~b1)));~i...] 0.001 secs (0.001u,0.s) +Chars 18512 - 18571 [(exists~(inr~(inl~(inl~b1)));~...] 0.001 secs (0.001u,0.s) Chars 18580 - 18586 [split.] 0. secs (0.u,0.s) Chars 18587 - 18600 [econstructor.] 0. secs (0.u,0.s) Chars 18601 - 18610 [Unshelve.] 0. secs (0.u,0.s) Chars 18611 - 18638 [3:~exact~(inr~(inl~b1)).] 0. secs (0.u,0.s) -Chars 18639 - 18655 [intuition;~auto.] 0. secs (0.u,0.s) -Chars 18664 - 18674 [intuition.] 0.002 secs (0.002u,0.s) +Chars 18639 - 18655 [(intuition;~auto).] 0. secs (0.u,0.s) +Chars 18664 - 18674 [intuition.] 0. secs (0.u,0.s) Chars 18681 - 18682 [-] 0. secs (0.u,0.s) -Chars 18683 - 18742 [exists~(inr~(inl~(inr~c0)));~i...] 0.001 secs (0.001u,0.s) +Chars 18683 - 18742 [(exists~(inr~(inl~(inr~c0)));~...] 0.001 secs (0.001u,0.s) Chars 18751 - 18757 [split.] 0. secs (0.u,0.s) Chars 18758 - 18767 [Unshelve.] 0. secs (0.u,0.s) Chars 18768 - 18781 [econstructor.] 0. secs (0.u,0.s) Chars 18782 - 18791 [Unshelve.] 0. secs (0.u,0.s) Chars 18800 - 18828 [3:~refine~(inr~(inr~c0)).] 0. secs (0.u,0.s) -Chars 18829 - 18859 [intuition;~econstructor;~auto.] 0. secs (0.u,0.s) +Chars 18829 - 18859 [(intuition;~econstructor;~auto).] 0. secs (0.u,0.s) Chars 18868 - 18878 [intuition.] 0. secs (0.u,0.s) Chars 18885 - 18886 [-] 0. secs (0.u,0.s) -Chars 18887 - 18940 [exists~(inr~(inr~d0));~intuiti...] 0.001 secs (0.001u,0.s) -Chars 18946 - 18950 [Qed.] 0.03 secs (0.03u,0.s) +Chars 18887 - 18940 [(exists~(inr~(inr~d0));~intuit...] 0.001 secs (0.001u,0.s) +Chars 18946 - 18950 [Qed.] 0.04 secs (0.04u,0.s) Chars 18956 - 19019 [#[global]~Instance~Monoidal_su...] 0. secs (0.u,0.s) Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) -Chars 19037 - 19068 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 19037 - 19068 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 19073 - 19077 [Qed.] 0. secs (0.u,0.s) Chars 19081 - 19098 [End~BifunctorSum.] 0. secs (0.u,0.s) -Chars 19100 - 19110 [End~Facts.] 0. secs (0.u,0.s) +Chars 19100 - 19110 [End~Facts.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/CategorySub.v.timing b/theories/Basics/CategorySub.v.timing index 9210db47..e6ef517a 100644 --- a/theories/Basics/CategorySub.v.timing +++ b/theories/Basics/CategorySub.v.timing @@ -1,5 +1,5 @@ -Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.003u,0.002s) -Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.006 secs (0.003u,0.001s) +Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.005 secs (0.003u,0.001s) Chars 244 - 264 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 265 - 292 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 309 - 335 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) @@ -17,10 +17,10 @@ Chars 1201 - 1299 [Class~ToBifunctor~:~Type~:=~~~...] 0. secs (0.u,0.s) Chars 1301 - 1403 [Class~FromBifunctor~:~Type~:=~...] 0. secs (0.u,0.s) Chars 1405 - 1430 [Arguments~to_bif~{_~a~b}.] 0. secs (0.u,0.s) Chars 1431 - 1458 [Arguments~from_bif~{_~a~b}.] 0. secs (0.u,0.s) -Chars 1460 - 1591 [Context~{ToBif~:~ToBifunctor}~...] 0.001 secs (0.u,0.s) +Chars 1460 - 1591 [Context~{ToBif~:~ToBifunctor}~...] 0. secs (0.u,0.s) Chars 1593 - 1607 [Section~Bimap.] 0. secs (0.u,0.s) Chars 1609 - 1643 [Context~{Bimap_C~:~Bimap~C~bif}.] 0. secs (0.u,0.s) -Chars 1645 - 1750 [Definition~Bimap_sub~:~Bimap~s...] 0.002 secs (0.001u,0.s) +Chars 1645 - 1750 [Definition~Bimap_sub~:~Bimap~s...] 0.001 secs (0.001u,0.s) Chars 1752 - 1762 [End~Bimap.] 0. secs (0.u,0.s) Chars 1764 - 1840 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) Chars 1842 - 1935 [#[global]~Instance~Case_sub~:~...] 0. secs (0.u,0.s) @@ -33,22 +33,22 @@ Chars 2256 - 2349 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) Chars 2351 - 2441 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2443 - 2487 [#[global]~Instance~Category_su...] 0. secs (0.u,0.s) Chars 2488 - 2494 [Proof.] 0. secs (0.u,0.s) -Chars 2497 - 2542 [destruct~Category_C;~construct...] 0.002 secs (0.002u,0.s) -Chars 2545 - 2554 [do~2~red.] 0. secs (0.u,0.s) -Chars 2555 - 2562 [intros.] 0. secs (0.u,0.s) -Chars 2563 - 2597 [eapply~category_proper_cat;~ea...] 0. secs (0.u,0.s) +Chars 2497 - 2542 [(destruct~Category_C;~construc...] 0.003 secs (0.002u,0.s) +Chars 2545 - 2554 [(do~2~red).] 0. secs (0.u,0.s) +Chars 2555 - 2562 [(intros).] 0. secs (0.u,0.s) +Chars 2563 - 2597 [(eapply~category_proper_cat;~e...] 0. secs (0.u,0.s) Chars 2598 - 2602 [Qed.] 0. secs (0.u,0.s) -Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0. secs (0.u,0.s) +Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0.001 secs (0.u,0.s) Chars 2673 - 2679 [Proof.] 0. secs (0.u,0.s) -Chars 2680 - 2690 [hnf;~auto.] 0. secs (0.u,0.s) +Chars 2680 - 2690 [(hnf;~auto).] 0. secs (0.u,0.s) Chars 2691 - 2695 [Qed.] 0. secs (0.u,0.s) -Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0. secs (0.u,0.s) +Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0.001 secs (0.u,0.s) Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) -Chars 2775 - 2785 [hnf;~auto.] 0. secs (0.u,0.s) +Chars 2775 - 2785 [(hnf;~auto).] 0. secs (0.u,0.s) Chars 2786 - 2790 [Qed.] 0. secs (0.u,0.s) Chars 2792 - 2852 [#[global]~Instance~Functor_uns...] 0. secs (0.u,0.s) Chars 2853 - 2859 [Proof.] 0. secs (0.u,0.s) -Chars 2862 - 2907 [constructor;~reflexivity~+~typ...] 0.001 secs (0.001u,0.s) +Chars 2862 - 2907 [(constructor;~reflexivity~+~ty...] 0.001 secs (0.001u,0.s) Chars 2908 - 2912 [Qed.] 0. secs (0.u,0.s) Chars 2914 - 2926 [End~CatLaws.] 0. secs (0.u,0.s) Chars 2928 - 3800 [Ltac~~unfold_sub~:=~~~repeat~~...] 0. secs (0.u,0.s) @@ -57,69 +57,69 @@ Chars 3990 - 4012 [Section~CoproductLaws.] 0. secs (0.u,0.s) Chars 4014 - 4141 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) Chars 4143 - 4194 [#[global]~Instance~Coproduct_s...] 0. secs (0.u,0.s) Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) -Chars 4204 - 4251 [destruct~Coproduct_C;~construc...] 0. secs (0.u,0.s) -Chars 4254 - 4287 [all:~unfold~Morphisms.respectful.] 0. secs (0.u,0.s) -Chars 4290 - 4306 [all:~unfold_sub.] 0.012 secs (0.011u,0.001s) -Chars 4309 - 4337 [all:~try~rewrite~!cat_assoc.] 0.004 secs (0.004u,0.s) -Chars 4340 - 4366 [all:~try~simpl_bif;~eauto.] 0.031 secs (0.031u,0.s) +Chars 4204 - 4251 [(destruct~Coproduct_C;~constru...] 0. secs (0.u,0.s) +Chars 4254 - 4287 [all:~(unfold~Morphisms.respect...] 0. secs (0.u,0.s) +Chars 4290 - 4306 [all:~unfold_sub.] 0.016 secs (0.014u,0.001s) +Chars 4309 - 4337 [all:~(try~rewrite~!cat_assoc).] 0.005 secs (0.005u,0.s) +Chars 4340 - 4366 [all:~(try~simpl_bif;~eauto).] 0.037 secs (0.037u,0.s) Chars 4369 - 4370 [-] 0. secs (0.u,0.s) -Chars 4371 - 4419 [enough~(from_bif~>>>~fg~⩯~case...] 0. secs (0.u,0.s) +Chars 4371 - 4419 [(enough~(from_bif~>>>~fg~⩯~cas...] 0. secs (0.u,0.s) Chars 4424 - 4425 [{] 0. secs (0.u,0.s) -Chars 4426 - 4480 [rewrite~<-~H1,~<-~cat_assoc,~(...] 0.004 secs (0.004u,0.s) +Chars 4426 - 4480 [(rewrite~<-~H1,~<-~cat_assoc,~...] 0.005 secs (0.005u,0.s) Chars 4481 - 4493 [reflexivity.] 0. secs (0.u,0.s) Chars 4494 - 4495 [}] 0. secs (0.u,0.s) -Chars 4500 - 4550 [apply~case_universal;~rewrite~...] 0.003 secs (0.003u,0.s) +Chars 4500 - 4550 [(apply~case_universal;~rewrite...] 0.003 secs (0.003u,0.s) Chars 4553 - 4554 [-] 0. secs (0.u,0.s) -Chars 4555 - 4562 [intros.] 0. secs (0.u,0.s) -Chars 4563 - 4586 [unfold~case_,~Case_sub.] 0. secs (0.u,0.s) -Chars 4591 - 4617 [apply~category_proper_cat.] 0. secs (0.u,0.s) +Chars 4555 - 4562 [(intros).] 0. secs (0.u,0.s) +Chars 4563 - 4586 [(unfold~case_,~Case_sub).] 0. secs (0.u,0.s) +Chars 4591 - 4617 [(apply~category_proper_cat).] 0. secs (0.u,0.s) Chars 4618 - 4630 [reflexivity.] 0. secs (0.u,0.s) -Chars 4635 - 4671 [eapply~coproduct_proper_case;~...] 0. secs (0.u,0.s) -Chars 4672 - 4676 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.002 secs (0.001u,0.s) +Chars 4635 - 4671 [(eapply~coproduct_proper_case;...] 0. secs (0.u,0.s) +Chars 4672 - 4676 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.001 secs (0.001u,0.s) Chars 4829 - 4835 [Proof.] 0. secs (0.u,0.s) -Chars 4838 - 4878 [unfold~bimap~at~1,~Bimap_Copro...] 0. secs (0.u,0.s) +Chars 4838 - 4878 [(unfold~bimap~at~1,~Bimap_Copr...] 0. secs (0.u,0.s) Chars 4881 - 4892 [unfold_sub.] 0.001 secs (0.001u,0.s) -Chars 4895 - 4918 [rewrite~<-~2!cat_assoc.] 0.013 secs (0.01u,0.001s) -Chars 4921 - 4941 [rewrite~<-~cat_case.] 0.003 secs (0.002u,0.s) -Chars 4942 - 4960 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 4895 - 4918 [(rewrite~<-~2!cat_assoc).] 0.01 secs (0.008u,0.001s) +Chars 4921 - 4941 [(rewrite~<-~cat_case).] 0.004 secs (0.003u,0.001s) +Chars 4942 - 4960 [(rewrite~cat_assoc).] 0.002 secs (0.001u,0.s) Chars 4963 - 4975 [reflexivity.] 0. secs (0.u,0.s) -Chars 4976 - 4980 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4976 - 4980 [Qed.] 0.002 secs (0.002u,0.s) Chars 4982 - 5024 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) Chars 5026 - 5077 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) Chars 5078 - 5084 [Proof.] 0. secs (0.u,0.s) -Chars 5087 - 5112 [constructor;~red;~intros.] 0. secs (0.u,0.s) -Chars 5115 - 5160 [all:~unfold~Morphisms.respectf...] 0.007 secs (0.005u,0.001s) +Chars 5087 - 5112 [(constructor;~red;~intros).] 0. secs (0.u,0.s) +Chars 5115 - 5160 [all:~(unfold~Morphisms.respect...] 0.01 secs (0.007u,0.002s) Chars 5163 - 5164 [-] 0. secs (0.u,0.s) -Chars 5165 - 5201 [rewrite~iter_unfold,~cat_assoc...] 0.003 secs (0.002u,0.s) +Chars 5165 - 5201 [(rewrite~iter_unfold,~cat_asso...] 0.004 secs (0.003u,0.001s) Chars 5202 - 5214 [reflexivity.] 0. secs (0.u,0.s) Chars 5217 - 5218 [-] 0. secs (0.u,0.s) -Chars 5219 - 5244 [rewrite~bimap_sub_unfold.] 0.005 secs (0.004u,0.s) -Chars 5249 - 5277 [rewrite~!(cat_assoc~to_bif).] 0.004 secs (0.004u,0.s) -Chars 5282 - 5316 [rewrite~<-~(cat_assoc~(C:=C)~f).] 0.002 secs (0.002u,0.s) -Chars 5321 - 5363 [rewrite~cat_assoc,~(cat_assoc~...] 0.004 secs (0.004u,0.s) -Chars 5368 - 5401 [rewrite~(semi_iso~_~_),~cat_id_r.] 0.007 secs (0.007u,0.s) -Chars 5406 - 5427 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) +Chars 5219 - 5244 [(rewrite~bimap_sub_unfold).] 0.007 secs (0.006u,0.s) +Chars 5249 - 5277 [(rewrite~!(cat_assoc~to_bif)).] 0.006 secs (0.006u,0.s) +Chars 5282 - 5316 [(rewrite~<-~(cat_assoc~(C:=C)~...] 0.004 secs (0.004u,0.s) +Chars 5321 - 5363 [(rewrite~cat_assoc,~(cat_assoc...] 0.007 secs (0.007u,0.s) +Chars 5368 - 5401 [(rewrite~(semi_iso~_~_),~cat_i...] 0.009 secs (0.009u,0.s) +Chars 5406 - 5427 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) Chars 5432 - 5444 [reflexivity.] 0. secs (0.u,0.s) Chars 5447 - 5448 [-] 0. secs (0.u,0.s) -Chars 5449 - 5482 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.012 secs (0.012u,0.s) -Chars 5487 - 5519 [rewrite~!(cat_assoc~_~_~to_bif).] 0.01 secs (0.01u,0.s) -Chars 5524 - 5542 [rewrite~!cat_case.] 0.011 secs (0.011u,0.s) -Chars 5547 - 5607 [rewrite~!(cat_assoc~_~from_bif...] 0.04 secs (0.039u,0.s) -Chars 5612 - 5635 [rewrite~iter_dinatural.] 0.001 secs (0.001u,0.s) +Chars 5449 - 5482 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.015 secs (0.015u,0.s) +Chars 5487 - 5519 [(rewrite~!(cat_assoc~_~_~to_bi...] 0.013 secs (0.012u,0.s) +Chars 5524 - 5542 [(rewrite~!cat_case).] 0.014 secs (0.014u,0.s) +Chars 5547 - 5607 [(rewrite~!(cat_assoc~_~from_bi...] 0.054 secs (0.054u,0.s) +Chars 5612 - 5635 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) Chars 5640 - 5652 [reflexivity.] 0. secs (0.u,0.s) Chars 5655 - 5656 [-] 0. secs (0.u,0.s) -Chars 5657 - 5690 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.004 secs (0.004u,0.s) -Chars 5695 - 5726 [rewrite~(cat_assoc~_~_~to_bif).] 0.002 secs (0.002u,0.s) -Chars 5731 - 5758 [rewrite~cat_case,~cat_id_l.] 0.007 secs (0.007u,0.s) -Chars 5763 - 5820 [rewrite~(cat_assoc~_~_~to_bif)...] 0.012 secs (0.012u,0.s) -Chars 5825 - 5863 [rewrite~iter_natural,~iter_cod...] 0.003 secs (0.003u,0.s) -Chars 5868 - 5934 [rewrite~(cat_assoc~_~(bimap~_~...] 0.013 secs (0.013u,0.s) +Chars 5657 - 5690 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.006 secs (0.006u,0.s) +Chars 5695 - 5726 [(rewrite~(cat_assoc~_~_~to_bif)).] 0.003 secs (0.003u,0.s) +Chars 5731 - 5758 [(rewrite~cat_case,~cat_id_l).] 0.01 secs (0.01u,0.s) +Chars 5763 - 5820 [(rewrite~(cat_assoc~_~_~to_bif...] 0.015 secs (0.015u,0.s) +Chars 5825 - 5863 [(rewrite~iter_natural,~iter_co...] 0.005 secs (0.005u,0.s) +Chars 5868 - 5934 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.018u,0.s) Chars 5939 - 5951 [reflexivity.] 0. secs (0.u,0.s) Chars 5954 - 5955 [-] 0. secs (0.u,0.s) -Chars 5956 - 5986 [intros;~unfold~iter,~Iter_sub.] 0. secs (0.u,0.s) -Chars 5991 - 6059 [apply~iterative_proper_iter,~c...] 0. secs (0.u,0.s) -Chars 6060 - 6064 [Qed.] 0.013 secs (0.013u,0.s) +Chars 5956 - 5986 [(intros;~unfold~iter,~Iter_sub).] 0. secs (0.u,0.s) +Chars 5991 - 6059 [(apply~iterative_proper_iter,~...] 0.001 secs (0.001u,0.s) +Chars 6060 - 6064 [Qed.] 0.019 secs (0.019u,0.s) Chars 6066 - 6084 [End~CoproductLaws.] 0. secs (0.u,0.s) Chars 6086 - 6102 [End~Subcategory.] 0.001 secs (0.001u,0.s) Chars 6104 - 6142 [Arguments~subm~{obj~C~sobj~Emb...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryTheory.v.timing b/theories/Basics/CategoryTheory.v.timing index 33bf57ee..4d1628e8 100644 --- a/theories/Basics/CategoryTheory.v.timing +++ b/theories/Basics/CategoryTheory.v.timing @@ -1,5 +1,5 @@ -Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0. secs (0.u,0.s) +Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.u,0.s) Chars 291 - 306 [Import~Carrier.] 0. secs (0.u,0.s) Chars 307 - 327 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 328 - 349 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) @@ -10,7 +10,7 @@ Chars 488 - 540 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) Chars 592 - 670 [Class~CatIdL~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) Chars 672 - 750 [Class~CatIdR~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) Chars 752 - 885 [Class~CatAssoc~:~Prop~:=~~~~~c...] 0. secs (0.u,0.s) -Chars 887 - 1114 [Class~Category~:~Prop~:={~~~~~...] 0. secs (0.u,0.s) +Chars 887 - 1114 [Class~Category~:~Prop~:={~~~~~...] 0.001 secs (0.001u,0.s) Chars 1115 - 1161 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) Chars 1162 - 1208 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) Chars 1209 - 1256 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) @@ -61,8 +61,8 @@ Chars 5130 - 5185 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 5186 - 5212 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 5213 - 5247 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 5348 - 5441 [Class~BimapId~:~Prop~:=~~~~~bi...] 0. secs (0.u,0.s) -Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.001 secs (0.001u,0.s) -Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) +Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.002 secs (0.001u,0.s) +Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) Chars 5887 - 5934 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5935 - 5983 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5984 - 6035 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) @@ -74,10 +74,10 @@ Chars 6307 - 6342 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 6343 - 6398 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 6399 - 6425 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 6426 - 6512 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) -Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) -Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) +Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) +Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) +Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.002 secs (0.001u,0.s) +Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) Chars 7200 - 7247 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) Chars 7248 - 7295 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) Chars 7296 - 7349 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) @@ -95,13 +95,13 @@ Chars 7919 - 7945 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 7946 - 8032 [Context~{Pair_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) -Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.007 secs (0.006u,0.s) +Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.002 secs (0.001u,0.s) +Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) Chars 8708 - 8753 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8754 - 8799 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8800 - 8851 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8852 - 8900 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8902 - 8918 [End~ProductLaws.] 0. secs (0.u,0.s) +Chars 8902 - 8918 [End~ProductLaws.] 0.01 secs (0.009u,0.s) Chars 8920 - 8996 [Arguments~pair_fst~{obj~C~Eq2_...] 0. secs (0.u,0.s) Chars 8997 - 9073 [Arguments~pair_snd~{obj~C~Eq2_...] 0. secs (0.u,0.s) Chars 9074 - 9138 [Arguments~pair_universal~{obj~...] 0. secs (0.u,0.s) @@ -114,7 +114,7 @@ Chars 9371 - 9460 [Context~{Pair_C~:~Pair~C~PROD}...] 0. secs (0.u,0.s) Chars 9461 - 9487 [Context~(EXP~:~binop~obj).] 0. secs (0.u,0.s) Chars 9488 - 9562 [Context~{Apply_C~:~Apply~C~PRO...] 0. secs (0.u,0.s) Chars 9564 - 9596 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) -Chars 9598 - 9754 [Class~CurryApply~:~Prop~:=~~~~...] 0. secs (0.u,0.s) +Chars 9598 - 9754 [Class~CurryApply~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) Chars 9756 - 10022 [Class~CartesianClosed~:~Prop~:...] 0.001 secs (0.001u,0.s) Chars 10023 - 10070 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) Chars 10071 - 10117 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) @@ -130,42 +130,42 @@ Chars 10529 - 10563 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 10565 - 10601 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) Chars 10602 - 10638 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) Chars 10745 - 10830 [Notation~AssocIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 10968 - 11081 [Corollary~assoc_r_mono~{AssocI...] 0. secs (0.u,0.s) +Chars 10968 - 11081 [Corollary~assoc_r_mono~{AssocI...] 0.001 secs (0.001u,0.s) Chars 11082 - 11088 [Proof.] 0. secs (0.u,0.s) -Chars 11091 - 11126 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) +Chars 11091 - 11126 [(intros;~apply~semi_iso,~Assoc...] 0. secs (0.u,0.s) Chars 11127 - 11131 [Qed.] 0. secs (0.u,0.s) -Chars 11227 - 11340 [Corollary~assoc_l_mono~{AssocI...] 0. secs (0.u,0.s) +Chars 11227 - 11340 [Corollary~assoc_l_mono~{AssocI...] 0.001 secs (0.001u,0.s) Chars 11341 - 11347 [Proof.] 0. secs (0.u,0.s) -Chars 11350 - 11385 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) +Chars 11350 - 11385 [(intros;~apply~semi_iso,~Assoc...] 0. secs (0.u,0.s) Chars 11386 - 11390 [Qed.] 0. secs (0.u,0.s) Chars 11392 - 11410 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 11411 - 11449 [Context~{UnitL_bif~:~UnitL~C~b...] 0. secs (0.u,0.s) Chars 11450 - 11488 [Context~{UnitL'_bif~:~UnitL'~C...] 0. secs (0.u,0.s) Chars 11489 - 11527 [Context~{UnitR_bif~:~UnitR~C~b...] 0. secs (0.u,0.s) Chars 11528 - 11566 [Context~{UnitR'_bif~:~UnitR'~C...] 0. secs (0.u,0.s) -Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0. secs (0.u,0.s) -Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0. secs (0.u,0.s) +Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0.001 secs (0.001u,0.s) +Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0.001 secs (0.001u,0.s) Chars 11910 - 11988 [Notation~UnitLIso~:=~(forall~a...] 0. secs (0.u,0.s) Chars 12086 - 12185 [Corollary~unit_l_mono~{UnitLIs...] 0. secs (0.u,0.s) Chars 12186 - 12192 [Proof.] 0. secs (0.u,0.s) -Chars 12195 - 12230 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) +Chars 12195 - 12230 [(intros;~apply~semi_iso,~UnitL...] 0. secs (0.u,0.s) Chars 12231 - 12235 [Qed.] 0. secs (0.u,0.s) -Chars 12303 - 12393 [Corollary~unit_l_epi~{UnitLIso...] 0. secs (0.u,0.s) +Chars 12303 - 12393 [Corollary~unit_l_epi~{UnitLIso...] 0.001 secs (0.001u,0.s) Chars 12394 - 12400 [Proof.] 0. secs (0.u,0.s) -Chars 12403 - 12438 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) +Chars 12403 - 12438 [(intros;~apply~semi_iso,~UnitL...] 0. secs (0.u,0.s) Chars 12439 - 12443 [Qed.] 0. secs (0.u,0.s) Chars 12496 - 12574 [Notation~UnitRIso~:=~(forall~a...] 0. secs (0.u,0.s) Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0. secs (0.u,0.s) Chars 12676 - 12682 [Proof.] 0. secs (0.u,0.s) -Chars 12685 - 12720 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) +Chars 12685 - 12720 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) Chars 12721 - 12725 [Qed.] 0. secs (0.u,0.s) -Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0. secs (0.u,0.s) +Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0.001 secs (0.001u,0.s) Chars 12818 - 12824 [Proof.] 0. secs (0.u,0.s) -Chars 12827 - 12862 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) +Chars 12827 - 12862 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) Chars 12863 - 12867 [Qed.] 0. secs (0.u,0.s) -Chars 12924 - 13042 [Class~AssocRUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) -Chars 13072 - 13264 [Class~AssocRAssocR~:~Prop~:=~~...] 0.003 secs (0.003u,0.s) -Chars 13266 - 13603 [Class~Monoidal~:~Prop~:={~~~~~...] 0.001 secs (0.001u,0.s) +Chars 12924 - 13042 [Class~AssocRUnit~:~Prop~:=~~~~...] 0.002 secs (0.002u,0.s) +Chars 13072 - 13264 [Class~AssocRAssocR~:~Prop~:=~~...] 0.005 secs (0.005u,0.s) +Chars 13266 - 13603 [Class~Monoidal~:~Prop~:={~~~~~...] 0.002 secs (0.002u,0.s) Chars 13604 - 13651 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13652 - 13699 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13700 - 13748 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) @@ -174,8 +174,8 @@ Chars 13798 - 13850 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13851 - 13904 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13905 - 13955 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13956 - 14009 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) -Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.012 secs (0.012u,0.s) +Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.002 secs (0.002u,0.s) +Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.017 secs (0.017u,0.s) Chars 14435 - 14452 [End~MonoidalLaws.] 0.001 secs (0.001u,0.s) Chars 14454 - 14545 [Arguments~assoc_r_mono~~~{obj~...] 0. secs (0.u,0.s) Chars 14546 - 14637 [Arguments~assoc_l_mono~~~{obj~...] 0. secs (0.u,0.s) @@ -196,19 +196,19 @@ Chars 15628 - 15660 [Context~{Swap_bif~:~Swap~C~bif}.] 0. secs (0.u,0.s) Chars 15693 - 15778 [Notation~SwapInvolutive~:=~(fo...] 0. secs (0.u,0.s) Chars 15780 - 15890 [Corollary~swap_involutive~{Swa...] 0. secs (0.u,0.s) Chars 15891 - 15897 [Proof.] 0. secs (0.u,0.s) -Chars 15900 - 15941 [intros;~apply~semi_iso,~SwapIn...] 0. secs (0.u,0.s) +Chars 15900 - 15941 [(intros;~apply~semi_iso,~SwapI...] 0. secs (0.u,0.s) Chars 15942 - 15946 [Qed.] 0. secs (0.u,0.s) Chars 15948 - 15966 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 15967 - 16003 [Context~{UnitL_i~:~UnitL~C~bif...] 0. secs (0.u,0.s) Chars 16004 - 16040 [Context~{UnitL'_i~:~UnitL'~C~b...] 0. secs (0.u,0.s) Chars 16041 - 16077 [Context~{UnitR_i~:~UnitR~C~bif...] 0. secs (0.u,0.s) Chars 16078 - 16114 [Context~{UnitR'_i~:~UnitR'~C~b...] 0. secs (0.u,0.s) -Chars 16161 - 16245 [Class~SwapUnitL~:~Prop~:=~~~~~...] 0. secs (0.u,0.s) +Chars 16161 - 16245 [Class~SwapUnitL~:~Prop~:=~~~~~...] 0.001 secs (0.001u,0.s) Chars 16247 - 16283 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) Chars 16284 - 16320 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) -Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) -Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0. secs (0.u,0.s) -Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) +Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.005 secs (0.005u,0.s) +Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0.001 secs (0.001u,0.s) +Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.004 secs (0.004u,0.s) Chars 16989 - 17007 [End~SymmetricLaws.] 0. secs (0.u,0.s) Chars 17009 - 17094 [Arguments~swap_involutive~~~{o...] 0. secs (0.u,0.s) Chars 17095 - 17180 [Arguments~swap_unit_l~~~{obj~C...] 0. secs (0.u,0.s) @@ -224,16 +224,16 @@ Chars 17587 - 17615 [Context~{Inr_C~:~Inr~C~bif}.] 0. secs (0.u,0.s) Chars 17616 - 17646 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0. secs (0.u,0.s) Chars 17942 - 18083 [Class~IterNatural~:~Prop~:=~~~...] 0.001 secs (0.001u,0.s) -Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.001 secs (0.001u,0.s) +Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.002 secs (0.002u,0.s) Chars 18534 - 18679 [Class~IterCodiagonal~:~Prop~:=...] 0.001 secs (0.001u,0.s) -Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0. secs (0.u,0.s) +Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) Chars 19031 - 19076 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19077 - 19123 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19124 - 19172 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19173 - 19222 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19223 - 19273 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.014 secs (0.011u,0.002s) -Chars 19692 - 19710 [End~IterationLaws.] 0. secs (0.u,0.s) +Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.021 secs (0.016u,0.004s) +Chars 19692 - 19710 [End~IterationLaws.] 0.001 secs (0.001u,0.s) Chars 19712 - 19796 [Arguments~iter_unfold~{obj~C~E...] 0. secs (0.u,0.s) Chars 19797 - 19897 [Arguments~iter_natural~~~{obj~...] 0. secs (0.u,0.s) Chars 19898 - 19996 [Arguments~iter_dinatural~~~{ob...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Function.v.timing b/theories/Basics/Function.v.timing index 99bd21bd..b7208493 100644 --- a/theories/Basics/Function.v.timing +++ b/theories/Basics/Function.v.timing @@ -1,4 +1,4 @@ -Chars 125 - 194 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) +Chars 125 - 194 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) Chars 196 - 216 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 217 - 247 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 297 - 342 [Definition~Fun~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/FunctionFacts.v.timing b/theories/Basics/FunctionFacts.v.timing index e37ca0f1..5269088b 100644 --- a/theories/Basics/FunctionFacts.v.timing +++ b/theories/Basics/FunctionFacts.v.timing @@ -1,5 +1,5 @@ -Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.1 secs (0.09u,0.009s) +Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.145 secs (0.131u,0.014s) Chars 209 - 229 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 230 - 257 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 274 - 378 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) @@ -8,52 +8,52 @@ Chars 386 - 397 [congruence.] 0. secs (0.u,0.s) Chars 398 - 402 [Qed.] 0. secs (0.u,0.s) Chars 404 - 474 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 475 - 481 [Proof.] 0. secs (0.u,0.s) -Chars 482 - 506 [constructor;~congruence.] 0. secs (0.u,0.s) +Chars 482 - 506 [(constructor;~congruence).] 0. secs (0.u,0.s) Chars 507 - 511 [Qed.] 0. secs (0.u,0.s) Chars 513 - 628 [#[global]~Instance~Proper_cat~...] 0. secs (0.u,0.s) Chars 629 - 635 [Proof.] 0. secs (0.u,0.s) -Chars 636 - 652 [compute;~congruence.] 0. secs (0.u,0.s) +Chars 636 - 652 [(compute;~congruence).] 0. secs (0.u,0.s) Chars 653 - 657 [Qed.] 0. secs (0.u,0.s) Chars 659 - 706 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) Chars 707 - 713 [Proof.] 0. secs (0.u,0.s) -Chars 714 - 731 [red;~reflexivity.] 0. secs (0.u,0.s) +Chars 714 - 731 [(red;~reflexivity).] 0. secs (0.u,0.s) Chars 732 - 736 [Qed.] 0. secs (0.u,0.s) Chars 738 - 785 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) Chars 786 - 792 [Proof.] 0. secs (0.u,0.s) -Chars 793 - 810 [red;~reflexivity.] 0. secs (0.u,0.s) -Chars 811 - 815 [Qed.] 0.002 secs (0.002u,0.s) +Chars 793 - 810 [(red;~reflexivity).] 0. secs (0.u,0.s) +Chars 811 - 815 [Qed.] 0. secs (0.u,0.s) Chars 817 - 865 [#[global]~Instance~cat_Fun_ass...] 0. secs (0.u,0.s) Chars 866 - 872 [Proof.] 0. secs (0.u,0.s) -Chars 873 - 890 [red;~reflexivity.] 0. secs (0.u,0.s) +Chars 873 - 890 [(red;~reflexivity).] 0. secs (0.u,0.s) Chars 891 - 895 [Qed.] 0. secs (0.u,0.s) Chars 897 - 1002 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 1004 - 1069 [#[global]~Instance~TerminalObj...] 0. secs (0.u,0.s) Chars 1070 - 1076 [Proof.] 0. secs (0.u,0.s) -Chars 1077 - 1081 [red.] 0. secs (0.u,0.s) -Chars 1082 - 1089 [intros.] 0. secs (0.u,0.s) +Chars 1077 - 1081 [(red).] 0. secs (0.u,0.s) +Chars 1082 - 1089 [(intros).] 0. secs (0.u,0.s) Chars 1090 - 1096 [intro.] 0. secs (0.u,0.s) -Chars 1097 - 1113 [destruct~(f~a0).] 0. secs (0.u,0.s) +Chars 1097 - 1113 [(destruct~(f~a0)).] 0. secs (0.u,0.s) Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) Chars 1127 - 1131 [Qed.] 0. secs (0.u,0.s) -Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0. secs (0.u,0.s) +Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0.004 secs (0.003u,0.s) Chars 1262 - 1268 [Proof.] 0. secs (0.u,0.s) -Chars 1269 - 1306 [compute;~intros;~subst;~destru...] 0. secs (0.u,0.s) +Chars 1269 - 1306 [(compute;~intros;~subst;~destr...] 0.001 secs (0.u,0.s) Chars 1307 - 1311 [Qed.] 0. secs (0.u,0.s) Chars 1313 - 1360 [#[global]~Instance~Category_Fu...] 0. secs (0.u,0.s) Chars 1361 - 1367 [Proof.] 0. secs (0.u,0.s) -Chars 1370 - 1401 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1370 - 1401 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 1402 - 1406 [Qed.] 0. secs (0.u,0.s) Chars 1408 - 1461 [#[global]~Instance~Coproduct_F...] 0. secs (0.u,0.s) Chars 1462 - 1468 [Proof.] 0. secs (0.u,0.s) Chars 1471 - 1483 [constructor.] 0. secs (0.u,0.s) Chars 1486 - 1487 [-] 0. secs (0.u,0.s) -Chars 1488 - 1505 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 1510 - 1527 [compute;~reflexivity.] 0. secs (0.u,0.s) +Chars 1488 - 1505 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) +Chars 1510 - 1527 [(compute;~reflexivity).] 0. secs (0.u,0.s) Chars 1530 - 1531 [-] 0. secs (0.u,0.s) -Chars 1532 - 1549 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 1554 - 1571 [compute;~reflexivity.] 0. secs (0.u,0.s) +Chars 1532 - 1549 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) +Chars 1554 - 1571 [(compute;~reflexivity).] 0. secs (0.u,0.s) Chars 1574 - 1575 [-] 0. secs (0.u,0.s) -Chars 1576 - 1626 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~...] 0. secs (0.u,0.s) +Chars 1576 - 1626 [(intros~a~b~c~f~g~fg~Hf~Hg~[x|...] 0. secs (0.u,0.s) Chars 1629 - 1630 [-] 0. secs (0.u,0.s) Chars 1631 - 1649 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 1650 - 1654 [Qed.] 0. secs (0.u,0.s) @@ -67,46 +67,46 @@ Chars 1789 - 1795 [split.] 0. secs (0.u,0.s) Chars 1796 - 1800 [Qed.] 0. secs (0.u,0.s) Chars 1802 - 1864 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) Chars 1865 - 1871 [Proof.] 0. secs (0.u,0.s) -Chars 1874 - 1887 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1890 - 1913 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) +Chars 1874 - 1887 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1890 - 1913 [(unfold~pair_,~Pair_Fun).] 0. secs (0.u,0.s) Chars 1914 - 1932 [specialize~(H~a0).] 0. secs (0.u,0.s) Chars 1933 - 1952 [specialize~(H0~a0).] 0. secs (0.u,0.s) -Chars 1953 - 1966 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 1969 - 1983 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 1984 - 2004 [unfold~cat,~Cat_Fun.] 0. secs (0.u,0.s) -Chars 2007 - 2024 [destruct~(fg~a0).] 0. secs (0.u,0.s) +Chars 1953 - 1966 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 1969 - 1983 [(rewrite~<-~H0).] 0. secs (0.u,0.s) +Chars 1984 - 2004 [(unfold~cat,~Cat_Fun).] 0. secs (0.u,0.s) +Chars 2007 - 2024 [(destruct~(fg~a0)).] 0. secs (0.u,0.s) Chars 2025 - 2037 [reflexivity.] 0. secs (0.u,0.s) Chars 2038 - 2042 [Qed.] 0. secs (0.u,0.s) Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) Chars 2148 - 2154 [Proof.] 0. secs (0.u,0.s) -Chars 2157 - 2188 [intros~?~?~?~f1~f2~F~g1~g2~G~c.] 0. secs (0.u,0.s) -Chars 2191 - 2214 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) -Chars 2215 - 2225 [rewrite~F.] 0. secs (0.u,0.s) -Chars 2226 - 2236 [rewrite~G.] 0. secs (0.u,0.s) +Chars 2157 - 2188 [(intros~?~?~?~f1~f2~F~g1~g2~G~c).] 0. secs (0.u,0.s) +Chars 2191 - 2214 [(unfold~pair_,~Pair_Fun).] 0. secs (0.u,0.s) +Chars 2215 - 2225 [(rewrite~F).] 0. secs (0.u,0.s) +Chars 2226 - 2236 [(rewrite~G).] 0. secs (0.u,0.s) Chars 2237 - 2249 [reflexivity.] 0. secs (0.u,0.s) Chars 2250 - 2254 [Qed.] 0. secs (0.u,0.s) Chars 2258 - 2275 [Section~Products.] 0. secs (0.u,0.s) Chars 2278 - 2310 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) Chars 2314 - 2371 [#[global]~Instance~BimapId_Fun...] 0. secs (0.u,0.s) Chars 2374 - 2380 [Proof.] 0. secs (0.u,0.s) -Chars 2385 - 2398 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2403 - 2415 [destruct~a0.] 0. secs (0.u,0.s) +Chars 2385 - 2398 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2403 - 2415 [(destruct~a0).] 0. secs (0.u,0.s) Chars 2416 - 2428 [reflexivity.] 0. secs (0.u,0.s) Chars 2431 - 2435 [Qed.] 0. secs (0.u,0.s) Chars 2442 - 2501 [#[global]~Instance~BimapCat_Fu...] 0. secs (0.u,0.s) Chars 2504 - 2510 [Proof.] 0. secs (0.u,0.s) -Chars 2515 - 2528 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2533 - 2544 [destruct~a.] 0. secs (0.u,0.s) +Chars 2515 - 2528 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2533 - 2544 [(destruct~a).] 0. secs (0.u,0.s) Chars 2549 - 2561 [reflexivity.] 0. secs (0.u,0.s) Chars 2564 - 2568 [Qed.] 0. secs (0.u,0.s) -Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0. secs (0.u,0.s) +Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0.001 secs (0.u,0.s) Chars 2724 - 2730 [Proof.] 0. secs (0.u,0.s) -Chars 2735 - 2748 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2753 - 2781 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) -Chars 2782 - 2792 [rewrite~H.] 0.005 secs (0.004u,0.s) -Chars 2793 - 2804 [rewrite~H0.] 0.005 secs (0.004u,0.001s) +Chars 2735 - 2748 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2753 - 2781 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) +Chars 2782 - 2792 [(rewrite~H).] 0.008 secs (0.006u,0.001s) +Chars 2793 - 2804 [(rewrite~H0).] 0.009 secs (0.007u,0.002s) Chars 2805 - 2817 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2824 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2820 - 2824 [Qed.] 0.002 secs (0.002u,0.s) Chars 2828 - 2889 [#[global]~Instance~Bifunctor_F...] 0. secs (0.u,0.s) Chars 2892 - 2898 [Proof.] 0. secs (0.u,0.s) Chars 2903 - 2915 [constructor.] 0. secs (0.u,0.s) @@ -117,27 +117,27 @@ Chars 2952 - 2976 [exact~BimapCat_Fun_prod.] 0. secs (0.u,0.s) Chars 2981 - 2982 [-] 0. secs (0.u,0.s) Chars 2983 - 3010 [exact~BimapProper_Fun_prod.] 0. secs (0.u,0.s) Chars 3013 - 3017 [Qed.] 0. secs (0.u,0.s) -Chars 3021 - 3073 [#[global]~Instance~Product_Fun...] 0.016 secs (0.015u,0.001s) +Chars 3021 - 3073 [#[global]~Instance~Product_Fun...] 0. secs (0.u,0.s) Chars 3076 - 3082 [Proof.] 0. secs (0.u,0.s) -Chars 3087 - 3118 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 3087 - 3118 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 3121 - 3125 [Qed.] 0. secs (0.u,0.s) Chars 3131 - 3144 [End~Products.] 0. secs (0.u,0.s) Chars 3146 - 3171 [Section~CartesianClosure.] 0. secs (0.u,0.s) Chars 3175 - 3237 [#[global]~Instance~CurryApply_...] 0. secs (0.u,0.s) Chars 3240 - 3246 [Proof.] 0. secs (0.u,0.s) -Chars 3251 - 3255 [red.] 0. secs (0.u,0.s) -Chars 3256 - 3269 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3270 - 3282 [destruct~a0.] 0. secs (0.u,0.s) -Chars 3283 - 3322 [unfold~curry_,~Curry_Fun,~cat,...] 0. secs (0.u,0.s) +Chars 3251 - 3255 [(red).] 0. secs (0.u,0.s) +Chars 3256 - 3269 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 3270 - 3282 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 3283 - 3322 [(unfold~curry_,~Curry_Fun,~cat...] 0. secs (0.u,0.s) Chars 3323 - 3335 [reflexivity.] 0. secs (0.u,0.s) Chars 3338 - 3342 [Qed.] 0. secs (0.u,0.s) Chars 3415 - 3492 [#[global]~Instance~CartesianCl...] 0. secs (0.u,0.s) Chars 3495 - 3501 [Proof.] 0. secs (0.u,0.s) -Chars 3506 - 3541 [constructor;~try~typeclasses~e...] 0.003 secs (0.003u,0.s) -Chars 3546 - 3559 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3560 - 3585 [unfold~curry_,~Curry_Fun.] 0. secs (0.u,0.s) -Chars 3586 - 3618 [apply~functional_extensionality.] 0. secs (0.u,0.s) -Chars 3623 - 3630 [intros.] 0. secs (0.u,0.s) -Chars 3631 - 3639 [apply~H.] 0. secs (0.u,0.s) +Chars 3506 - 3541 [(constructor;~try~typeclasses~...] 0.027 secs (0.025u,0.001s) +Chars 3546 - 3559 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 3560 - 3585 [(unfold~curry_,~Curry_Fun).] 0. secs (0.u,0.s) +Chars 3586 - 3618 [(apply~functional_extensionali...] 0. secs (0.u,0.s) +Chars 3623 - 3630 [(intros).] 0. secs (0.u,0.s) +Chars 3631 - 3639 [(apply~H).] 0. secs (0.u,0.s) Chars 3642 - 3646 [Qed.] 0. secs (0.u,0.s) Chars 3647 - 3668 [End~CartesianClosure.] 0. secs (0.u,0.s) diff --git a/theories/Basics/HeterogeneousRelations.v.timing b/theories/Basics/HeterogeneousRelations.v.timing index 1b1e5d3d..bbaa045e 100644 --- a/theories/Basics/HeterogeneousRelations.v.timing +++ b/theories/Basics/HeterogeneousRelations.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) -Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.021 secs (0.017u,0.004s) +Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.005u,0.002s) +Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.005s) Chars 157 - 201 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) Chars 405 - 458 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) Chars 460 - 512 [Definition~relationH~(A~B~:~Ty...] 0. secs (0.u,0.s) @@ -17,8 +17,8 @@ Chars 1534 - 1629 [#[global]~Instance~Conj_unary~...] 0. secs (0.u,0.s) Chars 1633 - 1681 [Class~Disj~(T~:~Type)~:=~~~~~d...] 0. secs (0.u,0.s) Chars 1685 - 1798 [#[global]~Instance~Disj_binary...] 0. secs (0.u,0.s) Chars 1802 - 1897 [#[global]~Instance~Disj_unary~...] 0. secs (0.u,0.s) -Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) -Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) +Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) +Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) Chars 2536 - 2561 [End~RelationH_Operations.] 0. secs (0.u,0.s) Chars 2563 - 2606 [#[global]~Hint~Constructors~pr...] 0. secs (0.u,0.s) Chars 2607 - 2649 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) @@ -44,20 +44,20 @@ Chars 3550 - 3624 [Infix~"∪"~:=~disj_rel~(~at~lev...] 0. secs (0.u,0.s) Chars 3628 - 3706 [Infix~"⊑"~:=~subrelationH~(~at...] 0. secs (0.u,0.s) Chars 3709 - 3795 [Notation~"†~R"~:=~(transpose~R...] 0. secs (0.u,0.s) Chars 3799 - 3871 [Infix~"≡"~:=~eq_rel~(~at~level...] 0. secs (0.u,0.s) -Chars 3873 - 3890 [End~RelNotations.] 0.001 secs (0.u,0.s) +Chars 3873 - 3890 [End~RelNotations.] 0. secs (0.u,0.s) Chars 3892 - 3912 [Import~RelNotations.] 0. secs (0.u,0.s) Chars 3913 - 3949 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) Chars 3951 - 4029 [Definition~relationH_of_Type~(...] 0. secs (0.u,0.s) Chars 4031 - 4135 [#[global]~Instance~Proper_rela...] 0. secs (0.u,0.s) Chars 4136 - 4142 [Proof.] 0. secs (0.u,0.s) -Chars 4145 - 4158 [repeat~intro.] 0. secs (0.u,0.s) -Chars 4161 - 4172 [repeat~red.] 0. secs (0.u,0.s) -Chars 4175 - 4189 [split;~intros.] 0. secs (0.u,0.s) +Chars 4145 - 4158 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4161 - 4172 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4175 - 4189 [(split;~intros).] 0. secs (0.u,0.s) Chars 4192 - 4193 [-] 0. secs (0.u,0.s) -Chars 4194 - 4213 [rewrite~<-~H,~<-~H0.] 0. secs (0.u,0.s) +Chars 4194 - 4213 [(rewrite~<-~H,~<-~H0).] 0. secs (0.u,0.s) Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) Chars 4222 - 4223 [-] 0. secs (0.u,0.s) -Chars 4224 - 4238 [rewrite~H,~H0.] 0. secs (0.u,0.s) +Chars 4224 - 4238 [(rewrite~H,~H0).] 0. secs (0.u,0.s) Chars 4239 - 4244 [auto.] 0. secs (0.u,0.s) Chars 4245 - 4249 [Qed.] 0. secs (0.u,0.s) Chars 4334 - 4425 [Class~ReflexiveH~{A~:~Type}~(R...] 0. secs (0.u,0.s) @@ -75,280 +75,280 @@ Chars 5242 - 5281 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 5282 - 5322 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 5324 - 5401 [#[global]~Instance~relationH_r...] 0. secs (0.u,0.s) Chars 5402 - 5408 [Proof.] 0. secs (0.u,0.s) -Chars 5411 - 5424 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5411 - 5424 [(repeat~intro).] 0. secs (0.u,0.s) Chars 5427 - 5439 [reflexivity.] 0. secs (0.u,0.s) Chars 5440 - 5448 [Defined.] 0. secs (0.u,0.s) Chars 5450 - 5527 [#[global]~Instance~relationH_s...] 0. secs (0.u,0.s) Chars 5528 - 5534 [Proof.] 0. secs (0.u,0.s) -Chars 5537 - 5550 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5551 - 5561 [cbn;~auto.] 0. secs (0.u,0.s) +Chars 5537 - 5550 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5551 - 5561 [(cbn;~auto).] 0. secs (0.u,0.s) Chars 5562 - 5570 [Defined.] 0. secs (0.u,0.s) Chars 5572 - 5651 [#[global]~Instance~relationH_t...] 0. secs (0.u,0.s) Chars 5652 - 5658 [Proof.] 0. secs (0.u,0.s) -Chars 5661 - 5674 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5675 - 5684 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5661 - 5674 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5675 - 5684 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 5685 - 5699 [etransitivity.] 0. secs (0.u,0.s) -Chars 5702 - 5710 [apply~H.] 0. secs (0.u,0.s) -Chars 5711 - 5720 [apply~H0.] 0. secs (0.u,0.s) +Chars 5702 - 5710 [(apply~H).] 0. secs (0.u,0.s) +Chars 5711 - 5720 [(apply~H0).] 0. secs (0.u,0.s) Chars 5721 - 5729 [Defined.] 0. secs (0.u,0.s) Chars 5731 - 5789 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) Chars 5790 - 5796 [Proof.] 0. secs (0.u,0.s) -Chars 5799 - 5830 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5799 - 5830 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 5831 - 5839 [Defined.] 0. secs (0.u,0.s) Chars 5841 - 5909 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) Chars 5910 - 5916 [Proof.] 0. secs (0.u,0.s) -Chars 5919 - 5950 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5919 - 5950 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 5951 - 5959 [Defined.] 0. secs (0.u,0.s) Chars 5961 - 6030 [#[global]~Instance~relationH_E...] 0. secs (0.u,0.s) Chars 6031 - 6037 [Proof.] 0. secs (0.u,0.s) -Chars 6040 - 6071 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 6040 - 6071 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 6072 - 6080 [Defined.] 0. secs (0.u,0.s) Chars 6082 - 6172 [Lemma~ReflexiveH_Reflexive~{A~...] 0. secs (0.u,0.s) Chars 6173 - 6179 [Proof.] 0. secs (0.u,0.s) -Chars 6182 - 6196 [split;~intros.] 0. secs (0.u,0.s) +Chars 6182 - 6196 [(split;~intros).] 0. secs (0.u,0.s) Chars 6199 - 6200 [-] 0. secs (0.u,0.s) -Chars 6201 - 6205 [red.] 0. secs (0.u,0.s) -Chars 6206 - 6214 [apply~H.] 0. secs (0.u,0.s) +Chars 6201 - 6205 [(red).] 0. secs (0.u,0.s) +Chars 6206 - 6214 [(apply~H).] 0. secs (0.u,0.s) Chars 6217 - 6218 [-] 0. secs (0.u,0.s) -Chars 6219 - 6227 [apply~H.] 0. secs (0.u,0.s) +Chars 6219 - 6227 [(apply~H).] 0. secs (0.u,0.s) Chars 6228 - 6232 [Qed.] 0. secs (0.u,0.s) Chars 6234 - 6324 [Lemma~SymmetricH_Symmetric~{A~...] 0. secs (0.u,0.s) Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) -Chars 6334 - 6348 [split;~intros.] 0. secs (0.u,0.s) +Chars 6334 - 6348 [(split;~intros).] 0. secs (0.u,0.s) Chars 6351 - 6352 [-] 0. secs (0.u,0.s) -Chars 6353 - 6357 [red.] 0. secs (0.u,0.s) -Chars 6358 - 6381 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) -Chars 6382 - 6389 [intros.] 0. secs (0.u,0.s) +Chars 6353 - 6357 [(red).] 0. secs (0.u,0.s) +Chars 6358 - 6381 [(unfold~SymmetricH~in~H).] 0. secs (0.u,0.s) +Chars 6382 - 6389 [(intros).] 0. secs (0.u,0.s) Chars 6390 - 6409 [specialize~(H~x~y).] 0. secs (0.u,0.s) -Chars 6410 - 6419 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 6424 - 6432 [apply~H.] 0. secs (0.u,0.s) +Chars 6410 - 6419 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 6424 - 6432 [(apply~H).] 0. secs (0.u,0.s) Chars 6433 - 6444 [assumption.] 0. secs (0.u,0.s) Chars 6447 - 6448 [-] 0. secs (0.u,0.s) -Chars 6449 - 6453 [red.] 0. secs (0.u,0.s) -Chars 6454 - 6466 [intros~p~HP.] 0. secs (0.u,0.s) -Chars 6467 - 6476 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6477 - 6485 [apply~H.] 0. secs (0.u,0.s) -Chars 6486 - 6490 [Qed.] 0.01 secs (0.009u,0.s) +Chars 6449 - 6453 [(red).] 0. secs (0.u,0.s) +Chars 6454 - 6466 [(intros~p~HP).] 0. secs (0.u,0.s) +Chars 6467 - 6476 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6477 - 6485 [(apply~H).] 0. secs (0.u,0.s) +Chars 6486 - 6490 [Qed.] 0. secs (0.u,0.s) Chars 6492 - 6586 [Lemma~TransitiveH_Transitive~{...] 0. secs (0.u,0.s) Chars 6587 - 6593 [Proof.] 0. secs (0.u,0.s) -Chars 6596 - 6610 [split;~intros.] 0. secs (0.u,0.s) +Chars 6596 - 6610 [(split;~intros).] 0. secs (0.u,0.s) Chars 6613 - 6614 [-] 0. secs (0.u,0.s) -Chars 6615 - 6619 [red.] 0. secs (0.u,0.s) -Chars 6620 - 6639 [intros~x~y~z~H0~H1.] 0. secs (0.u,0.s) -Chars 6640 - 6664 [unfold~TransitiveH~in~H.] 0. secs (0.u,0.s) -Chars 6665 - 6681 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 6615 - 6619 [(red).] 0. secs (0.u,0.s) +Chars 6620 - 6639 [(intros~x~y~z~H0~H1).] 0. secs (0.u,0.s) +Chars 6640 - 6664 [(unfold~TransitiveH~in~H).] 0. secs (0.u,0.s) +Chars 6665 - 6681 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 6684 - 6685 [-] 0. secs (0.u,0.s) -Chars 6686 - 6690 [red.] 0. secs (0.u,0.s) -Chars 6691 - 6711 [intros~p~q~HP~HQ~EQ.] 0. secs (0.u,0.s) -Chars 6716 - 6739 [unfold~Transitive~in~H.] 0. secs (0.u,0.s) -Chars 6740 - 6750 [cbn~in~EQ.] 0. secs (0.u,0.s) -Chars 6755 - 6771 [eapply~H;~eauto.] 0. secs (0.u,0.s) +Chars 6686 - 6690 [(red).] 0. secs (0.u,0.s) +Chars 6691 - 6711 [(intros~p~q~HP~HQ~EQ).] 0. secs (0.u,0.s) +Chars 6716 - 6739 [(unfold~Transitive~in~H).] 0. secs (0.u,0.s) +Chars 6740 - 6750 [(cbn~in~EQ).] 0. secs (0.u,0.s) +Chars 6755 - 6771 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 6772 - 6776 [Qed.] 0. secs (0.u,0.s) Chars 6802 - 6823 [Section~SubRelationH.] 0. secs (0.u,0.s) Chars 7061 - 7130 [Lemma~subrelationH_Reflexive~{...] 0. secs (0.u,0.s) Chars 7133 - 7139 [Proof.] 0. secs (0.u,0.s) -Chars 7144 - 7158 [intros~!;~auto.] 0. secs (0.u,0.s) +Chars 7144 - 7158 [(intros~!;~auto).] 0. secs (0.u,0.s) Chars 7161 - 7165 [Qed.] 0. secs (0.u,0.s) Chars 7169 - 7260 [Lemma~subrelationH_antisym~{A~...] 0. secs (0.u,0.s) Chars 7263 - 7269 [Proof.] 0. secs (0.u,0.s) -Chars 7274 - 7286 [split;~auto.] 0. secs (0.u,0.s) +Chars 7274 - 7286 [(split;~auto).] 0. secs (0.u,0.s) Chars 7289 - 7293 [Qed.] 0. secs (0.u,0.s) -Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0. secs (0.u,0.s) +Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0.017 secs (0.016u,0.001s) Chars 7401 - 7407 [Proof.] 0. secs (0.u,0.s) -Chars 7412 - 7426 [intros~!;~auto.] 0. secs (0.u,0.s) +Chars 7412 - 7426 [(intros~!;~auto).] 0. secs (0.u,0.s) Chars 7429 - 7433 [Qed.] 0. secs (0.u,0.s) Chars 7437 - 7525 [Lemma~subrelationH_refl_eq~{A~...] 0. secs (0.u,0.s) Chars 7528 - 7534 [Proof.] 0. secs (0.u,0.s) Chars 7539 - 7547 [intros~!.] 0. secs (0.u,0.s) -Chars 7552 - 7563 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7564 - 7568 [cbn.] 0. secs (0.u,0.s) -Chars 7569 - 7577 [apply~H.] 0. secs (0.u,0.s) +Chars 7552 - 7563 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 7564 - 7568 [(cbn).] 0. secs (0.u,0.s) +Chars 7569 - 7577 [(apply~H).] 0. secs (0.u,0.s) Chars 7580 - 7584 [Qed.] 0. secs (0.u,0.s) Chars 7587 - 7604 [End~SubRelationH.] 0. secs (0.u,0.s) Chars 7606 - 7628 [Section~RelationEqRel.] 0. secs (0.u,0.s) Chars 7676 - 7746 [#[global]~Instance~eq_rel_Refl...] 0. secs (0.u,0.s) Chars 7749 - 7755 [Proof.] 0. secs (0.u,0.s) -Chars 7760 - 7764 [red.] 0. secs (0.u,0.s) -Chars 7765 - 7809 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 7760 - 7764 [(red).] 0. secs (0.u,0.s) +Chars 7765 - 7809 [(unfold~eq_rel,~subrelationH,~...] 0. secs (0.u,0.s) Chars 7810 - 7816 [tauto.] 0. secs (0.u,0.s) Chars 7819 - 7823 [Qed.] 0. secs (0.u,0.s) Chars 7827 - 7897 [#[global]~Instance~eq_rel_Symm...] 0. secs (0.u,0.s) Chars 7900 - 7906 [Proof.] 0. secs (0.u,0.s) -Chars 7911 - 7915 [red.] 0. secs (0.u,0.s) -Chars 7916 - 7960 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 7911 - 7915 [(red).] 0. secs (0.u,0.s) +Chars 7916 - 7960 [(unfold~eq_rel,~subrelationH,~...] 0. secs (0.u,0.s) Chars 7961 - 7967 [tauto.] 0. secs (0.u,0.s) Chars 7970 - 7974 [Qed.] 0. secs (0.u,0.s) Chars 7978 - 8050 [#[global]~Instance~eq_rel_Tran...] 0. secs (0.u,0.s) Chars 8053 - 8059 [Proof.] 0. secs (0.u,0.s) -Chars 8064 - 8068 [red.] 0. secs (0.u,0.s) -Chars 8069 - 8113 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 8114 - 8121 [intros.] 0. secs (0.u,0.s) -Chars 8126 - 8141 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 8142 - 8155 [split;~eauto.] 0. secs (0.u,0.s) +Chars 8064 - 8068 [(red).] 0. secs (0.u,0.s) +Chars 8069 - 8113 [(unfold~eq_rel,~subrelationH,~...] 0. secs (0.u,0.s) +Chars 8114 - 8121 [(intros).] 0. secs (0.u,0.s) +Chars 8126 - 8141 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 8142 - 8155 [(split;~eauto).] 0. secs (0.u,0.s) Chars 8158 - 8162 [Qed.] 0. secs (0.u,0.s) Chars 8166 - 8234 [#[global]~Instance~eq_rel_Equi...] 0. secs (0.u,0.s) Chars 8237 - 8243 [Proof.] 0. secs (0.u,0.s) -Chars 8248 - 8273 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 8248 - 8273 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 8276 - 8280 [Qed.] 0. secs (0.u,0.s) Chars 8398 - 8490 [#[global]~Instance~eq_rel_Prop...] 0. secs (0.u,0.s) Chars 8493 - 8499 [Proof.] 0. secs (0.u,0.s) -Chars 8504 - 8527 [intros~?~?~EQ1~?~?~EQ2.] 0. secs (0.u,0.s) -Chars 8532 - 8561 [rewrite~EQ1,~EQ2;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8504 - 8527 [(intros~?~?~EQ1~?~?~EQ2).] 0. secs (0.u,0.s) +Chars 8532 - 8561 [(rewrite~EQ1,~EQ2;~reflexivity).] 0.001 secs (0.001u,0.s) Chars 8564 - 8568 [Qed.] 0. secs (0.u,0.s) Chars 9006 - 9024 [End~RelationEqRel.] 0. secs (0.u,0.s) Chars 9026 - 9050 [Section~RelationCompose.] 0. secs (0.u,0.s) Chars 9085 - 9167 [Lemma~eq_id_r~:~forall~{A~B~:~...] 0. secs (0.u,0.s) Chars 9170 - 9176 [Proof.] 0. secs (0.u,0.s) -Chars 9181 - 9196 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 9181 - 9196 [(split;~intros~!).] 0. secs (0.u,0.s) Chars 9201 - 9202 [-] 0. secs (0.u,0.s) -Chars 9203 - 9212 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9213 - 9241 [destruct~H~as~(b,~(HR,~EQ)).] 0. secs (0.u,0.s) -Chars 9248 - 9262 [rewrite~<-~EQ.] 0. secs (0.u,0.s) +Chars 9203 - 9212 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 9213 - 9241 [(destruct~H~as~(b,~(HR,~EQ))).] 0. secs (0.u,0.s) +Chars 9248 - 9262 [(rewrite~<-~EQ).] 0. secs (0.u,0.s) Chars 9263 - 9274 [assumption.] 0. secs (0.u,0.s) Chars 9279 - 9280 [-] 0. secs (0.u,0.s) -Chars 9281 - 9285 [cbn.] 0. secs (0.u,0.s) +Chars 9281 - 9285 [(cbn).] 0. secs (0.u,0.s) Chars 9286 - 9295 [exists~y.] 0. secs (0.u,0.s) -Chars 9296 - 9308 [split;~auto.] 0. secs (0.u,0.s) +Chars 9296 - 9308 [(split;~auto).] 0. secs (0.u,0.s) Chars 9311 - 9315 [Qed.] 0. secs (0.u,0.s) Chars 9319 - 9394 [Lemma~eq_id_l~:~forall~{A}~{B}...] 0. secs (0.u,0.s) Chars 9397 - 9403 [Proof.] 0. secs (0.u,0.s) -Chars 9408 - 9423 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 9408 - 9423 [(split;~intros~!).] 0. secs (0.u,0.s) Chars 9428 - 9429 [-] 0. secs (0.u,0.s) -Chars 9430 - 9439 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9440 - 9468 [destruct~H~as~(b,~(EQ,~HR)).] 0. secs (0.u,0.s) -Chars 9475 - 9486 [rewrite~EQ.] 0. secs (0.u,0.s) +Chars 9430 - 9439 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 9440 - 9468 [(destruct~H~as~(b,~(EQ,~HR))).] 0. secs (0.u,0.s) +Chars 9475 - 9486 [(rewrite~EQ).] 0. secs (0.u,0.s) Chars 9487 - 9498 [assumption.] 0. secs (0.u,0.s) Chars 9503 - 9504 [-] 0. secs (0.u,0.s) -Chars 9505 - 9509 [cbn.] 0. secs (0.u,0.s) +Chars 9505 - 9509 [(cbn).] 0. secs (0.u,0.s) Chars 9510 - 9519 [exists~x.] 0. secs (0.u,0.s) -Chars 9520 - 9532 [split;~auto.] 0. secs (0.u,0.s) +Chars 9520 - 9532 [(split;~auto).] 0. secs (0.u,0.s) Chars 9535 - 9539 [Qed.] 0. secs (0.u,0.s) Chars 9579 - 9718 [Lemma~compose_assoc~:~~~forall...] 0. secs (0.u,0.s) Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) -Chars 9732 - 9757 [split;~intros~!;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 9732 - 9757 [(split;~intros~!;~cbn~in~*).] 0. secs (0.u,0.s) Chars 9762 - 9763 [-] 0. secs (0.u,0.s) -Chars 9764 - 9782 [repeat~destruct~H.] 0. secs (0.u,0.s) -Chars 9783 - 9802 [repeat~destruct~H0.] 0. secs (0.u,0.s) -Chars 9809 - 9840 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 9764 - 9782 [(repeat~destruct~H).] 0. secs (0.u,0.s) +Chars 9783 - 9802 [(repeat~destruct~H0).] 0. secs (0.u,0.s) +Chars 9809 - 9840 [(repeat~(eexists;~split;~eauto)).] 0. secs (0.u,0.s) Chars 9845 - 9846 [-] 0. secs (0.u,0.s) -Chars 9847 - 9865 [repeat~destruct~H.] 0. secs (0.u,0.s) -Chars 9866 - 9885 [repeat~destruct~H0.] 0. secs (0.u,0.s) -Chars 9892 - 9923 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 9847 - 9865 [(repeat~destruct~H).] 0. secs (0.u,0.s) +Chars 9866 - 9885 [(repeat~destruct~H0).] 0. secs (0.u,0.s) +Chars 9892 - 9923 [(repeat~(eexists;~split;~eauto)).] 0. secs (0.u,0.s) Chars 9926 - 9930 [Qed.] 0. secs (0.u,0.s) Chars 9935 - 10123 [#[global]~Instance~Proper_comp...] 0. secs (0.u,0.s) Chars 10126 - 10132 [Proof.] 0. secs (0.u,0.s) -Chars 10137 - 10168 [intros~?~?~?~S~S'~EQS~R~R'~EQR.] 0. secs (0.u,0.s) -Chars 10173 - 10276 [split;~intros~?~?~EQ;~destruct...] 0. secs (0.u,0.s) +Chars 10137 - 10168 [(intros~?~?~?~S~S'~EQS~R~R'~EQR).] 0. secs (0.u,0.s) +Chars 10173 - 10276 [(split;~intros~?~?~EQ;~destruc...] 0. secs (0.u,0.s) Chars 10279 - 10283 [Qed.] 0. secs (0.u,0.s) Chars 10285 - 10305 [End~RelationCompose.] 0. secs (0.u,0.s) Chars 10307 - 10330 [Section~TransposeFacts.] 0. secs (0.u,0.s) Chars 10805 - 10900 [Instance~transpose_Reflexive~~...] 0. secs (0.u,0.s) Chars 10903 - 10909 [Proof.] 0. secs (0.u,0.s) -Chars 10914 - 10918 [red.] 0. secs (0.u,0.s) -Chars 10919 - 10928 [intros~x.] 0. secs (0.u,0.s) -Chars 10929 - 10938 [apply~RR.] 0. secs (0.u,0.s) +Chars 10914 - 10918 [(red).] 0. secs (0.u,0.s) +Chars 10919 - 10928 [(intros~x).] 0. secs (0.u,0.s) +Chars 10929 - 10938 [(apply~RR).] 0. secs (0.u,0.s) Chars 10941 - 10945 [Qed.] 0. secs (0.u,0.s) Chars 10949 - 11044 [Instance~transpose_Symmetric~~...] 0. secs (0.u,0.s) Chars 11047 - 11053 [Proof.] 0. secs (0.u,0.s) -Chars 11058 - 11098 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) -Chars 11099 - 11132 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 11137 - 11146 [apply~RS.] 0. secs (0.u,0.s) +Chars 11058 - 11098 [(red;~intros~x;~unfold~transpo...] 0. secs (0.u,0.s) +Chars 11099 - 11132 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 11137 - 11146 [(apply~RS).] 0. secs (0.u,0.s) Chars 11147 - 11158 [assumption.] 0. secs (0.u,0.s) Chars 11161 - 11165 [Qed.] 0. secs (0.u,0.s) Chars 11169 - 11268 [Instance~transpose_Transitive~...] 0. secs (0.u,0.s) Chars 11271 - 11277 [Proof.] 0. secs (0.u,0.s) -Chars 11282 - 11322 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) -Chars 11327 - 11362 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 11367 - 11392 [unfold~TransitiveH~in~RT.] 0. secs (0.u,0.s) +Chars 11282 - 11322 [(red;~intros~x;~unfold~transpo...] 0. secs (0.u,0.s) +Chars 11327 - 11362 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) +Chars 11367 - 11392 [(unfold~TransitiveH~in~RT).] 0. secs (0.u,0.s) Chars 11451 - 11473 [specialize~(RT~z~y~x).] 0. secs (0.u,0.s) -Chars 11474 - 11490 [apply~RT;~eauto.] 0. secs (0.u,0.s) +Chars 11474 - 11490 [(apply~RT;~eauto).] 0. secs (0.u,0.s) Chars 11493 - 11497 [Qed.] 0. secs (0.u,0.s) Chars 11632 - 11691 [Lemma~transpose_eq~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 11694 - 11700 [Proof.] 0. secs (0.u,0.s) -Chars 11705 - 11751 [split;~unfold~transpose;~intro...] 0. secs (0.u,0.s) +Chars 11705 - 11751 [(split;~unfold~transpose;~intr...] 0. secs (0.u,0.s) Chars 11754 - 11758 [Qed.] 0. secs (0.u,0.s) Chars 11762 - 11849 [Lemma~transpose_sym~{A~:~Type}...] 0. secs (0.u,0.s) Chars 11852 - 11858 [Proof.] 0. secs (0.u,0.s) -Chars 11863 - 11906 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) -Chars 11911 - 11944 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 11945 - 11955 [red~in~RS.] 0. secs (0.u,0.s) -Chars 11960 - 11975 [apply~(RS~y~x).] 0. secs (0.u,0.s) +Chars 11863 - 11906 [(unfold~transpose;~split;~intr...] 0. secs (0.u,0.s) +Chars 11911 - 11944 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 11945 - 11955 [(red~in~RS).] 0. secs (0.u,0.s) +Chars 11960 - 11975 [(apply~(RS~y~x)).] 0. secs (0.u,0.s) Chars 11976 - 11987 [assumption.] 0. secs (0.u,0.s) -Chars 11992 - 12025 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 12026 - 12036 [red~in~RS.] 0. secs (0.u,0.s) -Chars 12041 - 12056 [apply~(RS~x~y).] 0. secs (0.u,0.s) +Chars 11992 - 12025 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 12026 - 12036 [(red~in~RS).] 0. secs (0.u,0.s) +Chars 12041 - 12056 [(apply~(RS~x~y)).] 0. secs (0.u,0.s) Chars 12057 - 12068 [assumption.] 0. secs (0.u,0.s) Chars 12071 - 12075 [Qed.] 0. secs (0.u,0.s) Chars 12079 - 12206 [Lemma~transpose_compose~{A~B~C...] 0. secs (0.u,0.s) Chars 12209 - 12215 [Proof.] 0. secs (0.u,0.s) -Chars 12220 - 12268 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) +Chars 12220 - 12268 [(split;~unfold~transpose;~cbn;...] 0. secs (0.u,0.s) Chars 12273 - 12274 [-] 0. secs (0.u,0.s) -Chars 12275 - 12303 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) +Chars 12275 - 12303 [(destruct~H~as~(b,~(HR,~HS))).] 0. secs (0.u,0.s) Chars 12304 - 12313 [exists~b.] 0. secs (0.u,0.s) Chars 12314 - 12320 [tauto.] 0. secs (0.u,0.s) Chars 12325 - 12326 [-] 0. secs (0.u,0.s) -Chars 12327 - 12355 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) +Chars 12327 - 12355 [(destruct~H~as~(b,~(HR,~HS))).] 0. secs (0.u,0.s) Chars 12356 - 12365 [exists~b.] 0. secs (0.u,0.s) Chars 12366 - 12372 [tauto.] 0. secs (0.u,0.s) Chars 12375 - 12379 [Qed.] 0. secs (0.u,0.s) Chars 12383 - 12484 [#[global]~Instance~Proper_tran...] 0. secs (0.u,0.s) Chars 12487 - 12493 [Proof.] 0. secs (0.u,0.s) -Chars 12498 - 12562 [intros~?~?~EQ;~split;~unfold~t...] 0. secs (0.u,0.s) +Chars 12498 - 12562 [(intros~?~?~EQ;~split;~unfold~...] 0. secs (0.u,0.s) Chars 12565 - 12569 [Qed.] 0. secs (0.u,0.s) Chars 12647 - 12732 [Lemma~transpose_involution~:~f...] 0. secs (0.u,0.s) Chars 12735 - 12741 [Proof.] 0. secs (0.u,0.s) -Chars 12746 - 12759 [intros~A~B~R.] 0. secs (0.u,0.s) +Chars 12746 - 12759 [(intros~A~B~R).] 0. secs (0.u,0.s) Chars 12764 - 12770 [split.] 0. secs (0.u,0.s) Chars 12775 - 12776 [-] 0. secs (0.u,0.s) -Chars 12777 - 12813 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) -Chars 12814 - 12831 [unfold~transpose.] 0. secs (0.u,0.s) +Chars 12777 - 12813 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) +Chars 12814 - 12831 [(unfold~transpose).] 0. secs (0.u,0.s) Chars 12832 - 12838 [tauto.] 0. secs (0.u,0.s) Chars 12843 - 12844 [-] 0. secs (0.u,0.s) -Chars 12845 - 12892 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 12845 - 12892 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) Chars 12893 - 12899 [tauto.] 0. secs (0.u,0.s) Chars 12902 - 12906 [Qed.] 0. secs (0.u,0.s) Chars 12910 - 13034 [Lemma~transpose_inclusion~:~~~...] 0. secs (0.u,0.s) Chars 13037 - 13043 [Proof.] 0. secs (0.u,0.s) -Chars 13048 - 13065 [intros~A~B~R1~R2.] 0. secs (0.u,0.s) +Chars 13048 - 13065 [(intros~A~B~R1~R2).] 0. secs (0.u,0.s) Chars 13070 - 13076 [split.] 0. secs (0.u,0.s) Chars 13081 - 13082 [-] 0. secs (0.u,0.s) -Chars 13083 - 13093 [intros~HS.] 0. secs (0.u,0.s) -Chars 13100 - 13152 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 13083 - 13093 [(intros~HS).] 0. secs (0.u,0.s) +Chars 13100 - 13152 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) Chars 13153 - 13159 [eauto.] 0. secs (0.u,0.s) Chars 13164 - 13165 [-] 0. secs (0.u,0.s) -Chars 13166 - 13176 [intros~HS.] 0. secs (0.u,0.s) -Chars 13183 - 13235 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 13166 - 13176 [(intros~HS).] 0. secs (0.u,0.s) +Chars 13183 - 13235 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) Chars 13236 - 13242 [eauto.] 0. secs (0.u,0.s) Chars 13245 - 13249 [Qed.] 0. secs (0.u,0.s) Chars 13253 - 13353 [#[global]~Instance~transpose_P...] 0. secs (0.u,0.s) Chars 13356 - 13362 [Proof.] 0. secs (0.u,0.s) -Chars 13367 - 13396 [intros~A~B~R1~R2~(Hab,~Hba).] 0. secs (0.u,0.s) +Chars 13367 - 13396 [(intros~A~B~R1~R2~(Hab,~Hba)).] 0. secs (0.u,0.s) Chars 13401 - 13407 [split.] 0. secs (0.u,0.s) Chars 13412 - 13413 [-] 0. secs (0.u,0.s) -Chars 13414 - 13447 [apply~transpose_inclusion~in~Hab.] 0. secs (0.u,0.s) +Chars 13414 - 13447 [(apply~transpose_inclusion~in~...] 0. secs (0.u,0.s) Chars 13448 - 13459 [assumption.] 0. secs (0.u,0.s) Chars 13464 - 13465 [-] 0. secs (0.u,0.s) -Chars 13466 - 13499 [apply~transpose_inclusion~in~Hba.] 0. secs (0.u,0.s) +Chars 13466 - 13499 [(apply~transpose_inclusion~in~...] 0. secs (0.u,0.s) Chars 13500 - 13511 [assumption.] 0. secs (0.u,0.s) Chars 13514 - 13518 [Qed.] 0. secs (0.u,0.s) Chars 13583 - 13670 [Lemma~transpose_sym_eq_rel~{A}...] 0. secs (0.u,0.s) Chars 13673 - 13679 [Proof.] 0. secs (0.u,0.s) -Chars 13684 - 13727 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) +Chars 13684 - 13727 [(unfold~transpose;~split;~intr...] 0. secs (0.u,0.s) Chars 13732 - 13733 [-] 0. secs (0.u,0.s) -Chars 13734 - 13767 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 13768 - 13792 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) -Chars 13793 - 13808 [apply~(RS~y~x).] 0. secs (0.u,0.s) +Chars 13734 - 13767 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 13768 - 13792 [(unfold~SymmetricH~in~RS).] 0. secs (0.u,0.s) +Chars 13793 - 13808 [(apply~(RS~y~x)).] 0. secs (0.u,0.s) Chars 13809 - 13820 [assumption.] 0. secs (0.u,0.s) Chars 13825 - 13826 [-] 0. secs (0.u,0.s) -Chars 13827 - 13860 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 13861 - 13885 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) -Chars 13886 - 13901 [apply~(RS~x~y).] 0. secs (0.u,0.s) +Chars 13827 - 13860 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 13861 - 13885 [(unfold~SymmetricH~in~RS).] 0. secs (0.u,0.s) +Chars 13886 - 13901 [(apply~(RS~x~y)).] 0. secs (0.u,0.s) Chars 13902 - 13913 [assumption.] 0. secs (0.u,0.s) Chars 13916 - 13920 [Qed.] 0. secs (0.u,0.s) Chars 13956 - 14048 [Lemma~transpose_monotone~{A}~{...] 0. secs (0.u,0.s) Chars 14051 - 14057 [Proof.] 0. secs (0.u,0.s) -Chars 14062 - 14088 [unfold~transpose;~intros~!.] 0. secs (0.u,0.s) -Chars 14093 - 14101 [apply~H.] 0. secs (0.u,0.s) +Chars 14062 - 14088 [(unfold~transpose;~intros~!).] 0. secs (0.u,0.s) +Chars 14093 - 14101 [(apply~H).] 0. secs (0.u,0.s) Chars 14102 - 14107 [auto.] 0. secs (0.u,0.s) Chars 14110 - 14114 [Qed.] 0. secs (0.u,0.s) Chars 14116 - 14135 [End~TransposeFacts.] 0. secs (0.u,0.s) @@ -359,139 +359,139 @@ Chars 14325 - 14354 [Context~(RR~:~relationH~R~R).] 0. secs (0.u,0.s) Chars 14359 - 14388 [Context~(SS~:~relationH~S~S).] 0. secs (0.u,0.s) Chars 14394 - 14491 [#[global]~Instance~prod_rel_re...] 0. secs (0.u,0.s) Chars 14496 - 14502 [Proof.] 0. secs (0.u,0.s) -Chars 14509 - 14519 [intros~[].] 0. secs (0.u,0.s) -Chars 14520 - 14552 [apply~ReflexiveH_Reflexive~in~H.] 0. secs (0.u,0.s) -Chars 14553 - 14586 [apply~ReflexiveH_Reflexive~in~H0.] 0. secs (0.u,0.s) -Chars 14593 - 14597 [cbn.] 0. secs (0.u,0.s) +Chars 14509 - 14519 [(intros~[]).] 0. secs (0.u,0.s) +Chars 14520 - 14552 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) +Chars 14553 - 14586 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) +Chars 14593 - 14597 [(cbn).] 0. secs (0.u,0.s) Chars 14598 - 14604 [split.] 0. secs (0.u,0.s) -Chars 14605 - 14613 [apply~H.] 0. secs (0.u,0.s) -Chars 14614 - 14623 [apply~H0.] 0. secs (0.u,0.s) +Chars 14605 - 14613 [(apply~H).] 0. secs (0.u,0.s) +Chars 14614 - 14623 [(apply~H0).] 0. secs (0.u,0.s) Chars 14628 - 14632 [Qed.] 0. secs (0.u,0.s) Chars 14638 - 14735 [#[global]~Instance~prod_rel_sy...] 0. secs (0.u,0.s) Chars 14740 - 14746 [Proof.] 0. secs (0.u,0.s) -Chars 14753 - 14766 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 14767 - 14799 [apply~SymmetricH_Symmetric~in~H.] 0. secs (0.u,0.s) -Chars 14800 - 14833 [apply~SymmetricH_Symmetric~in~H0.] 0. secs (0.u,0.s) -Chars 14840 - 14873 [destruct~x;~destruct~y;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 14874 - 14886 [destruct~H1.] 0. secs (0.u,0.s) +Chars 14753 - 14766 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 14767 - 14799 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 14800 - 14833 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 14840 - 14873 [(destruct~x;~destruct~y;~cbn~i...] 0. secs (0.u,0.s) +Chars 14874 - 14886 [(destruct~H1).] 0. secs (0.u,0.s) Chars 14887 - 14893 [split.] 0. secs (0.u,0.s) Chars 14900 - 14901 [-] 0. secs (0.u,0.s) -Chars 14902 - 14925 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) -Chars 14926 - 14934 [apply~H.] 0.02 secs (0.02u,0.s) +Chars 14902 - 14925 [(unfold~SymmetricH~in~H).] 0. secs (0.u,0.s) +Chars 14926 - 14934 [(apply~H).] 0. secs (0.u,0.s) Chars 14935 - 14940 [auto.] 0. secs (0.u,0.s) Chars 14947 - 14948 [-] 0. secs (0.u,0.s) -Chars 14949 - 14973 [unfold~SymmetricH~in~H0.] 0. secs (0.u,0.s) -Chars 14974 - 14983 [apply~H0.] 0. secs (0.u,0.s) +Chars 14949 - 14973 [(unfold~SymmetricH~in~H0).] 0. secs (0.u,0.s) +Chars 14974 - 14983 [(apply~H0).] 0. secs (0.u,0.s) Chars 14984 - 14989 [auto.] 0. secs (0.u,0.s) Chars 14994 - 14998 [Qed.] 0. secs (0.u,0.s) Chars 15004 - 15106 [#[global]~Instance~prod_rel_tr...] 0. secs (0.u,0.s) Chars 15111 - 15117 [Proof.] 0. secs (0.u,0.s) Chars 15124 - 15132 [intros~!.] 0. secs (0.u,0.s) -Chars 15139 - 15173 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 15174 - 15209 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 15216 - 15240 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) -Chars 15247 - 15309 [inversion~H1;~inversion~H2;~su...] 0. secs (0.u,0.s) +Chars 15139 - 15173 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) +Chars 15174 - 15209 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) +Chars 15216 - 15240 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) +Chars 15247 - 15309 [(inversion~H1;~inversion~H2;~s...] 0.029 secs (0.029u,0.s) Chars 15314 - 15318 [Qed.] 0. secs (0.u,0.s) Chars 15324 - 15426 [#[global]~Instance~prod_rel_eq...] 0. secs (0.u,0.s) Chars 15431 - 15437 [Proof.] 0. secs (0.u,0.s) -Chars 15444 - 15475 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 15444 - 15475 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 15480 - 15484 [Qed.] 0. secs (0.u,0.s) Chars 15490 - 15571 [#[global]~Instance~prod_rel_PE...] 0. secs (0.u,0.s) Chars 15576 - 15582 [Proof.] 0. secs (0.u,0.s) Chars 15589 - 15601 [constructor.] 0. secs (0.u,0.s) Chars 15608 - 15609 [-] 0. secs (0.u,0.s) -Chars 15610 - 15625 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 15634 - 15662 [eapply~SymmetricH_Symmetric.] 0. secs (0.u,0.s) -Chars 15671 - 15737 [eapply~@prod_rel_sym;~[~eapply...] 0. secs (0.u,0.s) -Chars 15746 - 15781 [eapply~SymmetricH_Symmetric;~e...] 0. secs (0.u,0.s) +Chars 15610 - 15625 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 15634 - 15662 [(eapply~SymmetricH_Symmetric).] 0. secs (0.u,0.s) +Chars 15671 - 15737 [(eapply~@prod_rel_sym;~[~eappl...] 0. secs (0.u,0.s) +Chars 15746 - 15781 [(eapply~SymmetricH_Symmetric;~...] 0. secs (0.u,0.s) Chars 15788 - 15789 [-] 0. secs (0.u,0.s) -Chars 15790 - 15820 [eapply~TransitiveH_Transitive.] 0. secs (0.u,0.s) -Chars 15829 - 15852 [eapply~@prod_rel_trans.] 0. secs (0.u,0.s) +Chars 15790 - 15820 [(eapply~TransitiveH_Transitive).] 0. secs (0.u,0.s) +Chars 15829 - 15852 [(eapply~@prod_rel_trans).] 0. secs (0.u,0.s) Chars 15861 - 15862 [+] 0. secs (0.u,0.s) -Chars 15863 - 15878 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 15889 - 15926 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) +Chars 15863 - 15878 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 15889 - 15926 [(eapply~TransitiveH_Transitive...] 0. secs (0.u,0.s) Chars 15935 - 15936 [+] 0. secs (0.u,0.s) -Chars 15937 - 15952 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 15963 - 16000 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) +Chars 15937 - 15952 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 15963 - 16000 [(eapply~TransitiveH_Transitive...] 0. secs (0.u,0.s) Chars 16005 - 16009 [Qed.] 0. secs (0.u,0.s) Chars 16013 - 16029 [End~Equivalence.] 0. secs (0.u,0.s) Chars 16083 - 16235 [Lemma~prod_rel_monotone~{A~B~C...] 0. secs (0.u,0.s) Chars 16238 - 16244 [Proof.] 0. secs (0.u,0.s) Chars 16249 - 16257 [intros~!.] 0. secs (0.u,0.s) -Chars 16258 - 16272 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 16273 - 16284 [repeat~red.] 0. secs (0.u,0.s) -Chars 16285 - 16302 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 16303 - 16315 [destruct~H1.] 0. secs (0.u,0.s) +Chars 16258 - 16272 [(destruct~x,~y).] 0. secs (0.u,0.s) +Chars 16273 - 16284 [(repeat~red).] 0. secs (0.u,0.s) +Chars 16285 - 16302 [(repeat~red~in~H1).] 0. secs (0.u,0.s) +Chars 16303 - 16315 [(destruct~H1).] 0. secs (0.u,0.s) Chars 16320 - 16326 [split.] 0. secs (0.u,0.s) Chars 16331 - 16332 [-] 0. secs (0.u,0.s) -Chars 16333 - 16341 [apply~H.] 0. secs (0.u,0.s) +Chars 16333 - 16341 [(apply~H).] 0. secs (0.u,0.s) Chars 16342 - 16353 [assumption.] 0. secs (0.u,0.s) Chars 16358 - 16359 [-] 0. secs (0.u,0.s) -Chars 16360 - 16369 [apply~H0.] 0. secs (0.u,0.s) +Chars 16360 - 16369 [(apply~H0).] 0. secs (0.u,0.s) Chars 16370 - 16381 [assumption.] 0. secs (0.u,0.s) Chars 16384 - 16388 [Qed.] 0. secs (0.u,0.s) Chars 16451 - 16527 [Lemma~prod_rel_eq~:~forall~A~B...] 0. secs (0.u,0.s) Chars 16530 - 16536 [Proof.] 0. secs (0.u,0.s) -Chars 16541 - 16548 [intros.] 0. secs (0.u,0.s) -Chars 16553 - 16619 [unfold~eq_rel;~split;~unfold~s...] 0. secs (0.u,0.s) +Chars 16541 - 16548 [(intros).] 0. secs (0.u,0.s) +Chars 16553 - 16619 [(unfold~eq_rel;~split;~unfold~...] 0. secs (0.u,0.s) Chars 16624 - 16625 [-] 0. secs (0.u,0.s) -Chars 16626 - 16640 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 16641 - 16657 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 16658 - 16669 [destruct~H.] 0. secs (0.u,0.s) -Chars 16670 - 16699 [cbn~in~*;~subst;~reflexivity.] 0. secs (0.u,0.s) +Chars 16626 - 16640 [(destruct~x,~y).] 0. secs (0.u,0.s) +Chars 16641 - 16657 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 16658 - 16669 [(destruct~H).] 0. secs (0.u,0.s) +Chars 16670 - 16699 [(cbn~in~*;~subst;~reflexivity).] 0. secs (0.u,0.s) Chars 16704 - 16705 [-] 0. secs (0.u,0.s) -Chars 16706 - 16729 [destruct~x;~destruct~y.] 0. secs (0.u,0.s) -Chars 16730 - 16739 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 16740 - 16751 [repeat~red.] 0. secs (0.u,0.s) -Chars 16752 - 16764 [inversion~H.] 0. secs (0.u,0.s) -Chars 16765 - 16784 [split;~reflexivity.] 0. secs (0.u,0.s) -Chars 16787 - 16791 [Qed.] 0. secs (0.u,0.s) +Chars 16706 - 16729 [(destruct~x;~destruct~y).] 0. secs (0.u,0.s) +Chars 16730 - 16739 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 16740 - 16751 [(repeat~red).] 0. secs (0.u,0.s) +Chars 16752 - 16764 [(inversion~H).] 0. secs (0.u,0.s) +Chars 16765 - 16784 [(split;~reflexivity).] 0. secs (0.u,0.s) +Chars 16787 - 16791 [Qed.] 0.001 secs (0.001u,0.s) Chars 16795 - 16941 [Definition~prod_fst_rel~{A~B~:...] 0. secs (0.u,0.s) Chars 16945 - 17091 [Definition~prod_snd_rel~{A~B~:...] 0. secs (0.u,0.s) Chars 17095 - 17277 [Lemma~prod_inv~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) Chars 17280 - 17286 [Proof.] 0. secs (0.u,0.s) -Chars 17291 - 17298 [intros.] 0. secs (0.u,0.s) -Chars 17303 - 17314 [destruct~H.] 0. secs (0.u,0.s) -Chars 17315 - 17354 [unfold~prod_fst_rel,~prod_snd_...] 0. secs (0.u,0.s) -Chars 17355 - 17364 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 17369 - 17378 [apply~H0.] 0. secs (0.u,0.s) +Chars 17291 - 17298 [(intros).] 0. secs (0.u,0.s) +Chars 17303 - 17314 [(destruct~H).] 0. secs (0.u,0.s) +Chars 17315 - 17354 [(unfold~prod_fst_rel,~prod_snd...] 0. secs (0.u,0.s) +Chars 17355 - 17364 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 17369 - 17378 [(apply~H0).] 0. secs (0.u,0.s) Chars 17381 - 17385 [Qed.] 0. secs (0.u,0.s) Chars 17389 - 17578 [Lemma~prod_compose~{A~B~C~D~E~...] 0. secs (0.u,0.s) Chars 17581 - 17587 [Proof.] 0. secs (0.u,0.s) -Chars 17592 - 17607 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 17592 - 17607 [(split;~intros~!).] 0. secs (0.u,0.s) Chars 17612 - 17613 [-] 0. secs (0.u,0.s) -Chars 17614 - 17628 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 17629 - 17640 [repeat~red.] 0. secs (0.u,0.s) -Chars 17641 - 17657 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 17658 - 17680 [destruct~H~as~[H1~H2].] 0. secs (0.u,0.s) -Chars 17687 - 17703 [unfold~fst,~snd.] 0. secs (0.u,0.s) -Chars 17704 - 17718 [cbn~in~H1,~H2.] 0. secs (0.u,0.s) -Chars 17725 - 17755 [edestruct~H1~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) -Chars 17762 - 17792 [edestruct~H2~as~(e,~(HT,~HU)).] 0. secs (0.u,0.s) +Chars 17614 - 17628 [(destruct~x,~y).] 0. secs (0.u,0.s) +Chars 17629 - 17640 [(repeat~red).] 0. secs (0.u,0.s) +Chars 17641 - 17657 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 17658 - 17680 [(destruct~H~as~[H1~H2]).] 0. secs (0.u,0.s) +Chars 17687 - 17703 [(unfold~fst,~snd).] 0. secs (0.u,0.s) +Chars 17704 - 17718 [(cbn~in~H1,~H2).] 0. secs (0.u,0.s) +Chars 17725 - 17755 [(edestruct~H1~as~(b,~(HR,~HS))).] 0. secs (0.u,0.s) +Chars 17762 - 17792 [(edestruct~H2~as~(e,~(HT,~HU))).] 0. secs (0.u,0.s) Chars 17799 - 17813 [exists~(b,~e).] 0. secs (0.u,0.s) -Chars 17814 - 17839 [split;~cbn;~split;~eauto.] 0. secs (0.u,0.s) +Chars 17814 - 17839 [(split;~cbn;~split;~eauto).] 0. secs (0.u,0.s) Chars 17844 - 17845 [-] 0. secs (0.u,0.s) -Chars 17846 - 17860 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 17861 - 17872 [repeat~red.] 0. secs (0.u,0.s) -Chars 17873 - 17889 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 17890 - 17916 [destruct~H~as~[x~[H1~H2]].] 0. secs (0.u,0.s) +Chars 17846 - 17860 [(destruct~x,~y).] 0. secs (0.u,0.s) +Chars 17861 - 17872 [(repeat~red).] 0. secs (0.u,0.s) +Chars 17873 - 17889 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 17890 - 17916 [(destruct~H~as~[x~[H1~H2]]).] 0. secs (0.u,0.s) Chars 17923 - 17929 [split.] 0. secs (0.u,0.s) Chars 17936 - 17937 [+] 0. secs (0.u,0.s) Chars 17938 - 17953 [exists~(fst~x).] 0. secs (0.u,0.s) -Chars 17954 - 17986 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) +Chars 17954 - 17986 [(cbn;~split;~[~apply~H1~|~appl...] 0. secs (0.u,0.s) Chars 17993 - 17994 [+] 0. secs (0.u,0.s) Chars 17995 - 18010 [exists~(snd~x).] 0. secs (0.u,0.s) -Chars 18011 - 18043 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) -Chars 18046 - 18050 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18011 - 18043 [(cbn;~split;~[~apply~H1~|~appl...] 0. secs (0.u,0.s) +Chars 18046 - 18050 [Qed.] 0.002 secs (0.002u,0.s) Chars 18054 - 18160 [#[global]~Instance~Proper_prod...] 0. secs (0.u,0.s) Chars 18163 - 18169 [Proof.] 0. secs (0.u,0.s) Chars 18174 - 18182 [intros~!.] 0. secs (0.u,0.s) -Chars 18183 - 18283 [split;~intros~!;~destruct~x1,~...] 0.001 secs (0.001u,0.s) -Chars 18286 - 18290 [Qed.] 0. secs (0.u,0.s) +Chars 18183 - 18283 [(split;~intros~!;~destruct~x1,...] 0.001 secs (0.001u,0.s) +Chars 18286 - 18290 [Qed.] 0.001 secs (0.001u,0.s) Chars 18523 - 18646 [Lemma~transpose_prod~{A~B~C~D~...] 0. secs (0.u,0.s) Chars 18649 - 18655 [Proof.] 0. secs (0.u,0.s) -Chars 18660 - 18753 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) -Chars 18756 - 18760 [Qed.] 0. secs (0.u,0.s) +Chars 18660 - 18753 [(split;~unfold~transpose;~cbn;...] 0.001 secs (0.001u,0.s) +Chars 18756 - 18760 [Qed.] 0.001 secs (0.001u,0.s) Chars 18761 - 18778 [End~ProdRelFacts.] 0. secs (0.u,0.s) Chars 18781 - 18801 [Section~SumRelFacts.] 0. secs (0.u,0.s) Chars 18915 - 18935 [Section~Equivalence.] 0. secs (0.u,0.s) @@ -500,151 +500,151 @@ Chars 18966 - 18994 [Context~(R~:~relationH~A~A).] 0. secs (0.u,0.s) Chars 18999 - 19027 [Context~(S~:~relationH~B~B).] 0. secs (0.u,0.s) Chars 19033 - 19127 [#[global]~Instance~sum_rel_ref...] 0. secs (0.u,0.s) Chars 19132 - 19138 [Proof.] 0. secs (0.u,0.s) -Chars 19145 - 19155 [intros~[].] 0. secs (0.u,0.s) -Chars 19156 - 19189 [apply~ReflexiveH_Reflexive~in~RR.] 0. secs (0.u,0.s) -Chars 19196 - 19229 [apply~ReflexiveH_Reflexive~in~SR.] 0. secs (0.u,0.s) -Chars 19236 - 19240 [cbn.] 0. secs (0.u,0.s) +Chars 19145 - 19155 [(intros~[]).] 0. secs (0.u,0.s) +Chars 19156 - 19189 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) +Chars 19196 - 19229 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) +Chars 19236 - 19240 [(cbn).] 0. secs (0.u,0.s) Chars 19247 - 19259 [constructor.] 0. secs (0.u,0.s) -Chars 19260 - 19269 [apply~RR.] 0. secs (0.u,0.s) +Chars 19260 - 19269 [(apply~RR).] 0. secs (0.u,0.s) Chars 19276 - 19288 [constructor.] 0. secs (0.u,0.s) -Chars 19289 - 19298 [apply~SR.] 0. secs (0.u,0.s) +Chars 19289 - 19298 [(apply~SR).] 0. secs (0.u,0.s) Chars 19303 - 19307 [Qed.] 0. secs (0.u,0.s) Chars 19313 - 19406 [#[global]~Instance~sum_rel_sym...] 0. secs (0.u,0.s) Chars 19411 - 19417 [Proof.] 0. secs (0.u,0.s) -Chars 19424 - 19437 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 19438 - 19471 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 19478 - 19511 [apply~SymmetricH_Symmetric~in~SS.] 0. secs (0.u,0.s) -Chars 19518 - 19532 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 19424 - 19437 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 19438 - 19471 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 19478 - 19511 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) +Chars 19518 - 19532 [(destruct~x,~y).] 0. secs (0.u,0.s) Chars 19539 - 19540 [-] 0. secs (0.u,0.s) Chars 19541 - 19553 [constructor.] 0. secs (0.u,0.s) -Chars 19554 - 19566 [inversion~H.] 0. secs (0.u,0.s) +Chars 19554 - 19566 [(inversion~H).] 0. secs (0.u,0.s) Chars 19567 - 19573 [subst.] 0. secs (0.u,0.s) -Chars 19574 - 19583 [apply~RS.] 0. secs (0.u,0.s) +Chars 19574 - 19583 [(apply~RS).] 0. secs (0.u,0.s) Chars 19584 - 19589 [auto.] 0. secs (0.u,0.s) Chars 19596 - 19597 [-] 0. secs (0.u,0.s) -Chars 19598 - 19610 [inversion~H.] 0. secs (0.u,0.s) +Chars 19598 - 19610 [(inversion~H).] 0. secs (0.u,0.s) Chars 19617 - 19618 [-] 0. secs (0.u,0.s) -Chars 19619 - 19631 [inversion~H.] 0. secs (0.u,0.s) +Chars 19619 - 19631 [(inversion~H).] 0. secs (0.u,0.s) Chars 19638 - 19639 [-] 0. secs (0.u,0.s) Chars 19640 - 19652 [constructor.] 0. secs (0.u,0.s) -Chars 19653 - 19665 [inversion~H.] 0. secs (0.u,0.s) +Chars 19653 - 19665 [(inversion~H).] 0. secs (0.u,0.s) Chars 19666 - 19672 [subst.] 0. secs (0.u,0.s) -Chars 19673 - 19682 [apply~SS.] 0. secs (0.u,0.s) +Chars 19673 - 19682 [(apply~SS).] 0. secs (0.u,0.s) Chars 19683 - 19688 [auto.] 0. secs (0.u,0.s) -Chars 19693 - 19697 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19693 - 19697 [Qed.] 0.001 secs (0.001u,0.s) Chars 19703 - 19802 [#[global]~Instance~sum_rel_tra...] 0. secs (0.u,0.s) Chars 19807 - 19813 [Proof.] 0. secs (0.u,0.s) Chars 19820 - 19828 [intros~!.] 0. secs (0.u,0.s) -Chars 19835 - 19870 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 19871 - 19906 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 19913 - 19937 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) -Chars 19944 - 20014 [destruct~x,~y,~z;~try~contradi...] 0.006 secs (0.005u,0.001s) -Chars 20021 - 20030 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 19835 - 19870 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) +Chars 19871 - 19906 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) +Chars 19913 - 19937 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) +Chars 19944 - 20014 [(destruct~x,~y,~z;~try~contrad...] 0.011 secs (0.009u,0.002s) +Chars 20021 - 20030 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 20037 - 20049 [constructor.] 0. secs (0.u,0.s) Chars 20050 - 20056 [eauto.] 0. secs (0.u,0.s) Chars 20057 - 20069 [constructor.] 0. secs (0.u,0.s) Chars 20070 - 20076 [eauto.] 0. secs (0.u,0.s) -Chars 20081 - 20085 [Qed.] 0.003 secs (0.002u,0.s) +Chars 20081 - 20085 [Qed.] 0.004 secs (0.003u,0.s) Chars 20091 - 20190 [#[global]~Instance~sum_rel_eqv...] 0. secs (0.u,0.s) Chars 20195 - 20201 [Proof.] 0. secs (0.u,0.s) -Chars 20208 - 20239 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 20208 - 20239 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 20244 - 20248 [Qed.] 0. secs (0.u,0.s) Chars 20252 - 20268 [End~Equivalence.] 0. secs (0.u,0.s) Chars 20321 - 20474 [Lemma~sum_rel_monotone~{A~B~C~...] 0. secs (0.u,0.s) Chars 20477 - 20483 [Proof.] 0. secs (0.u,0.s) -Chars 20488 - 20586 [intros~!;~destruct~x,~y;~repea...] 0.002 secs (0.002u,0.s) -Chars 20589 - 20593 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20488 - 20586 [(intros~!;~destruct~x,~y;~repe...] 0.003 secs (0.002u,0.s) +Chars 20589 - 20593 [Qed.] 0.002 secs (0.002u,0.s) Chars 20632 - 20704 [Lemma~sum_rel_eq~:~forall~A~B~...] 0. secs (0.u,0.s) Chars 20707 - 20713 [Proof.] 0. secs (0.u,0.s) -Chars 20718 - 20725 [intros.] 0. secs (0.u,0.s) -Chars 20726 - 20730 [red.] 0. secs (0.u,0.s) -Chars 20735 - 20762 [split;~repeat~intro;~eauto.] 0. secs (0.u,0.s) -Chars 20767 - 20809 [inversion~H;~subst;~auto;~try~...] 0.001 secs (0.u,0.s) +Chars 20718 - 20725 [(intros).] 0. secs (0.u,0.s) +Chars 20726 - 20730 [(red).] 0. secs (0.u,0.s) +Chars 20735 - 20762 [(split;~repeat~intro;~eauto).] 0. secs (0.u,0.s) +Chars 20767 - 20809 [(inversion~H;~subst;~auto;~try...] 0.001 secs (0.001u,0.s) Chars 20814 - 20820 [subst.] 0. secs (0.u,0.s) -Chars 20821 - 20852 [destruct~y;~constructor;~eauto.] 0. secs (0.u,0.s) -Chars 20855 - 20859 [Qed.] 0. secs (0.u,0.s) +Chars 20821 - 20852 [(destruct~y;~constructor;~eauto).] 0. secs (0.u,0.s) +Chars 20855 - 20859 [Qed.] 0.001 secs (0.001u,0.s) Chars 20863 - 21049 [Lemma~sum_compose~{A~B~C~D~E~F...] 0. secs (0.u,0.s) Chars 21052 - 21058 [Proof.] 0. secs (0.u,0.s) -Chars 21063 - 21078 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 21063 - 21078 [(split;~intros~!).] 0. secs (0.u,0.s) Chars 21083 - 21084 [-] 0. secs (0.u,0.s) -Chars 21085 - 21106 [destruct~x,~y;~inv~H.] 0.006 secs (0.005u,0.s) -Chars 21113 - 21156 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) -Chars 21163 - 21206 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) +Chars 21085 - 21106 [(destruct~x,~y;~inv~H).] 0.005 secs (0.004u,0.001s) +Chars 21113 - 21156 [(destruct~H2~as~(?,~(?,~?));~e...] 0. secs (0.u,0.s) +Chars 21163 - 21206 [(destruct~H2~as~(?,~(?,~?));~e...] 0. secs (0.u,0.s) Chars 21211 - 21212 [-] 0. secs (0.u,0.s) -Chars 21213 - 21257 [destruct~H~as~(?,~(H1,~H2));~i...] 0.003 secs (0.003u,0.s) -Chars 21264 - 21293 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) -Chars 21300 - 21329 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) -Chars 21332 - 21336 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21213 - 21257 [(destruct~H~as~(?,~(H1,~H2));~...] 0.008 secs (0.008u,0.s) +Chars 21264 - 21293 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) +Chars 21300 - 21329 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) +Chars 21332 - 21336 [Qed.] 0.004 secs (0.004u,0.s) Chars 21340 - 21444 [#[global]~Instance~Proper_sum_...] 0. secs (0.u,0.s) Chars 21447 - 21453 [Proof.] 0. secs (0.u,0.s) Chars 21458 - 21466 [intros~!.] 0. secs (0.u,0.s) -Chars 21471 - 21659 [split;~intros~!;~destruct~x1,~...] 0.006 secs (0.006u,0.s) -Chars 21662 - 21666 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21471 - 21659 [(split;~intros~!;~destruct~x1,...] 0.009 secs (0.009u,0.s) +Chars 21662 - 21666 [Qed.] 0.005 secs (0.005u,0.s) Chars 21892 - 22014 [Lemma~transpose_sum~{A~B~C~D~:...] 0. secs (0.u,0.s) Chars 22017 - 22023 [Proof.] 0. secs (0.u,0.s) -Chars 22028 - 22173 [split;~unfold~transpose;~cbn;~...] 0.003 secs (0.003u,0.s) -Chars 22176 - 22180 [Qed.] 0.002 secs (0.002u,0.s) +Chars 22028 - 22173 [(split;~unfold~transpose;~cbn;...] 0.007 secs (0.007u,0.s) +Chars 22176 - 22180 [Qed.] 0.004 secs (0.004u,0.s) Chars 22182 - 22198 [End~SumRelFacts.] 0. secs (0.u,0.s) Chars 22200 - 22356 [Lemma~PER_reflexivityH1~:~~~fo...] 0. secs (0.u,0.s) Chars 22357 - 22363 [Proof.] 0. secs (0.u,0.s) -Chars 22366 - 22373 [intros.] 0. secs (0.u,0.s) -Chars 22376 - 22392 [assert~(R~b~a).] 0. secs (0.u,0.s) +Chars 22366 - 22373 [(intros).] 0. secs (0.u,0.s) +Chars 22376 - 22392 [(assert~(R~b~a)).] 0. secs (0.u,0.s) Chars 22393 - 22394 [{] 0. secs (0.u,0.s) Chars 22395 - 22415 [specialize~(RS~a~b).] 0. secs (0.u,0.s) -Chars 22416 - 22425 [apply~RS.] 0. secs (0.u,0.s) +Chars 22416 - 22425 [(apply~RS).] 0. secs (0.u,0.s) Chars 22426 - 22437 [assumption.] 0. secs (0.u,0.s) Chars 22438 - 22439 [}] 0. secs (0.u,0.s) Chars 22442 - 22464 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) -Chars 22465 - 22480 [apply~RT;~auto.] 0. secs (0.u,0.s) +Chars 22465 - 22480 [(apply~RT;~auto).] 0. secs (0.u,0.s) Chars 22481 - 22485 [Qed.] 0. secs (0.u,0.s) Chars 22487 - 22643 [Lemma~PER_reflexivityH2~:~~~fo...] 0. secs (0.u,0.s) Chars 22644 - 22650 [Proof.] 0. secs (0.u,0.s) -Chars 22653 - 22660 [intros.] 0. secs (0.u,0.s) -Chars 22663 - 22678 [assert~(R~a~b).] 0. secs (0.u,0.s) +Chars 22653 - 22660 [(intros).] 0. secs (0.u,0.s) +Chars 22663 - 22678 [(assert~(R~a~b)).] 0. secs (0.u,0.s) Chars 22679 - 22680 [{] 0. secs (0.u,0.s) Chars 22681 - 22701 [specialize~(RS~b~a).] 0. secs (0.u,0.s) -Chars 22702 - 22711 [apply~RS.] 0. secs (0.u,0.s) +Chars 22702 - 22711 [(apply~RS).] 0. secs (0.u,0.s) Chars 22712 - 22723 [assumption.] 0. secs (0.u,0.s) Chars 22724 - 22725 [}] 0. secs (0.u,0.s) Chars 22728 - 22750 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) -Chars 22751 - 22766 [apply~RT;~auto.] 0. secs (0.u,0.s) +Chars 22751 - 22766 [(apply~RT;~auto).] 0. secs (0.u,0.s) Chars 22767 - 22771 [Qed.] 0. secs (0.u,0.s) Chars 22773 - 23006 [Ltac~~PER_reflexivityH~:=~~~ma...] 0. secs (0.u,0.s) Chars 23009 - 23107 [Definition~diagonal_prop~{A~:~...] 0. secs (0.u,0.s) Chars 23109 - 23198 [Lemma~diagonal_prop_SymmetricH...] 0. secs (0.u,0.s) Chars 23199 - 23205 [Proof.] 0. secs (0.u,0.s) -Chars 23208 - 23212 [red.] 0. secs (0.u,0.s) -Chars 23213 - 23228 [intros~a1~a2~H.] 0. secs (0.u,0.s) -Chars 23231 - 23240 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23241 - 23267 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) +Chars 23208 - 23212 [(red).] 0. secs (0.u,0.s) +Chars 23213 - 23228 [(intros~a1~a2~H).] 0. secs (0.u,0.s) +Chars 23231 - 23240 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 23241 - 23267 [(unfold~diagonal_prop~in~*).] 0. secs (0.u,0.s) Chars 23268 - 23274 [tauto.] 0. secs (0.u,0.s) Chars 23275 - 23279 [Qed.] 0. secs (0.u,0.s) Chars 23281 - 23372 [Lemma~diagonal_prop_Transitive...] 0. secs (0.u,0.s) Chars 23373 - 23379 [Proof.] 0. secs (0.u,0.s) -Chars 23382 - 23386 [red.] 0. secs (0.u,0.s) -Chars 23387 - 23394 [intros.] 0. secs (0.u,0.s) -Chars 23397 - 23406 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23407 - 23433 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) +Chars 23382 - 23386 [(red).] 0. secs (0.u,0.s) +Chars 23387 - 23394 [(intros).] 0. secs (0.u,0.s) +Chars 23397 - 23406 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 23407 - 23433 [(unfold~diagonal_prop~in~*).] 0. secs (0.u,0.s) Chars 23436 - 23442 [tauto.] 0. secs (0.u,0.s) Chars 23443 - 23447 [Qed.] 0. secs (0.u,0.s) Chars 23449 - 23524 [Lemma~diagonal_prop_PER~{A~:~T...] 0. secs (0.u,0.s) Chars 23525 - 23531 [Proof.] 0. secs (0.u,0.s) Chars 23534 - 23546 [constructor.] 0. secs (0.u,0.s) -Chars 23549 - 23553 [red.] 0. secs (0.u,0.s) -Chars 23554 - 23561 [intros.] 0. secs (0.u,0.s) -Chars 23564 - 23573 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23574 - 23607 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) -Chars 23610 - 23614 [red.] 0. secs (0.u,0.s) -Chars 23615 - 23622 [intros.] 0. secs (0.u,0.s) -Chars 23625 - 23634 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23635 - 23668 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) +Chars 23549 - 23553 [(red).] 0. secs (0.u,0.s) +Chars 23554 - 23561 [(intros).] 0. secs (0.u,0.s) +Chars 23564 - 23573 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 23574 - 23607 [(unfold~diagonal_prop~in~*;~ta...] 0. secs (0.u,0.s) +Chars 23610 - 23614 [(red).] 0. secs (0.u,0.s) +Chars 23615 - 23622 [(intros).] 0. secs (0.u,0.s) +Chars 23625 - 23634 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 23635 - 23668 [(unfold~diagonal_prop~in~*;~ta...] 0. secs (0.u,0.s) Chars 23669 - 23673 [Qed.] 0. secs (0.u,0.s) Chars 23905 - 24127 [Definition~option_rel~{X~:~Typ...] 0. secs (0.u,0.s) Chars 24128 - 24168 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) Chars 24170 - 24255 [Lemma~option_rel_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 24256 - 24262 [Proof.] 0. secs (0.u,0.s) -Chars 24265 - 24328 [intros~?;~split;~intros~[]~[]~...] 0.001 secs (0.001u,0.s) -Chars 24329 - 24333 [Qed.] 0. secs (0.u,0.s) +Chars 24265 - 24328 [(intros~?;~split;~intros~[]~[]...] 0.002 secs (0.002u,0.s) +Chars 24329 - 24333 [Qed.] 0.001 secs (0.001u,0.s) Chars 24335 - 24375 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) Chars 24377 - 24443 [Notation~prerel~E~D:=~(forall~...] 0. secs (0.u,0.s) Chars 24444 - 24520 [Notation~postrel~E~D:=~(forall...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Monad.v.timing b/theories/Basics/Monad.v.timing index 81522051..06dcdc96 100644 --- a/theories/Basics/Monad.v.timing +++ b/theories/Basics/Monad.v.timing @@ -1,18 +1,18 @@ -Chars 65 - 107 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 65 - 107 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 109 - 158 [From~ExtLib~Require~Export~Str...] 0. secs (0.u,0.s) -Chars 160 - 229 [From~ITree~Require~Import~Basi...] 0.002 secs (0.002u,0.s) +Chars 160 - 229 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.s) Chars 246 - 272 [Set~Primitive~Projections.] 0. secs (0.u,0.s) Chars 336 - 412 [Class~Eq1~(M~:~Type~->~Type)~:...] 0. secs (0.u,0.s) Chars 414 - 436 [Arguments~eq1~{M~_~_}.] 0. secs (0.u,0.s) Chars 437 - 484 [Infix~"≈"~:=~eq1~(~at~level~70...] 0. secs (0.u,0.s) -Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0. secs (0.u,0.s) +Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0.001 secs (0.001u,0.s) Chars 653 - 691 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 693 - 706 [Section~Laws.] 0. secs (0.u,0.s) Chars 710 - 737 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 740 - 763 [Context~{Eq1~:~@Eq1~M}.] 0. secs (0.u,0.s) Chars 766 - 792 [Context~{Monad~:~Monad~M}.] 0. secs (0.u,0.s) Chars 796 - 825 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 999 - 1456 [Class~MonadLawsE~:~Prop~:={~~~...] 0.002 secs (0.002u,0.s) +Chars 999 - 1456 [Class~MonadLawsE~:~Prop~:={~~~...] 0.003 secs (0.002u,0.s) Chars 1458 - 1467 [End~Laws.] 0. secs (0.u,0.s) Chars 1469 - 1509 [#[global]~Existing~Instance~Pr...] 0. secs (0.u,0.s) Chars 1511 - 1542 [Arguments~bind_ret_l~{M~_~_~_}.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadProp.v.timing b/theories/Basics/MonadProp.v.timing index 8ec87e24..7a86c01e 100644 --- a/theories/Basics/MonadProp.v.timing +++ b/theories/Basics/MonadProp.v.timing @@ -1,6 +1,6 @@ -Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.005 secs (0.003u,0.002s) +Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.008 secs (0.005u,0.002s) Chars 88 - 137 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) +Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) Chars 253 - 287 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 288 - 308 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 309 - 336 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -12,221 +12,221 @@ Chars 594 - 656 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 659 - 665 [Proof.] 0. secs (0.u,0.s) Chars 670 - 682 [constructor.] 0. secs (0.u,0.s) Chars 687 - 688 [-] 0. secs (0.u,0.s) -Chars 689 - 715 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) +Chars 689 - 715 [(split;~repeat~intro;~auto).] 0. secs (0.u,0.s) Chars 720 - 721 [-] 0. secs (0.u,0.s) -Chars 722 - 735 [repeat~intro.] 0. secs (0.u,0.s) -Chars 736 - 747 [destruct~H.] 0. secs (0.u,0.s) -Chars 748 - 760 [split;~auto.] 0. secs (0.u,0.s) +Chars 722 - 735 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 736 - 747 [(destruct~H).] 0. secs (0.u,0.s) +Chars 748 - 760 [(split;~auto).] 0. secs (0.u,0.s) Chars 765 - 766 [-] 0. secs (0.u,0.s) -Chars 767 - 780 [repeat~intro.] 0. secs (0.u,0.s) -Chars 781 - 796 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 797 - 823 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) +Chars 767 - 780 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 781 - 796 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 797 - 823 [(split;~repeat~intro;~auto).] 0. secs (0.u,0.s) Chars 826 - 830 [Qed.] 0. secs (0.u,0.s) Chars 834 - 881 [Instance~MonadLawsE_Prop~:~(Mo...] 0. secs (0.u,0.s) Chars 884 - 890 [Proof.] 0. secs (0.u,0.s) Chars 895 - 907 [constructor.] 0. secs (0.u,0.s) Chars 912 - 913 [-] 0. secs (0.u,0.s) -Chars 914 - 946 [split;~repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) +Chars 914 - 946 [(split;~repeat~intro;~simpl~in...] 0. secs (0.u,0.s) Chars 953 - 954 [+] 0. secs (0.u,0.s) -Chars 955 - 981 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 982 - 991 [red~in~H.] 0. secs (0.u,0.s) -Chars 992 - 1004 [subst;~auto.] 0. secs (0.u,0.s) +Chars 955 - 981 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) +Chars 982 - 991 [(red~in~H).] 0. secs (0.u,0.s) +Chars 992 - 1004 [(subst;~auto).] 0. secs (0.u,0.s) Chars 1011 - 1012 [+] 0. secs (0.u,0.s) -Chars 1013 - 1035 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 1013 - 1035 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 1036 - 1048 [reflexivity.] 0. secs (0.u,0.s) Chars 1053 - 1054 [-] 0. secs (0.u,0.s) Chars 1055 - 1061 [split.] 0. secs (0.u,0.s) -Chars 1062 - 1087 [repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) +Chars 1062 - 1087 [(repeat~intro;~simpl~in~*).] 0. secs (0.u,0.s) Chars 1094 - 1095 [+] 0. secs (0.u,0.s) -Chars 1096 - 1122 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 1123 - 1146 [red~in~H0;~subst;~auto.] 0. secs (0.u,0.s) +Chars 1096 - 1122 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) +Chars 1123 - 1146 [(red~in~H0;~subst;~auto).] 0. secs (0.u,0.s) Chars 1153 - 1154 [+] 0. secs (0.u,0.s) -Chars 1155 - 1159 [red.] 0. secs (0.u,0.s) -Chars 1160 - 1173 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1174 - 1196 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 1155 - 1159 [(red).] 0. secs (0.u,0.s) +Chars 1160 - 1173 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1174 - 1196 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) Chars 1214 - 1215 [-] 0. secs (0.u,0.s) -Chars 1216 - 1379 [intros;~split;~repeat~intro;~s...] 0.001 secs (0.u,0.s) +Chars 1216 - 1379 [(intros;~split;~repeat~intro;~...] 0.001 secs (0.001u,0.s) Chars 1384 - 1385 [-] 0. secs (0.u,0.s) -Chars 1386 - 1405 [repeat~intro;~auto.] 0. secs (0.u,0.s) -Chars 1406 - 1417 [destruct~H.] 0. secs (0.u,0.s) -Chars 1424 - 1532 [split;~simpl;~repeat~red;~intr...] 0.001 secs (0.u,0.s) -Chars 1535 - 1539 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1386 - 1405 [(repeat~intro;~auto).] 0. secs (0.u,0.s) +Chars 1406 - 1417 [(destruct~H).] 0. secs (0.u,0.s) +Chars 1424 - 1532 [(split;~simpl;~repeat~red;~int...] 0.001 secs (0.001u,0.s) +Chars 1535 - 1539 [Qed.] 0.003 secs (0.002u,0.s) Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) Chars 1684 - 1690 [Proof.] 0. secs (0.u,0.s) -Chars 1695 - 1805 [repeat~red;~split;~repeat~intr...] 0.001 secs (0.001u,0.s) -Chars 1807 - 1811 [Qed.] 0.001 secs (0.u,0.s) +Chars 1695 - 1805 [(repeat~red;~split;~repeat~int...] 0.002 secs (0.001u,0.s) +Chars 1807 - 1811 [Qed.] 0.001 secs (0.001u,0.s) Chars 1815 - 1883 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 1886 - 1892 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1929 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 1897 - 1929 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) Chars 1934 - 1935 [-] 0. secs (0.u,0.s) -Chars 1936 - 1957 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 1958 - 1969 [destruct~H.] 0. secs (0.u,0.s) +Chars 1936 - 1957 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) +Chars 1958 - 1969 [(destruct~H).] 0. secs (0.u,0.s) Chars 1976 - 1977 [+] 0. secs (0.u,0.s) Chars 1978 - 1993 [exists~(inr~x).] 0. secs (0.u,0.s) -Chars 1994 - 2018 [split;~repeat~red;~auto.] 0. secs (0.u,0.s) +Chars 1994 - 2018 [(split;~repeat~red;~auto).] 0. secs (0.u,0.s) Chars 2025 - 2026 [+] 0. secs (0.u,0.s) -Chars 2027 - 2049 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2027 - 2049 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 2054 - 2055 [-] 0. secs (0.u,0.s) -Chars 2056 - 2077 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 2078 - 2108 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) -Chars 2109 - 2121 [destruct~x0.] 0. secs (0.u,0.s) +Chars 2056 - 2077 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) +Chars 2078 - 2108 [(decompose~[~ex~and~]~H;~clear...] 0. secs (0.u,0.s) +Chars 2109 - 2121 [(destruct~x0).] 0. secs (0.u,0.s) Chars 2128 - 2129 [+] 0. secs (0.u,0.s) -Chars 2130 - 2152 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 2130 - 2152 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) Chars 2159 - 2160 [+] 0. secs (0.u,0.s) Chars 2161 - 2175 [constructor~1.] 0. secs (0.u,0.s) -Chars 2176 - 2193 [repeat~red~in~H2.] 0. secs (0.u,0.s) -Chars 2194 - 2206 [subst;~auto.] 0. secs (0.u,0.s) -Chars 2209 - 2213 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2176 - 2193 [(repeat~red~in~H2).] 0. secs (0.u,0.s) +Chars 2194 - 2206 [(subst;~auto).] 0. secs (0.u,0.s) +Chars 2209 - 2213 [Qed.] 0.002 secs (0.002u,0.s) Chars 2217 - 2287 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 2290 - 2296 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2333 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 2301 - 2333 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) Chars 2338 - 2339 [-] 0. secs (0.u,0.s) -Chars 2340 - 2361 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 2362 - 2392 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) -Chars 2393 - 2406 [induction~H1.] 0. secs (0.u,0.s) +Chars 2340 - 2361 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) +Chars 2362 - 2392 [(decompose~[~ex~and~]~H;~clear...] 0. secs (0.u,0.s) +Chars 2393 - 2406 [(induction~H1).] 0. secs (0.u,0.s) Chars 2413 - 2414 [+] 0. secs (0.u,0.s) Chars 2415 - 2429 [constructor~1.] 0. secs (0.u,0.s) -Chars 2430 - 2452 [eexists;~split;~eauto.] 0.007 secs (0.007u,0.s) -Chars 2453 - 2475 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 2476 - 2488 [reflexivity.] 0. secs (0.u,0.s) +Chars 2430 - 2452 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 2453 - 2475 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 2476 - 2488 [reflexivity.] 0.011 secs (0.01u,0.s) Chars 2495 - 2496 [+] 0. secs (0.u,0.s) -Chars 2497 - 2531 [econstructor~2;~repeat~red;~ea...] 0. secs (0.u,0.s) -Chars 2540 - 2562 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 2563 - 2591 [eexists;~split;~reflexivity.] 0. secs (0.u,0.s) +Chars 2497 - 2531 [(econstructor~2;~repeat~red;~e...] 0.001 secs (0.001u,0.s) +Chars 2540 - 2562 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 2563 - 2591 [(eexists;~split;~reflexivity).] 0. secs (0.u,0.s) Chars 2596 - 2597 [-] 0. secs (0.u,0.s) -Chars 2598 - 2619 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 2626 - 2686 [induction~H;~repeat~red~in~H;~...] 0. secs (0.u,0.s) +Chars 2598 - 2619 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) +Chars 2626 - 2686 [(induction~H;~repeat~red~in~H;...] 0. secs (0.u,0.s) Chars 2693 - 2694 [+] 0. secs (0.u,0.s) -Chars 2695 - 2756 [destruct~x;~destruct~H2~as~(?,...] 0. secs (0.u,0.s) -Chars 2765 - 2787 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2695 - 2756 [(destruct~x;~destruct~H2~as~(?...] 0.001 secs (0.001u,0.s) +Chars 2765 - 2787 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 2788 - 2802 [constructor~1.] 0. secs (0.u,0.s) Chars 2803 - 2808 [auto.] 0. secs (0.u,0.s) Chars 2815 - 2816 [+] 0. secs (0.u,0.s) -Chars 2817 - 2888 [destruct~x;~destruct~H3~as~(?,...] 0. secs (0.u,0.s) -Chars 2897 - 2947 [decompose~[~ex~and~]~IHiter_Pr...] 0. secs (0.u,0.s) -Chars 2956 - 2984 [inversion~H;~clear~H;~subst.] 0. secs (0.u,0.s) -Chars 2993 - 3015 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3016 - 3038 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 3041 - 3045 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2817 - 2888 [(destruct~x;~destruct~H3~as~(?...] 0.001 secs (0.001u,0.s) +Chars 2897 - 2947 [(decompose~[~ex~and~]~IHiter_P...] 0. secs (0.u,0.s) +Chars 2956 - 2984 [(inversion~H;~clear~H;~subst).] 0. secs (0.u,0.s) +Chars 2993 - 3015 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3016 - 3038 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 3041 - 3045 [Qed.] 0.005 secs (0.005u,0.s) Chars 3049 - 3123 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 3126 - 3132 [Proof.] 0. secs (0.u,0.s) -Chars 3137 - 3169 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 3137 - 3169 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) Chars 3174 - 3175 [-] 0. secs (0.u,0.s) -Chars 3176 - 3215 [induction~H;~destruct~H~as~(?,...] 0. secs (0.u,0.s) +Chars 3176 - 3215 [(induction~H;~destruct~H~as~(?...] 0. secs (0.u,0.s) Chars 3222 - 3223 [+] 0. secs (0.u,0.s) -Chars 3224 - 3253 [destruct~x;~repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 3224 - 3253 [(destruct~x;~repeat~red~in~H0).] 0. secs (0.u,0.s) Chars 3262 - 3263 [*] 0. secs (0.u,0.s) -Chars 3264 - 3286 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3287 - 3305 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3306 - 3328 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3264 - 3286 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3287 - 3305 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 3306 - 3328 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3329 - 3341 [reflexivity.] 0. secs (0.u,0.s) Chars 3350 - 3351 [*] 0. secs (0.u,0.s) -Chars 3352 - 3372 [inversion~H0;~subst.] 0. secs (0.u,0.s) -Chars 3373 - 3395 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3396 - 3414 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3352 - 3372 [(inversion~H0;~subst).] 0. secs (0.u,0.s) +Chars 3373 - 3395 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3396 - 3414 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 3421 - 3422 [+] 0. secs (0.u,0.s) -Chars 3423 - 3470 [destruct~x;~repeat~red~in~H1;~...] 0. secs (0.u,0.s) -Chars 3479 - 3515 [destruct~IHiter_Prop~as~(?,~(?...] 0. secs (0.u,0.s) -Chars 3516 - 3550 [destruct~x;~eexists;~split;~ea...] 0. secs (0.u,0.s) +Chars 3423 - 3470 [(destruct~x;~repeat~red~in~H1;...] 0. secs (0.u,0.s) +Chars 3479 - 3515 [(destruct~IHiter_Prop~as~(?,~(...] 0. secs (0.u,0.s) +Chars 3516 - 3550 [(destruct~x;~eexists;~split;~e...] 0.001 secs (0.001u,0.s) Chars 3559 - 3560 [*] 0. secs (0.u,0.s) -Chars 3561 - 3583 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 3584 - 3606 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3561 - 3583 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 3584 - 3606 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3615 - 3616 [*] 0. secs (0.u,0.s) -Chars 3617 - 3634 [repeat~red~in~H3.] 0. secs (0.u,0.s) +Chars 3617 - 3634 [(repeat~red~in~H3).] 0. secs (0.u,0.s) Chars 3635 - 3641 [subst.] 0. secs (0.u,0.s) -Chars 3642 - 3653 [repeat~red.] 0. secs (0.u,0.s) +Chars 3642 - 3653 [(repeat~red).] 0. secs (0.u,0.s) Chars 3654 - 3668 [constructor~1.] 0. secs (0.u,0.s) -Chars 3669 - 3691 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3669 - 3691 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3696 - 3697 [-] 0. secs (0.u,0.s) -Chars 3698 - 3724 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 3725 - 3755 [destruct~x0;~repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 3698 - 3724 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) +Chars 3725 - 3755 [(destruct~x0;~repeat~red~in~H0).] 0. secs (0.u,0.s) Chars 3762 - 3763 [+] 0. secs (0.u,0.s) Chars 3764 - 3788 [generalize~dependent~a0.] 0. secs (0.u,0.s) -Chars 3789 - 3837 [induction~H0;~intros;~destruct...] 0. secs (0.u,0.s) +Chars 3789 - 3837 [(induction~H0;~intros;~destruc...] 0. secs (0.u,0.s) Chars 3846 - 3847 [*] 0. secs (0.u,0.s) -Chars 3848 - 3859 [destruct~x.] 0. secs (0.u,0.s) +Chars 3848 - 3859 [(destruct~x).] 0. secs (0.u,0.s) Chars 3870 - 3872 [--] 0. secs (0.u,0.s) -Chars 3873 - 3895 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 3896 - 3918 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3873 - 3895 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 3896 - 3918 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3932 - 3946 [constructor~1.] 0. secs (0.u,0.s) -Chars 3947 - 3969 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3947 - 3969 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3970 - 3982 [reflexivity.] 0. secs (0.u,0.s) Chars 3993 - 3995 [--] 0. secs (0.u,0.s) -Chars 3996 - 4026 [inversion~H1;~clear~H1;~subst.] 0. secs (0.u,0.s) +Chars 3996 - 4026 [(inversion~H1;~clear~H1;~subst).] 0. secs (0.u,0.s) Chars 4027 - 4041 [constructor~1.] 0. secs (0.u,0.s) -Chars 4042 - 4064 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 4042 - 4064 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 4073 - 4074 [*] 0. secs (0.u,0.s) -Chars 4075 - 4104 [destruct~x;~try~inversion~H2.] 0. secs (0.u,0.s) -Chars 4115 - 4137 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 4075 - 4104 [(destruct~x;~try~inversion~H2).] 0. secs (0.u,0.s) +Chars 4115 - 4137 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) Chars 4138 - 4142 [2:~{] 0. secs (0.u,0.s) -Chars 4143 - 4161 [apply~IHiter_Prop.] 0. secs (0.u,0.s) -Chars 4162 - 4171 [apply~H2.] 0. secs (0.u,0.s) +Chars 4143 - 4161 [(apply~IHiter_Prop).] 0. secs (0.u,0.s) +Chars 4162 - 4171 [(apply~H2).] 0. secs (0.u,0.s) Chars 4172 - 4173 [}] 0. secs (0.u,0.s) -Chars 4184 - 4206 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 4184 - 4206 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 4213 - 4214 [+] 0. secs (0.u,0.s) Chars 4215 - 4221 [subst.] 0. secs (0.u,0.s) Chars 4222 - 4236 [constructor~1.] 0. secs (0.u,0.s) -Chars 4237 - 4259 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 4237 - 4259 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 4260 - 4272 [reflexivity.] 0. secs (0.u,0.s) -Chars 4275 - 4279 [Qed.] 0.016 secs (0.016u,0.s) +Chars 4275 - 4279 [Qed.] 0.023 secs (0.023u,0.s) Chars 4283 - 4362 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 4365 - 4371 [Proof.] 0. secs (0.u,0.s) -Chars 4376 - 4408 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) +Chars 4376 - 4408 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) Chars 4413 - 4414 [-] 0. secs (0.u,0.s) -Chars 4415 - 4427 [induction~H.] 0. secs (0.u,0.s) +Chars 4415 - 4427 [(induction~H).] 0. secs (0.u,0.s) Chars 4434 - 4435 [+] 0. secs (0.u,0.s) -Chars 4436 - 4453 [remember~(inr~r).] 0. secs (0.u,0.s) +Chars 4436 - 4453 [(remember~(inr~r)).] 0. secs (0.u,0.s) Chars 4454 - 4477 [generalize~dependent~r.] 0. secs (0.u,0.s) -Chars 4478 - 4505 [induction~H;~intros;~subst.] 0. secs (0.u,0.s) +Chars 4478 - 4505 [(induction~H;~intros;~subst).] 0.001 secs (0.001u,0.s) Chars 4514 - 4515 [*] 0. secs (0.u,0.s) Chars 4516 - 4530 [constructor~1.] 0. secs (0.u,0.s) -Chars 4531 - 4566 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4531 - 4566 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) Chars 4575 - 4576 [*] 0. secs (0.u,0.s) Chars 4577 - 4592 [econstructor~2.] 0. secs (0.u,0.s) Chars 4593 - 4597 [2:~{] 0. secs (0.u,0.s) -Chars 4598 - 4622 [apply~IHiter_Prop;~auto.] 0. secs (0.u,0.s) +Chars 4598 - 4622 [(apply~IHiter_Prop;~auto).] 0. secs (0.u,0.s) Chars 4623 - 4624 [}] 0. secs (0.u,0.s) -Chars 4635 - 4670 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4635 - 4670 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) Chars 4677 - 4678 [+] 0. secs (0.u,0.s) -Chars 4679 - 4697 [remember~(inl~i').] 0. secs (0.u,0.s) +Chars 4679 - 4697 [(remember~(inl~i')).] 0. secs (0.u,0.s) Chars 4698 - 4722 [generalize~dependent~i'.] 0. secs (0.u,0.s) -Chars 4723 - 4750 [induction~H;~intros;~subst.] 0.001 secs (0.001u,0.s) +Chars 4723 - 4750 [(induction~H;~intros;~subst).] 0.001 secs (0.001u,0.s) Chars 4759 - 4760 [*] 0. secs (0.u,0.s) -Chars 4761 - 4783 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 4784 - 4819 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4761 - 4783 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 4784 - 4819 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) Chars 4828 - 4829 [*] 0. secs (0.u,0.s) Chars 4830 - 4845 [econstructor~2.] 0. secs (0.u,0.s) Chars 4846 - 4850 [2:~{] 0. secs (0.u,0.s) -Chars 4851 - 4877 [eapply~IHiter_Prop;~eauto.] 0. secs (0.u,0.s) +Chars 4851 - 4877 [(eapply~IHiter_Prop;~eauto).] 0. secs (0.u,0.s) Chars 4878 - 4879 [}] 0. secs (0.u,0.s) -Chars 4890 - 4925 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) +Chars 4890 - 4925 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) Chars 4930 - 4931 [-] 0. secs (0.u,0.s) -Chars 4932 - 4944 [induction~H.] 0. secs (0.u,0.s) +Chars 4932 - 4944 [(induction~H).] 0. secs (0.u,0.s) Chars 4951 - 4952 [+] 0. secs (0.u,0.s) -Chars 4953 - 4979 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 4980 - 5039 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) +Chars 4953 - 4979 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) +Chars 4980 - 5039 [(destruct~x~as~[?|~[?|~?]];~in...] 0.001 secs (0.001u,0.s) Chars 5048 - 5062 [constructor~1.] 0. secs (0.u,0.s) Chars 5063 - 5077 [constructor~1.] 0. secs (0.u,0.s) Chars 5078 - 5083 [auto.] 0. secs (0.u,0.s) Chars 5090 - 5091 [+] 0. secs (0.u,0.s) -Chars 5092 - 5118 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 5127 - 5186 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) +Chars 5092 - 5118 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) +Chars 5127 - 5186 [(destruct~x~as~[?|~[?|~?]];~in...] 0.001 secs (0.001u,0.s) Chars 5195 - 5196 [*] 0. secs (0.u,0.s) -Chars 5197 - 5218 [destruct~IHiter_Prop.] 0. secs (0.u,0.s) +Chars 5197 - 5218 [(destruct~IHiter_Prop).] 0. secs (0.u,0.s) Chars 5229 - 5231 [--] 0. secs (0.u,0.s) Chars 5232 - 5246 [constructor~1.] 0. secs (0.u,0.s) -Chars 5247 - 5269 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5247 - 5269 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) Chars 5280 - 5282 [--] 0. secs (0.u,0.s) -Chars 5283 - 5305 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 5306 - 5328 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5283 - 5305 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 5306 - 5328 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) Chars 5337 - 5338 [*] 0. secs (0.u,0.s) -Chars 5339 - 5361 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5339 - 5361 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) Chars 5362 - 5376 [constructor~1.] 0. secs (0.u,0.s) -Chars 5377 - 5385 [apply~H.] 0. secs (0.u,0.s) -Chars 5388 - 5392 [Qed.] 0.004 secs (0.004u,0.s) +Chars 5377 - 5385 [(apply~H).] 0. secs (0.u,0.s) +Chars 5388 - 5392 [Qed.] 0.006 secs (0.006u,0.s) Chars 5396 - 5462 [#[global]~Instance~Iterative_P...] 0. secs (0.u,0.s) Chars 5465 - 5471 [Proof.] 0. secs (0.u,0.s) -Chars 5476 - 5507 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 5476 - 5507 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 5510 - 5514 [Qed.] 0. secs (0.u,0.s) Chars 5516 - 5525 [End~prop.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadState.v.timing b/theories/Basics/MonadState.v.timing index c182b133..fa002b97 100644 --- a/theories/Basics/MonadState.v.timing +++ b/theories/Basics/MonadState.v.timing @@ -1,6 +1,6 @@ -Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.003u,0.002s) +Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) Chars 73 - 122 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.009 secs (0.007u,0.002s) +Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.012 secs (0.009u,0.002s) Chars 271 - 305 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 306 - 326 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 327 - 354 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -20,68 +20,68 @@ Chars 693 - 777 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 780 - 786 [Proof.] 0. secs (0.u,0.s) Chars 789 - 801 [constructor.] 0. secs (0.u,0.s) Chars 804 - 805 [-] 0. secs (0.u,0.s) -Chars 806 - 817 [repeat~red.] 0. secs (0.u,0.s) +Chars 806 - 817 [(repeat~red).] 0. secs (0.u,0.s) Chars 822 - 834 [reflexivity.] 0. secs (0.u,0.s) Chars 837 - 838 [-] 0. secs (0.u,0.s) -Chars 839 - 850 [repeat~red.] 0. secs (0.u,0.s) -Chars 851 - 858 [intros.] 0. secs (0.u,0.s) +Chars 839 - 850 [(repeat~red).] 0. secs (0.u,0.s) +Chars 851 - 858 [(intros).] 0. secs (0.u,0.s) Chars 859 - 868 [symmetry.] 0. secs (0.u,0.s) -Chars 869 - 877 [apply~H.] 0. secs (0.u,0.s) +Chars 869 - 877 [(apply~H).] 0. secs (0.u,0.s) Chars 880 - 881 [-] 0. secs (0.u,0.s) -Chars 882 - 893 [repeat~red.] 0. secs (0.u,0.s) -Chars 894 - 901 [intros.] 0. secs (0.u,0.s) -Chars 902 - 923 [etransitivity;~eauto.] 0. secs (0.u,0.s) -Chars 924 - 932 [apply~H.] 0. secs (0.u,0.s) -Chars 934 - 943 [apply~H0.] 0. secs (0.u,0.s) +Chars 882 - 893 [(repeat~red).] 0. secs (0.u,0.s) +Chars 894 - 901 [(intros).] 0. secs (0.u,0.s) +Chars 902 - 923 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 924 - 932 [(apply~H).] 0. secs (0.u,0.s) +Chars 934 - 943 [(apply~H0).] 0. secs (0.u,0.s) Chars 946 - 950 [Qed.] 0. secs (0.u,0.s) Chars 954 - 1013 [Instance~MonadLawsE_stateTM~:~...] 0. secs (0.u,0.s) Chars 1016 - 1022 [Proof.] 0. secs (0.u,0.s) Chars 1025 - 1037 [constructor.] 0. secs (0.u,0.s) Chars 1040 - 1041 [-] 0. secs (0.u,0.s) -Chars 1042 - 1046 [cbn.] 0. secs (0.u,0.s) -Chars 1047 - 1062 [intros~a~b~f~x.] 0. secs (0.u,0.s) -Chars 1067 - 1078 [repeat~red.] 0. secs (0.u,0.s) -Chars 1080 - 1089 [intros~s.] 0. secs (0.u,0.s) -Chars 1094 - 1113 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 1042 - 1046 [(cbn).] 0. secs (0.u,0.s) +Chars 1047 - 1062 [(intros~a~b~f~x).] 0. secs (0.u,0.s) +Chars 1067 - 1078 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1080 - 1089 [(intros~s).] 0. secs (0.u,0.s) +Chars 1094 - 1113 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) Chars 1129 - 1130 [-] 0. secs (0.u,0.s) -Chars 1131 - 1135 [cbn.] 0. secs (0.u,0.s) -Chars 1136 - 1147 [intros~a~x.] 0. secs (0.u,0.s) -Chars 1152 - 1163 [repeat~red.] 0. secs (0.u,0.s) -Chars 1164 - 1173 [intros~s.] 0. secs (0.u,0.s) -Chars 1178 - 1279 [assert~~(EQM~_~(bind~(x~s)~(fu...] 0. secs (0.u,0.s) +Chars 1131 - 1135 [(cbn).] 0. secs (0.u,0.s) +Chars 1136 - 1147 [(intros~a~x).] 0. secs (0.u,0.s) +Chars 1152 - 1163 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1164 - 1173 [(intros~s).] 0. secs (0.u,0.s) +Chars 1178 - 1279 [(assert~~~(EQM~_~(bind~(x~s)~(...] 0. secs (0.u,0.s) Chars 1284 - 1285 [{] 0. secs (0.u,0.s) -Chars 1286 - 1304 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 1286 - 1304 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 1305 - 1317 [reflexivity.] 0. secs (0.u,0.s) -Chars 1318 - 1325 [intros.] 0. secs (0.u,0.s) -Chars 1327 - 1338 [repeat~red.] 0. secs (0.u,0.s) -Chars 1339 - 1364 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) +Chars 1318 - 1325 [(intros).] 0. secs (0.u,0.s) +Chars 1327 - 1338 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1339 - 1364 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) Chars 1365 - 1366 [}] 0. secs (0.u,0.s) -Chars 1371 - 1381 [rewrite~H.] 0. secs (0.u,0.s) -Chars 1386 - 1405 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) +Chars 1371 - 1381 [(rewrite~H).] 0.001 secs (0.u,0.s) +Chars 1386 - 1405 [(rewrite~bind_ret_r).] 0. secs (0.u,0.s) Chars 1406 - 1418 [reflexivity.] 0. secs (0.u,0.s) Chars 1421 - 1422 [-] 0. secs (0.u,0.s) -Chars 1423 - 1427 [cbn.] 0. secs (0.u,0.s) -Chars 1428 - 1447 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) -Chars 1452 - 1463 [repeat~red.] 0. secs (0.u,0.s) -Chars 1464 - 1473 [intros~s.] 0. secs (0.u,0.s) -Chars 1478 - 1496 [rewrite~bind_bind.] 0.001 secs (0.u,0.s) -Chars 1501 - 1519 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 1423 - 1427 [(cbn).] 0. secs (0.u,0.s) +Chars 1428 - 1447 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) +Chars 1452 - 1463 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1464 - 1473 [(intros~s).] 0. secs (0.u,0.s) +Chars 1478 - 1496 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 1501 - 1519 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 1524 - 1525 [+] 0. secs (0.u,0.s) Chars 1526 - 1538 [reflexivity.] 0. secs (0.u,0.s) Chars 1543 - 1544 [+] 0. secs (0.u,0.s) Chars 1545 - 1557 [reflexivity.] 0. secs (0.u,0.s) Chars 1560 - 1561 [-] 0. secs (0.u,0.s) -Chars 1562 - 1573 [repeat~red.] 0. secs (0.u,0.s) -Chars 1574 - 1602 [intros~a~b~x~y~H~x0~y0~H0~s.] 0. secs (0.u,0.s) -Chars 1607 - 1625 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 1562 - 1573 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1574 - 1602 [(intros~a~b~x~y~H~x0~y0~H0~s).] 0. secs (0.u,0.s) +Chars 1607 - 1625 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 1630 - 1631 [+] 0. secs (0.u,0.s) -Chars 1632 - 1640 [apply~H.] 0. secs (0.u,0.s) +Chars 1632 - 1640 [(apply~H).] 0. secs (0.u,0.s) Chars 1645 - 1646 [+] 0. secs (0.u,0.s) -Chars 1647 - 1658 [repeat~red.] 0. secs (0.u,0.s) -Chars 1665 - 1677 [destruct~a0.] 0. secs (0.u,0.s) -Chars 1684 - 1693 [apply~H0.] 0. secs (0.u,0.s) -Chars 1696 - 1700 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1647 - 1658 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1665 - 1677 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 1684 - 1693 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1696 - 1700 [Qed.] 0.003 secs (0.002u,0.s) Chars 1704 - 1739 [Context~{IM~:~Iter~(Kleisli~M)...] 0. secs (0.u,0.s) Chars 1742 - 1782 [Context~{CM~:~Iterative~(Kleis...] 0. secs (0.u,0.s) Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0. secs (0.u,0.s) @@ -91,310 +91,310 @@ Chars 2258 - 2377 [Lemma~internalize_eq~{a~b~:~Ty...] 0. secs (0.u,0.s) Chars 2380 - 2386 [Proof.] 0. secs (0.u,0.s) Chars 2391 - 2397 [split.] 0. secs (0.u,0.s) Chars 2402 - 2403 [-] 0. secs (0.u,0.s) -Chars 2404 - 2411 [intros.] 0. secs (0.u,0.s) -Chars 2418 - 2429 [repeat~red.] 0. secs (0.u,0.s) -Chars 2430 - 2442 [destruct~a0.] 0.008 secs (0.008u,0.s) -Chars 2449 - 2468 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 2469 - 2473 [cbn.] 0. secs (0.u,0.s) -Chars 2475 - 2483 [apply~H.] 0. secs (0.u,0.s) +Chars 2404 - 2411 [(intros).] 0. secs (0.u,0.s) +Chars 2418 - 2429 [(repeat~red).] 0. secs (0.u,0.s) +Chars 2430 - 2442 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 2449 - 2468 [(unfold~internalize).] 0. secs (0.u,0.s) +Chars 2469 - 2473 [(cbn).] 0. secs (0.u,0.s) +Chars 2475 - 2483 [(apply~H).] 0. secs (0.u,0.s) Chars 2488 - 2489 [-] 0. secs (0.u,0.s) -Chars 2490 - 2497 [intros.] 0. secs (0.u,0.s) -Chars 2504 - 2515 [repeat~red.] 0. secs (0.u,0.s) -Chars 2516 - 2523 [intros.] 0. secs (0.u,0.s) -Chars 2530 - 2554 [unfold~internalize~in~H.] 0. secs (0.u,0.s) +Chars 2490 - 2497 [(intros).] 0. secs (0.u,0.s) +Chars 2504 - 2515 [(repeat~red).] 0.012 secs (0.011u,0.s) +Chars 2516 - 2523 [(intros).] 0. secs (0.u,0.s) +Chars 2530 - 2554 [(unfold~internalize~in~H).] 0. secs (0.u,0.s) Chars 2561 - 2585 [specialize~(H~(a1,~a0)).] 0. secs (0.u,0.s) -Chars 2592 - 2600 [apply~H.] 0. secs (0.u,0.s) +Chars 2592 - 2600 [(apply~H).] 0. secs (0.u,0.s) Chars 2603 - 2607 [Qed.] 0. secs (0.u,0.s) -Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0. secs (0.u,0.s) +Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0.001 secs (0.001u,0.s) Chars 2779 - 2785 [Proof.] 0. secs (0.u,0.s) -Chars 2790 - 2801 [repeat~red.] 0. secs (0.u,0.s) -Chars 2806 - 2818 [destruct~a0.] 0. secs (0.u,0.s) -Chars 2823 - 2827 [cbn.] 0. secs (0.u,0.s) -Chars 2832 - 2851 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 2856 - 2880 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 2885 - 2889 [cbn.] 0. secs (0.u,0.s) +Chars 2790 - 2801 [(repeat~red).] 0. secs (0.u,0.s) +Chars 2806 - 2818 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 2823 - 2827 [(cbn).] 0. secs (0.u,0.s) +Chars 2832 - 2851 [(unfold~internalize).] 0. secs (0.u,0.s) +Chars 2856 - 2880 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 2885 - 2889 [(cbn).] 0. secs (0.u,0.s) Chars 2894 - 2906 [reflexivity.] 0. secs (0.u,0.s) -Chars 2909 - 2913 [Qed.] 0. secs (0.u,0.s) -Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0. secs (0.u,0.s) +Chars 2909 - 2913 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 3092 - 3098 [Proof.] 0. secs (0.u,0.s) -Chars 3103 - 3114 [repeat~red.] 0. secs (0.u,0.s) -Chars 3119 - 3131 [destruct~a0.] 0. secs (0.u,0.s) -Chars 3136 - 3173 [unfold~internalize,~cat,~Cat_K...] 0. secs (0.u,0.s) -Chars 3174 - 3178 [cbn.] 0. secs (0.u,0.s) -Chars 3183 - 3207 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) +Chars 3103 - 3114 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3119 - 3131 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 3136 - 3173 [(unfold~internalize,~cat,~Cat_...] 0. secs (0.u,0.s) +Chars 3174 - 3178 [(cbn).] 0. secs (0.u,0.s) +Chars 3183 - 3207 [(apply~Proper_bind;~auto).] 0. secs (0.u,0.s) Chars 3212 - 3213 [-] 0. secs (0.u,0.s) Chars 3214 - 3226 [reflexivity.] 0. secs (0.u,0.s) Chars 3231 - 3232 [-] 0. secs (0.u,0.s) -Chars 3233 - 3244 [repeat~red.] 0. secs (0.u,0.s) -Chars 3251 - 3263 [destruct~a1.] 0. secs (0.u,0.s) -Chars 3270 - 3282 [unfold~pure.] 0. secs (0.u,0.s) +Chars 3233 - 3244 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3251 - 3263 [(destruct~a1).] 0. secs (0.u,0.s) +Chars 3270 - 3282 [(unfold~pure).] 0. secs (0.u,0.s) Chars 3283 - 3295 [reflexivity.] 0. secs (0.u,0.s) -Chars 3298 - 3302 [Qed.] 0. secs (0.u,0.s) +Chars 3298 - 3302 [Qed.] 0.001 secs (0.001u,0.s) Chars 3307 - 3370 [#[global]~Instance~Iter_stateT...] 0. secs (0.u,0.s) Chars 3373 - 3379 [Proof.] 0. secs (0.u,0.s) -Chars 3384 - 3515 [exact~~~(fun~(a~b~:~Type)~(f~:...] 0. secs (0.u,0.s) +Chars 3384 - 3515 [exact~~(fun~(a~b~:~Type)~(f~:~...] 0. secs (0.u,0.s) Chars 3518 - 3526 [Defined.] 0. secs (0.u,0.s) Chars 3530 - 3670 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) Chars 3673 - 3679 [Proof.] 0. secs (0.u,0.s) -Chars 3684 - 3696 [destruct~CM.] 0. secs (0.u,0.s) -Chars 3701 - 3712 [repeat~red.] 0. secs (0.u,0.s) -Chars 3717 - 3739 [intros~a~b~x~y~H~a0~s.] 0. secs (0.u,0.s) -Chars 3744 - 3772 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 3777 - 3788 [repeat~red.] 0. secs (0.u,0.s) -Chars 3793 - 3805 [destruct~a1.] 0. secs (0.u,0.s) -Chars 3810 - 3814 [cbn.] 0. secs (0.u,0.s) -Chars 3819 - 3837 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 3684 - 3696 [(destruct~CM).] 0. secs (0.u,0.s) +Chars 3701 - 3712 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3717 - 3739 [(intros~a~b~x~y~H~a0~s).] 0. secs (0.u,0.s) +Chars 3744 - 3772 [(apply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 3777 - 3788 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3793 - 3805 [(destruct~a1).] 0. secs (0.u,0.s) +Chars 3810 - 3814 [(cbn).] 0. secs (0.u,0.s) +Chars 3819 - 3837 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 3842 - 3843 [-] 0. secs (0.u,0.s) -Chars 3844 - 3852 [apply~H.] 0. secs (0.u,0.s) +Chars 3844 - 3852 [(apply~H).] 0. secs (0.u,0.s) Chars 3857 - 3858 [-] 0. secs (0.u,0.s) -Chars 3859 - 3870 [repeat~red.] 0. secs (0.u,0.s) -Chars 3871 - 3912 [destruct~a2~as~[s'~[x1|~y1]];~...] 0. secs (0.u,0.s) +Chars 3859 - 3870 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3871 - 3912 [(destruct~a2~as~[s'~[x1|~y1]];...] 0. secs (0.u,0.s) Chars 3914 - 3918 [Qed.] 0.001 secs (0.001u,0.s) Chars 3922 - 3997 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 4000 - 4006 [Proof.] 0. secs (0.u,0.s) -Chars 4009 - 4021 [destruct~CM.] 0. secs (0.u,0.s) -Chars 4024 - 4042 [unfold~IterUnfold.] 0. secs (0.u,0.s) -Chars 4045 - 4058 [intros~a~b~f.] 0. secs (0.u,0.s) -Chars 4061 - 4072 [repeat~red.] 0. secs (0.u,0.s) -Chars 4075 - 4087 [intros~a0~s.] 0. secs (0.u,0.s) -Chars 4090 - 4114 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 4117 - 4143 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) -Chars 4146 - 4171 [rewrite~iterative_unfold.] 0.001 secs (0.001u,0.s) -Chars 4222 - 4246 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 4249 - 4255 [simpl.] 0. secs (0.u,0.s) -Chars 4258 - 4276 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) -Chars 4279 - 4297 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 4009 - 4021 [(destruct~CM).] 0. secs (0.u,0.s) +Chars 4024 - 4042 [(unfold~IterUnfold).] 0. secs (0.u,0.s) +Chars 4045 - 4058 [(intros~a~b~f).] 0. secs (0.u,0.s) +Chars 4061 - 4072 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4075 - 4087 [(intros~a0~s).] 0. secs (0.u,0.s) +Chars 4090 - 4114 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 4117 - 4143 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) +Chars 4146 - 4171 [(rewrite~iterative_unfold).] 0.002 secs (0.002u,0.s) +Chars 4222 - 4246 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 4249 - 4255 [(simpl).] 0. secs (0.u,0.s) +Chars 4258 - 4276 [(rewrite~bind_bind).] 0.003 secs (0.003u,0.s) +Chars 4279 - 4297 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 4300 - 4301 [+] 0. secs (0.u,0.s) Chars 4302 - 4314 [reflexivity.] 0. secs (0.u,0.s) Chars 4317 - 4318 [+] 0. secs (0.u,0.s) -Chars 4319 - 4330 [repeat~red.] 0. secs (0.u,0.s) -Chars 4331 - 4366 [destruct~a1~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) +Chars 4319 - 4330 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4331 - 4366 [(destruct~a1~as~[s'~[x|~y]];~s...] 0. secs (0.u,0.s) Chars 4371 - 4372 [*] 0. secs (0.u,0.s) -Chars 4373 - 4385 [unfold~pure.] 0. secs (0.u,0.s) -Chars 4386 - 4405 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 4373 - 4385 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 4386 - 4405 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 4412 - 4424 [reflexivity.] 0. secs (0.u,0.s) Chars 4429 - 4430 [*] 0. secs (0.u,0.s) -Chars 4431 - 4443 [unfold~pure.] 0. secs (0.u,0.s) -Chars 4444 - 4463 [rewrite~bind_ret_l.] 0.014 secs (0.013u,0.s) +Chars 4431 - 4443 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 4444 - 4463 [(rewrite~bind_ret_l).] 0.018 secs (0.018u,0.s) Chars 4470 - 4482 [reflexivity.] 0. secs (0.u,0.s) -Chars 4485 - 4489 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4485 - 4489 [Qed.] 0.004 secs (0.004u,0.s) Chars 4493 - 4570 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 4573 - 4579 [Proof.] 0. secs (0.u,0.s) -Chars 4584 - 4596 [destruct~CM.] 0. secs (0.u,0.s) -Chars 4601 - 4620 [unfold~IterNatural.] 0. secs (0.u,0.s) -Chars 4625 - 4642 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 4647 - 4658 [repeat~red.] 0. secs (0.u,0.s) -Chars 4663 - 4675 [intros~a0~s.] 0. secs (0.u,0.s) -Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.013 secs (0.013u,0.s) -Chars 4718 - 4746 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 4751 - 4762 [repeat~red.] 0. secs (0.u,0.s) -Chars 4767 - 4779 [destruct~a1.] 0. secs (0.u,0.s) -Chars 4784 - 4808 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 4813 - 4817 [cbn.] 0. secs (0.u,0.s) -Chars 4822 - 4841 [rewrite~!bind_bind.] 0.01 secs (0.008u,0.002s) -Chars 4846 - 4864 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 4584 - 4596 [(destruct~CM).] 0. secs (0.u,0.s) +Chars 4601 - 4620 [(unfold~IterNatural).] 0. secs (0.u,0.s) +Chars 4625 - 4642 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) +Chars 4647 - 4658 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4663 - 4675 [(intros~a0~s).] 0. secs (0.u,0.s) +Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.017 secs (0.017u,0.s) +Chars 4718 - 4746 [(apply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 4751 - 4762 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4767 - 4779 [(destruct~a1).] 0. secs (0.u,0.s) +Chars 4784 - 4808 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 4813 - 4817 [(cbn).] 0. secs (0.u,0.s) +Chars 4822 - 4841 [(rewrite~!bind_bind).] 0.016 secs (0.012u,0.003s) +Chars 4846 - 4864 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 4869 - 4870 [-] 0. secs (0.u,0.s) Chars 4871 - 4883 [reflexivity.] 0. secs (0.u,0.s) Chars 4888 - 4889 [-] 0. secs (0.u,0.s) -Chars 4890 - 4901 [repeat~red.] 0. secs (0.u,0.s) -Chars 4902 - 4937 [destruct~a2~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) +Chars 4890 - 4901 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4902 - 4937 [(destruct~a2~as~[s'~[x|~y]];~s...] 0.001 secs (0.001u,0.s) Chars 4944 - 4945 [+] 0. secs (0.u,0.s) -Chars 4946 - 4958 [unfold~pure.] 0. secs (0.u,0.s) -Chars 4959 - 4978 [rewrite~bind_ret_l.] 0.003 secs (0.002u,0.s) -Chars 4987 - 4991 [cbn.] 0. secs (0.u,0.s) -Chars 4992 - 5016 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 5017 - 5021 [cbn.] 0. secs (0.u,0.s) -Chars 5030 - 5048 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 5057 - 5076 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 5085 - 5104 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 5113 - 5117 [cbn.] 0. secs (0.u,0.s) -Chars 5126 - 5149 [unfold~id_,~Id_Kleisli.] 0. secs (0.u,0.s) -Chars 5150 - 5162 [unfold~pure.] 0. secs (0.u,0.s) -Chars 5163 - 5182 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 4946 - 4958 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 4959 - 4978 [(rewrite~bind_ret_l).] 0.004 secs (0.003u,0.001s) +Chars 4987 - 4991 [(cbn).] 0. secs (0.u,0.s) +Chars 4992 - 5016 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 5017 - 5021 [(cbn).] 0. secs (0.u,0.s) +Chars 5030 - 5048 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 5057 - 5076 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) +Chars 5085 - 5104 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 5113 - 5117 [(cbn).] 0. secs (0.u,0.s) +Chars 5126 - 5149 [(unfold~id_,~Id_Kleisli).] 0. secs (0.u,0.s) +Chars 5150 - 5162 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 5163 - 5182 [(rewrite~bind_ret_l).] 0.002 secs (0.001u,0.s) Chars 5183 - 5195 [reflexivity.] 0. secs (0.u,0.s) Chars 5202 - 5203 [+] 0. secs (0.u,0.s) -Chars 5204 - 5216 [unfold~pure.] 0. secs (0.u,0.s) -Chars 5217 - 5236 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 5245 - 5249 [cbn.] 0. secs (0.u,0.s) -Chars 5250 - 5274 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 5275 - 5279 [cbn.] 0. secs (0.u,0.s) -Chars 5288 - 5306 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 5315 - 5333 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 5204 - 5216 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 5217 - 5236 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 5245 - 5249 [(cbn).] 0. secs (0.u,0.s) +Chars 5250 - 5274 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 5275 - 5279 [(cbn).] 0. secs (0.u,0.s) +Chars 5288 - 5306 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 5315 - 5333 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 5342 - 5343 [*] 0. secs (0.u,0.s) Chars 5344 - 5356 [reflexivity.] 0. secs (0.u,0.s) Chars 5365 - 5366 [*] 0. secs (0.u,0.s) -Chars 5367 - 5378 [repeat~red.] 0. secs (0.u,0.s) -Chars 5379 - 5391 [destruct~a2.] 0. secs (0.u,0.s) -Chars 5402 - 5406 [cbn.] 0. secs (0.u,0.s) -Chars 5417 - 5436 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 5367 - 5378 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5379 - 5391 [(destruct~a2).] 0. secs (0.u,0.s) +Chars 5402 - 5406 [(cbn).] 0. secs (0.u,0.s) +Chars 5417 - 5436 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 5437 - 5449 [reflexivity.] 0. secs (0.u,0.s) -Chars 5452 - 5456 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5452 - 5456 [Qed.] 0.009 secs (0.009u,0.s) Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0.001 secs (0.001u,0.s) Chars 5644 - 5650 [Proof.] 0. secs (0.u,0.s) Chars 5655 - 5667 [reflexivity.] 0. secs (0.u,0.s) Chars 5670 - 5674 [Qed.] 0. secs (0.u,0.s) Chars 5679 - 5798 [Lemma~eq2_to_eq1~:~~~forall~a~...] 0. secs (0.u,0.s) Chars 5801 - 5807 [Proof.] 0. secs (0.u,0.s) -Chars 5812 - 5833 [intros~a~b~f~g~x~s~H.] 0. secs (0.u,0.s) -Chars 5838 - 5846 [apply~H.] 0. secs (0.u,0.s) +Chars 5812 - 5833 [(intros~a~b~f~g~x~s~H).] 0. secs (0.u,0.s) +Chars 5838 - 5846 [(apply~H).] 0. secs (0.u,0.s) Chars 5849 - 5853 [Qed.] 0. secs (0.u,0.s) -Chars 5858 - 6115 [Lemma~iter_dinatural_helper~:~...] 0.001 secs (0.001u,0.s) +Chars 5858 - 6115 [Lemma~iter_dinatural_helper~:~...] 0.002 secs (0.002u,0.s) Chars 6118 - 6124 [Proof.] 0. secs (0.u,0.s) -Chars 6129 - 6141 [destruct~CM.] 0. secs (0.u,0.s) -Chars 6146 - 6163 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 6168 - 6179 [repeat~red.] 0. secs (0.u,0.s) -Chars 6184 - 6196 [destruct~a0.] 0. secs (0.u,0.s) -Chars 6201 - 6238 [unfold~cat,~Cat_Kleisli,~inter...] 0. secs (0.u,0.s) -Chars 6243 - 6247 [cbn.] 0. secs (0.u,0.s) -Chars 6252 - 6277 [repeat~rewrite~bind_bind.] 0.006 secs (0.006u,0.s) -Chars 6282 - 6300 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 6129 - 6141 [(destruct~CM).] 0. secs (0.u,0.s) +Chars 6146 - 6163 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) +Chars 6168 - 6179 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6184 - 6196 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 6201 - 6238 [(unfold~cat,~Cat_Kleisli,~inte...] 0. secs (0.u,0.s) +Chars 6243 - 6247 [(cbn).] 0. secs (0.u,0.s) +Chars 6252 - 6277 [(repeat~rewrite~bind_bind).] 0.009 secs (0.009u,0.s) +Chars 6282 - 6300 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 6305 - 6306 [-] 0. secs (0.u,0.s) Chars 6307 - 6319 [reflexivity.] 0. secs (0.u,0.s) Chars 6324 - 6325 [-] 0. secs (0.u,0.s) -Chars 6326 - 6337 [repeat~red.] 0. secs (0.u,0.s) -Chars 6344 - 6372 [destruct~a1~as~[s'~[x|~y]].] 0. secs (0.u,0.s) +Chars 6326 - 6337 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6344 - 6372 [(destruct~a1~as~[s'~[x|~y]]).] 0. secs (0.u,0.s) Chars 6379 - 6380 [+] 0. secs (0.u,0.s) -Chars 6381 - 6393 [unfold~pure.] 0. secs (0.u,0.s) -Chars 6402 - 6421 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 6430 - 6476 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 6381 - 6393 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 6402 - 6421 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 6430 - 6476 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) Chars 6485 - 6497 [reflexivity.] 0. secs (0.u,0.s) Chars 6504 - 6505 [+] 0. secs (0.u,0.s) -Chars 6506 - 6518 [unfold~pure.] 0. secs (0.u,0.s) -Chars 6519 - 6538 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 6547 - 6593 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) -Chars 6604 - 6608 [cbn.] 0. secs (0.u,0.s) -Chars 6619 - 6638 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 6506 - 6518 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 6519 - 6538 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 6547 - 6593 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) +Chars 6604 - 6608 [(cbn).] 0. secs (0.u,0.s) +Chars 6619 - 6638 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 6639 - 6651 [reflexivity.] 0. secs (0.u,0.s) -Chars 6654 - 6658 [Qed.] 0.004 secs (0.004u,0.s) +Chars 6654 - 6658 [Qed.] 0.006 secs (0.006u,0.s) Chars 6663 - 6744 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 6747 - 6753 [Proof.] 0. secs (0.u,0.s) -Chars 6758 - 6770 [destruct~CM.] 0. secs (0.u,0.s) -Chars 6775 - 6796 [unfold~IterDinatural.] 0. secs (0.u,0.s) -Chars 6801 - 6812 [repeat~red.] 0. secs (0.u,0.s) -Chars 6817 - 6840 [intros~a~b~c~f~g~a0~a1.] 0. secs (0.u,0.s) -Chars 6845 - 6871 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) -Chars 6876 - 6896 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 6901 - 6930 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 6935 - 6963 [apply~iter_dinatural_helper.] 0. secs (0.u,0.s) -Chars 6968 - 6996 [rewrite~iterative_dinatural.] 0.004 secs (0.004u,0.s) -Chars 7001 - 7005 [cbn.] 0. secs (0.u,0.s) -Chars 7010 - 7034 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 7039 - 7057 [rewrite~bind_bind.] 0.003 secs (0.003u,0.s) -Chars 7062 - 7081 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 7082 - 7086 [cbn.] 0. secs (0.u,0.s) -Chars 7091 - 7109 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 6758 - 6770 [(destruct~CM).] 0. secs (0.u,0.s) +Chars 6775 - 6796 [(unfold~IterDinatural).] 0. secs (0.u,0.s) +Chars 6801 - 6812 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6817 - 6840 [(intros~a~b~c~f~g~a0~a1).] 0. secs (0.u,0.s) +Chars 6845 - 6871 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) +Chars 6876 - 6896 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 6901 - 6930 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 6935 - 6963 [(apply~iter_dinatural_helper).] 0. secs (0.u,0.s) +Chars 6968 - 6996 [(rewrite~iterative_dinatural).] 0.004 secs (0.004u,0.s) +Chars 7001 - 7005 [(cbn).] 0. secs (0.u,0.s) +Chars 7010 - 7034 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 7039 - 7057 [(rewrite~bind_bind).] 0.007 secs (0.007u,0.s) +Chars 7062 - 7081 [(unfold~internalize).] 0. secs (0.u,0.s) +Chars 7082 - 7086 [(cbn).] 0. secs (0.u,0.s) +Chars 7091 - 7109 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 7114 - 7115 [-] 0. secs (0.u,0.s) Chars 7116 - 7128 [reflexivity.] 0. secs (0.u,0.s) Chars 7133 - 7134 [-] 0. secs (0.u,0.s) -Chars 7135 - 7146 [repeat~red.] 0. secs (0.u,0.s) -Chars 7153 - 7180 [destruct~a2~as~[s~[x|~y]].] 0. secs (0.u,0.s) +Chars 7135 - 7146 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7153 - 7180 [(destruct~a2~as~[s~[x|~y]]).] 0. secs (0.u,0.s) Chars 7187 - 7188 [+] 0. secs (0.u,0.s) -Chars 7189 - 7201 [unfold~pure.] 0. secs (0.u,0.s) -Chars 7210 - 7229 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 7238 - 7242 [cbn.] 0. secs (0.u,0.s) -Chars 7251 - 7280 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 7289 - 7300 [repeat~red.] 0. secs (0.u,0.s) -Chars 7309 - 7321 [destruct~a2.] 0. secs (0.u,0.s) -Chars 7330 - 7334 [cbn.] 0. secs (0.u,0.s) -Chars 7335 - 7354 [rewrite~!bind_bind.] 0.006 secs (0.006u,0.s) -Chars 7363 - 7381 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 7189 - 7201 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 7210 - 7229 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 7238 - 7242 [(cbn).] 0. secs (0.u,0.s) +Chars 7251 - 7280 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 7289 - 7300 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7309 - 7321 [(destruct~a2).] 0. secs (0.u,0.s) +Chars 7330 - 7334 [(cbn).] 0. secs (0.u,0.s) +Chars 7335 - 7354 [(rewrite~!bind_bind).] 0.009 secs (0.009u,0.s) +Chars 7363 - 7381 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 7390 - 7391 [*] 0. secs (0.u,0.s) Chars 7392 - 7404 [reflexivity.] 0. secs (0.u,0.s) Chars 7413 - 7414 [*] 0. secs (0.u,0.s) -Chars 7415 - 7426 [repeat~red.] 0. secs (0.u,0.s) -Chars 7437 - 7466 [destruct~a2~as~[s'~[x'|~y]].] 0. secs (0.u,0.s) +Chars 7415 - 7426 [(repeat~red).] 0. secs (0.u,0.s) +Chars 7437 - 7466 [(destruct~a2~as~[s'~[x'|~y]]).] 0. secs (0.u,0.s) Chars 7477 - 7479 [**] 0. secs (0.u,0.s) -Chars 7480 - 7484 [cbn.] 0. secs (0.u,0.s) -Chars 7486 - 7505 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7506 - 7552 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 7480 - 7484 [(cbn).] 0. secs (0.u,0.s) +Chars 7486 - 7505 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 7506 - 7552 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) Chars 7566 - 7578 [reflexivity.] 0. secs (0.u,0.s) Chars 7589 - 7591 [**] 0. secs (0.u,0.s) -Chars 7592 - 7596 [cbn.] 0. secs (0.u,0.s) -Chars 7598 - 7617 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7618 - 7664 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) -Chars 7678 - 7697 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 7592 - 7596 [(cbn).] 0. secs (0.u,0.s) +Chars 7598 - 7617 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 7618 - 7664 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) +Chars 7678 - 7697 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 7698 - 7710 [reflexivity.] 0. secs (0.u,0.s) Chars 7717 - 7718 [+] 0. secs (0.u,0.s) -Chars 7719 - 7731 [unfold~pure.] 0. secs (0.u,0.s) -Chars 7740 - 7759 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 7768 - 7772 [cbn.] 0. secs (0.u,0.s) +Chars 7719 - 7731 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 7740 - 7759 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 7768 - 7772 [(cbn).] 0. secs (0.u,0.s) Chars 7781 - 7793 [reflexivity.] 0. secs (0.u,0.s) -Chars 7798 - 7802 [Qed.] 0.009 secs (0.009u,0.s) +Chars 7798 - 7802 [Qed.] 0.014 secs (0.013u,0.s) Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 7893 - 7899 [Proof.] 0. secs (0.u,0.s) -Chars 7904 - 7916 [destruct~CM.] 0. secs (0.u,0.s) -Chars 7921 - 7943 [unfold~IterCodiagonal.] 0. secs (0.u,0.s) -Chars 7948 - 7961 [intros~a~b~f.] 0. secs (0.u,0.s) -Chars 7966 - 7992 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) -Chars 7997 - 8008 [repeat~red.] 0. secs (0.u,0.s) -Chars 8013 - 8020 [intros.] 0. secs (0.u,0.s) -Chars 8025 - 8045 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 8050 - 8079 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 8084 - 8110 [eapply~Proper_cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8116 - 8283 [assert~~(internalize~~~~~(fun~...] 0. secs (0.u,0.s) +Chars 7904 - 7916 [(destruct~CM).] 0. secs (0.u,0.s) +Chars 7921 - 7943 [(unfold~IterCodiagonal).] 0. secs (0.u,0.s) +Chars 7948 - 7961 [(intros~a~b~f).] 0. secs (0.u,0.s) +Chars 7966 - 7992 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) +Chars 7997 - 8008 [(repeat~red).] 0. secs (0.u,0.s) +Chars 8013 - 8020 [(intros).] 0. secs (0.u,0.s) +Chars 8025 - 8045 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 8050 - 8079 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 8084 - 8110 [(eapply~Proper_cat_Kleisli).] 0. secs (0.u,0.s) +Chars 8116 - 8283 [(assert~~~(internalize~~~~~~(f...] 0.001 secs (0.001u,0.s) Chars 8288 - 8289 [{] 0. secs (0.u,0.s) -Chars 8290 - 8301 [repeat~red.] 0. secs (0.u,0.s) -Chars 8308 - 8320 [destruct~a2.] 0. secs (0.u,0.s) -Chars 8327 - 8346 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 8353 - 8357 [cbn.] 0. secs (0.u,0.s) +Chars 8290 - 8301 [(repeat~red).] 0. secs (0.u,0.s) +Chars 8308 - 8320 [(destruct~a2).] 0. secs (0.u,0.s) +Chars 8327 - 8346 [(unfold~internalize).] 0. secs (0.u,0.s) +Chars 8353 - 8357 [(cbn).] 0. secs (0.u,0.s) Chars 8359 - 8371 [reflexivity.] 0. secs (0.u,0.s) Chars 8376 - 8377 [}] 0. secs (0.u,0.s) -Chars 8381 - 8389 [apply~H.] 0. secs (0.u,0.s) -Chars 8393 - 8405 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8409 - 8429 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 8434 - 8463 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 8467 - 8491 [apply~iterative_natural.] 0. secs (0.u,0.s) -Chars 8495 - 8524 [rewrite~iterative_codiagonal.] 0.003 secs (0.003u,0.s) -Chars 8528 - 8557 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 8561 - 8585 [rewrite~internalize_cat.] 0.005 secs (0.005u,0.s) -Chars 8645 - 8656 [repeat~red.] 0. secs (0.u,0.s) -Chars 8660 - 8672 [destruct~a2.] 0. secs (0.u,0.s) -Chars 8676 - 8700 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8701 - 8705 [cbn.] 0. secs (0.u,0.s) -Chars 8709 - 8734 [repeat~rewrite~bind_bind.] 0.012 secs (0.012u,0.s) -Chars 8738 - 8763 [unfold~internalize,~pure.] 0. secs (0.u,0.s) -Chars 8767 - 8771 [cbn.] 0. secs (0.u,0.s) -Chars 8775 - 8793 [apply~Proper_bind.] 0. secs (0.u,0.s) +Chars 8381 - 8389 [(apply~H).] 0. secs (0.u,0.s) +Chars 8393 - 8405 [reflexivity.] 0. secs (0.u,0.s) +Chars 8409 - 8429 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 8434 - 8463 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 8467 - 8491 [(apply~iterative_natural).] 0. secs (0.u,0.s) +Chars 8495 - 8524 [(rewrite~iterative_codiagonal).] 0.006 secs (0.006u,0.s) +Chars 8528 - 8557 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 8561 - 8585 [(rewrite~internalize_cat).] 0.007 secs (0.007u,0.s) +Chars 8645 - 8656 [(repeat~red).] 0. secs (0.u,0.s) +Chars 8660 - 8672 [(destruct~a2).] 0. secs (0.u,0.s) +Chars 8676 - 8700 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 8701 - 8705 [(cbn).] 0. secs (0.u,0.s) +Chars 8709 - 8734 [(repeat~rewrite~bind_bind).] 0.018 secs (0.018u,0.s) +Chars 8738 - 8763 [(unfold~internalize,~pure).] 0. secs (0.u,0.s) +Chars 8767 - 8771 [(cbn).] 0. secs (0.u,0.s) +Chars 8775 - 8793 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 8798 - 8799 [-] 0. secs (0.u,0.s) Chars 8800 - 8812 [reflexivity.] 0. secs (0.u,0.s) Chars 8817 - 8818 [-] 0. secs (0.u,0.s) -Chars 8819 - 8830 [repeat~red.] 0. secs (0.u,0.s) -Chars 8837 - 8871 [destruct~a3~as~[s'~[x|~[y|~z]]].] 0. secs (0.u,0.s) +Chars 8819 - 8830 [(repeat~red).] 0. secs (0.u,0.s) +Chars 8837 - 8871 [(destruct~a3~as~[s'~[x|~[y|~z]...] 0. secs (0.u,0.s) Chars 8878 - 8879 [+] 0. secs (0.u,0.s) -Chars 8880 - 8899 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 8908 - 8912 [cbn.] 0. secs (0.u,0.s) -Chars 8913 - 8942 [unfold~id_,~Id_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 8951 - 8970 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 8979 - 9003 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 9012 - 9030 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) -Chars 9039 - 9058 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 9067 - 9071 [cbn.] 0. secs (0.u,0.s) -Chars 9073 - 9104 [unfold~inl_,~Inl_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 9113 - 9132 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 8880 - 8899 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 8908 - 8912 [(cbn).] 0. secs (0.u,0.s) +Chars 8913 - 8942 [(unfold~id_,~Id_Kleisli,~pure).] 0. secs (0.u,0.s) +Chars 8951 - 8970 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 8979 - 9003 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 9012 - 9030 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 9039 - 9058 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 9067 - 9071 [(cbn).] 0. secs (0.u,0.s) +Chars 9073 - 9104 [(unfold~inl_,~Inl_Kleisli,~pure).] 0. secs (0.u,0.s) +Chars 9113 - 9132 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) Chars 9133 - 9145 [reflexivity.] 0. secs (0.u,0.s) Chars 9152 - 9153 [+] 0. secs (0.u,0.s) -Chars 9154 - 9173 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 9182 - 9186 [cbn.] 0. secs (0.u,0.s) -Chars 9195 - 9214 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 9223 - 9247 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 9256 - 9286 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 9287 - 9291 [cbn.] 0. secs (0.u,0.s) -Chars 9300 - 9331 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 9340 - 9359 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9154 - 9173 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 9182 - 9186 [(cbn).] 0. secs (0.u,0.s) +Chars 9195 - 9214 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 9223 - 9247 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 9256 - 9286 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 9287 - 9291 [(cbn).] 0. secs (0.u,0.s) +Chars 9300 - 9331 [(unfold~inr_,~Inr_Kleisli,~pure).] 0. secs (0.u,0.s) +Chars 9340 - 9359 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 9360 - 9372 [reflexivity.] 0. secs (0.u,0.s) Chars 9379 - 9380 [+] 0. secs (0.u,0.s) -Chars 9381 - 9400 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) -Chars 9409 - 9413 [cbn.] 0. secs (0.u,0.s) -Chars 9422 - 9441 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 9450 - 9474 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 9483 - 9513 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 9514 - 9518 [cbn.] 0. secs (0.u,0.s) -Chars 9527 - 9558 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 9567 - 9586 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9381 - 9400 [(rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) +Chars 9409 - 9413 [(cbn).] 0. secs (0.u,0.s) +Chars 9422 - 9441 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 9450 - 9474 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) +Chars 9483 - 9513 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 9514 - 9518 [(cbn).] 0. secs (0.u,0.s) +Chars 9527 - 9558 [(unfold~inr_,~Inr_Kleisli,~pure).] 0. secs (0.u,0.s) +Chars 9567 - 9586 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 9595 - 9607 [reflexivity.] 0. secs (0.u,0.s) -Chars 9610 - 9614 [Qed.] 0.013 secs (0.013u,0.s) +Chars 9610 - 9614 [Qed.] 0.017 secs (0.016u,0.s) Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) -Chars 9703 - 9736 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9703 - 9736 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 9739 - 9743 [Qed.] 0. secs (0.u,0.s) -Chars 9745 - 9755 [End~State.] 0.001 secs (0.001u,0.s) +Chars 9745 - 9755 [End~State.] 0.003 secs (0.002u,0.s) diff --git a/theories/Basics/Utils.v.timing b/theories/Basics/Utils.v.timing index 1d04dc62..f7ed4760 100644 --- a/theories/Basics/Utils.v.timing +++ b/theories/Basics/Utils.v.timing @@ -1,7 +1,7 @@ Chars 0 - 51 [#[global]~Set~Warnings~"-intui...] 0. secs (0.u,0.s) -Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 90 - 121 [Require~Import~Program.Tactics.] 0. secs (0.u,0.s) -Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.022 secs (0.018u,0.003s) +Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.035 secs (0.029u,0.006s) Chars 155 - 207 [Ltac~inv~H~:=~inversion~H;~cle...] 0. secs (0.u,0.s) Chars 278 - 334 [Lemma~hexploit_mp~:~forall~P~Q...] 0. secs (0.u,0.s) Chars 335 - 341 [Proof.] 0. secs (0.u,0.s) @@ -24,17 +24,17 @@ Chars 3438 - 3670 [Ltac~~crunch~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) Chars 3672 - 3993 [Ltac~~saturate~H~:=~~~match~go...] 0. secs (0.u,0.s) Chars 4025 - 4125 [Lemma~pacobot1~(T0~:~Type)~(gf...] 0. secs (0.u,0.s) Chars 4126 - 4132 [Proof.] 0. secs (0.u,0.s) -Chars 4135 - 4147 [intros~x0~H.] 0. secs (0.u,0.s) -Chars 4148 - 4185 [apply~(paco1_mon~_~H);~contrad...] 0. secs (0.u,0.s) +Chars 4135 - 4147 [(intros~x0~H).] 0. secs (0.u,0.s) +Chars 4148 - 4185 [(apply~(paco1_mon~_~H);~contra...] 0. secs (0.u,0.s) Chars 4186 - 4190 [Qed.] 0. secs (0.u,0.s) Chars 4192 - 4319 [Lemma~pacobot2~(T0~:~Type)~(T1...] 0. secs (0.u,0.s) Chars 4320 - 4326 [Proof.] 0. secs (0.u,0.s) -Chars 4329 - 4344 [intros~x0~x1~H.] 0. secs (0.u,0.s) -Chars 4345 - 4383 [eapply~(paco2_mon~_~H);~contra...] 0. secs (0.u,0.s) +Chars 4329 - 4344 [(intros~x0~x1~H).] 0. secs (0.u,0.s) +Chars 4345 - 4383 [(eapply~(paco2_mon~_~H);~contr...] 0. secs (0.u,0.s) Chars 4384 - 4388 [Qed.] 0. secs (0.u,0.s) Chars 4499 - 4575 [Lemma~pfp_gfp~{X}~{L~:~Complet...] 0. secs (0.u,0.s) Chars 4576 - 4582 [Proof.] 0. secs (0.u,0.s) -Chars 4583 - 4597 [apply~b_chain.] 0. secs (0.u,0.s) +Chars 4583 - 4597 [(apply~b_chain).] 0. secs (0.u,0.s) Chars 4598 - 4602 [Qed.] 0. secs (0.u,0.s) Chars 4655 - 4969 [Ltac~~step_~:=~~~match~goal~wi...] 0. secs (0.u,0.s) Chars 4971 - 5134 [Ltac~~step~:=~~~match~goal~wit...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeDefinition.v.timing b/theories/Core/ITreeDefinition.v.timing index 2e1d5e0f..a58ecf6d 100644 --- a/theories/Core/ITreeDefinition.v.timing +++ b/theories/Core/ITreeDefinition.v.timing @@ -1,8 +1,8 @@ Chars 63 - 104 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 105 - 150 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 151 - 190 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) -Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.003 secs (0.002u,0.001s) -Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.021 secs (0.017u,0.004s) +Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.004 secs (0.003u,0.001s) +Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.033 secs (0.027u,0.005s) Chars 267 - 290 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 291 - 315 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 316 - 342 [Set~Primitive~Projections.] 0. secs (0.u,0.s) @@ -24,11 +24,11 @@ Chars 3361 - 3393 [Notation~Ret~x:=~(go~(RetF~x)).] 0. secs (0.u,0.s) Chars 3394 - 3426 [Notation~Tau~t:=~(go~(TauF~t)).] 0. secs (0.u,0.s) Chars 3427 - 3463 [Notation~Vis~e~k:=~(go~(VisF~e...] 0. secs (0.u,0.s) Chars 5126 - 5139 [Module~ITree.] 0. secs (0.u,0.s) -Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0. secs (0.u,0.s) +Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0.001 secs (0.u,0.s) Chars 5899 - 6013 [Definition~bind~{E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 6089 - 6213 [Definition~cat~{E}~{T}~{U}~{V}...] 0. secs (0.u,0.s) Chars 6495 - 6595 [Notation~on_left~lr~l~t:=~matc...] 0. secs (0.u,0.s) -Chars 6764 - 6946 [Definition~iter~{E~:~Type~->~T...] 0. secs (0.u,0.s) +Chars 6764 - 6946 [Definition~iter~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) Chars 7273 - 7371 [Definition~map~{E}~{R}~{S}~(f~...] 0. secs (0.u,0.s) Chars 7421 - 7513 [Definition~trigger~{E~:~Type~-...] 0. secs (0.u,0.s) Chars 7551 - 7626 [Definition~ignore~{E}~{R}~:~it...] 0. secs (0.u,0.s) @@ -52,4 +52,4 @@ Chars 9838 - 9885 [Ltac~genobs~x~ox~:=~remember~(...] 0. secs (0.u,0.s) Chars 9886 - 9983 [Ltac~~genobs_clear~x~ox~:=~~~g...] 0. secs (0.u,0.s) Chars 9984 - 10239 [Ltac~~simpobs~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) Chars 10275 - 10321 [Ltac~desobs~t~H~:=~destruct~(o...] 0. secs (0.u,0.s) -Chars 10403 - 10603 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0. secs (0.u,0.s) +Chars 10403 - 10603 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0.001 secs (0.u,0.s) diff --git a/theories/Core/ITreeMonad.v.timing b/theories/Core/ITreeMonad.v.timing index cf3ce770..1f89f6a4 100644 --- a/theories/Core/ITreeMonad.v.timing +++ b/theories/Core/ITreeMonad.v.timing @@ -1,36 +1,36 @@ -Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.042 secs (0.033u,0.008s) +Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.054 secs (0.044u,0.01s) Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0. secs (0.u,0.s) Chars 353 - 424 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 425 - 431 [Proof.] 0. secs (0.u,0.s) -Chars 434 - 445 [repeat~red.] 0. secs (0.u,0.s) -Chars 448 - 457 [intros~a.] 0. secs (0.u,0.s) +Chars 434 - 445 [(repeat~red).] 0. secs (0.u,0.s) +Chars 448 - 457 [(intros~a).] 0. secs (0.u,0.s) Chars 460 - 478 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 479 - 483 [Qed.] 0. secs (0.u,0.s) Chars 485 - 548 [#[global]~Instance~MonadLawsE_...] 0. secs (0.u,0.s) Chars 549 - 555 [Proof.] 0. secs (0.u,0.s) Chars 558 - 570 [constructor.] 0. secs (0.u,0.s) Chars 573 - 574 [-] 0. secs (0.u,0.s) -Chars 575 - 590 [intros~a~b~f~x.] 0. secs (0.u,0.s) -Chars 595 - 637 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) -Chars 642 - 664 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) -Chars 665 - 684 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 575 - 590 [(intros~a~b~f~x).] 0. secs (0.u,0.s) +Chars 595 - 637 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) +Chars 642 - 664 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) +Chars 665 - 684 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 685 - 697 [reflexivity.] 0. secs (0.u,0.s) Chars 700 - 701 [-] 0. secs (0.u,0.s) -Chars 702 - 713 [intros~a~x.] 0. secs (0.u,0.s) -Chars 717 - 759 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) -Chars 764 - 786 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) -Chars 787 - 806 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) +Chars 702 - 713 [(intros~a~x).] 0. secs (0.u,0.s) +Chars 717 - 759 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) +Chars 764 - 786 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) +Chars 787 - 806 [(rewrite~bind_ret_r).] 0. secs (0.u,0.s) Chars 807 - 819 [reflexivity.] 0. secs (0.u,0.s) Chars 822 - 823 [-] 0. secs (0.u,0.s) -Chars 824 - 843 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) -Chars 844 - 886 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) -Chars 891 - 913 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) -Chars 914 - 932 [rewrite~bind_bind.] 0.014 secs (0.013u,0.001s) +Chars 824 - 843 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) +Chars 844 - 886 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) +Chars 891 - 913 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) +Chars 914 - 932 [(rewrite~bind_bind).] 0.019 secs (0.017u,0.001s) Chars 933 - 945 [reflexivity.] 0. secs (0.u,0.s) Chars 948 - 949 [-] 0. secs (0.u,0.s) -Chars 950 - 981 [unfold~Monad.bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 986 - 993 [intros.] 0. secs (0.u,0.s) -Chars 998 - 1009 [repeat~red.] 0. secs (0.u,0.s) -Chars 1014 - 1021 [intros.] 0. secs (0.u,0.s) -Chars 1026 - 1048 [apply~eqit_bind;~auto.] 0. secs (0.u,0.s) +Chars 950 - 981 [(unfold~Monad.bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 986 - 993 [(intros).] 0. secs (0.u,0.s) +Chars 998 - 1009 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1014 - 1021 [(intros).] 0. secs (0.u,0.s) +Chars 1026 - 1048 [(apply~eqit_bind;~auto).] 0. secs (0.u,0.s) Chars 1049 - 1053 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/KTree.v.timing b/theories/Core/KTree.v.timing index b3a13720..40a290a7 100644 --- a/theories/Core/KTree.v.timing +++ b/theories/Core/KTree.v.timing @@ -1,5 +1,5 @@ -Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.04 secs (0.032u,0.007s) +Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.054 secs (0.044u,0.009s) Chars 382 - 414 [Implicit~Type~E~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 415 - 441 [Implicit~Types~a~b~:~Type.] 0. secs (0.u,0.s) Chars 443 - 483 [Notation~ktree~E:=~(Kleisli~(i...] 0. secs (0.u,0.s) diff --git a/theories/Core/KTreeFacts.v.timing b/theories/Core/KTreeFacts.v.timing index 49fc1948..4e5796c0 100644 --- a/theories/Core/KTreeFacts.v.timing +++ b/theories/Core/KTreeFacts.v.timing @@ -1,5 +1,5 @@ -Chars 103 - 198 [From~Stdlib~Require~Import~Cla...] 0.005 secs (0.004u,0.001s) -Chars 200 - 530 [From~ITree~Require~Import~Basi...] 0.043 secs (0.034u,0.008s) +Chars 103 - 198 [From~Stdlib~Require~Import~Cla...] 0.006 secs (0.005u,0.001s) +Chars 200 - 530 [From~ITree~Require~Import~Basi...] 0.055 secs (0.045u,0.01s) Chars 532 - 552 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 553 - 582 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 583 - 610 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -7,269 +7,269 @@ Chars 627 - 888 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) Chars 916 - 960 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) Chars 963 - 1150 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) Chars 1152 - 1193 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) -Chars 1196 - 1500 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.017 secs (0.015u,0.001s) +Chars 1196 - 1500 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.021 secs (0.019u,0.001s) Chars 1501 - 1507 [Proof.] 0. secs (0.u,0.s) Chars 1510 - 1522 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1585 - 1592 [intros.] 0. secs (0.u,0.s) -Chars 1715 - 1736 [rewrite~!unfold_iter.] 0.054 secs (0.054u,0.s) -Chars 1739 - 1767 [rewrite~bind_map,~bind_bind.] 0.029 secs (0.025u,0.004s) -Chars 1770 - 1776 [ebind.] 0.005 secs (0.005u,0.s) -Chars 1780 - 1800 [intros~[a|~b]~_~[].] 0.001 secs (0.001u,0.s) +Chars 1585 - 1592 [(intros).] 0. secs (0.u,0.s) +Chars 1715 - 1736 [(rewrite~!unfold_iter).] 0.072 secs (0.072u,0.s) +Chars 1739 - 1767 [(rewrite~bind_map,~bind_bind).] 0.042 secs (0.035u,0.007s) +Chars 1770 - 1776 [ebind.] 0.007 secs (0.007u,0.s) +Chars 1780 - 1800 [(intros~[a|~b]~_~[]).] 0.001 secs (0.001u,0.s) Chars 1803 - 1804 [-] 0. secs (0.u,0.s) -Chars 1805 - 1822 [rewrite~bind_tau.] 0.012 secs (0.012u,0.s) +Chars 1805 - 1822 [(rewrite~bind_tau).] 0.016 secs (0.016u,0.s) Chars 1823 - 1828 [taus.] 0. secs (0.u,0.s) -Chars 1833 - 1844 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 1833 - 1844 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 1848 - 1849 [-] 0. secs (0.u,0.s) -Chars 1850 - 1881 [rewrite~bind_ret_l,~tau_euttge.] 0.016 secs (0.016u,0.s) -Chars 1937 - 1947 [do~2~step.] 0.007 secs (0.007u,0.s) +Chars 1850 - 1881 [(rewrite~bind_ret_l,~tau_euttge).] 0.022 secs (0.022u,0.s) +Chars 1937 - 1947 [(do~2~step).] 0.01 secs (0.01u,0.s) Chars 1948 - 1957 [revert~b.] 0. secs (0.u,0.s) -Chars 1958 - 1970 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1971 - 1978 [intros.] 0. secs (0.u,0.s) -Chars 1984 - 2005 [rewrite~!unfold_iter.] 0.023 secs (0.023u,0.s) -Chars 2010 - 2027 [rewrite~bind_map.] 0.012 secs (0.012u,0.s) -Chars 2032 - 2038 [ebind.] 0.006 secs (0.006u,0.s) -Chars 2044 - 2072 [intros~[b'|~c'']~_~[];~cbn.] 0.001 secs (0.001u,0.s) +Chars 1958 - 1970 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1971 - 1978 [(intros).] 0. secs (0.u,0.s) +Chars 1984 - 2005 [(rewrite~!unfold_iter).] 0.035 secs (0.035u,0.s) +Chars 2010 - 2027 [(rewrite~bind_map).] 0.018 secs (0.018u,0.s) +Chars 2032 - 2038 [ebind.] 0.008 secs (0.008u,0.s) +Chars 2044 - 2072 [(intros~[b'|~c'']~_~[];~cbn).] 0.001 secs (0.001u,0.s) Chars 2077 - 2078 [+] 0. secs (0.u,0.s) Chars 2079 - 2088 [now~taus.] 0. secs (0.u,0.s) Chars 2093 - 2094 [+] 0. secs (0.u,0.s) Chars 2095 - 2107 [reflexivity.] 0. secs (0.u,0.s) -Chars 2108 - 2112 [Qed.] 0.014 secs (0.014u,0.s) +Chars 2108 - 2112 [Qed.] 0.019 secs (0.018u,0.s) Chars 2117 - 2511 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) Chars 2521 - 2539 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) -Chars 2540 - 2547 [intros.] 0. secs (0.u,0.s) +Chars 2540 - 2547 [(intros).] 0. secs (0.u,0.s) Chars 2551 - 2585 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 2588 - 2613 [do~2~rewrite~unfold_iter.] 0.02 secs (0.02u,0.s) -Chars 2616 - 2639 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 2643 - 2653 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 2654 - 2670 [apply~eutt_body.] 0. secs (0.u,0.s) -Chars 2674 - 2709 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) -Chars 2711 - 2715 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2588 - 2613 [(do~2~rewrite~unfold_iter).] 0.027 secs (0.027u,0.s) +Chars 2616 - 2639 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 2643 - 2653 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 2654 - 2670 [(apply~eutt_body).] 0. secs (0.u,0.s) +Chars 2674 - 2709 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) +Chars 2711 - 2715 [Qed.] 0.006 secs (0.006u,0.s) Chars 2717 - 3099 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) Chars 3100 - 3106 [Proof.] 0. secs (0.u,0.s) -Chars 3109 - 3127 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3128 - 3135 [intros.] 0. secs (0.u,0.s) +Chars 3109 - 3127 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3128 - 3135 [(intros).] 0. secs (0.u,0.s) Chars 3139 - 3173 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3176 - 3201 [do~2~rewrite~unfold_iter.] 0.021 secs (0.021u,0.s) -Chars 3204 - 3210 [ebind.] 0.003 secs (0.003u,0.s) -Chars 3213 - 3230 [do~2~step;~eauto.] 0.011 secs (0.01u,0.s) -Chars 3234 - 3269 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) -Chars 3271 - 3275 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3277 - 3692 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0. secs (0.u,0.s) +Chars 3176 - 3201 [(do~2~rewrite~unfold_iter).] 0.028 secs (0.028u,0.s) +Chars 3204 - 3210 [ebind.] 0.004 secs (0.004u,0.s) +Chars 3213 - 3230 [(do~2~step;~eauto).] 0.015 secs (0.015u,0.s) +Chars 3234 - 3269 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) +Chars 3271 - 3275 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3277 - 3692 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0.001 secs (0.001u,0.s) Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) -Chars 3702 - 3720 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3721 - 3728 [intros.] 0. secs (0.u,0.s) +Chars 3702 - 3720 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3721 - 3728 [(intros).] 0. secs (0.u,0.s) Chars 3732 - 3766 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3769 - 3794 [do~2~rewrite~unfold_iter.] 0.02 secs (0.02u,0.s) -Chars 3797 - 3803 [ebind.] 0.003 secs (0.003u,0.s) -Chars 3807 - 3824 [do~2~step;~eauto.] 0.011 secs (0.011u,0.s) -Chars 3828 - 3863 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) +Chars 3769 - 3794 [(do~2~rewrite~unfold_iter).] 0.03 secs (0.03u,0.s) +Chars 3797 - 3803 [ebind.] 0.004 secs (0.004u,0.s) +Chars 3807 - 3824 [(do~2~step;~eauto).] 0.016 secs (0.016u,0.s) +Chars 3828 - 3863 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) Chars 3864 - 3884 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) -Chars 3885 - 3889 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3885 - 3889 [Qed.] 0.005 secs (0.005u,0.s) Chars 3891 - 4097 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) Chars 4098 - 4104 [Proof.] 0. secs (0.u,0.s) -Chars 4107 - 4154 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) -Chars 4155 - 4170 [red~in~EQ_BODY.] 0. secs (0.u,0.s) -Chars 4173 - 4199 [eapply~eutt_iter'';~eauto.] 0. secs (0.u,0.s) -Chars 4200 - 4204 [Qed.] 0. secs (0.u,0.s) +Chars 4107 - 4154 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) +Chars 4155 - 4170 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 4173 - 4199 [(eapply~eutt_iter'';~eauto).] 0. secs (0.u,0.s) +Chars 4200 - 4204 [Qed.] 0.001 secs (0.001u,0.s) Chars 4224 - 4424 [#[global]~Instance~eq_itree_it...] 0. secs (0.u,0.s) Chars 4425 - 4431 [Proof.] 0. secs (0.u,0.s) -Chars 4434 - 4463 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) -Chars 4464 - 4486 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 4434 - 4463 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) +Chars 4464 - 4486 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) Chars 4489 - 4502 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4505 - 4538 [eapply~(eq_itree_iter'~eq);~auto.] 0.002 secs (0.002u,0.s) -Chars 4541 - 4581 [intros;~eapply~eqit_mono,~EQ_B...] 0.001 secs (0.001u,0.s) -Chars 4584 - 4632 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) +Chars 4505 - 4538 [(eapply~(eq_itree_iter'~eq);~a...] 0.003 secs (0.003u,0.s) +Chars 4541 - 4581 [(intros;~eapply~eqit_mono,~EQ_...] 0.002 secs (0.002u,0.s) +Chars 4584 - 4632 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) Chars 4633 - 4637 [Qed.] 0.001 secs (0.001u,0.s) Chars 4639 - 4841 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) Chars 4842 - 4848 [Proof.] 0. secs (0.u,0.s) -Chars 4851 - 4880 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) -Chars 4881 - 4903 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 4851 - 4880 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) +Chars 4881 - 4903 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) Chars 4906 - 4919 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4922 - 4951 [eapply~(eutt_iter'~eq);~auto.] 0.002 secs (0.002u,0.s) -Chars 4954 - 5001 [intros~?~_~[];~eapply~eqit_mon...] 0.001 secs (0.001u,0.s) -Chars 5004 - 5045 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) +Chars 4922 - 4951 [(eapply~(eutt_iter'~eq);~auto).] 0.003 secs (0.003u,0.s) +Chars 4954 - 5001 [(intros~?~_~[];~eapply~eqit_mo...] 0.002 secs (0.002u,0.s) +Chars 5004 - 5045 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) Chars 5046 - 5050 [Qed.] 0.001 secs (0.001u,0.s) Chars 5052 - 5234 [Definition~eutt_iter_gen~{F}~{...] 0. secs (0.u,0.s) Chars 5235 - 5241 [Proof.] 0. secs (0.u,0.s) -Chars 5244 - 5291 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) -Chars 5292 - 5307 [red~in~EQ_BODY.] 0. secs (0.u,0.s) -Chars 5310 - 5335 [eapply~eutt_iter';~eauto.] 0. secs (0.u,0.s) -Chars 5336 - 5340 [Qed.] 0. secs (0.u,0.s) +Chars 5244 - 5291 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) +Chars 5292 - 5307 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 5310 - 5335 [(eapply~eutt_iter';~eauto).] 0. secs (0.u,0.s) +Chars 5336 - 5340 [Qed.] 0.001 secs (0.001u,0.s) Chars 5342 - 5470 [#[global]~Instance~eq2_ktree_i...] 0. secs (0.u,0.s) Chars 5471 - 5477 [Proof.] 0. secs (0.u,0.s) -Chars 5478 - 5494 [apply~eutt_iter.] 0. secs (0.u,0.s) +Chars 5478 - 5494 [(apply~eutt_iter).] 0. secs (0.u,0.s) Chars 5495 - 5499 [Qed.] 0. secs (0.u,0.s) Chars 5501 - 5524 [Section~KTreeIterative.] 0. secs (0.u,0.s) -Chars 5526 - 5720 [Lemma~unfold_iter_ktree~{E}~{A...] 0. secs (0.u,0.s) +Chars 5526 - 5720 [Lemma~unfold_iter_ktree~{E}~{A...] 0.001 secs (0.001u,0.s) Chars 5721 - 5727 [Proof.] 0. secs (0.u,0.s) -Chars 5730 - 5748 [apply~unfold_iter.] 0. secs (0.u,0.s) +Chars 5730 - 5748 [(apply~unfold_iter).] 0. secs (0.u,0.s) Chars 5749 - 5753 [Qed.] 0. secs (0.u,0.s) Chars 5755 - 5822 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 5823 - 5829 [Proof.] 0. secs (0.u,0.s) -Chars 5832 - 5845 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5832 - 5845 [(repeat~intro).] 0. secs (0.u,0.s) Chars 5846 - 5859 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 5860 - 5886 [rewrite~unfold_iter_ktree.] 0.001 secs (0.001u,0.s) -Chars 5889 - 5928 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) -Chars 5931 - 5981 [intros~[]~?~[];~try~rewrite~ta...] 0.001 secs (0.001u,0.s) -Chars 5982 - 5986 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5860 - 5886 [(rewrite~unfold_iter_ktree).] 0.001 secs (0.001u,0.s) +Chars 5889 - 5928 [(eapply~eutt_bind_eutt;~try~re...] 0. secs (0.u,0.s) +Chars 5931 - 5981 [(intros~[]~?~[];~try~rewrite~t...] 0.002 secs (0.002u,0.s) +Chars 5982 - 5986 [Qed.] 0.002 secs (0.002u,0.s) Chars 5988 - 6057 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 6058 - 6064 [Proof.] 0. secs (0.u,0.s) -Chars 6067 - 6080 [repeat~intro.] 0. secs (0.u,0.s) +Chars 6067 - 6080 [(repeat~intro).] 0. secs (0.u,0.s) Chars 6081 - 6094 [unfold_ktree.] 0. secs (0.u,0.s) Chars 6097 - 6107 [revert~a0.] 0. secs (0.u,0.s) -Chars 6110 - 6129 [coinduction~c'~CIH.] 0.002 secs (0.001u,0.s) -Chars 6130 - 6137 [intros.] 0. secs (0.u,0.s) -Chars 6141 - 6169 [rewrite~2!unfold_iter_ktree.] 0.03 secs (0.029u,0.s) -Chars 6172 - 6191 [rewrite~!bind_bind.] 0.03 secs (0.03u,0.s) -Chars 6194 - 6200 [ebind.] 0.006 secs (0.006u,0.s) -Chars 6204 - 6219 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) +Chars 6110 - 6129 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) +Chars 6130 - 6137 [(intros).] 0. secs (0.u,0.s) +Chars 6141 - 6169 [(rewrite~2!unfold_iter_ktree).] 0.04 secs (0.039u,0.s) +Chars 6172 - 6191 [(rewrite~!bind_bind).] 0.038 secs (0.038u,0.s) +Chars 6194 - 6200 [ebind.] 0.008 secs (0.008u,0.s) +Chars 6204 - 6219 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) Chars 6222 - 6223 [-] 0. secs (0.u,0.s) -Chars 6224 - 6255 [rewrite~bind_tau,~2!bind_ret_l.] 0.044 secs (0.044u,0.s) +Chars 6224 - 6255 [(rewrite~bind_tau,~2!bind_ret_l).] 0.059 secs (0.059u,0.s) Chars 6256 - 6265 [now~taus.] 0. secs (0.u,0.s) Chars 6269 - 6270 [-] 0. secs (0.u,0.s) -Chars 6271 - 6302 [rewrite~bind_ret_l,~!bind_bind.] 0.028 secs (0.027u,0.s) -Chars 6303 - 6329 [setoid_rewrite~bind_ret_l.] 0.029 secs (0.029u,0.s) -Chars 6330 - 6349 [rewrite~bind_ret_r.] 0.012 secs (0.012u,0.s) -Chars 6354 - 6366 [reflexivity.] 0. secs (0.u,0.s) -Chars 6367 - 6371 [Qed.] 0.01 secs (0.01u,0.s) -Chars 6373 - 6911 [Lemma~iter_dinatural_ktree~{E}...] 0.001 secs (0.001u,0.s) +Chars 6271 - 6302 [(rewrite~bind_ret_l,~!bind_bind).] 0.038 secs (0.038u,0.s) +Chars 6303 - 6329 [setoid_rewrite~bind_ret_l.] 0.039 secs (0.039u,0.s) +Chars 6330 - 6349 [(rewrite~bind_ret_r).] 0.017 secs (0.017u,0.s) +Chars 6354 - 6366 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6367 - 6371 [Qed.] 0.015 secs (0.014u,0.s) +Chars 6373 - 6911 [Lemma~iter_dinatural_ktree~{E}...] 0.002 secs (0.002u,0.s) Chars 6912 - 6918 [Proof.] 0. secs (0.u,0.s) Chars 6921 - 6941 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) -Chars 6945 - 6963 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 6964 - 6971 [intros.] 0. secs (0.u,0.s) -Chars 6975 - 7001 [rewrite~unfold_iter_ktree.] 0.013 secs (0.013u,0.s) -Chars 7004 - 7022 [rewrite~bind_bind.] 0.013 secs (0.013u,0.s) -Chars 7025 - 7031 [ebind.] 0.006 secs (0.006u,0.s) -Chars 7035 - 7050 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) +Chars 6945 - 6963 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 6964 - 6971 [(intros).] 0. secs (0.u,0.s) +Chars 6975 - 7001 [(rewrite~unfold_iter_ktree).] 0.017 secs (0.017u,0.s) +Chars 7004 - 7022 [(rewrite~bind_bind).] 0.017 secs (0.017u,0.s) +Chars 7025 - 7031 [ebind.] 0.01 secs (0.01u,0.s) +Chars 7035 - 7050 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) Chars 7162 - 7163 [-] 0. secs (0.u,0.s) -Chars 7164 - 7181 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) +Chars 7164 - 7181 [(rewrite~bind_tau).] 0.018 secs (0.018u,0.s) Chars 7182 - 7187 [taus.] 0. secs (0.u,0.s) -Chars 7188 - 7197 [symmetry.] 0. secs (0.u,0.s) -Chars 7198 - 7209 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7188 - 7197 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 7198 - 7209 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 7213 - 7214 [-] 0. secs (0.u,0.s) -Chars 7215 - 7234 [rewrite~bind_ret_l.] 0.012 secs (0.012u,0.s) -Chars 7235 - 7247 [reflexivity.] 0. secs (0.u,0.s) -Chars 7249 - 7253 [Qed.] 0.007 secs (0.007u,0.s) +Chars 7215 - 7234 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) +Chars 7235 - 7247 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 7249 - 7253 [Qed.] 0.01 secs (0.01u,0.s) Chars 7255 - 7328 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 7329 - 7335 [Proof.] 0. secs (0.u,0.s) -Chars 7338 - 7351 [repeat~intro.] 0. secs (0.u,0.s) +Chars 7338 - 7351 [(repeat~intro).] 0. secs (0.u,0.s) Chars 7352 - 7365 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 7368 - 7630 [transitivity~~(iter~(C:=ktree~...] 0. secs (0.u,0.s) +Chars 7368 - 7630 [(transitivity~~~(iter~(C:=ktre...] 0.001 secs (0.001u,0.s) Chars 7633 - 7634 [-] 0. secs (0.u,0.s) -Chars 7635 - 7661 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) -Chars 7666 - 7688 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 7635 - 7661 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) +Chars 7666 - 7688 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 7693 - 7705 [reflexivity.] 0. secs (0.u,0.s) -Chars 7710 - 7725 [intros~[]~?~[].] 0. secs (0.u,0.s) -Chars 7730 - 7760 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) +Chars 7710 - 7725 [(intros~[]~?~[]).] 0. secs (0.u,0.s) +Chars 7730 - 7760 [(rewrite~tau_eutt;~reflexivity).] 0. secs (0.u,0.s) Chars 7765 - 7777 [reflexivity.] 0. secs (0.u,0.s) Chars 7780 - 7781 [-] 0. secs (0.u,0.s) -Chars 7782 - 7811 [rewrite~iter_dinatural_ktree.] 0.001 secs (0.001u,0.s) -Chars 7816 - 7838 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 7782 - 7811 [(rewrite~iter_dinatural_ktree).] 0.002 secs (0.002u,0.s) +Chars 7816 - 7838 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 7843 - 7855 [reflexivity.] 0. secs (0.u,0.s) -Chars 7860 - 7875 [intros~[]~?~[].] 0. secs (0.u,0.s) +Chars 7860 - 7875 [(intros~[]~?~[]).] 0. secs (0.u,0.s) Chars 7880 - 7881 [+] 0. secs (0.u,0.s) -Chars 7882 - 7899 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 7906 - 7932 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) -Chars 7939 - 7961 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 7882 - 7899 [(rewrite~tau_eutt).] 0.002 secs (0.001u,0.s) +Chars 7906 - 7932 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) +Chars 7939 - 7961 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 7968 - 7980 [reflexivity.] 0. secs (0.u,0.s) -Chars 7987 - 8002 [intros~[]~?~[].] 0. secs (0.u,0.s) -Chars 8009 - 8039 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) +Chars 7987 - 8002 [(intros~[]~?~[]).] 0. secs (0.u,0.s) +Chars 8009 - 8039 [(rewrite~tau_eutt;~reflexivity).] 0.001 secs (0.001u,0.s) Chars 8046 - 8058 [reflexivity.] 0. secs (0.u,0.s) Chars 8063 - 8064 [+] 0. secs (0.u,0.s) Chars 8065 - 8077 [reflexivity.] 0. secs (0.u,0.s) -Chars 8078 - 8082 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8078 - 8082 [Qed.] 0.006 secs (0.006u,0.s) Chars 8084 - 8392 [Lemma~iter_codiagonal_ktree~{E...] 0.001 secs (0.001u,0.s) Chars 8393 - 8399 [Proof.] 0. secs (0.u,0.s) Chars 8402 - 8412 [revert~a0.] 0. secs (0.u,0.s) -Chars 8415 - 8433 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8434 - 8441 [intros.] 0. secs (0.u,0.s) -Chars 8445 - 8471 [rewrite~unfold_iter_ktree.] 0.011 secs (0.011u,0.s) -Chars 8474 - 8519 [rewrite~(unfold_iter_ktree~(fu...] 0.015 secs (0.015u,0.s) -Chars 8522 - 8560 [rewrite~unfold_iter_ktree,~!bi...] 0.045 secs (0.044u,0.s) -Chars 8563 - 8569 [ebind.] 0.006 secs (0.006u,0.s) -Chars 8573 - 8592 [intros~[|~[]]~?~[].] 0.003 secs (0.003u,0.s) +Chars 8415 - 8433 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 8434 - 8441 [(intros).] 0. secs (0.u,0.s) +Chars 8445 - 8471 [(rewrite~unfold_iter_ktree).] 0.016 secs (0.016u,0.s) +Chars 8474 - 8519 [(rewrite~(unfold_iter_ktree~(f...] 0.022 secs (0.022u,0.s) +Chars 8522 - 8560 [(rewrite~unfold_iter_ktree,~!b...] 0.063 secs (0.063u,0.s) +Chars 8563 - 8569 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8573 - 8592 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) Chars 8595 - 8596 [-] 0. secs (0.u,0.s) -Chars 8597 - 8626 [rewrite~bind_ret_l,~bind_tau.] 0.029 secs (0.029u,0.s) +Chars 8597 - 8626 [(rewrite~bind_ret_l,~bind_tau).] 0.041 secs (0.041u,0.s) Chars 8631 - 8636 [taus.] 0. secs (0.u,0.s) Chars 8642 - 8651 [revert~a.] 0. secs (0.u,0.s) Chars 8656 - 8671 [accumulate~acc.] 0.002 secs (0.002u,0.s) -Chars 8677 - 8684 [intros.] 0. secs (0.u,0.s) -Chars 8689 - 8715 [rewrite~unfold_iter_ktree.] 0.012 secs (0.012u,0.s) -Chars 8720 - 8765 [rewrite~(unfold_iter_ktree~(fu...] 0.014 secs (0.014u,0.s) -Chars 8770 - 8789 [rewrite~!bind_bind.] 0.027 secs (0.027u,0.s) -Chars 8794 - 8800 [ebind.] 0.008 secs (0.008u,0.s) -Chars 8806 - 8825 [intros~[|~[]]~?~[].] 0.002 secs (0.002u,0.s) +Chars 8677 - 8684 [(intros).] 0. secs (0.u,0.s) +Chars 8689 - 8715 [(rewrite~unfold_iter_ktree).] 0.018 secs (0.018u,0.s) +Chars 8720 - 8765 [(rewrite~(unfold_iter_ktree~(f...] 0.019 secs (0.019u,0.s) +Chars 8770 - 8789 [(rewrite~!bind_bind).] 0.038 secs (0.037u,0.s) +Chars 8794 - 8800 [ebind.] 0.012 secs (0.012u,0.s) +Chars 8806 - 8825 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) Chars 8830 - 8831 [+] 0. secs (0.u,0.s) -Chars 8832 - 8861 [rewrite~bind_tau,~bind_ret_l.] 0.028 secs (0.028u,0.s) +Chars 8832 - 8861 [(rewrite~bind_tau,~bind_ret_l).] 0.042 secs (0.041u,0.s) Chars 8862 - 8871 [now~taus.] 0. secs (0.u,0.s) Chars 8877 - 8878 [+] 0. secs (0.u,0.s) -Chars 8879 - 8900 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) +Chars 8879 - 8900 [(rewrite~2!bind_ret_l).] 0.039 secs (0.039u,0.s) Chars 8901 - 8910 [now~taus.] 0. secs (0.u,0.s) Chars 8916 - 8917 [+] 0. secs (0.u,0.s) -Chars 8918 - 8939 [rewrite~2!bind_ret_l.] 0.026 secs (0.026u,0.s) -Chars 8940 - 8952 [reflexivity.] 0. secs (0.u,0.s) +Chars 8918 - 8939 [(rewrite~2!bind_ret_l).] 0.04 secs (0.04u,0.s) +Chars 8940 - 8952 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8956 - 8957 [-] 0. secs (0.u,0.s) -Chars 8958 - 8979 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) +Chars 8958 - 8979 [(rewrite~2!bind_ret_l).] 0.038 secs (0.038u,0.s) Chars 8984 - 8993 [now~taus.] 0. secs (0.u,0.s) Chars 8997 - 8998 [-] 0. secs (0.u,0.s) -Chars 8999 - 9020 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) -Chars 9025 - 9037 [reflexivity.] 0. secs (0.u,0.s) -Chars 9039 - 9043 [Qed.] 0.023 secs (0.022u,0.s) +Chars 8999 - 9020 [(rewrite~2!bind_ret_l).] 0.039 secs (0.038u,0.s) +Chars 9025 - 9037 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9039 - 9043 [Qed.] 0.034 secs (0.034u,0.s) Chars 9045 - 9120 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 9121 - 9127 [Proof.] 0. secs (0.u,0.s) -Chars 9130 - 9143 [repeat~intro.] 0. secs (0.u,0.s) +Chars 9130 - 9143 [(repeat~intro).] 0. secs (0.u,0.s) Chars 9144 - 9157 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9160 - 9190 [rewrite~iter_codiagonal_ktree.] 0.001 secs (0.001u,0.s) -Chars 9193 - 9209 [apply~eutt_iter.] 0. secs (0.u,0.s) -Chars 9212 - 9222 [intros~a1.] 0. secs (0.u,0.s) -Chars 9225 - 9247 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) +Chars 9160 - 9190 [(rewrite~iter_codiagonal_ktree).] 0.002 secs (0.002u,0.s) +Chars 9193 - 9209 [(apply~eutt_iter).] 0. secs (0.u,0.s) +Chars 9212 - 9222 [(intros~a1).] 0. secs (0.u,0.s) +Chars 9225 - 9247 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 9250 - 9262 [reflexivity.] 0. secs (0.u,0.s) -Chars 9265 - 9316 [intros~[|~[]]~?~[];~rewrite~?t...] 0.001 secs (0.001u,0.s) -Chars 9317 - 9321 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9265 - 9316 [(intros~[|~[]]~?~[];~rewrite~?...] 0.002 secs (0.002u,0.s) +Chars 9317 - 9321 [Qed.] 0.002 secs (0.002u,0.s) Chars 9323 - 9388 [#[global]~Instance~Iterative_k...] 0. secs (0.u,0.s) Chars 9389 - 9395 [Proof.] 0. secs (0.u,0.s) -Chars 9398 - 9423 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 9398 - 9423 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 9424 - 9428 [Qed.] 0. secs (0.u,0.s) -Chars 9489 - 9693 [Lemma~cat_iter~:~~~forall~{E~:...] 0.001 secs (0.001u,0.s) +Chars 9489 - 9693 [Lemma~cat_iter~:~~~forall~{E~:...] 0.002 secs (0.002u,0.s) Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) -Chars 9703 - 9712 [intros~*.] 0. secs (0.u,0.s) +Chars 9703 - 9712 [(intros~*).] 0. secs (0.u,0.s) Chars 9715 - 9728 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9761 - 9772 [repeat~red.] 0. secs (0.u,0.s) -Chars 9870 - 9889 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) -Chars 9890 - 9897 [intros.] 0. secs (0.u,0.s) -Chars 9903 - 9922 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) -Chars 9966 - 9986 [rewrite~unfold_iter.] 0.013 secs (0.013u,0.s) -Chars 9993 - 10013 [rewrite~unfold_iter.] 0.016 secs (0.016u,0.s) -Chars 10016 - 10035 [rewrite~!bind_bind.] 0.029 secs (0.029u,0.s) -Chars 10038 - 10044 [ebind.] 0.006 secs (0.006u,0.s) -Chars 10090 - 10112 [intros~[xa|~xb]~?~<-.] 0.001 secs (0.001u,0.s) +Chars 9761 - 9772 [(repeat~red).] 0. secs (0.u,0.s) +Chars 9870 - 9889 [coinduction~c'~CIH.] 0.003 secs (0.003u,0.s) +Chars 9890 - 9897 [(intros).] 0. secs (0.u,0.s) +Chars 9903 - 9922 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 9966 - 9986 [(rewrite~unfold_iter).] 0.019 secs (0.019u,0.s) +Chars 9993 - 10013 [(rewrite~unfold_iter).] 0.022 secs (0.022u,0.s) +Chars 10016 - 10035 [(rewrite~!bind_bind).] 0.04 secs (0.04u,0.s) +Chars 10038 - 10044 [ebind.] 0.008 secs (0.008u,0.s) +Chars 10090 - 10112 [(intros~[xa|~xb]~?~<-).] 0.002 secs (0.002u,0.s) Chars 10115 - 10116 [-] 0. secs (0.u,0.s) -Chars 10180 - 10201 [rewrite~!bind_ret_l.] 0.018 secs (0.017u,0.s) -Chars 10206 - 10223 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) +Chars 10180 - 10201 [(rewrite~!bind_ret_l).] 0.026 secs (0.025u,0.s) +Chars 10206 - 10223 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) Chars 10228 - 10233 [taus.] 0. secs (0.u,0.s) Chars 10239 - 10259 [specialize~(CIH~xa).] 0. secs (0.u,0.s) -Chars 10264 - 10273 [symmetry.] 0. secs (0.u,0.s) -Chars 10279 - 10301 [rewrite~<-~bind_ret_l.] 0.011 secs (0.011u,0.s) -Chars 10302 - 10311 [symmetry.] 0. secs (0.u,0.s) -Chars 10317 - 10327 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10264 - 10273 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 10279 - 10301 [(rewrite~<-~bind_ret_l).] 0.015 secs (0.015u,0.s) +Chars 10302 - 10311 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 10317 - 10327 [(apply~CIH).] 0. secs (0.u,0.s) Chars 10331 - 10332 [-] 0. secs (0.u,0.s) -Chars 10369 - 10390 [rewrite~!bind_ret_l.] 0.031 secs (0.031u,0.s) -Chars 10628 - 10647 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) -Chars 10652 - 10662 [do~2~step.] 0.008 secs (0.008u,0.s) -Chars 10668 - 10682 [generalize~xb.] 0. secs (0.u,0.s) -Chars 10687 - 10708 [coinduction~c''~CIH'.] 0.002 secs (0.002u,0.s) -Chars 10709 - 10716 [intros.] 0. secs (0.u,0.s) -Chars 10768 - 10790 [rewrite~2!unfold_iter.] 0.029 secs (0.028u,0.s) -Chars 10796 - 10815 [rewrite~!bind_bind.] 0.035 secs (0.035u,0.s) -Chars 10866 - 10872 [ebind.] 0.006 secs (0.006u,0.s) -Chars 10877 - 10900 [intros~[xb'|~xc]~?~<-.] 0.002 secs (0.002u,0.s) +Chars 10369 - 10390 [(rewrite~!bind_ret_l).] 0.044 secs (0.044u,0.s) +Chars 10628 - 10647 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) +Chars 10652 - 10662 [(do~2~step).] 0.011 secs (0.011u,0.s) +Chars 10668 - 10682 [(generalize~xb).] 0. secs (0.u,0.s) +Chars 10687 - 10708 [coinduction~c''~CIH'.] 0.003 secs (0.003u,0.s) +Chars 10709 - 10716 [(intros).] 0. secs (0.u,0.s) +Chars 10768 - 10790 [(rewrite~2!unfold_iter).] 0.038 secs (0.037u,0.s) +Chars 10796 - 10815 [(rewrite~!bind_bind).] 0.047 secs (0.047u,0.s) +Chars 10866 - 10872 [ebind.] 0.009 secs (0.009u,0.s) +Chars 10877 - 10900 [(intros~[xb'|~xc]~?~<-).] 0.002 secs (0.002u,0.s) Chars 10905 - 10906 [+] 0. secs (0.u,0.s) -Chars 10951 - 10971 [rewrite~!bind_ret_l.] 0.052 secs (0.052u,0.s) +Chars 10951 - 10971 [(rewrite~!bind_ret_l).] 0.076 secs (0.076u,0.s) Chars 10978 - 10983 [taus.] 0. secs (0.u,0.s) -Chars 10990 - 11001 [apply~CIH'.] 0. secs (0.u,0.s) +Chars 10990 - 11001 [(apply~CIH').] 0. secs (0.u,0.s) Chars 11008 - 11009 [+] 0. secs (0.u,0.s) -Chars 11010 - 11030 [rewrite~!bind_ret_l.] 0.033 secs (0.033u,0.s) -Chars 11037 - 11049 [reflexivity.] 0. secs (0.u,0.s) -Chars 11051 - 11055 [Qed.] 0.025 secs (0.025u,0.s) -Chars 11057 - 11076 [End~KTreeIterative.] 0. secs (0.u,0.s) +Chars 11010 - 11030 [(rewrite~!bind_ret_l).] 0.047 secs (0.047u,0.s) +Chars 11037 - 11049 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11051 - 11055 [Qed.] 0.034 secs (0.034u,0.s) +Chars 11057 - 11076 [End~KTreeIterative.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/Subevent.v.timing b/theories/Core/Subevent.v.timing index 97948b83..cb772976 100644 --- a/theories/Core/Subevent.v.timing +++ b/theories/Core/Subevent.v.timing @@ -1,4 +1,4 @@ -Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.03 secs (0.024u,0.006s) +Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.044 secs (0.035u,0.008s) Chars 665 - 740 [Notation~Subevent~E~F:=~(@ReSu...] 0. secs (0.u,0.s) Chars 741 - 826 [Notation~"E~-<~F"~:=~(Subevent...] 0. secs (0.u,0.s) Chars 828 - 902 [Definition~subevent~{E~F~:~Typ...] 0. secs (0.u,0.s) @@ -20,16 +20,16 @@ Chars 1683 - 1767 [Notation~"(|||||~x~|)"~:=~(inr...] 0. secs (0.u,0.s) Chars 1768 - 1852 [Notation~"(||||||~x~)"~:=~(inr...] 0. secs (0.u,0.s) Chars 1853 - 1945 [Notation~"(||||||~x~|)"~:=~(in...] 0. secs (0.u,0.s) Chars 1946 - 2038 [Notation~"(|||||||~x~)"~:=~(in...] 0. secs (0.u,0.s) -Chars 2040 - 2057 [End~SumNotations.] 0.001 secs (0.u,0.s) +Chars 2040 - 2057 [End~SumNotations.] 0. secs (0.u,0.s) Chars 2059 - 2086 [#[local]~Open~Scope~sum_scope.] 0. secs (0.u,0.s) Chars 2127 - 2170 [Notation~vis~e~k:=~(Vis~(subev...] 0. secs (0.u,0.s) Chars 2236 - 2289 [Notation~trigger~e:=~(ITree.tr...] 0. secs (0.u,0.s) Chars 2442 - 2483 [Class~Embeddable~U~V~:=~~~~~em...] 0. secs (0.u,0.s) Chars 2485 - 2685 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) -Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) +Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0.001 secs (0.u,0.s) Chars 2939 - 3043 [Lemma~resum_to_subevent~:~~~fo...] 0. secs (0.u,0.s) Chars 3044 - 3050 [Proof.] 0. secs (0.u,0.s) -Chars 3053 - 3073 [intros;~reflexivity.] 0. secs (0.u,0.s) +Chars 3053 - 3073 [(intros;~reflexivity).] 0. secs (0.u,0.s) Chars 3074 - 3078 [Qed.] 0. secs (0.u,0.s) Chars 3080 - 3204 [Lemma~subevent_subevent'~:~~~f...] 0. secs (0.u,0.s) Chars 3205 - 3211 [Proof.] 0. secs (0.u,0.s) @@ -40,7 +40,7 @@ Chars 3431 - 3437 [Proof.] 0. secs (0.u,0.s) Chars 3440 - 3452 [reflexivity.] 0. secs (0.u,0.s) Chars 3453 - 3457 [Qed.] 0. secs (0.u,0.s) Chars 3459 - 3540 [#[global]~Instance~subevent_vo...] 0. secs (0.u,0.s) -Chars 3542 - 3638 [Lemma~subevent_left~{E}~{F}~{R...] 0. secs (0.u,0.s) +Chars 3542 - 3638 [Lemma~subevent_left~{E}~{F}~{R...] 0.001 secs (0.u,0.s) Chars 3639 - 3645 [Proof.] 0. secs (0.u,0.s) Chars 3648 - 3660 [reflexivity.] 0. secs (0.u,0.s) Chars 3661 - 3665 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq.v.timing b/theories/Eq.v.timing index 57cac33e..e46cf616 100644 --- a/theories/Eq.v.timing +++ b/theories/Eq.v.timing @@ -1 +1 @@ -Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.139 secs (0.123u,0.016s) +Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.198 secs (0.176u,0.021s) diff --git a/theories/Eq/EqAxiom.v.timing b/theories/Eq/EqAxiom.v.timing index b569c7d8..ed545406 100644 --- a/theories/Eq/EqAxiom.v.timing +++ b/theories/Eq/EqAxiom.v.timing @@ -1,7 +1,7 @@ -Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.039 secs (0.031u,0.007s) +Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.054 secs (0.044u,0.01s) Chars 492 - 604 [Axiom~~~(bisimulation_is_eq~:~...] 0. secs (0.u,0.s) Chars 606 - 666 [Lemma~itree_eta_~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) Chars 667 - 673 [Proof.] 0. secs (0.u,0.s) -Chars 676 - 701 [apply~bisimulation_is_eq.] 0. secs (0.u,0.s) -Chars 702 - 718 [apply~itree_eta.] 0. secs (0.u,0.s) +Chars 676 - 701 [(apply~bisimulation_is_eq).] 0. secs (0.u,0.s) +Chars 702 - 718 [(apply~itree_eta).] 0. secs (0.u,0.s) Chars 719 - 723 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Eqit.v.timing b/theories/Eq/Eqit.v.timing index 35e6c6f6..22ff8ece 100644 --- a/theories/Eq/Eqit.v.timing +++ b/theories/Eq/Eqit.v.timing @@ -1,26 +1,26 @@ -Chars 699 - 830 [From~Stdlib~Require~Import~Str...] 0.01 secs (0.006u,0.003s) -Chars 832 - 868 [From~Coinduction~Require~Expor...] 0.002 secs (0.001u,0.s) -Chars 967 - 1107 [From~ITree~Require~Import~Basi...] 0.023 secs (0.018u,0.004s) +Chars 699 - 830 [From~Stdlib~Require~Import~Str...] 0.013 secs (0.01u,0.003s) +Chars 832 - 868 [From~Coinduction~Require~Expor...] 0.003 secs (0.002u,0.s) +Chars 967 - 1107 [From~ITree~Require~Import~Basi...] 0.032 secs (0.026u,0.006s) Chars 1110 - 1139 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 2730 - 2774 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) Chars 2776 - 2789 [Section~eqit.] 0. secs (0.u,0.s) Chars 3466 - 3493 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 3920 - 4636 [Inductive~eqitF~{R1~R2~:~Type}...] 0.002 secs (0.002u,0.s) +Chars 3920 - 4636 [Inductive~eqitF~{R1~R2~:~Type}...] 0.004 secs (0.003u,0.s) Chars 4639 - 4671 [Hint~Constructors~eqitF:~itree.] 0. secs (0.u,0.s) Chars 4675 - 4939 [Definition~eqit_~b1~b2~~~(sim~...] 0. secs (0.u,0.s) Chars 4942 - 4968 [Hint~Unfold~eqit_:~itree.] 0. secs (0.u,0.s) Chars 5020 - 5080 [Lemma~eqitF_mono~b1~b2~:~Prope...] 0. secs (0.u,0.s) Chars 5083 - 5089 [Proof.] 0. secs (0.u,0.s) -Chars 5094 - 5130 [intros~sim~sim'~Hsim~R1~R2~RR~...] 0. secs (0.u,0.s) -Chars 5135 - 5148 [unfold~eqit_.] 0. secs (0.u,0.s) -Chars 5149 - 5159 [intros~IN.] 0. secs (0.u,0.s) -Chars 5164 - 5196 [induction~IN;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 5094 - 5130 [(intros~sim~sim'~Hsim~R1~R2~RR...] 0. secs (0.u,0.s) +Chars 5135 - 5148 [(unfold~eqit_).] 0. secs (0.u,0.s) +Chars 5149 - 5159 [(intros~IN).] 0. secs (0.u,0.s) +Chars 5164 - 5196 [(induction~IN;~constructor;~au...] 0.002 secs (0.001u,0.s) Chars 5201 - 5202 [-] 0. secs (0.u,0.s) -Chars 5203 - 5220 [apply~Hsim;~auto.] 0.013 secs (0.012u,0.s) +Chars 5203 - 5220 [(apply~Hsim;~auto).] 0.018 secs (0.016u,0.001s) Chars 5225 - 5226 [-] 0. secs (0.u,0.s) -Chars 5227 - 5254 [intros~?;~apply~Hsim;~auto.] 0. secs (0.u,0.s) -Chars 5257 - 5261 [Qed.] 0. secs (0.u,0.s) -Chars 5320 - 5484 [Definition~eqit_mon~b1~b2~:~~~...] 0. secs (0.u,0.s) +Chars 5227 - 5254 [(intros~?;~apply~Hsim;~auto).] 0. secs (0.u,0.s) +Chars 5257 - 5261 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5320 - 5484 [Definition~eqit_mon~b1~b2~:~~~...] 0.001 secs (0.001u,0.s) Chars 5488 - 5609 [Definition~eqit~b1~b2~:~~~fora...] 0. secs (0.u,0.s) Chars 5820 - 5901 [Definition~eq_itree~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 5905 - 5980 [Definition~eutt~{R1}~{R2}~(RR~...] 0. secs (0.u,0.s) @@ -80,9 +80,9 @@ Chars 12750 - 12804 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) Chars 12805 - 12859 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) Chars 12860 - 12916 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) Chars 12917 - 12967 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 13018 - 13165 [Tactic~Notation~"step"~:=~~mat...] 0. secs (0.u,0.s) +Chars 13018 - 13165 [Tactic~Notation~"step"~:=~~(ma...] 0. secs (0.u,0.s) Chars 13268 - 13440 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 13443 - 13511 [Tactic~Notation~"unstep"~:=~iu...] 0. secs (0.u,0.s) +Chars 13443 - 13511 [Tactic~Notation~"unstep"~:=~(i...] 0. secs (0.u,0.s) Chars 13512 - 13616 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) Chars 13618 - 13699 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) Chars 13701 - 13816 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) @@ -108,103 +108,103 @@ Chars 15334 - 15368 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) Chars 15371 - 15406 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) Chars 15449 - 15466 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) Chars 15515 - 15520 [step.] 0.001 secs (0.001u,0.s) -Chars 15521 - 15528 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15521 - 15528 [unstep.] 0.003 secs (0.003u,0.s) Chars 15533 - 15538 [step.] 0.001 secs (0.001u,0.s) Chars 15543 - 15553 [Fail~step.] 0. secs (0.u,0.s) -Chars 15559 - 15566 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15559 - 15566 [unstep.] 0.003 secs (0.003u,0.s) Chars 15572 - 15584 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15591 - 15663 [assert~(eqitF~eq~false~false~(...] 0. secs (0.u,0.s) -Chars 15668 - 15673 [step.] 0.002 secs (0.002u,0.s) -Chars 15704 - 15709 [step.] 0.024 secs (0.024u,0.s) -Chars 15710 - 15717 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15591 - 15663 [(assert~(eqitF~eq~false~false~...] 0. secs (0.u,0.s) +Chars 15668 - 15673 [step.] 0.003 secs (0.003u,0.s) +Chars 15704 - 15709 [step.] 0.033 secs (0.033u,0.s) +Chars 15710 - 15717 [unstep.] 0.003 secs (0.003u,0.s) Chars 15718 - 15730 [Fail~unstep.] 0.001 secs (0.001u,0.s) Chars 15731 - 15736 [step.] 0.001 secs (0.001u,0.s) Chars 15737 - 15747 [Fail~step.] 0. secs (0.u,0.s) -Chars 15748 - 15772 [now~unstep;~apply~EQ2.] 0.002 secs (0.002u,0.s) -Chars 15778 - 15809 [assert~((elem~eqc~_~_~eq)~v~w).] 0. secs (0.u,0.s) +Chars 15748 - 15772 [now~unstep;~apply~EQ2.] 0.003 secs (0.003u,0.s) +Chars 15778 - 15809 [(assert~((elem~eqc~_~_~eq)~v~w)).] 0. secs (0.u,0.s) Chars 15814 - 15819 [step.] 0.001 secs (0.001u,0.s) Chars 15820 - 15825 [step.] 0.002 secs (0.002u,0.s) Chars 15857 - 15862 [step.] 0.001 secs (0.001u,0.s) -Chars 15863 - 15870 [unstep.] 0.002 secs (0.002u,0.s) +Chars 15863 - 15870 [unstep.] 0.003 secs (0.003u,0.s) Chars 15871 - 15883 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15884 - 15889 [step.] 0.002 secs (0.002u,0.s) +Chars 15884 - 15889 [step.] 0.001 secs (0.001u,0.s) Chars 15890 - 15900 [Fail~step.] 0. secs (0.u,0.s) -Chars 15901 - 15925 [now~unstep;~apply~EQ2.] 0.003 secs (0.002u,0.s) +Chars 15901 - 15925 [now~unstep;~apply~EQ2.] 0.007 secs (0.005u,0.001s) Chars 15931 - 15943 [to_mon~in~H.] 0. secs (0.u,0.s) Chars 15947 - 15953 [Abort.] 0. secs (0.u,0.s) Chars 15956 - 15980 [End~step_notation_tests.] 0. secs (0.u,0.s) Chars 15983 - 16281 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) Chars 16282 - 16288 [Proof.] 0. secs (0.u,0.s) -Chars 16291 - 16598 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) +Chars 16291 - 16598 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) Chars 16601 - 16602 [-] 0. secs (0.u,0.s) -Chars 16603 - 16615 [left;~eauto.] 0. secs (0.u,0.s) +Chars 16603 - 16615 [(left;~eauto).] 0. secs (0.u,0.s) Chars 16618 - 16619 [-] 0. secs (0.u,0.s) -Chars 16620 - 16639 [destruct~i0;~eauto.] 0.001 secs (0.u,0.s) +Chars 16620 - 16639 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) Chars 16640 - 16644 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16646 - 16947 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.u,0.s) +Chars 16646 - 16947 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.001u,0.s) Chars 16948 - 16954 [Proof.] 0. secs (0.u,0.s) -Chars 16957 - 17176 [refine~~~(fun~H~=>~~~~match~~~...] 0. secs (0.u,0.s) +Chars 16957 - 17176 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) Chars 17179 - 17180 [-] 0. secs (0.u,0.s) -Chars 17181 - 17193 [left;~eauto.] 0. secs (0.u,0.s) +Chars 17181 - 17193 [(left;~eauto).] 0. secs (0.u,0.s) Chars 17196 - 17197 [-] 0. secs (0.u,0.s) -Chars 17198 - 17216 [destruct~i;~eauto.] 0.001 secs (0.u,0.s) -Chars 17217 - 17221 [Qed.] 0.001 secs (0.u,0.s) -Chars 17223 - 17472 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0. secs (0.u,0.s) +Chars 17198 - 17216 [(destruct~i;~eauto).] 0.001 secs (0.001u,0.s) +Chars 17217 - 17221 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17223 - 17472 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.001u,0.s) Chars 17473 - 17479 [Proof.] 0. secs (0.u,0.s) -Chars 17482 - 17717 [refine~~~(fun~H~=>~~~~match~~~...] 0. secs (0.u,0.s) +Chars 17482 - 17717 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) Chars 17720 - 17721 [-] 0. secs (0.u,0.s) -Chars 17722 - 17749 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) +Chars 17722 - 17749 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) Chars 17752 - 17753 [-] 0. secs (0.u,0.s) -Chars 17754 - 17774 [destruct~i;~exact~I.] 0. secs (0.u,0.s) -Chars 17775 - 17779 [Qed.] 0. secs (0.u,0.s) +Chars 17754 - 17774 [(destruct~i;~exact~I).] 0. secs (0.u,0.s) +Chars 17775 - 17779 [Qed.] 0.001 secs (0.001u,0.s) Chars 17781 - 17974 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 17975 - 17981 [Proof.] 0. secs (0.u,0.s) -Chars 17984 - 17993 [intros~H.] 0. secs (0.u,0.s) -Chars 17994 - 18018 [dependent~destruction~H.] 0.003 secs (0.002u,0.s) +Chars 17984 - 17993 [(intros~H).] 0. secs (0.u,0.s) +Chars 17994 - 18018 [dependent~destruction~H.] 0.005 secs (0.004u,0.001s) Chars 18019 - 18030 [assumption.] 0. secs (0.u,0.s) -Chars 18031 - 18035 [Qed.] 0.002 secs (0.001u,0.s) -Chars 18037 - 18277 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 18031 - 18035 [Qed.] 0.003 secs (0.002u,0.s) +Chars 18037 - 18277 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0.001 secs (0.001u,0.s) Chars 18278 - 18284 [Proof.] 0. secs (0.u,0.s) -Chars 18287 - 18333 [destruct~p;~intros~<-;~cbn;~co...] 0.012 secs (0.012u,0.s) +Chars 18287 - 18333 [(destruct~p;~intros~<-;~cbn;~c...] 0.019 secs (0.018u,0.s) Chars 18334 - 18338 [Qed.] 0.001 secs (0.001u,0.s) Chars 18340 - 18469 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 18470 - 18476 [Proof.] 0. secs (0.u,0.s) -Chars 18479 - 18518 [intros~!;~induction~H;~eauto~w...] 0. secs (0.u,0.s) -Chars 18519 - 18523 [Qed.] 0. secs (0.u,0.s) +Chars 18479 - 18518 [(intros~!;~induction~H;~eauto~...] 0.001 secs (0.001u,0.s) +Chars 18519 - 18523 [Qed.] 0.001 secs (0.001u,0.s) Chars 18525 - 18677 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) Chars 18678 - 18684 [Proof.] 0. secs (0.u,0.s) Chars 18687 - 18695 [intros~!.] 0. secs (0.u,0.s) Chars 18696 - 18702 [subst.] 0. secs (0.u,0.s) -Chars 18703 - 18754 [split;~unfold~subrelationH,~Su...] 0. secs (0.u,0.s) -Chars 18757 - 18851 [all:~~induction~H0;~auto~with~...] 0.003 secs (0.003u,0.s) -Chars 18852 - 18856 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18703 - 18754 [(split;~unfold~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 18757 - 18851 [all:~~(induction~H0;~auto~with...] 0.004 secs (0.004u,0.s) +Chars 18852 - 18856 [Qed.] 0.002 secs (0.002u,0.s) Chars 18858 - 19023 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) Chars 19033 - 19041 [intros~!.] 0. secs (0.u,0.s) Chars 19042 - 19048 [subst.] 0. secs (0.u,0.s) -Chars 19049 - 19063 [split;~intros.] 0. secs (0.u,0.s) -Chars 19066 - 19135 [all:~induction~H0;~auto~with~i...] 0.001 secs (0.001u,0.s) -Chars 19136 - 19140 [Qed.] 0.001 secs (0.001u,0.s) +Chars 19049 - 19063 [(split;~intros).] 0. secs (0.u,0.s) +Chars 19066 - 19135 [all:~(induction~H0;~auto~with~...] 0.002 secs (0.002u,0.s) +Chars 19136 - 19140 [Qed.] 0.002 secs (0.002u,0.s) Chars 19142 - 19286 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) Chars 19287 - 19314 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) Chars 19317 - 19325 [intros~!.] 0. secs (0.u,0.s) Chars 19326 - 19332 [subst.] 0. secs (0.u,0.s) Chars 19336 - 19342 [split.] 0. secs (0.u,0.s) Chars 19345 - 19346 [-] 0. secs (0.u,0.s) -Chars 19347 - 19362 [revert_until~H.] 0. secs (0.u,0.s) -Chars 19363 - 19382 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) -Chars 19383 - 19390 [intros.] 0. secs (0.u,0.s) +Chars 19347 - 19362 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 19363 - 19382 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) +Chars 19383 - 19390 [(intros).] 0. secs (0.u,0.s) Chars 19395 - 19406 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19411 - 19438 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) -Chars 19443 - 19469 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) +Chars 19411 - 19438 [hinduction~H0~before~CIH~...] 0.003 secs (0.003u,0.s) +Chars 19443 - 19469 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) Chars 19473 - 19474 [-] 0. secs (0.u,0.s) -Chars 19475 - 19490 [revert_until~H.] 0. secs (0.u,0.s) -Chars 19491 - 19510 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) -Chars 19511 - 19518 [intros.] 0. secs (0.u,0.s) +Chars 19475 - 19490 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 19491 - 19510 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) +Chars 19511 - 19518 [(intros).] 0. secs (0.u,0.s) Chars 19525 - 19536 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19541 - 19568 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) -Chars 19574 - 19600 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) -Chars 19602 - 19606 [Qed.] 0.006 secs (0.006u,0.s) +Chars 19541 - 19568 [hinduction~H0~before~CIH~...] 0.003 secs (0.003u,0.s) +Chars 19574 - 19600 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 19602 - 19606 [Qed.] 0.009 secs (0.009u,0.s) Chars 19609 - 19750 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) Chars 19751 - 19757 [Proof.] 0. secs (0.u,0.s) Chars 19760 - 19793 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) @@ -219,14 +219,14 @@ Chars 20130 - 20163 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) Chars 20164 - 20168 [Qed.] 0. secs (0.u,0.s) Chars 20613 - 20764 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 20765 - 20771 [Proof.] 0. secs (0.u,0.s) -Chars 20798 - 20817 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20818 - 20833 [intros~u~v~euv.] 0. secs (0.u,0.s) +Chars 20798 - 20817 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 20818 - 20833 [(intros~u~v~euv).] 0. secs (0.u,0.s) Chars 20901 - 20913 [step~in~euv.] 0. secs (0.u,0.s) -Chars 20979 - 21011 [induction~euv;~eauto~with~itree.] 0.003 secs (0.003u,0.s) -Chars 21012 - 21016 [Qed.] 0.003 secs (0.003u,0.s) +Chars 20979 - 21011 [(induction~euv;~eauto~with~itr...] 0.004 secs (0.004u,0.s) +Chars 21012 - 21016 [Qed.] 0.004 secs (0.004u,0.s) Chars 21018 - 21196 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) Chars 21197 - 21203 [Proof.] 0. secs (0.u,0.s) -Chars 21206 - 21213 [intros.] 0. secs (0.u,0.s) +Chars 21206 - 21213 [(intros).] 0. secs (0.u,0.s) Chars 21214 - 21234 [now~apply~eqit_flip.] 0. secs (0.u,0.s) Chars 21237 - 21241 [Qed.] 0. secs (0.u,0.s) Chars 21243 - 21278 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) @@ -234,34 +234,34 @@ Chars 21314 - 21487 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 21488 - 21494 [Proof.] 0. secs (0.u,0.s) Chars 21497 - 21505 [intros~!.] 0. secs (0.u,0.s) Chars 21509 - 21523 [revert~a~a0~H.] 0. secs (0.u,0.s) -Chars 21527 - 21554 [icoinduction~c~CIH;~intros.] 0.001 secs (0.001u,0.s) +Chars 21527 - 21554 [(icoinduction~c~CIH;~intros).] 0.002 secs (0.002u,0.s) Chars 21559 - 21569 [step~in~H.] 0. secs (0.u,0.s) -Chars 21570 - 21600 [induction~H;~eauto~with~itree.] 0.003 secs (0.003u,0.s) +Chars 21570 - 21600 [(induction~H;~eauto~with~itree).] 0.004 secs (0.004u,0.s) Chars 21603 - 21616 [econstructor.] 0. secs (0.u,0.s) Chars 21617 - 21632 [now~apply~LERR.] 0. secs (0.u,0.s) -Chars 21635 - 21639 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21635 - 21639 [Qed.] 0.004 secs (0.004u,0.s) Chars 21738 - 21755 [Section~eqit_gen.] 0. secs (0.u,0.s) Chars 21808 - 21867 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 22239 - 22389 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 22390 - 22396 [Proof.] 0. secs (0.u,0.s) -Chars 22401 - 22405 [red.] 0. secs (0.u,0.s) -Chars 22406 - 22448 [destruct~x;~constructor;~eauto...] 0. secs (0.u,0.s) +Chars 22401 - 22405 [(red).] 0. secs (0.u,0.s) +Chars 22406 - 22448 [(destruct~x;~constructor;~eaut...] 0. secs (0.u,0.s) Chars 22449 - 22453 [Qed.] 0. secs (0.u,0.s) Chars 22504 - 22648 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 22649 - 22655 [Proof.] 0. secs (0.u,0.s) -Chars 22660 - 22664 [red.] 0. secs (0.u,0.s) -Chars 22665 - 22704 [induction~3;~constructor;~subs...] 0.001 secs (0.001u,0.s) +Chars 22660 - 22664 [(red).] 0. secs (0.u,0.s) +Chars 22665 - 22704 [(induction~3;~constructor;~sub...] 0.001 secs (0.001u,0.s) Chars 22705 - 22709 [Qed.] 0. secs (0.u,0.s) Chars 22759 - 22913 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 22914 - 22920 [Proof.] 0. secs (0.u,0.s) -Chars 22925 - 22949 [intros~?~?~t~u~v~EQ1~EQ2.] 0. secs (0.u,0.s) -Chars 22954 - 22999 [inv~EQ1;~try~now~inv~EQ2;~eaut...] 0.035 secs (0.035u,0.s) -Chars 23004 - 23072 [apply~eqitF_inv_VisF_l~in~EQ2~...] 0.001 secs (0.001u,0.s) -Chars 23077 - 23096 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 23097 - 23101 [Qed.] 0.002 secs (0.002u,0.s) +Chars 22925 - 22949 [(intros~?~?~t~u~v~EQ1~EQ2).] 0. secs (0.u,0.s) +Chars 22954 - 22999 [(inv~EQ1;~try~now~inv~EQ2;~eau...] 0.051 secs (0.051u,0.s) +Chars 23004 - 23072 [(apply~eqitF_inv_VisF_l~in~EQ2...] 0.001 secs (0.001u,0.s) +Chars 23077 - 23096 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 23097 - 23101 [Qed.] 0.004 secs (0.004u,0.s) Chars 23210 - 23301 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 23302 - 23308 [Proof.] 0. secs (0.u,0.s) -Chars 23311 - 23323 [red;~intros.] 0. secs (0.u,0.s) +Chars 23311 - 23323 [(red;~intros).] 0. secs (0.u,0.s) Chars 23326 - 23335 [revert~x.] 0. secs (0.u,0.s) Chars 23336 - 23355 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 23356 - 23362 [intro.] 0. secs (0.u,0.s) @@ -269,29 +269,29 @@ Chars 23366 - 23399 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) Chars 23400 - 23404 [Qed.] 0.001 secs (0.001u,0.s) Chars 23406 - 23491 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 23492 - 23498 [Proof.] 0. secs (0.u,0.s) -Chars 23501 - 23521 [intros~Hsym~x~y~Hxy.] 0. secs (0.u,0.s) -Chars 23524 - 23540 [apply~eqit_flip.] 0. secs (0.u,0.s) -Chars 23543 - 23595 [eapply~eqit_mono;~[~auto~|~aut...] 0.001 secs (0.001u,0.s) +Chars 23501 - 23521 [(intros~Hsym~x~y~Hxy).] 0. secs (0.u,0.s) +Chars 23524 - 23540 [(apply~eqit_flip).] 0. secs (0.u,0.s) +Chars 23543 - 23595 [(eapply~eqit_mono;~[~auto~|~au...] 0.001 secs (0.001u,0.s) Chars 23597 - 23601 [Qed.] 0. secs (0.u,0.s) Chars 23603 - 23731 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 23732 - 23738 [Proof.] 0. secs (0.u,0.s) -Chars 23741 - 23754 [red;~intro~x.] 0. secs (0.u,0.s) -Chars 23757 - 23777 [apply~(gfp_chain~c).] 0.001 secs (0.001u,0.s) +Chars 23741 - 23754 [(red;~intro~x).] 0. secs (0.u,0.s) +Chars 23757 - 23777 [(apply~(gfp_chain~c)).] 0.001 secs (0.001u,0.s) Chars 23780 - 23792 [reflexivity.] 0. secs (0.u,0.s) Chars 23793 - 23797 [Qed.] 0. secs (0.u,0.s) Chars 23799 - 23956 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) Chars 23957 - 23963 [Proof.] 0. secs (0.u,0.s) -Chars 23966 - 23986 [intros~T~HT~x~y~Hxy.] 0. secs (0.u,0.s) -Chars 23989 - 24001 [intros~z~Hz.] 0. secs (0.u,0.s) -Chars 24002 - 24017 [apply~HT;~auto.] 0. secs (0.u,0.s) +Chars 23966 - 23986 [(intros~T~HT~x~y~Hxy).] 0. secs (0.u,0.s) +Chars 23989 - 24001 [(intros~z~Hz).] 0. secs (0.u,0.s) +Chars 24002 - 24017 [(apply~HT;~auto).] 0. secs (0.u,0.s) Chars 24018 - 24022 [Qed.] 0. secs (0.u,0.s) Chars 24024 - 24146 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 24147 - 24153 [Proof.] 0. secs (0.u,0.s) Chars 24156 - 24165 [revert~c.] 0. secs (0.u,0.s) -Chars 24166 - 24204 [apply~(tower~inf_closed_Symmet...] 0. secs (0.u,0.s) -Chars 24207 - 24221 [intros~c~Hsym.] 0. secs (0.u,0.s) +Chars 24166 - 24204 [(apply~(tower~inf_closed_Symme...] 0. secs (0.u,0.s) +Chars 24207 - 24221 [(intros~c~Hsym).] 0. secs (0.u,0.s) Chars 24222 - 24230 [intros~!.] 0. secs (0.u,0.s) -Chars 24231 - 24259 [apply~Symmetric_eqitF;~auto.] 0. secs (0.u,0.s) +Chars 24231 - 24259 [(apply~Symmetric_eqitF;~auto).] 0. secs (0.u,0.s) Chars 24260 - 24264 [Qed.] 0. secs (0.u,0.s) Chars 24266 - 24279 [End~eqit_gen.] 0. secs (0.u,0.s) Chars 24282 - 24299 [Section~eqit_inv.] 0. secs (0.u,0.s) @@ -300,44 +300,44 @@ Chars 24380 - 24429 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) Chars 24433 - 24899 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) Chars 24903 - 24998 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 25001 - 25007 [Proof.] 0. secs (0.u,0.s) -Chars 25012 - 25023 [intros~*~H.] 0. secs (0.u,0.s) +Chars 25012 - 25023 [(intros~*~H).] 0. secs (0.u,0.s) Chars 25028 - 25038 [step~in~H.] 0. secs (0.u,0.s) Chars 25043 - 25048 [step.] 0.001 secs (0.001u,0.s) -Chars 25056 - 25084 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) -Chars 25089 - 25111 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) +Chars 25056 - 25084 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) +Chars 25089 - 25111 [(induction~H;~inv~Heqi).] 0.008 secs (0.008u,0.s) Chars 25118 - 25119 [-] 0. secs (0.u,0.s) Chars 25120 - 25132 [step~in~REL.] 0. secs (0.u,0.s) Chars 25133 - 25142 [now~taur.] 0. secs (0.u,0.s) Chars 25147 - 25148 [-] 0. secs (0.u,0.s) Chars 25149 - 25154 [taur.] 0. secs (0.u,0.s) Chars 25155 - 25173 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25177 - 25181 [Qed.] 0.002 secs (0.002u,0.s) +Chars 25177 - 25181 [Qed.] 0.003 secs (0.003u,0.s) Chars 25186 - 25281 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 25284 - 25290 [Proof.] 0. secs (0.u,0.s) -Chars 25295 - 25306 [intros~*~H.] 0. secs (0.u,0.s) +Chars 25295 - 25306 [(intros~*~H).] 0. secs (0.u,0.s) Chars 25311 - 25321 [step~in~H.] 0. secs (0.u,0.s) Chars 25326 - 25331 [step.] 0.001 secs (0.001u,0.s) -Chars 25339 - 25367 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) -Chars 25372 - 25394 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) +Chars 25339 - 25367 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) +Chars 25372 - 25394 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) Chars 25401 - 25402 [-] 0. secs (0.u,0.s) Chars 25403 - 25415 [step~in~REL.] 0. secs (0.u,0.s) Chars 25416 - 25425 [now~taul.] 0. secs (0.u,0.s) Chars 25431 - 25432 [-] 0. secs (0.u,0.s) Chars 25433 - 25438 [taul.] 0. secs (0.u,0.s) Chars 25439 - 25457 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25461 - 25465 [Qed.] 0.002 secs (0.002u,0.s) -Chars 25470 - 25658 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0. secs (0.u,0.s) +Chars 25461 - 25465 [Qed.] 0.003 secs (0.003u,0.s) +Chars 25470 - 25658 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0.001 secs (0.001u,0.s) Chars 25661 - 25667 [Proof.] 0. secs (0.u,0.s) -Chars 25672 - 25679 [intros.] 0. secs (0.u,0.s) -Chars 25684 - 25710 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 25716 - 25742 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 25672 - 25679 [(intros).] 0. secs (0.u,0.s) +Chars 25684 - 25710 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 25716 - 25742 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) Chars 25748 - 25775 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 25780 - 25839 [induction~H;~intros~t1'~t2'~He...] 0.022 secs (0.021u,0.s) +Chars 25780 - 25839 [(induction~H;~intros~t1'~t2'~H...] 0.028 secs (0.028u,0.s) Chars 25844 - 25845 [-] 0. secs (0.u,0.s) -Chars 25846 - 25869 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) -Chars 25870 - 25881 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 25846 - 25869 [(inv~Heqot1;~inv~Heqot2).] 0.009 secs (0.009u,0.s) +Chars 25870 - 25881 [now~unstep.] 0.004 secs (0.003u,0.s) Chars 25888 - 25889 [-] 0. secs (0.u,0.s) -Chars 25890 - 25917 [inv~H;~inv~Heqot1;~simpobs.] 0.034 secs (0.034u,0.s) +Chars 25890 - 25917 [(inv~H;~inv~Heqot1;~simpobs).] 0.051 secs (0.051u,0.s) Chars 25925 - 25926 [+] 0. secs (0.u,0.s) Chars 25927 - 25932 [taul.] 0. secs (0.u,0.s) Chars 25933 - 25949 [now~step~in~REL.] 0. secs (0.u,0.s) @@ -345,160 +345,160 @@ Chars 25958 - 25959 [+] 0. secs (0.u,0.s) Chars 25960 - 25965 [taul.] 0. secs (0.u,0.s) Chars 25966 - 25984 [now~apply~IHeqitF.] 0. secs (0.u,0.s) Chars 25991 - 25992 [-] 0. secs (0.u,0.s) -Chars 25993 - 26020 [inv~H;~inv~Heqot2;~simpobs.] 0.032 secs (0.032u,0.s) +Chars 25993 - 26020 [(inv~H;~inv~Heqot2;~simpobs).] 0.047 secs (0.047u,0.s) Chars 26028 - 26029 [+] 0. secs (0.u,0.s) Chars 26030 - 26035 [taur.] 0. secs (0.u,0.s) Chars 26036 - 26052 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 26060 - 26061 [+] 0. secs (0.u,0.s) Chars 26062 - 26067 [taur.] 0. secs (0.u,0.s) Chars 26068 - 26086 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 26090 - 26094 [Qed.] 0.007 secs (0.007u,0.s) +Chars 26090 - 26094 [Qed.] 0.011 secs (0.011u,0.s) Chars 26099 - 26194 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) Chars 26197 - 26203 [Proof.] 0. secs (0.u,0.s) -Chars 26208 - 26215 [intros.] 0. secs (0.u,0.s) -Chars 26220 - 26236 [step~in~H;~step.] 0.001 secs (0.001u,0.s) +Chars 26208 - 26215 [(intros).] 0. secs (0.u,0.s) +Chars 26220 - 26236 [(step~in~H;~step).] 0.002 secs (0.002u,0.s) Chars 26241 - 26265 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) -Chars 26269 - 26273 [Qed.] 0. secs (0.u,0.s) -Chars 26278 - 26337 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0. secs (0.u,0.s) +Chars 26269 - 26273 [Qed.] 0.001 secs (0.001u,0.s) +Chars 26278 - 26337 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0.001 secs (0.001u,0.s) Chars 26340 - 26346 [Proof.] 0. secs (0.u,0.s) -Chars 26351 - 26371 [intros~H;~step~in~H.] 0. secs (0.u,0.s) -Chars 26376 - 26459 [genobs~t1~ot1;~genobs~t2~ot2;~...] 0. secs (0.u,0.s) -Chars 26464 - 26524 [destruct~H;~intros~*~E1~E2;~re...] 0.001 secs (0.001u,0.s) +Chars 26351 - 26371 [(intros~H;~step~in~H).] 0. secs (0.u,0.s) +Chars 26376 - 26459 [(genobs~t1~ot1;~genobs~t2~ot2;...] 0. secs (0.u,0.s) +Chars 26464 - 26524 [(destruct~H;~intros~*~E1~E2;~r...] 0.003 secs (0.003u,0.s) Chars 26529 - 26530 [-] 0. secs (0.u,0.s) -Chars 26531 - 26558 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) +Chars 26531 - 26558 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) Chars 26563 - 26564 [-] 0. secs (0.u,0.s) -Chars 26565 - 26584 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) -Chars 26585 - 26598 [destruct~ot2.] 0. secs (0.u,0.s) -Chars 26605 - 26668 [1,~3:~step;~unfold~observe,~_o...] 0.003 secs (0.003u,0.s) -Chars 26675 - 26743 [1:~apply~eqit_inv_Tau_r;~step;...] 0.001 secs (0.001u,0.s) +Chars 26565 - 26584 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) +Chars 26585 - 26598 [(destruct~ot2).] 0. secs (0.u,0.s) +Chars 26605 - 26668 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) +Chars 26675 - 26743 [1:~(apply~eqit_inv_Tau_r;~step...] 0.001 secs (0.001u,0.s) Chars 26748 - 26749 [-] 0. secs (0.u,0.s) -Chars 26750 - 26769 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) -Chars 26770 - 26783 [destruct~ot1.] 0. secs (0.u,0.s) -Chars 26790 - 26853 [1,~3:~step;~unfold~observe,~_o...] 0.002 secs (0.002u,0.s) -Chars 26860 - 26928 [1:~apply~eqit_inv_Tau_l;~step;...] 0.001 secs (0.001u,0.s) -Chars 26931 - 26935 [Qed.] 0.006 secs (0.006u,0.s) +Chars 26750 - 26769 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) +Chars 26770 - 26783 [(destruct~ot1).] 0. secs (0.u,0.s) +Chars 26790 - 26853 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) +Chars 26860 - 26928 [1:~(apply~eqit_inv_Tau_l;~step...] 0.001 secs (0.001u,0.s) +Chars 26931 - 26935 [Qed.] 0.009 secs (0.009u,0.s) Chars 26937 - 27122 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) Chars 27123 - 27129 [Proof.] 0. secs (0.u,0.s) -Chars 27132 - 27150 [intros~om1~Heq~H2.] 0. secs (0.u,0.s) -Chars 27214 - 27260 [induction~H2;~taul;~simpobs;~e...] 0.003 secs (0.003u,0.s) -Chars 27262 - 27266 [Qed.] 0. secs (0.u,0.s) +Chars 27132 - 27150 [(intros~om1~Heq~H2).] 0. secs (0.u,0.s) +Chars 27214 - 27260 [(induction~H2;~taul;~simpobs;~...] 0.006 secs (0.006u,0.s) +Chars 27262 - 27266 [Qed.] 0.001 secs (0.001u,0.s) Chars 27269 - 27282 [End~eqit_inv.] 0. secs (0.u,0.s) Chars 27284 - 27328 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) Chars 27329 - 27373 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) Chars 27374 - 27422 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) Chars 27424 - 27552 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) Chars 27553 - 27559 [Proof.] 0. secs (0.u,0.s) -Chars 27562 - 27584 [intros~EQ;~step~in~EQ.] 0. secs (0.u,0.s) -Chars 27587 - 27620 [desobs~t~ot;~eauto;~inv~EQ;~easy.] 0.006 secs (0.006u,0.s) -Chars 27621 - 27625 [Qed.] 0.004 secs (0.004u,0.s) +Chars 27562 - 27584 [(intros~EQ;~step~in~EQ).] 0. secs (0.u,0.s) +Chars 27587 - 27620 [(desobs~t~ot;~eauto;~inv~EQ;~e...] 0.01 secs (0.01u,0.s) +Chars 27621 - 27625 [Qed.] 0.005 secs (0.005u,0.s) Chars 27627 - 27800 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 27801 - 27807 [Proof.] 0. secs (0.u,0.s) -Chars 27810 - 27820 [intros~EQ.] 0. secs (0.u,0.s) -Chars 27823 - 27845 [step~in~EQ;~cbn~in~EQ.] 0. secs (0.u,0.s) -Chars 27848 - 27873 [genobs~t~ot;~genobs~u~ou.] 0. secs (0.u,0.s) +Chars 27810 - 27820 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 27823 - 27845 [(step~in~EQ;~cbn~in~EQ).] 0. secs (0.u,0.s) +Chars 27848 - 27873 [(genobs~t~ot;~genobs~u~ou).] 0. secs (0.u,0.s) Chars 27876 - 27899 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) -Chars 27902 - 27933 [induction~EQ;~intros;~try~easy.] 0.007 secs (0.007u,0.s) +Chars 27902 - 27933 [(induction~EQ;~intros;~try~easy).] 0.012 secs (0.012u,0.s) Chars 27936 - 27937 [-] 0. secs (0.u,0.s) -Chars 27938 - 27952 [inv~H;~inv~H0.] 0.001 secs (0.001u,0.s) +Chars 27938 - 27952 [(inv~H;~inv~H0).] 0.002 secs (0.002u,0.s) Chars 27956 - 27957 [-] 0. secs (0.u,0.s) -Chars 27958 - 27973 [inv~H;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 27978 - 28022 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 27958 - 27973 [(inv~H;~simpobs).] 0.005 secs (0.005u,0.s) +Chars 27978 - 28022 [(edestruct~euttge_tau_r_inv;~[...] 0.004 secs (0.004u,0.s) Chars 28027 - 28032 [step.] 0.001 secs (0.001u,0.s) -Chars 28037 - 28045 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 28037 - 28045 [simpobs.] 0.004 secs (0.004u,0.s) Chars 28050 - 28055 [taul.] 0. secs (0.u,0.s) -Chars 28060 - 28067 [unstep.] 0.002 secs (0.002u,0.s) -Chars 28072 - 28091 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 28092 - 28096 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28060 - 28067 [unstep.] 0.003 secs (0.003u,0.s) +Chars 28072 - 28091 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 28092 - 28096 [Qed.] 0.006 secs (0.006u,0.s) Chars 28099 - 28237 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) Chars 28240 - 28432 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) Chars 28437 - 28562 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) Chars 28565 - 28621 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) Chars 28622 - 28677 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) -Chars 29406 - 29568 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 29406 - 29568 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) Chars 29569 - 29597 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 29600 - 29638 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 29641 - 29657 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 29660 - 29725 [clear~c;~intros~c~IH~x~x'~EQx~...] 0.001 secs (0.001u,0.s) -Chars 29730 - 29740 [intros~EQ.] 0. secs (0.u,0.s) +Chars 29600 - 29638 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 29641 - 29657 [tower~induction.] 0.004 secs (0.004u,0.s) +Chars 29660 - 29725 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 29730 - 29740 [(intros~EQ).] 0. secs (0.u,0.s) Chars 29741 - 29751 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 29757 - 29786 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 29757 - 29786 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) Chars 29906 - 29945 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 29950 - 29971 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 29950 - 29971 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) Chars 29976 - 29977 [+] 0. secs (0.u,0.s) Chars 29978 - 30004 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30011 - 30023 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 30030 - 30044 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 30011 - 30023 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30030 - 30044 [(genret~r1~or1).] 0. secs (0.u,0.s) Chars 30051 - 30066 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30073 - 30108 [hinduction~EQx~before~ox;~try~...] 0.036 secs (0.036u,0.s) +Chars 30073 - 30108 [(hinduction~EQx~before~ox;~try...] 0.053 secs (0.053u,0.s) Chars 30115 - 30116 [*] 0. secs (0.u,0.s) -Chars 30117 - 30143 [intros;~subst;~inv~Heqor1.] 0.005 secs (0.005u,0.s) +Chars 30117 - 30143 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) Chars 30144 - 30158 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30167 - 30194 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 30167 - 30194 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) Chars 30203 - 30218 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30227 - 30262 [hinduction~EQy~before~oy;~try~...] 0.024 secs (0.024u,0.s) -Chars 30271 - 30296 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 30227 - 30262 [(hinduction~EQy~before~oy;~try...] 0.035 secs (0.035u,0.s) +Chars 30271 - 30296 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) Chars 30305 - 30336 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) Chars 30343 - 30344 [*] 0. secs (0.u,0.s) -Chars 30345 - 30381 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 30345 - 30381 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 30386 - 30387 [+] 0. secs (0.u,0.s) Chars 30388 - 30414 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30421 - 30433 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 30440 - 30454 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 30421 - 30433 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30440 - 30454 [(gentau~m1~om1).] 0. secs (0.u,0.s) Chars 30461 - 30476 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30483 - 30518 [hinduction~EQx~before~ox;~try~...] 0.038 secs (0.038u,0.s) +Chars 30483 - 30518 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.054u,0.s) Chars 30525 - 30526 [*] 0. secs (0.u,0.s) -Chars 30527 - 30545 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 30527 - 30545 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) Chars 30554 - 30568 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30577 - 30604 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 30577 - 30604 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) Chars 30613 - 30628 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30637 - 30672 [hinduction~EQy~before~oy;~try~...] 0.027 secs (0.027u,0.s) -Chars 30681 - 30699 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) -Chars 30708 - 30715 [intros.] 0. secs (0.u,0.s) +Chars 30637 - 30672 [(hinduction~EQy~before~oy;~try...] 0.039 secs (0.039u,0.s) +Chars 30681 - 30699 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) +Chars 30708 - 30715 [(intros).] 0. secs (0.u,0.s) Chars 30724 - 30729 [taur.] 0. secs (0.u,0.s) Chars 30738 - 30755 [now~eapply~IHEQy.] 0. secs (0.u,0.s) Chars 30762 - 30763 [*] 0. secs (0.u,0.s) -Chars 30764 - 30800 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 30764 - 30800 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 30805 - 30806 [+] 0. secs (0.u,0.s) Chars 30807 - 30833 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30840 - 30852 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 30859 - 30875 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 30840 - 30852 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30859 - 30875 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) Chars 30882 - 30897 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30904 - 30939 [hinduction~EQx~before~ox;~try~...] 0.038 secs (0.037u,0.s) +Chars 30904 - 30939 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.054u,0.s) Chars 30946 - 30947 [*] 0. secs (0.u,0.s) -Chars 30948 - 30955 [intros.] 0. secs (0.u,0.s) -Chars 30964 - 31030 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 30948 - 30955 [(intros).] 0. secs (0.u,0.s) +Chars 30964 - 31030 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) Chars 31039 - 31053 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 31062 - 31091 [genobs~y~oy;~genvis~e~k2~ot2.] 0. secs (0.u,0.s) +Chars 31062 - 31091 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) Chars 31100 - 31115 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 31124 - 31159 [hinduction~EQy~before~oy;~try~...] 0.025 secs (0.025u,0.s) -Chars 31168 - 31260 [intros;~apply~eq_inv_VisF_weak...] 0.015 secs (0.015u,0.s) -Chars 31269 - 31276 [intros.] 0. secs (0.u,0.s) +Chars 31124 - 31159 [(hinduction~EQy~before~oy;~try...] 0.037 secs (0.037u,0.s) +Chars 31168 - 31260 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) +Chars 31269 - 31276 [(intros).] 0. secs (0.u,0.s) Chars 31285 - 31290 [taur.] 0. secs (0.u,0.s) Chars 31299 - 31316 [now~eapply~IHEQy.] 0. secs (0.u,0.s) Chars 31323 - 31324 [*] 0. secs (0.u,0.s) -Chars 31325 - 31361 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 31325 - 31361 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 31366 - 31367 [+] 0. secs (0.u,0.s) -Chars 31368 - 31412 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) -Chars 31419 - 31427 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 31368 - 31412 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 31419 - 31427 [simpobs.] 0.005 secs (0.005u,0.s) Chars 31434 - 31439 [taul.] 0. secs (0.u,0.s) -Chars 31446 - 31465 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 31472 - 31523 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 31530 - 31567 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 31446 - 31465 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 31472 - 31523 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 31530 - 31567 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) Chars 31572 - 31573 [+] 0. secs (0.u,0.s) -Chars 31574 - 31618 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) -Chars 31625 - 31633 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 31574 - 31618 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 31625 - 31633 [simpobs.] 0.005 secs (0.005u,0.s) Chars 31640 - 31645 [taur.] 0. secs (0.u,0.s) -Chars 31652 - 31671 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 31678 - 31729 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 31736 - 31773 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 31774 - 31778 [Qed.] 0.019 secs (0.019u,0.s) -Chars 31838 - 32032 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 31652 - 31671 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 31678 - 31729 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 31736 - 31773 [(unstep;~eapply~euttge_tau_inv...] 0.005 secs (0.005u,0.s) +Chars 31774 - 31778 [Qed.] 0.029 secs (0.029u,0.s) +Chars 31838 - 32032 [#[global]~Instance~euttge_prop...] 0.003 secs (0.003u,0.s) Chars 32033 - 32039 [Proof.] 0. secs (0.u,0.s) -Chars 32042 - 32098 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) +Chars 32042 - 32098 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) Chars 32101 - 32105 [Qed.] 0. secs (0.u,0.s) Chars 32147 - 32332 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) Chars 32334 - 32340 [Proof.] 0. secs (0.u,0.s) -Chars 32343 - 32422 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) +Chars 32343 - 32422 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) Chars 32425 - 32429 [Qed.] 0. secs (0.u,0.s) Chars 32432 - 32536 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 32537 - 32543 [Proof.] 0. secs (0.u,0.s) @@ -522,367 +522,367 @@ Chars 33103 - 33123 [now~apply~eqit_mono.] 0. secs (0.u,0.s) Chars 33124 - 33128 [Qed.] 0. secs (0.u,0.s) Chars 33130 - 33235 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) Chars 33236 - 33242 [Proof.] 0. secs (0.u,0.s) -Chars 33243 - 33263 [now~apply~eqit_mono.] 0.002 secs (0.002u,0.s) +Chars 33243 - 33263 [now~apply~eqit_mono.] 0. secs (0.u,0.s) Chars 33264 - 33268 [Qed.] 0. secs (0.u,0.s) -Chars 33270 - 33426 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 33270 - 33426 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) Chars 33427 - 33433 [Proof.] 0. secs (0.u,0.s) -Chars 33437 - 33450 [split;~intro.] 0. secs (0.u,0.s) -Chars 33454 - 33487 [1:~symmetry~in~H;~symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 33491 - 33622 [all:~~apply~eq_sub_euttge~with...] 0.002 secs (0.002u,0.s) +Chars 33437 - 33450 [(split;~intro).] 0. secs (0.u,0.s) +Chars 33454 - 33487 [1:~(symmetry~in~H;~symmetry~in...] 0. secs (0.u,0.s) +Chars 33491 - 33622 [all:~~(apply~eq_sub_euttge~wit...] 0.004 secs (0.004u,0.s) Chars 33623 - 33627 [Qed.] 0.001 secs (0.001u,0.s) Chars 33629 - 33778 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) Chars 33780 - 33808 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 33812 - 33926 [split;~intros;~revert_until~RR...] 0.005 secs (0.005u,0.s) -Chars 33929 - 33968 [all:~hinduction~H1~before~RR;~...] 0.003 secs (0.003u,0.s) -Chars 33999 - 34050 [1-2,~6-7:~inv~H;~inv~H0;~simpo...] 0.179 secs (0.178u,0.001s) -Chars 34066 - 34245 [1,~4:~~genvis~e~k1~ok1;~inv~H;...] 0.168 secs (0.166u,0.001s) -Chars 34273 - 34342 [1,~3:~inv~H;~simpobs;~taul;~ea...] 0.073 secs (0.072u,0.s) -Chars 34345 - 34415 [1-2:~inv~H0;~simpobs;~taur;~ea...] 0.072 secs (0.071u,0.s) -Chars 34416 - 34420 [Qed.] 0.056 secs (0.055u,0.s) -Chars 34923 - 35089 [Lemma~not_euttge_proper_euttge...] 0. secs (0.u,0.s) -Chars 35092 - 35130 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 33812 - 33926 [(split;~intros;~revert_until~R...] 0.01 secs (0.01u,0.s) +Chars 33929 - 33968 [all:~(hinduction~H1~before~RR;...] 0.004 secs (0.004u,0.s) +Chars 33999 - 34050 [1-2,~6-7:~(inv~H;~inv~H0;~simp...] 0.262 secs (0.26u,0.001s) +Chars 34066 - 34245 [1,~4:~~(genvis~e~k1~ok1;~inv~H...] 0.234 secs (0.234u,0.s) +Chars 34273 - 34342 [1,~3:~(inv~H;~simpobs;~taul;~e...] 0.098 secs (0.098u,0.s) +Chars 34345 - 34415 [1-2:~(inv~H0;~simpobs;~taur;~e...] 0.101 secs (0.101u,0.s) +Chars 34416 - 34420 [Qed.] 0.083 secs (0.082u,0.s) +Chars 34923 - 35089 [Lemma~not_euttge_proper_euttge...] 0.001 secs (0.001u,0.s) +Chars 35092 - 35130 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) Chars 35134 - 35140 [intro.] 0. secs (0.u,0.s) -Chars 35142 - 35266 [assert~~(Hfalse~:~~~euttge~(E:...] 0. secs (0.u,0.s) +Chars 35142 - 35266 [(assert~~~(Hfalse~:~~~~euttge~...] 0. secs (0.u,0.s) Chars 35269 - 35270 [{] 0. secs (0.u,0.s) -Chars 35271 - 35313 [eapply~H~with~(x~:=~Ret~tt)~(y...] 0. secs (0.u,0.s) +Chars 35271 - 35313 [(eapply~H~with~(x~:=~Ret~tt)~(...] 0. secs (0.u,0.s) Chars 35436 - 35437 [-] 0. secs (0.u,0.s) Chars 35438 - 35450 [reflexivity.] 0. secs (0.u,0.s) Chars 35455 - 35456 [-] 0. secs (0.u,0.s) -Chars 35457 - 35462 [step.] 0.001 secs (0.001u,0.s) +Chars 35457 - 35462 [step.] 0.002 secs (0.002u,0.s) Chars 35463 - 35468 [taul.] 0. secs (0.u,0.s) Chars 35469 - 35481 [reflexivity.] 0. secs (0.u,0.s) Chars 35486 - 35487 [-] 0. secs (0.u,0.s) Chars 35488 - 35500 [reflexivity.] 0. secs (0.u,0.s) Chars 35501 - 35502 [}] 0. secs (0.u,0.s) -Chars 35505 - 35520 [step~in~Hfalse.] 0. secs (0.u,0.s) -Chars 35521 - 35532 [inv~Hfalse.] 0.002 secs (0.002u,0.s) -Chars 35534 - 35538 [Qed.] 0.003 secs (0.003u,0.s) -Chars 35575 - 35742 [Lemma~euttge_proper_flip_euttg...] 0. secs (0.u,0.s) +Chars 35505 - 35520 [step~in~Hfalse.] 0.001 secs (0.001u,0.s) +Chars 35521 - 35532 [(inv~Hfalse).] 0.003 secs (0.003u,0.s) +Chars 35534 - 35538 [Qed.] 0.004 secs (0.004u,0.s) +Chars 35575 - 35742 [Lemma~euttge_proper_flip_euttg...] 0.001 secs (0.001u,0.s) Chars 35743 - 35771 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 35774 - 35812 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 35815 - 35831 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 35834 - 35899 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) -Chars 35904 - 35914 [intros~EQ.] 0. secs (0.u,0.s) +Chars 35774 - 35812 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 35815 - 35831 [tower~induction.] 0.004 secs (0.004u,0.s) +Chars 35834 - 35899 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 35904 - 35914 [(intros~EQ).] 0. secs (0.u,0.s) Chars 35915 - 35925 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 35931 - 35960 [genobs~x'~ox';~genobs~y'~oy'.] 0.002 secs (0.002u,0.s) +Chars 35931 - 35960 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) Chars 36080 - 36119 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 36124 - 36145 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 36124 - 36145 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) Chars 36150 - 36151 [+] 0. secs (0.u,0.s) Chars 36152 - 36178 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36185 - 36197 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 36204 - 36218 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 36185 - 36197 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 36204 - 36218 [(genret~r1~or1).] 0. secs (0.u,0.s) Chars 36225 - 36240 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36247 - 36282 [hinduction~EQx~before~ox;~try~...] 0.034 secs (0.034u,0.s) +Chars 36247 - 36282 [(hinduction~EQx~before~ox;~try...] 0.049 secs (0.049u,0.s) Chars 36289 - 36290 [*] 0. secs (0.u,0.s) -Chars 36291 - 36317 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) +Chars 36291 - 36317 [(intros;~subst;~inv~Heqor1).] 0.006 secs (0.006u,0.s) Chars 36318 - 36332 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36341 - 36368 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 36341 - 36368 [(genobs~y~oy;~genret~r2~or2).] 0. secs (0.u,0.s) Chars 36377 - 36392 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36401 - 36436 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) -Chars 36445 - 36470 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 36401 - 36436 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) +Chars 36445 - 36470 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) Chars 36477 - 36478 [*] 0. secs (0.u,0.s) -Chars 36479 - 36515 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 36479 - 36515 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 36520 - 36521 [+] 0. secs (0.u,0.s) Chars 36522 - 36548 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36555 - 36567 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 36574 - 36588 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 36555 - 36567 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 36574 - 36588 [(gentau~m1~om1).] 0. secs (0.u,0.s) Chars 36595 - 36610 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36617 - 36652 [hinduction~EQx~before~ox;~try~...] 0.036 secs (0.036u,0.s) +Chars 36617 - 36652 [(hinduction~EQx~before~ox;~try...] 0.053 secs (0.053u,0.s) Chars 36659 - 36660 [*] 0. secs (0.u,0.s) -Chars 36661 - 36679 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 36661 - 36679 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) Chars 36688 - 36702 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36711 - 36738 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 36711 - 36738 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) Chars 36747 - 36762 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36771 - 36807 [hinduction~EQy~before~om2;~try...] 0.027 secs (0.027u,0.s) -Chars 36816 - 36834 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) -Chars 36843 - 36859 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 36771 - 36807 [(hinduction~EQy~before~om2;~tr...] 0.037 secs (0.037u,0.s) +Chars 36816 - 36834 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) +Chars 36843 - 36859 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) Chars 36868 - 36873 [taul.] 0. secs (0.u,0.s) Chars 36874 - 36880 [subst.] 0. secs (0.u,0.s) Chars 36881 - 36886 [step.] 0.002 secs (0.002u,0.s) Chars 37045 - 37051 [admit.] 0. secs (0.u,0.s) Chars 37059 - 37060 [*] 0. secs (0.u,0.s) -Chars 37061 - 37097 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 37061 - 37097 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 37102 - 37103 [+] 0. secs (0.u,0.s) Chars 37104 - 37130 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 37137 - 37149 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 37156 - 37172 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 37137 - 37149 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 37156 - 37172 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) Chars 37179 - 37194 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 37201 - 37236 [hinduction~EQx~before~ox;~try~...] 0.034 secs (0.034u,0.s) -Chars 37243 - 37250 [intros.] 0. secs (0.u,0.s) -Chars 37251 - 37259 [inv_Vis.] 0.006 secs (0.006u,0.s) -Chars 37267 - 37297 [apply~eqitF_inv_VisF_l~in~EQy.] 0. secs (0.u,0.s) -Chars 37298 - 37327 [break~EQy;~try~easy;~break~H.] 0.003 secs (0.003u,0.s) -Chars 37335 - 37345 [simpobs~...] 0.017 secs (0.017u,0.s) -Chars 37352 - 37359 [intros.] 0. secs (0.u,0.s) +Chars 37201 - 37236 [(hinduction~EQx~before~ox;~try...] 0.049 secs (0.049u,0.s) +Chars 37243 - 37250 [(intros).] 0. secs (0.u,0.s) +Chars 37251 - 37259 [inv_Vis.] 0.01 secs (0.01u,0.s) +Chars 37267 - 37297 [(apply~eqitF_inv_VisF_l~in~EQy).] 0. secs (0.u,0.s) +Chars 37298 - 37327 [(break~EQy;~try~easy;~break~H).] 0.004 secs (0.004u,0.s) +Chars 37335 - 37345 [simpobs~...] 0.024 secs (0.024u,0.s) +Chars 37352 - 37359 [(intros).] 0. secs (0.u,0.s) Chars 37360 - 37365 [taul.] 0. secs (0.u,0.s) -Chars 37366 - 37386 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 37366 - 37386 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) Chars 37393 - 37394 [+] 0. secs (0.u,0.s) -Chars 37395 - 37439 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 37446 - 37454 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 37395 - 37439 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 37446 - 37454 [simpobs.] 0.005 secs (0.005u,0.s) Chars 37461 - 37466 [taul.] 0. secs (0.u,0.s) -Chars 37473 - 37492 [eapply~IHEQ;~eauto.] 0.001 secs (0.001u,0.s) -Chars 37499 - 37550 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 37557 - 37594 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 37473 - 37492 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 37499 - 37550 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 37557 - 37594 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) Chars 37599 - 37600 [+] 0. secs (0.u,0.s) -Chars 37601 - 37606 [easy.] 0.012 secs (0.012u,0.s) +Chars 37601 - 37606 [easy.] 0.016 secs (0.016u,0.s) Chars 37608 - 37614 [Abort.] 0. secs (0.u,0.s) -Chars 37838 - 38009 [#[global]~Instance~euttge_eq_p...] 0. secs (0.u,0.s) +Chars 37838 - 38009 [#[global]~Instance~euttge_eq_p...] 0.001 secs (0.001u,0.s) Chars 38010 - 38038 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 38041 - 38079 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 38082 - 38098 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 38101 - 38166 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) -Chars 38171 - 38181 [intros~EQ.] 0. secs (0.u,0.s) +Chars 38041 - 38079 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 38082 - 38098 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 38101 - 38166 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 38171 - 38181 [(intros~EQ).] 0. secs (0.u,0.s) Chars 38182 - 38192 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 38198 - 38227 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 38198 - 38227 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) Chars 38232 - 38271 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 38276 - 38297 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 38276 - 38297 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) Chars 38302 - 38303 [+] 0. secs (0.u,0.s) Chars 38304 - 38330 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 38337 - 38349 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 38356 - 38370 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 38337 - 38349 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 38356 - 38370 [(genret~r1~or1).] 0. secs (0.u,0.s) Chars 38377 - 38392 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 38399 - 38434 [hinduction~EQx~before~ox;~try~...] 0.035 secs (0.035u,0.s) +Chars 38399 - 38434 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.051u,0.s) Chars 38441 - 38442 [*] 0. secs (0.u,0.s) -Chars 38443 - 38469 [intros;~subst;~inv~Heqor1.] 0.005 secs (0.005u,0.s) +Chars 38443 - 38469 [(intros;~subst;~inv~Heqor1).] 0.008 secs (0.008u,0.s) Chars 38470 - 38484 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 38493 - 38520 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 38493 - 38520 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) Chars 38529 - 38544 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 38645 - 38680 [hinduction~EQy~before~oy;~try~...] 0.019 secs (0.019u,0.s) -Chars 38689 - 38714 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 38645 - 38680 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) +Chars 38689 - 38714 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) Chars 38721 - 38722 [*] 0. secs (0.u,0.s) -Chars 38723 - 38759 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 38723 - 38759 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 38764 - 38765 [+] 0. secs (0.u,0.s) Chars 38766 - 38792 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 38799 - 38811 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 38818 - 38832 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 38799 - 38811 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 38818 - 38832 [(gentau~m1~om1).] 0. secs (0.u,0.s) Chars 38839 - 38854 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 38861 - 38896 [hinduction~EQx~before~ox;~try~...] 0.037 secs (0.037u,0.s) +Chars 38861 - 38896 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) Chars 38903 - 38904 [*] 0. secs (0.u,0.s) -Chars 38905 - 38923 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 38905 - 38923 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) Chars 38932 - 38946 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 38955 - 38982 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 38955 - 38982 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) Chars 38991 - 39006 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 39015 - 39050 [hinduction~EQy~before~oy;~try~...] 0.022 secs (0.022u,0.s) -Chars 39059 - 39077 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 39015 - 39050 [(hinduction~EQy~before~oy;~try...] 0.03 secs (0.03u,0.s) +Chars 39059 - 39077 [(intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) Chars 39084 - 39085 [*] 0. secs (0.u,0.s) -Chars 39086 - 39122 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 39086 - 39122 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 39127 - 39128 [+] 0. secs (0.u,0.s) Chars 39129 - 39155 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 39162 - 39174 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 39181 - 39197 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 39162 - 39174 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 39181 - 39197 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) Chars 39204 - 39219 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 39226 - 39261 [hinduction~EQx~before~ox;~try~...] 0.037 secs (0.036u,0.s) +Chars 39226 - 39261 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.051u,0.s) Chars 39268 - 39269 [*] 0. secs (0.u,0.s) -Chars 39270 - 39277 [intros.] 0. secs (0.u,0.s) -Chars 39286 - 39352 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 39270 - 39277 [(intros).] 0. secs (0.u,0.s) +Chars 39286 - 39352 [(apply~eq_inv_VisF_weak~in~Heq...] 0.002 secs (0.001u,0.s) Chars 39361 - 39375 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 39384 - 39413 [genobs~y~oy;~genvis~e~k2~ot2.] 0. secs (0.u,0.s) +Chars 39384 - 39413 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) Chars 39422 - 39437 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 39446 - 39481 [hinduction~EQy~before~oy;~try~...] 0.02 secs (0.02u,0.s) -Chars 39490 - 39582 [intros;~apply~eq_inv_VisF_weak...] 0.015 secs (0.015u,0.s) +Chars 39446 - 39481 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) +Chars 39490 - 39582 [(intros;~apply~eq_inv_VisF_wea...] 0.022 secs (0.022u,0.s) Chars 39589 - 39590 [*] 0. secs (0.u,0.s) -Chars 39591 - 39627 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 39591 - 39627 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) Chars 39632 - 39633 [+] 0. secs (0.u,0.s) -Chars 39634 - 39678 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 39685 - 39693 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 39634 - 39678 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 39685 - 39693 [simpobs.] 0.005 secs (0.005u,0.s) Chars 39700 - 39705 [taul.] 0. secs (0.u,0.s) -Chars 39712 - 39731 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 39738 - 39789 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 39796 - 39833 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 39712 - 39731 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 39738 - 39789 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 39796 - 39833 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) Chars 39838 - 39839 [+] 0. secs (0.u,0.s) -Chars 39840 - 39845 [easy.] 0.012 secs (0.012u,0.s) -Chars 39895 - 39899 [Qed.] 0.017 secs (0.017u,0.s) -Chars 39901 - 40061 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 39840 - 39845 [easy.] 0.018 secs (0.018u,0.s) +Chars 39895 - 39899 [Qed.] 0.026 secs (0.026u,0.s) +Chars 39901 - 40061 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) Chars 40062 - 40068 [Proof.] 0. secs (0.u,0.s) -Chars 40071 - 40084 [split;~intro.] 0. secs (0.u,0.s) +Chars 40071 - 40084 [(split;~intro).] 0. secs (0.u,0.s) Chars 40087 - 40088 [-] 0. secs (0.u,0.s) -Chars 40211 - 40267 [symmetry~in~H;~apply~eq_sub_eu...] 0. secs (0.u,0.s) +Chars 40211 - 40267 [(symmetry~in~H;~apply~eq_sub_e...] 0. secs (0.u,0.s) Chars 40272 - 40287 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 40292 - 40331 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) +Chars 40292 - 40331 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) Chars 40334 - 40335 [-] 0. secs (0.u,0.s) -Chars 40448 - 40489 [apply~eq_sub_euttge~with~(RR~:...] 0. secs (0.u,0.s) -Chars 40494 - 40533 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) +Chars 40448 - 40489 [(apply~eq_sub_euttge~with~(RR~...] 0. secs (0.u,0.s) +Chars 40494 - 40533 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) Chars 40534 - 40538 [Qed.] 0.001 secs (0.001u,0.s) -Chars 40541 - 40705 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 40541 - 40705 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) Chars 40706 - 40712 [Proof.] 0. secs (0.u,0.s) -Chars 40716 - 40801 [split;~revert_until~c;~tower~i...] 0.009 secs (0.008u,0.s) -Chars 40875 - 40899 [all:~inv~H2;~simpobs.] 0.107 secs (0.107u,0.s) -Chars 40902 - 40987 [all:~~try~genvis~e~k1~ok1;~inv...] 0.219 secs (0.218u,0.001s) -Chars 40991 - 41055 [all:~try~do~2~inv_Vis;~constru...] 0.119 secs (0.118u,0.s) -Chars 41058 - 41078 [all:~inv~H1;~inv~H0.] 0.021 secs (0.021u,0.s) -Chars 41083 - 41141 [all:~eapply~H;~try~eapply~REL0...] 0.001 secs (0.001u,0.s) -Chars 41145 - 41149 [Qed.] 0.046 secs (0.046u,0.s) +Chars 40716 - 40801 [(split;~revert_until~c;~tower~...] 0.012 secs (0.012u,0.s) +Chars 40875 - 40899 [all:~(inv~H2;~simpobs).] 0.153 secs (0.153u,0.s) +Chars 40902 - 40987 [all:~~(try~genvis~e~k1~ok1;~in...] 0.311 secs (0.31u,0.s) +Chars 40991 - 41055 [all:~(try~do~2~inv_Vis;~constr...] 0.174 secs (0.174u,0.s) +Chars 41058 - 41078 [all:~(inv~H1;~inv~H0).] 0.023 secs (0.023u,0.s) +Chars 41083 - 41141 [all:~(eapply~H;~try~eapply~REL...] 0.001 secs (0.001u,0.s) +Chars 41145 - 41149 [Qed.] 0.073 secs (0.072u,0.s) Chars 41188 - 41343 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) Chars 41344 - 41389 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) Chars 41391 - 41490 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) Chars 41491 - 41497 [Proof.] 0. secs (0.u,0.s) -Chars 41500 - 41507 [intros.] 0. secs (0.u,0.s) -Chars 41508 - 41526 [destruct~H;~eauto.] 0. secs (0.u,0.s) +Chars 41500 - 41507 [(intros).] 0. secs (0.u,0.s) +Chars 41508 - 41526 [(destruct~H;~eauto).] 0. secs (0.u,0.s) Chars 41527 - 41531 [Qed.] 0. secs (0.u,0.s) Chars 41560 - 41759 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 41760 - 41766 [Proof.] 0. secs (0.u,0.s) -Chars 41769 - 41781 [unfold~eqit.] 0. secs (0.u,0.s) -Chars 41782 - 41798 [revert_until~b2.] 0. secs (0.u,0.s) -Chars 41908 - 41927 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 41928 - 41935 [intros.] 0. secs (0.u,0.s) +Chars 41769 - 41781 [(unfold~eqit).] 0. secs (0.u,0.s) +Chars 41782 - 41798 [(revert_until~b2).] 0. secs (0.u,0.s) +Chars 41908 - 41927 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 41928 - 41935 [(intros).] 0. secs (0.u,0.s) Chars 41939 - 41951 [step~in~INL.] 0. secs (0.u,0.s) Chars 41952 - 41964 [step~in~INR.] 0. secs (0.u,0.s) -Chars 42062 - 42103 [hinduction~INL~before~CIH;~int...] 0. secs (0.u,0.s) +Chars 42062 - 42103 [(hinduction~INL~before~CIH;~in...] 0.001 secs (0.001u,0.s) Chars 42104 - 42116 [clear~t1~t2.] 0. secs (0.u,0.s) Chars 42148 - 42149 [-] 0. secs (0.u,0.s) -Chars 42150 - 42163 [genret~r2~ot.] 0.002 secs (0.002u,0.s) -Chars 42168 - 42231 [hinduction~INR~before~CIH;~int...] 0.018 secs (0.018u,0.s) +Chars 42150 - 42163 [(genret~r2~ot).] 0. secs (0.u,0.s) +Chars 42168 - 42231 [(hinduction~INR~before~CIH;~in...] 0.031 secs (0.031u,0.s) Chars 42234 - 42235 [-] 0. secs (0.u,0.s) -Chars 42236 - 42250 [genobs~t3~ot3.] 0. secs (0.u,0.s) -Chars 42324 - 42396 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) +Chars 42236 - 42250 [(genobs~t3~ot3).] 0. secs (0.u,0.s) +Chars 42324 - 42396 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) Chars 42401 - 42402 [{] 0. secs (0.u,0.s) -Chars 42403 - 42449 [destruct~ot3;~eauto;~right;~re...] 0.004 secs (0.004u,0.s) +Chars 42403 - 42449 [(destruct~ot3;~eauto;~right;~r...] 0.008 secs (0.008u,0.s) Chars 42450 - 42451 [}] 0. secs (0.u,0.s) -Chars 42456 - 42486 [destruct~DEC~as~[[m3~?]|~EQ].] 0. secs (0.u,0.s) +Chars 42456 - 42486 [(destruct~DEC~as~[[m3~?]|~EQ]).] 0. secs (0.u,0.s) Chars 42527 - 42528 [+] 0. secs (0.u,0.s) -Chars 42529 - 42544 [subst;~simpobs.] 0.001 secs (0.001u,0.s) +Chars 42529 - 42544 [(subst;~simpobs).] 0.001 secs (0.001u,0.s) Chars 42552 - 42565 [econstructor.] 0. secs (0.u,0.s) -Chars 42572 - 42590 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 42597 - 42616 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) +Chars 42572 - 42590 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 42597 - 42616 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) Chars 42623 - 42632 [now~step.] 0.001 secs (0.001u,0.s) Chars 42692 - 42693 [+] 0. secs (0.u,0.s) -Chars 42694 - 42741 [inv~INR;~try~(exfalso;~eapply~...] 0.032 secs (0.032u,0.s) +Chars 42694 - 42741 [(inv~INR;~try~(exfalso;~eapply...] 0.047 secs (0.047u,0.s) Chars 42748 - 42753 [taul.] 0. secs (0.u,0.s) Chars 42761 - 42773 [step~in~REL.] 0. secs (0.u,0.s) -Chars 42780 - 42854 [hinduction~REL0~before~CIH;~in...] 0.002 secs (0.002u,0.s) +Chars 42780 - 42854 [(hinduction~REL0~before~CIH;~i...] 0.003 secs (0.003u,0.s) Chars 42936 - 42937 [*] 0. secs (0.u,0.s) -Chars 42938 - 42963 [remember~(RetF~r1)~as~ot.] 0. secs (0.u,0.s) -Chars 42972 - 43036 [hinduction~REL0~before~CIH;~in...] 0.02 secs (0.02u,0.s) +Chars 42938 - 42963 [(remember~(RetF~r1)~as~ot).] 0. secs (0.u,0.s) +Chars 42972 - 43036 [(hinduction~REL0~before~CIH;~i...] 0.032 secs (0.032u,0.s) Chars 43043 - 43044 [*] 0. secs (0.u,0.s) -Chars 43045 - 43072 [remember~(VisF~e~k1)~as~ot.] 0. secs (0.u,0.s) -Chars 43081 - 43166 [hinduction~REL0~before~CIH;~in...] 0.016 secs (0.015u,0.s) +Chars 43045 - 43072 [(remember~(VisF~e~k1)~as~ot).] 0. secs (0.u,0.s) +Chars 43081 - 43166 [(hinduction~REL0~before~CIH;~i...] 0.025 secs (0.025u,0.s) Chars 43175 - 43188 [econstructor.] 0. secs (0.u,0.s) -Chars 43189 - 43196 [intros.] 0. secs (0.u,0.s) -Chars 43205 - 43240 [apply~(CIH~_~_~_~(REL~v)~(REL0...] 0. secs (0.u,0.s) +Chars 43189 - 43196 [(intros).] 0. secs (0.u,0.s) +Chars 43205 - 43240 [(apply~(CIH~_~_~_~(REL~v)~(REL...] 0. secs (0.u,0.s) Chars 43248 - 43249 [*] 0. secs (0.u,0.s) -Chars 43250 - 43271 [eapply~IHREL0;~eauto.] 0. secs (0.u,0.s) -Chars 43280 - 43304 [destruct~b1;~inv~CHECK0.] 0.007 secs (0.007u,0.s) -Chars 43313 - 43320 [unstep.] 0.002 secs (0.002u,0.s) -Chars 43321 - 43342 [apply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 43250 - 43271 [(eapply~IHREL0;~eauto).] 0. secs (0.u,0.s) +Chars 43280 - 43304 [(destruct~b1;~inv~CHECK0).] 0.009 secs (0.009u,0.s) +Chars 43313 - 43320 [unstep.] 0.004 secs (0.004u,0.s) +Chars 43321 - 43342 [(apply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) Chars 43343 - 43352 [now~step.] 0.001 secs (0.001u,0.s) Chars 43356 - 43357 [-] 0. secs (0.u,0.s) -Chars 43358 - 43385 [remember~(VisF~e~k2)~as~ot.] 0. secs (0.u,0.s) -Chars 43390 - 43474 [hinduction~INR~before~CIH;~int...] 0.013 secs (0.013u,0.s) +Chars 43358 - 43385 [(remember~(VisF~e~k2)~as~ot).] 0. secs (0.u,0.s) +Chars 43390 - 43474 [(hinduction~INR~before~CIH;~in...] 0.019 secs (0.018u,0.s) Chars 43479 - 43492 [econstructor.] 0. secs (0.u,0.s) -Chars 43493 - 43500 [intros.] 0. secs (0.u,0.s) -Chars 43505 - 43540 [apply~(CIH~_~_~_~(REL0~v)~(REL...] 0. secs (0.u,0.s) +Chars 43493 - 43500 [(intros).] 0.001 secs (0.001u,0.s) +Chars 43505 - 43540 [(apply~(CIH~_~_~_~(REL0~v)~(RE...] 0. secs (0.u,0.s) Chars 43544 - 43545 [-] 0. secs (0.u,0.s) -Chars 43546 - 43563 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 43546 - 43563 [eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 43566 - 43567 [-] 0. secs (0.u,0.s) -Chars 43568 - 43581 [gentau~t0~ot.] 0. secs (0.u,0.s) -Chars 43586 - 43600 [genobs~t3~ot3.] 0. secs (0.u,0.s) -Chars 43606 - 43668 [hinduction~INR~before~CIH;~int...] 0.008 secs (0.008u,0.s) +Chars 43568 - 43581 [(gentau~t0~ot).] 0.001 secs (0.001u,0.s) +Chars 43586 - 43600 [(genobs~t3~ot3).] 0. secs (0.u,0.s) +Chars 43606 - 43668 [(hinduction~INR~before~CIH;~in...] 0.011 secs (0.011u,0.s) Chars 43673 - 43674 [+] 0. secs (0.u,0.s) -Chars 43675 - 43699 [eapply~(IHINL~(Tau~m2)).] 0. secs (0.u,0.s) +Chars 43675 - 43699 [(eapply~(IHINL~(Tau~m2))).] 0. secs (0.u,0.s) Chars 43706 - 43718 [step~in~REL.] 0. secs (0.u,0.s) Chars 43719 - 43736 [eauto~with~itree.] 0. secs (0.u,0.s) Chars 43741 - 43742 [+] 0. secs (0.u,0.s) Chars 43743 - 43760 [now~eapply~IHINL.] 0. secs (0.u,0.s) Chars 43765 - 43766 [+] 0. secs (0.u,0.s) Chars 43767 - 43772 [taur.] 0. secs (0.u,0.s) -Chars 43773 - 43793 [eapply~IHINR;~eauto.] 0.001 secs (0.001u,0.s) -Chars 43795 - 43799 [Qed.] 0.039 secs (0.038u,0.s) +Chars 43773 - 43793 [(eapply~IHINR;~eauto).] 0.001 secs (0.001u,0.s) +Chars 43795 - 43799 [Qed.] 0.051 secs (0.051u,0.s) Chars 43800 - 43859 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) Chars 43977 - 44131 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 44132 - 44138 [Proof.] 0. secs (0.u,0.s) -Chars 44141 - 44153 [red;~intros.] 0. secs (0.u,0.s) -Chars 44154 - 44190 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) -Chars 44194 - 44230 [eapply~eqit_mono,~eqit_trans;~...] 0.002 secs (0.002u,0.s) +Chars 44141 - 44153 [(red;~intros).] 0. secs (0.u,0.s) +Chars 44154 - 44190 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 44194 - 44230 [(eapply~eqit_mono,~eqit_trans;...] 0.002 secs (0.002u,0.s) Chars 44233 - 44241 [intros~!.] 0. secs (0.u,0.s) Chars 44242 - 44258 [now~apply~TRANS.] 0. secs (0.u,0.s) Chars 44259 - 44263 [Qed.] 0. secs (0.u,0.s) Chars 44265 - 44383 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 44384 - 44390 [Proof.] 0. secs (0.u,0.s) -Chars 44393 - 44415 [apply~Transitive_eqit.] 0. secs (0.u,0.s) -Chars 44416 - 44438 [intros~!;~subst;~eauto.] 0. secs (0.u,0.s) +Chars 44393 - 44415 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) +Chars 44416 - 44438 [(intros~!;~subst;~eauto).] 0. secs (0.u,0.s) Chars 44439 - 44443 [Qed.] 0. secs (0.u,0.s) Chars 44445 - 44596 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 44597 - 44603 [Proof.] 0. secs (0.u,0.s) -Chars 44606 - 44641 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) +Chars 44606 - 44641 [(constructor;~try~typeclasses~...] 0.001 secs (0.001u,0.s) Chars 44642 - 44646 [Qed.] 0. secs (0.u,0.s) Chars 44648 - 44770 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 44771 - 44777 [Proof.] 0. secs (0.u,0.s) -Chars 44780 - 44815 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) +Chars 44780 - 44815 [(constructor;~try~typeclasses~...] 0. secs (0.u,0.s) Chars 44816 - 44820 [Qed.] 0. secs (0.u,0.s) Chars 44822 - 44913 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 44914 - 44920 [Proof.] 0. secs (0.u,0.s) -Chars 44923 - 44935 [red;~intros.] 0. secs (0.u,0.s) -Chars 44936 - 44972 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) -Chars 44973 - 45009 [eapply~eqit_mono,~eqit_trans;~...] 0.002 secs (0.002u,0.s) +Chars 44923 - 44935 [(red;~intros).] 0. secs (0.u,0.s) +Chars 44936 - 44972 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 44973 - 45009 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) Chars 45012 - 45020 [intros~!.] 0. secs (0.u,0.s) Chars 45021 - 45037 [now~apply~TRANS.] 0. secs (0.u,0.s) Chars 45039 - 45043 [Qed.] 0. secs (0.u,0.s) Chars 45046 - 45178 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 45179 - 45185 [Proof.] 0. secs (0.u,0.s) -Chars 45188 - 45328 [assert~~(Hinf~:~~~inf_closed~~...] 0. secs (0.u,0.s) +Chars 45188 - 45328 [(assert~~~(Hinf~:~~~~inf_close...] 0. secs (0.u,0.s) Chars 45331 - 45332 [{] 0. secs (0.u,0.s) -Chars 45333 - 45365 [intros~T~HTr~x~y~z~Hxy~Hyz~i~Hi.] 0. secs (0.u,0.s) -Chars 45366 - 45429 [apply~(HTr~_~Hi)~with~y;~[~exa...] 0. secs (0.u,0.s) +Chars 45333 - 45365 [(intros~T~HTr~x~y~z~Hxy~Hyz~i~...] 0. secs (0.u,0.s) +Chars 45366 - 45429 [(apply~(HTr~_~Hi)~with~y;~[~ex...] 0. secs (0.u,0.s) Chars 45430 - 45431 [}] 0. secs (0.u,0.s) Chars 45434 - 45443 [revert~c.] 0. secs (0.u,0.s) -Chars 45444 - 45463 [apply~(tower~Hinf).] 0. secs (0.u,0.s) -Chars 45464 - 45480 [intros~c~Htrans.] 0. secs (0.u,0.s) +Chars 45444 - 45463 [(apply~(tower~Hinf)).] 0. secs (0.u,0.s) +Chars 45464 - 45480 [(intros~c~Htrans).] 0. secs (0.u,0.s) Chars 45483 - 45491 [intros~!.] 0. secs (0.u,0.s) Chars 45492 - 45502 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 45503 - 45534 [eapply~Transitive_eqitF;~eauto.] 0. secs (0.u,0.s) -Chars 45535 - 45539 [Qed.] 0.001 secs (0.001u,0.s) +Chars 45503 - 45534 [(eapply~Transitive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 45535 - 45539 [Qed.] 0.002 secs (0.002u,0.s) Chars 45541 - 45676 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 45677 - 45683 [Proof.] 0. secs (0.u,0.s) -Chars 45686 - 45717 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 45686 - 45717 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 45718 - 45722 [Qed.] 0. secs (0.u,0.s) Chars 45726 - 45806 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) Chars 45807 - 45813 [Proof.] 0. secs (0.u,0.s) -Chars 45816 - 45880 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) +Chars 45816 - 45880 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) Chars 45881 - 45885 [Qed.] 0. secs (0.u,0.s) Chars 45886 - 45966 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) Chars 45967 - 45973 [Proof.] 0. secs (0.u,0.s) -Chars 45976 - 46043 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) +Chars 45976 - 46043 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) Chars 46044 - 46048 [Qed.] 0. secs (0.u,0.s) Chars 46050 - 46168 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) Chars 46169 - 46175 [Proof.] 0. secs (0.u,0.s) -Chars 46178 - 46189 [repeat~red.] 0. secs (0.u,0.s) -Chars 46193 - 46218 [intros~t~t'~EQ1~u~u'~EQ2.] 0. secs (0.u,0.s) -Chars 46221 - 46241 [split;~intros~EQUIV.] 0. secs (0.u,0.s) +Chars 46178 - 46189 [(repeat~red).] 0. secs (0.u,0.s) +Chars 46193 - 46218 [(intros~t~t'~EQ1~u~u'~EQ2).] 0. secs (0.u,0.s) +Chars 46221 - 46241 [(split;~intros~EQUIV).] 0. secs (0.u,0.s) Chars 46245 - 46246 [-] 0. secs (0.u,0.s) Chars 46247 - 46263 [symmetry~in~EQ1.] 0. secs (0.u,0.s) -Chars 46269 - 46311 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) -Chars 46316 - 46347 [rewrite~rcompose_eql~in~EQUIV'.] 0.003 secs (0.003u,0.s) -Chars 46352 - 46396 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) -Chars 46401 - 46437 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) +Chars 46269 - 46311 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) +Chars 46316 - 46347 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) +Chars 46352 - 46396 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) +Chars 46401 - 46437 [now~rewrite~rcompose_eqr~in~EQ...] 0.002 secs (0.002u,0.s) Chars 46440 - 46441 [-] 0. secs (0.u,0.s) -Chars 46442 - 46484 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) -Chars 46489 - 46520 [rewrite~rcompose_eql~in~EQUIV'.] 0.001 secs (0.001u,0.s) +Chars 46442 - 46484 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) +Chars 46489 - 46520 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) Chars 46525 - 46541 [symmetry~in~EQ2.] 0. secs (0.u,0.s) -Chars 46546 - 46590 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) -Chars 46595 - 46631 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) -Chars 46632 - 46636 [Qed.] 0.001 secs (0.001u,0.s) +Chars 46546 - 46590 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) +Chars 46595 - 46631 [now~rewrite~rcompose_eqr~in~EQ...] 0.003 secs (0.003u,0.s) +Chars 46632 - 46636 [Qed.] 0.002 secs (0.002u,0.s) Chars 46638 - 46732 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 46733 - 46739 [Proof.] 0. secs (0.u,0.s) Chars 46742 - 46760 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 46761 - 46765 [Qed.] 0. secs (0.u,0.s) Chars 46767 - 46862 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 46863 - 46869 [Proof.] 0. secs (0.u,0.s) -Chars 46872 - 46884 [red;~intros.] 0. secs (0.u,0.s) -Chars 46885 - 46921 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) -Chars 46922 - 46958 [eapply~eqit_mono,~eqit_trans;~...] 0.003 secs (0.002u,0.s) +Chars 46872 - 46884 [(red;~intros).] 0. secs (0.u,0.s) +Chars 46885 - 46921 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 46922 - 46958 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) Chars 46961 - 46969 [intros~!.] 0. secs (0.u,0.s) Chars 46970 - 46986 [now~apply~TRANS.] 0. secs (0.u,0.s) Chars 46988 - 46992 [Qed.] 0. secs (0.u,0.s) Chars 46994 - 47083 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) Chars 47084 - 47090 [Proof.] 0. secs (0.u,0.s) -Chars 47093 - 47124 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 47093 - 47124 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 47126 - 47130 [Qed.] 0. secs (0.u,0.s) Chars 47132 - 47284 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) Chars 47286 - 47292 [Proof.] 0. secs (0.u,0.s) -Chars 47296 - 47314 [split;~intros~!.] 0. secs (0.u,0.s) -Chars 47317 - 47355 [do~2~(etransitivity;~symmetry;...] 0.003 secs (0.003u,0.s) -Chars 47358 - 47400 [do~2~(etransitivity;~eauto);~n...] 0.005 secs (0.005u,0.s) -Chars 47402 - 47406 [Qed.] 0. secs (0.u,0.s) +Chars 47296 - 47314 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 47317 - 47355 [(do~2~(etransitivity;~symmetry...] 0.005 secs (0.005u,0.s) +Chars 47358 - 47400 [(do~2~(etransitivity;~eauto);~...] 0.004 secs (0.004u,0.s) +Chars 47402 - 47406 [Qed.] 0.001 secs (0.001u,0.s) Chars 47437 - 47450 [Module~Tests.] 0. secs (0.u,0.s) Chars 47453 - 47489 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 47492 - 47524 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) @@ -893,73 +893,73 @@ Chars 47649 - 47684 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) Chars 47687 - 47725 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) Chars 47728 - 47763 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) Chars 47766 - 47804 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 47807 - 47841 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 47807 - 47841 [#[local]~Parameter~(GT~:~v~≳~w).] 0.002 secs (0.002u,0.s) Chars 47844 - 47879 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) Chars 47881 - 47898 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 47903 - 47918 [rewrite~EQUIV2.] 0.007 secs (0.007u,0.s) -Chars 47923 - 47938 [rewrite~<-~EQ2.] 0.008 secs (0.008u,0.s) -Chars 47943 - 47966 [eapply~eq_proper_euttC.] 0. secs (0.u,0.s) -Chars 47971 - 47986 [rewrite~<-~EQ1.] 0. secs (0.u,0.s) +Chars 47903 - 47918 [(rewrite~EQUIV2).] 0.011 secs (0.011u,0.s) +Chars 47923 - 47938 [(rewrite~<-~EQ2).] 0.011 secs (0.011u,0.s) +Chars 47943 - 47966 [(eapply~eq_proper_euttC).] 0.001 secs (0.001u,0.s) +Chars 47971 - 47986 [(rewrite~<-~EQ1).] 0.003 secs (0.003u,0.s) Chars 47991 - 48001 [exact~EQ1.] 0. secs (0.u,0.s) -Chars 48007 - 48027 [rewrite~EQ2,~<-~EQ2.] 0.001 secs (0.001u,0.s) +Chars 48007 - 48027 [(rewrite~EQ2,~<-~EQ2).] 0.001 secs (0.001u,0.s) Chars 48033 - 48043 [exact~EQ2.] 0. secs (0.u,0.s) -Chars 48048 - 48053 [step.] 0.002 secs (0.002u,0.s) -Chars 48058 - 48063 [step.] 0.002 secs (0.002u,0.s) -Chars 48069 - 48084 [rewrite~<-~EQ1.] 0.007 secs (0.007u,0.s) -Chars 48090 - 48104 [rewrite~<-~GT.] 0.025 secs (0.025u,0.s) -Chars 48110 - 48122 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) -Chars 48127 - 48145 [rewrite~<-~EQUIV1.] 0.008 secs (0.008u,0.s) +Chars 48048 - 48053 [step.] 0.003 secs (0.003u,0.s) +Chars 48058 - 48063 [step.] 0.003 secs (0.003u,0.s) +Chars 48069 - 48084 [(rewrite~<-~EQ1).] 0.01 secs (0.01u,0.s) +Chars 48090 - 48104 [(rewrite~<-~GT).] 0.034 secs (0.034u,0.s) +Chars 48110 - 48122 [(rewrite~EQ1).] 0.01 secs (0.01u,0.s) +Chars 48127 - 48145 [(rewrite~<-~EQUIV1).] 0.011 secs (0.011u,0.s) Chars 48148 - 48154 [Abort.] 0. secs (0.u,0.s) Chars 48159 - 48204 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) Chars 48367 - 48407 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) -Chars 48412 - 48421 [intros~H.] 0. secs (0.u,0.s) -Chars 48426 - 48438 [rewrite~EQ1.] 0.005 secs (0.005u,0.s) -Chars 48443 - 48460 [rewrite~EQ1~in~H.] 0.005 secs (0.005u,0.s) -Chars 48465 - 48483 [rewrite~<-~EQUIV1.] 0.005 secs (0.005u,0.s) -Chars 48528 - 48551 [rewrite~<-~EQUIV1~in~H.] 0.005 secs (0.005u,0.s) -Chars 48556 - 48579 [rewrite~<-~EQUIV2~in~H.] 0.007 secs (0.007u,0.s) -Chars 48585 - 48597 [rewrite~GT2.] 0.001 secs (0.001u,0.s) -Chars 48602 - 48622 [rewrite~<-~GT2~in~H.] 0.019 secs (0.019u,0.s) -Chars 48627 - 48638 [rewrite~GT.] 0.001 secs (0.001u,0.s) -Chars 48643 - 48662 [rewrite~<-~GT~in~H.] 0.019 secs (0.019u,0.s) +Chars 48412 - 48421 [(intros~H).] 0. secs (0.u,0.s) +Chars 48426 - 48438 [(rewrite~EQ1).] 0.008 secs (0.007u,0.s) +Chars 48443 - 48460 [(rewrite~EQ1~in~H).] 0.007 secs (0.007u,0.s) +Chars 48465 - 48483 [(rewrite~<-~EQUIV1).] 0.009 secs (0.009u,0.s) +Chars 48528 - 48551 [(rewrite~<-~EQUIV1~in~H).] 0.007 secs (0.007u,0.s) +Chars 48556 - 48579 [(rewrite~<-~EQUIV2~in~H).] 0.01 secs (0.01u,0.s) +Chars 48585 - 48597 [(rewrite~GT2).] 0.001 secs (0.001u,0.s) +Chars 48602 - 48622 [(rewrite~<-~GT2~in~H).] 0.027 secs (0.027u,0.s) +Chars 48627 - 48638 [(rewrite~GT).] 0.001 secs (0.001u,0.s) +Chars 48643 - 48662 [(rewrite~<-~GT~in~H).] 0.028 secs (0.028u,0.s) Chars 48724 - 48738 [Fail~symmetry.] 0. secs (0.u,0.s) Chars 48743 - 48762 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) -Chars 48767 - 48781 [rewrite~<-~GT.] 0.019 secs (0.019u,0.s) +Chars 48767 - 48781 [(rewrite~<-~GT).] 0.028 secs (0.027u,0.s) Chars 48787 - 48798 [assumption.] 0. secs (0.u,0.s) -Chars 48802 - 48806 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48802 - 48806 [Qed.] 0.002 secs (0.002u,0.s) Chars 48830 - 48873 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) Chars 48877 - 48944 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) Chars 48947 - 48987 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) Chars 48993 - 48998 [step.] 0.001 secs (0.001u,0.s) -Chars 49032 - 49039 [unstep.] 0.002 secs (0.002u,0.s) -Chars 49045 - 49089 [assert~(eutt~(E:=VE)~eq~(Ret~t...] 0. secs (0.u,0.s) +Chars 49032 - 49039 [unstep.] 0.003 secs (0.003u,0.s) +Chars 49045 - 49089 [(assert~(eutt~(E:=VE)~eq~(Ret~...] 0. secs (0.u,0.s) Chars 49095 - 49100 [step.] 0.001 secs (0.001u,0.s) -Chars 49159 - 49185 [rewrite~observing_observe.] 0.004 secs (0.004u,0.s) +Chars 49159 - 49185 [(rewrite~observing_observe).] 0.006 secs (0.006u,0.s) Chars 49188 - 49194 [Abort.] 0. secs (0.u,0.s) Chars 49220 - 49244 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) -Chars 49249 - 49258 [intros~H.] 0. secs (0.u,0.s) -Chars 49263 - 49275 [rewrite~EQ1.] 0. secs (0.u,0.s) -Chars 49280 - 49297 [rewrite~EQ1~in~H.] 0.006 secs (0.005u,0.s) +Chars 49249 - 49258 [(intros~H).] 0. secs (0.u,0.s) +Chars 49263 - 49275 [(rewrite~EQ1).] 0. secs (0.u,0.s) +Chars 49280 - 49297 [(rewrite~EQ1~in~H).] 0.008 secs (0.008u,0.s) Chars 49302 - 49311 [symmetry.] 0. secs (0.u,0.s) Chars 49316 - 49330 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 49335 - 49347 [reflexivity.] 0. secs (0.u,0.s) Chars 49350 - 49354 [Qed.] 0. secs (0.u,0.s) Chars 49440 - 49515 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) -Chars 49520 - 49538 [intros~EQ1~EQ2'~H.] 0. secs (0.u,0.s) -Chars 49543 - 49555 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) -Chars 49560 - 49572 [rewrite~EQ2.] 0.001 secs (0.001u,0.s) -Chars 49577 - 49601 [apply~eqit_flip~in~EQ2'.] 0. secs (0.u,0.s) -Chars 49606 - 49626 [rewrite~EQ2~in~EQ2'.] 0.01 secs (0.01u,0.s) -Chars 49726 - 49744 [Fail~rewrite~EQ2'.] 0. secs (0.u,0.s) -Chars 49751 - 49772 [Fail~rewrite~<-~EQ2'.] 0. secs (0.u,0.s) +Chars 49520 - 49538 [(intros~EQ1~EQ2'~H).] 0. secs (0.u,0.s) +Chars 49543 - 49555 [(rewrite~EQ1).] 0.009 secs (0.009u,0.s) +Chars 49560 - 49572 [(rewrite~EQ2).] 0.001 secs (0.001u,0.s) +Chars 49577 - 49601 [(apply~eqit_flip~in~EQ2').] 0. secs (0.u,0.s) +Chars 49606 - 49626 [(rewrite~EQ2~in~EQ2').] 0.014 secs (0.014u,0.s) +Chars 49726 - 49744 [Fail~(rewrite~EQ2').] 0. secs (0.u,0.s) +Chars 49751 - 49772 [Fail~(rewrite~<-~EQ2').] 0. secs (0.u,0.s) Chars 49842 - 49851 [Admitted.] 0. secs (0.u,0.s) Chars 49901 - 49925 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) -Chars 49930 - 49949 [icoinduction~r~CIH.] 0.001 secs (0.001u,0.s) -Chars 49954 - 49961 [intros.] 0. secs (0.u,0.s) -Chars 49966 - 49971 [step.] 0.002 secs (0.002u,0.s) -Chars 49977 - 49987 [rewrite~H.] 0.012 secs (0.012u,0.s) +Chars 49930 - 49949 [icoinduction~r~CIH.] 0.002 secs (0.002u,0.s) +Chars 49954 - 49961 [(intros).] 0. secs (0.u,0.s) +Chars 49966 - 49971 [step.] 0.003 secs (0.003u,0.s) +Chars 49977 - 49987 [(rewrite~H).] 0.016 secs (0.016u,0.s) Chars 49993 - 50005 [reflexivity.] 0. secs (0.u,0.s) -Chars 50007 - 50011 [Qed.] 0.001 secs (0.001u,0.s) +Chars 50007 - 50011 [Qed.] 0.002 secs (0.002u,0.s) Chars 50013 - 50023 [End~Tests.] 0. secs (0.u,0.s) Chars 50025 - 50077 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) Chars 50082 - 50098 [Section~eqit_eq.] 0. secs (0.u,0.s) @@ -967,60 +967,60 @@ Chars 50149 - 50187 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 50189 - 50248 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) Chars 50250 - 50383 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 50384 - 50390 [Proof.] 0. secs (0.u,0.s) -Chars 50393 - 50422 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 50393 - 50422 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) Chars 50423 - 50427 [Qed.] 0. secs (0.u,0.s) Chars 50429 - 50556 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 50557 - 50563 [Proof.] 0. secs (0.u,0.s) -Chars 50566 - 50595 [apply~Symmetric_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 50566 - 50595 [(apply~Symmetric_eqitF;~eauto).] 0. secs (0.u,0.s) Chars 50597 - 50601 [Qed.] 0. secs (0.u,0.s) Chars 50650 - 50718 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 50719 - 50725 [Proof.] 0. secs (0.u,0.s) -Chars 50728 - 50756 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 50728 - 50756 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) Chars 50757 - 50761 [Qed.] 0. secs (0.u,0.s) Chars 50763 - 50825 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 50826 - 50832 [Proof.] 0. secs (0.u,0.s) -Chars 50835 - 50863 [apply~Symmetric_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 50835 - 50863 [(apply~Symmetric_eqit;~eauto).] 0. secs (0.u,0.s) Chars 50864 - 50868 [Qed.] 0. secs (0.u,0.s) Chars 50903 - 51002 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) Chars 51003 - 51009 [Proof.] 0. secs (0.u,0.s) -Chars 51012 - 51058 [constructor;~step~in~H;~step;~...] 0.001 secs (0.001u,0.s) -Chars 51061 - 51065 [Qed.] 0. secs (0.u,0.s) +Chars 51012 - 51058 [(constructor;~step~in~H;~step;...] 0.002 secs (0.002u,0.s) +Chars 51061 - 51065 [Qed.] 0.001 secs (0.001u,0.s) Chars 51068 - 51163 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) Chars 51164 - 51170 [Proof.] 0. secs (0.u,0.s) -Chars 51173 - 51191 [constructor;~step.] 0.001 secs (0.001u,0.s) +Chars 51173 - 51191 [(constructor;~step).] 0.001 secs (0.001u,0.s) Chars 51192 - 51205 [econstructor.] 0. secs (0.u,0.s) Chars 51206 - 51212 [eauto.] 0. secs (0.u,0.s) -Chars 51213 - 51217 [Qed.] 0. secs (0.u,0.s) +Chars 51213 - 51217 [Qed.] 0.001 secs (0.001u,0.s) Chars 51219 - 51346 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) Chars 51347 - 51353 [Proof.] 0. secs (0.u,0.s) -Chars 51356 - 51378 [constructor;~red~in~H.] 0. secs (0.u,0.s) -Chars 51379 - 51415 [step;~econstructor;~auto~with~...] 0.001 secs (0.001u,0.s) -Chars 51416 - 51420 [Qed.] 0. secs (0.u,0.s) +Chars 51356 - 51378 [(constructor;~red~in~H).] 0. secs (0.u,0.s) +Chars 51379 - 51415 [(step;~econstructor;~auto~with...] 0.001 secs (0.001u,0.s) +Chars 51416 - 51420 [Qed.] 0.001 secs (0.001u,0.s) Chars 51422 - 51506 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) Chars 51507 - 51513 [Proof.] 0. secs (0.u,0.s) -Chars 51516 - 51535 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 51516 - 51535 [(repeat~red;~intros).] 0. secs (0.u,0.s) Chars 51538 - 51543 [step.] 0.001 secs (0.001u,0.s) -Chars 51544 - 51574 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) -Chars 51575 - 51604 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 51544 - 51574 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) +Chars 51575 - 51604 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) Chars 51605 - 51609 [Qed.] 0.001 secs (0.001u,0.s) Chars 51611 - 51756 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) Chars 51757 - 51763 [Proof.] 0. secs (0.u,0.s) Chars 51766 - 51774 [intros~!.] 0. secs (0.u,0.s) -Chars 51777 - 51783 [inv~H.] 0.004 secs (0.004u,0.s) -Chars 51786 - 51791 [step.] 0.001 secs (0.001u,0.s) -Chars 51794 - 51820 [rewrite~observing_observe.] 0. secs (0.u,0.s) -Chars 51823 - 51828 [step.] 0.002 secs (0.002u,0.s) +Chars 51777 - 51783 [(inv~H).] 0.006 secs (0.006u,0.s) +Chars 51786 - 51791 [step.] 0.002 secs (0.002u,0.s) +Chars 51794 - 51820 [(rewrite~observing_observe).] 0. secs (0.u,0.s) +Chars 51823 - 51828 [step.] 0.003 secs (0.003u,0.s) Chars 51829 - 51841 [reflexivity.] 0. secs (0.u,0.s) Chars 51842 - 51846 [Qed.] 0.001 secs (0.001u,0.s) Chars 51873 - 51930 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) Chars 51931 - 51937 [Proof.] 0. secs (0.u,0.s) -Chars 51938 - 51963 [apply~observing_sub_eqit.] 0. secs (0.u,0.s) +Chars 51938 - 51963 [(apply~observing_sub_eqit).] 0. secs (0.u,0.s) Chars 51964 - 51977 [econstructor.] 0. secs (0.u,0.s) Chars 51978 - 51990 [reflexivity.] 0. secs (0.u,0.s) Chars 51991 - 51995 [Qed.] 0. secs (0.u,0.s) Chars 51997 - 52052 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) Chars 52053 - 52059 [Proof.] 0. secs (0.u,0.s) -Chars 52060 - 52077 [apply~itree_eta_.] 0. secs (0.u,0.s) +Chars 52060 - 52077 [(apply~itree_eta_).] 0. secs (0.u,0.s) Chars 52078 - 52082 [Qed.] 0. secs (0.u,0.s) Chars 52084 - 52142 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) Chars 52143 - 52149 [Proof.] 0. secs (0.u,0.s) @@ -1029,101 +1029,101 @@ Chars 52163 - 52167 [Qed.] 0. secs (0.u,0.s) Chars 52169 - 52181 [End~eqit_eq.] 0. secs (0.u,0.s) Chars 52215 - 52303 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) Chars 52304 - 52310 [Proof.] 0. secs (0.u,0.s) -Chars 52313 - 52328 [intros;~sinv~H.] 0.004 secs (0.004u,0.s) -Chars 52329 - 52333 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52313 - 52328 [(intros;~sinv~H).] 0.006 secs (0.006u,0.s) +Chars 52329 - 52333 [Qed.] 0.002 secs (0.002u,0.s) Chars 52335 - 52486 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) Chars 52487 - 52493 [Proof.] 0. secs (0.u,0.s) -Chars 52496 - 52543 [intros;~step~in~H;~apply~eqitF...] 0. secs (0.u,0.s) -Chars 52546 - 52600 [destruct~H~as~[[?~[->~?]]|~[]]...] 0. secs (0.u,0.s) -Chars 52603 - 52625 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 52496 - 52543 [(intros;~step~in~H;~apply~eqit...] 0. secs (0.u,0.s) +Chars 52546 - 52600 [(destruct~H~as~[[?~[->~?]]|~[]...] 0. secs (0.u,0.s) +Chars 52603 - 52625 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 52626 - 52630 [Qed.] 0.001 secs (0.001u,0.s) Chars 52632 - 52745 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) Chars 52746 - 52752 [Proof.] 0. secs (0.u,0.s) -Chars 52755 - 52792 [intros;~sinv~H;~try~inv~CHECK;...] 0.007 secs (0.007u,0.s) -Chars 52793 - 52797 [Qed.] 0.002 secs (0.002u,0.s) +Chars 52755 - 52792 [(intros;~sinv~H;~try~inv~CHECK...] 0.013 secs (0.013u,0.s) +Chars 52793 - 52797 [Qed.] 0.003 secs (0.003u,0.s) Chars 52799 - 52900 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) Chars 52901 - 52907 [Proof.] 0. secs (0.u,0.s) -Chars 52910 - 52917 [intros.] 0. secs (0.u,0.s) +Chars 52910 - 52917 [(intros).] 0. secs (0.u,0.s) Chars 52918 - 52928 [step~in~H.] 0. secs (0.u,0.s) -Chars 52929 - 52935 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 52937 - 52941 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52994 - 53223 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0. secs (0.u,0.s) +Chars 52929 - 52935 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 52937 - 52941 [Qed.] 0.002 secs (0.002u,0.s) +Chars 52994 - 53223 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0.001 secs (0.001u,0.s) Chars 53224 - 53230 [Proof.] 0. secs (0.u,0.s) -Chars 53233 - 53240 [intros.] 0. secs (0.u,0.s) -Chars 53241 - 53283 [step~in~H;~apply~eqitF_inv_Vis...] 0. secs (0.u,0.s) -Chars 53286 - 53308 [destruct~H~as~[p~[]].] 0. secs (0.u,0.s) -Chars 53309 - 53331 [exists~p;~split;~auto.] 0. secs (0.u,0.s) -Chars 53332 - 53336 [Qed.] 0. secs (0.u,0.s) +Chars 53233 - 53240 [(intros).] 0. secs (0.u,0.s) +Chars 53241 - 53283 [(step~in~H;~apply~eqitF_inv_Vi...] 0. secs (0.u,0.s) +Chars 53286 - 53308 [(destruct~H~as~[p~[]]).] 0. secs (0.u,0.s) +Chars 53309 - 53331 [(exists~p;~split;~auto).] 0. secs (0.u,0.s) +Chars 53332 - 53336 [Qed.] 0.001 secs (0.001u,0.s) Chars 53362 - 53568 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) Chars 53569 - 53575 [Proof.] 0. secs (0.u,0.s) -Chars 53578 - 53647 [intros~H~x;~step~in~H;~apply~e...] 0.001 secs (0.001u,0.s) -Chars 53648 - 53652 [Qed.] 0. secs (0.u,0.s) +Chars 53578 - 53647 [(intros~H~x;~step~in~H;~apply~...] 0. secs (0.u,0.s) +Chars 53648 - 53652 [Qed.] 0.001 secs (0.001u,0.s) Chars 53695 - 53774 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) Chars 53775 - 53781 [Proof.] 0. secs (0.u,0.s) -Chars 53784 - 53819 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) +Chars 53784 - 53819 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) Chars 53820 - 53824 [Qed.] 0. secs (0.u,0.s) Chars 53826 - 53908 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) Chars 53909 - 53915 [Proof.] 0. secs (0.u,0.s) -Chars 53918 - 53953 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) +Chars 53918 - 53953 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) Chars 53954 - 53958 [Qed.] 0. secs (0.u,0.s) Chars 53960 - 54086 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 54087 - 54093 [Proof.] 0. secs (0.u,0.s) -Chars 54096 - 54103 [intros.] 0. secs (0.u,0.s) +Chars 54096 - 54103 [(intros).] 0. secs (0.u,0.s) Chars 54104 - 54109 [step.] 0.001 secs (0.001u,0.s) -Chars 54110 - 54130 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 54110 - 54130 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 54131 - 54145 [now~step~in~H.] 0. secs (0.u,0.s) Chars 54147 - 54151 [Qed.] 0.001 secs (0.001u,0.s) Chars 54153 - 54279 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 54280 - 54286 [Proof.] 0. secs (0.u,0.s) -Chars 54289 - 54296 [intros.] 0. secs (0.u,0.s) +Chars 54289 - 54296 [(intros).] 0. secs (0.u,0.s) Chars 54297 - 54302 [step.] 0.001 secs (0.001u,0.s) -Chars 54303 - 54323 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 54324 - 54338 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 54303 - 54323 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 54324 - 54338 [now~step~in~H.] 0.001 secs (0.001u,0.s) Chars 54340 - 54344 [Qed.] 0.001 secs (0.001u,0.s) Chars 54346 - 54400 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) Chars 54401 - 54407 [Proof.] 0. secs (0.u,0.s) -Chars 54410 - 54427 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) +Chars 54410 - 54427 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) Chars 54428 - 54440 [reflexivity.] 0. secs (0.u,0.s) Chars 54441 - 54445 [Qed.] 0. secs (0.u,0.s) Chars 54447 - 54499 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) Chars 54500 - 54506 [Proof.] 0. secs (0.u,0.s) -Chars 54509 - 54543 [apply~euttge_sub_eutt,~tau_eut...] 0. secs (0.u,0.s) +Chars 54509 - 54543 [(apply~euttge_sub_eutt,~tau_eu...] 0. secs (0.u,0.s) Chars 54544 - 54548 [Qed.] 0. secs (0.u,0.s) Chars 54551 - 54625 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) Chars 54626 - 54632 [Proof.] 0. secs (0.u,0.s) Chars 54635 - 54640 [step.] 0.001 secs (0.001u,0.s) -Chars 54641 - 54652 [repeat~red.] 0. secs (0.u,0.s) +Chars 54641 - 54652 [(repeat~red).] 0. secs (0.u,0.s) Chars 54653 - 54661 [simpobs.] 0. secs (0.u,0.s) -Chars 54662 - 54668 [simpl.] 0. secs (0.u,0.s) +Chars 54662 - 54668 [(simpl).] 0. secs (0.u,0.s) Chars 54669 - 54675 [subst.] 0. secs (0.u,0.s) -Chars 54676 - 54683 [unstep.] 0.002 secs (0.002u,0.s) -Chars 54684 - 54712 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) -Chars 54713 - 54717 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54676 - 54683 [unstep.] 0.003 secs (0.003u,0.s) +Chars 54684 - 54712 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 54713 - 54717 [Qed.] 0.002 secs (0.002u,0.s) Chars 54755 - 55068 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) Chars 55070 - 55076 [Proof.] 0. secs (0.u,0.s) -Chars 55078 - 55114 [intros~!;~unfold~flip,~eq_itre...] 0. secs (0.u,0.s) +Chars 55078 - 55114 [(intros~!;~unfold~flip,~eq_itr...] 0. secs (0.u,0.s) Chars 56277 - 56283 [idtac.] 0. secs (0.u,0.s) -Chars 56323 - 56383 [assert~(rcompose~RR1~RS~<=~RS)...] 0. secs (0.u,0.s) -Chars 56387 - 56454 [assert~(rcompose~RS~(flip~RR2)...] 0. secs (0.u,0.s) -Chars 56457 - 56555 [assert~(eqit~b1~b2~RR1~x~y)~by...] 0.003 secs (0.003u,0.s) -Chars 56558 - 56662 [assert~(eqit~b1~b2~RR2~x0~y0)~...] 0.003 secs (0.003u,0.s) +Chars 56323 - 56383 [(assert~(rcompose~RR1~RS~<=~RS...] 0. secs (0.u,0.s) +Chars 56387 - 56454 [(assert~(rcompose~RS~(flip~RR2...] 0. secs (0.u,0.s) +Chars 56457 - 56555 [(assert~(eqit~b1~b2~RR1~x~y)~b...] 0.005 secs (0.005u,0.s) +Chars 56558 - 56662 [(assert~(eqit~b1~b2~RR2~x0~y0)...] 0.005 secs (0.005u,0.s) Chars 56691 - 56735 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) -Chars 56739 - 56837 [assert~(Hdiag~:~eqit~b1~b2~RS~...] 0.001 secs (0.001u,0.s) -Chars 56875 - 56897 [apply~eqit_flip~in~H0.] 0. secs (0.u,0.s) -Chars 56947 - 57007 [eapply~eqit_mono~with~(RR~:=~r...] 0.002 secs (0.002u,0.s) -Chars 57011 - 57036 [eapply~eqit_trans;~eauto.] 0.002 secs (0.002u,0.s) -Chars 57040 - 57109 [eapply~eqit_mono~with~(b1~:=~f...] 0.005 secs (0.005u,0.s) -Chars 57111 - 57115 [Qed.] 0.001 secs (0.001u,0.s) +Chars 56739 - 56837 [(assert~(Hdiag~:~eqit~b1~b2~RS...] 0.004 secs (0.004u,0.s) +Chars 56875 - 56897 [(apply~eqit_flip~in~H0).] 0. secs (0.u,0.s) +Chars 56947 - 57007 [(eapply~eqit_mono~with~(RR~:=~...] 0.003 secs (0.003u,0.s) +Chars 57011 - 57036 [(eapply~eqit_trans;~eauto).] 0.003 secs (0.003u,0.s) +Chars 57040 - 57109 [(eapply~eqit_mono~with~(b1~:=~...] 0.006 secs (0.006u,0.s) +Chars 57111 - 57115 [Qed.] 0.002 secs (0.002u,0.s) Chars 57158 - 57307 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) Chars 57308 - 57314 [Proof.] 0. secs (0.u,0.s) -Chars 57317 - 57324 [intros.] 0. secs (0.u,0.s) -Chars 57327 - 57343 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 57317 - 57324 [(intros).] 0. secs (0.u,0.s) +Chars 57327 - 57343 [(split;~intros~H).] 0. secs (0.u,0.s) Chars 57346 - 57347 [-] 0. secs (0.u,0.s) -Chars 57348 - 57368 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 57348 - 57368 [(eapply~transitivity).] 0. secs (0.u,0.s) Chars 57369 - 57374 [2:~{] 0. secs (0.u,0.s) -Chars 57375 - 57383 [apply~H.] 0. secs (0.u,0.s) +Chars 57375 - 57383 [(apply~H).] 0. secs (0.u,0.s) Chars 57384 - 57385 [}] 0. secs (0.u,0.s) -Chars 57390 - 57407 [apply~eqit_Tau_r.] 0. secs (0.u,0.s) +Chars 57390 - 57407 [(apply~eqit_Tau_r).] 0. secs (0.u,0.s) Chars 57408 - 57420 [reflexivity.] 0. secs (0.u,0.s) Chars 57423 - 57424 [-] 0. secs (0.u,0.s) Chars 57425 - 57430 [step.] 0.001 secs (0.001u,0.s) @@ -1133,7 +1133,7 @@ Chars 57451 - 57465 [now~step~in~H.] 0. secs (0.u,0.s) Chars 57467 - 57471 [Qed.] 0.001 secs (0.001u,0.s) Chars 57473 - 57643 [Lemma~tau_eqit_RR_l~:~~~forall...] 0. secs (0.u,0.s) Chars 57644 - 57650 [Proof.] 0. secs (0.u,0.s) -Chars 57653 - 57660 [intros.] 0. secs (0.u,0.s) +Chars 57653 - 57660 [(intros).] 0. secs (0.u,0.s) Chars 57663 - 57668 [step.] 0.001 secs (0.001u,0.s) Chars 57669 - 57682 [econstructor.] 0. secs (0.u,0.s) Chars 57683 - 57688 [auto.] 0. secs (0.u,0.s) @@ -1141,12 +1141,12 @@ Chars 57689 - 57703 [now~step~in~H.] 0. secs (0.u,0.s) Chars 57705 - 57709 [Qed.] 0.001 secs (0.001u,0.s) Chars 57711 - 57860 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) Chars 57861 - 57867 [Proof.] 0. secs (0.u,0.s) -Chars 57870 - 57877 [intros.] 0. secs (0.u,0.s) -Chars 57880 - 57896 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 57870 - 57877 [(intros).] 0. secs (0.u,0.s) +Chars 57880 - 57896 [(split;~intros~H).] 0. secs (0.u,0.s) Chars 57899 - 57900 [-] 0. secs (0.u,0.s) -Chars 57901 - 57921 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 57922 - 57930 [apply~H.] 0. secs (0.u,0.s) -Chars 57935 - 57952 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) +Chars 57901 - 57921 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 57922 - 57930 [(apply~H).] 0. secs (0.u,0.s) +Chars 57935 - 57952 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) Chars 57953 - 57965 [reflexivity.] 0. secs (0.u,0.s) Chars 57968 - 57969 [-] 0. secs (0.u,0.s) Chars 57970 - 57975 [step.] 0.001 secs (0.001u,0.s) @@ -1156,172 +1156,172 @@ Chars 57996 - 58010 [now~step~in~H.] 0. secs (0.u,0.s) Chars 58011 - 58015 [Qed.] 0.001 secs (0.001u,0.s) Chars 58017 - 58106 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) Chars 58107 - 58113 [Proof.] 0. secs (0.u,0.s) -Chars 58116 - 58129 [intros~Heutt.] 0. secs (0.u,0.s) +Chars 58116 - 58129 [(intros~Heutt).] 0. secs (0.u,0.s) Chars 58130 - 58144 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 58148 - 58166 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) -Chars 58170 - 58198 [remember~(observe~(Ret~r1)).] 0. secs (0.u,0.s) -Chars 58201 - 58215 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 58218 - 58249 [remember~{|~_observe~:=~ot2~|}.] 0. secs (0.u,0.s) -Chars 58252 - 58297 [hinduction~Heutt~before~r1;~in...] 0.005 secs (0.005u,0.s) +Chars 58148 - 58166 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) +Chars 58170 - 58198 [(remember~(observe~(Ret~r1))).] 0. secs (0.u,0.s) +Chars 58201 - 58215 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 58218 - 58249 [(remember~{|~_observe~:=~ot2~|}).] 0. secs (0.u,0.s) +Chars 58252 - 58297 [(hinduction~Heutt~before~r1;~i...] 0.008 secs (0.008u,0.s) Chars 58301 - 58302 [-] 0. secs (0.u,0.s) -Chars 58303 - 58322 [rewrite~tau_euttge.] 0. secs (0.u,0.s) -Chars 58323 - 58341 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 58303 - 58322 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) +Chars 58323 - 58341 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) Chars 58342 - 58361 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 58362 - 58366 [Qed.] 0.003 secs (0.003u,0.s) -Chars 58463 - 58552 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0.001 secs (0.u,0.s) +Chars 58362 - 58366 [Qed.] 0.004 secs (0.004u,0.s) +Chars 58463 - 58552 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) Chars 58553 - 58559 [Proof.] 0. secs (0.u,0.s) -Chars 58562 - 58575 [intros~Heutt.] 0. secs (0.u,0.s) +Chars 58562 - 58575 [(intros~Heutt).] 0. secs (0.u,0.s) Chars 58576 - 58590 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 58595 - 58613 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) -Chars 58617 - 58692 [remember~(observe~(Ret~r2));~g...] 0. secs (0.u,0.s) -Chars 58695 - 58739 [hinduction~Heutt~before~R;~int...] 0.005 secs (0.005u,0.s) +Chars 58595 - 58613 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) +Chars 58617 - 58692 [(remember~(observe~(Ret~r2));~...] 0. secs (0.u,0.s) +Chars 58695 - 58739 [(hinduction~Heutt~before~R;~in...] 0.008 secs (0.008u,0.s) Chars 58743 - 58744 [-] 0. secs (0.u,0.s) -Chars 58745 - 58764 [rewrite~tau_euttge.] 0. secs (0.u,0.s) -Chars 58765 - 58783 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 58745 - 58764 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) +Chars 58765 - 58783 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) Chars 58784 - 58803 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 58804 - 58808 [Qed.] 0.003 secs (0.003u,0.s) +Chars 58804 - 58808 [Qed.] 0.004 secs (0.004u,0.s) Chars 58852 - 59019 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) Chars 59021 - 59117 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) Chars 59118 - 59124 [Proof.] 0. secs (0.u,0.s) -Chars 59127 - 59178 [apply~observing_sub_eqit;~cons...] 0. secs (0.u,0.s) +Chars 59127 - 59178 [(apply~observing_sub_eqit;~con...] 0. secs (0.u,0.s) Chars 59179 - 59183 [Qed.] 0. secs (0.u,0.s) Chars 59185 - 59274 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) Chars 59275 - 59281 [Proof.] 0. secs (0.u,0.s) -Chars 59282 - 59318 [apply~observing_sub_eqit,~bind...] 0. secs (0.u,0.s) +Chars 59282 - 59318 [(apply~observing_sub_eqit,~bin...] 0. secs (0.u,0.s) Chars 59319 - 59323 [Qed.] 0. secs (0.u,0.s) -Chars 59325 - 59420 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) +Chars 59325 - 59420 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0.001 secs (0.001u,0.s) Chars 59421 - 59427 [Proof.] 0. secs (0.u,0.s) -Chars 59428 - 59458 [apply~(unfold_bind~(Tau~t)~k).] 0. secs (0.u,0.s) +Chars 59428 - 59458 [(apply~(unfold_bind~(Tau~t)~k)).] 0. secs (0.u,0.s) Chars 59459 - 59463 [Qed.] 0. secs (0.u,0.s) Chars 59465 - 59609 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) Chars 59610 - 59616 [Proof.] 0. secs (0.u,0.s) -Chars 59617 - 59650 [apply~(unfold_bind~(Vis~e~ek)~k).] 0. secs (0.u,0.s) +Chars 59617 - 59650 [(apply~(unfold_bind~(Vis~e~ek)...] 0. secs (0.u,0.s) Chars 59651 - 59655 [Qed.] 0. secs (0.u,0.s) Chars 59657 - 59775 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) Chars 59776 - 59782 [Proof.] 0. secs (0.u,0.s) -Chars 59785 - 59810 [rewrite~unfold_bind;~cbn.] 0.001 secs (0.u,0.s) +Chars 59785 - 59810 [(rewrite~unfold_bind;~cbn).] 0.001 secs (0.001u,0.s) Chars 59813 - 59818 [step.] 0.001 secs (0.001u,0.s) Chars 59821 - 59833 [constructor.] 0. secs (0.u,0.s) -Chars 59836 - 59843 [intros.] 0. secs (0.u,0.s) -Chars 59844 - 59861 [apply~bind_ret_l.] 0. secs (0.u,0.s) +Chars 59836 - 59843 [(intros).] 0. secs (0.u,0.s) +Chars 59844 - 59861 [(apply~bind_ret_l).] 0. secs (0.u,0.s) Chars 59862 - 59866 [Qed.] 0.001 secs (0.001u,0.s) Chars 59868 - 60025 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) Chars 60026 - 60032 [Proof.] 0. secs (0.u,0.s) -Chars 60035 - 60057 [rewrite~unfold_aloop_.] 0.006 secs (0.006u,0.s) +Chars 60035 - 60057 [(rewrite~unfold_aloop_).] 0.009 secs (0.009u,0.s) Chars 60058 - 60070 [reflexivity.] 0. secs (0.u,0.s) -Chars 60071 - 60075 [Qed.] 0. secs (0.u,0.s) +Chars 60071 - 60075 [Qed.] 0.001 secs (0.001u,0.s) Chars 60077 - 60199 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) Chars 60200 - 60206 [Proof.] 0. secs (0.u,0.s) -Chars 60209 - 60257 [rewrite~itree_eta,~(itree_eta~...] 0.001 secs (0.001u,0.s) +Chars 60209 - 60257 [(rewrite~itree_eta,~(itree_eta...] 0.002 secs (0.002u,0.s) Chars 60260 - 60272 [reflexivity.] 0. secs (0.u,0.s) -Chars 60273 - 60277 [Qed.] 0. secs (0.u,0.s) +Chars 60273 - 60277 [Qed.] 0.001 secs (0.001u,0.s) Chars 60279 - 60393 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) Chars 60394 - 60454 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) Chars 60456 - 60471 [Section~eqit_h.] 0. secs (0.u,0.s) Chars 60473 - 60539 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) Chars 60598 - 60715 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) Chars 60716 - 60722 [Proof.] 0. secs (0.u,0.s) -Chars 60725 - 60741 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 60725 - 60741 [(split;~intros~H).] 0. secs (0.u,0.s) Chars 60744 - 60745 [-] 0. secs (0.u,0.s) Chars 60746 - 60756 [step~in~H.] 0. secs (0.u,0.s) Chars 60757 - 60762 [step.] 0.001 secs (0.001u,0.s) Chars 60769 - 60786 [move~H~before~RR.] 0. secs (0.u,0.s) -Chars 60787 - 60802 [revert_until~H.] 0. secs (0.u,0.s) -Chars 60807 - 60835 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) -Chars 60841 - 60869 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) -Chars 60875 - 60889 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 60895 - 60909 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 60915 - 60971 [hinduction~H~before~RR;~intros...] 0.011 secs (0.011u,0.s) +Chars 60787 - 60802 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 60807 - 60835 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) +Chars 60841 - 60869 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) +Chars 60875 - 60889 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 60895 - 60909 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 60915 - 60971 [(hinduction~H~before~RR;~intro...] 0.017 secs (0.017u,0.s) Chars 60977 - 60978 [+] 0. secs (0.u,0.s) -Chars 60979 - 60990 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 60979 - 60990 [now~unstep.] 0.003 secs (0.003u,0.s) Chars 60996 - 60997 [+] 0. secs (0.u,0.s) -Chars 60998 - 61004 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 60998 - 61004 [(inv~H).] 0.01 secs (0.01u,0.s) Chars 61012 - 61013 [*] 0. secs (0.u,0.s) Chars 61014 - 61019 [taul.] 0. secs (0.u,0.s) -Chars 61020 - 61042 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61020 - 61042 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) Chars 61050 - 61051 [*] 0. secs (0.u,0.s) Chars 61052 - 61057 [taul.] 0. secs (0.u,0.s) -Chars 61058 - 61080 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61058 - 61080 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) Chars 61086 - 61087 [+] 0. secs (0.u,0.s) -Chars 61088 - 61094 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 61088 - 61094 [(inv~H).] 0.007 secs (0.007u,0.s) Chars 61102 - 61103 [*] 0. secs (0.u,0.s) Chars 61104 - 61109 [taur.] 0. secs (0.u,0.s) -Chars 61110 - 61132 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61110 - 61132 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) Chars 61140 - 61141 [*] 0. secs (0.u,0.s) Chars 61142 - 61147 [taur.] 0. secs (0.u,0.s) -Chars 61148 - 61170 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 61148 - 61170 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) Chars 61174 - 61175 [-] 0. secs (0.u,0.s) Chars 61176 - 61181 [step.] 0.001 secs (0.001u,0.s) Chars 61182 - 61198 [now~constructor.] 0. secs (0.u,0.s) -Chars 61202 - 61206 [Qed.] 0.005 secs (0.005u,0.s) +Chars 61202 - 61206 [Qed.] 0.008 secs (0.008u,0.s) Chars 61209 - 61432 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) Chars 61433 - 61439 [Proof.] 0. secs (0.u,0.s) -Chars 61442 - 61458 [destruct~p;~cbn.] 0. secs (0.u,0.s) -Chars 61459 - 61471 [intros~<-~H.] 0. secs (0.u,0.s) +Chars 61442 - 61458 [(destruct~p;~cbn).] 0. secs (0.u,0.s) +Chars 61459 - 61471 [(intros~<-~H).] 0. secs (0.u,0.s) Chars 61472 - 61477 [step.] 0.001 secs (0.001u,0.s) Chars 61478 - 61491 [econstructor.] 0. secs (0.u,0.s) -Chars 61492 - 61500 [apply~H.] 0. secs (0.u,0.s) +Chars 61492 - 61500 [(apply~H).] 0. secs (0.u,0.s) Chars 61501 - 61505 [Qed.] 0.001 secs (0.001u,0.s) Chars 61507 - 61679 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) Chars 61680 - 61686 [Proof.] 0. secs (0.u,0.s) -Chars 61689 - 61741 [apply~eqit_Vis_gen~with~(p~:=~...] 0. secs (0.u,0.s) +Chars 61689 - 61741 [(apply~eqit_Vis_gen~with~(p~:=...] 0. secs (0.u,0.s) Chars 61742 - 61746 [Qed.] 0. secs (0.u,0.s) Chars 61748 - 61845 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) Chars 61846 - 61852 [Proof.] 0. secs (0.u,0.s) -Chars 61855 - 61871 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 61855 - 61871 [(split;~intros~H).] 0. secs (0.u,0.s) Chars 61874 - 61875 [-] 0. secs (0.u,0.s) Chars 61876 - 61881 [step.] 0.001 secs (0.001u,0.s) -Chars 61882 - 61900 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 61882 - 61900 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 61903 - 61904 [-] 0. secs (0.u,0.s) Chars 61905 - 61915 [step~in~H.] 0. secs (0.u,0.s) -Chars 61916 - 61941 [inversion~H;~subst;~auto.] 0.001 secs (0.001u,0.s) -Chars 61942 - 61946 [Qed.] 0.001 secs (0.001u,0.s) +Chars 61916 - 61941 [(inversion~H;~subst;~auto).] 0.001 secs (0.001u,0.s) +Chars 61942 - 61946 [Qed.] 0.002 secs (0.002u,0.s) Chars 62131 - 62449 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) Chars 62450 - 62456 [Proof.] 0. secs (0.u,0.s) -Chars 62460 - 62476 [revert_until~U2.] 0. secs (0.u,0.s) -Chars 62480 - 62496 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 62460 - 62476 [(revert_until~U2).] 0. secs (0.u,0.s) +Chars 62480 - 62496 [tower~induction.] 0.004 secs (0.004u,0.s) Chars 62500 - 62501 [-] 0. secs (0.u,0.s) -Chars 62502 - 62509 [intros.] 0. secs (0.u,0.s) -Chars 62513 - 62530 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 62502 - 62509 [(intros).] 0. secs (0.u,0.s) +Chars 62513 - 62530 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) Chars 62535 - 62536 [-] 0. secs (0.u,0.s) -Chars 62537 - 62544 [intros.] 0. secs (0.u,0.s) +Chars 62537 - 62544 [(intros).] 0. secs (0.u,0.s) Chars 62548 - 62558 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 62562 - 62576 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 62581 - 62595 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 62598 - 62640 [hinduction~H0~before~RR;~intro...] 0.028 secs (0.028u,0.s) -Chars 62725 - 62762 [1-3:~rewrite~2!observe_bind;~s...] 0.013 secs (0.013u,0.s) +Chars 62562 - 62576 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 62581 - 62595 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 62598 - 62640 [(hinduction~H0~before~RR;~intr...] 0.041 secs (0.041u,0.s) +Chars 62725 - 62762 [1-3:~(rewrite~2!observe_bind;~...] 0.018 secs (0.018u,0.s) Chars 62777 - 62778 [+] 0. secs (0.u,0.s) -Chars 62779 - 62796 [eapply~H1;~eauto.] 0. secs (0.u,0.s) +Chars 62779 - 62796 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) Chars 62813 - 62814 [+] 0. secs (0.u,0.s) Chars 62815 - 62827 [constructor.] 0. secs (0.u,0.s) -Chars 62832 - 62848 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) -Chars 62854 - 62882 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) +Chars 62832 - 62848 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) +Chars 62854 - 62882 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) Chars 62897 - 62898 [+] 0. secs (0.u,0.s) Chars 62899 - 62911 [constructor.] 0. secs (0.u,0.s) Chars 62917 - 62923 [intro.] 0. secs (0.u,0.s) -Chars 62929 - 62945 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) -Chars 62950 - 62978 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) +Chars 62929 - 62945 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) +Chars 62950 - 62978 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) Chars 62994 - 62995 [+] 0. secs (0.u,0.s) -Chars 62996 - 63017 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 63023 - 63031 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 62996 - 63017 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 63023 - 63031 [simpobs.] 0.005 secs (0.005u,0.s) Chars 63037 - 63042 [taul.] 0. secs (0.u,0.s) -Chars 63048 - 63070 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 63048 - 63070 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) Chars 63088 - 63089 [+] 0. secs (0.u,0.s) -Chars 63090 - 63123 [setoid_rewrite~observe_bind~at~2.] 0.016 secs (0.015u,0.s) -Chars 63129 - 63137 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 63090 - 63123 [setoid_rewrite~observe_bind~at~2.] 0.022 secs (0.021u,0.s) +Chars 63129 - 63137 [simpobs.] 0.004 secs (0.004u,0.s) Chars 63143 - 63148 [taur.] 0. secs (0.u,0.s) -Chars 63154 - 63176 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 63178 - 63182 [Qed.] 0.006 secs (0.006u,0.s) +Chars 63154 - 63176 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 63178 - 63182 [Qed.] 0.009 secs (0.009u,0.s) Chars 63185 - 63377 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) Chars 63378 - 63384 [Proof.] 0. secs (0.u,0.s) -Chars 63389 - 63401 [unfold~eutt.] 0. secs (0.u,0.s) -Chars 63402 - 63432 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 63389 - 63401 [(unfold~eutt).] 0. secs (0.u,0.s) +Chars 63402 - 63432 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) Chars 63435 - 63439 [Qed.] 0. secs (0.u,0.s) -Chars 63442 - 63676 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) +Chars 63442 - 63676 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.002 secs (0.002u,0.s) Chars 63677 - 63683 [Proof.] 0. secs (0.u,0.s) -Chars 63688 - 63719 [eapply~eqit_bind_chain;~intros.] 0. secs (0.u,0.s) -Chars 63725 - 63770 [all:~now~do~2~step;~[~apply~EQ...] 0.018 secs (0.017u,0.s) -Chars 63771 - 63775 [Qed.] 0.001 secs (0.001u,0.s) +Chars 63688 - 63719 [(eapply~eqit_bind_chain;~intros).] 0. secs (0.u,0.s) +Chars 63725 - 63770 [all:~now~do~2~step;~[~apply~EQ...] 0.025 secs (0.025u,0.s) +Chars 63771 - 63775 [Qed.] 0.002 secs (0.002u,0.s) Chars 63779 - 63790 [End~eqit_h.] 0. secs (0.u,0.s) Chars 63792 - 63835 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) Chars 63837 - 63873 [Ltac~etau~:=~taus;~eauto~with~...] 0. secs (0.u,0.s) @@ -1329,145 +1329,145 @@ Chars 63876 - 63927 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) Chars 63929 - 63984 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) Chars 63989 - 64065 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) Chars 64066 - 64072 [Proof.] 0. secs (0.u,0.s) -Chars 64075 - 64090 [apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 64075 - 64090 [(apply~eqit_Tau).] 0. secs (0.u,0.s) Chars 64091 - 64095 [Qed.] 0. secs (0.u,0.s) Chars 64097 - 64176 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) Chars 64177 - 64183 [Proof.] 0. secs (0.u,0.s) -Chars 64186 - 64201 [apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 64186 - 64201 [(apply~eqit_Tau).] 0. secs (0.u,0.s) Chars 64202 - 64206 [Qed.] 0. secs (0.u,0.s) Chars 64208 - 64470 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 64471 - 64477 [Proof.] 0. secs (0.u,0.s) -Chars 64480 - 64487 [intros.] 0. secs (0.u,0.s) -Chars 64490 - 64520 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) -Chars 64522 - 64526 [Qed.] 0. secs (0.u,0.s) +Chars 64480 - 64487 [(intros).] 0. secs (0.u,0.s) +Chars 64490 - 64520 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) +Chars 64522 - 64526 [Qed.] 0.002 secs (0.002u,0.s) Chars 64528 - 64789 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) Chars 64790 - 64796 [Proof.] 0. secs (0.u,0.s) -Chars 64799 - 64824 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) +Chars 64799 - 64824 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) Chars 64825 - 64829 [Qed.] 0. secs (0.u,0.s) Chars 65435 - 65596 [#[global]~Instance~eqit_subst~...] 0. secs (0.u,0.s) Chars 65597 - 65603 [Proof.] 0. secs (0.u,0.s) -Chars 65606 - 65640 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) -Chars 65643 - 65663 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 65606 - 65640 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) +Chars 65643 - 65663 [(intros;~subst;~auto).] 0. secs (0.u,0.s) Chars 65664 - 65668 [Qed.] 0. secs (0.u,0.s) Chars 65670 - 65829 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) Chars 65830 - 65836 [Proof.] 0. secs (0.u,0.s) -Chars 65839 - 65873 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) -Chars 65876 - 65896 [intros;~subst;~auto.] 0. secs (0.u,0.s) -Chars 65897 - 65901 [Qed.] 0.001 secs (0.001u,0.s) +Chars 65839 - 65873 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) +Chars 65876 - 65896 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 65897 - 65901 [Qed.] 0. secs (0.u,0.s) Chars 65903 - 66150 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) Chars 66151 - 66157 [Proof.] 0. secs (0.u,0.s) -Chars 66160 - 66185 [unfold~ITree.map;~intros.] 0. secs (0.u,0.s) -Chars 66188 - 66213 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) -Chars 66216 - 66248 [intros;~step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 66160 - 66185 [(unfold~ITree.map;~intros).] 0. secs (0.u,0.s) +Chars 66188 - 66213 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) +Chars 66216 - 66248 [(intros;~step;~constructor;~au...] 0.001 secs (0.001u,0.s) Chars 66249 - 66253 [Qed.] 0.001 secs (0.001u,0.s) Chars 66255 - 66412 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) Chars 66413 - 66419 [Proof.] 0. secs (0.u,0.s) -Chars 66422 - 66454 [intros~!;~eapply~eqit_map;~eauto.] 0. secs (0.u,0.s) -Chars 66457 - 66477 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 66422 - 66454 [(intros~!;~eapply~eqit_map;~ea...] 0. secs (0.u,0.s) +Chars 66457 - 66477 [(intros;~subst;~auto).] 0. secs (0.u,0.s) Chars 66478 - 66482 [Qed.] 0. secs (0.u,0.s) Chars 66484 - 66669 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) Chars 66671 - 66677 [Proof.] 0. secs (0.u,0.s) Chars 66681 - 66689 [intros~!.] 0. secs (0.u,0.s) Chars 66693 - 66700 [unstep.] 0.001 secs (0.001u,0.s) -Chars 66701 - 66711 [rewrite~H.] 0. secs (0.u,0.s) -Chars 66712 - 66723 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 66701 - 66711 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 66712 - 66723 [(rewrite~H0).] 0. secs (0.u,0.s) Chars 66724 - 66733 [now~step.] 0.001 secs (0.001u,0.s) -Chars 66735 - 66739 [Qed.] 0.001 secs (0.001u,0.s) +Chars 66735 - 66739 [Qed.] 0.002 secs (0.002u,0.s) Chars 66743 - 66861 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) Chars 66862 - 66868 [Proof.] 0. secs (0.u,0.s) -Chars 66871 - 66893 [apply~Transitive_elem.] 0. secs (0.u,0.s) +Chars 66871 - 66893 [(apply~Transitive_elem).] 0. secs (0.u,0.s) Chars 66894 - 66912 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 66914 - 66918 [Qed.] 0. secs (0.u,0.s) -Chars 67247 - 67405 [#[global]~Instance~elem_observ...] 0. secs (0.u,0.s) +Chars 67247 - 67405 [#[global]~Instance~elem_observ...] 0.001 secs (0.001u,0.s) Chars 67407 - 67413 [Proof.] 0. secs (0.u,0.s) -Chars 67417 - 67450 [intros~x~y~Hxy~x'~y'~Hx'y'~Helem.] 0. secs (0.u,0.s) +Chars 67417 - 67450 [(intros~x~y~Hxy~x'~y'~Hx'y'~He...] 0. secs (0.u,0.s) Chars 67453 - 67471 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) -Chars 67476 - 67516 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) -Chars 67519 - 67561 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) -Chars 67564 - 67592 [do~2~(etransitivity;~eauto).] 0.001 secs (0.001u,0.s) -Chars 67595 - 67599 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67476 - 67516 [(eapply~observing_sub_elem~in~...] 0. secs (0.u,0.s) +Chars 67519 - 67561 [(eapply~observing_sub_elem~in~...] 0.001 secs (0.001u,0.s) +Chars 67564 - 67592 [(do~2~(etransitivity;~eauto)).] 0.001 secs (0.001u,0.s) +Chars 67595 - 67599 [Qed.] 0.002 secs (0.002u,0.s) Chars 67604 - 67693 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) Chars 67694 - 67700 [Proof.] 0. secs (0.u,0.s) -Chars 67703 - 67719 [unfold~eq_itree.] 0. secs (0.u,0.s) -Chars 67720 - 67727 [intros.] 0. secs (0.u,0.s) -Chars 67813 - 67866 [rewrite~(itree_eta_~(ITree.bin...] 0.01 secs (0.01u,0.s) +Chars 67703 - 67719 [(unfold~eq_itree).] 0. secs (0.u,0.s) +Chars 67720 - 67727 [(intros).] 0. secs (0.u,0.s) +Chars 67813 - 67866 [(rewrite~(itree_eta_~(ITree.bi...] 0.002 secs (0.002u,0.s) Chars 67893 - 67902 [revert~s.] 0. secs (0.u,0.s) -Chars 67906 - 67925 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 67929 - 67936 [intros.] 0. secs (0.u,0.s) -Chars 68011 - 68057 [desobs~s~H;~cbn;~simpobs;~cons...] 0.001 secs (0.001u,0.s) +Chars 67906 - 67925 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 67929 - 67936 [(intros).] 0. secs (0.u,0.s) +Chars 68011 - 68057 [(desobs~s~H;~cbn;~simpobs;~con...] 0.004 secs (0.004u,0.s) Chars 68085 - 68097 [reflexivity.] 0. secs (0.u,0.s) -Chars 68238 - 68272 [all:~eapply~elem_observing_pro...] 0.001 secs (0.001u,0.s) -Chars 68317 - 68337 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) -Chars 68391 - 68426 [all:~constructor;~ITree.fold_s...] 0. secs (0.u,0.s) -Chars 68429 - 68453 [all:~simpl;~reflexivity.] 0. secs (0.u,0.s) -Chars 68455 - 68459 [Qed.] 0.005 secs (0.005u,0.s) +Chars 68238 - 68272 [all:~(eapply~elem_observing_pr...] 0.002 secs (0.002u,0.s) +Chars 68317 - 68337 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) +Chars 68391 - 68426 [all:~(constructor;~ITree.fold_...] 0. secs (0.u,0.s) +Chars 68429 - 68453 [all:~(simpl;~reflexivity).] 0. secs (0.u,0.s) +Chars 68455 - 68459 [Qed.] 0.009 secs (0.009u,0.s) Chars 68462 - 68584 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) Chars 68585 - 68591 [Proof.] 0. secs (0.u,0.s) Chars 68594 - 68602 [intro~H.] 0. secs (0.u,0.s) -Chars 68603 - 68634 [rewrite~<-~(bind_ret_r~u)~~at~2.] 0. secs (0.u,0.s) -Chars 68635 - 68651 [apply~eqit_bind.] 0. secs (0.u,0.s) +Chars 68603 - 68634 [(rewrite~<-~(bind_ret_r~u)~~at...] 0.001 secs (0.001u,0.s) +Chars 68635 - 68651 [(apply~eqit_bind).] 0. secs (0.u,0.s) Chars 68654 - 68655 [-] 0. secs (0.u,0.s) Chars 68656 - 68668 [reflexivity.] 0. secs (0.u,0.s) Chars 68671 - 68672 [-] 0. secs (0.u,0.s) -Chars 68673 - 68677 [hnf.] 0. secs (0.u,0.s) -Chars 68678 - 68685 [intros.] 0. secs (0.u,0.s) -Chars 68686 - 68701 [apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 68673 - 68677 [(hnf).] 0. secs (0.u,0.s) +Chars 68678 - 68685 [(intros).] 0. secs (0.u,0.s) +Chars 68686 - 68701 [(apply~eqit_Ret).] 0. secs (0.u,0.s) Chars 68702 - 68707 [auto.] 0. secs (0.u,0.s) -Chars 68708 - 68712 [Qed.] 0. secs (0.u,0.s) +Chars 68708 - 68712 [Qed.] 0.001 secs (0.001u,0.s) Chars 68714 - 68877 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) Chars 68880 - 69057 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) Chars 69058 - 69064 [Proof.] 0. secs (0.u,0.s) -Chars 69067 - 69083 [unfold~eq_itree.] 0. secs (0.u,0.s) -Chars 69084 - 69091 [intros.] 0. secs (0.u,0.s) -Chars 69095 - 69206 [lazymatch~goal~with~|~|-~_~(IT...] 0.002 secs (0.002u,0.s) -Chars 69209 - 69286 [lazymatch~goal~with~|~|-~_~?t0...] 0.001 secs (0.001u,0.s) +Chars 69067 - 69083 [(unfold~eq_itree).] 0. secs (0.u,0.s) +Chars 69084 - 69091 [(intros).] 0. secs (0.u,0.s) +Chars 69095 - 69206 [(lazymatch~goal~with~~|~|-~_~(...] 0.003 secs (0.003u,0.s) +Chars 69209 - 69286 [(lazymatch~goal~with~~|~|-~_~?...] 0.002 secs (0.002u,0.s) Chars 69289 - 69302 [revert~s~k~h.] 0. secs (0.u,0.s) -Chars 69306 - 69325 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 69328 - 69335 [intros.] 0. secs (0.u,0.s) -Chars 69338 - 69363 [desobs~s~H;~cbn;~simpobs.] 0.002 secs (0.002u,0.s) -Chars 69367 - 69375 [1:~step.] 0.002 secs (0.002u,0.s) +Chars 69306 - 69325 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 69328 - 69335 [(intros).] 0. secs (0.u,0.s) +Chars 69338 - 69363 [(desobs~s~H;~cbn;~simpobs).] 0.003 secs (0.003u,0.s) +Chars 69367 - 69375 [1:~step.] 0.003 secs (0.003u,0.s) Chars 69376 - 69388 [reflexivity.] 0. secs (0.u,0.s) -Chars 69392 - 69447 [all:~constructor;~intros;~eapp...] 0.001 secs (0.001u,0.s) -Chars 69450 - 69470 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) -Chars 69473 - 69490 [all:~constructor.] 0. secs (0.u,0.s) +Chars 69392 - 69447 [all:~(constructor;~intros;~eap...] 0.002 secs (0.002u,0.s) +Chars 69450 - 69470 [all:~(try~eapply~CIH).] 0.001 secs (0.001u,0.s) +Chars 69473 - 69490 [all:~constructor.] 0.001 secs (0.001u,0.s) Chars 69494 - 69510 [all:~fold_subst.] 0.001 secs (0.001u,0.s) -Chars 69514 - 69547 [all:~repeat~rewrite~observe_bind.] 0.003 secs (0.003u,0.s) +Chars 69514 - 69547 [all:~(repeat~rewrite~observe_b...] 0.005 secs (0.005u,0.s) Chars 69550 - 69567 [all:~reflexivity.] 0. secs (0.u,0.s) -Chars 69568 - 69572 [Qed.] 0.007 secs (0.007u,0.s) +Chars 69568 - 69572 [Qed.] 0.011 secs (0.011u,0.s) Chars 69575 - 69717 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) Chars 69718 - 69724 [Proof.] 0. secs (0.u,0.s) -Chars 69727 - 69744 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 69745 - 69752 [intros.] 0. secs (0.u,0.s) -Chars 69753 - 69771 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 69772 - 69798 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 69727 - 69744 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 69745 - 69752 [(intros).] 0. secs (0.u,0.s) +Chars 69753 - 69771 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 69772 - 69798 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) Chars 69799 - 69811 [reflexivity.] 0. secs (0.u,0.s) Chars 69812 - 69816 [Qed.] 0.001 secs (0.001u,0.s) Chars 69818 - 69970 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) Chars 69971 - 69977 [Proof.] 0. secs (0.u,0.s) -Chars 69980 - 69997 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 69998 - 70005 [intros.] 0. secs (0.u,0.s) -Chars 70006 - 70024 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 70025 - 70051 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 69980 - 69997 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 69998 - 70005 [(intros).] 0. secs (0.u,0.s) +Chars 70006 - 70024 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 70025 - 70051 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) Chars 70052 - 70064 [reflexivity.] 0. secs (0.u,0.s) -Chars 70065 - 70069 [Qed.] 0. secs (0.u,0.s) +Chars 70065 - 70069 [Qed.] 0.001 secs (0.001u,0.s) Chars 70071 - 70224 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) Chars 70225 - 70231 [Proof.] 0. secs (0.u,0.s) -Chars 70234 - 70241 [intros.] 0. secs (0.u,0.s) -Chars 70242 - 70259 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 70260 - 70276 [apply~bind_bind.] 0. secs (0.u,0.s) +Chars 70234 - 70241 [(intros).] 0. secs (0.u,0.s) +Chars 70242 - 70259 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 70260 - 70276 [(apply~bind_bind).] 0. secs (0.u,0.s) Chars 70277 - 70281 [Qed.] 0. secs (0.u,0.s) Chars 70283 - 70373 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) Chars 70374 - 70380 [Proof.] 0. secs (0.u,0.s) -Chars 70383 - 70390 [intros.] 0. secs (0.u,0.s) -Chars 70391 - 70408 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 70411 - 70443 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 70444 - 70448 [Qed.] 0. secs (0.u,0.s) +Chars 70383 - 70390 [(intros).] 0. secs (0.u,0.s) +Chars 70391 - 70408 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 70411 - 70443 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 70444 - 70448 [Qed.] 0.001 secs (0.001u,0.s) Chars 70450 - 70558 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) Chars 70559 - 70565 [Proof.] 0. secs (0.u,0.s) -Chars 70568 - 70575 [intros.] 0. secs (0.u,0.s) -Chars 70578 - 70595 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 70598 - 70628 [rewrite~bind_tau;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 70629 - 70633 [Qed.] 0. secs (0.u,0.s) +Chars 70568 - 70575 [(intros).] 0. secs (0.u,0.s) +Chars 70578 - 70595 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 70598 - 70628 [(rewrite~bind_tau;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 70629 - 70633 [Qed.] 0.001 secs (0.001u,0.s) Chars 70635 - 70678 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) Chars 70679 - 70722 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) Chars 70723 - 70764 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) @@ -1488,268 +1488,268 @@ Chars 71938 - 72036 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) Chars 72038 - 72107 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) Chars 72109 - 72370 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) Chars 72371 - 72377 [Proof.] 0. secs (0.u,0.s) -Chars 72380 - 72387 [intros.] 0. secs (0.u,0.s) +Chars 72380 - 72387 [(intros).] 0. secs (0.u,0.s) Chars 72390 - 72400 [step~in~H.] 0. secs (0.u,0.s) -Chars 72403 - 72448 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) -Chars 72451 - 72476 [remember~(Ret~b)~as~retb.] 0. secs (0.u,0.s) -Chars 72480 - 72510 [remember~(observe~retb)~as~tr.] 0. secs (0.u,0.s) +Chars 72403 - 72448 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 72451 - 72476 [(remember~(Ret~b)~as~retb).] 0. secs (0.u,0.s) +Chars 72480 - 72510 [(remember~(observe~retb)~as~tr).] 0. secs (0.u,0.s) Chars 72513 - 72554 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) -Chars 72557 - 72613 [hinduction~H~before~RR;~intros...] 0.001 secs (0.001u,0.s) +Chars 72557 - 72613 [(hinduction~H~before~RR;~intro...] 0.002 secs (0.002u,0.s) Chars 72616 - 72617 [-] 0. secs (0.u,0.s) -Chars 72618 - 72632 [intros;~subst.] 0. secs (0.u,0.s) -Chars 72637 - 72687 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 72692 - 72740 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 72618 - 72632 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 72637 - 72687 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 72692 - 72740 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) Chars 72745 - 72754 [exists~r.] 0. secs (0.u,0.s) Chars 72755 - 72761 [split.] 0. secs (0.u,0.s) Chars 72766 - 72767 [*] 0. secs (0.u,0.s) -Chars 72768 - 72791 [rewrite~itree_eta,~Ema.] 0.006 secs (0.006u,0.s) +Chars 72768 - 72791 [(rewrite~itree_eta,~Ema).] 0.009 secs (0.009u,0.s) Chars 72792 - 72804 [reflexivity.] 0. secs (0.u,0.s) Chars 72809 - 72810 [*] 0. secs (0.u,0.s) -Chars 72811 - 72830 [rewrite~itree_eta_.] 0.006 secs (0.006u,0.s) -Chars 72831 - 72847 [unfold~_observe.] 0. secs (0.u,0.s) -Chars 72848 - 72866 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) -Chars 72867 - 72877 [inv~Heqtr.] 0.001 secs (0.001u,0.s) -Chars 72883 - 72907 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 72811 - 72830 [(rewrite~itree_eta_).] 0.009 secs (0.009u,0.s) +Chars 72831 - 72847 [(unfold~_observe).] 0. secs (0.u,0.s) +Chars 72848 - 72866 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) +Chars 72867 - 72877 [(inv~Heqtr).] 0.001 secs (0.001u,0.s) +Chars 72883 - 72907 [(step;~constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 72910 - 72911 [-] 0. secs (0.u,0.s) -Chars 72912 - 72919 [intros.] 0. secs (0.u,0.s) +Chars 72912 - 72919 [(intros).] 0. secs (0.u,0.s) Chars 72920 - 72926 [subst.] 0. secs (0.u,0.s) -Chars 72931 - 72981 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 72986 - 73034 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 72931 - 72981 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 72986 - 73034 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) Chars 73039 - 73040 [+] 0. secs (0.u,0.s) Chars 73041 - 73050 [exists~r.] 0. secs (0.u,0.s) Chars 73051 - 73057 [split.] 0. secs (0.u,0.s) Chars 73064 - 73065 [*] 0. secs (0.u,0.s) -Chars 73066 - 73089 [rewrite~itree_eta,~Ema.] 0.007 secs (0.007u,0.s) +Chars 73066 - 73089 [(rewrite~itree_eta,~Ema).] 0.011 secs (0.011u,0.s) Chars 73090 - 73102 [reflexivity.] 0. secs (0.u,0.s) Chars 73109 - 73110 [*] 0. secs (0.u,0.s) Chars 73111 - 73116 [step.] 0.001 secs (0.001u,0.s) -Chars 73117 - 73154 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) -Chars 73155 - 73173 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) -Chars 73174 - 73192 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 73117 - 73154 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) +Chars 73155 - 73173 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) +Chars 73174 - 73192 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 73197 - 73198 [+] 0. secs (0.u,0.s) -Chars 73199 - 73210 [inv~Heqotl.] 0.003 secs (0.003u,0.s) -Chars 73218 - 73243 [edestruct~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 73199 - 73210 [(inv~Heqotl).] 0.005 secs (0.005u,0.s) +Chars 73218 - 73243 [(edestruct~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) Chars 73244 - 73253 [exists~x.] 0. secs (0.u,0.s) -Chars 73261 - 73273 [destruct~H0.] 0. secs (0.u,0.s) -Chars 73281 - 73294 [split;~eauto.] 0. secs (0.u,0.s) -Chars 73301 - 73319 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 73261 - 73273 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 73281 - 73294 [(split;~eauto).] 0. secs (0.u,0.s) +Chars 73301 - 73319 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) Chars 73320 - 73325 [taul.] 0. secs (0.u,0.s) Chars 73333 - 73348 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 73350 - 73354 [Qed.] 0.007 secs (0.007u,0.s) +Chars 73350 - 73354 [Qed.] 0.01 secs (0.01u,0.s) Chars 73356 - 73519 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) Chars 73520 - 73526 [Proof.] 0. secs (0.u,0.s) -Chars 73529 - 73567 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) +Chars 73529 - 73567 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) Chars 73568 - 73572 [Qed.] 0. secs (0.u,0.s) Chars 73574 - 73740 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) Chars 73741 - 73747 [Proof.] 0. secs (0.u,0.s) -Chars 73750 - 73788 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) +Chars 73750 - 73788 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) Chars 73789 - 73793 [Qed.] 0. secs (0.u,0.s) Chars 73795 - 74063 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) -Chars 74065 - 74505 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) +Chars 74065 - 74505 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 74506 - 74512 [Proof.] 0. secs (0.u,0.s) -Chars 74515 - 74522 [intros.] 0. secs (0.u,0.s) +Chars 74515 - 74522 [(intros).] 0. secs (0.u,0.s) Chars 74523 - 74533 [step~in~H.] 0. secs (0.u,0.s) -Chars 74537 - 74582 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) -Chars 74585 - 74613 [remember~(Vis~e~kxc)~as~vis.] 0. secs (0.u,0.s) -Chars 74616 - 74645 [remember~(observe~vis)~as~tr.] 0. secs (0.u,0.s) +Chars 74537 - 74582 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 74585 - 74613 [(remember~(Vis~e~kxc)~as~vis).] 0. secs (0.u,0.s) +Chars 74616 - 74645 [(remember~(observe~vis)~as~tr).] 0. secs (0.u,0.s) Chars 74649 - 74692 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) -Chars 74695 - 74748 [induction~H;~try~(solve~[~intr...] 0.002 secs (0.002u,0.s) +Chars 74695 - 74748 [(induction~H;~try~(solve~[~int...] 0.003 secs (0.003u,0.s) Chars 74751 - 74752 [-] 0. secs (0.u,0.s) -Chars 74753 - 74760 [intros.] 0. secs (0.u,0.s) -Chars 74761 - 74809 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 74814 - 74862 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 74753 - 74760 [(intros).] 0. secs (0.u,0.s) +Chars 74761 - 74809 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 74814 - 74862 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) Chars 74867 - 74868 [+] 0. secs (0.u,0.s) Chars 74869 - 74875 [right.] 0. secs (0.u,0.s) Chars 74876 - 74885 [exists~r.] 0. secs (0.u,0.s) Chars 74886 - 74892 [split.] 0. secs (0.u,0.s) Chars 74899 - 74900 [*] 0. secs (0.u,0.s) -Chars 74901 - 74920 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 74901 - 74920 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) Chars 74921 - 74933 [constructor.] 0. secs (0.u,0.s) Chars 74934 - 74939 [auto.] 0. secs (0.u,0.s) Chars 74946 - 74947 [*] 0. secs (0.u,0.s) -Chars 74948 - 74992 [step;~unfold~observe~at~1;~unf...] 0.001 secs (0.001u,0.s) -Chars 74993 - 75010 [rewrite~<-~Heqtl.] 0. secs (0.u,0.s) +Chars 74948 - 74992 [(step;~unfold~observe~at~1;~un...] 0.001 secs (0.001u,0.s) +Chars 74993 - 75010 [(rewrite~<-~Heqtl).] 0. secs (0.u,0.s) Chars 75019 - 75027 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 75028 - 75046 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 75028 - 75046 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 75051 - 75052 [+] 0. secs (0.u,0.s) Chars 75053 - 75058 [left.] 0. secs (0.u,0.s) Chars 75065 - 75083 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) Chars 75091 - 75108 [revert~e0~Heqvis.] 0. secs (0.u,0.s) Chars 75109 - 75129 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) -Chars 75130 - 75148 [inv_eq_VisF~Heqtl.] 0.002 secs (0.002u,0.s) -Chars 75149 - 75156 [intros.] 0. secs (0.u,0.s) -Chars 75163 - 75174 [inv~Heqvis.] 0.002 secs (0.002u,0.s) -Chars 75182 - 75195 [cbn~in~Heqtr.] 0. secs (0.u,0.s) -Chars 75203 - 75221 [inv_eq_VisF~Heqtr.] 0.002 secs (0.002u,0.s) +Chars 75130 - 75148 [(inv_eq_VisF~Heqtl).] 0. secs (0.u,0.s) +Chars 75149 - 75156 [(intros).] 0. secs (0.u,0.s) +Chars 75163 - 75174 [(inv~Heqvis).] 0.002 secs (0.002u,0.s) +Chars 75182 - 75195 [(cbn~in~Heqtr).] 0. secs (0.u,0.s) +Chars 75203 - 75221 [(inv_eq_VisF~Heqtr).] 0. secs (0.u,0.s) Chars 75228 - 75237 [exists~k.] 0. secs (0.u,0.s) Chars 75238 - 75244 [split.] 0. secs (0.u,0.s) Chars 75251 - 75252 [*] 0. secs (0.u,0.s) -Chars 75253 - 75272 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 75253 - 75272 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) Chars 75273 - 75285 [constructor.] 0. secs (0.u,0.s) Chars 75287 - 75299 [reflexivity.] 0. secs (0.u,0.s) Chars 75306 - 75307 [*] 0. secs (0.u,0.s) Chars 75308 - 75313 [auto.] 0. secs (0.u,0.s) Chars 75316 - 75317 [-] 0. secs (0.u,0.s) -Chars 75318 - 75325 [intros.] 0. secs (0.u,0.s) +Chars 75318 - 75325 [(intros).] 0. secs (0.u,0.s) Chars 75326 - 75332 [subst.] 0. secs (0.u,0.s) -Chars 75337 - 75385 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 75390 - 75439 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 75337 - 75385 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 75390 - 75439 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) Chars 75444 - 75445 [+] 0. secs (0.u,0.s) -Chars 75446 - 75469 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 75446 - 75469 [(right;~exists~r;~split).] 0. secs (0.u,0.s) Chars 75476 - 75477 [*] 0. secs (0.u,0.s) -Chars 75478 - 75514 [rewrite~itree_eta,~Ema;~reflex...] 0.007 secs (0.007u,0.s) +Chars 75478 - 75514 [(rewrite~itree_eta,~Ema;~refle...] 0.012 secs (0.011u,0.s) Chars 75521 - 75522 [*] 0. secs (0.u,0.s) Chars 75523 - 75528 [step.] 0.001 secs (0.001u,0.s) -Chars 75530 - 75585 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) -Chars 75586 - 75604 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 75530 - 75585 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) +Chars 75586 - 75604 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 75609 - 75610 [+] 0. secs (0.u,0.s) -Chars 75611 - 75621 [inv~Heqtl.] 0.005 secs (0.005u,0.s) +Chars 75611 - 75621 [(inv~Heqtl).] 0.007 secs (0.007u,0.s) Chars 75622 - 75677 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 75684 - 75749 [destruct~IHeqitF~as~[(k0,~(?,~...] 0. secs (0.u,0.s) +Chars 75684 - 75749 [(destruct~IHeqitF~as~[(k0,~(?,...] 0. secs (0.u,0.s) Chars 75756 - 75757 [*] 0. secs (0.u,0.s) Chars 75758 - 75768 [exists~k0.] 0. secs (0.u,0.s) -Chars 75769 - 75781 [split;~auto.] 0. secs (0.u,0.s) -Chars 75790 - 75843 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 75769 - 75781 [(split;~auto).] 0. secs (0.u,0.s) +Chars 75790 - 75843 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) Chars 75851 - 75852 [*] 0. secs (0.u,0.s) Chars 75853 - 75862 [exists~a.] 0. secs (0.u,0.s) -Chars 75863 - 75875 [split;~auto.] 0. secs (0.u,0.s) -Chars 75884 - 75937 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) -Chars 75938 - 75942 [Qed.] 0.01 secs (0.01u,0.s) -Chars 75944 - 76280 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) +Chars 75863 - 75875 [(split;~auto).] 0. secs (0.u,0.s) +Chars 75884 - 75937 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 75938 - 75942 [Qed.] 0.015 secs (0.015u,0.s) +Chars 75944 - 76280 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 76281 - 76287 [Proof.] 0. secs (0.u,0.s) -Chars 76290 - 76297 [intros.] 0. secs (0.u,0.s) -Chars 76298 - 76322 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) +Chars 76290 - 76297 [(intros).] 0. secs (0.u,0.s) +Chars 76298 - 76322 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) Chars 76323 - 76328 [auto.] 0. secs (0.u,0.s) Chars 76329 - 76333 [Qed.] 0. secs (0.u,0.s) -Chars 76335 - 76674 [Lemma~eqitree_inv_bind_vis~:~~...] 0. secs (0.u,0.s) +Chars 76335 - 76674 [Lemma~eqitree_inv_bind_vis~:~~...] 0.001 secs (0.001u,0.s) Chars 76675 - 76681 [Proof.] 0. secs (0.u,0.s) -Chars 76684 - 76691 [intros.] 0. secs (0.u,0.s) -Chars 76692 - 76716 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) +Chars 76684 - 76691 [(intros).] 0. secs (0.u,0.s) +Chars 76692 - 76716 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) Chars 76717 - 76722 [auto.] 0. secs (0.u,0.s) Chars 76723 - 76727 [Qed.] 0. secs (0.u,0.s) -Chars 76729 - 77077 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) +Chars 76729 - 77077 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 77078 - 77084 [Proof.] 0. secs (0.u,0.s) -Chars 77087 - 77094 [intros.] 0. secs (0.u,0.s) +Chars 77087 - 77094 [(intros).] 0. secs (0.u,0.s) Chars 77095 - 77105 [step~in~H.] 0. secs (0.u,0.s) -Chars 77109 - 77154 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) -Chars 77157 - 77182 [remember~(Tau~tc)~as~tau.] 0. secs (0.u,0.s) -Chars 77185 - 77214 [remember~(observe~tau)~as~tr.] 0. secs (0.u,0.s) +Chars 77109 - 77154 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 77157 - 77182 [(remember~(Tau~tc)~as~tau).] 0. secs (0.u,0.s) +Chars 77185 - 77214 [(remember~(observe~tau)~as~tr).] 0. secs (0.u,0.s) Chars 77217 - 77257 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) -Chars 77260 - 77313 [induction~H;~intros;~try~(solv...] 0.002 secs (0.002u,0.s) +Chars 77260 - 77313 [(induction~H;~intros;~try~(sol...] 0.003 secs (0.003u,0.s) Chars 77316 - 77317 [-] 0. secs (0.u,0.s) -Chars 77318 - 77328 [inv~Heqtr.] 0.002 secs (0.002u,0.s) -Chars 77329 - 77377 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 77382 - 77430 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 77318 - 77328 [(inv~Heqtr).] 0.005 secs (0.005u,0.s) +Chars 77329 - 77377 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 77382 - 77430 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) Chars 77435 - 77436 [+] 0. secs (0.u,0.s) -Chars 77437 - 77460 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 77437 - 77460 [(right;~exists~r;~split).] 0. secs (0.u,0.s) Chars 77467 - 77468 [*] 0. secs (0.u,0.s) -Chars 77469 - 77512 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 77469 - 77512 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.001u,0.s) Chars 77519 - 77520 [*] 0. secs (0.u,0.s) -Chars 77521 - 77601 [step;~icbn;~inv~H0;~unfold~obs...] 0.002 secs (0.002u,0.s) +Chars 77521 - 77601 [(step;~icbn;~inv~H0;~unfold~ob...] 0.004 secs (0.004u,0.s) Chars 77606 - 77607 [+] 0. secs (0.u,0.s) -Chars 77608 - 77630 [left;~exists~t;~split.] 0. secs (0.u,0.s) +Chars 77608 - 77630 [(left;~exists~t;~split).] 0. secs (0.u,0.s) Chars 77637 - 77638 [*] 0. secs (0.u,0.s) -Chars 77639 - 77695 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 77639 - 77695 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) Chars 77702 - 77703 [*] 0. secs (0.u,0.s) -Chars 77704 - 77714 [inv~Heqtl.] 0.001 secs (0.001u,0.s) -Chars 77715 - 77722 [inv~H0.] 0. secs (0.u,0.s) +Chars 77704 - 77714 [(inv~Heqtl).] 0.002 secs (0.002u,0.s) +Chars 77715 - 77722 [(inv~H0).] 0. secs (0.u,0.s) Chars 77726 - 77727 [-] 0. secs (0.u,0.s) Chars 77728 - 77734 [subst.] 0. secs (0.u,0.s) -Chars 77739 - 77787 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 77792 - 77840 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 77739 - 77787 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 77792 - 77840 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) Chars 77845 - 77846 [+] 0. secs (0.u,0.s) -Chars 77847 - 77870 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 77847 - 77870 [(right;~exists~r;~split).] 0. secs (0.u,0.s) Chars 77877 - 77878 [*] 0. secs (0.u,0.s) -Chars 77879 - 77922 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 77879 - 77922 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) Chars 77929 - 77930 [*] 0. secs (0.u,0.s) -Chars 77931 - 77998 [step;~icbn;~unfold~observe~at~...] 0.001 secs (0.001u,0.s) -Chars 77999 - 78019 [constructor~4;~auto.] 0. secs (0.u,0.s) +Chars 77931 - 77998 [(step;~icbn;~unfold~observe~at...] 0.001 secs (0.001u,0.s) +Chars 77999 - 78019 [(constructor~4;~auto).] 0. secs (0.u,0.s) Chars 78024 - 78025 [+] 0. secs (0.u,0.s) -Chars 78026 - 78036 [inv~Heqtl.] 0.005 secs (0.005u,0.s) +Chars 78026 - 78036 [(inv~Heqtl).] 0.007 secs (0.007u,0.s) Chars 78037 - 78090 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 78097 - 78162 [destruct~IHeqitF~as~[(t0,~(?,~...] 0. secs (0.u,0.s) +Chars 78097 - 78162 [(destruct~IHeqitF~as~[(t0,~(?,...] 0. secs (0.u,0.s) Chars 78169 - 78170 [*] 0. secs (0.u,0.s) Chars 78171 - 78181 [exists~t0.] 0. secs (0.u,0.s) -Chars 78182 - 78194 [split;~auto.] 0. secs (0.u,0.s) -Chars 78203 - 78258 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 78182 - 78194 [(split;~auto).] 0. secs (0.u,0.s) +Chars 78203 - 78258 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) Chars 78265 - 78266 [*] 0. secs (0.u,0.s) Chars 78267 - 78276 [exists~a.] 0. secs (0.u,0.s) -Chars 78277 - 78289 [split;~auto.] 0. secs (0.u,0.s) -Chars 78298 - 78351 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 78277 - 78289 [(split;~auto).] 0. secs (0.u,0.s) +Chars 78298 - 78351 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) Chars 78354 - 78355 [-] 0. secs (0.u,0.s) -Chars 78356 - 78366 [inv~Heqtr.] 0.006 secs (0.006u,0.s) -Chars 78371 - 78394 [left;~exists~ma;~split.] 0. secs (0.u,0.s) +Chars 78356 - 78366 [(inv~Heqtr).] 0.007 secs (0.007u,0.s) +Chars 78371 - 78394 [(left;~exists~ma;~split).] 0. secs (0.u,0.s) Chars 78399 - 78400 [+] 0. secs (0.u,0.s) -Chars 78401 - 78425 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 78401 - 78425 [(step;~constructor;~auto).] 0.002 secs (0.002u,0.s) Chars 78431 - 78432 [+] 0. secs (0.u,0.s) -Chars 78433 - 78458 [inv~H1;~step;~assumption.] 0.004 secs (0.004u,0.s) -Chars 78459 - 78463 [Qed.] 0.011 secs (0.011u,0.s) -Chars 78465 - 78730 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) +Chars 78433 - 78458 [(inv~H1;~step;~assumption).] 0.007 secs (0.007u,0.s) +Chars 78459 - 78463 [Qed.] 0.016 secs (0.016u,0.s) +Chars 78465 - 78730 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 78731 - 78737 [Proof.] 0. secs (0.u,0.s) -Chars 78740 - 78747 [intros.] 0. secs (0.u,0.s) -Chars 78748 - 78772 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) +Chars 78740 - 78747 [(intros).] 0. secs (0.u,0.s) +Chars 78748 - 78772 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) Chars 78773 - 78778 [auto.] 0. secs (0.u,0.s) Chars 78779 - 78783 [Qed.] 0. secs (0.u,0.s) -Chars 78785 - 79053 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) +Chars 78785 - 79053 [Lemma~eqitree_inv_bind_tau~:~~...] 0.001 secs (0.u,0.s) Chars 79054 - 79060 [Proof.] 0. secs (0.u,0.s) -Chars 79063 - 79070 [intros.] 0. secs (0.u,0.s) -Chars 79071 - 79095 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) +Chars 79063 - 79070 [(intros).] 0. secs (0.u,0.s) +Chars 79071 - 79095 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) Chars 79096 - 79101 [auto.] 0. secs (0.u,0.s) Chars 79102 - 79106 [Qed.] 0. secs (0.u,0.s) Chars 79108 - 79230 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) Chars 79231 - 79237 [Proof.] 0. secs (0.u,0.s) -Chars 79240 - 79247 [intros.] 0. secs (0.u,0.s) +Chars 79240 - 79247 [(intros).] 0. secs (0.u,0.s) Chars 79250 - 79260 [step~in~H.] 0. secs (0.u,0.s) -Chars 79263 - 79295 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) -Chars 79298 - 79336 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 79263 - 79295 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) +Chars 79298 - 79336 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) Chars 79339 - 79357 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 79360 - 79422 [induction~H;~intros~EQ1~EQ2;~t...] 0.004 secs (0.004u,0.s) +Chars 79360 - 79422 [(induction~H;~intros~EQ1~EQ2;~...] 0.006 secs (0.006u,0.s) Chars 79425 - 79426 [-] 0. secs (0.u,0.s) -Chars 79427 - 79447 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 79452 - 79460 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 79461 - 79465 [Qed.] 0.002 secs (0.001u,0.s) +Chars 79427 - 79447 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 79452 - 79460 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 79461 - 79465 [Qed.] 0.002 secs (0.002u,0.s) Chars 79467 - 79589 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) Chars 79590 - 79596 [Proof.] 0. secs (0.u,0.s) -Chars 79599 - 79606 [intros.] 0. secs (0.u,0.s) +Chars 79599 - 79606 [(intros).] 0. secs (0.u,0.s) Chars 79609 - 79619 [step~in~H.] 0. secs (0.u,0.s) -Chars 79622 - 79654 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) -Chars 79657 - 79695 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 79622 - 79654 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) +Chars 79657 - 79695 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) Chars 79698 - 79716 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 79719 - 79781 [induction~H;~intros~EQ1~EQ2;~t...] 0.006 secs (0.006u,0.s) +Chars 79719 - 79781 [(induction~H;~intros~EQ1~EQ2;~...] 0.007 secs (0.007u,0.s) Chars 79784 - 79785 [-] 0. secs (0.u,0.s) -Chars 79786 - 79806 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 79811 - 79819 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 79820 - 79824 [Qed.] 0.001 secs (0.001u,0.s) +Chars 79786 - 79806 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 79811 - 79819 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 79820 - 79824 [Qed.] 0.002 secs (0.002u,0.s) Chars 79826 - 79976 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) Chars 79977 - 79983 [Proof.] 0. secs (0.u,0.s) -Chars 79986 - 79993 [intros.] 0. secs (0.u,0.s) +Chars 79986 - 79993 [(intros).] 0. secs (0.u,0.s) Chars 79996 - 80006 [step~in~H.] 0. secs (0.u,0.s) -Chars 80009 - 80043 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) -Chars 80046 - 80084 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 80009 - 80043 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) +Chars 80046 - 80084 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) Chars 80087 - 80105 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 80108 - 80170 [induction~H;~intros~EQ1~EQ2;~t...] 0.006 secs (0.005u,0.s) +Chars 80108 - 80170 [(induction~H;~intros~EQ1~EQ2;~...] 0.01 secs (0.01u,0.s) Chars 80173 - 80174 [-] 0. secs (0.u,0.s) -Chars 80175 - 80195 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 80200 - 80208 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 80209 - 80213 [Qed.] 0.002 secs (0.002u,0.s) +Chars 80175 - 80195 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 80200 - 80208 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 80209 - 80213 [Qed.] 0.003 secs (0.003u,0.s) Chars 80215 - 80365 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) Chars 80366 - 80372 [Proof.] 0. secs (0.u,0.s) -Chars 80375 - 80382 [intros.] 0. secs (0.u,0.s) +Chars 80375 - 80382 [(intros).] 0. secs (0.u,0.s) Chars 80385 - 80395 [step~in~H.] 0. secs (0.u,0.s) -Chars 80398 - 80432 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) -Chars 80435 - 80473 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 80398 - 80432 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) +Chars 80435 - 80473 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) Chars 80476 - 80494 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 80497 - 80559 [induction~H;~intros~EQ1~EQ2;~t...] 0.007 secs (0.006u,0.s) +Chars 80497 - 80559 [(induction~H;~intros~EQ1~EQ2;~...] 0.009 secs (0.009u,0.s) Chars 80562 - 80563 [-] 0. secs (0.u,0.s) -Chars 80564 - 80584 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 80589 - 80597 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 80598 - 80602 [Qed.] 0.002 secs (0.002u,0.s) +Chars 80564 - 80584 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 80589 - 80597 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 80598 - 80602 [Qed.] 0.003 secs (0.003u,0.s) Chars 80603 - 80621 [Section~eqit_elem.] 0. secs (0.u,0.s) Chars 81928 - 82002 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) Chars 82004 - 82063 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) Chars 82101 - 82218 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) Chars 82219 - 82225 [Proof.] 0. secs (0.u,0.s) -Chars 82228 - 82259 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 82228 - 82259 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 82260 - 82264 [Qed.] 0. secs (0.u,0.s) Chars 82266 - 82383 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) Chars 82384 - 82390 [Proof.] 0. secs (0.u,0.s) @@ -1759,154 +1759,154 @@ Chars 82416 - 82533 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) Chars 82534 - 82540 [Proof.] 0. secs (0.u,0.s) Chars 82541 - 82559 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 82560 - 82564 [Qed.] 0. secs (0.u,0.s) -Chars 82595 - 82830 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.001 secs (0.001u,0.s) +Chars 82595 - 82830 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.002 secs (0.002u,0.s) Chars 82831 - 82837 [Proof.] 0. secs (0.u,0.s) -Chars 82840 - 82847 [intros.] 0. secs (0.u,0.s) -Chars 82848 - 82878 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) -Chars 82879 - 82893 [now~do~2~step.] 0.003 secs (0.003u,0.s) -Chars 82895 - 82899 [Qed.] 0. secs (0.u,0.s) +Chars 82840 - 82847 [(intros).] 0. secs (0.u,0.s) +Chars 82848 - 82878 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.001u,0.s) +Chars 82879 - 82893 [now~do~2~step.] 0.005 secs (0.005u,0.s) +Chars 82895 - 82899 [Qed.] 0.001 secs (0.001u,0.s) Chars 83086 - 83100 [End~eqit_elem.] 0. secs (0.u,0.s) Chars 83103 - 83122 [Section~eutt_facts.] 0. secs (0.u,0.s) Chars 84517 - 84630 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) Chars 84631 - 84637 [Proof.] 0. secs (0.u,0.s) Chars 84640 - 84648 [intros~!.] 0. secs (0.u,0.s) -Chars 84649 - 84667 [now~rewrite~H,~H0.] 0.015 secs (0.015u,0.s) -Chars 84668 - 84672 [Qed.] 0. secs (0.u,0.s) +Chars 84649 - 84667 [now~rewrite~H,~H0.] 0.023 secs (0.023u,0.s) +Chars 84668 - 84672 [Qed.] 0.001 secs (0.001u,0.s) Chars 84674 - 84811 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) Chars 84812 - 84818 [Proof.] 0. secs (0.u,0.s) Chars 84821 - 84829 [intros~!.] 0. secs (0.u,0.s) Chars 84830 - 84848 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) -Chars 84849 - 84853 [Qed.] 0. secs (0.u,0.s) +Chars 84849 - 84853 [Qed.] 0.001 secs (0.001u,0.s) Chars 84855 - 84992 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) Chars 84993 - 84999 [Proof.] 0. secs (0.u,0.s) Chars 85002 - 85010 [intros~!.] 0. secs (0.u,0.s) -Chars 85011 - 85029 [now~rewrite~H,~H0.] 0.019 secs (0.018u,0.s) -Chars 85030 - 85034 [Qed.] 0. secs (0.u,0.s) +Chars 85011 - 85029 [now~rewrite~H,~H0.] 0.026 secs (0.026u,0.s) +Chars 85030 - 85034 [Qed.] 0.001 secs (0.001u,0.s) Chars 85188 - 85374 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) Chars 85375 - 85381 [Proof.] 0. secs (0.u,0.s) -Chars 85384 - 85391 [intros.] 0. secs (0.u,0.s) -Chars 85394 - 85454 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 85457 - 85480 [intros~?~?~->;~apply~H.] 0. secs (0.u,0.s) +Chars 85384 - 85391 [(intros).] 0. secs (0.u,0.s) +Chars 85394 - 85454 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) +Chars 85457 - 85480 [(intros~?~?~->;~apply~H).] 0. secs (0.u,0.s) Chars 85481 - 85485 [Qed.] 0. secs (0.u,0.s) Chars 85531 - 85697 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) Chars 85698 - 85704 [Proof.] 0. secs (0.u,0.s) -Chars 85707 - 85720 [intros~->~Hk.] 0.001 secs (0.001u,0.s) +Chars 85707 - 85720 [(intros~->~Hk).] 0.001 secs (0.001u,0.s) Chars 85721 - 85744 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 85745 - 85749 [Qed.] 0. secs (0.u,0.s) +Chars 85745 - 85749 [Qed.] 0.001 secs (0.u,0.s) Chars 85844 - 85966 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) Chars 85967 - 85973 [Proof.] 0. secs (0.u,0.s) -Chars 85976 - 85999 [intros;~apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 85976 - 85999 [(intros;~apply~eqit_Ret).] 0. secs (0.u,0.s) Chars 86000 - 86004 [Qed.] 0. secs (0.u,0.s) Chars 86168 - 86195 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) Chars 86197 - 86347 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) Chars 86348 - 86354 [Proof.] 0. secs (0.u,0.s) -Chars 86357 - 86376 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 86377 - 86393 [intros~*~EQ~EQ'.] 0. secs (0.u,0.s) -Chars 86396 - 86420 [step~in~EQ;~step~in~EQ'.] 0. secs (0.u,0.s) -Chars 86424 - 86449 [genobs~t~ot;~genobs~s~os.] 0. secs (0.u,0.s) -Chars 86452 - 86499 [hinduction~EQ~before~CIH;~subs...] 0.001 secs (0.001u,0.s) +Chars 86357 - 86376 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) +Chars 86377 - 86393 [(intros~*~EQ~EQ').] 0. secs (0.u,0.s) +Chars 86396 - 86420 [(step~in~EQ;~step~in~EQ').] 0.001 secs (0.001u,0.s) +Chars 86424 - 86449 [(genobs~t~ot;~genobs~s~os).] 0.001 secs (0.001u,0.s) +Chars 86452 - 86499 [(hinduction~EQ~before~CIH;~sub...] 0.001 secs (0.001u,0.s) Chars 86502 - 86503 [-] 0. secs (0.u,0.s) -Chars 86504 - 86512 [inv~EQ'.] 0.006 secs (0.006u,0.s) +Chars 86504 - 86512 [(inv~EQ').] 0.009 secs (0.009u,0.s) Chars 86513 - 86518 [eret.] 0. secs (0.u,0.s) Chars 86519 - 86535 [now~constructor.] 0. secs (0.u,0.s) Chars 86539 - 86540 [-] 0. secs (0.u,0.s) Chars 86541 - 86546 [taus.] 0. secs (0.u,0.s) -Chars 86547 - 86565 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 86566 - 86585 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) +Chars 86547 - 86565 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 86566 - 86585 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) Chars 86586 - 86595 [now~step.] 0.001 secs (0.001u,0.s) Chars 86600 - 86601 [-] 0. secs (0.u,0.s) Chars 86602 - 86614 [constructor.] 0. secs (0.u,0.s) Chars 86615 - 86623 [intro~v.] 0. secs (0.u,0.s) Chars 86624 - 86643 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 86648 - 86666 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 86648 - 86666 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 86672 - 86712 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) Chars 86715 - 86716 [-] 0. secs (0.u,0.s) Chars 86717 - 86722 [taul.] 0. secs (0.u,0.s) -Chars 86723 - 86742 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 86723 - 86742 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) Chars 86743 - 86749 [subst.] 0. secs (0.u,0.s) -Chars 86750 - 86757 [unstep.] 0.002 secs (0.002u,0.s) -Chars 86758 - 86780 [eapply~eqit_inv_Tau_l.] 0. secs (0.u,0.s) +Chars 86750 - 86757 [unstep.] 0.003 secs (0.003u,0.s) +Chars 86758 - 86780 [(eapply~eqit_inv_Tau_l).] 0. secs (0.u,0.s) Chars 86786 - 86795 [now~step.] 0.001 secs (0.001u,0.s) Chars 86800 - 86801 [-] 0. secs (0.u,0.s) Chars 86802 - 86807 [taur.] 0. secs (0.u,0.s) -Chars 86808 - 86827 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 86808 - 86827 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) Chars 86828 - 86834 [subst.] 0. secs (0.u,0.s) -Chars 86835 - 86842 [unstep.] 0.002 secs (0.002u,0.s) -Chars 86843 - 86865 [eapply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 86835 - 86842 [unstep.] 0.003 secs (0.003u,0.s) +Chars 86843 - 86865 [(eapply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) Chars 86871 - 86880 [now~step.] 0.001 secs (0.001u,0.s) -Chars 86883 - 86887 [Qed.] 0.01 secs (0.01u,0.s) +Chars 86883 - 86887 [Qed.] 0.016 secs (0.016u,0.s) Chars 86889 - 87015 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) Chars 87017 - 87023 [Proof.] 0. secs (0.u,0.s) -Chars 87026 - 87033 [intros.] 0. secs (0.u,0.s) -Chars 87036 - 87067 [eapply~(eqit_mono~RS~_);~eauto.] 0.001 secs (0.001u,0.s) +Chars 87026 - 87033 [(intros).] 0. secs (0.u,0.s) +Chars 87036 - 87067 [(eapply~(eqit_mono~RS~_);~eauto).] 0.001 secs (0.001u,0.s) Chars 87068 - 87072 [Qed.] 0. secs (0.u,0.s) Chars 87074 - 87201 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) Chars 87203 - 87209 [Proof.] 0. secs (0.u,0.s) -Chars 87212 - 87219 [intros.] 0. secs (0.u,0.s) -Chars 87222 - 87254 [eapply~(eqit_mono~RS'~_);~eauto.] 0.001 secs (0.001u,0.s) +Chars 87212 - 87219 [(intros).] 0. secs (0.u,0.s) +Chars 87222 - 87254 [(eapply~(eqit_mono~RS'~_);~eau...] 0.001 secs (0.001u,0.s) Chars 87255 - 87259 [Qed.] 0. secs (0.u,0.s) Chars 87261 - 87420 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) Chars 87422 - 87428 [Proof.] 0. secs (0.u,0.s) -Chars 87431 - 87504 [intros~*~EQ;~split;~intros~EUT...] 0.003 secs (0.003u,0.s) -Chars 87507 - 87521 [all:~apply~EQ.] 0. secs (0.u,0.s) +Chars 87431 - 87504 [(intros~*~EQ;~split;~intros~EU...] 0.005 secs (0.005u,0.s) +Chars 87507 - 87521 [all:~(apply~EQ).] 0. secs (0.u,0.s) Chars 87522 - 87526 [Qed.] 0. secs (0.u,0.s) Chars 87604 - 87783 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) Chars 87784 - 87790 [Proof.] 0. secs (0.u,0.s) -Chars 87793 - 87808 [intros~!;~subst.] 0. secs (0.u,0.s) -Chars 87811 - 87851 [unfold~eq_itree;~rewrite~H;~re...] 0. secs (0.u,0.s) +Chars 87793 - 87808 [(intros~!;~subst).] 0. secs (0.u,0.s) +Chars 87811 - 87851 [(unfold~eq_itree;~rewrite~H;~r...] 0. secs (0.u,0.s) Chars 87852 - 87856 [Qed.] 0. secs (0.u,0.s) Chars 87858 - 88018 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) Chars 88019 - 88025 [Proof.] 0. secs (0.u,0.s) -Chars 88028 - 88043 [intros~!;~subst.] 0. secs (0.u,0.s) -Chars 88046 - 88082 [unfold~eutt;~rewrite~H;~reflex...] 0. secs (0.u,0.s) +Chars 88028 - 88043 [(intros~!;~subst).] 0. secs (0.u,0.s) +Chars 88046 - 88082 [(unfold~eutt;~rewrite~H;~refle...] 0. secs (0.u,0.s) Chars 88083 - 88087 [Qed.] 0. secs (0.u,0.s) Chars 88196 - 88327 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) Chars 88328 - 88334 [Proof.] 0. secs (0.u,0.s) -Chars 88337 - 88359 [intros~Hrel;~revert~t.] 0. secs (0.u,0.s) -Chars 88360 - 88395 [icoinduction~c~CIH;~intros~t~H...] 0.001 secs (0.001u,0.s) +Chars 88337 - 88359 [(intros~Hrel;~revert~t).] 0. secs (0.u,0.s) +Chars 88360 - 88395 [(icoinduction~c~CIH;~intros~t~...] 0.001 secs (0.001u,0.s) Chars 88398 - 88412 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 88415 - 88446 [remember~t~as~t'~in~Heutt~at~2.] 0. secs (0.u,0.s) -Chars 88447 - 88483 [assert~(Ht'~:~t'~≈~t)~by~now~s...] 0. secs (0.u,0.s) +Chars 88415 - 88446 [(remember~t~as~t'~in~Heutt~at~2).] 0. secs (0.u,0.s) +Chars 88447 - 88483 [(assert~(Ht'~:~t'~≈~t)~by~now~...] 0. secs (0.u,0.s) Chars 88484 - 88496 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 88499 - 88544 [rewrite~(itree_eta~t),~(itree_...] 0.028 secs (0.028u,0.s) +Chars 88499 - 88544 [(rewrite~(itree_eta~t),~(itree...] 0.041 secs (0.04u,0.s) Chars 88547 - 88558 [revert~Ht'.] 0. secs (0.u,0.s) -Chars 88559 - 88596 [induction~Heutt;~clear~t;~intr...] 0.001 secs (0.u,0.s) +Chars 88559 - 88596 [(induction~Heutt;~clear~t;~int...] 0.001 secs (0.001u,0.s) Chars 88599 - 88600 [-] 0. secs (0.u,0.s) -Chars 88601 - 88634 [apply~eutt_inv_Ret~in~Heq;~subst.] 0. secs (0.u,0.s) -Chars 88639 - 88657 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 88601 - 88634 [(apply~eutt_inv_Ret~in~Heq;~su...] 0. secs (0.u,0.s) +Chars 88639 - 88657 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 88660 - 88661 [-] 0. secs (0.u,0.s) -Chars 88662 - 88688 [apply~eqit_inv_Tau~in~Heq.] 0. secs (0.u,0.s) +Chars 88662 - 88688 [(apply~eqit_inv_Tau~in~Heq).] 0. secs (0.u,0.s) Chars 88693 - 88705 [constructor.] 0. secs (0.u,0.s) -Chars 88706 - 88717 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 88706 - 88717 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 88723 - 88747 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) Chars 88750 - 88751 [-] 0. secs (0.u,0.s) Chars 88752 - 88764 [constructor.] 0. secs (0.u,0.s) -Chars 88765 - 88774 [intros~v.] 0. secs (0.u,0.s) -Chars 88775 - 88802 [eapply~eqit_inv_Vis~in~Heq.] 0. secs (0.u,0.s) +Chars 88765 - 88774 [(intros~v).] 0. secs (0.u,0.s) +Chars 88775 - 88802 [(eapply~eqit_inv_Vis~in~Heq).] 0. secs (0.u,0.s) Chars 88807 - 88826 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 88827 - 88838 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 88827 - 88838 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 88839 - 88863 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) Chars 88866 - 88867 [-] 0. secs (0.u,0.s) Chars 88868 - 88873 [taul.] 0. secs (0.u,0.s) Chars 88874 - 88879 [taur.] 0. secs (0.u,0.s) -Chars 88880 - 88894 [apply~IHHeutt.] 0. secs (0.u,0.s) -Chars 88895 - 88921 [rewrite~<-~(itree_eta~t1).] 0. secs (0.u,0.s) -Chars 88929 - 88959 [now~rewrite~tau_euttge~in~Heq.] 0.017 secs (0.017u,0.s) +Chars 88880 - 88894 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 88895 - 88921 [(rewrite~<-~(itree_eta~t1)).] 0.001 secs (0.001u,0.s) +Chars 88929 - 88959 [now~rewrite~tau_euttge~in~Heq.] 0.025 secs (0.025u,0.s) Chars 88963 - 88964 [-] 0. secs (0.u,0.s) -Chars 88965 - 88979 [apply~IHHeutt.] 0. secs (0.u,0.s) -Chars 88980 - 89003 [rewrite~<-~itree_eta.] 0. secs (0.u,0.s) -Chars 89011 - 89041 [now~rewrite~tau_euttge~in~Heq.] 0.011 secs (0.011u,0.s) -Chars 89043 - 89047 [Qed.] 0.004 secs (0.004u,0.s) +Chars 88965 - 88979 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 88980 - 89003 [(rewrite~<-~itree_eta).] 0. secs (0.u,0.s) +Chars 89011 - 89041 [now~rewrite~tau_euttge~in~Heq.] 0.016 secs (0.016u,0.s) +Chars 89043 - 89047 [Qed.] 0.006 secs (0.006u,0.s) Chars 89049 - 89064 [End~eutt_facts.] 0. secs (0.u,0.s) -Chars 89113 - 89280 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 89113 - 89280 [#[global]~Instance~observing_e...] 0.001 secs (0.001u,0.s) Chars 89282 - 89288 [Proof.] 0. secs (0.u,0.s) Chars 89292 - 89300 [intros~!.] 0. secs (0.u,0.s) Chars 89304 - 89309 [step.] 0.002 secs (0.002u,0.s) -Chars 89310 - 89320 [rewrite~H.] 0.006 secs (0.006u,0.s) +Chars 89310 - 89320 [(rewrite~H).] 0.009 secs (0.009u,0.s) Chars 89321 - 89333 [reflexivity.] 0. secs (0.u,0.s) Chars 89335 - 89339 [Qed.] 0.001 secs (0.001u,0.s) Chars 89346 - 89481 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) Chars 89483 - 89489 [Proof.] 0. secs (0.u,0.s) -Chars 89493 - 89532 [intros~!;~now~eapply~observing...] 0. secs (0.u,0.s) +Chars 89493 - 89532 [(intros~!;~now~eapply~observin...] 0. secs (0.u,0.s) Chars 89533 - 89537 [Qed.] 0. secs (0.u,0.s) Chars 89540 - 89667 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) diff --git a/theories/Eq/Rutt.v.timing b/theories/Eq/Rutt.v.timing index 0515e67c..ff417c68 100644 --- a/theories/Eq/Rutt.v.timing +++ b/theories/Eq/Rutt.v.timing @@ -1,6 +1,6 @@ -Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) -Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.144 secs (0.13u,0.013s) +Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.005u,0.002s) +Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) +Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.207 secs (0.175u,0.02s) Chars 1082 - 1111 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1113 - 1127 [Section~RuttF.] 0. secs (0.u,0.s) Chars 1131 - 1162 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -9,51 +9,51 @@ Chars 1426 - 1485 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) Chars 1488 - 1558 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) Chars 1561 - 1583 [Arguments~REv~{A~B}.] 0. secs (0.u,0.s) Chars 1586 - 1609 [Arguments~RAns~{A~B}.] 0. secs (0.u,0.s) -Chars 1613 - 2457 [Inductive~ruttF~(RR~:~R1~->~R2...] 0.002 secs (0.001u,0.s) +Chars 1613 - 2457 [Inductive~ruttF~(RR~:~R1~->~R2...] 0.003 secs (0.002u,0.s) Chars 2460 - 2492 [Hint~Constructors~ruttF:~itree.] 0. secs (0.u,0.s) Chars 2496 - 2714 [Definition~rutt_~~~(sim~:~(R1~...] 0. secs (0.u,0.s) Chars 2718 - 2763 [Lemma~rutt_mono~:~Proper~(leq~...] 0. secs (0.u,0.s) Chars 2766 - 2772 [Proof.] 0. secs (0.u,0.s) -Chars 2777 - 2790 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2791 - 2809 [unfold~rutt_~in~*.] 0. secs (0.u,0.s) -Chars 2810 - 2841 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 2846 - 2871 [constructor;~now~apply~H.] 0. secs (0.u,0.s) -Chars 2877 - 2921 [constructor;~intros;~eauto;~no...] 0. secs (0.u,0.s) +Chars 2777 - 2790 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2791 - 2809 [(unfold~rutt_~in~*).] 0. secs (0.u,0.s) +Chars 2810 - 2841 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.001u,0.s) +Chars 2846 - 2871 [(constructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 2877 - 2921 [(constructor;~intros;~eauto;~n...] 0. secs (0.u,0.s) Chars 2925 - 2929 [Qed.] 0. secs (0.u,0.s) Chars 2933 - 3066 [Definition~rutt_mon~:~~~mon~((...] 0. secs (0.u,0.s) Chars 3071 - 3162 [Definition~rutt~:~(R1~->~R2~->...] 0. secs (0.u,0.s) Chars 3165 - 3190 [Hint~Unfold~rutt:~itree.] 0. secs (0.u,0.s) Chars 3194 - 3494 [Lemma~ruttF_inv_VisF_r~{sim}~R...] 0.001 secs (0.001u,0.s) Chars 3497 - 3503 [Proof.] 0. secs (0.u,0.s) -Chars 3508 - 3745 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) +Chars 3508 - 3745 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) Chars 3750 - 3751 [-] 0. secs (0.u,0.s) -Chars 3752 - 3764 [left;~eauto.] 0.001 secs (0.u,0.s) +Chars 3752 - 3764 [(left;~eauto).] 0.001 secs (0.001u,0.s) Chars 3769 - 3770 [-] 0. secs (0.u,0.s) -Chars 3771 - 3790 [destruct~i0;~eauto.] 0.001 secs (0.u,0.s) +Chars 3771 - 3790 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) Chars 3793 - 3797 [Qed.] 0.001 secs (0.001u,0.s) Chars 3801 - 4007 [Lemma~ruttF_inv_VisF~{sim}~RR~...] 0. secs (0.u,0.s) Chars 4010 - 4016 [Proof.] 0. secs (0.u,0.s) -Chars 4021 - 4030 [intros~H.] 0. secs (0.u,0.s) -Chars 4031 - 4055 [dependent~destruction~H.] 0.005 secs (0.004u,0.001s) +Chars 4021 - 4030 [(intros~H).] 0. secs (0.u,0.s) +Chars 4031 - 4055 [dependent~destruction~H.] 0.007 secs (0.005u,0.001s) Chars 4056 - 4067 [assumption.] 0. secs (0.u,0.s) -Chars 4070 - 4074 [Qed.] 0.024 secs (0.022u,0.002s) -Chars 4076 - 4086 [End~RuttF.] 0. secs (0.u,0.s) +Chars 4070 - 4074 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4076 - 4086 [End~RuttF.] 0.001 secs (0.001u,0.s) Chars 4121 - 4161 [#[local]~Ltac~runfold~:=~unfol...] 0. secs (0.u,0.s) Chars 4162 - 4209 [#[local]~Ltac~runfold_in~h~:=~...] 0. secs (0.u,0.s) Chars 4211 - 4261 [Ltac~rcbn~:=~cbn[rutt_mon~body...] 0. secs (0.u,0.s) Chars 4262 - 4327 [Ltac~rcbn_in~H~:=~cbn[rutt_mon...] 0. secs (0.u,0.s) Chars 4329 - 4379 [Tactic~Notation~"rcbn"~"in"~id...] 0. secs (0.u,0.s) Chars 4380 - 4462 [Tactic~Notation~"rcbn"~"in"~"*...] 0. secs (0.u,0.s) -Chars 4534 - 4581 [Tactic~Notation~"rstep"~:=~run...] 0. secs (0.u,0.s) +Chars 4534 - 4581 [Tactic~Notation~"rstep"~:=~(ru...] 0. secs (0.u,0.s) Chars 4582 - 4658 [Tactic~Notation~"rstep"~"in"~i...] 0. secs (0.u,0.s) Chars 4660 - 4811 [#[local]~Ltac~~refold~:=~~~rep...] 0. secs (0.u,0.s) Chars 4813 - 5006 [Ltac~~fold_rutt~:=~~~match~goa...] 0. secs (0.u,0.s) Chars 5007 - 5212 [Ltac~~fold_rutt_in~h~:=~~~matc...] 0. secs (0.u,0.s) -Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~f...] 0. secs (0.u,0.s) +Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~(...] 0. secs (0.u,0.s) Chars 5261 - 5332 [Tactic~Notation~"runstep"~"in"...] 0. secs (0.u,0.s) Chars 5334 - 5841 [Ltac~~to_rmon_core~:=~~~match~...] 0. secs (0.u,0.s) Chars 5843 - 6021 [Ltac~~to_rmon~:=~~~let~dummy~:...] 0. secs (0.u,0.s) -Chars 6023 - 6539 [Ltac~~to_rmon_in~h~:=~~~match~...] 0. secs (0.u,0.s) +Chars 6023 - 6539 [Ltac~~to_rmon_in~h~:=~~~match~...] 0.026 secs (0.024u,0.001s) Chars 6541 - 6597 [Tactic~Notation~"to_rmon"~"in"...] 0. secs (0.u,0.s) Chars 6599 - 6641 [#[global]~Hint~Constructors~ru...] 0. secs (0.u,0.s) Chars 6642 - 6678 [#[global]~Hint~Unfold~rutt_:~i...] 0. secs (0.u,0.s) @@ -67,75 +67,75 @@ Chars 6899 - 6965 [Variable~(RAns~:~forall~T1~T2,...] 0. secs (0.u,0.s) Chars 6966 - 6998 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) Chars 7000 - 7112 [Lemma~rutt_Ret~r1~r2~:~~~RR~r1...] 0. secs (0.u,0.s) Chars 7113 - 7119 [Proof.] 0. secs (0.u,0.s) -Chars 7120 - 7127 [intros.] 0. secs (0.u,0.s) -Chars 7128 - 7134 [rstep.] 0. secs (0.u,0.s) -Chars 7135 - 7153 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7120 - 7127 [(intros).] 0. secs (0.u,0.s) +Chars 7128 - 7134 [rstep.] 0.001 secs (0.u,0.s) +Chars 7135 - 7153 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 7154 - 7158 [Qed.] 0. secs (0.u,0.s) Chars 7160 - 7235 [Lemma~rutt_inv_Ret~r1~r2~:~rut...] 0. secs (0.u,0.s) Chars 7236 - 7242 [Proof.] 0. secs (0.u,0.s) -Chars 7245 - 7252 [intros.] 0. secs (0.u,0.s) +Chars 7245 - 7252 [(intros).] 0. secs (0.u,0.s) Chars 7253 - 7264 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 7265 - 7271 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 7272 - 7276 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7265 - 7271 [(inv~H).] 0.002 secs (0.002u,0.s) +Chars 7272 - 7276 [Qed.] 0.002 secs (0.002u,0.s) Chars 7278 - 7377 [Lemma~rutt_inv_Ret_l~r1~t2~:~~...] 0. secs (0.u,0.s) Chars 7378 - 7384 [Proof.] 0. secs (0.u,0.s) -Chars 7387 - 7400 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 7387 - 7400 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 7401 - 7416 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 7417 - 7431 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7435 - 7465 [setoid_rewrite~(itree_eta~t2).] 0.003 secs (0.003u,0.s) -Chars 7466 - 7516 [remember~(observe~(Ret~r1))~as...] 0. secs (0.u,0.s) -Chars 7521 - 7563 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) +Chars 7435 - 7465 [setoid_rewrite~(itree_eta~t2).] 0.004 secs (0.004u,0.s) +Chars 7466 - 7516 [(remember~(observe~(Ret~r1))~a...] 0. secs (0.u,0.s) +Chars 7521 - 7563 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) Chars 7566 - 7567 [-] 0. secs (0.u,0.s) -Chars 7568 - 7592 [inversion~Heqot1;~subst.] 0. secs (0.u,0.s) +Chars 7568 - 7592 [(inversion~Heqot1;~subst).] 0. secs (0.u,0.s) Chars 7593 - 7603 [exists~r2.] 0. secs (0.u,0.s) -Chars 7604 - 7630 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) +Chars 7604 - 7630 [(split;~[~reflexivity~|~auto~]).] 0. secs (0.u,0.s) Chars 7633 - 7634 [-] 0. secs (0.u,0.s) -Chars 7635 - 7677 [destruct~(IHHrutt~Heqot1)~as~[...] 0. secs (0.u,0.s) -Chars 7678 - 7701 [exists~r2;~split;~auto.] 0. secs (0.u,0.s) -Chars 7706 - 7733 [rewrite~<-~itree_eta~in~H1.] 0.034 secs (0.034u,0.s) -Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) -Chars 7758 - 7762 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7635 - 7677 [(destruct~(IHHrutt~Heqot1)~as~...] 0. secs (0.u,0.s) +Chars 7678 - 7701 [(exists~r2;~split;~auto).] 0. secs (0.u,0.s) +Chars 7706 - 7733 [(rewrite~<-~itree_eta~in~H1).] 0.01 secs (0.01u,0.s) +Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.033 secs (0.033u,0.s) +Chars 7758 - 7762 [Qed.] 0.003 secs (0.003u,0.s) Chars 7764 - 7863 [Lemma~rutt_inv_Ret_r~t1~r2~:~~...] 0. secs (0.u,0.s) Chars 7864 - 7870 [Proof.] 0. secs (0.u,0.s) -Chars 7873 - 7886 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 7873 - 7886 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 7887 - 7902 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 7903 - 7917 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.002 secs (0.002u,0.s) -Chars 7951 - 8001 [remember~(observe~(Ret~r2))~as...] 0. secs (0.u,0.s) -Chars 8004 - 8046 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) +Chars 7951 - 8001 [(remember~(observe~(Ret~r2))~a...] 0. secs (0.u,0.s) +Chars 8004 - 8046 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) Chars 8049 - 8050 [-] 0. secs (0.u,0.s) -Chars 8051 - 8075 [inversion~Heqot2;~subst.] 0. secs (0.u,0.s) +Chars 8051 - 8075 [(inversion~Heqot2;~subst).] 0. secs (0.u,0.s) Chars 8076 - 8086 [exists~r1.] 0. secs (0.u,0.s) -Chars 8087 - 8113 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) +Chars 8087 - 8113 [(split;~[~reflexivity~|~auto~]).] 0. secs (0.u,0.s) Chars 8116 - 8117 [-] 0. secs (0.u,0.s) -Chars 8118 - 8160 [destruct~(IHHrutt~Heqot2)~as~[...] 0. secs (0.u,0.s) -Chars 8161 - 8184 [exists~r1;~split;~auto.] 0. secs (0.u,0.s) -Chars 8189 - 8216 [rewrite~<-~itree_eta~in~H1.] 0.007 secs (0.007u,0.s) -Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0.001 secs (0.u,0.s) -Chars 8241 - 8245 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8118 - 8160 [(destruct~(IHHrutt~Heqot2)~as~...] 0. secs (0.u,0.s) +Chars 8161 - 8184 [(exists~r1;~split;~auto).] 0. secs (0.u,0.s) +Chars 8189 - 8216 [(rewrite~<-~itree_eta~in~H1).] 0.009 secs (0.009u,0.s) +Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) +Chars 8241 - 8245 [Qed.] 0.003 secs (0.003u,0.s) Chars 8306 - 8449 [Lemma~ruttF_inv_tau_l~t1~ot2~:...] 0. secs (0.u,0.s) Chars 8450 - 8456 [Proof.] 0. secs (0.u,0.s) -Chars 8459 - 8468 [intros~H.] 0. secs (0.u,0.s) -Chars 8469 - 8495 [remember~(TauF~t1)~as~tt1.] 0. secs (0.u,0.s) -Chars 8498 - 8528 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) +Chars 8459 - 8468 [(intros~H).] 0. secs (0.u,0.s) +Chars 8469 - 8495 [(remember~(TauF~t1)~as~tt1).] 0. secs (0.u,0.s) +Chars 8498 - 8528 [(induction~H;~try~discriminate).] 0.002 secs (0.002u,0.s) Chars 8531 - 8532 [-] 0. secs (0.u,0.s) -Chars 8533 - 8544 [inv~Heqtt1.] 0. secs (0.u,0.s) +Chars 8533 - 8544 [(inv~Heqtt1).] 0.001 secs (0.001u,0.s) Chars 8545 - 8557 [constructor.] 0. secs (0.u,0.s) Chars 8558 - 8569 [rstep~in~H.] 0. secs (0.u,0.s) Chars 8570 - 8578 [exact~H.] 0. secs (0.u,0.s) Chars 8581 - 8582 [-] 0. secs (0.u,0.s) -Chars 8583 - 8594 [inv~Heqtt1.] 0. secs (0.u,0.s) +Chars 8583 - 8594 [(inv~Heqtt1).] 0. secs (0.u,0.s) Chars 8597 - 8598 [-] 0. secs (0.u,0.s) Chars 8599 - 8611 [constructor.] 0. secs (0.u,0.s) Chars 8612 - 8617 [auto.] 0. secs (0.u,0.s) Chars 8618 - 8622 [Qed.] 0.001 secs (0.001u,0.s) Chars 8684 - 8827 [Lemma~ruttF_inv_tau_r~ot1~t2~:...] 0. secs (0.u,0.s) Chars 8828 - 8834 [Proof.] 0. secs (0.u,0.s) -Chars 8837 - 8846 [intros~H.] 0. secs (0.u,0.s) -Chars 8847 - 8873 [remember~(TauF~t2)~as~tt2.] 0. secs (0.u,0.s) -Chars 8876 - 8906 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) +Chars 8837 - 8846 [(intros~H).] 0. secs (0.u,0.s) +Chars 8847 - 8873 [(remember~(TauF~t2)~as~tt2).] 0. secs (0.u,0.s) +Chars 8876 - 8906 [(induction~H;~try~discriminate).] 0. secs (0.u,0.s) Chars 8909 - 8910 [-] 0. secs (0.u,0.s) -Chars 8911 - 8922 [inv~Heqtt2.] 0. secs (0.u,0.s) +Chars 8911 - 8922 [(inv~Heqtt2).] 0.001 secs (0.001u,0.s) Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) Chars 8936 - 8947 [rstep~in~H.] 0. secs (0.u,0.s) Chars 8948 - 8956 [exact~H.] 0. secs (0.u,0.s) @@ -143,19 +143,19 @@ Chars 8959 - 8960 [-] 0. secs (0.u,0.s) Chars 8961 - 8973 [constructor.] 0. secs (0.u,0.s) Chars 8974 - 8979 [auto.] 0. secs (0.u,0.s) Chars 8982 - 8983 [-] 0. secs (0.u,0.s) -Chars 8984 - 8995 [inv~Heqtt2.] 0. secs (0.u,0.s) +Chars 8984 - 8995 [(inv~Heqtt2).] 0. secs (0.u,0.s) Chars 8996 - 9000 [Qed.] 0.001 secs (0.001u,0.s) Chars 9002 - 9088 [Lemma~rutt_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9089 - 9095 [Proof.] 0. secs (0.u,0.s) -Chars 9098 - 9105 [intros.] 0. secs (0.u,0.s) +Chars 9098 - 9105 [(intros).] 0. secs (0.u,0.s) Chars 9106 - 9117 [rstep~in~H.] 0. secs (0.u,0.s) Chars 9118 - 9124 [rstep.] 0. secs (0.u,0.s) -Chars 9127 - 9149 [apply~ruttF_inv_tau_l.] 0. secs (0.u,0.s) +Chars 9127 - 9149 [(apply~ruttF_inv_tau_l).] 0. secs (0.u,0.s) Chars 9150 - 9158 [exact~H.] 0. secs (0.u,0.s) Chars 9159 - 9163 [Qed.] 0. secs (0.u,0.s) Chars 9165 - 9251 [Lemma~rutt_add_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9252 - 9258 [Proof.] 0. secs (0.u,0.s) -Chars 9261 - 9268 [intros.] 0. secs (0.u,0.s) +Chars 9261 - 9268 [(intros).] 0. secs (0.u,0.s) Chars 9269 - 9275 [rstep.] 0. secs (0.u,0.s) Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) Chars 9289 - 9300 [rstep~in~H.] 0. secs (0.u,0.s) @@ -163,15 +163,15 @@ Chars 9301 - 9309 [exact~H.] 0. secs (0.u,0.s) Chars 9310 - 9314 [Qed.] 0. secs (0.u,0.s) Chars 9316 - 9402 [Lemma~rutt_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9403 - 9409 [Proof.] 0. secs (0.u,0.s) -Chars 9412 - 9419 [intros.] 0. secs (0.u,0.s) +Chars 9412 - 9419 [(intros).] 0. secs (0.u,0.s) Chars 9420 - 9431 [rstep~in~H.] 0. secs (0.u,0.s) Chars 9432 - 9438 [rstep.] 0. secs (0.u,0.s) -Chars 9441 - 9463 [apply~ruttF_inv_tau_r.] 0. secs (0.u,0.s) +Chars 9441 - 9463 [(apply~ruttF_inv_tau_r).] 0. secs (0.u,0.s) Chars 9464 - 9472 [exact~H.] 0. secs (0.u,0.s) Chars 9473 - 9477 [Qed.] 0. secs (0.u,0.s) Chars 9479 - 9565 [Lemma~rutt_add_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9566 - 9572 [Proof.] 0. secs (0.u,0.s) -Chars 9575 - 9582 [intros.] 0. secs (0.u,0.s) +Chars 9575 - 9582 [(intros).] 0. secs (0.u,0.s) Chars 9583 - 9589 [rstep.] 0. secs (0.u,0.s) Chars 9590 - 9602 [constructor.] 0. secs (0.u,0.s) Chars 9603 - 9614 [rstep~in~H.] 0. secs (0.u,0.s) @@ -179,57 +179,57 @@ Chars 9615 - 9623 [exact~H.] 0. secs (0.u,0.s) Chars 9624 - 9628 [Qed.] 0. secs (0.u,0.s) Chars 9630 - 9720 [Lemma~rutt_inv_Tau~t1~t2~:~~~r...] 0. secs (0.u,0.s) Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) -Chars 9730 - 9787 [intros;~apply~rutt_inv_Tau_r,~...] 0. secs (0.u,0.s) +Chars 9730 - 9787 [(intros;~apply~rutt_inv_Tau_r,...] 0. secs (0.u,0.s) Chars 9788 - 9792 [Qed.] 0. secs (0.u,0.s) Chars 9794 - 10034 [Lemma~rutt_Vis~{T1}~{T2}~(e1~:...] 0. secs (0.u,0.s) Chars 10035 - 10041 [Proof.] 0. secs (0.u,0.s) -Chars 10044 - 10057 [intros~He~Hk.] 0. secs (0.u,0.s) +Chars 10044 - 10057 [(intros~He~Hk).] 0. secs (0.u,0.s) Chars 10058 - 10064 [rstep.] 0. secs (0.u,0.s) -Chars 10065 - 10083 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 10084 - 10088 [Qed.] 0. secs (0.u,0.s) -Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0.003 secs (0.003u,0.s) +Chars 10065 - 10083 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 10084 - 10088 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0. secs (0.u,0.s) Chars 10323 - 10329 [Proof.] 0. secs (0.u,0.s) -Chars 10332 - 10345 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 10332 - 10345 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 10346 - 10361 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 10362 - 10376 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.006 secs (0.006u,0.s) -Chars 10410 - 10463 [remember~(observe~(Vis~e1~k1))...] 0. secs (0.u,0.s) -Chars 10466 - 10515 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) +Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.011 secs (0.011u,0.s) +Chars 10410 - 10463 [(remember~(observe~(Vis~e1~k1)...] 0. secs (0.u,0.s) +Chars 10466 - 10515 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) Chars 10518 - 10519 [-] 0. secs (0.u,0.s) -Chars 10520 - 10546 [inversion~Heqot1;~subst~A.] 0.001 secs (0.001u,0.s) -Chars 10547 - 10620 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) -Chars 10625 - 10650 [exists~U2,e2,k2;~split.] 0. secs (0.u,0.s) +Chars 10520 - 10546 [(inversion~Heqot1;~subst~A).] 0.001 secs (0.001u,0.s) +Chars 10547 - 10620 [(inversion_sigma;~rewrite~<-~e...] 0.003 secs (0.003u,0.s) +Chars 10625 - 10650 [(exists~U2,e2,k2;~split).] 0. secs (0.u,0.s) Chars 10651 - 10663 [reflexivity.] 0. secs (0.u,0.s) -Chars 10664 - 10676 [split;~auto.] 0. secs (0.u,0.s) +Chars 10664 - 10676 [(split;~auto).] 0. secs (0.u,0.s) Chars 10679 - 10680 [-] 0. secs (0.u,0.s) -Chars 10681 - 10739 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) -Chars 10744 - 10772 [rewrite~<-~itree_eta~in~Ht0.] 0.014 secs (0.014u,0.s) -Chars 10777 - 10808 [exists~U2,e2,k2;~split;~auto.] 0. secs (0.u,0.s) -Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 10831 - 10835 [Qed.] 0.005 secs (0.005u,0.s) -Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0. secs (0.u,0.s) +Chars 10681 - 10739 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) +Chars 10744 - 10772 [(rewrite~<-~itree_eta~in~Ht0).] 0.02 secs (0.02u,0.s) +Chars 10777 - 10808 [(exists~U2,e2,k2;~split;~auto).] 0. secs (0.u,0.s) +Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 10831 - 10835 [Qed.] 0.007 secs (0.007u,0.s) +Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0.001 secs (0.001u,0.s) Chars 11072 - 11078 [Proof.] 0. secs (0.u,0.s) -Chars 11081 - 11094 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 11081 - 11094 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 11095 - 11110 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 11111 - 11125 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.008 secs (0.008u,0.s) -Chars 11159 - 11212 [remember~(observe~(Vis~e2~k2))...] 0. secs (0.u,0.s) -Chars 11215 - 11264 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) +Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.009 secs (0.008u,0.s) +Chars 11159 - 11212 [(remember~(observe~(Vis~e2~k2)...] 0. secs (0.u,0.s) +Chars 11215 - 11264 [(induction~Hrutt;~intros;~try~...] 0.004 secs (0.004u,0.s) Chars 11267 - 11268 [-] 0. secs (0.u,0.s) -Chars 11269 - 11295 [inversion~Heqot2;~subst~B.] 0.001 secs (0.001u,0.s) -Chars 11296 - 11369 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) -Chars 11374 - 11399 [exists~U1,e1,k1;~split.] 0. secs (0.u,0.s) +Chars 11269 - 11295 [(inversion~Heqot2;~subst~B).] 0.001 secs (0.001u,0.s) +Chars 11296 - 11369 [(inversion_sigma;~rewrite~<-~e...] 0.003 secs (0.003u,0.s) +Chars 11374 - 11399 [(exists~U1,e1,k1;~split).] 0. secs (0.u,0.s) Chars 11400 - 11412 [reflexivity.] 0. secs (0.u,0.s) -Chars 11413 - 11425 [split;~auto.] 0. secs (0.u,0.s) +Chars 11413 - 11425 [(split;~auto).] 0. secs (0.u,0.s) Chars 11428 - 11429 [-] 0. secs (0.u,0.s) -Chars 11430 - 11488 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) -Chars 11493 - 11521 [rewrite~<-~itree_eta~in~Ht0.] 0.014 secs (0.014u,0.s) -Chars 11526 - 11557 [exists~U1,e1,k1;~split;~auto.] 0. secs (0.u,0.s) -Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 11580 - 11584 [Qed.] 0.005 secs (0.005u,0.s) +Chars 11430 - 11488 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) +Chars 11493 - 11521 [(rewrite~<-~itree_eta~in~Ht0).] 0.017 secs (0.017u,0.s) +Chars 11526 - 11557 [(exists~U1,e1,k1;~split;~auto).] 0.002 secs (0.002u,0.s) +Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 11580 - 11584 [Qed.] 0.007 secs (0.006u,0.s) Chars 11586 - 11809 [Lemma~rutt_inv_Vis~U1~U2~(e1~:...] 0. secs (0.u,0.s) Chars 11810 - 11816 [Proof.] 0. secs (0.u,0.s) -Chars 11819 - 11839 [intros~H~u1~u2~Hans.] 0. secs (0.u,0.s) +Chars 11819 - 11839 [(intros~H~u1~u2~Hans).] 0. secs (0.u,0.s) Chars 11840 - 11851 [rstep~in~H.] 0. secs (0.u,0.s) Chars 11854 - 11908 [exact~(ruttF_inv_VisF~_~_~_~_~...] 0. secs (0.u,0.s) Chars 11909 - 11913 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq/RuttFacts.v.timing b/theories/Eq/RuttFacts.v.timing index b2147ef2..c434fdce 100644 --- a/theories/Eq/RuttFacts.v.timing +++ b/theories/Eq/RuttFacts.v.timing @@ -1,39 +1,39 @@ -Chars 329 - 405 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) -Chars 407 - 525 [From~ITree~Require~Import~ITre...] 0.16 secs (0.144u,0.016s) -Chars 560 - 772 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.002 secs (0.002u,0.s) +Chars 329 - 405 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.008u,0.003s) +Chars 407 - 525 [From~ITree~Require~Import~ITre...] 0.229 secs (0.205u,0.024s) +Chars 560 - 772 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.003 secs (0.002u,0.s) Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 789 [intros.] 0. secs (0.u,0.s) -Chars 790 - 811 [apply~rutt_Vis;~auto.] 0. secs (0.u,0.s) -Chars 814 - 821 [intros.] 0. secs (0.u,0.s) -Chars 822 - 843 [apply~rutt_Ret;~auto.] 0. secs (0.u,0.s) +Chars 782 - 789 [(intros).] 0. secs (0.u,0.s) +Chars 790 - 811 [(apply~rutt_Vis;~auto).] 0. secs (0.u,0.s) +Chars 814 - 821 [(intros).] 0. secs (0.u,0.s) +Chars 822 - 843 [(apply~rutt_Ret;~auto).] 0. secs (0.u,0.s) Chars 844 - 848 [Qed.] 0.001 secs (0.001u,0.s) Chars 1067 - 1199 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) Chars 1201 - 1276 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) Chars 1277 - 1283 [Proof.] 0. secs (0.u,0.s) Chars 1286 - 1298 [constructor.] 0. secs (0.u,0.s) Chars 1301 - 1302 [-] 0. secs (0.u,0.s) -Chars 1303 - 1307 [red.] 0. secs (0.u,0.s) -Chars 1308 - 1312 [red.] 0. secs (0.u,0.s) +Chars 1303 - 1307 [(red).] 0. secs (0.u,0.s) +Chars 1308 - 1312 [(red).] 0. secs (0.u,0.s) Chars 1313 - 1325 [reflexivity.] 0. secs (0.u,0.s) Chars 1328 - 1329 [-] 0. secs (0.u,0.s) -Chars 1330 - 1334 [red.] 0. secs (0.u,0.s) -Chars 1335 - 1346 [intros~*~H.] 0. secs (0.u,0.s) -Chars 1347 - 1356 [red~in~H.] 0. secs (0.u,0.s) -Chars 1357 - 1361 [red.] 0. secs (0.u,0.s) +Chars 1330 - 1334 [(red).] 0. secs (0.u,0.s) +Chars 1335 - 1346 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 1347 - 1356 [(red~in~H).] 0. secs (0.u,0.s) +Chars 1357 - 1361 [(red).] 0. secs (0.u,0.s) Chars 1362 - 1375 [now~symmetry.] 0. secs (0.u,0.s) Chars 1378 - 1379 [-] 0. secs (0.u,0.s) -Chars 1380 - 1384 [hnf.] 0. secs (0.u,0.s) -Chars 1385 - 1400 [intros~*~H1~H2.] 0. secs (0.u,0.s) -Chars 1401 - 1415 [red~in~H1,~H2.] 0. secs (0.u,0.s) -Chars 1416 - 1420 [red.] 0. secs (0.u,0.s) -Chars 1421 - 1442 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 1380 - 1384 [(hnf).] 0. secs (0.u,0.s) +Chars 1385 - 1400 [(intros~*~H1~H2).] 0. secs (0.u,0.s) +Chars 1401 - 1415 [(red~in~H1,~H2).] 0. secs (0.u,0.s) +Chars 1416 - 1420 [(red).] 0. secs (0.u,0.s) +Chars 1421 - 1442 [(etransitivity;~eauto).] 0. secs (0.u,0.s) Chars 1443 - 1447 [Qed.] 0. secs (0.u,0.s) Chars 1449 - 1569 [Definition~flip_REv~{E1~E2~:~T...] 0. secs (0.u,0.s) Chars 1571 - 1653 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) Chars 1654 - 1660 [Proof.] 0. secs (0.u,0.s) Chars 1661 - 1673 [reflexivity.] 0. secs (0.u,0.s) Chars 1674 - 1678 [Qed.] 0. secs (0.u,0.s) -Chars 1801 - 1971 [Definition~RAns_pair~E1~E2~~~(...] 0. secs (0.u,0.s) +Chars 1801 - 1971 [Definition~RAns_pair~E1~E2~~~(...] 0.001 secs (0.u,0.s) Chars 1973 - 2100 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) Chars 2101 - 2107 [Proof.] 0. secs (0.u,0.s) Chars 2108 - 2120 [reflexivity.] 0. secs (0.u,0.s) @@ -41,24 +41,24 @@ Chars 2121 - 2125 [Qed.] 0. secs (0.u,0.s) Chars 2127 - 2294 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) Chars 2296 - 2437 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) Chars 2438 - 2444 [Proof.] 0. secs (0.u,0.s) -Chars 2445 - 2454 [intros~*.] 0. secs (0.u,0.s) -Chars 2455 - 2482 [rewrite~<-~!RAns_pair_iff.] 0.024 secs (0.023u,0.001s) -Chars 2483 - 2498 [split;~apply~H.] 0. secs (0.u,0.s) +Chars 2445 - 2454 [(intros~*).] 0. secs (0.u,0.s) +Chars 2455 - 2482 [(rewrite~<-~!RAns_pair_iff).] 0.004 secs (0.003u,0.s) +Chars 2483 - 2498 [(split;~apply~H).] 0. secs (0.u,0.s) Chars 2499 - 2503 [Qed.] 0. secs (0.u,0.s) Chars 2505 - 2582 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) Chars 2583 - 2589 [Proof.] 0. secs (0.u,0.s) Chars 2592 - 2604 [constructor.] 0. secs (0.u,0.s) Chars 2607 - 2608 [-] 0. secs (0.u,0.s) -Chars 2609 - 2618 [red;~red.] 0. secs (0.u,0.s) +Chars 2609 - 2618 [(red;~red).] 0. secs (0.u,0.s) Chars 2619 - 2631 [reflexivity.] 0. secs (0.u,0.s) Chars 2634 - 2635 [-] 0. secs (0.u,0.s) -Chars 2636 - 2645 [red;~red.] 0. secs (0.u,0.s) +Chars 2636 - 2645 [(red;~red).] 0.031 secs (0.028u,0.002s) Chars 2646 - 2659 [now~symmetry.] 0. secs (0.u,0.s) Chars 2662 - 2663 [-] 0. secs (0.u,0.s) -Chars 2664 - 2673 [red;~red.] 0. secs (0.u,0.s) -Chars 2674 - 2689 [intros~*~H1~H2.] 0. secs (0.u,0.s) -Chars 2690 - 2704 [red~in~H1,~H2.] 0. secs (0.u,0.s) -Chars 2705 - 2726 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 2664 - 2673 [(red;~red).] 0. secs (0.u,0.s) +Chars 2674 - 2689 [(intros~*~H1~H2).] 0. secs (0.u,0.s) +Chars 2690 - 2704 [(red~in~H1,~H2).] 0. secs (0.u,0.s) +Chars 2705 - 2726 [(etransitivity;~eauto).] 0. secs (0.u,0.s) Chars 2727 - 2731 [Qed.] 0. secs (0.u,0.s) Chars 2733 - 2896 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) Chars 2898 - 3023 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) @@ -71,394 +71,394 @@ Chars 3183 - 3195 [reflexivity.] 0. secs (0.u,0.s) Chars 3196 - 3200 [Qed.] 0. secs (0.u,0.s) Chars 3202 - 3363 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) Chars 3364 - 3370 [Proof.] 0. secs (0.u,0.s) -Chars 3373 - 3456 [split;~revert~t1~t2;~coinducti...] 0.002 secs (0.002u,0.s) +Chars 3373 - 3456 [(split;~revert~t1~t2;~coinduct...] 0.003 secs (0.003u,0.s) Chars 3459 - 3460 [-] 0. secs (0.u,0.s) -Chars 3461 - 3498 [induction~Hrutt;~try~now~const...] 0.044 secs (0.043u,0.s) +Chars 3461 - 3498 [(induction~Hrutt;~try~now~cons...] 0.056 secs (0.056u,0.s) Chars 3503 - 3504 [*] 0. secs (0.u,0.s) -Chars 3505 - 3517 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 3505 - 3517 [(apply~EqTau).] 0. secs (0.u,0.s) Chars 3518 - 3532 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3537 - 3538 [*] 0. secs (0.u,0.s) -Chars 3539 - 3551 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 3539 - 3551 [(apply~EqVis).] 0. secs (0.u,0.s) Chars 3552 - 3557 [auto.] 0. secs (0.u,0.s) -Chars 3558 - 3574 [intros~b~a~HAns.] 0. secs (0.u,0.s) -Chars 3575 - 3587 [cbn~in~HAns.] 0. secs (0.u,0.s) +Chars 3558 - 3574 [(intros~b~a~HAns).] 0. secs (0.u,0.s) +Chars 3575 - 3587 [(cbn~in~HAns).] 0. secs (0.u,0.s) Chars 3594 - 3619 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) Chars 3620 - 3634 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3637 - 3638 [-] 0. secs (0.u,0.s) -Chars 3639 - 3676 [induction~Hrutt;~try~now~const...] 0.01 secs (0.01u,0.s) +Chars 3639 - 3676 [(induction~Hrutt;~try~now~cons...] 0.015 secs (0.015u,0.s) Chars 3681 - 3682 [*] 0. secs (0.u,0.s) -Chars 3683 - 3695 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 3683 - 3695 [(apply~EqTau).] 0. secs (0.u,0.s) Chars 3696 - 3710 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3715 - 3716 [*] 0. secs (0.u,0.s) -Chars 3717 - 3729 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 3717 - 3729 [(apply~EqVis).] 0. secs (0.u,0.s) Chars 3730 - 3735 [auto.] 0. secs (0.u,0.s) -Chars 3736 - 3752 [intros~b~a~HAns.] 0. secs (0.u,0.s) -Chars 3753 - 3765 [cbn~in~HAns.] 0. secs (0.u,0.s) +Chars 3736 - 3752 [(intros~b~a~HAns).] 0. secs (0.u,0.s) +Chars 3753 - 3765 [(cbn~in~HAns).] 0. secs (0.u,0.s) Chars 3772 - 3797 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) Chars 3798 - 3812 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3813 - 3817 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3813 - 3817 [Qed.] 0.007 secs (0.007u,0.s) Chars 3894 - 4150 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) Chars 4151 - 4157 [Proof.] 0. secs (0.u,0.s) -Chars 4160 - 4229 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) -Chars 4232 - 4412 [split;~intros~Hrutt;~revert~t1...] 0.008 secs (0.008u,0.s) -Chars 4417 - 4449 [1,~4:~apply~EqRet;~now~apply~HRR.] 0. secs (0.u,0.s) -Chars 4455 - 4487 [1,~3:~apply~EqTau;~now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4160 - 4229 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) +Chars 4232 - 4412 [(split;~intros~Hrutt;~revert~t...] 0.012 secs (0.012u,0.s) +Chars 4417 - 4449 [1,~4:~(apply~EqRet;~now~apply~...] 0. secs (0.u,0.s) +Chars 4455 - 4487 [1,~3:~(apply~EqTau;~now~apply~...] 0. secs (0.u,0.s) Chars 4492 - 4493 [*] 0. secs (0.u,0.s) -Chars 4494 - 4506 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 4494 - 4506 [(apply~EqVis).] 0. secs (0.u,0.s) Chars 4507 - 4522 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4523 - 4530 [intros.] 0. secs (0.u,0.s) -Chars 4537 - 4570 [assert~(H2~:~RAns1~A~B~e1~a~e2...] 0. secs (0.u,0.s) +Chars 4523 - 4530 [(intros).] 0. secs (0.u,0.s) +Chars 4537 - 4570 [(assert~(H2~:~RAns1~A~B~e1~a~e...] 0. secs (0.u,0.s) Chars 4577 - 4578 [{] 0. secs (0.u,0.s) -Chars 4579 - 4603 [erewrite~<-~eq_RAns_iff.] 0. secs (0.u,0.s) -Chars 4604 - 4613 [apply~H1.] 0. secs (0.u,0.s) +Chars 4579 - 4603 [(erewrite~<-~eq_RAns_iff).] 0. secs (0.u,0.s) +Chars 4604 - 4613 [(apply~H1).] 0. secs (0.u,0.s) Chars 4614 - 4625 [assumption.] 0. secs (0.u,0.s) Chars 4626 - 4627 [}] 0. secs (0.u,0.s) -Chars 4634 - 4641 [intros.] 0. secs (0.u,0.s) +Chars 4634 - 4641 [(intros).] 0. secs (0.u,0.s) Chars 4642 - 4665 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) Chars 4666 - 4680 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 4685 - 4686 [*] 0. secs (0.u,0.s) -Chars 4687 - 4699 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 4687 - 4699 [(apply~EqVis).] 0. secs (0.u,0.s) Chars 4700 - 4715 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4716 - 4723 [intros.] 0. secs (0.u,0.s) -Chars 4730 - 4763 [assert~(H2~:~RAns2~A~B~e1~a~e2...] 0. secs (0.u,0.s) +Chars 4716 - 4723 [(intros).] 0. secs (0.u,0.s) +Chars 4730 - 4763 [(assert~(H2~:~RAns2~A~B~e1~a~e...] 0. secs (0.u,0.s) Chars 4770 - 4771 [{] 0. secs (0.u,0.s) -Chars 4772 - 4793 [erewrite~eq_RAns_iff.] 0. secs (0.u,0.s) -Chars 4794 - 4803 [apply~H1.] 0. secs (0.u,0.s) +Chars 4772 - 4793 [(erewrite~eq_RAns_iff).] 0. secs (0.u,0.s) +Chars 4794 - 4803 [(apply~H1).] 0. secs (0.u,0.s) Chars 4804 - 4815 [assumption.] 0. secs (0.u,0.s) Chars 4816 - 4817 [}] 0. secs (0.u,0.s) -Chars 4824 - 4831 [intros.] 0. secs (0.u,0.s) +Chars 4824 - 4831 [(intros).] 0. secs (0.u,0.s) Chars 4832 - 4855 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) Chars 4856 - 4870 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4871 - 4875 [Qed.] 0.006 secs (0.006u,0.s) -Chars 4877 - 5066 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) +Chars 4871 - 4875 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4877 - 5066 [#[global]~Instance~eq_proper_r...] 0.001 secs (0.001u,0.s) Chars 5067 - 5073 [Proof.] 0. secs (0.u,0.s) -Chars 5076 - 5314 [split;~revert_until~c;~tower~i...] 0.013 secs (0.013u,0.s) -Chars 5317 - 5373 [1-3,~6-8:~inv~Ht1;~inv~Ht2;~si...] 0.188 secs (0.187u,0.001s) +Chars 5076 - 5314 [(split;~revert_until~c;~tower~...] 0.018 secs (0.018u,0.s) +Chars 5317 - 5373 [1-3,~6-8:~(inv~Ht1;~inv~Ht2;~s...] 0.27 secs (0.268u,0.001s) Chars 5376 - 5377 [+] 0. secs (0.u,0.s) Chars 5378 - 5386 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5387 - 5399 [constructor.] 0. secs (0.u,0.s) -Chars 5400 - 5417 [eapply~IH;~eauto.] 0. secs (0.u,0.s) +Chars 5400 - 5417 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) Chars 5420 - 5421 [+] 0. secs (0.u,0.s) -Chars 5422 - 5430 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5435 - 5542 [dependent~destruction~H3;~depe...] 0.008 secs (0.008u,0.s) -Chars 5547 - 5565 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5566 - 5573 [intros.] 0. secs (0.u,0.s) -Chars 5574 - 5584 [eapply~IH.] 0. secs (0.u,0.s) -Chars 5585 - 5595 [apply~REL.] 0. secs (0.u,0.s) -Chars 5596 - 5607 [apply~REL0.] 0. secs (0.u,0.s) +Chars 5422 - 5430 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 5435 - 5542 [(dependent~destruction~H3;~dep...] 0.012 secs (0.012u,0.s) +Chars 5547 - 5565 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 5566 - 5573 [(intros).] 0. secs (0.u,0.s) +Chars 5574 - 5584 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 5585 - 5595 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5596 - 5607 [(apply~REL0).] 0. secs (0.u,0.s) Chars 5608 - 5621 [now~apply~H0.] 0. secs (0.u,0.s) Chars 5624 - 5625 [+] 0. secs (0.u,0.s) -Chars 5626 - 5634 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 5626 - 5634 [simpobs.] 0.003 secs (0.003u,0.s) Chars 5635 - 5647 [constructor.] 0. secs (0.u,0.s) -Chars 5648 - 5665 [eapply~IH;~eauto.] 0. secs (0.u,0.s) +Chars 5648 - 5665 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) Chars 5668 - 5669 [+] 0. secs (0.u,0.s) -Chars 5670 - 5678 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 5683 - 5790 [dependent~destruction~H4;~depe...] 0.008 secs (0.008u,0.s) -Chars 5795 - 5813 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5814 - 5821 [intros.] 0. secs (0.u,0.s) -Chars 5822 - 5832 [eapply~IH.] 0. secs (0.u,0.s) -Chars 5833 - 5843 [apply~REL.] 0. secs (0.u,0.s) -Chars 5844 - 5855 [apply~REL0.] 0. secs (0.u,0.s) +Chars 5670 - 5678 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 5683 - 5790 [(dependent~destruction~H4;~dep...] 0.012 secs (0.012u,0.s) +Chars 5795 - 5813 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 5814 - 5821 [(intros).] 0. secs (0.u,0.s) +Chars 5822 - 5832 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 5833 - 5843 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5844 - 5855 [(apply~REL0).] 0. secs (0.u,0.s) Chars 5856 - 5869 [now~apply~H0.] 0. secs (0.u,0.s) Chars 5872 - 5873 [+] 0. secs (0.u,0.s) -Chars 5874 - 5882 [inv~Ht1.] 0.019 secs (0.019u,0.s) +Chars 5874 - 5882 [(inv~Ht1).] 0.028 secs (0.028u,0.s) Chars 5883 - 5895 [constructor.] 0. secs (0.u,0.s) -Chars 5896 - 5918 [eapply~IHHrutt;~eauto.] 0.002 secs (0.002u,0.s) -Chars 5919 - 5930 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 5896 - 5918 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5919 - 5930 [now~unstep.] 0.004 secs (0.004u,0.s) Chars 5933 - 5934 [+] 0. secs (0.u,0.s) -Chars 5935 - 5943 [inv~Ht2.] 0.018 secs (0.018u,0.s) +Chars 5935 - 5943 [(inv~Ht2).] 0.028 secs (0.028u,0.s) Chars 5944 - 5956 [constructor.] 0. secs (0.u,0.s) -Chars 5957 - 5979 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 5980 - 5991 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 5957 - 5979 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5980 - 5991 [now~unstep.] 0.004 secs (0.004u,0.s) Chars 5994 - 5995 [+] 0. secs (0.u,0.s) -Chars 5996 - 6004 [inv~Ht1.] 0.021 secs (0.021u,0.s) +Chars 5996 - 6004 [(inv~Ht1).] 0.028 secs (0.028u,0.s) Chars 6005 - 6017 [constructor.] 0. secs (0.u,0.s) -Chars 6018 - 6040 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 6041 - 6052 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 6018 - 6040 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 6041 - 6052 [now~unstep.] 0.004 secs (0.004u,0.s) Chars 6055 - 6056 [+] 0. secs (0.u,0.s) -Chars 6057 - 6065 [inv~Ht2.] 0.02 secs (0.02u,0.s) +Chars 6057 - 6065 [(inv~Ht2).] 0.03 secs (0.03u,0.s) Chars 6066 - 6078 [constructor.] 0. secs (0.u,0.s) -Chars 6079 - 6101 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 6079 - 6101 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) Chars 6102 - 6113 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 6114 - 6118 [Qed.] 0.045 secs (0.045u,0.s) +Chars 6114 - 6118 [Qed.] 0.07 secs (0.069u,0.s) Chars 6120 - 6283 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) Chars 6284 - 6290 [Proof.] 0. secs (0.u,0.s) -Chars 6293 - 6305 [unfold~rutt.] 0. secs (0.u,0.s) -Chars 6306 - 6335 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) -Chars 6338 - 6366 [apply~eq_proper_ruttC;~auto.] 0. secs (0.u,0.s) -Chars 6367 - 6371 [Qed.] 0. secs (0.u,0.s) -Chars 6373 - 6630 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) +Chars 6293 - 6305 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 6306 - 6335 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) +Chars 6338 - 6366 [(apply~eq_proper_ruttC;~auto).] 0.001 secs (0.001u,0.s) +Chars 6367 - 6371 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6373 - 6630 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) Chars 6631 - 6637 [Proof.] 0. secs (0.u,0.s) -Chars 6640 - 6714 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) -Chars 6717 - 6734 [rewrite~Ht1,~Ht2.] 0.004 secs (0.004u,0.s) -Chars 6735 - 6761 [apply~rutt_Proper_R;~auto.] 0. secs (0.u,0.s) +Chars 6640 - 6714 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) +Chars 6717 - 6734 [(rewrite~Ht1,~Ht2).] 0.002 secs (0.002u,0.s) +Chars 6735 - 6761 [(apply~rutt_Proper_R;~auto).] 0.001 secs (0.001u,0.s) Chars 6762 - 6766 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6768 - 6963 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 6768 - 6963 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) Chars 6964 - 6970 [Proof.] 0. secs (0.u,0.s) -Chars 6973 - 7011 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 7014 - 7030 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 7033 - 7098 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) -Chars 7101 - 7117 [rcbn;~intros~EQ.] 0. secs (0.u,0.s) -Chars 7120 - 7149 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 6973 - 7011 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 7014 - 7030 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 7033 - 7098 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 7101 - 7117 [(rcbn;~intros~EQ).] 0. secs (0.u,0.s) +Chars 7120 - 7149 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) Chars 7152 - 7191 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 7194 - 7215 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 7194 - 7215 [(induction~EQ;~intros).] 0.006 secs (0.005u,0.s) Chars 7233 - 7234 [-] 0. secs (0.u,0.s) Chars 7235 - 7261 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7266 - 7278 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 7279 - 7293 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 7266 - 7278 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 7279 - 7293 [(genret~r1~or1).] 0. secs (0.u,0.s) Chars 7294 - 7309 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7314 - 7349 [hinduction~EQx~before~ox;~try~...] 0.032 secs (0.032u,0.s) +Chars 7314 - 7349 [(hinduction~EQx~before~ox;~try...] 0.043 secs (0.043u,0.s) Chars 7354 - 7355 [+] 0. secs (0.u,0.s) -Chars 7356 - 7382 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) +Chars 7356 - 7382 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) Chars 7383 - 7397 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 7404 - 7416 [genobs~y~oy.] 0. secs (0.u,0.s) -Chars 7417 - 7431 [genret~r2~or2.] 0. secs (0.u,0.s) +Chars 7404 - 7416 [(genobs~y~oy).] 0. secs (0.u,0.s) +Chars 7417 - 7431 [(genret~r2~or2).] 0. secs (0.u,0.s) Chars 7432 - 7447 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7454 - 7489 [hinduction~EQy~before~oy;~try~...] 0.02 secs (0.02u,0.s) +Chars 7454 - 7489 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) Chars 7496 - 7497 [*] 0. secs (0.u,0.s) -Chars 7498 - 7522 [subst;~intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 7498 - 7522 [(subst;~intros~[=<-]~?~?).] 0. secs (0.u,0.s) Chars 7523 - 7535 [constructor.] 0. secs (0.u,0.s) Chars 7536 - 7541 [auto.] 0. secs (0.u,0.s) Chars 7548 - 7549 [*] 0. secs (0.u,0.s) -Chars 7550 - 7557 [intros.] 0. secs (0.u,0.s) -Chars 7558 - 7577 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 7578 - 7598 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) +Chars 7550 - 7557 [(intros).] 0. secs (0.u,0.s) +Chars 7558 - 7577 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 7578 - 7598 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) Chars 7603 - 7604 [+] 0. secs (0.u,0.s) -Chars 7605 - 7619 [intros;~subst.] 0. secs (0.u,0.s) -Chars 7620 - 7639 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 7640 - 7660 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 7605 - 7619 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 7620 - 7639 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 7640 - 7660 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) Chars 7678 - 7679 [-] 0. secs (0.u,0.s) Chars 7680 - 7706 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7711 - 7723 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 7724 - 7738 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 7711 - 7723 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 7724 - 7738 [(gentau~m1~om1).] 0.001 secs (0.001u,0.s) Chars 7739 - 7754 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7759 - 7794 [hinduction~EQx~before~ox;~try~...] 0.033 secs (0.033u,0.s) +Chars 7759 - 7794 [(hinduction~EQx~before~ox;~try...] 0.046 secs (0.046u,0.s) Chars 7799 - 7800 [+] 0. secs (0.u,0.s) -Chars 7801 - 7818 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) -Chars 7825 - 7837 [genobs~y~oy.] 0. secs (0.u,0.s) -Chars 7838 - 7852 [gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 7801 - 7818 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) +Chars 7825 - 7837 [(genobs~y~oy).] 0. secs (0.u,0.s) +Chars 7838 - 7852 [(gentau~m2~om2).] 0.001 secs (0.001u,0.s) Chars 7853 - 7868 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7875 - 7910 [hinduction~EQy~before~oy;~try~...] 0.031 secs (0.031u,0.s) +Chars 7875 - 7910 [(hinduction~EQy~before~oy;~try...] 0.045 secs (0.044u,0.s) Chars 7917 - 7918 [*] 0. secs (0.u,0.s) -Chars 7919 - 7936 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 7919 - 7936 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) Chars 7937 - 7950 [to_rmon_core.] 0. secs (0.u,0.s) -Chars 7951 - 7962 [intros~?~?.] 0. secs (0.u,0.s) +Chars 7951 - 7962 [(intros~?~?).] 0. secs (0.u,0.s) Chars 7963 - 7968 [rcbn.] 0. secs (0.u,0.s) Chars 7969 - 7981 [constructor.] 0. secs (0.u,0.s) -Chars 7982 - 7999 [eapply~IH;~eauto.] 0. secs (0.u,0.s) +Chars 7982 - 7999 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) Chars 8006 - 8007 [*] 0. secs (0.u,0.s) -Chars 8008 - 8015 [intros.] 0. secs (0.u,0.s) -Chars 8016 - 8035 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 8036 - 8056 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) +Chars 8008 - 8015 [(intros).] 0. secs (0.u,0.s) +Chars 8016 - 8035 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 8036 - 8056 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) Chars 8061 - 8062 [+] 0. secs (0.u,0.s) -Chars 8063 - 8077 [intros;~subst.] 0. secs (0.u,0.s) -Chars 8078 - 8097 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 8098 - 8118 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 8063 - 8077 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 8078 - 8097 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 8098 - 8118 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) Chars 8136 - 8137 [-] 0. secs (0.u,0.s) Chars 8138 - 8164 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 8169 - 8181 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 8182 - 8199 [genvis~e1~k1~ot1.] 0. secs (0.u,0.s) +Chars 8169 - 8181 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 8182 - 8199 [(genvis~e1~k1~ot1).] 0.001 secs (0.001u,0.s) Chars 8200 - 8215 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 8220 - 8255 [hinduction~EQx~before~ox;~try~...] 0.033 secs (0.033u,0.s) +Chars 8220 - 8255 [(hinduction~EQx~before~ox;~try...] 0.048 secs (0.048u,0.s) Chars 8260 - 8261 [+] 0. secs (0.u,0.s) -Chars 8262 - 8269 [intros.] 0. secs (0.u,0.s) -Chars 8270 - 8336 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 8262 - 8269 [(intros).] 0. secs (0.u,0.s) +Chars 8270 - 8336 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) Chars 8343 - 8357 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 8364 - 8376 [genobs~y~oy.] 0. secs (0.u,0.s) -Chars 8377 - 8394 [genvis~e2~k2~ot2.] 0. secs (0.u,0.s) +Chars 8364 - 8376 [(genobs~y~oy).] 0. secs (0.u,0.s) +Chars 8377 - 8394 [(genvis~e2~k2~ot2).] 0.001 secs (0.001u,0.s) Chars 8395 - 8410 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 8417 - 8452 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) +Chars 8417 - 8452 [(hinduction~EQy~before~oy;~try...] 0.031 secs (0.031u,0.s) Chars 8459 - 8460 [*] 0. secs (0.u,0.s) -Chars 8461 - 8468 [intros.] 0. secs (0.u,0.s) -Chars 8469 - 8535 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) -Chars 8544 - 8562 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8563 - 8570 [intros.] 0. secs (0.u,0.s) -Chars 8571 - 8581 [eapply~IH.] 0. secs (0.u,0.s) -Chars 8582 - 8596 [apply~(REL~a).] 0. secs (0.u,0.s) -Chars 8597 - 8612 [apply~(REL0~b).] 0. secs (0.u,0.s) -Chars 8613 - 8628 [apply~H0;~auto.] 0. secs (0.u,0.s) +Chars 8461 - 8468 [(intros).] 0. secs (0.u,0.s) +Chars 8469 - 8535 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 8544 - 8562 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8563 - 8570 [(intros).] 0. secs (0.u,0.s) +Chars 8571 - 8581 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 8582 - 8596 [(apply~(REL~a)).] 0. secs (0.u,0.s) +Chars 8597 - 8612 [(apply~(REL0~b)).] 0. secs (0.u,0.s) +Chars 8613 - 8628 [(apply~H0;~auto).] 0. secs (0.u,0.s) Chars 8635 - 8636 [*] 0. secs (0.u,0.s) -Chars 8637 - 8644 [intros.] 0. secs (0.u,0.s) -Chars 8645 - 8664 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 8665 - 8685 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) +Chars 8637 - 8644 [(intros).] 0. secs (0.u,0.s) +Chars 8645 - 8664 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 8665 - 8685 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) Chars 8690 - 8691 [+] 0. secs (0.u,0.s) -Chars 8692 - 8706 [intros;~subst.] 0. secs (0.u,0.s) -Chars 8707 - 8726 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 8727 - 8747 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) +Chars 8692 - 8706 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 8707 - 8726 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 8727 - 8747 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) Chars 8766 - 8767 [-] 0. secs (0.u,0.s) -Chars 8768 - 8812 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) -Chars 8817 - 8825 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 8830 - 8849 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 8854 - 8873 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 8878 - 8929 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 8934 - 8971 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 8768 - 8812 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.005u,0.s) +Chars 8817 - 8825 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 8830 - 8849 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 8854 - 8873 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8878 - 8929 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 8934 - 8971 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) Chars 8990 - 8991 [-] 0. secs (0.u,0.s) -Chars 8992 - 9036 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) -Chars 9041 - 9049 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 9054 - 9073 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 9078 - 9097 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 9102 - 9153 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 9158 - 9195 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 9196 - 9200 [Qed.] 0.021 secs (0.021u,0.s) +Chars 8992 - 9036 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.006u,0.s) +Chars 9041 - 9049 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 9054 - 9073 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 9078 - 9097 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 9102 - 9153 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 9158 - 9195 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 9196 - 9200 [Qed.] 0.026 secs (0.026u,0.s) Chars 9202 - 9371 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) Chars 9372 - 9378 [Proof.] 0. secs (0.u,0.s) -Chars 9381 - 9393 [unfold~rutt.] 0. secs (0.u,0.s) -Chars 9394 - 9423 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) -Chars 9426 - 9458 [apply~euttge_proper_ruttC;~auto.] 0. secs (0.u,0.s) -Chars 9459 - 9463 [Qed.] 0. secs (0.u,0.s) +Chars 9381 - 9393 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 9394 - 9423 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) +Chars 9426 - 9458 [(apply~euttge_proper_ruttC;~au...] 0.001 secs (0.001u,0.s) +Chars 9459 - 9463 [Qed.] 0.001 secs (0.001u,0.s) Chars 9465 - 9633 [Lemma~rutt_cong_eutt~{E1}~{E2}...] 0. secs (0.u,0.s) Chars 9634 - 9640 [Proof.] 0. secs (0.u,0.s) -Chars 9643 - 9694 [intros~*~Hrutt~Heutt;~revert~t...] 0. secs (0.u,0.s) -Chars 9697 - 9751 [coinduction~c~CIH;~icbn;~intro...] 0.001 secs (0.001u,0.s) +Chars 9643 - 9694 [(intros~*~Hrutt~Heutt;~revert~...] 0. secs (0.u,0.s) +Chars 9697 - 9751 [(coinduction~c~CIH;~icbn;~intr...] 0.001 secs (0.001u,0.s) Chars 9754 - 9768 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 9771 - 9800 [rewrite~(itree_eta~t1')~in~*.] 1.129 secs (1.123u,0.007s) -Chars 9803 - 9841 [remember~(observe~t1)~as~ot1~e...] 0. secs (0.u,0.s) -Chars 9844 - 9882 [remember~(observe~t2)~as~ot2~e...] 0. secs (0.u,0.s) -Chars 9885 - 9927 [move~Hrutt~before~CIH;~revert_...] 0. secs (0.u,0.s) -Chars 9930 - 10014 [induction~Hrutt~as~[r1~r2|~m1~...] 0. secs (0.u,0.s) +Chars 9771 - 9800 [(rewrite~(itree_eta~t1')~in~*).] 1.597 secs (1.591u,0.005s) +Chars 9803 - 9841 [(remember~(observe~t1)~as~ot1~...] 0. secs (0.u,0.s) +Chars 9844 - 9882 [(remember~(observe~t2)~as~ot2~...] 0. secs (0.u,0.s) +Chars 9885 - 9927 [(move~Hrutt~before~CIH;~revert...] 0. secs (0.u,0.s) +Chars 9930 - 10014 [(induction~Hrutt~as~[r1~r2|~m1...] 0.001 secs (0.001u,0.s) Chars 10017 - 10018 [-] 0. secs (0.u,0.s) Chars 10035 - 10050 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10051 - 10065 [cbn~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10070 - 10097 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10051 - 10065 [(cbn~in~Heutt').] 0. secs (0.u,0.s) +Chars 10070 - 10097 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) Chars 10098 - 10124 [clear~Hot1'~Hot2'~tt1~tt2.] 0. secs (0.u,0.s) -Chars 10129 - 10168 [remember~(RetF~r1)~as~oRetL~eq...] 0. secs (0.u,0.s) -Chars 10173 - 10208 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) +Chars 10129 - 10168 [(remember~(RetF~r1)~as~oRetL~e...] 0. secs (0.u,0.s) +Chars 10173 - 10208 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) Chars 10213 - 10214 [+] 0. secs (0.u,0.s) -Chars 10215 - 10226 [inv~HoRetL.] 0.002 secs (0.002u,0.s) +Chars 10215 - 10226 [(inv~HoRetL).] 0.002 secs (0.002u,0.s) Chars 10227 - 10243 [now~constructor.] 0. secs (0.u,0.s) Chars 10248 - 10249 [+] 0. secs (0.u,0.s) -Chars 10250 - 10263 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 10250 - 10263 [(apply~EqTauL).] 0. secs (0.u,0.s) Chars 10264 - 10283 [now~apply~IHHeutt'.] 0. secs (0.u,0.s) Chars 10286 - 10287 [-] 0. secs (0.u,0.s) Chars 10304 - 10319 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10320 - 10334 [cbn~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10339 - 10366 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10320 - 10334 [(cbn~in~Heutt').] 0. secs (0.u,0.s) +Chars 10339 - 10366 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) Chars 10367 - 10383 [clear~tt1~Hot1'.] 0. secs (0.u,0.s) Chars 10388 - 10404 [clear~tt2~Hot2'.] 0. secs (0.u,0.s) Chars 10409 - 10419 [step~in~H.] 0. secs (0.u,0.s) Chars 10420 - 10430 [rcbn~in~H.] 0. secs (0.u,0.s) -Chars 10435 - 10474 [remember~(TauF~m1)~as~oTauL~eq...] 0. secs (0.u,0.s) +Chars 10435 - 10474 [(remember~(TauF~m1)~as~oTauL~e...] 0. secs (0.u,0.s) Chars 10479 - 10501 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) -Chars 10506 - 10637 [induction~Heutt'~~as~[r1~r2~_|...] 0.001 secs (0.001u,0.s) +Chars 10506 - 10637 [(induction~Heutt'~~~as~[r1~r2~...] 0.001 secs (0.001u,0.s) Chars 10642 - 10643 [+] 0. secs (0.u,0.s) -Chars 10672 - 10683 [inv~HoTauL.] 0.007 secs (0.007u,0.s) -Chars 10684 - 10696 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 10697 - 10715 [apply~CIH~with~m1.] 0. secs (0.u,0.s) +Chars 10672 - 10683 [(inv~HoTauL).] 0.009 secs (0.009u,0.s) +Chars 10684 - 10696 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 10697 - 10715 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) Chars 10722 - 10723 [*] 0. secs (0.u,0.s) -Chars 10724 - 10734 [apply~REL.] 0. secs (0.u,0.s) +Chars 10724 - 10734 [(apply~REL).] 0. secs (0.u,0.s) Chars 10741 - 10742 [*] 0. secs (0.u,0.s) -Chars 10743 - 10755 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 10743 - 10755 [(unfold~rutt).] 0. secs (0.u,0.s) Chars 10756 - 10761 [step.] 0. secs (0.u,0.s) Chars 10762 - 10770 [exact~H.] 0. secs (0.u,0.s) Chars 10775 - 10776 [+] 0. secs (0.u,0.s) -Chars 10838 - 10849 [inv~HoTauL.] 0.01 secs (0.01u,0.s) -Chars 10856 - 10915 [destruct~(observe~m1)~as~[r1|~...] 0.001 secs (0.001u,0.s) +Chars 10838 - 10849 [(inv~HoTauL).] 0.015 secs (0.015u,0.s) +Chars 10856 - 10915 [(destruct~(observe~m1)~as~[r1|...] 0.001 secs (0.001u,0.s) Chars 10922 - 10923 [*] 0. secs (0.u,0.s) -Chars 10950 - 10989 [remember~(RetF~r1)~as~oRetL~eq...] 0.001 secs (0.001u,0.s) +Chars 10950 - 10989 [(remember~(RetF~r1)~as~oRetL~e...] 0.001 secs (0.001u,0.s) Chars 10998 - 11026 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) Chars 11035 - 11044 [revert~H.] 0. secs (0.u,0.s) -Chars 11053 - 11098 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) +Chars 11053 - 11098 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) Chars 11107 - 11109 [**] 0. secs (0.u,0.s) -Chars 11110 - 11121 [inv~HoRetL.] 0.004 secs (0.004u,0.s) -Chars 11133 - 11146 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 11158 - 11199 [remember~(RetF~r1)~as~oRetL2~e...] 0. secs (0.u,0.s) -Chars 11211 - 11241 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) +Chars 11110 - 11121 [(inv~HoRetL).] 0.006 secs (0.006u,0.s) +Chars 11133 - 11146 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 11158 - 11199 [(remember~(RetF~r1)~as~oRetL2~...] 0. secs (0.u,0.s) +Chars 11211 - 11241 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) Chars 11253 - 11256 [***] 0. secs (0.u,0.s) -Chars 11257 - 11269 [inv~HoRetL2.] 0.002 secs (0.002u,0.s) +Chars 11257 - 11269 [(inv~HoRetL2).] 0.002 secs (0.002u,0.s) Chars 11270 - 11282 [constructor.] 0. secs (0.u,0.s) Chars 11283 - 11293 [now~subst.] 0. secs (0.u,0.s) Chars 11305 - 11308 [***] 0. secs (0.u,0.s) -Chars 11309 - 11322 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 11309 - 11322 [(apply~EqTauR).] 0. secs (0.u,0.s) Chars 11323 - 11341 [now~apply~IHruttF.] 0. secs (0.u,0.s) Chars 11350 - 11352 [**] 0. secs (0.u,0.s) -Chars 11353 - 11366 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 11367 - 11390 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) +Chars 11353 - 11366 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 11367 - 11390 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) Chars 11397 - 11398 [*] 0. secs (0.u,0.s) -Chars 11430 - 11466 [apply~(IHIHHeutt'~m1_body~m2);...] 0. secs (0.u,0.s) -Chars 11475 - 11502 [apply~ruttF_inv_tau_l~in~H.] 0. secs (0.u,0.s) +Chars 11430 - 11466 [(apply~(IHIHHeutt'~m1_body~m2)...] 0. secs (0.u,0.s) +Chars 11475 - 11502 [(apply~ruttF_inv_tau_l~in~H).] 0. secs (0.u,0.s) Chars 11503 - 11511 [exact~H.] 0. secs (0.u,0.s) Chars 11518 - 11519 [*] 0. secs (0.u,0.s) -Chars 11549 - 11591 [remember~(VisF~e1~k1)~as~oVisL...] 0.001 secs (0.001u,0.s) +Chars 11549 - 11591 [(remember~(VisF~e1~k1)~as~oVis...] 0.002 secs (0.002u,0.s) Chars 11600 - 11628 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) Chars 11637 - 11646 [revert~H.] 0. secs (0.u,0.s) -Chars 11655 - 11700 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) +Chars 11655 - 11700 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) Chars 11709 - 11711 [**] 0. secs (0.u,0.s) -Chars 11712 - 11761 [symmetry~in~HoVisL;~dependent~...] 0.004 secs (0.004u,0.s) -Chars 11773 - 11786 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 11798 - 11841 [remember~(VisF~e~k0)~as~oVisL2...] 0. secs (0.u,0.s) -Chars 11853 - 11883 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) +Chars 11712 - 11761 [(symmetry~in~HoVisL;~dependent...] 0.004 secs (0.004u,0.s) +Chars 11773 - 11786 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 11798 - 11841 [(remember~(VisF~e~k0)~as~oVisL...] 0. secs (0.u,0.s) +Chars 11853 - 11883 [(induction~H;~try~discriminate).] 0.002 secs (0.001u,0.s) Chars 11895 - 11898 [***] 0. secs (0.u,0.s) -Chars 11899 - 11929 [dependent~destruction~HoVisL2.] 0.003 secs (0.003u,0.s) -Chars 11945 - 11963 [apply~EqVis;~auto.] 0. secs (0.u,0.s) -Chars 11964 - 11980 [intros~a~b~HAns.] 0. secs (0.u,0.s) -Chars 11996 - 12018 [apply~CIH~with~(k0~a).] 0. secs (0.u,0.s) +Chars 11899 - 11929 [dependent~destruction~HoVisL2.] 0.004 secs (0.004u,0.s) +Chars 11945 - 11963 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) +Chars 11964 - 11980 [(intros~a~b~HAns).] 0. secs (0.u,0.s) +Chars 11996 - 12018 [(apply~CIH~with~(k0~a)).] 0. secs (0.u,0.s) Chars 12034 - 12038 [****] 0. secs (0.u,0.s) -Chars 12039 - 12049 [apply~REL.] 0. secs (0.u,0.s) +Chars 12039 - 12049 [(apply~REL).] 0. secs (0.u,0.s) Chars 12065 - 12069 [****] 0. secs (0.u,0.s) -Chars 12070 - 12085 [apply~H0;~auto.] 0. secs (0.u,0.s) +Chars 12070 - 12085 [(apply~H0;~auto).] 0. secs (0.u,0.s) Chars 12097 - 12100 [***] 0. secs (0.u,0.s) -Chars 12101 - 12114 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 12115 - 12135 [apply~IHruttF;~auto.] 0. secs (0.u,0.s) +Chars 12101 - 12114 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 12115 - 12135 [(apply~IHruttF;~auto).] 0. secs (0.u,0.s) Chars 12144 - 12146 [**] 0. secs (0.u,0.s) -Chars 12147 - 12160 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 12161 - 12184 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) +Chars 12147 - 12160 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 12161 - 12184 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) Chars 12189 - 12190 [+] 0. secs (0.u,0.s) -Chars 12220 - 12232 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 12233 - 12251 [apply~CIH~with~m1.] 0. secs (0.u,0.s) +Chars 12220 - 12232 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 12233 - 12251 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) Chars 12258 - 12259 [*] 0. secs (0.u,0.s) -Chars 12260 - 12293 [rewrite~<-~tau_eutt~with~(t~:=...] 0.001 secs (0.001u,0.s) +Chars 12260 - 12293 [(rewrite~<-~tau_eutt~with~(t~:...] 0.001 secs (0.001u,0.s) Chars 12294 - 12299 [step.] 0.001 secs (0.001u,0.s) Chars 12300 - 12311 [subst~t1''.] 0. secs (0.u,0.s) Chars 12312 - 12325 [exact~Heutt'.] 0. secs (0.u,0.s) Chars 12332 - 12333 [*] 0. secs (0.u,0.s) -Chars 12334 - 12346 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 12334 - 12346 [(unfold~rutt).] 0. secs (0.u,0.s) Chars 12347 - 12352 [step.] 0. secs (0.u,0.s) Chars 12353 - 12361 [exact~H.] 0. secs (0.u,0.s) Chars 12364 - 12365 [-] 0. secs (0.u,0.s) Chars 12382 - 12397 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12398 - 12412 [cbn~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12417 - 12444 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) +Chars 12398 - 12412 [(cbn~in~Heutt').] 0. secs (0.u,0.s) +Chars 12417 - 12444 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) Chars 12445 - 12471 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 12476 - 12518 [remember~(VisF~e1~k1)~as~oVisL...] 0. secs (0.u,0.s) -Chars 12523 - 12566 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) +Chars 12476 - 12518 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) +Chars 12523 - 12566 [(induction~Heutt';~try~discrim...] 0.003 secs (0.003u,0.s) Chars 12571 - 12572 [+] 0. secs (0.u,0.s) -Chars 12573 - 12602 [dependent~destruction~HoVisL.] 0.002 secs (0.002u,0.s) -Chars 12609 - 12627 [apply~EqVis;~auto.] 0. secs (0.u,0.s) -Chars 12628 - 12644 [intros~a~b~HAns.] 0. secs (0.u,0.s) -Chars 12651 - 12673 [apply~CIH~with~(k1~a).] 0. secs (0.u,0.s) +Chars 12573 - 12602 [dependent~destruction~HoVisL.] 0.004 secs (0.004u,0.s) +Chars 12609 - 12627 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) +Chars 12628 - 12644 [(intros~a~b~HAns).] 0. secs (0.u,0.s) +Chars 12651 - 12673 [(apply~CIH~with~(k1~a)).] 0. secs (0.u,0.s) Chars 12680 - 12681 [*] 0. secs (0.u,0.s) -Chars 12682 - 12692 [apply~REL.] 0. secs (0.u,0.s) +Chars 12682 - 12692 [(apply~REL).] 0. secs (0.u,0.s) Chars 12699 - 12700 [*] 0. secs (0.u,0.s) -Chars 12701 - 12716 [apply~H0;~auto.] 0. secs (0.u,0.s) +Chars 12701 - 12716 [(apply~H0;~auto).] 0. secs (0.u,0.s) Chars 12721 - 12722 [+] 0. secs (0.u,0.s) -Chars 12723 - 12736 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 12737 - 12758 [apply~IHHeutt';~auto.] 0. secs (0.u,0.s) +Chars 12723 - 12736 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 12737 - 12758 [(apply~IHHeutt';~auto).] 0. secs (0.u,0.s) Chars 12761 - 12762 [-] 0. secs (0.u,0.s) -Chars 12780 - 12843 [eapply~IHHrutt~with~(t1~:=~m1)...] 0. secs (0.u,0.s) -Chars 12848 - 12881 [rewrite~<-~tau_eutt~with~(t~:=...] 0. secs (0.u,0.s) -Chars 12882 - 12900 [rewrite~<-~Heutt'.] 0. secs (0.u,0.s) -Chars 12905 - 12929 [rewrite~(itree_eta~tt1).] 0.001 secs (0.001u,0.s) -Chars 12930 - 12947 [rewrite~<-~Hot1'.] 0. secs (0.u,0.s) +Chars 12780 - 12843 [(eapply~IHHrutt~with~(t1~:=~m1...] 0. secs (0.u,0.s) +Chars 12848 - 12881 [(rewrite~<-~tau_eutt~with~(t~:...] 0.001 secs (0.001u,0.s) +Chars 12882 - 12900 [(rewrite~<-~Heutt').] 0. secs (0.u,0.s) +Chars 12905 - 12929 [(rewrite~(itree_eta~tt1)).] 0.001 secs (0.001u,0.s) +Chars 12930 - 12947 [(rewrite~<-~Hot1').] 0. secs (0.u,0.s) Chars 12948 - 12960 [reflexivity.] 0. secs (0.u,0.s) Chars 12963 - 12964 [-] 0. secs (0.u,0.s) -Chars 12982 - 12995 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 12996 - 13018 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 13019 - 13023 [Qed.] 0.027 secs (0.027u,0.s) -Chars 13025 - 13282 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) +Chars 12982 - 12995 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 12996 - 13018 [(eapply~IHHrutt;~eauto).] 0. secs (0.u,0.s) +Chars 13019 - 13023 [Qed.] 0.037 secs (0.037u,0.s) +Chars 13025 - 13282 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) Chars 13283 - 13289 [Proof.] 0. secs (0.u,0.s) -Chars 13292 - 13363 [intros~REv~REv2~HREv~RAns~RAns...] 0. secs (0.u,0.s) -Chars 13366 - 13437 [rewrite~<-~HREv,~<-~HRAns,~<-~...] 0.006 secs (0.006u,0.s) -Chars 13440 - 13460 [split;~intros~Hrutt.] 0. secs (0.u,0.s) +Chars 13292 - 13363 [(intros~REv~REv2~HREv~RAns~RAn...] 0. secs (0.u,0.s) +Chars 13366 - 13437 [(rewrite~<-~HREv,~<-~HRAns,~<-...] 0.011 secs (0.011u,0.s) +Chars 13440 - 13460 [(split;~intros~Hrutt).] 0. secs (0.u,0.s) Chars 13463 - 13464 [-] 0. secs (0.u,0.s) -Chars 13465 - 13494 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) -Chars 13499 - 13522 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) -Chars 13523 - 13552 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) +Chars 13465 - 13494 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 13499 - 13522 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) +Chars 13523 - 13552 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) Chars 13555 - 13556 [-] 0. secs (0.u,0.s) Chars 13557 - 13578 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) -Chars 13583 - 13612 [eapply~rutt_cong_eutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 13617 - 13640 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) -Chars 13641 - 13670 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) -Chars 13671 - 13675 [Qed.] 0.002 secs (0.002u,0.s) +Chars 13583 - 13612 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 13617 - 13640 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) +Chars 13641 - 13670 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) +Chars 13671 - 13675 [Qed.] 0.003 secs (0.003u,0.s) Chars 13714 - 13731 [Section~RuttBind.] 0. secs (0.u,0.s) Chars 13732 - 13763 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 13764 - 13787 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) @@ -466,112 +466,112 @@ Chars 13788 - 13846 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) Chars 13847 - 13916 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) Chars 13917 - 13949 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) Chars 13951 - 13964 [End~RuttBind.] 0. secs (0.u,0.s) -Chars 13966 - 14339 [Lemma~rutt_bind~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) +Chars 13966 - 14339 [Lemma~rutt_bind~{E1}~{E2}~{R1}...] 0.001 secs (0.001u,0.s) Chars 14340 - 14346 [Proof.] 0. secs (0.u,0.s) Chars 14349 - 14362 [revert~t1~t2.] 0. secs (0.u,0.s) Chars 14363 - 14381 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 14382 - 14387 [icbn.] 0. secs (0.u,0.s) -Chars 14388 - 14411 [intros~t1~t2~Hrutt~EQK.] 0. secs (0.u,0.s) +Chars 14388 - 14411 [(intros~t1~t2~Hrutt~EQK).] 0. secs (0.u,0.s) Chars 14414 - 14428 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 14431 - 14445 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 14446 - 14460 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 14463 - 14499 [hinduction~Hrutt~before~CIH;~i...] 0. secs (0.u,0.s) +Chars 14431 - 14445 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 14446 - 14460 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 14463 - 14499 [(hinduction~Hrutt~before~CIH;~...] 0.001 secs (0.001u,0.s) Chars 14502 - 14503 [-] 0. secs (0.u,0.s) -Chars 14518 - 14549 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 14518 - 14549 [(rewrite~!observe_bind;~simpobs).] 0.005 secs (0.005u,0.s) Chars 14554 - 14577 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) Chars 14583 - 14595 [step~in~EQK.] 0. secs (0.u,0.s) Chars 14596 - 14610 [now~do~2~step.] 0.002 secs (0.002u,0.s) Chars 14613 - 14614 [-] 0. secs (0.u,0.s) -Chars 14629 - 14660 [rewrite~!observe_bind;~simpobs.] 0.005 secs (0.005u,0.s) -Chars 14665 - 14677 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 14678 - 14694 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 14629 - 14660 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 14665 - 14677 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 14678 - 14694 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 14697 - 14698 [-] 0. secs (0.u,0.s) -Chars 14713 - 14744 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 14749 - 14767 [apply~EqVis;~auto.] 0.001 secs (0.001u,0.s) -Chars 14768 - 14784 [intros~a~b~HAns.] 0. secs (0.u,0.s) -Chars 14789 - 14805 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 14713 - 14744 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 14749 - 14767 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) +Chars 14768 - 14784 [(intros~a~b~HAns).] 0. secs (0.u,0.s) +Chars 14789 - 14805 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 14806 - 14819 [now~apply~H0.] 0. secs (0.u,0.s) Chars 14823 - 14824 [-] 0. secs (0.u,0.s) -Chars 14840 - 14870 [rewrite~observe_bind;~simpobs.] 0.002 secs (0.002u,0.s) -Chars 14875 - 14888 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 14889 - 14909 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) +Chars 14840 - 14870 [(rewrite~observe_bind;~simpobs).] 0.003 secs (0.003u,0.s) +Chars 14875 - 14888 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 14889 - 14909 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) Chars 14912 - 14913 [-] 0. secs (0.u,0.s) -Chars 14929 - 14971 [setoid_rewrite~observe_bind~at...] 0.018 secs (0.018u,0.s) -Chars 14976 - 14989 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 14990 - 15010 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) -Chars 15011 - 15015 [Qed.] 0.006 secs (0.006u,0.s) +Chars 14929 - 14971 [(setoid_rewrite~observe_bind~a...] 0.025 secs (0.025u,0.s) +Chars 14976 - 14989 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 14990 - 15010 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) +Chars 15011 - 15015 [Qed.] 0.008 secs (0.008u,0.s) Chars 15018 - 15035 [Section~RuttMrec.] 0. secs (0.u,0.s) Chars 15038 - 15145 [Context~(D1~D2~E1~E2~:~Type~->...] 0. secs (0.u,0.s) Chars 15148 - 15254 [Context~(RPre~:~prerel~E1~E2)~...] 0. secs (0.u,0.s) -Chars 15258 - 15516 [Context~~(Hbodies~:~forall~A~B...] 0. secs (0.u,0.s) -Chars 15520 - 15800 [Lemma~interp_mrec_rutt~(R1~R2~...] 0. secs (0.u,0.s) +Chars 15258 - 15516 [Context~~(Hbodies~:~forall~A~B...] 0.001 secs (0.001u,0.s) +Chars 15520 - 15800 [Lemma~interp_mrec_rutt~(R1~R2~...] 0.001 secs (0.001u,0.s) Chars 15803 - 15809 [Proof.] 0. secs (0.u,0.s) Chars 15814 - 15832 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 15833 - 15838 [icbn.] 0. secs (0.u,0.s) -Chars 15844 - 15862 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) +Chars 15844 - 15862 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) Chars 15863 - 15876 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 15882 - 15911 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 15912 - 15941 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) -Chars 15946 - 15989 [hinduction~Ht12~before~R1;~int...] 0.002 secs (0.002u,0.s) +Chars 15882 - 15911 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 15912 - 15941 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 15946 - 15989 [(hinduction~Ht12~before~R1;~in...] 0.003 secs (0.003u,0.s) Chars 15995 - 15996 [-] 0. secs (0.u,0.s) -Chars 15997 - 16029 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) -Chars 16030 - 16053 [rewrite~Heqot1,~Heqot2.] 0.134 secs (0.134u,0.s) -Chars 16060 - 16094 [repeat~rewrite~unfold_interp_m...] 0.14 secs (0.139u,0.s) -Chars 16095 - 16099 [cbn.] 0. secs (0.u,0.s) +Chars 15997 - 16029 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) +Chars 16030 - 16053 [(rewrite~Heqot1,~Heqot2).] 0.187 secs (0.186u,0.s) +Chars 16060 - 16094 [(repeat~rewrite~unfold_interp_...] 0.188 secs (0.187u,0.s) +Chars 16095 - 16099 [(cbn).] 0. secs (0.u,0.s) Chars 16100 - 16116 [now~constructor.] 0. secs (0.u,0.s) Chars 16123 - 16124 [-] 0. secs (0.u,0.s) -Chars 16125 - 16157 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) -Chars 16158 - 16181 [rewrite~Heqot1,~Heqot2.] 0.141 secs (0.14u,0.s) -Chars 16188 - 16222 [repeat~rewrite~unfold_interp_m...] 0.144 secs (0.143u,0.s) -Chars 16223 - 16227 [cbn.] 0. secs (0.u,0.s) -Chars 16228 - 16255 [constructor;~now~apply~CIH.] 0. secs (0.u,0.s) +Chars 16125 - 16157 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) +Chars 16158 - 16181 [(rewrite~Heqot1,~Heqot2).] 0.185 secs (0.185u,0.s) +Chars 16188 - 16222 [(repeat~rewrite~unfold_interp_...] 0.189 secs (0.188u,0.s) +Chars 16223 - 16227 [(cbn).] 0. secs (0.u,0.s) +Chars 16228 - 16255 [(constructor;~now~apply~CIH).] 0. secs (0.u,0.s) Chars 16261 - 16262 [-] 0. secs (0.u,0.s) -Chars 16263 - 16295 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) -Chars 16296 - 16319 [rewrite~Heqot1,~Heqot2.] 0.158 secs (0.154u,0.001s) -Chars 16326 - 16360 [repeat~rewrite~unfold_interp_m...] 0.16 secs (0.157u,0.s) -Chars 16361 - 16365 [cbn.] 0. secs (0.u,0.s) -Chars 16372 - 16378 [inv~H.] 0.016 secs (0.015u,0.s) +Chars 16263 - 16295 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) +Chars 16296 - 16319 [(rewrite~Heqot1,~Heqot2).] 0.19 secs (0.19u,0.s) +Chars 16326 - 16360 [(repeat~rewrite~unfold_interp_...] 0.193 secs (0.193u,0.s) +Chars 16361 - 16365 [(cbn).] 0. secs (0.u,0.s) +Chars 16372 - 16378 [(inv~H).] 0.018 secs (0.018u,0.s) Chars 16385 - 16386 [+] 0. secs (0.u,0.s) -Chars 16387 - 16413 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) +Chars 16387 - 16413 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) Chars 16414 - 16420 [subst.] 0.001 secs (0.001u,0.s) Chars 16421 - 16433 [constructor.] 0. secs (0.u,0.s) -Chars 16442 - 16453 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 16464 - 16488 [eapply~rutt_bind;~eauto.] 0.001 secs (0.001u,0.s) -Chars 16497 - 16504 [intros.] 0. secs (0.u,0.s) -Chars 16505 - 16514 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 16442 - 16453 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 16464 - 16488 [(eapply~rutt_bind;~eauto).] 0.002 secs (0.002u,0.s) +Chars 16497 - 16504 [(intros).] 0. secs (0.u,0.s) +Chars 16505 - 16514 [(cbn~in~H).] 0. secs (0.u,0.s) Chars 16515 - 16528 [clear~-~H~H0.] 0. secs (0.u,0.s) -Chars 16529 - 16538 [apply~H0.] 0. secs (0.u,0.s) +Chars 16529 - 16538 [(apply~H0).] 0. secs (0.u,0.s) Chars 16539 - 16555 [now~constructor.] 0. secs (0.u,0.s) Chars 16562 - 16563 [+] 0. secs (0.u,0.s) -Chars 16564 - 16590 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) +Chars 16564 - 16590 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) Chars 16591 - 16597 [subst.] 0.001 secs (0.001u,0.s) Chars 16598 - 16610 [constructor.] 0. secs (0.u,0.s) Chars 16619 - 16624 [auto.] 0. secs (0.u,0.s) -Chars 16625 - 16632 [intros.] 0. secs (0.u,0.s) -Chars 16633 - 16659 [repeat~rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) -Chars 16660 - 16671 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 16625 - 16632 [(intros).] 0. secs (0.u,0.s) +Chars 16633 - 16659 [(repeat~rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) +Chars 16660 - 16671 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 16681 - 16694 [clear~-~H0~H.] 0. secs (0.u,0.s) -Chars 16695 - 16704 [apply~H0.] 0. secs (0.u,0.s) +Chars 16695 - 16704 [(apply~H0).] 0. secs (0.u,0.s) Chars 16705 - 16721 [now~constructor.] 0. secs (0.u,0.s) Chars 16727 - 16728 [-] 0. secs (0.u,0.s) -Chars 16729 - 16753 [apply~simpobs~in~Heqot1.] 0. secs (0.u,0.s) -Chars 16754 - 16769 [rewrite~Heqot1.] 0.076 secs (0.075u,0.s) -Chars 16770 - 16802 [rewrite~unfold_interp_mrec~~at~1.] 0.071 secs (0.071u,0.s) -Chars 16810 - 16814 [cbn.] 0. secs (0.u,0.s) +Chars 16729 - 16753 [(apply~simpobs~in~Heqot1).] 0. secs (0.u,0.s) +Chars 16754 - 16769 [(rewrite~Heqot1).] 0.097 secs (0.097u,0.s) +Chars 16770 - 16802 [(rewrite~unfold_interp_mrec~~a...] 0.099 secs (0.098u,0.s) +Chars 16810 - 16814 [(cbn).] 0. secs (0.u,0.s) Chars 16815 - 16827 [constructor.] 0. secs (0.u,0.s) Chars 16828 - 16845 [now~apply~IHHt12.] 0. secs (0.u,0.s) Chars 16851 - 16852 [-] 0. secs (0.u,0.s) -Chars 16853 - 16877 [apply~simpobs~in~Heqot2.] 0. secs (0.u,0.s) -Chars 16878 - 16893 [rewrite~Heqot2.] 0.072 secs (0.071u,0.s) -Chars 16894 - 16933 [setoid_rewrite~unfold_interp_m...] 0.085 secs (0.084u,0.s) -Chars 16940 - 16944 [cbn.] 0. secs (0.u,0.s) +Chars 16853 - 16877 [(apply~simpobs~in~Heqot2).] 0. secs (0.u,0.s) +Chars 16878 - 16893 [(rewrite~Heqot2).] 0.101 secs (0.101u,0.s) +Chars 16894 - 16933 [setoid_rewrite~unfold_interp_m...] 0.115 secs (0.114u,0.s) +Chars 16940 - 16944 [(cbn).] 0. secs (0.u,0.s) Chars 16945 - 16957 [constructor.] 0. secs (0.u,0.s) Chars 16958 - 16975 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 16979 - 16983 [Qed.] 0.016 secs (0.016u,0.s) +Chars 16979 - 16983 [Qed.] 0.024 secs (0.024u,0.s) Chars 16987 - 17182 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) Chars 17185 - 17191 [Proof.] 0. secs (0.u,0.s) -Chars 17196 - 17203 [intros.] 0. secs (0.u,0.s) -Chars 17204 - 17227 [apply~interp_mrec_rutt.] 0. secs (0.u,0.s) +Chars 17196 - 17203 [(intros).] 0. secs (0.u,0.s) +Chars 17204 - 17227 [(apply~interp_mrec_rutt).] 0. secs (0.u,0.s) Chars 17228 - 17233 [auto.] 0. secs (0.u,0.s) Chars 17236 - 17240 [Qed.] 0. secs (0.u,0.s) -Chars 17242 - 17255 [End~RuttMrec.] 0. secs (0.u,0.s) +Chars 17242 - 17255 [End~RuttMrec.] 0.001 secs (0.001u,0.s) diff --git a/theories/Eq/Shallow.v.timing b/theories/Eq/Shallow.v.timing index 19dda312..ea1ad5c4 100644 --- a/theories/Eq/Shallow.v.timing +++ b/theories/Eq/Shallow.v.timing @@ -1,16 +1,16 @@ -Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.024 secs (0.019u,0.004s) +Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.036 secs (0.03u,0.006s) Chars 349 - 372 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 389 - 523 [Definition~eqeq~{A~:~Type}~(P~...] 0. secs (0.u,0.s) Chars 525 - 720 [Definition~pweqeq~{R1}~{R2}~(R...] 0. secs (0.u,0.s) Chars 722 - 889 [Lemma~pweqeq_mon~{R1}~{R2}~(RR...] 0. secs (0.u,0.s) Chars 890 - 896 [Proof.] 0. secs (0.u,0.s) -Chars 899 - 921 [destruct~p;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 899 - 921 [(destruct~p;~cbn;~auto).] 0. secs (0.u,0.s) Chars 922 - 926 [Qed.] 0. secs (0.u,0.s) Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0. secs (0.u,0.s) Chars 1164 - 1170 [Proof.] 0. secs (0.u,0.s) -Chars 1173 - 1331 [refine~~~(fun~H~=>~~~~match~~~...] 0.002 secs (0.002u,0.s) -Chars 1334 - 1360 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 1173 - 1331 [(refine~~~(fun~H~=>~~~~match~~...] 0. secs (0.u,0.s) +Chars 1334 - 1360 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) Chars 1361 - 1365 [Qed.] 0. secs (0.u,0.s) Chars 1367 - 1526 [Ltac~~inv_Vis~:=~~~discriminat...] 0. secs (0.u,0.s) Chars 1585 - 1798 [Record~observing~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) @@ -20,23 +20,23 @@ Chars 1877 - 1915 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 1916 - 1966 [Variable~(eq_~:~itree'~E~R~->~...] 0. secs (0.u,0.s) Chars 1968 - 2056 [#[global]~Instance~observing_o...] 0. secs (0.u,0.s) Chars 2057 - 2063 [Proof.] 0. secs (0.u,0.s) -Chars 2064 - 2089 [intros~?~?~[];~compute;~auto.] 0. secs (0.u,0.s) +Chars 2064 - 2089 [(intros~?~?~[];~compute;~auto).] 0. secs (0.u,0.s) Chars 2090 - 2094 [Qed.] 0. secs (0.u,0.s) Chars 2096 - 2171 [#[global]~Instance~observing_g...] 0. secs (0.u,0.s) Chars 2172 - 2178 [Proof.] 0. secs (0.u,0.s) -Chars 2179 - 2200 [compute;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 2179 - 2200 [(compute;~auto~with~itree).] 0. secs (0.u,0.s) Chars 2201 - 2205 [Qed.] 0. secs (0.u,0.s) Chars 2207 - 2326 [#[global]~Instance~monotonic_o...] 0. secs (0.u,0.s) Chars 2327 - 2333 [Proof.] 0. secs (0.u,0.s) -Chars 2334 - 2373 [intros~?~?~?~[];~compute;~eaut...] 0. secs (0.u,0.s) +Chars 2334 - 2373 [(intros~?~?~?~[];~compute;~eau...] 0. secs (0.u,0.s) Chars 2374 - 2378 [Qed.] 0. secs (0.u,0.s) Chars 2380 - 2472 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2473 - 2502 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) -Chars 2505 - 2529 [intros~[];~split;~compute~...] 0.012 secs (0.011u,0.s) +Chars 2505 - 2529 [(intros~[];~split;~compute)~...] 0.003 secs (0.002u,0.s) Chars 2532 - 2533 [-] 0. secs (0.u,0.s) -Chars 2534 - 2556 [intros~?~?~[];~auto~...] 0. secs (0.u,0.s) +Chars 2534 - 2556 [(intros~?~?~[];~auto)~...] 0.001 secs (0.u,0.s) Chars 2559 - 2560 [-] 0. secs (0.u,0.s) -Chars 2561 - 2598 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) +Chars 2561 - 2598 [(intros~?~?~?~[]~[];~eauto~wit...] 0.016 secs (0.015u,0.001s) Chars 2599 - 2603 [Qed.] 0. secs (0.u,0.s) Chars 2605 - 2629 [End~observing_relations.] 0. secs (0.u,0.s) Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0. secs (0.u,0.s) @@ -45,58 +45,58 @@ Chars 2966 - 2978 [reflexivity.] 0. secs (0.u,0.s) Chars 2979 - 2983 [Qed.] 0. secs (0.u,0.s) Chars 2985 - 3097 [#[global]~Instance~observing_b...] 0. secs (0.u,0.s) Chars 3098 - 3104 [Proof.] 0. secs (0.u,0.s) -Chars 3107 - 3127 [repeat~intro;~subst.] 0. secs (0.u,0.s) +Chars 3107 - 3127 [(repeat~intro;~subst).] 0. secs (0.u,0.s) Chars 3128 - 3140 [constructor.] 0. secs (0.u,0.s) -Chars 3141 - 3156 [unfold~observe.] 0. secs (0.u,0.s) -Chars 3157 - 3161 [cbn.] 0. secs (0.u,0.s) -Chars 3164 - 3194 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) +Chars 3141 - 3156 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 3157 - 3161 [(cbn).] 0. secs (0.u,0.s) +Chars 3164 - 3194 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) Chars 3195 - 3207 [reflexivity.] 0. secs (0.u,0.s) Chars 3208 - 3212 [Qed.] 0. secs (0.u,0.s) Chars 3214 - 3313 [Lemma~bind_ret_~{E}~{R}~{S}~(r...] 0. secs (0.u,0.s) Chars 3314 - 3320 [Proof.] 0. secs (0.u,0.s) -Chars 3321 - 3346 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3321 - 3346 [(constructor;~reflexivity).] 0. secs (0.u,0.s) Chars 3347 - 3351 [Qed.] 0. secs (0.u,0.s) Chars 3353 - 3462 [Lemma~bind_tau_~{E}~{R}~U~t~(k...] 0. secs (0.u,0.s) Chars 3463 - 3469 [Proof.] 0. secs (0.u,0.s) -Chars 3470 - 3495 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3470 - 3495 [(constructor;~reflexivity).] 0. secs (0.u,0.s) Chars 3496 - 3500 [Qed.] 0. secs (0.u,0.s) Chars 3502 - 3668 [Lemma~bind_vis_~{E}~{R}~{U}~{V...] 0. secs (0.u,0.s) Chars 3669 - 3675 [Proof.] 0. secs (0.u,0.s) -Chars 3676 - 3701 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3676 - 3701 [(constructor;~reflexivity).] 0. secs (0.u,0.s) Chars 3702 - 3706 [Qed.] 0. secs (0.u,0.s) Chars 3802 - 3980 [Lemma~unfold_aloop_~{E}~{A}~{B...] 0. secs (0.u,0.s) Chars 3981 - 3987 [Proof.] 0. secs (0.u,0.s) -Chars 3988 - 4013 [constructor;~reflexivity.] 0. secs (0.u,0.s) +Chars 3988 - 4013 [(constructor;~reflexivity).] 0. secs (0.u,0.s) Chars 4014 - 4018 [Qed.] 0. secs (0.u,0.s) Chars 4058 - 4192 [Lemma~unfold_forever_~{E}~{R}~...] 0. secs (0.u,0.s) Chars 4193 - 4199 [Proof.] 0. secs (0.u,0.s) Chars 4200 - 4213 [econstructor.] 0. secs (0.u,0.s) Chars 4214 - 4226 [reflexivity.] 0. secs (0.u,0.s) Chars 4227 - 4231 [Qed.] 0. secs (0.u,0.s) -Chars 4282 - 4463 [Inductive~going~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 4282 - 4463 [Inductive~going~{E}~{R1}~{R2}~...] 0.001 secs (0.001u,0.s) Chars 4464 - 4506 [#[global]~Hint~Constructors~go...] 0. secs (0.u,0.s) Chars 4508 - 4641 [Lemma~observing_going~{E}~{R1}...] 0. secs (0.u,0.s) Chars 4642 - 4648 [Proof.] 0. secs (0.u,0.s) -Chars 4651 - 4674 [split;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 4677 - 4695 [intros~[[]];~auto.] 0. secs (0.u,0.s) +Chars 4651 - 4674 [(split;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 4677 - 4695 [(intros~[[]];~auto).] 0. secs (0.u,0.s) Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) Chars 4702 - 4726 [Section~going_relations.] 0. secs (0.u,0.s) Chars 4728 - 4766 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 4767 - 4815 [Variable~(eq_~:~itree~E~R~->~i...] 0. secs (0.u,0.s) Chars 4817 - 4884 [#[global]~Instance~going_go~:~...] 0. secs (0.u,0.s) Chars 4885 - 4891 [Proof.] 0. secs (0.u,0.s) -Chars 4892 - 4912 [intros~?~?~[];~auto.] 0. secs (0.u,0.s) +Chars 4892 - 4912 [(intros~?~?~[];~auto).] 0. secs (0.u,0.s) Chars 4913 - 4917 [Qed.] 0. secs (0.u,0.s) Chars 4919 - 5026 [#[global]~Instance~monotonic_g...] 0. secs (0.u,0.s) Chars 5027 - 5033 [Proof.] 0. secs (0.u,0.s) -Chars 5034 - 5068 [intros~?~?~?~[];~eauto~with~it...] 0. secs (0.u,0.s) +Chars 5034 - 5068 [(intros~?~?~?~[];~eauto~with~i...] 0. secs (0.u,0.s) Chars 5069 - 5073 [Qed.] 0. secs (0.u,0.s) Chars 5075 - 5159 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5215 [intros~[];~constructor;~comput...] 0.049 secs (0.048u,0.s) +Chars 5169 - 5215 [(intros~[];~constructor;~compu...] 0.063 secs (0.062u,0.s) Chars 5218 - 5219 [-] 0. secs (0.u,0.s) -Chars 5220 - 5251 [intros~?~?~[];~auto~with~itree.] 0. secs (0.u,0.s) +Chars 5220 - 5251 [(intros~?~?~[];~auto~with~itree).] 0. secs (0.u,0.s) Chars 5254 - 5255 [-] 0. secs (0.u,0.s) -Chars 5256 - 5293 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) +Chars 5256 - 5293 [(intros~?~?~?~[]~[];~eauto~wit...] 0.001 secs (0.u,0.s) Chars 5294 - 5298 [Qed.] 0. secs (0.u,0.s) Chars 5300 - 5320 [End~going_relations.] 0. secs (0.u,0.s) diff --git a/theories/Eq/SimUpToTaus.v.timing b/theories/Eq/SimUpToTaus.v.timing index 3b9cfb50..faa95824 100644 --- a/theories/Eq/SimUpToTaus.v.timing +++ b/theories/Eq/SimUpToTaus.v.timing @@ -1,30 +1,30 @@ -Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 573 - 635 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.136 secs (0.121u,0.014s) +Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.194 secs (0.175u,0.019s) Chars 750 - 763 [Section~SUTT.] 0. secs (0.u,0.s) Chars 765 - 831 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.002 secs (0.001u,0.s) +Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.003 secs (0.002u,0.s) Chars 1324 - 1356 [Hint~Constructors~suttF:~itree.] 0. secs (0.u,0.s) Chars 1358 - 1404 [Lemma~suttF_mono~:~Proper~(leq...] 0. secs (0.u,0.s) Chars 1405 - 1411 [Proof.] 0. secs (0.u,0.s) -Chars 1414 - 1427 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1430 - 1461 [induction~H0;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 1464 - 1499 [constructor;~intro;~apply~H,~S...] 0. secs (0.u,0.s) -Chars 1502 - 1531 [constructor;~apply~H,~EQTAUS.] 0. secs (0.u,0.s) +Chars 1414 - 1427 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1430 - 1461 [(induction~H0;~eauto~with~itree).] 0.001 secs (0.u,0.s) +Chars 1464 - 1499 [(constructor;~intro;~apply~H,~...] 0. secs (0.u,0.s) +Chars 1502 - 1531 [(constructor;~apply~H,~EQTAUS).] 0. secs (0.u,0.s) Chars 1532 - 1536 [Qed.] 0. secs (0.u,0.s) Chars 1538 - 1603 [Definition~sutt_mon~:=~{|~body...] 0. secs (0.u,0.s) Chars 1605 - 1701 [Definition~sutt~(t1~:~itree~E~...] 0. secs (0.u,0.s) Chars 1702 - 1727 [Hint~Unfold~sutt:~itree.] 0. secs (0.u,0.s) -Chars 1729 - 1738 [End~SUTT.] 0. secs (0.u,0.s) +Chars 1729 - 1738 [End~SUTT.] 0.001 secs (0.u,0.s) Chars 1740 - 1779 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) Chars 1780 - 1812 [#[global]~Hint~Unfold~sutt:~it...] 0. secs (0.u,0.s) Chars 2768 - 2785 [Section~SUTT_rel.] 0. secs (0.u,0.s) Chars 2787 - 2847 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 2849 - 2949 [Lemma~reflexive_suttF~`{Reflex...] 0. secs (0.u,0.s) Chars 2950 - 2956 [Proof.] 0. secs (0.u,0.s) -Chars 2959 - 2976 [unfold~Reflexive.] 0. secs (0.u,0.s) -Chars 2977 - 2986 [intros~x.] 0. secs (0.u,0.s) -Chars 2989 - 3018 [destruct~x;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 2959 - 2976 [(unfold~Reflexive).] 0. secs (0.u,0.s) +Chars 2977 - 2986 [(intros~x).] 0. secs (0.u,0.s) +Chars 2989 - 3018 [(destruct~x;~eauto~with~itree).] 0.002 secs (0.001u,0.s) Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) Chars 3025 - 3038 [End~SUTT_rel.] 0. secs (0.u,0.s) Chars 3040 - 3059 [Section~SUTT_facts.] 0. secs (0.u,0.s) @@ -32,140 +32,140 @@ Chars 3061 - 3127 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) Chars 3129 - 3144 [End~SUTT_facts.] 0. secs (0.u,0.s) Chars 3146 - 3365 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) Chars 3366 - 3372 [Proof.] 0. secs (0.u,0.s) -Chars 3375 - 3382 [intros.] 0. secs (0.u,0.s) -Chars 3383 - 3389 [inv~H.] 0.003 secs (0.003u,0.s) -Chars 3390 - 3409 [ddestruction;~auto.] 0.002 secs (0.001u,0.s) -Chars 3410 - 3414 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3375 - 3382 [(intros).] 0. secs (0.u,0.s) +Chars 3383 - 3389 [(inv~H).] 0.005 secs (0.004u,0.001s) +Chars 3390 - 3409 [(ddestruction;~auto).] 0.003 secs (0.002u,0.s) +Chars 3410 - 3414 [Qed.] 0.004 secs (0.003u,0.s) Chars 3416 - 3600 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) Chars 3601 - 3607 [Proof.] 0. secs (0.u,0.s) -Chars 3610 - 3617 [intros.] 0. secs (0.u,0.s) +Chars 3610 - 3617 [(intros).] 0. secs (0.u,0.s) Chars 3618 - 3628 [step~in~H.] 0. secs (0.u,0.s) -Chars 3629 - 3640 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 3629 - 3640 [(simpl~in~H).] 0. secs (0.u,0.s) Chars 3643 - 3683 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) -Chars 3684 - 3688 [Qed.] 0. secs (0.u,0.s) +Chars 3684 - 3688 [Qed.] 0.001 secs (0.u,0.s) Chars 3690 - 3838 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 3839 - 3845 [Proof.] 0. secs (0.u,0.s) -Chars 3848 - 3855 [intros.] 0. secs (0.u,0.s) +Chars 3848 - 3855 [(intros).] 0. secs (0.u,0.s) Chars 3856 - 3861 [step.] 0. secs (0.u,0.s) -Chars 3862 - 3872 [step~in~H.] 0.019 secs (0.018u,0.001s) +Chars 3862 - 3872 [step~in~H.] 0. secs (0.u,0.s) Chars 3875 - 3887 [constructor.] 0. secs (0.u,0.s) Chars 3888 - 3893 [auto.] 0. secs (0.u,0.s) -Chars 3894 - 3898 [Qed.] 0. secs (0.u,0.s) +Chars 3894 - 3898 [Qed.] 0.001 secs (0.001u,0.s) Chars 3900 - 4047 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) Chars 4048 - 4054 [Proof.] 0. secs (0.u,0.s) -Chars 4057 - 4064 [intros.] 0. secs (0.u,0.s) -Chars 4065 - 4070 [step.] 0. secs (0.u,0.s) +Chars 4057 - 4064 [(intros).] 0. secs (0.u,0.s) +Chars 4065 - 4070 [step.] 0.028 secs (0.026u,0.002s) Chars 4073 - 4085 [constructor.] 0. secs (0.u,0.s) Chars 4086 - 4094 [exact~H.] 0. secs (0.u,0.s) Chars 4095 - 4099 [Qed.] 0. secs (0.u,0.s) Chars 4101 - 4252 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) Chars 4253 - 4259 [Proof.] 0. secs (0.u,0.s) -Chars 4262 - 4280 [unfold~sutt~at~-~1.] 0. secs (0.u,0.s) -Chars 4281 - 4300 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 4301 - 4316 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 4262 - 4280 [(unfold~sutt~at~-~1).] 0. secs (0.u,0.s) +Chars 4281 - 4300 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4301 - 4316 [(intros~t1~t2~H).] 0. secs (0.u,0.s) Chars 4317 - 4327 [step~in~H.] 0. secs (0.u,0.s) -Chars 4330 - 4336 [inv~H.] 0.008 secs (0.008u,0.s) +Chars 4330 - 4336 [(inv~H).] 0.013 secs (0.013u,0.s) Chars 4339 - 4340 [-] 0. secs (0.u,0.s) -Chars 4341 - 4376 [eapply~suttF_mono;~[~~|~exact~...] 0. secs (0.u,0.s) -Chars 4381 - 4393 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 4341 - 4376 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) +Chars 4381 - 4393 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 4394 - 4418 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) Chars 4421 - 4422 [-] 0. secs (0.u,0.s) Chars 4423 - 4435 [constructor.] 0. secs (0.u,0.s) -Chars 4436 - 4446 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4436 - 4446 [(apply~CIH).] 0. secs (0.u,0.s) Chars 4447 - 4460 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 4461 - 4465 [Qed.] 0.03 secs (0.03u,0.s) +Chars 4461 - 4465 [Qed.] 0.004 secs (0.004u,0.s) Chars 4467 - 4677 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) Chars 4678 - 4684 [Proof.] 0. secs (0.u,0.s) -Chars 4687 - 4694 [intros.] 0. secs (0.u,0.s) -Chars 4697 - 4724 [remember~(TauF~t1)~as~ott1.] 0. secs (0.u,0.s) -Chars 4727 - 4807 [induction~H;~intros;~subst;~tr...] 0.005 secs (0.005u,0.s) +Chars 4687 - 4694 [(intros).] 0. secs (0.u,0.s) +Chars 4697 - 4724 [(remember~(TauF~t1)~as~ott1).] 0.034 secs (0.034u,0.s) +Chars 4727 - 4807 [(induction~H;~intros;~subst;~t...] 0.008 secs (0.008u,0.s) Chars 4810 - 4825 [step~in~EQTAUS.] 0. secs (0.u,0.s) Chars 4826 - 4839 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 4840 - 4844 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4840 - 4844 [Qed.] 0.003 secs (0.003u,0.s) Chars 4846 - 4995 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) Chars 4996 - 5002 [Proof.] 0. secs (0.u,0.s) -Chars 5005 - 5012 [intros.] 0. secs (0.u,0.s) +Chars 5005 - 5012 [(intros).] 0. secs (0.u,0.s) Chars 5013 - 5023 [step~in~H.] 0. secs (0.u,0.s) Chars 5024 - 5029 [step.] 0. secs (0.u,0.s) -Chars 5032 - 5063 [apply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) -Chars 5064 - 5068 [Qed.] 0. secs (0.u,0.s) +Chars 5032 - 5063 [(apply~suttF_inv_tau_left;~auto).] 0. secs (0.u,0.s) +Chars 5064 - 5068 [Qed.] 0.001 secs (0.001u,0.s) Chars 5070 - 5229 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) Chars 5230 - 5236 [Proof.] 0. secs (0.u,0.s) -Chars 5239 - 5258 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 5259 - 5278 [intros~t1~t2~H1~H2.] 0. secs (0.u,0.s) +Chars 5239 - 5258 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 5259 - 5278 [(intros~t1~t2~H1~H2).] 0. secs (0.u,0.s) Chars 5281 - 5292 [step~in~H1.] 0. secs (0.u,0.s) Chars 5293 - 5304 [step~in~H2.] 0. secs (0.u,0.s) -Chars 5307 - 5352 [induction~H1;~intros;~subst;~a...] 0.005 secs (0.005u,0.s) +Chars 5307 - 5352 [(induction~H1;~intros;~subst;~...] 0.005 secs (0.005u,0.s) Chars 5355 - 5356 [-] 0. secs (0.u,0.s) Chars 5377 - 5389 [constructor.] 0. secs (0.u,0.s) Chars 5390 - 5398 [intro~x.] 0. secs (0.u,0.s) -Chars 5399 - 5409 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5399 - 5409 [(apply~CIH).] 0. secs (0.u,0.s) Chars 5414 - 5415 [+] 0. secs (0.u,0.s) -Chars 5416 - 5428 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 5416 - 5428 [(unfold~sutt).] 0. secs (0.u,0.s) Chars 5429 - 5445 [exact~(SUTTK~x).] 0. secs (0.u,0.s) Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5464 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 5452 - 5464 [(unfold~sutt).] 0. secs (0.u,0.s) Chars 5465 - 5504 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) Chars 5507 - 5508 [-] 0. secs (0.u,0.s) -Chars 5535 - 5554 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 5555 - 5576 [eapply~IHsuttF;~auto.] 0. secs (0.u,0.s) -Chars 5577 - 5609 [eapply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) +Chars 5535 - 5554 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5555 - 5576 [(eapply~IHsuttF;~auto).] 0. secs (0.u,0.s) +Chars 5577 - 5609 [(eapply~suttF_inv_tau_left;~au...] 0. secs (0.u,0.s) Chars 5612 - 5613 [-] 0. secs (0.u,0.s) -Chars 5639 - 5646 [inv~H2.] 0.017 secs (0.016u,0.s) +Chars 5639 - 5646 [(inv~H2).] 0.023 secs (0.023u,0.s) Chars 5651 - 5652 [+] 0. secs (0.u,0.s) Chars 5653 - 5665 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 5666 - 5680 [genobs~t0~ot0.] 0. secs (0.u,0.s) -Chars 5687 - 5732 [hinduction~EQTAUS0~before~CIH;...] 0.001 secs (0.001u,0.s) +Chars 5666 - 5680 [(genobs~t0~ot0).] 0. secs (0.u,0.s) +Chars 5687 - 5732 [(hinduction~EQTAUS0~before~CIH...] 0.002 secs (0.002u,0.s) Chars 5739 - 5740 [*] 0. secs (0.u,0.s) -Chars 5741 - 5760 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 5761 - 5769 [simpobs.] 0. secs (0.u,0.s) +Chars 5741 - 5760 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 5761 - 5769 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5770 - 5782 [constructor.] 0. secs (0.u,0.s) Chars 5783 - 5789 [eauto.] 0. secs (0.u,0.s) Chars 5796 - 5797 [*] 0. secs (0.u,0.s) -Chars 5798 - 5817 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 5818 - 5826 [simpobs.] 0. secs (0.u,0.s) +Chars 5798 - 5817 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 5818 - 5826 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5827 - 5839 [constructor.] 0. secs (0.u,0.s) Chars 5840 - 5848 [intro~x.] 0. secs (0.u,0.s) -Chars 5857 - 5867 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5857 - 5867 [(apply~CIH).] 0. secs (0.u,0.s) Chars 5876 - 5878 [--] 0. secs (0.u,0.s) Chars 5879 - 5919 [exact~(sutt_inv_vis~_~_~_~_~_~...] 0. secs (0.u,0.s) Chars 5928 - 5930 [--] 0. secs (0.u,0.s) -Chars 5931 - 5943 [unfold~sutt.] 0. secs (0.u,0.s) -Chars 5944 - 5956 [apply~SUTTK.] 0. secs (0.u,0.s) +Chars 5931 - 5943 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 5944 - 5956 [(apply~SUTTK).] 0. secs (0.u,0.s) Chars 5963 - 5964 [*] 0. secs (0.u,0.s) -Chars 5965 - 5984 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 5965 - 5984 [(constructor;~eauto).] 0. secs (0.u,0.s) Chars 5985 - 5993 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5994 - 6018 [eapply~IHEQTAUS0;~eauto.] 0. secs (0.u,0.s) -Chars 6027 - 6052 [rewrite~(itree_eta'~ot1).] 0. secs (0.u,0.s) -Chars 6053 - 6077 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) -Chars 6078 - 6090 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 5994 - 6018 [(eapply~IHEQTAUS0;~eauto).] 0. secs (0.u,0.s) +Chars 6027 - 6052 [(rewrite~(itree_eta'~ot1)).] 0. secs (0.u,0.s) +Chars 6053 - 6077 [(apply~sutt_inv_tau_left).] 0. secs (0.u,0.s) +Chars 6078 - 6090 [(unfold~sutt).] 0. secs (0.u,0.s) Chars 6091 - 6104 [exact~EQTAUS.] 0. secs (0.u,0.s) Chars 6111 - 6112 [*] 0. secs (0.u,0.s) Chars 6113 - 6125 [constructor.] 0. secs (0.u,0.s) -Chars 6126 - 6142 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 6143 - 6175 [apply~sutt_elim_tau_right;~auto.] 0. secs (0.u,0.s) +Chars 6126 - 6142 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 6143 - 6175 [(apply~sutt_elim_tau_right;~au...] 0. secs (0.u,0.s) Chars 6180 - 6181 [+] 0. secs (0.u,0.s) Chars 6182 - 6194 [constructor.] 0. secs (0.u,0.s) -Chars 6195 - 6238 [apply~CIH;~apply~sutt_elim_tau...] 0. secs (0.u,0.s) -Chars 6239 - 6243 [Qed.] 0.01 secs (0.01u,0.s) +Chars 6195 - 6238 [(apply~CIH;~apply~sutt_elim_ta...] 0. secs (0.u,0.s) +Chars 6239 - 6243 [Qed.] 0.014 secs (0.014u,0.s) Chars 6245 - 6380 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) Chars 6381 - 6387 [Proof.] 0. secs (0.u,0.s) -Chars 6390 - 6408 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6409 - 6424 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 6390 - 6408 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6409 - 6424 [(intros~t1~t2~H).] 0. secs (0.u,0.s) Chars 6427 - 6437 [step~in~H.] 0. secs (0.u,0.s) -Chars 6440 - 6452 [induction~H.] 0. secs (0.u,0.s) +Chars 6440 - 6452 [(induction~H).] 0. secs (0.u,0.s) Chars 6455 - 6456 [-] 0. secs (0.u,0.s) -Chars 6457 - 6475 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 6457 - 6475 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 6478 - 6479 [-] 0. secs (0.u,0.s) Chars 6480 - 6492 [constructor.] 0. secs (0.u,0.s) Chars 6493 - 6505 [constructor.] 0. secs (0.u,0.s) -Chars 6506 - 6516 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6506 - 6516 [(apply~CIH).] 0. secs (0.u,0.s) Chars 6517 - 6527 [exact~REL.] 0. secs (0.u,0.s) Chars 6530 - 6531 [-] 0. secs (0.u,0.s) Chars 6532 - 6544 [constructor.] 0. secs (0.u,0.s) Chars 6545 - 6551 [intro.] 0. secs (0.u,0.s) -Chars 6552 - 6562 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6563 - 6573 [apply~REL.] 0. secs (0.u,0.s) +Chars 6552 - 6562 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6563 - 6573 [(apply~REL).] 0. secs (0.u,0.s) Chars 6576 - 6577 [-] 0. secs (0.u,0.s) Chars 6578 - 6590 [constructor.] 0. secs (0.u,0.s) Chars 6591 - 6596 [step.] 0. secs (0.u,0.s) @@ -177,68 +177,68 @@ Chars 6644 - 6648 [Qed.] 0.002 secs (0.002u,0.s) Chars 6706 - 6967 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 6968 - 6974 [Proof.] 0. secs (0.u,0.s) Chars 6977 - 6995 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6996 - 7020 [intros~t1~t2~H~s1~s2~Hs.] 0. secs (0.u,0.s) +Chars 6996 - 7020 [(intros~t1~t2~H~s1~s2~Hs).] 0. secs (0.u,0.s) Chars 7023 - 7033 [step~in~H.] 0. secs (0.u,0.s) -Chars 7034 - 7054 [unfold~observe;~cbn.] 0. secs (0.u,0.s) -Chars 7057 - 7077 [induction~H;~intros.] 0. secs (0.u,0.s) +Chars 7034 - 7054 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) +Chars 7057 - 7077 [(induction~H;~intros).] 0.001 secs (0.001u,0.s) Chars 7080 - 7081 [-] 0. secs (0.u,0.s) -Chars 7082 - 7088 [simpl.] 0. secs (0.u,0.s) -Chars 7089 - 7103 [apply~Hs~in~H.] 0. secs (0.u,0.s) +Chars 7082 - 7088 [(simpl).] 0. secs (0.u,0.s) +Chars 7089 - 7103 [(apply~Hs~in~H).] 0. secs (0.u,0.s) Chars 7104 - 7114 [step~in~H.] 0. secs (0.u,0.s) -Chars 7119 - 7149 [eapply~suttF_mono;~[~~|~exact~...] 0.001 secs (0.001u,0.s) -Chars 7154 - 7166 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 7119 - 7149 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) +Chars 7154 - 7166 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 7167 - 7191 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) Chars 7194 - 7195 [-] 0. secs (0.u,0.s) -Chars 7196 - 7202 [simpl.] 0. secs (0.u,0.s) +Chars 7196 - 7202 [(simpl).] 0. secs (0.u,0.s) Chars 7203 - 7216 [econstructor.] 0. secs (0.u,0.s) -Chars 7217 - 7224 [intros.] 0. secs (0.u,0.s) -Chars 7225 - 7253 [apply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 7217 - 7224 [(intros).] 0. secs (0.u,0.s) +Chars 7225 - 7253 [(apply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) Chars 7256 - 7257 [-] 0. secs (0.u,0.s) Chars 7258 - 7270 [constructor.] 0. secs (0.u,0.s) Chars 7271 - 7277 [eauto.] 0. secs (0.u,0.s) Chars 7280 - 7281 [-] 0. secs (0.u,0.s) Chars 7282 - 7294 [constructor.] 0. secs (0.u,0.s) -Chars 7299 - 7379 [change~~~(elem~c~(observe~(ITr...] 0. secs (0.u,0.s) -Chars 7384 - 7400 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 7401 - 7405 [Qed.] 0.004 secs (0.004u,0.s) +Chars 7299 - 7379 [(change~~~~(elem~c~(observe~(I...] 0. secs (0.u,0.s) +Chars 7384 - 7400 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 7401 - 7405 [Qed.] 0.006 secs (0.006u,0.s) Chars 7479 - 7624 [#[global]~Instance~Proper_sutt...] 0. secs (0.u,0.s) Chars 7625 - 7631 [Proof.] 0. secs (0.u,0.s) -Chars 7634 - 7645 [repeat~red.] 0. secs (0.u,0.s) +Chars 7634 - 7645 [(repeat~red).] 0. secs (0.u,0.s) Chars 7646 - 7664 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 7665 - 7690 [intros~x~y~H~x0~y0~H0~H1.] 0. secs (0.u,0.s) +Chars 7665 - 7690 [(intros~x~y~H~x0~y0~H0~H1).] 0. secs (0.u,0.s) Chars 7693 - 7703 [step~in~H.] 0. secs (0.u,0.s) Chars 7704 - 7715 [step~in~H0.] 0. secs (0.u,0.s) Chars 7716 - 7727 [step~in~H1.] 0. secs (0.u,0.s) Chars 7730 - 7747 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) -Chars 7750 - 7771 [induction~H1;~intros.] 0. secs (0.u,0.s) +Chars 7750 - 7771 [(induction~H1;~intros).] 0.001 secs (0.001u,0.s) Chars 7774 - 7775 [-] 0. secs (0.u,0.s) -Chars 7776 - 7801 [inv~H1;~try~discriminate.] 0.017 secs (0.017u,0.s) -Chars 7802 - 7827 [inv~H0;~try~discriminate.] 0.014 secs (0.014u,0.s) +Chars 7776 - 7801 [(inv~H1;~try~discriminate).] 0.026 secs (0.025u,0.s) +Chars 7802 - 7827 [(inv~H0;~try~discriminate).] 0.021 secs (0.021u,0.s) Chars 7828 - 7841 [econstructor.] 0. secs (0.u,0.s) Chars 7842 - 7848 [eauto.] 0. secs (0.u,0.s) Chars 7851 - 7852 [-] 0. secs (0.u,0.s) -Chars 7853 - 7895 [dependent~destruction~H;~try~d...] 0.017 secs (0.017u,0.s) -Chars 7900 - 7943 [dependent~destruction~H0;~try~...] 0.017 secs (0.017u,0.s) -Chars 7948 - 7956 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 7853 - 7895 [(dependent~destruction~H;~try~...] 0.024 secs (0.024u,0.s) +Chars 7900 - 7943 [(dependent~destruction~H0;~try...] 0.025 secs (0.025u,0.s) +Chars 7948 - 7956 [simpobs.] 0.003 secs (0.003u,0.s) Chars 7961 - 7973 [constructor.] 0. secs (0.u,0.s) -Chars 7974 - 7981 [intros.] 0. secs (0.u,0.s) -Chars 7982 - 7993 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7999 - 8009 [apply~REL.] 0. secs (0.u,0.s) -Chars 8015 - 8026 [apply~REL0.] 0. secs (0.u,0.s) -Chars 8027 - 8039 [apply~SUTTK.] 0. secs (0.u,0.s) +Chars 7974 - 7981 [(intros).] 0. secs (0.u,0.s) +Chars 7982 - 7993 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7999 - 8009 [(apply~REL).] 0. secs (0.u,0.s) +Chars 8015 - 8026 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 8027 - 8039 [(apply~SUTTK).] 0. secs (0.u,0.s) Chars 8044 - 8045 [-] 0. secs (0.u,0.s) -Chars 8046 - 8089 [dependent~destruction~H0;~try~...] 0.016 secs (0.015u,0.s) +Chars 8046 - 8089 [(dependent~destruction~H0;~try...] 0.023 secs (0.023u,0.s) Chars 8094 - 8102 [simpobs.] 0.001 secs (0.001u,0.s) Chars 8103 - 8115 [constructor.] 0. secs (0.u,0.s) -Chars 8121 - 8141 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) +Chars 8121 - 8141 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) Chars 8142 - 8158 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 8162 - 8163 [-] 0. secs (0.u,0.s) -Chars 8164 - 8206 [dependent~destruction~H;~try~d...] 0.016 secs (0.016u,0.s) +Chars 8164 - 8206 [(dependent~destruction~H;~try~...] 0.023 secs (0.023u,0.s) Chars 8211 - 8219 [simpobs.] 0.001 secs (0.001u,0.s) Chars 8220 - 8232 [constructor.] 0. secs (0.u,0.s) -Chars 8237 - 8267 [rewrite~(itree_eta'~ot2)~in~*.] 0. secs (0.u,0.s) -Chars 8268 - 8279 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8285 - 8295 [apply~REL.] 0. secs (0.u,0.s) -Chars 8296 - 8311 [step;~apply~H0.] 0.001 secs (0.001u,0.s) -Chars 8312 - 8325 [apply~EQTAUS.] 0. secs (0.u,0.s) -Chars 8327 - 8331 [Qed.] 0.046 secs (0.045u,0.s) +Chars 8237 - 8267 [(rewrite~(itree_eta'~ot2)~in~*).] 0. secs (0.u,0.s) +Chars 8268 - 8279 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8285 - 8295 [(apply~REL).] 0. secs (0.u,0.s) +Chars 8296 - 8311 [(step;~apply~H0).] 0.001 secs (0.001u,0.s) +Chars 8312 - 8325 [(apply~EQTAUS).] 0. secs (0.u,0.s) +Chars 8327 - 8331 [Qed.] 0.066 secs (0.066u,0.s) diff --git a/theories/Events.v.timing b/theories/Events.v.timing index fb11e63a..67d77f47 100644 --- a/theories/Events.v.timing +++ b/theories/Events.v.timing @@ -1 +1 @@ -Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.088 secs (0.075u,0.013s) +Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.173 secs (0.155u,0.018s) diff --git a/theories/Events/Concurrency.v.timing b/theories/Events/Concurrency.v.timing index ffc33a13..028fbb62 100644 --- a/theories/Events/Concurrency.v.timing +++ b/theories/Events/Concurrency.v.timing @@ -1,9 +1,9 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.032 secs (0.025u,0.007s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.039 secs (0.031u,0.008s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.03 secs (0.024u,0.005s) -Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.057 secs (0.056u,0.001s) +Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.038 secs (0.031u,0.007s) +Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.071 secs (0.07u,0.001s) Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0. secs (0.u,0.s) Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.002 secs (0.002u,0.s) Chars 2164 - 2274 [CoFixpoint~round_robin~{E}~(q~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Dependent.v.timing b/theories/Events/Dependent.v.timing index 46b419dc..be4230c8 100644 --- a/theories/Events/Dependent.v.timing +++ b/theories/Events/Dependent.v.timing @@ -1,4 +1,4 @@ -Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.032 secs (0.027u,0.005s) +Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.043 secs (0.035u,0.008s) Chars 720 - 748 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 765 - 852 [Variant~depE~{I~:~Type}~(F~:~I...] 0. secs (0.u,0.s) Chars 854 - 876 [Arguments~Dep~{I~F}~&.] 0. secs (0.u,0.s) diff --git a/theories/Events/Exception.v.timing b/theories/Events/Exception.v.timing index 3c5312a6..6e0897f3 100644 --- a/theories/Events/Exception.v.timing +++ b/theories/Events/Exception.v.timing @@ -1,6 +1,6 @@ -Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.049 secs (0.038u,0.011s) +Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.06 secs (0.048u,0.012s) Chars 77 - 100 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 156 - 237 [Variant~exceptE~(Err~:~Type)~:...] 0. secs (0.u,0.s) -Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.017 secs (0.016u,0.001s) -Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.002 secs (0.002u,0.s) -Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.002 secs (0.002u,0.s) +Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.001 secs (0.001u,0.s) +Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.023 secs (0.021u,0.001s) +Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.003 secs (0.003u,0.s) diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 92e6b956..d9ddea70 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -17,6 +17,7 @@ Import Monads. Import MonadNotation. #[local] Open Scope monad_scope. + Lemma try_catch_ret : forall E Err R r (kcatch : Err -> itree (exceptE Err +' E) R), try_catch (Ret r) kcatch ≅ Ret r. Proof. @@ -45,69 +46,65 @@ Lemma try_catch_ev : forall E A Err R (ev: E A) k (kcatch : Err -> itree (except try_catch (Vis (inr1 ev) k ) kcatch ≅ Vis (inr1 ev) (fun x => Tau (try_catch (k x) kcatch) ). Proof. intros. unfold try_catch. unfold iter, Iter_Kleisli, Basics.iter, MonadIter_itree. - rewrite unfold_iter. cbn. unfold ITree.map at 3. - setoid_rewrite bind_bind. rewrite bind_trigger. cbn. - setoid_rewrite bind_ret_l. reflexivity. + rewrite unfold_iter. cbn. + rewrite bind_map. rewrite bind_trigger. reflexivity. Qed. Global Instance proper_eqitree_try_catch {E Err R} : Proper (eq_itree eq ==> pointwise_relation Err (eq_itree eq) ==> eq_itree eq) (@try_catch Err R E). Proof. - intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. - coinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. + intros t1 t2 Ht k1 k2 Hk. red in Hk. revert t1 t2 Ht. + coinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. sinv Ht. - - repeat rewrite bind_ret_l. eret. - - repeat rewrite bind_ret_l. etau. + - cbn. reflexivity. + - cbn. etau. - destruct e. + destruct e. bcbn. - rewrite 2 bind_map. rewrite 2 bind_ret_r. + rewrite 2 bind_map. rewrite 2 bind_ret_r. step. apply Hk. - + cbn. evis. do 2 setoid_rewrite bind_ret_l. - step. etau. + + cbn. evis. step. cbn. etau. Qed. Global Instance proper_eutt_try_catch {E Err R} : Proper (eutt eq ==> pointwise_relation Err (eutt eq) ==> eutt eq) (@try_catch Err R E). Proof. - intros t1 t2 Ht k1 k2 Hk. red in Hk. generalize dependent t2. revert t1. + intros t1 t2 Ht k1 k2 Hk. red in Hk. revert t1 t2 Ht. coinduction. intros. unfold try_catch. setoid_rewrite unfold_iter_ktree. step in Ht. hinduction Ht before c; intros; subst; eauto. - - repeat rewrite bind_ret_l. eret. - - repeat rewrite bind_ret_l. etau. + - cbn. reflexivity. + - cbn. etau. - destruct e. (* RTODO: make cbn work here *) - + destruct e. bcbn. rewrite 2 bind_map. rewrite 2 bind_ret_r. + + destruct e. bcbn. + rewrite 2 bind_map. rewrite 2 bind_ret_r. step. apply Hk. - + bcbn. evis. do 2 setoid_rewrite bind_ret_l. - step. etau. - - rewrite bind_ret_l. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. - - rewrite bind_ret_l. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. + + bcbn. evis. step. cbn. etau. + - cbn. taul. eapply IHHt; eauto. + - cbn. taur. eapply IHHt; eauto. Qed. Global Instance proper_eqitree_throw_prefix_false {E Err R} : Proper (eqit false false eq ==> eqit false false eq) (@throw_prefix Err R E). Proof. - intros t1 t2 Ht. generalize dependent t2. revert t1. + intros t1 t2 Ht. revert t1 t2 Ht. coinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. - step in Ht. inv Ht. - - repeat rewrite bind_ret_l. bcbn. eret. + sinv Ht. + - cbn. etau. - destruct e. - + destruct e. bcbn. eret. - + setoid_rewrite bind_map. rewrite 2 bind_trigger. - evis. step. bcbn. etau. + + destruct e. cbn. reflexivity. + + cbn. evis. step. cbn. etau. Qed. Global Instance proper_eutt_throw_prefix {E Err R} : Proper (eutt eq ==> eutt eq) (@throw_prefix Err R E). Proof. - intros t1 t2 Ht. generalize dependent t2. revert t1. + intros t1 t2 Ht. revert t1 t2 Ht. coinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. step in Ht. hinduction Ht before c; intros; subst; eauto. - - repeat rewrite bind_ret_l. bcbn. eret. + - cbn. etau. - destruct e. - + destruct e. bcbn. eret. - + setoid_rewrite bind_map. rewrite 2 bind_trigger. - evis. step. bcbn. etau. - - bcbn. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. - - bcbn. rewrite tau_euttge. rewrite unfold_iter_ktree. eapply IHHt; eauto. + + destruct e. cbn. reflexivity. + + cbn. evis. step. cbn. etau. + - cbn. taul. eapply IHHt; eauto. + - cbn. taur. eapply IHHt; eauto. Qed. Global Instance proper_eqitree_throw_prefix {E Err R b} : Proper (eqit b b eq ==> eqit b b eq) (@throw_prefix Err R E). @@ -137,7 +134,7 @@ Qed. Definition throw_prefix_ev : forall X E Err R k (e : E X) , throw_prefix ((Vis (inr1 e) k : itree (exceptE Err +' E) R )) ≅ Vis (inr1 e) (fun x => Tau (throw_prefix (k x)) ). Proof. - intros. setoid_rewrite unfold_iter_ktree at 1. cbn. rewrite bind_map. + intros. setoid_rewrite unfold_iter_ktree at 1. cbn. rewrite bind_map. rewrite bind_trigger. apply eqit_Vis. intros. reflexivity. Qed. @@ -243,25 +240,25 @@ Proof. rewrite Heq at 1. rewrite throw_prefix_ret. rewrite bind_ret_l. destruct r; rewrite bind_ret_l. + rewrite throw_prefix_tau. etau. - + rewrite throw_prefix_ret. eret. + + rewrite throw_prefix_ret. reflexivity. - rewrite Heq at 1. setoid_rewrite bind_bind. rewrite Heq at 1. rewrite throw_prefix_tau. repeat rewrite bind_tau. rewrite throw_prefix_tau. etau. setoid_rewrite throw_prefix_bind at 1. ebind; intros; subst. destruct u2 as [ [ a | b] | e ]. + rewrite bind_ret_l. rewrite throw_prefix_tau. step; etau. - + rewrite bind_ret_l. rewrite throw_prefix_ret. step; eret. + + rewrite bind_ret_l. rewrite throw_prefix_ret. reflexivity. + rewrite bind_ret_l. step; eret. - rewrite Heq at 1. setoid_rewrite bind_bind. rewrite Heq at 1. destruct e. + destruct e. rewrite bind_vis. rewrite throw_prefix_exc. setoid_rewrite throw_prefix_exc. repeat rewrite bind_ret_l. - eret. + reflexivity. + rewrite bind_vis. rewrite throw_prefix_ev. setoid_rewrite throw_prefix_ev. rewrite bind_vis. setoid_rewrite bind_tau. evis. step; etau. rewrite throw_prefix_bind. ebind; intros; subst. destruct u2 as [ [ a | b] | e' ]. * rewrite bind_ret_l. rewrite throw_prefix_tau. step; etau. * rewrite bind_ret_l. rewrite throw_prefix_ret. - step; eret. - * rewrite bind_ret_l. step; eret. + reflexivity. + * rewrite bind_ret_l. reflexivity. Qed. diff --git a/theories/Events/ExceptionFacts.v.timing b/theories/Events/ExceptionFacts.v.timing index 9cb2fdbe..c08cd0be 100644 --- a/theories/Events/ExceptionFacts.v.timing +++ b/theories/Events/ExceptionFacts.v.timing @@ -1,495 +1,495 @@ -Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 61 - 110 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.001s) -Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.162 secs (0.145u,0.017s) +Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) +Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.216 secs (0.193u,0.022s) Chars 242 - 256 [Import~Monads.] 0. secs (0.u,0.s) Chars 257 - 278 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 279 - 311 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) Chars 313 - 437 [Lemma~try_catch_ret~:~~~forall...] 0. secs (0.u,0.s) Chars 438 - 444 [Proof.] 0. secs (0.u,0.s) -Chars 447 - 454 [intros.] 0. secs (0.u,0.s) -Chars 455 - 472 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 473 - 529 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 532 - 552 [rewrite~unfold_iter.] 0.032 secs (0.029u,0.003s) -Chars 553 - 557 [cbn.] 0. secs (0.u,0.s) -Chars 558 - 577 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) +Chars 447 - 454 [(intros).] 0. secs (0.u,0.s) +Chars 455 - 472 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 473 - 529 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 532 - 552 [(rewrite~unfold_iter).] 0.016 secs (0.011u,0.004s) +Chars 553 - 557 [(cbn).] 0.03 secs (0.027u,0.002s) +Chars 558 - 577 [(rewrite~bind_ret_l).] 0.008 secs (0.007u,0.s) Chars 578 - 590 [reflexivity.] 0. secs (0.u,0.s) -Chars 591 - 595 [Qed.] 0.002 secs (0.002u,0.s) +Chars 591 - 595 [Qed.] 0.003 secs (0.003u,0.s) Chars 597 - 740 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 741 - 747 [Proof.] 0. secs (0.u,0.s) -Chars 750 - 757 [intros.] 0. secs (0.u,0.s) -Chars 758 - 775 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 776 - 832 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 835 - 855 [rewrite~unfold_iter.] 0.04 secs (0.04u,0.s) -Chars 856 - 860 [cbn.] 0. secs (0.u,0.s) -Chars 861 - 880 [rewrite~bind_ret_l.] 0.008 secs (0.008u,0.s) +Chars 750 - 757 [(intros).] 0. secs (0.u,0.s) +Chars 758 - 775 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 776 - 832 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 835 - 855 [(rewrite~unfold_iter).] 0.049 secs (0.049u,0.s) +Chars 856 - 860 [(cbn).] 0. secs (0.u,0.s) +Chars 861 - 880 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) Chars 881 - 893 [reflexivity.] 0. secs (0.u,0.s) -Chars 894 - 898 [Qed.] 0.003 secs (0.003u,0.s) +Chars 894 - 898 [Qed.] 0.004 secs (0.004u,0.s) Chars 900 - 1122 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) Chars 1123 - 1129 [Proof.] 0. secs (0.u,0.s) -Chars 1133 - 1140 [intros.] 0. secs (0.u,0.s) -Chars 1141 - 1158 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 1159 - 1215 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 1219 - 1239 [rewrite~unfold_iter.] 0.007 secs (0.007u,0.s) -Chars 1240 - 1244 [cbn.] 0. secs (0.u,0.s) -Chars 1245 - 1262 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 1266 - 1284 [rewrite~bind_bind.] 0.006 secs (0.006u,0.s) -Chars 1285 - 1311 [setoid_rewrite~bind_ret_l.] 0.01 secs (0.01u,0.s) -Chars 1312 - 1331 [rewrite~bind_ret_r.] 0.001 secs (0.001u,0.s) +Chars 1133 - 1140 [(intros).] 0. secs (0.u,0.s) +Chars 1141 - 1158 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 1159 - 1215 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 1219 - 1239 [(rewrite~unfold_iter).] 0.01 secs (0.01u,0.s) +Chars 1240 - 1244 [(cbn).] 0. secs (0.u,0.s) +Chars 1245 - 1262 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 1266 - 1284 [(rewrite~bind_bind).] 0.009 secs (0.009u,0.s) +Chars 1285 - 1311 [setoid_rewrite~bind_ret_l.] 0.013 secs (0.013u,0.s) +Chars 1312 - 1331 [(rewrite~bind_ret_r).] 0.002 secs (0.002u,0.s) Chars 1335 - 1347 [reflexivity.] 0. secs (0.u,0.s) -Chars 1348 - 1352 [Qed.] 0.003 secs (0.003u,0.s) -Chars 1354 - 1549 [Lemma~try_catch_ev~:~~~forall~...] 0. secs (0.u,0.s) +Chars 1348 - 1352 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1354 - 1549 [Lemma~try_catch_ev~:~~~forall~...] 0.001 secs (0.001u,0.s) Chars 1550 - 1556 [Proof.] 0. secs (0.u,0.s) -Chars 1559 - 1566 [intros.] 0. secs (0.u,0.s) -Chars 1567 - 1584 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 1585 - 1641 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 1644 - 1664 [rewrite~unfold_iter.] 0.01 secs (0.01u,0.s) -Chars 1665 - 1669 [cbn.] 0. secs (0.u,0.s) -Chars 1670 - 1692 [unfold~ITree.map~at~3.] 0. secs (0.u,0.s) -Chars 1695 - 1720 [setoid_rewrite~bind_bind.] 0.011 secs (0.011u,0.s) -Chars 1721 - 1742 [rewrite~bind_trigger.] 0.01 secs (0.01u,0.s) -Chars 1743 - 1747 [cbn.] 0. secs (0.u,0.s) -Chars 1750 - 1776 [setoid_rewrite~bind_ret_l.] 0.016 secs (0.016u,0.s) +Chars 1559 - 1566 [(intros).] 0. secs (0.u,0.s) +Chars 1567 - 1584 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 1585 - 1641 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 1644 - 1664 [(rewrite~unfold_iter).] 0.014 secs (0.014u,0.s) +Chars 1665 - 1669 [(cbn).] 0. secs (0.u,0.s) +Chars 1670 - 1692 [(unfold~ITree.map~at~3).] 0. secs (0.u,0.s) +Chars 1695 - 1720 [setoid_rewrite~bind_bind.] 0.015 secs (0.015u,0.s) +Chars 1721 - 1742 [(rewrite~bind_trigger).] 0.014 secs (0.014u,0.s) +Chars 1743 - 1747 [(cbn).] 0. secs (0.u,0.s) +Chars 1750 - 1776 [setoid_rewrite~bind_ret_l.] 0.022 secs (0.022u,0.s) Chars 1777 - 1789 [reflexivity.] 0. secs (0.u,0.s) -Chars 1790 - 1794 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1790 - 1794 [Qed.] 0.007 secs (0.007u,0.s) Chars 1796 - 1948 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 1949 - 1955 [Proof.] 0. secs (0.u,0.s) -Chars 1958 - 1983 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 1984 - 1994 [red~in~Hk.] 0. secs (0.u,0.s) +Chars 1958 - 1983 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 1984 - 1994 [(red~in~Hk).] 0. secs (0.u,0.s) Chars 1995 - 2019 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 2020 - 2030 [revert~t1.] 0. secs (0.u,0.s) Chars 2033 - 2045 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 2046 - 2053 [intros.] 0. secs (0.u,0.s) -Chars 2054 - 2071 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 2073 - 2106 [setoid_rewrite~unfold_iter_ktree.] 0.053 secs (0.053u,0.s) -Chars 2109 - 2117 [sinv~Ht.] 0.242 secs (0.24u,0.002s) +Chars 2046 - 2053 [(intros).] 0. secs (0.u,0.s) +Chars 2054 - 2071 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 2073 - 2106 [setoid_rewrite~unfold_iter_ktree.] 0.071 secs (0.07u,0.s) +Chars 2109 - 2117 [(sinv~Ht).] 0.327 secs (0.324u,0.002s) Chars 2121 - 2122 [-] 0. secs (0.u,0.s) -Chars 2123 - 2149 [repeat~rewrite~bind_ret_l.] 0.049 secs (0.048u,0.s) +Chars 2123 - 2149 [(repeat~rewrite~bind_ret_l).] 0.06 secs (0.059u,0.s) Chars 2150 - 2155 [eret.] 0. secs (0.u,0.s) Chars 2159 - 2160 [-] 0. secs (0.u,0.s) -Chars 2161 - 2187 [repeat~rewrite~bind_ret_l.] 0.052 secs (0.052u,0.s) -Chars 2188 - 2193 [etau.] 0.002 secs (0.002u,0.s) +Chars 2161 - 2187 [(repeat~rewrite~bind_ret_l).] 0.07 secs (0.069u,0.s) +Chars 2188 - 2193 [etau.] 0.003 secs (0.003u,0.s) Chars 2198 - 2199 [-] 0. secs (0.u,0.s) -Chars 2200 - 2211 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2200 - 2211 [(destruct~e).] 0.004 secs (0.004u,0.s) Chars 2216 - 2217 [+] 0. secs (0.u,0.s) -Chars 2218 - 2229 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2218 - 2229 [(destruct~e).] 0.003 secs (0.003u,0.s) Chars 2230 - 2235 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2242 - 2261 [rewrite~2!bind_map.] 0.044 secs (0.044u,0.s) -Chars 2262 - 2283 [rewrite~2!bind_ret_r.] 0.03 secs (0.03u,0.s) -Chars 2291 - 2296 [step.] 0.007 secs (0.007u,0.s) -Chars 2297 - 2306 [apply~Hk.] 0. secs (0.u,0.s) +Chars 2242 - 2261 [(rewrite~2!bind_map).] 0.059 secs (0.058u,0.s) +Chars 2262 - 2283 [(rewrite~2!bind_ret_r).] 0.044 secs (0.044u,0.s) +Chars 2291 - 2296 [step.] 0.009 secs (0.009u,0.s) +Chars 2297 - 2306 [(apply~Hk).] 0. secs (0.u,0.s) Chars 2312 - 2313 [+] 0. secs (0.u,0.s) -Chars 2314 - 2318 [cbn.] 0. secs (0.u,0.s) -Chars 2319 - 2324 [evis.] 0.002 secs (0.002u,0.s) -Chars 2325 - 2356 [do~2~setoid_rewrite~bind_ret_l.] 0.067 secs (0.067u,0.s) -Chars 2365 - 2370 [step.] 0.002 secs (0.002u,0.s) -Chars 2371 - 2376 [etau.] 0.002 secs (0.002u,0.s) -Chars 2377 - 2381 [Qed.] 0.034 secs (0.034u,0.s) +Chars 2314 - 2318 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2319 - 2324 [evis.] 0.003 secs (0.003u,0.s) +Chars 2325 - 2356 [(do~2~setoid_rewrite~bind_ret_l).] 0.087 secs (0.086u,0.s) +Chars 2365 - 2370 [step.] 0.003 secs (0.003u,0.s) +Chars 2371 - 2376 [etau.] 0.003 secs (0.003u,0.s) +Chars 2377 - 2381 [Qed.] 0.05 secs (0.05u,0.s) Chars 2383 - 2520 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 2521 - 2527 [Proof.] 0. secs (0.u,0.s) -Chars 2530 - 2555 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 2556 - 2566 [red~in~Hk.] 0. secs (0.u,0.s) +Chars 2530 - 2555 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 2556 - 2566 [(red~in~Hk).] 0. secs (0.u,0.s) Chars 2567 - 2591 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 2592 - 2602 [revert~t1.] 0. secs (0.u,0.s) -Chars 2605 - 2617 [coinduction.] 0.004 secs (0.004u,0.s) -Chars 2618 - 2625 [intros.] 0. secs (0.u,0.s) -Chars 2626 - 2643 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 2644 - 2677 [setoid_rewrite~unfold_iter_ktree.] 0.051 secs (0.051u,0.s) -Chars 2680 - 2691 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 2695 - 2740 [hinduction~Ht~before~c;~intros...] 0.016 secs (0.016u,0.s) +Chars 2605 - 2617 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 2618 - 2625 [(intros).] 0. secs (0.u,0.s) +Chars 2626 - 2643 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 2644 - 2677 [setoid_rewrite~unfold_iter_ktree.] 0.069 secs (0.068u,0.s) +Chars 2680 - 2691 [step~in~Ht.] 0.001 secs (0.001u,0.s) +Chars 2695 - 2740 [(hinduction~Ht~before~c;~intro...] 0.022 secs (0.022u,0.s) Chars 2743 - 2744 [-] 0. secs (0.u,0.s) -Chars 2745 - 2771 [repeat~rewrite~bind_ret_l.] 0.044 secs (0.043u,0.s) +Chars 2745 - 2771 [(repeat~rewrite~bind_ret_l).] 0.06 secs (0.059u,0.s) Chars 2772 - 2777 [eret.] 0. secs (0.u,0.s) Chars 2781 - 2782 [-] 0. secs (0.u,0.s) -Chars 2783 - 2809 [repeat~rewrite~bind_ret_l.] 0.049 secs (0.049u,0.s) +Chars 2783 - 2809 [(repeat~rewrite~bind_ret_l).] 0.068 secs (0.067u,0.s) Chars 2810 - 2815 [etau.] 0.002 secs (0.002u,0.s) Chars 2820 - 2821 [-] 0. secs (0.u,0.s) -Chars 2822 - 2833 [destruct~e.] 0. secs (0.u,0.s) +Chars 2822 - 2833 [(destruct~e).] 0. secs (0.u,0.s) Chars 2872 - 2873 [+] 0. secs (0.u,0.s) -Chars 2874 - 2885 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2874 - 2885 [(destruct~e).] 0.003 secs (0.003u,0.s) Chars 2886 - 2891 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2892 - 2911 [rewrite~2!bind_map.] 0.041 secs (0.041u,0.s) -Chars 2912 - 2933 [rewrite~2!bind_ret_r.] 0.028 secs (0.027u,0.s) -Chars 2941 - 2946 [step.] 0.006 secs (0.006u,0.s) -Chars 2947 - 2956 [apply~Hk.] 0. secs (0.u,0.s) +Chars 2892 - 2911 [(rewrite~2!bind_map).] 0.056 secs (0.055u,0.s) +Chars 2912 - 2933 [(rewrite~2!bind_ret_r).] 0.038 secs (0.037u,0.s) +Chars 2941 - 2946 [step.] 0.009 secs (0.009u,0.s) +Chars 2947 - 2956 [(apply~Hk).] 0. secs (0.u,0.s) Chars 2962 - 2963 [+] 0. secs (0.u,0.s) -Chars 2964 - 2969 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2970 - 2975 [evis.] 0.002 secs (0.002u,0.s) -Chars 2976 - 3007 [do~2~setoid_rewrite~bind_ret_l.] 0.065 secs (0.064u,0.s) -Chars 3016 - 3021 [step.] 0.002 secs (0.002u,0.s) -Chars 3022 - 3027 [etau.] 0.002 secs (0.002u,0.s) +Chars 2964 - 2969 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 2970 - 2975 [evis.] 0.003 secs (0.003u,0.s) +Chars 2976 - 3007 [(do~2~setoid_rewrite~bind_ret_l).] 0.086 secs (0.084u,0.001s) +Chars 3016 - 3021 [step.] 0.003 secs (0.003u,0.s) +Chars 3022 - 3027 [etau.] 0.003 secs (0.003u,0.s) Chars 3031 - 3032 [-] 0. secs (0.u,0.s) -Chars 3033 - 3052 [rewrite~bind_ret_l.] 0.025 secs (0.025u,0.s) -Chars 3053 - 3072 [rewrite~tau_euttge.] 0.014 secs (0.014u,0.s) -Chars 3073 - 3099 [rewrite~unfold_iter_ktree.] 0.025 secs (0.025u,0.s) -Chars 3100 - 3119 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 3033 - 3052 [(rewrite~bind_ret_l).] 0.035 secs (0.034u,0.s) +Chars 3053 - 3072 [(rewrite~tau_euttge).] 0.019 secs (0.018u,0.s) +Chars 3073 - 3099 [(rewrite~unfold_iter_ktree).] 0.035 secs (0.035u,0.s) +Chars 3100 - 3119 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) Chars 3122 - 3123 [-] 0. secs (0.u,0.s) -Chars 3124 - 3143 [rewrite~bind_ret_l.] 0.027 secs (0.027u,0.s) -Chars 3144 - 3163 [rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) -Chars 3164 - 3190 [rewrite~unfold_iter_ktree.] 0.028 secs (0.028u,0.s) -Chars 3191 - 3210 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) -Chars 3211 - 3215 [Qed.] 0.029 secs (0.029u,0.s) +Chars 3124 - 3143 [(rewrite~bind_ret_l).] 0.036 secs (0.036u,0.s) +Chars 3144 - 3163 [(rewrite~tau_euttge).] 0.021 secs (0.021u,0.s) +Chars 3164 - 3190 [(rewrite~unfold_iter_ktree).] 0.038 secs (0.038u,0.s) +Chars 3191 - 3210 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 3211 - 3215 [Qed.] 0.042 secs (0.041u,0.s) Chars 3218 - 3357 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 3358 - 3364 [Proof.] 0. secs (0.u,0.s) -Chars 3367 - 3383 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 3367 - 3383 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) Chars 3384 - 3408 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 3409 - 3419 [revert~t1.] 0. secs (0.u,0.s) -Chars 3422 - 3434 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3435 - 3442 [intros.] 0. secs (0.u,0.s) -Chars 3443 - 3463 [unfold~throw_prefix.] 0. secs (0.u,0.s) -Chars 3464 - 3497 [setoid_rewrite~unfold_iter_ktree.] 0.055 secs (0.054u,0.s) -Chars 3500 - 3511 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 3512 - 3519 [inv~Ht.] 0.218 secs (0.217u,0.001s) +Chars 3422 - 3434 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 3435 - 3442 [(intros).] 0. secs (0.u,0.s) +Chars 3443 - 3463 [(unfold~throw_prefix).] 0. secs (0.u,0.s) +Chars 3464 - 3497 [setoid_rewrite~unfold_iter_ktree.] 0.069 secs (0.067u,0.s) +Chars 3500 - 3511 [step~in~Ht.] 0.001 secs (0.u,0.s) +Chars 3512 - 3519 [(inv~Ht).] 0.297 secs (0.295u,0.002s) Chars 3522 - 3523 [-] 0. secs (0.u,0.s) -Chars 3524 - 3550 [repeat~rewrite~bind_ret_l.] 0.055 secs (0.055u,0.s) -Chars 3551 - 3556 [bcbn.] 0. secs (0.u,0.s) -Chars 3557 - 3562 [eret.] 0.001 secs (0.001u,0.s) +Chars 3524 - 3550 [(repeat~rewrite~bind_ret_l).] 0.074 secs (0.074u,0.s) +Chars 3551 - 3556 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3557 - 3562 [eret.] 0.002 secs (0.002u,0.s) Chars 3565 - 3566 [-] 0. secs (0.u,0.s) -Chars 3567 - 3578 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 3567 - 3578 [(destruct~e).] 0.004 secs (0.004u,0.s) Chars 3583 - 3584 [+] 0. secs (0.u,0.s) -Chars 3585 - 3596 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 3585 - 3596 [(destruct~e).] 0.004 secs (0.004u,0.s) Chars 3597 - 3602 [bcbn.] 0.001 secs (0.001u,0.s) Chars 3603 - 3608 [eret.] 0. secs (0.u,0.s) Chars 3613 - 3614 [+] 0. secs (0.u,0.s) -Chars 3615 - 3639 [setoid_rewrite~bind_map.] 0.042 secs (0.042u,0.s) -Chars 3640 - 3663 [rewrite~2!bind_trigger.] 0.05 secs (0.049u,0.s) -Chars 3670 - 3675 [evis.] 0.001 secs (0.001u,0.s) -Chars 3676 - 3681 [step.] 0.002 secs (0.002u,0.s) -Chars 3682 - 3687 [bcbn.] 0. secs (0.u,0.s) -Chars 3688 - 3693 [etau.] 0.001 secs (0.001u,0.s) -Chars 3695 - 3699 [Qed.] 0.033 secs (0.033u,0.s) +Chars 3615 - 3639 [setoid_rewrite~bind_map.] 0.054 secs (0.054u,0.s) +Chars 3640 - 3663 [(rewrite~2!bind_trigger).] 0.067 secs (0.066u,0.s) +Chars 3670 - 3675 [evis.] 0.002 secs (0.002u,0.s) +Chars 3676 - 3681 [step.] 0.003 secs (0.003u,0.s) +Chars 3682 - 3687 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3688 - 3693 [etau.] 0.002 secs (0.002u,0.s) +Chars 3695 - 3699 [Qed.] 0.046 secs (0.045u,0.s) Chars 3701 - 3807 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 3808 - 3814 [Proof.] 0. secs (0.u,0.s) -Chars 3817 - 3833 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 3817 - 3833 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) Chars 3834 - 3858 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 3859 - 3869 [revert~t1.] 0. secs (0.u,0.s) -Chars 3872 - 3884 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3885 - 3892 [intros.] 0. secs (0.u,0.s) -Chars 3893 - 3913 [unfold~throw_prefix.] 0. secs (0.u,0.s) -Chars 3914 - 3947 [setoid_rewrite~unfold_iter_ktree.] 0.055 secs (0.054u,0.s) -Chars 3950 - 3961 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 3962 - 4007 [hinduction~Ht~before~c;~intros...] 0.015 secs (0.015u,0.s) +Chars 3872 - 3884 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 3885 - 3892 [(intros).] 0. secs (0.u,0.s) +Chars 3893 - 3913 [(unfold~throw_prefix).] 0. secs (0.u,0.s) +Chars 3914 - 3947 [setoid_rewrite~unfold_iter_ktree.] 0.07 secs (0.069u,0.001s) +Chars 3950 - 3961 [step~in~Ht.] 0.001 secs (0.001u,0.s) +Chars 3962 - 4007 [(hinduction~Ht~before~c;~intro...] 0.02 secs (0.02u,0.s) Chars 4010 - 4011 [-] 0. secs (0.u,0.s) -Chars 4012 - 4038 [repeat~rewrite~bind_ret_l.] 0.056 secs (0.056u,0.s) -Chars 4039 - 4044 [bcbn.] 0. secs (0.u,0.s) -Chars 4045 - 4050 [eret.] 0.001 secs (0.001u,0.s) +Chars 4012 - 4038 [(repeat~rewrite~bind_ret_l).] 0.076 secs (0.075u,0.001s) +Chars 4039 - 4044 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 4045 - 4050 [eret.] 0.002 secs (0.002u,0.s) Chars 4053 - 4054 [-] 0. secs (0.u,0.s) -Chars 4055 - 4066 [destruct~e.] 0. secs (0.u,0.s) +Chars 4055 - 4066 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 4071 - 4072 [+] 0. secs (0.u,0.s) -Chars 4073 - 4084 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 4073 - 4084 [(destruct~e).] 0.004 secs (0.004u,0.s) Chars 4085 - 4090 [bcbn.] 0.001 secs (0.001u,0.s) Chars 4091 - 4096 [eret.] 0. secs (0.u,0.s) Chars 4101 - 4102 [+] 0. secs (0.u,0.s) -Chars 4103 - 4127 [setoid_rewrite~bind_map.] 0.043 secs (0.042u,0.s) -Chars 4128 - 4151 [rewrite~2!bind_trigger.] 0.049 secs (0.049u,0.s) -Chars 4158 - 4163 [evis.] 0.001 secs (0.001u,0.s) -Chars 4164 - 4169 [step.] 0.002 secs (0.002u,0.s) -Chars 4170 - 4175 [bcbn.] 0. secs (0.u,0.s) +Chars 4103 - 4127 [setoid_rewrite~bind_map.] 0.055 secs (0.054u,0.s) +Chars 4128 - 4151 [(rewrite~2!bind_trigger).] 0.066 secs (0.065u,0.s) +Chars 4158 - 4163 [evis.] 0.002 secs (0.002u,0.s) +Chars 4164 - 4169 [step.] 0.003 secs (0.003u,0.s) +Chars 4170 - 4175 [bcbn.] 0.001 secs (0.001u,0.s) Chars 4176 - 4181 [etau.] 0.002 secs (0.002u,0.s) Chars 4185 - 4186 [-] 0. secs (0.u,0.s) -Chars 4187 - 4192 [bcbn.] 0.035 secs (0.034u,0.s) -Chars 4193 - 4212 [rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) -Chars 4213 - 4239 [rewrite~unfold_iter_ktree.] 0.029 secs (0.029u,0.s) -Chars 4240 - 4259 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 4187 - 4192 [bcbn.] 0.048 secs (0.047u,0.s) +Chars 4193 - 4212 [(rewrite~tau_euttge).] 0.02 secs (0.02u,0.s) +Chars 4213 - 4239 [(rewrite~unfold_iter_ktree).] 0.038 secs (0.037u,0.s) +Chars 4240 - 4259 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) Chars 4262 - 4263 [-] 0. secs (0.u,0.s) -Chars 4264 - 4269 [bcbn.] 0.033 secs (0.033u,0.s) -Chars 4270 - 4289 [rewrite~tau_euttge.] 0.017 secs (0.017u,0.s) -Chars 4290 - 4316 [rewrite~unfold_iter_ktree.] 0.031 secs (0.031u,0.s) -Chars 4317 - 4336 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) -Chars 4337 - 4341 [Qed.] 0.03 secs (0.03u,0.s) +Chars 4264 - 4269 [bcbn.] 0.043 secs (0.043u,0.s) +Chars 4270 - 4289 [(rewrite~tau_euttge).] 0.023 secs (0.023u,0.s) +Chars 4290 - 4316 [(rewrite~unfold_iter_ktree).] 0.041 secs (0.041u,0.s) +Chars 4317 - 4336 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 4337 - 4341 [Qed.] 0.04 secs (0.04u,0.s) Chars 4343 - 4462 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 4463 - 4469 [Proof.] 0. secs (0.u,0.s) -Chars 4472 - 4559 [destruct~b;~~[~apply~proper_eu...] 0. secs (0.u,0.s) +Chars 4472 - 4559 [(destruct~b;~~~[~apply~proper_...] 0. secs (0.u,0.s) Chars 4560 - 4564 [Qed.] 0. secs (0.u,0.s) Chars 4566 - 4670 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) Chars 4671 - 4677 [Proof.] 0. secs (0.u,0.s) -Chars 4680 - 4687 [intros.] 0. secs (0.u,0.s) -Chars 4688 - 4721 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) -Chars 4722 - 4726 [cbn.] 0. secs (0.u,0.s) -Chars 4727 - 4746 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 4680 - 4687 [(intros).] 0. secs (0.u,0.s) +Chars 4688 - 4721 [setoid_rewrite~unfold_iter_ktree.] 0.015 secs (0.015u,0.s) +Chars 4722 - 4726 [(cbn).] 0. secs (0.u,0.s) +Chars 4727 - 4746 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) Chars 4747 - 4759 [reflexivity.] 0. secs (0.u,0.s) -Chars 4760 - 4764 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4760 - 4764 [Qed.] 0.004 secs (0.004u,0.s) Chars 4766 - 4896 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) Chars 4897 - 4903 [Proof.] 0. secs (0.u,0.s) -Chars 4906 - 4913 [intros.] 0. secs (0.u,0.s) -Chars 4914 - 4952 [setoid_rewrite~unfold_iter_ktr...] 0.009 secs (0.009u,0.s) -Chars 4953 - 4957 [cbn.] 0. secs (0.u,0.s) -Chars 4958 - 4977 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 4906 - 4913 [(intros).] 0. secs (0.u,0.s) +Chars 4914 - 4952 [setoid_rewrite~unfold_iter_ktr...] 0.012 secs (0.012u,0.s) +Chars 4953 - 4957 [(cbn).] 0. secs (0.u,0.s) +Chars 4958 - 4977 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) Chars 4980 - 4992 [reflexivity.] 0. secs (0.u,0.s) -Chars 4993 - 4997 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4993 - 4997 [Qed.] 0.004 secs (0.004u,0.s) Chars 4999 - 5126 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) Chars 5127 - 5133 [Proof.] 0. secs (0.u,0.s) -Chars 5136 - 5143 [intros.] 0. secs (0.u,0.s) -Chars 5144 - 5177 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) -Chars 5178 - 5182 [cbn.] 0. secs (0.u,0.s) -Chars 5183 - 5202 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) +Chars 5136 - 5143 [(intros).] 0. secs (0.u,0.s) +Chars 5144 - 5177 [setoid_rewrite~unfold_iter_ktree.] 0.013 secs (0.012u,0.s) +Chars 5178 - 5182 [(cbn).] 0. secs (0.u,0.s) +Chars 5183 - 5202 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) Chars 5203 - 5215 [reflexivity.] 0. secs (0.u,0.s) -Chars 5216 - 5220 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5222 - 5404 [Definition~throw_prefix_ev~:~~...] 0. secs (0.u,0.s) +Chars 5216 - 5220 [Qed.] 0.004 secs (0.004u,0.s) +Chars 5222 - 5404 [Definition~throw_prefix_ev~:~~...] 0.001 secs (0.001u,0.s) Chars 5405 - 5411 [Proof.] 0. secs (0.u,0.s) -Chars 5414 - 5421 [intros.] 0. secs (0.u,0.s) -Chars 5422 - 5460 [setoid_rewrite~unfold_iter_ktr...] 0.012 secs (0.012u,0.s) -Chars 5461 - 5465 [cbn.] 0. secs (0.u,0.s) -Chars 5466 - 5483 [rewrite~bind_map.] 0.007 secs (0.007u,0.s) -Chars 5486 - 5507 [rewrite~bind_trigger.] 0.007 secs (0.007u,0.s) -Chars 5508 - 5523 [apply~eqit_Vis.] 0. secs (0.u,0.s) -Chars 5524 - 5531 [intros.] 0. secs (0.u,0.s) +Chars 5414 - 5421 [(intros).] 0. secs (0.u,0.s) +Chars 5422 - 5460 [setoid_rewrite~unfold_iter_ktr...] 0.019 secs (0.019u,0.s) +Chars 5461 - 5465 [(cbn).] 0. secs (0.u,0.s) +Chars 5466 - 5483 [(rewrite~bind_map).] 0.011 secs (0.011u,0.s) +Chars 5486 - 5507 [(rewrite~bind_trigger).] 0.01 secs (0.01u,0.s) +Chars 5508 - 5523 [(apply~eqit_Vis).] 0. secs (0.u,0.s) +Chars 5524 - 5531 [(intros).] 0. secs (0.u,0.s) Chars 5532 - 5544 [reflexivity.] 0. secs (0.u,0.s) -Chars 5545 - 5549 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5545 - 5549 [Qed.] 0.006 secs (0.005u,0.s) Chars 5551 - 5709 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) Chars 5710 - 5716 [Proof.] 0. secs (0.u,0.s) -Chars 5720 - 5742 [intros~E~Err~R~kcatch.] 0. secs (0.u,0.s) -Chars 5743 - 5755 [coinduction.] 0.002 secs (0.001u,0.s) -Chars 5756 - 5763 [intros.] 0. secs (0.u,0.s) -Chars 5766 - 5839 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) +Chars 5720 - 5742 [(intros~E~Err~R~kcatch).] 0. secs (0.u,0.s) +Chars 5743 - 5755 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5756 - 5763 [(intros).] 0. secs (0.u,0.s) +Chars 5766 - 5839 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) Chars 5842 - 5843 [-] 0. secs (0.u,0.s) -Chars 5844 - 5856 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 5857 - 5882 [rewrite~throw_prefix_ret.] 0.015 secs (0.014u,0.s) -Chars 5883 - 5905 [rewrite~try_catch_ret.] 0.014 secs (0.014u,0.s) -Chars 5906 - 5918 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 5844 - 5856 [(rewrite~Heq).] 0.023 secs (0.022u,0.s) +Chars 5857 - 5882 [(rewrite~throw_prefix_ret).] 0.021 secs (0.021u,0.s) +Chars 5883 - 5905 [(rewrite~try_catch_ret).] 0.021 secs (0.02u,0.s) +Chars 5906 - 5918 [reflexivity.] 0.002 secs (0.002u,0.s) Chars 5921 - 5922 [-] 0. secs (0.u,0.s) -Chars 5923 - 5935 [rewrite~Heq.] 0.015 secs (0.014u,0.s) -Chars 5936 - 5961 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 5962 - 5984 [rewrite~try_catch_tau.] 0.013 secs (0.013u,0.s) +Chars 5923 - 5935 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 5936 - 5961 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) +Chars 5962 - 5984 [(rewrite~try_catch_tau).] 0.02 secs (0.019u,0.s) Chars 5985 - 5990 [etau.] 0. secs (0.u,0.s) Chars 5993 - 5994 [-] 0. secs (0.u,0.s) -Chars 5995 - 6006 [destruct~e.] 0. secs (0.u,0.s) +Chars 5995 - 6006 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 6010 - 6011 [+] 0. secs (0.u,0.s) -Chars 6012 - 6023 [destruct~e.] 0. secs (0.u,0.s) -Chars 6024 - 6036 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 6037 - 6062 [rewrite~throw_prefix_exc.] 0.014 secs (0.014u,0.s) -Chars 6063 - 6085 [rewrite~try_catch_ret.] 0.014 secs (0.014u,0.s) +Chars 6012 - 6023 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 6024 - 6036 [(rewrite~Heq).] 0.02 secs (0.02u,0.s) +Chars 6037 - 6062 [(rewrite~throw_prefix_exc).] 0.02 secs (0.02u,0.s) +Chars 6063 - 6085 [(rewrite~try_catch_ret).] 0.018 secs (0.018u,0.s) Chars 6086 - 6098 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 6102 - 6103 [+] 0. secs (0.u,0.s) -Chars 6104 - 6116 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 6117 - 6141 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) -Chars 6142 - 6163 [rewrite~try_catch_ev.] 0.017 secs (0.016u,0.s) +Chars 6104 - 6116 [(rewrite~Heq).] 0.02 secs (0.02u,0.s) +Chars 6117 - 6141 [(rewrite~throw_prefix_ev).] 0.02 secs (0.02u,0.s) +Chars 6142 - 6163 [(rewrite~try_catch_ev).] 0.02 secs (0.02u,0.s) Chars 6164 - 6169 [evis.] 0.001 secs (0.001u,0.s) -Chars 6175 - 6197 [rewrite~try_catch_tau.] 0.012 secs (0.012u,0.s) -Chars 6198 - 6224 [repeat~rewrite~tau_euttge.] 0.012 secs (0.012u,0.s) -Chars 6225 - 6235 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6236 - 6240 [Qed.] 0.012 secs (0.012u,0.s) -Chars 6242 - 6621 [Lemma~throw_prefix_bind_decomp...] 0.004 secs (0.004u,0.s) +Chars 6175 - 6197 [(rewrite~try_catch_tau).] 0.016 secs (0.016u,0.s) +Chars 6198 - 6224 [(repeat~rewrite~tau_euttge).] 0.017 secs (0.017u,0.s) +Chars 6225 - 6235 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6236 - 6240 [Qed.] 0.018 secs (0.017u,0.s) +Chars 6242 - 6621 [Lemma~throw_prefix_bind_decomp...] 0.002 secs (0.002u,0.s) Chars 6622 - 6628 [Proof.] 0. secs (0.u,0.s) -Chars 6631 - 6646 [intros~E~Err~R.] 0. secs (0.u,0.s) +Chars 6631 - 6646 [(intros~E~Err~R).] 0. secs (0.u,0.s) Chars 6647 - 6659 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 6660 - 6667 [intros.] 0. secs (0.u,0.s) -Chars 6670 - 6740 [destruct~(observe~t)~eqn:Heq;~...] 0.001 secs (0.001u,0.s) +Chars 6660 - 6667 [(intros).] 0. secs (0.u,0.s) +Chars 6670 - 6740 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) Chars 6743 - 6744 [-] 0. secs (0.u,0.s) -Chars 6745 - 6757 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 6758 - 6783 [rewrite~throw_prefix_ret.] 0.017 secs (0.017u,0.s) -Chars 6784 - 6803 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 6745 - 6757 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 6758 - 6783 [(rewrite~throw_prefix_ret).] 0.025 secs (0.025u,0.s) +Chars 6784 - 6803 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) Chars 6804 - 6809 [eret.] 0. secs (0.u,0.s) Chars 6813 - 6814 [-] 0. secs (0.u,0.s) -Chars 6815 - 6827 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 6828 - 6853 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) -Chars 6854 - 6871 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 6815 - 6827 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) +Chars 6828 - 6853 [(rewrite~throw_prefix_tau).] 0.024 secs (0.023u,0.s) +Chars 6854 - 6871 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) Chars 6872 - 6877 [etau.] 0. secs (0.u,0.s) Chars 6880 - 6881 [-] 0. secs (0.u,0.s) -Chars 6882 - 6893 [destruct~e.] 0. secs (0.u,0.s) +Chars 6882 - 6893 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 6898 - 6899 [+] 0. secs (0.u,0.s) -Chars 6900 - 6912 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 6913 - 6924 [destruct~e.] 0.001 secs (0.001u,0.s) -Chars 6925 - 6950 [rewrite~throw_prefix_exc.] 0.017 secs (0.016u,0.s) -Chars 6951 - 6970 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 6900 - 6912 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 6913 - 6924 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 6925 - 6950 [(rewrite~throw_prefix_exc).] 0.024 secs (0.024u,0.s) +Chars 6951 - 6970 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) Chars 6971 - 6976 [bcbn.] 0. secs (0.u,0.s) Chars 6977 - 6982 [evis.] 0.001 secs (0.001u,0.s) -Chars 6990 - 6995 [easy.] 0.003 secs (0.003u,0.s) +Chars 6990 - 6995 [easy.] 0.004 secs (0.004u,0.s) Chars 7001 - 7002 [+] 0. secs (0.u,0.s) -Chars 7003 - 7015 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 7016 - 7040 [rewrite~throw_prefix_ev.] 0.018 secs (0.018u,0.s) -Chars 7041 - 7058 [rewrite~bind_vis.] 0.017 secs (0.016u,0.s) -Chars 7059 - 7064 [evis.] 0.001 secs (0.001u,0.s) -Chars 7072 - 7079 [intros.] 0. secs (0.u,0.s) -Chars 7080 - 7099 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) -Chars 7100 - 7110 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7112 - 7116 [Qed.] 0.014 secs (0.014u,0.s) -Chars 7118 - 7617 [Lemma~try_catch_to_throw_prefi...] 0. secs (0.u,0.s) +Chars 7003 - 7015 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 7016 - 7040 [(rewrite~throw_prefix_ev).] 0.024 secs (0.023u,0.s) +Chars 7041 - 7058 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) +Chars 7059 - 7064 [evis.] 0.002 secs (0.002u,0.s) +Chars 7072 - 7079 [(intros).] 0. secs (0.u,0.s) +Chars 7080 - 7099 [(rewrite~tau_euttge).] 0.009 secs (0.009u,0.s) +Chars 7100 - 7110 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7112 - 7116 [Qed.] 0.018 secs (0.018u,0.s) +Chars 7118 - 7617 [Lemma~try_catch_to_throw_prefi...] 0.001 secs (0.001u,0.s) Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) -Chars 7627 - 7634 [intros.] 0. secs (0.u,0.s) +Chars 7627 - 7634 [(intros).] 0. secs (0.u,0.s) Chars 7635 - 7647 [revert~ttry.] 0. secs (0.u,0.s) -Chars 7648 - 7660 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7664 - 7671 [intros.] 0. secs (0.u,0.s) -Chars 7672 - 7745 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) +Chars 7648 - 7660 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 7664 - 7671 [(intros).] 0. secs (0.u,0.s) +Chars 7672 - 7745 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) Chars 7748 - 7749 [-] 0. secs (0.u,0.s) -Chars 7750 - 7762 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 7763 - 7785 [rewrite~try_catch_ret.] 0.014 secs (0.013u,0.s) -Chars 7786 - 7811 [rewrite~throw_prefix_ret.] 0.017 secs (0.016u,0.s) -Chars 7812 - 7831 [rewrite~bind_ret_l.] 0.018 secs (0.016u,0.s) +Chars 7750 - 7762 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) +Chars 7763 - 7785 [(rewrite~try_catch_ret).] 0.018 secs (0.018u,0.s) +Chars 7786 - 7811 [(rewrite~throw_prefix_ret).] 0.023 secs (0.022u,0.s) +Chars 7812 - 7831 [(rewrite~bind_ret_l).] 0.02 secs (0.02u,0.s) Chars 7837 - 7842 [eret.] 0. secs (0.u,0.s) Chars 7846 - 7847 [-] 0. secs (0.u,0.s) -Chars 7848 - 7860 [rewrite~Heq.] 0.016 secs (0.016u,0.s) -Chars 7861 - 7883 [rewrite~try_catch_tau.] 0.014 secs (0.014u,0.s) -Chars 7884 - 7909 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) -Chars 7910 - 7927 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 7848 - 7860 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) +Chars 7861 - 7883 [(rewrite~try_catch_tau).] 0.018 secs (0.018u,0.s) +Chars 7884 - 7909 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 7910 - 7927 [(rewrite~bind_tau).] 0.02 secs (0.02u,0.s) Chars 7932 - 7937 [etau.] 0. secs (0.u,0.s) Chars 7941 - 7942 [-] 0. secs (0.u,0.s) -Chars 7943 - 7954 [destruct~e.] 0. secs (0.u,0.s) +Chars 7943 - 7954 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 7959 - 7960 [+] 0. secs (0.u,0.s) -Chars 7961 - 7972 [destruct~e.] 0. secs (0.u,0.s) -Chars 7973 - 7985 [rewrite~Heq.] 0.016 secs (0.015u,0.s) -Chars 7986 - 8008 [rewrite~try_catch_exc.] 0.014 secs (0.014u,0.s) -Chars 8009 - 8034 [rewrite~throw_prefix_exc.] 0.016 secs (0.016u,0.s) -Chars 8035 - 8054 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 7961 - 7972 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 7973 - 7985 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) +Chars 7986 - 8008 [(rewrite~try_catch_exc).] 0.019 secs (0.018u,0.s) +Chars 8009 - 8034 [(rewrite~throw_prefix_exc).] 0.022 secs (0.022u,0.s) +Chars 8035 - 8054 [(rewrite~bind_ret_l).] 0.02 secs (0.019u,0.s) Chars 8061 - 8073 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8079 - 8080 [+] 0. secs (0.u,0.s) -Chars 8081 - 8093 [rewrite~Heq.] 0.016 secs (0.016u,0.s) -Chars 8094 - 8115 [rewrite~try_catch_ev.] 0.014 secs (0.014u,0.s) -Chars 8116 - 8140 [rewrite~throw_prefix_ev.] 0.017 secs (0.017u,0.s) -Chars 8141 - 8158 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) -Chars 8159 - 8185 [setoid_rewrite~tau_euttge.] 0.017 secs (0.017u,0.s) +Chars 8081 - 8093 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) +Chars 8094 - 8115 [(rewrite~try_catch_ev).] 0.018 secs (0.018u,0.s) +Chars 8116 - 8140 [(rewrite~throw_prefix_ev).] 0.022 secs (0.022u,0.s) +Chars 8141 - 8158 [(rewrite~bind_vis).] 0.021 secs (0.021u,0.s) +Chars 8159 - 8185 [setoid_rewrite~tau_euttge.] 0.023 secs (0.022u,0.s) Chars 8192 - 8197 [evis.] 0. secs (0.u,0.s) -Chars 8199 - 8203 [Qed.] 0.013 secs (0.013u,0.s) +Chars 8199 - 8203 [Qed.] 0.019 secs (0.018u,0.s) Chars 8205 - 8472 [Lemma~throw_prefix_of_try_catc...] 0. secs (0.u,0.s) Chars 8473 - 8479 [Proof.] 0. secs (0.u,0.s) -Chars 8482 - 8489 [intros.] 0. secs (0.u,0.s) +Chars 8482 - 8489 [(intros).] 0. secs (0.u,0.s) Chars 8490 - 8502 [revert~ttry.] 0. secs (0.u,0.s) Chars 8503 - 8515 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 8519 - 8526 [intros.] 0. secs (0.u,0.s) -Chars 8527 - 8600 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) +Chars 8519 - 8526 [(intros).] 0. secs (0.u,0.s) +Chars 8527 - 8600 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) Chars 8603 - 8604 [-] 0. secs (0.u,0.s) -Chars 8605 - 8617 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 8618 - 8637 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 8638 - 8667 [repeat~rewrite~try_catch_ret.] 0.031 secs (0.031u,0.s) -Chars 8668 - 8693 [rewrite~throw_prefix_ret.] 0.014 secs (0.014u,0.s) +Chars 8605 - 8617 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) +Chars 8618 - 8637 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 8638 - 8667 [(repeat~rewrite~try_catch_ret).] 0.042 secs (0.042u,0.s) +Chars 8668 - 8693 [(rewrite~throw_prefix_ret).] 0.018 secs (0.018u,0.s) Chars 8698 - 8703 [eret.] 0. secs (0.u,0.s) Chars 8707 - 8708 [-] 0. secs (0.u,0.s) -Chars 8709 - 8721 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 8722 - 8739 [rewrite~bind_tau.] 0.017 secs (0.017u,0.s) -Chars 8740 - 8769 [repeat~rewrite~try_catch_tau.] 0.033 secs (0.033u,0.s) -Chars 8770 - 8795 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 8709 - 8721 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 8722 - 8739 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) +Chars 8740 - 8769 [(repeat~rewrite~try_catch_tau).] 0.045 secs (0.044u,0.s) +Chars 8770 - 8795 [(rewrite~throw_prefix_tau).] 0.02 secs (0.02u,0.s) Chars 8800 - 8805 [etau.] 0. secs (0.u,0.s) Chars 8809 - 8810 [-] 0. secs (0.u,0.s) -Chars 8811 - 8822 [destruct~e.] 0. secs (0.u,0.s) +Chars 8811 - 8822 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 8827 - 8828 [+] 0. secs (0.u,0.s) -Chars 8829 - 8840 [destruct~e.] 0. secs (0.u,0.s) -Chars 8841 - 8853 [rewrite~Heq.] 0.018 secs (0.018u,0.s) -Chars 8854 - 8871 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) -Chars 8872 - 8901 [repeat~rewrite~try_catch_exc.] 0.032 secs (0.031u,0.s) +Chars 8829 - 8840 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 8841 - 8853 [(rewrite~Heq).] 0.026 secs (0.025u,0.s) +Chars 8854 - 8871 [(rewrite~bind_vis).] 0.025 secs (0.024u,0.s) +Chars 8872 - 8901 [(repeat~rewrite~try_catch_exc).] 0.045 secs (0.045u,0.s) Chars 8908 - 8920 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8926 - 8927 [+] 0. secs (0.u,0.s) -Chars 8928 - 8940 [rewrite~Heq.] 0.018 secs (0.018u,0.s) -Chars 8941 - 8958 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) -Chars 8959 - 8987 [repeat~rewrite~try_catch_ev.] 0.034 secs (0.034u,0.s) -Chars 8988 - 9012 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) -Chars 9019 - 9051 [setoid_rewrite~throw_prefix_tau.] 0.084 secs (0.084u,0.s) -Chars 9058 - 9091 [repeat~setoid_rewrite~tau_euttge.] 0.048 secs (0.048u,0.s) +Chars 8928 - 8940 [(rewrite~Heq).] 0.025 secs (0.024u,0.s) +Chars 8941 - 8958 [(rewrite~bind_vis).] 0.024 secs (0.023u,0.s) +Chars 8959 - 8987 [(repeat~rewrite~try_catch_ev).] 0.047 secs (0.047u,0.s) +Chars 8988 - 9012 [(rewrite~throw_prefix_ev).] 0.022 secs (0.021u,0.s) +Chars 9019 - 9051 [setoid_rewrite~throw_prefix_tau.] 0.109 secs (0.107u,0.001s) +Chars 9058 - 9091 [(repeat~setoid_rewrite~tau_eut...] 0.062 secs (0.061u,0.s) Chars 9098 - 9103 [evis.] 0. secs (0.u,0.s) -Chars 9105 - 9109 [Qed.] 0.017 secs (0.017u,0.s) -Chars 9111 - 9475 [Lemma~throw_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) +Chars 9105 - 9109 [Qed.] 0.025 secs (0.024u,0.s) +Chars 9111 - 9475 [Lemma~throw_prefix_bind~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 9476 - 9482 [Proof.] 0. secs (0.u,0.s) -Chars 9485 - 9492 [intros.] 0. secs (0.u,0.s) +Chars 9485 - 9492 [(intros).] 0. secs (0.u,0.s) Chars 9493 - 9502 [revert~t.] 0. secs (0.u,0.s) -Chars 9503 - 9515 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 9519 - 9526 [intros.] 0. secs (0.u,0.s) -Chars 9527 - 9597 [destruct~(observe~t)~eqn:Heq;~...] 0.001 secs (0.001u,0.s) +Chars 9503 - 9515 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 9519 - 9526 [(intros).] 0. secs (0.u,0.s) +Chars 9527 - 9597 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) Chars 9600 - 9601 [-] 0. secs (0.u,0.s) -Chars 9602 - 9614 [rewrite~Heq.] 0.021 secs (0.021u,0.s) -Chars 9615 - 9640 [rewrite~throw_prefix_ret.] 0.019 secs (0.019u,0.s) -Chars 9641 - 9667 [repeat~rewrite~bind_ret_l.] 0.035 secs (0.034u,0.s) +Chars 9602 - 9614 [(rewrite~Heq).] 0.028 secs (0.028u,0.s) +Chars 9615 - 9640 [(rewrite~throw_prefix_ret).] 0.026 secs (0.026u,0.s) +Chars 9641 - 9667 [(repeat~rewrite~bind_ret_l).] 0.048 secs (0.048u,0.s) Chars 9672 - 9684 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 9688 - 9689 [-] 0. secs (0.u,0.s) -Chars 9690 - 9702 [rewrite~Heq.] 0.018 secs (0.018u,0.s) -Chars 9703 - 9728 [rewrite~throw_prefix_tau.] 0.019 secs (0.019u,0.s) -Chars 9729 - 9753 [repeat~rewrite~bind_tau.] 0.035 secs (0.035u,0.s) -Chars 9754 - 9779 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 9690 - 9702 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) +Chars 9703 - 9728 [(rewrite~throw_prefix_tau).] 0.026 secs (0.026u,0.s) +Chars 9729 - 9753 [(repeat~rewrite~bind_tau).] 0.048 secs (0.048u,0.s) +Chars 9754 - 9779 [(rewrite~throw_prefix_tau).] 0.022 secs (0.021u,0.s) Chars 9784 - 9789 [etau.] 0. secs (0.u,0.s) Chars 9793 - 9794 [-] 0. secs (0.u,0.s) -Chars 9795 - 9806 [destruct~e.] 0. secs (0.u,0.s) +Chars 9795 - 9806 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 9811 - 9812 [+] 0. secs (0.u,0.s) -Chars 9813 - 9824 [destruct~e.] 0.001 secs (0.001u,0.s) -Chars 9825 - 9837 [rewrite~Heq.] 0.018 secs (0.018u,0.s) -Chars 9838 - 9863 [rewrite~throw_prefix_exc.] 0.019 secs (0.019u,0.s) -Chars 9864 - 9881 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) -Chars 9882 - 9907 [rewrite~throw_prefix_exc.] 0.015 secs (0.015u,0.s) -Chars 9914 - 9933 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 9813 - 9824 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 9825 - 9837 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 9838 - 9863 [(rewrite~throw_prefix_exc).] 0.026 secs (0.026u,0.s) +Chars 9864 - 9881 [(rewrite~bind_vis).] 0.022 secs (0.022u,0.s) +Chars 9882 - 9907 [(rewrite~throw_prefix_exc).] 0.02 secs (0.02u,0.s) +Chars 9914 - 9933 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) Chars 9934 - 9939 [eret.] 0. secs (0.u,0.s) Chars 9945 - 9946 [+] 0. secs (0.u,0.s) -Chars 9947 - 9959 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 9960 - 9984 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) -Chars 9985 - 10009 [repeat~rewrite~bind_vis.] 0.036 secs (0.036u,0.s) -Chars 10010 - 10034 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) -Chars 10041 - 10046 [evis.] 0.001 secs (0.001u,0.s) -Chars 10047 - 10064 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) -Chars 10065 - 10070 [step.] 0.002 secs (0.002u,0.s) +Chars 9947 - 9959 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 9960 - 9984 [(rewrite~throw_prefix_ev).] 0.027 secs (0.027u,0.s) +Chars 9985 - 10009 [(repeat~rewrite~bind_vis).] 0.05 secs (0.05u,0.s) +Chars 10010 - 10034 [(rewrite~throw_prefix_ev).] 0.022 secs (0.022u,0.s) +Chars 10041 - 10046 [evis.] 0.002 secs (0.002u,0.s) +Chars 10047 - 10064 [(rewrite~bind_tau).] 0.021 secs (0.02u,0.s) +Chars 10065 - 10070 [step.] 0.003 secs (0.003u,0.s) Chars 10071 - 10076 [taus.] 0. secs (0.u,0.s) -Chars 10077 - 10087 [apply~CIH.] 0. secs (0.u,0.s) -Chars 10090 - 10094 [Qed.] 0.018 secs (0.018u,0.s) -Chars 10096 - 10694 [Lemma~throw_prefix_iter~:~~~fo...] 0.007 secs (0.007u,0.s) +Chars 10077 - 10087 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 10090 - 10094 [Qed.] 0.027 secs (0.026u,0.s) +Chars 10096 - 10694 [Lemma~throw_prefix_iter~:~~~fo...] 0.002 secs (0.002u,0.s) Chars 10695 - 10701 [Proof.] 0. secs (0.u,0.s) -Chars 10704 - 10721 [intros~E~Err~A~B.] 0. secs (0.u,0.s) -Chars 10722 - 10734 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 10735 - 10742 [intros.] 0. secs (0.u,0.s) -Chars 10745 - 10785 [setoid_rewrite~unfold_iter_ktr...] 0.051 secs (0.05u,0.s) -Chars 10788 - 10869 [destruct~(observe~(body~init))...] 0.003 secs (0.003u,0.s) +Chars 10704 - 10721 [(intros~E~Err~A~B).] 0. secs (0.u,0.s) +Chars 10722 - 10734 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 10735 - 10742 [(intros).] 0. secs (0.u,0.s) +Chars 10745 - 10785 [setoid_rewrite~unfold_iter_ktr...] 0.064 secs (0.063u,0.s) +Chars 10788 - 10869 [(destruct~(observe~(body~init)...] 0.005 secs (0.005u,0.s) Chars 10872 - 10873 [-] 0. secs (0.u,0.s) -Chars 10874 - 10891 [rewrite~Heq~~at~1.] 0.02 secs (0.02u,0.s) -Chars 10892 - 10911 [rewrite~bind_ret_l.] 0.02 secs (0.02u,0.s) -Chars 10912 - 10937 [setoid_rewrite~bind_bind.] 0.042 secs (0.042u,0.s) -Chars 10943 - 10960 [rewrite~Heq~~at~1.] 0.024 secs (0.024u,0.s) -Chars 10961 - 10986 [rewrite~throw_prefix_ret.] 0.024 secs (0.024u,0.s) -Chars 10987 - 11006 [rewrite~bind_ret_l.] 0.023 secs (0.022u,0.s) -Chars 11011 - 11042 [destruct~r;~rewrite~bind_ret_l.] 0.042 secs (0.042u,0.s) +Chars 10874 - 10891 [(rewrite~Heq~~at~1).] 0.028 secs (0.028u,0.s) +Chars 10892 - 10911 [(rewrite~bind_ret_l).] 0.027 secs (0.026u,0.s) +Chars 10912 - 10937 [setoid_rewrite~bind_bind.] 0.054 secs (0.054u,0.s) +Chars 10943 - 10960 [(rewrite~Heq~~at~1).] 0.034 secs (0.034u,0.s) +Chars 10961 - 10986 [(rewrite~throw_prefix_ret).] 0.033 secs (0.032u,0.s) +Chars 10987 - 11006 [(rewrite~bind_ret_l).] 0.03 secs (0.03u,0.s) +Chars 11011 - 11042 [(destruct~r;~rewrite~bind_ret_l).] 0.059 secs (0.058u,0.s) Chars 11047 - 11048 [+] 0. secs (0.u,0.s) -Chars 11049 - 11074 [rewrite~throw_prefix_tau.] 0.017 secs (0.017u,0.s) +Chars 11049 - 11074 [(rewrite~throw_prefix_tau).] 0.023 secs (0.023u,0.s) Chars 11075 - 11080 [etau.] 0. secs (0.u,0.s) Chars 11086 - 11087 [+] 0. secs (0.u,0.s) -Chars 11088 - 11113 [rewrite~throw_prefix_ret.] 0.015 secs (0.014u,0.s) +Chars 11088 - 11113 [(rewrite~throw_prefix_ret).] 0.021 secs (0.021u,0.s) Chars 11114 - 11119 [eret.] 0. secs (0.u,0.s) Chars 11123 - 11124 [-] 0. secs (0.u,0.s) -Chars 11125 - 11142 [rewrite~Heq~~at~1.] 0.021 secs (0.021u,0.s) -Chars 11143 - 11168 [setoid_rewrite~bind_bind.] 0.044 secs (0.044u,0.s) -Chars 11169 - 11186 [rewrite~Heq~~at~1.] 0.024 secs (0.024u,0.s) -Chars 11191 - 11216 [rewrite~throw_prefix_tau.] 0.025 secs (0.025u,0.s) -Chars 11217 - 11241 [repeat~rewrite~bind_tau.] 0.05 secs (0.049u,0.s) -Chars 11242 - 11267 [rewrite~throw_prefix_tau.] 0.02 secs (0.02u,0.s) +Chars 11125 - 11142 [(rewrite~Heq~~at~1).] 0.03 secs (0.03u,0.s) +Chars 11143 - 11168 [setoid_rewrite~bind_bind.] 0.058 secs (0.057u,0.s) +Chars 11169 - 11186 [(rewrite~Heq~~at~1).] 0.034 secs (0.034u,0.s) +Chars 11191 - 11216 [(rewrite~throw_prefix_tau).] 0.033 secs (0.032u,0.s) +Chars 11217 - 11241 [(repeat~rewrite~bind_tau).] 0.067 secs (0.066u,0.s) +Chars 11242 - 11267 [(rewrite~throw_prefix_tau).] 0.026 secs (0.026u,0.s) Chars 11272 - 11277 [etau.] 0.002 secs (0.002u,0.s) -Chars 11278 - 11316 [setoid_rewrite~throw_prefix_bi...] 0.046 secs (0.046u,0.s) -Chars 11317 - 11338 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 11344 - 11376 [destruct~u2~as~[[a|~b]|~e].] 0. secs (0.u,0.s) +Chars 11278 - 11316 [setoid_rewrite~throw_prefix_bi...] 0.059 secs (0.058u,0.s) +Chars 11317 - 11338 [(ebind;~intros;~subst).] 0.008 secs (0.008u,0.s) +Chars 11344 - 11376 [(destruct~u2~as~[[a|~b]|~e]).] 0.001 secs (0.001u,0.s) Chars 11381 - 11382 [+] 0. secs (0.u,0.s) -Chars 11383 - 11402 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 11403 - 11428 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 11429 - 11440 [step;~etau.] 0.002 secs (0.002u,0.s) +Chars 11383 - 11402 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 11403 - 11428 [(rewrite~throw_prefix_tau).] 0.019 secs (0.019u,0.s) +Chars 11429 - 11440 [(step;~etau).] 0.003 secs (0.003u,0.s) Chars 11446 - 11447 [+] 0. secs (0.u,0.s) -Chars 11448 - 11467 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 11468 - 11493 [rewrite~throw_prefix_ret.] 0.012 secs (0.012u,0.s) -Chars 11494 - 11505 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 11448 - 11467 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 11468 - 11493 [(rewrite~throw_prefix_ret).] 0.017 secs (0.016u,0.s) +Chars 11494 - 11505 [(step;~eret).] 0.003 secs (0.003u,0.s) Chars 11511 - 11512 [+] 0. secs (0.u,0.s) -Chars 11513 - 11532 [rewrite~bind_ret_l.] 0.016 secs (0.016u,0.s) -Chars 11533 - 11544 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 11513 - 11532 [(rewrite~bind_ret_l).] 0.024 secs (0.023u,0.s) +Chars 11533 - 11544 [(step;~eret).] 0.003 secs (0.003u,0.s) Chars 11548 - 11549 [-] 0. secs (0.u,0.s) -Chars 11550 - 11567 [rewrite~Heq~~at~1.] 0.021 secs (0.021u,0.s) -Chars 11568 - 11593 [setoid_rewrite~bind_bind.] 0.045 secs (0.044u,0.s) -Chars 11594 - 11611 [rewrite~Heq~~at~1.] 0.024 secs (0.024u,0.s) -Chars 11616 - 11627 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 11550 - 11567 [(rewrite~Heq~~at~1).] 0.029 secs (0.029u,0.s) +Chars 11568 - 11593 [setoid_rewrite~bind_bind.] 0.059 secs (0.057u,0.001s) +Chars 11594 - 11611 [(rewrite~Heq~~at~1).] 0.034 secs (0.033u,0.s) +Chars 11616 - 11627 [(destruct~e).] 0.002 secs (0.002u,0.s) Chars 11632 - 11633 [+] 0. secs (0.u,0.s) -Chars 11634 - 11645 [destruct~e.] 0.001 secs (0.001u,0.s) -Chars 11646 - 11663 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) -Chars 11664 - 11689 [rewrite~throw_prefix_exc.] 0.02 secs (0.02u,0.s) -Chars 11696 - 11728 [setoid_rewrite~throw_prefix_exc.] 0.077 secs (0.076u,0.s) -Chars 11729 - 11755 [repeat~rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) +Chars 11634 - 11645 [(destruct~e).] 0.004 secs (0.003u,0.s) +Chars 11646 - 11663 [(rewrite~bind_vis).] 0.028 secs (0.027u,0.s) +Chars 11664 - 11689 [(rewrite~throw_prefix_exc).] 0.027 secs (0.027u,0.s) +Chars 11696 - 11728 [setoid_rewrite~throw_prefix_exc.] 0.1 secs (0.098u,0.001s) +Chars 11729 - 11755 [(repeat~rewrite~bind_ret_l).] 0.062 secs (0.061u,0.s) Chars 11762 - 11767 [eret.] 0. secs (0.u,0.s) Chars 11773 - 11774 [+] 0. secs (0.u,0.s) -Chars 11775 - 11792 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) -Chars 11793 - 11817 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) -Chars 11818 - 11849 [setoid_rewrite~throw_prefix_ev.] 0.091 secs (0.091u,0.s) -Chars 11856 - 11873 [rewrite~bind_vis.] 0.024 secs (0.024u,0.s) -Chars 11874 - 11898 [setoid_rewrite~bind_tau.] 0.051 secs (0.05u,0.s) -Chars 11899 - 11904 [evis.] 0.001 secs (0.001u,0.s) -Chars 11905 - 11916 [step;~etau.] 0.004 secs (0.004u,0.s) -Chars 11924 - 11950 [rewrite~throw_prefix_bind.] 0.015 secs (0.015u,0.s) -Chars 11951 - 11972 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 11980 - 12013 [destruct~u2~as~[[a|~b]|~e'].] 0. secs (0.u,0.s) +Chars 11775 - 11792 [(rewrite~bind_vis).] 0.027 secs (0.027u,0.s) +Chars 11793 - 11817 [(rewrite~throw_prefix_ev).] 0.027 secs (0.027u,0.s) +Chars 11818 - 11849 [setoid_rewrite~throw_prefix_ev.] 0.116 secs (0.114u,0.001s) +Chars 11856 - 11873 [(rewrite~bind_vis).] 0.033 secs (0.033u,0.s) +Chars 11874 - 11898 [setoid_rewrite~bind_tau.] 0.066 secs (0.065u,0.s) +Chars 11899 - 11904 [evis.] 0.003 secs (0.003u,0.s) +Chars 11905 - 11916 [(step;~etau).] 0.005 secs (0.005u,0.s) +Chars 11924 - 11950 [(rewrite~throw_prefix_bind).] 0.02 secs (0.02u,0.s) +Chars 11951 - 11972 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) +Chars 11980 - 12013 [(destruct~u2~as~[[a|~b]|~e']).] 0. secs (0.u,0.s) Chars 12020 - 12021 [*] 0. secs (0.u,0.s) -Chars 12022 - 12041 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 12042 - 12067 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 12068 - 12079 [step;~etau.] 0.002 secs (0.002u,0.s) +Chars 12022 - 12041 [(rewrite~bind_ret_l).] 0.024 secs (0.024u,0.s) +Chars 12042 - 12067 [(rewrite~throw_prefix_tau).] 0.019 secs (0.019u,0.s) +Chars 12068 - 12079 [(step;~etau).] 0.003 secs (0.003u,0.s) Chars 12087 - 12088 [*] 0. secs (0.u,0.s) -Chars 12089 - 12108 [rewrite~bind_ret_l.] 0.017 secs (0.016u,0.s) -Chars 12109 - 12134 [rewrite~throw_prefix_ret.] 0.012 secs (0.012u,0.s) -Chars 12143 - 12154 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 12089 - 12108 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 12109 - 12134 [(rewrite~throw_prefix_ret).] 0.016 secs (0.016u,0.s) +Chars 12143 - 12154 [(step;~eret).] 0.003 secs (0.003u,0.s) Chars 12162 - 12163 [*] 0. secs (0.u,0.s) -Chars 12164 - 12183 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 12184 - 12195 [step;~eret.] 0.002 secs (0.002u,0.s) -Chars 12197 - 12201 [Qed.] 0.063 secs (0.063u,0.s) +Chars 12164 - 12183 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 12184 - 12195 [(step;~eret).] 0.003 secs (0.003u,0.s) +Chars 12197 - 12201 [Qed.] 0.085 secs (0.083u,0.001s) diff --git a/theories/Events/FailFacts.v.timing b/theories/Events/FailFacts.v.timing index 652ea903..8ace4ed8 100644 --- a/theories/Events/FailFacts.v.timing +++ b/theories/Events/FailFacts.v.timing @@ -1,5 +1,5 @@ -Chars 58 - 100 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.002s) -Chars 102 - 430 [From~ITree~Require~Import~Basi...] 0.061 secs (0.051u,0.009s) +Chars 58 - 100 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 102 - 430 [From~ITree~Require~Import~Basi...] 0.09 secs (0.075u,0.014s) Chars 432 - 454 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 455 - 489 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 490 - 519 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) @@ -7,194 +7,194 @@ Chars 521 - 535 [Import~Monads.] 0. secs (0.u,0.s) Chars 537 - 551 [Section~FailT.] 0. secs (0.u,0.s) Chars 555 - 641 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) Chars 645 - 724 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) -Chars 728 - 929 [#[global]~Instance~failT_fun~:...] 0.002 secs (0.002u,0.s) +Chars 728 - 929 [#[global]~Instance~failT_fun~:...] 0. secs (0.u,0.s) Chars 933 - 1179 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) -Chars 1183 - 1815 [#[global]~Instance~failT_iter~...] 0. secs (0.u,0.s) +Chars 1183 - 1815 [#[global]~Instance~failT_iter~...] 0.001 secs (0.001u,0.s) Chars 1817 - 1827 [End~FailT.] 0. secs (0.u,0.s) Chars 1829 - 1847 [Section~FailTLaws.] 0. secs (0.u,0.s) Chars 1851 - 1942 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) Chars 1946 - 2017 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) Chars 2020 - 2026 [Proof.] 0. secs (0.u,0.s) -Chars 2031 - 2052 [apply~Reflexive_eqit.] 0. secs (0.u,0.s) -Chars 2057 - 2073 [intros~[];~auto.] 0. secs (0.u,0.s) +Chars 2031 - 2052 [(apply~Reflexive_eqit).] 0. secs (0.u,0.s) +Chars 2057 - 2073 [(intros~[];~auto).] 0. secs (0.u,0.s) Chars 2076 - 2080 [Qed.] 0. secs (0.u,0.s) Chars 2084 - 2155 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) Chars 2158 - 2164 [Proof.] 0. secs (0.u,0.s) -Chars 2169 - 2190 [apply~Symmetric_eqit.] 0. secs (0.u,0.s) -Chars 2195 - 2214 [intros~[]~[];~auto.] 0. secs (0.u,0.s) +Chars 2169 - 2190 [(apply~Symmetric_eqit).] 0. secs (0.u,0.s) +Chars 2195 - 2214 [(intros~[]~[];~auto).] 0. secs (0.u,0.s) Chars 2217 - 2221 [Qed.] 0. secs (0.u,0.s) Chars 2225 - 2298 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 2301 - 2307 [Proof.] 0. secs (0.u,0.s) -Chars 2312 - 2334 [apply~Transitive_eqit.] 0. secs (0.u,0.s) -Chars 2339 - 2394 [intros~[]~[]~[]~?~?;~subst;~cb...] 0.001 secs (0.001u,0.s) -Chars 2397 - 2401 [Qed.] 0. secs (0.u,0.s) +Chars 2312 - 2334 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) +Chars 2339 - 2394 [(intros~[]~[]~[]~?~?;~subst;~c...] 0.002 secs (0.002u,0.s) +Chars 2397 - 2401 [Qed.] 0.001 secs (0.001u,0.s) Chars 2405 - 2480 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2483 - 2489 [Proof.] 0. secs (0.u,0.s) -Chars 2494 - 2519 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2494 - 2519 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 2522 - 2526 [Qed.] 0. secs (0.u,0.s) Chars 2530 - 2597 [#[global]~Instance~MonadLaws_f...] 0. secs (0.u,0.s) Chars 2600 - 2606 [Proof.] 0. secs (0.u,0.s) -Chars 2611 - 2622 [split;~cbn.] 0. secs (0.u,0.s) +Chars 2611 - 2622 [(split;~cbn).] 0. secs (0.u,0.s) Chars 2627 - 2628 [-] 0. secs (0.u,0.s) -Chars 2629 - 2674 [cbn;~intros;~rewrite~bind_ret_...] 0.001 secs (0.001u,0.s) +Chars 2629 - 2674 [(cbn;~intros;~rewrite~bind_ret...] 0.002 secs (0.002u,0.s) Chars 2679 - 2680 [-] 0. secs (0.u,0.s) -Chars 2681 - 2693 [cbn;~intros.] 0. secs (0.u,0.s) -Chars 2700 - 2731 [rewrite~<-~(bind_ret_r~x)~~at~2.] 0.001 secs (0.001u,0.s) -Chars 2738 - 2782 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) +Chars 2681 - 2693 [(cbn;~intros).] 0. secs (0.u,0.s) +Chars 2700 - 2731 [(rewrite~<-~(bind_ret_r~x)~~at...] 0.002 secs (0.002u,0.s) +Chars 2738 - 2782 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) Chars 2787 - 2788 [-] 0. secs (0.u,0.s) -Chars 2789 - 2820 [intros;~cbn;~rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 2827 - 2858 [eapply~eutt_eq_bind;~intros~[].] 0. secs (0.u,0.s) +Chars 2789 - 2820 [(intros;~cbn;~rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 2827 - 2858 [(eapply~eutt_eq_bind;~intros~[]).] 0. secs (0.u,0.s) Chars 2866 - 2867 [+] 0. secs (0.u,0.s) -Chars 2868 - 2912 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) +Chars 2868 - 2912 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) Chars 2920 - 2921 [+] 0. secs (0.u,0.s) -Chars 2922 - 2954 [rewrite~bind_ret_l;~reflexivity.] 0. secs (0.u,0.s) +Chars 2922 - 2954 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) Chars 2959 - 2960 [-] 0. secs (0.u,0.s) -Chars 2961 - 2979 [repeat~intro;~cbn.] 0. secs (0.u,0.s) -Chars 2986 - 3015 [eapply~eutt_bind_eutt;~eauto.] 0.029 secs (0.029u,0.s) -Chars 3022 - 3075 [intros~[]~[]~REL;~cbn~in~*;~su...] 0. secs (0.u,0.s) +Chars 2961 - 2979 [(repeat~intro;~cbn).] 0. secs (0.u,0.s) +Chars 2986 - 3015 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 3022 - 3075 [(intros~[]~[]~REL;~cbn~in~*;~s...] 0.037 secs (0.036u,0.s) Chars 3082 - 3083 [+] 0. secs (0.u,0.s) -Chars 3084 - 3093 [apply~H0.] 0. secs (0.u,0.s) +Chars 3084 - 3093 [(apply~H0).] 0. secs (0.u,0.s) Chars 3100 - 3101 [+] 0. secs (0.u,0.s) Chars 3102 - 3114 [reflexivity.] 0. secs (0.u,0.s) -Chars 3117 - 3121 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3117 - 3121 [Qed.] 0.004 secs (0.004u,0.s) Chars 3125 - 3139 [End~FailTLaws.] 0. secs (0.u,0.s) Chars 3291 - 3455 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.001u,0.s) Chars 3456 - 3496 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) Chars 3539 - 3787 [Definition~_interp_fail~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 3810 - 3948 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) Chars 3949 - 3955 [Proof.] 0. secs (0.u,0.s) -Chars 3958 - 3984 [unfold~interp_fail,~interp.] 0. secs (0.u,0.s) -Chars 3985 - 4046 [unfold~Basics.iter,~failT_iter...] 0. secs (0.u,0.s) -Chars 4049 - 4069 [rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) -Chars 4070 - 4074 [cbn.] 0. secs (0.u,0.s) -Chars 4077 - 4098 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) -Chars 4101 - 4175 [cbn;~repeat~(rewrite~?bind_bin...] 0.029 secs (0.025u,0.004s) -Chars 4178 - 4252 [cbn;~repeat~(rewrite~?bind_bin...] 0.024 secs (0.024u,0.s) -Chars 4255 - 4329 [cbn;~repeat~(rewrite~?bind_bin...] 0.032 secs (0.032u,0.s) -Chars 4332 - 4405 [apply~eq_itree_bind~with~(UU~:...] 0.001 secs (0.001u,0.s) -Chars 4409 - 4428 [destruct~x~as~[x|~].] 0. secs (0.u,0.s) +Chars 3958 - 3984 [(unfold~interp_fail,~interp).] 0. secs (0.u,0.s) +Chars 3985 - 4046 [(unfold~Basics.iter,~failT_ite...] 0. secs (0.u,0.s) +Chars 4049 - 4069 [(rewrite~unfold_iter).] 0.006 secs (0.006u,0.s) +Chars 4070 - 4074 [(cbn).] 0. secs (0.u,0.s) +Chars 4077 - 4098 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) +Chars 4101 - 4175 [(cbn;~repeat~(rewrite~?bind_bi...] 0.039 secs (0.031u,0.007s) +Chars 4178 - 4252 [(cbn;~repeat~(rewrite~?bind_bi...] 0.036 secs (0.035u,0.s) +Chars 4255 - 4329 [(cbn;~repeat~(rewrite~?bind_bi...] 0.044 secs (0.044u,0.s) +Chars 4332 - 4405 [(apply~eq_itree_bind~with~(UU~...] 0.001 secs (0.001u,0.s) +Chars 4409 - 4428 [(destruct~x~as~[x|~]).] 0. secs (0.u,0.s) Chars 4431 - 4432 [-] 0. secs (0.u,0.s) -Chars 4433 - 4465 [rewrite~bind_ret_l;~reflexivity.] 0.005 secs (0.005u,0.s) +Chars 4433 - 4465 [(rewrite~bind_ret_l;~reflexivi...] 0.007 secs (0.007u,0.s) Chars 4468 - 4469 [-] 0. secs (0.u,0.s) -Chars 4470 - 4502 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) -Chars 4503 - 4507 [Qed.] 0.013 secs (0.013u,0.s) -Chars 4509 - 4683 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 4470 - 4502 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) +Chars 4503 - 4507 [Qed.] 0.02 secs (0.019u,0.s) +Chars 4509 - 4683 [#[global]~Instance~interp_fail...] 0.001 secs (0.u,0.s) Chars 4684 - 4690 [Proof.] 0. secs (0.u,0.s) -Chars 4693 - 4704 [repeat~red.] 0. secs (0.u,0.s) -Chars 4708 - 4720 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4724 - 4738 [intros~s~t~EQ.] 0. secs (0.u,0.s) -Chars 4741 - 4770 [rewrite~2!unfold_interp_fail.] 0.022 secs (0.022u,0.s) +Chars 4693 - 4704 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4708 - 4720 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4724 - 4738 [(intros~s~t~EQ).] 0. secs (0.u,0.s) +Chars 4741 - 4770 [(rewrite~2!unfold_interp_fail).] 0.031 secs (0.03u,0.s) Chars 4773 - 4784 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4788 - 4848 [destruct~EQ;~cbn;~subst;~try~d...] 0.006 secs (0.006u,0.s) +Chars 4788 - 4848 [(destruct~EQ;~cbn;~subst;~try~...] 0.008 secs (0.008u,0.s) Chars 4852 - 4859 [to_mon.] 0. secs (0.u,0.s) -Chars 4860 - 4881 [ebind;~intros;~subst.] 0.018 secs (0.018u,0.s) -Chars 4882 - 4894 [destruct~u2.] 0. secs (0.u,0.s) -Chars 4898 - 4903 [etau.] 0.004 secs (0.004u,0.s) +Chars 4860 - 4881 [(ebind;~intros;~subst).] 0.025 secs (0.025u,0.s) +Chars 4882 - 4894 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 4898 - 4903 [etau.] 0.005 secs (0.005u,0.s) Chars 4904 - 4909 [eret.] 0. secs (0.u,0.s) -Chars 4911 - 4915 [Qed.] 0.006 secs (0.006u,0.s) -Chars 5016 - 5161 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 4911 - 4915 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5016 - 5161 [#[global]~Instance~interp_fail...] 0.001 secs (0.u,0.s) Chars 5162 - 5168 [Proof.] 0. secs (0.u,0.s) -Chars 5171 - 5184 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5187 - 5209 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) -Chars 5212 - 5245 [apply~interp_fail_eq_itree;~auto.] 0. secs (0.u,0.s) -Chars 5246 - 5250 [Qed.] 0. secs (0.u,0.s) +Chars 5171 - 5184 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5187 - 5209 [(rewrite~option_rel_eq).] 0.003 secs (0.002u,0.s) +Chars 5212 - 5245 [(apply~interp_fail_eq_itree;~a...] 0. secs (0.u,0.s) +Chars 5246 - 5250 [Qed.] 0.001 secs (0.001u,0.s) Chars 5252 - 5395 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) Chars 5396 - 5402 [Proof.] 0. secs (0.u,0.s) -Chars 5405 - 5416 [repeat~red.] 0. secs (0.u,0.s) -Chars 5420 - 5432 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 5436 - 5450 [intros~s~t~EQ.] 0. secs (0.u,0.s) -Chars 5453 - 5482 [rewrite~2!unfold_interp_fail.] 0.023 secs (0.023u,0.s) +Chars 5405 - 5416 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5420 - 5432 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5436 - 5450 [(intros~s~t~EQ).] 0. secs (0.u,0.s) +Chars 5453 - 5482 [(rewrite~2!unfold_interp_fail).] 0.033 secs (0.032u,0.s) Chars 5485 - 5496 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 5500 - 5552 [induction~EQ;~intros;~bcbn;~su...] 0.028 secs (0.027u,0.s) +Chars 5500 - 5552 [(induction~EQ;~intros;~bcbn;~s...] 0.038 secs (0.037u,0.s) Chars 5556 - 5557 [-] 0. secs (0.u,0.s) Chars 5558 - 5563 [eret.] 0. secs (0.u,0.s) Chars 5567 - 5568 [-] 0. secs (0.u,0.s) -Chars 5569 - 5574 [etau.] 0.001 secs (0.001u,0.s) +Chars 5569 - 5574 [etau.] 0.002 secs (0.002u,0.s) Chars 5578 - 5579 [-] 0. secs (0.u,0.s) -Chars 5580 - 5601 [ebind;~intros;~subst.] 0.017 secs (0.017u,0.s) -Chars 5602 - 5646 [destruct~u2;~econstructor;~eau...] 0.004 secs (0.004u,0.s) +Chars 5580 - 5601 [(ebind;~intros;~subst).] 0.023 secs (0.023u,0.s) +Chars 5602 - 5646 [(destruct~u2;~econstructor;~ea...] 0.004 secs (0.004u,0.s) Chars 5651 - 5652 [-] 0. secs (0.u,0.s) -Chars 5653 - 5699 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) +Chars 5653 - 5699 [(rewrite~tau_euttge,~unfold_in...] 0.02 secs (0.02u,0.s) Chars 5702 - 5703 [-] 0. secs (0.u,0.s) -Chars 5704 - 5750 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) -Chars 5751 - 5755 [Qed.] 0.009 secs (0.009u,0.s) -Chars 5856 - 5989 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 5704 - 5750 [(rewrite~tau_euttge,~unfold_in...] 0.022 secs (0.021u,0.s) +Chars 5751 - 5755 [Qed.] 0.013 secs (0.012u,0.s) +Chars 5856 - 5989 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) Chars 5990 - 5996 [Proof.] 0. secs (0.u,0.s) -Chars 5999 - 6012 [repeat~intro.] 0. secs (0.u,0.s) -Chars 6015 - 6037 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) -Chars 6040 - 6069 [apply~interp_fail_eutt;~auto.] 0. secs (0.u,0.s) -Chars 6070 - 6074 [Qed.] 0.001 secs (0.u,0.s) +Chars 5999 - 6012 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 6015 - 6037 [(rewrite~option_rel_eq).] 0.002 secs (0.002u,0.s) +Chars 6040 - 6069 [(apply~interp_fail_eutt;~auto).] 0. secs (0.u,0.s) +Chars 6070 - 6074 [Qed.] 0.001 secs (0.001u,0.s) Chars 6076 - 6211 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) Chars 6212 - 6218 [Proof.] 0. secs (0.u,0.s) -Chars 6219 - 6246 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) +Chars 6219 - 6246 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) Chars 6247 - 6259 [reflexivity.] 0. secs (0.u,0.s) -Chars 6260 - 6264 [Qed.] 0. secs (0.u,0.s) -Chars 6266 - 6651 [Lemma~interp_fail_vis~{E~F~:~T...] 0. secs (0.u,0.s) +Chars 6260 - 6264 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6266 - 6651 [Lemma~interp_fail_vis~{E~F~:~T...] 0.001 secs (0.001u,0.s) Chars 6652 - 6658 [Proof.] 0. secs (0.u,0.s) -Chars 6661 - 6688 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) +Chars 6661 - 6688 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) Chars 6689 - 6701 [reflexivity.] 0. secs (0.u,0.s) -Chars 6702 - 6706 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6702 - 6706 [Qed.] 0.001 secs (0.001u,0.s) Chars 7143 - 7261 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) Chars 7262 - 7268 [Proof.] 0. secs (0.u,0.s) -Chars 7271 - 7319 [intros;~rewrite~unfold_interp_...] 0.001 secs (0.001u,0.s) -Chars 7320 - 7324 [Qed.] 0.001 secs (0.u,0.s) -Chars 7326 - 7460 [Lemma~interp_fail_ret~:~~~fora...] 0. secs (0.u,0.s) +Chars 7271 - 7319 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) +Chars 7320 - 7324 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7326 - 7460 [Lemma~interp_fail_ret~:~~~fora...] 0.002 secs (0.002u,0.s) Chars 7461 - 7467 [Proof.] 0. secs (0.u,0.s) -Chars 7470 - 7518 [intros;~rewrite~unfold_interp_...] 0.001 secs (0.001u,0.s) +Chars 7470 - 7518 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) Chars 7519 - 7523 [Qed.] 0.001 secs (0.001u,0.s) Chars 7525 - 7673 [Lemma~interp_fail_trigger~{E~F...] 0. secs (0.u,0.s) Chars 7674 - 7680 [Proof.] 0. secs (0.u,0.s) -Chars 7683 - 7704 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 7705 - 7729 [rewrite~interp_fail_vis.] 0.001 secs (0.u,0.s) -Chars 7732 - 7819 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) -Chars 7822 - 7842 [eapply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 7845 - 7906 [intros~[];~try~reflexivity;~re...] 0.002 secs (0.002u,0.s) +Chars 7683 - 7704 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 7705 - 7729 [(rewrite~interp_fail_vis).] 0.001 secs (0.001u,0.s) +Chars 7732 - 7819 [(match~goal~with~~|~|-~?y~≈~?x...] 0.001 secs (0.001u,0.s) +Chars 7822 - 7842 [(eapply~eutt_eq_bind).] 0. secs (0.u,0.s) +Chars 7845 - 7906 [(intros~[];~try~reflexivity;~r...] 0.004 secs (0.004u,0.s) Chars 7909 - 7921 [reflexivity.] 0. secs (0.u,0.s) Chars 7922 - 7926 [Qed.] 0.002 secs (0.002u,0.s) Chars 7942 - 8230 [Lemma~interp_fail_bind~:~~~for...] 0.001 secs (0.001u,0.s) Chars 8231 - 8237 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8276 [intros~X~Y~E~F;~coinduction;~i...] 0.001 secs (0.001u,0.s) -Chars 8279 - 8299 [rewrite~unfold_bind.] 0.013 secs (0.013u,0.s) -Chars 8302 - 8335 [rewrite~(unfold_interp_fail~h~t).] 0.015 secs (0.015u,0.s) -Chars 8338 - 8372 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) +Chars 8240 - 8276 [(intros~X~Y~E~F;~coinduction;~...] 0.002 secs (0.002u,0.s) +Chars 8279 - 8299 [(rewrite~unfold_bind).] 0.018 secs (0.018u,0.s) +Chars 8302 - 8335 [(rewrite~(unfold_interp_fail~h...] 0.02 secs (0.02u,0.s) +Chars 8338 - 8372 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) Chars 8375 - 8376 [-] 0. secs (0.u,0.s) -Chars 8377 - 8396 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 8397 - 8409 [reflexivity.] 0. secs (0.u,0.s) +Chars 8377 - 8396 [(rewrite~bind_ret_l).] 0.02 secs (0.019u,0.s) +Chars 8397 - 8409 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8413 - 8414 [-] 0. secs (0.u,0.s) Chars 8415 - 8420 [taus.] 0. secs (0.u,0.s) -Chars 8421 - 8431 [apply~CIH.] 0. secs (0.u,0.s) +Chars 8421 - 8431 [(apply~CIH).] 0. secs (0.u,0.s) Chars 8435 - 8436 [-] 0. secs (0.u,0.s) -Chars 8437 - 8472 [rewrite~bind_bind,~interp_fail...] 0.027 secs (0.026u,0.s) -Chars 8477 - 8498 [ebind;~intros;~subst.] 0.007 secs (0.007u,0.s) -Chars 8505 - 8517 [destruct~u2.] 0. secs (0.u,0.s) +Chars 8437 - 8472 [(rewrite~bind_bind,~interp_fai...] 0.035 secs (0.035u,0.s) +Chars 8477 - 8498 [(ebind;~intros;~subst).] 0.011 secs (0.011u,0.s) +Chars 8505 - 8517 [(destruct~u2).] 0. secs (0.u,0.s) Chars 8523 - 8524 [+] 0. secs (0.u,0.s) -Chars 8525 - 8542 [rewrite~bind_tau.] 0.016 secs (0.016u,0.s) +Chars 8525 - 8542 [(rewrite~bind_tau).] 0.022 secs (0.021u,0.s) Chars 8549 - 8554 [etau.] 0. secs (0.u,0.s) Chars 8560 - 8561 [+] 0. secs (0.u,0.s) -Chars 8562 - 8581 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) -Chars 8588 - 8606 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 8607 - 8611 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8562 - 8581 [(rewrite~bind_ret_l).] 0.022 secs (0.021u,0.s) +Chars 8588 - 8606 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 8607 - 8611 [Qed.] 0.043 secs (0.021u,0.s) Chars 8626 - 8856 [Lemma~interp_failure_bind'~:~~...] 0.001 secs (0.001u,0.s) Chars 8857 - 8863 [Proof.] 0. secs (0.u,0.s) -Chars 8866 - 8881 [intros~X~Y~E~F.] 0. secs (0.u,0.s) -Chars 8884 - 8888 [cbn.] 0. secs (0.u,0.s) -Chars 8891 - 8911 [coinduction;~intros.] 0.001 secs (0.001u,0.s) -Chars 8916 - 8962 [rewrite~unfold_bind,~(unfold_i...] 0.027 secs (0.026u,0.s) -Chars 8965 - 8999 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) +Chars 8866 - 8881 [(intros~X~Y~E~F).] 0. secs (0.u,0.s) +Chars 8884 - 8888 [(cbn).] 0. secs (0.u,0.s) +Chars 8891 - 8911 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) +Chars 8916 - 8962 [(rewrite~unfold_bind,~(unfold_...] 0.04 secs (0.039u,0.s) +Chars 8965 - 8999 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) Chars 9002 - 9003 [-] 0. secs (0.u,0.s) -Chars 9004 - 9023 [rewrite~bind_ret_l.] 0.014 secs (0.013u,0.s) -Chars 9024 - 9036 [reflexivity.] 0.001 secs (0.u,0.s) +Chars 9004 - 9023 [(rewrite~bind_ret_l).] 0.019 secs (0.018u,0.s) +Chars 9024 - 9036 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 9040 - 9041 [-] 0. secs (0.u,0.s) -Chars 9042 - 9047 [etau.] 0.01 secs (0.01u,0.s) -Chars 9048 - 9058 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9042 - 9047 [etau.] 0.013 secs (0.013u,0.s) +Chars 9048 - 9058 [(apply~CIH).] 0. secs (0.u,0.s) Chars 9062 - 9063 [-] 0. secs (0.u,0.s) -Chars 9064 - 9099 [rewrite~bind_bind,~interp_fail...] 0.025 secs (0.025u,0.s) -Chars 9104 - 9125 [ebind;~intros;~subst.] 0.007 secs (0.007u,0.s) -Chars 9131 - 9143 [destruct~u2.] 0. secs (0.u,0.s) +Chars 9064 - 9099 [(rewrite~bind_bind,~interp_fai...] 0.037 secs (0.036u,0.s) +Chars 9104 - 9125 [(ebind;~intros;~subst).] 0.01 secs (0.01u,0.s) +Chars 9131 - 9143 [(destruct~u2).] 0. secs (0.u,0.s) Chars 9149 - 9150 [+] 0. secs (0.u,0.s) -Chars 9151 - 9168 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) +Chars 9151 - 9168 [(rewrite~bind_tau).] 0.022 secs (0.021u,0.s) Chars 9175 - 9180 [etau.] 0. secs (0.u,0.s) Chars 9186 - 9187 [+] 0. secs (0.u,0.s) -Chars 9188 - 9207 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 9214 - 9226 [reflexivity.] 0. secs (0.u,0.s) -Chars 9227 - 9231 [Qed.] 0.011 secs (0.011u,0.s) +Chars 9188 - 9207 [(rewrite~bind_ret_l).] 0.021 secs (0.02u,0.s) +Chars 9214 - 9226 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9227 - 9231 [Qed.] 0.015 secs (0.015u,0.s) diff --git a/theories/Events/Map.v.timing b/theories/Events/Map.v.timing index 25e03cd5..1c7b35ef 100644 --- a/theories/Events/Map.v.timing +++ b/theories/Events/Map.v.timing @@ -1,9 +1,9 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.031 secs (0.025u,0.006s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.039 secs (0.031u,0.007s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 181 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) -Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.083 secs (0.077u,0.005s) +Chars 145 - 181 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) +Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.106 secs (0.099u,0.006s) Chars 376 - 410 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 427 - 439 [Section~Map.] 0. secs (0.u,0.s) Chars 443 - 466 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -15,8 +15,8 @@ Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0. secs (0.u,0.s) Chars 1066 - 1089 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1093 - 1114 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1117 - 1143 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1147 - 1401 [Definition~handle_map~{E}~:~ma...] 0. secs (0.u,0.s) -Chars 1405 - 1522 [Definition~run_map~{E}~:~itree...] 0. secs (0.u,0.s) +Chars 1147 - 1401 [Definition~handle_map~{E}~:~ma...] 0.001 secs (0.001u,0.s) +Chars 1405 - 1522 [Definition~run_map~{E}~:~itree...] 0.001 secs (0.001u,0.s) Chars 1524 - 1532 [End~Map.] 0. secs (0.u,0.s) Chars 1534 - 1561 [Arguments~insert~{K~V~E~_}.] 0. secs (0.u,0.s) Chars 1562 - 1589 [Arguments~lookup~{K~V~E~_}.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefault.v.timing b/theories/Events/MapDefault.v.timing index 5ff14f4e..82229837 100644 --- a/theories/Events/MapDefault.v.timing +++ b/theories/Events/MapDefault.v.timing @@ -1,8 +1,8 @@ Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.004 secs (0.003u,0.001s) -Chars 183 - 239 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) -Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.039 secs (0.031u,0.007s) +Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.006 secs (0.004u,0.001s) +Chars 183 - 239 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) +Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.057 secs (0.045u,0.011s) Chars 499 - 533 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 550 - 562 [Section~Map.] 0. secs (0.u,0.s) Chars 566 - 589 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -10,14 +10,14 @@ Chars 593 - 728 [Variant~mapE~(d~:~V)~:~Type~->...] 0. secs (0.u,0.s) Chars 732 - 753 [Arguments~Insert~{d}.] 0. secs (0.u,0.s) Chars 756 - 780 [Arguments~LookupDef~{d}.] 0. secs (0.u,0.s) Chars 783 - 804 [Arguments~Remove~{d}.] 0. secs (0.u,0.s) -Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0. secs (0.u,0.s) -Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0.013 secs (0.013u,0.s) -Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0. secs (0.u,0.s) +Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0.001 secs (0.u,0.s) +Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0. secs (0.u,0.s) +Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0.021 secs (0.019u,0.002s) Chars 1060 - 1083 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1087 - 1108 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1111 - 1137 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.002 secs (0.002u,0.s) -Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0. secs (0.u,0.s) +Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0. secs (0.u,0.s) +Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 1830 - 1966 [Definition~interp_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 2165 - 2273 [Definition~eq_map~(d~:~V)~(m1~...] 0. secs (0.u,0.s) Chars 2277 - 2285 [End~Map.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefaultFacts.v.timing b/theories/Events/MapDefaultFacts.v.timing index 76dbdce7..c14abd81 100644 --- a/theories/Events/MapDefaultFacts.v.timing +++ b/theories/Events/MapDefaultFacts.v.timing @@ -1,9 +1,9 @@ Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 174 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 176 - 220 [From~ExtLib~Require~Import~Cor...] 0.002 secs (0.002u,0.s) +Chars 137 - 174 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 176 - 220 [From~ExtLib~Require~Import~Cor...] 0.004 secs (0.003u,0.s) Chars 222 - 263 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) -Chars 265 - 431 [From~ITree~Require~Import~Basi...] 0.16 secs (0.143u,0.016s) +Chars 265 - 431 [From~ITree~Require~Import~Basi...] 0.226 secs (0.198u,0.027s) Chars 433 - 467 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 468 - 491 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 508 - 525 [Section~MapFacts.] 0. secs (0.u,0.s) @@ -15,69 +15,69 @@ Chars 637 - 666 [Context~{Kdec~:~@RelDec~K~eq}.] 0. secs (0.u,0.s) Chars 669 - 707 [Context~{KdecOk~:~RelDec_Corre...] 0. secs (0.u,0.s) Chars 741 - 806 [Lemma~lookup_add_eq~:~forall~k...] 0. secs (0.u,0.s) Chars 809 - 815 [Proof.] 0. secs (0.u,0.s) -Chars 820 - 827 [intros.] 0. secs (0.u,0.s) -Chars 832 - 875 [rewrite~mapsto_lookup;~apply~m...] 0. secs (0.u,0.s) +Chars 820 - 827 [(intros).] 0. secs (0.u,0.s) +Chars 832 - 875 [(rewrite~mapsto_lookup;~apply~...] 0. secs (0.u,0.s) Chars 881 - 890 [Unshelve.] 0. secs (0.u,0.s) Chars 895 - 916 [2:~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 919 - 923 [Qed.] 0. secs (0.u,0.s) Chars 957 - 1042 [Lemma~lookup_add_neq~:~~~foral...] 0. secs (0.u,0.s) Chars 1045 - 1051 [Proof.] 0. secs (0.u,0.s) -Chars 1056 - 1063 [intros.] 0. secs (0.u,0.s) -Chars 1068 - 1140 [generalize~(@mapsto_add_neq~_~...] 0. secs (0.u,0.s) -Chars 1145 - 1182 [setoid_rewrite~~<-~mapsto_look...] 0.003 secs (0.002u,0.s) -Chars 1187 - 1226 [destruct~(lookup~k~s)~as~[v'|~...] 0. secs (0.u,0.s) +Chars 1056 - 1063 [(intros).] 0. secs (0.u,0.s) +Chars 1068 - 1140 [(generalize~(@mapsto_add_neq~_...] 0. secs (0.u,0.s) +Chars 1145 - 1182 [setoid_rewrite~~<-~mapsto_look...] 0.004 secs (0.003u,0.s) +Chars 1187 - 1226 [(destruct~(lookup~k~s)~as~[v'|...] 0. secs (0.u,0.s) Chars 1231 - 1232 [-] 0. secs (0.u,0.s) Chars 1233 - 1251 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1258 - 1272 [apply~H;~auto.] 0. secs (0.u,0.s) +Chars 1258 - 1272 [(apply~H;~auto).] 0. secs (0.u,0.s) Chars 1277 - 1278 [-] 0. secs (0.u,0.s) -Chars 1279 - 1347 [destruct~(lookup~k~(add~k'~v~s...] 0. secs (0.u,0.s) +Chars 1279 - 1347 [(destruct~(lookup~k~(add~k'~v~...] 0. secs (0.u,0.s) Chars 1354 - 1372 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1379 - 1403 [symmetry;~apply~H;~auto.] 0. secs (0.u,0.s) -Chars 1406 - 1410 [Qed.] 0. secs (0.u,0.s) +Chars 1379 - 1403 [(symmetry;~apply~H;~auto).] 0. secs (0.u,0.s) +Chars 1406 - 1410 [Qed.] 0.001 secs (0.u,0.s) Chars 1444 - 1513 [Lemma~lookup_remove_eq~:~foral...] 0. secs (0.u,0.s) Chars 1516 - 1522 [Proof.] 0. secs (0.u,0.s) -Chars 1527 - 1534 [intros.] 0. secs (0.u,0.s) -Chars 1539 - 1617 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) -Chars 1622 - 1650 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) -Chars 1655 - 1695 [exfalso;~eapply~mapsto_remove_...] 0. secs (0.u,0.s) +Chars 1527 - 1534 [(intros).] 0. secs (0.u,0.s) +Chars 1539 - 1617 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) +Chars 1622 - 1650 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) +Chars 1655 - 1695 [(exfalso;~eapply~mapsto_remove...] 0. secs (0.u,0.s) Chars 1698 - 1702 [Qed.] 0. secs (0.u,0.s) Chars 1736 - 1827 [Lemma~lookup_remove_neq~:~~~fo...] 0. secs (0.u,0.s) Chars 1830 - 1836 [Proof.] 0. secs (0.u,0.s) -Chars 1841 - 1848 [intros.] 0. secs (0.u,0.s) -Chars 1853 - 1914 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) +Chars 1841 - 1848 [(intros).] 0. secs (0.u,0.s) +Chars 1853 - 1914 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) Chars 1919 - 1920 [-] 0. secs (0.u,0.s) -Chars 1921 - 1949 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) -Chars 1956 - 1992 [apply~mapsto_remove_neq~in~EQ;...] 0. secs (0.u,0.s) -Chars 1999 - 2038 [symmetry;~rewrite~mapsto_looku...] 0. secs (0.u,0.s) +Chars 1921 - 1949 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) +Chars 1956 - 1992 [(apply~mapsto_remove_neq~in~EQ...] 0.001 secs (0.u,0.s) +Chars 1999 - 2038 [(symmetry;~rewrite~mapsto_look...] 0. secs (0.u,0.s) Chars 2043 - 2044 [-] 0. secs (0.u,0.s) -Chars 2046 - 2120 [match~goal~with~|~|-~_~=~?x~=>...] 0.022 secs (0.021u,0.001s) -Chars 2128 - 2157 [rewrite~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) -Chars 2165 - 2204 [eapply~mapsto_remove_neq~in~EQ...] 0. secs (0.u,0.s) -Chars 2212 - 2244 [rewrite~<-~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) -Chars 2252 - 2279 [rewrite~EQ~in~EQ';~inv~EQ'.] 0. secs (0.u,0.s) +Chars 2046 - 2120 [(match~goal~with~~|~|-~_~=~?x~...] 0. secs (0.u,0.s) +Chars 2128 - 2157 [(rewrite~mapsto_lookup~in~EQ').] 0. secs (0.u,0.s) +Chars 2165 - 2204 [(eapply~mapsto_remove_neq~in~E...] 0.001 secs (0.u,0.s) +Chars 2212 - 2244 [(rewrite~<-~mapsto_lookup~in~E...] 0. secs (0.u,0.s) +Chars 2252 - 2279 [(rewrite~EQ~in~EQ';~inv~EQ').] 0.03 secs (0.027u,0.002s) Chars 2287 - 2296 [Unshelve.] 0. secs (0.u,0.s) Chars 2304 - 2327 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2330 - 2334 [Qed.] 0. secs (0.u,0.s) +Chars 2330 - 2334 [Qed.] 0.001 secs (0.001u,0.s) Chars 2338 - 2402 [#[global]~Instance~eq_map_refl...] 0. secs (0.u,0.s) Chars 2405 - 2411 [Proof.] 0. secs (0.u,0.s) -Chars 2416 - 2420 [red.] 0. secs (0.u,0.s) -Chars 2421 - 2428 [intros.] 0. secs (0.u,0.s) -Chars 2429 - 2443 [unfold~eq_map.] 0. secs (0.u,0.s) +Chars 2416 - 2420 [(red).] 0. secs (0.u,0.s) +Chars 2421 - 2428 [(intros).] 0. secs (0.u,0.s) +Chars 2429 - 2443 [(unfold~eq_map).] 0. secs (0.u,0.s) Chars 2444 - 2450 [tauto.] 0. secs (0.u,0.s) Chars 2453 - 2457 [Qed.] 0. secs (0.u,0.s) Chars 2465 - 2528 [#[global]~Instance~eq_map_sym~...] 0. secs (0.u,0.s) Chars 2531 - 2537 [Proof.] 0. secs (0.u,0.s) -Chars 2542 - 2555 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2560 - 2579 [unfold~eq_map~in~H.] 0. secs (0.u,0.s) -Chars 2584 - 2594 [rewrite~H.] 0. secs (0.u,0.s) +Chars 2542 - 2555 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2560 - 2579 [(unfold~eq_map~in~H).] 0. secs (0.u,0.s) +Chars 2584 - 2594 [(rewrite~H).] 0. secs (0.u,0.s) Chars 2599 - 2611 [reflexivity.] 0. secs (0.u,0.s) Chars 2614 - 2618 [Qed.] 0. secs (0.u,0.s) Chars 2622 - 2688 [#[global]~Instance~eq_map_tran...] 0. secs (0.u,0.s) Chars 2691 - 2697 [Proof.] 0. secs (0.u,0.s) -Chars 2702 - 2715 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2721 - 2740 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) -Chars 2745 - 2755 [rewrite~H.] 0. secs (0.u,0.s) -Chars 2756 - 2767 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 2702 - 2715 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2721 - 2740 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) +Chars 2745 - 2755 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 2756 - 2767 [(rewrite~H0).] 0. secs (0.u,0.s) Chars 2768 - 2780 [reflexivity.] 0. secs (0.u,0.s) Chars 2783 - 2787 [Qed.] 0. secs (0.u,0.s) Chars 2792 - 2810 [Section~Relations.] 0. secs (0.u,0.s) @@ -87,124 +87,124 @@ Chars 2874 - 3094 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) Chars 3098 - 3112 [End~Relations.] 0. secs (0.u,0.s) Chars 3116 - 3259 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) Chars 3262 - 3268 [Proof.] 0. secs (0.u,0.s) -Chars 3273 - 3294 [intros~d~s1~s2~k~v~H.] 0. secs (0.u,0.s) -Chars 3299 - 3318 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) -Chars 3323 - 3333 [intros~k'.] 0. secs (0.u,0.s) -Chars 3338 - 3364 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) +Chars 3273 - 3294 [(intros~d~s1~s2~k~v~H).] 0. secs (0.u,0.s) +Chars 3299 - 3318 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) +Chars 3323 - 3333 [(intros~k').] 0. secs (0.u,0.s) +Chars 3338 - 3364 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) Chars 3369 - 3370 [-] 0. secs (0.u,0.s) Chars 3371 - 3377 [subst.] 0. secs (0.u,0.s) -Chars 3384 - 3411 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) -Chars 3418 - 3455 [rewrite~2!lookup_add_eq;~refle...] 0. secs (0.u,0.s) +Chars 3384 - 3411 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) +Chars 3418 - 3455 [(rewrite~2!lookup_add_eq;~refl...] 0. secs (0.u,0.s) Chars 3460 - 3461 [-] 0. secs (0.u,0.s) -Chars 3462 - 3489 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) -Chars 3496 - 3527 [rewrite~2!lookup_add_neq;~auto.] 0. secs (0.u,0.s) +Chars 3462 - 3489 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) +Chars 3496 - 3527 [(rewrite~2!lookup_add_neq;~auto).] 0. secs (0.u,0.s) Chars 3530 - 3534 [Qed.] 0. secs (0.u,0.s) Chars 3544 - 3684 [Lemma~eq_map_remove~:~~~forall...] 0. secs (0.u,0.s) Chars 3687 - 3693 [Proof.] 0. secs (0.u,0.s) -Chars 3698 - 3717 [intros~d~s1~s2~k~H.] 0. secs (0.u,0.s) -Chars 3722 - 3752 [unfold~eq_map~in~*;~intros~k'.] 0. secs (0.u,0.s) -Chars 3757 - 3779 [unfold~lookup_default.] 0. secs (0.u,0.s) -Chars 3784 - 3810 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) +Chars 3698 - 3717 [(intros~d~s1~s2~k~H).] 0. secs (0.u,0.s) +Chars 3722 - 3752 [(unfold~eq_map~in~*;~intros~k').] 0. secs (0.u,0.s) +Chars 3757 - 3779 [(unfold~lookup_default).] 0. secs (0.u,0.s) +Chars 3784 - 3810 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) Chars 3815 - 3816 [-] 0. secs (0.u,0.s) -Chars 3817 - 3857 [subst;~rewrite~2!lookup_remove...] 0. secs (0.u,0.s) +Chars 3817 - 3857 [(subst;~rewrite~2!lookup_remov...] 0. secs (0.u,0.s) Chars 3862 - 3863 [-] 0. secs (0.u,0.s) -Chars 3864 - 3898 [rewrite~2!lookup_remove_neq;~a...] 0. secs (0.u,0.s) -Chars 3905 - 3913 [apply~H.] 0. secs (0.u,0.s) +Chars 3864 - 3898 [(rewrite~2!lookup_remove_neq;~...] 0. secs (0.u,0.s) +Chars 3905 - 3913 [(apply~H).] 0. secs (0.u,0.s) Chars 3916 - 3920 [Qed.] 0. secs (0.u,0.s) Chars 3926 - 4136 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 4139 - 4145 [Proof.] 0. secs (0.u,0.s) -Chars 4150 - 4157 [intros.] 0. secs (0.u,0.s) -Chars 4162 - 4223 [destruct~m;~cbn;~red;~apply~eq...] 0.001 secs (0.001u,0.s) +Chars 4150 - 4157 [(intros).] 0. secs (0.u,0.s) +Chars 4162 - 4223 [(destruct~m;~cbn;~red;~apply~e...] 0.002 secs (0.002u,0.s) Chars 4228 - 4229 [-] 0. secs (0.u,0.s) -Chars 4230 - 4247 [apply~eq_map_add.] 0. secs (0.u,0.s) +Chars 4230 - 4247 [(apply~eq_map_add).] 0. secs (0.u,0.s) Chars 4248 - 4259 [assumption.] 0. secs (0.u,0.s) Chars 4264 - 4265 [-] 0. secs (0.u,0.s) -Chars 4266 - 4286 [apply~eq_map_remove.] 0. secs (0.u,0.s) +Chars 4266 - 4286 [(apply~eq_map_remove).] 0. secs (0.u,0.s) Chars 4287 - 4298 [assumption.] 0. secs (0.u,0.s) Chars 4301 - 4305 [Qed.] 0.002 secs (0.002u,0.s) Chars 4310 - 4423 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) Chars 4426 - 4432 [Proof.] 0. secs (0.u,0.s) -Chars 4437 - 4450 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4437 - 4450 [(repeat~intro).] 0. secs (0.u,0.s) Chars 4455 - 4461 [subst.] 0. secs (0.u,0.s) -Chars 4466 - 4486 [apply~handle_map_eq.] 0. secs (0.u,0.s) +Chars 4466 - 4486 [(apply~handle_map_eq).] 0. secs (0.u,0.s) Chars 4491 - 4502 [assumption.] 0. secs (0.u,0.s) -Chars 4505 - 4509 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4505 - 4509 [Qed.] 0.002 secs (0.002u,0.s) Chars 4652 - 4766 [Lemma~interp_map_id~d~{E}~{X}~...] 0. secs (0.u,0.s) Chars 4769 - 4775 [Proof.] 0. secs (0.u,0.s) -Chars 4780 - 4822 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) +Chars 4780 - 4822 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) Chars 4827 - 4844 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) -Chars 4849 - 4861 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4867 - 4874 [intros.] 0. secs (0.u,0.s) -Chars 4879 - 4914 [repeat~rewrite~unfold_interp_s...] 0.06 secs (0.06u,0.s) -Chars 4915 - 4936 [unfold~_interp_state.] 0. secs (0.u,0.s) -Chars 4941 - 4962 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 4849 - 4861 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 4867 - 4874 [(intros).] 0. secs (0.u,0.s) +Chars 4879 - 4914 [(repeat~rewrite~unfold_interp_...] 0.079 secs (0.078u,0.001s) +Chars 4915 - 4936 [(unfold~_interp_state).] 0. secs (0.u,0.s) +Chars 4941 - 4962 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) Chars 4967 - 4968 [-] 0. secs (0.u,0.s) Chars 4969 - 4974 [eret.] 0. secs (0.u,0.s) Chars 4980 - 4981 [-] 0. secs (0.u,0.s) Chars 4982 - 4987 [etau.] 0.001 secs (0.001u,0.s) Chars 4993 - 4994 [-] 0. secs (0.u,0.s) -Chars 4995 - 5001 [ebind.] 0.01 secs (0.01u,0.s) -Chars 5009 - 5027 [unfold~pure_state.] 0. secs (0.u,0.s) -Chars 5034 - 5045 [destruct~e.] 0. secs (0.u,0.s) +Chars 4995 - 5001 [ebind.] 0.013 secs (0.013u,0.s) +Chars 5009 - 5027 [(unfold~pure_state).] 0. secs (0.u,0.s) +Chars 5034 - 5045 [(destruct~e).] 0. secs (0.u,0.s) Chars 5052 - 5053 [+] 0. secs (0.u,0.s) -Chars 5054 - 5058 [cbn.] 0. secs (0.u,0.s) -Chars 5059 - 5064 [step.] 0.003 secs (0.003u,0.s) +Chars 5054 - 5058 [(cbn).] 0. secs (0.u,0.s) +Chars 5059 - 5064 [step.] 0.004 secs (0.004u,0.s) Chars 5065 - 5090 [now~eapply~handle_map_eq.] 0. secs (0.u,0.s) Chars 5098 - 5099 [+] 0. secs (0.u,0.s) -Chars 5100 - 5104 [cbn.] 0. secs (0.u,0.s) +Chars 5100 - 5104 [(cbn).] 0. secs (0.u,0.s) Chars 5105 - 5110 [evis.] 0.001 secs (0.001u,0.s) -Chars 5111 - 5122 [step;~eret.] 0.002 secs (0.002u,0.s) +Chars 5111 - 5122 [(step;~eret).] 0.003 secs (0.003u,0.s) Chars 5130 - 5131 [+] 0. secs (0.u,0.s) -Chars 5132 - 5139 [intros.] 0. secs (0.u,0.s) -Chars 5140 - 5152 [destruct~u1.] 0. secs (0.u,0.s) -Chars 5153 - 5165 [destruct~u2.] 0. secs (0.u,0.s) -Chars 5166 - 5170 [cbn.] 0. secs (0.u,0.s) -Chars 5179 - 5224 [destruct~H0~as~[H1~H2];~cbn~in...] 0. secs (0.u,0.s) +Chars 5132 - 5139 [(intros).] 0. secs (0.u,0.s) +Chars 5140 - 5152 [(destruct~u1).] 0.001 secs (0.001u,0.s) +Chars 5153 - 5165 [(destruct~u2).] 0.001 secs (0.001u,0.s) +Chars 5166 - 5170 [(cbn).] 0. secs (0.u,0.s) +Chars 5179 - 5224 [(destruct~H0~as~[H1~H2];~cbn~i...] 0. secs (0.u,0.s) Chars 5233 - 5238 [etau.] 0.001 secs (0.001u,0.s) -Chars 5242 - 5246 [Qed.] 0.012 secs (0.012u,0.s) +Chars 5242 - 5246 [Qed.] 0.017 secs (0.017u,0.s) Chars 5251 - 5401 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) Chars 5404 - 5410 [Proof.] 0. secs (0.u,0.s) -Chars 5415 - 5449 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) -Chars 5454 - 5467 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5415 - 5449 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) +Chars 5454 - 5467 [(repeat~intro).] 0. secs (0.u,0.s) Chars 5472 - 5494 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5499 - 5511 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5517 - 5524 [intros.] 0. secs (0.u,0.s) -Chars 5529 - 5558 [rewrite~!unfold_interp_state.] 0.029 secs (0.029u,0.s) -Chars 5564 - 5574 [step~in~H.] 0. secs (0.u,0.s) +Chars 5499 - 5511 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 5517 - 5524 [(intros).] 0. secs (0.u,0.s) +Chars 5529 - 5558 [(rewrite~!unfold_interp_state).] 0.041 secs (0.041u,0.s) +Chars 5564 - 5574 [step~in~H.] 0.001 secs (0.001u,0.s) Chars 5580 - 5596 [revert~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5601 - 5634 [induction~H;~intros;~subst;~bcbn.] 0.03 secs (0.03u,0.s) +Chars 5601 - 5634 [(induction~H;~intros;~subst;~b...] 0.042 secs (0.042u,0.s) Chars 5640 - 5641 [-] 0. secs (0.u,0.s) -Chars 5642 - 5647 [eret.] 0. secs (0.u,0.s) +Chars 5642 - 5647 [eret.] 0.001 secs (0.001u,0.s) Chars 5653 - 5654 [-] 0. secs (0.u,0.s) Chars 5655 - 5660 [etau.] 0.002 secs (0.002u,0.s) Chars 5665 - 5666 [-] 0. secs (0.u,0.s) -Chars 5667 - 5673 [ebind.] 0.017 secs (0.017u,0.s) +Chars 5667 - 5673 [ebind.] 0.024 secs (0.024u,0.s) Chars 5680 - 5681 [+] 0. secs (0.u,0.s) -Chars 5682 - 5695 [unfold~case_.] 0. secs (0.u,0.s) -Chars 5696 - 5724 [unfold~Case_sum1,~case_sum1.] 0. secs (0.u,0.s) -Chars 5733 - 5743 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 5744 - 5755 [destruct~e.] 0. secs (0.u,0.s) +Chars 5682 - 5695 [(unfold~case_).] 0. secs (0.u,0.s) +Chars 5696 - 5724 [(unfold~Case_sum1,~case_sum1).] 0. secs (0.u,0.s) +Chars 5733 - 5743 [(do~2~step).] 0.016 secs (0.015u,0.s) +Chars 5744 - 5755 [(destruct~e).] 0. secs (0.u,0.s) Chars 5764 - 5765 [*] 0. secs (0.u,0.s) -Chars 5766 - 5786 [apply~handle_map_eq.] 0. secs (0.u,0.s) +Chars 5766 - 5786 [(apply~handle_map_eq).] 0. secs (0.u,0.s) Chars 5787 - 5798 [assumption.] 0. secs (0.u,0.s) Chars 5807 - 5808 [*] 0. secs (0.u,0.s) -Chars 5809 - 5827 [unfold~pure_state.] 0. secs (0.u,0.s) -Chars 5828 - 5833 [step.] 0.001 secs (0.001u,0.s) -Chars 5834 - 5839 [evis.] 0.001 secs (0.001u,0.s) -Chars 5840 - 5845 [step.] 0.001 secs (0.001u,0.s) -Chars 5846 - 5851 [eret.] 0. secs (0.u,0.s) +Chars 5809 - 5827 [(unfold~pure_state).] 0. secs (0.u,0.s) +Chars 5828 - 5833 [step.] 0.002 secs (0.002u,0.s) +Chars 5834 - 5839 [evis.] 0.002 secs (0.002u,0.s) +Chars 5840 - 5845 [step.] 0.002 secs (0.001u,0.s) +Chars 5846 - 5851 [eret.] 0.001 secs (0.001u,0.s) Chars 5859 - 5860 [+] 0. secs (0.u,0.s) -Chars 5861 - 5868 [intros.] 0. secs (0.u,0.s) -Chars 5869 - 5874 [etau.] 0.006 secs (0.006u,0.s) -Chars 5882 - 5888 [inv~H.] 0.017 secs (0.017u,0.s) -Chars 5889 - 5905 [rewrite~snd_rel.] 0. secs (0.u,0.s) -Chars 5906 - 5924 [eapply~CIH;~eauto.] 0.001 secs (0.001u,0.s) -Chars 5925 - 5935 [apply~REL.] 0. secs (0.u,0.s) +Chars 5861 - 5868 [(intros).] 0. secs (0.u,0.s) +Chars 5869 - 5874 [etau.] 0.009 secs (0.009u,0.s) +Chars 5882 - 5888 [(inv~H).] 0.024 secs (0.024u,0.s) +Chars 5889 - 5905 [(rewrite~snd_rel).] 0. secs (0.u,0.s) +Chars 5906 - 5924 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5925 - 5935 [(apply~REL).] 0. secs (0.u,0.s) Chars 5940 - 5941 [-] 0. secs (0.u,0.s) -Chars 5942 - 5982 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) +Chars 5942 - 5982 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) Chars 5989 - 6008 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) Chars 6014 - 6015 [-] 0. secs (0.u,0.s) -Chars 6016 - 6056 [rewrite~tau_euttge,~unfold_int...] 0.019 secs (0.018u,0.s) +Chars 6016 - 6056 [(rewrite~tau_euttge,~unfold_in...] 0.026 secs (0.026u,0.s) Chars 6063 - 6082 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6086 - 6090 [Qed.] 0.016 secs (0.016u,0.s) -Chars 6092 - 6105 [End~MapFacts.] 0.007 secs (0.007u,0.s) +Chars 6086 - 6090 [Qed.] 0.023 secs (0.022u,0.s) +Chars 6092 - 6105 [End~MapFacts.] 0.009 secs (0.009u,0.s) diff --git a/theories/Events/Nondeterminism.v.timing b/theories/Events/Nondeterminism.v.timing index 208419bd..e64be61a 100644 --- a/theories/Events/Nondeterminism.v.timing +++ b/theories/Events/Nondeterminism.v.timing @@ -1,11 +1,11 @@ Chars 84 - 107 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 108 - 132 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.031 secs (0.024u,0.006s) +Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.04 secs (0.032u,0.008s) Chars 167 - 188 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.055 secs (0.047u,0.007s) +Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.126 secs (0.116u,0.01s) Chars 374 - 428 [Variant~nondetE~:~Type~->~Prop...] 0. secs (0.u,0.s) Chars 469 - 592 [Definition~or~{E}~`{nondetE~-<...] 0. secs (0.u,0.s) -Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0. secs (0.u,0.s) -Chars 982 - 1212 [Definition~remove_from~{X}~:~l...] 0.003 secs (0.003u,0.s) +Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0.001 secs (0.001u,0.s) +Chars 982 - 1212 [Definition~remove_from~{X}~:~l...] 0.001 secs (0.001u,0.s) Chars 1347 - 1383 [Variant~no_choice~:~Set~:=~~~~...] 0. secs (0.u,0.s) Chars 1502 - 1744 [Definition~choose~{E}~`{nondet...] 0.001 secs (0.001u,0.s) diff --git a/theories/Events/Reader.v.timing b/theories/Events/Reader.v.timing index e8882b16..0de8a9fa 100644 --- a/theories/Events/Reader.v.timing +++ b/theories/Events/Reader.v.timing @@ -1,8 +1,8 @@ Chars 65 - 88 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 89 - 113 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.032 secs (0.025u,0.006s) +Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.04 secs (0.032u,0.008s) Chars 148 - 169 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.055 secs (0.048u,0.007s) +Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.126 secs (0.116u,0.01s) Chars 358 - 373 [Section~Reader.] 0. secs (0.u,0.s) Chars 375 - 397 [Variable~(Env~:~Type).] 0. secs (0.u,0.s) Chars 399 - 453 [Variant~readerE~:~Type~->~Prop...] 0. secs (0.u,0.s) diff --git a/theories/Events/State.v.timing b/theories/Events/State.v.timing index 8ce3baf0..6f443f0b 100644 --- a/theories/Events/State.v.timing +++ b/theories/Events/State.v.timing @@ -1,5 +1,5 @@ Chars 81 - 154 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.005s) +Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.046 secs (0.037u,0.008s) Chars 358 - 392 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 394 - 423 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.001 secs (0.001u,0.s) @@ -9,9 +9,9 @@ Chars 824 - 844 [Variable~(S~:~Type).] 0. secs (0.u,0.s) Chars 848 - 927 [Variant~stateE~:~Type~->~Type~...] 0. secs (0.u,0.s) Chars 931 - 990 [Definition~get~{E}~`{stateE~-<...] 0. secs (0.u,0.s) Chars 993 - 1060 [Definition~put~{E}~`{stateE~-<...] 0. secs (0.u,0.s) -Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0. secs (0.u,0.s) +Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0.001 secs (0.u,0.s) Chars 1353 - 1455 [Definition~pure_state~{S}~{E}~...] 0. secs (0.u,0.s) -Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.u,0.s) +Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.001u,0.s) Chars 1581 - 1591 [End~State.] 0. secs (0.u,0.s) Chars 1593 - 1615 [Arguments~get~{S~E~_}.] 0. secs (0.u,0.s) Chars 1616 - 1638 [Arguments~put~{S~E~_}.] 0. secs (0.u,0.s) @@ -19,5 +19,5 @@ Chars 1639 - 1673 [Arguments~run_state~{S~E}~[_]~...] 0. secs (0.u,0.s) Chars 1715 - 1733 [Section~eff_hom_e.] 0. secs (0.u,0.s) Chars 1736 - 1765 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 2030 - 2116 [CoInductive~eff_hom_e~:~Type~:...] 0. secs (0.u,0.s) -Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.002 secs (0.002u,0.s) +Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.004 secs (0.003u,0.s) Chars 2409 - 2423 [End~eff_hom_e.] 0. secs (0.u,0.s) diff --git a/theories/Events/StateFacts.v.timing b/theories/Events/StateFacts.v.timing index 7070c147..bac0511f 100644 --- a/theories/Events/StateFacts.v.timing +++ b/theories/Events/StateFacts.v.timing @@ -1,247 +1,247 @@ -Chars 56 - 109 [From~Stdlib~Require~Import~Pro...] 0.003 secs (0.001u,0.001s) -Chars 112 - 440 [From~ITree~Require~Import~Basi...] 0.061 secs (0.052u,0.009s) +Chars 56 - 109 [From~Stdlib~Require~Import~Pro...] 0.004 secs (0.002u,0.001s) +Chars 112 - 440 [From~ITree~Require~Import~Basi...] 0.088 secs (0.075u,0.012s) Chars 442 - 464 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 466 - 495 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 497 - 511 [Import~Monads.] 0. secs (0.u,0.s) -Chars 528 - 830 [Definition~_interp_state~{E}~{...] 0.001 secs (0.001u,0.s) +Chars 528 - 830 [Definition~_interp_state~{E}~{...] 0.002 secs (0.002u,0.s) Chars 832 - 1012 [Lemma~unfold_interp_state~{E}~...] 0. secs (0.u,0.s) Chars 1013 - 1019 [Proof.] 0. secs (0.u,0.s) -Chars 1022 - 1117 [unfold~interp_state,~interp,~B...] 0. secs (0.u,0.s) -Chars 1120 - 1145 [rewrite~unfold_iter;~cbn.] 0.006 secs (0.006u,0.s) -Chars 1148 - 1170 [destruct~observe;~cbn.] 0.001 secs (0.001u,0.s) +Chars 1022 - 1117 [(unfold~interp_state,~interp,~...] 0. secs (0.u,0.s) +Chars 1120 - 1145 [(rewrite~unfold_iter;~cbn).] 0.008 secs (0.008u,0.s) +Chars 1148 - 1170 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) Chars 1173 - 1174 [-] 0. secs (0.u,0.s) -Chars 1175 - 1196 [rewrite~2!bind_ret_l.] 0.04 secs (0.04u,0.s) +Chars 1175 - 1196 [(rewrite~2!bind_ret_l).] 0.056 secs (0.056u,0.s) Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) Chars 1212 - 1213 [-] 0. secs (0.u,0.s) -Chars 1214 - 1235 [rewrite~2!bind_ret_l.] 0.016 secs (0.015u,0.001s) +Chars 1214 - 1235 [(rewrite~2!bind_ret_l).] 0.024 secs (0.021u,0.002s) Chars 1240 - 1252 [reflexivity.] 0. secs (0.u,0.s) Chars 1255 - 1256 [-] 0. secs (0.u,0.s) -Chars 1257 - 1290 [rewrite~bind_map,~bind_bind;~cbn.] 0.018 secs (0.015u,0.002s) -Chars 1291 - 1317 [setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 1322 - 1351 [apply~eqit_bind;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 1352 - 1356 [Qed.] 0.012 secs (0.012u,0.s) -Chars 1358 - 1535 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) +Chars 1257 - 1290 [(rewrite~bind_map,~bind_bind;~...] 0.027 secs (0.021u,0.005s) +Chars 1291 - 1317 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 1322 - 1351 [(apply~eqit_bind;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 1352 - 1356 [Qed.] 0.018 secs (0.018u,0.s) +Chars 1358 - 1535 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.001u,0.s) Chars 1536 - 1542 [Proof.] 0. secs (0.u,0.s) -Chars 1545 - 1560 [revert_until~R.] 0. secs (0.u,0.s) -Chars 1563 - 1575 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1576 - 1600 [intros~h~x~y~H0~x2~_~[].] 0. secs (0.u,0.s) -Chars 1603 - 1632 [rewrite~!unfold_interp_state.] 0.027 secs (0.026u,0.s) +Chars 1545 - 1560 [(revert_until~R).] 0. secs (0.u,0.s) +Chars 1563 - 1575 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1576 - 1600 [(intros~h~x~y~H0~x2~_~[]).] 0. secs (0.u,0.s) +Chars 1603 - 1632 [(rewrite~!unfold_interp_state).] 0.037 secs (0.037u,0.s) Chars 1635 - 1646 [step~in~H0.] 0. secs (0.u,0.s) -Chars 1650 - 1692 [destruct~H0;~subst;~try~discri...] 0.001 secs (0.001u,0.s) +Chars 1650 - 1692 [(destruct~H0;~subst;~try~discr...] 0.002 secs (0.002u,0.s) Chars 1695 - 1696 [-] 0. secs (0.u,0.s) -Chars 1697 - 1709 [reflexivity.] 0. secs (0.u,0.s) +Chars 1697 - 1709 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 1713 - 1714 [-] 0. secs (0.u,0.s) -Chars 1715 - 1735 [taus;~now~apply~CIH.] 0. secs (0.u,0.s) +Chars 1715 - 1735 [(taus;~now~apply~CIH).] 0. secs (0.u,0.s) Chars 1740 - 1741 [-] 0. secs (0.u,0.s) Chars 1742 - 1749 [to_mon.] 0. secs (0.u,0.s) -Chars 1750 - 1771 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 1750 - 1771 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) Chars 1778 - 1779 [+] 0. secs (0.u,0.s) -Chars 1780 - 1802 [taus;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 1804 - 1808 [Qed.] 0.009 secs (0.008u,0.s) -Chars 1810 - 1992 [Lemma~interp_state_ret~{E~F~:~...] 0. secs (0.u,0.s) +Chars 1780 - 1802 [(taus;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 1804 - 1808 [Qed.] 0.012 secs (0.012u,0.s) +Chars 1810 - 1992 [Lemma~interp_state_ret~{E~F~:~...] 0.001 secs (0.001u,0.s) Chars 1993 - 1999 [Proof.] 0. secs (0.u,0.s) -Chars 2002 - 2020 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) +Chars 2002 - 2020 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) Chars 2021 - 2033 [reflexivity.] 0. secs (0.u,0.s) -Chars 2034 - 2038 [Qed.] 0. secs (0.u,0.s) -Chars 2040 - 2283 [Lemma~interp_state_vis~{E~F~:~...] 0. secs (0.u,0.s) +Chars 2034 - 2038 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2040 - 2283 [Lemma~interp_state_vis~{E~F~:~...] 0.001 secs (0.001u,0.s) Chars 2284 - 2290 [Proof.] 0. secs (0.u,0.s) -Chars 2293 - 2334 [rewrite~unfold_interp_state;~r...] 0.001 secs (0.001u,0.s) +Chars 2293 - 2334 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) Chars 2335 - 2339 [Qed.] 0.001 secs (0.001u,0.s) Chars 2341 - 2523 [Lemma~interp_state_tau~{E~F~:~...] 0. secs (0.u,0.s) Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2574 [rewrite~unfold_interp_state;~r...] 0.002 secs (0.002u,0.s) +Chars 2533 - 2574 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) Chars 2575 - 2579 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2581 - 2788 [Lemma~interp_state_trigger_eqi...] 0. secs (0.u,0.s) +Chars 2581 - 2788 [Lemma~interp_state_trigger_eqi...] 0.001 secs (0.001u,0.s) Chars 2789 - 2795 [Proof.] 0. secs (0.u,0.s) -Chars 2798 - 2819 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 2820 - 2845 [rewrite~interp_state_vis.] 0.001 secs (0.001u,0.s) -Chars 2848 - 2882 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 2885 - 2895 [intros~[].] 0. secs (0.u,0.s) -Chars 2896 - 2921 [rewrite~interp_state_ret.] 0.003 secs (0.003u,0.s) +Chars 2798 - 2819 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 2820 - 2845 [(rewrite~interp_state_vis).] 0.002 secs (0.002u,0.s) +Chars 2848 - 2882 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) +Chars 2885 - 2895 [(intros~[]).] 0. secs (0.u,0.s) +Chars 2896 - 2921 [(rewrite~interp_state_ret).] 0.003 secs (0.003u,0.s) Chars 2922 - 2934 [reflexivity.] 0. secs (0.u,0.s) -Chars 2935 - 2939 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2935 - 2939 [Qed.] 0.003 secs (0.003u,0.s) Chars 2941 - 3114 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) Chars 3115 - 3121 [Proof.] 0. secs (0.u,0.s) -Chars 3124 - 3145 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 3146 - 3171 [rewrite~interp_state_vis.] 0. secs (0.u,0.s) -Chars 3174 - 3261 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) -Chars 3264 - 3298 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 3301 - 3346 [intros~[];~rewrite~interp_stat...] 0.002 secs (0.002u,0.s) +Chars 3124 - 3145 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 3146 - 3171 [(rewrite~interp_state_vis).] 0.001 secs (0.001u,0.s) +Chars 3174 - 3261 [(match~goal~with~~|~|-~?y~≈~?x...] 0.001 secs (0.001u,0.s) +Chars 3264 - 3298 [(eapply~eqit_bind;~try~reflexi...] 0. secs (0.u,0.s) +Chars 3301 - 3346 [(intros~[];~rewrite~interp_sta...] 0.003 secs (0.003u,0.s) Chars 3349 - 3361 [reflexivity.] 0. secs (0.u,0.s) Chars 3362 - 3366 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3368 - 3655 [Lemma~interp_state_bind~{E~F~:...] 0. secs (0.u,0.s) +Chars 3368 - 3655 [Lemma~interp_state_bind~{E~F~:...] 0.001 secs (0.001u,0.s) Chars 3656 - 3662 [Proof.] 0. secs (0.u,0.s) Chars 3665 - 3678 [revert~t~k~s.] 0. secs (0.u,0.s) -Chars 3681 - 3693 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 3697 - 3710 [intros~t~k~s.] 0. secs (0.u,0.s) -Chars 3713 - 3733 [rewrite~unfold_bind.] 0.013 secs (0.013u,0.s) -Chars 3736 - 3770 [rewrite~(unfold_interp_state~f...] 0.017 secs (0.017u,0.s) -Chars 3773 - 3794 [destruct~(observe~t).] 0. secs (0.u,0.s) +Chars 3681 - 3693 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3697 - 3710 [(intros~t~k~s).] 0. secs (0.u,0.s) +Chars 3713 - 3733 [(rewrite~unfold_bind).] 0.018 secs (0.018u,0.s) +Chars 3736 - 3770 [(rewrite~(unfold_interp_state~...] 0.024 secs (0.024u,0.s) +Chars 3773 - 3794 [(destruct~(observe~t)).] 0. secs (0.u,0.s) Chars 3797 - 3798 [-] 0. secs (0.u,0.s) -Chars 3799 - 3804 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3805 - 3825 [rewrite~!bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 3831 - 3849 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 3799 - 3804 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 3805 - 3825 [(rewrite~!bind_ret_l).] 0.021 secs (0.021u,0.s) +Chars 3831 - 3849 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) Chars 3852 - 3853 [-] 0. secs (0.u,0.s) -Chars 3854 - 3859 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3854 - 3859 [bcbn.] 0.002 secs (0.002u,0.s) Chars 3860 - 3865 [taus.] 0. secs (0.u,0.s) -Chars 3866 - 3876 [apply~CIH.] 0.001 secs (0.001u,0.s) +Chars 3866 - 3876 [(apply~CIH).] 0.002 secs (0.002u,0.s) Chars 3879 - 3880 [-] 0. secs (0.u,0.s) Chars 3881 - 3886 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3887 - 3923 [rewrite~interp_state_vis,~bind...] 0.027 secs (0.026u,0.s) -Chars 3928 - 3949 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 3957 - 3974 [rewrite~bind_tau.] 0.016 secs (0.016u,0.s) +Chars 3887 - 3923 [(rewrite~interp_state_vis,~bin...] 0.037 secs (0.037u,0.s) +Chars 3928 - 3949 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) +Chars 3957 - 3974 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) Chars 3981 - 3986 [taus.] 0. secs (0.u,0.s) Chars 3987 - 4001 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4003 - 4007 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4003 - 4007 [Qed.] 0.014 secs (0.014u,0.s) Chars 4009 - 4222 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) -Chars 4232 - 4245 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4232 - 4245 [(repeat~intro).] 0. secs (0.u,0.s) Chars 4246 - 4252 [subst.] 0. secs (0.u,0.s) -Chars 4253 - 4269 [revert_until~RR.] 0. secs (0.u,0.s) -Chars 4272 - 4284 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4285 - 4292 [intros.] 0. secs (0.u,0.s) -Chars 4296 - 4325 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) +Chars 4253 - 4269 [(revert_until~RR).] 0. secs (0.u,0.s) +Chars 4272 - 4284 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 4285 - 4292 [(intros).] 0. secs (0.u,0.s) +Chars 4296 - 4325 [(rewrite~!unfold_interp_state).] 0.035 secs (0.035u,0.s) Chars 4326 - 4336 [step~in~H.] 0. secs (0.u,0.s) -Chars 4340 - 4373 [induction~H;~intros;~subst;~bcbn.] 0.027 secs (0.027u,0.s) +Chars 4340 - 4373 [(induction~H;~intros;~subst;~b...] 0.039 secs (0.039u,0.s) Chars 4377 - 4378 [-] 0. secs (0.u,0.s) -Chars 4379 - 4384 [eret.] 0. secs (0.u,0.s) +Chars 4379 - 4384 [eret.] 0.001 secs (0.001u,0.s) Chars 4388 - 4389 [-] 0. secs (0.u,0.s) Chars 4390 - 4395 [etau.] 0.002 secs (0.002u,0.s) Chars 4399 - 4400 [-] 0. secs (0.u,0.s) -Chars 4401 - 4422 [ebind;~intros;~subst.] 0.017 secs (0.017u,0.s) +Chars 4401 - 4422 [(ebind;~intros;~subst).] 0.023 secs (0.023u,0.s) Chars 4423 - 4428 [taus.] 0. secs (0.u,0.s) -Chars 4429 - 4439 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4440 - 4450 [apply~REL.] 0. secs (0.u,0.s) +Chars 4429 - 4439 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4440 - 4450 [(apply~REL).] 0. secs (0.u,0.s) Chars 4454 - 4455 [-] 0. secs (0.u,0.s) -Chars 4456 - 4503 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) +Chars 4456 - 4503 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) Chars 4506 - 4507 [-] 0. secs (0.u,0.s) -Chars 4508 - 4555 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) -Chars 4556 - 4560 [Qed.] 0.009 secs (0.009u,0.s) -Chars 4562 - 4761 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) +Chars 4508 - 4555 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) +Chars 4556 - 4560 [Qed.] 0.013 secs (0.013u,0.s) +Chars 4562 - 4761 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) Chars 4762 - 4768 [Proof.] 0. secs (0.u,0.s) -Chars 4771 - 4784 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4771 - 4784 [(repeat~intro).] 0. secs (0.u,0.s) Chars 4785 - 4791 [subst.] 0. secs (0.u,0.s) -Chars 4792 - 4807 [revert_until~R.] 0. secs (0.u,0.s) -Chars 4810 - 4822 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4823 - 4830 [intros.] 0. secs (0.u,0.s) -Chars 4835 - 4864 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) +Chars 4792 - 4807 [(revert_until~R).] 0. secs (0.u,0.s) +Chars 4810 - 4822 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4823 - 4830 [(intros).] 0. secs (0.u,0.s) +Chars 4835 - 4864 [(rewrite~!unfold_interp_state).] 0.034 secs (0.034u,0.s) Chars 4865 - 4875 [step~in~H.] 0. secs (0.u,0.s) -Chars 4879 - 4930 [induction~H;~intros;~subst;~bc...] 0.033 secs (0.033u,0.s) +Chars 4879 - 4930 [(induction~H;~intros;~subst;~b...] 0.049 secs (0.048u,0.s) Chars 4934 - 4935 [-] 0. secs (0.u,0.s) Chars 4936 - 4941 [eret.] 0.001 secs (0.001u,0.s) Chars 4945 - 4946 [-] 0. secs (0.u,0.s) -Chars 4947 - 4953 [ebind.] 0.006 secs (0.006u,0.s) -Chars 4954 - 4968 [intros;~subst.] 0. secs (0.u,0.s) -Chars 4973 - 4978 [etau.] 0.002 secs (0.001u,0.s) +Chars 4947 - 4953 [ebind.] 0.008 secs (0.008u,0.s) +Chars 4954 - 4968 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 4973 - 4978 [etau.] 0.001 secs (0.001u,0.s) Chars 4981 - 4982 [-] 0. secs (0.u,0.s) -Chars 4983 - 5030 [rewrite~tau_euttge,~unfold_int...] 0.015 secs (0.015u,0.s) +Chars 4983 - 5030 [(rewrite~tau_euttge,~unfold_in...] 0.02 secs (0.02u,0.s) Chars 5033 - 5034 [-] 0. secs (0.u,0.s) -Chars 5035 - 5082 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) -Chars 5083 - 5087 [Qed.] 0.01 secs (0.01u,0.s) +Chars 5035 - 5082 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) +Chars 5083 - 5087 [Qed.] 0.014 secs (0.014u,0.s) Chars 5090 - 5726 [Lemma~eutt_interp_state_aloop~...] 0.002 secs (0.002u,0.s) Chars 5727 - 5733 [Proof.] 0. secs (0.u,0.s) Chars 5736 - 5745 [intro~Ht.] 0. secs (0.u,0.s) -Chars 5748 - 5760 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 5761 - 5768 [intros.] 0. secs (0.u,0.s) -Chars 5771 - 5793 [rewrite~2!unfold_iter.] 0.025 secs (0.025u,0.s) -Chars 5796 - 5824 [rewrite~2!interp_state_bind.] 0.025 secs (0.025u,0.s) -Chars 5827 - 5848 [ebind;~intros;~subst.] 0.003 secs (0.003u,0.s) +Chars 5748 - 5760 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5761 - 5768 [(intros).] 0. secs (0.u,0.s) +Chars 5771 - 5793 [(rewrite~2!unfold_iter).] 0.036 secs (0.036u,0.s) +Chars 5796 - 5824 [(rewrite~2!interp_state_bind).] 0.036 secs (0.035u,0.s) +Chars 5827 - 5848 [(ebind;~intros;~subst).] 0.004 secs (0.004u,0.s) Chars 5852 - 5853 [-] 0. secs (0.u,0.s) -Chars 5854 - 5864 [do~2~step.] 0.012 secs (0.012u,0.s) -Chars 5865 - 5881 [eapply~Ht;~auto.] 0. secs (0.u,0.s) +Chars 5854 - 5864 [(do~2~step).] 0.017 secs (0.017u,0.s) +Chars 5865 - 5881 [(eapply~Ht;~auto).] 0. secs (0.u,0.s) Chars 5884 - 5885 [-] 0. secs (0.u,0.s) -Chars 5886 - 5893 [inv~H1.] 0.008 secs (0.008u,0.s) -Chars 5894 - 5906 [inv~snd_rel.] 0.016 secs (0.016u,0.s) +Chars 5886 - 5893 [(inv~H1).] 0.012 secs (0.012u,0.s) +Chars 5894 - 5906 [(inv~snd_rel).] 0.022 secs (0.022u,0.s) Chars 5911 - 5912 [+] 0. secs (0.u,0.s) -Chars 5913 - 5940 [rewrite~2!interp_state_tau.] 0.028 secs (0.028u,0.s) -Chars 5941 - 5946 [etau.] 0. secs (0.u,0.s) +Chars 5913 - 5940 [(rewrite~2!interp_state_tau).] 0.04 secs (0.039u,0.s) +Chars 5941 - 5946 [etau.] 0.001 secs (0.001u,0.s) Chars 5952 - 5953 [+] 0. secs (0.u,0.s) -Chars 5954 - 5981 [rewrite~2!interp_state_ret.] 0.028 secs (0.027u,0.s) +Chars 5954 - 5981 [(rewrite~2!interp_state_ret).] 0.042 secs (0.042u,0.s) Chars 5982 - 5987 [eret.] 0. secs (0.u,0.s) -Chars 5989 - 5993 [Qed.] 0.01 secs (0.01u,0.s) -Chars 5995 - 6657 [Lemma~eutt_interp_state_iter~{...] 0.002 secs (0.002u,0.s) +Chars 5989 - 5993 [Qed.] 0.015 secs (0.015u,0.s) +Chars 5995 - 6657 [Lemma~eutt_interp_state_iter~{...] 0.003 secs (0.003u,0.s) Chars 6658 - 6664 [Proof.] 0. secs (0.u,0.s) -Chars 6667 - 6697 [apply~eutt_interp_state_aloop.] 0. secs (0.u,0.s) -Chars 6698 - 6702 [Qed.] 0. secs (0.u,0.s) +Chars 6667 - 6697 [(apply~eutt_interp_state_aloop).] 0. secs (0.u,0.s) +Chars 6698 - 6702 [Qed.] 0.001 secs (0.001u,0.s) Chars 6704 - 6915 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) Chars 6916 - 6922 [Proof.] 0. secs (0.u,0.s) -Chars 6925 - 7003 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 7006 - 7030 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) -Chars 7033 - 7061 [rewrite~2!unfold_iter;~bcbn.] 0.029 secs (0.029u,0.s) -Chars 7064 - 7083 [rewrite~!bind_bind.] 0.018 secs (0.018u,0.s) -Chars 7086 - 7112 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 7115 - 7141 [rewrite~interp_state_bind.] 0.014 secs (0.014u,0.s) -Chars 7144 - 7150 [ebind.] 0.006 secs (0.006u,0.s) -Chars 7153 - 7179 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) +Chars 6925 - 7003 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 7006 - 7030 [(coinduction;~intros~i~s).] 0.003 secs (0.002u,0.s) +Chars 7033 - 7061 [(rewrite~2!unfold_iter;~bcbn).] 0.043 secs (0.042u,0.s) +Chars 7064 - 7083 [(rewrite~!bind_bind).] 0.027 secs (0.027u,0.s) +Chars 7086 - 7112 [setoid_rewrite~bind_ret_l.] 0.044 secs (0.044u,0.s) +Chars 7115 - 7141 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) +Chars 7144 - 7150 [ebind.] 0.008 secs (0.008u,0.s) +Chars 7153 - 7179 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) Chars 7182 - 7183 [-] 0. secs (0.u,0.s) -Chars 7184 - 7189 [etau.] 0.001 secs (0.001u,0.s) +Chars 7184 - 7189 [etau.] 0.002 secs (0.002u,0.s) Chars 7193 - 7194 [-] 0. secs (0.u,0.s) Chars 7195 - 7200 [eret.] 0. secs (0.u,0.s) -Chars 7202 - 7206 [Qed.] 0.011 secs (0.011u,0.s) -Chars 7208 - 7735 [Lemma~eutt_interp_state_loop~{...] 0.002 secs (0.002u,0.s) +Chars 7202 - 7206 [Qed.] 0.016 secs (0.016u,0.s) +Chars 7208 - 7735 [Lemma~eutt_interp_state_loop~{...] 0.003 secs (0.003u,0.s) Chars 7736 - 7742 [Proof.] 0. secs (0.u,0.s) -Chars 7745 - 7752 [intros.] 0. secs (0.u,0.s) -Chars 7755 - 7922 [unfold~loop,~bimap,~Bimap_Copr...] 0. secs (0.u,0.s) -Chars 7925 - 7946 [rewrite~2!bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 7949 - 8001 [eapply~(eutt_interp_state_iter...] 0.019 secs (0.019u,0.s) -Chars 8004 - 8032 [rewrite~2!interp_state_bind.] 0.007 secs (0.007u,0.s) +Chars 7745 - 7752 [(intros).] 0. secs (0.u,0.s) +Chars 7755 - 7922 [(unfold~loop,~bimap,~Bimap_Cop...] 0. secs (0.u,0.s) +Chars 7925 - 7946 [(rewrite~2!bind_ret_l).] 0.013 secs (0.013u,0.s) +Chars 7949 - 8001 [(eapply~(eutt_interp_state_ite...] 0.025 secs (0.025u,0.s) +Chars 8004 - 8032 [(rewrite~2!interp_state_bind).] 0.011 secs (0.011u,0.s) Chars 8035 - 8041 [subst.] 0. secs (0.u,0.s) -Chars 8044 - 8073 [eapply~eutt_bind_eutt;~eauto.] 0.01 secs (0.01u,0.s) -Chars 8076 - 8083 [intros.] 0. secs (0.u,0.s) -Chars 8086 - 8122 [cbn~in~H2;~destruct~H2~as~[H21...] 0. secs (0.u,0.s) -Chars 8125 - 8159 [destruct~(snd~u1);~rewrite~<-~...] 0.001 secs (0.001u,0.s) +Chars 8044 - 8073 [(eapply~eutt_bind_eutt;~eauto).] 0.015 secs (0.015u,0.s) +Chars 8076 - 8083 [(intros).] 0. secs (0.u,0.s) +Chars 8086 - 8122 [(cbn~in~H2;~destruct~H2~as~[H2...] 0. secs (0.u,0.s) +Chars 8125 - 8159 [(destruct~(snd~u1);~rewrite~<-...] 0.002 secs (0.002u,0.s) Chars 8162 - 8163 [-] 0. secs (0.u,0.s) -Chars 8164 - 8203 [rewrite~bind_ret_l,~2!interp_s...] 0.007 secs (0.007u,0.s) -Chars 8208 - 8213 [step.] 0.001 secs (0.001u,0.s) +Chars 8164 - 8203 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) +Chars 8208 - 8213 [step.] 0.002 secs (0.002u,0.s) Chars 8219 - 8224 [eret.] 0.001 secs (0.001u,0.s) Chars 8228 - 8229 [-] 0. secs (0.u,0.s) -Chars 8230 - 8269 [rewrite~bind_ret_l,~2!interp_s...] 0.008 secs (0.007u,0.s) -Chars 8270 - 8275 [step.] 0.001 secs (0.001u,0.s) +Chars 8230 - 8269 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) +Chars 8270 - 8275 [step.] 0.002 secs (0.002u,0.s) Chars 8276 - 8281 [eret.] 0.001 secs (0.001u,0.s) -Chars 8283 - 8287 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8283 - 8287 [Qed.] 0.012 secs (0.012u,0.s) Chars 8336 - 8479 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) Chars 8481 - 8799 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 8800 - 8806 [Proof.] 0. secs (0.u,0.s) -Chars 8809 - 8887 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 8890 - 8914 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) -Chars 8917 - 8945 [rewrite~2!unfold_iter;~bcbn.] 0.029 secs (0.029u,0.s) -Chars 8948 - 8967 [rewrite~!bind_bind.] 0.017 secs (0.017u,0.s) -Chars 8970 - 8996 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 8999 - 9025 [rewrite~interp_state_bind.] 0.014 secs (0.014u,0.s) -Chars 9028 - 9034 [ebind.] 0.006 secs (0.006u,0.s) +Chars 8809 - 8887 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 8890 - 8914 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) +Chars 8917 - 8945 [(rewrite~2!unfold_iter;~bcbn).] 0.045 secs (0.044u,0.s) +Chars 8948 - 8967 [(rewrite~!bind_bind).] 0.026 secs (0.026u,0.s) +Chars 8970 - 8996 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) +Chars 8999 - 9025 [(rewrite~interp_state_bind).] 0.021 secs (0.021u,0.s) +Chars 9028 - 9034 [ebind.] 0.009 secs (0.009u,0.s) Chars 9038 - 9039 [-] 0. secs (0.u,0.s) -Chars 9040 - 9050 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 9051 - 9062 [apply~EQ_t.] 0. secs (0.u,0.s) +Chars 9040 - 9050 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 9051 - 9062 [(apply~EQ_t).] 0. secs (0.u,0.s) Chars 9065 - 9066 [-] 0. secs (0.u,0.s) -Chars 9067 - 9093 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) +Chars 9067 - 9093 [(intros~[s'~[]]~_~[];~bcbn).] 0.005 secs (0.005u,0.s) Chars 9098 - 9099 [+] 0. secs (0.u,0.s) -Chars 9100 - 9105 [etau.] 0.001 secs (0.001u,0.s) +Chars 9100 - 9105 [etau.] 0.002 secs (0.002u,0.s) Chars 9111 - 9112 [+] 0. secs (0.u,0.s) Chars 9113 - 9118 [eret.] 0. secs (0.u,0.s) -Chars 9120 - 9124 [Qed.] 0.011 secs (0.011u,0.s) +Chars 9120 - 9124 [Qed.] 0.016 secs (0.016u,0.s) Chars 9126 - 9370 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) Chars 9371 - 9377 [Proof.] 0. secs (0.u,0.s) -Chars 9380 - 9405 [eapply~interp_state_iter.] 0. secs (0.u,0.s) -Chars 9408 - 9417 [intros~i.] 0. secs (0.u,0.s) -Chars 9420 - 9424 [red.] 0. secs (0.u,0.s) +Chars 9380 - 9405 [(eapply~interp_state_iter).] 0. secs (0.u,0.s) +Chars 9408 - 9417 [(intros~i).] 0. secs (0.u,0.s) +Chars 9420 - 9424 [(red).] 0. secs (0.u,0.s) Chars 9425 - 9437 [reflexivity.] 0. secs (0.u,0.s) -Chars 9438 - 9442 [Qed.] 0. secs (0.u,0.s) +Chars 9438 - 9442 [Qed.] 0.001 secs (0.001u,0.s) Chars 9444 - 9721 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) Chars 9722 - 9728 [Proof.] 0. secs (0.u,0.s) -Chars 9731 - 9809 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 9812 - 9836 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) -Chars 9839 - 9867 [rewrite~2!unfold_iter;~bcbn.] 0.029 secs (0.029u,0.s) -Chars 9870 - 9889 [rewrite~!bind_bind.] 0.016 secs (0.016u,0.s) -Chars 9892 - 9918 [setoid_rewrite~bind_ret_l.] 0.03 secs (0.03u,0.s) -Chars 9921 - 9947 [rewrite~interp_state_bind.] 0.013 secs (0.013u,0.s) -Chars 9950 - 9956 [ebind.] 0.006 secs (0.006u,0.s) +Chars 9731 - 9809 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 9812 - 9836 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) +Chars 9839 - 9867 [(rewrite~2!unfold_iter;~bcbn).] 0.039 secs (0.039u,0.s) +Chars 9870 - 9889 [(rewrite~!bind_bind).] 0.025 secs (0.025u,0.s) +Chars 9892 - 9918 [setoid_rewrite~bind_ret_l.] 0.039 secs (0.039u,0.s) +Chars 9921 - 9947 [(rewrite~interp_state_bind).] 0.019 secs (0.019u,0.s) +Chars 9950 - 9956 [ebind.] 0.009 secs (0.009u,0.s) Chars 9960 - 9961 [-] 0. secs (0.u,0.s) -Chars 9962 - 9972 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 9973 - 9983 [apply~Heq.] 0. secs (0.u,0.s) +Chars 9962 - 9972 [(do~2~step).] 0.017 secs (0.017u,0.s) +Chars 9973 - 9983 [(apply~Heq).] 0. secs (0.u,0.s) Chars 9986 - 9987 [-] 0. secs (0.u,0.s) -Chars 9988 - 10014 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) +Chars 9988 - 10014 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) Chars 10019 - 10020 [+] 0. secs (0.u,0.s) -Chars 10021 - 10026 [etau.] 0.001 secs (0.001u,0.s) +Chars 10021 - 10026 [etau.] 0.002 secs (0.002u,0.s) Chars 10032 - 10033 [+] 0. secs (0.u,0.s) Chars 10034 - 10039 [eret.] 0. secs (0.u,0.s) -Chars 10041 - 10045 [Qed.] 0.01 secs (0.01u,0.s) +Chars 10041 - 10045 [Qed.] 0.016 secs (0.016u,0.s) diff --git a/theories/Events/Writer.v.timing b/theories/Events/Writer.v.timing index 111d4bf4..70a40326 100644 --- a/theories/Events/Writer.v.timing +++ b/theories/Events/Writer.v.timing @@ -1,17 +1,17 @@ Chars 57 - 80 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 81 - 105 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.031 secs (0.025u,0.006s) +Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.039 secs (0.031u,0.008s) Chars 145 - 166 [Import~ListNotations.] 0. secs (0.u,0.s) Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.089 secs (0.084u,0.005s) +Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.112 secs (0.105u,0.007s) Chars 501 - 529 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 589 - 663 [Variant~writerE~(W~:~Type)~:~T...] 0. secs (0.u,0.s) Chars 687 - 778 [Definition~tell~{W}~{E}~`{writ...] 0. secs (0.u,0.s) Chars 919 - 1083 [Definition~handle_writer_list~...] 0. secs (0.u,0.s) Chars 1085 - 1236 [Definition~run_writer_list_sta...] 0.001 secs (0.001u,0.s) Chars 1238 - 1280 [Arguments~run_writer_list_stat...] 0. secs (0.u,0.s) -Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0. secs (0.u,0.s) +Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0.001 secs (0.001u,0.s) Chars 1604 - 1640 [Arguments~run_writer_list~{W~E...] 0. secs (0.u,0.s) -Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0. secs (0.u,0.s) +Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0.001 secs (0.u,0.s) Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.001u,0.s) Chars 2160 - 2200 [Arguments~run_writer~{W~E}~Mon...] 0. secs (0.u,0.s) diff --git a/theories/ITree.v.timing b/theories/ITree.v.timing index efff63d7..0983e9fa 100644 --- a/theories/ITree.v.timing +++ b/theories/ITree.v.timing @@ -1 +1 @@ -Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.042 secs (0.034u,0.008s) +Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.059 secs (0.048u,0.011s) diff --git a/theories/ITreeFacts.v.timing b/theories/ITreeFacts.v.timing index 77c93217..10b1c61d 100644 --- a/theories/ITreeFacts.v.timing +++ b/theories/ITreeFacts.v.timing @@ -1 +1 @@ -Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.184 secs (0.161u,0.02s) +Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.229 secs (0.202u,0.026s) diff --git a/theories/Indexed/Function.v.timing b/theories/Indexed/Function.v.timing index 69e4223e..f6fe5ff9 100644 --- a/theories/Indexed/Function.v.timing +++ b/theories/Indexed/Function.v.timing @@ -1,4 +1,4 @@ -Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.011 secs (0.008u,0.002s) +Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.014 secs (0.011u,0.002s) Chars 352 - 378 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 428 - 482 [Definition~IFun~(E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 545 - 610 [Definition~apply_IFun~{E}~{F}~...] 0. secs (0.u,0.s) diff --git a/theories/Indexed/FunctionFacts.v.timing b/theories/Indexed/FunctionFacts.v.timing index 38a8d83b..ccfdccd7 100644 --- a/theories/Indexed/FunctionFacts.v.timing +++ b/theories/Indexed/FunctionFacts.v.timing @@ -1,9 +1,9 @@ -Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.006 secs (0.004u,0.001s) +Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) Chars 212 - 238 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 255 - 475 [#[global]~Instance~Proper_appl...] 0. secs (0.u,0.s) Chars 476 - 482 [Proof.] 0. secs (0.u,0.s) -Chars 485 - 503 [repeat~red;~eauto.] 0. secs (0.u,0.s) +Chars 485 - 503 [(repeat~red;~eauto).] 0. secs (0.u,0.s) Chars 504 - 508 [Qed.] 0. secs (0.u,0.s) Chars 510 - 626 [Lemma~fold_apply_IFun~{E~F~:~T...] 0. secs (0.u,0.s) Chars 627 - 633 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Relation.v.timing b/theories/Indexed/Relation.v.timing index f04e1ad1..90c19184 100644 --- a/theories/Indexed/Relation.v.timing +++ b/theories/Indexed/Relation.v.timing @@ -1,29 +1,29 @@ -Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.005 secs (0.003u,0.002s) -Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.002 secs (0.001u,0.s) +Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.008 secs (0.005u,0.002s) +Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) Chars 157 - 183 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 292 - 538 [Definition~i_respectful~{A~B~:...] 0. secs (0.u,0.s) Chars 540 - 718 [Definition~i_pointwise~{A~B~:~...] 0. secs (0.u,0.s) Chars 720 - 915 [#[global]~Instance~Reflexive_i...] 0. secs (0.u,0.s) Chars 916 - 922 [Proof.] 0. secs (0.u,0.s) -Chars 925 - 971 [repeat~red;~intros;~red~in~Ref...] 0. secs (0.u,0.s) +Chars 925 - 971 [(repeat~red;~intros;~red~in~Re...] 0. secs (0.u,0.s) Chars 972 - 976 [Qed.] 0. secs (0.u,0.s) Chars 978 - 1173 [#[global]~Instance~Symmetric_i...] 0. secs (0.u,0.s) Chars 1174 - 1180 [Proof.] 0. secs (0.u,0.s) -Chars 1183 - 1229 [repeat~red;~intros;~red~in~Sym...] 0. secs (0.u,0.s) +Chars 1183 - 1229 [(repeat~red;~intros;~red~in~Sy...] 0. secs (0.u,0.s) Chars 1230 - 1234 [Qed.] 0. secs (0.u,0.s) Chars 1236 - 1435 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 1436 - 1442 [Proof.] 0. secs (0.u,0.s) -Chars 1445 - 1492 [repeat~red;~intros;~red~in~Tra...] 0. secs (0.u,0.s) +Chars 1445 - 1492 [(repeat~red;~intros;~red~in~Tr...] 0. secs (0.u,0.s) Chars 1493 - 1497 [Qed.] 0. secs (0.u,0.s) Chars 1499 - 1702 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 1703 - 1709 [Proof.] 0. secs (0.u,0.s) -Chars 1712 - 1741 [split;~try~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1712 - 1741 [(split;~try~typeclasses~eauto).] 0.001 secs (0.u,0.s) Chars 1742 - 1746 [Qed.] 0. secs (0.u,0.s) Chars 1748 - 1944 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) Chars 1945 - 1951 [Proof.] 0. secs (0.u,0.s) -Chars 1954 - 1986 [repeat~red;~intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 1954 - 1986 [(repeat~red;~intros;~subst;~au...] 0. secs (0.u,0.s) Chars 1987 - 1991 [Qed.] 0. secs (0.u,0.s) Chars 2060 - 2248 [Definition~subrelation_i_respe...] 0. secs (0.u,0.s) Chars 2249 - 2255 [Proof.] 0. secs (0.u,0.s) -Chars 2258 - 2275 [repeat~red;~auto.] 0. secs (0.u,0.s) +Chars 2258 - 2275 [(repeat~red;~auto).] 0. secs (0.u,0.s) Chars 2276 - 2280 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Sum.v.timing b/theories/Indexed/Sum.v.timing index 826513fa..a8f02b05 100644 --- a/theories/Indexed/Sum.v.timing +++ b/theories/Indexed/Sum.v.timing @@ -1,4 +1,4 @@ -Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) +Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.005 secs (0.003u,0.001s) Chars 189 - 212 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 213 - 237 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 368 - 461 [Variant~sum1~(E1~E2~:~Type~->~...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Handler.v.timing b/theories/Interp/Handler.v.timing index ce37c368..83dcd3b0 100644 --- a/theories/Interp/Handler.v.timing +++ b/theories/Interp/Handler.v.timing @@ -1,15 +1,15 @@ -Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.038 secs (0.031u,0.006s) +Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.059 secs (0.048u,0.011s) Chars 362 - 396 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 398 - 427 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 476 - 491 [Module~Handler.] 0. secs (0.u,0.s) Chars 726 - 818 [Definition~htrigger~{A}~{B}~(m...] 0. secs (0.u,0.s) Chars 971 - 1037 [Definition~id_~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0. secs (0.u,0.s) +Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0.001 secs (0.u,0.s) Chars 1282 - 1360 [Definition~inl_~{E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 1404 - 1482 [Definition~inr_~{E~F~:~Type~->...] 0. secs (0.u,0.s) -Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0.013 secs (0.012u,0.s) -Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0. secs (0.u,0.s) +Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0.02 secs (0.018u,0.001s) +Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0.001 secs (0.001u,0.s) Chars 2305 - 2405 [Definition~empty~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 2407 - 2419 [End~Handler.] 0. secs (0.u,0.s) Chars 2451 - 2507 [Definition~Handler~(E~F~:~Type...] 0. secs (0.u,0.s) diff --git a/theories/Interp/HandlerFacts.v.timing b/theories/Interp/HandlerFacts.v.timing index 7e3f88b3..82c1e21c 100644 --- a/theories/Interp/HandlerFacts.v.timing +++ b/theories/Interp/HandlerFacts.v.timing @@ -1,339 +1,339 @@ -Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.057 secs (0.049u,0.008s) +Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.083 secs (0.071u,0.012s) Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) -Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) +Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0.001 secs (0.001u,0.s) Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 794 [compute;~intros.] 0. secs (0.u,0.s) -Chars 797 - 821 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) -Chars 822 - 826 [Qed.] 0. secs (0.u,0.s) +Chars 782 - 794 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 797 - 821 [(apply~eutt_interp;~auto).] 0. secs (0.u,0.s) +Chars 822 - 826 [Qed.] 0.001 secs (0.001u,0.s) Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) -Chars 879 - 891 [compute;~intros.] 0. secs (0.u,0.s) -Chars 894 - 919 [rewrite~interp_trigger_h.] 0.001 secs (0.001u,0.s) +Chars 879 - 891 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 894 - 919 [(rewrite~interp_trigger_h).] 0.002 secs (0.002u,0.s) Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) -Chars 933 - 937 [Qed.] 0. secs (0.u,0.s) +Chars 933 - 937 [Qed.] 0.001 secs (0.001u,0.s) Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) -Chars 990 - 1002 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1005 - 1028 [rewrite~interp_trigger.] 0.008 secs (0.008u,0.s) +Chars 990 - 1002 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1005 - 1028 [(rewrite~interp_trigger).] 0.013 secs (0.013u,0.s) Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) -Chars 1044 - 1048 [Qed.] 0. secs (0.u,0.s) +Chars 1044 - 1048 [Qed.] 0.001 secs (0.001u,0.s) Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1117 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1120 - 1142 [rewrite~interp_interp.] 0.037 secs (0.037u,0.s) +Chars 1105 - 1117 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1120 - 1142 [(rewrite~interp_interp).] 0.05 secs (0.05u,0.s) Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) -Chars 1158 - 1162 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1158 - 1162 [Qed.] 0.002 secs (0.002u,0.s) Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) -Chars 1226 - 1251 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 1226 - 1251 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) -Chars 1336 - 1355 [compute;~contradiction.] 0. secs (0.u,0.s) +Chars 1336 - 1355 [(compute;~contradiction).] 0. secs (0.u,0.s) Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) -Chars 1524 - 1536 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1539 - 1571 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) -Chars 1572 - 1576 [Qed.] 0. secs (0.u,0.s) +Chars 1524 - 1536 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1539 - 1571 [(destruct~(_~:~sum1~_~_~_);~au...] 0. secs (0.u,0.s) +Chars 1572 - 1576 [Qed.] 0.001 secs (0.001u,0.s) Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) -Chars 1636 - 1648 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1651 - 1674 [rewrite~interp_trigger.] 0.012 secs (0.011u,0.001s) +Chars 1636 - 1648 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1651 - 1674 [(rewrite~interp_trigger).] 0.017 secs (0.015u,0.001s) Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) -Chars 1754 - 1766 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1769 - 1792 [rewrite~interp_trigger.] 0.012 secs (0.009u,0.002s) +Chars 1754 - 1766 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1769 - 1792 [(rewrite~interp_trigger).] 0.018 secs (0.014u,0.004s) Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) -Chars 1808 - 1812 [Qed.] 0.001 secs (0.u,0.s) +Chars 1808 - 1812 [Qed.] 0.001 secs (0.001u,0.s) Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) -Chars 1884 - 1896 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1899 - 1925 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) +Chars 1884 - 1896 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1899 - 1925 [(destruct~(_~:~sum1~_~_~_)).] 0.001 secs (0.u,0.s) Chars 1928 - 1929 [-] 0. secs (0.u,0.s) -Chars 1930 - 1959 [rewrite~<-~H,~interp_trigger.] 0.016 secs (0.015u,0.s) +Chars 1930 - 1959 [(rewrite~<-~H,~interp_trigger).] 0.024 secs (0.023u,0.001s) Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) Chars 1975 - 1976 [-] 0. secs (0.u,0.s) -Chars 1977 - 2007 [rewrite~<-~H0,~interp_trigger.] 0.014 secs (0.014u,0.s) +Chars 1977 - 2007 [(rewrite~<-~H0,~interp_trigger).] 0.021 secs (0.02u,0.s) Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) -Chars 2021 - 2025 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2021 - 2025 [Qed.] 0.002 secs (0.002u,0.s) Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) -Chars 2096 - 2121 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2096 - 2121 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2314 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2317 - 2348 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) +Chars 2301 - 2314 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2317 - 2348 [(apply~Proper_interp_mrec;~auto).] 0. secs (0.u,0.s) Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) -Chars 2419 - 2431 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2434 - 2464 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) +Chars 2419 - 2431 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 2434 - 2464 [(rewrite~interp_mrec_as_interp).] 0.002 secs (0.002u,0.s) Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) -Chars 2552 - 2564 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2567 - 2577 [pattern~f.] 0.003 secs (0.003u,0.s) -Chars 2580 - 2678 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) +Chars 2552 - 2564 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 2567 - 2577 [(pattern~f).] 0.004 secs (0.004u,0.s) +Chars 2580 - 2678 [(match~goal~with~~|~|-~?G~?f~=...] 0. secs (0.u,0.s) Chars 2681 - 2682 [{] 0. secs (0.u,0.s) -Chars 2683 - 2738 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) +Chars 2683 - 2738 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) Chars 2743 - 2744 [-] 0. secs (0.u,0.s) Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) -Chars 2755 - 2792 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 2755 - 2792 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) Chars 2799 - 2800 [+] 0. secs (0.u,0.s) Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) Chars 2820 - 2821 [+] 0. secs (0.u,0.s) -Chars 2822 - 2879 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) +Chars 2822 - 2879 [(apply~euttge_interp_mrec;~rep...] 0. secs (0.u,0.s) Chars 2884 - 2885 [-] 0. secs (0.u,0.s) -Chars 2886 - 2928 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) +Chars 2886 - 2928 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) Chars 2935 - 2936 [+] 0. secs (0.u,0.s) -Chars 2937 - 2948 [intros~?~?.] 0. secs (0.u,0.s) -Chars 2949 - 2969 [apply~euttge_interp.] 0. secs (0.u,0.s) +Chars 2937 - 2948 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 2949 - 2969 [(apply~euttge_interp).] 0. secs (0.u,0.s) Chars 2978 - 2979 [*] 0. secs (0.u,0.s) Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) Chars 3001 - 3002 [*] 0. secs (0.u,0.s) -Chars 3003 - 3020 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 3003 - 3020 [(apply~tau_euttge).] 0. secs (0.u,0.s) Chars 3027 - 3028 [+] 0. secs (0.u,0.s) -Chars 3029 - 3048 [rewrite~tau_euttge.] 0.01 secs (0.01u,0.s) +Chars 3029 - 3048 [(rewrite~tau_euttge).] 0.014 secs (0.014u,0.s) Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) Chars 3064 - 3065 [}] 0. secs (0.u,0.s) -Chars 3068 - 3296 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) -Chars 3299 - 3338 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) +Chars 3068 - 3296 [(match~goal~with~~|~|-~_~_~(_~...] 0.002 secs (0.002u,0.s) +Chars 3299 - 3338 [(remember~(Tau~(f~T~a0))~as~t~...] 0.001 secs (0.001u,0.s) Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 3453 - 3485 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) -Chars 3488 - 3510 [rewrite~(itree_eta~t).] 0.016 secs (0.016u,0.s) -Chars 3513 - 3534 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 3453 - 3485 [(revert~t;~coinduction;~intros...] 0.006 secs (0.006u,0.s) +Chars 3488 - 3510 [(rewrite~(itree_eta~t)).] 0.024 secs (0.024u,0.s) +Chars 3513 - 3534 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) Chars 3537 - 3538 [-] 0. secs (0.u,0.s) -Chars 3539 - 3566 [rewrite~unfold_interp_mrec.] 0.015 secs (0.014u,0.s) +Chars 3539 - 3566 [(rewrite~unfold_interp_mrec).] 0.021 secs (0.021u,0.s) Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) -Chars 3578 - 3599 [rewrite~2!interp_ret.] 0.031 secs (0.031u,0.s) -Chars 3604 - 3631 [rewrite~unfold_interp_mrec.] 0.013 secs (0.013u,0.s) +Chars 3578 - 3599 [(rewrite~2!interp_ret).] 0.043 secs (0.043u,0.s) +Chars 3604 - 3631 [(rewrite~unfold_interp_mrec).] 0.02 secs (0.02u,0.s) Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 3651 - 3652 [-] 0. secs (0.u,0.s) -Chars 3653 - 3680 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3653 - 3680 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) -Chars 3692 - 3713 [rewrite~2!interp_tau.] 0.032 secs (0.032u,0.s) -Chars 3718 - 3764 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 3692 - 3713 [(rewrite~2!interp_tau).] 0.045 secs (0.044u,0.s) +Chars 3718 - 3764 [(rewrite~(unfold_interp_mrec~_...] 0.02 secs (0.02u,0.s) Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3811 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) +Chars 3784 - 3811 [(rewrite~unfold_interp_mrec).] 0.021 secs (0.021u,0.s) Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) -Chars 3822 - 3841 [rewrite~interp_vis.] 0.019 secs (0.019u,0.s) -Chars 3846 - 3863 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) +Chars 3822 - 3841 [(rewrite~interp_vis).] 0.027 secs (0.027u,0.s) +Chars 3846 - 3863 [(destruct~e;~bcbn).] 0.001 secs (0.001u,0.s) Chars 3868 - 3869 [+] 0. secs (0.u,0.s) -Chars 3870 - 3889 [rewrite~interp_tau.] 0.015 secs (0.014u,0.s) -Chars 3896 - 3936 [rewrite~2!interp_mrec_bind,~in...] 0.048 secs (0.048u,0.s) -Chars 3943 - 3951 [subst~h.] 0.002 secs (0.002u,0.s) -Chars 3959 - 3964 [bcbn.] 0.041 secs (0.041u,0.s) -Chars 3971 - 3994 [rewrite~interp_trigger.] 0.033 secs (0.032u,0.s) -Chars 4001 - 4028 [rewrite~unfold_interp_mrec.] 0.029 secs (0.029u,0.s) -Chars 4030 - 4035 [bcbn.] 0.036 secs (0.036u,0.s) -Chars 4043 - 4071 [rewrite~interp_mrec_trigger.] 0.027 secs (0.027u,0.s) -Chars 4072 - 4077 [bcbn.] 0.037 secs (0.037u,0.s) -Chars 4085 - 4107 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 4236 - 4256 [rewrite~!interp_tau.] 0.095 secs (0.093u,0.s) -Chars 4263 - 4310 [rewrite~(unfold_interp_mrec~_~...] 0.087 secs (0.086u,0.s) -Chars 4317 - 4335 [rewrite~!bind_tau.] 0.083 secs (0.08u,0.s) -Chars 4342 - 4347 [taus.] 0. secs (0.u,0.s) -Chars 4348 - 4406 [rewrite~tau_euttge,~<-~interp_...] 0.111 secs (0.111u,0.s) -Chars 4413 - 4454 [setoid_rewrite~(tau_euttge~(in...] 0.06 secs (0.06u,0.s) -Chars 4461 - 4484 [rewrite~<-~interp_bind.] 0.028 secs (0.027u,0.s) +Chars 3870 - 3889 [(rewrite~interp_tau).] 0.021 secs (0.021u,0.s) +Chars 3896 - 3936 [(rewrite~2!interp_mrec_bind,~i...] 0.066 secs (0.066u,0.s) +Chars 3943 - 3951 [subst~h.] 0.003 secs (0.003u,0.s) +Chars 3959 - 3964 [bcbn.] 0.053 secs (0.053u,0.s) +Chars 3971 - 3994 [(rewrite~interp_trigger).] 0.042 secs (0.041u,0.s) +Chars 4001 - 4028 [(rewrite~unfold_interp_mrec).] 0.041 secs (0.04u,0.s) +Chars 4030 - 4035 [bcbn.] 0.051 secs (0.051u,0.s) +Chars 4043 - 4071 [(rewrite~interp_mrec_trigger).] 0.036 secs (0.036u,0.s) +Chars 4072 - 4077 [bcbn.] 0.051 secs (0.05u,0.s) +Chars 4085 - 4107 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) +Chars 4236 - 4256 [(rewrite~!interp_tau).] 0.121 secs (0.121u,0.s) +Chars 4263 - 4310 [(rewrite~(unfold_interp_mrec~_...] 0.116 secs (0.115u,0.s) +Chars 4317 - 4335 [(rewrite~!bind_tau).] 0.102 secs (0.102u,0.s) +Chars 4342 - 4347 [taus.] 0.001 secs (0.001u,0.s) +Chars 4348 - 4406 [(rewrite~tau_euttge,~<-~interp...] 0.153 secs (0.152u,0.s) +Chars 4413 - 4454 [setoid_rewrite~(tau_euttge~(in...] 0.074 secs (0.074u,0.s) +Chars 4461 - 4484 [(rewrite~<-~interp_bind).] 0.035 secs (0.035u,0.s) Chars 4491 - 4496 [auto.] 0. secs (0.u,0.s) Chars 4501 - 4502 [+] 0. secs (0.u,0.s) -Chars 4503 - 4522 [rewrite~interp_vis.] 0.016 secs (0.016u,0.s) -Chars 4529 - 4554 [rewrite~interp_mrec_bind.] 0.016 secs (0.016u,0.s) -Chars 4561 - 4575 [subst~h;~bcbn.] 0.003 secs (0.003u,0.s) -Chars 4582 - 4588 [ebind.] 0.008 secs (0.008u,0.s) +Chars 4503 - 4522 [(rewrite~interp_vis).] 0.02 secs (0.02u,0.s) +Chars 4529 - 4554 [(rewrite~interp_mrec_bind).] 0.023 secs (0.023u,0.s) +Chars 4561 - 4575 [(subst~h;~bcbn).] 0.004 secs (0.004u,0.s) +Chars 4582 - 4588 [ebind.] 0.012 secs (0.012u,0.s) Chars 4589 - 4609 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) Chars 4617 - 4618 [{] 0. secs (0.u,0.s) -Chars 4619 - 4629 [do~2~step.] 0.008 secs (0.008u,0.s) -Chars 4630 - 4675 [rewrite~interp_mrec_as_interp,...] 0.018 secs (0.018u,0.s) -Chars 4684 - 4712 [rewrite~<-~interp_id_h~~at~1.] 0.052 secs (0.052u,0.s) -Chars 4721 - 4757 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) -Chars 4766 - 4777 [intros~?~?.] 0. secs (0.u,0.s) -Chars 4786 - 4814 [rewrite~interp_trigger;~cbn.] 0.008 secs (0.008u,0.s) +Chars 4619 - 4629 [(do~2~step).] 0.012 secs (0.012u,0.s) +Chars 4630 - 4675 [(rewrite~interp_mrec_as_interp...] 0.025 secs (0.024u,0.s) +Chars 4684 - 4712 [(rewrite~<-~interp_id_h~~at~1).] 0.091 secs (0.081u,0.s) +Chars 4721 - 4757 [(eapply~eutt_interp;~try~refle...] 0.002 secs (0.002u,0.s) +Chars 4766 - 4777 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 4786 - 4814 [(rewrite~interp_trigger;~cbn).] 0.011 secs (0.011u,0.s) Chars 4823 - 4835 [reflexivity.] 0. secs (0.u,0.s) Chars 4836 - 4837 [}] 0. secs (0.u,0.s) -Chars 4844 - 4858 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 4865 - 4912 [rewrite~(unfold_interp_mrec~_~...] 0.027 secs (0.027u,0.s) +Chars 4844 - 4858 [(intros~?~_~[]).] 0.001 secs (0.001u,0.s) +Chars 4865 - 4912 [(rewrite~(unfold_interp_mrec~_...] 0.037 secs (0.037u,0.s) Chars 4919 - 4924 [taus.] 0. secs (0.u,0.s) -Chars 4932 - 4951 [rewrite~tau_euttge.] 0.012 secs (0.012u,0.s) -Chars 4958 - 4968 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4970 - 4974 [Qed.] 0.106 secs (0.103u,0.s) +Chars 4932 - 4951 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 4958 - 4968 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4970 - 4974 [Qed.] 0.146 secs (0.145u,0.001s) Chars 4976 - 5000 [Section~DinatSimulation.] 0. secs (0.u,0.s) Chars 5002 - 5033 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 5034 - 5096 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) Chars 5097 - 5116 [Context~{R~:~Type}.] 0. secs (0.u,0.s) Chars 5118 - 5188 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5190 - 5650 [Inductive~interleaved~:~itree~...] 0.004 secs (0.004u,0.s) +Chars 5190 - 5650 [Inductive~interleaved~:~itree~...] 0.006 secs (0.006u,0.s) Chars 5651 - 5698 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) Chars 5700 - 5744 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) Chars 5745 - 5789 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5791 - 5963 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) +Chars 5791 - 5963 [Theorem~interleaved_mrec~:~~~f...] 0.003 secs (0.003u,0.s) Chars 5964 - 5992 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 5996 - 6016 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 6019 - 6031 [induction~H.] 0. secs (0.u,0.s) +Chars 5996 - 6016 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) +Chars 6019 - 6031 [(induction~H).] 0.001 secs (0.u,0.s) Chars 6034 - 6035 [-] 0. secs (0.u,0.s) -Chars 6036 - 6071 [rewrite~2!unfold_interp_mrec;~...] 0.029 secs (0.028u,0.s) +Chars 6036 - 6071 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.036u,0.s) Chars 6072 - 6084 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 6089 - 6090 [-] 0. secs (0.u,0.s) -Chars 6091 - 6135 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) +Chars 6091 - 6135 [(rewrite~(itree_eta~t);~destru...] 0.023 secs (0.023u,0.s) Chars 6140 - 6141 [+] 0. secs (0.u,0.s) -Chars 6142 - 6175 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.042u,0.s) +Chars 6142 - 6175 [(rewrite~interp_ret,~2!bind_re...] 0.057 secs (0.056u,0.s) Chars 6176 - 6181 [auto.] 0. secs (0.u,0.s) Chars 6186 - 6187 [+] 0. secs (0.u,0.s) -Chars 6188 - 6247 [rewrite~interp_tau,~2!bind_tau...] 0.074 secs (0.073u,0.s) +Chars 6188 - 6247 [(rewrite~interp_tau,~2!bind_ta...] 0.1 secs (0.099u,0.s) Chars 6254 - 6261 [taus~...] 0.001 secs (0.001u,0.s) Chars 6268 - 6269 [+] 0. secs (0.u,0.s) -Chars 6270 - 6299 [rewrite~interp_vis,~bind_vis.] 0.032 secs (0.032u,0.s) -Chars 6306 - 6324 [rewrite~bind_bind.] 0.015 secs (0.015u,0.s) -Chars 6331 - 6380 [rewrite~(unfold_interp_mrec~_~...] 0.015 secs (0.015u,0.s) -Chars 6387 - 6404 [destruct~e;~bcbn.] 0.03 secs (0.03u,0.s) -Chars 6405 - 6446 [setoid_rewrite~(tau_euttge~(in...] 0.066 secs (0.066u,0.s) +Chars 6270 - 6299 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.044u,0.s) +Chars 6306 - 6324 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) +Chars 6331 - 6380 [(rewrite~(unfold_interp_mrec~_...] 0.023 secs (0.022u,0.s) +Chars 6387 - 6404 [(destruct~e;~bcbn).] 0.042 secs (0.042u,0.s) +Chars 6405 - 6446 [setoid_rewrite~(tau_euttge~(in...] 0.076 secs (0.076u,0.s) Chars 6453 - 6454 [*] 0. secs (0.u,0.s) -Chars 6455 - 6502 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 6511 - 6546 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) -Chars 6555 - 6598 [rewrite~bind_tau,~unfold_inter...] 0.03 secs (0.03u,0.s) +Chars 6455 - 6502 [(unfold~cat~at~3,~Cat_Handler~...] 0. secs (0.u,0.s) +Chars 6511 - 6546 [(change~(g~X~b)~with~(Tau~(g0~...] 0. secs (0.u,0.s) +Chars 6555 - 6598 [(rewrite~bind_tau,~unfold_inte...] 0.043 secs (0.042u,0.s) Chars 6607 - 6612 [taus.] 0. secs (0.u,0.s) -Chars 6613 - 6634 [rewrite~tau_euttge~...] 0.01 secs (0.01u,0.s) +Chars 6613 - 6634 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) Chars 6641 - 6642 [*] 0. secs (0.u,0.s) -Chars 6643 - 6705 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 6714 - 6735 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) -Chars 6744 - 6777 [rewrite~unfold_interp_mrec;~bcbn.] 0.014 secs (0.014u,0.s) -Chars 6786 - 6806 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 6807 - 6835 [repeat~rewrite~tau_euttge~...] 0.019 secs (0.019u,0.s) +Chars 6643 - 6705 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) +Chars 6714 - 6735 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) +Chars 6744 - 6777 [(rewrite~unfold_interp_mrec;~b...] 0.019 secs (0.019u,0.s) +Chars 6786 - 6806 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 6807 - 6835 [(repeat~rewrite~tau_euttge)~...] 0.026 secs (0.026u,0.s) Chars 6839 - 6840 [-] 0. secs (0.u,0.s) -Chars 6841 - 6885 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) +Chars 6841 - 6885 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.025u,0.s) Chars 6890 - 6891 [+] 0. secs (0.u,0.s) -Chars 6892 - 6925 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.042u,0.s) +Chars 6892 - 6925 [(rewrite~interp_ret,~2!bind_re...] 0.058 secs (0.057u,0.s) Chars 6926 - 6931 [auto.] 0. secs (0.u,0.s) Chars 6936 - 6937 [+] 0. secs (0.u,0.s) -Chars 6938 - 6997 [rewrite~interp_tau,~2!bind_tau...] 0.074 secs (0.074u,0.s) +Chars 6938 - 6997 [(rewrite~interp_tau,~2!bind_ta...] 0.106 secs (0.105u,0.s) Chars 7004 - 7011 [taus~...] 0.001 secs (0.001u,0.s) Chars 7018 - 7019 [+] 0. secs (0.u,0.s) -Chars 7020 - 7049 [rewrite~interp_vis,~bind_vis.] 0.031 secs (0.03u,0.s) -Chars 7056 - 7074 [rewrite~bind_bind.] 0.016 secs (0.016u,0.s) -Chars 7081 - 7130 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) -Chars 7137 - 7154 [destruct~e;~bcbn.] 0.033 secs (0.032u,0.s) -Chars 7155 - 7196 [setoid_rewrite~(tau_euttge~(in...] 0.067 secs (0.066u,0.s) +Chars 7020 - 7049 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.044u,0.s) +Chars 7056 - 7074 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) +Chars 7081 - 7130 [(rewrite~(unfold_interp_mrec~_...] 0.02 secs (0.02u,0.s) +Chars 7137 - 7154 [(destruct~e;~bcbn).] 0.044 secs (0.044u,0.s) +Chars 7155 - 7196 [setoid_rewrite~(tau_euttge~(in...] 0.075 secs (0.075u,0.s) Chars 7203 - 7204 [*] 0. secs (0.u,0.s) -Chars 7205 - 7252 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 7261 - 7296 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) -Chars 7305 - 7363 [rewrite~!bind_tau,~(unfold_int...] 0.036 secs (0.036u,0.s) +Chars 7205 - 7252 [(unfold~cat~at~2,~Cat_Handler~...] 0. secs (0.u,0.s) +Chars 7261 - 7296 [(change~(f~X~a)~with~(Tau~(f0~...] 0. secs (0.u,0.s) +Chars 7305 - 7363 [(rewrite~!bind_tau,~(unfold_in...] 0.05 secs (0.049u,0.s) Chars 7372 - 7377 [taus.] 0. secs (0.u,0.s) -Chars 7378 - 7399 [rewrite~tau_euttge~...] 0.009 secs (0.009u,0.s) +Chars 7378 - 7399 [(rewrite~tau_euttge)~...] 0.012 secs (0.012u,0.s) Chars 7407 - 7408 [*] 0. secs (0.u,0.s) -Chars 7409 - 7471 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 7480 - 7501 [rewrite~bind_trigger.] 0.015 secs (0.015u,0.s) -Chars 7510 - 7543 [rewrite~unfold_interp_mrec;~bcbn.] 0.016 secs (0.016u,0.s) -Chars 7552 - 7572 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 7573 - 7601 [repeat~rewrite~tau_euttge~...] 0.021 secs (0.021u,0.s) -Chars 7602 - 7606 [Qed.] 0.032 secs (0.032u,0.s) -Chars 7608 - 7628 [End~DinatSimulation.] 0. secs (0.u,0.s) +Chars 7409 - 7471 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) +Chars 7480 - 7501 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) +Chars 7510 - 7543 [(rewrite~unfold_interp_mrec;~b...] 0.022 secs (0.022u,0.s) +Chars 7552 - 7572 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 7573 - 7601 [(repeat~rewrite~tau_euttge)~...] 0.029 secs (0.029u,0.s) +Chars 7602 - 7606 [Qed.] 0.045 secs (0.045u,0.s) +Chars 7608 - 7628 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) Chars 7630 - 7648 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) Chars 7650 - 7710 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) Chars 7711 - 7717 [Proof.] 0. secs (0.u,0.s) -Chars 7720 - 7749 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) -Chars 7752 - 7788 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7789 - 7825 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) -Chars 7828 - 8010 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) +Chars 7720 - 7749 [(compute;~intros~a~b~c~f0~g0~T...] 0. secs (0.u,0.s) +Chars 7752 - 7788 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) +Chars 7789 - 7825 [(pose~(g~:=~fun~T~e~=>~Tau~(g0...] 0. secs (0.u,0.s) +Chars 7828 - 8010 [(enough~~~(Recursion.interp_mr...] 0.003 secs (0.003u,0.s) Chars 8013 - 8014 [{] 0. secs (0.u,0.s) -Chars 8015 - 8024 [compute~in~H.] 0. secs (0.u,0.s) -Chars 8025 - 8078 [etransitivity;~[~etransitivity...] 0.002 secs (0.002u,0.s) +Chars 8015 - 8024 [(compute~in~H).] 0. secs (0.u,0.s) +Chars 8025 - 8078 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) Chars 8083 - 8084 [-] 0. secs (0.u,0.s) Chars 8085 - 8094 [symmetry.] 0. secs (0.u,0.s) -Chars 8095 - 8137 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8144 - 8158 [1:~intros~?~?.] 0. secs (0.u,0.s) -Chars 8165 - 8227 [1,~2:~rewrite~tau_euttge;~appl...] 0.012 secs (0.012u,0.s) -Chars 8234 - 8284 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) +Chars 8095 - 8137 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) +Chars 8144 - 8158 [1:~(intros~?~?).] 0. secs (0.u,0.s) +Chars 8165 - 8227 [1,~2:~(rewrite~tau_euttge;~app...] 0.016 secs (0.016u,0.s) +Chars 8234 - 8284 [1,~2:~(intros~?~[];~[~apply~ta...] 0. secs (0.u,0.s) Chars 8289 - 8290 [-] 0. secs (0.u,0.s) -Chars 8291 - 8351 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) -Chars 8358 - 8387 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8394 - 8413 [rewrite~tau_euttge.] 0.009 secs (0.009u,0.s) -Chars 8414 - 8439 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) -Chars 8446 - 8457 [intros~?~?.] 0. secs (0.u,0.s) -Chars 8464 - 8483 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) -Chars 8490 - 8532 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) -Chars 8539 - 8590 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) +Chars 8291 - 8351 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) +Chars 8358 - 8387 [(intros~?~[];~try~reflexivity).] 0.002 secs (0.002u,0.s) +Chars 8394 - 8413 [(rewrite~tau_euttge).] 0.014 secs (0.014u,0.s) +Chars 8414 - 8439 [(apply~euttge_interp_mrec).] 0. secs (0.u,0.s) +Chars 8446 - 8457 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 8464 - 8483 [(rewrite~tau_euttge).] 0.007 secs (0.007u,0.s) +Chars 8490 - 8532 [all:~(apply~euttge_interp;~try...] 0.002 secs (0.002u,0.s) +Chars 8539 - 8590 [all:~(intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) Chars 8593 - 8594 [}] 0. secs (0.u,0.s) -Chars 8597 - 8630 [rewrite~<-~interp_mrec_as_interp.] 0.003 secs (0.003u,0.s) -Chars 8634 - 8671 [rewrite~<-~(bind_ret_r~(interp...] 0.012 secs (0.012u,0.s) -Chars 8674 - 8712 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.016 secs (0.016u,0.s) -Chars 8716 - 8739 [apply~interleaved_mrec.] 0. secs (0.u,0.s) -Chars 8742 - 8759 [do~2~constructor.] 0. secs (0.u,0.s) -Chars 8760 - 8764 [Qed.] 0.013 secs (0.013u,0.s) +Chars 8597 - 8630 [(rewrite~<-~interp_mrec_as_int...] 0.003 secs (0.003u,0.s) +Chars 8634 - 8671 [(rewrite~<-~(bind_ret_r~(inter...] 0.016 secs (0.016u,0.s) +Chars 8674 - 8712 [(rewrite~<-~(bind_ret_r~(f~_~a...] 0.022 secs (0.022u,0.s) +Chars 8716 - 8739 [(apply~interleaved_mrec).] 0. secs (0.u,0.s) +Chars 8742 - 8759 [(do~2~constructor).] 0. secs (0.u,0.s) +Chars 8760 - 8764 [Qed.] 0.015 secs (0.015u,0.s) Chars 8766 - 8783 [Import~Recursion.] 0. secs (0.u,0.s) Chars 8785 - 8847 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) Chars 8848 - 8854 [Proof.] 0. secs (0.u,0.s) -Chars 8857 - 8880 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) -Chars 8883 - 8921 [remember~(f0~T~x)~as~t~eqn:EQt...] 0.001 secs (0.001u,0.s) -Chars 8924 - 8960 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 8963 - 9662 [enough~~(interp_mrec~(fun~_~d~...] 0.002 secs (0.002u,0.s) +Chars 8857 - 8880 [(compute;~intros~a~b~f0~T~x).] 0. secs (0.u,0.s) +Chars 8883 - 8921 [(remember~(f0~T~x)~as~t~eqn:EQ...] 0.001 secs (0.001u,0.s) +Chars 8924 - 8960 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) +Chars 8963 - 9662 [(enough~~~(interp_mrec~(fun~_~...] 0.002 secs (0.002u,0.s) Chars 9665 - 9666 [{] 0. secs (0.u,0.s) Chars 9667 - 9675 [subst~f.] 0. secs (0.u,0.s) -Chars 9676 - 9731 [etransitivity;~[~etransitivity...] 0. secs (0.u,0.s) +Chars 9676 - 9731 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) Chars 9736 - 9737 [-] 0. secs (0.u,0.s) Chars 9738 - 9747 [symmetry.] 0. secs (0.u,0.s) -Chars 9748 - 9790 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 9748 - 9790 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) Chars 9797 - 9798 [+] 0. secs (0.u,0.s) -Chars 9799 - 9810 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9811 - 9858 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) -Chars 9867 - 9878 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9879 - 9896 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 9799 - 9810 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 9811 - 9858 [(apply~euttge_interp_mrec;~try...] 0. secs (0.u,0.s) +Chars 9867 - 9878 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 9879 - 9896 [(apply~tau_euttge).] 0. secs (0.u,0.s) Chars 9903 - 9904 [+] 0. secs (0.u,0.s) -Chars 9905 - 9978 [apply~euttge_interp_mrec;~repe...] 0.002 secs (0.002u,0.s) +Chars 9905 - 9978 [(apply~euttge_interp_mrec;~rep...] 0.002 secs (0.002u,0.s) Chars 9987 - 9999 [reflexivity.] 0. secs (0.u,0.s) Chars 10004 - 10005 [-] 0. secs (0.u,0.s) -Chars 10006 - 10108 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) -Chars 10115 - 10132 [apply~tau_euttge.] 0. secs (0.u,0.s) +Chars 10006 - 10108 [(apply~euttge_sub_eutt,~euttge...] 0.003 secs (0.003u,0.s) +Chars 10115 - 10132 [(apply~tau_euttge).] 0. secs (0.u,0.s) Chars 10135 - 10136 [}] 0. secs (0.u,0.s) Chars 10139 - 10162 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) Chars 10167 - 10176 [revert~t.] 0. secs (0.u,0.s) -Chars 10177 - 10197 [coinduction;~intros.] 0.003 secs (0.003u,0.s) -Chars 10201 - 10251 [rewrite~(itree_eta~t);~destruc...] 0.015 secs (0.015u,0.s) -Chars 10254 - 10320 [all:~rewrite~(unfold_interp_mr...] 0.088 secs (0.087u,0.s) -Chars 10323 - 10361 [1,~2:~rewrite~unfold_interp_mr...] 0.052 secs (0.052u,0.s) -Chars 10364 - 10427 [1,~2:~rewrite~(unfold_interp_m...] 0.031 secs (0.031u,0.s) +Chars 10177 - 10197 [(coinduction;~intros).] 0.004 secs (0.004u,0.s) +Chars 10201 - 10251 [(rewrite~(itree_eta~t);~destru...] 0.022 secs (0.022u,0.s) +Chars 10254 - 10320 [all:~(rewrite~(unfold_interp_m...] 0.119 secs (0.119u,0.s) +Chars 10323 - 10361 [1,~2:~(rewrite~unfold_interp_m...] 0.076 secs (0.075u,0.s) +Chars 10364 - 10427 [1,~2:~(rewrite~(unfold_interp_...] 0.043 secs (0.042u,0.s) Chars 10430 - 10435 [taus.] 0. secs (0.u,0.s) -Chars 10436 - 10446 [apply~CIH.] 0. secs (0.u,0.s) -Chars 10450 - 10461 [destruct~e.] 0. secs (0.u,0.s) +Chars 10436 - 10446 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 10450 - 10461 [(destruct~e).] 0. secs (0.u,0.s) Chars 10464 - 10465 [-] 0. secs (0.u,0.s) -Chars 10466 - 10513 [rewrite~(interp_mrec_bind~_~(I...] 0.016 secs (0.016u,0.s) -Chars 10518 - 10552 [rewrite~interp_mrec_trigger;~b...] 0.01 secs (0.01u,0.s) -Chars 10557 - 10579 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 10584 - 10647 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.002 secs (0.002u,0.s) -Chars 10652 - 10697 [rewrite~interp_tau,~unfold_int...] 0.055 secs (0.055u,0.s) -Chars 10702 - 10749 [rewrite~(unfold_interp_mrec~_~...] 0.039 secs (0.039u,0.s) -Chars 10754 - 10772 [rewrite~!bind_tau.] 0.037 secs (0.037u,0.s) +Chars 10466 - 10513 [(rewrite~(interp_mrec_bind~_~(...] 0.022 secs (0.022u,0.s) +Chars 10518 - 10552 [(rewrite~interp_mrec_trigger;~...] 0.014 secs (0.014u,0.s) +Chars 10557 - 10579 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) +Chars 10584 - 10647 [(remember~(f~X~a0)~as~fxa~eqn:...] 0.002 secs (0.002u,0.s) +Chars 10652 - 10697 [(rewrite~interp_tau,~unfold_in...] 0.077 secs (0.076u,0.s) +Chars 10702 - 10749 [(rewrite~(unfold_interp_mrec~_...] 0.055 secs (0.054u,0.s) +Chars 10754 - 10772 [(rewrite~!bind_tau).] 0.05 secs (0.05u,0.s) Chars 10777 - 10782 [taus.] 0. secs (0.u,0.s) -Chars 10788 - 10807 [rewrite~tau_euttge.] 0.007 secs (0.007u,0.s) -Chars 10808 - 10834 [setoid_rewrite~tau_euttge.] 0.017 secs (0.017u,0.s) -Chars 10839 - 10883 [rewrite~<-~interp_mrec_bind,~<...] 0.028 secs (0.028u,0.s) +Chars 10788 - 10807 [(rewrite~tau_euttge).] 0.01 secs (0.01u,0.s) +Chars 10808 - 10834 [setoid_rewrite~tau_euttge.] 0.023 secs (0.023u,0.s) +Chars 10839 - 10883 [(rewrite~<-~interp_mrec_bind,~...] 0.039 secs (0.039u,0.s) Chars 10888 - 10903 [auto~with~paco.] 0. secs (0.u,0.s) Chars 10906 - 10907 [-] 0. secs (0.u,0.s) -Chars 10908 - 10929 [rewrite~bind_trigger.] 0.015 secs (0.015u,0.s) -Chars 10934 - 10960 [setoid_rewrite~tau_euttge.] 0.016 secs (0.016u,0.s) -Chars 10965 - 11000 [rewrite~2!unfold_interp_mrec;~...] 0.028 secs (0.027u,0.s) -Chars 11005 - 11016 [destruct~s.] 0. secs (0.u,0.s) +Chars 10908 - 10929 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) +Chars 10934 - 10960 [setoid_rewrite~tau_euttge.] 0.022 secs (0.021u,0.s) +Chars 10965 - 11000 [(rewrite~2!unfold_interp_mrec;...] 0.039 secs (0.039u,0.s) +Chars 11005 - 11016 [(destruct~s).] 0. secs (0.u,0.s) Chars 11017 - 11022 [taus.] 0. secs (0.u,0.s) -Chars 11028 - 11072 [rewrite~<-~interp_mrec_bind,~<...] 0.026 secs (0.026u,0.s) -Chars 11077 - 11087 [apply~CIH.] 0. secs (0.u,0.s) -Chars 11093 - 11113 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 11114 - 11129 [now~step;~taus.] 0.002 secs (0.002u,0.s) -Chars 11132 - 11136 [Qed.] 0.045 secs (0.044u,0.s) +Chars 11028 - 11072 [(rewrite~<-~interp_mrec_bind,~...] 0.035 secs (0.035u,0.s) +Chars 11077 - 11087 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 11093 - 11113 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 11114 - 11129 [now~step;~taus.] 0.003 secs (0.003u,0.s) +Chars 11132 - 11136 [Qed.] 0.06 secs (0.06u,0.s) Chars 11138 - 11197 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) Chars 11198 - 11204 [Proof.] 0. secs (0.u,0.s) -Chars 11207 - 11232 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 11207 - 11232 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 11233 - 11237 [Qed.] 0. secs (0.u,0.s) Chars 11239 - 11259 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/theories/Interp/Interp.v.timing b/theories/Interp/Interp.v.timing index 172ba8a1..f6776258 100644 --- a/theories/Interp/Interp.v.timing +++ b/theories/Interp/Interp.v.timing @@ -1,7 +1,7 @@ Chars 1099 - 1172 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.026 secs (0.021u,0.005s) -Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.u,0.s) +Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.038 secs (0.031u,0.007s) +Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.001u,0.s) Chars 2077 - 2212 [Definition~translate~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 2214 - 2248 [Arguments~translate~{E~F}~&~h~...] 0. secs (0.u,0.s) -Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.003 secs (0.003u,0.s) +Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.003 secs (0.002u,0.s) Chars 2853 - 2893 [Arguments~interp~{E~M~FM~MM~IM...] 0. secs (0.u,0.s) diff --git a/theories/Interp/InterpFacts.v.timing b/theories/Interp/InterpFacts.v.timing index a040a9c5..321e986c 100644 --- a/theories/Interp/InterpFacts.v.timing +++ b/theories/Interp/InterpFacts.v.timing @@ -1,16 +1,16 @@ -Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) -Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.052 secs (0.045u,0.007s) +Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.008u,0.003s) +Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.003 secs (0.003u,0.s) +Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.079 secs (0.068u,0.011s) Chars 701 - 723 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 740 - 837 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 838 - 844 [Proof.] 0. secs (0.u,0.s) -Chars 847 - 865 [unfold~eq_Handler.] 0. secs (0.u,0.s) -Chars 868 - 923 [apply~(Equivalence_i_pointwise...] 0.001 secs (0.001u,0.s) +Chars 847 - 865 [(unfold~eq_Handler).] 0. secs (0.u,0.s) +Chars 868 - 923 [(apply~(Equivalence_i_pointwis...] 0.001 secs (0.001u,0.s) Chars 924 - 928 [Qed.] 0. secs (0.u,0.s) Chars 930 - 1031 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 1032 - 1038 [Proof.] 0. secs (0.u,0.s) -Chars 1041 - 1061 [unfold~eutt_Handler.] 0. secs (0.u,0.s) -Chars 1064 - 1115 [apply~(Equivalence_i_pointwise...] 0. secs (0.u,0.s) +Chars 1041 - 1061 [(unfold~eutt_Handler).] 0. secs (0.u,0.s) +Chars 1064 - 1115 [(apply~(Equivalence_i_pointwis...] 0. secs (0.u,0.s) Chars 1116 - 1120 [Qed.] 0. secs (0.u,0.s) Chars 1122 - 1213 [Definition~Equivalence_eq2_Han...] 0. secs (0.u,0.s) Chars 1214 - 1220 [Proof.] 0. secs (0.u,0.s) @@ -19,33 +19,33 @@ Chars 1255 - 1259 [Qed.] 0. secs (0.u,0.s) Chars 1291 - 1505 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) Chars 1528 - 1634 [Lemma~unfold_interp~{E}~{F}~{R...] 0. secs (0.u,0.s) Chars 1635 - 1641 [Proof.] 0. secs (0.u,0.s) -Chars 1644 - 1688 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) -Chars 1689 - 1709 [rewrite~unfold_iter.] 0.002 secs (0.002u,0.s) -Chars 1712 - 1774 [destruct~(observe~t);~cbn;~rew...] 0.04 secs (0.04u,0.s) -Chars 1775 - 1796 [all:~try~reflexivity.] 0. secs (0.u,0.s) -Chars 1797 - 1801 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1644 - 1688 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) +Chars 1689 - 1709 [(rewrite~unfold_iter).] 0.004 secs (0.004u,0.s) +Chars 1712 - 1774 [(destruct~(observe~t);~cbn;~re...] 0.053 secs (0.053u,0.s) +Chars 1775 - 1796 [all:~(try~reflexivity).] 0. secs (0.u,0.s) +Chars 1797 - 1801 [Qed.] 0.004 secs (0.004u,0.s) Chars 1936 - 2017 [Lemma~interp_ret~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2018 - 2024 [Proof.] 0. secs (0.u,0.s) -Chars 2025 - 2047 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) +Chars 2025 - 2047 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) Chars 2048 - 2060 [reflexivity.] 0. secs (0.u,0.s) -Chars 2061 - 2065 [Qed.] 0. secs (0.u,0.s) +Chars 2061 - 2065 [Qed.] 0.001 secs (0.001u,0.s) Chars 2067 - 2179 [Lemma~interp_tau~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2180 - 2186 [Proof.] 0. secs (0.u,0.s) -Chars 2187 - 2209 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) +Chars 2187 - 2209 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) Chars 2210 - 2222 [reflexivity.] 0. secs (0.u,0.s) -Chars 2223 - 2227 [Qed.] 0. secs (0.u,0.s) -Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) +Chars 2223 - 2227 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0.001 secs (0.001u,0.s) Chars 2395 - 2401 [Proof.] 0. secs (0.u,0.s) -Chars 2402 - 2424 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) +Chars 2402 - 2424 [(rewrite~unfold_interp).] 0.002 secs (0.002u,0.s) Chars 2425 - 2437 [reflexivity.] 0. secs (0.u,0.s) -Chars 2438 - 2442 [Qed.] 0. secs (0.u,0.s) +Chars 2438 - 2442 [Qed.] 0.001 secs (0.001u,0.s) Chars 2444 - 2581 [Lemma~interp_trigger~{E~F~:~Ty...] 0. secs (0.u,0.s) Chars 2582 - 2588 [Proof.] 0. secs (0.u,0.s) -Chars 2591 - 2612 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 2613 - 2632 [rewrite~interp_vis.] 0.011 secs (0.01u,0.001s) -Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.014 secs (0.011u,0.002s) +Chars 2591 - 2612 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 2613 - 2632 [(rewrite~interp_vis).] 0.015 secs (0.013u,0.002s) +Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.021 secs (0.016u,0.004s) Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.s) -Chars 2691 - 2710 [rewrite~bind_ret_r.] 0.007 secs (0.007u,0.s) +Chars 2691 - 2710 [(rewrite~bind_ret_r).] 0.012 secs (0.012u,0.s) Chars 2713 - 2725 [reflexivity.] 0. secs (0.u,0.s) Chars 2726 - 2730 [Qed.] 0.002 secs (0.002u,0.s) Chars 2732 - 2775 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -53,289 +53,289 @@ Chars 2776 - 2819 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 2820 - 2867 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 2899 - 3058 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) Chars 3059 - 3065 [Proof.] 0. secs (0.u,0.s) -Chars 3068 - 3085 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) -Chars 3088 - 3106 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3107 - 3114 [intros.] 0. secs (0.u,0.s) -Chars 3118 - 3142 [rewrite~2!unfold_interp.] 0.022 secs (0.022u,0.s) +Chars 3068 - 3085 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) +Chars 3088 - 3106 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3107 - 3114 [(intros).] 0. secs (0.u,0.s) +Chars 3118 - 3142 [(rewrite~2!unfold_interp).] 0.03 secs (0.03u,0.s) Chars 3145 - 3155 [step~in~H.] 0. secs (0.u,0.s) -Chars 3160 - 3211 [destruct~H;~cbn;~subst;~try~ea...] 0.038 secs (0.038u,0.s) -Chars 3214 - 3252 [unfold~eq_Handler,~i_pointwise...] 0. secs (0.u,0.s) -Chars 3256 - 3268 [rewrite~Hfg.] 0.158 secs (0.157u,0.001s) +Chars 3160 - 3211 [(destruct~H;~cbn;~subst;~try~e...] 0.053 secs (0.053u,0.s) +Chars 3214 - 3252 [(unfold~eq_Handler,~i_pointwis...] 0. secs (0.u,0.s) +Chars 3256 - 3268 [(rewrite~Hfg).] 0.222 secs (0.221u,0.s) Chars 3272 - 3279 [to_mon.] 0. secs (0.u,0.s) -Chars 3331 - 3337 [ebind.] 0.006 secs (0.006u,0.s) -Chars 3338 - 3353 [intros~?~?~[=<-].] 0. secs (0.u,0.s) -Chars 3354 - 3377 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 3379 - 3383 [Qed.] 0.008 secs (0.008u,0.s) +Chars 3331 - 3337 [ebind.] 0.009 secs (0.009u,0.s) +Chars 3338 - 3353 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 3354 - 3377 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 3379 - 3383 [Qed.] 0.012 secs (0.012u,0.s) Chars 3385 - 3504 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) Chars 3505 - 3511 [Proof.] 0. secs (0.u,0.s) -Chars 3514 - 3525 [repeat~red.] 0. secs (0.u,0.s) -Chars 3528 - 3551 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) +Chars 3514 - 3525 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3528 - 3551 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) Chars 3554 - 3566 [reflexivity.] 0. secs (0.u,0.s) Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) Chars 3573 - 3732 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 3733 - 3739 [Proof.] 0. secs (0.u,0.s) -Chars 3742 - 3753 [repeat~red.] 0. secs (0.u,0.s) +Chars 3742 - 3753 [(repeat~red).] 0. secs (0.u,0.s) Chars 3756 - 3771 [intros~until~T.] 0. secs (0.u,0.s) -Chars 3774 - 3786 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 3787 - 3794 [intros.] 0. secs (0.u,0.s) -Chars 3797 - 3820 [rewrite~!unfold_interp.] 0.021 secs (0.021u,0.s) +Chars 3774 - 3786 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3787 - 3794 [(intros).] 0. secs (0.u,0.s) +Chars 3797 - 3820 [(rewrite~!unfold_interp).] 0.031 secs (0.031u,0.s) Chars 3821 - 3832 [step~in~H0.] 0. secs (0.u,0.s) -Chars 3836 - 3895 [induction~H0;~intros;~subst;~c...] 0.256 secs (0.254u,0.001s) -Chars 3901 - 3924 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 3836 - 3895 [(induction~H0;~intros;~subst;~...] 0.375 secs (0.372u,0.001s) +Chars 3901 - 3924 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) Chars 3928 - 3929 [-] 0. secs (0.u,0.s) -Chars 3930 - 3940 [do~2~step.] 0.01 secs (0.01u,0.s) -Chars 3941 - 3949 [apply~H.] 0. secs (0.u,0.s) +Chars 3930 - 3940 [(do~2~step).] 0.015 secs (0.014u,0.s) +Chars 3941 - 3949 [(apply~H).] 0. secs (0.u,0.s) Chars 3953 - 3954 [-] 0. secs (0.u,0.s) -Chars 3955 - 3970 [intros~?~?~[=<-].] 0. secs (0.u,0.s) -Chars 3971 - 3994 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 3955 - 3970 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 3971 - 3994 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) Chars 3998 - 3999 [-] 0. secs (0.u,0.s) Chars 4000 - 4005 [taul.] 0. secs (0.u,0.s) Chars 4006 - 4013 [to_mon.] 0. secs (0.u,0.s) -Chars 4014 - 4036 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) -Chars 4037 - 4051 [apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 4014 - 4036 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) +Chars 4037 - 4051 [(apply~IHeqitF).] 0. secs (0.u,0.s) Chars 4055 - 4056 [-] 0. secs (0.u,0.s) Chars 4057 - 4062 [taur.] 0. secs (0.u,0.s) Chars 4063 - 4070 [to_mon.] 0. secs (0.u,0.s) -Chars 4071 - 4093 [rewrite~unfold_interp.] 0.011 secs (0.01u,0.s) -Chars 4094 - 4108 [apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 4110 - 4114 [Qed.] 0.009 secs (0.009u,0.s) -Chars 4117 - 4359 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 4071 - 4093 [(rewrite~unfold_interp).] 0.022 secs (0.017u,0.s) +Chars 4094 - 4108 [(apply~IHeqitF).] 0. secs (0.u,0.s) +Chars 4110 - 4114 [Qed.] 0.023 secs (0.013u,0.s) +Chars 4117 - 4359 [#[global]~Instance~euttge_inte...] 0.002 secs (0.001u,0.s) Chars 4360 - 4366 [Proof.] 0. secs (0.u,0.s) -Chars 4369 - 4380 [repeat~red.] 0. secs (0.u,0.s) +Chars 4369 - 4380 [(repeat~red).] 0. secs (0.u,0.s) Chars 4383 - 4398 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4401 - 4413 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4414 - 4421 [intros.] 0. secs (0.u,0.s) -Chars 4424 - 4447 [rewrite~!unfold_interp.] 0.018 secs (0.017u,0.s) +Chars 4401 - 4413 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 4414 - 4421 [(intros).] 0. secs (0.u,0.s) +Chars 4424 - 4447 [(rewrite~!unfold_interp).] 0.021 secs (0.021u,0.s) Chars 4448 - 4459 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4463 - 4532 [induction~H0;~intros;~subst;~c...] 0.184 secs (0.182u,0.001s) -Chars 4535 - 4558 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 4463 - 4532 [(induction~H0;~intros;~subst;~...] 0.269 secs (0.267u,0.001s) +Chars 4535 - 4558 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) Chars 4562 - 4563 [-] 0. secs (0.u,0.s) -Chars 4564 - 4574 [do~2~step.] 0.01 secs (0.01u,0.s) -Chars 4575 - 4583 [apply~H.] 0. secs (0.u,0.s) +Chars 4564 - 4574 [(do~2~step).] 0.014 secs (0.014u,0.s) +Chars 4575 - 4583 [(apply~H).] 0. secs (0.u,0.s) Chars 4587 - 4588 [-] 0. secs (0.u,0.s) -Chars 4589 - 4604 [intros~?~?~[=<-].] 0. secs (0.u,0.s) -Chars 4605 - 4628 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 4589 - 4604 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 4605 - 4628 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) Chars 4632 - 4633 [-] 0. secs (0.u,0.s) Chars 4634 - 4639 [taul.] 0. secs (0.u,0.s) Chars 4640 - 4647 [to_mon.] 0. secs (0.u,0.s) -Chars 4648 - 4670 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) -Chars 4671 - 4685 [apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 4687 - 4691 [Qed.] 0.008 secs (0.008u,0.s) +Chars 4648 - 4670 [(rewrite~unfold_interp).] 0.014 secs (0.013u,0.s) +Chars 4671 - 4685 [(apply~IHeqitF).] 0. secs (0.u,0.s) +Chars 4687 - 4691 [Qed.] 0.013 secs (0.013u,0.s) Chars 4693 - 4871 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 4872 - 4878 [Proof.] 0. secs (0.u,0.s) -Chars 4881 - 4892 [repeat~red.] 0. secs (0.u,0.s) -Chars 4895 - 4907 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4908 - 4915 [intros.] 0. secs (0.u,0.s) -Chars 4918 - 4941 [rewrite~!unfold_interp.] 0.022 secs (0.022u,0.s) +Chars 4881 - 4892 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4895 - 4907 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4908 - 4915 [(intros).] 0. secs (0.u,0.s) +Chars 4918 - 4941 [(rewrite~!unfold_interp).] 0.032 secs (0.032u,0.s) Chars 4944 - 4954 [step~in~H.] 0. secs (0.u,0.s) -Chars 4957 - 5010 [induction~H;~cbn;~try~easy;~ea...] 0.304 secs (0.302u,0.001s) +Chars 4957 - 5010 [(induction~H;~cbn;~try~easy;~e...] 0.441 secs (0.438u,0.001s) Chars 5014 - 5015 [-] 0. secs (0.u,0.s) -Chars 5016 - 5022 [ebind.] 0.014 secs (0.014u,0.s) -Chars 5023 - 5061 [intros;~subst;~taus;~eauto~wit...] 0.003 secs (0.003u,0.s) +Chars 5016 - 5022 [ebind.] 0.02 secs (0.02u,0.s) +Chars 5023 - 5061 [(intros;~subst;~taus;~eauto~wi...] 0.004 secs (0.004u,0.s) Chars 5065 - 5066 [-] 0. secs (0.u,0.s) -Chars 5067 - 5089 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 5067 - 5089 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) Chars 5090 - 5099 [now~taul.] 0. secs (0.u,0.s) Chars 5103 - 5104 [-] 0. secs (0.u,0.s) -Chars 5105 - 5127 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) +Chars 5105 - 5127 [(rewrite~unfold_interp).] 0.017 secs (0.017u,0.s) Chars 5128 - 5137 [now~taur.] 0. secs (0.u,0.s) -Chars 5139 - 5143 [Qed.] 0.007 secs (0.007u,0.s) -Chars 5145 - 5308 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 5139 - 5143 [Qed.] 0.01 secs (0.01u,0.s) +Chars 5145 - 5308 [#[global]~Instance~euttge_inte...] 0.001 secs (0.u,0.s) Chars 5309 - 5315 [Proof.] 0. secs (0.u,0.s) -Chars 5318 - 5329 [repeat~red.] 0. secs (0.u,0.s) -Chars 5330 - 5350 [apply~euttge_interp.] 0. secs (0.u,0.s) +Chars 5318 - 5329 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5330 - 5350 [(apply~euttge_interp).] 0. secs (0.u,0.s) Chars 5351 - 5363 [reflexivity.] 0. secs (0.u,0.s) -Chars 5364 - 5368 [Qed.] 0. secs (0.u,0.s) -Chars 5833 - 6011 [Lemma~interp_bind~{E}~{F}~{R}~...] 0. secs (0.u,0.s) +Chars 5364 - 5368 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5833 - 6011 [Lemma~interp_bind~{E}~{F}~{R}~...] 0.001 secs (0.001u,0.s) Chars 6012 - 6018 [Proof.] 0. secs (0.u,0.s) Chars 6021 - 6034 [revert~R~t~k.] 0. secs (0.u,0.s) -Chars 6035 - 6055 [coinduction;~intros.] 0.001 secs (0.001u,0.s) -Chars 6059 - 6098 [rewrite~unfold_bind,~(unfold_i...] 0.024 secs (0.024u,0.s) -Chars 6101 - 6135 [destruct~(observe~t);~cbn;~to_...] 0.001 secs (0.001u,0.s) +Chars 6035 - 6055 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) +Chars 6059 - 6098 [(rewrite~unfold_bind,~(unfold_...] 0.036 secs (0.035u,0.s) +Chars 6101 - 6135 [(destruct~(observe~t);~cbn;~to...] 0.002 secs (0.002u,0.s) Chars 6139 - 6140 [-] 0. secs (0.u,0.s) -Chars 6141 - 6160 [rewrite~bind_ret_l.] 0.012 secs (0.012u,0.s) -Chars 6161 - 6179 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 6141 - 6160 [(rewrite~bind_ret_l).] 0.018 secs (0.018u,0.s) +Chars 6161 - 6179 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 6182 - 6183 [-] 0. secs (0.u,0.s) Chars 6184 - 6189 [taus.] 0. secs (0.u,0.s) Chars 6190 - 6201 [fold_subst.] 0. secs (0.u,0.s) -Chars 6202 - 6212 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6202 - 6212 [(apply~CIH).] 0. secs (0.u,0.s) Chars 6216 - 6217 [-] 0. secs (0.u,0.s) -Chars 6218 - 6248 [rewrite~interp_vis,~bind_bind.] 0.023 secs (0.023u,0.s) -Chars 6249 - 6255 [ebind.] 0.005 secs (0.005u,0.s) -Chars 6261 - 6275 [intros;~subst.] 0. secs (0.u,0.s) -Chars 6280 - 6297 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) +Chars 6218 - 6248 [(rewrite~interp_vis,~bind_bind).] 0.033 secs (0.033u,0.s) +Chars 6249 - 6255 [ebind.] 0.009 secs (0.009u,0.s) +Chars 6261 - 6275 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 6280 - 6297 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) Chars 6298 - 6303 [taus.] 0. secs (0.u,0.s) -Chars 6304 - 6314 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6316 - 6320 [Qed.] 0.008 secs (0.008u,0.s) +Chars 6304 - 6314 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6316 - 6320 [Qed.] 0.013 secs (0.012u,0.s) Chars 6322 - 6366 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 6404 - 6471 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) Chars 6472 - 6478 [Proof.] 0. secs (0.u,0.s) Chars 6481 - 6490 [revert~t.] 0. secs (0.u,0.s) -Chars 6491 - 6503 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 6504 - 6511 [intros.] 0. secs (0.u,0.s) -Chars 6514 - 6551 [rewrite~(itree_eta~t),~unfold_...] 0.019 secs (0.019u,0.s) -Chars 6554 - 6580 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) +Chars 6491 - 6503 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 6504 - 6511 [(intros).] 0. secs (0.u,0.s) +Chars 6514 - 6551 [(rewrite~(itree_eta~t),~unfold...] 0.028 secs (0.028u,0.s) +Chars 6554 - 6580 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) Chars 6585 - 6586 [-] 0. secs (0.u,0.s) -Chars 6587 - 6599 [reflexivity.] 0. secs (0.u,0.s) +Chars 6587 - 6599 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 6603 - 6604 [-] 0. secs (0.u,0.s) Chars 6605 - 6610 [taus.] 0. secs (0.u,0.s) -Chars 6611 - 6621 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6611 - 6621 [(apply~CIH).] 0. secs (0.u,0.s) Chars 6625 - 6626 [-] 0. secs (0.u,0.s) Chars 6627 - 6639 [constructor.] 0. secs (0.u,0.s) Chars 6640 - 6646 [intro.] 0. secs (0.u,0.s) Chars 6647 - 6658 [fold_subst.] 0. secs (0.u,0.s) -Chars 6661 - 6691 [rewrite~bind_ret_,~tau_euttge.] 0.009 secs (0.009u,0.s) -Chars 6692 - 6702 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6704 - 6708 [Qed.] 0.006 secs (0.006u,0.s) +Chars 6661 - 6691 [(rewrite~bind_ret_,~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 6692 - 6702 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6704 - 6708 [Qed.] 0.008 secs (0.008u,0.s) Chars 6710 - 6788 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) Chars 6789 - 6795 [Proof.] 0. secs (0.u,0.s) Chars 6798 - 6807 [revert~t.] 0. secs (0.u,0.s) -Chars 6808 - 6820 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 6821 - 6828 [intros.] 0. secs (0.u,0.s) -Chars 6831 - 6853 [rewrite~unfold_interp.] 0.009 secs (0.009u,0.s) -Chars 6854 - 6881 [rewrite~(itree_eta~t)~~at~2.] 0.011 secs (0.01u,0.s) -Chars 6884 - 6928 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) -Chars 6932 - 6951 [constructor;~intro.] 0. secs (0.u,0.s) +Chars 6808 - 6820 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 6821 - 6828 [(intros).] 0. secs (0.u,0.s) +Chars 6831 - 6853 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) +Chars 6854 - 6881 [(rewrite~(itree_eta~t)~~at~2).] 0.014 secs (0.014u,0.s) +Chars 6884 - 6928 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) +Chars 6932 - 6951 [(constructor;~intro).] 0. secs (0.u,0.s) Chars 6952 - 6963 [fold_subst.] 0. secs (0.u,0.s) -Chars 6967 - 6998 [rewrite~bind_ret_l,~tau_euttge.] 0.01 secs (0.01u,0.s) -Chars 7001 - 7011 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7013 - 7017 [Qed.] 0.005 secs (0.005u,0.s) -Chars 7054 - 7225 [Theorem~interp_interp~{E}~{F}~...] 0. secs (0.u,0.s) +Chars 6967 - 6998 [(rewrite~bind_ret_l,~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 7001 - 7011 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7013 - 7017 [Qed.] 0.007 secs (0.007u,0.s) +Chars 7054 - 7225 [Theorem~interp_interp~{E}~{F}~...] 0.001 secs (0.001u,0.s) Chars 7226 - 7232 [Proof.] 0. secs (0.u,0.s) Chars 7235 - 7247 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7248 - 7255 [intros.] 0. secs (0.u,0.s) -Chars 7259 - 7287 [rewrite~2!(unfold_interp~t).] 0.022 secs (0.022u,0.s) -Chars 7290 - 7334 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) +Chars 7248 - 7255 [(intros).] 0. secs (0.u,0.s) +Chars 7259 - 7287 [(rewrite~2!(unfold_interp~t)).] 0.031 secs (0.031u,0.s) +Chars 7290 - 7334 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) Chars 7338 - 7345 [to_mon.] 0. secs (0.u,0.s) -Chars 7346 - 7366 [rewrite~interp_bind.] 0.011 secs (0.011u,0.s) -Chars 7367 - 7373 [ebind.] 0.005 secs (0.005u,0.s) -Chars 7374 - 7388 [intros;~subst.] 0. secs (0.u,0.s) -Chars 7393 - 7412 [rewrite~interp_tau.] 0.011 secs (0.011u,0.s) +Chars 7346 - 7366 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) +Chars 7367 - 7373 [ebind.] 0.008 secs (0.008u,0.s) +Chars 7374 - 7388 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 7393 - 7412 [(rewrite~interp_tau).] 0.017 secs (0.016u,0.s) Chars 7413 - 7418 [taus.] 0. secs (0.u,0.s) -Chars 7419 - 7429 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7433 - 7437 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7419 - 7429 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7433 - 7437 [Qed.] 0.01 secs (0.01u,0.s) Chars 7439 - 7589 [Lemma~interp_translate~{E}~{F}...] 0.001 secs (0.001u,0.s) Chars 7590 - 7596 [Proof.] 0. secs (0.u,0.s) Chars 7599 - 7608 [revert~t.] 0. secs (0.u,0.s) -Chars 7613 - 7625 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 7629 - 7638 [intros~t.] 0. secs (0.u,0.s) -Chars 7641 - 7664 [rewrite~!unfold_interp.] 0.024 secs (0.023u,0.s) -Chars 7665 - 7680 [unfold~_interp.] 0. secs (0.u,0.s) -Chars 7683 - 7709 [rewrite~unfold_translate_.] 0.008 secs (0.008u,0.s) -Chars 7710 - 7728 [unfold~translateF.] 0. secs (0.u,0.s) -Chars 7731 - 7757 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) +Chars 7613 - 7625 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7629 - 7638 [(intros~t).] 0. secs (0.u,0.s) +Chars 7641 - 7664 [(rewrite~!unfold_interp).] 0.031 secs (0.031u,0.s) +Chars 7665 - 7680 [(unfold~_interp).] 0. secs (0.u,0.s) +Chars 7683 - 7709 [(rewrite~unfold_translate_).] 0.012 secs (0.012u,0.s) +Chars 7710 - 7728 [(unfold~translateF).] 0. secs (0.u,0.s) +Chars 7731 - 7757 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) Chars 7760 - 7761 [-] 0. secs (0.u,0.s) -Chars 7762 - 7780 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 7762 - 7780 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 7824 - 7825 [-] 0. secs (0.u,0.s) Chars 7826 - 7831 [taus.] 0. secs (0.u,0.s) -Chars 7832 - 7842 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7832 - 7842 [(apply~CIH).] 0. secs (0.u,0.s) Chars 7846 - 7847 [-] 0. secs (0.u,0.s) Chars 7848 - 7855 [to_mon.] 0. secs (0.u,0.s) -Chars 7856 - 7862 [ebind.] 0.006 secs (0.006u,0.s) -Chars 7863 - 7877 [intros;~subst.] 0. secs (0.u,0.s) +Chars 7856 - 7862 [ebind.] 0.008 secs (0.008u,0.s) +Chars 7863 - 7877 [(intros;~subst).] 0. secs (0.u,0.s) Chars 7878 - 7883 [taus.] 0. secs (0.u,0.s) -Chars 7884 - 7894 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7897 - 7901 [Qed.] 0.006 secs (0.006u,0.s) -Chars 7903 - 8032 [Lemma~translate_to_interp~{E}~...] 0. secs (0.u,0.s) +Chars 7884 - 7894 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7897 - 7901 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7903 - 8032 [Lemma~translate_to_interp~{E}~...] 0.001 secs (0.001u,0.s) Chars 8033 - 8039 [Proof.] 0. secs (0.u,0.s) Chars 8042 - 8051 [revert~t.] 0. secs (0.u,0.s) -Chars 8052 - 8064 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 8065 - 8072 [intros.] 0. secs (0.u,0.s) -Chars 8075 - 8100 [rewrite~unfold_translate.] 0.01 secs (0.01u,0.s) -Chars 8103 - 8125 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) -Chars 8128 - 8172 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) +Chars 8052 - 8064 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 8065 - 8072 [(intros).] 0. secs (0.u,0.s) +Chars 8075 - 8100 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) +Chars 8103 - 8125 [(rewrite~unfold_interp).] 0.014 secs (0.014u,0.s) +Chars 8128 - 8172 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) Chars 8176 - 8188 [constructor.] 0. secs (0.u,0.s) Chars 8189 - 8195 [intro.] 0. secs (0.u,0.s) -Chars 8196 - 8207 [fold_subst.] 0. secs (0.u,0.s) -Chars 8211 - 8242 [rewrite~bind_ret_l,~tau_euttge.] 0.012 secs (0.012u,0.s) -Chars 8243 - 8253 [apply~CIH.] 0. secs (0.u,0.s) -Chars 8255 - 8259 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8196 - 8207 [fold_subst.] 0.001 secs (0.001u,0.s) +Chars 8211 - 8242 [(rewrite~bind_ret_l,~tau_euttge).] 0.016 secs (0.016u,0.s) +Chars 8243 - 8253 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8255 - 8259 [Qed.] 0.008 secs (0.008u,0.s) Chars 8261 - 8406 [Lemma~interp_forever~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 8407 - 8413 [Proof.] 0. secs (0.u,0.s) -Chars 8416 - 8428 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 8432 - 8459 [rewrite~(unfold_forever~t).] 0.01 secs (0.01u,0.s) -Chars 8462 - 8500 [rewrite~(unfold_forever~(inter...] 0.012 secs (0.012u,0.s) -Chars 8503 - 8523 [rewrite~interp_bind.] 0.009 secs (0.009u,0.s) -Chars 8526 - 8532 [ebind.] 0.005 secs (0.005u,0.s) -Chars 8533 - 8547 [intros;~subst.] 0. secs (0.u,0.s) -Chars 8550 - 8569 [rewrite~interp_tau.] 0.01 secs (0.01u,0.s) +Chars 8416 - 8428 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 8432 - 8459 [(rewrite~(unfold_forever~t)).] 0.014 secs (0.014u,0.s) +Chars 8462 - 8500 [(rewrite~(unfold_forever~(inte...] 0.018 secs (0.018u,0.s) +Chars 8503 - 8523 [(rewrite~interp_bind).] 0.016 secs (0.016u,0.s) +Chars 8526 - 8532 [ebind.] 0.007 secs (0.007u,0.s) +Chars 8533 - 8547 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 8550 - 8569 [(rewrite~interp_tau).] 0.016 secs (0.016u,0.s) Chars 8572 - 8577 [taus.] 0. secs (0.u,0.s) -Chars 8578 - 8588 [apply~CIH.] 0. secs (0.u,0.s) -Chars 8590 - 8594 [Qed.] 0.004 secs (0.004u,0.s) -Chars 8596 - 8841 [Lemma~interp_iter'~{E}~{F}~(f~...] 0. secs (0.u,0.s) +Chars 8578 - 8588 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8590 - 8594 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8596 - 8841 [Lemma~interp_iter'~{E}~{F}~(f~...] 0.001 secs (0.001u,0.s) Chars 8842 - 8848 [Proof.] 0. secs (0.u,0.s) -Chars 8851 - 8873 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) -Chars 8877 - 8899 [rewrite~2!unfold_iter.] 0.022 secs (0.022u,0.s) -Chars 8902 - 8922 [rewrite~interp_bind.] 0.01 secs (0.01u,0.s) -Chars 8925 - 8931 [ebind.] 0.005 secs (0.005u,0.s) +Chars 8851 - 8873 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) +Chars 8877 - 8899 [(rewrite~2!unfold_iter).] 0.034 secs (0.033u,0.s) +Chars 8902 - 8922 [(rewrite~interp_bind).] 0.016 secs (0.016u,0.s) +Chars 8925 - 8931 [ebind.] 0.009 secs (0.009u,0.s) Chars 8935 - 8936 [{] 0. secs (0.u,0.s) -Chars 8937 - 8947 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 8948 - 8959 [apply~EQ_t.] 0. secs (0.u,0.s) +Chars 8937 - 8947 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 8948 - 8959 [(apply~EQ_t).] 0. secs (0.u,0.s) Chars 8960 - 8961 [}] 0. secs (0.u,0.s) -Chars 8964 - 8992 [intros~[]~_~[];~cbn;~to_mon.] 0.001 secs (0.001u,0.s) +Chars 8964 - 8992 [(intros~[]~_~[];~cbn;~to_mon).] 0.002 secs (0.002u,0.s) Chars 8996 - 8997 [-] 0. secs (0.u,0.s) Chars 8998 - 9003 [taus.] 0. secs (0.u,0.s) -Chars 9004 - 9014 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9004 - 9014 [(apply~CIH).] 0. secs (0.u,0.s) Chars 9018 - 9019 [-] 0. secs (0.u,0.s) -Chars 9020 - 9032 [reflexivity.] 0. secs (0.u,0.s) -Chars 9034 - 9038 [Qed.] 0.005 secs (0.005u,0.s) -Chars 9040 - 9218 [Lemma~interp_iter~{E}~{F}~(f~:...] 0. secs (0.u,0.s) +Chars 9020 - 9032 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9034 - 9038 [Qed.] 0.008 secs (0.008u,0.s) +Chars 9040 - 9218 [Lemma~interp_iter~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) Chars 9219 - 9225 [Proof.] 0. secs (0.u,0.s) -Chars 9228 - 9284 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 9287 - 9306 [apply~interp_iter'.] 0. secs (0.u,0.s) +Chars 9228 - 9284 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 9287 - 9306 [(apply~interp_iter').] 0. secs (0.u,0.s) Chars 9309 - 9321 [reflexivity.] 0. secs (0.u,0.s) -Chars 9322 - 9326 [Qed.] 0. secs (0.u,0.s) -Chars 9328 - 9548 [Lemma~interp_iter'_eutt~{E}~{F...] 0. secs (0.u,0.s) +Chars 9322 - 9326 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9328 - 9548 [Lemma~interp_iter'_eutt~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 9549 - 9555 [Proof.] 0. secs (0.u,0.s) -Chars 9558 - 9580 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) -Chars 9584 - 9606 [rewrite~2!unfold_iter.] 0.021 secs (0.021u,0.s) -Chars 9609 - 9629 [rewrite~interp_bind.] 0.009 secs (0.009u,0.s) -Chars 9632 - 9638 [ebind.] 0.005 secs (0.005u,0.s) -Chars 9642 - 9652 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 9653 - 9663 [apply~Heq.] 0. secs (0.u,0.s) -Chars 9666 - 9686 [intros~[]~_~[];~cbn.] 0.001 secs (0.001u,0.s) +Chars 9558 - 9580 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) +Chars 9584 - 9606 [(rewrite~2!unfold_iter).] 0.031 secs (0.031u,0.s) +Chars 9609 - 9629 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) +Chars 9632 - 9638 [ebind.] 0.008 secs (0.008u,0.s) +Chars 9642 - 9652 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 9653 - 9663 [(apply~Heq).] 0. secs (0.u,0.s) +Chars 9666 - 9686 [(intros~[]~_~[];~cbn).] 0.001 secs (0.001u,0.s) Chars 9689 - 9690 [-] 0. secs (0.u,0.s) Chars 9691 - 9696 [taus.] 0. secs (0.u,0.s) -Chars 9697 - 9707 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9697 - 9707 [(apply~CIH).] 0. secs (0.u,0.s) Chars 9711 - 9712 [-] 0. secs (0.u,0.s) Chars 9713 - 9725 [reflexivity.] 0. secs (0.u,0.s) -Chars 9727 - 9731 [Qed.] 0.006 secs (0.006u,0.s) -Chars 9733 - 9916 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) +Chars 9727 - 9731 [Qed.] 0.007 secs (0.007u,0.s) +Chars 9733 - 9916 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.002 secs (0.002u,0.s) Chars 9917 - 9923 [Proof.] 0. secs (0.u,0.s) -Chars 9926 - 9938 [unfold~loop.] 0. secs (0.u,0.s) -Chars 9939 - 9979 [unfold~cat,~Cat_Kleisli,~ITree...] 0. secs (0.u,0.s) -Chars 9982 - 10002 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) -Chars 10005 - 10021 [apply~eqit_bind.] 0. secs (0.u,0.s) +Chars 9926 - 9938 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 9939 - 9979 [(unfold~cat,~Cat_Kleisli,~ITre...] 0. secs (0.u,0.s) +Chars 9982 - 10002 [(rewrite~interp_bind).] 0.005 secs (0.005u,0.s) +Chars 10005 - 10021 [(apply~eqit_bind).] 0. secs (0.u,0.s) Chars 10024 - 10025 [{] 0. secs (0.u,0.s) -Chars 10026 - 10074 [unfold~inr_,~Inr_Kleisli,~lift...] 0. secs (0.u,0.s) -Chars 10079 - 10098 [rewrite~interp_ret.] 0.001 secs (0.001u,0.s) +Chars 10026 - 10074 [(unfold~inr_,~Inr_Kleisli,~lif...] 0. secs (0.u,0.s) +Chars 10079 - 10098 [(rewrite~interp_ret).] 0.002 secs (0.002u,0.s) Chars 10103 - 10115 [reflexivity.] 0. secs (0.u,0.s) Chars 10118 - 10119 [}] 0. secs (0.u,0.s) -Chars 10122 - 10135 [repeat~intro.] 0. secs (0.u,0.s) -Chars 10138 - 10158 [rewrite~interp_iter.] 0.003 secs (0.003u,0.s) -Chars 10161 - 10181 [apply~eq_itree_iter.] 0. secs (0.u,0.s) -Chars 10184 - 10198 [intros~?~?~[].] 0. secs (0.u,0.s) -Chars 10201 - 10221 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) -Chars 10224 - 10257 [apply~eqit_bind;~try~reflexivity.] 0. secs (0.u,0.s) -Chars 10260 - 10275 [intros~[];~cbn.] 0. secs (0.u,0.s) -Chars 10276 - 10287 [unfold~cat.] 0. secs (0.u,0.s) -Chars 10288 - 10308 [rewrite~interp_bind.] 0.002 secs (0.002u,0.s) +Chars 10122 - 10135 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 10138 - 10158 [(rewrite~interp_iter).] 0.004 secs (0.004u,0.s) +Chars 10161 - 10181 [(apply~eq_itree_iter).] 0. secs (0.u,0.s) +Chars 10184 - 10198 [(intros~?~?~[]).] 0. secs (0.u,0.s) +Chars 10201 - 10221 [(rewrite~interp_bind).] 0.004 secs (0.004u,0.s) +Chars 10224 - 10257 [(apply~eqit_bind;~try~reflexiv...] 0.001 secs (0.001u,0.s) +Chars 10260 - 10275 [(intros~[];~cbn).] 0. secs (0.u,0.s) +Chars 10276 - 10287 [(unfold~cat).] 0. secs (0.u,0.s) +Chars 10288 - 10308 [(rewrite~interp_bind).] 0.003 secs (0.003u,0.s) Chars 10311 - 10312 [-] 0. secs (0.u,0.s) -Chars 10313 - 10374 [unfold~inl_,~Inl_Kleisli,~inr_...] 0. secs (0.u,0.s) -Chars 10379 - 10423 [rewrite~interp_ret,~!bind_ret_...] 0.009 secs (0.009u,0.s) +Chars 10313 - 10374 [(unfold~inl_,~Inl_Kleisli,~inr...] 0. secs (0.u,0.s) +Chars 10379 - 10423 [(rewrite~interp_ret,~!bind_ret...] 0.015 secs (0.015u,0.s) Chars 10428 - 10440 [reflexivity.] 0. secs (0.u,0.s) Chars 10443 - 10444 [-] 0. secs (0.u,0.s) -Chars 10445 - 10515 [unfold~cat,~id_,~Id_Kleisli,~i...] 0. secs (0.u,0.s) -Chars 10520 - 10577 [rewrite~interp_bind,~interp_re...] 0.012 secs (0.012u,0.s) +Chars 10445 - 10515 [(unfold~cat,~id_,~Id_Kleisli,~...] 0. secs (0.u,0.s) +Chars 10520 - 10577 [(rewrite~interp_bind,~interp_r...] 0.017 secs (0.017u,0.s) Chars 10582 - 10594 [reflexivity.] 0. secs (0.u,0.s) -Chars 10595 - 10599 [Qed.] 0.007 secs (0.007u,0.s) +Chars 10595 - 10599 [Qed.] 0.01 secs (0.01u,0.s) Chars 10601 - 10750 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) Chars 10751 - 10757 [Proof.] 0. secs (0.u,0.s) -Chars 10760 - 10788 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) -Chars 10791 - 10817 [rewrite~interp_iter'_eutt.] 0. secs (0.u,0.s) +Chars 10760 - 10788 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) +Chars 10791 - 10817 [(rewrite~interp_iter'_eutt).] 0.001 secs (0.001u,0.s) Chars 10818 - 10830 [reflexivity.] 0. secs (0.u,0.s) Chars 10831 - 10839 [clear~i.] 0. secs (0.u,0.s) -Chars 10842 - 10851 [intros~i.] 0. secs (0.u,0.s) -Chars 10852 - 10856 [cbn.] 0. secs (0.u,0.s) -Chars 10857 - 10885 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) +Chars 10842 - 10851 [(intros~i).] 0. secs (0.u,0.s) +Chars 10852 - 10856 [(cbn).] 0. secs (0.u,0.s) +Chars 10857 - 10885 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) Chars 10886 - 10898 [reflexivity.] 0. secs (0.u,0.s) Chars 10899 - 10903 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Interp/Recursion.v.timing b/theories/Interp/Recursion.v.timing index 6bc100cc..727d1561 100644 --- a/theories/Interp/Recursion.v.timing +++ b/theories/Interp/Recursion.v.timing @@ -1,7 +1,7 @@ -Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.028 secs (0.023u,0.005s) +Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.042 secs (0.034u,0.007s) Chars 128 - 150 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 151 - 183 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.002 secs (0.001u,0.s) +Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.003 secs (0.002u,0.s) Chars 2132 - 2170 [Arguments~interp_mrec~{D~E}~&~...] 0. secs (0.u,0.s) Chars 2276 - 2409 [Definition~mrec~{D~E~:~Type~->...] 0. secs (0.u,0.s) Chars 2411 - 2442 [Arguments~mrec~{D~E}~&~ctx~[T].] 0. secs (0.u,0.s) @@ -13,7 +13,7 @@ Chars 2952 - 2979 [Arguments~mrec_fix~{D~E}~&.] 0. secs (0.u,0.s) Chars 2981 - 3136 [Notation~"'mrec-fix'~f~d~:=~g"...] 0. secs (0.u,0.s) Chars 3209 - 3282 [Inductive~callE~(A~B~:~Type)~:...] 0. secs (0.u,0.s) Chars 3284 - 3305 [Arguments~Call~{A~B}.] 0. secs (0.u,0.s) -Chars 3354 - 3442 [Definition~unCall~{A}~{B}~{T}~...] 0.002 secs (0.001u,0.s) +Chars 3354 - 3442 [Definition~unCall~{A}~{B}~{T}~...] 0. secs (0.u,0.s) Chars 3500 - 3648 [Definition~calling~{A}~{B}~{F~...] 0. secs (0.u,0.s) Chars 3846 - 4007 [Definition~calling'~{A}~{B}~{F...] 0. secs (0.u,0.s) Chars 4056 - 4216 [Definition~rec~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) diff --git a/theories/Interp/RecursionFacts.v.timing b/theories/Interp/RecursionFacts.v.timing index 2eb104c0..a651ffb0 100644 --- a/theories/Interp/RecursionFacts.v.timing +++ b/theories/Interp/RecursionFacts.v.timing @@ -1,242 +1,242 @@ -Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.005 secs (0.003u,0.002s) -Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.055 secs (0.048u,0.007s) +Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.003s) +Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) +Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.082 secs (0.07u,0.011s) Chars 669 - 691 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 693 - 707 [Section~Facts.] 0. secs (0.u,0.s) Chars 709 - 766 [Context~{D~E~:~Type~->~Type}~(...] 0. secs (0.u,0.s) Chars 804 - 1117 [Definition~_interp_mrec~{R~:~T...] 0.001 secs (0.001u,0.s) Chars 1433 - 1534 [Lemma~unfold_interp_mrec~R~(t~...] 0. secs (0.u,0.s) Chars 1535 - 1541 [Proof.] 0. secs (0.u,0.s) -Chars 1544 - 1563 [unfold~interp_mrec.] 0. secs (0.u,0.s) -Chars 1566 - 1586 [rewrite~unfold_iter.] 0.005 secs (0.005u,0.s) -Chars 1589 - 1611 [destruct~observe;~cbn.] 0. secs (0.u,0.s) +Chars 1544 - 1563 [(unfold~interp_mrec).] 0. secs (0.u,0.s) +Chars 1566 - 1586 [(rewrite~unfold_iter).] 0.008 secs (0.008u,0.s) +Chars 1589 - 1611 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) Chars 1614 - 1615 [-] 0. secs (0.u,0.s) -Chars 1616 - 1648 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) +Chars 1616 - 1648 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) Chars 1651 - 1652 [-] 0. secs (0.u,0.s) -Chars 1653 - 1685 [rewrite~bind_ret_l;~reflexivity.] 0.031 secs (0.031u,0.s) +Chars 1653 - 1685 [(rewrite~bind_ret_l;~reflexivi...] 0.042 secs (0.041u,0.s) Chars 1688 - 1689 [-] 0. secs (0.u,0.s) -Chars 1690 - 1706 [destruct~e;~cbn.] 0. secs (0.u,0.s) +Chars 1690 - 1706 [(destruct~e;~cbn).] 0. secs (0.u,0.s) Chars 1711 - 1712 [+] 0. secs (0.u,0.s) -Chars 1713 - 1745 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) +Chars 1713 - 1745 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) Chars 1750 - 1751 [+] 0. secs (0.u,0.s) -Chars 1752 - 1769 [rewrite~bind_vis.] 0.004 secs (0.004u,0.s) -Chars 1776 - 1794 [step;~constructor.] 0.002 secs (0.002u,0.s) -Chars 1795 - 1802 [intros.] 0. secs (0.u,0.s) -Chars 1809 - 1828 [rewrite~bind_ret_l.] 0.007 secs (0.006u,0.s) -Chars 1835 - 1853 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 1854 - 1858 [Qed.] 0.007 secs (0.006u,0.s) -Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0. secs (0.u,0.s) +Chars 1752 - 1769 [(rewrite~bind_vis).] 0.007 secs (0.007u,0.s) +Chars 1776 - 1794 [(step;~constructor).] 0.003 secs (0.003u,0.s) +Chars 1795 - 1802 [(intros).] 0. secs (0.u,0.s) +Chars 1809 - 1828 [(rewrite~bind_ret_l).] 0.011 secs (0.009u,0.001s) +Chars 1835 - 1853 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 1854 - 1858 [Qed.] 0.011 secs (0.009u,0.001s) +Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0.001 secs (0.u,0.s) Chars 2130 - 2230 [#[global]~Instance~eq_itree_mr...] 0. secs (0.u,0.s) Chars 2231 - 2237 [Proof.] 0. secs (0.u,0.s) -Chars 2240 - 2251 [repeat~red.] 0. secs (0.u,0.s) -Chars 2255 - 2267 [coinduction.] 0.002 secs (0.001u,0.s) -Chars 2268 - 2275 [intros.] 0. secs (0.u,0.s) -Chars 2278 - 2306 [rewrite~!unfold_interp_mrec.] 0.025 secs (0.023u,0.002s) +Chars 2240 - 2251 [(repeat~red).] 0. secs (0.u,0.s) +Chars 2255 - 2267 [coinduction.] 0.003 secs (0.002u,0.s) +Chars 2268 - 2275 [(intros).] 0. secs (0.u,0.s) +Chars 2278 - 2306 [(rewrite~!unfold_interp_mrec).] 0.038 secs (0.034u,0.003s) Chars 2309 - 2319 [step~in~H.] 0. secs (0.u,0.s) -Chars 2320 - 2344 [inv~H;~eauto~with~itree.] 0.064 secs (0.063u,0.s) +Chars 2320 - 2344 [(inv~H;~eauto~with~itree).] 0.094 secs (0.094u,0.s) Chars 2348 - 2349 [-] 0. secs (0.u,0.s) Chars 2350 - 2355 [taus.] 0. secs (0.u,0.s) Chars 2356 - 2370 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 2374 - 2375 [-] 0. secs (0.u,0.s) -Chars 2376 - 2380 [cbn.] 0. secs (0.u,0.s) -Chars 2381 - 2392 [destruct~e.] 0. secs (0.u,0.s) +Chars 2376 - 2380 [(cbn).] 0. secs (0.u,0.s) +Chars 2381 - 2392 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 2397 - 2398 [+] 0. secs (0.u,0.s) Chars 2399 - 2404 [taus.] 0. secs (0.u,0.s) -Chars 2405 - 2415 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2422 - 2428 [ebind.] 0.004 secs (0.004u,0.s) -Chars 2429 - 2443 [intros;~subst.] 0. secs (0.u,0.s) -Chars 2450 - 2460 [do~2~step.] 0.006 secs (0.006u,0.s) -Chars 2461 - 2471 [apply~REL.] 0. secs (0.u,0.s) +Chars 2405 - 2415 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2422 - 2428 [ebind.] 0.006 secs (0.005u,0.s) +Chars 2429 - 2443 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 2450 - 2460 [(do~2~step).] 0.009 secs (0.009u,0.s) +Chars 2461 - 2471 [(apply~REL).] 0. secs (0.u,0.s) Chars 2477 - 2478 [+] 0. secs (0.u,0.s) Chars 2479 - 2491 [constructor.] 0. secs (0.u,0.s) Chars 2492 - 2498 [intro.] 0. secs (0.u,0.s) -Chars 2499 - 2504 [step.] 0.001 secs (0.001u,0.s) +Chars 2499 - 2504 [step.] 0.002 secs (0.002u,0.s) Chars 2505 - 2510 [taus.] 0. secs (0.u,0.s) -Chars 2511 - 2521 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2526 - 2536 [apply~REL.] 0. secs (0.u,0.s) -Chars 2540 - 2544 [Qed.] 0.009 secs (0.009u,0.s) +Chars 2511 - 2521 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2526 - 2536 [(apply~REL).] 0. secs (0.u,0.s) +Chars 2540 - 2544 [Qed.] 0.014 secs (0.014u,0.s) Chars 2546 - 2721 [Theorem~interp_mrec_bind~{U}~{...] 0. secs (0.u,0.s) Chars 2722 - 2728 [Proof.] 0. secs (0.u,0.s) -Chars 2731 - 2763 [revert~t~k;~coinduction;~intros.] 0.001 secs (0.001u,0.s) -Chars 2766 - 2799 [rewrite~(unfold_interp_mrec~_~t).] 0.012 secs (0.012u,0.s) -Chars 2802 - 2826 [rewrite~(unfold_bind~t).] 0.011 secs (0.011u,0.s) -Chars 2829 - 2881 [destruct~(observe~t);~cbn;~[~~...] 0.002 secs (0.002u,0.s) +Chars 2731 - 2763 [(revert~t~k;~coinduction;~intr...] 0.002 secs (0.002u,0.s) +Chars 2766 - 2799 [(rewrite~(unfold_interp_mrec~_...] 0.019 secs (0.018u,0.s) +Chars 2802 - 2826 [(rewrite~(unfold_bind~t)).] 0.017 secs (0.017u,0.s) +Chars 2829 - 2881 [(destruct~(observe~t);~cbn;~[~...] 0.003 secs (0.003u,0.s) Chars 2885 - 2886 [-] 0. secs (0.u,0.s) -Chars 2887 - 2905 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 2887 - 2905 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 2908 - 2909 [-] 0. secs (0.u,0.s) Chars 2910 - 2915 [taus.] 0. secs (0.u,0.s) Chars 2916 - 2927 [fold_subst.] 0. secs (0.u,0.s) -Chars 2928 - 2938 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2928 - 2938 [(apply~CIH).] 0. secs (0.u,0.s) Chars 2942 - 2943 [-] 0. secs (0.u,0.s) Chars 2944 - 2951 [to_mon.] 0. secs (0.u,0.s) Chars 2952 - 2957 [taus.] 0. secs (0.u,0.s) Chars 2958 - 2969 [fold_subst.] 0. secs (0.u,0.s) -Chars 2975 - 2996 [rewrite~<-~bind_bind.] 0.008 secs (0.008u,0.s) -Chars 3001 - 3011 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2975 - 2996 [(rewrite~<-~bind_bind).] 0.013 secs (0.013u,0.s) +Chars 3001 - 3011 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3016 - 3017 [-] 0. secs (0.u,0.s) Chars 3018 - 3030 [constructor.] 0. secs (0.u,0.s) Chars 3031 - 3037 [intro.] 0. secs (0.u,0.s) Chars 3038 - 3049 [fold_subst.] 0. secs (0.u,0.s) -Chars 3055 - 3084 [rewrite~bind_ret_l,~bind_tau.] 0.019 secs (0.019u,0.s) -Chars 3090 - 3095 [step.] 0.001 secs (0.001u,0.s) +Chars 3055 - 3084 [(rewrite~bind_ret_l,~bind_tau).] 0.029 secs (0.028u,0.s) +Chars 3090 - 3095 [step.] 0.002 secs (0.002u,0.s) Chars 3096 - 3101 [taus.] 0. secs (0.u,0.s) -Chars 3102 - 3112 [apply~CIH.] 0. secs (0.u,0.s) -Chars 3116 - 3120 [Qed.] 0.009 secs (0.008u,0.s) +Chars 3102 - 3112 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 3116 - 3120 [Qed.] 0.013 secs (0.013u,0.s) Chars 3122 - 3236 [Theorem~interp_mrec_trigger~{U...] 0. secs (0.u,0.s) Chars 3237 - 3243 [Proof.] 0. secs (0.u,0.s) -Chars 3246 - 3292 [rewrite~unfold_interp_mrec;~un...] 0.009 secs (0.009u,0.s) -Chars 3295 - 3311 [destruct~a;~cbn.] 0. secs (0.u,0.s) -Chars 3314 - 3345 [rewrite~tau_euttge,~bind_ret_r.] 0.008 secs (0.008u,0.s) +Chars 3246 - 3292 [(rewrite~unfold_interp_mrec;~u...] 0.013 secs (0.013u,0.s) +Chars 3295 - 3311 [(destruct~a;~cbn).] 0. secs (0.u,0.s) +Chars 3314 - 3345 [(rewrite~tau_euttge,~bind_ret_r).] 0.014 secs (0.014u,0.s) Chars 3348 - 3360 [reflexivity.] 0. secs (0.u,0.s) -Chars 3363 - 3381 [step;~constructor.] 0.001 secs (0.001u,0.s) -Chars 3382 - 3389 [intros.] 0. secs (0.u,0.s) -Chars 3390 - 3434 [rewrite~tau_euttge,~unfold_int...] 0.01 secs (0.01u,0.s) -Chars 3437 - 3455 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 3456 - 3460 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3363 - 3381 [(step;~constructor).] 0.002 secs (0.002u,0.s) +Chars 3382 - 3389 [(intros).] 0. secs (0.u,0.s) +Chars 3390 - 3434 [(rewrite~tau_euttge,~unfold_in...] 0.015 secs (0.014u,0.s) +Chars 3437 - 3455 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 3456 - 3460 [Qed.] 0.003 secs (0.003u,0.s) Chars 3462 - 3564 [Theorem~interp_mrec_as_interp~...] 0. secs (0.u,0.s) Chars 3565 - 3571 [Proof.] 0. secs (0.u,0.s) -Chars 3574 - 3609 [rewrite~<-~(tau_eutt~(interp~_...] 0. secs (0.u,0.s) -Chars 3612 - 3627 [revert_until~T.] 0. secs (0.u,0.s) -Chars 3628 - 3640 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 3641 - 3648 [intros.] 0. secs (0.u,0.s) -Chars 3651 - 3693 [rewrite~unfold_interp_mrec,~un...] 0.022 secs (0.021u,0.s) -Chars 3696 - 3759 [destruct~(observe~c0);~[~~|~~|...] 0.003 secs (0.003u,0.s) +Chars 3574 - 3609 [(rewrite~<-~(tau_eutt~(interp~...] 0.001 secs (0.001u,0.s) +Chars 3612 - 3627 [(revert_until~T).] 0. secs (0.u,0.s) +Chars 3628 - 3640 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3641 - 3648 [(intros).] 0. secs (0.u,0.s) +Chars 3651 - 3693 [(rewrite~unfold_interp_mrec,~u...] 0.031 secs (0.031u,0.s) +Chars 3696 - 3759 [(destruct~(observe~c0);~[~~|~~...] 0.005 secs (0.005u,0.s) Chars 3762 - 3763 [-] 0. secs (0.u,0.s) Chars 3764 - 3773 [now~taur.] 0.001 secs (0.001u,0.s) Chars 3777 - 3778 [-] 0. secs (0.u,0.s) Chars 3779 - 3784 [taus.] 0. secs (0.u,0.s) -Chars 3785 - 3795 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3785 - 3795 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3799 - 3800 [-] 0. secs (0.u,0.s) Chars 3801 - 3806 [taus.] 0. secs (0.u,0.s) -Chars 3807 - 3832 [rewrite~interp_mrec_bind.] 0.009 secs (0.009u,0.s) -Chars 3833 - 3845 [unfold~mrec.] 0. secs (0.u,0.s) -Chars 3848 - 3854 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3855 - 3869 [intros;~subst.] 0. secs (0.u,0.s) -Chars 3870 - 3880 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3807 - 3832 [(rewrite~interp_mrec_bind).] 0.013 secs (0.013u,0.s) +Chars 3833 - 3845 [(unfold~mrec).] 0. secs (0.u,0.s) +Chars 3848 - 3854 [ebind.] 0.005 secs (0.005u,0.s) +Chars 3855 - 3869 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 3870 - 3880 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3884 - 3885 [-] 0. secs (0.u,0.s) Chars 3886 - 3893 [to_mon.] 0. secs (0.u,0.s) -Chars 3894 - 3913 [rewrite~tau_euttge.] 0.004 secs (0.004u,0.s) -Chars 3919 - 3940 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 3942 - 3959 [rewrite~bind_vis.] 0.011 secs (0.011u,0.s) +Chars 3894 - 3913 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) +Chars 3919 - 3940 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 3942 - 3959 [(rewrite~bind_vis).] 0.017 secs (0.016u,0.s) Chars 3964 - 3976 [constructor.] 0. secs (0.u,0.s) Chars 3977 - 3983 [intro.] 0. secs (0.u,0.s) -Chars 3989 - 4008 [rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 4009 - 4028 [rewrite~tau_euttge.] 0.002 secs (0.002u,0.s) -Chars 4029 - 4039 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4041 - 4045 [Qed.] 0.009 secs (0.009u,0.s) +Chars 3989 - 4008 [(rewrite~bind_ret_l).] 0.013 secs (0.013u,0.s) +Chars 4009 - 4028 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) +Chars 4029 - 4039 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4041 - 4045 [Qed.] 0.013 secs (0.012u,0.s) Chars 4047 - 4137 [Theorem~mrec_as_interp~{T}~(d~...] 0. secs (0.u,0.s) Chars 4138 - 4144 [Proof.] 0. secs (0.u,0.s) -Chars 4147 - 4175 [apply~interp_mrec_as_interp.] 0. secs (0.u,0.s) +Chars 4147 - 4175 [(apply~interp_mrec_as_interp).] 0. secs (0.u,0.s) Chars 4176 - 4180 [Qed.] 0. secs (0.u,0.s) Chars 4182 - 4280 [Lemma~interp_mrecursive~{T}~(d...] 0. secs (0.u,0.s) Chars 4281 - 4287 [Proof.] 0. secs (0.u,0.s) -Chars 4290 - 4308 [unfold~mrecursive.] 0. secs (0.u,0.s) -Chars 4309 - 4329 [unfold~trigger_inl1.] 0. secs (0.u,0.s) -Chars 4332 - 4355 [rewrite~interp_trigger.] 0.001 secs (0.001u,0.s) -Chars 4356 - 4360 [cbn.] 0. secs (0.u,0.s) +Chars 4290 - 4308 [(unfold~mrecursive).] 0. secs (0.u,0.s) +Chars 4309 - 4329 [(unfold~trigger_inl1).] 0. secs (0.u,0.s) +Chars 4332 - 4355 [(rewrite~interp_trigger).] 0.001 secs (0.001u,0.s) +Chars 4356 - 4360 [(cbn).] 0. secs (0.u,0.s) Chars 4361 - 4373 [reflexivity.] 0. secs (0.u,0.s) -Chars 4374 - 4378 [Qed.] 0. secs (0.u,0.s) -Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0. secs (0.u,0.s) +Chars 4374 - 4378 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0.001 secs (0.001u,0.s) Chars 4517 - 4523 [Proof.] 0. secs (0.u,0.s) -Chars 4526 - 4546 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 4526 - 4546 [(rewrite~<-~tau_eutt).] 0.002 secs (0.002u,0.s) Chars 4549 - 4558 [revert~t.] 0. secs (0.u,0.s) -Chars 4559 - 4571 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4572 - 4579 [intros.] 0. secs (0.u,0.s) -Chars 4582 - 4626 [rewrite~(itree_eta~t);~destruc...] 0.012 secs (0.012u,0.s) +Chars 4559 - 4571 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4572 - 4579 [(intros).] 0. secs (0.u,0.s) +Chars 4582 - 4626 [(rewrite~(itree_eta~t);~destru...] 0.018 secs (0.017u,0.s) Chars 4629 - 4630 [-] 0. secs (0.u,0.s) -Chars 4631 - 4670 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.025u,0.s) +Chars 4631 - 4670 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.037u,0.s) Chars 4674 - 4675 [-] 0. secs (0.u,0.s) -Chars 4676 - 4720 [rewrite~unfold_interp,~2!unfol...] 0.035 secs (0.034u,0.s) +Chars 4676 - 4720 [(rewrite~unfold_interp,~2!unfo...] 0.051 secs (0.051u,0.s) Chars 4726 - 4731 [taus.] 0. secs (0.u,0.s) -Chars 4732 - 4742 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4732 - 4742 [(apply~CIH).] 0. secs (0.u,0.s) Chars 4746 - 4747 [-] 0. secs (0.u,0.s) -Chars 4748 - 4767 [rewrite~interp_vis.] 0.012 secs (0.012u,0.s) -Chars 4772 - 4813 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) -Chars 4818 - 4842 [destruct~e;~cbn;~to_mon.] 0. secs (0.u,0.s) +Chars 4748 - 4767 [(rewrite~interp_vis).] 0.019 secs (0.019u,0.s) +Chars 4772 - 4813 [(rewrite~(unfold_interp_mrec~_...] 0.019 secs (0.018u,0.s) +Chars 4818 - 4842 [(destruct~e;~cbn;~to_mon).] 0.001 secs (0.001u,0.s) Chars 4848 - 4849 [+] 0. secs (0.u,0.s) -Chars 4850 - 4877 [rewrite~2!interp_mrec_bind.] 0.024 secs (0.024u,0.s) +Chars 4850 - 4877 [(rewrite~2!interp_mrec_bind).] 0.038 secs (0.038u,0.s) Chars 4884 - 4889 [taus.] 0. secs (0.u,0.s) -Chars 4897 - 4918 [ebind;~intros;~subst.] 0.004 secs (0.004u,0.s) -Chars 4926 - 4969 [rewrite~unfold_interp_mrec;~cb...] 0.009 secs (0.009u,0.s) +Chars 4897 - 4918 [(ebind;~intros;~subst).] 0.006 secs (0.006u,0.s) +Chars 4926 - 4969 [(rewrite~unfold_interp_mrec;~c...] 0.014 secs (0.014u,0.s) Chars 4975 - 4976 [+] 0. secs (0.u,0.s) -Chars 4977 - 5063 [unfold~inr_,~Handler.Inr_sum1_...] 0. secs (0.u,0.s) -Chars 5070 - 5124 [rewrite~bind_trigger,~unfold_i...] 0.024 secs (0.024u,0.s) -Chars 5131 - 5150 [rewrite~tau_euttge.] 0.003 secs (0.003u,0.s) +Chars 4977 - 5063 [(unfold~inr_,~Handler.Inr_sum1...] 0. secs (0.u,0.s) +Chars 5070 - 5124 [(rewrite~bind_trigger,~unfold_...] 0.036 secs (0.036u,0.s) +Chars 5131 - 5150 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) Chars 5157 - 5169 [constructor.] 0. secs (0.u,0.s) -Chars 5176 - 5183 [intros.] 0. secs (0.u,0.s) -Chars 5184 - 5189 [step.] 0.001 secs (0.001u,0.s) +Chars 5176 - 5183 [(intros).] 0. secs (0.u,0.s) +Chars 5184 - 5189 [step.] 0.002 secs (0.002u,0.s) Chars 5190 - 5195 [taus.] 0. secs (0.u,0.s) -Chars 5203 - 5235 [rewrite~unfold_interp_mrec;~cbn.] 0.008 secs (0.008u,0.s) -Chars 5242 - 5252 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5254 - 5258 [Qed.] 0.014 secs (0.013u,0.s) +Chars 5203 - 5235 [(rewrite~unfold_interp_mrec;~c...] 0.011 secs (0.011u,0.s) +Chars 5242 - 5252 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5254 - 5258 [Qed.] 0.02 secs (0.02u,0.s) Chars 5260 - 5270 [End~Facts.] 0. secs (0.u,0.s) Chars 5272 - 5297 [#[local]~Opaque~interp_mrec.] 0. secs (0.u,0.s) -Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0. secs (0.u,0.s) +Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0.001 secs (0.001u,0.s) Chars 5557 - 5563 [Proof.] 0. secs (0.u,0.s) -Chars 5566 - 5583 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) -Chars 5586 - 5615 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) -Chars 5618 - 5647 [rewrite~2!unfold_interp_mrec.] 0.02 secs (0.02u,0.s) -Chars 5650 - 5680 [step~in~Ht;~induction~Ht;~cbn.] 0.001 secs (0.001u,0.s) +Chars 5566 - 5583 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) +Chars 5586 - 5615 [(coinduction;~intros~t1~t2~Ht).] 0.002 secs (0.002u,0.s) +Chars 5618 - 5647 [(rewrite~2!unfold_interp_mrec).] 0.03 secs (0.03u,0.s) +Chars 5650 - 5680 [(step~in~Ht;~induction~Ht;~cbn).] 0.002 secs (0.002u,0.s) Chars 5684 - 5688 [3:~{] 0. secs (0.u,0.s) -Chars 5689 - 5713 [destruct~e;~constructor.] 0. secs (0.u,0.s) +Chars 5689 - 5713 [(destruct~e;~constructor).] 0. secs (0.u,0.s) Chars 5719 - 5720 [+] 0. secs (0.u,0.s) -Chars 5721 - 5731 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5732 - 5738 [ebind.] 0.004 secs (0.004u,0.s) -Chars 5739 - 5749 [apply~Hfg.] 0. secs (0.u,0.s) -Chars 5758 - 5772 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 5773 - 5783 [apply~REL.] 0. secs (0.u,0.s) +Chars 5721 - 5731 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5732 - 5738 [ebind.] 0.007 secs (0.007u,0.s) +Chars 5739 - 5749 [(apply~Hfg).] 0. secs (0.u,0.s) +Chars 5758 - 5772 [(intros~?~_~[]).] 0. secs (0.u,0.s) +Chars 5773 - 5783 [(apply~REL).] 0. secs (0.u,0.s) Chars 5789 - 5790 [+] 0. secs (0.u,0.s) -Chars 5791 - 5810 [intros;~step;~taus.] 0.003 secs (0.003u,0.s) +Chars 5791 - 5810 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) Chars 5811 - 5833 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 5836 - 5837 [}] 0. secs (0.u,0.s) -Chars 5840 - 5879 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) -Chars 5882 - 5940 [all:~to_mon;~rewrite~unfold_in...] 0.029 secs (0.029u,0.s) -Chars 5941 - 5945 [Qed.] 0.009 secs (0.009u,0.s) -Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) +Chars 5840 - 5879 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) +Chars 5882 - 5940 [all:~(to_mon;~rewrite~unfold_i...] 0.041 secs (0.041u,0.s) +Chars 5941 - 5945 [Qed.] 0.012 secs (0.011u,0.s) +Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0.001 secs (0.001u,0.s) Chars 6195 - 6310 [Lemma~rec_as_interp~{E}~{A}~{B...] 0. secs (0.u,0.s) Chars 6311 - 6317 [Proof.] 0. secs (0.u,0.s) -Chars 6320 - 6331 [unfold~rec.] 0. secs (0.u,0.s) -Chars 6334 - 6357 [rewrite~mrec_as_interp.] 0.001 secs (0.001u,0.s) -Chars 6360 - 6378 [apply~eq_sub_eutt.] 0. secs (0.u,0.s) -Chars 6381 - 6404 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) +Chars 6320 - 6331 [(unfold~rec).] 0. secs (0.u,0.s) +Chars 6334 - 6357 [(rewrite~mrec_as_interp).] 0.001 secs (0.001u,0.s) +Chars 6360 - 6378 [(apply~eq_sub_eutt).] 0. secs (0.u,0.s) +Chars 6381 - 6404 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) Chars 6407 - 6408 [-] 0. secs (0.u,0.s) -Chars 6409 - 6413 [red.] 0. secs (0.u,0.s) -Chars 6414 - 6458 [unfold~case_;~intros~?~[[]|~];...] 0. secs (0.u,0.s) +Chars 6409 - 6413 [(red).] 0. secs (0.u,0.s) +Chars 6414 - 6458 [(unfold~case_;~intros~?~[[]|~]...] 0. secs (0.u,0.s) Chars 6461 - 6462 [-] 0. secs (0.u,0.s) Chars 6463 - 6475 [reflexivity.] 0. secs (0.u,0.s) Chars 6476 - 6480 [Qed.] 0.001 secs (0.001u,0.s) Chars 6482 - 6607 [Lemma~interp_recursive_call~{E...] 0. secs (0.u,0.s) Chars 6608 - 6614 [Proof.] 0. secs (0.u,0.s) -Chars 6617 - 6634 [unfold~recursive.] 0. secs (0.u,0.s) -Chars 6635 - 6647 [unfold~call.] 0. secs (0.u,0.s) -Chars 6650 - 6673 [rewrite~interp_trigger.] 0. secs (0.u,0.s) -Chars 6674 - 6678 [cbn.] 0. secs (0.u,0.s) +Chars 6617 - 6634 [(unfold~recursive).] 0. secs (0.u,0.s) +Chars 6635 - 6647 [(unfold~call).] 0. secs (0.u,0.s) +Chars 6650 - 6673 [(rewrite~interp_trigger).] 0.001 secs (0.001u,0.s) +Chars 6674 - 6678 [(cbn).] 0. secs (0.u,0.s) Chars 6681 - 6693 [reflexivity.] 0. secs (0.u,0.s) -Chars 6694 - 6698 [Qed.] 0. secs (0.u,0.s) -Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 6694 - 6698 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) Chars 6967 - 6973 [Proof.] 0. secs (0.u,0.s) -Chars 6976 - 6993 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) -Chars 6996 - 7025 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) -Chars 7028 - 7057 [rewrite~2!unfold_interp_mrec.] 0.013 secs (0.013u,0.s) -Chars 7060 - 7100 [step~in~Ht;~induction~Ht;~try~...] 0.08 secs (0.08u,0.s) +Chars 6976 - 6993 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) +Chars 6996 - 7025 [(coinduction;~intros~t1~t2~Ht).] 0.003 secs (0.003u,0.s) +Chars 7028 - 7057 [(rewrite~2!unfold_interp_mrec).] 0.018 secs (0.018u,0.s) +Chars 7060 - 7100 [(step~in~Ht;~induction~Ht;~try...] 0.116 secs (0.116u,0.s) Chars 7104 - 7108 [3:~{] 0. secs (0.u,0.s) -Chars 7109 - 7133 [destruct~e;~constructor.] 0. secs (0.u,0.s) +Chars 7109 - 7133 [(destruct~e;~constructor).] 0. secs (0.u,0.s) Chars 7139 - 7140 [+] 0. secs (0.u,0.s) -Chars 7141 - 7151 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7152 - 7158 [ebind.] 0.004 secs (0.004u,0.s) -Chars 7159 - 7169 [apply~Hfg.] 0. secs (0.u,0.s) -Chars 7178 - 7192 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 7193 - 7203 [apply~REL.] 0. secs (0.u,0.s) +Chars 7141 - 7151 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7152 - 7158 [ebind.] 0.005 secs (0.005u,0.s) +Chars 7159 - 7169 [(apply~Hfg).] 0. secs (0.u,0.s) +Chars 7178 - 7192 [(intros~?~_~[]).] 0. secs (0.u,0.s) +Chars 7193 - 7203 [(apply~REL).] 0. secs (0.u,0.s) Chars 7209 - 7210 [+] 0. secs (0.u,0.s) -Chars 7211 - 7230 [intros;~step;~taus.] 0.001 secs (0.001u,0.s) +Chars 7211 - 7230 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) Chars 7231 - 7253 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 7256 - 7257 [}] 0. secs (0.u,0.s) -Chars 7260 - 7299 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) -Chars 7302 - 7360 [all:~to_mon;~rewrite~unfold_in...] 0.013 secs (0.013u,0.s) -Chars 7361 - 7365 [Qed.] 0.008 secs (0.008u,0.s) +Chars 7260 - 7299 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) +Chars 7302 - 7360 [all:~(to_mon;~rewrite~unfold_i...] 0.02 secs (0.02u,0.s) +Chars 7361 - 7365 [Qed.] 0.011 secs (0.011u,0.s) Chars 7367 - 7504 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 7505 - 7511 [Proof.] 0. secs (0.u,0.s) -Chars 7514 - 7523 [do~4~red.] 0. secs (0.u,0.s) -Chars 7524 - 7550 [eapply~euttge_interp_mrec.] 0. secs (0.u,0.s) +Chars 7514 - 7523 [(do~4~red).] 0. secs (0.u,0.s) +Chars 7524 - 7550 [(eapply~euttge_interp_mrec).] 0. secs (0.u,0.s) Chars 7551 - 7563 [reflexivity.] 0. secs (0.u,0.s) -Chars 7564 - 7568 [Qed.] 0. secs (0.u,0.s) +Chars 7564 - 7568 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Interp/Traces.v.timing b/theories/Interp/Traces.v.timing index 54e8a7e9..841a870b 100644 --- a/theories/Interp/Traces.v.timing +++ b/theories/Interp/Traces.v.timing @@ -1,215 +1,215 @@ -Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.15 secs (0.135u,0.015s) +Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.194 secs (0.173u,0.021s) Chars 223 - 246 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) -Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.u,0.s) +Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0. secs (0.u,0.s) -Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0.004 secs (0.003u,0.s) -Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.003 secs (0.002u,0.s) +Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0. secs (0.u,0.s) +Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.004 secs (0.003u,0.s) Chars 1431 - 1524 [Definition~is_trace~{E~:~Type~...] 0. secs (0.u,0.s) Chars 1542 - 1695 [Definition~trace_incl~{E~:~Typ...] 0. secs (0.u,0.s) Chars 1713 - 1857 [Definition~trace_eq~{E~:~Type~...] 0. secs (0.u,0.s) Chars 1859 - 1973 [Lemma~is_traceF_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 1974 - 1980 [Proof.] 0. secs (0.u,0.s) -Chars 1983 - 1990 [intros.] 0. secs (0.u,0.s) -Chars 1991 - 2005 [split;~intros.] 0. secs (0.u,0.s) +Chars 1983 - 1990 [(intros).] 0. secs (0.u,0.s) +Chars 1991 - 2005 [(split;~intros).] 0. secs (0.u,0.s) Chars 2008 - 2009 [-] 0. secs (0.u,0.s) Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) -Chars 2023 - 2044 [remember~(observe~t).] 0. secs (0.u,0.s) +Chars 2023 - 2044 [(remember~(observe~t)).] 0. secs (0.u,0.s) Chars 2049 - 2072 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 2077 - 2143 [induction~H;~intros;~subst;~co...] 0.001 secs (0.u,0.s) +Chars 2077 - 2143 [(induction~H;~intros;~subst;~c...] 0.001 secs (0.001u,0.s) Chars 2146 - 2147 [-] 0. secs (0.u,0.s) -Chars 2148 - 2190 [inversion~H;~subst;~try~constr...] 0.001 secs (0.001u,0.s) -Chars 2191 - 2195 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2148 - 2190 [(inversion~H;~subst;~try~const...] 0.002 secs (0.001u,0.s) +Chars 2191 - 2195 [Qed.] 0.002 secs (0.001u,0.s) Chars 2197 - 2293 [Lemma~sutt_trace_incl~:~~~fora...] 0. secs (0.u,0.s) Chars 2294 - 2300 [Proof.] 0. secs (0.u,0.s) -Chars 2303 - 2307 [red.] 0. secs (0.u,0.s) -Chars 2308 - 2315 [intros.] 0. secs (0.u,0.s) -Chars 2316 - 2326 [red~in~H0.] 0. secs (0.u,0.s) -Chars 2327 - 2349 [remember~(observe~t1).] 0. secs (0.u,0.s) +Chars 2303 - 2307 [(red).] 0. secs (0.u,0.s) +Chars 2308 - 2315 [(intros).] 0. secs (0.u,0.s) +Chars 2316 - 2326 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 2327 - 2349 [(remember~(observe~t1)).] 0. secs (0.u,0.s) Chars 2352 - 2376 [generalize~dependent~t1.] 0. secs (0.u,0.s) Chars 2377 - 2401 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2404 - 2450 [induction~H0;~intros;~try~(sol...] 0.001 secs (0.u,0.s) +Chars 2404 - 2450 [(induction~H0;~intros;~try~(so...] 0.001 secs (0.001u,0.s) Chars 2453 - 2454 [-] 0. secs (0.u,0.s) Chars 2455 - 2465 [step~in~H.] 0. secs (0.u,0.s) -Chars 2466 - 2487 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 2492 - 2510 [remember~(RetF~_).] 0. secs (0.u,0.s) -Chars 2511 - 2533 [remember~(observe~t2).] 0. secs (0.u,0.s) +Chars 2466 - 2487 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) +Chars 2492 - 2510 [(remember~(RetF~_)).] 0. secs (0.u,0.s) +Chars 2511 - 2533 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 2538 - 2562 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2567 - 2638 [induction~H;~intros;~try~inv~H...] 0.028 secs (0.026u,0.002s) -Chars 2643 - 2665 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) +Chars 2567 - 2638 [(induction~H;~intros;~try~inv~...] 0.009 secs (0.007u,0.002s) +Chars 2643 - 2665 [(eapply~IHsuttF;~eauto).] 0. secs (0.u,0.s) Chars 2668 - 2669 [-] 0. secs (0.u,0.s) -Chars 2670 - 2707 [apply~IHis_traceF~with~(t1~:=~...] 0. secs (0.u,0.s) -Chars 2712 - 2736 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) -Chars 2737 - 2741 [red.] 0. secs (0.u,0.s) -Chars 2742 - 2751 [red~in~H.] 0. secs (0.u,0.s) -Chars 2752 - 2773 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 2670 - 2707 [(apply~IHis_traceF~with~(t1~:=...] 0.001 secs (0.001u,0.s) +Chars 2712 - 2736 [(apply~sutt_inv_tau_left).] 0. secs (0.u,0.s) +Chars 2737 - 2741 [(red).] 0. secs (0.u,0.s) +Chars 2742 - 2751 [(red~in~H).] 0. secs (0.u,0.s) +Chars 2752 - 2773 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) Chars 2774 - 2779 [auto.] 0. secs (0.u,0.s) Chars 2782 - 2783 [-] 0. secs (0.u,0.s) -Chars 2784 - 2794 [step~in~H.] 0. secs (0.u,0.s) -Chars 2795 - 2816 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 2821 - 2841 [remember~(VisF~_~_).] 0. secs (0.u,0.s) -Chars 2842 - 2864 [remember~(observe~t2).] 0. secs (0.u,0.s) +Chars 2784 - 2794 [step~in~H.] 0.026 secs (0.024u,0.001s) +Chars 2795 - 2816 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) +Chars 2821 - 2841 [(remember~(VisF~_~_)).] 0. secs (0.u,0.s) +Chars 2842 - 2864 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 2869 - 2893 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2898 - 2936 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) +Chars 2898 - 2936 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 2941 - 2942 [+] 0. secs (0.u,0.s) -Chars 2943 - 2951 [inv_Vis.] 0.007 secs (0.007u,0.s) +Chars 2943 - 2951 [inv_Vis.] 0.009 secs (0.009u,0.s) Chars 2952 - 2958 [subst.] 0. secs (0.u,0.s) -Chars 2959 - 2963 [red.] 0. secs (0.u,0.s) -Chars 2964 - 2981 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 2959 - 2963 [(red).] 0. secs (0.u,0.s) +Chars 2964 - 2981 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) Chars 2982 - 2994 [constructor.] 0. secs (0.u,0.s) Chars 2999 - 3000 [+] 0. secs (0.u,0.s) -Chars 3001 - 3005 [red.] 0. secs (0.u,0.s) -Chars 3006 - 3023 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 3001 - 3005 [(red).] 0. secs (0.u,0.s) +Chars 3006 - 3023 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) Chars 3024 - 3036 [constructor.] 0. secs (0.u,0.s) -Chars 3037 - 3059 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) +Chars 3037 - 3059 [(eapply~IHsuttF;~eauto).] 0. secs (0.u,0.s) Chars 3062 - 3063 [-] 0. secs (0.u,0.s) Chars 3064 - 3074 [step~in~H.] 0. secs (0.u,0.s) -Chars 3075 - 3096 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 3101 - 3121 [remember~(VisF~_~_).] 0. secs (0.u,0.s) -Chars 3122 - 3144 [remember~(observe~t2).] 0. secs (0.u,0.s) +Chars 3075 - 3096 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) +Chars 3101 - 3121 [(remember~(VisF~_~_)).] 0. secs (0.u,0.s) +Chars 3122 - 3144 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 3149 - 3173 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 3178 - 3216 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) +Chars 3178 - 3216 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 3221 - 3222 [+] 0. secs (0.u,0.s) -Chars 3223 - 3231 [inv_Vis.] 0.038 secs (0.038u,0.s) +Chars 3223 - 3231 [inv_Vis.] 0.043 secs (0.043u,0.s) Chars 3232 - 3238 [subst.] 0. secs (0.u,0.s) -Chars 3239 - 3243 [red.] 0. secs (0.u,0.s) -Chars 3244 - 3261 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 3239 - 3243 [(red).] 0. secs (0.u,0.s) +Chars 3244 - 3261 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) Chars 3262 - 3274 [constructor.] 0. secs (0.u,0.s) -Chars 3281 - 3317 [eapply~IHis_traceF;~auto~with~...] 0. secs (0.u,0.s) +Chars 3281 - 3317 [(eapply~IHis_traceF;~auto~with...] 0. secs (0.u,0.s) Chars 3322 - 3323 [+] 0. secs (0.u,0.s) -Chars 3324 - 3328 [red.] 0. secs (0.u,0.s) -Chars 3329 - 3346 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) +Chars 3324 - 3328 [(red).] 0. secs (0.u,0.s) +Chars 3329 - 3346 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) Chars 3347 - 3359 [constructor.] 0. secs (0.u,0.s) -Chars 3360 - 3380 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) -Chars 3381 - 3385 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3360 - 3380 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) +Chars 3381 - 3385 [Qed.] 0.007 secs (0.007u,0.s) Chars 3387 - 3475 [Lemma~eutt_trace_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 3476 - 3482 [Proof.] 0. secs (0.u,0.s) Chars 3485 - 3491 [split.] 0. secs (0.u,0.s) Chars 3494 - 3495 [-] 0. secs (0.u,0.s) -Chars 3496 - 3541 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) +Chars 3496 - 3541 [(apply~sutt_trace_incl;~apply~...] 0. secs (0.u,0.s) Chars 3544 - 3545 [-] 0. secs (0.u,0.s) Chars 3546 - 3560 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 3561 - 3606 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) +Chars 3561 - 3606 [(apply~sutt_trace_incl;~apply~...] 0. secs (0.u,0.s) Chars 3607 - 3611 [Qed.] 0. secs (0.u,0.s) Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0. secs (0.u,0.s) Chars 3973 - 3979 [Proof.] 0. secs (0.u,0.s) -Chars 3982 - 4003 [destruct~H,~t1;~auto.] 0. secs (0.u,0.s) +Chars 3982 - 4003 [(destruct~H,~t1;~auto).] 0. secs (0.u,0.s) Chars 4006 - 4007 [-] 0. secs (0.u,0.s) -Chars 4008 - 4034 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 4008 - 4034 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) Chars 4037 - 4038 [-] 0. secs (0.u,0.s) -Chars 4039 - 4065 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 4039 - 4065 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) Chars 4066 - 4070 [Qed.] 0. secs (0.u,0.s) Chars 4072 - 4168 [Lemma~trace_incl_sutt~:~~~fora...] 0. secs (0.u,0.s) Chars 4169 - 4175 [Proof.] 0. secs (0.u,0.s) -Chars 4178 - 4189 [intros~E~R.] 0. secs (0.u,0.s) -Chars 4190 - 4208 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 4209 - 4228 [intros~t1~t2~Hincl.] 0. secs (0.u,0.s) -Chars 4231 - 4254 [unfold~trace_incl~in~*.] 0. secs (0.u,0.s) -Chars 4255 - 4276 [unfold~is_trace~in~*.] 0. secs (0.u,0.s) -Chars 4279 - 4301 [destruct~(observe~t1).] 0. secs (0.u,0.s) +Chars 4178 - 4189 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 4190 - 4208 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4209 - 4228 [(intros~t1~t2~Hincl).] 0. secs (0.u,0.s) +Chars 4231 - 4254 [(unfold~trace_incl~in~*).] 0. secs (0.u,0.s) +Chars 4255 - 4276 [(unfold~is_trace~in~*).] 0. secs (0.u,0.s) +Chars 4279 - 4301 [(destruct~(observe~t1)).] 0. secs (0.u,0.s) Chars 4304 - 4305 [-] 0. secs (0.u,0.s) -Chars 4306 - 4387 [assert~(H~:~is_traceF~(RetF~r~...] 0. secs (0.u,0.s) -Chars 4392 - 4409 [apply~Hincl~in~H.] 0. secs (0.u,0.s) +Chars 4306 - 4387 [(assert~(H~:~is_traceF~(RetF~r...] 0. secs (0.u,0.s) +Chars 4392 - 4409 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) Chars 4410 - 4422 [clear~Hincl.] 0. secs (0.u,0.s) -Chars 4423 - 4452 [destruct~(observe~t2);~inv~H.] 0.023 secs (0.023u,0.s) +Chars 4423 - 4452 [(destruct~(observe~t2);~inv~H).] 0.029 secs (0.029u,0.s) Chars 4457 - 4458 [+] 0. secs (0.u,0.s) Chars 4459 - 4471 [constructor.] 0. secs (0.u,0.s) Chars 4472 - 4477 [auto.] 0. secs (0.u,0.s) Chars 4482 - 4483 [+] 0. secs (0.u,0.s) Chars 4484 - 4496 [constructor.] 0. secs (0.u,0.s) -Chars 4503 - 4524 [remember~(observe~t).] 0.002 secs (0.002u,0.s) -Chars 4525 - 4543 [remember~(TRet~_).] 0. secs (0.u,0.s) +Chars 4503 - 4524 [(remember~(observe~t)).] 0. secs (0.u,0.s) +Chars 4525 - 4543 [(remember~(TRet~_)).] 0.001 secs (0.001u,0.s) Chars 4550 - 4573 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4580 - 4633 [induction~H1;~intros;~try~inv~...] 0.014 secs (0.014u,0.s) +Chars 4580 - 4633 [(induction~H1;~intros;~try~inv...] 0.02 secs (0.02u,0.s) Chars 4640 - 4652 [constructor.] 0. secs (0.u,0.s) -Chars 4653 - 4679 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) +Chars 4653 - 4679 [(eapply~IHis_traceF;~eauto).] 0. secs (0.u,0.s) Chars 4682 - 4683 [-] 0. secs (0.u,0.s) Chars 4684 - 4696 [constructor.] 0. secs (0.u,0.s) -Chars 4697 - 4707 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4708 - 4715 [intros.] 0. secs (0.u,0.s) -Chars 4716 - 4728 [apply~Hincl.] 0. secs (0.u,0.s) +Chars 4697 - 4707 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4708 - 4715 [(intros).] 0. secs (0.u,0.s) +Chars 4716 - 4728 [(apply~Hincl).] 0. secs (0.u,0.s) Chars 4729 - 4741 [constructor.] 0. secs (0.u,0.s) Chars 4742 - 4747 [auto.] 0. secs (0.u,0.s) Chars 4750 - 4751 [-] 0. secs (0.u,0.s) -Chars 4752 - 4814 [assert~(H~:~is_traceF~(VisF~e~...] 0. secs (0.u,0.s) -Chars 4819 - 4836 [apply~Hincl~in~H.] 0. secs (0.u,0.s) -Chars 4837 - 4866 [destruct~(observe~t2);~inv~H.] 0.024 secs (0.024u,0.s) +Chars 4752 - 4814 [(assert~(H~:~is_traceF~(VisF~e...] 0. secs (0.u,0.s) +Chars 4819 - 4836 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) +Chars 4837 - 4866 [(destruct~(observe~t2);~inv~H).] 0.03 secs (0.03u,0.s) Chars 4871 - 4872 [+] 0. secs (0.u,0.s) Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) -Chars 4892 - 4964 [assert~(forall~tr,~is_traceF~(...] 0. secs (0.u,0.s) +Chars 4892 - 4964 [(assert~(forall~tr,~is_traceF~...] 0. secs (0.u,0.s) Chars 4971 - 4972 [{] 0. secs (0.u,0.s) -Chars 4981 - 4988 [intros.] 0. secs (0.u,0.s) -Chars 4989 - 5011 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) -Chars 5012 - 5030 [apply~Hincl;~auto.] 0. secs (0.u,0.s) +Chars 4981 - 4988 [(intros).] 0. secs (0.u,0.s) +Chars 4989 - 5011 [(rewrite~is_traceF_tau).] 0.002 secs (0.002u,0.s) +Chars 5012 - 5030 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) Chars 5037 - 5038 [}] 0. secs (0.u,0.s) Chars 5045 - 5057 [clear~Hincl.] 0. secs (0.u,0.s) Chars 5058 - 5078 [rename~H~into~Hincl.] 0. secs (0.u,0.s) -Chars 5085 - 5106 [remember~(observe~t).] 0. secs (0.u,0.s) -Chars 5107 - 5130 [remember~(TEventEnd~_).] 0. secs (0.u,0.s) +Chars 5085 - 5106 [(remember~(observe~t)).] 0. secs (0.u,0.s) +Chars 5107 - 5130 [(remember~(TEventEnd~_)).] 0.001 secs (0.001u,0.s) Chars 5137 - 5160 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 5167 - 5206 [induction~H1;~intros;~try~disc...] 0.001 secs (0.001u,0.s) +Chars 5167 - 5206 [(induction~H1;~intros;~try~dis...] 0.001 secs (0.001u,0.s) Chars 5213 - 5214 [*] 0. secs (0.u,0.s) Chars 5215 - 5227 [constructor.] 0. secs (0.u,0.s) -Chars 5228 - 5254 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) -Chars 5263 - 5270 [intros.] 0. secs (0.u,0.s) -Chars 5271 - 5293 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) -Chars 5294 - 5312 [apply~Hincl;~auto.] 0. secs (0.u,0.s) +Chars 5228 - 5254 [(eapply~IHis_traceF;~eauto).] 0. secs (0.u,0.s) +Chars 5263 - 5270 [(intros).] 0. secs (0.u,0.s) +Chars 5271 - 5293 [(rewrite~is_traceF_tau).] 0. secs (0.u,0.s) +Chars 5294 - 5312 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) Chars 5319 - 5320 [*] 0. secs (0.u,0.s) -Chars 5321 - 5376 [apply~eq_trace_inv~in~Heqt0;~d...] 0.006 secs (0.006u,0.s) +Chars 5321 - 5376 [(apply~eq_trace_inv~in~Heqt0;~...] 0.008 secs (0.008u,0.s) Chars 5385 - 5391 [subst.] 0. secs (0.u,0.s) Chars 5392 - 5404 [constructor.] 0. secs (0.u,0.s) Chars 5405 - 5411 [intro.] 0. secs (0.u,0.s) -Chars 5412 - 5422 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5423 - 5430 [intros.] 0. secs (0.u,0.s) -Chars 5439 - 5516 [assert~(is_traceF~(VisF~e~k)~(...] 0. secs (0.u,0.s) -Chars 5525 - 5543 [apply~Hincl~in~H1.] 0. secs (0.u,0.s) -Chars 5544 - 5551 [inv~H1.] 0.008 secs (0.008u,0.s) -Chars 5552 - 5565 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 5412 - 5422 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5423 - 5430 [(intros).] 0. secs (0.u,0.s) +Chars 5439 - 5516 [(assert~(is_traceF~(VisF~e~k)~...] 0. secs (0.u,0.s) +Chars 5525 - 5543 [(apply~Hincl~in~H1).] 0. secs (0.u,0.s) +Chars 5544 - 5551 [(inv~H1).] 0.009 secs (0.009u,0.s) +Chars 5552 - 5565 [ddestruction.] 0.005 secs (0.004u,0.s) Chars 5566 - 5571 [auto.] 0. secs (0.u,0.s) Chars 5576 - 5577 [+] 0. secs (0.u,0.s) -Chars 5578 - 5591 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 5578 - 5591 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 5592 - 5604 [constructor.] 0. secs (0.u,0.s) Chars 5605 - 5611 [intro.] 0. secs (0.u,0.s) -Chars 5612 - 5622 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5623 - 5630 [intros.] 0. secs (0.u,0.s) -Chars 5637 - 5716 [assert~(is_traceF~(VisF~e0~k)~...] 0. secs (0.u,0.s) -Chars 5723 - 5741 [apply~Hincl~in~H0.] 0. secs (0.u,0.s) -Chars 5742 - 5749 [inv~H0.] 0.006 secs (0.006u,0.s) -Chars 5750 - 5769 [ddestruction;~auto.] 0.003 secs (0.003u,0.s) -Chars 5770 - 5774 [Qed.] 0.023 secs (0.023u,0.s) +Chars 5612 - 5622 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5623 - 5630 [(intros).] 0. secs (0.u,0.s) +Chars 5637 - 5716 [(assert~(is_traceF~(VisF~e0~k)...] 0. secs (0.u,0.s) +Chars 5723 - 5741 [(apply~Hincl~in~H0).] 0. secs (0.u,0.s) +Chars 5742 - 5749 [(inv~H0).] 0.009 secs (0.009u,0.s) +Chars 5750 - 5769 [(ddestruction;~auto).] 0.002 secs (0.002u,0.s) +Chars 5770 - 5774 [Qed.] 0.032 secs (0.032u,0.s) Chars 5776 - 5879 [Theorem~trace_incl_iff_sutt~:~...] 0. secs (0.u,0.s) Chars 5880 - 5886 [Proof.] 0. secs (0.u,0.s) Chars 5889 - 5895 [split.] 0. secs (0.u,0.s) Chars 5898 - 5899 [-] 0. secs (0.u,0.s) -Chars 5900 - 5922 [apply~sutt_trace_incl.] 0. secs (0.u,0.s) +Chars 5900 - 5922 [(apply~sutt_trace_incl).] 0. secs (0.u,0.s) Chars 5925 - 5926 [-] 0. secs (0.u,0.s) -Chars 5927 - 5949 [apply~trace_incl_sutt.] 0. secs (0.u,0.s) -Chars 5950 - 5954 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5927 - 5949 [(apply~trace_incl_sutt).] 0. secs (0.u,0.s) +Chars 5950 - 5954 [Qed.] 0. secs (0.u,0.s) Chars 5956 - 6044 [Lemma~trace_eq_eutt~:~~~forall...] 0. secs (0.u,0.s) Chars 6045 - 6051 [Proof.] 0. secs (0.u,0.s) -Chars 6054 - 6077 [intros~E~R~t1~t2~[?~?].] 0. secs (0.u,0.s) -Chars 6078 - 6094 [apply~sutt_eutt.] 0. secs (0.u,0.s) +Chars 6054 - 6077 [(intros~E~R~t1~t2~[?~?]).] 0. secs (0.u,0.s) +Chars 6078 - 6094 [(apply~sutt_eutt).] 0. secs (0.u,0.s) Chars 6097 - 6098 [-] 0. secs (0.u,0.s) -Chars 6099 - 6127 [apply~trace_incl_sutt;~auto.] 0. secs (0.u,0.s) +Chars 6099 - 6127 [(apply~trace_incl_sutt;~auto).] 0. secs (0.u,0.s) Chars 6130 - 6131 [-] 0. secs (0.u,0.s) -Chars 6132 - 6160 [apply~trace_incl_sutt~in~H0.] 0. secs (0.u,0.s) +Chars 6132 - 6160 [(apply~trace_incl_sutt~in~H0).] 0. secs (0.u,0.s) Chars 6161 - 6169 [clear~H.] 0. secs (0.u,0.s) Chars 6174 - 6198 [generalize~dependent~t1.] 0. secs (0.u,0.s) Chars 6199 - 6223 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 6228 - 6246 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6247 - 6263 [intros~t1~t2~H0.] 0. secs (0.u,0.s) +Chars 6228 - 6246 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6247 - 6263 [(intros~t1~t2~H0).] 0. secs (0.u,0.s) Chars 6264 - 6275 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6280 - 6324 [induction~H0;~constructor;~eau...] 0.003 secs (0.003u,0.s) -Chars 6329 - 6353 [apply~(CIH~t0~(go~ot2)).] 0. secs (0.u,0.s) -Chars 6354 - 6367 [apply~EQTAUS.] 0. secs (0.u,0.s) -Chars 6368 - 6372 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6280 - 6324 [(induction~H0;~constructor;~ea...] 0.003 secs (0.003u,0.s) +Chars 6329 - 6353 [(apply~(CIH~t0~(go~ot2))).] 0. secs (0.u,0.s) +Chars 6354 - 6367 [(apply~EQTAUS).] 0. secs (0.u,0.s) +Chars 6368 - 6372 [Qed.] 0.005 secs (0.005u,0.s) Chars 6374 - 6469 [Theorem~trace_eq_iff_eutt~:~~~...] 0. secs (0.u,0.s) Chars 6470 - 6476 [Proof.] 0. secs (0.u,0.s) Chars 6479 - 6485 [split.] 0. secs (0.u,0.s) Chars 6488 - 6489 [-] 0. secs (0.u,0.s) -Chars 6490 - 6510 [apply~eutt_trace_eq.] 0. secs (0.u,0.s) +Chars 6490 - 6510 [(apply~eutt_trace_eq).] 0. secs (0.u,0.s) Chars 6513 - 6514 [-] 0. secs (0.u,0.s) -Chars 6515 - 6535 [apply~trace_eq_eutt.] 0. secs (0.u,0.s) +Chars 6515 - 6535 [(apply~trace_eq_eutt).] 0. secs (0.u,0.s) Chars 6536 - 6540 [Qed.] 0. secs (0.u,0.s) Chars 6542 - 6630 [Inductive~event~(E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 6725 - 7006 [Inductive~step_~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) @@ -219,5 +219,5 @@ Chars 7371 - 7500 [Theorem~simulates_trace_incl~{...] 0. secs (0.u,0.s) Chars 7501 - 7507 [Proof.] 0. secs (0.u,0.s) Chars 7508 - 7514 [Abort.] 0. secs (0.u,0.s) Chars 7542 - 7621 [Definition~traces~(E~:~Type~->...] 0. secs (0.u,0.s) -Chars 7623 - 7982 [Definition~bind_traces~{E~:~Ty...] 0. secs (0.u,0.s) +Chars 7623 - 7982 [Definition~bind_traces~{E~:~Ty...] 0.001 secs (0.001u,0.s) Chars 7984 - 8102 [Definition~ret_traces~{E~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Interp/TranslateFacts.v.timing b/theories/Interp/TranslateFacts.v.timing index 05e58e99..6541039a 100644 --- a/theories/Interp/TranslateFacts.v.timing +++ b/theories/Interp/TranslateFacts.v.timing @@ -1,6 +1,6 @@ -Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.003s) -Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.002 secs (0.002u,0.s) -Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.037 secs (0.03u,0.006s) +Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) +Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) +Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.049 secs (0.04u,0.008s) Chars 412 - 434 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 451 - 474 [Section~TranslateFacts.] 0. secs (0.u,0.s) Chars 477 - 506 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -8,164 +8,164 @@ Chars 509 - 528 [Context~{R~:~Type}.] 0. secs (0.u,0.s) Chars 531 - 552 [Context~(h~:~E~~>~F).] 0. secs (0.u,0.s) Chars 554 - 707 [Lemma~unfold_translate_~:~~~fo...] 0. secs (0.u,0.s) Chars 708 - 714 [Proof.] 0. secs (0.u,0.s) -Chars 717 - 726 [intros~t.] 0. secs (0.u,0.s) -Chars 727 - 740 [econstructor.] 0. secs (0.u,0.s) +Chars 717 - 726 [(intros~t).] 0. secs (0.u,0.s) +Chars 727 - 740 [econstructor.] 0.02 secs (0.018u,0.001s) Chars 741 - 753 [reflexivity.] 0. secs (0.u,0.s) -Chars 754 - 758 [Qed.] 0.014 secs (0.013u,0.001s) +Chars 754 - 758 [Qed.] 0. secs (0.u,0.s) Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0. secs (0.u,0.s) Chars 910 - 916 [Proof.] 0. secs (0.u,0.s) -Chars 919 - 926 [intros.] 0. secs (0.u,0.s) -Chars 927 - 953 [rewrite~unfold_translate_.] 0.001 secs (0.001u,0.s) +Chars 919 - 926 [(intros).] 0. secs (0.u,0.s) +Chars 927 - 953 [(rewrite~unfold_translate_).] 0.002 secs (0.002u,0.s) Chars 954 - 966 [reflexivity.] 0. secs (0.u,0.s) Chars 967 - 971 [Qed.] 0. secs (0.u,0.s) Chars 973 - 1039 [Lemma~translate_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 1040 - 1046 [Proof.] 0. secs (0.u,0.s) -Chars 1049 - 1058 [intros~r.] 0. secs (0.u,0.s) -Chars 1061 - 1086 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) -Chars 1087 - 1091 [cbn.] 0. secs (0.u,0.s) +Chars 1049 - 1058 [(intros~r).] 0. secs (0.u,0.s) +Chars 1061 - 1086 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) +Chars 1087 - 1091 [(cbn).] 0. secs (0.u,0.s) Chars 1092 - 1104 [reflexivity.] 0. secs (0.u,0.s) Chars 1105 - 1109 [Qed.] 0. secs (0.u,0.s) Chars 1111 - 1201 [Lemma~translate_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 1202 - 1208 [Proof.] 0. secs (0.u,0.s) -Chars 1211 - 1220 [intros~t.] 0. secs (0.u,0.s) -Chars 1223 - 1248 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) -Chars 1249 - 1253 [cbn.] 0. secs (0.u,0.s) +Chars 1211 - 1220 [(intros~t).] 0. secs (0.u,0.s) +Chars 1223 - 1248 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) +Chars 1249 - 1253 [(cbn).] 0. secs (0.u,0.s) Chars 1254 - 1266 [reflexivity.] 0. secs (0.u,0.s) Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) Chars 1273 - 1405 [Lemma~translate_vis~:~~~forall...] 0. secs (0.u,0.s) Chars 1406 - 1412 [Proof.] 0. secs (0.u,0.s) -Chars 1415 - 1428 [intros~X~e~k.] 0. secs (0.u,0.s) -Chars 1431 - 1456 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) -Chars 1457 - 1461 [cbn.] 0. secs (0.u,0.s) +Chars 1415 - 1428 [(intros~X~e~k).] 0. secs (0.u,0.s) +Chars 1431 - 1456 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) +Chars 1457 - 1461 [(cbn).] 0. secs (0.u,0.s) Chars 1462 - 1474 [reflexivity.] 0. secs (0.u,0.s) Chars 1475 - 1479 [Qed.] 0. secs (0.u,0.s) Chars 1481 - 1582 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 1583 - 1589 [Proof.] 0. secs (0.u,0.s) Chars 1592 - 1600 [intros~!.] 0. secs (0.u,0.s) Chars 1601 - 1614 [revert~x~y~H.] 0. secs (0.u,0.s) -Chars 1615 - 1634 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 1635 - 1642 [intros.] 0. secs (0.u,0.s) +Chars 1615 - 1634 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 1635 - 1642 [(intros).] 0. secs (0.u,0.s) Chars 1646 - 1653 [to_mon.] 0. secs (0.u,0.s) -Chars 1657 - 1683 [rewrite~!unfold_translate.] 0.047 secs (0.047u,0.s) +Chars 1657 - 1683 [(rewrite~!unfold_translate).] 0.063 secs (0.063u,0.s) Chars 1686 - 1696 [step~in~H.] 0. secs (0.u,0.s) -Chars 1699 - 1745 [induction~H;~simpobs;~simpl;~e...] 0.01 secs (0.009u,0.001s) -Chars 1748 - 1752 [Qed.] 0.006 secs (0.005u,0.001s) +Chars 1699 - 1745 [(induction~H;~simpobs;~simpl;~...] 0.016 secs (0.013u,0.003s) +Chars 1748 - 1752 [Qed.] 0.009 secs (0.007u,0.002s) Chars 1754 - 1887 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1908 [repeat~red.] 0. secs (0.u,0.s) -Chars 1909 - 1916 [intros.] 0. secs (0.u,0.s) -Chars 1919 - 1983 [rewrite~(itree_eta'~x),~(itree...] 0.007 secs (0.006u,0.001s) -Chars 1986 - 2004 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 1897 - 1908 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1909 - 1916 [(intros).] 0. secs (0.u,0.s) +Chars 1919 - 1983 [(rewrite~(itree_eta'~x),~(itre...] 0.011 secs (0.009u,0.001s) +Chars 1986 - 2004 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 2005 - 2009 [Qed.] 0.001 secs (0.001u,0.s) Chars 2011 - 2030 [End~TranslateFacts.] 0. secs (0.u,0.s) Chars 2032 - 2203 [Lemma~translate_bind~:~~~foral...] 0. secs (0.u,0.s) Chars 2204 - 2210 [Proof.] 0. secs (0.u,0.s) -Chars 2213 - 2234 [intros~E~F~R~S~h~t~k.] 0. secs (0.u,0.s) +Chars 2213 - 2234 [(intros~E~F~R~S~h~t~k).] 0. secs (0.u,0.s) Chars 2237 - 2250 [revert~S~t~k.] 0. secs (0.u,0.s) -Chars 2253 - 2272 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 2276 - 2289 [intros~s~t~k.] 0. secs (0.u,0.s) +Chars 2253 - 2272 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 2276 - 2289 [(intros~s~t~k).] 0. secs (0.u,0.s) Chars 2290 - 2297 [to_mon.] 0. secs (0.u,0.s) -Chars 2301 - 2393 [match~goal~with~|~|-~_~?t1~?t2...] 0.021 secs (0.021u,0.s) -Chars 2396 - 2416 [unfold~observe;~cbn.] 0. secs (0.u,0.s) -Chars 2419 - 2463 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) -Chars 2465 - 2469 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2301 - 2393 [(match~goal~with~~|~|-~_~?t1~?...] 0.029 secs (0.029u,0.s) +Chars 2396 - 2416 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) +Chars 2419 - 2463 [(destruct~(observe~t);~cbn;~ea...] 0.004 secs (0.004u,0.s) +Chars 2465 - 2469 [Qed.] 0.008 secs (0.008u,0.s) Chars 2471 - 2546 [Lemma~translate_id~:~forall~E~...] 0. secs (0.u,0.s) Chars 2547 - 2553 [Proof.] 0. secs (0.u,0.s) -Chars 2556 - 2569 [intros~E~R~t.] 0. secs (0.u,0.s) +Chars 2556 - 2569 [(intros~E~R~t).] 0. secs (0.u,0.s) Chars 2572 - 2581 [revert~t.] 0. secs (0.u,0.s) -Chars 2584 - 2602 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 2603 - 2610 [intros.] 0. secs (0.u,0.s) -Chars 2754 - 2776 [rewrite~(itree_eta~t).] 0.009 secs (0.009u,0.s) -Chars 2779 - 2804 [rewrite~unfold_translate.] 0.009 secs (0.009u,0.s) -Chars 2807 - 2825 [unfold~translateF.] 0. secs (0.u,0.s) -Chars 2828 - 2846 [rewrite~itree_eta.] 0.01 secs (0.01u,0.s) -Chars 2849 - 2899 [destruct~(observe~t);~cbn;~try...] 0.001 secs (0.001u,0.s) -Chars 2902 - 2906 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2584 - 2602 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 2603 - 2610 [(intros).] 0. secs (0.u,0.s) +Chars 2754 - 2776 [(rewrite~(itree_eta~t)).] 0.013 secs (0.013u,0.s) +Chars 2779 - 2804 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) +Chars 2807 - 2825 [(unfold~translateF).] 0. secs (0.u,0.s) +Chars 2828 - 2846 [(rewrite~itree_eta).] 0.014 secs (0.014u,0.s) +Chars 2849 - 2899 [(destruct~(observe~t);~cbn;~tr...] 0.001 secs (0.001u,0.s) +Chars 2902 - 2906 [Qed.] 0.005 secs (0.005u,0.s) Chars 2908 - 2928 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0. secs (0.u,0.s) +Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0.001 secs (0.001u,0.s) Chars 3074 - 3080 [Proof.] 0. secs (0.u,0.s) -Chars 3083 - 3104 [intros~E~F~G~R~g~f~t.] 0. secs (0.u,0.s) +Chars 3083 - 3104 [(intros~E~F~G~R~g~f~t).] 0. secs (0.u,0.s) Chars 3107 - 3116 [revert~t.] 0. secs (0.u,0.s) -Chars 3119 - 3137 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3138 - 3145 [intros.] 0. secs (0.u,0.s) -Chars 3149 - 3175 [rewrite~!unfold_translate.] 0.065 secs (0.064u,0.s) -Chars 3178 - 3196 [genobs_clear~t~ot.] 0. secs (0.u,0.s) -Chars 3197 - 3238 [destruct~ot;~cbn;~try~construc...] 0.001 secs (0.001u,0.s) -Chars 3240 - 3244 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3119 - 3137 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3138 - 3145 [(intros).] 0. secs (0.u,0.s) +Chars 3149 - 3175 [(rewrite~!unfold_translate).] 0.091 secs (0.091u,0.s) +Chars 3178 - 3196 [(genobs_clear~t~ot).] 0.001 secs (0.001u,0.s) +Chars 3197 - 3238 [(destruct~ot;~cbn;~try~constru...] 0.001 secs (0.001u,0.s) +Chars 3240 - 3244 [Qed.] 0.006 secs (0.006u,0.s) Chars 3246 - 3419 [Definition~respectful_eq_itree...] 0. secs (0.u,0.s) Chars 3421 - 3582 [Definition~respectful_eutt~{E~...] 0. secs (0.u,0.s) -Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.003 secs (0.002u,0.s) +Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.004 secs (0.003u,0.s) Chars 3784 - 3967 [#[global]~Instance~eq_itree_ap...] 0. secs (0.u,0.s) Chars 3968 - 3974 [Proof.] 0. secs (0.u,0.s) -Chars 3977 - 3988 [repeat~red.] 0. secs (0.u,0.s) -Chars 3989 - 3996 [intros.] 0. secs (0.u,0.s) -Chars 3997 - 4013 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 3977 - 3988 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3989 - 3996 [(intros).] 0. secs (0.u,0.s) +Chars 3997 - 4013 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 4014 - 4020 [eauto.] 0. secs (0.u,0.s) -Chars 4021 - 4025 [Qed.] 0. secs (0.u,0.s) +Chars 4021 - 4025 [Qed.] 0.001 secs (0.001u,0.s) Chars 4027 - 4194 [#[global]~Instance~eutt_apply_...] 0. secs (0.u,0.s) Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) -Chars 4204 - 4215 [repeat~red.] 0. secs (0.u,0.s) -Chars 4216 - 4223 [intros.] 0. secs (0.u,0.s) -Chars 4224 - 4240 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 4204 - 4215 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4216 - 4223 [(intros).] 0. secs (0.u,0.s) +Chars 4224 - 4240 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 4241 - 4247 [eauto.] 0. secs (0.u,0.s) -Chars 4248 - 4252 [Qed.] 0. secs (0.u,0.s) +Chars 4248 - 4252 [Qed.] 0.001 secs (0.001u,0.s) Chars 4254 - 4409 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 4410 - 4416 [Proof.] 0. secs (0.u,0.s) -Chars 4419 - 4436 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) -Chars 4439 - 4457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4458 - 4465 [intros.] 0. secs (0.u,0.s) -Chars 4469 - 4496 [rewrite~2!unfold_translate.] 0.023 secs (0.023u,0.s) +Chars 4419 - 4436 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) +Chars 4439 - 4457 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 4458 - 4465 [(intros).] 0. secs (0.u,0.s) +Chars 4469 - 4496 [(rewrite~2!unfold_translate).] 0.033 secs (0.033u,0.s) Chars 4499 - 4509 [step~in~H.] 0. secs (0.u,0.s) -Chars 4513 - 4574 [destruct~H;~cbn;~try~easy;~try...] 0.051 secs (0.051u,0.s) -Chars 4576 - 4580 [Qed.] 0.006 secs (0.005u,0.s) +Chars 4513 - 4574 [(destruct~H;~cbn;~try~easy;~tr...] 0.073 secs (0.073u,0.s) +Chars 4576 - 4580 [Qed.] 0.009 secs (0.008u,0.s) Chars 4582 - 4729 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) Chars 4730 - 4736 [Proof.] 0. secs (0.u,0.s) -Chars 4739 - 4750 [repeat~red.] 0. secs (0.u,0.s) +Chars 4739 - 4750 [(repeat~red).] 0. secs (0.u,0.s) Chars 4753 - 4768 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4771 - 4789 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4790 - 4797 [intros.] 0. secs (0.u,0.s) -Chars 4800 - 4826 [rewrite~!unfold_translate.] 0.021 secs (0.021u,0.s) +Chars 4771 - 4789 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 4790 - 4797 [(intros).] 0. secs (0.u,0.s) +Chars 4800 - 4826 [(rewrite~!unfold_translate).] 0.03 secs (0.03u,0.s) Chars 4827 - 4838 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4842 - 4887 [induction~H0;~subst;~simpl;~ea...] 0.006 secs (0.006u,0.s) +Chars 4842 - 4887 [(induction~H0;~subst;~simpl;~e...] 0.009 secs (0.009u,0.s) Chars 4891 - 4892 [-] 0. secs (0.u,0.s) -Chars 4893 - 4903 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 4893 - 4903 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 4904 - 4917 [econstructor.] 0. secs (0.u,0.s) Chars 4918 - 4935 [eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 4936 - 4940 [Qed.] 0.006 secs (0.005u,0.s) +Chars 4936 - 4940 [Qed.] 0.008 secs (0.008u,0.s) Chars 4942 - 5085 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) Chars 5086 - 5092 [Proof.] 0. secs (0.u,0.s) -Chars 5095 - 5106 [repeat~red.] 0. secs (0.u,0.s) -Chars 5109 - 5130 [apply~eutt_translate.] 0. secs (0.u,0.s) +Chars 5095 - 5106 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5109 - 5130 [(apply~eutt_translate).] 0. secs (0.u,0.s) Chars 5133 - 5145 [reflexivity.] 0. secs (0.u,0.s) Chars 5146 - 5150 [Qed.] 0. secs (0.u,0.s) Chars 5152 - 5341 [Lemma~eutt_translate_gen~:~~~f...] 0. secs (0.u,0.s) Chars 5342 - 5348 [Proof.] 0. secs (0.u,0.s) -Chars 5351 - 5360 [intros~*.] 0. secs (0.u,0.s) +Chars 5351 - 5360 [(intros~*).] 0. secs (0.u,0.s) Chars 5363 - 5374 [revert~t~s.] 0. secs (0.u,0.s) -Chars 5377 - 5395 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 5396 - 5403 [intros.] 0. secs (0.u,0.s) -Chars 5407 - 5433 [rewrite~!unfold_translate.] 0.023 secs (0.022u,0.s) +Chars 5377 - 5395 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 5396 - 5403 [(intros).] 0. secs (0.u,0.s) +Chars 5407 - 5433 [(rewrite~!unfold_translate).] 0.032 secs (0.032u,0.s) Chars 5434 - 5444 [step~in~H.] 0. secs (0.u,0.s) -Chars 5448 - 5500 [induction~H;~intros;~subst;~si...] 0.004 secs (0.004u,0.s) -Chars 5502 - 5506 [Qed.] 0.005 secs (0.005u,0.s) -Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0. secs (0.u,0.s) +Chars 5448 - 5500 [(induction~H;~intros;~subst;~s...] 0.005 secs (0.005u,0.s) +Chars 5502 - 5506 [Qed.] 0.007 secs (0.007u,0.s) +Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 5648 - 5654 [Proof.] 0. secs (0.u,0.s) -Chars 5657 - 5746 [intros;~unfold~trigger;~rewrit...] 0.003 secs (0.003u,0.s) -Chars 5747 - 5751 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0. secs (0.u,0.s) +Chars 5657 - 5746 [(intros;~unfold~trigger;~rewri...] 0.005 secs (0.005u,0.s) +Chars 5747 - 5751 [Qed.] 0.002 secs (0.002u,0.s) +Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0.002 secs (0.002u,0.s) Chars 5984 - 5990 [Proof.] 0. secs (0.u,0.s) -Chars 5993 - 6000 [intros.] 0. secs (0.u,0.s) -Chars 6001 - 6028 [rewrite~(itree_eta~t)~in~H.] 0.01 secs (0.01u,0.s) -Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.003 secs (0.003u,0.s) -Chars 6061 - 6126 [desobs~t~Ht;~clear~t~Ht;~rewri...] 0.031 secs (0.03u,0.s) +Chars 5993 - 6000 [(intros).] 0. secs (0.u,0.s) +Chars 6001 - 6028 [(rewrite~(itree_eta~t)~in~H).] 0.013 secs (0.012u,0.s) +Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.004 secs (0.004u,0.s) +Chars 6061 - 6126 [(desobs~t~Ht;~clear~t~Ht;~rewr...] 0.042 secs (0.041u,0.s) Chars 6129 - 6130 [-] 0. secs (0.u,0.s) -Chars 6131 - 6147 [step~in~H;~easy.] 0.001 secs (0.001u,0.s) +Chars 6131 - 6147 [(step~in~H;~easy).] 0.002 secs (0.002u,0.s) Chars 6151 - 6152 [-] 0. secs (0.u,0.s) -Chars 6153 - 6166 [sinv~H;~easy.] 0.005 secs (0.005u,0.s) +Chars 6153 - 6166 [(sinv~H;~easy).] 0.007 secs (0.007u,0.s) Chars 6171 - 6172 [-] 0. secs (0.u,0.s) -Chars 6173 - 6211 [apply~eqitree_inv_Vis_r~in~H;~...] 0. secs (0.u,0.s) -Chars 6217 - 6226 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 6173 - 6211 [(apply~eqitree_inv_Vis_r~in~H;...] 0. secs (0.u,0.s) +Chars 6217 - 6226 [(cbn~in~H).] 0. secs (0.u,0.s) Chars 6227 - 6235 [inv_Vis.] 0.001 secs (0.001u,0.s) Chars 6241 - 6253 [exists~e,k.] 0. secs (0.u,0.s) -Chars 6254 - 6271 [repeat~now~split.] 0.001 secs (0.001u,0.s) -Chars 6273 - 6277 [Qed.] 0.008 secs (0.008u,0.s) +Chars 6254 - 6271 [(repeat~now~split).] 0.002 secs (0.002u,0.s) +Chars 6273 - 6277 [Qed.] 0.011 secs (0.011u,0.s) diff --git a/theories/Props/Cofinite.v.timing b/theories/Props/Cofinite.v.timing index 4b4b7f76..c0f673cf 100644 --- a/theories/Props/Cofinite.v.timing +++ b/theories/Props/Cofinite.v.timing @@ -1,20 +1,20 @@ -Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.169 secs (0.149u,0.019s) -Chars 133 - 169 [From~Coinduction~Require~Impor...] 0. secs (0.u,0.s) +Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.225 secs (0.198u,0.027s) +Chars 133 - 169 [From~Coinduction~Require~Impor...] 0.001 secs (0.001u,0.s) Chars 171 - 273 [Theorem~not_all_infinite_any_f...] 0. secs (0.u,0.s) Chars 274 - 280 [Proof.] 0. secs (0.u,0.s) -Chars 283 - 296 [intros~H1~H2.] 0. secs (0.u,0.s) -Chars 297 - 449 [induction~H2;~apply~(gfp_fp~al...] 0.005 secs (0.004u,0.s) -Chars 452 - 500 [all:~rewrite~H~in~H0;~inversio...] 0.002 secs (0.001u,0.s) -Chars 503 - 516 [ddestruction.] 0.027 secs (0.025u,0.001s) +Chars 283 - 296 [(intros~H1~H2).] 0. secs (0.u,0.s) +Chars 297 - 449 [(induction~H2;~apply~(gfp_fp~a...] 0.007 secs (0.005u,0.001s) +Chars 452 - 500 [all:~(rewrite~H~in~H0;~inversi...] 0.002 secs (0.002u,0.s) +Chars 503 - 516 [ddestruction.] 0.003 secs (0.002u,0.s) Chars 517 - 545 [exact~(IHany_finite~(H3~_)).] 0. secs (0.u,0.s) -Chars 546 - 550 [Qed.] 0.004 secs (0.004u,0.s) +Chars 546 - 550 [Qed.] 0.039 secs (0.036u,0.002s) Chars 552 - 654 [Theorem~not_any_infinite_all_f...] 0. secs (0.u,0.s) Chars 655 - 661 [Proof.] 0. secs (0.u,0.s) -Chars 664 - 830 [intros~H1~H2;~induction~H2;~ap...] 0.003 secs (0.003u,0.s) +Chars 664 - 830 [(intros~H1~H2;~induction~H2;~a...] 0.004 secs (0.004u,0.s) Chars 833 - 834 [-] 0. secs (0.u,0.s) -Chars 835 - 878 [rewrite~H~in~H0;~inversion~H0;...] 0. secs (0.u,0.s) +Chars 835 - 878 [(rewrite~H~in~H0;~inversion~H0...] 0. secs (0.u,0.s) Chars 881 - 882 [-] 0. secs (0.u,0.s) -Chars 883 - 899 [rewrite~H~in~H3.] 0. secs (0.u,0.s) -Chars 900 - 934 [inversion~H3;~subst;~ddestruct...] 0.002 secs (0.002u,0.s) +Chars 883 - 899 [(rewrite~H~in~H3).] 0. secs (0.u,0.s) +Chars 900 - 934 [(inversion~H3;~subst;~ddestruc...] 0.002 secs (0.002u,0.s) Chars 939 - 955 [exact~(H2~_~H4).] 0. secs (0.u,0.s) -Chars 956 - 960 [Qed.] 0.004 secs (0.004u,0.s) +Chars 956 - 960 [Qed.] 0.005 secs (0.005u,0.s) diff --git a/theories/Props/EuttNoRet.v.timing b/theories/Props/EuttNoRet.v.timing index 5d4d8558..6e1959b8 100644 --- a/theories/Props/EuttNoRet.v.timing +++ b/theories/Props/EuttNoRet.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.001u,0.002s) -Chars 45 - 147 [From~ITree~Require~Import~Axio...] 0.173 secs (0.15u,0.021s) -Chars 149 - 185 [From~Coinduction~Require~Impor...] 0. secs (0.u,0.s) +Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 45 - 147 [From~ITree~Require~Import~Axio...] 0.225 secs (0.199u,0.025s) +Chars 149 - 185 [From~Coinduction~Require~Impor...] 0.001 secs (0.u,0.s) Chars 187 - 201 [Import~Monads.] 0. secs (0.u,0.s) Chars 202 - 223 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 224 - 256 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -8,262 +8,262 @@ Chars 258 - 281 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 559 - 667 [Definition~euttNoRet~{E}~{A~B~...] 0. secs (0.u,0.s) Chars 670 - 772 [Lemma~euttNoRet_spin~:~~~foral...] 0. secs (0.u,0.s) Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 789 [intros.] 0. secs (0.u,0.s) -Chars 790 - 807 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 808 - 827 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 828 - 832 [cbn.] 0. secs (0.u,0.s) +Chars 782 - 789 [(intros).] 0. secs (0.u,0.s) +Chars 790 - 807 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 808 - 827 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.001s) +Chars 828 - 832 [(cbn).] 0. secs (0.u,0.s) Chars 833 - 845 [constructor.] 0. secs (0.u,0.s) Chars 846 - 856 [exact~CIH.] 0. secs (0.u,0.s) -Chars 857 - 861 [Qed.] 0.003 secs (0.002u,0.s) +Chars 857 - 861 [Qed.] 0.004 secs (0.003u,0.001s) Chars 863 - 1007 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) Chars 1008 - 1014 [Proof.] 0. secs (0.u,0.s) -Chars 1017 - 1030 [intros~E~A~B.] 0. secs (0.u,0.s) -Chars 1031 - 1048 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 1049 - 1068 [icoinduction~c~CIH.] 0.026 secs (0.024u,0.002s) -Chars 1069 - 1085 [intros~t~f~Hdiv.] 0. secs (0.u,0.s) -Chars 1088 - 1128 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 1131 - 1166 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 1167 - 1196 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) -Chars 1199 - 1221 [inversion~Hdiv;~subst.] 0.001 secs (0.001u,0.s) +Chars 1017 - 1030 [(intros~E~A~B).] 0. secs (0.u,0.s) +Chars 1031 - 1048 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 1049 - 1068 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) +Chars 1069 - 1085 [(intros~t~f~Hdiv).] 0. secs (0.u,0.s) +Chars 1088 - 1128 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 1131 - 1166 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 1167 - 1196 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) +Chars 1199 - 1221 [(inversion~Hdiv;~subst).] 0.031 secs (0.029u,0.002s) Chars 1224 - 1225 [-] 0. secs (0.u,0.s) -Chars 1226 - 1251 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 1256 - 1277 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 1278 - 1291 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 1292 - 1296 [cbn.] 0. secs (0.u,0.s) -Chars 1297 - 1309 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 1314 - 1363 [change~(ITree.subst~f~t0)~with...] 0. secs (0.u,0.s) -Chars 1368 - 1378 [apply~CIH.] 0. secs (0.u,0.s) +Chars 1226 - 1251 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 1256 - 1277 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 1278 - 1291 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 1292 - 1296 [(cbn).] 0. secs (0.u,0.s) +Chars 1297 - 1309 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 1314 - 1363 [(change~(ITree.subst~f~t0)~wit...] 0. secs (0.u,0.s) +Chars 1368 - 1378 [(apply~CIH).] 0. secs (0.u,0.s) Chars 1379 - 1384 [auto.] 0. secs (0.u,0.s) Chars 1387 - 1388 [-] 0. secs (0.u,0.s) -Chars 1389 - 1414 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 1419 - 1440 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 1441 - 1454 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 1455 - 1459 [cbn.] 0. secs (0.u,0.s) -Chars 1460 - 1472 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 1477 - 1486 [intros~v.] 0. secs (0.u,0.s) -Chars 1487 - 1542 [change~(ITree.subst~f~(k~v))~w...] 0. secs (0.u,0.s) -Chars 1547 - 1557 [apply~CIH.] 0. secs (0.u,0.s) -Chars 1558 - 1567 [apply~H0.] 0. secs (0.u,0.s) -Chars 1568 - 1572 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1389 - 1414 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 1419 - 1440 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 1441 - 1454 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 1455 - 1459 [(cbn).] 0. secs (0.u,0.s) +Chars 1460 - 1472 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 1477 - 1486 [(intros~v).] 0. secs (0.u,0.s) +Chars 1487 - 1542 [(change~(ITree.subst~f~(k~v))~...] 0. secs (0.u,0.s) +Chars 1547 - 1557 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 1558 - 1567 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1568 - 1572 [Qed.] 0.007 secs (0.007u,0.s) Chars 1577 - 1766 [Lemma~euttNoRet_subrel~:~~~for...] 0. secs (0.u,0.s) Chars 1767 - 1773 [Proof.] 0. secs (0.u,0.s) -Chars 1776 - 1783 [intros.] 0. secs (0.u,0.s) -Chars 1786 - 1904 [eapply~eqit_mono~with~(b1~:=~t...] 0.001 secs (0.001u,0.s) +Chars 1776 - 1783 [(intros).] 0. secs (0.u,0.s) +Chars 1786 - 1904 [(eapply~eqit_mono~with~(b1~:=~...] 0.002 secs (0.002u,0.s) Chars 1905 - 1909 [Qed.] 0.001 secs (0.001u,0.s) Chars 1911 - 2121 [Lemma~all_infinite_euttNoRet~:...] 0. secs (0.u,0.s) Chars 2122 - 2128 [Proof.] 0. secs (0.u,0.s) -Chars 2131 - 2146 [intros~E~A~B~R.] 0. secs (0.u,0.s) -Chars 2147 - 2164 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 2165 - 2184 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 2185 - 2209 [intros~ta~tb~Hdiv~Heutt.] 0. secs (0.u,0.s) +Chars 2131 - 2146 [(intros~E~A~B~R).] 0. secs (0.u,0.s) +Chars 2147 - 2164 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 2165 - 2184 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 2185 - 2209 [(intros~ta~tb~Hdiv~Heutt).] 0. secs (0.u,0.s) Chars 2212 - 2226 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 2227 - 2255 [cbn[eqit_mon~body]~in~Heutt.] 0. secs (0.u,0.s) -Chars 2256 - 2278 [unfold~eqit_~in~Heutt.] 0. secs (0.u,0.s) -Chars 2281 - 2300 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) -Chars 2301 - 2314 [unfold~eqit_.] 0. secs (0.u,0.s) -Chars 2317 - 2357 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 2360 - 2395 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 2396 - 2425 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2428 - 2454 [dependent~induction~Heutt.] 0.049 secs (0.048u,0.s) +Chars 2227 - 2255 [(cbn[eqit_mon~body]~in~Heutt).] 0. secs (0.u,0.s) +Chars 2256 - 2278 [(unfold~eqit_~in~Heutt).] 0. secs (0.u,0.s) +Chars 2281 - 2300 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) +Chars 2301 - 2314 [(unfold~eqit_).] 0. secs (0.u,0.s) +Chars 2317 - 2357 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 2360 - 2395 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2396 - 2425 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2428 - 2454 [dependent~induction~Heutt.] 0.059 secs (0.059u,0.s) Chars 2457 - 2458 [-] 0. secs (0.u,0.s) Chars 2459 - 2467 [exfalso.] 0. secs (0.u,0.s) -Chars 2468 - 2490 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2491 - 2506 [inversion~Hdiv.] 0. secs (0.u,0.s) +Chars 2468 - 2490 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2491 - 2506 [(inversion~Hdiv).] 0. secs (0.u,0.s) Chars 2509 - 2510 [-] 0. secs (0.u,0.s) -Chars 2511 - 2525 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 2526 - 2539 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 2540 - 2552 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 2553 - 2563 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2511 - 2525 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 2526 - 2539 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 2540 - 2552 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 2553 - 2563 [(apply~CIH).] 0. secs (0.u,0.s) Chars 2568 - 2569 [+] 0. secs (0.u,0.s) -Chars 2570 - 2592 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2593 - 2615 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) +Chars 2570 - 2592 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2593 - 2615 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) Chars 2616 - 2621 [auto.] 0. secs (0.u,0.s) Chars 2626 - 2627 [+] 0. secs (0.u,0.s) Chars 2628 - 2633 [auto.] 0. secs (0.u,0.s) Chars 2636 - 2637 [-] 0. secs (0.u,0.s) -Chars 2638 - 2652 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 2653 - 2666 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 2667 - 2679 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 2680 - 2689 [intros~v.] 0. secs (0.u,0.s) -Chars 2690 - 2700 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2638 - 2652 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 2653 - 2666 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 2667 - 2679 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 2680 - 2689 [(intros~v).] 0. secs (0.u,0.s) +Chars 2690 - 2700 [(apply~CIH).] 0. secs (0.u,0.s) Chars 2705 - 2706 [+] 0. secs (0.u,0.s) -Chars 2707 - 2729 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2730 - 2752 [inversion~Hdiv;~subst.] 0.002 secs (0.002u,0.s) -Chars 2753 - 2766 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 2767 - 2776 [apply~H0.] 0. secs (0.u,0.s) +Chars 2707 - 2729 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2730 - 2752 [(inversion~Hdiv;~subst).] 0.001 secs (0.001u,0.s) +Chars 2753 - 2766 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 2767 - 2776 [(apply~H0).] 0. secs (0.u,0.s) Chars 2781 - 2782 [+] 0. secs (0.u,0.s) -Chars 2783 - 2793 [apply~REL.] 0. secs (0.u,0.s) +Chars 2783 - 2793 [(apply~REL).] 0. secs (0.u,0.s) Chars 2796 - 2797 [-] 0. secs (0.u,0.s) -Chars 2798 - 2811 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 2812 - 2831 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 2832 - 2852 [apply~IHHeutt;~auto.] 0. secs (0.u,0.s) -Chars 2857 - 2878 [rewrite~<-~x~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2879 - 2901 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) -Chars 2906 - 2944 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 2949 - 2982 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 2983 - 3010 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 2798 - 2811 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 2812 - 2831 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 2832 - 2852 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 2857 - 2878 [(rewrite~<-~x~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2879 - 2901 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) +Chars 2906 - 2944 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 2949 - 2982 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2983 - 3010 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 3011 - 3020 [exact~H0.] 0. secs (0.u,0.s) Chars 3023 - 3024 [-] 0. secs (0.u,0.s) -Chars 3025 - 3038 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 3039 - 3058 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 3059 - 3063 [Qed.] 0.024 secs (0.024u,0.s) +Chars 3025 - 3038 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 3039 - 3058 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 3059 - 3063 [Qed.] 0.032 secs (0.032u,0.s) Chars 3070 - 3214 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) Chars 3215 - 3221 [Proof.] 0. secs (0.u,0.s) -Chars 3224 - 3237 [intros~E~A~B.] 0. secs (0.u,0.s) -Chars 3238 - 3258 [unfold~all_infinite.] 0. secs (0.u,0.s) +Chars 3224 - 3237 [(intros~E~A~B).] 0. secs (0.u,0.s) +Chars 3238 - 3258 [(unfold~all_infinite).] 0. secs (0.u,0.s) Chars 3259 - 3277 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3278 - 3293 [intros~t1~t2~H.] 0. secs (0.u,0.s) -Chars 3296 - 3323 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 3324 - 3345 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 3348 - 3370 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) +Chars 3278 - 3293 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 3296 - 3323 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 3324 - 3345 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 3348 - 3370 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) Chars 3371 - 3381 [step~in~H.] 0. secs (0.u,0.s) -Chars 3382 - 3406 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) -Chars 3407 - 3425 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) -Chars 3428 - 3469 [dependent~induction~H;~try~con...] 0.013 secs (0.013u,0.s) +Chars 3382 - 3406 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) +Chars 3407 - 3425 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) +Chars 3428 - 3469 [(dependent~induction~H;~try~co...] 0.018 secs (0.018u,0.s) Chars 3472 - 3473 [-] 0. secs (0.u,0.s) -Chars 3474 - 3488 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 3474 - 3488 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 3489 - 3501 [constructor.] 0. secs (0.u,0.s) -Chars 3502 - 3528 [apply~CIH~with~(t2~:=~m2).] 0. secs (0.u,0.s) -Chars 3529 - 3546 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3502 - 3528 [(apply~CIH~with~(t2~:=~m2)).] 0. secs (0.u,0.s) +Chars 3529 - 3546 [(unfold~euttNoRet).] 0. secs (0.u,0.s) Chars 3547 - 3552 [auto.] 0. secs (0.u,0.s) Chars 3555 - 3556 [-] 0. secs (0.u,0.s) -Chars 3557 - 3571 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 3557 - 3571 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 3572 - 3584 [constructor.] 0. secs (0.u,0.s) -Chars 3585 - 3594 [intros~v.] 0. secs (0.u,0.s) -Chars 3595 - 3623 [apply~CIH~with~(t2~:=~k2~v).] 0. secs (0.u,0.s) -Chars 3628 - 3645 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 3646 - 3656 [apply~REL.] 0. secs (0.u,0.s) +Chars 3585 - 3594 [(intros~v).] 0. secs (0.u,0.s) +Chars 3595 - 3623 [(apply~CIH~with~(t2~:=~k2~v)).] 0. secs (0.u,0.s) +Chars 3628 - 3645 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3646 - 3656 [(apply~REL).] 0. secs (0.u,0.s) Chars 3659 - 3660 [-] 0. secs (0.u,0.s) -Chars 3661 - 3674 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3661 - 3674 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3675 - 3687 [constructor.] 0. secs (0.u,0.s) -Chars 3688 - 3714 [apply~CIH~with~(t2~:=~t2).] 0. secs (0.u,0.s) -Chars 3715 - 3732 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3688 - 3714 [(apply~CIH~with~(t2~:=~t2)).] 0. secs (0.u,0.s) +Chars 3715 - 3732 [(unfold~euttNoRet).] 0. secs (0.u,0.s) Chars 3737 - 3742 [step.] 0.001 secs (0.001u,0.s) -Chars 3743 - 3762 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) -Chars 3763 - 3776 [unfold~eqit_.] 0. secs (0.u,0.s) +Chars 3743 - 3762 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) +Chars 3763 - 3776 [(unfold~eqit_).] 0. secs (0.u,0.s) Chars 3777 - 3782 [auto.] 0. secs (0.u,0.s) Chars 3785 - 3786 [-] 0. secs (0.u,0.s) -Chars 3787 - 3809 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 3810 - 3814 [Qed.] 0.009 secs (0.009u,0.s) +Chars 3787 - 3809 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 3810 - 3814 [Qed.] 0.011 secs (0.011u,0.s) Chars 3817 - 3952 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) Chars 3953 - 3959 [Proof.] 0. secs (0.u,0.s) -Chars 3962 - 3975 [intros~E~A~B.] 0. secs (0.u,0.s) -Chars 3976 - 3993 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 3994 - 4013 [icoinduction~c~CIH.] 0.004 secs (0.004u,0.s) -Chars 4014 - 4029 [intros~t1~t2~H.] 0. secs (0.u,0.s) -Chars 4032 - 4054 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) +Chars 3962 - 3975 [(intros~E~A~B).] 0. secs (0.u,0.s) +Chars 3976 - 3993 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3994 - 4013 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 4014 - 4029 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 4032 - 4054 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) Chars 4055 - 4065 [step~in~H.] 0. secs (0.u,0.s) -Chars 4066 - 4090 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) -Chars 4091 - 4109 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) -Chars 4112 - 4153 [dependent~induction~H;~try~con...] 0.019 secs (0.018u,0.s) +Chars 4066 - 4090 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) +Chars 4091 - 4109 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) +Chars 4112 - 4153 [(dependent~induction~H;~try~co...] 0.028 secs (0.028u,0.s) Chars 4156 - 4157 [-] 0. secs (0.u,0.s) -Chars 4158 - 4172 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 4173 - 4186 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4187 - 4199 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 4200 - 4210 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4158 - 4172 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 4173 - 4186 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4187 - 4199 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 4200 - 4210 [(apply~CIH).] 0. secs (0.u,0.s) Chars 4211 - 4216 [auto.] 0. secs (0.u,0.s) Chars 4219 - 4220 [-] 0. secs (0.u,0.s) -Chars 4221 - 4235 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 4236 - 4249 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4250 - 4262 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 4263 - 4272 [intros~v.] 0. secs (0.u,0.s) -Chars 4273 - 4283 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4284 - 4294 [apply~REL.] 0. secs (0.u,0.s) +Chars 4221 - 4235 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 4236 - 4249 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4250 - 4262 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 4263 - 4272 [(intros~v).] 0. secs (0.u,0.s) +Chars 4273 - 4283 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4284 - 4294 [(apply~REL).] 0. secs (0.u,0.s) Chars 4297 - 4298 [-] 0. secs (0.u,0.s) -Chars 4299 - 4312 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4313 - 4332 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 4299 - 4312 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4313 - 4332 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) Chars 4335 - 4336 [-] 0. secs (0.u,0.s) -Chars 4337 - 4350 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4351 - 4370 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 4371 - 4375 [Qed.] 0.023 secs (0.023u,0.s) +Chars 4337 - 4350 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4351 - 4370 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 4371 - 4375 [Qed.] 0.03 secs (0.03u,0.s) Chars 4377 - 4559 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 4560 - 4566 [Proof.] 0. secs (0.u,0.s) -Chars 4569 - 4576 [intros.] 0. secs (0.u,0.s) -Chars 4577 - 4626 [apply~noret_bind_nop~with~(B~:...] 0. secs (0.u,0.s) -Chars 4629 - 4654 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 4655 - 4689 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 4569 - 4576 [(intros).] 0. secs (0.u,0.s) +Chars 4577 - 4626 [(apply~noret_bind_nop~with~(B~...] 0. secs (0.u,0.s) +Chars 4629 - 4654 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 4655 - 4689 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) Chars 4690 - 4695 [auto.] 0. secs (0.u,0.s) Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) Chars 4707 - 4913 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) Chars 4914 - 4920 [Proof.] 0. secs (0.u,0.s) -Chars 4923 - 4930 [intros.] 0. secs (0.u,0.s) -Chars 4931 - 4953 [unfold~euttNoRet~in~*.] 0. secs (0.u,0.s) -Chars 4956 - 5083 [eapply~eqit_mono~with~(b1~:=~t...] 0.002 secs (0.002u,0.s) +Chars 4923 - 4930 [(intros).] 0. secs (0.u,0.s) +Chars 4931 - 4953 [(unfold~euttNoRet~in~*).] 0. secs (0.u,0.s) +Chars 4956 - 5083 [(eapply~eqit_mono~with~(b1~:=~...] 0.003 secs (0.003u,0.s) Chars 5086 - 5087 [-] 0. secs (0.u,0.s) -Chars 5088 - 5102 [intros~x~y~Hc.] 0. secs (0.u,0.s) -Chars 5103 - 5131 [inversion~Hc;~contradiction.] 0. secs (0.u,0.s) +Chars 5088 - 5102 [(intros~x~y~Hc).] 0. secs (0.u,0.s) +Chars 5103 - 5131 [(inversion~Hc;~contradiction).] 0. secs (0.u,0.s) Chars 5134 - 5135 [-] 0. secs (0.u,0.s) -Chars 5136 - 5161 [eapply~eqit_trans;~eauto.] 0. secs (0.u,0.s) +Chars 5136 - 5161 [(eapply~eqit_trans;~eauto).] 0.001 secs (0.001u,0.s) Chars 5162 - 5166 [Qed.] 0.001 secs (0.001u,0.s) Chars 5169 - 5288 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 5289 - 5295 [Proof.] 0. secs (0.u,0.s) -Chars 5298 - 5327 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) -Chars 5328 - 5342 [split;~intros.] 0. secs (0.u,0.s) +Chars 5298 - 5327 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) +Chars 5328 - 5342 [(split;~intros).] 0. secs (0.u,0.s) Chars 5345 - 5346 [-] 0. secs (0.u,0.s) -Chars 5347 - 5388 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5389 - 5414 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 5420 - 5461 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5466 - 5504 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 5347 - 5388 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5389 - 5414 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 5420 - 5461 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5466 - 5504 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) Chars 5509 - 5510 [+] 0. secs (0.u,0.s) -Chars 5511 - 5549 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 5511 - 5549 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) Chars 5556 - 5557 [*] 0. secs (0.u,0.s) -Chars 5558 - 5578 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 5579 - 5616 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) +Chars 5558 - 5578 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 5579 - 5616 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) Chars 5623 - 5624 [*] 0. secs (0.u,0.s) -Chars 5625 - 5645 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 5625 - 5645 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) Chars 5646 - 5651 [auto.] 0. secs (0.u,0.s) Chars 5656 - 5657 [+] 0. secs (0.u,0.s) -Chars 5658 - 5695 [eapply~all_infinite_euttNoRet;...] 0.002 secs (0.001u,0.s) +Chars 5658 - 5695 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) Chars 5698 - 5699 [-] 0. secs (0.u,0.s) -Chars 5700 - 5741 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5747 - 5772 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 5773 - 5814 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5819 - 5844 [assert~(euttNoRet~t1~t2).] 0. secs (0.u,0.s) +Chars 5700 - 5741 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5747 - 5772 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 5773 - 5814 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5819 - 5844 [(assert~(euttNoRet~t1~t2)).] 0. secs (0.u,0.s) Chars 5849 - 5850 [{] 0. secs (0.u,0.s) -Chars 5858 - 5878 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 5879 - 5903 [apply~eutt_flip~in~Ht12.] 0. secs (0.u,0.s) -Chars 5911 - 5948 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) +Chars 5858 - 5878 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 5879 - 5903 [(apply~eutt_flip~in~Ht12).] 0. secs (0.u,0.s) +Chars 5911 - 5948 [(eapply~all_infinite_euttNoRet...] 0.003 secs (0.003u,0.s) Chars 5953 - 5954 [}] 0. secs (0.u,0.s) -Chars 5959 - 5984 [assert~(euttNoRet~t3~t4).] 0. secs (0.u,0.s) +Chars 5959 - 5984 [(assert~(euttNoRet~t3~t4)).] 0. secs (0.u,0.s) Chars 5989 - 5990 [{] 0. secs (0.u,0.s) -Chars 5997 - 6017 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 6018 - 6042 [apply~eutt_flip~in~Ht34.] 0. secs (0.u,0.s) -Chars 6049 - 6086 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) +Chars 5997 - 6017 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 6018 - 6042 [(apply~eutt_flip~in~Ht34).] 0. secs (0.u,0.s) +Chars 6049 - 6086 [(eapply~all_infinite_euttNoRet...] 0.002 secs (0.002u,0.s) Chars 6091 - 6092 [}] 0. secs (0.u,0.s) -Chars 6097 - 6122 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 6127 - 6165 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 6097 - 6122 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 6127 - 6165 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) Chars 6170 - 6171 [+] 0. secs (0.u,0.s) -Chars 6172 - 6216 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 6172 - 6216 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) Chars 6221 - 6222 [+] 0. secs (0.u,0.s) -Chars 6223 - 6243 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 6223 - 6243 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) Chars 6244 - 6249 [auto.] 0. secs (0.u,0.s) Chars 6250 - 6254 [Qed.] 0.001 secs (0.001u,0.s) Chars 6256 - 6345 [Definition~noret_cast~{E}~{A}~...] 0. secs (0.u,0.s) Chars 6347 - 6465 [Lemma~noret_cast_nop~:~~~foral...] 0. secs (0.u,0.s) Chars 6466 - 6472 [Proof.] 0. secs (0.u,0.s) -Chars 6475 - 6482 [intros.] 0. secs (0.u,0.s) -Chars 6483 - 6506 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 6507 - 6528 [apply~noret_bind_nop.] 0. secs (0.u,0.s) +Chars 6475 - 6482 [(intros).] 0. secs (0.u,0.s) +Chars 6483 - 6506 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 6507 - 6528 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) Chars 6529 - 6534 [auto.] 0. secs (0.u,0.s) Chars 6535 - 6539 [Qed.] 0.001 secs (0.001u,0.s) Chars 6541 - 6648 [#[global]~Instance~proper_nore...] 0. secs (0.u,0.s) Chars 6649 - 6655 [Proof.] 0. secs (0.u,0.s) -Chars 6658 - 6677 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 6678 - 6696 [unfold~noret_cast.] 0. secs (0.u,0.s) -Chars 6697 - 6701 [cbn.] 0. secs (0.u,0.s) -Chars 6702 - 6716 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) +Chars 6658 - 6677 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 6678 - 6696 [(unfold~noret_cast).] 0. secs (0.u,0.s) +Chars 6697 - 6701 [(cbn).] 0. secs (0.u,0.s) +Chars 6702 - 6716 [(rewrite~Heutt).] 0.003 secs (0.003u,0.s) Chars 6717 - 6729 [reflexivity.] 0. secs (0.u,0.s) -Chars 6730 - 6734 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6730 - 6734 [Qed.] 0.003 secs (0.003u,0.s) Chars 6736 - 6939 [Ltac~~infer_noret~H~:=~~~match...] 0. secs (0.u,0.s) Chars 6941 - 7120 [Lemma~noret_cast_cast~E~(A~B~:...] 0. secs (0.u,0.s) Chars 7121 - 7127 [Proof.] 0. secs (0.u,0.s) -Chars 7130 - 7137 [intros.] 0. secs (0.u,0.s) -Chars 7138 - 7161 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 7164 - 7205 [apply~all_infinite_euttNoRet~i...] 0. secs (0.u,0.s) -Chars 7208 - 7223 [infer_noret~H0.] 0. secs (0.u,0.s) -Chars 7226 - 7296 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 7299 - 7343 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 7346 - 7366 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 7367 - 7388 [apply~noret_bind_nop.] 0. secs (0.u,0.s) +Chars 7130 - 7137 [(intros).] 0. secs (0.u,0.s) +Chars 7138 - 7161 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 7164 - 7205 [(apply~all_infinite_euttNoRet~...] 0.001 secs (0.001u,0.s) +Chars 7208 - 7223 [(infer_noret~H0).] 0. secs (0.u,0.s) +Chars 7226 - 7296 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 7299 - 7343 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 7346 - 7366 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 7367 - 7388 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) Chars 7389 - 7394 [auto.] 0. secs (0.u,0.s) Chars 7395 - 7399 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Finite.v.timing b/theories/Props/Finite.v.timing index 3c95d23b..41e12c30 100644 --- a/theories/Props/Finite.v.timing +++ b/theories/Props/Finite.v.timing @@ -1,363 +1,363 @@ -Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.068 secs (0.057u,0.01s) -Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.022 secs (0.019u,0.002s) -Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.093 secs (0.078u,0.014s) +Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.03 secs (0.026u,0.003s) +Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.001u,0.s) Chars 305 - 318 [Import~ITree.] 0. secs (0.u,0.s) Chars 319 - 341 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 342 - 363 [Import~LeafNotations.] 0. secs (0.u,0.s) -Chars 1116 - 1458 [Inductive~all_finite~{E}~{A~:~...] 0.002 secs (0.001u,0.s) +Chars 1116 - 1458 [Inductive~all_finite~{E}~{A~:~...] 0.002 secs (0.002u,0.s) Chars 1459 - 1506 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) -Chars 1573 - 1905 [Inductive~any_finite~{E}~{A~:~...] 0.001 secs (0.001u,0.s) +Chars 1573 - 1905 [Inductive~any_finite~{E}~{A~:~...] 0.002 secs (0.002u,0.s) Chars 1906 - 1953 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) Chars 1999 - 2062 [Lemma~all_finite_Ret~:~forall~...] 0. secs (0.u,0.s) Chars 2063 - 2069 [Proof.] 0. secs (0.u,0.s) -Chars 2072 - 2108 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) +Chars 2072 - 2108 [(intros;~econstructor~1;~refle...] 0. secs (0.u,0.s) Chars 2109 - 2113 [Qed.] 0. secs (0.u,0.s) Chars 2114 - 2160 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) Chars 2162 - 2243 [Lemma~all_finite_Tau~:~forall~...] 0. secs (0.u,0.s) Chars 2244 - 2250 [Proof.] 0. secs (0.u,0.s) -Chars 2253 - 2299 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) +Chars 2253 - 2299 [(intros;~econstructor~2;~[~ref...] 0. secs (0.u,0.s) Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) Chars 2305 - 2351 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) Chars 2353 - 2464 [Lemma~all_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) -Chars 2474 - 2520 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) +Chars 2474 - 2520 [(intros;~econstructor~3;~[~ref...] 0. secs (0.u,0.s) Chars 2521 - 2525 [Qed.] 0. secs (0.u,0.s) Chars 2526 - 2572 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) Chars 2574 - 2653 [Lemma~all_finite_trigger~:~for...] 0. secs (0.u,0.s) Chars 2654 - 2660 [Proof.] 0. secs (0.u,0.s) -Chars 2663 - 2670 [intros.] 0. secs (0.u,0.s) -Chars 2671 - 2692 [apply~all_finite_Vis.] 0. secs (0.u,0.s) +Chars 2663 - 2670 [(intros).] 0. secs (0.u,0.s) +Chars 2671 - 2692 [(apply~all_finite_Vis).] 0. secs (0.u,0.s) Chars 2693 - 2709 [auto~with~itree.] 0. secs (0.u,0.s) Chars 2710 - 2714 [Qed.] 0. secs (0.u,0.s) Chars 2715 - 2800 [#[global]~Hint~Extern~1~(all_f...] 0. secs (0.u,0.s) Chars 2819 - 2882 [Lemma~any_finite_Ret~:~forall~...] 0. secs (0.u,0.s) Chars 2883 - 2889 [Proof.] 0. secs (0.u,0.s) -Chars 2892 - 2928 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) +Chars 2892 - 2928 [(intros;~econstructor~1;~refle...] 0. secs (0.u,0.s) Chars 2929 - 2933 [Qed.] 0. secs (0.u,0.s) Chars 2934 - 2980 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) Chars 2982 - 3063 [Lemma~any_finite_Tau~:~forall~...] 0. secs (0.u,0.s) Chars 3064 - 3070 [Proof.] 0. secs (0.u,0.s) -Chars 3073 - 3119 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) +Chars 3073 - 3119 [(intros;~econstructor~2;~[~ref...] 0. secs (0.u,0.s) Chars 3120 - 3124 [Qed.] 0. secs (0.u,0.s) Chars 3125 - 3171 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) Chars 3173 - 3274 [Lemma~any_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) Chars 3275 - 3281 [Proof.] 0. secs (0.u,0.s) -Chars 3284 - 3330 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) +Chars 3284 - 3330 [(intros;~econstructor~3;~[~ref...] 0. secs (0.u,0.s) Chars 3331 - 3335 [Qed.] 0. secs (0.u,0.s) Chars 3336 - 3382 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) Chars 3384 - 3470 [Lemma~any_finite_trigger~:~~~f...] 0. secs (0.u,0.s) Chars 3471 - 3477 [Proof.] 0. secs (0.u,0.s) -Chars 3480 - 3487 [intros.] 0. secs (0.u,0.s) -Chars 3488 - 3523 [apply~any_finite_Vis~with~(x~:...] 0. secs (0.u,0.s) +Chars 3480 - 3487 [(intros).] 0. secs (0.u,0.s) +Chars 3488 - 3523 [(apply~any_finite_Vis~with~(x~...] 0. secs (0.u,0.s) Chars 3524 - 3540 [auto~with~itree.] 0. secs (0.u,0.s) Chars 3541 - 3545 [Qed.] 0. secs (0.u,0.s) Chars 3546 - 3631 [#[global]~Hint~Extern~1~(any_f...] 0. secs (0.u,0.s) Chars 3675 - 3760 [Lemma~all_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3761 - 3767 [Proof.] 0. secs (0.u,0.s) -Chars 3770 - 3814 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) -Chars 3815 - 3819 [Qed.] 0. secs (0.u,0.s) +Chars 3770 - 3814 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.002 secs (0.002u,0.s) +Chars 3815 - 3819 [Qed.] 0.001 secs (0.001u,0.s) Chars 3821 - 3934 [Lemma~all_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3935 - 3941 [Proof.] 0. secs (0.u,0.s) -Chars 3944 - 3994 [intros~*~FIN~x;~inv~FIN;~cbn~i...] 0.034 secs (0.033u,0.s) +Chars 3944 - 3994 [(intros~*~FIN~x;~inv~FIN;~cbn~...] 0.003 secs (0.003u,0.s) Chars 3997 - 4007 [revert~H0.] 0. secs (0.u,0.s) -Chars 4010 - 4111 [refine~~~match~~~~~H~in~(_~=~u...] 0.003 secs (0.003u,0.s) +Chars 4010 - 4111 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) Chars 4114 - 4119 [auto.] 0. secs (0.u,0.s) -Chars 4120 - 4124 [Qed.] 0.001 secs (0.u,0.s) +Chars 4120 - 4124 [Qed.] 0.001 secs (0.001u,0.s) Chars 4143 - 4228 [Lemma~any_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 4229 - 4235 [Proof.] 0. secs (0.u,0.s) -Chars 4238 - 4282 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) -Chars 4283 - 4287 [Qed.] 0. secs (0.u,0.s) +Chars 4238 - 4282 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.046 secs (0.045u,0.s) +Chars 4283 - 4287 [Qed.] 0.001 secs (0.001u,0.s) Chars 4289 - 4402 [Lemma~any_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 4403 - 4409 [Proof.] 0. secs (0.u,0.s) -Chars 4412 - 4460 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 4412 - 4460 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.003 secs (0.003u,0.s) Chars 4463 - 4475 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 4478 - 4579 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 4478 - 4579 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) Chars 4582 - 4588 [eauto.] 0. secs (0.u,0.s) Chars 4589 - 4593 [Qed.] 0.001 secs (0.001u,0.s) Chars 4723 - 4849 [Lemma~all_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) Chars 4850 - 4856 [Proof.] 0. secs (0.u,0.s) -Chars 4859 - 4890 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) -Chars 4893 - 4921 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) +Chars 4859 - 4890 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) +Chars 4893 - 4921 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) Chars 4924 - 4925 [-] 0. secs (0.u,0.s) Chars 4926 - 4937 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4943 - 4968 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) -Chars 4973 - 5005 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) -Chars 5010 - 5069 [hinduction~EQ~before~R;~intros...] 0.038 secs (0.037u,0.s) +Chars 4943 - 4968 [(rewrite~H~in~EQ;~clear~H).] 0. secs (0.u,0.s) +Chars 4973 - 5005 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) +Chars 5010 - 5069 [(hinduction~EQ~before~R;~intro...] 0.007 secs (0.007u,0.s) Chars 5072 - 5073 [-] 0. secs (0.u,0.s) -Chars 5074 - 5111 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 5116 - 5128 [apply~IHFIN.] 0. secs (0.u,0.s) -Chars 5129 - 5151 [rewrite~<-~tau_euttge.] 0.036 secs (0.031u,0.004s) +Chars 5074 - 5111 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 5116 - 5128 [(apply~IHFIN).] 0. secs (0.u,0.s) +Chars 5129 - 5151 [(rewrite~<-~tau_euttge).] 0.094 secs (0.085u,0.008s) Chars 5152 - 5161 [now~step.] 0.001 secs (0.001u,0.s) Chars 5165 - 5166 [-] 0. secs (0.u,0.s) -Chars 5167 - 5204 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 5209 - 5244 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) -Chars 5249 - 5290 [hinduction~EQ~before~R;~intros...] 0.007 secs (0.007u,0.s) +Chars 5167 - 5204 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 5209 - 5244 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) +Chars 5249 - 5290 [(hinduction~EQ~before~R;~intro...] 0.006 secs (0.006u,0.s) Chars 5295 - 5296 [+] 0. secs (0.u,0.s) Chars 5297 - 5310 [revert~H0~H1.] 0. secs (0.u,0.s) -Chars 5317 - 5421 [refine~~~match~~~~~Heqi~in~(_~...] 0.003 secs (0.002u,0.s) -Chars 5428 - 5445 [eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 5317 - 5421 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) +Chars 5428 - 5445 [eauto~with~itree.] 0.004 secs (0.004u,0.s) Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5479 [inv~Heqi;~eauto~with~itree.] 0.005 secs (0.005u,0.s) -Chars 5480 - 5484 [Qed.] 0.005 secs (0.005u,0.s) +Chars 5452 - 5479 [(inv~Heqi;~eauto~with~itree).] 0.007 secs (0.007u,0.s) +Chars 5480 - 5484 [Qed.] 0.006 secs (0.006u,0.s) Chars 5486 - 5612 [Lemma~all_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 5613 - 5619 [Proof.] 0. secs (0.u,0.s) -Chars 5622 - 5634 [intros~*~EQ.] 0. secs (0.u,0.s) -Chars 5635 - 5657 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) +Chars 5622 - 5634 [(intros~*~EQ).] 0. secs (0.u,0.s) +Chars 5635 - 5657 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) Chars 5658 - 5668 [revert~EQ.] 0. secs (0.u,0.s) -Chars 5669 - 5693 [apply~all_finite_eutt_l.] 0. secs (0.u,0.s) +Chars 5669 - 5693 [(apply~all_finite_eutt_l).] 0. secs (0.u,0.s) Chars 5694 - 5698 [Qed.] 0. secs (0.u,0.s) Chars 5700 - 5788 [#[global]~Instance~all_finite_...] 0. secs (0.u,0.s) Chars 5789 - 5795 [Proof.] 0. secs (0.u,0.s) -Chars 5798 - 5818 [repeat~intro;~split.] 0. secs (0.u,0.s) +Chars 5798 - 5818 [(repeat~intro;~split).] 0. secs (0.u,0.s) Chars 5821 - 5822 [-] 0. secs (0.u,0.s) -Chars 5823 - 5855 [eapply~all_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) +Chars 5823 - 5855 [(eapply~all_finite_eutt_l;~eau...] 0. secs (0.u,0.s) Chars 5858 - 5859 [-] 0. secs (0.u,0.s) -Chars 5860 - 5892 [eapply~all_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) +Chars 5860 - 5892 [(eapply~all_finite_eutt_r;~eau...] 0. secs (0.u,0.s) Chars 5893 - 5897 [Qed.] 0. secs (0.u,0.s) Chars 5916 - 6042 [Lemma~any_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) Chars 6043 - 6049 [Proof.] 0. secs (0.u,0.s) -Chars 6052 - 6083 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) -Chars 6086 - 6114 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) +Chars 6052 - 6083 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) +Chars 6086 - 6114 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) Chars 6117 - 6118 [-] 0. secs (0.u,0.s) Chars 6119 - 6130 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 6131 - 6156 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) -Chars 6161 - 6193 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) -Chars 6198 - 6257 [hinduction~EQ~before~R;~intros...] 0.005 secs (0.005u,0.s) +Chars 6131 - 6156 [(rewrite~H~in~EQ;~clear~H).] 0. secs (0.u,0.s) +Chars 6161 - 6193 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) +Chars 6198 - 6257 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.008u,0.s) Chars 6260 - 6261 [-] 0. secs (0.u,0.s) -Chars 6262 - 6299 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 6306 - 6318 [apply~IHFIN.] 0. secs (0.u,0.s) -Chars 6319 - 6341 [rewrite~<-~tau_euttge.] 0.03 secs (0.03u,0.s) +Chars 6262 - 6299 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 6306 - 6318 [(apply~IHFIN).] 0. secs (0.u,0.s) +Chars 6319 - 6341 [(rewrite~<-~tau_euttge).] 0.039 secs (0.039u,0.s) Chars 6342 - 6351 [now~step.] 0.001 secs (0.001u,0.s) Chars 6355 - 6356 [-] 0. secs (0.u,0.s) -Chars 6357 - 6394 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 6399 - 6434 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) -Chars 6439 - 6480 [hinduction~EQ~before~R;~intros...] 0.006 secs (0.006u,0.s) +Chars 6357 - 6394 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 6399 - 6434 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) +Chars 6439 - 6480 [(hinduction~EQ~before~R;~intro...] 0.009 secs (0.009u,0.s) Chars 6485 - 6486 [+] 0. secs (0.u,0.s) Chars 6487 - 6506 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 6513 - 6617 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) -Chars 6624 - 6641 [eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6513 - 6617 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) +Chars 6624 - 6641 [eauto~with~itree.] 0.002 secs (0.002u,0.s) Chars 6646 - 6647 [+] 0. secs (0.u,0.s) -Chars 6648 - 6675 [inv~Heqi;~eauto~with~itree.] 0.006 secs (0.006u,0.s) -Chars 6676 - 6680 [Qed.] 0.005 secs (0.005u,0.s) +Chars 6648 - 6675 [(inv~Heqi;~eauto~with~itree).] 0.007 secs (0.007u,0.s) +Chars 6676 - 6680 [Qed.] 0.007 secs (0.007u,0.s) Chars 6682 - 6808 [Lemma~any_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 6809 - 6815 [Proof.] 0. secs (0.u,0.s) -Chars 6818 - 6830 [intros~*~EQ.] 0. secs (0.u,0.s) -Chars 6831 - 6853 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) +Chars 6818 - 6830 [(intros~*~EQ).] 0. secs (0.u,0.s) +Chars 6831 - 6853 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) Chars 6854 - 6864 [revert~EQ.] 0. secs (0.u,0.s) -Chars 6865 - 6889 [apply~any_finite_eutt_l.] 0. secs (0.u,0.s) +Chars 6865 - 6889 [(apply~any_finite_eutt_l).] 0. secs (0.u,0.s) Chars 6890 - 6894 [Qed.] 0. secs (0.u,0.s) Chars 6896 - 6984 [#[global]~Instance~any_finite_...] 0. secs (0.u,0.s) Chars 6985 - 6991 [Proof.] 0. secs (0.u,0.s) Chars 6994 - 7000 [split.] 0. secs (0.u,0.s) -Chars 7003 - 7035 [eapply~any_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) -Chars 7038 - 7070 [eapply~any_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) +Chars 7003 - 7035 [(eapply~any_finite_eutt_l;~eau...] 0. secs (0.u,0.s) +Chars 7038 - 7070 [(eapply~any_finite_eutt_r;~eau...] 0. secs (0.u,0.s) Chars 7071 - 7075 [Qed.] 0. secs (0.u,0.s) Chars 7285 - 7450 [Lemma~all_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 7451 - 7457 [Proof.] 0. secs (0.u,0.s) -Chars 7460 - 7547 [intros~*~FIN;~induction~FIN;~i...] 0.004 secs (0.004u,0.s) +Chars 7460 - 7547 [(intros~*~FIN;~induction~FIN;~...] 0.007 secs (0.007u,0.s) Chars 7548 - 7552 [Qed.] 0.001 secs (0.001u,0.s) Chars 7554 - 7713 [Lemma~all_finite_bind_weak~:~~...] 0. secs (0.u,0.s) Chars 7714 - 7720 [Proof.] 0. secs (0.u,0.s) -Chars 7723 - 7759 [intros;~apply~all_finite_bind;...] 0. secs (0.u,0.s) +Chars 7723 - 7759 [(intros;~apply~all_finite_bind...] 0. secs (0.u,0.s) Chars 7760 - 7764 [Qed.] 0. secs (0.u,0.s) Chars 7821 - 7988 [Lemma~all_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) Chars 7989 - 7995 [Proof.] 0. secs (0.u,0.s) -Chars 7998 - 8011 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 8014 - 8174 [cut~~(forall~u~:~itree~E~S,~~~...] 0. secs (0.u,0.s) -Chars 8177 - 8226 [intros~LEM~*~FIN;~eapply~LEM;~...] 0. secs (0.u,0.s) -Chars 8229 - 8254 [induction~1;~intros~*~EQ.] 0. secs (0.u,0.s) +Chars 7998 - 8011 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 8014 - 8174 [(cut~~~(forall~u~:~itree~E~S,~...] 0. secs (0.u,0.s) +Chars 8177 - 8226 [(intros~LEM~*~FIN;~eapply~LEM;...] 0. secs (0.u,0.s) +Chars 8229 - 8254 [(induction~1;~intros~*~EQ).] 0. secs (0.u,0.s) Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8301 [rewrite~(itree_eta~t),~H~in~EQ...] 0.013 secs (0.013u,0.s) -Chars 8306 - 8371 [symmetry~in~EQ;~apply~eqit_inv...] 0. secs (0.u,0.s) -Chars 8376 - 8412 [rewrite~EQt;~split;~auto~with~...] 0.001 secs (0.001u,0.s) -Chars 8417 - 8429 [intros~z~IN.] 0. secs (0.u,0.s) -Chars 8434 - 8485 [rewrite~EQt~in~IN;~apply~Leaf_...] 0.001 secs (0.001u,0.s) -Chars 8490 - 8519 [rewrite~EQk;~auto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 8259 - 8301 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.018u,0.s) +Chars 8306 - 8371 [(symmetry~in~EQ;~apply~eqit_in...] 0. secs (0.u,0.s) +Chars 8376 - 8412 [(rewrite~EQt;~split;~auto~with...] 0.002 secs (0.002u,0.s) +Chars 8417 - 8429 [(intros~z~IN).] 0. secs (0.u,0.s) +Chars 8434 - 8485 [(rewrite~EQt~in~IN;~apply~Leaf...] 0.002 secs (0.002u,0.s) +Chars 8490 - 8519 [(rewrite~EQk;~auto~with~itree).] 0.002 secs (0.002u,0.s) Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8566 [rewrite~(itree_eta~t),~H~in~EQ...] 0.014 secs (0.014u,0.s) -Chars 8571 - 8594 [rewrite~tau_eutt~in~EQ.] 0.011 secs (0.011u,0.s) +Chars 8524 - 8566 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.018u,0.s) +Chars 8571 - 8594 [(rewrite~tau_eutt~in~EQ).] 0.015 secs (0.015u,0.s) Chars 8599 - 8605 [eauto.] 0. secs (0.u,0.s) Chars 8608 - 8609 [-] 0. secs (0.u,0.s) -Chars 8610 - 8652 [rewrite~(itree_eta~t),~H~in~EQ...] 0.014 secs (0.014u,0.s) -Chars 8657 - 8703 [symmetry~in~EQ;~apply~eutt_inv...] 0. secs (0.u,0.s) -Chars 8708 - 8760 [destruct~EQ~as~[(kca,~(EQ,~EQk...] 0. secs (0.u,0.s) +Chars 8610 - 8652 [(rewrite~(itree_eta~t),~H~in~E...] 0.019 secs (0.018u,0.s) +Chars 8657 - 8703 [(symmetry~in~EQ;~apply~eutt_in...] 0. secs (0.u,0.s) +Chars 8708 - 8760 [(destruct~EQ~as~[(kca,~(EQ,~EQ...] 0. secs (0.u,0.s) Chars 8765 - 8766 [+] 0. secs (0.u,0.s) -Chars 8767 - 8778 [rewrite~EQ.] 0.001 secs (0.001u,0.s) +Chars 8767 - 8778 [(rewrite~EQ).] 0.001 secs (0.001u,0.s) Chars 8785 - 8791 [split.] 0. secs (0.u,0.s) -Chars 8798 - 8819 [apply~all_finite_Vis.] 0. secs (0.u,0.s) -Chars 8826 - 8863 [intros~?;~eapply~H1;~symmetry;...] 0.001 secs (0.001u,0.s) -Chars 8870 - 8882 [intros~x~IN.] 0. secs (0.u,0.s) -Chars 8889 - 8906 [rewrite~EQ~in~IN.] 0.001 secs (0.001u,0.s) -Chars 8913 - 8950 [apply~Leaf_Vis_inv~in~IN~as~(y...] 0. secs (0.u,0.s) -Chars 8957 - 8981 [edestruct~H1~as~(_,~H).] 0. secs (0.u,0.s) -Chars 8988 - 9019 [symmetry~in~EQk;~exact~(EQk~y).] 0. secs (0.u,0.s) -Chars 9026 - 9038 [apply~H,~IN.] 0. secs (0.u,0.s) +Chars 8798 - 8819 [(apply~all_finite_Vis).] 0. secs (0.u,0.s) +Chars 8826 - 8863 [(intros~?;~eapply~H1;~symmetry...] 0.001 secs (0.001u,0.s) +Chars 8870 - 8882 [(intros~x~IN).] 0. secs (0.u,0.s) +Chars 8889 - 8906 [(rewrite~EQ~in~IN).] 0.002 secs (0.002u,0.s) +Chars 8913 - 8950 [(apply~Leaf_Vis_inv~in~IN~as~(...] 0. secs (0.u,0.s) +Chars 8957 - 8981 [(edestruct~H1~as~(_,~H)).] 0. secs (0.u,0.s) +Chars 8988 - 9019 [(symmetry~in~EQk;~exact~(EQk~y)).] 0. secs (0.u,0.s) +Chars 9026 - 9038 [(apply~H,~IN).] 0. secs (0.u,0.s) Chars 9043 - 9044 [+] 0. secs (0.u,0.s) -Chars 9045 - 9080 [rewrite~EQ;~split;~auto~with~i...] 0.001 secs (0.001u,0.s) -Chars 9087 - 9099 [intros~y~IN.] 0. secs (0.u,0.s) -Chars 9106 - 9156 [rewrite~EQ~in~IN;~apply~Leaf_R...] 0.001 secs (0.001u,0.s) -Chars 9163 - 9175 [rewrite~EQk.] 0. secs (0.u,0.s) +Chars 9045 - 9080 [(rewrite~EQ;~split;~auto~with~...] 0.002 secs (0.002u,0.s) +Chars 9087 - 9099 [(intros~y~IN).] 0. secs (0.u,0.s) +Chars 9106 - 9156 [(rewrite~EQ~in~IN;~apply~Leaf_...] 0.002 secs (0.002u,0.s) +Chars 9163 - 9175 [(rewrite~EQk).] 0.001 secs (0.001u,0.s) Chars 9176 - 9193 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9194 - 9198 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9194 - 9198 [Qed.] 0.006 secs (0.006u,0.s) Chars 9200 - 9329 [Lemma~all_finite_bind_inv_left...] 0. secs (0.u,0.s) Chars 9330 - 9336 [Proof.] 0. secs (0.u,0.s) -Chars 9339 - 9381 [intros;~eapply~all_finite_bind...] 0. secs (0.u,0.s) +Chars 9339 - 9381 [(intros;~eapply~all_finite_bin...] 0. secs (0.u,0.s) Chars 9382 - 9386 [Qed.] 0. secs (0.u,0.s) Chars 9588 - 9727 [Lemma~any_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9737 - 9767 [intros~*~IN~FIN;~induction~IN.] 0. secs (0.u,0.s) +Chars 9737 - 9767 [(intros~*~IN~FIN;~induction~IN).] 0. secs (0.u,0.s) Chars 9770 - 9771 [-] 0. secs (0.u,0.s) -Chars 9772 - 9815 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) +Chars 9772 - 9815 [(rewrite~(itree_eta~t),~H,~bin...] 0.004 secs (0.004u,0.s) Chars 9818 - 9819 [-] 0. secs (0.u,0.s) -Chars 9820 - 9860 [rewrite~unfold_bind,~H,~tau_eu...] 0.003 secs (0.003u,0.s) +Chars 9820 - 9860 [(rewrite~unfold_bind,~H,~tau_e...] 0.003 secs (0.003u,0.s) Chars 9863 - 9864 [-] 0. secs (0.u,0.s) -Chars 9865 - 9888 [rewrite~unfold_bind,~H.] 0.001 secs (0.001u,0.s) -Chars 9893 - 9922 [eapply~any_finite_Vis;~eauto.] 0. secs (0.u,0.s) -Chars 9923 - 9927 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9865 - 9888 [(rewrite~unfold_bind,~H).] 0.001 secs (0.001u,0.s) +Chars 9893 - 9922 [(eapply~any_finite_Vis;~eauto).] 0. secs (0.u,0.s) +Chars 9923 - 9927 [Qed.] 0.002 secs (0.002u,0.s) Chars 10064 - 10234 [Lemma~any_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) Chars 10235 - 10241 [Proof.] 0. secs (0.u,0.s) -Chars 10244 - 10291 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) +Chars 10244 - 10291 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) Chars 10294 - 10310 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 10313 - 10362 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) +Chars 10313 - 10362 [(induction~FIN;~intros~t'~k'~-...] 0. secs (0.u,0.s) Chars 10365 - 10366 [-] 0. secs (0.u,0.s) -Chars 10367 - 10397 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 10402 - 10441 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 10446 - 10470 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10367 - 10397 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 10402 - 10441 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 10446 - 10470 [(split;~eauto~with~itree).] 0. secs (0.u,0.s) Chars 10473 - 10474 [-] 0. secs (0.u,0.s) -Chars 10475 - 10505 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 10510 - 10549 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 10554 - 10578 [split;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10583 - 10620 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) -Chars 10625 - 10660 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) -Chars 10665 - 10674 [apply~H1.] 0. secs (0.u,0.s) -Chars 10679 - 10703 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10475 - 10505 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 10510 - 10549 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 10554 - 10578 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 10583 - 10620 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) +Chars 10625 - 10660 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) +Chars 10665 - 10674 [(apply~H1).] 0. secs (0.u,0.s) +Chars 10679 - 10703 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 10706 - 10707 [-] 0. secs (0.u,0.s) -Chars 10708 - 10738 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 10743 - 10782 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 10787 - 10811 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10708 - 10738 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 10743 - 10782 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 10787 - 10811 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 10816 - 10835 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 10840 - 10941 [refine~~~match~~~~~H~in~(_~=~u...] 0.003 secs (0.003u,0.s) -Chars 10946 - 10953 [intros.] 0. secs (0.u,0.s) -Chars 10958 - 11012 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) -Chars 11017 - 11041 [split;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 11042 - 11046 [Qed.] 0.003 secs (0.003u,0.s) +Chars 10840 - 10941 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 10946 - 10953 [(intros).] 0. secs (0.u,0.s) +Chars 10958 - 11012 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) +Chars 11017 - 11041 [(split;~eauto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 11042 - 11046 [Qed.] 0.004 secs (0.004u,0.s) Chars 11048 - 11212 [Lemma~any_finite_bind_inv_weak...] 0. secs (0.u,0.s) Chars 11213 - 11219 [Proof.] 0. secs (0.u,0.s) -Chars 11222 - 11282 [intros~*~FIN;~apply~any_finite...] 0.001 secs (0.001u,0.s) -Chars 11285 - 11298 [split;~eauto.] 0. secs (0.u,0.s) +Chars 11222 - 11282 [(intros~*~FIN;~apply~any_finit...] 0. secs (0.u,0.s) +Chars 11285 - 11298 [(split;~eauto).] 0. secs (0.u,0.s) Chars 11299 - 11303 [Qed.] 0. secs (0.u,0.s) Chars 11305 - 11434 [Lemma~any_finite_bind_inv_left...] 0. secs (0.u,0.s) Chars 11435 - 11441 [Proof.] 0. secs (0.u,0.s) -Chars 11444 - 11486 [intros;~eapply~any_finite_bind...] 0. secs (0.u,0.s) +Chars 11444 - 11486 [(intros;~eapply~any_finite_bin...] 0. secs (0.u,0.s) Chars 11487 - 11491 [Qed.] 0. secs (0.u,0.s) Chars 11535 - 11613 [Lemma~Leaf_finite~:~forall~E~R...] 0. secs (0.u,0.s) Chars 11614 - 11620 [Proof.] 0. secs (0.u,0.s) -Chars 11623 - 11691 [intros~*~FIN;~induction~FIN;~r...] 0.003 secs (0.003u,0.s) +Chars 11623 - 11691 [(intros~*~FIN;~induction~FIN;~...] 0.004 secs (0.004u,0.s) Chars 11692 - 11696 [Qed.] 0. secs (0.u,0.s) Chars 11698 - 11784 [Lemma~finite_Leaf~:~~~forall~E...] 0. secs (0.u,0.s) Chars 11785 - 11791 [Proof.] 0. secs (0.u,0.s) -Chars 11794 - 11822 [intros~*~FIN;~induction~FIN.] 0. secs (0.u,0.s) -Chars 11825 - 11877 [1:~exists~a;~rewrite~itree_eta...] 0.001 secs (0.001u,0.s) -Chars 11880 - 11918 [all:~destruct~IHFIN;~eauto~wit...] 0. secs (0.u,0.s) +Chars 11794 - 11822 [(intros~*~FIN;~induction~FIN).] 0. secs (0.u,0.s) +Chars 11825 - 11877 [1:~(exists~a;~rewrite~itree_et...] 0.002 secs (0.002u,0.s) +Chars 11880 - 11918 [all:~(destruct~IHFIN;~eauto~wi...] 0.001 secs (0.001u,0.s) Chars 11919 - 11923 [Qed.] 0. secs (0.u,0.s) Chars 12232 - 12324 [Lemma~finite_non_interactive~:...] 0. secs (0.u,0.s) Chars 12325 - 12331 [Proof.] 0. secs (0.u,0.s) -Chars 12334 - 12406 [split;~induction~1;~cbn~in~*;~...] 0.001 secs (0.001u,0.s) +Chars 12334 - 12406 [(split;~induction~1;~cbn~in~*;...] 0.001 secs (0.001u,0.s) Chars 12407 - 12411 [Qed.] 0. secs (0.u,0.s) Chars 12413 - 12517 [Lemma~finite_leaf_non_interact...] 0. secs (0.u,0.s) Chars 12518 - 12524 [Proof.] 0. secs (0.u,0.s) -Chars 12527 - 12536 [intros~*.] 0. secs (0.u,0.s) -Chars 12539 - 12570 [rewrite~finite_non_interactive.] 0. secs (0.u,0.s) -Chars 12573 - 12645 [split;~[~eauto~using~finite_Le...] 0. secs (0.u,0.s) +Chars 12527 - 12536 [(intros~*).] 0. secs (0.u,0.s) +Chars 12539 - 12570 [(rewrite~finite_non_interactive).] 0. secs (0.u,0.s) +Chars 12573 - 12645 [(split;~[~eauto~using~finite_L...] 0. secs (0.u,0.s) Chars 12646 - 12650 [Qed.] 0. secs (0.u,0.s) Chars 12652 - 12754 [Lemma~Leaf_non_interactive_sin...] 0. secs (0.u,0.s) Chars 12755 - 12761 [Proof.] 0. secs (0.u,0.s) -Chars 12764 - 12814 [intros~*~IN;~revert~b;~inducti...] 0. secs (0.u,0.s) +Chars 12764 - 12814 [(intros~*~IN;~revert~b;~induct...] 0. secs (0.u,0.s) Chars 12817 - 12818 [-] 0. secs (0.u,0.s) -Chars 12819 - 12880 [rewrite~itree_eta,~H~in~IN';~a...] 0.001 secs (0.001u,0.s) +Chars 12819 - 12880 [(rewrite~itree_eta,~H~in~IN';~...] 0.002 secs (0.002u,0.s) Chars 12883 - 12884 [-] 0. secs (0.u,0.s) -Chars 12885 - 12930 [rewrite~itree_eta,~H,~tau_eutt...] 0.003 secs (0.003u,0.s) +Chars 12885 - 12930 [(rewrite~itree_eta,~H,~tau_eut...] 0.006 secs (0.006u,0.s) Chars 12933 - 12934 [-] 0. secs (0.u,0.s) -Chars 12935 - 12941 [inv~e.] 0. secs (0.u,0.s) -Chars 12942 - 12946 [Qed.] 0. secs (0.u,0.s) +Chars 12935 - 12941 [(inv~e).] 0. secs (0.u,0.s) +Chars 12942 - 12946 [Qed.] 0.001 secs (0.001u,0.s) Chars 12996 - 13114 [Lemma~all_finite_translate~{E}...] 0. secs (0.u,0.s) Chars 13115 - 13121 [Proof.] 0. secs (0.u,0.s) -Chars 13124 - 13180 [intros~*;~induction~1;~rewrite...] 0.004 secs (0.004u,0.s) +Chars 13124 - 13180 [(intros~*;~induction~1;~rewrit...] 0.004 secs (0.004u,0.s) Chars 13183 - 13184 [-] 0. secs (0.u,0.s) -Chars 13185 - 13206 [apply~all_finite_Ret.] 0. secs (0.u,0.s) +Chars 13185 - 13206 [(apply~all_finite_Ret).] 0. secs (0.u,0.s) Chars 13209 - 13210 [-] 0. secs (0.u,0.s) -Chars 13211 - 13232 [apply~all_finite_Tau.] 0. secs (0.u,0.s) +Chars 13211 - 13232 [(apply~all_finite_Tau).] 0. secs (0.u,0.s) Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) Chars 13241 - 13242 [-] 0. secs (0.u,0.s) -Chars 13243 - 13264 [apply~all_finite_Vis.] 0. secs (0.u,0.s) +Chars 13243 - 13264 [(apply~all_finite_Vis).] 0. secs (0.u,0.s) Chars 13265 - 13270 [auto.] 0. secs (0.u,0.s) -Chars 13271 - 13275 [Qed.] 0. secs (0.u,0.s) +Chars 13271 - 13275 [Qed.] 0.001 secs (0.001u,0.s) Chars 13277 - 13395 [Lemma~any_finite_translate~{E}...] 0. secs (0.u,0.s) Chars 13396 - 13402 [Proof.] 0. secs (0.u,0.s) -Chars 13405 - 13414 [intros~*.] 0. secs (0.u,0.s) -Chars 13415 - 13461 [induction~1;~rewrite~unfold_tr...] 0.003 secs (0.003u,0.s) +Chars 13405 - 13414 [(intros~*).] 0. secs (0.u,0.s) +Chars 13415 - 13461 [(induction~1;~rewrite~unfold_t...] 0.004 secs (0.004u,0.s) Chars 13464 - 13465 [-] 0. secs (0.u,0.s) -Chars 13466 - 13487 [apply~any_finite_Ret.] 0. secs (0.u,0.s) +Chars 13466 - 13487 [(apply~any_finite_Ret).] 0. secs (0.u,0.s) Chars 13490 - 13491 [-] 0. secs (0.u,0.s) -Chars 13492 - 13513 [apply~any_finite_Tau.] 0. secs (0.u,0.s) +Chars 13492 - 13513 [(apply~any_finite_Tau).] 0. secs (0.u,0.s) Chars 13514 - 13519 [auto.] 0. secs (0.u,0.s) Chars 13522 - 13523 [-] 0. secs (0.u,0.s) -Chars 13524 - 13546 [eapply~any_finite_Vis.] 0. secs (0.u,0.s) +Chars 13524 - 13546 [(eapply~any_finite_Vis).] 0. secs (0.u,0.s) Chars 13547 - 13553 [eauto.] 0. secs (0.u,0.s) -Chars 13554 - 13558 [Qed.] 0. secs (0.u,0.s) +Chars 13554 - 13558 [Qed.] 0.001 secs (0.001u,0.s) Chars 13614 - 13680 [Lemma~spin_not_all_finite~:~fo...] 0. secs (0.u,0.s) Chars 13681 - 13687 [Proof.] 0. secs (0.u,0.s) -Chars 13690 - 13808 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) -Chars 13809 - 13813 [Qed.] 0. secs (0.u,0.s) +Chars 13690 - 13808 [(intros~*~FIN;~remember~spin~a...] 0.001 secs (0.001u,0.s) +Chars 13809 - 13813 [Qed.] 0.001 secs (0.001u,0.s) Chars 13815 - 13881 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) Chars 13882 - 13888 [Proof.] 0. secs (0.u,0.s) -Chars 13891 - 14009 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) -Chars 14010 - 14014 [Qed.] 0. secs (0.u,0.s) +Chars 13891 - 14009 [(intros~*~FIN;~remember~spin~a...] 0.001 secs (0.001u,0.s) +Chars 14010 - 14014 [Qed.] 0.001 secs (0.001u,0.s) Chars 14016 - 14075 [Lemma~spin_empty_Leaf~:~forall...] 0. secs (0.u,0.s) Chars 14076 - 14082 [Proof.] 0. secs (0.u,0.s) -Chars 14085 - 14149 [intros~*~IN;~apply~Leaf_finite...] 0. secs (0.u,0.s) +Chars 14085 - 14149 [(intros~*~IN;~apply~Leaf_finit...] 0. secs (0.u,0.s) Chars 14150 - 14154 [Qed.] 0. secs (0.u,0.s) Chars 14156 - 14179 [Module~Counterexamples.] 0. secs (0.u,0.s) Chars 14628 - 14681 [Notation~fail~:=~(@throw~unit~...] 0. secs (0.u,0.s) Chars 14685 - 14723 [Fact~fail_all_finite~:~all_fin...] 0. secs (0.u,0.s) Chars 14726 - 14732 [Proof.] 0. secs (0.u,0.s) -Chars 14737 - 14749 [unfold~fail.] 0. secs (0.u,0.s) -Chars 14754 - 14786 [apply~all_finite_Vis;~intros~[].] 0. secs (0.u,0.s) +Chars 14737 - 14749 [(unfold~fail).] 0. secs (0.u,0.s) +Chars 14754 - 14786 [(apply~all_finite_Vis;~intros~...] 0. secs (0.u,0.s) Chars 14789 - 14793 [Qed.] 0. secs (0.u,0.s) Chars 14797 - 14841 [Fact~fail_not_any_finite~:~~~a...] 0. secs (0.u,0.s) Chars 14844 - 14850 [Proof.] 0. secs (0.u,0.s) -Chars 14855 - 14879 [unfold~fail;~intros~FIN.] 0. secs (0.u,0.s) -Chars 14884 - 14932 [apply~any_finite_Vis_inv~in~FI...] 0. secs (0.u,0.s) +Chars 14855 - 14879 [(unfold~fail;~intros~FIN).] 0. secs (0.u,0.s) +Chars 14884 - 14932 [(apply~any_finite_Vis_inv~in~F...] 0. secs (0.u,0.s) Chars 14935 - 14939 [Qed.] 0. secs (0.u,0.s) Chars 15376 - 15436 [Definition~t~:~itree~nondetE~b...] 0. secs (0.u,0.s) Chars 15440 - 15525 [Definition~k~:~bool~->~itree~n...] 0. secs (0.u,0.s) Chars 15529 - 15597 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) Chars 15600 - 15606 [Proof.] 0. secs (0.u,0.s) -Chars 15611 - 15731 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) -Chars 15734 - 15738 [Qed.] 0. secs (0.u,0.s) +Chars 15611 - 15731 [(intros~*~FIN;~remember~spin~a...] 0.001 secs (0.001u,0.s) +Chars 15734 - 15738 [Qed.] 0.001 secs (0.001u,0.s) Chars 15742 - 15766 [Fact~DFt~:~any_finite~t.] 0. secs (0.u,0.s) Chars 15769 - 15775 [Proof.] 0. secs (0.u,0.s) -Chars 15780 - 15828 [apply~any_finite_Vis~with~true...] 0. secs (0.u,0.s) +Chars 15780 - 15828 [(apply~any_finite_Vis~with~tru...] 0. secs (0.u,0.s) Chars 15831 - 15835 [Qed.] 0. secs (0.u,0.s) Chars 15839 - 15871 [Fact~DFk~:~any_finite~(k~false).] 0. secs (0.u,0.s) Chars 15874 - 15880 [Proof.] 0. secs (0.u,0.s) -Chars 15885 - 15906 [cbn;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 15885 - 15906 [(cbn;~auto~with~itree).] 0. secs (0.u,0.s) Chars 15909 - 15913 [Qed.] 0. secs (0.u,0.s) Chars 15917 - 15954 [Fact~NotDFtk~:~~~any_finite~(t...] 0. secs (0.u,0.s) Chars 15957 - 15963 [Proof.] 0. secs (0.u,0.s) -Chars 15966 - 15977 [intros~abs.] 0. secs (0.u,0.s) -Chars 15980 - 16039 [apply~any_finite_bind_inv~in~a...] 0. secs (0.u,0.s) -Chars 16042 - 16063 [destruct~b;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 15966 - 15977 [(intros~abs).] 0. secs (0.u,0.s) +Chars 15980 - 16039 [(apply~any_finite_bind_inv~in~...] 0. secs (0.u,0.s) +Chars 16042 - 16063 [(destruct~b;~cbn~in~*).] 0. secs (0.u,0.s) Chars 16066 - 16067 [-] 0. secs (0.u,0.s) -Chars 16068 - 16102 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) +Chars 16068 - 16102 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) Chars 16105 - 16106 [-] 0. secs (0.u,0.s) -Chars 16107 - 16122 [unfold~t~in~IN.] 0. secs (0.u,0.s) +Chars 16107 - 16122 [(unfold~t~in~IN).] 0. secs (0.u,0.s) Chars 16127 - 16143 [clear~FINk~FINt.] 0. secs (0.u,0.s) -Chars 16148 - 16181 [inv~IN;~cbn~in~*;~try~congruence.] 0.002 secs (0.002u,0.s) +Chars 16148 - 16181 [(inv~IN;~cbn~in~*;~try~congrue...] 0.006 secs (0.006u,0.s) Chars 16186 - 16208 [dependent~induction~H.] 0.001 secs (0.001u,0.s) -Chars 16213 - 16234 [destruct~x;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 16239 - 16276 [apply~Leaf_Ret_inv~in~H0;~cong...] 0. secs (0.u,0.s) -Chars 16281 - 16305 [apply~Leaf_finite~in~H0.] 0. secs (0.u,0.s) -Chars 16310 - 16344 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) -Chars 16347 - 16351 [Qed.] 0.003 secs (0.003u,0.s) +Chars 16213 - 16234 [(destruct~x;~cbn~in~*).] 0. secs (0.u,0.s) +Chars 16239 - 16276 [(apply~Leaf_Ret_inv~in~H0;~con...] 0. secs (0.u,0.s) +Chars 16281 - 16305 [(apply~Leaf_finite~in~H0).] 0. secs (0.u,0.s) +Chars 16310 - 16344 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) +Chars 16347 - 16351 [Qed.] 0.002 secs (0.002u,0.s) Chars 16353 - 16373 [End~Counterexamples.] 0. secs (0.u,0.s) diff --git a/theories/Props/HasPost.v.timing b/theories/Props/HasPost.v.timing index 8ef538ac..35319605 100644 --- a/theories/Props/HasPost.v.timing +++ b/theories/Props/HasPost.v.timing @@ -1,5 +1,5 @@ -Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.06 secs (0.051u,0.009s) +Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.088 secs (0.074u,0.013s) Chars 186 - 209 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 210 - 230 [Set~Strict~Implicit.] 0. secs (0.u,0.s) Chars 231 - 251 [Import~RelNotations.] 0. secs (0.u,0.s) @@ -8,12 +8,12 @@ Chars 1381 - 1478 [Definition~has_post~{E}~{X}~(t...] 0. secs (0.u,0.s) Chars 1534 - 1647 [Definition~has_post_strong~{E}...] 0. secs (0.u,0.s) Chars 1649 - 1751 [Lemma~has_post_post_strong~:~~...] 0. secs (0.u,0.s) Chars 1752 - 1758 [Proof.] 0. secs (0.u,0.s) -Chars 1761 - 1802 [intros;~split;~intros~HP;~red~...] 0. secs (0.u,0.s) -Chars 1805 - 1830 [assert~(t~≈~t)~by~auto.] 0. secs (0.u,0.s) +Chars 1761 - 1802 [(intros;~split;~intros~HP;~red...] 0. secs (0.u,0.s) +Chars 1805 - 1830 [(assert~(t~≈~t)~by~auto).] 0. secs (0.u,0.s) Chars 1834 - 1835 [-] 0. secs (0.u,0.s) -Chars 1836 - 1875 [eapply~eutt_conj;~[~reflexivit...] 0. secs (0.u,0.s) +Chars 1836 - 1875 [(eapply~eutt_conj;~[~reflexivi...] 0. secs (0.u,0.s) Chars 1878 - 1879 [-] 0. secs (0.u,0.s) -Chars 1880 - 1936 [eapply~(eqit_mono~(fun~x~y~:~X...] 0.001 secs (0.001u,0.s) +Chars 1880 - 1936 [(eapply~(eqit_mono~(fun~x~y~:~...] 0.002 secs (0.002u,0.s) Chars 1941 - 1953 [now~intros~!.] 0. secs (0.u,0.s) Chars 1955 - 1959 [Qed.] 0. secs (0.u,0.s) Chars 1961 - 1985 [Module~HasPostNotations.] 0. secs (0.u,0.s) @@ -22,142 +22,142 @@ Chars 2040 - 2061 [End~HasPostNotations.] 0. secs (0.u,0.s) Chars 2062 - 2086 [Import~HasPostNotations.] 0. secs (0.u,0.s) Chars 2112 - 2219 [#[global]~Instance~has_post_eq...] 0. secs (0.u,0.s) Chars 2220 - 2226 [Proof.] 0. secs (0.u,0.s) -Chars 2229 - 2297 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) +Chars 2229 - 2297 [(repeat~red;~unfold~has_post;~...] 0. secs (0.u,0.s) Chars 2300 - 2301 [-] 0. secs (0.u,0.s) -Chars 2302 - 2344 [rewrite~<-~EUTT;~eapply~eutt_e...] 0.001 secs (0.001u,0.s) -Chars 2349 - 2385 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2302 - 2344 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.002 secs (0.001u,0.s) +Chars 2349 - 2385 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) Chars 2388 - 2389 [-] 0. secs (0.u,0.s) -Chars 2390 - 2429 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) -Chars 2434 - 2470 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) -Chars 2471 - 2475 [Qed.] 0. secs (0.u,0.s) +Chars 2390 - 2429 [(rewrite~EUTT;~eapply~eutt_equ...] 0. secs (0.u,0.s) +Chars 2434 - 2470 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) +Chars 2471 - 2475 [Qed.] 0.001 secs (0.001u,0.s) Chars 2477 - 2576 [#[global]~Instance~has_post_eu...] 0. secs (0.u,0.s) Chars 2577 - 2583 [Proof.] 0. secs (0.u,0.s) -Chars 2586 - 2654 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) +Chars 2586 - 2654 [(repeat~red;~unfold~has_post;~...] 0. secs (0.u,0.s) Chars 2657 - 2658 [-] 0. secs (0.u,0.s) -Chars 2659 - 2701 [rewrite~<-~EUTT;~eapply~eutt_e...] 0. secs (0.u,0.s) -Chars 2706 - 2742 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2659 - 2701 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.001 secs (0.001u,0.s) +Chars 2706 - 2742 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) Chars 2745 - 2746 [-] 0. secs (0.u,0.s) -Chars 2747 - 2786 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) -Chars 2791 - 2827 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) -Chars 2828 - 2832 [Qed.] 0. secs (0.u,0.s) +Chars 2747 - 2786 [(rewrite~EUTT;~eapply~eutt_equ...] 0.001 secs (0.001u,0.s) +Chars 2791 - 2827 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) +Chars 2828 - 2832 [Qed.] 0.001 secs (0.001u,0.s) Chars 3013 - 3119 [Lemma~has_post_conj~:~~~forall...] 0. secs (0.u,0.s) Chars 3120 - 3126 [Proof.] 0. secs (0.u,0.s) -Chars 3129 - 3144 [intros~*~HP~HQ.] 0. secs (0.u,0.s) -Chars 3147 - 3178 [pose~proof~(eutt_conj~_~_~HP~HQ).] 0. secs (0.u,0.s) +Chars 3129 - 3144 [(intros~*~HP~HQ).] 0. secs (0.u,0.s) +Chars 3147 - 3178 [(pose~proof~(eutt_conj~_~_~HP~...] 0. secs (0.u,0.s) Chars 3181 - 3186 [auto.] 0. secs (0.u,0.s) Chars 3187 - 3191 [Qed.] 0.002 secs (0.002u,0.s) Chars 3229 - 3322 [Lemma~has_post_disj_l~:~~~fora...] 0. secs (0.u,0.s) Chars 3323 - 3329 [Proof.] 0. secs (0.u,0.s) -Chars 3332 - 3383 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) -Chars 3386 - 3403 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) +Chars 3332 - 3383 [(unfold~has_post,~disj_rel,~Di...] 0. secs (0.u,0.s) +Chars 3386 - 3403 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) Chars 3404 - 3416 [4:~exact~HP.] 0. secs (0.u,0.s) Chars 3417 - 3427 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3430 - 3449 [intros;~left;~auto.] 0. secs (0.u,0.s) -Chars 3450 - 3454 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3430 - 3449 [(intros;~left;~auto).] 0. secs (0.u,0.s) +Chars 3450 - 3454 [Qed.] 0.002 secs (0.002u,0.s) Chars 3493 - 3586 [Lemma~has_post_disj_r~:~~~fora...] 0. secs (0.u,0.s) Chars 3587 - 3593 [Proof.] 0. secs (0.u,0.s) -Chars 3596 - 3647 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) -Chars 3650 - 3667 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) +Chars 3596 - 3647 [(unfold~has_post,~disj_rel,~Di...] 0. secs (0.u,0.s) +Chars 3650 - 3667 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) Chars 3668 - 3680 [4:~exact~HQ.] 0. secs (0.u,0.s) Chars 3681 - 3691 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3694 - 3714 [intros;~right;~auto.] 0.027 secs (0.026u,0.s) -Chars 3715 - 3719 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3694 - 3714 [(intros;~right;~auto).] 0. secs (0.u,0.s) +Chars 3715 - 3719 [Qed.] 0.038 secs (0.038u,0.s) Chars 3737 - 3837 [Lemma~has_post_weaken~:~~~fora...] 0. secs (0.u,0.s) Chars 3838 - 3844 [Proof.] 0. secs (0.u,0.s) -Chars 3847 - 3910 [unfold~has_post,~subrelationH,...] 0. secs (0.u,0.s) -Chars 3913 - 3930 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) +Chars 3847 - 3910 [(unfold~has_post,~subrelationH...] 0. secs (0.u,0.s) +Chars 3913 - 3930 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) Chars 3931 - 3943 [4:~exact~HP.] 0. secs (0.u,0.s) Chars 3944 - 3954 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3957 - 3961 [cbn.] 0. secs (0.u,0.s) -Chars 3962 - 3996 [intros~?~?~H;~apply~INCL;~exac...] 0. secs (0.u,0.s) -Chars 3997 - 4001 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3957 - 3961 [(cbn).] 0. secs (0.u,0.s) +Chars 3962 - 3996 [(intros~?~?~H;~apply~INCL;~exa...] 0. secs (0.u,0.s) +Chars 3997 - 4001 [Qed.] 0.002 secs (0.002u,0.s) Chars 4031 - 4107 [Lemma~has_post_True~:~forall~{...] 0. secs (0.u,0.s) Chars 4108 - 4114 [Proof.] 0. secs (0.u,0.s) -Chars 4117 - 4126 [intros~*.] 0. secs (0.u,0.s) -Chars 4127 - 4131 [red.] 0. secs (0.u,0.s) -Chars 4134 - 4174 [eapply~(eqit_mono~eq~_~true~tr...] 0.001 secs (0.001u,0.s) -Chars 4176 - 4180 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4117 - 4126 [(intros~*).] 0. secs (0.u,0.s) +Chars 4127 - 4131 [(red).] 0. secs (0.u,0.s) +Chars 4134 - 4174 [(eapply~(eqit_mono~eq~_~true~t...] 0.001 secs (0.001u,0.s) +Chars 4176 - 4180 [Qed.] 0.002 secs (0.002u,0.s) Chars 4307 - 4443 [Lemma~has_post_bind_weak~:~~~f...] 0. secs (0.u,0.s) Chars 4444 - 4450 [Proof.] 0. secs (0.u,0.s) -Chars 4453 - 4467 [intros~*~POST.] 0. secs (0.u,0.s) -Chars 4470 - 4511 [apply~eutt_eq_bind;~intros~?;~...] 0. secs (0.u,0.s) -Chars 4512 - 4516 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4453 - 4467 [(intros~*~POST).] 0. secs (0.u,0.s) +Chars 4470 - 4511 [(apply~eutt_eq_bind;~intros~?;...] 0. secs (0.u,0.s) +Chars 4512 - 4516 [Qed.] 0.002 secs (0.002u,0.s) Chars 4577 - 4732 [Lemma~has_post_bind~:~~~forall...] 0. secs (0.u,0.s) Chars 4733 - 4739 [Proof.] 0. secs (0.u,0.s) -Chars 4742 - 4763 [intros~*~POST1~POST2.] 0. secs (0.u,0.s) -Chars 4766 - 4870 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 4873 - 4912 [intros~?~?~[<-~?];~eapply~POST...] 0. secs (0.u,0.s) -Chars 4913 - 4917 [Qed.] 0.002 secs (0.001u,0.s) +Chars 4742 - 4763 [(intros~*~POST1~POST2).] 0. secs (0.u,0.s) +Chars 4766 - 4870 [(apply~eutt_bind_eutt~with~(UU...] 0.001 secs (0.001u,0.s) +Chars 4873 - 4912 [(intros~?~?~[<-~?];~eapply~POS...] 0. secs (0.u,0.s) +Chars 4913 - 4917 [Qed.] 0.002 secs (0.002u,0.s) Chars 4951 - 5177 [Lemma~has_post_iter_strong~:~~...] 0. secs (0.u,0.s) Chars 5178 - 5184 [Proof.] 0. secs (0.u,0.s) -Chars 5187 - 5205 [intros~*~IND~INIT.] 0. secs (0.u,0.s) -Chars 5208 - 5284 [eapply~(@KTreeFacts.eutt_iter_...] 0.001 secs (0.001u,0.s) -Chars 5287 - 5305 [intros~i~?~[<-~?].] 0. secs (0.u,0.s) -Chars 5308 - 5368 [specialize~(IND~i);~apply~has_...] 0.005 secs (0.004u,0.s) -Chars 5371 - 5401 [unfold~has_post_strong~in~IND.] 0. secs (0.u,0.s) -Chars 5404 - 5442 [eapply~eqit_mono;~try~apply~IN...] 0.003 secs (0.002u,0.s) -Chars 5445 - 5471 [intros~[]~?~[<-~?];~eauto.] 0.001 secs (0.001u,0.s) -Chars 5472 - 5476 [Qed.] 0.003 secs (0.002u,0.s) +Chars 5187 - 5205 [(intros~*~IND~INIT).] 0. secs (0.u,0.s) +Chars 5208 - 5284 [(eapply~(@KTreeFacts.eutt_iter...] 0.001 secs (0.001u,0.s) +Chars 5287 - 5305 [(intros~i~?~[<-~?]).] 0. secs (0.u,0.s) +Chars 5308 - 5368 [(specialize~(IND~i);~apply~has...] 0.004 secs (0.004u,0.s) +Chars 5371 - 5401 [(unfold~has_post_strong~in~IND).] 0. secs (0.u,0.s) +Chars 5404 - 5442 [(eapply~eqit_mono;~try~apply~I...] 0.006 secs (0.005u,0.s) +Chars 5445 - 5471 [(intros~[]~?~[<-~?];~eauto).] 0.002 secs (0.002u,0.s) +Chars 5472 - 5476 [Qed.] 0.004 secs (0.003u,0.s) Chars 5521 - 5634 [Lemma~has_post_translate~:~~~f...] 0. secs (0.u,0.s) Chars 5635 - 5641 [Proof.] 0. secs (0.u,0.s) -Chars 5644 - 5675 [unfold~has_post;~intros~*~POST.] 0. secs (0.u,0.s) -Chars 5678 - 5709 [apply~eutt_translate_gen;~auto.] 0. secs (0.u,0.s) -Chars 5710 - 5714 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0. secs (0.u,0.s) +Chars 5644 - 5675 [(unfold~has_post;~intros~*~POST).] 0. secs (0.u,0.s) +Chars 5678 - 5709 [(apply~eutt_translate_gen;~auto).] 0. secs (0.u,0.s) +Chars 5710 - 5714 [Qed.] 0.003 secs (0.002u,0.s) +Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0.001 secs (0.u,0.s) Chars 6249 - 6255 [Proof.] 0. secs (0.u,0.s) -Chars 6258 - 6286 [intros~*~POST1~POST2~EQ~KEQ.] 0. secs (0.u,0.s) -Chars 6289 - 6357 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 6360 - 6403 [2:~intros~?~?~(?,~(?,~?));~app...] 0. secs (0.u,0.s) +Chars 6258 - 6286 [(intros~*~POST1~POST2~EQ~KEQ).] 0. secs (0.u,0.s) +Chars 6289 - 6357 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) +Chars 6360 - 6403 [2:~(intros~?~?~(?,~(?,~?));~ap...] 0. secs (0.u,0.s) Chars 6406 - 6416 [clear~KEQ.] 0. secs (0.u,0.s) -Chars 6419 - 6455 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) -Chars 6458 - 6494 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) -Chars 6497 - 6535 [pose~proof~(eqit_trans~POST1~E...] 0. secs (0.u,0.s) -Chars 6538 - 6577 [pose~proof~(eqit_trans~EQ1~POS...] 0. secs (0.u,0.s) +Chars 6419 - 6455 [(apply~has_post_post_strong~in...] 0.002 secs (0.001u,0.s) +Chars 6458 - 6494 [(apply~has_post_post_strong~in...] 0.002 secs (0.001u,0.s) +Chars 6497 - 6535 [(pose~proof~(eqit_trans~POST1~...] 0. secs (0.u,0.s) +Chars 6538 - 6577 [(pose~proof~(eqit_trans~EQ1~PO...] 0. secs (0.u,0.s) Chars 6580 - 6591 [clear~-~EQ2.] 0. secs (0.u,0.s) -Chars 6594 - 6619 [eapply~eutt_equiv;~eauto.] 0. secs (0.u,0.s) +Chars 6594 - 6619 [(eapply~eutt_equiv;~eauto).] 0. secs (0.u,0.s) Chars 6622 - 6628 [split.] 0. secs (0.u,0.s) Chars 6631 - 6632 [-] 0. secs (0.u,0.s) -Chars 6633 - 6682 [intros~?~?~(?,~(?,~?));~do~2~e...] 0. secs (0.u,0.s) +Chars 6633 - 6682 [(intros~?~?~(?,~(?,~?));~do~2~...] 0.001 secs (0.u,0.s) Chars 6685 - 6686 [-] 0. secs (0.u,0.s) -Chars 6687 - 6700 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 6701 - 6707 [inv~H.] 0.002 secs (0.001u,0.s) -Chars 6708 - 6717 [inv~REL1.] 0.002 secs (0.001u,0.s) -Chars 6722 - 6769 [destruct~REL2~as~[->~?],~REL0~...] 0. secs (0.u,0.s) -Chars 6770 - 6774 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6687 - 6700 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 6701 - 6707 [(inv~H).] 0.003 secs (0.002u,0.s) +Chars 6708 - 6717 [(inv~REL1).] 0.003 secs (0.002u,0.s) +Chars 6722 - 6769 [(destruct~REL2~as~[->~?],~REL0...] 0. secs (0.u,0.s) +Chars 6770 - 6774 [Qed.] 0.005 secs (0.004u,0.s) Chars 6833 - 7052 [Lemma~eutt_post_bind_eq~:~~~fo...] 0. secs (0.u,0.s) Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) -Chars 7062 - 7078 [intros~*~POST~?.] 0. secs (0.u,0.s) -Chars 7081 - 7183 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 7186 - 7210 [intros~?~?~[->~?];~auto.] 0. secs (0.u,0.s) +Chars 7062 - 7078 [(intros~*~POST~?).] 0. secs (0.u,0.s) +Chars 7081 - 7183 [(apply~eutt_bind_eutt~with~(UU...] 0.001 secs (0.001u,0.s) +Chars 7186 - 7210 [(intros~?~?~[->~?];~auto).] 0. secs (0.u,0.s) Chars 7211 - 7215 [Qed.] 0.001 secs (0.001u,0.s) Chars 7435 - 7539 [Lemma~eutt_eq_itree~{E}~{X}~(R...] 0. secs (0.u,0.s) Chars 7540 - 7546 [Proof.] 0. secs (0.u,0.s) -Chars 7549 - 7632 [enough~~(forall~t~u~:~itree~E~...] 0. secs (0.u,0.s) +Chars 7549 - 7632 [(enough~~~(forall~t~u~:~itree~...] 0. secs (0.u,0.s) Chars 7635 - 7636 [{] 0. secs (0.u,0.s) -Chars 7637 - 7689 [intros;~apply~H;~[~auto~|~appl...] 0. secs (0.u,0.s) +Chars 7637 - 7689 [(intros;~apply~H;~[~auto~|~app...] 0. secs (0.u,0.s) Chars 7690 - 7691 [}] 0. secs (0.u,0.s) -Chars 7694 - 7706 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 7710 - 7726 [intros~t~u~H~EQ.] 0. secs (0.u,0.s) -Chars 7730 - 7772 [rewrite~(itree_eta~t),~(itree_...] 0.031 secs (0.031u,0.s) +Chars 7694 - 7706 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7710 - 7726 [(intros~t~u~H~EQ).] 0. secs (0.u,0.s) +Chars 7730 - 7772 [(rewrite~(itree_eta~t),~(itree...] 0.042 secs (0.042u,0.s) Chars 7775 - 7786 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 7787 - 7791 [cbn.] 0. secs (0.u,0.s) -Chars 7792 - 7835 [destruct~EQ;~try~discriminate;...] 0.001 secs (0.001u,0.s) +Chars 7787 - 7791 [(cbn).] 0. secs (0.u,0.s) +Chars 7792 - 7835 [(destruct~EQ;~try~discriminate...] 0.001 secs (0.001u,0.s) Chars 7838 - 7839 [-] 0. secs (0.u,0.s) -Chars 7840 - 7865 [rewrite~<-~eutt_Ret~in~H.] 0. secs (0.u,0.s) +Chars 7840 - 7865 [(rewrite~<-~eutt_Ret~in~H).] 0. secs (0.u,0.s) Chars 7866 - 7871 [auto.] 0. secs (0.u,0.s) Chars 7874 - 7875 [-] 0. secs (0.u,0.s) -Chars 7876 - 7903 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) -Chars 7908 - 7933 [revert~H;~apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 7876 - 7903 [(apply~CIH;~[~~|~apply~REL~]).] 0. secs (0.u,0.s) +Chars 7908 - 7933 [(revert~H;~apply~eqit_Tau).] 0.001 secs (0.001u,0.s) Chars 7936 - 7937 [-] 0. secs (0.u,0.s) Chars 7938 - 7944 [intro.] 0. secs (0.u,0.s) -Chars 7945 - 7972 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) -Chars 7977 - 8011 [eapply~eqit_inv_Vis~with~(1~:=...] 0. secs (0.u,0.s) -Chars 8012 - 8016 [Qed.] 0.005 secs (0.005u,0.s) +Chars 7945 - 7972 [(apply~CIH;~[~~|~apply~REL~]).] 0. secs (0.u,0.s) +Chars 7977 - 8011 [(eapply~eqit_inv_Vis~with~(1~:...] 0. secs (0.u,0.s) +Chars 8012 - 8016 [Qed.] 0.007 secs (0.007u,0.s) Chars 8018 - 8170 [Lemma~has_post_strong_to_eq_it...] 0. secs (0.u,0.s) Chars 8171 - 8177 [Proof.] 0. secs (0.u,0.s) -Chars 8180 - 8210 [intros~*;~apply~eutt_eq_itree.] 0. secs (0.u,0.s) -Chars 8211 - 8215 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8180 - 8210 [(intros~*;~apply~eutt_eq_itree).] 0. secs (0.u,0.s) +Chars 8211 - 8215 [Qed.] 0.002 secs (0.002u,0.s) Chars 8217 - 8355 [Lemma~has_post_to_eq_itree~:~~...] 0. secs (0.u,0.s) Chars 8356 - 8362 [Proof.] 0. secs (0.u,0.s) -Chars 8365 - 8436 [intros~*~H;~apply~has_post_str...] 0. secs (0.u,0.s) -Chars 8437 - 8441 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8365 - 8436 [(intros~*~H;~apply~has_post_st...] 0.001 secs (0.001u,0.s) +Chars 8437 - 8441 [Qed.] 0.002 secs (0.002u,0.s) diff --git a/theories/Props/Infinite.v.timing b/theories/Props/Infinite.v.timing index 0565b0e2..9de8d920 100644 --- a/theories/Props/Infinite.v.timing +++ b/theories/Props/Infinite.v.timing @@ -1,5 +1,5 @@ -Chars 170 - 245 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 247 - 352 [From~ITree~Require~Import~Axio...] 0.142 secs (0.128u,0.014s) +Chars 170 - 245 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 247 - 352 [From~ITree~Require~Import~Axio...] 0.191 secs (0.172u,0.019s) Chars 369 - 391 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 392 - 418 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) Chars 420 - 443 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) @@ -9,103 +9,103 @@ Chars 768 - 854 [Definition~any_infinite_~{E}~{...] 0. secs (0.u,0.s) Chars 855 - 899 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) Chars 901 - 977 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) Chars 978 - 984 [Proof.] 0. secs (0.u,0.s) -Chars 988 - 1007 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 1008 - 1056 [induction~H0;~econstructor;~ea...] 0. secs (0.u,0.s) -Chars 1058 - 1062 [Qed.] 0. secs (0.u,0.s) +Chars 988 - 1007 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 1008 - 1056 [(induction~H0;~econstructor;~e...] 0. secs (0.u,0.s) +Chars 1058 - 1062 [Qed.] 0.001 secs (0.u,0.s) Chars 1065 - 1195 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) Chars 1197 - 1273 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) Chars 1275 - 1373 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) Chars 1374 - 1380 [Proof.] 0. secs (0.u,0.s) -Chars 1383 - 1399 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 1400 - 1419 [split;~intros~Hinf.] 0. secs (0.u,0.s) +Chars 1383 - 1399 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 1400 - 1419 [(split;~intros~Hinf).] 0. secs (0.u,0.s) Chars 1422 - 1423 [-] 0. secs (0.u,0.s) Chars 1424 - 1445 [revert~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 1446 - 1471 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) -Chars 1472 - 1490 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1495 - 1516 [intros~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 1446 - 1471 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) +Chars 1472 - 1490 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) +Chars 1495 - 1516 [(intros~t2~t1~Ht~Hinf).] 0. secs (0.u,0.s) Chars 1517 - 1528 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 1529 - 1554 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 1555 - 1574 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 1579 - 1606 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 1607 - 1628 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 1633 - 1673 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 1678 - 1713 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 1714 - 1743 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 1748 - 1761 [induction~Ht.] 0. secs (0.u,0.s) +Chars 1529 - 1554 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 1555 - 1574 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 1579 - 1606 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 1607 - 1628 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 1633 - 1673 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 1678 - 1713 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 1714 - 1743 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 1748 - 1761 [(induction~Ht).] 0.001 secs (0.u,0.s) Chars 1766 - 1767 [+] 0. secs (0.u,0.s) -Chars 1768 - 1783 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 1768 - 1783 [(inversion~Hinf).] 0. secs (0.u,0.s) Chars 1788 - 1789 [+] 0. secs (0.u,0.s) -Chars 1790 - 1812 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 1790 - 1812 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) Chars 1813 - 1825 [constructor.] 0. secs (0.u,0.s) -Chars 1826 - 1844 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 1826 - 1844 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 1849 - 1850 [+] 0. secs (0.u,0.s) -Chars 1851 - 1873 [inversion~Hinf;~subst.] 0.001 secs (0.001u,0.s) -Chars 1874 - 1899 [dependent~destruction~H2.] 0.002 secs (0.001u,0.s) +Chars 1851 - 1873 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) +Chars 1874 - 1899 [dependent~destruction~H2.] 0.003 secs (0.002u,0.s) Chars 1906 - 1919 [econstructor.] 0. secs (0.u,0.s) -Chars 1920 - 1945 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 1920 - 1945 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) Chars 1946 - 1952 [eauto.] 0. secs (0.u,0.s) Chars 1957 - 1958 [+] 0. secs (0.u,0.s) -Chars 1959 - 1970 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 1971 - 1993 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 2000 - 2038 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 2045 - 2078 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 2079 - 2106 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 1959 - 1970 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 1971 - 1993 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 2000 - 2038 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 2045 - 2078 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2079 - 2106 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 2107 - 2116 [exact~H0.] 0. secs (0.u,0.s) Chars 2121 - 2122 [+] 0. secs (0.u,0.s) Chars 2123 - 2135 [constructor.] 0. secs (0.u,0.s) Chars 2136 - 2141 [step.] 0. secs (0.u,0.s) -Chars 2142 - 2169 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 2170 - 2191 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 2198 - 2209 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2142 - 2169 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 2170 - 2191 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 2198 - 2209 [(apply~IHHt).] 0. secs (0.u,0.s) Chars 2210 - 2221 [exact~Hinf.] 0. secs (0.u,0.s) Chars 2224 - 2225 [-] 0. secs (0.u,0.s) Chars 2226 - 2247 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 2248 - 2273 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) -Chars 2274 - 2292 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2297 - 2318 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 2248 - 2273 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) +Chars 2274 - 2292 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) +Chars 2297 - 2318 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) Chars 2319 - 2330 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 2331 - 2356 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 2357 - 2376 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 2381 - 2408 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 2409 - 2430 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 2435 - 2475 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 2480 - 2515 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 2516 - 2545 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 2550 - 2563 [induction~Ht.] 0. secs (0.u,0.s) +Chars 2331 - 2356 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 2357 - 2376 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 2381 - 2408 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 2409 - 2430 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 2435 - 2475 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 2480 - 2515 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2516 - 2545 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 2550 - 2563 [(induction~Ht).] 0.001 secs (0.u,0.s) Chars 2568 - 2569 [+] 0. secs (0.u,0.s) -Chars 2570 - 2585 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 2570 - 2585 [(inversion~Hinf).] 0. secs (0.u,0.s) Chars 2590 - 2591 [+] 0. secs (0.u,0.s) -Chars 2592 - 2614 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 2592 - 2614 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) Chars 2615 - 2627 [constructor.] 0. secs (0.u,0.s) -Chars 2628 - 2646 [eapply~CIH;~eauto.] 0.021 secs (0.019u,0.001s) +Chars 2628 - 2646 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 2651 - 2652 [+] 0. secs (0.u,0.s) -Chars 2653 - 2675 [inversion~Hinf;~subst.] 0.001 secs (0.001u,0.s) -Chars 2676 - 2701 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) +Chars 2653 - 2675 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) +Chars 2676 - 2701 [dependent~destruction~H2.] 0.029 secs (0.027u,0.002s) Chars 2708 - 2721 [econstructor.] 0. secs (0.u,0.s) -Chars 2722 - 2747 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 2722 - 2747 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) Chars 2748 - 2754 [eauto.] 0. secs (0.u,0.s) Chars 2759 - 2760 [+] 0. secs (0.u,0.s) Chars 2761 - 2773 [constructor.] 0. secs (0.u,0.s) Chars 2774 - 2779 [step.] 0. secs (0.u,0.s) -Chars 2780 - 2807 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 2808 - 2829 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 2836 - 2847 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2780 - 2807 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 2808 - 2829 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 2836 - 2847 [(apply~IHHt).] 0. secs (0.u,0.s) Chars 2848 - 2859 [exact~Hinf.] 0. secs (0.u,0.s) Chars 2864 - 2865 [+] 0. secs (0.u,0.s) -Chars 2866 - 2877 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 2878 - 2900 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 2907 - 2945 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 2952 - 2985 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 2986 - 3013 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 2866 - 2877 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2878 - 2900 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 2907 - 2945 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 2952 - 2985 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2986 - 3013 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 3014 - 3023 [exact~H0.] 0. secs (0.u,0.s) -Chars 3024 - 3028 [Qed.] 0.008 secs (0.007u,0.s) +Chars 3024 - 3028 [Qed.] 0.01 secs (0.01u,0.s) Chars 3030 - 3089 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) Chars 3090 - 3096 [Proof.] 0. secs (0.u,0.s) -Chars 3099 - 3119 [unfold~any_infinite.] 0. secs (0.u,0.s) +Chars 3099 - 3119 [(unfold~any_infinite).] 0. secs (0.u,0.s) Chars 3120 - 3138 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3141 - 3168 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 3169 - 3190 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 3191 - 3195 [cbn.] 0. secs (0.u,0.s) +Chars 3141 - 3168 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 3169 - 3190 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 3191 - 3195 [(cbn).] 0. secs (0.u,0.s) Chars 3198 - 3210 [constructor.] 0. secs (0.u,0.s) Chars 3211 - 3221 [exact~CIH.] 0. secs (0.u,0.s) Chars 3222 - 3226 [Qed.] 0. secs (0.u,0.s) @@ -114,212 +114,212 @@ Chars 3503 - 3553 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) Chars 3555 - 3647 [Definition~all_infinite_~{E}~{...] 0. secs (0.u,0.s) Chars 3649 - 3808 [Lemma~all_infiniteF_mono~{E}~{...] 0. secs (0.u,0.s) Chars 3809 - 3815 [Proof.] 0. secs (0.u,0.s) -Chars 3818 - 3849 [induction~IN;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 3818 - 3849 [(induction~IN;~eauto~with~itree).] 0. secs (0.u,0.s) Chars 3850 - 3854 [Qed.] 0. secs (0.u,0.s) Chars 3856 - 3931 [Lemma~all_infinite__mono~{E}~{...] 0. secs (0.u,0.s) Chars 3932 - 3938 [Proof.] 0. secs (0.u,0.s) -Chars 3941 - 3977 [repeat~red;~intros~sim~sim'~LE...] 0. secs (0.u,0.s) -Chars 3980 - 4006 [unfold~all_infinite_~in~*.] 0. secs (0.u,0.s) -Chars 4007 - 4040 [eapply~all_infiniteF_mono;~eauto.] 0. secs (0.u,0.s) +Chars 3941 - 3977 [(repeat~red;~intros~sim~sim'~L...] 0. secs (0.u,0.s) +Chars 3980 - 4006 [(unfold~all_infinite_~in~*).] 0. secs (0.u,0.s) +Chars 4007 - 4040 [(eapply~all_infiniteF_mono;~ea...] 0. secs (0.u,0.s) Chars 4041 - 4045 [Qed.] 0. secs (0.u,0.s) Chars 4047 - 4175 [Definition~all_infinite_mon~{E...] 0. secs (0.u,0.s) Chars 4177 - 4258 [Definition~all_infinite~{E}~{A...] 0. secs (0.u,0.s) Chars 4260 - 4303 [#[global]~Hint~Unfold~all_infi...] 0. secs (0.u,0.s) -Chars 4305 - 4592 [Inductive~may_converge~{E~:~Ty...] 0.001 secs (0.001u,0.s) +Chars 4305 - 4592 [Inductive~may_converge~{E~:~Ty...] 0.002 secs (0.002u,0.s) Chars 4593 - 4642 [#[global]~Hint~Constructors~ma...] 0. secs (0.u,0.s) Chars 4644 - 4751 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) Chars 4752 - 4758 [Proof.] 0. secs (0.u,0.s) -Chars 4761 - 4777 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 4778 - 4792 [split;~intros.] 0. secs (0.u,0.s) +Chars 4761 - 4777 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 4778 - 4792 [(split;~intros).] 0. secs (0.u,0.s) Chars 4795 - 4796 [-] 0. secs (0.u,0.s) -Chars 4797 - 4809 [induction~H.] 0. secs (0.u,0.s) +Chars 4797 - 4809 [(induction~H).] 0. secs (0.u,0.s) Chars 4814 - 4815 [+] 0. secs (0.u,0.s) -Chars 4816 - 4837 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) -Chars 4838 - 4852 [rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) +Chars 4816 - 4837 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) +Chars 4838 - 4852 [(rewrite~<-~Ht).] 0.001 secs (0.001u,0.s) Chars 4853 - 4858 [auto.] 0. secs (0.u,0.s) Chars 4863 - 4864 [+] 0. secs (0.u,0.s) -Chars 4865 - 4888 [eapply~conv_vis;~eauto.] 0.03 secs (0.029u,0.s) -Chars 4889 - 4902 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 4865 - 4888 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) +Chars 4889 - 4902 [(rewrite~<-~H).] 0.034 secs (0.034u,0.s) Chars 4909 - 4918 [symmetry.] 0. secs (0.u,0.s) Chars 4919 - 4924 [auto.] 0. secs (0.u,0.s) Chars 4927 - 4928 [-] 0. secs (0.u,0.s) -Chars 4929 - 4941 [induction~H.] 0. secs (0.u,0.s) +Chars 4929 - 4941 [(induction~H).] 0. secs (0.u,0.s) Chars 4946 - 4947 [+] 0. secs (0.u,0.s) -Chars 4948 - 4969 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) -Chars 4970 - 4981 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 4948 - 4969 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) +Chars 4970 - 4981 [(rewrite~Ht).] 0. secs (0.u,0.s) Chars 4982 - 4987 [auto.] 0. secs (0.u,0.s) Chars 4992 - 4993 [+] 0. secs (0.u,0.s) -Chars 4994 - 5017 [eapply~conv_vis;~eauto.] 0.001 secs (0.001u,0.s) -Chars 5018 - 5029 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 4994 - 5017 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5018 - 5029 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) Chars 5036 - 5042 [eauto.] 0. secs (0.u,0.s) Chars 5043 - 5047 [Qed.] 0.001 secs (0.001u,0.s) Chars 5049 - 5126 [Ltac~contra_void~:=~try~match~...] 0. secs (0.u,0.s) Chars 5128 - 5226 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) Chars 5227 - 5233 [Proof.] 0. secs (0.u,0.s) -Chars 5236 - 5252 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 5253 - 5272 [split;~intros~Hinf.] 0. secs (0.u,0.s) +Chars 5236 - 5252 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 5253 - 5272 [(split;~intros~Hinf).] 0. secs (0.u,0.s) Chars 5275 - 5276 [-] 0. secs (0.u,0.s) Chars 5277 - 5298 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 5299 - 5324 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) +Chars 5299 - 5324 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) Chars 5325 - 5343 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5348 - 5369 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 5348 - 5369 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) Chars 5370 - 5381 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 5382 - 5407 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 5408 - 5427 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 5432 - 5459 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 5460 - 5481 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 5486 - 5526 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 5531 - 5566 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 5567 - 5596 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 5601 - 5614 [induction~Ht.] 0. secs (0.u,0.s) +Chars 5382 - 5407 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 5408 - 5427 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 5432 - 5459 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 5460 - 5481 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 5486 - 5526 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 5531 - 5566 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 5567 - 5596 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 5601 - 5614 [(induction~Ht).] 0. secs (0.u,0.s) Chars 5619 - 5620 [+] 0. secs (0.u,0.s) -Chars 5621 - 5636 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 5621 - 5636 [(inversion~Hinf).] 0. secs (0.u,0.s) Chars 5641 - 5642 [+] 0. secs (0.u,0.s) -Chars 5643 - 5665 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 5643 - 5665 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) Chars 5666 - 5678 [constructor.] 0. secs (0.u,0.s) -Chars 5679 - 5697 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 5679 - 5697 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 5702 - 5703 [+] 0. secs (0.u,0.s) -Chars 5704 - 5726 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 5727 - 5752 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) +Chars 5704 - 5726 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) +Chars 5727 - 5752 [dependent~destruction~H2.] 0.002 secs (0.002u,0.s) Chars 5759 - 5772 [econstructor.] 0. secs (0.u,0.s) -Chars 5773 - 5782 [intros~b.] 0. secs (0.u,0.s) -Chars 5783 - 5808 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) -Chars 5809 - 5818 [apply~H0.] 0. secs (0.u,0.s) +Chars 5773 - 5782 [(intros~b).] 0. secs (0.u,0.s) +Chars 5783 - 5808 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 5809 - 5818 [(apply~H0).] 0. secs (0.u,0.s) Chars 5823 - 5824 [+] 0. secs (0.u,0.s) -Chars 5825 - 5836 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 5837 - 5859 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 5866 - 5904 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 5911 - 5944 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 5945 - 5972 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 5825 - 5836 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 5837 - 5859 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 5866 - 5904 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 5911 - 5944 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 5945 - 5972 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 5973 - 5982 [exact~H0.] 0. secs (0.u,0.s) Chars 5987 - 5988 [+] 0. secs (0.u,0.s) Chars 5989 - 6001 [constructor.] 0. secs (0.u,0.s) Chars 6002 - 6007 [step.] 0. secs (0.u,0.s) -Chars 6008 - 6035 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 6036 - 6057 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 6064 - 6075 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 6008 - 6035 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 6036 - 6057 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 6064 - 6075 [(apply~IHHt).] 0. secs (0.u,0.s) Chars 6076 - 6087 [exact~Hinf.] 0. secs (0.u,0.s) Chars 6090 - 6091 [-] 0. secs (0.u,0.s) Chars 6092 - 6113 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 6114 - 6139 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) +Chars 6114 - 6139 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) Chars 6140 - 6158 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6163 - 6184 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 6163 - 6184 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) Chars 6185 - 6196 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 6197 - 6222 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 6223 - 6242 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 6247 - 6274 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 6275 - 6296 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 6301 - 6341 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 6346 - 6381 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 6382 - 6411 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 6416 - 6429 [induction~Ht.] 0. secs (0.u,0.s) +Chars 6197 - 6222 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 6223 - 6242 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 6247 - 6274 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 6275 - 6296 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 6301 - 6341 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 6346 - 6381 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 6382 - 6411 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 6416 - 6429 [(induction~Ht).] 0. secs (0.u,0.s) Chars 6434 - 6435 [+] 0. secs (0.u,0.s) -Chars 6436 - 6451 [inversion~Hinf.] 0. secs (0.u,0.s) +Chars 6436 - 6451 [(inversion~Hinf).] 0. secs (0.u,0.s) Chars 6456 - 6457 [+] 0. secs (0.u,0.s) -Chars 6458 - 6480 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 6458 - 6480 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) Chars 6481 - 6493 [constructor.] 0. secs (0.u,0.s) -Chars 6494 - 6512 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6494 - 6512 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 6517 - 6518 [+] 0. secs (0.u,0.s) -Chars 6519 - 6541 [inversion~Hinf;~subst.] 0.003 secs (0.003u,0.s) -Chars 6542 - 6567 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) +Chars 6519 - 6541 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) +Chars 6542 - 6567 [dependent~destruction~H2.] 0.005 secs (0.005u,0.s) Chars 6574 - 6587 [econstructor.] 0. secs (0.u,0.s) -Chars 6588 - 6597 [intros~b.] 0. secs (0.u,0.s) -Chars 6598 - 6623 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) -Chars 6624 - 6633 [apply~H0.] 0. secs (0.u,0.s) +Chars 6588 - 6597 [(intros~b).] 0. secs (0.u,0.s) +Chars 6598 - 6623 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 6624 - 6633 [(apply~H0).] 0. secs (0.u,0.s) Chars 6638 - 6639 [+] 0. secs (0.u,0.s) Chars 6640 - 6652 [constructor.] 0. secs (0.u,0.s) Chars 6653 - 6658 [step.] 0. secs (0.u,0.s) -Chars 6659 - 6686 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 6687 - 6708 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 6715 - 6726 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 6659 - 6686 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 6687 - 6708 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 6715 - 6726 [(apply~IHHt).] 0. secs (0.u,0.s) Chars 6727 - 6738 [exact~Hinf.] 0. secs (0.u,0.s) Chars 6743 - 6744 [+] 0. secs (0.u,0.s) -Chars 6745 - 6756 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 6757 - 6779 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 6786 - 6824 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 6831 - 6864 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 6865 - 6892 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) +Chars 6745 - 6756 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 6757 - 6779 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 6786 - 6824 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 6831 - 6864 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 6865 - 6892 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 6893 - 6902 [exact~H0.] 0. secs (0.u,0.s) -Chars 6903 - 6907 [Qed.] 0.007 secs (0.007u,0.s) +Chars 6903 - 6907 [Qed.] 0.01 secs (0.009u,0.s) Chars 6909 - 7053 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) Chars 7054 - 7060 [Proof.] 0. secs (0.u,0.s) -Chars 7063 - 7074 [intros~E~A.] 0. secs (0.u,0.s) -Chars 7075 - 7095 [unfold~all_infinite.] 0. secs (0.u,0.s) +Chars 7063 - 7074 [(intros~E~A).] 0. secs (0.u,0.s) +Chars 7075 - 7095 [(unfold~all_infinite).] 0. secs (0.u,0.s) Chars 7096 - 7114 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 7115 - 7129 [intros~t~Hcon.] 0. secs (0.u,0.s) -Chars 7132 - 7159 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 7160 - 7181 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 7184 - 7268 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) +Chars 7115 - 7129 [(intros~t~Hcon).] 0. secs (0.u,0.s) +Chars 7132 - 7159 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 7160 - 7181 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 7184 - 7268 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) Chars 7271 - 7272 [-] 0. secs (0.u,0.s) Chars 7273 - 7281 [exfalso.] 0. secs (0.u,0.s) -Chars 7282 - 7297 [apply~(Hcon~r).] 0. secs (0.u,0.s) -Chars 7298 - 7309 [rewrite~Ht.] 0.003 secs (0.003u,0.s) +Chars 7282 - 7297 [(apply~(Hcon~r)).] 0. secs (0.u,0.s) +Chars 7298 - 7309 [(rewrite~Ht).] 0.003 secs (0.003u,0.s) Chars 7310 - 7322 [constructor.] 0. secs (0.u,0.s) Chars 7323 - 7335 [reflexivity.] 0. secs (0.u,0.s) Chars 7338 - 7339 [-] 0. secs (0.u,0.s) Chars 7340 - 7352 [constructor.] 0. secs (0.u,0.s) -Chars 7353 - 7363 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7368 - 7394 [setoid_rewrite~Ht~in~Hcon.] 0.003 secs (0.003u,0.s) -Chars 7395 - 7427 [setoid_rewrite~tau_eutt~in~Hcon.] 0.001 secs (0.u,0.s) +Chars 7353 - 7363 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7368 - 7394 [setoid_rewrite~Ht~in~Hcon.] 0.004 secs (0.004u,0.s) +Chars 7395 - 7427 [setoid_rewrite~tau_eutt~in~Hcon.] 0.001 secs (0.001u,0.s) Chars 7428 - 7433 [auto.] 0. secs (0.u,0.s) Chars 7436 - 7437 [-] 0. secs (0.u,0.s) Chars 7438 - 7450 [constructor.] 0. secs (0.u,0.s) -Chars 7451 - 7460 [intros~b.] 0. secs (0.u,0.s) -Chars 7461 - 7471 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7476 - 7493 [intros~a~Hcontra.] 0. secs (0.u,0.s) -Chars 7494 - 7520 [setoid_rewrite~Ht~in~Hcon.] 0.006 secs (0.006u,0.s) -Chars 7525 - 7540 [apply~(Hcon~a).] 0. secs (0.u,0.s) -Chars 7541 - 7581 [eapply~conv_vis;~try~reflexivi...] 0. secs (0.u,0.s) -Chars 7582 - 7586 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7451 - 7460 [(intros~b).] 0. secs (0.u,0.s) +Chars 7461 - 7471 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7476 - 7493 [(intros~a~Hcontra).] 0. secs (0.u,0.s) +Chars 7494 - 7520 [setoid_rewrite~Ht~in~Hcon.] 0.009 secs (0.009u,0.s) +Chars 7525 - 7540 [(apply~(Hcon~a)).] 0. secs (0.u,0.s) +Chars 7541 - 7581 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 7582 - 7586 [Qed.] 0.002 secs (0.002u,0.s) Chars 7588 - 7718 [Lemma~classic_converge~:~~~for...] 0. secs (0.u,0.s) Chars 7719 - 7725 [Proof.] 0. secs (0.u,0.s) -Chars 7728 - 7735 [intros.] 0. secs (0.u,0.s) -Chars 7736 - 7791 [destruct~(classic~(exists~a,~m...] 0. secs (0.u,0.s) +Chars 7728 - 7735 [(intros).] 0. secs (0.u,0.s) +Chars 7736 - 7791 [(destruct~(classic~(exists~a,~...] 0. secs (0.u,0.s) Chars 7794 - 7800 [right.] 0. secs (0.u,0.s) -Chars 7801 - 7836 [apply~not_converge_to_all_infi...] 0. secs (0.u,0.s) -Chars 7837 - 7854 [intros~a~Hcontra.] 0. secs (0.u,0.s) -Chars 7857 - 7865 [apply~H.] 0. secs (0.u,0.s) +Chars 7801 - 7836 [(apply~not_converge_to_all_inf...] 0. secs (0.u,0.s) +Chars 7837 - 7854 [(intros~a~Hcontra).] 0. secs (0.u,0.s) +Chars 7857 - 7865 [(apply~H).] 0. secs (0.u,0.s) Chars 7866 - 7875 [exists~a.] 0. secs (0.u,0.s) Chars 7876 - 7881 [auto.] 0. secs (0.u,0.s) Chars 7882 - 7886 [Qed.] 0. secs (0.u,0.s) Chars 7888 - 8025 [Lemma~all_infinite_not_converg...] 0. secs (0.u,0.s) Chars 8026 - 8032 [Proof.] 0. secs (0.u,0.s) -Chars 8035 - 8056 [intros~E~R~t~r~Hc~Hd.] 0. secs (0.u,0.s) -Chars 8057 - 8070 [induction~Hc.] 0. secs (0.u,0.s) +Chars 8035 - 8056 [(intros~E~R~t~r~Hc~Hd).] 0. secs (0.u,0.s) +Chars 8057 - 8070 [(induction~Hc).] 0. secs (0.u,0.s) Chars 8073 - 8074 [-] 0. secs (0.u,0.s) -Chars 8075 - 8091 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) -Chars 8092 - 8130 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 8135 - 8168 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) -Chars 8169 - 8196 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) -Chars 8201 - 8214 [inversion~Hd.] 0. secs (0.u,0.s) +Chars 8075 - 8091 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) +Chars 8092 - 8130 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 8135 - 8168 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 8169 - 8196 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) +Chars 8201 - 8214 [(inversion~Hd).] 0. secs (0.u,0.s) Chars 8217 - 8218 [-] 0. secs (0.u,0.s) -Chars 8219 - 8230 [apply~IHHc.] 0. secs (0.u,0.s) -Chars 8231 - 8247 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) -Chars 8252 - 8290 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 8295 - 8328 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) -Chars 8329 - 8356 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) -Chars 8361 - 8374 [inversion~Hd.] 0. secs (0.u,0.s) +Chars 8219 - 8230 [(apply~IHHc).] 0. secs (0.u,0.s) +Chars 8231 - 8247 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) +Chars 8252 - 8290 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 8295 - 8328 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 8329 - 8356 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) +Chars 8361 - 8374 [(inversion~Hd).] 0.001 secs (0.001u,0.s) Chars 8375 - 8388 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 8389 - 8395 [subst.] 0. secs (0.u,0.s) -Chars 8396 - 8405 [apply~H1.] 0. secs (0.u,0.s) -Chars 8406 - 8410 [Qed.] 0.002 secs (0.002u,0.s) +Chars 8396 - 8405 [(apply~H1).] 0. secs (0.u,0.s) +Chars 8406 - 8410 [Qed.] 0.004 secs (0.003u,0.s) Chars 8412 - 8508 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) Chars 8509 - 8515 [Proof.] 0. secs (0.u,0.s) -Chars 8518 - 8525 [intros.] 0. secs (0.u,0.s) -Chars 8526 - 8538 [inversion~H.] 0. secs (0.u,0.s) +Chars 8518 - 8525 [(intros).] 0. secs (0.u,0.s) +Chars 8526 - 8538 [(inversion~H).] 0. secs (0.u,0.s) Chars 8541 - 8542 [-] 0. secs (0.u,0.s) -Chars 8543 - 8568 [apply~eutt_inv_Ret~in~H0.] 0. secs (0.u,0.s) +Chars 8543 - 8568 [(apply~eutt_inv_Ret~in~H0).] 0. secs (0.u,0.s) Chars 8569 - 8574 [auto.] 0. secs (0.u,0.s) Chars 8577 - 8578 [-] 0. secs (0.u,0.s) -Chars 8579 - 8626 [apply~eqit_inv~in~H0;~cbn~in~H...] 0. secs (0.u,0.s) -Chars 8627 - 8631 [Qed.] 0. secs (0.u,0.s) +Chars 8579 - 8626 [(apply~eqit_inv~in~H0;~cbn~in~...] 0. secs (0.u,0.s) +Chars 8627 - 8631 [Qed.] 0.001 secs (0.001u,0.s) Chars 8706 - 8805 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) Chars 8848 - 8966 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) Chars 8967 - 8973 [Proof.] 0. secs (0.u,0.s) -Chars 8976 - 8993 [intros~H~HContra.] 0. secs (0.u,0.s) -Chars 8994 - 9015 [rewrite~HContra~in~H.] 0.001 secs (0.u,0.s) -Chars 9018 - 9055 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 9058 - 9090 [cbn[any_infinite_mon~body]~in~H.] 0. secs (0.u,0.s) -Chars 9091 - 9117 [unfold~any_infinite_~in~H.] 0. secs (0.u,0.s) -Chars 9120 - 9132 [inversion~H.] 0. secs (0.u,0.s) +Chars 8976 - 8993 [(intros~H~HContra).] 0. secs (0.u,0.s) +Chars 8994 - 9015 [(rewrite~HContra~in~H).] 0.001 secs (0.001u,0.s) +Chars 9018 - 9055 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 9058 - 9090 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 9091 - 9117 [(unfold~any_infinite_~in~H).] 0. secs (0.u,0.s) +Chars 9120 - 9132 [(inversion~H).] 0. secs (0.u,0.s) Chars 9133 - 9137 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Leaf.v.timing b/theories/Props/Leaf.v.timing index 8b31df57..dac53581 100644 --- a/theories/Props/Leaf.v.timing +++ b/theories/Props/Leaf.v.timing @@ -1,4 +1,4 @@ -Chars 57 - 260 [From~ITree~Require~Import~Basi...] 0.067 secs (0.057u,0.009s) +Chars 57 - 260 [From~ITree~Require~Import~Basi...] 0.094 secs (0.079u,0.013s) Chars 262 - 323 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) Chars 324 - 337 [Import~ITree.] 0. secs (0.u,0.s) Chars 338 - 360 [Import~ITreeNotations.] 0. secs (0.u,0.s) @@ -6,396 +6,396 @@ Chars 826 - 1118 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.002 secs (0.002u,0.s) Chars 1119 - 1160 [#[global]~Hint~Constructors~Le...] 0. secs (0.u,0.s) Chars 1162 - 1183 [Module~LeafNotations.] 0. secs (0.u,0.s) Chars 1186 - 1233 [Notation~"a~∈~t"~:=~(Leaf~a~t)...] 0. secs (0.u,0.s) -Chars 1234 - 1252 [End~LeafNotations.] 0.001 secs (0.001u,0.s) +Chars 1234 - 1252 [End~LeafNotations.] 0. secs (0.u,0.s) Chars 1254 - 1275 [Import~LeafNotations.] 0. secs (0.u,0.s) Chars 1304 - 1363 [Lemma~Leaf_Ret~:~forall~E~R~a,...] 0. secs (0.u,0.s) Chars 1364 - 1370 [Proof.] 0. secs (0.u,0.s) -Chars 1373 - 1407 [intros;~econstructor;~reflexiv...] 0. secs (0.u,0.s) +Chars 1373 - 1407 [(intros;~econstructor;~reflexi...] 0. secs (0.u,0.s) Chars 1408 - 1412 [Qed.] 0. secs (0.u,0.s) Chars 1414 - 1488 [Lemma~Leaf_Tau~:~forall~E~R~a~...] 0. secs (0.u,0.s) Chars 1489 - 1495 [Proof.] 0. secs (0.u,0.s) -Chars 1498 - 1542 [intros;~econstructor;~[~reflex...] 0. secs (0.u,0.s) +Chars 1498 - 1542 [(intros;~econstructor;~[~refle...] 0. secs (0.u,0.s) Chars 1543 - 1547 [Qed.] 0. secs (0.u,0.s) Chars 1549 - 1650 [Lemma~Leaf_Vis~:~~~forall~E~X~...] 0. secs (0.u,0.s) Chars 1651 - 1657 [Proof.] 0. secs (0.u,0.s) -Chars 1660 - 1711 [intros~*~IN;~econstructor~3;~[...] 0. secs (0.u,0.s) +Chars 1660 - 1711 [(intros~*~IN;~econstructor~3;~...] 0. secs (0.u,0.s) Chars 1712 - 1716 [Qed.] 0. secs (0.u,0.s) Chars 1742 - 1822 [Lemma~Leaf_Ret_inv~:~forall~E~...] 0. secs (0.u,0.s) Chars 1823 - 1829 [Proof.] 0. secs (0.u,0.s) -Chars 1832 - 1878 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) -Chars 1879 - 1883 [Qed.] 0. secs (0.u,0.s) +Chars 1832 - 1878 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) +Chars 1879 - 1883 [Qed.] 0.001 secs (0.001u,0.s) Chars 1885 - 1963 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) Chars 1964 - 1970 [Proof.] 0. secs (0.u,0.s) -Chars 1973 - 2019 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) -Chars 2020 - 2024 [Qed.] 0. secs (0.u,0.s) +Chars 1973 - 2019 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) +Chars 2020 - 2024 [Qed.] 0.001 secs (0.001u,0.s) Chars 2026 - 2135 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) Chars 2136 - 2142 [Proof.] 0. secs (0.u,0.s) -Chars 2145 - 2193 [intros~*~IN~*;~inv~IN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 2145 - 2193 [(intros~*~IN~*;~inv~IN;~cbn~in...] 0.003 secs (0.003u,0.s) Chars 2196 - 2208 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 2211 - 2326 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 2329 - 2335 [eauto.] 0.028 secs (0.028u,0.s) +Chars 2211 - 2326 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 2329 - 2335 [eauto.] 0. secs (0.u,0.s) Chars 2336 - 2340 [Qed.] 0.001 secs (0.001u,0.s) Chars 2513 - 2650 [Lemma~Leaf_eutt_l~{E}~{A}~{B}~...] 0. secs (0.u,0.s) Chars 2651 - 2657 [Proof.] 0. secs (0.u,0.s) -Chars 2660 - 2691 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) -Chars 2694 - 2722 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) +Chars 2660 - 2691 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) +Chars 2694 - 2722 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) Chars 2726 - 2727 [-] 0. secs (0.u,0.s) Chars 2728 - 2739 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 2745 - 2772 [rewrite~H~in~EQ;~clear~H~t.] 0. secs (0.u,0.s) -Chars 2777 - 2809 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) -Chars 2814 - 2855 [hinduction~EQ~before~R;~intros...] 0.004 secs (0.004u,0.s) +Chars 2745 - 2772 [(rewrite~H~in~EQ;~clear~H~t).] 0. secs (0.u,0.s) +Chars 2777 - 2809 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) +Chars 2814 - 2855 [(hinduction~EQ~before~R;~intro...] 0.042 secs (0.041u,0.s) Chars 2860 - 2861 [+] 0. secs (0.u,0.s) -Chars 2862 - 2889 [inv~Heqi;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 2862 - 2889 [(inv~Heqi;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 2894 - 2895 [+] 0. secs (0.u,0.s) -Chars 2896 - 2946 [edestruct~IHEQ~as~(b,~(IN,~HR)...] 0. secs (0.u,0.s) +Chars 2896 - 2946 [(edestruct~IHEQ~as~(b,~(IN,~HR...] 0.001 secs (0.001u,0.s) Chars 2949 - 2950 [-] 0. secs (0.u,0.s) -Chars 2951 - 2990 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 2995 - 3028 [remember~(TauF~u);~genobs~u2~ou2.] 0. secs (0.u,0.s) -Chars 3033 - 3084 [hinduction~EQ~before~R;~intros...] 0.02 secs (0.018u,0.002s) +Chars 2951 - 2990 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 2995 - 3028 [(remember~(TauF~u);~genobs~u2~...] 0. secs (0.u,0.s) +Chars 3033 - 3084 [(hinduction~EQ~before~R;~intro...] 0.027 secs (0.024u,0.002s) Chars 3089 - 3090 [+] 0. secs (0.u,0.s) -Chars 3091 - 3158 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) +Chars 3091 - 3158 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.002 secs (0.001u,0.s) Chars 3163 - 3164 [+] 0. secs (0.u,0.s) -Chars 3165 - 3178 [eapply~IHFIN.] 0. secs (0.u,0.s) -Chars 3179 - 3188 [now~step.] 0.001 secs (0.001u,0.s) +Chars 3165 - 3178 [(eapply~IHFIN).] 0. secs (0.u,0.s) +Chars 3179 - 3188 [now~step.] 0.002 secs (0.001u,0.s) Chars 3194 - 3195 [+] 0. secs (0.u,0.s) -Chars 3196 - 3262 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.001 secs (0.001u,0.s) +Chars 3196 - 3262 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) Chars 3265 - 3266 [-] 0. secs (0.u,0.s) -Chars 3267 - 3306 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 3311 - 3346 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) -Chars 3351 - 3400 [hinduction~EQ~before~R;~intros...] 0.001 secs (0.001u,0.s) +Chars 3267 - 3306 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0.001 secs (0.u,0.s) +Chars 3311 - 3346 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) +Chars 3351 - 3400 [(hinduction~EQ~before~R;~intro...] 0.002 secs (0.001u,0.s) Chars 3405 - 3406 [+] 0. secs (0.u,0.s) Chars 3407 - 3426 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 3433 - 3551 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) -Chars 3558 - 3565 [intros.] 0. secs (0.u,0.s) -Chars 3566 - 3630 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) +Chars 3433 - 3551 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) +Chars 3558 - 3565 [(intros).] 0. secs (0.u,0.s) +Chars 3566 - 3630 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.003 secs (0.002u,0.s) Chars 3635 - 3636 [+] 0. secs (0.u,0.s) -Chars 3637 - 3704 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.002 secs (0.001u,0.s) -Chars 3705 - 3709 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3637 - 3704 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) +Chars 3705 - 3709 [Qed.] 0.013 secs (0.011u,0.002s) Chars 3711 - 3848 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) Chars 3849 - 3855 [Proof.] 0. secs (0.u,0.s) -Chars 3858 - 3874 [intros~*~EQ~FIN.] 0. secs (0.u,0.s) -Chars 3877 - 3899 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) +Chars 3858 - 3874 [(intros~*~EQ~FIN).] 0. secs (0.u,0.s) +Chars 3877 - 3899 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) Chars 3902 - 3916 [revert~EQ~FIN.] 0. secs (0.u,0.s) -Chars 3919 - 3938 [apply~@Leaf_eutt_l.] 0. secs (0.u,0.s) +Chars 3919 - 3938 [(apply~@Leaf_eutt_l).] 0. secs (0.u,0.s) Chars 3939 - 3943 [Qed.] 0. secs (0.u,0.s) Chars 3945 - 4027 [#[global]~Instance~Leaf_eutt~~...] 0. secs (0.u,0.s) Chars 4028 - 4034 [Proof.] 0. secs (0.u,0.s) -Chars 4037 - 4083 [apply~proper_sym_impl_iff_2;~[...] 0. secs (0.u,0.s) -Chars 4086 - 4118 [unfold~Proper,~respectful,~impl.] 0. secs (0.u,0.s) -Chars 4119 - 4133 [intros;~subst.] 0. secs (0.u,0.s) -Chars 4136 - 4205 [edestruct~@Leaf_eutt_l~as~[?~[...] 0. secs (0.u,0.s) +Chars 4037 - 4083 [(apply~proper_sym_impl_iff_2;~...] 0. secs (0.u,0.s) +Chars 4086 - 4118 [(unfold~Proper,~respectful,~im...] 0. secs (0.u,0.s) +Chars 4119 - 4133 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 4136 - 4205 [(edestruct~@Leaf_eutt_l~as~[?~...] 0. secs (0.u,0.s) Chars 4206 - 4210 [Qed.] 0. secs (0.u,0.s) Chars 4268 - 4389 [Lemma~Leaf_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) Chars 4390 - 4396 [Proof.] 0. secs (0.u,0.s) -Chars 4399 - 4431 [intros~*~INt~INk;~induction~INt.] 0. secs (0.u,0.s) +Chars 4399 - 4431 [(intros~*~INt~INk;~induction~I...] 0. secs (0.u,0.s) Chars 4434 - 4435 [-] 0. secs (0.u,0.s) -Chars 4436 - 4479 [rewrite~(itree_eta~t),~H,~bind...] 0.004 secs (0.004u,0.s) +Chars 4436 - 4479 [(rewrite~(itree_eta~t),~H,~bin...] 0.006 secs (0.006u,0.s) Chars 4482 - 4483 [-] 0. secs (0.u,0.s) -Chars 4484 - 4525 [rewrite~(itree_eta~t),~H,~tau_...] 0.004 secs (0.004u,0.s) +Chars 4484 - 4525 [(rewrite~(itree_eta~t),~H,~tau...] 0.006 secs (0.006u,0.s) Chars 4528 - 4529 [-] 0. secs (0.u,0.s) -Chars 4530 - 4565 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) -Chars 4570 - 4598 [apply~Leaf_Vis~with~x;~auto.] 0. secs (0.u,0.s) +Chars 4530 - 4565 [(rewrite~(itree_eta~t),~H,~bin...] 0.005 secs (0.005u,0.s) +Chars 4570 - 4598 [(apply~Leaf_Vis~with~x;~auto).] 0. secs (0.u,0.s) Chars 4599 - 4603 [Qed.] 0.002 secs (0.002u,0.s) Chars 4605 - 4736 [Lemma~Leaf_bind_inv~:~~~forall...] 0. secs (0.u,0.s) Chars 4737 - 4743 [Proof.] 0. secs (0.u,0.s) -Chars 4746 - 4793 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) +Chars 4746 - 4793 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) Chars 4796 - 4812 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 4815 - 4864 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) +Chars 4815 - 4864 [(induction~FIN;~intros~t'~k'~-...] 0. secs (0.u,0.s) Chars 4867 - 4868 [-] 0. secs (0.u,0.s) -Chars 4869 - 4899 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 4904 - 4943 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 4948 - 4974 [exists~r;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4869 - 4899 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 4904 - 4943 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 4948 - 4974 [(exists~r;~auto~with~itree).] 0. secs (0.u,0.s) Chars 4977 - 4978 [-] 0. secs (0.u,0.s) -Chars 4979 - 5009 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 5014 - 5086 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) -Chars 5091 - 5128 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) -Chars 5133 - 5203 [edestruct~IHFIN~as~(?,~(?,~?))...] 0. secs (0.u,0.s) +Chars 4979 - 5009 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 5014 - 5086 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 5091 - 5128 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) +Chars 5133 - 5203 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) Chars 5206 - 5207 [-] 0. secs (0.u,0.s) -Chars 5208 - 5238 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 5243 - 5315 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) +Chars 5208 - 5238 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 5243 - 5315 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) Chars 5320 - 5339 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 5344 - 5459 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 5464 - 5471 [intros.] 0. secs (0.u,0.s) -Chars 5476 - 5552 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) +Chars 5344 - 5459 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 5464 - 5471 [(intros).] 0. secs (0.u,0.s) +Chars 5476 - 5552 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) Chars 5553 - 5557 [Qed.] 0.003 secs (0.003u,0.s) Chars 5761 - 6215 [Lemma~eqit_clo_bind_gen~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 6216 - 6222 [Proof.] 0. secs (0.u,0.s) -Chars 6225 - 6249 [intros~E~R1~R2~RR~U1~U2.] 0. secs (0.u,0.s) -Chars 6252 - 6282 [intros~UU~b1~b2~c~t1~t2~k1~k2.] 0. secs (0.u,0.s) +Chars 6225 - 6249 [(intros~E~R1~R2~RR~U1~U2).] 0. secs (0.u,0.s) +Chars 6252 - 6282 [(intros~UU~b1~b2~c~t1~t2~k1~k2).] 0. secs (0.u,0.s) Chars 6285 - 6307 [revert~UU~t1~t2~k1~k2.] 0. secs (0.u,0.s) -Chars 6310 - 6326 [tower~induction.] 0.005 secs (0.004u,0.s) +Chars 6310 - 6326 [tower~induction.] 0.005 secs (0.005u,0.s) Chars 6329 - 6330 [{] 0. secs (0.u,0.s) -Chars 6331 - 6338 [intros.] 0. secs (0.u,0.s) -Chars 6339 - 6359 [unfold~Datatypes.id.] 0. secs (0.u,0.s) -Chars 6360 - 6375 [apply~H0;~auto.] 0.001 secs (0.001u,0.s) +Chars 6331 - 6338 [(intros).] 0. secs (0.u,0.s) +Chars 6339 - 6359 [(unfold~Datatypes.id).] 0. secs (0.u,0.s) +Chars 6360 - 6375 [(apply~H0;~auto).] 0.002 secs (0.002u,0.s) Chars 6376 - 6377 [}] 0. secs (0.u,0.s) -Chars 6380 - 6392 [intros~x~IH.] 0. secs (0.u,0.s) -Chars 6395 - 6426 [intros~UU~t1~t2~k1~k2~EQT~EQKL.] 0. secs (0.u,0.s) -Chars 6429 - 6454 [cbn[eqit_mon~body]~in~*.] 0. secs (0.u,0.s) -Chars 6457 - 6475 [unfold~eqit_~in~*.] 0. secs (0.u,0.s) -Chars 6478 - 6492 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 6495 - 6509 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 6512 - 6545 [hinduction~EQT~before~RR;~intros.] 0.002 secs (0.002u,0.s) -Chars 6548 - 6585 [1-3:~rewrite~2!observe_bind;~s...] 0.014 secs (0.014u,0.s) +Chars 6380 - 6392 [(intros~x~IH).] 0. secs (0.u,0.s) +Chars 6395 - 6426 [(intros~UU~t1~t2~k1~k2~EQT~EQKL).] 0. secs (0.u,0.s) +Chars 6429 - 6454 [(cbn[eqit_mon~body]~in~*).] 0. secs (0.u,0.s) +Chars 6457 - 6475 [(unfold~eqit_~in~*).] 0. secs (0.u,0.s) +Chars 6478 - 6492 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 6495 - 6509 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 6512 - 6545 [(hinduction~EQT~before~RR;~int...] 0.003 secs (0.003u,0.s) +Chars 6548 - 6585 [1-3:~(rewrite~2!observe_bind;~...] 0.021 secs (0.021u,0.s) Chars 6589 - 6590 [+] 0. secs (0.u,0.s) -Chars 6605 - 6616 [apply~EQKL.] 0. secs (0.u,0.s) +Chars 6605 - 6616 [(apply~EQKL).] 0. secs (0.u,0.s) Chars 6622 - 6623 [*] 0. secs (0.u,0.s) -Chars 6624 - 6644 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) +Chars 6624 - 6644 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) Chars 6649 - 6650 [*] 0. secs (0.u,0.s) -Chars 6651 - 6671 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) +Chars 6651 - 6671 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) Chars 6676 - 6677 [*] 0. secs (0.u,0.s) Chars 6678 - 6688 [exact~REL.] 0. secs (0.u,0.s) Chars 6691 - 6692 [+] 0. secs (0.u,0.s) Chars 6707 - 6712 [taus.] 0. secs (0.u,0.s) -Chars 6718 - 6728 [eapply~IH.] 0. secs (0.u,0.s) +Chars 6718 - 6728 [(eapply~IH).] 0. secs (0.u,0.s) Chars 6733 - 6734 [*] 0. secs (0.u,0.s) Chars 6735 - 6745 [exact~REL.] 0. secs (0.u,0.s) Chars 6750 - 6751 [*] 0. secs (0.u,0.s) -Chars 6752 - 6776 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) -Chars 6783 - 6788 [step.] 0.001 secs (0.001u,0.s) -Chars 6789 - 6800 [apply~EQKL.] 0. secs (0.u,0.s) +Chars 6752 - 6776 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) +Chars 6783 - 6788 [step.] 0.003 secs (0.003u,0.s) +Chars 6789 - 6800 [(apply~EQKL).] 0. secs (0.u,0.s) Chars 6807 - 6809 [--] 0. secs (0.u,0.s) -Chars 6810 - 6832 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) +Chars 6810 - 6832 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) Chars 6839 - 6841 [--] 0. secs (0.u,0.s) -Chars 6842 - 6864 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) +Chars 6842 - 6864 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) Chars 6871 - 6873 [--] 0. secs (0.u,0.s) Chars 6874 - 6883 [exact~HU.] 0. secs (0.u,0.s) Chars 6886 - 6887 [+] 0. secs (0.u,0.s) Chars 6902 - 6914 [constructor.] 0. secs (0.u,0.s) Chars 6915 - 6923 [intro~v.] 0. secs (0.u,0.s) -Chars 6928 - 6938 [eapply~IH.] 0. secs (0.u,0.s) +Chars 6928 - 6938 [(eapply~IH).] 0. secs (0.u,0.s) Chars 6943 - 6944 [*] 0. secs (0.u,0.s) -Chars 6945 - 6955 [apply~REL.] 0. secs (0.u,0.s) +Chars 6945 - 6955 [(apply~REL).] 0. secs (0.u,0.s) Chars 6960 - 6961 [*] 0. secs (0.u,0.s) -Chars 6962 - 6986 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) -Chars 6993 - 6998 [step.] 0.001 secs (0.001u,0.s) -Chars 6999 - 7010 [apply~EQKL.] 0. secs (0.u,0.s) +Chars 6962 - 6986 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) +Chars 6993 - 6998 [step.] 0.002 secs (0.002u,0.s) +Chars 6999 - 7010 [(apply~EQKL).] 0. secs (0.u,0.s) Chars 7017 - 7019 [--] 0. secs (0.u,0.s) -Chars 7020 - 7042 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) +Chars 7020 - 7042 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) Chars 7049 - 7051 [--] 0. secs (0.u,0.s) -Chars 7052 - 7074 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) +Chars 7052 - 7074 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) Chars 7081 - 7083 [--] 0. secs (0.u,0.s) Chars 7084 - 7093 [exact~HU.] 0. secs (0.u,0.s) Chars 7096 - 7097 [+] 0. secs (0.u,0.s) -Chars 7113 - 7134 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 7135 - 7143 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 7113 - 7134 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 7135 - 7143 [simpobs.] 0.005 secs (0.005u,0.s) Chars 7148 - 7153 [taul.] 0. secs (0.u,0.s) -Chars 7158 - 7189 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 7158 - 7189 [(eapply~IHEQT;~eauto~with~itree).] 0.003 secs (0.003u,0.s) Chars 7192 - 7193 [+] 0. secs (0.u,0.s) -Chars 7209 - 7242 [setoid_rewrite~observe_bind~at~2.] 0.018 secs (0.018u,0.s) -Chars 7243 - 7251 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 7209 - 7242 [setoid_rewrite~observe_bind~at~2.] 0.023 secs (0.023u,0.s) +Chars 7243 - 7251 [simpobs.] 0.004 secs (0.004u,0.s) Chars 7256 - 7261 [taur.] 0. secs (0.u,0.s) -Chars 7266 - 7297 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 7298 - 7302 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7266 - 7297 [(eapply~IHEQT;~eauto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 7298 - 7302 [Qed.] 0.013 secs (0.013u,0.s) Chars 7352 - 7740 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) Chars 7741 - 7747 [Proof.] 0. secs (0.u,0.s) -Chars 7750 - 7759 [intros~*.] 0. secs (0.u,0.s) -Chars 7760 - 7772 [unfold~eutt.] 0. secs (0.u,0.s) -Chars 7773 - 7797 [apply~eqit_clo_bind_gen.] 0. secs (0.u,0.s) -Chars 7798 - 7802 [Qed.] 0. secs (0.u,0.s) +Chars 7750 - 7759 [(intros~*).] 0. secs (0.u,0.s) +Chars 7760 - 7772 [(unfold~eutt).] 0. secs (0.u,0.s) +Chars 7773 - 7797 [(apply~eqit_clo_bind_gen).] 0.001 secs (0.001u,0.s) +Chars 7798 - 7802 [Qed.] 0.001 secs (0.001u,0.s) Chars 7862 - 8069 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) Chars 8070 - 8076 [Proof.] 0. secs (0.u,0.s) -Chars 8079 - 8113 [intros;~eapply~eutt_bind_eutt_...] 0. secs (0.u,0.s) +Chars 8079 - 8113 [(intros;~eapply~eutt_bind_eutt...] 0. secs (0.u,0.s) Chars 8116 - 8128 [reflexivity.] 0. secs (0.u,0.s) -Chars 8131 - 8155 [intros~*~IN~_~<-;~eauto.] 0. secs (0.u,0.s) +Chars 8131 - 8155 [(intros~*~IN~_~<-;~eauto).] 0. secs (0.u,0.s) Chars 8156 - 8160 [Qed.] 0. secs (0.u,0.s) Chars 8162 - 8389 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) Chars 8390 - 8396 [Proof.] 0. secs (0.u,0.s) -Chars 8399 - 8418 [intros~EQIT~r~HRET.] 0. secs (0.u,0.s) +Chars 8399 - 8418 [(intros~EQIT~r~HRET).] 0. secs (0.u,0.s) Chars 8421 - 8439 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) -Chars 8442 - 8503 [induction~HRET;~intros;~rewrit...] 0.1 secs (0.1u,0.s) +Chars 8442 - 8503 [(induction~HRET;~intros;~rewri...] 0.14 secs (0.139u,0.s) Chars 8506 - 8507 [-] 0. secs (0.u,0.s) Chars 8508 - 8519 [assumption.] 0. secs (0.u,0.s) Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8551 [rewrite~2!tau_eutt~in~EQIT.] 0.031 secs (0.031u,0.s) +Chars 8524 - 8551 [(rewrite~2!tau_eutt~in~EQIT).] 0.042 secs (0.042u,0.s) Chars 8552 - 8557 [auto.] 0. secs (0.u,0.s) Chars 8560 - 8561 [-] 0. secs (0.u,0.s) -Chars 8562 - 8575 [apply~IHHRET.] 0. secs (0.u,0.s) -Chars 8576 - 8611 [eapply~eqit_inv_Vis~in~EQIT;~e...] 0. secs (0.u,0.s) -Chars 8612 - 8616 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8562 - 8575 [(apply~IHHRET).] 0. secs (0.u,0.s) +Chars 8576 - 8611 [(eapply~eqit_inv_Vis~in~EQIT;~...] 0. secs (0.u,0.s) +Chars 8612 - 8616 [Qed.] 0.004 secs (0.004u,0.s) Chars 8655 - 8734 [Lemma~has_post_Leaf~{E}~{R}~(t...] 0. secs (0.u,0.s) Chars 8735 - 8741 [Proof.] 0. secs (0.u,0.s) -Chars 8744 - 8764 [intros~Hcond~Himage.] 0. secs (0.u,0.s) -Chars 8767 - 8805 [rewrite~has_post_post_strong~i...] 0. secs (0.u,0.s) -Chars 8808 - 8850 [destruct~(Leaf_eutt_l~t~t~r~Hc...] 0. secs (0.u,0.s) -Chars 8853 - 8874 [intuition;~now~subst.] 0. secs (0.u,0.s) +Chars 8744 - 8764 [(intros~Hcond~Himage).] 0. secs (0.u,0.s) +Chars 8767 - 8805 [(rewrite~has_post_post_strong~...] 0. secs (0.u,0.s) +Chars 8808 - 8850 [(destruct~(Leaf_eutt_l~t~t~r~H...] 0. secs (0.u,0.s) +Chars 8853 - 8874 [(intuition;~now~subst).] 0. secs (0.u,0.s) Chars 8875 - 8879 [Qed.] 0. secs (0.u,0.s) -Chars 8881 - 9018 [Lemma~has_post_of_Leaf~{E}~{R}...] 0. secs (0.u,0.s) +Chars 8881 - 9018 [Lemma~has_post_of_Leaf~{E}~{R}...] 0.002 secs (0.002u,0.s) Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) -Chars 9028 - 9047 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 9048 - 9063 [intros~t~Hpost.] 0. secs (0.u,0.s) -Chars 9066 - 9104 [setoid_rewrite~(itree_eta~t)~i...] 0.002 secs (0.002u,0.s) -Chars 9107 - 9119 [desobs~t~Ht.] 0. secs (0.u,0.s) +Chars 9028 - 9047 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 9048 - 9063 [(intros~t~Hpost).] 0. secs (0.u,0.s) +Chars 9066 - 9104 [setoid_rewrite~(itree_eta~t)~i...] 0.003 secs (0.003u,0.s) +Chars 9107 - 9119 [(desobs~t~Ht).] 0. secs (0.u,0.s) Chars 9122 - 9123 [-] 0. secs (0.u,0.s) Chars 9124 - 9136 [constructor.] 0. secs (0.u,0.s) -Chars 9137 - 9159 [apply~Hpost,~Leaf_Ret.] 0. secs (0.u,0.s) +Chars 9137 - 9159 [(apply~Hpost,~Leaf_Ret).] 0. secs (0.u,0.s) Chars 9162 - 9163 [-] 0. secs (0.u,0.s) Chars 9164 - 9176 [constructor.] 0. secs (0.u,0.s) -Chars 9177 - 9187 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9188 - 9195 [intros.] 0. secs (0.u,0.s) -Chars 9196 - 9208 [apply~Hpost.] 0. secs (0.u,0.s) -Chars 9209 - 9224 [apply~Leaf_Tau.] 0. secs (0.u,0.s) +Chars 9177 - 9187 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9188 - 9195 [(intros).] 0. secs (0.u,0.s) +Chars 9196 - 9208 [(apply~Hpost).] 0. secs (0.u,0.s) +Chars 9209 - 9224 [(apply~Leaf_Tau).] 0. secs (0.u,0.s) Chars 9225 - 9233 [exact~H.] 0. secs (0.u,0.s) Chars 9236 - 9237 [-] 0. secs (0.u,0.s) Chars 9238 - 9250 [constructor.] 0. secs (0.u,0.s) -Chars 9251 - 9258 [intros.] 0. secs (0.u,0.s) -Chars 9259 - 9269 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9270 - 9277 [intros.] 0. secs (0.u,0.s) -Chars 9278 - 9291 [eapply~Hpost.] 0. secs (0.u,0.s) -Chars 9292 - 9308 [eapply~Leaf_Vis.] 0. secs (0.u,0.s) +Chars 9251 - 9258 [(intros).] 0. secs (0.u,0.s) +Chars 9259 - 9269 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9270 - 9277 [(intros).] 0. secs (0.u,0.s) +Chars 9278 - 9291 [(eapply~Hpost).] 0. secs (0.u,0.s) +Chars 9292 - 9308 [(eapply~Leaf_Vis).] 0. secs (0.u,0.s) Chars 9309 - 9317 [exact~H.] 0. secs (0.u,0.s) -Chars 9318 - 9322 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9318 - 9322 [Qed.] 0.004 secs (0.004u,0.s) Chars 9324 - 9420 [Lemma~has_post_Leaf_equiv~{E}~...] 0. secs (0.u,0.s) Chars 9421 - 9427 [Proof.] 0. secs (0.u,0.s) Chars 9430 - 9436 [split.] 0. secs (0.u,0.s) Chars 9439 - 9440 [-] 0. secs (0.u,0.s) -Chars 9441 - 9477 [intros;~eapply~has_post_Leaf;~...] 0. secs (0.u,0.s) +Chars 9441 - 9477 [(intros;~eapply~has_post_Leaf;...] 0. secs (0.u,0.s) Chars 9480 - 9481 [-] 0. secs (0.u,0.s) Chars 9482 - 9494 [intro~Hpost.] 0. secs (0.u,0.s) Chars 9495 - 9530 [exact~(has_post_of_Leaf~Q~t~Hp...] 0. secs (0.u,0.s) Chars 9531 - 9535 [Qed.] 0. secs (0.u,0.s) Chars 9720 - 9956 [Lemma~Leaf_iter_inv~{E}~{R}~{I...] 0. secs (0.u,0.s) Chars 9957 - 9963 [Proof.] 0. secs (0.u,0.s) -Chars 9966 - 9987 [intros~*~Hinv~Hentry.] 0. secs (0.u,0.s) -Chars 9990 - 10021 [rewrite~<-~has_post_Leaf_equiv.] 0. secs (0.u,0.s) -Chars 10024 - 10059 [eapply~has_post_iter_strong;~e...] 0. secs (0.u,0.s) -Chars 10062 - 10097 [setoid_rewrite~has_post_Leaf_e...] 0.001 secs (0.001u,0.s) +Chars 9966 - 9987 [(intros~*~Hinv~Hentry).] 0. secs (0.u,0.s) +Chars 9990 - 10021 [(rewrite~<-~has_post_Leaf_equiv).] 0. secs (0.u,0.s) +Chars 10024 - 10059 [(eapply~has_post_iter_strong;~...] 0. secs (0.u,0.s) +Chars 10062 - 10097 [setoid_rewrite~has_post_Leaf_e...] 0.002 secs (0.002u,0.s) Chars 10098 - 10104 [eauto.] 0. secs (0.u,0.s) Chars 10105 - 10109 [Qed.] 0. secs (0.u,0.s) -Chars 10111 - 10394 [Lemma~Leaf_interp_iter_inv~{E}...] 0. secs (0.u,0.s) +Chars 10111 - 10394 [Lemma~Leaf_interp_iter_inv~{E}...] 0.001 secs (0.001u,0.s) Chars 10395 - 10401 [Proof.] 0. secs (0.u,0.s) -Chars 10404 - 10431 [intros~*~Hbody~Hentry~r~Hr.] 0. secs (0.u,0.s) -Chars 10434 - 10501 [apply~(Leaf_iter_inv~(fun~i~=>...] 0. secs (0.u,0.s) -Chars 10504 - 10567 [rewrite~(interp_iter'~_~_~(fun...] 0.002 secs (0.002u,0.s) -Chars 10570 - 10579 [apply~Hr.] 0. secs (0.u,0.s) +Chars 10404 - 10431 [(intros~*~Hbody~Hentry~r~Hr).] 0. secs (0.u,0.s) +Chars 10434 - 10501 [(apply~(Leaf_iter_inv~(fun~i~=...] 0. secs (0.u,0.s) +Chars 10504 - 10567 [(rewrite~(interp_iter'~_~_~(fu...] 0.003 secs (0.003u,0.s) +Chars 10570 - 10579 [(apply~Hr).] 0. secs (0.u,0.s) Chars 10580 - 10592 [reflexivity.] 0. secs (0.u,0.s) -Chars 10593 - 10597 [Qed.] 0. secs (0.u,0.s) +Chars 10593 - 10597 [Qed.] 0.001 secs (0.001u,0.s) Chars 10734 - 11166 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) Chars 11167 - 11173 [Proof.] 0. secs (0.u,0.s) -Chars 11176 - 11214 [setoid_rewrite~~<-~has_post_Le...] 0.007 secs (0.007u,0.s) -Chars 11217 - 11253 [setoid_rewrite~has_post_post_s...] 0.012 secs (0.011u,0.s) -Chars 11256 - 11286 [intros~*~Hinv~Hentrys~Hentryi.] 0. secs (0.u,0.s) -Chars 11289 - 11337 [set~(eRI~:=~fun~i1~i2~:~I~=>~i...] 0. secs (0.u,0.s) -Chars 11340 - 11388 [set~(eRR~:=~fun~r1~r2~:~R~=>~r...] 0. secs (0.u,0.s) -Chars 11391 - 11439 [set~(eRS~:=~fun~s1~s2~:~S~=>~s...] 0. secs (0.u,0.s) -Chars 11443 - 11503 [set~(R1~:=~fun~x~y~:~S~*~R~=>~...] 0. secs (0.u,0.s) -Chars 11506 - 11582 [set~(R2~:=~fun~a~b~:~S~*~R~=>~...] 0. secs (0.u,0.s) -Chars 11585 - 11665 [assert~(HR1R2~:~eq_rel~R1~R2)~...] 0.05 secs (0.05u,0.s) -Chars 11668 - 11732 [unfold~has_post_strong;~fold~R...] 0. secs (0.u,0.s) -Chars 11736 - 11866 [unshelve~~~(eapply~(eutt_inter...] 0.002 secs (0.002u,0.s) -Chars 11869 - 11904 [intros~i1~?~s1~?~[<-~Hs1]~[<-~...] 0. secs (0.u,0.s) -Chars 11908 - 11988 [set~(R3~:=~fun~x~y~:~S~*~(I~+~...] 0. secs (0.u,0.s) -Chars 11991 - 12036 [set~(R4~:=~prod_rel~eRS~(sum_r...] 0. secs (0.u,0.s) -Chars 12039 - 12068 [assert~(HR3R4~:~eq_rel~R3~R4).] 0. secs (0.u,0.s) +Chars 11176 - 11214 [setoid_rewrite~~<-~has_post_Le...] 0.011 secs (0.011u,0.s) +Chars 11217 - 11253 [setoid_rewrite~has_post_post_s...] 0.012 secs (0.012u,0.s) +Chars 11256 - 11286 [(intros~*~Hinv~Hentrys~Hentryi).] 0. secs (0.u,0.s) +Chars 11289 - 11337 [(set~(eRI~:=~fun~i1~i2~:~I~=>~...] 0. secs (0.u,0.s) +Chars 11340 - 11388 [(set~(eRR~:=~fun~r1~r2~:~R~=>~...] 0. secs (0.u,0.s) +Chars 11391 - 11439 [(set~(eRS~:=~fun~s1~s2~:~S~=>~...] 0. secs (0.u,0.s) +Chars 11443 - 11503 [(set~(R1~:=~fun~x~y~:~S~*~R~=>...] 0. secs (0.u,0.s) +Chars 11506 - 11582 [(set~(R2~:=~fun~a~b~:~S~*~R~=>...] 0. secs (0.u,0.s) +Chars 11585 - 11665 [(assert~(HR1R2~:~eq_rel~R1~R2)...] 0.073 secs (0.072u,0.s) +Chars 11668 - 11732 [(unfold~has_post_strong;~fold~...] 0.001 secs (0.001u,0.s) +Chars 11736 - 11866 [(unshelve~~~(eapply~(eutt_inte...] 0.004 secs (0.004u,0.s) +Chars 11869 - 11904 [(intros~i1~?~s1~?~[<-~Hs1]~[<-...] 0. secs (0.u,0.s) +Chars 11908 - 11988 [(set~~~(R3~:=~fun~x~y~:~S~*~(I...] 0. secs (0.u,0.s) +Chars 11991 - 12036 [(set~(R4~:=~prod_rel~eRS~(sum_...] 0. secs (0.u,0.s) +Chars 12039 - 12068 [(assert~(HR3R4~:~eq_rel~R3~R4)).] 0. secs (0.u,0.s) Chars 12071 - 12072 [{] 0. secs (0.u,0.s) -Chars 12073 - 12112 [split;~intros~[?~[|~]]~[?~[|~]...] 0. secs (0.u,0.s) -Chars 12117 - 12162 [1-4:~intros~[[]];~dintuition;~...] 0.156 secs (0.155u,0.001s) -Chars 12167 - 12229 [all:~intros~[[[=->]~?]~HZ];~in...] 0.066 secs (0.065u,0.s) +Chars 12073 - 12112 [(split;~intros~[?~[|~]]~[?~[|~...] 0.001 secs (0.001u,0.s) +Chars 12117 - 12162 [1-4:~(intros~[[]];~dintuition;...] 0.23 secs (0.229u,0.001s) +Chars 12167 - 12229 [all:~(intros~[[[=->]~?]~HZ];~i...] 0.101 secs (0.1u,0.s) Chars 12230 - 12231 [}] 0. secs (0.u,0.s) -Chars 12235 - 12269 [rewrite~<-~(eutt_equiv~_~_~HR3...] 0. secs (0.u,0.s) +Chars 12235 - 12269 [(rewrite~<-~(eutt_equiv~_~_~HR...] 0.001 secs (0.001u,0.s) Chars 12272 - 12287 [now~apply~Hinv.] 0. secs (0.u,0.s) -Chars 12288 - 12292 [Qed.] 0.011 secs (0.011u,0.s) +Chars 12288 - 12292 [Qed.] 0.018 secs (0.017u,0.s) Chars 12492 - 12507 [Module~Subtree.] 0. secs (0.u,0.s) -Chars 12509 - 12768 [Inductive~subtree~{E}~{R}~:~it...] 0.001 secs (0.001u,0.s) +Chars 12509 - 12768 [Inductive~subtree~{E}~{R}~:~it...] 0.002 secs (0.002u,0.s) Chars 12770 - 12885 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) Chars 12886 - 12892 [Proof.] 0. secs (0.u,0.s) -Chars 12895 - 12923 [intros~t~t'~Ht~u~u'~Hu~Hsub.] 0. secs (0.u,0.s) -Chars 12926 - 12967 [revert~t~Ht~u~Hu;~induction~Hs...] 0. secs (0.u,0.s) +Chars 12895 - 12923 [(intros~t~t'~Ht~u~u'~Hu~Hsub).] 0. secs (0.u,0.s) +Chars 12926 - 12967 [(revert~t~Ht~u~Hu;~induction~H...] 0. secs (0.u,0.s) Chars 12970 - 12971 [-] 0. secs (0.u,0.s) -Chars 12972 - 12990 [apply~SubtreeRefl.] 0. secs (0.u,0.s) -Chars 12991 - 13010 [now~rewrite~Ht,~Hu.] 0.001 secs (0.001u,0.s) +Chars 12972 - 12990 [(apply~SubtreeRefl).] 0. secs (0.u,0.s) +Chars 12991 - 13010 [now~rewrite~Ht,~Hu.] 0.002 secs (0.002u,0.s) Chars 13013 - 13014 [-] 0. secs (0.u,0.s) -Chars 13015 - 13046 [apply~SubtreeTau,~IHHsub;~auto.] 0. secs (0.u,0.s) -Chars 13047 - 13066 [apply~eqit_Tau,~Ht.] 0. secs (0.u,0.s) +Chars 13015 - 13046 [(apply~SubtreeTau,~IHHsub;~auto).] 0. secs (0.u,0.s) +Chars 13047 - 13066 [(apply~eqit_Tau,~Ht).] 0. secs (0.u,0.s) Chars 13069 - 13070 [-] 0. secs (0.u,0.s) -Chars 13071 - 13089 [eapply~SubtreeVis.] 0. secs (0.u,0.s) -Chars 13090 - 13108 [now~rewrite~Ht,~H.] 0.003 secs (0.003u,0.s) -Chars 13109 - 13128 [apply~IHHsub;~auto.] 0. secs (0.u,0.s) +Chars 13071 - 13089 [(eapply~SubtreeVis).] 0. secs (0.u,0.s) +Chars 13090 - 13108 [now~rewrite~Ht,~H.] 0.005 secs (0.005u,0.s) +Chars 13109 - 13128 [(apply~IHHsub;~auto).] 0. secs (0.u,0.s) Chars 13129 - 13133 [Qed.] 0.001 secs (0.001u,0.s) Chars 13135 - 13217 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) Chars 13218 - 13224 [Proof.] 0. secs (0.u,0.s) -Chars 13227 - 13241 [intros~*~Hsub.] 0. secs (0.u,0.s) -Chars 13242 - 13265 [induction~Hsub;~intros.] 0. secs (0.u,0.s) +Chars 13227 - 13241 [(intros~*~Hsub).] 0. secs (0.u,0.s) +Chars 13242 - 13265 [(induction~Hsub;~intros).] 0. secs (0.u,0.s) Chars 13268 - 13269 [-] 0. secs (0.u,0.s) -Chars 13270 - 13277 [intros.] 0. secs (0.u,0.s) -Chars 13278 - 13297 [rewrite~<-~H;~auto.] 0.001 secs (0.001u,0.s) +Chars 13270 - 13277 [(intros).] 0. secs (0.u,0.s) +Chars 13278 - 13297 [(rewrite~<-~H;~auto).] 0.002 secs (0.002u,0.s) Chars 13300 - 13301 [-] 0. secs (0.u,0.s) -Chars 13302 - 13328 [apply~IHHsub,~Leaf_Tau,~H.] 0. secs (0.u,0.s) +Chars 13302 - 13328 [(apply~IHHsub,~Leaf_Tau,~H).] 0. secs (0.u,0.s) Chars 13331 - 13332 [-] 0. secs (0.u,0.s) -Chars 13333 - 13357 [eapply~IHHsub,~Leaf_Vis.] 0. secs (0.u,0.s) -Chars 13358 - 13381 [rewrite~H~in~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13333 - 13357 [(eapply~IHHsub,~Leaf_Vis).] 0. secs (0.u,0.s) +Chars 13358 - 13381 [(rewrite~H~in~H0;~eauto).] 0.001 secs (0.001u,0.s) Chars 13382 - 13386 [Qed.] 0. secs (0.u,0.s) Chars 13388 - 13524 [Lemma~Leaf_interp_subtree_inv~...] 0. secs (0.u,0.s) Chars 13525 - 13531 [Proof.] 0. secs (0.u,0.s) Chars 13534 - 13545 [revert~t~u.] 0. secs (0.u,0.s) -Chars 13546 - 13562 [unfold~has_post.] 0. secs (0.u,0.s) -Chars 13563 - 13596 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) -Chars 13599 - 13629 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) -Chars 13632 - 13654 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) -Chars 13657 - 13686 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) +Chars 13546 - 13562 [(unfold~has_post).] 0. secs (0.u,0.s) +Chars 13563 - 13596 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) +Chars 13599 - 13629 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.011u,0.s) +Chars 13632 - 13654 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) +Chars 13657 - 13686 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) Chars 13689 - 13690 [-] 0. secs (0.u,0.s) Chars 13691 - 13703 [constructor.] 0. secs (0.u,0.s) -Chars 13704 - 13732 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) -Chars 13733 - 13748 [apply~Leaf_Ret.] 0. secs (0.u,0.s) +Chars 13704 - 13732 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) +Chars 13733 - 13748 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) Chars 13751 - 13752 [-] 0. secs (0.u,0.s) Chars 13753 - 13765 [constructor.] 0. secs (0.u,0.s) -Chars 13766 - 13776 [apply~CIH.] 0. secs (0.u,0.s) -Chars 13777 - 13800 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) +Chars 13766 - 13776 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13777 - 13800 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) Chars 13803 - 13804 [-] 0. secs (0.u,0.s) Chars 13805 - 13812 [to_mon.] 0. secs (0.u,0.s) -Chars 13813 - 13836 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 13837 - 13849 [reflexivity.] 0. secs (0.u,0.s) -Chars 13854 - 13868 [intros~u~_~<-.] 0. secs (0.u,0.s) +Chars 13813 - 13836 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 13837 - 13849 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 13854 - 13868 [(intros~u~_~<-).] 0. secs (0.u,0.s) Chars 13873 - 13878 [taus.] 0. secs (0.u,0.s) -Chars 13879 - 13889 [apply~CIH.] 0. secs (0.u,0.s) -Chars 13890 - 13914 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) +Chars 13879 - 13889 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13890 - 13914 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) Chars 13915 - 13927 [reflexivity.] 0. secs (0.u,0.s) -Chars 13928 - 13932 [Qed.] 0.007 secs (0.007u,0.s) -Chars 13934 - 14113 [Lemma~Leaf_interp_state_subtre...] 0. secs (0.u,0.s) +Chars 13928 - 13932 [Qed.] 0.009 secs (0.009u,0.s) +Chars 13934 - 14113 [Lemma~Leaf_interp_state_subtre...] 0.001 secs (0.001u,0.s) Chars 14114 - 14120 [Proof.] 0. secs (0.u,0.s) Chars 14123 - 14136 [revert~t~u~s.] 0. secs (0.u,0.s) -Chars 14137 - 14153 [unfold~has_post.] 0. secs (0.u,0.s) -Chars 14154 - 14187 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) -Chars 14190 - 14220 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) -Chars 14223 - 14251 [rewrite~unfold_interp_state.] 0.011 secs (0.01u,0.s) -Chars 14254 - 14283 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) +Chars 14137 - 14153 [(unfold~has_post).] 0. secs (0.u,0.s) +Chars 14154 - 14187 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) +Chars 14190 - 14220 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.01u,0.s) +Chars 14223 - 14251 [(rewrite~unfold_interp_state).] 0.017 secs (0.017u,0.s) +Chars 14254 - 14283 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) Chars 14286 - 14287 [-] 0. secs (0.u,0.s) Chars 14288 - 14300 [constructor.] 0. secs (0.u,0.s) -Chars 14301 - 14329 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) -Chars 14330 - 14345 [apply~Leaf_Ret.] 0. secs (0.u,0.s) +Chars 14301 - 14329 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) +Chars 14330 - 14345 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) Chars 14348 - 14349 [-] 0. secs (0.u,0.s) Chars 14350 - 14362 [constructor.] 0. secs (0.u,0.s) -Chars 14363 - 14373 [apply~CIH.] 0. secs (0.u,0.s) -Chars 14374 - 14397 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) +Chars 14363 - 14373 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 14374 - 14397 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) Chars 14400 - 14401 [-] 0. secs (0.u,0.s) Chars 14402 - 14409 [to_mon.] 0. secs (0.u,0.s) -Chars 14410 - 14433 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 14434 - 14446 [reflexivity.] 0. secs (0.u,0.s) -Chars 14451 - 14476 [intros~[u1~u2]~_~<-;~cbn.] 0. secs (0.u,0.s) +Chars 14410 - 14433 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 14434 - 14446 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 14451 - 14476 [(intros~[u1~u2]~_~<-;~cbn).] 0.001 secs (0.001u,0.s) Chars 14481 - 14486 [taus.] 0. secs (0.u,0.s) -Chars 14487 - 14497 [apply~CIH.] 0. secs (0.u,0.s) -Chars 14498 - 14522 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) +Chars 14487 - 14497 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 14498 - 14522 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) Chars 14523 - 14535 [reflexivity.] 0. secs (0.u,0.s) -Chars 14536 - 14540 [Qed.] 0.006 secs (0.006u,0.s) +Chars 14536 - 14540 [Qed.] 0.009 secs (0.009u,0.s) Chars 14542 - 14554 [End~Subtree.] 0. secs (0.u,0.s) Chars 14555 - 14570 [Import~Subtree.] 0. secs (0.u,0.s) Chars 14572 - 14668 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0. secs (0.u,0.s) Chars 14669 - 14675 [Proof.] 0. secs (0.u,0.s) -Chars 14678 - 14691 [intros~Hleaf.] 0. secs (0.u,0.s) -Chars 14692 - 14752 [apply~(has_post_Leaf~(interp~h...] 0. secs (0.u,0.s) -Chars 14755 - 14785 [apply~Leaf_interp_subtree_inv.] 0. secs (0.u,0.s) -Chars 14786 - 14817 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) +Chars 14678 - 14691 [(intros~Hleaf).] 0. secs (0.u,0.s) +Chars 14692 - 14752 [(apply~(has_post_Leaf~(interp~...] 0. secs (0.u,0.s) +Chars 14755 - 14785 [(apply~Leaf_interp_subtree_inv).] 0. secs (0.u,0.s) +Chars 14786 - 14817 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) Chars 14818 - 14822 [Qed.] 0. secs (0.u,0.s) -Chars 14824 - 14962 [Lemma~Leaf_interp_state_inv~{E...] 0. secs (0.u,0.s) +Chars 14824 - 14962 [Lemma~Leaf_interp_state_inv~{E...] 0.001 secs (0.001u,0.s) Chars 14963 - 14969 [Proof.] 0. secs (0.u,0.s) -Chars 14972 - 14985 [intros~Hleaf.] 0. secs (0.u,0.s) -Chars 14988 - 15060 [apply~(has_post_Leaf~(interp_s...] 0. secs (0.u,0.s) -Chars 15063 - 15099 [apply~Leaf_interp_state_subtre...] 0. secs (0.u,0.s) -Chars 15100 - 15131 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) -Chars 15132 - 15136 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14972 - 14985 [(intros~Hleaf).] 0. secs (0.u,0.s) +Chars 14988 - 15060 [(apply~(has_post_Leaf~(interp_...] 0.001 secs (0.001u,0.s) +Chars 15063 - 15099 [(apply~Leaf_interp_state_subtr...] 0. secs (0.u,0.s) +Chars 15100 - 15131 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) +Chars 15132 - 15136 [Qed.] 0. secs (0.u,0.s) Chars 15175 - 15298 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) Chars 15299 - 15305 [Proof.] 0. secs (0.u,0.s) -Chars 15308 - 15315 [intros.] 0. secs (0.u,0.s) -Chars 15316 - 15349 [rewrite~translate_to_interp~in~H.] 0.001 secs (0.001u,0.s) -Chars 15352 - 15382 [eapply~Leaf_interp_inv;~eauto.] 0. secs (0.u,0.s) -Chars 15383 - 15387 [Qed.] 0. secs (0.u,0.s) +Chars 15308 - 15315 [(intros).] 0. secs (0.u,0.s) +Chars 15316 - 15349 [(rewrite~translate_to_interp~i...] 0.002 secs (0.002u,0.s) +Chars 15352 - 15382 [(eapply~Leaf_interp_inv;~eauto).] 0. secs (0.u,0.s) +Chars 15383 - 15387 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Simple.v.timing b/theories/Simple.v.timing index 1c633795..9499b4cb 100644 --- a/theories/Simple.v.timing +++ b/theories/Simple.v.timing @@ -1,15 +1,15 @@ Chars 48 - 84 [Set~Warnings~"-notation-overri...] 0. secs (0.u,0.s) -Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.021 secs (0.017u,0.003s) +Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) +Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.03 secs (0.025u,0.005s) Chars 305 - 347 [Require~Export~ITree.Core.ITre...] 0. secs (0.u,0.s) Chars 348 - 370 [Export~ITreeNotations.] 0. secs (0.u,0.s) Chars 371 - 404 [#[global]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1062 - 1097 [Require~Export~ITree.Basics.Ba...] 0. secs (0.u,0.s) Chars 1158 - 1191 [Require~Export~ITree.Indexed.Sum.] 0. secs (0.u,0.s) -Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.u,0.s) -Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.003 secs (0.002u,0.s) -Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.008 secs (0.007u,0.001s) +Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.001u,0.s) +Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.004 secs (0.003u,0.s) +Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.013 secs (0.01u,0.002s) Chars 1773 - 1809 [Export~ITree.Interp.Handler.Ha...] 0. secs (0.u,0.s) Chars 2164 - 2189 [Module~Type~SimpleTheory.] 0. secs (0.u,0.s) Chars 2297 - 2325 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) @@ -23,10 +23,10 @@ Chars 2866 - 2940 [Parameter~(eutt_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 2942 - 3072 [Parameter~~~(eutt_vis~:~~~~~~f...] 0. secs (0.u,0.s) Chars 3074 - 3152 [Parameter~(eutt_inv_ret~:~fora...] 0. secs (0.u,0.s) Chars 3154 - 3289 [Parameter~~~(eutt_inv_vis~:~~~...] 0. secs (0.u,0.s) -Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0.013 secs (0.012u,0.s) +Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 3317 - 3351 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 3382 - 3481 [Parameter~~~(bind_ret~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0. secs (0.u,0.s) +Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0.021 secs (0.02u,0.001s) Chars 3647 - 3740 [Parameter~~~(bind_ret_r~:~~~~~...] 0. secs (0.u,0.s) Chars 3742 - 3936 [Parameter~~~(bind_bind~:~~~~~~...] 0. secs (0.u,0.s) Chars 3938 - 3979 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) @@ -37,9 +37,9 @@ Chars 4108 - 4150 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) Chars 4197 - 4423 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) Chars 4425 - 4547 [Parameter~~~(unfold_interp~:~~...] 0. secs (0.u,0.s) Chars 4617 - 4715 [Parameter~~~(interp_ret~:~~~~~...] 0. secs (0.u,0.s) -Chars 4717 - 4882 [Parameter~~~(interp_vis~:~~~~~...] 0. secs (0.u,0.s) +Chars 4717 - 4882 [Parameter~~~(interp_vis~:~~~~~...] 0.001 secs (0.001u,0.s) Chars 4884 - 5029 [Parameter~~~(interp_trigger~:~...] 0. secs (0.u,0.s) -Chars 5031 - 5221 [Parameter~~~(interp_bind~:~~~~...] 0. secs (0.u,0.s) +Chars 5031 - 5221 [Parameter~~~(interp_bind~:~~~~...] 0.001 secs (0.001u,0.s) Chars 5223 - 5266 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5267 - 5310 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5311 - 5358 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 7152 - 7279 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7281 - 7413 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7541 - 7718 [Ltac~~tau_steps~:=~~~repeat~~~...] 0. secs (0.u,0.s) Chars 7720 - 7737 [End~SimpleTheory.] 0. secs (0.u,0.s) -Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.007 secs (0.006u,0.s) +Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.01 secs (0.009u,0.s) Chars 7873 - 7909 [Module~Export~Simple:~SimpleTh...] 0. secs (0.u,0.s) Chars 7995 - 8023 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 8025 - 8063 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) @@ -69,64 +69,64 @@ Chars 8160 - 8236 [Definition~eutt~:~itree~E~R~->...] 0. secs (0.u,0.s) Chars 8238 - 8298 [Notation~"x~≈~y"~:=~(eutt~x~y)...] 0. secs (0.u,0.s) Chars 8342 - 8394 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 8395 - 8401 [Proof.] 0. secs (0.u,0.s) -Chars 8404 - 8441 [apply~ITree.Eq.Eqit.Equivalenc...] 0. secs (0.u,0.s) -Chars 8442 - 8477 [econstructor;~eauto~using~tran...] 0. secs (0.u,0.s) +Chars 8404 - 8441 [(apply~ITree.Eq.Eqit.Equivalen...] 0. secs (0.u,0.s) +Chars 8442 - 8477 [(econstructor;~eauto~using~tra...] 0. secs (0.u,0.s) Chars 8479 - 8483 [Qed.] 0. secs (0.u,0.s) Chars 8524 - 8581 [Lemma~tau_eutt~:~forall~t~:~it...] 0. secs (0.u,0.s) Chars 8582 - 8588 [Proof.] 0. secs (0.u,0.s) -Chars 8589 - 8596 [intros.] 0. secs (0.u,0.s) -Chars 8597 - 8628 [rewrite~ITree.Eq.Eqit.tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 8589 - 8596 [(intros).] 0. secs (0.u,0.s) +Chars 8597 - 8628 [(rewrite~ITree.Eq.Eqit.tau_eutt).] 0.001 secs (0.001u,0.s) Chars 8629 - 8641 [reflexivity.] 0. secs (0.u,0.s) Chars 8642 - 8646 [Qed.] 0. secs (0.u,0.s) Chars 8648 - 8715 [Lemma~itree_eta~:~forall~t~:~i...] 0. secs (0.u,0.s) Chars 8716 - 8722 [Proof.] 0. secs (0.u,0.s) -Chars 8723 - 8730 [intros.] 0. secs (0.u,0.s) -Chars 8731 - 8766 [rewrite~<-~ITree.Eq.Eqit.itree...] 0. secs (0.u,0.s) +Chars 8723 - 8730 [(intros).] 0. secs (0.u,0.s) +Chars 8731 - 8766 [(rewrite~<-~ITree.Eq.Eqit.itre...] 0.001 secs (0.001u,0.s) Chars 8767 - 8779 [reflexivity.] 0. secs (0.u,0.s) Chars 8780 - 8784 [Qed.] 0. secs (0.u,0.s) Chars 8786 - 8846 [Lemma~eutt_ret~(r1~r2~:~R)~:~r...] 0. secs (0.u,0.s) Chars 8847 - 8853 [Proof.] 0. secs (0.u,0.s) -Chars 8854 - 8861 [intros.] 0. secs (0.u,0.s) +Chars 8854 - 8861 [(intros).] 0. secs (0.u,0.s) Chars 8862 - 8868 [subst.] 0. secs (0.u,0.s) Chars 8869 - 8881 [reflexivity.] 0. secs (0.u,0.s) Chars 8882 - 8886 [Qed.] 0. secs (0.u,0.s) Chars 8888 - 9004 [Lemma~eutt_vis~{U~:~Type}~(e~:...] 0. secs (0.u,0.s) Chars 9005 - 9011 [Proof.] 0. secs (0.u,0.s) -Chars 9015 - 9022 [intros.] 0. secs (0.u,0.s) -Chars 9023 - 9052 [apply~ITree.Eq.Eqit.eqit_Vis.] 0. secs (0.u,0.s) -Chars 9053 - 9060 [intros.] 0. secs (0.u,0.s) -Chars 9061 - 9069 [apply~H.] 0. secs (0.u,0.s) +Chars 9015 - 9022 [(intros).] 0. secs (0.u,0.s) +Chars 9023 - 9052 [(apply~ITree.Eq.Eqit.eqit_Vis).] 0. secs (0.u,0.s) +Chars 9053 - 9060 [(intros).] 0. secs (0.u,0.s) +Chars 9061 - 9069 [(apply~H).] 0. secs (0.u,0.s) Chars 9071 - 9075 [Qed.] 0. secs (0.u,0.s) Chars 9077 - 9145 [Lemma~eutt_inv_ret~(r1~r2~:~R)...] 0. secs (0.u,0.s) Chars 9146 - 9152 [Proof.] 0. secs (0.u,0.s) -Chars 9153 - 9186 [apply~ITree.Eq.Eqit.eqit_inv_Ret.] 0. secs (0.u,0.s) +Chars 9153 - 9186 [(apply~ITree.Eq.Eqit.eqit_inv_...] 0. secs (0.u,0.s) Chars 9187 - 9191 [Qed.] 0. secs (0.u,0.s) Chars 9193 - 9317 [Lemma~eutt_inv_vis~{U~:~Type}~...] 0. secs (0.u,0.s) Chars 9318 - 9324 [Proof.] 0. secs (0.u,0.s) -Chars 9325 - 9364 [apply~ITree.Eq.Eqit.eqit_inv_V...] 0. secs (0.u,0.s) +Chars 9325 - 9364 [(apply~ITree.Eq.Eqit.eqit_inv_...] 0. secs (0.u,0.s) Chars 9365 - 9369 [Qed.] 0. secs (0.u,0.s) Chars 9371 - 9395 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 9397 - 9431 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 9462 - 9557 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9558 - 9564 [Proof.] 0. secs (0.u,0.s) -Chars 9565 - 9621 [intros;~rewrite~ITree.Eq.Shall...] 0.035 secs (0.034u,0.s) +Chars 9565 - 9621 [(intros;~rewrite~ITree.Eq.Shal...] 0.049 secs (0.049u,0.s) Chars 9622 - 9626 [Qed.] 0. secs (0.u,0.s) Chars 9628 - 9723 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) Chars 9724 - 9730 [Proof.] 0. secs (0.u,0.s) -Chars 9731 - 9749 [rewrite~bind_tau_.] 0.008 secs (0.008u,0.s) +Chars 9731 - 9749 [(rewrite~bind_tau_).] 0.011 secs (0.011u,0.s) Chars 9750 - 9762 [reflexivity.] 0. secs (0.u,0.s) Chars 9763 - 9767 [Qed.] 0. secs (0.u,0.s) -Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0.002 secs (0.002u,0.s) +Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9928 - 9934 [Proof.] 0. secs (0.u,0.s) -Chars 9935 - 9991 [intros;~rewrite~ITree.Eq.Shall...] 0.011 secs (0.009u,0.002s) -Chars 9992 - 9996 [Qed.] 0. secs (0.u,0.s) +Chars 9935 - 9991 [(intros;~rewrite~ITree.Eq.Shal...] 0.018 secs (0.015u,0.003s) +Chars 9992 - 9996 [Qed.] 0.001 secs (0.001u,0.s) Chars 9998 - 10087 [Lemma~bind_ret_r~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 10088 - 10094 [Proof.] 0. secs (0.u,0.s) -Chars 10095 - 10149 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) +Chars 10095 - 10149 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) Chars 10150 - 10154 [Qed.] 0. secs (0.u,0.s) Chars 10156 - 10346 [Lemma~bind_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) Chars 10347 - 10353 [Proof.] 0. secs (0.u,0.s) -Chars 10354 - 10407 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) +Chars 10354 - 10407 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) Chars 10408 - 10412 [Qed.] 0. secs (0.u,0.s) Chars 10414 - 10455 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) Chars 10456 - 10497 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) @@ -134,30 +134,30 @@ Chars 10498 - 10539 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) Chars 10540 - 10581 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) Chars 10582 - 10625 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) Chars 10626 - 10668 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 10716 - 10942 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) +Chars 10716 - 10942 [Definition~_interp~{E}~{F}~{R}...] 0.002 secs (0.001u,0.s) Chars 10944 - 11062 [Lemma~unfold_interp~:~~~forall...] 0. secs (0.u,0.s) Chars 11063 - 11069 [Proof.] 0. secs (0.u,0.s) -Chars 11072 - 11130 [intros;~rewrite~<-~ITree.Inter...] 0.001 secs (0.001u,0.s) +Chars 11072 - 11130 [(intros;~rewrite~<-~ITree.Inte...] 0.002 secs (0.001u,0.s) Chars 11133 - 11145 [reflexivity.] 0. secs (0.u,0.s) -Chars 11146 - 11150 [Qed.] 0. secs (0.u,0.s) +Chars 11146 - 11150 [Qed.] 0.001 secs (0.001u,0.s) Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 11313 - 11319 [Proof.] 0. secs (0.u,0.s) -Chars 11322 - 11365 [intros;~rewrite~unfold_interp;...] 0.001 secs (0.001u,0.s) -Chars 11366 - 11370 [Qed.] 0. secs (0.u,0.s) -Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0. secs (0.u,0.s) +Chars 11322 - 11365 [(intros;~rewrite~unfold_interp...] 0.001 secs (0.001u,0.s) +Chars 11366 - 11370 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0.001 secs (0.001u,0.s) Chars 11534 - 11540 [Proof.] 0. secs (0.u,0.s) -Chars 11543 - 11620 [intros;~rewrite~InterpFacts.in...] 0.004 secs (0.003u,0.s) +Chars 11543 - 11620 [(intros;~rewrite~InterpFacts.i...] 0.005 secs (0.004u,0.001s) Chars 11621 - 11625 [Qed.] 0.001 secs (0.001u,0.s) Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0. secs (0.u,0.s) Chars 11769 - 11775 [Proof.] 0. secs (0.u,0.s) -Chars 11778 - 11834 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) +Chars 11778 - 11834 [(intros;~rewrite~ITree.Interp....] 0.002 secs (0.002u,0.s) Chars 11837 - 11849 [reflexivity.] 0. secs (0.u,0.s) Chars 11850 - 11854 [Qed.] 0. secs (0.u,0.s) -Chars 11856 - 12042 [Lemma~interp_bind~:~~~forall~{...] 0. secs (0.u,0.s) +Chars 11856 - 12042 [Lemma~interp_bind~:~~~forall~{...] 0.001 secs (0.001u,0.s) Chars 12043 - 12049 [Proof.] 0. secs (0.u,0.s) -Chars 12052 - 12105 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) +Chars 12052 - 12105 [(intros;~rewrite~ITree.Interp....] 0.001 secs (0.001u,0.s) Chars 12108 - 12120 [reflexivity.] 0. secs (0.u,0.s) -Chars 12121 - 12125 [Qed.] 0. secs (0.u,0.s) +Chars 12121 - 12125 [Qed.] 0.001 secs (0.001u,0.s) Chars 12127 - 12170 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 12171 - 12214 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 12215 - 12262 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -165,69 +165,69 @@ Chars 12263 - 12307 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 12453 - 12594 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) Chars 12596 - 12725 [Lemma~rec_as_interp~:~~~forall...] 0. secs (0.u,0.s) Chars 12726 - 12732 [Proof.] 0. secs (0.u,0.s) -Chars 12735 - 12742 [intros.] 0. secs (0.u,0.s) -Chars 12743 - 12793 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) +Chars 12735 - 12742 [(intros).] 0. secs (0.u,0.s) +Chars 12743 - 12793 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) Chars 12794 - 12806 [reflexivity.] 0. secs (0.u,0.s) -Chars 12807 - 12811 [Qed.] 0. secs (0.u,0.s) +Chars 12807 - 12811 [Qed.] 0.001 secs (0.001u,0.s) Chars 12813 - 12953 [Lemma~interp_recursive_call~:~...] 0. secs (0.u,0.s) Chars 12954 - 12960 [Proof.] 0. secs (0.u,0.s) -Chars 12963 - 12970 [intros.] 0. secs (0.u,0.s) -Chars 12971 - 13029 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) +Chars 12963 - 12970 [(intros).] 0. secs (0.u,0.s) +Chars 12971 - 13029 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) Chars 13032 - 13044 [reflexivity.] 0. secs (0.u,0.s) Chars 13045 - 13049 [Qed.] 0. secs (0.u,0.s) Chars 13159 - 13271 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) Chars 13273 - 13407 [Lemma~mrec_as_interp~:~~~foral...] 0. secs (0.u,0.s) Chars 13408 - 13414 [Proof.] 0. secs (0.u,0.s) -Chars 13417 - 13476 [intros;~rewrite~ITree.Interp.R...] 0.001 secs (0.001u,0.s) +Chars 13417 - 13476 [(intros;~rewrite~ITree.Interp....] 0.001 secs (0.001u,0.s) Chars 13477 - 13489 [reflexivity.] 0. secs (0.u,0.s) -Chars 13490 - 13494 [Qed.] 0. secs (0.u,0.s) +Chars 13490 - 13494 [Qed.] 0.001 secs (0.001u,0.s) Chars 13496 - 13640 [Lemma~interp_mrecursive~:~~~fo...] 0. secs (0.u,0.s) Chars 13641 - 13647 [Proof.] 0. secs (0.u,0.s) -Chars 13650 - 13712 [intros;~rewrite~ITree.Interp.R...] 0.001 secs (0.001u,0.s) +Chars 13650 - 13712 [(intros;~rewrite~ITree.Interp....] 0.001 secs (0.001u,0.s) Chars 13715 - 13727 [reflexivity.] 0. secs (0.u,0.s) -Chars 13728 - 13732 [Qed.] 0. secs (0.u,0.s) +Chars 13728 - 13732 [Qed.] 0.001 secs (0.001u,0.s) Chars 13734 - 13788 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 13789 - 13839 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 13869 - 13945 [#[global]~Instance~eutt_go~~{E...] 0. secs (0.u,0.s) Chars 13946 - 13952 [Proof.] 0. secs (0.u,0.s) -Chars 13953 - 13972 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 13973 - 13983 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 13984 - 14002 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14003 - 14007 [Qed.] 0. secs (0.u,0.s) +Chars 13953 - 13972 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 13973 - 13983 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 13984 - 14002 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 14003 - 14007 [Qed.] 0.001 secs (0.001u,0.s) Chars 14009 - 14095 [#[global]~Instance~eutt_observ...] 0. secs (0.u,0.s) Chars 14096 - 14102 [Proof.] 0. secs (0.u,0.s) -Chars 14103 - 14122 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14123 - 14133 [rewrite~H.] 0. secs (0.u,0.s) -Chars 14134 - 14152 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14103 - 14122 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 14123 - 14133 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 14134 - 14152 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 14153 - 14157 [Qed.] 0. secs (0.u,0.s) Chars 14159 - 14241 [#[global]~Instance~eutt_TauF~~...] 0. secs (0.u,0.s) Chars 14242 - 14248 [Proof.] 0. secs (0.u,0.s) -Chars 14249 - 14268 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14269 - 14279 [rewrite~H.] 0. secs (0.u,0.s) -Chars 14280 - 14298 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14249 - 14268 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 14269 - 14279 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 14280 - 14298 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 14299 - 14303 [Qed.] 0. secs (0.u,0.s) Chars 14305 - 14421 [#[global]~Instance~eutt_VisF~~...] 0. secs (0.u,0.s) Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) -Chars 14429 - 14448 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14449 - 14459 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 14460 - 14478 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14429 - 14448 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 14449 - 14459 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 14460 - 14478 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 14479 - 14483 [Qed.] 0. secs (0.u,0.s) Chars 14485 - 14608 [#[global]~Instance~eutt_bind~~...] 0. secs (0.u,0.s) Chars 14609 - 14615 [Proof.] 0. secs (0.u,0.s) -Chars 14616 - 14635 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14636 - 14650 [rewrite~H,~H0.] 0.002 secs (0.002u,0.s) -Chars 14651 - 14669 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14616 - 14635 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 14636 - 14650 [(rewrite~H,~H0).] 0.005 secs (0.005u,0.s) +Chars 14651 - 14669 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 14670 - 14674 [Qed.] 0.001 secs (0.001u,0.s) Chars 14676 - 14795 [#[global]~Instance~eutt_map~~{...] 0. secs (0.u,0.s) Chars 14796 - 14802 [Proof.] 0. secs (0.u,0.s) -Chars 14803 - 14822 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14823 - 14837 [rewrite~H,~H0.] 0.003 secs (0.003u,0.s) -Chars 14838 - 14856 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14803 - 14822 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 14823 - 14837 [(rewrite~H,~H0).] 0.004 secs (0.004u,0.s) +Chars 14838 - 14856 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 14857 - 14861 [Qed.] 0.001 secs (0.001u,0.s) Chars 14863 - 14987 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 14988 - 14994 [Proof.] 0. secs (0.u,0.s) -Chars 14995 - 15014 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 15015 - 15025 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 15026 - 15044 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 15045 - 15049 [Qed.] 0. secs (0.u,0.s) +Chars 14995 - 15014 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 15015 - 15025 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 15026 - 15044 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 15045 - 15049 [Qed.] 0.001 secs (0.001u,0.s) Chars 15051 - 15062 [End~Simple.] 0.001 secs (0.001u,0.s) diff --git a/timing-experiments/all-times.sh b/timing-experiments/all-times.sh index eef5a4f5..58d0d3cc 100755 --- a/timing-experiments/all-times.sh +++ b/timing-experiments/all-times.sh @@ -18,7 +18,7 @@ if [[ "$#" -ne "$NUM_ARGS" ]]; then exit 1 fi -BUILD_DIR="/Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees" +BUILD_DIR=".." TIMING_DIR="$BUILD_DIR/timing-experiments" make -C "$BUILD_DIR" clean From d078f589d2c2580eeff92184b8e13603ada83655 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 5 May 2026 16:06:48 -0400 Subject: [PATCH 149/189] Progress on ITraceFacts. --- _CoqProject | 2 +- extra/ITrace/ITraceBind.v | 251 +++++++++++++++--------------- extra/ITrace/ITraceFacts.v | 2 + theories/Core/KTreeFacts.v | 34 ++-- theories/Eq/Eqit.v | 4 +- theories/Eq/RuttFacts.v | 5 + theories/Events/FailFacts.v | 2 + theories/Events/MapDefaultFacts.v | 2 + theories/Events/StateFacts.v | 3 + theories/Interp/HandlerFacts.v | 4 +- theories/Props/EuttNoRet.v | 3 +- theories/Props/Infinite.v | 3 + theories/Props/Leaf.v | 3 +- 13 files changed, 167 insertions(+), 151 deletions(-) diff --git a/_CoqProject b/_CoqProject index 11e28464..f57feb1e 100644 --- a/_CoqProject +++ b/_CoqProject @@ -82,7 +82,7 @@ extra/IForest.v extra/ITrace/ITraceDefinition.v extra/ITrace/ITraceFacts.v extra/ITrace/ITracePrefix.v -# extra/ITrace/ITraceBind.v +extra/ITrace/ITraceBind.v # extra/ITrace/ITracePreds.v extra/Dijkstra/DijkstraMonad.v diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 0fa87524..a2ae7368 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From Stdlib Require Import Morphisms . @@ -21,7 +23,7 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. -#[local] Tactic Notation "step" := ITree.Basics.Utils.step. +#[local] Tactic Notation "simple_step" := ITree.Basics.Utils.step. (* Contains the proof of peel_lemma which allows us to decompose a trace of bind t f into a head that refines t and a tail @@ -127,7 +129,7 @@ Proof. - dependent induction Hrutt. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. rewrite Heq in x. rewrite bind_tau in x. sinv x. - + rewrite <- x0. cbn. constructor. eapply CIH. + + simpobs. cbn. constructor. eapply CIH. symmetry in Heq. apply simpobs in x0. apply simpobs in x. apply simpobs in Heq. apply eq_sub_eutt in x0. apply eq_sub_eutt in Heq. @@ -136,7 +138,7 @@ Proof. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. rewrite Heq in x. rewrite bind_tau in x. sinv x. - + rewrite <- x. cbn. constructor. eapply CIH. + + simpobs. cbn. constructor. eapply CIH. clear IHHrutt. symmetry in Heq. apply simpobs in Heq. apply eq_sub_eutt in Heq. rewrite tau_eutt in Heq. rewrite <- Heq. step. auto. @@ -180,7 +182,7 @@ Proof. + exfalso. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. rewrite Heq in x. rewrite bind_vis in x. sinv x; inv CHECK. - + rewrite <- x0. + + simpobs. symmetry in Heq. apply simpobs in Heq. apply simpobs in x. rewrite Heq in x. rewrite bind_vis in x. step in x; inversion x. ddestruction. inversion H; ddestruction. @@ -196,7 +198,7 @@ Proof. specialize (REL0 a). rewrite REL0. apply H0. * cbn. constructor; eauto. intros. contradiction. - + rewrite <- x. cbn. constructor. eapply IHHrutt; eauto. + + simpobs. cbn. constructor. eapply IHHrutt; eauto. + exfalso. symmetry in Heq. apply simpobs in x. apply simpobs in Heq. rewrite Heq in x. rewrite bind_vis in x. sinv x. @@ -219,19 +221,17 @@ Proof. try (destruct e); try (destruct e0); cbn; try (constructor; auto; fail). - step in H. dependent induction H. - + rewrite <- x0. rewrite <- x. cbn. constructor. - rewrite x0. eapply CIH. reflexivity. - + rewrite <- x0. rewrite <- x. cbn. constructor. - eapply CIH. auto. - + rewrite <- x0. rewrite <- x. destruct e; cbn. - * cbn. constructor. rewrite x. rewrite x0. - eapply CIH. step. rewrite <- x. rewrite <- x0. - constructor. auto. - * cbn. constructor. rewrite x0. rewrite x. - eapply CIH. step. rewrite <- x0. rewrite <- x. - constructor. auto. + + simpobs. reflexivity. + + simpobs. cbn. etau. + + simpobs. destruct e; cbn. + * constructor. rewrite x, x0. + eapply CIH. step. simpobs. + evis. + * constructor. rewrite x, x0. + eapply CIH. step. simpobs. + evis. + destruct (observe b); destruct (observe b'); dependent destruction x. - * cbn. constructor. remember (@go (EvAns E) _ (RetF r)) as t1. + * cbn. constructor. remember (@go (EvAns E) _ (RetF r)) as t1. assert (RetF r = observe t1). { rewrite Heqt1. auto. } rewrite H0. eapply CIH. rewrite Heqt1. step. auto. @@ -271,13 +271,13 @@ Proof. { subst. auto. } rewrite H0. eapply CIH. subst. step. auto. - step in H. dependent induction H. - + rewrite <- x0. rewrite <- x. reflexivity. - + rewrite <- x. rewrite <- x0. cbn. constructor. + + simpobs. reflexivity. + + simpobs. cbn. constructor. remember (go (VisF e k) ) as t0. assert (VisF e k = observe t0). { subst. auto. } rewrite H. eapply CIH. auto. - + rewrite <- x0. rewrite <- x. destruct e; cbn. + + simpobs. destruct e; cbn. * unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X) ). ++ unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. @@ -285,7 +285,7 @@ Proof. eapply CIH. auto with itree. ++ reflexivity. * constructor. contradiction. - + rewrite <- x. destruct (observe b') eqn : Heq. + + simpobs. destruct (observe b') eqn : Heq. * rewrite <- Heq. cbn. constructor; auto. eapply IHeqitF; eauto. rewrite Heq. auto. * cbn. constructor. remember (go (VisF e k) ) as t2. @@ -297,7 +297,7 @@ Proof. step; auto. * cbn. constructor; eauto. rewrite <- Heq. eapply IHeqitF; eauto. rewrite Heq. auto. - + rewrite <- x. destruct (observe b) eqn : Heq. + + simpobs. destruct (observe b) eqn : Heq. * rewrite <- Heq. cbn. constructor; auto. eapply IHeqitF; eauto. rewrite Heq. auto. * cbn. constructor. remember (go (VisF e k) ) as t1. @@ -320,26 +320,25 @@ Proof. intros E R S. coinduction c CIH. intros. unfold peel. destruct (observe b) eqn : Heqb. - step in H. dependent induction H. - + rewrite <- x. rewrite <- x0. reflexivity. - + rewrite <- x. rewrite <- x0. cbn. constructor. rewrite <- Heqb. + + simpobs. reflexivity. + + simpobs. cbn. constructor. rewrite <- Heqb. eapply CIH. auto. - + rewrite <- x0. rewrite <- x. cbn. reflexivity. - + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. - + rewrite <- x. cbn. constructor; auto. eapply IHeqitF; eauto. + + simpobs. cbn. reflexivity. + + simpobs. cbn. constructor; auto. eapply IHeqitF; eauto. + + simpobs. cbn. constructor; auto. eapply IHeqitF; eauto. - step in H. dependent induction H. - + rewrite <- x. rewrite <- x0. cbn. constructor. auto. - + rewrite <- x0. rewrite <- x. cbn. constructor. - eapply CIH; auto. - + rewrite <- x0. rewrite <- x. cbn. constructor. - rewrite x0. rewrite x. eapply CIH. - step. rewrite <- x0. rewrite <- x. + + simpobs. cbn. constructor. auto. + + simpobs. cbn. etau. + + simpobs. cbn. constructor. + rewrite x, x0. eapply CIH. + step. simpobs. constructor. auto. - + rewrite <- x. destruct (observe t') eqn : Heqt'. + + simpobs. destruct (observe t') eqn : Heqt'. * cbn. constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. destruct (observe t0); cbn; try (constructor; auto; fail). + ++ simpobs. destruct (observe t0); cbn; try (constructor; auto; fail). destruct e; cbn; constructor; auto. - ++ rewrite <- x. cbn. destruct (observe t2) eqn : Heqt2; cbn. + ++ simpobs. cbn. destruct (observe t2) eqn : Heqt2; cbn. ** constructor; eauto. rewrite <- Heqt2. eapply IHeqitF; eauto. ** constructor; auto. eapply IHeqitF; eauto. ** destruct e; cbn; @@ -350,11 +349,11 @@ Proof. step. auto. * cbn. constructor. rewrite <- Heqt'. eapply CIH. step. rewrite Heqt'. auto. - + rewrite <- x. destruct (observe t). + + simpobs. destruct (observe t). * cbn. constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. destruct (observe t0); try (destruct e); cbn; constructor; auto. - ++ rewrite <- x. destruct (observe t1) eqn : Heqt1; cbn. + ++ simpobs. destruct (observe t0); try (destruct e); cbn; constructor; auto. + ++ simpobs. destruct (observe t1) eqn : Heqt1; cbn. ** constructor; auto. rewrite <- Heqt1. eapply IHeqitF; eauto. ** constructor; auto. eapply IHeqitF; eauto. ** destruct e; cbn; try (constructor; auto; rewrite <- Heqt1; eapply IHeqitF; eauto). @@ -365,10 +364,10 @@ Proof. { subst. auto. } rewrite H0. eapply CIH. subst. step. auto. - step in H. dependent induction H. - + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; auto. - + rewrite <- x. rewrite <- x0. destruct e; cbn; constructor; rewrite <- Heqb; + + simpobs. destruct e; cbn; constructor; auto. + + simpobs. destruct e; cbn; constructor; rewrite <- Heqb; eapply CIH; eauto. - + rewrite <- x. rewrite <- x0. destruct e0; cbn. + + simpobs. destruct e0; cbn. * unfold observe. cbn. unfold peel_vis. destruct (classicT (A = u) ). ++ unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. @@ -376,53 +375,53 @@ Proof. eapply CIH. auto with itree. ++ cbn. reflexivity. * constructor. contradiction. - + rewrite <- x. destruct (observe t'); destruct e; cbn. + + simpobs. destruct (observe t'); destruct e; cbn. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. cbn. constructor; auto. - ++ rewrite <- x. cbn. constructor; eauto. + ++ simpobs. cbn. constructor; auto. + ++ simpobs. cbn. constructor; eauto. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. cbn. constructor; auto. - ++ rewrite <- x. cbn. constructor; eauto. + ++ simpobs. cbn. constructor; auto. + ++ simpobs. cbn. constructor; eauto. * constructor. rewrite <- Heqb. eapply CIH. setoid_rewrite <- tau_eutt at 2. step. auto. * rewrite <- Heqb. constructor. eapply CIH. setoid_rewrite <- tau_eutt at 2. step. auto. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. unfold observe. cbn. + ++ simpobs. unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. cbn. constructor. intros. idtac. eapply CIH; eauto with itree. ** cbn. reflexivity. - ++ rewrite <- x. cbn. constructor; auto; eapply IHeqitF; eauto. + ++ simpobs. cbn. constructor; auto; eapply IHeqitF; eauto. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. cbn. constructor. contradiction. - ++ rewrite <- x. cbn. constructor; auto; eapply IHeqitF; eauto. - + rewrite <- x. cbn. destruct (observe t) eqn : Heqt; destruct e; cbn. + ++ simpobs. cbn. constructor. contradiction. + ++ simpobs. cbn. constructor; auto; eapply IHeqitF; eauto. + + simpobs. cbn. destruct (observe t) eqn : Heqt; destruct e; cbn. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. cbn. constructor; auto. - ++ rewrite <- x. cbn. constructor; eauto. + ++ simpobs. cbn. constructor; auto. + ++ simpobs. cbn. constructor; eauto. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. cbn. constructor; auto. - ++ rewrite <- x. cbn. constructor; eauto. + ++ simpobs. cbn. constructor; auto. + ++ simpobs. cbn. constructor; eauto. * constructor. idtac. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. step. auto. * constructor. rewrite <- Heqb. idtac. eapply CIH; eauto. rewrite <- tau_eutt. step. auto. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. unfold observe. cbn. + ++ simpobs. unfold observe. cbn. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. cbn. constructor. intros. idtac. eapply CIH; apply REL. ** cbn. reflexivity. - ++ rewrite <- x. cbn. constructor; eauto. + ++ simpobs. cbn. constructor; eauto. * constructor; auto. clear IHeqitF. dependent induction H. - ++ rewrite <- x. cbn. constructor. contradiction. - ++ rewrite <- x. cbn. constructor; eauto. + ++ simpobs. cbn. constructor. contradiction. + ++ simpobs. cbn. constructor; eauto. Qed. #[global] Instance proper_eutt_peel {E R S} : Proper (eutt eq ==> eutt eq ==> eutt eq) (@peel E R S). @@ -558,26 +557,21 @@ Proof. revert b b' t. icoinduction c CIH. intros. step in H. destruct (observe t) eqn : Heqt. (* todo: this *) - - destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inv H; cbn; + - destruct (observe b') eqn : Hb; destruct (observe b) eqn : Hb'; inversion H; subst; cbn; try solve [to_mon; constructor; eauto; now do 2 step]. - + taus. - + subst. ddestruction. subst. cbn. constructor. intros. idtac. inv H. - ddestruction. subst. to_mon. now do 2 step. - + ddestruction. subst. ddestruction. subst. cbn. constructor; auto. - now do 2 ITree.Basics.Utils.step. - + + + taus. now do 2 Utils.step. + + ddestruction. constructor. intros. inv H. + ddestruction. do 2 Utils.step. apply REL0. (*looks like I didn't actually need to induct here ... *) - - dependent induction H0; try clear IHeqitF. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. idtac. - rewrite x. eapply CIH; eauto. step. rewrite <- x. constructor; auto. - + rewrite <- x0. rewrite <- x. red. cbn. constructor. idtac. - eapply CIH. auto. - + rewrite <- x0. rewrite <- x. red. destruct e; cbn; constructor; idtac. - * rewrite x. rewrite x0. eapply CIH; eauto. step. red. - rewrite <- x0. rewrite <- x. constructor. auto. - * rewrite x. rewrite x0. eapply CIH; eauto. step. red. - rewrite <- x0. rewrite <- x. constructor. auto. - + rewrite <- x. red. cbn. + - dependent induction H; try clear IHeqitF. + + simpobs. cbn. etau. + + simpobs. cbn. etau. + + simpobs. destruct e; cbn; constructor. + * simpobs. rewrite x, x0. eapply CIH; eauto. step. + simpobs. constructor. auto. + * rewrite x, x0. eapply CIH; eauto. step. + simpobs. constructor. auto. + + simpobs. cbn. destruct (observe b') eqn : Heqb'; cbn. * constructor. idtac. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. @@ -586,38 +580,36 @@ Proof. step. auto. * constructor. idtac. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. step. auto. - + rewrite <- x. red. cbn. destruct (observe b) eqn : Heqb; cbn. + + simpobs. cbn. destruct (observe b) eqn : Heqb; cbn. * constructor; auto. idtac. rewrite <- Heqb. eapply CIH. step. rewrite Heqb. auto. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. * constructor. idtac. rewrite <- Heqb. eapply CIH. step. - red. rewrite Heqb. auto. - - red. dependent induction H0; cbn. - + rewrite <- x0. rewrite <- x. cbn. constructor. idtac. step. apply eqitF_r_refl. - + rewrite <- x0. rewrite <- x. cbn. constructor. idtac. rewrite <- Heqt. eapply CIH. + rewrite Heqb. auto. + - dependent induction H; cbn. + + simpobs. simpobs. cbn. reflexivity. + + simpobs. simpobs. cbn. constructor. idtac. rewrite <- Heqt. eapply CIH. auto. - + rewrite <- x. rewrite <- x0. destruct e; cbn; try (apply eqitF_observe_peel_cont_vis; auto). - apply eqitF_r_refl. - + rewrite <- x. cbn. constructor; eauto. - + rewrite <- x. cbn. constructor; eauto. + + simpobs. destruct e; cbn; try (apply eqitF_observe_peel_cont_vis; auto). + reflexivity. + + simpobs. cbn. constructor; eauto. + + simpobs. cbn. constructor; eauto. Qed. Lemma peel_cont_ret_inv : forall E R S (b : itrace E R) (t : itree E S) (s : S), t ≈ Ret s -> (peel_cont_ (observe b) (observe t) ≈ b). Proof. - intros E R S. coinduction c CIH. intros. step in H. cbn in H0. dependent induction H0; subst. - - rewrite <- x. cbn. step. cbn. apply eqitF_r_refl. - - rewrite <- x. destruct (observe b) eqn : Hb. - + step. cbn. constructor; auto. - - specialize (IHeqitF r CIH (Ret r0) t1 s ); auto. - assert (S = S). auto. apply IHeqitF in H; auto. rewrite Hb. - step in H. - + step. rewrite Hb. cbn. constructor. idtac. eapply CIH with (s := s). + intros E R S. coinduction c CIH. intros. step in H. cbn in H. dependent induction H; subst. + - simpobs. cbn. reflexivity. + - simpobs. destruct (observe b) eqn : Hb. + + cbn. taul. simpobs. to_mon. + rewrite <- itree_eta. + specialize (IHeqitF CIH (Ret r) t1 s ); auto. + + cbn. rewrite Hb. taus. eapply CIH with (s := s). step. auto. - + step. rewrite Hb. cbn. rewrite <- Hb. constructor; auto. - specialize (IHeqitF r CIH b t1 s ); auto. - assert (S = S). auto. apply IHeqitF in H; auto. step in H. + + cbn. rewrite Hb. taul. rewrite <- Hb. + specialize (IHeqitF CIH b t1 s ); auto. + assert (S = S). auto. apply IHeqitF; auto. Qed. Lemma proper_peel_cont_eutt_r : forall (E : Type -> Type) (R S : Type) @@ -625,41 +617,42 @@ Lemma proper_peel_cont_eutt_r : forall (E : Type -> Type) (R S : Type) (t ≈ t') -> (peel_cont b t s ≈ peel_cont b t' s). Proof. intros E R S. unfold peel_cont. intros b t t' _. - revert b t t'. coinduction c CIH. intros. step. step in H. dependent induction H0. - - rewrite <- x. rewrite <- x0. red. cbn. apply eqitF_r_refl. - - rewrite <- x. rewrite <- x0. red. destruct (observe b) eqn : Heqb; cbn. - + constructor. idtac. rewrite <- Heqb. eapply CIH. auto. - + constructor. eapply CIH. auto. - + constructor. idtac. rewrite <- Heqb. eapply CIH; auto. - - rewrite <- x. rewrite <- x0. destruct (observe b) eqn : Heqb; red; cbn. - + apply eqitF_r_refl. - + constructor. rewrite x. rewrite x0. eapply CIH. - step. rewrite <- x. rewrite <- x0. constructor. intros. - idtac. auto. + revert b t t'. coinduction c CIH. intros. step in H. dependent induction H. + - simpobs. reflexivity. + - simpobs. destruct (observe b) eqn : Heqb; cbn. + + cbn. taus. rewrite <- Heqb. eapply CIH. auto. + + etau. + + constructor. rewrite <- Heqb. eapply CIH; auto. + - simpobs. destruct (observe b) eqn : Heqb; red; cbn. + + reflexivity. + + constructor. rewrite x, x0. eapply CIH. + step. simpobs. constructor. intros. + auto. + destruct e0; cbn. * unfold observe. cbn. unfold peel_cont_vis. - destruct (classicT (A = u) ); try apply eqitF_r_refl. + destruct (classicT (A = u) ); try reflexivity. unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. intros. idtac. eapply CIH. auto with itree. - * apply eqitF_r_refl. - - rewrite <- x. destruct (observe b) eqn : Heqb; red; cbn. + * reflexivity. + - simpobs. destruct (observe b) eqn : Heqb; red; cbn. + constructor; eauto. rewrite <- Heqb. eapply IHeqitF; eauto. + cbn. destruct (observe t') eqn : Heqt'; cbn. - * constructor. idtac. apply pacobot2. - eapply peel_cont_ret_inv with (s := r0). step. auto. - * constructor. idtac. eapply CIH; eauto. setoid_rewrite <- tau_eutt at 2. + * constructor. Utils.step. + unstep in H. eapply peel_cont_ret_inv with (b := t0) in H. step. + rewrite H. reflexivity. + * constructor. eapply CIH; eauto. setoid_rewrite <- tau_eutt at 2. step. auto. * constructor. idtac. rewrite <- Heqt'. eapply CIH. step. rewrite Heqt'. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. - - rewrite <- x. destruct (observe b) eqn : Heqb; red; cbn. + - simpobs. destruct (observe b) eqn : Heqb; red; cbn. + constructor; auto. rewrite <- Heqb. eapply IHeqitF; eauto. + destruct (observe t) eqn : Heqt; cbn. - * constructor. idtac. apply pacobot2. + * constructor. idtac. Utils.step. enough (t0 ≈ peel_cont_ (observe t0) (observe t2) ). auto. symmetry. - eapply peel_cont_ret_inv with (s := r0). symmetry. step. auto. + eapply peel_cont_ret_inv in H. symmetry. step. auto. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. * constructor. idtac. rewrite <- Heqt. eapply CIH. step. rewrite Heqt. auto. @@ -898,9 +891,9 @@ Proof. destruct H as [s Ht0]. step in Ht0. red in Ht0. cbn in Ht0. clear Heqt Hrutt. dependent induction Ht0. - - rewrite <- x. cbn. step in Heqb. red in Heqb. cbn in *. inv Heqb; try inv CHECK. + - simpobs. cbn. step in Heqb. red in Heqb. cbn in *. inv Heqb; try inv CHECK. rewrite H0. auto with itree. - - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. + - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. Lemma trace_prefix_vis_evans: forall (E : Type -> Type) (R S : Type) (r : itrace E S -> itrace E R -> Prop) @@ -921,14 +914,14 @@ Lemma trace_prefix_vis_evans: forall (E : Type -> Type) (R S : Type) (r : itrace Proof. intros E R S r A0 ev ans k k' t0 f Hk' Ht0 CIH. step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. - - rewrite <- x. unfold observe. cbn. unfold peel_vis. + - simpobs. unfold observe. cbn. unfold peel_vis. assert (A0 = A0); auto. destruct (classicT (A0 = A0)); try contradiction. unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. cbn. constructor. eapply CIH. assert (RAnsRef E unit A0 (evans A0 ev ans) tt ev ans); auto with itree. apply Hk' in H0. assert (k1 ans ≈ k' ans); try apply REL. rewrite H1. eauto. - - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. + - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. Lemma trace_prefix_vis_evempty: forall (E : Type -> Type) (R S : Type) @@ -947,8 +940,8 @@ Proof. intros E R S r A0 Hempty ev k A e0 t0 k' Ht0. cbn. constructor. dependent induction Ht0. - - rewrite <- x. cbn. constructor. - - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. + - simpobs. cbn. constructor. + - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. @@ -965,11 +958,11 @@ Lemma trace_prefix_peel_ret_vis: forall (E : Type -> Type) (R S : Type) Proof. intros E R S r A0 ev ans k t0 s Ht0. step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. - - rewrite <- x. cbn. remember (go (VisF (evans A0 ev ans) k ) ) as t. + - simpobs. cbn. remember (go (VisF (evans A0 ev ans) k ) ) as t. enough (trace_prefixF (upaco2 trace_prefix_ r) (RetF s) (observe t) ). { subst. auto. } constructor. - - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. + - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. Lemma trace_prefix_peel_ret_vis_empty: forall (E : Type -> Type) (R S : Type) @@ -985,11 +978,11 @@ Lemma trace_prefix_peel_ret_vis_empty: forall (E : Type -> Type) (R S : Type) Proof. intros E R S r A0 Hempty ev k t0 s Ht0. step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. - - rewrite <- x. cbn. remember (go (VisF (evempty A0 Hempty ev) k ) ) as t. + - simpobs. cbn. remember (go (VisF (evempty A0 Hempty ev) k ) ) as t. enough (trace_prefixF (upaco2 trace_prefix_ r) (RetF s) (observe t) ). { subst. auto. } constructor. - - rewrite <- x. cbn. constructor. eapply IHHt0; eauto. + - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. Lemma trace_prefix_peel : forall (E : Type -> Type) (S R : Type) (b : itrace E R) (t : itree E S) diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index 33ff807d..f0e2ca42 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From Stdlib Require Import Morphisms. diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index c553f766..50721de7 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -1,29 +1,30 @@ (* Rtodo: automatic to_mon for rewriting *) (** * Facts about [aloop] and [loop] *) - (* begin hide *) + +From Coinduction Require Import all. + From Stdlib Require Import Classes.Morphisms Setoids.Setoid Relations.Relations. From ITree Require Import - Basics.Utils - Basics.Basics - Basics.CategoryOps - Basics.CategoryTheory - Basics.CategoryKleisli - Basics.CategoryKleisliFacts - Basics.Function - Basics.HeterogeneousRelations - Core.ITreeDefinition - Core.ITreeMonad - Core.KTree - Eq.Shallow - Eq.Eqit - . - + Basics.Utils + Basics.Basics + Basics.CategoryOps + Basics.CategoryTheory + Basics.CategoryKleisli + Basics.CategoryKleisliFacts + Basics.Function + Basics.HeterogeneousRelations + Core.ITreeDefinition + Core.ITreeMonad + Core.KTree + Eq.Shallow + Eq.Eqit + . Import CatNotations. Local Open Scope itree_scope. Local Open Scope cat_scope. @@ -74,6 +75,7 @@ Proof. - rewrite bind_tau. taus. eapply CIH. - rewrite bind_ret_l, tau_euttge. + (* question: why doesn't accumulate acc work? *) do 2 step. revert b. coinduction. intros. rewrite !unfold_iter. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 9022ebba..a5de8ba4 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -28,7 +28,7 @@ From Stdlib Require Import Morphisms Relations. -From Coinduction Require Export all. +From Coinduction Require Import all. (* important: Basics.Utils must come after Coinduction, as it re-implements several tactics. *) @@ -350,7 +350,7 @@ Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. (* RTODO possible fix here: with body vs elem *) -Tactic Notation "step" := +#[global] Ltac step := (match goal with | |- context[elem _] => idtac | |- _ => diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index cfbb01ca..f2bace2b 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -7,6 +7,9 @@ (** The main additions in this file are compatibility with [eutt], morphisms wrt. [REv] and [RAns], and an up-to principle. *) +(* begin hide *) +From Coinduction Require Import all. + From Stdlib Require Import Program Setoid @@ -21,6 +24,8 @@ From ITree Require Import Eq.Rutt Props.Leaf. +(* end hide *) + (* Extra construction lemmas *) Lemma rutt_trigger {E1 E2 R1 R2 REv RAns RR} (e1: E1 R1) (e2: E2 R2): diff --git a/theories/Events/FailFacts.v b/theories/Events/FailFacts.v index 856a6f36..548be5da 100644 --- a/theories/Events/FailFacts.v +++ b/theories/Events/FailFacts.v @@ -1,6 +1,8 @@ (** * Theorems about Failure effects *) (* begin hide *) +From Coinduction Require Import all. + From Stdlib Require Import Morphisms. diff --git a/theories/Events/MapDefaultFacts.v b/theories/Events/MapDefaultFacts.v index 9636d65d..e59f7eb1 100644 --- a/theories/Events/MapDefaultFacts.v +++ b/theories/Events/MapDefaultFacts.v @@ -1,6 +1,8 @@ (** * Mutable map whose lookup operation provides a default value.*) (* begin hide *) +From Coinduction Require Import all. + Set Implicit Arguments. Set Contextual Implicit. diff --git a/theories/Events/StateFacts.v b/theories/Events/StateFacts.v index 87400bc4..93ddcf33 100644 --- a/theories/Events/StateFacts.v +++ b/theories/Events/StateFacts.v @@ -1,6 +1,9 @@ (** * Theorems about State effects *) (* begin hide *) + +From Coinduction Require Import all. + From Stdlib Require Import Program.Tactics Morphisms. diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index f819f467..25bc7667 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -1,6 +1,8 @@ (** * Theorems for [ITree.Interp.Handler] *) (* begin hide *) (* RTODO: investigate very slow compilation time for this file *) + +From Coinduction Require Import all. From Stdlib Require Import Setoid Morphisms @@ -345,7 +347,7 @@ Proof. taus. rewrite tau_euttge. setoid_rewrite tau_euttge. rewrite <- interp_mrec_bind, <- interp_bind. - auto with paco. + auto. - rewrite bind_trigger. setoid_rewrite tau_euttge. rewrite 2 unfold_interp_mrec; bcbn. diff --git a/theories/Props/EuttNoRet.v b/theories/Props/EuttNoRet.v index 34820c8d..bcc7553d 100644 --- a/theories/Props/EuttNoRet.v +++ b/theories/Props/EuttNoRet.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From Stdlib Require Import Morphisms . @@ -10,7 +12,6 @@ From ITree Require Import Props.Infinite . -From Coinduction Require Import all. Import Monads. Import MonadNotation. diff --git a/theories/Props/Infinite.v b/theories/Props/Infinite.v index bcf34665..dcf5e368 100644 --- a/theories/Props/Infinite.v +++ b/theories/Props/Infinite.v @@ -4,6 +4,9 @@ - [any_infinite]: there exists an infinite branch. *) (* begin hide *) + +From Coinduction Require Import all. + From Stdlib Require Import Setoid Morphisms diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index d1825a02..ba83d09e 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -1,6 +1,7 @@ (** * Leaves of an Interaction Tree *) - (* begin hide *) +From Coinduction Require Import all. + From ITree Require Import Basics.Utils Basics.HeterogeneousRelations From af42b0d632b9d96c3a45eaafdf7bf80db6cbb701 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 5 May 2026 17:58:25 -0400 Subject: [PATCH 150/189] Done with ITraceBind. --- extra/ITrace/ITraceBind.v | 117 +++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 60 deletions(-) diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index a2ae7368..789596f3 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -649,10 +649,10 @@ Proof. - simpobs. destruct (observe b) eqn : Heqb; red; cbn. + constructor; auto. rewrite <- Heqb. eapply IHeqitF; eauto. + destruct (observe t) eqn : Heqt; cbn. - * constructor. idtac. Utils.step. - enough (t0 ≈ peel_cont_ (observe t0) (observe t2) ). auto. - symmetry. - eapply peel_cont_ret_inv in H. symmetry. step. auto. + * + symmetry in H. unstep in H. + eapply peel_cont_ret_inv with (b := t0) in H. cbn in H. + taus. symmetry. now do 2 Utils.step. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. * constructor. idtac. rewrite <- Heqt. eapply CIH. step. rewrite Heqt. auto. @@ -662,13 +662,13 @@ Qed. #[global] Instance proper_eutt_peel_cont {E R S} : Proper (eutt eq ==> eutt eq ==> eq ==> eutt eq) (@peel_cont E R S). Proof. repeat intro. subst. rewrite proper_peel_cont_eutt_l; eauto. - rewrite proper_peel_cont_eutt_r; eauto. reflexivity. + rewrite proper_peel_cont_eutt_r; eauto. Qed. (* Lemma peel_cont_bind : forall (E : Type -> Type) (R S : Type) (b : itrace E S) (t : itree E R) (f : R -> itree E S), b ⊑ ITree.bind t f -> (ITree.bind (peel b t) (peel_cont b t) ≈ b). Proof. - intros E R S. coinduction c CIH. intros. step in H0. step. red in H0. cbn in *. + intros E R S. coinduction c CIH. intros. step in H0. cbn in *. unfold ITree.bind in H0. unfold ITree.bind. cbn in *. unfold observe at 1. cbn. *) @@ -680,16 +680,16 @@ Lemma vis_refine_peel : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : Proof. intros E R S A. (* coinduction c CIH. *) intros e a k1 k2 k3 Hpeel. unfold peel in *. cbn in *. step in Hpeel. - red in Hpeel. cbn in *. cbn in Hpeel. + cbn in *. unfold observe in Hpeel. cbn in Hpeel. unfold peel_vis in Hpeel. - assert (A = A). auto. + assert (A = A) by auto. destruct (classicT (A = A) ); try contradiction. unfold eq_rect_r, eq_rect in Hpeel. remember (eq_sym e0) as He. dependent destruction He. cbn in *. clear HeqHe e0 H. step. cbn. inv Hpeel. ddestruction. specialize (REL tt). assert (peel_ (observe (k1 tt)) (observe (k2 a)) ≈ k3 tt ). auto. - symmetry in H. step in H. + symmetry in H. now step in H. Qed. Lemma vis_refine_peel_cont : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : A) @@ -697,7 +697,7 @@ Lemma vis_refine_peel_cont : forall (E : Type -> Type) (R S A : Type) (e : E A) (peel_cont_ (VisF (evans _ e a) k1) (VisF e k2) ≈ t) -> (t ≈ peel_cont_ (observe (k1 tt)) (observe (k2 a))). Proof. - intros E R S A e a k1 k2 t Hpeelcont. step in Hpeelcont. red in Hpeelcont. + intros E R S A e a k1 k2 t Hpeelcont. step in Hpeelcont. unfold observe in Hpeelcont at 1. cbn in *. unfold peel_cont_vis in *. assert (A = A); auto. destruct (classicT (A = A) ); try contradiction. unfold eq_rect_r, eq_rect in *. remember (eq_sym e0) as He. @@ -711,7 +711,7 @@ Lemma spin_not_vis : forall (E : Type -> Type) (R A : Type) (e : E A) (k : A -> itree E R), ~ ITree.spin ≈ Vis e k. Proof. - intros E R A e k Hcontra. step in Hcontra. red in Hcontra. cbn in *. + intros E R A e k Hcontra. step in Hcontra. cbn in *. dependent induction Hcontra. eapply IHHcontra; eauto. Qed. @@ -719,7 +719,7 @@ Qed. Lemma peel_vis_empty_contra: forall (R : Type) (E : Type -> Type) (S A0 : Type) (Hempty : A0 -> void) (ev : E A0) (k0 : void -> itree (EvAns E) S) (t0 : itree E R) (A : Type) (a : A) (e : E A) (k : unit -> itrace E R), - eqitF eq true true id (upaco2 (eqit_ eq true true id) bot2) + eqitF eq true true (eutt eq) (observe (peel_ (VisF (evempty A0 Hempty ev) k0) (observe t0))) (VisF (evans A e a) k) -> False. Proof. @@ -737,7 +737,7 @@ Lemma vis_peel_l : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : A) (peel b t ≈ Vis (evans _ e a) k) -> exists k', (b ≈ Vis (evans _ e a) k'). Proof. intros E R S A e a b t f k Href Hpeel. - step in Hpeel. red in Hpeel. cbn in Hpeel. dependent induction Hpeel. + step in Hpeel. cbn in Hpeel. dependent induction Hpeel. - unfold peel in x. destruct (observe b) eqn : Heqb; destruct (observe t) eqn : Heqt; try destruct e0; cbn in *; dependent destruction x. unfold observe in x. cbn in x. @@ -748,8 +748,8 @@ Proof. symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqb. apply simpobs in Heqt. rewrite Heqb in Href. rewrite Heqt in Href. rewrite bind_vis in Href. - step in Href. red in Href. cbn in *. inv Href. - ddestruction. subst. inv H1. auto. + step in Href. cbn in *. inv Href. + ddestruction. subst. inv H1. } destruct (classicT (A0 = X0)); try (exfalso; auto; fail). unfold eq_rect_r, eq_rect in x. remember (eq_sym e0) as He. @@ -778,7 +778,7 @@ Proof. + unfold observe in x. cbn in x. unfold peel_vis in x. symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqt. apply simpobs in Heqb. rewrite Heqb in Href. rewrite Heqt in Href. - rewrite bind_vis in Href. step in Href. red in Href. cbn in *. + rewrite bind_vis in Href. step in Href. cbn in *. inv Href. ddestruction. subst. inv H1. subst; ddestruction; subst. assert (A0 = A0); auto. destruct (classicT (A0 = A0) ); try contradiction. unfold eq_rect_r, eq_rect in *. remember (eq_sym e0) as He. @@ -792,7 +792,7 @@ Lemma vis_peel_r : forall (E : Type -> Type) (R S A : Type) (e : E A) (a : A) Proof. intros E R S A e a b t f k Href Hpeel. eapply vis_peel_l in Hpeel as Hpeell; eauto. destruct Hpeell as [k' Hb]. - rewrite Hb in Href. rewrite Hb in Hpeel. clear Hb b. step in Hpeel. red in Hpeel. cbn in *. + rewrite Hb in Href. rewrite Hb in Hpeel. clear Hb b. step in Hpeel. cbn in *. unfold peel in Hpeel. cbn in *. dependent induction Hpeel. - destruct (observe t) eqn : Heqt; dependent destruction x. symmetry in Heqt. apply simpobs in Heqt. setoid_rewrite Heqt. @@ -800,7 +800,7 @@ Proof. cbn in *; try discriminate. unfold eq_rect_r, eq_rect in x. remember (eq_sym e1) as He. dependent destruction He. cbn in *. exists k0. - rewrite Heqt in Href. rewrite bind_vis in Href. step in Href. red in Href. + rewrite Heqt in Href. rewrite bind_vis in Href. step in Href. cbn in *. inv Href. ddestruction; subst. inv H1. ddestruction; subst. reflexivity. - destruct (observe t) eqn : Heqt; cbn in *; dependent destruction x. + symmetry in Heqt. apply simpobs in Heqt. rewrite Heqt in Href. rewrite tau_eutt in Href. @@ -818,11 +818,10 @@ Lemma peel_cont_vis_eutt: forall (R : Type) (r : R) (E : Type -> Type) (S A : Ty (peel_cont (Vis (evans A ev ans) kb) (Vis ev kt) r ≈ peel_cont (kb tt) (kt ans) r). Proof. intros R r E S A ev ans kb kt. - step. cbn. red. unfold observe at 1. cbn in *. unfold peel_cont_vis. + step. unfold observe at 1. cbn. unfold peel_cont_vis. assert (A = A); auto. destruct (classicT (A = A)); try contradiction. unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. - dependent destruction He. cbn. constructor; auto. unfold peel_cont. - apply eqitF_r_refl. + dependent destruction He. cbn. constructor; auto. Qed. Lemma peel_cont_refine_t : forall (E : Type -> Type) (R S : Type) @@ -848,15 +847,13 @@ Proof. rewrite Hkb in H1. rewrite Htk in H1. apply vis_refine_peel in H1 as Hk. rewrite peel_cont_vis_eutt. apply IHmay_converge; auto. - + rewrite bind_vis in Hrutt. step in Hrutt. red in Hrutt. cbn in *. + + rewrite bind_vis in Hrutt. step in Hrutt. cbn in *. inv Hrutt. ddestruction; subst. assert (RAnsRef E unit A (evans A ev ans) tt ev ans ); auto with itree. apply H8 in H. auto. + destruct b. symmetry. auto. Qed. -Ltac fold_eutt := match goal with |- paco2 _ _ ?t1 ?t2 => - apply pacobot2; change (t1 ≈ t2); auto end. Ltac fold_peel_cont r := match goal with |- context [peel_cont_ (observe ?b) (observe ?t) ] => assert (Hfpc : forall r, peel_cont_ (observe b) (observe t) = peel_cont b t r ); auto; rewrite (Hfpc r); @@ -869,7 +866,7 @@ Lemma trace_prefix_tau_ret: observe b = RetF r0 -> forall t0 : itree E S, observe t = TauF t0 -> - trace_prefixF (upaco2 trace_prefix_ r) (TauF (peel_ (RetF r0) (observe t0))) (RetF r0). + trace_prefixF r (TauF (peel_ (RetF r0) (observe t0))) (RetF r0). Proof. intros E R S r b t f r0 Hrutt Heqb t0 Heqt. symmetry in Heqb. symmetry in Heqt. @@ -878,7 +875,7 @@ Proof. apply trace_refine_ret_inv_r in Hrutt. constructor. assert (exists s, t0 ≈ Ret s). { - step in Hrutt. red in Hrutt. dependent induction Hrutt. + step in Hrutt. dependent induction Hrutt. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Ht0; cbn in *; try discriminate. exists r1. step. rewrite Ht0. cbn. auto with itree. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Ht0; cbn in *; try discriminate. @@ -886,12 +883,12 @@ Proof. + injection x as Ht1. symmetry in Ht0. apply simpobs in Ht0. apply eq_sub_eutt in Ht0 as Ht0'. setoid_rewrite Ht0'. setoid_rewrite tau_eutt. eapply IHHrutt; eauto. - rewrite Ht1. eauto. subst. cbn. unfold ITree.bind. reflexivity. + rewrite Ht1. eauto. } - destruct H as [s Ht0]. step in Ht0. red in Ht0. cbn in Ht0. + destruct H as [s Ht0]. step in Ht0. cbn in Ht0. clear Heqt Hrutt. dependent induction Ht0. - - simpobs. cbn. step in Heqb. red in Heqb. cbn in *. inv Heqb; try inv CHECK. + - simpobs. cbn. step in Heqb. cbn in *. inv Heqb; try inv CHECK. rewrite H0. auto with itree. - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. @@ -902,18 +899,17 @@ Lemma trace_prefix_vis_evans: forall (E : Type -> Type) (R S : Type) (r : itrace (t0 : itree E S) (f : S -> itree E R), (forall (a : unit) (b : A0), RAnsRef E unit A0 (evans A0 ev ans) a ev b -> - id - (upaco2 (rutt_ (REvRef E) (RAnsRef E) eq) - bot2) (k a) (ITree.bind (k' b) f)) -> + rutt (REvRef E) (RAnsRef E) eq + (k a) (ITree.bind (k' b) f)) -> (t0 ≈ Vis ev k') -> (forall (b : itrace E R) (t : itree E S) (f : S -> itree E R), b ⊑ ITree.bind t f -> r (peel b t) b) -> - trace_prefixF (upaco2 trace_prefix_ r) + trace_prefixF r (observe (peel_ (VisF (evans A0 ev ans) k) (observe t0))) (VisF (evans A0 ev ans) k). Proof. intros E R S r A0 ev ans k k' t0 f Hk' Ht0 CIH. - step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. + step in Ht0. cbn in *. dependent induction Ht0. - simpobs. unfold observe. cbn. unfold peel_vis. assert (A0 = A0); auto. destruct (classicT (A0 = A0)); try contradiction. unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. @@ -929,10 +925,10 @@ Lemma trace_prefix_vis_evempty: forall (E : Type -> Type) (R S : Type) (A0 : Type) (Hempty : A0 -> void) (ev : E A0) (k : void -> itree (EvAns E) R) (A : Type) (e0 : E A) (t0 : itree E S) (k' : A -> itree E S), - eqitF eq true true id - (upaco2 (eqit_ eq true true id) bot2) + eqitF eq true true + (eutt eq) (observe t0) (VisF e0 k') -> - trace_prefixF (upaco2 trace_prefix_ r) + trace_prefixF r (observe (peel_ (VisF (evempty A0 Hempty ev) k) (TauF t0))) (VisF (evempty A0 Hempty ev) k). @@ -951,15 +947,15 @@ Lemma trace_prefix_peel_ret_vis: forall (E : Type -> Type) (R S : Type) (k : unit -> itree (EvAns E) R) (t0 : itree E S) (s : S), t0 ≈ Ret s -> - trace_prefixF (upaco2 trace_prefix_ r) + trace_prefixF r (observe (peel_ (VisF (evans A0 ev ans) k) (observe t0))) (VisF (evans A0 ev ans) k). Proof. intros E R S r A0 ev ans k t0 s Ht0. - step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. + step in Ht0. cbn in *. dependent induction Ht0. - simpobs. cbn. remember (go (VisF (evans A0 ev ans) k ) ) as t. - enough (trace_prefixF (upaco2 trace_prefix_ r) (RetF s) (observe t) ). + enough (trace_prefixF r (RetF s) (observe t) ). { subst. auto. } constructor. - simpobs. cbn. constructor. eapply IHHt0; eauto. @@ -971,15 +967,15 @@ Lemma trace_prefix_peel_ret_vis_empty: forall (E : Type -> Type) (R S : Type) (k : void -> itree (EvAns E) R) (t0 : itree E S) (s : S), t0 ≈ Ret s -> - trace_prefixF (upaco2 trace_prefix_ r) + trace_prefixF r (observe (peel_ (VisF (evempty A0 Hempty ev) k) (observe t0))) (VisF (evempty A0 Hempty ev) k). Proof. intros E R S r A0 Hempty ev k t0 s Ht0. - step in Ht0. red in Ht0. cbn in *. dependent induction Ht0. + step in Ht0. cbn in *. dependent induction Ht0. - simpobs. cbn. remember (go (VisF (evempty A0 Hempty ev) k ) ) as t. - enough (trace_prefixF (upaco2 trace_prefix_ r) (RetF s) (observe t) ). + enough (trace_prefixF r (RetF s) (observe t) ). { subst. auto. } constructor. - simpobs. cbn. constructor. eapply IHHt0; eauto. @@ -990,36 +986,36 @@ Lemma trace_prefix_peel : forall (E : Type -> Type) (S R : Type) (b : itrace E R b ⊑ ITree.bind t f -> trace_prefix (peel b t) b. Proof. - intros E S R. coinduction c CIH. intros b t f Href. step. unfold peel. - destruct (observe b) eqn : Heqb; destruct (observe t) eqn : Heqt; cbn. - - rewrite <- Heqb. auto with itree. - - eapply trace_prefix_tau_ret; eauto. + intros E S R. coinduction c CIH. intros b t f Href. unfold peel. + destruct (observe b) eqn : Heqb; destruct (observe t) eqn : Heqt; icbn; cbn. + - cbn. auto with itree. + - simpobs. eapply trace_prefix_tau_ret; eauto. - symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqb. apply simpobs in Heqt. rewrite Heqb in Href. rewrite Heqt in Href. rewrite bind_vis in Href. sinv Href. - - rewrite <- Heqb. auto with itree. - - constructor. eapply CIH. symmetry in Heqb. symmetry in Heqt. + - simpobs. auto with itree. + - simpobs. constructor. eapply CIH. symmetry in Heqb. symmetry in Heqt. apply simpobs in Heqb. apply simpobs in Heqt. rewrite Heqb in Href. rewrite Heqt in Href. repeat rewrite tau_eutt in Href. eauto. - - constructor. rewrite <- Heqt. eapply CIH. + - simpobs. constructor. rewrite <- Heqt. eapply CIH. symmetry in Heqb. apply simpobs in Heqb. rewrite Heqb in Href. rewrite tau_eutt in Href. eauto. - - destruct e; cbn; rewrite <- Heqb; auto with itree. - - symmetry in Heqb. apply simpobs in Heqb. + - simpobs. destruct e; cbn; rewrite <- Heqb; auto with itree. + - simpobs. symmetry in Heqb. apply simpobs in Heqb. rewrite Heqb in Href. apply trace_refine_vis_l in Href as Hbt. destruct Hbt as [A [e0 [k0 Hvis] ] ]. symmetry in Heqt. apply simpobs in Heqt. rewrite Heqt in Hvis. rewrite tau_eutt in Hvis. assert ((exists B, exists k', exists (e1 : E B) , t0 ≈ Vis e1 k') \/ exists s, t0 ≈ Ret s). { - step in Hvis. red in Hvis. clear Heqb Heqt. + step in Hvis. clear Heqb Heqt. dependent induction Hvis. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Heqt0; try discriminate. - + idtac. exists r0. step. cbn. rewrite Heqt0. auto with itree. - + cbn in x. idtac. exists X0. exists k2. exists e1. symmetry in Heqt0. + + right. exists r. step. cbn. rewrite Heqt0. auto with itree. + + cbn in x. left. exists X0. exists k2. exists e1. symmetry in Heqt0. apply simpobs in Heqt0. rewrite Heqt0. reflexivity. - unfold observe in x. cbn in *. destruct (observe t0) eqn : Heqt0; try discriminate. - + idtac. exists r0. step. cbn. rewrite Heqt0. auto with itree. + + right. exists r. step. cbn. rewrite Heqt0. auto with itree. + injection x as Ht1. symmetry in Heqt0. apply simpobs in Heqt0. setoid_rewrite Heqt0. setoid_rewrite tau_eutt. eapply IHHvis; eauto. rewrite Ht1. auto. @@ -1030,17 +1026,18 @@ Proof. sinv Href. subst; ddestruction; subst. rewrite Ht0 in Hvis. rewrite bind_vis in Hvis. sinv Hvis. subst; ddestruction; subst. clear Heqt Heqb. - step in Ht0. red in Ht0. cbn in *. + step in Ht0. cbn in *. destruct e. * inv H1. ddestruction; subst. cbn. constructor. eapply trace_prefix_vis_evans; eauto with itree. + now step. * eapply trace_prefix_vis_evempty; eauto. + rewrite Heqt in Href. rewrite Ht0 in Href. rewrite tau_eutt in Href. rewrite bind_ret_l in Href. clear Hvis. destruct e. * cbn. constructor. eapply trace_prefix_peel_ret_vis; eauto. * cbn. constructor. eapply trace_prefix_peel_ret_vis_empty; eauto. - - destruct e; cbn; [ | constructor ]. + - destruct e; cbn; simpobs; [ | constructor ]. symmetry in Heqt. apply simpobs in Heqt. rewrite Heqt in Href. rewrite bind_vis in Href. symmetry in Heqb. apply simpobs in Heqb. rewrite Heqb in Href. sinv Href. subst; ddestruction; subst. @@ -1075,7 +1072,7 @@ Lemma bind_peel_ret_tau_aux: Ret r0 ⊑ ITree.bind t0 f -> exists r : R, t0 ≈ Ret r. Proof. intros E S R f r0 t0 Hrutt. - step in Hrutt. red in Hrutt. cbn in *. dependent induction Hrutt. + step in Hrutt. cbn in *. dependent induction Hrutt. - unfold ITree.bind in x. unfold observe in x at 1. cbn in *. destruct (observe t0) eqn : Ht0; try discriminate. exists r. step. rewrite Ht0. constructor. auto. @@ -1105,7 +1102,7 @@ Proof. intros. rewrite bind_trigger in H0. apply trace_refine_vis in H0 as Hvis. destruct Hvis as [X [e' [k' Hbvis] ] ]. setoid_rewrite Hbvis. rewrite Hbvis in H0. - step in H. cbn in *. inv H0. ddestruction. subst. inv H3; ddestruction; subst. + step in H0. cbn in *. inv H0. ddestruction. subst. inv H3; ddestruction; subst. - exists a. exists k'. split; try reflexivity. assert (RAnsRef E unit A (evans A e a) tt e a ); auto with itree. apply H8 in H0. auto. From a810141ae3b637796817aa34f192ff3cb3232300 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 09:01:22 -0400 Subject: [PATCH 151/189] Much progress. Onto PureITreeDijkstra.v. --- _CoqProject | 4 +- extra/Dijkstra/ITreeDijkstra.v | 21 +---- extra/Dijkstra/PureITreeDijkstra.v | 14 ++-- extra/ITrace/ITraceBind.v | 34 ++++---- extra/ITrace/ITracePreds.v | 68 ++++++++------- theories/Basics/Utils.v | 14 ---- theories/Core/KTreeFacts.v | 2 - theories/Eq/Eqit.v | 130 +++++------------------------ theories/Eq/SimUpToTaus.v | 29 ------- theories/Events/ExceptionFacts.v | 1 - theories/Interp/HandlerFacts.v | 1 - theories/Interp/InterpFacts.v | 3 +- 12 files changed, 90 insertions(+), 231 deletions(-) diff --git a/_CoqProject b/_CoqProject index f57feb1e..2ec79b71 100644 --- a/_CoqProject +++ b/_CoqProject @@ -83,12 +83,12 @@ extra/ITrace/ITraceDefinition.v extra/ITrace/ITraceFacts.v extra/ITrace/ITracePrefix.v extra/ITrace/ITraceBind.v -# extra/ITrace/ITracePreds.v +extra/ITrace/ITracePreds.v extra/Dijkstra/DijkstraMonad.v extra/Dijkstra/IterRel.v extra/Dijkstra/PureITreeBasics.v -# extra/Dijkstra/PureITreeDijkstra.v +extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/StateSpecT.v extra/Dijkstra/StateDelaySpec.v diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index 9449fb65..af684460 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From Stdlib Require Import Morphisms. @@ -22,25 +24,6 @@ Import MonadNotation. #[local] Open Scope monad_scope. #[local] Open Scope delayspec_scope. - #[local] Tactic Notation "step" := - match goal with - | |- context [@body _] => step - | |- context [@elem _] => step - | |- _ => (* gfp case *) repeat red; step - end. - -#[local] Tactic Notation "step" "in" ident(h) := - repeat red in h; step in h; - match type of h with - | context [@body _] => repeat red in h - | _ => idtac - end. - -#[local] Tactic Notation "coinduction" simple_intropattern(c) - simple_intropattern(CIH) := - repeat red; coinduction c CIH. - - Section ITreeDijkstra. diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index dcb8dd1c..28acbe73 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From ExtLib Require Import Structures.Monad. @@ -240,17 +242,17 @@ Hint Constructors iterF : itree. eapply cont_a; eauto. now apply H. Qed. -Lemma do_iter_mon_next : False. -fail "next todo: iter_mon". -Abort. + Definition iter_mon {A B} body p Hp := Build_mon (@iter_mono A B body p Hp). Definition _iter {A B} := fun (f : A -> PureITreeSpec (A + B) ) (a : A) (p : itree void1 B -> Prop) (Hp : resp_eutt p) => - gfp (fun (F : A -> Prop) a => @iter_ A B F f a p Hp ) a. - + gfp (@iter_mon A B f p Hp). +Lemma fix_monotinici_next : False. + fail "next task: fix monotinici definitions". +Abort. - Lemma iter_monot : forall A B (f : A -> PureITreeSpec (A + B) ) (a : A), + Lemma iter_monot : forall A B (f : A -> PureITreeSpec (A + B) ) (a : A), monotonici B (_iter f a). Proof. unfold monotonici. intros. generalize dependent a. diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 789596f3..a51cb8af 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -392,7 +392,7 @@ Proof. unfold peel_vis. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. - cbn. constructor. intros. idtac. eapply CIH; eauto with itree. + cbn. constructor. intros. eapply CIH; eauto with itree. ** cbn. reflexivity. ++ simpobs. cbn. constructor; auto; eapply IHeqitF; eauto. * constructor; auto. clear IHeqitF. @@ -406,9 +406,9 @@ Proof. * constructor; auto. clear IHeqitF. dependent induction H. ++ simpobs. cbn. constructor; auto. ++ simpobs. cbn. constructor; eauto. - * constructor. idtac. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. + * constructor. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. step. auto. - * constructor. rewrite <- Heqb. idtac. eapply CIH; eauto. rewrite <- tau_eutt. + * constructor. rewrite <- Heqb. eapply CIH; eauto. rewrite <- tau_eutt. step. auto. * constructor; auto. clear IHeqitF. dependent induction H. ++ simpobs. unfold observe. cbn. @@ -416,7 +416,7 @@ Proof. destruct (classicT (A = X0) ). ** unfold eq_rect_r, eq_rect. remember (eq_sym e) as He. dependent destruction He. - cbn. constructor. intros. idtac. eapply CIH; apply REL. + cbn. constructor. intros. eapply CIH; apply REL. ** cbn. reflexivity. ++ simpobs. cbn. constructor; eauto. * constructor; auto. clear IHeqitF. dependent induction H. @@ -510,8 +510,8 @@ Qed. Proof. intros E R r ot. destruct ot; constructor; auto. - - idtac. apply pacobot2, reflexivity. - - idtac. apply pacobot2, reflexivity. + - apply pacobot2, reflexivity. + - apply pacobot2, reflexivity. Qed. *) (* Lemma eqitF_mon: @@ -522,8 +522,8 @@ Qed. *) Proof. intros E R r t1 t0' REL. induction REL; constructor; eauto. - - idtac. apply pacobot2; auto. - - intros. idtac. apply pacobot2; auto. + - apply pacobot2; auto. + - intros. apply pacobot2; auto. Qed. *) Lemma eqitF_observe_peel_cont_vis: @@ -544,7 +544,7 @@ Proof. destruct (classicT (A = X) ). - unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. - intros. idtac. eapply CIH. auto with itree. + intros. eapply CIH. auto with itree. - cbn. taus. Admitted. @@ -573,22 +573,22 @@ Proof. simpobs. constructor. auto. + simpobs. cbn. destruct (observe b') eqn : Heqb'; cbn. - * constructor. idtac. rewrite <- Heqb'. eapply CIH. + * constructor. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. step. auto. * constructor. eapply CIH. setoid_rewrite <- tau_eutt at 2. step. auto. - * constructor. idtac. rewrite <- Heqb'. eapply CIH. + * constructor. rewrite <- Heqb'. eapply CIH. symmetry in Heqb'. apply simpobs in Heqb'. rewrite Heqb'. step. auto. + simpobs. cbn. destruct (observe b) eqn : Heqb; cbn. - * constructor; auto. idtac. rewrite <- Heqb. eapply CIH. + * constructor; auto. rewrite <- Heqb. eapply CIH. step. rewrite Heqb. auto. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. - * constructor. idtac. rewrite <- Heqb. eapply CIH. step. + * constructor. rewrite <- Heqb. eapply CIH. step. rewrite Heqb. auto. - dependent induction H; cbn. + simpobs. simpobs. cbn. reflexivity. - + simpobs. simpobs. cbn. constructor. idtac. rewrite <- Heqt. eapply CIH. + + simpobs. simpobs. cbn. constructor. rewrite <- Heqt. eapply CIH. auto. + simpobs. destruct e; cbn; try (apply eqitF_observe_peel_cont_vis; auto). reflexivity. @@ -632,7 +632,7 @@ Proof. * unfold observe. cbn. unfold peel_cont_vis. destruct (classicT (A = u) ); try reflexivity. unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. - dependent destruction He. cbn. constructor. intros. idtac. + dependent destruction He. cbn. constructor. intros. eapply CIH. auto with itree. * reflexivity. - simpobs. destruct (observe b) eqn : Heqb; red; cbn. @@ -643,7 +643,7 @@ Proof. rewrite H. reflexivity. * constructor. eapply CIH; eauto. setoid_rewrite <- tau_eutt at 2. step. auto. - * constructor. idtac. rewrite <- Heqt'. eapply CIH. + * constructor. rewrite <- Heqt'. eapply CIH. step. rewrite Heqt'. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. - simpobs. destruct (observe b) eqn : Heqb; red; cbn. @@ -654,7 +654,7 @@ Proof. eapply peel_cont_ret_inv with (b := t0) in H. cbn in H. taus. symmetry. now do 2 Utils.step. * constructor. eapply CIH. rewrite <- tau_eutt at 1. step. auto. - * constructor. idtac. rewrite <- Heqt. eapply CIH. + * constructor. rewrite <- Heqt. eapply CIH. step. rewrite Heqt. auto. + rewrite <- Heqb. constructor; auto. eapply IHeqitF; eauto. Qed. diff --git a/extra/ITrace/ITracePreds.v b/extra/ITrace/ITracePreds.v index 6b384f4c..2dc07847 100644 --- a/extra/ITrace/ITracePreds.v +++ b/extra/ITrace/ITracePreds.v @@ -1,3 +1,4 @@ +From Coinduction Require Import all. From Stdlib Require Import Morphisms . @@ -13,8 +14,6 @@ From ITree.Extra Require Import ITrace.ITraceBind . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -34,28 +33,32 @@ Variant trace_forallF {E : Type -> Type} {R : Type} (F : itrace E R -> Prop) Definition trace_forall_ {E R} PE PR F (b : itrace E R) := trace_forallF F PE PR (observe b). -Lemma trace_forall_monot {E R} PE PR : monotone1 (@trace_forall_ E R PE PR). +Lemma trace_forall_mono {E R} PE PR : Proper (leq ==> leq) (@trace_forall_ E R PE PR). Proof. - repeat intro. red in IN. red. induction IN; auto with itree. + repeat intro. red in H0. red. induction H0; + constructor; intros; auto; now apply H. Qed. -#[global] Hint Resolve trace_forall_monot : paco. +Definition trace_forall_mon {E R} PE PR := Build_mon (@trace_forall_mono E R PE PR). + -Definition trace_forall {E R} PE PR := paco1 (@trace_forall_ E R PE PR) bot1. +Definition trace_forall {E R} PE PR := gfp (@trace_forall_mon E R PE PR). Lemma trace_forall_proper_aux: forall (E : Type -> Type) (R : Type) (PE : forall A : Type, EvAns E A -> Prop) (PR : R -> Prop) (b1 b2 : itree (EvAns E) R), (b1 ≈ b2) -> trace_forall PE PR b1 -> trace_forall PE PR b2. Proof. - intros E R PE PR. coinduction c CIH. intros b1 b2 Heutt Hforall. - step. step in Hforall. red in Hforall. - step in Heutt. red in Heutt. induction Heutt; subst; auto. + intros E R PE PR. icoinduction c CIH. intros b1 b2 Heutt Hforall. + step in Hforall. + step in Heutt. induction Heutt; subst; auto. - inv Hforall. auto with itree. - - inv Hforall. constructor. right. eapply CIH; eauto. + - inv Hforall. constructor. eapply CIH; eauto. - inv Hforall. ddestruction. subst. - constructor; auto. intros. right. eapply CIH; eauto with itree. apply H3. - - apply IHHeutt. inv Hforall. step in H0. - - constructor. left. step. apply IHHeutt. auto. + constructor; auto. intros. eapply CIH. + apply REL. + apply H3. + - apply IHHeutt. inv Hforall. now step in H0. + - constructor. Utils.step. apply IHHeutt. auto. Qed. #[global] Instance trace_forall_proper_eutt {E R PE PR} : Proper (eutt eq ==> iff) (@trace_forall E R PE PR). @@ -67,8 +70,8 @@ Qed. Lemma forall_spin : forall E R PE PR, trace_forall PE PR (@ITree.spin (EvAns E) R). Proof. - intros. coinduction c CIH. step. cbn. constructor. - right. auto. + intros. icoinduction c CIH. cbn. constructor. + auto. Qed. Inductive trace_inf_oftenF {E : Type -> Type} {R : Type} (PE : forall A, EvAns E A -> Prop) @@ -86,14 +89,16 @@ Inductive trace_inf_oftenF {E : Type -> Type} {R : Type} (PE : forall A, EvAns E Definition trace_inf_often_ {E R} PE F (b : itrace E R) := trace_inf_oftenF PE F (observe b). -Lemma trace_inf_often_monot {E R} PE : monotone1 (@trace_inf_often_ E R PE). +Lemma trace_inf_often_mono {E R} PE : Proper (leq ==> leq) (@trace_inf_often_ E R PE). Proof. - repeat intro. red in IN. red. induction IN; auto with itree. + repeat intro. red in H0. red. induction H0. + 1-2: now constructor. + constructor 3; auto. now apply H. Qed. -#[global] Hint Resolve trace_inf_often_monot : paco. +Definition trace_inf_often_mon {E R} PE := Build_mon (@trace_inf_often_mono E R PE). -Definition trace_inf_often {E R} PE := paco1 (@trace_inf_often_ E R PE) bot1. +Definition trace_inf_often {E R} PE := gfp (@trace_inf_often_mon E R PE). Inductive front_and_last {E : Type -> Type} {R : Type} (PEF : forall A, EvAns E A -> Prop) (PEL : forall A, EvAns E A -> Prop) (PR : R -> Prop) : itrace E R -> Prop := @@ -101,7 +106,6 @@ Inductive front_and_last {E : Type -> Type} {R : Type} (PEF : forall A, EvAns E b ≈ Vis e (fun u => Ret r) -> PEL unit e -> PR r -> front_and_last PEF PEL PR b | front_and_last_cons (e : EvAns E unit) (k : unit -> itrace E R) (b : itree (EvAns E) R ) : b ≈ Vis e k -> PEF unit e -> front_and_last PEF PEL PR (k tt) -> front_and_last PEF PEL PR b - . Lemma fal_proper_aux: forall (E : Type -> Type) (R : Type) (PEF PEL : forall A : Type, EvAns E A -> Prop) @@ -145,32 +149,36 @@ Section StateMachine. Definition state_machine_ F PEv PRet (tr : itrace E R) := state_machineF PEv PRet F (observe tr). - Lemma monotone_state_machine : monotone3 state_machine_. + Lemma state_machine_mono : Proper (leq ==> leq) state_machine_. Proof. - red. intros. red. red in IN. induction IN; auto with itree. + intros!. red. red in H0. induction H0; auto with itree. + constructor; auto. now apply H. Qed. - Hint Resolve trace_inf_often_monot : paco. - Definition state_machine PEv PRet (tr : itrace E R) : Prop := paco3 (state_machine_) bot3 PEv PRet tr. + + Definition state_machine_mon := Build_mon (state_machine_mono). + + Definition state_machine := gfp (state_machine_mon). Lemma state_machine_proper_aux : forall PEv PRet (t1 t2 : itrace E R), (t1 ≈ t2) -> state_machine PEv PRet t1 -> state_machine PEv PRet t2. Proof. - coinduction c CIH. intros PEV PREt t1 t2 Heutt Hsm. step. red. + icoinduction c CIH. intros PEV PREt t1 t2 Heutt Hsm. step in Hsm; try apply monotone_state_machine. - step in Heutt. red in Heutt. red in Hsm. + step in Heutt. induction Hsm. - - remember (RetF r0) as ot1. induction Heutt; subst; auto with itree; try discriminate. + - remember (RetF r) as ot1. induction Heutt; subst; auto with itree; try discriminate. injection Heqot1; intros; subst; auto with itree. - - apply IHHsm. pstep_reverse. assert (Tau t ≈ t2); auto with itree. + - apply IHHsm. unstep. assert (Tau t ≈ t2) by now step. rewrite tau_eutt in H. auto. - remember (VisF (evans A e a) k ) as ot1. induction Heutt; subst; auto with itree; try discriminate. injection Heqot1; intros; subst. dependent destruction H1. - subst. constructor; auto. right. eapply CIH; eauto with itree. + subst. constructor; auto. eapply CIH; try apply REL; eauto. Qed. #[global] Instance state_machine_proper_eutt {PEv PRet} : Proper (eutt eq ==> iff) (@state_machine PEv PRet). Proof. - intros t1 t2 Heutt. split; intros; try eapply state_machine_proper_aux; eauto; symmetry; auto. + intros t1 t2 Heutt. assert (Heutt2 : t2 ≈ t1) by now symmetry. + split; intros; eapply state_machine_proper_aux; eauto. Qed. End StateMachine. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 05ab1f56..60176b32 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -125,20 +125,6 @@ Ltac saturate H := clear H; crunch end. -(* RTODO: Deprecate these *) - -Lemma pacobot1 (T0 : Type) (gf : rel1 T0 -> rel1 T0) (r : rel1 T0) - : paco1 gf bot1 <1= paco1 gf r. -Proof. - intros x0 H. apply (paco1_mon _ H); contradiction. -Qed. - -Lemma pacobot2 (T0 : Type) (T1 : T0 -> Type) (gf : rel2 T0 T1 -> rel2 T0 T1) (r : rel2 T0 T1) - : paco2 gf bot2 <2= paco2 gf r. -Proof. - intros x0 x1 H. eapply (paco2_mon _ H); contradiction. -Qed. - (* [coinduction]-like tactics *) (* Until https://github.com/damien-pous/coinduction/pull/22 gets merge *) diff --git a/theories/Core/KTreeFacts.v b/theories/Core/KTreeFacts.v index 50721de7..53dc6aa8 100644 --- a/theories/Core/KTreeFacts.v +++ b/theories/Core/KTreeFacts.v @@ -1,5 +1,3 @@ -(* Rtodo: automatic to_mon for rewriting *) - (** * Facts about [aloop] and [loop] *) (* begin hide *) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index a5de8ba4..56f8f91e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -2,7 +2,6 @@ RTODOS: - rename and redo sections - organize file -- remove add parametric morphism *) (** * Strong bisimulation *) @@ -1063,65 +1062,15 @@ assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq step in Hfalse. inv Hfalse. Qed. -(* RTODO: see if this is true *) Lemma euttge_proper_flip_euttgeC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttgeC) : Proper (euttge (E := E) eq ==> flip (euttge eq) ==> flip impl) (elem c _ _ RR). -Proof with eauto with itree. - unfold Proper, respectful, flip, impl. - tower induction. - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - intros EQ. icbn in *. - genobs x' ox'; genobs y' oy'. - (* [hinduction] is not sufficient here, because [move] is unable to pass - through [ox] to reach [x] *) - revert x x' y y' Heqox' Heqoy' EQx EQy. - induction EQ; intros. - + clear x' y' Heqox' Heqoy'. - genobs x ox. - genret r1 or1. - revert x Heqox. - hinduction EQx before ox; try easy. - * intros; subst; inv Heqor1. clear x Heqox. - genobs y oy; genret r2 or2. - revert y Heqoy. - hinduction EQy before oy; try easy. - subst; intros [=<-] ??... - * intros; subst; taul; eapply IHEQx... - + clear x' y' Heqox' Heqoy'. - genobs x ox. - gentau m1 om1. - revert x Heqox. - hinduction EQx before ox; try easy. - * intros [=<-] ? ??. - clear x Heqox. - genobs y oy; gentau m2 om2. - revert y Heqoy. - hinduction EQy before om2; try easy. - intros [=<-] ??... - intros [=<-] ??. - taul. subst. step. - (* unusable IHEQy: - IHEQy : ⊙ t1 = TauF t1 -> forall y : itree E R, - ot2 = ⊙ y -> TauF m0 {[≳⟨eq⟩]} ot2 *) - admit. - * intros; subst; taul; eapply IHEQx... - + clear x' y' Heqox' Heqoy'. - genobs x ox. - genvis e k1 ot1. - revert x Heqox. - hinduction EQx before ox; try easy. - intros. inv_Vis. - apply eqitF_inv_VisF_l in EQy. break EQy; try easy; break H. - simpobs... - intros. taul. eapply IHEQx; eauto. - + edestruct euttge_tau_r_inv; [step; eauto |]. - simpobs. - taul. - eapply IHEQ; eauto. - assert (euttge eq (Tau x0) (Tau t1)) by (now step). - unstep; eapply euttge_tau_inv; eauto. - + easy. + (* FALSE: *) + (* + τ 1 [≳⟨RR⟩] τ 1 + ≳ ≳ + 1 [≳⟨RR⟩] τ 1 + *) Abort. (* The correct instance: first arg uses [euttge eq], second uses [eq_itree eq]. @@ -1290,6 +1239,7 @@ Proof. + now eapply IHINL. + taur. eapply IHINR; eauto. Qed. + Arguments eqit_trans {E R1 R2 R3} [RR1 RR2 b1 b2 t1 t2 t3]. (* We can now package the instances for the top level relations: two equivalences and a preorder as expected. @@ -1430,10 +1380,7 @@ Goal eutt RR u v. Abort. #[local] Parameter (EQUIV : u ≈⟨RR⟩ v). - - (* TODO: have tests work with a relation on leaves. - Currently fails, need better instance - *) + (* Test for rewrites in [eutt]: [eq_itree eq], [] *) Goal t ≈⟨RR⟩ w -> t ≈⟨RR⟩ w. intros H. @@ -1454,19 +1401,17 @@ Abort. assumption. Qed. - (* RTODO: next *) Definition VE := fun _ : Type => Empty_set. #[local] Parameter (EQUIV_tt : eutt (E:= VE) eq (Ret tt) (Ret tt)). Goal eutt (E:= VE) eq (Ret tt) (Ret tt). step. - (* THIS SHOULD WORK *) + (* This should work *) unstep. assert (eutt (E:= VE) eq (Ret tt) (Ret tt)). step. (* we should be able to fold into observe form *) - rewrite observing_observe. + rewrite observing_observe. Abort. - (* RTODO: These *) Goal t ≅ u -> t ≅ u. intros H. rewrite EQ1. @@ -1474,20 +1419,17 @@ Abort. symmetry. symmetry in H. reflexivity. - Qed. +Qed. (* 2. next: this: euttge RR is proper wrt eq_itree RR - make sure this works *) Goal t ≅ u -> v ≅⟨flip RR⟩ u -> t ≳⟨RR⟩ v -> t ≳⟨RR⟩ v. intros EQ1 EQ2' H. rewrite EQ1. rewrite EQ2. apply eqit_flip in EQ2'. - rewrite EQ2 in EQ2'. - (* eapply (eqit_mono RR RR false false); eauto. *) - (* next todo: get this to work *) - Fail rewrite EQ2'. - Fail rewrite <- EQ2'. + rewrite EQ2 in EQ2'. + eapply (eqit_mono RR RR false false); eauto. (* TO FIX: only going through subrelation is insuficient *) - Admitted. +Qed. (* Test [coinduction] tactic, notations *) Goal u ≈ t -> t ≈ u. @@ -1496,7 +1438,7 @@ Abort. step. rewrite H. reflexivity. -Qed. +Qed. End Tests. #[global] Hint Resolve Reflexive_eqit : reflexivity. @@ -1677,7 +1619,7 @@ Proof. Qed. (** *** Transitivity properties *) - +(* TOUR *) #[global] Instance eqitgen_cong_eqit {E R1 R2 RR1 RR2 RS} b1 b2 (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : @@ -1754,16 +1696,9 @@ Lemma tau_eutt_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Tra Proof. intros. split; intros H. - - eapply transitivity. 2 : { apply H. } + - eapply transitivity. 2 : apply H. apply eqit_Tau_r. reflexivity. - - step. econstructor. auto. now step in H. -Qed. - -Lemma tau_eqit_RR_l : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), - eqit true false RR t s -> eqit true false RR (Tau t) s. -Proof. - intros. - step. econstructor. auto. now step in H. + - step. taul. now step in H. Qed. Lemma tau_eutt_RR_r : forall E R (RR : relation R) (HRR: Reflexive RR) (HRT: Transitive RR) (t s : itree E R), @@ -1773,7 +1708,7 @@ Proof. split; intros H. - eapply transitivity. apply H. apply eqit_Tau_l. reflexivity. - - step. econstructor. auto. now step in H. + - step. taur. now step in H. Qed. Lemma eutt_inv_Ret_l {E R} (r1: R) (t2: itree E R): @@ -1900,8 +1835,8 @@ Lemma eqit_Ret b1 b2 (r1 : R1) (r2 : R2) : RR r1 r2 <-> @eqit E b1 b2 _ _ RR (Ret r1) (Ret r2). Proof. split; intros H. - - step. constructor; auto. - - step in H. inversion H; subst; auto. + - step. now constructor. + - sinv H. Qed. (** *** "Up-to" principles for coinduction. *) @@ -1975,7 +1910,7 @@ Qed. End eqit_h. Ltac eret := constructor; eauto with itree. -Ltac etau := taus; eauto with itree. +Ltac etau := constructor; eauto with itree. Ltac evis := constructor; intros; eauto with itree. Ltac ebind := eapply eqit_bind_chain; eauto with itree. @@ -2011,27 +1946,6 @@ Proof. eapply eqit_bind'; eauto. Qed. -(* RTODO: want - -Proper (eutt ==> pointwise_chain ==> chain) bind - -want something finer-grained- eutt lifts a relation - -Choose any postcondition SS. eutt over SS, pointwise_chain over SS. - -we want to pull this out. - -(* -[shelved]. trans true false elem c -[done]1. remove dep. induction -2. consider coinduction library fix- mwe at least -[with yannick] 3. think about removing bind_clo and replacing with proper instance -3.a very strong bespoke proper instance- pull out R1 R2 RR etc. - -*) - -forall t u SS, (elem c SS t u ==> forall x y, SS x y -> elem c (k x) (g y) -> elem c (bind t k) bind u g) -*) #[global] Instance eqit_subst {E R S} b1 b2 : Proper (pointwise_relation _ (eqit b1 b2 eq) ==> eqit b1 b2 eq ==> diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index 6d9d6e20..1d15571d 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -66,35 +66,6 @@ End SUTT. Global Hint Constructors suttF : itree. Global Hint Unfold sutt : itree. -(** Sutt-specific tactics, analogous to the eqit-specific tactics in [Eq.Eqit]. *) - -(* RTODO remove *) - -(* #[local] Ltac sunfold := unfold sutt. -#[local] Ltac sunfold_in h := unfold sutt in h. - -#[local] Ltac scbn := cbn [sutt_mon body]. -#[local] Ltac scbn_in h := cbn [sutt_mon body] in h. - -Ltac fold_sutt := - match goal with - | |- context[@suttF ?E ?R1 ?R2 ?RR] => - change (@suttF E R1 R2 RR) with (body (@sutt_mon E R1 R2 RR)) - end. -Ltac fold_sutt_in h := - match type of h with - | context[@suttF ?E ?R1 ?R2 ?RR] => - change (@suttF E R1 R2 RR) with (body (@sutt_mon E R1 R2 RR)) in h - end. *) - -(* Tactic Notation "step" := sunfold; step; scbn. -Tactic Notation "step" "in" ident(h) := sunfold_in h; step in h; scbn_in h. - -Tactic Notation "sunstep" := fold_sutt; unstep. -Tactic Notation "sunstep" "in" ident(h) := fold_sutt_in h; unstep in h. *) - -(* [coinduction] unfolds [sutt] in the conclusion only, then applies coinduction. *) - Section SUTT_rel. Context {E : Type -> Type} {R : Type} (RR : R -> R -> Prop). diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index d9ddea70..9b5bd310 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -73,7 +73,6 @@ Proof. - cbn. reflexivity. - cbn. etau. - destruct e. - (* RTODO: make cbn work here *) + destruct e. bcbn. rewrite 2 bind_map. rewrite 2 bind_ret_r. step. apply Hk. diff --git a/theories/Interp/HandlerFacts.v b/theories/Interp/HandlerFacts.v index 25bc7667..c24becb4 100644 --- a/theories/Interp/HandlerFacts.v +++ b/theories/Interp/HandlerFacts.v @@ -1,6 +1,5 @@ (** * Theorems for [ITree.Interp.Handler] *) (* begin hide *) -(* RTODO: investigate very slow compilation time for this file *) From Coinduction Require Import all. From Stdlib Require Import diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index f0cb2b7b..3c79da44 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -124,8 +124,7 @@ Proof. unfold eq_Handler, i_pointwise in Hfg. rewrite Hfg. to_mon. - (* RTODO: fix ebind so it works with eqitF *) - ebind. intros ??[=<-]. taus; eauto with itree. + ebind. intros ??[=<-]. etau. Qed. #[global] From 98dd5fd7e5d6ab2f03474e3ade7dcc202f08cf31 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 11:40:51 -0400 Subject: [PATCH 152/189] More timing. Switching to examine PureITD. --- _CoqProject | 2 +- extra/Dijkstra/DelaySpecMonad.v.timing | 50 +- extra/Dijkstra/DijkstraMonad.v.timing | 4 +- extra/Dijkstra/ITreeDijkstra.v.timing | 1700 ++++---- extra/Dijkstra/IterRel.v.timing | 10 +- extra/Dijkstra/PureITreeBasics.v.timing | 28 +- extra/Dijkstra/PureITreeDijkstra.v | 6 +- extra/Dijkstra/StateDelaySpec.v.timing | 28 +- extra/Dijkstra/StateSpecT.v.timing | 32 +- extra/IForest.v.timing | 250 +- extra/ITrace/ITraceBind.v.timing | 2114 ++++++++++ extra/ITrace/ITraceDefinition.v.timing | 8 +- extra/ITrace/ITraceFacts.v.timing | 2465 +++++------ extra/ITrace/ITracePreds.v.timing | 163 + extra/ITrace/ITracePrefix.v.timing | 124 +- extra/Secure/Labels.v.timing | 2 +- extra/Secure/StrongBisimProper.v.timing | 4 +- theories/Axioms.v.timing | 2 +- theories/Basics/Basics.v.timing | 4 +- theories/Basics/Category.v.timing | 2 +- theories/Basics/CategoryFacts.v.timing | 214 +- theories/Basics/CategoryFunctor.v.timing | 2 +- theories/Basics/CategoryKleisli.v.timing | 4 +- theories/Basics/CategoryKleisliFacts.v.timing | 40 +- theories/Basics/CategoryOps.v.timing | 4 +- theories/Basics/CategoryRelations.v.timing | 46 +- theories/Basics/CategorySub.v.timing | 34 +- theories/Basics/CategoryTheory.v.timing | 26 +- theories/Basics/FunctionFacts.v.timing | 12 +- .../Basics/HeterogeneousRelations.v.timing | 24 +- theories/Basics/Monad.v.timing | 2 +- theories/Basics/MonadProp.v.timing | 14 +- theories/Basics/MonadState.v.timing | 44 +- theories/Basics/Utils.v.timing | 36 +- theories/Core/ITreeDefinition.v.timing | 6 +- theories/Core/ITreeMonad.v.timing | 8 +- theories/Core/KTree.v.timing | 2 +- theories/Core/KTreeFacts.v.timing | 551 +-- theories/Core/Subevent.v.timing | 2 +- theories/Eq.v.timing | 2 +- theories/Eq/EqAxiom.v.timing | 2 +- theories/Eq/Eqit.v.timing | 3743 ++++++++--------- theories/Eq/Rutt.v.timing | 30 +- theories/Eq/RuttFacts.v | 2 +- theories/Eq/RuttFacts.v.timing | 1155 ++--- theories/Eq/Shallow.v.timing | 14 +- theories/Eq/SimUpToTaus.v.timing | 452 +- theories/Events.v.timing | 2 +- theories/Events/Concurrency.v.timing | 6 +- theories/Events/Dependent.v.timing | 4 +- theories/Events/Exception.v.timing | 4 +- theories/Events/ExceptionFacts.v.timing | 962 +++-- theories/Events/FailFacts.v.timing | 401 +- theories/Events/Map.v.timing | 6 +- theories/Events/MapDefault.v.timing | 10 +- theories/Events/MapDefaultFacts.v.timing | 419 +- theories/Events/Nondeterminism.v.timing | 4 +- theories/Events/Reader.v.timing | 6 +- theories/Events/State.v.timing | 6 +- theories/Events/StateFacts.v.timing | 495 +-- theories/Events/Writer.v.timing | 6 +- theories/ITree.v.timing | 2 +- theories/ITreeFacts.v.timing | 2 +- theories/Indexed/Function.v.timing | 2 +- theories/Indexed/FunctionFacts.v.timing | 4 +- theories/Indexed/Relation.v.timing | 2 +- theories/Interp/Handler.v.timing | 8 +- theories/Interp/HandlerFacts.v.timing | 679 +-- theories/Interp/Interp.v.timing | 4 +- theories/Interp/InterpFacts.v.timing | 572 +-- theories/Interp/Recursion.v.timing | 2 +- theories/Interp/RecursionFacts.v.timing | 78 +- theories/Interp/Traces.v.timing | 36 +- theories/Interp/TranslateFacts.v.timing | 52 +- theories/Props/Cofinite.v.timing | 8 +- theories/Props/EuttNoRet.v.timing | 538 +-- theories/Props/Finite.v.timing | 68 +- theories/Props/HasPost.v.timing | 28 +- theories/Props/Infinite.v.timing | 651 +-- theories/Props/Leaf.v.timing | 801 ++-- theories/Simple.v.timing | 36 +- 81 files changed, 10775 insertions(+), 8598 deletions(-) create mode 100644 extra/ITrace/ITraceBind.v.timing create mode 100644 extra/ITrace/ITracePreds.v.timing diff --git a/_CoqProject b/_CoqProject index 2ec79b71..60953a16 100644 --- a/_CoqProject +++ b/_CoqProject @@ -88,7 +88,7 @@ extra/ITrace/ITracePreds.v extra/Dijkstra/DijkstraMonad.v extra/Dijkstra/IterRel.v extra/Dijkstra/PureITreeBasics.v -extra/Dijkstra/PureITreeDijkstra.v +# extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/StateSpecT.v extra/Dijkstra/StateDelaySpec.v diff --git a/extra/Dijkstra/DelaySpecMonad.v.timing b/extra/Dijkstra/DelaySpecMonad.v.timing index 14c87e60..e5cf3d07 100644 --- a/extra/Dijkstra/DelaySpecMonad.v.timing +++ b/extra/Dijkstra/DelaySpecMonad.v.timing @@ -1,7 +1,7 @@ Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.222 secs (0.195u,0.026s) -Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.018 secs (0.014u,0.003s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.221 secs (0.193u,0.027s) +Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.018 secs (0.015u,0.003s) Chars 312 - 326 [Import~Monads.] 0. secs (0.u,0.s) Chars 327 - 348 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 350 - 382 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -25,7 +25,7 @@ Chars 2513 - 2604 [Definition~DelayIn~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 2606 - 2767 [Definition~DelaySpec~(A~:~Type...] 0. secs (0.u,0.s) Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.003 secs (0.002u,0.s) Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.003 secs (0.002u,0.s) -Chars 3076 - 3092 [Next~Obligation.] 0.037 secs (0.034u,0.002s) +Chars 3076 - 3092 [Next~Obligation.] 0.038 secs (0.034u,0.004s) Chars 3095 - 3114 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) Chars 3115 - 3142 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 3145 - 3146 [-] 0. secs (0.u,0.s) @@ -48,7 +48,7 @@ Chars 3273 - 3279 [right.] 0. secs (0.u,0.s) Chars 3280 - 3294 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) Chars 3295 - 3300 [auto.] 0. secs (0.u,0.s) Chars 3301 - 3305 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.001 secs (0.001u,0.s) +Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.002 secs (0.001u,0.s) Chars 3426 - 3442 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 3445 - 3449 [(red).] 0. secs (0.u,0.s) Chars 3450 - 3460 [(red~in~H0).] 0. secs (0.u,0.s) @@ -67,7 +67,7 @@ Chars 3597 - 3615 [(eapply~Hfa;~eauto).] 0. secs (0.u,0.s) Chars 3618 - 3619 [-] 0. secs (0.u,0.s) Chars 3620 - 3626 [right.] 0. secs (0.u,0.s) Chars 3627 - 3639 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3640 - 3644 [Qed.] 0.058 secs (0.057u,0.s) +Chars 3640 - 3644 [Qed.] 0.061 secs (0.059u,0.s) Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0.001 secs (0.001u,0.s) Chars 3747 - 3831 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) Chars 3832 - 3838 [Proof.] 0. secs (0.u,0.s) @@ -81,13 +81,13 @@ Chars 3929 - 3949 [(repeat~red~in~H,~H0).] 0. secs (0.u,0.s) Chars 3950 - 3967 [specialize~(H~p).] 0. secs (0.u,0.s) Chars 3968 - 3986 [specialize~(H0~p).] 0. secs (0.u,0.s) Chars 3987 - 3993 [tauto.] 0.002 secs (0.002u,0.s) -Chars 3994 - 3998 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3994 - 3998 [Qed.] 0.002 secs (0.002u,0.s) Chars 4000 - 4104 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) -Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.017 secs (0.016u,0.s) +Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.016 secs (0.016u,0.s) Chars 4177 - 4193 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 4196 - 4207 [(repeat~red).] 0. secs (0.u,0.s) Chars 4208 - 4212 [(cbn).] 0. secs (0.u,0.s) -Chars 4213 - 4246 [(split;~intros;~basic_solve;~a...] 0.002 secs (0.002u,0.s) +Chars 4213 - 4246 [(split;~intros;~basic_solve;~a...] 0.002 secs (0.001u,0.s) Chars 4249 - 4250 [-] 0. secs (0.u,0.s) Chars 4251 - 4285 [(repeat~red~in~H;~step~in~H;~i...] 0. secs (0.u,0.s) Chars 4289 - 4290 [-] 0. secs (0.u,0.s) @@ -95,7 +95,7 @@ Chars 4291 - 4296 [left.] 0. secs (0.u,0.s) Chars 4297 - 4306 [exists~x.] 0. secs (0.u,0.s) Chars 4307 - 4332 [(split;~auto;~reflexivity).] 0. secs (0.u,0.s) Chars 4333 - 4337 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4338 - 4354 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4338 - 4354 [Next~Obligation.] 0. secs (0.u,0.s) Chars 4357 - 4373 [rename~x~into~w.] 0. secs (0.u,0.s) Chars 4376 - 4387 [(repeat~red).] 0. secs (0.u,0.s) Chars 4388 - 4392 [(cbn).] 0. secs (0.u,0.s) @@ -202,15 +202,15 @@ Chars 5915 - 6054 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.002 secs (0.002u,0.s) Chars 6059 - 6068 [(apply~Hk).] 0. secs (0.u,0.s) Chars 6069 - 6074 [auto.] 0. secs (0.u,0.s) Chars 6077 - 6078 [-] 0. secs (0.u,0.s) -Chars 6079 - 6090 [(rewrite~Hw).] 0.001 secs (0.001u,0.s) +Chars 6079 - 6090 [(rewrite~Hw).] 0.002 secs (0.001u,0.s) Chars 6091 - 6127 [(eapply~Hw2;~try~apply~H;~simp...] 0. secs (0.u,0.s) Chars 6128 - 6135 [(intros).] 0. secs (0.u,0.s) -Chars 6140 - 6193 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.004 secs (0.004u,0.s) +Chars 6140 - 6193 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.001 secs (0.001u,0.s) Chars 6198 - 6203 [left.] 0. secs (0.u,0.s) Chars 6204 - 6213 [exists~a.] 0. secs (0.u,0.s) Chars 6214 - 6226 [(split;~auto).] 0. secs (0.u,0.s) Chars 6231 - 6249 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 6250 - 6389 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.002 secs (0.002u,0.s) +Chars 6250 - 6389 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.005 secs (0.004u,0.s) Chars 6394 - 6403 [(apply~Hk).] 0. secs (0.u,0.s) Chars 6404 - 6409 [auto.] 0. secs (0.u,0.s) Chars 6410 - 6414 [Qed.] 0.013 secs (0.013u,0.s) @@ -317,13 +317,13 @@ Chars 8361 - 8367 [Proof.] 0. secs (0.u,0.s) Chars 8370 - 8383 [(intros~A~B~g).] 0. secs (0.u,0.s) Chars 8384 - 8396 [coinduction.] 0.004 secs (0.004u,0.s) Chars 8397 - 8404 [(intros).] 0. secs (0.u,0.s) -Chars 8405 - 8448 [(red~in~H;~sinv~H;~try~apply~n...] 0.012 secs (0.012u,0.s) +Chars 8405 - 8448 [(red~in~H;~sinv~H;~try~apply~n...] 0.015 secs (0.015u,0.s) Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.039 secs (0.038u,0.s) Chars 8485 - 8515 [(unfold~iter_arrow_rel~in~Hrel).] 0. secs (0.u,0.s) Chars 8516 - 8546 [(apply~eutt_ret_euttge~in~Hrel).] 0. secs (0.u,0.s) Chars 8549 - 8562 [(rewrite~Hrel).] 0.005 secs (0.005u,0.s) Chars 8563 - 8582 [(rewrite~bind_ret_l).] 0.014 secs (0.014u,0.s) -Chars 8583 - 8603 [(rewrite~unfold_spin).] 0.016 secs (0.015u,0.s) +Chars 8583 - 8603 [(rewrite~unfold_spin).] 0.015 secs (0.015u,0.s) Chars 8604 - 8609 [etau.] 0.001 secs (0.001u,0.s) Chars 8610 - 8614 [Qed.] 0.007 secs (0.007u,0.s) Chars 8759 - 8973 [Lemma~iter_wf_converge~:~~~for...] 0. secs (0.u,0.s) @@ -357,12 +357,12 @@ Chars 9410 - 9427 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 9428 - 9433 [auto.] 0. secs (0.u,0.s) Chars 9438 - 9439 [+] 0. secs (0.u,0.s) Chars 9440 - 9449 [exists~b.] 0. secs (0.u,0.s) -Chars 9450 - 9470 [(rewrite~unfold_iter).] 0. secs (0.u,0.s) +Chars 9450 - 9470 [(rewrite~unfold_iter).] 0.001 secs (0.001u,0.s) Chars 9471 - 9484 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) Chars 9485 - 9504 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 9511 - 9523 [reflexivity.] 0. secs (0.u,0.s) -Chars 9524 - 9528 [Qed.] 0.004 secs (0.003u,0.s) -Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0. secs (0.u,0.s) +Chars 9524 - 9528 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0.001 secs (0.u,0.s) Chars 9682 - 9863 [Definition~iter_lift~{A~B~:~Ty...] 0. secs (0.u,0.s) Chars 9865 - 9940 [Notation~"q~-+>~p"~:=~(loop_in...] 0. secs (0.u,0.s) Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0.001 secs (0.001u,0.s) @@ -387,14 +387,14 @@ Chars 10579 - 10583 [(cbn).] 0. secs (0.u,0.s) Chars 10584 - 10608 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.007 secs (0.007u,0.s) Chars 10651 - 10665 [(rewrite~<-~H3).] 0.004 secs (0.004u,0.s) -Chars 10674 - 10707 [(repeat~setoid_rewrite~bind_re...] 0.013 secs (0.013u,0.s) +Chars 10674 - 10707 [(repeat~setoid_rewrite~bind_re...] 0.011 secs (0.011u,0.s) Chars 10708 - 10720 [reflexivity.] 0. secs (0.u,0.s) Chars 10727 - 10728 [*] 0. secs (0.u,0.s) Chars 10729 - 10755 [(apply~div_spin_eutt~in~H3).] 0. secs (0.u,0.s) Chars 10756 - 10764 [(apply~H).] 0. secs (0.u,0.s) Chars 10765 - 10769 [(cbn).] 0. secs (0.u,0.s) -Chars 10778 - 10802 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 10803 - 10814 [(rewrite~H3).] 0. secs (0.u,0.s) +Chars 10778 - 10802 [(eapply~Hq;~try~apply~H0).] 0.001 secs (0.001u,0.s) +Chars 10803 - 10814 [(rewrite~H3).] 0.001 secs (0.001u,0.s) Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) Chars 10851 - 10862 [(rewrite~H3).] 0.003 secs (0.003u,0.s) Chars 10871 - 10880 [symmetry.] 0. secs (0.u,0.s) @@ -405,7 +405,7 @@ Chars 10933 - 10948 [(unfold~rg~in~*).] 0. secs (0.u,0.s) Chars 10955 - 11002 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) Chars 11009 - 11010 [*] 0. secs (0.u,0.s) Chars 11011 - 11021 [(cbn~in~H4).] 0. secs (0.u,0.s) -Chars 11022 - 11071 [(rewrite~unfold_iter,~<-~H4,~b...] 0.008 secs (0.008u,0.s) +Chars 11022 - 11071 [(rewrite~unfold_iter,~<-~H4,~b...] 0.007 secs (0.007u,0.s) Chars 11080 - 11089 [(apply~H3).] 0. secs (0.u,0.s) Chars 11098 - 11100 [--] 0. secs (0.u,0.s) Chars 11101 - 11105 [(red).] 0. secs (0.u,0.s) @@ -430,14 +430,14 @@ Chars 11423 - 11449 [(apply~div_spin_eutt~in~H4).] 0. secs (0.u,0.s) Chars 11450 - 11458 [(apply~H).] 0. secs (0.u,0.s) Chars 11459 - 11463 [(cbn).] 0. secs (0.u,0.s) Chars 11472 - 11496 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 11497 - 11508 [(rewrite~H4).] 0.001 secs (0.u,0.s) +Chars 11497 - 11508 [(rewrite~H4).] 0. secs (0.u,0.s) Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) -Chars 11545 - 11556 [(rewrite~H4).] 0.004 secs (0.004u,0.s) -Chars 11557 - 11592 [(repeat~setoid_rewrite~~<-~spi...] 0.008 secs (0.008u,0.s) +Chars 11545 - 11556 [(rewrite~H4).] 0.003 secs (0.003u,0.s) +Chars 11557 - 11592 [(repeat~setoid_rewrite~~<-~spi...] 0.009 secs (0.008u,0.s) Chars 11601 - 11613 [reflexivity.] 0. secs (0.u,0.s) Chars 11616 - 11617 [-] 0. secs (0.u,0.s) Chars 11618 - 11644 [(apply~iter_inl_spin~in~H2).] 0. secs (0.u,0.s) Chars 11645 - 11651 [right.] 0. secs (0.u,0.s) Chars 11652 - 11663 [(rewrite~H2).] 0.001 secs (0.001u,0.s) Chars 11664 - 11684 [(apply~spin_infinite).] 0. secs (0.u,0.s) -Chars 11685 - 11689 [Qed.] 0.009 secs (0.009u,0.s) +Chars 11685 - 11689 [Qed.] 0.008 secs (0.008u,0.s) diff --git a/extra/Dijkstra/DijkstraMonad.v.timing b/extra/Dijkstra/DijkstraMonad.v.timing index ce6f5d44..f1769d6c 100644 --- a/extra/Dijkstra/DijkstraMonad.v.timing +++ b/extra/Dijkstra/DijkstraMonad.v.timing @@ -1,5 +1,5 @@ Chars 113 - 162 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.006 secs (0.004u,0.001s) +Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) Chars 229 - 250 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 252 - 281 [Declare~Scope~dijkstra_scope.] 0. secs (0.u,0.s) Chars 282 - 325 [Delimit~Scope~dijkstra_scope~w...] 0. secs (0.u,0.s) @@ -14,7 +14,7 @@ Chars 636 - 657 [Context~{Eq~:~Eq1~W}.] 0. secs (0.u,0.s) Chars 660 - 687 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) Chars 690 - 726 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) Chars 729 - 757 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 760 - 1086 [Class~OrderedMonad~:={~~~~~~~~...] 0.002 secs (0.001u,0.s) +Chars 760 - 1086 [Class~OrderedMonad~:={~~~~~~~~...] 0.001 secs (0.001u,0.s) Chars 1088 - 1105 [End~OrderedMonad.] 0. secs (0.u,0.s) Chars 1139 - 1157 [Section~SpecMonad.] 0. secs (0.u,0.s) Chars 1161 - 1188 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/ITreeDijkstra.v.timing b/extra/Dijkstra/ITreeDijkstra.v.timing index c6e5075a..d3228b95 100644 --- a/extra/Dijkstra/ITreeDijkstra.v.timing +++ b/extra/Dijkstra/ITreeDijkstra.v.timing @@ -1,851 +1,849 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 201 [From~ITree~Require~Import~Axio...] 0.217 secs (0.193u,0.024s) -Chars 203 - 322 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) -Chars 324 - 338 [Import~Monads.] 0. secs (0.u,0.s) -Chars 339 - 360 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 362 - 394 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 395 - 431 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) -Chars 435 - 608 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) -Chars 610 - 774 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) -Chars 776 - 901 [#[local]~Tactic~Notation~"coin...] 0. secs (0.u,0.s) -Chars 906 - 928 [Section~ITreeDijkstra.] 0. secs (0.u,0.s) -Chars 932 - 959 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 963 - 1035 [Definition~ITDInput~(A~:~Type)...] 0. secs (0.u,0.s) -Chars 1039 - 1193 [Definition~ITreeSpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 1197 - 1281 [#[program]~Definition~ret_itre...] 0.003 secs (0.002u,0.s) -Chars 1285 - 1373 [Instance~proper_itree_spec~~{R...] 0. secs (0.u,0.s) -Chars 1376 - 1382 [Proof.] 0. secs (0.u,0.s) -Chars 1387 - 1400 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 1401 - 1422 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 1423 - 1429 [(simpl).] 0. secs (0.u,0.s) -Chars 1430 - 1462 [(split;~intros;~eapply~Hp;~eau...] 0.002 secs (0.001u,0.s) -Chars 1467 - 1484 [now~rewrite~<-~H.] 0.037 secs (0.034u,0.003s) -Chars 1487 - 1491 [Qed.] 0. secs (0.u,0.s) -Chars 1495 - 1704 [#[program]~Definition~bind_ex~...] 0.003 secs (0.003u,0.s) -Chars 1707 - 1723 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) -Chars 1737 - 1748 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1749 - 1776 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) -Chars 1781 - 1782 [-] 0. secs (0.u,0.s) -Chars 1783 - 1788 [left.] 0. secs (0.u,0.s) -Chars 1789 - 1798 [exists~a.] 0. secs (0.u,0.s) -Chars 1799 - 1815 [(rewrite~H~in~H0).] 0.005 secs (0.004u,0.s) -Chars 1816 - 1821 [auto.] 0. secs (0.u,0.s) -Chars 1826 - 1827 [-] 0. secs (0.u,0.s) -Chars 1828 - 1834 [right.] 0. secs (0.u,0.s) -Chars 1835 - 1853 [(rewrite~<-~H~~at~1).] 0.002 secs (0.002u,0.s) -Chars 1854 - 1866 [(split;~auto).] 0. secs (0.u,0.s) -Chars 1873 - 1906 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) -Chars 1913 - 1954 [specialize~(all_infinite_euttN...] 0. secs (0.u,0.s) -Chars 1961 - 1968 [(intros).] 0. secs (0.u,0.s) -Chars 1975 - 2013 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 2020 - 2036 [(rewrite~H~in~H0).] 0.001 secs (0.001u,0.s) -Chars 2037 - 2075 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 2082 - 2092 [(eapply~Hp).] 0. secs (0.u,0.s) -Chars 2100 - 2110 [clear~Ht2.] 0. secs (0.u,0.s) -Chars 2118 - 2132 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 2140 - 2163 [(eapply~noret_cast_cast).] 0. secs (0.u,0.s) -Chars 2164 - 2175 [all:~eauto.] 0.002 secs (0.002u,0.s) -Chars 2180 - 2181 [-] 0. secs (0.u,0.s) -Chars 2182 - 2187 [left.] 0. secs (0.u,0.s) -Chars 2188 - 2197 [exists~a.] 0. secs (0.u,0.s) -Chars 2198 - 2210 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2211 - 2221 [(rewrite~H).] 0.058 secs (0.058u,0.s) -Chars 2222 - 2227 [auto.] 0. secs (0.u,0.s) -Chars 2232 - 2233 [-] 0. secs (0.u,0.s) -Chars 2234 - 2240 [right.] 0. secs (0.u,0.s) -Chars 2241 - 2256 [(rewrite~H~~at~1).] 0.002 secs (0.002u,0.s) -Chars 2257 - 2269 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2276 - 2309 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) -Chars 2316 - 2326 [(eapply~Hp).] 0. secs (0.u,0.s) -Chars 2334 - 2348 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 2356 - 2365 [symmetry.] 0. secs (0.u,0.s) -Chars 2373 - 2403 [(eapply~noret_cast_cast;~eauto).] 0. secs (0.u,0.s) -Chars 2410 - 2415 [auto.] 0. secs (0.u,0.s) -Chars 2419 - 2423 [Qed.] 0.007 secs (0.007u,0.s) -Chars 2426 - 2442 [Next~Obligation.] 0.002 secs (0.002u,0.s) -Chars 2445 - 2451 [Proof.] 0. secs (0.u,0.s) -Chars 2456 - 2477 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 2478 - 2489 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2491 - 2515 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 2520 - 2527 [(intros).] 0. secs (0.u,0.s) -Chars 2528 - 2539 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2544 - 2565 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 2566 - 2590 [(destruct~p'~as~[p'~Hp']).] 0. secs (0.u,0.s) -Chars 2591 - 2602 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2607 - 2619 [basic_solve.] 0. secs (0.u,0.s) -Chars 2624 - 2625 [-] 0. secs (0.u,0.s) -Chars 2626 - 2631 [left.] 0. secs (0.u,0.s) -Chars 2632 - 2641 [exists~a.] 0. secs (0.u,0.s) -Chars 2642 - 2654 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2655 - 2682 [(destruct~(g~a)~as~[ga~Hga]).] 0. secs (0.u,0.s) -Chars 2683 - 2694 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2701 - 2726 [(eapply~Hga;~try~apply~H2).] 0. secs (0.u,0.s) -Chars 2733 - 2739 [(simpl).] 0. secs (0.u,0.s) -Chars 2740 - 2745 [auto.] 0. secs (0.u,0.s) -Chars 2750 - 2751 [-] 0. secs (0.u,0.s) -Chars 2752 - 2758 [right.] 0. secs (0.u,0.s) -Chars 2759 - 2771 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2774 - 2778 [Qed.] 0.008 secs (0.008u,0.s) -Chars 2782 - 2873 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0.001 secs (0.u,0.s) -Chars 2877 - 2942 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) -Chars 2945 - 2951 [Proof.] 0. secs (0.u,0.s) -Chars 2956 - 2997 [(constructor;~red;~intros;~red...] 0.003 secs (0.002u,0.s) -Chars 3002 - 3003 [-] 0. secs (0.u,0.s) -Chars 3004 - 3013 [(red~in~H).] 0. secs (0.u,0.s) -Chars 3014 - 3021 [(intros).] 0. secs (0.u,0.s) -Chars 3022 - 3032 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 3033 - 3045 [reflexivity.] 0. secs (0.u,0.s) -Chars 3050 - 3051 [-] 0. secs (0.u,0.s) -Chars 3052 - 3059 [(intros).] 0. secs (0.u,0.s) -Chars 3060 - 3069 [(red~in~H).] 0. secs (0.u,0.s) -Chars 3070 - 3080 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 3081 - 3091 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 3092 - 3103 [(rewrite~H0).] 0.001 secs (0.001u,0.s) -Chars 3110 - 3122 [reflexivity.] 0. secs (0.u,0.s) -Chars 3125 - 3129 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3133 - 3237 [Instance~ItreeSpecMonad~:~(Mon...] 0. secs (0.u,0.s) -Chars 6181 - 6241 [Inductive~Ev~:~Type~:=~~~~~ev~...] 0. secs (0.u,0.s) -Chars 6245 - 6332 [Variant~streamF~{A~:~Type}~{F~...] 0. secs (0.u,0.s) -Chars 6336 - 6416 [CoInductive~stream~(A~:~Type)~...] 0. secs (0.u,0.s) -Chars 6420 - 6466 [Notation~stream'~A:=~(@streamF...] 0. secs (0.u,0.s) -Chars 6470 - 6529 [Definition~Nil~{A}~:~stream~A~...] 0. secs (0.u,0.s) -Chars 6533 - 6607 [Definition~Cons~{A}~(h~:~A)~(t...] 0. secs (0.u,0.s) -Chars 6611 - 6680 [Definition~observe_stream~{A}~...] 0. secs (0.u,0.s) -Chars 6684 - 6828 [Variant~is_infF~{A~:~Type}~(F~...] 0. secs (0.u,0.s) -Chars 6832 - 6866 [Hint~Constructors~is_infF:~itree.] 0. secs (0.u,0.s) -Chars 6870 - 6987 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) -Chars 6991 - 7049 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) -Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) -Chars 7065 - 7073 [intros~!.] 0. secs (0.u,0.s) -Chars 7079 - 7086 [(inv~H0).] 0. secs (0.u,0.s) -Chars 7087 - 7091 [(red).] 0. secs (0.u,0.s) -Chars 7092 - 7106 [(rewrite~<-~H1).] 0. secs (0.u,0.s) -Chars 7107 - 7120 [econstructor.] 0. secs (0.u,0.s) -Chars 7125 - 7137 [now~apply~H.] 0. secs (0.u,0.s) -Chars 7142 - 7146 [Qed.] 0. secs (0.u,0.s) -Chars 7151 - 7253 [Definition~is_inf_mon~A~:~mon~...] 0. secs (0.u,0.s) -Chars 7258 - 7310 [Definition~is_inf~{A~:~Type}~:...] 0. secs (0.u,0.s) -Chars 7314 - 7487 [CoFixpoint~app'~{A~:~Type}~(os...] 0. secs (0.u,0.s) -Chars 7491 - 7588 [Definition~app~{A~:~Type}~(sl~...] 0. secs (0.u,0.s) -Chars 7592 - 7817 [Variant~bisimF~{A~:~Type}~(F~:...] 0. secs (0.u,0.s) -Chars 7821 - 7854 [Hint~Constructors~bisimF:~itree.] 0. secs (0.u,0.s) -Chars 7858 - 8022 [Definition~bisim_~{A~:~Type}~(...] 0. secs (0.u,0.s) -Chars 8026 - 8082 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) -Chars 8086 - 8092 [Proof.] 0. secs (0.u,0.s) -Chars 8098 - 8106 [intros~!.] 0. secs (0.u,0.s) -Chars 8107 - 8111 [(red).] 0. secs (0.u,0.s) -Chars 8112 - 8119 [(inv~H0).] 0.005 secs (0.005u,0.s) -Chars 8125 - 8126 [-] 0. secs (0.u,0.s) -Chars 8127 - 8139 [constructor.] 0. secs (0.u,0.s) -Chars 8145 - 8146 [-] 0. secs (0.u,0.s) -Chars 8147 - 8159 [constructor.] 0. secs (0.u,0.s) -Chars 8160 - 8172 [now~apply~H.] 0. secs (0.u,0.s) -Chars 8176 - 8180 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8187 - 8301 [Definition~bisim_mon~{A}~:~mon...] 0.002 secs (0.002u,0.s) -Chars 8306 - 8356 [Definition~bisim~{A~:~Type}~:=...] 0. secs (0.u,0.s) -Chars 8360 - 8410 [Instance~bisim_equiv~~{A}:~(Eq...] 0. secs (0.u,0.s) -Chars 8413 - 8419 [Proof.] 0. secs (0.u,0.s) -Chars 8424 - 8441 [(constructor;~red).] 0. secs (0.u,0.s) -Chars 8446 - 8447 [-] 0. secs (0.u,0.s) -Chars 8448 - 8466 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8467 - 8474 [(intros).] 0. secs (0.u,0.s) -Chars 8475 - 8484 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8485 - 8530 [(destruct~(observe_stream~x);~...] 0.001 secs (0.001u,0.s) -Chars 8535 - 8536 [-] 0. secs (0.u,0.s) -Chars 8537 - 8555 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8556 - 8563 [(intros).] 0. secs (0.u,0.s) -Chars 8570 - 8579 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8586 - 8620 [(red~in~H;~sinv~H;~auto~with~i...] 0.01 secs (0.01u,0.s) -Chars 8625 - 8626 [-] 0. secs (0.u,0.s) -Chars 8627 - 8645 [(unfold~bisim~at~3).] 0. secs (0.u,0.s) -Chars 8646 - 8664 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8665 - 8672 [(intros).] 0. secs (0.u,0.s) -Chars 8673 - 8682 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8689 - 8743 [(red~in~H;~sinv~H;~red~in~H0;~...] 0.04 secs (0.039u,0.s) -Chars 8750 - 8751 [+] 0. secs (0.u,0.s) -Chars 8752 - 8771 [(rewrite~<-~H~in~H3).] 0. secs (0.u,0.s) -Chars 8772 - 8785 [discriminate.] 0. secs (0.u,0.s) -Chars 8792 - 8793 [+] 0. secs (0.u,0.s) -Chars 8794 - 8814 [(rewrite~<-~H2~in~H4).] 0. secs (0.u,0.s) -Chars 8815 - 8828 [discriminate.] 0. secs (0.u,0.s) -Chars 8835 - 8836 [+] 0. secs (0.u,0.s) -Chars 8837 - 8856 [(rewrite~<-~H2~in~H).] 0. secs (0.u,0.s) -Chars 8857 - 8884 [(injection~H;~intros;~subst).] 0. secs (0.u,0.s) -Chars 8893 - 8905 [constructor.] 0. secs (0.u,0.s) -Chars 8906 - 8912 [eauto.] 0. secs (0.u,0.s) -Chars 8916 - 8920 [Qed.] 0.008 secs (0.008u,0.s) -Chars 9025 - 9099 [Instance~proper_bisim_app~~{A}...] 0. secs (0.u,0.s) -Chars 9102 - 9108 [Proof.] 0. secs (0.u,0.s) -Chars 9114 - 9132 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 9133 - 9160 [(intros~s1~s2~H12~s3~s4~H34).] 0. secs (0.u,0.s) -Chars 9166 - 9175 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 9176 - 9187 [(unfold~app).] 0. secs (0.u,0.s) -Chars 9188 - 9197 [(sinv~H12).] 0.011 secs (0.011u,0.s) -Chars 9202 - 9203 [-] 0. secs (0.u,0.s) -Chars 9204 - 9210 [(simpl).] 0. secs (0.u,0.s) -Chars 9211 - 9223 [(destruct~s3).] 0. secs (0.u,0.s) -Chars 9224 - 9236 [(destruct~s4).] 0. secs (0.u,0.s) -Chars 9237 - 9282 [(sinv~H34;~simpl~in~*;~subst;~...] 0.015 secs (0.015u,0.s) -Chars 9289 - 9301 [constructor.] 0. secs (0.u,0.s) -Chars 9302 - 9316 [now~do~2~step.] 0.001 secs (0.001u,0.s) -Chars 9322 - 9323 [-] 0. secs (0.u,0.s) -Chars 9324 - 9328 [(cbn).] 0. secs (0.u,0.s) -Chars 9329 - 9341 [constructor.] 0. secs (0.u,0.s) -Chars 9342 - 9358 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 9361 - 9365 [Qed.] 0.005 secs (0.004u,0.s) -Chars 9369 - 9420 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 9426 - 9503 [Instance~proper_bisim_inf_imp~...] 0. secs (0.u,0.s) -Chars 9506 - 9512 [Proof.] 0. secs (0.u,0.s) -Chars 9517 - 9535 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9540 - 9559 [(intros~s1~s2~H12~H).] 0. secs (0.u,0.s) -Chars 9560 - 9565 [icbn.] 0. secs (0.u,0.s) -Chars 9566 - 9576 [step~in~H.] 0. secs (0.u,0.s) -Chars 9582 - 9594 [step~in~H12.] 0. secs (0.u,0.s) -Chars 9595 - 9603 [(inv~H12).] 0.005 secs (0.005u,0.s) -Chars 9609 - 9610 [-] 0. secs (0.u,0.s) -Chars 9611 - 9630 [(rewrite~<-~H1~in~H).] 0. secs (0.u,0.s) -Chars 9631 - 9637 [(inv~H).] 0. secs (0.u,0.s) -Chars 9642 - 9643 [-] 0. secs (0.u,0.s) -Chars 9644 - 9663 [(inversion~H;~subst).] 0. secs (0.u,0.s) -Chars 9671 - 9683 [constructor.] 0. secs (0.u,0.s) -Chars 9684 - 9702 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 9709 - 9729 [(rewrite~<-~H3~in~H0).] 0. secs (0.u,0.s) -Chars 9730 - 9737 [(inv~H0).] 0. secs (0.u,0.s) -Chars 9740 - 9744 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9748 - 9815 [Instance~proper_bisim_inf~~{A}...] 0. secs (0.u,0.s) -Chars 9818 - 9824 [Proof.] 0. secs (0.u,0.s) -Chars 9829 - 9873 [(split;~try~apply~proper_bisim...] 0. secs (0.u,0.s) -Chars 9878 - 9896 [(apply~bisim_equiv).] 0. secs (0.u,0.s) -Chars 9897 - 9902 [auto.] 0. secs (0.u,0.s) -Chars 9905 - 9909 [Qed.] 0. secs (0.u,0.s) -Chars 9913 - 10001 [Lemma~app_inf~:~~~forall~(A~:~...] 0. secs (0.u,0.s) -Chars 10004 - 10010 [Proof.] 0. secs (0.u,0.s) -Chars 10015 - 10024 [(intros~A).] 0. secs (0.u,0.s) -Chars 10025 - 10043 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 10044 - 10062 [(intros~s1~s2~Hinf).] 0. secs (0.u,0.s) -Chars 10063 - 10068 [icbn.] 0. secs (0.u,0.s) -Chars 10069 - 10080 [(unfold~app).] 0. secs (0.u,0.s) -Chars 10085 - 10095 [(sinv~Hinf).] 0.004 secs (0.004u,0.s) -Chars 10100 - 10104 [(cbn).] 0. secs (0.u,0.s) -Chars 10105 - 10117 [constructor.] 0. secs (0.u,0.s) -Chars 10118 - 10134 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 10137 - 10141 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10145 - 10372 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) -Chars 10376 - 10417 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) -Chars 10421 - 10570 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) -Chars 10574 - 10668 [Lemma~forall_stream_mono~(A~:~...] 0. secs (0.u,0.s) -Chars 10671 - 10677 [Proof.] 0. secs (0.u,0.s) -Chars 10682 - 10693 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10694 - 10701 [(intros).] 0. secs (0.u,0.s) -Chars 10702 - 10712 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 10713 - 10742 [(destruct~H0;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 10747 - 10765 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 10766 - 10778 [now~apply~H.] 0. secs (0.u,0.s) -Chars 10782 - 10786 [Qed.] 0. secs (0.u,0.s) -Chars 10790 - 10861 [Definition~forall_stream_mon~A...] 0. secs (0.u,0.s) -Chars 10866 - 10949 [Definition~forall_stream~{A~:~...] 0. secs (0.u,0.s) -Chars 10953 - 11236 [Inductive~inf_manyF~{A~:~Type}...] 0. secs (0.u,0.s) -Chars 11240 - 11276 [Hint~Constructors~inf_manyF:~i...] 0. secs (0.u,0.s) -Chars 11280 - 11419 [Definition~inf_many_~{A~:~Type...] 0. secs (0.u,0.s) -Chars 11423 - 11507 [Lemma~inf_many_mono~(A~:~Type)...] 0. secs (0.u,0.s) -Chars 11510 - 11516 [Proof.] 0. secs (0.u,0.s) -Chars 11521 - 11532 [(repeat~red).] 0. secs (0.u,0.s) -Chars 11533 - 11540 [(intros).] 0. secs (0.u,0.s) -Chars 11541 - 11551 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 11552 - 11582 [(induction~H0;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 11587 - 11610 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) -Chars 11611 - 11623 [now~apply~H.] 0. secs (0.u,0.s) -Chars 11627 - 11631 [Qed.] 0. secs (0.u,0.s) -Chars 11635 - 11696 [Definition~inf_many_mon~A~P~:=...] 0. secs (0.u,0.s) -Chars 11701 - 11774 [Definition~inf_many~{A~:~Type}...] 0. secs (0.u,0.s) -Chars 11778 - 11880 [Lemma~inf_many_inf~:~~~forall~...] 0. secs (0.u,0.s) -Chars 11883 - 11889 [Proof.] 0. secs (0.u,0.s) -Chars 11894 - 11905 [(intros~A~P).] 0. secs (0.u,0.s) -Chars 11906 - 11924 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11925 - 11938 [(intros~s~Him).] 0. secs (0.u,0.s) -Chars 11943 - 11955 [step~in~Him.] 0. secs (0.u,0.s) -Chars 11956 - 11961 [icbn.] 0. secs (0.u,0.s) -Chars 11967 - 11998 [(induction~Him;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 12003 - 12015 [constructor.] 0. secs (0.u,0.s) -Chars 12016 - 12026 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 12027 - 12036 [now~step.] 0. secs (0.u,0.s) -Chars 12040 - 12044 [Qed.] 0.001 secs (0.001u,0.s) -Chars 12048 - 12173 [Lemma~inf_and_forall~:~~~foral...] 0. secs (0.u,0.s) -Chars 12176 - 12182 [Proof.] 0. secs (0.u,0.s) -Chars 12187 - 12198 [(intros~A~P).] 0. secs (0.u,0.s) -Chars 12199 - 12217 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 12218 - 12240 [(intros~s~Hinf~Hforall).] 0. secs (0.u,0.s) -Chars 12245 - 12250 [icbn.] 0. secs (0.u,0.s) -Chars 12251 - 12264 [step~in~Hinf.] 0. secs (0.u,0.s) -Chars 12265 - 12281 [step~in~Hforall.] 0. secs (0.u,0.s) -Chars 12286 - 12295 [(inv~Hinf).] 0.002 secs (0.002u,0.s) -Chars 12300 - 12312 [(inv~Hforall).] 0.003 secs (0.003u,0.s) -Chars 12317 - 12318 [-] 0. secs (0.u,0.s) -Chars 12319 - 12338 [(rewrite~<-~H~in~H2).] 0. secs (0.u,0.s) -Chars 12339 - 12352 [discriminate.] 0. secs (0.u,0.s) -Chars 12357 - 12358 [-] 0. secs (0.u,0.s) -Chars 12359 - 12378 [(rewrite~<-~H~in~H1).] 0. secs (0.u,0.s) -Chars 12379 - 12386 [(inv~H1).] 0.002 secs (0.002u,0.s) -Chars 12393 - 12416 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) -Chars 12419 - 12423 [Qed.] 0.005 secs (0.005u,0.s) -Chars 12534 - 12621 [Definition~rel_eventless~{E1}~...] 0. secs (0.u,0.s) -Chars 12624 - 13283 [Inductive~eqitEF~{E1~E2~:~Type...] 0.002 secs (0.002u,0.s) -Chars 13287 - 13320 [Hint~Constructors~eqitEF:~itree.] 0. secs (0.u,0.s) -Chars 13324 - 13558 [Definition~eqitE_~(E1~E2~:~Typ...] 0. secs (0.u,0.s) -Chars 13562 - 13645 [Lemma~eqitE_mono~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) -Chars 13650 - 13656 [Proof.] 0. secs (0.u,0.s) -Chars 13663 - 13674 [(repeat~red).] 0. secs (0.u,0.s) -Chars 13675 - 13682 [(intros).] 0. secs (0.u,0.s) -Chars 13683 - 13700 [rename~x~into~t1.] 0. secs (0.u,0.s) -Chars 13701 - 13718 [rename~y~into~t2.] 0. secs (0.u,0.s) -Chars 13725 - 13756 [(induction~H0;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 13763 - 13775 [constructor.] 0. secs (0.u,0.s) -Chars 13776 - 13788 [now~apply~H.] 0. secs (0.u,0.s) -Chars 13794 - 13798 [Qed.] 0.001 secs (0.001u,0.s) -Chars 13802 - 13882 [Definition~eqitE_mon~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 13886 - 13957 [Definition~eqitE~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) -Chars 13961 - 14038 [Definition~equivE~{E1}~{E2}~{R...] 0. secs (0.u,0.s) -Chars 14042 - 14256 [Variant~eventlessF~{E~:~Type~-...] 0. secs (0.u,0.s) -Chars 14260 - 14297 [Hint~Constructors~eventlessF:~...] 0. secs (0.u,0.s) -Chars 14301 - 14438 [Definition~eventless_~{E~:~Typ...] 0. secs (0.u,0.s) -Chars 14442 - 14473 [Hint~Unfold~eventless_:~itree.] 0. secs (0.u,0.s) -Chars 14479 - 14549 [Lemma~eventless_mono~{E1}~{R}~...] 0. secs (0.u,0.s) -Chars 14552 - 14558 [Proof.] 0. secs (0.u,0.s) -Chars 14563 - 14574 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14575 - 14582 [(intros).] 0. secs (0.u,0.s) -Chars 14583 - 14593 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 14594 - 14624 [(inversion~H0;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 14629 - 14641 [constructor.] 0. secs (0.u,0.s) -Chars 14642 - 14654 [now~apply~H.] 0. secs (0.u,0.s) -Chars 14659 - 14663 [Qed.] 0.001 secs (0.001u,0.s) -Chars 14667 - 14735 [Definition~eventless_mon~{E1}~...] 0. secs (0.u,0.s) -Chars 14739 - 14842 [Definition~eventless~{E~:~Type...] 0. secs (0.u,0.s) -Chars 14846 - 14937 [Instance~proper_eventless_imp~...] 0. secs (0.u,0.s) -Chars 14940 - 14946 [Proof.] 0. secs (0.u,0.s) -Chars 14951 - 14962 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14963 - 14981 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 14986 - 15009 [(intros~t1~t2~Heutt~Hev).] 0. secs (0.u,0.s) -Chars 15014 - 15028 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 15029 - 15034 [icbn.] 0. secs (0.u,0.s) -Chars 15039 - 15060 [(pose~proof~Hev~as~Hev').] 0. secs (0.u,0.s) -Chars 15061 - 15073 [step~in~Hev.] 0. secs (0.u,0.s) -Chars 15078 - 15128 [(dependent~induction~Heutt;~su...] 0.024 secs (0.024u,0.s) -Chars 15133 - 15134 [-] 0. secs (0.u,0.s) -Chars 15135 - 15143 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15144 - 15160 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 15165 - 15166 [-] 0. secs (0.u,0.s) -Chars 15167 - 15175 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15176 - 15188 [constructor.] 0. secs (0.u,0.s) -Chars 15189 - 15207 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 15214 - 15222 [(inv~Hev).] 0. secs (0.u,0.s) -Chars 15228 - 15229 [-] 0. secs (0.u,0.s) -Chars 15230 - 15238 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 15239 - 15247 [(inv~Hev).] 0. secs (0.u,0.s) -Chars 15253 - 15254 [-] 0. secs (0.u,0.s) -Chars 15255 - 15263 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15264 - 15272 [(inv~Hev).] 0.006 secs (0.006u,0.s) -Chars 15279 - 15315 [(eapply~IHHeutt;~try~apply~H0;...] 0.001 secs (0.001u,0.s) -Chars 15322 - 15337 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 15343 - 15344 [-] 0. secs (0.u,0.s) -Chars 15345 - 15353 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15354 - 15366 [constructor.] 0. secs (0.u,0.s) -Chars 15367 - 15383 [unstep~in~Heutt.] 0. secs (0.u,0.s) -Chars 15384 - 15413 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) -Chars 15416 - 15420 [Qed.] 0.02 secs (0.02u,0.s) -Chars 15424 - 15502 [Instance~proper_eventless~~{E1...] 0. secs (0.u,0.s) -Chars 15505 - 15511 [Proof.] 0. secs (0.u,0.s) -Chars 15516 - 15535 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 15536 - 15554 [(split;~intros~Hev).] 0. secs (0.u,0.s) -Chars 15559 - 15560 [-] 0. secs (0.u,0.s) -Chars 15561 - 15578 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) -Chars 15579 - 15584 [auto.] 0. secs (0.u,0.s) -Chars 15589 - 15590 [-] 0. secs (0.u,0.s) -Chars 15591 - 15609 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 15610 - 15627 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) -Chars 15628 - 15633 [auto.] 0. secs (0.u,0.s) -Chars 15636 - 15640 [Qed.] 0. secs (0.u,0.s) -Chars 15644 - 15843 [Lemma~eutt_eventless~:~~~foral...] 0. secs (0.u,0.s) -Chars 15846 - 15852 [Proof.] 0. secs (0.u,0.s) -Chars 15857 - 15876 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 15877 - 15895 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 15896 - 15903 [(intros).] 0. secs (0.u,0.s) -Chars 15908 - 15919 [step~in~H0.] 0. secs (0.u,0.s) -Chars 15920 - 15925 [icbn.] 0. secs (0.u,0.s) -Chars 15926 - 15955 [(dependent~induction~H0;~auto).] 0.019 secs (0.019u,0.s) -Chars 15960 - 15961 [-] 0. secs (0.u,0.s) -Chars 15962 - 15970 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15971 - 15976 [eret.] 0. secs (0.u,0.s) -Chars 15982 - 15983 [-] 0. secs (0.u,0.s) -Chars 15984 - 15992 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15999 - 16011 [constructor.] 0. secs (0.u,0.s) -Chars 16020 - 16053 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 16054 - 16087 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 16094 - 16102 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 16110 - 16129 [(assert~(t1~≈~m1)).] 0. secs (0.u,0.s) -Chars 16130 - 16131 [{] 0. secs (0.u,0.s) -Chars 16132 - 16144 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 16145 - 16162 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 16163 - 16175 [reflexivity.] 0. secs (0.u,0.s) -Chars 16176 - 16177 [}] 0. secs (0.u,0.s) -Chars 16184 - 16203 [(assert~(t2~≈~m2)).] 0. secs (0.u,0.s) -Chars 16204 - 16205 [{] 0. secs (0.u,0.s) -Chars 16206 - 16218 [(rewrite~Ht2).] 0. secs (0.u,0.s) -Chars 16219 - 16236 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 16237 - 16249 [reflexivity.] 0. secs (0.u,0.s) -Chars 16250 - 16251 [}] 0. secs (0.u,0.s) -Chars 16258 - 16274 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 16281 - 16299 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 16305 - 16306 [-] 0. secs (0.u,0.s) -Chars 16307 - 16315 [exfalso.] 0. secs (0.u,0.s) -Chars 16316 - 16335 [(step~in~H;~simpobs).] 0.002 secs (0.002u,0.s) -Chars 16336 - 16342 [(inv~H).] 0. secs (0.u,0.s) -Chars 16347 - 16348 [-] 0. secs (0.u,0.s) -Chars 16349 - 16357 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 16358 - 16370 [constructor.] 0. secs (0.u,0.s) -Chars 16377 - 16410 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 16411 - 16419 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 16427 - 16434 [(sinv~H).] 0.018 secs (0.018u,0.s) -Chars 16442 - 16443 [+] 0. secs (0.u,0.s) -Chars 16444 - 16458 [(simpobs;~easy).] 0.004 secs (0.003u,0.s) -Chars 16467 - 16468 [+] 0. secs (0.u,0.s) -Chars 16469 - 16491 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 16492 - 16512 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 16513 - 16518 [step.] 0. secs (0.u,0.s) -Chars 16526 - 16543 [(rewrite~x,~<-~H1).] 0. secs (0.u,0.s) -Chars 16544 - 16560 [now~constructor.] 0. secs (0.u,0.s) -Chars 16566 - 16567 [-] 0. secs (0.u,0.s) -Chars 16568 - 16576 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 16577 - 16589 [constructor.] 0. secs (0.u,0.s) -Chars 16590 - 16612 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 16615 - 16619 [Qed.] 0.016 secs (0.015u,0.s) -Chars 16623 - 16736 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) -Chars 16739 - 16745 [Proof.] 0. secs (0.u,0.s) -Chars 16750 - 16759 [(intros~R).] 0. secs (0.u,0.s) -Chars 16760 - 16778 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 16779 - 16786 [(intros).] 0. secs (0.u,0.s) -Chars 16793 - 16800 [(sinv~H).] 0.031 secs (0.031u,0.s) -Chars 16805 - 16806 [-] 0. secs (0.u,0.s) -Chars 16807 - 16838 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 16839 - 16847 [simpobs.] 0. secs (0.u,0.s) -Chars 16855 - 16872 [(rewrite~Ht~in~H0).] 0.001 secs (0.001u,0.s) -Chars 16873 - 16881 [(sinv~H0).] 0.001 secs (0.001u,0.s) -Chars 16886 - 16887 [-] 0. secs (0.u,0.s) -Chars 16888 - 16893 [icbn.] 0. secs (0.u,0.s) -Chars 16894 - 16902 [simpobs.] 0. secs (0.u,0.s) -Chars 16910 - 16920 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 16921 - 16949 [(step~in~H0;~simpobs;~inv~H0).] 0.012 secs (0.012u,0.s) -Chars 16957 - 16969 [constructor.] 0. secs (0.u,0.s) -Chars 16976 - 16992 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.008 secs (0.008u,0.s) -Chars 17004 - 17122 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) -Chars 17125 - 17131 [Proof.] 0. secs (0.u,0.s) -Chars 17136 - 17149 [(intros~R~t~r).] 0. secs (0.u,0.s) -Chars 17154 - 17161 [(intros).] 0. secs (0.u,0.s) -Chars 17162 - 17181 [(induction~H0;~auto).] 0. secs (0.u,0.s) -Chars 17182 - 17198 [(rewrite~H0~in~H).] 0. secs (0.u,0.s) -Chars 17203 - 17210 [(sinv~H).] 0. secs (0.u,0.s) -Chars 17213 - 17217 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17221 - 17416 [Lemma~eqitE_imp_eutt~:~~~foral...] 0. secs (0.u,0.s) -Chars 17419 - 17425 [Proof.] 0. secs (0.u,0.s) -Chars 17430 - 17449 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 17450 - 17468 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 17473 - 17490 [(intros~t1~t2~Heq).] 0. secs (0.u,0.s) -Chars 17491 - 17496 [icbn.] 0. secs (0.u,0.s) -Chars 17497 - 17509 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 17515 - 17546 [(induction~Heq;~auto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 17549 - 17553 [Qed.] 0.004 secs (0.004u,0.s) -Chars 17557 - 17807 [Lemma~eqitE_imp_eventlessl~:~~...] 0. secs (0.u,0.s) -Chars 17810 - 17816 [Proof.] 0. secs (0.u,0.s) -Chars 17821 - 17843 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 17844 - 17862 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 17867 - 17874 [(intros).] 0. secs (0.u,0.s) -Chars 17875 - 17885 [step~in~H.] 0. secs (0.u,0.s) -Chars 17891 - 17896 [icbn.] 0. secs (0.u,0.s) -Chars 17897 - 17927 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 17932 - 17944 [constructor.] 0. secs (0.u,0.s) -Chars 17945 - 17985 [(apply~(CIH~t0~(ITreeDefinitio...] 0. secs (0.u,0.s) -Chars 17986 - 17995 [now~step.] 0. secs (0.u,0.s) -Chars 17999 - 18003 [Qed.] 0.002 secs (0.002u,0.s) -Chars 18007 - 18257 [Lemma~eqitE_imp_eventlessr~:~~...] 0. secs (0.u,0.s) -Chars 18260 - 18266 [Proof.] 0. secs (0.u,0.s) -Chars 18271 - 18293 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 18294 - 18312 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18317 - 18324 [(intros).] 0. secs (0.u,0.s) -Chars 18325 - 18335 [step~in~H.] 0. secs (0.u,0.s) -Chars 18340 - 18345 [icbn.] 0. secs (0.u,0.s) -Chars 18346 - 18376 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 18381 - 18393 [constructor.] 0. secs (0.u,0.s) -Chars 18394 - 18434 [(apply~(CIH~(ITreeDefinition.g...] 0. secs (0.u,0.s) -Chars 18435 - 18444 [now~step.] 0. secs (0.u,0.s) -Chars 18448 - 18452 [Qed.] 0.002 secs (0.002u,0.s) -Chars 18456 - 18553 [Lemma~eventless_spin~:~~~foral...] 0. secs (0.u,0.s) -Chars 18556 - 18562 [Proof.] 0. secs (0.u,0.s) -Chars 18567 - 18579 [(intros~E1~R).] 0. secs (0.u,0.s) -Chars 18580 - 18598 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18599 - 18604 [icbn.] 0. secs (0.u,0.s) -Chars 18605 - 18609 [(cbn).] 0. secs (0.u,0.s) -Chars 18610 - 18622 [constructor.] 0. secs (0.u,0.s) -Chars 18627 - 18632 [auto.] 0. secs (0.u,0.s) -Chars 18635 - 18639 [Qed.] 0. secs (0.u,0.s) -Chars 18643 - 18874 [CoFixpoint~remove_events'~{E1~...] 0. secs (0.u,0.s) -Chars 18878 - 18977 [Definition~remove_events~{E1}~...] 0. secs (0.u,0.s) -Chars 18981 - 19177 [Lemma~remove_events_eventless_...] 0. secs (0.u,0.s) -Chars 19180 - 19186 [Proof.] 0. secs (0.u,0.s) -Chars 19191 - 19206 [(intros~E1~E2~A).] 0. secs (0.u,0.s) -Chars 19207 - 19225 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19226 - 19233 [(intros).] 0. secs (0.u,0.s) -Chars 19238 - 19243 [icbn.] 0. secs (0.u,0.s) -Chars 19244 - 19251 [(sinv~H).] 0.006 secs (0.005u,0.s) -Chars 19256 - 19257 [-] 0. secs (0.u,0.s) -Chars 19258 - 19262 [(cbn).] 0. secs (0.u,0.s) -Chars 19263 - 19284 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 19285 - 19299 [(rewrite~<-~H1).] 0. secs (0.u,0.s) -Chars 19300 - 19304 [(cbn).] 0. secs (0.u,0.s) -Chars 19305 - 19321 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 19326 - 19327 [-] 0. secs (0.u,0.s) -Chars 19328 - 19349 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 19350 - 19364 [(rewrite~<-~H0).] 0. secs (0.u,0.s) -Chars 19365 - 19369 [(cbn).] 0. secs (0.u,0.s) -Chars 19370 - 19382 [constructor.] 0. secs (0.u,0.s) -Chars 19383 - 19393 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 19400 - 19405 [auto.] 0. secs (0.u,0.s) -Chars 19408 - 19412 [Qed.] 0.003 secs (0.003u,0.s) -Chars 19416 - 19590 [Lemma~remove_events_eventless~...] 0. secs (0.u,0.s) -Chars 19593 - 19599 [Proof.] 0. secs (0.u,0.s) -Chars 19604 - 19619 [(intros~E1~E2~A).] 0. secs (0.u,0.s) -Chars 19620 - 19638 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19639 - 19646 [(intros).] 0. secs (0.u,0.s) -Chars 19651 - 19656 [icbn.] 0. secs (0.u,0.s) -Chars 19657 - 19678 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 19679 - 19710 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) -Chars 19715 - 19716 [-] 0. secs (0.u,0.s) -Chars 19717 - 19721 [(cbn).] 0. secs (0.u,0.s) -Chars 19722 - 19734 [constructor.] 0. secs (0.u,0.s) -Chars 19739 - 19740 [-] 0. secs (0.u,0.s) -Chars 19741 - 19745 [(cbn).] 0. secs (0.u,0.s) -Chars 19746 - 19758 [constructor.] 0. secs (0.u,0.s) -Chars 19759 - 19769 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 19774 - 19775 [-] 0. secs (0.u,0.s) -Chars 19776 - 19780 [(cbn).] 0. secs (0.u,0.s) -Chars 19781 - 19793 [constructor.] 0. secs (0.u,0.s) -Chars 19794 - 19804 [(do~2~step).] 0. secs (0.u,0.s) -Chars 19805 - 19826 [(apply~eventless_spin).] 0. secs (0.u,0.s) -Chars 19830 - 19834 [Qed.] 0.001 secs (0.001u,0.s) -Chars 19838 - 19913 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) -Chars 19916 - 19922 [Proof.] 0. secs (0.u,0.s) -Chars 19927 - 19936 [(intros~A).] 0. secs (0.u,0.s) -Chars 19937 - 19955 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19956 - 19963 [(intros).] 0. secs (0.u,0.s) -Chars 19968 - 19973 [icbn.] 0. secs (0.u,0.s) -Chars 19974 - 20012 [(destruct~(observe~d);~auto~wi...] 0. secs (0.u,0.s) -Chars 20017 - 20028 [(destruct~e).] 0. secs (0.u,0.s) -Chars 20031 - 20035 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20039 - 20238 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) -Chars 20241 - 20247 [Proof.] 0. secs (0.u,0.s) -Chars 20252 - 20274 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 20280 - 20298 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20299 - 20306 [(intros).] 0. secs (0.u,0.s) -Chars 20307 - 20312 [icbn.] 0. secs (0.u,0.s) -Chars 20318 - 20325 [(intros).] 0. secs (0.u,0.s) -Chars 20330 - 20340 [step~in~H.] 0. secs (0.u,0.s) -Chars 20346 - 20372 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 20378 - 20404 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 20410 - 20437 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 20438 - 20447 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20453 - 20512 [(induction~H;~intros~t1'~t2'~H...] 0.022 secs (0.022u,0.s) -Chars 20517 - 20518 [-] 0. secs (0.u,0.s) -Chars 20519 - 20542 [(inv~Heqot1;~inv~Heqot2).] 0.006 secs (0.006u,0.s) -Chars 20543 - 20552 [now~step.] 0.001 secs (0.001u,0.s) -Chars 20559 - 20560 [-] 0. secs (0.u,0.s) -Chars 20561 - 20588 [(inv~H;~inv~Heqot1;~simpobs).] 0.043 secs (0.042u,0.s) -Chars 20596 - 20597 [+] 0. secs (0.u,0.s) -Chars 20598 - 20610 [constructor.] 0. secs (0.u,0.s) -Chars 20611 - 20630 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20638 - 20639 [+] 0. secs (0.u,0.s) -Chars 20640 - 20652 [constructor.] 0. secs (0.u,0.s) -Chars 20653 - 20672 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20679 - 20680 [+] 0. secs (0.u,0.s) -Chars 20681 - 20695 [now~do~2~step.] 0.001 secs (0.001u,0.s) -Chars 20701 - 20702 [-] 0. secs (0.u,0.s) -Chars 20703 - 20730 [(inv~H;~inv~Heqot2;~simpobs).] 0.041 secs (0.041u,0.s) -Chars 20738 - 20739 [+] 0. secs (0.u,0.s) -Chars 20740 - 20752 [constructor.] 0. secs (0.u,0.s) -Chars 20753 - 20772 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20780 - 20781 [+] 0. secs (0.u,0.s) -Chars 20782 - 20796 [now~do~2~step.] 0.001 secs (0.001u,0.s) -Chars 20804 - 20805 [+] 0. secs (0.u,0.s) -Chars 20806 - 20818 [constructor.] 0. secs (0.u,0.s) -Chars 20819 - 20838 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20842 - 20846 [Qed.] 0.013 secs (0.013u,0.s) -Chars 20852 - 21107 [Lemma~inv_remove_events~:~~~fo...] 0. secs (0.u,0.s) -Chars 21110 - 21116 [Proof.] 0. secs (0.u,0.s) -Chars 21121 - 21136 [(intros~E1~E2~R).] 0. secs (0.u,0.s) -Chars 21137 - 21155 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 21160 - 21189 [(intros~t1~t2~Hev1~Hev2~Heutt).] 0. secs (0.u,0.s) -Chars 21190 - 21195 [icbn.] 0. secs (0.u,0.s) -Chars 21200 - 21214 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 21215 - 21248 [(dependent~induction~Heutt;~su...] 0.034 secs (0.033u,0.s) -Chars 21253 - 21254 [-] 0. secs (0.u,0.s) -Chars 21255 - 21285 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) -Chars 21292 - 21355 [(destruct~(observe~t1);~destru...] 0.003 secs (0.003u,0.s) -Chars 21362 - 21374 [constructor.] 0. secs (0.u,0.s) -Chars 21375 - 21384 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 21385 - 21399 [(inv~x0;~inv~x).] 0.001 secs (0.001u,0.s) -Chars 21405 - 21406 [-] 0. secs (0.u,0.s) -Chars 21407 - 21437 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) -Chars 21444 - 21529 [(destruct~(observe~t1)~eqn:Heq...] 0.004 secs (0.004u,0.s) -Chars 21536 - 21537 [+] 0. secs (0.u,0.s) -Chars 21538 - 21547 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 21548 - 21560 [constructor.] 0. secs (0.u,0.s) -Chars 21569 - 21576 [(inv~x0).] 0.003 secs (0.003u,0.s) -Chars 21577 - 21583 [(inv~x).] 0.003 secs (0.003u,0.s) -Chars 21584 - 21591 [(intros).] 0. secs (0.u,0.s) -Chars 21602 - 21618 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 21627 - 21628 [*] 0. secs (0.u,0.s) -Chars 21629 - 21662 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 21663 - 21683 [(rewrite~Heq1~in~Ht1).] 0. secs (0.u,0.s) -Chars 21694 - 21712 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) -Chars 21723 - 21724 [{] 0. secs (0.u,0.s) -Chars 21725 - 21737 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) -Chars 21738 - 21755 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 21756 - 21768 [reflexivity.] 0. secs (0.u,0.s) -Chars 21769 - 21770 [}] 0. secs (0.u,0.s) -Chars 21781 - 21791 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 21792 - 21797 [auto.] 0. secs (0.u,0.s) -Chars 21806 - 21807 [*] 0. secs (0.u,0.s) -Chars 21808 - 21841 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 21842 - 21862 [(rewrite~Heq2~in~Ht2).] 0. secs (0.u,0.s) -Chars 21873 - 21892 [(assert~(t0~≈~t2)).] 0. secs (0.u,0.s) -Chars 21903 - 21904 [{] 0. secs (0.u,0.s) -Chars 21905 - 21917 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) -Chars 21918 - 21935 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 21936 - 21948 [reflexivity.] 0. secs (0.u,0.s) -Chars 21949 - 21950 [}] 0. secs (0.u,0.s) -Chars 21961 - 21971 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 21972 - 21977 [auto.] 0. secs (0.u,0.s) -Chars 21984 - 21985 [+] 0. secs (0.u,0.s) -Chars 21986 - 21996 [(sinv~Hev2).] 0.016 secs (0.016u,0.s) -Chars 22005 - 22006 [*] 0. secs (0.u,0.s) -Chars 22007 - 22026 [(rewrite~Heq2~in~H0).] 0. secs (0.u,0.s) -Chars 22027 - 22040 [discriminate.] 0. secs (0.u,0.s) -Chars 22049 - 22050 [*] 0. secs (0.u,0.s) -Chars 22051 - 22069 [(rewrite~Heq2~in~H).] 0. secs (0.u,0.s) -Chars 22070 - 22083 [discriminate.] 0. secs (0.u,0.s) -Chars 22090 - 22091 [+] 0. secs (0.u,0.s) -Chars 22092 - 22102 [(sinv~Hev1).] 0.013 secs (0.013u,0.s) -Chars 22111 - 22112 [*] 0. secs (0.u,0.s) -Chars 22113 - 22132 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) -Chars 22133 - 22146 [discriminate.] 0. secs (0.u,0.s) -Chars 22155 - 22156 [*] 0. secs (0.u,0.s) -Chars 22157 - 22175 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) -Chars 22176 - 22189 [discriminate.] 0. secs (0.u,0.s) -Chars 22196 - 22197 [+] 0. secs (0.u,0.s) -Chars 22198 - 22208 [(sinv~Hev1).] 0.013 secs (0.013u,0.s) -Chars 22217 - 22218 [*] 0. secs (0.u,0.s) -Chars 22219 - 22238 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) -Chars 22239 - 22252 [discriminate.] 0. secs (0.u,0.s) -Chars 22261 - 22262 [*] 0. secs (0.u,0.s) -Chars 22263 - 22281 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) -Chars 22282 - 22295 [discriminate.] 0. secs (0.u,0.s) -Chars 22300 - 22301 [-] 0. secs (0.u,0.s) -Chars 22302 - 22328 [(unfold~remove_events~in~*).] 0. secs (0.u,0.s) -Chars 22329 - 22376 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) -Chars 22381 - 22382 [-] 0. secs (0.u,0.s) -Chars 22383 - 22409 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) -Chars 22410 - 22470 [(destruct~(observe~t1)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 22477 - 22478 [+] 0. secs (0.u,0.s) -Chars 22479 - 22496 [injection~x~as~x.] 0. secs (0.u,0.s) -Chars 22497 - 22509 [constructor.] 0. secs (0.u,0.s) -Chars 22518 - 22538 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) -Chars 22547 - 22548 [*] 0. secs (0.u,0.s) -Chars 22549 - 22582 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22583 - 22602 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) -Chars 22613 - 22631 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) -Chars 22642 - 22643 [{] 0. secs (0.u,0.s) -Chars 22644 - 22656 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) -Chars 22657 - 22674 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 22675 - 22687 [reflexivity.] 0. secs (0.u,0.s) -Chars 22688 - 22689 [}] 0. secs (0.u,0.s) -Chars 22701 - 22712 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 22713 - 22718 [auto.] 0. secs (0.u,0.s) -Chars 22727 - 22728 [*] 0. secs (0.u,0.s) -Chars 22729 - 22750 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 22751 - 22761 [(rewrite~x).] 0. secs (0.u,0.s) -Chars 22762 - 22767 [auto.] 0. secs (0.u,0.s) -Chars 22774 - 22775 [+] 0. secs (0.u,0.s) -Chars 22776 - 22784 [exfalso.] 0. secs (0.u,0.s) -Chars 22785 - 22818 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22819 - 22838 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) -Chars 22847 - 22867 [(rewrite~Ht1~in~Hev1).] 0.002 secs (0.002u,0.s) -Chars 22868 - 22878 [(sinv~Hev1).] 0. secs (0.u,0.s) -Chars 22883 - 22884 [-] 0. secs (0.u,0.s) -Chars 22885 - 22911 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) -Chars 22912 - 22972 [(destruct~(observe~t2)~eqn:Heq...] 0.002 secs (0.002u,0.s) -Chars 22979 - 22980 [+] 0. secs (0.u,0.s) -Chars 22981 - 22998 [injection~x~as~x.] 0. secs (0.u,0.s) -Chars 22999 - 23011 [constructor.] 0. secs (0.u,0.s) -Chars 23020 - 23040 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) -Chars 23049 - 23050 [*] 0. secs (0.u,0.s) -Chars 23051 - 23084 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 23085 - 23104 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) -Chars 23115 - 23133 [(assert~(t~≈~t2)).] 0. secs (0.u,0.s) -Chars 23144 - 23145 [{] 0. secs (0.u,0.s) -Chars 23146 - 23158 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) -Chars 23159 - 23176 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 23177 - 23189 [reflexivity.] 0. secs (0.u,0.s) -Chars 23190 - 23191 [}] 0. secs (0.u,0.s) -Chars 23202 - 23212 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 23213 - 23218 [auto.] 0. secs (0.u,0.s) -Chars 23227 - 23228 [*] 0. secs (0.u,0.s) -Chars 23229 - 23250 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 23251 - 23261 [(rewrite~x).] 0. secs (0.u,0.s) -Chars 23262 - 23267 [auto.] 0. secs (0.u,0.s) -Chars 23274 - 23275 [+] 0. secs (0.u,0.s) -Chars 23276 - 23284 [exfalso.] 0. secs (0.u,0.s) -Chars 23285 - 23318 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 23319 - 23338 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) -Chars 23347 - 23367 [(rewrite~Ht2~in~Hev2).] 0.001 secs (0.001u,0.s) -Chars 23368 - 23378 [(sinv~Hev2).] 0. secs (0.u,0.s) -Chars 23381 - 23385 [Qed.] 0.043 secs (0.043u,0.s) -Chars 23389 - 23698 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) -Chars 23701 - 23707 [Proof.] 0. secs (0.u,0.s) -Chars 23712 - 23740 [(intros~E1~E2~E3~E4~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 23741 - 23759 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 23760 - 23767 [(intros).] 0. secs (0.u,0.s) -Chars 23772 - 23782 [step~in~H.] 0. secs (0.u,0.s) -Chars 23783 - 23788 [icbn.] 0. secs (0.u,0.s) -Chars 23789 - 23810 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 23815 - 23849 [(induction~H;~cbn;~auto~with~i...] 0.006 secs (0.006u,0.s) -Chars 23854 - 23866 [constructor.] 0. secs (0.u,0.s) -Chars 23867 - 23883 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23886 - 23890 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23894 - 24093 [Lemma~eqitE_trans~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 24096 - 24102 [Proof.] 0. secs (0.u,0.s) -Chars 24107 - 24144 [(intros~E1~E2~E3~R~t1~t2~t3~Ht...] 0. secs (0.u,0.s) -Chars 24149 - 24177 [(assert~(Ht1~:~eventless~t1)).] 0. secs (0.u,0.s) -Chars 24182 - 24183 [{] 0. secs (0.u,0.s) -Chars 24184 - 24219 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) -Chars 24220 - 24221 [}] 0. secs (0.u,0.s) -Chars 24226 - 24254 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) -Chars 24259 - 24260 [{] 0. secs (0.u,0.s) -Chars 24261 - 24296 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) -Chars 24297 - 24298 [}] 0. secs (0.u,0.s) -Chars 24303 - 24331 [(assert~(Ht3~:~eventless~t3)).] 0. secs (0.u,0.s) -Chars 24336 - 24337 [{] 0. secs (0.u,0.s) -Chars 24338 - 24373 [(eapply~eqitE_imp_eventlessr;~...] 0. secs (0.u,0.s) -Chars 24374 - 24375 [}] 0. secs (0.u,0.s) -Chars 24380 - 24410 [(apply~inv_remove_events;~auto).] 0. secs (0.u,0.s) -Chars 24415 - 24471 [(assert~(remove_events~t1~≈~@r...] 0. secs (0.u,0.s) -Chars 24476 - 24477 [{] 0. secs (0.u,0.s) -Chars 24484 - 24505 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) -Chars 24506 - 24532 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) -Chars 24533 - 24538 [auto.] 0. secs (0.u,0.s) -Chars 24543 - 24544 [}] 0. secs (0.u,0.s) -Chars 24549 - 24605 [(assert~(remove_events~t2~≈~@r...] 0. secs (0.u,0.s) -Chars 24610 - 24611 [{] 0. secs (0.u,0.s) -Chars 24618 - 24639 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) -Chars 24640 - 24666 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) -Chars 24667 - 24672 [auto.] 0. secs (0.u,0.s) -Chars 24677 - 24678 [}] 0. secs (0.u,0.s) -Chars 24683 - 24693 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 24694 - 24699 [auto.] 0. secs (0.u,0.s) -Chars 24702 - 24706 [Qed.] 0.001 secs (0.001u,0.s) -Chars 24710 - 24870 [Lemma~equivE_sym~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 24873 - 24879 [Proof.] 0. secs (0.u,0.s) -Chars 24884 - 24899 [(intros~E1~E2~R).] 0. secs (0.u,0.s) -Chars 24900 - 24918 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 24919 - 24926 [(intros).] 0. secs (0.u,0.s) -Chars 24931 - 24941 [step~in~H.] 0. secs (0.u,0.s) -Chars 24942 - 24947 [icbn.] 0. secs (0.u,0.s) -Chars 24953 - 24983 [(induction~H;~eauto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 24986 - 24990 [Qed.] 0.002 secs (0.002u,0.s) -Chars 24995 - 25106 [Instance~proper_eutt_equivE_im...] 0. secs (0.u,0.s) -Chars 25109 - 25115 [Proof.] 0. secs (0.u,0.s) -Chars 25120 - 25149 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) -Chars 25150 - 25156 [intro.] 0. secs (0.u,0.s) -Chars 25161 - 25200 [(apply~eqitE_imp_eventlessl~in...] 0. secs (0.u,0.s) -Chars 25205 - 25244 [(apply~eqitE_imp_eventlessr~in...] 0. secs (0.u,0.s) -Chars 25249 - 25277 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) -Chars 25282 - 25283 [{] 0. secs (0.u,0.s) -Chars 25284 - 25300 [(rewrite~<-~Ht12).] 0.001 secs (0.001u,0.s) -Chars 25301 - 25306 [auto.] 0. secs (0.u,0.s) -Chars 25307 - 25308 [}] 0. secs (0.u,0.s) -Chars 25313 - 25341 [(assert~(Ht4~:~eventless~t4)).] 0. secs (0.u,0.s) -Chars 25346 - 25347 [{] 0. secs (0.u,0.s) -Chars 25348 - 25364 [(rewrite~<-~Ht34).] 0.001 secs (0.001u,0.s) -Chars 25365 - 25370 [auto.] 0. secs (0.u,0.s) -Chars 25371 - 25372 [}] 0. secs (0.u,0.s) -Chars 25377 - 25411 [(apply~eqitE_trans~with~(t2~:=...] 0. secs (0.u,0.s) -Chars 25416 - 25417 [-] 0. secs (0.u,0.s) -Chars 25418 - 25435 [symmetry~in~Ht12.] 0. secs (0.u,0.s) -Chars 25436 - 25440 [(red).] 0. secs (0.u,0.s) -Chars 25441 - 25468 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) -Chars 25473 - 25474 [-] 0. secs (0.u,0.s) -Chars 25475 - 25515 [(apply~eqitE_trans~with~(t2~:=...] 0.001 secs (0.001u,0.s) -Chars 25522 - 25549 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) -Chars 25552 - 25556 [Qed.] 0.001 secs (0.001u,0.s) -Chars 25560 - 25662 [Instance~proper_eutt_equivE~~{...] 0. secs (0.u,0.s) -Chars 25665 - 25671 [Proof.] 0. secs (0.u,0.s) -Chars 25676 - 25690 [(split;~intros).] 0. secs (0.u,0.s) -Chars 25695 - 25696 [-] 0. secs (0.u,0.s) -Chars 25697 - 25710 [(rewrite~<-~H).] 0.008 secs (0.008u,0.s) -Chars 25711 - 25725 [(rewrite~<-~H0).] 0.01 secs (0.01u,0.s) -Chars 25726 - 25731 [auto.] 0. secs (0.u,0.s) -Chars 25736 - 25737 [-] 0. secs (0.u,0.s) -Chars 25738 - 25752 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 25753 - 25768 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 25775 - 25788 [(rewrite~<-~H).] 0.01 secs (0.009u,0.s) -Chars 25789 - 25803 [(rewrite~<-~H0).] 0.01 secs (0.01u,0.s) -Chars 25804 - 25809 [auto.] 0. secs (0.u,0.s) -Chars 25812 - 25816 [Qed.] 0.002 secs (0.002u,0.s) -Chars 25923 - 26315 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) -Chars 26319 - 26749 [Variant~itree_includesF~{R~:~T...] 0.001 secs (0.001u,0.s) -Chars 26753 - 26795 [Hint~Constructors~itree_includ...] 0. secs (0.u,0.s) -Chars 26800 - 26874 [Lemma~itree_includes_mono~{R}~...] 0. secs (0.u,0.s) -Chars 26877 - 26883 [Proof.] 0. secs (0.u,0.s) -Chars 26889 - 26902 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 26903 - 26934 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 26940 - 26960 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 26961 - 26973 [now~apply~H.] 0. secs (0.u,0.s) -Chars 26977 - 26981 [Qed.] 0. secs (0.u,0.s) -Chars 26986 - 27058 [Definition~itree_includes_mon~...] 0. secs (0.u,0.s) -Chars 27065 - 27181 [Definition~itree_includes~{R~:...] 0. secs (0.u,0.s) -Chars 27183 - 27201 [End~ITreeDijkstra.] 0.005 secs (0.005u,0.s) -Chars 27203 - 27226 [Section~RetBindCounter.] 0. secs (0.u,0.s) -Chars 27230 - 27284 [Variant~Sound~:~Type~->~Prop~:...] 0. secs (0.u,0.s) -Chars 27691 - 27779 [#[program]~Definition~p~:~ITDI...] 0.001 secs (0.001u,0.s) -Chars 27782 - 27798 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 27803 - 27814 [(repeat~red).] 0. secs (0.u,0.s) -Chars 27815 - 27822 [(intros).] 0. secs (0.u,0.s) -Chars 27823 - 27846 [(split;~rewrite~H;~auto).] 0.012 secs (0.012u,0.s) -Chars 27849 - 27853 [Qed.] 0.001 secs (0.001u,0.s) -Chars 28479 - 28567 [#[program]~Definition~w~:~ITre...] 0.001 secs (0.001u,0.s) -Chars 28746 - 28854 [Lemma~bind_ret_failure~:~~~~~~...] 0. secs (0.u,0.s) -Chars 28857 - 28863 [Proof.] 0. secs (0.u,0.s) -Chars 28868 - 28872 [(cbn).] 0. secs (0.u,0.s) -Chars 28873 - 28888 [(intros~Hcontra).] 0. secs (0.u,0.s) -Chars 28893 - 28916 [specialize~(Hcontra~p).] 0. secs (0.u,0.s) -Chars 28921 - 28963 [(assert~(p~∋~Vis~Ring~(fun~_~=...] 0. secs (0.u,0.s) -Chars 28968 - 28969 [{] 0. secs (0.u,0.s) -Chars 28976 - 28985 [(unfold~p).] 0. secs (0.u,0.s) -Chars 28986 - 28990 [(cbn).] 0. secs (0.u,0.s) -Chars 28991 - 29003 [reflexivity.] 0. secs (0.u,0.s) -Chars 29008 - 29009 [}] 0. secs (0.u,0.s) -Chars 29014 - 29033 [(apply~Hcontra~in~H).] 0. secs (0.u,0.s) -Chars 29034 - 29048 [clear~Hcontra.] 0. secs (0.u,0.s) -Chars 29049 - 29061 [basic_solve.] 0. secs (0.u,0.s) -Chars 29066 - 29067 [-] 0. secs (0.u,0.s) -Chars 29068 - 29083 [(unfold~p~in~H0).] 0. secs (0.u,0.s) -Chars 29084 - 29094 [(cbn~in~H0).] 0. secs (0.u,0.s) -Chars 29095 - 29103 [(sinv~H0).] 0.002 secs (0.002u,0.s) -Chars 29108 - 29109 [-] 0. secs (0.u,0.s) -Chars 29110 - 29119 [clear~H0.] 0. secs (0.u,0.s) -Chars 29120 - 29158 [(sinv~H;~try~apply~all_infinit...] 0.001 secs (0.001u,0.s) -Chars 29159 - 29172 [ddestruction.] 0. secs (0.u,0.s) -Chars 29179 - 29198 [specialize~(H1~tt).] 0. secs (0.u,0.s) -Chars 29199 - 29241 [(step~in~H1;~try~apply~all_inf...] 0. secs (0.u,0.s) -Chars 29248 - 29255 [(inv~H1).] 0. secs (0.u,0.s) -Chars 29258 - 29262 [Qed.] 0.006 secs (0.006u,0.s) -Chars 29264 - 29283 [End~RetBindCounter.] 0. secs (0.u,0.s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) +Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.229 secs (0.2u,0.027s) +Chars 242 - 361 [From~ITree.Extra~Require~Impor...] 0.021 secs (0.017u,0.004s) +Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) +Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 401 - 433 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 434 - 470 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) +Chars 473 - 495 [Section~ITreeDijkstra.] 0. secs (0.u,0.s) +Chars 499 - 526 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 530 - 602 [Definition~ITDInput~(A~:~Type)...] 0. secs (0.u,0.s) +Chars 606 - 760 [Definition~ITreeSpec~(A~:~Type...] 0. secs (0.u,0.s) +Chars 764 - 848 [#[program]~Definition~ret_itre...] 0.003 secs (0.002u,0.s) +Chars 852 - 940 [Instance~proper_itree_spec~~{R...] 0. secs (0.u,0.s) +Chars 943 - 949 [Proof.] 0. secs (0.u,0.s) +Chars 954 - 967 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 968 - 989 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 990 - 996 [(simpl).] 0. secs (0.u,0.s) +Chars 997 - 1029 [(split;~intros;~eapply~Hp;~eau...] 0.002 secs (0.001u,0.s) +Chars 1034 - 1051 [now~rewrite~<-~H.] 0.004 secs (0.003u,0.s) +Chars 1054 - 1058 [Qed.] 0.036 secs (0.032u,0.004s) +Chars 1062 - 1271 [#[program]~Definition~bind_ex~...] 0.004 secs (0.004u,0.s) +Chars 1274 - 1290 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 1293 - 1299 [Proof.] 0. secs (0.u,0.s) +Chars 1304 - 1315 [(repeat~red).] 0. secs (0.u,0.s) +Chars 1316 - 1343 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 1348 - 1349 [-] 0. secs (0.u,0.s) +Chars 1350 - 1355 [left.] 0. secs (0.u,0.s) +Chars 1356 - 1365 [exists~a.] 0. secs (0.u,0.s) +Chars 1366 - 1382 [(rewrite~H~in~H0).] 0.005 secs (0.005u,0.s) +Chars 1383 - 1388 [auto.] 0. secs (0.u,0.s) +Chars 1393 - 1394 [-] 0. secs (0.u,0.s) +Chars 1395 - 1401 [right.] 0. secs (0.u,0.s) +Chars 1402 - 1420 [(rewrite~<-~H~~at~1).] 0.002 secs (0.002u,0.s) +Chars 1421 - 1433 [(split;~auto).] 0. secs (0.u,0.s) +Chars 1440 - 1473 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) +Chars 1480 - 1521 [specialize~(all_infinite_euttN...] 0. secs (0.u,0.s) +Chars 1528 - 1535 [(intros).] 0. secs (0.u,0.s) +Chars 1542 - 1580 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) +Chars 1587 - 1603 [(rewrite~H~in~H0).] 0.001 secs (0.001u,0.s) +Chars 1604 - 1642 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) +Chars 1649 - 1659 [(eapply~Hp).] 0. secs (0.u,0.s) +Chars 1667 - 1677 [clear~Ht2.] 0. secs (0.u,0.s) +Chars 1685 - 1699 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 1707 - 1730 [(eapply~noret_cast_cast).] 0. secs (0.u,0.s) +Chars 1731 - 1742 [all:~eauto.] 0.001 secs (0.001u,0.s) +Chars 1747 - 1748 [-] 0. secs (0.u,0.s) +Chars 1749 - 1754 [left.] 0. secs (0.u,0.s) +Chars 1755 - 1764 [exists~a.] 0. secs (0.u,0.s) +Chars 1765 - 1777 [(split;~auto).] 0. secs (0.u,0.s) +Chars 1778 - 1788 [(rewrite~H).] 0.005 secs (0.004u,0.s) +Chars 1789 - 1794 [auto.] 0. secs (0.u,0.s) +Chars 1799 - 1800 [-] 0. secs (0.u,0.s) +Chars 1801 - 1807 [right.] 0. secs (0.u,0.s) +Chars 1808 - 1823 [(rewrite~H~~at~1).] 0.002 secs (0.002u,0.s) +Chars 1824 - 1836 [(split;~auto).] 0. secs (0.u,0.s) +Chars 1843 - 1876 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) +Chars 1883 - 1893 [(eapply~Hp).] 0. secs (0.u,0.s) +Chars 1901 - 1915 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 1923 - 1932 [symmetry.] 0. secs (0.u,0.s) +Chars 1940 - 1970 [(eapply~noret_cast_cast;~eauto).] 0. secs (0.u,0.s) +Chars 1977 - 1982 [auto.] 0. secs (0.u,0.s) +Chars 1986 - 1990 [Qed.] 0.007 secs (0.007u,0.s) +Chars 1993 - 2009 [Next~Obligation.] 0.002 secs (0.002u,0.s) +Chars 2012 - 2018 [Proof.] 0. secs (0.u,0.s) +Chars 2023 - 2044 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 2045 - 2056 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2058 - 2082 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 2087 - 2094 [(intros).] 0. secs (0.u,0.s) +Chars 2095 - 2106 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2111 - 2132 [(destruct~p~as~[p~Hp]).] 0.001 secs (0.u,0.s) +Chars 2133 - 2157 [(destruct~p'~as~[p'~Hp']).] 0. secs (0.u,0.s) +Chars 2158 - 2169 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2174 - 2186 [basic_solve.] 0. secs (0.u,0.s) +Chars 2191 - 2192 [-] 0. secs (0.u,0.s) +Chars 2193 - 2198 [left.] 0. secs (0.u,0.s) +Chars 2199 - 2208 [exists~a.] 0. secs (0.u,0.s) +Chars 2209 - 2221 [(split;~auto).] 0. secs (0.u,0.s) +Chars 2222 - 2249 [(destruct~(g~a)~as~[ga~Hga]).] 0. secs (0.u,0.s) +Chars 2250 - 2261 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2268 - 2293 [(eapply~Hga;~try~apply~H2).] 0. secs (0.u,0.s) +Chars 2300 - 2306 [(simpl).] 0. secs (0.u,0.s) +Chars 2307 - 2312 [auto.] 0. secs (0.u,0.s) +Chars 2317 - 2318 [-] 0. secs (0.u,0.s) +Chars 2319 - 2325 [right.] 0. secs (0.u,0.s) +Chars 2326 - 2338 [(split;~auto).] 0. secs (0.u,0.s) +Chars 2341 - 2345 [Qed.] 0.007 secs (0.006u,0.s) +Chars 2349 - 2440 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0.001 secs (0.001u,0.s) +Chars 2444 - 2509 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) +Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) +Chars 2523 - 2564 [(constructor;~red;~intros;~red...] 0.005 secs (0.004u,0.s) +Chars 2569 - 2570 [-] 0. secs (0.u,0.s) +Chars 2571 - 2580 [(red~in~H).] 0. secs (0.u,0.s) +Chars 2581 - 2588 [(intros).] 0. secs (0.u,0.s) +Chars 2589 - 2599 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 2600 - 2612 [reflexivity.] 0. secs (0.u,0.s) +Chars 2617 - 2618 [-] 0. secs (0.u,0.s) +Chars 2619 - 2626 [(intros).] 0. secs (0.u,0.s) +Chars 2627 - 2636 [(red~in~H).] 0. secs (0.u,0.s) +Chars 2637 - 2647 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 2648 - 2658 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 2659 - 2670 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 2677 - 2689 [reflexivity.] 0. secs (0.u,0.s) +Chars 2692 - 2696 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2700 - 2804 [Instance~ItreeSpecMonad~:~(Mon...] 0. secs (0.u,0.s) +Chars 5748 - 5808 [Inductive~Ev~:~Type~:=~~~~~ev~...] 0. secs (0.u,0.s) +Chars 5812 - 5899 [Variant~streamF~{A~:~Type}~{F~...] 0. secs (0.u,0.s) +Chars 5903 - 5983 [CoInductive~stream~(A~:~Type)~...] 0. secs (0.u,0.s) +Chars 5987 - 6033 [Notation~stream'~A:=~(@streamF...] 0. secs (0.u,0.s) +Chars 6037 - 6096 [Definition~Nil~{A}~:~stream~A~...] 0. secs (0.u,0.s) +Chars 6100 - 6174 [Definition~Cons~{A}~(h~:~A)~(t...] 0. secs (0.u,0.s) +Chars 6178 - 6247 [Definition~observe_stream~{A}~...] 0. secs (0.u,0.s) +Chars 6251 - 6395 [Variant~is_infF~{A~:~Type}~(F~...] 0. secs (0.u,0.s) +Chars 6399 - 6433 [Hint~Constructors~is_infF:~itree.] 0. secs (0.u,0.s) +Chars 6437 - 6554 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) +Chars 6558 - 6616 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) +Chars 6620 - 6626 [Proof.] 0. secs (0.u,0.s) +Chars 6632 - 6640 [intros~!.] 0. secs (0.u,0.s) +Chars 6646 - 6653 [(inv~H0).] 0.001 secs (0.001u,0.s) +Chars 6654 - 6658 [(red).] 0. secs (0.u,0.s) +Chars 6659 - 6673 [(rewrite~<-~H1).] 0. secs (0.u,0.s) +Chars 6674 - 6687 [econstructor.] 0. secs (0.u,0.s) +Chars 6692 - 6704 [now~apply~H.] 0. secs (0.u,0.s) +Chars 6709 - 6713 [Qed.] 0. secs (0.u,0.s) +Chars 6718 - 6820 [Definition~is_inf_mon~A~:~mon~...] 0. secs (0.u,0.s) +Chars 6825 - 6877 [Definition~is_inf~{A~:~Type}~:...] 0. secs (0.u,0.s) +Chars 6881 - 7054 [CoFixpoint~app'~{A~:~Type}~(os...] 0. secs (0.u,0.s) +Chars 7058 - 7155 [Definition~app~{A~:~Type}~(sl~...] 0. secs (0.u,0.s) +Chars 7159 - 7384 [Variant~bisimF~{A~:~Type}~(F~:...] 0. secs (0.u,0.s) +Chars 7388 - 7421 [Hint~Constructors~bisimF:~itree.] 0. secs (0.u,0.s) +Chars 7425 - 7589 [Definition~bisim_~{A~:~Type}~(...] 0. secs (0.u,0.s) +Chars 7593 - 7649 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) +Chars 7653 - 7659 [Proof.] 0. secs (0.u,0.s) +Chars 7665 - 7673 [intros~!.] 0. secs (0.u,0.s) +Chars 7674 - 7678 [(red).] 0. secs (0.u,0.s) +Chars 7679 - 7686 [(inv~H0).] 0.006 secs (0.006u,0.s) +Chars 7692 - 7693 [-] 0. secs (0.u,0.s) +Chars 7694 - 7706 [constructor.] 0. secs (0.u,0.s) +Chars 7712 - 7713 [-] 0. secs (0.u,0.s) +Chars 7714 - 7726 [constructor.] 0. secs (0.u,0.s) +Chars 7727 - 7739 [now~apply~H.] 0. secs (0.u,0.s) +Chars 7743 - 7747 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7754 - 7868 [Definition~bisim_mon~{A}~:~mon...] 0. secs (0.u,0.s) +Chars 7873 - 7923 [Definition~bisim~{A~:~Type}~:=...] 0. secs (0.u,0.s) +Chars 7927 - 7977 [Instance~bisim_equiv~~{A}:~(Eq...] 0. secs (0.u,0.s) +Chars 7980 - 7986 [Proof.] 0. secs (0.u,0.s) +Chars 7991 - 8008 [(constructor;~red).] 0. secs (0.u,0.s) +Chars 8013 - 8014 [-] 0. secs (0.u,0.s) +Chars 8015 - 8033 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8034 - 8041 [(intros).] 0. secs (0.u,0.s) +Chars 8042 - 8051 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8052 - 8097 [(destruct~(observe_stream~x);~...] 0.003 secs (0.003u,0.s) +Chars 8102 - 8103 [-] 0. secs (0.u,0.s) +Chars 8104 - 8122 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8123 - 8130 [(intros).] 0. secs (0.u,0.s) +Chars 8137 - 8146 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8153 - 8187 [(red~in~H;~sinv~H;~auto~with~i...] 0.011 secs (0.011u,0.s) +Chars 8192 - 8193 [-] 0. secs (0.u,0.s) +Chars 8194 - 8212 [(unfold~bisim~at~3).] 0. secs (0.u,0.s) +Chars 8213 - 8231 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8232 - 8239 [(intros).] 0. secs (0.u,0.s) +Chars 8240 - 8249 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8256 - 8310 [(red~in~H;~sinv~H;~red~in~H0;~...] 0.044 secs (0.043u,0.s) +Chars 8317 - 8318 [+] 0. secs (0.u,0.s) +Chars 8319 - 8338 [(rewrite~<-~H~in~H3).] 0. secs (0.u,0.s) +Chars 8339 - 8352 [discriminate.] 0. secs (0.u,0.s) +Chars 8359 - 8360 [+] 0. secs (0.u,0.s) +Chars 8361 - 8381 [(rewrite~<-~H2~in~H4).] 0. secs (0.u,0.s) +Chars 8382 - 8395 [discriminate.] 0. secs (0.u,0.s) +Chars 8402 - 8403 [+] 0. secs (0.u,0.s) +Chars 8404 - 8423 [(rewrite~<-~H2~in~H).] 0. secs (0.u,0.s) +Chars 8424 - 8451 [(injection~H;~intros;~subst).] 0. secs (0.u,0.s) +Chars 8460 - 8472 [constructor.] 0. secs (0.u,0.s) +Chars 8473 - 8479 [eauto.] 0. secs (0.u,0.s) +Chars 8483 - 8487 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8592 - 8666 [Instance~proper_bisim_app~~{A}...] 0. secs (0.u,0.s) +Chars 8669 - 8675 [Proof.] 0. secs (0.u,0.s) +Chars 8681 - 8699 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8700 - 8727 [(intros~s1~s2~H12~s3~s4~H34).] 0. secs (0.u,0.s) +Chars 8733 - 8742 [(cbn;~red).] 0. secs (0.u,0.s) +Chars 8743 - 8754 [(unfold~app).] 0. secs (0.u,0.s) +Chars 8755 - 8764 [(sinv~H12).] 0.011 secs (0.011u,0.s) +Chars 8769 - 8770 [-] 0. secs (0.u,0.s) +Chars 8771 - 8777 [(simpl).] 0. secs (0.u,0.s) +Chars 8778 - 8790 [(destruct~s3).] 0. secs (0.u,0.s) +Chars 8791 - 8803 [(destruct~s4).] 0. secs (0.u,0.s) +Chars 8804 - 8849 [(sinv~H34;~simpl~in~*;~subst;~...] 0.015 secs (0.015u,0.s) +Chars 8856 - 8868 [constructor.] 0. secs (0.u,0.s) +Chars 8869 - 8883 [now~do~2~step.] 0.001 secs (0.001u,0.s) +Chars 8889 - 8890 [-] 0. secs (0.u,0.s) +Chars 8891 - 8895 [(cbn).] 0. secs (0.u,0.s) +Chars 8896 - 8908 [constructor.] 0. secs (0.u,0.s) +Chars 8909 - 8925 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 8928 - 8932 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8936 - 8987 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 8993 - 9070 [Instance~proper_bisim_inf_imp~...] 0. secs (0.u,0.s) +Chars 9073 - 9079 [Proof.] 0. secs (0.u,0.s) +Chars 9084 - 9102 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9107 - 9126 [(intros~s1~s2~H12~H).] 0. secs (0.u,0.s) +Chars 9127 - 9132 [icbn.] 0. secs (0.u,0.s) +Chars 9133 - 9143 [step~in~H.] 0. secs (0.u,0.s) +Chars 9149 - 9161 [step~in~H12.] 0. secs (0.u,0.s) +Chars 9162 - 9170 [(inv~H12).] 0.005 secs (0.005u,0.s) +Chars 9176 - 9177 [-] 0. secs (0.u,0.s) +Chars 9178 - 9197 [(rewrite~<-~H1~in~H).] 0. secs (0.u,0.s) +Chars 9198 - 9204 [(inv~H).] 0. secs (0.u,0.s) +Chars 9209 - 9210 [-] 0. secs (0.u,0.s) +Chars 9211 - 9230 [(inversion~H;~subst).] 0. secs (0.u,0.s) +Chars 9238 - 9250 [constructor.] 0. secs (0.u,0.s) +Chars 9251 - 9269 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 9276 - 9296 [(rewrite~<-~H3~in~H0).] 0. secs (0.u,0.s) +Chars 9297 - 9304 [(inv~H0).] 0. secs (0.u,0.s) +Chars 9307 - 9311 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9315 - 9382 [Instance~proper_bisim_inf~~{A}...] 0. secs (0.u,0.s) +Chars 9385 - 9391 [Proof.] 0. secs (0.u,0.s) +Chars 9396 - 9440 [(split;~try~apply~proper_bisim...] 0. secs (0.u,0.s) +Chars 9445 - 9463 [(apply~bisim_equiv).] 0. secs (0.u,0.s) +Chars 9464 - 9469 [auto.] 0. secs (0.u,0.s) +Chars 9472 - 9476 [Qed.] 0. secs (0.u,0.s) +Chars 9480 - 9568 [Lemma~app_inf~:~~~forall~(A~:~...] 0. secs (0.u,0.s) +Chars 9571 - 9577 [Proof.] 0. secs (0.u,0.s) +Chars 9582 - 9591 [(intros~A).] 0. secs (0.u,0.s) +Chars 9592 - 9610 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9611 - 9629 [(intros~s1~s2~Hinf).] 0. secs (0.u,0.s) +Chars 9630 - 9635 [icbn.] 0. secs (0.u,0.s) +Chars 9636 - 9647 [(unfold~app).] 0. secs (0.u,0.s) +Chars 9652 - 9662 [(sinv~Hinf).] 0.005 secs (0.005u,0.s) +Chars 9667 - 9671 [(cbn).] 0. secs (0.u,0.s) +Chars 9672 - 9684 [constructor.] 0. secs (0.u,0.s) +Chars 9685 - 9701 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 9704 - 9708 [Qed.] 0.002 secs (0.001u,0.s) +Chars 9712 - 9939 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) +Chars 9943 - 9984 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) +Chars 9988 - 10137 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) +Chars 10141 - 10235 [Lemma~forall_stream_mono~(A~:~...] 0. secs (0.u,0.s) +Chars 10238 - 10244 [Proof.] 0. secs (0.u,0.s) +Chars 10249 - 10260 [(repeat~red).] 0. secs (0.u,0.s) +Chars 10261 - 10268 [(intros).] 0. secs (0.u,0.s) +Chars 10269 - 10279 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 10280 - 10309 [(destruct~H0;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 10314 - 10332 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 10333 - 10345 [now~apply~H.] 0. secs (0.u,0.s) +Chars 10349 - 10353 [Qed.] 0. secs (0.u,0.s) +Chars 10357 - 10428 [Definition~forall_stream_mon~A...] 0. secs (0.u,0.s) +Chars 10433 - 10516 [Definition~forall_stream~{A~:~...] 0. secs (0.u,0.s) +Chars 10520 - 10803 [Inductive~inf_manyF~{A~:~Type}...] 0.001 secs (0.001u,0.s) +Chars 10807 - 10843 [Hint~Constructors~inf_manyF:~i...] 0. secs (0.u,0.s) +Chars 10847 - 10986 [Definition~inf_many_~{A~:~Type...] 0. secs (0.u,0.s) +Chars 10990 - 11074 [Lemma~inf_many_mono~(A~:~Type)...] 0. secs (0.u,0.s) +Chars 11077 - 11083 [Proof.] 0. secs (0.u,0.s) +Chars 11088 - 11099 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11100 - 11107 [(intros).] 0. secs (0.u,0.s) +Chars 11108 - 11118 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 11119 - 11149 [(induction~H0;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 11154 - 11177 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) +Chars 11178 - 11190 [now~apply~H.] 0. secs (0.u,0.s) +Chars 11194 - 11198 [Qed.] 0. secs (0.u,0.s) +Chars 11202 - 11263 [Definition~inf_many_mon~A~P~:=...] 0. secs (0.u,0.s) +Chars 11268 - 11341 [Definition~inf_many~{A~:~Type}...] 0. secs (0.u,0.s) +Chars 11345 - 11447 [Lemma~inf_many_inf~:~~~forall~...] 0. secs (0.u,0.s) +Chars 11450 - 11456 [Proof.] 0. secs (0.u,0.s) +Chars 11461 - 11472 [(intros~A~P).] 0. secs (0.u,0.s) +Chars 11473 - 11491 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 11492 - 11505 [(intros~s~Him).] 0. secs (0.u,0.s) +Chars 11510 - 11522 [step~in~Him.] 0. secs (0.u,0.s) +Chars 11523 - 11528 [icbn.] 0. secs (0.u,0.s) +Chars 11534 - 11565 [(induction~Him;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 11570 - 11582 [constructor.] 0. secs (0.u,0.s) +Chars 11583 - 11593 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 11594 - 11603 [now~step.] 0. secs (0.u,0.s) +Chars 11607 - 11611 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11615 - 11740 [Lemma~inf_and_forall~:~~~foral...] 0. secs (0.u,0.s) +Chars 11743 - 11749 [Proof.] 0. secs (0.u,0.s) +Chars 11754 - 11765 [(intros~A~P).] 0. secs (0.u,0.s) +Chars 11766 - 11784 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 11785 - 11807 [(intros~s~Hinf~Hforall).] 0. secs (0.u,0.s) +Chars 11812 - 11817 [icbn.] 0. secs (0.u,0.s) +Chars 11818 - 11831 [step~in~Hinf.] 0. secs (0.u,0.s) +Chars 11832 - 11848 [step~in~Hforall.] 0. secs (0.u,0.s) +Chars 11853 - 11862 [(inv~Hinf).] 0.002 secs (0.002u,0.s) +Chars 11867 - 11879 [(inv~Hforall).] 0.003 secs (0.003u,0.s) +Chars 11884 - 11885 [-] 0. secs (0.u,0.s) +Chars 11886 - 11905 [(rewrite~<-~H~in~H2).] 0. secs (0.u,0.s) +Chars 11906 - 11919 [discriminate.] 0. secs (0.u,0.s) +Chars 11924 - 11925 [-] 0. secs (0.u,0.s) +Chars 11926 - 11945 [(rewrite~<-~H~in~H1).] 0. secs (0.u,0.s) +Chars 11946 - 11953 [(inv~H1).] 0.002 secs (0.002u,0.s) +Chars 11960 - 11983 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) +Chars 11986 - 11990 [Qed.] 0.003 secs (0.003u,0.s) +Chars 12101 - 12188 [Definition~rel_eventless~{E1}~...] 0. secs (0.u,0.s) +Chars 12191 - 12850 [Inductive~eqitEF~{E1~E2~:~Type...] 0.005 secs (0.004u,0.s) +Chars 12854 - 12887 [Hint~Constructors~eqitEF:~itree.] 0. secs (0.u,0.s) +Chars 12891 - 13125 [Definition~eqitE_~(E1~E2~:~Typ...] 0. secs (0.u,0.s) +Chars 13129 - 13212 [Lemma~eqitE_mono~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) +Chars 13217 - 13223 [Proof.] 0. secs (0.u,0.s) +Chars 13230 - 13241 [(repeat~red).] 0. secs (0.u,0.s) +Chars 13242 - 13249 [(intros).] 0. secs (0.u,0.s) +Chars 13250 - 13267 [rename~x~into~t1.] 0. secs (0.u,0.s) +Chars 13268 - 13285 [rename~y~into~t2.] 0. secs (0.u,0.s) +Chars 13292 - 13323 [(induction~H0;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 13330 - 13342 [constructor.] 0. secs (0.u,0.s) +Chars 13343 - 13355 [now~apply~H.] 0. secs (0.u,0.s) +Chars 13361 - 13365 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13369 - 13449 [Definition~eqitE_mon~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 13453 - 13524 [Definition~eqitE~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) +Chars 13528 - 13605 [Definition~equivE~{E1}~{E2}~{R...] 0. secs (0.u,0.s) +Chars 13609 - 13823 [Variant~eventlessF~{E~:~Type~-...] 0. secs (0.u,0.s) +Chars 13827 - 13864 [Hint~Constructors~eventlessF:~...] 0. secs (0.u,0.s) +Chars 13868 - 14005 [Definition~eventless_~{E~:~Typ...] 0. secs (0.u,0.s) +Chars 14009 - 14040 [Hint~Unfold~eventless_:~itree.] 0. secs (0.u,0.s) +Chars 14046 - 14116 [Lemma~eventless_mono~{E1}~{R}~...] 0. secs (0.u,0.s) +Chars 14119 - 14125 [Proof.] 0. secs (0.u,0.s) +Chars 14130 - 14141 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14142 - 14149 [(intros).] 0. secs (0.u,0.s) +Chars 14150 - 14160 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 14161 - 14191 [(inversion~H0;~auto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 14196 - 14208 [constructor.] 0. secs (0.u,0.s) +Chars 14209 - 14221 [now~apply~H.] 0. secs (0.u,0.s) +Chars 14226 - 14230 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14234 - 14302 [Definition~eventless_mon~{E1}~...] 0. secs (0.u,0.s) +Chars 14306 - 14409 [Definition~eventless~{E~:~Type...] 0. secs (0.u,0.s) +Chars 14413 - 14504 [Instance~proper_eventless_imp~...] 0. secs (0.u,0.s) +Chars 14507 - 14513 [Proof.] 0. secs (0.u,0.s) +Chars 14518 - 14529 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14530 - 14548 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 14553 - 14576 [(intros~t1~t2~Heutt~Hev).] 0. secs (0.u,0.s) +Chars 14581 - 14595 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 14596 - 14601 [icbn.] 0. secs (0.u,0.s) +Chars 14606 - 14627 [(pose~proof~Hev~as~Hev').] 0. secs (0.u,0.s) +Chars 14628 - 14640 [step~in~Hev.] 0. secs (0.u,0.s) +Chars 14645 - 14695 [(dependent~induction~Heutt;~su...] 0.024 secs (0.024u,0.s) +Chars 14700 - 14701 [-] 0. secs (0.u,0.s) +Chars 14702 - 14710 [simpobs.] 0.002 secs (0.001u,0.s) +Chars 14711 - 14727 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 14732 - 14733 [-] 0. secs (0.u,0.s) +Chars 14734 - 14742 [simpobs.] 0.002 secs (0.001u,0.s) +Chars 14743 - 14755 [constructor.] 0. secs (0.u,0.s) +Chars 14756 - 14774 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 14781 - 14789 [(inv~Hev).] 0. secs (0.u,0.s) +Chars 14795 - 14796 [-] 0. secs (0.u,0.s) +Chars 14797 - 14805 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 14806 - 14814 [(inv~Hev).] 0. secs (0.u,0.s) +Chars 14820 - 14821 [-] 0. secs (0.u,0.s) +Chars 14822 - 14830 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14831 - 14839 [(inv~Hev).] 0.009 secs (0.009u,0.s) +Chars 14846 - 14882 [(eapply~IHHeutt;~try~apply~H0;...] 0.001 secs (0.001u,0.s) +Chars 14889 - 14904 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 14910 - 14911 [-] 0. secs (0.u,0.s) +Chars 14912 - 14920 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14921 - 14933 [constructor.] 0. secs (0.u,0.s) +Chars 14934 - 14950 [unstep~in~Heutt.] 0. secs (0.u,0.s) +Chars 14951 - 14980 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 14983 - 14987 [Qed.] 0.021 secs (0.021u,0.s) +Chars 14991 - 15069 [Instance~proper_eventless~~{E1...] 0. secs (0.u,0.s) +Chars 15072 - 15078 [Proof.] 0. secs (0.u,0.s) +Chars 15083 - 15102 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 15103 - 15121 [(split;~intros~Hev).] 0. secs (0.u,0.s) +Chars 15126 - 15127 [-] 0. secs (0.u,0.s) +Chars 15128 - 15145 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 15146 - 15151 [auto.] 0. secs (0.u,0.s) +Chars 15156 - 15157 [-] 0. secs (0.u,0.s) +Chars 15158 - 15176 [symmetry~in~Heutt.] 0. secs (0.u,0.s) +Chars 15177 - 15194 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 15195 - 15200 [auto.] 0. secs (0.u,0.s) +Chars 15203 - 15207 [Qed.] 0. secs (0.u,0.s) +Chars 15211 - 15410 [Lemma~eutt_eventless~:~~~foral...] 0. secs (0.u,0.s) +Chars 15413 - 15419 [Proof.] 0. secs (0.u,0.s) +Chars 15424 - 15443 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 15444 - 15462 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 15463 - 15470 [(intros).] 0. secs (0.u,0.s) +Chars 15475 - 15486 [step~in~H0.] 0. secs (0.u,0.s) +Chars 15487 - 15492 [icbn.] 0. secs (0.u,0.s) +Chars 15493 - 15522 [(dependent~induction~H0;~auto).] 0.02 secs (0.019u,0.s) +Chars 15527 - 15528 [-] 0. secs (0.u,0.s) +Chars 15529 - 15537 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15538 - 15543 [eret.] 0. secs (0.u,0.s) +Chars 15549 - 15550 [-] 0. secs (0.u,0.s) +Chars 15551 - 15559 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15566 - 15578 [constructor.] 0. secs (0.u,0.s) +Chars 15587 - 15620 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 15621 - 15654 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 15661 - 15669 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15677 - 15696 [(assert~(t1~≈~m1)).] 0. secs (0.u,0.s) +Chars 15697 - 15698 [{] 0. secs (0.u,0.s) +Chars 15699 - 15711 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 15712 - 15729 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 15730 - 15742 [reflexivity.] 0. secs (0.u,0.s) +Chars 15743 - 15744 [}] 0. secs (0.u,0.s) +Chars 15751 - 15770 [(assert~(t2~≈~m2)).] 0. secs (0.u,0.s) +Chars 15771 - 15772 [{] 0. secs (0.u,0.s) +Chars 15773 - 15785 [(rewrite~Ht2).] 0. secs (0.u,0.s) +Chars 15786 - 15803 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 15804 - 15816 [reflexivity.] 0. secs (0.u,0.s) +Chars 15817 - 15818 [}] 0. secs (0.u,0.s) +Chars 15825 - 15841 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 15848 - 15866 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 15872 - 15873 [-] 0. secs (0.u,0.s) +Chars 15874 - 15882 [exfalso.] 0. secs (0.u,0.s) +Chars 15883 - 15902 [(step~in~H;~simpobs).] 0.002 secs (0.001u,0.s) +Chars 15903 - 15909 [(inv~H).] 0. secs (0.u,0.s) +Chars 15914 - 15915 [-] 0. secs (0.u,0.s) +Chars 15916 - 15924 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15925 - 15937 [constructor.] 0. secs (0.u,0.s) +Chars 15944 - 15977 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 15978 - 15986 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15994 - 16001 [(sinv~H).] 0.019 secs (0.018u,0.s) +Chars 16009 - 16010 [+] 0. secs (0.u,0.s) +Chars 16011 - 16025 [(simpobs;~easy).] 0.003 secs (0.003u,0.s) +Chars 16034 - 16035 [+] 0. secs (0.u,0.s) +Chars 16036 - 16058 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 16059 - 16079 [(rewrite~<-~tau_eutt).] 0.002 secs (0.001u,0.s) +Chars 16080 - 16085 [step.] 0. secs (0.u,0.s) +Chars 16093 - 16110 [(rewrite~x,~<-~H1).] 0. secs (0.u,0.s) +Chars 16111 - 16127 [now~constructor.] 0. secs (0.u,0.s) +Chars 16133 - 16134 [-] 0. secs (0.u,0.s) +Chars 16135 - 16143 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 16144 - 16156 [constructor.] 0. secs (0.u,0.s) +Chars 16157 - 16179 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 16182 - 16186 [Qed.] 0.017 secs (0.017u,0.s) +Chars 16190 - 16303 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) +Chars 16306 - 16312 [Proof.] 0. secs (0.u,0.s) +Chars 16317 - 16326 [(intros~R).] 0. secs (0.u,0.s) +Chars 16327 - 16345 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 16346 - 16353 [(intros).] 0. secs (0.u,0.s) +Chars 16360 - 16367 [(sinv~H).] 0.032 secs (0.032u,0.s) +Chars 16372 - 16373 [-] 0. secs (0.u,0.s) +Chars 16374 - 16405 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 16406 - 16414 [simpobs.] 0. secs (0.u,0.s) +Chars 16422 - 16439 [(rewrite~Ht~in~H0).] 0.001 secs (0.001u,0.s) +Chars 16440 - 16448 [(sinv~H0).] 0.001 secs (0.001u,0.s) +Chars 16453 - 16454 [-] 0. secs (0.u,0.s) +Chars 16455 - 16460 [icbn.] 0. secs (0.u,0.s) +Chars 16461 - 16469 [simpobs.] 0. secs (0.u,0.s) +Chars 16477 - 16487 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 16488 - 16516 [(step~in~H0;~simpobs;~inv~H0).] 0.013 secs (0.013u,0.s) +Chars 16524 - 16536 [constructor.] 0. secs (0.u,0.s) +Chars 16543 - 16559 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 16563 - 16567 [Qed.] 0.009 secs (0.008u,0.s) +Chars 16571 - 16689 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) +Chars 16692 - 16698 [Proof.] 0. secs (0.u,0.s) +Chars 16703 - 16716 [(intros~R~t~r).] 0. secs (0.u,0.s) +Chars 16721 - 16728 [(intros).] 0. secs (0.u,0.s) +Chars 16729 - 16748 [(induction~H0;~auto).] 0. secs (0.u,0.s) +Chars 16749 - 16765 [(rewrite~H0~in~H).] 0. secs (0.u,0.s) +Chars 16770 - 16777 [(sinv~H).] 0. secs (0.u,0.s) +Chars 16780 - 16784 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16788 - 16983 [Lemma~eqitE_imp_eutt~:~~~foral...] 0. secs (0.u,0.s) +Chars 16986 - 16992 [Proof.] 0. secs (0.u,0.s) +Chars 16997 - 17016 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 17017 - 17035 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 17040 - 17057 [(intros~t1~t2~Heq).] 0. secs (0.u,0.s) +Chars 17058 - 17063 [icbn.] 0. secs (0.u,0.s) +Chars 17064 - 17076 [step~in~Heq.] 0. secs (0.u,0.s) +Chars 17082 - 17113 [(induction~Heq;~auto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 17116 - 17120 [Qed.] 0.004 secs (0.004u,0.s) +Chars 17124 - 17374 [Lemma~eqitE_imp_eventlessl~:~~...] 0. secs (0.u,0.s) +Chars 17377 - 17383 [Proof.] 0. secs (0.u,0.s) +Chars 17388 - 17410 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 17411 - 17429 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 17434 - 17441 [(intros).] 0. secs (0.u,0.s) +Chars 17442 - 17452 [step~in~H.] 0. secs (0.u,0.s) +Chars 17458 - 17463 [icbn.] 0. secs (0.u,0.s) +Chars 17464 - 17494 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 17499 - 17511 [constructor.] 0. secs (0.u,0.s) +Chars 17512 - 17552 [(apply~(CIH~t0~(ITreeDefinitio...] 0. secs (0.u,0.s) +Chars 17553 - 17562 [now~step.] 0. secs (0.u,0.s) +Chars 17566 - 17570 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17574 - 17824 [Lemma~eqitE_imp_eventlessr~:~~...] 0. secs (0.u,0.s) +Chars 17827 - 17833 [Proof.] 0. secs (0.u,0.s) +Chars 17838 - 17860 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 17861 - 17879 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 17884 - 17891 [(intros).] 0. secs (0.u,0.s) +Chars 17892 - 17902 [step~in~H.] 0. secs (0.u,0.s) +Chars 17907 - 17912 [icbn.] 0. secs (0.u,0.s) +Chars 17913 - 17943 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 17948 - 17960 [constructor.] 0. secs (0.u,0.s) +Chars 17961 - 18001 [(apply~(CIH~(ITreeDefinition.g...] 0. secs (0.u,0.s) +Chars 18002 - 18011 [now~step.] 0. secs (0.u,0.s) +Chars 18015 - 18019 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18023 - 18120 [Lemma~eventless_spin~:~~~foral...] 0. secs (0.u,0.s) +Chars 18123 - 18129 [Proof.] 0. secs (0.u,0.s) +Chars 18134 - 18146 [(intros~E1~R).] 0. secs (0.u,0.s) +Chars 18147 - 18165 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 18166 - 18171 [icbn.] 0. secs (0.u,0.s) +Chars 18172 - 18176 [(cbn).] 0. secs (0.u,0.s) +Chars 18177 - 18189 [constructor.] 0. secs (0.u,0.s) +Chars 18194 - 18199 [auto.] 0. secs (0.u,0.s) +Chars 18202 - 18206 [Qed.] 0. secs (0.u,0.s) +Chars 18210 - 18441 [CoFixpoint~remove_events'~{E1~...] 0. secs (0.u,0.s) +Chars 18445 - 18544 [Definition~remove_events~{E1}~...] 0. secs (0.u,0.s) +Chars 18548 - 18744 [Lemma~remove_events_eventless_...] 0. secs (0.u,0.s) +Chars 18747 - 18753 [Proof.] 0. secs (0.u,0.s) +Chars 18758 - 18773 [(intros~E1~E2~A).] 0. secs (0.u,0.s) +Chars 18774 - 18792 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 18793 - 18800 [(intros).] 0. secs (0.u,0.s) +Chars 18805 - 18810 [icbn.] 0. secs (0.u,0.s) +Chars 18811 - 18818 [(sinv~H).] 0.006 secs (0.006u,0.s) +Chars 18823 - 18824 [-] 0. secs (0.u,0.s) +Chars 18825 - 18829 [(cbn).] 0. secs (0.u,0.s) +Chars 18830 - 18851 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 18852 - 18866 [(rewrite~<-~H1).] 0. secs (0.u,0.s) +Chars 18867 - 18871 [(cbn).] 0. secs (0.u,0.s) +Chars 18872 - 18888 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 18893 - 18894 [-] 0. secs (0.u,0.s) +Chars 18895 - 18916 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 18917 - 18931 [(rewrite~<-~H0).] 0. secs (0.u,0.s) +Chars 18932 - 18936 [(cbn).] 0. secs (0.u,0.s) +Chars 18937 - 18949 [constructor.] 0. secs (0.u,0.s) +Chars 18950 - 18960 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 18967 - 18972 [auto.] 0. secs (0.u,0.s) +Chars 18975 - 18979 [Qed.] 0.003 secs (0.003u,0.s) +Chars 18983 - 19157 [Lemma~remove_events_eventless~...] 0. secs (0.u,0.s) +Chars 19160 - 19166 [Proof.] 0. secs (0.u,0.s) +Chars 19171 - 19186 [(intros~E1~E2~A).] 0. secs (0.u,0.s) +Chars 19187 - 19205 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19206 - 19213 [(intros).] 0. secs (0.u,0.s) +Chars 19218 - 19223 [icbn.] 0. secs (0.u,0.s) +Chars 19224 - 19245 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 19246 - 19277 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) +Chars 19282 - 19283 [-] 0. secs (0.u,0.s) +Chars 19284 - 19288 [(cbn).] 0. secs (0.u,0.s) +Chars 19289 - 19301 [constructor.] 0. secs (0.u,0.s) +Chars 19306 - 19307 [-] 0. secs (0.u,0.s) +Chars 19308 - 19312 [(cbn).] 0. secs (0.u,0.s) +Chars 19313 - 19325 [constructor.] 0. secs (0.u,0.s) +Chars 19326 - 19336 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 19341 - 19342 [-] 0. secs (0.u,0.s) +Chars 19343 - 19347 [(cbn).] 0. secs (0.u,0.s) +Chars 19348 - 19360 [constructor.] 0. secs (0.u,0.s) +Chars 19361 - 19371 [(do~2~step).] 0. secs (0.u,0.s) +Chars 19372 - 19393 [(apply~eventless_spin).] 0. secs (0.u,0.s) +Chars 19397 - 19401 [Qed.] 0.002 secs (0.001u,0.s) +Chars 19405 - 19480 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) +Chars 19483 - 19489 [Proof.] 0. secs (0.u,0.s) +Chars 19494 - 19503 [(intros~A).] 0. secs (0.u,0.s) +Chars 19504 - 19522 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19523 - 19530 [(intros).] 0. secs (0.u,0.s) +Chars 19535 - 19540 [icbn.] 0. secs (0.u,0.s) +Chars 19541 - 19579 [(destruct~(observe~d);~auto~wi...] 0. secs (0.u,0.s) +Chars 19584 - 19595 [(destruct~e).] 0. secs (0.u,0.s) +Chars 19598 - 19602 [Qed.] 0.001 secs (0.u,0.s) +Chars 19606 - 19805 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 19808 - 19814 [Proof.] 0. secs (0.u,0.s) +Chars 19819 - 19841 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 19847 - 19865 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 19866 - 19873 [(intros).] 0. secs (0.u,0.s) +Chars 19874 - 19879 [icbn.] 0. secs (0.u,0.s) +Chars 19885 - 19892 [(intros).] 0. secs (0.u,0.s) +Chars 19897 - 19907 [step~in~H.] 0. secs (0.u,0.s) +Chars 19913 - 19939 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 19945 - 19971 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 19977 - 20004 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 20005 - 20014 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 20020 - 20079 [(induction~H;~intros~t1'~t2'~H...] 0.023 secs (0.022u,0.s) +Chars 20084 - 20085 [-] 0. secs (0.u,0.s) +Chars 20086 - 20109 [(inv~Heqot1;~inv~Heqot2).] 0.006 secs (0.006u,0.s) +Chars 20110 - 20119 [now~step.] 0.001 secs (0.001u,0.s) +Chars 20126 - 20127 [-] 0. secs (0.u,0.s) +Chars 20128 - 20155 [(inv~H;~inv~Heqot1;~simpobs).] 0.044 secs (0.043u,0.s) +Chars 20163 - 20164 [+] 0. secs (0.u,0.s) +Chars 20165 - 20177 [constructor.] 0. secs (0.u,0.s) +Chars 20178 - 20197 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20205 - 20206 [+] 0. secs (0.u,0.s) +Chars 20207 - 20219 [constructor.] 0. secs (0.u,0.s) +Chars 20220 - 20239 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20246 - 20247 [+] 0. secs (0.u,0.s) +Chars 20248 - 20262 [now~do~2~step.] 0.001 secs (0.001u,0.s) +Chars 20268 - 20269 [-] 0. secs (0.u,0.s) +Chars 20270 - 20297 [(inv~H;~inv~Heqot2;~simpobs).] 0.043 secs (0.042u,0.s) +Chars 20305 - 20306 [+] 0. secs (0.u,0.s) +Chars 20307 - 20319 [constructor.] 0. secs (0.u,0.s) +Chars 20320 - 20339 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20347 - 20348 [+] 0. secs (0.u,0.s) +Chars 20349 - 20363 [now~do~2~step.] 0.001 secs (0.001u,0.s) +Chars 20371 - 20372 [+] 0. secs (0.u,0.s) +Chars 20373 - 20385 [constructor.] 0. secs (0.u,0.s) +Chars 20386 - 20405 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) +Chars 20409 - 20413 [Qed.] 0.013 secs (0.013u,0.s) +Chars 20419 - 20674 [Lemma~inv_remove_events~:~~~fo...] 0. secs (0.u,0.s) +Chars 20677 - 20683 [Proof.] 0. secs (0.u,0.s) +Chars 20688 - 20703 [(intros~E1~E2~R).] 0. secs (0.u,0.s) +Chars 20704 - 20722 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 20727 - 20756 [(intros~t1~t2~Hev1~Hev2~Heutt).] 0. secs (0.u,0.s) +Chars 20757 - 20762 [icbn.] 0. secs (0.u,0.s) +Chars 20767 - 20781 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 20782 - 20815 [(dependent~induction~Heutt;~su...] 0.037 secs (0.036u,0.s) +Chars 20820 - 20821 [-] 0. secs (0.u,0.s) +Chars 20822 - 20852 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) +Chars 20859 - 20922 [(destruct~(observe~t1);~destru...] 0.004 secs (0.004u,0.s) +Chars 20929 - 20941 [constructor.] 0. secs (0.u,0.s) +Chars 20942 - 20951 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 20952 - 20966 [(inv~x0;~inv~x).] 0.001 secs (0.001u,0.s) +Chars 20972 - 20973 [-] 0. secs (0.u,0.s) +Chars 20974 - 21004 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) +Chars 21011 - 21096 [(destruct~(observe~t1)~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 21103 - 21104 [+] 0. secs (0.u,0.s) +Chars 21105 - 21114 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 21115 - 21127 [constructor.] 0. secs (0.u,0.s) +Chars 21136 - 21143 [(inv~x0).] 0.003 secs (0.003u,0.s) +Chars 21144 - 21150 [(inv~x).] 0.003 secs (0.003u,0.s) +Chars 21151 - 21158 [(intros).] 0. secs (0.u,0.s) +Chars 21169 - 21185 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 21194 - 21195 [*] 0. secs (0.u,0.s) +Chars 21196 - 21229 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 21230 - 21250 [(rewrite~Heq1~in~Ht1).] 0. secs (0.u,0.s) +Chars 21261 - 21279 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) +Chars 21290 - 21291 [{] 0. secs (0.u,0.s) +Chars 21292 - 21304 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) +Chars 21305 - 21322 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 21323 - 21335 [reflexivity.] 0. secs (0.u,0.s) +Chars 21336 - 21337 [}] 0. secs (0.u,0.s) +Chars 21348 - 21358 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 21359 - 21364 [auto.] 0. secs (0.u,0.s) +Chars 21373 - 21374 [*] 0. secs (0.u,0.s) +Chars 21375 - 21408 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 21409 - 21429 [(rewrite~Heq2~in~Ht2).] 0. secs (0.u,0.s) +Chars 21440 - 21459 [(assert~(t0~≈~t2)).] 0. secs (0.u,0.s) +Chars 21470 - 21471 [{] 0. secs (0.u,0.s) +Chars 21472 - 21484 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) +Chars 21485 - 21502 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 21503 - 21515 [reflexivity.] 0. secs (0.u,0.s) +Chars 21516 - 21517 [}] 0. secs (0.u,0.s) +Chars 21528 - 21538 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 21539 - 21544 [auto.] 0. secs (0.u,0.s) +Chars 21551 - 21552 [+] 0. secs (0.u,0.s) +Chars 21553 - 21563 [(sinv~Hev2).] 0.016 secs (0.015u,0.s) +Chars 21572 - 21573 [*] 0. secs (0.u,0.s) +Chars 21574 - 21593 [(rewrite~Heq2~in~H0).] 0. secs (0.u,0.s) +Chars 21594 - 21607 [discriminate.] 0. secs (0.u,0.s) +Chars 21616 - 21617 [*] 0. secs (0.u,0.s) +Chars 21618 - 21636 [(rewrite~Heq2~in~H).] 0. secs (0.u,0.s) +Chars 21637 - 21650 [discriminate.] 0. secs (0.u,0.s) +Chars 21657 - 21658 [+] 0. secs (0.u,0.s) +Chars 21659 - 21669 [(sinv~Hev1).] 0.014 secs (0.013u,0.s) +Chars 21678 - 21679 [*] 0. secs (0.u,0.s) +Chars 21680 - 21699 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) +Chars 21700 - 21713 [discriminate.] 0. secs (0.u,0.s) +Chars 21722 - 21723 [*] 0. secs (0.u,0.s) +Chars 21724 - 21742 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) +Chars 21743 - 21756 [discriminate.] 0. secs (0.u,0.s) +Chars 21763 - 21764 [+] 0. secs (0.u,0.s) +Chars 21765 - 21775 [(sinv~Hev1).] 0.013 secs (0.013u,0.s) +Chars 21784 - 21785 [*] 0. secs (0.u,0.s) +Chars 21786 - 21805 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) +Chars 21806 - 21819 [discriminate.] 0. secs (0.u,0.s) +Chars 21828 - 21829 [*] 0. secs (0.u,0.s) +Chars 21830 - 21848 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) +Chars 21849 - 21862 [discriminate.] 0. secs (0.u,0.s) +Chars 21867 - 21868 [-] 0. secs (0.u,0.s) +Chars 21869 - 21895 [(unfold~remove_events~in~*).] 0. secs (0.u,0.s) +Chars 21896 - 21943 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) +Chars 21948 - 21949 [-] 0. secs (0.u,0.s) +Chars 21950 - 21976 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) +Chars 21977 - 22037 [(destruct~(observe~t1)~eqn:Heq...] 0.002 secs (0.002u,0.s) +Chars 22044 - 22045 [+] 0. secs (0.u,0.s) +Chars 22046 - 22063 [injection~x~as~x.] 0. secs (0.u,0.s) +Chars 22064 - 22076 [constructor.] 0. secs (0.u,0.s) +Chars 22085 - 22105 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 22114 - 22115 [*] 0. secs (0.u,0.s) +Chars 22116 - 22149 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 22150 - 22169 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) +Chars 22180 - 22198 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) +Chars 22209 - 22210 [{] 0. secs (0.u,0.s) +Chars 22211 - 22223 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) +Chars 22224 - 22241 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 22242 - 22254 [reflexivity.] 0. secs (0.u,0.s) +Chars 22255 - 22256 [}] 0. secs (0.u,0.s) +Chars 22268 - 22279 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 22280 - 22285 [auto.] 0. secs (0.u,0.s) +Chars 22294 - 22295 [*] 0. secs (0.u,0.s) +Chars 22296 - 22317 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 22318 - 22328 [(rewrite~x).] 0. secs (0.u,0.s) +Chars 22329 - 22334 [auto.] 0. secs (0.u,0.s) +Chars 22341 - 22342 [+] 0. secs (0.u,0.s) +Chars 22343 - 22351 [exfalso.] 0. secs (0.u,0.s) +Chars 22352 - 22385 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) +Chars 22386 - 22405 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) +Chars 22414 - 22434 [(rewrite~Ht1~in~Hev1).] 0.001 secs (0.001u,0.s) +Chars 22435 - 22445 [(sinv~Hev1).] 0. secs (0.u,0.s) +Chars 22450 - 22451 [-] 0. secs (0.u,0.s) +Chars 22452 - 22478 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) +Chars 22479 - 22539 [(destruct~(observe~t2)~eqn:Heq...] 0.002 secs (0.002u,0.s) +Chars 22546 - 22547 [+] 0. secs (0.u,0.s) +Chars 22548 - 22565 [injection~x~as~x.] 0. secs (0.u,0.s) +Chars 22566 - 22578 [constructor.] 0. secs (0.u,0.s) +Chars 22587 - 22607 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 22616 - 22617 [*] 0. secs (0.u,0.s) +Chars 22618 - 22651 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 22652 - 22671 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) +Chars 22682 - 22700 [(assert~(t~≈~t2)).] 0. secs (0.u,0.s) +Chars 22711 - 22712 [{] 0. secs (0.u,0.s) +Chars 22713 - 22725 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) +Chars 22726 - 22743 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 22744 - 22756 [reflexivity.] 0. secs (0.u,0.s) +Chars 22757 - 22758 [}] 0. secs (0.u,0.s) +Chars 22769 - 22779 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 22780 - 22785 [auto.] 0. secs (0.u,0.s) +Chars 22794 - 22795 [*] 0. secs (0.u,0.s) +Chars 22796 - 22817 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 22818 - 22828 [(rewrite~x).] 0. secs (0.u,0.s) +Chars 22829 - 22834 [auto.] 0. secs (0.u,0.s) +Chars 22841 - 22842 [+] 0. secs (0.u,0.s) +Chars 22843 - 22851 [exfalso.] 0. secs (0.u,0.s) +Chars 22852 - 22885 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) +Chars 22886 - 22905 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) +Chars 22914 - 22934 [(rewrite~Ht2~in~Hev2).] 0.001 secs (0.001u,0.s) +Chars 22935 - 22945 [(sinv~Hev2).] 0. secs (0.u,0.s) +Chars 22948 - 22952 [Qed.] 0.045 secs (0.045u,0.s) +Chars 22956 - 23265 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) +Chars 23268 - 23274 [Proof.] 0. secs (0.u,0.s) +Chars 23279 - 23307 [(intros~E1~E2~E3~E4~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 23308 - 23326 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 23327 - 23334 [(intros).] 0. secs (0.u,0.s) +Chars 23339 - 23349 [step~in~H.] 0. secs (0.u,0.s) +Chars 23350 - 23355 [icbn.] 0. secs (0.u,0.s) +Chars 23356 - 23377 [(unfold~remove_events).] 0. secs (0.u,0.s) +Chars 23382 - 23416 [(induction~H;~cbn;~auto~with~i...] 0.003 secs (0.003u,0.s) +Chars 23421 - 23433 [constructor.] 0. secs (0.u,0.s) +Chars 23434 - 23450 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 23453 - 23457 [Qed.] 0.006 secs (0.006u,0.s) +Chars 23461 - 23660 [Lemma~eqitE_trans~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 23663 - 23669 [Proof.] 0. secs (0.u,0.s) +Chars 23674 - 23711 [(intros~E1~E2~E3~R~t1~t2~t3~Ht...] 0. secs (0.u,0.s) +Chars 23716 - 23744 [(assert~(Ht1~:~eventless~t1)).] 0. secs (0.u,0.s) +Chars 23749 - 23750 [{] 0. secs (0.u,0.s) +Chars 23751 - 23786 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) +Chars 23787 - 23788 [}] 0. secs (0.u,0.s) +Chars 23793 - 23821 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) +Chars 23826 - 23827 [{] 0. secs (0.u,0.s) +Chars 23828 - 23863 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) +Chars 23864 - 23865 [}] 0. secs (0.u,0.s) +Chars 23870 - 23898 [(assert~(Ht3~:~eventless~t3)).] 0. secs (0.u,0.s) +Chars 23903 - 23904 [{] 0. secs (0.u,0.s) +Chars 23905 - 23940 [(eapply~eqitE_imp_eventlessr;~...] 0. secs (0.u,0.s) +Chars 23941 - 23942 [}] 0. secs (0.u,0.s) +Chars 23947 - 23977 [(apply~inv_remove_events;~auto).] 0. secs (0.u,0.s) +Chars 23982 - 24038 [(assert~(remove_events~t1~≈~@r...] 0. secs (0.u,0.s) +Chars 24043 - 24044 [{] 0. secs (0.u,0.s) +Chars 24051 - 24072 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) +Chars 24073 - 24099 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) +Chars 24100 - 24105 [auto.] 0. secs (0.u,0.s) +Chars 24110 - 24111 [}] 0. secs (0.u,0.s) +Chars 24116 - 24172 [(assert~(remove_events~t2~≈~@r...] 0. secs (0.u,0.s) +Chars 24177 - 24178 [{] 0. secs (0.u,0.s) +Chars 24185 - 24206 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) +Chars 24207 - 24233 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) +Chars 24234 - 24239 [auto.] 0. secs (0.u,0.s) +Chars 24244 - 24245 [}] 0. secs (0.u,0.s) +Chars 24250 - 24260 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 24261 - 24266 [auto.] 0. secs (0.u,0.s) +Chars 24269 - 24273 [Qed.] 0.001 secs (0.001u,0.s) +Chars 24277 - 24437 [Lemma~equivE_sym~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 24440 - 24446 [Proof.] 0. secs (0.u,0.s) +Chars 24451 - 24466 [(intros~E1~E2~R).] 0. secs (0.u,0.s) +Chars 24467 - 24485 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 24486 - 24493 [(intros).] 0. secs (0.u,0.s) +Chars 24498 - 24508 [step~in~H.] 0. secs (0.u,0.s) +Chars 24509 - 24514 [icbn.] 0. secs (0.u,0.s) +Chars 24520 - 24550 [(induction~H;~eauto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 24553 - 24557 [Qed.] 0.002 secs (0.002u,0.s) +Chars 24562 - 24673 [Instance~proper_eutt_equivE_im...] 0. secs (0.u,0.s) +Chars 24676 - 24682 [Proof.] 0. secs (0.u,0.s) +Chars 24687 - 24716 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) +Chars 24717 - 24723 [intro.] 0. secs (0.u,0.s) +Chars 24728 - 24767 [(apply~eqitE_imp_eventlessl~in...] 0. secs (0.u,0.s) +Chars 24772 - 24811 [(apply~eqitE_imp_eventlessr~in...] 0. secs (0.u,0.s) +Chars 24816 - 24844 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) +Chars 24849 - 24850 [{] 0. secs (0.u,0.s) +Chars 24851 - 24867 [(rewrite~<-~Ht12).] 0.001 secs (0.001u,0.s) +Chars 24868 - 24873 [auto.] 0. secs (0.u,0.s) +Chars 24874 - 24875 [}] 0. secs (0.u,0.s) +Chars 24880 - 24908 [(assert~(Ht4~:~eventless~t4)).] 0. secs (0.u,0.s) +Chars 24913 - 24914 [{] 0. secs (0.u,0.s) +Chars 24915 - 24931 [(rewrite~<-~Ht34).] 0.001 secs (0.001u,0.s) +Chars 24932 - 24937 [auto.] 0. secs (0.u,0.s) +Chars 24938 - 24939 [}] 0. secs (0.u,0.s) +Chars 24944 - 24978 [(apply~eqitE_trans~with~(t2~:=...] 0. secs (0.u,0.s) +Chars 24983 - 24984 [-] 0. secs (0.u,0.s) +Chars 24985 - 25002 [symmetry~in~Ht12.] 0. secs (0.u,0.s) +Chars 25003 - 25007 [(red).] 0. secs (0.u,0.s) +Chars 25008 - 25035 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) +Chars 25040 - 25041 [-] 0. secs (0.u,0.s) +Chars 25042 - 25082 [(apply~eqitE_trans~with~(t2~:=...] 0.001 secs (0.001u,0.s) +Chars 25089 - 25116 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) +Chars 25119 - 25123 [Qed.] 0.001 secs (0.001u,0.s) +Chars 25127 - 25229 [Instance~proper_eutt_equivE~~{...] 0. secs (0.u,0.s) +Chars 25232 - 25238 [Proof.] 0. secs (0.u,0.s) +Chars 25243 - 25257 [(split;~intros).] 0. secs (0.u,0.s) +Chars 25262 - 25263 [-] 0. secs (0.u,0.s) +Chars 25264 - 25277 [(rewrite~<-~H).] 0.009 secs (0.009u,0.s) +Chars 25278 - 25292 [(rewrite~<-~H0).] 0.01 secs (0.01u,0.s) +Chars 25293 - 25298 [auto.] 0. secs (0.u,0.s) +Chars 25303 - 25304 [-] 0. secs (0.u,0.s) +Chars 25305 - 25319 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 25320 - 25335 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 25342 - 25355 [(rewrite~<-~H).] 0.008 secs (0.008u,0.s) +Chars 25356 - 25370 [(rewrite~<-~H0).] 0.012 secs (0.012u,0.s) +Chars 25371 - 25376 [auto.] 0. secs (0.u,0.s) +Chars 25379 - 25383 [Qed.] 0.002 secs (0.002u,0.s) +Chars 25490 - 25882 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) +Chars 25886 - 26316 [Variant~itree_includesF~{R~:~T...] 0.001 secs (0.001u,0.s) +Chars 26320 - 26362 [Hint~Constructors~itree_includ...] 0. secs (0.u,0.s) +Chars 26367 - 26441 [Lemma~itree_includes_mono~{R}~...] 0. secs (0.u,0.s) +Chars 26444 - 26450 [Proof.] 0. secs (0.u,0.s) +Chars 26456 - 26469 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 26470 - 26501 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 26507 - 26527 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 26528 - 26540 [now~apply~H.] 0. secs (0.u,0.s) +Chars 26544 - 26548 [Qed.] 0. secs (0.u,0.s) +Chars 26553 - 26625 [Definition~itree_includes_mon~...] 0. secs (0.u,0.s) +Chars 26632 - 26748 [Definition~itree_includes~{R~:...] 0. secs (0.u,0.s) +Chars 26750 - 26768 [End~ITreeDijkstra.] 0.005 secs (0.005u,0.s) +Chars 26770 - 26793 [Section~RetBindCounter.] 0. secs (0.u,0.s) +Chars 26797 - 26851 [Variant~Sound~:~Type~->~Prop~:...] 0. secs (0.u,0.s) +Chars 27258 - 27346 [#[program]~Definition~p~:~ITDI...] 0.001 secs (0.001u,0.s) +Chars 27349 - 27365 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 27370 - 27381 [(repeat~red).] 0. secs (0.u,0.s) +Chars 27382 - 27389 [(intros).] 0. secs (0.u,0.s) +Chars 27390 - 27413 [(split;~rewrite~H;~auto).] 0.013 secs (0.013u,0.s) +Chars 27416 - 27420 [Qed.] 0.001 secs (0.001u,0.s) +Chars 28046 - 28134 [#[program]~Definition~w~:~ITre...] 0.001 secs (0.001u,0.s) +Chars 28313 - 28421 [Lemma~bind_ret_failure~:~~~~~~...] 0. secs (0.u,0.s) +Chars 28424 - 28430 [Proof.] 0. secs (0.u,0.s) +Chars 28435 - 28439 [(cbn).] 0. secs (0.u,0.s) +Chars 28440 - 28455 [(intros~Hcontra).] 0. secs (0.u,0.s) +Chars 28460 - 28483 [specialize~(Hcontra~p).] 0. secs (0.u,0.s) +Chars 28488 - 28530 [(assert~(p~∋~Vis~Ring~(fun~_~=...] 0. secs (0.u,0.s) +Chars 28535 - 28536 [{] 0. secs (0.u,0.s) +Chars 28543 - 28552 [(unfold~p).] 0. secs (0.u,0.s) +Chars 28553 - 28557 [(cbn).] 0. secs (0.u,0.s) +Chars 28558 - 28570 [reflexivity.] 0. secs (0.u,0.s) +Chars 28575 - 28576 [}] 0. secs (0.u,0.s) +Chars 28581 - 28600 [(apply~Hcontra~in~H).] 0. secs (0.u,0.s) +Chars 28601 - 28615 [clear~Hcontra.] 0. secs (0.u,0.s) +Chars 28616 - 28628 [basic_solve.] 0. secs (0.u,0.s) +Chars 28633 - 28634 [-] 0. secs (0.u,0.s) +Chars 28635 - 28650 [(unfold~p~in~H0).] 0. secs (0.u,0.s) +Chars 28651 - 28661 [(cbn~in~H0).] 0. secs (0.u,0.s) +Chars 28662 - 28670 [(sinv~H0).] 0.002 secs (0.002u,0.s) +Chars 28675 - 28676 [-] 0. secs (0.u,0.s) +Chars 28677 - 28686 [clear~H0.] 0. secs (0.u,0.s) +Chars 28687 - 28725 [(sinv~H;~try~apply~all_infinit...] 0.001 secs (0.001u,0.s) +Chars 28726 - 28739 [ddestruction.] 0. secs (0.u,0.s) +Chars 28746 - 28765 [specialize~(H1~tt).] 0. secs (0.u,0.s) +Chars 28766 - 28808 [(step~in~H1;~try~apply~all_inf...] 0. secs (0.u,0.s) +Chars 28815 - 28822 [(inv~H1).] 0. secs (0.u,0.s) +Chars 28825 - 28829 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28831 - 28850 [End~RetBindCounter.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/IterRel.v.timing b/extra/Dijkstra/IterRel.v.timing index e34725ce..ed46bd9a 100644 --- a/extra/Dijkstra/IterRel.v.timing +++ b/extra/Dijkstra/IterRel.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.151 secs (0.132u,0.018s) +Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.159 secs (0.132u,0.018s) Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.083 secs (0.074u,0.008s) +Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.083 secs (0.073u,0.009s) Chars 128 - 149 [Create~HintDb~not_wf.] 0. secs (0.u,0.s) Chars 151 - 174 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 282 - 298 [Section~IterRel.] 0. secs (0.u,0.s) @@ -90,12 +90,12 @@ Chars 2625 - 2626 [-] 0. secs (0.u,0.s) Chars 2627 - 2637 [(apply~CIH).] 0. secs (0.u,0.s) Chars 2638 - 2655 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) Chars 2658 - 2662 [Qed.] 0. secs (0.u,0.s) -Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0.031 secs (0.028u,0.002s) +Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0. secs (0.u,0.s) Chars 2855 - 2861 [Proof.] 0. secs (0.u,0.s) Chars 2866 - 2879 [(intros~P~m~a).] 0. secs (0.u,0.s) Chars 2880 - 2909 [(remember~(m~a)~as~ma~eqn:Hma~).] 0. secs (0.u,0.s) Chars 2910 - 2923 [revert~a~Hma.] 0. secs (0.u,0.s) -Chars 2928 - 2980 [(induction~ma~using~lt_wf_ind;...] 0. secs (0.u,0.s) +Chars 2928 - 2980 [(induction~ma~using~lt_wf_ind;...] 0.031 secs (0.028u,0.002s) Chars 2985 - 3003 [(apply~step;~eauto).] 0. secs (0.u,0.s) Chars 3006 - 3010 [Qed.] 0. secs (0.u,0.s) Chars 3012 - 3024 [End~IterRel.] 0. secs (0.u,0.s) @@ -132,7 +132,7 @@ Chars 3925 - 3932 [(intros).] 0. secs (0.u,0.s) Chars 3935 - 4007 [(enough~(forall~n',~le~n'~n~->...] 0. secs (0.u,0.s) Chars 4010 - 4030 [(induction~n;~intros).] 0. secs (0.u,0.s) Chars 4033 - 4034 [-] 0. secs (0.u,0.s) -Chars 4035 - 4060 [(assert~(n'~=~0);~try~lia).] 0.001 secs (0.001u,0.s) +Chars 4035 - 4060 [(assert~(n'~=~0);~try~lia).] 0.002 secs (0.001u,0.s) Chars 4061 - 4067 [subst.] 0. secs (0.u,0.s) Chars 4068 - 4079 [(apply~base).] 0. secs (0.u,0.s) Chars 4080 - 4087 [(intros).] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/PureITreeBasics.v.timing b/extra/Dijkstra/PureITreeBasics.v.timing index ab19da76..e42306b9 100644 --- a/extra/Dijkstra/PureITreeBasics.v.timing +++ b/extra/Dijkstra/PureITreeBasics.v.timing @@ -1,6 +1,6 @@ Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.228 secs (0.199u,0.028s) +Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.22 secs (0.193u,0.026s) Chars 182 - 196 [Import~Monads.] 0. secs (0.u,0.s) Chars 197 - 218 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 219 - 251 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -12,7 +12,7 @@ Chars 567 - 628 [#[local]~Tactic~Notation~"sinv...] 0. secs (0.u,0.s) Chars 708 - 814 [Lemma~spin_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) Chars 815 - 821 [Proof.] 0. secs (0.u,0.s) Chars 824 - 831 [(intros).] 0. secs (0.u,0.s) -Chars 832 - 844 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 832 - 844 [coinduction.] 0.003 secs (0.002u,0.001s) Chars 845 - 851 [(simpl).] 0. secs (0.u,0.s) Chars 854 - 870 [now~constructor.] 0. secs (0.u,0.s) Chars 871 - 875 [Qed.] 0.004 secs (0.003u,0.001s) @@ -24,10 +24,10 @@ Chars 1633 - 1640 [(intros).] 0. secs (0.u,0.s) Chars 1641 - 1658 [(unfold~tau_invar).] 0. secs (0.u,0.s) Chars 1659 - 1735 [(split;~intros;~eapply~H;~try~...] 0.005 secs (0.003u,0.001s) Chars 1738 - 1742 [Qed.] 0. secs (0.u,0.s) -Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0.031 secs (0.028u,0.002s) +Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0. secs (0.u,0.s) Chars 1899 - 1905 [Proof.] 0. secs (0.u,0.s) Chars 1908 - 1917 [(intros~A).] 0. secs (0.u,0.s) -Chars 1918 - 1930 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1918 - 1930 [coinduction.] 0.032 secs (0.029u,0.002s) Chars 1931 - 1938 [(intros).] 0. secs (0.u,0.s) Chars 1939 - 1943 [(cbn).] 0. secs (0.u,0.s) Chars 1946 - 1978 [(destruct~(observe~t)~eqn:Heqt).] 0. secs (0.u,0.s) @@ -69,12 +69,12 @@ Chars 2596 - 2609 [(rewrite~Heta).] 0.001 secs (0.001u,0.s) Chars 2610 - 2622 [reflexivity.] 0. secs (0.u,0.s) Chars 2625 - 2626 [-] 0. secs (0.u,0.s) Chars 2627 - 2660 [(repeat~red;~simpobs;~construc...] 0. secs (0.u,0.s) -Chars 2661 - 2679 [(eapply~CIH;~eauto).] 0.042 secs (0.042u,0.s) +Chars 2661 - 2679 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) Chars 2680 - 2686 [intro.] 0. secs (0.u,0.s) Chars 2687 - 2695 [(apply~H).] 0. secs (0.u,0.s) Chars 2700 - 2722 [(destruct~H0~as~[a~Ha]).] 0. secs (0.u,0.s) Chars 2723 - 2732 [exists~a.] 0. secs (0.u,0.s) -Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0.039 secs (0.039u,0.s) Chars 2765 - 2784 [(rewrite~Heqt~in~Ht).] 0. secs (0.u,0.s) Chars 2789 - 2800 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) Chars 2801 - 2818 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) @@ -96,7 +96,7 @@ Chars 3328 - 3334 [Proof.] 0. secs (0.u,0.s) Chars 3337 - 3344 [(intros).] 0. secs (0.u,0.s) Chars 3345 - 3359 [intro~Hcontra.] 0. secs (0.u,0.s) Chars 3360 - 3373 [sinv~Hcontra.] 0. secs (0.u,0.s) -Chars 3375 - 3379 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3375 - 3379 [Qed.] 0. secs (0.u,0.s) Chars 3381 - 3451 [Lemma~not_ret_eutt_spin~:~fora...] 0. secs (0.u,0.s) Chars 3452 - 3458 [Proof.] 0. secs (0.u,0.s) Chars 3461 - 3468 [(intros).] 0. secs (0.u,0.s) @@ -111,17 +111,17 @@ Chars 3702 - 3709 [(intros).] 0. secs (0.u,0.s) Chars 3710 - 3733 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 3734 - 3753 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3754 - 3761 [(intros).] 0. secs (0.u,0.s) -Chars 3762 - 3769 [sinv~H.] 0.024 secs (0.024u,0.s) +Chars 3762 - 3769 [sinv~H.] 0.025 secs (0.024u,0.s) Chars 3773 - 3774 [-] 0. secs (0.u,0.s) Chars 3775 - 3780 [taul.] 0. secs (0.u,0.s) Chars 3821 - 3848 [(remember~(observe~(Ret~a))).] 0.001 secs (0.001u,0.s) -Chars 3853 - 3877 [(induction~REL;~try~easy).] 0.055 secs (0.054u,0.s) +Chars 3853 - 3877 [(induction~REL;~try~easy).] 0.081 secs (0.058u,0.s) Chars 3883 - 3884 [+] 0. secs (0.u,0.s) Chars 3885 - 3890 [eret.] 0. secs (0.u,0.s) Chars 3896 - 3897 [+] 0. secs (0.u,0.s) Chars 3898 - 3903 [taul.] 0. secs (0.u,0.s) Chars 3904 - 3920 [now~apply~IHREL.] 0. secs (0.u,0.s) -Chars 3923 - 3927 [Qed.] 0.012 secs (0.011u,0.s) +Chars 3923 - 3927 [Qed.] 0.012 secs (0.012u,0.s) Chars 3929 - 4012 [Lemma~unfold_spin~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4013 - 4019 [Proof.] 0. secs (0.u,0.s) Chars 4022 - 4029 [(intros).] 0. secs (0.u,0.s) @@ -134,8 +134,8 @@ Chars 4161 - 4167 [Proof.] 0. secs (0.u,0.s) Chars 4170 - 4177 [(intros).] 0. secs (0.u,0.s) Chars 4178 - 4201 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 4202 - 4226 [generalize~dependent~t'.] 0. secs (0.u,0.s) -Chars 4227 - 4260 [(induction~n;~intros;~simpl;~a...] 0.001 secs (0.001u,0.s) -Chars 4263 - 4310 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) +Chars 4227 - 4260 [(induction~n;~intros;~simpl;~a...] 0. secs (0.u,0.s) +Chars 4263 - 4310 [(destruct~(observe~t)~eqn:Heq;...] 0.001 secs (0.001u,0.s) Chars 4313 - 4314 [-] 0. secs (0.u,0.s) Chars 4315 - 4346 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) Chars 4347 - 4365 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) @@ -145,7 +145,7 @@ Chars 4389 - 4390 [-] 0. secs (0.u,0.s) Chars 4391 - 4401 [(apply~IHn).] 0. secs (0.u,0.s) Chars 4402 - 4433 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) Chars 4434 - 4452 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) -Chars 4453 - 4469 [(rewrite~Ht~in~H).] 0.018 secs (0.018u,0.s) -Chars 4474 - 4496 [(rewrite~tau_eutt~in~H).] 0.018 secs (0.018u,0.s) +Chars 4453 - 4469 [(rewrite~Ht~in~H).] 0.015 secs (0.015u,0.s) +Chars 4474 - 4496 [(rewrite~tau_eutt~in~H).] 0.015 secs (0.015u,0.s) Chars 4497 - 4502 [auto.] 0. secs (0.u,0.s) Chars 4503 - 4507 [Qed.] 0.002 secs (0.002u,0.s) diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index 28acbe73..77e6848a 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -22,7 +22,7 @@ Section PureITree. Definition PureITree A := itree void1 A. (*Morally, this is the type of pure itree specifcations. A sigma of this with a monotonicity requiremnet is used - in order to proved the ordered monad law*) + in order to prove the ordered monad law*) Definition _PureITreeSpec A := forall (p : itree void1 A -> Prop), resp_eutt p -> Prop. @@ -248,9 +248,9 @@ Qed. fun (f : A -> PureITreeSpec (A + B) ) (a : A) (p : itree void1 B -> Prop) (Hp : resp_eutt p) => gfp (@iter_mon A B f p Hp). -Lemma fix_monotinici_next : False. +(* Lemma fix_monotinici_next : False. fail "next task: fix monotinici definitions". -Abort. +Abort. *) Lemma iter_monot : forall A B (f : A -> PureITreeSpec (A + B) ) (a : A), monotonici B (_iter f a). diff --git a/extra/Dijkstra/StateDelaySpec.v.timing b/extra/Dijkstra/StateDelaySpec.v.timing index 6f912395..33541e40 100644 --- a/extra/Dijkstra/StateDelaySpec.v.timing +++ b/extra/Dijkstra/StateDelaySpec.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.138 secs (0.121u,0.016s) -Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.063 secs (0.056u,0.007s) -Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.05 secs (0.041u,0.008s) -Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.062 secs (0.054u,0.007s) +Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.139 secs (0.121u,0.016s) +Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.062 secs (0.055u,0.006s) +Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.047 secs (0.038u,0.009s) +Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.061 secs (0.054u,0.007s) Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.025 secs (0.024u,0.s) @@ -41,7 +41,7 @@ Chars 2138 - 2164 [(set~(p~:=~exist~_~post~H)).] 0. secs (0.u,0.s) Chars 2165 - 2192 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) Chars 2199 - 2208 [(apply~H0).] 0. secs (0.u,0.s) Chars 2209 - 2214 [auto.] 0. secs (0.u,0.s) -Chars 2217 - 2221 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2217 - 2221 [Qed.] 0.004 secs (0.004u,0.s) Chars 2225 - 2282 [Definition~PrePostPair~A~:~Typ...] 0. secs (0.u,0.s) Chars 2286 - 2485 [Definition~PrePostPairRef~{A~:...] 0. secs (0.u,0.s) Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.004 secs (0.004u,0.s) @@ -121,7 +121,7 @@ Chars 4865 - 4877 [(destruct~H3).] 0. secs (0.u,0.s) Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) Chars 4894 - 4932 [(assert~(pre~s~->~post~(m~s));...] 0. secs (0.u,0.s) Chars 4943 - 4950 [(intros).] 0. secs (0.u,0.s) -Chars 4951 - 4982 [(inversion~Hrefine;~subst;~auto).] 0. secs (0.u,0.s) +Chars 4951 - 4982 [(inversion~Hrefine;~subst;~auto).] 0.001 secs (0.001u,0.s) Chars 4991 - 4992 [*] 0. secs (0.u,0.s) Chars 4993 - 5011 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) Chars 5022 - 5024 [--] 0. secs (0.u,0.s) @@ -234,7 +234,7 @@ Chars 7867 - 7869 [--] 0. secs (0.u,0.s) Chars 7870 - 7888 [(inversion~H;~auto).] 0.001 secs (0.001u,0.s) Chars 7899 - 7901 [--] 0. secs (0.u,0.s) Chars 7902 - 7909 [(intros).] 0. secs (0.u,0.s) -Chars 7910 - 7934 [(inversion~Hrefine;~auto).] 0. secs (0.u,0.s) +Chars 7910 - 7934 [(inversion~Hrefine;~auto).] 0.001 secs (0.u,0.s) Chars 7939 - 7940 [-] 0. secs (0.u,0.s) Chars 7941 - 7966 [(unfold~encode_list~in~H0).] 0. secs (0.u,0.s) Chars 7967 - 7978 [(simpl~in~*).] 0. secs (0.u,0.s) @@ -270,11 +270,11 @@ Chars 8430 - 8437 [(intros).] 0. secs (0.u,0.s) Chars 8448 - 8468 [specialize~(H0~s~p).] 0. secs (0.u,0.s) Chars 8469 - 8478 [(apply~H0).] 0. secs (0.u,0.s) Chars 8479 - 8485 [eauto.] 0. secs (0.u,0.s) -Chars 8488 - 8492 [Qed.] 0.012 secs (0.012u,0.s) -Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.001 secs (0.001u,0.s) +Chars 8488 - 8492 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.004 secs (0.004u,0.s) Chars 8993 - 8999 [Proof.] 0. secs (0.u,0.s) Chars 9004 - 9011 [(intros).] 0. secs (0.u,0.s) -Chars 9012 - 9028 [(repeat~red~in~H).] 0.003 secs (0.003u,0.s) +Chars 9012 - 9028 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 9029 - 9040 [(repeat~red).] 0. secs (0.u,0.s) Chars 9041 - 9048 [(intros).] 0. secs (0.u,0.s) Chars 9053 - 9074 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) @@ -284,18 +284,18 @@ Chars 9108 - 9155 [(destruct~(eutt_reta_or_div~(m...] 0. secs (0.u,0.s) Chars 9160 - 9161 [-] 0. secs (0.u,0.s) Chars 9162 - 9183 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) Chars 9190 - 9200 [(cbn~in~H5).] 0. secs (0.u,0.s) -Chars 9201 - 9232 [(rewrite~<-~H5,~bind_ret_l;~cbn).] 0.007 secs (0.007u,0.s) +Chars 9201 - 9232 [(rewrite~<-~H5,~bind_ret_l;~cbn).] 0.006 secs (0.006u,0.s) Chars 9233 - 9246 [(apply~H4,~H0).] 0. secs (0.u,0.s) -Chars 9247 - 9258 [(rewrite~H5).] 0.001 secs (0.001u,0.s) +Chars 9247 - 9258 [(rewrite~H5).] 0.002 secs (0.001u,0.s) Chars 9265 - 9302 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) Chars 9307 - 9308 [-] 0. secs (0.u,0.s) Chars 9309 - 9335 [(apply~div_spin_eutt~in~H5).] 0. secs (0.u,0.s) -Chars 9342 - 9367 [(rewrite~H5,~<-~spin_bind).] 0.005 secs (0.005u,0.s) +Chars 9342 - 9367 [(rewrite~H5,~<-~spin_bind).] 0.006 secs (0.005u,0.s) Chars 9368 - 9381 [(apply~H4,~H1).] 0. secs (0.u,0.s) Chars 9382 - 9396 [(rewrite~<-~H5).] 0.001 secs (0.001u,0.s) Chars 9397 - 9434 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) Chars 9437 - 9441 [Qed.] 0.005 secs (0.005u,0.s) -Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.001 secs (0.001u,0.s) +Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.002 secs (0.002u,0.s) Chars 9947 - 9953 [Proof.] 0. secs (0.u,0.s) Chars 9958 - 9965 [(intros).] 0. secs (0.u,0.s) Chars 9970 - 10004 [(eapply~combine_prepost_aux;~e...] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/StateSpecT.v.timing b/extra/Dijkstra/StateSpecT.v.timing index 53c068a9..6d036228 100644 --- a/extra/Dijkstra/StateSpecT.v.timing +++ b/extra/Dijkstra/StateSpecT.v.timing @@ -1,7 +1,7 @@ Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.224 secs (0.196u,0.027s) -Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.224 secs (0.195u,0.028s) +Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.02 secs (0.016u,0.003s) Chars 341 - 355 [Import~Monads.] 0. secs (0.u,0.s) Chars 356 - 377 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 379 - 411 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -27,13 +27,13 @@ Chars 1102 - 1115 [(repeat~intro).] 0. secs (0.u,0.s) Chars 1117 - 1122 [auto.] 0. secs (0.u,0.s) Chars 1127 - 1128 [-] 0. secs (0.u,0.s) Chars 1129 - 1142 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1143 - 1163 [(eapply~trans;~eauto).] 0.005 secs (0.003u,0.001s) +Chars 1143 - 1163 [(eapply~trans;~eauto).] 0.004 secs (0.003u,0.001s) Chars 1168 - 1169 [-] 0. secs (0.u,0.s) Chars 1170 - 1201 [(intros~A~B~w1~w2~f1~f2~Hlw~Hlf).] 0. secs (0.u,0.s) Chars 1202 - 1225 [(unfold~StateSpecT~in~*).] 0. secs (0.u,0.s) Chars 1232 - 1243 [(repeat~red).] 0. secs (0.u,0.s) Chars 1250 - 1257 [(intros).] 0. secs (0.u,0.s) -Chars 1258 - 1276 [(apply~monot;~auto).] 0.035 secs (0.032u,0.002s) +Chars 1258 - 1276 [(apply~monot;~auto).] 0.038 secs (0.033u,0.004s) Chars 1277 - 1284 [(intros).] 0. secs (0.u,0.s) Chars 1285 - 1306 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) Chars 1307 - 1313 [(simpl).] 0. secs (0.u,0.s) @@ -137,18 +137,18 @@ Chars 5119 - 5126 [(intros).] 0. secs (0.u,0.s) Chars 5135 - 5141 [subst.] 0. secs (0.u,0.s) Chars 5142 - 5154 [(destruct~u2).] 0. secs (0.u,0.s) Chars 5155 - 5161 [(simpl).] 0. secs (0.u,0.s) -Chars 5162 - 5187 [(destruct~s1;~reflexivity).] 0.054 secs (0.054u,0.s) +Chars 5162 - 5187 [(destruct~s1;~reflexivity).] 0. secs (0.u,0.s) Chars 5194 - 5195 [+] 0. secs (0.u,0.s) Chars 5196 - 5253 [(assert~(Hpdiv~:~resp_eutt~(Di...] 0. secs (0.u,0.s) Chars 5262 - 5263 [{] 0. secs (0.u,0.s) -Chars 5264 - 5283 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 5264 - 5283 [(intros~t1~t2~Heutt).] 0.054 secs (0.053u,0.s) Chars 5284 - 5320 [(split;~intros;~destruct~H4).] 0. secs (0.u,0.s) Chars 5332 - 5333 [-] 0. secs (0.u,0.s) Chars 5334 - 5339 [left.] 0. secs (0.u,0.s) Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 5372 - 5373 [-] 0. secs (0.u,0.s) Chars 5374 - 5380 [right.] 0. secs (0.u,0.s) -Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) +Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.002 secs (0.001u,0.s) Chars 5414 - 5415 [-] 0. secs (0.u,0.s) Chars 5416 - 5421 [left.] 0. secs (0.u,0.s) Chars 5422 - 5440 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) @@ -172,7 +172,7 @@ Chars 6041 - 6064 [generalize~dependent~a.] 0. secs (0.u,0.s) Chars 6065 - 6088 [generalize~dependent~s.] 0. secs (0.u,0.s) Chars 6093 - 6111 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 6118 - 6125 [(intros).] 0. secs (0.u,0.s) -Chars 6126 - 6169 [(red~in~H;~sinv~H;~try~apply~n...] 0.002 secs (0.002u,0.s) +Chars 6126 - 6169 [(red~in~H;~sinv~H;~try~apply~n...] 0.003 secs (0.002u,0.s) Chars 6175 - 6211 [(apply~not_wf~with~(a'~:=~a');...] 0.001 secs (0.001u,0.s) Chars 6216 - 6217 [-] 0. secs (0.u,0.s) Chars 6218 - 6230 [(red~in~Hrel).] 0. secs (0.u,0.s) @@ -205,9 +205,9 @@ Chars 6936 - 6958 [(destruct~y~as~[s'~a']).] 0. secs (0.u,0.s) Chars 6965 - 7014 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) Chars 7021 - 7022 [+] 0. secs (0.u,0.s) Chars 7023 - 7037 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) -Chars 7038 - 7058 [(rewrite~<-~H0~in~H1).] 0.026 secs (0.025u,0.s) +Chars 7038 - 7058 [(rewrite~<-~H0~in~H1).] 0.025 secs (0.024u,0.s) Chars 7059 - 7071 [(simpl~in~H1).] 0. secs (0.u,0.s) -Chars 7072 - 7097 [(rewrite~bind_ret_l~in~H1).] 0.026 secs (0.026u,0.s) +Chars 7072 - 7097 [(rewrite~bind_ret_l~in~H1).] 0.025 secs (0.025u,0.s) Chars 7106 - 7117 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 7118 - 7130 [(destruct~a0).] 0. secs (0.u,0.s) Chars 7131 - 7142 [(simpl~in~*).] 0. secs (0.u,0.s) @@ -215,8 +215,8 @@ Chars 7143 - 7168 [(destruct~s1;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 7177 - 7189 [reflexivity.] 0. secs (0.u,0.s) Chars 7196 - 7197 [+] 0. secs (0.u,0.s) Chars 7198 - 7224 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 7225 - 7242 [(rewrite~H0~in~H1).] 0.024 secs (0.024u,0.s) -Chars 7243 - 7270 [(rewrite~<-~spin_bind~in~H1).] 0.023 secs (0.022u,0.s) +Chars 7225 - 7242 [(rewrite~H0~in~H1).] 0.025 secs (0.023u,0.s) +Chars 7243 - 7270 [(rewrite~<-~spin_bind~in~H1).] 0.022 secs (0.022u,0.s) Chars 7279 - 7294 [symmetry~in~H1.] 0. secs (0.u,0.s) Chars 7295 - 7303 [exfalso.] 0. secs (0.u,0.s) Chars 7304 - 7336 [(eapply~not_ret_eutt_spin;~eau...] 0. secs (0.u,0.s) @@ -230,15 +230,15 @@ Chars 7444 - 7445 [+] 0. secs (0.u,0.s) Chars 7446 - 7468 [exists~(inl~(s',~a')).] 0. secs (0.u,0.s) Chars 7469 - 7475 [(simpl).] 0. secs (0.u,0.s) Chars 7476 - 7486 [(rewrite~H).] 0.004 secs (0.004u,0.s) -Chars 7487 - 7506 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 7487 - 7506 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) Chars 7507 - 7513 [(simpl).] 0. secs (0.u,0.s) Chars 7521 - 7533 [reflexivity.] 0. secs (0.u,0.s) Chars 7539 - 7540 [+] 0. secs (0.u,0.s) Chars 7541 - 7561 [exists~(inr~(s',~b)).] 0. secs (0.u,0.s) Chars 7562 - 7568 [(simpl).] 0. secs (0.u,0.s) -Chars 7569 - 7579 [(rewrite~H).] 0.005 secs (0.004u,0.s) +Chars 7569 - 7579 [(rewrite~H).] 0.004 secs (0.004u,0.s) Chars 7580 - 7599 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 7600 - 7606 [(simpl).] 0. secs (0.u,0.s) Chars 7614 - 7626 [reflexivity.] 0. secs (0.u,0.s) -Chars 7629 - 7633 [Qed.] 0.011 secs (0.011u,0.s) -Chars 7635 - 7657 [End~LoopInvarSpecific.] 0. secs (0.u,0.s) +Chars 7629 - 7633 [Qed.] 0.013 secs (0.012u,0.s) +Chars 7635 - 7657 [End~LoopInvarSpecific.] 0.001 secs (0.u,0.s) diff --git a/extra/IForest.v.timing b/extra/IForest.v.timing index 4a589d16..d4fafa9b 100644 --- a/extra/IForest.v.timing +++ b/extra/IForest.v.timing @@ -1,7 +1,7 @@ -Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.222 secs (0.197u,0.025s) +Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.227 secs (0.199u,0.027s) Chars 461 - 512 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.002 secs (0.001u,0.001s) +Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.002 secs (0.001u,0.s) Chars 586 - 620 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 622 - 643 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 644 - 664 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -10,11 +10,11 @@ Chars 695 - 722 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 801 - 877 [Definition~iforest~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 1082 - 1148 [Notation~eutt_closed~:=~(Prope...] 0. secs (0.u,0.s) Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) -Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.001 secs (0.001u,0.s) +Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.002 secs (0.001u,0.s) Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0. secs (0.u,0.s) Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0.001 secs (0.u,0.s) -Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0.001 secs (0.001u,0.s) -Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.002 secs (0.001u,0.s) +Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0.001 secs (0.u,0.s) +Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.001 secs (0.001u,0.s) Chars 2851 - 2980 [Lemma~bind_iforest_bind_ifores...] 0. secs (0.u,0.s) Chars 2981 - 2987 [Proof.] 0. secs (0.u,0.s) Chars 2990 - 2997 [(intros).] 0. secs (0.u,0.s) @@ -46,11 +46,11 @@ Chars 3333 - 3371 [specialize~(HX~(fun~_~=>~ITree...] 0. secs (0.u,0.s) Chars 3378 - 3402 [(destruct~HX~as~(HA,~H)).] 0. secs (0.u,0.s) Chars 3409 - 3421 [(split;~auto).] 0. secs (0.u,0.s) Chars 3422 - 3426 [Qed.] 0.003 secs (0.002u,0.s) -Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0.002 secs (0.001u,0.s) +Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0.001 secs (0.001u,0.s) Chars 3627 - 3748 [Definition~handler_correct~{E}...] 0. secs (0.u,0.s) Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.035 secs (0.032u,0.002s) Chars 4598 - 4650 [#[global]~Hint~Constructors~in...] 0. secs (0.u,0.s) -Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0.001 secs (0.001u,0.s) +Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0. secs (0.u,0.s) Chars 4878 - 4884 [Proof.] 0. secs (0.u,0.s) Chars 4887 - 4918 [(induction~IN;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 4919 - 4923 [Qed.] 0. secs (0.u,0.s) @@ -106,24 +106,24 @@ Chars 10232 - 10233 [+] 0. secs (0.u,0.s) Chars 10234 - 10256 [(unfold~interp_iforest).] 0. secs (0.u,0.s) Chars 10257 - 10262 [step.] 0. secs (0.u,0.s) Chars 10263 - 10283 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 10284 - 10298 [now~rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 10284 - 10298 [now~rewrite~H.] 0. secs (0.u,0.s) Chars 10301 - 10302 [-] 0. secs (0.u,0.s) Chars 10303 - 10314 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10319 - 10360 [(intros~t1~t2~eq;~split;~intro...] 0.005 secs (0.004u,0.s) +Chars 10319 - 10360 [(intros~t1~t2~eq;~split;~intro...] 0.004 secs (0.004u,0.s) Chars 10366 - 10367 [+] 0. secs (0.u,0.s) Chars 10368 - 10373 [step.] 0. secs (0.u,0.s) -Chars 10374 - 10394 [(econstructor;~eauto).] 0.041 secs (0.04u,0.s) +Chars 10374 - 10394 [(econstructor;~eauto).] 0.04 secs (0.04u,0.s) Chars 10395 - 10413 [now~rewrite~<-~eq.] 0.001 secs (0.001u,0.s) Chars 10419 - 10420 [+] 0. secs (0.u,0.s) Chars 10421 - 10426 [step.] 0. secs (0.u,0.s) Chars 10427 - 10447 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 10448 - 10463 [now~rewrite~eq.] 0.001 secs (0.001u,0.s) +Chars 10448 - 10463 [now~rewrite~eq.] 0. secs (0.u,0.s) Chars 10466 - 10467 [-] 0. secs (0.u,0.s) Chars 10468 - 10479 [(repeat~red).] 0. secs (0.u,0.s) Chars 10480 - 10487 [(intros).] 0. secs (0.u,0.s) Chars 10488 - 10512 [(split;~intros;~cbn~in~*).] 0. secs (0.u,0.s) Chars 10513 - 10530 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) -Chars 10531 - 10545 [now~rewrite~H.] 0. secs (0.u,0.s) +Chars 10531 - 10545 [now~rewrite~H.] 0.001 secs (0.001u,0.s) Chars 10547 - 10551 [Qed.] 0.006 secs (0.006u,0.s) Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) Chars 10829 - 10835 [Proof.] 0. secs (0.u,0.s) @@ -140,10 +140,10 @@ Chars 10973 - 10990 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 10995 - 10996 [+] 0. secs (0.u,0.s) Chars 10997 - 11014 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 11018 - 11019 [-] 0. secs (0.u,0.s) -Chars 11020 - 11061 [(inversion~H0;~subst;~econstru...] 0.008 secs (0.008u,0.s) +Chars 11020 - 11061 [(inversion~H0;~subst;~econstru...] 0.009 secs (0.008u,0.s) Chars 11067 - 11086 [all:~now~rewrite~H.] 0.002 secs (0.002u,0.s) Chars 11088 - 11092 [Qed.] 0.003 secs (0.003u,0.s) -Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) +Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 11304 - 11310 [Proof.] 0. secs (0.u,0.s) Chars 11313 - 11324 [(repeat~red).] 0. secs (0.u,0.s) Chars 11325 - 11334 [revert~t.] 0. secs (0.u,0.s) @@ -156,9 +156,9 @@ Chars 11407 - 11413 [split.] 0. secs (0.u,0.s) Chars 11416 - 11417 [-] 0. secs (0.u,0.s) Chars 11418 - 11428 [(intros~HI).] 0. secs (0.u,0.s) Chars 11433 - 11462 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 11469 - 11476 [(inv~HI).] 0.01 secs (0.01u,0.s) +Chars 11469 - 11476 [(inv~HI).] 0.009 secs (0.009u,0.s) Chars 11483 - 11484 [+] 0. secs (0.u,0.s) -Chars 11485 - 11503 [(rewrite~H0~in~eq2).] 0.023 secs (0.023u,0.s) +Chars 11485 - 11503 [(rewrite~H0~in~eq2).] 0.022 secs (0.022u,0.s) Chars 11511 - 11544 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 11550 - 11551 [+] 0. secs (0.u,0.s) Chars 11552 - 11565 [econstructor.] 0. secs (0.u,0.s) @@ -170,31 +170,31 @@ Chars 11628 - 11646 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 11650 - 11651 [-] 0. secs (0.u,0.s) Chars 11652 - 11662 [(intros~HI).] 0. secs (0.u,0.s) Chars 11667 - 11696 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 11703 - 11710 [(inv~HI).] 0.012 secs (0.011u,0.s) +Chars 11703 - 11710 [(inv~HI).] 0.011 secs (0.011u,0.s) Chars 11717 - 11718 [+] 0. secs (0.u,0.s) -Chars 11719 - 11740 [(rewrite~<-~H0~in~eq2).] 0.019 secs (0.019u,0.s) +Chars 11719 - 11740 [(rewrite~<-~H0~in~eq2).] 0.018 secs (0.018u,0.s) Chars 11748 - 11781 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 11787 - 11788 [+] 0. secs (0.u,0.s) Chars 11789 - 11802 [econstructor.] 0. secs (0.u,0.s) Chars 11803 - 11819 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 11826 - 11827 [+] 0. secs (0.u,0.s) -Chars 11828 - 11848 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 11828 - 11848 [(econstructor;~eauto).] 0.004 secs (0.004u,0.s) Chars 11849 - 11864 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 11866 - 11870 [Qed.] 0.007 secs (0.007u,0.s) -Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) +Chars 11866 - 11870 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 12086 - 12092 [Proof.] 0. secs (0.u,0.s) Chars 12095 - 12106 [(repeat~red).] 0. secs (0.u,0.s) Chars 12107 - 12116 [revert~t.] 0. secs (0.u,0.s) Chars 12120 - 12136 [tower~induction.] 0. secs (0.u,0.s) Chars 12140 - 12141 [{] 0. secs (0.u,0.s) Chars 12142 - 12148 [split.] 0. secs (0.u,0.s) -Chars 12149 - 12182 [all:~(repeat~intro;~apply~H;~a...] 0.001 secs (0.001u,0.s) +Chars 12149 - 12182 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) Chars 12183 - 12184 [}] 0. secs (0.u,0.s) Chars 12189 - 12195 [split.] 0. secs (0.u,0.s) Chars 12198 - 12199 [-] 0. secs (0.u,0.s) Chars 12200 - 12210 [(intros~HI).] 0. secs (0.u,0.s) Chars 12215 - 12244 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 12251 - 12258 [(inv~HI).] 0.01 secs (0.01u,0.s) +Chars 12251 - 12258 [(inv~HI).] 0.009 secs (0.009u,0.s) Chars 12265 - 12266 [+] 0. secs (0.u,0.s) Chars 12267 - 12285 [(rewrite~H0~in~eq2).] 0.018 secs (0.018u,0.s) Chars 12293 - 12326 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) @@ -203,14 +203,14 @@ Chars 12334 - 12347 [econstructor.] 0. secs (0.u,0.s) Chars 12348 - 12363 [symmetry~in~H0.] 0. secs (0.u,0.s) Chars 12364 - 12380 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 12387 - 12388 [+] 0. secs (0.u,0.s) -Chars 12389 - 12409 [(econstructor;~eauto).] 0.003 secs (0.002u,0.s) +Chars 12389 - 12409 [(econstructor;~eauto).] 0.002 secs (0.002u,0.s) Chars 12410 - 12428 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 12432 - 12433 [-] 0. secs (0.u,0.s) Chars 12434 - 12444 [(intros~HI).] 0. secs (0.u,0.s) Chars 12450 - 12479 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 12486 - 12493 [(inv~HI).] 0.011 secs (0.011u,0.s) Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12523 [(rewrite~<-~H0~in~eq2).] 0.017 secs (0.017u,0.s) +Chars 12502 - 12523 [(rewrite~<-~H0~in~eq2).] 0.016 secs (0.016u,0.s) Chars 12531 - 12564 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 12570 - 12571 [+] 0. secs (0.u,0.s) Chars 12572 - 12585 [econstructor.] 0. secs (0.u,0.s) @@ -238,7 +238,7 @@ Chars 13508 - 13509 [-] 0. secs (0.u,0.s) Chars 13510 - 13520 [(intros~HI).] 0. secs (0.u,0.s) Chars 13525 - 13554 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 13560 - 13571 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13579 - 13595 [(inv~HI;~simpobs).] 0.027 secs (0.026u,0.s) +Chars 13579 - 13595 [(inv~HI;~simpobs).] 0.026 secs (0.026u,0.s) Chars 13600 - 13601 [+] 0. secs (0.u,0.s) Chars 13602 - 13609 [(inv~H0).] 0.009 secs (0.009u,0.s) Chars 13610 - 13643 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) @@ -261,9 +261,9 @@ Chars 13872 - 13873 [-] 0. secs (0.u,0.s) Chars 13874 - 13884 [(intros~HI).] 0. secs (0.u,0.s) Chars 13889 - 13918 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 13923 - 13934 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13942 - 13958 [(inv~HI;~simpobs).] 0.027 secs (0.026u,0.s) +Chars 13942 - 13958 [(inv~HI;~simpobs).] 0.026 secs (0.026u,0.s) Chars 13966 - 13967 [+] 0. secs (0.u,0.s) -Chars 13968 - 13975 [(inv~H0).] 0.011 secs (0.011u,0.s) +Chars 13968 - 13975 [(inv~H0).] 0.01 secs (0.01u,0.s) Chars 13976 - 14009 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 14015 - 14016 [+] 0. secs (0.u,0.s) Chars 14017 - 14024 [(inv~H0).] 0.017 secs (0.017u,0.s) @@ -271,14 +271,14 @@ Chars 14025 - 14038 [econstructor.] 0. secs (0.u,0.s) Chars 14039 - 14055 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 14061 - 14062 [+] 0. secs (0.u,0.s) Chars 14063 - 14093 [(eapply~eqitF_inv_VisF_r~in~H0).] 0. secs (0.u,0.s) -Chars 14094 - 14111 [(crunch;~try~easy).] 0.01 secs (0.01u,0.s) +Chars 14094 - 14111 [(crunch;~try~easy).] 0.009 secs (0.009u,0.s) Chars 14119 - 14127 [simpobs.] 0.003 secs (0.003u,0.s) Chars 14128 - 14148 [(econstructor;~eauto).] 0.001 secs (0.001u,0.s) Chars 14149 - 14156 [(intros).] 0. secs (0.u,0.s) Chars 14164 - 14173 [(eapply~H).] 0. secs (0.u,0.s) Chars 14182 - 14191 [(apply~H1).] 0. secs (0.u,0.s) Chars 14192 - 14203 [all:~eauto.] 0. secs (0.u,0.s) -Chars 14204 - 14208 [Qed.] 0.021 secs (0.02u,0.s) +Chars 14204 - 14208 [Qed.] 0.02 secs (0.02u,0.s) Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0.001 secs (0.001u,0.s) Chars 14547 - 14553 [Proof.] 0. secs (0.u,0.s) Chars 14556 - 14563 [(intros).] 0. secs (0.u,0.s) @@ -286,45 +286,45 @@ Chars 14566 - 14581 [revert~t~t'~H1.] 0. secs (0.u,0.s) Chars 14584 - 14596 [coinduction.] 0.001 secs (0.001u,0.s) Chars 14599 - 14614 [(intros~t~t'~eq).] 0. secs (0.u,0.s) Chars 14617 - 14661 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) -Chars 14664 - 14692 [(rewrite~(itree_eta~t)~in~eq).] 0.021 secs (0.021u,0.s) +Chars 14664 - 14692 [(rewrite~(itree_eta~t)~in~eq).] 0.02 secs (0.02u,0.s) Chars 14695 - 14725 [(destruct~(observe~t)~eqn:oeqt).] 0.001 secs (0.001u,0.s) Chars 14729 - 14730 [-] 0. secs (0.u,0.s) -Chars 14731 - 14745 [(rewrite~<-~eq).] 0.088 secs (0.086u,0.001s) -Chars 14746 - 14766 [(rewrite~unfold_iter).] 0.082 secs (0.08u,0.001s) +Chars 14731 - 14745 [(rewrite~<-~eq).] 0.082 secs (0.082u,0.s) +Chars 14746 - 14766 [(rewrite~unfold_iter).] 0.079 secs (0.079u,0.s) Chars 14767 - 14772 [bcbn.] 0. secs (0.u,0.s) -Chars 14778 - 14802 [(rewrite~Eqit.bind_ret_l).] 0.082 secs (0.081u,0.s) +Chars 14778 - 14802 [(rewrite~Eqit.bind_ret_l).] 0.078 secs (0.078u,0.s) Chars 14803 - 14814 [(repeat~red).] 0. secs (0.u,0.s) Chars 14815 - 14823 [simpobs.] 0. secs (0.u,0.s) Chars 14824 - 14841 [now~econstructor.] 0. secs (0.u,0.s) Chars 14845 - 14846 [-] 0. secs (0.u,0.s) -Chars 14847 - 14861 [(rewrite~<-~eq).] 0.082 secs (0.08u,0.001s) -Chars 14862 - 14882 [(rewrite~unfold_iter).] 0.082 secs (0.081u,0.001s) +Chars 14847 - 14861 [(rewrite~<-~eq).] 0.094 secs (0.087u,0.002s) +Chars 14862 - 14882 [(rewrite~unfold_iter).] 0.098 secs (0.088u,0.s) Chars 14883 - 14888 [bcbn.] 0. secs (0.u,0.s) -Chars 14889 - 14913 [(rewrite~Eqit.bind_ret_l).] 0.079 secs (0.079u,0.s) -Chars 14918 - 14935 [(rewrite~tau_eutt).] 0.079 secs (0.078u,0.s) +Chars 14889 - 14913 [(rewrite~Eqit.bind_ret_l).] 0.103 secs (0.089u,0.s) +Chars 14918 - 14935 [(rewrite~tau_eutt).] 0.094 secs (0.088u,0.s) Chars 14941 - 14952 [(repeat~red).] 0. secs (0.u,0.s) Chars 14953 - 14961 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14962 - 14975 [econstructor.] 0. secs (0.u,0.s) -Chars 14976 - 14990 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 14976 - 14990 [now~apply~CIH.] 0.003 secs (0.u,0.s) Chars 14995 - 14996 [-] 0. secs (0.u,0.s) -Chars 14997 - 15011 [(rewrite~<-~eq).] 0.078 secs (0.077u,0.s) -Chars 15012 - 15032 [(rewrite~unfold_iter).] 0.081 secs (0.079u,0.001s) +Chars 14997 - 15011 [(rewrite~<-~eq).] 0.142 secs (0.102u,0.002s) +Chars 15012 - 15032 [(rewrite~unfold_iter).] 0.102 secs (0.095u,0.001s) Chars 15033 - 15038 [bcbn.] 0. secs (0.u,0.s) -Chars 15043 - 15060 [(rewrite~bind_map).] 0.08 secs (0.079u,0.s) +Chars 15043 - 15060 [(rewrite~bind_map).] 0.1 secs (0.092u,0.s) Chars 15061 - 15081 [(repeat~red;~simpobs).] 0.001 secs (0.001u,0.s) Chars 15082 - 15095 [econstructor.] 0. secs (0.u,0.s) Chars 15100 - 15101 [+] 0. secs (0.u,0.s) Chars 15102 - 15110 [(apply~H).] 0. secs (0.u,0.s) Chars 15116 - 15117 [+] 0. secs (0.u,0.s) -Chars 15118 - 15124 [ebind.] 0.006 secs (0.005u,0.s) +Chars 15118 - 15124 [ebind.] 0.006 secs (0.006u,0.s) Chars 15125 - 15139 [(intros;~subst).] 0. secs (0.u,0.s) Chars 15140 - 15157 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) Chars 15158 - 15170 [reflexivity.] 0. secs (0.u,0.s) Chars 15176 - 15177 [+] 0. secs (0.u,0.s) Chars 15178 - 15185 [(intros).] 0. secs (0.u,0.s) -Chars 15186 - 15203 [(rewrite~tau_eutt).] 0.03 secs (0.03u,0.s) +Chars 15186 - 15203 [(rewrite~tau_eutt).] 0.036 secs (0.035u,0.s) Chars 15204 - 15218 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 15220 - 15224 [Qed.] 0.015 secs (0.014u,0.s) +Chars 15220 - 15224 [Qed.] 0.018 secs (0.017u,0.s) Chars 15328 - 15564 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 15565 - 15571 [Proof.] 0. secs (0.u,0.s) Chars 15574 - 15581 [(intros).] 0. secs (0.u,0.s) @@ -341,16 +341,16 @@ Chars 15747 - 15763 [(genobs~t2~obst2).] 0. secs (0.u,0.s) Chars 15766 - 15802 [revert~t1~t2~Heqobst1~Heqobst2...] 0. secs (0.u,0.s) Chars 15805 - 15827 [(induction~eqt;~intros).] 0.001 secs (0.001u,0.s) Chars 15830 - 15831 [-] 0. secs (0.u,0.s) -Chars 15832 - 15839 [(inv~HI).] 0.006 secs (0.006u,0.s) +Chars 15832 - 15839 [(inv~HI).] 0.008 secs (0.007u,0.s) Chars 15840 - 15853 [econstructor.] 0. secs (0.u,0.s) Chars 15854 - 15875 [(etransitivity;~eauto).] 0. secs (0.u,0.s) Chars 15876 - 15882 [eauto.] 0. secs (0.u,0.s) Chars 15887 - 15888 [-] 0. secs (0.u,0.s) -Chars 15889 - 15896 [(inv~HI).] 0.005 secs (0.005u,0.s) +Chars 15889 - 15896 [(inv~HI).] 0.007 secs (0.006u,0.s) Chars 15902 - 15915 [econstructor.] 0. secs (0.u,0.s) Chars 15916 - 15934 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 15937 - 15938 [-] 0. secs (0.u,0.s) -Chars 15939 - 15946 [(inv~HI).] 0.007 secs (0.007u,0.s) +Chars 15939 - 15946 [(inv~HI).] 0.009 secs (0.008u,0.s) Chars 15952 - 15974 [(apply~inj_pair2~in~H1).] 0. secs (0.u,0.s) Chars 15979 - 16001 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) Chars 16006 - 16012 [subst.] 0. secs (0.u,0.s) @@ -372,12 +372,12 @@ Chars 16213 - 16225 [reflexivity.] 0. secs (0.u,0.s) Chars 16226 - 16238 [eassumption.] 0. secs (0.u,0.s) Chars 16239 - 16250 [assumption.] 0. secs (0.u,0.s) Chars 16253 - 16254 [-] 0. secs (0.u,0.s) -Chars 16255 - 16262 [(inv~HI).] 0.01 secs (0.01u,0.s) +Chars 16255 - 16262 [(inv~HI).] 0.013 secs (0.012u,0.s) Chars 16268 - 16281 [(eapply~IHeqt).] 0. secs (0.u,0.s) Chars 16282 - 16294 [reflexivity.] 0. secs (0.u,0.s) Chars 16295 - 16307 [reflexivity.] 0. secs (0.u,0.s) -Chars 16312 - 16323 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 16325 - 16329 [Qed.] 0.012 secs (0.011u,0.s) +Chars 16312 - 16323 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 16325 - 16329 [Qed.] 0.015 secs (0.014u,0.s) Chars 16331 - 16439 [Lemma~Leaf_Vis_sub~:~~~forall~...] 0. secs (0.u,0.s) Chars 16440 - 16446 [Proof.] 0. secs (0.u,0.s) Chars 16449 - 16456 [(intros).] 0. secs (0.u,0.s) @@ -390,8 +390,8 @@ Chars 16659 - 16665 [Proof.] 0. secs (0.u,0.s) Chars 16668 - 16679 [(intros~E~R).] 0. secs (0.u,0.s) Chars 16682 - 16701 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 16702 - 16709 [(intros).] 0. secs (0.u,0.s) -Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.003 secs (0.003u,0.s) -Chars 16752 - 16774 [(destruct~(observe~ta)).] 0.001 secs (0.001u,0.s) +Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.004 secs (0.004u,0.s) +Chars 16752 - 16774 [(destruct~(observe~ta)).] 0.002 secs (0.002u,0.s) Chars 16777 - 16778 [-] 0. secs (0.u,0.s) Chars 16779 - 16792 [econstructor.] 0. secs (0.u,0.s) Chars 16794 - 16806 [(split;~auto).] 0. secs (0.u,0.s) @@ -402,7 +402,7 @@ Chars 16839 - 16852 [econstructor.] 0. secs (0.u,0.s) Chars 16853 - 16863 [(apply~CIH).] 0. secs (0.u,0.s) Chars 16864 - 16871 [(intros).] 0. secs (0.u,0.s) Chars 16872 - 16882 [(eapply~IN).] 0. secs (0.u,0.s) -Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) Chars 16907 - 16908 [-] 0. secs (0.u,0.s) Chars 16909 - 16922 [econstructor.] 0. secs (0.u,0.s) Chars 16923 - 16930 [(intros).] 0. secs (0.u,0.s) @@ -411,7 +411,7 @@ Chars 16947 - 16954 [(intros).] 0. secs (0.u,0.s) Chars 16955 - 16965 [(eapply~IN).] 0. secs (0.u,0.s) Chars 16966 - 16986 [(eapply~Leaf_Vis_sub).] 0. secs (0.u,0.s) Chars 16987 - 16995 [(apply~H).] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.004 secs (0.004u,0.s) +Chars 16996 - 17000 [Qed.] 0.005 secs (0.005u,0.s) Chars 17002 - 17097 [Lemma~eutt_Leaf~:~~~forall~E~R...] 0. secs (0.u,0.s) Chars 17098 - 17104 [Proof.] 0. secs (0.u,0.s) Chars 17107 - 17114 [(intros).] 0. secs (0.u,0.s) @@ -428,26 +428,26 @@ Chars 17516 - 17538 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 17543 - 17544 [+] 0. secs (0.u,0.s) Chars 17545 - 17566 [(unfold~trigger~in~H0).] 0. secs (0.u,0.s) Chars 17567 - 17578 [step~in~H0.] 0. secs (0.u,0.s) -Chars 17586 - 17593 [(inv~H0).] 0.003 secs (0.003u,0.s) +Chars 17586 - 17593 [(inv~H0).] 0.005 secs (0.004u,0.s) Chars 17601 - 17623 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) Chars 17624 - 17646 [(apply~inj_pair2~in~H4).] 0. secs (0.u,0.s) Chars 17653 - 17659 [subst.] 0. secs (0.u,0.s) Chars 17666 - 17720 [(unfold~subevent,~resum,~ReSum...] 0. secs (0.u,0.s) -Chars 17727 - 17744 [(rewrite~eq2~in~H).] 0.016 secs (0.016u,0.s) +Chars 17727 - 17744 [(rewrite~eq2~in~H).] 0.021 secs (0.02u,0.s) Chars 17751 - 17783 [(assert~(x~<-~ta;;~k2~x~≈~ta)).] 0. secs (0.u,0.s) Chars 17790 - 17791 [{] 0. secs (0.u,0.s) Chars 17792 - 17824 [(rewrite~<-~(Eqit.bind_ret_r~t...] 0.002 secs (0.002u,0.s) Chars 17833 - 17902 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 17911 - 17935 [(rewrite~Eqit.bind_ret_r).] 0. secs (0.u,0.s) +Chars 17911 - 17935 [(rewrite~Eqit.bind_ret_r).] 0.001 secs (0.001u,0.s) Chars 17936 - 17952 [(apply~eutt_Leaf).] 0. secs (0.u,0.s) Chars 17961 - 17968 [(intros).] 0. secs (0.u,0.s) Chars 17969 - 17981 [(destruct~H0).] 0. secs (0.u,0.s) Chars 17982 - 17988 [subst.] 0. secs (0.u,0.s) Chars 17989 - 18011 [specialize~(HK~u2~H1).] 0. secs (0.u,0.s) -Chars 18012 - 18023 [step~in~HK.] 0. secs (0.u,0.s) -Chars 18024 - 18031 [(inv~HK).] 0.001 secs (0.001u,0.s) +Chars 18012 - 18023 [step~in~HK.] 0.001 secs (0.u,0.s) +Chars 18024 - 18031 [(inv~HK).] 0.003 secs (0.002u,0.s) Chars 18038 - 18039 [}] 0. secs (0.u,0.s) -Chars 18046 - 18062 [(rewrite~H0~in~H).] 0.018 secs (0.018u,0.s) +Chars 18046 - 18062 [(rewrite~H0~in~H).] 0.044 secs (0.024u,0.s) Chars 18069 - 18099 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) Chars 18100 - 18125 [(unfold~Eq1_iforest~in~HP).] 0. secs (0.u,0.s) Chars 18126 - 18153 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) @@ -467,14 +467,14 @@ Chars 18392 - 18416 [(rewrite~Eqit.bind_ret_r).] 0.001 secs (0.001u,0.s) Chars 18417 - 18428 [assumption.] 0. secs (0.u,0.s) Chars 18435 - 18436 [*] 0. secs (0.u,0.s) Chars 18437 - 18444 [(intros).] 0. secs (0.u,0.s) -Chars 18445 - 18450 [step.] 0. secs (0.u,0.s) +Chars 18445 - 18450 [step.] 0.001 secs (0.u,0.s) Chars 18451 - 18471 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 18474 - 18475 [-] 0. secs (0.u,0.s) Chars 18476 - 18480 [(hnf).] 0. secs (0.u,0.s) Chars 18481 - 18503 [(intros;~split;~intros).] 0. secs (0.u,0.s) -Chars 18508 - 18521 [(rewrite~<-~H).] 0.04 secs (0.039u,0.s) +Chars 18508 - 18521 [(rewrite~<-~H).] 0.052 secs (0.047u,0.s) Chars 18522 - 18533 [assumption.] 0. secs (0.u,0.s) -Chars 18538 - 18548 [(rewrite~H).] 0.04 secs (0.039u,0.s) +Chars 18538 - 18548 [(rewrite~H).] 0.049 secs (0.046u,0.s) Chars 18549 - 18560 [assumption.] 0. secs (0.u,0.s) Chars 18563 - 18564 [-] 0. secs (0.u,0.s) Chars 18565 - 18569 [(hnf).] 0. secs (0.u,0.s) @@ -487,7 +487,7 @@ Chars 18692 - 18703 [assumption.] 0. secs (0.u,0.s) Chars 18708 - 18738 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) Chars 18739 - 18766 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) Chars 18771 - 18788 [(rewrite~P;~eauto).] 0. secs (0.u,0.s) -Chars 18789 - 18793 [Qed.] 0.011 secs (0.011u,0.s) +Chars 18789 - 18793 [Qed.] 0.012 secs (0.012u,0.s) Chars 19261 - 19411 [Lemma~interp_iforest_spin_acce...] 0. secs (0.u,0.s) Chars 19412 - 19418 [Proof.] 0. secs (0.u,0.s) Chars 19421 - 19428 [(intros).] 0. secs (0.u,0.s) @@ -503,42 +503,42 @@ Chars 19740 - 19757 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 19760 - 19761 [-] 0. secs (0.u,0.s) Chars 19762 - 19784 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 19789 - 19790 [+] 0. secs (0.u,0.s) -Chars 19791 - 19804 [(rewrite~<-~H).] 0.034 secs (0.034u,0.s) +Chars 19791 - 19804 [(rewrite~<-~H).] 0.035 secs (0.035u,0.s) Chars 19811 - 19816 [step.] 0. secs (0.u,0.s) Chars 19817 - 19834 [now~econstructor.] 0. secs (0.u,0.s) Chars 19840 - 19841 [+] 0. secs (0.u,0.s) -Chars 19842 - 19852 [(rewrite~H).] 0.032 secs (0.032u,0.s) +Chars 19842 - 19852 [(rewrite~H).] 0.037 secs (0.036u,0.s) Chars 19859 - 19870 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19871 - 19878 [(inv~H0).] 0.001 secs (0.001u,0.s) +Chars 19871 - 19878 [(inv~H0).] 0.002 secs (0.001u,0.s) Chars 19881 - 19882 [-] 0. secs (0.u,0.s) Chars 19883 - 19901 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 19904 - 19905 [-] 0. secs (0.u,0.s) Chars 19906 - 19924 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19925 - 19929 [Qed.] 0.003 secs (0.003u,0.s) -Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0. secs (0.u,0.s) +Chars 19925 - 19929 [Qed.] 0.004 secs (0.003u,0.s) +Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0.001 secs (0.001u,0.s) Chars 20131 - 20137 [Proof.] 0. secs (0.u,0.s) Chars 20140 - 20147 [(intros).] 0. secs (0.u,0.s) Chars 20150 - 20160 [step~in~H.] 0. secs (0.u,0.s) -Chars 20161 - 20167 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 20161 - 20167 [(inv~H).] 0.002 secs (0.001u,0.s) Chars 20171 - 20188 [(exists~r2;~eauto).] 0. secs (0.u,0.s) Chars 20189 - 20193 [Qed.] 0.002 secs (0.002u,0.s) Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0.001 secs (0.001u,0.s) Chars 20468 - 20474 [Proof.] 0. secs (0.u,0.s) Chars 20477 - 20484 [(intros).] 0. secs (0.u,0.s) -Chars 20487 - 20494 [(sinv~H).] 0.004 secs (0.004u,0.s) +Chars 20487 - 20494 [(sinv~H).] 0.005 secs (0.005u,0.s) Chars 20498 - 20520 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) Chars 20523 - 20545 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) Chars 20548 - 20554 [subst.] 0. secs (0.u,0.s) Chars 20557 - 20567 [exists~ta.] 0. secs (0.u,0.s) Chars 20568 - 20578 [exists~k2.] 0. secs (0.u,0.s) Chars 20579 - 20591 [(split;~auto).] 0. secs (0.u,0.s) -Chars 20592 - 20596 [Qed.] 0.004 secs (0.003u,0.s) +Chars 20592 - 20596 [Qed.] 0.004 secs (0.004u,0.s) Chars 20598 - 20796 [Lemma~interp_iforest_tau_inv~:...] 0. secs (0.u,0.s) Chars 20797 - 20803 [Proof.] 0. secs (0.u,0.s) Chars 20806 - 20813 [(intros).] 0. secs (0.u,0.s) -Chars 20816 - 20823 [(sinv~H).] 0.001 secs (0.001u,0.s) -Chars 20825 - 20829 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.002 secs (0.001u,0.s) +Chars 20816 - 20823 [(sinv~H).] 0.002 secs (0.002u,0.s) +Chars 20825 - 20829 [Qed.] 0.002 secs (0.002u,0.s) +Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.003 secs (0.002u,0.s) Chars 21130 - 21136 [Proof.] 0. secs (0.u,0.s) Chars 21139 - 21182 [(intros~E1~E2~F~h1_spec~h2_spe...] 0. secs (0.u,0.s) Chars 21185 - 21213 [(unfold~handler_correct~in~*).] 0. secs (0.u,0.s) @@ -546,21 +546,21 @@ Chars 21216 - 21227 [(intros~T~e).] 0. secs (0.u,0.s) Chars 21230 - 21241 [(destruct~e).] 0. secs (0.u,0.s) Chars 21242 - 21251 [(apply~C1).] 0. secs (0.u,0.s) Chars 21252 - 21261 [(apply~C2).] 0. secs (0.u,0.s) -Chars 21262 - 21266 [Qed.] 0. secs (0.u,0.s) +Chars 21262 - 21266 [Qed.] 0.001 secs (0.001u,0.s) Chars 21268 - 21500 [Definition~iforest_compose~{F~...] 0. secs (0.u,0.s) Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0.001 secs (0.001u,0.s) -Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0. secs (0.u,0.s) +Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0.001 secs (0.u,0.s) Chars 21849 - 21993 [Definition~iter_cont~{I}~{E}~{...] 0. secs (0.u,0.s) Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) Chars 22317 - 22547 [Lemma~eqit_Leaf_bind'~{E}~{R}~...] 0. secs (0.u,0.s) Chars 22548 - 22554 [Proof.] 0. secs (0.u,0.s) Chars 22557 - 22564 [(intros).] 0. secs (0.u,0.s) -Chars 22565 - 22597 [(eapply~eqit_clo_bind_gen;~eau...] 0.004 secs (0.004u,0.s) +Chars 22565 - 22597 [(eapply~eqit_clo_bind_gen;~eau...] 0.005 secs (0.005u,0.s) Chars 22598 - 22612 [(intros;~subst).] 0. secs (0.u,0.s) Chars 22616 - 22626 [(eapply~H0).] 0. secs (0.u,0.s) Chars 22627 - 22633 [eauto.] 0. secs (0.u,0.s) Chars 22635 - 22639 [Qed.] 0.001 secs (0.001u,0.s) -Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0.001 secs (0.001u,0.s) +Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0. secs (0.u,0.s) Chars 22916 - 22922 [Proof.] 0. secs (0.u,0.s) Chars 22925 - 22932 [(intros).] 0. secs (0.u,0.s) Chars 22933 - 22965 [(eapply~eqit_clo_bind_gen;~eau...] 0.003 secs (0.003u,0.s) @@ -572,17 +572,17 @@ Chars 23009 - 23094 [Lemma~eutt_ret_vis_abs~:~~~for...] 0. secs (0.u,0.s) Chars 23095 - 23101 [Proof.] 0. secs (0.u,0.s) Chars 23104 - 23111 [(intros).] 0. secs (0.u,0.s) Chars 23114 - 23125 [now~sinv~H.] 0.002 secs (0.002u,0.s) -Chars 23127 - 23131 [Qed.] 0.002 secs (0.002u,0.s) +Chars 23127 - 23131 [Qed.] 0.003 secs (0.002u,0.s) Chars 23139 - 23218 [Ltac~simpl_iter~:=~unfold~iter...] 0. secs (0.u,0.s) -Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.004 secs (0.004u,0.s) -Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0. secs (0.u,0.s) -Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.002 secs (0.002u,0.s) +Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.005 secs (0.004u,0.s) +Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0.001 secs (0.001u,0.s) +Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.003 secs (0.003u,0.s) Chars 23925 - 23931 [Proof.] 0. secs (0.u,0.s) Chars 23934 - 23941 [(intros).] 0. secs (0.u,0.s) -Chars 23942 - 23965 [(rewrite~iter_dinatural).] 0.005 secs (0.005u,0.s) +Chars 23942 - 23965 [(rewrite~iter_dinatural).] 0.006 secs (0.006u,0.s) Chars 23966 - 23978 [reflexivity.] 0. secs (0.u,0.s) Chars 23979 - 23983 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.003 secs (0.003u,0.s) +Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.004 secs (0.004u,0.s) Chars 24680 - 24686 [Proof.] 0. secs (0.u,0.s) Chars 24689 - 24708 [(intros~a~b~m~x0~a1).] 0. secs (0.u,0.s) Chars 24711 - 24756 [(pose~proof~(iter_succ_dinatur...] 0. secs (0.u,0.s) @@ -592,7 +592,7 @@ Chars 24817 - 24857 [(unfold~cat~at~1,~Cat_Kleisli~...] 0. secs (0.u,0.s) Chars 24860 - 24979 [(match~goal~with~~|~H:(?body1~...] 0.002 secs (0.002u,0.s) Chars 24981 - 25000 [(assert~(s1~≈~s2)).] 0. secs (0.u,0.s) Chars 25001 - 25002 [{] 0. secs (0.u,0.s) -Chars 25007 - 25013 [subst.] 0. secs (0.u,0.s) +Chars 25007 - 25013 [subst.] 0.001 secs (0.u,0.s) Chars 25018 - 25171 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) Chars 25176 - 25205 [(assert~(iter~k1~⩯~iter~k2)).] 0.001 secs (0.001u,0.s) Chars 25206 - 25207 [{] 0. secs (0.u,0.s) @@ -607,31 +607,31 @@ Chars 25354 - 25368 [(do~3~red~in~H).] 0. secs (0.u,0.s) Chars 25373 - 25381 [(apply~H).] 0. secs (0.u,0.s) Chars 25384 - 25385 [}] 0. secs (0.u,0.s) Chars 25388 - 25401 [(rewrite~<-~H).] 0.002 secs (0.002u,0.s) -Chars 25402 - 25408 [subst.] 0.001 secs (0.001u,0.s) +Chars 25402 - 25408 [subst.] 0.002 secs (0.002u,0.s) Chars 25409 - 25417 [clear~H.] 0. secs (0.u,0.s) -Chars 25418 - 25429 [(rewrite~H0).] 0.003 secs (0.003u,0.s) +Chars 25418 - 25429 [(rewrite~H0).] 0.004 secs (0.003u,0.s) Chars 25432 - 25444 [(unfold~f,~g).] 0. secs (0.u,0.s) Chars 25447 - 25471 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 25472 - 25497 [(rewrite~Monad.bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 25472 - 25497 [(rewrite~Monad.bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 25500 - 25504 [(cbn).] 0. secs (0.u,0.s) Chars 25507 - 25615 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) Chars 25618 - 25647 [(assert~(iter~i1~⩯~iter~i2)).] 0.001 secs (0.001u,0.s) Chars 25648 - 25649 [{] 0. secs (0.u,0.s) Chars 25654 - 25683 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 25688 - 25694 [subst.] 0. secs (0.u,0.s) +Chars 25688 - 25694 [subst.] 0.001 secs (0.u,0.s) Chars 25699 - 25708 [(do~3~red).] 0. secs (0.u,0.s) Chars 25709 - 25716 [(intros).] 0. secs (0.u,0.s) Chars 25721 - 25733 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 25734 - 25757 [(rewrite~Eqit.bind_bind).] 0.003 secs (0.003u,0.s) +Chars 25734 - 25757 [(rewrite~Eqit.bind_bind).] 0.004 secs (0.004u,0.s) Chars 25762 - 25784 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 25785 - 25797 [reflexivity.] 0. secs (0.u,0.s) Chars 25802 - 25809 [(intros).] 0. secs (0.u,0.s) Chars 25810 - 25820 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 25821 - 25880 [(destruct~u2;~rewrite~Eqit.bin...] 0.007 secs (0.007u,0.s) +Chars 25821 - 25880 [(destruct~u2;~rewrite~Eqit.bin...] 0.01 secs (0.009u,0.s) Chars 25883 - 25884 [}] 0. secs (0.u,0.s) Chars 25887 - 25901 [(do~3~red~in~H).] 0. secs (0.u,0.s) Chars 25904 - 25912 [(apply~H).] 0. secs (0.u,0.s) -Chars 25913 - 25917 [Qed.] 0.013 secs (0.013u,0.s) +Chars 25913 - 25917 [Qed.] 0.016 secs (0.015u,0.s) Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0.001 secs (0.001u,0.s) Chars 26139 - 26240 [Lemma~Eq1_iforest'_Eq1_iforest...] 0. secs (0.u,0.s) Chars 26241 - 26247 [Proof.] 0. secs (0.u,0.s) @@ -656,7 +656,7 @@ Chars 26514 - 26524 [(apply~HXY).] 0. secs (0.u,0.s) Chars 26525 - 26537 [reflexivity.] 0. secs (0.u,0.s) Chars 26538 - 26549 [assumption.] 0. secs (0.u,0.s) Chars 26550 - 26554 [Qed.] 0.001 secs (0.001u,0.s) -Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0. secs (0.u,0.s) +Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0.001 secs (0.u,0.s) Chars 26740 - 26746 [Proof.] 0. secs (0.u,0.s) Chars 26749 - 26756 [(intros).] 0. secs (0.u,0.s) Chars 26759 - 26776 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) @@ -668,7 +668,7 @@ Chars 26840 - 26860 [(repeat~red~in~eqtt').] 0. secs (0.u,0.s) Chars 26867 - 26911 [(destruct~eqtt'~as~(ta,~(k,~(E...] 0. secs (0.u,0.s) Chars 26916 - 26917 [+] 0. secs (0.u,0.s) Chars 26918 - 26950 [(unfold~bind,~Monad_itree~in~E...] 0. secs (0.u,0.s) -Chars 26951 - 26991 [(rewrite~EQ1,~Eqit.bind_ret_l,...] 0.044 secs (0.043u,0.s) +Chars 26951 - 26991 [(rewrite~EQ1,~Eqit.bind_ret_l,...] 0.05 secs (0.049u,0.s) Chars 26998 - 27031 [(eapply~H;~[~apply~EQ2~|~apply...] 0. secs (0.u,0.s) Chars 27038 - 27050 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) Chars 27051 - 27070 [(constructor;~eauto).] 0. secs (0.u,0.s) @@ -696,7 +696,7 @@ Chars 27524 - 27535 [assumption.] 0. secs (0.u,0.s) Chars 27542 - 27544 [--] 0. secs (0.u,0.s) Chars 27545 - 27558 [(intros~?~RET).] 0. secs (0.u,0.s) Chars 27559 - 27592 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) -Chars 27593 - 27610 [(rewrite~EQ2,~EQ1).] 0.009 secs (0.009u,0.s) +Chars 27593 - 27610 [(rewrite~EQ2,~EQ1).] 0.011 secs (0.011u,0.s) Chars 27620 - 27624 [(cbn).] 0. secs (0.u,0.s) Chars 27625 - 27644 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 27645 - 27654 [(apply~KA).] 0. secs (0.u,0.s) @@ -712,7 +712,7 @@ Chars 27862 - 27874 [reflexivity.] 0. secs (0.u,0.s) Chars 27881 - 27883 [--] 0. secs (0.u,0.s) Chars 27884 - 27897 [(intros~?~RET).] 0. secs (0.u,0.s) Chars 27898 - 27931 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) -Chars 27932 - 27953 [(rewrite~EQ,~EQ2,~EQ1).] 0.014 secs (0.014u,0.s) +Chars 27932 - 27953 [(rewrite~EQ,~EQ2,~EQ1).] 0.016 secs (0.015u,0.s) Chars 27963 - 27967 [(cbn).] 0. secs (0.u,0.s) Chars 27968 - 27987 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 27988 - 27997 [(apply~KA).] 0. secs (0.u,0.s) @@ -758,7 +758,7 @@ Chars 28684 - 28696 [reflexivity.] 0. secs (0.u,0.s) Chars 28697 - 28708 [assumption.] 0. secs (0.u,0.s) Chars 28713 - 28714 [+] 0. secs (0.u,0.s) Chars 28715 - 28721 [split.] 0. secs (0.u,0.s) -Chars 28722 - 28734 [(rewrite~EQt).] 0. secs (0.u,0.s) +Chars 28722 - 28734 [(rewrite~EQt).] 0.001 secs (0.001u,0.s) Chars 28735 - 28746 [assumption.] 0. secs (0.u,0.s) Chars 28747 - 28754 [(intros).] 0. secs (0.u,0.s) Chars 28761 - 28779 [(repeat~red~in~EQK).] 0. secs (0.u,0.s) @@ -776,14 +776,14 @@ Chars 29045 - 29052 [(intros).] 0. secs (0.u,0.s) Chars 29055 - 29072 [(repeat~red~in~H0).] 0. secs (0.u,0.s) Chars 29075 - 29114 [(destruct~H0~as~(ta,~(k,~(HA,~...] 0. secs (0.u,0.s) Chars 29117 - 29130 [exists~ta,k.] 0. secs (0.u,0.s) -Chars 29131 - 29143 [(split;~auto).] 0.001 secs (0.u,0.s) +Chars 29131 - 29143 [(split;~auto).] 0.001 secs (0.001u,0.s) Chars 29144 - 29150 [split.] 0. secs (0.u,0.s) Chars 29151 - 29167 [(rewrite~H;~auto).] 0.001 secs (0.001u,0.s) Chars 29168 - 29179 [assumption.] 0. secs (0.u,0.s) Chars 29180 - 29184 [Qed.] 0.001 secs (0.001u,0.s) Chars 29186 - 29259 [#[local]~Notation~agrees_itree...] 0. secs (0.u,0.s) Chars 29261 - 29506 [Definition~bind_stronger~{E}~{...] 0.001 secs (0.001u,0.s) -Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0.001 secs (0.001u,0.s) +Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0. secs (0.u,0.s) Chars 29681 - 29687 [Proof.] 0. secs (0.u,0.s) Chars 29690 - 29704 [(split;~intros).] 0. secs (0.u,0.s) Chars 29707 - 29708 [-] 0. secs (0.u,0.s) @@ -800,16 +800,16 @@ Chars 29819 - 29827 [(apply~H).] 0. secs (0.u,0.s) Chars 29828 - 29839 [assumption.] 0. secs (0.u,0.s) Chars 29842 - 29843 [-] 0. secs (0.u,0.s) Chars 29844 - 29853 [revert~H.] 0. secs (0.u,0.s) -Chars 29858 - 29920 [(induction~H0;~cbn;~unfold~ITr...] 0.086 secs (0.085u,0.001s) +Chars 29858 - 29920 [(induction~H0;~cbn;~unfold~ITr...] 0.097 secs (0.096u,0.s) Chars 29925 - 29926 [+] 0. secs (0.u,0.s) Chars 29927 - 29963 [(intros~H';~apply~eqit_inv_Ret...] 0. secs (0.u,0.s) Chars 29964 - 29969 [auto.] 0. secs (0.u,0.s) Chars 29974 - 29975 [+] 0. secs (0.u,0.s) -Chars 29976 - 30009 [(rewrite~2!tau_eutt;~apply~IHL...] 0.026 secs (0.025u,0.s) +Chars 29976 - 30009 [(rewrite~2!tau_eutt;~apply~IHL...] 0.029 secs (0.029u,0.s) Chars 30014 - 30015 [+] 0. secs (0.u,0.s) Chars 30016 - 30053 [(intros~H';~eapply~eqit_inv_Vi...] 0. secs (0.u,0.s) Chars 30054 - 30060 [eauto.] 0. secs (0.u,0.s) -Chars 30061 - 30065 [Qed.] 0.007 secs (0.006u,0.s) +Chars 30061 - 30065 [Qed.] 0.007 secs (0.007u,0.s) Chars 30067 - 30279 [Lemma~distinguish_bind~{E}~{A}...] 0. secs (0.u,0.s) Chars 30280 - 30286 [Proof.] 0. secs (0.u,0.s) Chars 30289 - 30339 [(intros~HI;~eapply~eqit_bind_L...] 0. secs (0.u,0.s) @@ -819,20 +819,20 @@ Chars 30503 - 30509 [Proof.] 0. secs (0.u,0.s) Chars 30512 - 30541 [(intros~[b]~ta~[tb~HK]~a~HRet).] 0. secs (0.u,0.s) Chars 30542 - 30585 [(revert~tb~HK;~induction~HRet;...] 0. secs (0.u,0.s) Chars 30588 - 30589 [-] 0. secs (0.u,0.s) -Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.011 secs (0.011u,0.s) +Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.012 secs (0.012u,0.s) Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.003 secs (0.003u,0.s) Chars 30652 - 30690 [(generalize~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) -Chars 30691 - 30721 [(rewrite~(HK~(fun~_~=>~ret~b))).] 0.011 secs (0.011u,0.s) +Chars 30691 - 30721 [(rewrite~(HK~(fun~_~=>~ret~b))).] 0.013 secs (0.013u,0.s) Chars 30726 - 30750 [(apply~eutt_Ret_spin_abs).] 0. secs (0.u,0.s) Chars 30753 - 30754 [-] 0. secs (0.u,0.s) Chars 30755 - 30774 [(eapply~(IHHRet~tb)).] 0. secs (0.u,0.s) Chars 30775 - 30803 [(intros~k;~specialize~(HK~k)).] 0. secs (0.u,0.s) Chars 30808 - 30818 [(cbn~in~HK).] 0. secs (0.u,0.s) -Chars 30819 - 30848 [(rewrite~unfold_bind,~H~in~HK).] 0.027 secs (0.027u,0.s) +Chars 30819 - 30848 [(rewrite~unfold_bind,~H~in~HK).] 0.028 secs (0.028u,0.s) Chars 30849 - 30872 [(rewrite~tau_eutt~in~HK).] 0. secs (0.u,0.s) Chars 30873 - 30878 [auto.] 0. secs (0.u,0.s) Chars 30881 - 30882 [-] 0. secs (0.u,0.s) -Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.012 secs (0.012u,0.s) +Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.011 secs (0.011u,0.s) Chars 30917 - 30951 [(setoid_rewrite~H~in~HK;~clear...] 0.003 secs (0.003u,0.s) Chars 30956 - 30996 [(pose~proof~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) Chars 31001 - 31057 [(apply~(IHHRet~(ITree.bind~(k~...] 0. secs (0.u,0.s) @@ -928,10 +928,10 @@ Chars 33157 - 33168 [(repeat~red).] 0. secs (0.u,0.s) Chars 33171 - 33193 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 33196 - 33197 [-] 0. secs (0.u,0.s) Chars 33199 - 33213 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) -Chars 33214 - 33228 [(rewrite~<-~H1).] 0.001 secs (0.001u,0.s) +Chars 33214 - 33228 [(rewrite~<-~H1).] 0.002 secs (0.002u,0.s) Chars 33234 - 33246 [clear~H0~H1.] 0. secs (0.u,0.s) Chars 33252 - 33263 [(destruct~H).] 0. secs (0.u,0.s) -Chars 33269 - 33293 [(eapply~eqit_mono;~eauto).] 0.002 secs (0.001u,0.s) +Chars 33269 - 33293 [(eapply~eqit_mono;~eauto).] 0.002 secs (0.002u,0.s) Chars 33296 - 33297 [-] 0. secs (0.u,0.s) Chars 33298 - 33313 [(rewrite~H0,~H1).] 0.002 secs (0.002u,0.s) Chars 33318 - 33329 [(destruct~H).] 0. secs (0.u,0.s) @@ -948,7 +948,7 @@ Chars 33550 - 33563 [econstructor.] 0. secs (0.u,0.s) Chars 33564 - 33574 [(apply~HEQ).] 0. secs (0.u,0.s) Chars 33575 - 33579 [(red).] 0. secs (0.u,0.s) Chars 33580 - 33592 [(split;~auto).] 0. secs (0.u,0.s) -Chars 33598 - 33616 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) +Chars 33598 - 33616 [(rewrite~itree_eta).] 0.003 secs (0.002u,0.s) Chars 33617 - 33629 [(rewrite~hta).] 0. secs (0.u,0.s) Chars 33630 - 33646 [now~constructor.] 0. secs (0.u,0.s) Chars 33650 - 33651 [-] 0. secs (0.u,0.s) @@ -969,13 +969,13 @@ Chars 33827 - 33850 [(rewrite~itree_eta,~hta).] 0.002 secs (0.002u,0.s) Chars 33855 - 33866 [(destruct~H).] 0. secs (0.u,0.s) Chars 33871 - 33883 [(split;~auto).] 0. secs (0.u,0.s) Chars 33888 - 33910 [(econstructor~3;~eauto).] 0. secs (0.u,0.s) -Chars 33912 - 33916 [Qed.] 0.005 secs (0.005u,0.s) +Chars 33912 - 33916 [Qed.] 0.006 secs (0.005u,0.s) Chars 33918 - 33996 [Lemma~eutt_EQ_REL_Reflexive~{E...] 0. secs (0.u,0.s) Chars 33997 - 34003 [Proof.] 0. secs (0.u,0.s) Chars 34006 - 34039 [now~apply~eutt_EQ_REL_Reflexive_.] 0. secs (0.u,0.s) Chars 34041 - 34045 [Qed.] 0. secs (0.u,0.s) Chars 34047 - 34146 [Definition~RET_EQ~{E}~{A}~(ta~...] 0. secs (0.u,0.s) -Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.002 secs (0.001u,0.s) Chars 34539 - 34545 [Proof.] 0. secs (0.u,0.s) Chars 34577 - 34622 [(intros~E~A~B~C~PA~KB~KC~PQOK~...] 0. secs (0.u,0.s) Chars 34629 - 34642 [(red~in~eqtt').] 0. secs (0.u,0.s) @@ -990,7 +990,7 @@ Chars 34856 - 34886 [(setoid_rewrite~EQc;~clear~EQc).] 0.003 secs (0.003u,0.s) Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.002 secs (0.002u,0.s) Chars 34915 - 34957 [(setoid_rewrite~EQb~in~HRkbc;~...] 0.002 secs (0.002u,0.s) Chars 34966 - 34991 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 35000 - 35023 [(rewrite~Eqit.bind_bind).] 0. secs (0.u,0.s) +Chars 35000 - 35023 [(rewrite~Eqit.bind_bind).] 0.001 secs (0.001u,0.s) Chars 35024 - 35036 [reflexivity.] 0. secs (0.u,0.s) Chars 35043 - 35044 [*] 0. secs (0.u,0.s) Chars 35045 - 35059 [(intros~a~HRet).] 0. secs (0.u,0.s) @@ -1003,19 +1003,19 @@ Chars 35154 - 35168 [(intros~b~HRET).] 0. secs (0.u,0.s) Chars 35169 - 35181 [(apply~HRkbc).] 0. secs (0.u,0.s) Chars 35182 - 35194 [(rewrite~EQb).] 0.002 secs (0.002u,0.s) Chars 35195 - 35219 [(eapply~Leaf_bind;~eauto).] 0. secs (0.u,0.s) -Chars 35220 - 35224 [Qed.] 0.003 secs (0.003u,0.s) +Chars 35220 - 35224 [Qed.] 0.004 secs (0.004u,0.s) Chars 35226 - 35258 [Module~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) Chars 35262 - 35312 [Inductive~ND~:~Type~->~Prop~:=...] 0. secs (0.u,0.s) Chars 35316 - 35399 [Definition~PA~:~iforest~ND~boo...] 0. secs (0.u,0.s) Chars 35403 - 35462 [Definition~KB~:~bool~->~ifores...] 0. secs (0.u,0.s) -Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0. secs (0.u,0.s) +Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0.001 secs (0.001u,0.s) Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.001 secs (0.001u,0.s) Chars 35958 - 36019 [Lemma~bind_right_assoc~:~bind~...] 0. secs (0.u,0.s) Chars 36022 - 36028 [Proof.] 0. secs (0.u,0.s) Chars 36033 - 36044 [(repeat~red).] 0. secs (0.u,0.s) Chars 36049 - 36071 [exists~(trigger~Pick).] 0. secs (0.u,0.s) Chars 36076 - 36293 [exists~~~~(fun~b~:~bool~=>~~~~...] 0.001 secs (0.001u,0.s) -Chars 36298 - 36310 [(split;~auto).] 0. secs (0.u,0.s) +Chars 36298 - 36310 [(split;~auto).] 0.001 secs (0.u,0.s) Chars 36315 - 36319 [(red).] 0. secs (0.u,0.s) Chars 36320 - 36332 [reflexivity.] 0. secs (0.u,0.s) Chars 36337 - 36343 [split.] 0. secs (0.u,0.s) @@ -1057,14 +1057,14 @@ Chars 36927 - 36943 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 36948 - 36989 [(destruct~H~as~(ta,~(k,~(HB,~(...] 0. secs (0.u,0.s) Chars 36994 - 37039 [(destruct~HB~as~(tb,~(kb,~(HX,...] 0. secs (0.u,0.s) Chars 37044 - 37054 [(red~in~HX).] 0. secs (0.u,0.s) -Chars 37059 - 37075 [(rewrite~HX~in~*).] 0.001 secs (0.001u,0.s) +Chars 37059 - 37075 [(rewrite~HX~in~*).] 0.003 secs (0.002u,0.s) Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.002 secs (0.002u,0.s) Chars 37112 - 37124 [clear~tb~HX.] 0. secs (0.u,0.s) -Chars 37129 - 37149 [(rewrite~HEQ'~in~HEQ).] 0.001 secs (0.001u,0.s) +Chars 37129 - 37149 [(rewrite~HEQ'~in~HEQ).] 0.002 secs (0.001u,0.s) Chars 37154 - 37170 [(unfold~t~in~HEQ).] 0. secs (0.u,0.s) Chars 37175 - 37207 [(unfold~bind,~Monad_itree~in~H...] 0. secs (0.u,0.s) -Chars 37212 - 37242 [(rewrite~Eqit.bind_bind~in~HEQ).] 0.005 secs (0.005u,0.s) -Chars 37247 - 37576 [(assert~~~(forall~r,~~~~Leaf~r...] 0.001 secs (0.001u,0.s) +Chars 37212 - 37242 [(rewrite~Eqit.bind_bind~in~HEQ).] 0.007 secs (0.006u,0.s) +Chars 37247 - 37576 [(assert~~~(forall~r,~~~~Leaf~r...] 0.002 secs (0.002u,0.s) Chars 37581 - 37606 [(apply~eqit_bind_Leaf_inv).] 0. secs (0.u,0.s) Chars 37607 - 37617 [(apply~HEQ).] 0. secs (0.u,0.s) Chars 37622 - 37662 [(assert~(Leaf~true~(ITree.trig...] 0. secs (0.u,0.s) @@ -1107,8 +1107,8 @@ Chars 38212 - 38222 [(red~in~H2).] 0. secs (0.u,0.s) Chars 38223 - 38233 [(red~in~H3).] 0. secs (0.u,0.s) Chars 38234 - 38244 [(red~in~H2).] 0. secs (0.u,0.s) Chars 38245 - 38255 [(red~in~H3).] 0. secs (0.u,0.s) -Chars 38260 - 38277 [(rewrite~H2~in~H0).] 0.001 secs (0.001u,0.s) -Chars 38282 - 38299 [(rewrite~H3~in~H1).] 0.001 secs (0.001u,0.s) +Chars 38260 - 38277 [(rewrite~H2~in~H0).] 0.002 secs (0.002u,0.s) +Chars 38282 - 38299 [(rewrite~H3~in~H1).] 0.002 secs (0.002u,0.s) Chars 38304 - 38324 [(rewrite~<-~H0~in~H1).] 0.001 secs (0.001u,0.s) Chars 38329 - 38378 [(apply~eqit_bind_Leaf_inv~with...] 0. secs (0.u,0.s) Chars 38383 - 38408 [(apply~eqit_inv_Ret~in~H1).] 0. secs (0.u,0.s) @@ -1120,7 +1120,7 @@ Chars 38461 - 38473 [reflexivity.] 0. secs (0.u,0.s) Chars 38474 - 38488 [constructor~1.] 0. secs (0.u,0.s) Chars 38489 - 38501 [reflexivity.] 0. secs (0.u,0.s) Chars 38502 - 38503 [}] 0. secs (0.u,0.s) -Chars 38504 - 38508 [Qed.] 0.004 secs (0.004u,0.s) +Chars 38504 - 38508 [Qed.] 0.006 secs (0.005u,0.s) Chars 38510 - 38622 [Lemma~bind_bind_counterexample...] 0. secs (0.u,0.s) Chars 38623 - 38629 [Proof.] 0. secs (0.u,0.s) Chars 38632 - 38641 [exists~t.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceBind.v.timing b/extra/ITrace/ITraceBind.v.timing new file mode 100644 index 00000000..e5ab84ce --- /dev/null +++ b/extra/ITrace/ITraceBind.v.timing @@ -0,0 +1,2114 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 39 - 82 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 84 - 221 [From~ITree~Require~Import~Basi...] 0.227 secs (0.198u,0.028s) +Chars 223 - 334 [From~ITree.Extra~Require~Impor...] 0.017 secs (0.014u,0.002s) +Chars 336 - 350 [Import~Monads.] 0. secs (0.u,0.s) +Chars 351 - 372 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 373 - 402 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 404 - 470 [#[local]~Tactic~Notation~"simp...] 0. secs (0.u,0.s) +Chars 621 - 634 [Section~Peel.] 0. secs (0.u,0.s) +Chars 635 - 692 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) +Chars 694 - 888 [Definition~peel_vis~{E}~{R}~{S...] 0. secs (0.u,0.s) +Chars 889 - 895 [Proof.] 0. secs (0.u,0.s) +Chars 898 - 926 [(destruct~(classicT~(A~=~B))).] 0. secs (0.u,0.s) +Chars 929 - 930 [-] 0. secs (0.u,0.s) +Chars 931 - 937 [subst.] 0. secs (0.u,0.s) +Chars 938 - 1019 [(apply~~~(Vis~(evans~_~e0~a)~(...] 0. secs (0.u,0.s) +Chars 1022 - 1023 [-] 0. secs (0.u,0.s) +Chars 1024 - 1041 [(apply~ITree.spin).] 0. secs (0.u,0.s) +Chars 1042 - 1050 [Defined.] 0.001 secs (0.u,0.s) +Chars 1052 - 1645 [CoFixpoint~peel_~{E}~{R}~{S}~(...] 0.004 secs (0.003u,0.s) +Chars 1647 - 1752 [Definition~peel~{E}~{R}~{S}~(b...] 0. secs (0.u,0.s) +Chars 1787 - 1986 [Definition~peel_cont_vis~{E}~{...] 0. secs (0.u,0.s) +Chars 1987 - 1993 [Proof.] 0. secs (0.u,0.s) +Chars 1996 - 2025 [(destruct~(classicT~(A~=~B))).] 0. secs (0.u,0.s) +Chars 2028 - 2029 [-] 0. secs (0.u,0.s) +Chars 2030 - 2036 [subst.] 0. secs (0.u,0.s) +Chars 2037 - 2094 [(apply~(Tau~(peel~(observe~(k0...] 0. secs (0.u,0.s) +Chars 2097 - 2098 [-] 0. secs (0.u,0.s) +Chars 2099 - 2116 [(apply~ITree.spin).] 0. secs (0.u,0.s) +Chars 2117 - 2125 [Defined.] 0. secs (0.u,0.s) +Chars 2209 - 2815 [CoFixpoint~peel_cont_~{E}~{R}~...] 0.003 secs (0.002u,0.s) +Chars 2817 - 2946 [Definition~peel_cont~{E}~{R}~{...] 0. secs (0.u,0.s) +Chars 2948 - 3113 [Lemma~refine_ret_vis_contra~:~...] 0.033 secs (0.029u,0.003s) +Chars 3114 - 3120 [Proof.] 0. secs (0.u,0.s) +Chars 3123 - 3130 [(intros).] 0. secs (0.u,0.s) +Chars 3131 - 3145 [intro~Hcontra.] 0. secs (0.u,0.s) +Chars 3146 - 3159 [sinv~Hcontra.] 0.002 secs (0.002u,0.s) +Chars 3160 - 3164 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3304 - 3408 [Lemma~peel_t_ret~:~~~forall~E~...] 0. secs (0.u,0.s) +Chars 3409 - 3415 [Proof.] 0. secs (0.u,0.s) +Chars 3418 - 3425 [(intros).] 0. secs (0.u,0.s) +Chars 3427 - 3439 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 3442 - 3471 [(sinv~H;~subst;~try~inv~CHECK).] 0.01 secs (0.01u,0.s) +Chars 3474 - 3506 [(destruct~(observe~b);~cbn;~au...] 0.001 secs (0.001u,0.s) +Chars 3509 - 3510 [-] 0. secs (0.u,0.s) +Chars 3511 - 3516 [step.] 0.002 secs (0.002u,0.s) +Chars 3517 - 3521 [(cbn).] 0. secs (0.u,0.s) +Chars 3522 - 3534 [constructor.] 0. secs (0.u,0.s) +Chars 3535 - 3540 [auto.] 0. secs (0.u,0.s) +Chars 3543 - 3544 [-] 0. secs (0.u,0.s) +Chars 3545 - 3550 [step.] 0.001 secs (0.001u,0.s) +Chars 3551 - 3555 [(cbn).] 0. secs (0.u,0.s) +Chars 3556 - 3574 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 3577 - 3578 [-] 0. secs (0.u,0.s) +Chars 3579 - 3584 [step.] 0.001 secs (0.001u,0.s) +Chars 3585 - 3589 [(cbn).] 0. secs (0.u,0.s) +Chars 3590 - 3596 [(simpl).] 0. secs (0.u,0.s) +Chars 3597 - 3608 [(destruct~e).] 0. secs (0.u,0.s) +Chars 3613 - 3614 [+] 0. secs (0.u,0.s) +Chars 3615 - 3619 [(cbn).] 0. secs (0.u,0.s) +Chars 3620 - 3632 [constructor.] 0. secs (0.u,0.s) +Chars 3633 - 3638 [auto.] 0. secs (0.u,0.s) +Chars 3643 - 3644 [+] 0. secs (0.u,0.s) +Chars 3645 - 3649 [(cbn).] 0. secs (0.u,0.s) +Chars 3650 - 3662 [constructor.] 0. secs (0.u,0.s) +Chars 3663 - 3668 [auto.] 0. secs (0.u,0.s) +Chars 3669 - 3673 [Qed.] 0.052 secs (0.052u,0.s) +Chars 3750 - 3964 [Lemma~peel_refine_t~:~~~forall...] 0. secs (0.u,0.s) +Chars 3965 - 3971 [Proof.] 0. secs (0.u,0.s) +Chars 3974 - 3993 [(intros~E~R~S~b~t~f).] 0. secs (0.u,0.s) +Chars 3994 - 4017 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 4018 - 4041 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 4044 - 4063 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4064 - 4071 [(intros).] 0. secs (0.u,0.s) +Chars 4074 - 4088 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 4089 - 4102 [(cbn~in~Hrutt).] 0. secs (0.u,0.s) +Chars 4106 - 4118 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 4121 - 4152 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) +Chars 4155 - 4156 [-] 0. secs (0.u,0.s) +Chars 4157 - 4208 [(destruct~(observe~b);~cbn;~tr...] 0.001 secs (0.001u,0.s) +Chars 4213 - 4248 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) +Chars 4251 - 4252 [-] 0. secs (0.u,0.s) +Chars 4253 - 4279 [dependent~induction~Hrutt.] 0.061 secs (0.06u,0.001s) +Chars 4284 - 4285 [+] 0. secs (0.u,0.s) +Chars 4286 - 4294 [exfalso.] 0. secs (0.u,0.s) +Chars 4295 - 4311 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4312 - 4333 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4334 - 4353 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 4360 - 4377 [(rewrite~Heq~in~x).] 0.022 secs (0.021u,0.001s) +Chars 4378 - 4400 [(rewrite~bind_tau~in~x).] 0.019 secs (0.019u,0.s) +Chars 4401 - 4408 [sinv~x.] 0.006 secs (0.006u,0.s) +Chars 4413 - 4414 [+] 0. secs (0.u,0.s) +Chars 4415 - 4423 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 4424 - 4428 [(cbn).] 0. secs (0.u,0.s) +Chars 4429 - 4441 [constructor.] 0. secs (0.u,0.s) +Chars 4442 - 4453 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 4461 - 4477 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4478 - 4498 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) +Chars 4505 - 4524 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 4525 - 4546 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4553 - 4577 [(apply~eq_sub_eutt~in~x0).] 0. secs (0.u,0.s) +Chars 4578 - 4603 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 4610 - 4634 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 4635 - 4658 [(rewrite~tau_eutt~in~x0).] 0. secs (0.u,0.s) +Chars 4665 - 4680 [(rewrite~<-~Heq).] 0.005 secs (0.004u,0.s) +Chars 4681 - 4691 [(rewrite~x).] 0.003 secs (0.003u,0.s) +Chars 4692 - 4709 [(rewrite~tau_eutt).] 0.003 secs (0.003u,0.s) +Chars 4710 - 4715 [auto.] 0. secs (0.u,0.s) +Chars 4720 - 4721 [+] 0. secs (0.u,0.s) +Chars 4722 - 4730 [exfalso.] 0. secs (0.u,0.s) +Chars 4731 - 4747 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4748 - 4769 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4776 - 4795 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 4802 - 4819 [(rewrite~Heq~in~x).] 0.017 secs (0.017u,0.s) +Chars 4820 - 4842 [(rewrite~bind_tau~in~x).] 0.017 secs (0.017u,0.s) +Chars 4843 - 4850 [sinv~x.] 0.007 secs (0.007u,0.s) +Chars 4855 - 4856 [+] 0. secs (0.u,0.s) +Chars 4857 - 4865 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 4866 - 4870 [(cbn).] 0. secs (0.u,0.s) +Chars 4871 - 4883 [constructor.] 0. secs (0.u,0.s) +Chars 4884 - 4895 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 4902 - 4916 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 4917 - 4933 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4934 - 4955 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4962 - 4987 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 4988 - 5012 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5019 - 5034 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) +Chars 5035 - 5040 [step.] 0.001 secs (0.001u,0.s) +Chars 5041 - 5046 [auto.] 0. secs (0.u,0.s) +Chars 5051 - 5052 [+] 0. secs (0.u,0.s) +Chars 5053 - 5057 [(cbn).] 0. secs (0.u,0.s) +Chars 5058 - 5090 [(destruct~(observe~b)~eqn:Heq').] 0.004 secs (0.004u,0.s) +Chars 5097 - 5098 [*] 0. secs (0.u,0.s) +Chars 5099 - 5103 [(cbn).] 0. secs (0.u,0.s) +Chars 5104 - 5120 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 5121 - 5133 [constructor.] 0. secs (0.u,0.s) +Chars 5134 - 5145 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5154 - 5171 [symmetry~in~Heq'.] 0. secs (0.u,0.s) +Chars 5180 - 5202 [(apply~simpobs~in~Heq').] 0. secs (0.u,0.s) +Chars 5203 - 5216 [(rewrite~Heq').] 0.004 secs (0.004u,0.s) +Chars 5225 - 5241 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 5242 - 5263 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 5272 - 5297 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5298 - 5322 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5331 - 5346 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) +Chars 5347 - 5366 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 5367 - 5377 [(rewrite~x).] 0.004 secs (0.004u,0.s) +Chars 5386 - 5403 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) +Chars 5404 - 5409 [step.] 0.001 secs (0.001u,0.s) +Chars 5410 - 5415 [auto.] 0. secs (0.u,0.s) +Chars 5422 - 5423 [*] 0. secs (0.u,0.s) +Chars 5424 - 5428 [(cbn).] 0. secs (0.u,0.s) +Chars 5429 - 5443 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 5452 - 5464 [constructor.] 0. secs (0.u,0.s) +Chars 5465 - 5476 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5486 - 5502 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 5503 - 5524 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 5533 - 5558 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5559 - 5583 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5592 - 5607 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) +Chars 5616 - 5635 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 5636 - 5659 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) +Chars 5668 - 5690 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) +Chars 5691 - 5701 [(rewrite~x).] 0.003 secs (0.003u,0.s) +Chars 5710 - 5733 [(enough~(Tau~t1~⊑~t2)).] 0. secs (0.u,0.s) +Chars 5742 - 5743 [{] 0. secs (0.u,0.s) +Chars 5744 - 5766 [(rewrite~tau_eutt~in~H).] 0.003 secs (0.003u,0.s) +Chars 5767 - 5772 [auto.] 0. secs (0.u,0.s) +Chars 5773 - 5774 [}] 0. secs (0.u,0.s) +Chars 5783 - 5788 [step.] 0.001 secs (0.001u,0.s) +Chars 5789 - 5794 [auto.] 0. secs (0.u,0.s) +Chars 5801 - 5802 [*] 0. secs (0.u,0.s) +Chars 5803 - 5819 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 5828 - 5830 [++] 0. secs (0.u,0.s) +Chars 5831 - 5843 [constructor.] 0. secs (0.u,0.s) +Chars 5844 - 5860 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 5861 - 5875 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 5887 - 5898 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5899 - 5915 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 5927 - 5948 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 5949 - 5974 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5986 - 6010 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 6011 - 6030 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6042 - 6065 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6066 - 6088 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6100 - 6115 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) +Chars 6116 - 6126 [(rewrite~x).] 0.005 secs (0.005u,0.s) +Chars 6127 - 6132 [step.] 0.001 secs (0.001u,0.s) +Chars 6145 - 6158 [(rewrite~Heq').] 0. secs (0.u,0.s) +Chars 6159 - 6164 [auto.] 0. secs (0.u,0.s) +Chars 6173 - 6175 [++] 0. secs (0.u,0.s) +Chars 6176 - 6188 [constructor.] 0. secs (0.u,0.s) +Chars 6189 - 6205 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 6206 - 6220 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 6232 - 6243 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 6244 - 6260 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6272 - 6293 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6294 - 6319 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 6331 - 6355 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 6356 - 6375 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6387 - 6410 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6411 - 6433 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6445 - 6460 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) +Chars 6461 - 6471 [(rewrite~x).] 0.004 secs (0.004u,0.s) +Chars 6472 - 6477 [step.] 0.001 secs (0.001u,0.s) +Chars 6490 - 6503 [(rewrite~Heq').] 0. secs (0.u,0.s) +Chars 6504 - 6509 [auto.] 0. secs (0.u,0.s) +Chars 6512 - 6513 [-] 0. secs (0.u,0.s) +Chars 6514 - 6540 [dependent~induction~Hrutt.] 0.064 secs (0.063u,0.s) +Chars 6545 - 6546 [+] 0. secs (0.u,0.s) +Chars 6547 - 6555 [exfalso.] 0. secs (0.u,0.s) +Chars 6556 - 6572 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6573 - 6594 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6595 - 6614 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6621 - 6638 [(rewrite~Heq~in~x).] 0.02 secs (0.02u,0.s) +Chars 6639 - 6661 [(rewrite~bind_vis~in~x).] 0.016 secs (0.016u,0.s) +Chars 6668 - 6675 [sinv~x.] 0.003 secs (0.003u,0.s) +Chars 6680 - 6681 [+] 0. secs (0.u,0.s) +Chars 6682 - 6690 [exfalso.] 0. secs (0.u,0.s) +Chars 6691 - 6707 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6708 - 6729 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6730 - 6749 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6756 - 6773 [(rewrite~Heq~in~x).] 0.018 secs (0.017u,0.s) +Chars 6774 - 6796 [(rewrite~bind_vis~in~x).] 0.017 secs (0.016u,0.s) +Chars 6803 - 6821 [(sinv~x;~inv~CHECK).] 0.006 secs (0.006u,0.s) +Chars 6826 - 6827 [+] 0. secs (0.u,0.s) +Chars 6828 - 6836 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 6843 - 6859 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6860 - 6881 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6882 - 6901 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6908 - 6925 [(rewrite~Heq~in~x).] 0.017 secs (0.016u,0.s) +Chars 6926 - 6948 [(rewrite~bind_vis~in~x).] 0.016 secs (0.016u,0.s) +Chars 6949 - 6972 [(step~in~x;~inversion~x).] 0.006 secs (0.005u,0.s) +Chars 6980 - 6993 [ddestruction.] 0.006 secs (0.006u,0.s) +Chars 6994 - 7020 [(inversion~H;~ddestruction).] 0.019 secs (0.019u,0.s) +Chars 7027 - 7028 [*] 0. secs (0.u,0.s) +Chars 7029 - 7044 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 7045 - 7049 [(cbn).] 0. secs (0.u,0.s) +Chars 7050 - 7066 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 7075 - 7123 [(destruct~(classicT~(B~=~B));~...] 0.001 secs (0.001u,0.s) +Chars 7132 - 7158 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 7167 - 7193 [(remember~(eq_sym~_)~as~He).] 0.002 secs (0.002u,0.s) +Chars 7194 - 7206 [clear~HeqHe.] 0. secs (0.u,0.s) +Chars 7215 - 7240 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) +Chars 7241 - 7245 [(cbn).] 0. secs (0.u,0.s) +Chars 7246 - 7265 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7274 - 7281 [(intros).] 0. secs (0.u,0.s) +Chars 7282 - 7295 [(inversion~H1).] 0.003 secs (0.003u,0.s) +Chars 7296 - 7309 [ddestruction.] 0.007 secs (0.006u,0.s) +Chars 7318 - 7333 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 7335 - 7345 [(unfold~id).] 0. secs (0.u,0.s) +Chars 7346 - 7357 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7367 - 7377 [(cbn~in~x1).] 0. secs (0.u,0.s) +Chars 7378 - 7391 [(inversion~x1).] 0.002 secs (0.002u,0.s) +Chars 7392 - 7405 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 7414 - 7447 [specialize~(H0~tt~a~(rar~_~_~_)).] 0. secs (0.u,0.s) +Chars 7456 - 7476 [specialize~(REL0~a).] 0. secs (0.u,0.s) +Chars 7486 - 7499 [(rewrite~REL0).] 0.004 secs (0.004u,0.s) +Chars 7500 - 7509 [(apply~H0).] 0. secs (0.u,0.s) +Chars 7516 - 7517 [*] 0. secs (0.u,0.s) +Chars 7518 - 7522 [(cbn).] 0. secs (0.u,0.s) +Chars 7523 - 7542 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7543 - 7550 [(intros).] 0. secs (0.u,0.s) +Chars 7551 - 7565 [contradiction.] 0. secs (0.u,0.s) +Chars 7570 - 7571 [+] 0. secs (0.u,0.s) +Chars 7572 - 7580 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 7581 - 7585 [(cbn).] 0. secs (0.u,0.s) +Chars 7586 - 7598 [constructor.] 0. secs (0.u,0.s) +Chars 7599 - 7621 [(eapply~IHHrutt;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7626 - 7627 [+] 0. secs (0.u,0.s) +Chars 7628 - 7636 [exfalso.] 0. secs (0.u,0.s) +Chars 7637 - 7653 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 7654 - 7673 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 7674 - 7695 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 7702 - 7719 [(rewrite~Heq~in~x).] 0.02 secs (0.019u,0.s) +Chars 7720 - 7742 [(rewrite~bind_vis~in~x).] 0.02 secs (0.019u,0.s) +Chars 7749 - 7756 [sinv~x.] 0.007 secs (0.007u,0.s) +Chars 7757 - 7761 [Qed.] 0.233 secs (0.229u,0.002s) +Chars 7763 - 7839 [Lemma~not_spin_eutt_ret~:~fora...] 0. secs (0.u,0.s) +Chars 7840 - 7846 [Proof.] 0. secs (0.u,0.s) +Chars 7849 - 7856 [(intros).] 0. secs (0.u,0.s) +Chars 7857 - 7872 [(intros~Hcontra).] 0. secs (0.u,0.s) +Chars 7873 - 7913 [specialize~(@spin_infinite~E~R...] 0. secs (0.u,0.s) +Chars 7916 - 7940 [(rewrite~Hcontra~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 7941 - 7951 [sinv~Hdiv.] 0. secs (0.u,0.s) +Chars 7952 - 7956 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7959 - 8138 [Lemma~proper_peel_eutt_l~:~~~f...] 0. secs (0.u,0.s) +Chars 8139 - 8145 [Proof.] 0. secs (0.u,0.s) +Chars 8148 - 8161 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 8162 - 8181 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 8182 - 8189 [(intros).] 0. secs (0.u,0.s) +Chars 8190 - 8202 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 8205 - 8226 [(destruct~(observe~t)).] 0. secs (0.u,0.s) +Chars 8229 - 8230 [-] 0. secs (0.u,0.s) +Chars 8231 - 8365 [(destruct~(observe~b);~destruc...] 0.016 secs (0.016u,0.s) +Chars 8368 - 8369 [-] 0. secs (0.u,0.s) +Chars 8370 - 8380 [step~in~H.] 0. secs (0.u,0.s) +Chars 8381 - 8403 [dependent~induction~H.] 0.058 secs (0.057u,0.s) +Chars 8408 - 8409 [+] 0. secs (0.u,0.s) +Chars 8410 - 8418 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 8419 - 8431 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8437 - 8438 [+] 0. secs (0.u,0.s) +Chars 8439 - 8447 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 8448 - 8452 [(cbn).] 0. secs (0.u,0.s) +Chars 8453 - 8458 [etau.] 0.001 secs (0.001u,0.s) +Chars 8464 - 8465 [+] 0. secs (0.u,0.s) +Chars 8466 - 8474 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 8475 - 8491 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) +Chars 8498 - 8499 [*] 0. secs (0.u,0.s) +Chars 8500 - 8512 [constructor.] 0. secs (0.u,0.s) +Chars 8513 - 8527 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 8536 - 8547 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8548 - 8553 [step.] 0.002 secs (0.002u,0.s) +Chars 8554 - 8562 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 8571 - 8576 [evis.] 0. secs (0.u,0.s) +Chars 8584 - 8585 [*] 0. secs (0.u,0.s) +Chars 8586 - 8598 [constructor.] 0. secs (0.u,0.s) +Chars 8599 - 8613 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 8622 - 8633 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8634 - 8639 [step.] 0.002 secs (0.002u,0.s) +Chars 8640 - 8648 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 8657 - 8662 [evis.] 0. secs (0.u,0.s) +Chars 8668 - 8669 [+] 0. secs (0.u,0.s) +Chars 8670 - 8739 [(destruct~(observe~b);~destruc...] 0.052 secs (0.051u,0.s) +Chars 8746 - 8747 [*] 0. secs (0.u,0.s) +Chars 8748 - 8752 [(cbn).] 0. secs (0.u,0.s) +Chars 8753 - 8765 [constructor.] 0. secs (0.u,0.s) +Chars 8766 - 8808 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) +Chars 8817 - 8846 [(assert~(RetF~r~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 8855 - 8856 [{] 0. secs (0.u,0.s) +Chars 8857 - 8871 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 8872 - 8877 [auto.] 0. secs (0.u,0.s) +Chars 8878 - 8879 [}] 0. secs (0.u,0.s) +Chars 8888 - 8899 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 8900 - 8911 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8912 - 8926 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 8927 - 8932 [step.] 0.001 secs (0.001u,0.s) +Chars 8933 - 8938 [auto.] 0. secs (0.u,0.s) +Chars 8945 - 8946 [*] 0. secs (0.u,0.s) +Chars 8947 - 8951 [(cbn).] 0. secs (0.u,0.s) +Chars 8952 - 8964 [constructor.] 0. secs (0.u,0.s) +Chars 8965 - 8976 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8986 - 9009 [(enough~(t2~≈~Tau~t3)).] 0. secs (0.u,0.s) +Chars 9018 - 9019 [{] 0. secs (0.u,0.s) +Chars 9020 - 9043 [(rewrite~tau_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 9044 - 9049 [auto.] 0. secs (0.u,0.s) +Chars 9050 - 9051 [}] 0. secs (0.u,0.s) +Chars 9060 - 9065 [step.] 0.001 secs (0.001u,0.s) +Chars 9066 - 9071 [auto.] 0. secs (0.u,0.s) +Chars 9078 - 9079 [*] 0. secs (0.u,0.s) +Chars 9080 - 9096 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 9105 - 9107 [++] 0. secs (0.u,0.s) +Chars 9108 - 9120 [constructor.] 0. secs (0.u,0.s) +Chars 9132 - 9194 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) +Chars 9206 - 9253 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) +Chars 9265 - 9266 [{] 0. secs (0.u,0.s) +Chars 9267 - 9281 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 9282 - 9287 [auto.] 0. secs (0.u,0.s) +Chars 9288 - 9289 [}] 0. secs (0.u,0.s) +Chars 9301 - 9312 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 9313 - 9324 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9325 - 9331 [subst.] 0. secs (0.u,0.s) +Chars 9332 - 9337 [step.] 0.001 secs (0.001u,0.s) +Chars 9338 - 9343 [auto.] 0. secs (0.u,0.s) +Chars 9352 - 9354 [++] 0. secs (0.u,0.s) +Chars 9355 - 9367 [constructor.] 0. secs (0.u,0.s) +Chars 9379 - 9433 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) +Chars 9445 - 9497 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) +Chars 9509 - 9510 [{] 0. secs (0.u,0.s) +Chars 9511 - 9517 [subst.] 0. secs (0.u,0.s) +Chars 9518 - 9523 [auto.] 0. secs (0.u,0.s) +Chars 9524 - 9525 [}] 0. secs (0.u,0.s) +Chars 9537 - 9548 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 9549 - 9560 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9561 - 9567 [subst.] 0. secs (0.u,0.s) +Chars 9568 - 9573 [step.] 0.001 secs (0.001u,0.s) +Chars 9574 - 9579 [auto.] 0. secs (0.u,0.s) +Chars 9584 - 9585 [+] 0. secs (0.u,0.s) +Chars 9586 - 9655 [(destruct~(observe~b);~destruc...] 0.044 secs (0.044u,0.s) +Chars 9662 - 9663 [*] 0. secs (0.u,0.s) +Chars 9664 - 9668 [(cbn).] 0. secs (0.u,0.s) +Chars 9669 - 9681 [constructor.] 0. secs (0.u,0.s) +Chars 9682 - 9724 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) +Chars 9733 - 9762 [(assert~(RetF~r~=~observe~t2)).] 0. secs (0.u,0.s) +Chars 9771 - 9772 [{] 0. secs (0.u,0.s) +Chars 9773 - 9779 [subst.] 0. secs (0.u,0.s) +Chars 9780 - 9785 [auto.] 0. secs (0.u,0.s) +Chars 9786 - 9787 [}] 0. secs (0.u,0.s) +Chars 9796 - 9807 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 9808 - 9819 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9820 - 9834 [(rewrite~Heqt2).] 0. secs (0.u,0.s) +Chars 9835 - 9840 [step.] 0.001 secs (0.001u,0.s) +Chars 9841 - 9846 [auto.] 0. secs (0.u,0.s) +Chars 9853 - 9854 [*] 0. secs (0.u,0.s) +Chars 9855 - 9859 [(cbn).] 0. secs (0.u,0.s) +Chars 9860 - 9872 [constructor.] 0.001 secs (0.001u,0.s) +Chars 9873 - 9884 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9894 - 9917 [(enough~(Tau~t1~≈~t3)).] 0. secs (0.u,0.s) +Chars 9926 - 9927 [{] 0. secs (0.u,0.s) +Chars 9928 - 9951 [(rewrite~tau_eutt~in~H0).] 0.022 secs (0.022u,0.s) +Chars 9952 - 9957 [auto.] 0. secs (0.u,0.s) +Chars 9958 - 9959 [}] 0. secs (0.u,0.s) +Chars 9968 - 9973 [step.] 0.002 secs (0.002u,0.s) +Chars 9974 - 9979 [auto.] 0. secs (0.u,0.s) +Chars 9986 - 9987 [*] 0. secs (0.u,0.s) +Chars 9988 - 10004 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 10013 - 10015 [++] 0. secs (0.u,0.s) +Chars 10016 - 10028 [constructor.] 0. secs (0.u,0.s) +Chars 10041 - 10103 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) +Chars 10115 - 10162 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) +Chars 10174 - 10175 [{] 0. secs (0.u,0.s) +Chars 10176 - 10182 [subst.] 0. secs (0.u,0.s) +Chars 10183 - 10188 [auto.] 0. secs (0.u,0.s) +Chars 10189 - 10190 [}] 0. secs (0.u,0.s) +Chars 10202 - 10213 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 10214 - 10225 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10226 - 10232 [subst.] 0. secs (0.u,0.s) +Chars 10233 - 10238 [step.] 0.002 secs (0.002u,0.s) +Chars 10239 - 10244 [auto.] 0. secs (0.u,0.s) +Chars 10253 - 10255 [++] 0. secs (0.u,0.s) +Chars 10256 - 10268 [constructor.] 0. secs (0.u,0.s) +Chars 10281 - 10335 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) +Chars 10347 - 10399 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) +Chars 10411 - 10412 [{] 0. secs (0.u,0.s) +Chars 10413 - 10419 [subst.] 0. secs (0.u,0.s) +Chars 10420 - 10425 [auto.] 0. secs (0.u,0.s) +Chars 10426 - 10427 [}] 0. secs (0.u,0.s) +Chars 10439 - 10450 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 10451 - 10462 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10463 - 10469 [subst.] 0. secs (0.u,0.s) +Chars 10470 - 10475 [step.] 0.002 secs (0.002u,0.s) +Chars 10476 - 10481 [auto.] 0. secs (0.u,0.s) +Chars 10484 - 10485 [-] 0. secs (0.u,0.s) +Chars 10486 - 10496 [step~in~H.] 0. secs (0.u,0.s) +Chars 10497 - 10519 [dependent~induction~H.] 0.053 secs (0.053u,0.s) +Chars 10524 - 10525 [+] 0. secs (0.u,0.s) +Chars 10526 - 10534 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 10535 - 10547 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10552 - 10553 [+] 0. secs (0.u,0.s) +Chars 10554 - 10562 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 10563 - 10567 [(cbn).] 0. secs (0.u,0.s) +Chars 10568 - 10580 [constructor.] 0. secs (0.u,0.s) +Chars 10587 - 10619 [(remember~(go~(VisF~e~k))~as~t0).] 0. secs (0.u,0.s) +Chars 10626 - 10657 [(assert~(VisF~e~k~=~observe~t0)).] 0. secs (0.u,0.s) +Chars 10664 - 10665 [{] 0. secs (0.u,0.s) +Chars 10666 - 10672 [subst.] 0. secs (0.u,0.s) +Chars 10673 - 10678 [auto.] 0. secs (0.u,0.s) +Chars 10679 - 10680 [}] 0. secs (0.u,0.s) +Chars 10687 - 10697 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 10698 - 10709 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10711 - 10716 [auto.] 0. secs (0.u,0.s) +Chars 10721 - 10722 [+] 0. secs (0.u,0.s) +Chars 10723 - 10731 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 10732 - 10748 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) +Chars 10755 - 10756 [*] 0. secs (0.u,0.s) +Chars 10757 - 10772 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 10773 - 10777 [(cbn).] 0. secs (0.u,0.s) +Chars 10778 - 10794 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 10803 - 10832 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 10841 - 10843 [++] 0. secs (0.u,0.s) +Chars 10844 - 10870 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 10871 - 10897 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.u,0.s) +Chars 10909 - 10934 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 10935 - 10939 [(cbn).] 0. secs (0.u,0.s) +Chars 10940 - 10952 [constructor.] 0. secs (0.u,0.s) +Chars 10953 - 10960 [(intros).] 0. secs (0.u,0.s) +Chars 10972 - 10983 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10986 - 11002 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 11011 - 11013 [++] 0. secs (0.u,0.s) +Chars 11014 - 11026 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11033 - 11034 [*] 0. secs (0.u,0.s) +Chars 11035 - 11047 [constructor.] 0. secs (0.u,0.s) +Chars 11048 - 11062 [contradiction.] 0. secs (0.u,0.s) +Chars 11067 - 11068 [+] 0. secs (0.u,0.s) +Chars 11069 - 11077 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 11078 - 11110 [(destruct~(observe~b')~eqn:Heq).] 0.004 secs (0.004u,0.s) +Chars 11117 - 11118 [*] 0. secs (0.u,0.s) +Chars 11119 - 11134 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11135 - 11139 [(cbn).] 0. secs (0.u,0.s) +Chars 11140 - 11158 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 11159 - 11181 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 11182 - 11194 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11195 - 11200 [auto.] 0. secs (0.u,0.s) +Chars 11207 - 11208 [*] 0. secs (0.u,0.s) +Chars 11209 - 11213 [(cbn).] 0. secs (0.u,0.s) +Chars 11214 - 11226 [constructor.] 0. secs (0.u,0.s) +Chars 11235 - 11267 [(remember~(go~(VisF~e~k))~as~t2).] 0. secs (0.u,0.s) +Chars 11276 - 11307 [(assert~(VisF~e~k~=~observe~t2)).] 0. secs (0.u,0.s) +Chars 11316 - 11317 [{] 0. secs (0.u,0.s) +Chars 11318 - 11324 [subst.] 0. secs (0.u,0.s) +Chars 11325 - 11330 [auto.] 0. secs (0.u,0.s) +Chars 11331 - 11332 [}] 0. secs (0.u,0.s) +Chars 11341 - 11352 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 11353 - 11364 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 11373 - 11396 [(enough~(t1~≈~Tau~t0)).] 0. secs (0.u,0.s) +Chars 11405 - 11406 [{] 0. secs (0.u,0.s) +Chars 11407 - 11430 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) +Chars 11431 - 11436 [auto.] 0. secs (0.u,0.s) +Chars 11437 - 11438 [}] 0. secs (0.u,0.s) +Chars 11447 - 11458 [(step;~auto).] 0.002 secs (0.002u,0.s) +Chars 11465 - 11466 [*] 0. secs (0.u,0.s) +Chars 11467 - 11471 [(cbn).] 0. secs (0.u,0.s) +Chars 11472 - 11491 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 11492 - 11507 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11508 - 11530 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 11539 - 11551 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11552 - 11557 [auto.] 0. secs (0.u,0.s) +Chars 11562 - 11563 [+] 0. secs (0.u,0.s) +Chars 11564 - 11572 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 11573 - 11604 [(destruct~(observe~b)~eqn:Heq).] 0.004 secs (0.004u,0.s) +Chars 11611 - 11612 [*] 0. secs (0.u,0.s) +Chars 11613 - 11628 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11629 - 11633 [(cbn).] 0. secs (0.u,0.s) +Chars 11634 - 11652 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 11653 - 11675 [(eapply~IHeqitF;~eauto).] 0.004 secs (0.004u,0.s) +Chars 11676 - 11688 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11689 - 11694 [auto.] 0. secs (0.u,0.s) +Chars 11701 - 11702 [*] 0. secs (0.u,0.s) +Chars 11703 - 11707 [(cbn).] 0. secs (0.u,0.s) +Chars 11708 - 11720 [constructor.] 0. secs (0.u,0.s) +Chars 11729 - 11761 [(remember~(go~(VisF~e~k))~as~t1).] 0. secs (0.u,0.s) +Chars 11770 - 11801 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 11810 - 11811 [{] 0. secs (0.u,0.s) +Chars 11812 - 11818 [subst.] 0. secs (0.u,0.s) +Chars 11819 - 11824 [auto.] 0. secs (0.u,0.s) +Chars 11825 - 11826 [}] 0. secs (0.u,0.s) +Chars 11835 - 11846 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 11847 - 11858 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 11867 - 11890 [(enough~(Tau~t0~≈~t2)).] 0. secs (0.u,0.s) +Chars 11899 - 11900 [{] 0. secs (0.u,0.s) +Chars 11901 - 11924 [(rewrite~tau_eutt~in~H1).] 0.021 secs (0.021u,0.s) +Chars 11925 - 11930 [auto.] 0. secs (0.u,0.s) +Chars 11931 - 11932 [}] 0. secs (0.u,0.s) +Chars 11941 - 11952 [(step;~auto).] 0.002 secs (0.002u,0.s) +Chars 11959 - 11960 [*] 0. secs (0.u,0.s) +Chars 11961 - 11965 [(cbn).] 0. secs (0.u,0.s) +Chars 11966 - 11985 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 11986 - 12001 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 12002 - 12024 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12033 - 12045 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 12046 - 12051 [auto.] 0. secs (0.u,0.s) +Chars 12052 - 12056 [Qed.] 0.226 secs (0.223u,0.002s) +Chars 12060 - 12238 [Lemma~proper_peel_eutt_r~:~~~f...] 0. secs (0.u,0.s) +Chars 12239 - 12245 [Proof.] 0. secs (0.u,0.s) +Chars 12248 - 12261 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 12262 - 12280 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 12281 - 12288 [(intros).] 0. secs (0.u,0.s) +Chars 12291 - 12303 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 12304 - 12336 [(destruct~(observe~b)~eqn:Heqb).] 0.001 secs (0.001u,0.s) +Chars 12339 - 12340 [-] 0. secs (0.u,0.s) +Chars 12341 - 12351 [step~in~H.] 0. secs (0.u,0.s) +Chars 12352 - 12374 [dependent~induction~H.] 0.047 secs (0.046u,0.s) +Chars 12379 - 12380 [+] 0. secs (0.u,0.s) +Chars 12381 - 12389 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12390 - 12402 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 12407 - 12408 [+] 0. secs (0.u,0.s) +Chars 12409 - 12417 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12418 - 12422 [(cbn).] 0. secs (0.u,0.s) +Chars 12423 - 12435 [constructor.] 0. secs (0.u,0.s) +Chars 12436 - 12452 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 12459 - 12470 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 12472 - 12477 [auto.] 0. secs (0.u,0.s) +Chars 12482 - 12483 [+] 0. secs (0.u,0.s) +Chars 12484 - 12492 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12493 - 12497 [(cbn).] 0. secs (0.u,0.s) +Chars 12498 - 12510 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 12515 - 12516 [+] 0. secs (0.u,0.s) +Chars 12517 - 12525 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 12526 - 12530 [(cbn).] 0. secs (0.u,0.s) +Chars 12531 - 12549 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 12550 - 12572 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 12577 - 12578 [+] 0. secs (0.u,0.s) +Chars 12579 - 12587 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12588 - 12592 [(cbn).] 0. secs (0.u,0.s) +Chars 12593 - 12611 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 12612 - 12634 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 12637 - 12638 [-] 0. secs (0.u,0.s) +Chars 12639 - 12649 [step~in~H.] 0. secs (0.u,0.s) +Chars 12650 - 12672 [dependent~induction~H.] 0.047 secs (0.047u,0.s) +Chars 12677 - 12678 [+] 0. secs (0.u,0.s) +Chars 12679 - 12687 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12688 - 12692 [(cbn).] 0. secs (0.u,0.s) +Chars 12693 - 12705 [constructor.] 0. secs (0.u,0.s) +Chars 12706 - 12711 [auto.] 0. secs (0.u,0.s) +Chars 12716 - 12717 [+] 0. secs (0.u,0.s) +Chars 12718 - 12726 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12727 - 12731 [(cbn).] 0. secs (0.u,0.s) +Chars 12732 - 12737 [etau.] 0.001 secs (0.001u,0.s) +Chars 12743 - 12744 [+] 0. secs (0.u,0.s) +Chars 12745 - 12753 [simpobs.] 0.009 secs (0.009u,0.s) +Chars 12754 - 12758 [(cbn).] 0. secs (0.u,0.s) +Chars 12759 - 12771 [constructor.] 0. secs (0.u,0.s) +Chars 12778 - 12792 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 12795 - 12806 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 12813 - 12818 [step.] 0.001 secs (0.001u,0.s) +Chars 12819 - 12827 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12835 - 12847 [constructor.] 0. secs (0.u,0.s) +Chars 12848 - 12853 [auto.] 0. secs (0.u,0.s) +Chars 12858 - 12859 [+] 0. secs (0.u,0.s) +Chars 12860 - 12868 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12869 - 12903 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 12910 - 12911 [*] 0. secs (0.u,0.s) +Chars 12912 - 12916 [(cbn).] 0. secs (0.u,0.s) +Chars 12918 - 12936 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 12937 - 12951 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 12960 - 12982 [dependent~induction~H.] 0.057 secs (0.056u,0.s) +Chars 12991 - 12993 [++] 0. secs (0.u,0.s) +Chars 12994 - 13002 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 13003 - 13061 [(destruct~(observe~t0);~cbn;~t...] 0.002 secs (0.002u,0.s) +Chars 13073 - 13108 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) +Chars 13117 - 13119 [++] 0. secs (0.u,0.s) +Chars 13120 - 13128 [simpobs.] 0.011 secs (0.011u,0.s) +Chars 13129 - 13133 [(cbn).] 0. secs (0.u,0.s) +Chars 13134 - 13173 [(destruct~(observe~t2)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 13185 - 13187 [**] 0. secs (0.u,0.s) +Chars 13188 - 13207 [(constructor;~eauto).] 0.006 secs (0.006u,0.s) +Chars 13208 - 13225 [(rewrite~<-~Heqt2).] 0. secs (0.u,0.s) +Chars 13227 - 13249 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13261 - 13263 [**] 0. secs (0.u,0.s) +Chars 13264 - 13282 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 13283 - 13305 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13317 - 13319 [**] 0. secs (0.u,0.s) +Chars 13320 - 13418 [(destruct~e;~cbn;~~~try~(const...] 0.012 secs (0.012u,0.s) +Chars 13425 - 13426 [*] 0. secs (0.u,0.s) +Chars 13427 - 13431 [(cbn).] 0. secs (0.u,0.s) +Chars 13432 - 13444 [constructor.] 0. secs (0.u,0.s) +Chars 13445 - 13463 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 13472 - 13495 [(enough~(t1~≈~Tau~t2)).] 0. secs (0.u,0.s) +Chars 13504 - 13505 [{] 0. secs (0.u,0.s) +Chars 13506 - 13529 [(rewrite~tau_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 13530 - 13535 [auto.] 0. secs (0.u,0.s) +Chars 13536 - 13537 [}] 0. secs (0.u,0.s) +Chars 13546 - 13551 [step.] 0.001 secs (0.001u,0.s) +Chars 13552 - 13557 [auto.] 0. secs (0.u,0.s) +Chars 13564 - 13565 [*] 0. secs (0.u,0.s) +Chars 13566 - 13570 [(cbn).] 0. secs (0.u,0.s) +Chars 13571 - 13583 [constructor.] 0. secs (0.u,0.s) +Chars 13584 - 13601 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) +Chars 13602 - 13613 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 13623 - 13628 [step.] 0.001 secs (0.001u,0.s) +Chars 13629 - 13643 [(rewrite~Heqt').] 0. secs (0.u,0.s) +Chars 13644 - 13649 [auto.] 0. secs (0.u,0.s) +Chars 13654 - 13655 [+] 0. secs (0.u,0.s) +Chars 13656 - 13664 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13665 - 13686 [(destruct~(observe~t)).] 0.004 secs (0.004u,0.s) +Chars 13693 - 13694 [*] 0. secs (0.u,0.s) +Chars 13695 - 13699 [(cbn).] 0. secs (0.u,0.s) +Chars 13700 - 13718 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 13719 - 13733 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 13742 - 13764 [dependent~induction~H.] 0.04 secs (0.04u,0.s) +Chars 13773 - 13775 [++] 0. secs (0.u,0.s) +Chars 13776 - 13784 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13785 - 13849 [(destruct~(observe~t0);~try~de...] 0.002 secs (0.002u,0.s) +Chars 13858 - 13860 [++] 0. secs (0.u,0.s) +Chars 13861 - 13869 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 13870 - 13909 [(destruct~(observe~t1)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 13921 - 13923 [**] 0. secs (0.u,0.s) +Chars 13924 - 13942 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 13943 - 13960 [(rewrite~<-~Heqt1).] 0. secs (0.u,0.s) +Chars 13961 - 13983 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13995 - 13997 [**] 0. secs (0.u,0.s) +Chars 13998 - 14016 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 14017 - 14039 [(eapply~IHeqitF;~eauto).] 0.008 secs (0.008u,0.s) +Chars 14051 - 14053 [**] 0. secs (0.u,0.s) +Chars 14054 - 14136 [(destruct~e;~cbn;~~~try~(const...] 0.012 secs (0.012u,0.s) +Chars 14143 - 14144 [*] 0. secs (0.u,0.s) +Chars 14145 - 14149 [(cbn).] 0. secs (0.u,0.s) +Chars 14150 - 14162 [constructor.] 0. secs (0.u,0.s) +Chars 14163 - 14181 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 14190 - 14215 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 14216 - 14221 [step.] 0.001 secs (0.001u,0.s) +Chars 14222 - 14227 [auto.] 0. secs (0.u,0.s) +Chars 14234 - 14235 [*] 0. secs (0.u,0.s) +Chars 14236 - 14240 [(cbn).] 0. secs (0.u,0.s) +Chars 14241 - 14253 [constructor.] 0. secs (0.u,0.s) +Chars 14254 - 14282 [(remember~(Vis~e~k)~as~t1).] 0.001 secs (0.001u,0.s) +Chars 14291 - 14322 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 14331 - 14332 [{] 0. secs (0.u,0.s) +Chars 14333 - 14339 [subst.] 0. secs (0.u,0.s) +Chars 14340 - 14345 [auto.] 0. secs (0.u,0.s) +Chars 14346 - 14347 [}] 0. secs (0.u,0.s) +Chars 14356 - 14367 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 14368 - 14379 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 14380 - 14386 [subst.] 0. secs (0.u,0.s) +Chars 14387 - 14392 [step.] 0.001 secs (0.001u,0.s) +Chars 14393 - 14398 [auto.] 0. secs (0.u,0.s) +Chars 14401 - 14402 [-] 0. secs (0.u,0.s) +Chars 14403 - 14413 [step~in~H.] 0. secs (0.u,0.s) +Chars 14414 - 14436 [dependent~induction~H.] 0.046 secs (0.046u,0.s) +Chars 14441 - 14442 [+] 0. secs (0.u,0.s) +Chars 14443 - 14451 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 14452 - 14487 [(destruct~e;~cbn;~constructor;...] 0.005 secs (0.004u,0.s) +Chars 14492 - 14493 [+] 0. secs (0.u,0.s) +Chars 14494 - 14502 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 14503 - 14577 [(destruct~e;~cbn;~constructor;...] 0.003 secs (0.003u,0.s) +Chars 14582 - 14583 [+] 0. secs (0.u,0.s) +Chars 14584 - 14592 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 14593 - 14610 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14617 - 14618 [*] 0. secs (0.u,0.s) +Chars 14619 - 14634 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 14635 - 14639 [(cbn).] 0. secs (0.u,0.s) +Chars 14640 - 14656 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 14665 - 14694 [(destruct~(classicT~(A~=~u))).] 0.001 secs (0.001u,0.s) +Chars 14703 - 14705 [++] 0. secs (0.u,0.s) +Chars 14706 - 14732 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 14733 - 14760 [(remember~(eq_sym~e0)~as~He).] 0.001 secs (0.001u,0.s) +Chars 14772 - 14797 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 14798 - 14802 [(cbn).] 0. secs (0.u,0.s) +Chars 14803 - 14815 [constructor.] 0. secs (0.u,0.s) +Chars 14816 - 14823 [(intros).] 0. secs (0.u,0.s) +Chars 14835 - 14846 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 14849 - 14865 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 14874 - 14876 [++] 0. secs (0.u,0.s) +Chars 14877 - 14881 [(cbn).] 0. secs (0.u,0.s) +Chars 14882 - 14894 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 14902 - 14903 [*] 0. secs (0.u,0.s) +Chars 14904 - 14916 [constructor.] 0. secs (0.u,0.s) +Chars 14917 - 14931 [contradiction.] 0. secs (0.u,0.s) +Chars 14936 - 14937 [+] 0. secs (0.u,0.s) +Chars 14938 - 14946 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 14947 - 14986 [(destruct~(observe~t');~destru...] 0.009 secs (0.009u,0.s) +Chars 14993 - 14994 [*] 0. secs (0.u,0.s) +Chars 14995 - 15013 [(constructor;~auto).] 0.002 secs (0.001u,0.s) +Chars 15014 - 15028 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15029 - 15051 [dependent~induction~H.] 0.043 secs (0.043u,0.s) +Chars 15060 - 15062 [++] 0. secs (0.u,0.s) +Chars 15063 - 15071 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15072 - 15076 [(cbn).] 0. secs (0.u,0.s) +Chars 15077 - 15095 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15104 - 15106 [++] 0. secs (0.u,0.s) +Chars 15107 - 15115 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 15116 - 15120 [(cbn).] 0. secs (0.u,0.s) +Chars 15121 - 15140 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 15147 - 15148 [*] 0. secs (0.u,0.s) +Chars 15149 - 15167 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 15168 - 15182 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15183 - 15205 [dependent~induction~H.] 0.046 secs (0.045u,0.s) +Chars 15214 - 15216 [++] 0. secs (0.u,0.s) +Chars 15217 - 15225 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15226 - 15230 [(cbn).] 0. secs (0.u,0.s) +Chars 15231 - 15249 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15258 - 15260 [++] 0. secs (0.u,0.s) +Chars 15261 - 15269 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 15270 - 15274 [(cbn).] 0. secs (0.u,0.s) +Chars 15275 - 15294 [(constructor;~eauto).] 0.005 secs (0.005u,0.s) +Chars 15301 - 15302 [*] 0. secs (0.u,0.s) +Chars 15303 - 15315 [constructor.] 0. secs (0.u,0.s) +Chars 15316 - 15332 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 15333 - 15344 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15354 - 15386 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) +Chars 15387 - 15392 [step.] 0.001 secs (0.001u,0.s) +Chars 15393 - 15398 [auto.] 0. secs (0.u,0.s) +Chars 15405 - 15406 [*] 0. secs (0.u,0.s) +Chars 15407 - 15423 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 15424 - 15436 [constructor.] 0. secs (0.u,0.s) +Chars 15437 - 15448 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15458 - 15490 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) +Chars 15491 - 15496 [step.] 0.001 secs (0.001u,0.s) +Chars 15497 - 15502 [auto.] 0. secs (0.u,0.s) +Chars 15509 - 15510 [*] 0. secs (0.u,0.s) +Chars 15511 - 15529 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15530 - 15544 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15553 - 15575 [dependent~induction~H.] 0.054 secs (0.054u,0.s) +Chars 15584 - 15586 [++] 0. secs (0.u,0.s) +Chars 15587 - 15595 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15596 - 15611 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 15612 - 15616 [(cbn).] 0. secs (0.u,0.s) +Chars 15628 - 15644 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 15645 - 15675 [(destruct~(classicT~(A~=~X0))).] 0.001 secs (0.u,0.s) +Chars 15687 - 15689 [**] 0. secs (0.u,0.s) +Chars 15690 - 15716 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 15731 - 15757 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.001u,0.s) +Chars 15758 - 15783 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 15798 - 15802 [(cbn).] 0. secs (0.u,0.s) +Chars 15803 - 15815 [constructor.] 0. secs (0.u,0.s) +Chars 15816 - 15823 [(intros).] 0. secs (0.u,0.s) +Chars 15825 - 15854 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 15866 - 15868 [**] 0. secs (0.u,0.s) +Chars 15869 - 15873 [(cbn).] 0. secs (0.u,0.s) +Chars 15874 - 15886 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 15896 - 15898 [++] 0. secs (0.u,0.s) +Chars 15899 - 15907 [simpobs.] 0.011 secs (0.01u,0.s) +Chars 15908 - 15912 [(cbn).] 0. secs (0.u,0.s) +Chars 15913 - 15954 [(constructor;~auto;~eapply~IHe...] 0.006 secs (0.006u,0.s) +Chars 15961 - 15962 [*] 0. secs (0.u,0.s) +Chars 15963 - 15981 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 15982 - 15996 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16005 - 16027 [dependent~induction~H.] 0.051 secs (0.05u,0.s) +Chars 16036 - 16038 [++] 0. secs (0.u,0.s) +Chars 16039 - 16047 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 16048 - 16052 [(cbn).] 0. secs (0.u,0.s) +Chars 16053 - 16065 [constructor.] 0. secs (0.u,0.s) +Chars 16066 - 16080 [contradiction.] 0. secs (0.u,0.s) +Chars 16089 - 16091 [++] 0. secs (0.u,0.s) +Chars 16092 - 16100 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 16101 - 16105 [(cbn).] 0. secs (0.u,0.s) +Chars 16106 - 16147 [(constructor;~auto;~eapply~IHe...] 0.008 secs (0.008u,0.s) +Chars 16152 - 16153 [+] 0. secs (0.u,0.s) +Chars 16154 - 16162 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 16163 - 16167 [(cbn).] 0. secs (0.u,0.s) +Chars 16168 - 16217 [(destruct~(observe~t)~eqn:Heqt...] 0.008 secs (0.008u,0.s) +Chars 16224 - 16225 [*] 0. secs (0.u,0.s) +Chars 16226 - 16244 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 16245 - 16259 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16260 - 16282 [dependent~induction~H.] 0.056 secs (0.055u,0.s) +Chars 16291 - 16293 [++] 0. secs (0.u,0.s) +Chars 16294 - 16302 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 16303 - 16307 [(cbn).] 0. secs (0.u,0.s) +Chars 16308 - 16326 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 16335 - 16337 [++] 0. secs (0.u,0.s) +Chars 16338 - 16346 [simpobs.] 0.016 secs (0.016u,0.s) +Chars 16347 - 16351 [(cbn).] 0. secs (0.u,0.s) +Chars 16352 - 16371 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 16378 - 16379 [*] 0. secs (0.u,0.s) +Chars 16380 - 16398 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 16399 - 16413 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16414 - 16436 [dependent~induction~H.] 0.055 secs (0.054u,0.s) +Chars 16445 - 16447 [++] 0. secs (0.u,0.s) +Chars 16448 - 16456 [simpobs.] 0.006 secs (0.005u,0.s) +Chars 16457 - 16461 [(cbn).] 0. secs (0.u,0.s) +Chars 16462 - 16480 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 16489 - 16491 [++] 0. secs (0.u,0.s) +Chars 16492 - 16500 [simpobs.] 0.011 secs (0.011u,0.s) +Chars 16501 - 16505 [(cbn).] 0. secs (0.u,0.s) +Chars 16506 - 16525 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 16532 - 16533 [*] 0. secs (0.u,0.s) +Chars 16534 - 16546 [constructor.] 0. secs (0.u,0.s) +Chars 16547 - 16563 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 16564 - 16582 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 16583 - 16603 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 16612 - 16617 [step.] 0.001 secs (0.001u,0.s) +Chars 16618 - 16623 [auto.] 0. secs (0.u,0.s) +Chars 16630 - 16631 [*] 0. secs (0.u,0.s) +Chars 16632 - 16644 [constructor.] 0. secs (0.u,0.s) +Chars 16645 - 16661 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 16662 - 16680 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 16681 - 16701 [(rewrite~<-~tau_eutt).] 0.004 secs (0.004u,0.s) +Chars 16710 - 16715 [step.] 0.001 secs (0.001u,0.s) +Chars 16716 - 16721 [auto.] 0. secs (0.u,0.s) +Chars 16728 - 16729 [*] 0. secs (0.u,0.s) +Chars 16730 - 16748 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 16749 - 16763 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16764 - 16786 [dependent~induction~H.] 0.064 secs (0.063u,0.s) +Chars 16795 - 16797 [++] 0. secs (0.u,0.s) +Chars 16798 - 16806 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 16807 - 16822 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 16823 - 16827 [(cbn).] 0. secs (0.u,0.s) +Chars 16839 - 16855 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 16867 - 16897 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) +Chars 16909 - 16911 [**] 0. secs (0.u,0.s) +Chars 16912 - 16938 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 16953 - 16979 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.001u,0.s) +Chars 16980 - 17005 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 17020 - 17024 [(cbn).] 0. secs (0.u,0.s) +Chars 17025 - 17037 [constructor.] 0. secs (0.u,0.s) +Chars 17038 - 17045 [(intros).] 0. secs (0.u,0.s) +Chars 17047 - 17069 [(eapply~CIH;~apply~REL).] 0. secs (0.u,0.s) +Chars 17081 - 17083 [**] 0. secs (0.u,0.s) +Chars 17084 - 17088 [(cbn).] 0. secs (0.u,0.s) +Chars 17089 - 17101 [reflexivity.] 0.003 secs (0.003u,0.s) +Chars 17111 - 17113 [++] 0. secs (0.u,0.s) +Chars 17114 - 17122 [simpobs.] 0.013 secs (0.012u,0.s) +Chars 17123 - 17127 [(cbn).] 0. secs (0.u,0.s) +Chars 17128 - 17147 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 17154 - 17155 [*] 0. secs (0.u,0.s) +Chars 17156 - 17174 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 17175 - 17189 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 17190 - 17212 [dependent~induction~H.] 0.068 secs (0.068u,0.s) +Chars 17221 - 17223 [++] 0. secs (0.u,0.s) +Chars 17224 - 17232 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 17233 - 17237 [(cbn).] 0. secs (0.u,0.s) +Chars 17238 - 17250 [constructor.] 0. secs (0.u,0.s) +Chars 17251 - 17265 [contradiction.] 0. secs (0.u,0.s) +Chars 17274 - 17276 [++] 0. secs (0.u,0.s) +Chars 17277 - 17285 [simpobs.] 0.014 secs (0.014u,0.s) +Chars 17286 - 17290 [(cbn).] 0. secs (0.u,0.s) +Chars 17291 - 17310 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 17311 - 17315 [Qed.] 0.546 secs (0.539u,0.005s) +Chars 17317 - 17418 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 17419 - 17425 [Proof.] 0. secs (0.u,0.s) +Chars 17428 - 17447 [(intros~?~?~?~?~?~?).] 0. secs (0.u,0.s) +Chars 17448 - 17497 [(rewrite~proper_peel_eutt_l~wi...] 0.008 secs (0.008u,0.s) +Chars 17500 - 17533 [(eapply~proper_peel_eutt_r;~ea...] 0. secs (0.u,0.s) +Chars 17534 - 17538 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17540 - 17746 [Lemma~not_peel_vis_ret~:~~~for...] 0. secs (0.u,0.s) +Chars 17747 - 17753 [Proof.] 0. secs (0.u,0.s) +Chars 17756 - 17786 [(intros~R~E~S~X~e~k~r~t1~Heutt).] 0. secs (0.u,0.s) +Chars 17789 - 17803 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 17804 - 17821 [(unfold~peel~in~*).] 0. secs (0.u,0.s) +Chars 17822 - 17831 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 17834 - 17861 [dependent~induction~Heutt.] 0.03 secs (0.03u,0.s) +Chars 17864 - 17865 [-] 0. secs (0.u,0.s) +Chars 17866 - 17916 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) +Chars 17921 - 17961 [(destruct~e0;~cbn~in~*;~try~di...] 0. secs (0.u,0.s) +Chars 17966 - 17986 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 17987 - 17996 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 17997 - 18018 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 18023 - 18069 [(destruct~(classicT~(A~=~X));~...] 0. secs (0.u,0.s) +Chars 18074 - 18105 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 18106 - 18133 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 18138 - 18163 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 18164 - 18177 [discriminate.] 0. secs (0.u,0.s) +Chars 18180 - 18181 [-] 0. secs (0.u,0.s) +Chars 18182 - 18232 [(destruct~(observe~t1);~cbn~in...] 0. secs (0.u,0.s) +Chars 18237 - 18238 [+] 0. secs (0.u,0.s) +Chars 18239 - 18260 [injection~x~as~Hspin.] 0. secs (0.u,0.s) +Chars 18261 - 18284 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) +Chars 18291 - 18316 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 18317 - 18322 [step.] 0.006 secs (0.006u,0.s) +Chars 18323 - 18329 [eauto.] 0. secs (0.u,0.s) +Chars 18334 - 18335 [+] 0. secs (0.u,0.s) +Chars 18336 - 18355 [injection~x~as~Ht0.] 0. secs (0.u,0.s) +Chars 18356 - 18378 [(eapply~IHHeutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 18379 - 18391 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 18392 - 18404 [reflexivity.] 0. secs (0.u,0.s) +Chars 18409 - 18410 [+] 0. secs (0.u,0.s) +Chars 18411 - 18451 [(destruct~e0;~cbn~in~*;~try~di...] 0.001 secs (0.001u,0.s) +Chars 18458 - 18478 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 18479 - 18488 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 18489 - 18510 [(unfold~peel_vis~in~*).] 0. secs (0.u,0.s) +Chars 18517 - 18546 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 18553 - 18554 [*] 0. secs (0.u,0.s) +Chars 18555 - 18586 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 18587 - 18614 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 18623 - 18648 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 18649 - 18662 [discriminate.] 0. secs (0.u,0.s) +Chars 18669 - 18670 [*] 0. secs (0.u,0.s) +Chars 18671 - 18680 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 18681 - 18702 [injection~x~as~Hspin.] 0. secs (0.u,0.s) +Chars 18703 - 18726 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) +Chars 18735 - 18760 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 18761 - 18766 [step.] 0.004 secs (0.004u,0.s) +Chars 18767 - 18773 [eauto.] 0. secs (0.u,0.s) +Chars 18774 - 18778 [Qed.] 0.024 secs (0.024u,0.s) +Chars 18780 - 18934 [Lemma~peel_ret_inv~:~~~forall~...] 0. secs (0.u,0.s) +Chars 18935 - 18941 [Proof.] 0. secs (0.u,0.s) +Chars 18944 - 18965 [(intros~R~r~E~S~b~t~H).] 0. secs (0.u,0.s) +Chars 18966 - 18983 [(unfold~peel~in~H).] 0. secs (0.u,0.s) +Chars 18986 - 18996 [step~in~H.] 0. secs (0.u,0.s) +Chars 18997 - 19006 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 19007 - 19012 [step.] 0.001 secs (0.001u,0.s) +Chars 19013 - 19017 [(cbn).] 0. secs (0.u,0.s) +Chars 19020 - 19042 [dependent~induction~H.] 0.03 secs (0.03u,0.s) +Chars 19045 - 19046 [-] 0. secs (0.u,0.s) +Chars 19047 - 19064 [(unfold~peel~in~x).] 0. secs (0.u,0.s) +Chars 19065 - 19180 [(destruct~(observe~b);~destruc...] 0.018 secs (0.018u,0.s) +Chars 19185 - 19186 [+] 0. secs (0.u,0.s) +Chars 19187 - 19248 [(destruct~e;~dependent~destruc...] 0.004 secs (0.004u,0.s) +Chars 19253 - 19254 [+] 0. secs (0.u,0.s) +Chars 19255 - 19291 [(destruct~e;~dependent~destruc...] 0.003 secs (0.003u,0.s) +Chars 19296 - 19297 [+] 0. secs (0.u,0.s) +Chars 19298 - 19334 [(destruct~e;~dependent~destruc...] 0.004 secs (0.004u,0.s) +Chars 19341 - 19361 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 19362 - 19371 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 19372 - 19393 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 19400 - 19440 [(destruct~(classicT~(A~=~X0))~...] 0. secs (0.u,0.s) +Chars 19447 - 19448 [*] 0. secs (0.u,0.s) +Chars 19449 - 19480 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 19481 - 19487 [subst.] 0. secs (0.u,0.s) +Chars 19488 - 19520 [(remember~(eq_sym~eq_refl)~as~...] 0. secs (0.u,0.s) +Chars 19529 - 19554 [dependent~destruction~He.] 0.004 secs (0.004u,0.s) +Chars 19555 - 19565 [(cbn~in~x0).] 0. secs (0.u,0.s) +Chars 19566 - 19579 [discriminate.] 0. secs (0.u,0.s) +Chars 19586 - 19587 [*] 0. secs (0.u,0.s) +Chars 19588 - 19601 [discriminate.] 0. secs (0.u,0.s) +Chars 19604 - 19605 [-] 0. secs (0.u,0.s) +Chars 19606 - 19684 [(destruct~(observe~b);~destruc...] 0.02 secs (0.02u,0.s) +Chars 19689 - 19690 [+] 0. secs (0.u,0.s) +Chars 19691 - 19709 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 19710 - 19751 [(eapply~IHeqitF~with~(b~:=~Ret...] 0.001 secs (0.001u,0.s) +Chars 19756 - 19757 [+] 0. secs (0.u,0.s) +Chars 19758 - 19766 [exfalso.] 0. secs (0.u,0.s) +Chars 19767 - 19792 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 19793 - 19798 [step.] 0.004 secs (0.004u,0.s) +Chars 19799 - 19805 [eauto.] 0. secs (0.u,0.s) +Chars 19810 - 19811 [+] 0. secs (0.u,0.s) +Chars 19812 - 19830 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 19831 - 19853 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 19858 - 19859 [+] 0. secs (0.u,0.s) +Chars 19860 - 19868 [exfalso.] 0. secs (0.u,0.s) +Chars 19869 - 19891 [(destruct~(observe~t0)).] 0.001 secs (0.001u,0.s) +Chars 19898 - 19899 [*] 0. secs (0.u,0.s) +Chars 19900 - 19909 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 19910 - 19935 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 19944 - 19951 [(inv~H).] 0.012 secs (0.012u,0.s) +Chars 19952 - 19957 [step.] 0.004 secs (0.004u,0.s) +Chars 19958 - 19964 [eauto.] 0. secs (0.u,0.s) +Chars 19971 - 19972 [*] 0. secs (0.u,0.s) +Chars 19973 - 19982 [(cbn~in~H).] 0.001 secs (0.001u,0.s) +Chars 19983 - 19989 [(inv~H).] 0.008 secs (0.008u,0.s) +Chars 19990 - 20014 [(eapply~not_peel_vis_ret).] 0. secs (0.u,0.s) +Chars 20023 - 20028 [step.] 0.004 secs (0.004u,0.s) +Chars 20029 - 20035 [eauto.] 0. secs (0.u,0.s) +Chars 20042 - 20043 [*] 0. secs (0.u,0.s) +Chars 20044 - 20056 [(destruct~e0).] 0. secs (0.u,0.s) +Chars 20065 - 20067 [++] 0. secs (0.u,0.s) +Chars 20068 - 20082 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 20083 - 20103 [(unfold~observe~in~H).] 0. secs (0.u,0.s) +Chars 20104 - 20113 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 20114 - 20135 [(unfold~peel_vis~in~H).] 0. secs (0.u,0.s) +Chars 20147 - 20176 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 20188 - 20190 [**] 0. secs (0.u,0.s) +Chars 20191 - 20222 [(unfold~eq_rect_r,~eq_rect~in~H).] 0. secs (0.u,0.s) +Chars 20223 - 20250 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 20265 - 20290 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 20291 - 20297 [(inv~H).] 0.003 secs (0.003u,0.s) +Chars 20309 - 20311 [**] 0. secs (0.u,0.s) +Chars 20312 - 20337 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 20338 - 20343 [step.] 0.004 secs (0.004u,0.s) +Chars 20344 - 20350 [eauto.] 0. secs (0.u,0.s) +Chars 20359 - 20361 [++] 0. secs (0.u,0.s) +Chars 20362 - 20371 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 20372 - 20378 [(inv~H).] 0.003 secs (0.003u,0.s) +Chars 20383 - 20384 [+] 0. secs (0.u,0.s) +Chars 20385 - 20424 [(destruct~e;~cbn~in~x;~try~dis...] 0. secs (0.u,0.s) +Chars 20429 - 20430 [+] 0. secs (0.u,0.s) +Chars 20431 - 20449 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 20450 - 20492 [(eapply~IHeqitF~with~(b~:=~Vis...] 0.001 secs (0.001u,0.s) +Chars 20493 - 20497 [(cbn).] 0. secs (0.u,0.s) +Chars 20504 - 20556 [(destruct~e;~cbn~in~x;~depende...] 0.006 secs (0.006u,0.s) +Chars 20561 - 20562 [+] 0. secs (0.u,0.s) +Chars 20563 - 20602 [(destruct~e;~cbn~in~x;~try~dis...] 0.001 secs (0.001u,0.s) +Chars 20609 - 20629 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 20630 - 20639 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 20640 - 20661 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 20668 - 20698 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) +Chars 20705 - 20706 [*] 0. secs (0.u,0.s) +Chars 20707 - 20738 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 20739 - 20765 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 20774 - 20799 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 20800 - 20813 [discriminate.] 0. secs (0.u,0.s) +Chars 20820 - 20821 [*] 0. secs (0.u,0.s) +Chars 20822 - 20843 [injection~x~as~Hspin.] 0. secs (0.u,0.s) +Chars 20844 - 20857 [(cbn~in~Hspin).] 0. secs (0.u,0.s) +Chars 20858 - 20866 [exfalso.] 0. secs (0.u,0.s) +Chars 20875 - 20897 [(assert~(t1~≈~Ret~r)).] 0. secs (0.u,0.s) +Chars 20906 - 20907 [{] 0. secs (0.u,0.s) +Chars 20908 - 20913 [step.] 0.002 secs (0.002u,0.s) +Chars 20914 - 20919 [auto.] 0. secs (0.u,0.s) +Chars 20920 - 20921 [}] 0. secs (0.u,0.s) +Chars 20930 - 20950 [(rewrite~Hspin~in~H0).] 0. secs (0.u,0.s) +Chars 20951 - 20983 [(eapply~not_spin_eutt_ret;~eau...] 0. secs (0.u,0.s) +Chars 20984 - 20988 [Qed.] 0.077 secs (0.076u,0.s) +Chars 21766 - 22425 [Lemma~eqitF_observe_peel_cont_...] 0.002 secs (0.002u,0.s) +Chars 22426 - 22432 [Proof.] 0. secs (0.u,0.s) +Chars 22435 - 22479 [(intros~E~R~S~A~ev~ans~k1~k2~R...] 0. secs (0.u,0.s) +Chars 22482 - 22497 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 22498 - 22502 [(cbn).] 0. secs (0.u,0.s) +Chars 22503 - 22524 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) +Chars 22527 - 22556 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 22559 - 22560 [-] 0. secs (0.u,0.s) +Chars 22561 - 22587 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 22588 - 22615 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 22620 - 22645 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 22646 - 22650 [(cbn).] 0. secs (0.u,0.s) +Chars 22651 - 22663 [constructor.] 0. secs (0.u,0.s) +Chars 22668 - 22675 [(intros).] 0. secs (0.u,0.s) +Chars 22677 - 22688 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 22689 - 22705 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 22708 - 22709 [-] 0. secs (0.u,0.s) +Chars 22710 - 22714 [(cbn).] 0. secs (0.u,0.s) +Chars 22715 - 22720 [taus.] 0. secs (0.u,0.s) +Chars 22721 - 22730 [Admitted.] 0. secs (0.u,0.s) +Chars 22734 - 22945 [Lemma~proper_peel_cont_eutt_l~...] 0. secs (0.u,0.s) +Chars 22946 - 22952 [Proof.] 0. secs (0.u,0.s) +Chars 22955 - 22968 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 22969 - 22986 [(unfold~peel_cont).] 0. secs (0.u,0.s) +Chars 22987 - 23003 [(intros~b~b'~t~_).] 0. secs (0.u,0.s) +Chars 23006 - 23020 [revert~b~b'~t.] 0. secs (0.u,0.s) +Chars 23021 - 23040 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 23041 - 23048 [(intros).] 0. secs (0.u,0.s) +Chars 23049 - 23059 [step~in~H.] 0. secs (0.u,0.s) +Chars 23063 - 23095 [(destruct~(observe~t)~eqn:Heqt).] 0.001 secs (0.001u,0.s) +Chars 23117 - 23118 [-] 0. secs (0.u,0.s) +Chars 23119 - 23268 [(destruct~(observe~b')~eqn:Hb;...] 0.173 secs (0.17u,0.002s) +Chars 23274 - 23275 [+] 0. secs (0.u,0.s) +Chars 23276 - 23281 [taus.] 0. secs (0.u,0.s) +Chars 23282 - 23302 [now~do~2~Utils.step.] 0.009 secs (0.009u,0.s) +Chars 23311 - 23312 [+] 0. secs (0.u,0.s) +Chars 23313 - 23326 [ddestruction.] 0.006 secs (0.006u,0.s) +Chars 23327 - 23339 [constructor.] 0. secs (0.u,0.s) +Chars 23340 - 23347 [(intros).] 0. secs (0.u,0.s) +Chars 23348 - 23354 [(inv~H).] 0.027 secs (0.027u,0.s) +Chars 23362 - 23375 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 23376 - 23392 [(do~2~Utils.step).] 0.009 secs (0.009u,0.s) +Chars 23393 - 23404 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 23468 - 23469 [-] 0. secs (0.u,0.s) +Chars 23470 - 23511 [(dependent~induction~H;~try~cl...] 0.053 secs (0.052u,0.s) +Chars 23516 - 23517 [+] 0. secs (0.u,0.s) +Chars 23518 - 23526 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23527 - 23531 [(cbn).] 0. secs (0.u,0.s) +Chars 23532 - 23537 [etau.] 0.001 secs (0.001u,0.s) +Chars 23546 - 23547 [+] 0. secs (0.u,0.s) +Chars 23548 - 23556 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23557 - 23561 [(cbn).] 0. secs (0.u,0.s) +Chars 23562 - 23567 [etau.] 0.001 secs (0.001u,0.s) +Chars 23573 - 23574 [+] 0. secs (0.u,0.s) +Chars 23575 - 23583 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 23584 - 23613 [(destruct~e;~cbn;~constructor).] 0.002 secs (0.002u,0.s) +Chars 23621 - 23622 [*] 0. secs (0.u,0.s) +Chars 23623 - 23631 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 23632 - 23646 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 23647 - 23665 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 23666 - 23671 [step.] 0.001 secs (0.001u,0.s) +Chars 23680 - 23688 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23689 - 23701 [constructor.] 0. secs (0.u,0.s) +Chars 23702 - 23707 [auto.] 0. secs (0.u,0.s) +Chars 23714 - 23715 [*] 0. secs (0.u,0.s) +Chars 23716 - 23730 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 23731 - 23749 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 23750 - 23755 [step.] 0.001 secs (0.001u,0.s) +Chars 23765 - 23773 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23774 - 23786 [constructor.] 0. secs (0.u,0.s) +Chars 23787 - 23792 [auto.] 0. secs (0.u,0.s) +Chars 23797 - 23798 [+] 0. secs (0.u,0.s) +Chars 23799 - 23807 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 23809 - 23813 [(cbn).] 0. secs (0.u,0.s) +Chars 23820 - 23859 [(destruct~(observe~b')~eqn:Heq...] 0.002 secs (0.002u,0.s) +Chars 23866 - 23867 [*] 0. secs (0.u,0.s) +Chars 23868 - 23880 [constructor.] 0. secs (0.u,0.s) +Chars 23881 - 23898 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) +Chars 23899 - 23910 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 23919 - 23937 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) +Chars 23938 - 23961 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) +Chars 23962 - 23976 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) +Chars 23985 - 23990 [step.] 0.001 secs (0.001u,0.s) +Chars 23991 - 23996 [auto.] 0. secs (0.u,0.s) +Chars 24003 - 24004 [*] 0. secs (0.u,0.s) +Chars 24005 - 24017 [constructor.] 0. secs (0.u,0.s) +Chars 24018 - 24029 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24031 - 24063 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) +Chars 24072 - 24077 [step.] 0.002 secs (0.002u,0.s) +Chars 24078 - 24083 [auto.] 0. secs (0.u,0.s) +Chars 24090 - 24091 [*] 0. secs (0.u,0.s) +Chars 24092 - 24104 [constructor.] 0. secs (0.u,0.s) +Chars 24105 - 24122 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) +Chars 24123 - 24134 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24143 - 24161 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) +Chars 24162 - 24185 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) +Chars 24186 - 24200 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) +Chars 24201 - 24206 [step.] 0.001 secs (0.001u,0.s) +Chars 24207 - 24212 [auto.] 0. secs (0.u,0.s) +Chars 24217 - 24218 [+] 0. secs (0.u,0.s) +Chars 24219 - 24227 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24228 - 24232 [(cbn).] 0. secs (0.u,0.s) +Chars 24233 - 24270 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) +Chars 24277 - 24278 [*] 0. secs (0.u,0.s) +Chars 24279 - 24297 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 24298 - 24314 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 24315 - 24326 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24335 - 24340 [step.] 0.001 secs (0.001u,0.s) +Chars 24341 - 24354 [(rewrite~Heqb).] 0. secs (0.u,0.s) +Chars 24355 - 24360 [auto.] 0. secs (0.u,0.s) +Chars 24367 - 24368 [*] 0. secs (0.u,0.s) +Chars 24369 - 24381 [constructor.] 0. secs (0.u,0.s) +Chars 24382 - 24393 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24395 - 24420 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 24421 - 24426 [step.] 0.001 secs (0.001u,0.s) +Chars 24427 - 24432 [auto.] 0. secs (0.u,0.s) +Chars 24439 - 24440 [*] 0. secs (0.u,0.s) +Chars 24441 - 24453 [constructor.] 0. secs (0.u,0.s) +Chars 24454 - 24470 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 24471 - 24482 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24483 - 24488 [step.] 0.001 secs (0.001u,0.s) +Chars 24497 - 24510 [(rewrite~Heqb).] 0. secs (0.u,0.s) +Chars 24511 - 24516 [auto.] 0. secs (0.u,0.s) +Chars 24519 - 24520 [-] 0. secs (0.u,0.s) +Chars 24521 - 24548 [(dependent~induction~H;~cbn).] 0.06 secs (0.059u,0.s) +Chars 24553 - 24554 [+] 0. secs (0.u,0.s) +Chars 24556 - 24564 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24565 - 24573 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24574 - 24578 [(cbn).] 0. secs (0.u,0.s) +Chars 24579 - 24591 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 24597 - 24598 [+] 0. secs (0.u,0.s) +Chars 24599 - 24607 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 24608 - 24616 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 24617 - 24621 [(cbn).] 0. secs (0.u,0.s) +Chars 24622 - 24634 [constructor.] 0. secs (0.u,0.s) +Chars 24635 - 24651 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) +Chars 24652 - 24663 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24671 - 24676 [auto.] 0. secs (0.u,0.s) +Chars 24681 - 24682 [+] 0. secs (0.u,0.s) +Chars 24683 - 24691 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 24692 - 24755 [(destruct~e;~cbn;~try~(apply~e...] 0.002 secs (0.002u,0.s) +Chars 24762 - 24774 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 24780 - 24781 [+] 0. secs (0.u,0.s) +Chars 24782 - 24790 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24791 - 24795 [(cbn).] 0. secs (0.u,0.s) +Chars 24796 - 24815 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 24820 - 24821 [+] 0. secs (0.u,0.s) +Chars 24822 - 24830 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24831 - 24835 [(cbn).] 0. secs (0.u,0.s) +Chars 24836 - 24855 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 24856 - 24860 [Qed.] 0.211 secs (0.209u,0.001s) +Chars 24862 - 25005 [Lemma~peel_cont_ret_inv~:~~~fo...] 0. secs (0.u,0.s) +Chars 25006 - 25012 [Proof.] 0. secs (0.u,0.s) +Chars 25015 - 25028 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 25029 - 25047 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 25048 - 25055 [(intros).] 0. secs (0.u,0.s) +Chars 25056 - 25066 [step~in~H.] 0. secs (0.u,0.s) +Chars 25067 - 25076 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 25077 - 25106 [(dependent~induction~H;~subst).] 0.045 secs (0.045u,0.s) +Chars 25109 - 25110 [-] 0. secs (0.u,0.s) +Chars 25111 - 25119 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 25120 - 25124 [(cbn).] 0. secs (0.u,0.s) +Chars 25125 - 25137 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 25141 - 25142 [-] 0. secs (0.u,0.s) +Chars 25143 - 25151 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 25152 - 25182 [(destruct~(observe~b)~eqn:Hb).] 0.001 secs (0.001u,0.s) +Chars 25187 - 25188 [+] 0. secs (0.u,0.s) +Chars 25189 - 25193 [(cbn).] 0. secs (0.u,0.s) +Chars 25194 - 25199 [taul.] 0. secs (0.u,0.s) +Chars 25200 - 25208 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 25209 - 25216 [to_mon.] 0. secs (0.u,0.s) +Chars 25224 - 25245 [(rewrite~<-~itree_eta).] 0.017 secs (0.017u,0.s) +Chars 25253 - 25298 [(specialize~(IHeqitF~CIH~(Ret~...] 0. secs (0.u,0.s) +Chars 25303 - 25304 [+] 0. secs (0.u,0.s) +Chars 25305 - 25309 [(cbn).] 0. secs (0.u,0.s) +Chars 25310 - 25321 [(rewrite~Hb).] 0. secs (0.u,0.s) +Chars 25322 - 25327 [taus.] 0. secs (0.u,0.s) +Chars 25328 - 25353 [(eapply~CIH~with~(s~:=~s)).] 0. secs (0.u,0.s) +Chars 25360 - 25365 [step.] 0.003 secs (0.003u,0.s) +Chars 25366 - 25371 [auto.] 0. secs (0.u,0.s) +Chars 25376 - 25377 [+] 0. secs (0.u,0.s) +Chars 25378 - 25382 [(cbn).] 0. secs (0.u,0.s) +Chars 25383 - 25394 [(rewrite~Hb).] 0. secs (0.u,0.s) +Chars 25395 - 25400 [taul.] 0. secs (0.u,0.s) +Chars 25401 - 25415 [(rewrite~<-~Hb).] 0. secs (0.u,0.s) +Chars 25423 - 25462 [(specialize~(IHeqitF~CIH~b~t1~...] 0.001 secs (0.001u,0.s) +Chars 25469 - 25484 [(assert~(S~=~S)).] 0. secs (0.u,0.s) +Chars 25485 - 25490 [auto.] 0. secs (0.u,0.s) +Chars 25491 - 25511 [(apply~IHeqitF;~auto).] 0.001 secs (0.001u,0.s) +Chars 25512 - 25516 [Qed.] 0.059 secs (0.058u,0.s) +Chars 25518 - 25728 [Lemma~proper_peel_cont_eutt_r~...] 0. secs (0.u,0.s) +Chars 25729 - 25735 [Proof.] 0. secs (0.u,0.s) +Chars 25738 - 25751 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 25752 - 25769 [(unfold~peel_cont).] 0. secs (0.u,0.s) +Chars 25770 - 25786 [(intros~b~t~t'~_).] 0. secs (0.u,0.s) +Chars 25789 - 25803 [revert~b~t~t'.] 0. secs (0.u,0.s) +Chars 25804 - 25822 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 25823 - 25830 [(intros).] 0. secs (0.u,0.s) +Chars 25831 - 25841 [step~in~H.] 0. secs (0.u,0.s) +Chars 25842 - 25864 [dependent~induction~H.] 0.044 secs (0.043u,0.s) +Chars 25867 - 25868 [-] 0. secs (0.u,0.s) +Chars 25869 - 25877 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 25878 - 25890 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 25894 - 25895 [-] 0. secs (0.u,0.s) +Chars 25896 - 25904 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 25905 - 25942 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) +Chars 25947 - 25948 [+] 0. secs (0.u,0.s) +Chars 25949 - 25953 [(cbn).] 0. secs (0.u,0.s) +Chars 25954 - 25959 [taus.] 0. secs (0.u,0.s) +Chars 25960 - 25976 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 25977 - 25988 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 25989 - 25994 [auto.] 0. secs (0.u,0.s) +Chars 25999 - 26000 [+] 0. secs (0.u,0.s) +Chars 26001 - 26006 [etau.] 0.001 secs (0.001u,0.s) +Chars 26012 - 26013 [+] 0. secs (0.u,0.s) +Chars 26014 - 26026 [constructor.] 0. secs (0.u,0.s) +Chars 26027 - 26043 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 26044 - 26061 [(eapply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 26064 - 26065 [-] 0. secs (0.u,0.s) +Chars 26066 - 26074 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 26076 - 26118 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) +Chars 26123 - 26124 [+] 0. secs (0.u,0.s) +Chars 26125 - 26137 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 26143 - 26144 [+] 0. secs (0.u,0.s) +Chars 26145 - 26157 [constructor.] 0. secs (0.u,0.s) +Chars 26158 - 26172 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 26173 - 26184 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 26192 - 26197 [step.] 0.001 secs (0.001u,0.s) +Chars 26198 - 26206 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 26207 - 26219 [constructor.] 0. secs (0.u,0.s) +Chars 26220 - 26227 [(intros).] 0. secs (0.u,0.s) +Chars 26234 - 26239 [auto.] 0. secs (0.u,0.s) +Chars 26244 - 26245 [+] 0. secs (0.u,0.s) +Chars 26246 - 26263 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) +Chars 26270 - 26271 [*] 0. secs (0.u,0.s) +Chars 26272 - 26287 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 26288 - 26292 [(cbn).] 0. secs (0.u,0.s) +Chars 26293 - 26314 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) +Chars 26323 - 26369 [(destruct~(classicT~(A~=~u));~...] 0.003 secs (0.003u,0.s) +Chars 26378 - 26404 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 26405 - 26432 [(remember~(eq_sym~e0)~as~He).] 0.001 secs (0.001u,0.s) +Chars 26441 - 26466 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 26467 - 26471 [(cbn).] 0. secs (0.u,0.s) +Chars 26472 - 26484 [constructor.] 0. secs (0.u,0.s) +Chars 26485 - 26492 [(intros).] 0. secs (0.u,0.s) +Chars 26501 - 26512 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 26513 - 26529 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 26536 - 26537 [*] 0. secs (0.u,0.s) +Chars 26538 - 26550 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 26554 - 26555 [-] 0. secs (0.u,0.s) +Chars 26556 - 26564 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 26565 - 26607 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) +Chars 26612 - 26613 [+] 0. secs (0.u,0.s) +Chars 26614 - 26633 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 26634 - 26650 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 26651 - 26673 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 26678 - 26679 [+] 0. secs (0.u,0.s) +Chars 26680 - 26684 [(cbn).] 0. secs (0.u,0.s) +Chars 26685 - 26724 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 26731 - 26732 [*] 0. secs (0.u,0.s) +Chars 26733 - 26745 [constructor.] 0. secs (0.u,0.s) +Chars 26747 - 26758 [Utils.step.] 0.002 secs (0.002u,0.s) +Chars 26769 - 26781 [unstep~in~H.] 0. secs (0.u,0.s) +Chars 26782 - 26827 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) +Chars 26828 - 26833 [step.] 0.003 secs (0.003u,0.s) +Chars 26842 - 26852 [(rewrite~H).] 0.022 secs (0.022u,0.s) +Chars 26853 - 26865 [reflexivity.] 0. secs (0.u,0.s) +Chars 26873 - 26874 [*] 0. secs (0.u,0.s) +Chars 26875 - 26887 [constructor.] 0. secs (0.u,0.s) +Chars 26888 - 26906 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 26907 - 26939 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.u,0.s) +Chars 26948 - 26953 [step.] 0.001 secs (0.001u,0.s) +Chars 26954 - 26959 [auto.] 0. secs (0.u,0.s) +Chars 26966 - 26967 [*] 0. secs (0.u,0.s) +Chars 26968 - 26980 [constructor.] 0. secs (0.u,0.s) +Chars 26981 - 26998 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) +Chars 26999 - 27010 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 27019 - 27024 [step.] 0.001 secs (0.001u,0.s) +Chars 27025 - 27039 [(rewrite~Heqt').] 0. secs (0.u,0.s) +Chars 27040 - 27045 [auto.] 0. secs (0.u,0.s) +Chars 27050 - 27051 [+] 0. secs (0.u,0.s) +Chars 27052 - 27068 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 27069 - 27087 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 27088 - 27110 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 27113 - 27114 [-] 0. secs (0.u,0.s) +Chars 27115 - 27123 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 27124 - 27166 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) +Chars 27171 - 27172 [+] 0. secs (0.u,0.s) +Chars 27173 - 27191 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 27192 - 27208 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 27209 - 27231 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 27236 - 27237 [+] 0. secs (0.u,0.s) +Chars 27238 - 27275 [(destruct~(observe~t)~eqn:Heqt...] 0.004 secs (0.004u,0.s) +Chars 27282 - 27283 [*] 0. secs (0.u,0.s) +Chars 27290 - 27304 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 27305 - 27317 [unstep~in~H.] 0. secs (0.u,0.s) +Chars 27325 - 27370 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) +Chars 27371 - 27380 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 27388 - 27393 [taus.] 0. secs (0.u,0.s) +Chars 27394 - 27403 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 27404 - 27424 [now~do~2~Utils.step.] 0.01 secs (0.01u,0.s) +Chars 27432 - 27433 [*] 0. secs (0.u,0.s) +Chars 27434 - 27446 [constructor.] 0. secs (0.u,0.s) +Chars 27447 - 27458 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 27460 - 27485 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 27486 - 27491 [step.] 0.001 secs (0.001u,0.s) +Chars 27492 - 27497 [auto.] 0. secs (0.u,0.s) +Chars 27504 - 27505 [*] 0. secs (0.u,0.s) +Chars 27506 - 27518 [constructor.] 0. secs (0.u,0.s) +Chars 27519 - 27535 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) +Chars 27536 - 27547 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 27556 - 27561 [step.] 0.001 secs (0.001u,0.s) +Chars 27562 - 27575 [(rewrite~Heqt).] 0. secs (0.u,0.s) +Chars 27576 - 27581 [auto.] 0. secs (0.u,0.s) +Chars 27586 - 27587 [+] 0. secs (0.u,0.s) +Chars 27588 - 27604 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 27605 - 27623 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 27624 - 27646 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 27647 - 27651 [Qed.] 0.086 secs (0.085u,0.s) +Chars 27653 - 27771 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 27772 - 27778 [Proof.] 0. secs (0.u,0.s) +Chars 27781 - 27794 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 27795 - 27801 [subst.] 0. secs (0.u,0.s) +Chars 27802 - 27841 [(rewrite~proper_peel_cont_eutt...] 0.003 secs (0.003u,0.s) +Chars 27844 - 27883 [(rewrite~proper_peel_cont_eutt...] 0.002 secs (0.002u,0.s) +Chars 27884 - 27888 [Qed.] 0.001 secs (0.001u,0.s) +Chars 28280 - 28577 [Lemma~vis_refine_peel~:~~~fora...] 0.001 secs (0.001u,0.s) +Chars 28578 - 28584 [Proof.] 0. secs (0.u,0.s) +Chars 28587 - 28602 [(intros~E~R~S~A).] 0. secs (0.u,0.s) +Chars 28628 - 28654 [(intros~e~a~k1~k2~k3~Hpeel).] 0. secs (0.u,0.s) +Chars 28657 - 28674 [(unfold~peel~in~*).] 0. secs (0.u,0.s) +Chars 28675 - 28684 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 28685 - 28699 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 28702 - 28711 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 28715 - 28739 [(unfold~observe~in~Hpeel).] 0. secs (0.u,0.s) +Chars 28740 - 28753 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) +Chars 28756 - 28781 [(unfold~peel_vis~in~Hpeel).] 0. secs (0.u,0.s) +Chars 28784 - 28807 [(assert~(A~=~A)~by~auto).] 0. secs (0.u,0.s) +Chars 28810 - 28858 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 28859 - 28894 [(unfold~eq_rect_r,~eq_rect~in~...] 0. secs (0.u,0.s) +Chars 28897 - 28924 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 28925 - 28950 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 28951 - 28960 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 28963 - 28980 [clear~HeqHe~e0~H.] 0. secs (0.u,0.s) +Chars 28981 - 28986 [step.] 0.002 secs (0.002u,0.s) +Chars 28987 - 28991 [(cbn).] 0. secs (0.u,0.s) +Chars 28992 - 29002 [(inv~Hpeel).] 0.009 secs (0.009u,0.s) +Chars 29003 - 29016 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 29020 - 29040 [specialize~(REL~tt).] 0. secs (0.u,0.s) +Chars 29043 - 29104 [(assert~(peel_~(observe~(k1~tt...] 0. secs (0.u,0.s) +Chars 29105 - 29110 [auto.] 0. secs (0.u,0.s) +Chars 29113 - 29127 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 29128 - 29142 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 29143 - 29147 [Qed.] 0.011 secs (0.011u,0.s) +Chars 29149 - 29460 [Lemma~vis_refine_peel_cont~:~~...] 0.001 secs (0.001u,0.s) +Chars 29461 - 29467 [Proof.] 0. secs (0.u,0.s) +Chars 29470 - 29507 [(intros~E~R~S~A~e~a~k1~k2~t~Hp...] 0. secs (0.u,0.s) +Chars 29508 - 29526 [step~in~Hpeelcont.] 0. secs (0.u,0.s) +Chars 29529 - 29562 [(unfold~observe~in~Hpeelcont~a...] 0. secs (0.u,0.s) +Chars 29563 - 29572 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 29573 - 29599 [(unfold~peel_cont_vis~in~*).] 0. secs (0.u,0.s) +Chars 29602 - 29623 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) +Chars 29624 - 29672 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 29675 - 29706 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) +Chars 29707 - 29734 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 29737 - 29762 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) +Chars 29763 - 29772 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 29773 - 29782 [symmetry.] 0. secs (0.u,0.s) +Chars 29785 - 29856 [(assert~(Tau~(peel_cont_~(obse...] 0. secs (0.u,0.s) +Chars 29859 - 29860 [{] 0. secs (0.u,0.s) +Chars 29861 - 29866 [step.] 0.001 secs (0.001u,0.s) +Chars 29867 - 29872 [auto.] 0. secs (0.u,0.s) +Chars 29873 - 29874 [}] 0. secs (0.u,0.s) +Chars 29877 - 29900 [(rewrite~tau_eutt~in~H0).] 0.018 secs (0.018u,0.s) +Chars 29901 - 29906 [auto.] 0. secs (0.u,0.s) +Chars 29907 - 29911 [Qed.] 0.005 secs (0.005u,0.s) +Chars 29913 - 30062 [Lemma~spin_not_vis~:~~~forall~...] 0. secs (0.u,0.s) +Chars 30063 - 30069 [Proof.] 0. secs (0.u,0.s) +Chars 30072 - 30097 [(intros~E~R~A~e~k~Hcontra).] 0. secs (0.u,0.s) +Chars 30098 - 30114 [step~in~Hcontra.] 0. secs (0.u,0.s) +Chars 30115 - 30124 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 30127 - 30155 [dependent~induction~Hcontra.] 0.02 secs (0.02u,0.s) +Chars 30158 - 30182 [(eapply~IHHcontra;~eauto).] 0. secs (0.u,0.s) +Chars 30183 - 30187 [Qed.] 0.01 secs (0.01u,0.s) +Chars 30189 - 30629 [Lemma~peel_vis_empty_contra~:~...] 0.001 secs (0.001u,0.s) +Chars 30630 - 30636 [Proof.] 0. secs (0.u,0.s) +Chars 30639 - 30685 [(intros~R~E~S~A0~Hempty~ev~k0~...] 0. secs (0.u,0.s) +Chars 30688 - 30714 [dependent~induction~Hpeel.] 0.043 secs (0.042u,0.s) +Chars 30717 - 30718 [-] 0. secs (0.u,0.s) +Chars 30719 - 30767 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 30770 - 30771 [-] 0. secs (0.u,0.s) +Chars 30772 - 30824 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 30825 - 30834 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 30835 - 30854 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 30859 - 30882 [(rewrite~Ht1~in~IHHpeel).] 0. secs (0.u,0.s) +Chars 30883 - 30905 [(eapply~IHHpeel;~eauto).] 0.002 secs (0.002u,0.s) +Chars 30906 - 30910 [Qed.] 0.024 secs (0.024u,0.s) +Chars 30913 - 31207 [Lemma~vis_peel_l~:~~~forall~(E...] 0.001 secs (0.001u,0.s) +Chars 31208 - 31214 [Proof.] 0. secs (0.u,0.s) +Chars 31217 - 31255 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) +Chars 31258 - 31272 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 31273 - 31286 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) +Chars 31287 - 31313 [dependent~induction~Hpeel.] 0.049 secs (0.048u,0.s) +Chars 31316 - 31317 [-] 0. secs (0.u,0.s) +Chars 31318 - 31335 [(unfold~peel~in~x).] 0. secs (0.u,0.s) +Chars 31340 - 31463 [(destruct~(observe~b)~eqn:Heqb...] 0.032 secs (0.032u,0.s) +Chars 31464 - 31484 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 31485 - 31494 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 31499 - 31520 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 31525 - 31542 [(assert~(A0~=~X0)).] 0. secs (0.u,0.s) +Chars 31547 - 31548 [{] 0. secs (0.u,0.s) +Chars 31555 - 31563 [clear~x.] 0. secs (0.u,0.s) +Chars 31570 - 31587 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 31588 - 31605 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 31606 - 31628 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 31629 - 31651 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 31658 - 31679 [(rewrite~Heqb~in~Href).] 0.004 secs (0.004u,0.s) +Chars 31680 - 31701 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 31708 - 31733 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 31740 - 31753 [step~in~Href.] 0. secs (0.u,0.s) +Chars 31754 - 31763 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 31764 - 31773 [(inv~Href).] 0.016 secs (0.015u,0.s) +Chars 31780 - 31793 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 31794 - 31800 [subst.] 0. secs (0.u,0.s) +Chars 31801 - 31808 [(inv~H1).] 0.003 secs (0.003u,0.s) +Chars 31814 - 31815 [}] 0. secs (0.u,0.s) +Chars 31820 - 31877 [(destruct~(classicT~(A0~=~X0))...] 0.001 secs (0.001u,0.s) +Chars 31882 - 31913 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 31914 - 31941 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 31946 - 31971 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 31972 - 31981 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 31982 - 32004 [injection~x~as~Hevans.] 0.001 secs (0.001u,0.s) +Chars 32009 - 32022 [ddestruction.] 0.01 secs (0.01u,0.s) +Chars 32023 - 32029 [subst.] 0. secs (0.u,0.s) +Chars 32030 - 32043 [ddestruction.] 0. secs (0.u,0.s) +Chars 32044 - 32050 [subst.] 0. secs (0.u,0.s) +Chars 32051 - 32061 [exists~k0.] 0. secs (0.u,0.s) +Chars 32066 - 32083 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32084 - 32106 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 32107 - 32120 [(rewrite~Heqb).] 0.002 secs (0.002u,0.s) +Chars 32121 - 32133 [reflexivity.] 0. secs (0.u,0.s) +Chars 32136 - 32137 [-] 0. secs (0.u,0.s) +Chars 32138 - 32155 [(unfold~peel~in~x).] 0. secs (0.u,0.s) +Chars 32156 - 32279 [(destruct~(observe~b)~eqn:Heqb...] 0.046 secs (0.046u,0.s) +Chars 32284 - 32285 [+] 0. secs (0.u,0.s) +Chars 32286 - 32303 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32304 - 32326 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 32327 - 32348 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) +Chars 32355 - 32380 [(rewrite~tau_eutt~in~Href).] 0.007 secs (0.007u,0.s) +Chars 32381 - 32411 [(eapply~IHHpeel~in~Href;~eauto).] 0.003 secs (0.003u,0.s) +Chars 32412 - 32424 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 32431 - 32444 [(rewrite~Heqb).] 0. secs (0.u,0.s) +Chars 32445 - 32450 [auto.] 0. secs (0.u,0.s) +Chars 32455 - 32456 [+] 0. secs (0.u,0.s) +Chars 32457 - 32465 [exfalso.] 0. secs (0.u,0.s) +Chars 32466 - 32486 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) +Chars 32487 - 32492 [step.] 0.005 secs (0.005u,0.s) +Chars 32493 - 32499 [eauto.] 0. secs (0.u,0.s) +Chars 32504 - 32505 [+] 0. secs (0.u,0.s) +Chars 32506 - 32523 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32524 - 32541 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32542 - 32564 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 32571 - 32593 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 32594 - 32614 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) +Chars 32615 - 32639 [setoid_rewrite~tau_eutt.] 0.004 secs (0.004u,0.s) +Chars 32646 - 32667 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 32668 - 32689 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) +Chars 32690 - 32722 [(repeat~rewrite~tau_eutt~in~Hr...] 0.009 secs (0.009u,0.s) +Chars 32729 - 32759 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) +Chars 32764 - 32765 [+] 0. secs (0.u,0.s) +Chars 32766 - 32783 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32784 - 32801 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32802 - 32824 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 32825 - 32847 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 32854 - 32874 [setoid_rewrite~Heqb.] 0.003 secs (0.003u,0.s) +Chars 32875 - 32899 [setoid_rewrite~tau_eutt.] 0.004 secs (0.004u,0.s) +Chars 32900 - 32921 [(rewrite~Heqb~in~Href).] 0.004 secs (0.003u,0.s) +Chars 32928 - 32949 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) +Chars 32950 - 32982 [(repeat~rewrite~tau_eutt~in~Hr...] 0.004 secs (0.004u,0.s) +Chars 32989 - 33019 [(eapply~IHHpeel~in~Href;~eauto).] 0.003 secs (0.003u,0.s) +Chars 33024 - 33025 [+] 0. secs (0.u,0.s) +Chars 33026 - 33043 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 33044 - 33066 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 33067 - 33088 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33095 - 33120 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33127 - 33144 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 33145 - 33167 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 33168 - 33189 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 33196 - 33216 [setoid_rewrite~Heqb.] 0.003 secs (0.003u,0.s) +Chars 33217 - 33247 [(eapply~IHHpeel~in~Href;~eauto).] 0.004 secs (0.004u,0.s) +Chars 33252 - 33253 [+] 0. secs (0.u,0.s) +Chars 33254 - 33262 [exfalso.] 0. secs (0.u,0.s) +Chars 33263 - 33299 [(eapply~peel_vis_empty_contra;...] 0. secs (0.u,0.s) +Chars 33304 - 33305 [+] 0. secs (0.u,0.s) +Chars 33306 - 33326 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 33327 - 33336 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 33337 - 33358 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 33365 - 33382 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 33383 - 33400 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 33401 - 33423 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 33430 - 33452 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 33453 - 33474 [(rewrite~Heqb~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33475 - 33496 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33503 - 33528 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33529 - 33542 [step~in~Href.] 0. secs (0.u,0.s) +Chars 33543 - 33552 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 33559 - 33568 [(inv~Href).] 0.02 secs (0.02u,0.s) +Chars 33569 - 33582 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 33583 - 33589 [subst.] 0. secs (0.u,0.s) +Chars 33590 - 33597 [(inv~H1).] 0.012 secs (0.012u,0.s) +Chars 33598 - 33625 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 33632 - 33655 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) +Chars 33656 - 33706 [(destruct~(classicT~(A0~=~A0))...] 0.001 secs (0.001u,0.s) +Chars 33713 - 33744 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) +Chars 33745 - 33772 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 33779 - 33804 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 33805 - 33814 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 33815 - 33828 [discriminate.] 0. secs (0.u,0.s) +Chars 33829 - 33833 [Qed.] 0.138 secs (0.136u,0.001s) +Chars 33835 - 34117 [Lemma~vis_peel_r~:~~~forall~(E...] 0.001 secs (0.001u,0.s) +Chars 34118 - 34124 [Proof.] 0. secs (0.u,0.s) +Chars 34127 - 34165 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) +Chars 34168 - 34212 [(eapply~vis_peel_l~in~Hpeel~as...] 0.001 secs (0.001u,0.s) +Chars 34213 - 34240 [(destruct~Hpeell~as~[k'~Hb]).] 0. secs (0.u,0.s) +Chars 34243 - 34262 [(rewrite~Hb~in~Href).] 0.004 secs (0.004u,0.s) +Chars 34263 - 34283 [(rewrite~Hb~in~Hpeel).] 0.026 secs (0.025u,0.s) +Chars 34284 - 34295 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 34296 - 34310 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 34311 - 34320 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34323 - 34344 [(unfold~peel~in~Hpeel).] 0. secs (0.u,0.s) +Chars 34345 - 34354 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34355 - 34381 [dependent~induction~Hpeel.] 0.057 secs (0.056u,0.s) +Chars 34384 - 34385 [-] 0. secs (0.u,0.s) +Chars 34386 - 34443 [(destruct~(observe~t)~eqn:Heqt...] 0.011 secs (0.011u,0.s) +Chars 34448 - 34465 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 34466 - 34488 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 34489 - 34509 [setoid_rewrite~Heqt.] 0.002 secs (0.002u,0.s) +Chars 34514 - 34534 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 34535 - 34544 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34545 - 34566 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 34567 - 34629 [(destruct~(classicT~(A~=~X));~...] 0.001 secs (0.001u,0.s) +Chars 34634 - 34665 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 34666 - 34693 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) +Chars 34698 - 34723 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 34724 - 34733 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34734 - 34744 [exists~k0.] 0. secs (0.u,0.s) +Chars 34749 - 34770 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 34771 - 34796 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.003u,0.s) +Chars 34797 - 34810 [step~in~Href.] 0. secs (0.u,0.s) +Chars 34816 - 34825 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34826 - 34835 [(inv~Href).] 0.016 secs (0.016u,0.s) +Chars 34836 - 34856 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 34857 - 34864 [(inv~H1).] 0.007 secs (0.007u,0.s) +Chars 34865 - 34885 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 34886 - 34898 [reflexivity.] 0. secs (0.u,0.s) +Chars 34901 - 34902 [-] 0. secs (0.u,0.s) +Chars 34903 - 34970 [(destruct~(observe~t)~eqn:Heqt...] 0.009 secs (0.009u,0.s) +Chars 34975 - 34976 [+] 0. secs (0.u,0.s) +Chars 34977 - 34994 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 34995 - 35017 [(apply~simpobs~in~Heqt).] 0.003 secs (0.003u,0.s) +Chars 35018 - 35039 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) +Chars 35040 - 35065 [(rewrite~tau_eutt~in~Href).] 0.005 secs (0.005u,0.s) +Chars 35072 - 35092 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) +Chars 35093 - 35117 [setoid_rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 35118 - 35140 [(eapply~IHHpeel;~eauto).] 0.003 secs (0.002u,0.s) +Chars 35145 - 35146 [+] 0. secs (0.u,0.s) +Chars 35147 - 35167 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 35168 - 35177 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 35178 - 35199 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 35206 - 35235 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 35242 - 35243 [*] 0. secs (0.u,0.s) +Chars 35244 - 35275 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 35276 - 35303 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) +Chars 35304 - 35329 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 35338 - 35347 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 35348 - 35361 [discriminate.] 0. secs (0.u,0.s) +Chars 35368 - 35369 [*] 0. secs (0.u,0.s) +Chars 35370 - 35379 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 35380 - 35399 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 35400 - 35421 [(rewrite~Ht1~in~Hpeel).] 0. secs (0.u,0.s) +Chars 35430 - 35438 [exfalso.] 0. secs (0.u,0.s) +Chars 35439 - 35459 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) +Chars 35460 - 35465 [step.] 0.006 secs (0.006u,0.s) +Chars 35466 - 35472 [eauto.] 0. secs (0.u,0.s) +Chars 35473 - 35477 [Qed.] 0.067 secs (0.066u,0.s) +Chars 35479 - 35762 [Lemma~peel_cont_vis_eutt~:~~~f...] 0.001 secs (0.001u,0.s) +Chars 35763 - 35769 [Proof.] 0. secs (0.u,0.s) +Chars 35772 - 35802 [(intros~R~r~E~S~A~ev~ans~kb~kt).] 0. secs (0.u,0.s) +Chars 35805 - 35810 [step.] 0.002 secs (0.002u,0.s) +Chars 35811 - 35831 [(unfold~observe~at~1).] 0. secs (0.u,0.s) +Chars 35832 - 35836 [(cbn).] 0. secs (0.u,0.s) +Chars 35837 - 35858 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) +Chars 35861 - 35882 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) +Chars 35883 - 35930 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 35933 - 35959 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 35960 - 35986 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 35989 - 36014 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 36015 - 36019 [(cbn).] 0. secs (0.u,0.s) +Chars 36020 - 36038 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 36040 - 36044 [Qed.] 0.004 secs (0.004u,0.s) +Chars 36046 - 36331 [Lemma~peel_cont_refine_t~:~~~f...] 0. secs (0.u,0.s) +Chars 36332 - 36338 [Proof.] 0. secs (0.u,0.s) +Chars 36341 - 36348 [(intros).] 0. secs (0.u,0.s) +Chars 36349 - 36375 [(remember~(peel~b~t)~as~t').] 0. secs (0.u,0.s) +Chars 36376 - 36401 [(assert~(peel~b~t~≈~t')).] 0. secs (0.u,0.s) +Chars 36404 - 36405 [{] 0. secs (0.u,0.s) +Chars 36406 - 36412 [subst.] 0. secs (0.u,0.s) +Chars 36413 - 36425 [reflexivity.] 0. secs (0.u,0.s) +Chars 36426 - 36427 [}] 0. secs (0.u,0.s) +Chars 36430 - 36442 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 36443 - 36466 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 36467 - 36490 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 36493 - 36513 [(induction~H;~intros).] 0. secs (0.u,0.s) +Chars 36516 - 36517 [-] 0. secs (0.u,0.s) +Chars 36518 - 36537 [(rewrite~<-~H0~in~H).] 0.023 secs (0.023u,0.s) +Chars 36538 - 36547 [clear~H0.] 0. secs (0.u,0.s) +Chars 36548 - 36578 [(apply~peel_ret_inv~in~H~as~Ht).] 0. secs (0.u,0.s) +Chars 36583 - 36603 [(rewrite~Ht~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 36608 - 36636 [(rewrite~bind_ret_l~in~Hrutt).] 0.003 secs (0.003u,0.s) +Chars 36641 - 36657 [(rewrite~Ht~in~H).] 0.025 secs (0.025u,0.s) +Chars 36662 - 36679 [(unfold~peel_cont).] 0. secs (0.u,0.s) +Chars 36680 - 36684 [(cbn).] 0. secs (0.u,0.s) +Chars 36685 - 36718 [(rewrite~peel_cont_ret_inv;~ea...] 0.004 secs (0.004u,0.s) +Chars 36721 - 36722 [-] 0. secs (0.u,0.s) +Chars 36723 - 36739 [(rewrite~H~in~H1).] 0. secs (0.u,0.s) +Chars 36740 - 36748 [clear~H.] 0. secs (0.u,0.s) +Chars 36753 - 36783 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) +Chars 36784 - 36821 [(eapply~vis_peel_l~in~H1~as~Hb...] 0.001 secs (0.001u,0.s) +Chars 36826 - 36863 [(eapply~vis_peel_r~in~H1~as~Ht...] 0.001 secs (0.001u,0.s) +Chars 36868 - 36892 [(destruct~Hb~as~[kb~Hkb]).] 0. secs (0.u,0.s) +Chars 36893 - 36917 [(destruct~Ht~as~[kt~Htk]).] 0. secs (0.u,0.s) +Chars 36922 - 36934 [(rewrite~Htk).] 0.006 secs (0.006u,0.s) +Chars 36935 - 36947 [(rewrite~Hkb).] 0.005 secs (0.005u,0.s) +Chars 36952 - 36973 [(rewrite~Hkb~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 36974 - 36995 [(rewrite~Htk~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 37000 - 37018 [(rewrite~Hkb~in~H1).] 0.021 secs (0.021u,0.s) +Chars 37019 - 37037 [(rewrite~Htk~in~H1).] 0.022 secs (0.022u,0.s) +Chars 37042 - 37076 [(apply~vis_refine_peel~in~H1~a...] 0. secs (0.u,0.s) +Chars 37081 - 37108 [(rewrite~peel_cont_vis_eutt).] 0.005 secs (0.005u,0.s) +Chars 37109 - 37136 [(apply~IHmay_converge;~auto).] 0.001 secs (0.001u,0.s) +Chars 37141 - 37142 [+] 0. secs (0.u,0.s) +Chars 37143 - 37169 [(rewrite~bind_vis~in~Hrutt).] 0.003 secs (0.003u,0.s) +Chars 37170 - 37184 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 37185 - 37194 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 37201 - 37211 [(inv~Hrutt).] 0.012 secs (0.012u,0.s) +Chars 37212 - 37232 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 37239 - 37310 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 37317 - 37331 [(apply~H8~in~H).] 0. secs (0.u,0.s) +Chars 37333 - 37338 [auto.] 0. secs (0.u,0.s) +Chars 37343 - 37344 [+] 0. secs (0.u,0.s) +Chars 37345 - 37356 [(destruct~b).] 0. secs (0.u,0.s) +Chars 37357 - 37366 [symmetry.] 0. secs (0.u,0.s) +Chars 37367 - 37372 [auto.] 0. secs (0.u,0.s) +Chars 37373 - 37377 [Qed.] 0.018 secs (0.018u,0.s) +Chars 37380 - 37681 [Ltac~~fold_peel_cont~r~:=~~~ma...] 0. secs (0.u,0.s) +Chars 37683 - 38045 [Lemma~trace_prefix_tau_ret~:~~...] 0.001 secs (0.001u,0.s) +Chars 38046 - 38052 [Proof.] 0. secs (0.u,0.s) +Chars 38055 - 38098 [(intros~E~R~S~r~b~t~f~r0~Hrutt...] 0. secs (0.u,0.s) +Chars 38101 - 38118 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 38119 - 38136 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 38139 - 38161 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 38162 - 38184 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 38185 - 38207 [(rewrite~Heqb~in~Hrutt).] 0.003 secs (0.003u,0.s) +Chars 38210 - 38232 [(rewrite~Heqt~in~Hrutt).] 0.005 secs (0.005u,0.s) +Chars 38233 - 38259 [(rewrite~tau_eutt~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 38262 - 38300 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 38301 - 38313 [constructor.] 0. secs (0.u,0.s) +Chars 38316 - 38348 [(assert~(exists~s,~t0~≈~Ret~s)).] 0. secs (0.u,0.s) +Chars 38351 - 38352 [{] 0. secs (0.u,0.s) +Chars 38357 - 38371 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 38372 - 38398 [dependent~induction~Hrutt.] 0.028 secs (0.028u,0.s) +Chars 38403 - 38404 [-] 0. secs (0.u,0.s) +Chars 38405 - 38425 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 38426 - 38435 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 38436 - 38496 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) +Chars 38503 - 38513 [exists~r1.] 0. secs (0.u,0.s) +Chars 38514 - 38519 [step.] 0.001 secs (0.001u,0.s) +Chars 38520 - 38532 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 38533 - 38537 [(cbn).] 0. secs (0.u,0.s) +Chars 38538 - 38554 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 38559 - 38560 [-] 0. secs (0.u,0.s) +Chars 38561 - 38581 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 38582 - 38591 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 38592 - 38652 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) +Chars 38659 - 38660 [+] 0. secs (0.u,0.s) +Chars 38661 - 38671 [exists~r1.] 0. secs (0.u,0.s) +Chars 38672 - 38677 [step.] 0.001 secs (0.001u,0.s) +Chars 38678 - 38690 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 38691 - 38695 [(cbn).] 0. secs (0.u,0.s) +Chars 38696 - 38712 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 38719 - 38720 [+] 0. secs (0.u,0.s) +Chars 38721 - 38740 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 38741 - 38757 [symmetry~in~Ht0.] 0. secs (0.u,0.s) +Chars 38758 - 38779 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) +Chars 38788 - 38821 [(apply~eq_sub_eutt~in~Ht0~as~H...] 0. secs (0.u,0.s) +Chars 38822 - 38842 [setoid_rewrite~Ht0'.] 0.004 secs (0.003u,0.s) +Chars 38851 - 38875 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 38876 - 38898 [(eapply~IHHrutt;~eauto).] 0.004 secs (0.004u,0.s) +Chars 38907 - 38919 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 38920 - 38926 [eauto.] 0. secs (0.u,0.s) +Chars 38929 - 38930 [}] 0. secs (0.u,0.s) +Chars 38933 - 38955 [(destruct~H~as~[s~Ht0]).] 0. secs (0.u,0.s) +Chars 38956 - 38968 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 38969 - 38980 [(cbn~in~Ht0).] 0. secs (0.u,0.s) +Chars 38983 - 39000 [clear~Heqt~Hrutt.] 0. secs (0.u,0.s) +Chars 39003 - 39027 [dependent~induction~Ht0.] 0.029 secs (0.029u,0.s) +Chars 39030 - 39031 [-] 0. secs (0.u,0.s) +Chars 39032 - 39040 [simpobs.] 0. secs (0.u,0.s) +Chars 39041 - 39045 [(cbn).] 0. secs (0.u,0.s) +Chars 39046 - 39059 [step~in~Heqb.] 0. secs (0.u,0.s) +Chars 39060 - 39069 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 39070 - 39094 [(inv~Heqb;~try~inv~CHECK).] 0.012 secs (0.012u,0.s) +Chars 39099 - 39110 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 39111 - 39127 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 39130 - 39131 [-] 0. secs (0.u,0.s) +Chars 39132 - 39140 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 39141 - 39145 [(cbn).] 0. secs (0.u,0.s) +Chars 39146 - 39158 [constructor.] 0. secs (0.u,0.s) +Chars 39159 - 39179 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 39180 - 39184 [Qed.] 0.05 secs (0.05u,0.s) +Chars 39186 - 39988 [Lemma~trace_prefix_vis_evans~:...] 0.002 secs (0.002u,0.s) +Chars 39989 - 39995 [Proof.] 0. secs (0.u,0.s) +Chars 39998 - 40045 [(intros~E~R~S~r~A0~ev~ans~k~k'...] 0. secs (0.u,0.s) +Chars 40048 - 40060 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 40061 - 40070 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 40071 - 40095 [dependent~induction~Ht0.] 0.045 secs (0.044u,0.s) +Chars 40098 - 40099 [-] 0. secs (0.u,0.s) +Chars 40100 - 40108 [simpobs.] 0. secs (0.u,0.s) +Chars 40109 - 40124 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 40125 - 40129 [(cbn).] 0. secs (0.u,0.s) +Chars 40130 - 40146 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 40151 - 40174 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) +Chars 40175 - 40224 [(destruct~(classicT~(A0~=~A0))...] 0. secs (0.u,0.s) +Chars 40229 - 40255 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 40256 - 40282 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 40287 - 40312 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 40313 - 40317 [(cbn).] 0. secs (0.u,0.s) +Chars 40318 - 40330 [constructor.] 0. secs (0.u,0.s) +Chars 40331 - 40342 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 40348 - 40420 [(assert~(RAnsRef~E~unit~A0~(ev...] 0. secs (0.u,0.s) +Chars 40425 - 40441 [(apply~Hk'~in~H0).] 0. secs (0.u,0.s) +Chars 40443 - 40485 [(assert~(k1~ans~≈~k'~ans);~try...] 0. secs (0.u,0.s) +Chars 40490 - 40501 [(rewrite~H1).] 0.004 secs (0.004u,0.s) +Chars 40502 - 40508 [eauto.] 0. secs (0.u,0.s) +Chars 40511 - 40512 [-] 0. secs (0.u,0.s) +Chars 40513 - 40521 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 40522 - 40526 [(cbn).] 0. secs (0.u,0.s) +Chars 40527 - 40539 [constructor.] 0. secs (0.u,0.s) +Chars 40540 - 40560 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 40561 - 40565 [Qed.] 0.033 secs (0.033u,0.s) +Chars 40567 - 41225 [Lemma~trace_prefix_vis_evempty...] 0.001 secs (0.001u,0.s) +Chars 41226 - 41232 [Proof.] 0. secs (0.u,0.s) +Chars 41235 - 41280 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) +Chars 41283 - 41287 [(cbn).] 0. secs (0.u,0.s) +Chars 41288 - 41300 [constructor.] 0. secs (0.u,0.s) +Chars 41303 - 41327 [dependent~induction~Ht0.] 0.036 secs (0.036u,0.s) +Chars 41330 - 41331 [-] 0. secs (0.u,0.s) +Chars 41332 - 41340 [simpobs.] 0. secs (0.u,0.s) +Chars 41341 - 41345 [(cbn).] 0. secs (0.u,0.s) +Chars 41346 - 41358 [constructor.] 0. secs (0.u,0.s) +Chars 41361 - 41362 [-] 0. secs (0.u,0.s) +Chars 41363 - 41371 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 41372 - 41376 [(cbn).] 0. secs (0.u,0.s) +Chars 41377 - 41389 [constructor.] 0. secs (0.u,0.s) +Chars 41390 - 41410 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 41411 - 41415 [Qed.] 0.043 secs (0.042u,0.s) +Chars 41418 - 41969 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) +Chars 41970 - 41976 [Proof.] 0. secs (0.u,0.s) +Chars 41979 - 42015 [(intros~E~R~S~r~A0~ev~ans~k~t0...] 0. secs (0.u,0.s) +Chars 42018 - 42030 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 42031 - 42040 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 42041 - 42065 [dependent~induction~Ht0.] 0.044 secs (0.043u,0.s) +Chars 42068 - 42069 [-] 0. secs (0.u,0.s) +Chars 42070 - 42078 [simpobs.] 0. secs (0.u,0.s) +Chars 42079 - 42083 [(cbn).] 0. secs (0.u,0.s) +Chars 42084 - 42132 [(remember~(go~(VisF~(evans~A0~...] 0. secs (0.u,0.s) +Chars 42137 - 42184 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) +Chars 42189 - 42190 [{] 0. secs (0.u,0.s) +Chars 42191 - 42197 [subst.] 0. secs (0.u,0.s) +Chars 42198 - 42203 [auto.] 0. secs (0.u,0.s) +Chars 42204 - 42205 [}] 0. secs (0.u,0.s) +Chars 42210 - 42222 [constructor.] 0. secs (0.u,0.s) +Chars 42225 - 42226 [-] 0. secs (0.u,0.s) +Chars 42227 - 42235 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 42236 - 42240 [(cbn).] 0. secs (0.u,0.s) +Chars 42241 - 42253 [constructor.] 0. secs (0.u,0.s) +Chars 42254 - 42274 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 42275 - 42279 [Qed.] 0.016 secs (0.016u,0.s) +Chars 42281 - 42878 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) +Chars 42879 - 42885 [Proof.] 0. secs (0.u,0.s) +Chars 42888 - 42927 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) +Chars 42930 - 42942 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 42943 - 42952 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 42953 - 42977 [dependent~induction~Ht0.] 0.035 secs (0.035u,0.s) +Chars 42980 - 42981 [-] 0. secs (0.u,0.s) +Chars 42982 - 42990 [simpobs.] 0. secs (0.u,0.s) +Chars 42991 - 42995 [(cbn).] 0. secs (0.u,0.s) +Chars 42996 - 43049 [(remember~(go~(VisF~(evempty~A...] 0. secs (0.u,0.s) +Chars 43054 - 43101 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) +Chars 43106 - 43107 [{] 0. secs (0.u,0.s) +Chars 43108 - 43114 [subst.] 0. secs (0.u,0.s) +Chars 43115 - 43120 [auto.] 0. secs (0.u,0.s) +Chars 43121 - 43122 [}] 0. secs (0.u,0.s) +Chars 43127 - 43139 [constructor.] 0.002 secs (0.002u,0.s) +Chars 43142 - 43143 [-] 0. secs (0.u,0.s) +Chars 43144 - 43152 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43153 - 43157 [(cbn).] 0. secs (0.u,0.s) +Chars 43158 - 43170 [constructor.] 0. secs (0.u,0.s) +Chars 43171 - 43191 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 43192 - 43196 [Qed.] 0.016 secs (0.016u,0.s) +Chars 43198 - 43409 [Lemma~trace_prefix_peel~:~~~fo...] 0. secs (0.u,0.s) +Chars 43410 - 43416 [Proof.] 0. secs (0.u,0.s) +Chars 43419 - 43432 [(intros~E~S~R).] 0. secs (0.u,0.s) +Chars 43433 - 43451 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 43452 - 43470 [(intros~b~t~f~Href).] 0. secs (0.u,0.s) +Chars 43471 - 43483 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 43486 - 43562 [(destruct~(observe~b)~eqn:Heqb...] 0.003 secs (0.003u,0.s) +Chars 43566 - 43567 [-] 0. secs (0.u,0.s) +Chars 43568 - 43572 [(cbn).] 0. secs (0.u,0.s) +Chars 43573 - 43589 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 43593 - 43594 [-] 0. secs (0.u,0.s) +Chars 43595 - 43603 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43604 - 43639 [(eapply~trace_prefix_tau_ret;~...] 0. secs (0.u,0.s) +Chars 43642 - 43643 [-] 0. secs (0.u,0.s) +Chars 43644 - 43661 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 43662 - 43679 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 43680 - 43702 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 43703 - 43725 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 43730 - 43751 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 43752 - 43773 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) +Chars 43774 - 43799 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 43804 - 43814 [sinv~Href.] 0.003 secs (0.003u,0.s) +Chars 43817 - 43818 [-] 0. secs (0.u,0.s) +Chars 43819 - 43827 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43828 - 43844 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 43847 - 43848 [-] 0. secs (0.u,0.s) +Chars 43849 - 43857 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43858 - 43870 [constructor.] 0. secs (0.u,0.s) +Chars 43871 - 43882 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 43884 - 43901 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 43902 - 43919 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 43924 - 43946 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 43947 - 43969 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 43970 - 43991 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 43992 - 44013 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 44018 - 44050 [(repeat~rewrite~tau_eutt~in~Hr...] 0.011 secs (0.011u,0.s) +Chars 44051 - 44057 [eauto.] 0. secs (0.u,0.s) +Chars 44060 - 44061 [-] 0. secs (0.u,0.s) +Chars 44062 - 44070 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 44071 - 44083 [constructor.] 0. secs (0.u,0.s) +Chars 44084 - 44100 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) +Chars 44101 - 44112 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 44118 - 44135 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 44136 - 44158 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 44159 - 44180 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 44185 - 44210 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 44211 - 44217 [eauto.] 0. secs (0.u,0.s) +Chars 44220 - 44221 [-] 0. secs (0.u,0.s) +Chars 44222 - 44230 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 44231 - 44281 [(destruct~e;~cbn;~rewrite~<-~H...] 0.002 secs (0.001u,0.s) +Chars 44284 - 44285 [-] 0. secs (0.u,0.s) +Chars 44286 - 44294 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 44295 - 44312 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 44313 - 44335 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 44340 - 44361 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 44366 - 44406 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 44407 - 44445 [(destruct~Hbt~as~[A~[e0~[k0~Hv...] 0.003 secs (0.003u,0.s) +Chars 44450 - 44467 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 44468 - 44490 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 44491 - 44512 [(rewrite~Heqt~in~Hvis).] 0.011 secs (0.011u,0.s) +Chars 44517 - 44542 [(rewrite~tau_eutt~in~Hvis).] 0.008 secs (0.008u,0.s) +Chars 44547 - 44642 [(assert~~~((exists~B,~exists~k...] 0.001 secs (0.001u,0.s) +Chars 44647 - 44648 [{] 0. secs (0.u,0.s) +Chars 44655 - 44668 [step~in~Hvis.] 0. secs (0.u,0.s) +Chars 44669 - 44685 [clear~Heqb~Heqt.] 0. secs (0.u,0.s) +Chars 44692 - 44717 [dependent~induction~Hvis.] 0.048 secs (0.048u,0.s) +Chars 44724 - 44725 [-] 0. secs (0.u,0.s) +Chars 44726 - 44746 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 44747 - 44756 [(cbn~in~*).] 0.002 secs (0.002u,0.s) +Chars 44757 - 44809 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 44818 - 44819 [+] 0. secs (0.u,0.s) +Chars 44820 - 44826 [right.] 0. secs (0.u,0.s) +Chars 44827 - 44836 [exists~r.] 0. secs (0.u,0.s) +Chars 44837 - 44842 [step.] 0.001 secs (0.001u,0.s) +Chars 44843 - 44847 [(cbn).] 0. secs (0.u,0.s) +Chars 44848 - 44862 [(rewrite~Heqt0).] 0. secs (0.u,0.s) +Chars 44863 - 44879 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 44888 - 44889 [+] 0. secs (0.u,0.s) +Chars 44890 - 44899 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 44900 - 44905 [left.] 0. secs (0.u,0.s) +Chars 44906 - 44916 [exists~X0.] 0. secs (0.u,0.s) +Chars 44917 - 44927 [exists~k2.] 0. secs (0.u,0.s) +Chars 44928 - 44938 [exists~e1.] 0. secs (0.u,0.s) +Chars 44939 - 44957 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) +Chars 44968 - 44991 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) +Chars 44992 - 45006 [(rewrite~Heqt0).] 0.001 secs (0.001u,0.s) +Chars 45007 - 45019 [reflexivity.] 0. secs (0.u,0.s) +Chars 45026 - 45027 [-] 0. secs (0.u,0.s) +Chars 45028 - 45048 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 45049 - 45058 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 45059 - 45111 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 45120 - 45121 [+] 0. secs (0.u,0.s) +Chars 45122 - 45128 [right.] 0. secs (0.u,0.s) +Chars 45129 - 45138 [exists~r.] 0. secs (0.u,0.s) +Chars 45139 - 45144 [step.] 0.001 secs (0.001u,0.s) +Chars 45145 - 45149 [(cbn).] 0. secs (0.u,0.s) +Chars 45150 - 45164 [(rewrite~Heqt0).] 0. secs (0.u,0.s) +Chars 45165 - 45181 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 45190 - 45191 [+] 0. secs (0.u,0.s) +Chars 45192 - 45211 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 45212 - 45230 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) +Chars 45231 - 45254 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) +Chars 45265 - 45286 [setoid_rewrite~Heqt0.] 0.01 secs (0.01u,0.s) +Chars 45287 - 45311 [setoid_rewrite~tau_eutt.] 0.016 secs (0.016u,0.s) +Chars 45312 - 45333 [(eapply~IHHvis;~eauto).] 0.003 secs (0.003u,0.s) +Chars 45344 - 45356 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 45357 - 45362 [auto.] 0. secs (0.u,0.s) +Chars 45367 - 45368 [}] 0. secs (0.u,0.s) +Chars 45373 - 45421 [(destruct~H~as~[[B~[k'~[e1~Ht0...] 0. secs (0.u,0.s) +Chars 45426 - 45427 [+] 0. secs (0.u,0.s) +Chars 45428 - 45449 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45450 - 45475 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45482 - 45502 [(rewrite~Ht0~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45503 - 45528 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45535 - 45545 [sinv~Href.] 0.018 secs (0.018u,0.s) +Chars 45546 - 45573 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 45580 - 45600 [(rewrite~Ht0~in~Hvis).] 0.011 secs (0.011u,0.s) +Chars 45601 - 45626 [(rewrite~bind_vis~in~Hvis).] 0.011 secs (0.011u,0.s) +Chars 45627 - 45637 [sinv~Hvis.] 0.019 secs (0.019u,0.s) +Chars 45644 - 45671 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 45672 - 45688 [clear~Heqt~Heqb.] 0. secs (0.u,0.s) +Chars 45695 - 45707 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 45708 - 45717 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 45724 - 45735 [(destruct~e).] 0. secs (0.u,0.s) +Chars 45742 - 45743 [*] 0. secs (0.u,0.s) +Chars 45744 - 45751 [(inv~H1).] 0.014 secs (0.014u,0.s) +Chars 45752 - 45772 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 45773 - 45777 [(cbn).] 0. secs (0.u,0.s) +Chars 45778 - 45790 [constructor.] 0. secs (0.u,0.s) +Chars 45799 - 45847 [(eapply~trace_prefix_vis_evans...] 0.001 secs (0.001u,0.s) +Chars 45856 - 45865 [now~step.] 0.002 secs (0.002u,0.s) +Chars 45873 - 45874 [*] 0. secs (0.u,0.s) +Chars 45875 - 45914 [(eapply~trace_prefix_vis_evemp...] 0. secs (0.u,0.s) +Chars 45919 - 45920 [+] 0. secs (0.u,0.s) +Chars 45921 - 45942 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45943 - 45963 [(rewrite~Ht0~in~Href).] 0.005 secs (0.005u,0.s) +Chars 45970 - 45995 [(rewrite~tau_eutt~in~Href).] 0.006 secs (0.006u,0.s) +Chars 45996 - 46023 [(rewrite~bind_ret_l~in~Href).] 0.003 secs (0.003u,0.s) +Chars 46024 - 46035 [clear~Hvis.] 0. secs (0.u,0.s) +Chars 46042 - 46053 [(destruct~e).] 0. secs (0.u,0.s) +Chars 46060 - 46061 [*] 0. secs (0.u,0.s) +Chars 46062 - 46066 [(cbn).] 0. secs (0.u,0.s) +Chars 46067 - 46079 [constructor.] 0. secs (0.u,0.s) +Chars 46080 - 46120 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) +Chars 46127 - 46128 [*] 0. secs (0.u,0.s) +Chars 46129 - 46133 [(cbn).] 0. secs (0.u,0.s) +Chars 46134 - 46146 [constructor.] 0. secs (0.u,0.s) +Chars 46147 - 46193 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) +Chars 46196 - 46197 [-] 0. secs (0.u,0.s) +Chars 46198 - 46242 [(destruct~e;~cbn;~simpobs;~[~~...] 0.005 secs (0.005u,0.s) +Chars 46247 - 46264 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 46265 - 46287 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 46288 - 46309 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 46314 - 46339 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 46340 - 46357 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 46358 - 46380 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 46385 - 46406 [(rewrite~Heqb~in~Href).] 0.006 secs (0.006u,0.s) +Chars 46407 - 46417 [sinv~Href.] 0.017 secs (0.016u,0.s) +Chars 46418 - 46445 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 46450 - 46463 [(inversion~H1).] 0.003 secs (0.003u,0.s) +Chars 46464 - 46484 [(ddestruction;~subst).] 0.006 secs (0.006u,0.s) +Chars 46489 - 46509 [(unfold~observe~at~1).] 0. secs (0.u,0.s) +Chars 46510 - 46514 [(cbn).] 0. secs (0.u,0.s) +Chars 46515 - 46531 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 46532 - 46553 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) +Chars 46558 - 46606 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 46611 - 46637 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 46638 - 46664 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 46669 - 46694 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 46695 - 46699 [(cbn).] 0. secs (0.u,0.s) +Chars 46700 - 46712 [constructor.] 0. secs (0.u,0.s) +Chars 46713 - 46724 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 46730 - 46750 [(ddestruction;~subst).] 0. secs (0.u,0.s) +Chars 46755 - 46826 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 46831 - 46846 [(apply~H6~in~H0).] 0. secs (0.u,0.s) +Chars 46848 - 46854 [eauto.] 0. secs (0.u,0.s) +Chars 46855 - 46859 [Qed.] 0.139 secs (0.138u,0.001s) +Chars 46861 - 47068 [Lemma~peel_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 47069 - 47075 [Proof.] 0. secs (0.u,0.s) +Chars 47078 - 47085 [(intros).] 0. secs (0.u,0.s) +Chars 47086 - 47110 [(apply~trace_prefix_bind).] 0. secs (0.u,0.s) +Chars 47111 - 47143 [(eapply~trace_prefix_peel;~eau...] 0. secs (0.u,0.s) +Chars 47144 - 47148 [Qed.] 0. secs (0.u,0.s) +Chars 47150 - 47313 [Lemma~peel_lemma~:~~~forall~E~...] 0. secs (0.u,0.s) +Chars 47314 - 47320 [Proof.] 0. secs (0.u,0.s) +Chars 47323 - 47330 [(intros).] 0. secs (0.u,0.s) +Chars 47331 - 47403 [(split;~try~eapply~peel_refine...] 0. secs (0.u,0.s) +Chars 47404 - 47408 [Qed.] 0. secs (0.u,0.s) +Chars 47410 - 47419 [End~Peel.] 0.009 secs (0.009u,0.s) +Chars 47421 - 47604 [Lemma~bind_peel_ret_tau_aux~:~...] 0. secs (0.u,0.s) +Chars 47605 - 47611 [Proof.] 0. secs (0.u,0.s) +Chars 47614 - 47641 [(intros~E~S~R~f~r0~t0~Hrutt).] 0. secs (0.u,0.s) +Chars 47644 - 47658 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 47659 - 47668 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 47669 - 47695 [dependent~induction~Hrutt.] 0.038 secs (0.038u,0.s) +Chars 47698 - 47699 [-] 0. secs (0.u,0.s) +Chars 47700 - 47723 [(unfold~ITree.bind~in~x).] 0. secs (0.u,0.s) +Chars 47724 - 47749 [(unfold~observe~in~x~at~1).] 0. secs (0.u,0.s) +Chars 47750 - 47759 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 47764 - 47814 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) +Chars 47819 - 47828 [exists~r.] 0. secs (0.u,0.s) +Chars 47829 - 47834 [step.] 0.001 secs (0.001u,0.s) +Chars 47835 - 47847 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 47848 - 47860 [constructor.] 0. secs (0.u,0.s) +Chars 47861 - 47866 [auto.] 0. secs (0.u,0.s) +Chars 47869 - 47870 [-] 0. secs (0.u,0.s) +Chars 47871 - 47891 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 47892 - 47901 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 47902 - 47952 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) +Chars 47957 - 47958 [+] 0. secs (0.u,0.s) +Chars 47959 - 47968 [exists~r.] 0. secs (0.u,0.s) +Chars 47969 - 47974 [step.] 0.001 secs (0.001u,0.s) +Chars 47975 - 47987 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 47988 - 48000 [constructor.] 0. secs (0.u,0.s) +Chars 48001 - 48006 [auto.] 0. secs (0.u,0.s) +Chars 48011 - 48012 [+] 0. secs (0.u,0.s) +Chars 48013 - 48029 [symmetry~in~Ht0.] 0. secs (0.u,0.s) +Chars 48030 - 48051 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) +Chars 48052 - 48071 [setoid_rewrite~Ht0.] 0.001 secs (0.001u,0.s) +Chars 48072 - 48096 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 48103 - 48112 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 48113 - 48132 [injection~x~as~Ht2.] 0. secs (0.u,0.s) +Chars 48133 - 48154 [(eapply~IHHrutt;~auto).] 0.002 secs (0.002u,0.s) +Chars 48161 - 48167 [subst.] 0.001 secs (0.001u,0.s) +Chars 48168 - 48180 [reflexivity.] 0. secs (0.u,0.s) +Chars 48181 - 48185 [Qed.] 0.03 secs (0.03u,0.s) +Chars 48187 - 48435 [Lemma~decompose_trace_refine_b...] 0.001 secs (0.001u,0.s) +Chars 48436 - 48442 [Proof.] 0. secs (0.u,0.s) +Chars 48445 - 48487 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) +Chars 48490 - 48497 [(intros).] 0. secs (0.u,0.s) +Chars 48498 - 48525 [exists~(peel~classicT~b~t).] 0. secs (0.u,0.s) +Chars 48528 - 48569 [(apply~(peel_bind~classicT)~in...] 0. secs (0.u,0.s) +Chars 48570 - 48598 [(destruct~Heutt~as~[g~Heutt]).] 0. secs (0.u,0.s) +Chars 48601 - 48610 [exists~g.] 0. secs (0.u,0.s) +Chars 48611 - 48665 [(split;~auto;~eapply~(peel_ref...] 0. secs (0.u,0.s) +Chars 48666 - 48670 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48672 - 48993 [Lemma~bind_trigger_refine~:~~~...] 0.001 secs (0.001u,0.s) +Chars 48994 - 49000 [Proof.] 0. secs (0.u,0.s) +Chars 49003 - 49010 [(intros).] 0. secs (0.u,0.s) +Chars 49011 - 49038 [(rewrite~bind_trigger~in~H0).] 0.005 secs (0.005u,0.s) +Chars 49039 - 49076 [(apply~trace_refine_vis~in~H0~...] 0. secs (0.u,0.s) +Chars 49079 - 49118 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) +Chars 49119 - 49140 [setoid_rewrite~Hbvis.] 0.008 secs (0.008u,0.s) +Chars 49143 - 49163 [(rewrite~Hbvis~in~H0).] 0.003 secs (0.003u,0.s) +Chars 49166 - 49177 [step~in~H0.] 0. secs (0.u,0.s) +Chars 49178 - 49187 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 49188 - 49195 [(inv~H0).] 0.011 secs (0.011u,0.s) +Chars 49196 - 49209 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 49210 - 49216 [subst.] 0. secs (0.u,0.s) +Chars 49217 - 49245 [(inv~H3;~ddestruction;~subst).] 0.012 secs (0.012u,0.s) +Chars 49248 - 49249 [-] 0. secs (0.u,0.s) +Chars 49250 - 49259 [exists~a.] 0. secs (0.u,0.s) +Chars 49260 - 49270 [exists~k'.] 0. secs (0.u,0.s) +Chars 49271 - 49294 [(split;~try~reflexivity).] 0. secs (0.u,0.s) +Chars 49300 - 49365 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 49370 - 49385 [(apply~H8~in~H0).] 0. secs (0.u,0.s) +Chars 49387 - 49392 [auto.] 0. secs (0.u,0.s) +Chars 49395 - 49396 [-] 0. secs (0.u,0.s) +Chars 49397 - 49417 [(destruct~H~as~[a~_]).] 0. secs (0.u,0.s) +Chars 49418 - 49432 [contradiction.] 0. secs (0.u,0.s) +Chars 49433 - 49437 [Qed.] 0.019 secs (0.019u,0.s) diff --git a/extra/ITrace/ITraceDefinition.v.timing b/extra/ITrace/ITraceDefinition.v.timing index 5c77332c..c015213e 100644 --- a/extra/ITrace/ITraceDefinition.v.timing +++ b/extra/ITrace/ITraceDefinition.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.226 secs (0.199u,0.027s) -Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) +Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.25 secs (0.212u,0.036s) +Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.009 secs (0.007u,0.001s) Chars 122 - 136 [Import~Monads.] 0. secs (0.u,0.s) Chars 137 - 158 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 159 - 188 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -11,14 +11,14 @@ Chars 572 - 643 [Definition~itrace'~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 645 - 702 [Definition~ev_stream~(E~:~Type...] 0. secs (0.u,0.s) Chars 704 - 762 [Definition~Nil~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) Chars 764 - 825 [Definition~ev_list~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 827 - 996 [Fixpoint~ev_list_to_stream~{E~...] 0. secs (0.u,0.s) +Chars 827 - 996 [Fixpoint~ev_list_to_stream~{E~...] 0.001 secs (0.u,0.s) Chars 1079 - 1171 [Definition~append~{E}~{R}~(s~:...] 0. secs (0.u,0.s) Chars 1173 - 1207 [Notation~"s~++~b"~:=~(append~s...] 0. secs (0.u,0.s) Chars 1209 - 1457 [Variant~REvRef~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) Chars 1458 - 1501 [#[global]~Hint~Constructors~RE...] 0. secs (0.u,0.s) Chars 1536 - 1709 [Variant~RAnsRef~(E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 1710 - 1754 [#[global]~Hint~Constructors~RA...] 0. secs (0.u,0.s) -Chars 1756 - 1862 [Definition~trace_refine~{E}~{R...] 0. secs (0.u,0.s) +Chars 1756 - 1862 [Definition~trace_refine~{E}~{R...] 0.001 secs (0.u,0.s) Chars 1865 - 1920 [Notation~"b~⊑~t"~:=~(trace_ref...] 0. secs (0.u,0.s) Chars 1922 - 2005 [Definition~finite~{E~:~Type~->...] 0. secs (0.u,0.s) Chars 2007 - 2081 [#[global]~Instance~itrace_eq~~...] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceFacts.v.timing b/extra/ITrace/ITraceFacts.v.timing index 6f357e26..2ada4e6c 100644 --- a/extra/ITrace/ITraceFacts.v.timing +++ b/extra/ITrace/ITraceFacts.v.timing @@ -1,1232 +1,1233 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 50 - 177 [From~ITree~Require~Import~Util...] 0.233 secs (0.205u,0.027s) -Chars 179 - 241 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.u,0.s) -Chars 243 - 266 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 269 - 283 [Import~Monads.] 0. secs (0.u,0.s) -Chars 284 - 305 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 306 - 335 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 337 - 380 [Tactic~Notation~"step"~:=~(rep...] 0. secs (0.u,0.s) -Chars 382 - 449 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 451 - 503 [Tactic~Notation~"sinv"~ident(h...] 0. secs (0.u,0.s) -Chars 506 - 584 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) -Chars 585 - 591 [Proof.] 0. secs (0.u,0.s) -Chars 594 - 601 [(intros).] 0. secs (0.u,0.s) -Chars 602 - 642 [(destruct~(classic~(exists~a~:...] 0. secs (0.u,0.s) -Chars 645 - 646 [-] 0. secs (0.u,0.s) -Chars 647 - 665 [(destruct~H;~eauto).] 0. secs (0.u,0.s) -Chars 668 - 669 [-] 0. secs (0.u,0.s) -Chars 670 - 700 [(assert~(f~:~A~->~void);~eauto).] 0. secs (0.u,0.s) -Chars 701 - 708 [(intros).] 0. secs (0.u,0.s) -Chars 713 - 721 [exfalso.] 0. secs (0.u,0.s) -Chars 722 - 737 [(apply~H;~eauto).] 0. secs (0.u,0.s) -Chars 738 - 742 [Qed.] 0. secs (0.u,0.s) -Chars 744 - 835 [Lemma~REvRef_inv~{E}~{A}~(e~e'...] 0. secs (0.u,0.s) -Chars 836 - 842 [Proof.] 0. secs (0.u,0.s) -Chars 845 - 854 [(intros~x).] 0. secs (0.u,0.s) -Chars 855 - 867 [(inversion~x).] 0.002 secs (0.002u,0.s) -Chars 868 - 881 [ddestruction.] 0.003 secs (0.002u,0.s) -Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) -Chars 895 - 899 [Qed.] 0.003 secs (0.002u,0.s) -Chars 901 - 981 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0.032 secs (0.029u,0.002s) -Chars 982 - 988 [Proof.] 0. secs (0.u,0.s) -Chars 991 - 1000 [(intros~x).] 0. secs (0.u,0.s) -Chars 1001 - 1013 [(inversion~x).] 0.002 secs (0.002u,0.s) -Chars 1016 - 1017 [-] 0. secs (0.u,0.s) -Chars 1018 - 1031 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 1032 - 1053 [(eexists;~reflexivity).] 0. secs (0.u,0.s) -Chars 1056 - 1057 [-] 0. secs (0.u,0.s) -Chars 1058 - 1097 [(enough~(unit~->~void)~by~cont...] 0. secs (0.u,0.s) -Chars 1098 - 1109 [(destruct~H).] 0. secs (0.u,0.s) -Chars 1110 - 1115 [auto.] 0. secs (0.u,0.s) -Chars 1116 - 1120 [Qed.] 0.003 secs (0.002u,0.s) -Chars 1122 - 1299 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) -Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) -Chars 1309 - 1316 [(intros).] 0. secs (0.u,0.s) -Chars 1317 - 1337 [(induction~H;~inv~H0).] 0.006 secs (0.006u,0.s) -Chars 1341 - 1342 [-] 0. secs (0.u,0.s) -Chars 1343 - 1359 [(rewrite~H~in~H1).] 0.06 secs (0.06u,0.s) -Chars 1360 - 1368 [sinv~H1.] 0.003 secs (0.003u,0.s) -Chars 1371 - 1372 [-] 0. secs (0.u,0.s) -Chars 1373 - 1389 [(rewrite~H~in~H1).] 0.019 secs (0.018u,0.s) -Chars 1390 - 1398 [sinv~H1.] 0.002 secs (0.002u,0.s) -Chars 1401 - 1402 [-] 0. secs (0.u,0.s) -Chars 1403 - 1414 [(destruct~e).] 0. secs (0.u,0.s) -Chars 1415 - 1426 [(destruct~b).] 0. secs (0.u,0.s) -Chars 1427 - 1448 [(apply~IHmay_converge).] 0. secs (0.u,0.s) -Chars 1453 - 1454 [+] 0. secs (0.u,0.s) -Chars 1455 - 1471 [(rewrite~H~in~H2).] 0.017 secs (0.016u,0.s) -Chars 1472 - 1480 [sinv~H2.] 0.006 secs (0.006u,0.s) -Chars 1486 - 1487 [+] 0. secs (0.u,0.s) -Chars 1488 - 1500 [contra_void.] 0. secs (0.u,0.s) -Chars 1504 - 1505 [-] 0. secs (0.u,0.s) -Chars 1506 - 1534 [(destruct~e;~try~contra_void).] 0. secs (0.u,0.s) -Chars 1540 - 1569 [(destruct~e0;~try~contra_void).] 0. secs (0.u,0.s) -Chars 1574 - 1585 [(destruct~b).] 0. secs (0.u,0.s) -Chars 1586 - 1598 [(destruct~b0).] 0. secs (0.u,0.s) -Chars 1603 - 1624 [(apply~IHmay_converge).] 0. secs (0.u,0.s) -Chars 1625 - 1641 [(rewrite~H~in~H2).] 0.017 secs (0.017u,0.s) -Chars 1646 - 1654 [sinv~H2.] 0.009 secs (0.009u,0.s) -Chars 1655 - 1668 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 1673 - 1679 [subst.] 0. secs (0.u,0.s) -Chars 1680 - 1719 [(enough~(k~tt~≈~k0~tt);~try~ap...] 0. secs (0.u,0.s) -Chars 1724 - 1735 [(rewrite~H0).] 0.005 secs (0.005u,0.s) -Chars 1736 - 1741 [auto.] 0. secs (0.u,0.s) -Chars 1742 - 1746 [Qed.] 0.019 secs (0.019u,0.s) -Chars 1748 - 1802 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) -Chars 1803 - 1809 [Proof.] 0. secs (0.u,0.s) -Chars 1812 - 1827 [(apply~conv_ret).] 0. secs (0.u,0.s) -Chars 1828 - 1839 [(unfold~Nil).] 0. secs (0.u,0.s) -Chars 1840 - 1852 [reflexivity.] 0. secs (0.u,0.s) -Chars 1853 - 1857 [Qed.] 0. secs (0.u,0.s) -Chars 1859 - 1965 [Lemma~finite_list_to_stream~:~...] 0. secs (0.u,0.s) -Chars 1966 - 1972 [Proof.] 0. secs (0.u,0.s) -Chars 1975 - 1979 [(red).] 0. secs (0.u,0.s) -Chars 1980 - 1987 [(intros).] 0. secs (0.u,0.s) -Chars 1988 - 2000 [(induction~l).] 0. secs (0.u,0.s) -Chars 2003 - 2004 [-] 0. secs (0.u,0.s) -Chars 2005 - 2009 [(cbn).] 0. secs (0.u,0.s) -Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) -Chars 2023 - 2035 [reflexivity.] 0. secs (0.u,0.s) -Chars 2038 - 2039 [-] 0. secs (0.u,0.s) -Chars 2040 - 2044 [(cbn).] 0. secs (0.u,0.s) -Chars 2045 - 2078 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 2079 - 2085 [(simpl).] 0. secs (0.u,0.s) -Chars 2086 - 2092 [eauto.] 0. secs (0.u,0.s) -Chars 2097 - 2106 [Unshelve.] 0. secs (0.u,0.s) -Chars 2107 - 2116 [exact~tt.] 0. secs (0.u,0.s) -Chars 2117 - 2121 [Qed.] 0. secs (0.u,0.s) -Chars 2123 - 2255 [Lemma~finite_stream_list~:~~~f...] 0. secs (0.u,0.s) -Chars 2256 - 2262 [Proof.] 0. secs (0.u,0.s) -Chars 2265 - 2272 [(intros).] 0. secs (0.u,0.s) -Chars 2273 - 2282 [(red~in~H).] 0. secs (0.u,0.s) -Chars 2283 - 2295 [(induction~H).] 0. secs (0.u,0.s) -Chars 2298 - 2299 [-] 0. secs (0.u,0.s) -Chars 2300 - 2311 [exists~nil.] 0. secs (0.u,0.s) -Chars 2312 - 2317 [auto.] 0. secs (0.u,0.s) -Chars 2320 - 2321 [-] 0. secs (0.u,0.s) -Chars 2322 - 2356 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) -Chars 2357 - 2377 [(unfold~ev_list~in~l).] 0. secs (0.u,0.s) -Chars 2382 - 2394 [(inversion~e).] 0. secs (0.u,0.s) -Chars 2395 - 2401 [subst.] 0. secs (0.u,0.s) -Chars 2406 - 2424 [exists~(cons~e~l).] 0. secs (0.u,0.s) -Chars 2425 - 2431 [(simpl).] 0. secs (0.u,0.s) -Chars 2432 - 2442 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 2447 - 2458 [(destruct~b).] 0. secs (0.u,0.s) -Chars 2464 - 2479 [(apply~eqit_Vis).] 0. secs (0.u,0.s) -Chars 2485 - 2492 [(intros).] 0. secs (0.u,0.s) -Chars 2493 - 2508 [now~destruct~u.] 0. secs (0.u,0.s) -Chars 2513 - 2519 [subst.] 0. secs (0.u,0.s) -Chars 2520 - 2534 [contradiction.] 0. secs (0.u,0.s) -Chars 2535 - 2539 [Qed.] 0.002 secs (0.001u,0.s) -Chars 2541 - 2728 [Lemma~append_vis~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 2729 - 2735 [Proof.] 0. secs (0.u,0.s) -Chars 2738 - 2749 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 2750 - 2764 [(unfold~append).] 0. secs (0.u,0.s) -Chars 2765 - 2772 [(intros).] 0. secs (0.u,0.s) -Chars 2775 - 2780 [step.] 0.002 secs (0.002u,0.s) -Chars 2781 - 2785 [(cbn).] 0. secs (0.u,0.s) -Chars 2786 - 2791 [evis.] 0. secs (0.u,0.s) -Chars 2793 - 2797 [Qed.] 0.003 secs (0.003u,0.s) -Chars 2799 - 2928 [#[global]~Instance~proper_appe...] 0. secs (0.u,0.s) -Chars 2929 - 2935 [Proof.] 0. secs (0.u,0.s) -Chars 2938 - 2969 [(intros~log1~log2~Hlog~b1~b2~Hb).] 0. secs (0.u,0.s) -Chars 2970 - 2984 [(unfold~append).] 0. secs (0.u,0.s) -Chars 2985 - 2998 [(rewrite~Hlog).] 0.002 secs (0.002u,0.s) -Chars 3001 - 3030 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3031 - 3035 [Qed.] 0.006 secs (0.006u,0.s) -Chars 3037 - 3209 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) -Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) -Chars 3219 - 3226 [(intros).] 0. secs (0.u,0.s) -Chars 3227 - 3239 [(induction~H).] 0. secs (0.u,0.s) -Chars 3242 - 3243 [-] 0. secs (0.u,0.s) -Chars 3244 - 3258 [(unfold~append).] 0. secs (0.u,0.s) -Chars 3259 - 3269 [(rewrite~H).] 0.006 secs (0.005u,0.s) -Chars 3270 - 3289 [(rewrite~bind_ret_l).] 0.005 secs (0.004u,0.s) -Chars 3294 - 3306 [constructor.] 0. secs (0.u,0.s) -Chars 3307 - 3319 [reflexivity.] 0. secs (0.u,0.s) -Chars 3322 - 3323 [-] 0. secs (0.u,0.s) -Chars 3324 - 3334 [(rewrite~H).] 0.006 secs (0.005u,0.s) -Chars 3335 - 3347 [(inversion~e).] 0. secs (0.u,0.s) -Chars 3348 - 3354 [subst.] 0. secs (0.u,0.s) -Chars 3355 - 3374 [(rewrite~append_vis).] 0.008 secs (0.008u,0.s) -Chars 3379 - 3419 [(eapply~conv_vis;~eauto;~try~r...] 0.002 secs (0.002u,0.s) -Chars 3420 - 3426 [(simpl).] 0. secs (0.u,0.s) -Chars 3427 - 3433 [eauto.] 0. secs (0.u,0.s) -Chars 3438 - 3444 [subst.] 0. secs (0.u,0.s) -Chars 3445 - 3459 [contradiction.] 0. secs (0.u,0.s) -Chars 3460 - 3464 [Qed.] 0.003 secs (0.003u,0.s) -Chars 3466 - 3679 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) -Chars 3680 - 3686 [Proof.] 0. secs (0.u,0.s) -Chars 3689 - 3696 [(intros).] 0. secs (0.u,0.s) -Chars 3697 - 3709 [(induction~H).] 0. secs (0.u,0.s) -Chars 3712 - 3713 [-] 0. secs (0.u,0.s) -Chars 3714 - 3725 [exists~nil.] 0. secs (0.u,0.s) -Chars 3726 - 3730 [(cbn).] 0. secs (0.u,0.s) -Chars 3731 - 3741 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 3746 - 3751 [step.] 0.002 secs (0.002u,0.s) -Chars 3752 - 3756 [(cbn).] 0. secs (0.u,0.s) -Chars 3757 - 3762 [eret.] 0. secs (0.u,0.s) -Chars 3767 - 3768 [-] 0. secs (0.u,0.s) -Chars 3769 - 3807 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) -Chars 3808 - 3820 [(inversion~e).] 0. secs (0.u,0.s) -Chars 3821 - 3827 [subst.] 0. secs (0.u,0.s) -Chars 3832 - 3852 [exists~(cons~e~log).] 0. secs (0.u,0.s) -Chars 3853 - 3857 [(cbn).] 0. secs (0.u,0.s) -Chars 3858 - 3877 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) -Chars 3878 - 3888 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 3893 - 3898 [step.] 0.002 secs (0.002u,0.s) -Chars 3899 - 3911 [constructor.] 0. secs (0.u,0.s) -Chars 3912 - 3919 [(intros).] 0. secs (0.u,0.s) -Chars 3920 - 3931 [(destruct~v).] 0. secs (0.u,0.s) -Chars 3938 - 3949 [(destruct~b).] 0. secs (0.u,0.s) -Chars 3950 - 3961 [(apply~Hlog).] 0. secs (0.u,0.s) -Chars 3962 - 3968 [subst.] 0. secs (0.u,0.s) -Chars 3969 - 3983 [contradiction.] 0. secs (0.u,0.s) -Chars 3984 - 3988 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3990 - 4172 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) -Chars 4173 - 4179 [Proof.] 0. secs (0.u,0.s) -Chars 4182 - 4189 [(intros).] 0. secs (0.u,0.s) -Chars 4192 - 4228 [(destruct~(classic_converge~b)...] 0. secs (0.u,0.s) -Chars 4229 - 4250 [(destruct~H~as~[r~Hr]).] 0. secs (0.u,0.s) -Chars 4251 - 4256 [left.] 0. secs (0.u,0.s) -Chars 4259 - 4268 [exists~r.] 0. secs (0.u,0.s) -Chars 4269 - 4299 [(apply~converge_itrace_ev_list).] 0. secs (0.u,0.s) -Chars 4300 - 4305 [auto.] 0. secs (0.u,0.s) -Chars 4306 - 4310 [Qed.] 0. secs (0.u,0.s) -Chars 4312 - 4354 [Arguments~classic_converge_itr...] 0. secs (0.u,0.s) -Chars 4356 - 4460 [Lemma~append_nil~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 4461 - 4467 [Proof.] 0. secs (0.u,0.s) -Chars 4470 - 4477 [(intros).] 0. secs (0.u,0.s) -Chars 4478 - 4492 [(unfold~append).] 0. secs (0.u,0.s) -Chars 4493 - 4512 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) -Chars 4513 - 4525 [reflexivity.] 0. secs (0.u,0.s) -Chars 4526 - 4530 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4532 - 4783 [Lemma~append_assoc~:~~~forall~...] 0. secs (0.u,0.s) -Chars 4784 - 4790 [Proof.] 0. secs (0.u,0.s) -Chars 4793 - 4810 [(intros~E~R~b~log).] 0. secs (0.u,0.s) -Chars 4811 - 4825 [(induction~log).] 0. secs (0.u,0.s) -Chars 4828 - 4829 [-] 0. secs (0.u,0.s) -Chars 4830 - 4836 [(simpl).] 0. secs (0.u,0.s) -Chars 4837 - 4844 [(intros).] 0. secs (0.u,0.s) -Chars 4845 - 4864 [(rewrite~append_nil).] 0.001 secs (0.u,0.s) -Chars 4865 - 4877 [reflexivity.] 0. secs (0.u,0.s) -Chars 4880 - 4881 [-] 0. secs (0.u,0.s) -Chars 4882 - 4886 [(cbn).] 0. secs (0.u,0.s) -Chars 4887 - 4894 [(intros).] 0. secs (0.u,0.s) -Chars 4895 - 4914 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) -Chars 4915 - 4936 [setoid_rewrite~IHlog.] 0.003 secs (0.003u,0.s) -Chars 4941 - 4960 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) -Chars 4961 - 4973 [reflexivity.] 0. secs (0.u,0.s) -Chars 4974 - 4978 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4980 - 5159 [Lemma~append_div~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5176 [(intros).] 0. secs (0.u,0.s) -Chars 5177 - 5191 [(induction~log).] 0. secs (0.u,0.s) -Chars 5194 - 5195 [-] 0. secs (0.u,0.s) -Chars 5196 - 5200 [(cbn).] 0. secs (0.u,0.s) -Chars 5201 - 5215 [(unfold~append).] 0. secs (0.u,0.s) -Chars 5216 - 5235 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) -Chars 5236 - 5241 [auto.] 0. secs (0.u,0.s) -Chars 5244 - 5245 [-] 0. secs (0.u,0.s) -Chars 5246 - 5250 [(cbn).] 0. secs (0.u,0.s) -Chars 5251 - 5265 [(unfold~append).] 0. secs (0.u,0.s) -Chars 5270 - 5275 [step.] 0. secs (0.u,0.s) -Chars 5276 - 5287 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5288 - 5292 [(cbn).] 0. secs (0.u,0.s) -Chars 5293 - 5305 [constructor.] 0. secs (0.u,0.s) -Chars 5306 - 5312 [intro.] 0. secs (0.u,0.s) -Chars 5313 - 5318 [auto.] 0. secs (0.u,0.s) -Chars 5320 - 5324 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5326 - 5566 [Lemma~inv_append_eutt~:~~~fora...] 0. secs (0.u,0.s) -Chars 5567 - 5573 [Proof.] 0. secs (0.u,0.s) -Chars 5576 - 5583 [(intros).] 0. secs (0.u,0.s) -Chars 5584 - 5610 [generalize~dependent~log2.] 0. secs (0.u,0.s) -Chars 5611 - 5634 [(induction~log1;~intros).] 0. secs (0.u,0.s) -Chars 5637 - 5638 [-] 0. secs (0.u,0.s) -Chars 5639 - 5653 [(destruct~log2).] 0. secs (0.u,0.s) -Chars 5658 - 5659 [+] 0. secs (0.u,0.s) -Chars 5660 - 5672 [(split;~auto).] 0. secs (0.u,0.s) -Chars 5673 - 5682 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 5683 - 5690 [sinv~H.] 0.003 secs (0.003u,0.s) -Chars 5696 - 5697 [+] 0. secs (0.u,0.s) -Chars 5698 - 5705 [sinv~H.] 0.003 secs (0.003u,0.s) -Chars 5708 - 5709 [-] 0. secs (0.u,0.s) -Chars 5710 - 5724 [(destruct~log2).] 0. secs (0.u,0.s) -Chars 5729 - 5730 [+] 0. secs (0.u,0.s) -Chars 5731 - 5738 [sinv~H.] 0.006 secs (0.006u,0.s) -Chars 5743 - 5744 [+] 0. secs (0.u,0.s) -Chars 5745 - 5754 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 5755 - 5774 [(unfold~append~in~H).] 0. secs (0.u,0.s) -Chars 5775 - 5782 [sinv~H.] 0.009 secs (0.009u,0.s) -Chars 5783 - 5792 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5793 - 5806 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 5813 - 5845 [(enough~(log1~=~log2~/\~r1~=~r...] 0. secs (0.u,0.s) -Chars 5852 - 5853 [{] 0. secs (0.u,0.s) -Chars 5854 - 5865 [(destruct~H).] 0. secs (0.u,0.s) -Chars 5866 - 5872 [subst.] 0. secs (0.u,0.s) -Chars 5873 - 5878 [auto.] 0. secs (0.u,0.s) -Chars 5879 - 5880 [}] 0. secs (0.u,0.s) -Chars 5887 - 5900 [(apply~IHlog1).] 0. secs (0.u,0.s) -Chars 5901 - 5911 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5912 - 5921 [(apply~tt).] 0. secs (0.u,0.s) -Chars 5922 - 5926 [Qed.] 0.021 secs (0.02u,0.s) -Chars 5928 - 6216 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) -Chars 6217 - 6223 [Proof.] 0. secs (0.u,0.s) -Chars 6226 - 6237 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 6238 - 6257 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6258 - 6265 [(intros).] 0. secs (0.u,0.s) -Chars 6269 - 6280 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6281 - 6298 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 6299 - 6309 [step~in~H.] 0. secs (0.u,0.s) -Chars 6312 - 6325 [(genobs~t~ot3).] 0. secs (0.u,0.s) -Chars 6326 - 6339 [clear~Heqot3.] 0. secs (0.u,0.s) -Chars 6343 - 6389 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) -Chars 6392 - 6393 [-] 0. secs (0.u,0.s) -Chars 6394 - 6420 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 6421 - 6473 [(hinduction~H0~before~CIH;~int...] 0.022 secs (0.022u,0.s) -Chars 6480 - 6481 [+] 0. secs (0.u,0.s) -Chars 6482 - 6494 [constructor.] 0. secs (0.u,0.s) -Chars 6495 - 6500 [auto.] 0. secs (0.u,0.s) -Chars 6505 - 6506 [+] 0. secs (0.u,0.s) -Chars 6507 - 6519 [constructor.] 0. secs (0.u,0.s) -Chars 6520 - 6542 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) -Chars 6598 - 6599 [-] 0. secs (0.u,0.s) -Chars 6601 - 6673 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) -Chars 6679 - 6680 [{] 0. secs (0.u,0.s) -Chars 6681 - 6728 [(destruct~ot3;~eauto;~right;~r...] 0.007 secs (0.007u,0.s) -Chars 6729 - 6730 [}] 0. secs (0.u,0.s) -Chars 6736 - 6762 [(destruct~DEC~as~[EQ|~EQ]).] 0. secs (0.u,0.s) -Chars 6768 - 6769 [+] 0. secs (0.u,0.s) -Chars 6770 - 6799 [(destruct~EQ~as~[m3~?];~subst).] 0. secs (0.u,0.s) -Chars 6807 - 6819 [constructor.] 0. secs (0.u,0.s) -Chars 6820 - 6838 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 6846 - 6865 [(apply~rutt_inv_Tau).] 0. secs (0.u,0.s) -Chars 6866 - 6875 [now~step.] 0.001 secs (0.001u,0.s) -Chars 6882 - 6883 [+] 0. secs (0.u,0.s) -Chars 6884 - 6930 [(inv~H0;~try~(exfalso;~eapply~...] 0.036 secs (0.035u,0.s) -Chars 6938 - 6950 [constructor.] 0. secs (0.u,0.s) -Chars 6958 - 6970 [step~in~REL.] 0. secs (0.u,0.s) -Chars 6979 - 7058 [(hinduction~H1~before~CIH;~int...] 0.003 secs (0.003u,0.s) -Chars 7066 - 7067 [*] 0. secs (0.u,0.s) -Chars 7068 - 7106 [(dependent~induction~REL;~rewr...] 0.051 secs (0.05u,0.s) -Chars 7116 - 7118 [++] 0. secs (0.u,0.s) -Chars 7119 - 7131 [constructor.] 0. secs (0.u,0.s) -Chars 7132 - 7137 [auto.] 0. secs (0.u,0.s) -Chars 7147 - 7149 [++] 0. secs (0.u,0.s) -Chars 7150 - 7162 [constructor.] 0. secs (0.u,0.s) -Chars 7163 - 7183 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) -Chars 7191 - 7192 [*] 0. secs (0.u,0.s) -Chars 7193 - 7231 [(dependent~induction~REL;~rewr...] 0.071 secs (0.07u,0.001s) -Chars 7241 - 7243 [++] 0. secs (0.u,0.s) -Chars 7244 - 7262 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 7263 - 7270 [(intros).] 0. secs (0.u,0.s) -Chars 7271 - 7286 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 7300 - 7311 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7312 - 7322 [(apply~REL).] 0. secs (0.u,0.s) -Chars 7323 - 7334 [assumption.] 0. secs (0.u,0.s) -Chars 7345 - 7347 [++] 0. secs (0.u,0.s) -Chars 7348 - 7360 [constructor.] 0. secs (0.u,0.s) -Chars 7361 - 7381 [(eapply~IHREL;~eauto).] 0.005 secs (0.005u,0.s) -Chars 7389 - 7390 [*] 0. secs (0.u,0.s) -Chars 7391 - 7413 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) -Chars 7414 - 7428 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 7438 - 7501 [(dependent~induction~REL;~try~...] 0.062 secs (0.061u,0.001s) -Chars 7511 - 7513 [++] 0. secs (0.u,0.s) -Chars 7514 - 7527 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7528 - 7546 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 7547 - 7558 [now~unstep.] 0.004 secs (0.004u,0.s) -Chars 7569 - 7571 [++] 0. secs (0.u,0.s) -Chars 7572 - 7577 [auto.] 0. secs (0.u,0.s) -Chars 7587 - 7589 [++] 0. secs (0.u,0.s) -Chars 7590 - 7603 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7604 - 7622 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 7623 - 7643 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) -Chars 7646 - 7647 [-] 0. secs (0.u,0.s) -Chars 7648 - 7676 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 7681 - 7744 [(hinduction~H0~before~CIH;~int...] 0.018 secs (0.018u,0.s) -Chars 7749 - 7750 [+] 0. secs (0.u,0.s) -Chars 7751 - 7769 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 7770 - 7777 [(intros).] 0. secs (0.u,0.s) -Chars 7778 - 7793 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 7800 - 7811 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7812 - 7822 [(apply~REL).] 0. secs (0.u,0.s) -Chars 7823 - 7834 [assumption.] 0. secs (0.u,0.s) -Chars 7840 - 7841 [+] 0. secs (0.u,0.s) -Chars 7842 - 7854 [constructor.] 0. secs (0.u,0.s) -Chars 7855 - 7877 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) -Chars 7880 - 7881 [-] 0. secs (0.u,0.s) -Chars 7882 - 7904 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 7905 - 7932 [(remember~(TauF~t1)~as~otf1).] 0.001 secs (0.001u,0.s) -Chars 7937 - 8008 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.019u,0.s) -Chars 8013 - 8014 [+] 0. secs (0.u,0.s) -Chars 8015 - 8027 [constructor.] 0. secs (0.u,0.s) -Chars 8028 - 8039 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 8045 - 8046 [+] 0. secs (0.u,0.s) -Chars 8047 - 8059 [constructor.] 0. secs (0.u,0.s) -Chars 8060 - 8082 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 8085 - 8086 [-] 0. secs (0.u,0.s) -Chars 8087 - 8099 [constructor.] 0. secs (0.u,0.s) -Chars 8100 - 8122 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 8123 - 8127 [Qed.] 0.182 secs (0.178u,0.003s) -Chars 8129 - 8422 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) -Chars 8423 - 8429 [Proof.] 0. secs (0.u,0.s) -Chars 8432 - 8443 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 8444 - 8463 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 8464 - 8471 [(intros).] 0. secs (0.u,0.s) -Chars 8472 - 8482 [step~in~H.] 0. secs (0.u,0.s) -Chars 8486 - 8497 [step~in~H0.] 0. secs (0.u,0.s) -Chars 8498 - 8515 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 8519 - 8539 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) -Chars 8542 - 8598 [(hinduction~H~before~CIH;~intr...] 0.003 secs (0.003u,0.s) -Chars 8601 - 8602 [-] 0. secs (0.u,0.s) -Chars 8603 - 8629 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 8630 - 8692 [(hinduction~H0~before~CIH;~int...] 0.022 secs (0.021u,0.s) -Chars 8697 - 8698 [+] 0. secs (0.u,0.s) -Chars 8699 - 8717 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 8722 - 8723 [+] 0. secs (0.u,0.s) -Chars 8724 - 8736 [constructor.] 0. secs (0.u,0.s) -Chars 8737 - 8743 [eauto.] 0. secs (0.u,0.s) -Chars 8746 - 8747 [-] 0. secs (0.u,0.s) -Chars 8748 - 8775 [(remember~(TauF~m1)~as~otm1).] 0.001 secs (0.001u,0.s) -Chars 8780 - 8839 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) -Chars 8844 - 8845 [+] 0. secs (0.u,0.s) -Chars 8846 - 8858 [constructor.] 0. secs (0.u,0.s) -Chars 8859 - 8877 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 8882 - 8883 [+] 0. secs (0.u,0.s) -Chars 8884 - 8896 [constructor.] 0. secs (0.u,0.s) -Chars 8897 - 8915 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 8922 - 8943 [(apply~rutt_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 8944 - 8953 [now~step.] 0.001 secs (0.001u,0.s) -Chars 8959 - 8960 [+] 0. secs (0.u,0.s) -Chars 8961 - 8973 [step~in~REL.] 0. secs (0.u,0.s) -Chars 8981 - 9012 [(dependent~induction~REL;~subst).] 0.041 secs (0.041u,0.s) -Chars 9019 - 9020 [*] 0. secs (0.u,0.s) -Chars 9021 - 9033 [constructor.] 0. secs (0.u,0.s) -Chars 9034 - 9048 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9057 - 9116 [(hinduction~H0~before~CIH;~int...] 0.012 secs (0.012u,0.s) -Chars 9125 - 9127 [++] 0. secs (0.u,0.s) -Chars 9128 - 9141 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9142 - 9154 [constructor.] 0. secs (0.u,0.s) -Chars 9155 - 9160 [auto.] 0. secs (0.u,0.s) -Chars 9169 - 9171 [++] 0. secs (0.u,0.s) -Chars 9172 - 9184 [constructor.] 0. secs (0.u,0.s) -Chars 9185 - 9190 [auto.] 0. secs (0.u,0.s) -Chars 9197 - 9198 [*] 0. secs (0.u,0.s) -Chars 9199 - 9214 [(eapply~IHruttF).] 0. secs (0.u,0.s) -Chars 9215 - 9235 [2:~(symmetry;~eauto).] 0. secs (0.u,0.s) -Chars 9244 - 9249 [step.] 0.001 secs (0.001u,0.s) -Chars 9250 - 9263 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9264 - 9282 [(constructor;~auto).] 0.003 secs (0.003u,0.s) -Chars 9291 - 9307 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 9315 - 9316 [*] 0. secs (0.u,0.s) -Chars 9317 - 9329 [constructor.] 0. secs (0.u,0.s) -Chars 9330 - 9343 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9352 - 9366 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9367 - 9426 [(hinduction~H0~before~CIH;~int...] 0.015 secs (0.015u,0.s) -Chars 9435 - 9437 [++] 0. secs (0.u,0.s) -Chars 9438 - 9456 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 9457 - 9464 [(intros).] 0. secs (0.u,0.s) -Chars 9465 - 9480 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 9491 - 9502 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9503 - 9513 [(apply~REL).] 0. secs (0.u,0.s) -Chars 9514 - 9525 [assumption.] 0. secs (0.u,0.s) -Chars 9535 - 9537 [++] 0. secs (0.u,0.s) -Chars 9538 - 9550 [constructor.] 0. secs (0.u,0.s) -Chars 9551 - 9573 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) -Chars 9580 - 9581 [*] 0. secs (0.u,0.s) -Chars 9582 - 9596 [unstep~in~REL.] 0. secs (0.u,0.s) -Chars 9597 - 9619 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) -Chars 9626 - 9627 [*] 0. secs (0.u,0.s) -Chars 9628 - 9640 [constructor.] 0. secs (0.u,0.s) -Chars 9641 - 9654 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9655 - 9675 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) -Chars 9678 - 9679 [-] 0. secs (0.u,0.s) -Chars 9680 - 9708 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 9709 - 9754 [(hinduction~H0~before~CIH;~int...] 0.028 secs (0.027u,0.s) -Chars 9759 - 9760 [+] 0. secs (0.u,0.s) -Chars 9761 - 9774 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 9775 - 9793 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 9794 - 9801 [(intros).] 0. secs (0.u,0.s) -Chars 9802 - 9817 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 9824 - 9835 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9836 - 9846 [(apply~REL).] 0. secs (0.u,0.s) -Chars 9847 - 9858 [assumption.] 0. secs (0.u,0.s) -Chars 9864 - 9865 [+] 0. secs (0.u,0.s) -Chars 9866 - 9878 [constructor.] 0. secs (0.u,0.s) -Chars 9879 - 9885 [eauto.] 0. secs (0.u,0.s) -Chars 9888 - 9889 [-] 0. secs (0.u,0.s) -Chars 9890 - 9912 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 9913 - 9940 [(remember~(TauF~t0)~as~otf0).] 0.001 secs (0.001u,0.s) -Chars 9945 - 10016 [(hinduction~H0~before~CIH;~int...] 0.015 secs (0.015u,0.s) -Chars 10021 - 10022 [+] 0. secs (0.u,0.s) -Chars 10023 - 10035 [constructor.] 0. secs (0.u,0.s) -Chars 10036 - 10047 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 10053 - 10054 [+] 0. secs (0.u,0.s) -Chars 10055 - 10067 [constructor.] 0. secs (0.u,0.s) -Chars 10068 - 10090 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) -Chars 10093 - 10094 [-] 0. secs (0.u,0.s) -Chars 10095 - 10107 [constructor.] 0. secs (0.u,0.s) -Chars 10108 - 10130 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 10131 - 10135 [Qed.] 0.089 secs (0.088u,0.001s) -Chars 10137 - 10241 [#[global]~Instance~trace_refin...] 0.003 secs (0.002u,0.s) -Chars 10242 - 10248 [Proof.] 0. secs (0.u,0.s) -Chars 10251 - 10284 [(intros~b1~b2~Heuttb~t1~t2~Heu...] 0. secs (0.u,0.s) -Chars 10287 - 10397 [(split;~intros;~~~try~~~~(eapp...] 0.003 secs (0.003u,0.s) -Chars 10402 - 10429 [now~rewrite~Heuttb,~Heuttt.] 0.019 secs (0.019u,0.s) -Chars 10430 - 10434 [Qed.] 0.003 secs (0.003u,0.s) -Chars 10436 - 10545 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) -Chars 10546 - 10552 [Proof.] 0. secs (0.u,0.s) -Chars 10555 - 10562 [(intros).] 0. secs (0.u,0.s) -Chars 10563 - 10568 [step.] 0.001 secs (0.001u,0.s) -Chars 10569 - 10581 [constructor.] 0. secs (0.u,0.s) -Chars 10582 - 10587 [auto.] 0. secs (0.u,0.s) -Chars 10588 - 10592 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10594 - 10751 [Lemma~trace_refine_ret_inv_r~:...] 0. secs (0.u,0.s) -Chars 10752 - 10758 [Proof.] 0. secs (0.u,0.s) -Chars 10761 - 10768 [(intros).] 0. secs (0.u,0.s) -Chars 10769 - 10774 [step.] 0.001 secs (0.001u,0.s) -Chars 10775 - 10785 [step~in~H.] 0. secs (0.u,0.s) -Chars 10786 - 10802 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 10806 - 10835 [(dependent~induction~H;~subst).] 0.031 secs (0.031u,0.s) -Chars 10838 - 10839 [-] 0. secs (0.u,0.s) -Chars 10840 - 10853 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10854 - 10866 [constructor.] 0. secs (0.u,0.s) -Chars 10867 - 10872 [auto.] 0. secs (0.u,0.s) -Chars 10875 - 10876 [-] 0. secs (0.u,0.s) -Chars 10877 - 10890 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10891 - 10909 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 10910 - 10914 [Qed.] 0.026 secs (0.025u,0.s) -Chars 10916 - 11082 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) -Chars 11083 - 11089 [Proof.] 0. secs (0.u,0.s) -Chars 11092 - 11099 [(intros).] 0. secs (0.u,0.s) -Chars 11100 - 11105 [step.] 0.001 secs (0.001u,0.s) -Chars 11106 - 11116 [step~in~H.] 0. secs (0.u,0.s) -Chars 11117 - 11133 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11136 - 11165 [(dependent~induction~H;~subst).] 0.034 secs (0.033u,0.s) -Chars 11168 - 11169 [-] 0. secs (0.u,0.s) -Chars 11170 - 11183 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 11184 - 11196 [constructor.] 0. secs (0.u,0.s) -Chars 11197 - 11202 [auto.] 0. secs (0.u,0.s) -Chars 11205 - 11206 [-] 0. secs (0.u,0.s) -Chars 11207 - 11220 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 11221 - 11239 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 11240 - 11244 [Qed.] 0.027 secs (0.026u,0.s) -Chars 11246 - 11486 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) -Chars 11487 - 11493 [Proof.] 0. secs (0.u,0.s) -Chars 11496 - 11513 [(intros~E~R~A~e~a).] 0. secs (0.u,0.s) -Chars 11514 - 11521 [(intros).] 0. secs (0.u,0.s) -Chars 11524 - 11533 [(red~in~H).] 0. secs (0.u,0.s) -Chars 11534 - 11538 [(red).] 0. secs (0.u,0.s) -Chars 11539 - 11549 [step~in~H.] 0. secs (0.u,0.s) -Chars 11550 - 11566 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11567 - 11573 [(inv~H).] 0.011 secs (0.011u,0.s) -Chars 11574 - 11587 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 11590 - 11596 [subst.] 0. secs (0.u,0.s) -Chars 11599 - 11664 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 11665 - 11669 [Qed.] 0.008 secs (0.007u,0.s) -Chars 11671 - 11885 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) -Chars 11886 - 11892 [Proof.] 0. secs (0.u,0.s) -Chars 11895 - 11902 [(intros).] 0. secs (0.u,0.s) -Chars 11903 - 11908 [step.] 0.001 secs (0.u,0.s) -Chars 11909 - 11939 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 11942 - 11949 [(intros).] 0. secs (0.u,0.s) -Chars 11950 - 11957 [(inv~H0).] 0.007 secs (0.007u,0.s) -Chars 11958 - 11971 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 11974 - 11980 [subst.] 0. secs (0.u,0.s) -Chars 11981 - 11986 [auto.] 0. secs (0.u,0.s) -Chars 11987 - 11991 [Qed.] 0.006 secs (0.006u,0.s) -Chars 11993 - 12128 [Lemma~event_ans_constr~:~~~for...] 0. secs (0.u,0.s) -Chars 12129 - 12135 [Proof.] 0. secs (0.u,0.s) -Chars 12138 - 12145 [(intros).] 0. secs (0.u,0.s) -Chars 12148 - 12200 [(destruct~(classic_empty~R)~as...] 0. secs (0.u,0.s) -Chars 12203 - 12204 [-] 0. secs (0.u,0.s) -Chars 12205 - 12217 [exists~unit.] 0. secs (0.u,0.s) -Chars 12218 - 12239 [exists~(evans~R~e~a).] 0. secs (0.u,0.s) -Chars 12240 - 12257 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 12260 - 12261 [-] 0. secs (0.u,0.s) -Chars 12262 - 12274 [exists~void.] 0. secs (0.u,0.s) -Chars 12275 - 12303 [exists~(evempty~R~Hempty~e).] 0. secs (0.u,0.s) -Chars 12304 - 12321 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 12322 - 12326 [Qed.] 0. secs (0.u,0.s) -Chars 12389 - 12409 [Section~Determinize.] 0. secs (0.u,0.s) -Chars 12411 - 12468 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) -Chars 12470 - 12555 [CoFixpoint~determinize_~(E~:~T...] 0. secs (0.u,0.s) -Chars 12556 - 12562 [Proof.] 0. secs (0.u,0.s) -Chars 12565 - 12577 [(destruct~ot).] 0. secs (0.u,0.s) -Chars 12580 - 12581 [-] 0. secs (0.u,0.s) -Chars 12582 - 12596 [(apply~(Ret~r)).] 0. secs (0.u,0.s) -Chars 12599 - 12600 [-] 0. secs (0.u,0.s) -Chars 12601 - 12646 [(apply~(Tau~(determinize_~E~R~...] 0. secs (0.u,0.s) -Chars 12649 - 12650 [-] 0. secs (0.u,0.s) -Chars 12651 - 12683 [(destruct~(classicT~X)~as~[|~f]).] 0. secs (0.u,0.s) -Chars 12688 - 12689 [+] 0. secs (0.u,0.s) -Chars 12690 - 12765 [(apply~(Vis~(evans~X~e~x)~(fun...] 0. secs (0.u,0.s) -Chars 12770 - 12771 [+] 0. secs (0.u,0.s) -Chars 12772 - 12882 [(apply~~~(Vis~(evempty~X~(fun~...] 0. secs (0.u,0.s) -Chars 12883 - 12891 [Defined.] 0. secs (0.u,0.s) -Chars 12893 - 12979 [Definition~determinize~{E}~{R}...] 0. secs (0.u,0.s) -Chars 12981 - 12997 [End~Determinize.] 0. secs (0.u,0.s) -Chars 13048 - 13165 [Lemma~itree_refine_nonempty~:~...] 0. secs (0.u,0.s) -Chars 13166 - 13172 [Proof.] 0. secs (0.u,0.s) -Chars 13175 - 13182 [(intros).] 0. secs (0.u,0.s) -Chars 13183 - 13225 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) -Chars 13228 - 13260 [exists~(determinize~classicT~t).] 0. secs (0.u,0.s) -Chars 13261 - 13284 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 13287 - 13306 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13310 - 13317 [(intros).] 0. secs (0.u,0.s) -Chars 13318 - 13337 [(unfold~determinize).] 0. secs (0.u,0.s) -Chars 13338 - 13351 [(desobs~t~Hot).] 0. secs (0.u,0.s) -Chars 13354 - 13355 [-] 0. secs (0.u,0.s) -Chars 13356 - 13360 [(cbn).] 0. secs (0.u,0.s) -Chars 13361 - 13366 [eret.] 0. secs (0.u,0.s) -Chars 13369 - 13370 [-] 0. secs (0.u,0.s) -Chars 13371 - 13375 [(cbn).] 0. secs (0.u,0.s) -Chars 13376 - 13388 [constructor.] 0. secs (0.u,0.s) -Chars 13389 - 13399 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 13403 - 13404 [-] 0. secs (0.u,0.s) -Chars 13405 - 13420 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 13421 - 13425 [(cbn).] 0. secs (0.u,0.s) -Chars 13426 - 13448 [(destruct~(classicT~_)).] 0.001 secs (0.001u,0.s) -Chars 13453 - 13454 [+] 0. secs (0.u,0.s) -Chars 13455 - 13485 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 13486 - 13493 [(intros).] 0. secs (0.u,0.s) -Chars 13500 - 13512 [(inversion~H).] 0.002 secs (0.002u,0.s) -Chars 13513 - 13526 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 13533 - 13539 [subst.] 0. secs (0.u,0.s) -Chars 13540 - 13550 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 13555 - 13556 [+] 0. secs (0.u,0.s) -Chars 13557 - 13586 [(constructor;~auto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 13587 - 13594 [(intros).] 0. secs (0.u,0.s) -Chars 13595 - 13609 [contradiction.] 0. secs (0.u,0.s) -Chars 13610 - 13614 [Qed.] 0.011 secs (0.011u,0.s) -Chars 13616 - 14338 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) -Chars 14339 - 14345 [Proof.] 0. secs (0.u,0.s) -Chars 14348 - 14355 [(intros).] 0. secs (0.u,0.s) -Chars 14358 - 14403 [(destruct~(classic_empty~A)~as...] 0. secs (0.u,0.s) -Chars 14406 - 14407 [-] 0. secs (0.u,0.s) -Chars 14408 - 14481 [specialize~trace_refine_vis_ad...] 0. secs (0.u,0.s) -Chars 14486 - 14518 [(assert~(exists~b,~b~⊑~k~a)).] 0. secs (0.u,0.s) -Chars 14523 - 14524 [{] 0. secs (0.u,0.s) -Chars 14525 - 14553 [(apply~itree_refine_nonempty).] 0. secs (0.u,0.s) -Chars 14554 - 14555 [}] 0. secs (0.u,0.s) -Chars 14560 - 14582 [(destruct~H~as~[b~Hbk]).] 0. secs (0.u,0.s) -Chars 14583 - 14631 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 14636 - 14658 [(rewrite~<-~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) -Chars 14663 - 14687 [(apply~H0~in~Hbk~as~Hbk0).] 0. secs (0.u,0.s) -Chars 14692 - 14711 [(rewrite~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) -Chars 14712 - 14732 [(rewrite~Ht2~in~Hbk0).] 0.003 secs (0.003u,0.s) -Chars 14737 - 14746 [sinv~Hbk.] 0.016 secs (0.016u,0.s) -Chars 14751 - 14761 [sinv~Hbk0.] 0.023 secs (0.023u,0.s) -Chars 14762 - 14775 [ddestruction.] 0.008 secs (0.008u,0.s) -Chars 14780 - 14786 [subst.] 0. secs (0.u,0.s) -Chars 14791 - 14804 [(inversion~H8).] 0.002 secs (0.002u,0.s) -Chars 14805 - 14818 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 14823 - 14829 [subst.] 0. secs (0.u,0.s) -Chars 14830 - 14842 [constructor.] 0. secs (0.u,0.s) -Chars 14847 - 14854 [(intros).] 0. secs (0.u,0.s) -Chars 14855 - 14873 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 14878 - 14885 [(intros).] 0. secs (0.u,0.s) -Chars 14886 - 14911 [setoid_rewrite~Ht1~in~H0.] 0.024 secs (0.023u,0.s) -Chars 14912 - 14937 [setoid_rewrite~Ht2~in~H0.] 0.064 secs (0.063u,0.001s) -Chars 14942 - 14956 [(split;~intros).] 0. secs (0.u,0.s) -Chars 14961 - 14962 [+] 0. secs (0.u,0.s) -Chars 14963 - 15009 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 15010 - 15024 [(apply~H0~in~H).] 0. secs (0.u,0.s) -Chars 15031 - 15063 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) -Chars 15064 - 15069 [auto.] 0. secs (0.u,0.s) -Chars 15074 - 15075 [+] 0. secs (0.u,0.s) -Chars 15076 - 15122 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 15123 - 15137 [(apply~H0~in~H).] 0. secs (0.u,0.s) -Chars 15144 - 15176 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) -Chars 15177 - 15182 [auto.] 0. secs (0.u,0.s) -Chars 15185 - 15186 [-] 0. secs (0.u,0.s) -Chars 15187 - 15250 [(set~(ke~:=~fun~v~:~void~=>~ma...] 0. secs (0.u,0.s) -Chars 15255 - 15290 [(set~(b~:=~Vis~(evempty~A~Ha~e...] 0. secs (0.u,0.s) -Chars 15295 - 15313 [(assert~(b~⊑~t1)).] 0. secs (0.u,0.s) -Chars 15318 - 15319 [{] 0. secs (0.u,0.s) -Chars 15326 - 15335 [(unfold~b).] 0. secs (0.u,0.s) -Chars 15336 - 15348 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 15349 - 15354 [step.] 0.001 secs (0.001u,0.s) -Chars 15355 - 15359 [(cbn).] 0. secs (0.u,0.s) -Chars 15366 - 15378 [constructor.] 0. secs (0.u,0.s) -Chars 15379 - 15380 [{] 0. secs (0.u,0.s) -Chars 15381 - 15391 [(apply~ree).] 0. secs (0.u,0.s) -Chars 15392 - 15393 [}] 0. secs (0.u,0.s) -Chars 15394 - 15395 [{] 0. secs (0.u,0.s) -Chars 15396 - 15406 [(intros~[]).] 0. secs (0.u,0.s) -Chars 15407 - 15408 [}] 0. secs (0.u,0.s) -Chars 15413 - 15414 [}] 0. secs (0.u,0.s) -Chars 15419 - 15439 [(apply~H0~in~H~as~H1).] 0. secs (0.u,0.s) -Chars 15440 - 15454 [(unfold~b~in~*).] 0. secs (0.u,0.s) -Chars 15455 - 15463 [clear~b.] 0. secs (0.u,0.s) -Chars 15468 - 15485 [(rewrite~Ht1~in~H).] 0.003 secs (0.003u,0.s) -Chars 15486 - 15504 [(rewrite~Ht2~in~H1).] 0.005 secs (0.005u,0.s) -Chars 15509 - 15516 [sinv~H.] 0.016 secs (0.016u,0.s) -Chars 15517 - 15525 [sinv~H1.] 0.022 secs (0.022u,0.s) -Chars 15526 - 15539 [ddestruction.] 0.008 secs (0.008u,0.s) -Chars 15544 - 15550 [subst.] 0. secs (0.u,0.s) -Chars 15551 - 15564 [(inversion~H6).] 0.002 secs (0.002u,0.s) -Chars 15565 - 15578 [ddestruction.] 0.007 secs (0.007u,0.s) -Chars 15583 - 15595 [constructor.] 0. secs (0.u,0.s) -Chars 15600 - 15607 [(intros).] 0. secs (0.u,0.s) -Chars 15608 - 15619 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 15624 - 15631 [(intros).] 0. secs (0.u,0.s) -Chars 15632 - 15657 [setoid_rewrite~Ht1~in~H0.] 0.024 secs (0.023u,0.s) -Chars 15658 - 15683 [setoid_rewrite~Ht2~in~H0.] 0.065 secs (0.064u,0.001s) -Chars 15688 - 15717 [(split;~intros;~contradiction).] 0. secs (0.u,0.s) -Chars 15718 - 15722 [Qed.] 0.05 secs (0.049u,0.s) -Chars 15724 - 15953 [Lemma~trace_refine_vis~:~~~for...] 0.001 secs (0.001u,0.s) -Chars 15954 - 15960 [Proof.] 0. secs (0.u,0.s) -Chars 15963 - 15970 [(intros).] 0. secs (0.u,0.s) -Chars 15971 - 15981 [step~in~H.] 0. secs (0.u,0.s) -Chars 15982 - 15998 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16002 - 16024 [dependent~induction~H.] 0.046 secs (0.046u,0.s) -Chars 16027 - 16028 [-] 0. secs (0.u,0.s) -Chars 16029 - 16039 [exists~A0.] 0. secs (0.u,0.s) -Chars 16040 - 16050 [exists~e1.] 0. secs (0.u,0.s) -Chars 16051 - 16061 [exists~k1.] 0. secs (0.u,0.s) -Chars 16066 - 16097 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16098 - 16117 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) -Chars 16122 - 16133 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) -Chars 16134 - 16146 [reflexivity.] 0. secs (0.u,0.s) -Chars 16149 - 16150 [-] 0. secs (0.u,0.s) -Chars 16151 - 16257 [(enough~~~(exists~(X~:~Type)~(...] 0. secs (0.u,0.s) -Chars 16262 - 16263 [{] 0. secs (0.u,0.s) -Chars 16270 - 16306 [(destruct~H0~as~[X~[e0~[k0~Ht1...] 0. secs (0.u,0.s) -Chars 16313 - 16322 [exists~X.] 0. secs (0.u,0.s) -Chars 16323 - 16333 [exists~e0.] 0. secs (0.u,0.s) -Chars 16334 - 16344 [exists~k0.] 0. secs (0.u,0.s) -Chars 16351 - 16382 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16383 - 16402 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) -Chars 16403 - 16414 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) -Chars 16421 - 16438 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 16439 - 16444 [auto.] 0. secs (0.u,0.s) -Chars 16449 - 16450 [}] 0. secs (0.u,0.s) -Chars 16455 - 16477 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 16478 - 16482 [Qed.] 0.035 secs (0.034u,0.s) -Chars 16484 - 16730 [Lemma~trace_refine_vis_l~:~~~f...] 0.001 secs (0.001u,0.s) -Chars 16731 - 16737 [Proof.] 0. secs (0.u,0.s) -Chars 16740 - 16747 [(intros).] 0. secs (0.u,0.s) -Chars 16748 - 16758 [step~in~H.] 0. secs (0.u,0.s) -Chars 16759 - 16775 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16779 - 16801 [dependent~induction~H.] 0.045 secs (0.044u,0.s) -Chars 16804 - 16805 [-] 0. secs (0.u,0.s) -Chars 16806 - 16815 [exists~B.] 0. secs (0.u,0.s) -Chars 16816 - 16826 [exists~e2.] 0. secs (0.u,0.s) -Chars 16828 - 16838 [exists~k2.] 0. secs (0.u,0.s) -Chars 16839 - 16870 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 16875 - 16894 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 16895 - 16906 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 16907 - 16919 [reflexivity.] 0. secs (0.u,0.s) -Chars 16922 - 16923 [-] 0. secs (0.u,0.s) -Chars 16924 - 16942 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) -Chars 16947 - 16948 [{] 0. secs (0.u,0.s) -Chars 16955 - 16980 [specialize~(itree_eta~t).] 0. secs (0.u,0.s) -Chars 16981 - 16994 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 16995 - 17002 [(intros).] 0. secs (0.u,0.s) -Chars 17009 - 17020 [(rewrite~H0).] 0.001 secs (0.001u,0.s) -Chars 17021 - 17038 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 17039 - 17051 [reflexivity.] 0. secs (0.u,0.s) -Chars 17056 - 17057 [}] 0. secs (0.u,0.s) -Chars 17062 - 17083 [setoid_rewrite~~<-~H0.] 0.002 secs (0.002u,0.s) -Chars 17084 - 17106 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 17107 - 17111 [Qed.] 0.038 secs (0.037u,0.s) -Chars 17113 - 17318 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) -Chars 17319 - 17325 [Proof.] 0. secs (0.u,0.s) -Chars 17328 - 17335 [(intros).] 0. secs (0.u,0.s) -Chars 17336 - 17348 [(induction~H).] 0. secs (0.u,0.s) -Chars 17351 - 17352 [-] 0. secs (0.u,0.s) -Chars 17353 - 17368 [exists~(Ret~r).] 0. secs (0.u,0.s) -Chars 17369 - 17379 [(rewrite~H).] 0.003 secs (0.003u,0.s) -Chars 17380 - 17386 [split.] 0. secs (0.u,0.s) -Chars 17391 - 17392 [+] 0. secs (0.u,0.s) -Chars 17393 - 17405 [constructor.] 0. secs (0.u,0.s) -Chars 17406 - 17418 [reflexivity.] 0. secs (0.u,0.s) -Chars 17423 - 17424 [+] 0. secs (0.u,0.s) -Chars 17425 - 17448 [(apply~trace_refine_ret).] 0. secs (0.u,0.s) -Chars 17451 - 17452 [-] 0. secs (0.u,0.s) -Chars 17453 - 17500 [(destruct~IHmay_converge~as~[b...] 0. secs (0.u,0.s) -Chars 17505 - 17548 [exists~(Vis~(evans~B~e~b)~(fun...] 0. secs (0.u,0.s) -Chars 17549 - 17555 [split.] 0. secs (0.u,0.s) -Chars 17560 - 17561 [+] 0. secs (0.u,0.s) -Chars 17562 - 17595 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 17596 - 17602 [eauto.] 0. secs (0.u,0.s) -Chars 17603 - 17612 [Unshelve.] 0. secs (0.u,0.s) -Chars 17613 - 17622 [exact~tt.] 0. secs (0.u,0.s) -Chars 17627 - 17628 [+] 0. secs (0.u,0.s) -Chars 17629 - 17639 [(rewrite~H).] 0.004 secs (0.004u,0.s) -Chars 17640 - 17667 [(apply~trace_refine_vis_add).] 0. secs (0.u,0.s) -Chars 17668 - 17673 [auto.] 0. secs (0.u,0.s) -Chars 17674 - 17678 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17680 - 17886 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) -Chars 17887 - 17893 [Proof.] 0. secs (0.u,0.s) -Chars 17896 - 17903 [(intros).] 0. secs (0.u,0.s) -Chars 17904 - 17927 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 17928 - 17948 [(induction~H;~intros).] 0. secs (0.u,0.s) -Chars 17951 - 17952 [-] 0. secs (0.u,0.s) -Chars 17953 - 17969 [(rewrite~H~in~H0).] 0.006 secs (0.005u,0.s) -Chars 17970 - 18005 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 18010 - 18021 [(rewrite~H0).] 0.004 secs (0.004u,0.s) -Chars 18022 - 18034 [constructor.] 0. secs (0.u,0.s) -Chars 18035 - 18047 [reflexivity.] 0. secs (0.u,0.s) -Chars 18050 - 18051 [-] 0. secs (0.u,0.s) -Chars 18052 - 18068 [(rewrite~H~in~H1).] 0.003 secs (0.003u,0.s) -Chars 18069 - 18107 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 18112 - 18148 [(destruct~Ht0~as~[X~[e0~[k0~Ht...] 0. secs (0.u,0.s) -Chars 18153 - 18171 [(rewrite~Ht0~in~H1).] 0.003 secs (0.003u,0.s) -Chars 18172 - 18180 [sinv~H1.] 0.011 secs (0.011u,0.s) -Chars 18181 - 18187 [subst.] 0. secs (0.u,0.s) -Chars 18192 - 18205 [ddestruction.] 0.006 secs (0.006u,0.s) -Chars 18206 - 18212 [subst.] 0. secs (0.u,0.s) -Chars 18213 - 18225 [(rewrite~Ht0).] 0.005 secs (0.005u,0.s) -Chars 18230 - 18290 [(inversion~H4;~subst;~ddestruc...] 0.008 secs (0.008u,0.s) -Chars 18295 - 18328 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 18329 - 18338 [Unshelve.] 0. secs (0.u,0.s) -Chars 18339 - 18351 [2:~exact~a.] 0. secs (0.u,0.s) -Chars 18356 - 18377 [(apply~IHmay_converge).] 0. secs (0.u,0.s) -Chars 18383 - 18404 [specialize~(H9~tt~a).] 0. secs (0.u,0.s) -Chars 18405 - 18454 [(assert~(RAnsRef~E~unit~X~(eva...] 0. secs (0.u,0.s) -Chars 18459 - 18471 [constructor.] 0. secs (0.u,0.s) -Chars 18472 - 18487 [(apply~H9~in~H1).] 0. secs (0.u,0.s) -Chars 18488 - 18499 [(destruct~b).] 0. secs (0.u,0.s) -Chars 18500 - 18505 [auto.] 0. secs (0.u,0.s) -Chars 18506 - 18510 [Qed.] 0.017 secs (0.017u,0.s) -Chars 18512 - 18701 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) -Chars 18702 - 18708 [Proof.] 0. secs (0.u,0.s) -Chars 18711 - 18722 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 18723 - 18749 [(unfold~all_infinite~at~-~1).] 0. secs (0.u,0.s) -Chars 18753 - 18771 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18775 - 18782 [(intros).] 0. secs (0.u,0.s) -Chars 18783 - 18793 [step~in~H.] 0. secs (0.u,0.s) -Chars 18794 - 18805 [step~in~H0.] 0. secs (0.u,0.s) -Chars 18806 - 18838 [(repeat~red~in~H,~H0;~repeat~r...] 0. secs (0.u,0.s) -Chars 18844 - 18867 [dependent~induction~H0.] 0.04 secs (0.04u,0.s) -Chars 18870 - 18871 [-] 0. secs (0.u,0.s) -Chars 18872 - 18890 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 18891 - 18897 [(inv~H).] 0. secs (0.u,0.s) -Chars 18901 - 18902 [-] 0. secs (0.u,0.s) -Chars 18903 - 18917 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 18918 - 18930 [constructor.] 0. secs (0.u,0.s) -Chars 18931 - 18949 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 18954 - 18972 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 18973 - 18979 [(inv~H).] 0. secs (0.u,0.s) -Chars 18982 - 18983 [-] 0. secs (0.u,0.s) -Chars 18984 - 18998 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 18999 - 19017 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 19018 - 19030 [constructor.] 0. secs (0.u,0.s) -Chars 19031 - 19037 [(inv~H).] 0.011 secs (0.011u,0.s) -Chars 19042 - 19055 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 19056 - 19062 [subst.] 0. secs (0.u,0.s) -Chars 19063 - 19070 [(intros).] 0. secs (0.u,0.s) -Chars 19076 - 19123 [(inv~H1;~subst;~ddestruction;~...] 0.011 secs (0.011u,0.s) -Chars 19124 - 19136 [(destruct~b0).] 0. secs (0.u,0.s) -Chars 19141 - 19166 [(eapply~CIH;~try~apply~H3).] 0. secs (0.u,0.s) -Chars 19171 - 19192 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) -Chars 19193 - 19240 [(assert~(RAnsRef~_~_~_~(evans~...] 0. secs (0.u,0.s) -Chars 19245 - 19257 [constructor.] 0. secs (0.u,0.s) -Chars 19258 - 19272 [(apply~H0~in~H).] 0. secs (0.u,0.s) -Chars 19273 - 19279 [eauto.] 0. secs (0.u,0.s) -Chars 19282 - 19283 [-] 0. secs (0.u,0.s) -Chars 19284 - 19297 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 19298 - 19310 [constructor.] 0. secs (0.u,0.s) -Chars 19311 - 19329 [(apply~(b_chain~c)).] 0. secs (0.u,0.s) -Chars 19330 - 19352 [(eapply~IHruttF;~eauto).] 0.005 secs (0.005u,0.s) -Chars 19355 - 19356 [-] 0. secs (0.u,0.s) -Chars 19357 - 19378 [(eapply~IHruttF;~auto).] 0.001 secs (0.001u,0.s) -Chars 19379 - 19397 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 19398 - 19404 [(inv~H).] 0.007 secs (0.007u,0.s) -Chars 19409 - 19424 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 19426 - 19430 [Qed.] 0.049 secs (0.048u,0.s) -Chars 19432 - 19717 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) -Chars 19718 - 19724 [Proof.] 0. secs (0.u,0.s) -Chars 19727 - 19734 [(intros).] 0. secs (0.u,0.s) -Chars 19735 - 19758 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 19759 - 19789 [(dependent~induction~H;~intros).] 0. secs (0.u,0.s) -Chars 19792 - 19793 [-] 0. secs (0.u,0.s) -Chars 19794 - 19804 [(rewrite~H).] 0.005 secs (0.005u,0.s) -Chars 19805 - 19821 [(rewrite~H~in~H0).] 0.009 secs (0.009u,0.s) -Chars 19822 - 19857 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 19862 - 19873 [(rewrite~H0).] 0.004 secs (0.004u,0.s) -Chars 19874 - 19900 [(repeat~rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) -Chars 19901 - 19906 [auto.] 0. secs (0.u,0.s) -Chars 19909 - 19910 [-] 0. secs (0.u,0.s) -Chars 19911 - 19942 [specialize~(IHmay_converge~H1).] 0. secs (0.u,0.s) -Chars 19947 - 19963 [(rewrite~H~in~H2).] 0.003 secs (0.003u,0.s) -Chars 19964 - 20001 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 20006 - 20040 [(destruct~Ht~as~[X~[e0~[k0~Ht]...] 0. secs (0.u,0.s) -Chars 20045 - 20062 [(rewrite~Ht~in~H2).] 0.003 secs (0.003u,0.s) -Chars 20063 - 20074 [step~in~H2.] 0. secs (0.u,0.s) -Chars 20075 - 20092 [(repeat~red~in~H2).] 0. secs (0.u,0.s) -Chars 20093 - 20100 [(inv~H2).] 0.014 secs (0.013u,0.s) -Chars 20106 - 20119 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 20120 - 20126 [subst.] 0. secs (0.u,0.s) -Chars 20131 - 20175 [(inversion~H5;~subst;~ddestruc...] 0.012 secs (0.012u,0.s) -Chars 20181 - 20191 [(rewrite~H).] 0.009 secs (0.009u,0.s) -Chars 20192 - 20203 [(rewrite~Ht).] 0.004 secs (0.004u,0.s) -Chars 20208 - 20213 [step.] 0.001 secs (0.001u,0.s) -Chars 20214 - 20225 [(repeat~red).] 0. secs (0.u,0.s) -Chars 20226 - 20230 [(cbn).] 0. secs (0.u,0.s) -Chars 20231 - 20249 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 20254 - 20261 [(intros).] 0. secs (0.u,0.s) -Chars 20262 - 20278 [(apply~H10~in~H2).] 0. secs (0.u,0.s) -Chars 20283 - 20295 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 20296 - 20307 [(destruct~b).] 0. secs (0.u,0.s) -Chars 20308 - 20329 [(apply~IHmay_converge).] 0. secs (0.u,0.s) -Chars 20330 - 20335 [auto.] 0. secs (0.u,0.s) -Chars 20336 - 20340 [Qed.] 0.024 secs (0.023u,0.s) -Chars 20342 - 20600 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) -Chars 20601 - 20607 [Proof.] 0. secs (0.u,0.s) -Chars 20610 - 20631 [(intros~E~R~S~b~t~f~g).] 0. secs (0.u,0.s) -Chars 20632 - 20655 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 20656 - 20679 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 20682 - 20686 [(red).] 0. secs (0.u,0.s) -Chars 20687 - 20706 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20707 - 20714 [(intros).] 0. secs (0.u,0.s) -Chars 20717 - 20728 [step~in~H0.] 0. secs (0.u,0.s) -Chars 20732 - 20742 [step~in~H.] 0. secs (0.u,0.s) -Chars 20743 - 20763 [(repeat~red~in~H0,~H).] 0. secs (0.u,0.s) -Chars 20767 - 20790 [dependent~induction~H0.] 0.063 secs (0.063u,0.s) -Chars 20793 - 20794 [-] 0. secs (0.u,0.s) -Chars 20795 - 20814 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 20815 - 20821 [(inv~H).] 0.001 secs (0.001u,0.s) -Chars 20824 - 20825 [-] 0. secs (0.u,0.s) -Chars 20826 - 20841 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 20842 - 20846 [(cbn).] 0. secs (0.u,0.s) -Chars 20847 - 20861 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 20862 - 20875 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 20880 - 20884 [(cbn).] 0. secs (0.u,0.s) -Chars 20885 - 20897 [constructor.] 0. secs (0.u,0.s) -Chars 20898 - 20914 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 20919 - 20938 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 20939 - 20945 [(inv~H).] 0. secs (0.u,0.s) -Chars 20949 - 20950 [-] 0. secs (0.u,0.s) -Chars 20951 - 20966 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 20967 - 20971 [(cbn).] 0. secs (0.u,0.s) -Chars 20972 - 20986 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 20987 - 21000 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 21001 - 21005 [(cbn).] 0. secs (0.u,0.s) -Chars 21006 - 21024 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 21029 - 21036 [(intros).] 0. secs (0.u,0.s) -Chars 21041 - 21060 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 21061 - 21067 [(inv~H).] 0.023 secs (0.023u,0.s) -Chars 21068 - 21081 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 21082 - 21088 [subst.] 0. secs (0.u,0.s) -Chars 21094 - 21109 [(apply~H0~in~H2).] 0. secs (0.u,0.s) -Chars 21110 - 21128 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 21129 - 21138 [(apply~H4).] 0. secs (0.u,0.s) -Chars 21141 - 21142 [-] 0. secs (0.u,0.s) -Chars 21143 - 21163 [(unfold~observe~at~1).] 0. secs (0.u,0.s) -Chars 21164 - 21168 [(cbn).] 0. secs (0.u,0.s) -Chars 21169 - 21182 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 21183 - 21187 [(cbn).] 0. secs (0.u,0.s) -Chars 21188 - 21200 [constructor.] 0. secs (0.u,0.s) -Chars 21205 - 21227 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 21228 - 21246 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 21247 - 21253 [(inv~H).] 0.01 secs (0.01u,0.s) -Chars 21254 - 21265 [now~unstep.] 0. secs (0.u,0.s) -Chars 21268 - 21269 [-] 0. secs (0.u,0.s) -Chars 21270 - 21290 [(unfold~observe~at~2).] 0. secs (0.u,0.s) -Chars 21291 - 21295 [(cbn).] 0. secs (0.u,0.s) -Chars 21296 - 21309 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 21310 - 21314 [(cbn).] 0. secs (0.u,0.s) -Chars 21315 - 21327 [constructor.] 0. secs (0.u,0.s) -Chars 21332 - 21354 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 21355 - 21359 [Qed.] 0.075 secs (0.074u,0.s) -Chars 21361 - 21500 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) -Chars 21501 - 21507 [Proof.] 0. secs (0.u,0.s) -Chars 21510 - 21521 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 21522 - 21541 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 21542 - 21549 [(intros).] 0. secs (0.u,0.s) -Chars 21552 - 21581 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 21582 - 21611 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 21614 - 21645 [(destruct~(ot1);~destruct~(ot2)).] 0.01 secs (0.01u,0.s) -Chars 21648 - 21776 [all:~~(specialize~(itree_eta~t...] 0.001 secs (0.001u,0.s) -Chars 21793 - 21794 [-] 0. secs (0.u,0.s) -Chars 21795 - 21826 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) -Chars 21831 - 21850 [(rewrite~Ht1~in~Hr0).] 0.02 secs (0.02u,0.s) -Chars 21851 - 21870 [(rewrite~Ht2~in~Hr0).] 0.061 secs (0.06u,0.s) -Chars 21876 - 21899 [(assert~(Ret~r0~⊑~t1)).] 0. secs (0.u,0.s) -Chars 21904 - 21905 [{] 0. secs (0.u,0.s) -Chars 21906 - 21918 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 21919 - 21929 [(apply~Hr0).] 0. secs (0.u,0.s) -Chars 21930 - 21935 [step.] 0. secs (0.u,0.s) -Chars 21936 - 21941 [eret.] 0. secs (0.u,0.s) -Chars 21942 - 21943 [}] 0. secs (0.u,0.s) -Chars 21948 - 21966 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) -Chars 21967 - 21975 [sinv~H0.] 0.008 secs (0.008u,0.s) -Chars 21994 - 21995 [-] 0. secs (0.u,0.s) -Chars 21996 - 22020 [setoid_rewrite~Ht2~in~H.] 0.058 secs (0.057u,0.s) -Chars 22025 - 22049 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) -Chars 22054 - 22076 [(rewrite~tau_eutt~in~H).] 0.001 secs (0.001u,0.s) -Chars 22077 - 22082 [taur.] 0. secs (0.u,0.s) -Chars 22088 - 22110 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) -Chars 22115 - 22116 [{] 0. secs (0.u,0.s) -Chars 22117 - 22129 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 22130 - 22135 [step.] 0.001 secs (0.001u,0.s) -Chars 22136 - 22141 [eret.] 0. secs (0.u,0.s) -Chars 22142 - 22143 [}] 0. secs (0.u,0.s) -Chars 22148 - 22162 [(apply~H~in~H0).] 0. secs (0.u,0.s) -Chars 22163 - 22174 [step~in~H0.] 0. secs (0.u,0.s) -Chars 22175 - 22203 [(repeat~red~in~H0;~cbn~in~H0).] 0. secs (0.u,0.s) -Chars 22208 - 22238 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 22239 - 22262 [dependent~induction~H0.] 0.043 secs (0.043u,0.s) -Chars 22267 - 22268 [+] 0. secs (0.u,0.s) -Chars 22269 - 22282 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 22283 - 22288 [eret.] 0. secs (0.u,0.s) -Chars 22294 - 22295 [+] 0. secs (0.u,0.s) -Chars 22296 - 22309 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 22310 - 22321 [(taur;~auto).] 0.001 secs (0.001u,0.s) -Chars 22341 - 22342 [-] 0. secs (0.u,0.s) -Chars 22343 - 22351 [exfalso.] 0. secs (0.u,0.s) -Chars 22356 - 22378 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) -Chars 22383 - 22384 [{] 0. secs (0.u,0.s) -Chars 22385 - 22397 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 22398 - 22403 [step.] 0.001 secs (0.001u,0.s) -Chars 22404 - 22409 [eret.] 0. secs (0.u,0.s) -Chars 22410 - 22411 [}] 0. secs (0.u,0.s) -Chars 22416 - 22430 [(apply~H~in~H0).] 0. secs (0.u,0.s) -Chars 22431 - 22449 [(rewrite~Ht2~in~H0).] 0.006 secs (0.005u,0.s) -Chars 22450 - 22458 [sinv~H0.] 0.002 secs (0.002u,0.s) -Chars 22476 - 22477 [-] 0. secs (0.u,0.s) -Chars 22478 - 22502 [setoid_rewrite~Ht1~in~H.] 0.024 secs (0.024u,0.s) -Chars 22503 - 22527 [setoid_rewrite~Ht2~in~H.] 0.058 secs (0.058u,0.s) -Chars 22532 - 22554 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) -Chars 22559 - 22560 [{] 0. secs (0.u,0.s) -Chars 22561 - 22573 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) -Chars 22574 - 22579 [step.] 0.001 secs (0.001u,0.s) -Chars 22580 - 22585 [eret.] 0. secs (0.u,0.s) -Chars 22586 - 22587 [}] 0. secs (0.u,0.s) -Chars 22592 - 22610 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) -Chars 22611 - 22631 [(apply~H~in~H0~as~H1).] 0. secs (0.u,0.s) -Chars 22632 - 22643 [step~in~H1.] 0. secs (0.u,0.s) -Chars 22649 - 22682 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) -Chars 22683 - 22700 [(repeat~red~in~H1).] 0. secs (0.u,0.s) -Chars 22701 - 22710 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 22715 - 22720 [taul.] 0. secs (0.u,0.s) -Chars 22721 - 22728 [(inv~H1).] 0.013 secs (0.013u,0.s) -Chars 22729 - 22767 [(dependent~induction~H2;~intro...] 0.045 secs (0.045u,0.s) -Chars 22772 - 22773 [+] 0. secs (0.u,0.s) -Chars 22774 - 22787 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 22788 - 22793 [eret.] 0. secs (0.u,0.s) -Chars 22799 - 22800 [+] 0. secs (0.u,0.s) -Chars 22801 - 22814 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 22815 - 22826 [(taul;~auto).] 0.001 secs (0.001u,0.s) -Chars 22844 - 22845 [-] 0. secs (0.u,0.s) -Chars 22846 - 22858 [constructor.] 0. secs (0.u,0.s) -Chars 22859 - 22870 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 22876 - 22883 [(intros).] 0. secs (0.u,0.s) -Chars 22888 - 22906 [(assert~(t1~≈~t)).] 0. secs (0.u,0.s) -Chars 22907 - 22908 [{] 0. secs (0.u,0.s) -Chars 22909 - 22921 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 22922 - 22939 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 22940 - 22952 [reflexivity.] 0. secs (0.u,0.s) -Chars 22953 - 22954 [}] 0. secs (0.u,0.s) -Chars 22959 - 22978 [(assert~(t2~≈~t0)).] 0. secs (0.u,0.s) -Chars 22979 - 22980 [{] 0. secs (0.u,0.s) -Chars 22981 - 22993 [(rewrite~Ht2).] 0. secs (0.u,0.s) -Chars 22994 - 23011 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 23012 - 23024 [reflexivity.] 0. secs (0.u,0.s) -Chars 23025 - 23026 [}] 0. secs (0.u,0.s) -Chars 23031 - 23056 [now~rewrite~<-~H0,~<-~H1.] 0.002 secs (0.002u,0.s) -Chars 23074 - 23075 [-] 0. secs (0.u,0.s) -Chars 23076 - 23126 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 23131 - 23155 [(apply~H~in~Hbt1~as~Hbt2).] 0. secs (0.u,0.s) -Chars 23156 - 23176 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 23181 - 23206 [(rewrite~tau_eutt~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 23211 - 23231 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) -Chars 23236 - 23273 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) -Chars 23278 - 23312 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) -Chars 23317 - 23336 [(rewrite~Hb~in~Hbt2).] 0.008 secs (0.008u,0.s) -Chars 23341 - 23360 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) -Chars 23361 - 23372 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 23377 - 23395 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 23400 - 23424 [setoid_rewrite~Ht1~in~H.] 0.023 secs (0.023u,0.s) -Chars 23425 - 23454 [setoid_rewrite~tau_eutt~in~H.] 0.003 secs (0.003u,0.s) -Chars 23459 - 23479 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 23480 - 23493 [clear~Ht1~t1.] 0. secs (0.u,0.s) -Chars 23498 - 23511 [step~in~Hbt1.] 0. secs (0.u,0.s) -Chars 23512 - 23531 [(repeat~red~in~Hbt1).] 0. secs (0.u,0.s) -Chars 23532 - 23541 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23546 - 23571 [dependent~induction~Hbt1.] 0.066 secs (0.065u,0.s) -Chars 23576 - 23577 [+] 0. secs (0.u,0.s) -Chars 23578 - 23591 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 23598 - 23629 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23630 - 23649 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 23656 - 23700 [(eapply~refine_set_eq_to_eutt_...] 0.001 secs (0.u,0.s) -Chars 23705 - 23706 [+] 0. secs (0.u,0.s) -Chars 23707 - 23720 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 23721 - 23739 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 23740 - 23761 [(eapply~IHHbt1;~eauto).] 0.005 secs (0.005u,0.s) -Chars 23768 - 23786 [(assert~(t0~≈~t)).] 0. secs (0.u,0.s) -Chars 23793 - 23794 [{] 0. secs (0.u,0.s) -Chars 23803 - 23834 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23835 - 23854 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 23855 - 23866 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 23875 - 23892 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 23893 - 23905 [reflexivity.] 0. secs (0.u,0.s) -Chars 23912 - 23913 [}] 0. secs (0.u,0.s) -Chars 23920 - 23938 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) -Chars 23939 - 23944 [auto.] 0. secs (0.u,0.s) -Chars 23961 - 23962 [-] 0. secs (0.u,0.s) -Chars 23963 - 23971 [exfalso.] 0. secs (0.u,0.s) -Chars 23976 - 23998 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) -Chars 24003 - 24004 [{] 0. secs (0.u,0.s) -Chars 24005 - 24017 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) -Chars 24018 - 24023 [step.] 0.001 secs (0.001u,0.s) -Chars 24024 - 24029 [eret.] 0. secs (0.u,0.s) -Chars 24030 - 24031 [}] 0. secs (0.u,0.s) -Chars 24036 - 24050 [(apply~H~in~H0).] 0. secs (0.u,0.s) -Chars 24051 - 24069 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) -Chars 24070 - 24078 [sinv~H0.] 0.002 secs (0.002u,0.s) -Chars 24095 - 24096 [-] 0. secs (0.u,0.s) -Chars 24097 - 24147 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 24152 - 24176 [(apply~H~in~Hbt2~as~Hbt1).] 0. secs (0.u,0.s) -Chars 24177 - 24197 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 24202 - 24222 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) -Chars 24227 - 24252 [(rewrite~tau_eutt~in~Hbt2).] 0.003 secs (0.003u,0.s) -Chars 24257 - 24294 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) -Chars 24299 - 24333 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) -Chars 24338 - 24357 [(rewrite~Hb~in~Hbt2).] 0.003 secs (0.003u,0.s) -Chars 24362 - 24381 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) -Chars 24382 - 24393 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 24398 - 24416 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24421 - 24445 [setoid_rewrite~Ht2~in~H.] 0.06 secs (0.059u,0.s) -Chars 24446 - 24475 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) -Chars 24480 - 24500 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 24501 - 24514 [clear~Ht2~t2.] 0. secs (0.u,0.s) -Chars 24519 - 24532 [step~in~Hbt2.] 0. secs (0.u,0.s) -Chars 24533 - 24552 [(repeat~red~in~Hbt2).] 0. secs (0.u,0.s) -Chars 24553 - 24562 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 24567 - 24592 [dependent~induction~Hbt2.] 0.064 secs (0.063u,0.001s) -Chars 24597 - 24598 [+] 0. secs (0.u,0.s) -Chars 24599 - 24612 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 24619 - 24650 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24651 - 24670 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 24677 - 24721 [(eapply~refine_set_eq_to_eutt_...] 0.001 secs (0.001u,0.s) -Chars 24726 - 24727 [+] 0. secs (0.u,0.s) -Chars 24728 - 24741 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 24742 - 24760 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24761 - 24782 [(eapply~IHHbt2;~eauto).] 0.005 secs (0.005u,0.s) -Chars 24789 - 24807 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) -Chars 24814 - 24815 [{] 0. secs (0.u,0.s) -Chars 24824 - 24855 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24856 - 24875 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 24876 - 24887 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 24896 - 24913 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) -Chars 24914 - 24926 [reflexivity.] 0. secs (0.u,0.s) -Chars 24933 - 24934 [}] 0. secs (0.u,0.s) -Chars 24941 - 24959 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) -Chars 24960 - 24965 [auto.] 0. secs (0.u,0.s) -Chars 24984 - 24985 [-] 0. secs (0.u,0.s) -Chars 24986 - 25030 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) -Chars 25031 - 25035 [Qed.] 0.249 secs (0.245u,0.004s) -Chars 25037 - 25144 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) -Chars 25145 - 25151 [Proof.] 0. secs (0.u,0.s) -Chars 25154 - 25161 [(intros).] 0. secs (0.u,0.s) -Chars 25162 - 25215 [(split;~intros;~try~apply~refi...] 0. secs (0.u,0.s) -Chars 25218 - 25228 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 25229 - 25241 [(split;~auto).] 0. secs (0.u,0.s) -Chars 25242 - 25246 [Qed.] 0. secs (0.u,0.s) -Chars 25248 - 25575 [Lemma~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) -Chars 25576 - 25582 [Proof.] 0. secs (0.u,0.s) -Chars 25585 - 25598 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 25599 - 25603 [(red).] 0. secs (0.u,0.s) -Chars 25604 - 25622 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25623 - 25661 [(intros~b~m~g~f~a~Hconv~Hrefb~...] 0. secs (0.u,0.s) -Chars 25664 - 25688 [generalize~dependent~m.] 0. secs (0.u,0.s) -Chars 25691 - 25743 [(dependent~induction~Hconv;~in...] 0.001 secs (0.001u,0.s) -Chars 25746 - 25747 [-] 0. secs (0.u,0.s) -Chars 25748 - 25770 [(rewrite~H~in~Hrefbind).] 0.009 secs (0.009u,0.s) -Chars 25771 - 25802 [(rewrite~bind_ret_l~in~Hrefbind).] 0.003 secs (0.003u,0.s) -Chars 25803 - 25822 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) -Chars 25827 - 25865 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 25866 - 25892 [(rewrite~Hrefb~in~Hrefbind).] 0.003 secs (0.003u,0.s) -Chars 25897 - 25928 [(rewrite~bind_ret_l~in~Hrefbind).] 0.003 secs (0.003u,0.s) -Chars 25929 - 25938 [now~step.] 0.002 secs (0.002u,0.s) -Chars 25942 - 25943 [-] 0. secs (0.u,0.s) -Chars 26067 - 26097 [(destruct~e;~try~contradiction).] 0.001 secs (0.001u,0.s) -Chars 26098 - 26117 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) -Chars 26122 - 26144 [(rewrite~H~in~Hrefbind).] 0.005 secs (0.005u,0.s) -Chars 26145 - 26174 [(rewrite~bind_vis~in~Hrefbind).] 0.003 secs (0.003u,0.s) -Chars 26179 - 26221 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 26222 - 26261 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) -Chars 26266 - 26291 [(rewrite~Hvis~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 26292 - 26321 [(rewrite~bind_vis~in~Hrefbind).] 0.003 secs (0.003u,0.s) -Chars 26326 - 26343 [step~in~Hrefbind.] 0. secs (0.u,0.s) -Chars 26344 - 26384 [(repeat~red~in~Hrefbind;~cbn~i...] 0. secs (0.u,0.s) -Chars 26385 - 26398 [(inv~Hrefbind).] 0.024 secs (0.024u,0.s) -Chars 26403 - 26416 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 26417 - 26424 [(inv~H2).] 0.014 secs (0.014u,0.s) -Chars 26425 - 26445 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 26450 - 26472 [(rewrite~Hvis~in~Hrefb).] 0.004 secs (0.004u,0.s) -Chars 26473 - 26487 [step~in~Hrefb.] 0. secs (0.u,0.s) -Chars 26488 - 26522 [(repeat~red~in~Hrefb;~cbn~in~H...] 0. secs (0.u,0.s) -Chars 26523 - 26533 [(inv~Hrefb).] 0.024 secs (0.023u,0.s) -Chars 26538 - 26551 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 26556 - 26641 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 26646 - 26677 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) -Chars 26678 - 26692 [(apply~IHHconv).] 0. secs (0.u,0.s) -Chars 26697 - 26698 [+] 0. secs (0.u,0.s) -Chars 26699 - 26714 [(apply~H8~in~H0).] 0. secs (0.u,0.s) -Chars 26715 - 26726 [(destruct~b).] 0. secs (0.u,0.s) -Chars 26727 - 26732 [auto.] 0. secs (0.u,0.s) -Chars 26737 - 26738 [+] 0. secs (0.u,0.s) -Chars 26739 - 26754 [(apply~H7~in~H0).] 0. secs (0.u,0.s) -Chars 26755 - 26766 [(destruct~b).] 0. secs (0.u,0.s) -Chars 26767 - 26772 [auto.] 0. secs (0.u,0.s) -Chars 26773 - 26777 [Qed.] 0.047 secs (0.046u,0.s) -Chars 26779 - 27007 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) -Chars 27008 - 27014 [Proof.] 0. secs (0.u,0.s) -Chars 27017 - 27024 [(intros).] 0. secs (0.u,0.s) -Chars 27025 - 27051 [generalize~dependent~log'.] 0. secs (0.u,0.s) -Chars 27054 - 27081 [(induction~log;~cbn;~intros).] 0. secs (0.u,0.s) -Chars 27084 - 27085 [-] 0. secs (0.u,0.s) -Chars 27086 - 27097 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27098 - 27129 [setoid_rewrite~bind_ret_l~in~H.] 0.02 secs (0.02u,0.s) -Chars 27130 - 27140 [(rewrite~H).] 0.004 secs (0.004u,0.s) -Chars 27145 - 27171 [(apply~may_converge_append).] 0. secs (0.u,0.s) -Chars 27172 - 27200 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) -Chars 27203 - 27204 [-] 0. secs (0.u,0.s) -Chars 27205 - 27299 [(assert~~~(Vis~a0~(fun~_~=>~ev...] 0. secs (0.u,0.s) -Chars 27304 - 27305 [{] 0. secs (0.u,0.s) -Chars 27306 - 27310 [(cbn).] 0. secs (0.u,0.s) -Chars 27311 - 27323 [reflexivity.] 0. secs (0.u,0.s) -Chars 27324 - 27325 [}] 0. secs (0.u,0.s) -Chars 27330 - 27346 [(rewrite~H0~in~H).] 0.02 secs (0.019u,0.s) -Chars 27351 - 27378 [(destruct~log'~as~[|~h~t]).] 0. secs (0.u,0.s) -Chars 27383 - 27384 [+] 0. secs (0.u,0.s) -Chars 27385 - 27416 [setoid_rewrite~bind_ret_l~in~H.] 0.027 secs (0.027u,0.s) -Chars 27417 - 27428 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27429 - 27436 [sinv~H.] 0.004 secs (0.004u,0.s) -Chars 27442 - 27443 [+] 0. secs (0.u,0.s) -Chars 27444 - 27455 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27456 - 27475 [(unfold~append~in~H).] 0. secs (0.u,0.s) -Chars 27476 - 27505 [(repeat~rewrite~bind_vis~in~H).] 0.048 secs (0.048u,0.s) -Chars 27506 - 27513 [sinv~H.] 0.009 secs (0.009u,0.s) -Chars 27520 - 27540 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 27547 - 27616 [(assert~(ev_list_to_stream~log...] 0. secs (0.u,0.s) -Chars 27623 - 27624 [{] 0. secs (0.u,0.s) -Chars 27625 - 27635 [(apply~REL).] 0. secs (0.u,0.s) -Chars 27636 - 27645 [(apply~tt).] 0. secs (0.u,0.s) -Chars 27646 - 27647 [}] 0. secs (0.u,0.s) -Chars 27654 - 27674 [(eapply~IHlog;~eauto).] 0. secs (0.u,0.s) -Chars 27675 - 27679 [Qed.] 0.014 secs (0.013u,0.s) -Chars 27681 - 27894 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) -Chars 27895 - 27901 [Proof.] 0. secs (0.u,0.s) -Chars 27904 - 27927 [(intros~E~A~log~b'~Hdiv).] 0. secs (0.u,0.s) -Chars 27928 - 27942 [(induction~log).] 0. secs (0.u,0.s) -Chars 27945 - 27946 [-] 0. secs (0.u,0.s) -Chars 27947 - 27959 [(cbn~in~Hdiv).] 0. secs (0.u,0.s) -Chars 27960 - 27994 [setoid_rewrite~bind_ret_l~in~H...] 0.001 secs (0.001u,0.s) -Chars 27995 - 28000 [auto.] 0. secs (0.u,0.s) -Chars 28003 - 28004 [-] 0. secs (0.u,0.s) -Chars 28005 - 28017 [(apply~IHlog).] 0. secs (0.u,0.s) -Chars 28018 - 28032 [(simpl~in~Hdiv).] 0. secs (0.u,0.s) -Chars 28033 - 28055 [(unfold~append~in~Hdiv).] 0. secs (0.u,0.s) -Chars 28060 - 28085 [(rewrite~bind_vis~in~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 28086 - 28096 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) -Chars 28097 - 28110 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 28111 - 28117 [subst.] 0. secs (0.u,0.s) -Chars 28118 - 28127 [(apply~H0).] 0. secs (0.u,0.s) -Chars 28132 - 28141 [(apply~tt).] 0. secs (0.u,0.s) -Chars 28142 - 28146 [Qed.] 0.004 secs (0.004u,0.s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 89 - 216 [From~ITree~Require~Import~Util...] 0.245 secs (0.215u,0.029s) +Chars 218 - 280 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.u,0.s) +Chars 282 - 305 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 308 - 322 [Import~Monads.] 0. secs (0.u,0.s) +Chars 323 - 344 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 345 - 374 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 376 - 419 [Tactic~Notation~"step"~:=~(rep...] 0. secs (0.u,0.s) +Chars 421 - 488 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 490 - 542 [Tactic~Notation~"sinv"~ident(h...] 0. secs (0.u,0.s) +Chars 545 - 623 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) +Chars 624 - 630 [Proof.] 0. secs (0.u,0.s) +Chars 633 - 640 [(intros).] 0. secs (0.u,0.s) +Chars 641 - 681 [(destruct~(classic~(exists~a~:...] 0. secs (0.u,0.s) +Chars 684 - 685 [-] 0. secs (0.u,0.s) +Chars 686 - 704 [(destruct~H;~eauto).] 0. secs (0.u,0.s) +Chars 707 - 708 [-] 0. secs (0.u,0.s) +Chars 709 - 739 [(assert~(f~:~A~->~void);~eauto).] 0. secs (0.u,0.s) +Chars 740 - 747 [(intros).] 0. secs (0.u,0.s) +Chars 752 - 760 [exfalso.] 0. secs (0.u,0.s) +Chars 761 - 776 [(apply~H;~eauto).] 0. secs (0.u,0.s) +Chars 777 - 781 [Qed.] 0. secs (0.u,0.s) +Chars 783 - 874 [Lemma~REvRef_inv~{E}~{A}~(e~e'...] 0. secs (0.u,0.s) +Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) +Chars 884 - 893 [(intros~x).] 0. secs (0.u,0.s) +Chars 894 - 906 [(inversion~x).] 0.002 secs (0.002u,0.s) +Chars 907 - 920 [ddestruction.] 0.003 secs (0.002u,0.s) +Chars 921 - 933 [reflexivity.] 0. secs (0.u,0.s) +Chars 934 - 938 [Qed.] 0.003 secs (0.002u,0.s) +Chars 940 - 1020 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0. secs (0.u,0.s) +Chars 1021 - 1027 [Proof.] 0. secs (0.u,0.s) +Chars 1030 - 1039 [(intros~x).] 0. secs (0.u,0.s) +Chars 1040 - 1052 [(inversion~x).] 0.036 secs (0.032u,0.003s) +Chars 1055 - 1056 [-] 0. secs (0.u,0.s) +Chars 1057 - 1070 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 1071 - 1092 [(eexists;~reflexivity).] 0. secs (0.u,0.s) +Chars 1095 - 1096 [-] 0. secs (0.u,0.s) +Chars 1097 - 1136 [(enough~(unit~->~void)~by~cont...] 0. secs (0.u,0.s) +Chars 1137 - 1148 [(destruct~H).] 0. secs (0.u,0.s) +Chars 1149 - 1154 [auto.] 0. secs (0.u,0.s) +Chars 1155 - 1159 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1161 - 1338 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) +Chars 1339 - 1345 [Proof.] 0. secs (0.u,0.s) +Chars 1348 - 1355 [(intros).] 0. secs (0.u,0.s) +Chars 1356 - 1376 [(induction~H;~inv~H0).] 0.007 secs (0.007u,0.s) +Chars 1380 - 1381 [-] 0. secs (0.u,0.s) +Chars 1382 - 1398 [(rewrite~H~in~H1).] 0.06 secs (0.059u,0.s) +Chars 1399 - 1407 [sinv~H1.] 0.003 secs (0.003u,0.s) +Chars 1410 - 1411 [-] 0. secs (0.u,0.s) +Chars 1412 - 1428 [(rewrite~H~in~H1).] 0.02 secs (0.019u,0.s) +Chars 1429 - 1437 [sinv~H1.] 0.003 secs (0.003u,0.s) +Chars 1440 - 1441 [-] 0. secs (0.u,0.s) +Chars 1442 - 1453 [(destruct~e).] 0. secs (0.u,0.s) +Chars 1454 - 1465 [(destruct~b).] 0. secs (0.u,0.s) +Chars 1466 - 1487 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 1492 - 1493 [+] 0. secs (0.u,0.s) +Chars 1494 - 1510 [(rewrite~H~in~H2).] 0.017 secs (0.017u,0.s) +Chars 1511 - 1519 [sinv~H2.] 0.006 secs (0.006u,0.s) +Chars 1525 - 1526 [+] 0. secs (0.u,0.s) +Chars 1527 - 1539 [contra_void.] 0. secs (0.u,0.s) +Chars 1543 - 1544 [-] 0. secs (0.u,0.s) +Chars 1545 - 1573 [(destruct~e;~try~contra_void).] 0. secs (0.u,0.s) +Chars 1579 - 1608 [(destruct~e0;~try~contra_void).] 0. secs (0.u,0.s) +Chars 1613 - 1624 [(destruct~b).] 0. secs (0.u,0.s) +Chars 1625 - 1637 [(destruct~b0).] 0. secs (0.u,0.s) +Chars 1642 - 1663 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 1664 - 1680 [(rewrite~H~in~H2).] 0.018 secs (0.018u,0.s) +Chars 1685 - 1693 [sinv~H2.] 0.01 secs (0.01u,0.s) +Chars 1694 - 1707 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 1712 - 1718 [subst.] 0. secs (0.u,0.s) +Chars 1719 - 1758 [(enough~(k~tt~≈~k0~tt);~try~ap...] 0. secs (0.u,0.s) +Chars 1763 - 1774 [(rewrite~H0).] 0.005 secs (0.005u,0.s) +Chars 1775 - 1780 [auto.] 0. secs (0.u,0.s) +Chars 1781 - 1785 [Qed.] 0.02 secs (0.02u,0.s) +Chars 1787 - 1841 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) +Chars 1842 - 1848 [Proof.] 0. secs (0.u,0.s) +Chars 1851 - 1866 [(apply~conv_ret).] 0. secs (0.u,0.s) +Chars 1867 - 1878 [(unfold~Nil).] 0. secs (0.u,0.s) +Chars 1879 - 1891 [reflexivity.] 0. secs (0.u,0.s) +Chars 1892 - 1896 [Qed.] 0. secs (0.u,0.s) +Chars 1898 - 2004 [Lemma~finite_list_to_stream~:~...] 0. secs (0.u,0.s) +Chars 2005 - 2011 [Proof.] 0. secs (0.u,0.s) +Chars 2014 - 2018 [(red).] 0. secs (0.u,0.s) +Chars 2019 - 2026 [(intros).] 0. secs (0.u,0.s) +Chars 2027 - 2039 [(induction~l).] 0. secs (0.u,0.s) +Chars 2042 - 2043 [-] 0. secs (0.u,0.s) +Chars 2044 - 2048 [(cbn).] 0. secs (0.u,0.s) +Chars 2049 - 2061 [constructor.] 0. secs (0.u,0.s) +Chars 2062 - 2074 [reflexivity.] 0. secs (0.u,0.s) +Chars 2077 - 2078 [-] 0. secs (0.u,0.s) +Chars 2079 - 2083 [(cbn).] 0. secs (0.u,0.s) +Chars 2084 - 2117 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 2118 - 2124 [(simpl).] 0. secs (0.u,0.s) +Chars 2125 - 2131 [eauto.] 0. secs (0.u,0.s) +Chars 2136 - 2145 [Unshelve.] 0. secs (0.u,0.s) +Chars 2146 - 2155 [exact~tt.] 0. secs (0.u,0.s) +Chars 2156 - 2160 [Qed.] 0. secs (0.u,0.s) +Chars 2162 - 2294 [Lemma~finite_stream_list~:~~~f...] 0. secs (0.u,0.s) +Chars 2295 - 2301 [Proof.] 0. secs (0.u,0.s) +Chars 2304 - 2311 [(intros).] 0. secs (0.u,0.s) +Chars 2312 - 2321 [(red~in~H).] 0. secs (0.u,0.s) +Chars 2322 - 2334 [(induction~H).] 0. secs (0.u,0.s) +Chars 2337 - 2338 [-] 0. secs (0.u,0.s) +Chars 2339 - 2350 [exists~nil.] 0. secs (0.u,0.s) +Chars 2351 - 2356 [auto.] 0. secs (0.u,0.s) +Chars 2359 - 2360 [-] 0. secs (0.u,0.s) +Chars 2361 - 2395 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) +Chars 2396 - 2416 [(unfold~ev_list~in~l).] 0. secs (0.u,0.s) +Chars 2421 - 2433 [(inversion~e).] 0. secs (0.u,0.s) +Chars 2434 - 2440 [subst.] 0. secs (0.u,0.s) +Chars 2445 - 2463 [exists~(cons~e~l).] 0. secs (0.u,0.s) +Chars 2464 - 2470 [(simpl).] 0. secs (0.u,0.s) +Chars 2471 - 2481 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 2486 - 2497 [(destruct~b).] 0. secs (0.u,0.s) +Chars 2503 - 2518 [(apply~eqit_Vis).] 0. secs (0.u,0.s) +Chars 2524 - 2531 [(intros).] 0. secs (0.u,0.s) +Chars 2532 - 2547 [now~destruct~u.] 0. secs (0.u,0.s) +Chars 2552 - 2558 [subst.] 0. secs (0.u,0.s) +Chars 2559 - 2573 [contradiction.] 0. secs (0.u,0.s) +Chars 2574 - 2578 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2580 - 2767 [Lemma~append_vis~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) +Chars 2777 - 2788 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 2789 - 2803 [(unfold~append).] 0. secs (0.u,0.s) +Chars 2804 - 2811 [(intros).] 0. secs (0.u,0.s) +Chars 2814 - 2819 [step.] 0.002 secs (0.002u,0.s) +Chars 2820 - 2824 [(cbn).] 0. secs (0.u,0.s) +Chars 2825 - 2830 [evis.] 0. secs (0.u,0.s) +Chars 2832 - 2836 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2838 - 2967 [#[global]~Instance~proper_appe...] 0. secs (0.u,0.s) +Chars 2968 - 2974 [Proof.] 0. secs (0.u,0.s) +Chars 2977 - 3008 [(intros~log1~log2~Hlog~b1~b2~Hb).] 0. secs (0.u,0.s) +Chars 3009 - 3023 [(unfold~append).] 0. secs (0.u,0.s) +Chars 3024 - 3037 [(rewrite~Hlog).] 0.002 secs (0.002u,0.s) +Chars 3040 - 3069 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 3070 - 3074 [Qed.] 0.005 secs (0.004u,0.s) +Chars 3076 - 3248 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) +Chars 3249 - 3255 [Proof.] 0. secs (0.u,0.s) +Chars 3258 - 3265 [(intros).] 0. secs (0.u,0.s) +Chars 3266 - 3278 [(induction~H).] 0. secs (0.u,0.s) +Chars 3281 - 3282 [-] 0. secs (0.u,0.s) +Chars 3283 - 3297 [(unfold~append).] 0. secs (0.u,0.s) +Chars 3298 - 3308 [(rewrite~H).] 0.009 secs (0.009u,0.s) +Chars 3309 - 3328 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 3333 - 3345 [constructor.] 0. secs (0.u,0.s) +Chars 3346 - 3358 [reflexivity.] 0. secs (0.u,0.s) +Chars 3361 - 3362 [-] 0. secs (0.u,0.s) +Chars 3363 - 3373 [(rewrite~H).] 0.006 secs (0.006u,0.s) +Chars 3374 - 3386 [(inversion~e).] 0. secs (0.u,0.s) +Chars 3387 - 3393 [subst.] 0. secs (0.u,0.s) +Chars 3394 - 3413 [(rewrite~append_vis).] 0.006 secs (0.006u,0.s) +Chars 3418 - 3458 [(eapply~conv_vis;~eauto;~try~r...] 0.005 secs (0.005u,0.s) +Chars 3459 - 3465 [(simpl).] 0. secs (0.u,0.s) +Chars 3466 - 3472 [eauto.] 0. secs (0.u,0.s) +Chars 3477 - 3483 [subst.] 0. secs (0.u,0.s) +Chars 3484 - 3498 [contradiction.] 0. secs (0.u,0.s) +Chars 3499 - 3503 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3505 - 3718 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) +Chars 3719 - 3725 [Proof.] 0. secs (0.u,0.s) +Chars 3728 - 3735 [(intros).] 0. secs (0.u,0.s) +Chars 3736 - 3748 [(induction~H).] 0. secs (0.u,0.s) +Chars 3751 - 3752 [-] 0. secs (0.u,0.s) +Chars 3753 - 3764 [exists~nil.] 0. secs (0.u,0.s) +Chars 3765 - 3769 [(cbn).] 0. secs (0.u,0.s) +Chars 3770 - 3780 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 3785 - 3790 [step.] 0.002 secs (0.002u,0.s) +Chars 3791 - 3795 [(cbn).] 0. secs (0.u,0.s) +Chars 3796 - 3801 [eret.] 0. secs (0.u,0.s) +Chars 3806 - 3807 [-] 0. secs (0.u,0.s) +Chars 3808 - 3846 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) +Chars 3847 - 3859 [(inversion~e).] 0. secs (0.u,0.s) +Chars 3860 - 3866 [subst.] 0. secs (0.u,0.s) +Chars 3871 - 3891 [exists~(cons~e~log).] 0. secs (0.u,0.s) +Chars 3892 - 3896 [(cbn).] 0. secs (0.u,0.s) +Chars 3897 - 3916 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) +Chars 3917 - 3927 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 3932 - 3937 [step.] 0.002 secs (0.002u,0.s) +Chars 3938 - 3950 [constructor.] 0. secs (0.u,0.s) +Chars 3951 - 3958 [(intros).] 0. secs (0.u,0.s) +Chars 3959 - 3970 [(destruct~v).] 0. secs (0.u,0.s) +Chars 3977 - 3988 [(destruct~b).] 0. secs (0.u,0.s) +Chars 3989 - 4000 [(apply~Hlog).] 0. secs (0.u,0.s) +Chars 4001 - 4007 [subst.] 0. secs (0.u,0.s) +Chars 4008 - 4022 [contradiction.] 0. secs (0.u,0.s) +Chars 4023 - 4027 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4029 - 4211 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) +Chars 4212 - 4218 [Proof.] 0. secs (0.u,0.s) +Chars 4221 - 4228 [(intros).] 0. secs (0.u,0.s) +Chars 4231 - 4267 [(destruct~(classic_converge~b)...] 0. secs (0.u,0.s) +Chars 4268 - 4289 [(destruct~H~as~[r~Hr]).] 0. secs (0.u,0.s) +Chars 4290 - 4295 [left.] 0. secs (0.u,0.s) +Chars 4298 - 4307 [exists~r.] 0. secs (0.u,0.s) +Chars 4308 - 4338 [(apply~converge_itrace_ev_list).] 0. secs (0.u,0.s) +Chars 4339 - 4344 [auto.] 0. secs (0.u,0.s) +Chars 4345 - 4349 [Qed.] 0. secs (0.u,0.s) +Chars 4351 - 4393 [Arguments~classic_converge_itr...] 0. secs (0.u,0.s) +Chars 4395 - 4499 [Lemma~append_nil~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 4500 - 4506 [Proof.] 0. secs (0.u,0.s) +Chars 4509 - 4516 [(intros).] 0. secs (0.u,0.s) +Chars 4517 - 4531 [(unfold~append).] 0. secs (0.u,0.s) +Chars 4532 - 4551 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 4552 - 4564 [reflexivity.] 0. secs (0.u,0.s) +Chars 4565 - 4569 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4571 - 4822 [Lemma~append_assoc~:~~~forall~...] 0. secs (0.u,0.s) +Chars 4823 - 4829 [Proof.] 0. secs (0.u,0.s) +Chars 4832 - 4849 [(intros~E~R~b~log).] 0. secs (0.u,0.s) +Chars 4850 - 4864 [(induction~log).] 0. secs (0.u,0.s) +Chars 4867 - 4868 [-] 0. secs (0.u,0.s) +Chars 4869 - 4875 [(simpl).] 0. secs (0.u,0.s) +Chars 4876 - 4883 [(intros).] 0. secs (0.u,0.s) +Chars 4884 - 4903 [(rewrite~append_nil).] 0.001 secs (0.001u,0.s) +Chars 4904 - 4916 [reflexivity.] 0. secs (0.u,0.s) +Chars 4919 - 4920 [-] 0. secs (0.u,0.s) +Chars 4921 - 4925 [(cbn).] 0. secs (0.u,0.s) +Chars 4926 - 4933 [(intros).] 0. secs (0.u,0.s) +Chars 4934 - 4953 [(rewrite~append_vis).] 0.003 secs (0.003u,0.s) +Chars 4954 - 4975 [setoid_rewrite~IHlog.] 0.004 secs (0.004u,0.s) +Chars 4980 - 4999 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) +Chars 5000 - 5012 [reflexivity.] 0. secs (0.u,0.s) +Chars 5013 - 5017 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5019 - 5198 [Lemma~append_div~:~~~forall~(E...] 0. secs (0.u,0.s) +Chars 5199 - 5205 [Proof.] 0. secs (0.u,0.s) +Chars 5208 - 5215 [(intros).] 0. secs (0.u,0.s) +Chars 5216 - 5230 [(induction~log).] 0. secs (0.u,0.s) +Chars 5233 - 5234 [-] 0. secs (0.u,0.s) +Chars 5235 - 5239 [(cbn).] 0. secs (0.u,0.s) +Chars 5240 - 5254 [(unfold~append).] 0. secs (0.u,0.s) +Chars 5255 - 5274 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 5275 - 5280 [auto.] 0. secs (0.u,0.s) +Chars 5283 - 5284 [-] 0. secs (0.u,0.s) +Chars 5285 - 5289 [(cbn).] 0. secs (0.u,0.s) +Chars 5290 - 5304 [(unfold~append).] 0. secs (0.u,0.s) +Chars 5309 - 5314 [step.] 0. secs (0.u,0.s) +Chars 5315 - 5326 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5327 - 5331 [(cbn).] 0. secs (0.u,0.s) +Chars 5332 - 5344 [constructor.] 0. secs (0.u,0.s) +Chars 5345 - 5351 [intro.] 0. secs (0.u,0.s) +Chars 5352 - 5357 [auto.] 0. secs (0.u,0.s) +Chars 5359 - 5363 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5365 - 5605 [Lemma~inv_append_eutt~:~~~fora...] 0. secs (0.u,0.s) +Chars 5606 - 5612 [Proof.] 0. secs (0.u,0.s) +Chars 5615 - 5622 [(intros).] 0. secs (0.u,0.s) +Chars 5623 - 5649 [generalize~dependent~log2.] 0. secs (0.u,0.s) +Chars 5650 - 5673 [(induction~log1;~intros).] 0. secs (0.u,0.s) +Chars 5676 - 5677 [-] 0. secs (0.u,0.s) +Chars 5678 - 5692 [(destruct~log2).] 0. secs (0.u,0.s) +Chars 5697 - 5698 [+] 0. secs (0.u,0.s) +Chars 5699 - 5711 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5712 - 5721 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 5722 - 5729 [sinv~H.] 0.004 secs (0.004u,0.s) +Chars 5735 - 5736 [+] 0. secs (0.u,0.s) +Chars 5737 - 5744 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 5747 - 5748 [-] 0. secs (0.u,0.s) +Chars 5749 - 5763 [(destruct~log2).] 0. secs (0.u,0.s) +Chars 5768 - 5769 [+] 0. secs (0.u,0.s) +Chars 5770 - 5777 [sinv~H.] 0.006 secs (0.006u,0.s) +Chars 5782 - 5783 [+] 0. secs (0.u,0.s) +Chars 5784 - 5793 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 5794 - 5813 [(unfold~append~in~H).] 0. secs (0.u,0.s) +Chars 5814 - 5821 [sinv~H.] 0.009 secs (0.009u,0.s) +Chars 5822 - 5831 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5832 - 5845 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 5852 - 5884 [(enough~(log1~=~log2~/\~r1~=~r...] 0. secs (0.u,0.s) +Chars 5891 - 5892 [{] 0. secs (0.u,0.s) +Chars 5893 - 5904 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5905 - 5911 [subst.] 0. secs (0.u,0.s) +Chars 5912 - 5917 [auto.] 0. secs (0.u,0.s) +Chars 5918 - 5919 [}] 0. secs (0.u,0.s) +Chars 5926 - 5939 [(apply~IHlog1).] 0. secs (0.u,0.s) +Chars 5940 - 5950 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5951 - 5960 [(apply~tt).] 0. secs (0.u,0.s) +Chars 5961 - 5965 [Qed.] 0.022 secs (0.022u,0.s) +Chars 5967 - 6255 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) +Chars 6256 - 6262 [Proof.] 0. secs (0.u,0.s) +Chars 6265 - 6276 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 6277 - 6296 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6297 - 6304 [(intros).] 0. secs (0.u,0.s) +Chars 6308 - 6319 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6320 - 6337 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 6338 - 6348 [step~in~H.] 0. secs (0.u,0.s) +Chars 6351 - 6364 [(genobs~t~ot3).] 0. secs (0.u,0.s) +Chars 6365 - 6378 [clear~Heqot3.] 0. secs (0.u,0.s) +Chars 6382 - 6428 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) +Chars 6431 - 6432 [-] 0. secs (0.u,0.s) +Chars 6433 - 6459 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 6460 - 6512 [(hinduction~H0~before~CIH;~int...] 0.022 secs (0.022u,0.s) +Chars 6519 - 6520 [+] 0. secs (0.u,0.s) +Chars 6521 - 6533 [constructor.] 0. secs (0.u,0.s) +Chars 6534 - 6539 [auto.] 0. secs (0.u,0.s) +Chars 6544 - 6545 [+] 0. secs (0.u,0.s) +Chars 6546 - 6558 [constructor.] 0. secs (0.u,0.s) +Chars 6559 - 6581 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 6637 - 6638 [-] 0. secs (0.u,0.s) +Chars 6640 - 6712 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) +Chars 6718 - 6719 [{] 0. secs (0.u,0.s) +Chars 6720 - 6767 [(destruct~ot3;~eauto;~right;~r...] 0.007 secs (0.007u,0.s) +Chars 6768 - 6769 [}] 0. secs (0.u,0.s) +Chars 6775 - 6801 [(destruct~DEC~as~[EQ|~EQ]).] 0. secs (0.u,0.s) +Chars 6807 - 6808 [+] 0. secs (0.u,0.s) +Chars 6809 - 6838 [(destruct~EQ~as~[m3~?];~subst).] 0. secs (0.u,0.s) +Chars 6846 - 6858 [constructor.] 0. secs (0.u,0.s) +Chars 6859 - 6877 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 6885 - 6904 [(apply~rutt_inv_Tau).] 0. secs (0.u,0.s) +Chars 6905 - 6914 [now~step.] 0.001 secs (0.001u,0.s) +Chars 6921 - 6922 [+] 0. secs (0.u,0.s) +Chars 6923 - 6969 [(inv~H0;~try~(exfalso;~eapply~...] 0.038 secs (0.038u,0.s) +Chars 6977 - 6989 [constructor.] 0. secs (0.u,0.s) +Chars 6997 - 7009 [step~in~REL.] 0. secs (0.u,0.s) +Chars 7018 - 7097 [(hinduction~H1~before~CIH;~int...] 0.004 secs (0.004u,0.s) +Chars 7105 - 7106 [*] 0. secs (0.u,0.s) +Chars 7107 - 7145 [(dependent~induction~REL;~rewr...] 0.054 secs (0.053u,0.s) +Chars 7155 - 7157 [++] 0. secs (0.u,0.s) +Chars 7158 - 7170 [constructor.] 0. secs (0.u,0.s) +Chars 7171 - 7176 [auto.] 0. secs (0.u,0.s) +Chars 7186 - 7188 [++] 0. secs (0.u,0.s) +Chars 7189 - 7201 [constructor.] 0. secs (0.u,0.s) +Chars 7202 - 7222 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7230 - 7231 [*] 0. secs (0.u,0.s) +Chars 7232 - 7270 [(dependent~induction~REL;~rewr...] 0.08 secs (0.079u,0.s) +Chars 7280 - 7282 [++] 0. secs (0.u,0.s) +Chars 7283 - 7301 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 7302 - 7309 [(intros).] 0. secs (0.u,0.s) +Chars 7310 - 7325 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 7339 - 7350 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7351 - 7361 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7362 - 7373 [assumption.] 0. secs (0.u,0.s) +Chars 7384 - 7386 [++] 0. secs (0.u,0.s) +Chars 7387 - 7399 [constructor.] 0. secs (0.u,0.s) +Chars 7400 - 7420 [(eapply~IHREL;~eauto).] 0.006 secs (0.006u,0.s) +Chars 7428 - 7429 [*] 0. secs (0.u,0.s) +Chars 7430 - 7452 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7453 - 7467 [clear~IHruttF.] 0. secs (0.u,0.s) +Chars 7477 - 7540 [(dependent~induction~REL;~try~...] 0.063 secs (0.062u,0.s) +Chars 7550 - 7552 [++] 0. secs (0.u,0.s) +Chars 7553 - 7566 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 7567 - 7585 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 7586 - 7597 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 7608 - 7610 [++] 0. secs (0.u,0.s) +Chars 7611 - 7616 [auto.] 0. secs (0.u,0.s) +Chars 7626 - 7628 [++] 0. secs (0.u,0.s) +Chars 7629 - 7642 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 7643 - 7661 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 7662 - 7682 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7685 - 7686 [-] 0. secs (0.u,0.s) +Chars 7687 - 7715 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 7720 - 7783 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) +Chars 7788 - 7789 [+] 0. secs (0.u,0.s) +Chars 7790 - 7808 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 7809 - 7816 [(intros).] 0. secs (0.u,0.s) +Chars 7817 - 7832 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 7839 - 7850 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7851 - 7861 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7862 - 7873 [assumption.] 0. secs (0.u,0.s) +Chars 7879 - 7880 [+] 0. secs (0.u,0.s) +Chars 7881 - 7893 [constructor.] 0. secs (0.u,0.s) +Chars 7894 - 7916 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 7919 - 7920 [-] 0. secs (0.u,0.s) +Chars 7921 - 7943 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 7944 - 7971 [(remember~(TauF~t1)~as~otf1).] 0.001 secs (0.001u,0.s) +Chars 7976 - 8047 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) +Chars 8052 - 8053 [+] 0. secs (0.u,0.s) +Chars 8054 - 8066 [constructor.] 0. secs (0.u,0.s) +Chars 8067 - 8078 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 8084 - 8085 [+] 0. secs (0.u,0.s) +Chars 8086 - 8098 [constructor.] 0. secs (0.u,0.s) +Chars 8099 - 8121 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8124 - 8125 [-] 0. secs (0.u,0.s) +Chars 8126 - 8138 [constructor.] 0. secs (0.u,0.s) +Chars 8139 - 8161 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 8162 - 8166 [Qed.] 0.191 secs (0.188u,0.002s) +Chars 8168 - 8461 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) +Chars 8462 - 8468 [Proof.] 0. secs (0.u,0.s) +Chars 8471 - 8482 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 8483 - 8502 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 8503 - 8510 [(intros).] 0. secs (0.u,0.s) +Chars 8511 - 8521 [step~in~H.] 0. secs (0.u,0.s) +Chars 8525 - 8536 [step~in~H0.] 0. secs (0.u,0.s) +Chars 8537 - 8554 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 8558 - 8578 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) +Chars 8581 - 8637 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) +Chars 8640 - 8641 [-] 0. secs (0.u,0.s) +Chars 8642 - 8668 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 8669 - 8731 [(hinduction~H0~before~CIH;~int...] 0.023 secs (0.023u,0.s) +Chars 8736 - 8737 [+] 0. secs (0.u,0.s) +Chars 8738 - 8756 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8761 - 8762 [+] 0. secs (0.u,0.s) +Chars 8763 - 8775 [constructor.] 0. secs (0.u,0.s) +Chars 8776 - 8782 [eauto.] 0. secs (0.u,0.s) +Chars 8785 - 8786 [-] 0. secs (0.u,0.s) +Chars 8787 - 8814 [(remember~(TauF~m1)~as~otm1).] 0.001 secs (0.001u,0.s) +Chars 8819 - 8878 [(hinduction~H0~before~CIH;~int...] 0.023 secs (0.022u,0.s) +Chars 8883 - 8884 [+] 0. secs (0.u,0.s) +Chars 8885 - 8897 [constructor.] 0. secs (0.u,0.s) +Chars 8898 - 8916 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 8921 - 8922 [+] 0. secs (0.u,0.s) +Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) +Chars 8936 - 8954 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 8961 - 8982 [(apply~rutt_inv_Tau_r).] 0. secs (0.u,0.s) +Chars 8983 - 8992 [now~step.] 0.001 secs (0.001u,0.s) +Chars 8998 - 8999 [+] 0. secs (0.u,0.s) +Chars 9000 - 9012 [step~in~REL.] 0. secs (0.u,0.s) +Chars 9020 - 9051 [(dependent~induction~REL;~subst).] 0.045 secs (0.045u,0.s) +Chars 9058 - 9059 [*] 0. secs (0.u,0.s) +Chars 9060 - 9072 [constructor.] 0. secs (0.u,0.s) +Chars 9073 - 9087 [clear~IHruttF.] 0. secs (0.u,0.s) +Chars 9096 - 9155 [(hinduction~H0~before~CIH;~int...] 0.013 secs (0.013u,0.s) +Chars 9164 - 9166 [++] 0. secs (0.u,0.s) +Chars 9167 - 9180 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9181 - 9193 [constructor.] 0. secs (0.u,0.s) +Chars 9194 - 9199 [auto.] 0. secs (0.u,0.s) +Chars 9208 - 9210 [++] 0. secs (0.u,0.s) +Chars 9211 - 9223 [constructor.] 0. secs (0.u,0.s) +Chars 9224 - 9229 [auto.] 0. secs (0.u,0.s) +Chars 9236 - 9237 [*] 0. secs (0.u,0.s) +Chars 9238 - 9253 [(eapply~IHruttF).] 0. secs (0.u,0.s) +Chars 9254 - 9274 [2:~(symmetry;~eauto).] 0. secs (0.u,0.s) +Chars 9283 - 9288 [step.] 0.001 secs (0.001u,0.s) +Chars 9289 - 9302 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9303 - 9321 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 9330 - 9346 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 9354 - 9355 [*] 0. secs (0.u,0.s) +Chars 9356 - 9368 [constructor.] 0. secs (0.u,0.s) +Chars 9369 - 9382 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9391 - 9405 [clear~IHruttF.] 0. secs (0.u,0.s) +Chars 9406 - 9465 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) +Chars 9474 - 9476 [++] 0. secs (0.u,0.s) +Chars 9477 - 9495 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 9496 - 9503 [(intros).] 0. secs (0.u,0.s) +Chars 9504 - 9519 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 9530 - 9541 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9542 - 9552 [(apply~REL).] 0. secs (0.u,0.s) +Chars 9553 - 9564 [assumption.] 0. secs (0.u,0.s) +Chars 9574 - 9576 [++] 0. secs (0.u,0.s) +Chars 9577 - 9589 [constructor.] 0. secs (0.u,0.s) +Chars 9590 - 9612 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 9619 - 9620 [*] 0. secs (0.u,0.s) +Chars 9621 - 9635 [unstep~in~REL.] 0. secs (0.u,0.s) +Chars 9636 - 9658 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 9665 - 9666 [*] 0. secs (0.u,0.s) +Chars 9667 - 9679 [constructor.] 0. secs (0.u,0.s) +Chars 9680 - 9693 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9694 - 9714 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) +Chars 9717 - 9718 [-] 0. secs (0.u,0.s) +Chars 9719 - 9747 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) +Chars 9748 - 9793 [(hinduction~H0~before~CIH;~int...] 0.03 secs (0.03u,0.s) +Chars 9798 - 9799 [+] 0. secs (0.u,0.s) +Chars 9800 - 9813 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 9814 - 9832 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 9833 - 9840 [(intros).] 0. secs (0.u,0.s) +Chars 9841 - 9856 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 9863 - 9874 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9875 - 9885 [(apply~REL).] 0. secs (0.u,0.s) +Chars 9886 - 9897 [assumption.] 0. secs (0.u,0.s) +Chars 9903 - 9904 [+] 0. secs (0.u,0.s) +Chars 9905 - 9917 [constructor.] 0. secs (0.u,0.s) +Chars 9918 - 9924 [eauto.] 0. secs (0.u,0.s) +Chars 9927 - 9928 [-] 0. secs (0.u,0.s) +Chars 9929 - 9951 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 9952 - 9979 [(remember~(TauF~t0)~as~otf0).] 0.002 secs (0.002u,0.s) +Chars 9984 - 10055 [(hinduction~H0~before~CIH;~int...] 0.017 secs (0.017u,0.s) +Chars 10060 - 10061 [+] 0. secs (0.u,0.s) +Chars 10062 - 10074 [constructor.] 0. secs (0.u,0.s) +Chars 10075 - 10086 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 10092 - 10093 [+] 0. secs (0.u,0.s) +Chars 10094 - 10106 [constructor.] 0. secs (0.u,0.s) +Chars 10107 - 10129 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 10132 - 10133 [-] 0. secs (0.u,0.s) +Chars 10134 - 10146 [constructor.] 0. secs (0.u,0.s) +Chars 10147 - 10169 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 10170 - 10174 [Qed.] 0.098 secs (0.096u,0.s) +Chars 10176 - 10280 [#[global]~Instance~trace_refin...] 0. secs (0.u,0.s) +Chars 10281 - 10287 [Proof.] 0. secs (0.u,0.s) +Chars 10290 - 10323 [(intros~b1~b2~Heuttb~t1~t2~Heu...] 0. secs (0.u,0.s) +Chars 10326 - 10436 [(split;~intros;~~~try~~~~(eapp...] 0.006 secs (0.006u,0.s) +Chars 10441 - 10468 [now~rewrite~Heuttb,~Heuttt.] 0.021 secs (0.021u,0.s) +Chars 10469 - 10473 [Qed.] 0.003 secs (0.003u,0.s) +Chars 10475 - 10584 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) +Chars 10585 - 10591 [Proof.] 0. secs (0.u,0.s) +Chars 10594 - 10601 [(intros).] 0. secs (0.u,0.s) +Chars 10602 - 10607 [step.] 0.001 secs (0.001u,0.s) +Chars 10608 - 10620 [constructor.] 0. secs (0.u,0.s) +Chars 10621 - 10626 [auto.] 0. secs (0.u,0.s) +Chars 10627 - 10631 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10633 - 10790 [Lemma~trace_refine_ret_inv_r~:...] 0. secs (0.u,0.s) +Chars 10791 - 10797 [Proof.] 0. secs (0.u,0.s) +Chars 10800 - 10807 [(intros).] 0. secs (0.u,0.s) +Chars 10808 - 10813 [step.] 0.001 secs (0.001u,0.s) +Chars 10814 - 10824 [step~in~H.] 0. secs (0.u,0.s) +Chars 10825 - 10841 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 10845 - 10874 [(dependent~induction~H;~subst).] 0.033 secs (0.033u,0.s) +Chars 10877 - 10878 [-] 0. secs (0.u,0.s) +Chars 10879 - 10892 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 10893 - 10905 [constructor.] 0. secs (0.u,0.s) +Chars 10906 - 10911 [auto.] 0. secs (0.u,0.s) +Chars 10914 - 10915 [-] 0. secs (0.u,0.s) +Chars 10916 - 10929 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 10930 - 10948 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 10949 - 10953 [Qed.] 0.028 secs (0.027u,0.s) +Chars 10955 - 11121 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) +Chars 11122 - 11128 [Proof.] 0. secs (0.u,0.s) +Chars 11131 - 11138 [(intros).] 0. secs (0.u,0.s) +Chars 11139 - 11144 [step.] 0.002 secs (0.002u,0.s) +Chars 11145 - 11155 [step~in~H.] 0. secs (0.u,0.s) +Chars 11156 - 11172 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 11175 - 11204 [(dependent~induction~H;~subst).] 0.038 secs (0.037u,0.s) +Chars 11207 - 11208 [-] 0. secs (0.u,0.s) +Chars 11209 - 11222 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 11223 - 11235 [constructor.] 0. secs (0.u,0.s) +Chars 11236 - 11241 [auto.] 0. secs (0.u,0.s) +Chars 11244 - 11245 [-] 0. secs (0.u,0.s) +Chars 11246 - 11259 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 11260 - 11278 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 11279 - 11283 [Qed.] 0.03 secs (0.03u,0.s) +Chars 11285 - 11525 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) +Chars 11526 - 11532 [Proof.] 0. secs (0.u,0.s) +Chars 11535 - 11552 [(intros~E~R~A~e~a).] 0. secs (0.u,0.s) +Chars 11553 - 11560 [(intros).] 0. secs (0.u,0.s) +Chars 11563 - 11572 [(red~in~H).] 0. secs (0.u,0.s) +Chars 11573 - 11577 [(red).] 0. secs (0.u,0.s) +Chars 11578 - 11588 [step~in~H.] 0. secs (0.u,0.s) +Chars 11589 - 11605 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 11606 - 11612 [(inv~H).] 0.013 secs (0.013u,0.s) +Chars 11613 - 11626 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 11629 - 11635 [subst.] 0. secs (0.u,0.s) +Chars 11638 - 11703 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 11704 - 11708 [Qed.] 0.008 secs (0.008u,0.s) +Chars 11710 - 11924 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) +Chars 11925 - 11931 [Proof.] 0. secs (0.u,0.s) +Chars 11934 - 11941 [(intros).] 0. secs (0.u,0.s) +Chars 11942 - 11947 [step.] 0.001 secs (0.001u,0.s) +Chars 11948 - 11978 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 11981 - 11988 [(intros).] 0. secs (0.u,0.s) +Chars 11989 - 11996 [(inv~H0).] 0.007 secs (0.007u,0.s) +Chars 11997 - 12010 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 12013 - 12019 [subst.] 0. secs (0.u,0.s) +Chars 12020 - 12025 [auto.] 0. secs (0.u,0.s) +Chars 12026 - 12030 [Qed.] 0.006 secs (0.006u,0.s) +Chars 12032 - 12167 [Lemma~event_ans_constr~:~~~for...] 0. secs (0.u,0.s) +Chars 12168 - 12174 [Proof.] 0. secs (0.u,0.s) +Chars 12177 - 12184 [(intros).] 0. secs (0.u,0.s) +Chars 12187 - 12239 [(destruct~(classic_empty~R)~as...] 0. secs (0.u,0.s) +Chars 12242 - 12243 [-] 0. secs (0.u,0.s) +Chars 12244 - 12256 [exists~unit.] 0. secs (0.u,0.s) +Chars 12257 - 12278 [exists~(evans~R~e~a).] 0. secs (0.u,0.s) +Chars 12279 - 12296 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 12299 - 12300 [-] 0. secs (0.u,0.s) +Chars 12301 - 12313 [exists~void.] 0. secs (0.u,0.s) +Chars 12314 - 12342 [exists~(evempty~R~Hempty~e).] 0. secs (0.u,0.s) +Chars 12343 - 12360 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 12361 - 12365 [Qed.] 0. secs (0.u,0.s) +Chars 12428 - 12448 [Section~Determinize.] 0. secs (0.u,0.s) +Chars 12450 - 12507 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) +Chars 12509 - 12594 [CoFixpoint~determinize_~(E~:~T...] 0. secs (0.u,0.s) +Chars 12595 - 12601 [Proof.] 0. secs (0.u,0.s) +Chars 12604 - 12616 [(destruct~ot).] 0. secs (0.u,0.s) +Chars 12619 - 12620 [-] 0. secs (0.u,0.s) +Chars 12621 - 12635 [(apply~(Ret~r)).] 0. secs (0.u,0.s) +Chars 12638 - 12639 [-] 0. secs (0.u,0.s) +Chars 12640 - 12685 [(apply~(Tau~(determinize_~E~R~...] 0. secs (0.u,0.s) +Chars 12688 - 12689 [-] 0. secs (0.u,0.s) +Chars 12690 - 12722 [(destruct~(classicT~X)~as~[|~f]).] 0. secs (0.u,0.s) +Chars 12727 - 12728 [+] 0. secs (0.u,0.s) +Chars 12729 - 12804 [(apply~(Vis~(evans~X~e~x)~(fun...] 0. secs (0.u,0.s) +Chars 12809 - 12810 [+] 0. secs (0.u,0.s) +Chars 12811 - 12921 [(apply~~~(Vis~(evempty~X~(fun~...] 0. secs (0.u,0.s) +Chars 12922 - 12930 [Defined.] 0. secs (0.u,0.s) +Chars 12932 - 13018 [Definition~determinize~{E}~{R}...] 0. secs (0.u,0.s) +Chars 13020 - 13036 [End~Determinize.] 0. secs (0.u,0.s) +Chars 13087 - 13204 [Lemma~itree_refine_nonempty~:~...] 0. secs (0.u,0.s) +Chars 13205 - 13211 [Proof.] 0. secs (0.u,0.s) +Chars 13214 - 13221 [(intros).] 0. secs (0.u,0.s) +Chars 13222 - 13264 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) +Chars 13267 - 13299 [exists~(determinize~classicT~t).] 0. secs (0.u,0.s) +Chars 13300 - 13323 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 13326 - 13345 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 13349 - 13356 [(intros).] 0. secs (0.u,0.s) +Chars 13357 - 13376 [(unfold~determinize).] 0. secs (0.u,0.s) +Chars 13377 - 13390 [(desobs~t~Hot).] 0. secs (0.u,0.s) +Chars 13393 - 13394 [-] 0. secs (0.u,0.s) +Chars 13395 - 13399 [(cbn).] 0. secs (0.u,0.s) +Chars 13400 - 13405 [eret.] 0. secs (0.u,0.s) +Chars 13408 - 13409 [-] 0. secs (0.u,0.s) +Chars 13410 - 13414 [(cbn).] 0. secs (0.u,0.s) +Chars 13415 - 13427 [constructor.] 0. secs (0.u,0.s) +Chars 13428 - 13438 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13442 - 13443 [-] 0. secs (0.u,0.s) +Chars 13444 - 13459 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 13460 - 13464 [(cbn).] 0. secs (0.u,0.s) +Chars 13465 - 13487 [(destruct~(classicT~_)).] 0.001 secs (0.001u,0.s) +Chars 13492 - 13493 [+] 0. secs (0.u,0.s) +Chars 13494 - 13524 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 13525 - 13532 [(intros).] 0. secs (0.u,0.s) +Chars 13539 - 13551 [(inversion~H).] 0.003 secs (0.003u,0.s) +Chars 13552 - 13565 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 13572 - 13578 [subst.] 0. secs (0.u,0.s) +Chars 13579 - 13589 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13594 - 13595 [+] 0. secs (0.u,0.s) +Chars 13596 - 13625 [(constructor;~auto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 13626 - 13633 [(intros).] 0. secs (0.u,0.s) +Chars 13634 - 13648 [contradiction.] 0. secs (0.u,0.s) +Chars 13649 - 13653 [Qed.] 0.013 secs (0.013u,0.s) +Chars 13655 - 14377 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) +Chars 14378 - 14384 [Proof.] 0. secs (0.u,0.s) +Chars 14387 - 14394 [(intros).] 0. secs (0.u,0.s) +Chars 14397 - 14442 [(destruct~(classic_empty~A)~as...] 0. secs (0.u,0.s) +Chars 14445 - 14446 [-] 0. secs (0.u,0.s) +Chars 14447 - 14520 [specialize~trace_refine_vis_ad...] 0. secs (0.u,0.s) +Chars 14525 - 14557 [(assert~(exists~b,~b~⊑~k~a)).] 0. secs (0.u,0.s) +Chars 14562 - 14563 [{] 0. secs (0.u,0.s) +Chars 14564 - 14592 [(apply~itree_refine_nonempty).] 0. secs (0.u,0.s) +Chars 14593 - 14594 [}] 0. secs (0.u,0.s) +Chars 14599 - 14621 [(destruct~H~as~[b~Hbk]).] 0. secs (0.u,0.s) +Chars 14622 - 14670 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) +Chars 14675 - 14697 [(rewrite~<-~Ht1~in~Hbk).] 0.004 secs (0.004u,0.s) +Chars 14702 - 14726 [(apply~H0~in~Hbk~as~Hbk0).] 0. secs (0.u,0.s) +Chars 14731 - 14750 [(rewrite~Ht1~in~Hbk).] 0.004 secs (0.004u,0.s) +Chars 14751 - 14771 [(rewrite~Ht2~in~Hbk0).] 0.003 secs (0.003u,0.s) +Chars 14776 - 14785 [sinv~Hbk.] 0.017 secs (0.017u,0.s) +Chars 14790 - 14800 [sinv~Hbk0.] 0.024 secs (0.024u,0.s) +Chars 14801 - 14814 [ddestruction.] 0.009 secs (0.009u,0.s) +Chars 14819 - 14825 [subst.] 0. secs (0.u,0.s) +Chars 14830 - 14843 [(inversion~H8).] 0.002 secs (0.002u,0.s) +Chars 14844 - 14857 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 14862 - 14868 [subst.] 0. secs (0.u,0.s) +Chars 14869 - 14881 [constructor.] 0. secs (0.u,0.s) +Chars 14886 - 14893 [(intros).] 0. secs (0.u,0.s) +Chars 14894 - 14912 [(eapply~CIH;~eauto).] 0.001 secs (0.001u,0.s) +Chars 14917 - 14924 [(intros).] 0. secs (0.u,0.s) +Chars 14925 - 14950 [setoid_rewrite~Ht1~in~H0.] 0.024 secs (0.024u,0.s) +Chars 14951 - 14976 [setoid_rewrite~Ht2~in~H0.] 0.068 secs (0.067u,0.s) +Chars 14981 - 14995 [(split;~intros).] 0. secs (0.u,0.s) +Chars 15000 - 15001 [+] 0. secs (0.u,0.s) +Chars 15002 - 15048 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) +Chars 15049 - 15063 [(apply~H0~in~H).] 0. secs (0.u,0.s) +Chars 15070 - 15102 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) +Chars 15103 - 15108 [auto.] 0. secs (0.u,0.s) +Chars 15113 - 15114 [+] 0. secs (0.u,0.s) +Chars 15115 - 15161 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) +Chars 15162 - 15176 [(apply~H0~in~H).] 0. secs (0.u,0.s) +Chars 15183 - 15215 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) +Chars 15216 - 15221 [auto.] 0. secs (0.u,0.s) +Chars 15224 - 15225 [-] 0. secs (0.u,0.s) +Chars 15226 - 15289 [(set~(ke~:=~fun~v~:~void~=>~ma...] 0. secs (0.u,0.s) +Chars 15294 - 15329 [(set~(b~:=~Vis~(evempty~A~Ha~e...] 0. secs (0.u,0.s) +Chars 15334 - 15352 [(assert~(b~⊑~t1)).] 0. secs (0.u,0.s) +Chars 15357 - 15358 [{] 0. secs (0.u,0.s) +Chars 15365 - 15374 [(unfold~b).] 0. secs (0.u,0.s) +Chars 15375 - 15387 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) +Chars 15388 - 15393 [step.] 0.001 secs (0.001u,0.s) +Chars 15394 - 15398 [(cbn).] 0. secs (0.u,0.s) +Chars 15405 - 15417 [constructor.] 0. secs (0.u,0.s) +Chars 15418 - 15419 [{] 0. secs (0.u,0.s) +Chars 15420 - 15430 [(apply~ree).] 0. secs (0.u,0.s) +Chars 15431 - 15432 [}] 0. secs (0.u,0.s) +Chars 15433 - 15434 [{] 0. secs (0.u,0.s) +Chars 15435 - 15445 [(intros~[]).] 0. secs (0.u,0.s) +Chars 15446 - 15447 [}] 0. secs (0.u,0.s) +Chars 15452 - 15453 [}] 0. secs (0.u,0.s) +Chars 15458 - 15478 [(apply~H0~in~H~as~H1).] 0. secs (0.u,0.s) +Chars 15479 - 15493 [(unfold~b~in~*).] 0. secs (0.u,0.s) +Chars 15494 - 15502 [clear~b.] 0. secs (0.u,0.s) +Chars 15507 - 15524 [(rewrite~Ht1~in~H).] 0.003 secs (0.003u,0.s) +Chars 15525 - 15543 [(rewrite~Ht2~in~H1).] 0.003 secs (0.003u,0.s) +Chars 15548 - 15555 [sinv~H.] 0.036 secs (0.023u,0.s) +Chars 15556 - 15564 [sinv~H1.] 0.033 secs (0.028u,0.s) +Chars 15565 - 15578 [ddestruction.] 0.009 secs (0.009u,0.s) +Chars 15583 - 15589 [subst.] 0. secs (0.u,0.s) +Chars 15590 - 15603 [(inversion~H6).] 0.002 secs (0.002u,0.s) +Chars 15604 - 15617 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 15622 - 15634 [constructor.] 0. secs (0.u,0.s) +Chars 15639 - 15646 [(intros).] 0. secs (0.u,0.s) +Chars 15647 - 15658 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15663 - 15670 [(intros).] 0. secs (0.u,0.s) +Chars 15671 - 15696 [setoid_rewrite~Ht1~in~H0.] 0.025 secs (0.025u,0.s) +Chars 15697 - 15722 [setoid_rewrite~Ht2~in~H0.] 0.07 secs (0.069u,0.s) +Chars 15727 - 15756 [(split;~intros;~contradiction).] 0. secs (0.u,0.s) +Chars 15757 - 15761 [Qed.] 0.055 secs (0.054u,0.s) +Chars 15763 - 15992 [Lemma~trace_refine_vis~:~~~for...] 0.001 secs (0.001u,0.s) +Chars 15993 - 15999 [Proof.] 0. secs (0.u,0.s) +Chars 16002 - 16009 [(intros).] 0. secs (0.u,0.s) +Chars 16010 - 16020 [step~in~H.] 0. secs (0.u,0.s) +Chars 16021 - 16037 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 16041 - 16063 [dependent~induction~H.] 0.051 secs (0.05u,0.s) +Chars 16066 - 16067 [-] 0. secs (0.u,0.s) +Chars 16068 - 16078 [exists~A0.] 0. secs (0.u,0.s) +Chars 16079 - 16089 [exists~e1.] 0. secs (0.u,0.s) +Chars 16090 - 16100 [exists~k1.] 0. secs (0.u,0.s) +Chars 16105 - 16136 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) +Chars 16137 - 16156 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) +Chars 16161 - 16172 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) +Chars 16173 - 16185 [reflexivity.] 0. secs (0.u,0.s) +Chars 16188 - 16189 [-] 0. secs (0.u,0.s) +Chars 16190 - 16296 [(enough~~~(exists~(X~:~Type)~(...] 0. secs (0.u,0.s) +Chars 16301 - 16302 [{] 0. secs (0.u,0.s) +Chars 16309 - 16345 [(destruct~H0~as~[X~[e0~[k0~Ht1...] 0. secs (0.u,0.s) +Chars 16352 - 16361 [exists~X.] 0. secs (0.u,0.s) +Chars 16362 - 16372 [exists~e0.] 0. secs (0.u,0.s) +Chars 16373 - 16383 [exists~k0.] 0. secs (0.u,0.s) +Chars 16390 - 16421 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) +Chars 16422 - 16441 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) +Chars 16442 - 16453 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) +Chars 16460 - 16477 [(rewrite~tau_eutt).] 0.002 secs (0.002u,0.s) +Chars 16478 - 16483 [auto.] 0. secs (0.u,0.s) +Chars 16488 - 16489 [}] 0. secs (0.u,0.s) +Chars 16494 - 16516 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 16517 - 16521 [Qed.] 0.042 secs (0.041u,0.s) +Chars 16523 - 16769 [Lemma~trace_refine_vis_l~:~~~f...] 0.001 secs (0.001u,0.s) +Chars 16770 - 16776 [Proof.] 0. secs (0.u,0.s) +Chars 16779 - 16786 [(intros).] 0. secs (0.u,0.s) +Chars 16787 - 16797 [step~in~H.] 0. secs (0.u,0.s) +Chars 16798 - 16814 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 16818 - 16840 [dependent~induction~H.] 0.051 secs (0.05u,0.s) +Chars 16843 - 16844 [-] 0. secs (0.u,0.s) +Chars 16845 - 16854 [exists~B.] 0. secs (0.u,0.s) +Chars 16855 - 16865 [exists~e2.] 0. secs (0.u,0.s) +Chars 16867 - 16877 [exists~k2.] 0. secs (0.u,0.s) +Chars 16878 - 16909 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 16914 - 16933 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 16934 - 16945 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 16946 - 16958 [reflexivity.] 0. secs (0.u,0.s) +Chars 16961 - 16962 [-] 0. secs (0.u,0.s) +Chars 16963 - 16981 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) +Chars 16986 - 16987 [{] 0. secs (0.u,0.s) +Chars 16994 - 17019 [specialize~(itree_eta~t).] 0. secs (0.u,0.s) +Chars 17020 - 17033 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 17034 - 17041 [(intros).] 0. secs (0.u,0.s) +Chars 17048 - 17059 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 17060 - 17077 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 17078 - 17090 [reflexivity.] 0. secs (0.u,0.s) +Chars 17095 - 17096 [}] 0. secs (0.u,0.s) +Chars 17101 - 17122 [setoid_rewrite~~<-~H0.] 0.002 secs (0.002u,0.s) +Chars 17123 - 17145 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 17146 - 17150 [Qed.] 0.04 secs (0.04u,0.s) +Chars 17152 - 17357 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) +Chars 17358 - 17364 [Proof.] 0. secs (0.u,0.s) +Chars 17367 - 17374 [(intros).] 0. secs (0.u,0.s) +Chars 17375 - 17387 [(induction~H).] 0. secs (0.u,0.s) +Chars 17390 - 17391 [-] 0. secs (0.u,0.s) +Chars 17392 - 17407 [exists~(Ret~r).] 0. secs (0.u,0.s) +Chars 17408 - 17418 [(rewrite~H).] 0.003 secs (0.003u,0.s) +Chars 17419 - 17425 [split.] 0. secs (0.u,0.s) +Chars 17430 - 17431 [+] 0. secs (0.u,0.s) +Chars 17432 - 17444 [constructor.] 0. secs (0.u,0.s) +Chars 17445 - 17457 [reflexivity.] 0. secs (0.u,0.s) +Chars 17462 - 17463 [+] 0. secs (0.u,0.s) +Chars 17464 - 17487 [(apply~trace_refine_ret).] 0. secs (0.u,0.s) +Chars 17490 - 17491 [-] 0. secs (0.u,0.s) +Chars 17492 - 17539 [(destruct~IHmay_converge~as~[b...] 0. secs (0.u,0.s) +Chars 17544 - 17587 [exists~(Vis~(evans~B~e~b)~(fun...] 0. secs (0.u,0.s) +Chars 17588 - 17594 [split.] 0. secs (0.u,0.s) +Chars 17599 - 17600 [+] 0. secs (0.u,0.s) +Chars 17601 - 17634 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 17635 - 17641 [eauto.] 0. secs (0.u,0.s) +Chars 17642 - 17651 [Unshelve.] 0. secs (0.u,0.s) +Chars 17652 - 17661 [exact~tt.] 0. secs (0.u,0.s) +Chars 17666 - 17667 [+] 0. secs (0.u,0.s) +Chars 17668 - 17678 [(rewrite~H).] 0.004 secs (0.004u,0.s) +Chars 17679 - 17706 [(apply~trace_refine_vis_add).] 0. secs (0.u,0.s) +Chars 17707 - 17712 [auto.] 0. secs (0.u,0.s) +Chars 17713 - 17717 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17719 - 17925 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) +Chars 17926 - 17932 [Proof.] 0. secs (0.u,0.s) +Chars 17935 - 17942 [(intros).] 0. secs (0.u,0.s) +Chars 17943 - 17966 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 17967 - 17987 [(induction~H;~intros).] 0. secs (0.u,0.s) +Chars 17990 - 17991 [-] 0. secs (0.u,0.s) +Chars 17992 - 18008 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) +Chars 18009 - 18044 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 18049 - 18060 [(rewrite~H0).] 0.008 secs (0.007u,0.s) +Chars 18061 - 18073 [constructor.] 0. secs (0.u,0.s) +Chars 18074 - 18086 [reflexivity.] 0. secs (0.u,0.s) +Chars 18089 - 18090 [-] 0. secs (0.u,0.s) +Chars 18091 - 18107 [(rewrite~H~in~H1).] 0.004 secs (0.004u,0.s) +Chars 18108 - 18146 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 18151 - 18187 [(destruct~Ht0~as~[X~[e0~[k0~Ht...] 0. secs (0.u,0.s) +Chars 18192 - 18210 [(rewrite~Ht0~in~H1).] 0.003 secs (0.003u,0.s) +Chars 18211 - 18219 [sinv~H1.] 0.012 secs (0.012u,0.s) +Chars 18220 - 18226 [subst.] 0. secs (0.u,0.s) +Chars 18231 - 18244 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 18245 - 18251 [subst.] 0. secs (0.u,0.s) +Chars 18252 - 18264 [(rewrite~Ht0).] 0.009 secs (0.009u,0.s) +Chars 18269 - 18329 [(inversion~H4;~subst;~ddestruc...] 0.008 secs (0.008u,0.s) +Chars 18334 - 18367 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 18368 - 18377 [Unshelve.] 0. secs (0.u,0.s) +Chars 18378 - 18390 [2:~exact~a.] 0. secs (0.u,0.s) +Chars 18395 - 18416 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 18422 - 18443 [specialize~(H9~tt~a).] 0. secs (0.u,0.s) +Chars 18444 - 18493 [(assert~(RAnsRef~E~unit~X~(eva...] 0. secs (0.u,0.s) +Chars 18498 - 18510 [constructor.] 0. secs (0.u,0.s) +Chars 18511 - 18526 [(apply~H9~in~H1).] 0. secs (0.u,0.s) +Chars 18527 - 18538 [(destruct~b).] 0. secs (0.u,0.s) +Chars 18539 - 18544 [auto.] 0. secs (0.u,0.s) +Chars 18545 - 18549 [Qed.] 0.015 secs (0.015u,0.s) +Chars 18551 - 18740 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) +Chars 18741 - 18747 [Proof.] 0. secs (0.u,0.s) +Chars 18750 - 18761 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 18762 - 18788 [(unfold~all_infinite~at~-~1).] 0. secs (0.u,0.s) +Chars 18792 - 18810 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 18814 - 18821 [(intros).] 0. secs (0.u,0.s) +Chars 18822 - 18832 [step~in~H.] 0. secs (0.u,0.s) +Chars 18833 - 18844 [step~in~H0.] 0. secs (0.u,0.s) +Chars 18845 - 18877 [(repeat~red~in~H,~H0;~repeat~r...] 0. secs (0.u,0.s) +Chars 18883 - 18906 [dependent~induction~H0.] 0.041 secs (0.041u,0.s) +Chars 18909 - 18910 [-] 0. secs (0.u,0.s) +Chars 18911 - 18929 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 18930 - 18936 [(inv~H).] 0. secs (0.u,0.s) +Chars 18940 - 18941 [-] 0. secs (0.u,0.s) +Chars 18942 - 18956 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 18957 - 18969 [constructor.] 0. secs (0.u,0.s) +Chars 18970 - 18988 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 18993 - 19011 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 19012 - 19018 [(inv~H).] 0. secs (0.u,0.s) +Chars 19021 - 19022 [-] 0. secs (0.u,0.s) +Chars 19023 - 19037 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 19038 - 19056 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 19057 - 19069 [constructor.] 0. secs (0.u,0.s) +Chars 19070 - 19076 [(inv~H).] 0.012 secs (0.011u,0.s) +Chars 19081 - 19094 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 19095 - 19101 [subst.] 0. secs (0.u,0.s) +Chars 19102 - 19109 [(intros).] 0. secs (0.u,0.s) +Chars 19115 - 19162 [(inv~H1;~subst;~ddestruction;~...] 0.012 secs (0.012u,0.s) +Chars 19163 - 19175 [(destruct~b0).] 0. secs (0.u,0.s) +Chars 19180 - 19205 [(eapply~CIH;~try~apply~H3).] 0. secs (0.u,0.s) +Chars 19210 - 19231 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) +Chars 19232 - 19279 [(assert~(RAnsRef~_~_~_~(evans~...] 0. secs (0.u,0.s) +Chars 19284 - 19296 [constructor.] 0. secs (0.u,0.s) +Chars 19297 - 19311 [(apply~H0~in~H).] 0. secs (0.u,0.s) +Chars 19312 - 19318 [eauto.] 0. secs (0.u,0.s) +Chars 19321 - 19322 [-] 0. secs (0.u,0.s) +Chars 19323 - 19336 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 19337 - 19349 [constructor.] 0. secs (0.u,0.s) +Chars 19350 - 19368 [(apply~(b_chain~c)).] 0. secs (0.u,0.s) +Chars 19369 - 19391 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 19394 - 19395 [-] 0. secs (0.u,0.s) +Chars 19396 - 19417 [(eapply~IHruttF;~auto).] 0.006 secs (0.006u,0.s) +Chars 19418 - 19436 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 19437 - 19443 [(inv~H).] 0.007 secs (0.007u,0.s) +Chars 19448 - 19463 [now~step~in~H2.] 0. secs (0.u,0.s) +Chars 19465 - 19469 [Qed.] 0.054 secs (0.053u,0.s) +Chars 19471 - 19756 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) +Chars 19757 - 19763 [Proof.] 0. secs (0.u,0.s) +Chars 19766 - 19773 [(intros).] 0. secs (0.u,0.s) +Chars 19774 - 19797 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 19798 - 19828 [(dependent~induction~H;~intros).] 0. secs (0.u,0.s) +Chars 19831 - 19832 [-] 0. secs (0.u,0.s) +Chars 19833 - 19843 [(rewrite~H).] 0.005 secs (0.005u,0.s) +Chars 19844 - 19860 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) +Chars 19861 - 19896 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 19901 - 19912 [(rewrite~H0).] 0.01 secs (0.01u,0.s) +Chars 19913 - 19939 [(repeat~rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) +Chars 19940 - 19945 [auto.] 0. secs (0.u,0.s) +Chars 19948 - 19949 [-] 0. secs (0.u,0.s) +Chars 19950 - 19981 [specialize~(IHmay_converge~H1).] 0. secs (0.u,0.s) +Chars 19986 - 20002 [(rewrite~H~in~H2).] 0.003 secs (0.003u,0.s) +Chars 20003 - 20040 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 20045 - 20079 [(destruct~Ht~as~[X~[e0~[k0~Ht]...] 0. secs (0.u,0.s) +Chars 20084 - 20101 [(rewrite~Ht~in~H2).] 0.003 secs (0.003u,0.s) +Chars 20102 - 20113 [step~in~H2.] 0. secs (0.u,0.s) +Chars 20114 - 20131 [(repeat~red~in~H2).] 0. secs (0.u,0.s) +Chars 20132 - 20139 [(inv~H2).] 0.014 secs (0.014u,0.s) +Chars 20145 - 20158 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 20159 - 20165 [subst.] 0. secs (0.u,0.s) +Chars 20170 - 20214 [(inversion~H5;~subst;~ddestruc...] 0.014 secs (0.014u,0.s) +Chars 20220 - 20230 [(rewrite~H).] 0.009 secs (0.009u,0.s) +Chars 20231 - 20242 [(rewrite~Ht).] 0.006 secs (0.006u,0.s) +Chars 20247 - 20252 [step.] 0.001 secs (0.001u,0.s) +Chars 20253 - 20264 [(repeat~red).] 0. secs (0.u,0.s) +Chars 20265 - 20269 [(cbn).] 0. secs (0.u,0.s) +Chars 20270 - 20288 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 20293 - 20300 [(intros).] 0. secs (0.u,0.s) +Chars 20301 - 20317 [(apply~H10~in~H2).] 0. secs (0.u,0.s) +Chars 20322 - 20334 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 20335 - 20346 [(destruct~b).] 0. secs (0.u,0.s) +Chars 20347 - 20368 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 20369 - 20374 [auto.] 0. secs (0.u,0.s) +Chars 20375 - 20379 [Qed.] 0.022 secs (0.022u,0.s) +Chars 20381 - 20639 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) +Chars 20640 - 20646 [Proof.] 0. secs (0.u,0.s) +Chars 20649 - 20670 [(intros~E~R~S~b~t~f~g).] 0. secs (0.u,0.s) +Chars 20671 - 20694 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 20695 - 20718 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 20721 - 20725 [(red).] 0. secs (0.u,0.s) +Chars 20726 - 20745 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 20746 - 20753 [(intros).] 0. secs (0.u,0.s) +Chars 20756 - 20767 [step~in~H0.] 0. secs (0.u,0.s) +Chars 20771 - 20781 [step~in~H.] 0. secs (0.u,0.s) +Chars 20782 - 20802 [(repeat~red~in~H0,~H).] 0. secs (0.u,0.s) +Chars 20806 - 20829 [dependent~induction~H0.] 0.066 secs (0.066u,0.s) +Chars 20832 - 20833 [-] 0. secs (0.u,0.s) +Chars 20834 - 20853 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) +Chars 20854 - 20860 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 20863 - 20864 [-] 0. secs (0.u,0.s) +Chars 20865 - 20880 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 20881 - 20885 [(cbn).] 0. secs (0.u,0.s) +Chars 20886 - 20900 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 20901 - 20914 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 20919 - 20923 [(cbn).] 0. secs (0.u,0.s) +Chars 20924 - 20936 [constructor.] 0. secs (0.u,0.s) +Chars 20937 - 20953 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 20958 - 20977 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) +Chars 20978 - 20984 [(inv~H).] 0.001 secs (0.u,0.s) +Chars 20988 - 20989 [-] 0. secs (0.u,0.s) +Chars 20990 - 21005 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 21006 - 21010 [(cbn).] 0. secs (0.u,0.s) +Chars 21011 - 21025 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 21026 - 21039 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 21040 - 21044 [(cbn).] 0. secs (0.u,0.s) +Chars 21045 - 21063 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 21068 - 21075 [(intros).] 0. secs (0.u,0.s) +Chars 21080 - 21099 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) +Chars 21100 - 21106 [(inv~H).] 0.026 secs (0.026u,0.s) +Chars 21107 - 21120 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 21121 - 21127 [subst.] 0. secs (0.u,0.s) +Chars 21133 - 21148 [(apply~H0~in~H2).] 0. secs (0.u,0.s) +Chars 21149 - 21167 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 21168 - 21177 [(apply~H4).] 0. secs (0.u,0.s) +Chars 21180 - 21181 [-] 0. secs (0.u,0.s) +Chars 21182 - 21202 [(unfold~observe~at~1).] 0. secs (0.u,0.s) +Chars 21203 - 21207 [(cbn).] 0. secs (0.u,0.s) +Chars 21208 - 21221 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 21222 - 21226 [(cbn).] 0. secs (0.u,0.s) +Chars 21227 - 21239 [constructor.] 0. secs (0.u,0.s) +Chars 21244 - 21266 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 21267 - 21285 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 21286 - 21292 [(inv~H).] 0.011 secs (0.011u,0.s) +Chars 21293 - 21304 [now~unstep.] 0. secs (0.u,0.s) +Chars 21307 - 21308 [-] 0. secs (0.u,0.s) +Chars 21309 - 21329 [(unfold~observe~at~2).] 0. secs (0.u,0.s) +Chars 21330 - 21334 [(cbn).] 0. secs (0.u,0.s) +Chars 21335 - 21348 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 21349 - 21353 [(cbn).] 0. secs (0.u,0.s) +Chars 21354 - 21366 [constructor.] 0. secs (0.u,0.s) +Chars 21371 - 21393 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 21394 - 21398 [Qed.] 0.09 secs (0.088u,0.s) +Chars 21400 - 21539 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) +Chars 21540 - 21546 [Proof.] 0. secs (0.u,0.s) +Chars 21549 - 21560 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 21561 - 21580 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 21581 - 21588 [(intros).] 0. secs (0.u,0.s) +Chars 21591 - 21620 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 21621 - 21650 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 21653 - 21684 [(destruct~(ot1);~destruct~(ot2)).] 0.003 secs (0.003u,0.s) +Chars 21687 - 21815 [all:~~(specialize~(itree_eta~t...] 0.001 secs (0.001u,0.s) +Chars 21832 - 21833 [-] 0. secs (0.u,0.s) +Chars 21834 - 21865 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) +Chars 21870 - 21889 [(rewrite~Ht1~in~Hr0).] 0.031 secs (0.031u,0.s) +Chars 21890 - 21909 [(rewrite~Ht2~in~Hr0).] 0.071 secs (0.07u,0.s) +Chars 21915 - 21938 [(assert~(Ret~r0~⊑~t1)).] 0. secs (0.u,0.s) +Chars 21943 - 21944 [{] 0. secs (0.u,0.s) +Chars 21945 - 21957 [(rewrite~Ht1).] 0.004 secs (0.004u,0.s) +Chars 21958 - 21968 [(apply~Hr0).] 0. secs (0.u,0.s) +Chars 21969 - 21974 [step.] 0.001 secs (0.001u,0.s) +Chars 21975 - 21980 [eret.] 0. secs (0.u,0.s) +Chars 21981 - 21982 [}] 0. secs (0.u,0.s) +Chars 21987 - 22005 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) +Chars 22006 - 22014 [sinv~H0.] 0.007 secs (0.007u,0.s) +Chars 22033 - 22034 [-] 0. secs (0.u,0.s) +Chars 22035 - 22059 [setoid_rewrite~Ht2~in~H.] 0.068 secs (0.067u,0.s) +Chars 22064 - 22088 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) +Chars 22093 - 22115 [(rewrite~tau_eutt~in~H).] 0.001 secs (0.001u,0.s) +Chars 22116 - 22121 [taur.] 0. secs (0.u,0.s) +Chars 22127 - 22149 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) +Chars 22154 - 22155 [{] 0. secs (0.u,0.s) +Chars 22156 - 22168 [(rewrite~Ht1).] 0.004 secs (0.004u,0.s) +Chars 22169 - 22174 [step.] 0.001 secs (0.001u,0.s) +Chars 22175 - 22180 [eret.] 0. secs (0.u,0.s) +Chars 22181 - 22182 [}] 0. secs (0.u,0.s) +Chars 22187 - 22201 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 22202 - 22213 [step~in~H0.] 0. secs (0.u,0.s) +Chars 22214 - 22242 [(repeat~red~in~H0;~cbn~in~H0).] 0. secs (0.u,0.s) +Chars 22247 - 22277 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 22278 - 22301 [dependent~induction~H0.] 0.05 secs (0.048u,0.s) +Chars 22306 - 22307 [+] 0. secs (0.u,0.s) +Chars 22308 - 22321 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22322 - 22327 [eret.] 0. secs (0.u,0.s) +Chars 22333 - 22334 [+] 0. secs (0.u,0.s) +Chars 22335 - 22348 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22349 - 22360 [(taur;~auto).] 0.001 secs (0.001u,0.s) +Chars 22380 - 22381 [-] 0. secs (0.u,0.s) +Chars 22382 - 22390 [exfalso.] 0. secs (0.u,0.s) +Chars 22395 - 22417 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) +Chars 22422 - 22423 [{] 0. secs (0.u,0.s) +Chars 22424 - 22436 [(rewrite~Ht1).] 0.004 secs (0.004u,0.s) +Chars 22437 - 22442 [step.] 0.001 secs (0.001u,0.s) +Chars 22443 - 22448 [eret.] 0. secs (0.u,0.s) +Chars 22449 - 22450 [}] 0. secs (0.u,0.s) +Chars 22455 - 22469 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 22470 - 22488 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) +Chars 22489 - 22497 [sinv~H0.] 0.003 secs (0.002u,0.s) +Chars 22515 - 22516 [-] 0. secs (0.u,0.s) +Chars 22517 - 22541 [setoid_rewrite~Ht1~in~H.] 0.026 secs (0.025u,0.s) +Chars 22542 - 22566 [setoid_rewrite~Ht2~in~H.] 0.066 secs (0.066u,0.s) +Chars 22571 - 22593 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) +Chars 22598 - 22599 [{] 0. secs (0.u,0.s) +Chars 22600 - 22612 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) +Chars 22613 - 22618 [step.] 0.001 secs (0.001u,0.s) +Chars 22619 - 22624 [eret.] 0. secs (0.u,0.s) +Chars 22625 - 22626 [}] 0. secs (0.u,0.s) +Chars 22631 - 22649 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) +Chars 22650 - 22670 [(apply~H~in~H0~as~H1).] 0. secs (0.u,0.s) +Chars 22671 - 22682 [step~in~H1.] 0. secs (0.u,0.s) +Chars 22688 - 22721 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) +Chars 22722 - 22739 [(repeat~red~in~H1).] 0. secs (0.u,0.s) +Chars 22740 - 22749 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 22754 - 22759 [taul.] 0. secs (0.u,0.s) +Chars 22760 - 22767 [(inv~H1).] 0.014 secs (0.014u,0.s) +Chars 22768 - 22806 [(dependent~induction~H2;~intro...] 0.049 secs (0.049u,0.s) +Chars 22811 - 22812 [+] 0. secs (0.u,0.s) +Chars 22813 - 22826 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22827 - 22832 [eret.] 0. secs (0.u,0.s) +Chars 22838 - 22839 [+] 0. secs (0.u,0.s) +Chars 22840 - 22853 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22854 - 22865 [(taul;~auto).] 0.001 secs (0.001u,0.s) +Chars 22883 - 22884 [-] 0. secs (0.u,0.s) +Chars 22885 - 22897 [constructor.] 0. secs (0.u,0.s) +Chars 22898 - 22909 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 22915 - 22922 [(intros).] 0. secs (0.u,0.s) +Chars 22927 - 22945 [(assert~(t1~≈~t)).] 0. secs (0.u,0.s) +Chars 22946 - 22947 [{] 0. secs (0.u,0.s) +Chars 22948 - 22960 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 22961 - 22978 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 22979 - 22991 [reflexivity.] 0. secs (0.u,0.s) +Chars 22992 - 22993 [}] 0. secs (0.u,0.s) +Chars 22998 - 23017 [(assert~(t2~≈~t0)).] 0. secs (0.u,0.s) +Chars 23018 - 23019 [{] 0. secs (0.u,0.s) +Chars 23020 - 23032 [(rewrite~Ht2).] 0. secs (0.u,0.s) +Chars 23033 - 23050 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 23051 - 23063 [reflexivity.] 0. secs (0.u,0.s) +Chars 23064 - 23065 [}] 0. secs (0.u,0.s) +Chars 23070 - 23095 [now~rewrite~<-~H0,~<-~H1.] 0.002 secs (0.002u,0.s) +Chars 23113 - 23114 [-] 0. secs (0.u,0.s) +Chars 23115 - 23165 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) +Chars 23170 - 23194 [(apply~H~in~Hbt1~as~Hbt2).] 0. secs (0.u,0.s) +Chars 23195 - 23215 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) +Chars 23220 - 23245 [(rewrite~tau_eutt~in~Hbt1).] 0.003 secs (0.003u,0.s) +Chars 23250 - 23270 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 23275 - 23312 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) +Chars 23317 - 23351 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) +Chars 23356 - 23375 [(rewrite~Hb~in~Hbt2).] 0.004 secs (0.004u,0.s) +Chars 23380 - 23399 [(rewrite~Hb~in~Hbt1).] 0.01 secs (0.01u,0.s) +Chars 23400 - 23411 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 23416 - 23434 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 23439 - 23463 [setoid_rewrite~Ht1~in~H.] 0.022 secs (0.022u,0.s) +Chars 23464 - 23493 [setoid_rewrite~tau_eutt~in~H.] 0.004 secs (0.004u,0.s) +Chars 23498 - 23518 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 23519 - 23532 [clear~Ht1~t1.] 0. secs (0.u,0.s) +Chars 23537 - 23550 [step~in~Hbt1.] 0. secs (0.u,0.s) +Chars 23551 - 23570 [(repeat~red~in~Hbt1).] 0. secs (0.u,0.s) +Chars 23571 - 23580 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 23585 - 23610 [dependent~induction~Hbt1.] 0.067 secs (0.067u,0.s) +Chars 23615 - 23616 [+] 0. secs (0.u,0.s) +Chars 23617 - 23630 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 23637 - 23668 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 23669 - 23688 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 23695 - 23739 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) +Chars 23744 - 23745 [+] 0. secs (0.u,0.s) +Chars 23746 - 23759 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 23760 - 23778 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 23779 - 23800 [(eapply~IHHbt1;~eauto).] 0.011 secs (0.01u,0.s) +Chars 23807 - 23825 [(assert~(t0~≈~t)).] 0. secs (0.u,0.s) +Chars 23832 - 23833 [{] 0. secs (0.u,0.s) +Chars 23842 - 23873 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 23874 - 23893 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 23894 - 23905 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 23914 - 23931 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 23932 - 23944 [reflexivity.] 0. secs (0.u,0.s) +Chars 23951 - 23952 [}] 0. secs (0.u,0.s) +Chars 23959 - 23977 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) +Chars 23978 - 23983 [auto.] 0. secs (0.u,0.s) +Chars 24000 - 24001 [-] 0. secs (0.u,0.s) +Chars 24002 - 24010 [exfalso.] 0. secs (0.u,0.s) +Chars 24015 - 24037 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) +Chars 24042 - 24043 [{] 0. secs (0.u,0.s) +Chars 24044 - 24056 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) +Chars 24057 - 24062 [step.] 0.001 secs (0.001u,0.s) +Chars 24063 - 24068 [eret.] 0. secs (0.u,0.s) +Chars 24069 - 24070 [}] 0. secs (0.u,0.s) +Chars 24075 - 24089 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 24090 - 24108 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) +Chars 24109 - 24117 [sinv~H0.] 0.002 secs (0.002u,0.s) +Chars 24134 - 24135 [-] 0. secs (0.u,0.s) +Chars 24136 - 24186 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) +Chars 24191 - 24215 [(apply~H~in~Hbt2~as~Hbt1).] 0. secs (0.u,0.s) +Chars 24216 - 24236 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) +Chars 24241 - 24261 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 24266 - 24291 [(rewrite~tau_eutt~in~Hbt2).] 0.005 secs (0.005u,0.s) +Chars 24296 - 24333 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) +Chars 24338 - 24372 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) +Chars 24377 - 24396 [(rewrite~Hb~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 24401 - 24420 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) +Chars 24421 - 24432 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 24437 - 24455 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 24460 - 24484 [setoid_rewrite~Ht2~in~H.] 0.065 secs (0.064u,0.s) +Chars 24485 - 24514 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) +Chars 24519 - 24539 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 24540 - 24553 [clear~Ht2~t2.] 0. secs (0.u,0.s) +Chars 24558 - 24571 [step~in~Hbt2.] 0. secs (0.u,0.s) +Chars 24572 - 24591 [(repeat~red~in~Hbt2).] 0. secs (0.u,0.s) +Chars 24592 - 24601 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 24606 - 24631 [dependent~induction~Hbt2.] 0.068 secs (0.067u,0.s) +Chars 24636 - 24637 [+] 0. secs (0.u,0.s) +Chars 24638 - 24651 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 24658 - 24689 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 24690 - 24709 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 24716 - 24760 [(eapply~refine_set_eq_to_eutt_...] 0.001 secs (0.001u,0.s) +Chars 24765 - 24766 [+] 0. secs (0.u,0.s) +Chars 24767 - 24780 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 24781 - 24799 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 24800 - 24821 [(eapply~IHHbt2;~eauto).] 0.006 secs (0.006u,0.s) +Chars 24828 - 24846 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) +Chars 24853 - 24854 [{] 0. secs (0.u,0.s) +Chars 24863 - 24894 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 24895 - 24914 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) +Chars 24915 - 24926 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 24935 - 24952 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 24953 - 24965 [reflexivity.] 0. secs (0.u,0.s) +Chars 24972 - 24973 [}] 0. secs (0.u,0.s) +Chars 24980 - 24998 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) +Chars 24999 - 25004 [auto.] 0. secs (0.u,0.s) +Chars 25023 - 25024 [-] 0. secs (0.u,0.s) +Chars 25025 - 25069 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) +Chars 25070 - 25074 [Qed.] 0.266 secs (0.263u,0.002s) +Chars 25076 - 25183 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) +Chars 25184 - 25190 [Proof.] 0. secs (0.u,0.s) +Chars 25193 - 25200 [(intros).] 0. secs (0.u,0.s) +Chars 25201 - 25254 [(split;~intros;~try~apply~refi...] 0. secs (0.u,0.s) +Chars 25257 - 25267 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 25268 - 25280 [(split;~auto).] 0. secs (0.u,0.s) +Chars 25281 - 25285 [Qed.] 0. secs (0.u,0.s) +Chars 25287 - 25614 [Lemma~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) +Chars 25615 - 25621 [Proof.] 0. secs (0.u,0.s) +Chars 25624 - 25637 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 25638 - 25642 [(red).] 0. secs (0.u,0.s) +Chars 25643 - 25661 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 25662 - 25700 [(intros~b~m~g~f~a~Hconv~Hrefb~...] 0. secs (0.u,0.s) +Chars 25703 - 25727 [generalize~dependent~m.] 0. secs (0.u,0.s) +Chars 25730 - 25782 [(dependent~induction~Hconv;~in...] 0.001 secs (0.001u,0.s) +Chars 25785 - 25786 [-] 0. secs (0.u,0.s) +Chars 25787 - 25809 [(rewrite~H~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 25810 - 25841 [(rewrite~bind_ret_l~in~Hrefbind).] 0.008 secs (0.008u,0.s) +Chars 25842 - 25861 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) +Chars 25866 - 25904 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 25905 - 25931 [(rewrite~Hrefb~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 25936 - 25967 [(rewrite~bind_ret_l~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 25968 - 25977 [now~step.] 0.002 secs (0.002u,0.s) +Chars 25981 - 25982 [-] 0. secs (0.u,0.s) +Chars 26106 - 26136 [(destruct~e;~try~contradiction).] 0.001 secs (0.001u,0.s) +Chars 26137 - 26156 [(rewrite~H~in~Hrefb).] 0.004 secs (0.004u,0.s) +Chars 26161 - 26183 [(rewrite~H~in~Hrefbind).] 0.005 secs (0.005u,0.s) +Chars 26184 - 26213 [(rewrite~bind_vis~in~Hrefbind).] 0.005 secs (0.004u,0.s) +Chars 26218 - 26260 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 26261 - 26300 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) +Chars 26305 - 26330 [(rewrite~Hvis~in~Hrefbind).] 0.005 secs (0.005u,0.s) +Chars 26331 - 26360 [(rewrite~bind_vis~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 26365 - 26382 [step~in~Hrefbind.] 0. secs (0.u,0.s) +Chars 26383 - 26423 [(repeat~red~in~Hrefbind;~cbn~i...] 0. secs (0.u,0.s) +Chars 26424 - 26437 [(inv~Hrefbind).] 0.025 secs (0.025u,0.s) +Chars 26442 - 26455 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 26456 - 26463 [(inv~H2).] 0.014 secs (0.014u,0.s) +Chars 26464 - 26484 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 26489 - 26511 [(rewrite~Hvis~in~Hrefb).] 0.004 secs (0.004u,0.s) +Chars 26512 - 26526 [step~in~Hrefb.] 0. secs (0.u,0.s) +Chars 26527 - 26561 [(repeat~red~in~Hrefb;~cbn~in~H...] 0. secs (0.u,0.s) +Chars 26562 - 26572 [(inv~Hrefb).] 0.026 secs (0.026u,0.s) +Chars 26577 - 26590 [ddestruction.] 0.006 secs (0.006u,0.s) +Chars 26595 - 26680 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 26685 - 26716 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) +Chars 26717 - 26731 [(apply~IHHconv).] 0. secs (0.u,0.s) +Chars 26736 - 26737 [+] 0. secs (0.u,0.s) +Chars 26738 - 26753 [(apply~H8~in~H0).] 0. secs (0.u,0.s) +Chars 26754 - 26765 [(destruct~b).] 0. secs (0.u,0.s) +Chars 26766 - 26771 [auto.] 0. secs (0.u,0.s) +Chars 26776 - 26777 [+] 0. secs (0.u,0.s) +Chars 26778 - 26793 [(apply~H7~in~H0).] 0. secs (0.u,0.s) +Chars 26794 - 26805 [(destruct~b).] 0. secs (0.u,0.s) +Chars 26806 - 26811 [auto.] 0. secs (0.u,0.s) +Chars 26812 - 26816 [Qed.] 0.049 secs (0.048u,0.s) +Chars 26818 - 27046 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) +Chars 27047 - 27053 [Proof.] 0. secs (0.u,0.s) +Chars 27056 - 27063 [(intros).] 0. secs (0.u,0.s) +Chars 27064 - 27090 [generalize~dependent~log'.] 0. secs (0.u,0.s) +Chars 27093 - 27120 [(induction~log;~cbn;~intros).] 0. secs (0.u,0.s) +Chars 27123 - 27124 [-] 0. secs (0.u,0.s) +Chars 27125 - 27136 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 27137 - 27168 [setoid_rewrite~bind_ret_l~in~H.] 0.022 secs (0.022u,0.s) +Chars 27169 - 27179 [(rewrite~H).] 0.005 secs (0.005u,0.s) +Chars 27184 - 27210 [(apply~may_converge_append).] 0. secs (0.u,0.s) +Chars 27211 - 27239 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 27242 - 27243 [-] 0. secs (0.u,0.s) +Chars 27244 - 27338 [(assert~~~(Vis~a0~(fun~_~=>~ev...] 0. secs (0.u,0.s) +Chars 27343 - 27344 [{] 0. secs (0.u,0.s) +Chars 27345 - 27349 [(cbn).] 0. secs (0.u,0.s) +Chars 27350 - 27362 [reflexivity.] 0. secs (0.u,0.s) +Chars 27363 - 27364 [}] 0. secs (0.u,0.s) +Chars 27369 - 27385 [(rewrite~H0~in~H).] 0.021 secs (0.021u,0.s) +Chars 27390 - 27417 [(destruct~log'~as~[|~h~t]).] 0. secs (0.u,0.s) +Chars 27422 - 27423 [+] 0. secs (0.u,0.s) +Chars 27424 - 27455 [setoid_rewrite~bind_ret_l~in~H.] 0.028 secs (0.028u,0.s) +Chars 27456 - 27467 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 27468 - 27475 [sinv~H.] 0.004 secs (0.004u,0.s) +Chars 27481 - 27482 [+] 0. secs (0.u,0.s) +Chars 27483 - 27494 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 27495 - 27514 [(unfold~append~in~H).] 0. secs (0.u,0.s) +Chars 27515 - 27544 [(repeat~rewrite~bind_vis~in~H).] 0.052 secs (0.051u,0.s) +Chars 27545 - 27552 [sinv~H.] 0.009 secs (0.009u,0.s) +Chars 27559 - 27579 [(ddestruction;~subst).] 0.004 secs (0.003u,0.s) +Chars 27586 - 27655 [(assert~(ev_list_to_stream~log...] 0. secs (0.u,0.s) +Chars 27662 - 27663 [{] 0. secs (0.u,0.s) +Chars 27664 - 27674 [(apply~REL).] 0. secs (0.u,0.s) +Chars 27675 - 27684 [(apply~tt).] 0. secs (0.u,0.s) +Chars 27685 - 27686 [}] 0. secs (0.u,0.s) +Chars 27693 - 27713 [(eapply~IHlog;~eauto).] 0. secs (0.u,0.s) +Chars 27714 - 27718 [Qed.] 0.014 secs (0.014u,0.s) +Chars 27720 - 27933 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) +Chars 27934 - 27940 [Proof.] 0. secs (0.u,0.s) +Chars 27943 - 27966 [(intros~E~A~log~b'~Hdiv).] 0. secs (0.u,0.s) +Chars 27967 - 27981 [(induction~log).] 0. secs (0.u,0.s) +Chars 27984 - 27985 [-] 0. secs (0.u,0.s) +Chars 27986 - 27998 [(cbn~in~Hdiv).] 0. secs (0.u,0.s) +Chars 27999 - 28033 [setoid_rewrite~bind_ret_l~in~H...] 0.001 secs (0.001u,0.s) +Chars 28034 - 28039 [auto.] 0. secs (0.u,0.s) +Chars 28042 - 28043 [-] 0. secs (0.u,0.s) +Chars 28044 - 28056 [(apply~IHlog).] 0. secs (0.u,0.s) +Chars 28057 - 28071 [(simpl~in~Hdiv).] 0. secs (0.u,0.s) +Chars 28072 - 28094 [(unfold~append~in~Hdiv).] 0. secs (0.u,0.s) +Chars 28099 - 28124 [(rewrite~bind_vis~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 28125 - 28135 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) +Chars 28136 - 28149 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 28150 - 28156 [subst.] 0. secs (0.u,0.s) +Chars 28157 - 28166 [(apply~H0).] 0. secs (0.u,0.s) +Chars 28171 - 28180 [(apply~tt).] 0. secs (0.u,0.s) +Chars 28181 - 28185 [Qed.] 0.004 secs (0.004u,0.s) diff --git a/extra/ITrace/ITracePreds.v.timing b/extra/ITrace/ITracePreds.v.timing new file mode 100644 index 00000000..8b97783d --- /dev/null +++ b/extra/ITrace/ITracePreds.v.timing @@ -0,0 +1,163 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 83 - 148 [From~ITree~Require~Import~Axio...] 0.217 secs (0.19u,0.026s) +Chars 150 - 259 [From~ITree.Extra~Require~Impor...] 0.028 secs (0.023u,0.004s) +Chars 261 - 275 [Import~Monads.] 0. secs (0.u,0.s) +Chars 276 - 297 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 298 - 327 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 380 - 839 [Variant~trace_forallF~{E~:~Typ...] 0.001 secs (0.001u,0.s) +Chars 841 - 891 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) +Chars 893 - 988 [Definition~trace_forall_~{E}~{...] 0. secs (0.u,0.s) +Chars 990 - 1076 [Lemma~trace_forall_mono~{E}~{R...] 0. secs (0.u,0.s) +Chars 1077 - 1083 [Proof.] 0. secs (0.u,0.s) +Chars 1086 - 1099 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1100 - 1110 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 1111 - 1115 [(red).] 0. secs (0.u,0.s) +Chars 1116 - 1172 [(induction~H0;~constructor;~in...] 0.001 secs (0.u,0.s) +Chars 1174 - 1178 [Qed.] 0. secs (0.u,0.s) +Chars 1180 - 1264 [Definition~trace_forall_mon~{E...] 0. secs (0.u,0.s) +Chars 1267 - 1340 [Definition~trace_forall~{E}~{R...] 0. secs (0.u,0.s) +Chars 1342 - 1597 [Lemma~trace_forall_proper_aux~...] 0.032 secs (0.029u,0.003s) +Chars 1598 - 1604 [Proof.] 0. secs (0.u,0.s) +Chars 1607 - 1624 [(intros~E~R~PE~PR).] 0. secs (0.u,0.s) +Chars 1625 - 1644 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 1645 - 1672 [(intros~b1~b2~Heutt~Hforall).] 0. secs (0.u,0.s) +Chars 1675 - 1691 [step~in~Hforall.] 0. secs (0.u,0.s) +Chars 1694 - 1708 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 1709 - 1738 [(induction~Heutt;~subst;~auto).] 0.001 secs (0.001u,0.s) +Chars 1742 - 1743 [-] 0. secs (0.u,0.s) +Chars 1744 - 1756 [(inv~Hforall).] 0.002 secs (0.002u,0.s) +Chars 1757 - 1773 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 1776 - 1777 [-] 0. secs (0.u,0.s) +Chars 1778 - 1790 [(inv~Hforall).] 0.002 secs (0.002u,0.s) +Chars 1792 - 1804 [constructor.] 0. secs (0.u,0.s) +Chars 1805 - 1823 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 1826 - 1827 [-] 0. secs (0.u,0.s) +Chars 1828 - 1840 [(inv~Hforall).] 0.005 secs (0.005u,0.s) +Chars 1841 - 1854 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 1855 - 1861 [subst.] 0. secs (0.u,0.s) +Chars 1867 - 1885 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 1886 - 1893 [(intros).] 0. secs (0.u,0.s) +Chars 1894 - 1905 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 1911 - 1921 [(apply~REL).] 0. secs (0.u,0.s) +Chars 1927 - 1936 [(apply~H3).] 0. secs (0.u,0.s) +Chars 1939 - 1940 [-] 0. secs (0.u,0.s) +Chars 1941 - 1955 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 1956 - 1968 [(inv~Hforall).] 0.005 secs (0.005u,0.s) +Chars 1969 - 1984 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 1987 - 1988 [-] 0. secs (0.u,0.s) +Chars 1989 - 2001 [constructor.] 0. secs (0.u,0.s) +Chars 2002 - 2013 [Utils.step.] 0. secs (0.u,0.s) +Chars 2014 - 2028 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 2029 - 2034 [auto.] 0. secs (0.u,0.s) +Chars 2035 - 2039 [Qed.] 0.055 secs (0.055u,0.s) +Chars 2041 - 2150 [#[global]~Instance~trace_foral...] 0. secs (0.u,0.s) +Chars 2151 - 2157 [Proof.] 0. secs (0.u,0.s) +Chars 2160 - 2179 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) +Chars 2180 - 2194 [(split;~intros).] 0. secs (0.u,0.s) +Chars 2197 - 2198 [-] 0. secs (0.u,0.s) +Chars 2199 - 2237 [(eapply~trace_forall_proper_au...] 0. secs (0.u,0.s) +Chars 2240 - 2241 [-] 0. secs (0.u,0.s) +Chars 2242 - 2260 [symmetry~in~Heutt.] 0. secs (0.u,0.s) +Chars 2261 - 2299 [(eapply~trace_forall_proper_au...] 0. secs (0.u,0.s) +Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) +Chars 2306 - 2389 [Lemma~forall_spin~:~~~forall~E...] 0. secs (0.u,0.s) +Chars 2390 - 2396 [Proof.] 0. secs (0.u,0.s) +Chars 2399 - 2406 [(intros).] 0. secs (0.u,0.s) +Chars 2407 - 2426 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 2427 - 2431 [(cbn).] 0. secs (0.u,0.s) +Chars 2432 - 2444 [constructor.] 0. secs (0.u,0.s) +Chars 2447 - 2452 [auto.] 0. secs (0.u,0.s) +Chars 2454 - 2458 [Qed.] 0. secs (0.u,0.s) +Chars 2460 - 3044 [Inductive~trace_inf_oftenF~{E~...] 0.002 secs (0.002u,0.s) +Chars 3046 - 3099 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) +Chars 3101 - 3196 [Definition~trace_inf_often_~{E...] 0. secs (0.u,0.s) +Chars 3198 - 3284 [Lemma~trace_inf_often_mono~{E}...] 0. secs (0.u,0.s) +Chars 3285 - 3291 [Proof.] 0. secs (0.u,0.s) +Chars 3294 - 3307 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 3308 - 3318 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 3319 - 3323 [(red).] 0. secs (0.u,0.s) +Chars 3324 - 3337 [(induction~H0).] 0. secs (0.u,0.s) +Chars 3340 - 3361 [1-2:~now~constructor.] 0. secs (0.u,0.s) +Chars 3364 - 3384 [(constructor~3;~auto).] 0. secs (0.u,0.s) +Chars 3385 - 3397 [now~apply~H.] 0. secs (0.u,0.s) +Chars 3399 - 3403 [Qed.] 0. secs (0.u,0.s) +Chars 3405 - 3489 [Definition~trace_inf_often_mon...] 0. secs (0.u,0.s) +Chars 3491 - 3564 [Definition~trace_inf_often~{E}...] 0. secs (0.u,0.s) +Chars 3566 - 4094 [Inductive~front_and_last~{E~:~...] 0.002 secs (0.002u,0.s) +Chars 4096 - 4352 [Lemma~fal_proper_aux~:~~~foral...] 0. secs (0.u,0.s) +Chars 4353 - 4359 [Proof.] 0. secs (0.u,0.s) +Chars 4362 - 4401 [(intros~E~R~PEF~PEL~PR~b1~b2~H...] 0. secs (0.u,0.s) +Chars 4404 - 4428 [generalize~dependent~b2.] 0. secs (0.u,0.s) +Chars 4429 - 4452 [(induction~Hfal;~intros).] 0. secs (0.u,0.s) +Chars 4455 - 4456 [-] 0. secs (0.u,0.s) +Chars 4457 - 4491 [(eapply~front_and_last_base;~e...] 0.002 secs (0.002u,0.s) +Chars 4496 - 4513 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 4514 - 4519 [auto.] 0. secs (0.u,0.s) +Chars 4522 - 4523 [-] 0. secs (0.u,0.s) +Chars 4524 - 4558 [(eapply~front_and_last_cons;~e...] 0.002 secs (0.002u,0.s) +Chars 4559 - 4576 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 4577 - 4582 [auto.] 0. secs (0.u,0.s) +Chars 4583 - 4587 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4589 - 4714 [#[global]~Instance~front_and_l...] 0. secs (0.u,0.s) +Chars 4715 - 4721 [Proof.] 0. secs (0.u,0.s) +Chars 4724 - 4743 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) +Chars 4744 - 4758 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4761 - 4762 [-] 0. secs (0.u,0.s) +Chars 4763 - 4792 [(eapply~fal_proper_aux;~eauto).] 0. secs (0.u,0.s) +Chars 4795 - 4796 [-] 0. secs (0.u,0.s) +Chars 4797 - 4815 [symmetry~in~Heutt.] 0. secs (0.u,0.s) +Chars 4816 - 4845 [(eapply~fal_proper_aux;~eauto).] 0. secs (0.u,0.s) +Chars 4846 - 4850 [Qed.] 0. secs (0.u,0.s) +Chars 4852 - 4873 [Section~StateMachine.] 0. secs (0.u,0.s) +Chars 5158 - 5185 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 5188 - 5207 [Context~{R~:~Type}.] 0. secs (0.u,0.s) +Chars 5210 - 5279 [Context~(EvTrans~:~forall~A,~E...] 0. secs (0.u,0.s) +Chars 5282 - 5335 [Context~(RetTrans~:~forall~A,~...] 0. secs (0.u,0.s) +Chars 5339 - 5847 [Inductive~state_machineF~(PEv~...] 0.002 secs (0.002u,0.s) +Chars 5851 - 5892 [Hint~Constructors~state_machin...] 0. secs (0.u,0.s) +Chars 5896 - 5997 [Definition~state_machine_~F~PE...] 0. secs (0.u,0.s) +Chars 6001 - 6064 [Lemma~state_machine_mono~:~Pro...] 0. secs (0.u,0.s) +Chars 6067 - 6073 [Proof.] 0. secs (0.u,0.s) +Chars 6078 - 6086 [intros~!.] 0. secs (0.u,0.s) +Chars 6087 - 6091 [(red).] 0. secs (0.u,0.s) +Chars 6092 - 6102 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 6103 - 6133 [(induction~H0;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 6138 - 6156 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 6157 - 6169 [now~apply~H.] 0. secs (0.u,0.s) +Chars 6173 - 6177 [Qed.] 0. secs (0.u,0.s) +Chars 6181 - 6244 [Definition~state_machine_mon~:...] 0. secs (0.u,0.s) +Chars 6248 - 6300 [Definition~state_machine~:=~gf...] 0. secs (0.u,0.s) +Chars 6304 - 6451 [Lemma~state_machine_proper_aux...] 0. secs (0.u,0.s) +Chars 6454 - 6460 [Proof.] 0. secs (0.u,0.s) +Chars 6465 - 6484 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6485 - 6517 [(intros~PEV~PREt~t1~t2~Heutt~H...] 0. secs (0.u,0.s) +Chars 6523 - 6569 [(step~in~Hsm;~try~apply~monoto...] 0. secs (0.u,0.s) +Chars 6574 - 6588 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 6593 - 6607 [(induction~Hsm).] 0. secs (0.u,0.s) +Chars 6612 - 6613 [-] 0. secs (0.u,0.s) +Chars 6614 - 6639 [(remember~(RetF~r)~as~ot1).] 0. secs (0.u,0.s) +Chars 6640 - 6698 [(induction~Heutt;~subst;~auto~...] 0.003 secs (0.003u,0.s) +Chars 6705 - 6754 [(injection~Heqot1;~intros;~sub...] 0. secs (0.u,0.s) +Chars 6759 - 6760 [-] 0. secs (0.u,0.s) +Chars 6761 - 6773 [(apply~IHHsm).] 0. secs (0.u,0.s) +Chars 6774 - 6781 [unstep.] 0.004 secs (0.004u,0.s) +Chars 6782 - 6816 [(assert~(Tau~t~≈~t2)~by~now~st...] 0.002 secs (0.002u,0.s) +Chars 6824 - 6846 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.021u,0.s) +Chars 6847 - 6852 [auto.] 0. secs (0.u,0.s) +Chars 6857 - 6858 [-] 0. secs (0.u,0.s) +Chars 6859 - 6899 [(remember~(VisF~(evans~A~e~a)~...] 0.001 secs (0.001u,0.s) +Chars 6900 - 6958 [(induction~Heutt;~subst;~auto~...] 0.003 secs (0.003u,0.s) +Chars 6965 - 6997 [(injection~Heqot1;~intros;~sub...] 0.001 secs (0.001u,0.s) +Chars 6998 - 7023 [dependent~destruction~H1.] 0.003 secs (0.003u,0.s) +Chars 7030 - 7036 [subst.] 0. secs (0.u,0.s) +Chars 7037 - 7055 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 7056 - 7089 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 7093 - 7097 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7101 - 7210 [#[global]~Instance~state_machi...] 0. secs (0.u,0.s) +Chars 7213 - 7219 [Proof.] 0. secs (0.u,0.s) +Chars 7224 - 7243 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 7244 - 7288 [(assert~(Heutt2~:~t2~≈~t1)~by~...] 0. secs (0.u,0.s) +Chars 7294 - 7348 [(split;~intros;~eapply~state_m...] 0.001 secs (0.001u,0.s) +Chars 7352 - 7356 [Qed.] 0. secs (0.u,0.s) +Chars 7358 - 7375 [End~StateMachine.] 0.001 secs (0.001u,0.s) diff --git a/extra/ITrace/ITracePrefix.v.timing b/extra/ITrace/ITracePrefix.v.timing index 9ae4d06b..a364ffb5 100644 --- a/extra/ITrace/ITracePrefix.v.timing +++ b/extra/ITrace/ITracePrefix.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.219 secs (0.194u,0.025s) -Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.012 secs (0.01u,0.001s) +Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.229 secs (0.199u,0.029s) +Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.013 secs (0.011u,0.002s) Chars 293 - 307 [Import~Monads.] 0. secs (0.u,0.s) Chars 308 - 329 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 330 - 362 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -15,7 +15,7 @@ Chars 1690 - 1696 [Proof.] 0. secs (0.u,0.s) Chars 1699 - 1712 [(repeat~intro).] 0. secs (0.u,0.s) Chars 1713 - 1717 [(red).] 0. secs (0.u,0.s) Chars 1718 - 1728 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 1729 - 1789 [(induction~H0;~eauto~with~itre...] 0.037 secs (0.033u,0.003s) +Chars 1729 - 1789 [(induction~H0;~eauto~with~itre...] 0.04 secs (0.035u,0.004s) Chars 1791 - 1795 [Qed.] 0.001 secs (0.001u,0.s) Chars 1797 - 1873 [Definition~trace_prefix_mon~{E...] 0. secs (0.u,0.s) Chars 1875 - 1975 [Definition~trace_prefix~{E}~{R...] 0. secs (0.u,0.s) @@ -24,7 +24,7 @@ Chars 2171 - 2177 [Proof.] 0. secs (0.u,0.s) Chars 2180 - 2209 [(intros~E~R~S~A~e~ans~k~t~Hbp).] 0. secs (0.u,0.s) Chars 2210 - 2222 [step~in~Hbp.] 0. secs (0.u,0.s) Chars 2223 - 2232 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 2235 - 2259 [dependent~induction~Hbp.] 0.014 secs (0.014u,0.s) +Chars 2235 - 2259 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) Chars 2262 - 2263 [-] 0. secs (0.u,0.s) Chars 2264 - 2283 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) Chars 2284 - 2343 [(enough~(exists~k',~bs~≈~Vis~(...] 0. secs (0.u,0.s) @@ -39,9 +39,9 @@ Chars 2426 - 2446 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) Chars 2449 - 2450 [-] 0. secs (0.u,0.s) Chars 2451 - 2461 [exists~ks.] 0. secs (0.u,0.s) Chars 2462 - 2481 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 2482 - 2492 [(rewrite~x).] 0.045 secs (0.044u,0.s) +Chars 2482 - 2492 [(rewrite~x).] 0.044 secs (0.044u,0.s) Chars 2493 - 2505 [reflexivity.] 0. secs (0.u,0.s) -Chars 2506 - 2510 [Qed.] 0.011 secs (0.011u,0.s) +Chars 2506 - 2510 [Qed.] 0.012 secs (0.012u,0.s) Chars 2512 - 2608 [Lemma~trace_prefix_ret~:~~~for...] 0. secs (0.u,0.s) Chars 2609 - 2615 [Proof.] 0. secs (0.u,0.s) Chars 2618 - 2625 [(intros).] 0. secs (0.u,0.s) @@ -54,13 +54,13 @@ Chars 2691 - 2692 [}] 0. secs (0.u,0.s) Chars 2695 - 2708 [(rewrite~<-~H).] 0. secs (0.u,0.s) Chars 2709 - 2725 [auto~with~itree.] 0. secs (0.u,0.s) Chars 2726 - 2730 [Qed.] 0. secs (0.u,0.s) -Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.001 secs (0.001u,0.s) +Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.002 secs (0.001u,0.s) Chars 3374 - 3380 [Proof.] 0. secs (0.u,0.s) Chars 3383 - 3423 [(intros~E~S~R~t1~b2~Heutt~r~X~...] 0. secs (0.u,0.s) -Chars 3426 - 3449 [dependent~induction~H0.] 0.018 secs (0.018u,0.s) +Chars 3426 - 3449 [dependent~induction~H0.] 0.02 secs (0.019u,0.001s) Chars 3452 - 3453 [-] 0. secs (0.u,0.s) Chars 3454 - 3477 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) -Chars 3478 - 3504 [dependent~induction~Heutt.] 0.037 secs (0.036u,0.s) +Chars 3478 - 3504 [dependent~induction~Heutt.] 0.036 secs (0.035u,0.s) Chars 3509 - 3510 [+] 0. secs (0.u,0.s) Chars 3511 - 3524 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3525 - 3548 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) @@ -74,12 +74,12 @@ Chars 3633 - 3648 [3:~reflexivity.] 0. secs (0.u,0.s) Chars 3649 - 3660 [all:~eauto.] 0. secs (0.u,0.s) Chars 3666 - 3685 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) Chars 3686 - 3717 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) -Chars 3722 - 3737 [(rewrite~x~in~H).] 0.024 secs (0.024u,0.s) +Chars 3722 - 3737 [(rewrite~x~in~H).] 0.026 secs (0.025u,0.s) Chars 3738 - 3760 [(rewrite~tau_eutt~in~H).] 0.023 secs (0.023u,0.s) Chars 3761 - 3775 [now~step~in~H.] 0. secs (0.u,0.s) Chars 3778 - 3779 [-] 0. secs (0.u,0.s) Chars 3780 - 3802 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) -Chars 3803 - 3829 [dependent~induction~Heutt.] 0.042 secs (0.041u,0.001s) +Chars 3803 - 3829 [dependent~induction~Heutt.] 0.041 secs (0.04u,0.s) Chars 3834 - 3835 [+] 0. secs (0.u,0.s) Chars 3836 - 3849 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3850 - 3862 [constructor.] 0. secs (0.u,0.s) @@ -89,7 +89,7 @@ Chars 3883 - 3895 [constructor.] 0. secs (0.u,0.s) Chars 3896 - 3918 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) Chars 3921 - 3922 [-] 0. secs (0.u,0.s) Chars 3923 - 3945 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) -Chars 3946 - 3972 [dependent~induction~Heutt.] 0.05 secs (0.049u,0.s) +Chars 3946 - 3972 [dependent~induction~Heutt.] 0.051 secs (0.051u,0.s) Chars 3977 - 3978 [+] 0. secs (0.u,0.s) Chars 3979 - 3992 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3993 - 4005 [constructor.] 0. secs (0.u,0.s) @@ -98,8 +98,8 @@ Chars 4040 - 4041 [+] 0. secs (0.u,0.s) Chars 4042 - 4055 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4056 - 4068 [constructor.] 0. secs (0.u,0.s) Chars 4069 - 4091 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 4092 - 4096 [Qed.] 0.097 secs (0.095u,0.002s) -Chars 4098 - 4312 [Lemma~trace_prefix_tau_inv~:~~...] 0.001 secs (0.u,0.s) +Chars 4092 - 4096 [Qed.] 0.099 secs (0.097u,0.001s) +Chars 4098 - 4312 [Lemma~trace_prefix_tau_inv~:~~...] 0.001 secs (0.001u,0.s) Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) Chars 4322 - 4344 [(intros~E~S~R~m1~t~Hbp).] 0. secs (0.u,0.s) Chars 4347 - 4371 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) @@ -125,7 +125,7 @@ Chars 4576 - 4581 [auto.] 0. secs (0.u,0.s) Chars 4584 - 4585 [-] 0. secs (0.u,0.s) Chars 4586 - 4591 [step.] 0. secs (0.u,0.s) Chars 4592 - 4604 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4605 - 4629 [dependent~induction~Hbp.] 0.013 secs (0.012u,0.s) +Chars 4605 - 4629 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) Chars 4634 - 4635 [+] 0. secs (0.u,0.s) Chars 4636 - 4649 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4650 - 4662 [constructor.] 0. secs (0.u,0.s) @@ -136,7 +136,7 @@ Chars 4694 - 4695 [+] 0. secs (0.u,0.s) Chars 4696 - 4709 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4710 - 4722 [constructor.] 0. secs (0.u,0.s) Chars 4723 - 4743 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) -Chars 4744 - 4748 [Qed.] 0.016 secs (0.016u,0.s) +Chars 4744 - 4748 [Qed.] 0.017 secs (0.017u,0.s) Chars 4750 - 4890 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) Chars 4891 - 4897 [Proof.] 0. secs (0.u,0.s) Chars 4900 - 4913 [(intros~E~R~S).] 0. secs (0.u,0.s) @@ -144,7 +144,7 @@ Chars 4914 - 4933 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 4934 - 4959 [(intros~b1~b2~b~Heutt~Hbp).] 0. secs (0.u,0.s) Chars 4962 - 4976 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 4977 - 4989 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 4992 - 5018 [dependent~induction~Heutt.] 0.043 secs (0.042u,0.001s) +Chars 4992 - 5018 [dependent~induction~Heutt.] 0.044 secs (0.043u,0.s) Chars 5021 - 5022 [-] 0. secs (0.u,0.s) Chars 5023 - 5036 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5037 - 5049 [constructor.] 0. secs (0.u,0.s) @@ -154,17 +154,17 @@ Chars 5068 - 5089 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 5090 - 5101 [clear~x0~x.] 0. secs (0.u,0.s) Chars 5106 - 5138 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) Chars 5143 - 5144 [+] 0. secs (0.u,0.s) -Chars 5145 - 5153 [(inv~Hbp).] 0.013 secs (0.012u,0.s) +Chars 5145 - 5153 [(inv~Hbp).] 0.012 secs (0.012u,0.s) Chars 5154 - 5166 [constructor.] 0. secs (0.u,0.s) Chars 5167 - 5191 [dependent~induction~H0.] 0.015 secs (0.015u,0.s) Chars 5198 - 5199 [*] 0. secs (0.u,0.s) Chars 5200 - 5220 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) Chars 5221 - 5246 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 5255 - 5271 [(rewrite~x0~in~H).] 0.023 secs (0.022u,0.s) +Chars 5255 - 5271 [(rewrite~x0~in~H).] 0.024 secs (0.024u,0.s) Chars 5272 - 5296 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) Chars 5305 - 5315 [step~in~H.] 0. secs (0.u,0.s) Chars 5316 - 5325 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5326 - 5348 [dependent~induction~H.] 0.041 secs (0.04u,0.s) +Chars 5326 - 5348 [dependent~induction~H.] 0.042 secs (0.041u,0.s) Chars 5357 - 5359 [++] 0. secs (0.u,0.s) Chars 5360 - 5373 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5374 - 5397 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) @@ -178,8 +178,8 @@ Chars 5491 - 5506 [5:~reflexivity.] 0. secs (0.u,0.s) Chars 5507 - 5517 [all:~auto.] 0.001 secs (0.001u,0.s) Chars 5526 - 5545 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) Chars 5546 - 5571 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 5580 - 5595 [(rewrite~x~in~H).] 0.023 secs (0.022u,0.s) -Chars 5596 - 5618 [(rewrite~tau_eutt~in~H).] 0.021 secs (0.02u,0.s) +Chars 5580 - 5595 [(rewrite~x~in~H).] 0.024 secs (0.023u,0.s) +Chars 5596 - 5618 [(rewrite~tau_eutt~in~H).] 0.023 secs (0.023u,0.s) Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) Chars 5629 - 5630 [+] 0. secs (0.u,0.s) Chars 5631 - 5643 [constructor.] 0. secs (0.u,0.s) @@ -188,15 +188,15 @@ Chars 5663 - 5698 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) Chars 5703 - 5704 [+] 0. secs (0.u,0.s) Chars 5705 - 5717 [constructor.] 0. secs (0.u,0.s) Chars 5718 - 5729 [clear~Heqb.] 0. secs (0.u,0.s) -Chars 5730 - 5738 [(inv~Hbp).] 0.014 secs (0.013u,0.s) -Chars 5739 - 5762 [dependent~induction~H0.] 0.018 secs (0.018u,0.s) +Chars 5730 - 5738 [(inv~Hbp).] 0.015 secs (0.015u,0.s) +Chars 5739 - 5762 [dependent~induction~H0.] 0.021 secs (0.02u,0.s) Chars 5769 - 5770 [*] 0. secs (0.u,0.s) Chars 5771 - 5791 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) Chars 5792 - 5817 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 5826 - 5842 [(rewrite~x0~in~H).] 0.022 secs (0.021u,0.s) +Chars 5826 - 5842 [(rewrite~x0~in~H).] 0.026 secs (0.025u,0.s) Chars 5843 - 5853 [step~in~H.] 0. secs (0.u,0.s) Chars 5854 - 5863 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5872 - 5894 [dependent~induction~H.] 0.068 secs (0.068u,0.s) +Chars 5872 - 5894 [dependent~induction~H.] 0.074 secs (0.073u,0.s) Chars 5903 - 5905 [++] 0. secs (0.u,0.s) Chars 5906 - 5919 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5920 - 5943 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) @@ -205,18 +205,18 @@ Chars 5955 - 5968 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 5969 - 5981 [constructor.] 0. secs (0.u,0.s) Chars 5982 - 6018 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) Chars 6031 - 6056 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 6068 - 6076 [sinv~x0.] 0.021 secs (0.021u,0.s) +Chars 6068 - 6076 [sinv~x0.] 0.023 secs (0.022u,0.s) Chars 6077 - 6100 [(apply~simpobs~in~x,~H2).] 0. secs (0.u,0.s) -Chars 6114 - 6144 [(rewrite~x,~H2,~tau_eutt~in~H0).] 0.054 secs (0.053u,0.s) +Chars 6114 - 6144 [(rewrite~x,~H2,~tau_eutt~in~H0).] 0.056 secs (0.056u,0.s) Chars 6157 - 6179 [now~rewrite~<-~H0,~H2.] 0.003 secs (0.003u,0.s) Chars 6187 - 6188 [*] 0. secs (0.u,0.s) Chars 6189 - 6212 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 6213 - 6228 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 6229 - 6239 [all:~auto.] 0. secs (0.u,0.s) -Chars 6248 - 6273 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6229 - 6239 [all:~auto.] 0.001 secs (0.001u,0.s) +Chars 6248 - 6273 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) Chars 6274 - 6293 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6302 - 6317 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) -Chars 6318 - 6340 [(rewrite~tau_eutt~in~H).] 0.02 secs (0.019u,0.s) +Chars 6302 - 6317 [(rewrite~x~in~H).] 0.023 secs (0.023u,0.s) +Chars 6318 - 6340 [(rewrite~tau_eutt~in~H).] 0.02 secs (0.02u,0.s) Chars 6341 - 6346 [auto.] 0. secs (0.u,0.s) Chars 6353 - 6354 [*] 0. secs (0.u,0.s) Chars 6355 - 6380 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) @@ -224,7 +224,7 @@ Chars 6381 - 6400 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) Chars 6409 - 6425 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) Chars 6434 - 6445 [step~in~H0.] 0. secs (0.u,0.s) Chars 6446 - 6455 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6464 - 6487 [dependent~induction~H0.] 0.061 secs (0.061u,0.s) +Chars 6464 - 6487 [dependent~induction~H0.] 0.063 secs (0.063u,0.s) Chars 6496 - 6498 [++] 0. secs (0.u,0.s) Chars 6499 - 6512 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 6513 - 6525 [constructor.] 0. secs (0.u,0.s) @@ -240,10 +240,10 @@ Chars 6710 - 6715 [auto.] 0. secs (0.u,0.s) Chars 6722 - 6723 [*] 0. secs (0.u,0.s) Chars 6725 - 6744 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) Chars 6745 - 6770 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 6779 - 6795 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) +Chars 6779 - 6795 [(rewrite~x~in~H0).] 0.022 secs (0.022u,0.s) Chars 6796 - 6807 [step~in~H0.] 0. secs (0.u,0.s) Chars 6808 - 6817 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6826 - 6849 [dependent~induction~H0.] 0.063 secs (0.062u,0.001s) +Chars 6826 - 6849 [dependent~induction~H0.] 0.066 secs (0.065u,0.s) Chars 6858 - 6860 [++] 0. secs (0.u,0.s) Chars 6861 - 6874 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 6875 - 6887 [constructor.] 0. secs (0.u,0.s) @@ -254,14 +254,14 @@ Chars 6949 - 6961 [constructor.] 0. secs (0.u,0.s) Chars 6962 - 6998 [(eapply~IHeqitF;~try~apply~x0;...] 0.006 secs (0.006u,0.s) Chars 7010 - 7035 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) Chars 7047 - 7066 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7067 - 7083 [(rewrite~x~in~H1).] 0.032 secs (0.031u,0.s) -Chars 7084 - 7107 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) +Chars 7067 - 7083 [(rewrite~x~in~H1).] 0.035 secs (0.035u,0.s) +Chars 7084 - 7107 [(rewrite~tau_eutt~in~H1).] 0.001 secs (0.001u,0.s) Chars 7108 - 7113 [auto.] 0. secs (0.u,0.s) Chars 7116 - 7117 [-] 0. secs (0.u,0.s) Chars 7118 - 7131 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7132 - 7153 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 7154 - 7165 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 7171 - 7195 [dependent~induction~Hbp.] 0.016 secs (0.016u,0.s) +Chars 7171 - 7195 [dependent~induction~Hbp.] 0.017 secs (0.017u,0.s) Chars 7200 - 7201 [+] 0. secs (0.u,0.s) Chars 7202 - 7215 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7216 - 7228 [constructor.] 0. secs (0.u,0.s) @@ -280,11 +280,11 @@ Chars 7428 - 7429 [+] 0. secs (0.u,0.s) Chars 7430 - 7444 [clear~IHHeutt.] 0. secs (0.u,0.s) Chars 7445 - 7453 [(inv~Hbp).] 0.02 secs (0.02u,0.s) Chars 7454 - 7467 [clear~Heqb~x.] 0. secs (0.u,0.s) -Chars 7474 - 7497 [dependent~induction~H0.] 0.012 secs (0.011u,0.s) +Chars 7474 - 7497 [dependent~induction~H0.] 0.012 secs (0.012u,0.s) Chars 7504 - 7505 [*] 0. secs (0.u,0.s) Chars 7506 - 7529 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) Chars 7530 - 7545 [clear~CIH~x0~x.] 0. secs (0.u,0.s) -Chars 7554 - 7581 [dependent~induction~Heutt.] 0.037 secs (0.037u,0.s) +Chars 7554 - 7581 [dependent~induction~Heutt.] 0.04 secs (0.039u,0.s) Chars 7590 - 7592 [++] 0. secs (0.u,0.s) Chars 7593 - 7606 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7607 - 7630 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) @@ -298,8 +298,8 @@ Chars 7724 - 7739 [4:~reflexivity.] 0. secs (0.u,0.s) Chars 7740 - 7750 [all:~auto.] 0. secs (0.u,0.s) Chars 7759 - 7790 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) Chars 7800 - 7819 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7820 - 7835 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) -Chars 7836 - 7858 [(rewrite~tau_eutt~in~H).] 0.02 secs (0.02u,0.s) +Chars 7820 - 7835 [(rewrite~x~in~H).] 0.023 secs (0.022u,0.s) +Chars 7836 - 7858 [(rewrite~tau_eutt~in~H).] 0.021 secs (0.021u,0.s) Chars 7859 - 7873 [now~step~in~H.] 0. secs (0.u,0.s) Chars 7878 - 7879 [+] 0. secs (0.u,0.s) Chars 7880 - 7892 [constructor.] 0. secs (0.u,0.s) @@ -314,11 +314,11 @@ Chars 8035 - 8036 [-] 0. secs (0.u,0.s) Chars 8037 - 8050 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 8051 - 8063 [constructor.] 0. secs (0.u,0.s) Chars 8064 - 8086 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 8087 - 8091 [Qed.] 0.292 secs (0.288u,0.003s) +Chars 8087 - 8091 [Qed.] 0.31 secs (0.306u,0.003s) Chars 8093 - 8369 [Lemma~trace_prefixF_tau_inv_r~...] 0.001 secs (0.001u,0.s) Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) Chars 8379 - 8401 [(intros~E~S~R~t1~b~Hbp).] 0. secs (0.u,0.s) -Chars 8404 - 8429 [dependent~induction~Hbp.] 0.013 secs (0.012u,0.s) +Chars 8404 - 8429 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) Chars 8432 - 8433 [-] 0. secs (0.u,0.s) Chars 8434 - 8448 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 8449 - 8472 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) @@ -337,7 +337,7 @@ Chars 8588 - 9127 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) Chars 9128 - 9134 [Proof.] 0. secs (0.u,0.s) Chars 9137 - 9175 [(intros~E~S~R~m1~m2~REL~r~X~e~...] 0. secs (0.u,0.s) Chars 9178 - 9190 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9193 - 9216 [dependent~induction~H1.] 0.02 secs (0.02u,0.s) +Chars 9193 - 9216 [dependent~induction~H1.] 0.021 secs (0.021u,0.s) Chars 9219 - 9220 [-] 0. secs (0.u,0.s) Chars 9221 - 9244 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) Chars 9245 - 9260 [4:~reflexivity.] 0. secs (0.u,0.s) @@ -348,7 +348,7 @@ Chars 9342 - 9364 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) Chars 9365 - 9379 [now~step~in~H.] 0. secs (0.u,0.s) Chars 9382 - 9383 [-] 0. secs (0.u,0.s) Chars 9384 - 9404 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9405 - 9429 [dependent~induction~REL.] 0.047 secs (0.046u,0.s) +Chars 9405 - 9429 [dependent~induction~REL.] 0.048 secs (0.047u,0.s) Chars 9434 - 9435 [+] 0. secs (0.u,0.s) Chars 9436 - 9449 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9450 - 9462 [constructor.] 0. secs (0.u,0.s) @@ -358,7 +358,7 @@ Chars 9483 - 9495 [constructor.] 0. secs (0.u,0.s) Chars 9496 - 9516 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) Chars 9519 - 9520 [-] 0. secs (0.u,0.s) Chars 9522 - 9542 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9543 - 9567 [dependent~induction~REL.] 0.048 secs (0.046u,0.001s) +Chars 9543 - 9567 [dependent~induction~REL.] 0.05 secs (0.049u,0.s) Chars 9572 - 9573 [+] 0. secs (0.u,0.s) Chars 9574 - 9587 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9588 - 9600 [constructor.] 0. secs (0.u,0.s) @@ -367,7 +367,7 @@ Chars 9650 - 9651 [+] 0. secs (0.u,0.s) Chars 9652 - 9665 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9666 - 9678 [constructor.] 0. secs (0.u,0.s) Chars 9679 - 9699 [(eapply~IHREL;~eauto).] 0.007 secs (0.007u,0.s) -Chars 9700 - 9704 [Qed.] 0.068 secs (0.067u,0.001s) +Chars 9700 - 9704 [Qed.] 0.073 secs (0.072u,0.s) Chars 9706 - 9846 [Lemma~trace_prefix_proper_r~:~...] 0. secs (0.u,0.s) Chars 9847 - 9853 [Proof.] 0. secs (0.u,0.s) Chars 9856 - 9869 [(intros~E~R~S).] 0. secs (0.u,0.s) @@ -375,12 +375,12 @@ Chars 9870 - 9889 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 9890 - 9915 [(intros~b~b1~b2~Heutt~Hbp).] 0. secs (0.u,0.s) Chars 9918 - 9932 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 9933 - 9945 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 9949 - 9975 [dependent~induction~Heutt.] 0.052 secs (0.051u,0.s) +Chars 9949 - 9975 [dependent~induction~Heutt.] 0.052 secs (0.052u,0.s) Chars 9978 - 9979 [-] 0. secs (0.u,0.s) Chars 9980 - 9993 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9994 - 10015 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) Chars 10016 - 10027 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 10028 - 10059 [(induction~Hbp;~auto~with~itree).] 0.004 secs (0.003u,0.s) +Chars 10028 - 10059 [(induction~Hbp;~auto~with~itree).] 0.004 secs (0.004u,0.s) Chars 10064 - 10065 [+] 0. secs (0.u,0.s) Chars 10067 - 10079 [constructor.] 0. secs (0.u,0.s) Chars 10080 - 10098 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) @@ -423,14 +423,14 @@ Chars 10613 - 10626 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10627 - 10639 [constructor.] 0. secs (0.u,0.s) Chars 10640 - 10684 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) Chars 10687 - 10688 [-] 0. secs (0.u,0.s) -Chars 10689 - 10710 [(eapply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 10689 - 10710 [(eapply~IHHeutt;~auto).] 0.002 secs (0.002u,0.s) Chars 10711 - 10731 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) Chars 10732 - 10770 [(eapply~trace_prefixF_tau_inv_...] 0. secs (0.u,0.s) Chars 10773 - 10774 [-] 0. secs (0.u,0.s) Chars 10775 - 10788 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10789 - 10801 [constructor.] 0. secs (0.u,0.s) Chars 10802 - 10824 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 10825 - 10829 [Qed.] 0.065 secs (0.063u,0.001s) +Chars 10825 - 10829 [Qed.] 0.068 secs (0.067u,0.s) Chars 10831 - 10939 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) Chars 10940 - 10946 [Proof.] 0. secs (0.u,0.s) Chars 10949 - 10962 [(repeat~intro).] 0. secs (0.u,0.s) @@ -456,13 +456,13 @@ Chars 11843 - 11848 [auto.] 0. secs (0.u,0.s) Chars 11851 - 11852 [-] 0. secs (0.u,0.s) Chars 11853 - 11863 [(rewrite~H).] 0.007 secs (0.007u,0.s) Chars 11864 - 11875 [(rewrite~H0).] 0.001 secs (0.001u,0.s) -Chars 11876 - 11893 [(rewrite~bind_vis).] 0.001 secs (0.001u,0.s) +Chars 11876 - 11893 [(rewrite~bind_vis).] 0.002 secs (0.002u,0.s) Chars 11894 - 11899 [step.] 0.002 secs (0.002u,0.s) Chars 11900 - 11912 [constructor.] 0. secs (0.u,0.s) Chars 11913 - 11920 [(intros).] 0. secs (0.u,0.s) Chars 11925 - 11936 [(destruct~v).] 0. secs (0.u,0.s) Chars 11937 - 11950 [(apply~IHHind).] 0. secs (0.u,0.s) -Chars 11951 - 11955 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11951 - 11955 [Qed.] 0.005 secs (0.005u,0.s) Chars 11957 - 12359 [Inductive~trace_prefix_ind~{E}...] 0.004 secs (0.004u,0.s) Chars 12361 - 12504 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) Chars 12505 - 12511 [Proof.] 0. secs (0.u,0.s) @@ -491,9 +491,9 @@ Chars 13137 - 13168 [(intros~E~R~S~b1~b2~r~Hbp~Hconv).] 0. secs (0.u,0.s) Chars 13169 - 13193 [generalize~dependent~b2.] 0. secs (0.u,0.s) Chars 13194 - 13218 [(induction~Hconv;~intros).] 0. secs (0.u,0.s) Chars 13221 - 13222 [-] 0. secs (0.u,0.s) -Chars 13223 - 13249 [(eapply~left_ret_bp;~eauto).] 0. secs (0.u,0.s) +Chars 13223 - 13249 [(eapply~left_ret_bp;~eauto).] 0.001 secs (0.001u,0.s) Chars 13252 - 13253 [-] 0. secs (0.u,0.s) -Chars 13254 - 13271 [(rewrite~H~in~Hbp).] 0.006 secs (0.005u,0.s) +Chars 13254 - 13271 [(rewrite~H~in~Hbp).] 0.006 secs (0.006u,0.s) Chars 13272 - 13302 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) Chars 13307 - 13338 [(apply~prefix_vis~in~Hbp~as~Hb2).] 0. secs (0.u,0.s) Chars 13343 - 13368 [(destruct~Hb2~as~[k'~Hk']).] 0. secs (0.u,0.s) @@ -506,11 +506,11 @@ Chars 13464 - 13473 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 13474 - 13488 [(inversion~Hbp).] 0.004 secs (0.004u,0.s) Chars 13489 - 13516 [(subst;~ddestruction;~subst).] 0.003 secs (0.003u,0.s) Chars 13522 - 13527 [auto.] 0. secs (0.u,0.s) -Chars 13528 - 13532 [Qed.] 0.009 secs (0.008u,0.s) +Chars 13528 - 13532 [Qed.] 0.009 secs (0.009u,0.s) Chars 13534 - 13662 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) Chars 13663 - 13669 [Proof.] 0. secs (0.u,0.s) Chars 13672 - 13685 [revert~b1~b2.] 0. secs (0.u,0.s) -Chars 13686 - 13705 [icoinduction~c~CIH.] 0.005 secs (0.005u,0.s) +Chars 13686 - 13705 [icoinduction~c~CIH.] 0.006 secs (0.006u,0.s) Chars 13706 - 13728 [(intros~b1~b2~Hdiv~Hbf).] 0. secs (0.u,0.s) Chars 13731 - 13743 [step~in~Hbf.] 0. secs (0.u,0.s) Chars 13744 - 13757 [step~in~Hdiv.] 0. secs (0.u,0.s) @@ -535,11 +535,11 @@ Chars 13939 - 13940 [-] 0. secs (0.u,0.s) Chars 13942 - 13954 [constructor.] 0. secs (0.u,0.s) Chars 13955 - 13962 [(intros).] 0. secs (0.u,0.s) Chars 13963 - 13972 [(inv~Hdiv).] 0.012 secs (0.012u,0.s) -Chars 13973 - 13993 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 13973 - 13993 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) Chars 13999 - 14010 [(destruct~v).] 0. secs (0.u,0.s) Chars 14011 - 14027 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 14028 - 14037 [(apply~H1).] 0. secs (0.u,0.s) -Chars 14038 - 14042 [Qed.] 0.019 secs (0.018u,0.s) +Chars 14038 - 14042 [Qed.] 0.02 secs (0.02u,0.s) Chars 14044 - 14181 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 14182 - 14188 [Proof.] 0. secs (0.u,0.s) Chars 14191 - 14198 [(intros).] 0. secs (0.u,0.s) @@ -555,7 +555,7 @@ Chars 14507 - 14536 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) Chars 14537 - 14560 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) Chars 14561 - 14581 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) Chars 14586 - 14655 [(eapply~noret_bind_nop~with~(f...] 0. secs (0.u,0.s) -Chars 14660 - 14697 [(eapply~euttNoRet_trans;~try~a...] 0.003 secs (0.003u,0.s) +Chars 14660 - 14697 [(eapply~euttNoRet_trans;~try~a...] 0.004 secs (0.004u,0.s) Chars 14698 - 14718 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) Chars 14719 - 14724 [auto.] 0. secs (0.u,0.s) Chars 14725 - 14729 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/Labels.v.timing b/extra/Secure/Labels.v.timing index 8c2b78f4..1aad102e 100644 --- a/extra/Secure/Labels.v.timing +++ b/extra/Secure/Labels.v.timing @@ -1,4 +1,4 @@ -Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.174 secs (0.155u,0.018s) +Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.177 secs (0.156u,0.02s) Chars 104 - 153 [Variant~nonempty~(A~:~Type)~:~...] 0. secs (0.u,0.s) Chars 155 - 220 [Variant~empty~(A~:~Type)~:~Pro...] 0. secs (0.u,0.s) Chars 222 - 276 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) diff --git a/extra/Secure/StrongBisimProper.v.timing b/extra/Secure/StrongBisimProper.v.timing index 378ee0a2..3b5de393 100644 --- a/extra/Secure/StrongBisimProper.v.timing +++ b/extra/Secure/StrongBisimProper.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.002u,0.001s) -Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.215 secs (0.19u,0.024s) +Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.224 secs (0.194u,0.029s) Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0.001 secs (0.u,0.s) Chars 380 - 386 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Axioms.v.timing b/theories/Axioms.v.timing index 6a85654b..1cf4075d 100644 --- a/theories/Axioms.v.timing +++ b/theories/Axioms.v.timing @@ -1,4 +1,4 @@ -Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.129 secs (0.114u,0.014s) +Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.137 secs (0.121u,0.015s) Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0.001 secs (0.001u,0.s) Chars 368 - 391 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 490 - 599 [Ltac~~ddestruction~:=~~~repeat...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Basics.v.timing b/theories/Basics/Basics.v.timing index 317b0272..9840efce 100644 --- a/theories/Basics/Basics.v.timing +++ b/theories/Basics/Basics.v.timing @@ -21,8 +21,8 @@ Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.001u,0.s) Chars 2274 - 2285 [End~Monads.] 0. secs (0.u,0.s) Chars 2452 - 2572 [#[universes(polymorphic)]~Clas...] 0. secs (0.u,0.s) Chars 2574 - 2628 [#[global]~Hint~Mode~MonadIter~...] 0. secs (0.u,0.s) -Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.004 secs (0.003u,0.s) -Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.004 secs (0.003u,0.s) +Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.005 secs (0.004u,0.001s) +Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.004 secs (0.003u,0.001s) Chars 3534 - 3710 [#[global]~Instance~MonadIter_r...] 0. secs (0.u,0.s) Chars 3712 - 4047 [#[global]~Instance~MonadIter_o...] 0.002 secs (0.002u,0.s) Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.s) diff --git a/theories/Basics/Category.v.timing b/theories/Basics/Category.v.timing index 9c20729b..d6dd616a 100644 --- a/theories/Basics/Category.v.timing +++ b/theories/Basics/Category.v.timing @@ -1 +1 @@ -Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.01 secs (0.008u,0.002s) +Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.009 secs (0.007u,0.002s) diff --git a/theories/Basics/CategoryFacts.v.timing b/theories/Basics/CategoryFacts.v.timing index 65adcb24..bfa3d29b 100644 --- a/theories/Basics/CategoryFacts.v.timing +++ b/theories/Basics/CategoryFacts.v.timing @@ -1,5 +1,5 @@ -Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.003 secs (0.002u,0.s) +Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.002 secs (0.002u,0.s) Chars 176 - 191 [Import~Carrier.] 0. secs (0.u,0.s) Chars 192 - 212 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 213 - 234 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) @@ -21,9 +21,9 @@ Chars 1394 - 1501 [Context~~{Proper_Cat_C~:~foral...] 0. secs (0.u,0.s) Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0.001 secs (0.u,0.s) Chars 1742 - 1748 [Proof.] 0. secs (0.u,0.s) Chars 1751 - 1755 [(red).] 0. secs (0.u,0.s) -Chars 1758 - 1836 [(rewrite~cat_assoc,~<-~(cat_as...] 0.008 secs (0.006u,0.001s) +Chars 1758 - 1836 [(rewrite~cat_assoc,~<-~(cat_as...] 0.009 secs (0.007u,0.002s) Chars 1839 - 1851 [reflexivity.] 0. secs (0.u,0.s) -Chars 1852 - 1856 [Qed.] 0.001 secs (0.u,0.s) +Chars 1852 - 1856 [Qed.] 0.001 secs (0.001u,0.s) Chars 1858 - 1869 [End~IsoCat.] 0. secs (0.u,0.s) Chars 1871 - 1888 [Section~IsoBimap.] 0. secs (0.u,0.s) Chars 1890 - 1916 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) @@ -34,7 +34,7 @@ Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0.001 secs (0.001u,0.s) Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0.001 secs (0.001u,0.s) Chars 2402 - 2408 [Proof.] 0. secs (0.u,0.s) Chars 2411 - 2415 [(red).] 0. secs (0.u,0.s) -Chars 2418 - 2478 [(rewrite~bimap_cat,~(semi_iso~...] 0.006 secs (0.004u,0.001s) +Chars 2418 - 2478 [(rewrite~bimap_cat,~(semi_iso~...] 0.006 secs (0.005u,0.001s) Chars 2481 - 2493 [reflexivity.] 0. secs (0.u,0.s) Chars 2494 - 2498 [Qed.] 0.001 secs (0.u,0.s) Chars 2500 - 2513 [End~IsoBimap.] 0. secs (0.u,0.s) @@ -50,7 +50,7 @@ Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 2879 - 2936 [Lemma~initial_unique~:~forall~...] 0. secs (0.u,0.s) Chars 2937 - 2943 [Proof.] 0. secs (0.u,0.s) Chars 2946 - 2953 [(intros).] 0. secs (0.u,0.s) -Chars 2956 - 3003 [(rewrite~(initial_object~f),~(...] 0.01 secs (0.009u,0.s) +Chars 2956 - 3003 [(rewrite~(initial_object~f),~(...] 0.01 secs (0.009u,0.001s) Chars 3006 - 3018 [reflexivity.] 0. secs (0.u,0.s) Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) Chars 3025 - 3043 [Context~{t~:~obj}.] 0. secs (0.u,0.s) @@ -98,11 +98,11 @@ Chars 4639 - 4683 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.002u,0.s) Chars 4684 - 4688 [Qed.] 0. secs (0.u,0.s) Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 4804 - 4810 [Proof.] 0. secs (0.u,0.s) -Chars 4813 - 4857 [(rewrite~<-~cat_assoc,~case_in...] 0.001 secs (0.001u,0.s) +Chars 4813 - 4857 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.002u,0.s) Chars 4858 - 4862 [Qed.] 0. secs (0.u,0.s) Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) Chars 5026 - 5032 [Proof.] 0. secs (0.u,0.s) -Chars 5035 - 5078 [(apply~case_universal;~rewrite...] 0.001 secs (0.001u,0.s) +Chars 5035 - 5078 [(apply~case_universal;~rewrite...] 0.002 secs (0.002u,0.s) Chars 5081 - 5082 [-] 0. secs (0.u,0.s) Chars 5083 - 5113 [(rewrite~case_inl;~reflexivity).] 0.001 secs (0.001u,0.s) Chars 5116 - 5117 [-] 0. secs (0.u,0.s) @@ -130,7 +130,7 @@ Chars 6132 - 6168 [(intros;~unfold~swap,~Swap_Cop...] 0. secs (0.u,0.s) Chars 6171 - 6208 [(rewrite~cat_case,~inr_case,~i...] 0.003 secs (0.003u,0.s) Chars 6211 - 6223 [reflexivity.] 0. secs (0.u,0.s) Chars 6224 - 6228 [Qed.] 0. secs (0.u,0.s) -Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0. secs (0.u,0.s) +Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0.001 secs (0.001u,0.s) Chars 6282 - 6288 [Proof.] 0. secs (0.u,0.s) Chars 6289 - 6304 [(apply~case_inr).] 0. secs (0.u,0.s) Chars 6305 - 6309 [Qed.] 0. secs (0.u,0.s) @@ -152,11 +152,11 @@ Chars 6741 - 6756 [(apply~case_inl).] 0. secs (0.u,0.s) Chars 6757 - 6761 [Qed.] 0. secs (0.u,0.s) Chars 6763 - 6922 [Lemma~bimap_case~{a}~{a'}~{b}~...] 0.001 secs (0.001u,0.s) Chars 6923 - 6929 [Proof.] 0. secs (0.u,0.s) -Chars 6930 - 6940 [cat_auto'.] 0.065 secs (0.057u,0.008s) +Chars 6930 - 6940 [cat_auto'.] 0.068 secs (0.058u,0.009s) Chars 6941 - 6945 [Qed.] 0.002 secs (0.002u,0.s) Chars 6947 - 7024 [Lemma~inl_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7025 - 7031 [Proof.] 0. secs (0.u,0.s) -Chars 7032 - 7042 [cat_auto'.] 0.015 secs (0.015u,0.s) +Chars 7032 - 7042 [cat_auto'.] 0.016 secs (0.016u,0.s) Chars 7043 - 7047 [Qed.] 0. secs (0.u,0.s) Chars 7049 - 7121 [Lemma~inl_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) @@ -164,8 +164,8 @@ Chars 7129 - 7139 [cat_auto'.] 0.009 secs (0.009u,0.s) Chars 7140 - 7144 [Qed.] 0. secs (0.u,0.s) Chars 7146 - 7223 [Lemma~inr_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7224 - 7230 [Proof.] 0. secs (0.u,0.s) -Chars 7231 - 7241 [cat_auto'.] 0.019 secs (0.018u,0.s) -Chars 7242 - 7246 [Qed.] 0. secs (0.u,0.s) +Chars 7231 - 7241 [cat_auto'.] 0.019 secs (0.019u,0.s) +Chars 7242 - 7246 [Qed.] 0.001 secs (0.001u,0.s) Chars 7248 - 7320 [Lemma~inr_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7321 - 7327 [Proof.] 0. secs (0.u,0.s) Chars 7328 - 7338 [cat_auto'.] 0.013 secs (0.013u,0.s) @@ -186,34 +186,34 @@ Chars 7758 - 7773 [(apply~case_eta).] 0. secs (0.u,0.s) Chars 7774 - 7778 [Qed.] 0. secs (0.u,0.s) Chars 7780 - 7832 [#[global]~Instance~BimapCat_Co...] 0. secs (0.u,0.s) Chars 7833 - 7839 [Proof.] 0. secs (0.u,0.s) -Chars 7840 - 7850 [cat_auto'.] 0.104 secs (0.104u,0.s) -Chars 7851 - 7855 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7840 - 7850 [cat_auto'.] 0.114 secs (0.109u,0.004s) +Chars 7851 - 7855 [Qed.] 0.003 secs (0.002u,0.s) Chars 7857 - 7911 [#[global]~Instance~Bifunctor_C...] 0. secs (0.u,0.s) Chars 7912 - 7918 [Proof.] 0. secs (0.u,0.s) Chars 7921 - 7952 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 7953 - 7957 [Qed.] 0. secs (0.u,0.s) Chars 7996 - 8080 [#[global]~Instance~SwapInvolut...] 0. secs (0.u,0.s) Chars 8081 - 8087 [Proof.] 0. secs (0.u,0.s) -Chars 8088 - 8098 [cat_auto'.] 0.032 secs (0.032u,0.s) +Chars 8088 - 8098 [cat_auto'.] 0.033 secs (0.032u,0.s) Chars 8099 - 8103 [Qed.] 0.001 secs (0.001u,0.s) Chars 8142 - 8232 [#[global]~Instance~AssocRMono_...] 0. secs (0.u,0.s) Chars 8233 - 8239 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8250 [cat_auto'.] 0.167 secs (0.167u,0.s) +Chars 8240 - 8250 [cat_auto'.] 0.168 secs (0.167u,0.s) Chars 8251 - 8255 [Qed.] 0.005 secs (0.005u,0.s) Chars 8257 - 8347 [#[global]~Instance~AssocLMono_...] 0. secs (0.u,0.s) Chars 8348 - 8354 [Proof.] 0. secs (0.u,0.s) -Chars 8355 - 8365 [cat_auto'.] 0.164 secs (0.164u,0.s) -Chars 8366 - 8370 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8355 - 8365 [cat_auto'.] 0.166 secs (0.164u,0.s) +Chars 8366 - 8370 [Qed.] 0.005 secs (0.005u,0.s) Chars 8372 - 8390 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 8391 - 8425 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 8426 - 8472 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 8507 - 8589 [#[global]~Instance~UnitLMono_C...] 0. secs (0.u,0.s) Chars 8590 - 8596 [Proof.] 0. secs (0.u,0.s) -Chars 8597 - 8607 [cat_auto'.] 0.025 secs (0.025u,0.s) +Chars 8597 - 8607 [cat_auto'.] 0.026 secs (0.026u,0.s) Chars 8608 - 8612 [Qed.] 0.001 secs (0.001u,0.s) Chars 8650 - 8732 [#[global]~Instance~UnitRMono_C...] 0. secs (0.u,0.s) Chars 8733 - 8739 [Proof.] 0. secs (0.u,0.s) -Chars 8740 - 8750 [cat_auto'.] 0.026 secs (0.026u,0.s) +Chars 8740 - 8750 [cat_auto'.] 0.027 secs (0.027u,0.s) Chars 8751 - 8755 [Qed.] 0.001 secs (0.001u,0.s) Chars 8757 - 8838 [#[global]~Instance~UnitLEpi_Co...] 0. secs (0.u,0.s) Chars 8839 - 8845 [Proof.] 0. secs (0.u,0.s) @@ -233,51 +233,51 @@ Chars 9111 - 9132 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 9133 - 9137 [Qed.] 0. secs (0.u,0.s) Chars 9139 - 9201 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 9202 - 9208 [Proof.] 0. secs (0.u,0.s) -Chars 9209 - 9219 [cat_auto'.] 0.057 secs (0.056u,0.s) -Chars 9220 - 9224 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9209 - 9219 [cat_auto'.] 0.059 secs (0.059u,0.s) +Chars 9220 - 9224 [Qed.] 0.003 secs (0.002u,0.s) Chars 9226 - 9290 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 9291 - 9297 [Proof.] 0. secs (0.u,0.s) Chars 9298 - 9308 [cat_auto'.] 0.01 secs (0.01u,0.s) -Chars 9309 - 9313 [Qed.] 0. secs (0.u,0.s) +Chars 9309 - 9313 [Qed.] 0.001 secs (0.u,0.s) Chars 9376 - 9434 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 9435 - 9441 [Proof.] 0. secs (0.u,0.s) -Chars 9442 - 9452 [cat_auto'.] 0.187 secs (0.187u,0.s) +Chars 9442 - 9452 [cat_auto'.] 0.192 secs (0.19u,0.s) Chars 9453 - 9457 [Qed.] 0.006 secs (0.006u,0.s) Chars 9459 - 9519 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 9520 - 9526 [Proof.] 0. secs (0.u,0.s) -Chars 9527 - 9537 [cat_auto'.] 1.209 secs (1.122u,0.006s) -Chars 9538 - 9542 [Qed.] 0.034 secs (0.034u,0.s) +Chars 9527 - 9537 [cat_auto'.] 1.157 secs (1.14u,0.004s) +Chars 9538 - 9542 [Qed.] 0.035 secs (0.035u,0.s) Chars 9544 - 9598 [#[global]~Instance~Monoidal_Co...] 0. secs (0.u,0.s) Chars 9599 - 9605 [Proof.] 0. secs (0.u,0.s) Chars 9608 - 9660 [(constructor;~idtac~+~construc...] 0.004 secs (0.004u,0.s) Chars 9661 - 9665 [Qed.] 0. secs (0.u,0.s) Chars 9667 - 9727 [#[global]~Instance~AssocLAssoc...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9735 - 9745 [cat_auto'.] 1.127 secs (1.113u,0.003s) -Chars 9746 - 9750 [Qed.] 0.074 secs (0.037u,0.s) +Chars 9735 - 9745 [cat_auto'.] 1.12 secs (1.112u,0.003s) +Chars 9746 - 9750 [Qed.] 0.034 secs (0.034u,0.s) Chars 9813 - 9869 [#[global]~Instance~SwapUnitL_C...] 0. secs (0.u,0.s) Chars 9870 - 9876 [Proof.] 0. secs (0.u,0.s) -Chars 9877 - 9887 [cat_auto'.] 0.04 secs (0.04u,0.s) +Chars 9877 - 9887 [cat_auto'.] 0.039 secs (0.039u,0.s) Chars 9888 - 9892 [Qed.] 0.001 secs (0.001u,0.s) Chars 9894 - 9950 [#[global]~Instance~SwapAssocR_...] 0. secs (0.u,0.s) Chars 9951 - 9957 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9968 [cat_auto'.] 0.726 secs (0.7u,0.001s) -Chars 9969 - 9973 [Qed.] 0.022 secs (0.022u,0.s) +Chars 9958 - 9968 [cat_auto'.] 0.677 secs (0.67u,0.003s) +Chars 9969 - 9973 [Qed.] 0.021 secs (0.021u,0.s) Chars 9975 - 10031 [#[global]~Instance~SwapAssocL_...] 0. secs (0.u,0.s) Chars 10032 - 10038 [Proof.] 0. secs (0.u,0.s) -Chars 10039 - 10049 [cat_auto'.] 0.682 secs (0.68u,0.001s) +Chars 10039 - 10049 [cat_auto'.] 0.664 secs (0.661u,0.001s) Chars 10050 - 10054 [Qed.] 0.02 secs (0.02u,0.s) Chars 10056 - 10116 [#[global]~Instance~SymMonoidal...] 0. secs (0.u,0.s) Chars 10117 - 10123 [Proof.] 0. secs (0.u,0.s) Chars 10126 - 10157 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 10158 - 10162 [Qed.] 0. secs (0.u,0.s) -Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.002 secs (0.002u,0.s) +Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.001 secs (0.001u,0.s) Chars 10270 - 10276 [Proof.] 0. secs (0.u,0.s) -Chars 10277 - 10287 [cat_auto'.] 0.113 secs (0.113u,0.s) +Chars 10277 - 10287 [cat_auto'.] 0.114 secs (0.113u,0.s) Chars 10288 - 10292 [Qed.] 0.003 secs (0.003u,0.s) Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) Chars 10424 - 10430 [Proof.] 0. secs (0.u,0.s) -Chars 10431 - 10441 [cat_auto'.] 0.1 secs (0.1u,0.s) +Chars 10431 - 10441 [cat_auto'.] 0.099 secs (0.098u,0.s) Chars 10442 - 10446 [Qed.] 0.003 secs (0.003u,0.s) Chars 10448 - 10467 [End~CoproductFacts.] 0.002 secs (0.002u,0.s) Chars 10490 - 10511 [Section~ProductFacts.] 0. secs (0.u,0.s) @@ -339,7 +339,7 @@ Chars 13369 - 13403 [(intros;~unfold~swap,~Swap_Pro...] 0. secs (0.u,0.s) Chars 13406 - 13443 [(rewrite~pair_cat,~pair_fst,~p...] 0.003 secs (0.003u,0.s) Chars 13448 - 13460 [reflexivity.] 0. secs (0.u,0.s) Chars 13461 - 13465 [Qed.] 0. secs (0.u,0.s) -Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) +Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0.001 secs (0.001u,0.s) Chars 13519 - 13525 [Proof.] 0. secs (0.u,0.s) Chars 13526 - 13541 [(apply~pair_snd).] 0. secs (0.u,0.s) Chars 13542 - 13546 [Qed.] 0. secs (0.u,0.s) @@ -361,8 +361,8 @@ Chars 13978 - 13993 [(apply~pair_snd).] 0. secs (0.u,0.s) Chars 13994 - 13998 [Qed.] 0. secs (0.u,0.s) Chars 14000 - 14157 [Lemma~pair_bimap~{a}~{b}~{b'}~...] 0.001 secs (0.001u,0.s) Chars 14158 - 14164 [Proof.] 0. secs (0.u,0.s) -Chars 14165 - 14180 [cat_auto_prod'.] 0.063 secs (0.062u,0.s) -Chars 14181 - 14185 [Qed.] 0.002 secs (0.002u,0.s) +Chars 14165 - 14180 [cat_auto_prod'.] 0.061 secs (0.061u,0.s) +Chars 14181 - 14185 [Qed.] 0.001 secs (0.001u,0.s) Chars 14187 - 14259 [Lemma~assoc_r_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14260 - 14266 [Proof.] 0. secs (0.u,0.s) Chars 14267 - 14282 [cat_auto_prod'.] 0.009 secs (0.009u,0.s) @@ -377,13 +377,13 @@ Chars 14476 - 14491 [cat_auto_prod'.] 0.017 secs (0.017u,0.s) Chars 14492 - 14496 [Qed.] 0.001 secs (0.001u,0.s) Chars 14499 - 14576 [Lemma~assoc_r_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14577 - 14583 [Proof.] 0. secs (0.u,0.s) -Chars 14584 - 14599 [cat_auto_prod'.] 0.043 secs (0.023u,0.s) +Chars 14584 - 14599 [cat_auto_prod'.] 0.022 secs (0.022u,0.s) Chars 14600 - 14604 [Qed.] 0.001 secs (0.001u,0.s) -Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0.004 secs (0.001u,0.s) +Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0.001 secs (0.001u,0.s) Chars 14907 - 14913 [Proof.] 0. secs (0.u,0.s) Chars 14916 - 14947 [(intros~ac~ac'~eqac~bd~bd'~eqbd).] 0. secs (0.u,0.s) Chars 14950 - 14978 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) -Chars 14981 - 15013 [(rewrite~eqac,~eqbd;~reflexivi...] 0.02 secs (0.005u,0.s) +Chars 14981 - 15013 [(rewrite~eqac,~eqbd;~reflexivi...] 0.004 secs (0.004u,0.s) Chars 15014 - 15018 [Qed.] 0.001 secs (0.001u,0.s) Chars 15020 - 15061 [Instance~BimapId_Product~:~(Bi...] 0. secs (0.u,0.s) Chars 15062 - 15068 [Proof.] 0. secs (0.u,0.s) @@ -395,37 +395,37 @@ Chars 15148 - 15163 [(apply~pair_eta).] 0. secs (0.u,0.s) Chars 15164 - 15168 [Qed.] 0. secs (0.u,0.s) Chars 15170 - 15213 [Instance~BimapCat_Product~:~(B...] 0. secs (0.u,0.s) Chars 15214 - 15220 [Proof.] 0. secs (0.u,0.s) -Chars 15221 - 15236 [cat_auto_prod'.] 0.112 secs (0.111u,0.s) +Chars 15221 - 15236 [cat_auto_prod'.] 0.107 secs (0.107u,0.s) Chars 15237 - 15241 [Qed.] 0.002 secs (0.002u,0.s) Chars 15243 - 15288 [Instance~Bifunctor_Product~:~(...] 0. secs (0.u,0.s) Chars 15289 - 15295 [Proof.] 0. secs (0.u,0.s) -Chars 15298 - 15329 [(constructor;~typeclasses~eauto).] 0.002 secs (0.002u,0.s) +Chars 15298 - 15329 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 15330 - 15334 [Qed.] 0. secs (0.u,0.s) Chars 15373 - 15448 [Instance~SwapInvolutive_Produc...] 0. secs (0.u,0.s) Chars 15449 - 15455 [Proof.] 0. secs (0.u,0.s) -Chars 15456 - 15471 [cat_auto_prod'.] 0.045 secs (0.045u,0.s) +Chars 15456 - 15471 [cat_auto_prod'.] 0.043 secs (0.043u,0.s) Chars 15472 - 15476 [Qed.] 0.001 secs (0.001u,0.s) Chars 15515 - 15596 [Instance~AssocRMono_Product~~{...] 0. secs (0.u,0.s) Chars 15597 - 15603 [Proof.] 0. secs (0.u,0.s) -Chars 15604 - 15619 [cat_auto_prod'.] 0.211 secs (0.21u,0.s) +Chars 15604 - 15619 [cat_auto_prod'.] 0.201 secs (0.2u,0.s) Chars 15620 - 15624 [Qed.] 0.004 secs (0.004u,0.s) Chars 15626 - 15707 [Instance~AssocLMono_Product~~{...] 0. secs (0.u,0.s) Chars 15708 - 15714 [Proof.] 0. secs (0.u,0.s) -Chars 15715 - 15730 [cat_auto_prod'.] 0.206 secs (0.205u,0.s) -Chars 15731 - 15735 [Qed.] 0.005 secs (0.005u,0.s) +Chars 15715 - 15730 [cat_auto_prod'.] 0.199 secs (0.198u,0.s) +Chars 15731 - 15735 [Qed.] 0.004 secs (0.004u,0.s) Chars 15737 - 15755 [Context~(t~:~obj).] 0. secs (0.u,0.s) Chars 15756 - 15792 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) Chars 15793 - 15841 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) Chars 15874 - 15947 [Instance~UnitLMono_Product~~{a...] 0. secs (0.u,0.s) Chars 15948 - 15954 [Proof.] 0. secs (0.u,0.s) -Chars 15955 - 15970 [cat_auto_prod'.] 0.041 secs (0.04u,0.s) +Chars 15955 - 15970 [cat_auto_prod'.] 0.039 secs (0.038u,0.s) Chars 15971 - 15995 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 15996 - 16008 [reflexivity.] 0. secs (0.u,0.s) Chars 16009 - 16013 [Qed.] 0.001 secs (0.001u,0.s) Chars 16051 - 16131 [#[global]~Instance~UnitRMono_P...] 0. secs (0.u,0.s) Chars 16132 - 16138 [Proof.] 0. secs (0.u,0.s) -Chars 16139 - 16154 [cat_auto_prod'.] 0.04 secs (0.04u,0.s) -Chars 16155 - 16179 [(rewrite~terminal_unique).] 0.001 secs (0.001u,0.s) +Chars 16139 - 16154 [cat_auto_prod'.] 0.038 secs (0.038u,0.s) +Chars 16155 - 16179 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 16180 - 16192 [reflexivity.] 0. secs (0.u,0.s) Chars 16193 - 16197 [Qed.] 0.001 secs (0.001u,0.s) Chars 16199 - 16278 [#[global]~Instance~UnitLEpi_Pr...] 0. secs (0.u,0.s) @@ -450,25 +450,25 @@ Chars 16652 - 16667 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) Chars 16668 - 16672 [Qed.] 0. secs (0.u,0.s) Chars 16674 - 16729 [Instance~UnitL'Natural_Product...] 0. secs (0.u,0.s) Chars 16730 - 16736 [Proof.] 0. secs (0.u,0.s) -Chars 16737 - 16752 [cat_auto_prod'.] 0.082 secs (0.081u,0.s) +Chars 16737 - 16752 [cat_auto_prod'.] 0.076 secs (0.076u,0.s) Chars 16753 - 16777 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 16778 - 16790 [reflexivity.] 0. secs (0.u,0.s) Chars 16791 - 16795 [Qed.] 0.002 secs (0.002u,0.s) Chars 16856 - 16905 [Instance~AssocRUnit_Product~:~...] 0. secs (0.u,0.s) Chars 16906 - 16912 [Proof.] 0. secs (0.u,0.s) -Chars 16913 - 16928 [cat_auto_prod'.] 0.14 secs (0.136u,0.s) +Chars 16913 - 16928 [cat_auto_prod'.] 0.129 secs (0.128u,0.s) Chars 16929 - 16933 [Qed.] 0.003 secs (0.003u,0.s) Chars 16935 - 16986 [Instance~AssocRAssocR_Product~...] 0. secs (0.u,0.s) Chars 16987 - 16993 [Proof.] 0. secs (0.u,0.s) -Chars 16994 - 17009 [cat_auto_prod'.] 1.313 secs (1.308u,0.002s) -Chars 17010 - 17014 [Qed.] 0.035 secs (0.035u,0.s) +Chars 16994 - 17009 [cat_auto_prod'.] 1.264 secs (1.258u,0.003s) +Chars 17010 - 17014 [Qed.] 0.034 secs (0.034u,0.s) Chars 17016 - 17061 [Instance~Monoidal_Product~:~(M...] 0. secs (0.u,0.s) Chars 17062 - 17068 [Proof.] 0. secs (0.u,0.s) -Chars 17071 - 17123 [(constructor;~idtac~+~construc...] 0.005 secs (0.005u,0.s) +Chars 17071 - 17123 [(constructor;~idtac~+~construc...] 0.006 secs (0.006u,0.s) Chars 17124 - 17128 [Qed.] 0. secs (0.u,0.s) Chars 17130 - 17181 [Instance~AssocLAssocL_Product~...] 0. secs (0.u,0.s) Chars 17182 - 17188 [Proof.] 0. secs (0.u,0.s) -Chars 17189 - 17204 [cat_auto_prod'.] 1.307 secs (1.305u,0.001s) +Chars 17189 - 17204 [cat_auto_prod'.] 1.307 secs (1.289u,0.004s) Chars 17205 - 17209 [Qed.] 0.037 secs (0.037u,0.s) Chars 17272 - 17319 [Instance~SwapUnitL_Product~:~(...] 0. secs (0.u,0.s) Chars 17320 - 17326 [Proof.] 0. secs (0.u,0.s) @@ -476,23 +476,23 @@ Chars 17327 - 17342 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) Chars 17343 - 17347 [Qed.] 0. secs (0.u,0.s) Chars 17349 - 17396 [Instance~SwapAssocR_Product~:~...] 0. secs (0.u,0.s) Chars 17397 - 17403 [Proof.] 0. secs (0.u,0.s) -Chars 17404 - 17419 [cat_auto_prod'.] 0.73 secs (0.729u,0.s) -Chars 17420 - 17424 [Qed.] 0.021 secs (0.021u,0.s) +Chars 17404 - 17419 [cat_auto_prod'.] 0.746 secs (0.744u,0.001s) +Chars 17420 - 17424 [Qed.] 0.022 secs (0.021u,0.s) Chars 17426 - 17473 [Instance~SwapAssocL_Product~:~...] 0. secs (0.u,0.s) Chars 17474 - 17480 [Proof.] 0. secs (0.u,0.s) -Chars 17481 - 17496 [cat_auto_prod'.] 0.724 secs (0.722u,0.001s) -Chars 17497 - 17501 [Qed.] 0.021 secs (0.021u,0.s) +Chars 17481 - 17496 [cat_auto_prod'.] 0.754 secs (0.751u,0.002s) +Chars 17497 - 17501 [Qed.] 0.023 secs (0.023u,0.s) Chars 17503 - 17554 [Instance~SymMonoidal_Product~:...] 0. secs (0.u,0.s) Chars 17555 - 17561 [Proof.] 0. secs (0.u,0.s) Chars 17564 - 17595 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 17596 - 17600 [Qed.] 0. secs (0.u,0.s) -Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.001 secs (0.001u,0.s) +Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.002 secs (0.002u,0.s) Chars 17713 - 17719 [Proof.] 0. secs (0.u,0.s) -Chars 17720 - 17735 [cat_auto_prod'.] 0.12 secs (0.12u,0.s) +Chars 17720 - 17735 [cat_auto_prod'.] 0.127 secs (0.126u,0.s) Chars 17736 - 17740 [Qed.] 0.003 secs (0.003u,0.s) Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.002 secs (0.002u,0.s) Chars 17877 - 17883 [Proof.] 0. secs (0.u,0.s) -Chars 17884 - 17899 [cat_auto_prod'.] 0.108 secs (0.107u,0.s) +Chars 17884 - 17899 [cat_auto_prod'.] 0.113 secs (0.112u,0.s) Chars 17900 - 17904 [Qed.] 0.003 secs (0.003u,0.s) Chars 17906 - 17923 [End~ProductFacts.] 0.001 secs (0.001u,0.s) Chars 17926 - 18039 [Ltac~~cat_auto_step~:=~~~repea...] 0. secs (0.u,0.s) @@ -508,7 +508,7 @@ Chars 18449 - 18535 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) Chars 18536 - 18576 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) Chars 18578 - 18610 [Context~{Iter_bif~:~Iter~C~bif}.] 0. secs (0.u,0.s) Chars 18611 - 18651 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) -Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0. secs (0.u,0.s) +Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0.001 secs (0.u,0.s) Chars 18754 - 18760 [Proof.] 0. secs (0.u,0.s) Chars 18763 - 18776 [(repeat~intro).] 0. secs (0.u,0.s) Chars 18779 - 18791 [(unfold~loop).] 0. secs (0.u,0.s) @@ -520,13 +520,13 @@ Chars 19223 - 19229 [Proof.] 0. secs (0.u,0.s) Chars 19232 - 19244 [(unfold~loop).] 0. secs (0.u,0.s) Chars 19247 - 19382 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) Chars 19385 - 19386 [-] 0. secs (0.u,0.s) -Chars 19387 - 19410 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) -Chars 19415 - 19424 [cat_auto.] 0.171 secs (0.171u,0.s) +Chars 19387 - 19410 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) +Chars 19415 - 19424 [cat_auto.] 0.183 secs (0.181u,0.s) Chars 19425 - 19444 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 19445 - 19454 [cat_auto.] 0.098 secs (0.098u,0.s) +Chars 19445 - 19454 [cat_auto.] 0.12 secs (0.107u,0.s) Chars 19457 - 19458 [-] 0. secs (0.u,0.s) -Chars 19459 - 19468 [cat_auto.] 0.093 secs (0.093u,0.s) -Chars 19469 - 19473 [Qed.] 0.013 secs (0.013u,0.s) +Chars 19459 - 19468 [cat_auto.] 0.098 secs (0.097u,0.s) +Chars 19469 - 19473 [Qed.] 0.014 secs (0.014u,0.s) Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.002 secs (0.002u,0.s) Chars 19843 - 19849 [Proof.] 0. secs (0.u,0.s) Chars 19852 - 19864 [(unfold~loop).] 0. secs (0.u,0.s) @@ -534,7 +534,7 @@ Chars 19867 - 19885 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) Chars 19886 - 19900 [cat_auto_step.] 0.001 secs (0.001u,0.s) Chars 19903 - 19924 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) Chars 19925 - 19939 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 19942 - 19995 [(rewrite~!cat_assoc,~!bimap_ca...] 0.025 secs (0.025u,0.s) +Chars 19942 - 19995 [(rewrite~!cat_assoc,~!bimap_ca...] 0.026 secs (0.026u,0.s) Chars 19998 - 20010 [reflexivity.] 0. secs (0.u,0.s) Chars 20011 - 20015 [Qed.] 0.002 secs (0.002u,0.s) Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.002 secs (0.002u,0.s) @@ -543,12 +543,12 @@ Chars 20169 - 20181 [(unfold~loop).] 0. secs (0.u,0.s) Chars 20184 - 20319 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) Chars 20322 - 20323 [-] 0. secs (0.u,0.s) Chars 20324 - 20347 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) -Chars 20352 - 20361 [cat_auto.] 0.175 secs (0.174u,0.s) +Chars 20352 - 20361 [cat_auto.] 0.181 secs (0.18u,0.s) Chars 20362 - 20381 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 20382 - 20391 [cat_auto.] 0.155 secs (0.155u,0.s) +Chars 20382 - 20391 [cat_auto.] 0.158 secs (0.158u,0.s) Chars 20394 - 20395 [-] 0. secs (0.u,0.s) -Chars 20396 - 20405 [cat_auto.] 0.094 secs (0.094u,0.s) -Chars 20406 - 20410 [Qed.] 0.017 secs (0.017u,0.s) +Chars 20396 - 20405 [cat_auto.] 0.098 secs (0.097u,0.s) +Chars 20406 - 20410 [Qed.] 0.016 secs (0.016u,0.s) Chars 20412 - 20430 [Context~{i~:~obj}.] 0. secs (0.u,0.s) Chars 20431 - 20465 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 20466 - 20512 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) @@ -556,9 +556,9 @@ Chars 20514 - 20613 [Lemma~loop_vanishing_1~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 20614 - 20620 [Proof.] 0. secs (0.u,0.s) Chars 20623 - 20635 [(unfold~loop).] 0. secs (0.u,0.s) Chars 20638 - 20658 [(rewrite~iter_unfold).] 0.002 secs (0.002u,0.s) -Chars 20659 - 20668 [cat_auto.] 0.068 secs (0.068u,0.s) +Chars 20659 - 20668 [cat_auto.] 0.072 secs (0.071u,0.s) Chars 20669 - 20683 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20684 - 20693 [cat_auto.] 0.086 secs (0.086u,0.s) +Chars 20684 - 20693 [cat_auto.] 0.088 secs (0.087u,0.s) Chars 20694 - 20698 [Qed.] 0.004 secs (0.004u,0.s) Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.003 secs (0.003u,0.s) Chars 21137 - 21143 [Proof.] 0. secs (0.u,0.s) @@ -567,53 +567,53 @@ Chars 21161 - 21291 [(transitivity~~~(inr_~>>>~inr_...] 0.002 secs (0.002u,0.s) Chars 21294 - 21295 [-] 0. secs (0.u,0.s) Chars 21296 - 21441 [(transitivity~~~(inr_~>>>~~~~i...] 0.003 secs (0.003u,0.s) Chars 21446 - 21447 [+] 0. secs (0.u,0.s) -Chars 21448 - 21457 [cat_auto.] 0.168 secs (0.168u,0.s) +Chars 21448 - 21457 [cat_auto.] 0.174 secs (0.173u,0.s) Chars 21458 - 21477 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) Chars 21478 - 21499 [(rewrite~iter_natural).] 0.002 secs (0.002u,0.s) Chars 21506 - 21520 [cat_auto_step.] 0. secs (0.u,0.s) Chars 21521 - 21539 [(rewrite~cat_assoc).] 0.002 secs (0.002u,0.s) Chars 21540 - 21554 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 21561 - 21570 [cat_auto.] 0.171 secs (0.171u,0.s) +Chars 21561 - 21570 [cat_auto.] 0.178 secs (0.178u,0.s) Chars 21575 - 21576 [+] 0. secs (0.u,0.s) -Chars 21577 - 21600 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) -Chars 21607 - 21635 [(rewrite~cat_assoc,~case_inl).] 0.009 secs (0.009u,0.s) -Chars 21642 - 21663 [(rewrite~iter_natural).] 0.007 secs (0.007u,0.s) -Chars 21670 - 21679 [cat_auto.] 0.238 secs (0.238u,0.s) +Chars 21577 - 21600 [(rewrite~iter_dinatural).] 0.004 secs (0.004u,0.s) +Chars 21607 - 21635 [(rewrite~cat_assoc,~case_inl).] 0.014 secs (0.012u,0.s) +Chars 21642 - 21663 [(rewrite~iter_natural).] 0.011 secs (0.009u,0.s) +Chars 21670 - 21679 [cat_auto.] 0.253 secs (0.25u,0.s) Chars 21680 - 21699 [(do~3~cat_auto_step).] 0.004 secs (0.004u,0.s) -Chars 21706 - 21715 [cat_auto.] 0.46 secs (0.459u,0.s) +Chars 21706 - 21715 [cat_auto.] 0.472 secs (0.47u,0.001s) Chars 21719 - 21720 [-] 0. secs (0.u,0.s) -Chars 21721 - 21745 [(rewrite~iter_codiagonal).] 0.003 secs (0.003u,0.s) -Chars 21750 - 21806 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.018u,0.s) +Chars 21721 - 21745 [(rewrite~iter_codiagonal).] 0.004 secs (0.003u,0.s) +Chars 21750 - 21806 [(rewrite~(cat_assoc~_~(bimap~_...] 0.02 secs (0.02u,0.s) Chars 21811 - 21954 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) Chars 21959 - 21960 [+] 0. secs (0.u,0.s) Chars 21961 - 21984 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) -Chars 21991 - 22000 [cat_auto.] 0.354 secs (0.354u,0.s) +Chars 21991 - 22000 [cat_auto.] 0.362 secs (0.36u,0.001s) Chars 22001 - 22020 [(do~2~cat_auto_step).] 0.003 secs (0.003u,0.s) -Chars 22021 - 22030 [cat_auto.] 0.523 secs (0.523u,0.s) +Chars 22021 - 22030 [cat_auto.] 0.53 secs (0.528u,0.001s) Chars 22035 - 22036 [+] 0. secs (0.u,0.s) -Chars 22037 - 22046 [cat_auto.] 0.191 secs (0.191u,0.s) -Chars 22047 - 22051 [Qed.] 0.078 secs (0.078u,0.s) +Chars 22037 - 22046 [cat_auto.] 0.194 secs (0.194u,0.s) +Chars 22047 - 22051 [Qed.] 0.08 secs (0.079u,0.s) Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.003 secs (0.003u,0.s) Chars 22211 - 22217 [Proof.] 0. secs (0.u,0.s) Chars 22220 - 22232 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 22235 - 22244 [cat_auto.] 0.339 secs (0.338u,0.s) +Chars 22235 - 22244 [cat_auto.] 0.342 secs (0.341u,0.001s) Chars 22247 - 22248 [-] 0. secs (0.u,0.s) Chars 22249 - 22438 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) Chars 22444 - 22445 [+] 0. secs (0.u,0.s) Chars 22446 - 22478 [(rewrite~cat_assoc,~iter_natur...] 0.009 secs (0.009u,0.s) -Chars 22485 - 22516 [(do~2~(cat_auto_step;~cat_auto)).] 1.048 secs (1.047u,0.001s) +Chars 22485 - 22516 [(do~2~(cat_auto_step;~cat_auto)).] 1.098 secs (1.082u,0.003s) Chars 22521 - 22522 [+] 0. secs (0.u,0.s) Chars 22523 - 22546 [(rewrite~iter_dinatural).] 0.006 secs (0.006u,0.s) -Chars 22553 - 22584 [(do~3~(cat_auto;~cat_auto_step)).] 2.415 secs (2.411u,0.002s) +Chars 22553 - 22584 [(do~3~(cat_auto;~cat_auto_step)).] 2.502 secs (2.454u,0.004s) Chars 22588 - 22589 [-] 0. secs (0.u,0.s) Chars 22590 - 22610 [(rewrite~iter_unfold).] 0.006 secs (0.006u,0.s) -Chars 22611 - 22620 [cat_auto.] 0.502 secs (0.501u,0.s) -Chars 22621 - 22625 [Qed.] 0.139 secs (0.139u,0.s) +Chars 22611 - 22620 [cat_auto.] 0.514 secs (0.512u,0.001s) +Chars 22621 - 22625 [Qed.] 0.14 secs (0.139u,0.s) Chars 22627 - 22672 [Lemma~loop_yanking~{a}~:~loop~...] 0. secs (0.u,0.s) Chars 22673 - 22679 [Proof.] 0. secs (0.u,0.s) Chars 22682 - 22694 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 22695 - 22717 [(rewrite~2!iter_unfold).] 0.007 secs (0.007u,0.s) -Chars 22718 - 22727 [cat_auto.] 0.154 secs (0.154u,0.s) +Chars 22695 - 22717 [(rewrite~2!iter_unfold).] 0.006 secs (0.006u,0.s) +Chars 22718 - 22727 [cat_auto.] 0.155 secs (0.155u,0.s) Chars 22728 - 22732 [Qed.] 0.007 secs (0.007u,0.s) Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.003 secs (0.003u,0.s) Chars 22928 - 22934 [Proof.] 0. secs (0.u,0.s) @@ -660,31 +660,31 @@ Chars 25257 - 25307 [(do~2~apply~(cat_eq2_l~(bimap~...] 0.001 secs (0.001u,0.s) Chars 25310 - 25397 [(rewrite~<-~cat_assoc,~bimap_c...] 0.029 secs (0.029u,0.s) Chars 25400 - 25473 [(rewrite~<-~(cat_assoc~_~_~ass...] 0.01 secs (0.01u,0.s) Chars 25476 - 25506 [(rewrite~<-~swap_assoc_l~in~Eq).] 0.004 secs (0.004u,0.s) -Chars 25509 - 25547 [(rewrite~(cat_assoc~_~_~assoc_...] 0.003 secs (0.003u,0.s) +Chars 25509 - 25547 [(rewrite~(cat_assoc~_~_~assoc_...] 0.003 secs (0.002u,0.s) Chars 25550 - 25577 [(rewrite~assoc_l_mono~in~Eq).] 0.004 secs (0.004u,0.s) Chars 25580 - 25603 [(rewrite~cat_id_r~in~Eq).] 0.002 secs (0.002u,0.s) Chars 25606 - 25624 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) Chars 25627 - 25638 [assumption.] 0. secs (0.u,0.s) -Chars 25639 - 25643 [Qed.] 0.011 secs (0.011u,0.s) +Chars 25639 - 25643 [Qed.] 0.01 secs (0.01u,0.s) Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.005 secs (0.005u,0.s) Chars 25778 - 25784 [Proof.] 0. secs (0.u,0.s) Chars 25787 - 25796 [symmetry.] 0. secs (0.u,0.s) Chars 25799 - 25826 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) Chars 25829 - 25879 [(do~2~apply~(cat_eq2_r~(bimap~...] 0.001 secs (0.001u,0.s) -Chars 25882 - 25966 [(rewrite~cat_assoc,~bimap_cat,...] 0.031 secs (0.031u,0.s) -Chars 25969 - 26005 [(rewrite~2!(cat_assoc~assoc_l)...] 0.005 secs (0.005u,0.s) +Chars 25882 - 25966 [(rewrite~cat_assoc,~bimap_cat,...] 0.032 secs (0.032u,0.s) +Chars 25969 - 26005 [(rewrite~2!(cat_assoc~assoc_l)...] 0.006 secs (0.006u,0.s) Chars 26008 - 26038 [(rewrite~<-~swap_assoc_r~in~Eq).] 0.005 secs (0.005u,0.s) -Chars 26041 - 26080 [(rewrite~<-~2!(cat_assoc~assoc...] 0.005 secs (0.005u,0.s) +Chars 26041 - 26080 [(rewrite~<-~2!(cat_assoc~assoc...] 0.006 secs (0.006u,0.s) Chars 26083 - 26120 [(rewrite~assoc_l_mono,~cat_id_...] 0.006 secs (0.006u,0.s) Chars 26123 - 26134 [assumption.] 0. secs (0.u,0.s) -Chars 26135 - 26139 [Qed.] 0.01 secs (0.01u,0.s) +Chars 26135 - 26139 [Qed.] 0.009 secs (0.009u,0.s) Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.011 secs (0.011u,0.s) Chars 26438 - 26444 [Proof.] 0. secs (0.u,0.s) -Chars 26447 - 26484 [(rewrite~swap_bimap,~loop_supe...] 0.008 secs (0.007u,0.s) -Chars 26487 - 26533 [(rewrite~loop_natural_left,~lo...] 0.008 secs (0.007u,0.s) +Chars 26447 - 26484 [(rewrite~swap_bimap,~loop_supe...] 0.006 secs (0.006u,0.s) +Chars 26487 - 26533 [(rewrite~loop_natural_left,~lo...] 0.006 secs (0.006u,0.s) Chars 26536 - 26563 [(rewrite~(swap_bimap~cd~ab)).] 0.009 secs (0.009u,0.s) -Chars 26566 - 26588 [(rewrite~<-~!cat_assoc).] 0.033 secs (0.033u,0.s) -Chars 26591 - 26614 [(rewrite~local_rewrite1).] 0.008 secs (0.007u,0.s) +Chars 26566 - 26588 [(rewrite~<-~!cat_assoc).] 0.031 secs (0.031u,0.s) +Chars 26591 - 26614 [(rewrite~local_rewrite1).] 0.007 secs (0.007u,0.s) Chars 26617 - 26637 [(rewrite~2!cat_assoc).] 0.01 secs (0.01u,0.s) Chars 26640 - 26676 [(rewrite~<-~(cat_assoc~swap~as...] 0.006 secs (0.006u,0.s) Chars 26679 - 26702 [(rewrite~local_rewrite2).] 0.005 secs (0.005u,0.s) diff --git a/theories/Basics/CategoryFunctor.v.timing b/theories/Basics/CategoryFunctor.v.timing index 43811659..c1a68a94 100644 --- a/theories/Basics/CategoryFunctor.v.timing +++ b/theories/Basics/CategoryFunctor.v.timing @@ -1,4 +1,4 @@ -Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.002s) Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0.001 secs (0.u,0.s) Chars 135 - 155 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 156 - 183 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisli.v.timing b/theories/Basics/CategoryKleisli.v.timing index b321134d..795f336b 100644 --- a/theories/Basics/CategoryKleisli.v.timing +++ b/theories/Basics/CategoryKleisli.v.timing @@ -1,6 +1,6 @@ -Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) Chars 701 - 750 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.003 secs (0.003u,0.s) +Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) Chars 877 - 909 [Implicit~Type~m~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 910 - 938 [Implicit~Types~a~b~c~:~Type.] 0. secs (0.u,0.s) Chars 940 - 984 [Definition~Kleisli~m~a~b~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisliFacts.v.timing b/theories/Basics/CategoryKleisliFacts.v.timing index 38728d5d..da5ad8b9 100644 --- a/theories/Basics/CategoryKleisliFacts.v.timing +++ b/theories/Basics/CategoryKleisliFacts.v.timing @@ -1,4 +1,4 @@ -Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.008u,0.002s) +Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.002s) Chars 165 - 214 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) Chars 379 - 399 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -43,7 +43,7 @@ Chars 1330 - 1345 [(intros~?~?~?~?).] 0. secs (0.u,0.s) Chars 1346 - 1358 [(unfold~pure).] 0. secs (0.u,0.s) Chars 1359 - 1369 [(rewrite~H).] 0. secs (0.u,0.s) Chars 1370 - 1382 [reflexivity.] 0. secs (0.u,0.s) -Chars 1385 - 1389 [Qed.] 0.001 secs (0.u,0.s) +Chars 1385 - 1389 [Qed.] 0.001 secs (0.001u,0.s) Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0.001 secs (0.u,0.s) Chars 1912 - 1918 [Proof.] 0. secs (0.u,0.s) Chars 1921 - 1934 [(repeat~intro).] 0. secs (0.u,0.s) @@ -53,8 +53,8 @@ Chars 1989 - 1993 [Qed.] 0. secs (0.u,0.s) Chars 1995 - 2021 [#[local]~Opaque~bind~ret~eq1.] 0. secs (0.u,0.s) Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) Chars 2152 - 2158 [Proof.] 0. secs (0.u,0.s) -Chars 2161 - 2242 [(compute;~intros~x;~destruct~x...] 0.006 secs (0.005u,0.001s) -Chars 2243 - 2247 [Qed.] 0.013 secs (0.012u,0.001s) +Chars 2161 - 2242 [(compute;~intros~x;~destruct~x...] 0.007 secs (0.005u,0.001s) +Chars 2243 - 2247 [Qed.] 0.014 secs (0.012u,0.001s) Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) Chars 2379 - 2460 [(compute;~intros~x;~destruct~x...] 0.004 secs (0.004u,0.s) @@ -119,7 +119,7 @@ Chars 4177 - 4181 [Qed.] 0.001 secs (0.001u,0.s) Chars 4183 - 4317 [Fact~compose_pure_r~{A}~{B}~{C...] 0. secs (0.u,0.s) Chars 4318 - 4324 [Proof.] 0. secs (0.u,0.s) Chars 4327 - 4345 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 4348 - 4369 [(rewrite~compose_pure).] 0.019 secs (0.019u,0.s) +Chars 4348 - 4369 [(rewrite~compose_pure).] 0.018 secs (0.018u,0.s) Chars 4372 - 4384 [reflexivity.] 0. secs (0.u,0.s) Chars 4385 - 4389 [Qed.] 0.001 secs (0.001u,0.s) Chars 4391 - 4493 [Fact~pure_cat~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) @@ -137,15 +137,15 @@ Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0.001 secs (0.001u,0.s) Chars 4787 - 4793 [Proof.] 0. secs (0.u,0.s) Chars 4796 - 4819 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 4820 - 4824 [Qed.] 0. secs (0.u,0.s) -Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) +Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0.001 secs (0.001u,0.s) Chars 4884 - 4890 [Proof.] 0. secs (0.u,0.s) Chars 4891 - 4903 [reflexivity.] 0. secs (0.u,0.s) Chars 4904 - 4908 [Qed.] 0. secs (0.u,0.s) -Chars 4910 - 4967 [Lemma~pure_inr~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) +Chars 4910 - 4967 [Lemma~pure_inr~{A}~{B}~:~pure~...] 0.001 secs (0.u,0.s) Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) Chars 4975 - 4987 [reflexivity.] 0. secs (0.u,0.s) Chars 4988 - 4992 [Qed.] 0. secs (0.u,0.s) -Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.001 secs (0.001u,0.s) +Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.002 secs (0.002u,0.s) Chars 5121 - 5127 [Proof.] 0. secs (0.u,0.s) Chars 5130 - 5153 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 5154 - 5158 [Qed.] 0. secs (0.u,0.s) @@ -179,14 +179,14 @@ Chars 6050 - 6056 [intro.] 0. secs (0.u,0.s) Chars 6057 - 6087 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) Chars 6090 - 6122 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) Chars 6123 - 6127 [Qed.] 0.002 secs (0.002u,0.s) -Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0.001 secs (0.u,0.s) +Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0.001 secs (0.001u,0.s) Chars 6221 - 6227 [Proof.] 0. secs (0.u,0.s) -Chars 6230 - 6250 [(rewrite~unit_r_pure).] 0.003 secs (0.002u,0.s) +Chars 6230 - 6250 [(rewrite~unit_r_pure).] 0.004 secs (0.003u,0.001s) Chars 6253 - 6265 [reflexivity.] 0. secs (0.u,0.s) Chars 6266 - 6270 [Qed.] 0.001 secs (0.001u,0.s) Chars 6272 - 6376 [Lemma~case_r'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) Chars 6377 - 6383 [Proof.] 0. secs (0.u,0.s) -Chars 6386 - 6407 [(rewrite~unit_r'_pure).] 0.002 secs (0.001u,0.s) +Chars 6386 - 6407 [(rewrite~unit_r'_pure).] 0.002 secs (0.002u,0.s) Chars 6410 - 6416 [intro.] 0. secs (0.u,0.s) Chars 6417 - 6447 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) Chars 6450 - 6482 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) @@ -194,17 +194,17 @@ Chars 6483 - 6487 [Qed.] 0.001 secs (0.001u,0.s) Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.004 secs (0.003u,0.001s) Chars 6585 - 6591 [Proof.] 0. secs (0.u,0.s) Chars 6594 - 6624 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 6627 - 6645 [(rewrite~!cat_id_l).] 0.006 secs (0.004u,0.001s) +Chars 6627 - 6645 [(rewrite~!cat_id_l).] 0.007 secs (0.005u,0.001s) Chars 6646 - 6668 [(rewrite~<-~!case_pure).] 0.005 secs (0.004u,0.001s) -Chars 6669 - 6694 [(rewrite~<-~!compose_pure).] 0.013 secs (0.011u,0.002s) -Chars 6695 - 6714 [(rewrite~<-~pure_id).] 0.004 secs (0.003u,0.s) +Chars 6669 - 6694 [(rewrite~<-~!compose_pure).] 0.014 secs (0.011u,0.002s) +Chars 6695 - 6714 [(rewrite~<-~pure_id).] 0.004 secs (0.004u,0.s) Chars 6717 - 6735 [(rewrite~!cat_id_l).] 0.004 secs (0.004u,0.s) Chars 6739 - 6751 [reflexivity.] 0. secs (0.u,0.s) Chars 6752 - 6756 [Qed.] 0.003 secs (0.003u,0.s) Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.003 secs (0.003u,0.s) Chars 6848 - 6854 [Proof.] 0. secs (0.u,0.s) Chars 6857 - 6887 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 6890 - 6939 [(rewrite~!cat_id_l,~<-~case_pu...] 0.01 secs (0.01u,0.s) +Chars 6890 - 6939 [(rewrite~!cat_id_l,~<-~case_pu...] 0.011 secs (0.01u,0.s) Chars 6942 - 6954 [reflexivity.] 0. secs (0.u,0.s) Chars 6955 - 6959 [Qed.] 0.002 secs (0.002u,0.s) Chars 6961 - 7023 [#[global]~Instance~Coproduct_K...] 0. secs (0.u,0.s) @@ -213,7 +213,7 @@ Chars 7033 - 7045 [constructor.] 0. secs (0.u,0.s) Chars 7048 - 7049 [-] 0. secs (0.u,0.s) Chars 7050 - 7067 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) Chars 7072 - 7097 [(unfold~inl_,~Inl_Kleisli).] 0. secs (0.u,0.s) -Chars 7102 - 7119 [(rewrite~pure_cat).] 0. secs (0.u,0.s) +Chars 7102 - 7119 [(rewrite~pure_cat).] 0.001 secs (0.u,0.s) Chars 7124 - 7136 [reflexivity.] 0. secs (0.u,0.s) Chars 7139 - 7140 [-] 0. secs (0.u,0.s) Chars 7141 - 7158 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) @@ -243,21 +243,21 @@ Chars 7558 - 7617 [#[global]~Instance~bimap_id_kl...] 0. secs (0.u,0.s) Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) Chars 7627 - 7666 [(unfold~BimapId,~bimap,~Bimap_...] 0. secs (0.u,0.s) Chars 7669 - 7676 [(intros).] 0. secs (0.u,0.s) -Chars 7679 - 7697 [(rewrite~!cat_id_l).] 0.005 secs (0.005u,0.s) +Chars 7679 - 7697 [(rewrite~!cat_id_l).] 0.007 secs (0.005u,0.001s) Chars 7700 - 7744 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) Chars 7747 - 7765 [(rewrite~case_pure).] 0.001 secs (0.001u,0.s) Chars 7768 - 7834 [(unfold~pure,~id_,~case_,~Case...] 0. secs (0.u,0.s) Chars 7837 - 7841 [(red).] 0. secs (0.u,0.s) Chars 7842 - 7848 [intro.] 0. secs (0.u,0.s) Chars 7849 - 7874 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) -Chars 7875 - 7879 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7875 - 7879 [Qed.] 0.002 secs (0.002u,0.s) Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0.001 secs (0.001u,0.s) Chars 8098 - 8104 [Proof.] 0. secs (0.u,0.s) Chars 8109 - 8140 [(intros~a1~b1~b2~c1~c2~f1~g1~g2).] 0. secs (0.u,0.s) Chars 8145 - 8200 [(unfold~cat,~Cat_Kleisli,~case...] 0. secs (0.u,0.s) Chars 8205 - 8216 [(unfold~map).] 0. secs (0.u,0.s) Chars 8217 - 8241 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.004 secs (0.004u,0.s) +Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.005 secs (0.005u,0.s) Chars 8276 - 8288 [(unfold~pure).] 0. secs (0.u,0.s) Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) Chars 8316 - 8328 [reflexivity.] 0. secs (0.u,0.s) @@ -278,7 +278,7 @@ Chars 8854 - 8860 [Proof.] 0. secs (0.u,0.s) Chars 8863 - 8903 [(unfold~BimapCat,~bimap,~Bimap...] 0. secs (0.u,0.s) Chars 8906 - 8913 [(intros).] 0. secs (0.u,0.s) Chars 8916 - 8960 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) -Chars 8963 - 8981 [(rewrite~!cat_pure).] 0.027 secs (0.027u,0.s) +Chars 8963 - 8981 [(rewrite~!cat_pure).] 0.029 secs (0.029u,0.s) Chars 8982 - 9000 [(rewrite~!cat_case).] 0.006 secs (0.006u,0.s) Chars 9003 - 9032 [(rewrite~map_inl_case_kleisli).] 0.003 secs (0.003u,0.s) Chars 9035 - 9064 [(rewrite~map_inr_case_kleisli).] 0.003 secs (0.003u,0.s) diff --git a/theories/Basics/CategoryOps.v.timing b/theories/Basics/CategoryOps.v.timing index 845ba530..2db5209d 100644 --- a/theories/Basics/CategoryOps.v.timing +++ b/theories/Basics/CategoryOps.v.timing @@ -83,7 +83,7 @@ Chars 10309 - 10360 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 10361 - 10484 [Variables~(PROD~:~binop~obj)~(...] 0. secs (0.u,0.s) Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0.001 secs (0.001u,0.s) Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0. secs (0.u,0.s) -Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.002 secs (0.001u,0.s) +Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.001 secs (0.001u,0.s) Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.002 secs (0.001u,0.s) Chars 11032 - 11095 [Variables~(Id_C~:~Id_~C)~(T~:~...] 0. secs (0.u,0.s) Chars 11151 - 11219 [#[local]~Instance~UnitL_Produc...] 0. secs (0.u,0.s) @@ -120,7 +120,7 @@ Chars 13666 - 13709 [Class~ReSum~(a~b~:~obj)~:=~~~~...] 0. secs (0.u,0.s) Chars 13953 - 14028 [#[global]~Instance~ReSum_id~~`...] 0. secs (0.u,0.s) Chars 14029 - 14155 [#[global]~Instance~ReSum_sum~~...] 0. secs (0.u,0.s) Chars 14156 - 14261 [#[global]~Instance~ReSum_inl~~...] 0. secs (0.u,0.s) -Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0. secs (0.u,0.s) +Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0.001 secs (0.u,0.s) Chars 14368 - 14464 [#[global]~Instance~ReSum_empty...] 0. secs (0.u,0.s) Chars 14776 - 14786 [End~RESUM.] 0. secs (0.u,0.s) Chars 14788 - 14844 [#[global]~Hint~Mode~ReSum~!~!~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryRelations.v.timing b/theories/Basics/CategoryRelations.v.timing index 69a76bcb..928d501e 100644 --- a/theories/Basics/CategoryRelations.v.timing +++ b/theories/Basics/CategoryRelations.v.timing @@ -1,5 +1,5 @@ Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.04 secs (0.032u,0.007s) +Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.043 secs (0.035u,0.008s) Chars 378 - 397 [Section~Operations.] 0. secs (0.u,0.s) Chars 401 - 421 [Import~RelNotations.] 0. secs (0.u,0.s) Chars 424 - 457 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) @@ -96,7 +96,7 @@ Chars 6885 - 6908 [specialize~(H1~_~_~Hy).] 0. secs (0.u,0.s) Chars 6909 - 6920 [assumption.] 0. secs (0.u,0.s) Chars 6929 - 6953 [specialize~(H2~_~_~Hy0).] 0. secs (0.u,0.s) Chars 6954 - 6965 [assumption.] 0. secs (0.u,0.s) -Chars 6970 - 6974 [Qed.] 0.001 secs (0.u,0.s) +Chars 6970 - 6974 [Qed.] 0.001 secs (0.001u,0.s) Chars 6980 - 7030 [#[global]~Instance~Category_re...] 0. secs (0.u,0.s) Chars 7035 - 7041 [Proof.] 0. secs (0.u,0.s) Chars 7048 - 7079 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -165,13 +165,13 @@ Chars 9034 - 9129 [(intros~?~[]~?;~[~apply~RSR~|~...] 0. secs (0.u,0.s) Chars 9136 - 9137 [-] 0. secs (0.u,0.s) Chars 9138 - 9142 [(compute).] 0. secs (0.u,0.s) Chars 9143 - 9265 [(intros~?~[]~EQ;~[~apply~RRS~i...] 0.001 secs (0.001u,0.s) -Chars 9270 - 9274 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9270 - 9274 [Qed.] 0.002 secs (0.002u,0.s) Chars 9280 - 9387 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) Chars 9392 - 9398 [Proof.] 0. secs (0.u,0.s) Chars 9405 - 9449 [(intros~?~?~?~R~S~[RS~SR]~T~U~...] 0. secs (0.u,0.s) Chars 9456 - 9504 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) Chars 9511 - 9559 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) -Chars 9564 - 9568 [Qed.] 0. secs (0.u,0.s) +Chars 9564 - 9568 [Qed.] 0.001 secs (0.001u,0.s) Chars 9574 - 9626 [#[global]~Instance~Product_rel...] 0. secs (0.u,0.s) Chars 9631 - 9637 [Proof.] 0. secs (0.u,0.s) Chars 9644 - 9675 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -190,7 +190,7 @@ Chars 10060 - 10066 [Proof.] 0. secs (0.u,0.s) Chars 10073 - 10085 [constructor.] 0. secs (0.u,0.s) Chars 10092 - 10093 [-] 0. secs (0.u,0.s) Chars 10094 - 10147 [(split;~intros~?~?~H;~inversio...] 0.001 secs (0.001u,0.s) -Chars 10154 - 10155 [-] 0.029 secs (0.029u,0.s) +Chars 10154 - 10155 [-] 0.032 secs (0.031u,0.s) Chars 10156 - 10202 [(split;~intros~?~?~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) Chars 10209 - 10210 [-] 0. secs (0.u,0.s) Chars 10211 - 10240 [(intros~a~b~x~y~[INCL1~INCL2]).] 0. secs (0.u,0.s) @@ -242,15 +242,15 @@ Chars 11361 - 11397 [(intros~?~?~?;~repeat~destruct...] 0. secs (0.u,0.s) Chars 11408 - 11479 [(destructn~ex;~repeat~destruct...] 0.001 secs (0.001u,0.s) Chars 11488 - 11489 [+] 0. secs (0.u,0.s) Chars 11490 - 11536 [(intros~((?,~?),~?)~((x,~y),~z...] 0.002 secs (0.002u,0.s) -Chars 11547 - 11575 [(exists~(x,~(y,~z));~intuition).] 0.001 secs (0.001u,0.s) +Chars 11547 - 11575 [(exists~(x,~(y,~z));~intuition).] 0. secs (0.u,0.s) Chars 11582 - 11583 [-] 0. secs (0.u,0.s) Chars 11584 - 11595 [(compute;~split).] 0. secs (0.u,0.s) Chars 11604 - 11605 [+] 0. secs (0.u,0.s) Chars 11606 - 11679 [(intros~?~?~?;~destructn~ex;~r...] 0.002 secs (0.002u,0.s) Chars 11688 - 11689 [+] 0. secs (0.u,0.s) Chars 11690 - 11737 [(intros~?~(x,~(y,~z))~->;~repe...] 0. secs (0.u,0.s) -Chars 11748 - 11774 [(exists~(x,~y,~z);~intuition).] 0.003 secs (0.003u,0.s) -Chars 11779 - 11783 [Qed.] 0.009 secs (0.008u,0.001s) +Chars 11748 - 11774 [(exists~(x,~y,~z);~intuition).] 0.003 secs (0.002u,0.s) +Chars 11779 - 11783 [Qed.] 0.009 secs (0.007u,0.001s) Chars 11789 - 11897 [#[global]~Instance~Iso_UnitL_p...] 0. secs (0.u,0.s) Chars 11902 - 11908 [Proof.] 0. secs (0.u,0.s) Chars 11915 - 12044 [(split;~compute;~split;~intros...] 0.003 secs (0.002u,0.s) @@ -265,18 +265,18 @@ Chars 12400 - 12420 [(exists~(y,~tt);~auto).] 0. secs (0.u,0.s) Chars 12425 - 12429 [Qed.] 0.001 secs (0.001u,0.s) Chars 12435 - 12508 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 12513 - 12519 [Proof.] 0. secs (0.u,0.s) -Chars 12526 - 12696 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.s) +Chars 12526 - 12696 [(split;~compute;~intros;~~~rep...] 0.004 secs (0.003u,0.s) Chars 12703 - 12704 [-] 0. secs (0.u,0.s) Chars 12705 - 12737 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) Chars 12744 - 12745 [-] 0. secs (0.u,0.s) Chars 12746 - 12810 [(eexists~(_,~_);~constructor;~...] 0. secs (0.u,0.s) -Chars 12815 - 12819 [Qed.] 0.002 secs (0.001u,0.s) +Chars 12815 - 12819 [Qed.] 0.002 secs (0.002u,0.s) Chars 12825 - 12900 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 12905 - 12911 [Proof.] 0. secs (0.u,0.s) Chars 12918 - 13076 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.s) Chars 13083 - 13115 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) Chars 13122 - 13159 [(exists~(tt,~x);~intuition~sub...] 0. secs (0.u,0.s) -Chars 13164 - 13168 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13164 - 13168 [Qed.] 0.002 secs (0.001u,0.s) Chars 13174 - 13243 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 13248 - 13254 [Proof.] 0. secs (0.u,0.s) Chars 13261 - 13293 [(split;~compute;~intros~[[?~?]...] 0.004 secs (0.004u,0.s) @@ -300,7 +300,7 @@ Chars 14057 - 14058 [-] 0. secs (0.u,0.s) Chars 14059 - 14094 [(eexists~(_,~(_,~_,~_));~first...] 0.002 secs (0.002u,0.s) Chars 14095 - 14118 [eexists~(_,~(_,~_),~_).] 0. secs (0.u,0.s) Chars 14119 - 14148 [firstorder~~(cbn;~congruence).] 0.001 secs (0.001u,0.s) -Chars 14153 - 14157 [Qed.] 0.02 secs (0.02u,0.s) +Chars 14153 - 14157 [Qed.] 0.019 secs (0.019u,0.s) Chars 14163 - 14228 [#[global]~Instance~Monoidal_pr...] 0. secs (0.u,0.s) Chars 14233 - 14239 [Proof.] 0. secs (0.u,0.s) Chars 14246 - 14277 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -313,8 +313,8 @@ Chars 14413 - 14419 [split.] 0. secs (0.u,0.s) Chars 14426 - 14430 [(red).] 0. secs (0.u,0.s) Chars 14431 - 14444 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 14445 - 14461 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 14468 - 14527 [(destruct~x,~y;~subst;~inversi...] 0.003 secs (0.002u,0.s) -Chars 14534 - 14580 [(inversion~H;~inversion~H2;~su...] 0.004 secs (0.004u,0.s) +Chars 14468 - 14527 [(destruct~x,~y;~subst;~inversi...] 0.003 secs (0.003u,0.s) +Chars 14534 - 14580 [(inversion~H;~inversion~H2;~su...] 0.004 secs (0.003u,0.s) Chars 14587 - 14633 [(inversion~H;~inversion~H2;~su...] 0.001 secs (0.001u,0.s) Chars 14640 - 14644 [(red).] 0. secs (0.u,0.s) Chars 14645 - 14658 [(intros~?~?~?).] 0. secs (0.u,0.s) @@ -327,14 +327,14 @@ Chars 14754 - 14812 [#[global]~Instance~BimapCat_su...] 0. secs (0.u,0.s) Chars 14817 - 14823 [Proof.] 0. secs (0.u,0.s) Chars 14830 - 14836 [split.] 0. secs (0.u,0.s) Chars 14843 - 14847 [(compute).] 0. secs (0.u,0.s) -Chars 14848 - 14986 [(intros;~destruct~x,~y;~destru...] 0.008 secs (0.008u,0.s) +Chars 14848 - 14986 [(intros;~destruct~x,~y;~destru...] 0.009 secs (0.009u,0.s) Chars 14993 - 15006 [(repeat~intro).] 0. secs (0.u,0.s) Chars 15007 - 15073 [(inversion~H;~inversion~H0;~in...] 0.003 secs (0.003u,0.s) Chars 15081 - 15097 [exists~(inl~x0).] 0. secs (0.u,0.s) Chars 15098 - 15125 [(split;~econstructor;~eauto).] 0. secs (0.u,0.s) Chars 15132 - 15148 [exists~(inr~x0).] 0. secs (0.u,0.s) Chars 15149 - 15176 [(split;~econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 15181 - 15185 [Qed.] 0.007 secs (0.007u,0.s) +Chars 15181 - 15185 [Qed.] 0.008 secs (0.008u,0.s) Chars 15191 - 15251 [#[global]~Instance~Bifunctor_s...] 0. secs (0.u,0.s) Chars 15256 - 15262 [Proof.] 0. secs (0.u,0.s) Chars 15269 - 15304 [(constructor;~try~typeclasses~...] 0.004 secs (0.004u,0.s) @@ -343,12 +343,12 @@ Chars 15319 - 15433 [#[global]~Instance~Iso_Assoc_s...] 0. secs (0.u,0.s) Chars 15438 - 15444 [Proof.] 0. secs (0.u,0.s) Chars 15451 - 15457 [split.] 0. secs (0.u,0.s) Chars 15464 - 15465 [-] 0. secs (0.u,0.s) -Chars 15466 - 15647 [(compute;~split;~intros;~~~rep...] 0.014 secs (0.014u,0.s) +Chars 15466 - 15647 [(compute;~split;~intros;~~~rep...] 0.015 secs (0.014u,0.s) Chars 15656 - 15683 [(exists~(inl~a0);~intuition).] 0. secs (0.u,0.s) Chars 15692 - 15725 [(exists~(inr~(inl~b0));~intuit...] 0. secs (0.u,0.s) Chars 15734 - 15767 [(exists~(inr~(inr~c0));~intuit...] 0. secs (0.u,0.s) Chars 15774 - 15775 [-] 0. secs (0.u,0.s) -Chars 15776 - 15947 [(compute;~split;~intros;~~~rep...] 0.016 secs (0.016u,0.s) +Chars 15776 - 15947 [(compute;~split;~intros;~~~rep...] 0.017 secs (0.017u,0.s) Chars 15956 - 15989 [(exists~(inl~(inl~a0));~intuit...] 0. secs (0.u,0.s) Chars 15998 - 16031 [(exists~(inl~(inr~b0));~intuit...] 0. secs (0.u,0.s) Chars 16040 - 16067 [(exists~(inr~c0);~intuition).] 0. secs (0.u,0.s) @@ -376,21 +376,21 @@ Chars 17165 - 17171 [Proof.] 0. secs (0.u,0.s) Chars 17178 - 17359 [(split;~compute;~intros;~~~rep...] 0.007 secs (0.007u,0.s) Chars 17366 - 17398 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) Chars 17405 - 17443 [(exists~(inr~x);~intuition~sub...] 0. secs (0.u,0.s) -Chars 17448 - 17452 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17448 - 17452 [Qed.] 0.002 secs (0.002u,0.s) Chars 17458 - 17525 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 17530 - 17536 [Proof.] 0. secs (0.u,0.s) Chars 17543 - 17562 [(split;~compute;~intros).] 0. secs (0.u,0.s) Chars 17569 - 17580 [(destruct~H).] 0. secs (0.u,0.s) -Chars 17587 - 17732 [(destruct~x;~try~destruct~s;~t...] 0.009 secs (0.009u,0.s) +Chars 17587 - 17732 [(destruct~x;~try~destruct~s;~t...] 0.008 secs (0.008u,0.s) Chars 17739 - 17783 [(destruct~s;~try~contradiction...] 0. secs (0.u,0.s) Chars 17790 - 17859 [(inversion~H;~subst;~eauto;~tr...] 0.003 secs (0.003u,0.s) Chars 17866 - 17872 [(inv~H).] 0.001 secs (0.001u,0.s) Chars 17873 - 17896 [(exists~(inl~a2);~eauto).] 0. secs (0.u,0.s) -Chars 17904 - 17940 [(inv~H;~exists~(inr~(inr~b2));...] 0.002 secs (0.002u,0.s) -Chars 17946 - 17950 [Qed.] 0.014 secs (0.014u,0.s) +Chars 17904 - 17940 [(inv~H;~exists~(inr~(inr~b2));...] 0.001 secs (0.001u,0.s) +Chars 17946 - 17950 [Qed.] 0.015 secs (0.015u,0.s) Chars 17956 - 18022 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 18027 - 18033 [Proof.] 0. secs (0.u,0.s) -Chars 18040 - 18221 [(split;~compute;~intros;~~~rep...] 0.071 secs (0.07u,0.s) +Chars 18040 - 18221 [(split;~compute;~intros;~~~rep...] 0.069 secs (0.068u,0.s) Chars 18228 - 18229 [-] 0. secs (0.u,0.s) Chars 18230 - 18269 [(exists~(inl~(inl~a2));~intuit...] 0. secs (0.u,0.s) Chars 18276 - 18277 [-] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategorySub.v.timing b/theories/Basics/CategorySub.v.timing index e6ef517a..4e703a43 100644 --- a/theories/Basics/CategorySub.v.timing +++ b/theories/Basics/CategorySub.v.timing @@ -1,5 +1,5 @@ Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.005 secs (0.003u,0.001s) +Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.005 secs (0.004u,0.001s) Chars 244 - 264 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 265 - 292 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 309 - 335 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) @@ -38,11 +38,11 @@ Chars 2545 - 2554 [(do~2~red).] 0. secs (0.u,0.s) Chars 2555 - 2562 [(intros).] 0. secs (0.u,0.s) Chars 2563 - 2597 [(eapply~category_proper_cat;~e...] 0. secs (0.u,0.s) Chars 2598 - 2602 [Qed.] 0. secs (0.u,0.s) -Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0.001 secs (0.u,0.s) +Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0. secs (0.u,0.s) Chars 2673 - 2679 [Proof.] 0. secs (0.u,0.s) Chars 2680 - 2690 [(hnf;~auto).] 0. secs (0.u,0.s) Chars 2691 - 2695 [Qed.] 0. secs (0.u,0.s) -Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0.001 secs (0.u,0.s) +Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0. secs (0.u,0.s) Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) Chars 2775 - 2785 [(hnf;~auto).] 0. secs (0.u,0.s) Chars 2786 - 2790 [Qed.] 0. secs (0.u,0.s) @@ -59,9 +59,9 @@ Chars 4143 - 4194 [#[global]~Instance~Coproduct_s...] 0. secs (0.u,0.s) Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) Chars 4204 - 4251 [(destruct~Coproduct_C;~constru...] 0. secs (0.u,0.s) Chars 4254 - 4287 [all:~(unfold~Morphisms.respect...] 0. secs (0.u,0.s) -Chars 4290 - 4306 [all:~unfold_sub.] 0.016 secs (0.014u,0.001s) +Chars 4290 - 4306 [all:~unfold_sub.] 0.017 secs (0.015u,0.002s) Chars 4309 - 4337 [all:~(try~rewrite~!cat_assoc).] 0.005 secs (0.005u,0.s) -Chars 4340 - 4366 [all:~(try~simpl_bif;~eauto).] 0.037 secs (0.037u,0.s) +Chars 4340 - 4366 [all:~(try~simpl_bif;~eauto).] 0.038 secs (0.037u,0.s) Chars 4369 - 4370 [-] 0. secs (0.u,0.s) Chars 4371 - 4419 [(enough~(from_bif~>>>~fg~⩯~cas...] 0. secs (0.u,0.s) Chars 4424 - 4425 [{] 0. secs (0.u,0.s) @@ -80,41 +80,41 @@ Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.001 secs (0.001u,0.s) Chars 4829 - 4835 [Proof.] 0. secs (0.u,0.s) Chars 4838 - 4878 [(unfold~bimap~at~1,~Bimap_Copr...] 0. secs (0.u,0.s) Chars 4881 - 4892 [unfold_sub.] 0.001 secs (0.001u,0.s) -Chars 4895 - 4918 [(rewrite~<-~2!cat_assoc).] 0.01 secs (0.008u,0.001s) +Chars 4895 - 4918 [(rewrite~<-~2!cat_assoc).] 0.011 secs (0.009u,0.001s) Chars 4921 - 4941 [(rewrite~<-~cat_case).] 0.004 secs (0.003u,0.001s) Chars 4942 - 4960 [(rewrite~cat_assoc).] 0.002 secs (0.001u,0.s) Chars 4963 - 4975 [reflexivity.] 0. secs (0.u,0.s) -Chars 4976 - 4980 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4976 - 4980 [Qed.] 0.003 secs (0.002u,0.s) Chars 4982 - 5024 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) Chars 5026 - 5077 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) Chars 5078 - 5084 [Proof.] 0. secs (0.u,0.s) Chars 5087 - 5112 [(constructor;~red;~intros).] 0. secs (0.u,0.s) -Chars 5115 - 5160 [all:~(unfold~Morphisms.respect...] 0.01 secs (0.007u,0.002s) +Chars 5115 - 5160 [all:~(unfold~Morphisms.respect...] 0.009 secs (0.007u,0.002s) Chars 5163 - 5164 [-] 0. secs (0.u,0.s) Chars 5165 - 5201 [(rewrite~iter_unfold,~cat_asso...] 0.004 secs (0.003u,0.001s) Chars 5202 - 5214 [reflexivity.] 0. secs (0.u,0.s) Chars 5217 - 5218 [-] 0. secs (0.u,0.s) -Chars 5219 - 5244 [(rewrite~bimap_sub_unfold).] 0.007 secs (0.006u,0.s) +Chars 5219 - 5244 [(rewrite~bimap_sub_unfold).] 0.007 secs (0.006u,0.001s) Chars 5249 - 5277 [(rewrite~!(cat_assoc~to_bif)).] 0.006 secs (0.006u,0.s) -Chars 5282 - 5316 [(rewrite~<-~(cat_assoc~(C:=C)~...] 0.004 secs (0.004u,0.s) -Chars 5321 - 5363 [(rewrite~cat_assoc,~(cat_assoc...] 0.007 secs (0.007u,0.s) +Chars 5282 - 5316 [(rewrite~<-~(cat_assoc~(C:=C)~...] 0.003 secs (0.003u,0.s) +Chars 5321 - 5363 [(rewrite~cat_assoc,~(cat_assoc...] 0.006 secs (0.006u,0.s) Chars 5368 - 5401 [(rewrite~(semi_iso~_~_),~cat_i...] 0.009 secs (0.009u,0.s) Chars 5406 - 5427 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) Chars 5432 - 5444 [reflexivity.] 0. secs (0.u,0.s) Chars 5447 - 5448 [-] 0. secs (0.u,0.s) -Chars 5449 - 5482 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.015 secs (0.015u,0.s) -Chars 5487 - 5519 [(rewrite~!(cat_assoc~_~_~to_bi...] 0.013 secs (0.012u,0.s) -Chars 5524 - 5542 [(rewrite~!cat_case).] 0.014 secs (0.014u,0.s) -Chars 5547 - 5607 [(rewrite~!(cat_assoc~_~from_bi...] 0.054 secs (0.054u,0.s) +Chars 5449 - 5482 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.017 secs (0.016u,0.s) +Chars 5487 - 5519 [(rewrite~!(cat_assoc~_~_~to_bi...] 0.013 secs (0.013u,0.s) +Chars 5524 - 5542 [(rewrite~!cat_case).] 0.015 secs (0.015u,0.s) +Chars 5547 - 5607 [(rewrite~!(cat_assoc~_~from_bi...] 0.053 secs (0.052u,0.s) Chars 5612 - 5635 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) Chars 5640 - 5652 [reflexivity.] 0. secs (0.u,0.s) Chars 5655 - 5656 [-] 0. secs (0.u,0.s) -Chars 5657 - 5690 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.006 secs (0.006u,0.s) +Chars 5657 - 5690 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.005 secs (0.005u,0.s) Chars 5695 - 5726 [(rewrite~(cat_assoc~_~_~to_bif)).] 0.003 secs (0.003u,0.s) Chars 5731 - 5758 [(rewrite~cat_case,~cat_id_l).] 0.01 secs (0.01u,0.s) Chars 5763 - 5820 [(rewrite~(cat_assoc~_~_~to_bif...] 0.015 secs (0.015u,0.s) Chars 5825 - 5863 [(rewrite~iter_natural,~iter_co...] 0.005 secs (0.005u,0.s) -Chars 5868 - 5934 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.018u,0.s) +Chars 5868 - 5934 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.017u,0.s) Chars 5939 - 5951 [reflexivity.] 0. secs (0.u,0.s) Chars 5954 - 5955 [-] 0. secs (0.u,0.s) Chars 5956 - 5986 [(intros;~unfold~iter,~Iter_sub).] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryTheory.v.timing b/theories/Basics/CategoryTheory.v.timing index 4d1628e8..157a3996 100644 --- a/theories/Basics/CategoryTheory.v.timing +++ b/theories/Basics/CategoryTheory.v.timing @@ -1,4 +1,4 @@ -Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.u,0.s) Chars 291 - 306 [Import~Carrier.] 0. secs (0.u,0.s) Chars 307 - 327 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -61,8 +61,8 @@ Chars 5130 - 5185 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 5186 - 5212 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 5213 - 5247 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 5348 - 5441 [Class~BimapId~:~Prop~:=~~~~~bi...] 0. secs (0.u,0.s) -Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.002 secs (0.001u,0.s) -Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) +Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.002 secs (0.002u,0.s) +Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.002 secs (0.001u,0.s) Chars 5887 - 5934 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5935 - 5983 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5984 - 6035 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) @@ -74,7 +74,7 @@ Chars 6307 - 6342 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 6343 - 6398 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 6399 - 6425 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 6426 - 6512 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) +Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0.001 secs (0.001u,0.s) Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.002 secs (0.001u,0.s) Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) @@ -93,15 +93,15 @@ Chars 7827 - 7862 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 7863 - 7918 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 7919 - 7945 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 7946 - 8032 [Context~{Pair_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) -Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) -Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) +Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0.001 secs (0.u,0.s) +Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0.001 secs (0.u,0.s) Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.002 secs (0.001u,0.s) Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) Chars 8708 - 8753 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8754 - 8799 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8800 - 8851 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8852 - 8900 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8902 - 8918 [End~ProductLaws.] 0.01 secs (0.009u,0.s) +Chars 8902 - 8918 [End~ProductLaws.] 0.01 secs (0.009u,0.001s) Chars 8920 - 8996 [Arguments~pair_fst~{obj~C~Eq2_...] 0. secs (0.u,0.s) Chars 8997 - 9073 [Arguments~pair_snd~{obj~C~Eq2_...] 0. secs (0.u,0.s) Chars 9074 - 9138 [Arguments~pair_universal~{obj~...] 0. secs (0.u,0.s) @@ -144,7 +144,7 @@ Chars 11450 - 11488 [Context~{UnitL'_bif~:~UnitL'~C...] 0. secs (0.u,0.s) Chars 11489 - 11527 [Context~{UnitR_bif~:~UnitR~C~b...] 0. secs (0.u,0.s) Chars 11528 - 11566 [Context~{UnitR'_bif~:~UnitR'~C...] 0. secs (0.u,0.s) Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0.001 secs (0.001u,0.s) -Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0.001 secs (0.001u,0.s) +Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0.001 secs (0.u,0.s) Chars 11910 - 11988 [Notation~UnitLIso~:=~(forall~a...] 0. secs (0.u,0.s) Chars 12086 - 12185 [Corollary~unit_l_mono~{UnitLIs...] 0. secs (0.u,0.s) Chars 12186 - 12192 [Proof.] 0. secs (0.u,0.s) @@ -155,7 +155,7 @@ Chars 12394 - 12400 [Proof.] 0. secs (0.u,0.s) Chars 12403 - 12438 [(intros;~apply~semi_iso,~UnitL...] 0. secs (0.u,0.s) Chars 12439 - 12443 [Qed.] 0. secs (0.u,0.s) Chars 12496 - 12574 [Notation~UnitRIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0. secs (0.u,0.s) +Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0.001 secs (0.001u,0.s) Chars 12676 - 12682 [Proof.] 0. secs (0.u,0.s) Chars 12685 - 12720 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) Chars 12721 - 12725 [Qed.] 0. secs (0.u,0.s) @@ -175,7 +175,7 @@ Chars 13851 - 13904 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13905 - 13955 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13956 - 14009 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.002 secs (0.002u,0.s) -Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.017 secs (0.017u,0.s) +Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.018 secs (0.017u,0.s) Chars 14435 - 14452 [End~MonoidalLaws.] 0.001 secs (0.001u,0.s) Chars 14454 - 14545 [Arguments~assoc_r_mono~~~{obj~...] 0. secs (0.u,0.s) Chars 14546 - 14637 [Arguments~assoc_l_mono~~~{obj~...] 0. secs (0.u,0.s) @@ -208,8 +208,8 @@ Chars 16247 - 16283 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) Chars 16284 - 16320 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.005 secs (0.005u,0.s) Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0.001 secs (0.001u,0.s) -Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.004 secs (0.004u,0.s) -Chars 16989 - 17007 [End~SymmetricLaws.] 0. secs (0.u,0.s) +Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.005 secs (0.005u,0.s) +Chars 16989 - 17007 [End~SymmetricLaws.] 0.001 secs (0.u,0.s) Chars 17009 - 17094 [Arguments~swap_involutive~~~{o...] 0. secs (0.u,0.s) Chars 17095 - 17180 [Arguments~swap_unit_l~~~{obj~C...] 0. secs (0.u,0.s) Chars 17181 - 17281 [Arguments~swap_assoc_r~~~{obj~...] 0. secs (0.u,0.s) @@ -232,7 +232,7 @@ Chars 19077 - 19123 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19124 - 19172 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19173 - 19222 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19223 - 19273 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.021 secs (0.016u,0.004s) +Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.022 secs (0.017u,0.004s) Chars 19692 - 19710 [End~IterationLaws.] 0.001 secs (0.001u,0.s) Chars 19712 - 19796 [Arguments~iter_unfold~{obj~C~E...] 0. secs (0.u,0.s) Chars 19797 - 19897 [Arguments~iter_natural~~~{obj~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/FunctionFacts.v.timing b/theories/Basics/FunctionFacts.v.timing index 5269088b..7a7cf717 100644 --- a/theories/Basics/FunctionFacts.v.timing +++ b/theories/Basics/FunctionFacts.v.timing @@ -1,5 +1,5 @@ -Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) -Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.145 secs (0.131u,0.014s) +Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.142 secs (0.128u,0.014s) Chars 209 - 229 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 230 - 257 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 274 - 378 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) @@ -35,7 +35,7 @@ Chars 1090 - 1096 [intro.] 0. secs (0.u,0.s) Chars 1097 - 1113 [(destruct~(f~a0)).] 0. secs (0.u,0.s) Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) Chars 1127 - 1131 [Qed.] 0. secs (0.u,0.s) -Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0.004 secs (0.003u,0.s) +Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0.004 secs (0.004u,0.s) Chars 1262 - 1268 [Proof.] 0. secs (0.u,0.s) Chars 1269 - 1306 [(compute;~intros;~subst;~destr...] 0.001 secs (0.u,0.s) Chars 1307 - 1311 [Qed.] 0. secs (0.u,0.s) @@ -99,11 +99,11 @@ Chars 2515 - 2528 [(repeat~intro).] 0. secs (0.u,0.s) Chars 2533 - 2544 [(destruct~a).] 0. secs (0.u,0.s) Chars 2549 - 2561 [reflexivity.] 0. secs (0.u,0.s) Chars 2564 - 2568 [Qed.] 0. secs (0.u,0.s) -Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0.001 secs (0.u,0.s) +Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0.001 secs (0.001u,0.s) Chars 2724 - 2730 [Proof.] 0. secs (0.u,0.s) Chars 2735 - 2748 [(repeat~intro).] 0. secs (0.u,0.s) Chars 2753 - 2781 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) -Chars 2782 - 2792 [(rewrite~H).] 0.008 secs (0.006u,0.001s) +Chars 2782 - 2792 [(rewrite~H).] 0.008 secs (0.006u,0.002s) Chars 2793 - 2804 [(rewrite~H0).] 0.009 secs (0.007u,0.002s) Chars 2805 - 2817 [reflexivity.] 0. secs (0.u,0.s) Chars 2820 - 2824 [Qed.] 0.002 secs (0.002u,0.s) @@ -133,7 +133,7 @@ Chars 3323 - 3335 [reflexivity.] 0. secs (0.u,0.s) Chars 3338 - 3342 [Qed.] 0. secs (0.u,0.s) Chars 3415 - 3492 [#[global]~Instance~CartesianCl...] 0. secs (0.u,0.s) Chars 3495 - 3501 [Proof.] 0. secs (0.u,0.s) -Chars 3506 - 3541 [(constructor;~try~typeclasses~...] 0.027 secs (0.025u,0.001s) +Chars 3506 - 3541 [(constructor;~try~typeclasses~...] 0.027 secs (0.025u,0.002s) Chars 3546 - 3559 [(repeat~intro).] 0. secs (0.u,0.s) Chars 3560 - 3585 [(unfold~curry_,~Curry_Fun).] 0. secs (0.u,0.s) Chars 3586 - 3618 [(apply~functional_extensionali...] 0. secs (0.u,0.s) diff --git a/theories/Basics/HeterogeneousRelations.v.timing b/theories/Basics/HeterogeneousRelations.v.timing index bbaa045e..350dbbac 100644 --- a/theories/Basics/HeterogeneousRelations.v.timing +++ b/theories/Basics/HeterogeneousRelations.v.timing @@ -1,5 +1,5 @@ Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.005u,0.002s) -Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.005s) +Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.034 secs (0.027u,0.007s) Chars 157 - 201 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) Chars 405 - 458 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) Chars 460 - 512 [Definition~relationH~(A~B~:~Ty...] 0. secs (0.u,0.s) @@ -18,7 +18,7 @@ Chars 1633 - 1681 [Class~Disj~(T~:~Type)~:=~~~~~d...] 0. secs (0.u,0.s) Chars 1685 - 1798 [#[global]~Instance~Disj_binary...] 0. secs (0.u,0.s) Chars 1802 - 1897 [#[global]~Instance~Disj_unary~...] 0. secs (0.u,0.s) Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) -Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) +Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.001u,0.s) Chars 2536 - 2561 [End~RelationH_Operations.] 0. secs (0.u,0.s) Chars 2563 - 2606 [#[global]~Hint~Constructors~pr...] 0. secs (0.u,0.s) Chars 2607 - 2649 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) @@ -153,7 +153,7 @@ Chars 7169 - 7260 [Lemma~subrelationH_antisym~{A~...] 0. secs (0.u,0.s) Chars 7263 - 7269 [Proof.] 0. secs (0.u,0.s) Chars 7274 - 7286 [(split;~auto).] 0. secs (0.u,0.s) Chars 7289 - 7293 [Qed.] 0. secs (0.u,0.s) -Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0.017 secs (0.016u,0.001s) +Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0.018 secs (0.016u,0.002s) Chars 7401 - 7407 [Proof.] 0. secs (0.u,0.s) Chars 7412 - 7426 [(intros~!;~auto).] 0. secs (0.u,0.s) Chars 7429 - 7433 [Qed.] 0. secs (0.u,0.s) @@ -238,7 +238,7 @@ Chars 9926 - 9930 [Qed.] 0. secs (0.u,0.s) Chars 9935 - 10123 [#[global]~Instance~Proper_comp...] 0. secs (0.u,0.s) Chars 10126 - 10132 [Proof.] 0. secs (0.u,0.s) Chars 10137 - 10168 [(intros~?~?~?~S~S'~EQS~R~R'~EQR).] 0. secs (0.u,0.s) -Chars 10173 - 10276 [(split;~intros~?~?~EQ;~destruc...] 0. secs (0.u,0.s) +Chars 10173 - 10276 [(split;~intros~?~?~EQ;~destruc...] 0.001 secs (0.001u,0.s) Chars 10279 - 10283 [Qed.] 0. secs (0.u,0.s) Chars 10285 - 10305 [End~RelationCompose.] 0. secs (0.u,0.s) Chars 10307 - 10330 [Section~TransposeFacts.] 0. secs (0.u,0.s) @@ -390,7 +390,7 @@ Chars 15124 - 15132 [intros~!.] 0. secs (0.u,0.s) Chars 15139 - 15173 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 15174 - 15209 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 15216 - 15240 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) -Chars 15247 - 15309 [(inversion~H1;~inversion~H2;~s...] 0.029 secs (0.029u,0.s) +Chars 15247 - 15309 [(inversion~H1;~inversion~H2;~s...] 0.031 secs (0.03u,0.s) Chars 15314 - 15318 [Qed.] 0. secs (0.u,0.s) Chars 15324 - 15426 [#[global]~Instance~prod_rel_eq...] 0. secs (0.u,0.s) Chars 15431 - 15437 [Proof.] 0. secs (0.u,0.s) @@ -538,13 +538,13 @@ Chars 19820 - 19828 [intros~!.] 0. secs (0.u,0.s) Chars 19835 - 19870 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 19871 - 19906 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 19913 - 19937 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) -Chars 19944 - 20014 [(destruct~x,~y,~z;~try~contrad...] 0.011 secs (0.009u,0.002s) +Chars 19944 - 20014 [(destruct~x,~y,~z;~try~contrad...] 0.012 secs (0.009u,0.002s) Chars 20021 - 20030 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 20037 - 20049 [constructor.] 0. secs (0.u,0.s) Chars 20050 - 20056 [eauto.] 0. secs (0.u,0.s) Chars 20057 - 20069 [constructor.] 0. secs (0.u,0.s) Chars 20070 - 20076 [eauto.] 0. secs (0.u,0.s) -Chars 20081 - 20085 [Qed.] 0.004 secs (0.003u,0.s) +Chars 20081 - 20085 [Qed.] 0.005 secs (0.004u,0.001s) Chars 20091 - 20190 [#[global]~Instance~sum_rel_eqv...] 0. secs (0.u,0.s) Chars 20195 - 20201 [Proof.] 0. secs (0.u,0.s) Chars 20208 - 20239 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -552,7 +552,7 @@ Chars 20244 - 20248 [Qed.] 0. secs (0.u,0.s) Chars 20252 - 20268 [End~Equivalence.] 0. secs (0.u,0.s) Chars 20321 - 20474 [Lemma~sum_rel_monotone~{A~B~C~...] 0. secs (0.u,0.s) Chars 20477 - 20483 [Proof.] 0. secs (0.u,0.s) -Chars 20488 - 20586 [(intros~!;~destruct~x,~y;~repe...] 0.003 secs (0.002u,0.s) +Chars 20488 - 20586 [(intros~!;~destruct~x,~y;~repe...] 0.004 secs (0.003u,0.s) Chars 20589 - 20593 [Qed.] 0.002 secs (0.002u,0.s) Chars 20632 - 20704 [Lemma~sum_rel_eq~:~forall~A~B~...] 0. secs (0.u,0.s) Chars 20707 - 20713 [Proof.] 0. secs (0.u,0.s) @@ -567,14 +567,14 @@ Chars 20863 - 21049 [Lemma~sum_compose~{A~B~C~D~E~F...] 0. secs (0.u,0.s) Chars 21052 - 21058 [Proof.] 0. secs (0.u,0.s) Chars 21063 - 21078 [(split;~intros~!).] 0. secs (0.u,0.s) Chars 21083 - 21084 [-] 0. secs (0.u,0.s) -Chars 21085 - 21106 [(destruct~x,~y;~inv~H).] 0.005 secs (0.004u,0.001s) -Chars 21113 - 21156 [(destruct~H2~as~(?,~(?,~?));~e...] 0. secs (0.u,0.s) +Chars 21085 - 21106 [(destruct~x,~y;~inv~H).] 0.006 secs (0.004u,0.001s) +Chars 21113 - 21156 [(destruct~H2~as~(?,~(?,~?));~e...] 0.001 secs (0.u,0.s) Chars 21163 - 21206 [(destruct~H2~as~(?,~(?,~?));~e...] 0. secs (0.u,0.s) Chars 21211 - 21212 [-] 0. secs (0.u,0.s) -Chars 21213 - 21257 [(destruct~H~as~(?,~(H1,~H2));~...] 0.008 secs (0.008u,0.s) +Chars 21213 - 21257 [(destruct~H~as~(?,~(H1,~H2));~...] 0.009 secs (0.008u,0.s) Chars 21264 - 21293 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) Chars 21300 - 21329 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) -Chars 21332 - 21336 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21332 - 21336 [Qed.] 0.005 secs (0.005u,0.s) Chars 21340 - 21444 [#[global]~Instance~Proper_sum_...] 0. secs (0.u,0.s) Chars 21447 - 21453 [Proof.] 0. secs (0.u,0.s) Chars 21458 - 21466 [intros~!.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Monad.v.timing b/theories/Basics/Monad.v.timing index 06dcdc96..73342960 100644 --- a/theories/Basics/Monad.v.timing +++ b/theories/Basics/Monad.v.timing @@ -5,7 +5,7 @@ Chars 246 - 272 [Set~Primitive~Projections.] 0. secs (0.u,0.s) Chars 336 - 412 [Class~Eq1~(M~:~Type~->~Type)~:...] 0. secs (0.u,0.s) Chars 414 - 436 [Arguments~eq1~{M~_~_}.] 0. secs (0.u,0.s) Chars 437 - 484 [Infix~"≈"~:=~eq1~(~at~level~70...] 0. secs (0.u,0.s) -Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0.001 secs (0.001u,0.s) +Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0.001 secs (0.u,0.s) Chars 653 - 691 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 693 - 706 [Section~Laws.] 0. secs (0.u,0.s) Chars 710 - 737 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadProp.v.timing b/theories/Basics/MonadProp.v.timing index 7a86c01e..eb1c06ae 100644 --- a/theories/Basics/MonadProp.v.timing +++ b/theories/Basics/MonadProp.v.timing @@ -52,9 +52,9 @@ Chars 1386 - 1405 [(repeat~intro;~auto).] 0. secs (0.u,0.s) Chars 1406 - 1417 [(destruct~H).] 0. secs (0.u,0.s) Chars 1424 - 1532 [(split;~simpl;~repeat~red;~int...] 0.001 secs (0.001u,0.s) Chars 1535 - 1539 [Qed.] 0.003 secs (0.002u,0.s) -Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) +Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0.001 secs (0.u,0.s) Chars 1684 - 1690 [Proof.] 0. secs (0.u,0.s) -Chars 1695 - 1805 [(repeat~red;~split;~repeat~int...] 0.002 secs (0.001u,0.s) +Chars 1695 - 1805 [(repeat~red;~split;~repeat~int...] 0.002 secs (0.002u,0.s) Chars 1807 - 1811 [Qed.] 0.001 secs (0.001u,0.s) Chars 1815 - 1883 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 1886 - 1892 [Proof.] 0. secs (0.u,0.s) @@ -77,7 +77,7 @@ Chars 2159 - 2160 [+] 0. secs (0.u,0.s) Chars 2161 - 2175 [constructor~1.] 0. secs (0.u,0.s) Chars 2176 - 2193 [(repeat~red~in~H2).] 0. secs (0.u,0.s) Chars 2194 - 2206 [(subst;~auto).] 0. secs (0.u,0.s) -Chars 2209 - 2213 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2209 - 2213 [Qed.] 0.002 secs (0.001u,0.s) Chars 2217 - 2287 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 2290 - 2296 [Proof.] 0. secs (0.u,0.s) Chars 2301 - 2333 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) @@ -89,7 +89,7 @@ Chars 2413 - 2414 [+] 0. secs (0.u,0.s) Chars 2415 - 2429 [constructor~1.] 0. secs (0.u,0.s) Chars 2430 - 2452 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 2453 - 2475 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 2476 - 2488 [reflexivity.] 0.011 secs (0.01u,0.s) +Chars 2476 - 2488 [reflexivity.] 0.01 secs (0.009u,0.s) Chars 2495 - 2496 [+] 0. secs (0.u,0.s) Chars 2497 - 2531 [(econstructor~2;~repeat~red;~e...] 0.001 secs (0.001u,0.s) Chars 2540 - 2562 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) @@ -108,7 +108,7 @@ Chars 2897 - 2947 [(decompose~[~ex~and~]~IHiter_P...] 0. secs (0.u,0.s) Chars 2956 - 2984 [(inversion~H;~clear~H;~subst).] 0. secs (0.u,0.s) Chars 2993 - 3015 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3016 - 3038 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 3041 - 3045 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3041 - 3045 [Qed.] 0.006 secs (0.005u,0.s) Chars 3049 - 3123 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 3126 - 3132 [Proof.] 0. secs (0.u,0.s) Chars 3137 - 3169 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) @@ -169,7 +169,7 @@ Chars 4215 - 4221 [subst.] 0. secs (0.u,0.s) Chars 4222 - 4236 [constructor~1.] 0. secs (0.u,0.s) Chars 4237 - 4259 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 4260 - 4272 [reflexivity.] 0. secs (0.u,0.s) -Chars 4275 - 4279 [Qed.] 0.023 secs (0.023u,0.s) +Chars 4275 - 4279 [Qed.] 0.024 secs (0.023u,0.s) Chars 4283 - 4362 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 4365 - 4371 [Proof.] 0. secs (0.u,0.s) Chars 4376 - 4408 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) @@ -178,7 +178,7 @@ Chars 4415 - 4427 [(induction~H).] 0. secs (0.u,0.s) Chars 4434 - 4435 [+] 0. secs (0.u,0.s) Chars 4436 - 4453 [(remember~(inr~r)).] 0. secs (0.u,0.s) Chars 4454 - 4477 [generalize~dependent~r.] 0. secs (0.u,0.s) -Chars 4478 - 4505 [(induction~H;~intros;~subst).] 0.001 secs (0.001u,0.s) +Chars 4478 - 4505 [(induction~H;~intros;~subst).] 0. secs (0.u,0.s) Chars 4514 - 4515 [*] 0. secs (0.u,0.s) Chars 4516 - 4530 [constructor~1.] 0. secs (0.u,0.s) Chars 4531 - 4566 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadState.v.timing b/theories/Basics/MonadState.v.timing index fa002b97..afb26271 100644 --- a/theories/Basics/MonadState.v.timing +++ b/theories/Basics/MonadState.v.timing @@ -1,4 +1,4 @@ -Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) Chars 73 - 122 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.012 secs (0.009u,0.002s) Chars 271 - 305 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) @@ -58,14 +58,14 @@ Chars 1327 - 1338 [(repeat~red).] 0. secs (0.u,0.s) Chars 1339 - 1364 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) Chars 1365 - 1366 [}] 0. secs (0.u,0.s) Chars 1371 - 1381 [(rewrite~H).] 0.001 secs (0.u,0.s) -Chars 1386 - 1405 [(rewrite~bind_ret_r).] 0. secs (0.u,0.s) +Chars 1386 - 1405 [(rewrite~bind_ret_r).] 0.001 secs (0.u,0.s) Chars 1406 - 1418 [reflexivity.] 0. secs (0.u,0.s) Chars 1421 - 1422 [-] 0. secs (0.u,0.s) Chars 1423 - 1427 [(cbn).] 0. secs (0.u,0.s) Chars 1428 - 1447 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) Chars 1452 - 1463 [(repeat~red).] 0. secs (0.u,0.s) Chars 1464 - 1473 [(intros~s).] 0. secs (0.u,0.s) -Chars 1478 - 1496 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 1478 - 1496 [(rewrite~bind_bind).] 0.002 secs (0.001u,0.s) Chars 1501 - 1519 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 1524 - 1525 [+] 0. secs (0.u,0.s) Chars 1526 - 1538 [reflexivity.] 0. secs (0.u,0.s) @@ -99,7 +99,7 @@ Chars 2469 - 2473 [(cbn).] 0. secs (0.u,0.s) Chars 2475 - 2483 [(apply~H).] 0. secs (0.u,0.s) Chars 2488 - 2489 [-] 0. secs (0.u,0.s) Chars 2490 - 2497 [(intros).] 0. secs (0.u,0.s) -Chars 2504 - 2515 [(repeat~red).] 0.012 secs (0.011u,0.s) +Chars 2504 - 2515 [(repeat~red).] 0.012 secs (0.011u,0.001s) Chars 2516 - 2523 [(intros).] 0. secs (0.u,0.s) Chars 2530 - 2554 [(unfold~internalize~in~H).] 0. secs (0.u,0.s) Chars 2561 - 2585 [specialize~(H~(a1,~a0)).] 0. secs (0.u,0.s) @@ -114,7 +114,7 @@ Chars 2832 - 2851 [(unfold~internalize).] 0. secs (0.u,0.s) Chars 2856 - 2880 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 2885 - 2889 [(cbn).] 0. secs (0.u,0.s) Chars 2894 - 2906 [reflexivity.] 0. secs (0.u,0.s) -Chars 2909 - 2913 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2909 - 2913 [Qed.] 0.001 secs (0.u,0.s) Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 3092 - 3098 [Proof.] 0. secs (0.u,0.s) Chars 3103 - 3114 [(repeat~red).] 0. secs (0.u,0.s) @@ -149,7 +149,7 @@ Chars 3844 - 3852 [(apply~H).] 0. secs (0.u,0.s) Chars 3857 - 3858 [-] 0. secs (0.u,0.s) Chars 3859 - 3870 [(repeat~red).] 0. secs (0.u,0.s) Chars 3871 - 3912 [(destruct~a2~as~[s'~[x1|~y1]];...] 0. secs (0.u,0.s) -Chars 3914 - 3918 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3914 - 3918 [Qed.] 0.002 secs (0.002u,0.s) Chars 3922 - 3997 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 4000 - 4006 [Proof.] 0. secs (0.u,0.s) Chars 4009 - 4021 [(destruct~CM).] 0. secs (0.u,0.s) @@ -197,14 +197,14 @@ Chars 4869 - 4870 [-] 0. secs (0.u,0.s) Chars 4871 - 4883 [reflexivity.] 0. secs (0.u,0.s) Chars 4888 - 4889 [-] 0. secs (0.u,0.s) Chars 4890 - 4901 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4902 - 4937 [(destruct~a2~as~[s'~[x|~y]];~s...] 0.001 secs (0.001u,0.s) +Chars 4902 - 4937 [(destruct~a2~as~[s'~[x|~y]];~s...] 0.001 secs (0.u,0.s) Chars 4944 - 4945 [+] 0. secs (0.u,0.s) Chars 4946 - 4958 [(unfold~pure).] 0. secs (0.u,0.s) Chars 4959 - 4978 [(rewrite~bind_ret_l).] 0.004 secs (0.003u,0.001s) Chars 4987 - 4991 [(cbn).] 0. secs (0.u,0.s) Chars 4992 - 5016 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 5017 - 5021 [(cbn).] 0. secs (0.u,0.s) -Chars 5030 - 5048 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 5030 - 5048 [(rewrite~bind_bind).] 0.003 secs (0.002u,0.s) Chars 5057 - 5076 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) Chars 5085 - 5104 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 5113 - 5117 [(cbn).] 0. secs (0.u,0.s) @@ -214,7 +214,7 @@ Chars 5163 - 5182 [(rewrite~bind_ret_l).] 0.002 secs (0.001u,0.s) Chars 5183 - 5195 [reflexivity.] 0. secs (0.u,0.s) Chars 5202 - 5203 [+] 0. secs (0.u,0.s) Chars 5204 - 5216 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 5217 - 5236 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 5217 - 5236 [(rewrite~bind_ret_l).] 0.005 secs (0.004u,0.s) Chars 5245 - 5249 [(cbn).] 0. secs (0.u,0.s) Chars 5250 - 5274 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 5275 - 5279 [(cbn).] 0. secs (0.u,0.s) @@ -228,7 +228,7 @@ Chars 5379 - 5391 [(destruct~a2).] 0. secs (0.u,0.s) Chars 5402 - 5406 [(cbn).] 0. secs (0.u,0.s) Chars 5417 - 5436 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 5437 - 5449 [reflexivity.] 0. secs (0.u,0.s) -Chars 5452 - 5456 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5452 - 5456 [Qed.] 0.008 secs (0.008u,0.s) Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0.001 secs (0.001u,0.s) Chars 5644 - 5650 [Proof.] 0. secs (0.u,0.s) Chars 5655 - 5667 [reflexivity.] 0. secs (0.u,0.s) @@ -276,7 +276,7 @@ Chars 6845 - 6871 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) Chars 6876 - 6896 [(eapply~transitivity).] 0. secs (0.u,0.s) Chars 6901 - 6930 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 6935 - 6963 [(apply~iter_dinatural_helper).] 0. secs (0.u,0.s) -Chars 6968 - 6996 [(rewrite~iterative_dinatural).] 0.004 secs (0.004u,0.s) +Chars 6968 - 6996 [(rewrite~iterative_dinatural).] 0.005 secs (0.004u,0.s) Chars 7001 - 7005 [(cbn).] 0. secs (0.u,0.s) Chars 7010 - 7034 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 7039 - 7057 [(rewrite~bind_bind).] 0.007 secs (0.007u,0.s) @@ -296,7 +296,7 @@ Chars 7251 - 7280 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 7289 - 7300 [(repeat~red).] 0. secs (0.u,0.s) Chars 7309 - 7321 [(destruct~a2).] 0. secs (0.u,0.s) Chars 7330 - 7334 [(cbn).] 0. secs (0.u,0.s) -Chars 7335 - 7354 [(rewrite~!bind_bind).] 0.009 secs (0.009u,0.s) +Chars 7335 - 7354 [(rewrite~!bind_bind).] 0.008 secs (0.008u,0.s) Chars 7363 - 7381 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 7390 - 7391 [*] 0. secs (0.u,0.s) Chars 7392 - 7404 [reflexivity.] 0. secs (0.u,0.s) @@ -319,8 +319,8 @@ Chars 7719 - 7731 [(unfold~pure).] 0. secs (0.u,0.s) Chars 7740 - 7759 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 7768 - 7772 [(cbn).] 0. secs (0.u,0.s) Chars 7781 - 7793 [reflexivity.] 0. secs (0.u,0.s) -Chars 7798 - 7802 [Qed.] 0.014 secs (0.013u,0.s) -Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) +Chars 7798 - 7802 [Qed.] 0.012 secs (0.012u,0.s) +Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0.001 secs (0.001u,0.s) Chars 7893 - 7899 [Proof.] 0. secs (0.u,0.s) Chars 7904 - 7916 [(destruct~CM).] 0. secs (0.u,0.s) Chars 7921 - 7943 [(unfold~IterCodiagonal).] 0. secs (0.u,0.s) @@ -351,7 +351,7 @@ Chars 8645 - 8656 [(repeat~red).] 0. secs (0.u,0.s) Chars 8660 - 8672 [(destruct~a2).] 0. secs (0.u,0.s) Chars 8676 - 8700 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 8701 - 8705 [(cbn).] 0. secs (0.u,0.s) -Chars 8709 - 8734 [(repeat~rewrite~bind_bind).] 0.018 secs (0.018u,0.s) +Chars 8709 - 8734 [(repeat~rewrite~bind_bind).] 0.019 secs (0.019u,0.s) Chars 8738 - 8763 [(unfold~internalize,~pure).] 0. secs (0.u,0.s) Chars 8767 - 8771 [(cbn).] 0. secs (0.u,0.s) Chars 8775 - 8793 [(apply~Proper_bind).] 0. secs (0.u,0.s) @@ -361,10 +361,10 @@ Chars 8817 - 8818 [-] 0. secs (0.u,0.s) Chars 8819 - 8830 [(repeat~red).] 0. secs (0.u,0.s) Chars 8837 - 8871 [(destruct~a3~as~[s'~[x|~[y|~z]...] 0. secs (0.u,0.s) Chars 8878 - 8879 [+] 0. secs (0.u,0.s) -Chars 8880 - 8899 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) +Chars 8880 - 8899 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 8908 - 8912 [(cbn).] 0. secs (0.u,0.s) Chars 8913 - 8942 [(unfold~id_,~Id_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 8951 - 8970 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 8951 - 8970 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) Chars 8979 - 9003 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 9012 - 9030 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) Chars 9039 - 9058 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) @@ -385,16 +385,16 @@ Chars 9360 - 9372 [reflexivity.] 0. secs (0.u,0.s) Chars 9379 - 9380 [+] 0. secs (0.u,0.s) Chars 9381 - 9400 [(rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) Chars 9409 - 9413 [(cbn).] 0. secs (0.u,0.s) -Chars 9422 - 9441 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 9422 - 9441 [(rewrite~bind_ret_l).] 0.005 secs (0.004u,0.s) Chars 9450 - 9474 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 9483 - 9513 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 9483 - 9513 [(rewrite~bind_bind,~bind_ret_l).] 0.016 secs (0.01u,0.s) Chars 9514 - 9518 [(cbn).] 0. secs (0.u,0.s) Chars 9527 - 9558 [(unfold~inr_,~Inr_Kleisli,~pure).] 0. secs (0.u,0.s) Chars 9567 - 9586 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 9595 - 9607 [reflexivity.] 0. secs (0.u,0.s) -Chars 9610 - 9614 [Qed.] 0.017 secs (0.016u,0.s) -Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) +Chars 9610 - 9614 [Qed.] 0.021 secs (0.02u,0.001s) +Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0.001 secs (0.001u,0.s) Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) Chars 9703 - 9736 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 9739 - 9743 [Qed.] 0. secs (0.u,0.s) -Chars 9745 - 9755 [End~State.] 0.003 secs (0.002u,0.s) +Chars 9745 - 9755 [End~State.] 0.003 secs (0.003u,0.s) diff --git a/theories/Basics/Utils.v.timing b/theories/Basics/Utils.v.timing index f7ed4760..e9b51e40 100644 --- a/theories/Basics/Utils.v.timing +++ b/theories/Basics/Utils.v.timing @@ -1,7 +1,7 @@ Chars 0 - 51 [#[global]~Set~Warnings~"-intui...] 0. secs (0.u,0.s) Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 90 - 121 [Require~Import~Program.Tactics.] 0. secs (0.u,0.s) -Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.035 secs (0.029u,0.006s) +Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.037 secs (0.029u,0.007s) Chars 155 - 207 [Ltac~inv~H~:=~inversion~H;~cle...] 0. secs (0.u,0.s) Chars 278 - 334 [Lemma~hexploit_mp~:~forall~P~Q...] 0. secs (0.u,0.s) Chars 335 - 341 [Proof.] 0. secs (0.u,0.s) @@ -22,25 +22,15 @@ Chars 2816 - 3238 [Ltac~~eappn~f~:=~~~match~goal~...] 0. secs (0.u,0.s) Chars 3240 - 3436 [Ltac~~break~H~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) Chars 3438 - 3670 [Ltac~~crunch~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) Chars 3672 - 3993 [Ltac~~saturate~H~:=~~~match~go...] 0. secs (0.u,0.s) -Chars 4025 - 4125 [Lemma~pacobot1~(T0~:~Type)~(gf...] 0. secs (0.u,0.s) -Chars 4126 - 4132 [Proof.] 0. secs (0.u,0.s) -Chars 4135 - 4147 [(intros~x0~H).] 0. secs (0.u,0.s) -Chars 4148 - 4185 [(apply~(paco1_mon~_~H);~contra...] 0. secs (0.u,0.s) -Chars 4186 - 4190 [Qed.] 0. secs (0.u,0.s) -Chars 4192 - 4319 [Lemma~pacobot2~(T0~:~Type)~(T1...] 0. secs (0.u,0.s) -Chars 4320 - 4326 [Proof.] 0. secs (0.u,0.s) -Chars 4329 - 4344 [(intros~x0~x1~H).] 0. secs (0.u,0.s) -Chars 4345 - 4383 [(eapply~(paco2_mon~_~H);~contr...] 0. secs (0.u,0.s) -Chars 4384 - 4388 [Qed.] 0. secs (0.u,0.s) -Chars 4499 - 4575 [Lemma~pfp_gfp~{X}~{L~:~Complet...] 0. secs (0.u,0.s) -Chars 4576 - 4582 [Proof.] 0. secs (0.u,0.s) -Chars 4583 - 4597 [(apply~b_chain).] 0. secs (0.u,0.s) -Chars 4598 - 4602 [Qed.] 0. secs (0.u,0.s) -Chars 4655 - 4969 [Ltac~~step_~:=~~~match~goal~wi...] 0. secs (0.u,0.s) -Chars 4971 - 5134 [Ltac~~step~:=~~~match~goal~wit...] 0. secs (0.u,0.s) -Chars 5137 - 5225 [Ltac~~step_in~h~:=~~~match~typ...] 0. secs (0.u,0.s) -Chars 5227 - 5277 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 5279 - 5357 [Ltac~unstep~:=~match~goal~with...] 0. secs (0.u,0.s) -Chars 5359 - 5449 [Ltac~~unstep_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 5451 - 5505 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) -Chars 5556 - 5666 [Tactic~Notation~"hinduction"~h...] 0. secs (0.u,0.s) +Chars 4104 - 4180 [Lemma~pfp_gfp~{X}~{L~:~Complet...] 0. secs (0.u,0.s) +Chars 4181 - 4187 [Proof.] 0. secs (0.u,0.s) +Chars 4188 - 4202 [(apply~b_chain).] 0. secs (0.u,0.s) +Chars 4203 - 4207 [Qed.] 0. secs (0.u,0.s) +Chars 4260 - 4574 [Ltac~~step_~:=~~~match~goal~wi...] 0. secs (0.u,0.s) +Chars 4576 - 4739 [Ltac~~step~:=~~~match~goal~wit...] 0. secs (0.u,0.s) +Chars 4742 - 4830 [Ltac~~step_in~h~:=~~~match~typ...] 0. secs (0.u,0.s) +Chars 4832 - 4882 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 4884 - 4962 [Ltac~unstep~:=~match~goal~with...] 0. secs (0.u,0.s) +Chars 4964 - 5054 [Ltac~~unstep_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 5056 - 5110 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) +Chars 5161 - 5271 [Tactic~Notation~"hinduction"~h...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeDefinition.v.timing b/theories/Core/ITreeDefinition.v.timing index a58ecf6d..19ece456 100644 --- a/theories/Core/ITreeDefinition.v.timing +++ b/theories/Core/ITreeDefinition.v.timing @@ -2,7 +2,7 @@ Chars 63 - 104 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 105 - 150 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 151 - 190 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.004 secs (0.003u,0.001s) -Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.033 secs (0.027u,0.005s) +Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.035 secs (0.027u,0.007s) Chars 267 - 290 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 291 - 315 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 316 - 342 [Set~Primitive~Projections.] 0. secs (0.u,0.s) @@ -24,11 +24,11 @@ Chars 3361 - 3393 [Notation~Ret~x:=~(go~(RetF~x)).] 0. secs (0.u,0.s) Chars 3394 - 3426 [Notation~Tau~t:=~(go~(TauF~t)).] 0. secs (0.u,0.s) Chars 3427 - 3463 [Notation~Vis~e~k:=~(go~(VisF~e...] 0. secs (0.u,0.s) Chars 5126 - 5139 [Module~ITree.] 0. secs (0.u,0.s) -Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0.001 secs (0.u,0.s) +Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 5899 - 6013 [Definition~bind~{E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 6089 - 6213 [Definition~cat~{E}~{T}~{U}~{V}...] 0. secs (0.u,0.s) Chars 6495 - 6595 [Notation~on_left~lr~l~t:=~matc...] 0. secs (0.u,0.s) -Chars 6764 - 6946 [Definition~iter~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) +Chars 6764 - 6946 [Definition~iter~{E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 7273 - 7371 [Definition~map~{E}~{R}~{S}~(f~...] 0. secs (0.u,0.s) Chars 7421 - 7513 [Definition~trigger~{E~:~Type~-...] 0. secs (0.u,0.s) Chars 7551 - 7626 [Definition~ignore~{E}~{R}~:~it...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeMonad.v.timing b/theories/Core/ITreeMonad.v.timing index 1f89f6a4..e2863e98 100644 --- a/theories/Core/ITreeMonad.v.timing +++ b/theories/Core/ITreeMonad.v.timing @@ -1,5 +1,5 @@ -Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.054 secs (0.044u,0.01s) -Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0. secs (0.u,0.s) +Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.056 secs (0.045u,0.011s) +Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0.001 secs (0.u,0.s) Chars 353 - 424 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 425 - 431 [Proof.] 0. secs (0.u,0.s) Chars 434 - 445 [(repeat~red).] 0. secs (0.u,0.s) @@ -25,8 +25,8 @@ Chars 822 - 823 [-] 0. secs (0.u,0.s) Chars 824 - 843 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) Chars 844 - 886 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) Chars 891 - 913 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) -Chars 914 - 932 [(rewrite~bind_bind).] 0.019 secs (0.017u,0.001s) -Chars 933 - 945 [reflexivity.] 0. secs (0.u,0.s) +Chars 914 - 932 [(rewrite~bind_bind).] 0. secs (0.u,0.s) +Chars 933 - 945 [reflexivity.] 0.019 secs (0.017u,0.001s) Chars 948 - 949 [-] 0. secs (0.u,0.s) Chars 950 - 981 [(unfold~Monad.bind,~Monad_itree).] 0. secs (0.u,0.s) Chars 986 - 993 [(intros).] 0. secs (0.u,0.s) diff --git a/theories/Core/KTree.v.timing b/theories/Core/KTree.v.timing index 40a290a7..94016352 100644 --- a/theories/Core/KTree.v.timing +++ b/theories/Core/KTree.v.timing @@ -1,5 +1,5 @@ Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.054 secs (0.044u,0.009s) +Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.054 secs (0.043u,0.01s) Chars 382 - 414 [Implicit~Type~E~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 415 - 441 [Implicit~Types~a~b~:~Type.] 0. secs (0.u,0.s) Chars 443 - 483 [Notation~ktree~E:=~(Kleisli~(i...] 0. secs (0.u,0.s) diff --git a/theories/Core/KTreeFacts.v.timing b/theories/Core/KTreeFacts.v.timing index 4e5796c0..ed66b86f 100644 --- a/theories/Core/KTreeFacts.v.timing +++ b/theories/Core/KTreeFacts.v.timing @@ -1,275 +1,276 @@ -Chars 103 - 198 [From~Stdlib~Require~Import~Cla...] 0.006 secs (0.005u,0.001s) -Chars 200 - 530 [From~ITree~Require~Import~Basi...] 0.055 secs (0.045u,0.01s) -Chars 532 - 552 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 553 - 582 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 583 - 610 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 627 - 888 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) -Chars 916 - 960 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) -Chars 963 - 1150 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) -Chars 1152 - 1193 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) -Chars 1196 - 1500 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.021 secs (0.019u,0.001s) -Chars 1501 - 1507 [Proof.] 0. secs (0.u,0.s) -Chars 1510 - 1522 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1585 - 1592 [(intros).] 0. secs (0.u,0.s) -Chars 1715 - 1736 [(rewrite~!unfold_iter).] 0.072 secs (0.072u,0.s) -Chars 1739 - 1767 [(rewrite~bind_map,~bind_bind).] 0.042 secs (0.035u,0.007s) -Chars 1770 - 1776 [ebind.] 0.007 secs (0.007u,0.s) -Chars 1780 - 1800 [(intros~[a|~b]~_~[]).] 0.001 secs (0.001u,0.s) -Chars 1803 - 1804 [-] 0. secs (0.u,0.s) -Chars 1805 - 1822 [(rewrite~bind_tau).] 0.016 secs (0.016u,0.s) -Chars 1823 - 1828 [taus.] 0. secs (0.u,0.s) -Chars 1833 - 1844 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 1848 - 1849 [-] 0. secs (0.u,0.s) -Chars 1850 - 1881 [(rewrite~bind_ret_l,~tau_euttge).] 0.022 secs (0.022u,0.s) -Chars 1937 - 1947 [(do~2~step).] 0.01 secs (0.01u,0.s) -Chars 1948 - 1957 [revert~b.] 0. secs (0.u,0.s) -Chars 1958 - 1970 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1971 - 1978 [(intros).] 0. secs (0.u,0.s) -Chars 1984 - 2005 [(rewrite~!unfold_iter).] 0.035 secs (0.035u,0.s) -Chars 2010 - 2027 [(rewrite~bind_map).] 0.018 secs (0.018u,0.s) -Chars 2032 - 2038 [ebind.] 0.008 secs (0.008u,0.s) -Chars 2044 - 2072 [(intros~[b'|~c'']~_~[];~cbn).] 0.001 secs (0.001u,0.s) -Chars 2077 - 2078 [+] 0. secs (0.u,0.s) -Chars 2079 - 2088 [now~taus.] 0. secs (0.u,0.s) -Chars 2093 - 2094 [+] 0. secs (0.u,0.s) -Chars 2095 - 2107 [reflexivity.] 0. secs (0.u,0.s) -Chars 2108 - 2112 [Qed.] 0.019 secs (0.018u,0.s) -Chars 2117 - 2511 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) -Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) -Chars 2521 - 2539 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) -Chars 2540 - 2547 [(intros).] 0. secs (0.u,0.s) -Chars 2551 - 2585 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 2588 - 2613 [(do~2~rewrite~unfold_iter).] 0.027 secs (0.027u,0.s) -Chars 2616 - 2639 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 2643 - 2653 [(do~2~step).] 0.016 secs (0.016u,0.s) -Chars 2654 - 2670 [(apply~eutt_body).] 0. secs (0.u,0.s) -Chars 2674 - 2709 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 2711 - 2715 [Qed.] 0.006 secs (0.006u,0.s) -Chars 2717 - 3099 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) -Chars 3100 - 3106 [Proof.] 0. secs (0.u,0.s) -Chars 3109 - 3127 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 3128 - 3135 [(intros).] 0. secs (0.u,0.s) -Chars 3139 - 3173 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3176 - 3201 [(do~2~rewrite~unfold_iter).] 0.028 secs (0.028u,0.s) -Chars 3204 - 3210 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3213 - 3230 [(do~2~step;~eauto).] 0.015 secs (0.015u,0.s) -Chars 3234 - 3269 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 3271 - 3275 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3277 - 3692 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0.001 secs (0.001u,0.s) -Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) -Chars 3702 - 3720 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 3721 - 3728 [(intros).] 0. secs (0.u,0.s) -Chars 3732 - 3766 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3769 - 3794 [(do~2~rewrite~unfold_iter).] 0.03 secs (0.03u,0.s) -Chars 3797 - 3803 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3807 - 3824 [(do~2~step;~eauto).] 0.016 secs (0.016u,0.s) -Chars 3828 - 3863 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 3864 - 3884 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) -Chars 3885 - 3889 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3891 - 4097 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) -Chars 4098 - 4104 [Proof.] 0. secs (0.u,0.s) -Chars 4107 - 4154 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) -Chars 4155 - 4170 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) -Chars 4173 - 4199 [(eapply~eutt_iter'';~eauto).] 0. secs (0.u,0.s) -Chars 4200 - 4204 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4224 - 4424 [#[global]~Instance~eq_itree_it...] 0. secs (0.u,0.s) -Chars 4425 - 4431 [Proof.] 0. secs (0.u,0.s) -Chars 4434 - 4463 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) -Chars 4464 - 4486 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) -Chars 4489 - 4502 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4505 - 4538 [(eapply~(eq_itree_iter'~eq);~a...] 0.003 secs (0.003u,0.s) -Chars 4541 - 4581 [(intros;~eapply~eqit_mono,~EQ_...] 0.002 secs (0.002u,0.s) -Chars 4584 - 4632 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) -Chars 4633 - 4637 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4639 - 4841 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) -Chars 4842 - 4848 [Proof.] 0. secs (0.u,0.s) -Chars 4851 - 4880 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) -Chars 4881 - 4903 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) -Chars 4906 - 4919 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4922 - 4951 [(eapply~(eutt_iter'~eq);~auto).] 0.003 secs (0.003u,0.s) -Chars 4954 - 5001 [(intros~?~_~[];~eapply~eqit_mo...] 0.002 secs (0.002u,0.s) -Chars 5004 - 5045 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) -Chars 5046 - 5050 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5052 - 5234 [Definition~eutt_iter_gen~{F}~{...] 0. secs (0.u,0.s) -Chars 5235 - 5241 [Proof.] 0. secs (0.u,0.s) -Chars 5244 - 5291 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) -Chars 5292 - 5307 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) -Chars 5310 - 5335 [(eapply~eutt_iter';~eauto).] 0. secs (0.u,0.s) -Chars 5336 - 5340 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5342 - 5470 [#[global]~Instance~eq2_ktree_i...] 0. secs (0.u,0.s) -Chars 5471 - 5477 [Proof.] 0. secs (0.u,0.s) -Chars 5478 - 5494 [(apply~eutt_iter).] 0. secs (0.u,0.s) -Chars 5495 - 5499 [Qed.] 0. secs (0.u,0.s) -Chars 5501 - 5524 [Section~KTreeIterative.] 0. secs (0.u,0.s) -Chars 5526 - 5720 [Lemma~unfold_iter_ktree~{E}~{A...] 0.001 secs (0.001u,0.s) -Chars 5721 - 5727 [Proof.] 0. secs (0.u,0.s) -Chars 5730 - 5748 [(apply~unfold_iter).] 0. secs (0.u,0.s) -Chars 5749 - 5753 [Qed.] 0. secs (0.u,0.s) -Chars 5755 - 5822 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) -Chars 5823 - 5829 [Proof.] 0. secs (0.u,0.s) -Chars 5832 - 5845 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5846 - 5859 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 5860 - 5886 [(rewrite~unfold_iter_ktree).] 0.001 secs (0.001u,0.s) -Chars 5889 - 5928 [(eapply~eutt_bind_eutt;~try~re...] 0. secs (0.u,0.s) -Chars 5931 - 5981 [(intros~[]~?~[];~try~rewrite~t...] 0.002 secs (0.002u,0.s) -Chars 5982 - 5986 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5988 - 6057 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) -Chars 6058 - 6064 [Proof.] 0. secs (0.u,0.s) -Chars 6067 - 6080 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 6081 - 6094 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 6097 - 6107 [revert~a0.] 0. secs (0.u,0.s) -Chars 6110 - 6129 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) -Chars 6130 - 6137 [(intros).] 0. secs (0.u,0.s) -Chars 6141 - 6169 [(rewrite~2!unfold_iter_ktree).] 0.04 secs (0.039u,0.s) -Chars 6172 - 6191 [(rewrite~!bind_bind).] 0.038 secs (0.038u,0.s) -Chars 6194 - 6200 [ebind.] 0.008 secs (0.008u,0.s) -Chars 6204 - 6219 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) -Chars 6222 - 6223 [-] 0. secs (0.u,0.s) -Chars 6224 - 6255 [(rewrite~bind_tau,~2!bind_ret_l).] 0.059 secs (0.059u,0.s) -Chars 6256 - 6265 [now~taus.] 0. secs (0.u,0.s) -Chars 6269 - 6270 [-] 0. secs (0.u,0.s) -Chars 6271 - 6302 [(rewrite~bind_ret_l,~!bind_bind).] 0.038 secs (0.038u,0.s) -Chars 6303 - 6329 [setoid_rewrite~bind_ret_l.] 0.039 secs (0.039u,0.s) -Chars 6330 - 6349 [(rewrite~bind_ret_r).] 0.017 secs (0.017u,0.s) -Chars 6354 - 6366 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6367 - 6371 [Qed.] 0.015 secs (0.014u,0.s) -Chars 6373 - 6911 [Lemma~iter_dinatural_ktree~{E}...] 0.002 secs (0.002u,0.s) -Chars 6912 - 6918 [Proof.] 0. secs (0.u,0.s) -Chars 6921 - 6941 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) -Chars 6945 - 6963 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) -Chars 6964 - 6971 [(intros).] 0. secs (0.u,0.s) -Chars 6975 - 7001 [(rewrite~unfold_iter_ktree).] 0.017 secs (0.017u,0.s) -Chars 7004 - 7022 [(rewrite~bind_bind).] 0.017 secs (0.017u,0.s) -Chars 7025 - 7031 [ebind.] 0.01 secs (0.01u,0.s) -Chars 7035 - 7050 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) -Chars 7162 - 7163 [-] 0. secs (0.u,0.s) -Chars 7164 - 7181 [(rewrite~bind_tau).] 0.018 secs (0.018u,0.s) -Chars 7182 - 7187 [taus.] 0. secs (0.u,0.s) -Chars 7188 - 7197 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 7198 - 7209 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7213 - 7214 [-] 0. secs (0.u,0.s) -Chars 7215 - 7234 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) -Chars 7235 - 7247 [reflexivity.] 0.002 secs (0.002u,0.s) -Chars 7249 - 7253 [Qed.] 0.01 secs (0.01u,0.s) -Chars 7255 - 7328 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) -Chars 7329 - 7335 [Proof.] 0. secs (0.u,0.s) -Chars 7338 - 7351 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 7352 - 7365 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 7368 - 7630 [(transitivity~~~(iter~(C:=ktre...] 0.001 secs (0.001u,0.s) -Chars 7633 - 7634 [-] 0. secs (0.u,0.s) -Chars 7635 - 7661 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) -Chars 7666 - 7688 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) -Chars 7693 - 7705 [reflexivity.] 0. secs (0.u,0.s) -Chars 7710 - 7725 [(intros~[]~?~[]).] 0. secs (0.u,0.s) -Chars 7730 - 7760 [(rewrite~tau_eutt;~reflexivity).] 0. secs (0.u,0.s) -Chars 7765 - 7777 [reflexivity.] 0. secs (0.u,0.s) -Chars 7780 - 7781 [-] 0. secs (0.u,0.s) -Chars 7782 - 7811 [(rewrite~iter_dinatural_ktree).] 0.002 secs (0.002u,0.s) -Chars 7816 - 7838 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) -Chars 7843 - 7855 [reflexivity.] 0. secs (0.u,0.s) -Chars 7860 - 7875 [(intros~[]~?~[]).] 0. secs (0.u,0.s) -Chars 7880 - 7881 [+] 0. secs (0.u,0.s) -Chars 7882 - 7899 [(rewrite~tau_eutt).] 0.002 secs (0.001u,0.s) -Chars 7906 - 7932 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) -Chars 7939 - 7961 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) -Chars 7968 - 7980 [reflexivity.] 0. secs (0.u,0.s) -Chars 7987 - 8002 [(intros~[]~?~[]).] 0. secs (0.u,0.s) -Chars 8009 - 8039 [(rewrite~tau_eutt;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 8046 - 8058 [reflexivity.] 0. secs (0.u,0.s) -Chars 8063 - 8064 [+] 0. secs (0.u,0.s) -Chars 8065 - 8077 [reflexivity.] 0. secs (0.u,0.s) -Chars 8078 - 8082 [Qed.] 0.006 secs (0.006u,0.s) -Chars 8084 - 8392 [Lemma~iter_codiagonal_ktree~{E...] 0.001 secs (0.001u,0.s) -Chars 8393 - 8399 [Proof.] 0. secs (0.u,0.s) -Chars 8402 - 8412 [revert~a0.] 0. secs (0.u,0.s) -Chars 8415 - 8433 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) -Chars 8434 - 8441 [(intros).] 0. secs (0.u,0.s) -Chars 8445 - 8471 [(rewrite~unfold_iter_ktree).] 0.016 secs (0.016u,0.s) -Chars 8474 - 8519 [(rewrite~(unfold_iter_ktree~(f...] 0.022 secs (0.022u,0.s) -Chars 8522 - 8560 [(rewrite~unfold_iter_ktree,~!b...] 0.063 secs (0.063u,0.s) -Chars 8563 - 8569 [ebind.] 0.008 secs (0.008u,0.s) -Chars 8573 - 8592 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) -Chars 8595 - 8596 [-] 0. secs (0.u,0.s) -Chars 8597 - 8626 [(rewrite~bind_ret_l,~bind_tau).] 0.041 secs (0.041u,0.s) -Chars 8631 - 8636 [taus.] 0. secs (0.u,0.s) -Chars 8642 - 8651 [revert~a.] 0. secs (0.u,0.s) -Chars 8656 - 8671 [accumulate~acc.] 0.002 secs (0.002u,0.s) -Chars 8677 - 8684 [(intros).] 0. secs (0.u,0.s) -Chars 8689 - 8715 [(rewrite~unfold_iter_ktree).] 0.018 secs (0.018u,0.s) -Chars 8720 - 8765 [(rewrite~(unfold_iter_ktree~(f...] 0.019 secs (0.019u,0.s) -Chars 8770 - 8789 [(rewrite~!bind_bind).] 0.038 secs (0.037u,0.s) -Chars 8794 - 8800 [ebind.] 0.012 secs (0.012u,0.s) -Chars 8806 - 8825 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) -Chars 8830 - 8831 [+] 0. secs (0.u,0.s) -Chars 8832 - 8861 [(rewrite~bind_tau,~bind_ret_l).] 0.042 secs (0.041u,0.s) -Chars 8862 - 8871 [now~taus.] 0. secs (0.u,0.s) -Chars 8877 - 8878 [+] 0. secs (0.u,0.s) -Chars 8879 - 8900 [(rewrite~2!bind_ret_l).] 0.039 secs (0.039u,0.s) -Chars 8901 - 8910 [now~taus.] 0. secs (0.u,0.s) -Chars 8916 - 8917 [+] 0. secs (0.u,0.s) -Chars 8918 - 8939 [(rewrite~2!bind_ret_l).] 0.04 secs (0.04u,0.s) -Chars 8940 - 8952 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8956 - 8957 [-] 0. secs (0.u,0.s) -Chars 8958 - 8979 [(rewrite~2!bind_ret_l).] 0.038 secs (0.038u,0.s) -Chars 8984 - 8993 [now~taus.] 0. secs (0.u,0.s) -Chars 8997 - 8998 [-] 0. secs (0.u,0.s) -Chars 8999 - 9020 [(rewrite~2!bind_ret_l).] 0.039 secs (0.038u,0.s) -Chars 9025 - 9037 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9039 - 9043 [Qed.] 0.034 secs (0.034u,0.s) -Chars 9045 - 9120 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) -Chars 9121 - 9127 [Proof.] 0. secs (0.u,0.s) -Chars 9130 - 9143 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 9144 - 9157 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9160 - 9190 [(rewrite~iter_codiagonal_ktree).] 0.002 secs (0.002u,0.s) -Chars 9193 - 9209 [(apply~eutt_iter).] 0. secs (0.u,0.s) -Chars 9212 - 9222 [(intros~a1).] 0. secs (0.u,0.s) -Chars 9225 - 9247 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) -Chars 9250 - 9262 [reflexivity.] 0. secs (0.u,0.s) -Chars 9265 - 9316 [(intros~[|~[]]~?~[];~rewrite~?...] 0.002 secs (0.002u,0.s) -Chars 9317 - 9321 [Qed.] 0.002 secs (0.002u,0.s) -Chars 9323 - 9388 [#[global]~Instance~Iterative_k...] 0. secs (0.u,0.s) -Chars 9389 - 9395 [Proof.] 0. secs (0.u,0.s) -Chars 9398 - 9423 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 9424 - 9428 [Qed.] 0. secs (0.u,0.s) -Chars 9489 - 9693 [Lemma~cat_iter~:~~~forall~{E~:...] 0.002 secs (0.002u,0.s) -Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) -Chars 9703 - 9712 [(intros~*).] 0. secs (0.u,0.s) -Chars 9715 - 9728 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9761 - 9772 [(repeat~red).] 0. secs (0.u,0.s) -Chars 9870 - 9889 [coinduction~c'~CIH.] 0.003 secs (0.003u,0.s) -Chars 9890 - 9897 [(intros).] 0. secs (0.u,0.s) -Chars 9903 - 9922 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) -Chars 9966 - 9986 [(rewrite~unfold_iter).] 0.019 secs (0.019u,0.s) -Chars 9993 - 10013 [(rewrite~unfold_iter).] 0.022 secs (0.022u,0.s) -Chars 10016 - 10035 [(rewrite~!bind_bind).] 0.04 secs (0.04u,0.s) -Chars 10038 - 10044 [ebind.] 0.008 secs (0.008u,0.s) -Chars 10090 - 10112 [(intros~[xa|~xb]~?~<-).] 0.002 secs (0.002u,0.s) -Chars 10115 - 10116 [-] 0. secs (0.u,0.s) -Chars 10180 - 10201 [(rewrite~!bind_ret_l).] 0.026 secs (0.025u,0.s) -Chars 10206 - 10223 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) -Chars 10228 - 10233 [taus.] 0. secs (0.u,0.s) -Chars 10239 - 10259 [specialize~(CIH~xa).] 0. secs (0.u,0.s) -Chars 10264 - 10273 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 10279 - 10301 [(rewrite~<-~bind_ret_l).] 0.015 secs (0.015u,0.s) -Chars 10302 - 10311 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 10317 - 10327 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 10331 - 10332 [-] 0. secs (0.u,0.s) -Chars 10369 - 10390 [(rewrite~!bind_ret_l).] 0.044 secs (0.044u,0.s) -Chars 10628 - 10647 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) -Chars 10652 - 10662 [(do~2~step).] 0.011 secs (0.011u,0.s) -Chars 10668 - 10682 [(generalize~xb).] 0. secs (0.u,0.s) -Chars 10687 - 10708 [coinduction~c''~CIH'.] 0.003 secs (0.003u,0.s) -Chars 10709 - 10716 [(intros).] 0. secs (0.u,0.s) -Chars 10768 - 10790 [(rewrite~2!unfold_iter).] 0.038 secs (0.037u,0.s) -Chars 10796 - 10815 [(rewrite~!bind_bind).] 0.047 secs (0.047u,0.s) -Chars 10866 - 10872 [ebind.] 0.009 secs (0.009u,0.s) -Chars 10877 - 10900 [(intros~[xb'|~xc]~?~<-).] 0.002 secs (0.002u,0.s) -Chars 10905 - 10906 [+] 0. secs (0.u,0.s) -Chars 10951 - 10971 [(rewrite~!bind_ret_l).] 0.076 secs (0.076u,0.s) -Chars 10978 - 10983 [taus.] 0. secs (0.u,0.s) -Chars 10990 - 11001 [(apply~CIH').] 0. secs (0.u,0.s) -Chars 11008 - 11009 [+] 0. secs (0.u,0.s) -Chars 11010 - 11030 [(rewrite~!bind_ret_l).] 0.047 secs (0.047u,0.s) -Chars 11037 - 11049 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11051 - 11055 [Qed.] 0.034 secs (0.034u,0.s) -Chars 11057 - 11076 [End~KTreeIterative.] 0.001 secs (0.001u,0.s) +Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) +Chars 97 - 192 [From~Stdlib~Require~Import~Cla...] 0.001 secs (0.001u,0.s) +Chars 194 - 538 [From~ITree~Require~Import~Basi...] 0.055 secs (0.044u,0.01s) +Chars 539 - 559 [Import~CatNotations.] 0. secs (0.u,0.s) +Chars 560 - 589 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 590 - 617 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) +Chars 634 - 895 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) +Chars 923 - 967 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) +Chars 970 - 1157 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) +Chars 1159 - 1200 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) +Chars 1203 - 1507 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.023 secs (0.021u,0.002s) +Chars 1508 - 1514 [Proof.] 0. secs (0.u,0.s) +Chars 1517 - 1529 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1592 - 1599 [(intros).] 0. secs (0.u,0.s) +Chars 1722 - 1743 [(rewrite~!unfold_iter).] 0.071 secs (0.07u,0.s) +Chars 1746 - 1774 [(rewrite~bind_map,~bind_bind).] 0.046 secs (0.036u,0.009s) +Chars 1777 - 1783 [ebind.] 0.008 secs (0.008u,0.s) +Chars 1787 - 1807 [(intros~[a|~b]~_~[]).] 0.001 secs (0.001u,0.s) +Chars 1810 - 1811 [-] 0. secs (0.u,0.s) +Chars 1812 - 1829 [(rewrite~bind_tau).] 0.018 secs (0.017u,0.s) +Chars 1830 - 1835 [taus.] 0. secs (0.u,0.s) +Chars 1840 - 1851 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 1855 - 1856 [-] 0. secs (0.u,0.s) +Chars 1857 - 1888 [(rewrite~bind_ret_l,~tau_euttge).] 0.026 secs (0.024u,0.001s) +Chars 1949 - 1959 [(do~2~step).] 0.01 secs (0.01u,0.s) +Chars 1960 - 1969 [revert~b.] 0. secs (0.u,0.s) +Chars 1970 - 1982 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1983 - 1990 [(intros).] 0. secs (0.u,0.s) +Chars 1996 - 2017 [(rewrite~!unfold_iter).] 0.035 secs (0.034u,0.s) +Chars 2022 - 2039 [(rewrite~bind_map).] 0.017 secs (0.017u,0.s) +Chars 2044 - 2050 [ebind.] 0.009 secs (0.009u,0.s) +Chars 2056 - 2084 [(intros~[b'|~c'']~_~[];~cbn).] 0.001 secs (0.001u,0.s) +Chars 2089 - 2090 [+] 0. secs (0.u,0.s) +Chars 2091 - 2100 [now~taus.] 0. secs (0.u,0.s) +Chars 2105 - 2106 [+] 0. secs (0.u,0.s) +Chars 2107 - 2119 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 2120 - 2124 [Qed.] 0.02 secs (0.02u,0.s) +Chars 2129 - 2523 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) +Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) +Chars 2533 - 2551 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) +Chars 2552 - 2559 [(intros).] 0. secs (0.u,0.s) +Chars 2563 - 2597 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) +Chars 2600 - 2625 [(do~2~rewrite~unfold_iter).] 0.028 secs (0.028u,0.s) +Chars 2628 - 2651 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 2655 - 2665 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 2666 - 2682 [(apply~eutt_body).] 0. secs (0.u,0.s) +Chars 2686 - 2721 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) +Chars 2723 - 2727 [Qed.] 0.006 secs (0.006u,0.s) +Chars 2729 - 3111 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) +Chars 3112 - 3118 [Proof.] 0. secs (0.u,0.s) +Chars 3121 - 3139 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3140 - 3147 [(intros).] 0. secs (0.u,0.s) +Chars 3151 - 3185 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) +Chars 3188 - 3213 [(do~2~rewrite~unfold_iter).] 0.03 secs (0.03u,0.s) +Chars 3216 - 3222 [ebind.] 0.005 secs (0.005u,0.s) +Chars 3225 - 3242 [(do~2~step;~eauto).] 0.015 secs (0.015u,0.s) +Chars 3246 - 3281 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) +Chars 3283 - 3287 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3289 - 3704 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0.001 secs (0.001u,0.s) +Chars 3705 - 3711 [Proof.] 0. secs (0.u,0.s) +Chars 3714 - 3732 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3733 - 3740 [(intros).] 0. secs (0.u,0.s) +Chars 3744 - 3778 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) +Chars 3781 - 3806 [(do~2~rewrite~unfold_iter).] 0.029 secs (0.029u,0.s) +Chars 3809 - 3815 [ebind.] 0.004 secs (0.004u,0.s) +Chars 3819 - 3836 [(do~2~step;~eauto).] 0.016 secs (0.016u,0.s) +Chars 3840 - 3875 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) +Chars 3876 - 3896 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) +Chars 3897 - 3901 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3903 - 4109 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) +Chars 4110 - 4116 [Proof.] 0. secs (0.u,0.s) +Chars 4119 - 4166 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) +Chars 4167 - 4182 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 4185 - 4211 [(eapply~eutt_iter'';~eauto).] 0. secs (0.u,0.s) +Chars 4212 - 4216 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4236 - 4436 [#[global]~Instance~eq_itree_it...] 0. secs (0.u,0.s) +Chars 4437 - 4443 [Proof.] 0. secs (0.u,0.s) +Chars 4446 - 4475 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) +Chars 4476 - 4498 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 4501 - 4514 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 4517 - 4550 [(eapply~(eq_itree_iter'~eq);~a...] 0.003 secs (0.003u,0.s) +Chars 4553 - 4593 [(intros;~eapply~eqit_mono,~EQ_...] 0.002 secs (0.002u,0.s) +Chars 4596 - 4644 [(intros~[]~_~[];~auto;~econstr...] 0.001 secs (0.001u,0.s) +Chars 4645 - 4649 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4651 - 4853 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) +Chars 4854 - 4860 [Proof.] 0. secs (0.u,0.s) +Chars 4863 - 4892 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) +Chars 4893 - 4915 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 4918 - 4931 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 4934 - 4963 [(eapply~(eutt_iter'~eq);~auto).] 0.003 secs (0.003u,0.s) +Chars 4966 - 5013 [(intros~?~_~[];~eapply~eqit_mo...] 0.002 secs (0.002u,0.s) +Chars 5016 - 5057 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) +Chars 5058 - 5062 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5064 - 5246 [Definition~eutt_iter_gen~{F}~{...] 0. secs (0.u,0.s) +Chars 5247 - 5253 [Proof.] 0. secs (0.u,0.s) +Chars 5256 - 5303 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) +Chars 5304 - 5319 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 5322 - 5347 [(eapply~eutt_iter';~eauto).] 0. secs (0.u,0.s) +Chars 5348 - 5352 [Qed.] 0. secs (0.u,0.s) +Chars 5354 - 5482 [#[global]~Instance~eq2_ktree_i...] 0. secs (0.u,0.s) +Chars 5483 - 5489 [Proof.] 0. secs (0.u,0.s) +Chars 5490 - 5506 [(apply~eutt_iter).] 0. secs (0.u,0.s) +Chars 5507 - 5511 [Qed.] 0. secs (0.u,0.s) +Chars 5513 - 5536 [Section~KTreeIterative.] 0. secs (0.u,0.s) +Chars 5538 - 5732 [Lemma~unfold_iter_ktree~{E}~{A...] 0.001 secs (0.001u,0.s) +Chars 5733 - 5739 [Proof.] 0. secs (0.u,0.s) +Chars 5742 - 5760 [(apply~unfold_iter).] 0. secs (0.u,0.s) +Chars 5761 - 5765 [Qed.] 0. secs (0.u,0.s) +Chars 5767 - 5834 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) +Chars 5835 - 5841 [Proof.] 0. secs (0.u,0.s) +Chars 5844 - 5857 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5858 - 5871 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 5872 - 5898 [(rewrite~unfold_iter_ktree).] 0.001 secs (0.001u,0.s) +Chars 5901 - 5940 [(eapply~eutt_bind_eutt;~try~re...] 0. secs (0.u,0.s) +Chars 5943 - 5993 [(intros~[]~?~[];~try~rewrite~t...] 0.002 secs (0.002u,0.s) +Chars 5994 - 5998 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6000 - 6069 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) +Chars 6070 - 6076 [Proof.] 0. secs (0.u,0.s) +Chars 6079 - 6092 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 6093 - 6106 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 6109 - 6119 [revert~a0.] 0. secs (0.u,0.s) +Chars 6122 - 6141 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) +Chars 6142 - 6149 [(intros).] 0. secs (0.u,0.s) +Chars 6153 - 6181 [(rewrite~2!unfold_iter_ktree).] 0.039 secs (0.039u,0.s) +Chars 6184 - 6203 [(rewrite~!bind_bind).] 0.039 secs (0.039u,0.s) +Chars 6206 - 6212 [ebind.] 0.008 secs (0.008u,0.s) +Chars 6216 - 6231 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) +Chars 6234 - 6235 [-] 0. secs (0.u,0.s) +Chars 6236 - 6267 [(rewrite~bind_tau,~2!bind_ret_l).] 0.06 secs (0.059u,0.s) +Chars 6268 - 6277 [now~taus.] 0. secs (0.u,0.s) +Chars 6281 - 6282 [-] 0. secs (0.u,0.s) +Chars 6283 - 6314 [(rewrite~bind_ret_l,~!bind_bind).] 0.041 secs (0.04u,0.s) +Chars 6315 - 6341 [setoid_rewrite~bind_ret_l.] 0.038 secs (0.038u,0.s) +Chars 6342 - 6361 [(rewrite~bind_ret_r).] 0.017 secs (0.017u,0.s) +Chars 6366 - 6378 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6379 - 6383 [Qed.] 0.015 secs (0.015u,0.s) +Chars 6385 - 6923 [Lemma~iter_dinatural_ktree~{E}...] 0.002 secs (0.002u,0.s) +Chars 6924 - 6930 [Proof.] 0. secs (0.u,0.s) +Chars 6933 - 6953 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) +Chars 6957 - 6975 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 6976 - 6983 [(intros).] 0. secs (0.u,0.s) +Chars 6987 - 7013 [(rewrite~unfold_iter_ktree).] 0.018 secs (0.018u,0.s) +Chars 7016 - 7034 [(rewrite~bind_bind).] 0.017 secs (0.017u,0.s) +Chars 7037 - 7043 [ebind.] 0.01 secs (0.01u,0.s) +Chars 7047 - 7062 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) +Chars 7174 - 7175 [-] 0. secs (0.u,0.s) +Chars 7176 - 7193 [(rewrite~bind_tau).] 0.018 secs (0.018u,0.s) +Chars 7194 - 7199 [taus.] 0. secs (0.u,0.s) +Chars 7200 - 7209 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 7210 - 7221 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7225 - 7226 [-] 0. secs (0.u,0.s) +Chars 7227 - 7246 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) +Chars 7247 - 7259 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 7261 - 7265 [Qed.] 0.011 secs (0.011u,0.s) +Chars 7267 - 7340 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) +Chars 7341 - 7347 [Proof.] 0. secs (0.u,0.s) +Chars 7350 - 7363 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 7364 - 7377 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 7380 - 7642 [(transitivity~~~(iter~(C:=ktre...] 0.001 secs (0.001u,0.s) +Chars 7645 - 7646 [-] 0. secs (0.u,0.s) +Chars 7647 - 7673 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) +Chars 7678 - 7700 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 7705 - 7717 [reflexivity.] 0. secs (0.u,0.s) +Chars 7722 - 7737 [(intros~[]~?~[]).] 0. secs (0.u,0.s) +Chars 7742 - 7772 [(rewrite~tau_eutt;~reflexivity).] 0. secs (0.u,0.s) +Chars 7777 - 7789 [reflexivity.] 0. secs (0.u,0.s) +Chars 7792 - 7793 [-] 0. secs (0.u,0.s) +Chars 7794 - 7823 [(rewrite~iter_dinatural_ktree).] 0.002 secs (0.002u,0.s) +Chars 7828 - 7850 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 7855 - 7867 [reflexivity.] 0. secs (0.u,0.s) +Chars 7872 - 7887 [(intros~[]~?~[]).] 0. secs (0.u,0.s) +Chars 7892 - 7893 [+] 0. secs (0.u,0.s) +Chars 7894 - 7911 [(rewrite~tau_eutt).] 0.002 secs (0.002u,0.s) +Chars 7918 - 7944 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) +Chars 7951 - 7973 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 7980 - 7992 [reflexivity.] 0. secs (0.u,0.s) +Chars 7999 - 8014 [(intros~[]~?~[]).] 0. secs (0.u,0.s) +Chars 8021 - 8051 [(rewrite~tau_eutt;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 8058 - 8070 [reflexivity.] 0. secs (0.u,0.s) +Chars 8075 - 8076 [+] 0. secs (0.u,0.s) +Chars 8077 - 8089 [reflexivity.] 0. secs (0.u,0.s) +Chars 8090 - 8094 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8096 - 8404 [Lemma~iter_codiagonal_ktree~{E...] 0.003 secs (0.003u,0.s) +Chars 8405 - 8411 [Proof.] 0. secs (0.u,0.s) +Chars 8414 - 8424 [revert~a0.] 0. secs (0.u,0.s) +Chars 8427 - 8445 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 8446 - 8453 [(intros).] 0. secs (0.u,0.s) +Chars 8457 - 8483 [(rewrite~unfold_iter_ktree).] 0.016 secs (0.016u,0.s) +Chars 8486 - 8531 [(rewrite~(unfold_iter_ktree~(f...] 0.022 secs (0.022u,0.s) +Chars 8534 - 8572 [(rewrite~unfold_iter_ktree,~!b...] 0.063 secs (0.062u,0.s) +Chars 8575 - 8581 [ebind.] 0.01 secs (0.009u,0.s) +Chars 8585 - 8604 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) +Chars 8607 - 8608 [-] 0. secs (0.u,0.s) +Chars 8609 - 8638 [(rewrite~bind_ret_l,~bind_tau).] 0.042 secs (0.042u,0.s) +Chars 8643 - 8648 [taus.] 0. secs (0.u,0.s) +Chars 8654 - 8663 [revert~a.] 0. secs (0.u,0.s) +Chars 8668 - 8683 [accumulate~acc.] 0.002 secs (0.002u,0.s) +Chars 8689 - 8696 [(intros).] 0. secs (0.u,0.s) +Chars 8701 - 8727 [(rewrite~unfold_iter_ktree).] 0.018 secs (0.018u,0.s) +Chars 8732 - 8777 [(rewrite~(unfold_iter_ktree~(f...] 0.02 secs (0.019u,0.s) +Chars 8782 - 8801 [(rewrite~!bind_bind).] 0.039 secs (0.039u,0.s) +Chars 8806 - 8812 [ebind.] 0.012 secs (0.012u,0.s) +Chars 8818 - 8837 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) +Chars 8842 - 8843 [+] 0. secs (0.u,0.s) +Chars 8844 - 8873 [(rewrite~bind_tau,~bind_ret_l).] 0.041 secs (0.04u,0.s) +Chars 8874 - 8883 [now~taus.] 0. secs (0.u,0.s) +Chars 8889 - 8890 [+] 0. secs (0.u,0.s) +Chars 8891 - 8912 [(rewrite~2!bind_ret_l).] 0.041 secs (0.041u,0.s) +Chars 8913 - 8922 [now~taus.] 0. secs (0.u,0.s) +Chars 8928 - 8929 [+] 0. secs (0.u,0.s) +Chars 8930 - 8951 [(rewrite~2!bind_ret_l).] 0.038 secs (0.038u,0.s) +Chars 8952 - 8964 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8968 - 8969 [-] 0. secs (0.u,0.s) +Chars 8970 - 8991 [(rewrite~2!bind_ret_l).] 0.039 secs (0.039u,0.s) +Chars 8996 - 9005 [now~taus.] 0. secs (0.u,0.s) +Chars 9009 - 9010 [-] 0. secs (0.u,0.s) +Chars 9011 - 9032 [(rewrite~2!bind_ret_l).] 0.038 secs (0.037u,0.s) +Chars 9037 - 9049 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9051 - 9055 [Qed.] 0.034 secs (0.034u,0.s) +Chars 9057 - 9132 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) +Chars 9133 - 9139 [Proof.] 0. secs (0.u,0.s) +Chars 9142 - 9155 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 9156 - 9169 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 9172 - 9202 [(rewrite~iter_codiagonal_ktree).] 0.002 secs (0.002u,0.s) +Chars 9205 - 9221 [(apply~eutt_iter).] 0. secs (0.u,0.s) +Chars 9224 - 9234 [(intros~a1).] 0. secs (0.u,0.s) +Chars 9237 - 9259 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 9262 - 9274 [reflexivity.] 0. secs (0.u,0.s) +Chars 9277 - 9328 [(intros~[|~[]]~?~[];~rewrite~?...] 0.002 secs (0.002u,0.s) +Chars 9329 - 9333 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9335 - 9400 [#[global]~Instance~Iterative_k...] 0. secs (0.u,0.s) +Chars 9401 - 9407 [Proof.] 0. secs (0.u,0.s) +Chars 9410 - 9435 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 9436 - 9440 [Qed.] 0. secs (0.u,0.s) +Chars 9501 - 9705 [Lemma~cat_iter~:~~~forall~{E~:...] 0.002 secs (0.002u,0.s) +Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) +Chars 9715 - 9724 [(intros~*).] 0. secs (0.u,0.s) +Chars 9727 - 9740 [unfold_ktree.] 0. secs (0.u,0.s) +Chars 9773 - 9784 [(repeat~red).] 0. secs (0.u,0.s) +Chars 9882 - 9901 [coinduction~c'~CIH.] 0.003 secs (0.003u,0.s) +Chars 9902 - 9909 [(intros).] 0. secs (0.u,0.s) +Chars 9915 - 9934 [(rewrite~bind_ret_l).] 0.022 secs (0.021u,0.s) +Chars 9978 - 9998 [(rewrite~unfold_iter).] 0.02 secs (0.02u,0.s) +Chars 10005 - 10025 [(rewrite~unfold_iter).] 0.023 secs (0.022u,0.s) +Chars 10028 - 10047 [(rewrite~!bind_bind).] 0.041 secs (0.041u,0.s) +Chars 10050 - 10056 [ebind.] 0.008 secs (0.008u,0.s) +Chars 10102 - 10124 [(intros~[xa|~xb]~?~<-).] 0.002 secs (0.002u,0.s) +Chars 10127 - 10128 [-] 0. secs (0.u,0.s) +Chars 10192 - 10213 [(rewrite~!bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 10218 - 10235 [(rewrite~bind_tau).] 0.02 secs (0.02u,0.s) +Chars 10240 - 10245 [taus.] 0. secs (0.u,0.s) +Chars 10251 - 10271 [specialize~(CIH~xa).] 0. secs (0.u,0.s) +Chars 10276 - 10285 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 10291 - 10313 [(rewrite~<-~bind_ret_l).] 0.016 secs (0.016u,0.s) +Chars 10314 - 10323 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 10329 - 10339 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 10343 - 10344 [-] 0. secs (0.u,0.s) +Chars 10381 - 10402 [(rewrite~!bind_ret_l).] 0.045 secs (0.045u,0.s) +Chars 10640 - 10659 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) +Chars 10664 - 10674 [(do~2~step).] 0.011 secs (0.011u,0.s) +Chars 10680 - 10694 [(generalize~xb).] 0. secs (0.u,0.s) +Chars 10699 - 10720 [coinduction~c''~CIH'.] 0.003 secs (0.003u,0.s) +Chars 10721 - 10728 [(intros).] 0. secs (0.u,0.s) +Chars 10780 - 10802 [(rewrite~2!unfold_iter).] 0.038 secs (0.038u,0.s) +Chars 10808 - 10827 [(rewrite~!bind_bind).] 0.049 secs (0.049u,0.s) +Chars 10878 - 10884 [ebind.] 0.009 secs (0.009u,0.s) +Chars 10889 - 10912 [(intros~[xb'|~xc]~?~<-).] 0.002 secs (0.002u,0.s) +Chars 10917 - 10918 [+] 0. secs (0.u,0.s) +Chars 10963 - 10983 [(rewrite~!bind_ret_l).] 0.074 secs (0.074u,0.s) +Chars 10990 - 10995 [taus.] 0. secs (0.u,0.s) +Chars 11002 - 11013 [(apply~CIH').] 0. secs (0.u,0.s) +Chars 11020 - 11021 [+] 0. secs (0.u,0.s) +Chars 11022 - 11042 [(rewrite~!bind_ret_l).] 0.047 secs (0.047u,0.s) +Chars 11049 - 11061 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11063 - 11067 [Qed.] 0.038 secs (0.037u,0.s) +Chars 11069 - 11088 [End~KTreeIterative.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/Subevent.v.timing b/theories/Core/Subevent.v.timing index cb772976..f16739ca 100644 --- a/theories/Core/Subevent.v.timing +++ b/theories/Core/Subevent.v.timing @@ -26,7 +26,7 @@ Chars 2127 - 2170 [Notation~vis~e~k:=~(Vis~(subev...] 0. secs (0.u,0.s) Chars 2236 - 2289 [Notation~trigger~e:=~(ITree.tr...] 0. secs (0.u,0.s) Chars 2442 - 2483 [Class~Embeddable~U~V~:=~~~~~em...] 0. secs (0.u,0.s) Chars 2485 - 2685 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) -Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0.001 secs (0.u,0.s) +Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0.001 secs (0.001u,0.s) Chars 2939 - 3043 [Lemma~resum_to_subevent~:~~~fo...] 0. secs (0.u,0.s) Chars 3044 - 3050 [Proof.] 0. secs (0.u,0.s) Chars 3053 - 3073 [(intros;~reflexivity).] 0. secs (0.u,0.s) diff --git a/theories/Eq.v.timing b/theories/Eq.v.timing index e46cf616..336da460 100644 --- a/theories/Eq.v.timing +++ b/theories/Eq.v.timing @@ -1 +1 @@ -Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.198 secs (0.176u,0.021s) +Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.205 secs (0.179u,0.024s) diff --git a/theories/Eq/EqAxiom.v.timing b/theories/Eq/EqAxiom.v.timing index ed545406..c9956dfd 100644 --- a/theories/Eq/EqAxiom.v.timing +++ b/theories/Eq/EqAxiom.v.timing @@ -1,4 +1,4 @@ -Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.054 secs (0.044u,0.01s) +Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.053 secs (0.043u,0.01s) Chars 492 - 604 [Axiom~~~(bisimulation_is_eq~:~...] 0. secs (0.u,0.s) Chars 606 - 666 [Lemma~itree_eta_~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) Chars 667 - 673 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Eqit.v.timing b/theories/Eq/Eqit.v.timing index 22ff8ece..43f06cc6 100644 --- a/theories/Eq/Eqit.v.timing +++ b/theories/Eq/Eqit.v.timing @@ -1,1912 +1,1831 @@ -Chars 699 - 830 [From~Stdlib~Require~Import~Str...] 0.013 secs (0.01u,0.003s) -Chars 832 - 868 [From~Coinduction~Require~Expor...] 0.003 secs (0.002u,0.s) -Chars 967 - 1107 [From~ITree~Require~Import~Basi...] 0.032 secs (0.026u,0.006s) -Chars 1110 - 1139 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 2730 - 2774 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) -Chars 2776 - 2789 [Section~eqit.] 0. secs (0.u,0.s) -Chars 3466 - 3493 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 3920 - 4636 [Inductive~eqitF~{R1~R2~:~Type}...] 0.004 secs (0.003u,0.s) -Chars 4639 - 4671 [Hint~Constructors~eqitF:~itree.] 0. secs (0.u,0.s) -Chars 4675 - 4939 [Definition~eqit_~b1~b2~~~(sim~...] 0. secs (0.u,0.s) -Chars 4942 - 4968 [Hint~Unfold~eqit_:~itree.] 0. secs (0.u,0.s) -Chars 5020 - 5080 [Lemma~eqitF_mono~b1~b2~:~Prope...] 0. secs (0.u,0.s) -Chars 5083 - 5089 [Proof.] 0. secs (0.u,0.s) -Chars 5094 - 5130 [(intros~sim~sim'~Hsim~R1~R2~RR...] 0. secs (0.u,0.s) -Chars 5135 - 5148 [(unfold~eqit_).] 0. secs (0.u,0.s) -Chars 5149 - 5159 [(intros~IN).] 0. secs (0.u,0.s) -Chars 5164 - 5196 [(induction~IN;~constructor;~au...] 0.002 secs (0.001u,0.s) -Chars 5201 - 5202 [-] 0. secs (0.u,0.s) -Chars 5203 - 5220 [(apply~Hsim;~auto).] 0.018 secs (0.016u,0.001s) -Chars 5225 - 5226 [-] 0. secs (0.u,0.s) -Chars 5227 - 5254 [(intros~?;~apply~Hsim;~auto).] 0. secs (0.u,0.s) -Chars 5257 - 5261 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5320 - 5484 [Definition~eqit_mon~b1~b2~:~~~...] 0.001 secs (0.001u,0.s) -Chars 5488 - 5609 [Definition~eqit~b1~b2~:~~~fora...] 0. secs (0.u,0.s) -Chars 5820 - 5901 [Definition~eq_itree~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 5905 - 5980 [Definition~eutt~{R1}~{R2}~(RR~...] 0. secs (0.u,0.s) -Chars 5984 - 6062 [Definition~euttge~{R1}~{R2}~(R...] 0. secs (0.u,0.s) -Chars 6064 - 6073 [End~eqit.] 0. secs (0.u,0.s) -Chars 6074 - 6120 [Arguments~eqit_~{E}~b1~b2~sim~...] 0. secs (0.u,0.s) -Chars 6121 - 6161 [Arguments~eqit~{E}~b1~b2~{R1~R...] 0. secs (0.u,0.s) -Chars 6162 - 6191 [Arguments~eqit_mon~{E}~b1~b2.] 0. secs (0.u,0.s) -Chars 6415 - 6481 [Infix~"≅⟨~R~⟩"~:=~(eq_itree~R)...] 0. secs (0.u,0.s) -Chars 6486 - 6544 [Infix~"≅"~:=~(eq_itree~eq)~(~a...] 0. secs (0.u,0.s) -Chars 6567 - 6655 [Infix~"{≅⟨~R~⟩}"~:=~(eqitF~R~f...] 0. secs (0.u,0.s) -Chars 6660 - 6754 [Infix~"{≅}"~:=~(eqitF~eq~false...] 0. secs (0.u,0.s) -Chars 6778 - 6870 [Infix~"{[≅⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) -Chars 6875 - 6973 [Infix~"{[≅]}"~:=~(eqitF~eq~fal...] 0. secs (0.u,0.s) -Chars 6993 - 7089 [Infix~"[≅⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) -Chars 7094 - 7182 [Infix~"[≅]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) -Chars 7188 - 7248 [Infix~"≈⟨~R~⟩"~:=~(eutt~R)~(~a...] 0. secs (0.u,0.s) -Chars 7253 - 7305 [Infix~"≈"~:=~(eutt~eq)~(~at~le...] 0. secs (0.u,0.s) -Chars 7328 - 7410 [Infix~"{≈⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) -Chars 7415 - 7503 [Infix~"{≈}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) -Chars 7527 - 7617 [Infix~"{[≈⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) -Chars 7622 - 7718 [Infix~"{[≈]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) -Chars 7738 - 7832 [Infix~"[≈⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) -Chars 7837 - 7923 [Infix~"[≈]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) -Chars 7929 - 7991 [Infix~"≳⟨~R~⟩"~:=~(euttge~R)~(...] 0. secs (0.u,0.s) -Chars 7996 - 8052 [Infix~"≳"~:=~(euttge~eq)~(~at~...] 0. secs (0.u,0.s) -Chars 8075 - 8160 [Infix~"{≳⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) -Chars 8165 - 8256 [Infix~"{≳}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) -Chars 8280 - 8371 [Infix~"{[≳⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) -Chars 8376 - 8473 [Infix~"{[≳]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) -Chars 8493 - 8588 [Infix~"[≳⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) -Chars 8593 - 8680 [Infix~"[≳]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) -Chars 8703 - 8750 [Notation~euttC~:=~(Chain~(eqit...] 0. secs (0.u,0.s) -Chars 8755 - 8805 [Notation~euttgeC~:=~(Chain~(eq...] 0. secs (0.u,0.s) -Chars 8810 - 8863 [Notation~eq_itreeC~:=~(Chain~(...] 0. secs (0.u,0.s) -Chars 8922 - 8983 [Notation~"⊙~x"~:=~(observe~x)~...] 0. secs (0.u,0.s) -Chars 9015 - 9057 [#[global]~Hint~Constructors~eq...] 0. secs (0.u,0.s) -Chars 9062 - 9098 [#[global]~Hint~Unfold~eqit_:~i...] 0. secs (0.u,0.s) -Chars 9103 - 9142 [#[global]~Hint~Unfold~eqit_mon...] 0. secs (0.u,0.s) -Chars 9147 - 9182 [#[global]~Hint~Unfold~eqit:~it...] 0. secs (0.u,0.s) -Chars 9187 - 9226 [#[global]~Hint~Unfold~eq_itree...] 0. secs (0.u,0.s) -Chars 9231 - 9266 [#[global]~Hint~Unfold~eutt:~it...] 0. secs (0.u,0.s) -Chars 9271 - 9308 [#[global]~Hint~Unfold~euttge:~...] 0. secs (0.u,0.s) -Chars 10050 - 10116 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) -Chars 10117 - 10188 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) -Chars 10189 - 10260 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) -Chars 10262 - 10286 [Ltac~icbn~:=~repeat~red.] 0. secs (0.u,0.s) -Chars 10288 - 10337 [Ltac~icbn_in~h~:=~cbn[eqit_mon...] 0. secs (0.u,0.s) -Chars 10339 - 10554 [Ltac~~refold~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) -Chars 10556 - 10791 [Ltac~~refold_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 10793 - 11889 [Ltac~~to_mon_core~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 11891 - 12075 [Ltac~~to_mon~:=~~~let~dummy~:=...] 0. secs (0.u,0.s) -Chars 12078 - 12553 [Ltac~~to_mon_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 12613 - 12672 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 12673 - 12748 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 12750 - 12804 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) -Chars 12805 - 12859 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) -Chars 12860 - 12916 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 12917 - 12967 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 13018 - 13165 [Tactic~Notation~"step"~:=~~(ma...] 0. secs (0.u,0.s) -Chars 13268 - 13440 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 13443 - 13511 [Tactic~Notation~"unstep"~:=~(i...] 0. secs (0.u,0.s) -Chars 13512 - 13616 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) -Chars 13618 - 13699 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) -Chars 13701 - 13816 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) -Chars 13818 - 13919 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) -Chars 13922 - 14032 [Tactic~Notation~"icoinduction"...] 0. secs (0.u,0.s) -Chars 14091 - 14140 [Ltac~sinv~H~:=~repeat~red~in~H...] 0. secs (0.u,0.s) -Chars 14278 - 14546 [Ltac~~solve_eqitF~:=~~~iunfold...] 0. secs (0.u,0.s) -Chars 14785 - 14820 [Ltac~taul~:=~apply~EqTauL;~[~a...] 0. secs (0.u,0.s) -Chars 14821 - 14856 [Ltac~taur~:=~apply~EqTauR;~[~a...] 0. secs (0.u,0.s) -Chars 14858 - 14883 [Ltac~taus~:=~apply~EqTau.] 0. secs (0.u,0.s) -Chars 14887 - 14914 [Module~step_notation_tests.] 0. secs (0.u,0.s) -Chars 14918 - 14954 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 14957 - 14989 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 14992 - 15033 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 15036 - 15072 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 15075 - 15111 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 15114 - 15173 [#[local]~Parameter~(eqc~:~Chai...] 0. secs (0.u,0.s) -Chars 15176 - 15211 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 15214 - 15252 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 15255 - 15290 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 15293 - 15331 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 15334 - 15368 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) -Chars 15371 - 15406 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 15449 - 15466 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 15515 - 15520 [step.] 0.001 secs (0.001u,0.s) -Chars 15521 - 15528 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15533 - 15538 [step.] 0.001 secs (0.001u,0.s) -Chars 15543 - 15553 [Fail~step.] 0. secs (0.u,0.s) -Chars 15559 - 15566 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15572 - 15584 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15591 - 15663 [(assert~(eqitF~eq~false~false~...] 0. secs (0.u,0.s) -Chars 15668 - 15673 [step.] 0.003 secs (0.003u,0.s) -Chars 15704 - 15709 [step.] 0.033 secs (0.033u,0.s) -Chars 15710 - 15717 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15718 - 15730 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15731 - 15736 [step.] 0.001 secs (0.001u,0.s) -Chars 15737 - 15747 [Fail~step.] 0. secs (0.u,0.s) -Chars 15748 - 15772 [now~unstep;~apply~EQ2.] 0.003 secs (0.003u,0.s) -Chars 15778 - 15809 [(assert~((elem~eqc~_~_~eq)~v~w)).] 0. secs (0.u,0.s) -Chars 15814 - 15819 [step.] 0.001 secs (0.001u,0.s) -Chars 15820 - 15825 [step.] 0.002 secs (0.002u,0.s) -Chars 15857 - 15862 [step.] 0.001 secs (0.001u,0.s) -Chars 15863 - 15870 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15871 - 15883 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15884 - 15889 [step.] 0.001 secs (0.001u,0.s) -Chars 15890 - 15900 [Fail~step.] 0. secs (0.u,0.s) -Chars 15901 - 15925 [now~unstep;~apply~EQ2.] 0.007 secs (0.005u,0.001s) -Chars 15931 - 15943 [to_mon~in~H.] 0. secs (0.u,0.s) -Chars 15947 - 15953 [Abort.] 0. secs (0.u,0.s) -Chars 15956 - 15980 [End~step_notation_tests.] 0. secs (0.u,0.s) -Chars 15983 - 16281 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) -Chars 16282 - 16288 [Proof.] 0. secs (0.u,0.s) -Chars 16291 - 16598 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) -Chars 16601 - 16602 [-] 0. secs (0.u,0.s) -Chars 16603 - 16615 [(left;~eauto).] 0. secs (0.u,0.s) -Chars 16618 - 16619 [-] 0. secs (0.u,0.s) -Chars 16620 - 16639 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 16640 - 16644 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16646 - 16947 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.001u,0.s) -Chars 16948 - 16954 [Proof.] 0. secs (0.u,0.s) -Chars 16957 - 17176 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) -Chars 17179 - 17180 [-] 0. secs (0.u,0.s) -Chars 17181 - 17193 [(left;~eauto).] 0. secs (0.u,0.s) -Chars 17196 - 17197 [-] 0. secs (0.u,0.s) -Chars 17198 - 17216 [(destruct~i;~eauto).] 0.001 secs (0.001u,0.s) -Chars 17217 - 17221 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17223 - 17472 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.001u,0.s) -Chars 17473 - 17479 [Proof.] 0. secs (0.u,0.s) -Chars 17482 - 17717 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) -Chars 17720 - 17721 [-] 0. secs (0.u,0.s) -Chars 17722 - 17749 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) -Chars 17752 - 17753 [-] 0. secs (0.u,0.s) -Chars 17754 - 17774 [(destruct~i;~exact~I).] 0. secs (0.u,0.s) -Chars 17775 - 17779 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17781 - 17974 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 17975 - 17981 [Proof.] 0. secs (0.u,0.s) -Chars 17984 - 17993 [(intros~H).] 0. secs (0.u,0.s) -Chars 17994 - 18018 [dependent~destruction~H.] 0.005 secs (0.004u,0.001s) -Chars 18019 - 18030 [assumption.] 0. secs (0.u,0.s) -Chars 18031 - 18035 [Qed.] 0.003 secs (0.002u,0.s) -Chars 18037 - 18277 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0.001 secs (0.001u,0.s) -Chars 18278 - 18284 [Proof.] 0. secs (0.u,0.s) -Chars 18287 - 18333 [(destruct~p;~intros~<-;~cbn;~c...] 0.019 secs (0.018u,0.s) -Chars 18334 - 18338 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18340 - 18469 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 18470 - 18476 [Proof.] 0. secs (0.u,0.s) -Chars 18479 - 18518 [(intros~!;~induction~H;~eauto~...] 0.001 secs (0.001u,0.s) -Chars 18519 - 18523 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18525 - 18677 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) -Chars 18678 - 18684 [Proof.] 0. secs (0.u,0.s) -Chars 18687 - 18695 [intros~!.] 0. secs (0.u,0.s) -Chars 18696 - 18702 [subst.] 0. secs (0.u,0.s) -Chars 18703 - 18754 [(split;~unfold~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 18757 - 18851 [all:~~(induction~H0;~auto~with...] 0.004 secs (0.004u,0.s) -Chars 18852 - 18856 [Qed.] 0.002 secs (0.002u,0.s) -Chars 18858 - 19023 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) -Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) -Chars 19033 - 19041 [intros~!.] 0. secs (0.u,0.s) -Chars 19042 - 19048 [subst.] 0. secs (0.u,0.s) -Chars 19049 - 19063 [(split;~intros).] 0. secs (0.u,0.s) -Chars 19066 - 19135 [all:~(induction~H0;~auto~with~...] 0.002 secs (0.002u,0.s) -Chars 19136 - 19140 [Qed.] 0.002 secs (0.002u,0.s) -Chars 19142 - 19286 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) -Chars 19287 - 19314 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) -Chars 19317 - 19325 [intros~!.] 0. secs (0.u,0.s) -Chars 19326 - 19332 [subst.] 0. secs (0.u,0.s) -Chars 19336 - 19342 [split.] 0. secs (0.u,0.s) -Chars 19345 - 19346 [-] 0. secs (0.u,0.s) -Chars 19347 - 19362 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 19363 - 19382 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) -Chars 19383 - 19390 [(intros).] 0. secs (0.u,0.s) -Chars 19395 - 19406 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19411 - 19438 [hinduction~H0~before~CIH~...] 0.003 secs (0.003u,0.s) -Chars 19443 - 19469 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 19473 - 19474 [-] 0. secs (0.u,0.s) -Chars 19475 - 19490 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 19491 - 19510 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) -Chars 19511 - 19518 [(intros).] 0. secs (0.u,0.s) -Chars 19525 - 19536 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19541 - 19568 [hinduction~H0~before~CIH~...] 0.003 secs (0.003u,0.s) -Chars 19574 - 19600 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 19602 - 19606 [Qed.] 0.009 secs (0.009u,0.s) -Chars 19609 - 19750 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 19751 - 19757 [Proof.] 0. secs (0.u,0.s) -Chars 19760 - 19793 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 19794 - 19798 [Qed.] 0. secs (0.u,0.s) -Chars 19800 - 19937 [#[global]~Instance~euttge_Prop...] 0. secs (0.u,0.s) -Chars 19938 - 19944 [Proof.] 0. secs (0.u,0.s) -Chars 19947 - 19980 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 19981 - 19985 [Qed.] 0. secs (0.u,0.s) -Chars 19987 - 20120 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 20121 - 20127 [Proof.] 0. secs (0.u,0.s) -Chars 20130 - 20163 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 20164 - 20168 [Qed.] 0. secs (0.u,0.s) -Chars 20613 - 20764 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 20765 - 20771 [Proof.] 0. secs (0.u,0.s) -Chars 20798 - 20817 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 20818 - 20833 [(intros~u~v~euv).] 0. secs (0.u,0.s) -Chars 20901 - 20913 [step~in~euv.] 0. secs (0.u,0.s) -Chars 20979 - 21011 [(induction~euv;~eauto~with~itr...] 0.004 secs (0.004u,0.s) -Chars 21012 - 21016 [Qed.] 0.004 secs (0.004u,0.s) -Chars 21018 - 21196 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 21197 - 21203 [Proof.] 0. secs (0.u,0.s) -Chars 21206 - 21213 [(intros).] 0. secs (0.u,0.s) -Chars 21214 - 21234 [now~apply~eqit_flip.] 0. secs (0.u,0.s) -Chars 21237 - 21241 [Qed.] 0. secs (0.u,0.s) -Chars 21243 - 21278 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) -Chars 21314 - 21487 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 21488 - 21494 [Proof.] 0. secs (0.u,0.s) -Chars 21497 - 21505 [intros~!.] 0. secs (0.u,0.s) -Chars 21509 - 21523 [revert~a~a0~H.] 0. secs (0.u,0.s) -Chars 21527 - 21554 [(icoinduction~c~CIH;~intros).] 0.002 secs (0.002u,0.s) -Chars 21559 - 21569 [step~in~H.] 0. secs (0.u,0.s) -Chars 21570 - 21600 [(induction~H;~eauto~with~itree).] 0.004 secs (0.004u,0.s) -Chars 21603 - 21616 [econstructor.] 0. secs (0.u,0.s) -Chars 21617 - 21632 [now~apply~LERR.] 0. secs (0.u,0.s) -Chars 21635 - 21639 [Qed.] 0.004 secs (0.004u,0.s) -Chars 21738 - 21755 [Section~eqit_gen.] 0. secs (0.u,0.s) -Chars 21808 - 21867 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 22239 - 22389 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 22390 - 22396 [Proof.] 0. secs (0.u,0.s) -Chars 22401 - 22405 [(red).] 0. secs (0.u,0.s) -Chars 22406 - 22448 [(destruct~x;~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 22449 - 22453 [Qed.] 0. secs (0.u,0.s) -Chars 22504 - 22648 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 22649 - 22655 [Proof.] 0. secs (0.u,0.s) -Chars 22660 - 22664 [(red).] 0. secs (0.u,0.s) -Chars 22665 - 22704 [(induction~3;~constructor;~sub...] 0.001 secs (0.001u,0.s) -Chars 22705 - 22709 [Qed.] 0. secs (0.u,0.s) -Chars 22759 - 22913 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 22914 - 22920 [Proof.] 0. secs (0.u,0.s) -Chars 22925 - 22949 [(intros~?~?~t~u~v~EQ1~EQ2).] 0. secs (0.u,0.s) -Chars 22954 - 22999 [(inv~EQ1;~try~now~inv~EQ2;~eau...] 0.051 secs (0.051u,0.s) -Chars 23004 - 23072 [(apply~eqitF_inv_VisF_l~in~EQ2...] 0.001 secs (0.001u,0.s) -Chars 23077 - 23096 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 23097 - 23101 [Qed.] 0.004 secs (0.004u,0.s) -Chars 23210 - 23301 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 23302 - 23308 [Proof.] 0. secs (0.u,0.s) -Chars 23311 - 23323 [(red;~intros).] 0. secs (0.u,0.s) -Chars 23326 - 23335 [revert~x.] 0. secs (0.u,0.s) -Chars 23336 - 23355 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 23356 - 23362 [intro.] 0. secs (0.u,0.s) -Chars 23366 - 23399 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) -Chars 23400 - 23404 [Qed.] 0.001 secs (0.001u,0.s) -Chars 23406 - 23491 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 23492 - 23498 [Proof.] 0. secs (0.u,0.s) -Chars 23501 - 23521 [(intros~Hsym~x~y~Hxy).] 0. secs (0.u,0.s) -Chars 23524 - 23540 [(apply~eqit_flip).] 0. secs (0.u,0.s) -Chars 23543 - 23595 [(eapply~eqit_mono;~[~auto~|~au...] 0.001 secs (0.001u,0.s) -Chars 23597 - 23601 [Qed.] 0. secs (0.u,0.s) -Chars 23603 - 23731 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 23732 - 23738 [Proof.] 0. secs (0.u,0.s) -Chars 23741 - 23754 [(red;~intro~x).] 0. secs (0.u,0.s) -Chars 23757 - 23777 [(apply~(gfp_chain~c)).] 0.001 secs (0.001u,0.s) -Chars 23780 - 23792 [reflexivity.] 0. secs (0.u,0.s) -Chars 23793 - 23797 [Qed.] 0. secs (0.u,0.s) -Chars 23799 - 23956 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) -Chars 23957 - 23963 [Proof.] 0. secs (0.u,0.s) -Chars 23966 - 23986 [(intros~T~HT~x~y~Hxy).] 0. secs (0.u,0.s) -Chars 23989 - 24001 [(intros~z~Hz).] 0. secs (0.u,0.s) -Chars 24002 - 24017 [(apply~HT;~auto).] 0. secs (0.u,0.s) -Chars 24018 - 24022 [Qed.] 0. secs (0.u,0.s) -Chars 24024 - 24146 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 24147 - 24153 [Proof.] 0. secs (0.u,0.s) -Chars 24156 - 24165 [revert~c.] 0. secs (0.u,0.s) -Chars 24166 - 24204 [(apply~(tower~inf_closed_Symme...] 0. secs (0.u,0.s) -Chars 24207 - 24221 [(intros~c~Hsym).] 0. secs (0.u,0.s) -Chars 24222 - 24230 [intros~!.] 0. secs (0.u,0.s) -Chars 24231 - 24259 [(apply~Symmetric_eqitF;~auto).] 0. secs (0.u,0.s) -Chars 24260 - 24264 [Qed.] 0. secs (0.u,0.s) -Chars 24266 - 24279 [End~eqit_gen.] 0. secs (0.u,0.s) -Chars 24282 - 24299 [Section~eqit_inv.] 0. secs (0.u,0.s) -Chars 24303 - 24377 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 24380 - 24429 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) -Chars 24433 - 24899 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) -Chars 24903 - 24998 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 25001 - 25007 [Proof.] 0. secs (0.u,0.s) -Chars 25012 - 25023 [(intros~*~H).] 0. secs (0.u,0.s) -Chars 25028 - 25038 [step~in~H.] 0. secs (0.u,0.s) -Chars 25043 - 25048 [step.] 0.001 secs (0.001u,0.s) -Chars 25056 - 25084 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) -Chars 25089 - 25111 [(induction~H;~inv~Heqi).] 0.008 secs (0.008u,0.s) -Chars 25118 - 25119 [-] 0. secs (0.u,0.s) -Chars 25120 - 25132 [step~in~REL.] 0. secs (0.u,0.s) -Chars 25133 - 25142 [now~taur.] 0. secs (0.u,0.s) -Chars 25147 - 25148 [-] 0. secs (0.u,0.s) -Chars 25149 - 25154 [taur.] 0. secs (0.u,0.s) -Chars 25155 - 25173 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25177 - 25181 [Qed.] 0.003 secs (0.003u,0.s) -Chars 25186 - 25281 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 25284 - 25290 [Proof.] 0. secs (0.u,0.s) -Chars 25295 - 25306 [(intros~*~H).] 0. secs (0.u,0.s) -Chars 25311 - 25321 [step~in~H.] 0. secs (0.u,0.s) -Chars 25326 - 25331 [step.] 0.001 secs (0.001u,0.s) -Chars 25339 - 25367 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) -Chars 25372 - 25394 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) -Chars 25401 - 25402 [-] 0. secs (0.u,0.s) -Chars 25403 - 25415 [step~in~REL.] 0. secs (0.u,0.s) -Chars 25416 - 25425 [now~taul.] 0. secs (0.u,0.s) -Chars 25431 - 25432 [-] 0. secs (0.u,0.s) -Chars 25433 - 25438 [taul.] 0. secs (0.u,0.s) -Chars 25439 - 25457 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25461 - 25465 [Qed.] 0.003 secs (0.003u,0.s) -Chars 25470 - 25658 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0.001 secs (0.001u,0.s) -Chars 25661 - 25667 [Proof.] 0. secs (0.u,0.s) -Chars 25672 - 25679 [(intros).] 0. secs (0.u,0.s) -Chars 25684 - 25710 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 25716 - 25742 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 25748 - 25775 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 25780 - 25839 [(induction~H;~intros~t1'~t2'~H...] 0.028 secs (0.028u,0.s) -Chars 25844 - 25845 [-] 0. secs (0.u,0.s) -Chars 25846 - 25869 [(inv~Heqot1;~inv~Heqot2).] 0.009 secs (0.009u,0.s) -Chars 25870 - 25881 [now~unstep.] 0.004 secs (0.003u,0.s) -Chars 25888 - 25889 [-] 0. secs (0.u,0.s) -Chars 25890 - 25917 [(inv~H;~inv~Heqot1;~simpobs).] 0.051 secs (0.051u,0.s) -Chars 25925 - 25926 [+] 0. secs (0.u,0.s) -Chars 25927 - 25932 [taul.] 0. secs (0.u,0.s) -Chars 25933 - 25949 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 25958 - 25959 [+] 0. secs (0.u,0.s) -Chars 25960 - 25965 [taul.] 0. secs (0.u,0.s) -Chars 25966 - 25984 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25991 - 25992 [-] 0. secs (0.u,0.s) -Chars 25993 - 26020 [(inv~H;~inv~Heqot2;~simpobs).] 0.047 secs (0.047u,0.s) -Chars 26028 - 26029 [+] 0. secs (0.u,0.s) -Chars 26030 - 26035 [taur.] 0. secs (0.u,0.s) -Chars 26036 - 26052 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 26060 - 26061 [+] 0. secs (0.u,0.s) -Chars 26062 - 26067 [taur.] 0. secs (0.u,0.s) -Chars 26068 - 26086 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 26090 - 26094 [Qed.] 0.011 secs (0.011u,0.s) -Chars 26099 - 26194 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) -Chars 26197 - 26203 [Proof.] 0. secs (0.u,0.s) -Chars 26208 - 26215 [(intros).] 0. secs (0.u,0.s) -Chars 26220 - 26236 [(step~in~H;~step).] 0.002 secs (0.002u,0.s) -Chars 26241 - 26265 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) -Chars 26269 - 26273 [Qed.] 0.001 secs (0.001u,0.s) -Chars 26278 - 26337 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0.001 secs (0.001u,0.s) -Chars 26340 - 26346 [Proof.] 0. secs (0.u,0.s) -Chars 26351 - 26371 [(intros~H;~step~in~H).] 0. secs (0.u,0.s) -Chars 26376 - 26459 [(genobs~t1~ot1;~genobs~t2~ot2;...] 0. secs (0.u,0.s) -Chars 26464 - 26524 [(destruct~H;~intros~*~E1~E2;~r...] 0.003 secs (0.003u,0.s) -Chars 26529 - 26530 [-] 0. secs (0.u,0.s) -Chars 26531 - 26558 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) -Chars 26563 - 26564 [-] 0. secs (0.u,0.s) -Chars 26565 - 26584 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) -Chars 26585 - 26598 [(destruct~ot2).] 0. secs (0.u,0.s) -Chars 26605 - 26668 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) -Chars 26675 - 26743 [1:~(apply~eqit_inv_Tau_r;~step...] 0.001 secs (0.001u,0.s) -Chars 26748 - 26749 [-] 0. secs (0.u,0.s) -Chars 26750 - 26769 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) -Chars 26770 - 26783 [(destruct~ot1).] 0. secs (0.u,0.s) -Chars 26790 - 26853 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) -Chars 26860 - 26928 [1:~(apply~eqit_inv_Tau_l;~step...] 0.001 secs (0.001u,0.s) -Chars 26931 - 26935 [Qed.] 0.009 secs (0.009u,0.s) -Chars 26937 - 27122 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) -Chars 27123 - 27129 [Proof.] 0. secs (0.u,0.s) -Chars 27132 - 27150 [(intros~om1~Heq~H2).] 0. secs (0.u,0.s) -Chars 27214 - 27260 [(induction~H2;~taul;~simpobs;~...] 0.006 secs (0.006u,0.s) -Chars 27262 - 27266 [Qed.] 0.001 secs (0.001u,0.s) -Chars 27269 - 27282 [End~eqit_inv.] 0. secs (0.u,0.s) -Chars 27284 - 27328 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) -Chars 27329 - 27373 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) -Chars 27374 - 27422 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) -Chars 27424 - 27552 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) -Chars 27553 - 27559 [Proof.] 0. secs (0.u,0.s) -Chars 27562 - 27584 [(intros~EQ;~step~in~EQ).] 0. secs (0.u,0.s) -Chars 27587 - 27620 [(desobs~t~ot;~eauto;~inv~EQ;~e...] 0.01 secs (0.01u,0.s) -Chars 27621 - 27625 [Qed.] 0.005 secs (0.005u,0.s) -Chars 27627 - 27800 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 27801 - 27807 [Proof.] 0. secs (0.u,0.s) -Chars 27810 - 27820 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 27823 - 27845 [(step~in~EQ;~cbn~in~EQ).] 0. secs (0.u,0.s) -Chars 27848 - 27873 [(genobs~t~ot;~genobs~u~ou).] 0. secs (0.u,0.s) -Chars 27876 - 27899 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) -Chars 27902 - 27933 [(induction~EQ;~intros;~try~easy).] 0.012 secs (0.012u,0.s) -Chars 27936 - 27937 [-] 0. secs (0.u,0.s) -Chars 27938 - 27952 [(inv~H;~inv~H0).] 0.002 secs (0.002u,0.s) -Chars 27956 - 27957 [-] 0. secs (0.u,0.s) -Chars 27958 - 27973 [(inv~H;~simpobs).] 0.005 secs (0.005u,0.s) -Chars 27978 - 28022 [(edestruct~euttge_tau_r_inv;~[...] 0.004 secs (0.004u,0.s) -Chars 28027 - 28032 [step.] 0.001 secs (0.001u,0.s) -Chars 28037 - 28045 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 28050 - 28055 [taul.] 0. secs (0.u,0.s) -Chars 28060 - 28067 [unstep.] 0.003 secs (0.003u,0.s) -Chars 28072 - 28091 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 28092 - 28096 [Qed.] 0.006 secs (0.006u,0.s) -Chars 28099 - 28237 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) -Chars 28240 - 28432 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) -Chars 28437 - 28562 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) -Chars 28565 - 28621 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) -Chars 28622 - 28677 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) -Chars 29406 - 29568 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) -Chars 29569 - 29597 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 29600 - 29638 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 29641 - 29657 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 29660 - 29725 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 29730 - 29740 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 29741 - 29751 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 29757 - 29786 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 29906 - 29945 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 29950 - 29971 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 29976 - 29977 [+] 0. secs (0.u,0.s) -Chars 29978 - 30004 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30011 - 30023 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30030 - 30044 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 30051 - 30066 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30073 - 30108 [(hinduction~EQx~before~ox;~try...] 0.053 secs (0.053u,0.s) -Chars 30115 - 30116 [*] 0. secs (0.u,0.s) -Chars 30117 - 30143 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) -Chars 30144 - 30158 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30167 - 30194 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) -Chars 30203 - 30218 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30227 - 30262 [(hinduction~EQy~before~oy;~try...] 0.035 secs (0.035u,0.s) -Chars 30271 - 30296 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 30305 - 30336 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30343 - 30344 [*] 0. secs (0.u,0.s) -Chars 30345 - 30381 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 30386 - 30387 [+] 0. secs (0.u,0.s) -Chars 30388 - 30414 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30421 - 30433 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30440 - 30454 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 30461 - 30476 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30483 - 30518 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.054u,0.s) -Chars 30525 - 30526 [*] 0. secs (0.u,0.s) -Chars 30527 - 30545 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 30554 - 30568 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30577 - 30604 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 30613 - 30628 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30637 - 30672 [(hinduction~EQy~before~oy;~try...] 0.039 secs (0.039u,0.s) -Chars 30681 - 30699 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) -Chars 30708 - 30715 [(intros).] 0. secs (0.u,0.s) -Chars 30724 - 30729 [taur.] 0. secs (0.u,0.s) -Chars 30738 - 30755 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30762 - 30763 [*] 0. secs (0.u,0.s) -Chars 30764 - 30800 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 30805 - 30806 [+] 0. secs (0.u,0.s) -Chars 30807 - 30833 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30840 - 30852 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30859 - 30875 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) -Chars 30882 - 30897 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30904 - 30939 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.054u,0.s) -Chars 30946 - 30947 [*] 0. secs (0.u,0.s) -Chars 30948 - 30955 [(intros).] 0. secs (0.u,0.s) -Chars 30964 - 31030 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 31039 - 31053 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 31062 - 31091 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 31100 - 31115 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 31124 - 31159 [(hinduction~EQy~before~oy;~try...] 0.037 secs (0.037u,0.s) -Chars 31168 - 31260 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) -Chars 31269 - 31276 [(intros).] 0. secs (0.u,0.s) -Chars 31285 - 31290 [taur.] 0. secs (0.u,0.s) -Chars 31299 - 31316 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 31323 - 31324 [*] 0. secs (0.u,0.s) -Chars 31325 - 31361 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 31366 - 31367 [+] 0. secs (0.u,0.s) -Chars 31368 - 31412 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 31419 - 31427 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 31434 - 31439 [taul.] 0. secs (0.u,0.s) -Chars 31446 - 31465 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 31472 - 31523 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 31530 - 31567 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 31572 - 31573 [+] 0. secs (0.u,0.s) -Chars 31574 - 31618 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 31625 - 31633 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 31640 - 31645 [taur.] 0. secs (0.u,0.s) -Chars 31652 - 31671 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 31678 - 31729 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 31736 - 31773 [(unstep;~eapply~euttge_tau_inv...] 0.005 secs (0.005u,0.s) -Chars 31774 - 31778 [Qed.] 0.029 secs (0.029u,0.s) -Chars 31838 - 32032 [#[global]~Instance~euttge_prop...] 0.003 secs (0.003u,0.s) -Chars 32033 - 32039 [Proof.] 0. secs (0.u,0.s) -Chars 32042 - 32098 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) -Chars 32101 - 32105 [Qed.] 0. secs (0.u,0.s) -Chars 32147 - 32332 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 32334 - 32340 [Proof.] 0. secs (0.u,0.s) -Chars 32343 - 32422 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) -Chars 32425 - 32429 [Qed.] 0. secs (0.u,0.s) -Chars 32432 - 32536 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 32537 - 32543 [Proof.] 0. secs (0.u,0.s) -Chars 32544 - 32564 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32565 - 32569 [Qed.] 0. secs (0.u,0.s) -Chars 32571 - 32680 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 32681 - 32687 [Proof.] 0. secs (0.u,0.s) -Chars 32688 - 32708 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32709 - 32713 [Qed.] 0. secs (0.u,0.s) -Chars 32715 - 32817 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) -Chars 32818 - 32824 [Proof.] 0. secs (0.u,0.s) -Chars 32825 - 32846 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32847 - 32851 [Qed.] 0. secs (0.u,0.s) -Chars 32853 - 32960 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) -Chars 32961 - 32967 [Proof.] 0. secs (0.u,0.s) -Chars 32968 - 32988 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32989 - 32993 [Qed.] 0. secs (0.u,0.s) -Chars 32995 - 33095 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 33096 - 33102 [Proof.] 0. secs (0.u,0.s) -Chars 33103 - 33123 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 33124 - 33128 [Qed.] 0. secs (0.u,0.s) -Chars 33130 - 33235 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 33236 - 33242 [Proof.] 0. secs (0.u,0.s) -Chars 33243 - 33263 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 33264 - 33268 [Qed.] 0. secs (0.u,0.s) -Chars 33270 - 33426 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 33427 - 33433 [Proof.] 0. secs (0.u,0.s) -Chars 33437 - 33450 [(split;~intro).] 0. secs (0.u,0.s) -Chars 33454 - 33487 [1:~(symmetry~in~H;~symmetry~in...] 0. secs (0.u,0.s) -Chars 33491 - 33622 [all:~~(apply~eq_sub_euttge~wit...] 0.004 secs (0.004u,0.s) -Chars 33623 - 33627 [Qed.] 0.001 secs (0.001u,0.s) -Chars 33629 - 33778 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 33780 - 33808 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 33812 - 33926 [(split;~intros;~revert_until~R...] 0.01 secs (0.01u,0.s) -Chars 33929 - 33968 [all:~(hinduction~H1~before~RR;...] 0.004 secs (0.004u,0.s) -Chars 33999 - 34050 [1-2,~6-7:~(inv~H;~inv~H0;~simp...] 0.262 secs (0.26u,0.001s) -Chars 34066 - 34245 [1,~4:~~(genvis~e~k1~ok1;~inv~H...] 0.234 secs (0.234u,0.s) -Chars 34273 - 34342 [1,~3:~(inv~H;~simpobs;~taul;~e...] 0.098 secs (0.098u,0.s) -Chars 34345 - 34415 [1-2:~(inv~H0;~simpobs;~taur;~e...] 0.101 secs (0.101u,0.s) -Chars 34416 - 34420 [Qed.] 0.083 secs (0.082u,0.s) -Chars 34923 - 35089 [Lemma~not_euttge_proper_euttge...] 0.001 secs (0.001u,0.s) -Chars 35092 - 35130 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 35134 - 35140 [intro.] 0. secs (0.u,0.s) -Chars 35142 - 35266 [(assert~~~(Hfalse~:~~~~euttge~...] 0. secs (0.u,0.s) -Chars 35269 - 35270 [{] 0. secs (0.u,0.s) -Chars 35271 - 35313 [(eapply~H~with~(x~:=~Ret~tt)~(...] 0. secs (0.u,0.s) -Chars 35436 - 35437 [-] 0. secs (0.u,0.s) -Chars 35438 - 35450 [reflexivity.] 0. secs (0.u,0.s) -Chars 35455 - 35456 [-] 0. secs (0.u,0.s) -Chars 35457 - 35462 [step.] 0.002 secs (0.002u,0.s) -Chars 35463 - 35468 [taul.] 0. secs (0.u,0.s) -Chars 35469 - 35481 [reflexivity.] 0. secs (0.u,0.s) -Chars 35486 - 35487 [-] 0. secs (0.u,0.s) -Chars 35488 - 35500 [reflexivity.] 0. secs (0.u,0.s) -Chars 35501 - 35502 [}] 0. secs (0.u,0.s) -Chars 35505 - 35520 [step~in~Hfalse.] 0.001 secs (0.001u,0.s) -Chars 35521 - 35532 [(inv~Hfalse).] 0.003 secs (0.003u,0.s) -Chars 35534 - 35538 [Qed.] 0.004 secs (0.004u,0.s) -Chars 35575 - 35742 [Lemma~euttge_proper_flip_euttg...] 0.001 secs (0.001u,0.s) -Chars 35743 - 35771 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 35774 - 35812 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 35815 - 35831 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 35834 - 35899 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 35904 - 35914 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 35915 - 35925 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 35931 - 35960 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 36080 - 36119 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 36124 - 36145 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 36150 - 36151 [+] 0. secs (0.u,0.s) -Chars 36152 - 36178 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36185 - 36197 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 36204 - 36218 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 36225 - 36240 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36247 - 36282 [(hinduction~EQx~before~ox;~try...] 0.049 secs (0.049u,0.s) -Chars 36289 - 36290 [*] 0. secs (0.u,0.s) -Chars 36291 - 36317 [(intros;~subst;~inv~Heqor1).] 0.006 secs (0.006u,0.s) -Chars 36318 - 36332 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36341 - 36368 [(genobs~y~oy;~genret~r2~or2).] 0. secs (0.u,0.s) -Chars 36377 - 36392 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36401 - 36436 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) -Chars 36445 - 36470 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 36477 - 36478 [*] 0. secs (0.u,0.s) -Chars 36479 - 36515 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 36520 - 36521 [+] 0. secs (0.u,0.s) -Chars 36522 - 36548 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36555 - 36567 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 36574 - 36588 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 36595 - 36610 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36617 - 36652 [(hinduction~EQx~before~ox;~try...] 0.053 secs (0.053u,0.s) -Chars 36659 - 36660 [*] 0. secs (0.u,0.s) -Chars 36661 - 36679 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 36688 - 36702 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36711 - 36738 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 36747 - 36762 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36771 - 36807 [(hinduction~EQy~before~om2;~tr...] 0.037 secs (0.037u,0.s) -Chars 36816 - 36834 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) -Chars 36843 - 36859 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) -Chars 36868 - 36873 [taul.] 0. secs (0.u,0.s) -Chars 36874 - 36880 [subst.] 0. secs (0.u,0.s) -Chars 36881 - 36886 [step.] 0.002 secs (0.002u,0.s) -Chars 37045 - 37051 [admit.] 0. secs (0.u,0.s) -Chars 37059 - 37060 [*] 0. secs (0.u,0.s) -Chars 37061 - 37097 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 37102 - 37103 [+] 0. secs (0.u,0.s) -Chars 37104 - 37130 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 37137 - 37149 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 37156 - 37172 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) -Chars 37179 - 37194 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 37201 - 37236 [(hinduction~EQx~before~ox;~try...] 0.049 secs (0.049u,0.s) -Chars 37243 - 37250 [(intros).] 0. secs (0.u,0.s) -Chars 37251 - 37259 [inv_Vis.] 0.01 secs (0.01u,0.s) -Chars 37267 - 37297 [(apply~eqitF_inv_VisF_l~in~EQy).] 0. secs (0.u,0.s) -Chars 37298 - 37327 [(break~EQy;~try~easy;~break~H).] 0.004 secs (0.004u,0.s) -Chars 37335 - 37345 [simpobs~...] 0.024 secs (0.024u,0.s) -Chars 37352 - 37359 [(intros).] 0. secs (0.u,0.s) -Chars 37360 - 37365 [taul.] 0. secs (0.u,0.s) -Chars 37366 - 37386 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) -Chars 37393 - 37394 [+] 0. secs (0.u,0.s) -Chars 37395 - 37439 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 37446 - 37454 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 37461 - 37466 [taul.] 0. secs (0.u,0.s) -Chars 37473 - 37492 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 37499 - 37550 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 37557 - 37594 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 37599 - 37600 [+] 0. secs (0.u,0.s) -Chars 37601 - 37606 [easy.] 0.016 secs (0.016u,0.s) -Chars 37608 - 37614 [Abort.] 0. secs (0.u,0.s) -Chars 37838 - 38009 [#[global]~Instance~euttge_eq_p...] 0.001 secs (0.001u,0.s) -Chars 38010 - 38038 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 38041 - 38079 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 38082 - 38098 [tower~induction.] 0.003 secs (0.003u,0.s) -Chars 38101 - 38166 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 38171 - 38181 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 38182 - 38192 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 38198 - 38227 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 38232 - 38271 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 38276 - 38297 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 38302 - 38303 [+] 0. secs (0.u,0.s) -Chars 38304 - 38330 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 38337 - 38349 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 38356 - 38370 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 38377 - 38392 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 38399 - 38434 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.051u,0.s) -Chars 38441 - 38442 [*] 0. secs (0.u,0.s) -Chars 38443 - 38469 [(intros;~subst;~inv~Heqor1).] 0.008 secs (0.008u,0.s) -Chars 38470 - 38484 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 38493 - 38520 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) -Chars 38529 - 38544 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 38645 - 38680 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) -Chars 38689 - 38714 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 38721 - 38722 [*] 0. secs (0.u,0.s) -Chars 38723 - 38759 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 38764 - 38765 [+] 0. secs (0.u,0.s) -Chars 38766 - 38792 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 38799 - 38811 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 38818 - 38832 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 38839 - 38854 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 38861 - 38896 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) -Chars 38903 - 38904 [*] 0. secs (0.u,0.s) -Chars 38905 - 38923 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 38932 - 38946 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 38955 - 38982 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 38991 - 39006 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 39015 - 39050 [(hinduction~EQy~before~oy;~try...] 0.03 secs (0.03u,0.s) -Chars 39059 - 39077 [(intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 39084 - 39085 [*] 0. secs (0.u,0.s) -Chars 39086 - 39122 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 39127 - 39128 [+] 0. secs (0.u,0.s) -Chars 39129 - 39155 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 39162 - 39174 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 39181 - 39197 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) -Chars 39204 - 39219 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 39226 - 39261 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.051u,0.s) -Chars 39268 - 39269 [*] 0. secs (0.u,0.s) -Chars 39270 - 39277 [(intros).] 0. secs (0.u,0.s) -Chars 39286 - 39352 [(apply~eq_inv_VisF_weak~in~Heq...] 0.002 secs (0.001u,0.s) -Chars 39361 - 39375 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 39384 - 39413 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 39422 - 39437 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 39446 - 39481 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) -Chars 39490 - 39582 [(intros;~apply~eq_inv_VisF_wea...] 0.022 secs (0.022u,0.s) -Chars 39589 - 39590 [*] 0. secs (0.u,0.s) -Chars 39591 - 39627 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 39632 - 39633 [+] 0. secs (0.u,0.s) -Chars 39634 - 39678 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 39685 - 39693 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 39700 - 39705 [taul.] 0. secs (0.u,0.s) -Chars 39712 - 39731 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 39738 - 39789 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 39796 - 39833 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 39838 - 39839 [+] 0. secs (0.u,0.s) -Chars 39840 - 39845 [easy.] 0.018 secs (0.018u,0.s) -Chars 39895 - 39899 [Qed.] 0.026 secs (0.026u,0.s) -Chars 39901 - 40061 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 40062 - 40068 [Proof.] 0. secs (0.u,0.s) -Chars 40071 - 40084 [(split;~intro).] 0. secs (0.u,0.s) -Chars 40087 - 40088 [-] 0. secs (0.u,0.s) -Chars 40211 - 40267 [(symmetry~in~H;~apply~eq_sub_e...] 0. secs (0.u,0.s) -Chars 40272 - 40287 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 40292 - 40331 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) -Chars 40334 - 40335 [-] 0. secs (0.u,0.s) -Chars 40448 - 40489 [(apply~eq_sub_euttge~with~(RR~...] 0. secs (0.u,0.s) -Chars 40494 - 40533 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) -Chars 40534 - 40538 [Qed.] 0.001 secs (0.001u,0.s) -Chars 40541 - 40705 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 40706 - 40712 [Proof.] 0. secs (0.u,0.s) -Chars 40716 - 40801 [(split;~revert_until~c;~tower~...] 0.012 secs (0.012u,0.s) -Chars 40875 - 40899 [all:~(inv~H2;~simpobs).] 0.153 secs (0.153u,0.s) -Chars 40902 - 40987 [all:~~(try~genvis~e~k1~ok1;~in...] 0.311 secs (0.31u,0.s) -Chars 40991 - 41055 [all:~(try~do~2~inv_Vis;~constr...] 0.174 secs (0.174u,0.s) -Chars 41058 - 41078 [all:~(inv~H1;~inv~H0).] 0.023 secs (0.023u,0.s) -Chars 41083 - 41141 [all:~(eapply~H;~try~eapply~REL...] 0.001 secs (0.001u,0.s) -Chars 41145 - 41149 [Qed.] 0.073 secs (0.072u,0.s) -Chars 41188 - 41343 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 41344 - 41389 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) -Chars 41391 - 41490 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) -Chars 41491 - 41497 [Proof.] 0. secs (0.u,0.s) -Chars 41500 - 41507 [(intros).] 0. secs (0.u,0.s) -Chars 41508 - 41526 [(destruct~H;~eauto).] 0. secs (0.u,0.s) -Chars 41527 - 41531 [Qed.] 0. secs (0.u,0.s) -Chars 41560 - 41759 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 41760 - 41766 [Proof.] 0. secs (0.u,0.s) -Chars 41769 - 41781 [(unfold~eqit).] 0. secs (0.u,0.s) -Chars 41782 - 41798 [(revert_until~b2).] 0. secs (0.u,0.s) -Chars 41908 - 41927 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 41928 - 41935 [(intros).] 0. secs (0.u,0.s) -Chars 41939 - 41951 [step~in~INL.] 0. secs (0.u,0.s) -Chars 41952 - 41964 [step~in~INR.] 0. secs (0.u,0.s) -Chars 42062 - 42103 [(hinduction~INL~before~CIH;~in...] 0.001 secs (0.001u,0.s) -Chars 42104 - 42116 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 42148 - 42149 [-] 0. secs (0.u,0.s) -Chars 42150 - 42163 [(genret~r2~ot).] 0. secs (0.u,0.s) -Chars 42168 - 42231 [(hinduction~INR~before~CIH;~in...] 0.031 secs (0.031u,0.s) -Chars 42234 - 42235 [-] 0. secs (0.u,0.s) -Chars 42236 - 42250 [(genobs~t3~ot3).] 0. secs (0.u,0.s) -Chars 42324 - 42396 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) -Chars 42401 - 42402 [{] 0. secs (0.u,0.s) -Chars 42403 - 42449 [(destruct~ot3;~eauto;~right;~r...] 0.008 secs (0.008u,0.s) -Chars 42450 - 42451 [}] 0. secs (0.u,0.s) -Chars 42456 - 42486 [(destruct~DEC~as~[[m3~?]|~EQ]).] 0. secs (0.u,0.s) -Chars 42527 - 42528 [+] 0. secs (0.u,0.s) -Chars 42529 - 42544 [(subst;~simpobs).] 0.001 secs (0.001u,0.s) -Chars 42552 - 42565 [econstructor.] 0. secs (0.u,0.s) -Chars 42572 - 42590 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 42597 - 42616 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) -Chars 42623 - 42632 [now~step.] 0.001 secs (0.001u,0.s) -Chars 42692 - 42693 [+] 0. secs (0.u,0.s) -Chars 42694 - 42741 [(inv~INR;~try~(exfalso;~eapply...] 0.047 secs (0.047u,0.s) -Chars 42748 - 42753 [taul.] 0. secs (0.u,0.s) -Chars 42761 - 42773 [step~in~REL.] 0. secs (0.u,0.s) -Chars 42780 - 42854 [(hinduction~REL0~before~CIH;~i...] 0.003 secs (0.003u,0.s) -Chars 42936 - 42937 [*] 0. secs (0.u,0.s) -Chars 42938 - 42963 [(remember~(RetF~r1)~as~ot).] 0. secs (0.u,0.s) -Chars 42972 - 43036 [(hinduction~REL0~before~CIH;~i...] 0.032 secs (0.032u,0.s) -Chars 43043 - 43044 [*] 0. secs (0.u,0.s) -Chars 43045 - 43072 [(remember~(VisF~e~k1)~as~ot).] 0. secs (0.u,0.s) -Chars 43081 - 43166 [(hinduction~REL0~before~CIH;~i...] 0.025 secs (0.025u,0.s) -Chars 43175 - 43188 [econstructor.] 0. secs (0.u,0.s) -Chars 43189 - 43196 [(intros).] 0. secs (0.u,0.s) -Chars 43205 - 43240 [(apply~(CIH~_~_~_~(REL~v)~(REL...] 0. secs (0.u,0.s) -Chars 43248 - 43249 [*] 0. secs (0.u,0.s) -Chars 43250 - 43271 [(eapply~IHREL0;~eauto).] 0. secs (0.u,0.s) -Chars 43280 - 43304 [(destruct~b1;~inv~CHECK0).] 0.009 secs (0.009u,0.s) -Chars 43313 - 43320 [unstep.] 0.004 secs (0.004u,0.s) -Chars 43321 - 43342 [(apply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 43343 - 43352 [now~step.] 0.001 secs (0.001u,0.s) -Chars 43356 - 43357 [-] 0. secs (0.u,0.s) -Chars 43358 - 43385 [(remember~(VisF~e~k2)~as~ot).] 0. secs (0.u,0.s) -Chars 43390 - 43474 [(hinduction~INR~before~CIH;~in...] 0.019 secs (0.018u,0.s) -Chars 43479 - 43492 [econstructor.] 0. secs (0.u,0.s) -Chars 43493 - 43500 [(intros).] 0.001 secs (0.001u,0.s) -Chars 43505 - 43540 [(apply~(CIH~_~_~_~(REL0~v)~(RE...] 0. secs (0.u,0.s) -Chars 43544 - 43545 [-] 0. secs (0.u,0.s) -Chars 43546 - 43563 [eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 43566 - 43567 [-] 0. secs (0.u,0.s) -Chars 43568 - 43581 [(gentau~t0~ot).] 0.001 secs (0.001u,0.s) -Chars 43586 - 43600 [(genobs~t3~ot3).] 0. secs (0.u,0.s) -Chars 43606 - 43668 [(hinduction~INR~before~CIH;~in...] 0.011 secs (0.011u,0.s) -Chars 43673 - 43674 [+] 0. secs (0.u,0.s) -Chars 43675 - 43699 [(eapply~(IHINL~(Tau~m2))).] 0. secs (0.u,0.s) -Chars 43706 - 43718 [step~in~REL.] 0. secs (0.u,0.s) -Chars 43719 - 43736 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 43741 - 43742 [+] 0. secs (0.u,0.s) -Chars 43743 - 43760 [now~eapply~IHINL.] 0. secs (0.u,0.s) -Chars 43765 - 43766 [+] 0. secs (0.u,0.s) -Chars 43767 - 43772 [taur.] 0. secs (0.u,0.s) -Chars 43773 - 43793 [(eapply~IHINR;~eauto).] 0.001 secs (0.001u,0.s) -Chars 43795 - 43799 [Qed.] 0.051 secs (0.051u,0.s) -Chars 43800 - 43859 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) -Chars 43977 - 44131 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 44132 - 44138 [Proof.] 0. secs (0.u,0.s) -Chars 44141 - 44153 [(red;~intros).] 0. secs (0.u,0.s) -Chars 44154 - 44190 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 44194 - 44230 [(eapply~eqit_mono,~eqit_trans;...] 0.002 secs (0.002u,0.s) -Chars 44233 - 44241 [intros~!.] 0. secs (0.u,0.s) -Chars 44242 - 44258 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 44259 - 44263 [Qed.] 0. secs (0.u,0.s) -Chars 44265 - 44383 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 44384 - 44390 [Proof.] 0. secs (0.u,0.s) -Chars 44393 - 44415 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) -Chars 44416 - 44438 [(intros~!;~subst;~eauto).] 0. secs (0.u,0.s) -Chars 44439 - 44443 [Qed.] 0. secs (0.u,0.s) -Chars 44445 - 44596 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 44597 - 44603 [Proof.] 0. secs (0.u,0.s) -Chars 44606 - 44641 [(constructor;~try~typeclasses~...] 0.001 secs (0.001u,0.s) -Chars 44642 - 44646 [Qed.] 0. secs (0.u,0.s) -Chars 44648 - 44770 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 44771 - 44777 [Proof.] 0. secs (0.u,0.s) -Chars 44780 - 44815 [(constructor;~try~typeclasses~...] 0. secs (0.u,0.s) -Chars 44816 - 44820 [Qed.] 0. secs (0.u,0.s) -Chars 44822 - 44913 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 44914 - 44920 [Proof.] 0. secs (0.u,0.s) -Chars 44923 - 44935 [(red;~intros).] 0. secs (0.u,0.s) -Chars 44936 - 44972 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 44973 - 45009 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) -Chars 45012 - 45020 [intros~!.] 0. secs (0.u,0.s) -Chars 45021 - 45037 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 45039 - 45043 [Qed.] 0. secs (0.u,0.s) -Chars 45046 - 45178 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 45179 - 45185 [Proof.] 0. secs (0.u,0.s) -Chars 45188 - 45328 [(assert~~~(Hinf~:~~~~inf_close...] 0. secs (0.u,0.s) -Chars 45331 - 45332 [{] 0. secs (0.u,0.s) -Chars 45333 - 45365 [(intros~T~HTr~x~y~z~Hxy~Hyz~i~...] 0. secs (0.u,0.s) -Chars 45366 - 45429 [(apply~(HTr~_~Hi)~with~y;~[~ex...] 0. secs (0.u,0.s) -Chars 45430 - 45431 [}] 0. secs (0.u,0.s) -Chars 45434 - 45443 [revert~c.] 0. secs (0.u,0.s) -Chars 45444 - 45463 [(apply~(tower~Hinf)).] 0. secs (0.u,0.s) -Chars 45464 - 45480 [(intros~c~Htrans).] 0. secs (0.u,0.s) -Chars 45483 - 45491 [intros~!.] 0. secs (0.u,0.s) -Chars 45492 - 45502 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 45503 - 45534 [(eapply~Transitive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 45535 - 45539 [Qed.] 0.002 secs (0.002u,0.s) -Chars 45541 - 45676 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 45677 - 45683 [Proof.] 0. secs (0.u,0.s) -Chars 45686 - 45717 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 45718 - 45722 [Qed.] 0. secs (0.u,0.s) -Chars 45726 - 45806 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 45807 - 45813 [Proof.] 0. secs (0.u,0.s) -Chars 45816 - 45880 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) -Chars 45881 - 45885 [Qed.] 0. secs (0.u,0.s) -Chars 45886 - 45966 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 45967 - 45973 [Proof.] 0. secs (0.u,0.s) -Chars 45976 - 46043 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) -Chars 46044 - 46048 [Qed.] 0. secs (0.u,0.s) -Chars 46050 - 46168 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 46169 - 46175 [Proof.] 0. secs (0.u,0.s) -Chars 46178 - 46189 [(repeat~red).] 0. secs (0.u,0.s) -Chars 46193 - 46218 [(intros~t~t'~EQ1~u~u'~EQ2).] 0. secs (0.u,0.s) -Chars 46221 - 46241 [(split;~intros~EQUIV).] 0. secs (0.u,0.s) -Chars 46245 - 46246 [-] 0. secs (0.u,0.s) -Chars 46247 - 46263 [symmetry~in~EQ1.] 0. secs (0.u,0.s) -Chars 46269 - 46311 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) -Chars 46316 - 46347 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) -Chars 46352 - 46396 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) -Chars 46401 - 46437 [now~rewrite~rcompose_eqr~in~EQ...] 0.002 secs (0.002u,0.s) -Chars 46440 - 46441 [-] 0. secs (0.u,0.s) -Chars 46442 - 46484 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) -Chars 46489 - 46520 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) -Chars 46525 - 46541 [symmetry~in~EQ2.] 0. secs (0.u,0.s) -Chars 46546 - 46590 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) -Chars 46595 - 46631 [now~rewrite~rcompose_eqr~in~EQ...] 0.003 secs (0.003u,0.s) -Chars 46632 - 46636 [Qed.] 0.002 secs (0.002u,0.s) -Chars 46638 - 46732 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 46733 - 46739 [Proof.] 0. secs (0.u,0.s) -Chars 46742 - 46760 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 46761 - 46765 [Qed.] 0. secs (0.u,0.s) -Chars 46767 - 46862 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 46863 - 46869 [Proof.] 0. secs (0.u,0.s) -Chars 46872 - 46884 [(red;~intros).] 0. secs (0.u,0.s) -Chars 46885 - 46921 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 46922 - 46958 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) -Chars 46961 - 46969 [intros~!.] 0. secs (0.u,0.s) -Chars 46970 - 46986 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 46988 - 46992 [Qed.] 0. secs (0.u,0.s) -Chars 46994 - 47083 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) -Chars 47084 - 47090 [Proof.] 0. secs (0.u,0.s) -Chars 47093 - 47124 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 47126 - 47130 [Qed.] 0. secs (0.u,0.s) -Chars 47132 - 47284 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 47286 - 47292 [Proof.] 0. secs (0.u,0.s) -Chars 47296 - 47314 [(split;~intros~!).] 0. secs (0.u,0.s) -Chars 47317 - 47355 [(do~2~(etransitivity;~symmetry...] 0.005 secs (0.005u,0.s) -Chars 47358 - 47400 [(do~2~(etransitivity;~eauto);~...] 0.004 secs (0.004u,0.s) -Chars 47402 - 47406 [Qed.] 0.001 secs (0.001u,0.s) -Chars 47437 - 47450 [Module~Tests.] 0. secs (0.u,0.s) -Chars 47453 - 47489 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 47492 - 47524 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 47527 - 47568 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 47571 - 47607 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 47610 - 47646 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 47649 - 47684 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 47687 - 47725 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 47728 - 47763 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 47766 - 47804 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 47807 - 47841 [#[local]~Parameter~(GT~:~v~≳~w).] 0.002 secs (0.002u,0.s) -Chars 47844 - 47879 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 47881 - 47898 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 47903 - 47918 [(rewrite~EQUIV2).] 0.011 secs (0.011u,0.s) -Chars 47923 - 47938 [(rewrite~<-~EQ2).] 0.011 secs (0.011u,0.s) -Chars 47943 - 47966 [(eapply~eq_proper_euttC).] 0.001 secs (0.001u,0.s) -Chars 47971 - 47986 [(rewrite~<-~EQ1).] 0.003 secs (0.003u,0.s) -Chars 47991 - 48001 [exact~EQ1.] 0. secs (0.u,0.s) -Chars 48007 - 48027 [(rewrite~EQ2,~<-~EQ2).] 0.001 secs (0.001u,0.s) -Chars 48033 - 48043 [exact~EQ2.] 0. secs (0.u,0.s) -Chars 48048 - 48053 [step.] 0.003 secs (0.003u,0.s) -Chars 48058 - 48063 [step.] 0.003 secs (0.003u,0.s) -Chars 48069 - 48084 [(rewrite~<-~EQ1).] 0.01 secs (0.01u,0.s) -Chars 48090 - 48104 [(rewrite~<-~GT).] 0.034 secs (0.034u,0.s) -Chars 48110 - 48122 [(rewrite~EQ1).] 0.01 secs (0.01u,0.s) -Chars 48127 - 48145 [(rewrite~<-~EQUIV1).] 0.011 secs (0.011u,0.s) -Chars 48148 - 48154 [Abort.] 0. secs (0.u,0.s) -Chars 48159 - 48204 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) -Chars 48367 - 48407 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) -Chars 48412 - 48421 [(intros~H).] 0. secs (0.u,0.s) -Chars 48426 - 48438 [(rewrite~EQ1).] 0.008 secs (0.007u,0.s) -Chars 48443 - 48460 [(rewrite~EQ1~in~H).] 0.007 secs (0.007u,0.s) -Chars 48465 - 48483 [(rewrite~<-~EQUIV1).] 0.009 secs (0.009u,0.s) -Chars 48528 - 48551 [(rewrite~<-~EQUIV1~in~H).] 0.007 secs (0.007u,0.s) -Chars 48556 - 48579 [(rewrite~<-~EQUIV2~in~H).] 0.01 secs (0.01u,0.s) -Chars 48585 - 48597 [(rewrite~GT2).] 0.001 secs (0.001u,0.s) -Chars 48602 - 48622 [(rewrite~<-~GT2~in~H).] 0.027 secs (0.027u,0.s) -Chars 48627 - 48638 [(rewrite~GT).] 0.001 secs (0.001u,0.s) -Chars 48643 - 48662 [(rewrite~<-~GT~in~H).] 0.028 secs (0.028u,0.s) -Chars 48724 - 48738 [Fail~symmetry.] 0. secs (0.u,0.s) -Chars 48743 - 48762 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) -Chars 48767 - 48781 [(rewrite~<-~GT).] 0.028 secs (0.027u,0.s) -Chars 48787 - 48798 [assumption.] 0. secs (0.u,0.s) -Chars 48802 - 48806 [Qed.] 0.002 secs (0.002u,0.s) -Chars 48830 - 48873 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) -Chars 48877 - 48944 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) -Chars 48947 - 48987 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) -Chars 48993 - 48998 [step.] 0.001 secs (0.001u,0.s) -Chars 49032 - 49039 [unstep.] 0.003 secs (0.003u,0.s) -Chars 49045 - 49089 [(assert~(eutt~(E:=VE)~eq~(Ret~...] 0. secs (0.u,0.s) -Chars 49095 - 49100 [step.] 0.001 secs (0.001u,0.s) -Chars 49159 - 49185 [(rewrite~observing_observe).] 0.006 secs (0.006u,0.s) -Chars 49188 - 49194 [Abort.] 0. secs (0.u,0.s) -Chars 49220 - 49244 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) -Chars 49249 - 49258 [(intros~H).] 0. secs (0.u,0.s) -Chars 49263 - 49275 [(rewrite~EQ1).] 0. secs (0.u,0.s) -Chars 49280 - 49297 [(rewrite~EQ1~in~H).] 0.008 secs (0.008u,0.s) -Chars 49302 - 49311 [symmetry.] 0. secs (0.u,0.s) -Chars 49316 - 49330 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 49335 - 49347 [reflexivity.] 0. secs (0.u,0.s) -Chars 49350 - 49354 [Qed.] 0. secs (0.u,0.s) -Chars 49440 - 49515 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) -Chars 49520 - 49538 [(intros~EQ1~EQ2'~H).] 0. secs (0.u,0.s) -Chars 49543 - 49555 [(rewrite~EQ1).] 0.009 secs (0.009u,0.s) -Chars 49560 - 49572 [(rewrite~EQ2).] 0.001 secs (0.001u,0.s) -Chars 49577 - 49601 [(apply~eqit_flip~in~EQ2').] 0. secs (0.u,0.s) -Chars 49606 - 49626 [(rewrite~EQ2~in~EQ2').] 0.014 secs (0.014u,0.s) -Chars 49726 - 49744 [Fail~(rewrite~EQ2').] 0. secs (0.u,0.s) -Chars 49751 - 49772 [Fail~(rewrite~<-~EQ2').] 0. secs (0.u,0.s) -Chars 49842 - 49851 [Admitted.] 0. secs (0.u,0.s) -Chars 49901 - 49925 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) -Chars 49930 - 49949 [icoinduction~r~CIH.] 0.002 secs (0.002u,0.s) -Chars 49954 - 49961 [(intros).] 0. secs (0.u,0.s) -Chars 49966 - 49971 [step.] 0.003 secs (0.003u,0.s) -Chars 49977 - 49987 [(rewrite~H).] 0.016 secs (0.016u,0.s) -Chars 49993 - 50005 [reflexivity.] 0. secs (0.u,0.s) -Chars 50007 - 50011 [Qed.] 0.002 secs (0.002u,0.s) -Chars 50013 - 50023 [End~Tests.] 0. secs (0.u,0.s) -Chars 50025 - 50077 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) -Chars 50082 - 50098 [Section~eqit_eq.] 0. secs (0.u,0.s) -Chars 50149 - 50187 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 50189 - 50248 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) -Chars 50250 - 50383 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 50384 - 50390 [Proof.] 0. secs (0.u,0.s) -Chars 50393 - 50422 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 50423 - 50427 [Qed.] 0. secs (0.u,0.s) -Chars 50429 - 50556 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 50557 - 50563 [Proof.] 0. secs (0.u,0.s) -Chars 50566 - 50595 [(apply~Symmetric_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 50597 - 50601 [Qed.] 0. secs (0.u,0.s) -Chars 50650 - 50718 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 50719 - 50725 [Proof.] 0. secs (0.u,0.s) -Chars 50728 - 50756 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 50757 - 50761 [Qed.] 0. secs (0.u,0.s) -Chars 50763 - 50825 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 50826 - 50832 [Proof.] 0. secs (0.u,0.s) -Chars 50835 - 50863 [(apply~Symmetric_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 50864 - 50868 [Qed.] 0. secs (0.u,0.s) -Chars 50903 - 51002 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) -Chars 51003 - 51009 [Proof.] 0. secs (0.u,0.s) -Chars 51012 - 51058 [(constructor;~step~in~H;~step;...] 0.002 secs (0.002u,0.s) -Chars 51061 - 51065 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51068 - 51163 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) -Chars 51164 - 51170 [Proof.] 0. secs (0.u,0.s) -Chars 51173 - 51191 [(constructor;~step).] 0.001 secs (0.001u,0.s) -Chars 51192 - 51205 [econstructor.] 0. secs (0.u,0.s) -Chars 51206 - 51212 [eauto.] 0. secs (0.u,0.s) -Chars 51213 - 51217 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51219 - 51346 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) -Chars 51347 - 51353 [Proof.] 0. secs (0.u,0.s) -Chars 51356 - 51378 [(constructor;~red~in~H).] 0. secs (0.u,0.s) -Chars 51379 - 51415 [(step;~econstructor;~auto~with...] 0.001 secs (0.001u,0.s) -Chars 51416 - 51420 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51422 - 51506 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 51507 - 51513 [Proof.] 0. secs (0.u,0.s) -Chars 51516 - 51535 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 51538 - 51543 [step.] 0.001 secs (0.001u,0.s) -Chars 51544 - 51574 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) -Chars 51575 - 51604 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 51605 - 51609 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51611 - 51756 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 51757 - 51763 [Proof.] 0. secs (0.u,0.s) -Chars 51766 - 51774 [intros~!.] 0. secs (0.u,0.s) -Chars 51777 - 51783 [(inv~H).] 0.006 secs (0.006u,0.s) -Chars 51786 - 51791 [step.] 0.002 secs (0.002u,0.s) -Chars 51794 - 51820 [(rewrite~observing_observe).] 0. secs (0.u,0.s) -Chars 51823 - 51828 [step.] 0.003 secs (0.003u,0.s) -Chars 51829 - 51841 [reflexivity.] 0. secs (0.u,0.s) -Chars 51842 - 51846 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51873 - 51930 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) -Chars 51931 - 51937 [Proof.] 0. secs (0.u,0.s) -Chars 51938 - 51963 [(apply~observing_sub_eqit).] 0. secs (0.u,0.s) -Chars 51964 - 51977 [econstructor.] 0. secs (0.u,0.s) -Chars 51978 - 51990 [reflexivity.] 0. secs (0.u,0.s) -Chars 51991 - 51995 [Qed.] 0. secs (0.u,0.s) -Chars 51997 - 52052 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) -Chars 52053 - 52059 [Proof.] 0. secs (0.u,0.s) -Chars 52060 - 52077 [(apply~itree_eta_).] 0. secs (0.u,0.s) -Chars 52078 - 52082 [Qed.] 0. secs (0.u,0.s) -Chars 52084 - 52142 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) -Chars 52143 - 52149 [Proof.] 0. secs (0.u,0.s) -Chars 52150 - 52162 [reflexivity.] 0. secs (0.u,0.s) -Chars 52163 - 52167 [Qed.] 0. secs (0.u,0.s) -Chars 52169 - 52181 [End~eqit_eq.] 0. secs (0.u,0.s) -Chars 52215 - 52303 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 52304 - 52310 [Proof.] 0. secs (0.u,0.s) -Chars 52313 - 52328 [(intros;~sinv~H).] 0.006 secs (0.006u,0.s) -Chars 52329 - 52333 [Qed.] 0.002 secs (0.002u,0.s) -Chars 52335 - 52486 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 52487 - 52493 [Proof.] 0. secs (0.u,0.s) -Chars 52496 - 52543 [(intros;~step~in~H;~apply~eqit...] 0. secs (0.u,0.s) -Chars 52546 - 52600 [(destruct~H~as~[[?~[->~?]]|~[]...] 0. secs (0.u,0.s) -Chars 52603 - 52625 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 52626 - 52630 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52632 - 52745 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 52746 - 52752 [Proof.] 0. secs (0.u,0.s) -Chars 52755 - 52792 [(intros;~sinv~H;~try~inv~CHECK...] 0.013 secs (0.013u,0.s) -Chars 52793 - 52797 [Qed.] 0.003 secs (0.003u,0.s) -Chars 52799 - 52900 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 52901 - 52907 [Proof.] 0. secs (0.u,0.s) -Chars 52910 - 52917 [(intros).] 0. secs (0.u,0.s) -Chars 52918 - 52928 [step~in~H.] 0. secs (0.u,0.s) -Chars 52929 - 52935 [(inv~H).] 0.001 secs (0.001u,0.s) -Chars 52937 - 52941 [Qed.] 0.002 secs (0.002u,0.s) -Chars 52994 - 53223 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0.001 secs (0.001u,0.s) -Chars 53224 - 53230 [Proof.] 0. secs (0.u,0.s) -Chars 53233 - 53240 [(intros).] 0. secs (0.u,0.s) -Chars 53241 - 53283 [(step~in~H;~apply~eqitF_inv_Vi...] 0. secs (0.u,0.s) -Chars 53286 - 53308 [(destruct~H~as~[p~[]]).] 0. secs (0.u,0.s) -Chars 53309 - 53331 [(exists~p;~split;~auto).] 0. secs (0.u,0.s) -Chars 53332 - 53336 [Qed.] 0.001 secs (0.001u,0.s) -Chars 53362 - 53568 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 53569 - 53575 [Proof.] 0. secs (0.u,0.s) -Chars 53578 - 53647 [(intros~H~x;~step~in~H;~apply~...] 0. secs (0.u,0.s) -Chars 53648 - 53652 [Qed.] 0.001 secs (0.001u,0.s) -Chars 53695 - 53774 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) -Chars 53775 - 53781 [Proof.] 0. secs (0.u,0.s) -Chars 53784 - 53819 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) -Chars 53820 - 53824 [Qed.] 0. secs (0.u,0.s) -Chars 53826 - 53908 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) -Chars 53909 - 53915 [Proof.] 0. secs (0.u,0.s) -Chars 53918 - 53953 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) -Chars 53954 - 53958 [Qed.] 0. secs (0.u,0.s) -Chars 53960 - 54086 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 54087 - 54093 [Proof.] 0. secs (0.u,0.s) -Chars 54096 - 54103 [(intros).] 0. secs (0.u,0.s) -Chars 54104 - 54109 [step.] 0.001 secs (0.001u,0.s) -Chars 54110 - 54130 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 54131 - 54145 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 54147 - 54151 [Qed.] 0.001 secs (0.001u,0.s) -Chars 54153 - 54279 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 54280 - 54286 [Proof.] 0. secs (0.u,0.s) -Chars 54289 - 54296 [(intros).] 0. secs (0.u,0.s) -Chars 54297 - 54302 [step.] 0.001 secs (0.001u,0.s) -Chars 54303 - 54323 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 54324 - 54338 [now~step~in~H.] 0.001 secs (0.001u,0.s) -Chars 54340 - 54344 [Qed.] 0.001 secs (0.001u,0.s) -Chars 54346 - 54400 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) -Chars 54401 - 54407 [Proof.] 0. secs (0.u,0.s) -Chars 54410 - 54427 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) -Chars 54428 - 54440 [reflexivity.] 0. secs (0.u,0.s) -Chars 54441 - 54445 [Qed.] 0. secs (0.u,0.s) -Chars 54447 - 54499 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) -Chars 54500 - 54506 [Proof.] 0. secs (0.u,0.s) -Chars 54509 - 54543 [(apply~euttge_sub_eutt,~tau_eu...] 0. secs (0.u,0.s) -Chars 54544 - 54548 [Qed.] 0. secs (0.u,0.s) -Chars 54551 - 54625 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) -Chars 54626 - 54632 [Proof.] 0. secs (0.u,0.s) -Chars 54635 - 54640 [step.] 0.001 secs (0.001u,0.s) -Chars 54641 - 54652 [(repeat~red).] 0. secs (0.u,0.s) -Chars 54653 - 54661 [simpobs.] 0. secs (0.u,0.s) -Chars 54662 - 54668 [(simpl).] 0. secs (0.u,0.s) -Chars 54669 - 54675 [subst.] 0. secs (0.u,0.s) -Chars 54676 - 54683 [unstep.] 0.003 secs (0.003u,0.s) -Chars 54684 - 54712 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 54713 - 54717 [Qed.] 0.002 secs (0.002u,0.s) -Chars 54755 - 55068 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) -Chars 55070 - 55076 [Proof.] 0. secs (0.u,0.s) -Chars 55078 - 55114 [(intros~!;~unfold~flip,~eq_itr...] 0. secs (0.u,0.s) -Chars 56277 - 56283 [idtac.] 0. secs (0.u,0.s) -Chars 56323 - 56383 [(assert~(rcompose~RR1~RS~<=~RS...] 0. secs (0.u,0.s) -Chars 56387 - 56454 [(assert~(rcompose~RS~(flip~RR2...] 0. secs (0.u,0.s) -Chars 56457 - 56555 [(assert~(eqit~b1~b2~RR1~x~y)~b...] 0.005 secs (0.005u,0.s) -Chars 56558 - 56662 [(assert~(eqit~b1~b2~RR2~x0~y0)...] 0.005 secs (0.005u,0.s) -Chars 56691 - 56735 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) -Chars 56739 - 56837 [(assert~(Hdiag~:~eqit~b1~b2~RS...] 0.004 secs (0.004u,0.s) -Chars 56875 - 56897 [(apply~eqit_flip~in~H0).] 0. secs (0.u,0.s) -Chars 56947 - 57007 [(eapply~eqit_mono~with~(RR~:=~...] 0.003 secs (0.003u,0.s) -Chars 57011 - 57036 [(eapply~eqit_trans;~eauto).] 0.003 secs (0.003u,0.s) -Chars 57040 - 57109 [(eapply~eqit_mono~with~(b1~:=~...] 0.006 secs (0.006u,0.s) -Chars 57111 - 57115 [Qed.] 0.002 secs (0.002u,0.s) -Chars 57158 - 57307 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) -Chars 57308 - 57314 [Proof.] 0. secs (0.u,0.s) -Chars 57317 - 57324 [(intros).] 0. secs (0.u,0.s) -Chars 57327 - 57343 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 57346 - 57347 [-] 0. secs (0.u,0.s) -Chars 57348 - 57368 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 57369 - 57374 [2:~{] 0. secs (0.u,0.s) -Chars 57375 - 57383 [(apply~H).] 0. secs (0.u,0.s) -Chars 57384 - 57385 [}] 0. secs (0.u,0.s) -Chars 57390 - 57407 [(apply~eqit_Tau_r).] 0. secs (0.u,0.s) -Chars 57408 - 57420 [reflexivity.] 0. secs (0.u,0.s) -Chars 57423 - 57424 [-] 0. secs (0.u,0.s) -Chars 57425 - 57430 [step.] 0.001 secs (0.001u,0.s) -Chars 57431 - 57444 [econstructor.] 0. secs (0.u,0.s) -Chars 57445 - 57450 [auto.] 0. secs (0.u,0.s) -Chars 57451 - 57465 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 57467 - 57471 [Qed.] 0.001 secs (0.001u,0.s) -Chars 57473 - 57643 [Lemma~tau_eqit_RR_l~:~~~forall...] 0. secs (0.u,0.s) -Chars 57644 - 57650 [Proof.] 0. secs (0.u,0.s) -Chars 57653 - 57660 [(intros).] 0. secs (0.u,0.s) -Chars 57663 - 57668 [step.] 0.001 secs (0.001u,0.s) -Chars 57669 - 57682 [econstructor.] 0. secs (0.u,0.s) -Chars 57683 - 57688 [auto.] 0. secs (0.u,0.s) -Chars 57689 - 57703 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 57705 - 57709 [Qed.] 0.001 secs (0.001u,0.s) -Chars 57711 - 57860 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) -Chars 57861 - 57867 [Proof.] 0. secs (0.u,0.s) -Chars 57870 - 57877 [(intros).] 0. secs (0.u,0.s) -Chars 57880 - 57896 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 57899 - 57900 [-] 0. secs (0.u,0.s) -Chars 57901 - 57921 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 57922 - 57930 [(apply~H).] 0. secs (0.u,0.s) -Chars 57935 - 57952 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) -Chars 57953 - 57965 [reflexivity.] 0. secs (0.u,0.s) -Chars 57968 - 57969 [-] 0. secs (0.u,0.s) -Chars 57970 - 57975 [step.] 0.001 secs (0.001u,0.s) -Chars 57976 - 57989 [econstructor.] 0. secs (0.u,0.s) -Chars 57990 - 57995 [auto.] 0. secs (0.u,0.s) -Chars 57996 - 58010 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 58011 - 58015 [Qed.] 0.001 secs (0.001u,0.s) -Chars 58017 - 58106 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 58107 - 58113 [Proof.] 0. secs (0.u,0.s) -Chars 58116 - 58129 [(intros~Heutt).] 0. secs (0.u,0.s) -Chars 58130 - 58144 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 58148 - 58166 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) -Chars 58170 - 58198 [(remember~(observe~(Ret~r1))).] 0. secs (0.u,0.s) -Chars 58201 - 58215 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 58218 - 58249 [(remember~{|~_observe~:=~ot2~|}).] 0. secs (0.u,0.s) -Chars 58252 - 58297 [(hinduction~Heutt~before~r1;~i...] 0.008 secs (0.008u,0.s) -Chars 58301 - 58302 [-] 0. secs (0.u,0.s) -Chars 58303 - 58322 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) -Chars 58323 - 58341 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) -Chars 58342 - 58361 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 58362 - 58366 [Qed.] 0.004 secs (0.004u,0.s) -Chars 58463 - 58552 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 58553 - 58559 [Proof.] 0. secs (0.u,0.s) -Chars 58562 - 58575 [(intros~Heutt).] 0. secs (0.u,0.s) -Chars 58576 - 58590 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 58595 - 58613 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) -Chars 58617 - 58692 [(remember~(observe~(Ret~r2));~...] 0. secs (0.u,0.s) -Chars 58695 - 58739 [(hinduction~Heutt~before~R;~in...] 0.008 secs (0.008u,0.s) -Chars 58743 - 58744 [-] 0. secs (0.u,0.s) -Chars 58745 - 58764 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) -Chars 58765 - 58783 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) -Chars 58784 - 58803 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 58804 - 58808 [Qed.] 0.004 secs (0.004u,0.s) -Chars 58852 - 59019 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) -Chars 59021 - 59117 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 59118 - 59124 [Proof.] 0. secs (0.u,0.s) -Chars 59127 - 59178 [(apply~observing_sub_eqit;~con...] 0. secs (0.u,0.s) -Chars 59179 - 59183 [Qed.] 0. secs (0.u,0.s) -Chars 59185 - 59274 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) -Chars 59275 - 59281 [Proof.] 0. secs (0.u,0.s) -Chars 59282 - 59318 [(apply~observing_sub_eqit,~bin...] 0. secs (0.u,0.s) -Chars 59319 - 59323 [Qed.] 0. secs (0.u,0.s) -Chars 59325 - 59420 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0.001 secs (0.001u,0.s) -Chars 59421 - 59427 [Proof.] 0. secs (0.u,0.s) -Chars 59428 - 59458 [(apply~(unfold_bind~(Tau~t)~k)).] 0. secs (0.u,0.s) -Chars 59459 - 59463 [Qed.] 0. secs (0.u,0.s) -Chars 59465 - 59609 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) -Chars 59610 - 59616 [Proof.] 0. secs (0.u,0.s) -Chars 59617 - 59650 [(apply~(unfold_bind~(Vis~e~ek)...] 0. secs (0.u,0.s) -Chars 59651 - 59655 [Qed.] 0. secs (0.u,0.s) -Chars 59657 - 59775 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) -Chars 59776 - 59782 [Proof.] 0. secs (0.u,0.s) -Chars 59785 - 59810 [(rewrite~unfold_bind;~cbn).] 0.001 secs (0.001u,0.s) -Chars 59813 - 59818 [step.] 0.001 secs (0.001u,0.s) -Chars 59821 - 59833 [constructor.] 0. secs (0.u,0.s) -Chars 59836 - 59843 [(intros).] 0. secs (0.u,0.s) -Chars 59844 - 59861 [(apply~bind_ret_l).] 0. secs (0.u,0.s) -Chars 59862 - 59866 [Qed.] 0.001 secs (0.001u,0.s) -Chars 59868 - 60025 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 60026 - 60032 [Proof.] 0. secs (0.u,0.s) -Chars 60035 - 60057 [(rewrite~unfold_aloop_).] 0.009 secs (0.009u,0.s) -Chars 60058 - 60070 [reflexivity.] 0. secs (0.u,0.s) -Chars 60071 - 60075 [Qed.] 0.001 secs (0.001u,0.s) -Chars 60077 - 60199 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 60200 - 60206 [Proof.] 0. secs (0.u,0.s) -Chars 60209 - 60257 [(rewrite~itree_eta,~(itree_eta...] 0.002 secs (0.002u,0.s) -Chars 60260 - 60272 [reflexivity.] 0. secs (0.u,0.s) -Chars 60273 - 60277 [Qed.] 0.001 secs (0.001u,0.s) -Chars 60279 - 60393 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) -Chars 60394 - 60454 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) -Chars 60456 - 60471 [Section~eqit_h.] 0. secs (0.u,0.s) -Chars 60473 - 60539 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 60598 - 60715 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) -Chars 60716 - 60722 [Proof.] 0. secs (0.u,0.s) -Chars 60725 - 60741 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 60744 - 60745 [-] 0. secs (0.u,0.s) -Chars 60746 - 60756 [step~in~H.] 0. secs (0.u,0.s) -Chars 60757 - 60762 [step.] 0.001 secs (0.001u,0.s) -Chars 60769 - 60786 [move~H~before~RR.] 0. secs (0.u,0.s) -Chars 60787 - 60802 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 60807 - 60835 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) -Chars 60841 - 60869 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) -Chars 60875 - 60889 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 60895 - 60909 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 60915 - 60971 [(hinduction~H~before~RR;~intro...] 0.017 secs (0.017u,0.s) -Chars 60977 - 60978 [+] 0. secs (0.u,0.s) -Chars 60979 - 60990 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 60996 - 60997 [+] 0. secs (0.u,0.s) -Chars 60998 - 61004 [(inv~H).] 0.01 secs (0.01u,0.s) -Chars 61012 - 61013 [*] 0. secs (0.u,0.s) -Chars 61014 - 61019 [taul.] 0. secs (0.u,0.s) -Chars 61020 - 61042 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 61050 - 61051 [*] 0. secs (0.u,0.s) -Chars 61052 - 61057 [taul.] 0. secs (0.u,0.s) -Chars 61058 - 61080 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 61086 - 61087 [+] 0. secs (0.u,0.s) -Chars 61088 - 61094 [(inv~H).] 0.007 secs (0.007u,0.s) -Chars 61102 - 61103 [*] 0. secs (0.u,0.s) -Chars 61104 - 61109 [taur.] 0. secs (0.u,0.s) -Chars 61110 - 61132 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 61140 - 61141 [*] 0. secs (0.u,0.s) -Chars 61142 - 61147 [taur.] 0. secs (0.u,0.s) -Chars 61148 - 61170 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 61174 - 61175 [-] 0. secs (0.u,0.s) -Chars 61176 - 61181 [step.] 0.001 secs (0.001u,0.s) -Chars 61182 - 61198 [now~constructor.] 0. secs (0.u,0.s) -Chars 61202 - 61206 [Qed.] 0.008 secs (0.008u,0.s) -Chars 61209 - 61432 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) -Chars 61433 - 61439 [Proof.] 0. secs (0.u,0.s) -Chars 61442 - 61458 [(destruct~p;~cbn).] 0. secs (0.u,0.s) -Chars 61459 - 61471 [(intros~<-~H).] 0. secs (0.u,0.s) -Chars 61472 - 61477 [step.] 0.001 secs (0.001u,0.s) -Chars 61478 - 61491 [econstructor.] 0. secs (0.u,0.s) -Chars 61492 - 61500 [(apply~H).] 0. secs (0.u,0.s) -Chars 61501 - 61505 [Qed.] 0.001 secs (0.001u,0.s) -Chars 61507 - 61679 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) -Chars 61680 - 61686 [Proof.] 0. secs (0.u,0.s) -Chars 61689 - 61741 [(apply~eqit_Vis_gen~with~(p~:=...] 0. secs (0.u,0.s) -Chars 61742 - 61746 [Qed.] 0. secs (0.u,0.s) -Chars 61748 - 61845 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) -Chars 61846 - 61852 [Proof.] 0. secs (0.u,0.s) -Chars 61855 - 61871 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 61874 - 61875 [-] 0. secs (0.u,0.s) -Chars 61876 - 61881 [step.] 0.001 secs (0.001u,0.s) -Chars 61882 - 61900 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 61903 - 61904 [-] 0. secs (0.u,0.s) -Chars 61905 - 61915 [step~in~H.] 0. secs (0.u,0.s) -Chars 61916 - 61941 [(inversion~H;~subst;~auto).] 0.001 secs (0.001u,0.s) -Chars 61942 - 61946 [Qed.] 0.002 secs (0.002u,0.s) -Chars 62131 - 62449 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) -Chars 62450 - 62456 [Proof.] 0. secs (0.u,0.s) -Chars 62460 - 62476 [(revert_until~U2).] 0. secs (0.u,0.s) -Chars 62480 - 62496 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 62500 - 62501 [-] 0. secs (0.u,0.s) -Chars 62502 - 62509 [(intros).] 0. secs (0.u,0.s) -Chars 62513 - 62530 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) -Chars 62535 - 62536 [-] 0. secs (0.u,0.s) -Chars 62537 - 62544 [(intros).] 0. secs (0.u,0.s) -Chars 62548 - 62558 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 62562 - 62576 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 62581 - 62595 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 62598 - 62640 [(hinduction~H0~before~RR;~intr...] 0.041 secs (0.041u,0.s) -Chars 62725 - 62762 [1-3:~(rewrite~2!observe_bind;~...] 0.018 secs (0.018u,0.s) -Chars 62777 - 62778 [+] 0. secs (0.u,0.s) -Chars 62779 - 62796 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) -Chars 62813 - 62814 [+] 0. secs (0.u,0.s) -Chars 62815 - 62827 [constructor.] 0. secs (0.u,0.s) -Chars 62832 - 62848 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) -Chars 62854 - 62882 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) -Chars 62897 - 62898 [+] 0. secs (0.u,0.s) -Chars 62899 - 62911 [constructor.] 0. secs (0.u,0.s) -Chars 62917 - 62923 [intro.] 0. secs (0.u,0.s) -Chars 62929 - 62945 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) -Chars 62950 - 62978 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) -Chars 62994 - 62995 [+] 0. secs (0.u,0.s) -Chars 62996 - 63017 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 63023 - 63031 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 63037 - 63042 [taul.] 0. secs (0.u,0.s) -Chars 63048 - 63070 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 63088 - 63089 [+] 0. secs (0.u,0.s) -Chars 63090 - 63123 [setoid_rewrite~observe_bind~at~2.] 0.022 secs (0.021u,0.s) -Chars 63129 - 63137 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 63143 - 63148 [taur.] 0. secs (0.u,0.s) -Chars 63154 - 63176 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 63178 - 63182 [Qed.] 0.009 secs (0.009u,0.s) -Chars 63185 - 63377 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) -Chars 63378 - 63384 [Proof.] 0. secs (0.u,0.s) -Chars 63389 - 63401 [(unfold~eutt).] 0. secs (0.u,0.s) -Chars 63402 - 63432 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) -Chars 63435 - 63439 [Qed.] 0. secs (0.u,0.s) -Chars 63442 - 63676 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.002 secs (0.002u,0.s) -Chars 63677 - 63683 [Proof.] 0. secs (0.u,0.s) -Chars 63688 - 63719 [(eapply~eqit_bind_chain;~intros).] 0. secs (0.u,0.s) -Chars 63725 - 63770 [all:~now~do~2~step;~[~apply~EQ...] 0.025 secs (0.025u,0.s) -Chars 63771 - 63775 [Qed.] 0.002 secs (0.002u,0.s) -Chars 63779 - 63790 [End~eqit_h.] 0. secs (0.u,0.s) -Chars 63792 - 63835 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 63837 - 63873 [Ltac~etau~:=~taus;~eauto~with~...] 0. secs (0.u,0.s) -Chars 63876 - 63927 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) -Chars 63929 - 63984 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) -Chars 63989 - 64065 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) -Chars 64066 - 64072 [Proof.] 0. secs (0.u,0.s) -Chars 64075 - 64090 [(apply~eqit_Tau).] 0. secs (0.u,0.s) -Chars 64091 - 64095 [Qed.] 0. secs (0.u,0.s) -Chars 64097 - 64176 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) -Chars 64177 - 64183 [Proof.] 0. secs (0.u,0.s) -Chars 64186 - 64201 [(apply~eqit_Tau).] 0. secs (0.u,0.s) -Chars 64202 - 64206 [Qed.] 0. secs (0.u,0.s) -Chars 64208 - 64470 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 64471 - 64477 [Proof.] 0. secs (0.u,0.s) -Chars 64480 - 64487 [(intros).] 0. secs (0.u,0.s) -Chars 64490 - 64520 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) -Chars 64522 - 64526 [Qed.] 0.002 secs (0.002u,0.s) -Chars 64528 - 64789 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) -Chars 64790 - 64796 [Proof.] 0. secs (0.u,0.s) -Chars 64799 - 64824 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) -Chars 64825 - 64829 [Qed.] 0. secs (0.u,0.s) -Chars 65435 - 65596 [#[global]~Instance~eqit_subst~...] 0. secs (0.u,0.s) -Chars 65597 - 65603 [Proof.] 0. secs (0.u,0.s) -Chars 65606 - 65640 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) -Chars 65643 - 65663 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 65664 - 65668 [Qed.] 0. secs (0.u,0.s) -Chars 65670 - 65829 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) -Chars 65830 - 65836 [Proof.] 0. secs (0.u,0.s) -Chars 65839 - 65873 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) -Chars 65876 - 65896 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 65897 - 65901 [Qed.] 0. secs (0.u,0.s) -Chars 65903 - 66150 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 66151 - 66157 [Proof.] 0. secs (0.u,0.s) -Chars 66160 - 66185 [(unfold~ITree.map;~intros).] 0. secs (0.u,0.s) -Chars 66188 - 66213 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) -Chars 66216 - 66248 [(intros;~step;~constructor;~au...] 0.001 secs (0.001u,0.s) -Chars 66249 - 66253 [Qed.] 0.001 secs (0.001u,0.s) -Chars 66255 - 66412 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) -Chars 66413 - 66419 [Proof.] 0. secs (0.u,0.s) -Chars 66422 - 66454 [(intros~!;~eapply~eqit_map;~ea...] 0. secs (0.u,0.s) -Chars 66457 - 66477 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 66478 - 66482 [Qed.] 0. secs (0.u,0.s) -Chars 66484 - 66669 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) -Chars 66671 - 66677 [Proof.] 0. secs (0.u,0.s) -Chars 66681 - 66689 [intros~!.] 0. secs (0.u,0.s) -Chars 66693 - 66700 [unstep.] 0.001 secs (0.001u,0.s) -Chars 66701 - 66711 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 66712 - 66723 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 66724 - 66733 [now~step.] 0.001 secs (0.001u,0.s) -Chars 66735 - 66739 [Qed.] 0.002 secs (0.002u,0.s) -Chars 66743 - 66861 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) -Chars 66862 - 66868 [Proof.] 0. secs (0.u,0.s) -Chars 66871 - 66893 [(apply~Transitive_elem).] 0. secs (0.u,0.s) -Chars 66894 - 66912 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 66914 - 66918 [Qed.] 0. secs (0.u,0.s) -Chars 67247 - 67405 [#[global]~Instance~elem_observ...] 0.001 secs (0.001u,0.s) -Chars 67407 - 67413 [Proof.] 0. secs (0.u,0.s) -Chars 67417 - 67450 [(intros~x~y~Hxy~x'~y'~Hx'y'~He...] 0. secs (0.u,0.s) -Chars 67453 - 67471 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) -Chars 67476 - 67516 [(eapply~observing_sub_elem~in~...] 0. secs (0.u,0.s) -Chars 67519 - 67561 [(eapply~observing_sub_elem~in~...] 0.001 secs (0.001u,0.s) -Chars 67564 - 67592 [(do~2~(etransitivity;~eauto)).] 0.001 secs (0.001u,0.s) -Chars 67595 - 67599 [Qed.] 0.002 secs (0.002u,0.s) -Chars 67604 - 67693 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) -Chars 67694 - 67700 [Proof.] 0. secs (0.u,0.s) -Chars 67703 - 67719 [(unfold~eq_itree).] 0. secs (0.u,0.s) -Chars 67720 - 67727 [(intros).] 0. secs (0.u,0.s) -Chars 67813 - 67866 [(rewrite~(itree_eta_~(ITree.bi...] 0.002 secs (0.002u,0.s) -Chars 67893 - 67902 [revert~s.] 0. secs (0.u,0.s) -Chars 67906 - 67925 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 67929 - 67936 [(intros).] 0. secs (0.u,0.s) -Chars 68011 - 68057 [(desobs~s~H;~cbn;~simpobs;~con...] 0.004 secs (0.004u,0.s) -Chars 68085 - 68097 [reflexivity.] 0. secs (0.u,0.s) -Chars 68238 - 68272 [all:~(eapply~elem_observing_pr...] 0.002 secs (0.002u,0.s) -Chars 68317 - 68337 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) -Chars 68391 - 68426 [all:~(constructor;~ITree.fold_...] 0. secs (0.u,0.s) -Chars 68429 - 68453 [all:~(simpl;~reflexivity).] 0. secs (0.u,0.s) -Chars 68455 - 68459 [Qed.] 0.009 secs (0.009u,0.s) -Chars 68462 - 68584 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) -Chars 68585 - 68591 [Proof.] 0. secs (0.u,0.s) -Chars 68594 - 68602 [intro~H.] 0. secs (0.u,0.s) -Chars 68603 - 68634 [(rewrite~<-~(bind_ret_r~u)~~at...] 0.001 secs (0.001u,0.s) -Chars 68635 - 68651 [(apply~eqit_bind).] 0. secs (0.u,0.s) -Chars 68654 - 68655 [-] 0. secs (0.u,0.s) -Chars 68656 - 68668 [reflexivity.] 0. secs (0.u,0.s) -Chars 68671 - 68672 [-] 0. secs (0.u,0.s) -Chars 68673 - 68677 [(hnf).] 0. secs (0.u,0.s) -Chars 68678 - 68685 [(intros).] 0. secs (0.u,0.s) -Chars 68686 - 68701 [(apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 68702 - 68707 [auto.] 0. secs (0.u,0.s) -Chars 68708 - 68712 [Qed.] 0.001 secs (0.001u,0.s) -Chars 68714 - 68877 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) -Chars 68880 - 69057 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) -Chars 69058 - 69064 [Proof.] 0. secs (0.u,0.s) -Chars 69067 - 69083 [(unfold~eq_itree).] 0. secs (0.u,0.s) -Chars 69084 - 69091 [(intros).] 0. secs (0.u,0.s) -Chars 69095 - 69206 [(lazymatch~goal~with~~|~|-~_~(...] 0.003 secs (0.003u,0.s) -Chars 69209 - 69286 [(lazymatch~goal~with~~|~|-~_~?...] 0.002 secs (0.002u,0.s) -Chars 69289 - 69302 [revert~s~k~h.] 0. secs (0.u,0.s) -Chars 69306 - 69325 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) -Chars 69328 - 69335 [(intros).] 0. secs (0.u,0.s) -Chars 69338 - 69363 [(desobs~s~H;~cbn;~simpobs).] 0.003 secs (0.003u,0.s) -Chars 69367 - 69375 [1:~step.] 0.003 secs (0.003u,0.s) -Chars 69376 - 69388 [reflexivity.] 0. secs (0.u,0.s) -Chars 69392 - 69447 [all:~(constructor;~intros;~eap...] 0.002 secs (0.002u,0.s) -Chars 69450 - 69470 [all:~(try~eapply~CIH).] 0.001 secs (0.001u,0.s) -Chars 69473 - 69490 [all:~constructor.] 0.001 secs (0.001u,0.s) -Chars 69494 - 69510 [all:~fold_subst.] 0.001 secs (0.001u,0.s) -Chars 69514 - 69547 [all:~(repeat~rewrite~observe_b...] 0.005 secs (0.005u,0.s) -Chars 69550 - 69567 [all:~reflexivity.] 0. secs (0.u,0.s) -Chars 69568 - 69572 [Qed.] 0.011 secs (0.011u,0.s) -Chars 69575 - 69717 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) -Chars 69718 - 69724 [Proof.] 0. secs (0.u,0.s) -Chars 69727 - 69744 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 69745 - 69752 [(intros).] 0. secs (0.u,0.s) -Chars 69753 - 69771 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 69772 - 69798 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) -Chars 69799 - 69811 [reflexivity.] 0. secs (0.u,0.s) -Chars 69812 - 69816 [Qed.] 0.001 secs (0.001u,0.s) -Chars 69818 - 69970 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) -Chars 69971 - 69977 [Proof.] 0. secs (0.u,0.s) -Chars 69980 - 69997 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 69998 - 70005 [(intros).] 0. secs (0.u,0.s) -Chars 70006 - 70024 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 70025 - 70051 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 70052 - 70064 [reflexivity.] 0. secs (0.u,0.s) -Chars 70065 - 70069 [Qed.] 0.001 secs (0.001u,0.s) -Chars 70071 - 70224 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) -Chars 70225 - 70231 [Proof.] 0. secs (0.u,0.s) -Chars 70234 - 70241 [(intros).] 0. secs (0.u,0.s) -Chars 70242 - 70259 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 70260 - 70276 [(apply~bind_bind).] 0. secs (0.u,0.s) -Chars 70277 - 70281 [Qed.] 0. secs (0.u,0.s) -Chars 70283 - 70373 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 70374 - 70380 [Proof.] 0. secs (0.u,0.s) -Chars 70383 - 70390 [(intros).] 0. secs (0.u,0.s) -Chars 70391 - 70408 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 70411 - 70443 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) -Chars 70444 - 70448 [Qed.] 0.001 secs (0.001u,0.s) -Chars 70450 - 70558 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 70559 - 70565 [Proof.] 0. secs (0.u,0.s) -Chars 70568 - 70575 [(intros).] 0. secs (0.u,0.s) -Chars 70578 - 70595 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 70598 - 70628 [(rewrite~bind_tau;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 70629 - 70633 [Qed.] 0.001 secs (0.001u,0.s) -Chars 70635 - 70678 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 70679 - 70722 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 70723 - 70764 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) -Chars 70765 - 70806 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) -Chars 70807 - 70848 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) -Chars 70849 - 70889 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) -Chars 70890 - 70930 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) -Chars 70931 - 70973 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 70994 - 71085 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) -Chars 71087 - 71179 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) -Chars 71296 - 71371 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) -Chars 71443 - 71521 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) -Chars 71584 - 71638 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) -Chars 71640 - 71738 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) -Chars 71740 - 71839 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) -Chars 71841 - 71936 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) -Chars 71938 - 72036 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) -Chars 72038 - 72107 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) -Chars 72109 - 72370 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 72371 - 72377 [Proof.] 0. secs (0.u,0.s) -Chars 72380 - 72387 [(intros).] 0. secs (0.u,0.s) -Chars 72390 - 72400 [step~in~H.] 0. secs (0.u,0.s) -Chars 72403 - 72448 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 72451 - 72476 [(remember~(Ret~b)~as~retb).] 0. secs (0.u,0.s) -Chars 72480 - 72510 [(remember~(observe~retb)~as~tr).] 0. secs (0.u,0.s) -Chars 72513 - 72554 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) -Chars 72557 - 72613 [(hinduction~H~before~RR;~intro...] 0.002 secs (0.002u,0.s) -Chars 72616 - 72617 [-] 0. secs (0.u,0.s) -Chars 72618 - 72632 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 72637 - 72687 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 72692 - 72740 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 72745 - 72754 [exists~r.] 0. secs (0.u,0.s) -Chars 72755 - 72761 [split.] 0. secs (0.u,0.s) -Chars 72766 - 72767 [*] 0. secs (0.u,0.s) -Chars 72768 - 72791 [(rewrite~itree_eta,~Ema).] 0.009 secs (0.009u,0.s) -Chars 72792 - 72804 [reflexivity.] 0. secs (0.u,0.s) -Chars 72809 - 72810 [*] 0. secs (0.u,0.s) -Chars 72811 - 72830 [(rewrite~itree_eta_).] 0.009 secs (0.009u,0.s) -Chars 72831 - 72847 [(unfold~_observe).] 0. secs (0.u,0.s) -Chars 72848 - 72866 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) -Chars 72867 - 72877 [(inv~Heqtr).] 0.001 secs (0.001u,0.s) -Chars 72883 - 72907 [(step;~constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 72910 - 72911 [-] 0. secs (0.u,0.s) -Chars 72912 - 72919 [(intros).] 0. secs (0.u,0.s) -Chars 72920 - 72926 [subst.] 0. secs (0.u,0.s) -Chars 72931 - 72981 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 72986 - 73034 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 73039 - 73040 [+] 0. secs (0.u,0.s) -Chars 73041 - 73050 [exists~r.] 0. secs (0.u,0.s) -Chars 73051 - 73057 [split.] 0. secs (0.u,0.s) -Chars 73064 - 73065 [*] 0. secs (0.u,0.s) -Chars 73066 - 73089 [(rewrite~itree_eta,~Ema).] 0.011 secs (0.011u,0.s) -Chars 73090 - 73102 [reflexivity.] 0. secs (0.u,0.s) -Chars 73109 - 73110 [*] 0. secs (0.u,0.s) -Chars 73111 - 73116 [step.] 0.001 secs (0.001u,0.s) -Chars 73117 - 73154 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) -Chars 73155 - 73173 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) -Chars 73174 - 73192 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 73197 - 73198 [+] 0. secs (0.u,0.s) -Chars 73199 - 73210 [(inv~Heqotl).] 0.005 secs (0.005u,0.s) -Chars 73218 - 73243 [(edestruct~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 73244 - 73253 [exists~x.] 0. secs (0.u,0.s) -Chars 73261 - 73273 [(destruct~H0).] 0. secs (0.u,0.s) -Chars 73281 - 73294 [(split;~eauto).] 0. secs (0.u,0.s) -Chars 73301 - 73319 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 73320 - 73325 [taul.] 0. secs (0.u,0.s) -Chars 73333 - 73348 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 73350 - 73354 [Qed.] 0.01 secs (0.01u,0.s) -Chars 73356 - 73519 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 73520 - 73526 [Proof.] 0. secs (0.u,0.s) -Chars 73529 - 73567 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) -Chars 73568 - 73572 [Qed.] 0. secs (0.u,0.s) -Chars 73574 - 73740 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) -Chars 73741 - 73747 [Proof.] 0. secs (0.u,0.s) -Chars 73750 - 73788 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) -Chars 73789 - 73793 [Qed.] 0. secs (0.u,0.s) -Chars 73795 - 74063 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) -Chars 74065 - 74505 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 74506 - 74512 [Proof.] 0. secs (0.u,0.s) -Chars 74515 - 74522 [(intros).] 0. secs (0.u,0.s) -Chars 74523 - 74533 [step~in~H.] 0. secs (0.u,0.s) -Chars 74537 - 74582 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 74585 - 74613 [(remember~(Vis~e~kxc)~as~vis).] 0. secs (0.u,0.s) -Chars 74616 - 74645 [(remember~(observe~vis)~as~tr).] 0. secs (0.u,0.s) -Chars 74649 - 74692 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) -Chars 74695 - 74748 [(induction~H;~try~(solve~[~int...] 0.003 secs (0.003u,0.s) -Chars 74751 - 74752 [-] 0. secs (0.u,0.s) -Chars 74753 - 74760 [(intros).] 0. secs (0.u,0.s) -Chars 74761 - 74809 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 74814 - 74862 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 74867 - 74868 [+] 0. secs (0.u,0.s) -Chars 74869 - 74875 [right.] 0. secs (0.u,0.s) -Chars 74876 - 74885 [exists~r.] 0. secs (0.u,0.s) -Chars 74886 - 74892 [split.] 0. secs (0.u,0.s) -Chars 74899 - 74900 [*] 0. secs (0.u,0.s) -Chars 74901 - 74920 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 74921 - 74933 [constructor.] 0. secs (0.u,0.s) -Chars 74934 - 74939 [auto.] 0. secs (0.u,0.s) -Chars 74946 - 74947 [*] 0. secs (0.u,0.s) -Chars 74948 - 74992 [(step;~unfold~observe~at~1;~un...] 0.001 secs (0.001u,0.s) -Chars 74993 - 75010 [(rewrite~<-~Heqtl).] 0. secs (0.u,0.s) -Chars 75019 - 75027 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 75028 - 75046 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 75051 - 75052 [+] 0. secs (0.u,0.s) -Chars 75053 - 75058 [left.] 0. secs (0.u,0.s) -Chars 75065 - 75083 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) -Chars 75091 - 75108 [revert~e0~Heqvis.] 0. secs (0.u,0.s) -Chars 75109 - 75129 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) -Chars 75130 - 75148 [(inv_eq_VisF~Heqtl).] 0. secs (0.u,0.s) -Chars 75149 - 75156 [(intros).] 0. secs (0.u,0.s) -Chars 75163 - 75174 [(inv~Heqvis).] 0.002 secs (0.002u,0.s) -Chars 75182 - 75195 [(cbn~in~Heqtr).] 0. secs (0.u,0.s) -Chars 75203 - 75221 [(inv_eq_VisF~Heqtr).] 0. secs (0.u,0.s) -Chars 75228 - 75237 [exists~k.] 0. secs (0.u,0.s) -Chars 75238 - 75244 [split.] 0. secs (0.u,0.s) -Chars 75251 - 75252 [*] 0. secs (0.u,0.s) -Chars 75253 - 75272 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 75273 - 75285 [constructor.] 0. secs (0.u,0.s) -Chars 75287 - 75299 [reflexivity.] 0. secs (0.u,0.s) -Chars 75306 - 75307 [*] 0. secs (0.u,0.s) -Chars 75308 - 75313 [auto.] 0. secs (0.u,0.s) -Chars 75316 - 75317 [-] 0. secs (0.u,0.s) -Chars 75318 - 75325 [(intros).] 0. secs (0.u,0.s) -Chars 75326 - 75332 [subst.] 0. secs (0.u,0.s) -Chars 75337 - 75385 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 75390 - 75439 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 75444 - 75445 [+] 0. secs (0.u,0.s) -Chars 75446 - 75469 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 75476 - 75477 [*] 0. secs (0.u,0.s) -Chars 75478 - 75514 [(rewrite~itree_eta,~Ema;~refle...] 0.012 secs (0.011u,0.s) -Chars 75521 - 75522 [*] 0. secs (0.u,0.s) -Chars 75523 - 75528 [step.] 0.001 secs (0.001u,0.s) -Chars 75530 - 75585 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) -Chars 75586 - 75604 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 75609 - 75610 [+] 0. secs (0.u,0.s) -Chars 75611 - 75621 [(inv~Heqtl).] 0.007 secs (0.007u,0.s) -Chars 75622 - 75677 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 75684 - 75749 [(destruct~IHeqitF~as~[(k0,~(?,...] 0. secs (0.u,0.s) -Chars 75756 - 75757 [*] 0. secs (0.u,0.s) -Chars 75758 - 75768 [exists~k0.] 0. secs (0.u,0.s) -Chars 75769 - 75781 [(split;~auto).] 0. secs (0.u,0.s) -Chars 75790 - 75843 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 75851 - 75852 [*] 0. secs (0.u,0.s) -Chars 75853 - 75862 [exists~a.] 0. secs (0.u,0.s) -Chars 75863 - 75875 [(split;~auto).] 0. secs (0.u,0.s) -Chars 75884 - 75937 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 75938 - 75942 [Qed.] 0.015 secs (0.015u,0.s) -Chars 75944 - 76280 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 76281 - 76287 [Proof.] 0. secs (0.u,0.s) -Chars 76290 - 76297 [(intros).] 0. secs (0.u,0.s) -Chars 76298 - 76322 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) -Chars 76323 - 76328 [auto.] 0. secs (0.u,0.s) -Chars 76329 - 76333 [Qed.] 0. secs (0.u,0.s) -Chars 76335 - 76674 [Lemma~eqitree_inv_bind_vis~:~~...] 0.001 secs (0.001u,0.s) -Chars 76675 - 76681 [Proof.] 0. secs (0.u,0.s) -Chars 76684 - 76691 [(intros).] 0. secs (0.u,0.s) -Chars 76692 - 76716 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) -Chars 76717 - 76722 [auto.] 0. secs (0.u,0.s) -Chars 76723 - 76727 [Qed.] 0. secs (0.u,0.s) -Chars 76729 - 77077 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 77078 - 77084 [Proof.] 0. secs (0.u,0.s) -Chars 77087 - 77094 [(intros).] 0. secs (0.u,0.s) -Chars 77095 - 77105 [step~in~H.] 0. secs (0.u,0.s) -Chars 77109 - 77154 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 77157 - 77182 [(remember~(Tau~tc)~as~tau).] 0. secs (0.u,0.s) -Chars 77185 - 77214 [(remember~(observe~tau)~as~tr).] 0. secs (0.u,0.s) -Chars 77217 - 77257 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) -Chars 77260 - 77313 [(induction~H;~intros;~try~(sol...] 0.003 secs (0.003u,0.s) -Chars 77316 - 77317 [-] 0. secs (0.u,0.s) -Chars 77318 - 77328 [(inv~Heqtr).] 0.005 secs (0.005u,0.s) -Chars 77329 - 77377 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 77382 - 77430 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 77435 - 77436 [+] 0. secs (0.u,0.s) -Chars 77437 - 77460 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 77467 - 77468 [*] 0. secs (0.u,0.s) -Chars 77469 - 77512 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.001u,0.s) -Chars 77519 - 77520 [*] 0. secs (0.u,0.s) -Chars 77521 - 77601 [(step;~icbn;~inv~H0;~unfold~ob...] 0.004 secs (0.004u,0.s) -Chars 77606 - 77607 [+] 0. secs (0.u,0.s) -Chars 77608 - 77630 [(left;~exists~t;~split).] 0. secs (0.u,0.s) -Chars 77637 - 77638 [*] 0. secs (0.u,0.s) -Chars 77639 - 77695 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 77702 - 77703 [*] 0. secs (0.u,0.s) -Chars 77704 - 77714 [(inv~Heqtl).] 0.002 secs (0.002u,0.s) -Chars 77715 - 77722 [(inv~H0).] 0. secs (0.u,0.s) -Chars 77726 - 77727 [-] 0. secs (0.u,0.s) -Chars 77728 - 77734 [subst.] 0. secs (0.u,0.s) -Chars 77739 - 77787 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 77792 - 77840 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 77845 - 77846 [+] 0. secs (0.u,0.s) -Chars 77847 - 77870 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 77877 - 77878 [*] 0. secs (0.u,0.s) -Chars 77879 - 77922 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 77929 - 77930 [*] 0. secs (0.u,0.s) -Chars 77931 - 77998 [(step;~icbn;~unfold~observe~at...] 0.001 secs (0.001u,0.s) -Chars 77999 - 78019 [(constructor~4;~auto).] 0. secs (0.u,0.s) -Chars 78024 - 78025 [+] 0. secs (0.u,0.s) -Chars 78026 - 78036 [(inv~Heqtl).] 0.007 secs (0.007u,0.s) -Chars 78037 - 78090 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 78097 - 78162 [(destruct~IHeqitF~as~[(t0,~(?,...] 0. secs (0.u,0.s) -Chars 78169 - 78170 [*] 0. secs (0.u,0.s) -Chars 78171 - 78181 [exists~t0.] 0. secs (0.u,0.s) -Chars 78182 - 78194 [(split;~auto).] 0. secs (0.u,0.s) -Chars 78203 - 78258 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 78265 - 78266 [*] 0. secs (0.u,0.s) -Chars 78267 - 78276 [exists~a.] 0. secs (0.u,0.s) -Chars 78277 - 78289 [(split;~auto).] 0. secs (0.u,0.s) -Chars 78298 - 78351 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 78354 - 78355 [-] 0. secs (0.u,0.s) -Chars 78356 - 78366 [(inv~Heqtr).] 0.007 secs (0.007u,0.s) -Chars 78371 - 78394 [(left;~exists~ma;~split).] 0. secs (0.u,0.s) -Chars 78399 - 78400 [+] 0. secs (0.u,0.s) -Chars 78401 - 78425 [(step;~constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 78431 - 78432 [+] 0. secs (0.u,0.s) -Chars 78433 - 78458 [(inv~H1;~step;~assumption).] 0.007 secs (0.007u,0.s) -Chars 78459 - 78463 [Qed.] 0.016 secs (0.016u,0.s) -Chars 78465 - 78730 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 78731 - 78737 [Proof.] 0. secs (0.u,0.s) -Chars 78740 - 78747 [(intros).] 0. secs (0.u,0.s) -Chars 78748 - 78772 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) -Chars 78773 - 78778 [auto.] 0. secs (0.u,0.s) -Chars 78779 - 78783 [Qed.] 0. secs (0.u,0.s) -Chars 78785 - 79053 [Lemma~eqitree_inv_bind_tau~:~~...] 0.001 secs (0.u,0.s) -Chars 79054 - 79060 [Proof.] 0. secs (0.u,0.s) -Chars 79063 - 79070 [(intros).] 0. secs (0.u,0.s) -Chars 79071 - 79095 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) -Chars 79096 - 79101 [auto.] 0. secs (0.u,0.s) -Chars 79102 - 79106 [Qed.] 0. secs (0.u,0.s) -Chars 79108 - 79230 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 79231 - 79237 [Proof.] 0. secs (0.u,0.s) -Chars 79240 - 79247 [(intros).] 0. secs (0.u,0.s) -Chars 79250 - 79260 [step~in~H.] 0. secs (0.u,0.s) -Chars 79263 - 79295 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) -Chars 79298 - 79336 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 79339 - 79357 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 79360 - 79422 [(induction~H;~intros~EQ1~EQ2;~...] 0.006 secs (0.006u,0.s) -Chars 79425 - 79426 [-] 0. secs (0.u,0.s) -Chars 79427 - 79447 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 79452 - 79460 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 79461 - 79465 [Qed.] 0.002 secs (0.002u,0.s) -Chars 79467 - 79589 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 79590 - 79596 [Proof.] 0. secs (0.u,0.s) -Chars 79599 - 79606 [(intros).] 0. secs (0.u,0.s) -Chars 79609 - 79619 [step~in~H.] 0. secs (0.u,0.s) -Chars 79622 - 79654 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) -Chars 79657 - 79695 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 79698 - 79716 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 79719 - 79781 [(induction~H;~intros~EQ1~EQ2;~...] 0.007 secs (0.007u,0.s) -Chars 79784 - 79785 [-] 0. secs (0.u,0.s) -Chars 79786 - 79806 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 79811 - 79819 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 79820 - 79824 [Qed.] 0.002 secs (0.002u,0.s) -Chars 79826 - 79976 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 79977 - 79983 [Proof.] 0. secs (0.u,0.s) -Chars 79986 - 79993 [(intros).] 0. secs (0.u,0.s) -Chars 79996 - 80006 [step~in~H.] 0. secs (0.u,0.s) -Chars 80009 - 80043 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) -Chars 80046 - 80084 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 80087 - 80105 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 80108 - 80170 [(induction~H;~intros~EQ1~EQ2;~...] 0.01 secs (0.01u,0.s) -Chars 80173 - 80174 [-] 0. secs (0.u,0.s) -Chars 80175 - 80195 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 80200 - 80208 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 80209 - 80213 [Qed.] 0.003 secs (0.003u,0.s) -Chars 80215 - 80365 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 80366 - 80372 [Proof.] 0. secs (0.u,0.s) -Chars 80375 - 80382 [(intros).] 0. secs (0.u,0.s) -Chars 80385 - 80395 [step~in~H.] 0. secs (0.u,0.s) -Chars 80398 - 80432 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) -Chars 80435 - 80473 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 80476 - 80494 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 80497 - 80559 [(induction~H;~intros~EQ1~EQ2;~...] 0.009 secs (0.009u,0.s) -Chars 80562 - 80563 [-] 0. secs (0.u,0.s) -Chars 80564 - 80584 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 80589 - 80597 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 80598 - 80602 [Qed.] 0.003 secs (0.003u,0.s) -Chars 80603 - 80621 [Section~eqit_elem.] 0. secs (0.u,0.s) -Chars 81928 - 82002 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 82004 - 82063 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) -Chars 82101 - 82218 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) -Chars 82219 - 82225 [Proof.] 0. secs (0.u,0.s) -Chars 82228 - 82259 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) -Chars 82260 - 82264 [Qed.] 0. secs (0.u,0.s) -Chars 82266 - 82383 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 82384 - 82390 [Proof.] 0. secs (0.u,0.s) -Chars 82391 - 82409 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 82410 - 82414 [Qed.] 0. secs (0.u,0.s) -Chars 82416 - 82533 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 82534 - 82540 [Proof.] 0. secs (0.u,0.s) -Chars 82541 - 82559 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 82560 - 82564 [Qed.] 0. secs (0.u,0.s) -Chars 82595 - 82830 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.002 secs (0.002u,0.s) -Chars 82831 - 82837 [Proof.] 0. secs (0.u,0.s) -Chars 82840 - 82847 [(intros).] 0. secs (0.u,0.s) -Chars 82848 - 82878 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.001u,0.s) -Chars 82879 - 82893 [now~do~2~step.] 0.005 secs (0.005u,0.s) -Chars 82895 - 82899 [Qed.] 0.001 secs (0.001u,0.s) -Chars 83086 - 83100 [End~eqit_elem.] 0. secs (0.u,0.s) -Chars 83103 - 83122 [Section~eutt_facts.] 0. secs (0.u,0.s) -Chars 84517 - 84630 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 84631 - 84637 [Proof.] 0. secs (0.u,0.s) -Chars 84640 - 84648 [intros~!.] 0. secs (0.u,0.s) -Chars 84649 - 84667 [now~rewrite~H,~H0.] 0.023 secs (0.023u,0.s) -Chars 84668 - 84672 [Qed.] 0.001 secs (0.001u,0.s) -Chars 84674 - 84811 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 84812 - 84818 [Proof.] 0. secs (0.u,0.s) -Chars 84821 - 84829 [intros~!.] 0. secs (0.u,0.s) -Chars 84830 - 84848 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) -Chars 84849 - 84853 [Qed.] 0.001 secs (0.001u,0.s) -Chars 84855 - 84992 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 84993 - 84999 [Proof.] 0. secs (0.u,0.s) -Chars 85002 - 85010 [intros~!.] 0. secs (0.u,0.s) -Chars 85011 - 85029 [now~rewrite~H,~H0.] 0.026 secs (0.026u,0.s) -Chars 85030 - 85034 [Qed.] 0.001 secs (0.001u,0.s) -Chars 85188 - 85374 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) -Chars 85375 - 85381 [Proof.] 0. secs (0.u,0.s) -Chars 85384 - 85391 [(intros).] 0. secs (0.u,0.s) -Chars 85394 - 85454 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 85457 - 85480 [(intros~?~?~->;~apply~H).] 0. secs (0.u,0.s) -Chars 85481 - 85485 [Qed.] 0. secs (0.u,0.s) -Chars 85531 - 85697 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) -Chars 85698 - 85704 [Proof.] 0. secs (0.u,0.s) -Chars 85707 - 85720 [(intros~->~Hk).] 0.001 secs (0.001u,0.s) -Chars 85721 - 85744 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 85745 - 85749 [Qed.] 0.001 secs (0.u,0.s) -Chars 85844 - 85966 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) -Chars 85967 - 85973 [Proof.] 0. secs (0.u,0.s) -Chars 85976 - 85999 [(intros;~apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 86000 - 86004 [Qed.] 0. secs (0.u,0.s) -Chars 86168 - 86195 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) -Chars 86197 - 86347 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) -Chars 86348 - 86354 [Proof.] 0. secs (0.u,0.s) -Chars 86357 - 86376 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) -Chars 86377 - 86393 [(intros~*~EQ~EQ').] 0. secs (0.u,0.s) -Chars 86396 - 86420 [(step~in~EQ;~step~in~EQ').] 0.001 secs (0.001u,0.s) -Chars 86424 - 86449 [(genobs~t~ot;~genobs~s~os).] 0.001 secs (0.001u,0.s) -Chars 86452 - 86499 [(hinduction~EQ~before~CIH;~sub...] 0.001 secs (0.001u,0.s) -Chars 86502 - 86503 [-] 0. secs (0.u,0.s) -Chars 86504 - 86512 [(inv~EQ').] 0.009 secs (0.009u,0.s) -Chars 86513 - 86518 [eret.] 0. secs (0.u,0.s) -Chars 86519 - 86535 [now~constructor.] 0. secs (0.u,0.s) -Chars 86539 - 86540 [-] 0. secs (0.u,0.s) -Chars 86541 - 86546 [taus.] 0. secs (0.u,0.s) -Chars 86547 - 86565 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 86566 - 86585 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) -Chars 86586 - 86595 [now~step.] 0.001 secs (0.001u,0.s) -Chars 86600 - 86601 [-] 0. secs (0.u,0.s) -Chars 86602 - 86614 [constructor.] 0. secs (0.u,0.s) -Chars 86615 - 86623 [intro~v.] 0. secs (0.u,0.s) -Chars 86624 - 86643 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 86648 - 86666 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 86672 - 86712 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) -Chars 86715 - 86716 [-] 0. secs (0.u,0.s) -Chars 86717 - 86722 [taul.] 0. secs (0.u,0.s) -Chars 86723 - 86742 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 86743 - 86749 [subst.] 0. secs (0.u,0.s) -Chars 86750 - 86757 [unstep.] 0.003 secs (0.003u,0.s) -Chars 86758 - 86780 [(eapply~eqit_inv_Tau_l).] 0. secs (0.u,0.s) -Chars 86786 - 86795 [now~step.] 0.001 secs (0.001u,0.s) -Chars 86800 - 86801 [-] 0. secs (0.u,0.s) -Chars 86802 - 86807 [taur.] 0. secs (0.u,0.s) -Chars 86808 - 86827 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 86828 - 86834 [subst.] 0. secs (0.u,0.s) -Chars 86835 - 86842 [unstep.] 0.003 secs (0.003u,0.s) -Chars 86843 - 86865 [(eapply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 86871 - 86880 [now~step.] 0.001 secs (0.001u,0.s) -Chars 86883 - 86887 [Qed.] 0.016 secs (0.016u,0.s) -Chars 86889 - 87015 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 87017 - 87023 [Proof.] 0. secs (0.u,0.s) -Chars 87026 - 87033 [(intros).] 0. secs (0.u,0.s) -Chars 87036 - 87067 [(eapply~(eqit_mono~RS~_);~eauto).] 0.001 secs (0.001u,0.s) -Chars 87068 - 87072 [Qed.] 0. secs (0.u,0.s) -Chars 87074 - 87201 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 87203 - 87209 [Proof.] 0. secs (0.u,0.s) -Chars 87212 - 87219 [(intros).] 0. secs (0.u,0.s) -Chars 87222 - 87254 [(eapply~(eqit_mono~RS'~_);~eau...] 0.001 secs (0.001u,0.s) -Chars 87255 - 87259 [Qed.] 0. secs (0.u,0.s) -Chars 87261 - 87420 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) -Chars 87422 - 87428 [Proof.] 0. secs (0.u,0.s) -Chars 87431 - 87504 [(intros~*~EQ;~split;~intros~EU...] 0.005 secs (0.005u,0.s) -Chars 87507 - 87521 [all:~(apply~EQ).] 0. secs (0.u,0.s) -Chars 87522 - 87526 [Qed.] 0. secs (0.u,0.s) -Chars 87604 - 87783 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 87784 - 87790 [Proof.] 0. secs (0.u,0.s) -Chars 87793 - 87808 [(intros~!;~subst).] 0. secs (0.u,0.s) -Chars 87811 - 87851 [(unfold~eq_itree;~rewrite~H;~r...] 0. secs (0.u,0.s) -Chars 87852 - 87856 [Qed.] 0. secs (0.u,0.s) -Chars 87858 - 88018 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 88019 - 88025 [Proof.] 0. secs (0.u,0.s) -Chars 88028 - 88043 [(intros~!;~subst).] 0. secs (0.u,0.s) -Chars 88046 - 88082 [(unfold~eutt;~rewrite~H;~refle...] 0. secs (0.u,0.s) -Chars 88083 - 88087 [Qed.] 0. secs (0.u,0.s) -Chars 88196 - 88327 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) -Chars 88328 - 88334 [Proof.] 0. secs (0.u,0.s) -Chars 88337 - 88359 [(intros~Hrel;~revert~t).] 0. secs (0.u,0.s) -Chars 88360 - 88395 [(icoinduction~c~CIH;~intros~t~...] 0.001 secs (0.001u,0.s) -Chars 88398 - 88412 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 88415 - 88446 [(remember~t~as~t'~in~Heutt~at~2).] 0. secs (0.u,0.s) -Chars 88447 - 88483 [(assert~(Ht'~:~t'~≈~t)~by~now~...] 0. secs (0.u,0.s) -Chars 88484 - 88496 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 88499 - 88544 [(rewrite~(itree_eta~t),~(itree...] 0.041 secs (0.04u,0.s) -Chars 88547 - 88558 [revert~Ht'.] 0. secs (0.u,0.s) -Chars 88559 - 88596 [(induction~Heutt;~clear~t;~int...] 0.001 secs (0.001u,0.s) -Chars 88599 - 88600 [-] 0. secs (0.u,0.s) -Chars 88601 - 88634 [(apply~eutt_inv_Ret~in~Heq;~su...] 0. secs (0.u,0.s) -Chars 88639 - 88657 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 88660 - 88661 [-] 0. secs (0.u,0.s) -Chars 88662 - 88688 [(apply~eqit_inv_Tau~in~Heq).] 0. secs (0.u,0.s) -Chars 88693 - 88705 [constructor.] 0. secs (0.u,0.s) -Chars 88706 - 88717 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 88723 - 88747 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 88750 - 88751 [-] 0. secs (0.u,0.s) -Chars 88752 - 88764 [constructor.] 0. secs (0.u,0.s) -Chars 88765 - 88774 [(intros~v).] 0. secs (0.u,0.s) -Chars 88775 - 88802 [(eapply~eqit_inv_Vis~in~Heq).] 0. secs (0.u,0.s) -Chars 88807 - 88826 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 88827 - 88838 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 88839 - 88863 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 88866 - 88867 [-] 0. secs (0.u,0.s) -Chars 88868 - 88873 [taul.] 0. secs (0.u,0.s) -Chars 88874 - 88879 [taur.] 0. secs (0.u,0.s) -Chars 88880 - 88894 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 88895 - 88921 [(rewrite~<-~(itree_eta~t1)).] 0.001 secs (0.001u,0.s) -Chars 88929 - 88959 [now~rewrite~tau_euttge~in~Heq.] 0.025 secs (0.025u,0.s) -Chars 88963 - 88964 [-] 0. secs (0.u,0.s) -Chars 88965 - 88979 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 88980 - 89003 [(rewrite~<-~itree_eta).] 0. secs (0.u,0.s) -Chars 89011 - 89041 [now~rewrite~tau_euttge~in~Heq.] 0.016 secs (0.016u,0.s) -Chars 89043 - 89047 [Qed.] 0.006 secs (0.006u,0.s) -Chars 89049 - 89064 [End~eutt_facts.] 0. secs (0.u,0.s) -Chars 89113 - 89280 [#[global]~Instance~observing_e...] 0.001 secs (0.001u,0.s) -Chars 89282 - 89288 [Proof.] 0. secs (0.u,0.s) -Chars 89292 - 89300 [intros~!.] 0. secs (0.u,0.s) -Chars 89304 - 89309 [step.] 0.002 secs (0.002u,0.s) -Chars 89310 - 89320 [(rewrite~H).] 0.009 secs (0.009u,0.s) -Chars 89321 - 89333 [reflexivity.] 0. secs (0.u,0.s) -Chars 89335 - 89339 [Qed.] 0.001 secs (0.001u,0.s) -Chars 89346 - 89481 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) -Chars 89483 - 89489 [Proof.] 0. secs (0.u,0.s) -Chars 89493 - 89532 [(intros~!;~now~eapply~observin...] 0. secs (0.u,0.s) -Chars 89533 - 89537 [Qed.] 0. secs (0.u,0.s) -Chars 89540 - 89667 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) +Chars 665 - 796 [From~Stdlib~Require~Import~Str...] 0.013 secs (0.009u,0.003s) +Chars 798 - 834 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 933 - 1073 [From~ITree~Require~Import~Basi...] 0.035 secs (0.028u,0.007s) +Chars 1076 - 1105 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 2696 - 2740 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) +Chars 2742 - 2755 [Section~eqit.] 0. secs (0.u,0.s) +Chars 3432 - 3459 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 3886 - 4602 [Inductive~eqitF~{R1~R2~:~Type}...] 0.004 secs (0.003u,0.s) +Chars 4605 - 4637 [Hint~Constructors~eqitF:~itree.] 0. secs (0.u,0.s) +Chars 4641 - 4905 [Definition~eqit_~b1~b2~~~(sim~...] 0. secs (0.u,0.s) +Chars 4908 - 4934 [Hint~Unfold~eqit_:~itree.] 0. secs (0.u,0.s) +Chars 4986 - 5046 [Lemma~eqitF_mono~b1~b2~:~Prope...] 0. secs (0.u,0.s) +Chars 5049 - 5055 [Proof.] 0. secs (0.u,0.s) +Chars 5060 - 5096 [(intros~sim~sim'~Hsim~R1~R2~RR...] 0. secs (0.u,0.s) +Chars 5101 - 5114 [(unfold~eqit_).] 0. secs (0.u,0.s) +Chars 5115 - 5125 [(intros~IN).] 0. secs (0.u,0.s) +Chars 5130 - 5162 [(induction~IN;~constructor;~au...] 0.002 secs (0.001u,0.s) +Chars 5167 - 5168 [-] 0. secs (0.u,0.s) +Chars 5169 - 5186 [(apply~Hsim;~auto).] 0.019 secs (0.017u,0.002s) +Chars 5191 - 5192 [-] 0. secs (0.u,0.s) +Chars 5193 - 5220 [(intros~?;~apply~Hsim;~auto).] 0. secs (0.u,0.s) +Chars 5223 - 5227 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5286 - 5450 [Definition~eqit_mon~b1~b2~:~~~...] 0.001 secs (0.001u,0.s) +Chars 5454 - 5575 [Definition~eqit~b1~b2~:~~~fora...] 0. secs (0.u,0.s) +Chars 5786 - 5867 [Definition~eq_itree~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 5871 - 5946 [Definition~eutt~{R1}~{R2}~(RR~...] 0. secs (0.u,0.s) +Chars 5950 - 6028 [Definition~euttge~{R1}~{R2}~(R...] 0. secs (0.u,0.s) +Chars 6030 - 6039 [End~eqit.] 0. secs (0.u,0.s) +Chars 6040 - 6086 [Arguments~eqit_~{E}~b1~b2~sim~...] 0. secs (0.u,0.s) +Chars 6087 - 6127 [Arguments~eqit~{E}~b1~b2~{R1~R...] 0. secs (0.u,0.s) +Chars 6128 - 6157 [Arguments~eqit_mon~{E}~b1~b2.] 0. secs (0.u,0.s) +Chars 6381 - 6447 [Infix~"≅⟨~R~⟩"~:=~(eq_itree~R)...] 0. secs (0.u,0.s) +Chars 6452 - 6510 [Infix~"≅"~:=~(eq_itree~eq)~(~a...] 0. secs (0.u,0.s) +Chars 6533 - 6621 [Infix~"{≅⟨~R~⟩}"~:=~(eqitF~R~f...] 0. secs (0.u,0.s) +Chars 6626 - 6720 [Infix~"{≅}"~:=~(eqitF~eq~false...] 0. secs (0.u,0.s) +Chars 6744 - 6836 [Infix~"{[≅⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) +Chars 6841 - 6939 [Infix~"{[≅]}"~:=~(eqitF~eq~fal...] 0. secs (0.u,0.s) +Chars 6959 - 7055 [Infix~"[≅⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) +Chars 7060 - 7148 [Infix~"[≅]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) +Chars 7154 - 7214 [Infix~"≈⟨~R~⟩"~:=~(eutt~R)~(~a...] 0. secs (0.u,0.s) +Chars 7219 - 7271 [Infix~"≈"~:=~(eutt~eq)~(~at~le...] 0. secs (0.u,0.s) +Chars 7294 - 7376 [Infix~"{≈⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) +Chars 7381 - 7469 [Infix~"{≈}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) +Chars 7493 - 7583 [Infix~"{[≈⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) +Chars 7588 - 7684 [Infix~"{[≈]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) +Chars 7704 - 7798 [Infix~"[≈⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) +Chars 7803 - 7889 [Infix~"[≈]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) +Chars 7895 - 7957 [Infix~"≳⟨~R~⟩"~:=~(euttge~R)~(...] 0. secs (0.u,0.s) +Chars 7962 - 8018 [Infix~"≳"~:=~(euttge~eq)~(~at~...] 0. secs (0.u,0.s) +Chars 8041 - 8126 [Infix~"{≳⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) +Chars 8131 - 8222 [Infix~"{≳}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) +Chars 8246 - 8337 [Infix~"{[≳⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) +Chars 8342 - 8439 [Infix~"{[≳]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) +Chars 8459 - 8554 [Infix~"[≳⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) +Chars 8559 - 8646 [Infix~"[≳]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) +Chars 8669 - 8716 [Notation~euttC~:=~(Chain~(eqit...] 0. secs (0.u,0.s) +Chars 8721 - 8771 [Notation~euttgeC~:=~(Chain~(eq...] 0. secs (0.u,0.s) +Chars 8776 - 8829 [Notation~eq_itreeC~:=~(Chain~(...] 0. secs (0.u,0.s) +Chars 8888 - 8949 [Notation~"⊙~x"~:=~(observe~x)~...] 0. secs (0.u,0.s) +Chars 8981 - 9023 [#[global]~Hint~Constructors~eq...] 0. secs (0.u,0.s) +Chars 9028 - 9064 [#[global]~Hint~Unfold~eqit_:~i...] 0. secs (0.u,0.s) +Chars 9069 - 9108 [#[global]~Hint~Unfold~eqit_mon...] 0. secs (0.u,0.s) +Chars 9113 - 9148 [#[global]~Hint~Unfold~eqit:~it...] 0. secs (0.u,0.s) +Chars 9153 - 9192 [#[global]~Hint~Unfold~eq_itree...] 0. secs (0.u,0.s) +Chars 9197 - 9232 [#[global]~Hint~Unfold~eutt:~it...] 0. secs (0.u,0.s) +Chars 9237 - 9274 [#[global]~Hint~Unfold~euttge:~...] 0. secs (0.u,0.s) +Chars 10016 - 10082 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) +Chars 10083 - 10154 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) +Chars 10155 - 10226 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) +Chars 10228 - 10252 [Ltac~icbn~:=~repeat~red.] 0. secs (0.u,0.s) +Chars 10254 - 10303 [Ltac~icbn_in~h~:=~cbn[eqit_mon...] 0. secs (0.u,0.s) +Chars 10305 - 10520 [Ltac~~refold~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) +Chars 10522 - 10757 [Ltac~~refold_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 10759 - 11855 [Ltac~~to_mon_core~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 11857 - 12041 [Ltac~~to_mon~:=~~~let~dummy~:=...] 0. secs (0.u,0.s) +Chars 12044 - 12519 [Ltac~~to_mon_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 12579 - 12638 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 12639 - 12714 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 12716 - 12770 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) +Chars 12771 - 12825 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) +Chars 12826 - 12882 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) +Chars 12883 - 12933 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) +Chars 12984 - 13128 [#[global]~Ltac~~step~:=~~~matc...] 0. secs (0.u,0.s) +Chars 13231 - 13403 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 13406 - 13474 [Tactic~Notation~"unstep"~:=~(i...] 0. secs (0.u,0.s) +Chars 13475 - 13579 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) +Chars 13581 - 13662 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) +Chars 13664 - 13779 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) +Chars 13781 - 13882 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) +Chars 13885 - 13995 [Tactic~Notation~"icoinduction"...] 0. secs (0.u,0.s) +Chars 14054 - 14103 [Ltac~sinv~H~:=~repeat~red~in~H...] 0. secs (0.u,0.s) +Chars 14241 - 14509 [Ltac~~solve_eqitF~:=~~~iunfold...] 0. secs (0.u,0.s) +Chars 14748 - 14783 [Ltac~taul~:=~apply~EqTauL;~[~a...] 0. secs (0.u,0.s) +Chars 14784 - 14819 [Ltac~taur~:=~apply~EqTauR;~[~a...] 0. secs (0.u,0.s) +Chars 14821 - 14846 [Ltac~taus~:=~apply~EqTau.] 0. secs (0.u,0.s) +Chars 14850 - 14877 [Module~step_notation_tests.] 0. secs (0.u,0.s) +Chars 14881 - 14917 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 14920 - 14952 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 14955 - 14996 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 14999 - 15035 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 15038 - 15074 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 15077 - 15136 [#[local]~Parameter~(eqc~:~Chai...] 0. secs (0.u,0.s) +Chars 15139 - 15174 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 15177 - 15215 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 15218 - 15253 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 15256 - 15294 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 15297 - 15331 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 15334 - 15369 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 15412 - 15429 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 15478 - 15483 [step.] 0.001 secs (0.001u,0.s) +Chars 15484 - 15491 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15496 - 15501 [step.] 0.001 secs (0.001u,0.s) +Chars 15506 - 15516 [Fail~step.] 0. secs (0.u,0.s) +Chars 15522 - 15529 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15535 - 15547 [Fail~unstep.] 0.002 secs (0.001u,0.s) +Chars 15554 - 15626 [(assert~(eqitF~eq~false~false~...] 0. secs (0.u,0.s) +Chars 15631 - 15636 [step.] 0.003 secs (0.003u,0.s) +Chars 15667 - 15672 [step.] 0.035 secs (0.034u,0.s) +Chars 15673 - 15680 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15681 - 15693 [Fail~unstep.] 0.002 secs (0.002u,0.s) +Chars 15694 - 15699 [step.] 0.001 secs (0.001u,0.s) +Chars 15700 - 15710 [Fail~step.] 0. secs (0.u,0.s) +Chars 15711 - 15735 [now~unstep;~apply~EQ2.] 0.003 secs (0.003u,0.s) +Chars 15741 - 15772 [(assert~((elem~eqc~_~_~eq)~v~w)).] 0. secs (0.u,0.s) +Chars 15777 - 15782 [step.] 0.002 secs (0.002u,0.s) +Chars 15783 - 15788 [step.] 0.003 secs (0.003u,0.s) +Chars 15820 - 15825 [step.] 0.001 secs (0.001u,0.s) +Chars 15826 - 15833 [unstep.] 0.004 secs (0.003u,0.s) +Chars 15834 - 15846 [Fail~unstep.] 0.002 secs (0.002u,0.s) +Chars 15847 - 15852 [step.] 0.001 secs (0.001u,0.s) +Chars 15853 - 15863 [Fail~step.] 0. secs (0.u,0.s) +Chars 15864 - 15888 [now~unstep;~apply~EQ2.] 0.007 secs (0.006u,0.001s) +Chars 15894 - 15906 [to_mon~in~H.] 0. secs (0.u,0.s) +Chars 15910 - 15916 [Abort.] 0. secs (0.u,0.s) +Chars 15919 - 15943 [End~step_notation_tests.] 0. secs (0.u,0.s) +Chars 15946 - 16244 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) +Chars 16245 - 16251 [Proof.] 0. secs (0.u,0.s) +Chars 16254 - 16561 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 16564 - 16565 [-] 0. secs (0.u,0.s) +Chars 16566 - 16578 [(left;~eauto).] 0.001 secs (0.u,0.s) +Chars 16581 - 16582 [-] 0. secs (0.u,0.s) +Chars 16583 - 16602 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16603 - 16607 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16609 - 16910 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.001u,0.s) +Chars 16911 - 16917 [Proof.] 0. secs (0.u,0.s) +Chars 16920 - 17139 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 17142 - 17143 [-] 0. secs (0.u,0.s) +Chars 17144 - 17156 [(left;~eauto).] 0. secs (0.u,0.s) +Chars 17159 - 17160 [-] 0. secs (0.u,0.s) +Chars 17161 - 17179 [(destruct~i;~eauto).] 0.001 secs (0.001u,0.s) +Chars 17180 - 17184 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17186 - 17435 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.001u,0.s) +Chars 17436 - 17442 [Proof.] 0. secs (0.u,0.s) +Chars 17445 - 17680 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 17683 - 17684 [-] 0. secs (0.u,0.s) +Chars 17685 - 17712 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) +Chars 17715 - 17716 [-] 0. secs (0.u,0.s) +Chars 17717 - 17737 [(destruct~i;~exact~I).] 0. secs (0.u,0.s) +Chars 17738 - 17742 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17744 - 17937 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0.001 secs (0.u,0.s) +Chars 17938 - 17944 [Proof.] 0. secs (0.u,0.s) +Chars 17947 - 17956 [(intros~H).] 0. secs (0.u,0.s) +Chars 17957 - 17981 [dependent~destruction~H.] 0.006 secs (0.004u,0.001s) +Chars 17982 - 17993 [assumption.] 0. secs (0.u,0.s) +Chars 17994 - 17998 [Qed.] 0.003 secs (0.002u,0.s) +Chars 18000 - 18240 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0.001 secs (0.001u,0.s) +Chars 18241 - 18247 [Proof.] 0. secs (0.u,0.s) +Chars 18250 - 18296 [(destruct~p;~intros~<-;~cbn;~c...] 0.019 secs (0.018u,0.001s) +Chars 18297 - 18301 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18303 - 18432 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0.001 secs (0.001u,0.s) +Chars 18433 - 18439 [Proof.] 0. secs (0.u,0.s) +Chars 18442 - 18481 [(intros~!;~induction~H;~eauto~...] 0.001 secs (0.001u,0.s) +Chars 18482 - 18486 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18488 - 18640 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) +Chars 18641 - 18647 [Proof.] 0. secs (0.u,0.s) +Chars 18650 - 18658 [intros~!.] 0. secs (0.u,0.s) +Chars 18659 - 18665 [subst.] 0. secs (0.u,0.s) +Chars 18666 - 18717 [(split;~unfold~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 18720 - 18814 [all:~~(induction~H0;~auto~with...] 0.004 secs (0.004u,0.s) +Chars 18815 - 18819 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18821 - 18986 [#[global]~Instance~eqitF_Prope...] 0.001 secs (0.u,0.s) +Chars 18987 - 18993 [Proof.] 0. secs (0.u,0.s) +Chars 18996 - 19004 [intros~!.] 0. secs (0.u,0.s) +Chars 19005 - 19011 [subst.] 0. secs (0.u,0.s) +Chars 19012 - 19026 [(split;~intros).] 0. secs (0.u,0.s) +Chars 19029 - 19098 [all:~(induction~H0;~auto~with~...] 0.002 secs (0.002u,0.s) +Chars 19099 - 19103 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19105 - 19249 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) +Chars 19250 - 19277 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) +Chars 19280 - 19288 [intros~!.] 0. secs (0.u,0.s) +Chars 19289 - 19295 [subst.] 0. secs (0.u,0.s) +Chars 19299 - 19305 [split.] 0. secs (0.u,0.s) +Chars 19308 - 19309 [-] 0. secs (0.u,0.s) +Chars 19310 - 19325 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 19326 - 19345 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) +Chars 19346 - 19353 [(intros).] 0. secs (0.u,0.s) +Chars 19358 - 19369 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19374 - 19401 [hinduction~H0~before~CIH~...] 0.004 secs (0.004u,0.s) +Chars 19406 - 19432 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 19436 - 19437 [-] 0. secs (0.u,0.s) +Chars 19438 - 19453 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 19454 - 19473 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) +Chars 19474 - 19481 [(intros).] 0. secs (0.u,0.s) +Chars 19488 - 19499 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19504 - 19531 [hinduction~H0~before~CIH~...] 0.004 secs (0.003u,0.s) +Chars 19537 - 19563 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 19565 - 19569 [Qed.] 0.009 secs (0.009u,0.s) +Chars 19572 - 19713 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 19714 - 19720 [Proof.] 0. secs (0.u,0.s) +Chars 19723 - 19756 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 19757 - 19761 [Qed.] 0. secs (0.u,0.s) +Chars 19763 - 19900 [#[global]~Instance~euttge_Prop...] 0. secs (0.u,0.s) +Chars 19901 - 19907 [Proof.] 0. secs (0.u,0.s) +Chars 19910 - 19943 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 19944 - 19948 [Qed.] 0. secs (0.u,0.s) +Chars 19950 - 20083 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 20084 - 20090 [Proof.] 0. secs (0.u,0.s) +Chars 20093 - 20126 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 20127 - 20131 [Qed.] 0. secs (0.u,0.s) +Chars 20576 - 20727 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 20728 - 20734 [Proof.] 0. secs (0.u,0.s) +Chars 20761 - 20780 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 20781 - 20796 [(intros~u~v~euv).] 0. secs (0.u,0.s) +Chars 20864 - 20876 [step~in~euv.] 0. secs (0.u,0.s) +Chars 20942 - 20974 [(induction~euv;~eauto~with~itr...] 0.004 secs (0.004u,0.s) +Chars 20975 - 20979 [Qed.] 0.004 secs (0.004u,0.s) +Chars 20981 - 21159 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 21160 - 21166 [Proof.] 0. secs (0.u,0.s) +Chars 21169 - 21176 [(intros).] 0. secs (0.u,0.s) +Chars 21177 - 21197 [now~apply~eqit_flip.] 0. secs (0.u,0.s) +Chars 21200 - 21204 [Qed.] 0. secs (0.u,0.s) +Chars 21206 - 21241 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) +Chars 21277 - 21450 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 21451 - 21457 [Proof.] 0. secs (0.u,0.s) +Chars 21460 - 21468 [intros~!.] 0. secs (0.u,0.s) +Chars 21472 - 21486 [revert~a~a0~H.] 0. secs (0.u,0.s) +Chars 21490 - 21517 [(icoinduction~c~CIH;~intros).] 0.002 secs (0.002u,0.s) +Chars 21522 - 21532 [step~in~H.] 0. secs (0.u,0.s) +Chars 21533 - 21563 [(induction~H;~eauto~with~itree).] 0.005 secs (0.005u,0.s) +Chars 21566 - 21579 [econstructor.] 0. secs (0.u,0.s) +Chars 21580 - 21595 [now~apply~LERR.] 0. secs (0.u,0.s) +Chars 21598 - 21602 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21701 - 21718 [Section~eqit_gen.] 0. secs (0.u,0.s) +Chars 21771 - 21830 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 22202 - 22352 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 22353 - 22359 [Proof.] 0. secs (0.u,0.s) +Chars 22364 - 22368 [(red).] 0. secs (0.u,0.s) +Chars 22369 - 22411 [(destruct~x;~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 22412 - 22416 [Qed.] 0. secs (0.u,0.s) +Chars 22467 - 22611 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 22612 - 22618 [Proof.] 0. secs (0.u,0.s) +Chars 22623 - 22627 [(red).] 0. secs (0.u,0.s) +Chars 22628 - 22667 [(induction~3;~constructor;~sub...] 0.001 secs (0.001u,0.s) +Chars 22668 - 22672 [Qed.] 0. secs (0.u,0.s) +Chars 22722 - 22876 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 22877 - 22883 [Proof.] 0. secs (0.u,0.s) +Chars 22888 - 22912 [(intros~?~?~t~u~v~EQ1~EQ2).] 0. secs (0.u,0.s) +Chars 22917 - 22962 [(inv~EQ1;~try~now~inv~EQ2;~eau...] 0.052 secs (0.052u,0.s) +Chars 22967 - 23035 [(apply~eqitF_inv_VisF_l~in~EQ2...] 0.001 secs (0.001u,0.s) +Chars 23040 - 23059 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 23060 - 23064 [Qed.] 0.005 secs (0.005u,0.s) +Chars 23173 - 23264 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 23265 - 23271 [Proof.] 0. secs (0.u,0.s) +Chars 23274 - 23286 [(red;~intros).] 0. secs (0.u,0.s) +Chars 23289 - 23298 [revert~x.] 0. secs (0.u,0.s) +Chars 23299 - 23318 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 23319 - 23325 [intro.] 0. secs (0.u,0.s) +Chars 23329 - 23362 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) +Chars 23363 - 23367 [Qed.] 0.002 secs (0.002u,0.s) +Chars 23369 - 23454 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 23455 - 23461 [Proof.] 0. secs (0.u,0.s) +Chars 23464 - 23484 [(intros~Hsym~x~y~Hxy).] 0. secs (0.u,0.s) +Chars 23487 - 23503 [(apply~eqit_flip).] 0. secs (0.u,0.s) +Chars 23506 - 23558 [(eapply~eqit_mono;~[~auto~|~au...] 0.002 secs (0.002u,0.s) +Chars 23560 - 23564 [Qed.] 0. secs (0.u,0.s) +Chars 23566 - 23694 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 23695 - 23701 [Proof.] 0. secs (0.u,0.s) +Chars 23704 - 23717 [(red;~intro~x).] 0. secs (0.u,0.s) +Chars 23720 - 23740 [(apply~(gfp_chain~c)).] 0.001 secs (0.001u,0.s) +Chars 23743 - 23755 [reflexivity.] 0. secs (0.u,0.s) +Chars 23756 - 23760 [Qed.] 0. secs (0.u,0.s) +Chars 23762 - 23919 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) +Chars 23920 - 23926 [Proof.] 0. secs (0.u,0.s) +Chars 23929 - 23949 [(intros~T~HT~x~y~Hxy).] 0. secs (0.u,0.s) +Chars 23952 - 23964 [(intros~z~Hz).] 0. secs (0.u,0.s) +Chars 23965 - 23980 [(apply~HT;~auto).] 0. secs (0.u,0.s) +Chars 23981 - 23985 [Qed.] 0. secs (0.u,0.s) +Chars 23987 - 24109 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 24110 - 24116 [Proof.] 0. secs (0.u,0.s) +Chars 24119 - 24128 [revert~c.] 0. secs (0.u,0.s) +Chars 24129 - 24167 [(apply~(tower~inf_closed_Symme...] 0. secs (0.u,0.s) +Chars 24170 - 24184 [(intros~c~Hsym).] 0. secs (0.u,0.s) +Chars 24185 - 24193 [intros~!.] 0. secs (0.u,0.s) +Chars 24194 - 24222 [(apply~Symmetric_eqitF;~auto).] 0. secs (0.u,0.s) +Chars 24223 - 24227 [Qed.] 0. secs (0.u,0.s) +Chars 24229 - 24242 [End~eqit_gen.] 0. secs (0.u,0.s) +Chars 24245 - 24262 [Section~eqit_inv.] 0. secs (0.u,0.s) +Chars 24266 - 24340 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 24343 - 24392 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) +Chars 24396 - 24862 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) +Chars 24866 - 24961 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 24964 - 24970 [Proof.] 0. secs (0.u,0.s) +Chars 24975 - 24986 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 24991 - 25001 [step~in~H.] 0. secs (0.u,0.s) +Chars 25006 - 25011 [step.] 0.001 secs (0.001u,0.s) +Chars 25019 - 25047 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) +Chars 25052 - 25074 [(induction~H;~inv~Heqi).] 0.008 secs (0.008u,0.s) +Chars 25081 - 25082 [-] 0. secs (0.u,0.s) +Chars 25083 - 25095 [step~in~REL.] 0. secs (0.u,0.s) +Chars 25096 - 25105 [now~taur.] 0. secs (0.u,0.s) +Chars 25110 - 25111 [-] 0. secs (0.u,0.s) +Chars 25112 - 25117 [taur.] 0. secs (0.u,0.s) +Chars 25118 - 25136 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25140 - 25144 [Qed.] 0.003 secs (0.003u,0.s) +Chars 25149 - 25244 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 25247 - 25253 [Proof.] 0. secs (0.u,0.s) +Chars 25258 - 25269 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 25274 - 25284 [step~in~H.] 0. secs (0.u,0.s) +Chars 25289 - 25294 [step.] 0.001 secs (0.001u,0.s) +Chars 25302 - 25330 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) +Chars 25335 - 25357 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) +Chars 25364 - 25365 [-] 0. secs (0.u,0.s) +Chars 25366 - 25378 [step~in~REL.] 0. secs (0.u,0.s) +Chars 25379 - 25388 [now~taul.] 0. secs (0.u,0.s) +Chars 25394 - 25395 [-] 0. secs (0.u,0.s) +Chars 25396 - 25401 [taul.] 0. secs (0.u,0.s) +Chars 25402 - 25420 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25424 - 25428 [Qed.] 0.003 secs (0.003u,0.s) +Chars 25433 - 25621 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0.001 secs (0.001u,0.s) +Chars 25624 - 25630 [Proof.] 0. secs (0.u,0.s) +Chars 25635 - 25642 [(intros).] 0. secs (0.u,0.s) +Chars 25647 - 25673 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 25679 - 25705 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 25711 - 25738 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 25743 - 25802 [(induction~H;~intros~t1'~t2'~H...] 0.029 secs (0.029u,0.s) +Chars 25807 - 25808 [-] 0. secs (0.u,0.s) +Chars 25809 - 25832 [(inv~Heqot1;~inv~Heqot2).] 0.01 secs (0.01u,0.s) +Chars 25833 - 25844 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 25851 - 25852 [-] 0. secs (0.u,0.s) +Chars 25853 - 25880 [(inv~H;~inv~Heqot1;~simpobs).] 0.053 secs (0.052u,0.s) +Chars 25888 - 25889 [+] 0. secs (0.u,0.s) +Chars 25890 - 25895 [taul.] 0. secs (0.u,0.s) +Chars 25896 - 25912 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 25921 - 25922 [+] 0. secs (0.u,0.s) +Chars 25923 - 25928 [taul.] 0. secs (0.u,0.s) +Chars 25929 - 25947 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25954 - 25955 [-] 0. secs (0.u,0.s) +Chars 25956 - 25983 [(inv~H;~inv~Heqot2;~simpobs).] 0.05 secs (0.049u,0.s) +Chars 25991 - 25992 [+] 0. secs (0.u,0.s) +Chars 25993 - 25998 [taur.] 0. secs (0.u,0.s) +Chars 25999 - 26015 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 26023 - 26024 [+] 0. secs (0.u,0.s) +Chars 26025 - 26030 [taur.] 0. secs (0.u,0.s) +Chars 26031 - 26049 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 26053 - 26057 [Qed.] 0.011 secs (0.011u,0.s) +Chars 26062 - 26157 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) +Chars 26160 - 26166 [Proof.] 0. secs (0.u,0.s) +Chars 26171 - 26178 [(intros).] 0. secs (0.u,0.s) +Chars 26183 - 26199 [(step~in~H;~step).] 0.002 secs (0.002u,0.s) +Chars 26204 - 26228 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) +Chars 26232 - 26236 [Qed.] 0.001 secs (0.001u,0.s) +Chars 26241 - 26300 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0.001 secs (0.001u,0.s) +Chars 26303 - 26309 [Proof.] 0. secs (0.u,0.s) +Chars 26314 - 26334 [(intros~H;~step~in~H).] 0. secs (0.u,0.s) +Chars 26339 - 26422 [(genobs~t1~ot1;~genobs~t2~ot2;...] 0. secs (0.u,0.s) +Chars 26427 - 26487 [(destruct~H;~intros~*~E1~E2;~r...] 0.003 secs (0.003u,0.s) +Chars 26492 - 26493 [-] 0. secs (0.u,0.s) +Chars 26494 - 26521 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) +Chars 26526 - 26527 [-] 0. secs (0.u,0.s) +Chars 26528 - 26547 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) +Chars 26548 - 26561 [(destruct~ot2).] 0. secs (0.u,0.s) +Chars 26568 - 26631 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) +Chars 26638 - 26706 [1:~(apply~eqit_inv_Tau_r;~step...] 0.001 secs (0.001u,0.s) +Chars 26711 - 26712 [-] 0. secs (0.u,0.s) +Chars 26713 - 26732 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) +Chars 26733 - 26746 [(destruct~ot1).] 0. secs (0.u,0.s) +Chars 26753 - 26816 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) +Chars 26823 - 26891 [1:~(apply~eqit_inv_Tau_l;~step...] 0.002 secs (0.002u,0.s) +Chars 26894 - 26898 [Qed.] 0.009 secs (0.009u,0.s) +Chars 26900 - 27085 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) +Chars 27086 - 27092 [Proof.] 0. secs (0.u,0.s) +Chars 27095 - 27113 [(intros~om1~Heq~H2).] 0. secs (0.u,0.s) +Chars 27177 - 27223 [(induction~H2;~taul;~simpobs;~...] 0.006 secs (0.006u,0.s) +Chars 27225 - 27229 [Qed.] 0.001 secs (0.001u,0.s) +Chars 27232 - 27245 [End~eqit_inv.] 0. secs (0.u,0.s) +Chars 27247 - 27291 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) +Chars 27292 - 27336 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) +Chars 27337 - 27385 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) +Chars 27387 - 27515 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) +Chars 27516 - 27522 [Proof.] 0. secs (0.u,0.s) +Chars 27525 - 27547 [(intros~EQ;~step~in~EQ).] 0. secs (0.u,0.s) +Chars 27550 - 27583 [(desobs~t~ot;~eauto;~inv~EQ;~e...] 0.01 secs (0.01u,0.s) +Chars 27584 - 27588 [Qed.] 0.005 secs (0.005u,0.s) +Chars 27590 - 27763 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 27764 - 27770 [Proof.] 0. secs (0.u,0.s) +Chars 27773 - 27783 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 27786 - 27808 [(step~in~EQ;~cbn~in~EQ).] 0. secs (0.u,0.s) +Chars 27811 - 27836 [(genobs~t~ot;~genobs~u~ou).] 0. secs (0.u,0.s) +Chars 27839 - 27862 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) +Chars 27865 - 27896 [(induction~EQ;~intros;~try~easy).] 0.013 secs (0.012u,0.s) +Chars 27899 - 27900 [-] 0. secs (0.u,0.s) +Chars 27901 - 27915 [(inv~H;~inv~H0).] 0.002 secs (0.002u,0.s) +Chars 27919 - 27920 [-] 0. secs (0.u,0.s) +Chars 27921 - 27936 [(inv~H;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 27941 - 27985 [(edestruct~euttge_tau_r_inv;~[...] 0.004 secs (0.004u,0.s) +Chars 27990 - 27995 [step.] 0.001 secs (0.001u,0.s) +Chars 28000 - 28008 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 28013 - 28018 [taul.] 0. secs (0.u,0.s) +Chars 28023 - 28030 [unstep.] 0.003 secs (0.003u,0.s) +Chars 28035 - 28054 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 28055 - 28059 [Qed.] 0.007 secs (0.007u,0.s) +Chars 28062 - 28200 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) +Chars 28203 - 28395 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) +Chars 28400 - 28525 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) +Chars 28528 - 28584 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) +Chars 28585 - 28640 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) +Chars 29369 - 29531 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 29532 - 29560 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 29563 - 29601 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 29604 - 29620 [tower~induction.] 0.004 secs (0.004u,0.s) +Chars 29623 - 29688 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 29693 - 29703 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 29704 - 29714 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 29720 - 29749 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) +Chars 29869 - 29908 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 29913 - 29934 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) +Chars 29939 - 29940 [+] 0. secs (0.u,0.s) +Chars 29941 - 29967 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 29974 - 29986 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 29993 - 30007 [(genret~r1~or1).] 0. secs (0.u,0.s) +Chars 30014 - 30029 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30036 - 30071 [(hinduction~EQx~before~ox;~try...] 0.055 secs (0.055u,0.s) +Chars 30078 - 30079 [*] 0. secs (0.u,0.s) +Chars 30080 - 30106 [(intros;~subst;~inv~Heqor1).] 0.008 secs (0.008u,0.s) +Chars 30107 - 30121 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 30130 - 30157 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) +Chars 30166 - 30181 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30190 - 30225 [(hinduction~EQy~before~oy;~try...] 0.035 secs (0.035u,0.s) +Chars 30234 - 30259 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) +Chars 30268 - 30299 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30306 - 30307 [*] 0. secs (0.u,0.s) +Chars 30308 - 30344 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 30349 - 30350 [+] 0. secs (0.u,0.s) +Chars 30351 - 30377 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30384 - 30396 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30403 - 30417 [(gentau~m1~om1).] 0. secs (0.u,0.s) +Chars 30424 - 30439 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30446 - 30481 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) +Chars 30488 - 30489 [*] 0. secs (0.u,0.s) +Chars 30490 - 30508 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) +Chars 30517 - 30531 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 30540 - 30567 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) +Chars 30576 - 30591 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30600 - 30635 [(hinduction~EQy~before~oy;~try...] 0.043 secs (0.042u,0.s) +Chars 30644 - 30662 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) +Chars 30671 - 30678 [(intros).] 0. secs (0.u,0.s) +Chars 30687 - 30692 [taur.] 0. secs (0.u,0.s) +Chars 30701 - 30718 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30725 - 30726 [*] 0. secs (0.u,0.s) +Chars 30727 - 30763 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 30768 - 30769 [+] 0. secs (0.u,0.s) +Chars 30770 - 30796 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30803 - 30815 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30822 - 30838 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) +Chars 30845 - 30860 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30867 - 30902 [(hinduction~EQx~before~ox;~try...] 0.057 secs (0.057u,0.s) +Chars 30909 - 30910 [*] 0. secs (0.u,0.s) +Chars 30911 - 30918 [(intros).] 0. secs (0.u,0.s) +Chars 30927 - 30993 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 31002 - 31016 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 31025 - 31054 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) +Chars 31063 - 31078 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 31087 - 31122 [(hinduction~EQy~before~oy;~try...] 0.038 secs (0.037u,0.s) +Chars 31131 - 31223 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) +Chars 31232 - 31239 [(intros).] 0. secs (0.u,0.s) +Chars 31248 - 31253 [taur.] 0. secs (0.u,0.s) +Chars 31262 - 31279 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 31286 - 31287 [*] 0. secs (0.u,0.s) +Chars 31288 - 31324 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 31329 - 31330 [+] 0. secs (0.u,0.s) +Chars 31331 - 31375 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 31382 - 31390 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 31397 - 31402 [taul.] 0. secs (0.u,0.s) +Chars 31409 - 31428 [(eapply~IHEQ;~eauto).] 0.002 secs (0.002u,0.s) +Chars 31435 - 31486 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 31493 - 31530 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 31535 - 31536 [+] 0. secs (0.u,0.s) +Chars 31537 - 31581 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 31588 - 31596 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 31603 - 31608 [taur.] 0. secs (0.u,0.s) +Chars 31615 - 31634 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 31641 - 31692 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 31699 - 31736 [(unstep;~eapply~euttge_tau_inv...] 0.005 secs (0.005u,0.s) +Chars 31737 - 31741 [Qed.] 0.028 secs (0.028u,0.s) +Chars 31801 - 31995 [#[global]~Instance~euttge_prop...] 0.003 secs (0.003u,0.s) +Chars 31996 - 32002 [Proof.] 0. secs (0.u,0.s) +Chars 32005 - 32061 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) +Chars 32064 - 32068 [Qed.] 0.001 secs (0.001u,0.s) +Chars 32110 - 32295 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 32297 - 32303 [Proof.] 0. secs (0.u,0.s) +Chars 32306 - 32385 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) +Chars 32388 - 32392 [Qed.] 0.001 secs (0.001u,0.s) +Chars 32395 - 32499 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 32500 - 32506 [Proof.] 0. secs (0.u,0.s) +Chars 32507 - 32527 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32528 - 32532 [Qed.] 0. secs (0.u,0.s) +Chars 32534 - 32643 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 32644 - 32650 [Proof.] 0. secs (0.u,0.s) +Chars 32651 - 32671 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32672 - 32676 [Qed.] 0. secs (0.u,0.s) +Chars 32678 - 32780 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) +Chars 32781 - 32787 [Proof.] 0. secs (0.u,0.s) +Chars 32788 - 32809 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32810 - 32814 [Qed.] 0. secs (0.u,0.s) +Chars 32816 - 32923 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) +Chars 32924 - 32930 [Proof.] 0. secs (0.u,0.s) +Chars 32931 - 32951 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32952 - 32956 [Qed.] 0. secs (0.u,0.s) +Chars 32958 - 33058 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 33059 - 33065 [Proof.] 0. secs (0.u,0.s) +Chars 33066 - 33086 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 33087 - 33091 [Qed.] 0. secs (0.u,0.s) +Chars 33093 - 33198 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 33199 - 33205 [Proof.] 0. secs (0.u,0.s) +Chars 33206 - 33226 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 33227 - 33231 [Qed.] 0. secs (0.u,0.s) +Chars 33233 - 33389 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) +Chars 33390 - 33396 [Proof.] 0. secs (0.u,0.s) +Chars 33400 - 33413 [(split;~intro).] 0. secs (0.u,0.s) +Chars 33417 - 33450 [1:~(symmetry~in~H;~symmetry~in...] 0. secs (0.u,0.s) +Chars 33454 - 33585 [all:~~(apply~eq_sub_euttge~wit...] 0.004 secs (0.004u,0.s) +Chars 33586 - 33590 [Qed.] 0.002 secs (0.001u,0.s) +Chars 33592 - 33741 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 33743 - 33771 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 33775 - 33889 [(split;~intros;~revert_until~R...] 0.011 secs (0.01u,0.s) +Chars 33892 - 33931 [all:~(hinduction~H1~before~RR;...] 0.004 secs (0.004u,0.s) +Chars 33962 - 34013 [1-2,~6-7:~(inv~H;~inv~H0;~simp...] 0.268 secs (0.264u,0.001s) +Chars 34029 - 34208 [1,~4:~~(genvis~e~k1~ok1;~inv~H...] 0.244 secs (0.241u,0.001s) +Chars 34236 - 34305 [1,~3:~(inv~H;~simpobs;~taul;~e...] 0.104 secs (0.103u,0.s) +Chars 34308 - 34378 [1-2:~(inv~H0;~simpobs;~taur;~e...] 0.104 secs (0.103u,0.s) +Chars 34379 - 34383 [Qed.] 0.086 secs (0.085u,0.s) +Chars 34886 - 35052 [Lemma~not_euttge_proper_euttge...] 0.001 secs (0.001u,0.s) +Chars 35055 - 35093 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 35097 - 35103 [intro.] 0. secs (0.u,0.s) +Chars 35105 - 35229 [(assert~~~(Hfalse~:~~~~euttge~...] 0. secs (0.u,0.s) +Chars 35232 - 35233 [{] 0. secs (0.u,0.s) +Chars 35234 - 35276 [(eapply~H~with~(x~:=~Ret~tt)~(...] 0. secs (0.u,0.s) +Chars 35399 - 35400 [-] 0. secs (0.u,0.s) +Chars 35401 - 35413 [reflexivity.] 0. secs (0.u,0.s) +Chars 35418 - 35419 [-] 0. secs (0.u,0.s) +Chars 35420 - 35425 [step.] 0.002 secs (0.002u,0.s) +Chars 35426 - 35431 [taul.] 0. secs (0.u,0.s) +Chars 35432 - 35444 [reflexivity.] 0. secs (0.u,0.s) +Chars 35449 - 35450 [-] 0. secs (0.u,0.s) +Chars 35451 - 35463 [reflexivity.] 0. secs (0.u,0.s) +Chars 35464 - 35465 [}] 0. secs (0.u,0.s) +Chars 35468 - 35483 [step~in~Hfalse.] 0.001 secs (0.001u,0.s) +Chars 35484 - 35495 [(inv~Hfalse).] 0.004 secs (0.004u,0.s) +Chars 35497 - 35501 [Qed.] 0.004 secs (0.004u,0.s) +Chars 35505 - 35672 [Lemma~euttge_proper_flip_euttg...] 0.001 secs (0.001u,0.s) +Chars 35782 - 35788 [Abort.] 0. secs (0.u,0.s) +Chars 36012 - 36183 [#[global]~Instance~euttge_eq_p...] 0.001 secs (0.001u,0.s) +Chars 36184 - 36212 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 36215 - 36253 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 36256 - 36272 [tower~induction.] 0.004 secs (0.004u,0.s) +Chars 36275 - 36340 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 36345 - 36355 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 36356 - 36366 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 36372 - 36401 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) +Chars 36406 - 36445 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 36450 - 36471 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) +Chars 36476 - 36477 [+] 0. secs (0.u,0.s) +Chars 36478 - 36504 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36511 - 36523 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 36530 - 36544 [(genret~r1~or1).] 0. secs (0.u,0.s) +Chars 36551 - 36566 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 36573 - 36608 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.053u,0.s) +Chars 36615 - 36616 [*] 0. secs (0.u,0.s) +Chars 36617 - 36643 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) +Chars 36644 - 36658 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 36667 - 36694 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) +Chars 36703 - 36718 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 36819 - 36854 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) +Chars 36863 - 36888 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) +Chars 36895 - 36896 [*] 0. secs (0.u,0.s) +Chars 36897 - 36933 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 36938 - 36939 [+] 0. secs (0.u,0.s) +Chars 36940 - 36966 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36973 - 36985 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 36992 - 37006 [(gentau~m1~om1).] 0. secs (0.u,0.s) +Chars 37013 - 37028 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 37035 - 37070 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.056u,0.s) +Chars 37077 - 37078 [*] 0. secs (0.u,0.s) +Chars 37079 - 37097 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) +Chars 37106 - 37120 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 37129 - 37156 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) +Chars 37165 - 37180 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 37189 - 37224 [(hinduction~EQy~before~oy;~try...] 0.032 secs (0.032u,0.s) +Chars 37233 - 37251 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) +Chars 37258 - 37259 [*] 0. secs (0.u,0.s) +Chars 37260 - 37296 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 37301 - 37302 [+] 0. secs (0.u,0.s) +Chars 37303 - 37329 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 37336 - 37348 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 37355 - 37371 [(genvis~e~k1~ot1).] 0.001 secs (0.001u,0.s) +Chars 37378 - 37393 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 37400 - 37435 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.054u,0.s) +Chars 37442 - 37443 [*] 0. secs (0.u,0.s) +Chars 37444 - 37451 [(intros).] 0. secs (0.u,0.s) +Chars 37460 - 37526 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 37535 - 37549 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 37558 - 37587 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) +Chars 37596 - 37611 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 37620 - 37655 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) +Chars 37664 - 37756 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) +Chars 37763 - 37764 [*] 0. secs (0.u,0.s) +Chars 37765 - 37801 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 37806 - 37807 [+] 0. secs (0.u,0.s) +Chars 37808 - 37852 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 37859 - 37867 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 37874 - 37879 [taul.] 0. secs (0.u,0.s) +Chars 37886 - 37905 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 37912 - 37963 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 37970 - 38007 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 38012 - 38013 [+] 0. secs (0.u,0.s) +Chars 38014 - 38019 [easy.] 0.017 secs (0.017u,0.s) +Chars 38069 - 38073 [Qed.] 0.025 secs (0.025u,0.s) +Chars 38075 - 38235 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) +Chars 38236 - 38242 [Proof.] 0. secs (0.u,0.s) +Chars 38245 - 38258 [(split;~intro).] 0. secs (0.u,0.s) +Chars 38261 - 38262 [-] 0. secs (0.u,0.s) +Chars 38385 - 38441 [(symmetry~in~H;~apply~eq_sub_e...] 0. secs (0.u,0.s) +Chars 38446 - 38461 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 38466 - 38505 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) +Chars 38508 - 38509 [-] 0. secs (0.u,0.s) +Chars 38622 - 38663 [(apply~eq_sub_euttge~with~(RR~...] 0. secs (0.u,0.s) +Chars 38668 - 38707 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) +Chars 38708 - 38712 [Qed.] 0.001 secs (0.001u,0.s) +Chars 38715 - 38879 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) +Chars 38880 - 38886 [Proof.] 0. secs (0.u,0.s) +Chars 38890 - 38975 [(split;~revert_until~c;~tower~...] 0.011 secs (0.011u,0.s) +Chars 39049 - 39073 [all:~(inv~H2;~simpobs).] 0.157 secs (0.156u,0.s) +Chars 39076 - 39161 [all:~~(try~genvis~e~k1~ok1;~in...] 0.314 secs (0.312u,0.001s) +Chars 39165 - 39229 [all:~(try~do~2~inv_Vis;~constr...] 0.179 secs (0.178u,0.s) +Chars 39232 - 39252 [all:~(inv~H1;~inv~H0).] 0.024 secs (0.024u,0.s) +Chars 39257 - 39315 [all:~(eapply~H;~try~eapply~REL...] 0.001 secs (0.001u,0.s) +Chars 39319 - 39323 [Qed.] 0.076 secs (0.076u,0.s) +Chars 39362 - 39517 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 39518 - 39563 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) +Chars 39565 - 39664 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) +Chars 39665 - 39671 [Proof.] 0. secs (0.u,0.s) +Chars 39674 - 39681 [(intros).] 0. secs (0.u,0.s) +Chars 39682 - 39700 [(destruct~H;~eauto).] 0. secs (0.u,0.s) +Chars 39701 - 39705 [Qed.] 0. secs (0.u,0.s) +Chars 39734 - 39933 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 39934 - 39940 [Proof.] 0. secs (0.u,0.s) +Chars 39943 - 39955 [(unfold~eqit).] 0. secs (0.u,0.s) +Chars 39956 - 39972 [(revert_until~b2).] 0. secs (0.u,0.s) +Chars 40082 - 40101 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 40102 - 40109 [(intros).] 0. secs (0.u,0.s) +Chars 40113 - 40125 [step~in~INL.] 0. secs (0.u,0.s) +Chars 40126 - 40138 [step~in~INR.] 0. secs (0.u,0.s) +Chars 40236 - 40277 [(hinduction~INL~before~CIH;~in...] 0.001 secs (0.001u,0.s) +Chars 40278 - 40290 [clear~t1~t2.] 0. secs (0.u,0.s) +Chars 40322 - 40323 [-] 0. secs (0.u,0.s) +Chars 40324 - 40337 [(genret~r2~ot).] 0. secs (0.u,0.s) +Chars 40342 - 40405 [(hinduction~INR~before~CIH;~in...] 0.032 secs (0.031u,0.s) +Chars 40408 - 40409 [-] 0. secs (0.u,0.s) +Chars 40410 - 40424 [(genobs~t3~ot3).] 0. secs (0.u,0.s) +Chars 40498 - 40570 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) +Chars 40575 - 40576 [{] 0. secs (0.u,0.s) +Chars 40577 - 40623 [(destruct~ot3;~eauto;~right;~r...] 0.008 secs (0.008u,0.s) +Chars 40624 - 40625 [}] 0. secs (0.u,0.s) +Chars 40630 - 40660 [(destruct~DEC~as~[[m3~?]|~EQ]).] 0. secs (0.u,0.s) +Chars 40701 - 40702 [+] 0. secs (0.u,0.s) +Chars 40703 - 40718 [(subst;~simpobs).] 0.001 secs (0.001u,0.s) +Chars 40726 - 40739 [econstructor.] 0. secs (0.u,0.s) +Chars 40746 - 40764 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 40771 - 40790 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) +Chars 40797 - 40806 [now~step.] 0.001 secs (0.001u,0.s) +Chars 40866 - 40867 [+] 0. secs (0.u,0.s) +Chars 40868 - 40915 [(inv~INR;~try~(exfalso;~eapply...] 0.048 secs (0.048u,0.s) +Chars 40922 - 40927 [taul.] 0. secs (0.u,0.s) +Chars 40935 - 40947 [step~in~REL.] 0. secs (0.u,0.s) +Chars 40954 - 41028 [(hinduction~REL0~before~CIH;~i...] 0.003 secs (0.003u,0.s) +Chars 41110 - 41111 [*] 0. secs (0.u,0.s) +Chars 41112 - 41137 [(remember~(RetF~r1)~as~ot).] 0. secs (0.u,0.s) +Chars 41146 - 41210 [(hinduction~REL0~before~CIH;~i...] 0.032 secs (0.032u,0.s) +Chars 41217 - 41218 [*] 0. secs (0.u,0.s) +Chars 41219 - 41246 [(remember~(VisF~e~k1)~as~ot).] 0. secs (0.u,0.s) +Chars 41255 - 41340 [(hinduction~REL0~before~CIH;~i...] 0.026 secs (0.025u,0.s) +Chars 41349 - 41362 [econstructor.] 0. secs (0.u,0.s) +Chars 41363 - 41370 [(intros).] 0. secs (0.u,0.s) +Chars 41379 - 41414 [(apply~(CIH~_~_~_~(REL~v)~(REL...] 0. secs (0.u,0.s) +Chars 41422 - 41423 [*] 0. secs (0.u,0.s) +Chars 41424 - 41445 [(eapply~IHREL0;~eauto).] 0. secs (0.u,0.s) +Chars 41454 - 41478 [(destruct~b1;~inv~CHECK0).] 0.009 secs (0.009u,0.s) +Chars 41487 - 41494 [unstep.] 0.004 secs (0.004u,0.s) +Chars 41495 - 41516 [(apply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) +Chars 41517 - 41526 [now~step.] 0.001 secs (0.001u,0.s) +Chars 41530 - 41531 [-] 0. secs (0.u,0.s) +Chars 41532 - 41559 [(remember~(VisF~e~k2)~as~ot).] 0. secs (0.u,0.s) +Chars 41564 - 41648 [(hinduction~INR~before~CIH;~in...] 0.018 secs (0.018u,0.s) +Chars 41653 - 41666 [econstructor.] 0. secs (0.u,0.s) +Chars 41667 - 41674 [(intros).] 0. secs (0.u,0.s) +Chars 41679 - 41714 [(apply~(CIH~_~_~_~(REL0~v)~(RE...] 0. secs (0.u,0.s) +Chars 41718 - 41719 [-] 0. secs (0.u,0.s) +Chars 41720 - 41737 [eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 41740 - 41741 [-] 0. secs (0.u,0.s) +Chars 41742 - 41755 [(gentau~t0~ot).] 0.001 secs (0.001u,0.s) +Chars 41760 - 41774 [(genobs~t3~ot3).] 0. secs (0.u,0.s) +Chars 41780 - 41842 [(hinduction~INR~before~CIH;~in...] 0.011 secs (0.011u,0.s) +Chars 41847 - 41848 [+] 0. secs (0.u,0.s) +Chars 41849 - 41873 [(eapply~(IHINL~(Tau~m2))).] 0. secs (0.u,0.s) +Chars 41880 - 41892 [step~in~REL.] 0. secs (0.u,0.s) +Chars 41893 - 41910 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 41915 - 41916 [+] 0. secs (0.u,0.s) +Chars 41917 - 41934 [now~eapply~IHINL.] 0. secs (0.u,0.s) +Chars 41939 - 41940 [+] 0. secs (0.u,0.s) +Chars 41941 - 41946 [taur.] 0. secs (0.u,0.s) +Chars 41947 - 41967 [(eapply~IHINR;~eauto).] 0.001 secs (0.001u,0.s) +Chars 41969 - 41973 [Qed.] 0.056 secs (0.055u,0.s) +Chars 41975 - 42034 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) +Chars 42152 - 42306 [#[global]~Instance~Transitive_...] 0.001 secs (0.u,0.s) +Chars 42307 - 42313 [Proof.] 0. secs (0.u,0.s) +Chars 42316 - 42328 [(red;~intros).] 0. secs (0.u,0.s) +Chars 42329 - 42365 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 42369 - 42405 [(eapply~eqit_mono,~eqit_trans;...] 0.002 secs (0.002u,0.s) +Chars 42408 - 42416 [intros~!.] 0. secs (0.u,0.s) +Chars 42417 - 42433 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 42434 - 42438 [Qed.] 0. secs (0.u,0.s) +Chars 42440 - 42558 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 42559 - 42565 [Proof.] 0. secs (0.u,0.s) +Chars 42568 - 42590 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) +Chars 42591 - 42613 [(intros~!;~subst;~eauto).] 0. secs (0.u,0.s) +Chars 42614 - 42618 [Qed.] 0. secs (0.u,0.s) +Chars 42620 - 42771 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 42772 - 42778 [Proof.] 0. secs (0.u,0.s) +Chars 42781 - 42816 [(constructor;~try~typeclasses~...] 0. secs (0.u,0.s) +Chars 42817 - 42821 [Qed.] 0. secs (0.u,0.s) +Chars 42823 - 42945 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 42946 - 42952 [Proof.] 0. secs (0.u,0.s) +Chars 42955 - 42990 [(constructor;~try~typeclasses~...] 0.003 secs (0.003u,0.s) +Chars 42991 - 42995 [Qed.] 0. secs (0.u,0.s) +Chars 42997 - 43088 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 43089 - 43095 [Proof.] 0. secs (0.u,0.s) +Chars 43098 - 43110 [(red;~intros).] 0. secs (0.u,0.s) +Chars 43111 - 43147 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 43148 - 43184 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) +Chars 43187 - 43195 [intros~!.] 0. secs (0.u,0.s) +Chars 43196 - 43212 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 43214 - 43218 [Qed.] 0. secs (0.u,0.s) +Chars 43221 - 43353 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 43354 - 43360 [Proof.] 0. secs (0.u,0.s) +Chars 43363 - 43503 [(assert~~~(Hinf~:~~~~inf_close...] 0. secs (0.u,0.s) +Chars 43506 - 43507 [{] 0. secs (0.u,0.s) +Chars 43508 - 43540 [(intros~T~HTr~x~y~z~Hxy~Hyz~i~...] 0. secs (0.u,0.s) +Chars 43541 - 43604 [(apply~(HTr~_~Hi)~with~y;~[~ex...] 0. secs (0.u,0.s) +Chars 43605 - 43606 [}] 0. secs (0.u,0.s) +Chars 43609 - 43618 [revert~c.] 0. secs (0.u,0.s) +Chars 43619 - 43638 [(apply~(tower~Hinf)).] 0. secs (0.u,0.s) +Chars 43639 - 43655 [(intros~c~Htrans).] 0. secs (0.u,0.s) +Chars 43658 - 43666 [intros~!.] 0. secs (0.u,0.s) +Chars 43667 - 43677 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 43678 - 43709 [(eapply~Transitive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 43710 - 43714 [Qed.] 0.002 secs (0.002u,0.s) +Chars 43716 - 43851 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 43852 - 43858 [Proof.] 0. secs (0.u,0.s) +Chars 43861 - 43892 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 43893 - 43897 [Qed.] 0. secs (0.u,0.s) +Chars 43901 - 43981 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 43982 - 43988 [Proof.] 0. secs (0.u,0.s) +Chars 43991 - 44055 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) +Chars 44056 - 44060 [Qed.] 0. secs (0.u,0.s) +Chars 44061 - 44141 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 44142 - 44148 [Proof.] 0. secs (0.u,0.s) +Chars 44151 - 44218 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) +Chars 44219 - 44223 [Qed.] 0. secs (0.u,0.s) +Chars 44225 - 44343 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 44344 - 44350 [Proof.] 0. secs (0.u,0.s) +Chars 44353 - 44364 [(repeat~red).] 0. secs (0.u,0.s) +Chars 44368 - 44393 [(intros~t~t'~EQ1~u~u'~EQ2).] 0. secs (0.u,0.s) +Chars 44396 - 44416 [(split;~intros~EQUIV).] 0. secs (0.u,0.s) +Chars 44420 - 44421 [-] 0. secs (0.u,0.s) +Chars 44422 - 44438 [symmetry~in~EQ1.] 0. secs (0.u,0.s) +Chars 44444 - 44486 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) +Chars 44491 - 44522 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) +Chars 44527 - 44571 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) +Chars 44576 - 44612 [now~rewrite~rcompose_eqr~in~EQ...] 0.002 secs (0.002u,0.s) +Chars 44615 - 44616 [-] 0. secs (0.u,0.s) +Chars 44617 - 44659 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) +Chars 44664 - 44695 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) +Chars 44700 - 44716 [symmetry~in~EQ2.] 0. secs (0.u,0.s) +Chars 44721 - 44765 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) +Chars 44770 - 44806 [now~rewrite~rcompose_eqr~in~EQ...] 0.007 secs (0.007u,0.s) +Chars 44807 - 44811 [Qed.] 0.002 secs (0.002u,0.s) +Chars 44813 - 44907 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 44908 - 44914 [Proof.] 0. secs (0.u,0.s) +Chars 44917 - 44935 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 44936 - 44940 [Qed.] 0. secs (0.u,0.s) +Chars 44942 - 45037 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 45038 - 45044 [Proof.] 0. secs (0.u,0.s) +Chars 45047 - 45059 [(red;~intros).] 0. secs (0.u,0.s) +Chars 45060 - 45096 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 45097 - 45133 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) +Chars 45136 - 45144 [intros~!.] 0. secs (0.u,0.s) +Chars 45145 - 45161 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 45163 - 45167 [Qed.] 0. secs (0.u,0.s) +Chars 45169 - 45258 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) +Chars 45259 - 45265 [Proof.] 0. secs (0.u,0.s) +Chars 45268 - 45299 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 45301 - 45305 [Qed.] 0. secs (0.u,0.s) +Chars 45307 - 45459 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 45461 - 45467 [Proof.] 0. secs (0.u,0.s) +Chars 45471 - 45489 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 45492 - 45530 [(do~2~(etransitivity;~symmetry...] 0.005 secs (0.005u,0.s) +Chars 45533 - 45575 [(do~2~(etransitivity;~eauto);~...] 0.004 secs (0.004u,0.s) +Chars 45577 - 45581 [Qed.] 0.001 secs (0.001u,0.s) +Chars 45612 - 45625 [Module~Tests.] 0. secs (0.u,0.s) +Chars 45628 - 45664 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 45667 - 45699 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 45702 - 45743 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 45746 - 45782 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 45785 - 45821 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 45824 - 45859 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 45862 - 45900 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 45903 - 45938 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 45941 - 45979 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 45982 - 46016 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 46019 - 46054 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 46056 - 46073 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 46078 - 46093 [(rewrite~EQUIV2).] 0.013 secs (0.013u,0.s) +Chars 46098 - 46113 [(rewrite~<-~EQ2).] 0.011 secs (0.011u,0.s) +Chars 46118 - 46141 [(eapply~eq_proper_euttC).] 0.001 secs (0.001u,0.s) +Chars 46146 - 46161 [(rewrite~<-~EQ1).] 0.001 secs (0.001u,0.s) +Chars 46166 - 46176 [exact~EQ1.] 0. secs (0.u,0.s) +Chars 46182 - 46202 [(rewrite~EQ2,~<-~EQ2).] 0.004 secs (0.004u,0.s) +Chars 46208 - 46218 [exact~EQ2.] 0. secs (0.u,0.s) +Chars 46223 - 46228 [step.] 0.003 secs (0.003u,0.s) +Chars 46233 - 46238 [step.] 0.003 secs (0.003u,0.s) +Chars 46244 - 46259 [(rewrite~<-~EQ1).] 0.01 secs (0.01u,0.s) +Chars 46265 - 46279 [(rewrite~<-~GT).] 0.035 secs (0.035u,0.s) +Chars 46285 - 46297 [(rewrite~EQ1).] 0.01 secs (0.009u,0.s) +Chars 46302 - 46320 [(rewrite~<-~EQUIV1).] 0.012 secs (0.012u,0.s) +Chars 46323 - 46329 [Abort.] 0. secs (0.u,0.s) +Chars 46334 - 46379 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) +Chars 46439 - 46479 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) +Chars 46484 - 46493 [(intros~H).] 0. secs (0.u,0.s) +Chars 46498 - 46510 [(rewrite~EQ1).] 0.008 secs (0.008u,0.s) +Chars 46515 - 46532 [(rewrite~EQ1~in~H).] 0.007 secs (0.007u,0.s) +Chars 46537 - 46555 [(rewrite~<-~EQUIV1).] 0.009 secs (0.009u,0.s) +Chars 46600 - 46623 [(rewrite~<-~EQUIV1~in~H).] 0.008 secs (0.008u,0.s) +Chars 46628 - 46651 [(rewrite~<-~EQUIV2~in~H).] 0.011 secs (0.011u,0.s) +Chars 46657 - 46669 [(rewrite~GT2).] 0.002 secs (0.002u,0.s) +Chars 46674 - 46694 [(rewrite~<-~GT2~in~H).] 0.029 secs (0.028u,0.s) +Chars 46699 - 46710 [(rewrite~GT).] 0.002 secs (0.002u,0.s) +Chars 46715 - 46734 [(rewrite~<-~GT~in~H).] 0.029 secs (0.029u,0.s) +Chars 46796 - 46810 [Fail~symmetry.] 0. secs (0.u,0.s) +Chars 46815 - 46834 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) +Chars 46839 - 46853 [(rewrite~<-~GT).] 0.029 secs (0.029u,0.s) +Chars 46859 - 46870 [assumption.] 0. secs (0.u,0.s) +Chars 46874 - 46878 [Qed.] 0.002 secs (0.002u,0.s) +Chars 46882 - 46925 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) +Chars 46929 - 46996 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) +Chars 46999 - 47039 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) +Chars 47045 - 47050 [step.] 0.001 secs (0.001u,0.s) +Chars 47084 - 47091 [unstep.] 0.003 secs (0.003u,0.s) +Chars 47097 - 47141 [(assert~(eutt~(E:=VE)~eq~(Ret~...] 0. secs (0.u,0.s) +Chars 47147 - 47152 [step.] 0.002 secs (0.002u,0.s) +Chars 47211 - 47237 [(rewrite~observing_observe).] 0.006 secs (0.006u,0.s) +Chars 47238 - 47244 [Abort.] 0. secs (0.u,0.s) +Chars 47248 - 47272 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) +Chars 47277 - 47286 [(intros~H).] 0. secs (0.u,0.s) +Chars 47291 - 47303 [(rewrite~EQ1).] 0. secs (0.u,0.s) +Chars 47308 - 47325 [(rewrite~EQ1~in~H).] 0.008 secs (0.008u,0.s) +Chars 47330 - 47339 [symmetry.] 0. secs (0.u,0.s) +Chars 47344 - 47358 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 47363 - 47375 [reflexivity.] 0. secs (0.u,0.s) +Chars 47376 - 47380 [Qed.] 0.001 secs (0.001u,0.s) +Chars 47467 - 47542 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) +Chars 47547 - 47565 [(intros~EQ1~EQ2'~H).] 0. secs (0.u,0.s) +Chars 47570 - 47582 [(rewrite~EQ1).] 0.01 secs (0.01u,0.s) +Chars 47587 - 47599 [(rewrite~EQ2).] 0.001 secs (0.001u,0.s) +Chars 47604 - 47628 [(apply~eqit_flip~in~EQ2').] 0. secs (0.u,0.s) +Chars 47633 - 47653 [(rewrite~EQ2~in~EQ2').] 0.016 secs (0.016u,0.s) +Chars 47658 - 47702 [(eapply~(eqit_mono~RR~RR~false...] 0.002 secs (0.002u,0.s) +Chars 47769 - 47773 [Qed.] 0.002 secs (0.002u,0.s) +Chars 47824 - 47848 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) +Chars 47853 - 47872 [icoinduction~r~CIH.] 0.002 secs (0.002u,0.s) +Chars 47877 - 47884 [(intros).] 0. secs (0.u,0.s) +Chars 47889 - 47894 [step.] 0.003 secs (0.003u,0.s) +Chars 47900 - 47910 [(rewrite~H).] 0.017 secs (0.017u,0.s) +Chars 47916 - 47928 [reflexivity.] 0. secs (0.u,0.s) +Chars 47930 - 47934 [Qed.] 0.003 secs (0.003u,0.s) +Chars 47937 - 47947 [End~Tests.] 0. secs (0.u,0.s) +Chars 47949 - 48001 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) +Chars 48006 - 48022 [Section~eqit_eq.] 0. secs (0.u,0.s) +Chars 48073 - 48111 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 48113 - 48172 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) +Chars 48174 - 48307 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 48308 - 48314 [Proof.] 0. secs (0.u,0.s) +Chars 48317 - 48346 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 48347 - 48351 [Qed.] 0. secs (0.u,0.s) +Chars 48353 - 48480 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 48481 - 48487 [Proof.] 0. secs (0.u,0.s) +Chars 48490 - 48519 [(apply~Symmetric_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 48521 - 48525 [Qed.] 0. secs (0.u,0.s) +Chars 48574 - 48642 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 48643 - 48649 [Proof.] 0. secs (0.u,0.s) +Chars 48652 - 48680 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 48681 - 48685 [Qed.] 0. secs (0.u,0.s) +Chars 48687 - 48749 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 48750 - 48756 [Proof.] 0. secs (0.u,0.s) +Chars 48759 - 48787 [(apply~Symmetric_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 48788 - 48792 [Qed.] 0. secs (0.u,0.s) +Chars 48827 - 48926 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) +Chars 48927 - 48933 [Proof.] 0. secs (0.u,0.s) +Chars 48936 - 48982 [(constructor;~step~in~H;~step;...] 0.002 secs (0.002u,0.s) +Chars 48985 - 48989 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48992 - 49087 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) +Chars 49088 - 49094 [Proof.] 0. secs (0.u,0.s) +Chars 49097 - 49115 [(constructor;~step).] 0.001 secs (0.001u,0.s) +Chars 49116 - 49129 [econstructor.] 0. secs (0.u,0.s) +Chars 49130 - 49136 [eauto.] 0. secs (0.u,0.s) +Chars 49137 - 49141 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49143 - 49270 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) +Chars 49271 - 49277 [Proof.] 0. secs (0.u,0.s) +Chars 49280 - 49302 [(constructor;~red~in~H).] 0. secs (0.u,0.s) +Chars 49303 - 49339 [(step;~econstructor;~auto~with...] 0.001 secs (0.001u,0.s) +Chars 49340 - 49344 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49346 - 49430 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 49431 - 49437 [Proof.] 0. secs (0.u,0.s) +Chars 49440 - 49459 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 49462 - 49467 [step.] 0.001 secs (0.001u,0.s) +Chars 49468 - 49498 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) +Chars 49499 - 49528 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 49529 - 49533 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49535 - 49680 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 49681 - 49687 [Proof.] 0. secs (0.u,0.s) +Chars 49690 - 49698 [intros~!.] 0. secs (0.u,0.s) +Chars 49701 - 49707 [(inv~H).] 0.007 secs (0.007u,0.s) +Chars 49710 - 49715 [step.] 0.002 secs (0.002u,0.s) +Chars 49718 - 49744 [(rewrite~observing_observe).] 0. secs (0.u,0.s) +Chars 49747 - 49752 [step.] 0.003 secs (0.003u,0.s) +Chars 49753 - 49765 [reflexivity.] 0. secs (0.u,0.s) +Chars 49766 - 49770 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49797 - 49854 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) +Chars 49855 - 49861 [Proof.] 0. secs (0.u,0.s) +Chars 49862 - 49887 [(apply~observing_sub_eqit).] 0. secs (0.u,0.s) +Chars 49888 - 49901 [econstructor.] 0. secs (0.u,0.s) +Chars 49902 - 49914 [reflexivity.] 0. secs (0.u,0.s) +Chars 49915 - 49919 [Qed.] 0. secs (0.u,0.s) +Chars 49921 - 49976 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) +Chars 49977 - 49983 [Proof.] 0. secs (0.u,0.s) +Chars 49984 - 50001 [(apply~itree_eta_).] 0. secs (0.u,0.s) +Chars 50002 - 50006 [Qed.] 0. secs (0.u,0.s) +Chars 50008 - 50066 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) +Chars 50067 - 50073 [Proof.] 0. secs (0.u,0.s) +Chars 50074 - 50086 [reflexivity.] 0. secs (0.u,0.s) +Chars 50087 - 50091 [Qed.] 0. secs (0.u,0.s) +Chars 50093 - 50105 [End~eqit_eq.] 0. secs (0.u,0.s) +Chars 50139 - 50227 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 50228 - 50234 [Proof.] 0. secs (0.u,0.s) +Chars 50237 - 50252 [(intros;~sinv~H).] 0.006 secs (0.006u,0.s) +Chars 50253 - 50257 [Qed.] 0.002 secs (0.002u,0.s) +Chars 50259 - 50410 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 50411 - 50417 [Proof.] 0. secs (0.u,0.s) +Chars 50420 - 50467 [(intros;~step~in~H;~apply~eqit...] 0. secs (0.u,0.s) +Chars 50470 - 50524 [(destruct~H~as~[[?~[->~?]]|~[]...] 0. secs (0.u,0.s) +Chars 50527 - 50549 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 50550 - 50554 [Qed.] 0.002 secs (0.002u,0.s) +Chars 50556 - 50669 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 50670 - 50676 [Proof.] 0. secs (0.u,0.s) +Chars 50679 - 50716 [(intros;~sinv~H;~try~inv~CHECK...] 0.014 secs (0.013u,0.s) +Chars 50717 - 50721 [Qed.] 0.003 secs (0.003u,0.s) +Chars 50723 - 50824 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 50825 - 50831 [Proof.] 0. secs (0.u,0.s) +Chars 50834 - 50841 [(intros).] 0. secs (0.u,0.s) +Chars 50842 - 50852 [step~in~H.] 0. secs (0.u,0.s) +Chars 50853 - 50859 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 50861 - 50865 [Qed.] 0.002 secs (0.002u,0.s) +Chars 50918 - 51147 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0.001 secs (0.001u,0.s) +Chars 51148 - 51154 [Proof.] 0. secs (0.u,0.s) +Chars 51157 - 51164 [(intros).] 0. secs (0.u,0.s) +Chars 51165 - 51207 [(step~in~H;~apply~eqitF_inv_Vi...] 0. secs (0.u,0.s) +Chars 51210 - 51232 [(destruct~H~as~[p~[]]).] 0. secs (0.u,0.s) +Chars 51233 - 51255 [(exists~p;~split;~auto).] 0. secs (0.u,0.s) +Chars 51256 - 51260 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51286 - 51492 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 51493 - 51499 [Proof.] 0. secs (0.u,0.s) +Chars 51502 - 51571 [(intros~H~x;~step~in~H;~apply~...] 0. secs (0.u,0.s) +Chars 51572 - 51576 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51619 - 51698 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) +Chars 51699 - 51705 [Proof.] 0. secs (0.u,0.s) +Chars 51708 - 51743 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) +Chars 51744 - 51748 [Qed.] 0. secs (0.u,0.s) +Chars 51750 - 51832 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) +Chars 51833 - 51839 [Proof.] 0. secs (0.u,0.s) +Chars 51842 - 51877 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) +Chars 51878 - 51882 [Qed.] 0. secs (0.u,0.s) +Chars 51884 - 52010 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 52011 - 52017 [Proof.] 0. secs (0.u,0.s) +Chars 52020 - 52027 [(intros).] 0. secs (0.u,0.s) +Chars 52028 - 52033 [step.] 0.001 secs (0.001u,0.s) +Chars 52034 - 52054 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 52055 - 52069 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 52071 - 52075 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52077 - 52203 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 52204 - 52210 [Proof.] 0. secs (0.u,0.s) +Chars 52213 - 52220 [(intros).] 0. secs (0.u,0.s) +Chars 52221 - 52226 [step.] 0.002 secs (0.002u,0.s) +Chars 52227 - 52247 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 52248 - 52262 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 52264 - 52268 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52270 - 52324 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) +Chars 52325 - 52331 [Proof.] 0. secs (0.u,0.s) +Chars 52334 - 52351 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) +Chars 52352 - 52364 [reflexivity.] 0. secs (0.u,0.s) +Chars 52365 - 52369 [Qed.] 0. secs (0.u,0.s) +Chars 52371 - 52423 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) +Chars 52424 - 52430 [Proof.] 0. secs (0.u,0.s) +Chars 52433 - 52467 [(apply~euttge_sub_eutt,~tau_eu...] 0. secs (0.u,0.s) +Chars 52468 - 52472 [Qed.] 0. secs (0.u,0.s) +Chars 52475 - 52549 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) +Chars 52550 - 52556 [Proof.] 0. secs (0.u,0.s) +Chars 52559 - 52564 [step.] 0.001 secs (0.001u,0.s) +Chars 52565 - 52576 [(repeat~red).] 0. secs (0.u,0.s) +Chars 52577 - 52585 [simpobs.] 0. secs (0.u,0.s) +Chars 52586 - 52592 [(simpl).] 0. secs (0.u,0.s) +Chars 52593 - 52599 [subst.] 0. secs (0.u,0.s) +Chars 52600 - 52607 [unstep.] 0.003 secs (0.003u,0.s) +Chars 52608 - 52636 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 52637 - 52641 [Qed.] 0.002 secs (0.002u,0.s) +Chars 52689 - 53002 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) +Chars 53004 - 53010 [Proof.] 0. secs (0.u,0.s) +Chars 53012 - 53048 [(intros~!;~unfold~flip,~eq_itr...] 0. secs (0.u,0.s) +Chars 54211 - 54217 [idtac.] 0. secs (0.u,0.s) +Chars 54257 - 54317 [(assert~(rcompose~RR1~RS~<=~RS...] 0. secs (0.u,0.s) +Chars 54321 - 54388 [(assert~(rcompose~RS~(flip~RR2...] 0. secs (0.u,0.s) +Chars 54391 - 54489 [(assert~(eqit~b1~b2~RR1~x~y)~b...] 0.005 secs (0.004u,0.s) +Chars 54492 - 54596 [(assert~(eqit~b1~b2~RR2~x0~y0)...] 0.007 secs (0.007u,0.s) +Chars 54625 - 54669 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) +Chars 54673 - 54771 [(assert~(Hdiag~:~eqit~b1~b2~RS...] 0.002 secs (0.002u,0.s) +Chars 54809 - 54831 [(apply~eqit_flip~in~H0).] 0. secs (0.u,0.s) +Chars 54881 - 54941 [(eapply~eqit_mono~with~(RR~:=~...] 0.003 secs (0.003u,0.s) +Chars 54945 - 54970 [(eapply~eqit_trans;~eauto).] 0.003 secs (0.003u,0.s) +Chars 54974 - 55043 [(eapply~eqit_mono~with~(b1~:=~...] 0.006 secs (0.006u,0.s) +Chars 55045 - 55049 [Qed.] 0.002 secs (0.002u,0.s) +Chars 55092 - 55241 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) +Chars 55242 - 55248 [Proof.] 0. secs (0.u,0.s) +Chars 55251 - 55258 [(intros).] 0. secs (0.u,0.s) +Chars 55261 - 55277 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 55280 - 55281 [-] 0. secs (0.u,0.s) +Chars 55282 - 55302 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 55303 - 55315 [2:~(apply~H).] 0. secs (0.u,0.s) +Chars 55321 - 55338 [(apply~eqit_Tau_r).] 0. secs (0.u,0.s) +Chars 55339 - 55351 [reflexivity.] 0. secs (0.u,0.s) +Chars 55354 - 55355 [-] 0. secs (0.u,0.s) +Chars 55356 - 55361 [step.] 0.001 secs (0.001u,0.s) +Chars 55362 - 55367 [taul.] 0. secs (0.u,0.s) +Chars 55368 - 55382 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 55384 - 55388 [Qed.] 0.002 secs (0.002u,0.s) +Chars 55390 - 55539 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) +Chars 55540 - 55546 [Proof.] 0. secs (0.u,0.s) +Chars 55549 - 55556 [(intros).] 0. secs (0.u,0.s) +Chars 55559 - 55575 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 55578 - 55579 [-] 0. secs (0.u,0.s) +Chars 55580 - 55600 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 55601 - 55609 [(apply~H).] 0. secs (0.u,0.s) +Chars 55614 - 55631 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) +Chars 55632 - 55644 [reflexivity.] 0. secs (0.u,0.s) +Chars 55647 - 55648 [-] 0. secs (0.u,0.s) +Chars 55649 - 55654 [step.] 0.001 secs (0.001u,0.s) +Chars 55655 - 55660 [taur.] 0. secs (0.u,0.s) +Chars 55661 - 55675 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 55676 - 55680 [Qed.] 0.001 secs (0.001u,0.s) +Chars 55682 - 55771 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 55772 - 55778 [Proof.] 0. secs (0.u,0.s) +Chars 55781 - 55794 [(intros~Heutt).] 0. secs (0.u,0.s) +Chars 55795 - 55809 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 55813 - 55831 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) +Chars 55835 - 55863 [(remember~(observe~(Ret~r1))).] 0. secs (0.u,0.s) +Chars 55866 - 55880 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 55883 - 55914 [(remember~{|~_observe~:=~ot2~|}).] 0. secs (0.u,0.s) +Chars 55917 - 55962 [(hinduction~Heutt~before~r1;~i...] 0.007 secs (0.007u,0.s) +Chars 55966 - 55967 [-] 0. secs (0.u,0.s) +Chars 55968 - 55987 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) +Chars 55988 - 56006 [(rewrite~itree_eta).] 0.01 secs (0.01u,0.s) +Chars 56007 - 56026 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 56027 - 56031 [Qed.] 0.004 secs (0.004u,0.s) +Chars 56128 - 56217 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 56218 - 56224 [Proof.] 0. secs (0.u,0.s) +Chars 56227 - 56240 [(intros~Heutt).] 0. secs (0.u,0.s) +Chars 56241 - 56255 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 56260 - 56278 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) +Chars 56282 - 56357 [(remember~(observe~(Ret~r2));~...] 0. secs (0.u,0.s) +Chars 56360 - 56404 [(hinduction~Heutt~before~R;~in...] 0.008 secs (0.008u,0.s) +Chars 56408 - 56409 [-] 0. secs (0.u,0.s) +Chars 56410 - 56429 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) +Chars 56430 - 56448 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) +Chars 56449 - 56468 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 56469 - 56473 [Qed.] 0.004 secs (0.004u,0.s) +Chars 56517 - 56684 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) +Chars 56686 - 56782 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 56783 - 56789 [Proof.] 0. secs (0.u,0.s) +Chars 56792 - 56843 [(apply~observing_sub_eqit;~con...] 0. secs (0.u,0.s) +Chars 56844 - 56848 [Qed.] 0. secs (0.u,0.s) +Chars 56850 - 56939 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) +Chars 56940 - 56946 [Proof.] 0. secs (0.u,0.s) +Chars 56947 - 56983 [(apply~observing_sub_eqit,~bin...] 0. secs (0.u,0.s) +Chars 56984 - 56988 [Qed.] 0. secs (0.u,0.s) +Chars 56990 - 57085 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) +Chars 57086 - 57092 [Proof.] 0. secs (0.u,0.s) +Chars 57093 - 57123 [(apply~(unfold_bind~(Tau~t)~k)).] 0. secs (0.u,0.s) +Chars 57124 - 57128 [Qed.] 0. secs (0.u,0.s) +Chars 57130 - 57274 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) +Chars 57275 - 57281 [Proof.] 0. secs (0.u,0.s) +Chars 57282 - 57315 [(apply~(unfold_bind~(Vis~e~ek)...] 0. secs (0.u,0.s) +Chars 57316 - 57320 [Qed.] 0. secs (0.u,0.s) +Chars 57322 - 57440 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) +Chars 57441 - 57447 [Proof.] 0. secs (0.u,0.s) +Chars 57450 - 57475 [(rewrite~unfold_bind;~cbn).] 0.003 secs (0.002u,0.s) +Chars 57478 - 57483 [step.] 0.001 secs (0.001u,0.s) +Chars 57486 - 57498 [constructor.] 0. secs (0.u,0.s) +Chars 57501 - 57508 [(intros).] 0. secs (0.u,0.s) +Chars 57509 - 57526 [(apply~bind_ret_l).] 0. secs (0.u,0.s) +Chars 57527 - 57531 [Qed.] 0.002 secs (0.002u,0.s) +Chars 57533 - 57690 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0.001 secs (0.001u,0.s) +Chars 57691 - 57697 [Proof.] 0. secs (0.u,0.s) +Chars 57700 - 57722 [(rewrite~unfold_aloop_).] 0.009 secs (0.009u,0.s) +Chars 57723 - 57735 [reflexivity.] 0. secs (0.u,0.s) +Chars 57736 - 57740 [Qed.] 0.001 secs (0.001u,0.s) +Chars 57742 - 57864 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) +Chars 57865 - 57871 [Proof.] 0. secs (0.u,0.s) +Chars 57874 - 57922 [(rewrite~itree_eta,~(itree_eta...] 0.002 secs (0.002u,0.s) +Chars 57925 - 57937 [reflexivity.] 0. secs (0.u,0.s) +Chars 57938 - 57942 [Qed.] 0.001 secs (0.001u,0.s) +Chars 57944 - 58058 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) +Chars 58059 - 58119 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) +Chars 58121 - 58136 [Section~eqit_h.] 0. secs (0.u,0.s) +Chars 58138 - 58204 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 58263 - 58380 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) +Chars 58381 - 58387 [Proof.] 0. secs (0.u,0.s) +Chars 58390 - 58406 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 58409 - 58410 [-] 0. secs (0.u,0.s) +Chars 58411 - 58421 [step~in~H.] 0. secs (0.u,0.s) +Chars 58422 - 58427 [step.] 0.001 secs (0.001u,0.s) +Chars 58434 - 58451 [move~H~before~RR.] 0. secs (0.u,0.s) +Chars 58452 - 58467 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 58472 - 58500 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) +Chars 58506 - 58534 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) +Chars 58540 - 58554 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 58560 - 58574 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 58580 - 58636 [(hinduction~H~before~RR;~intro...] 0.017 secs (0.017u,0.s) +Chars 58642 - 58643 [+] 0. secs (0.u,0.s) +Chars 58644 - 58655 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 58661 - 58662 [+] 0. secs (0.u,0.s) +Chars 58663 - 58669 [(inv~H).] 0.012 secs (0.011u,0.s) +Chars 58677 - 58678 [*] 0. secs (0.u,0.s) +Chars 58679 - 58684 [taul.] 0. secs (0.u,0.s) +Chars 58685 - 58707 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 58715 - 58716 [*] 0. secs (0.u,0.s) +Chars 58717 - 58722 [taul.] 0. secs (0.u,0.s) +Chars 58723 - 58745 [(eapply~IHeqitF;~eauto).] 0.004 secs (0.002u,0.s) +Chars 58751 - 58752 [+] 0. secs (0.u,0.s) +Chars 58753 - 58759 [(inv~H).] 0.014 secs (0.01u,0.s) +Chars 58767 - 58768 [*] 0. secs (0.u,0.s) +Chars 58769 - 58774 [taur.] 0. secs (0.u,0.s) +Chars 58775 - 58797 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 58805 - 58806 [*] 0. secs (0.u,0.s) +Chars 58807 - 58812 [taur.] 0. secs (0.u,0.s) +Chars 58813 - 58835 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 58839 - 58840 [-] 0. secs (0.u,0.s) +Chars 58841 - 58846 [step.] 0.001 secs (0.001u,0.s) +Chars 58847 - 58863 [now~constructor.] 0. secs (0.u,0.s) +Chars 58867 - 58871 [Qed.] 0.009 secs (0.009u,0.s) +Chars 58874 - 59097 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0.001 secs (0.001u,0.s) +Chars 59098 - 59104 [Proof.] 0. secs (0.u,0.s) +Chars 59107 - 59123 [(destruct~p;~cbn).] 0. secs (0.u,0.s) +Chars 59124 - 59136 [(intros~<-~H).] 0. secs (0.u,0.s) +Chars 59137 - 59142 [step.] 0.001 secs (0.001u,0.s) +Chars 59143 - 59156 [econstructor.] 0. secs (0.u,0.s) +Chars 59157 - 59165 [(apply~H).] 0. secs (0.u,0.s) +Chars 59166 - 59170 [Qed.] 0.002 secs (0.002u,0.s) +Chars 59172 - 59344 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) +Chars 59345 - 59351 [Proof.] 0. secs (0.u,0.s) +Chars 59354 - 59406 [(apply~eqit_Vis_gen~with~(p~:=...] 0. secs (0.u,0.s) +Chars 59407 - 59411 [Qed.] 0. secs (0.u,0.s) +Chars 59413 - 59510 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) +Chars 59511 - 59517 [Proof.] 0. secs (0.u,0.s) +Chars 59520 - 59536 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 59539 - 59540 [-] 0. secs (0.u,0.s) +Chars 59541 - 59546 [step.] 0.001 secs (0.001u,0.s) +Chars 59547 - 59563 [now~constructor.] 0. secs (0.u,0.s) +Chars 59566 - 59567 [-] 0. secs (0.u,0.s) +Chars 59568 - 59575 [(sinv~H).] 0.002 secs (0.002u,0.s) +Chars 59577 - 59581 [Qed.] 0.002 secs (0.002u,0.s) +Chars 59766 - 60084 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) +Chars 60085 - 60091 [Proof.] 0. secs (0.u,0.s) +Chars 60095 - 60111 [(revert_until~U2).] 0. secs (0.u,0.s) +Chars 60115 - 60131 [tower~induction.] 0.005 secs (0.005u,0.s) +Chars 60135 - 60136 [-] 0. secs (0.u,0.s) +Chars 60137 - 60144 [(intros).] 0. secs (0.u,0.s) +Chars 60148 - 60165 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) +Chars 60170 - 60171 [-] 0. secs (0.u,0.s) +Chars 60172 - 60179 [(intros).] 0. secs (0.u,0.s) +Chars 60183 - 60193 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 60197 - 60211 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 60216 - 60230 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 60233 - 60275 [(hinduction~H0~before~RR;~intr...] 0.044 secs (0.044u,0.s) +Chars 60360 - 60397 [1-3:~(rewrite~2!observe_bind;~...] 0.019 secs (0.019u,0.s) +Chars 60412 - 60413 [+] 0. secs (0.u,0.s) +Chars 60414 - 60431 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) +Chars 60448 - 60449 [+] 0. secs (0.u,0.s) +Chars 60450 - 60462 [constructor.] 0. secs (0.u,0.s) +Chars 60467 - 60483 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60489 - 60517 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) +Chars 60532 - 60533 [+] 0. secs (0.u,0.s) +Chars 60534 - 60546 [constructor.] 0. secs (0.u,0.s) +Chars 60552 - 60558 [intro.] 0. secs (0.u,0.s) +Chars 60564 - 60580 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60585 - 60613 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) +Chars 60629 - 60630 [+] 0. secs (0.u,0.s) +Chars 60631 - 60652 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 60658 - 60666 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 60672 - 60677 [taul.] 0. secs (0.u,0.s) +Chars 60683 - 60705 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60723 - 60724 [+] 0. secs (0.u,0.s) +Chars 60725 - 60758 [setoid_rewrite~observe_bind~at~2.] 0.023 secs (0.023u,0.s) +Chars 60764 - 60772 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 60778 - 60783 [taur.] 0. secs (0.u,0.s) +Chars 60789 - 60811 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60813 - 60817 [Qed.] 0.009 secs (0.009u,0.s) +Chars 60820 - 61012 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) +Chars 61013 - 61019 [Proof.] 0. secs (0.u,0.s) +Chars 61024 - 61036 [(unfold~eutt).] 0. secs (0.u,0.s) +Chars 61037 - 61067 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) +Chars 61070 - 61074 [Qed.] 0. secs (0.u,0.s) +Chars 61077 - 61311 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) +Chars 61312 - 61318 [Proof.] 0. secs (0.u,0.s) +Chars 61323 - 61354 [(eapply~eqit_bind_chain;~intros).] 0. secs (0.u,0.s) +Chars 61360 - 61405 [all:~now~do~2~step;~[~apply~EQ...] 0.026 secs (0.026u,0.s) +Chars 61406 - 61410 [Qed.] 0.002 secs (0.002u,0.s) +Chars 61414 - 61425 [End~eqit_h.] 0. secs (0.u,0.s) +Chars 61427 - 61470 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 61472 - 61515 [Ltac~etau~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 61517 - 61568 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) +Chars 61570 - 61625 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) +Chars 61630 - 61706 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) +Chars 61707 - 61713 [Proof.] 0. secs (0.u,0.s) +Chars 61716 - 61731 [(apply~eqit_Tau).] 0. secs (0.u,0.s) +Chars 61732 - 61736 [Qed.] 0. secs (0.u,0.s) +Chars 61738 - 61817 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) +Chars 61818 - 61824 [Proof.] 0. secs (0.u,0.s) +Chars 61827 - 61842 [(apply~eqit_Tau).] 0. secs (0.u,0.s) +Chars 61843 - 61847 [Qed.] 0. secs (0.u,0.s) +Chars 61849 - 62111 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 62112 - 62118 [Proof.] 0. secs (0.u,0.s) +Chars 62121 - 62128 [(intros).] 0. secs (0.u,0.s) +Chars 62131 - 62161 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.u,0.s) +Chars 62163 - 62167 [Qed.] 0. secs (0.u,0.s) +Chars 62169 - 62430 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) +Chars 62431 - 62437 [Proof.] 0. secs (0.u,0.s) +Chars 62440 - 62465 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) +Chars 62466 - 62470 [Qed.] 0.002 secs (0.002u,0.s) +Chars 62473 - 62634 [#[global]~Instance~eqit_subst~...] 0.001 secs (0.001u,0.s) +Chars 62635 - 62641 [Proof.] 0. secs (0.u,0.s) +Chars 62644 - 62678 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) +Chars 62681 - 62701 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 62702 - 62706 [Qed.] 0.004 secs (0.001u,0.s) +Chars 62708 - 62867 [#[global]~Instance~eqit_bind~~...] 0.001 secs (0.u,0.s) +Chars 62868 - 62874 [Proof.] 0. secs (0.u,0.s) +Chars 62877 - 62911 [(intros~!;~eapply~eqit_bind';~...] 0.002 secs (0.001u,0.s) +Chars 62914 - 62934 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 62935 - 62939 [Qed.] 0.002 secs (0.001u,0.s) +Chars 62941 - 63188 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0.005 secs (0.002u,0.s) +Chars 63189 - 63195 [Proof.] 0. secs (0.u,0.s) +Chars 63198 - 63223 [(unfold~ITree.map;~intros).] 0. secs (0.u,0.s) +Chars 63226 - 63251 [(eapply~eqit_bind';~eauto).] 0.003 secs (0.002u,0.s) +Chars 63254 - 63286 [(intros;~step;~constructor;~au...] 0.002 secs (0.002u,0.s) +Chars 63287 - 63291 [Qed.] 0.002 secs (0.001u,0.s) +Chars 63293 - 63450 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) +Chars 63451 - 63457 [Proof.] 0. secs (0.u,0.s) +Chars 63460 - 63492 [(intros~!;~eapply~eqit_map;~ea...] 0. secs (0.u,0.s) +Chars 63495 - 63515 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 63516 - 63520 [Qed.] 0.001 secs (0.001u,0.s) +Chars 63522 - 63707 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) +Chars 63709 - 63715 [Proof.] 0. secs (0.u,0.s) +Chars 63719 - 63727 [intros~!.] 0. secs (0.u,0.s) +Chars 63731 - 63738 [unstep.] 0.002 secs (0.002u,0.s) +Chars 63739 - 63749 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 63750 - 63761 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 63762 - 63771 [now~step.] 0.001 secs (0.001u,0.s) +Chars 63773 - 63777 [Qed.] 0.002 secs (0.002u,0.s) +Chars 63781 - 63899 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) +Chars 63900 - 63906 [Proof.] 0. secs (0.u,0.s) +Chars 63909 - 63931 [(apply~Transitive_elem).] 0. secs (0.u,0.s) +Chars 63932 - 63950 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 63952 - 63956 [Qed.] 0. secs (0.u,0.s) +Chars 64285 - 64443 [#[global]~Instance~elem_observ...] 0.001 secs (0.001u,0.s) +Chars 64445 - 64451 [Proof.] 0. secs (0.u,0.s) +Chars 64455 - 64488 [(intros~x~y~Hxy~x'~y'~Hx'y'~He...] 0. secs (0.u,0.s) +Chars 64491 - 64509 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) +Chars 64514 - 64554 [(eapply~observing_sub_elem~in~...] 0. secs (0.u,0.s) +Chars 64557 - 64599 [(eapply~observing_sub_elem~in~...] 0.001 secs (0.001u,0.s) +Chars 64602 - 64630 [(do~2~(etransitivity;~eauto)).] 0.001 secs (0.001u,0.s) +Chars 64633 - 64637 [Qed.] 0.002 secs (0.002u,0.s) +Chars 64642 - 64731 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) +Chars 64732 - 64738 [Proof.] 0. secs (0.u,0.s) +Chars 64741 - 64757 [(unfold~eq_itree).] 0. secs (0.u,0.s) +Chars 64758 - 64765 [(intros).] 0. secs (0.u,0.s) +Chars 64851 - 64904 [(rewrite~(itree_eta_~(ITree.bi...] 0.002 secs (0.002u,0.s) +Chars 64931 - 64940 [revert~s.] 0. secs (0.u,0.s) +Chars 64944 - 64963 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 64967 - 64974 [(intros).] 0. secs (0.u,0.s) +Chars 65049 - 65095 [(desobs~s~H;~cbn;~simpobs;~con...] 0.004 secs (0.004u,0.s) +Chars 65123 - 65135 [reflexivity.] 0. secs (0.u,0.s) +Chars 65276 - 65310 [all:~(eapply~elem_observing_pr...] 0.002 secs (0.002u,0.s) +Chars 65355 - 65375 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) +Chars 65429 - 65464 [all:~(constructor;~ITree.fold_...] 0. secs (0.u,0.s) +Chars 65467 - 65491 [all:~(simpl;~reflexivity).] 0. secs (0.u,0.s) +Chars 65493 - 65497 [Qed.] 0.006 secs (0.006u,0.s) +Chars 65500 - 65622 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) +Chars 65623 - 65629 [Proof.] 0. secs (0.u,0.s) +Chars 65632 - 65640 [intro~H.] 0. secs (0.u,0.s) +Chars 65641 - 65672 [(rewrite~<-~(bind_ret_r~u)~~at...] 0.001 secs (0.001u,0.s) +Chars 65673 - 65689 [(apply~eqit_bind).] 0.002 secs (0.002u,0.s) +Chars 65692 - 65693 [-] 0. secs (0.u,0.s) +Chars 65694 - 65706 [reflexivity.] 0. secs (0.u,0.s) +Chars 65709 - 65710 [-] 0. secs (0.u,0.s) +Chars 65711 - 65715 [(hnf).] 0. secs (0.u,0.s) +Chars 65716 - 65723 [(intros).] 0. secs (0.u,0.s) +Chars 65724 - 65739 [(apply~eqit_Ret).] 0. secs (0.u,0.s) +Chars 65740 - 65745 [auto.] 0. secs (0.u,0.s) +Chars 65746 - 65750 [Qed.] 0.001 secs (0.001u,0.s) +Chars 65752 - 65915 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) +Chars 65918 - 66095 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) +Chars 66096 - 66102 [Proof.] 0. secs (0.u,0.s) +Chars 66105 - 66121 [(unfold~eq_itree).] 0. secs (0.u,0.s) +Chars 66122 - 66129 [(intros).] 0. secs (0.u,0.s) +Chars 66133 - 66244 [(lazymatch~goal~with~~|~|-~_~(...] 0.003 secs (0.003u,0.s) +Chars 66247 - 66324 [(lazymatch~goal~with~~|~|-~_~?...] 0.002 secs (0.002u,0.s) +Chars 66327 - 66340 [revert~s~k~h.] 0. secs (0.u,0.s) +Chars 66344 - 66363 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 66366 - 66373 [(intros).] 0. secs (0.u,0.s) +Chars 66376 - 66401 [(desobs~s~H;~cbn;~simpobs).] 0.003 secs (0.003u,0.s) +Chars 66405 - 66413 [1:~step.] 0.003 secs (0.003u,0.s) +Chars 66414 - 66426 [reflexivity.] 0. secs (0.u,0.s) +Chars 66430 - 66485 [all:~(constructor;~intros;~eap...] 0.002 secs (0.002u,0.s) +Chars 66488 - 66508 [all:~(try~eapply~CIH).] 0.001 secs (0.001u,0.s) +Chars 66511 - 66528 [all:~constructor.] 0. secs (0.u,0.s) +Chars 66532 - 66548 [all:~fold_subst.] 0.001 secs (0.001u,0.s) +Chars 66552 - 66585 [all:~(repeat~rewrite~observe_b...] 0.005 secs (0.005u,0.s) +Chars 66588 - 66605 [all:~reflexivity.] 0. secs (0.u,0.s) +Chars 66606 - 66610 [Qed.] 0.011 secs (0.011u,0.s) +Chars 66613 - 66755 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) +Chars 66756 - 66762 [Proof.] 0. secs (0.u,0.s) +Chars 66765 - 66782 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 66783 - 66790 [(intros).] 0. secs (0.u,0.s) +Chars 66791 - 66809 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 66810 - 66836 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) +Chars 66837 - 66849 [reflexivity.] 0. secs (0.u,0.s) +Chars 66850 - 66854 [Qed.] 0.001 secs (0.001u,0.s) +Chars 66856 - 67008 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) +Chars 67009 - 67015 [Proof.] 0. secs (0.u,0.s) +Chars 67018 - 67035 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67036 - 67043 [(intros).] 0. secs (0.u,0.s) +Chars 67044 - 67062 [(rewrite~bind_bind).] 0.003 secs (0.002u,0.s) +Chars 67063 - 67089 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 67090 - 67102 [reflexivity.] 0. secs (0.u,0.s) +Chars 67103 - 67107 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67109 - 67262 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) +Chars 67263 - 67269 [Proof.] 0. secs (0.u,0.s) +Chars 67272 - 67279 [(intros).] 0. secs (0.u,0.s) +Chars 67280 - 67297 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67298 - 67314 [(apply~bind_bind).] 0. secs (0.u,0.s) +Chars 67315 - 67319 [Qed.] 0. secs (0.u,0.s) +Chars 67321 - 67411 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 67412 - 67418 [Proof.] 0. secs (0.u,0.s) +Chars 67421 - 67428 [(intros).] 0. secs (0.u,0.s) +Chars 67429 - 67446 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67449 - 67481 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 67482 - 67486 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67488 - 67596 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 67597 - 67603 [Proof.] 0. secs (0.u,0.s) +Chars 67606 - 67613 [(intros).] 0. secs (0.u,0.s) +Chars 67616 - 67633 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67636 - 67666 [(rewrite~bind_tau;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 67667 - 67671 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67673 - 67716 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 67717 - 67760 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 67761 - 67802 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) +Chars 67803 - 67844 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) +Chars 67845 - 67886 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) +Chars 67887 - 67927 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) +Chars 67928 - 67968 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) +Chars 67969 - 68011 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) +Chars 68032 - 68123 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) +Chars 68125 - 68217 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) +Chars 68334 - 68409 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) +Chars 68481 - 68559 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) +Chars 68622 - 68676 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) +Chars 68678 - 68776 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) +Chars 68778 - 68877 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) +Chars 68879 - 68974 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) +Chars 68976 - 69074 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) +Chars 69076 - 69145 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) +Chars 69147 - 69408 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 69409 - 69415 [Proof.] 0. secs (0.u,0.s) +Chars 69418 - 69425 [(intros).] 0. secs (0.u,0.s) +Chars 69428 - 69438 [step~in~H.] 0. secs (0.u,0.s) +Chars 69441 - 69486 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 69489 - 69514 [(remember~(Ret~b)~as~retb).] 0. secs (0.u,0.s) +Chars 69518 - 69548 [(remember~(observe~retb)~as~tr).] 0. secs (0.u,0.s) +Chars 69551 - 69592 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) +Chars 69595 - 69651 [(hinduction~H~before~RR;~intro...] 0.002 secs (0.002u,0.s) +Chars 69654 - 69655 [-] 0. secs (0.u,0.s) +Chars 69656 - 69670 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 69675 - 69725 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 69730 - 69778 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) +Chars 69783 - 69792 [exists~r.] 0. secs (0.u,0.s) +Chars 69793 - 69799 [split.] 0. secs (0.u,0.s) +Chars 69804 - 69805 [*] 0. secs (0.u,0.s) +Chars 69806 - 69829 [(rewrite~itree_eta,~Ema).] 0.01 secs (0.01u,0.s) +Chars 69830 - 69842 [reflexivity.] 0. secs (0.u,0.s) +Chars 69847 - 69848 [*] 0. secs (0.u,0.s) +Chars 69849 - 69868 [(rewrite~itree_eta_).] 0.009 secs (0.009u,0.s) +Chars 69869 - 69885 [(unfold~_observe).] 0. secs (0.u,0.s) +Chars 69886 - 69904 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) +Chars 69905 - 69915 [(inv~Heqtr).] 0.001 secs (0.001u,0.s) +Chars 69921 - 69945 [(step;~constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 69948 - 69949 [-] 0. secs (0.u,0.s) +Chars 69950 - 69957 [(intros).] 0. secs (0.u,0.s) +Chars 69958 - 69964 [subst.] 0. secs (0.u,0.s) +Chars 69969 - 70019 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 70024 - 70072 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) +Chars 70077 - 70078 [+] 0. secs (0.u,0.s) +Chars 70079 - 70088 [exists~r.] 0. secs (0.u,0.s) +Chars 70089 - 70095 [split.] 0. secs (0.u,0.s) +Chars 70102 - 70103 [*] 0. secs (0.u,0.s) +Chars 70104 - 70127 [(rewrite~itree_eta,~Ema).] 0.011 secs (0.011u,0.s) +Chars 70128 - 70140 [reflexivity.] 0. secs (0.u,0.s) +Chars 70147 - 70148 [*] 0. secs (0.u,0.s) +Chars 70149 - 70154 [step.] 0.001 secs (0.001u,0.s) +Chars 70155 - 70192 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) +Chars 70193 - 70211 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) +Chars 70212 - 70230 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 70235 - 70236 [+] 0. secs (0.u,0.s) +Chars 70237 - 70248 [(inv~Heqotl).] 0.005 secs (0.005u,0.s) +Chars 70256 - 70281 [(edestruct~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 70282 - 70291 [exists~x.] 0. secs (0.u,0.s) +Chars 70299 - 70311 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 70319 - 70332 [(split;~eauto).] 0. secs (0.u,0.s) +Chars 70339 - 70357 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) +Chars 70358 - 70363 [taul.] 0. secs (0.u,0.s) +Chars 70371 - 70386 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 70388 - 70392 [Qed.] 0.009 secs (0.009u,0.s) +Chars 70394 - 70557 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 70558 - 70564 [Proof.] 0. secs (0.u,0.s) +Chars 70567 - 70605 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) +Chars 70606 - 70610 [Qed.] 0. secs (0.u,0.s) +Chars 70612 - 70778 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) +Chars 70779 - 70785 [Proof.] 0. secs (0.u,0.s) +Chars 70788 - 70826 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) +Chars 70827 - 70831 [Qed.] 0. secs (0.u,0.s) +Chars 70833 - 71101 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) +Chars 71103 - 71543 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 71544 - 71550 [Proof.] 0. secs (0.u,0.s) +Chars 71553 - 71560 [(intros).] 0. secs (0.u,0.s) +Chars 71561 - 71571 [step~in~H.] 0. secs (0.u,0.s) +Chars 71575 - 71620 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 71623 - 71651 [(remember~(Vis~e~kxc)~as~vis).] 0. secs (0.u,0.s) +Chars 71654 - 71683 [(remember~(observe~vis)~as~tr).] 0. secs (0.u,0.s) +Chars 71687 - 71730 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) +Chars 71733 - 71786 [(induction~H;~try~(solve~[~int...] 0.003 secs (0.003u,0.s) +Chars 71789 - 71790 [-] 0. secs (0.u,0.s) +Chars 71791 - 71798 [(intros).] 0. secs (0.u,0.s) +Chars 71799 - 71847 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 71852 - 71900 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) +Chars 71905 - 71906 [+] 0. secs (0.u,0.s) +Chars 71907 - 71913 [right.] 0. secs (0.u,0.s) +Chars 71914 - 71923 [exists~r.] 0. secs (0.u,0.s) +Chars 71924 - 71930 [split.] 0. secs (0.u,0.s) +Chars 71937 - 71938 [*] 0. secs (0.u,0.s) +Chars 71939 - 71958 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) +Chars 71959 - 71971 [constructor.] 0. secs (0.u,0.s) +Chars 71972 - 71977 [auto.] 0. secs (0.u,0.s) +Chars 71984 - 71985 [*] 0. secs (0.u,0.s) +Chars 71986 - 72030 [(step;~unfold~observe~at~1;~un...] 0.001 secs (0.001u,0.s) +Chars 72031 - 72048 [(rewrite~<-~Heqtl).] 0. secs (0.u,0.s) +Chars 72057 - 72065 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 72066 - 72084 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 72089 - 72090 [+] 0. secs (0.u,0.s) +Chars 72091 - 72096 [left.] 0. secs (0.u,0.s) +Chars 72103 - 72121 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) +Chars 72129 - 72146 [revert~e0~Heqvis.] 0. secs (0.u,0.s) +Chars 72147 - 72167 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) +Chars 72168 - 72186 [(inv_eq_VisF~Heqtl).] 0. secs (0.u,0.s) +Chars 72187 - 72194 [(intros).] 0. secs (0.u,0.s) +Chars 72201 - 72212 [(inv~Heqvis).] 0.002 secs (0.002u,0.s) +Chars 72220 - 72233 [(cbn~in~Heqtr).] 0. secs (0.u,0.s) +Chars 72241 - 72259 [(inv_eq_VisF~Heqtr).] 0. secs (0.u,0.s) +Chars 72266 - 72275 [exists~k.] 0. secs (0.u,0.s) +Chars 72276 - 72282 [split.] 0. secs (0.u,0.s) +Chars 72289 - 72290 [*] 0. secs (0.u,0.s) +Chars 72291 - 72310 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) +Chars 72311 - 72323 [constructor.] 0. secs (0.u,0.s) +Chars 72325 - 72337 [reflexivity.] 0. secs (0.u,0.s) +Chars 72344 - 72345 [*] 0. secs (0.u,0.s) +Chars 72346 - 72351 [auto.] 0. secs (0.u,0.s) +Chars 72354 - 72355 [-] 0. secs (0.u,0.s) +Chars 72356 - 72363 [(intros).] 0. secs (0.u,0.s) +Chars 72364 - 72370 [subst.] 0. secs (0.u,0.s) +Chars 72375 - 72423 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 72428 - 72477 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) +Chars 72482 - 72483 [+] 0. secs (0.u,0.s) +Chars 72484 - 72507 [(right;~exists~r;~split).] 0. secs (0.u,0.s) +Chars 72514 - 72515 [*] 0. secs (0.u,0.s) +Chars 72516 - 72552 [(rewrite~itree_eta,~Ema;~refle...] 0.013 secs (0.013u,0.s) +Chars 72559 - 72560 [*] 0. secs (0.u,0.s) +Chars 72561 - 72566 [step.] 0.001 secs (0.001u,0.s) +Chars 72568 - 72623 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) +Chars 72624 - 72642 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 72647 - 72648 [+] 0. secs (0.u,0.s) +Chars 72649 - 72659 [(inv~Heqtl).] 0.008 secs (0.008u,0.s) +Chars 72660 - 72715 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 72722 - 72787 [(destruct~IHeqitF~as~[(k0,~(?,...] 0. secs (0.u,0.s) +Chars 72794 - 72795 [*] 0. secs (0.u,0.s) +Chars 72796 - 72806 [exists~k0.] 0. secs (0.u,0.s) +Chars 72807 - 72819 [(split;~auto).] 0. secs (0.u,0.s) +Chars 72828 - 72881 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 72889 - 72890 [*] 0. secs (0.u,0.s) +Chars 72891 - 72900 [exists~a.] 0. secs (0.u,0.s) +Chars 72901 - 72913 [(split;~auto).] 0. secs (0.u,0.s) +Chars 72922 - 72975 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 72976 - 72980 [Qed.] 0.016 secs (0.016u,0.s) +Chars 72982 - 73318 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 73319 - 73325 [Proof.] 0. secs (0.u,0.s) +Chars 73328 - 73335 [(intros).] 0. secs (0.u,0.s) +Chars 73336 - 73360 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) +Chars 73361 - 73366 [auto.] 0. secs (0.u,0.s) +Chars 73367 - 73371 [Qed.] 0. secs (0.u,0.s) +Chars 73373 - 73712 [Lemma~eqitree_inv_bind_vis~:~~...] 0.001 secs (0.001u,0.s) +Chars 73713 - 73719 [Proof.] 0. secs (0.u,0.s) +Chars 73722 - 73729 [(intros).] 0. secs (0.u,0.s) +Chars 73730 - 73754 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) +Chars 73755 - 73760 [auto.] 0. secs (0.u,0.s) +Chars 73761 - 73765 [Qed.] 0. secs (0.u,0.s) +Chars 73767 - 74115 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 74116 - 74122 [Proof.] 0. secs (0.u,0.s) +Chars 74125 - 74132 [(intros).] 0. secs (0.u,0.s) +Chars 74133 - 74143 [step~in~H.] 0. secs (0.u,0.s) +Chars 74147 - 74192 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 74195 - 74220 [(remember~(Tau~tc)~as~tau).] 0. secs (0.u,0.s) +Chars 74223 - 74252 [(remember~(observe~tau)~as~tr).] 0. secs (0.u,0.s) +Chars 74255 - 74295 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) +Chars 74298 - 74351 [(induction~H;~intros;~try~(sol...] 0.003 secs (0.003u,0.s) +Chars 74354 - 74355 [-] 0. secs (0.u,0.s) +Chars 74356 - 74366 [(inv~Heqtr).] 0.005 secs (0.005u,0.s) +Chars 74367 - 74415 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 74420 - 74468 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) +Chars 74473 - 74474 [+] 0. secs (0.u,0.s) +Chars 74475 - 74498 [(right;~exists~r;~split).] 0. secs (0.u,0.s) +Chars 74505 - 74506 [*] 0. secs (0.u,0.s) +Chars 74507 - 74550 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) +Chars 74557 - 74558 [*] 0. secs (0.u,0.s) +Chars 74559 - 74639 [(step;~icbn;~inv~H0;~unfold~ob...] 0.004 secs (0.004u,0.s) +Chars 74644 - 74645 [+] 0. secs (0.u,0.s) +Chars 74646 - 74668 [(left;~exists~t;~split).] 0. secs (0.u,0.s) +Chars 74675 - 74676 [*] 0. secs (0.u,0.s) +Chars 74677 - 74733 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) +Chars 74740 - 74741 [*] 0. secs (0.u,0.s) +Chars 74742 - 74752 [(inv~Heqtl).] 0.002 secs (0.002u,0.s) +Chars 74753 - 74760 [(inv~H0).] 0. secs (0.u,0.s) +Chars 74764 - 74765 [-] 0. secs (0.u,0.s) +Chars 74766 - 74772 [subst.] 0. secs (0.u,0.s) +Chars 74777 - 74825 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 74830 - 74878 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) +Chars 74883 - 74884 [+] 0. secs (0.u,0.s) +Chars 74885 - 74908 [(right;~exists~r;~split).] 0. secs (0.u,0.s) +Chars 74915 - 74916 [*] 0. secs (0.u,0.s) +Chars 74917 - 74960 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) +Chars 74967 - 74968 [*] 0. secs (0.u,0.s) +Chars 74969 - 75036 [(step;~icbn;~unfold~observe~at...] 0.001 secs (0.001u,0.s) +Chars 75037 - 75057 [(constructor~4;~auto).] 0. secs (0.u,0.s) +Chars 75062 - 75063 [+] 0. secs (0.u,0.s) +Chars 75064 - 75074 [(inv~Heqtl).] 0.008 secs (0.007u,0.s) +Chars 75075 - 75128 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 75135 - 75200 [(destruct~IHeqitF~as~[(t0,~(?,...] 0. secs (0.u,0.s) +Chars 75207 - 75208 [*] 0. secs (0.u,0.s) +Chars 75209 - 75219 [exists~t0.] 0. secs (0.u,0.s) +Chars 75220 - 75232 [(split;~auto).] 0. secs (0.u,0.s) +Chars 75241 - 75296 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 75303 - 75304 [*] 0. secs (0.u,0.s) +Chars 75305 - 75314 [exists~a.] 0. secs (0.u,0.s) +Chars 75315 - 75327 [(split;~auto).] 0. secs (0.u,0.s) +Chars 75336 - 75389 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 75392 - 75393 [-] 0. secs (0.u,0.s) +Chars 75394 - 75404 [(inv~Heqtr).] 0.008 secs (0.008u,0.s) +Chars 75409 - 75432 [(left;~exists~ma;~split).] 0. secs (0.u,0.s) +Chars 75437 - 75438 [+] 0. secs (0.u,0.s) +Chars 75439 - 75463 [(step;~constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 75469 - 75470 [+] 0. secs (0.u,0.s) +Chars 75471 - 75496 [(inv~H1;~step;~assumption).] 0.008 secs (0.008u,0.s) +Chars 75497 - 75501 [Qed.] 0.018 secs (0.017u,0.s) +Chars 75503 - 75768 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 75769 - 75775 [Proof.] 0. secs (0.u,0.s) +Chars 75778 - 75785 [(intros).] 0. secs (0.u,0.s) +Chars 75786 - 75810 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) +Chars 75811 - 75816 [auto.] 0. secs (0.u,0.s) +Chars 75817 - 75821 [Qed.] 0. secs (0.u,0.s) +Chars 75823 - 76091 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) +Chars 76092 - 76098 [Proof.] 0. secs (0.u,0.s) +Chars 76101 - 76108 [(intros).] 0. secs (0.u,0.s) +Chars 76109 - 76133 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) +Chars 76134 - 76139 [auto.] 0. secs (0.u,0.s) +Chars 76140 - 76144 [Qed.] 0. secs (0.u,0.s) +Chars 76146 - 76268 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 76269 - 76275 [Proof.] 0. secs (0.u,0.s) +Chars 76278 - 76285 [(intros).] 0. secs (0.u,0.s) +Chars 76288 - 76298 [step~in~H.] 0. secs (0.u,0.s) +Chars 76301 - 76333 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) +Chars 76336 - 76374 [(remember~(observe~ITree.spin)...] 0.001 secs (0.001u,0.s) +Chars 76377 - 76395 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 76398 - 76460 [(induction~H;~intros~EQ1~EQ2;~...] 0.006 secs (0.006u,0.s) +Chars 76463 - 76464 [-] 0. secs (0.u,0.s) +Chars 76465 - 76485 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 76490 - 76498 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 76499 - 76503 [Qed.] 0.003 secs (0.003u,0.s) +Chars 76505 - 76627 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 76628 - 76634 [Proof.] 0. secs (0.u,0.s) +Chars 76637 - 76644 [(intros).] 0. secs (0.u,0.s) +Chars 76647 - 76657 [step~in~H.] 0. secs (0.u,0.s) +Chars 76660 - 76692 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) +Chars 76695 - 76733 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 76736 - 76754 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 76757 - 76819 [(induction~H;~intros~EQ1~EQ2;~...] 0.007 secs (0.007u,0.s) +Chars 76822 - 76823 [-] 0. secs (0.u,0.s) +Chars 76824 - 76844 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 76849 - 76857 [(inv~EQ2).] 0.001 secs (0.001u,0.s) +Chars 76858 - 76862 [Qed.] 0.003 secs (0.003u,0.s) +Chars 76864 - 77014 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 77015 - 77021 [Proof.] 0. secs (0.u,0.s) +Chars 77024 - 77031 [(intros).] 0. secs (0.u,0.s) +Chars 77034 - 77044 [step~in~H.] 0. secs (0.u,0.s) +Chars 77047 - 77081 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) +Chars 77084 - 77122 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 77125 - 77143 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 77146 - 77208 [(induction~H;~intros~EQ1~EQ2;~...] 0.011 secs (0.011u,0.s) +Chars 77211 - 77212 [-] 0. secs (0.u,0.s) +Chars 77213 - 77233 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 77238 - 77246 [(inv~EQ2).] 0.001 secs (0.001u,0.s) +Chars 77247 - 77251 [Qed.] 0.003 secs (0.003u,0.s) +Chars 77253 - 77403 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 77404 - 77410 [Proof.] 0. secs (0.u,0.s) +Chars 77413 - 77420 [(intros).] 0. secs (0.u,0.s) +Chars 77423 - 77433 [step~in~H.] 0. secs (0.u,0.s) +Chars 77436 - 77470 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) +Chars 77473 - 77511 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 77514 - 77532 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 77535 - 77597 [(induction~H;~intros~EQ1~EQ2;~...] 0.009 secs (0.009u,0.s) +Chars 77600 - 77601 [-] 0. secs (0.u,0.s) +Chars 77602 - 77622 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 77627 - 77635 [(inv~EQ2).] 0.001 secs (0.001u,0.s) +Chars 77636 - 77640 [Qed.] 0.003 secs (0.003u,0.s) +Chars 77641 - 77659 [Section~eqit_elem.] 0. secs (0.u,0.s) +Chars 78966 - 79040 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 79042 - 79101 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) +Chars 79139 - 79256 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) +Chars 79257 - 79263 [Proof.] 0. secs (0.u,0.s) +Chars 79266 - 79297 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) +Chars 79298 - 79302 [Qed.] 0. secs (0.u,0.s) +Chars 79304 - 79421 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 79422 - 79428 [Proof.] 0. secs (0.u,0.s) +Chars 79429 - 79447 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 79448 - 79452 [Qed.] 0. secs (0.u,0.s) +Chars 79454 - 79571 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 79572 - 79578 [Proof.] 0. secs (0.u,0.s) +Chars 79579 - 79597 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 79598 - 79602 [Qed.] 0. secs (0.u,0.s) +Chars 79633 - 79868 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.002 secs (0.002u,0.s) +Chars 79869 - 79875 [Proof.] 0. secs (0.u,0.s) +Chars 79878 - 79885 [(intros).] 0. secs (0.u,0.s) +Chars 79886 - 79916 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.001u,0.s) +Chars 79917 - 79931 [now~do~2~step.] 0.005 secs (0.005u,0.s) +Chars 79933 - 79937 [Qed.] 0.001 secs (0.001u,0.s) +Chars 80124 - 80138 [End~eqit_elem.] 0. secs (0.u,0.s) +Chars 80141 - 80160 [Section~eutt_facts.] 0. secs (0.u,0.s) +Chars 81555 - 81668 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 81669 - 81675 [Proof.] 0. secs (0.u,0.s) +Chars 81678 - 81686 [intros~!.] 0. secs (0.u,0.s) +Chars 81687 - 81705 [now~rewrite~H,~H0.] 0.023 secs (0.023u,0.s) +Chars 81706 - 81710 [Qed.] 0.001 secs (0.001u,0.s) +Chars 81712 - 81849 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 81850 - 81856 [Proof.] 0. secs (0.u,0.s) +Chars 81859 - 81867 [intros~!.] 0. secs (0.u,0.s) +Chars 81868 - 81886 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) +Chars 81887 - 81891 [Qed.] 0.001 secs (0.001u,0.s) +Chars 81893 - 82030 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 82031 - 82037 [Proof.] 0. secs (0.u,0.s) +Chars 82040 - 82048 [intros~!.] 0. secs (0.u,0.s) +Chars 82049 - 82067 [now~rewrite~H,~H0.] 0.029 secs (0.029u,0.s) +Chars 82068 - 82072 [Qed.] 0.001 secs (0.001u,0.s) +Chars 82226 - 82412 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) +Chars 82413 - 82419 [Proof.] 0. secs (0.u,0.s) +Chars 82422 - 82429 [(intros).] 0. secs (0.u,0.s) +Chars 82432 - 82492 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) +Chars 82495 - 82518 [(intros~?~?~->;~apply~H).] 0. secs (0.u,0.s) +Chars 82519 - 82523 [Qed.] 0. secs (0.u,0.s) +Chars 82569 - 82735 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) +Chars 82736 - 82742 [Proof.] 0. secs (0.u,0.s) +Chars 82745 - 82758 [(intros~->~Hk).] 0.001 secs (0.001u,0.s) +Chars 82759 - 82782 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) +Chars 82783 - 82787 [Qed.] 0.001 secs (0.001u,0.s) +Chars 82882 - 83004 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) +Chars 83005 - 83011 [Proof.] 0. secs (0.u,0.s) +Chars 83014 - 83037 [(intros;~apply~eqit_Ret).] 0. secs (0.u,0.s) +Chars 83038 - 83042 [Qed.] 0. secs (0.u,0.s) +Chars 83206 - 83233 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) +Chars 83235 - 83385 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) +Chars 83386 - 83392 [Proof.] 0. secs (0.u,0.s) +Chars 83395 - 83414 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 83415 - 83431 [(intros~*~EQ~EQ').] 0. secs (0.u,0.s) +Chars 83434 - 83458 [(step~in~EQ;~step~in~EQ').] 0.001 secs (0.001u,0.s) +Chars 83462 - 83487 [(genobs~t~ot;~genobs~s~os).] 0.002 secs (0.002u,0.s) +Chars 83490 - 83537 [(hinduction~EQ~before~CIH;~sub...] 0.001 secs (0.001u,0.s) +Chars 83540 - 83541 [-] 0. secs (0.u,0.s) +Chars 83542 - 83550 [(inv~EQ').] 0.01 secs (0.009u,0.s) +Chars 83551 - 83556 [eret.] 0. secs (0.u,0.s) +Chars 83557 - 83573 [now~constructor.] 0. secs (0.u,0.s) +Chars 83577 - 83578 [-] 0. secs (0.u,0.s) +Chars 83579 - 83584 [taus.] 0. secs (0.u,0.s) +Chars 83585 - 83603 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 83604 - 83623 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) +Chars 83624 - 83633 [now~step.] 0.001 secs (0.001u,0.s) +Chars 83638 - 83639 [-] 0. secs (0.u,0.s) +Chars 83640 - 83652 [constructor.] 0. secs (0.u,0.s) +Chars 83653 - 83661 [intro~v.] 0. secs (0.u,0.s) +Chars 83662 - 83681 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 83686 - 83704 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 83710 - 83750 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) +Chars 83753 - 83754 [-] 0. secs (0.u,0.s) +Chars 83755 - 83760 [taul.] 0. secs (0.u,0.s) +Chars 83761 - 83780 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 83781 - 83787 [subst.] 0. secs (0.u,0.s) +Chars 83788 - 83795 [unstep.] 0.003 secs (0.003u,0.s) +Chars 83796 - 83818 [(eapply~eqit_inv_Tau_l).] 0. secs (0.u,0.s) +Chars 83824 - 83833 [now~step.] 0.002 secs (0.001u,0.s) +Chars 83838 - 83839 [-] 0. secs (0.u,0.s) +Chars 83840 - 83845 [taur.] 0. secs (0.u,0.s) +Chars 83846 - 83865 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 83866 - 83872 [subst.] 0. secs (0.u,0.s) +Chars 83873 - 83880 [unstep.] 0.003 secs (0.003u,0.s) +Chars 83881 - 83903 [(eapply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) +Chars 83909 - 83918 [now~step.] 0.001 secs (0.001u,0.s) +Chars 83921 - 83925 [Qed.] 0.015 secs (0.015u,0.s) +Chars 83927 - 84053 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 84055 - 84061 [Proof.] 0. secs (0.u,0.s) +Chars 84064 - 84071 [(intros).] 0. secs (0.u,0.s) +Chars 84074 - 84105 [(eapply~(eqit_mono~RS~_);~eauto).] 0.002 secs (0.002u,0.s) +Chars 84106 - 84110 [Qed.] 0. secs (0.u,0.s) +Chars 84112 - 84239 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 84241 - 84247 [Proof.] 0. secs (0.u,0.s) +Chars 84250 - 84257 [(intros).] 0. secs (0.u,0.s) +Chars 84260 - 84292 [(eapply~(eqit_mono~RS'~_);~eau...] 0.001 secs (0.001u,0.s) +Chars 84293 - 84297 [Qed.] 0. secs (0.u,0.s) +Chars 84299 - 84458 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) +Chars 84460 - 84466 [Proof.] 0. secs (0.u,0.s) +Chars 84469 - 84542 [(intros~*~EQ;~split;~intros~EU...] 0.005 secs (0.005u,0.s) +Chars 84545 - 84559 [all:~(apply~EQ).] 0. secs (0.u,0.s) +Chars 84560 - 84564 [Qed.] 0. secs (0.u,0.s) +Chars 84642 - 84821 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 84822 - 84828 [Proof.] 0. secs (0.u,0.s) +Chars 84831 - 84846 [(intros~!;~subst).] 0. secs (0.u,0.s) +Chars 84849 - 84889 [(unfold~eq_itree;~rewrite~H;~r...] 0. secs (0.u,0.s) +Chars 84890 - 84894 [Qed.] 0. secs (0.u,0.s) +Chars 84896 - 85056 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 85057 - 85063 [Proof.] 0. secs (0.u,0.s) +Chars 85066 - 85081 [(intros~!;~subst).] 0. secs (0.u,0.s) +Chars 85084 - 85120 [(unfold~eutt;~rewrite~H;~refle...] 0. secs (0.u,0.s) +Chars 85121 - 85125 [Qed.] 0.001 secs (0.u,0.s) +Chars 85234 - 85365 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) +Chars 85366 - 85372 [Proof.] 0. secs (0.u,0.s) +Chars 85375 - 85397 [(intros~Hrel;~revert~t).] 0. secs (0.u,0.s) +Chars 85398 - 85433 [(icoinduction~c~CIH;~intros~t~...] 0.002 secs (0.002u,0.s) +Chars 85436 - 85450 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 85453 - 85484 [(remember~t~as~t'~in~Heutt~at~2).] 0. secs (0.u,0.s) +Chars 85485 - 85521 [(assert~(Ht'~:~t'~≈~t)~by~now~...] 0. secs (0.u,0.s) +Chars 85522 - 85534 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 85537 - 85582 [(rewrite~(itree_eta~t),~(itree...] 0.043 secs (0.042u,0.s) +Chars 85585 - 85596 [revert~Ht'.] 0. secs (0.u,0.s) +Chars 85597 - 85634 [(induction~Heutt;~clear~t;~int...] 0.001 secs (0.001u,0.s) +Chars 85637 - 85638 [-] 0. secs (0.u,0.s) +Chars 85639 - 85672 [(apply~eutt_inv_Ret~in~Heq;~su...] 0. secs (0.u,0.s) +Chars 85677 - 85695 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 85698 - 85699 [-] 0. secs (0.u,0.s) +Chars 85700 - 85726 [(apply~eqit_inv_Tau~in~Heq).] 0. secs (0.u,0.s) +Chars 85731 - 85743 [constructor.] 0. secs (0.u,0.s) +Chars 85744 - 85755 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 85761 - 85785 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 85788 - 85789 [-] 0. secs (0.u,0.s) +Chars 85790 - 85802 [constructor.] 0. secs (0.u,0.s) +Chars 85803 - 85812 [(intros~v).] 0. secs (0.u,0.s) +Chars 85813 - 85840 [(eapply~eqit_inv_Vis~in~Heq).] 0. secs (0.u,0.s) +Chars 85845 - 85864 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 85865 - 85876 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 85877 - 85901 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 85904 - 85905 [-] 0. secs (0.u,0.s) +Chars 85906 - 85911 [taul.] 0. secs (0.u,0.s) +Chars 85912 - 85917 [taur.] 0. secs (0.u,0.s) +Chars 85918 - 85932 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 85933 - 85959 [(rewrite~<-~(itree_eta~t1)).] 0.001 secs (0.001u,0.s) +Chars 85967 - 85997 [now~rewrite~tau_euttge~in~Heq.] 0.025 secs (0.025u,0.s) +Chars 86001 - 86002 [-] 0. secs (0.u,0.s) +Chars 86003 - 86017 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 86018 - 86041 [(rewrite~<-~itree_eta).] 0. secs (0.u,0.s) +Chars 86049 - 86079 [now~rewrite~tau_euttge~in~Heq.] 0.018 secs (0.018u,0.s) +Chars 86081 - 86085 [Qed.] 0.007 secs (0.007u,0.s) +Chars 86087 - 86102 [End~eutt_facts.] 0. secs (0.u,0.s) +Chars 86151 - 86318 [#[global]~Instance~observing_e...] 0.001 secs (0.001u,0.s) +Chars 86320 - 86326 [Proof.] 0. secs (0.u,0.s) +Chars 86330 - 86338 [intros~!.] 0. secs (0.u,0.s) +Chars 86342 - 86347 [step.] 0.003 secs (0.003u,0.s) +Chars 86348 - 86358 [(rewrite~H).] 0.01 secs (0.01u,0.s) +Chars 86359 - 86371 [reflexivity.] 0. secs (0.u,0.s) +Chars 86373 - 86377 [Qed.] 0.001 secs (0.001u,0.s) +Chars 86384 - 86519 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 86521 - 86527 [Proof.] 0. secs (0.u,0.s) +Chars 86531 - 86570 [(intros~!;~now~eapply~observin...] 0. secs (0.u,0.s) +Chars 86571 - 86575 [Qed.] 0. secs (0.u,0.s) +Chars 86578 - 86705 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) diff --git a/theories/Eq/Rutt.v.timing b/theories/Eq/Rutt.v.timing index ff417c68..b30ad0f2 100644 --- a/theories/Eq/Rutt.v.timing +++ b/theories/Eq/Rutt.v.timing @@ -1,6 +1,6 @@ Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.005u,0.002s) Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.207 secs (0.175u,0.02s) +Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.208 secs (0.178u,0.022s) Chars 1082 - 1111 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1113 - 1127 [Section~RuttF.] 0. secs (0.u,0.s) Chars 1131 - 1162 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -30,13 +30,13 @@ Chars 3750 - 3751 [-] 0. secs (0.u,0.s) Chars 3752 - 3764 [(left;~eauto).] 0.001 secs (0.001u,0.s) Chars 3769 - 3770 [-] 0. secs (0.u,0.s) Chars 3771 - 3790 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 3793 - 3797 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3793 - 3797 [Qed.] 0.002 secs (0.001u,0.s) Chars 3801 - 4007 [Lemma~ruttF_inv_VisF~{sim}~RR~...] 0. secs (0.u,0.s) Chars 4010 - 4016 [Proof.] 0. secs (0.u,0.s) Chars 4021 - 4030 [(intros~H).] 0. secs (0.u,0.s) -Chars 4031 - 4055 [dependent~destruction~H.] 0.007 secs (0.005u,0.001s) +Chars 4031 - 4055 [dependent~destruction~H.] 0.008 secs (0.006u,0.002s) Chars 4056 - 4067 [assumption.] 0. secs (0.u,0.s) -Chars 4070 - 4074 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4070 - 4074 [Qed.] 0.004 secs (0.003u,0.s) Chars 4076 - 4086 [End~RuttF.] 0.001 secs (0.001u,0.s) Chars 4121 - 4161 [#[local]~Ltac~runfold~:=~unfol...] 0. secs (0.u,0.s) Chars 4162 - 4209 [#[local]~Ltac~runfold_in~h~:=~...] 0. secs (0.u,0.s) @@ -53,14 +53,14 @@ Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~(...] 0. secs (0.u,0.s) Chars 5261 - 5332 [Tactic~Notation~"runstep"~"in"...] 0. secs (0.u,0.s) Chars 5334 - 5841 [Ltac~~to_rmon_core~:=~~~match~...] 0. secs (0.u,0.s) Chars 5843 - 6021 [Ltac~~to_rmon~:=~~~let~dummy~:...] 0. secs (0.u,0.s) -Chars 6023 - 6539 [Ltac~~to_rmon_in~h~:=~~~match~...] 0.026 secs (0.024u,0.001s) +Chars 6023 - 6539 [Ltac~~to_rmon_in~h~:=~~~match~...] 0. secs (0.u,0.s) Chars 6541 - 6597 [Tactic~Notation~"to_rmon"~"in"...] 0. secs (0.u,0.s) Chars 6599 - 6641 [#[global]~Hint~Constructors~ru...] 0. secs (0.u,0.s) Chars 6642 - 6678 [#[global]~Hint~Unfold~rutt_:~i...] 0. secs (0.u,0.s) Chars 6679 - 6718 [#[global]~Hint~Unfold~rutt_mon...] 0. secs (0.u,0.s) Chars 6719 - 6754 [#[global]~Hint~Unfold~rutt:~it...] 0. secs (0.u,0.s) Chars 6756 - 6786 [Section~ConstructionInversion.] 0. secs (0.u,0.s) -Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0.027 secs (0.025u,0.002s) Chars 6820 - 6844 [Variables~(R1~R2~:~Type).] 0. secs (0.u,0.s) Chars 6845 - 6898 [Variable~(REv~:~forall~T1~T2,~...] 0. secs (0.u,0.s) Chars 6899 - 6965 [Variable~(RAns~:~forall~T1~T2,...] 0. secs (0.u,0.s) @@ -93,15 +93,15 @@ Chars 7633 - 7634 [-] 0. secs (0.u,0.s) Chars 7635 - 7677 [(destruct~(IHHrutt~Heqot1)~as~...] 0. secs (0.u,0.s) Chars 7678 - 7701 [(exists~r2;~split;~auto).] 0. secs (0.u,0.s) Chars 7706 - 7733 [(rewrite~<-~itree_eta~in~H1).] 0.01 secs (0.01u,0.s) -Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.033 secs (0.033u,0.s) +Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.034 secs (0.034u,0.s) Chars 7758 - 7762 [Qed.] 0.003 secs (0.003u,0.s) Chars 7764 - 7863 [Lemma~rutt_inv_Ret_r~t1~r2~:~~...] 0. secs (0.u,0.s) Chars 7864 - 7870 [Proof.] 0. secs (0.u,0.s) Chars 7873 - 7886 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 7887 - 7902 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 7903 - 7917 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.002 secs (0.002u,0.s) -Chars 7951 - 8001 [(remember~(observe~(Ret~r2))~a...] 0. secs (0.u,0.s) +Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.003 secs (0.003u,0.s) +Chars 7951 - 8001 [(remember~(observe~(Ret~r2))~a...] 0.001 secs (0.001u,0.s) Chars 8004 - 8046 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) Chars 8049 - 8050 [-] 0. secs (0.u,0.s) Chars 8051 - 8075 [(inversion~Heqot2;~subst).] 0. secs (0.u,0.s) @@ -110,7 +110,7 @@ Chars 8087 - 8113 [(split;~[~reflexivity~|~auto~]).] 0. secs (0.u,0.s) Chars 8116 - 8117 [-] 0. secs (0.u,0.s) Chars 8118 - 8160 [(destruct~(IHHrutt~Heqot2)~as~...] 0. secs (0.u,0.s) Chars 8161 - 8184 [(exists~r1;~split;~auto).] 0. secs (0.u,0.s) -Chars 8189 - 8216 [(rewrite~<-~itree_eta~in~H1).] 0.009 secs (0.009u,0.s) +Chars 8189 - 8216 [(rewrite~<-~itree_eta~in~H1).] 0.011 secs (0.01u,0.s) Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) Chars 8241 - 8245 [Qed.] 0.003 secs (0.003u,0.s) Chars 8306 - 8449 [Lemma~ruttF_inv_tau_l~t1~ot2~:...] 0. secs (0.u,0.s) @@ -194,7 +194,7 @@ Chars 10346 - 10361 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 10362 - 10376 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.011 secs (0.011u,0.s) Chars 10410 - 10463 [(remember~(observe~(Vis~e1~k1)...] 0. secs (0.u,0.s) -Chars 10466 - 10515 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) +Chars 10466 - 10515 [(induction~Hrutt;~intros;~try~...] 0.002 secs (0.002u,0.s) Chars 10518 - 10519 [-] 0. secs (0.u,0.s) Chars 10520 - 10546 [(inversion~Heqot1;~subst~A).] 0.001 secs (0.001u,0.s) Chars 10547 - 10620 [(inversion_sigma;~rewrite~<-~e...] 0.003 secs (0.003u,0.s) @@ -203,8 +203,8 @@ Chars 10651 - 10663 [reflexivity.] 0. secs (0.u,0.s) Chars 10664 - 10676 [(split;~auto).] 0. secs (0.u,0.s) Chars 10679 - 10680 [-] 0. secs (0.u,0.s) Chars 10681 - 10739 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) -Chars 10744 - 10772 [(rewrite~<-~itree_eta~in~Ht0).] 0.02 secs (0.02u,0.s) -Chars 10777 - 10808 [(exists~U2,e2,k2;~split;~auto).] 0. secs (0.u,0.s) +Chars 10744 - 10772 [(rewrite~<-~itree_eta~in~Ht0).] 0.021 secs (0.02u,0.s) +Chars 10777 - 10808 [(exists~U2,e2,k2;~split;~auto).] 0.001 secs (0.001u,0.s) Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) Chars 10831 - 10835 [Qed.] 0.007 secs (0.007u,0.s) Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0.001 secs (0.001u,0.s) @@ -212,7 +212,7 @@ Chars 11072 - 11078 [Proof.] 0. secs (0.u,0.s) Chars 11081 - 11094 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 11095 - 11110 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 11111 - 11125 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.009 secs (0.008u,0.s) +Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.008 secs (0.008u,0.s) Chars 11159 - 11212 [(remember~(observe~(Vis~e2~k2)...] 0. secs (0.u,0.s) Chars 11215 - 11264 [(induction~Hrutt;~intros;~try~...] 0.004 secs (0.004u,0.s) Chars 11267 - 11268 [-] 0. secs (0.u,0.s) @@ -226,7 +226,7 @@ Chars 11430 - 11488 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) Chars 11493 - 11521 [(rewrite~<-~itree_eta~in~Ht0).] 0.017 secs (0.017u,0.s) Chars 11526 - 11557 [(exists~U1,e1,k1;~split;~auto).] 0.002 secs (0.002u,0.s) Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 11580 - 11584 [Qed.] 0.007 secs (0.006u,0.s) +Chars 11580 - 11584 [Qed.] 0.007 secs (0.007u,0.s) Chars 11586 - 11809 [Lemma~rutt_inv_Vis~U1~U2~(e1~:...] 0. secs (0.u,0.s) Chars 11810 - 11816 [Proof.] 0. secs (0.u,0.s) Chars 11819 - 11839 [(intros~H~u1~u2~Hans).] 0. secs (0.u,0.s) diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index f2bace2b..50ee62dd 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -267,7 +267,7 @@ Proof. intros * Hrutt Heutt; revert t1 t1' Heutt t2 Hrutt. coinduction c CIH; icbn; intros t1 t1' Heutt t2 Hrutt. step in Hrutt. - rewrite (itree_eta t1') in *. + rewrite (itree_eta t1') in Heutt. remember (observe t1) as ot1 eqn:Hot1. remember (observe t2) as ot2 eqn:Hot2. move Hrutt before CIH; revert_until Hrutt. diff --git a/theories/Eq/RuttFacts.v.timing b/theories/Eq/RuttFacts.v.timing index c434fdce..c3c8f2ec 100644 --- a/theories/Eq/RuttFacts.v.timing +++ b/theories/Eq/RuttFacts.v.timing @@ -1,577 +1,578 @@ -Chars 329 - 405 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.008u,0.003s) -Chars 407 - 525 [From~ITree~Require~Import~ITre...] 0.229 secs (0.205u,0.024s) -Chars 560 - 772 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.003 secs (0.002u,0.s) -Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 789 [(intros).] 0. secs (0.u,0.s) -Chars 790 - 811 [(apply~rutt_Vis;~auto).] 0. secs (0.u,0.s) -Chars 814 - 821 [(intros).] 0. secs (0.u,0.s) -Chars 822 - 843 [(apply~rutt_Ret;~auto).] 0. secs (0.u,0.s) -Chars 844 - 848 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1067 - 1199 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) -Chars 1201 - 1276 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) -Chars 1277 - 1283 [Proof.] 0. secs (0.u,0.s) -Chars 1286 - 1298 [constructor.] 0. secs (0.u,0.s) -Chars 1301 - 1302 [-] 0. secs (0.u,0.s) -Chars 1303 - 1307 [(red).] 0. secs (0.u,0.s) -Chars 1308 - 1312 [(red).] 0. secs (0.u,0.s) -Chars 1313 - 1325 [reflexivity.] 0. secs (0.u,0.s) -Chars 1328 - 1329 [-] 0. secs (0.u,0.s) -Chars 1330 - 1334 [(red).] 0. secs (0.u,0.s) -Chars 1335 - 1346 [(intros~*~H).] 0. secs (0.u,0.s) -Chars 1347 - 1356 [(red~in~H).] 0. secs (0.u,0.s) -Chars 1357 - 1361 [(red).] 0. secs (0.u,0.s) -Chars 1362 - 1375 [now~symmetry.] 0. secs (0.u,0.s) -Chars 1378 - 1379 [-] 0. secs (0.u,0.s) -Chars 1380 - 1384 [(hnf).] 0. secs (0.u,0.s) -Chars 1385 - 1400 [(intros~*~H1~H2).] 0. secs (0.u,0.s) -Chars 1401 - 1415 [(red~in~H1,~H2).] 0. secs (0.u,0.s) -Chars 1416 - 1420 [(red).] 0. secs (0.u,0.s) -Chars 1421 - 1442 [(etransitivity;~eauto).] 0. secs (0.u,0.s) -Chars 1443 - 1447 [Qed.] 0. secs (0.u,0.s) -Chars 1449 - 1569 [Definition~flip_REv~{E1~E2~:~T...] 0. secs (0.u,0.s) -Chars 1571 - 1653 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) -Chars 1654 - 1660 [Proof.] 0. secs (0.u,0.s) -Chars 1661 - 1673 [reflexivity.] 0. secs (0.u,0.s) -Chars 1674 - 1678 [Qed.] 0. secs (0.u,0.s) -Chars 1801 - 1971 [Definition~RAns_pair~E1~E2~~~(...] 0.001 secs (0.u,0.s) -Chars 1973 - 2100 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) -Chars 2101 - 2107 [Proof.] 0. secs (0.u,0.s) -Chars 2108 - 2120 [reflexivity.] 0. secs (0.u,0.s) -Chars 2121 - 2125 [Qed.] 0. secs (0.u,0.s) -Chars 2127 - 2294 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) -Chars 2296 - 2437 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) -Chars 2438 - 2444 [Proof.] 0. secs (0.u,0.s) -Chars 2445 - 2454 [(intros~*).] 0. secs (0.u,0.s) -Chars 2455 - 2482 [(rewrite~<-~!RAns_pair_iff).] 0.004 secs (0.003u,0.s) -Chars 2483 - 2498 [(split;~apply~H).] 0. secs (0.u,0.s) -Chars 2499 - 2503 [Qed.] 0. secs (0.u,0.s) -Chars 2505 - 2582 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) -Chars 2583 - 2589 [Proof.] 0. secs (0.u,0.s) -Chars 2592 - 2604 [constructor.] 0. secs (0.u,0.s) -Chars 2607 - 2608 [-] 0. secs (0.u,0.s) -Chars 2609 - 2618 [(red;~red).] 0. secs (0.u,0.s) -Chars 2619 - 2631 [reflexivity.] 0. secs (0.u,0.s) -Chars 2634 - 2635 [-] 0. secs (0.u,0.s) -Chars 2636 - 2645 [(red;~red).] 0.031 secs (0.028u,0.002s) -Chars 2646 - 2659 [now~symmetry.] 0. secs (0.u,0.s) -Chars 2662 - 2663 [-] 0. secs (0.u,0.s) -Chars 2664 - 2673 [(red;~red).] 0. secs (0.u,0.s) -Chars 2674 - 2689 [(intros~*~H1~H2).] 0. secs (0.u,0.s) -Chars 2690 - 2704 [(red~in~H1,~H2).] 0. secs (0.u,0.s) -Chars 2705 - 2726 [(etransitivity;~eauto).] 0. secs (0.u,0.s) -Chars 2727 - 2731 [Qed.] 0. secs (0.u,0.s) -Chars 2733 - 2896 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 2898 - 3023 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) -Chars 3024 - 3030 [Proof.] 0. secs (0.u,0.s) -Chars 3031 - 3043 [reflexivity.] 0. secs (0.u,0.s) -Chars 3044 - 3048 [Qed.] 0. secs (0.u,0.s) -Chars 3050 - 3175 [Lemma~flip_flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 3176 - 3182 [Proof.] 0. secs (0.u,0.s) -Chars 3183 - 3195 [reflexivity.] 0. secs (0.u,0.s) -Chars 3196 - 3200 [Qed.] 0. secs (0.u,0.s) -Chars 3202 - 3363 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) -Chars 3364 - 3370 [Proof.] 0. secs (0.u,0.s) -Chars 3373 - 3456 [(split;~revert~t1~t2;~coinduct...] 0.003 secs (0.003u,0.s) -Chars 3459 - 3460 [-] 0. secs (0.u,0.s) -Chars 3461 - 3498 [(induction~Hrutt;~try~now~cons...] 0.056 secs (0.056u,0.s) -Chars 3503 - 3504 [*] 0. secs (0.u,0.s) -Chars 3505 - 3517 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 3518 - 3532 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3537 - 3538 [*] 0. secs (0.u,0.s) -Chars 3539 - 3551 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 3552 - 3557 [auto.] 0. secs (0.u,0.s) -Chars 3558 - 3574 [(intros~b~a~HAns).] 0. secs (0.u,0.s) -Chars 3575 - 3587 [(cbn~in~HAns).] 0. secs (0.u,0.s) -Chars 3594 - 3619 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) -Chars 3620 - 3634 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3637 - 3638 [-] 0. secs (0.u,0.s) -Chars 3639 - 3676 [(induction~Hrutt;~try~now~cons...] 0.015 secs (0.015u,0.s) -Chars 3681 - 3682 [*] 0. secs (0.u,0.s) -Chars 3683 - 3695 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 3696 - 3710 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3715 - 3716 [*] 0. secs (0.u,0.s) -Chars 3717 - 3729 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 3730 - 3735 [auto.] 0. secs (0.u,0.s) -Chars 3736 - 3752 [(intros~b~a~HAns).] 0. secs (0.u,0.s) -Chars 3753 - 3765 [(cbn~in~HAns).] 0. secs (0.u,0.s) -Chars 3772 - 3797 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) -Chars 3798 - 3812 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3813 - 3817 [Qed.] 0.007 secs (0.007u,0.s) -Chars 3894 - 4150 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) -Chars 4151 - 4157 [Proof.] 0. secs (0.u,0.s) -Chars 4160 - 4229 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) -Chars 4232 - 4412 [(split;~intros~Hrutt;~revert~t...] 0.012 secs (0.012u,0.s) -Chars 4417 - 4449 [1,~4:~(apply~EqRet;~now~apply~...] 0. secs (0.u,0.s) -Chars 4455 - 4487 [1,~3:~(apply~EqTau;~now~apply~...] 0. secs (0.u,0.s) -Chars 4492 - 4493 [*] 0. secs (0.u,0.s) -Chars 4494 - 4506 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 4507 - 4522 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4523 - 4530 [(intros).] 0. secs (0.u,0.s) -Chars 4537 - 4570 [(assert~(H2~:~RAns1~A~B~e1~a~e...] 0. secs (0.u,0.s) -Chars 4577 - 4578 [{] 0. secs (0.u,0.s) -Chars 4579 - 4603 [(erewrite~<-~eq_RAns_iff).] 0. secs (0.u,0.s) -Chars 4604 - 4613 [(apply~H1).] 0. secs (0.u,0.s) -Chars 4614 - 4625 [assumption.] 0. secs (0.u,0.s) -Chars 4626 - 4627 [}] 0. secs (0.u,0.s) -Chars 4634 - 4641 [(intros).] 0. secs (0.u,0.s) -Chars 4642 - 4665 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) -Chars 4666 - 4680 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4685 - 4686 [*] 0. secs (0.u,0.s) -Chars 4687 - 4699 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 4700 - 4715 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4716 - 4723 [(intros).] 0. secs (0.u,0.s) -Chars 4730 - 4763 [(assert~(H2~:~RAns2~A~B~e1~a~e...] 0. secs (0.u,0.s) -Chars 4770 - 4771 [{] 0. secs (0.u,0.s) -Chars 4772 - 4793 [(erewrite~eq_RAns_iff).] 0. secs (0.u,0.s) -Chars 4794 - 4803 [(apply~H1).] 0. secs (0.u,0.s) -Chars 4804 - 4815 [assumption.] 0. secs (0.u,0.s) -Chars 4816 - 4817 [}] 0. secs (0.u,0.s) -Chars 4824 - 4831 [(intros).] 0. secs (0.u,0.s) -Chars 4832 - 4855 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) -Chars 4856 - 4870 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4871 - 4875 [Qed.] 0.009 secs (0.009u,0.s) -Chars 4877 - 5066 [#[global]~Instance~eq_proper_r...] 0.001 secs (0.001u,0.s) -Chars 5067 - 5073 [Proof.] 0. secs (0.u,0.s) -Chars 5076 - 5314 [(split;~revert_until~c;~tower~...] 0.018 secs (0.018u,0.s) -Chars 5317 - 5373 [1-3,~6-8:~(inv~Ht1;~inv~Ht2;~s...] 0.27 secs (0.268u,0.001s) -Chars 5376 - 5377 [+] 0. secs (0.u,0.s) -Chars 5378 - 5386 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5387 - 5399 [constructor.] 0. secs (0.u,0.s) -Chars 5400 - 5417 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5420 - 5421 [+] 0. secs (0.u,0.s) -Chars 5422 - 5430 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 5435 - 5542 [(dependent~destruction~H3;~dep...] 0.012 secs (0.012u,0.s) -Chars 5547 - 5565 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 5566 - 5573 [(intros).] 0. secs (0.u,0.s) -Chars 5574 - 5584 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 5585 - 5595 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5596 - 5607 [(apply~REL0).] 0. secs (0.u,0.s) -Chars 5608 - 5621 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 5624 - 5625 [+] 0. secs (0.u,0.s) -Chars 5626 - 5634 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 5635 - 5647 [constructor.] 0. secs (0.u,0.s) -Chars 5648 - 5665 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5668 - 5669 [+] 0. secs (0.u,0.s) -Chars 5670 - 5678 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 5683 - 5790 [(dependent~destruction~H4;~dep...] 0.012 secs (0.012u,0.s) -Chars 5795 - 5813 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 5814 - 5821 [(intros).] 0. secs (0.u,0.s) -Chars 5822 - 5832 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 5833 - 5843 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5844 - 5855 [(apply~REL0).] 0. secs (0.u,0.s) -Chars 5856 - 5869 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 5872 - 5873 [+] 0. secs (0.u,0.s) -Chars 5874 - 5882 [(inv~Ht1).] 0.028 secs (0.028u,0.s) -Chars 5883 - 5895 [constructor.] 0. secs (0.u,0.s) -Chars 5896 - 5918 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5919 - 5930 [now~unstep.] 0.004 secs (0.004u,0.s) -Chars 5933 - 5934 [+] 0. secs (0.u,0.s) -Chars 5935 - 5943 [(inv~Ht2).] 0.028 secs (0.028u,0.s) -Chars 5944 - 5956 [constructor.] 0. secs (0.u,0.s) -Chars 5957 - 5979 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5980 - 5991 [now~unstep.] 0.004 secs (0.004u,0.s) -Chars 5994 - 5995 [+] 0. secs (0.u,0.s) -Chars 5996 - 6004 [(inv~Ht1).] 0.028 secs (0.028u,0.s) -Chars 6005 - 6017 [constructor.] 0. secs (0.u,0.s) -Chars 6018 - 6040 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6041 - 6052 [now~unstep.] 0.004 secs (0.004u,0.s) -Chars 6055 - 6056 [+] 0. secs (0.u,0.s) -Chars 6057 - 6065 [(inv~Ht2).] 0.03 secs (0.03u,0.s) -Chars 6066 - 6078 [constructor.] 0. secs (0.u,0.s) -Chars 6079 - 6101 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6102 - 6113 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 6114 - 6118 [Qed.] 0.07 secs (0.069u,0.s) -Chars 6120 - 6283 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) -Chars 6284 - 6290 [Proof.] 0. secs (0.u,0.s) -Chars 6293 - 6305 [(unfold~rutt).] 0. secs (0.u,0.s) -Chars 6306 - 6335 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) -Chars 6338 - 6366 [(apply~eq_proper_ruttC;~auto).] 0.001 secs (0.001u,0.s) -Chars 6367 - 6371 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6373 - 6630 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) -Chars 6631 - 6637 [Proof.] 0. secs (0.u,0.s) -Chars 6640 - 6714 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) -Chars 6717 - 6734 [(rewrite~Ht1,~Ht2).] 0.002 secs (0.002u,0.s) -Chars 6735 - 6761 [(apply~rutt_Proper_R;~auto).] 0.001 secs (0.001u,0.s) -Chars 6762 - 6766 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6768 - 6963 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) -Chars 6964 - 6970 [Proof.] 0. secs (0.u,0.s) -Chars 6973 - 7011 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 7014 - 7030 [tower~induction.] 0.003 secs (0.003u,0.s) -Chars 7033 - 7098 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 7101 - 7117 [(rcbn;~intros~EQ).] 0. secs (0.u,0.s) -Chars 7120 - 7149 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 7152 - 7191 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 7194 - 7215 [(induction~EQ;~intros).] 0.006 secs (0.005u,0.s) -Chars 7233 - 7234 [-] 0. secs (0.u,0.s) -Chars 7235 - 7261 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7266 - 7278 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 7279 - 7293 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 7294 - 7309 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7314 - 7349 [(hinduction~EQx~before~ox;~try...] 0.043 secs (0.043u,0.s) -Chars 7354 - 7355 [+] 0. secs (0.u,0.s) -Chars 7356 - 7382 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) -Chars 7383 - 7397 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 7404 - 7416 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 7417 - 7431 [(genret~r2~or2).] 0. secs (0.u,0.s) -Chars 7432 - 7447 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7454 - 7489 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) -Chars 7496 - 7497 [*] 0. secs (0.u,0.s) -Chars 7498 - 7522 [(subst;~intros~[=<-]~?~?).] 0. secs (0.u,0.s) -Chars 7523 - 7535 [constructor.] 0. secs (0.u,0.s) -Chars 7536 - 7541 [auto.] 0. secs (0.u,0.s) -Chars 7548 - 7549 [*] 0. secs (0.u,0.s) -Chars 7550 - 7557 [(intros).] 0. secs (0.u,0.s) -Chars 7558 - 7577 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 7578 - 7598 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) -Chars 7603 - 7604 [+] 0. secs (0.u,0.s) -Chars 7605 - 7619 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 7620 - 7639 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 7640 - 7660 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) -Chars 7678 - 7679 [-] 0. secs (0.u,0.s) -Chars 7680 - 7706 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7711 - 7723 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 7724 - 7738 [(gentau~m1~om1).] 0.001 secs (0.001u,0.s) -Chars 7739 - 7754 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7759 - 7794 [(hinduction~EQx~before~ox;~try...] 0.046 secs (0.046u,0.s) -Chars 7799 - 7800 [+] 0. secs (0.u,0.s) -Chars 7801 - 7818 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) -Chars 7825 - 7837 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 7838 - 7852 [(gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 7853 - 7868 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7875 - 7910 [(hinduction~EQy~before~oy;~try...] 0.045 secs (0.044u,0.s) -Chars 7917 - 7918 [*] 0. secs (0.u,0.s) -Chars 7919 - 7936 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) -Chars 7937 - 7950 [to_rmon_core.] 0. secs (0.u,0.s) -Chars 7951 - 7962 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 7963 - 7968 [rcbn.] 0. secs (0.u,0.s) -Chars 7969 - 7981 [constructor.] 0. secs (0.u,0.s) -Chars 7982 - 7999 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) -Chars 8006 - 8007 [*] 0. secs (0.u,0.s) -Chars 8008 - 8015 [(intros).] 0. secs (0.u,0.s) -Chars 8016 - 8035 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 8036 - 8056 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) -Chars 8061 - 8062 [+] 0. secs (0.u,0.s) -Chars 8063 - 8077 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8078 - 8097 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 8098 - 8118 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) -Chars 8136 - 8137 [-] 0. secs (0.u,0.s) -Chars 8138 - 8164 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 8169 - 8181 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 8182 - 8199 [(genvis~e1~k1~ot1).] 0.001 secs (0.001u,0.s) -Chars 8200 - 8215 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 8220 - 8255 [(hinduction~EQx~before~ox;~try...] 0.048 secs (0.048u,0.s) -Chars 8260 - 8261 [+] 0. secs (0.u,0.s) -Chars 8262 - 8269 [(intros).] 0. secs (0.u,0.s) -Chars 8270 - 8336 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 8343 - 8357 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 8364 - 8376 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 8377 - 8394 [(genvis~e2~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 8395 - 8410 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 8417 - 8452 [(hinduction~EQy~before~oy;~try...] 0.031 secs (0.031u,0.s) -Chars 8459 - 8460 [*] 0. secs (0.u,0.s) -Chars 8461 - 8468 [(intros).] 0. secs (0.u,0.s) -Chars 8469 - 8535 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 8544 - 8562 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 8563 - 8570 [(intros).] 0. secs (0.u,0.s) -Chars 8571 - 8581 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 8582 - 8596 [(apply~(REL~a)).] 0. secs (0.u,0.s) -Chars 8597 - 8612 [(apply~(REL0~b)).] 0. secs (0.u,0.s) -Chars 8613 - 8628 [(apply~H0;~auto).] 0. secs (0.u,0.s) -Chars 8635 - 8636 [*] 0. secs (0.u,0.s) -Chars 8637 - 8644 [(intros).] 0. secs (0.u,0.s) -Chars 8645 - 8664 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 8665 - 8685 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) -Chars 8690 - 8691 [+] 0. secs (0.u,0.s) -Chars 8692 - 8706 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8707 - 8726 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 8727 - 8747 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) -Chars 8766 - 8767 [-] 0. secs (0.u,0.s) -Chars 8768 - 8812 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.005u,0.s) -Chars 8817 - 8825 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 8830 - 8849 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 8854 - 8873 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 8878 - 8929 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 8934 - 8971 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 8990 - 8991 [-] 0. secs (0.u,0.s) -Chars 8992 - 9036 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.006u,0.s) -Chars 9041 - 9049 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 9054 - 9073 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 9078 - 9097 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 9102 - 9153 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 9158 - 9195 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 9196 - 9200 [Qed.] 0.026 secs (0.026u,0.s) -Chars 9202 - 9371 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 9372 - 9378 [Proof.] 0. secs (0.u,0.s) -Chars 9381 - 9393 [(unfold~rutt).] 0. secs (0.u,0.s) -Chars 9394 - 9423 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) -Chars 9426 - 9458 [(apply~euttge_proper_ruttC;~au...] 0.001 secs (0.001u,0.s) -Chars 9459 - 9463 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9465 - 9633 [Lemma~rutt_cong_eutt~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 9634 - 9640 [Proof.] 0. secs (0.u,0.s) -Chars 9643 - 9694 [(intros~*~Hrutt~Heutt;~revert~...] 0. secs (0.u,0.s) -Chars 9697 - 9751 [(coinduction~c~CIH;~icbn;~intr...] 0.001 secs (0.001u,0.s) -Chars 9754 - 9768 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 9771 - 9800 [(rewrite~(itree_eta~t1')~in~*).] 1.597 secs (1.591u,0.005s) -Chars 9803 - 9841 [(remember~(observe~t1)~as~ot1~...] 0. secs (0.u,0.s) -Chars 9844 - 9882 [(remember~(observe~t2)~as~ot2~...] 0. secs (0.u,0.s) -Chars 9885 - 9927 [(move~Hrutt~before~CIH;~revert...] 0. secs (0.u,0.s) -Chars 9930 - 10014 [(induction~Hrutt~as~[r1~r2|~m1...] 0.001 secs (0.001u,0.s) -Chars 10017 - 10018 [-] 0. secs (0.u,0.s) -Chars 10035 - 10050 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10051 - 10065 [(cbn~in~Heutt').] 0. secs (0.u,0.s) -Chars 10070 - 10097 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) -Chars 10098 - 10124 [clear~Hot1'~Hot2'~tt1~tt2.] 0. secs (0.u,0.s) -Chars 10129 - 10168 [(remember~(RetF~r1)~as~oRetL~e...] 0. secs (0.u,0.s) -Chars 10173 - 10208 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) -Chars 10213 - 10214 [+] 0. secs (0.u,0.s) -Chars 10215 - 10226 [(inv~HoRetL).] 0.002 secs (0.002u,0.s) -Chars 10227 - 10243 [now~constructor.] 0. secs (0.u,0.s) -Chars 10248 - 10249 [+] 0. secs (0.u,0.s) -Chars 10250 - 10263 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 10264 - 10283 [now~apply~IHHeutt'.] 0. secs (0.u,0.s) -Chars 10286 - 10287 [-] 0. secs (0.u,0.s) -Chars 10304 - 10319 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10320 - 10334 [(cbn~in~Heutt').] 0. secs (0.u,0.s) -Chars 10339 - 10366 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) -Chars 10367 - 10383 [clear~tt1~Hot1'.] 0. secs (0.u,0.s) -Chars 10388 - 10404 [clear~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 10409 - 10419 [step~in~H.] 0. secs (0.u,0.s) -Chars 10420 - 10430 [rcbn~in~H.] 0. secs (0.u,0.s) -Chars 10435 - 10474 [(remember~(TauF~m1)~as~oTauL~e...] 0. secs (0.u,0.s) -Chars 10479 - 10501 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) -Chars 10506 - 10637 [(induction~Heutt'~~~as~[r1~r2~...] 0.001 secs (0.001u,0.s) -Chars 10642 - 10643 [+] 0. secs (0.u,0.s) -Chars 10672 - 10683 [(inv~HoTauL).] 0.009 secs (0.009u,0.s) -Chars 10684 - 10696 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 10697 - 10715 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) -Chars 10722 - 10723 [*] 0. secs (0.u,0.s) -Chars 10724 - 10734 [(apply~REL).] 0. secs (0.u,0.s) -Chars 10741 - 10742 [*] 0. secs (0.u,0.s) -Chars 10743 - 10755 [(unfold~rutt).] 0. secs (0.u,0.s) -Chars 10756 - 10761 [step.] 0. secs (0.u,0.s) -Chars 10762 - 10770 [exact~H.] 0. secs (0.u,0.s) -Chars 10775 - 10776 [+] 0. secs (0.u,0.s) -Chars 10838 - 10849 [(inv~HoTauL).] 0.015 secs (0.015u,0.s) -Chars 10856 - 10915 [(destruct~(observe~m1)~as~[r1|...] 0.001 secs (0.001u,0.s) -Chars 10922 - 10923 [*] 0. secs (0.u,0.s) -Chars 10950 - 10989 [(remember~(RetF~r1)~as~oRetL~e...] 0.001 secs (0.001u,0.s) -Chars 10998 - 11026 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) -Chars 11035 - 11044 [revert~H.] 0. secs (0.u,0.s) -Chars 11053 - 11098 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) -Chars 11107 - 11109 [**] 0. secs (0.u,0.s) -Chars 11110 - 11121 [(inv~HoRetL).] 0.006 secs (0.006u,0.s) -Chars 11133 - 11146 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 11158 - 11199 [(remember~(RetF~r1)~as~oRetL2~...] 0. secs (0.u,0.s) -Chars 11211 - 11241 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) -Chars 11253 - 11256 [***] 0. secs (0.u,0.s) -Chars 11257 - 11269 [(inv~HoRetL2).] 0.002 secs (0.002u,0.s) -Chars 11270 - 11282 [constructor.] 0. secs (0.u,0.s) -Chars 11283 - 11293 [now~subst.] 0. secs (0.u,0.s) -Chars 11305 - 11308 [***] 0. secs (0.u,0.s) -Chars 11309 - 11322 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 11323 - 11341 [now~apply~IHruttF.] 0. secs (0.u,0.s) -Chars 11350 - 11352 [**] 0. secs (0.u,0.s) -Chars 11353 - 11366 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 11367 - 11390 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) -Chars 11397 - 11398 [*] 0. secs (0.u,0.s) -Chars 11430 - 11466 [(apply~(IHIHHeutt'~m1_body~m2)...] 0. secs (0.u,0.s) -Chars 11475 - 11502 [(apply~ruttF_inv_tau_l~in~H).] 0. secs (0.u,0.s) -Chars 11503 - 11511 [exact~H.] 0. secs (0.u,0.s) -Chars 11518 - 11519 [*] 0. secs (0.u,0.s) -Chars 11549 - 11591 [(remember~(VisF~e1~k1)~as~oVis...] 0.002 secs (0.002u,0.s) -Chars 11600 - 11628 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) -Chars 11637 - 11646 [revert~H.] 0. secs (0.u,0.s) -Chars 11655 - 11700 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) -Chars 11709 - 11711 [**] 0. secs (0.u,0.s) -Chars 11712 - 11761 [(symmetry~in~HoVisL;~dependent...] 0.004 secs (0.004u,0.s) -Chars 11773 - 11786 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 11798 - 11841 [(remember~(VisF~e~k0)~as~oVisL...] 0. secs (0.u,0.s) -Chars 11853 - 11883 [(induction~H;~try~discriminate).] 0.002 secs (0.001u,0.s) -Chars 11895 - 11898 [***] 0. secs (0.u,0.s) -Chars 11899 - 11929 [dependent~destruction~HoVisL2.] 0.004 secs (0.004u,0.s) -Chars 11945 - 11963 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) -Chars 11964 - 11980 [(intros~a~b~HAns).] 0. secs (0.u,0.s) -Chars 11996 - 12018 [(apply~CIH~with~(k0~a)).] 0. secs (0.u,0.s) -Chars 12034 - 12038 [****] 0. secs (0.u,0.s) -Chars 12039 - 12049 [(apply~REL).] 0. secs (0.u,0.s) -Chars 12065 - 12069 [****] 0. secs (0.u,0.s) -Chars 12070 - 12085 [(apply~H0;~auto).] 0. secs (0.u,0.s) -Chars 12097 - 12100 [***] 0. secs (0.u,0.s) -Chars 12101 - 12114 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 12115 - 12135 [(apply~IHruttF;~auto).] 0. secs (0.u,0.s) -Chars 12144 - 12146 [**] 0. secs (0.u,0.s) -Chars 12147 - 12160 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 12161 - 12184 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) -Chars 12189 - 12190 [+] 0. secs (0.u,0.s) -Chars 12220 - 12232 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 12233 - 12251 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) -Chars 12258 - 12259 [*] 0. secs (0.u,0.s) -Chars 12260 - 12293 [(rewrite~<-~tau_eutt~with~(t~:...] 0.001 secs (0.001u,0.s) -Chars 12294 - 12299 [step.] 0.001 secs (0.001u,0.s) -Chars 12300 - 12311 [subst~t1''.] 0. secs (0.u,0.s) -Chars 12312 - 12325 [exact~Heutt'.] 0. secs (0.u,0.s) -Chars 12332 - 12333 [*] 0. secs (0.u,0.s) -Chars 12334 - 12346 [(unfold~rutt).] 0. secs (0.u,0.s) -Chars 12347 - 12352 [step.] 0. secs (0.u,0.s) -Chars 12353 - 12361 [exact~H.] 0. secs (0.u,0.s) -Chars 12364 - 12365 [-] 0. secs (0.u,0.s) -Chars 12382 - 12397 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12398 - 12412 [(cbn~in~Heutt').] 0. secs (0.u,0.s) -Chars 12417 - 12444 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) -Chars 12445 - 12471 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 12476 - 12518 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) -Chars 12523 - 12566 [(induction~Heutt';~try~discrim...] 0.003 secs (0.003u,0.s) -Chars 12571 - 12572 [+] 0. secs (0.u,0.s) -Chars 12573 - 12602 [dependent~destruction~HoVisL.] 0.004 secs (0.004u,0.s) -Chars 12609 - 12627 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) -Chars 12628 - 12644 [(intros~a~b~HAns).] 0. secs (0.u,0.s) -Chars 12651 - 12673 [(apply~CIH~with~(k1~a)).] 0. secs (0.u,0.s) -Chars 12680 - 12681 [*] 0. secs (0.u,0.s) -Chars 12682 - 12692 [(apply~REL).] 0. secs (0.u,0.s) -Chars 12699 - 12700 [*] 0. secs (0.u,0.s) -Chars 12701 - 12716 [(apply~H0;~auto).] 0. secs (0.u,0.s) -Chars 12721 - 12722 [+] 0. secs (0.u,0.s) -Chars 12723 - 12736 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 12737 - 12758 [(apply~IHHeutt';~auto).] 0. secs (0.u,0.s) -Chars 12761 - 12762 [-] 0. secs (0.u,0.s) -Chars 12780 - 12843 [(eapply~IHHrutt~with~(t1~:=~m1...] 0. secs (0.u,0.s) -Chars 12848 - 12881 [(rewrite~<-~tau_eutt~with~(t~:...] 0.001 secs (0.001u,0.s) -Chars 12882 - 12900 [(rewrite~<-~Heutt').] 0. secs (0.u,0.s) -Chars 12905 - 12929 [(rewrite~(itree_eta~tt1)).] 0.001 secs (0.001u,0.s) -Chars 12930 - 12947 [(rewrite~<-~Hot1').] 0. secs (0.u,0.s) -Chars 12948 - 12960 [reflexivity.] 0. secs (0.u,0.s) -Chars 12963 - 12964 [-] 0. secs (0.u,0.s) -Chars 12982 - 12995 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 12996 - 13018 [(eapply~IHHrutt;~eauto).] 0. secs (0.u,0.s) -Chars 13019 - 13023 [Qed.] 0.037 secs (0.037u,0.s) -Chars 13025 - 13282 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) -Chars 13283 - 13289 [Proof.] 0. secs (0.u,0.s) -Chars 13292 - 13363 [(intros~REv~REv2~HREv~RAns~RAn...] 0. secs (0.u,0.s) -Chars 13366 - 13437 [(rewrite~<-~HREv,~<-~HRAns,~<-...] 0.011 secs (0.011u,0.s) -Chars 13440 - 13460 [(split;~intros~Hrutt).] 0. secs (0.u,0.s) -Chars 13463 - 13464 [-] 0. secs (0.u,0.s) -Chars 13465 - 13494 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 13499 - 13522 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) -Chars 13523 - 13552 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) -Chars 13555 - 13556 [-] 0. secs (0.u,0.s) -Chars 13557 - 13578 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) -Chars 13583 - 13612 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 13617 - 13640 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) -Chars 13641 - 13670 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) -Chars 13671 - 13675 [Qed.] 0.003 secs (0.003u,0.s) -Chars 13714 - 13731 [Section~RuttBind.] 0. secs (0.u,0.s) -Chars 13732 - 13763 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 13764 - 13787 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) -Chars 13788 - 13846 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 13847 - 13916 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) -Chars 13917 - 13949 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 13951 - 13964 [End~RuttBind.] 0. secs (0.u,0.s) -Chars 13966 - 14339 [Lemma~rutt_bind~{E1}~{E2}~{R1}...] 0.001 secs (0.001u,0.s) -Chars 14340 - 14346 [Proof.] 0. secs (0.u,0.s) -Chars 14349 - 14362 [revert~t1~t2.] 0. secs (0.u,0.s) -Chars 14363 - 14381 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 14382 - 14387 [icbn.] 0. secs (0.u,0.s) -Chars 14388 - 14411 [(intros~t1~t2~Hrutt~EQK).] 0. secs (0.u,0.s) -Chars 14414 - 14428 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 14431 - 14445 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 14446 - 14460 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 14463 - 14499 [(hinduction~Hrutt~before~CIH;~...] 0.001 secs (0.001u,0.s) -Chars 14502 - 14503 [-] 0. secs (0.u,0.s) -Chars 14518 - 14549 [(rewrite~!observe_bind;~simpobs).] 0.005 secs (0.005u,0.s) -Chars 14554 - 14577 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) -Chars 14583 - 14595 [step~in~EQK.] 0. secs (0.u,0.s) -Chars 14596 - 14610 [now~do~2~step.] 0.002 secs (0.002u,0.s) -Chars 14613 - 14614 [-] 0. secs (0.u,0.s) -Chars 14629 - 14660 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) -Chars 14665 - 14677 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 14678 - 14694 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 14697 - 14698 [-] 0. secs (0.u,0.s) -Chars 14713 - 14744 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) -Chars 14749 - 14767 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) -Chars 14768 - 14784 [(intros~a~b~HAns).] 0. secs (0.u,0.s) -Chars 14789 - 14805 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 14806 - 14819 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 14823 - 14824 [-] 0. secs (0.u,0.s) -Chars 14840 - 14870 [(rewrite~observe_bind;~simpobs).] 0.003 secs (0.003u,0.s) -Chars 14875 - 14888 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 14889 - 14909 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) -Chars 14912 - 14913 [-] 0. secs (0.u,0.s) -Chars 14929 - 14971 [(setoid_rewrite~observe_bind~a...] 0.025 secs (0.025u,0.s) -Chars 14976 - 14989 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 14990 - 15010 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) -Chars 15011 - 15015 [Qed.] 0.008 secs (0.008u,0.s) -Chars 15018 - 15035 [Section~RuttMrec.] 0. secs (0.u,0.s) -Chars 15038 - 15145 [Context~(D1~D2~E1~E2~:~Type~->...] 0. secs (0.u,0.s) -Chars 15148 - 15254 [Context~(RPre~:~prerel~E1~E2)~...] 0. secs (0.u,0.s) -Chars 15258 - 15516 [Context~~(Hbodies~:~forall~A~B...] 0.001 secs (0.001u,0.s) -Chars 15520 - 15800 [Lemma~interp_mrec_rutt~(R1~R2~...] 0.001 secs (0.001u,0.s) -Chars 15803 - 15809 [Proof.] 0. secs (0.u,0.s) -Chars 15814 - 15832 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 15833 - 15838 [icbn.] 0. secs (0.u,0.s) -Chars 15844 - 15862 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) -Chars 15863 - 15876 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 15882 - 15911 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 15912 - 15941 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 15946 - 15989 [(hinduction~Ht12~before~R1;~in...] 0.003 secs (0.003u,0.s) -Chars 15995 - 15996 [-] 0. secs (0.u,0.s) -Chars 15997 - 16029 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16030 - 16053 [(rewrite~Heqot1,~Heqot2).] 0.187 secs (0.186u,0.s) -Chars 16060 - 16094 [(repeat~rewrite~unfold_interp_...] 0.188 secs (0.187u,0.s) -Chars 16095 - 16099 [(cbn).] 0. secs (0.u,0.s) -Chars 16100 - 16116 [now~constructor.] 0. secs (0.u,0.s) -Chars 16123 - 16124 [-] 0. secs (0.u,0.s) -Chars 16125 - 16157 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16158 - 16181 [(rewrite~Heqot1,~Heqot2).] 0.185 secs (0.185u,0.s) -Chars 16188 - 16222 [(repeat~rewrite~unfold_interp_...] 0.189 secs (0.188u,0.s) -Chars 16223 - 16227 [(cbn).] 0. secs (0.u,0.s) -Chars 16228 - 16255 [(constructor;~now~apply~CIH).] 0. secs (0.u,0.s) -Chars 16261 - 16262 [-] 0. secs (0.u,0.s) -Chars 16263 - 16295 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16296 - 16319 [(rewrite~Heqot1,~Heqot2).] 0.19 secs (0.19u,0.s) -Chars 16326 - 16360 [(repeat~rewrite~unfold_interp_...] 0.193 secs (0.193u,0.s) -Chars 16361 - 16365 [(cbn).] 0. secs (0.u,0.s) -Chars 16372 - 16378 [(inv~H).] 0.018 secs (0.018u,0.s) -Chars 16385 - 16386 [+] 0. secs (0.u,0.s) -Chars 16387 - 16413 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) -Chars 16414 - 16420 [subst.] 0.001 secs (0.001u,0.s) -Chars 16421 - 16433 [constructor.] 0. secs (0.u,0.s) -Chars 16442 - 16453 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 16464 - 16488 [(eapply~rutt_bind;~eauto).] 0.002 secs (0.002u,0.s) -Chars 16497 - 16504 [(intros).] 0. secs (0.u,0.s) -Chars 16505 - 16514 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 16515 - 16528 [clear~-~H~H0.] 0. secs (0.u,0.s) -Chars 16529 - 16538 [(apply~H0).] 0. secs (0.u,0.s) -Chars 16539 - 16555 [now~constructor.] 0. secs (0.u,0.s) -Chars 16562 - 16563 [+] 0. secs (0.u,0.s) -Chars 16564 - 16590 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) -Chars 16591 - 16597 [subst.] 0.001 secs (0.001u,0.s) -Chars 16598 - 16610 [constructor.] 0. secs (0.u,0.s) -Chars 16619 - 16624 [auto.] 0. secs (0.u,0.s) -Chars 16625 - 16632 [(intros).] 0. secs (0.u,0.s) -Chars 16633 - 16659 [(repeat~rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) -Chars 16660 - 16671 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 16681 - 16694 [clear~-~H0~H.] 0. secs (0.u,0.s) -Chars 16695 - 16704 [(apply~H0).] 0. secs (0.u,0.s) -Chars 16705 - 16721 [now~constructor.] 0. secs (0.u,0.s) -Chars 16727 - 16728 [-] 0. secs (0.u,0.s) -Chars 16729 - 16753 [(apply~simpobs~in~Heqot1).] 0. secs (0.u,0.s) -Chars 16754 - 16769 [(rewrite~Heqot1).] 0.097 secs (0.097u,0.s) -Chars 16770 - 16802 [(rewrite~unfold_interp_mrec~~a...] 0.099 secs (0.098u,0.s) -Chars 16810 - 16814 [(cbn).] 0. secs (0.u,0.s) -Chars 16815 - 16827 [constructor.] 0. secs (0.u,0.s) -Chars 16828 - 16845 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 16851 - 16852 [-] 0. secs (0.u,0.s) -Chars 16853 - 16877 [(apply~simpobs~in~Heqot2).] 0. secs (0.u,0.s) -Chars 16878 - 16893 [(rewrite~Heqot2).] 0.101 secs (0.101u,0.s) -Chars 16894 - 16933 [setoid_rewrite~unfold_interp_m...] 0.115 secs (0.114u,0.s) -Chars 16940 - 16944 [(cbn).] 0. secs (0.u,0.s) -Chars 16945 - 16957 [constructor.] 0. secs (0.u,0.s) -Chars 16958 - 16975 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 16979 - 16983 [Qed.] 0.024 secs (0.024u,0.s) -Chars 16987 - 17182 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) -Chars 17185 - 17191 [Proof.] 0. secs (0.u,0.s) -Chars 17196 - 17203 [(intros).] 0. secs (0.u,0.s) -Chars 17204 - 17227 [(apply~interp_mrec_rutt).] 0. secs (0.u,0.s) -Chars 17228 - 17233 [auto.] 0. secs (0.u,0.s) -Chars 17236 - 17240 [Qed.] 0. secs (0.u,0.s) -Chars 17242 - 17255 [End~RuttMrec.] 0.001 secs (0.001u,0.s) +Chars 346 - 382 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) +Chars 385 - 461 [From~Stdlib~Require~Import~Pro...] 0.006 secs (0.003u,0.002s) +Chars 463 - 581 [From~ITree~Require~Import~ITre...] 0.227 secs (0.203u,0.023s) +Chars 632 - 844 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.003 secs (0.003u,0.s) +Chars 845 - 851 [Proof.] 0. secs (0.u,0.s) +Chars 854 - 861 [(intros).] 0. secs (0.u,0.s) +Chars 862 - 883 [(apply~rutt_Vis;~auto).] 0. secs (0.u,0.s) +Chars 886 - 893 [(intros).] 0. secs (0.u,0.s) +Chars 894 - 915 [(apply~rutt_Ret;~auto).] 0. secs (0.u,0.s) +Chars 916 - 920 [Qed.] 0.002 secs (0.001u,0.s) +Chars 1139 - 1271 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) +Chars 1273 - 1348 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) +Chars 1349 - 1355 [Proof.] 0. secs (0.u,0.s) +Chars 1358 - 1370 [constructor.] 0. secs (0.u,0.s) +Chars 1373 - 1374 [-] 0. secs (0.u,0.s) +Chars 1375 - 1379 [(red).] 0. secs (0.u,0.s) +Chars 1380 - 1384 [(red).] 0. secs (0.u,0.s) +Chars 1385 - 1397 [reflexivity.] 0. secs (0.u,0.s) +Chars 1400 - 1401 [-] 0. secs (0.u,0.s) +Chars 1402 - 1406 [(red).] 0. secs (0.u,0.s) +Chars 1407 - 1418 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 1419 - 1428 [(red~in~H).] 0. secs (0.u,0.s) +Chars 1429 - 1433 [(red).] 0. secs (0.u,0.s) +Chars 1434 - 1447 [now~symmetry.] 0. secs (0.u,0.s) +Chars 1450 - 1451 [-] 0. secs (0.u,0.s) +Chars 1452 - 1456 [(hnf).] 0. secs (0.u,0.s) +Chars 1457 - 1472 [(intros~*~H1~H2).] 0. secs (0.u,0.s) +Chars 1473 - 1487 [(red~in~H1,~H2).] 0. secs (0.u,0.s) +Chars 1488 - 1492 [(red).] 0. secs (0.u,0.s) +Chars 1493 - 1514 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 1515 - 1519 [Qed.] 0. secs (0.u,0.s) +Chars 1521 - 1641 [Definition~flip_REv~{E1~E2~:~T...] 0. secs (0.u,0.s) +Chars 1643 - 1725 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) +Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) +Chars 1733 - 1745 [reflexivity.] 0. secs (0.u,0.s) +Chars 1746 - 1750 [Qed.] 0. secs (0.u,0.s) +Chars 1873 - 2043 [Definition~RAns_pair~E1~E2~~~(...] 0.001 secs (0.u,0.s) +Chars 2045 - 2172 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) +Chars 2173 - 2179 [Proof.] 0. secs (0.u,0.s) +Chars 2180 - 2192 [reflexivity.] 0. secs (0.u,0.s) +Chars 2193 - 2197 [Qed.] 0. secs (0.u,0.s) +Chars 2199 - 2366 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) +Chars 2368 - 2509 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) +Chars 2510 - 2516 [Proof.] 0. secs (0.u,0.s) +Chars 2517 - 2526 [(intros~*).] 0. secs (0.u,0.s) +Chars 2527 - 2554 [(rewrite~<-~!RAns_pair_iff).] 0.004 secs (0.003u,0.s) +Chars 2555 - 2570 [(split;~apply~H).] 0. secs (0.u,0.s) +Chars 2571 - 2575 [Qed.] 0.001 secs (0.u,0.s) +Chars 2577 - 2654 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) +Chars 2655 - 2661 [Proof.] 0. secs (0.u,0.s) +Chars 2664 - 2676 [constructor.] 0. secs (0.u,0.s) +Chars 2679 - 2680 [-] 0. secs (0.u,0.s) +Chars 2681 - 2690 [(red;~red).] 0. secs (0.u,0.s) +Chars 2691 - 2703 [reflexivity.] 0. secs (0.u,0.s) +Chars 2706 - 2707 [-] 0. secs (0.u,0.s) +Chars 2708 - 2717 [(red;~red).] 0. secs (0.u,0.s) +Chars 2718 - 2731 [now~symmetry.] 0. secs (0.u,0.s) +Chars 2734 - 2735 [-] 0. secs (0.u,0.s) +Chars 2736 - 2745 [(red;~red).] 0. secs (0.u,0.s) +Chars 2746 - 2761 [(intros~*~H1~H2).] 0. secs (0.u,0.s) +Chars 2762 - 2776 [(red~in~H1,~H2).] 0. secs (0.u,0.s) +Chars 2777 - 2798 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 2799 - 2803 [Qed.] 0. secs (0.u,0.s) +Chars 2805 - 2968 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 2970 - 3095 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) +Chars 3096 - 3102 [Proof.] 0. secs (0.u,0.s) +Chars 3103 - 3115 [reflexivity.] 0. secs (0.u,0.s) +Chars 3116 - 3120 [Qed.] 0. secs (0.u,0.s) +Chars 3122 - 3247 [Lemma~flip_flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 3248 - 3254 [Proof.] 0. secs (0.u,0.s) +Chars 3255 - 3267 [reflexivity.] 0. secs (0.u,0.s) +Chars 3268 - 3272 [Qed.] 0. secs (0.u,0.s) +Chars 3274 - 3435 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) +Chars 3436 - 3442 [Proof.] 0. secs (0.u,0.s) +Chars 3445 - 3528 [(split;~revert~t1~t2;~coinduct...] 0.003 secs (0.003u,0.s) +Chars 3531 - 3532 [-] 0. secs (0.u,0.s) +Chars 3533 - 3570 [(induction~Hrutt;~try~now~cons...] 0.057 secs (0.056u,0.s) +Chars 3575 - 3576 [*] 0. secs (0.u,0.s) +Chars 3577 - 3589 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 3590 - 3604 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3609 - 3610 [*] 0. secs (0.u,0.s) +Chars 3611 - 3623 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 3624 - 3629 [auto.] 0. secs (0.u,0.s) +Chars 3630 - 3646 [(intros~b~a~HAns).] 0. secs (0.u,0.s) +Chars 3647 - 3659 [(cbn~in~HAns).] 0. secs (0.u,0.s) +Chars 3666 - 3691 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) +Chars 3692 - 3706 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3709 - 3710 [-] 0. secs (0.u,0.s) +Chars 3711 - 3748 [(induction~Hrutt;~try~now~cons...] 0.021 secs (0.018u,0.002s) +Chars 3753 - 3754 [*] 0. secs (0.u,0.s) +Chars 3755 - 3767 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 3768 - 3782 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3787 - 3788 [*] 0. secs (0.u,0.s) +Chars 3789 - 3801 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 3802 - 3807 [auto.] 0. secs (0.u,0.s) +Chars 3808 - 3824 [(intros~b~a~HAns).] 0. secs (0.u,0.s) +Chars 3825 - 3837 [(cbn~in~HAns).] 0. secs (0.u,0.s) +Chars 3844 - 3869 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) +Chars 3870 - 3884 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 3885 - 3889 [Qed.] 0.01 secs (0.009u,0.001s) +Chars 3966 - 4222 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) +Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) +Chars 4232 - 4301 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) +Chars 4304 - 4484 [(split;~intros~Hrutt;~revert~t...] 0.014 secs (0.013u,0.s) +Chars 4489 - 4521 [1,~4:~(apply~EqRet;~now~apply~...] 0.001 secs (0.u,0.s) +Chars 4527 - 4559 [1,~3:~(apply~EqTau;~now~apply~...] 0. secs (0.u,0.s) +Chars 4564 - 4565 [*] 0. secs (0.u,0.s) +Chars 4566 - 4578 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 4579 - 4594 [now~apply~HREv.] 0.001 secs (0.u,0.s) +Chars 4595 - 4602 [(intros).] 0. secs (0.u,0.s) +Chars 4609 - 4642 [(assert~(H2~:~RAns1~A~B~e1~a~e...] 0. secs (0.u,0.s) +Chars 4649 - 4650 [{] 0. secs (0.u,0.s) +Chars 4651 - 4675 [(erewrite~<-~eq_RAns_iff).] 0.001 secs (0.u,0.s) +Chars 4676 - 4685 [(apply~H1).] 0. secs (0.u,0.s) +Chars 4686 - 4697 [assumption.] 0. secs (0.u,0.s) +Chars 4698 - 4699 [}] 0. secs (0.u,0.s) +Chars 4706 - 4713 [(intros).] 0. secs (0.u,0.s) +Chars 4714 - 4737 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) +Chars 4738 - 4752 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4757 - 4758 [*] 0. secs (0.u,0.s) +Chars 4759 - 4771 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 4772 - 4787 [now~apply~HREv.] 0. secs (0.u,0.s) +Chars 4788 - 4795 [(intros).] 0. secs (0.u,0.s) +Chars 4802 - 4835 [(assert~(H2~:~RAns2~A~B~e1~a~e...] 0. secs (0.u,0.s) +Chars 4842 - 4843 [{] 0. secs (0.u,0.s) +Chars 4844 - 4865 [(erewrite~eq_RAns_iff).] 0.001 secs (0.u,0.s) +Chars 4866 - 4875 [(apply~H1).] 0. secs (0.u,0.s) +Chars 4876 - 4887 [assumption.] 0. secs (0.u,0.s) +Chars 4888 - 4889 [}] 0. secs (0.u,0.s) +Chars 4896 - 4903 [(intros).] 0. secs (0.u,0.s) +Chars 4904 - 4927 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) +Chars 4928 - 4942 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4943 - 4947 [Qed.] 0.01 secs (0.01u,0.s) +Chars 4949 - 5138 [#[global]~Instance~eq_proper_r...] 0.001 secs (0.001u,0.s) +Chars 5139 - 5145 [Proof.] 0. secs (0.u,0.s) +Chars 5148 - 5386 [(split;~revert_until~c;~tower~...] 0.022 secs (0.022u,0.s) +Chars 5389 - 5445 [1-3,~6-8:~(inv~Ht1;~inv~Ht2;~s...] 0.28 secs (0.277u,0.001s) +Chars 5448 - 5449 [+] 0. secs (0.u,0.s) +Chars 5450 - 5458 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5459 - 5471 [constructor.] 0. secs (0.u,0.s) +Chars 5472 - 5489 [(eapply~IH;~eauto).] 0.001 secs (0.u,0.s) +Chars 5492 - 5493 [+] 0. secs (0.u,0.s) +Chars 5494 - 5502 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 5507 - 5614 [(dependent~destruction~H3;~dep...] 0.012 secs (0.012u,0.s) +Chars 5619 - 5637 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 5638 - 5645 [(intros).] 0. secs (0.u,0.s) +Chars 5646 - 5656 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 5657 - 5667 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5668 - 5679 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 5680 - 5693 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 5696 - 5697 [+] 0. secs (0.u,0.s) +Chars 5698 - 5706 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 5707 - 5719 [constructor.] 0. secs (0.u,0.s) +Chars 5720 - 5737 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5740 - 5741 [+] 0. secs (0.u,0.s) +Chars 5742 - 5750 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 5755 - 5862 [(dependent~destruction~H4;~dep...] 0.013 secs (0.012u,0.s) +Chars 5867 - 5885 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 5886 - 5893 [(intros).] 0. secs (0.u,0.s) +Chars 5894 - 5904 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 5905 - 5915 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5916 - 5927 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 5928 - 5941 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 5944 - 5945 [+] 0. secs (0.u,0.s) +Chars 5946 - 5954 [(inv~Ht1).] 0.027 secs (0.027u,0.s) +Chars 5955 - 5967 [constructor.] 0. secs (0.u,0.s) +Chars 5968 - 5990 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5991 - 6002 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 6005 - 6006 [+] 0. secs (0.u,0.s) +Chars 6007 - 6015 [(inv~Ht2).] 0.029 secs (0.029u,0.s) +Chars 6016 - 6028 [constructor.] 0. secs (0.u,0.s) +Chars 6029 - 6051 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 6052 - 6063 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 6066 - 6067 [+] 0. secs (0.u,0.s) +Chars 6068 - 6076 [(inv~Ht1).] 0.028 secs (0.028u,0.s) +Chars 6077 - 6089 [constructor.] 0. secs (0.u,0.s) +Chars 6090 - 6112 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 6113 - 6124 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 6127 - 6128 [+] 0. secs (0.u,0.s) +Chars 6129 - 6137 [(inv~Ht2).] 0.03 secs (0.03u,0.s) +Chars 6138 - 6150 [constructor.] 0. secs (0.u,0.s) +Chars 6151 - 6173 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 6174 - 6185 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 6186 - 6190 [Qed.] 0.075 secs (0.074u,0.s) +Chars 6192 - 6355 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) +Chars 6356 - 6362 [Proof.] 0. secs (0.u,0.s) +Chars 6365 - 6377 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 6378 - 6407 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) +Chars 6410 - 6438 [(apply~eq_proper_ruttC;~auto).] 0.001 secs (0.001u,0.s) +Chars 6439 - 6443 [Qed.] 0. secs (0.u,0.s) +Chars 6445 - 6702 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) +Chars 6703 - 6709 [Proof.] 0. secs (0.u,0.s) +Chars 6712 - 6786 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) +Chars 6789 - 6806 [(rewrite~Ht1,~Ht2).] 0.002 secs (0.002u,0.s) +Chars 6807 - 6833 [(apply~rutt_Proper_R;~auto).] 0.001 secs (0.001u,0.s) +Chars 6834 - 6838 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6840 - 7035 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 7036 - 7042 [Proof.] 0. secs (0.u,0.s) +Chars 7045 - 7083 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 7086 - 7102 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 7105 - 7170 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 7173 - 7189 [(rcbn;~intros~EQ).] 0. secs (0.u,0.s) +Chars 7192 - 7221 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) +Chars 7224 - 7263 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 7266 - 7287 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) +Chars 7305 - 7306 [-] 0. secs (0.u,0.s) +Chars 7307 - 7333 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 7338 - 7350 [(genobs~x~ox).] 0.006 secs (0.005u,0.s) +Chars 7351 - 7365 [(genret~r1~or1).] 0. secs (0.u,0.s) +Chars 7366 - 7381 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 7386 - 7421 [(hinduction~EQx~before~ox;~try...] 0.043 secs (0.043u,0.s) +Chars 7426 - 7427 [+] 0. secs (0.u,0.s) +Chars 7428 - 7454 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) +Chars 7455 - 7469 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 7476 - 7488 [(genobs~y~oy).] 0. secs (0.u,0.s) +Chars 7489 - 7503 [(genret~r2~or2).] 0. secs (0.u,0.s) +Chars 7504 - 7519 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 7526 - 7561 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) +Chars 7568 - 7569 [*] 0. secs (0.u,0.s) +Chars 7570 - 7594 [(subst;~intros~[=<-]~?~?).] 0. secs (0.u,0.s) +Chars 7595 - 7607 [constructor.] 0. secs (0.u,0.s) +Chars 7608 - 7613 [auto.] 0. secs (0.u,0.s) +Chars 7620 - 7621 [*] 0. secs (0.u,0.s) +Chars 7622 - 7629 [(intros).] 0. secs (0.u,0.s) +Chars 7630 - 7649 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 7650 - 7670 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) +Chars 7675 - 7676 [+] 0. secs (0.u,0.s) +Chars 7677 - 7691 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 7692 - 7711 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 7712 - 7732 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) +Chars 7750 - 7751 [-] 0. secs (0.u,0.s) +Chars 7752 - 7778 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 7783 - 7795 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 7796 - 7810 [(gentau~m1~om1).] 0.001 secs (0.001u,0.s) +Chars 7811 - 7826 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 7831 - 7866 [(hinduction~EQx~before~ox;~try...] 0.047 secs (0.047u,0.s) +Chars 7871 - 7872 [+] 0. secs (0.u,0.s) +Chars 7873 - 7890 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) +Chars 7897 - 7909 [(genobs~y~oy).] 0. secs (0.u,0.s) +Chars 7910 - 7924 [(gentau~m2~om2).] 0.001 secs (0.001u,0.s) +Chars 7925 - 7940 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 7947 - 7982 [(hinduction~EQy~before~oy;~try...] 0.043 secs (0.043u,0.s) +Chars 7989 - 7990 [*] 0. secs (0.u,0.s) +Chars 7991 - 8008 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) +Chars 8009 - 8022 [to_rmon_core.] 0. secs (0.u,0.s) +Chars 8023 - 8034 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 8035 - 8040 [rcbn.] 0. secs (0.u,0.s) +Chars 8041 - 8053 [constructor.] 0. secs (0.u,0.s) +Chars 8054 - 8071 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8078 - 8079 [*] 0. secs (0.u,0.s) +Chars 8080 - 8087 [(intros).] 0. secs (0.u,0.s) +Chars 8088 - 8107 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 8108 - 8128 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) +Chars 8133 - 8134 [+] 0. secs (0.u,0.s) +Chars 8135 - 8149 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 8150 - 8169 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 8170 - 8190 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) +Chars 8208 - 8209 [-] 0. secs (0.u,0.s) +Chars 8210 - 8236 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 8241 - 8253 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 8254 - 8271 [(genvis~e1~k1~ot1).] 0.001 secs (0.001u,0.s) +Chars 8272 - 8287 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 8292 - 8327 [(hinduction~EQx~before~ox;~try...] 0.049 secs (0.048u,0.s) +Chars 8332 - 8333 [+] 0. secs (0.u,0.s) +Chars 8334 - 8341 [(intros).] 0. secs (0.u,0.s) +Chars 8342 - 8408 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 8415 - 8429 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 8436 - 8448 [(genobs~y~oy).] 0. secs (0.u,0.s) +Chars 8449 - 8466 [(genvis~e2~k2~ot2).] 0.001 secs (0.001u,0.s) +Chars 8467 - 8482 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 8489 - 8524 [(hinduction~EQy~before~oy;~try...] 0.031 secs (0.031u,0.s) +Chars 8531 - 8532 [*] 0. secs (0.u,0.s) +Chars 8533 - 8540 [(intros).] 0. secs (0.u,0.s) +Chars 8541 - 8607 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 8616 - 8634 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8635 - 8642 [(intros).] 0. secs (0.u,0.s) +Chars 8643 - 8653 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 8654 - 8668 [(apply~(REL~a)).] 0. secs (0.u,0.s) +Chars 8669 - 8684 [(apply~(REL0~b)).] 0. secs (0.u,0.s) +Chars 8685 - 8700 [(apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 8707 - 8708 [*] 0. secs (0.u,0.s) +Chars 8709 - 8716 [(intros).] 0. secs (0.u,0.s) +Chars 8717 - 8736 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 8737 - 8757 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) +Chars 8762 - 8763 [+] 0. secs (0.u,0.s) +Chars 8764 - 8778 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 8779 - 8798 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 8799 - 8819 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) +Chars 8838 - 8839 [-] 0. secs (0.u,0.s) +Chars 8840 - 8884 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 8889 - 8897 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 8902 - 8921 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 8926 - 8945 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8950 - 9001 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 9006 - 9043 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 9062 - 9063 [-] 0. secs (0.u,0.s) +Chars 9064 - 9108 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.006u,0.s) +Chars 9113 - 9121 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 9126 - 9145 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 9150 - 9169 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 9174 - 9225 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 9230 - 9267 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 9268 - 9272 [Qed.] 0.026 secs (0.026u,0.s) +Chars 9274 - 9443 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 9444 - 9450 [Proof.] 0. secs (0.u,0.s) +Chars 9453 - 9465 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 9466 - 9495 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) +Chars 9498 - 9530 [(apply~euttge_proper_ruttC;~au...] 0.001 secs (0.001u,0.s) +Chars 9531 - 9535 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9537 - 9705 [Lemma~rutt_cong_eutt~{E1}~{E2}...] 0. secs (0.u,0.s) +Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) +Chars 9715 - 9766 [(intros~*~Hrutt~Heutt;~revert~...] 0. secs (0.u,0.s) +Chars 9769 - 9823 [(coinduction~c~CIH;~icbn;~intr...] 0.001 secs (0.001u,0.s) +Chars 9826 - 9840 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 9843 - 9876 [(rewrite~(itree_eta~t1')~in~He...] 0.03 secs (0.03u,0.s) +Chars 9879 - 9917 [(remember~(observe~t1)~as~ot1~...] 0. secs (0.u,0.s) +Chars 9920 - 9958 [(remember~(observe~t2)~as~ot2~...] 0. secs (0.u,0.s) +Chars 9961 - 10003 [(move~Hrutt~before~CIH;~revert...] 0. secs (0.u,0.s) +Chars 10006 - 10090 [(induction~Hrutt~as~[r1~r2|~m1...] 0.001 secs (0.001u,0.s) +Chars 10093 - 10094 [-] 0. secs (0.u,0.s) +Chars 10111 - 10126 [step~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10127 - 10141 [(cbn~in~Heutt').] 0. secs (0.u,0.s) +Chars 10146 - 10173 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) +Chars 10174 - 10200 [clear~Hot1'~Hot2'~tt1~tt2.] 0. secs (0.u,0.s) +Chars 10205 - 10244 [(remember~(RetF~r1)~as~oRetL~e...] 0. secs (0.u,0.s) +Chars 10249 - 10284 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) +Chars 10289 - 10290 [+] 0. secs (0.u,0.s) +Chars 10291 - 10302 [(inv~HoRetL).] 0.003 secs (0.003u,0.s) +Chars 10303 - 10319 [now~constructor.] 0. secs (0.u,0.s) +Chars 10324 - 10325 [+] 0. secs (0.u,0.s) +Chars 10326 - 10339 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 10340 - 10359 [now~apply~IHHeutt'.] 0. secs (0.u,0.s) +Chars 10362 - 10363 [-] 0. secs (0.u,0.s) +Chars 10380 - 10395 [step~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10396 - 10410 [(cbn~in~Heutt').] 0. secs (0.u,0.s) +Chars 10415 - 10442 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) +Chars 10443 - 10459 [clear~tt1~Hot1'.] 0. secs (0.u,0.s) +Chars 10464 - 10480 [clear~tt2~Hot2'.] 0. secs (0.u,0.s) +Chars 10485 - 10495 [step~in~H.] 0. secs (0.u,0.s) +Chars 10496 - 10506 [rcbn~in~H.] 0. secs (0.u,0.s) +Chars 10511 - 10550 [(remember~(TauF~m1)~as~oTauL~e...] 0. secs (0.u,0.s) +Chars 10555 - 10577 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) +Chars 10582 - 10713 [(induction~Heutt'~~~as~[r1~r2~...] 0.002 secs (0.001u,0.s) +Chars 10718 - 10719 [+] 0. secs (0.u,0.s) +Chars 10748 - 10759 [(inv~HoTauL).] 0.009 secs (0.009u,0.s) +Chars 10760 - 10772 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 10773 - 10791 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) +Chars 10798 - 10799 [*] 0. secs (0.u,0.s) +Chars 10800 - 10810 [(apply~REL).] 0. secs (0.u,0.s) +Chars 10817 - 10818 [*] 0. secs (0.u,0.s) +Chars 10819 - 10831 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 10832 - 10837 [step.] 0. secs (0.u,0.s) +Chars 10838 - 10846 [exact~H.] 0. secs (0.u,0.s) +Chars 10851 - 10852 [+] 0. secs (0.u,0.s) +Chars 10914 - 10925 [(inv~HoTauL).] 0.016 secs (0.016u,0.s) +Chars 10932 - 10991 [(destruct~(observe~m1)~as~[r1|...] 0.001 secs (0.001u,0.s) +Chars 10998 - 10999 [*] 0. secs (0.u,0.s) +Chars 11026 - 11065 [(remember~(RetF~r1)~as~oRetL~e...] 0.001 secs (0.001u,0.s) +Chars 11074 - 11102 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) +Chars 11111 - 11120 [revert~H.] 0. secs (0.u,0.s) +Chars 11129 - 11174 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) +Chars 11183 - 11185 [**] 0. secs (0.u,0.s) +Chars 11186 - 11197 [(inv~HoRetL).] 0.006 secs (0.006u,0.s) +Chars 11209 - 11222 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 11234 - 11275 [(remember~(RetF~r1)~as~oRetL2~...] 0. secs (0.u,0.s) +Chars 11287 - 11317 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) +Chars 11329 - 11332 [***] 0. secs (0.u,0.s) +Chars 11333 - 11345 [(inv~HoRetL2).] 0.003 secs (0.003u,0.s) +Chars 11346 - 11358 [constructor.] 0. secs (0.u,0.s) +Chars 11359 - 11369 [now~subst.] 0. secs (0.u,0.s) +Chars 11381 - 11384 [***] 0. secs (0.u,0.s) +Chars 11385 - 11398 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 11399 - 11417 [now~apply~IHruttF.] 0. secs (0.u,0.s) +Chars 11426 - 11428 [**] 0. secs (0.u,0.s) +Chars 11429 - 11442 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 11443 - 11466 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) +Chars 11473 - 11474 [*] 0. secs (0.u,0.s) +Chars 11506 - 11542 [(apply~(IHIHHeutt'~m1_body~m2)...] 0. secs (0.u,0.s) +Chars 11551 - 11578 [(apply~ruttF_inv_tau_l~in~H).] 0. secs (0.u,0.s) +Chars 11579 - 11587 [exact~H.] 0. secs (0.u,0.s) +Chars 11594 - 11595 [*] 0. secs (0.u,0.s) +Chars 11625 - 11667 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) +Chars 11676 - 11704 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) +Chars 11713 - 11722 [revert~H.] 0. secs (0.u,0.s) +Chars 11731 - 11776 [(induction~IHHeutt';~try~discr...] 0.002 secs (0.002u,0.s) +Chars 11785 - 11787 [**] 0. secs (0.u,0.s) +Chars 11788 - 11837 [(symmetry~in~HoVisL;~dependent...] 0.005 secs (0.005u,0.s) +Chars 11849 - 11862 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 11874 - 11917 [(remember~(VisF~e~k0)~as~oVisL...] 0. secs (0.u,0.s) +Chars 11929 - 11959 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) +Chars 11971 - 11974 [***] 0. secs (0.u,0.s) +Chars 11975 - 12005 [dependent~destruction~HoVisL2.] 0.004 secs (0.004u,0.s) +Chars 12021 - 12039 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) +Chars 12040 - 12056 [(intros~a~b~HAns).] 0. secs (0.u,0.s) +Chars 12072 - 12094 [(apply~CIH~with~(k0~a)).] 0. secs (0.u,0.s) +Chars 12110 - 12114 [****] 0. secs (0.u,0.s) +Chars 12115 - 12125 [(apply~REL).] 0. secs (0.u,0.s) +Chars 12141 - 12145 [****] 0. secs (0.u,0.s) +Chars 12146 - 12161 [(apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 12173 - 12176 [***] 0. secs (0.u,0.s) +Chars 12177 - 12190 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 12191 - 12211 [(apply~IHruttF;~auto).] 0. secs (0.u,0.s) +Chars 12220 - 12222 [**] 0. secs (0.u,0.s) +Chars 12223 - 12236 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 12237 - 12260 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) +Chars 12265 - 12266 [+] 0. secs (0.u,0.s) +Chars 12296 - 12308 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 12309 - 12327 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) +Chars 12334 - 12335 [*] 0. secs (0.u,0.s) +Chars 12336 - 12369 [(rewrite~<-~tau_eutt~with~(t~:...] 0.003 secs (0.002u,0.s) +Chars 12370 - 12375 [step.] 0.001 secs (0.001u,0.s) +Chars 12376 - 12387 [subst~t1''.] 0. secs (0.u,0.s) +Chars 12388 - 12401 [exact~Heutt'.] 0. secs (0.u,0.s) +Chars 12408 - 12409 [*] 0. secs (0.u,0.s) +Chars 12410 - 12422 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 12423 - 12428 [step.] 0. secs (0.u,0.s) +Chars 12429 - 12437 [exact~H.] 0. secs (0.u,0.s) +Chars 12440 - 12441 [-] 0. secs (0.u,0.s) +Chars 12458 - 12473 [step~in~Heutt'.] 0. secs (0.u,0.s) +Chars 12474 - 12488 [(cbn~in~Heutt').] 0. secs (0.u,0.s) +Chars 12493 - 12520 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) +Chars 12521 - 12547 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) +Chars 12552 - 12594 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) +Chars 12599 - 12642 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) +Chars 12647 - 12648 [+] 0. secs (0.u,0.s) +Chars 12649 - 12678 [dependent~destruction~HoVisL.] 0.003 secs (0.003u,0.s) +Chars 12685 - 12703 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) +Chars 12704 - 12720 [(intros~a~b~HAns).] 0. secs (0.u,0.s) +Chars 12727 - 12749 [(apply~CIH~with~(k1~a)).] 0. secs (0.u,0.s) +Chars 12756 - 12757 [*] 0. secs (0.u,0.s) +Chars 12758 - 12768 [(apply~REL).] 0. secs (0.u,0.s) +Chars 12775 - 12776 [*] 0. secs (0.u,0.s) +Chars 12777 - 12792 [(apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 12797 - 12798 [+] 0. secs (0.u,0.s) +Chars 12799 - 12812 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 12813 - 12834 [(apply~IHHeutt';~auto).] 0. secs (0.u,0.s) +Chars 12837 - 12838 [-] 0. secs (0.u,0.s) +Chars 12856 - 12919 [(eapply~IHHrutt~with~(t1~:=~m1...] 0. secs (0.u,0.s) +Chars 12924 - 12957 [(rewrite~<-~tau_eutt~with~(t~:...] 0.001 secs (0.001u,0.s) +Chars 12958 - 12976 [(rewrite~<-~Heutt').] 0. secs (0.u,0.s) +Chars 12981 - 13005 [(rewrite~(itree_eta~tt1)).] 0.001 secs (0.001u,0.s) +Chars 13006 - 13023 [(rewrite~<-~Hot1').] 0. secs (0.u,0.s) +Chars 13024 - 13036 [reflexivity.] 0. secs (0.u,0.s) +Chars 13039 - 13040 [-] 0. secs (0.u,0.s) +Chars 13058 - 13071 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 13072 - 13094 [(eapply~IHHrutt;~eauto).] 0. secs (0.u,0.s) +Chars 13095 - 13099 [Qed.] 0.035 secs (0.035u,0.s) +Chars 13101 - 13358 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) +Chars 13359 - 13365 [Proof.] 0. secs (0.u,0.s) +Chars 13368 - 13439 [(intros~REv~REv2~HREv~RAns~RAn...] 0. secs (0.u,0.s) +Chars 13442 - 13513 [(rewrite~<-~HREv,~<-~HRAns,~<-...] 0.01 secs (0.01u,0.s) +Chars 13516 - 13536 [(split;~intros~Hrutt).] 0. secs (0.u,0.s) +Chars 13539 - 13540 [-] 0. secs (0.u,0.s) +Chars 13541 - 13570 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 13575 - 13598 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) +Chars 13599 - 13628 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) +Chars 13631 - 13632 [-] 0. secs (0.u,0.s) +Chars 13633 - 13654 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) +Chars 13659 - 13688 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 13693 - 13716 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) +Chars 13717 - 13746 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) +Chars 13747 - 13751 [Qed.] 0.003 secs (0.003u,0.s) +Chars 13790 - 13807 [Section~RuttBind.] 0. secs (0.u,0.s) +Chars 13808 - 13839 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 13840 - 13863 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) +Chars 13864 - 13922 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) +Chars 13923 - 13992 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) +Chars 13993 - 14025 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 14027 - 14040 [End~RuttBind.] 0. secs (0.u,0.s) +Chars 14042 - 14415 [Lemma~rutt_bind~{E1}~{E2}~{R1}...] 0.001 secs (0.001u,0.s) +Chars 14416 - 14422 [Proof.] 0. secs (0.u,0.s) +Chars 14425 - 14438 [revert~t1~t2.] 0. secs (0.u,0.s) +Chars 14439 - 14457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 14458 - 14463 [icbn.] 0. secs (0.u,0.s) +Chars 14464 - 14487 [(intros~t1~t2~Hrutt~EQK).] 0. secs (0.u,0.s) +Chars 14490 - 14504 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 14507 - 14521 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 14522 - 14536 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 14539 - 14575 [(hinduction~Hrutt~before~CIH;~...] 0.001 secs (0.001u,0.s) +Chars 14578 - 14579 [-] 0. secs (0.u,0.s) +Chars 14594 - 14625 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 14630 - 14653 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) +Chars 14659 - 14671 [step~in~EQK.] 0. secs (0.u,0.s) +Chars 14672 - 14686 [now~do~2~step.] 0.002 secs (0.002u,0.s) +Chars 14689 - 14690 [-] 0. secs (0.u,0.s) +Chars 14705 - 14736 [(rewrite~!observe_bind;~simpobs).] 0.005 secs (0.005u,0.s) +Chars 14741 - 14753 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 14754 - 14770 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 14773 - 14774 [-] 0. secs (0.u,0.s) +Chars 14789 - 14820 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 14825 - 14843 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) +Chars 14844 - 14860 [(intros~a~b~HAns).] 0. secs (0.u,0.s) +Chars 14865 - 14881 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 14882 - 14895 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 14899 - 14900 [-] 0. secs (0.u,0.s) +Chars 14916 - 14946 [(rewrite~observe_bind;~simpobs).] 0.005 secs (0.004u,0.s) +Chars 14951 - 14964 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 14965 - 14985 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) +Chars 14988 - 14989 [-] 0. secs (0.u,0.s) +Chars 15005 - 15047 [(setoid_rewrite~observe_bind~a...] 0.024 secs (0.024u,0.s) +Chars 15052 - 15065 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 15066 - 15086 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) +Chars 15087 - 15091 [Qed.] 0.008 secs (0.008u,0.s) +Chars 15094 - 15111 [Section~RuttMrec.] 0. secs (0.u,0.s) +Chars 15114 - 15221 [Context~(D1~D2~E1~E2~:~Type~->...] 0. secs (0.u,0.s) +Chars 15224 - 15330 [Context~(RPre~:~prerel~E1~E2)~...] 0. secs (0.u,0.s) +Chars 15334 - 15592 [Context~~(Hbodies~:~forall~A~B...] 0.001 secs (0.001u,0.s) +Chars 15596 - 15876 [Lemma~interp_mrec_rutt~(R1~R2~...] 0.001 secs (0.001u,0.s) +Chars 15879 - 15885 [Proof.] 0. secs (0.u,0.s) +Chars 15890 - 15908 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 15909 - 15914 [icbn.] 0. secs (0.u,0.s) +Chars 15920 - 15938 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 15939 - 15952 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 15958 - 15987 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 15988 - 16017 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 16022 - 16065 [(hinduction~Ht12~before~R1;~in...] 0.003 secs (0.003u,0.s) +Chars 16071 - 16072 [-] 0. secs (0.u,0.s) +Chars 16073 - 16105 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) +Chars 16106 - 16129 [(rewrite~Heqot1,~Heqot2).] 0.186 secs (0.185u,0.s) +Chars 16136 - 16170 [(repeat~rewrite~unfold_interp_...] 0.192 secs (0.191u,0.s) +Chars 16171 - 16175 [(cbn).] 0. secs (0.u,0.s) +Chars 16176 - 16192 [now~constructor.] 0. secs (0.u,0.s) +Chars 16199 - 16200 [-] 0. secs (0.u,0.s) +Chars 16201 - 16233 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) +Chars 16234 - 16257 [(rewrite~Heqot1,~Heqot2).] 0.19 secs (0.189u,0.s) +Chars 16264 - 16298 [(repeat~rewrite~unfold_interp_...] 0.191 secs (0.191u,0.s) +Chars 16299 - 16303 [(cbn).] 0. secs (0.u,0.s) +Chars 16304 - 16331 [(constructor;~now~apply~CIH).] 0. secs (0.u,0.s) +Chars 16337 - 16338 [-] 0. secs (0.u,0.s) +Chars 16339 - 16371 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) +Chars 16372 - 16395 [(rewrite~Heqot1,~Heqot2).] 0.196 secs (0.195u,0.s) +Chars 16402 - 16436 [(repeat~rewrite~unfold_interp_...] 0.219 secs (0.206u,0.001s) +Chars 16437 - 16441 [(cbn).] 0. secs (0.u,0.s) +Chars 16448 - 16454 [(inv~H).] 0.018 secs (0.018u,0.s) +Chars 16461 - 16462 [+] 0. secs (0.u,0.s) +Chars 16463 - 16489 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) +Chars 16490 - 16496 [subst.] 0.001 secs (0.001u,0.s) +Chars 16497 - 16509 [constructor.] 0. secs (0.u,0.s) +Chars 16518 - 16529 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 16540 - 16564 [(eapply~rutt_bind;~eauto).] 0.002 secs (0.002u,0.s) +Chars 16573 - 16580 [(intros).] 0. secs (0.u,0.s) +Chars 16581 - 16590 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 16591 - 16604 [clear~-~H~H0.] 0. secs (0.u,0.s) +Chars 16605 - 16614 [(apply~H0).] 0. secs (0.u,0.s) +Chars 16615 - 16631 [now~constructor.] 0. secs (0.u,0.s) +Chars 16638 - 16639 [+] 0. secs (0.u,0.s) +Chars 16640 - 16666 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) +Chars 16667 - 16673 [subst.] 0.002 secs (0.002u,0.s) +Chars 16674 - 16686 [constructor.] 0. secs (0.u,0.s) +Chars 16695 - 16700 [auto.] 0. secs (0.u,0.s) +Chars 16701 - 16708 [(intros).] 0. secs (0.u,0.s) +Chars 16709 - 16735 [(repeat~rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) +Chars 16736 - 16747 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 16757 - 16770 [clear~-~H0~H.] 0. secs (0.u,0.s) +Chars 16771 - 16780 [(apply~H0).] 0. secs (0.u,0.s) +Chars 16781 - 16797 [now~constructor.] 0. secs (0.u,0.s) +Chars 16803 - 16804 [-] 0. secs (0.u,0.s) +Chars 16805 - 16829 [(apply~simpobs~in~Heqot1).] 0. secs (0.u,0.s) +Chars 16830 - 16845 [(rewrite~Heqot1).] 0.102 secs (0.101u,0.s) +Chars 16846 - 16878 [(rewrite~unfold_interp_mrec~~a...] 0.099 secs (0.098u,0.s) +Chars 16886 - 16890 [(cbn).] 0. secs (0.u,0.s) +Chars 16891 - 16903 [constructor.] 0. secs (0.u,0.s) +Chars 16904 - 16921 [now~apply~IHHt12.] 0. secs (0.u,0.s) +Chars 16927 - 16928 [-] 0. secs (0.u,0.s) +Chars 16929 - 16953 [(apply~simpobs~in~Heqot2).] 0. secs (0.u,0.s) +Chars 16954 - 16969 [(rewrite~Heqot2).] 0.103 secs (0.102u,0.s) +Chars 16970 - 17009 [setoid_rewrite~unfold_interp_m...] 0.114 secs (0.113u,0.s) +Chars 17016 - 17020 [(cbn).] 0. secs (0.u,0.s) +Chars 17021 - 17033 [constructor.] 0. secs (0.u,0.s) +Chars 17034 - 17051 [now~apply~IHHt12.] 0. secs (0.u,0.s) +Chars 17055 - 17059 [Qed.] 0.021 secs (0.021u,0.s) +Chars 17063 - 17258 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) +Chars 17261 - 17267 [Proof.] 0. secs (0.u,0.s) +Chars 17272 - 17279 [(intros).] 0. secs (0.u,0.s) +Chars 17280 - 17303 [(apply~interp_mrec_rutt).] 0. secs (0.u,0.s) +Chars 17304 - 17309 [auto.] 0. secs (0.u,0.s) +Chars 17312 - 17316 [Qed.] 0. secs (0.u,0.s) +Chars 17318 - 17331 [End~RuttMrec.] 0.001 secs (0.001u,0.s) diff --git a/theories/Eq/Shallow.v.timing b/theories/Eq/Shallow.v.timing index ea1ad5c4..2a025fb6 100644 --- a/theories/Eq/Shallow.v.timing +++ b/theories/Eq/Shallow.v.timing @@ -1,5 +1,5 @@ -Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) -Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.036 secs (0.03u,0.006s) +Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.038 secs (0.029u,0.008s) Chars 349 - 372 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 389 - 523 [Definition~eqeq~{A~:~Type}~(P~...] 0. secs (0.u,0.s) Chars 525 - 720 [Definition~pweqeq~{R1}~{R2}~(R...] 0. secs (0.u,0.s) @@ -7,7 +7,7 @@ Chars 722 - 889 [Lemma~pweqeq_mon~{R1}~{R2}~(RR...] 0. secs (0.u,0.s) Chars 890 - 896 [Proof.] 0. secs (0.u,0.s) Chars 899 - 921 [(destruct~p;~cbn;~auto).] 0. secs (0.u,0.s) Chars 922 - 926 [Qed.] 0. secs (0.u,0.s) -Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0. secs (0.u,0.s) +Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0.001 secs (0.u,0.s) Chars 1164 - 1170 [Proof.] 0. secs (0.u,0.s) Chars 1173 - 1331 [(refine~~~(fun~H~=>~~~~match~~...] 0. secs (0.u,0.s) Chars 1334 - 1360 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) @@ -34,12 +34,12 @@ Chars 2380 - 2472 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2473 - 2502 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) Chars 2505 - 2529 [(intros~[];~split;~compute)~...] 0.003 secs (0.002u,0.s) Chars 2532 - 2533 [-] 0. secs (0.u,0.s) -Chars 2534 - 2556 [(intros~?~?~[];~auto)~...] 0.001 secs (0.u,0.s) +Chars 2534 - 2556 [(intros~?~?~[];~auto)~...] 0. secs (0.u,0.s) Chars 2559 - 2560 [-] 0. secs (0.u,0.s) -Chars 2561 - 2598 [(intros~?~?~?~[]~[];~eauto~wit...] 0.016 secs (0.015u,0.001s) +Chars 2561 - 2598 [(intros~?~?~?~[]~[];~eauto~wit...] 0.018 secs (0.016u,0.002s) Chars 2599 - 2603 [Qed.] 0. secs (0.u,0.s) Chars 2605 - 2629 [End~observing_relations.] 0. secs (0.u,0.s) -Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0. secs (0.u,0.s) +Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0.001 secs (0.001u,0.s) Chars 2959 - 2965 [Proof.] 0. secs (0.u,0.s) Chars 2966 - 2978 [reflexivity.] 0. secs (0.u,0.s) Chars 2979 - 2983 [Qed.] 0. secs (0.u,0.s) @@ -93,7 +93,7 @@ Chars 5034 - 5068 [(intros~?~?~?~[];~eauto~with~i...] 0. secs (0.u,0.s) Chars 5069 - 5073 [Qed.] 0. secs (0.u,0.s) Chars 5075 - 5159 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5215 [(intros~[];~constructor;~compu...] 0.063 secs (0.062u,0.s) +Chars 5169 - 5215 [(intros~[];~constructor;~compu...] 0.067 secs (0.065u,0.001s) Chars 5218 - 5219 [-] 0. secs (0.u,0.s) Chars 5220 - 5251 [(intros~?~?~[];~auto~with~itree).] 0. secs (0.u,0.s) Chars 5254 - 5255 [-] 0. secs (0.u,0.s) diff --git a/theories/Eq/SimUpToTaus.v.timing b/theories/Eq/SimUpToTaus.v.timing index faa95824..a3db840f 100644 --- a/theories/Eq/SimUpToTaus.v.timing +++ b/theories/Eq/SimUpToTaus.v.timing @@ -1,9 +1,9 @@ Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 573 - 635 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.194 secs (0.175u,0.019s) +Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.199 secs (0.176u,0.022s) Chars 750 - 763 [Section~SUTT.] 0. secs (0.u,0.s) Chars 765 - 831 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.003 secs (0.002u,0.s) +Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.002 secs (0.002u,0.s) Chars 1324 - 1356 [Hint~Constructors~suttF:~itree.] 0. secs (0.u,0.s) Chars 1358 - 1404 [Lemma~suttF_mono~:~Proper~(leq...] 0. secs (0.u,0.s) Chars 1405 - 1411 [Proof.] 0. secs (0.u,0.s) @@ -15,230 +15,230 @@ Chars 1532 - 1536 [Qed.] 0. secs (0.u,0.s) Chars 1538 - 1603 [Definition~sutt_mon~:=~{|~body...] 0. secs (0.u,0.s) Chars 1605 - 1701 [Definition~sutt~(t1~:~itree~E~...] 0. secs (0.u,0.s) Chars 1702 - 1727 [Hint~Unfold~sutt:~itree.] 0. secs (0.u,0.s) -Chars 1729 - 1738 [End~SUTT.] 0.001 secs (0.u,0.s) +Chars 1729 - 1738 [End~SUTT.] 0. secs (0.u,0.s) Chars 1740 - 1779 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) Chars 1780 - 1812 [#[global]~Hint~Unfold~sutt:~it...] 0. secs (0.u,0.s) -Chars 2768 - 2785 [Section~SUTT_rel.] 0. secs (0.u,0.s) -Chars 2787 - 2847 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 2849 - 2949 [Lemma~reflexive_suttF~`{Reflex...] 0. secs (0.u,0.s) -Chars 2950 - 2956 [Proof.] 0. secs (0.u,0.s) -Chars 2959 - 2976 [(unfold~Reflexive).] 0. secs (0.u,0.s) -Chars 2977 - 2986 [(intros~x).] 0. secs (0.u,0.s) -Chars 2989 - 3018 [(destruct~x;~eauto~with~itree).] 0.002 secs (0.001u,0.s) -Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) -Chars 3025 - 3038 [End~SUTT_rel.] 0. secs (0.u,0.s) -Chars 3040 - 3059 [Section~SUTT_facts.] 0. secs (0.u,0.s) -Chars 3061 - 3127 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 3129 - 3144 [End~SUTT_facts.] 0. secs (0.u,0.s) -Chars 3146 - 3365 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) -Chars 3366 - 3372 [Proof.] 0. secs (0.u,0.s) -Chars 3375 - 3382 [(intros).] 0. secs (0.u,0.s) -Chars 3383 - 3389 [(inv~H).] 0.005 secs (0.004u,0.001s) -Chars 3390 - 3409 [(ddestruction;~auto).] 0.003 secs (0.002u,0.s) -Chars 3410 - 3414 [Qed.] 0.004 secs (0.003u,0.s) -Chars 3416 - 3600 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 3601 - 3607 [Proof.] 0. secs (0.u,0.s) -Chars 3610 - 3617 [(intros).] 0. secs (0.u,0.s) -Chars 3618 - 3628 [step~in~H.] 0. secs (0.u,0.s) -Chars 3629 - 3640 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 3643 - 3683 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) -Chars 3684 - 3688 [Qed.] 0.001 secs (0.u,0.s) -Chars 3690 - 3838 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 3839 - 3845 [Proof.] 0. secs (0.u,0.s) -Chars 3848 - 3855 [(intros).] 0. secs (0.u,0.s) -Chars 3856 - 3861 [step.] 0. secs (0.u,0.s) -Chars 3862 - 3872 [step~in~H.] 0. secs (0.u,0.s) -Chars 3875 - 3887 [constructor.] 0. secs (0.u,0.s) -Chars 3888 - 3893 [auto.] 0. secs (0.u,0.s) -Chars 3894 - 3898 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3900 - 4047 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) -Chars 4048 - 4054 [Proof.] 0. secs (0.u,0.s) -Chars 4057 - 4064 [(intros).] 0. secs (0.u,0.s) -Chars 4065 - 4070 [step.] 0.028 secs (0.026u,0.002s) -Chars 4073 - 4085 [constructor.] 0. secs (0.u,0.s) -Chars 4086 - 4094 [exact~H.] 0. secs (0.u,0.s) -Chars 4095 - 4099 [Qed.] 0. secs (0.u,0.s) -Chars 4101 - 4252 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) -Chars 4253 - 4259 [Proof.] 0. secs (0.u,0.s) -Chars 4262 - 4280 [(unfold~sutt~at~-~1).] 0. secs (0.u,0.s) -Chars 4281 - 4300 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4301 - 4316 [(intros~t1~t2~H).] 0. secs (0.u,0.s) -Chars 4317 - 4327 [step~in~H.] 0. secs (0.u,0.s) -Chars 4330 - 4336 [(inv~H).] 0.013 secs (0.013u,0.s) -Chars 4339 - 4340 [-] 0. secs (0.u,0.s) -Chars 4341 - 4376 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) -Chars 4381 - 4393 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 4394 - 4418 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) -Chars 4421 - 4422 [-] 0. secs (0.u,0.s) +Chars 1814 - 1831 [Section~SUTT_rel.] 0. secs (0.u,0.s) +Chars 1833 - 1893 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 1895 - 1995 [Lemma~reflexive_suttF~`{Reflex...] 0. secs (0.u,0.s) +Chars 1996 - 2002 [Proof.] 0. secs (0.u,0.s) +Chars 2005 - 2022 [(unfold~Reflexive).] 0. secs (0.u,0.s) +Chars 2023 - 2032 [(intros~x).] 0. secs (0.u,0.s) +Chars 2035 - 2064 [(destruct~x;~eauto~with~itree).] 0.002 secs (0.001u,0.s) +Chars 2065 - 2069 [Qed.] 0. secs (0.u,0.s) +Chars 2071 - 2084 [End~SUTT_rel.] 0. secs (0.u,0.s) +Chars 2086 - 2105 [Section~SUTT_facts.] 0. secs (0.u,0.s) +Chars 2107 - 2173 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 2175 - 2190 [End~SUTT_facts.] 0. secs (0.u,0.s) +Chars 2192 - 2411 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) +Chars 2412 - 2418 [Proof.] 0. secs (0.u,0.s) +Chars 2421 - 2428 [(intros).] 0. secs (0.u,0.s) +Chars 2429 - 2435 [(inv~H).] 0.005 secs (0.004u,0.001s) +Chars 2436 - 2455 [(ddestruction;~auto).] 0.003 secs (0.002u,0.s) +Chars 2456 - 2460 [Qed.] 0.004 secs (0.003u,0.s) +Chars 2462 - 2646 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0.001 secs (0.u,0.s) +Chars 2647 - 2653 [Proof.] 0. secs (0.u,0.s) +Chars 2656 - 2663 [(intros).] 0. secs (0.u,0.s) +Chars 2664 - 2674 [step~in~H.] 0. secs (0.u,0.s) +Chars 2675 - 2686 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 2689 - 2729 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) +Chars 2730 - 2734 [Qed.] 0.001 secs (0.u,0.s) +Chars 2736 - 2884 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 2885 - 2891 [Proof.] 0. secs (0.u,0.s) +Chars 2894 - 2901 [(intros).] 0. secs (0.u,0.s) +Chars 2902 - 2907 [step.] 0.001 secs (0.u,0.s) +Chars 2908 - 2918 [step~in~H.] 0. secs (0.u,0.s) +Chars 2921 - 2933 [constructor.] 0. secs (0.u,0.s) +Chars 2934 - 2939 [auto.] 0. secs (0.u,0.s) +Chars 2940 - 2944 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2946 - 3093 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) +Chars 3094 - 3100 [Proof.] 0. secs (0.u,0.s) +Chars 3103 - 3110 [(intros).] 0. secs (0.u,0.s) +Chars 3111 - 3116 [step.] 0. secs (0.u,0.s) +Chars 3119 - 3131 [constructor.] 0. secs (0.u,0.s) +Chars 3132 - 3140 [exact~H.] 0. secs (0.u,0.s) +Chars 3141 - 3145 [Qed.] 0.029 secs (0.026u,0.002s) +Chars 3147 - 3298 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) +Chars 3299 - 3305 [Proof.] 0. secs (0.u,0.s) +Chars 3308 - 3326 [(unfold~sutt~at~-~1).] 0. secs (0.u,0.s) +Chars 3327 - 3346 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3347 - 3362 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 3363 - 3373 [step~in~H.] 0. secs (0.u,0.s) +Chars 3376 - 3382 [(inv~H).] 0.013 secs (0.013u,0.s) +Chars 3385 - 3386 [-] 0. secs (0.u,0.s) +Chars 3387 - 3422 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) +Chars 3427 - 3439 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 3440 - 3464 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) +Chars 3467 - 3468 [-] 0. secs (0.u,0.s) +Chars 3469 - 3481 [constructor.] 0. secs (0.u,0.s) +Chars 3482 - 3492 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 3493 - 3506 [exact~EQTAUS.] 0. secs (0.u,0.s) +Chars 3507 - 3511 [Qed.] 0.005 secs (0.004u,0.s) +Chars 3513 - 3723 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) +Chars 3724 - 3730 [Proof.] 0. secs (0.u,0.s) +Chars 3733 - 3740 [(intros).] 0. secs (0.u,0.s) +Chars 3743 - 3770 [(remember~(TauF~t1)~as~ott1).] 0. secs (0.u,0.s) +Chars 3773 - 3853 [(induction~H;~intros;~subst;~t...] 0.042 secs (0.041u,0.s) +Chars 3856 - 3871 [step~in~EQTAUS.] 0. secs (0.u,0.s) +Chars 3872 - 3885 [exact~EQTAUS.] 0. secs (0.u,0.s) +Chars 3886 - 3890 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3892 - 4041 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) +Chars 4042 - 4048 [Proof.] 0. secs (0.u,0.s) +Chars 4051 - 4058 [(intros).] 0. secs (0.u,0.s) +Chars 4059 - 4069 [step~in~H.] 0. secs (0.u,0.s) +Chars 4070 - 4075 [step.] 0. secs (0.u,0.s) +Chars 4078 - 4109 [(apply~suttF_inv_tau_left;~auto).] 0. secs (0.u,0.s) +Chars 4110 - 4114 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4116 - 4275 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) +Chars 4276 - 4282 [Proof.] 0. secs (0.u,0.s) +Chars 4285 - 4304 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 4305 - 4324 [(intros~t1~t2~H1~H2).] 0. secs (0.u,0.s) +Chars 4327 - 4338 [step~in~H1.] 0. secs (0.u,0.s) +Chars 4339 - 4350 [step~in~H2.] 0. secs (0.u,0.s) +Chars 4353 - 4398 [(induction~H1;~intros;~subst;~...] 0.006 secs (0.005u,0.s) +Chars 4401 - 4402 [-] 0. secs (0.u,0.s) Chars 4423 - 4435 [constructor.] 0. secs (0.u,0.s) -Chars 4436 - 4446 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4447 - 4460 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 4461 - 4465 [Qed.] 0.004 secs (0.004u,0.s) -Chars 4467 - 4677 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) -Chars 4678 - 4684 [Proof.] 0. secs (0.u,0.s) -Chars 4687 - 4694 [(intros).] 0. secs (0.u,0.s) -Chars 4697 - 4724 [(remember~(TauF~t1)~as~ott1).] 0.034 secs (0.034u,0.s) -Chars 4727 - 4807 [(induction~H;~intros;~subst;~t...] 0.008 secs (0.008u,0.s) -Chars 4810 - 4825 [step~in~EQTAUS.] 0. secs (0.u,0.s) -Chars 4826 - 4839 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 4840 - 4844 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4846 - 4995 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) -Chars 4996 - 5002 [Proof.] 0. secs (0.u,0.s) -Chars 5005 - 5012 [(intros).] 0. secs (0.u,0.s) -Chars 5013 - 5023 [step~in~H.] 0. secs (0.u,0.s) -Chars 5024 - 5029 [step.] 0. secs (0.u,0.s) -Chars 5032 - 5063 [(apply~suttF_inv_tau_left;~auto).] 0. secs (0.u,0.s) -Chars 5064 - 5068 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5070 - 5229 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) -Chars 5230 - 5236 [Proof.] 0. secs (0.u,0.s) -Chars 5239 - 5258 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 5259 - 5278 [(intros~t1~t2~H1~H2).] 0. secs (0.u,0.s) -Chars 5281 - 5292 [step~in~H1.] 0. secs (0.u,0.s) -Chars 5293 - 5304 [step~in~H2.] 0. secs (0.u,0.s) -Chars 5307 - 5352 [(induction~H1;~intros;~subst;~...] 0.005 secs (0.005u,0.s) -Chars 5355 - 5356 [-] 0. secs (0.u,0.s) -Chars 5377 - 5389 [constructor.] 0. secs (0.u,0.s) -Chars 5390 - 5398 [intro~x.] 0. secs (0.u,0.s) -Chars 5399 - 5409 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5414 - 5415 [+] 0. secs (0.u,0.s) -Chars 5416 - 5428 [(unfold~sutt).] 0. secs (0.u,0.s) -Chars 5429 - 5445 [exact~(SUTTK~x).] 0. secs (0.u,0.s) -Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5464 [(unfold~sutt).] 0. secs (0.u,0.s) -Chars 5465 - 5504 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) -Chars 5507 - 5508 [-] 0. secs (0.u,0.s) -Chars 5535 - 5554 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 5555 - 5576 [(eapply~IHsuttF;~auto).] 0. secs (0.u,0.s) -Chars 5577 - 5609 [(eapply~suttF_inv_tau_left;~au...] 0. secs (0.u,0.s) -Chars 5612 - 5613 [-] 0. secs (0.u,0.s) -Chars 5639 - 5646 [(inv~H2).] 0.023 secs (0.023u,0.s) -Chars 5651 - 5652 [+] 0. secs (0.u,0.s) -Chars 5653 - 5665 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 5666 - 5680 [(genobs~t0~ot0).] 0. secs (0.u,0.s) -Chars 5687 - 5732 [(hinduction~EQTAUS0~before~CIH...] 0.002 secs (0.002u,0.s) -Chars 5739 - 5740 [*] 0. secs (0.u,0.s) -Chars 5741 - 5760 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 5761 - 5769 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5770 - 5782 [constructor.] 0. secs (0.u,0.s) -Chars 5783 - 5789 [eauto.] 0. secs (0.u,0.s) -Chars 5796 - 5797 [*] 0. secs (0.u,0.s) -Chars 5798 - 5817 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 5818 - 5826 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5827 - 5839 [constructor.] 0. secs (0.u,0.s) -Chars 5840 - 5848 [intro~x.] 0. secs (0.u,0.s) -Chars 5857 - 5867 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5876 - 5878 [--] 0. secs (0.u,0.s) -Chars 5879 - 5919 [exact~(sutt_inv_vis~_~_~_~_~_~...] 0. secs (0.u,0.s) -Chars 5928 - 5930 [--] 0. secs (0.u,0.s) -Chars 5931 - 5943 [(unfold~sutt).] 0. secs (0.u,0.s) -Chars 5944 - 5956 [(apply~SUTTK).] 0. secs (0.u,0.s) -Chars 5963 - 5964 [*] 0. secs (0.u,0.s) -Chars 5965 - 5984 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 5985 - 5993 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5994 - 6018 [(eapply~IHEQTAUS0;~eauto).] 0. secs (0.u,0.s) -Chars 6027 - 6052 [(rewrite~(itree_eta'~ot1)).] 0. secs (0.u,0.s) -Chars 6053 - 6077 [(apply~sutt_inv_tau_left).] 0. secs (0.u,0.s) -Chars 6078 - 6090 [(unfold~sutt).] 0. secs (0.u,0.s) -Chars 6091 - 6104 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 6111 - 6112 [*] 0. secs (0.u,0.s) -Chars 6113 - 6125 [constructor.] 0. secs (0.u,0.s) -Chars 6126 - 6142 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 6143 - 6175 [(apply~sutt_elim_tau_right;~au...] 0. secs (0.u,0.s) -Chars 6180 - 6181 [+] 0. secs (0.u,0.s) -Chars 6182 - 6194 [constructor.] 0. secs (0.u,0.s) -Chars 6195 - 6238 [(apply~CIH;~apply~sutt_elim_ta...] 0. secs (0.u,0.s) -Chars 6239 - 6243 [Qed.] 0.014 secs (0.014u,0.s) -Chars 6245 - 6380 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) -Chars 6381 - 6387 [Proof.] 0. secs (0.u,0.s) -Chars 6390 - 6408 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6409 - 6424 [(intros~t1~t2~H).] 0. secs (0.u,0.s) -Chars 6427 - 6437 [step~in~H.] 0. secs (0.u,0.s) -Chars 6440 - 6452 [(induction~H).] 0. secs (0.u,0.s) -Chars 6455 - 6456 [-] 0. secs (0.u,0.s) -Chars 6457 - 6475 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 6478 - 6479 [-] 0. secs (0.u,0.s) -Chars 6480 - 6492 [constructor.] 0. secs (0.u,0.s) -Chars 6493 - 6505 [constructor.] 0. secs (0.u,0.s) -Chars 6506 - 6516 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6517 - 6527 [exact~REL.] 0. secs (0.u,0.s) -Chars 6530 - 6531 [-] 0. secs (0.u,0.s) -Chars 6532 - 6544 [constructor.] 0. secs (0.u,0.s) -Chars 6545 - 6551 [intro.] 0. secs (0.u,0.s) -Chars 6552 - 6562 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6563 - 6573 [(apply~REL).] 0. secs (0.u,0.s) -Chars 6576 - 6577 [-] 0. secs (0.u,0.s) -Chars 6578 - 6590 [constructor.] 0. secs (0.u,0.s) -Chars 6591 - 6596 [step.] 0. secs (0.u,0.s) -Chars 6597 - 6611 [exact~IHeqitF.] 0. secs (0.u,0.s) -Chars 6614 - 6615 [-] 0. secs (0.u,0.s) -Chars 6616 - 6628 [constructor.] 0. secs (0.u,0.s) -Chars 6629 - 6643 [exact~IHeqitF.] 0. secs (0.u,0.s) -Chars 6644 - 6648 [Qed.] 0.002 secs (0.002u,0.s) -Chars 6706 - 6967 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 6968 - 6974 [Proof.] 0. secs (0.u,0.s) -Chars 6977 - 6995 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6996 - 7020 [(intros~t1~t2~H~s1~s2~Hs).] 0. secs (0.u,0.s) -Chars 7023 - 7033 [step~in~H.] 0. secs (0.u,0.s) -Chars 7034 - 7054 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) -Chars 7057 - 7077 [(induction~H;~intros).] 0.001 secs (0.001u,0.s) -Chars 7080 - 7081 [-] 0. secs (0.u,0.s) -Chars 7082 - 7088 [(simpl).] 0. secs (0.u,0.s) -Chars 7089 - 7103 [(apply~Hs~in~H).] 0. secs (0.u,0.s) -Chars 7104 - 7114 [step~in~H.] 0. secs (0.u,0.s) -Chars 7119 - 7149 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) -Chars 7154 - 7166 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 7167 - 7191 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) -Chars 7194 - 7195 [-] 0. secs (0.u,0.s) -Chars 7196 - 7202 [(simpl).] 0. secs (0.u,0.s) -Chars 7203 - 7216 [econstructor.] 0. secs (0.u,0.s) -Chars 7217 - 7224 [(intros).] 0. secs (0.u,0.s) -Chars 7225 - 7253 [(apply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) -Chars 7256 - 7257 [-] 0. secs (0.u,0.s) -Chars 7258 - 7270 [constructor.] 0. secs (0.u,0.s) -Chars 7271 - 7277 [eauto.] 0. secs (0.u,0.s) -Chars 7280 - 7281 [-] 0. secs (0.u,0.s) -Chars 7282 - 7294 [constructor.] 0. secs (0.u,0.s) -Chars 7299 - 7379 [(change~~~~(elem~c~(observe~(I...] 0. secs (0.u,0.s) -Chars 7384 - 7400 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 7401 - 7405 [Qed.] 0.006 secs (0.006u,0.s) -Chars 7479 - 7624 [#[global]~Instance~Proper_sutt...] 0. secs (0.u,0.s) -Chars 7625 - 7631 [Proof.] 0. secs (0.u,0.s) -Chars 7634 - 7645 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7646 - 7664 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 7665 - 7690 [(intros~x~y~H~x0~y0~H0~H1).] 0. secs (0.u,0.s) -Chars 7693 - 7703 [step~in~H.] 0. secs (0.u,0.s) -Chars 7704 - 7715 [step~in~H0.] 0. secs (0.u,0.s) -Chars 7716 - 7727 [step~in~H1.] 0. secs (0.u,0.s) -Chars 7730 - 7747 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) -Chars 7750 - 7771 [(induction~H1;~intros).] 0.001 secs (0.001u,0.s) -Chars 7774 - 7775 [-] 0. secs (0.u,0.s) -Chars 7776 - 7801 [(inv~H1;~try~discriminate).] 0.026 secs (0.025u,0.s) -Chars 7802 - 7827 [(inv~H0;~try~discriminate).] 0.021 secs (0.021u,0.s) -Chars 7828 - 7841 [econstructor.] 0. secs (0.u,0.s) -Chars 7842 - 7848 [eauto.] 0. secs (0.u,0.s) -Chars 7851 - 7852 [-] 0. secs (0.u,0.s) -Chars 7853 - 7895 [(dependent~destruction~H;~try~...] 0.024 secs (0.024u,0.s) -Chars 7900 - 7943 [(dependent~destruction~H0;~try...] 0.025 secs (0.025u,0.s) -Chars 7948 - 7956 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 7961 - 7973 [constructor.] 0. secs (0.u,0.s) -Chars 7974 - 7981 [(intros).] 0. secs (0.u,0.s) -Chars 7982 - 7993 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7999 - 8009 [(apply~REL).] 0. secs (0.u,0.s) -Chars 8015 - 8026 [(apply~REL0).] 0. secs (0.u,0.s) -Chars 8027 - 8039 [(apply~SUTTK).] 0. secs (0.u,0.s) -Chars 8044 - 8045 [-] 0. secs (0.u,0.s) -Chars 8046 - 8089 [(dependent~destruction~H0;~try...] 0.023 secs (0.023u,0.s) -Chars 8094 - 8102 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 8103 - 8115 [constructor.] 0. secs (0.u,0.s) -Chars 8121 - 8141 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) -Chars 8142 - 8158 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 8162 - 8163 [-] 0. secs (0.u,0.s) -Chars 8164 - 8206 [(dependent~destruction~H;~try~...] 0.023 secs (0.023u,0.s) -Chars 8211 - 8219 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 8220 - 8232 [constructor.] 0. secs (0.u,0.s) -Chars 8237 - 8267 [(rewrite~(itree_eta'~ot2)~in~*).] 0. secs (0.u,0.s) -Chars 8268 - 8279 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8285 - 8295 [(apply~REL).] 0. secs (0.u,0.s) -Chars 8296 - 8311 [(step;~apply~H0).] 0.001 secs (0.001u,0.s) -Chars 8312 - 8325 [(apply~EQTAUS).] 0. secs (0.u,0.s) -Chars 8327 - 8331 [Qed.] 0.066 secs (0.066u,0.s) +Chars 4436 - 4444 [intro~x.] 0. secs (0.u,0.s) +Chars 4445 - 4455 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4460 - 4461 [+] 0. secs (0.u,0.s) +Chars 4462 - 4474 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 4475 - 4491 [exact~(SUTTK~x).] 0. secs (0.u,0.s) +Chars 4496 - 4497 [+] 0. secs (0.u,0.s) +Chars 4498 - 4510 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 4511 - 4550 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) +Chars 4553 - 4554 [-] 0. secs (0.u,0.s) +Chars 4581 - 4600 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 4601 - 4622 [(eapply~IHsuttF;~auto).] 0. secs (0.u,0.s) +Chars 4623 - 4655 [(eapply~suttF_inv_tau_left;~au...] 0. secs (0.u,0.s) +Chars 4658 - 4659 [-] 0. secs (0.u,0.s) +Chars 4685 - 4692 [(inv~H2).] 0.024 secs (0.024u,0.s) +Chars 4697 - 4698 [+] 0. secs (0.u,0.s) +Chars 4699 - 4711 [clear~t1~t2.] 0. secs (0.u,0.s) +Chars 4712 - 4726 [(genobs~t0~ot0).] 0. secs (0.u,0.s) +Chars 4733 - 4778 [(hinduction~EQTAUS0~before~CIH...] 0.002 secs (0.002u,0.s) +Chars 4785 - 4786 [*] 0. secs (0.u,0.s) +Chars 4787 - 4806 [(constructor;~eauto).] 0.001 secs (0.u,0.s) +Chars 4807 - 4815 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 4816 - 4828 [constructor.] 0. secs (0.u,0.s) +Chars 4829 - 4835 [eauto.] 0. secs (0.u,0.s) +Chars 4842 - 4843 [*] 0. secs (0.u,0.s) +Chars 4844 - 4863 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 4864 - 4872 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) +Chars 4886 - 4894 [intro~x.] 0. secs (0.u,0.s) +Chars 4903 - 4913 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4922 - 4924 [--] 0. secs (0.u,0.s) +Chars 4925 - 4965 [exact~(sutt_inv_vis~_~_~_~_~_~...] 0. secs (0.u,0.s) +Chars 4974 - 4976 [--] 0. secs (0.u,0.s) +Chars 4977 - 4989 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 4990 - 5002 [(apply~SUTTK).] 0. secs (0.u,0.s) +Chars 5009 - 5010 [*] 0. secs (0.u,0.s) +Chars 5011 - 5030 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5031 - 5039 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5040 - 5064 [(eapply~IHEQTAUS0;~eauto).] 0. secs (0.u,0.s) +Chars 5073 - 5098 [(rewrite~(itree_eta'~ot1)).] 0. secs (0.u,0.s) +Chars 5099 - 5123 [(apply~sutt_inv_tau_left).] 0. secs (0.u,0.s) +Chars 5124 - 5136 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 5137 - 5150 [exact~EQTAUS.] 0. secs (0.u,0.s) +Chars 5157 - 5158 [*] 0. secs (0.u,0.s) +Chars 5159 - 5171 [constructor.] 0. secs (0.u,0.s) +Chars 5172 - 5188 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 5189 - 5221 [(apply~sutt_elim_tau_right;~au...] 0. secs (0.u,0.s) +Chars 5226 - 5227 [+] 0. secs (0.u,0.s) +Chars 5228 - 5240 [constructor.] 0. secs (0.u,0.s) +Chars 5241 - 5284 [(apply~CIH;~apply~sutt_elim_ta...] 0. secs (0.u,0.s) +Chars 5285 - 5289 [Qed.] 0.014 secs (0.014u,0.s) +Chars 5291 - 5426 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) +Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) +Chars 5436 - 5454 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 5455 - 5470 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 5473 - 5483 [step~in~H.] 0. secs (0.u,0.s) +Chars 5486 - 5498 [(induction~H).] 0. secs (0.u,0.s) +Chars 5501 - 5502 [-] 0. secs (0.u,0.s) +Chars 5503 - 5521 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 5524 - 5525 [-] 0. secs (0.u,0.s) +Chars 5526 - 5538 [constructor.] 0. secs (0.u,0.s) +Chars 5539 - 5551 [constructor.] 0. secs (0.u,0.s) +Chars 5552 - 5562 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5563 - 5573 [exact~REL.] 0. secs (0.u,0.s) +Chars 5576 - 5577 [-] 0. secs (0.u,0.s) +Chars 5578 - 5590 [constructor.] 0. secs (0.u,0.s) +Chars 5591 - 5597 [intro.] 0. secs (0.u,0.s) +Chars 5598 - 5608 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5609 - 5619 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5622 - 5623 [-] 0. secs (0.u,0.s) +Chars 5624 - 5636 [constructor.] 0. secs (0.u,0.s) +Chars 5637 - 5642 [step.] 0. secs (0.u,0.s) +Chars 5643 - 5657 [exact~IHeqitF.] 0. secs (0.u,0.s) +Chars 5660 - 5661 [-] 0. secs (0.u,0.s) +Chars 5662 - 5674 [constructor.] 0. secs (0.u,0.s) +Chars 5675 - 5689 [exact~IHeqitF.] 0. secs (0.u,0.s) +Chars 5690 - 5694 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5752 - 6013 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 6014 - 6020 [Proof.] 0. secs (0.u,0.s) +Chars 6023 - 6041 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6042 - 6066 [(intros~t1~t2~H~s1~s2~Hs).] 0. secs (0.u,0.s) +Chars 6069 - 6079 [step~in~H.] 0. secs (0.u,0.s) +Chars 6080 - 6100 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) +Chars 6103 - 6123 [(induction~H;~intros).] 0.001 secs (0.001u,0.s) +Chars 6126 - 6127 [-] 0. secs (0.u,0.s) +Chars 6128 - 6134 [(simpl).] 0. secs (0.u,0.s) +Chars 6135 - 6149 [(apply~Hs~in~H).] 0. secs (0.u,0.s) +Chars 6150 - 6160 [step~in~H.] 0. secs (0.u,0.s) +Chars 6165 - 6195 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) +Chars 6200 - 6212 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 6213 - 6237 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) +Chars 6240 - 6241 [-] 0. secs (0.u,0.s) +Chars 6242 - 6248 [(simpl).] 0. secs (0.u,0.s) +Chars 6249 - 6262 [econstructor.] 0. secs (0.u,0.s) +Chars 6263 - 6270 [(intros).] 0. secs (0.u,0.s) +Chars 6271 - 6299 [(apply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 6302 - 6303 [-] 0. secs (0.u,0.s) +Chars 6304 - 6316 [constructor.] 0. secs (0.u,0.s) +Chars 6317 - 6323 [eauto.] 0. secs (0.u,0.s) +Chars 6326 - 6327 [-] 0. secs (0.u,0.s) +Chars 6328 - 6340 [constructor.] 0. secs (0.u,0.s) +Chars 6345 - 6425 [(change~~~~(elem~c~(observe~(I...] 0. secs (0.u,0.s) +Chars 6430 - 6446 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 6447 - 6451 [Qed.] 0.006 secs (0.006u,0.s) +Chars 6525 - 6670 [#[global]~Instance~Proper_sutt...] 0. secs (0.u,0.s) +Chars 6671 - 6677 [Proof.] 0. secs (0.u,0.s) +Chars 6680 - 6691 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6692 - 6710 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6711 - 6736 [(intros~x~y~H~x0~y0~H0~H1).] 0. secs (0.u,0.s) +Chars 6739 - 6749 [step~in~H.] 0. secs (0.u,0.s) +Chars 6750 - 6761 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6762 - 6773 [step~in~H1.] 0. secs (0.u,0.s) +Chars 6776 - 6793 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) +Chars 6796 - 6817 [(induction~H1;~intros).] 0.001 secs (0.001u,0.s) +Chars 6820 - 6821 [-] 0. secs (0.u,0.s) +Chars 6822 - 6847 [(inv~H1;~try~discriminate).] 0.026 secs (0.025u,0.s) +Chars 6848 - 6873 [(inv~H0;~try~discriminate).] 0.022 secs (0.022u,0.s) +Chars 6874 - 6887 [econstructor.] 0. secs (0.u,0.s) +Chars 6888 - 6894 [eauto.] 0. secs (0.u,0.s) +Chars 6897 - 6898 [-] 0. secs (0.u,0.s) +Chars 6899 - 6941 [(dependent~destruction~H;~try~...] 0.025 secs (0.024u,0.s) +Chars 6946 - 6989 [(dependent~destruction~H0;~try...] 0.025 secs (0.025u,0.s) +Chars 6994 - 7002 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 7007 - 7019 [constructor.] 0. secs (0.u,0.s) +Chars 7020 - 7027 [(intros).] 0. secs (0.u,0.s) +Chars 7028 - 7039 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7045 - 7055 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7061 - 7072 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 7073 - 7085 [(apply~SUTTK).] 0. secs (0.u,0.s) +Chars 7090 - 7091 [-] 0. secs (0.u,0.s) +Chars 7092 - 7135 [(dependent~destruction~H0;~try...] 0.024 secs (0.024u,0.s) +Chars 7140 - 7148 [simpobs.] 0.002 secs (0.001u,0.s) +Chars 7149 - 7161 [constructor.] 0. secs (0.u,0.s) +Chars 7167 - 7187 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) +Chars 7188 - 7204 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 7208 - 7209 [-] 0. secs (0.u,0.s) +Chars 7210 - 7252 [(dependent~destruction~H;~try~...] 0.024 secs (0.024u,0.s) +Chars 7257 - 7265 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7266 - 7278 [constructor.] 0. secs (0.u,0.s) +Chars 7283 - 7313 [(rewrite~(itree_eta'~ot2)~in~*).] 0. secs (0.u,0.s) +Chars 7314 - 7325 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7331 - 7341 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7342 - 7357 [(step;~apply~H0).] 0.001 secs (0.001u,0.s) +Chars 7358 - 7371 [(apply~EQTAUS).] 0. secs (0.u,0.s) +Chars 7373 - 7377 [Qed.] 0.071 secs (0.07u,0.001s) diff --git a/theories/Events.v.timing b/theories/Events.v.timing index 67d77f47..2820e2bd 100644 --- a/theories/Events.v.timing +++ b/theories/Events.v.timing @@ -1 +1 @@ -Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.173 secs (0.155u,0.018s) +Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.179 secs (0.158u,0.02s) diff --git a/theories/Events/Concurrency.v.timing b/theories/Events/Concurrency.v.timing index 028fbb62..7646b73d 100644 --- a/theories/Events/Concurrency.v.timing +++ b/theories/Events/Concurrency.v.timing @@ -1,9 +1,9 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.039 secs (0.031u,0.008s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.042 secs (0.033u,0.008s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.038 secs (0.031u,0.007s) -Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.071 secs (0.07u,0.001s) +Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.044 secs (0.035u,0.009s) +Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.077 secs (0.075u,0.002s) Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0. secs (0.u,0.s) Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.002 secs (0.002u,0.s) Chars 2164 - 2274 [CoFixpoint~round_robin~{E}~(q~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Dependent.v.timing b/theories/Events/Dependent.v.timing index be4230c8..cfcc56c0 100644 --- a/theories/Events/Dependent.v.timing +++ b/theories/Events/Dependent.v.timing @@ -1,6 +1,6 @@ -Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.043 secs (0.035u,0.008s) +Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.049 secs (0.039u,0.009s) Chars 720 - 748 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 765 - 852 [Variant~depE~{I~:~Type}~(F~:~I...] 0. secs (0.u,0.s) Chars 854 - 876 [Arguments~Dep~{I~F}~&.] 0. secs (0.u,0.s) -Chars 878 - 970 [Definition~dep~{I}~{F}~{E}~`{d...] 0. secs (0.u,0.s) +Chars 878 - 970 [Definition~dep~{I}~{F}~{E}~`{d...] 0.001 secs (0.u,0.s) Chars 972 - 1102 [Definition~undep~{I}~{F}~(f~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Exception.v.timing b/theories/Events/Exception.v.timing index 6e0897f3..6e59df43 100644 --- a/theories/Events/Exception.v.timing +++ b/theories/Events/Exception.v.timing @@ -1,6 +1,6 @@ -Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.06 secs (0.048u,0.012s) +Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.062 secs (0.049u,0.012s) Chars 77 - 100 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 156 - 237 [Variant~exceptE~(Err~:~Type)~:...] 0. secs (0.u,0.s) Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.001 secs (0.001u,0.s) -Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.023 secs (0.021u,0.001s) +Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.025 secs (0.023u,0.002s) Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.003 secs (0.003u,0.s) diff --git a/theories/Events/ExceptionFacts.v.timing b/theories/Events/ExceptionFacts.v.timing index c08cd0be..1a94b315 100644 --- a/theories/Events/ExceptionFacts.v.timing +++ b/theories/Events/ExceptionFacts.v.timing @@ -1,495 +1,479 @@ Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 61 - 110 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.216 secs (0.193u,0.022s) +Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.236 secs (0.208u,0.028s) Chars 242 - 256 [Import~Monads.] 0. secs (0.u,0.s) Chars 257 - 278 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 279 - 311 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 313 - 437 [Lemma~try_catch_ret~:~~~forall...] 0. secs (0.u,0.s) -Chars 438 - 444 [Proof.] 0. secs (0.u,0.s) -Chars 447 - 454 [(intros).] 0. secs (0.u,0.s) -Chars 455 - 472 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 473 - 529 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 532 - 552 [(rewrite~unfold_iter).] 0.016 secs (0.011u,0.004s) -Chars 553 - 557 [(cbn).] 0.03 secs (0.027u,0.002s) -Chars 558 - 577 [(rewrite~bind_ret_l).] 0.008 secs (0.007u,0.s) -Chars 578 - 590 [reflexivity.] 0. secs (0.u,0.s) -Chars 591 - 595 [Qed.] 0.003 secs (0.003u,0.s) -Chars 597 - 740 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) -Chars 741 - 747 [Proof.] 0. secs (0.u,0.s) -Chars 750 - 757 [(intros).] 0. secs (0.u,0.s) -Chars 758 - 775 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 776 - 832 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 835 - 855 [(rewrite~unfold_iter).] 0.049 secs (0.049u,0.s) -Chars 856 - 860 [(cbn).] 0. secs (0.u,0.s) -Chars 861 - 880 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) -Chars 881 - 893 [reflexivity.] 0. secs (0.u,0.s) -Chars 894 - 898 [Qed.] 0.004 secs (0.004u,0.s) -Chars 900 - 1122 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) -Chars 1123 - 1129 [Proof.] 0. secs (0.u,0.s) -Chars 1133 - 1140 [(intros).] 0. secs (0.u,0.s) -Chars 1141 - 1158 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 1159 - 1215 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 1219 - 1239 [(rewrite~unfold_iter).] 0.01 secs (0.01u,0.s) -Chars 1240 - 1244 [(cbn).] 0. secs (0.u,0.s) -Chars 1245 - 1262 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 1266 - 1284 [(rewrite~bind_bind).] 0.009 secs (0.009u,0.s) -Chars 1285 - 1311 [setoid_rewrite~bind_ret_l.] 0.013 secs (0.013u,0.s) -Chars 1312 - 1331 [(rewrite~bind_ret_r).] 0.002 secs (0.002u,0.s) -Chars 1335 - 1347 [reflexivity.] 0. secs (0.u,0.s) -Chars 1348 - 1352 [Qed.] 0.005 secs (0.005u,0.s) -Chars 1354 - 1549 [Lemma~try_catch_ev~:~~~forall~...] 0.001 secs (0.001u,0.s) -Chars 1550 - 1556 [Proof.] 0. secs (0.u,0.s) -Chars 1559 - 1566 [(intros).] 0. secs (0.u,0.s) -Chars 1567 - 1584 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 1585 - 1641 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 1644 - 1664 [(rewrite~unfold_iter).] 0.014 secs (0.014u,0.s) -Chars 1665 - 1669 [(cbn).] 0. secs (0.u,0.s) -Chars 1670 - 1692 [(unfold~ITree.map~at~3).] 0. secs (0.u,0.s) -Chars 1695 - 1720 [setoid_rewrite~bind_bind.] 0.015 secs (0.015u,0.s) -Chars 1721 - 1742 [(rewrite~bind_trigger).] 0.014 secs (0.014u,0.s) -Chars 1743 - 1747 [(cbn).] 0. secs (0.u,0.s) -Chars 1750 - 1776 [setoid_rewrite~bind_ret_l.] 0.022 secs (0.022u,0.s) -Chars 1777 - 1789 [reflexivity.] 0. secs (0.u,0.s) -Chars 1790 - 1794 [Qed.] 0.007 secs (0.007u,0.s) -Chars 1796 - 1948 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 1949 - 1955 [Proof.] 0. secs (0.u,0.s) -Chars 1958 - 1983 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 1984 - 1994 [(red~in~Hk).] 0. secs (0.u,0.s) -Chars 1995 - 2019 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2020 - 2030 [revert~t1.] 0. secs (0.u,0.s) -Chars 2033 - 2045 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 2046 - 2053 [(intros).] 0. secs (0.u,0.s) -Chars 2054 - 2071 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 2073 - 2106 [setoid_rewrite~unfold_iter_ktree.] 0.071 secs (0.07u,0.s) -Chars 2109 - 2117 [(sinv~Ht).] 0.327 secs (0.324u,0.002s) -Chars 2121 - 2122 [-] 0. secs (0.u,0.s) -Chars 2123 - 2149 [(repeat~rewrite~bind_ret_l).] 0.06 secs (0.059u,0.s) -Chars 2150 - 2155 [eret.] 0. secs (0.u,0.s) -Chars 2159 - 2160 [-] 0. secs (0.u,0.s) -Chars 2161 - 2187 [(repeat~rewrite~bind_ret_l).] 0.07 secs (0.069u,0.s) -Chars 2188 - 2193 [etau.] 0.003 secs (0.003u,0.s) -Chars 2198 - 2199 [-] 0. secs (0.u,0.s) -Chars 2200 - 2211 [(destruct~e).] 0.004 secs (0.004u,0.s) -Chars 2216 - 2217 [+] 0. secs (0.u,0.s) -Chars 2218 - 2229 [(destruct~e).] 0.003 secs (0.003u,0.s) -Chars 2230 - 2235 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2242 - 2261 [(rewrite~2!bind_map).] 0.059 secs (0.058u,0.s) -Chars 2262 - 2283 [(rewrite~2!bind_ret_r).] 0.044 secs (0.044u,0.s) -Chars 2291 - 2296 [step.] 0.009 secs (0.009u,0.s) -Chars 2297 - 2306 [(apply~Hk).] 0. secs (0.u,0.s) -Chars 2312 - 2313 [+] 0. secs (0.u,0.s) -Chars 2314 - 2318 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 2319 - 2324 [evis.] 0.003 secs (0.003u,0.s) -Chars 2325 - 2356 [(do~2~setoid_rewrite~bind_ret_l).] 0.087 secs (0.086u,0.s) -Chars 2365 - 2370 [step.] 0.003 secs (0.003u,0.s) -Chars 2371 - 2376 [etau.] 0.003 secs (0.003u,0.s) -Chars 2377 - 2381 [Qed.] 0.05 secs (0.05u,0.s) -Chars 2383 - 2520 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 2521 - 2527 [Proof.] 0. secs (0.u,0.s) -Chars 2530 - 2555 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 2556 - 2566 [(red~in~Hk).] 0. secs (0.u,0.s) -Chars 2567 - 2591 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2592 - 2602 [revert~t1.] 0. secs (0.u,0.s) -Chars 2605 - 2617 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 2618 - 2625 [(intros).] 0. secs (0.u,0.s) -Chars 2626 - 2643 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 2644 - 2677 [setoid_rewrite~unfold_iter_ktree.] 0.069 secs (0.068u,0.s) -Chars 2680 - 2691 [step~in~Ht.] 0.001 secs (0.001u,0.s) -Chars 2695 - 2740 [(hinduction~Ht~before~c;~intro...] 0.022 secs (0.022u,0.s) -Chars 2743 - 2744 [-] 0. secs (0.u,0.s) -Chars 2745 - 2771 [(repeat~rewrite~bind_ret_l).] 0.06 secs (0.059u,0.s) -Chars 2772 - 2777 [eret.] 0. secs (0.u,0.s) -Chars 2781 - 2782 [-] 0. secs (0.u,0.s) -Chars 2783 - 2809 [(repeat~rewrite~bind_ret_l).] 0.068 secs (0.067u,0.s) -Chars 2810 - 2815 [etau.] 0.002 secs (0.002u,0.s) -Chars 2820 - 2821 [-] 0. secs (0.u,0.s) -Chars 2822 - 2833 [(destruct~e).] 0. secs (0.u,0.s) -Chars 2872 - 2873 [+] 0. secs (0.u,0.s) -Chars 2874 - 2885 [(destruct~e).] 0.003 secs (0.003u,0.s) -Chars 2886 - 2891 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2892 - 2911 [(rewrite~2!bind_map).] 0.056 secs (0.055u,0.s) -Chars 2912 - 2933 [(rewrite~2!bind_ret_r).] 0.038 secs (0.037u,0.s) -Chars 2941 - 2946 [step.] 0.009 secs (0.009u,0.s) -Chars 2947 - 2956 [(apply~Hk).] 0. secs (0.u,0.s) -Chars 2962 - 2963 [+] 0. secs (0.u,0.s) -Chars 2964 - 2969 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 2970 - 2975 [evis.] 0.003 secs (0.003u,0.s) -Chars 2976 - 3007 [(do~2~setoid_rewrite~bind_ret_l).] 0.086 secs (0.084u,0.001s) -Chars 3016 - 3021 [step.] 0.003 secs (0.003u,0.s) -Chars 3022 - 3027 [etau.] 0.003 secs (0.003u,0.s) -Chars 3031 - 3032 [-] 0. secs (0.u,0.s) -Chars 3033 - 3052 [(rewrite~bind_ret_l).] 0.035 secs (0.034u,0.s) -Chars 3053 - 3072 [(rewrite~tau_euttge).] 0.019 secs (0.018u,0.s) -Chars 3073 - 3099 [(rewrite~unfold_iter_ktree).] 0.035 secs (0.035u,0.s) -Chars 3100 - 3119 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 3122 - 3123 [-] 0. secs (0.u,0.s) -Chars 3124 - 3143 [(rewrite~bind_ret_l).] 0.036 secs (0.036u,0.s) -Chars 3144 - 3163 [(rewrite~tau_euttge).] 0.021 secs (0.021u,0.s) -Chars 3164 - 3190 [(rewrite~unfold_iter_ktree).] 0.038 secs (0.038u,0.s) -Chars 3191 - 3210 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 3211 - 3215 [Qed.] 0.042 secs (0.041u,0.s) -Chars 3218 - 3357 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 3358 - 3364 [Proof.] 0. secs (0.u,0.s) -Chars 3367 - 3383 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 3384 - 3408 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 3409 - 3419 [revert~t1.] 0. secs (0.u,0.s) -Chars 3422 - 3434 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 3435 - 3442 [(intros).] 0. secs (0.u,0.s) -Chars 3443 - 3463 [(unfold~throw_prefix).] 0. secs (0.u,0.s) -Chars 3464 - 3497 [setoid_rewrite~unfold_iter_ktree.] 0.069 secs (0.067u,0.s) -Chars 3500 - 3511 [step~in~Ht.] 0.001 secs (0.u,0.s) -Chars 3512 - 3519 [(inv~Ht).] 0.297 secs (0.295u,0.002s) -Chars 3522 - 3523 [-] 0. secs (0.u,0.s) -Chars 3524 - 3550 [(repeat~rewrite~bind_ret_l).] 0.074 secs (0.074u,0.s) -Chars 3551 - 3556 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3557 - 3562 [eret.] 0.002 secs (0.002u,0.s) -Chars 3565 - 3566 [-] 0. secs (0.u,0.s) -Chars 3567 - 3578 [(destruct~e).] 0.004 secs (0.004u,0.s) -Chars 3583 - 3584 [+] 0. secs (0.u,0.s) -Chars 3585 - 3596 [(destruct~e).] 0.004 secs (0.004u,0.s) -Chars 3597 - 3602 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3603 - 3608 [eret.] 0. secs (0.u,0.s) -Chars 3613 - 3614 [+] 0. secs (0.u,0.s) -Chars 3615 - 3639 [setoid_rewrite~bind_map.] 0.054 secs (0.054u,0.s) -Chars 3640 - 3663 [(rewrite~2!bind_trigger).] 0.067 secs (0.066u,0.s) -Chars 3670 - 3675 [evis.] 0.002 secs (0.002u,0.s) -Chars 3676 - 3681 [step.] 0.003 secs (0.003u,0.s) -Chars 3682 - 3687 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3688 - 3693 [etau.] 0.002 secs (0.002u,0.s) -Chars 3695 - 3699 [Qed.] 0.046 secs (0.045u,0.s) -Chars 3701 - 3807 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 3808 - 3814 [Proof.] 0. secs (0.u,0.s) -Chars 3817 - 3833 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 3834 - 3858 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 3859 - 3869 [revert~t1.] 0. secs (0.u,0.s) -Chars 3872 - 3884 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 3885 - 3892 [(intros).] 0. secs (0.u,0.s) -Chars 3893 - 3913 [(unfold~throw_prefix).] 0. secs (0.u,0.s) -Chars 3914 - 3947 [setoid_rewrite~unfold_iter_ktree.] 0.07 secs (0.069u,0.001s) -Chars 3950 - 3961 [step~in~Ht.] 0.001 secs (0.001u,0.s) -Chars 3962 - 4007 [(hinduction~Ht~before~c;~intro...] 0.02 secs (0.02u,0.s) -Chars 4010 - 4011 [-] 0. secs (0.u,0.s) -Chars 4012 - 4038 [(repeat~rewrite~bind_ret_l).] 0.076 secs (0.075u,0.001s) -Chars 4039 - 4044 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 4045 - 4050 [eret.] 0.002 secs (0.002u,0.s) -Chars 4053 - 4054 [-] 0. secs (0.u,0.s) -Chars 4055 - 4066 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 4071 - 4072 [+] 0. secs (0.u,0.s) -Chars 4073 - 4084 [(destruct~e).] 0.004 secs (0.004u,0.s) -Chars 4085 - 4090 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 4091 - 4096 [eret.] 0. secs (0.u,0.s) -Chars 4101 - 4102 [+] 0. secs (0.u,0.s) -Chars 4103 - 4127 [setoid_rewrite~bind_map.] 0.055 secs (0.054u,0.s) -Chars 4128 - 4151 [(rewrite~2!bind_trigger).] 0.066 secs (0.065u,0.s) -Chars 4158 - 4163 [evis.] 0.002 secs (0.002u,0.s) -Chars 4164 - 4169 [step.] 0.003 secs (0.003u,0.s) -Chars 4170 - 4175 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 4176 - 4181 [etau.] 0.002 secs (0.002u,0.s) -Chars 4185 - 4186 [-] 0. secs (0.u,0.s) -Chars 4187 - 4192 [bcbn.] 0.048 secs (0.047u,0.s) -Chars 4193 - 4212 [(rewrite~tau_euttge).] 0.02 secs (0.02u,0.s) -Chars 4213 - 4239 [(rewrite~unfold_iter_ktree).] 0.038 secs (0.037u,0.s) -Chars 4240 - 4259 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 4262 - 4263 [-] 0. secs (0.u,0.s) -Chars 4264 - 4269 [bcbn.] 0.043 secs (0.043u,0.s) -Chars 4270 - 4289 [(rewrite~tau_euttge).] 0.023 secs (0.023u,0.s) -Chars 4290 - 4316 [(rewrite~unfold_iter_ktree).] 0.041 secs (0.041u,0.s) -Chars 4317 - 4336 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 4337 - 4341 [Qed.] 0.04 secs (0.04u,0.s) -Chars 4343 - 4462 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 4463 - 4469 [Proof.] 0. secs (0.u,0.s) -Chars 4472 - 4559 [(destruct~b;~~~[~apply~proper_...] 0. secs (0.u,0.s) -Chars 4560 - 4564 [Qed.] 0. secs (0.u,0.s) -Chars 4566 - 4670 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) -Chars 4671 - 4677 [Proof.] 0. secs (0.u,0.s) -Chars 4680 - 4687 [(intros).] 0. secs (0.u,0.s) -Chars 4688 - 4721 [setoid_rewrite~unfold_iter_ktree.] 0.015 secs (0.015u,0.s) -Chars 4722 - 4726 [(cbn).] 0. secs (0.u,0.s) -Chars 4727 - 4746 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) -Chars 4747 - 4759 [reflexivity.] 0. secs (0.u,0.s) -Chars 4760 - 4764 [Qed.] 0.004 secs (0.004u,0.s) -Chars 4766 - 4896 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) -Chars 4897 - 4903 [Proof.] 0. secs (0.u,0.s) -Chars 4906 - 4913 [(intros).] 0. secs (0.u,0.s) -Chars 4914 - 4952 [setoid_rewrite~unfold_iter_ktr...] 0.012 secs (0.012u,0.s) -Chars 4953 - 4957 [(cbn).] 0. secs (0.u,0.s) -Chars 4958 - 4977 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) -Chars 4980 - 4992 [reflexivity.] 0. secs (0.u,0.s) -Chars 4993 - 4997 [Qed.] 0.004 secs (0.004u,0.s) -Chars 4999 - 5126 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) -Chars 5127 - 5133 [Proof.] 0. secs (0.u,0.s) -Chars 5136 - 5143 [(intros).] 0. secs (0.u,0.s) -Chars 5144 - 5177 [setoid_rewrite~unfold_iter_ktree.] 0.013 secs (0.012u,0.s) -Chars 5178 - 5182 [(cbn).] 0. secs (0.u,0.s) -Chars 5183 - 5202 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) -Chars 5203 - 5215 [reflexivity.] 0. secs (0.u,0.s) -Chars 5216 - 5220 [Qed.] 0.004 secs (0.004u,0.s) -Chars 5222 - 5404 [Definition~throw_prefix_ev~:~~...] 0.001 secs (0.001u,0.s) -Chars 5405 - 5411 [Proof.] 0. secs (0.u,0.s) -Chars 5414 - 5421 [(intros).] 0. secs (0.u,0.s) -Chars 5422 - 5460 [setoid_rewrite~unfold_iter_ktr...] 0.019 secs (0.019u,0.s) -Chars 5461 - 5465 [(cbn).] 0. secs (0.u,0.s) -Chars 5466 - 5483 [(rewrite~bind_map).] 0.011 secs (0.011u,0.s) -Chars 5486 - 5507 [(rewrite~bind_trigger).] 0.01 secs (0.01u,0.s) -Chars 5508 - 5523 [(apply~eqit_Vis).] 0. secs (0.u,0.s) -Chars 5524 - 5531 [(intros).] 0. secs (0.u,0.s) -Chars 5532 - 5544 [reflexivity.] 0. secs (0.u,0.s) -Chars 5545 - 5549 [Qed.] 0.006 secs (0.005u,0.s) -Chars 5551 - 5709 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) -Chars 5710 - 5716 [Proof.] 0. secs (0.u,0.s) -Chars 5720 - 5742 [(intros~E~Err~R~kcatch).] 0. secs (0.u,0.s) -Chars 5743 - 5755 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5756 - 5763 [(intros).] 0. secs (0.u,0.s) -Chars 5766 - 5839 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) -Chars 5842 - 5843 [-] 0. secs (0.u,0.s) -Chars 5844 - 5856 [(rewrite~Heq).] 0.023 secs (0.022u,0.s) -Chars 5857 - 5882 [(rewrite~throw_prefix_ret).] 0.021 secs (0.021u,0.s) -Chars 5883 - 5905 [(rewrite~try_catch_ret).] 0.021 secs (0.02u,0.s) -Chars 5906 - 5918 [reflexivity.] 0.002 secs (0.002u,0.s) -Chars 5921 - 5922 [-] 0. secs (0.u,0.s) -Chars 5923 - 5935 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 5936 - 5961 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) -Chars 5962 - 5984 [(rewrite~try_catch_tau).] 0.02 secs (0.019u,0.s) -Chars 5985 - 5990 [etau.] 0. secs (0.u,0.s) -Chars 5993 - 5994 [-] 0. secs (0.u,0.s) -Chars 5995 - 6006 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 6010 - 6011 [+] 0. secs (0.u,0.s) -Chars 6012 - 6023 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 6024 - 6036 [(rewrite~Heq).] 0.02 secs (0.02u,0.s) -Chars 6037 - 6062 [(rewrite~throw_prefix_exc).] 0.02 secs (0.02u,0.s) -Chars 6063 - 6085 [(rewrite~try_catch_ret).] 0.018 secs (0.018u,0.s) -Chars 6086 - 6098 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6102 - 6103 [+] 0. secs (0.u,0.s) -Chars 6104 - 6116 [(rewrite~Heq).] 0.02 secs (0.02u,0.s) -Chars 6117 - 6141 [(rewrite~throw_prefix_ev).] 0.02 secs (0.02u,0.s) -Chars 6142 - 6163 [(rewrite~try_catch_ev).] 0.02 secs (0.02u,0.s) -Chars 6164 - 6169 [evis.] 0.001 secs (0.001u,0.s) -Chars 6175 - 6197 [(rewrite~try_catch_tau).] 0.016 secs (0.016u,0.s) -Chars 6198 - 6224 [(repeat~rewrite~tau_euttge).] 0.017 secs (0.017u,0.s) -Chars 6225 - 6235 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6236 - 6240 [Qed.] 0.018 secs (0.017u,0.s) -Chars 6242 - 6621 [Lemma~throw_prefix_bind_decomp...] 0.002 secs (0.002u,0.s) -Chars 6622 - 6628 [Proof.] 0. secs (0.u,0.s) -Chars 6631 - 6646 [(intros~E~Err~R).] 0. secs (0.u,0.s) -Chars 6647 - 6659 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 6660 - 6667 [(intros).] 0. secs (0.u,0.s) -Chars 6670 - 6740 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) -Chars 6743 - 6744 [-] 0. secs (0.u,0.s) -Chars 6745 - 6757 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 6758 - 6783 [(rewrite~throw_prefix_ret).] 0.025 secs (0.025u,0.s) -Chars 6784 - 6803 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) -Chars 6804 - 6809 [eret.] 0. secs (0.u,0.s) -Chars 6813 - 6814 [-] 0. secs (0.u,0.s) -Chars 6815 - 6827 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) -Chars 6828 - 6853 [(rewrite~throw_prefix_tau).] 0.024 secs (0.023u,0.s) -Chars 6854 - 6871 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) -Chars 6872 - 6877 [etau.] 0. secs (0.u,0.s) -Chars 6880 - 6881 [-] 0. secs (0.u,0.s) -Chars 6882 - 6893 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 6898 - 6899 [+] 0. secs (0.u,0.s) -Chars 6900 - 6912 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 6913 - 6924 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 6925 - 6950 [(rewrite~throw_prefix_exc).] 0.024 secs (0.024u,0.s) -Chars 6951 - 6970 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) -Chars 6971 - 6976 [bcbn.] 0. secs (0.u,0.s) -Chars 6977 - 6982 [evis.] 0.001 secs (0.001u,0.s) -Chars 6990 - 6995 [easy.] 0.004 secs (0.004u,0.s) -Chars 7001 - 7002 [+] 0. secs (0.u,0.s) -Chars 7003 - 7015 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 7016 - 7040 [(rewrite~throw_prefix_ev).] 0.024 secs (0.023u,0.s) -Chars 7041 - 7058 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) -Chars 7059 - 7064 [evis.] 0.002 secs (0.002u,0.s) -Chars 7072 - 7079 [(intros).] 0. secs (0.u,0.s) -Chars 7080 - 7099 [(rewrite~tau_euttge).] 0.009 secs (0.009u,0.s) -Chars 7100 - 7110 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7112 - 7116 [Qed.] 0.018 secs (0.018u,0.s) -Chars 7118 - 7617 [Lemma~try_catch_to_throw_prefi...] 0.001 secs (0.001u,0.s) -Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) -Chars 7627 - 7634 [(intros).] 0. secs (0.u,0.s) -Chars 7635 - 7647 [revert~ttry.] 0. secs (0.u,0.s) -Chars 7648 - 7660 [coinduction.] 0.004 secs (0.004u,0.s) -Chars 7664 - 7671 [(intros).] 0. secs (0.u,0.s) -Chars 7672 - 7745 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) -Chars 7748 - 7749 [-] 0. secs (0.u,0.s) -Chars 7750 - 7762 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) -Chars 7763 - 7785 [(rewrite~try_catch_ret).] 0.018 secs (0.018u,0.s) -Chars 7786 - 7811 [(rewrite~throw_prefix_ret).] 0.023 secs (0.022u,0.s) -Chars 7812 - 7831 [(rewrite~bind_ret_l).] 0.02 secs (0.02u,0.s) -Chars 7837 - 7842 [eret.] 0. secs (0.u,0.s) -Chars 7846 - 7847 [-] 0. secs (0.u,0.s) -Chars 7848 - 7860 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) -Chars 7861 - 7883 [(rewrite~try_catch_tau).] 0.018 secs (0.018u,0.s) -Chars 7884 - 7909 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) -Chars 7910 - 7927 [(rewrite~bind_tau).] 0.02 secs (0.02u,0.s) -Chars 7932 - 7937 [etau.] 0. secs (0.u,0.s) -Chars 7941 - 7942 [-] 0. secs (0.u,0.s) -Chars 7943 - 7954 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 7959 - 7960 [+] 0. secs (0.u,0.s) -Chars 7961 - 7972 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 7973 - 7985 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 7986 - 8008 [(rewrite~try_catch_exc).] 0.019 secs (0.018u,0.s) -Chars 8009 - 8034 [(rewrite~throw_prefix_exc).] 0.022 secs (0.022u,0.s) -Chars 8035 - 8054 [(rewrite~bind_ret_l).] 0.02 secs (0.019u,0.s) -Chars 8061 - 8073 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8079 - 8080 [+] 0. secs (0.u,0.s) -Chars 8081 - 8093 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 8094 - 8115 [(rewrite~try_catch_ev).] 0.018 secs (0.018u,0.s) -Chars 8116 - 8140 [(rewrite~throw_prefix_ev).] 0.022 secs (0.022u,0.s) -Chars 8141 - 8158 [(rewrite~bind_vis).] 0.021 secs (0.021u,0.s) -Chars 8159 - 8185 [setoid_rewrite~tau_euttge.] 0.023 secs (0.022u,0.s) -Chars 8192 - 8197 [evis.] 0. secs (0.u,0.s) -Chars 8199 - 8203 [Qed.] 0.019 secs (0.018u,0.s) -Chars 8205 - 8472 [Lemma~throw_prefix_of_try_catc...] 0. secs (0.u,0.s) -Chars 8473 - 8479 [Proof.] 0. secs (0.u,0.s) -Chars 8482 - 8489 [(intros).] 0. secs (0.u,0.s) -Chars 8490 - 8502 [revert~ttry.] 0. secs (0.u,0.s) -Chars 8503 - 8515 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 8519 - 8526 [(intros).] 0. secs (0.u,0.s) -Chars 8527 - 8600 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) -Chars 8603 - 8604 [-] 0. secs (0.u,0.s) -Chars 8605 - 8617 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) -Chars 8618 - 8637 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 8638 - 8667 [(repeat~rewrite~try_catch_ret).] 0.042 secs (0.042u,0.s) -Chars 8668 - 8693 [(rewrite~throw_prefix_ret).] 0.018 secs (0.018u,0.s) -Chars 8698 - 8703 [eret.] 0. secs (0.u,0.s) -Chars 8707 - 8708 [-] 0. secs (0.u,0.s) -Chars 8709 - 8721 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 8722 - 8739 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) -Chars 8740 - 8769 [(repeat~rewrite~try_catch_tau).] 0.045 secs (0.044u,0.s) -Chars 8770 - 8795 [(rewrite~throw_prefix_tau).] 0.02 secs (0.02u,0.s) -Chars 8800 - 8805 [etau.] 0. secs (0.u,0.s) -Chars 8809 - 8810 [-] 0. secs (0.u,0.s) -Chars 8811 - 8822 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 8827 - 8828 [+] 0. secs (0.u,0.s) -Chars 8829 - 8840 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 8841 - 8853 [(rewrite~Heq).] 0.026 secs (0.025u,0.s) -Chars 8854 - 8871 [(rewrite~bind_vis).] 0.025 secs (0.024u,0.s) -Chars 8872 - 8901 [(repeat~rewrite~try_catch_exc).] 0.045 secs (0.045u,0.s) -Chars 8908 - 8920 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8926 - 8927 [+] 0. secs (0.u,0.s) -Chars 8928 - 8940 [(rewrite~Heq).] 0.025 secs (0.024u,0.s) -Chars 8941 - 8958 [(rewrite~bind_vis).] 0.024 secs (0.023u,0.s) -Chars 8959 - 8987 [(repeat~rewrite~try_catch_ev).] 0.047 secs (0.047u,0.s) -Chars 8988 - 9012 [(rewrite~throw_prefix_ev).] 0.022 secs (0.021u,0.s) -Chars 9019 - 9051 [setoid_rewrite~throw_prefix_tau.] 0.109 secs (0.107u,0.001s) -Chars 9058 - 9091 [(repeat~setoid_rewrite~tau_eut...] 0.062 secs (0.061u,0.s) -Chars 9098 - 9103 [evis.] 0. secs (0.u,0.s) -Chars 9105 - 9109 [Qed.] 0.025 secs (0.024u,0.s) -Chars 9111 - 9475 [Lemma~throw_prefix_bind~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 9476 - 9482 [Proof.] 0. secs (0.u,0.s) -Chars 9485 - 9492 [(intros).] 0. secs (0.u,0.s) -Chars 9493 - 9502 [revert~t.] 0. secs (0.u,0.s) -Chars 9503 - 9515 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 9519 - 9526 [(intros).] 0. secs (0.u,0.s) -Chars 9527 - 9597 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) -Chars 9600 - 9601 [-] 0. secs (0.u,0.s) -Chars 9602 - 9614 [(rewrite~Heq).] 0.028 secs (0.028u,0.s) -Chars 9615 - 9640 [(rewrite~throw_prefix_ret).] 0.026 secs (0.026u,0.s) -Chars 9641 - 9667 [(repeat~rewrite~bind_ret_l).] 0.048 secs (0.048u,0.s) -Chars 9672 - 9684 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9688 - 9689 [-] 0. secs (0.u,0.s) -Chars 9690 - 9702 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) -Chars 9703 - 9728 [(rewrite~throw_prefix_tau).] 0.026 secs (0.026u,0.s) -Chars 9729 - 9753 [(repeat~rewrite~bind_tau).] 0.048 secs (0.048u,0.s) -Chars 9754 - 9779 [(rewrite~throw_prefix_tau).] 0.022 secs (0.021u,0.s) -Chars 9784 - 9789 [etau.] 0. secs (0.u,0.s) -Chars 9793 - 9794 [-] 0. secs (0.u,0.s) -Chars 9795 - 9806 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 9811 - 9812 [+] 0. secs (0.u,0.s) -Chars 9813 - 9824 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 9825 - 9837 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 9838 - 9863 [(rewrite~throw_prefix_exc).] 0.026 secs (0.026u,0.s) -Chars 9864 - 9881 [(rewrite~bind_vis).] 0.022 secs (0.022u,0.s) -Chars 9882 - 9907 [(rewrite~throw_prefix_exc).] 0.02 secs (0.02u,0.s) -Chars 9914 - 9933 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 9934 - 9939 [eret.] 0. secs (0.u,0.s) -Chars 9945 - 9946 [+] 0. secs (0.u,0.s) -Chars 9947 - 9959 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 9960 - 9984 [(rewrite~throw_prefix_ev).] 0.027 secs (0.027u,0.s) -Chars 9985 - 10009 [(repeat~rewrite~bind_vis).] 0.05 secs (0.05u,0.s) -Chars 10010 - 10034 [(rewrite~throw_prefix_ev).] 0.022 secs (0.022u,0.s) -Chars 10041 - 10046 [evis.] 0.002 secs (0.002u,0.s) -Chars 10047 - 10064 [(rewrite~bind_tau).] 0.021 secs (0.02u,0.s) -Chars 10065 - 10070 [step.] 0.003 secs (0.003u,0.s) -Chars 10071 - 10076 [taus.] 0. secs (0.u,0.s) -Chars 10077 - 10087 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 10090 - 10094 [Qed.] 0.027 secs (0.026u,0.s) -Chars 10096 - 10694 [Lemma~throw_prefix_iter~:~~~fo...] 0.002 secs (0.002u,0.s) -Chars 10695 - 10701 [Proof.] 0. secs (0.u,0.s) -Chars 10704 - 10721 [(intros~E~Err~A~B).] 0. secs (0.u,0.s) -Chars 10722 - 10734 [coinduction.] 0.004 secs (0.004u,0.s) -Chars 10735 - 10742 [(intros).] 0. secs (0.u,0.s) -Chars 10745 - 10785 [setoid_rewrite~unfold_iter_ktr...] 0.064 secs (0.063u,0.s) -Chars 10788 - 10869 [(destruct~(observe~(body~init)...] 0.005 secs (0.005u,0.s) -Chars 10872 - 10873 [-] 0. secs (0.u,0.s) -Chars 10874 - 10891 [(rewrite~Heq~~at~1).] 0.028 secs (0.028u,0.s) -Chars 10892 - 10911 [(rewrite~bind_ret_l).] 0.027 secs (0.026u,0.s) -Chars 10912 - 10937 [setoid_rewrite~bind_bind.] 0.054 secs (0.054u,0.s) -Chars 10943 - 10960 [(rewrite~Heq~~at~1).] 0.034 secs (0.034u,0.s) -Chars 10961 - 10986 [(rewrite~throw_prefix_ret).] 0.033 secs (0.032u,0.s) -Chars 10987 - 11006 [(rewrite~bind_ret_l).] 0.03 secs (0.03u,0.s) -Chars 11011 - 11042 [(destruct~r;~rewrite~bind_ret_l).] 0.059 secs (0.058u,0.s) -Chars 11047 - 11048 [+] 0. secs (0.u,0.s) -Chars 11049 - 11074 [(rewrite~throw_prefix_tau).] 0.023 secs (0.023u,0.s) -Chars 11075 - 11080 [etau.] 0. secs (0.u,0.s) -Chars 11086 - 11087 [+] 0. secs (0.u,0.s) -Chars 11088 - 11113 [(rewrite~throw_prefix_ret).] 0.021 secs (0.021u,0.s) -Chars 11114 - 11119 [eret.] 0. secs (0.u,0.s) -Chars 11123 - 11124 [-] 0. secs (0.u,0.s) -Chars 11125 - 11142 [(rewrite~Heq~~at~1).] 0.03 secs (0.03u,0.s) -Chars 11143 - 11168 [setoid_rewrite~bind_bind.] 0.058 secs (0.057u,0.s) -Chars 11169 - 11186 [(rewrite~Heq~~at~1).] 0.034 secs (0.034u,0.s) -Chars 11191 - 11216 [(rewrite~throw_prefix_tau).] 0.033 secs (0.032u,0.s) -Chars 11217 - 11241 [(repeat~rewrite~bind_tau).] 0.067 secs (0.066u,0.s) -Chars 11242 - 11267 [(rewrite~throw_prefix_tau).] 0.026 secs (0.026u,0.s) -Chars 11272 - 11277 [etau.] 0.002 secs (0.002u,0.s) -Chars 11278 - 11316 [setoid_rewrite~throw_prefix_bi...] 0.059 secs (0.058u,0.s) -Chars 11317 - 11338 [(ebind;~intros;~subst).] 0.008 secs (0.008u,0.s) -Chars 11344 - 11376 [(destruct~u2~as~[[a|~b]|~e]).] 0.001 secs (0.001u,0.s) -Chars 11381 - 11382 [+] 0. secs (0.u,0.s) -Chars 11383 - 11402 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 11403 - 11428 [(rewrite~throw_prefix_tau).] 0.019 secs (0.019u,0.s) -Chars 11429 - 11440 [(step;~etau).] 0.003 secs (0.003u,0.s) -Chars 11446 - 11447 [+] 0. secs (0.u,0.s) -Chars 11448 - 11467 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 11468 - 11493 [(rewrite~throw_prefix_ret).] 0.017 secs (0.016u,0.s) -Chars 11494 - 11505 [(step;~eret).] 0.003 secs (0.003u,0.s) -Chars 11511 - 11512 [+] 0. secs (0.u,0.s) -Chars 11513 - 11532 [(rewrite~bind_ret_l).] 0.024 secs (0.023u,0.s) -Chars 11533 - 11544 [(step;~eret).] 0.003 secs (0.003u,0.s) -Chars 11548 - 11549 [-] 0. secs (0.u,0.s) -Chars 11550 - 11567 [(rewrite~Heq~~at~1).] 0.029 secs (0.029u,0.s) -Chars 11568 - 11593 [setoid_rewrite~bind_bind.] 0.059 secs (0.057u,0.001s) -Chars 11594 - 11611 [(rewrite~Heq~~at~1).] 0.034 secs (0.033u,0.s) -Chars 11616 - 11627 [(destruct~e).] 0.002 secs (0.002u,0.s) -Chars 11632 - 11633 [+] 0. secs (0.u,0.s) -Chars 11634 - 11645 [(destruct~e).] 0.004 secs (0.003u,0.s) -Chars 11646 - 11663 [(rewrite~bind_vis).] 0.028 secs (0.027u,0.s) -Chars 11664 - 11689 [(rewrite~throw_prefix_exc).] 0.027 secs (0.027u,0.s) -Chars 11696 - 11728 [setoid_rewrite~throw_prefix_exc.] 0.1 secs (0.098u,0.001s) -Chars 11729 - 11755 [(repeat~rewrite~bind_ret_l).] 0.062 secs (0.061u,0.s) -Chars 11762 - 11767 [eret.] 0. secs (0.u,0.s) -Chars 11773 - 11774 [+] 0. secs (0.u,0.s) -Chars 11775 - 11792 [(rewrite~bind_vis).] 0.027 secs (0.027u,0.s) -Chars 11793 - 11817 [(rewrite~throw_prefix_ev).] 0.027 secs (0.027u,0.s) -Chars 11818 - 11849 [setoid_rewrite~throw_prefix_ev.] 0.116 secs (0.114u,0.001s) -Chars 11856 - 11873 [(rewrite~bind_vis).] 0.033 secs (0.033u,0.s) -Chars 11874 - 11898 [setoid_rewrite~bind_tau.] 0.066 secs (0.065u,0.s) -Chars 11899 - 11904 [evis.] 0.003 secs (0.003u,0.s) -Chars 11905 - 11916 [(step;~etau).] 0.005 secs (0.005u,0.s) -Chars 11924 - 11950 [(rewrite~throw_prefix_bind).] 0.02 secs (0.02u,0.s) -Chars 11951 - 11972 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) -Chars 11980 - 12013 [(destruct~u2~as~[[a|~b]|~e']).] 0. secs (0.u,0.s) -Chars 12020 - 12021 [*] 0. secs (0.u,0.s) -Chars 12022 - 12041 [(rewrite~bind_ret_l).] 0.024 secs (0.024u,0.s) -Chars 12042 - 12067 [(rewrite~throw_prefix_tau).] 0.019 secs (0.019u,0.s) -Chars 12068 - 12079 [(step;~etau).] 0.003 secs (0.003u,0.s) -Chars 12087 - 12088 [*] 0. secs (0.u,0.s) -Chars 12089 - 12108 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 12109 - 12134 [(rewrite~throw_prefix_ret).] 0.016 secs (0.016u,0.s) -Chars 12143 - 12154 [(step;~eret).] 0.003 secs (0.003u,0.s) -Chars 12162 - 12163 [*] 0. secs (0.u,0.s) -Chars 12164 - 12183 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 12184 - 12195 [(step;~eret).] 0.003 secs (0.003u,0.s) -Chars 12197 - 12201 [Qed.] 0.085 secs (0.083u,0.001s) +Chars 314 - 438 [Lemma~try_catch_ret~:~~~forall...] 0.001 secs (0.u,0.s) +Chars 439 - 445 [Proof.] 0. secs (0.u,0.s) +Chars 448 - 455 [(intros).] 0. secs (0.u,0.s) +Chars 456 - 473 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 474 - 530 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 533 - 553 [(rewrite~unfold_iter).] 0.018 secs (0.013u,0.004s) +Chars 554 - 558 [(cbn).] 0. secs (0.u,0.s) +Chars 559 - 578 [(rewrite~bind_ret_l).] 0.043 secs (0.04u,0.003s) +Chars 579 - 591 [reflexivity.] 0. secs (0.u,0.s) +Chars 592 - 596 [Qed.] 0.004 secs (0.004u,0.s) +Chars 598 - 741 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 742 - 748 [Proof.] 0. secs (0.u,0.s) +Chars 751 - 758 [(intros).] 0. secs (0.u,0.s) +Chars 759 - 776 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 777 - 833 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 836 - 856 [(rewrite~unfold_iter).] 0.051 secs (0.051u,0.s) +Chars 857 - 861 [(cbn).] 0. secs (0.u,0.s) +Chars 862 - 881 [(rewrite~bind_ret_l).] 0.013 secs (0.012u,0.s) +Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) +Chars 895 - 899 [Qed.] 0.005 secs (0.005u,0.s) +Chars 901 - 1123 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) +Chars 1124 - 1130 [Proof.] 0. secs (0.u,0.s) +Chars 1134 - 1141 [(intros).] 0. secs (0.u,0.s) +Chars 1142 - 1159 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 1160 - 1216 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 1220 - 1240 [(rewrite~unfold_iter).] 0.012 secs (0.011u,0.s) +Chars 1241 - 1245 [(cbn).] 0. secs (0.u,0.s) +Chars 1246 - 1263 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 1267 - 1285 [(rewrite~bind_bind).] 0.01 secs (0.01u,0.s) +Chars 1286 - 1312 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 1313 - 1332 [(rewrite~bind_ret_r).] 0.002 secs (0.002u,0.s) +Chars 1336 - 1348 [reflexivity.] 0. secs (0.u,0.s) +Chars 1349 - 1353 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1355 - 1550 [Lemma~try_catch_ev~:~~~forall~...] 0.001 secs (0.001u,0.s) +Chars 1551 - 1557 [Proof.] 0. secs (0.u,0.s) +Chars 1560 - 1567 [(intros).] 0. secs (0.u,0.s) +Chars 1568 - 1585 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 1586 - 1642 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 1645 - 1665 [(rewrite~unfold_iter).] 0.015 secs (0.014u,0.s) +Chars 1666 - 1670 [(cbn).] 0. secs (0.u,0.s) +Chars 1674 - 1691 [(rewrite~bind_map).] 0.012 secs (0.012u,0.s) +Chars 1692 - 1713 [(rewrite~bind_trigger).] 0.014 secs (0.013u,0.s) +Chars 1714 - 1726 [reflexivity.] 0. secs (0.u,0.s) +Chars 1729 - 1733 [Qed.] 0.006 secs (0.006u,0.s) +Chars 1735 - 1887 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) +Chars 1897 - 1922 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 1923 - 1933 [(red~in~Hk).] 0. secs (0.u,0.s) +Chars 1934 - 1950 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 1954 - 1966 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 1967 - 1974 [(intros).] 0. secs (0.u,0.s) +Chars 1975 - 1992 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 1993 - 2026 [setoid_rewrite~unfold_iter_ktree.] 0.07 secs (0.069u,0.s) +Chars 2029 - 2037 [(sinv~Ht).] 0.366 secs (0.359u,0.004s) +Chars 2041 - 2042 [-] 0. secs (0.u,0.s) +Chars 2043 - 2047 [(cbn).] 0. secs (0.u,0.s) +Chars 2048 - 2060 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 2064 - 2065 [-] 0. secs (0.u,0.s) +Chars 2066 - 2070 [(cbn).] 0. secs (0.u,0.s) +Chars 2071 - 2076 [etau.] 0.003 secs (0.003u,0.s) +Chars 2080 - 2081 [-] 0. secs (0.u,0.s) +Chars 2082 - 2093 [(destruct~e).] 0.005 secs (0.005u,0.s) +Chars 2098 - 2099 [+] 0. secs (0.u,0.s) +Chars 2100 - 2111 [(destruct~e).] 0.003 secs (0.003u,0.s) +Chars 2112 - 2117 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 2125 - 2144 [(rewrite~2!bind_map).] 0.066 secs (0.065u,0.s) +Chars 2145 - 2166 [(rewrite~2!bind_ret_r).] 0.045 secs (0.044u,0.s) +Chars 2174 - 2179 [step.] 0.009 secs (0.009u,0.s) +Chars 2180 - 2189 [(apply~Hk).] 0. secs (0.u,0.s) +Chars 2195 - 2196 [+] 0. secs (0.u,0.s) +Chars 2197 - 2201 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2202 - 2207 [evis.] 0.002 secs (0.002u,0.s) +Chars 2208 - 2213 [step.] 0.003 secs (0.003u,0.s) +Chars 2214 - 2218 [(cbn).] 0. secs (0.u,0.s) +Chars 2219 - 2224 [etau.] 0.003 secs (0.003u,0.s) +Chars 2226 - 2230 [Qed.] 0.044 secs (0.044u,0.s) +Chars 2232 - 2369 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) +Chars 2379 - 2404 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 2405 - 2415 [(red~in~Hk).] 0. secs (0.u,0.s) +Chars 2416 - 2432 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 2436 - 2448 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 2449 - 2456 [(intros).] 0. secs (0.u,0.s) +Chars 2457 - 2474 [(unfold~try_catch).] 0. secs (0.u,0.s) +Chars 2475 - 2508 [setoid_rewrite~unfold_iter_ktree.] 0.075 secs (0.074u,0.s) +Chars 2511 - 2522 [step~in~Ht.] 0.001 secs (0.001u,0.s) +Chars 2526 - 2571 [(hinduction~Ht~before~c;~intro...] 0.024 secs (0.024u,0.s) +Chars 2574 - 2575 [-] 0. secs (0.u,0.s) +Chars 2576 - 2580 [(cbn).] 0. secs (0.u,0.s) +Chars 2581 - 2593 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 2597 - 2598 [-] 0. secs (0.u,0.s) +Chars 2599 - 2603 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2604 - 2609 [etau.] 0.003 secs (0.003u,0.s) +Chars 2614 - 2615 [-] 0. secs (0.u,0.s) +Chars 2616 - 2627 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 2632 - 2633 [+] 0. secs (0.u,0.s) +Chars 2634 - 2645 [(destruct~e).] 0.003 secs (0.003u,0.s) +Chars 2646 - 2651 [bcbn.] 0.003 secs (0.003u,0.s) +Chars 2658 - 2677 [(rewrite~2!bind_map).] 0.06 secs (0.06u,0.s) +Chars 2678 - 2699 [(rewrite~2!bind_ret_r).] 0.041 secs (0.04u,0.s) +Chars 2707 - 2712 [step.] 0.009 secs (0.009u,0.s) +Chars 2713 - 2722 [(apply~Hk).] 0. secs (0.u,0.s) +Chars 2728 - 2729 [+] 0. secs (0.u,0.s) +Chars 2730 - 2735 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 2736 - 2741 [evis.] 0.003 secs (0.003u,0.s) +Chars 2742 - 2747 [step.] 0.003 secs (0.003u,0.s) +Chars 2748 - 2752 [(cbn).] 0. secs (0.u,0.s) +Chars 2753 - 2758 [etau.] 0.003 secs (0.003u,0.s) +Chars 2762 - 2763 [-] 0. secs (0.u,0.s) +Chars 2764 - 2768 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2769 - 2774 [taul.] 0. secs (0.u,0.s) +Chars 2775 - 2794 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 2797 - 2798 [-] 0. secs (0.u,0.s) +Chars 2799 - 2803 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2804 - 2809 [taur.] 0. secs (0.u,0.s) +Chars 2810 - 2829 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 2830 - 2834 [Qed.] 0.033 secs (0.033u,0.s) +Chars 2837 - 2976 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 2977 - 2983 [Proof.] 0. secs (0.u,0.s) +Chars 2986 - 3002 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 3003 - 3019 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 3023 - 3035 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3036 - 3043 [(intros).] 0. secs (0.u,0.s) +Chars 3044 - 3064 [(unfold~throw_prefix).] 0. secs (0.u,0.s) +Chars 3065 - 3098 [setoid_rewrite~unfold_iter_ktree.] 0.075 secs (0.075u,0.s) +Chars 3101 - 3109 [(sinv~Ht).] 0.343 secs (0.329u,0.001s) +Chars 3112 - 3113 [-] 0. secs (0.u,0.s) +Chars 3114 - 3118 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3119 - 3124 [etau.] 0.002 secs (0.002u,0.s) +Chars 3127 - 3128 [-] 0. secs (0.u,0.s) +Chars 3129 - 3140 [(destruct~e).] 0.004 secs (0.004u,0.s) +Chars 3145 - 3146 [+] 0. secs (0.u,0.s) +Chars 3147 - 3158 [(destruct~e).] 0.004 secs (0.004u,0.s) +Chars 3159 - 3163 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3164 - 3176 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3182 - 3183 [+] 0. secs (0.u,0.s) +Chars 3184 - 3188 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3189 - 3194 [evis.] 0.002 secs (0.002u,0.s) +Chars 3195 - 3200 [step.] 0.003 secs (0.003u,0.s) +Chars 3201 - 3205 [(cbn).] 0. secs (0.u,0.s) +Chars 3206 - 3211 [etau.] 0.002 secs (0.002u,0.s) +Chars 3213 - 3217 [Qed.] 0.04 secs (0.04u,0.s) +Chars 3219 - 3325 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 3326 - 3332 [Proof.] 0. secs (0.u,0.s) +Chars 3335 - 3351 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 3352 - 3368 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 3372 - 3384 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 3385 - 3392 [(intros).] 0. secs (0.u,0.s) +Chars 3393 - 3413 [(unfold~throw_prefix).] 0. secs (0.u,0.s) +Chars 3414 - 3447 [setoid_rewrite~unfold_iter_ktree.] 0.073 secs (0.072u,0.s) +Chars 3450 - 3461 [step~in~Ht.] 0.001 secs (0.001u,0.s) +Chars 3462 - 3507 [(hinduction~Ht~before~c;~intro...] 0.021 secs (0.021u,0.s) +Chars 3510 - 3511 [-] 0. secs (0.u,0.s) +Chars 3512 - 3516 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3517 - 3522 [etau.] 0.002 secs (0.002u,0.s) +Chars 3525 - 3526 [-] 0. secs (0.u,0.s) +Chars 3527 - 3538 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 3543 - 3544 [+] 0. secs (0.u,0.s) +Chars 3545 - 3556 [(destruct~e).] 0.004 secs (0.004u,0.s) +Chars 3557 - 3561 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3562 - 3574 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3580 - 3581 [+] 0. secs (0.u,0.s) +Chars 3582 - 3586 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3587 - 3592 [evis.] 0.004 secs (0.003u,0.s) +Chars 3593 - 3598 [step.] 0.003 secs (0.003u,0.s) +Chars 3599 - 3603 [(cbn).] 0. secs (0.u,0.s) +Chars 3604 - 3609 [etau.] 0.002 secs (0.002u,0.s) +Chars 3613 - 3614 [-] 0. secs (0.u,0.s) +Chars 3615 - 3619 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3620 - 3625 [taul.] 0. secs (0.u,0.s) +Chars 3626 - 3645 [(eapply~IHHt;~eauto).] 0.001 secs (0.u,0.s) +Chars 3648 - 3649 [-] 0. secs (0.u,0.s) +Chars 3650 - 3654 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3655 - 3660 [taur.] 0. secs (0.u,0.s) +Chars 3661 - 3680 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 3681 - 3685 [Qed.] 0.027 secs (0.027u,0.s) +Chars 3687 - 3806 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 3807 - 3813 [Proof.] 0. secs (0.u,0.s) +Chars 3816 - 3903 [(destruct~b;~~~[~apply~proper_...] 0. secs (0.u,0.s) +Chars 3904 - 3908 [Qed.] 0.001 secs (0.u,0.s) +Chars 3910 - 4014 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) +Chars 4015 - 4021 [Proof.] 0. secs (0.u,0.s) +Chars 4024 - 4031 [(intros).] 0. secs (0.u,0.s) +Chars 4032 - 4065 [setoid_rewrite~unfold_iter_ktree.] 0.015 secs (0.015u,0.s) +Chars 4066 - 4070 [(cbn).] 0. secs (0.u,0.s) +Chars 4071 - 4090 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) +Chars 4091 - 4103 [reflexivity.] 0. secs (0.u,0.s) +Chars 4104 - 4108 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4110 - 4240 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) +Chars 4241 - 4247 [Proof.] 0. secs (0.u,0.s) +Chars 4250 - 4257 [(intros).] 0. secs (0.u,0.s) +Chars 4258 - 4296 [setoid_rewrite~unfold_iter_ktr...] 0.013 secs (0.013u,0.s) +Chars 4297 - 4301 [(cbn).] 0. secs (0.u,0.s) +Chars 4302 - 4321 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) +Chars 4324 - 4336 [reflexivity.] 0. secs (0.u,0.s) +Chars 4337 - 4341 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4343 - 4470 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) +Chars 4471 - 4477 [Proof.] 0. secs (0.u,0.s) +Chars 4480 - 4487 [(intros).] 0. secs (0.u,0.s) +Chars 4488 - 4521 [setoid_rewrite~unfold_iter_ktree.] 0.013 secs (0.013u,0.s) +Chars 4522 - 4526 [(cbn).] 0. secs (0.u,0.s) +Chars 4527 - 4546 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) +Chars 4547 - 4559 [reflexivity.] 0. secs (0.u,0.s) +Chars 4560 - 4564 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4566 - 4748 [Definition~throw_prefix_ev~:~~...] 0.001 secs (0.001u,0.s) +Chars 4749 - 4755 [Proof.] 0. secs (0.u,0.s) +Chars 4758 - 4765 [(intros).] 0. secs (0.u,0.s) +Chars 4766 - 4804 [setoid_rewrite~unfold_iter_ktr...] 0.017 secs (0.017u,0.s) +Chars 4805 - 4809 [(cbn).] 0. secs (0.u,0.s) +Chars 4810 - 4827 [(rewrite~bind_map).] 0.013 secs (0.013u,0.s) +Chars 4831 - 4852 [(rewrite~bind_trigger).] 0.01 secs (0.01u,0.s) +Chars 4853 - 4868 [(apply~eqit_Vis).] 0. secs (0.u,0.s) +Chars 4869 - 4876 [(intros).] 0. secs (0.u,0.s) +Chars 4877 - 4889 [reflexivity.] 0. secs (0.u,0.s) +Chars 4890 - 4894 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4896 - 5054 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) +Chars 5055 - 5061 [Proof.] 0. secs (0.u,0.s) +Chars 5065 - 5087 [(intros~E~Err~R~kcatch).] 0. secs (0.u,0.s) +Chars 5088 - 5100 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 5101 - 5108 [(intros).] 0. secs (0.u,0.s) +Chars 5111 - 5184 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 5187 - 5188 [-] 0. secs (0.u,0.s) +Chars 5189 - 5201 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) +Chars 5202 - 5227 [(rewrite~throw_prefix_ret).] 0.022 secs (0.021u,0.s) +Chars 5228 - 5250 [(rewrite~try_catch_ret).] 0.02 secs (0.02u,0.s) +Chars 5251 - 5263 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 5266 - 5267 [-] 0. secs (0.u,0.s) +Chars 5268 - 5280 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) +Chars 5281 - 5306 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 5307 - 5329 [(rewrite~try_catch_tau).] 0.021 secs (0.021u,0.s) +Chars 5330 - 5335 [etau.] 0. secs (0.u,0.s) +Chars 5338 - 5339 [-] 0. secs (0.u,0.s) +Chars 5340 - 5351 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 5355 - 5356 [+] 0. secs (0.u,0.s) +Chars 5357 - 5368 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 5369 - 5381 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 5382 - 5407 [(rewrite~throw_prefix_exc).] 0.022 secs (0.021u,0.s) +Chars 5408 - 5430 [(rewrite~try_catch_ret).] 0.021 secs (0.02u,0.s) +Chars 5431 - 5443 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 5447 - 5448 [+] 0. secs (0.u,0.s) +Chars 5449 - 5461 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 5462 - 5486 [(rewrite~throw_prefix_ev).] 0.023 secs (0.022u,0.s) +Chars 5487 - 5508 [(rewrite~try_catch_ev).] 0.021 secs (0.021u,0.s) +Chars 5509 - 5514 [evis.] 0.002 secs (0.002u,0.s) +Chars 5520 - 5542 [(rewrite~try_catch_tau).] 0.018 secs (0.018u,0.s) +Chars 5543 - 5569 [(repeat~rewrite~tau_euttge).] 0.018 secs (0.018u,0.s) +Chars 5570 - 5580 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5581 - 5585 [Qed.] 0.018 secs (0.018u,0.s) +Chars 5587 - 5966 [Lemma~throw_prefix_bind_decomp...] 0.002 secs (0.002u,0.s) +Chars 5967 - 5973 [Proof.] 0. secs (0.u,0.s) +Chars 5976 - 5991 [(intros~E~Err~R).] 0. secs (0.u,0.s) +Chars 5992 - 6004 [coinduction.] 0.005 secs (0.005u,0.s) +Chars 6005 - 6012 [(intros).] 0. secs (0.u,0.s) +Chars 6015 - 6085 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) +Chars 6088 - 6089 [-] 0. secs (0.u,0.s) +Chars 6090 - 6102 [(rewrite~Heq).] 0.023 secs (0.022u,0.s) +Chars 6103 - 6128 [(rewrite~throw_prefix_ret).] 0.025 secs (0.025u,0.s) +Chars 6129 - 6148 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 6149 - 6154 [eret.] 0. secs (0.u,0.s) +Chars 6158 - 6159 [-] 0. secs (0.u,0.s) +Chars 6160 - 6172 [(rewrite~Heq).] 0.024 secs (0.023u,0.s) +Chars 6173 - 6198 [(rewrite~throw_prefix_tau).] 0.025 secs (0.025u,0.s) +Chars 6199 - 6216 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) +Chars 6217 - 6222 [etau.] 0. secs (0.u,0.s) +Chars 6225 - 6226 [-] 0. secs (0.u,0.s) +Chars 6227 - 6238 [(destruct~e).] 0.004 secs (0.002u,0.s) +Chars 6243 - 6244 [+] 0. secs (0.u,0.s) +Chars 6245 - 6257 [(rewrite~Heq).] 0.037 secs (0.03u,0.s) +Chars 6258 - 6269 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 6270 - 6295 [(rewrite~throw_prefix_exc).] 0.026 secs (0.026u,0.s) +Chars 6296 - 6315 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 6316 - 6321 [bcbn.] 0. secs (0.u,0.s) +Chars 6322 - 6327 [evis.] 0.002 secs (0.002u,0.s) +Chars 6335 - 6340 [easy.] 0.005 secs (0.005u,0.s) +Chars 6346 - 6347 [+] 0. secs (0.u,0.s) +Chars 6348 - 6360 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) +Chars 6361 - 6385 [(rewrite~throw_prefix_ev).] 0.025 secs (0.025u,0.s) +Chars 6386 - 6403 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) +Chars 6404 - 6409 [evis.] 0.002 secs (0.002u,0.s) +Chars 6417 - 6424 [(intros).] 0. secs (0.u,0.s) +Chars 6425 - 6444 [(rewrite~tau_euttge).] 0.01 secs (0.01u,0.s) +Chars 6445 - 6455 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6457 - 6461 [Qed.] 0.02 secs (0.02u,0.s) +Chars 6463 - 6962 [Lemma~try_catch_to_throw_prefi...] 0.001 secs (0.001u,0.s) +Chars 6963 - 6969 [Proof.] 0. secs (0.u,0.s) +Chars 6972 - 6979 [(intros).] 0. secs (0.u,0.s) +Chars 6980 - 6992 [revert~ttry.] 0. secs (0.u,0.s) +Chars 6993 - 7005 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 7009 - 7016 [(intros).] 0. secs (0.u,0.s) +Chars 7017 - 7090 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 7093 - 7094 [-] 0. secs (0.u,0.s) +Chars 7095 - 7107 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) +Chars 7108 - 7130 [(rewrite~try_catch_ret).] 0.02 secs (0.02u,0.s) +Chars 7131 - 7156 [(rewrite~throw_prefix_ret).] 0.024 secs (0.024u,0.s) +Chars 7157 - 7176 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) +Chars 7182 - 7187 [eret.] 0. secs (0.u,0.s) +Chars 7191 - 7192 [-] 0. secs (0.u,0.s) +Chars 7193 - 7205 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 7206 - 7228 [(rewrite~try_catch_tau).] 0.02 secs (0.02u,0.s) +Chars 7229 - 7254 [(rewrite~throw_prefix_tau).] 0.025 secs (0.025u,0.s) +Chars 7255 - 7272 [(rewrite~bind_tau).] 0.023 secs (0.022u,0.s) +Chars 7277 - 7282 [etau.] 0. secs (0.u,0.s) +Chars 7286 - 7287 [-] 0. secs (0.u,0.s) +Chars 7288 - 7299 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 7304 - 7305 [+] 0. secs (0.u,0.s) +Chars 7306 - 7317 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 7318 - 7330 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) +Chars 7331 - 7353 [(rewrite~try_catch_exc).] 0.02 secs (0.02u,0.s) +Chars 7354 - 7379 [(rewrite~throw_prefix_exc).] 0.024 secs (0.024u,0.s) +Chars 7380 - 7399 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 7406 - 7418 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 7424 - 7425 [+] 0. secs (0.u,0.s) +Chars 7426 - 7438 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 7439 - 7460 [(rewrite~try_catch_ev).] 0.02 secs (0.02u,0.s) +Chars 7461 - 7485 [(rewrite~throw_prefix_ev).] 0.025 secs (0.025u,0.s) +Chars 7486 - 7503 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) +Chars 7504 - 7530 [setoid_rewrite~tau_euttge.] 0.024 secs (0.024u,0.s) +Chars 7537 - 7542 [evis.] 0. secs (0.u,0.s) +Chars 7544 - 7548 [Qed.] 0.02 secs (0.02u,0.s) +Chars 7550 - 7817 [Lemma~throw_prefix_of_try_catc...] 0.001 secs (0.001u,0.s) +Chars 7818 - 7824 [Proof.] 0. secs (0.u,0.s) +Chars 7827 - 7834 [(intros).] 0. secs (0.u,0.s) +Chars 7835 - 7847 [revert~ttry.] 0. secs (0.u,0.s) +Chars 7848 - 7860 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 7864 - 7871 [(intros).] 0. secs (0.u,0.s) +Chars 7872 - 7945 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 7948 - 7949 [-] 0. secs (0.u,0.s) +Chars 7950 - 7962 [(rewrite~Heq).] 0.026 secs (0.026u,0.s) +Chars 7963 - 7982 [(rewrite~bind_ret_l).] 0.026 secs (0.026u,0.s) +Chars 7983 - 8012 [(repeat~rewrite~try_catch_ret).] 0.046 secs (0.046u,0.s) +Chars 8013 - 8038 [(rewrite~throw_prefix_ret).] 0.019 secs (0.019u,0.s) +Chars 8043 - 8048 [eret.] 0. secs (0.u,0.s) +Chars 8052 - 8053 [-] 0. secs (0.u,0.s) +Chars 8054 - 8066 [(rewrite~Heq).] 0.026 secs (0.025u,0.s) +Chars 8067 - 8084 [(rewrite~bind_tau).] 0.025 secs (0.025u,0.s) +Chars 8085 - 8114 [(repeat~rewrite~try_catch_tau).] 0.049 secs (0.048u,0.s) +Chars 8115 - 8140 [(rewrite~throw_prefix_tau).] 0.021 secs (0.02u,0.s) +Chars 8145 - 8150 [etau.] 0. secs (0.u,0.s) +Chars 8154 - 8155 [-] 0. secs (0.u,0.s) +Chars 8156 - 8167 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 8172 - 8173 [+] 0. secs (0.u,0.s) +Chars 8174 - 8185 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 8186 - 8198 [(rewrite~Heq).] 0.027 secs (0.027u,0.s) +Chars 8199 - 8216 [(rewrite~bind_vis).] 0.027 secs (0.027u,0.s) +Chars 8217 - 8246 [(repeat~rewrite~try_catch_exc).] 0.046 secs (0.045u,0.s) +Chars 8253 - 8265 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 8271 - 8272 [+] 0. secs (0.u,0.s) +Chars 8273 - 8285 [(rewrite~Heq).] 0.026 secs (0.026u,0.s) +Chars 8286 - 8303 [(rewrite~bind_vis).] 0.027 secs (0.027u,0.s) +Chars 8304 - 8332 [(repeat~rewrite~try_catch_ev).] 0.049 secs (0.049u,0.s) +Chars 8333 - 8357 [(rewrite~throw_prefix_ev).] 0.023 secs (0.023u,0.s) +Chars 8364 - 8396 [setoid_rewrite~throw_prefix_tau.] 0.113 secs (0.112u,0.s) +Chars 8403 - 8436 [(repeat~setoid_rewrite~tau_eut...] 0.063 secs (0.062u,0.s) +Chars 8443 - 8448 [evis.] 0. secs (0.u,0.s) +Chars 8450 - 8454 [Qed.] 0.027 secs (0.026u,0.s) +Chars 8456 - 8820 [Lemma~throw_prefix_bind~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) +Chars 8830 - 8837 [(intros).] 0. secs (0.u,0.s) +Chars 8838 - 8847 [revert~t.] 0. secs (0.u,0.s) +Chars 8848 - 8860 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 8864 - 8871 [(intros).] 0. secs (0.u,0.s) +Chars 8872 - 8942 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) +Chars 8945 - 8946 [-] 0. secs (0.u,0.s) +Chars 8947 - 8959 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) +Chars 8960 - 8985 [(rewrite~throw_prefix_ret).] 0.029 secs (0.029u,0.s) +Chars 8986 - 9012 [(repeat~rewrite~bind_ret_l).] 0.051 secs (0.051u,0.s) +Chars 9017 - 9029 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 9033 - 9034 [-] 0. secs (0.u,0.s) +Chars 9035 - 9047 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) +Chars 9048 - 9073 [(rewrite~throw_prefix_tau).] 0.028 secs (0.027u,0.s) +Chars 9074 - 9098 [(repeat~rewrite~bind_tau).] 0.051 secs (0.051u,0.s) +Chars 9099 - 9124 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 9129 - 9134 [etau.] 0. secs (0.u,0.s) +Chars 9138 - 9139 [-] 0. secs (0.u,0.s) +Chars 9140 - 9151 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 9156 - 9157 [+] 0. secs (0.u,0.s) +Chars 9158 - 9169 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 9170 - 9182 [(rewrite~Heq).] 0.028 secs (0.027u,0.s) +Chars 9183 - 9208 [(rewrite~throw_prefix_exc).] 0.029 secs (0.029u,0.s) +Chars 9209 - 9226 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) +Chars 9227 - 9252 [(rewrite~throw_prefix_exc).] 0.022 secs (0.022u,0.s) +Chars 9259 - 9278 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 9279 - 9284 [eret.] 0. secs (0.u,0.s) +Chars 9290 - 9291 [+] 0. secs (0.u,0.s) +Chars 9292 - 9304 [(rewrite~Heq).] 0.026 secs (0.026u,0.s) +Chars 9305 - 9329 [(rewrite~throw_prefix_ev).] 0.029 secs (0.029u,0.s) +Chars 9330 - 9354 [(repeat~rewrite~bind_vis).] 0.053 secs (0.053u,0.s) +Chars 9355 - 9379 [(rewrite~throw_prefix_ev).] 0.023 secs (0.023u,0.s) +Chars 9386 - 9391 [evis.] 0.002 secs (0.002u,0.s) +Chars 9392 - 9409 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 9410 - 9415 [step.] 0.003 secs (0.003u,0.s) +Chars 9416 - 9421 [taus.] 0. secs (0.u,0.s) +Chars 9422 - 9432 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9435 - 9439 [Qed.] 0.025 secs (0.025u,0.s) +Chars 9441 - 10039 [Lemma~throw_prefix_iter~:~~~fo...] 0.004 secs (0.004u,0.s) +Chars 10040 - 10046 [Proof.] 0. secs (0.u,0.s) +Chars 10049 - 10066 [(intros~E~Err~A~B).] 0. secs (0.u,0.s) +Chars 10067 - 10079 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 10080 - 10087 [(intros).] 0. secs (0.u,0.s) +Chars 10090 - 10130 [setoid_rewrite~unfold_iter_ktr...] 0.064 secs (0.064u,0.s) +Chars 10133 - 10214 [(destruct~(observe~(body~init)...] 0.004 secs (0.004u,0.s) +Chars 10217 - 10218 [-] 0. secs (0.u,0.s) +Chars 10219 - 10236 [(rewrite~Heq~~at~1).] 0.03 secs (0.029u,0.s) +Chars 10237 - 10256 [(rewrite~bind_ret_l).] 0.028 secs (0.028u,0.s) +Chars 10257 - 10282 [setoid_rewrite~bind_bind.] 0.056 secs (0.056u,0.s) +Chars 10288 - 10305 [(rewrite~Heq~~at~1).] 0.035 secs (0.035u,0.s) +Chars 10306 - 10331 [(rewrite~throw_prefix_ret).] 0.036 secs (0.035u,0.s) +Chars 10332 - 10351 [(rewrite~bind_ret_l).] 0.033 secs (0.033u,0.s) +Chars 10356 - 10387 [(destruct~r;~rewrite~bind_ret_l).] 0.062 secs (0.062u,0.s) +Chars 10392 - 10393 [+] 0. secs (0.u,0.s) +Chars 10394 - 10419 [(rewrite~throw_prefix_tau).] 0.024 secs (0.024u,0.s) +Chars 10420 - 10425 [etau.] 0. secs (0.u,0.s) +Chars 10431 - 10432 [+] 0. secs (0.u,0.s) +Chars 10433 - 10458 [(rewrite~throw_prefix_ret).] 0.02 secs (0.02u,0.s) +Chars 10459 - 10471 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 10475 - 10476 [-] 0. secs (0.u,0.s) +Chars 10477 - 10494 [(rewrite~Heq~~at~1).] 0.031 secs (0.031u,0.s) +Chars 10495 - 10520 [setoid_rewrite~bind_bind.] 0.059 secs (0.059u,0.s) +Chars 10521 - 10538 [(rewrite~Heq~~at~1).] 0.036 secs (0.036u,0.s) +Chars 10543 - 10568 [(rewrite~throw_prefix_tau).] 0.036 secs (0.035u,0.s) +Chars 10569 - 10593 [(repeat~rewrite~bind_tau).] 0.07 secs (0.069u,0.s) +Chars 10594 - 10619 [(rewrite~throw_prefix_tau).] 0.028 secs (0.028u,0.s) +Chars 10624 - 10629 [etau.] 0.003 secs (0.003u,0.s) +Chars 10630 - 10668 [setoid_rewrite~throw_prefix_bi...] 0.065 secs (0.065u,0.s) +Chars 10669 - 10690 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) +Chars 10696 - 10728 [(destruct~u2~as~[[a|~b]|~e]).] 0.001 secs (0.001u,0.s) +Chars 10733 - 10734 [+] 0. secs (0.u,0.s) +Chars 10735 - 10754 [(rewrite~bind_ret_l).] 0.026 secs (0.026u,0.s) +Chars 10755 - 10780 [(rewrite~throw_prefix_tau).] 0.02 secs (0.02u,0.s) +Chars 10781 - 10792 [(step;~etau).] 0.003 secs (0.003u,0.s) +Chars 10798 - 10799 [+] 0. secs (0.u,0.s) +Chars 10800 - 10819 [(rewrite~bind_ret_l).] 0.025 secs (0.024u,0.s) +Chars 10820 - 10845 [(rewrite~throw_prefix_ret).] 0.018 secs (0.018u,0.s) +Chars 10846 - 10858 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10864 - 10865 [+] 0. secs (0.u,0.s) +Chars 10866 - 10885 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 10886 - 10897 [(step;~eret).] 0.003 secs (0.003u,0.s) +Chars 10901 - 10902 [-] 0. secs (0.u,0.s) +Chars 10903 - 10920 [(rewrite~Heq~~at~1).] 0.031 secs (0.03u,0.s) +Chars 10921 - 10946 [setoid_rewrite~bind_bind.] 0.063 secs (0.062u,0.s) +Chars 10947 - 10964 [(rewrite~Heq~~at~1).] 0.037 secs (0.036u,0.s) +Chars 10969 - 10980 [(destruct~e).] 0.002 secs (0.002u,0.s) +Chars 10985 - 10986 [+] 0. secs (0.u,0.s) +Chars 10987 - 10998 [(destruct~e).] 0.002 secs (0.002u,0.s) +Chars 10999 - 11016 [(rewrite~bind_vis).] 0.031 secs (0.031u,0.s) +Chars 11017 - 11042 [(rewrite~throw_prefix_exc).] 0.029 secs (0.029u,0.s) +Chars 11049 - 11081 [setoid_rewrite~throw_prefix_exc.] 0.106 secs (0.106u,0.s) +Chars 11082 - 11108 [(repeat~rewrite~bind_ret_l).] 0.065 secs (0.064u,0.s) +Chars 11115 - 11127 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 11133 - 11134 [+] 0. secs (0.u,0.s) +Chars 11135 - 11152 [(rewrite~bind_vis).] 0.03 secs (0.029u,0.s) +Chars 11153 - 11177 [(rewrite~throw_prefix_ev).] 0.031 secs (0.03u,0.s) +Chars 11178 - 11209 [setoid_rewrite~throw_prefix_ev.] 0.12 secs (0.119u,0.s) +Chars 11216 - 11233 [(rewrite~bind_vis).] 0.036 secs (0.035u,0.s) +Chars 11234 - 11258 [setoid_rewrite~bind_tau.] 0.068 secs (0.068u,0.s) +Chars 11259 - 11264 [evis.] 0.002 secs (0.002u,0.s) +Chars 11265 - 11276 [(step;~etau).] 0.006 secs (0.006u,0.s) +Chars 11284 - 11310 [(rewrite~throw_prefix_bind).] 0.023 secs (0.022u,0.s) +Chars 11311 - 11332 [(ebind;~intros;~subst).] 0.01 secs (0.01u,0.s) +Chars 11340 - 11373 [(destruct~u2~as~[[a|~b]|~e']).] 0.001 secs (0.001u,0.s) +Chars 11380 - 11381 [*] 0. secs (0.u,0.s) +Chars 11382 - 11401 [(rewrite~bind_ret_l).] 0.026 secs (0.026u,0.s) +Chars 11402 - 11427 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 11428 - 11439 [(step;~etau).] 0.004 secs (0.004u,0.s) +Chars 11447 - 11448 [*] 0. secs (0.u,0.s) +Chars 11449 - 11468 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 11469 - 11494 [(rewrite~throw_prefix_ret).] 0.017 secs (0.017u,0.s) +Chars 11503 - 11515 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11523 - 11524 [*] 0. secs (0.u,0.s) +Chars 11525 - 11544 [(rewrite~bind_ret_l).] 0.024 secs (0.024u,0.s) +Chars 11545 - 11557 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11559 - 11563 [Qed.] 0.095 secs (0.094u,0.s) diff --git a/theories/Events/FailFacts.v.timing b/theories/Events/FailFacts.v.timing index 8ace4ed8..21d339b1 100644 --- a/theories/Events/FailFacts.v.timing +++ b/theories/Events/FailFacts.v.timing @@ -1,200 +1,201 @@ -Chars 58 - 100 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 102 - 430 [From~ITree~Require~Import~Basi...] 0.09 secs (0.075u,0.014s) -Chars 432 - 454 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 455 - 489 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 490 - 519 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 521 - 535 [Import~Monads.] 0. secs (0.u,0.s) -Chars 537 - 551 [Section~FailT.] 0. secs (0.u,0.s) -Chars 555 - 641 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) -Chars 645 - 724 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) -Chars 728 - 929 [#[global]~Instance~failT_fun~:...] 0. secs (0.u,0.s) -Chars 933 - 1179 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) -Chars 1183 - 1815 [#[global]~Instance~failT_iter~...] 0.001 secs (0.001u,0.s) -Chars 1817 - 1827 [End~FailT.] 0. secs (0.u,0.s) -Chars 1829 - 1847 [Section~FailTLaws.] 0. secs (0.u,0.s) -Chars 1851 - 1942 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) -Chars 1946 - 2017 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) -Chars 2020 - 2026 [Proof.] 0. secs (0.u,0.s) -Chars 2031 - 2052 [(apply~Reflexive_eqit).] 0. secs (0.u,0.s) -Chars 2057 - 2073 [(intros~[];~auto).] 0. secs (0.u,0.s) -Chars 2076 - 2080 [Qed.] 0. secs (0.u,0.s) -Chars 2084 - 2155 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) -Chars 2158 - 2164 [Proof.] 0. secs (0.u,0.s) -Chars 2169 - 2190 [(apply~Symmetric_eqit).] 0. secs (0.u,0.s) -Chars 2195 - 2214 [(intros~[]~[];~auto).] 0. secs (0.u,0.s) -Chars 2217 - 2221 [Qed.] 0. secs (0.u,0.s) -Chars 2225 - 2298 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 2301 - 2307 [Proof.] 0. secs (0.u,0.s) -Chars 2312 - 2334 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) -Chars 2339 - 2394 [(intros~[]~[]~[]~?~?;~subst;~c...] 0.002 secs (0.002u,0.s) -Chars 2397 - 2401 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2405 - 2480 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 2483 - 2489 [Proof.] 0. secs (0.u,0.s) -Chars 2494 - 2519 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 2522 - 2526 [Qed.] 0. secs (0.u,0.s) -Chars 2530 - 2597 [#[global]~Instance~MonadLaws_f...] 0. secs (0.u,0.s) -Chars 2600 - 2606 [Proof.] 0. secs (0.u,0.s) -Chars 2611 - 2622 [(split;~cbn).] 0. secs (0.u,0.s) -Chars 2627 - 2628 [-] 0. secs (0.u,0.s) -Chars 2629 - 2674 [(cbn;~intros;~rewrite~bind_ret...] 0.002 secs (0.002u,0.s) -Chars 2679 - 2680 [-] 0. secs (0.u,0.s) -Chars 2681 - 2693 [(cbn;~intros).] 0. secs (0.u,0.s) -Chars 2700 - 2731 [(rewrite~<-~(bind_ret_r~x)~~at...] 0.002 secs (0.002u,0.s) -Chars 2738 - 2782 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) -Chars 2787 - 2788 [-] 0. secs (0.u,0.s) -Chars 2789 - 2820 [(intros;~cbn;~rewrite~bind_bind).] 0.002 secs (0.002u,0.s) -Chars 2827 - 2858 [(eapply~eutt_eq_bind;~intros~[]).] 0. secs (0.u,0.s) -Chars 2866 - 2867 [+] 0. secs (0.u,0.s) -Chars 2868 - 2912 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) -Chars 2920 - 2921 [+] 0. secs (0.u,0.s) -Chars 2922 - 2954 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) -Chars 2959 - 2960 [-] 0. secs (0.u,0.s) -Chars 2961 - 2979 [(repeat~intro;~cbn).] 0. secs (0.u,0.s) -Chars 2986 - 3015 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3022 - 3075 [(intros~[]~[]~REL;~cbn~in~*;~s...] 0.037 secs (0.036u,0.s) -Chars 3082 - 3083 [+] 0. secs (0.u,0.s) -Chars 3084 - 3093 [(apply~H0).] 0. secs (0.u,0.s) -Chars 3100 - 3101 [+] 0. secs (0.u,0.s) -Chars 3102 - 3114 [reflexivity.] 0. secs (0.u,0.s) -Chars 3117 - 3121 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3125 - 3139 [End~FailTLaws.] 0. secs (0.u,0.s) -Chars 3291 - 3455 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.001u,0.s) -Chars 3456 - 3496 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) -Chars 3539 - 3787 [Definition~_interp_fail~{E}~{F...] 0.001 secs (0.001u,0.s) -Chars 3810 - 3948 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) -Chars 3949 - 3955 [Proof.] 0. secs (0.u,0.s) -Chars 3958 - 3984 [(unfold~interp_fail,~interp).] 0. secs (0.u,0.s) -Chars 3985 - 4046 [(unfold~Basics.iter,~failT_ite...] 0. secs (0.u,0.s) -Chars 4049 - 4069 [(rewrite~unfold_iter).] 0.006 secs (0.006u,0.s) -Chars 4070 - 4074 [(cbn).] 0. secs (0.u,0.s) -Chars 4077 - 4098 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) -Chars 4101 - 4175 [(cbn;~repeat~(rewrite~?bind_bi...] 0.039 secs (0.031u,0.007s) -Chars 4178 - 4252 [(cbn;~repeat~(rewrite~?bind_bi...] 0.036 secs (0.035u,0.s) -Chars 4255 - 4329 [(cbn;~repeat~(rewrite~?bind_bi...] 0.044 secs (0.044u,0.s) -Chars 4332 - 4405 [(apply~eq_itree_bind~with~(UU~...] 0.001 secs (0.001u,0.s) -Chars 4409 - 4428 [(destruct~x~as~[x|~]).] 0. secs (0.u,0.s) -Chars 4431 - 4432 [-] 0. secs (0.u,0.s) -Chars 4433 - 4465 [(rewrite~bind_ret_l;~reflexivi...] 0.007 secs (0.007u,0.s) -Chars 4468 - 4469 [-] 0. secs (0.u,0.s) -Chars 4470 - 4502 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) -Chars 4503 - 4507 [Qed.] 0.02 secs (0.019u,0.s) -Chars 4509 - 4683 [#[global]~Instance~interp_fail...] 0.001 secs (0.u,0.s) -Chars 4684 - 4690 [Proof.] 0. secs (0.u,0.s) -Chars 4693 - 4704 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4708 - 4720 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4724 - 4738 [(intros~s~t~EQ).] 0. secs (0.u,0.s) -Chars 4741 - 4770 [(rewrite~2!unfold_interp_fail).] 0.031 secs (0.03u,0.s) -Chars 4773 - 4784 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4788 - 4848 [(destruct~EQ;~cbn;~subst;~try~...] 0.008 secs (0.008u,0.s) -Chars 4852 - 4859 [to_mon.] 0. secs (0.u,0.s) -Chars 4860 - 4881 [(ebind;~intros;~subst).] 0.025 secs (0.025u,0.s) -Chars 4882 - 4894 [(destruct~u2).] 0. secs (0.u,0.s) -Chars 4898 - 4903 [etau.] 0.005 secs (0.005u,0.s) -Chars 4904 - 4909 [eret.] 0. secs (0.u,0.s) -Chars 4911 - 4915 [Qed.] 0.009 secs (0.009u,0.s) -Chars 5016 - 5161 [#[global]~Instance~interp_fail...] 0.001 secs (0.u,0.s) -Chars 5162 - 5168 [Proof.] 0. secs (0.u,0.s) -Chars 5171 - 5184 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5187 - 5209 [(rewrite~option_rel_eq).] 0.003 secs (0.002u,0.s) -Chars 5212 - 5245 [(apply~interp_fail_eq_itree;~a...] 0. secs (0.u,0.s) -Chars 5246 - 5250 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5252 - 5395 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) -Chars 5396 - 5402 [Proof.] 0. secs (0.u,0.s) -Chars 5405 - 5416 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5420 - 5432 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5436 - 5450 [(intros~s~t~EQ).] 0. secs (0.u,0.s) -Chars 5453 - 5482 [(rewrite~2!unfold_interp_fail).] 0.033 secs (0.032u,0.s) -Chars 5485 - 5496 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 5500 - 5552 [(induction~EQ;~intros;~bcbn;~s...] 0.038 secs (0.037u,0.s) -Chars 5556 - 5557 [-] 0. secs (0.u,0.s) -Chars 5558 - 5563 [eret.] 0. secs (0.u,0.s) -Chars 5567 - 5568 [-] 0. secs (0.u,0.s) -Chars 5569 - 5574 [etau.] 0.002 secs (0.002u,0.s) -Chars 5578 - 5579 [-] 0. secs (0.u,0.s) -Chars 5580 - 5601 [(ebind;~intros;~subst).] 0.023 secs (0.023u,0.s) -Chars 5602 - 5646 [(destruct~u2;~econstructor;~ea...] 0.004 secs (0.004u,0.s) -Chars 5651 - 5652 [-] 0. secs (0.u,0.s) -Chars 5653 - 5699 [(rewrite~tau_euttge,~unfold_in...] 0.02 secs (0.02u,0.s) -Chars 5702 - 5703 [-] 0. secs (0.u,0.s) -Chars 5704 - 5750 [(rewrite~tau_euttge,~unfold_in...] 0.022 secs (0.021u,0.s) -Chars 5751 - 5755 [Qed.] 0.013 secs (0.012u,0.s) -Chars 5856 - 5989 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) -Chars 5990 - 5996 [Proof.] 0. secs (0.u,0.s) -Chars 5999 - 6012 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 6015 - 6037 [(rewrite~option_rel_eq).] 0.002 secs (0.002u,0.s) -Chars 6040 - 6069 [(apply~interp_fail_eutt;~auto).] 0. secs (0.u,0.s) -Chars 6070 - 6074 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6076 - 6211 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) -Chars 6212 - 6218 [Proof.] 0. secs (0.u,0.s) -Chars 6219 - 6246 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) -Chars 6247 - 6259 [reflexivity.] 0. secs (0.u,0.s) -Chars 6260 - 6264 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6266 - 6651 [Lemma~interp_fail_vis~{E~F~:~T...] 0.001 secs (0.001u,0.s) -Chars 6652 - 6658 [Proof.] 0. secs (0.u,0.s) -Chars 6661 - 6688 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) -Chars 6689 - 6701 [reflexivity.] 0. secs (0.u,0.s) -Chars 6702 - 6706 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7143 - 7261 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) -Chars 7262 - 7268 [Proof.] 0. secs (0.u,0.s) -Chars 7271 - 7319 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) -Chars 7320 - 7324 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7326 - 7460 [Lemma~interp_fail_ret~:~~~fora...] 0.002 secs (0.002u,0.s) -Chars 7461 - 7467 [Proof.] 0. secs (0.u,0.s) -Chars 7470 - 7518 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) -Chars 7519 - 7523 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7525 - 7673 [Lemma~interp_fail_trigger~{E~F...] 0. secs (0.u,0.s) -Chars 7674 - 7680 [Proof.] 0. secs (0.u,0.s) -Chars 7683 - 7704 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 7705 - 7729 [(rewrite~interp_fail_vis).] 0.001 secs (0.001u,0.s) -Chars 7732 - 7819 [(match~goal~with~~|~|-~?y~≈~?x...] 0.001 secs (0.001u,0.s) -Chars 7822 - 7842 [(eapply~eutt_eq_bind).] 0. secs (0.u,0.s) -Chars 7845 - 7906 [(intros~[];~try~reflexivity;~r...] 0.004 secs (0.004u,0.s) -Chars 7909 - 7921 [reflexivity.] 0. secs (0.u,0.s) -Chars 7922 - 7926 [Qed.] 0.002 secs (0.002u,0.s) -Chars 7942 - 8230 [Lemma~interp_fail_bind~:~~~for...] 0.001 secs (0.001u,0.s) -Chars 8231 - 8237 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8276 [(intros~X~Y~E~F;~coinduction;~...] 0.002 secs (0.002u,0.s) -Chars 8279 - 8299 [(rewrite~unfold_bind).] 0.018 secs (0.018u,0.s) -Chars 8302 - 8335 [(rewrite~(unfold_interp_fail~h...] 0.02 secs (0.02u,0.s) -Chars 8338 - 8372 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) -Chars 8375 - 8376 [-] 0. secs (0.u,0.s) -Chars 8377 - 8396 [(rewrite~bind_ret_l).] 0.02 secs (0.019u,0.s) -Chars 8397 - 8409 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8413 - 8414 [-] 0. secs (0.u,0.s) -Chars 8415 - 8420 [taus.] 0. secs (0.u,0.s) -Chars 8421 - 8431 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8435 - 8436 [-] 0. secs (0.u,0.s) -Chars 8437 - 8472 [(rewrite~bind_bind,~interp_fai...] 0.035 secs (0.035u,0.s) -Chars 8477 - 8498 [(ebind;~intros;~subst).] 0.011 secs (0.011u,0.s) -Chars 8505 - 8517 [(destruct~u2).] 0. secs (0.u,0.s) -Chars 8523 - 8524 [+] 0. secs (0.u,0.s) -Chars 8525 - 8542 [(rewrite~bind_tau).] 0.022 secs (0.021u,0.s) -Chars 8549 - 8554 [etau.] 0. secs (0.u,0.s) -Chars 8560 - 8561 [+] 0. secs (0.u,0.s) -Chars 8562 - 8581 [(rewrite~bind_ret_l).] 0.022 secs (0.021u,0.s) -Chars 8588 - 8606 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 8607 - 8611 [Qed.] 0.043 secs (0.021u,0.s) -Chars 8626 - 8856 [Lemma~interp_failure_bind'~:~~...] 0.001 secs (0.001u,0.s) -Chars 8857 - 8863 [Proof.] 0. secs (0.u,0.s) -Chars 8866 - 8881 [(intros~X~Y~E~F).] 0. secs (0.u,0.s) -Chars 8884 - 8888 [(cbn).] 0. secs (0.u,0.s) -Chars 8891 - 8911 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) -Chars 8916 - 8962 [(rewrite~unfold_bind,~(unfold_...] 0.04 secs (0.039u,0.s) -Chars 8965 - 8999 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) -Chars 9002 - 9003 [-] 0. secs (0.u,0.s) -Chars 9004 - 9023 [(rewrite~bind_ret_l).] 0.019 secs (0.018u,0.s) -Chars 9024 - 9036 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9040 - 9041 [-] 0. secs (0.u,0.s) -Chars 9042 - 9047 [etau.] 0.013 secs (0.013u,0.s) -Chars 9048 - 9058 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9062 - 9063 [-] 0. secs (0.u,0.s) -Chars 9064 - 9099 [(rewrite~bind_bind,~interp_fai...] 0.037 secs (0.036u,0.s) -Chars 9104 - 9125 [(ebind;~intros;~subst).] 0.01 secs (0.01u,0.s) -Chars 9131 - 9143 [(destruct~u2).] 0. secs (0.u,0.s) -Chars 9149 - 9150 [+] 0. secs (0.u,0.s) -Chars 9151 - 9168 [(rewrite~bind_tau).] 0.022 secs (0.021u,0.s) -Chars 9175 - 9180 [etau.] 0. secs (0.u,0.s) -Chars 9186 - 9187 [+] 0. secs (0.u,0.s) -Chars 9188 - 9207 [(rewrite~bind_ret_l).] 0.021 secs (0.02u,0.s) -Chars 9214 - 9226 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9227 - 9231 [Qed.] 0.015 secs (0.015u,0.s) +Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 97 - 139 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 141 - 469 [From~ITree~Require~Import~Basi...] 0.087 secs (0.072u,0.014s) +Chars 471 - 493 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 494 - 528 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 529 - 558 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 560 - 574 [Import~Monads.] 0. secs (0.u,0.s) +Chars 576 - 590 [Section~FailT.] 0. secs (0.u,0.s) +Chars 594 - 680 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) +Chars 684 - 763 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) +Chars 767 - 968 [#[global]~Instance~failT_fun~:...] 0. secs (0.u,0.s) +Chars 972 - 1218 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) +Chars 1222 - 1854 [#[global]~Instance~failT_iter~...] 0.001 secs (0.001u,0.s) +Chars 1856 - 1866 [End~FailT.] 0. secs (0.u,0.s) +Chars 1868 - 1886 [Section~FailTLaws.] 0. secs (0.u,0.s) +Chars 1890 - 1981 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) +Chars 1985 - 2056 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) +Chars 2059 - 2065 [Proof.] 0. secs (0.u,0.s) +Chars 2070 - 2091 [(apply~Reflexive_eqit).] 0. secs (0.u,0.s) +Chars 2096 - 2112 [(intros~[];~auto).] 0.001 secs (0.001u,0.s) +Chars 2115 - 2119 [Qed.] 0. secs (0.u,0.s) +Chars 2123 - 2194 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) +Chars 2197 - 2203 [Proof.] 0. secs (0.u,0.s) +Chars 2208 - 2229 [(apply~Symmetric_eqit).] 0. secs (0.u,0.s) +Chars 2234 - 2253 [(intros~[]~[];~auto).] 0. secs (0.u,0.s) +Chars 2256 - 2260 [Qed.] 0. secs (0.u,0.s) +Chars 2264 - 2337 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 2340 - 2346 [Proof.] 0. secs (0.u,0.s) +Chars 2351 - 2373 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) +Chars 2378 - 2433 [(intros~[]~[]~[]~?~?;~subst;~c...] 0.002 secs (0.002u,0.s) +Chars 2436 - 2440 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2444 - 2519 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 2522 - 2528 [Proof.] 0. secs (0.u,0.s) +Chars 2533 - 2558 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 2561 - 2565 [Qed.] 0. secs (0.u,0.s) +Chars 2569 - 2636 [#[global]~Instance~MonadLaws_f...] 0. secs (0.u,0.s) +Chars 2639 - 2645 [Proof.] 0. secs (0.u,0.s) +Chars 2650 - 2661 [(split;~cbn).] 0. secs (0.u,0.s) +Chars 2666 - 2667 [-] 0. secs (0.u,0.s) +Chars 2668 - 2713 [(cbn;~intros;~rewrite~bind_ret...] 0.002 secs (0.002u,0.s) +Chars 2718 - 2719 [-] 0. secs (0.u,0.s) +Chars 2720 - 2732 [(cbn;~intros).] 0. secs (0.u,0.s) +Chars 2739 - 2770 [(rewrite~<-~(bind_ret_r~x)~~at...] 0.002 secs (0.002u,0.s) +Chars 2777 - 2821 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) +Chars 2826 - 2827 [-] 0. secs (0.u,0.s) +Chars 2828 - 2859 [(intros;~cbn;~rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 2866 - 2897 [(eapply~eutt_eq_bind;~intros~[]).] 0. secs (0.u,0.s) +Chars 2905 - 2906 [+] 0. secs (0.u,0.s) +Chars 2907 - 2951 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) +Chars 2959 - 2960 [+] 0. secs (0.u,0.s) +Chars 2961 - 2993 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 2998 - 2999 [-] 0. secs (0.u,0.s) +Chars 3000 - 3018 [(repeat~intro;~cbn).] 0. secs (0.u,0.s) +Chars 3025 - 3054 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 3061 - 3114 [(intros~[]~[]~REL;~cbn~in~*;~s...] 0.039 secs (0.038u,0.s) +Chars 3121 - 3122 [+] 0. secs (0.u,0.s) +Chars 3123 - 3132 [(apply~H0).] 0. secs (0.u,0.s) +Chars 3139 - 3140 [+] 0. secs (0.u,0.s) +Chars 3141 - 3153 [reflexivity.] 0. secs (0.u,0.s) +Chars 3156 - 3160 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3164 - 3178 [End~FailTLaws.] 0. secs (0.u,0.s) +Chars 3330 - 3494 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.001u,0.s) +Chars 3495 - 3535 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) +Chars 3578 - 3826 [Definition~_interp_fail~{E}~{F...] 0.002 secs (0.002u,0.s) +Chars 3849 - 3987 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) +Chars 3988 - 3994 [Proof.] 0. secs (0.u,0.s) +Chars 3997 - 4023 [(unfold~interp_fail,~interp).] 0. secs (0.u,0.s) +Chars 4024 - 4085 [(unfold~Basics.iter,~failT_ite...] 0. secs (0.u,0.s) +Chars 4088 - 4108 [(rewrite~unfold_iter).] 0.006 secs (0.006u,0.s) +Chars 4109 - 4113 [(cbn).] 0. secs (0.u,0.s) +Chars 4116 - 4137 [(destruct~(observe~t)).] 0.002 secs (0.002u,0.s) +Chars 4140 - 4214 [(cbn;~repeat~(rewrite~?bind_bi...] 0.044 secs (0.034u,0.008s) +Chars 4217 - 4291 [(cbn;~repeat~(rewrite~?bind_bi...] 0.04 secs (0.039u,0.001s) +Chars 4294 - 4368 [(cbn;~repeat~(rewrite~?bind_bi...] 0.046 secs (0.045u,0.s) +Chars 4371 - 4444 [(apply~eq_itree_bind~with~(UU~...] 0.001 secs (0.001u,0.s) +Chars 4448 - 4467 [(destruct~x~as~[x|~]).] 0. secs (0.u,0.s) +Chars 4470 - 4471 [-] 0. secs (0.u,0.s) +Chars 4472 - 4504 [(rewrite~bind_ret_l;~reflexivi...] 0.008 secs (0.008u,0.s) +Chars 4507 - 4508 [-] 0. secs (0.u,0.s) +Chars 4509 - 4541 [(rewrite~bind_ret_l;~reflexivi...] 0.009 secs (0.007u,0.s) +Chars 4542 - 4546 [Qed.] 0.033 secs (0.026u,0.s) +Chars 4548 - 4722 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 4723 - 4729 [Proof.] 0. secs (0.u,0.s) +Chars 4732 - 4743 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4747 - 4759 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4763 - 4777 [(intros~s~t~EQ).] 0. secs (0.u,0.s) +Chars 4780 - 4809 [(rewrite~2!unfold_interp_fail).] 0.036 secs (0.035u,0.s) +Chars 4812 - 4823 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 4827 - 4887 [(destruct~EQ;~cbn;~subst;~try~...] 0.009 secs (0.009u,0.s) +Chars 4891 - 4898 [to_mon.] 0. secs (0.u,0.s) +Chars 4899 - 4920 [(ebind;~intros;~subst).] 0.028 secs (0.028u,0.s) +Chars 4921 - 4933 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 4937 - 4942 [etau.] 0.005 secs (0.005u,0.s) +Chars 4943 - 4948 [eret.] 0. secs (0.u,0.s) +Chars 4950 - 4954 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5055 - 5200 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) +Chars 5201 - 5207 [Proof.] 0. secs (0.u,0.s) +Chars 5210 - 5223 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5226 - 5248 [(rewrite~option_rel_eq).] 0.002 secs (0.002u,0.s) +Chars 5251 - 5284 [(apply~interp_fail_eq_itree;~a...] 0. secs (0.u,0.s) +Chars 5285 - 5289 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5291 - 5434 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) +Chars 5444 - 5455 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5459 - 5471 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5475 - 5489 [(intros~s~t~EQ).] 0. secs (0.u,0.s) +Chars 5492 - 5521 [(rewrite~2!unfold_interp_fail).] 0.034 secs (0.034u,0.s) +Chars 5524 - 5535 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 5539 - 5591 [(induction~EQ;~intros;~bcbn;~s...] 0.04 secs (0.04u,0.s) +Chars 5595 - 5596 [-] 0. secs (0.u,0.s) +Chars 5597 - 5602 [eret.] 0. secs (0.u,0.s) +Chars 5606 - 5607 [-] 0. secs (0.u,0.s) +Chars 5608 - 5613 [etau.] 0.002 secs (0.002u,0.s) +Chars 5617 - 5618 [-] 0. secs (0.u,0.s) +Chars 5619 - 5640 [(ebind;~intros;~subst).] 0.024 secs (0.023u,0.s) +Chars 5641 - 5685 [(destruct~u2;~econstructor;~ea...] 0.005 secs (0.005u,0.s) +Chars 5690 - 5691 [-] 0. secs (0.u,0.s) +Chars 5692 - 5738 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) +Chars 5741 - 5742 [-] 0. secs (0.u,0.s) +Chars 5743 - 5789 [(rewrite~tau_euttge,~unfold_in...] 0.025 secs (0.025u,0.s) +Chars 5790 - 5794 [Qed.] 0.013 secs (0.013u,0.s) +Chars 5895 - 6028 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 6029 - 6035 [Proof.] 0. secs (0.u,0.s) +Chars 6038 - 6051 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 6054 - 6076 [(rewrite~option_rel_eq).] 0.003 secs (0.003u,0.s) +Chars 6079 - 6108 [(apply~interp_fail_eutt;~auto).] 0. secs (0.u,0.s) +Chars 6109 - 6113 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6115 - 6250 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) +Chars 6251 - 6257 [Proof.] 0. secs (0.u,0.s) +Chars 6258 - 6285 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) +Chars 6286 - 6298 [reflexivity.] 0. secs (0.u,0.s) +Chars 6299 - 6303 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6305 - 6690 [Lemma~interp_fail_vis~{E~F~:~T...] 0.001 secs (0.001u,0.s) +Chars 6691 - 6697 [Proof.] 0. secs (0.u,0.s) +Chars 6700 - 6727 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) +Chars 6728 - 6740 [reflexivity.] 0. secs (0.u,0.s) +Chars 6741 - 6745 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7182 - 7300 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) +Chars 7301 - 7307 [Proof.] 0. secs (0.u,0.s) +Chars 7310 - 7358 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) +Chars 7359 - 7363 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7365 - 7499 [Lemma~interp_fail_ret~:~~~fora...] 0.002 secs (0.002u,0.s) +Chars 7500 - 7506 [Proof.] 0. secs (0.u,0.s) +Chars 7509 - 7557 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) +Chars 7558 - 7562 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7564 - 7712 [Lemma~interp_fail_trigger~{E~F...] 0. secs (0.u,0.s) +Chars 7713 - 7719 [Proof.] 0. secs (0.u,0.s) +Chars 7722 - 7743 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 7744 - 7768 [(rewrite~interp_fail_vis).] 0.001 secs (0.001u,0.s) +Chars 7771 - 7858 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.002u,0.s) +Chars 7861 - 7881 [(eapply~eutt_eq_bind).] 0. secs (0.u,0.s) +Chars 7884 - 7945 [(intros~[];~try~reflexivity;~r...] 0.004 secs (0.004u,0.s) +Chars 7948 - 7960 [reflexivity.] 0. secs (0.u,0.s) +Chars 7961 - 7965 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7981 - 8269 [Lemma~interp_fail_bind~:~~~for...] 0.001 secs (0.001u,0.s) +Chars 8270 - 8276 [Proof.] 0. secs (0.u,0.s) +Chars 8279 - 8315 [(intros~X~Y~E~F;~coinduction;~...] 0.003 secs (0.003u,0.s) +Chars 8318 - 8338 [(rewrite~unfold_bind).] 0.02 secs (0.02u,0.s) +Chars 8341 - 8374 [(rewrite~(unfold_interp_fail~h...] 0.022 secs (0.022u,0.s) +Chars 8377 - 8411 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) +Chars 8414 - 8415 [-] 0. secs (0.u,0.s) +Chars 8416 - 8435 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 8436 - 8448 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8452 - 8453 [-] 0. secs (0.u,0.s) +Chars 8454 - 8459 [taus.] 0. secs (0.u,0.s) +Chars 8460 - 8470 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8474 - 8475 [-] 0. secs (0.u,0.s) +Chars 8476 - 8511 [(rewrite~bind_bind,~interp_fai...] 0.038 secs (0.037u,0.s) +Chars 8516 - 8537 [(ebind;~intros;~subst).] 0.012 secs (0.012u,0.s) +Chars 8544 - 8556 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 8562 - 8563 [+] 0. secs (0.u,0.s) +Chars 8564 - 8581 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) +Chars 8588 - 8593 [etau.] 0. secs (0.u,0.s) +Chars 8599 - 8600 [+] 0. secs (0.u,0.s) +Chars 8601 - 8620 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) +Chars 8627 - 8645 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 8646 - 8650 [Qed.] 0.016 secs (0.016u,0.s) +Chars 8665 - 8895 [Lemma~interp_failure_bind'~:~~...] 0.001 secs (0.001u,0.s) +Chars 8896 - 8902 [Proof.] 0. secs (0.u,0.s) +Chars 8905 - 8920 [(intros~X~Y~E~F).] 0. secs (0.u,0.s) +Chars 8923 - 8927 [(cbn).] 0. secs (0.u,0.s) +Chars 8930 - 8950 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) +Chars 8955 - 9001 [(rewrite~unfold_bind,~(unfold_...] 0.042 secs (0.042u,0.s) +Chars 9004 - 9038 [(destruct~(observe~t)~eqn:EQ;~...] 0.007 secs (0.007u,0.s) +Chars 9041 - 9042 [-] 0. secs (0.u,0.s) +Chars 9043 - 9062 [(rewrite~bind_ret_l).] 0.02 secs (0.02u,0.s) +Chars 9063 - 9075 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9079 - 9080 [-] 0. secs (0.u,0.s) +Chars 9081 - 9086 [etau.] 0.014 secs (0.014u,0.s) +Chars 9087 - 9097 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9101 - 9102 [-] 0. secs (0.u,0.s) +Chars 9103 - 9138 [(rewrite~bind_bind,~interp_fai...] 0.039 secs (0.038u,0.s) +Chars 9143 - 9164 [(ebind;~intros;~subst).] 0.011 secs (0.011u,0.s) +Chars 9170 - 9182 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 9188 - 9189 [+] 0. secs (0.u,0.s) +Chars 9190 - 9207 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 9214 - 9219 [etau.] 0. secs (0.u,0.s) +Chars 9225 - 9226 [+] 0. secs (0.u,0.s) +Chars 9227 - 9246 [(rewrite~bind_ret_l).] 0.02 secs (0.02u,0.s) +Chars 9253 - 9265 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 9266 - 9270 [Qed.] 0.016 secs (0.016u,0.s) diff --git a/theories/Events/Map.v.timing b/theories/Events/Map.v.timing index 1c7b35ef..7b3f352c 100644 --- a/theories/Events/Map.v.timing +++ b/theories/Events/Map.v.timing @@ -1,9 +1,9 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.039 secs (0.031u,0.007s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.043 secs (0.033u,0.009s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) Chars 145 - 181 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.106 secs (0.099u,0.006s) +Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.113 secs (0.105u,0.007s) Chars 376 - 410 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 427 - 439 [Section~Map.] 0. secs (0.u,0.s) Chars 443 - 466 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -11,7 +11,7 @@ Chars 470 - 599 [Variant~mapE~:~Type~->~Type~:=...] 0. secs (0.u,0.s) Chars 603 - 679 [Definition~insert~{E}~`{mapE~-...] 0. secs (0.u,0.s) Chars 682 - 759 [Definition~lookup~{E}~`{mapE~-...] 0. secs (0.u,0.s) Chars 762 - 833 [Definition~remove~{E}~`{mapE~-...] 0. secs (0.u,0.s) -Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0. secs (0.u,0.s) +Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0.001 secs (0.001u,0.s) Chars 1066 - 1089 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1093 - 1114 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1117 - 1143 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefault.v.timing b/theories/Events/MapDefault.v.timing index 82229837..be1a7333 100644 --- a/theories/Events/MapDefault.v.timing +++ b/theories/Events/MapDefault.v.timing @@ -1,8 +1,8 @@ Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.006 secs (0.004u,0.001s) +Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.006 secs (0.005u,0.001s) Chars 183 - 239 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.057 secs (0.045u,0.011s) +Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.059 secs (0.047u,0.011s) Chars 499 - 533 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 550 - 562 [Section~Map.] 0. secs (0.u,0.s) Chars 566 - 589 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -10,13 +10,13 @@ Chars 593 - 728 [Variant~mapE~(d~:~V)~:~Type~->...] 0. secs (0.u,0.s) Chars 732 - 753 [Arguments~Insert~{d}.] 0. secs (0.u,0.s) Chars 756 - 780 [Arguments~LookupDef~{d}.] 0. secs (0.u,0.s) Chars 783 - 804 [Arguments~Remove~{d}.] 0. secs (0.u,0.s) -Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0.001 secs (0.u,0.s) +Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0.001 secs (0.001u,0.s) Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0. secs (0.u,0.s) -Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0.021 secs (0.019u,0.002s) +Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0. secs (0.u,0.s) Chars 1060 - 1083 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1087 - 1108 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1111 - 1137 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0. secs (0.u,0.s) +Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.022 secs (0.02u,0.002s) Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 1830 - 1966 [Definition~interp_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 2165 - 2273 [Definition~eq_map~(d~:~V)~(m1~...] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefaultFacts.v.timing b/theories/Events/MapDefaultFacts.v.timing index c14abd81..74e42ae4 100644 --- a/theories/Events/MapDefaultFacts.v.timing +++ b/theories/Events/MapDefaultFacts.v.timing @@ -1,210 +1,211 @@ -Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 174 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 176 - 220 [From~ExtLib~Require~Import~Cor...] 0.004 secs (0.003u,0.s) -Chars 222 - 263 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) -Chars 265 - 431 [From~ITree~Require~Import~Basi...] 0.226 secs (0.198u,0.027s) -Chars 433 - 467 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 468 - 491 [Import~Structures.Maps.] 0. secs (0.u,0.s) -Chars 508 - 525 [Section~MapFacts.] 0. secs (0.u,0.s) -Chars 529 - 552 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) -Chars 555 - 576 [Context~{map~:~Type}.] 0. secs (0.u,0.s) -Chars 579 - 605 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 608 - 634 [Context~{MOk~:~MapOk~eq~M}.] 0. secs (0.u,0.s) -Chars 637 - 666 [Context~{Kdec~:~@RelDec~K~eq}.] 0. secs (0.u,0.s) -Chars 669 - 707 [Context~{KdecOk~:~RelDec_Corre...] 0. secs (0.u,0.s) -Chars 741 - 806 [Lemma~lookup_add_eq~:~forall~k...] 0. secs (0.u,0.s) -Chars 809 - 815 [Proof.] 0. secs (0.u,0.s) -Chars 820 - 827 [(intros).] 0. secs (0.u,0.s) -Chars 832 - 875 [(rewrite~mapsto_lookup;~apply~...] 0. secs (0.u,0.s) -Chars 881 - 890 [Unshelve.] 0. secs (0.u,0.s) -Chars 895 - 916 [2:~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 919 - 923 [Qed.] 0. secs (0.u,0.s) -Chars 957 - 1042 [Lemma~lookup_add_neq~:~~~foral...] 0. secs (0.u,0.s) -Chars 1045 - 1051 [Proof.] 0. secs (0.u,0.s) -Chars 1056 - 1063 [(intros).] 0. secs (0.u,0.s) -Chars 1068 - 1140 [(generalize~(@mapsto_add_neq~_...] 0. secs (0.u,0.s) -Chars 1145 - 1182 [setoid_rewrite~~<-~mapsto_look...] 0.004 secs (0.003u,0.s) -Chars 1187 - 1226 [(destruct~(lookup~k~s)~as~[v'|...] 0. secs (0.u,0.s) -Chars 1231 - 1232 [-] 0. secs (0.u,0.s) -Chars 1233 - 1251 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1258 - 1272 [(apply~H;~auto).] 0. secs (0.u,0.s) -Chars 1277 - 1278 [-] 0. secs (0.u,0.s) -Chars 1279 - 1347 [(destruct~(lookup~k~(add~k'~v~...] 0. secs (0.u,0.s) -Chars 1354 - 1372 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1379 - 1403 [(symmetry;~apply~H;~auto).] 0. secs (0.u,0.s) -Chars 1406 - 1410 [Qed.] 0.001 secs (0.u,0.s) -Chars 1444 - 1513 [Lemma~lookup_remove_eq~:~foral...] 0. secs (0.u,0.s) -Chars 1516 - 1522 [Proof.] 0. secs (0.u,0.s) -Chars 1527 - 1534 [(intros).] 0. secs (0.u,0.s) -Chars 1539 - 1617 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) -Chars 1622 - 1650 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) -Chars 1655 - 1695 [(exfalso;~eapply~mapsto_remove...] 0. secs (0.u,0.s) -Chars 1698 - 1702 [Qed.] 0. secs (0.u,0.s) -Chars 1736 - 1827 [Lemma~lookup_remove_neq~:~~~fo...] 0. secs (0.u,0.s) -Chars 1830 - 1836 [Proof.] 0. secs (0.u,0.s) -Chars 1841 - 1848 [(intros).] 0. secs (0.u,0.s) -Chars 1853 - 1914 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) -Chars 1919 - 1920 [-] 0. secs (0.u,0.s) -Chars 1921 - 1949 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) -Chars 1956 - 1992 [(apply~mapsto_remove_neq~in~EQ...] 0.001 secs (0.u,0.s) -Chars 1999 - 2038 [(symmetry;~rewrite~mapsto_look...] 0. secs (0.u,0.s) -Chars 2043 - 2044 [-] 0. secs (0.u,0.s) -Chars 2046 - 2120 [(match~goal~with~~|~|-~_~=~?x~...] 0. secs (0.u,0.s) -Chars 2128 - 2157 [(rewrite~mapsto_lookup~in~EQ').] 0. secs (0.u,0.s) -Chars 2165 - 2204 [(eapply~mapsto_remove_neq~in~E...] 0.001 secs (0.u,0.s) -Chars 2212 - 2244 [(rewrite~<-~mapsto_lookup~in~E...] 0. secs (0.u,0.s) -Chars 2252 - 2279 [(rewrite~EQ~in~EQ';~inv~EQ').] 0.03 secs (0.027u,0.002s) -Chars 2287 - 2296 [Unshelve.] 0. secs (0.u,0.s) -Chars 2304 - 2327 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2330 - 2334 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2338 - 2402 [#[global]~Instance~eq_map_refl...] 0. secs (0.u,0.s) -Chars 2405 - 2411 [Proof.] 0. secs (0.u,0.s) -Chars 2416 - 2420 [(red).] 0. secs (0.u,0.s) -Chars 2421 - 2428 [(intros).] 0. secs (0.u,0.s) -Chars 2429 - 2443 [(unfold~eq_map).] 0. secs (0.u,0.s) -Chars 2444 - 2450 [tauto.] 0. secs (0.u,0.s) -Chars 2453 - 2457 [Qed.] 0. secs (0.u,0.s) -Chars 2465 - 2528 [#[global]~Instance~eq_map_sym~...] 0. secs (0.u,0.s) -Chars 2531 - 2537 [Proof.] 0. secs (0.u,0.s) -Chars 2542 - 2555 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2560 - 2579 [(unfold~eq_map~in~H).] 0. secs (0.u,0.s) -Chars 2584 - 2594 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 2599 - 2611 [reflexivity.] 0. secs (0.u,0.s) -Chars 2614 - 2618 [Qed.] 0. secs (0.u,0.s) -Chars 2622 - 2688 [#[global]~Instance~eq_map_tran...] 0. secs (0.u,0.s) -Chars 2691 - 2697 [Proof.] 0. secs (0.u,0.s) -Chars 2702 - 2715 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2721 - 2740 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) -Chars 2745 - 2755 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 2756 - 2767 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 2768 - 2780 [reflexivity.] 0. secs (0.u,0.s) -Chars 2783 - 2787 [Qed.] 0. secs (0.u,0.s) -Chars 2792 - 2810 [Section~Relations.] 0. secs (0.u,0.s) -Chars 2813 - 2836 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) -Chars 2839 - 2870 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 2874 - 3094 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) -Chars 3098 - 3112 [End~Relations.] 0. secs (0.u,0.s) -Chars 3116 - 3259 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) -Chars 3262 - 3268 [Proof.] 0. secs (0.u,0.s) -Chars 3273 - 3294 [(intros~d~s1~s2~k~v~H).] 0. secs (0.u,0.s) -Chars 3299 - 3318 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) -Chars 3323 - 3333 [(intros~k').] 0. secs (0.u,0.s) -Chars 3338 - 3364 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) -Chars 3369 - 3370 [-] 0. secs (0.u,0.s) -Chars 3371 - 3377 [subst.] 0. secs (0.u,0.s) -Chars 3384 - 3411 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) -Chars 3418 - 3455 [(rewrite~2!lookup_add_eq;~refl...] 0. secs (0.u,0.s) -Chars 3460 - 3461 [-] 0. secs (0.u,0.s) -Chars 3462 - 3489 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) -Chars 3496 - 3527 [(rewrite~2!lookup_add_neq;~auto).] 0. secs (0.u,0.s) -Chars 3530 - 3534 [Qed.] 0. secs (0.u,0.s) -Chars 3544 - 3684 [Lemma~eq_map_remove~:~~~forall...] 0. secs (0.u,0.s) -Chars 3687 - 3693 [Proof.] 0. secs (0.u,0.s) -Chars 3698 - 3717 [(intros~d~s1~s2~k~H).] 0. secs (0.u,0.s) -Chars 3722 - 3752 [(unfold~eq_map~in~*;~intros~k').] 0. secs (0.u,0.s) -Chars 3757 - 3779 [(unfold~lookup_default).] 0. secs (0.u,0.s) -Chars 3784 - 3810 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) -Chars 3815 - 3816 [-] 0. secs (0.u,0.s) -Chars 3817 - 3857 [(subst;~rewrite~2!lookup_remov...] 0. secs (0.u,0.s) -Chars 3862 - 3863 [-] 0. secs (0.u,0.s) -Chars 3864 - 3898 [(rewrite~2!lookup_remove_neq;~...] 0. secs (0.u,0.s) -Chars 3905 - 3913 [(apply~H).] 0. secs (0.u,0.s) -Chars 3916 - 3920 [Qed.] 0. secs (0.u,0.s) -Chars 3926 - 4136 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) -Chars 4139 - 4145 [Proof.] 0. secs (0.u,0.s) -Chars 4150 - 4157 [(intros).] 0. secs (0.u,0.s) -Chars 4162 - 4223 [(destruct~m;~cbn;~red;~apply~e...] 0.002 secs (0.002u,0.s) -Chars 4228 - 4229 [-] 0. secs (0.u,0.s) -Chars 4230 - 4247 [(apply~eq_map_add).] 0. secs (0.u,0.s) -Chars 4248 - 4259 [assumption.] 0. secs (0.u,0.s) -Chars 4264 - 4265 [-] 0. secs (0.u,0.s) -Chars 4266 - 4286 [(apply~eq_map_remove).] 0. secs (0.u,0.s) +Chars 87 - 123 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 126 - 149 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 150 - 174 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) +Chars 176 - 213 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 215 - 259 [From~ExtLib~Require~Import~Cor...] 0.001 secs (0.001u,0.s) +Chars 261 - 302 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) +Chars 304 - 470 [From~ITree~Require~Import~Basi...] 0.228 secs (0.2u,0.027s) +Chars 472 - 506 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 507 - 530 [Import~Structures.Maps.] 0. secs (0.u,0.s) +Chars 547 - 564 [Section~MapFacts.] 0. secs (0.u,0.s) +Chars 568 - 591 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) +Chars 594 - 615 [Context~{map~:~Type}.] 0. secs (0.u,0.s) +Chars 618 - 644 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) +Chars 647 - 673 [Context~{MOk~:~MapOk~eq~M}.] 0. secs (0.u,0.s) +Chars 676 - 705 [Context~{Kdec~:~@RelDec~K~eq}.] 0. secs (0.u,0.s) +Chars 708 - 746 [Context~{KdecOk~:~RelDec_Corre...] 0. secs (0.u,0.s) +Chars 780 - 845 [Lemma~lookup_add_eq~:~forall~k...] 0. secs (0.u,0.s) +Chars 848 - 854 [Proof.] 0. secs (0.u,0.s) +Chars 859 - 866 [(intros).] 0. secs (0.u,0.s) +Chars 871 - 914 [(rewrite~mapsto_lookup;~apply~...] 0. secs (0.u,0.s) +Chars 920 - 929 [Unshelve.] 0. secs (0.u,0.s) +Chars 934 - 955 [2:~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 958 - 962 [Qed.] 0. secs (0.u,0.s) +Chars 996 - 1081 [Lemma~lookup_add_neq~:~~~foral...] 0. secs (0.u,0.s) +Chars 1084 - 1090 [Proof.] 0. secs (0.u,0.s) +Chars 1095 - 1102 [(intros).] 0. secs (0.u,0.s) +Chars 1107 - 1179 [(generalize~(@mapsto_add_neq~_...] 0. secs (0.u,0.s) +Chars 1184 - 1221 [setoid_rewrite~~<-~mapsto_look...] 0.004 secs (0.003u,0.s) +Chars 1226 - 1265 [(destruct~(lookup~k~s)~as~[v'|...] 0. secs (0.u,0.s) +Chars 1270 - 1271 [-] 0. secs (0.u,0.s) +Chars 1272 - 1290 [specialize~(H~v').] 0. secs (0.u,0.s) +Chars 1297 - 1311 [(apply~H;~auto).] 0. secs (0.u,0.s) +Chars 1316 - 1317 [-] 0. secs (0.u,0.s) +Chars 1318 - 1386 [(destruct~(lookup~k~(add~k'~v~...] 0. secs (0.u,0.s) +Chars 1393 - 1411 [specialize~(H~v').] 0. secs (0.u,0.s) +Chars 1418 - 1442 [(symmetry;~apply~H;~auto).] 0. secs (0.u,0.s) +Chars 1445 - 1449 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1483 - 1552 [Lemma~lookup_remove_eq~:~foral...] 0. secs (0.u,0.s) +Chars 1555 - 1561 [Proof.] 0. secs (0.u,0.s) +Chars 1566 - 1573 [(intros).] 0. secs (0.u,0.s) +Chars 1578 - 1656 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) +Chars 1661 - 1689 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) +Chars 1694 - 1734 [(exfalso;~eapply~mapsto_remove...] 0. secs (0.u,0.s) +Chars 1737 - 1741 [Qed.] 0. secs (0.u,0.s) +Chars 1775 - 1866 [Lemma~lookup_remove_neq~:~~~fo...] 0. secs (0.u,0.s) +Chars 1869 - 1875 [Proof.] 0. secs (0.u,0.s) +Chars 1880 - 1887 [(intros).] 0. secs (0.u,0.s) +Chars 1892 - 1953 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) +Chars 1958 - 1959 [-] 0. secs (0.u,0.s) +Chars 1960 - 1988 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) +Chars 1995 - 2031 [(apply~mapsto_remove_neq~in~EQ...] 0.001 secs (0.u,0.s) +Chars 2038 - 2077 [(symmetry;~rewrite~mapsto_look...] 0. secs (0.u,0.s) +Chars 2082 - 2083 [-] 0. secs (0.u,0.s) +Chars 2085 - 2159 [(match~goal~with~~|~|-~_~=~?x~...] 0. secs (0.u,0.s) +Chars 2167 - 2196 [(rewrite~mapsto_lookup~in~EQ').] 0. secs (0.u,0.s) +Chars 2204 - 2243 [(eapply~mapsto_remove_neq~in~E...] 0.001 secs (0.u,0.s) +Chars 2251 - 2283 [(rewrite~<-~mapsto_lookup~in~E...] 0. secs (0.u,0.s) +Chars 2291 - 2318 [(rewrite~EQ~in~EQ';~inv~EQ').] 0. secs (0.u,0.s) +Chars 2326 - 2335 [Unshelve.] 0. secs (0.u,0.s) +Chars 2343 - 2366 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 2369 - 2373 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2377 - 2441 [#[global]~Instance~eq_map_refl...] 0.031 secs (0.028u,0.002s) +Chars 2444 - 2450 [Proof.] 0. secs (0.u,0.s) +Chars 2455 - 2459 [(red).] 0. secs (0.u,0.s) +Chars 2460 - 2467 [(intros).] 0. secs (0.u,0.s) +Chars 2468 - 2482 [(unfold~eq_map).] 0. secs (0.u,0.s) +Chars 2483 - 2489 [tauto.] 0. secs (0.u,0.s) +Chars 2492 - 2496 [Qed.] 0. secs (0.u,0.s) +Chars 2504 - 2567 [#[global]~Instance~eq_map_sym~...] 0. secs (0.u,0.s) +Chars 2570 - 2576 [Proof.] 0. secs (0.u,0.s) +Chars 2581 - 2594 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2599 - 2618 [(unfold~eq_map~in~H).] 0. secs (0.u,0.s) +Chars 2623 - 2633 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 2638 - 2650 [reflexivity.] 0. secs (0.u,0.s) +Chars 2653 - 2657 [Qed.] 0. secs (0.u,0.s) +Chars 2661 - 2727 [#[global]~Instance~eq_map_tran...] 0. secs (0.u,0.s) +Chars 2730 - 2736 [Proof.] 0. secs (0.u,0.s) +Chars 2741 - 2754 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2760 - 2779 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) +Chars 2784 - 2794 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 2795 - 2806 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 2807 - 2819 [reflexivity.] 0. secs (0.u,0.s) +Chars 2822 - 2826 [Qed.] 0. secs (0.u,0.s) +Chars 2831 - 2849 [Section~Relations.] 0. secs (0.u,0.s) +Chars 2852 - 2875 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) +Chars 2878 - 2909 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 2913 - 3133 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) +Chars 3137 - 3151 [End~Relations.] 0. secs (0.u,0.s) +Chars 3155 - 3298 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) +Chars 3301 - 3307 [Proof.] 0. secs (0.u,0.s) +Chars 3312 - 3333 [(intros~d~s1~s2~k~v~H).] 0. secs (0.u,0.s) +Chars 3338 - 3357 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) +Chars 3362 - 3372 [(intros~k').] 0. secs (0.u,0.s) +Chars 3377 - 3403 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) +Chars 3408 - 3409 [-] 0. secs (0.u,0.s) +Chars 3410 - 3416 [subst.] 0. secs (0.u,0.s) +Chars 3423 - 3450 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) +Chars 3457 - 3494 [(rewrite~2!lookup_add_eq;~refl...] 0. secs (0.u,0.s) +Chars 3499 - 3500 [-] 0. secs (0.u,0.s) +Chars 3501 - 3528 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) +Chars 3535 - 3566 [(rewrite~2!lookup_add_neq;~auto).] 0. secs (0.u,0.s) +Chars 3569 - 3573 [Qed.] 0. secs (0.u,0.s) +Chars 3583 - 3723 [Lemma~eq_map_remove~:~~~forall...] 0. secs (0.u,0.s) +Chars 3726 - 3732 [Proof.] 0. secs (0.u,0.s) +Chars 3737 - 3756 [(intros~d~s1~s2~k~H).] 0. secs (0.u,0.s) +Chars 3761 - 3791 [(unfold~eq_map~in~*;~intros~k').] 0. secs (0.u,0.s) +Chars 3796 - 3818 [(unfold~lookup_default).] 0. secs (0.u,0.s) +Chars 3823 - 3849 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) +Chars 3854 - 3855 [-] 0. secs (0.u,0.s) +Chars 3856 - 3896 [(subst;~rewrite~2!lookup_remov...] 0. secs (0.u,0.s) +Chars 3901 - 3902 [-] 0. secs (0.u,0.s) +Chars 3903 - 3937 [(rewrite~2!lookup_remove_neq;~...] 0. secs (0.u,0.s) +Chars 3944 - 3952 [(apply~H).] 0. secs (0.u,0.s) +Chars 3955 - 3959 [Qed.] 0. secs (0.u,0.s) +Chars 3965 - 4175 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) +Chars 4178 - 4184 [Proof.] 0. secs (0.u,0.s) +Chars 4189 - 4196 [(intros).] 0. secs (0.u,0.s) +Chars 4201 - 4262 [(destruct~m;~cbn;~red;~apply~e...] 0.002 secs (0.002u,0.s) +Chars 4267 - 4268 [-] 0. secs (0.u,0.s) +Chars 4269 - 4286 [(apply~eq_map_add).] 0. secs (0.u,0.s) Chars 4287 - 4298 [assumption.] 0. secs (0.u,0.s) -Chars 4301 - 4305 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4310 - 4423 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) -Chars 4426 - 4432 [Proof.] 0. secs (0.u,0.s) -Chars 4437 - 4450 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 4455 - 4461 [subst.] 0. secs (0.u,0.s) -Chars 4466 - 4486 [(apply~handle_map_eq).] 0. secs (0.u,0.s) -Chars 4491 - 4502 [assumption.] 0. secs (0.u,0.s) -Chars 4505 - 4509 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4652 - 4766 [Lemma~interp_map_id~d~{E}~{X}~...] 0. secs (0.u,0.s) -Chars 4769 - 4775 [Proof.] 0. secs (0.u,0.s) -Chars 4780 - 4822 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) -Chars 4827 - 4844 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) -Chars 4849 - 4861 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 4867 - 4874 [(intros).] 0. secs (0.u,0.s) -Chars 4879 - 4914 [(repeat~rewrite~unfold_interp_...] 0.079 secs (0.078u,0.001s) -Chars 4915 - 4936 [(unfold~_interp_state).] 0. secs (0.u,0.s) -Chars 4941 - 4962 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) -Chars 4967 - 4968 [-] 0. secs (0.u,0.s) -Chars 4969 - 4974 [eret.] 0. secs (0.u,0.s) -Chars 4980 - 4981 [-] 0. secs (0.u,0.s) -Chars 4982 - 4987 [etau.] 0.001 secs (0.001u,0.s) -Chars 4993 - 4994 [-] 0. secs (0.u,0.s) -Chars 4995 - 5001 [ebind.] 0.013 secs (0.013u,0.s) -Chars 5009 - 5027 [(unfold~pure_state).] 0. secs (0.u,0.s) -Chars 5034 - 5045 [(destruct~e).] 0. secs (0.u,0.s) -Chars 5052 - 5053 [+] 0. secs (0.u,0.s) -Chars 5054 - 5058 [(cbn).] 0. secs (0.u,0.s) -Chars 5059 - 5064 [step.] 0.004 secs (0.004u,0.s) -Chars 5065 - 5090 [now~eapply~handle_map_eq.] 0. secs (0.u,0.s) -Chars 5098 - 5099 [+] 0. secs (0.u,0.s) -Chars 5100 - 5104 [(cbn).] 0. secs (0.u,0.s) -Chars 5105 - 5110 [evis.] 0.001 secs (0.001u,0.s) -Chars 5111 - 5122 [(step;~eret).] 0.003 secs (0.003u,0.s) -Chars 5130 - 5131 [+] 0. secs (0.u,0.s) -Chars 5132 - 5139 [(intros).] 0. secs (0.u,0.s) -Chars 5140 - 5152 [(destruct~u1).] 0.001 secs (0.001u,0.s) -Chars 5153 - 5165 [(destruct~u2).] 0.001 secs (0.001u,0.s) -Chars 5166 - 5170 [(cbn).] 0. secs (0.u,0.s) -Chars 5179 - 5224 [(destruct~H0~as~[H1~H2];~cbn~i...] 0. secs (0.u,0.s) -Chars 5233 - 5238 [etau.] 0.001 secs (0.001u,0.s) -Chars 5242 - 5246 [Qed.] 0.017 secs (0.017u,0.s) -Chars 5251 - 5401 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) -Chars 5404 - 5410 [Proof.] 0. secs (0.u,0.s) -Chars 5415 - 5449 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) -Chars 5454 - 5467 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5472 - 5494 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5499 - 5511 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 5517 - 5524 [(intros).] 0. secs (0.u,0.s) -Chars 5529 - 5558 [(rewrite~!unfold_interp_state).] 0.041 secs (0.041u,0.s) -Chars 5564 - 5574 [step~in~H.] 0.001 secs (0.001u,0.s) -Chars 5580 - 5596 [revert~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5601 - 5634 [(induction~H;~intros;~subst;~b...] 0.042 secs (0.042u,0.s) -Chars 5640 - 5641 [-] 0. secs (0.u,0.s) -Chars 5642 - 5647 [eret.] 0.001 secs (0.001u,0.s) -Chars 5653 - 5654 [-] 0. secs (0.u,0.s) -Chars 5655 - 5660 [etau.] 0.002 secs (0.002u,0.s) -Chars 5665 - 5666 [-] 0. secs (0.u,0.s) -Chars 5667 - 5673 [ebind.] 0.024 secs (0.024u,0.s) -Chars 5680 - 5681 [+] 0. secs (0.u,0.s) -Chars 5682 - 5695 [(unfold~case_).] 0. secs (0.u,0.s) -Chars 5696 - 5724 [(unfold~Case_sum1,~case_sum1).] 0. secs (0.u,0.s) -Chars 5733 - 5743 [(do~2~step).] 0.016 secs (0.015u,0.s) -Chars 5744 - 5755 [(destruct~e).] 0. secs (0.u,0.s) -Chars 5764 - 5765 [*] 0. secs (0.u,0.s) -Chars 5766 - 5786 [(apply~handle_map_eq).] 0. secs (0.u,0.s) -Chars 5787 - 5798 [assumption.] 0. secs (0.u,0.s) -Chars 5807 - 5808 [*] 0. secs (0.u,0.s) -Chars 5809 - 5827 [(unfold~pure_state).] 0. secs (0.u,0.s) -Chars 5828 - 5833 [step.] 0.002 secs (0.002u,0.s) -Chars 5834 - 5839 [evis.] 0.002 secs (0.002u,0.s) -Chars 5840 - 5845 [step.] 0.002 secs (0.001u,0.s) -Chars 5846 - 5851 [eret.] 0.001 secs (0.001u,0.s) -Chars 5859 - 5860 [+] 0. secs (0.u,0.s) -Chars 5861 - 5868 [(intros).] 0. secs (0.u,0.s) -Chars 5869 - 5874 [etau.] 0.009 secs (0.009u,0.s) -Chars 5882 - 5888 [(inv~H).] 0.024 secs (0.024u,0.s) -Chars 5889 - 5905 [(rewrite~snd_rel).] 0. secs (0.u,0.s) -Chars 5906 - 5924 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) -Chars 5925 - 5935 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5940 - 5941 [-] 0. secs (0.u,0.s) -Chars 5942 - 5982 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) -Chars 5989 - 6008 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6014 - 6015 [-] 0. secs (0.u,0.s) -Chars 6016 - 6056 [(rewrite~tau_euttge,~unfold_in...] 0.026 secs (0.026u,0.s) -Chars 6063 - 6082 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6086 - 6090 [Qed.] 0.023 secs (0.022u,0.s) -Chars 6092 - 6105 [End~MapFacts.] 0.009 secs (0.009u,0.s) +Chars 4303 - 4304 [-] 0. secs (0.u,0.s) +Chars 4305 - 4325 [(apply~eq_map_remove).] 0. secs (0.u,0.s) +Chars 4326 - 4337 [assumption.] 0. secs (0.u,0.s) +Chars 4340 - 4344 [Qed.] 0.003 secs (0.002u,0.s) +Chars 4349 - 4462 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) +Chars 4465 - 4471 [Proof.] 0. secs (0.u,0.s) +Chars 4476 - 4489 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4494 - 4500 [subst.] 0. secs (0.u,0.s) +Chars 4505 - 4525 [(apply~handle_map_eq).] 0. secs (0.u,0.s) +Chars 4530 - 4541 [assumption.] 0. secs (0.u,0.s) +Chars 4544 - 4548 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4691 - 4805 [Lemma~interp_map_id~d~{E}~{X}~...] 0. secs (0.u,0.s) +Chars 4808 - 4814 [Proof.] 0. secs (0.u,0.s) +Chars 4819 - 4861 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) +Chars 4866 - 4883 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) +Chars 4888 - 4900 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 4906 - 4913 [(intros).] 0. secs (0.u,0.s) +Chars 4918 - 4953 [(repeat~rewrite~unfold_interp_...] 0.077 secs (0.076u,0.s) +Chars 4954 - 4975 [(unfold~_interp_state).] 0. secs (0.u,0.s) +Chars 4980 - 5001 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) +Chars 5006 - 5007 [-] 0. secs (0.u,0.s) +Chars 5008 - 5013 [eret.] 0. secs (0.u,0.s) +Chars 5019 - 5020 [-] 0. secs (0.u,0.s) +Chars 5021 - 5026 [etau.] 0.001 secs (0.001u,0.s) +Chars 5032 - 5033 [-] 0. secs (0.u,0.s) +Chars 5034 - 5040 [ebind.] 0.013 secs (0.013u,0.s) +Chars 5048 - 5066 [(unfold~pure_state).] 0. secs (0.u,0.s) +Chars 5073 - 5084 [(destruct~e).] 0. secs (0.u,0.s) +Chars 5091 - 5092 [+] 0. secs (0.u,0.s) +Chars 5093 - 5097 [(cbn).] 0. secs (0.u,0.s) +Chars 5098 - 5103 [step.] 0.004 secs (0.004u,0.s) +Chars 5104 - 5129 [now~eapply~handle_map_eq.] 0. secs (0.u,0.s) +Chars 5137 - 5138 [+] 0. secs (0.u,0.s) +Chars 5139 - 5143 [(cbn).] 0. secs (0.u,0.s) +Chars 5144 - 5149 [evis.] 0.001 secs (0.001u,0.s) +Chars 5150 - 5161 [(step;~eret).] 0.003 secs (0.003u,0.s) +Chars 5169 - 5170 [+] 0. secs (0.u,0.s) +Chars 5171 - 5178 [(intros).] 0. secs (0.u,0.s) +Chars 5179 - 5191 [(destruct~u1).] 0.001 secs (0.001u,0.s) +Chars 5192 - 5204 [(destruct~u2).] 0.001 secs (0.001u,0.s) +Chars 5205 - 5209 [(cbn).] 0. secs (0.u,0.s) +Chars 5218 - 5263 [(destruct~H0~as~[H1~H2];~cbn~i...] 0. secs (0.u,0.s) +Chars 5272 - 5277 [etau.] 0.001 secs (0.001u,0.s) +Chars 5281 - 5285 [Qed.] 0.018 secs (0.018u,0.s) +Chars 5290 - 5440 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) +Chars 5443 - 5449 [Proof.] 0. secs (0.u,0.s) +Chars 5454 - 5488 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) +Chars 5493 - 5506 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5511 - 5533 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) +Chars 5538 - 5550 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 5556 - 5563 [(intros).] 0. secs (0.u,0.s) +Chars 5568 - 5597 [(rewrite~!unfold_interp_state).] 0.04 secs (0.04u,0.s) +Chars 5603 - 5613 [step~in~H.] 0.001 secs (0.001u,0.s) +Chars 5619 - 5635 [revert~s1~s2~H0.] 0. secs (0.u,0.s) +Chars 5640 - 5673 [(induction~H;~intros;~subst;~b...] 0.043 secs (0.043u,0.s) +Chars 5679 - 5680 [-] 0. secs (0.u,0.s) +Chars 5681 - 5686 [eret.] 0.001 secs (0.001u,0.s) +Chars 5692 - 5693 [-] 0. secs (0.u,0.s) +Chars 5694 - 5699 [etau.] 0.003 secs (0.003u,0.s) +Chars 5704 - 5705 [-] 0. secs (0.u,0.s) +Chars 5706 - 5712 [ebind.] 0.024 secs (0.024u,0.s) +Chars 5719 - 5720 [+] 0. secs (0.u,0.s) +Chars 5721 - 5734 [(unfold~case_).] 0. secs (0.u,0.s) +Chars 5735 - 5763 [(unfold~Case_sum1,~case_sum1).] 0. secs (0.u,0.s) +Chars 5772 - 5782 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 5783 - 5794 [(destruct~e).] 0. secs (0.u,0.s) +Chars 5803 - 5804 [*] 0. secs (0.u,0.s) +Chars 5805 - 5825 [(apply~handle_map_eq).] 0. secs (0.u,0.s) +Chars 5826 - 5837 [assumption.] 0. secs (0.u,0.s) +Chars 5846 - 5847 [*] 0. secs (0.u,0.s) +Chars 5848 - 5866 [(unfold~pure_state).] 0. secs (0.u,0.s) +Chars 5867 - 5872 [step.] 0.001 secs (0.001u,0.s) +Chars 5873 - 5878 [evis.] 0.002 secs (0.002u,0.s) +Chars 5879 - 5884 [step.] 0.001 secs (0.001u,0.s) +Chars 5885 - 5890 [eret.] 0. secs (0.u,0.s) +Chars 5898 - 5899 [+] 0. secs (0.u,0.s) +Chars 5900 - 5907 [(intros).] 0. secs (0.u,0.s) +Chars 5908 - 5913 [etau.] 0.009 secs (0.009u,0.s) +Chars 5921 - 5927 [(inv~H).] 0.024 secs (0.024u,0.s) +Chars 5928 - 5944 [(rewrite~snd_rel).] 0. secs (0.u,0.s) +Chars 5945 - 5963 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5964 - 5974 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5979 - 5980 [-] 0. secs (0.u,0.s) +Chars 5981 - 6021 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) +Chars 6028 - 6047 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) +Chars 6053 - 6054 [-] 0. secs (0.u,0.s) +Chars 6055 - 6095 [(rewrite~tau_euttge,~unfold_in...] 0.026 secs (0.026u,0.s) +Chars 6102 - 6121 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) +Chars 6125 - 6129 [Qed.] 0.023 secs (0.022u,0.s) +Chars 6131 - 6144 [End~MapFacts.] 0.009 secs (0.009u,0.s) diff --git a/theories/Events/Nondeterminism.v.timing b/theories/Events/Nondeterminism.v.timing index e64be61a..c153e9ac 100644 --- a/theories/Events/Nondeterminism.v.timing +++ b/theories/Events/Nondeterminism.v.timing @@ -1,8 +1,8 @@ Chars 84 - 107 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 108 - 132 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.04 secs (0.032u,0.008s) +Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.042 secs (0.033u,0.008s) Chars 167 - 188 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.126 secs (0.116u,0.01s) +Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.131 secs (0.119u,0.011s) Chars 374 - 428 [Variant~nondetE~:~Type~->~Prop...] 0. secs (0.u,0.s) Chars 469 - 592 [Definition~or~{E}~`{nondetE~-<...] 0. secs (0.u,0.s) Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0.001 secs (0.001u,0.s) diff --git a/theories/Events/Reader.v.timing b/theories/Events/Reader.v.timing index 0de8a9fa..eab3f296 100644 --- a/theories/Events/Reader.v.timing +++ b/theories/Events/Reader.v.timing @@ -1,14 +1,14 @@ Chars 65 - 88 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 89 - 113 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.04 secs (0.032u,0.008s) +Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.044 secs (0.034u,0.009s) Chars 148 - 169 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.126 secs (0.116u,0.01s) +Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.137 secs (0.124u,0.013s) Chars 358 - 373 [Section~Reader.] 0. secs (0.u,0.s) Chars 375 - 397 [Variable~(Env~:~Type).] 0. secs (0.u,0.s) Chars 399 - 453 [Variant~readerE~:~Type~->~Prop...] 0. secs (0.u,0.s) Chars 455 - 521 [Definition~ask~{E}~`{readerE~-...] 0. secs (0.u,0.s) Chars 523 - 639 [Definition~eval_reader~{E}~:~E...] 0. secs (0.u,0.s) -Chars 641 - 761 [Definition~run_reader~{E}~:~En...] 0. secs (0.u,0.s) +Chars 641 - 761 [Definition~run_reader~{E}~:~En...] 0.001 secs (0.001u,0.s) Chars 763 - 774 [End~Reader.] 0. secs (0.u,0.s) Chars 776 - 800 [Arguments~ask~{Env~E~_}.] 0. secs (0.u,0.s) Chars 801 - 836 [Arguments~run_reader~{Env~E}~_...] 0. secs (0.u,0.s) diff --git a/theories/Events/State.v.timing b/theories/Events/State.v.timing index 6f443f0b..e800d4ca 100644 --- a/theories/Events/State.v.timing +++ b/theories/Events/State.v.timing @@ -1,5 +1,5 @@ Chars 81 - 154 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.046 secs (0.037u,0.008s) +Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.045 secs (0.036u,0.009s) Chars 358 - 392 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 394 - 423 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.001 secs (0.001u,0.s) @@ -9,7 +9,7 @@ Chars 824 - 844 [Variable~(S~:~Type).] 0. secs (0.u,0.s) Chars 848 - 927 [Variant~stateE~:~Type~->~Type~...] 0. secs (0.u,0.s) Chars 931 - 990 [Definition~get~{E}~`{stateE~-<...] 0. secs (0.u,0.s) Chars 993 - 1060 [Definition~put~{E}~`{stateE~-<...] 0. secs (0.u,0.s) -Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0.001 secs (0.u,0.s) +Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0. secs (0.u,0.s) Chars 1353 - 1455 [Definition~pure_state~{S}~{E}~...] 0. secs (0.u,0.s) Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.001u,0.s) Chars 1581 - 1591 [End~State.] 0. secs (0.u,0.s) @@ -19,5 +19,5 @@ Chars 1639 - 1673 [Arguments~run_state~{S~E}~[_]~...] 0. secs (0.u,0.s) Chars 1715 - 1733 [Section~eff_hom_e.] 0. secs (0.u,0.s) Chars 1736 - 1765 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 2030 - 2116 [CoInductive~eff_hom_e~:~Type~:...] 0. secs (0.u,0.s) -Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.004 secs (0.003u,0.s) +Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.003 secs (0.003u,0.s) Chars 2409 - 2423 [End~eff_hom_e.] 0. secs (0.u,0.s) diff --git a/theories/Events/StateFacts.v.timing b/theories/Events/StateFacts.v.timing index bac0511f..6d86f575 100644 --- a/theories/Events/StateFacts.v.timing +++ b/theories/Events/StateFacts.v.timing @@ -1,247 +1,248 @@ -Chars 56 - 109 [From~Stdlib~Require~Import~Pro...] 0.004 secs (0.002u,0.001s) -Chars 112 - 440 [From~ITree~Require~Import~Basi...] 0.088 secs (0.075u,0.012s) -Chars 442 - 464 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 466 - 495 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 497 - 511 [Import~Monads.] 0. secs (0.u,0.s) -Chars 528 - 830 [Definition~_interp_state~{E}~{...] 0.002 secs (0.002u,0.s) -Chars 832 - 1012 [Lemma~unfold_interp_state~{E}~...] 0. secs (0.u,0.s) -Chars 1013 - 1019 [Proof.] 0. secs (0.u,0.s) -Chars 1022 - 1117 [(unfold~interp_state,~interp,~...] 0. secs (0.u,0.s) -Chars 1120 - 1145 [(rewrite~unfold_iter;~cbn).] 0.008 secs (0.008u,0.s) -Chars 1148 - 1170 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) -Chars 1173 - 1174 [-] 0. secs (0.u,0.s) -Chars 1175 - 1196 [(rewrite~2!bind_ret_l).] 0.056 secs (0.056u,0.s) -Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) -Chars 1212 - 1213 [-] 0. secs (0.u,0.s) -Chars 1214 - 1235 [(rewrite~2!bind_ret_l).] 0.024 secs (0.021u,0.002s) -Chars 1240 - 1252 [reflexivity.] 0. secs (0.u,0.s) -Chars 1255 - 1256 [-] 0. secs (0.u,0.s) -Chars 1257 - 1290 [(rewrite~bind_map,~bind_bind;~...] 0.027 secs (0.021u,0.005s) -Chars 1291 - 1317 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 1322 - 1351 [(apply~eqit_bind;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 1352 - 1356 [Qed.] 0.018 secs (0.018u,0.s) -Chars 1358 - 1535 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.001u,0.s) -Chars 1536 - 1542 [Proof.] 0. secs (0.u,0.s) -Chars 1545 - 1560 [(revert_until~R).] 0. secs (0.u,0.s) -Chars 1563 - 1575 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1576 - 1600 [(intros~h~x~y~H0~x2~_~[]).] 0. secs (0.u,0.s) -Chars 1603 - 1632 [(rewrite~!unfold_interp_state).] 0.037 secs (0.037u,0.s) -Chars 1635 - 1646 [step~in~H0.] 0. secs (0.u,0.s) -Chars 1650 - 1692 [(destruct~H0;~subst;~try~discr...] 0.002 secs (0.002u,0.s) -Chars 1695 - 1696 [-] 0. secs (0.u,0.s) -Chars 1697 - 1709 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 1713 - 1714 [-] 0. secs (0.u,0.s) -Chars 1715 - 1735 [(taus;~now~apply~CIH).] 0. secs (0.u,0.s) -Chars 1740 - 1741 [-] 0. secs (0.u,0.s) -Chars 1742 - 1749 [to_mon.] 0. secs (0.u,0.s) -Chars 1750 - 1771 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) -Chars 1778 - 1779 [+] 0. secs (0.u,0.s) -Chars 1780 - 1802 [(taus;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 1804 - 1808 [Qed.] 0.012 secs (0.012u,0.s) -Chars 1810 - 1992 [Lemma~interp_state_ret~{E~F~:~...] 0.001 secs (0.001u,0.s) -Chars 1993 - 1999 [Proof.] 0. secs (0.u,0.s) -Chars 2002 - 2020 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) -Chars 2021 - 2033 [reflexivity.] 0. secs (0.u,0.s) -Chars 2034 - 2038 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2040 - 2283 [Lemma~interp_state_vis~{E~F~:~...] 0.001 secs (0.001u,0.s) -Chars 2284 - 2290 [Proof.] 0. secs (0.u,0.s) -Chars 2293 - 2334 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) -Chars 2335 - 2339 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2341 - 2523 [Lemma~interp_state_tau~{E~F~:~...] 0. secs (0.u,0.s) -Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2574 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) -Chars 2575 - 2579 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2581 - 2788 [Lemma~interp_state_trigger_eqi...] 0.001 secs (0.001u,0.s) -Chars 2789 - 2795 [Proof.] 0. secs (0.u,0.s) -Chars 2798 - 2819 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 2820 - 2845 [(rewrite~interp_state_vis).] 0.002 secs (0.002u,0.s) -Chars 2848 - 2882 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) -Chars 2885 - 2895 [(intros~[]).] 0. secs (0.u,0.s) -Chars 2896 - 2921 [(rewrite~interp_state_ret).] 0.003 secs (0.003u,0.s) -Chars 2922 - 2934 [reflexivity.] 0. secs (0.u,0.s) -Chars 2935 - 2939 [Qed.] 0.003 secs (0.003u,0.s) -Chars 2941 - 3114 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) -Chars 3115 - 3121 [Proof.] 0. secs (0.u,0.s) -Chars 3124 - 3145 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 3146 - 3171 [(rewrite~interp_state_vis).] 0.001 secs (0.001u,0.s) -Chars 3174 - 3261 [(match~goal~with~~|~|-~?y~≈~?x...] 0.001 secs (0.001u,0.s) -Chars 3264 - 3298 [(eapply~eqit_bind;~try~reflexi...] 0. secs (0.u,0.s) -Chars 3301 - 3346 [(intros~[];~rewrite~interp_sta...] 0.003 secs (0.003u,0.s) -Chars 3349 - 3361 [reflexivity.] 0. secs (0.u,0.s) -Chars 3362 - 3366 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3368 - 3655 [Lemma~interp_state_bind~{E~F~:...] 0.001 secs (0.001u,0.s) -Chars 3656 - 3662 [Proof.] 0. secs (0.u,0.s) -Chars 3665 - 3678 [revert~t~k~s.] 0. secs (0.u,0.s) -Chars 3681 - 3693 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3697 - 3710 [(intros~t~k~s).] 0. secs (0.u,0.s) -Chars 3713 - 3733 [(rewrite~unfold_bind).] 0.018 secs (0.018u,0.s) -Chars 3736 - 3770 [(rewrite~(unfold_interp_state~...] 0.024 secs (0.024u,0.s) -Chars 3773 - 3794 [(destruct~(observe~t)).] 0. secs (0.u,0.s) -Chars 3797 - 3798 [-] 0. secs (0.u,0.s) -Chars 3799 - 3804 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 3805 - 3825 [(rewrite~!bind_ret_l).] 0.021 secs (0.021u,0.s) -Chars 3831 - 3849 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 3852 - 3853 [-] 0. secs (0.u,0.s) -Chars 3854 - 3859 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 3860 - 3865 [taus.] 0. secs (0.u,0.s) -Chars 3866 - 3876 [(apply~CIH).] 0.002 secs (0.002u,0.s) -Chars 3879 - 3880 [-] 0. secs (0.u,0.s) -Chars 3881 - 3886 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3887 - 3923 [(rewrite~interp_state_vis,~bin...] 0.037 secs (0.037u,0.s) -Chars 3928 - 3949 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) -Chars 3957 - 3974 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) -Chars 3981 - 3986 [taus.] 0. secs (0.u,0.s) -Chars 3987 - 4001 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4003 - 4007 [Qed.] 0.014 secs (0.014u,0.s) -Chars 4009 - 4222 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) -Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) -Chars 4232 - 4245 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 4246 - 4252 [subst.] 0. secs (0.u,0.s) -Chars 4253 - 4269 [(revert_until~RR).] 0. secs (0.u,0.s) -Chars 4272 - 4284 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 4285 - 4292 [(intros).] 0. secs (0.u,0.s) -Chars 4296 - 4325 [(rewrite~!unfold_interp_state).] 0.035 secs (0.035u,0.s) -Chars 4326 - 4336 [step~in~H.] 0. secs (0.u,0.s) -Chars 4340 - 4373 [(induction~H;~intros;~subst;~b...] 0.039 secs (0.039u,0.s) -Chars 4377 - 4378 [-] 0. secs (0.u,0.s) -Chars 4379 - 4384 [eret.] 0.001 secs (0.001u,0.s) -Chars 4388 - 4389 [-] 0. secs (0.u,0.s) -Chars 4390 - 4395 [etau.] 0.002 secs (0.002u,0.s) -Chars 4399 - 4400 [-] 0. secs (0.u,0.s) -Chars 4401 - 4422 [(ebind;~intros;~subst).] 0.023 secs (0.023u,0.s) -Chars 4423 - 4428 [taus.] 0. secs (0.u,0.s) -Chars 4429 - 4439 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4440 - 4450 [(apply~REL).] 0. secs (0.u,0.s) -Chars 4454 - 4455 [-] 0. secs (0.u,0.s) -Chars 4456 - 4503 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) -Chars 4506 - 4507 [-] 0. secs (0.u,0.s) -Chars 4508 - 4555 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) -Chars 4556 - 4560 [Qed.] 0.013 secs (0.013u,0.s) -Chars 4562 - 4761 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) -Chars 4762 - 4768 [Proof.] 0. secs (0.u,0.s) -Chars 4771 - 4784 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 4785 - 4791 [subst.] 0. secs (0.u,0.s) -Chars 4792 - 4807 [(revert_until~R).] 0. secs (0.u,0.s) -Chars 4810 - 4822 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4823 - 4830 [(intros).] 0. secs (0.u,0.s) -Chars 4835 - 4864 [(rewrite~!unfold_interp_state).] 0.034 secs (0.034u,0.s) -Chars 4865 - 4875 [step~in~H.] 0. secs (0.u,0.s) -Chars 4879 - 4930 [(induction~H;~intros;~subst;~b...] 0.049 secs (0.048u,0.s) -Chars 4934 - 4935 [-] 0. secs (0.u,0.s) -Chars 4936 - 4941 [eret.] 0.001 secs (0.001u,0.s) -Chars 4945 - 4946 [-] 0. secs (0.u,0.s) -Chars 4947 - 4953 [ebind.] 0.008 secs (0.008u,0.s) -Chars 4954 - 4968 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 4973 - 4978 [etau.] 0.001 secs (0.001u,0.s) -Chars 4981 - 4982 [-] 0. secs (0.u,0.s) -Chars 4983 - 5030 [(rewrite~tau_euttge,~unfold_in...] 0.02 secs (0.02u,0.s) -Chars 5033 - 5034 [-] 0. secs (0.u,0.s) -Chars 5035 - 5082 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) -Chars 5083 - 5087 [Qed.] 0.014 secs (0.014u,0.s) -Chars 5090 - 5726 [Lemma~eutt_interp_state_aloop~...] 0.002 secs (0.002u,0.s) -Chars 5727 - 5733 [Proof.] 0. secs (0.u,0.s) -Chars 5736 - 5745 [intro~Ht.] 0. secs (0.u,0.s) -Chars 5748 - 5760 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5761 - 5768 [(intros).] 0. secs (0.u,0.s) -Chars 5771 - 5793 [(rewrite~2!unfold_iter).] 0.036 secs (0.036u,0.s) -Chars 5796 - 5824 [(rewrite~2!interp_state_bind).] 0.036 secs (0.035u,0.s) -Chars 5827 - 5848 [(ebind;~intros;~subst).] 0.004 secs (0.004u,0.s) -Chars 5852 - 5853 [-] 0. secs (0.u,0.s) -Chars 5854 - 5864 [(do~2~step).] 0.017 secs (0.017u,0.s) -Chars 5865 - 5881 [(eapply~Ht;~auto).] 0. secs (0.u,0.s) -Chars 5884 - 5885 [-] 0. secs (0.u,0.s) -Chars 5886 - 5893 [(inv~H1).] 0.012 secs (0.012u,0.s) -Chars 5894 - 5906 [(inv~snd_rel).] 0.022 secs (0.022u,0.s) -Chars 5911 - 5912 [+] 0. secs (0.u,0.s) -Chars 5913 - 5940 [(rewrite~2!interp_state_tau).] 0.04 secs (0.039u,0.s) -Chars 5941 - 5946 [etau.] 0.001 secs (0.001u,0.s) -Chars 5952 - 5953 [+] 0. secs (0.u,0.s) -Chars 5954 - 5981 [(rewrite~2!interp_state_ret).] 0.042 secs (0.042u,0.s) -Chars 5982 - 5987 [eret.] 0. secs (0.u,0.s) -Chars 5989 - 5993 [Qed.] 0.015 secs (0.015u,0.s) -Chars 5995 - 6657 [Lemma~eutt_interp_state_iter~{...] 0.003 secs (0.003u,0.s) -Chars 6658 - 6664 [Proof.] 0. secs (0.u,0.s) -Chars 6667 - 6697 [(apply~eutt_interp_state_aloop).] 0. secs (0.u,0.s) -Chars 6698 - 6702 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6704 - 6915 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) -Chars 6916 - 6922 [Proof.] 0. secs (0.u,0.s) -Chars 6925 - 7003 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 7006 - 7030 [(coinduction;~intros~i~s).] 0.003 secs (0.002u,0.s) -Chars 7033 - 7061 [(rewrite~2!unfold_iter;~bcbn).] 0.043 secs (0.042u,0.s) -Chars 7064 - 7083 [(rewrite~!bind_bind).] 0.027 secs (0.027u,0.s) -Chars 7086 - 7112 [setoid_rewrite~bind_ret_l.] 0.044 secs (0.044u,0.s) -Chars 7115 - 7141 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) -Chars 7144 - 7150 [ebind.] 0.008 secs (0.008u,0.s) -Chars 7153 - 7179 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) -Chars 7182 - 7183 [-] 0. secs (0.u,0.s) -Chars 7184 - 7189 [etau.] 0.002 secs (0.002u,0.s) -Chars 7193 - 7194 [-] 0. secs (0.u,0.s) -Chars 7195 - 7200 [eret.] 0. secs (0.u,0.s) -Chars 7202 - 7206 [Qed.] 0.016 secs (0.016u,0.s) -Chars 7208 - 7735 [Lemma~eutt_interp_state_loop~{...] 0.003 secs (0.003u,0.s) -Chars 7736 - 7742 [Proof.] 0. secs (0.u,0.s) -Chars 7745 - 7752 [(intros).] 0. secs (0.u,0.s) -Chars 7755 - 7922 [(unfold~loop,~bimap,~Bimap_Cop...] 0. secs (0.u,0.s) -Chars 7925 - 7946 [(rewrite~2!bind_ret_l).] 0.013 secs (0.013u,0.s) -Chars 7949 - 8001 [(eapply~(eutt_interp_state_ite...] 0.025 secs (0.025u,0.s) -Chars 8004 - 8032 [(rewrite~2!interp_state_bind).] 0.011 secs (0.011u,0.s) -Chars 8035 - 8041 [subst.] 0. secs (0.u,0.s) -Chars 8044 - 8073 [(eapply~eutt_bind_eutt;~eauto).] 0.015 secs (0.015u,0.s) -Chars 8076 - 8083 [(intros).] 0. secs (0.u,0.s) -Chars 8086 - 8122 [(cbn~in~H2;~destruct~H2~as~[H2...] 0. secs (0.u,0.s) -Chars 8125 - 8159 [(destruct~(snd~u1);~rewrite~<-...] 0.002 secs (0.002u,0.s) -Chars 8162 - 8163 [-] 0. secs (0.u,0.s) -Chars 8164 - 8203 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) -Chars 8208 - 8213 [step.] 0.002 secs (0.002u,0.s) -Chars 8219 - 8224 [eret.] 0.001 secs (0.001u,0.s) -Chars 8228 - 8229 [-] 0. secs (0.u,0.s) -Chars 8230 - 8269 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) -Chars 8270 - 8275 [step.] 0.002 secs (0.002u,0.s) -Chars 8276 - 8281 [eret.] 0.001 secs (0.001u,0.s) -Chars 8283 - 8287 [Qed.] 0.012 secs (0.012u,0.s) -Chars 8336 - 8479 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) -Chars 8481 - 8799 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) -Chars 8800 - 8806 [Proof.] 0. secs (0.u,0.s) -Chars 8809 - 8887 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 8890 - 8914 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) -Chars 8917 - 8945 [(rewrite~2!unfold_iter;~bcbn).] 0.045 secs (0.044u,0.s) -Chars 8948 - 8967 [(rewrite~!bind_bind).] 0.026 secs (0.026u,0.s) -Chars 8970 - 8996 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) -Chars 8999 - 9025 [(rewrite~interp_state_bind).] 0.021 secs (0.021u,0.s) -Chars 9028 - 9034 [ebind.] 0.009 secs (0.009u,0.s) -Chars 9038 - 9039 [-] 0. secs (0.u,0.s) -Chars 9040 - 9050 [(do~2~step).] 0.016 secs (0.016u,0.s) -Chars 9051 - 9062 [(apply~EQ_t).] 0. secs (0.u,0.s) -Chars 9065 - 9066 [-] 0. secs (0.u,0.s) -Chars 9067 - 9093 [(intros~[s'~[]]~_~[];~bcbn).] 0.005 secs (0.005u,0.s) -Chars 9098 - 9099 [+] 0. secs (0.u,0.s) -Chars 9100 - 9105 [etau.] 0.002 secs (0.002u,0.s) -Chars 9111 - 9112 [+] 0. secs (0.u,0.s) -Chars 9113 - 9118 [eret.] 0. secs (0.u,0.s) -Chars 9120 - 9124 [Qed.] 0.016 secs (0.016u,0.s) -Chars 9126 - 9370 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) -Chars 9371 - 9377 [Proof.] 0. secs (0.u,0.s) -Chars 9380 - 9405 [(eapply~interp_state_iter).] 0. secs (0.u,0.s) -Chars 9408 - 9417 [(intros~i).] 0. secs (0.u,0.s) -Chars 9420 - 9424 [(red).] 0. secs (0.u,0.s) -Chars 9425 - 9437 [reflexivity.] 0. secs (0.u,0.s) -Chars 9438 - 9442 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9444 - 9721 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) -Chars 9722 - 9728 [Proof.] 0. secs (0.u,0.s) -Chars 9731 - 9809 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 9812 - 9836 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) -Chars 9839 - 9867 [(rewrite~2!unfold_iter;~bcbn).] 0.039 secs (0.039u,0.s) -Chars 9870 - 9889 [(rewrite~!bind_bind).] 0.025 secs (0.025u,0.s) -Chars 9892 - 9918 [setoid_rewrite~bind_ret_l.] 0.039 secs (0.039u,0.s) -Chars 9921 - 9947 [(rewrite~interp_state_bind).] 0.019 secs (0.019u,0.s) -Chars 9950 - 9956 [ebind.] 0.009 secs (0.009u,0.s) -Chars 9960 - 9961 [-] 0. secs (0.u,0.s) -Chars 9962 - 9972 [(do~2~step).] 0.017 secs (0.017u,0.s) -Chars 9973 - 9983 [(apply~Heq).] 0. secs (0.u,0.s) -Chars 9986 - 9987 [-] 0. secs (0.u,0.s) -Chars 9988 - 10014 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) -Chars 10019 - 10020 [+] 0. secs (0.u,0.s) -Chars 10021 - 10026 [etau.] 0.002 secs (0.002u,0.s) -Chars 10032 - 10033 [+] 0. secs (0.u,0.s) -Chars 10034 - 10039 [eret.] 0. secs (0.u,0.s) -Chars 10041 - 10045 [Qed.] 0.016 secs (0.016u,0.s) +Chars 57 - 93 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) +Chars 96 - 149 [From~Stdlib~Require~Import~Pro...] 0.002 secs (0.u,0.001s) +Chars 152 - 480 [From~ITree~Require~Import~Basi...] 0.084 secs (0.072u,0.012s) +Chars 482 - 504 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 506 - 535 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 537 - 551 [Import~Monads.] 0. secs (0.u,0.s) +Chars 568 - 870 [Definition~_interp_state~{E}~{...] 0.002 secs (0.002u,0.s) +Chars 872 - 1052 [Lemma~unfold_interp_state~{E}~...] 0. secs (0.u,0.s) +Chars 1053 - 1059 [Proof.] 0. secs (0.u,0.s) +Chars 1062 - 1157 [(unfold~interp_state,~interp,~...] 0. secs (0.u,0.s) +Chars 1160 - 1185 [(rewrite~unfold_iter;~cbn).] 0.009 secs (0.009u,0.s) +Chars 1188 - 1210 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) +Chars 1213 - 1214 [-] 0. secs (0.u,0.s) +Chars 1215 - 1236 [(rewrite~2!bind_ret_l).] 0.056 secs (0.055u,0.s) +Chars 1237 - 1249 [reflexivity.] 0. secs (0.u,0.s) +Chars 1252 - 1253 [-] 0. secs (0.u,0.s) +Chars 1254 - 1275 [(rewrite~2!bind_ret_l).] 0.024 secs (0.021u,0.002s) +Chars 1280 - 1292 [reflexivity.] 0. secs (0.u,0.s) +Chars 1295 - 1296 [-] 0. secs (0.u,0.s) +Chars 1297 - 1330 [(rewrite~bind_map,~bind_bind;~...] 0.028 secs (0.022u,0.005s) +Chars 1331 - 1357 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 1362 - 1391 [(apply~eqit_bind;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 1392 - 1396 [Qed.] 0.019 secs (0.018u,0.s) +Chars 1398 - 1575 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.001u,0.s) +Chars 1576 - 1582 [Proof.] 0. secs (0.u,0.s) +Chars 1585 - 1600 [(revert_until~R).] 0. secs (0.u,0.s) +Chars 1603 - 1615 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1616 - 1640 [(intros~h~x~y~H0~x2~_~[]).] 0. secs (0.u,0.s) +Chars 1643 - 1672 [(rewrite~!unfold_interp_state).] 0.039 secs (0.038u,0.s) +Chars 1675 - 1686 [step~in~H0.] 0. secs (0.u,0.s) +Chars 1690 - 1732 [(destruct~H0;~subst;~try~discr...] 0.002 secs (0.002u,0.s) +Chars 1735 - 1736 [-] 0. secs (0.u,0.s) +Chars 1737 - 1749 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 1753 - 1754 [-] 0. secs (0.u,0.s) +Chars 1755 - 1775 [(taus;~now~apply~CIH).] 0. secs (0.u,0.s) +Chars 1780 - 1781 [-] 0. secs (0.u,0.s) +Chars 1782 - 1789 [to_mon.] 0. secs (0.u,0.s) +Chars 1790 - 1811 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) +Chars 1818 - 1819 [+] 0. secs (0.u,0.s) +Chars 1820 - 1842 [(taus;~auto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 1844 - 1848 [Qed.] 0.011 secs (0.011u,0.s) +Chars 1850 - 2032 [Lemma~interp_state_ret~{E~F~:~...] 0.001 secs (0.001u,0.s) +Chars 2033 - 2039 [Proof.] 0. secs (0.u,0.s) +Chars 2042 - 2060 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) +Chars 2061 - 2073 [reflexivity.] 0. secs (0.u,0.s) +Chars 2074 - 2078 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2080 - 2323 [Lemma~interp_state_vis~{E~F~:~...] 0.001 secs (0.001u,0.s) +Chars 2324 - 2330 [Proof.] 0. secs (0.u,0.s) +Chars 2333 - 2374 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) +Chars 2375 - 2379 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2381 - 2563 [Lemma~interp_state_tau~{E~F~:~...] 0.001 secs (0.001u,0.s) +Chars 2564 - 2570 [Proof.] 0. secs (0.u,0.s) +Chars 2573 - 2614 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) +Chars 2615 - 2619 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2621 - 2828 [Lemma~interp_state_trigger_eqi...] 0.001 secs (0.001u,0.s) +Chars 2829 - 2835 [Proof.] 0. secs (0.u,0.s) +Chars 2838 - 2859 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 2860 - 2885 [(rewrite~interp_state_vis).] 0.002 secs (0.002u,0.s) +Chars 2888 - 2922 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) +Chars 2925 - 2935 [(intros~[]).] 0. secs (0.u,0.s) +Chars 2936 - 2961 [(rewrite~interp_state_ret).] 0.003 secs (0.003u,0.s) +Chars 2962 - 2974 [reflexivity.] 0. secs (0.u,0.s) +Chars 2975 - 2979 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2981 - 3154 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) +Chars 3155 - 3161 [Proof.] 0. secs (0.u,0.s) +Chars 3164 - 3185 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) +Chars 3186 - 3211 [(rewrite~interp_state_vis).] 0.001 secs (0.001u,0.s) +Chars 3214 - 3301 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.002u,0.s) +Chars 3304 - 3338 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) +Chars 3341 - 3386 [(intros~[];~rewrite~interp_sta...] 0.003 secs (0.003u,0.s) +Chars 3389 - 3401 [reflexivity.] 0. secs (0.u,0.s) +Chars 3402 - 3406 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3408 - 3695 [Lemma~interp_state_bind~{E~F~:...] 0.001 secs (0.001u,0.s) +Chars 3696 - 3702 [Proof.] 0. secs (0.u,0.s) +Chars 3705 - 3718 [revert~t~k~s.] 0. secs (0.u,0.s) +Chars 3721 - 3733 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3737 - 3750 [(intros~t~k~s).] 0. secs (0.u,0.s) +Chars 3753 - 3773 [(rewrite~unfold_bind).] 0.019 secs (0.019u,0.s) +Chars 3776 - 3810 [(rewrite~(unfold_interp_state~...] 0.025 secs (0.025u,0.s) +Chars 3813 - 3834 [(destruct~(observe~t)).] 0. secs (0.u,0.s) +Chars 3837 - 3838 [-] 0. secs (0.u,0.s) +Chars 3839 - 3844 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 3845 - 3865 [(rewrite~!bind_ret_l).] 0.021 secs (0.021u,0.s) +Chars 3871 - 3889 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 3892 - 3893 [-] 0. secs (0.u,0.s) +Chars 3894 - 3899 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3900 - 3905 [taus.] 0. secs (0.u,0.s) +Chars 3906 - 3916 [(apply~CIH).] 0.002 secs (0.002u,0.s) +Chars 3919 - 3920 [-] 0. secs (0.u,0.s) +Chars 3921 - 3926 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3927 - 3963 [(rewrite~interp_state_vis,~bin...] 0.038 secs (0.037u,0.s) +Chars 3968 - 3989 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) +Chars 3997 - 4014 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 4021 - 4026 [taus.] 0. secs (0.u,0.s) +Chars 4027 - 4041 [now~apply~CIH.] 0. secs (0.u,0.s) +Chars 4043 - 4047 [Qed.] 0.015 secs (0.015u,0.s) +Chars 4049 - 4262 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) +Chars 4263 - 4269 [Proof.] 0. secs (0.u,0.s) +Chars 4272 - 4285 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4286 - 4292 [subst.] 0. secs (0.u,0.s) +Chars 4293 - 4309 [(revert_until~RR).] 0. secs (0.u,0.s) +Chars 4312 - 4324 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4325 - 4332 [(intros).] 0. secs (0.u,0.s) +Chars 4336 - 4365 [(rewrite~!unfold_interp_state).] 0.037 secs (0.037u,0.s) +Chars 4366 - 4376 [step~in~H.] 0. secs (0.u,0.s) +Chars 4380 - 4413 [(induction~H;~intros;~subst;~b...] 0.039 secs (0.039u,0.s) +Chars 4417 - 4418 [-] 0. secs (0.u,0.s) +Chars 4419 - 4424 [eret.] 0.003 secs (0.003u,0.s) +Chars 4428 - 4429 [-] 0. secs (0.u,0.s) +Chars 4430 - 4435 [etau.] 0.002 secs (0.002u,0.s) +Chars 4439 - 4440 [-] 0. secs (0.u,0.s) +Chars 4441 - 4462 [(ebind;~intros;~subst).] 0.024 secs (0.024u,0.s) +Chars 4463 - 4468 [taus.] 0. secs (0.u,0.s) +Chars 4469 - 4479 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4480 - 4490 [(apply~REL).] 0. secs (0.u,0.s) +Chars 4494 - 4495 [-] 0. secs (0.u,0.s) +Chars 4496 - 4543 [(rewrite~tau_euttge,~unfold_in...] 0.02 secs (0.02u,0.s) +Chars 4546 - 4547 [-] 0. secs (0.u,0.s) +Chars 4548 - 4595 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) +Chars 4596 - 4600 [Qed.] 0.012 secs (0.012u,0.s) +Chars 4602 - 4801 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) +Chars 4802 - 4808 [Proof.] 0. secs (0.u,0.s) +Chars 4811 - 4824 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4825 - 4831 [subst.] 0. secs (0.u,0.s) +Chars 4832 - 4847 [(revert_until~R).] 0. secs (0.u,0.s) +Chars 4850 - 4862 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4863 - 4870 [(intros).] 0. secs (0.u,0.s) +Chars 4875 - 4904 [(rewrite~!unfold_interp_state).] 0.035 secs (0.035u,0.s) +Chars 4905 - 4915 [step~in~H.] 0. secs (0.u,0.s) +Chars 4919 - 4970 [(induction~H;~intros;~subst;~b...] 0.048 secs (0.048u,0.s) +Chars 4974 - 4975 [-] 0. secs (0.u,0.s) +Chars 4976 - 4981 [eret.] 0.001 secs (0.001u,0.s) +Chars 4985 - 4986 [-] 0. secs (0.u,0.s) +Chars 4987 - 4993 [ebind.] 0.009 secs (0.009u,0.s) +Chars 4994 - 5008 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 5013 - 5018 [etau.] 0.002 secs (0.002u,0.s) +Chars 5021 - 5022 [-] 0. secs (0.u,0.s) +Chars 5023 - 5070 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) +Chars 5073 - 5074 [-] 0. secs (0.u,0.s) +Chars 5075 - 5122 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.022u,0.s) +Chars 5123 - 5127 [Qed.] 0.013 secs (0.013u,0.s) +Chars 5130 - 5766 [Lemma~eutt_interp_state_aloop~...] 0.002 secs (0.002u,0.s) +Chars 5767 - 5773 [Proof.] 0. secs (0.u,0.s) +Chars 5776 - 5785 [intro~Ht.] 0. secs (0.u,0.s) +Chars 5788 - 5800 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5801 - 5808 [(intros).] 0. secs (0.u,0.s) +Chars 5811 - 5833 [(rewrite~2!unfold_iter).] 0.037 secs (0.036u,0.s) +Chars 5836 - 5864 [(rewrite~2!interp_state_bind).] 0.036 secs (0.036u,0.s) +Chars 5867 - 5888 [(ebind;~intros;~subst).] 0.004 secs (0.004u,0.s) +Chars 5892 - 5893 [-] 0. secs (0.u,0.s) +Chars 5894 - 5904 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 5905 - 5921 [(eapply~Ht;~auto).] 0. secs (0.u,0.s) +Chars 5924 - 5925 [-] 0. secs (0.u,0.s) +Chars 5926 - 5933 [(inv~H1).] 0.013 secs (0.012u,0.s) +Chars 5934 - 5946 [(inv~snd_rel).] 0.024 secs (0.024u,0.s) +Chars 5951 - 5952 [+] 0. secs (0.u,0.s) +Chars 5953 - 5980 [(rewrite~2!interp_state_tau).] 0.042 secs (0.042u,0.s) +Chars 5981 - 5986 [etau.] 0.001 secs (0.001u,0.s) +Chars 5992 - 5993 [+] 0. secs (0.u,0.s) +Chars 5994 - 6021 [(rewrite~2!interp_state_ret).] 0.041 secs (0.04u,0.s) +Chars 6022 - 6027 [eret.] 0.001 secs (0.001u,0.s) +Chars 6029 - 6033 [Qed.] 0.034 secs (0.02u,0.s) +Chars 6035 - 6697 [Lemma~eutt_interp_state_iter~{...] 0.003 secs (0.003u,0.s) +Chars 6698 - 6704 [Proof.] 0. secs (0.u,0.s) +Chars 6707 - 6737 [(apply~eutt_interp_state_aloop).] 0. secs (0.u,0.s) +Chars 6738 - 6742 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6744 - 6955 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) +Chars 6956 - 6962 [Proof.] 0. secs (0.u,0.s) +Chars 6965 - 7043 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 7046 - 7070 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) +Chars 7073 - 7101 [(rewrite~2!unfold_iter;~bcbn).] 0.048 secs (0.044u,0.s) +Chars 7104 - 7123 [(rewrite~!bind_bind).] 0.027 secs (0.027u,0.s) +Chars 7126 - 7152 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) +Chars 7155 - 7181 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) +Chars 7184 - 7190 [ebind.] 0.009 secs (0.008u,0.s) +Chars 7193 - 7219 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) +Chars 7222 - 7223 [-] 0. secs (0.u,0.s) +Chars 7224 - 7229 [etau.] 0.002 secs (0.002u,0.s) +Chars 7233 - 7234 [-] 0. secs (0.u,0.s) +Chars 7235 - 7240 [eret.] 0. secs (0.u,0.s) +Chars 7242 - 7246 [Qed.] 0.015 secs (0.015u,0.s) +Chars 7248 - 7775 [Lemma~eutt_interp_state_loop~{...] 0.003 secs (0.003u,0.s) +Chars 7776 - 7782 [Proof.] 0. secs (0.u,0.s) +Chars 7785 - 7792 [(intros).] 0. secs (0.u,0.s) +Chars 7795 - 7962 [(unfold~loop,~bimap,~Bimap_Cop...] 0. secs (0.u,0.s) +Chars 7965 - 7986 [(rewrite~2!bind_ret_l).] 0.011 secs (0.011u,0.s) +Chars 7989 - 8041 [(eapply~(eutt_interp_state_ite...] 0.026 secs (0.026u,0.s) +Chars 8044 - 8072 [(rewrite~2!interp_state_bind).] 0.013 secs (0.012u,0.s) +Chars 8075 - 8081 [subst.] 0. secs (0.u,0.s) +Chars 8084 - 8113 [(eapply~eutt_bind_eutt;~eauto).] 0.016 secs (0.016u,0.s) +Chars 8116 - 8123 [(intros).] 0. secs (0.u,0.s) +Chars 8126 - 8162 [(cbn~in~H2;~destruct~H2~as~[H2...] 0. secs (0.u,0.s) +Chars 8165 - 8199 [(destruct~(snd~u1);~rewrite~<-...] 0.002 secs (0.002u,0.s) +Chars 8202 - 8203 [-] 0. secs (0.u,0.s) +Chars 8204 - 8243 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) +Chars 8248 - 8253 [step.] 0.002 secs (0.002u,0.s) +Chars 8259 - 8264 [eret.] 0.001 secs (0.001u,0.s) +Chars 8268 - 8269 [-] 0. secs (0.u,0.s) +Chars 8270 - 8309 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) +Chars 8310 - 8315 [step.] 0.002 secs (0.002u,0.s) +Chars 8316 - 8321 [eret.] 0.001 secs (0.001u,0.s) +Chars 8323 - 8327 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8376 - 8519 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) +Chars 8521 - 8839 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) +Chars 8840 - 8846 [Proof.] 0. secs (0.u,0.s) +Chars 8849 - 8927 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 8930 - 8954 [(coinduction;~intros~i~s).] 0.003 secs (0.003u,0.s) +Chars 8957 - 8985 [(rewrite~2!unfold_iter;~bcbn).] 0.047 secs (0.045u,0.s) +Chars 8988 - 9007 [(rewrite~!bind_bind).] 0.025 secs (0.025u,0.s) +Chars 9010 - 9036 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.042u,0.s) +Chars 9039 - 9065 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) +Chars 9068 - 9074 [ebind.] 0.009 secs (0.009u,0.s) +Chars 9078 - 9079 [-] 0. secs (0.u,0.s) +Chars 9080 - 9090 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 9091 - 9102 [(apply~EQ_t).] 0. secs (0.u,0.s) +Chars 9105 - 9106 [-] 0. secs (0.u,0.s) +Chars 9107 - 9133 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) +Chars 9138 - 9139 [+] 0. secs (0.u,0.s) +Chars 9140 - 9145 [etau.] 0.002 secs (0.002u,0.s) +Chars 9151 - 9152 [+] 0. secs (0.u,0.s) +Chars 9153 - 9158 [eret.] 0. secs (0.u,0.s) +Chars 9160 - 9164 [Qed.] 0.016 secs (0.016u,0.s) +Chars 9166 - 9410 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) +Chars 9411 - 9417 [Proof.] 0. secs (0.u,0.s) +Chars 9420 - 9445 [(eapply~interp_state_iter).] 0. secs (0.u,0.s) +Chars 9448 - 9457 [(intros~i).] 0. secs (0.u,0.s) +Chars 9460 - 9464 [(red).] 0. secs (0.u,0.s) +Chars 9465 - 9477 [reflexivity.] 0. secs (0.u,0.s) +Chars 9478 - 9482 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9484 - 9761 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) +Chars 9762 - 9768 [Proof.] 0. secs (0.u,0.s) +Chars 9771 - 9849 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 9852 - 9876 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) +Chars 9879 - 9907 [(rewrite~2!unfold_iter;~bcbn).] 0.039 secs (0.039u,0.s) +Chars 9910 - 9929 [(rewrite~!bind_bind).] 0.024 secs (0.024u,0.s) +Chars 9932 - 9958 [setoid_rewrite~bind_ret_l.] 0.04 secs (0.04u,0.s) +Chars 9961 - 9987 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) +Chars 9990 - 9996 [ebind.] 0.01 secs (0.01u,0.s) +Chars 10000 - 10001 [-] 0. secs (0.u,0.s) +Chars 10002 - 10012 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 10013 - 10023 [(apply~Heq).] 0. secs (0.u,0.s) +Chars 10026 - 10027 [-] 0. secs (0.u,0.s) +Chars 10028 - 10054 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) +Chars 10059 - 10060 [+] 0. secs (0.u,0.s) +Chars 10061 - 10066 [etau.] 0.002 secs (0.002u,0.s) +Chars 10072 - 10073 [+] 0. secs (0.u,0.s) +Chars 10074 - 10079 [eret.] 0. secs (0.u,0.s) +Chars 10081 - 10085 [Qed.] 0.016 secs (0.016u,0.s) diff --git a/theories/Events/Writer.v.timing b/theories/Events/Writer.v.timing index 70a40326..af5bd24d 100644 --- a/theories/Events/Writer.v.timing +++ b/theories/Events/Writer.v.timing @@ -1,9 +1,9 @@ Chars 57 - 80 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 81 - 105 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.039 secs (0.031u,0.008s) +Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.042 secs (0.033u,0.009s) Chars 145 - 166 [Import~ListNotations.] 0. secs (0.u,0.s) Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.112 secs (0.105u,0.007s) +Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.122 secs (0.113u,0.008s) Chars 501 - 529 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 589 - 663 [Variant~writerE~(W~:~Type)~:~T...] 0. secs (0.u,0.s) Chars 687 - 778 [Definition~tell~{W}~{E}~`{writ...] 0. secs (0.u,0.s) @@ -13,5 +13,5 @@ Chars 1238 - 1280 [Arguments~run_writer_list_stat...] 0. secs (0.u,0.s) Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0.001 secs (0.001u,0.s) Chars 1604 - 1640 [Arguments~run_writer_list~{W~E...] 0. secs (0.u,0.s) Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0.001 secs (0.u,0.s) -Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.001u,0.s) +Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.002 secs (0.001u,0.s) Chars 2160 - 2200 [Arguments~run_writer~{W~E}~Mon...] 0. secs (0.u,0.s) diff --git a/theories/ITree.v.timing b/theories/ITree.v.timing index 0983e9fa..e9d42dbb 100644 --- a/theories/ITree.v.timing +++ b/theories/ITree.v.timing @@ -1 +1 @@ -Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.059 secs (0.048u,0.011s) +Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.063 secs (0.05u,0.012s) diff --git a/theories/ITreeFacts.v.timing b/theories/ITreeFacts.v.timing index 10b1c61d..1ccfb9d5 100644 --- a/theories/ITreeFacts.v.timing +++ b/theories/ITreeFacts.v.timing @@ -1 +1 @@ -Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.229 secs (0.202u,0.026s) +Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.229 secs (0.201u,0.028s) diff --git a/theories/Indexed/Function.v.timing b/theories/Indexed/Function.v.timing index f6fe5ff9..c8367719 100644 --- a/theories/Indexed/Function.v.timing +++ b/theories/Indexed/Function.v.timing @@ -1,4 +1,4 @@ -Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.014 secs (0.011u,0.002s) +Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.014 secs (0.011u,0.003s) Chars 352 - 378 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 428 - 482 [Definition~IFun~(E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 545 - 610 [Definition~apply_IFun~{E}~{F}~...] 0. secs (0.u,0.s) diff --git a/theories/Indexed/FunctionFacts.v.timing b/theories/Indexed/FunctionFacts.v.timing index ccfdccd7..2982ee44 100644 --- a/theories/Indexed/FunctionFacts.v.timing +++ b/theories/Indexed/FunctionFacts.v.timing @@ -1,5 +1,5 @@ -Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) +Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) +Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.009 secs (0.007u,0.001s) Chars 212 - 238 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 255 - 475 [#[global]~Instance~Proper_appl...] 0. secs (0.u,0.s) Chars 476 - 482 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Relation.v.timing b/theories/Indexed/Relation.v.timing index 90c19184..80c43d15 100644 --- a/theories/Indexed/Relation.v.timing +++ b/theories/Indexed/Relation.v.timing @@ -1,4 +1,4 @@ -Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.008 secs (0.005u,0.002s) +Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.009 secs (0.006u,0.003s) Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) Chars 157 - 183 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 292 - 538 [Definition~i_respectful~{A~B~:...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Handler.v.timing b/theories/Interp/Handler.v.timing index 83dcd3b0..04d2dedb 100644 --- a/theories/Interp/Handler.v.timing +++ b/theories/Interp/Handler.v.timing @@ -1,15 +1,15 @@ Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.059 secs (0.048u,0.011s) +Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.059 secs (0.047u,0.012s) Chars 362 - 396 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 398 - 427 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 476 - 491 [Module~Handler.] 0. secs (0.u,0.s) Chars 726 - 818 [Definition~htrigger~{A}~{B}~(m...] 0. secs (0.u,0.s) Chars 971 - 1037 [Definition~id_~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0.001 secs (0.u,0.s) +Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0.001 secs (0.001u,0.s) Chars 1282 - 1360 [Definition~inl_~{E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 1404 - 1482 [Definition~inr_~{E~F~:~Type~->...] 0. secs (0.u,0.s) -Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0.02 secs (0.018u,0.001s) -Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0.001 secs (0.001u,0.s) +Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0. secs (0.u,0.s) +Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0.02 secs (0.018u,0.001s) Chars 2305 - 2405 [Definition~empty~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 2407 - 2419 [End~Handler.] 0. secs (0.u,0.s) Chars 2451 - 2507 [Definition~Handler~(E~F~:~Type...] 0. secs (0.u,0.s) diff --git a/theories/Interp/HandlerFacts.v.timing b/theories/Interp/HandlerFacts.v.timing index 82c1e21c..eb49c567 100644 --- a/theories/Interp/HandlerFacts.v.timing +++ b/theories/Interp/HandlerFacts.v.timing @@ -1,339 +1,340 @@ -Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.083 secs (0.071u,0.012s) -Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) -Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) -Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0.001 secs (0.001u,0.s) -Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 794 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 797 - 821 [(apply~eutt_interp;~auto).] 0. secs (0.u,0.s) -Chars 822 - 826 [Qed.] 0.001 secs (0.001u,0.s) -Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) -Chars 879 - 891 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 894 - 919 [(rewrite~interp_trigger_h).] 0.002 secs (0.002u,0.s) -Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) -Chars 933 - 937 [Qed.] 0.001 secs (0.001u,0.s) -Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) -Chars 990 - 1002 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1005 - 1028 [(rewrite~interp_trigger).] 0.013 secs (0.013u,0.s) -Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) -Chars 1044 - 1048 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) -Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1117 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1120 - 1142 [(rewrite~interp_interp).] 0.05 secs (0.05u,0.s) -Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) -Chars 1158 - 1162 [Qed.] 0.002 secs (0.002u,0.s) -Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) -Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) -Chars 1226 - 1251 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) -Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) -Chars 1336 - 1355 [(compute;~contradiction).] 0. secs (0.u,0.s) -Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) -Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) -Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) -Chars 1524 - 1536 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1539 - 1571 [(destruct~(_~:~sum1~_~_~_);~au...] 0. secs (0.u,0.s) -Chars 1572 - 1576 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) -Chars 1636 - 1648 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1651 - 1674 [(rewrite~interp_trigger).] 0.017 secs (0.015u,0.001s) -Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) -Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) -Chars 1754 - 1766 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1769 - 1792 [(rewrite~interp_trigger).] 0.018 secs (0.014u,0.004s) -Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) -Chars 1808 - 1812 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) -Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) -Chars 1884 - 1896 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1899 - 1925 [(destruct~(_~:~sum1~_~_~_)).] 0.001 secs (0.u,0.s) -Chars 1928 - 1929 [-] 0. secs (0.u,0.s) -Chars 1930 - 1959 [(rewrite~<-~H,~interp_trigger).] 0.024 secs (0.023u,0.001s) -Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) -Chars 1975 - 1976 [-] 0. secs (0.u,0.s) -Chars 1977 - 2007 [(rewrite~<-~H0,~interp_trigger).] 0.021 secs (0.02u,0.s) -Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) -Chars 2021 - 2025 [Qed.] 0.002 secs (0.002u,0.s) -Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) -Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) -Chars 2096 - 2121 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) -Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) -Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) -Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2314 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2317 - 2348 [(apply~Proper_interp_mrec;~auto).] 0. secs (0.u,0.s) -Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) -Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) -Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) -Chars 2419 - 2431 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 2434 - 2464 [(rewrite~interp_mrec_as_interp).] 0.002 secs (0.002u,0.s) -Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) -Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) -Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) -Chars 2552 - 2564 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 2567 - 2577 [(pattern~f).] 0.004 secs (0.004u,0.s) -Chars 2580 - 2678 [(match~goal~with~~|~|-~?G~?f~=...] 0. secs (0.u,0.s) -Chars 2681 - 2682 [{] 0. secs (0.u,0.s) -Chars 2683 - 2738 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) -Chars 2743 - 2744 [-] 0. secs (0.u,0.s) -Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) -Chars 2755 - 2792 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) -Chars 2799 - 2800 [+] 0. secs (0.u,0.s) -Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2821 [+] 0. secs (0.u,0.s) -Chars 2822 - 2879 [(apply~euttge_interp_mrec;~rep...] 0. secs (0.u,0.s) -Chars 2884 - 2885 [-] 0. secs (0.u,0.s) -Chars 2886 - 2928 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) -Chars 2935 - 2936 [+] 0. secs (0.u,0.s) -Chars 2937 - 2948 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 2949 - 2969 [(apply~euttge_interp).] 0. secs (0.u,0.s) -Chars 2978 - 2979 [*] 0. secs (0.u,0.s) -Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) -Chars 3001 - 3002 [*] 0. secs (0.u,0.s) -Chars 3003 - 3020 [(apply~tau_euttge).] 0. secs (0.u,0.s) -Chars 3027 - 3028 [+] 0. secs (0.u,0.s) -Chars 3029 - 3048 [(rewrite~tau_euttge).] 0.014 secs (0.014u,0.s) -Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) -Chars 3064 - 3065 [}] 0. secs (0.u,0.s) -Chars 3068 - 3296 [(match~goal~with~~|~|-~_~_~(_~...] 0.002 secs (0.002u,0.s) -Chars 3299 - 3338 [(remember~(Tau~(f~T~a0))~as~t~...] 0.001 secs (0.001u,0.s) -Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) -Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 3453 - 3485 [(revert~t;~coinduction;~intros...] 0.006 secs (0.006u,0.s) -Chars 3488 - 3510 [(rewrite~(itree_eta~t)).] 0.024 secs (0.024u,0.s) -Chars 3513 - 3534 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) -Chars 3537 - 3538 [-] 0. secs (0.u,0.s) -Chars 3539 - 3566 [(rewrite~unfold_interp_mrec).] 0.021 secs (0.021u,0.s) -Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) -Chars 3578 - 3599 [(rewrite~2!interp_ret).] 0.043 secs (0.043u,0.s) -Chars 3604 - 3631 [(rewrite~unfold_interp_mrec).] 0.02 secs (0.02u,0.s) -Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 3651 - 3652 [-] 0. secs (0.u,0.s) -Chars 3653 - 3680 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) -Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) -Chars 3692 - 3713 [(rewrite~2!interp_tau).] 0.045 secs (0.044u,0.s) -Chars 3718 - 3764 [(rewrite~(unfold_interp_mrec~_...] 0.02 secs (0.02u,0.s) -Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) -Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3811 [(rewrite~unfold_interp_mrec).] 0.021 secs (0.021u,0.s) -Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) -Chars 3822 - 3841 [(rewrite~interp_vis).] 0.027 secs (0.027u,0.s) -Chars 3846 - 3863 [(destruct~e;~bcbn).] 0.001 secs (0.001u,0.s) -Chars 3868 - 3869 [+] 0. secs (0.u,0.s) -Chars 3870 - 3889 [(rewrite~interp_tau).] 0.021 secs (0.021u,0.s) -Chars 3896 - 3936 [(rewrite~2!interp_mrec_bind,~i...] 0.066 secs (0.066u,0.s) -Chars 3943 - 3951 [subst~h.] 0.003 secs (0.003u,0.s) -Chars 3959 - 3964 [bcbn.] 0.053 secs (0.053u,0.s) -Chars 3971 - 3994 [(rewrite~interp_trigger).] 0.042 secs (0.041u,0.s) -Chars 4001 - 4028 [(rewrite~unfold_interp_mrec).] 0.041 secs (0.04u,0.s) -Chars 4030 - 4035 [bcbn.] 0.051 secs (0.051u,0.s) -Chars 4043 - 4071 [(rewrite~interp_mrec_trigger).] 0.036 secs (0.036u,0.s) -Chars 4072 - 4077 [bcbn.] 0.051 secs (0.05u,0.s) -Chars 4085 - 4107 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) -Chars 4236 - 4256 [(rewrite~!interp_tau).] 0.121 secs (0.121u,0.s) -Chars 4263 - 4310 [(rewrite~(unfold_interp_mrec~_...] 0.116 secs (0.115u,0.s) -Chars 4317 - 4335 [(rewrite~!bind_tau).] 0.102 secs (0.102u,0.s) -Chars 4342 - 4347 [taus.] 0.001 secs (0.001u,0.s) -Chars 4348 - 4406 [(rewrite~tau_euttge,~<-~interp...] 0.153 secs (0.152u,0.s) -Chars 4413 - 4454 [setoid_rewrite~(tau_euttge~(in...] 0.074 secs (0.074u,0.s) -Chars 4461 - 4484 [(rewrite~<-~interp_bind).] 0.035 secs (0.035u,0.s) -Chars 4491 - 4496 [auto.] 0. secs (0.u,0.s) -Chars 4501 - 4502 [+] 0. secs (0.u,0.s) -Chars 4503 - 4522 [(rewrite~interp_vis).] 0.02 secs (0.02u,0.s) -Chars 4529 - 4554 [(rewrite~interp_mrec_bind).] 0.023 secs (0.023u,0.s) -Chars 4561 - 4575 [(subst~h;~bcbn).] 0.004 secs (0.004u,0.s) -Chars 4582 - 4588 [ebind.] 0.012 secs (0.012u,0.s) -Chars 4589 - 4609 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) -Chars 4617 - 4618 [{] 0. secs (0.u,0.s) -Chars 4619 - 4629 [(do~2~step).] 0.012 secs (0.012u,0.s) -Chars 4630 - 4675 [(rewrite~interp_mrec_as_interp...] 0.025 secs (0.024u,0.s) -Chars 4684 - 4712 [(rewrite~<-~interp_id_h~~at~1).] 0.091 secs (0.081u,0.s) -Chars 4721 - 4757 [(eapply~eutt_interp;~try~refle...] 0.002 secs (0.002u,0.s) -Chars 4766 - 4777 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 4786 - 4814 [(rewrite~interp_trigger;~cbn).] 0.011 secs (0.011u,0.s) -Chars 4823 - 4835 [reflexivity.] 0. secs (0.u,0.s) -Chars 4836 - 4837 [}] 0. secs (0.u,0.s) -Chars 4844 - 4858 [(intros~?~_~[]).] 0.001 secs (0.001u,0.s) -Chars 4865 - 4912 [(rewrite~(unfold_interp_mrec~_...] 0.037 secs (0.037u,0.s) -Chars 4919 - 4924 [taus.] 0. secs (0.u,0.s) -Chars 4932 - 4951 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) -Chars 4958 - 4968 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4970 - 4974 [Qed.] 0.146 secs (0.145u,0.001s) -Chars 4976 - 5000 [Section~DinatSimulation.] 0. secs (0.u,0.s) -Chars 5002 - 5033 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 5034 - 5096 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) -Chars 5097 - 5116 [Context~{R~:~Type}.] 0. secs (0.u,0.s) -Chars 5118 - 5188 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5190 - 5650 [Inductive~interleaved~:~itree~...] 0.006 secs (0.006u,0.s) -Chars 5651 - 5698 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) -Chars 5700 - 5744 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5745 - 5789 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5791 - 5963 [Theorem~interleaved_mrec~:~~~f...] 0.003 secs (0.003u,0.s) -Chars 5964 - 5992 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 5996 - 6016 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) -Chars 6019 - 6031 [(induction~H).] 0.001 secs (0.u,0.s) -Chars 6034 - 6035 [-] 0. secs (0.u,0.s) -Chars 6036 - 6071 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.036u,0.s) -Chars 6072 - 6084 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6089 - 6090 [-] 0. secs (0.u,0.s) -Chars 6091 - 6135 [(rewrite~(itree_eta~t);~destru...] 0.023 secs (0.023u,0.s) -Chars 6140 - 6141 [+] 0. secs (0.u,0.s) -Chars 6142 - 6175 [(rewrite~interp_ret,~2!bind_re...] 0.057 secs (0.056u,0.s) -Chars 6176 - 6181 [auto.] 0. secs (0.u,0.s) -Chars 6186 - 6187 [+] 0. secs (0.u,0.s) -Chars 6188 - 6247 [(rewrite~interp_tau,~2!bind_ta...] 0.1 secs (0.099u,0.s) -Chars 6254 - 6261 [taus~...] 0.001 secs (0.001u,0.s) -Chars 6268 - 6269 [+] 0. secs (0.u,0.s) -Chars 6270 - 6299 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.044u,0.s) -Chars 6306 - 6324 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) -Chars 6331 - 6380 [(rewrite~(unfold_interp_mrec~_...] 0.023 secs (0.022u,0.s) -Chars 6387 - 6404 [(destruct~e;~bcbn).] 0.042 secs (0.042u,0.s) -Chars 6405 - 6446 [setoid_rewrite~(tau_euttge~(in...] 0.076 secs (0.076u,0.s) -Chars 6453 - 6454 [*] 0. secs (0.u,0.s) -Chars 6455 - 6502 [(unfold~cat~at~3,~Cat_Handler~...] 0. secs (0.u,0.s) -Chars 6511 - 6546 [(change~(g~X~b)~with~(Tau~(g0~...] 0. secs (0.u,0.s) -Chars 6555 - 6598 [(rewrite~bind_tau,~unfold_inte...] 0.043 secs (0.042u,0.s) -Chars 6607 - 6612 [taus.] 0. secs (0.u,0.s) -Chars 6613 - 6634 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) -Chars 6641 - 6642 [*] 0. secs (0.u,0.s) -Chars 6643 - 6705 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) -Chars 6714 - 6735 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) -Chars 6744 - 6777 [(rewrite~unfold_interp_mrec;~b...] 0.019 secs (0.019u,0.s) -Chars 6786 - 6806 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 6807 - 6835 [(repeat~rewrite~tau_euttge)~...] 0.026 secs (0.026u,0.s) -Chars 6839 - 6840 [-] 0. secs (0.u,0.s) -Chars 6841 - 6885 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.025u,0.s) -Chars 6890 - 6891 [+] 0. secs (0.u,0.s) -Chars 6892 - 6925 [(rewrite~interp_ret,~2!bind_re...] 0.058 secs (0.057u,0.s) -Chars 6926 - 6931 [auto.] 0. secs (0.u,0.s) -Chars 6936 - 6937 [+] 0. secs (0.u,0.s) -Chars 6938 - 6997 [(rewrite~interp_tau,~2!bind_ta...] 0.106 secs (0.105u,0.s) -Chars 7004 - 7011 [taus~...] 0.001 secs (0.001u,0.s) -Chars 7018 - 7019 [+] 0. secs (0.u,0.s) -Chars 7020 - 7049 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.044u,0.s) -Chars 7056 - 7074 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) -Chars 7081 - 7130 [(rewrite~(unfold_interp_mrec~_...] 0.02 secs (0.02u,0.s) -Chars 7137 - 7154 [(destruct~e;~bcbn).] 0.044 secs (0.044u,0.s) -Chars 7155 - 7196 [setoid_rewrite~(tau_euttge~(in...] 0.075 secs (0.075u,0.s) -Chars 7203 - 7204 [*] 0. secs (0.u,0.s) -Chars 7205 - 7252 [(unfold~cat~at~2,~Cat_Handler~...] 0. secs (0.u,0.s) -Chars 7261 - 7296 [(change~(f~X~a)~with~(Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7305 - 7363 [(rewrite~!bind_tau,~(unfold_in...] 0.05 secs (0.049u,0.s) -Chars 7372 - 7377 [taus.] 0. secs (0.u,0.s) -Chars 7378 - 7399 [(rewrite~tau_euttge)~...] 0.012 secs (0.012u,0.s) -Chars 7407 - 7408 [*] 0. secs (0.u,0.s) -Chars 7409 - 7471 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) -Chars 7480 - 7501 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) -Chars 7510 - 7543 [(rewrite~unfold_interp_mrec;~b...] 0.022 secs (0.022u,0.s) -Chars 7552 - 7572 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 7573 - 7601 [(repeat~rewrite~tau_euttge)~...] 0.029 secs (0.029u,0.s) -Chars 7602 - 7606 [Qed.] 0.045 secs (0.045u,0.s) -Chars 7608 - 7628 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) -Chars 7630 - 7648 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) -Chars 7650 - 7710 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) -Chars 7711 - 7717 [Proof.] 0. secs (0.u,0.s) -Chars 7720 - 7749 [(compute;~intros~a~b~c~f0~g0~T...] 0. secs (0.u,0.s) -Chars 7752 - 7788 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) -Chars 7789 - 7825 [(pose~(g~:=~fun~T~e~=>~Tau~(g0...] 0. secs (0.u,0.s) -Chars 7828 - 8010 [(enough~~~(Recursion.interp_mr...] 0.003 secs (0.003u,0.s) -Chars 8013 - 8014 [{] 0. secs (0.u,0.s) -Chars 8015 - 8024 [(compute~in~H).] 0. secs (0.u,0.s) -Chars 8025 - 8078 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) -Chars 8083 - 8084 [-] 0. secs (0.u,0.s) -Chars 8085 - 8094 [symmetry.] 0. secs (0.u,0.s) -Chars 8095 - 8137 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) -Chars 8144 - 8158 [1:~(intros~?~?).] 0. secs (0.u,0.s) -Chars 8165 - 8227 [1,~2:~(rewrite~tau_euttge;~app...] 0.016 secs (0.016u,0.s) -Chars 8234 - 8284 [1,~2:~(intros~?~[];~[~apply~ta...] 0. secs (0.u,0.s) -Chars 8289 - 8290 [-] 0. secs (0.u,0.s) -Chars 8291 - 8351 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) -Chars 8358 - 8387 [(intros~?~[];~try~reflexivity).] 0.002 secs (0.002u,0.s) -Chars 8394 - 8413 [(rewrite~tau_euttge).] 0.014 secs (0.014u,0.s) -Chars 8414 - 8439 [(apply~euttge_interp_mrec).] 0. secs (0.u,0.s) -Chars 8446 - 8457 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 8464 - 8483 [(rewrite~tau_euttge).] 0.007 secs (0.007u,0.s) -Chars 8490 - 8532 [all:~(apply~euttge_interp;~try...] 0.002 secs (0.002u,0.s) -Chars 8539 - 8590 [all:~(intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) -Chars 8593 - 8594 [}] 0. secs (0.u,0.s) -Chars 8597 - 8630 [(rewrite~<-~interp_mrec_as_int...] 0.003 secs (0.003u,0.s) -Chars 8634 - 8671 [(rewrite~<-~(bind_ret_r~(inter...] 0.016 secs (0.016u,0.s) -Chars 8674 - 8712 [(rewrite~<-~(bind_ret_r~(f~_~a...] 0.022 secs (0.022u,0.s) -Chars 8716 - 8739 [(apply~interleaved_mrec).] 0. secs (0.u,0.s) -Chars 8742 - 8759 [(do~2~constructor).] 0. secs (0.u,0.s) -Chars 8760 - 8764 [Qed.] 0.015 secs (0.015u,0.s) -Chars 8766 - 8783 [Import~Recursion.] 0. secs (0.u,0.s) -Chars 8785 - 8847 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) -Chars 8848 - 8854 [Proof.] 0. secs (0.u,0.s) -Chars 8857 - 8880 [(compute;~intros~a~b~f0~T~x).] 0. secs (0.u,0.s) -Chars 8883 - 8921 [(remember~(f0~T~x)~as~t~eqn:EQ...] 0.001 secs (0.001u,0.s) -Chars 8924 - 8960 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) -Chars 8963 - 9662 [(enough~~~(interp_mrec~(fun~_~...] 0.002 secs (0.002u,0.s) -Chars 9665 - 9666 [{] 0. secs (0.u,0.s) -Chars 9667 - 9675 [subst~f.] 0. secs (0.u,0.s) -Chars 9676 - 9731 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) -Chars 9736 - 9737 [-] 0. secs (0.u,0.s) -Chars 9738 - 9747 [symmetry.] 0. secs (0.u,0.s) -Chars 9748 - 9790 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) -Chars 9797 - 9798 [+] 0. secs (0.u,0.s) -Chars 9799 - 9810 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 9811 - 9858 [(apply~euttge_interp_mrec;~try...] 0. secs (0.u,0.s) -Chars 9867 - 9878 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 9879 - 9896 [(apply~tau_euttge).] 0. secs (0.u,0.s) -Chars 9903 - 9904 [+] 0. secs (0.u,0.s) -Chars 9905 - 9978 [(apply~euttge_interp_mrec;~rep...] 0.002 secs (0.002u,0.s) -Chars 9987 - 9999 [reflexivity.] 0. secs (0.u,0.s) -Chars 10004 - 10005 [-] 0. secs (0.u,0.s) -Chars 10006 - 10108 [(apply~euttge_sub_eutt,~euttge...] 0.003 secs (0.003u,0.s) -Chars 10115 - 10132 [(apply~tau_euttge).] 0. secs (0.u,0.s) -Chars 10135 - 10136 [}] 0. secs (0.u,0.s) -Chars 10139 - 10162 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 10167 - 10176 [revert~t.] 0. secs (0.u,0.s) -Chars 10177 - 10197 [(coinduction;~intros).] 0.004 secs (0.004u,0.s) -Chars 10201 - 10251 [(rewrite~(itree_eta~t);~destru...] 0.022 secs (0.022u,0.s) -Chars 10254 - 10320 [all:~(rewrite~(unfold_interp_m...] 0.119 secs (0.119u,0.s) -Chars 10323 - 10361 [1,~2:~(rewrite~unfold_interp_m...] 0.076 secs (0.075u,0.s) -Chars 10364 - 10427 [1,~2:~(rewrite~(unfold_interp_...] 0.043 secs (0.042u,0.s) -Chars 10430 - 10435 [taus.] 0. secs (0.u,0.s) -Chars 10436 - 10446 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 10450 - 10461 [(destruct~e).] 0. secs (0.u,0.s) -Chars 10464 - 10465 [-] 0. secs (0.u,0.s) -Chars 10466 - 10513 [(rewrite~(interp_mrec_bind~_~(...] 0.022 secs (0.022u,0.s) -Chars 10518 - 10552 [(rewrite~interp_mrec_trigger;~...] 0.014 secs (0.014u,0.s) -Chars 10557 - 10579 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) -Chars 10584 - 10647 [(remember~(f~X~a0)~as~fxa~eqn:...] 0.002 secs (0.002u,0.s) -Chars 10652 - 10697 [(rewrite~interp_tau,~unfold_in...] 0.077 secs (0.076u,0.s) -Chars 10702 - 10749 [(rewrite~(unfold_interp_mrec~_...] 0.055 secs (0.054u,0.s) -Chars 10754 - 10772 [(rewrite~!bind_tau).] 0.05 secs (0.05u,0.s) -Chars 10777 - 10782 [taus.] 0. secs (0.u,0.s) -Chars 10788 - 10807 [(rewrite~tau_euttge).] 0.01 secs (0.01u,0.s) -Chars 10808 - 10834 [setoid_rewrite~tau_euttge.] 0.023 secs (0.023u,0.s) -Chars 10839 - 10883 [(rewrite~<-~interp_mrec_bind,~...] 0.039 secs (0.039u,0.s) -Chars 10888 - 10903 [auto~with~paco.] 0. secs (0.u,0.s) -Chars 10906 - 10907 [-] 0. secs (0.u,0.s) -Chars 10908 - 10929 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) -Chars 10934 - 10960 [setoid_rewrite~tau_euttge.] 0.022 secs (0.021u,0.s) -Chars 10965 - 11000 [(rewrite~2!unfold_interp_mrec;...] 0.039 secs (0.039u,0.s) -Chars 11005 - 11016 [(destruct~s).] 0. secs (0.u,0.s) -Chars 11017 - 11022 [taus.] 0. secs (0.u,0.s) -Chars 11028 - 11072 [(rewrite~<-~interp_mrec_bind,~...] 0.035 secs (0.035u,0.s) -Chars 11077 - 11087 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 11093 - 11113 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 11114 - 11129 [now~step;~taus.] 0.003 secs (0.003u,0.s) -Chars 11132 - 11136 [Qed.] 0.06 secs (0.06u,0.s) -Chars 11138 - 11197 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) -Chars 11198 - 11204 [Proof.] 0. secs (0.u,0.s) -Chars 11207 - 11232 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 11233 - 11237 [Qed.] 0. secs (0.u,0.s) -Chars 11239 - 11259 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) +Chars 63 - 99 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 101 - 176 [From~Stdlib~Require~Import~Set...] 0.003 secs (0.001u,0.001s) +Chars 178 - 417 [From~ITree~Require~Import~Basi...] 0.084 secs (0.07u,0.013s) +Chars 419 - 441 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 442 - 476 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) +Chars 478 - 507 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) +Chars 525 - 549 [Section~HandlerCategory.] 0. secs (0.u,0.s) +Chars 551 - 601 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) +Chars 603 - 745 [Instance~Proper_Cat_Handler~~{...] 0.001 secs (0.001u,0.s) +Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) +Chars 755 - 767 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 770 - 794 [(apply~eutt_interp;~auto).] 0. secs (0.u,0.s) +Chars 795 - 799 [Qed.] 0.001 secs (0.001u,0.s) +Chars 801 - 842 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 843 - 849 [Proof.] 0. secs (0.u,0.s) +Chars 852 - 864 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 867 - 892 [(rewrite~interp_trigger_h).] 0.002 secs (0.002u,0.s) +Chars 893 - 905 [reflexivity.] 0. secs (0.u,0.s) +Chars 906 - 910 [Qed.] 0.001 secs (0.001u,0.s) +Chars 912 - 953 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) +Chars 954 - 960 [Proof.] 0. secs (0.u,0.s) +Chars 963 - 975 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 978 - 1001 [(rewrite~interp_trigger).] 0.013 secs (0.013u,0.s) +Chars 1004 - 1016 [reflexivity.] 0. secs (0.u,0.s) +Chars 1017 - 1021 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1023 - 1068 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) +Chars 1069 - 1075 [Proof.] 0. secs (0.u,0.s) +Chars 1078 - 1090 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1093 - 1115 [(rewrite~interp_interp).] 0.053 secs (0.052u,0.s) +Chars 1118 - 1130 [reflexivity.] 0. secs (0.u,0.s) +Chars 1131 - 1135 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1137 - 1189 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) +Chars 1190 - 1196 [Proof.] 0. secs (0.u,0.s) +Chars 1199 - 1224 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 1225 - 1229 [Qed.] 0. secs (0.u,0.s) +Chars 1231 - 1299 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) +Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) +Chars 1309 - 1328 [(compute;~contradiction).] 0. secs (0.u,0.s) +Chars 1329 - 1333 [Qed.] 0. secs (0.u,0.s) +Chars 1335 - 1487 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) +Chars 1488 - 1494 [Proof.] 0. secs (0.u,0.s) +Chars 1497 - 1509 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1512 - 1544 [(destruct~(_~:~sum1~_~_~_);~au...] 0. secs (0.u,0.s) +Chars 1545 - 1549 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1551 - 1599 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1600 - 1606 [Proof.] 0. secs (0.u,0.s) +Chars 1609 - 1621 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1624 - 1647 [(rewrite~interp_trigger).] 0.018 secs (0.016u,0.001s) +Chars 1650 - 1662 [reflexivity.] 0. secs (0.u,0.s) +Chars 1663 - 1667 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1669 - 1717 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) +Chars 1718 - 1724 [Proof.] 0. secs (0.u,0.s) +Chars 1727 - 1739 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1742 - 1765 [(rewrite~interp_trigger).] 0.019 secs (0.015u,0.004s) +Chars 1768 - 1780 [reflexivity.] 0. secs (0.u,0.s) +Chars 1781 - 1785 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1787 - 1847 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) +Chars 1848 - 1854 [Proof.] 0. secs (0.u,0.s) +Chars 1857 - 1869 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 1872 - 1898 [(destruct~(_~:~sum1~_~_~_)).] 0.001 secs (0.001u,0.s) +Chars 1901 - 1902 [-] 0. secs (0.u,0.s) +Chars 1903 - 1932 [(rewrite~<-~H,~interp_trigger).] 0.025 secs (0.023u,0.001s) +Chars 1933 - 1945 [reflexivity.] 0. secs (0.u,0.s) +Chars 1948 - 1949 [-] 0. secs (0.u,0.s) +Chars 1950 - 1980 [(rewrite~<-~H0,~interp_trigger).] 0.023 secs (0.022u,0.001s) +Chars 1981 - 1993 [reflexivity.] 0. secs (0.u,0.s) +Chars 1994 - 1998 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2000 - 2059 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) +Chars 2060 - 2066 [Proof.] 0. secs (0.u,0.s) +Chars 2069 - 2094 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 2095 - 2099 [Qed.] 0. secs (0.u,0.s) +Chars 2101 - 2136 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) +Chars 2138 - 2264 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) +Chars 2265 - 2271 [Proof.] 0. secs (0.u,0.s) +Chars 2274 - 2287 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 2290 - 2321 [(apply~Proper_interp_mrec;~auto).] 0. secs (0.u,0.s) +Chars 2322 - 2326 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2328 - 2382 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) +Chars 2383 - 2389 [Proof.] 0. secs (0.u,0.s) +Chars 2392 - 2404 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 2407 - 2437 [(rewrite~interp_mrec_as_interp).] 0.002 secs (0.002u,0.s) +Chars 2440 - 2452 [reflexivity.] 0. secs (0.u,0.s) +Chars 2453 - 2457 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2459 - 2515 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) +Chars 2516 - 2522 [Proof.] 0. secs (0.u,0.s) +Chars 2525 - 2537 [(compute;~intros).] 0. secs (0.u,0.s) +Chars 2540 - 2550 [(pattern~f).] 0.004 secs (0.004u,0.s) +Chars 2553 - 2651 [(match~goal~with~~|~|-~?G~?f~=...] 0. secs (0.u,0.s) +Chars 2654 - 2655 [{] 0. secs (0.u,0.s) +Chars 2656 - 2711 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) +Chars 2716 - 2717 [-] 0. secs (0.u,0.s) +Chars 2718 - 2727 [symmetry.] 0. secs (0.u,0.s) +Chars 2728 - 2765 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) +Chars 2772 - 2773 [+] 0. secs (0.u,0.s) +Chars 2774 - 2786 [reflexivity.] 0. secs (0.u,0.s) +Chars 2793 - 2794 [+] 0. secs (0.u,0.s) +Chars 2795 - 2852 [(apply~euttge_interp_mrec;~rep...] 0. secs (0.u,0.s) +Chars 2857 - 2858 [-] 0. secs (0.u,0.s) +Chars 2859 - 2901 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) +Chars 2908 - 2909 [+] 0. secs (0.u,0.s) +Chars 2910 - 2921 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 2922 - 2942 [(apply~euttge_interp).] 0. secs (0.u,0.s) +Chars 2951 - 2952 [*] 0. secs (0.u,0.s) +Chars 2953 - 2965 [reflexivity.] 0. secs (0.u,0.s) +Chars 2974 - 2975 [*] 0. secs (0.u,0.s) +Chars 2976 - 2993 [(apply~tau_euttge).] 0. secs (0.u,0.s) +Chars 3000 - 3001 [+] 0. secs (0.u,0.s) +Chars 3002 - 3021 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 3022 - 3034 [reflexivity.] 0. secs (0.u,0.s) +Chars 3037 - 3038 [}] 0. secs (0.u,0.s) +Chars 3041 - 3269 [(match~goal~with~~|~|-~_~_~(_~...] 0.002 secs (0.002u,0.s) +Chars 3272 - 3311 [(remember~(Tau~(f~T~a0))~as~t~...] 0.002 secs (0.001u,0.s) +Chars 3312 - 3324 [clear~tmp_t.] 0. secs (0.u,0.s) +Chars 3399 - 3422 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 3426 - 3458 [(revert~t;~coinduction;~intros...] 0.006 secs (0.006u,0.s) +Chars 3461 - 3483 [(rewrite~(itree_eta~t)).] 0.025 secs (0.024u,0.s) +Chars 3486 - 3507 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) +Chars 3510 - 3511 [-] 0. secs (0.u,0.s) +Chars 3512 - 3539 [(rewrite~unfold_interp_mrec).] 0.023 secs (0.022u,0.s) +Chars 3540 - 3545 [bcbn.] 0. secs (0.u,0.s) +Chars 3551 - 3572 [(rewrite~2!interp_ret).] 0.045 secs (0.044u,0.s) +Chars 3577 - 3604 [(rewrite~unfold_interp_mrec).] 0.02 secs (0.02u,0.s) +Chars 3609 - 3621 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3624 - 3625 [-] 0. secs (0.u,0.s) +Chars 3626 - 3653 [(rewrite~unfold_interp_mrec).] 0.023 secs (0.022u,0.s) +Chars 3654 - 3659 [bcbn.] 0.001 secs (0.u,0.s) +Chars 3665 - 3686 [(rewrite~2!interp_tau).] 0.048 secs (0.048u,0.s) +Chars 3691 - 3737 [(rewrite~(unfold_interp_mrec~_...] 0.023 secs (0.022u,0.s) +Chars 3742 - 3751 [now~taus.] 0. secs (0.u,0.s) +Chars 3755 - 3756 [-] 0. secs (0.u,0.s) +Chars 3757 - 3784 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) +Chars 3785 - 3790 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 3795 - 3814 [(rewrite~interp_vis).] 0.028 secs (0.028u,0.s) +Chars 3819 - 3836 [(destruct~e;~bcbn).] 0.001 secs (0.001u,0.s) +Chars 3841 - 3842 [+] 0. secs (0.u,0.s) +Chars 3843 - 3862 [(rewrite~interp_tau).] 0.021 secs (0.021u,0.s) +Chars 3869 - 3909 [(rewrite~2!interp_mrec_bind,~i...] 0.07 secs (0.069u,0.s) +Chars 3916 - 3924 [subst~h.] 0.003 secs (0.003u,0.s) +Chars 3932 - 3937 [bcbn.] 0.057 secs (0.056u,0.s) +Chars 3944 - 3967 [(rewrite~interp_trigger).] 0.043 secs (0.043u,0.s) +Chars 3974 - 4001 [(rewrite~unfold_interp_mrec).] 0.04 secs (0.039u,0.s) +Chars 4003 - 4008 [bcbn.] 0.052 secs (0.051u,0.s) +Chars 4016 - 4044 [(rewrite~interp_mrec_trigger).] 0.037 secs (0.036u,0.s) +Chars 4045 - 4050 [bcbn.] 0.052 secs (0.052u,0.s) +Chars 4058 - 4080 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) +Chars 4209 - 4229 [(rewrite~!interp_tau).] 0.125 secs (0.124u,0.s) +Chars 4236 - 4283 [(rewrite~(unfold_interp_mrec~_...] 0.116 secs (0.115u,0.s) +Chars 4290 - 4308 [(rewrite~!bind_tau).] 0.103 secs (0.103u,0.s) +Chars 4315 - 4320 [taus.] 0.001 secs (0.001u,0.s) +Chars 4321 - 4379 [(rewrite~tau_euttge,~<-~interp...] 0.151 secs (0.151u,0.s) +Chars 4386 - 4427 [setoid_rewrite~(tau_euttge~(in...] 0.073 secs (0.072u,0.s) +Chars 4434 - 4457 [(rewrite~<-~interp_bind).] 0.037 secs (0.037u,0.s) +Chars 4464 - 4469 [auto.] 0. secs (0.u,0.s) +Chars 4474 - 4475 [+] 0. secs (0.u,0.s) +Chars 4476 - 4495 [(rewrite~interp_vis).] 0.022 secs (0.022u,0.s) +Chars 4502 - 4527 [(rewrite~interp_mrec_bind).] 0.023 secs (0.023u,0.s) +Chars 4534 - 4548 [(subst~h;~bcbn).] 0.004 secs (0.004u,0.s) +Chars 4555 - 4561 [ebind.] 0.012 secs (0.012u,0.s) +Chars 4562 - 4582 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) +Chars 4590 - 4591 [{] 0. secs (0.u,0.s) +Chars 4592 - 4602 [(do~2~step).] 0.012 secs (0.012u,0.s) +Chars 4603 - 4648 [(rewrite~interp_mrec_as_interp...] 0.025 secs (0.024u,0.s) +Chars 4657 - 4685 [(rewrite~<-~interp_id_h~~at~1).] 0.07 secs (0.069u,0.s) +Chars 4694 - 4730 [(eapply~eutt_interp;~try~refle...] 0.002 secs (0.002u,0.s) +Chars 4739 - 4750 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 4759 - 4787 [(rewrite~interp_trigger;~cbn).] 0.011 secs (0.011u,0.s) +Chars 4796 - 4808 [reflexivity.] 0. secs (0.u,0.s) +Chars 4809 - 4810 [}] 0. secs (0.u,0.s) +Chars 4817 - 4831 [(intros~?~_~[]).] 0.001 secs (0.001u,0.s) +Chars 4838 - 4885 [(rewrite~(unfold_interp_mrec~_...] 0.038 secs (0.037u,0.s) +Chars 4892 - 4897 [taus.] 0. secs (0.u,0.s) +Chars 4905 - 4924 [(rewrite~tau_euttge).] 0.016 secs (0.016u,0.s) +Chars 4931 - 4941 [(apply~CIH).] 0.001 secs (0.001u,0.s) +Chars 4943 - 4947 [Qed.] 0.145 secs (0.143u,0.001s) +Chars 4949 - 4973 [Section~DinatSimulation.] 0. secs (0.u,0.s) +Chars 4975 - 5006 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) +Chars 5007 - 5069 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) +Chars 5070 - 5089 [Context~{R~:~Type}.] 0. secs (0.u,0.s) +Chars 5091 - 5161 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) +Chars 5163 - 5623 [Inductive~interleaved~:~itree~...] 0.005 secs (0.005u,0.s) +Chars 5624 - 5671 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) +Chars 5673 - 5717 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5718 - 5762 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5764 - 5936 [Theorem~interleaved_mrec~:~~~f...] 0.003 secs (0.003u,0.s) +Chars 5937 - 5965 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 5969 - 5989 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) +Chars 5992 - 6004 [(induction~H).] 0.001 secs (0.001u,0.s) +Chars 6007 - 6008 [-] 0. secs (0.u,0.s) +Chars 6009 - 6044 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.036u,0.s) +Chars 6045 - 6057 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6062 - 6063 [-] 0. secs (0.u,0.s) +Chars 6064 - 6108 [(rewrite~(itree_eta~t);~destru...] 0.024 secs (0.024u,0.s) +Chars 6113 - 6114 [+] 0. secs (0.u,0.s) +Chars 6115 - 6148 [(rewrite~interp_ret,~2!bind_re...] 0.055 secs (0.054u,0.s) +Chars 6149 - 6154 [auto.] 0. secs (0.u,0.s) +Chars 6159 - 6160 [+] 0. secs (0.u,0.s) +Chars 6161 - 6220 [(rewrite~interp_tau,~2!bind_ta...] 0.101 secs (0.101u,0.s) +Chars 6227 - 6234 [taus~...] 0.001 secs (0.001u,0.s) +Chars 6241 - 6242 [+] 0. secs (0.u,0.s) +Chars 6243 - 6272 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.044u,0.s) +Chars 6279 - 6297 [(rewrite~bind_bind).] 0.02 secs (0.02u,0.s) +Chars 6304 - 6353 [(rewrite~(unfold_interp_mrec~_...] 0.021 secs (0.02u,0.s) +Chars 6360 - 6377 [(destruct~e;~bcbn).] 0.043 secs (0.043u,0.s) +Chars 6378 - 6419 [setoid_rewrite~(tau_euttge~(in...] 0.074 secs (0.074u,0.s) +Chars 6426 - 6427 [*] 0. secs (0.u,0.s) +Chars 6428 - 6475 [(unfold~cat~at~3,~Cat_Handler~...] 0. secs (0.u,0.s) +Chars 6484 - 6519 [(change~(g~X~b)~with~(Tau~(g0~...] 0. secs (0.u,0.s) +Chars 6528 - 6571 [(rewrite~bind_tau,~unfold_inte...] 0.042 secs (0.042u,0.s) +Chars 6580 - 6585 [taus.] 0. secs (0.u,0.s) +Chars 6586 - 6607 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) +Chars 6614 - 6615 [*] 0. secs (0.u,0.s) +Chars 6616 - 6678 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) +Chars 6687 - 6708 [(rewrite~bind_trigger).] 0.018 secs (0.018u,0.s) +Chars 6717 - 6750 [(rewrite~unfold_interp_mrec;~b...] 0.019 secs (0.018u,0.s) +Chars 6759 - 6779 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 6780 - 6808 [(repeat~rewrite~tau_euttge)~...] 0.026 secs (0.026u,0.s) +Chars 6812 - 6813 [-] 0. secs (0.u,0.s) +Chars 6814 - 6858 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.025u,0.s) +Chars 6863 - 6864 [+] 0. secs (0.u,0.s) +Chars 6865 - 6898 [(rewrite~interp_ret,~2!bind_re...] 0.056 secs (0.056u,0.s) +Chars 6899 - 6904 [auto.] 0. secs (0.u,0.s) +Chars 6909 - 6910 [+] 0. secs (0.u,0.s) +Chars 6911 - 6970 [(rewrite~interp_tau,~2!bind_ta...] 0.103 secs (0.102u,0.s) +Chars 6977 - 6984 [taus~...] 0.001 secs (0.001u,0.s) +Chars 6991 - 6992 [+] 0. secs (0.u,0.s) +Chars 6993 - 7022 [(rewrite~interp_vis,~bind_vis).] 0.043 secs (0.043u,0.s) +Chars 7029 - 7047 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) +Chars 7054 - 7103 [(rewrite~(unfold_interp_mrec~_...] 0.021 secs (0.021u,0.s) +Chars 7110 - 7127 [(destruct~e;~bcbn).] 0.044 secs (0.044u,0.s) +Chars 7128 - 7169 [setoid_rewrite~(tau_euttge~(in...] 0.076 secs (0.076u,0.s) +Chars 7176 - 7177 [*] 0. secs (0.u,0.s) +Chars 7178 - 7225 [(unfold~cat~at~2,~Cat_Handler~...] 0. secs (0.u,0.s) +Chars 7234 - 7269 [(change~(f~X~a)~with~(Tau~(f0~...] 0. secs (0.u,0.s) +Chars 7278 - 7336 [(rewrite~!bind_tau,~(unfold_in...] 0.047 secs (0.047u,0.s) +Chars 7345 - 7350 [taus.] 0. secs (0.u,0.s) +Chars 7351 - 7372 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) +Chars 7380 - 7381 [*] 0. secs (0.u,0.s) +Chars 7382 - 7444 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) +Chars 7453 - 7474 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) +Chars 7483 - 7516 [(rewrite~unfold_interp_mrec;~b...] 0.021 secs (0.021u,0.s) +Chars 7525 - 7545 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 7546 - 7574 [(repeat~rewrite~tau_euttge)~...] 0.029 secs (0.029u,0.s) +Chars 7575 - 7579 [Qed.] 0.046 secs (0.046u,0.s) +Chars 7581 - 7601 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) +Chars 7603 - 7621 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) +Chars 7623 - 7683 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) +Chars 7684 - 7690 [Proof.] 0. secs (0.u,0.s) +Chars 7693 - 7722 [(compute;~intros~a~b~c~f0~g0~T...] 0. secs (0.u,0.s) +Chars 7725 - 7761 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) +Chars 7762 - 7798 [(pose~(g~:=~fun~T~e~=>~Tau~(g0...] 0. secs (0.u,0.s) +Chars 7801 - 7983 [(enough~~~(Recursion.interp_mr...] 0.003 secs (0.003u,0.s) +Chars 7986 - 7987 [{] 0. secs (0.u,0.s) +Chars 7988 - 7997 [(compute~in~H).] 0. secs (0.u,0.s) +Chars 7998 - 8051 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) +Chars 8056 - 8057 [-] 0. secs (0.u,0.s) +Chars 8058 - 8067 [symmetry.] 0. secs (0.u,0.s) +Chars 8068 - 8110 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) +Chars 8117 - 8131 [1:~(intros~?~?).] 0. secs (0.u,0.s) +Chars 8138 - 8200 [1,~2:~(rewrite~tau_euttge;~app...] 0.017 secs (0.017u,0.s) +Chars 8207 - 8257 [1,~2:~(intros~?~[];~[~apply~ta...] 0. secs (0.u,0.s) +Chars 8262 - 8263 [-] 0. secs (0.u,0.s) +Chars 8264 - 8324 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) +Chars 8331 - 8360 [(intros~?~[];~try~reflexivity).] 0.002 secs (0.002u,0.s) +Chars 8367 - 8386 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 8387 - 8412 [(apply~euttge_interp_mrec).] 0. secs (0.u,0.s) +Chars 8419 - 8430 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 8437 - 8456 [(rewrite~tau_euttge).] 0.008 secs (0.007u,0.s) +Chars 8463 - 8505 [all:~(apply~euttge_interp;~try...] 0.002 secs (0.002u,0.s) +Chars 8512 - 8563 [all:~(intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) +Chars 8566 - 8567 [}] 0. secs (0.u,0.s) +Chars 8570 - 8603 [(rewrite~<-~interp_mrec_as_int...] 0.003 secs (0.003u,0.s) +Chars 8607 - 8644 [(rewrite~<-~(bind_ret_r~(inter...] 0.017 secs (0.017u,0.s) +Chars 8647 - 8685 [(rewrite~<-~(bind_ret_r~(f~_~a...] 0.023 secs (0.022u,0.s) +Chars 8689 - 8712 [(apply~interleaved_mrec).] 0. secs (0.u,0.s) +Chars 8715 - 8732 [(do~2~constructor).] 0. secs (0.u,0.s) +Chars 8733 - 8737 [Qed.] 0.015 secs (0.015u,0.s) +Chars 8739 - 8756 [Import~Recursion.] 0. secs (0.u,0.s) +Chars 8758 - 8820 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) +Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) +Chars 8830 - 8853 [(compute;~intros~a~b~f0~T~x).] 0. secs (0.u,0.s) +Chars 8856 - 8894 [(remember~(f0~T~x)~as~t~eqn:EQ...] 0.001 secs (0.001u,0.s) +Chars 8897 - 8933 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) +Chars 8936 - 9635 [(enough~~~(interp_mrec~(fun~_~...] 0.002 secs (0.002u,0.s) +Chars 9638 - 9639 [{] 0. secs (0.u,0.s) +Chars 9640 - 9648 [subst~f.] 0. secs (0.u,0.s) +Chars 9649 - 9704 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) +Chars 9709 - 9710 [-] 0. secs (0.u,0.s) +Chars 9711 - 9720 [symmetry.] 0. secs (0.u,0.s) +Chars 9721 - 9763 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) +Chars 9770 - 9771 [+] 0. secs (0.u,0.s) +Chars 9772 - 9783 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 9784 - 9831 [(apply~euttge_interp_mrec;~try...] 0. secs (0.u,0.s) +Chars 9840 - 9851 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 9852 - 9869 [(apply~tau_euttge).] 0. secs (0.u,0.s) +Chars 9876 - 9877 [+] 0. secs (0.u,0.s) +Chars 9878 - 9951 [(apply~euttge_interp_mrec;~rep...] 0.002 secs (0.002u,0.s) +Chars 9960 - 9972 [reflexivity.] 0. secs (0.u,0.s) +Chars 9977 - 9978 [-] 0. secs (0.u,0.s) +Chars 9979 - 10081 [(apply~euttge_sub_eutt,~euttge...] 0.003 secs (0.003u,0.s) +Chars 10088 - 10105 [(apply~tau_euttge).] 0. secs (0.u,0.s) +Chars 10108 - 10109 [}] 0. secs (0.u,0.s) +Chars 10112 - 10135 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) +Chars 10140 - 10149 [revert~t.] 0. secs (0.u,0.s) +Chars 10150 - 10170 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) +Chars 10174 - 10224 [(rewrite~(itree_eta~t);~destru...] 0.022 secs (0.022u,0.s) +Chars 10227 - 10293 [all:~(rewrite~(unfold_interp_m...] 0.119 secs (0.118u,0.s) +Chars 10296 - 10334 [1,~2:~(rewrite~unfold_interp_m...] 0.072 secs (0.072u,0.s) +Chars 10337 - 10400 [1,~2:~(rewrite~(unfold_interp_...] 0.042 secs (0.042u,0.s) +Chars 10403 - 10408 [taus.] 0. secs (0.u,0.s) +Chars 10409 - 10419 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 10423 - 10434 [(destruct~e).] 0. secs (0.u,0.s) +Chars 10437 - 10438 [-] 0. secs (0.u,0.s) +Chars 10439 - 10486 [(rewrite~(interp_mrec_bind~_~(...] 0.02 secs (0.02u,0.s) +Chars 10491 - 10525 [(rewrite~interp_mrec_trigger;~...] 0.013 secs (0.012u,0.s) +Chars 10530 - 10552 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) +Chars 10557 - 10620 [(remember~(f~X~a0)~as~fxa~eqn:...] 0.002 secs (0.002u,0.s) +Chars 10625 - 10670 [(rewrite~interp_tau,~unfold_in...] 0.077 secs (0.076u,0.s) +Chars 10675 - 10722 [(rewrite~(unfold_interp_mrec~_...] 0.052 secs (0.052u,0.s) +Chars 10727 - 10745 [(rewrite~!bind_tau).] 0.051 secs (0.05u,0.s) +Chars 10750 - 10755 [taus.] 0. secs (0.u,0.s) +Chars 10761 - 10780 [(rewrite~tau_euttge).] 0.009 secs (0.009u,0.s) +Chars 10781 - 10807 [setoid_rewrite~tau_euttge.] 0.023 secs (0.022u,0.s) +Chars 10812 - 10856 [(rewrite~<-~interp_mrec_bind,~...] 0.041 secs (0.04u,0.s) +Chars 10861 - 10866 [auto.] 0. secs (0.u,0.s) +Chars 10869 - 10870 [-] 0. secs (0.u,0.s) +Chars 10871 - 10892 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) +Chars 10897 - 10923 [setoid_rewrite~tau_euttge.] 0.022 secs (0.021u,0.s) +Chars 10928 - 10963 [(rewrite~2!unfold_interp_mrec;...] 0.039 secs (0.039u,0.s) +Chars 10968 - 10979 [(destruct~s).] 0. secs (0.u,0.s) +Chars 10980 - 10985 [taus.] 0. secs (0.u,0.s) +Chars 10991 - 11035 [(rewrite~<-~interp_mrec_bind,~...] 0.035 secs (0.035u,0.s) +Chars 11040 - 11050 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 11056 - 11076 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 11077 - 11092 [now~step;~taus.] 0.003 secs (0.003u,0.s) +Chars 11095 - 11099 [Qed.] 0.059 secs (0.059u,0.s) +Chars 11101 - 11160 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) +Chars 11161 - 11167 [Proof.] 0. secs (0.u,0.s) +Chars 11170 - 11195 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 11196 - 11200 [Qed.] 0. secs (0.u,0.s) +Chars 11202 - 11222 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/theories/Interp/Interp.v.timing b/theories/Interp/Interp.v.timing index f6776258..2d86227f 100644 --- a/theories/Interp/Interp.v.timing +++ b/theories/Interp/Interp.v.timing @@ -1,7 +1,7 @@ Chars 1099 - 1172 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.038 secs (0.031u,0.007s) +Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.042 secs (0.032u,0.009s) Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.001u,0.s) Chars 2077 - 2212 [Definition~translate~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 2214 - 2248 [Arguments~translate~{E~F}~&~h~...] 0. secs (0.u,0.s) -Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.003 secs (0.002u,0.s) +Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.002 secs (0.002u,0.s) Chars 2853 - 2893 [Arguments~interp~{E~M~FM~MM~IM...] 0. secs (0.u,0.s) diff --git a/theories/Interp/InterpFacts.v.timing b/theories/Interp/InterpFacts.v.timing index 321e986c..e4bb0869 100644 --- a/theories/Interp/InterpFacts.v.timing +++ b/theories/Interp/InterpFacts.v.timing @@ -1,6 +1,6 @@ -Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.008u,0.003s) +Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.003 secs (0.003u,0.s) -Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.079 secs (0.068u,0.011s) +Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.079 secs (0.066u,0.012s) Chars 701 - 723 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 740 - 837 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 838 - 844 [Proof.] 0. secs (0.u,0.s) @@ -21,9 +21,9 @@ Chars 1528 - 1634 [Lemma~unfold_interp~{E}~{F}~{R...] 0. secs (0.u,0.s) Chars 1635 - 1641 [Proof.] 0. secs (0.u,0.s) Chars 1644 - 1688 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) Chars 1689 - 1709 [(rewrite~unfold_iter).] 0.004 secs (0.004u,0.s) -Chars 1712 - 1774 [(destruct~(observe~t);~cbn;~re...] 0.053 secs (0.053u,0.s) +Chars 1712 - 1774 [(destruct~(observe~t);~cbn;~re...] 0.054 secs (0.054u,0.s) Chars 1775 - 1796 [all:~(try~reflexivity).] 0. secs (0.u,0.s) -Chars 1797 - 1801 [Qed.] 0.004 secs (0.004u,0.s) +Chars 1797 - 1801 [Qed.] 0.005 secs (0.005u,0.s) Chars 1936 - 2017 [Lemma~interp_ret~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2018 - 2024 [Proof.] 0. secs (0.u,0.s) Chars 2025 - 2047 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) @@ -42,7 +42,7 @@ Chars 2438 - 2442 [Qed.] 0.001 secs (0.001u,0.s) Chars 2444 - 2581 [Lemma~interp_trigger~{E~F~:~Ty...] 0. secs (0.u,0.s) Chars 2582 - 2588 [Proof.] 0. secs (0.u,0.s) Chars 2591 - 2612 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 2613 - 2632 [(rewrite~interp_vis).] 0.015 secs (0.013u,0.002s) +Chars 2613 - 2632 [(rewrite~interp_vis).] 0.016 secs (0.013u,0.002s) Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.021 secs (0.016u,0.004s) Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.s) Chars 2691 - 2710 [(rewrite~bind_ret_r).] 0.012 secs (0.012u,0.s) @@ -56,286 +56,286 @@ Chars 3059 - 3065 [Proof.] 0. secs (0.u,0.s) Chars 3068 - 3085 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) Chars 3088 - 3106 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3107 - 3114 [(intros).] 0. secs (0.u,0.s) -Chars 3118 - 3142 [(rewrite~2!unfold_interp).] 0.03 secs (0.03u,0.s) -Chars 3145 - 3155 [step~in~H.] 0. secs (0.u,0.s) -Chars 3160 - 3211 [(destruct~H;~cbn;~subst;~try~e...] 0.053 secs (0.053u,0.s) +Chars 3118 - 3142 [(rewrite~2!unfold_interp).] 0.032 secs (0.031u,0.001s) +Chars 3145 - 3155 [step~in~H.] 0.001 secs (0.001u,0.s) +Chars 3160 - 3211 [(destruct~H;~cbn;~subst;~try~e...] 0.057 secs (0.056u,0.s) Chars 3214 - 3252 [(unfold~eq_Handler,~i_pointwis...] 0. secs (0.u,0.s) -Chars 3256 - 3268 [(rewrite~Hfg).] 0.222 secs (0.221u,0.s) +Chars 3256 - 3268 [(rewrite~Hfg).] 0.228 secs (0.227u,0.001s) Chars 3272 - 3279 [to_mon.] 0. secs (0.u,0.s) -Chars 3331 - 3337 [ebind.] 0.009 secs (0.009u,0.s) -Chars 3338 - 3353 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) -Chars 3354 - 3377 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 3379 - 3383 [Qed.] 0.012 secs (0.012u,0.s) -Chars 3385 - 3504 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) -Chars 3505 - 3511 [Proof.] 0. secs (0.u,0.s) -Chars 3514 - 3525 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3528 - 3551 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) -Chars 3554 - 3566 [reflexivity.] 0. secs (0.u,0.s) -Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) -Chars 3573 - 3732 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) -Chars 3733 - 3739 [Proof.] 0. secs (0.u,0.s) -Chars 3742 - 3753 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3756 - 3771 [intros~until~T.] 0. secs (0.u,0.s) -Chars 3774 - 3786 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3787 - 3794 [(intros).] 0. secs (0.u,0.s) -Chars 3797 - 3820 [(rewrite~!unfold_interp).] 0.031 secs (0.031u,0.s) -Chars 3821 - 3832 [step~in~H0.] 0. secs (0.u,0.s) -Chars 3836 - 3895 [(induction~H0;~intros;~subst;~...] 0.375 secs (0.372u,0.001s) -Chars 3901 - 3924 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 3928 - 3929 [-] 0. secs (0.u,0.s) -Chars 3930 - 3940 [(do~2~step).] 0.015 secs (0.014u,0.s) -Chars 3941 - 3949 [(apply~H).] 0. secs (0.u,0.s) -Chars 3953 - 3954 [-] 0. secs (0.u,0.s) -Chars 3955 - 3970 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) -Chars 3971 - 3994 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 3998 - 3999 [-] 0. secs (0.u,0.s) -Chars 4000 - 4005 [taul.] 0. secs (0.u,0.s) -Chars 4006 - 4013 [to_mon.] 0. secs (0.u,0.s) -Chars 4014 - 4036 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 4037 - 4051 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4055 - 4056 [-] 0. secs (0.u,0.s) -Chars 4057 - 4062 [taur.] 0. secs (0.u,0.s) -Chars 4063 - 4070 [to_mon.] 0. secs (0.u,0.s) -Chars 4071 - 4093 [(rewrite~unfold_interp).] 0.022 secs (0.017u,0.s) -Chars 4094 - 4108 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4110 - 4114 [Qed.] 0.023 secs (0.013u,0.s) -Chars 4117 - 4359 [#[global]~Instance~euttge_inte...] 0.002 secs (0.001u,0.s) -Chars 4360 - 4366 [Proof.] 0. secs (0.u,0.s) -Chars 4369 - 4380 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4383 - 4398 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4401 - 4413 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 4414 - 4421 [(intros).] 0. secs (0.u,0.s) -Chars 4424 - 4447 [(rewrite~!unfold_interp).] 0.021 secs (0.021u,0.s) -Chars 4448 - 4459 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4463 - 4532 [(induction~H0;~intros;~subst;~...] 0.269 secs (0.267u,0.001s) -Chars 4535 - 4558 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 4562 - 4563 [-] 0. secs (0.u,0.s) -Chars 4564 - 4574 [(do~2~step).] 0.014 secs (0.014u,0.s) -Chars 4575 - 4583 [(apply~H).] 0. secs (0.u,0.s) -Chars 4587 - 4588 [-] 0. secs (0.u,0.s) -Chars 4589 - 4604 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) -Chars 4605 - 4628 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 4632 - 4633 [-] 0. secs (0.u,0.s) -Chars 4634 - 4639 [taul.] 0. secs (0.u,0.s) -Chars 4640 - 4647 [to_mon.] 0. secs (0.u,0.s) -Chars 4648 - 4670 [(rewrite~unfold_interp).] 0.014 secs (0.013u,0.s) -Chars 4671 - 4685 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4687 - 4691 [Qed.] 0.013 secs (0.013u,0.s) -Chars 4693 - 4871 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) -Chars 4872 - 4878 [Proof.] 0. secs (0.u,0.s) -Chars 4881 - 4892 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4895 - 4907 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4908 - 4915 [(intros).] 0. secs (0.u,0.s) -Chars 4918 - 4941 [(rewrite~!unfold_interp).] 0.032 secs (0.032u,0.s) -Chars 4944 - 4954 [step~in~H.] 0. secs (0.u,0.s) -Chars 4957 - 5010 [(induction~H;~cbn;~try~easy;~e...] 0.441 secs (0.438u,0.001s) -Chars 5014 - 5015 [-] 0. secs (0.u,0.s) -Chars 5016 - 5022 [ebind.] 0.02 secs (0.02u,0.s) -Chars 5023 - 5061 [(intros;~subst;~taus;~eauto~wi...] 0.004 secs (0.004u,0.s) -Chars 5065 - 5066 [-] 0. secs (0.u,0.s) -Chars 5067 - 5089 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 5090 - 5099 [now~taul.] 0. secs (0.u,0.s) -Chars 5103 - 5104 [-] 0. secs (0.u,0.s) -Chars 5105 - 5127 [(rewrite~unfold_interp).] 0.017 secs (0.017u,0.s) -Chars 5128 - 5137 [now~taur.] 0. secs (0.u,0.s) -Chars 5139 - 5143 [Qed.] 0.01 secs (0.01u,0.s) -Chars 5145 - 5308 [#[global]~Instance~euttge_inte...] 0.001 secs (0.u,0.s) -Chars 5309 - 5315 [Proof.] 0. secs (0.u,0.s) -Chars 5318 - 5329 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5330 - 5350 [(apply~euttge_interp).] 0. secs (0.u,0.s) -Chars 5351 - 5363 [reflexivity.] 0. secs (0.u,0.s) -Chars 5364 - 5368 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5833 - 6011 [Lemma~interp_bind~{E}~{F}~{R}~...] 0.001 secs (0.001u,0.s) -Chars 6012 - 6018 [Proof.] 0. secs (0.u,0.s) -Chars 6021 - 6034 [revert~R~t~k.] 0. secs (0.u,0.s) -Chars 6035 - 6055 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) -Chars 6059 - 6098 [(rewrite~unfold_bind,~(unfold_...] 0.036 secs (0.035u,0.s) -Chars 6101 - 6135 [(destruct~(observe~t);~cbn;~to...] 0.002 secs (0.002u,0.s) -Chars 6139 - 6140 [-] 0. secs (0.u,0.s) -Chars 6141 - 6160 [(rewrite~bind_ret_l).] 0.018 secs (0.018u,0.s) -Chars 6161 - 6179 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 6182 - 6183 [-] 0. secs (0.u,0.s) -Chars 6184 - 6189 [taus.] 0. secs (0.u,0.s) -Chars 6190 - 6201 [fold_subst.] 0. secs (0.u,0.s) -Chars 6202 - 6212 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6216 - 6217 [-] 0. secs (0.u,0.s) -Chars 6218 - 6248 [(rewrite~interp_vis,~bind_bind).] 0.033 secs (0.033u,0.s) -Chars 6249 - 6255 [ebind.] 0.009 secs (0.009u,0.s) -Chars 6261 - 6275 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 6280 - 6297 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) -Chars 6298 - 6303 [taus.] 0. secs (0.u,0.s) -Chars 6304 - 6314 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6316 - 6320 [Qed.] 0.013 secs (0.012u,0.s) -Chars 6322 - 6366 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 6404 - 6471 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) -Chars 6472 - 6478 [Proof.] 0. secs (0.u,0.s) -Chars 6481 - 6490 [revert~t.] 0. secs (0.u,0.s) -Chars 6491 - 6503 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 6504 - 6511 [(intros).] 0. secs (0.u,0.s) -Chars 6514 - 6551 [(rewrite~(itree_eta~t),~unfold...] 0.028 secs (0.028u,0.s) -Chars 6554 - 6580 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) -Chars 6585 - 6586 [-] 0. secs (0.u,0.s) -Chars 6587 - 6599 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6603 - 6604 [-] 0. secs (0.u,0.s) -Chars 6605 - 6610 [taus.] 0. secs (0.u,0.s) -Chars 6611 - 6621 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6625 - 6626 [-] 0. secs (0.u,0.s) -Chars 6627 - 6639 [constructor.] 0. secs (0.u,0.s) -Chars 6640 - 6646 [intro.] 0. secs (0.u,0.s) -Chars 6647 - 6658 [fold_subst.] 0. secs (0.u,0.s) -Chars 6661 - 6691 [(rewrite~bind_ret_,~tau_euttge).] 0.015 secs (0.015u,0.s) -Chars 6692 - 6702 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6704 - 6708 [Qed.] 0.008 secs (0.008u,0.s) -Chars 6710 - 6788 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) -Chars 6789 - 6795 [Proof.] 0. secs (0.u,0.s) -Chars 6798 - 6807 [revert~t.] 0. secs (0.u,0.s) -Chars 6808 - 6820 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 6821 - 6828 [(intros).] 0. secs (0.u,0.s) -Chars 6831 - 6853 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 6854 - 6881 [(rewrite~(itree_eta~t)~~at~2).] 0.014 secs (0.014u,0.s) -Chars 6884 - 6928 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) -Chars 6932 - 6951 [(constructor;~intro).] 0. secs (0.u,0.s) -Chars 6952 - 6963 [fold_subst.] 0. secs (0.u,0.s) -Chars 6967 - 6998 [(rewrite~bind_ret_l,~tau_euttge).] 0.015 secs (0.015u,0.s) -Chars 7001 - 7011 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7013 - 7017 [Qed.] 0.007 secs (0.007u,0.s) -Chars 7054 - 7225 [Theorem~interp_interp~{E}~{F}~...] 0.001 secs (0.001u,0.s) -Chars 7226 - 7232 [Proof.] 0. secs (0.u,0.s) -Chars 7235 - 7247 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7248 - 7255 [(intros).] 0. secs (0.u,0.s) -Chars 7259 - 7287 [(rewrite~2!(unfold_interp~t)).] 0.031 secs (0.031u,0.s) -Chars 7290 - 7334 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) -Chars 7338 - 7345 [to_mon.] 0. secs (0.u,0.s) -Chars 7346 - 7366 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) -Chars 7367 - 7373 [ebind.] 0.008 secs (0.008u,0.s) -Chars 7374 - 7388 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 7393 - 7412 [(rewrite~interp_tau).] 0.017 secs (0.016u,0.s) -Chars 7413 - 7418 [taus.] 0. secs (0.u,0.s) -Chars 7419 - 7429 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7433 - 7437 [Qed.] 0.01 secs (0.01u,0.s) -Chars 7439 - 7589 [Lemma~interp_translate~{E}~{F}...] 0.001 secs (0.001u,0.s) -Chars 7590 - 7596 [Proof.] 0. secs (0.u,0.s) -Chars 7599 - 7608 [revert~t.] 0. secs (0.u,0.s) -Chars 7613 - 7625 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7629 - 7638 [(intros~t).] 0. secs (0.u,0.s) -Chars 7641 - 7664 [(rewrite~!unfold_interp).] 0.031 secs (0.031u,0.s) -Chars 7665 - 7680 [(unfold~_interp).] 0. secs (0.u,0.s) -Chars 7683 - 7709 [(rewrite~unfold_translate_).] 0.012 secs (0.012u,0.s) -Chars 7710 - 7728 [(unfold~translateF).] 0. secs (0.u,0.s) -Chars 7731 - 7757 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) -Chars 7760 - 7761 [-] 0. secs (0.u,0.s) -Chars 7762 - 7780 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 7824 - 7825 [-] 0. secs (0.u,0.s) -Chars 7826 - 7831 [taus.] 0. secs (0.u,0.s) -Chars 7832 - 7842 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7846 - 7847 [-] 0. secs (0.u,0.s) -Chars 7848 - 7855 [to_mon.] 0. secs (0.u,0.s) -Chars 7856 - 7862 [ebind.] 0.008 secs (0.008u,0.s) -Chars 7863 - 7877 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 7878 - 7883 [taus.] 0. secs (0.u,0.s) -Chars 7884 - 7894 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7897 - 7901 [Qed.] 0.01 secs (0.01u,0.s) -Chars 7903 - 8032 [Lemma~translate_to_interp~{E}~...] 0.001 secs (0.001u,0.s) -Chars 8033 - 8039 [Proof.] 0. secs (0.u,0.s) -Chars 8042 - 8051 [revert~t.] 0. secs (0.u,0.s) -Chars 8052 - 8064 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 8065 - 8072 [(intros).] 0. secs (0.u,0.s) -Chars 8075 - 8100 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) -Chars 8103 - 8125 [(rewrite~unfold_interp).] 0.014 secs (0.014u,0.s) -Chars 8128 - 8172 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) -Chars 8176 - 8188 [constructor.] 0. secs (0.u,0.s) -Chars 8189 - 8195 [intro.] 0. secs (0.u,0.s) -Chars 8196 - 8207 [fold_subst.] 0.001 secs (0.001u,0.s) -Chars 8211 - 8242 [(rewrite~bind_ret_l,~tau_euttge).] 0.016 secs (0.016u,0.s) -Chars 8243 - 8253 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8255 - 8259 [Qed.] 0.008 secs (0.008u,0.s) -Chars 8261 - 8406 [Lemma~interp_forever~{E}~{F}~(...] 0. secs (0.u,0.s) -Chars 8407 - 8413 [Proof.] 0. secs (0.u,0.s) -Chars 8416 - 8428 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 8432 - 8459 [(rewrite~(unfold_forever~t)).] 0.014 secs (0.014u,0.s) -Chars 8462 - 8500 [(rewrite~(unfold_forever~(inte...] 0.018 secs (0.018u,0.s) -Chars 8503 - 8523 [(rewrite~interp_bind).] 0.016 secs (0.016u,0.s) -Chars 8526 - 8532 [ebind.] 0.007 secs (0.007u,0.s) -Chars 8533 - 8547 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8550 - 8569 [(rewrite~interp_tau).] 0.016 secs (0.016u,0.s) -Chars 8572 - 8577 [taus.] 0. secs (0.u,0.s) -Chars 8578 - 8588 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8590 - 8594 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8596 - 8841 [Lemma~interp_iter'~{E}~{F}~(f~...] 0.001 secs (0.001u,0.s) -Chars 8842 - 8848 [Proof.] 0. secs (0.u,0.s) -Chars 8851 - 8873 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) -Chars 8877 - 8899 [(rewrite~2!unfold_iter).] 0.034 secs (0.033u,0.s) -Chars 8902 - 8922 [(rewrite~interp_bind).] 0.016 secs (0.016u,0.s) -Chars 8925 - 8931 [ebind.] 0.009 secs (0.009u,0.s) -Chars 8935 - 8936 [{] 0. secs (0.u,0.s) -Chars 8937 - 8947 [(do~2~step).] 0.015 secs (0.015u,0.s) -Chars 8948 - 8959 [(apply~EQ_t).] 0. secs (0.u,0.s) -Chars 8960 - 8961 [}] 0. secs (0.u,0.s) -Chars 8964 - 8992 [(intros~[]~_~[];~cbn;~to_mon).] 0.002 secs (0.002u,0.s) -Chars 8996 - 8997 [-] 0. secs (0.u,0.s) -Chars 8998 - 9003 [taus.] 0. secs (0.u,0.s) -Chars 9004 - 9014 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9018 - 9019 [-] 0. secs (0.u,0.s) -Chars 9020 - 9032 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9034 - 9038 [Qed.] 0.008 secs (0.008u,0.s) -Chars 9040 - 9218 [Lemma~interp_iter~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) -Chars 9219 - 9225 [Proof.] 0. secs (0.u,0.s) -Chars 9228 - 9284 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 9287 - 9306 [(apply~interp_iter').] 0. secs (0.u,0.s) -Chars 9309 - 9321 [reflexivity.] 0. secs (0.u,0.s) -Chars 9322 - 9326 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9328 - 9548 [Lemma~interp_iter'_eutt~{E}~{F...] 0.001 secs (0.001u,0.s) -Chars 9549 - 9555 [Proof.] 0. secs (0.u,0.s) -Chars 9558 - 9580 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) -Chars 9584 - 9606 [(rewrite~2!unfold_iter).] 0.031 secs (0.031u,0.s) -Chars 9609 - 9629 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) -Chars 9632 - 9638 [ebind.] 0.008 secs (0.008u,0.s) -Chars 9642 - 9652 [(do~2~step).] 0.015 secs (0.015u,0.s) -Chars 9653 - 9663 [(apply~Heq).] 0. secs (0.u,0.s) -Chars 9666 - 9686 [(intros~[]~_~[];~cbn).] 0.001 secs (0.001u,0.s) -Chars 9689 - 9690 [-] 0. secs (0.u,0.s) -Chars 9691 - 9696 [taus.] 0. secs (0.u,0.s) -Chars 9697 - 9707 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9711 - 9712 [-] 0. secs (0.u,0.s) -Chars 9713 - 9725 [reflexivity.] 0. secs (0.u,0.s) -Chars 9727 - 9731 [Qed.] 0.007 secs (0.007u,0.s) -Chars 9733 - 9916 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.002 secs (0.002u,0.s) -Chars 9917 - 9923 [Proof.] 0. secs (0.u,0.s) -Chars 9926 - 9938 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 9939 - 9979 [(unfold~cat,~Cat_Kleisli,~ITre...] 0. secs (0.u,0.s) -Chars 9982 - 10002 [(rewrite~interp_bind).] 0.005 secs (0.005u,0.s) -Chars 10005 - 10021 [(apply~eqit_bind).] 0. secs (0.u,0.s) -Chars 10024 - 10025 [{] 0. secs (0.u,0.s) -Chars 10026 - 10074 [(unfold~inr_,~Inr_Kleisli,~lif...] 0. secs (0.u,0.s) -Chars 10079 - 10098 [(rewrite~interp_ret).] 0.002 secs (0.002u,0.s) -Chars 10103 - 10115 [reflexivity.] 0. secs (0.u,0.s) -Chars 10118 - 10119 [}] 0. secs (0.u,0.s) -Chars 10122 - 10135 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 10138 - 10158 [(rewrite~interp_iter).] 0.004 secs (0.004u,0.s) -Chars 10161 - 10181 [(apply~eq_itree_iter).] 0. secs (0.u,0.s) -Chars 10184 - 10198 [(intros~?~?~[]).] 0. secs (0.u,0.s) -Chars 10201 - 10221 [(rewrite~interp_bind).] 0.004 secs (0.004u,0.s) -Chars 10224 - 10257 [(apply~eqit_bind;~try~reflexiv...] 0.001 secs (0.001u,0.s) -Chars 10260 - 10275 [(intros~[];~cbn).] 0. secs (0.u,0.s) -Chars 10276 - 10287 [(unfold~cat).] 0. secs (0.u,0.s) -Chars 10288 - 10308 [(rewrite~interp_bind).] 0.003 secs (0.003u,0.s) -Chars 10311 - 10312 [-] 0. secs (0.u,0.s) -Chars 10313 - 10374 [(unfold~inl_,~Inl_Kleisli,~inr...] 0. secs (0.u,0.s) -Chars 10379 - 10423 [(rewrite~interp_ret,~!bind_ret...] 0.015 secs (0.015u,0.s) -Chars 10428 - 10440 [reflexivity.] 0. secs (0.u,0.s) -Chars 10443 - 10444 [-] 0. secs (0.u,0.s) -Chars 10445 - 10515 [(unfold~cat,~id_,~Id_Kleisli,~...] 0. secs (0.u,0.s) -Chars 10520 - 10577 [(rewrite~interp_bind,~interp_r...] 0.017 secs (0.017u,0.s) -Chars 10582 - 10594 [reflexivity.] 0. secs (0.u,0.s) -Chars 10595 - 10599 [Qed.] 0.01 secs (0.01u,0.s) -Chars 10601 - 10750 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) -Chars 10751 - 10757 [Proof.] 0. secs (0.u,0.s) -Chars 10760 - 10788 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) -Chars 10791 - 10817 [(rewrite~interp_iter'_eutt).] 0.001 secs (0.001u,0.s) -Chars 10818 - 10830 [reflexivity.] 0. secs (0.u,0.s) -Chars 10831 - 10839 [clear~i.] 0. secs (0.u,0.s) -Chars 10842 - 10851 [(intros~i).] 0. secs (0.u,0.s) -Chars 10852 - 10856 [(cbn).] 0. secs (0.u,0.s) -Chars 10857 - 10885 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) -Chars 10886 - 10898 [reflexivity.] 0. secs (0.u,0.s) -Chars 10899 - 10903 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3283 - 3289 [ebind.] 0.009 secs (0.009u,0.s) +Chars 3290 - 3305 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 3306 - 3311 [etau.] 0.002 secs (0.002u,0.s) +Chars 3313 - 3317 [Qed.] 0.012 secs (0.012u,0.s) +Chars 3319 - 3438 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) +Chars 3439 - 3445 [Proof.] 0. secs (0.u,0.s) +Chars 3448 - 3459 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3462 - 3485 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) +Chars 3488 - 3500 [reflexivity.] 0. secs (0.u,0.s) +Chars 3501 - 3505 [Qed.] 0. secs (0.u,0.s) +Chars 3507 - 3666 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) +Chars 3667 - 3673 [Proof.] 0. secs (0.u,0.s) +Chars 3676 - 3687 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3690 - 3705 [intros~until~T.] 0. secs (0.u,0.s) +Chars 3708 - 3720 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 3721 - 3728 [(intros).] 0. secs (0.u,0.s) +Chars 3731 - 3754 [(rewrite~!unfold_interp).] 0.032 secs (0.032u,0.s) +Chars 3755 - 3766 [step~in~H0.] 0. secs (0.u,0.s) +Chars 3770 - 3829 [(induction~H0;~intros;~subst;~...] 0.381 secs (0.377u,0.001s) +Chars 3835 - 3858 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 3862 - 3863 [-] 0. secs (0.u,0.s) +Chars 3864 - 3874 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 3875 - 3883 [(apply~H).] 0. secs (0.u,0.s) +Chars 3887 - 3888 [-] 0. secs (0.u,0.s) +Chars 3889 - 3904 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 3905 - 3928 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 3932 - 3933 [-] 0. secs (0.u,0.s) +Chars 3934 - 3939 [taul.] 0. secs (0.u,0.s) +Chars 3940 - 3947 [to_mon.] 0. secs (0.u,0.s) +Chars 3948 - 3970 [(rewrite~unfold_interp).] 0.015 secs (0.014u,0.s) +Chars 3971 - 3985 [(apply~IHeqitF).] 0. secs (0.u,0.s) +Chars 3989 - 3990 [-] 0. secs (0.u,0.s) +Chars 3991 - 3996 [taur.] 0. secs (0.u,0.s) +Chars 3997 - 4004 [to_mon.] 0. secs (0.u,0.s) +Chars 4005 - 4027 [(rewrite~unfold_interp).] 0.017 secs (0.017u,0.s) +Chars 4028 - 4042 [(apply~IHeqitF).] 0. secs (0.u,0.s) +Chars 4044 - 4048 [Qed.] 0.011 secs (0.011u,0.s) +Chars 4051 - 4293 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) +Chars 4294 - 4300 [Proof.] 0. secs (0.u,0.s) +Chars 4303 - 4314 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4317 - 4332 [intros~until~T.] 0. secs (0.u,0.s) +Chars 4335 - 4347 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4348 - 4355 [(intros).] 0. secs (0.u,0.s) +Chars 4358 - 4381 [(rewrite~!unfold_interp).] 0.022 secs (0.022u,0.s) +Chars 4382 - 4393 [step~in~H0.] 0. secs (0.u,0.s) +Chars 4397 - 4466 [(induction~H0;~intros;~subst;~...] 0.266 secs (0.263u,0.001s) +Chars 4469 - 4492 [(eapply~eqit_bind_chain).] 0.001 secs (0.001u,0.s) +Chars 4496 - 4497 [-] 0. secs (0.u,0.s) +Chars 4498 - 4508 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 4509 - 4517 [(apply~H).] 0. secs (0.u,0.s) +Chars 4521 - 4522 [-] 0. secs (0.u,0.s) +Chars 4523 - 4538 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 4539 - 4562 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 4566 - 4567 [-] 0. secs (0.u,0.s) +Chars 4568 - 4573 [taul.] 0. secs (0.u,0.s) +Chars 4574 - 4581 [to_mon.] 0. secs (0.u,0.s) +Chars 4582 - 4604 [(rewrite~unfold_interp).] 0.015 secs (0.014u,0.s) +Chars 4605 - 4619 [(apply~IHeqitF).] 0. secs (0.u,0.s) +Chars 4621 - 4625 [Qed.] 0.026 secs (0.019u,0.s) +Chars 4627 - 4805 [#[global]~Instance~eutt_interp...] 0.001 secs (0.u,0.s) +Chars 4806 - 4812 [Proof.] 0. secs (0.u,0.s) +Chars 4815 - 4826 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4829 - 4841 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4842 - 4849 [(intros).] 0. secs (0.u,0.s) +Chars 4852 - 4875 [(rewrite~!unfold_interp).] 0.031 secs (0.031u,0.s) +Chars 4878 - 4888 [step~in~H.] 0. secs (0.u,0.s) +Chars 4891 - 4944 [(induction~H;~cbn;~try~easy;~e...] 0.437 secs (0.435u,0.001s) +Chars 4948 - 4949 [-] 0. secs (0.u,0.s) +Chars 4950 - 4956 [ebind.] 0.021 secs (0.021u,0.s) +Chars 4957 - 4995 [(intros;~subst;~taus;~eauto~wi...] 0.004 secs (0.004u,0.s) +Chars 4999 - 5000 [-] 0. secs (0.u,0.s) +Chars 5001 - 5023 [(rewrite~unfold_interp).] 0.016 secs (0.016u,0.s) +Chars 5024 - 5033 [now~taul.] 0. secs (0.u,0.s) +Chars 5037 - 5038 [-] 0. secs (0.u,0.s) +Chars 5039 - 5061 [(rewrite~unfold_interp).] 0.016 secs (0.015u,0.s) +Chars 5062 - 5071 [now~taur.] 0. secs (0.u,0.s) +Chars 5073 - 5077 [Qed.] 0.01 secs (0.01u,0.s) +Chars 5079 - 5242 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 5243 - 5249 [Proof.] 0. secs (0.u,0.s) +Chars 5252 - 5263 [(repeat~red).] 0. secs (0.u,0.s) +Chars 5264 - 5284 [(apply~euttge_interp).] 0. secs (0.u,0.s) +Chars 5285 - 5297 [reflexivity.] 0. secs (0.u,0.s) +Chars 5298 - 5302 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5767 - 5945 [Lemma~interp_bind~{E}~{F}~{R}~...] 0.001 secs (0.001u,0.s) +Chars 5946 - 5952 [Proof.] 0. secs (0.u,0.s) +Chars 5955 - 5968 [revert~R~t~k.] 0. secs (0.u,0.s) +Chars 5969 - 5989 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) +Chars 5993 - 6032 [(rewrite~unfold_bind,~(unfold_...] 0.035 secs (0.035u,0.s) +Chars 6035 - 6069 [(destruct~(observe~t);~cbn;~to...] 0.002 secs (0.002u,0.s) +Chars 6073 - 6074 [-] 0. secs (0.u,0.s) +Chars 6075 - 6094 [(rewrite~bind_ret_l).] 0.018 secs (0.017u,0.s) +Chars 6095 - 6113 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 6116 - 6117 [-] 0. secs (0.u,0.s) +Chars 6118 - 6123 [taus.] 0. secs (0.u,0.s) +Chars 6124 - 6135 [fold_subst.] 0. secs (0.u,0.s) +Chars 6136 - 6146 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6150 - 6151 [-] 0. secs (0.u,0.s) +Chars 6152 - 6182 [(rewrite~interp_vis,~bind_bind).] 0.033 secs (0.032u,0.s) +Chars 6183 - 6189 [ebind.] 0.009 secs (0.009u,0.s) +Chars 6195 - 6209 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 6214 - 6231 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) +Chars 6232 - 6237 [taus.] 0. secs (0.u,0.s) +Chars 6238 - 6248 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6250 - 6254 [Qed.] 0.012 secs (0.012u,0.s) +Chars 6256 - 6300 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) +Chars 6338 - 6405 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) +Chars 6406 - 6412 [Proof.] 0. secs (0.u,0.s) +Chars 6415 - 6424 [revert~t.] 0. secs (0.u,0.s) +Chars 6425 - 6437 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 6438 - 6445 [(intros).] 0. secs (0.u,0.s) +Chars 6448 - 6485 [(rewrite~(itree_eta~t),~unfold...] 0.027 secs (0.027u,0.s) +Chars 6488 - 6514 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) +Chars 6519 - 6520 [-] 0. secs (0.u,0.s) +Chars 6521 - 6533 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6537 - 6538 [-] 0. secs (0.u,0.s) +Chars 6539 - 6544 [taus.] 0. secs (0.u,0.s) +Chars 6545 - 6555 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6559 - 6560 [-] 0. secs (0.u,0.s) +Chars 6561 - 6573 [constructor.] 0. secs (0.u,0.s) +Chars 6574 - 6580 [intro.] 0. secs (0.u,0.s) +Chars 6581 - 6592 [fold_subst.] 0. secs (0.u,0.s) +Chars 6595 - 6625 [(rewrite~bind_ret_,~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 6626 - 6636 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6638 - 6642 [Qed.] 0.008 secs (0.008u,0.s) +Chars 6644 - 6722 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) +Chars 6723 - 6729 [Proof.] 0. secs (0.u,0.s) +Chars 6732 - 6741 [revert~t.] 0. secs (0.u,0.s) +Chars 6742 - 6754 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 6755 - 6762 [(intros).] 0. secs (0.u,0.s) +Chars 6765 - 6787 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) +Chars 6788 - 6815 [(rewrite~(itree_eta~t)~~at~2).] 0.014 secs (0.014u,0.s) +Chars 6818 - 6862 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) +Chars 6866 - 6885 [(constructor;~intro).] 0. secs (0.u,0.s) +Chars 6886 - 6897 [fold_subst.] 0. secs (0.u,0.s) +Chars 6901 - 6932 [(rewrite~bind_ret_l,~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 6935 - 6945 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6947 - 6951 [Qed.] 0.007 secs (0.007u,0.s) +Chars 6988 - 7159 [Theorem~interp_interp~{E}~{F}~...] 0.001 secs (0.001u,0.s) +Chars 7160 - 7166 [Proof.] 0. secs (0.u,0.s) +Chars 7169 - 7181 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7182 - 7189 [(intros).] 0. secs (0.u,0.s) +Chars 7193 - 7221 [(rewrite~2!(unfold_interp~t)).] 0.034 secs (0.034u,0.s) +Chars 7224 - 7268 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) +Chars 7272 - 7279 [to_mon.] 0. secs (0.u,0.s) +Chars 7280 - 7300 [(rewrite~interp_bind).] 0.016 secs (0.015u,0.s) +Chars 7301 - 7307 [ebind.] 0.008 secs (0.008u,0.s) +Chars 7308 - 7322 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 7327 - 7346 [(rewrite~interp_tau).] 0.016 secs (0.016u,0.s) +Chars 7347 - 7352 [taus.] 0. secs (0.u,0.s) +Chars 7353 - 7363 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7367 - 7371 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7373 - 7523 [Lemma~interp_translate~{E}~{F}...] 0.001 secs (0.001u,0.s) +Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) +Chars 7533 - 7542 [revert~t.] 0. secs (0.u,0.s) +Chars 7547 - 7559 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7563 - 7572 [(intros~t).] 0. secs (0.u,0.s) +Chars 7575 - 7598 [(rewrite~!unfold_interp).] 0.034 secs (0.034u,0.s) +Chars 7599 - 7614 [(unfold~_interp).] 0. secs (0.u,0.s) +Chars 7617 - 7643 [(rewrite~unfold_translate_).] 0.013 secs (0.013u,0.s) +Chars 7644 - 7662 [(unfold~translateF).] 0. secs (0.u,0.s) +Chars 7665 - 7691 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) +Chars 7694 - 7695 [-] 0. secs (0.u,0.s) +Chars 7696 - 7714 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 7758 - 7759 [-] 0. secs (0.u,0.s) +Chars 7760 - 7765 [taus.] 0. secs (0.u,0.s) +Chars 7766 - 7776 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7780 - 7781 [-] 0. secs (0.u,0.s) +Chars 7782 - 7789 [to_mon.] 0. secs (0.u,0.s) +Chars 7790 - 7796 [ebind.] 0.008 secs (0.008u,0.s) +Chars 7797 - 7811 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 7812 - 7817 [taus.] 0. secs (0.u,0.s) +Chars 7818 - 7828 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7831 - 7835 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7837 - 7966 [Lemma~translate_to_interp~{E}~...] 0.001 secs (0.001u,0.s) +Chars 7967 - 7973 [Proof.] 0. secs (0.u,0.s) +Chars 7976 - 7985 [revert~t.] 0. secs (0.u,0.s) +Chars 7986 - 7998 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7999 - 8006 [(intros).] 0. secs (0.u,0.s) +Chars 8009 - 8034 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) +Chars 8037 - 8059 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) +Chars 8062 - 8106 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) +Chars 8110 - 8122 [constructor.] 0. secs (0.u,0.s) +Chars 8123 - 8129 [intro.] 0. secs (0.u,0.s) +Chars 8130 - 8141 [fold_subst.] 0.001 secs (0.001u,0.s) +Chars 8145 - 8176 [(rewrite~bind_ret_l,~tau_euttge).] 0.017 secs (0.017u,0.s) +Chars 8177 - 8187 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8189 - 8193 [Qed.] 0.009 secs (0.008u,0.s) +Chars 8195 - 8340 [Lemma~interp_forever~{E}~{F}~(...] 0.001 secs (0.001u,0.s) +Chars 8341 - 8347 [Proof.] 0. secs (0.u,0.s) +Chars 8350 - 8362 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 8366 - 8393 [(rewrite~(unfold_forever~t)).] 0.014 secs (0.014u,0.s) +Chars 8396 - 8434 [(rewrite~(unfold_forever~(inte...] 0.017 secs (0.017u,0.s) +Chars 8437 - 8457 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) +Chars 8460 - 8466 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8467 - 8481 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 8484 - 8503 [(rewrite~interp_tau).] 0.017 secs (0.016u,0.s) +Chars 8506 - 8511 [taus.] 0. secs (0.u,0.s) +Chars 8512 - 8522 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8524 - 8528 [Qed.] 0.006 secs (0.006u,0.s) +Chars 8530 - 8775 [Lemma~interp_iter'~{E}~{F}~(f~...] 0.001 secs (0.001u,0.s) +Chars 8776 - 8782 [Proof.] 0. secs (0.u,0.s) +Chars 8785 - 8807 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) +Chars 8811 - 8833 [(rewrite~2!unfold_iter).] 0.033 secs (0.033u,0.s) +Chars 8836 - 8856 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) +Chars 8859 - 8865 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8869 - 8870 [{] 0. secs (0.u,0.s) +Chars 8871 - 8881 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 8882 - 8893 [(apply~EQ_t).] 0. secs (0.u,0.s) +Chars 8894 - 8895 [}] 0. secs (0.u,0.s) +Chars 8898 - 8926 [(intros~[]~_~[];~cbn;~to_mon).] 0.002 secs (0.002u,0.s) +Chars 8930 - 8931 [-] 0. secs (0.u,0.s) +Chars 8932 - 8937 [taus.] 0. secs (0.u,0.s) +Chars 8938 - 8948 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8952 - 8953 [-] 0. secs (0.u,0.s) +Chars 8954 - 8966 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8968 - 8972 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8974 - 9152 [Lemma~interp_iter~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) +Chars 9153 - 9159 [Proof.] 0. secs (0.u,0.s) +Chars 9162 - 9218 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) +Chars 9221 - 9240 [(apply~interp_iter').] 0. secs (0.u,0.s) +Chars 9243 - 9255 [reflexivity.] 0. secs (0.u,0.s) +Chars 9256 - 9260 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9262 - 9482 [Lemma~interp_iter'_eutt~{E}~{F...] 0.001 secs (0.001u,0.s) +Chars 9483 - 9489 [Proof.] 0. secs (0.u,0.s) +Chars 9492 - 9514 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) +Chars 9518 - 9540 [(rewrite~2!unfold_iter).] 0.031 secs (0.031u,0.s) +Chars 9543 - 9563 [(rewrite~interp_bind).] 0.014 secs (0.014u,0.s) +Chars 9566 - 9572 [ebind.] 0.008 secs (0.008u,0.s) +Chars 9576 - 9586 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 9587 - 9597 [(apply~Heq).] 0. secs (0.u,0.s) +Chars 9600 - 9620 [(intros~[]~_~[];~cbn).] 0.001 secs (0.001u,0.s) +Chars 9623 - 9624 [-] 0. secs (0.u,0.s) +Chars 9625 - 9630 [taus.] 0. secs (0.u,0.s) +Chars 9631 - 9641 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9645 - 9646 [-] 0. secs (0.u,0.s) +Chars 9647 - 9659 [reflexivity.] 0. secs (0.u,0.s) +Chars 9661 - 9665 [Qed.] 0.008 secs (0.008u,0.s) +Chars 9667 - 9850 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.002 secs (0.002u,0.s) +Chars 9851 - 9857 [Proof.] 0. secs (0.u,0.s) +Chars 9860 - 9872 [(unfold~loop).] 0. secs (0.u,0.s) +Chars 9873 - 9913 [(unfold~cat,~Cat_Kleisli,~ITre...] 0. secs (0.u,0.s) +Chars 9916 - 9936 [(rewrite~interp_bind).] 0.005 secs (0.005u,0.s) +Chars 9939 - 9955 [(apply~eqit_bind).] 0. secs (0.u,0.s) +Chars 9958 - 9959 [{] 0. secs (0.u,0.s) +Chars 9960 - 10008 [(unfold~inr_,~Inr_Kleisli,~lif...] 0. secs (0.u,0.s) +Chars 10013 - 10032 [(rewrite~interp_ret).] 0.002 secs (0.002u,0.s) +Chars 10037 - 10049 [reflexivity.] 0. secs (0.u,0.s) +Chars 10052 - 10053 [}] 0. secs (0.u,0.s) +Chars 10056 - 10069 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 10072 - 10092 [(rewrite~interp_iter).] 0.004 secs (0.004u,0.s) +Chars 10095 - 10115 [(apply~eq_itree_iter).] 0. secs (0.u,0.s) +Chars 10118 - 10132 [(intros~?~?~[]).] 0. secs (0.u,0.s) +Chars 10135 - 10155 [(rewrite~interp_bind).] 0.004 secs (0.004u,0.s) +Chars 10158 - 10191 [(apply~eqit_bind;~try~reflexiv...] 0.001 secs (0.001u,0.s) +Chars 10194 - 10209 [(intros~[];~cbn).] 0. secs (0.u,0.s) +Chars 10210 - 10221 [(unfold~cat).] 0. secs (0.u,0.s) +Chars 10222 - 10242 [(rewrite~interp_bind).] 0.003 secs (0.003u,0.s) +Chars 10245 - 10246 [-] 0. secs (0.u,0.s) +Chars 10247 - 10308 [(unfold~inl_,~Inl_Kleisli,~inr...] 0. secs (0.u,0.s) +Chars 10313 - 10357 [(rewrite~interp_ret,~!bind_ret...] 0.015 secs (0.015u,0.s) +Chars 10362 - 10374 [reflexivity.] 0. secs (0.u,0.s) +Chars 10377 - 10378 [-] 0. secs (0.u,0.s) +Chars 10379 - 10449 [(unfold~cat,~id_,~Id_Kleisli,~...] 0. secs (0.u,0.s) +Chars 10454 - 10511 [(rewrite~interp_bind,~interp_r...] 0.016 secs (0.016u,0.s) +Chars 10516 - 10528 [reflexivity.] 0. secs (0.u,0.s) +Chars 10529 - 10533 [Qed.] 0.01 secs (0.01u,0.s) +Chars 10535 - 10684 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) +Chars 10685 - 10691 [Proof.] 0. secs (0.u,0.s) +Chars 10694 - 10722 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) +Chars 10725 - 10751 [(rewrite~interp_iter'_eutt).] 0.001 secs (0.001u,0.s) +Chars 10752 - 10764 [reflexivity.] 0. secs (0.u,0.s) +Chars 10765 - 10773 [clear~i.] 0. secs (0.u,0.s) +Chars 10776 - 10785 [(intros~i).] 0. secs (0.u,0.s) +Chars 10786 - 10790 [(cbn).] 0. secs (0.u,0.s) +Chars 10791 - 10819 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) +Chars 10820 - 10832 [reflexivity.] 0. secs (0.u,0.s) +Chars 10833 - 10837 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Interp/Recursion.v.timing b/theories/Interp/Recursion.v.timing index 727d1561..9299aec4 100644 --- a/theories/Interp/Recursion.v.timing +++ b/theories/Interp/Recursion.v.timing @@ -1,4 +1,4 @@ -Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.042 secs (0.034u,0.007s) +Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.044 secs (0.035u,0.009s) Chars 128 - 150 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 151 - 183 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.003 secs (0.002u,0.s) diff --git a/theories/Interp/RecursionFacts.v.timing b/theories/Interp/RecursionFacts.v.timing index a651ffb0..7dee6f0c 100644 --- a/theories/Interp/RecursionFacts.v.timing +++ b/theories/Interp/RecursionFacts.v.timing @@ -1,6 +1,6 @@ -Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.003s) +Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.082 secs (0.07u,0.011s) +Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.097 secs (0.075u,0.014s) Chars 669 - 691 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 693 - 707 [Section~Facts.] 0. secs (0.u,0.s) Chars 709 - 766 [Context~{D~E~:~Type~->~Type}~(...] 0. secs (0.u,0.s) @@ -13,7 +13,7 @@ Chars 1589 - 1611 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) Chars 1614 - 1615 [-] 0. secs (0.u,0.s) Chars 1616 - 1648 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) Chars 1651 - 1652 [-] 0. secs (0.u,0.s) -Chars 1653 - 1685 [(rewrite~bind_ret_l;~reflexivi...] 0.042 secs (0.041u,0.s) +Chars 1653 - 1685 [(rewrite~bind_ret_l;~reflexivi...] 0.044 secs (0.043u,0.s) Chars 1688 - 1689 [-] 0. secs (0.u,0.s) Chars 1690 - 1706 [(destruct~e;~cbn).] 0. secs (0.u,0.s) Chars 1711 - 1712 [+] 0. secs (0.u,0.s) @@ -22,30 +22,30 @@ Chars 1750 - 1751 [+] 0. secs (0.u,0.s) Chars 1752 - 1769 [(rewrite~bind_vis).] 0.007 secs (0.007u,0.s) Chars 1776 - 1794 [(step;~constructor).] 0.003 secs (0.003u,0.s) Chars 1795 - 1802 [(intros).] 0. secs (0.u,0.s) -Chars 1809 - 1828 [(rewrite~bind_ret_l).] 0.011 secs (0.009u,0.001s) +Chars 1809 - 1828 [(rewrite~bind_ret_l).] 0.009 secs (0.008u,0.001s) Chars 1835 - 1853 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 1854 - 1858 [Qed.] 0.011 secs (0.009u,0.001s) +Chars 1854 - 1858 [Qed.] 0.011 secs (0.009u,0.002s) Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0.001 secs (0.u,0.s) Chars 2130 - 2230 [#[global]~Instance~eq_itree_mr...] 0. secs (0.u,0.s) Chars 2231 - 2237 [Proof.] 0. secs (0.u,0.s) Chars 2240 - 2251 [(repeat~red).] 0. secs (0.u,0.s) Chars 2255 - 2267 [coinduction.] 0.003 secs (0.002u,0.s) Chars 2268 - 2275 [(intros).] 0. secs (0.u,0.s) -Chars 2278 - 2306 [(rewrite~!unfold_interp_mrec).] 0.038 secs (0.034u,0.003s) +Chars 2278 - 2306 [(rewrite~!unfold_interp_mrec).] 0.037 secs (0.033u,0.004s) Chars 2309 - 2319 [step~in~H.] 0. secs (0.u,0.s) -Chars 2320 - 2344 [(inv~H;~eauto~with~itree).] 0.094 secs (0.094u,0.s) +Chars 2320 - 2344 [(inv~H;~eauto~with~itree).] 0.094 secs (0.093u,0.001s) Chars 2348 - 2349 [-] 0. secs (0.u,0.s) Chars 2350 - 2355 [taus.] 0. secs (0.u,0.s) Chars 2356 - 2370 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 2374 - 2375 [-] 0. secs (0.u,0.s) Chars 2376 - 2380 [(cbn).] 0. secs (0.u,0.s) -Chars 2381 - 2392 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 2381 - 2392 [(destruct~e).] 0. secs (0.u,0.s) Chars 2397 - 2398 [+] 0. secs (0.u,0.s) Chars 2399 - 2404 [taus.] 0. secs (0.u,0.s) Chars 2405 - 2415 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2422 - 2428 [ebind.] 0.006 secs (0.005u,0.s) +Chars 2422 - 2428 [ebind.] 0.005 secs (0.005u,0.s) Chars 2429 - 2443 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 2450 - 2460 [(do~2~step).] 0.009 secs (0.009u,0.s) +Chars 2450 - 2460 [(do~2~step).] 0.008 secs (0.008u,0.s) Chars 2461 - 2471 [(apply~REL).] 0. secs (0.u,0.s) Chars 2477 - 2478 [+] 0. secs (0.u,0.s) Chars 2479 - 2491 [constructor.] 0. secs (0.u,0.s) @@ -58,8 +58,8 @@ Chars 2540 - 2544 [Qed.] 0.014 secs (0.014u,0.s) Chars 2546 - 2721 [Theorem~interp_mrec_bind~{U}~{...] 0. secs (0.u,0.s) Chars 2722 - 2728 [Proof.] 0. secs (0.u,0.s) Chars 2731 - 2763 [(revert~t~k;~coinduction;~intr...] 0.002 secs (0.002u,0.s) -Chars 2766 - 2799 [(rewrite~(unfold_interp_mrec~_...] 0.019 secs (0.018u,0.s) -Chars 2802 - 2826 [(rewrite~(unfold_bind~t)).] 0.017 secs (0.017u,0.s) +Chars 2766 - 2799 [(rewrite~(unfold_interp_mrec~_...] 0.018 secs (0.018u,0.s) +Chars 2802 - 2826 [(rewrite~(unfold_bind~t)).] 0.016 secs (0.016u,0.s) Chars 2829 - 2881 [(destruct~(observe~t);~cbn;~[~...] 0.003 secs (0.003u,0.s) Chars 2885 - 2886 [-] 0. secs (0.u,0.s) Chars 2887 - 2905 [(apply~reflexivity).] 0. secs (0.u,0.s) @@ -71,26 +71,26 @@ Chars 2942 - 2943 [-] 0. secs (0.u,0.s) Chars 2944 - 2951 [to_mon.] 0. secs (0.u,0.s) Chars 2952 - 2957 [taus.] 0. secs (0.u,0.s) Chars 2958 - 2969 [fold_subst.] 0. secs (0.u,0.s) -Chars 2975 - 2996 [(rewrite~<-~bind_bind).] 0.013 secs (0.013u,0.s) +Chars 2975 - 2996 [(rewrite~<-~bind_bind).] 0.013 secs (0.012u,0.s) Chars 3001 - 3011 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3016 - 3017 [-] 0. secs (0.u,0.s) Chars 3018 - 3030 [constructor.] 0. secs (0.u,0.s) Chars 3031 - 3037 [intro.] 0. secs (0.u,0.s) -Chars 3038 - 3049 [fold_subst.] 0. secs (0.u,0.s) -Chars 3055 - 3084 [(rewrite~bind_ret_l,~bind_tau).] 0.029 secs (0.028u,0.s) +Chars 3038 - 3049 [fold_subst.] 0.001 secs (0.001u,0.s) +Chars 3055 - 3084 [(rewrite~bind_ret_l,~bind_tau).] 0.029 secs (0.029u,0.s) Chars 3090 - 3095 [step.] 0.002 secs (0.002u,0.s) Chars 3096 - 3101 [taus.] 0. secs (0.u,0.s) Chars 3102 - 3112 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3116 - 3120 [Qed.] 0.013 secs (0.013u,0.s) Chars 3122 - 3236 [Theorem~interp_mrec_trigger~{U...] 0. secs (0.u,0.s) Chars 3237 - 3243 [Proof.] 0. secs (0.u,0.s) -Chars 3246 - 3292 [(rewrite~unfold_interp_mrec;~u...] 0.013 secs (0.013u,0.s) +Chars 3246 - 3292 [(rewrite~unfold_interp_mrec;~u...] 0.013 secs (0.012u,0.s) Chars 3295 - 3311 [(destruct~a;~cbn).] 0. secs (0.u,0.s) -Chars 3314 - 3345 [(rewrite~tau_euttge,~bind_ret_r).] 0.014 secs (0.014u,0.s) +Chars 3314 - 3345 [(rewrite~tau_euttge,~bind_ret_r).] 0.013 secs (0.012u,0.s) Chars 3348 - 3360 [reflexivity.] 0. secs (0.u,0.s) Chars 3363 - 3381 [(step;~constructor).] 0.002 secs (0.002u,0.s) Chars 3382 - 3389 [(intros).] 0. secs (0.u,0.s) -Chars 3390 - 3434 [(rewrite~tau_euttge,~unfold_in...] 0.015 secs (0.014u,0.s) +Chars 3390 - 3434 [(rewrite~tau_euttge,~unfold_in...] 0.015 secs (0.015u,0.s) Chars 3437 - 3455 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 3456 - 3460 [Qed.] 0.003 secs (0.003u,0.s) Chars 3462 - 3564 [Theorem~interp_mrec_as_interp~...] 0. secs (0.u,0.s) @@ -99,7 +99,7 @@ Chars 3574 - 3609 [(rewrite~<-~(tau_eutt~(interp~...] 0.001 secs (0.001u,0.s) Chars 3612 - 3627 [(revert_until~T).] 0. secs (0.u,0.s) Chars 3628 - 3640 [coinduction.] 0.002 secs (0.002u,0.s) Chars 3641 - 3648 [(intros).] 0. secs (0.u,0.s) -Chars 3651 - 3693 [(rewrite~unfold_interp_mrec,~u...] 0.031 secs (0.031u,0.s) +Chars 3651 - 3693 [(rewrite~unfold_interp_mrec,~u...] 0.033 secs (0.033u,0.s) Chars 3696 - 3759 [(destruct~(observe~c0);~[~~|~~...] 0.005 secs (0.005u,0.s) Chars 3762 - 3763 [-] 0. secs (0.u,0.s) Chars 3764 - 3773 [now~taur.] 0.001 secs (0.001u,0.s) @@ -108,7 +108,7 @@ Chars 3779 - 3784 [taus.] 0. secs (0.u,0.s) Chars 3785 - 3795 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3799 - 3800 [-] 0. secs (0.u,0.s) Chars 3801 - 3806 [taus.] 0. secs (0.u,0.s) -Chars 3807 - 3832 [(rewrite~interp_mrec_bind).] 0.013 secs (0.013u,0.s) +Chars 3807 - 3832 [(rewrite~interp_mrec_bind).] 0.014 secs (0.014u,0.s) Chars 3833 - 3845 [(unfold~mrec).] 0. secs (0.u,0.s) Chars 3848 - 3854 [ebind.] 0.005 secs (0.005u,0.s) Chars 3855 - 3869 [(intros;~subst).] 0. secs (0.u,0.s) @@ -117,7 +117,7 @@ Chars 3884 - 3885 [-] 0. secs (0.u,0.s) Chars 3886 - 3893 [to_mon.] 0. secs (0.u,0.s) Chars 3894 - 3913 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) Chars 3919 - 3940 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 3942 - 3959 [(rewrite~bind_vis).] 0.017 secs (0.016u,0.s) +Chars 3942 - 3959 [(rewrite~bind_vis).] 0.016 secs (0.016u,0.s) Chars 3964 - 3976 [constructor.] 0. secs (0.u,0.s) Chars 3977 - 3983 [intro.] 0. secs (0.u,0.s) Chars 3989 - 4008 [(rewrite~bind_ret_l).] 0.013 secs (0.013u,0.s) @@ -140,42 +140,42 @@ Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0.001 secs (0.001u,0.s) Chars 4517 - 4523 [Proof.] 0. secs (0.u,0.s) Chars 4526 - 4546 [(rewrite~<-~tau_eutt).] 0.002 secs (0.002u,0.s) Chars 4549 - 4558 [revert~t.] 0. secs (0.u,0.s) -Chars 4559 - 4571 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4559 - 4571 [coinduction.] 0.003 secs (0.002u,0.s) Chars 4572 - 4579 [(intros).] 0. secs (0.u,0.s) -Chars 4582 - 4626 [(rewrite~(itree_eta~t);~destru...] 0.018 secs (0.017u,0.s) +Chars 4582 - 4626 [(rewrite~(itree_eta~t);~destru...] 0.019 secs (0.019u,0.s) Chars 4629 - 4630 [-] 0. secs (0.u,0.s) Chars 4631 - 4670 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.037u,0.s) Chars 4674 - 4675 [-] 0. secs (0.u,0.s) -Chars 4676 - 4720 [(rewrite~unfold_interp,~2!unfo...] 0.051 secs (0.051u,0.s) +Chars 4676 - 4720 [(rewrite~unfold_interp,~2!unfo...] 0.053 secs (0.052u,0.s) Chars 4726 - 4731 [taus.] 0. secs (0.u,0.s) Chars 4732 - 4742 [(apply~CIH).] 0. secs (0.u,0.s) Chars 4746 - 4747 [-] 0. secs (0.u,0.s) -Chars 4748 - 4767 [(rewrite~interp_vis).] 0.019 secs (0.019u,0.s) -Chars 4772 - 4813 [(rewrite~(unfold_interp_mrec~_...] 0.019 secs (0.018u,0.s) +Chars 4748 - 4767 [(rewrite~interp_vis).] 0.018 secs (0.018u,0.s) +Chars 4772 - 4813 [(rewrite~(unfold_interp_mrec~_...] 0.018 secs (0.018u,0.s) Chars 4818 - 4842 [(destruct~e;~cbn;~to_mon).] 0.001 secs (0.001u,0.s) Chars 4848 - 4849 [+] 0. secs (0.u,0.s) -Chars 4850 - 4877 [(rewrite~2!interp_mrec_bind).] 0.038 secs (0.038u,0.s) +Chars 4850 - 4877 [(rewrite~2!interp_mrec_bind).] 0.037 secs (0.037u,0.s) Chars 4884 - 4889 [taus.] 0. secs (0.u,0.s) Chars 4897 - 4918 [(ebind;~intros;~subst).] 0.006 secs (0.006u,0.s) -Chars 4926 - 4969 [(rewrite~unfold_interp_mrec;~c...] 0.014 secs (0.014u,0.s) +Chars 4926 - 4969 [(rewrite~unfold_interp_mrec;~c...] 0.013 secs (0.013u,0.s) Chars 4975 - 4976 [+] 0. secs (0.u,0.s) Chars 4977 - 5063 [(unfold~inr_,~Handler.Inr_sum1...] 0. secs (0.u,0.s) -Chars 5070 - 5124 [(rewrite~bind_trigger,~unfold_...] 0.036 secs (0.036u,0.s) -Chars 5131 - 5150 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) +Chars 5070 - 5124 [(rewrite~bind_trigger,~unfold_...] 0.037 secs (0.037u,0.s) +Chars 5131 - 5150 [(rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) Chars 5157 - 5169 [constructor.] 0. secs (0.u,0.s) Chars 5176 - 5183 [(intros).] 0. secs (0.u,0.s) Chars 5184 - 5189 [step.] 0.002 secs (0.002u,0.s) Chars 5190 - 5195 [taus.] 0. secs (0.u,0.s) -Chars 5203 - 5235 [(rewrite~unfold_interp_mrec;~c...] 0.011 secs (0.011u,0.s) +Chars 5203 - 5235 [(rewrite~unfold_interp_mrec;~c...] 0.012 secs (0.012u,0.s) Chars 5242 - 5252 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5254 - 5258 [Qed.] 0.02 secs (0.02u,0.s) +Chars 5254 - 5258 [Qed.] 0.021 secs (0.021u,0.s) Chars 5260 - 5270 [End~Facts.] 0. secs (0.u,0.s) Chars 5272 - 5297 [#[local]~Opaque~interp_mrec.] 0. secs (0.u,0.s) Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0.001 secs (0.001u,0.s) Chars 5557 - 5563 [Proof.] 0. secs (0.u,0.s) Chars 5566 - 5583 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) Chars 5586 - 5615 [(coinduction;~intros~t1~t2~Ht).] 0.002 secs (0.002u,0.s) -Chars 5618 - 5647 [(rewrite~2!unfold_interp_mrec).] 0.03 secs (0.03u,0.s) +Chars 5618 - 5647 [(rewrite~2!unfold_interp_mrec).] 0.031 secs (0.031u,0.s) Chars 5650 - 5680 [(step~in~Ht;~induction~Ht;~cbn).] 0.002 secs (0.002u,0.s) Chars 5684 - 5688 [3:~{] 0. secs (0.u,0.s) Chars 5689 - 5713 [(destruct~e;~constructor).] 0. secs (0.u,0.s) @@ -190,8 +190,8 @@ Chars 5791 - 5810 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) Chars 5811 - 5833 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 5836 - 5837 [}] 0. secs (0.u,0.s) Chars 5840 - 5879 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) -Chars 5882 - 5940 [all:~(to_mon;~rewrite~unfold_i...] 0.041 secs (0.041u,0.s) -Chars 5941 - 5945 [Qed.] 0.012 secs (0.011u,0.s) +Chars 5882 - 5940 [all:~(to_mon;~rewrite~unfold_i...] 0.044 secs (0.043u,0.s) +Chars 5941 - 5945 [Qed.] 0.013 secs (0.012u,0.s) Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0.001 secs (0.001u,0.s) Chars 6195 - 6310 [Lemma~rec_as_interp~{E}~{A}~{B...] 0. secs (0.u,0.s) Chars 6311 - 6317 [Proof.] 0. secs (0.u,0.s) @@ -218,12 +218,12 @@ Chars 6967 - 6973 [Proof.] 0. secs (0.u,0.s) Chars 6976 - 6993 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) Chars 6996 - 7025 [(coinduction;~intros~t1~t2~Ht).] 0.003 secs (0.003u,0.s) Chars 7028 - 7057 [(rewrite~2!unfold_interp_mrec).] 0.018 secs (0.018u,0.s) -Chars 7060 - 7100 [(step~in~Ht;~induction~Ht;~try...] 0.116 secs (0.116u,0.s) +Chars 7060 - 7100 [(step~in~Ht;~induction~Ht;~try...] 0.118 secs (0.116u,0.s) Chars 7104 - 7108 [3:~{] 0. secs (0.u,0.s) Chars 7109 - 7133 [(destruct~e;~constructor).] 0. secs (0.u,0.s) Chars 7139 - 7140 [+] 0. secs (0.u,0.s) Chars 7141 - 7151 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7152 - 7158 [ebind.] 0.005 secs (0.005u,0.s) +Chars 7152 - 7158 [ebind.] 0.006 secs (0.006u,0.s) Chars 7159 - 7169 [(apply~Hfg).] 0. secs (0.u,0.s) Chars 7178 - 7192 [(intros~?~_~[]).] 0. secs (0.u,0.s) Chars 7193 - 7203 [(apply~REL).] 0. secs (0.u,0.s) @@ -232,8 +232,8 @@ Chars 7211 - 7230 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) Chars 7231 - 7253 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 7256 - 7257 [}] 0. secs (0.u,0.s) Chars 7260 - 7299 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) -Chars 7302 - 7360 [all:~(to_mon;~rewrite~unfold_i...] 0.02 secs (0.02u,0.s) -Chars 7361 - 7365 [Qed.] 0.011 secs (0.011u,0.s) +Chars 7302 - 7360 [all:~(to_mon;~rewrite~unfold_i...] 0.022 secs (0.021u,0.s) +Chars 7361 - 7365 [Qed.] 0.012 secs (0.012u,0.s) Chars 7367 - 7504 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 7505 - 7511 [Proof.] 0. secs (0.u,0.s) Chars 7514 - 7523 [(do~4~red).] 0. secs (0.u,0.s) diff --git a/theories/Interp/Traces.v.timing b/theories/Interp/Traces.v.timing index 841a870b..ec343ef6 100644 --- a/theories/Interp/Traces.v.timing +++ b/theories/Interp/Traces.v.timing @@ -1,5 +1,5 @@ Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.194 secs (0.173u,0.021s) +Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.205 secs (0.181u,0.023s) Chars 223 - 246 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0. secs (0.u,0.s) @@ -35,7 +35,7 @@ Chars 2466 - 2487 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) Chars 2492 - 2510 [(remember~(RetF~_)).] 0. secs (0.u,0.s) Chars 2511 - 2533 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 2538 - 2562 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2567 - 2638 [(induction~H;~intros;~try~inv~...] 0.009 secs (0.007u,0.002s) +Chars 2567 - 2638 [(induction~H;~intros;~try~inv~...] 0.01 secs (0.007u,0.002s) Chars 2643 - 2665 [(eapply~IHsuttF;~eauto).] 0. secs (0.u,0.s) Chars 2668 - 2669 [-] 0. secs (0.u,0.s) Chars 2670 - 2707 [(apply~IHis_traceF~with~(t1~:=...] 0.001 secs (0.001u,0.s) @@ -45,14 +45,14 @@ Chars 2742 - 2751 [(red~in~H).] 0. secs (0.u,0.s) Chars 2752 - 2773 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) Chars 2774 - 2779 [auto.] 0. secs (0.u,0.s) Chars 2782 - 2783 [-] 0. secs (0.u,0.s) -Chars 2784 - 2794 [step~in~H.] 0.026 secs (0.024u,0.001s) +Chars 2784 - 2794 [step~in~H.] 0. secs (0.u,0.s) Chars 2795 - 2816 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) -Chars 2821 - 2841 [(remember~(VisF~_~_)).] 0. secs (0.u,0.s) +Chars 2821 - 2841 [(remember~(VisF~_~_)).] 0.028 secs (0.026u,0.002s) Chars 2842 - 2864 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 2869 - 2893 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 2898 - 2936 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 2941 - 2942 [+] 0. secs (0.u,0.s) -Chars 2943 - 2951 [inv_Vis.] 0.009 secs (0.009u,0.s) +Chars 2943 - 2951 [inv_Vis.] 0.01 secs (0.01u,0.s) Chars 2952 - 2958 [subst.] 0. secs (0.u,0.s) Chars 2959 - 2963 [(red).] 0. secs (0.u,0.s) Chars 2964 - 2981 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) @@ -70,18 +70,18 @@ Chars 3122 - 3144 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 3149 - 3173 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 3178 - 3216 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 3221 - 3222 [+] 0. secs (0.u,0.s) -Chars 3223 - 3231 [inv_Vis.] 0.043 secs (0.043u,0.s) +Chars 3223 - 3231 [inv_Vis.] 0.045 secs (0.045u,0.s) Chars 3232 - 3238 [subst.] 0. secs (0.u,0.s) Chars 3239 - 3243 [(red).] 0. secs (0.u,0.s) Chars 3244 - 3261 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) Chars 3262 - 3274 [constructor.] 0. secs (0.u,0.s) -Chars 3281 - 3317 [(eapply~IHis_traceF;~auto~with...] 0. secs (0.u,0.s) +Chars 3281 - 3317 [(eapply~IHis_traceF;~auto~with...] 0.001 secs (0.001u,0.s) Chars 3322 - 3323 [+] 0. secs (0.u,0.s) Chars 3324 - 3328 [(red).] 0. secs (0.u,0.s) Chars 3329 - 3346 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) Chars 3347 - 3359 [constructor.] 0. secs (0.u,0.s) Chars 3360 - 3380 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) -Chars 3381 - 3385 [Qed.] 0.007 secs (0.007u,0.s) +Chars 3381 - 3385 [Qed.] 0.008 secs (0.008u,0.s) Chars 3387 - 3475 [Lemma~eutt_trace_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 3476 - 3482 [Proof.] 0. secs (0.u,0.s) Chars 3485 - 3491 [split.] 0. secs (0.u,0.s) @@ -91,7 +91,7 @@ Chars 3544 - 3545 [-] 0. secs (0.u,0.s) Chars 3546 - 3560 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 3561 - 3606 [(apply~sutt_trace_incl;~apply~...] 0. secs (0.u,0.s) Chars 3607 - 3611 [Qed.] 0. secs (0.u,0.s) -Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0. secs (0.u,0.s) +Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0.001 secs (0.001u,0.s) Chars 3973 - 3979 [Proof.] 0. secs (0.u,0.s) Chars 3982 - 4003 [(destruct~H,~t1;~auto).] 0. secs (0.u,0.s) Chars 4006 - 4007 [-] 0. secs (0.u,0.s) @@ -111,7 +111,7 @@ Chars 4304 - 4305 [-] 0. secs (0.u,0.s) Chars 4306 - 4387 [(assert~(H~:~is_traceF~(RetF~r...] 0. secs (0.u,0.s) Chars 4392 - 4409 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) Chars 4410 - 4422 [clear~Hincl.] 0. secs (0.u,0.s) -Chars 4423 - 4452 [(destruct~(observe~t2);~inv~H).] 0.029 secs (0.029u,0.s) +Chars 4423 - 4452 [(destruct~(observe~t2);~inv~H).] 0.031 secs (0.03u,0.s) Chars 4457 - 4458 [+] 0. secs (0.u,0.s) Chars 4459 - 4471 [constructor.] 0. secs (0.u,0.s) Chars 4472 - 4477 [auto.] 0. secs (0.u,0.s) @@ -120,7 +120,7 @@ Chars 4484 - 4496 [constructor.] 0. secs (0.u,0.s) Chars 4503 - 4524 [(remember~(observe~t)).] 0. secs (0.u,0.s) Chars 4525 - 4543 [(remember~(TRet~_)).] 0.001 secs (0.001u,0.s) Chars 4550 - 4573 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4580 - 4633 [(induction~H1;~intros;~try~inv...] 0.02 secs (0.02u,0.s) +Chars 4580 - 4633 [(induction~H1;~intros;~try~inv...] 0.021 secs (0.021u,0.s) Chars 4640 - 4652 [constructor.] 0. secs (0.u,0.s) Chars 4653 - 4679 [(eapply~IHis_traceF;~eauto).] 0. secs (0.u,0.s) Chars 4682 - 4683 [-] 0. secs (0.u,0.s) @@ -133,18 +133,18 @@ Chars 4742 - 4747 [auto.] 0. secs (0.u,0.s) Chars 4750 - 4751 [-] 0. secs (0.u,0.s) Chars 4752 - 4814 [(assert~(H~:~is_traceF~(VisF~e...] 0. secs (0.u,0.s) Chars 4819 - 4836 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) -Chars 4837 - 4866 [(destruct~(observe~t2);~inv~H).] 0.03 secs (0.03u,0.s) +Chars 4837 - 4866 [(destruct~(observe~t2);~inv~H).] 0.034 secs (0.034u,0.s) Chars 4871 - 4872 [+] 0. secs (0.u,0.s) Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) Chars 4892 - 4964 [(assert~(forall~tr,~is_traceF~...] 0. secs (0.u,0.s) Chars 4971 - 4972 [{] 0. secs (0.u,0.s) Chars 4981 - 4988 [(intros).] 0. secs (0.u,0.s) -Chars 4989 - 5011 [(rewrite~is_traceF_tau).] 0.002 secs (0.002u,0.s) +Chars 4989 - 5011 [(rewrite~is_traceF_tau).] 0. secs (0.u,0.s) Chars 5012 - 5030 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) Chars 5037 - 5038 [}] 0. secs (0.u,0.s) Chars 5045 - 5057 [clear~Hincl.] 0. secs (0.u,0.s) Chars 5058 - 5078 [rename~H~into~Hincl.] 0. secs (0.u,0.s) -Chars 5085 - 5106 [(remember~(observe~t)).] 0. secs (0.u,0.s) +Chars 5085 - 5106 [(remember~(observe~t)).] 0.002 secs (0.002u,0.s) Chars 5107 - 5130 [(remember~(TEventEnd~_)).] 0.001 secs (0.001u,0.s) Chars 5137 - 5160 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 5167 - 5206 [(induction~H1;~intros;~try~dis...] 0.001 secs (0.001u,0.s) @@ -155,7 +155,7 @@ Chars 5263 - 5270 [(intros).] 0. secs (0.u,0.s) Chars 5271 - 5293 [(rewrite~is_traceF_tau).] 0. secs (0.u,0.s) Chars 5294 - 5312 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) Chars 5319 - 5320 [*] 0. secs (0.u,0.s) -Chars 5321 - 5376 [(apply~eq_trace_inv~in~Heqt0;~...] 0.008 secs (0.008u,0.s) +Chars 5321 - 5376 [(apply~eq_trace_inv~in~Heqt0;~...] 0.009 secs (0.009u,0.s) Chars 5385 - 5391 [subst.] 0. secs (0.u,0.s) Chars 5392 - 5404 [constructor.] 0. secs (0.u,0.s) Chars 5405 - 5411 [intro.] 0. secs (0.u,0.s) @@ -167,7 +167,7 @@ Chars 5544 - 5551 [(inv~H1).] 0.009 secs (0.009u,0.s) Chars 5552 - 5565 [ddestruction.] 0.005 secs (0.004u,0.s) Chars 5566 - 5571 [auto.] 0. secs (0.u,0.s) Chars 5576 - 5577 [+] 0. secs (0.u,0.s) -Chars 5578 - 5591 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 5578 - 5591 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 5592 - 5604 [constructor.] 0. secs (0.u,0.s) Chars 5605 - 5611 [intro.] 0. secs (0.u,0.s) Chars 5612 - 5622 [(apply~CIH).] 0. secs (0.u,0.s) @@ -176,7 +176,7 @@ Chars 5637 - 5716 [(assert~(is_traceF~(VisF~e0~k)...] 0. secs (0.u,0.s) Chars 5723 - 5741 [(apply~Hincl~in~H0).] 0. secs (0.u,0.s) Chars 5742 - 5749 [(inv~H0).] 0.009 secs (0.009u,0.s) Chars 5750 - 5769 [(ddestruction;~auto).] 0.002 secs (0.002u,0.s) -Chars 5770 - 5774 [Qed.] 0.032 secs (0.032u,0.s) +Chars 5770 - 5774 [Qed.] 0.034 secs (0.034u,0.s) Chars 5776 - 5879 [Theorem~trace_incl_iff_sutt~:~...] 0. secs (0.u,0.s) Chars 5880 - 5886 [Proof.] 0. secs (0.u,0.s) Chars 5889 - 5895 [split.] 0. secs (0.u,0.s) @@ -199,7 +199,7 @@ Chars 6199 - 6223 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 6228 - 6246 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 6247 - 6263 [(intros~t1~t2~H0).] 0. secs (0.u,0.s) Chars 6264 - 6275 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6280 - 6324 [(induction~H0;~constructor;~ea...] 0.003 secs (0.003u,0.s) +Chars 6280 - 6324 [(induction~H0;~constructor;~ea...] 0.004 secs (0.004u,0.s) Chars 6329 - 6353 [(apply~(CIH~t0~(go~ot2))).] 0. secs (0.u,0.s) Chars 6354 - 6367 [(apply~EQTAUS).] 0. secs (0.u,0.s) Chars 6368 - 6372 [Qed.] 0.005 secs (0.005u,0.s) diff --git a/theories/Interp/TranslateFacts.v.timing b/theories/Interp/TranslateFacts.v.timing index 6541039a..32d8e969 100644 --- a/theories/Interp/TranslateFacts.v.timing +++ b/theories/Interp/TranslateFacts.v.timing @@ -1,6 +1,6 @@ -Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) +Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.007u,0.003s) Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.049 secs (0.04u,0.008s) +Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.052 secs (0.041u,0.011s) Chars 412 - 434 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 451 - 474 [Section~TranslateFacts.] 0. secs (0.u,0.s) Chars 477 - 506 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -9,10 +9,10 @@ Chars 531 - 552 [Context~(h~:~E~~>~F).] 0. secs (0.u,0.s) Chars 554 - 707 [Lemma~unfold_translate_~:~~~fo...] 0. secs (0.u,0.s) Chars 708 - 714 [Proof.] 0. secs (0.u,0.s) Chars 717 - 726 [(intros~t).] 0. secs (0.u,0.s) -Chars 727 - 740 [econstructor.] 0.02 secs (0.018u,0.001s) +Chars 727 - 740 [econstructor.] 0. secs (0.u,0.s) Chars 741 - 753 [reflexivity.] 0. secs (0.u,0.s) Chars 754 - 758 [Qed.] 0. secs (0.u,0.s) -Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0. secs (0.u,0.s) +Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0.021 secs (0.019u,0.002s) Chars 910 - 916 [Proof.] 0. secs (0.u,0.s) Chars 919 - 926 [(intros).] 0. secs (0.u,0.s) Chars 927 - 953 [(rewrite~unfold_translate_).] 0.002 secs (0.002u,0.s) @@ -21,21 +21,21 @@ Chars 967 - 971 [Qed.] 0. secs (0.u,0.s) Chars 973 - 1039 [Lemma~translate_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 1040 - 1046 [Proof.] 0. secs (0.u,0.s) Chars 1049 - 1058 [(intros~r).] 0. secs (0.u,0.s) -Chars 1061 - 1086 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) +Chars 1061 - 1086 [(rewrite~unfold_translate).] 0.002 secs (0.002u,0.s) Chars 1087 - 1091 [(cbn).] 0. secs (0.u,0.s) Chars 1092 - 1104 [reflexivity.] 0. secs (0.u,0.s) Chars 1105 - 1109 [Qed.] 0. secs (0.u,0.s) Chars 1111 - 1201 [Lemma~translate_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 1202 - 1208 [Proof.] 0. secs (0.u,0.s) Chars 1211 - 1220 [(intros~t).] 0. secs (0.u,0.s) -Chars 1223 - 1248 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) +Chars 1223 - 1248 [(rewrite~unfold_translate).] 0.002 secs (0.002u,0.s) Chars 1249 - 1253 [(cbn).] 0. secs (0.u,0.s) Chars 1254 - 1266 [reflexivity.] 0. secs (0.u,0.s) Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) Chars 1273 - 1405 [Lemma~translate_vis~:~~~forall...] 0. secs (0.u,0.s) Chars 1406 - 1412 [Proof.] 0. secs (0.u,0.s) Chars 1415 - 1428 [(intros~X~e~k).] 0. secs (0.u,0.s) -Chars 1431 - 1456 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) +Chars 1431 - 1456 [(rewrite~unfold_translate).] 0.002 secs (0.002u,0.s) Chars 1457 - 1461 [(cbn).] 0. secs (0.u,0.s) Chars 1462 - 1474 [reflexivity.] 0. secs (0.u,0.s) Chars 1475 - 1479 [Qed.] 0. secs (0.u,0.s) @@ -46,15 +46,15 @@ Chars 1601 - 1614 [revert~x~y~H.] 0. secs (0.u,0.s) Chars 1615 - 1634 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 1635 - 1642 [(intros).] 0. secs (0.u,0.s) Chars 1646 - 1653 [to_mon.] 0. secs (0.u,0.s) -Chars 1657 - 1683 [(rewrite~!unfold_translate).] 0.063 secs (0.063u,0.s) +Chars 1657 - 1683 [(rewrite~!unfold_translate).] 0.066 secs (0.065u,0.s) Chars 1686 - 1696 [step~in~H.] 0. secs (0.u,0.s) -Chars 1699 - 1745 [(induction~H;~simpobs;~simpl;~...] 0.016 secs (0.013u,0.003s) +Chars 1699 - 1745 [(induction~H;~simpobs;~simpl;~...] 0.017 secs (0.013u,0.003s) Chars 1748 - 1752 [Qed.] 0.009 secs (0.007u,0.002s) Chars 1754 - 1887 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) Chars 1897 - 1908 [(repeat~red).] 0. secs (0.u,0.s) Chars 1909 - 1916 [(intros).] 0. secs (0.u,0.s) -Chars 1919 - 1983 [(rewrite~(itree_eta'~x),~(itre...] 0.011 secs (0.009u,0.001s) +Chars 1919 - 1983 [(rewrite~(itree_eta'~x),~(itre...] 0.012 secs (0.01u,0.002s) Chars 1986 - 2004 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 2005 - 2009 [Qed.] 0.001 secs (0.001u,0.s) Chars 2011 - 2030 [End~TranslateFacts.] 0. secs (0.u,0.s) @@ -65,9 +65,9 @@ Chars 2237 - 2250 [revert~S~t~k.] 0. secs (0.u,0.s) Chars 2253 - 2272 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 2276 - 2289 [(intros~s~t~k).] 0. secs (0.u,0.s) Chars 2290 - 2297 [to_mon.] 0. secs (0.u,0.s) -Chars 2301 - 2393 [(match~goal~with~~|~|-~_~?t1~?...] 0.029 secs (0.029u,0.s) +Chars 2301 - 2393 [(match~goal~with~~|~|-~_~?t1~?...] 0.032 secs (0.031u,0.s) Chars 2396 - 2416 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) -Chars 2419 - 2463 [(destruct~(observe~t);~cbn;~ea...] 0.004 secs (0.004u,0.s) +Chars 2419 - 2463 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.004u,0.s) Chars 2465 - 2469 [Qed.] 0.008 secs (0.008u,0.s) Chars 2471 - 2546 [Lemma~translate_id~:~forall~E~...] 0. secs (0.u,0.s) Chars 2547 - 2553 [Proof.] 0. secs (0.u,0.s) @@ -78,9 +78,9 @@ Chars 2603 - 2610 [(intros).] 0. secs (0.u,0.s) Chars 2754 - 2776 [(rewrite~(itree_eta~t)).] 0.013 secs (0.013u,0.s) Chars 2779 - 2804 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) Chars 2807 - 2825 [(unfold~translateF).] 0. secs (0.u,0.s) -Chars 2828 - 2846 [(rewrite~itree_eta).] 0.014 secs (0.014u,0.s) +Chars 2828 - 2846 [(rewrite~itree_eta).] 0.017 secs (0.016u,0.s) Chars 2849 - 2899 [(destruct~(observe~t);~cbn;~tr...] 0.001 secs (0.001u,0.s) -Chars 2902 - 2906 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2902 - 2906 [Qed.] 0.006 secs (0.006u,0.s) Chars 2908 - 2928 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0.001 secs (0.001u,0.s) Chars 3074 - 3080 [Proof.] 0. secs (0.u,0.s) @@ -88,13 +88,13 @@ Chars 3083 - 3104 [(intros~E~F~G~R~g~f~t).] 0. secs (0.u,0.s) Chars 3107 - 3116 [revert~t.] 0. secs (0.u,0.s) Chars 3119 - 3137 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3138 - 3145 [(intros).] 0. secs (0.u,0.s) -Chars 3149 - 3175 [(rewrite~!unfold_translate).] 0.091 secs (0.091u,0.s) +Chars 3149 - 3175 [(rewrite~!unfold_translate).] 0.095 secs (0.095u,0.s) Chars 3178 - 3196 [(genobs_clear~t~ot).] 0.001 secs (0.001u,0.s) Chars 3197 - 3238 [(destruct~ot;~cbn;~try~constru...] 0.001 secs (0.001u,0.s) Chars 3240 - 3244 [Qed.] 0.006 secs (0.006u,0.s) Chars 3246 - 3419 [Definition~respectful_eq_itree...] 0. secs (0.u,0.s) Chars 3421 - 3582 [Definition~respectful_eutt~{E~...] 0. secs (0.u,0.s) -Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.004 secs (0.003u,0.s) +Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.004 secs (0.004u,0.s) Chars 3784 - 3967 [#[global]~Instance~eq_itree_ap...] 0. secs (0.u,0.s) Chars 3968 - 3974 [Proof.] 0. secs (0.u,0.s) Chars 3977 - 3988 [(repeat~red).] 0. secs (0.u,0.s) @@ -108,7 +108,7 @@ Chars 4204 - 4215 [(repeat~red).] 0. secs (0.u,0.s) Chars 4216 - 4223 [(intros).] 0. secs (0.u,0.s) Chars 4224 - 4240 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 4241 - 4247 [eauto.] 0. secs (0.u,0.s) -Chars 4248 - 4252 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4248 - 4252 [Qed.] 0. secs (0.u,0.s) Chars 4254 - 4409 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 4410 - 4416 [Proof.] 0. secs (0.u,0.s) Chars 4419 - 4436 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) @@ -116,19 +116,19 @@ Chars 4439 - 4457 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 4458 - 4465 [(intros).] 0. secs (0.u,0.s) Chars 4469 - 4496 [(rewrite~2!unfold_translate).] 0.033 secs (0.033u,0.s) Chars 4499 - 4509 [step~in~H.] 0. secs (0.u,0.s) -Chars 4513 - 4574 [(destruct~H;~cbn;~try~easy;~tr...] 0.073 secs (0.073u,0.s) -Chars 4576 - 4580 [Qed.] 0.009 secs (0.008u,0.s) +Chars 4513 - 4574 [(destruct~H;~cbn;~try~easy;~tr...] 0.072 secs (0.072u,0.s) +Chars 4576 - 4580 [Qed.] 0.008 secs (0.008u,0.s) Chars 4582 - 4729 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) Chars 4730 - 4736 [Proof.] 0. secs (0.u,0.s) Chars 4739 - 4750 [(repeat~red).] 0. secs (0.u,0.s) Chars 4753 - 4768 [intros~until~T.] 0. secs (0.u,0.s) Chars 4771 - 4789 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 4790 - 4797 [(intros).] 0. secs (0.u,0.s) -Chars 4800 - 4826 [(rewrite~!unfold_translate).] 0.03 secs (0.03u,0.s) +Chars 4800 - 4826 [(rewrite~!unfold_translate).] 0.031 secs (0.031u,0.s) Chars 4827 - 4838 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4842 - 4887 [(induction~H0;~subst;~simpl;~e...] 0.009 secs (0.009u,0.s) +Chars 4842 - 4887 [(induction~H0;~subst;~simpl;~e...] 0.01 secs (0.01u,0.s) Chars 4891 - 4892 [-] 0. secs (0.u,0.s) -Chars 4893 - 4903 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 4893 - 4903 [(rewrite~H).] 0.002 secs (0.002u,0.s) Chars 4904 - 4917 [econstructor.] 0. secs (0.u,0.s) Chars 4918 - 4935 [eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 4936 - 4940 [Qed.] 0.008 secs (0.008u,0.s) @@ -144,7 +144,7 @@ Chars 5351 - 5360 [(intros~*).] 0. secs (0.u,0.s) Chars 5363 - 5374 [revert~t~s.] 0. secs (0.u,0.s) Chars 5377 - 5395 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 5396 - 5403 [(intros).] 0. secs (0.u,0.s) -Chars 5407 - 5433 [(rewrite~!unfold_translate).] 0.032 secs (0.032u,0.s) +Chars 5407 - 5433 [(rewrite~!unfold_translate).] 0.032 secs (0.031u,0.s) Chars 5434 - 5444 [step~in~H.] 0. secs (0.u,0.s) Chars 5448 - 5500 [(induction~H;~intros;~subst;~s...] 0.005 secs (0.005u,0.s) Chars 5502 - 5506 [Qed.] 0.007 secs (0.007u,0.s) @@ -155,9 +155,9 @@ Chars 5747 - 5751 [Qed.] 0.002 secs (0.002u,0.s) Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0.002 secs (0.002u,0.s) Chars 5984 - 5990 [Proof.] 0. secs (0.u,0.s) Chars 5993 - 6000 [(intros).] 0. secs (0.u,0.s) -Chars 6001 - 6028 [(rewrite~(itree_eta~t)~in~H).] 0.013 secs (0.012u,0.s) +Chars 6001 - 6028 [(rewrite~(itree_eta~t)~in~H).] 0.013 secs (0.013u,0.s) Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.004 secs (0.004u,0.s) -Chars 6061 - 6126 [(desobs~t~Ht;~clear~t~Ht;~rewr...] 0.042 secs (0.041u,0.s) +Chars 6061 - 6126 [(desobs~t~Ht;~clear~t~Ht;~rewr...] 0.043 secs (0.043u,0.s) Chars 6129 - 6130 [-] 0. secs (0.u,0.s) Chars 6131 - 6147 [(step~in~H;~easy).] 0.002 secs (0.002u,0.s) Chars 6151 - 6152 [-] 0. secs (0.u,0.s) @@ -167,5 +167,5 @@ Chars 6173 - 6211 [(apply~eqitree_inv_Vis_r~in~H;...] 0. secs (0.u,0.s) Chars 6217 - 6226 [(cbn~in~H).] 0. secs (0.u,0.s) Chars 6227 - 6235 [inv_Vis.] 0.001 secs (0.001u,0.s) Chars 6241 - 6253 [exists~e,k.] 0. secs (0.u,0.s) -Chars 6254 - 6271 [(repeat~now~split).] 0.002 secs (0.002u,0.s) +Chars 6254 - 6271 [(repeat~now~split).] 0.001 secs (0.001u,0.s) Chars 6273 - 6277 [Qed.] 0.011 secs (0.011u,0.s) diff --git a/theories/Props/Cofinite.v.timing b/theories/Props/Cofinite.v.timing index c0f673cf..98f33ed8 100644 --- a/theories/Props/Cofinite.v.timing +++ b/theories/Props/Cofinite.v.timing @@ -1,4 +1,4 @@ -Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.225 secs (0.198u,0.027s) +Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.242 secs (0.21u,0.031s) Chars 133 - 169 [From~Coinduction~Require~Impor...] 0.001 secs (0.001u,0.s) Chars 171 - 273 [Theorem~not_all_infinite_any_f...] 0. secs (0.u,0.s) Chars 274 - 280 [Proof.] 0. secs (0.u,0.s) @@ -7,14 +7,14 @@ Chars 297 - 449 [(induction~H2;~apply~(gfp_fp~a...] 0.007 secs (0.005u,0.001s) Chars 452 - 500 [all:~(rewrite~H~in~H0;~inversi...] 0.002 secs (0.002u,0.s) Chars 503 - 516 [ddestruction.] 0.003 secs (0.002u,0.s) Chars 517 - 545 [exact~(IHany_finite~(H3~_)).] 0. secs (0.u,0.s) -Chars 546 - 550 [Qed.] 0.039 secs (0.036u,0.002s) +Chars 546 - 550 [Qed.] 0.043 secs (0.038u,0.004s) Chars 552 - 654 [Theorem~not_any_infinite_all_f...] 0. secs (0.u,0.s) Chars 655 - 661 [Proof.] 0. secs (0.u,0.s) -Chars 664 - 830 [(intros~H1~H2;~induction~H2;~a...] 0.004 secs (0.004u,0.s) +Chars 664 - 830 [(intros~H1~H2;~induction~H2;~a...] 0.005 secs (0.005u,0.s) Chars 833 - 834 [-] 0. secs (0.u,0.s) Chars 835 - 878 [(rewrite~H~in~H0;~inversion~H0...] 0. secs (0.u,0.s) Chars 881 - 882 [-] 0. secs (0.u,0.s) Chars 883 - 899 [(rewrite~H~in~H3).] 0. secs (0.u,0.s) -Chars 900 - 934 [(inversion~H3;~subst;~ddestruc...] 0.002 secs (0.002u,0.s) +Chars 900 - 934 [(inversion~H3;~subst;~ddestruc...] 0.003 secs (0.003u,0.s) Chars 939 - 955 [exact~(H2~_~H4).] 0. secs (0.u,0.s) Chars 956 - 960 [Qed.] 0.005 secs (0.005u,0.s) diff --git a/theories/Props/EuttNoRet.v.timing b/theories/Props/EuttNoRet.v.timing index 6e1959b8..fde477f5 100644 --- a/theories/Props/EuttNoRet.v.timing +++ b/theories/Props/EuttNoRet.v.timing @@ -1,269 +1,269 @@ -Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 45 - 147 [From~ITree~Require~Import~Axio...] 0.225 secs (0.199u,0.025s) -Chars 149 - 185 [From~Coinduction~Require~Impor...] 0.001 secs (0.u,0.s) -Chars 187 - 201 [Import~Monads.] 0. secs (0.u,0.s) -Chars 202 - 223 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 224 - 256 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 258 - 281 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 559 - 667 [Definition~euttNoRet~{E}~{A~B~...] 0. secs (0.u,0.s) -Chars 670 - 772 [Lemma~euttNoRet_spin~:~~~foral...] 0. secs (0.u,0.s) -Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 789 [(intros).] 0. secs (0.u,0.s) -Chars 790 - 807 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 808 - 827 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.001s) -Chars 828 - 832 [(cbn).] 0. secs (0.u,0.s) -Chars 833 - 845 [constructor.] 0. secs (0.u,0.s) -Chars 846 - 856 [exact~CIH.] 0. secs (0.u,0.s) -Chars 857 - 861 [Qed.] 0.004 secs (0.003u,0.001s) -Chars 863 - 1007 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) -Chars 1008 - 1014 [Proof.] 0. secs (0.u,0.s) -Chars 1017 - 1030 [(intros~E~A~B).] 0. secs (0.u,0.s) -Chars 1031 - 1048 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 1049 - 1068 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) -Chars 1069 - 1085 [(intros~t~f~Hdiv).] 0. secs (0.u,0.s) -Chars 1088 - 1128 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 1131 - 1166 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 1167 - 1196 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) -Chars 1199 - 1221 [(inversion~Hdiv;~subst).] 0.031 secs (0.029u,0.002s) -Chars 1224 - 1225 [-] 0. secs (0.u,0.s) -Chars 1226 - 1251 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 1256 - 1277 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 1278 - 1291 [(rewrite~<-~H).] 0. secs (0.u,0.s) -Chars 1292 - 1296 [(cbn).] 0. secs (0.u,0.s) -Chars 1297 - 1309 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 1314 - 1363 [(change~(ITree.subst~f~t0)~wit...] 0. secs (0.u,0.s) -Chars 1368 - 1378 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 1379 - 1384 [auto.] 0. secs (0.u,0.s) -Chars 1387 - 1388 [-] 0. secs (0.u,0.s) -Chars 1389 - 1414 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 1419 - 1440 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 1441 - 1454 [(rewrite~<-~H).] 0. secs (0.u,0.s) -Chars 1455 - 1459 [(cbn).] 0. secs (0.u,0.s) -Chars 1460 - 1472 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 1477 - 1486 [(intros~v).] 0. secs (0.u,0.s) -Chars 1487 - 1542 [(change~(ITree.subst~f~(k~v))~...] 0. secs (0.u,0.s) -Chars 1547 - 1557 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 1558 - 1567 [(apply~H0).] 0. secs (0.u,0.s) -Chars 1568 - 1572 [Qed.] 0.007 secs (0.007u,0.s) -Chars 1577 - 1766 [Lemma~euttNoRet_subrel~:~~~for...] 0. secs (0.u,0.s) -Chars 1767 - 1773 [Proof.] 0. secs (0.u,0.s) -Chars 1776 - 1783 [(intros).] 0. secs (0.u,0.s) -Chars 1786 - 1904 [(eapply~eqit_mono~with~(b1~:=~...] 0.002 secs (0.002u,0.s) -Chars 1905 - 1909 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1911 - 2121 [Lemma~all_infinite_euttNoRet~:...] 0. secs (0.u,0.s) -Chars 2122 - 2128 [Proof.] 0. secs (0.u,0.s) -Chars 2131 - 2146 [(intros~E~A~B~R).] 0. secs (0.u,0.s) -Chars 2147 - 2164 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 2165 - 2184 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 2185 - 2209 [(intros~ta~tb~Hdiv~Heutt).] 0. secs (0.u,0.s) -Chars 2212 - 2226 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 2227 - 2255 [(cbn[eqit_mon~body]~in~Heutt).] 0. secs (0.u,0.s) -Chars 2256 - 2278 [(unfold~eqit_~in~Heutt).] 0. secs (0.u,0.s) -Chars 2281 - 2300 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) -Chars 2301 - 2314 [(unfold~eqit_).] 0. secs (0.u,0.s) -Chars 2317 - 2357 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 2360 - 2395 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2396 - 2425 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2428 - 2454 [dependent~induction~Heutt.] 0.059 secs (0.059u,0.s) -Chars 2457 - 2458 [-] 0. secs (0.u,0.s) -Chars 2459 - 2467 [exfalso.] 0. secs (0.u,0.s) -Chars 2468 - 2490 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2491 - 2506 [(inversion~Hdiv).] 0. secs (0.u,0.s) -Chars 2509 - 2510 [-] 0. secs (0.u,0.s) -Chars 2511 - 2525 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 2526 - 2539 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 2540 - 2552 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 2553 - 2563 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2568 - 2569 [+] 0. secs (0.u,0.s) -Chars 2570 - 2592 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2593 - 2615 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) -Chars 2616 - 2621 [auto.] 0. secs (0.u,0.s) -Chars 2626 - 2627 [+] 0. secs (0.u,0.s) -Chars 2628 - 2633 [auto.] 0. secs (0.u,0.s) -Chars 2636 - 2637 [-] 0. secs (0.u,0.s) -Chars 2638 - 2652 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 2653 - 2666 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 2667 - 2679 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 2680 - 2689 [(intros~v).] 0. secs (0.u,0.s) -Chars 2690 - 2700 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2705 - 2706 [+] 0. secs (0.u,0.s) -Chars 2707 - 2729 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2730 - 2752 [(inversion~Hdiv;~subst).] 0.001 secs (0.001u,0.s) -Chars 2753 - 2766 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 2767 - 2776 [(apply~H0).] 0. secs (0.u,0.s) -Chars 2781 - 2782 [+] 0. secs (0.u,0.s) -Chars 2783 - 2793 [(apply~REL).] 0. secs (0.u,0.s) -Chars 2796 - 2797 [-] 0. secs (0.u,0.s) -Chars 2798 - 2811 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 2812 - 2831 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 2832 - 2852 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) -Chars 2857 - 2878 [(rewrite~<-~x~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2879 - 2901 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) -Chars 2906 - 2944 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 2949 - 2982 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2983 - 3010 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) -Chars 3011 - 3020 [exact~H0.] 0. secs (0.u,0.s) -Chars 3023 - 3024 [-] 0. secs (0.u,0.s) -Chars 3025 - 3038 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3039 - 3058 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 3059 - 3063 [Qed.] 0.032 secs (0.032u,0.s) -Chars 3070 - 3214 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) -Chars 3215 - 3221 [Proof.] 0. secs (0.u,0.s) -Chars 3224 - 3237 [(intros~E~A~B).] 0. secs (0.u,0.s) -Chars 3238 - 3258 [(unfold~all_infinite).] 0. secs (0.u,0.s) -Chars 3259 - 3277 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3278 - 3293 [(intros~t1~t2~H).] 0. secs (0.u,0.s) -Chars 3296 - 3323 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 3324 - 3345 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 3348 - 3370 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) -Chars 3371 - 3381 [step~in~H.] 0. secs (0.u,0.s) -Chars 3382 - 3406 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) -Chars 3407 - 3425 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) -Chars 3428 - 3469 [(dependent~induction~H;~try~co...] 0.018 secs (0.018u,0.s) -Chars 3472 - 3473 [-] 0. secs (0.u,0.s) -Chars 3474 - 3488 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 3489 - 3501 [constructor.] 0. secs (0.u,0.s) -Chars 3502 - 3528 [(apply~CIH~with~(t2~:=~m2)).] 0. secs (0.u,0.s) -Chars 3529 - 3546 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 3547 - 3552 [auto.] 0. secs (0.u,0.s) -Chars 3555 - 3556 [-] 0. secs (0.u,0.s) -Chars 3557 - 3571 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 3572 - 3584 [constructor.] 0. secs (0.u,0.s) -Chars 3585 - 3594 [(intros~v).] 0. secs (0.u,0.s) -Chars 3595 - 3623 [(apply~CIH~with~(t2~:=~k2~v)).] 0. secs (0.u,0.s) -Chars 3628 - 3645 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 3646 - 3656 [(apply~REL).] 0. secs (0.u,0.s) -Chars 3659 - 3660 [-] 0. secs (0.u,0.s) -Chars 3661 - 3674 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3675 - 3687 [constructor.] 0. secs (0.u,0.s) -Chars 3688 - 3714 [(apply~CIH~with~(t2~:=~t2)).] 0. secs (0.u,0.s) -Chars 3715 - 3732 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 3737 - 3742 [step.] 0.001 secs (0.001u,0.s) -Chars 3743 - 3762 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) -Chars 3763 - 3776 [(unfold~eqit_).] 0. secs (0.u,0.s) -Chars 3777 - 3782 [auto.] 0. secs (0.u,0.s) -Chars 3785 - 3786 [-] 0. secs (0.u,0.s) -Chars 3787 - 3809 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 3810 - 3814 [Qed.] 0.011 secs (0.011u,0.s) -Chars 3817 - 3952 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) -Chars 3953 - 3959 [Proof.] 0. secs (0.u,0.s) -Chars 3962 - 3975 [(intros~E~A~B).] 0. secs (0.u,0.s) -Chars 3976 - 3993 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 3994 - 4013 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 4014 - 4029 [(intros~t1~t2~H).] 0. secs (0.u,0.s) -Chars 4032 - 4054 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) -Chars 4055 - 4065 [step~in~H.] 0. secs (0.u,0.s) -Chars 4066 - 4090 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) -Chars 4091 - 4109 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) -Chars 4112 - 4153 [(dependent~induction~H;~try~co...] 0.028 secs (0.028u,0.s) -Chars 4156 - 4157 [-] 0. secs (0.u,0.s) -Chars 4158 - 4172 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 4173 - 4186 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4187 - 4199 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 4200 - 4210 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4211 - 4216 [auto.] 0. secs (0.u,0.s) -Chars 4219 - 4220 [-] 0. secs (0.u,0.s) -Chars 4221 - 4235 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 4236 - 4249 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4250 - 4262 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 4263 - 4272 [(intros~v).] 0. secs (0.u,0.s) -Chars 4273 - 4283 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4284 - 4294 [(apply~REL).] 0. secs (0.u,0.s) -Chars 4297 - 4298 [-] 0. secs (0.u,0.s) -Chars 4299 - 4312 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4313 - 4332 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 4335 - 4336 [-] 0. secs (0.u,0.s) -Chars 4337 - 4350 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4351 - 4370 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 4371 - 4375 [Qed.] 0.03 secs (0.03u,0.s) -Chars 4377 - 4559 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) -Chars 4560 - 4566 [Proof.] 0. secs (0.u,0.s) -Chars 4569 - 4576 [(intros).] 0. secs (0.u,0.s) -Chars 4577 - 4626 [(apply~noret_bind_nop~with~(B~...] 0. secs (0.u,0.s) -Chars 4629 - 4654 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 4655 - 4689 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 4690 - 4695 [auto.] 0. secs (0.u,0.s) -Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) -Chars 4707 - 4913 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) -Chars 4914 - 4920 [Proof.] 0. secs (0.u,0.s) -Chars 4923 - 4930 [(intros).] 0. secs (0.u,0.s) -Chars 4931 - 4953 [(unfold~euttNoRet~in~*).] 0. secs (0.u,0.s) -Chars 4956 - 5083 [(eapply~eqit_mono~with~(b1~:=~...] 0.003 secs (0.003u,0.s) -Chars 5086 - 5087 [-] 0. secs (0.u,0.s) -Chars 5088 - 5102 [(intros~x~y~Hc).] 0. secs (0.u,0.s) -Chars 5103 - 5131 [(inversion~Hc;~contradiction).] 0. secs (0.u,0.s) -Chars 5134 - 5135 [-] 0. secs (0.u,0.s) -Chars 5136 - 5161 [(eapply~eqit_trans;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5162 - 5166 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5169 - 5288 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 5289 - 5295 [Proof.] 0. secs (0.u,0.s) -Chars 5298 - 5327 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) -Chars 5328 - 5342 [(split;~intros).] 0. secs (0.u,0.s) -Chars 5345 - 5346 [-] 0. secs (0.u,0.s) -Chars 5347 - 5388 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5389 - 5414 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 5420 - 5461 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5466 - 5504 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 5509 - 5510 [+] 0. secs (0.u,0.s) -Chars 5511 - 5549 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 5556 - 5557 [*] 0. secs (0.u,0.s) -Chars 5558 - 5578 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 5579 - 5616 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) -Chars 5623 - 5624 [*] 0. secs (0.u,0.s) -Chars 5625 - 5645 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 5646 - 5651 [auto.] 0. secs (0.u,0.s) -Chars 5656 - 5657 [+] 0. secs (0.u,0.s) -Chars 5658 - 5695 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) -Chars 5698 - 5699 [-] 0. secs (0.u,0.s) -Chars 5700 - 5741 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5747 - 5772 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 5773 - 5814 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5819 - 5844 [(assert~(euttNoRet~t1~t2)).] 0. secs (0.u,0.s) -Chars 5849 - 5850 [{] 0. secs (0.u,0.s) -Chars 5858 - 5878 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 5879 - 5903 [(apply~eutt_flip~in~Ht12).] 0. secs (0.u,0.s) -Chars 5911 - 5948 [(eapply~all_infinite_euttNoRet...] 0.003 secs (0.003u,0.s) -Chars 5953 - 5954 [}] 0. secs (0.u,0.s) -Chars 5959 - 5984 [(assert~(euttNoRet~t3~t4)).] 0. secs (0.u,0.s) -Chars 5989 - 5990 [{] 0. secs (0.u,0.s) -Chars 5997 - 6017 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 6018 - 6042 [(apply~eutt_flip~in~Ht34).] 0. secs (0.u,0.s) -Chars 6049 - 6086 [(eapply~all_infinite_euttNoRet...] 0.002 secs (0.002u,0.s) -Chars 6091 - 6092 [}] 0. secs (0.u,0.s) -Chars 6097 - 6122 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 6127 - 6165 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 6170 - 6171 [+] 0. secs (0.u,0.s) -Chars 6172 - 6216 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 6221 - 6222 [+] 0. secs (0.u,0.s) -Chars 6223 - 6243 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 6244 - 6249 [auto.] 0. secs (0.u,0.s) -Chars 6250 - 6254 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6256 - 6345 [Definition~noret_cast~{E}~{A}~...] 0. secs (0.u,0.s) -Chars 6347 - 6465 [Lemma~noret_cast_nop~:~~~foral...] 0. secs (0.u,0.s) -Chars 6466 - 6472 [Proof.] 0. secs (0.u,0.s) -Chars 6475 - 6482 [(intros).] 0. secs (0.u,0.s) -Chars 6483 - 6506 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 6507 - 6528 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) -Chars 6529 - 6534 [auto.] 0. secs (0.u,0.s) -Chars 6535 - 6539 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6541 - 6648 [#[global]~Instance~proper_nore...] 0. secs (0.u,0.s) -Chars 6649 - 6655 [Proof.] 0. secs (0.u,0.s) -Chars 6658 - 6677 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 6678 - 6696 [(unfold~noret_cast).] 0. secs (0.u,0.s) -Chars 6697 - 6701 [(cbn).] 0. secs (0.u,0.s) -Chars 6702 - 6716 [(rewrite~Heutt).] 0.003 secs (0.003u,0.s) -Chars 6717 - 6729 [reflexivity.] 0. secs (0.u,0.s) -Chars 6730 - 6734 [Qed.] 0.003 secs (0.003u,0.s) -Chars 6736 - 6939 [Ltac~~infer_noret~H~:=~~~match...] 0. secs (0.u,0.s) -Chars 6941 - 7120 [Lemma~noret_cast_cast~E~(A~B~:...] 0. secs (0.u,0.s) -Chars 7121 - 7127 [Proof.] 0. secs (0.u,0.s) -Chars 7130 - 7137 [(intros).] 0. secs (0.u,0.s) -Chars 7138 - 7161 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 7164 - 7205 [(apply~all_infinite_euttNoRet~...] 0.001 secs (0.001u,0.s) -Chars 7208 - 7223 [(infer_noret~H0).] 0. secs (0.u,0.s) -Chars 7226 - 7296 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 7299 - 7343 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 7346 - 7366 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 7367 - 7388 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) -Chars 7389 - 7394 [auto.] 0. secs (0.u,0.s) -Chars 7395 - 7399 [Qed.] 0.001 secs (0.001u,0.s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 83 - 185 [From~ITree~Require~Import~Axio...] 0.235 secs (0.206u,0.027s) +Chars 188 - 202 [Import~Monads.] 0. secs (0.u,0.s) +Chars 203 - 224 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 225 - 257 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 259 - 282 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 560 - 668 [Definition~euttNoRet~{E}~{A~B~...] 0. secs (0.u,0.s) +Chars 671 - 773 [Lemma~euttNoRet_spin~:~~~foral...] 0. secs (0.u,0.s) +Chars 774 - 780 [Proof.] 0. secs (0.u,0.s) +Chars 783 - 790 [(intros).] 0. secs (0.u,0.s) +Chars 791 - 808 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 809 - 828 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) +Chars 829 - 833 [(cbn).] 0. secs (0.u,0.s) +Chars 834 - 846 [constructor.] 0. secs (0.u,0.s) +Chars 847 - 857 [exact~CIH.] 0. secs (0.u,0.s) +Chars 858 - 862 [Qed.] 0.005 secs (0.003u,0.001s) +Chars 864 - 1008 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) +Chars 1009 - 1015 [Proof.] 0. secs (0.u,0.s) +Chars 1018 - 1031 [(intros~E~A~B).] 0. secs (0.u,0.s) +Chars 1032 - 1049 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 1050 - 1069 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) +Chars 1070 - 1086 [(intros~t~f~Hdiv).] 0. secs (0.u,0.s) +Chars 1089 - 1129 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 1132 - 1167 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 1168 - 1197 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) +Chars 1200 - 1222 [(inversion~Hdiv;~subst).] 0.003 secs (0.002u,0.s) +Chars 1225 - 1226 [-] 0.031 secs (0.028u,0.003s) +Chars 1227 - 1252 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 1257 - 1278 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 1279 - 1292 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 1293 - 1297 [(cbn).] 0. secs (0.u,0.s) +Chars 1298 - 1310 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 1315 - 1364 [(change~(ITree.subst~f~t0)~wit...] 0. secs (0.u,0.s) +Chars 1369 - 1379 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 1380 - 1385 [auto.] 0. secs (0.u,0.s) +Chars 1388 - 1389 [-] 0. secs (0.u,0.s) +Chars 1390 - 1415 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) +Chars 1420 - 1441 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 1442 - 1455 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 1456 - 1460 [(cbn).] 0. secs (0.u,0.s) +Chars 1461 - 1473 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 1478 - 1487 [(intros~v).] 0. secs (0.u,0.s) +Chars 1488 - 1543 [(change~(ITree.subst~f~(k~v))~...] 0. secs (0.u,0.s) +Chars 1548 - 1558 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 1559 - 1568 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1569 - 1573 [Qed.] 0.007 secs (0.007u,0.s) +Chars 1578 - 1767 [Lemma~euttNoRet_subrel~:~~~for...] 0. secs (0.u,0.s) +Chars 1768 - 1774 [Proof.] 0. secs (0.u,0.s) +Chars 1777 - 1784 [(intros).] 0. secs (0.u,0.s) +Chars 1787 - 1905 [(eapply~eqit_mono~with~(b1~:=~...] 0.002 secs (0.002u,0.s) +Chars 1906 - 1910 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1912 - 2122 [Lemma~all_infinite_euttNoRet~:...] 0. secs (0.u,0.s) +Chars 2123 - 2129 [Proof.] 0. secs (0.u,0.s) +Chars 2132 - 2147 [(intros~E~A~B~R).] 0. secs (0.u,0.s) +Chars 2148 - 2165 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 2166 - 2185 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 2186 - 2210 [(intros~ta~tb~Hdiv~Heutt).] 0. secs (0.u,0.s) +Chars 2213 - 2227 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 2228 - 2256 [(cbn[eqit_mon~body]~in~Heutt).] 0. secs (0.u,0.s) +Chars 2257 - 2279 [(unfold~eqit_~in~Heutt).] 0. secs (0.u,0.s) +Chars 2282 - 2301 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) +Chars 2302 - 2315 [(unfold~eqit_).] 0. secs (0.u,0.s) +Chars 2318 - 2358 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 2361 - 2396 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2397 - 2426 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2429 - 2455 [dependent~induction~Heutt.] 0.06 secs (0.059u,0.s) +Chars 2458 - 2459 [-] 0. secs (0.u,0.s) +Chars 2460 - 2468 [exfalso.] 0. secs (0.u,0.s) +Chars 2469 - 2491 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2492 - 2507 [(inversion~Hdiv).] 0. secs (0.u,0.s) +Chars 2510 - 2511 [-] 0. secs (0.u,0.s) +Chars 2512 - 2526 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 2527 - 2540 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 2541 - 2553 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 2554 - 2564 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2569 - 2570 [+] 0. secs (0.u,0.s) +Chars 2571 - 2593 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2594 - 2616 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) +Chars 2617 - 2622 [auto.] 0. secs (0.u,0.s) +Chars 2627 - 2628 [+] 0. secs (0.u,0.s) +Chars 2629 - 2634 [auto.] 0. secs (0.u,0.s) +Chars 2637 - 2638 [-] 0. secs (0.u,0.s) +Chars 2639 - 2653 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 2654 - 2667 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 2668 - 2680 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 2681 - 2690 [(intros~v).] 0. secs (0.u,0.s) +Chars 2691 - 2701 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2706 - 2707 [+] 0. secs (0.u,0.s) +Chars 2708 - 2730 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2731 - 2753 [(inversion~Hdiv;~subst).] 0.001 secs (0.001u,0.s) +Chars 2754 - 2767 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 2768 - 2777 [(apply~H0).] 0. secs (0.u,0.s) +Chars 2782 - 2783 [+] 0. secs (0.u,0.s) +Chars 2784 - 2794 [(apply~REL).] 0. secs (0.u,0.s) +Chars 2797 - 2798 [-] 0. secs (0.u,0.s) +Chars 2799 - 2812 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 2813 - 2832 [(apply~EqTauL;~auto).] 0.003 secs (0.003u,0.s) +Chars 2833 - 2853 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 2858 - 2879 [(rewrite~<-~x~in~Hdiv).] 0. secs (0.u,0.s) +Chars 2880 - 2902 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) +Chars 2907 - 2945 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 2950 - 2983 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2984 - 3011 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 3012 - 3021 [exact~H0.] 0. secs (0.u,0.s) +Chars 3024 - 3025 [-] 0. secs (0.u,0.s) +Chars 3026 - 3039 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 3040 - 3059 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 3060 - 3064 [Qed.] 0.034 secs (0.034u,0.s) +Chars 3071 - 3215 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) +Chars 3216 - 3222 [Proof.] 0. secs (0.u,0.s) +Chars 3225 - 3238 [(intros~E~A~B).] 0. secs (0.u,0.s) +Chars 3239 - 3259 [(unfold~all_infinite).] 0. secs (0.u,0.s) +Chars 3260 - 3278 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3279 - 3294 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 3297 - 3324 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 3325 - 3346 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 3349 - 3371 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) +Chars 3372 - 3382 [step~in~H.] 0. secs (0.u,0.s) +Chars 3383 - 3407 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) +Chars 3408 - 3426 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) +Chars 3429 - 3470 [(dependent~induction~H;~try~co...] 0.019 secs (0.019u,0.s) +Chars 3473 - 3474 [-] 0. secs (0.u,0.s) +Chars 3475 - 3489 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 3490 - 3502 [constructor.] 0. secs (0.u,0.s) +Chars 3503 - 3529 [(apply~CIH~with~(t2~:=~m2)).] 0. secs (0.u,0.s) +Chars 3530 - 3547 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3548 - 3553 [auto.] 0. secs (0.u,0.s) +Chars 3556 - 3557 [-] 0. secs (0.u,0.s) +Chars 3558 - 3572 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 3573 - 3585 [constructor.] 0. secs (0.u,0.s) +Chars 3586 - 3595 [(intros~v).] 0. secs (0.u,0.s) +Chars 3596 - 3624 [(apply~CIH~with~(t2~:=~k2~v)).] 0. secs (0.u,0.s) +Chars 3629 - 3646 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3647 - 3657 [(apply~REL).] 0. secs (0.u,0.s) +Chars 3660 - 3661 [-] 0. secs (0.u,0.s) +Chars 3662 - 3675 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 3676 - 3688 [constructor.] 0. secs (0.u,0.s) +Chars 3689 - 3715 [(apply~CIH~with~(t2~:=~t2)).] 0. secs (0.u,0.s) +Chars 3716 - 3733 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3738 - 3743 [step.] 0.001 secs (0.001u,0.s) +Chars 3744 - 3763 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) +Chars 3764 - 3777 [(unfold~eqit_).] 0. secs (0.u,0.s) +Chars 3778 - 3783 [auto.] 0. secs (0.u,0.s) +Chars 3786 - 3787 [-] 0. secs (0.u,0.s) +Chars 3788 - 3810 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 3811 - 3815 [Qed.] 0.012 secs (0.012u,0.s) +Chars 3818 - 3953 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) +Chars 3954 - 3960 [Proof.] 0. secs (0.u,0.s) +Chars 3963 - 3976 [(intros~E~A~B).] 0. secs (0.u,0.s) +Chars 3977 - 3994 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3995 - 4014 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 4015 - 4030 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 4033 - 4055 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) +Chars 4056 - 4066 [step~in~H.] 0. secs (0.u,0.s) +Chars 4067 - 4091 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) +Chars 4092 - 4110 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) +Chars 4113 - 4154 [(dependent~induction~H;~try~co...] 0.027 secs (0.027u,0.s) +Chars 4157 - 4158 [-] 0. secs (0.u,0.s) +Chars 4159 - 4173 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 4174 - 4187 [(rewrite~<-~x).] 0.002 secs (0.002u,0.s) +Chars 4188 - 4200 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 4201 - 4211 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4212 - 4217 [auto.] 0. secs (0.u,0.s) +Chars 4220 - 4221 [-] 0. secs (0.u,0.s) +Chars 4222 - 4236 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 4237 - 4250 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4251 - 4263 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 4264 - 4273 [(intros~v).] 0. secs (0.u,0.s) +Chars 4274 - 4284 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4285 - 4295 [(apply~REL).] 0. secs (0.u,0.s) +Chars 4298 - 4299 [-] 0. secs (0.u,0.s) +Chars 4300 - 4313 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4314 - 4333 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 4336 - 4337 [-] 0. secs (0.u,0.s) +Chars 4338 - 4351 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 4352 - 4371 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) +Chars 4372 - 4376 [Qed.] 0.033 secs (0.033u,0.s) +Chars 4378 - 4560 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) +Chars 4561 - 4567 [Proof.] 0. secs (0.u,0.s) +Chars 4570 - 4577 [(intros).] 0. secs (0.u,0.s) +Chars 4578 - 4627 [(apply~noret_bind_nop~with~(B~...] 0. secs (0.u,0.s) +Chars 4630 - 4655 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 4656 - 4690 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 4691 - 4696 [auto.] 0. secs (0.u,0.s) +Chars 4697 - 4701 [Qed.] 0. secs (0.u,0.s) +Chars 4708 - 4914 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) +Chars 4915 - 4921 [Proof.] 0. secs (0.u,0.s) +Chars 4924 - 4931 [(intros).] 0. secs (0.u,0.s) +Chars 4932 - 4954 [(unfold~euttNoRet~in~*).] 0. secs (0.u,0.s) +Chars 4957 - 5084 [(eapply~eqit_mono~with~(b1~:=~...] 0.003 secs (0.003u,0.s) +Chars 5087 - 5088 [-] 0. secs (0.u,0.s) +Chars 5089 - 5103 [(intros~x~y~Hc).] 0. secs (0.u,0.s) +Chars 5104 - 5132 [(inversion~Hc;~contradiction).] 0. secs (0.u,0.s) +Chars 5135 - 5136 [-] 0. secs (0.u,0.s) +Chars 5137 - 5162 [(eapply~eqit_trans;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5163 - 5167 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5170 - 5289 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 5290 - 5296 [Proof.] 0. secs (0.u,0.s) +Chars 5299 - 5328 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) +Chars 5329 - 5343 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5346 - 5347 [-] 0. secs (0.u,0.s) +Chars 5348 - 5389 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5390 - 5415 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 5421 - 5462 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5467 - 5505 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 5510 - 5511 [+] 0. secs (0.u,0.s) +Chars 5512 - 5550 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 5557 - 5558 [*] 0. secs (0.u,0.s) +Chars 5559 - 5579 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 5580 - 5617 [(eapply~all_infinite_euttNoRet...] 0.002 secs (0.002u,0.s) +Chars 5624 - 5625 [*] 0. secs (0.u,0.s) +Chars 5626 - 5646 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 5647 - 5652 [auto.] 0. secs (0.u,0.s) +Chars 5657 - 5658 [+] 0. secs (0.u,0.s) +Chars 5659 - 5696 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) +Chars 5699 - 5700 [-] 0. secs (0.u,0.s) +Chars 5701 - 5742 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5748 - 5773 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 5774 - 5815 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 5820 - 5845 [(assert~(euttNoRet~t1~t2)).] 0. secs (0.u,0.s) +Chars 5850 - 5851 [{] 0. secs (0.u,0.s) +Chars 5859 - 5879 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 5880 - 5904 [(apply~eutt_flip~in~Ht12).] 0. secs (0.u,0.s) +Chars 5912 - 5949 [(eapply~all_infinite_euttNoRet...] 0.003 secs (0.003u,0.s) +Chars 5954 - 5955 [}] 0. secs (0.u,0.s) +Chars 5960 - 5985 [(assert~(euttNoRet~t3~t4)).] 0. secs (0.u,0.s) +Chars 5990 - 5991 [{] 0. secs (0.u,0.s) +Chars 5998 - 6018 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 6019 - 6043 [(apply~eutt_flip~in~Ht34).] 0. secs (0.u,0.s) +Chars 6050 - 6087 [(eapply~all_infinite_euttNoRet...] 0.002 secs (0.002u,0.s) +Chars 6092 - 6093 [}] 0. secs (0.u,0.s) +Chars 6098 - 6123 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) +Chars 6128 - 6166 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 6171 - 6172 [+] 0. secs (0.u,0.s) +Chars 6173 - 6217 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 6222 - 6223 [+] 0. secs (0.u,0.s) +Chars 6224 - 6244 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 6245 - 6250 [auto.] 0. secs (0.u,0.s) +Chars 6251 - 6255 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6257 - 6346 [Definition~noret_cast~{E}~{A}~...] 0. secs (0.u,0.s) +Chars 6348 - 6466 [Lemma~noret_cast_nop~:~~~foral...] 0. secs (0.u,0.s) +Chars 6467 - 6473 [Proof.] 0. secs (0.u,0.s) +Chars 6476 - 6483 [(intros).] 0. secs (0.u,0.s) +Chars 6484 - 6507 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 6508 - 6529 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 6530 - 6535 [auto.] 0. secs (0.u,0.s) +Chars 6536 - 6540 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6542 - 6649 [#[global]~Instance~proper_nore...] 0. secs (0.u,0.s) +Chars 6650 - 6656 [Proof.] 0. secs (0.u,0.s) +Chars 6659 - 6678 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 6679 - 6697 [(unfold~noret_cast).] 0. secs (0.u,0.s) +Chars 6698 - 6702 [(cbn).] 0. secs (0.u,0.s) +Chars 6703 - 6717 [(rewrite~Heutt).] 0.003 secs (0.003u,0.s) +Chars 6718 - 6730 [reflexivity.] 0. secs (0.u,0.s) +Chars 6731 - 6735 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6737 - 6940 [Ltac~~infer_noret~H~:=~~~match...] 0. secs (0.u,0.s) +Chars 6942 - 7121 [Lemma~noret_cast_cast~E~(A~B~:...] 0. secs (0.u,0.s) +Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) +Chars 7131 - 7138 [(intros).] 0. secs (0.u,0.s) +Chars 7139 - 7162 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 7165 - 7206 [(apply~all_infinite_euttNoRet~...] 0.001 secs (0.001u,0.s) +Chars 7209 - 7224 [(infer_noret~H0).] 0. secs (0.u,0.s) +Chars 7227 - 7297 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 7300 - 7344 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 7347 - 7367 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 7368 - 7389 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 7390 - 7395 [auto.] 0. secs (0.u,0.s) +Chars 7396 - 7400 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Finite.v.timing b/theories/Props/Finite.v.timing index 41e12c30..a68a6011 100644 --- a/theories/Props/Finite.v.timing +++ b/theories/Props/Finite.v.timing @@ -1,6 +1,6 @@ -Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.093 secs (0.078u,0.014s) -Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.03 secs (0.026u,0.003s) -Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.001u,0.s) +Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.095 secs (0.08u,0.015s) +Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.031 secs (0.027u,0.004s) +Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.s) Chars 305 - 318 [Import~ITree.] 0. secs (0.u,0.s) Chars 319 - 341 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 342 - 363 [Import~LeafNotations.] 0. secs (0.u,0.s) @@ -54,7 +54,7 @@ Chars 3541 - 3545 [Qed.] 0. secs (0.u,0.s) Chars 3546 - 3631 [#[global]~Hint~Extern~1~(any_f...] 0. secs (0.u,0.s) Chars 3675 - 3760 [Lemma~all_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3761 - 3767 [Proof.] 0. secs (0.u,0.s) -Chars 3770 - 3814 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.002 secs (0.002u,0.s) +Chars 3770 - 3814 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.003 secs (0.002u,0.s) Chars 3815 - 3819 [Qed.] 0.001 secs (0.001u,0.s) Chars 3821 - 3934 [Lemma~all_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3935 - 3941 [Proof.] 0. secs (0.u,0.s) @@ -86,19 +86,19 @@ Chars 5010 - 5069 [(hinduction~EQ~before~R;~intro...] 0.007 secs (0.007u,0.s) Chars 5072 - 5073 [-] 0. secs (0.u,0.s) Chars 5074 - 5111 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 5116 - 5128 [(apply~IHFIN).] 0. secs (0.u,0.s) -Chars 5129 - 5151 [(rewrite~<-~tau_euttge).] 0.094 secs (0.085u,0.008s) +Chars 5129 - 5151 [(rewrite~<-~tau_euttge).] 0.092 secs (0.083u,0.009s) Chars 5152 - 5161 [now~step.] 0.001 secs (0.001u,0.s) Chars 5165 - 5166 [-] 0. secs (0.u,0.s) Chars 5167 - 5204 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 5209 - 5244 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) -Chars 5249 - 5290 [(hinduction~EQ~before~R;~intro...] 0.006 secs (0.006u,0.s) +Chars 5249 - 5290 [(hinduction~EQ~before~R;~intro...] 0.007 secs (0.007u,0.s) Chars 5295 - 5296 [+] 0. secs (0.u,0.s) Chars 5297 - 5310 [revert~H0~H1.] 0. secs (0.u,0.s) Chars 5317 - 5421 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) -Chars 5428 - 5445 [eauto~with~itree.] 0.004 secs (0.004u,0.s) +Chars 5428 - 5445 [eauto~with~itree.] 0.003 secs (0.003u,0.s) Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5479 [(inv~Heqi;~eauto~with~itree).] 0.007 secs (0.007u,0.s) -Chars 5480 - 5484 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5452 - 5479 [(inv~Heqi;~eauto~with~itree).] 0.01 secs (0.01u,0.s) +Chars 5480 - 5484 [Qed.] 0.008 secs (0.008u,0.s) Chars 5486 - 5612 [Lemma~all_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 5613 - 5619 [Proof.] 0. secs (0.u,0.s) Chars 5622 - 5634 [(intros~*~EQ).] 0. secs (0.u,0.s) @@ -122,16 +122,16 @@ Chars 6117 - 6118 [-] 0. secs (0.u,0.s) Chars 6119 - 6130 [step~in~EQ.] 0. secs (0.u,0.s) Chars 6131 - 6156 [(rewrite~H~in~EQ;~clear~H).] 0. secs (0.u,0.s) Chars 6161 - 6193 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 6198 - 6257 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.008u,0.s) +Chars 6198 - 6257 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.007u,0.s) Chars 6260 - 6261 [-] 0. secs (0.u,0.s) Chars 6262 - 6299 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 6306 - 6318 [(apply~IHFIN).] 0. secs (0.u,0.s) -Chars 6319 - 6341 [(rewrite~<-~tau_euttge).] 0.039 secs (0.039u,0.s) +Chars 6319 - 6341 [(rewrite~<-~tau_euttge).] 0.038 secs (0.037u,0.s) Chars 6342 - 6351 [now~step.] 0.001 secs (0.001u,0.s) Chars 6355 - 6356 [-] 0. secs (0.u,0.s) Chars 6357 - 6394 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 6399 - 6434 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) -Chars 6439 - 6480 [(hinduction~EQ~before~R;~intro...] 0.009 secs (0.009u,0.s) +Chars 6439 - 6480 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.008u,0.s) Chars 6485 - 6486 [+] 0. secs (0.u,0.s) Chars 6487 - 6506 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) Chars 6513 - 6617 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) @@ -154,7 +154,7 @@ Chars 7038 - 7070 [(eapply~any_finite_eutt_r;~eau...] 0. secs (0.u,0.s) Chars 7071 - 7075 [Qed.] 0. secs (0.u,0.s) Chars 7285 - 7450 [Lemma~all_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 7451 - 7457 [Proof.] 0. secs (0.u,0.s) -Chars 7460 - 7547 [(intros~*~FIN;~induction~FIN;~...] 0.007 secs (0.007u,0.s) +Chars 7460 - 7547 [(intros~*~FIN;~induction~FIN;~...] 0.006 secs (0.006u,0.s) Chars 7548 - 7552 [Qed.] 0.001 secs (0.001u,0.s) Chars 7554 - 7713 [Lemma~all_finite_bind_weak~:~~...] 0. secs (0.u,0.s) Chars 7714 - 7720 [Proof.] 0. secs (0.u,0.s) @@ -167,18 +167,18 @@ Chars 8014 - 8174 [(cut~~~(forall~u~:~itree~E~S,~...] 0. secs (0.u,0.s) Chars 8177 - 8226 [(intros~LEM~*~FIN;~eapply~LEM;...] 0. secs (0.u,0.s) Chars 8229 - 8254 [(induction~1;~intros~*~EQ).] 0. secs (0.u,0.s) Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8301 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.018u,0.s) +Chars 8259 - 8301 [(rewrite~(itree_eta~t),~H~in~E...] 0.016 secs (0.016u,0.s) Chars 8306 - 8371 [(symmetry~in~EQ;~apply~eqit_in...] 0. secs (0.u,0.s) -Chars 8376 - 8412 [(rewrite~EQt;~split;~auto~with...] 0.002 secs (0.002u,0.s) +Chars 8376 - 8412 [(rewrite~EQt;~split;~auto~with...] 0.001 secs (0.001u,0.s) Chars 8417 - 8429 [(intros~z~IN).] 0. secs (0.u,0.s) Chars 8434 - 8485 [(rewrite~EQt~in~IN;~apply~Leaf...] 0.002 secs (0.002u,0.s) Chars 8490 - 8519 [(rewrite~EQk;~auto~with~itree).] 0.002 secs (0.002u,0.s) Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8566 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.018u,0.s) -Chars 8571 - 8594 [(rewrite~tau_eutt~in~EQ).] 0.015 secs (0.015u,0.s) +Chars 8524 - 8566 [(rewrite~(itree_eta~t),~H~in~E...] 0.017 secs (0.017u,0.s) +Chars 8571 - 8594 [(rewrite~tau_eutt~in~EQ).] 0.014 secs (0.014u,0.s) Chars 8599 - 8605 [eauto.] 0. secs (0.u,0.s) Chars 8608 - 8609 [-] 0. secs (0.u,0.s) -Chars 8610 - 8652 [(rewrite~(itree_eta~t),~H~in~E...] 0.019 secs (0.018u,0.s) +Chars 8610 - 8652 [(rewrite~(itree_eta~t),~H~in~E...] 0.019 secs (0.019u,0.s) Chars 8657 - 8703 [(symmetry~in~EQ;~apply~eutt_in...] 0. secs (0.u,0.s) Chars 8708 - 8760 [(destruct~EQ~as~[(kca,~(EQ,~EQ...] 0. secs (0.u,0.s) Chars 8765 - 8766 [+] 0. secs (0.u,0.s) @@ -195,10 +195,10 @@ Chars 9026 - 9038 [(apply~H,~IN).] 0. secs (0.u,0.s) Chars 9043 - 9044 [+] 0. secs (0.u,0.s) Chars 9045 - 9080 [(rewrite~EQ;~split;~auto~with~...] 0.002 secs (0.002u,0.s) Chars 9087 - 9099 [(intros~y~IN).] 0. secs (0.u,0.s) -Chars 9106 - 9156 [(rewrite~EQ~in~IN;~apply~Leaf_...] 0.002 secs (0.002u,0.s) +Chars 9106 - 9156 [(rewrite~EQ~in~IN;~apply~Leaf_...] 0.003 secs (0.002u,0.s) Chars 9163 - 9175 [(rewrite~EQk).] 0.001 secs (0.001u,0.s) Chars 9176 - 9193 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9194 - 9198 [Qed.] 0.006 secs (0.006u,0.s) +Chars 9194 - 9198 [Qed.] 0.005 secs (0.005u,0.s) Chars 9200 - 9329 [Lemma~all_finite_bind_inv_left...] 0. secs (0.u,0.s) Chars 9330 - 9336 [Proof.] 0. secs (0.u,0.s) Chars 9339 - 9381 [(intros;~eapply~all_finite_bin...] 0. secs (0.u,0.s) @@ -225,22 +225,22 @@ Chars 10402 - 10441 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) Chars 10446 - 10470 [(split;~eauto~with~itree).] 0. secs (0.u,0.s) Chars 10473 - 10474 [-] 0. secs (0.u,0.s) Chars 10475 - 10505 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 10510 - 10549 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 10554 - 10578 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 10583 - 10620 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) +Chars 10510 - 10549 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.003 secs (0.001u,0.s) +Chars 10554 - 10578 [(split;~eauto~with~itree).] 0.003 secs (0.001u,0.s) +Chars 10583 - 10620 [(inversion~H;~clear~H;~symmetr...] 0.004 secs (0.001u,0.s) Chars 10625 - 10660 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) Chars 10665 - 10674 [(apply~H1).] 0. secs (0.u,0.s) -Chars 10679 - 10703 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 10679 - 10703 [(split;~eauto~with~itree).] 0.002 secs (0.001u,0.s) Chars 10706 - 10707 [-] 0. secs (0.u,0.s) Chars 10708 - 10738 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 10743 - 10782 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 10743 - 10782 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) Chars 10787 - 10811 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 10816 - 10835 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 10840 - 10941 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 10840 - 10941 [refine~~match~~~~H~in~(_~=~u)~...] 0.003 secs (0.001u,0.s) Chars 10946 - 10953 [(intros).] 0. secs (0.u,0.s) Chars 10958 - 11012 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) -Chars 11017 - 11041 [(split;~eauto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 11042 - 11046 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11017 - 11041 [(split;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 11042 - 11046 [Qed.] 0.005 secs (0.005u,0.s) Chars 11048 - 11212 [Lemma~any_finite_bind_inv_weak...] 0. secs (0.u,0.s) Chars 11213 - 11219 [Proof.] 0. secs (0.u,0.s) Chars 11222 - 11282 [(intros~*~FIN;~apply~any_finit...] 0. secs (0.u,0.s) @@ -252,18 +252,18 @@ Chars 11444 - 11486 [(intros;~eapply~any_finite_bin...] 0. secs (0.u,0.s) Chars 11487 - 11491 [Qed.] 0. secs (0.u,0.s) Chars 11535 - 11613 [Lemma~Leaf_finite~:~forall~E~R...] 0. secs (0.u,0.s) Chars 11614 - 11620 [Proof.] 0. secs (0.u,0.s) -Chars 11623 - 11691 [(intros~*~FIN;~induction~FIN;~...] 0.004 secs (0.004u,0.s) -Chars 11692 - 11696 [Qed.] 0. secs (0.u,0.s) +Chars 11623 - 11691 [(intros~*~FIN;~induction~FIN;~...] 0.005 secs (0.004u,0.s) +Chars 11692 - 11696 [Qed.] 0.001 secs (0.001u,0.s) Chars 11698 - 11784 [Lemma~finite_Leaf~:~~~forall~E...] 0. secs (0.u,0.s) Chars 11785 - 11791 [Proof.] 0. secs (0.u,0.s) Chars 11794 - 11822 [(intros~*~FIN;~induction~FIN).] 0. secs (0.u,0.s) Chars 11825 - 11877 [1:~(exists~a;~rewrite~itree_et...] 0.002 secs (0.002u,0.s) Chars 11880 - 11918 [all:~(destruct~IHFIN;~eauto~wi...] 0.001 secs (0.001u,0.s) -Chars 11919 - 11923 [Qed.] 0. secs (0.u,0.s) +Chars 11919 - 11923 [Qed.] 0.001 secs (0.001u,0.s) Chars 12232 - 12324 [Lemma~finite_non_interactive~:...] 0. secs (0.u,0.s) Chars 12325 - 12331 [Proof.] 0. secs (0.u,0.s) Chars 12334 - 12406 [(split;~induction~1;~cbn~in~*;...] 0.001 secs (0.001u,0.s) -Chars 12407 - 12411 [Qed.] 0. secs (0.u,0.s) +Chars 12407 - 12411 [Qed.] 0.001 secs (0.u,0.s) Chars 12413 - 12517 [Lemma~finite_leaf_non_interact...] 0. secs (0.u,0.s) Chars 12518 - 12524 [Proof.] 0. secs (0.u,0.s) Chars 12527 - 12536 [(intros~*).] 0. secs (0.u,0.s) @@ -276,7 +276,7 @@ Chars 12764 - 12814 [(intros~*~IN;~revert~b;~induct...] 0. secs (0.u,0.s) Chars 12817 - 12818 [-] 0. secs (0.u,0.s) Chars 12819 - 12880 [(rewrite~itree_eta,~H~in~IN';~...] 0.002 secs (0.002u,0.s) Chars 12883 - 12884 [-] 0. secs (0.u,0.s) -Chars 12885 - 12930 [(rewrite~itree_eta,~H,~tau_eut...] 0.006 secs (0.006u,0.s) +Chars 12885 - 12930 [(rewrite~itree_eta,~H,~tau_eut...] 0.008 secs (0.007u,0.s) Chars 12933 - 12934 [-] 0. secs (0.u,0.s) Chars 12935 - 12941 [(inv~e).] 0. secs (0.u,0.s) Chars 12942 - 12946 [Qed.] 0.001 secs (0.001u,0.s) @@ -353,7 +353,7 @@ Chars 16068 - 16102 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) Chars 16105 - 16106 [-] 0. secs (0.u,0.s) Chars 16107 - 16122 [(unfold~t~in~IN).] 0. secs (0.u,0.s) Chars 16127 - 16143 [clear~FINk~FINt.] 0. secs (0.u,0.s) -Chars 16148 - 16181 [(inv~IN;~cbn~in~*;~try~congrue...] 0.006 secs (0.006u,0.s) +Chars 16148 - 16181 [(inv~IN;~cbn~in~*;~try~congrue...] 0.008 secs (0.008u,0.s) Chars 16186 - 16208 [dependent~induction~H.] 0.001 secs (0.001u,0.s) Chars 16213 - 16234 [(destruct~x;~cbn~in~*).] 0. secs (0.u,0.s) Chars 16239 - 16276 [(apply~Leaf_Ret_inv~in~H0;~con...] 0. secs (0.u,0.s) diff --git a/theories/Props/HasPost.v.timing b/theories/Props/HasPost.v.timing index 35319605..61900e8a 100644 --- a/theories/Props/HasPost.v.timing +++ b/theories/Props/HasPost.v.timing @@ -1,5 +1,5 @@ -Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.088 secs (0.074u,0.013s) +Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.087 secs (0.073u,0.013s) Chars 186 - 209 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 210 - 230 [Set~Strict~Implicit.] 0. secs (0.u,0.s) Chars 231 - 251 [Import~RelNotations.] 0. secs (0.u,0.s) @@ -24,7 +24,7 @@ Chars 2112 - 2219 [#[global]~Instance~has_post_eq...] 0. secs (0.u,0.s) Chars 2220 - 2226 [Proof.] 0. secs (0.u,0.s) Chars 2229 - 2297 [(repeat~red;~unfold~has_post;~...] 0. secs (0.u,0.s) Chars 2300 - 2301 [-] 0. secs (0.u,0.s) -Chars 2302 - 2344 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.002 secs (0.001u,0.s) +Chars 2302 - 2344 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.001 secs (0.001u,0.s) Chars 2349 - 2385 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) Chars 2388 - 2389 [-] 0. secs (0.u,0.s) Chars 2390 - 2429 [(rewrite~EUTT;~eapply~eutt_equ...] 0. secs (0.u,0.s) @@ -37,7 +37,7 @@ Chars 2657 - 2658 [-] 0. secs (0.u,0.s) Chars 2659 - 2701 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.001 secs (0.001u,0.s) Chars 2706 - 2742 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) Chars 2745 - 2746 [-] 0. secs (0.u,0.s) -Chars 2747 - 2786 [(rewrite~EUTT;~eapply~eutt_equ...] 0.001 secs (0.001u,0.s) +Chars 2747 - 2786 [(rewrite~EUTT;~eapply~eutt_equ...] 0. secs (0.u,0.s) Chars 2791 - 2827 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) Chars 2828 - 2832 [Qed.] 0.001 secs (0.001u,0.s) Chars 3013 - 3119 [Lemma~has_post_conj~:~~~forall...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 3650 - 3667 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) Chars 3668 - 3680 [4:~exact~HQ.] 0. secs (0.u,0.s) Chars 3681 - 3691 [1,~2:~auto.] 0. secs (0.u,0.s) Chars 3694 - 3714 [(intros;~right;~auto).] 0. secs (0.u,0.s) -Chars 3715 - 3719 [Qed.] 0.038 secs (0.038u,0.s) +Chars 3715 - 3719 [Qed.] 0.038 secs (0.037u,0.s) Chars 3737 - 3837 [Lemma~has_post_weaken~:~~~fora...] 0. secs (0.u,0.s) Chars 3838 - 3844 [Proof.] 0. secs (0.u,0.s) Chars 3847 - 3910 [(unfold~has_post,~subrelationH...] 0. secs (0.u,0.s) @@ -87,7 +87,7 @@ Chars 4733 - 4739 [Proof.] 0. secs (0.u,0.s) Chars 4742 - 4763 [(intros~*~POST1~POST2).] 0. secs (0.u,0.s) Chars 4766 - 4870 [(apply~eutt_bind_eutt~with~(UU...] 0.001 secs (0.001u,0.s) Chars 4873 - 4912 [(intros~?~?~[<-~?];~eapply~POS...] 0. secs (0.u,0.s) -Chars 4913 - 4917 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4913 - 4917 [Qed.] 0.003 secs (0.003u,0.s) Chars 4951 - 5177 [Lemma~has_post_iter_strong~:~~...] 0. secs (0.u,0.s) Chars 5178 - 5184 [Proof.] 0. secs (0.u,0.s) Chars 5187 - 5205 [(intros~*~IND~INIT).] 0. secs (0.u,0.s) @@ -95,9 +95,9 @@ Chars 5208 - 5284 [(eapply~(@KTreeFacts.eutt_iter...] 0.001 secs (0.001u,0.s) Chars 5287 - 5305 [(intros~i~?~[<-~?]).] 0. secs (0.u,0.s) Chars 5308 - 5368 [(specialize~(IND~i);~apply~has...] 0.004 secs (0.004u,0.s) Chars 5371 - 5401 [(unfold~has_post_strong~in~IND).] 0. secs (0.u,0.s) -Chars 5404 - 5442 [(eapply~eqit_mono;~try~apply~I...] 0.006 secs (0.005u,0.s) -Chars 5445 - 5471 [(intros~[]~?~[<-~?];~eauto).] 0.002 secs (0.002u,0.s) -Chars 5472 - 5476 [Qed.] 0.004 secs (0.003u,0.s) +Chars 5404 - 5442 [(eapply~eqit_mono;~try~apply~I...] 0.005 secs (0.005u,0.s) +Chars 5445 - 5471 [(intros~[]~?~[<-~?];~eauto).] 0.003 secs (0.002u,0.s) +Chars 5472 - 5476 [Qed.] 0.006 secs (0.004u,0.001s) Chars 5521 - 5634 [Lemma~has_post_translate~:~~~f...] 0. secs (0.u,0.s) Chars 5635 - 5641 [Proof.] 0. secs (0.u,0.s) Chars 5644 - 5675 [(unfold~has_post;~intros~*~POST).] 0. secs (0.u,0.s) @@ -123,11 +123,11 @@ Chars 6687 - 6700 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 6701 - 6707 [(inv~H).] 0.003 secs (0.002u,0.s) Chars 6708 - 6717 [(inv~REL1).] 0.003 secs (0.002u,0.s) Chars 6722 - 6769 [(destruct~REL2~as~[->~?],~REL0...] 0. secs (0.u,0.s) -Chars 6770 - 6774 [Qed.] 0.005 secs (0.004u,0.s) +Chars 6770 - 6774 [Qed.] 0.004 secs (0.003u,0.s) Chars 6833 - 7052 [Lemma~eutt_post_bind_eq~:~~~fo...] 0. secs (0.u,0.s) Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) Chars 7062 - 7078 [(intros~*~POST~?).] 0. secs (0.u,0.s) -Chars 7081 - 7183 [(apply~eutt_bind_eutt~with~(UU...] 0.001 secs (0.001u,0.s) +Chars 7081 - 7183 [(apply~eutt_bind_eutt~with~(UU...] 0.002 secs (0.002u,0.s) Chars 7186 - 7210 [(intros~?~?~[->~?];~auto).] 0. secs (0.u,0.s) Chars 7211 - 7215 [Qed.] 0.001 secs (0.001u,0.s) Chars 7435 - 7539 [Lemma~eutt_eq_itree~{E}~{X}~(R...] 0. secs (0.u,0.s) @@ -138,10 +138,10 @@ Chars 7637 - 7689 [(intros;~apply~H;~[~auto~|~app...] 0. secs (0.u,0.s) Chars 7690 - 7691 [}] 0. secs (0.u,0.s) Chars 7694 - 7706 [coinduction.] 0.002 secs (0.002u,0.s) Chars 7710 - 7726 [(intros~t~u~H~EQ).] 0. secs (0.u,0.s) -Chars 7730 - 7772 [(rewrite~(itree_eta~t),~(itree...] 0.042 secs (0.042u,0.s) +Chars 7730 - 7772 [(rewrite~(itree_eta~t),~(itree...] 0.042 secs (0.04u,0.001s) Chars 7775 - 7786 [step~in~EQ.] 0. secs (0.u,0.s) Chars 7787 - 7791 [(cbn).] 0. secs (0.u,0.s) -Chars 7792 - 7835 [(destruct~EQ;~try~discriminate...] 0.001 secs (0.001u,0.s) +Chars 7792 - 7835 [(destruct~EQ;~try~discriminate...] 0.002 secs (0.001u,0.s) Chars 7838 - 7839 [-] 0. secs (0.u,0.s) Chars 7840 - 7865 [(rewrite~<-~eutt_Ret~in~H).] 0. secs (0.u,0.s) Chars 7866 - 7871 [auto.] 0. secs (0.u,0.s) @@ -152,7 +152,7 @@ Chars 7936 - 7937 [-] 0. secs (0.u,0.s) Chars 7938 - 7944 [intro.] 0. secs (0.u,0.s) Chars 7945 - 7972 [(apply~CIH;~[~~|~apply~REL~]).] 0. secs (0.u,0.s) Chars 7977 - 8011 [(eapply~eqit_inv_Vis~with~(1~:...] 0. secs (0.u,0.s) -Chars 8012 - 8016 [Qed.] 0.007 secs (0.007u,0.s) +Chars 8012 - 8016 [Qed.] 0.008 secs (0.008u,0.s) Chars 8018 - 8170 [Lemma~has_post_strong_to_eq_it...] 0. secs (0.u,0.s) Chars 8171 - 8177 [Proof.] 0. secs (0.u,0.s) Chars 8180 - 8210 [(intros~*;~apply~eutt_eq_itree).] 0. secs (0.u,0.s) diff --git a/theories/Props/Infinite.v.timing b/theories/Props/Infinite.v.timing index 9de8d920..8ed14ec5 100644 --- a/theories/Props/Infinite.v.timing +++ b/theories/Props/Infinite.v.timing @@ -1,325 +1,326 @@ -Chars 170 - 245 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 247 - 352 [From~ITree~Require~Import~Axio...] 0.191 secs (0.172u,0.019s) -Chars 369 - 391 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 392 - 418 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) -Chars 420 - 443 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 467 - 715 [Inductive~any_infiniteF~{E}~{X...] 0.001 secs (0.001u,0.s) -Chars 716 - 766 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) -Chars 768 - 854 [Definition~any_infinite_~{E}~{...] 0. secs (0.u,0.s) -Chars 855 - 899 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) -Chars 901 - 977 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) -Chars 978 - 984 [Proof.] 0. secs (0.u,0.s) -Chars 988 - 1007 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 1008 - 1056 [(induction~H0;~econstructor;~e...] 0. secs (0.u,0.s) -Chars 1058 - 1062 [Qed.] 0.001 secs (0.u,0.s) -Chars 1065 - 1195 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) -Chars 1197 - 1273 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) -Chars 1275 - 1373 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) -Chars 1374 - 1380 [Proof.] 0. secs (0.u,0.s) -Chars 1383 - 1399 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 1400 - 1419 [(split;~intros~Hinf).] 0. secs (0.u,0.s) -Chars 1422 - 1423 [-] 0. secs (0.u,0.s) -Chars 1424 - 1445 [revert~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 1446 - 1471 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) -Chars 1472 - 1490 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) -Chars 1495 - 1516 [(intros~t2~t1~Ht~Hinf).] 0. secs (0.u,0.s) -Chars 1517 - 1528 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 1529 - 1554 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 1555 - 1574 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 1579 - 1606 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 1607 - 1628 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 1633 - 1673 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 1678 - 1713 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 1714 - 1743 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 1748 - 1761 [(induction~Ht).] 0.001 secs (0.u,0.s) -Chars 1766 - 1767 [+] 0. secs (0.u,0.s) -Chars 1768 - 1783 [(inversion~Hinf).] 0. secs (0.u,0.s) -Chars 1788 - 1789 [+] 0. secs (0.u,0.s) -Chars 1790 - 1812 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) -Chars 1813 - 1825 [constructor.] 0. secs (0.u,0.s) -Chars 1826 - 1844 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 1849 - 1850 [+] 0. secs (0.u,0.s) -Chars 1851 - 1873 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) -Chars 1874 - 1899 [dependent~destruction~H2.] 0.003 secs (0.002u,0.s) -Chars 1906 - 1919 [econstructor.] 0. secs (0.u,0.s) -Chars 1920 - 1945 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) -Chars 1946 - 1952 [eauto.] 0. secs (0.u,0.s) -Chars 1957 - 1958 [+] 0. secs (0.u,0.s) -Chars 1959 - 1970 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 1971 - 1993 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) -Chars 2000 - 2038 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 2045 - 2078 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2079 - 2106 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) -Chars 2107 - 2116 [exact~H0.] 0. secs (0.u,0.s) -Chars 2121 - 2122 [+] 0. secs (0.u,0.s) -Chars 2123 - 2135 [constructor.] 0. secs (0.u,0.s) -Chars 2136 - 2141 [step.] 0. secs (0.u,0.s) -Chars 2142 - 2169 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 2170 - 2191 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 2198 - 2209 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 2210 - 2221 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 2224 - 2225 [-] 0. secs (0.u,0.s) -Chars 2226 - 2247 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 2248 - 2273 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) -Chars 2274 - 2292 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) -Chars 2297 - 2318 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) -Chars 2319 - 2330 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 2331 - 2356 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 2357 - 2376 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 2381 - 2408 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 2409 - 2430 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 2435 - 2475 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 2480 - 2515 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2516 - 2545 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 2550 - 2563 [(induction~Ht).] 0.001 secs (0.u,0.s) -Chars 2568 - 2569 [+] 0. secs (0.u,0.s) -Chars 2570 - 2585 [(inversion~Hinf).] 0. secs (0.u,0.s) -Chars 2590 - 2591 [+] 0. secs (0.u,0.s) -Chars 2592 - 2614 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) -Chars 2615 - 2627 [constructor.] 0. secs (0.u,0.s) -Chars 2628 - 2646 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 2651 - 2652 [+] 0. secs (0.u,0.s) -Chars 2653 - 2675 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) -Chars 2676 - 2701 [dependent~destruction~H2.] 0.029 secs (0.027u,0.002s) -Chars 2708 - 2721 [econstructor.] 0. secs (0.u,0.s) -Chars 2722 - 2747 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) -Chars 2748 - 2754 [eauto.] 0. secs (0.u,0.s) -Chars 2759 - 2760 [+] 0. secs (0.u,0.s) -Chars 2761 - 2773 [constructor.] 0. secs (0.u,0.s) -Chars 2774 - 2779 [step.] 0. secs (0.u,0.s) -Chars 2780 - 2807 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 2808 - 2829 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 2836 - 2847 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 2848 - 2859 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 2864 - 2865 [+] 0. secs (0.u,0.s) -Chars 2866 - 2877 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 2878 - 2900 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 2907 - 2945 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 2952 - 2985 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2986 - 3013 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) -Chars 3014 - 3023 [exact~H0.] 0. secs (0.u,0.s) -Chars 3024 - 3028 [Qed.] 0.01 secs (0.01u,0.s) -Chars 3030 - 3089 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) -Chars 3090 - 3096 [Proof.] 0. secs (0.u,0.s) -Chars 3099 - 3119 [(unfold~any_infinite).] 0. secs (0.u,0.s) -Chars 3120 - 3138 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3141 - 3168 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 3169 - 3190 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 3191 - 3195 [(cbn).] 0. secs (0.u,0.s) -Chars 3198 - 3210 [constructor.] 0. secs (0.u,0.s) -Chars 3211 - 3221 [exact~CIH.] 0. secs (0.u,0.s) -Chars 3222 - 3226 [Qed.] 0. secs (0.u,0.s) -Chars 3228 - 3502 [Variant~all_infiniteF~{E~:~Typ...] 0. secs (0.u,0.s) -Chars 3503 - 3553 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) -Chars 3555 - 3647 [Definition~all_infinite_~{E}~{...] 0. secs (0.u,0.s) -Chars 3649 - 3808 [Lemma~all_infiniteF_mono~{E}~{...] 0. secs (0.u,0.s) -Chars 3809 - 3815 [Proof.] 0. secs (0.u,0.s) -Chars 3818 - 3849 [(induction~IN;~eauto~with~itree).] 0. secs (0.u,0.s) -Chars 3850 - 3854 [Qed.] 0. secs (0.u,0.s) -Chars 3856 - 3931 [Lemma~all_infinite__mono~{E}~{...] 0. secs (0.u,0.s) -Chars 3932 - 3938 [Proof.] 0. secs (0.u,0.s) -Chars 3941 - 3977 [(repeat~red;~intros~sim~sim'~L...] 0. secs (0.u,0.s) -Chars 3980 - 4006 [(unfold~all_infinite_~in~*).] 0. secs (0.u,0.s) -Chars 4007 - 4040 [(eapply~all_infiniteF_mono;~ea...] 0. secs (0.u,0.s) -Chars 4041 - 4045 [Qed.] 0. secs (0.u,0.s) -Chars 4047 - 4175 [Definition~all_infinite_mon~{E...] 0. secs (0.u,0.s) -Chars 4177 - 4258 [Definition~all_infinite~{E}~{A...] 0. secs (0.u,0.s) -Chars 4260 - 4303 [#[global]~Hint~Unfold~all_infi...] 0. secs (0.u,0.s) -Chars 4305 - 4592 [Inductive~may_converge~{E~:~Ty...] 0.002 secs (0.002u,0.s) -Chars 4593 - 4642 [#[global]~Hint~Constructors~ma...] 0. secs (0.u,0.s) -Chars 4644 - 4751 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) -Chars 4752 - 4758 [Proof.] 0. secs (0.u,0.s) -Chars 4761 - 4777 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 4778 - 4792 [(split;~intros).] 0. secs (0.u,0.s) -Chars 4795 - 4796 [-] 0. secs (0.u,0.s) -Chars 4797 - 4809 [(induction~H).] 0. secs (0.u,0.s) -Chars 4814 - 4815 [+] 0. secs (0.u,0.s) -Chars 4816 - 4837 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) -Chars 4838 - 4852 [(rewrite~<-~Ht).] 0.001 secs (0.001u,0.s) -Chars 4853 - 4858 [auto.] 0. secs (0.u,0.s) -Chars 4863 - 4864 [+] 0. secs (0.u,0.s) -Chars 4865 - 4888 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) -Chars 4889 - 4902 [(rewrite~<-~H).] 0.034 secs (0.034u,0.s) -Chars 4909 - 4918 [symmetry.] 0. secs (0.u,0.s) -Chars 4919 - 4924 [auto.] 0. secs (0.u,0.s) -Chars 4927 - 4928 [-] 0. secs (0.u,0.s) -Chars 4929 - 4941 [(induction~H).] 0. secs (0.u,0.s) -Chars 4946 - 4947 [+] 0. secs (0.u,0.s) -Chars 4948 - 4969 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) -Chars 4970 - 4981 [(rewrite~Ht).] 0. secs (0.u,0.s) -Chars 4982 - 4987 [auto.] 0. secs (0.u,0.s) -Chars 4992 - 4993 [+] 0. secs (0.u,0.s) -Chars 4994 - 5017 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) -Chars 5018 - 5029 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 5036 - 5042 [eauto.] 0. secs (0.u,0.s) -Chars 5043 - 5047 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5049 - 5126 [Ltac~contra_void~:=~try~match~...] 0. secs (0.u,0.s) -Chars 5128 - 5226 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) -Chars 5227 - 5233 [Proof.] 0. secs (0.u,0.s) -Chars 5236 - 5252 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 5253 - 5272 [(split;~intros~Hinf).] 0. secs (0.u,0.s) -Chars 5275 - 5276 [-] 0. secs (0.u,0.s) -Chars 5277 - 5298 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 5299 - 5324 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) -Chars 5325 - 5343 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5348 - 5369 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) -Chars 5370 - 5381 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 5382 - 5407 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 5408 - 5427 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 5432 - 5459 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 5460 - 5481 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 5486 - 5526 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 5531 - 5566 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 5567 - 5596 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 5601 - 5614 [(induction~Ht).] 0. secs (0.u,0.s) -Chars 5619 - 5620 [+] 0. secs (0.u,0.s) -Chars 5621 - 5636 [(inversion~Hinf).] 0. secs (0.u,0.s) -Chars 5641 - 5642 [+] 0. secs (0.u,0.s) -Chars 5643 - 5665 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 5666 - 5678 [constructor.] 0. secs (0.u,0.s) -Chars 5679 - 5697 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 5702 - 5703 [+] 0. secs (0.u,0.s) -Chars 5704 - 5726 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) -Chars 5727 - 5752 [dependent~destruction~H2.] 0.002 secs (0.002u,0.s) -Chars 5759 - 5772 [econstructor.] 0. secs (0.u,0.s) -Chars 5773 - 5782 [(intros~b).] 0. secs (0.u,0.s) -Chars 5783 - 5808 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) -Chars 5809 - 5818 [(apply~H0).] 0. secs (0.u,0.s) -Chars 5823 - 5824 [+] 0. secs (0.u,0.s) -Chars 5825 - 5836 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 5837 - 5859 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 5866 - 5904 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 5911 - 5944 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 5945 - 5972 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) -Chars 5973 - 5982 [exact~H0.] 0. secs (0.u,0.s) -Chars 5987 - 5988 [+] 0. secs (0.u,0.s) -Chars 5989 - 6001 [constructor.] 0. secs (0.u,0.s) -Chars 6002 - 6007 [step.] 0. secs (0.u,0.s) -Chars 6008 - 6035 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 6036 - 6057 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 6064 - 6075 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 6076 - 6087 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 6090 - 6091 [-] 0. secs (0.u,0.s) -Chars 6092 - 6113 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 6114 - 6139 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) -Chars 6140 - 6158 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6163 - 6184 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) -Chars 6185 - 6196 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 6197 - 6222 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 6223 - 6242 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 6247 - 6274 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 6275 - 6296 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 6301 - 6341 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 6346 - 6381 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 6382 - 6411 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 6416 - 6429 [(induction~Ht).] 0. secs (0.u,0.s) -Chars 6434 - 6435 [+] 0. secs (0.u,0.s) -Chars 6436 - 6451 [(inversion~Hinf).] 0. secs (0.u,0.s) -Chars 6456 - 6457 [+] 0. secs (0.u,0.s) -Chars 6458 - 6480 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 6481 - 6493 [constructor.] 0. secs (0.u,0.s) -Chars 6494 - 6512 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 6517 - 6518 [+] 0. secs (0.u,0.s) -Chars 6519 - 6541 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) -Chars 6542 - 6567 [dependent~destruction~H2.] 0.005 secs (0.005u,0.s) -Chars 6574 - 6587 [econstructor.] 0. secs (0.u,0.s) -Chars 6588 - 6597 [(intros~b).] 0. secs (0.u,0.s) -Chars 6598 - 6623 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) -Chars 6624 - 6633 [(apply~H0).] 0. secs (0.u,0.s) -Chars 6638 - 6639 [+] 0. secs (0.u,0.s) -Chars 6640 - 6652 [constructor.] 0. secs (0.u,0.s) -Chars 6653 - 6658 [step.] 0. secs (0.u,0.s) -Chars 6659 - 6686 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 6687 - 6708 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 6715 - 6726 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 6727 - 6738 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 6743 - 6744 [+] 0. secs (0.u,0.s) -Chars 6745 - 6756 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 6757 - 6779 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 6786 - 6824 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 6831 - 6864 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 6865 - 6892 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) -Chars 6893 - 6902 [exact~H0.] 0. secs (0.u,0.s) -Chars 6903 - 6907 [Qed.] 0.01 secs (0.009u,0.s) -Chars 6909 - 7053 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) -Chars 7054 - 7060 [Proof.] 0. secs (0.u,0.s) -Chars 7063 - 7074 [(intros~E~A).] 0. secs (0.u,0.s) -Chars 7075 - 7095 [(unfold~all_infinite).] 0. secs (0.u,0.s) -Chars 7096 - 7114 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 7115 - 7129 [(intros~t~Hcon).] 0. secs (0.u,0.s) -Chars 7132 - 7159 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 7160 - 7181 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 7184 - 7268 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) -Chars 7271 - 7272 [-] 0. secs (0.u,0.s) -Chars 7273 - 7281 [exfalso.] 0. secs (0.u,0.s) -Chars 7282 - 7297 [(apply~(Hcon~r)).] 0. secs (0.u,0.s) -Chars 7298 - 7309 [(rewrite~Ht).] 0.003 secs (0.003u,0.s) -Chars 7310 - 7322 [constructor.] 0. secs (0.u,0.s) -Chars 7323 - 7335 [reflexivity.] 0. secs (0.u,0.s) -Chars 7338 - 7339 [-] 0. secs (0.u,0.s) -Chars 7340 - 7352 [constructor.] 0. secs (0.u,0.s) -Chars 7353 - 7363 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7368 - 7394 [setoid_rewrite~Ht~in~Hcon.] 0.004 secs (0.004u,0.s) -Chars 7395 - 7427 [setoid_rewrite~tau_eutt~in~Hcon.] 0.001 secs (0.001u,0.s) -Chars 7428 - 7433 [auto.] 0. secs (0.u,0.s) -Chars 7436 - 7437 [-] 0. secs (0.u,0.s) -Chars 7438 - 7450 [constructor.] 0. secs (0.u,0.s) -Chars 7451 - 7460 [(intros~b).] 0. secs (0.u,0.s) -Chars 7461 - 7471 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7476 - 7493 [(intros~a~Hcontra).] 0. secs (0.u,0.s) -Chars 7494 - 7520 [setoid_rewrite~Ht~in~Hcon.] 0.009 secs (0.009u,0.s) -Chars 7525 - 7540 [(apply~(Hcon~a)).] 0. secs (0.u,0.s) -Chars 7541 - 7581 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 7582 - 7586 [Qed.] 0.002 secs (0.002u,0.s) -Chars 7588 - 7718 [Lemma~classic_converge~:~~~for...] 0. secs (0.u,0.s) -Chars 7719 - 7725 [Proof.] 0. secs (0.u,0.s) -Chars 7728 - 7735 [(intros).] 0. secs (0.u,0.s) -Chars 7736 - 7791 [(destruct~(classic~(exists~a,~...] 0. secs (0.u,0.s) -Chars 7794 - 7800 [right.] 0. secs (0.u,0.s) -Chars 7801 - 7836 [(apply~not_converge_to_all_inf...] 0. secs (0.u,0.s) -Chars 7837 - 7854 [(intros~a~Hcontra).] 0. secs (0.u,0.s) -Chars 7857 - 7865 [(apply~H).] 0. secs (0.u,0.s) -Chars 7866 - 7875 [exists~a.] 0. secs (0.u,0.s) -Chars 7876 - 7881 [auto.] 0. secs (0.u,0.s) -Chars 7882 - 7886 [Qed.] 0. secs (0.u,0.s) -Chars 7888 - 8025 [Lemma~all_infinite_not_converg...] 0. secs (0.u,0.s) -Chars 8026 - 8032 [Proof.] 0. secs (0.u,0.s) -Chars 8035 - 8056 [(intros~E~R~t~r~Hc~Hd).] 0. secs (0.u,0.s) -Chars 8057 - 8070 [(induction~Hc).] 0. secs (0.u,0.s) -Chars 8073 - 8074 [-] 0. secs (0.u,0.s) -Chars 8075 - 8091 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) -Chars 8092 - 8130 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 8135 - 8168 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 8169 - 8196 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) -Chars 8201 - 8214 [(inversion~Hd).] 0. secs (0.u,0.s) -Chars 8217 - 8218 [-] 0. secs (0.u,0.s) -Chars 8219 - 8230 [(apply~IHHc).] 0. secs (0.u,0.s) -Chars 8231 - 8247 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) -Chars 8252 - 8290 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 8295 - 8328 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 8329 - 8356 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) -Chars 8361 - 8374 [(inversion~Hd).] 0.001 secs (0.001u,0.s) -Chars 8375 - 8388 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 8389 - 8395 [subst.] 0. secs (0.u,0.s) -Chars 8396 - 8405 [(apply~H1).] 0. secs (0.u,0.s) -Chars 8406 - 8410 [Qed.] 0.004 secs (0.003u,0.s) -Chars 8412 - 8508 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) -Chars 8509 - 8515 [Proof.] 0. secs (0.u,0.s) -Chars 8518 - 8525 [(intros).] 0. secs (0.u,0.s) -Chars 8526 - 8538 [(inversion~H).] 0. secs (0.u,0.s) -Chars 8541 - 8542 [-] 0. secs (0.u,0.s) -Chars 8543 - 8568 [(apply~eutt_inv_Ret~in~H0).] 0. secs (0.u,0.s) -Chars 8569 - 8574 [auto.] 0. secs (0.u,0.s) -Chars 8577 - 8578 [-] 0. secs (0.u,0.s) -Chars 8579 - 8626 [(apply~eqit_inv~in~H0;~cbn~in~...] 0. secs (0.u,0.s) -Chars 8627 - 8631 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8706 - 8805 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) -Chars 8848 - 8966 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) -Chars 8967 - 8973 [Proof.] 0. secs (0.u,0.s) -Chars 8976 - 8993 [(intros~H~HContra).] 0. secs (0.u,0.s) -Chars 8994 - 9015 [(rewrite~HContra~in~H).] 0.001 secs (0.001u,0.s) -Chars 9018 - 9055 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 9058 - 9090 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 9091 - 9117 [(unfold~any_infinite_~in~H).] 0. secs (0.u,0.s) -Chars 9120 - 9132 [(inversion~H).] 0. secs (0.u,0.s) -Chars 9133 - 9137 [Qed.] 0.001 secs (0.001u,0.s) +Chars 171 - 207 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 210 - 285 [From~Stdlib~Require~Import~Set...] 0.003 secs (0.001u,0.001s) +Chars 287 - 392 [From~ITree~Require~Import~Axio...] 0.226 secs (0.188u,0.026s) +Chars 409 - 431 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 432 - 458 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) +Chars 460 - 483 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) +Chars 507 - 755 [Inductive~any_infiniteF~{E}~{X...] 0.001 secs (0.001u,0.s) +Chars 756 - 806 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) +Chars 808 - 894 [Definition~any_infinite_~{E}~{...] 0. secs (0.u,0.s) +Chars 895 - 939 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) +Chars 941 - 1017 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) +Chars 1018 - 1024 [Proof.] 0. secs (0.u,0.s) +Chars 1028 - 1047 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 1048 - 1096 [(induction~H0;~econstructor;~e...] 0.001 secs (0.u,0.s) +Chars 1098 - 1102 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1105 - 1235 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) +Chars 1237 - 1313 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) +Chars 1315 - 1413 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) +Chars 1414 - 1420 [Proof.] 0. secs (0.u,0.s) +Chars 1423 - 1439 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 1440 - 1459 [(split;~intros~Hinf).] 0. secs (0.u,0.s) +Chars 1462 - 1463 [-] 0. secs (0.u,0.s) +Chars 1464 - 1485 [revert~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 1486 - 1511 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) +Chars 1512 - 1530 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) +Chars 1535 - 1556 [(intros~t2~t1~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 1557 - 1568 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 1569 - 1594 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 1595 - 1614 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 1619 - 1646 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 1647 - 1668 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 1673 - 1713 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 1718 - 1753 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 1754 - 1783 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 1788 - 1801 [(induction~Ht).] 0.001 secs (0.u,0.s) +Chars 1806 - 1807 [+] 0. secs (0.u,0.s) +Chars 1808 - 1823 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 1828 - 1829 [+] 0. secs (0.u,0.s) +Chars 1830 - 1852 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 1853 - 1865 [constructor.] 0. secs (0.u,0.s) +Chars 1866 - 1884 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 1889 - 1890 [+] 0. secs (0.u,0.s) +Chars 1891 - 1913 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) +Chars 1914 - 1939 [dependent~destruction~H2.] 0.003 secs (0.002u,0.s) +Chars 1946 - 1959 [econstructor.] 0. secs (0.u,0.s) +Chars 1960 - 1985 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 1986 - 1992 [eauto.] 0. secs (0.u,0.s) +Chars 1997 - 1998 [+] 0. secs (0.u,0.s) +Chars 1999 - 2010 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2011 - 2033 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 2040 - 2078 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 2085 - 2118 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2119 - 2146 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 2147 - 2156 [exact~H0.] 0. secs (0.u,0.s) +Chars 2161 - 2162 [+] 0. secs (0.u,0.s) +Chars 2163 - 2175 [constructor.] 0. secs (0.u,0.s) +Chars 2176 - 2181 [step.] 0. secs (0.u,0.s) +Chars 2182 - 2209 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 2210 - 2231 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 2238 - 2249 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2250 - 2261 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 2264 - 2265 [-] 0. secs (0.u,0.s) +Chars 2266 - 2287 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 2288 - 2313 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) +Chars 2314 - 2332 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) +Chars 2337 - 2358 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 2359 - 2370 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 2371 - 2396 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 2397 - 2416 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 2421 - 2448 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 2449 - 2470 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 2475 - 2515 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 2520 - 2555 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 2556 - 2585 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 2590 - 2603 [(induction~Ht).] 0.001 secs (0.u,0.s) +Chars 2608 - 2609 [+] 0. secs (0.u,0.s) +Chars 2610 - 2625 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 2630 - 2631 [+] 0. secs (0.u,0.s) +Chars 2632 - 2654 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 2655 - 2667 [constructor.] 0. secs (0.u,0.s) +Chars 2668 - 2686 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 2691 - 2692 [+] 0. secs (0.u,0.s) +Chars 2693 - 2715 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) +Chars 2716 - 2741 [dependent~destruction~H2.] 0.032 secs (0.029u,0.003s) +Chars 2748 - 2761 [econstructor.] 0. secs (0.u,0.s) +Chars 2762 - 2787 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 2788 - 2794 [eauto.] 0. secs (0.u,0.s) +Chars 2799 - 2800 [+] 0. secs (0.u,0.s) +Chars 2801 - 2813 [constructor.] 0. secs (0.u,0.s) +Chars 2814 - 2819 [step.] 0. secs (0.u,0.s) +Chars 2820 - 2847 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 2848 - 2869 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 2876 - 2887 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2888 - 2899 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 2904 - 2905 [+] 0. secs (0.u,0.s) +Chars 2906 - 2917 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2918 - 2940 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 2947 - 2985 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 2992 - 3025 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 3026 - 3053 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 3054 - 3063 [exact~H0.] 0. secs (0.u,0.s) +Chars 3064 - 3068 [Qed.] 0.011 secs (0.011u,0.s) +Chars 3070 - 3129 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) +Chars 3130 - 3136 [Proof.] 0. secs (0.u,0.s) +Chars 3139 - 3159 [(unfold~any_infinite).] 0. secs (0.u,0.s) +Chars 3160 - 3178 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3181 - 3208 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 3209 - 3230 [(unfold~any_infinite_).] 0. secs (0.u,0.s) +Chars 3231 - 3235 [(cbn).] 0. secs (0.u,0.s) +Chars 3238 - 3250 [constructor.] 0. secs (0.u,0.s) +Chars 3251 - 3261 [exact~CIH.] 0. secs (0.u,0.s) +Chars 3262 - 3266 [Qed.] 0. secs (0.u,0.s) +Chars 3268 - 3542 [Variant~all_infiniteF~{E~:~Typ...] 0. secs (0.u,0.s) +Chars 3543 - 3593 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) +Chars 3595 - 3687 [Definition~all_infinite_~{E}~{...] 0. secs (0.u,0.s) +Chars 3689 - 3848 [Lemma~all_infiniteF_mono~{E}~{...] 0. secs (0.u,0.s) +Chars 3849 - 3855 [Proof.] 0. secs (0.u,0.s) +Chars 3858 - 3889 [(induction~IN;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 3890 - 3894 [Qed.] 0. secs (0.u,0.s) +Chars 3896 - 3971 [Lemma~all_infinite__mono~{E}~{...] 0. secs (0.u,0.s) +Chars 3972 - 3978 [Proof.] 0. secs (0.u,0.s) +Chars 3981 - 4017 [(repeat~red;~intros~sim~sim'~L...] 0. secs (0.u,0.s) +Chars 4020 - 4046 [(unfold~all_infinite_~in~*).] 0. secs (0.u,0.s) +Chars 4047 - 4080 [(eapply~all_infiniteF_mono;~ea...] 0. secs (0.u,0.s) +Chars 4081 - 4085 [Qed.] 0. secs (0.u,0.s) +Chars 4087 - 4215 [Definition~all_infinite_mon~{E...] 0. secs (0.u,0.s) +Chars 4217 - 4298 [Definition~all_infinite~{E}~{A...] 0. secs (0.u,0.s) +Chars 4300 - 4343 [#[global]~Hint~Unfold~all_infi...] 0. secs (0.u,0.s) +Chars 4345 - 4632 [Inductive~may_converge~{E~:~Ty...] 0.002 secs (0.002u,0.s) +Chars 4633 - 4682 [#[global]~Hint~Constructors~ma...] 0. secs (0.u,0.s) +Chars 4684 - 4791 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) +Chars 4792 - 4798 [Proof.] 0. secs (0.u,0.s) +Chars 4801 - 4817 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 4818 - 4832 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4835 - 4836 [-] 0. secs (0.u,0.s) +Chars 4837 - 4849 [(induction~H).] 0. secs (0.u,0.s) +Chars 4854 - 4855 [+] 0. secs (0.u,0.s) +Chars 4856 - 4877 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) +Chars 4878 - 4892 [(rewrite~<-~Ht).] 0.002 secs (0.002u,0.s) +Chars 4893 - 4898 [auto.] 0. secs (0.u,0.s) +Chars 4903 - 4904 [+] 0. secs (0.u,0.s) +Chars 4905 - 4928 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) +Chars 4929 - 4942 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 4949 - 4958 [symmetry.] 0. secs (0.u,0.s) +Chars 4959 - 4964 [auto.] 0. secs (0.u,0.s) +Chars 4967 - 4968 [-] 0. secs (0.u,0.s) +Chars 4969 - 4981 [(induction~H).] 0. secs (0.u,0.s) +Chars 4986 - 4987 [+] 0. secs (0.u,0.s) +Chars 4988 - 5009 [(apply~conv_ret;~auto).] 0.035 secs (0.034u,0.s) +Chars 5010 - 5021 [(rewrite~Ht).] 0. secs (0.u,0.s) +Chars 5022 - 5027 [auto.] 0. secs (0.u,0.s) +Chars 5032 - 5033 [+] 0. secs (0.u,0.s) +Chars 5034 - 5057 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5058 - 5069 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 5076 - 5082 [eauto.] 0. secs (0.u,0.s) +Chars 5083 - 5087 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5089 - 5166 [Ltac~contra_void~:=~try~match~...] 0. secs (0.u,0.s) +Chars 5168 - 5266 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) +Chars 5267 - 5273 [Proof.] 0. secs (0.u,0.s) +Chars 5276 - 5292 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 5293 - 5312 [(split;~intros~Hinf).] 0. secs (0.u,0.s) +Chars 5315 - 5316 [-] 0. secs (0.u,0.s) +Chars 5317 - 5338 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 5339 - 5364 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) +Chars 5365 - 5383 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 5388 - 5409 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 5410 - 5421 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 5422 - 5447 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 5448 - 5467 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 5472 - 5499 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 5500 - 5521 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 5526 - 5566 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 5571 - 5606 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 5607 - 5636 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 5641 - 5654 [(induction~Ht).] 0. secs (0.u,0.s) +Chars 5659 - 5660 [+] 0. secs (0.u,0.s) +Chars 5661 - 5676 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 5681 - 5682 [+] 0. secs (0.u,0.s) +Chars 5683 - 5705 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 5706 - 5718 [constructor.] 0. secs (0.u,0.s) +Chars 5719 - 5737 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 5742 - 5743 [+] 0. secs (0.u,0.s) +Chars 5744 - 5766 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) +Chars 5767 - 5792 [dependent~destruction~H2.] 0.002 secs (0.002u,0.s) +Chars 5799 - 5812 [econstructor.] 0. secs (0.u,0.s) +Chars 5813 - 5822 [(intros~b).] 0. secs (0.u,0.s) +Chars 5823 - 5848 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 5849 - 5858 [(apply~H0).] 0. secs (0.u,0.s) +Chars 5863 - 5864 [+] 0. secs (0.u,0.s) +Chars 5865 - 5876 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 5877 - 5899 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 5906 - 5944 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 5951 - 5984 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 5985 - 6012 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 6013 - 6022 [exact~H0.] 0. secs (0.u,0.s) +Chars 6027 - 6028 [+] 0. secs (0.u,0.s) +Chars 6029 - 6041 [constructor.] 0. secs (0.u,0.s) +Chars 6042 - 6047 [step.] 0. secs (0.u,0.s) +Chars 6048 - 6075 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 6076 - 6097 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 6104 - 6115 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 6116 - 6127 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 6130 - 6131 [-] 0. secs (0.u,0.s) +Chars 6132 - 6153 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) +Chars 6154 - 6179 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) +Chars 6180 - 6198 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 6203 - 6224 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 6225 - 6236 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 6237 - 6262 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) +Chars 6263 - 6282 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) +Chars 6287 - 6314 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 6315 - 6336 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 6341 - 6381 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 6386 - 6421 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 6422 - 6451 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) +Chars 6456 - 6469 [(induction~Ht).] 0. secs (0.u,0.s) +Chars 6474 - 6475 [+] 0. secs (0.u,0.s) +Chars 6476 - 6491 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 6496 - 6497 [+] 0. secs (0.u,0.s) +Chars 6498 - 6520 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 6521 - 6533 [constructor.] 0. secs (0.u,0.s) +Chars 6534 - 6552 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 6557 - 6558 [+] 0. secs (0.u,0.s) +Chars 6559 - 6581 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) +Chars 6582 - 6607 [dependent~destruction~H2.] 0.002 secs (0.002u,0.s) +Chars 6614 - 6627 [econstructor.] 0. secs (0.u,0.s) +Chars 6628 - 6637 [(intros~b).] 0. secs (0.u,0.s) +Chars 6638 - 6663 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 6664 - 6673 [(apply~H0).] 0. secs (0.u,0.s) +Chars 6678 - 6679 [+] 0. secs (0.u,0.s) +Chars 6680 - 6692 [constructor.] 0. secs (0.u,0.s) +Chars 6693 - 6698 [step.] 0. secs (0.u,0.s) +Chars 6699 - 6726 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 6727 - 6748 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 6755 - 6766 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 6767 - 6778 [exact~Hinf.] 0. secs (0.u,0.s) +Chars 6783 - 6784 [+] 0. secs (0.u,0.s) +Chars 6785 - 6796 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 6797 - 6819 [(inversion~Hinf;~subst).] 0.004 secs (0.004u,0.s) +Chars 6826 - 6864 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 6871 - 6904 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 6905 - 6932 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 6933 - 6942 [exact~H0.] 0. secs (0.u,0.s) +Chars 6943 - 6947 [Qed.] 0.011 secs (0.01u,0.s) +Chars 6949 - 7093 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) +Chars 7094 - 7100 [Proof.] 0. secs (0.u,0.s) +Chars 7103 - 7114 [(intros~E~A).] 0. secs (0.u,0.s) +Chars 7115 - 7135 [(unfold~all_infinite).] 0. secs (0.u,0.s) +Chars 7136 - 7154 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 7155 - 7169 [(intros~t~Hcon).] 0. secs (0.u,0.s) +Chars 7172 - 7199 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) +Chars 7200 - 7221 [(unfold~all_infinite_).] 0. secs (0.u,0.s) +Chars 7224 - 7308 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) +Chars 7311 - 7312 [-] 0. secs (0.u,0.s) +Chars 7313 - 7321 [exfalso.] 0. secs (0.u,0.s) +Chars 7322 - 7337 [(apply~(Hcon~r)).] 0. secs (0.u,0.s) +Chars 7338 - 7349 [(rewrite~Ht).] 0.004 secs (0.004u,0.s) +Chars 7350 - 7362 [constructor.] 0. secs (0.u,0.s) +Chars 7363 - 7375 [reflexivity.] 0. secs (0.u,0.s) +Chars 7378 - 7379 [-] 0. secs (0.u,0.s) +Chars 7380 - 7392 [constructor.] 0. secs (0.u,0.s) +Chars 7393 - 7403 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7408 - 7434 [setoid_rewrite~Ht~in~Hcon.] 0.004 secs (0.004u,0.s) +Chars 7435 - 7467 [setoid_rewrite~tau_eutt~in~Hcon.] 0.001 secs (0.001u,0.s) +Chars 7468 - 7473 [auto.] 0. secs (0.u,0.s) +Chars 7476 - 7477 [-] 0. secs (0.u,0.s) +Chars 7478 - 7490 [constructor.] 0. secs (0.u,0.s) +Chars 7491 - 7500 [(intros~b).] 0. secs (0.u,0.s) +Chars 7501 - 7511 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7516 - 7533 [(intros~a~Hcontra).] 0. secs (0.u,0.s) +Chars 7534 - 7560 [setoid_rewrite~Ht~in~Hcon.] 0.009 secs (0.009u,0.s) +Chars 7565 - 7580 [(apply~(Hcon~a)).] 0. secs (0.u,0.s) +Chars 7581 - 7621 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 7622 - 7626 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7628 - 7758 [Lemma~classic_converge~:~~~for...] 0. secs (0.u,0.s) +Chars 7759 - 7765 [Proof.] 0. secs (0.u,0.s) +Chars 7768 - 7775 [(intros).] 0. secs (0.u,0.s) +Chars 7776 - 7831 [(destruct~(classic~(exists~a,~...] 0. secs (0.u,0.s) +Chars 7834 - 7840 [right.] 0. secs (0.u,0.s) +Chars 7841 - 7876 [(apply~not_converge_to_all_inf...] 0. secs (0.u,0.s) +Chars 7877 - 7894 [(intros~a~Hcontra).] 0. secs (0.u,0.s) +Chars 7897 - 7905 [(apply~H).] 0. secs (0.u,0.s) +Chars 7906 - 7915 [exists~a.] 0. secs (0.u,0.s) +Chars 7916 - 7921 [auto.] 0. secs (0.u,0.s) +Chars 7922 - 7926 [Qed.] 0. secs (0.u,0.s) +Chars 7928 - 8065 [Lemma~all_infinite_not_converg...] 0. secs (0.u,0.s) +Chars 8066 - 8072 [Proof.] 0. secs (0.u,0.s) +Chars 8075 - 8096 [(intros~E~R~t~r~Hc~Hd).] 0. secs (0.u,0.s) +Chars 8097 - 8110 [(induction~Hc).] 0. secs (0.u,0.s) +Chars 8113 - 8114 [-] 0. secs (0.u,0.s) +Chars 8115 - 8131 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) +Chars 8132 - 8170 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 8175 - 8208 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 8209 - 8236 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) +Chars 8241 - 8254 [(inversion~Hd).] 0. secs (0.u,0.s) +Chars 8257 - 8258 [-] 0. secs (0.u,0.s) +Chars 8259 - 8270 [(apply~IHHc).] 0. secs (0.u,0.s) +Chars 8271 - 8287 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) +Chars 8292 - 8330 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) +Chars 8335 - 8368 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 8369 - 8396 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) +Chars 8401 - 8414 [(inversion~Hd).] 0.001 secs (0.001u,0.s) +Chars 8415 - 8428 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 8429 - 8435 [subst.] 0. secs (0.u,0.s) +Chars 8436 - 8445 [(apply~H1).] 0. secs (0.u,0.s) +Chars 8446 - 8450 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8452 - 8548 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) +Chars 8549 - 8555 [Proof.] 0. secs (0.u,0.s) +Chars 8558 - 8565 [(intros).] 0. secs (0.u,0.s) +Chars 8566 - 8578 [(inversion~H).] 0. secs (0.u,0.s) +Chars 8581 - 8582 [-] 0. secs (0.u,0.s) +Chars 8583 - 8608 [(apply~eutt_inv_Ret~in~H0).] 0. secs (0.u,0.s) +Chars 8609 - 8614 [auto.] 0. secs (0.u,0.s) +Chars 8617 - 8618 [-] 0. secs (0.u,0.s) +Chars 8619 - 8666 [(apply~eqit_inv~in~H0;~cbn~in~...] 0.001 secs (0.001u,0.s) +Chars 8667 - 8671 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8746 - 8845 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) +Chars 8888 - 9006 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) +Chars 9007 - 9013 [Proof.] 0. secs (0.u,0.s) +Chars 9016 - 9033 [(intros~H~HContra).] 0. secs (0.u,0.s) +Chars 9034 - 9055 [(rewrite~HContra~in~H).] 0.001 secs (0.001u,0.s) +Chars 9058 - 9095 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) +Chars 9098 - 9130 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) +Chars 9131 - 9157 [(unfold~any_infinite_~in~H).] 0. secs (0.u,0.s) +Chars 9160 - 9172 [(inversion~H).] 0. secs (0.u,0.s) +Chars 9173 - 9177 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Leaf.v.timing b/theories/Props/Leaf.v.timing index dac53581..6cf1b074 100644 --- a/theories/Props/Leaf.v.timing +++ b/theories/Props/Leaf.v.timing @@ -1,401 +1,402 @@ -Chars 57 - 260 [From~ITree~Require~Import~Basi...] 0.094 secs (0.079u,0.013s) -Chars 262 - 323 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 324 - 337 [Import~ITree.] 0. secs (0.u,0.s) -Chars 338 - 360 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 826 - 1118 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.002 secs (0.002u,0.s) -Chars 1119 - 1160 [#[global]~Hint~Constructors~Le...] 0. secs (0.u,0.s) -Chars 1162 - 1183 [Module~LeafNotations.] 0. secs (0.u,0.s) -Chars 1186 - 1233 [Notation~"a~∈~t"~:=~(Leaf~a~t)...] 0. secs (0.u,0.s) -Chars 1234 - 1252 [End~LeafNotations.] 0. secs (0.u,0.s) -Chars 1254 - 1275 [Import~LeafNotations.] 0. secs (0.u,0.s) -Chars 1304 - 1363 [Lemma~Leaf_Ret~:~forall~E~R~a,...] 0. secs (0.u,0.s) -Chars 1364 - 1370 [Proof.] 0. secs (0.u,0.s) -Chars 1373 - 1407 [(intros;~econstructor;~reflexi...] 0. secs (0.u,0.s) -Chars 1408 - 1412 [Qed.] 0. secs (0.u,0.s) -Chars 1414 - 1488 [Lemma~Leaf_Tau~:~forall~E~R~a~...] 0. secs (0.u,0.s) -Chars 1489 - 1495 [Proof.] 0. secs (0.u,0.s) -Chars 1498 - 1542 [(intros;~econstructor;~[~refle...] 0. secs (0.u,0.s) -Chars 1543 - 1547 [Qed.] 0. secs (0.u,0.s) -Chars 1549 - 1650 [Lemma~Leaf_Vis~:~~~forall~E~X~...] 0. secs (0.u,0.s) -Chars 1651 - 1657 [Proof.] 0. secs (0.u,0.s) -Chars 1660 - 1711 [(intros~*~IN;~econstructor~3;~...] 0. secs (0.u,0.s) -Chars 1712 - 1716 [Qed.] 0. secs (0.u,0.s) -Chars 1742 - 1822 [Lemma~Leaf_Ret_inv~:~forall~E~...] 0. secs (0.u,0.s) -Chars 1823 - 1829 [Proof.] 0. secs (0.u,0.s) -Chars 1832 - 1878 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) -Chars 1879 - 1883 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1885 - 1963 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) -Chars 1964 - 1970 [Proof.] 0. secs (0.u,0.s) -Chars 1973 - 2019 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) -Chars 2020 - 2024 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2026 - 2135 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) -Chars 2136 - 2142 [Proof.] 0. secs (0.u,0.s) -Chars 2145 - 2193 [(intros~*~IN~*;~inv~IN;~cbn~in...] 0.003 secs (0.003u,0.s) -Chars 2196 - 2208 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 2211 - 2326 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) -Chars 2329 - 2335 [eauto.] 0. secs (0.u,0.s) -Chars 2336 - 2340 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2513 - 2650 [Lemma~Leaf_eutt_l~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 2651 - 2657 [Proof.] 0. secs (0.u,0.s) -Chars 2660 - 2691 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) -Chars 2694 - 2722 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) -Chars 2726 - 2727 [-] 0. secs (0.u,0.s) -Chars 2728 - 2739 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 2745 - 2772 [(rewrite~H~in~EQ;~clear~H~t).] 0. secs (0.u,0.s) -Chars 2777 - 2809 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 2814 - 2855 [(hinduction~EQ~before~R;~intro...] 0.042 secs (0.041u,0.s) -Chars 2860 - 2861 [+] 0. secs (0.u,0.s) -Chars 2862 - 2889 [(inv~Heqi;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 2894 - 2895 [+] 0. secs (0.u,0.s) -Chars 2896 - 2946 [(edestruct~IHEQ~as~(b,~(IN,~HR...] 0.001 secs (0.001u,0.s) -Chars 2949 - 2950 [-] 0. secs (0.u,0.s) -Chars 2951 - 2990 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 2995 - 3028 [(remember~(TauF~u);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 3033 - 3084 [(hinduction~EQ~before~R;~intro...] 0.027 secs (0.024u,0.002s) -Chars 3089 - 3090 [+] 0. secs (0.u,0.s) -Chars 3091 - 3158 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.002 secs (0.001u,0.s) -Chars 3163 - 3164 [+] 0. secs (0.u,0.s) -Chars 3165 - 3178 [(eapply~IHFIN).] 0. secs (0.u,0.s) -Chars 3179 - 3188 [now~step.] 0.002 secs (0.001u,0.s) -Chars 3194 - 3195 [+] 0. secs (0.u,0.s) -Chars 3196 - 3262 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) -Chars 3265 - 3266 [-] 0. secs (0.u,0.s) -Chars 3267 - 3306 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0.001 secs (0.u,0.s) -Chars 3311 - 3346 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) -Chars 3351 - 3400 [(hinduction~EQ~before~R;~intro...] 0.002 secs (0.001u,0.s) -Chars 3405 - 3406 [+] 0. secs (0.u,0.s) -Chars 3407 - 3426 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 3433 - 3551 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) -Chars 3558 - 3565 [(intros).] 0. secs (0.u,0.s) -Chars 3566 - 3630 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.003 secs (0.002u,0.s) -Chars 3635 - 3636 [+] 0. secs (0.u,0.s) -Chars 3637 - 3704 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) -Chars 3705 - 3709 [Qed.] 0.013 secs (0.011u,0.002s) -Chars 3711 - 3848 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 3849 - 3855 [Proof.] 0. secs (0.u,0.s) -Chars 3858 - 3874 [(intros~*~EQ~FIN).] 0. secs (0.u,0.s) -Chars 3877 - 3899 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) -Chars 3902 - 3916 [revert~EQ~FIN.] 0. secs (0.u,0.s) -Chars 3919 - 3938 [(apply~@Leaf_eutt_l).] 0. secs (0.u,0.s) -Chars 3939 - 3943 [Qed.] 0. secs (0.u,0.s) -Chars 3945 - 4027 [#[global]~Instance~Leaf_eutt~~...] 0. secs (0.u,0.s) -Chars 4028 - 4034 [Proof.] 0. secs (0.u,0.s) -Chars 4037 - 4083 [(apply~proper_sym_impl_iff_2;~...] 0. secs (0.u,0.s) -Chars 4086 - 4118 [(unfold~Proper,~respectful,~im...] 0. secs (0.u,0.s) -Chars 4119 - 4133 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 4136 - 4205 [(edestruct~@Leaf_eutt_l~as~[?~...] 0. secs (0.u,0.s) -Chars 4206 - 4210 [Qed.] 0. secs (0.u,0.s) -Chars 4268 - 4389 [Lemma~Leaf_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) -Chars 4390 - 4396 [Proof.] 0. secs (0.u,0.s) -Chars 4399 - 4431 [(intros~*~INt~INk;~induction~I...] 0. secs (0.u,0.s) -Chars 4434 - 4435 [-] 0. secs (0.u,0.s) -Chars 4436 - 4479 [(rewrite~(itree_eta~t),~H,~bin...] 0.006 secs (0.006u,0.s) -Chars 4482 - 4483 [-] 0. secs (0.u,0.s) -Chars 4484 - 4525 [(rewrite~(itree_eta~t),~H,~tau...] 0.006 secs (0.006u,0.s) -Chars 4528 - 4529 [-] 0. secs (0.u,0.s) -Chars 4530 - 4565 [(rewrite~(itree_eta~t),~H,~bin...] 0.005 secs (0.005u,0.s) -Chars 4570 - 4598 [(apply~Leaf_Vis~with~x;~auto).] 0. secs (0.u,0.s) -Chars 4599 - 4603 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4605 - 4736 [Lemma~Leaf_bind_inv~:~~~forall...] 0. secs (0.u,0.s) -Chars 4737 - 4743 [Proof.] 0. secs (0.u,0.s) -Chars 4746 - 4793 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) -Chars 4796 - 4812 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 4815 - 4864 [(induction~FIN;~intros~t'~k'~-...] 0. secs (0.u,0.s) -Chars 4867 - 4868 [-] 0. secs (0.u,0.s) -Chars 4869 - 4899 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 4904 - 4943 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 4948 - 4974 [(exists~r;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 4977 - 4978 [-] 0. secs (0.u,0.s) -Chars 4979 - 5009 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 5014 - 5086 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 5091 - 5128 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) -Chars 5133 - 5203 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) -Chars 5206 - 5207 [-] 0. secs (0.u,0.s) -Chars 5208 - 5238 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 5243 - 5315 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) -Chars 5320 - 5339 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 5344 - 5459 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) -Chars 5464 - 5471 [(intros).] 0. secs (0.u,0.s) -Chars 5476 - 5552 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) -Chars 5553 - 5557 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5761 - 6215 [Lemma~eqit_clo_bind_gen~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 6216 - 6222 [Proof.] 0. secs (0.u,0.s) -Chars 6225 - 6249 [(intros~E~R1~R2~RR~U1~U2).] 0. secs (0.u,0.s) -Chars 6252 - 6282 [(intros~UU~b1~b2~c~t1~t2~k1~k2).] 0. secs (0.u,0.s) -Chars 6285 - 6307 [revert~UU~t1~t2~k1~k2.] 0. secs (0.u,0.s) -Chars 6310 - 6326 [tower~induction.] 0.005 secs (0.005u,0.s) -Chars 6329 - 6330 [{] 0. secs (0.u,0.s) -Chars 6331 - 6338 [(intros).] 0. secs (0.u,0.s) -Chars 6339 - 6359 [(unfold~Datatypes.id).] 0. secs (0.u,0.s) -Chars 6360 - 6375 [(apply~H0;~auto).] 0.002 secs (0.002u,0.s) -Chars 6376 - 6377 [}] 0. secs (0.u,0.s) -Chars 6380 - 6392 [(intros~x~IH).] 0. secs (0.u,0.s) -Chars 6395 - 6426 [(intros~UU~t1~t2~k1~k2~EQT~EQKL).] 0. secs (0.u,0.s) -Chars 6429 - 6454 [(cbn[eqit_mon~body]~in~*).] 0. secs (0.u,0.s) -Chars 6457 - 6475 [(unfold~eqit_~in~*).] 0. secs (0.u,0.s) -Chars 6478 - 6492 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 6495 - 6509 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 6512 - 6545 [(hinduction~EQT~before~RR;~int...] 0.003 secs (0.003u,0.s) -Chars 6548 - 6585 [1-3:~(rewrite~2!observe_bind;~...] 0.021 secs (0.021u,0.s) -Chars 6589 - 6590 [+] 0. secs (0.u,0.s) -Chars 6605 - 6616 [(apply~EQKL).] 0. secs (0.u,0.s) -Chars 6622 - 6623 [*] 0. secs (0.u,0.s) -Chars 6624 - 6644 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) -Chars 6649 - 6650 [*] 0. secs (0.u,0.s) -Chars 6651 - 6671 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) -Chars 6676 - 6677 [*] 0. secs (0.u,0.s) -Chars 6678 - 6688 [exact~REL.] 0. secs (0.u,0.s) -Chars 6691 - 6692 [+] 0. secs (0.u,0.s) -Chars 6707 - 6712 [taus.] 0. secs (0.u,0.s) -Chars 6718 - 6728 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 6733 - 6734 [*] 0. secs (0.u,0.s) -Chars 6735 - 6745 [exact~REL.] 0. secs (0.u,0.s) -Chars 6750 - 6751 [*] 0. secs (0.u,0.s) -Chars 6752 - 6776 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) -Chars 6783 - 6788 [step.] 0.003 secs (0.003u,0.s) -Chars 6789 - 6800 [(apply~EQKL).] 0. secs (0.u,0.s) -Chars 6807 - 6809 [--] 0. secs (0.u,0.s) -Chars 6810 - 6832 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) -Chars 6839 - 6841 [--] 0. secs (0.u,0.s) -Chars 6842 - 6864 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) -Chars 6871 - 6873 [--] 0. secs (0.u,0.s) -Chars 6874 - 6883 [exact~HU.] 0. secs (0.u,0.s) -Chars 6886 - 6887 [+] 0. secs (0.u,0.s) -Chars 6902 - 6914 [constructor.] 0. secs (0.u,0.s) -Chars 6915 - 6923 [intro~v.] 0. secs (0.u,0.s) -Chars 6928 - 6938 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 6943 - 6944 [*] 0. secs (0.u,0.s) -Chars 6945 - 6955 [(apply~REL).] 0. secs (0.u,0.s) -Chars 6960 - 6961 [*] 0. secs (0.u,0.s) -Chars 6962 - 6986 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) -Chars 6993 - 6998 [step.] 0.002 secs (0.002u,0.s) -Chars 6999 - 7010 [(apply~EQKL).] 0. secs (0.u,0.s) -Chars 7017 - 7019 [--] 0. secs (0.u,0.s) -Chars 7020 - 7042 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) -Chars 7049 - 7051 [--] 0. secs (0.u,0.s) -Chars 7052 - 7074 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) -Chars 7081 - 7083 [--] 0. secs (0.u,0.s) -Chars 7084 - 7093 [exact~HU.] 0. secs (0.u,0.s) -Chars 7096 - 7097 [+] 0. secs (0.u,0.s) -Chars 7113 - 7134 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 7135 - 7143 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 7148 - 7153 [taul.] 0. secs (0.u,0.s) -Chars 7158 - 7189 [(eapply~IHEQT;~eauto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 7192 - 7193 [+] 0. secs (0.u,0.s) -Chars 7209 - 7242 [setoid_rewrite~observe_bind~at~2.] 0.023 secs (0.023u,0.s) -Chars 7243 - 7251 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 7256 - 7261 [taur.] 0. secs (0.u,0.s) -Chars 7266 - 7297 [(eapply~IHEQT;~eauto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 7298 - 7302 [Qed.] 0.013 secs (0.013u,0.s) -Chars 7352 - 7740 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) -Chars 7741 - 7747 [Proof.] 0. secs (0.u,0.s) -Chars 7750 - 7759 [(intros~*).] 0. secs (0.u,0.s) -Chars 7760 - 7772 [(unfold~eutt).] 0. secs (0.u,0.s) -Chars 7773 - 7797 [(apply~eqit_clo_bind_gen).] 0.001 secs (0.001u,0.s) -Chars 7798 - 7802 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7862 - 8069 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) -Chars 8070 - 8076 [Proof.] 0. secs (0.u,0.s) -Chars 8079 - 8113 [(intros;~eapply~eutt_bind_eutt...] 0. secs (0.u,0.s) -Chars 8116 - 8128 [reflexivity.] 0. secs (0.u,0.s) -Chars 8131 - 8155 [(intros~*~IN~_~<-;~eauto).] 0. secs (0.u,0.s) -Chars 8156 - 8160 [Qed.] 0. secs (0.u,0.s) -Chars 8162 - 8389 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) -Chars 8390 - 8396 [Proof.] 0. secs (0.u,0.s) -Chars 8399 - 8418 [(intros~EQIT~r~HRET).] 0. secs (0.u,0.s) -Chars 8421 - 8439 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) -Chars 8442 - 8503 [(induction~HRET;~intros;~rewri...] 0.14 secs (0.139u,0.s) -Chars 8506 - 8507 [-] 0. secs (0.u,0.s) -Chars 8508 - 8519 [assumption.] 0. secs (0.u,0.s) -Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8551 [(rewrite~2!tau_eutt~in~EQIT).] 0.042 secs (0.042u,0.s) -Chars 8552 - 8557 [auto.] 0. secs (0.u,0.s) +Chars 56 - 92 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) +Chars 95 - 298 [From~ITree~Require~Import~Basi...] 0.1 secs (0.078u,0.013s) +Chars 300 - 361 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.001s) +Chars 362 - 375 [Import~ITree.] 0. secs (0.u,0.s) +Chars 376 - 398 [Import~ITreeNotations.] 0. secs (0.u,0.s) +Chars 864 - 1156 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.002 secs (0.002u,0.s) +Chars 1157 - 1198 [#[global]~Hint~Constructors~Le...] 0. secs (0.u,0.s) +Chars 1200 - 1221 [Module~LeafNotations.] 0. secs (0.u,0.s) +Chars 1224 - 1271 [Notation~"a~∈~t"~:=~(Leaf~a~t)...] 0. secs (0.u,0.s) +Chars 1272 - 1290 [End~LeafNotations.] 0. secs (0.u,0.s) +Chars 1292 - 1313 [Import~LeafNotations.] 0. secs (0.u,0.s) +Chars 1342 - 1401 [Lemma~Leaf_Ret~:~forall~E~R~a,...] 0. secs (0.u,0.s) +Chars 1402 - 1408 [Proof.] 0. secs (0.u,0.s) +Chars 1411 - 1445 [(intros;~econstructor;~reflexi...] 0. secs (0.u,0.s) +Chars 1446 - 1450 [Qed.] 0. secs (0.u,0.s) +Chars 1452 - 1526 [Lemma~Leaf_Tau~:~forall~E~R~a~...] 0. secs (0.u,0.s) +Chars 1527 - 1533 [Proof.] 0. secs (0.u,0.s) +Chars 1536 - 1580 [(intros;~econstructor;~[~refle...] 0. secs (0.u,0.s) +Chars 1581 - 1585 [Qed.] 0. secs (0.u,0.s) +Chars 1587 - 1688 [Lemma~Leaf_Vis~:~~~forall~E~X~...] 0. secs (0.u,0.s) +Chars 1689 - 1695 [Proof.] 0. secs (0.u,0.s) +Chars 1698 - 1749 [(intros~*~IN;~econstructor~3;~...] 0. secs (0.u,0.s) +Chars 1750 - 1754 [Qed.] 0. secs (0.u,0.s) +Chars 1780 - 1860 [Lemma~Leaf_Ret_inv~:~forall~E~...] 0. secs (0.u,0.s) +Chars 1861 - 1867 [Proof.] 0. secs (0.u,0.s) +Chars 1870 - 1916 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) +Chars 1917 - 1921 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1923 - 2001 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) +Chars 2002 - 2008 [Proof.] 0. secs (0.u,0.s) +Chars 2011 - 2057 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.004 secs (0.004u,0.s) +Chars 2058 - 2062 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2064 - 2173 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) +Chars 2174 - 2180 [Proof.] 0. secs (0.u,0.s) +Chars 2183 - 2231 [(intros~*~IN~*;~inv~IN;~cbn~in...] 0.004 secs (0.003u,0.s) +Chars 2234 - 2246 [revert~x~H0.] 0. secs (0.u,0.s) +Chars 2249 - 2364 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 2367 - 2373 [eauto.] 0. secs (0.u,0.s) +Chars 2374 - 2378 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2551 - 2688 [Lemma~Leaf_eutt_l~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 2689 - 2695 [Proof.] 0. secs (0.u,0.s) +Chars 2698 - 2729 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) +Chars 2732 - 2760 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) +Chars 2764 - 2765 [-] 0. secs (0.u,0.s) +Chars 2766 - 2777 [step~in~EQ.] 0. secs (0.u,0.s) +Chars 2783 - 2810 [(rewrite~H~in~EQ;~clear~H~t).] 0. secs (0.u,0.s) +Chars 2815 - 2847 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) +Chars 2852 - 2893 [(hinduction~EQ~before~R;~intro...] 0.045 secs (0.045u,0.s) +Chars 2898 - 2899 [+] 0. secs (0.u,0.s) +Chars 2900 - 2927 [(inv~Heqi;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 2932 - 2933 [+] 0. secs (0.u,0.s) +Chars 2934 - 2984 [(edestruct~IHEQ~as~(b,~(IN,~HR...] 0.001 secs (0.001u,0.s) +Chars 2987 - 2988 [-] 0. secs (0.u,0.s) +Chars 2989 - 3028 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 3033 - 3066 [(remember~(TauF~u);~genobs~u2~...] 0. secs (0.u,0.s) +Chars 3071 - 3122 [(hinduction~EQ~before~R;~intro...] 0.028 secs (0.025u,0.002s) +Chars 3127 - 3128 [+] 0. secs (0.u,0.s) +Chars 3129 - 3196 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.002 secs (0.001u,0.s) +Chars 3201 - 3202 [+] 0. secs (0.u,0.s) +Chars 3203 - 3216 [(eapply~IHFIN).] 0. secs (0.u,0.s) +Chars 3217 - 3226 [now~step.] 0.002 secs (0.001u,0.s) +Chars 3232 - 3233 [+] 0. secs (0.u,0.s) +Chars 3234 - 3300 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) +Chars 3303 - 3304 [-] 0. secs (0.u,0.s) +Chars 3305 - 3344 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) +Chars 3349 - 3384 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) +Chars 3389 - 3438 [(hinduction~EQ~before~R;~intro...] 0.002 secs (0.001u,0.s) +Chars 3443 - 3444 [+] 0. secs (0.u,0.s) +Chars 3445 - 3464 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) +Chars 3471 - 3589 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) +Chars 3596 - 3603 [(intros).] 0. secs (0.u,0.s) +Chars 3604 - 3668 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.003 secs (0.002u,0.s) +Chars 3673 - 3674 [+] 0. secs (0.u,0.s) +Chars 3675 - 3742 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) +Chars 3743 - 3747 [Qed.] 0.014 secs (0.011u,0.002s) +Chars 3749 - 3886 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 3887 - 3893 [Proof.] 0. secs (0.u,0.s) +Chars 3896 - 3912 [(intros~*~EQ~FIN).] 0. secs (0.u,0.s) +Chars 3915 - 3937 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) +Chars 3940 - 3954 [revert~EQ~FIN.] 0. secs (0.u,0.s) +Chars 3957 - 3976 [(apply~@Leaf_eutt_l).] 0. secs (0.u,0.s) +Chars 3977 - 3981 [Qed.] 0. secs (0.u,0.s) +Chars 3983 - 4065 [#[global]~Instance~Leaf_eutt~~...] 0. secs (0.u,0.s) +Chars 4066 - 4072 [Proof.] 0. secs (0.u,0.s) +Chars 4075 - 4121 [(apply~proper_sym_impl_iff_2;~...] 0. secs (0.u,0.s) +Chars 4124 - 4156 [(unfold~Proper,~respectful,~im...] 0. secs (0.u,0.s) +Chars 4157 - 4171 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 4174 - 4243 [(edestruct~@Leaf_eutt_l~as~[?~...] 0. secs (0.u,0.s) +Chars 4244 - 4248 [Qed.] 0. secs (0.u,0.s) +Chars 4306 - 4427 [Lemma~Leaf_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) +Chars 4428 - 4434 [Proof.] 0. secs (0.u,0.s) +Chars 4437 - 4469 [(intros~*~INt~INk;~induction~I...] 0. secs (0.u,0.s) +Chars 4472 - 4473 [-] 0. secs (0.u,0.s) +Chars 4474 - 4517 [(rewrite~(itree_eta~t),~H,~bin...] 0.006 secs (0.006u,0.s) +Chars 4520 - 4521 [-] 0. secs (0.u,0.s) +Chars 4522 - 4563 [(rewrite~(itree_eta~t),~H,~tau...] 0.006 secs (0.006u,0.s) +Chars 4566 - 4567 [-] 0. secs (0.u,0.s) +Chars 4568 - 4603 [(rewrite~(itree_eta~t),~H,~bin...] 0.005 secs (0.005u,0.s) +Chars 4608 - 4636 [(apply~Leaf_Vis~with~x;~auto).] 0. secs (0.u,0.s) +Chars 4637 - 4641 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4643 - 4774 [Lemma~Leaf_bind_inv~:~~~forall...] 0. secs (0.u,0.s) +Chars 4775 - 4781 [Proof.] 0. secs (0.u,0.s) +Chars 4784 - 4831 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) +Chars 4834 - 4850 [revert~t~k~Hequ.] 0. secs (0.u,0.s) +Chars 4853 - 4902 [(induction~FIN;~intros~t'~k'~-...] 0. secs (0.u,0.s) +Chars 4905 - 4906 [-] 0. secs (0.u,0.s) +Chars 4907 - 4937 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 4942 - 4981 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 4986 - 5012 [(exists~r;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 5015 - 5016 [-] 0. secs (0.u,0.s) +Chars 5017 - 5047 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 5052 - 5124 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.002 secs (0.001u,0.s) +Chars 5129 - 5166 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) +Chars 5171 - 5241 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) +Chars 5244 - 5245 [-] 0. secs (0.u,0.s) +Chars 5246 - 5276 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) +Chars 5281 - 5353 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) +Chars 5358 - 5377 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) +Chars 5382 - 5497 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 5502 - 5509 [(intros).] 0. secs (0.u,0.s) +Chars 5514 - 5590 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) +Chars 5591 - 5595 [Qed.] 0.004 secs (0.004u,0.s) +Chars 5799 - 6253 [Lemma~eqit_clo_bind_gen~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 6254 - 6260 [Proof.] 0. secs (0.u,0.s) +Chars 6263 - 6287 [(intros~E~R1~R2~RR~U1~U2).] 0. secs (0.u,0.s) +Chars 6290 - 6320 [(intros~UU~b1~b2~c~t1~t2~k1~k2).] 0. secs (0.u,0.s) +Chars 6323 - 6345 [revert~UU~t1~t2~k1~k2.] 0. secs (0.u,0.s) +Chars 6348 - 6364 [tower~induction.] 0.005 secs (0.004u,0.s) +Chars 6367 - 6368 [{] 0. secs (0.u,0.s) +Chars 6369 - 6376 [(intros).] 0. secs (0.u,0.s) +Chars 6377 - 6397 [(unfold~Datatypes.id).] 0. secs (0.u,0.s) +Chars 6398 - 6413 [(apply~H0;~auto).] 0.002 secs (0.002u,0.s) +Chars 6414 - 6415 [}] 0. secs (0.u,0.s) +Chars 6418 - 6430 [(intros~x~IH).] 0. secs (0.u,0.s) +Chars 6433 - 6464 [(intros~UU~t1~t2~k1~k2~EQT~EQKL).] 0. secs (0.u,0.s) +Chars 6467 - 6492 [(cbn[eqit_mon~body]~in~*).] 0. secs (0.u,0.s) +Chars 6495 - 6513 [(unfold~eqit_~in~*).] 0. secs (0.u,0.s) +Chars 6516 - 6530 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 6533 - 6547 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 6550 - 6583 [(hinduction~EQT~before~RR;~int...] 0.003 secs (0.003u,0.s) +Chars 6586 - 6623 [1-3:~(rewrite~2!observe_bind;~...] 0.022 secs (0.021u,0.s) +Chars 6627 - 6628 [+] 0. secs (0.u,0.s) +Chars 6643 - 6654 [(apply~EQKL).] 0. secs (0.u,0.s) +Chars 6660 - 6661 [*] 0. secs (0.u,0.s) +Chars 6662 - 6682 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) +Chars 6687 - 6688 [*] 0. secs (0.u,0.s) +Chars 6689 - 6709 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) +Chars 6714 - 6715 [*] 0. secs (0.u,0.s) +Chars 6716 - 6726 [exact~REL.] 0. secs (0.u,0.s) +Chars 6729 - 6730 [+] 0. secs (0.u,0.s) +Chars 6745 - 6750 [taus.] 0. secs (0.u,0.s) +Chars 6756 - 6766 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 6771 - 6772 [*] 0. secs (0.u,0.s) +Chars 6773 - 6783 [exact~REL.] 0. secs (0.u,0.s) +Chars 6788 - 6789 [*] 0. secs (0.u,0.s) +Chars 6790 - 6814 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) +Chars 6821 - 6826 [step.] 0.003 secs (0.003u,0.s) +Chars 6827 - 6838 [(apply~EQKL).] 0. secs (0.u,0.s) +Chars 6845 - 6847 [--] 0. secs (0.u,0.s) +Chars 6848 - 6870 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) +Chars 6877 - 6879 [--] 0. secs (0.u,0.s) +Chars 6880 - 6902 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) +Chars 6909 - 6911 [--] 0. secs (0.u,0.s) +Chars 6912 - 6921 [exact~HU.] 0. secs (0.u,0.s) +Chars 6924 - 6925 [+] 0. secs (0.u,0.s) +Chars 6940 - 6952 [constructor.] 0. secs (0.u,0.s) +Chars 6953 - 6961 [intro~v.] 0. secs (0.u,0.s) +Chars 6966 - 6976 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 6981 - 6982 [*] 0. secs (0.u,0.s) +Chars 6983 - 6993 [(apply~REL).] 0. secs (0.u,0.s) +Chars 6998 - 6999 [*] 0. secs (0.u,0.s) +Chars 7000 - 7024 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) +Chars 7031 - 7036 [step.] 0.002 secs (0.002u,0.s) +Chars 7037 - 7048 [(apply~EQKL).] 0. secs (0.u,0.s) +Chars 7055 - 7057 [--] 0. secs (0.u,0.s) +Chars 7058 - 7080 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) +Chars 7087 - 7089 [--] 0. secs (0.u,0.s) +Chars 7090 - 7112 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) +Chars 7119 - 7121 [--] 0. secs (0.u,0.s) +Chars 7122 - 7131 [exact~HU.] 0. secs (0.u,0.s) +Chars 7134 - 7135 [+] 0. secs (0.u,0.s) +Chars 7151 - 7172 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 7173 - 7181 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 7186 - 7191 [taul.] 0. secs (0.u,0.s) +Chars 7196 - 7227 [(eapply~IHEQT;~eauto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 7230 - 7231 [+] 0. secs (0.u,0.s) +Chars 7247 - 7280 [setoid_rewrite~observe_bind~at~2.] 0.023 secs (0.023u,0.s) +Chars 7281 - 7289 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 7294 - 7299 [taur.] 0. secs (0.u,0.s) +Chars 7304 - 7335 [(eapply~IHEQT;~eauto~with~itree).] 0.004 secs (0.004u,0.s) +Chars 7336 - 7340 [Qed.] 0.013 secs (0.012u,0.s) +Chars 7390 - 7778 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) +Chars 7779 - 7785 [Proof.] 0. secs (0.u,0.s) +Chars 7788 - 7797 [(intros~*).] 0. secs (0.u,0.s) +Chars 7798 - 7810 [(unfold~eutt).] 0. secs (0.u,0.s) +Chars 7811 - 7835 [(apply~eqit_clo_bind_gen).] 0. secs (0.u,0.s) +Chars 7836 - 7840 [Qed.] 0. secs (0.u,0.s) +Chars 7900 - 8107 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) +Chars 8108 - 8114 [Proof.] 0. secs (0.u,0.s) +Chars 8117 - 8151 [(intros;~eapply~eutt_bind_eutt...] 0. secs (0.u,0.s) +Chars 8154 - 8166 [reflexivity.] 0. secs (0.u,0.s) +Chars 8169 - 8193 [(intros~*~IN~_~<-;~eauto).] 0. secs (0.u,0.s) +Chars 8194 - 8198 [Qed.] 0. secs (0.u,0.s) +Chars 8200 - 8427 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) +Chars 8428 - 8434 [Proof.] 0. secs (0.u,0.s) +Chars 8437 - 8456 [(intros~EQIT~r~HRET).] 0. secs (0.u,0.s) +Chars 8459 - 8477 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) +Chars 8480 - 8541 [(induction~HRET;~intros;~rewri...] 0.136 secs (0.135u,0.s) +Chars 8544 - 8545 [-] 0. secs (0.u,0.s) +Chars 8546 - 8557 [assumption.] 0. secs (0.u,0.s) Chars 8560 - 8561 [-] 0. secs (0.u,0.s) -Chars 8562 - 8575 [(apply~IHHRET).] 0. secs (0.u,0.s) -Chars 8576 - 8611 [(eapply~eqit_inv_Vis~in~EQIT;~...] 0. secs (0.u,0.s) -Chars 8612 - 8616 [Qed.] 0.004 secs (0.004u,0.s) -Chars 8655 - 8734 [Lemma~has_post_Leaf~{E}~{R}~(t...] 0. secs (0.u,0.s) -Chars 8735 - 8741 [Proof.] 0. secs (0.u,0.s) -Chars 8744 - 8764 [(intros~Hcond~Himage).] 0. secs (0.u,0.s) -Chars 8767 - 8805 [(rewrite~has_post_post_strong~...] 0. secs (0.u,0.s) -Chars 8808 - 8850 [(destruct~(Leaf_eutt_l~t~t~r~H...] 0. secs (0.u,0.s) -Chars 8853 - 8874 [(intuition;~now~subst).] 0. secs (0.u,0.s) -Chars 8875 - 8879 [Qed.] 0. secs (0.u,0.s) -Chars 8881 - 9018 [Lemma~has_post_of_Leaf~{E}~{R}...] 0.002 secs (0.002u,0.s) -Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) -Chars 9028 - 9047 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 9048 - 9063 [(intros~t~Hpost).] 0. secs (0.u,0.s) -Chars 9066 - 9104 [setoid_rewrite~(itree_eta~t)~i...] 0.003 secs (0.003u,0.s) -Chars 9107 - 9119 [(desobs~t~Ht).] 0. secs (0.u,0.s) -Chars 9122 - 9123 [-] 0. secs (0.u,0.s) -Chars 9124 - 9136 [constructor.] 0. secs (0.u,0.s) -Chars 9137 - 9159 [(apply~Hpost,~Leaf_Ret).] 0. secs (0.u,0.s) -Chars 9162 - 9163 [-] 0. secs (0.u,0.s) -Chars 9164 - 9176 [constructor.] 0. secs (0.u,0.s) -Chars 9177 - 9187 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9188 - 9195 [(intros).] 0. secs (0.u,0.s) -Chars 9196 - 9208 [(apply~Hpost).] 0. secs (0.u,0.s) -Chars 9209 - 9224 [(apply~Leaf_Tau).] 0. secs (0.u,0.s) -Chars 9225 - 9233 [exact~H.] 0. secs (0.u,0.s) -Chars 9236 - 9237 [-] 0. secs (0.u,0.s) -Chars 9238 - 9250 [constructor.] 0. secs (0.u,0.s) -Chars 9251 - 9258 [(intros).] 0. secs (0.u,0.s) -Chars 9259 - 9269 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9270 - 9277 [(intros).] 0. secs (0.u,0.s) -Chars 9278 - 9291 [(eapply~Hpost).] 0. secs (0.u,0.s) -Chars 9292 - 9308 [(eapply~Leaf_Vis).] 0. secs (0.u,0.s) -Chars 9309 - 9317 [exact~H.] 0. secs (0.u,0.s) -Chars 9318 - 9322 [Qed.] 0.004 secs (0.004u,0.s) -Chars 9324 - 9420 [Lemma~has_post_Leaf_equiv~{E}~...] 0. secs (0.u,0.s) -Chars 9421 - 9427 [Proof.] 0. secs (0.u,0.s) -Chars 9430 - 9436 [split.] 0. secs (0.u,0.s) -Chars 9439 - 9440 [-] 0. secs (0.u,0.s) -Chars 9441 - 9477 [(intros;~eapply~has_post_Leaf;...] 0. secs (0.u,0.s) -Chars 9480 - 9481 [-] 0. secs (0.u,0.s) -Chars 9482 - 9494 [intro~Hpost.] 0. secs (0.u,0.s) -Chars 9495 - 9530 [exact~(has_post_of_Leaf~Q~t~Hp...] 0. secs (0.u,0.s) -Chars 9531 - 9535 [Qed.] 0. secs (0.u,0.s) -Chars 9720 - 9956 [Lemma~Leaf_iter_inv~{E}~{R}~{I...] 0. secs (0.u,0.s) -Chars 9957 - 9963 [Proof.] 0. secs (0.u,0.s) -Chars 9966 - 9987 [(intros~*~Hinv~Hentry).] 0. secs (0.u,0.s) -Chars 9990 - 10021 [(rewrite~<-~has_post_Leaf_equiv).] 0. secs (0.u,0.s) -Chars 10024 - 10059 [(eapply~has_post_iter_strong;~...] 0. secs (0.u,0.s) -Chars 10062 - 10097 [setoid_rewrite~has_post_Leaf_e...] 0.002 secs (0.002u,0.s) -Chars 10098 - 10104 [eauto.] 0. secs (0.u,0.s) -Chars 10105 - 10109 [Qed.] 0. secs (0.u,0.s) -Chars 10111 - 10394 [Lemma~Leaf_interp_iter_inv~{E}...] 0.001 secs (0.001u,0.s) -Chars 10395 - 10401 [Proof.] 0. secs (0.u,0.s) -Chars 10404 - 10431 [(intros~*~Hbody~Hentry~r~Hr).] 0. secs (0.u,0.s) -Chars 10434 - 10501 [(apply~(Leaf_iter_inv~(fun~i~=...] 0. secs (0.u,0.s) -Chars 10504 - 10567 [(rewrite~(interp_iter'~_~_~(fu...] 0.003 secs (0.003u,0.s) -Chars 10570 - 10579 [(apply~Hr).] 0. secs (0.u,0.s) -Chars 10580 - 10592 [reflexivity.] 0. secs (0.u,0.s) -Chars 10593 - 10597 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10734 - 11166 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) -Chars 11167 - 11173 [Proof.] 0. secs (0.u,0.s) -Chars 11176 - 11214 [setoid_rewrite~~<-~has_post_Le...] 0.011 secs (0.011u,0.s) -Chars 11217 - 11253 [setoid_rewrite~has_post_post_s...] 0.012 secs (0.012u,0.s) -Chars 11256 - 11286 [(intros~*~Hinv~Hentrys~Hentryi).] 0. secs (0.u,0.s) -Chars 11289 - 11337 [(set~(eRI~:=~fun~i1~i2~:~I~=>~...] 0. secs (0.u,0.s) -Chars 11340 - 11388 [(set~(eRR~:=~fun~r1~r2~:~R~=>~...] 0. secs (0.u,0.s) -Chars 11391 - 11439 [(set~(eRS~:=~fun~s1~s2~:~S~=>~...] 0. secs (0.u,0.s) -Chars 11443 - 11503 [(set~(R1~:=~fun~x~y~:~S~*~R~=>...] 0. secs (0.u,0.s) -Chars 11506 - 11582 [(set~(R2~:=~fun~a~b~:~S~*~R~=>...] 0. secs (0.u,0.s) -Chars 11585 - 11665 [(assert~(HR1R2~:~eq_rel~R1~R2)...] 0.073 secs (0.072u,0.s) -Chars 11668 - 11732 [(unfold~has_post_strong;~fold~...] 0.001 secs (0.001u,0.s) -Chars 11736 - 11866 [(unshelve~~~(eapply~(eutt_inte...] 0.004 secs (0.004u,0.s) -Chars 11869 - 11904 [(intros~i1~?~s1~?~[<-~Hs1]~[<-...] 0. secs (0.u,0.s) -Chars 11908 - 11988 [(set~~~(R3~:=~fun~x~y~:~S~*~(I...] 0. secs (0.u,0.s) -Chars 11991 - 12036 [(set~(R4~:=~prod_rel~eRS~(sum_...] 0. secs (0.u,0.s) -Chars 12039 - 12068 [(assert~(HR3R4~:~eq_rel~R3~R4)).] 0. secs (0.u,0.s) -Chars 12071 - 12072 [{] 0. secs (0.u,0.s) -Chars 12073 - 12112 [(split;~intros~[?~[|~]]~[?~[|~...] 0.001 secs (0.001u,0.s) -Chars 12117 - 12162 [1-4:~(intros~[[]];~dintuition;...] 0.23 secs (0.229u,0.001s) -Chars 12167 - 12229 [all:~(intros~[[[=->]~?]~HZ];~i...] 0.101 secs (0.1u,0.s) -Chars 12230 - 12231 [}] 0. secs (0.u,0.s) -Chars 12235 - 12269 [(rewrite~<-~(eutt_equiv~_~_~HR...] 0.001 secs (0.001u,0.s) -Chars 12272 - 12287 [now~apply~Hinv.] 0. secs (0.u,0.s) -Chars 12288 - 12292 [Qed.] 0.018 secs (0.017u,0.s) -Chars 12492 - 12507 [Module~Subtree.] 0. secs (0.u,0.s) -Chars 12509 - 12768 [Inductive~subtree~{E}~{R}~:~it...] 0.002 secs (0.002u,0.s) -Chars 12770 - 12885 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) -Chars 12886 - 12892 [Proof.] 0. secs (0.u,0.s) -Chars 12895 - 12923 [(intros~t~t'~Ht~u~u'~Hu~Hsub).] 0. secs (0.u,0.s) -Chars 12926 - 12967 [(revert~t~Ht~u~Hu;~induction~H...] 0. secs (0.u,0.s) -Chars 12970 - 12971 [-] 0. secs (0.u,0.s) -Chars 12972 - 12990 [(apply~SubtreeRefl).] 0. secs (0.u,0.s) -Chars 12991 - 13010 [now~rewrite~Ht,~Hu.] 0.002 secs (0.002u,0.s) -Chars 13013 - 13014 [-] 0. secs (0.u,0.s) -Chars 13015 - 13046 [(apply~SubtreeTau,~IHHsub;~auto).] 0. secs (0.u,0.s) -Chars 13047 - 13066 [(apply~eqit_Tau,~Ht).] 0. secs (0.u,0.s) -Chars 13069 - 13070 [-] 0. secs (0.u,0.s) -Chars 13071 - 13089 [(eapply~SubtreeVis).] 0. secs (0.u,0.s) -Chars 13090 - 13108 [now~rewrite~Ht,~H.] 0.005 secs (0.005u,0.s) -Chars 13109 - 13128 [(apply~IHHsub;~auto).] 0. secs (0.u,0.s) -Chars 13129 - 13133 [Qed.] 0.001 secs (0.001u,0.s) -Chars 13135 - 13217 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) -Chars 13218 - 13224 [Proof.] 0. secs (0.u,0.s) -Chars 13227 - 13241 [(intros~*~Hsub).] 0. secs (0.u,0.s) -Chars 13242 - 13265 [(induction~Hsub;~intros).] 0. secs (0.u,0.s) -Chars 13268 - 13269 [-] 0. secs (0.u,0.s) -Chars 13270 - 13277 [(intros).] 0. secs (0.u,0.s) -Chars 13278 - 13297 [(rewrite~<-~H;~auto).] 0.002 secs (0.002u,0.s) -Chars 13300 - 13301 [-] 0. secs (0.u,0.s) -Chars 13302 - 13328 [(apply~IHHsub,~Leaf_Tau,~H).] 0. secs (0.u,0.s) -Chars 13331 - 13332 [-] 0. secs (0.u,0.s) -Chars 13333 - 13357 [(eapply~IHHsub,~Leaf_Vis).] 0. secs (0.u,0.s) -Chars 13358 - 13381 [(rewrite~H~in~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 13382 - 13386 [Qed.] 0. secs (0.u,0.s) -Chars 13388 - 13524 [Lemma~Leaf_interp_subtree_inv~...] 0. secs (0.u,0.s) -Chars 13525 - 13531 [Proof.] 0. secs (0.u,0.s) -Chars 13534 - 13545 [revert~t~u.] 0. secs (0.u,0.s) -Chars 13546 - 13562 [(unfold~has_post).] 0. secs (0.u,0.s) -Chars 13563 - 13596 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) -Chars 13599 - 13629 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.011u,0.s) -Chars 13632 - 13654 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 13657 - 13686 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) -Chars 13689 - 13690 [-] 0. secs (0.u,0.s) -Chars 13691 - 13703 [constructor.] 0. secs (0.u,0.s) -Chars 13704 - 13732 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) -Chars 13733 - 13748 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) -Chars 13751 - 13752 [-] 0. secs (0.u,0.s) -Chars 13753 - 13765 [constructor.] 0. secs (0.u,0.s) -Chars 13766 - 13776 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 13777 - 13800 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) -Chars 13803 - 13804 [-] 0. secs (0.u,0.s) -Chars 13805 - 13812 [to_mon.] 0. secs (0.u,0.s) -Chars 13813 - 13836 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 13837 - 13849 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 13854 - 13868 [(intros~u~_~<-).] 0. secs (0.u,0.s) -Chars 13873 - 13878 [taus.] 0. secs (0.u,0.s) -Chars 13879 - 13889 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 13890 - 13914 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) -Chars 13915 - 13927 [reflexivity.] 0. secs (0.u,0.s) -Chars 13928 - 13932 [Qed.] 0.009 secs (0.009u,0.s) -Chars 13934 - 14113 [Lemma~Leaf_interp_state_subtre...] 0.001 secs (0.001u,0.s) -Chars 14114 - 14120 [Proof.] 0. secs (0.u,0.s) -Chars 14123 - 14136 [revert~t~u~s.] 0. secs (0.u,0.s) -Chars 14137 - 14153 [(unfold~has_post).] 0. secs (0.u,0.s) -Chars 14154 - 14187 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) -Chars 14190 - 14220 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.01u,0.s) -Chars 14223 - 14251 [(rewrite~unfold_interp_state).] 0.017 secs (0.017u,0.s) -Chars 14254 - 14283 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) -Chars 14286 - 14287 [-] 0. secs (0.u,0.s) -Chars 14288 - 14300 [constructor.] 0. secs (0.u,0.s) -Chars 14301 - 14329 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) -Chars 14330 - 14345 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) -Chars 14348 - 14349 [-] 0. secs (0.u,0.s) -Chars 14350 - 14362 [constructor.] 0. secs (0.u,0.s) -Chars 14363 - 14373 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 14374 - 14397 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) -Chars 14400 - 14401 [-] 0. secs (0.u,0.s) -Chars 14402 - 14409 [to_mon.] 0. secs (0.u,0.s) -Chars 14410 - 14433 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 14434 - 14446 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 14451 - 14476 [(intros~[u1~u2]~_~<-;~cbn).] 0.001 secs (0.001u,0.s) -Chars 14481 - 14486 [taus.] 0. secs (0.u,0.s) -Chars 14487 - 14497 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 14498 - 14522 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) -Chars 14523 - 14535 [reflexivity.] 0. secs (0.u,0.s) -Chars 14536 - 14540 [Qed.] 0.009 secs (0.009u,0.s) -Chars 14542 - 14554 [End~Subtree.] 0. secs (0.u,0.s) -Chars 14555 - 14570 [Import~Subtree.] 0. secs (0.u,0.s) -Chars 14572 - 14668 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0. secs (0.u,0.s) -Chars 14669 - 14675 [Proof.] 0. secs (0.u,0.s) -Chars 14678 - 14691 [(intros~Hleaf).] 0. secs (0.u,0.s) -Chars 14692 - 14752 [(apply~(has_post_Leaf~(interp~...] 0. secs (0.u,0.s) -Chars 14755 - 14785 [(apply~Leaf_interp_subtree_inv).] 0. secs (0.u,0.s) -Chars 14786 - 14817 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) -Chars 14818 - 14822 [Qed.] 0. secs (0.u,0.s) -Chars 14824 - 14962 [Lemma~Leaf_interp_state_inv~{E...] 0.001 secs (0.001u,0.s) -Chars 14963 - 14969 [Proof.] 0. secs (0.u,0.s) -Chars 14972 - 14985 [(intros~Hleaf).] 0. secs (0.u,0.s) -Chars 14988 - 15060 [(apply~(has_post_Leaf~(interp_...] 0.001 secs (0.001u,0.s) -Chars 15063 - 15099 [(apply~Leaf_interp_state_subtr...] 0. secs (0.u,0.s) -Chars 15100 - 15131 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) -Chars 15132 - 15136 [Qed.] 0. secs (0.u,0.s) -Chars 15175 - 15298 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) -Chars 15299 - 15305 [Proof.] 0. secs (0.u,0.s) -Chars 15308 - 15315 [(intros).] 0. secs (0.u,0.s) -Chars 15316 - 15349 [(rewrite~translate_to_interp~i...] 0.002 secs (0.002u,0.s) -Chars 15352 - 15382 [(eapply~Leaf_interp_inv;~eauto).] 0. secs (0.u,0.s) -Chars 15383 - 15387 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8562 - 8589 [(rewrite~2!tau_eutt~in~EQIT).] 0.045 secs (0.045u,0.s) +Chars 8590 - 8595 [auto.] 0. secs (0.u,0.s) +Chars 8598 - 8599 [-] 0. secs (0.u,0.s) +Chars 8600 - 8613 [(apply~IHHRET).] 0. secs (0.u,0.s) +Chars 8614 - 8649 [(eapply~eqit_inv_Vis~in~EQIT;~...] 0. secs (0.u,0.s) +Chars 8650 - 8654 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8693 - 8772 [Lemma~has_post_Leaf~{E}~{R}~(t...] 0. secs (0.u,0.s) +Chars 8773 - 8779 [Proof.] 0. secs (0.u,0.s) +Chars 8782 - 8802 [(intros~Hcond~Himage).] 0. secs (0.u,0.s) +Chars 8805 - 8843 [(rewrite~has_post_post_strong~...] 0. secs (0.u,0.s) +Chars 8846 - 8888 [(destruct~(Leaf_eutt_l~t~t~r~H...] 0. secs (0.u,0.s) +Chars 8891 - 8912 [(intuition;~now~subst).] 0. secs (0.u,0.s) +Chars 8913 - 8917 [Qed.] 0. secs (0.u,0.s) +Chars 8919 - 9056 [Lemma~has_post_of_Leaf~{E}~{R}...] 0. secs (0.u,0.s) +Chars 9057 - 9063 [Proof.] 0. secs (0.u,0.s) +Chars 9066 - 9085 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 9086 - 9101 [(intros~t~Hpost).] 0. secs (0.u,0.s) +Chars 9104 - 9142 [setoid_rewrite~(itree_eta~t)~i...] 0.003 secs (0.003u,0.s) +Chars 9145 - 9157 [(desobs~t~Ht).] 0. secs (0.u,0.s) +Chars 9160 - 9161 [-] 0. secs (0.u,0.s) +Chars 9162 - 9174 [constructor.] 0. secs (0.u,0.s) +Chars 9175 - 9197 [(apply~Hpost,~Leaf_Ret).] 0. secs (0.u,0.s) +Chars 9200 - 9201 [-] 0. secs (0.u,0.s) +Chars 9202 - 9214 [constructor.] 0. secs (0.u,0.s) +Chars 9215 - 9225 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9226 - 9233 [(intros).] 0. secs (0.u,0.s) +Chars 9234 - 9246 [(apply~Hpost).] 0. secs (0.u,0.s) +Chars 9247 - 9262 [(apply~Leaf_Tau).] 0. secs (0.u,0.s) +Chars 9263 - 9271 [exact~H.] 0. secs (0.u,0.s) +Chars 9274 - 9275 [-] 0. secs (0.u,0.s) +Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) +Chars 9289 - 9296 [(intros).] 0. secs (0.u,0.s) +Chars 9297 - 9307 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9308 - 9315 [(intros).] 0. secs (0.u,0.s) +Chars 9316 - 9329 [(eapply~Hpost).] 0. secs (0.u,0.s) +Chars 9330 - 9346 [(eapply~Leaf_Vis).] 0. secs (0.u,0.s) +Chars 9347 - 9355 [exact~H.] 0. secs (0.u,0.s) +Chars 9356 - 9360 [Qed.] 0.004 secs (0.004u,0.s) +Chars 9362 - 9458 [Lemma~has_post_Leaf_equiv~{E}~...] 0. secs (0.u,0.s) +Chars 9459 - 9465 [Proof.] 0. secs (0.u,0.s) +Chars 9468 - 9474 [split.] 0. secs (0.u,0.s) +Chars 9477 - 9478 [-] 0. secs (0.u,0.s) +Chars 9479 - 9515 [(intros;~eapply~has_post_Leaf;...] 0. secs (0.u,0.s) +Chars 9518 - 9519 [-] 0. secs (0.u,0.s) +Chars 9520 - 9532 [intro~Hpost.] 0. secs (0.u,0.s) +Chars 9533 - 9568 [exact~(has_post_of_Leaf~Q~t~Hp...] 0. secs (0.u,0.s) +Chars 9569 - 9573 [Qed.] 0. secs (0.u,0.s) +Chars 9758 - 9994 [Lemma~Leaf_iter_inv~{E}~{R}~{I...] 0. secs (0.u,0.s) +Chars 9995 - 10001 [Proof.] 0. secs (0.u,0.s) +Chars 10004 - 10025 [(intros~*~Hinv~Hentry).] 0. secs (0.u,0.s) +Chars 10028 - 10059 [(rewrite~<-~has_post_Leaf_equiv).] 0. secs (0.u,0.s) +Chars 10062 - 10097 [(eapply~has_post_iter_strong;~...] 0. secs (0.u,0.s) +Chars 10100 - 10135 [setoid_rewrite~has_post_Leaf_e...] 0.002 secs (0.002u,0.s) +Chars 10136 - 10142 [eauto.] 0. secs (0.u,0.s) +Chars 10143 - 10147 [Qed.] 0. secs (0.u,0.s) +Chars 10149 - 10432 [Lemma~Leaf_interp_iter_inv~{E}...] 0.001 secs (0.001u,0.s) +Chars 10433 - 10439 [Proof.] 0. secs (0.u,0.s) +Chars 10442 - 10469 [(intros~*~Hbody~Hentry~r~Hr).] 0. secs (0.u,0.s) +Chars 10472 - 10539 [(apply~(Leaf_iter_inv~(fun~i~=...] 0. secs (0.u,0.s) +Chars 10542 - 10605 [(rewrite~(interp_iter'~_~_~(fu...] 0.003 secs (0.003u,0.s) +Chars 10608 - 10617 [(apply~Hr).] 0. secs (0.u,0.s) +Chars 10618 - 10630 [reflexivity.] 0. secs (0.u,0.s) +Chars 10631 - 10635 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10772 - 11204 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) +Chars 11205 - 11211 [Proof.] 0. secs (0.u,0.s) +Chars 11214 - 11252 [setoid_rewrite~~<-~has_post_Le...] 0.012 secs (0.012u,0.s) +Chars 11255 - 11291 [setoid_rewrite~has_post_post_s...] 0.013 secs (0.012u,0.s) +Chars 11294 - 11324 [(intros~*~Hinv~Hentrys~Hentryi).] 0. secs (0.u,0.s) +Chars 11327 - 11375 [(set~(eRI~:=~fun~i1~i2~:~I~=>~...] 0. secs (0.u,0.s) +Chars 11378 - 11426 [(set~(eRR~:=~fun~r1~r2~:~R~=>~...] 0. secs (0.u,0.s) +Chars 11429 - 11477 [(set~(eRS~:=~fun~s1~s2~:~S~=>~...] 0. secs (0.u,0.s) +Chars 11481 - 11541 [(set~(R1~:=~fun~x~y~:~S~*~R~=>...] 0. secs (0.u,0.s) +Chars 11544 - 11620 [(set~(R2~:=~fun~a~b~:~S~*~R~=>...] 0. secs (0.u,0.s) +Chars 11623 - 11703 [(assert~(HR1R2~:~eq_rel~R1~R2)...] 0.074 secs (0.073u,0.s) +Chars 11706 - 11770 [(unfold~has_post_strong;~fold~...] 0.001 secs (0.001u,0.s) +Chars 11774 - 11904 [(unshelve~~~(eapply~(eutt_inte...] 0.004 secs (0.004u,0.s) +Chars 11907 - 11942 [(intros~i1~?~s1~?~[<-~Hs1]~[<-...] 0. secs (0.u,0.s) +Chars 11946 - 12026 [(set~~~(R3~:=~fun~x~y~:~S~*~(I...] 0. secs (0.u,0.s) +Chars 12029 - 12074 [(set~(R4~:=~prod_rel~eRS~(sum_...] 0. secs (0.u,0.s) +Chars 12077 - 12106 [(assert~(HR3R4~:~eq_rel~R3~R4)).] 0. secs (0.u,0.s) +Chars 12109 - 12110 [{] 0. secs (0.u,0.s) +Chars 12111 - 12150 [(split;~intros~[?~[|~]]~[?~[|~...] 0.001 secs (0.001u,0.s) +Chars 12155 - 12200 [1-4:~(intros~[[]];~dintuition;...] 0.233 secs (0.23u,0.001s) +Chars 12205 - 12267 [all:~(intros~[[[=->]~?]~HZ];~i...] 0.103 secs (0.102u,0.s) +Chars 12268 - 12269 [}] 0. secs (0.u,0.s) +Chars 12273 - 12307 [(rewrite~<-~(eutt_equiv~_~_~HR...] 0.001 secs (0.001u,0.s) +Chars 12310 - 12325 [now~apply~Hinv.] 0. secs (0.u,0.s) +Chars 12326 - 12330 [Qed.] 0.017 secs (0.017u,0.s) +Chars 12530 - 12545 [Module~Subtree.] 0. secs (0.u,0.s) +Chars 12547 - 12806 [Inductive~subtree~{E}~{R}~:~it...] 0.002 secs (0.002u,0.s) +Chars 12808 - 12923 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) +Chars 12924 - 12930 [Proof.] 0. secs (0.u,0.s) +Chars 12933 - 12961 [(intros~t~t'~Ht~u~u'~Hu~Hsub).] 0. secs (0.u,0.s) +Chars 12964 - 13005 [(revert~t~Ht~u~Hu;~induction~H...] 0. secs (0.u,0.s) +Chars 13008 - 13009 [-] 0. secs (0.u,0.s) +Chars 13010 - 13028 [(apply~SubtreeRefl).] 0. secs (0.u,0.s) +Chars 13029 - 13048 [now~rewrite~Ht,~Hu.] 0.002 secs (0.002u,0.s) +Chars 13051 - 13052 [-] 0. secs (0.u,0.s) +Chars 13053 - 13084 [(apply~SubtreeTau,~IHHsub;~auto).] 0. secs (0.u,0.s) +Chars 13085 - 13104 [(apply~eqit_Tau,~Ht).] 0. secs (0.u,0.s) +Chars 13107 - 13108 [-] 0. secs (0.u,0.s) +Chars 13109 - 13127 [(eapply~SubtreeVis).] 0. secs (0.u,0.s) +Chars 13128 - 13146 [now~rewrite~Ht,~H.] 0.003 secs (0.003u,0.s) +Chars 13147 - 13166 [(apply~IHHsub;~auto).] 0.002 secs (0.002u,0.s) +Chars 13167 - 13171 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13173 - 13255 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) +Chars 13256 - 13262 [Proof.] 0. secs (0.u,0.s) +Chars 13265 - 13279 [(intros~*~Hsub).] 0. secs (0.u,0.s) +Chars 13280 - 13303 [(induction~Hsub;~intros).] 0. secs (0.u,0.s) +Chars 13306 - 13307 [-] 0. secs (0.u,0.s) +Chars 13308 - 13315 [(intros).] 0. secs (0.u,0.s) +Chars 13316 - 13335 [(rewrite~<-~H;~auto).] 0.002 secs (0.002u,0.s) +Chars 13338 - 13339 [-] 0. secs (0.u,0.s) +Chars 13340 - 13366 [(apply~IHHsub,~Leaf_Tau,~H).] 0. secs (0.u,0.s) +Chars 13369 - 13370 [-] 0. secs (0.u,0.s) +Chars 13371 - 13395 [(eapply~IHHsub,~Leaf_Vis).] 0. secs (0.u,0.s) +Chars 13396 - 13419 [(rewrite~H~in~H0;~eauto).] 0.002 secs (0.002u,0.s) +Chars 13420 - 13424 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13426 - 13562 [Lemma~Leaf_interp_subtree_inv~...] 0. secs (0.u,0.s) +Chars 13563 - 13569 [Proof.] 0. secs (0.u,0.s) +Chars 13572 - 13583 [revert~t~u.] 0. secs (0.u,0.s) +Chars 13584 - 13600 [(unfold~has_post).] 0. secs (0.u,0.s) +Chars 13601 - 13634 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) +Chars 13637 - 13667 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.011u,0.s) +Chars 13670 - 13692 [(rewrite~unfold_interp).] 0.016 secs (0.016u,0.s) +Chars 13695 - 13724 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) +Chars 13727 - 13728 [-] 0. secs (0.u,0.s) +Chars 13729 - 13741 [constructor.] 0. secs (0.u,0.s) +Chars 13742 - 13770 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) +Chars 13771 - 13786 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) +Chars 13789 - 13790 [-] 0. secs (0.u,0.s) +Chars 13791 - 13803 [constructor.] 0. secs (0.u,0.s) +Chars 13804 - 13814 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13815 - 13838 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) +Chars 13841 - 13842 [-] 0. secs (0.u,0.s) +Chars 13843 - 13850 [to_mon.] 0. secs (0.u,0.s) +Chars 13851 - 13874 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 13875 - 13887 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 13892 - 13906 [(intros~u~_~<-).] 0. secs (0.u,0.s) +Chars 13911 - 13916 [taus.] 0. secs (0.u,0.s) +Chars 13917 - 13927 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13928 - 13952 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) +Chars 13953 - 13965 [reflexivity.] 0. secs (0.u,0.s) +Chars 13966 - 13970 [Qed.] 0.008 secs (0.008u,0.s) +Chars 13972 - 14151 [Lemma~Leaf_interp_state_subtre...] 0.001 secs (0.001u,0.s) +Chars 14152 - 14158 [Proof.] 0. secs (0.u,0.s) +Chars 14161 - 14174 [revert~t~u~s.] 0. secs (0.u,0.s) +Chars 14175 - 14191 [(unfold~has_post).] 0. secs (0.u,0.s) +Chars 14192 - 14225 [(coinduction~c~CIH;~intros~*~H...] 0.003 secs (0.003u,0.s) +Chars 14228 - 14258 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.011u,0.s) +Chars 14261 - 14289 [(rewrite~unfold_interp_state).] 0.016 secs (0.016u,0.s) +Chars 14292 - 14321 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14324 - 14325 [-] 0. secs (0.u,0.s) +Chars 14326 - 14338 [constructor.] 0. secs (0.u,0.s) +Chars 14339 - 14367 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) +Chars 14368 - 14383 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) +Chars 14386 - 14387 [-] 0. secs (0.u,0.s) +Chars 14388 - 14400 [constructor.] 0. secs (0.u,0.s) +Chars 14401 - 14411 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 14412 - 14435 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) +Chars 14438 - 14439 [-] 0. secs (0.u,0.s) +Chars 14440 - 14447 [to_mon.] 0. secs (0.u,0.s) +Chars 14448 - 14471 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 14472 - 14484 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 14489 - 14514 [(intros~[u1~u2]~_~<-;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14519 - 14524 [taus.] 0. secs (0.u,0.s) +Chars 14525 - 14535 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 14536 - 14560 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) +Chars 14561 - 14573 [reflexivity.] 0. secs (0.u,0.s) +Chars 14574 - 14578 [Qed.] 0.009 secs (0.009u,0.s) +Chars 14580 - 14592 [End~Subtree.] 0. secs (0.u,0.s) +Chars 14593 - 14608 [Import~Subtree.] 0. secs (0.u,0.s) +Chars 14610 - 14706 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0.001 secs (0.001u,0.s) +Chars 14707 - 14713 [Proof.] 0. secs (0.u,0.s) +Chars 14716 - 14729 [(intros~Hleaf).] 0. secs (0.u,0.s) +Chars 14730 - 14790 [(apply~(has_post_Leaf~(interp~...] 0. secs (0.u,0.s) +Chars 14793 - 14823 [(apply~Leaf_interp_subtree_inv).] 0. secs (0.u,0.s) +Chars 14824 - 14855 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) +Chars 14856 - 14860 [Qed.] 0. secs (0.u,0.s) +Chars 14862 - 15000 [Lemma~Leaf_interp_state_inv~{E...] 0.001 secs (0.001u,0.s) +Chars 15001 - 15007 [Proof.] 0. secs (0.u,0.s) +Chars 15010 - 15023 [(intros~Hleaf).] 0. secs (0.u,0.s) +Chars 15026 - 15098 [(apply~(has_post_Leaf~(interp_...] 0. secs (0.u,0.s) +Chars 15101 - 15137 [(apply~Leaf_interp_state_subtr...] 0. secs (0.u,0.s) +Chars 15138 - 15169 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) +Chars 15170 - 15174 [Qed.] 0. secs (0.u,0.s) +Chars 15213 - 15336 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) +Chars 15337 - 15343 [Proof.] 0. secs (0.u,0.s) +Chars 15346 - 15353 [(intros).] 0. secs (0.u,0.s) +Chars 15354 - 15387 [(rewrite~translate_to_interp~i...] 0.004 secs (0.004u,0.s) +Chars 15390 - 15420 [(eapply~Leaf_interp_inv;~eauto).] 0. secs (0.u,0.s) +Chars 15421 - 15425 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Simple.v.timing b/theories/Simple.v.timing index 9499b4cb..1fbc0f9e 100644 --- a/theories/Simple.v.timing +++ b/theories/Simple.v.timing @@ -1,15 +1,15 @@ Chars 48 - 84 [Set~Warnings~"-notation-overri...] 0. secs (0.u,0.s) Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.03 secs (0.025u,0.005s) +Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.032 secs (0.025u,0.006s) Chars 305 - 347 [Require~Export~ITree.Core.ITre...] 0. secs (0.u,0.s) Chars 348 - 370 [Export~ITreeNotations.] 0. secs (0.u,0.s) Chars 371 - 404 [#[global]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1062 - 1097 [Require~Export~ITree.Basics.Ba...] 0. secs (0.u,0.s) Chars 1158 - 1191 [Require~Export~ITree.Indexed.Sum.] 0. secs (0.u,0.s) Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.001u,0.s) -Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.004 secs (0.003u,0.s) -Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.013 secs (0.01u,0.002s) +Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.005 secs (0.004u,0.s) +Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.014 secs (0.011u,0.003s) Chars 1773 - 1809 [Export~ITree.Interp.Handler.Ha...] 0. secs (0.u,0.s) Chars 2164 - 2189 [Module~Type~SimpleTheory.] 0. secs (0.u,0.s) Chars 2297 - 2325 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) @@ -23,10 +23,10 @@ Chars 2866 - 2940 [Parameter~(eutt_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 2942 - 3072 [Parameter~~~(eutt_vis~:~~~~~~f...] 0. secs (0.u,0.s) Chars 3074 - 3152 [Parameter~(eutt_inv_ret~:~fora...] 0. secs (0.u,0.s) Chars 3154 - 3289 [Parameter~~~(eutt_inv_vis~:~~~...] 0. secs (0.u,0.s) -Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) +Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0.006 secs (0.u,0.s) Chars 3317 - 3351 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 3382 - 3481 [Parameter~~~(bind_ret~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0.021 secs (0.02u,0.001s) +Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0.033 secs (0.023u,0.002s) Chars 3647 - 3740 [Parameter~~~(bind_ret_r~:~~~~~...] 0. secs (0.u,0.s) Chars 3742 - 3936 [Parameter~~~(bind_bind~:~~~~~~...] 0. secs (0.u,0.s) Chars 3938 - 3979 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 7152 - 7279 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7281 - 7413 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7541 - 7718 [Ltac~~tau_steps~:=~~~repeat~~~...] 0. secs (0.u,0.s) Chars 7720 - 7737 [End~SimpleTheory.] 0. secs (0.u,0.s) -Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.01 secs (0.009u,0.s) +Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.009 secs (0.009u,0.s) Chars 7873 - 7909 [Module~Export~Simple:~SimpleTh...] 0. secs (0.u,0.s) Chars 7995 - 8023 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 8025 - 8063 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) @@ -109,7 +109,7 @@ Chars 9371 - 9395 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 9397 - 9431 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 9462 - 9557 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9558 - 9564 [Proof.] 0. secs (0.u,0.s) -Chars 9565 - 9621 [(intros;~rewrite~ITree.Eq.Shal...] 0.049 secs (0.049u,0.s) +Chars 9565 - 9621 [(intros;~rewrite~ITree.Eq.Shal...] 0.051 secs (0.05u,0.s) Chars 9622 - 9626 [Qed.] 0. secs (0.u,0.s) Chars 9628 - 9723 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) Chars 9724 - 9730 [Proof.] 0. secs (0.u,0.s) @@ -118,16 +118,16 @@ Chars 9750 - 9762 [reflexivity.] 0. secs (0.u,0.s) Chars 9763 - 9767 [Qed.] 0. secs (0.u,0.s) Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9928 - 9934 [Proof.] 0. secs (0.u,0.s) -Chars 9935 - 9991 [(intros;~rewrite~ITree.Eq.Shal...] 0.018 secs (0.015u,0.003s) +Chars 9935 - 9991 [(intros;~rewrite~ITree.Eq.Shal...] 0.019 secs (0.016u,0.003s) Chars 9992 - 9996 [Qed.] 0.001 secs (0.001u,0.s) Chars 9998 - 10087 [Lemma~bind_ret_r~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 10088 - 10094 [Proof.] 0. secs (0.u,0.s) Chars 10095 - 10149 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) -Chars 10150 - 10154 [Qed.] 0. secs (0.u,0.s) +Chars 10150 - 10154 [Qed.] 0.001 secs (0.u,0.s) Chars 10156 - 10346 [Lemma~bind_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) Chars 10347 - 10353 [Proof.] 0. secs (0.u,0.s) -Chars 10354 - 10407 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) -Chars 10408 - 10412 [Qed.] 0. secs (0.u,0.s) +Chars 10354 - 10407 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.001u,0.s) +Chars 10408 - 10412 [Qed.] 0.001 secs (0.u,0.s) Chars 10414 - 10455 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) Chars 10456 - 10497 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) Chars 10498 - 10539 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) @@ -147,7 +147,7 @@ Chars 11366 - 11370 [Qed.] 0.001 secs (0.001u,0.s) Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0.001 secs (0.001u,0.s) Chars 11534 - 11540 [Proof.] 0. secs (0.u,0.s) Chars 11543 - 11620 [(intros;~rewrite~InterpFacts.i...] 0.005 secs (0.004u,0.001s) -Chars 11621 - 11625 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11621 - 11625 [Qed.] 0.002 secs (0.001u,0.s) Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0. secs (0.u,0.s) Chars 11769 - 11775 [Proof.] 0. secs (0.u,0.s) Chars 11778 - 11834 [(intros;~rewrite~ITree.Interp....] 0.002 secs (0.002u,0.s) @@ -168,13 +168,13 @@ Chars 12726 - 12732 [Proof.] 0. secs (0.u,0.s) Chars 12735 - 12742 [(intros).] 0. secs (0.u,0.s) Chars 12743 - 12793 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) Chars 12794 - 12806 [reflexivity.] 0. secs (0.u,0.s) -Chars 12807 - 12811 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12807 - 12811 [Qed.] 0. secs (0.u,0.s) Chars 12813 - 12953 [Lemma~interp_recursive_call~:~...] 0. secs (0.u,0.s) Chars 12954 - 12960 [Proof.] 0. secs (0.u,0.s) Chars 12963 - 12970 [(intros).] 0. secs (0.u,0.s) Chars 12971 - 13029 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) Chars 13032 - 13044 [reflexivity.] 0. secs (0.u,0.s) -Chars 13045 - 13049 [Qed.] 0. secs (0.u,0.s) +Chars 13045 - 13049 [Qed.] 0.001 secs (0.001u,0.s) Chars 13159 - 13271 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) Chars 13273 - 13407 [Lemma~mrec_as_interp~:~~~foral...] 0. secs (0.u,0.s) Chars 13408 - 13414 [Proof.] 0. secs (0.u,0.s) @@ -215,19 +215,19 @@ Chars 14479 - 14483 [Qed.] 0. secs (0.u,0.s) Chars 14485 - 14608 [#[global]~Instance~eutt_bind~~...] 0. secs (0.u,0.s) Chars 14609 - 14615 [Proof.] 0. secs (0.u,0.s) Chars 14616 - 14635 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14636 - 14650 [(rewrite~H,~H0).] 0.005 secs (0.005u,0.s) +Chars 14636 - 14650 [(rewrite~H,~H0).] 0.004 secs (0.004u,0.s) Chars 14651 - 14669 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 14670 - 14674 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14670 - 14674 [Qed.] 0.002 secs (0.001u,0.s) Chars 14676 - 14795 [#[global]~Instance~eutt_map~~{...] 0. secs (0.u,0.s) Chars 14796 - 14802 [Proof.] 0. secs (0.u,0.s) Chars 14803 - 14822 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14823 - 14837 [(rewrite~H,~H0).] 0.004 secs (0.004u,0.s) +Chars 14823 - 14837 [(rewrite~H,~H0).] 0.005 secs (0.004u,0.s) Chars 14838 - 14856 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 14857 - 14861 [Qed.] 0.001 secs (0.001u,0.s) Chars 14863 - 14987 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 14988 - 14994 [Proof.] 0. secs (0.u,0.s) Chars 14995 - 15014 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 15015 - 15025 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 15015 - 15025 [(rewrite~H).] 0.002 secs (0.002u,0.s) Chars 15026 - 15044 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 15045 - 15049 [Qed.] 0.001 secs (0.001u,0.s) Chars 15051 - 15062 [End~Simple.] 0.001 secs (0.001u,0.s) From 541ae195234b1c7b009a4ae5d6a8772ea831a539 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 12:21:07 -0400 Subject: [PATCH 153/189] Done with PureITreeDijkstra.v --- extra/Dijkstra/PureITreeDijkstra.v | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index 77e6848a..b9cd0b41 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -246,7 +246,7 @@ Qed. Definition _iter {A B} := fun (f : A -> PureITreeSpec (A + B) ) (a : A) (p : itree void1 B -> Prop) (Hp : resp_eutt p) => - gfp (@iter_mon A B f p Hp). + (gfp (@iter_mon A B f p Hp)) a. (* Lemma fix_monotinici_next : False. fail "next task: fix monotinici definitions". @@ -256,11 +256,10 @@ Abort. *) monotonici B (_iter f a). Proof. unfold monotonici. intros. generalize dependent a. - coinduction c CIH. step. intros. step in H1. - red. red in H1. inversion H1; simpl in *. + coinduction c CIH; intros. step in H0. + inv H0. constructor. destruct (f a) as [fa Hfa] eqn : Heq. simpl in *. - refine (Hfa _ _ _ _ _ H0). intros t. intros. inversion H2; subst; eauto with itree. - eapply cont_a; eauto with itree. + refine (Hfa _ _ _ _ _ H1). intros t. intros. inv H0; eauto with itree. Qed. Definition iterp {A B} (body : A -> PureITreeSpec (A + B) ) (init : A) : PureITreeSpec B := @@ -302,7 +301,7 @@ Abort. *) refine (Hw _ _ _ _ _ H). intros. destruct H0. + destruct H0 as [a [ Hvala Hpa] ]. - eapply Hp; eauto. symmetry. auto. + eapply Hp; eauto. now rewrite <- Hvala. + destruct H0. apply div_spin_eutt in H0. eapply Hp; eauto. - simpl. intros. unfold _bindpi. refine (Hw _ _ _ _ _ H). intros. unfold _retpi. @@ -615,11 +614,11 @@ Abort. *) - specialize (eutt_reta_or_div t) as Hor. destruct Hor. + destruct H0 as [a Hreta ]. left. exists a. split; auto. eapply Hp; eauto. specialize (bind_ret_l a f) as H1. rewrite <- H1. - rewrite Hreta. reflexivity. + now rewrite Hreta. + right. split; auto. apply div_spin_eutt in H0. rewrite (spin_bind f), <- H0; apply H. - destruct H. + destruct H as [a [Hreta Hpfa] ]. specialize (bind_ret_l a f) as H1. - eapply Hp; eauto. rewrite <- H1. rewrite Hreta. reflexivity. + eapply Hp; eauto. now rewrite <- Hreta, H1. + destruct H. apply div_spin_eutt in H. rewrite H, <- spin_bind. apply H0. Qed. @@ -628,12 +627,12 @@ Abort. *) Proof. split; intros; unfold obsip, _obsip in *; simpl in *. - intros p Hp. simpl. split; intros; eapply Hp; eauto. - symmetry. auto. + now rewrite <- H. - set (fun t => t ≈ t1) as p. assert (Hp : resp_eutt p). + intros t3 t4. unfold p. split; intros. - * rewrite <- H1. symmetry. auto. - * rewrite H0. auto. + * rewrite <- H1. now symmetry. + * now rewrite H0. + specialize (H p Hp). simpl in *. unfold p in H. symmetry. apply H. reflexivity. Qed. From e983f5e9d069cb58ee4db191cc9cd5ec50a0b1c1 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 12:33:21 -0400 Subject: [PATCH 154/189] Done with TracesIT.v --- _CoqProject | 6 +++--- extra/Dijkstra/TracesIT.v | 26 ++++++++++++-------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/_CoqProject b/_CoqProject index 60953a16..4d7f854a 100644 --- a/_CoqProject +++ b/_CoqProject @@ -88,13 +88,13 @@ extra/ITrace/ITracePreds.v extra/Dijkstra/DijkstraMonad.v extra/Dijkstra/IterRel.v extra/Dijkstra/PureITreeBasics.v -# extra/Dijkstra/PureITreeDijkstra.v +extra/Dijkstra/PureITreeDijkstra.v extra/Dijkstra/DelaySpecMonad.v extra/Dijkstra/StateSpecT.v extra/Dijkstra/StateDelaySpec.v -# extra/Dijkstra/TracesIT.v +extra/Dijkstra/TracesIT.v extra/Dijkstra/ITreeDijkstra.v -# extra/Dijkstra/StateIOTrace.v +extra/Dijkstra/StateIOTrace.v extra/Secure/Labels.v extra/Secure/StrongBisimProper.v diff --git a/extra/Dijkstra/TracesIT.v b/extra/Dijkstra/TracesIT.v index 4a03d152..7d117dd4 100644 --- a/extra/Dijkstra/TracesIT.v +++ b/extra/Dijkstra/TracesIT.v @@ -1,11 +1,11 @@ +From Coinduction Require Import all. + From Stdlib Require Import Morphisms. From ExtLib Require Import Structures.Monad. -From Paco Require Import paco. - From ITree Require Import Axioms ITree @@ -124,7 +124,7 @@ Section TraceSpec. - exfalso. assert (may_converge a (↑ log ++ Ret a) ). { apply may_converge_append. apply finite_list_to_stream. } eapply all_infinite_not_converge; eauto. - - left. exists a. exists log. split; auto. reflexivity. + - left. exists a. exists log. split; auto. Qed. Next Obligation. rename x into w. red. red. cbn. split; intros; basic_solve. @@ -333,22 +333,20 @@ Proof. - unfold append in *. rewrite bind_ret_l in H. rewrite bind_ret_l. unfold decide_ex in *. generalize dependent b. coinduction c CIH. intros b Hb Hdiv. - step. red. rewrite unfold_iter in Hb at 1. rewrite bind_bind in Hb. apply bind_trigger_refine in Hb as Hb'; try (exists true; auto). basic_solve. destruct a. + rewrite bind_ret_l in H0. cbn in H0. rewrite tau_eutt in H0. - step in H. red in H. cbn in H. clear Hb. - enough (paco1 (trace_forall_ (is_bool true) (fun _ => True) ) r b). - { step in H1. } - dependent induction H. - * step. rewrite <- x. constructor; auto with itree. intros. - destruct a. right. eapply CIH. + step in H. clear Hb. + icbn. + dependent induction H; simpobs. + * constructor; auto with itree. intros. + destruct a. eapply CIH. ++ assert (k1 tt ≈ k' tt)%itree; try apply REL. - rewrite H. auto. + now rewrite H. ++ apply simpobs in x. rewrite x in Hdiv. sinv Hdiv. ddestruction. apply H1. - * step. rewrite <- x. constructor. left. eapply IHeqitF; eauto. + * constructor. Utils.step. eapply IHeqitF; eauto. apply simpobs in x. rewrite x in Hdiv. rewrite tau_eutt in Hdiv. auto. + rewrite bind_ret_l in H0. cbn in H0. apply trace_refine_ret_inv_l in H0. rewrite H in Hdiv. sinv Hdiv. ddestruction. @@ -367,7 +365,7 @@ Proof. basic_solve. sinv H0. ddestruction. assert (k tt ≈ k' tt)%itree; try apply REL. rewrite bind_ret_l in H2. - cbn in *. rewrite tau_eutt in H2. rewrite H3. auto. + cbn in *. rewrite tau_eutt in H2. now rewrite H0. * clear IHmay_converge. rewrite unfold_iter in H0. rewrite bind_bind in H0. rewrite H in H0. eapply bind_trigger_refine in H0; try (exists true; auto). basic_solve. @@ -375,7 +373,7 @@ Proof. rewrite bind_ret_l in H2. cbn in H2. apply trace_refine_ret_inv_l in H2. eapply front_and_last_base with (r := tt); eauto with itree. - step. cbn. constructor. intros. left. + step. cbn. constructor. intros. rewrite <- H2. destruct v. auto. Qed. From f36a2cab3d151bb4efd44dcdf3abc6ffd8dd6961 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 12:39:07 -0400 Subject: [PATCH 155/189] Done with StateIOTrace.v --- extra/Dijkstra/StateIOTrace.v | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/extra/Dijkstra/StateIOTrace.v b/extra/Dijkstra/StateIOTrace.v index c80b4275..565e6c57 100644 --- a/extra/Dijkstra/StateIOTrace.v +++ b/extra/Dijkstra/StateIOTrace.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From Stdlib Require Import Arith String. @@ -8,8 +10,6 @@ From ExtLib Require Import Core.RelDec Data.Map.FMapAList. -From Paco Require Import paco. - From ITree Require Import Axioms ITree @@ -78,12 +78,12 @@ Section PrintMults. Definition wnm_ev (next : nat) A (io : IO A) (_ : A) : forall B, IO B -> B -> Prop := match io with | Write n => write_next_mult (next + n) - | Read => bot3 end. + | Read => (fun _ _ _ => False) end. Variant writes_n (n : nat) : forall A, IO A -> A -> Prop := | wn : writes_n n unit (Write n) tt. - Definition mults_n {R : Type} (n : nat) (tr : itrace IO R) := state_machine (wnm_ev n) bot4 (writes_n 0) bot1 tr. + Definition mults_n {R : Type} (n : nat) (tr : itrace IO R) := state_machine (wnm_ev n) (fun _ _ _ _ => False) (writes_n 0) (fun _ => False) tr. CoFixpoint mults_of_n_from_m {R : Type} (n m : nat) : itrace IO R:= Vis (evans unit (Write m) tt) (fun _ => mults_of_n_from_m n (n + m) ). @@ -235,11 +235,9 @@ Section PrintMults. (*This coinductive hypothesis looks good*) intros. rename H1 into HX. - step. red. (*should be able to learn that observe tr is what we need*) (*This block shows how to proceed through the loop body*) - rename H0 into H. unfold Basics.iter, MonadIter_stateT0, Basics.iter, MonadIter_itree in H. rewrite unfold_iter in H. match type of H with _ ⊑ ITree.bind _ ?k0 => remember k0 as k end. @@ -254,18 +252,18 @@ Section PrintMults. rewrite bind_vis in H. setoid_rewrite bind_ret_l in H. unf_res. - step in H. red in H. cbn in *. + step in H. cbn in *. dependent induction H. - 2:{ rewrite <- x. constructor; auto. eapply IHruttF; eauto; reflexivity. } + 2: { simpobs. constructor; auto. eapply IHruttF; eauto; reflexivity. } inversion H; ddestruction; subst; ddestruction; try contradiction. subst. specialize (H0 tt tt). destruct a. prove_arg H0; auto with itree. match type of H0 with - paco2 _ bot2 ?tr ?t => assert (Hk1 : tr ⊑ t); auto end. - rewrite <- x. constructor; auto. + gfp _ _ ?tr ?t => assert (Hk1 : tr ⊑ t) by auto end. + simpobs. constructor; auto. intros []. - clear x tr. right. + clear x tr. remember (lookup_default X 0 si) as n. remember (lookup_default Y 0 si) as m. eapply CIH with (Maps.add Y (n + m) si); try apply lookup_eq. From 5b4ad41800656348d524a70feae80d74b9817c1d Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 13:59:41 -0400 Subject: [PATCH 156/189] Done up to part of SecureEqEuttHalt. --- _CoqProject | 18 +-- extra/ITrace/ITracePrefix.v | 80 +++++------ extra/Secure/SecureEqEuttHalt.v | 197 +++++++++++++------------- extra/Secure/SecureEqHalt.v | 77 +++++----- extra/Secure/SecureEqHaltProgInsens.v | 118 ++++++--------- 5 files changed, 225 insertions(+), 265 deletions(-) diff --git a/_CoqProject b/_CoqProject index 4d7f854a..ee277008 100644 --- a/_CoqProject +++ b/_CoqProject @@ -98,13 +98,13 @@ extra/Dijkstra/StateIOTrace.v extra/Secure/Labels.v extra/Secure/StrongBisimProper.v -# extra/Secure/SecureEqHalt.v -# extra/Secure/SecureEqHaltProgInsens.v -# extra/Secure/SecureEqEuttHalt.v -# extra/Secure/SecureEqEuttTrans.v -# extra/Secure/SecureEqWcompat.v -# extra/Secure/SecureEqBind.v -# extra/Secure/SecureEqProgInsens.v -# extra/Secure/SecureEqProgInsensFacts.v -# extra/Secure/SecureStateHandler.v +extra/Secure/SecureEqHalt.v +extra/Secure/SecureEqHaltProgInsens.v +extra/Secure/SecureEqEuttHalt.v +extra/Secure/SecureEqEuttTrans.v +extra/Secure/SecureEqWcompat.v +extra/Secure/SecureEqBind.v +extra/Secure/SecureEqProgInsens.v +extra/Secure/SecureEqProgInsensFacts.v +extra/Secure/SecureStateHandler.v # extra/Secure/SecureStateHandlerPi.v diff --git a/extra/ITrace/ITracePrefix.v b/extra/ITrace/ITracePrefix.v index bc16d930..1baffa48 100644 --- a/extra/ITrace/ITracePrefix.v +++ b/extra/ITrace/ITracePrefix.v @@ -90,17 +90,17 @@ Proof. intros E S R t1 b2 Heutt r X e k H0 CIH. dependent induction H0. - rewrite <- x0 in Heutt. dependent induction Heutt. - + rewrite <- x. apply trace_prefix_ret. - + rewrite <- x. constructor. eapply IHHeutt; eauto. + + simpobs. apply trace_prefix_ret. + + simpobs. constructor. eapply IHHeutt; eauto. - eapply IHtrace_prefixF. 3: reflexivity. all: eauto. apply simpobs in x. assert (t1 ≈ b2) by now step. rewrite x in H. rewrite tau_eutt in H. now step in H. - rewrite <- x in Heutt. dependent induction Heutt. - + rewrite <- x. constructor. - + rewrite <- x. constructor. eapply IHHeutt; eauto. + + simpobs. constructor. + + simpobs. constructor. eapply IHHeutt; eauto. - rewrite <- x in Heutt. dependent induction Heutt. - + rewrite <- x. constructor. eapply CIH; eauto with itree. - + rewrite <- x. constructor. eapply IHHeutt; eauto. + + simpobs. constructor. eapply CIH; eauto with itree. + + simpobs. constructor. eapply IHHeutt; eauto. Qed. Lemma trace_prefix_tau_inv: @@ -114,13 +114,13 @@ Proof. - auto. - step. clear IHHbp. dependent induction Hbp. + rewrite <- x0. auto with itree. - + rewrite <- x. constructor. now step in H. - + rewrite <- x. constructor. eapply IHHbp; eauto. + + simpobs. constructor. now step in H. + + simpobs. constructor. eapply IHHbp; eauto. + auto. - step. clear IHHbp. dependent induction Hbp. - + rewrite <- x. constructor. now step in H. + + simpobs. constructor. now step in H. + auto. - + rewrite <- x. constructor. eapply IHHbp; eauto. + + simpobs. constructor. eapply IHHbp; eauto. Qed. Lemma trace_prefix_proper_l : forall E R S (b1 b2 : itrace E R) (b : itrace E S), @@ -129,15 +129,15 @@ Proof. intros E R S. icoinduction c CIH. intros b1 b2 b Heutt Hbp. step in Heutt. step in Hbp. dependent induction Heutt. - - rewrite <- x. constructor. - - rewrite <- x. rewrite <- x0 in Hbp. clear x0 x. + - simpobs. constructor. + - simpobs. clear x0 x. destruct (observe b) eqn : Heqb. + inv Hbp. constructor. dependent induction H0. * apply simpobs in x0. assert (m1 ≈ m2); auto. rewrite x0 in H. clear x x0 Heqb CIH REL. step in H. cbn in *. dependent induction H. - ++ rewrite <- x. apply trace_prefix_ret. - ++ rewrite <- x. constructor. eapply IHeqitF; eauto. + ++ simpobs. apply trace_prefix_ret. + ++ simpobs. constructor. eapply IHeqitF; eauto. * eapply IHtrace_prefixF. 5: reflexivity. all: auto. apply simpobs in x. assert (m1 ≈ m2); auto. rewrite x in H. rewrite tau_eutt in H. auto. @@ -146,8 +146,8 @@ Proof. * apply simpobs in x0. assert (m1 ≈ m2); auto. rewrite x0 in H. step in H. cbn in *. dependent induction H. - ++ rewrite <- x. apply trace_prefix_ret. - ++ rewrite <- x. constructor. eapply IHeqitF; try apply x0; eauto. + ++ simpobs. apply trace_prefix_ret. + ++ simpobs. constructor. eapply IHeqitF; try apply x0; eauto. assert (m1 ≈ m2); auto. sinv x0. apply simpobs in x, H2. rewrite x, H2, tau_eutt in H0. @@ -159,36 +159,36 @@ Proof. rewrite x in H0. step in H0. cbn in *. dependent induction H0. - ++ rewrite <- x. constructor. - ++ rewrite <- x. constructor. eapply IHeqitF; try apply x0; eauto. + ++ simpobs. constructor. + ++ simpobs. constructor. eapply IHeqitF; try apply x0; eauto. assert (m1 ≈ m2); auto. apply simpobs in x. rewrite x in H1. rewrite tau_eutt in H1. auto. * apply simpobs in x. assert (m1 ≈ m2); auto. rewrite x in H0. step in H0. cbn in *. dependent induction H0. - ++ rewrite <- x. constructor. eapply CIH; try apply REL0; eauto. - ++ rewrite <- x. constructor. eapply IHeqitF; try apply x0; eauto. + ++ simpobs. constructor. eapply CIH; try apply REL0; eauto. + ++ simpobs. constructor. eapply IHeqitF; try apply x0; eauto. assert (m1 ≈ m2); auto. apply simpobs in x. rewrite x in H1. rewrite tau_eutt in H1. auto. - - rewrite <- x. rewrite <- x0 in Hbp. clear x x0. + - simpobs. clear x x0. dependent induction Hbp. - + rewrite <- x. constructor. eapply IHHbp; eauto. - + rewrite <- x. constructor. - + rewrite <- x. constructor. eapply CIH; try apply REL; eauto with itree. + + simpobs. constructor. eapply IHHbp; eauto. + + simpobs. constructor. + + simpobs. constructor. eapply CIH; try apply REL; eauto with itree. - rewrite <- x in Hbp. destruct (observe b) eqn : Heqb. + clear IHHeutt. inv Hbp. clear Heqb x. dependent induction H0. * rewrite <- x0 in Heutt. clear CIH x0 x. dependent induction Heutt. - ++ rewrite <- x. apply trace_prefix_ret. - ++ rewrite <- x. constructor. eapply IHHeutt; eauto. + ++ simpobs. apply trace_prefix_ret. + ++ simpobs. constructor. eapply IHHeutt; eauto. * eapply IHtrace_prefixF. 4: reflexivity. all: auto. assert (t1 ≈ b2) by now step. apply simpobs in x. rewrite x in H. rewrite tau_eutt in H. now step in H. + constructor. eapply IHHeutt; eauto. unstep. eapply trace_prefix_tau_inv; eauto. + clear IHHeutt. inv Hbp. eapply trace_prefix_proper_aux_vis; eauto. - - rewrite <- x. constructor. eapply IHHeutt; eauto. + - simpobs. constructor. eapply IHHeutt; eauto. Qed. Lemma trace_prefixF_tau_inv_r: @@ -202,8 +202,8 @@ Proof. intros E S R t1 b Hbp. dependent induction Hbp. - rewrite <- x0. apply trace_prefix_ret. - - rewrite <- x. constructor. now step in H. - - rewrite <- x. constructor. eapply IHHbp; eauto. + - simpobs. constructor. now step in H. + - simpobs. constructor. eapply IHHbp; eauto. - auto. Qed. @@ -231,11 +231,11 @@ Proof. assert (Tau bs ≈ m2) by now step. rewrite tau_eutt in H. now step in H. - rewrite <- x in REL. dependent induction REL. - + rewrite <- x. constructor. - + rewrite <- x. constructor. eapply IHREL; eauto. + + simpobs. constructor. + + simpobs. constructor. eapply IHREL; eauto. - rewrite <- x in REL. dependent induction REL. - + rewrite <- x. constructor. eapply CIH; try apply REL; eauto with itree. - + rewrite <- x. constructor. eapply IHREL; eauto. + + simpobs. constructor. eapply CIH; try apply REL; eauto with itree. + + simpobs. constructor. eapply IHREL; eauto. Qed. Lemma trace_prefix_proper_r : forall E R S (b : itrace E R) (b1 b2 : itrace E S), @@ -244,21 +244,21 @@ Proof. intros E R S. icoinduction c CIH. intros b b1 b2 Heutt Hbp. step in Heutt. step in Hbp. dependent induction Heutt. - - rewrite <- x. rewrite <- x0 in Hbp. clear x0 x. induction Hbp; auto with itree. + - simpobs. clear x0 x. induction Hbp; auto with itree. + constructor. eapply CIH; eauto. + constructor. now do 2 ITree.Basics.Utils.step. - - rewrite <- x0 in Hbp. rewrite <- x. clear x0 x. + - rewrite <- x0 in Hbp. simpobs. clear x0 x. destruct (observe b). + apply trace_prefix_ret. + constructor. eapply CIH; eauto. apply trace_prefix_tau_inv. auto. + inv Hbp. constructor. eapply trace_prefixF_vis_l; eauto. - - rewrite <- x. rewrite <- x0 in Hbp. clear x x0. dependent induction Hbp. + - simpobs. clear x x0. dependent induction Hbp. + rewrite <- x0. apply trace_prefix_ret. - + rewrite <- x. constructor. eapply IHHbp; eauto. - + rewrite <- x. constructor. - + rewrite <- x. constructor. eapply CIH; try apply REL; eauto with itree. + + simpobs. constructor. eapply IHHbp; eauto. + + simpobs. constructor. + + simpobs. constructor. eapply CIH; try apply REL; eauto with itree. - eapply IHHeutt; auto. rewrite <- x in Hbp. eapply trace_prefixF_tau_inv_r; eauto. - - rewrite <- x. constructor. eapply IHHeutt; eauto. + - simpobs. constructor. eapply IHHeutt; eauto. Qed. #[global] Instance trace_prefix_proper {E R S} : Proper (eutt eq ==> eutt eq ==> iff) (@trace_prefix E R S). diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 8e6b99a0..9febb6d2 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -1,3 +1,5 @@ +From Coinduction Require Import all. + From Stdlib Require Import Morphisms. From ITree Require Import @@ -10,8 +12,6 @@ From ITree.Extra Require Import Secure.SecureEqHalt . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -19,12 +19,12 @@ Local Open Scope monad_scope. Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR true true l (Tau t1) t2 -> eqit_secure Label priv RR true true l t1 t2. Proof. - intros E R1 R2 Label priv l RR. intros t1 t2 Hsec. pstep. red. - step in Hsec. red in Hsec. cbn in *. remember (TauF t1) as x. - hinduction Hsec before priv; intros; inv Heqx; try inv CHECK; auto with itree. - - constructor; auto. pstep_reverse. - - unpriv_ind. pstep_reverse. - - step in H. + intros E R1 R2 Label priv l RR. intros t1 t2 Hsec. step. + step in Hsec. cbn in *. remember (TauF t1) as x. + hinduction Hsec before priv; intros; inv Heqx; eauto with itree. + - constructor; auto. now unstep. + - unpriv_ind. now unstep. + - now step in H. Qed. Lemma unpriv_e_eqit_secure : forall E A R1 R2 Label priv l RR (e : E A) (k : A -> itree E R1) @@ -34,74 +34,73 @@ Lemma unpriv_e_eqit_secure : forall E A R1 R2 Label priv l RR (e : E A) (k : A - forall a, eqit_secure Label priv RR true true l (k a) t. Proof. intros. generalize dependent t. rename H into Hunpriv. generalize dependent a. - intros. step in H0. red in H0. cbn in *. step. red. + intros. step in H0. cbn in *. step. remember (VisF e k) as x. genobs_clear t ot. hinduction H0 before l; intros; try inv Heqx; ddestruction; subst; try contradiction; try contra_size; auto. - constructor; auto. eapply IHsecure_eqitF; eauto. - - constructor; auto. pstep_reverse. - - unpriv_ind. pstep_reverse. apply H. + - constructor; auto. now unstep. + - unpriv_ind. unstep. apply H. - unpriv_ind. eapply H0; eauto. - - rewrite itree_eta'. pstep_reverse. + - rewrite itree_eta'. now unstep. Qed. (* reformat this lemma? useful but unclear *) Lemma eses_aux1: forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) - (r : itree E R1 -> itree E R2 -> Prop) (m1 m2 : itree E R1), + (m1 m2 : itree E R1), m1 ≈ m2 -> (forall (t1 t1' : itree E R1) (t2 : itree E R2), - t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> r t1' t2) -> + t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> eqit_secure Label priv RR true true l t1' t2) -> forall (X : Type) (e : E X) (k : X -> itree E R2), - secure_eqitF Label priv RR true true l id - (upaco2 (secure_eqit_ Label priv RR true true l id) bot2) (observe m1) + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (observe m1) (VisF e k) -> leq (priv X e) l -> - secure_eqitF Label priv RR true true l id - (upaco2 (secure_eqit_ Label priv RR true true l id) r) (observe m2) + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (observe m2) (VisF e k). Proof. - intros E R2 R1 Label priv l RR r m1 m2 REL CIH X e k Hsec SECCHECK. - remember (VisF e k) as x. step in REL. red in REL. rewrite Heqx. - hinduction Hsec before r; intros; try inv Heqx; ddestruction; subst; try contradiction; auto. + intros E R2 R1 Label priv l RR m1 m2 REL CIH X e k Hsec SECCHECK. + remember (VisF e k) as x. step in REL. rewrite Heqx. + hinduction Hsec before E; intros; try inv Heqx; ddestruction; subst; try contradiction; auto. - eapply IHHsec; eauto. - pstep_reverse. setoid_rewrite <- tau_eutt at 1. step. auto. + unstep. setoid_rewrite <- tau_eutt at 1. step. auto. - remember (VisF e0 k1) as y. - hinduction REL before r; intros; try inv Heqy; ddestruction; subst; auto. - + constructor; auto. right. eapply CIH; eauto; try apply H. + hinduction REL before CIH; intros; try inv Heqy; ddestruction; subst; auto. + + constructor; auto. intros. eapply CIH; try apply H. apply REL. + constructor; eauto. - rewrite H2. remember (VisF e k1) as y. - hinduction REL before r; intros; try inv Heqy; ddestruction; subst; auto. - + rewrite <- H2. unpriv_ind. rewrite H2. eapply H0; eauto. - Unshelve. all: auto. pstep_reverse. + hinduction REL before e; intros; try inversion Heqy. ddestruction. + + rewrite <- H2. unpriv_ind. rewrite H2. eapply H0; eauto. + Unshelve. all: auto. now unstep. + constructor; auto. eapply IHREL; eauto. Qed. Lemma eses_aux2: forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) - (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) - (r : itree E R1 -> itree E R2 -> Prop) (m1 m2 : itree E R1) (r0 : R2), + (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) (m1 m2 : itree E R1) (r0 : R2), m1 ≈ m2 -> - secure_eqitF Label priv RR true true l id - (upaco2 (secure_eqit_ Label priv RR true true l id) bot2) (observe m1) + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (observe m1) (RetF r0) -> - secure_eqitF Label priv RR true true l id - (upaco2 (secure_eqit_ Label priv RR true true l id) r) (observe m2) + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (observe m2) (RetF r0). Proof. - intros E R2 R1 Label priv l RR r m1 m2 r0 Heutt Hsec. - step in Heutt. red in Heutt. remember (RetF r0) as x. - rewrite Heqx. hinduction Hsec before r; intros; inv Heqx; auto with itree. + intros E R2 R1 Label priv l RR m1 m2 r0 Heutt Hsec. + step in Heutt. remember (RetF r0) as x. + rewrite Heqx. hinduction Hsec before E; intros; inv Heqx; auto with itree. - remember (RetF r1) as y. - hinduction Heutt before r; intros; inv Heqy; auto with itree. + hinduction Heutt before E; intros; inv Heqy; auto with itree. constructor; auto. eapply IHHeutt; eauto. - - eapply IHHsec; eauto. pstep_reverse. rewrite <- tau_eutt at 1. step. auto. + - eapply IHHsec; eauto. unstep. rewrite <- tau_eutt at 1. step. auto. - remember (VisF e k1) as y. - hinduction Heutt before r; intros; inv Heqy; ddestruction; subst; auto. + hinduction Heutt before E; intros; inv Heqy; ddestruction; subst; auto. + unpriv_ind. rewrite H2. eapply H0; eauto. - pstep_reverse. + now unstep. + constructor; auto. eapply IHHeutt; eauto. Qed. @@ -144,7 +143,7 @@ Proof. apply eqit_secure_sym. eapply unpriv_e_eqit_secure; eauto. apply eqit_secure_sym. step. auto. - - rewrite itree_eta' at 1. pstep_reverse. + - rewrite itree_eta' at 1. unstep. assert (eqit_secure Label priv RR true true l (Vis e k1) t2 ). { step; auto. } clear Hsec. rename H into Hsec. @@ -189,7 +188,7 @@ Proof. (* eapply unpriv_e_eqit_secure; eauto. *) do 2 (eapply unpriv_e_eqit_secure; eauto; apply eqit_secure_sym). step. auto. - - eapply IHHeutt; eauto. pstep_reverse. + - eapply IHHeutt; eauto. unstep. apply tau_eqit_secure. step. auto. Qed. @@ -205,25 +204,25 @@ Proof. intros. step in H. red in H. cbn in *. pstep. red. remember (TauF t0) as x. remember (TauF t4) as y. hinduction H before b2; intros; try discriminate. - - inv Heqx; inv Heqy. pstep_reverse. + - inv Heqx; inv Heqy. unstep. - inv Heqx. inv H; eauto with itree. - + unpriv_ind. pstep_reverse. + + unpriv_ind. unstep. + unpriv_ind. rewrite H1 in H2. specialize (H2 a). genobs (k1 a) ok1. clear Heqok1. remember (TauF t4) as y. hinduction H2 before b2; intros; inv Heqy; try inv CHECK; eauto with itree. - * constructor; auto; pstep_reverse. - * unpriv_ind. pstep_reverse. + * constructor; auto; unstep. + * unpriv_ind. unstep. * step in H. + step in H2. - inv Heqy. inv H; eauto with itree. - + unpriv_ind. pstep_reverse. + + unpriv_ind. unstep. + rewrite H0 in H2. unpriv_ind. specialize (H2 a). genobs (k2 a) ok2. clear Heqok2. remember (TauF t0) as y. hinduction H2 before b2; intros; inv Heqy; try inv CHECK; eauto with itree. - * constructor; auto. pstep_reverse. - * unpriv_ind. pstep_reverse. + * constructor; auto. unstep. + * unpriv_ind. unstep. * step in H. + step in H2. Qed. @@ -244,16 +243,16 @@ Proof. remember (VisF e k) as y. step. clear IHHsec. hinduction Hsec before b2; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + specialize (H a). step in H. - inv Heqx. inv Heqy. ddestruction; subst. apply H. - inv Heqx. inv Heqy. ddestruction; subst. rewrite H2 in H. clear H0. clear H2 t1. remember (TauF t3) as x. step. specialize (H a). hinduction H before b2; intros; inv Heqx; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + step in H. - inv Heqx. inv Heqy. ddestruction; subst. contra_size. Qed. @@ -273,8 +272,8 @@ Proof. - inv Heqx. inv CHECK. remember (VisF e k) as y. step. clear IHHsec. hinduction Hsec before b1; intros; inv Heqy; ddestruction; subst; try contradiction; eauto with itree. - + constructor; auto with itree. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto with itree. unstep. + + unpriv_ind. unstep. + contra_size. + contra_size. + specialize (H a). step in H. @@ -282,8 +281,8 @@ Proof. - inv Heqx. inv Heqy. ddestruction; subst. rewrite H2 in H. inv CHECK. specialize (H a). step. remember (TauF t3) as y. hinduction H before b2; intros; inv Heqy; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + step in H. - inv Heqx. inv Heqy. ddestruction; subst. contra_size. Qed. @@ -305,14 +304,14 @@ Proof. remember (VisF e0 k) as y. hinduction H1 before l; intros; try discriminate. - inv Heqx. inv Heqy. ddestruction; subst. contradiction. - - inv Heqx. inv Heqy. ddestruction; subst. pstep_reverse. + - inv Heqx. inv Heqy. ddestruction; subst. unstep. - inv Heqx. ddestruction; subst. inv CHECK. clear H0. specialize (H a). rewrite Heqy in H. clear Heqy. remember (VisF e1 k) as y. hinduction H before l; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + specialize (H a0). step in H. - inv Heqy. ddestruction; subst. inv CHECK. clear H0. @@ -320,8 +319,8 @@ Proof. remember (VisF e0 k0) as y. hinduction H before b1; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + specialize (H a). step in H. - inv Heqx; inv Heqy; ddestruction; subst. contra_size. - inv Heqx; inv Heqy; ddestruction; subst. contra_size. @@ -353,7 +352,7 @@ Lemma eqit_secure_private_VisL: eqit_secure Label priv RR2 true b2 l (k2 a) t) -> eqit_secure Label priv RR2 true b2 l (Vis e k2) t . Proof. - intros. step. cbn. unpriv_ind. pstep_reverse. apply H1. + intros. step. cbn. unpriv_ind. unstep. apply H1. Qed. Lemma eqit_secure_private_VisR: @@ -366,7 +365,7 @@ Lemma eqit_secure_private_VisR: eqit_secure Label priv RR2 b1 true l t (k2 a)) -> eqit_secure Label priv RR2 b1 true l t (Vis e k2). Proof. - intros. step. cbn. unpriv_ind. pstep_reverse. apply H1. + intros. step. cbn. unpriv_ind. unstep. apply H1. Qed. Lemma eqit_secure_public_Vis : forall (E : Type -> Type) (R1 R2 : Type) (Label : Preorder) (priv : forall x : Type, E x -> L) @@ -405,17 +404,17 @@ Proof. - eapply IHHt23; eauto. remember (TauF t1) as y. hinduction H before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + step in H. - assert (Hne : nonempty A). { eauto. } (* add the condition that lets us assume this*) inv Hne. eapply (H0 a); eauto. remember (VisF e k1) as y. hinduction H1 before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. - + rewrite itree_eta' at 1. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + + rewrite itree_eta' at 1. unstep. Qed. Lemma eqit_secure_trans_aux2: @@ -442,8 +441,8 @@ Proof. ddestruction; subst; try contradiction; eauto. - eapply IHHt23; eauto. clear IHHt23. remember (TauF t1) as y. hinduction Ht before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + step in H. - remember (VisF e0 k1) as y. hinduction Ht before r; intros; inv Heqy; try inv CHECK; @@ -456,9 +455,9 @@ Proof. remember (VisF e k1) as y. hinduction Ht before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. - + rewrite itree_eta' at 1. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + + rewrite itree_eta' at 1. unstep. Qed. @@ -566,7 +565,7 @@ Proof. + apply H1. - inv SIZECHECK. eapply H0; eauto. Unshelve. all : auto. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. - rewrite itree_eta' at 1. pstep_reverse. + rewrite itree_eta' at 1. unstep. - unpriv_halt. right. eapply CIH; eauto. step. apply Ht2. step. apply H. - unpriv_halt. right. eapply CIH; eauto. step. auto. @@ -632,15 +631,15 @@ Proof. * inv Ht23. inv CHECK. rewrite itree_eta' at 1. assert (eqit_secure Label priv (rcompose RR1 RR2) true b2 l (Tau t0) (Ret r0) ). { step. cbn. rewrite itree_eta' at 1. eapply eqit_secure_trans_aux1; eauto. - step. constructor; auto. pstep_reverse. } - rewrite itree_eta'. pstep_reverse. eapply paco2_mon; eauto. + step. constructor; auto. unstep. } + rewrite itree_eta'. unstep. eapply paco2_mon; eauto. intros; contradiction. * destruct (classic (leq (priv _ e) l ) ). -- inv Ht23; ddestruction; subst; try contradiction; try inv CHECK. constructor; auto. eapply eqit_secure_trans_aux2; eauto. -- destruct (classic_empty X). ++ rewrite itree_eta'. rewrite itree_eta' at 1. - pstep_reverse. + unstep. eapply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_3 with (t2 := Tau t3); eauto. ** step. constructor. left. auto. @@ -651,8 +650,8 @@ Proof. - apply IHHt12; auto. remember (TauF t0) as y. hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. + + constructor; auto. unstep. + + unpriv_ind. unstep. + step in H. - remember (VisF e k2) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; ddestruction; subst; @@ -672,8 +671,8 @@ Proof. clear IHHt23. remember (TauF t) as y. step. red. hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; eauto with itree. - -- constructor; auto. pstep_reverse. - -- unpriv_ind. pstep_reverse. + -- constructor; auto. unstep. + -- unpriv_ind. unstep. -- step in H. * destruct (classic (leq (priv _ e0) l ) ). -- rewrite itree_eta'. unpriv_ind. cbn. @@ -681,16 +680,16 @@ Proof. clear Heqt a k1. eapply eqit_secure_trans_aux2; eauto. -- destruct (classic_empty X). ++ rewrite itree_eta'. unpriv_ind. - pstep_reverse. apply paco2_mon with (r := bot2); intros; try contradiction. + unstep. apply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_3; eauto. apply H. step. auto. ++ unpriv_co. right. eapply CIH0. apply H. clear IHHt23. pstep. remember (VisF e0 k) as y. hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** constructor; auto. pstep_reverse. - ** unpriv_ind. pstep_reverse. - ** rewrite itree_eta' at 1. pstep_reverse. + ** constructor; auto. unstep. + ** unpriv_ind. unstep. + ** rewrite itree_eta' at 1. unstep. + constructor; auto. eapply IHHt23; eauto. + unpriv_co. right. eapply CIH0; try apply H0. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. @@ -718,7 +717,7 @@ Proof. constructor; auto. rewrite H5. eapply eqit_secure_trans_aux2; eauto. rewrite <- H5. apply H2. Unshelve. all : auto. -- destruct (classic_empty X). - ++ rewrite itree_eta'. rewrite itree_eta' at 1. pstep_reverse. + ++ rewrite itree_eta'. rewrite itree_eta' at 1. unstep. eapply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_3 with (t2 := Vis e k2); eauto. ** step. cbn. unpriv_co. @@ -750,11 +749,11 @@ Proof. clear Heqok2 H1 k2. remember (TauF t) as y. hinduction H before r; intros; inv Heqy; try inv CHECK; auto. - -- constructor; auto. pstep_reverse. + -- constructor; auto. unstep. -- constructor; eauto. - -- unpriv_ind. pstep_reverse. + -- unpriv_ind. unstep. -- unpriv_ind. eapply H0; eauto. - -- rewrite itree_eta' at 1. pstep_reverse. + -- rewrite itree_eta' at 1. unstep. * inv SIZECHECK2. destruct (classic (leq (priv _ e) l ) ). -- rewrite itree_eta'. unpriv_ind. @@ -769,9 +768,9 @@ Proof. clear Heqok2. hinduction H before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** constructor; auto. pstep_reverse. - ** unpriv_ind. pstep_reverse. - ** rewrite itree_eta' at 1. pstep_reverse. + ** constructor; auto. unstep. + ** unpriv_ind. unstep. + ** rewrite itree_eta' at 1. unstep. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. + inv SIZECHECK2. unpriv_halt. right. eapply CIH0; eauto. apply H0. apply H. Unshelve. auto. @@ -779,12 +778,12 @@ Proof. ddestruction; subst; try contradiction; try contra_size; auto. + constructor; auto. eapply IHHt23; eauto. + constructor; auto. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. - pstep_reverse. Unshelve. auto. + unstep. Unshelve. auto. + unpriv_ind. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. - pstep_reverse. Unshelve. auto. + unstep. Unshelve. auto. + assert (Hne : nonempty A0). { eauto. } inv Hne. eauto. Unshelve. auto. + unpriv_ind. eauto. - + rewrite itree_eta'. pstep_reverse. + + rewrite itree_eta'. unstep. apply paco2_mon with (r := bot2); intros; try contradiction. inv SIZECHECK0. eapply secret_halt_trans_3 with (t2 := k0 a); eauto. @@ -795,7 +794,7 @@ Proof. hinduction Ht23 before r; intros; inv Heqy; subst; eauto with itree; + unpriv_halt. right. eapply CIH0; eauto. + clear IHHt23. rewrite itree_eta'. rewrite itree_eta' at 1. - pstep_reverse. apply paco2_mon with (r := bot2); intros; try contradiction. + unstep. apply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_2; eauto. step. auto. + unpriv_halt. right. eapply CIH0; eauto. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. @@ -812,7 +811,7 @@ Proof. * unpriv_co. right. eapply CIH0; eauto. apply H1. + unpriv_halt. right. eapply CIH0; eauto. step. cbn. unpriv_halt. contra_size. - - rewrite itree_eta' at 1. pstep_reverse. + - rewrite itree_eta' at 1. unstep. apply paco2_mon with (r := bot2); intros; try contradiction. eapply secret_halt_trans_2 with (t2 := Vis e2 k2); eauto. + step. cbn. unpriv_halt. @@ -855,7 +854,7 @@ Proof. intros t1 t1' t2 Heq Hsec. pstep. red. step in Heq. red in Heq. step in Hsec. red in Hsec. inv Heq; try inv CHECK. - - rewrite <- H0 in Hsec. rewrite itree_eta' at 1. pstep_reverse. + - rewrite <- H0 in Hsec. rewrite itree_eta' at 1. unstep. eapply paco2_mon with (r := bot2); intros; try contradiction. step. red. cbn. remember (RetF r2) as x. clear H H0. hinduction Hsec before r; intros; inv Heqx; eauto with itree. diff --git a/extra/Secure/SecureEqHalt.v b/extra/Secure/SecureEqHalt.v index 0cf6b5b3..cb056f1e 100644 --- a/extra/Secure/SecureEqHalt.v +++ b/extra/Secure/SecureEqHalt.v @@ -1,6 +1,6 @@ -From Stdlib Require Import PeanoNat. +From Coinduction Require Import all. (* import for CompleteLattice instances; Preorder's leq is re-imported below via Labels and wins as the unqualified name *) +From Stdlib Require Import Morphisms PeanoNat. -From Coinduction Require all. (* don't import; library's leq clashes with Preorder leq *) From ITree Require Import Basics.Utils @@ -72,8 +72,8 @@ Section SecureUntimed. Hint Unfold secure_eqit_ : itree. - Lemma secure_eqitF_mono b1 b2 l : - Proper (Coinduction.lattice.leq ==> Coinduction.lattice.leq) +Lemma secure_eqitF_mono b1 b2 l : + Proper (respectful Coinduction.lattice.leq Coinduction.lattice.leq) (secure_eqit_ b1 b2 l). Proof. intros!. red; red in H0. @@ -128,7 +128,7 @@ Section eqit_secureC. Context {E: Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). Context (Label : Preorder) (priv : forall A, E A -> L) (l : L). -Lemma eqit_secure_trans t1 t2 t1' t2' RR1 RR2 +(* Lemma eqit_secure_trans b1 b1' b2 b2' r t1 t2 t1' t2' RR1 RR2 (EQVl: eqit_secure Label priv RR1 b1 b1' l t1 t1') (EQVr: eqit_secure Label priv RR2 b2 b2' l t2 t2') (REL: r t1' t2') @@ -159,56 +159,45 @@ Lemma eqit_secure_trans t1 t2 t1' t2' RR1 RR2 eqit_secureC b1 b2 r2 t1 t2. Proof. destruct IN; eauto with itree. - Qed. + Qed. *) End eqit_secureC. -Ltac gfinal_with H := gfinal; left; apply H. - +(* TOUR: This proof *) Lemma eqit_secure_sym : forall b1 b2 E R1 R2 RR Label priv l (t1 : itree E R1) (t2 : itree E R2), - eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv (flip RR) b2 b1 l t2 t1. + eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv (Basics.flip RR) b2 b1 l t2 t1. Proof. - intros b1 b2 E R1 R2 RR Label priv l. coinduction c CIH. - intros t1 t2 Hsec. step. step in Hsec. red in Hsec. - hinduction Hsec before r; intros; eauto with itree; - try (unpriv_co; right; apply CIH; apply H); + intros b1 b2 E R1 R2 RR Label priv l. icoinduction c CIH. + intros t1 t2 Hsec. step in Hsec. + hinduction Hsec before c; intros; eauto with itree; + try (unpriv_co; apply CIH; apply H); try unpriv_halt. - - constructor; auto with itree. intros. right. apply CIH; apply H. - - specialize (H a). remember (k2 a) as t. clear Heqt k2. - left. - intros. step. cbn. step in H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; eauto; - try (unpriv_halt; fail). - + unpriv_halt. right. apply CIH. step. auto. - + rewrite H0. rewrite H0 in H2. unpriv_halt. - right. apply CIH. step. apply H2. - + unpriv_halt. right. apply CIH. apply H1. - + unpriv_halt. right. apply CIH. apply H1. - - specialize (H b). remember (k1 b) as t. clear Heqt k1. - left. - intros. step. cbn. step in H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; eauto; - try (unpriv_halt; fail). - + unpriv_halt. right. apply CIH. step. auto. - + rewrite H1. rewrite H1 in H2. unpriv_halt. - right. apply CIH. step. apply H2. - + unpriv_halt. inv SIZECHECK0. contradiction. - + unpriv_halt. right. apply CIH. apply H2. -Qed. - -Lemma secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l + - constructor; auto with itree. intros. apply CIH; apply H. + - eapply EqVisUnprivHaltRVisL; eauto. + intros. eapply CIH. apply H. + - eapply EqVisUnprivHaltLVisR; eauto. + intros. eapply CIH. apply H. +Qed. + +Lemma secure_eqit_mono : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l (t1 : itree E R1) (t2 : itree E R2), - (b1 -> b3) -> (b2 -> b4) -> (RR1 <2= RR2) -> + (b1 -> b3) -> (b2 -> b4) -> (RR1 <= RR2) -> eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit_secure Label priv RR2 b3 b4 l t1 t2. Proof. intros. generalize dependent t2. revert t1. coinduction c CIH. - intros t1 t2 Ht12. pstep. red. - step in Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; - try (unpriv_co; right; apply CIH; try red; eauto; fail); - try (unpriv_halt; try contra_size; right; apply CIH; try red; eauto; fail). - constructor; auto. right. eauto. apply CIH; apply H2. + intros t1 t2 Ht12. icbn. + step in Ht12. + hinduction Ht12 before l; intros; + try (unpriv_co; apply CIH; try red; eauto; fail); + try (unpriv_halt; try contra_size; apply CIH; try red; eauto; fail); + eauto with itree. + - constructor; auto. now apply H2. + - constructor; intros; eauto. eapply CIH. apply H. + - eapply EqVisUnprivHaltLVisR; eauto. + intros. eapply CIH. apply H. + - eapply EqVisUnprivHaltRVisL; eauto. + intros. eapply CIH. apply H. Qed. End SecureUntimedUnReflexive. diff --git a/extra/Secure/SecureEqHaltProgInsens.v b/extra/Secure/SecureEqHaltProgInsens.v index 5694a518..542b06ed 100644 --- a/extra/Secure/SecureEqHaltProgInsens.v +++ b/extra/Secure/SecureEqHaltProgInsens.v @@ -1,3 +1,6 @@ +From Coinduction Require Import all. (* import for CompleteLattice instances; Preorder's leq is re-imported below via Labels and wins as the unqualified name *) +From Stdlib Require Import Morphisms PeanoNat. + From ITree Require Import Axioms ITree @@ -6,8 +9,6 @@ From ITree Require Import From ITree.Extra Require Export Secure.Labels. -From Paco Require Import paco. - (* will need more propositional constraints on Preorders *) Section SecureUntimed. @@ -18,69 +19,63 @@ Section SecureUntimed. Coercion is_true : bool >-> Sortclass. - Variant secure_eqitF (b1 b2 : bool) (l : L) vclo (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := + Variant secure_eqitF (b1 b2 : bool) (l : L) (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := (* eqitF constructors *) - | secEqRet r1 r2 : RR r1 r2 -> secure_eqitF b1 b2 l vclo sim (RetF r1) (RetF r2) - | secEqTau t1 t2 : sim t1 t2 -> secure_eqitF b1 b2 l vclo sim (TauF t1) (TauF t2) - | secEqTauL t1 t2 (CHECK : b1) : sim t1 t2 -> secure_eqitF b1 b2 l vclo sim (TauF t1) (observe t2) - | secEqTauR t1 t2 (CHECK : b2) : sim t1 t2 -> secure_eqitF b1 b2 l vclo sim (observe t1) (TauF t2) + | secEqRet r1 r2 : RR r1 r2 -> secure_eqitF b1 b2 l sim (RetF r1) (RetF r2) + | secEqTau t1 t2 : sim t1 t2 -> secure_eqitF b1 b2 l sim (TauF t1) (TauF t2) + | secEqTauL t1 t2 (CHECK : b1) : sim t1 t2 -> secure_eqitF b1 b2 l sim (TauF t1) (observe t2) + | secEqTauR t1 t2 (CHECK : b2) : sim t1 t2 -> secure_eqitF b1 b2 l sim (observe t1) (TauF t2) (* info_flow protecting coinductive constructors *) | EqVisPriv {A} (e : E A) k1 k2 (SECCHECK : leq (priv A e) l) : - ((forall a, vclo sim (k1 a) (k2 a) : Prop)) -> secure_eqitF b1 b2 l vclo sim (VisF e k1) (VisF e k2) + ((forall a, sim (k1 a) (k2 a) : Prop)) -> secure_eqitF b1 b2 l sim (VisF e k1) (VisF e k2) | EqVisUnPrivTauLCo {A} (e : E A) k1 t2 (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, vclo sim (k1 a) t2) -> secure_eqitF b1 b2 l vclo sim (VisF e k1) (TauF t2) + (forall a, sim (k1 a) t2) -> secure_eqitF b1 b2 l sim (VisF e k1) (TauF t2) | EqVisUnPrivTauRCo {A} (e : E A) t1 k2 (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, vclo sim t1 (k2 a)) -> secure_eqitF b1 b2 l vclo sim (TauF t1) (VisF e k2) + (forall a, sim t1 (k2 a)) -> secure_eqitF b1 b2 l sim (TauF t1) (VisF e k2) | EqVisUnPrivVisCo {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) (SIZECHECK1 : nonempty A ) (SIZECHECK2 : nonempty B) : - (forall a b, vclo sim (k1 a) (k2 b)) -> secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall a b, sim (k1 a) (k2 b)) -> secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) (* info_flow protecting inductive constructors *) | EqVisUnPrivLInd {A} (e : E A) k1 t2 (CHECK : b1) (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, vclo sim (k1 a) t2) -> - secure_eqitF b1 b2 l vclo sim (VisF e k1) (observe t2) + (forall a, sim (k1 a) t2) -> + secure_eqitF b1 b2 l sim (VisF e k1) (observe t2) | EqVisUnPrivRInd {A} (e : E A) t1 k2 (CHECK : b2) (SECCHECK : ~ leq (priv A e) l) (SIZECHECK : nonempty A) : - (forall a, vclo sim t1 (k2 a) ) -> - secure_eqitF b1 b2 l vclo sim (observe t1) (VisF e k2) + (forall a, sim t1 (k2 a) ) -> + secure_eqitF b1 b2 l sim (observe t1) (VisF e k2) (* info_flow protecting constructors for halting events, should capture the notion that a secret halt means that either it halted or it is performing some secret or silent computation and you can't tell which *) | EqVisUnprivHaltLTauR {A} (e : E A) k1 t2 (SECCHECK : ~ leq (priv A e) l ) (SIZECHECK : empty A) : - sim (Vis e k1) t2 -> secure_eqitF b1 b2 l vclo sim (VisF e k1) (TauF t2) + sim (Vis e k1) t2 -> secure_eqitF b1 b2 l sim (VisF e k1) (TauF t2) | EqVisUnprivHaltRTauL {A} (e : E A) t1 k2 (SECCHECK : ~ leq (priv A e) l ) (SIZECHECK : empty A) : - sim t1 (Vis e k2) -> secure_eqitF b1 b2 l vclo sim (TauF t1) (VisF e k2) + sim t1 (Vis e k2) -> secure_eqitF b1 b2 l sim (TauF t1) (VisF e k2) | EqVisUnprivHaltLVisR {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) (SIZECHECK : empty A) : - (forall b, vclo sim (Vis e1 k1) (k2 b) ) -> secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall b, sim (Vis e1 k1) (k2 b) ) -> secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) | EqVisUnprivHaltRVisL {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) (SIZECHECK : empty B) : - (forall a, vclo sim (k1 a) (Vis e2 k2)) -> secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall a, sim (k1 a) (Vis e2 k2)) -> secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) . Hint Constructors secure_eqitF : itree. - Definition secure_eqit_ (b1 b2 : bool) (l : L) vclo (sim : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := - fun t1 t2 => secure_eqitF b1 b2 l vclo sim (observe t1) (observe t2). + Definition secure_eqit_ (b1 b2 : bool) (l : L) (sim : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := + fun t1 t2 => secure_eqitF b1 b2 l sim (observe t1) (observe t2). Hint Unfold secure_eqit_ : itree. - Lemma secure_eqitF_mono b1 b2 l x0 x1 vclo vclo' sim sim' - (IN: secure_eqitF b1 b2 l vclo sim x0 x1) - (MON: monotone2 vclo) - (LEc: vclo <3= vclo') - (LE: sim <2= sim'): - secure_eqitF b1 b2 l vclo' sim' x0 x1. + Lemma secure_eqitF_mono b1 b2 l : + Proper (Coinduction.lattice.leq ==> Coinduction.lattice.leq) + (secure_eqit_ b1 b2 l). Proof. - intros. induction IN; eauto with itree. - Qed. + intros!. red; red in H0. + destruct H0; try solve [constructor; intros; eauto with itree; now apply H]. - Lemma secure_eqit_mono b1 b2 l vclo (MON: monotone2 vclo) : monotone2 (secure_eqit_ b1 b2 l vclo). - Proof. - do 2 red. intros; eapply secure_eqitF_mono; eauto. Qed. - Hint Resolve secure_eqit_mono : paco. + Definition secure_eqit_mon b1 b2 l := Build_mon (secure_eqitF_mono b1 b2 l). - Definition eqit_secure b1 b2 l := paco2 (secure_eqit_ b1 b2 l id) bot2. + Definition eqit_secure b1 b2 l := gfp (secure_eqit_mon b1 b2 l). (* want and eqitC_secure which could help prove some interesting stuff @@ -99,14 +94,12 @@ Section SecureUntimed. End SecureUntimed. -#[export] Hint Resolve secure_eqit_mono : paco. - #[export] Hint Constructors secure_eqitF : itree. Definition NatPreorder : Preorder := {| L := nat; - leq := fun n m => n <= m + leq := fun n m => Nat.le n m |}. Section SecureUntimedUnReflexive. @@ -228,7 +221,7 @@ Section eqit_secureC. Lemma eqit_secureC_mon b1 b2 r1 r2 t1 t2 (IN : eqit_secureC b1 b2 r1 t1 t2) - (LE: r1 <2= r2) : + (LE: forall x y, r1 x y -> r2 x y) : eqit_secureC b1 b2 r2 t1 t2. Proof. destruct IN; eauto with itree. @@ -264,51 +257,30 @@ Ltac unpriv_halt := try apply EqVisUnprivHaltLTauR; try apply EqVisUnprivHaltRTauL; try apply *) -Ltac gfinal_with H := gfinal; left; apply H. Ltac ne A := let Hne := fresh "H" in assert (Hne : nonempty A); eauto; inv Hne. Lemma eqit_secure_sym : forall b1 b2 E R1 R2 RR Label priv l (t1 : itree E R1) (t2 : itree E R2), - eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv (flip RR) b2 b1 l t2 t1. + eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv (Basics.flip RR) b2 b1 l t2 t1. Proof. - intros b1 b2 E R1 R2 RR Label priv l. coinduction c CIH. - intros t1 t2 Hsec. step. step in Hsec. red in Hsec. - hinduction Hsec before r; intros; eauto with itree; - try (unpriv_co; right; apply CIH; apply H); - try unpriv_halt. - - constructor; auto. intros. right. apply CIH; apply H. - - constructor; auto. eapply CIH. apply H. - - constructor; auto. eapply CIH. apply H. - - specialize (H a). remember (k2 a) as t. clear Heqt k2. - left. - intros. step. cbn. step in H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; eauto with itree; - try (unpriv_halt; fail). - + constructor; auto. right. eapply CIH; eauto. apply H2. - + unpriv_halt. eapply CIH. apply H1. - + unpriv_halt. eapply CIH. apply H1. - - specialize (H b). remember (k1 b) as t. clear Heqt k1. - left. - intros. step. cbn. step in H. red in H. cbn in H. - inv H; ddestruction; subst; try contra_size; try contradiction; eauto with itree; - try (unpriv_halt; fail). - + constructor; auto. right. eapply CIH; eauto. apply H2. - + unpriv_halt. right. inv SIZECHECK0. contradiction. - + unpriv_halt. eapply CIH. apply H2. -Qed. + intros b1 b2 E R1 R2 RR Label priv l. icoinduction c CIH. + intros t1 t2 Hsec. step in Hsec. + hinduction Hsec before c; intros; + try (constructor; eauto; intros; apply CIH; apply H). +Qed. -Lemma secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l +Lemma secure_eqit_mono : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l (t1 : itree E R1) (t2 : itree E R2), - (b1 -> b3) -> (b2 -> b4) -> (RR1 <2= RR2) -> + (b1 -> b3) -> (b2 -> b4) -> (RR1 <= RR2) -> eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit_secure Label priv RR2 b3 b4 l t1 t2. Proof. intros. generalize dependent t2. revert t1. coinduction c CIH. - intros t1 t2 Ht12. pstep. red. - step in Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; - try (unpriv_co; right; apply CIH; try red; eauto; fail); - try (unpriv_halt; try contra_size; right; apply CIH; try red; eauto; fail). - all : (constructor; auto; right; eauto; apply CIH; apply H2). + intros t1 t2 Ht12. icbn. + step in Ht12. + hinduction Ht12 before l; intros; + try (constructor; eauto; intros; apply CIH; apply H); + eauto with itree. + - constructor; auto. now apply H2. Qed. End SecureUntimedUnReflexive. From 96772f42dcf225216c3c4c49297645c5de21c3c2 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 11 May 2026 19:16:39 -0400 Subject: [PATCH 157/189] Done with SecureEqEuttHalt, needs speedups. --- extra/ITrace/ITraceBind.v | 4 +- extra/Secure/SecureEqEuttHalt.v | 652 +++++++++++++------------ extra/Secure/SecureEqHalt.v | 14 +- extra/Secure/SecureEqProgInsens.v | 34 +- extra/Secure/SecureEqProgInsensFacts.v | 2 +- extra/Secure/SecureEqWcompat.v | 94 ++-- extra/Secure/SecureStateHandler.v | 2 +- theories/Eq/Eqit.v | 14 +- 8 files changed, 416 insertions(+), 400 deletions(-) diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index a51cb8af..2c178792 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -103,7 +103,7 @@ Qed. Lemma peel_t_ret : forall E R S (b : itrace E S) (t : itree E R) r, t ≅ Ret r -> (peel b t ≅ Ret r). Proof. intros. unfold peel. - sinv H; subst; try inv CHECK. + sinv H; subst. destruct (observe b); cbn; auto. - step. cbn. constructor. auto. - step. cbn. constructor; auto. @@ -888,7 +888,7 @@ Proof. destruct H as [s Ht0]. step in Ht0. cbn in Ht0. clear Heqt Hrutt. dependent induction Ht0. - - simpobs. cbn. step in Heqb. cbn in *. inv Heqb; try inv CHECK. + - simpobs. cbn. step in Heqb. cbn in *. inv Heqb. rewrite H0. auto with itree. - simpobs. cbn. constructor. eapply IHHt0; eauto. Qed. diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 9febb6d2..9d01292a 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -42,55 +42,82 @@ Proof. - constructor; auto. now unstep. - unpriv_ind. unstep. apply H. - unpriv_ind. eapply H0; eauto. - - rewrite itree_eta'. now unstep. + - rewrite itree_eta'. now now unstep. Qed. -(* reformat this lemma? useful but unclear *) -Lemma eses_aux1: forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) +Lemma eses_au_vis_r: forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) + (r : itree E R1 -> itree E R2 -> Prop) (m1 m2 : itree E R1), - m1 ≈ m2 -> - (forall (t1 t1' : itree E R1) (t2 : itree E R2), - t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> eqit_secure Label priv RR true true l t1' t2) -> - forall (X : Type) (e : E X) (k : X -> itree E R2), - secure_eqitF Label priv RR true true l - (eqit_secure Label priv RR true true l) (observe m1) - (VisF e k) -> - leq (priv X e) l -> - secure_eqitF Label priv RR true true l - (eqit_secure Label priv RR true true l) (observe m2) - (VisF e k). + m1 ≈ m2 -> + (forall (t1 t1' : itree E R1) (t2 : itree E R2), + t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> r t1' t2) -> + forall (X : Type) (e : E X) (k : X -> itree E R2), + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (observe m1) (VisF e k) -> + leq (priv X e) l -> + secure_eqitF Label priv RR true true l r (observe m2) (VisF e k). Proof. - intros E R2 R1 Label priv l RR m1 m2 REL CIH X e k Hsec SECCHECK. + intros E R2 R1 Label priv l RR r m1 m2 REL CIH X e k Hsec SECCHECK. remember (VisF e k) as x. step in REL. rewrite Heqx. hinduction Hsec before E; intros; try inv Heqx; ddestruction; subst; try contradiction; auto. - eapply IHHsec; eauto. unstep. setoid_rewrite <- tau_eutt at 1. step. auto. - remember (VisF e0 k1) as y. hinduction REL before CIH; intros; try inv Heqy; ddestruction; subst; auto. - + constructor; auto. intros. eapply CIH; try apply H. - apply REL. + + constructor; auto. intros. + eapply CIH; try apply H. + apply REL. + constructor; eauto. - rewrite H2. remember (VisF e k1) as y. hinduction REL before e; intros; try inversion Heqy. ddestruction. + rewrite <- H2. unpriv_ind. rewrite H2. eapply H0; eauto. - Unshelve. all: auto. now unstep. + Unshelve. all: auto. now now unstep. + constructor; auto. eapply IHREL; eauto. Qed. -Lemma eses_aux2: -forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) - (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) (m1 m2 : itree E R1) (r0 : R2), - m1 ≈ m2 -> - secure_eqitF Label priv RR true true l - (eqit_secure Label priv RR true true l) (observe m1) - (RetF r0) -> - secure_eqitF Label priv RR true true l - (eqit_secure Label priv RR true true l) (observe m2) - (RetF r0). +Lemma eses_au_vis_l: forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) + (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) + (r : itree E R1 -> itree E R2 -> Prop) + (m1 m2 : itree E R2), + m1 ≈ m2 -> + (forall (t1 : itree E R1) (t2 t2' : itree E R2), + t2 ≈ t2' -> eqit_secure Label priv RR true true l t1 t2 -> r t1 t2') -> + forall (X : Type) (e : E X) (k : X -> itree E R1), + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (VisF e k) (observe m1) -> + leq (priv X e) l -> + secure_eqitF Label priv RR true true l r (VisF e k) (observe m2). Proof. - intros E R2 R1 Label priv l RR m1 m2 r0 Heutt Hsec. + intros E R2 R1 Label priv l RR r m1 m2 REL CIH X e k Hsec SECCHECK. + remember (VisF e k) as x. step in REL. rewrite Heqx. + hinduction Hsec before E; intros; try inv Heqx; ddestruction; subst; try contradiction; auto. + - eapply IHHsec; eauto. + unstep. setoid_rewrite <- tau_eutt at 1. step. auto. + - remember (VisF e0 k2) as y. + hinduction REL before CIH; intros; try inv Heqy; ddestruction; subst; auto. + + constructor; auto. intros. + eapply CIH; try apply H. + apply REL. + + constructor; eauto. + - rewrite H2. remember (VisF e k2) as y. + hinduction REL before e; intros; try inversion Heqy. ddestruction. + + rewrite <- H2. unpriv_ind. rewrite H2. eapply H0; eauto. + Unshelve. all: auto. now now unstep. + + constructor; auto. eapply IHREL; eauto. +Qed. + +Lemma eses_aux_ret_r: + forall (E : Type -> Type) (R2 R1 : Type) (Label : Preorder) + (priv : forall A : Type, E A -> L) (l : L) (RR : R1 -> R2 -> Prop) (m1 m2 : itree E R1) (r0 : R2) + (r : itree E R1 -> itree E R2 -> Prop), + m1 ≈ m2 -> + secure_eqitF Label priv RR true true l + (eqit_secure Label priv RR true true l) (observe m1) (RetF r0) -> + secure_eqitF Label priv RR true true l r (observe m2) (RetF r0). +Proof. + intros E R2 R1 Label priv l RR m1 m2 r0 r Heutt Hsec. step in Heutt. remember (RetF r0) as x. rewrite Heqx. hinduction Hsec before E; intros; inv Heqx; auto with itree. - remember (RetF r1) as y. @@ -100,7 +127,7 @@ Proof. - remember (VisF e k1) as y. hinduction Heutt before E; intros; inv Heqy; ddestruction; subst; auto. + unpriv_ind. rewrite H2. eapply H0; eauto. - now unstep. + now now unstep. + constructor; auto. eapply IHHeutt; eauto. Qed. @@ -111,10 +138,10 @@ Lemma eutt_secure_eqit_secure : forall E Label priv l R1 R2 RR (t1 t1': itree E t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> eqit_secure Label priv RR true true l t1' t2. Proof. - intros E Label priv l R1 R2 RR. coinduction c CIH. intros t1 t1' t2 Heutt Hsec. - step in Heutt. red in Heutt. step in Hsec. red in Hsec. - step. hinduction Heutt before r; intros; subst; auto with itree. - - remember (RetF r2) as x. hinduction Hsec before r; intros; try inv Heqx; auto with itree. + intros E Label priv l R1 R2 RR. icoinduction c CIH. intros t1 t1' t2 Heutt Hsec. + step in Heutt. step in Hsec. + hinduction Heutt before E; intros; subst; auto with itree. + - remember (RetF r2) as x. hinduction Hsec before E; intros; try inv Heqx; auto with itree. + constructor; auto. eapply IHHsec; eauto. + unpriv_ind. eapply H0; eauto. - genobs_clear t2 ot2. @@ -122,69 +149,68 @@ Proof. { destruct ot2; eauto; right; repeat intro; discriminate. } (* because of the extra inductive cases this is not enough *) destruct Ht2 as [ [m3 Hm3] | Ht2 ]. - + subst. constructor. right. eapply CIH; eauto. + + subst. constructor. eapply CIH; eauto. apply tau_eqit_secure. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. step. auto. + destruct ot2; try (exfalso; eapply Ht2; eauto; fail). - * rewrite itree_eta' at 1. eapply eses_aux2 with (m1 := Tau m1); eauto. - do 2 rewrite tau_eutt. auto. + * rewrite itree_eta' at 1. + eapply eses_aux_ret_r with (m1 := Tau m1); eauto. + now do 2 rewrite tau_eutt. * assert (leq (priv _ e) l \/ ~ leq (priv _ e) l). { apply classic. } destruct H as [SECCHECK | SECCHECK]; destruct ( classic_empty X ). - ++ rewrite itree_eta' at 1. apply eses_aux1 with (m1 := Tau m1); auto. + ++ rewrite itree_eta' at 1. apply eses_au_vis_r with (m1 := Tau m1); auto. do 2 rewrite tau_eutt. auto. - ++ rewrite itree_eta' at 1. apply eses_aux1 with (m1 := Tau m1); auto. + ++ rewrite itree_eta' at 1. apply eses_au_vis_r with (m1 := Tau m1); auto. do 2 rewrite tau_eutt. auto. - ++ unpriv_halt. right. eapply CIH; eauto. + ++ unpriv_halt. eapply CIH; eauto. apply tau_eqit_secure. step. auto. - ++ - unpriv_co. eapply CIH. apply REL. + ++ unpriv_co. eapply CIH. apply REL. apply tau_eqit_secure. apply eqit_secure_sym. eapply unpriv_e_eqit_secure; eauto. apply eqit_secure_sym. step. auto. - - rewrite itree_eta' at 1. unstep. - assert (eqit_secure Label priv RR true true l (Vis e k1) t2 ). - { step; auto. } + - assert (eqit_secure Label priv RR true true l (Vis e k1) t2 ) + by now step. clear Hsec. rename H into Hsec. destruct (classic (leq (priv _ e) l ) ). - + pstep. step in Hsec. red in Hsec. + + step in Hsec. cbn in *. remember (VisF e k1) as x. - hinduction Hsec before r; intros; inv Heqx; ddestruction; subst; try contradiction; auto. + hinduction Hsec before E; intros; inv Heqx; ddestruction; subst; try contradiction; auto. * constructor; auto. eapply IHHsec; eauto. - * constructor; auto; intros. right. eapply CIH; try apply REL. apply H. + * constructor; auto; intros. eapply CIH; try apply REL. apply H. * rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. + destruct (classic_empty u). - * step. cbn. step in Hsec. red in Hsec. cbn in *. + * step in Hsec. cbn in *. destruct (observe t2). -- inv Hsec; contra_size. - -- unpriv_halt. right. apply CIH with (t1 := Vis e k1). - ++ step. constructor. left. auto. + -- unpriv_halt. apply CIH with (t1 := Vis e k1). + ++ step. constructor. auto. ++ inv Hsec; ddestruction; subst; try contradiction; try contra_size. step. auto. auto. -- inv Hsec; ddestruction; subst; try contradiction; try contra_size. - ++ unpriv_halt. right. apply CIH with (t1 := Vis e k1). + ++ unpriv_halt. apply CIH with (t1 := Vis e k1). { step. constructor. red. auto. } { rewrite H1 in H3. step. apply H3. } - ++ unpriv_halt. right. apply CIH with (t1 := Vis e k1). + ++ unpriv_halt. apply CIH with (t1 := Vis e k1). { step. constructor. red. auto. } { apply H2. } ++ unpriv_halt. contra_size. - * step. cbn. step in Hsec. red in Hsec. cbn in *. + * step in Hsec. cbn in *. destruct (observe t2). - ++ rewrite itree_eta' at 1. rewrite itree_eta' in Hsec at 1. - eapply eses_aux2; eauto. step. constructor. red. auto. - ++ unpriv_co. right. apply CIH with (t1 := k1 a); try apply REL. + ++ eapply eses_aux_ret_r with (m1 := Vis e k1) (m2 := Vis e k2); eauto. + step. constructor. red. auto. + ++ unpriv_co. apply CIH with (t1 := k1 a); try apply REL. eapply unpriv_e_eqit_secure; eauto. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. step. auto. ++ destruct (classic (leq (priv _ e0) l )). ** rewrite itree_eta' at 1. - eapply eses_aux1 with (m1 := Vis e k1); eauto. + eapply eses_au_vis_r with (m1 := Vis e k1); eauto. step. constructor. red. auto. ** destruct (classic_empty X). - --- unpriv_halt. right. eapply CIH; try apply REL. + --- unpriv_halt. eapply CIH; try apply REL. eapply unpriv_e_eqit_secure; eauto. step. auto. - --- unpriv_co. right. eapply CIH; try apply REL. + --- unpriv_co. eapply CIH; try apply REL. (* eapply unpriv_e_eqit_secure; eauto. *) do 2 (eapply unpriv_e_eqit_secure; eauto; apply eqit_secure_sym). step. auto. @@ -201,30 +227,30 @@ Lemma eqit_secure_TauLR : eqit_secure Label priv RR2 b1 b2 l t0 t4. Proof. intros E R3 Label priv l b1 b2 R2 RR2. - intros. step in H. red in H. cbn in *. pstep. red. + intros. step in H. cbn in *. step. cbn. remember (TauF t0) as x. remember (TauF t4) as y. hinduction H before b2; intros; try discriminate. - - inv Heqx; inv Heqy. unstep. + - inv Heqx; inv Heqy. now unstep. - inv Heqx. inv H; eauto with itree. - + unpriv_ind. unstep. + + unpriv_ind. now unstep. + unpriv_ind. rewrite H1 in H2. specialize (H2 a). genobs (k1 a) ok1. clear Heqok1. remember (TauF t4) as y. - hinduction H2 before b2; intros; inv Heqy; try inv CHECK; eauto with itree. - * constructor; auto; unstep. - * unpriv_ind. unstep. - * step in H. - + step in H2. + hinduction H2 before b2; intros; inv Heqy; eauto with itree. + * constructor; auto; now unstep. + * unpriv_ind. now unstep. + * now step in H. + + now step in H2. - inv Heqy. inv H; eauto with itree. - + unpriv_ind. unstep. + + unpriv_ind. now unstep. + rewrite H0 in H2. unpriv_ind. specialize (H2 a). genobs (k2 a) ok2. clear Heqok2. remember (TauF t0) as y. - hinduction H2 before b2; intros; inv Heqy; try inv CHECK; eauto with itree. - * constructor; auto. unstep. - * unpriv_ind. unstep. - * step in H. - + step in H2. + hinduction H2 before b2; intros; inv Heqy; eauto with itree. + * constructor; auto. now unstep. + * unpriv_ind. now unstep. + * now step in H. + + now step in H2. Qed. Lemma eqit_secure_TauLVisR: @@ -236,24 +262,24 @@ Lemma eqit_secure_TauLVisR: eqit_secure Label priv RR2 b1 b2 l t3 (k a). Proof. intros E R3 Label priv l b1 b2 R2 RR t3 A e k a He Hsec. - step in Hsec. red in Hsec. cbn in *. + step in Hsec. cbn in *. remember (TauF t3) as x. remember (VisF e k) as y. hinduction Hsec before b2; intros; try discriminate. - inv Heqx. inv CHECK. remember (VisF e k) as y. step. clear IHHsec. hinduction Hsec before b2; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + specialize (H a). step in H. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + specialize (H a). now step in H. - inv Heqx. inv Heqy. ddestruction; subst. apply H. - inv Heqx. inv Heqy. ddestruction; subst. rewrite H2 in H. clear H0. clear H2 t1. remember (TauF t3) as x. step. specialize (H a). hinduction H before b2; intros; inv Heqx; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + step in H. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + now step in H. - inv Heqx. inv Heqy. ddestruction; subst. contra_size. Qed. @@ -266,24 +292,24 @@ Lemma eqit_secure_TauRVisL: eqit_secure Label priv RR2 b1 b2 l (k a) t3. Proof. intros E R3 Label priv l b1 b2 R2 RR t3 A e k a He Hsec. - step in Hsec. red in Hsec. cbn in *. + step in Hsec. cbn in *. remember (TauF t3) as x. remember (VisF e k) as y. hinduction Hsec before b2; intros; try discriminate. - inv Heqx. inv CHECK. remember (VisF e k) as y. step. clear IHHsec. hinduction Hsec before b1; intros; inv Heqy; ddestruction; subst; try contradiction; eauto with itree. - + constructor; auto with itree. unstep. - + unpriv_ind. unstep. + + constructor; auto with itree. now unstep. + + unpriv_ind. now unstep. + contra_size. + contra_size. - + specialize (H a). step in H. + + specialize (H a). now step in H. - inv Heqx. inv Heqy. ddestruction; subst. apply H. - inv Heqx. inv Heqy. ddestruction; subst. rewrite H2 in H. inv CHECK. specialize (H a). step. remember (TauF t3) as y. hinduction H before b2; intros; inv Heqy; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + step in H. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + now step in H. - inv Heqx. inv Heqy. ddestruction; subst. contra_size. Qed. @@ -299,29 +325,28 @@ Lemma eqit_secure_VisLR: eqit_secure Label priv RR2 b1 b2 l (k2 a) (k a0). Proof. intros E R3 Label priv l b1 b2 R2 RR2 A e k2 SECCHECK X e0 k a H0 a0 H1. - step. red. - step in H1. red in H1. cbn in *. remember (VisF e k2) as x. + step. + step in H1. cbn in *. remember (VisF e k2) as x. remember (VisF e0 k) as y. hinduction H1 before l; intros; try discriminate. - inv Heqx. inv Heqy. ddestruction; subst. contradiction. - - inv Heqx. inv Heqy. ddestruction; subst. unstep. + - inv Heqx. inv Heqy. ddestruction; subst. now unstep. - inv Heqx. ddestruction; subst. inv CHECK. clear H0. specialize (H a). rewrite Heqy in H. clear Heqy. remember (VisF e1 k) as y. hinduction H before l; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + specialize (H a0). step in H. - + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + specialize (H a0). now step in H. - inv Heqy. ddestruction; subst. inv CHECK. clear H0. rewrite Heqx in H. specialize (H a0). remember (VisF e0 k0) as y. hinduction H before b1; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + specialize (H a). step in H. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + specialize (H a). now step in H. - inv Heqx; inv Heqy; ddestruction; subst. contra_size. - inv Heqx; inv Heqy; ddestruction; subst. contra_size. Qed. @@ -339,7 +364,7 @@ Lemma eqit_secure_private_VisLR: eqit_secure Label priv RR2 b1 b2 l (k2 a) (k a0)) -> eqit_secure Label priv RR2 b1 b2 l (Vis e k2) (Vis e0 k) . Proof. - intros. step. cbn. unpriv_co. left. apply H3. + intros. step. cbn. unpriv_co. Qed. Lemma eqit_secure_private_VisL: @@ -377,7 +402,7 @@ Lemma eqit_secure_public_Vis : forall (E : Type -> Type) (R1 R2 : Type) (Label Proof. split; intros. - sinv H0; ddestruction; subst; try contradiction; apply H2. - - step. constructor; auto. left. apply H0. + - step. constructor; auto. Qed. Lemma eqit_secure_trans_aux1: @@ -385,36 +410,36 @@ Lemma eqit_secure_trans_aux1: (priv : forall x : Type, E x -> L) (l : L) (b2 : bool) (R2 : Type) (RR1 : R1 -> R2 -> Prop) (RR2 : R2 -> R3 -> Prop) (r : itree E R1 -> itree E R3 -> Prop) (r0 : R3) (t4 : itree E R2), - secure_eqitF Label priv RR2 true b2 l id - (upaco2 (secure_eqit_ Label priv RR2 true b2 l id) bot2) (observe t4) + secure_eqitF Label priv RR2 true b2 l + (eqit_secure Label priv RR2 true b2 l) (observe t4) (RetF r0) -> forall t : itree E R1, - paco2 (secure_eqit_ Label priv RR1 true b2 l id) bot2 t t4 -> - secure_eqitF Label priv (rcompose RR1 RR2) true b2 l id - (upaco2 (secure_eqit_ Label priv (rcompose RR1 RR2) true b2 l id) r) + eqit_secure Label priv RR1 true b2 l t t4 -> + secure_eqitF Label priv (rcompose RR1 RR2) true b2 l + r (observe t) (RetF r0). Proof. intros E R3 R1 Label priv l b2 R2 RR1 RR2 r r0 t4 Ht23 t H. - step in H. red in H. + step in H. cbn in H. remember (RetF r0) as x. - hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; auto. + hinduction Ht23 before E; intros; inv Heqx; auto. - remember (RetF r1) as y. - hinduction H0 before r; intros; inv Heqy; eauto with itree. + hinduction H0 before E; intros; inv Heqy; eauto with itree. rewrite itree_eta'. unpriv_ind. cbn. eapply H0; eauto. - eapply IHHt23; eauto. remember (TauF t1) as y. - hinduction H before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + step in H. + hinduction H before E; intros; inv Heqy; eauto with itree. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + now step in H. - assert (Hne : nonempty A). { eauto. } (* add the condition that lets us assume this*) inv Hne. eapply (H0 a); eauto. remember (VisF e k1) as y. - hinduction H1 before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; + hinduction H1 before E; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + rewrite itree_eta' at 1. unstep. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + rewrite itree_eta' at 1. now unstep. Qed. Lemma eqit_secure_trans_aux2: @@ -423,41 +448,40 @@ Lemma eqit_secure_trans_aux2: (RR1 : R1 -> R2 -> Prop) (RR2 : R2 -> R3 -> Prop) (r : itree E R1 -> itree E R3 -> Prop) (X : Type) (e0 : E X) (k : X -> itree E R3) (t4 : itree E R2), leq (priv X e0) l -> - secure_eqitF Label priv RR2 true b2 l id - (upaco2 (secure_eqit_ Label priv RR2 true b2 l id) bot2) (observe t4) + secure_eqitF Label priv RR2 true b2 l + (eqit_secure Label priv RR2 true b2 l) (observe t4) (VisF e0 k) -> (forall (t1 : itree E R1) (t2 : itree E R2) (t3 : itree E R3), eqit_secure Label priv RR1 true b2 l t1 t2 -> eqit_secure Label priv RR2 true b2 l t2 t3 -> r t1 t3) -> forall t : itree E R1, - paco2 (secure_eqit_ Label priv RR1 true b2 l id) bot2 t t4 -> - secure_eqitF Label priv (rcompose RR1 RR2) true b2 l id - (upaco2 (secure_eqit_ Label priv (rcompose RR1 RR2) true b2 l id) r) + eqit_secure Label priv RR1 true b2 l t t4 -> + secure_eqitF Label priv (rcompose RR1 RR2) true b2 l + r (observe t) (VisF e0 k). Proof. intros E R3 R1 Label priv l b2 R2 RR1 RR2 r X e0 k t4 He0 Ht23 CIH0 t Ht. - step in Ht. red in Ht. remember (VisF e0 k) as x. - hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; + step in Ht. cbn in Ht. remember (VisF e0 k) as x. + hinduction Ht23 before E; intros; inv Heqx; ddestruction; subst; try contradiction; eauto. - eapply IHHt23; eauto. clear IHHt23. remember (TauF t1) as y. - hinduction Ht before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + step in H. + hinduction Ht before E; intros; inv Heqy; eauto with itree. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + now step in H. - remember (VisF e0 k1) as y. - hinduction Ht before r; intros; inv Heqy; try inv CHECK; + hinduction Ht before E; intros; inv Heqy; ddestruction; subst; try contradiction; eauto with itree. - + constructor; auto. right. eapply CIH0. apply H. - apply H0. + + constructor; auto. intros. eapply CIH0. apply H. apply H0. + rewrite itree_eta'. unpriv_ind. eapply H0; eauto. - assert (nonempty A); eauto. inv H1. eapply H0; eauto. Unshelve. all : auto. clear H0. rewrite H2 in H. remember (VisF e k1) as y. - hinduction Ht before r; intros; inv Heqy; try inv CHECK; ddestruction; subst; + hinduction Ht before E; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + rewrite itree_eta' at 1. unstep. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + rewrite itree_eta' at 1. now unstep. Qed. @@ -472,58 +496,57 @@ Lemma secret_halt_trans_1 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR1 Proof. intros E Label priv l b1 b2 R1 R2 R3 A RR1 RR2 t1 e k t3 He HA. generalize dependent t3. generalize dependent t1. - coinduction c CIH. intros t1 t3 Ht1 Ht3. - step. step in Ht1. red in Ht1. step in Ht3. red in Ht3. - cbn in *. + icoinduction c CIH. intros t1 t3 Ht1 Ht3. + step in Ht1. step in Ht3. cbn in *. remember (VisF e k) as x. - hinduction Ht1 before r; intros; inv Heqx; ddestruction; subst; + hinduction Ht1 before c; intros; inv Heqx; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - inv Ht3; ddestruction; subst; try contradiction; try contra_size. - + constructor. right. apply CIH; auto. step. auto. - + unpriv_co; auto. right. apply CIH; auto. step. rewrite H0 in H2. apply H2. - + constructor. right. apply CIH; auto. + + constructor. apply CIH; auto. step. auto. + + unpriv_co; auto. apply CIH; auto. step. rewrite H0 in H2. apply H2. + + constructor. apply CIH; auto. + destruct (classic_empty B). - * unpriv_halt. right. apply CIH; auto with itree. step. - red. cbn. unpriv_halt. - * unpriv_co. right. apply CIH; auto. apply H1. - + unpriv_halt. right. apply CIH; auto. step. - red. cbn. unpriv_halt. contra_size. + * unpriv_halt. apply CIH; auto with itree. step. + cbn. unpriv_halt. + * unpriv_co. apply CIH; auto. apply H1. + + unpriv_halt. apply CIH; auto. step. + cbn. unpriv_halt. contra_size. - inv Ht3; ddestruction; subst; try contradiction; try contra_size. - + unpriv_halt. right. apply CIH; auto. + + unpriv_halt. apply CIH; auto. * step. cbn. unpriv_halt. * step. auto. - + unpriv_halt. right. apply CIH; auto. + + unpriv_halt. apply CIH; auto. * step. cbn. unpriv_halt. * step. auto. rewrite H0 in H2. apply H2. - + unpriv_halt. right. apply CIH; auto. + + unpriv_halt. apply CIH; auto. step. cbn. unpriv_halt. - + unpriv_halt. right. apply CIH. + + unpriv_halt. apply CIH. * step. cbn. unpriv_halt. * apply H1. + unpriv_halt. contra_size. - inv Ht3; ddestruction; subst; try contradiction; try contra_size; destruct (classic_empty A0). - + unpriv_halt. right. apply CIH; auto. + + unpriv_halt. apply CIH; auto. * step. cbn. unpriv_halt. contra_size. * step. auto. - + unpriv_co. right. apply CIH; auto; try apply H. + + unpriv_co. apply CIH; auto; try apply H. step. auto. - + unpriv_halt. right. apply CIH; auto. + + unpriv_halt. apply CIH; auto. * step. cbn. unpriv_halt. contra_size. * step. rewrite H0 in H2. apply H2. - + unpriv_co. right. apply CIH. apply H. rewrite H0 in H2. + + unpriv_co. apply CIH. apply H. rewrite H0 in H2. step. apply H2. - + unpriv_halt. right. apply CIH; auto. step. - red. cbn. unpriv_halt. contra_size. - + unpriv_co. right. apply CIH; auto. apply H. - + unpriv_halt. right. apply CIH; try apply H1. + + unpriv_halt. apply CIH; auto. step. + cbn. unpriv_halt. contra_size. + + unpriv_co. apply CIH; auto. apply H. + + unpriv_halt. apply CIH; try apply H1. step. cbn. unpriv_halt. contra_size. + destruct (classic_empty B). - * unpriv_halt. right. apply CIH; auto. apply H. + * unpriv_halt. apply CIH; auto. apply H. step. cbn. unpriv_halt. - * unpriv_co. right. apply CIH; eauto. apply H. apply H1. + * unpriv_co. apply CIH; eauto. apply H. apply H1. + unpriv_halt. contra_size. - + unpriv_halt. right. apply CIH; auto. apply H. + + unpriv_halt. apply CIH; auto. apply H. step. cbn. unpriv_halt. contra_size. Qed. @@ -537,60 +560,59 @@ Lemma secret_halt_trans_2 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR Proof. intros E Label priv l b1 b2 R1 R2 R3 A RR1 RR2 e k t2 t3 He HA. generalize dependent t3. generalize dependent t2. - coinduction c CIH. intros t2 t3 Ht2 Ht23. step. - red. cbn. step in Ht2. step in Ht23. red in Ht2. red in Ht23. - cbn in *. - hinduction Ht23 before r; intros; eauto with itree. + icoinduction c CIH. intros t2 t3 Ht2 Ht23. + step in Ht2. step in Ht23. cbn in *. + hinduction Ht23 before c; intros; eauto with itree. - inv Ht2. ddestruction; subst. contra_size. - - unpriv_halt. right. eapply CIH; eauto. + - unpriv_halt. eapply CIH; eauto. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. step. auto. - eapply IHHt23; eauto. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. - step in H0. - - + step in H0. auto. + - inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. - - unpriv_halt. inv SIZECHECK. right. eapply CIH; try apply H. + - unpriv_halt. inv SIZECHECK. eapply CIH; try apply H. Unshelve. all : auto. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + step. apply H2. + apply H1. - - unpriv_halt. right. eapply CIH; try apply H. + - unpriv_halt. eapply CIH; try apply H. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. step. auto. - - unpriv_halt. inv SIZECHECK1. inv SIZECHECK2. right. eapply CIH; try apply H. + - unpriv_halt. inv SIZECHECK1. inv SIZECHECK2. eapply CIH; try apply H. Unshelve. all : auto. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. + step. apply H2. + apply H1. - inv SIZECHECK. eapply H0; eauto. Unshelve. all : auto. inv Ht2; ddestruction; subst; try contra_size; try contradiction; eauto. - rewrite itree_eta' at 1. unstep. - - unpriv_halt. right. eapply CIH; eauto. step. apply Ht2. + rewrite itree_eta' at 1. now unstep. + - unpriv_halt. eapply CIH; eauto. step. apply Ht2. step. apply H. - - unpriv_halt. right. eapply CIH; eauto. step. auto. + - unpriv_halt. eapply CIH; eauto. step. auto. - unpriv_halt. contra_size. - - unpriv_halt. right. eapply CIH with (t2 := Vis e1 k1); eauto. + - unpriv_halt. eapply CIH with (t2 := Vis e1 k1); eauto. + step. auto. + apply H. - unpriv_halt. contra_size. Qed. -Lemma eqit_secure_RR_imp : forall E b1 b2 R1 R2 (RR1 RR2 : R1 -> R2 -> Prop) Label priv l +Lemma eqit_secure_RR_imp : forall E (b1 b2 : bool) R1 R2 (RR1 RR2 : R1 -> R2 -> Prop) Label priv l (t1 : itree E R1) (t2 : itree E R2), - RR1 <2= RR2 -> + (forall x y, RR1 x y -> RR2 x y) -> eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit_secure Label priv RR2 b1 b2 l t1 t2. Proof. intros. generalize dependent t2. revert t1. - coinduction c CIH. intros t1 t2 Ht12. step. red. - step in Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; - try ( constructor; auto; right; eapply CIH; eauto; fail); - try ( unpriv_co; right; eapply CIH; eauto; apply H0; fail). - constructor; auto. right. eapply CIH; eauto. apply H0. - - unpriv_halt. right. eapply CIH; eauto. apply H0. - - unpriv_halt. right. eapply CIH; eauto. apply H0. + icoinduction c CIH. intros t1 t2 Ht12. + step in Ht12. cbn in *. + hinduction Ht12 before c; intros; eauto; + try ( constructor; auto; intros; eapply CIH; eauto; fail); + try ( unpriv_co; intros; eapply CIH; eauto; apply H0; fail). + constructor; auto. intros. eapply CIH; eauto. apply H0. + - unpriv_halt. eapply CIH; eauto. apply H0. + - unpriv_halt. eapply CIH; eauto. apply H0. Qed. Lemma secret_halt_trans_3 : forall E Label priv l b1 b2 (R1 R2 R3 A : Type) (RR1 : R1 -> R2 -> Prop) @@ -604,7 +626,7 @@ Proof. intros. apply eqit_secure_sym in H1. apply eqit_secure_sym in H2. apply eqit_secure_sym. eapply secret_halt_trans_2 in H1; eauto. eapply eqit_secure_RR_imp; eauto. - intros. inv PR. econstructor; eauto. + intros. inv H3. econstructor; eauto. Qed. Lemma eqit_secure_trans : forall E Label priv l b1 b2 (R1 R2 R3 : Type) (RR1 : R1 -> R2 -> Prop) @@ -614,232 +636,229 @@ Lemma eqit_secure_trans : forall E Label priv l b1 b2 (R1 R2 R3 : Type) (RR1 : R eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. intros E Label priv l b1 b2 R1 R2 R3 RR1 RR2. - coinduction c CIH0. intros t1 t2 t3 Ht12 Ht23. - step in Ht12. red in Ht12. step in Ht23. red in Ht23. step. red. - hinduction Ht12 before r; intros; try inv CHECK; auto with itree. + icoinduction c CIH0. intros t1 t2 t3 Ht12 Ht23. + step in Ht12. step in Ht23. + hinduction Ht12 before E; intros; auto with itree. - remember (RetF r2) as x. - hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction Ht23 before E; intros; inv Heqx; eauto with itree. rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - genobs t4 ot4. assert ( (exists t5, ot4 = TauF t5) \/ (forall t5, ot4 <> TauF t5) ). { destruct ot4; eauto; right; intros; discriminate. } destruct H0 as [ [t5 Ht4] | Ht4]. + subst. rewrite Ht4. rewrite Ht4 in Ht23. constructor. - right. eapply CIH0; eauto. eapply eqit_secure_TauLR. step. + eapply CIH0; eauto. eapply eqit_secure_TauLR. step. auto. + destruct ot4; try (exfalso; eapply Ht4; eauto; fail ). * inv Ht23. inv CHECK. rewrite itree_eta' at 1. - assert (eqit_secure Label priv (rcompose RR1 RR2) true b2 l (Tau t0) (Ret r0) ). + assert (eqit_secure Label priv (rcompose RR1 RR2) true b2 l (Tau t0) (Ret r) ). { step. cbn. rewrite itree_eta' at 1. eapply eqit_secure_trans_aux1; eauto. - step. constructor; auto. unstep. } - rewrite itree_eta'. unstep. eapply paco2_mon; eauto. - intros; contradiction. + step. constructor; auto. now unstep. } + rewrite itree_eta'. + now step. * destruct (classic (leq (priv _ e) l ) ). - -- inv Ht23; ddestruction; subst; try contradiction; try inv CHECK. - constructor; auto. eapply eqit_secure_trans_aux2; eauto. + -- inv Ht23; ddestruction; subst; try contradiction. + constructor; auto. inv CHECK. + (* RTODO fix stepping without eta' *) + eapply eqit_secure_trans_aux2; eauto. -- destruct (classic_empty X). ++ rewrite itree_eta'. rewrite itree_eta' at 1. - unstep. - eapply paco2_mon with (r := bot2); intros; try contradiction. + step. eapply secret_halt_trans_3 with (t2 := Tau t3); eauto. - ** step. constructor. left. auto. - ** step. auto. - ++ unpriv_co. right. eapply CIH0; eauto. + ** now step; constructor. + ** now step. + ++ unpriv_co. eapply CIH0; eauto. assert (eqit_secure Label priv RR2 b1 b2 l (Tau t3) (Vis e k)). step. auto. eapply eqit_secure_TauLVisR; eauto. - apply IHHt12; auto. remember (TauF t0) as y. - hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; eauto with itree. - + constructor; auto. unstep. - + unpriv_ind. unstep. - + step in H. + hinduction Ht23 before E; intros; inv Heqy; eauto with itree. + + constructor; auto. now unstep. + + unpriv_ind. now unstep. + + now step in H. - remember (VisF e k2) as x. - hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; ddestruction; subst; + hinduction Ht23 before E; intros; inv Heqx; ddestruction; subst; try contradiction; eauto with itree. - + constructor; auto. intros. right. eapply CIH0; eauto; try apply H0. + + constructor; auto. intros. eapply CIH0; eauto; try apply H0. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - remember (TauF t0) as x. - hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; auto. - + unpriv_co. right. eapply CIH0; try apply H0. + hinduction Ht23 before E; intros; inv Heqx; auto. + + unpriv_co. eapply CIH0; try apply H0. auto. + destruct ot2. * clear IHHt23. rewrite itree_eta'. unpriv_ind. remember (k1 a) as t. specialize (H a). setoid_rewrite <- Heqt in H. - clear Heqt a k1. cbn. eapply eqit_secure_trans_aux1; eauto. - * unpriv_co. right. eapply CIH0; try apply H. + clear Heqt a k1. cbn. inv CHECK. eapply eqit_secure_trans_aux1; eauto. + * unpriv_co. eapply CIH0; try apply H. clear IHHt23. remember (TauF t) as y. - step. red. - hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; eauto with itree. - -- constructor; auto. unstep. - -- unpriv_ind. unstep. - -- step in H. + step. + hinduction Ht23 before E; intros; inv Heqy; eauto with itree. + -- constructor; auto. now unstep. + -- unpriv_ind. now unstep. + -- now step in H. * destruct (classic (leq (priv _ e0) l ) ). -- rewrite itree_eta'. unpriv_ind. cbn. clear IHHt23. remember (k1 a) as t. specialize (H a). setoid_rewrite <- Heqt in H. - clear Heqt a k1. eapply eqit_secure_trans_aux2; eauto. + clear Heqt a k1. inv CHECK. eapply eqit_secure_trans_aux2; eauto. -- destruct (classic_empty X). - ++ rewrite itree_eta'. unpriv_ind. - unstep. apply paco2_mon with (r := bot2); intros; try contradiction. + ++ rewrite itree_eta'. unpriv_ind. step. eapply secret_halt_trans_3; eauto. apply H. - step. auto. - ++ unpriv_co. right. eapply CIH0. apply H. - clear IHHt23. pstep. remember (VisF e0 k) as y. - hinduction Ht23 before r; intros; inv Heqy; try inv CHECK; + now step. + ++ unpriv_co. eapply CIH0. apply H. + clear IHHt23. step. remember (VisF e0 k) as y. + hinduction Ht23 before E; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** constructor; auto. unstep. - ** unpriv_ind. unstep. - ** rewrite itree_eta' at 1. unstep. + ** constructor; auto. now unstep. + ** unpriv_ind. now unstep. + ** rewrite itree_eta' at 1. now unstep. + constructor; auto. eapply IHHt23; eauto. - + unpriv_co. right. eapply CIH0; try apply H0. apply H. + + unpriv_co. eapply CIH0; try apply H0. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - + unpriv_halt. right. eapply CIH0; eauto. apply H0. + + unpriv_halt. eapply CIH0; eauto. apply H0. - genobs_clear t3 ot3. assert (Hne : nonempty A); eauto. inv Hne. assert ( (exists t4, ot3 = TauF t4) \/ (forall t4, ot3 <> TauF t4) ). { destruct ot3; eauto; right; intros; discriminate. } destruct H0 as [ [t4 Ht3] | Ht3]. - + subst. constructor. right. eapply CIH0; try apply H. + + subst. constructor. eapply CIH0; try apply H. Unshelve. all: auto. eapply eqit_secure_TauRVisL; eauto. step. auto. (* should be fine but new lemma, also shelved goal *) + destruct ot3; try (exfalso; eapply Ht4; eauto; fail ). - * inv Ht23; inv CHECK. ddestruction. subst. clear CIH0. - constructor; auto. rewrite H4. eapply eqit_secure_trans_aux1; eauto. + * inv Ht23; inv CHECK. ddestruction. clear CIH0. + constructor; auto. rewrite H4. eapply eqit_secure_trans_aux1; try apply H. rewrite <- H4. apply H1. Unshelve. auto. (* shelved goal*) - * constructor. right. eapply CIH0; try apply H. + * constructor. eapply CIH0; try apply H. eapply eqit_secure_TauRVisL; eauto. step. auto. (* same goal as last admit *) * destruct (classic (leq (priv _ e0) l ) ). - -- inv Ht23; try inv CHECK; ddestruction; subst; try contradiction. - constructor; auto. rewrite H5. eapply eqit_secure_trans_aux2; eauto. + -- inv Ht23; ddestruction; subst; try contradiction. + constructor; auto. rewrite H5. inv CHECK. + eapply eqit_secure_trans_aux2; intros; try apply H; eauto. rewrite <- H5. apply H2. Unshelve. all : auto. -- destruct (classic_empty X). - ++ rewrite itree_eta'. rewrite itree_eta' at 1. unstep. - eapply paco2_mon with (r := bot2); intros; try contradiction. + ++ rewrite itree_eta'. rewrite itree_eta' at 1. step. eapply secret_halt_trans_3 with (t2 := Vis e k2); eauto. ** step. cbn. unpriv_co. - ** step. auto. - ++ unpriv_co. right. eapply CIH0; try apply H. + ** now step. + ++ unpriv_co. eapply CIH0; try apply H. Unshelve. all : auto. assert (eqit_secure Label priv RR2 b1 b2 l (Vis e k2) (Vis e0 k) ). step. auto. eapply eqit_secure_VisLR; eauto. - remember (VisF e2 k2) as x. (* maybe need to separate the inductive and coinductive progress cases? *) - hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; try contradiction; + hinduction Ht23 before E; intros; inv Heqx; try contradiction; try contra_size; ddestruction; subst; auto. + constructor; auto. eapply IHHt23; eauto. - + unpriv_co. right. eapply CIH0; try apply H0. apply H. + + unpriv_co. eapply CIH0; try apply H0. apply H. + assert (Hne : nonempty B); eauto. inv Hne. - unpriv_co. right. eapply CIH0; eauto; try eapply H0. apply H. + unpriv_co. eapply CIH0; eauto; try eapply H0. apply H. Unshelve. auto. + assert (Hne : nonempty B0); eauto. inv Hne. - unpriv_co. right. eapply CIH0; try apply H0. apply H. + unpriv_co. eapply CIH0; try apply H0. apply H. Unshelve. auto. + genobs t2 ot2. destruct ot2. * assert (Hne : nonempty B); eauto. inv Hne. - rewrite itree_eta'. unpriv_ind. eapply eqit_secure_trans_aux1; eauto. + rewrite itree_eta'. unpriv_ind. inv CHECK. + eapply eqit_secure_trans_aux1; try apply H1; eauto. Unshelve. auto. * assert (Hne : nonempty B); eauto. inv Hne. - unpriv_co. right. eapply CIH0; try apply H1. Unshelve. all : auto. + unpriv_co. eapply CIH0; try apply H1. Unshelve. all : auto. clear H0. specialize (H a). step. genobs (k2 a) ok2. clear Heqok2 H1 k2. remember (TauF t) as y. - hinduction H before r; intros; inv Heqy; try inv CHECK; auto. - -- constructor; auto. unstep. + hinduction H before E; intros; inv Heqy; auto. + -- constructor; auto. now unstep. -- constructor; eauto. - -- unpriv_ind. unstep. - -- unpriv_ind. eapply H0; eauto. - -- rewrite itree_eta' at 1. unstep. + -- unpriv_ind. now unstep. + -- unpriv_ind. eapply H0 with (c:=c); eauto. + -- rewrite itree_eta' at 1. now unstep. * inv SIZECHECK2. destruct (classic (leq (priv _ e) l ) ). - -- rewrite itree_eta'. unpriv_ind. - eapply eqit_secure_trans_aux2; eauto. Unshelve. all : auto. + -- rewrite itree_eta'. unpriv_ind. inv CHECK. + eapply eqit_secure_trans_aux2; try apply H1; eauto. Unshelve. all : auto. -- destruct (classic_empty X). - ++ unpriv_halt. right. eapply CIH0; eauto. apply H1. + ++ unpriv_halt. eapply CIH0; eauto. apply H1. step. apply H. Unshelve. auto. - ++ unpriv_co. right. eapply CIH0; try apply H1. + ++ unpriv_co. eapply CIH0; try apply H1. Unshelve. all : auto. - clear H0. pstep. remember (VisF e k) as y. + clear H0. step. remember (VisF e k) as y. specialize (H a). clear Heqot2. genobs (k2 a) ok2. clear Heqok2. - hinduction H before r; intros; inv Heqy; try inv CHECK; + hinduction H before E; intros; inv Heqy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** constructor; auto. unstep. - ** unpriv_ind. unstep. - ** rewrite itree_eta' at 1. unstep. + ** constructor; auto. now unstep. + ** unpriv_ind. now unstep. + ** rewrite itree_eta' at 1. now unstep. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - + inv SIZECHECK2. unpriv_halt. right. eapply CIH0; eauto. apply H0. + + inv SIZECHECK2. unpriv_halt. eapply CIH0; eauto. apply H0. apply H. Unshelve. auto. - - remember (VisF e k2) as x. hinduction Ht23 before r; intros; inv Heqx; try inv CHECK; + - remember (VisF e k2) as x. hinduction Ht23 before E; intros; inv Heqx; ddestruction; subst; try contradiction; try contra_size; auto. + constructor; auto. eapply IHHt23; eauto. - + constructor; auto. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. - unstep. Unshelve. auto. - + unpriv_ind. assert (Hne : nonempty A0); eauto. inv Hne. eapply H0; eauto. - unstep. Unshelve. auto. + + constructor; auto. assert (Hne : nonempty A0); eauto. inv Hne. eapply H1; eauto. + now unstep. Unshelve. auto. + + unpriv_ind. assert (Hne : nonempty A0); eauto. inv Hne. eapply H1; eauto. + now unstep. Unshelve. auto. + assert (Hne : nonempty A0). { eauto. } inv Hne. eauto. Unshelve. auto. + unpriv_ind. eauto. - + rewrite itree_eta'. unstep. - apply paco2_mon with (r := bot2); intros; try contradiction. + + rewrite itree_eta'. step. inv SIZECHECK0. eapply secret_halt_trans_3 with (t2 := k0 a); eauto. - * step. apply H1. + * step. apply H0. * apply H. - remember (TauF t0) as y. - hinduction Ht23 before r; intros; inv Heqy; subst; eauto with itree; - + unpriv_halt. right. eapply CIH0; eauto. + hinduction Ht23 before E; intros; inv Heqy; subst; eauto with itree. + clear IHHt23. rewrite itree_eta'. rewrite itree_eta' at 1. - unstep. apply paco2_mon with (r := bot2); intros; try contradiction. + step. eapply secret_halt_trans_2; eauto. step. auto. - + unpriv_halt. right. eapply CIH0; eauto. apply H. + + unpriv_halt. eapply CIH0; eauto. apply H. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. + unpriv_halt. contra_size. - - inv Ht23; ddestruction; subst; try contra_size; try contradiction; - try inv CHECK. - + constructor. right. eapply CIH0; eauto. step. auto. - + unpriv_co. right. eapply CIH0; eauto. rewrite H0 in H2. + inv Ht23; ddestruction; subst; try contra_size; try contradiction. + + constructor. eapply CIH0; eauto. step. auto. + + unpriv_co. eapply CIH0; eauto. rewrite H0 in H2. step. apply H2. - + constructor. right. eapply CIH0; eauto. + + constructor. eapply CIH0; eauto. + destruct (classic_empty B). - * unpriv_halt. right. eapply CIH0; eauto. step. cbn. unpriv_halt. - * unpriv_co. right. eapply CIH0; eauto. apply H1. - + unpriv_halt. right. eapply CIH0; eauto. + * unpriv_halt. eapply CIH0; eauto. step. cbn. unpriv_halt. + * unpriv_co. eapply CIH0; eauto. apply H1. + + unpriv_halt. eapply CIH0; eauto. step. cbn. unpriv_halt. contra_size. - - rewrite itree_eta' at 1. unstep. - apply paco2_mon with (r := bot2); intros; try contradiction. + - rewrite itree_eta' at 1. step. eapply secret_halt_trans_2 with (t2 := Vis e2 k2); eauto. + step. cbn. unpriv_halt. + step. auto. - destruct (classic_empty A). - + inv Ht23; ddestruction; subst; try contradiction; try contra_size; try inv CHECK. - * unpriv_halt. right. eapply CIH0 with (t2 := Vis e2 k2); eauto. + + inv Ht23; ddestruction; subst; try contradiction; try contra_size. + * unpriv_halt. eapply CIH0 with (t2 := Vis e2 k2); eauto. -- step. cbn. unpriv_halt. contra_size. -- step. auto. - * unpriv_halt. right. rewrite H1 in H3. eapply CIH0 with (t2 := Vis e2 k2); eauto. + * unpriv_halt. rewrite H1 in H3. eapply CIH0 with (t2 := Vis e2 k2); eauto. -- step. cbn. unpriv_halt. contra_size. -- step. apply H3. - * unpriv_halt. right. eapply CIH0; eauto. + * unpriv_halt. eapply CIH0; eauto. step. cbn. unpriv_halt. contra_size. - * unpriv_halt. right. eapply CIH0 with (t2 := Vis e2 k2); eauto. + * unpriv_halt. eapply CIH0 with (t2 := Vis e2 k2); eauto. -- step. cbn. unpriv_halt. contra_size. -- apply H2. * unpriv_halt. contra_size. + destruct (observe t3). * inv Ht23; ddestruction; subst; try contra_size; try contradiction. - * unpriv_co. right. eapply CIH0; eauto. apply H. + * unpriv_co. eapply CIH0; eauto. apply H. inv Ht23; ddestruction; subst; try contra_size; try contradiction. step. auto. auto. * destruct (classic (leq (priv _ e) l ) ). { inv Ht23; ddestruction; subst; try contra_size; try contradiction. } destruct (classic_empty X). - -- unpriv_halt. right. eapply CIH0; eauto. apply H. step. auto. - -- unpriv_co. right. eapply CIH0; eauto. apply H. + -- unpriv_halt. eapply CIH0; eauto. apply H. step. auto. + -- unpriv_co. eapply CIH0; eauto. apply H. inv Ht23; ddestruction; subst; try contra_size; try contradiction. ++ step. apply H5. ++ apply H4. @@ -851,32 +870,31 @@ Lemma eqit_itree_eqit_secure : forall E Label priv l R1 R2 RR (t1 t1': itree E R eqit_secure Label priv RR false false l t1' t2. Proof. intros E Label priv l R1 R2 RR. coinduction c CIH. - intros t1 t1' t2 Heq Hsec. pstep. red. - step in Heq. red in Heq. step in Hsec. red in Hsec. - inv Heq; try inv CHECK. - - rewrite <- H0 in Hsec. rewrite itree_eta' at 1. unstep. - eapply paco2_mon with (r := bot2); intros; try contradiction. step. - red. cbn. remember (RetF r2) as x. clear H H0. - hinduction Hsec before r; intros; inv Heqx; eauto with itree. + intros t1 t1' t2 Heq Hsec. icbn. + step in Heq. step in Hsec. + inv Heq. + - rewrite <- H0 in Hsec. rewrite itree_eta' at 1. + remember (RetF r2) as x. clear H H0. + hinduction Hsec before E; intros; inv Heqx; eauto with itree. - genobs t2 ot2. assert ( (exists t3, ot2 = TauF t3) \/ (forall t3, ot2 <> TauF t3) ). { destruct ot2; eauto; right; intros; discriminate. } destruct H1 as [ [t3 Ht2] | Ht2]. + subst. rewrite Ht2. rewrite Ht2 in Hsec. constructor. - right. eapply CIH; eauto. rewrite <- H0 in Hsec. inv Hsec; try inv CHECK. auto. + eapply CIH; eauto. rewrite <- H0 in Hsec. inv Hsec. + destruct ot2; try (exfalso; eapply Ht2; eauto; fail ). - * rewrite <- H0 in Hsec. inv Hsec; try inv CHECK. - * rewrite <- H0 in Hsec. inv Hsec; ddestruction; subst; try inv CHECK. - -- unpriv_co. right. eapply CIH; eauto. apply H3. - -- unpriv_halt. right. eapply CIH; eauto. - - rewrite <- H0 in Hsec. inv Hsec; ddestruction; subst; try inv CHECK; try contradiction; try contra_size. - + constructor; auto. right. eapply CIH; eauto with itree. apply H2. - + unpriv_co. right. eapply CIH; eauto with itree. apply H2. - + unpriv_co. right. eapply CIH; eauto with itree. apply H2. - + unpriv_halt. right. eapply CIH; eauto. step. constructor. left. auto. - + unpriv_halt. right. eapply CIH with (t1 := Vis e k1); try apply H2. - step. constructor. left. auto. - + unpriv_halt. right. eapply CIH; eauto with itree. apply H2. + * rewrite <- H0 in Hsec. inv Hsec. + * rewrite <- H0 in Hsec. inv Hsec; ddestruction; subst. + -- unpriv_co. eapply CIH; eauto. apply H3. + -- unpriv_halt. eapply CIH; eauto. + - rewrite <- H0 in Hsec. inv Hsec; ddestruction; subst; try contradiction; try contra_size. + + constructor; auto. intros. eapply CIH; try apply REL. apply H2. + + unpriv_co. eapply CIH; try apply REL. apply H2. + + unpriv_co. eapply CIH; try apply REL. apply H2. + + unpriv_halt. eapply CIH; try apply H2. step. constructor. auto. + + unpriv_halt. eapply CIH with (t1 := Vis e k1); try apply H2. + step. constructor. auto. + + unpriv_halt. eapply CIH; try apply REL. eauto with itree. apply H2. Qed. Lemma eqit_secure_eq_trans : forall E R b1 b2 Label priv l (t1 t2 t3 : itree E R), @@ -885,7 +903,7 @@ Lemma eqit_secure_eq_trans : forall E R b1 b2 Label priv l (t1 t2 t3 : itree E R eqit_secure Label priv eq b1 b2 l t1 t3. Proof. intros. apply eqit_secure_RR_imp with (RR1 := rcompose eq eq). - { intros. inv PR. auto. } + { intros. inv H1. } eapply eqit_secure_trans; eauto. Qed. @@ -901,7 +919,7 @@ Qed. Global Instance proper_eqit_secure_eqit {E} {R1 R2 : Type} {b} {RR : R1 -> R2 -> Prop} {Label priv l} : - Proper (eqit eq b b ==> eqit eq b b ==> iff) (@eqit_secure E R1 R2 Label priv RR b b l). + Proper (eqit b b eq ==> eqit b b eq ==> iff) (@eqit_secure E R1 R2 Label priv RR b b l). Proof. repeat intro. destruct b; split; intros. - eapply eutt_secure_eqit_secure; eauto. @@ -930,20 +948,20 @@ Global Instance proper_eqit_secure_eqit_secure Proof. repeat intro; split; intros. - eapply eqit_secure_RR_imp with (RR1 := rcompose RR eq); eauto. - { intros. inv PR. auto. } + { intros. inv H2. } eapply eqit_secure_trans; eauto. apply eqit_secure_sym. - eapply eqit_secure_RR_imp with (RR1 := rcompose (flip RR) eq); eauto. - { intros. inv PR. auto. } + eapply eqit_secure_RR_imp with (RR1 := rcompose (Basics.flip RR) eq); eauto. + { intros. inv H2. } eapply eqit_secure_trans; eauto. apply eqit_secure_sym. auto. - assert (eqit_secure Label priv eq b b l y0 x0). { apply eqit_secure_sym. eapply eqit_secure_RR_imp; eauto. } eapply eqit_secure_RR_imp with (RR1 := rcompose RR eq). - { intros. inv PR. auto. } + { intros. inv H3. } eapply eqit_secure_trans; eauto. assert (eqit_secure Label priv eq b b l y x). { apply eqit_secure_sym. eapply eqit_secure_RR_imp; eauto. } eapply eqit_secure_RR_imp with (RR1 := rcompose eq RR). - { intros. inv PR. auto. } + { intros. inv H4. } eapply eqit_secure_trans; eauto. Qed. diff --git a/extra/Secure/SecureEqHalt.v b/extra/Secure/SecureEqHalt.v index cb056f1e..854a0679 100644 --- a/extra/Secure/SecureEqHalt.v +++ b/extra/Secure/SecureEqHalt.v @@ -115,10 +115,10 @@ Ltac unpriv_ind := try apply EqVisUnPrivLInd; Ltac unpriv_halt := match goal with - | [ Hemp : empty ?A |- secure_eqitF _ _ _ _ _ _ _ _ (@VisF _ _ _ ?A _ _) _ ] => + | [ Hemp : empty ?A |- secure_eqitF _ _ _ _ _ _ _ (@VisF _ _ _ ?A _ _) _ ] => try apply EqVisUnprivHaltLTauR; try apply EqVisUnprivHaltLVisR; auto with itree; intros - | [ Hemp : empty ?A |- secure_eqitF _ _ _ _ _ _ _ _ _ (@VisF _ _ _ ?A _ _) ] => + | [ Hemp : empty ?A |- secure_eqitF _ _ _ _ _ _ _ _ (@VisF _ _ _ ?A _ _) ] => try apply EqVisUnprivHaltRTauL; try apply EqVisUnprivHaltRVisL; auto with itree; intros end. Section SecureUntimedUnReflexive. @@ -174,10 +174,8 @@ Proof. try (unpriv_co; apply CIH; apply H); try unpriv_halt. - constructor; auto with itree. intros. apply CIH; apply H. - - eapply EqVisUnprivHaltRVisL; eauto. - intros. eapply CIH. apply H. - - eapply EqVisUnprivHaltLVisR; eauto. - intros. eapply CIH. apply H. + - eapply CIH. apply H. + - eapply CIH. apply H. Qed. Lemma secure_eqit_mono : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l @@ -194,10 +192,6 @@ Proof. eauto with itree. - constructor; auto. now apply H2. - constructor; intros; eauto. eapply CIH. apply H. - - eapply EqVisUnprivHaltLVisR; eauto. - intros. eapply CIH. apply H. - - eapply EqVisUnprivHaltRVisL; eauto. - intros. eapply CIH. apply H. Qed. End SecureUntimedUnReflexive. diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index 191ce6a5..7aeece28 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -187,7 +187,7 @@ Lemma pi_eqit_secure_mixed_trans b1 b2 E R1 R2 R3 (RR1 : R1 -> R2 -> Prop) (RR2 Proof. coinduction c CIH. intros t1 t2 t3 Hsec Heq. step in Heq. red in Heq. step in Hsec. red in Hsec. step. red. - hinduction Heq before r; intros; try inv CHECK; + hinduction Heq before r; intros; - inv Hsec; eauto with itree; unpriv_pi; + rewrite itree_eta'. constructor; auto with itree. right. eapply CIH; eauto. step. rewrite H0. constructor. auto. @@ -245,7 +245,7 @@ Proof. econstructor. pmonauto_itree. intros. destruct PR. step in EQVl. step in EQVr. unfold_eqit. red in REL. red. - hinduction REL before r; intros; clear t1' t2'; try inv CHECK. + hinduction REL before r; intros; clear t1' t2'. - genobs_clear t1 ot1. genobs_clear t2 ot2. remember (RetF r1) as x. hinduction EQVl before r; intros; inv Heqx; eauto. @@ -256,43 +256,43 @@ Proof. + rewrite itree_eta'. constructor; auto. cbn. gstep. cbn. eauto. - remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; try inv CHECK; subst; eauto. + hinduction EQVl before r; intros; inv Heqy; subst; eauto. + remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; subst; eauto. + hinduction EQVr before r; intros; inv Heqx; subst; eauto. constructor. gclo. econstructor; eauto with paco. remember (TauF m1) as ot1. rewrite itree_eta' at 1. constructor; auto. rewrite Heqot1. gstep. cbn. eauto. + constructor; auto. gstep. eapply IHEQVl; eauto. - - inv EQVl; try inv CHECK. + - inv EQVl. + constructor; auto. gclo. econstructor; eauto with paco itree. + constructor; auto. gclo. econstructor; eauto with paco itree. apply eqit_inv_Tau_r. step. auto. - - inv EQVr; try inv CHECK. + - inv EQVr. + constructor; auto. gclo. econstructor; eauto with paco itree. + constructor; auto. gclo. econstructor; eauto with paco itree. apply eqit_inv_Tau_r. step. auto. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto. + hinduction EQVl before r; intros; inv Heqx; eauto. + ddestruction. subst. remember (VisF e0 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto. + hinduction EQVr before r; intros; inv Heqy; eauto. * ddestruction. subst. constructor; auto. intros. apply gpaco2_clo. econstructor; eauto with itree. apply H. * remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto with itree. + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto. + hinduction EQVl before r; intros; inv Heqx; subst; eauto. + ddestruction. subst. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto. + hinduction EQVr before r; intros; inv Heqy; subst; eauto. * unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. gfinal. left. apply H. * remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto. + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto. + hinduction EQVl before r; intros; inv Heqx; subst; eauto. + remember (VisF e k2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto. + hinduction EQVr before r; intros; inv Heqy; subst; eauto. * ddestruction. subst. unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. gfinal. left. apply H. @@ -300,27 +300,27 @@ Proof. gstep. rewrite Heqotm1. red. eapply IHEQVr; eauto. + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto. + hinduction EQVl before r; intros; inv Heqx; subst; eauto. + ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto. + hinduction EQVr before r; intros; inv Heqy; subst; eauto. * ddestruction. subst. unpriv_pi. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. * remember (VisF e1 k1) as ovis. rewrite itree_eta' at 1. constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto. + remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; subst; eauto. + hinduction EQVr before r; intros; inv Heqx; subst; eauto. * ddestruction. subst. unpriv_pi. gclo. eapply eqit_trans_clo_intro with (t1' := Vis e1 k0); eauto with paco itree. gstep. cbn. unpriv_pi. gfinal. left. apply H. * remember (TauF t3) as ott3. rewrite itree_eta' at 1. constructor; auto. rewrite Heqott3. gstep. eapply IHEQVr; eauto. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto. + hinduction EQVl before r; intros; inv Heqx; eauto. + ddestruction. subst. unpriv_pi. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. + constructor; auto. gstep. eapply IHEQVl; eauto. - remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto. + hinduction EQVr before r; intros; inv Heqx; eauto. + ddestruction. subst. unpriv_pi. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. + constructor; auto. gstep. eapply IHEQVr; eauto. diff --git a/extra/Secure/SecureEqProgInsensFacts.v b/extra/Secure/SecureEqProgInsensFacts.v index dac1bf0e..6b89cfef 100644 --- a/extra/Secure/SecureEqProgInsensFacts.v +++ b/extra/Secure/SecureEqProgInsensFacts.v @@ -70,7 +70,7 @@ Lemma pi_eqit_secure_trans_ret E R1 R2 R3 Label priv l b1 b2 pi_eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. revert t1 t3. ginit. gcofix CIH. - intros. sinv H0; subst; try inv CHECK; use_simpobs. + intros. sinv H0; subst; use_simpobs. - rewrite H. generalize dependent t3. gcofix CIH'. intros t3 Ht3. sinv Ht3; use_simpobs. + rewrite H2. gstep. constructor; auto. econstructor; eauto. diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 4549cd4f..15f391a5 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -24,83 +24,83 @@ Proof. econstructor. pmonauto_itree. intros. destruct PR. step in EQVl. step in EQVr. unfold_eqit. red in REL. red. - hinduction REL before r; intros; clear t1' t2'; try inv CHECK. + hinduction REL before r; intros; clear t1' t2'. - genobs_clear t1 ot1. genobs_clear t2 ot2. remember (RetF r1) as x. hinduction EQVl before r; intros; inv Heqx; eauto with itree. remember (RetF r3) as y. hinduction EQVr before r; intros; inv Heqy; eauto with itree. - remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. + hinduction EQVl before r; intros; inv Heqy; subst; eauto with itree. remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; subst; eauto with itree. constructor. gclo. econstructor; eauto with paco. - eapply IHREL; eauto. remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; eauto with itree. constructor; auto. pstep_reverse. - eapply IHREL; eauto. remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; eauto with itree. constructor; auto. pstep_reverse. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; eauto with itree. ddestruction. subst. remember (VisF e0 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; eauto with itree. ddestruction. subst. constructor; auto. intros. apply gpaco2_clo. econstructor; eauto with itree. apply H. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; subst; eauto with itree. ddestruction. subst. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; subst; eauto with itree. unpriv_co. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; subst; eauto with itree. remember (VisF e k2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; subst; eauto with itree. ddestruction. subst. unpriv_co. gclo. econstructor; eauto with paco itree. gfinal. left. apply H. - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; subst; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; subst; eauto with itree. ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; subst; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; subst; eauto with itree. ddestruction. subst. unpriv_co. gclo. econstructor; eauto with itree paco. gfinal. left. apply H. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; eauto with itree. ddestruction. subst. unpriv_ind. eapply H0; eauto. pstep_reverse. - remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; eauto with itree. ddestruction. subst. unpriv_ind. eapply H0; eauto. pstep_reverse. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; eauto with itree. ddestruction. subst. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; eauto with itree. unpriv_halt. gclo. econstructor; eauto with paco. step. constructor. red; auto. - remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; eauto with itree. ddestruction. subst. remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqy; eauto with itree. unpriv_halt. gclo. econstructor; eauto with paco. step. constructor. red; auto. - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; try contra_size; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; try contra_size; eauto with itree. ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; eauto with itree. ddestruction. subst. unpriv_halt. gclo. econstructor 1 with (t1' := Vis e1 k0); eauto with paco itree. + step. constructor; left; auto. + gfinal. left. apply H. - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; try contra_size; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; try contra_size; eauto with itree. ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; eauto with itree. ddestruction. subst. unpriv_halt. gclo. econstructor 1 with (t2' := Vis e2 k4); eauto with paco itree. + step. constructor. left. auto. @@ -185,36 +185,36 @@ Proof. { red. intros. eauto with paco. } intros. dependent destruction PR. step in EQVl. step in EQVr. red in EQVl. red in EQVr. red in REL. red. - hinduction REL before r; intros; clear t1' t2'; try inv CHECK. + hinduction REL before r; intros; clear t1' t2'. - remember (RetF r1) as x. hinduction EQVl before r; intros; subst; try inv Heqx; eauto with itree. remember (RetF r3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; eauto with itree. rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - remember (TauF t1) as x. hinduction EQVl before r; intros; subst; try inv Heqx; - try inv CHECK; eauto with itree. + eauto with itree. + remember (TauF t4) as y. (* think I might have a lead on the problem, should H0 have vclo not id here?*) hinduction EQVr before r; intros; subst; try inv Heqy; - try inv CHECK; try fold_secure; eauto with itree. + try fold_secure; eauto with itree. * constructor. gclo. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. + remember (TauF t3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; - try inv CHECK; repeat fold_secure; eauto with itree. + repeat fold_secure; eauto with itree. * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. + remember (TauF t3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; - try inv CHECK; repeat fold_secure; eauto with itree. + repeat fold_secure; eauto with itree. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. contra_size. - eapply IHREL; eauto. - remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree. + remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; eauto with itree. + constructor; auto. pstep_reverse. + unpriv_ind. pstep_reverse. + step in H. @@ -224,16 +224,16 @@ Proof. + unpriv_ind. pstep_reverse. + step in H. - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree. remember (VisF e0 k3) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; inv_vis_secure; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; inv_vis_secure; eauto with itree. + constructor; auto. intros. gclo. econstructor; eauto. apply H0. apply H. gfinal; left; apply H1. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - unfold id in H. remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree. + remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; repeat fold_secure; eauto with itree. * constructor. gclo. inv SIZECHECK. spew a. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. inv SIZECHECK0. spew a0; spew a. econstructor; eauto. gfinal; eauto. @@ -241,22 +241,22 @@ Proof. * unpriv_halt. inv SIZECHECK0. gclo. spew a. econstructor; eauto. gfinal; eauto. + inv SIZECHECK. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; repeat fold_secure; eauto with itree. * unpriv_co. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. fold_secure. spew a0; spew a. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. + inv SIZECHECK0. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. + hinduction EQVr before r; intros; inv Heqy; repeat fold_secure; eauto with itree. * unpriv_halt. gclo. spew a; econstructor; eauto. gfinal; eauto. * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. gfinal; eauto. * rewrite itree_eta' at 1. unpriv_ind. eauto. * unpriv_halt. contra_size. - unfold id in H. remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree. + remember (TauF t0) as y. - hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree; repeat fold_secure. + hinduction EQVl before r; intros; inv Heqy; eauto with itree; repeat fold_secure. * constructor. gclo. fold_secure. inv SIZECHECK. spew a; econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. fold_secure. inv SIZECHECK0. spew a; spew a0. econstructor; eauto. @@ -265,14 +265,14 @@ Proof. * unpriv_halt. inv SIZECHECK0. gclo. spew a; econstructor; eauto. gfinal; eauto. + inv SIZECHECK. remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; try inv CHECK; repeat fold_secure; eauto with itree. + hinduction EQVl before r; intros; inv Heqy; repeat fold_secure; eauto with itree. * unpriv_co. gclo. spew a0; spew a. econstructor; eauto. gfinal; eauto. * unpriv_co. gclo. spew b; spew a; spew a0; econstructor; eauto. gfinal; eauto. * rewrite itree_eta'. unpriv_ind. eauto. * unpriv_halt. gclo. spew a. econstructor; eauto. gfinal; eauto. + inv SIZECHECK0. remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqy; eauto with itree. * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. gfinal; eauto. * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. @@ -280,39 +280,39 @@ Proof. * rewrite itree_eta'. unpriv_ind. eauto. * unpriv_halt. contra_size. - unfold id in H. remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; fold_secure. + hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree; fold_secure. 1: inv SIZECHECK1; inv SIZECHECK2; remember (VisF e1 k1) as y. 2: inv SIZECHECK0; inv SIZECHECK3; remember (VisF e0 k0) as y. 3: inv SIZECHECK1; inv SIZECHECK2; remember (VisF e0 k0) as y. all: spew a; spew a0. - all: hinduction EQVl before r; intros; inv Heqy; try inv CHECK; inv_vis_secure; subst; + all: hinduction EQVl before r; intros; inv Heqy; inv_vis_secure; subst; eauto with itree; try (eqit_secureC_halt_cases E; fail). all: rewrite itree_eta'; unpriv_ind; auto with itree; eauto. - inv SIZECHECK. eapply H0; eauto. Unshelve. all : auto. remember (VisF e k1) as x. clear H0. - hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; try inv CHECK; eauto with itree. + hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree. + constructor; auto. pstep_reverse. + unpriv_ind. pstep_reverse. + rewrite itree_eta' at 1 . pstep_reverse. - inv SIZECHECK. eapply (H0 a); eauto. remember (VisF e k2) as x. clear H0. - hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; try inv CHECK; eauto with itree. + hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree. + constructor; auto. pstep_reverse. + unpriv_ind. pstep_reverse. + rewrite itree_eta' at 1 . pstep_reverse. - remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; eauto with itree; + hinduction EQVr before r; intros; inv Heqx; eauto with itree; inv EQVl; inv_vis_secure; eqit_secureC_halt_cases E. + find_size A0; eqit_secureC_halt_cases E. + find_size A1; eqit_secureC_halt_cases E. - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; eauto with itree; + hinduction EQVl before r; intros; inv Heqx; eauto with itree; inv EQVr; inv_vis_secure; eqit_secureC_halt_cases E. + find_size A0; eqit_secureC_halt_cases E. + find_size A1; eqit_secureC_halt_cases E. - unfold id in H. remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; + hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree; inv EQVl; inv_vis_secure; (* maybe I should just write a new one *) do 2 ( @@ -331,7 +331,7 @@ Proof. try apply H3; try apply H; eqit_secureC_halt_cases E. Unshelve. all : auto. - unfold id in H. remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try inv CHECK; inv_vis_secure; eauto with itree; + hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree; inv EQVr; inv_vis_secure; do 2 ( repeat match goal with | H : nonempty ?A |- _ => inv H end; diff --git a/extra/Secure/SecureStateHandler.v b/extra/Secure/SecureStateHandler.v index dfd3f5ce..c38d749c 100644 --- a/extra/Secure/SecureStateHandler.v +++ b/extra/Secure/SecureStateHandler.v @@ -212,7 +212,7 @@ Proof. - rewrite Heqot. step; constructor. left. eapply IHHt; eauto. - eapply IHHt; eauto. assert (ITree.spin ≅ t2). { clear IHHt Ht. generalize dependent t2. coinduction c CIH'. - intros. step in Heqotspin. red in Heqotspin. cbn in *. inversion Heqotspin; try inv CHECK0. + intros. step in Heqotspin. red in Heqotspin. cbn in *. inversion Heqotspin0. subst. eapply paco2_mon; eauto; intros; try contradiction. } apply EqAxiom.bisimulation_is_eq in H. subst; auto. - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. rewrite Heqotspin. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 56f8f91e..e9b4db7d 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -273,7 +273,7 @@ because we can destruct itree'. #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. Ltac icbn := repeat red. -Ltac icbn_in h := cbn [eqit_mon body eqit_] in h. +Ltac icbn_in h := repeat red in h. Ltac refold := repeat match goal with @@ -340,7 +340,7 @@ Ltac to_mon_in h := (** --- Orchestration via the [Utils.v] generics. --- *) -#[local] Tactic Notation "icbn" "in" ident(h) := icbn_in h. +Tactic Notation "icbn" "in" ident(h) := icbn_in h. #[local] Tactic Notation "icbn" "in" "*" := cbn [eqit_mon body eqit_] in *. Tactic Notation "refold" "in" ident(h) := refold_in h. @@ -1363,6 +1363,9 @@ Module Tests. #[local] Parameter (GT : v ≳ w). #[local] Parameter (GT2 : w ≳ v). + (* RTODO: something sus is going on here. + + cbn breaks step. that shouldn't happen. *) Goal eutt RR u v. rewrite EQUIV2. rewrite <- EQ2. @@ -1370,8 +1373,9 @@ Goal eutt RR u v. rewrite <- EQ1. exact EQ1. rewrite EQ2, <- EQ2. - exact EQ2. - step. + exact EQ2. + step. + (* cbn. *) step. rewrite <- EQ1. rewrite <- GT. @@ -1547,7 +1551,7 @@ Qed. Lemma eqitree_inv_Tau_r {E R} (t t' : itree E R) : t ≅ Tau t' -> exists t0, observe t = TauF t0 /\ t0 ≅ t'. Proof. - intros; sinv H; try inv CHECK; eauto. + intros; sinv H; eauto. Qed. Lemma eqit_inv_Ret {E R1 R2 RR} b1 b2 r1 r2 : From 2cb9f82808ab7680c36dc13087096cf772f5ee5c Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 12 May 2026 00:48:00 -0400 Subject: [PATCH 158/189] Done up through SecureEqTrans. Moving onto SecureEqWcompat, a large change. --- extra/Dijkstra/DelaySpecMonad.v.timing | 38 +- extra/Dijkstra/ITreeDijkstra.v.timing | 100 +- extra/Dijkstra/IterRel.v.timing | 6 +- extra/Dijkstra/PureITreeBasics.v.timing | 22 +- extra/Dijkstra/PureITreeDijkstra.v.timing | 571 +++ extra/Dijkstra/StateDelaySpec.v.timing | 32 +- extra/Dijkstra/StateIOTrace.v.timing | 284 ++ extra/Dijkstra/StateSpecT.v.timing | 24 +- extra/Dijkstra/TracesIT.v.timing | 604 +++ extra/IForest.v.timing | 288 +- extra/ITrace/ITraceBind.v.timing | 4150 ++++++++--------- extra/ITrace/ITraceDefinition.v.timing | 6 +- extra/ITrace/ITraceFacts.v.timing | 290 +- extra/ITrace/ITracePreds.v.timing | 10 +- extra/ITrace/ITracePrefix.v.timing | 1006 ++-- extra/Secure/Labels.v.timing | 2 +- extra/Secure/SecureEqEuttHalt.v.timing | 1773 +++++++ extra/Secure/SecureEqEuttTrans.v | 90 +- extra/Secure/SecureEqEuttTrans.v.timing | 7 + extra/Secure/SecureEqHalt.v.timing | 73 + extra/Secure/SecureEqHaltProgInsens.v.timing | 66 + extra/Secure/SecureEqWcompat.v | 3 +- extra/Secure/StrongBisimProper.v.timing | 2 +- theories/Axioms.v.timing | 2 +- theories/Basics/Basics.v.timing | 16 +- theories/Basics/Category.v.timing | 2 +- theories/Basics/CategoryFacts.v.timing | 226 +- theories/Basics/CategoryFunctor.v.timing | 2 +- theories/Basics/CategoryKleisli.v.timing | 4 +- theories/Basics/CategoryKleisliFacts.v.timing | 40 +- theories/Basics/CategoryOps.v.timing | 12 +- theories/Basics/CategoryRelations.v.timing | 50 +- theories/Basics/CategorySub.v.timing | 46 +- theories/Basics/CategoryTheory.v.timing | 34 +- theories/Basics/FunctionFacts.v.timing | 16 +- .../Basics/HeterogeneousRelations.v.timing | 36 +- theories/Basics/Monad.v.timing | 2 +- theories/Basics/MonadProp.v.timing | 16 +- theories/Basics/MonadState.v.timing | 62 +- theories/Basics/Utils.v.timing | 4 +- theories/Core/ITreeDefinition.v.timing | 6 +- theories/Core/ITreeMonad.v.timing | 6 +- theories/Core/KTree.v.timing | 2 +- theories/Core/KTreeFacts.v.timing | 136 +- theories/Core/Subevent.v.timing | 6 +- theories/Eq.v.timing | 2 +- theories/Eq/EqAxiom.v.timing | 2 +- theories/Eq/Eqit.v.timing | 3528 +++++++------- theories/Eq/Rutt.v.timing | 44 +- theories/Eq/RuttFacts.v.timing | 126 +- theories/Eq/Shallow.v.timing | 10 +- theories/Eq/SimUpToTaus.v.timing | 58 +- theories/Events.v.timing | 2 +- theories/Events/Concurrency.v.timing | 8 +- theories/Events/Dependent.v.timing | 4 +- theories/Events/Exception.v.timing | 4 +- theories/Events/ExceptionFacts.v.timing | 352 +- theories/Events/FailFacts.v.timing | 94 +- theories/Events/Map.v.timing | 6 +- theories/Events/MapDefault.v.timing | 8 +- theories/Events/MapDefaultFacts.v.timing | 40 +- theories/Events/Nondeterminism.v.timing | 4 +- theories/Events/Reader.v.timing | 6 +- theories/Events/State.v.timing | 8 +- theories/Events/StateFacts.v.timing | 122 +- theories/Events/Writer.v.timing | 8 +- theories/ITree.v.timing | 2 +- theories/ITreeFacts.v.timing | 2 +- theories/Indexed/Function.v.timing | 2 +- theories/Indexed/FunctionFacts.v.timing | 4 +- theories/Indexed/Relation.v.timing | 6 +- theories/Indexed/Sum.v.timing | 2 +- theories/Interp/Handler.v.timing | 6 +- theories/Interp/HandlerFacts.v.timing | 182 +- theories/Interp/Interp.v.timing | 2 +- theories/Interp/InterpFacts.v.timing | 162 +- theories/Interp/Recursion.v.timing | 2 +- theories/Interp/RecursionFacts.v.timing | 78 +- theories/Interp/Traces.v.timing | 24 +- theories/Interp/TranslateFacts.v.timing | 54 +- theories/Props/Cofinite.v.timing | 10 +- theories/Props/EuttNoRet.v.timing | 30 +- theories/Props/Finite.v.timing | 62 +- theories/Props/HasPost.v.timing | 32 +- theories/Props/Infinite.v.timing | 36 +- theories/Props/Leaf.v.timing | 68 +- theories/Simple.v.timing | 50 +- 87 files changed, 9398 insertions(+), 6027 deletions(-) create mode 100644 extra/Dijkstra/PureITreeDijkstra.v.timing create mode 100644 extra/Dijkstra/StateIOTrace.v.timing create mode 100644 extra/Dijkstra/TracesIT.v.timing create mode 100644 extra/Secure/SecureEqEuttHalt.v.timing create mode 100644 extra/Secure/SecureEqEuttTrans.v.timing create mode 100644 extra/Secure/SecureEqHalt.v.timing create mode 100644 extra/Secure/SecureEqHaltProgInsens.v.timing diff --git a/extra/Dijkstra/DelaySpecMonad.v.timing b/extra/Dijkstra/DelaySpecMonad.v.timing index e5cf3d07..0f2e0f33 100644 --- a/extra/Dijkstra/DelaySpecMonad.v.timing +++ b/extra/Dijkstra/DelaySpecMonad.v.timing @@ -1,6 +1,6 @@ Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.221 secs (0.193u,0.027s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.233 secs (0.2u,0.031s) Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.018 secs (0.015u,0.003s) Chars 312 - 326 [Import~Monads.] 0. secs (0.u,0.s) Chars 327 - 348 [Import~MonadNotation.] 0. secs (0.u,0.s) @@ -25,7 +25,7 @@ Chars 2513 - 2604 [Definition~DelayIn~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 2606 - 2767 [Definition~DelaySpec~(A~:~Type...] 0. secs (0.u,0.s) Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.003 secs (0.002u,0.s) Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.003 secs (0.002u,0.s) -Chars 3076 - 3092 [Next~Obligation.] 0.038 secs (0.034u,0.004s) +Chars 3076 - 3092 [Next~Obligation.] 0.038 secs (0.035u,0.003s) Chars 3095 - 3114 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) Chars 3115 - 3142 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 3145 - 3146 [-] 0. secs (0.u,0.s) @@ -48,7 +48,7 @@ Chars 3273 - 3279 [right.] 0. secs (0.u,0.s) Chars 3280 - 3294 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) Chars 3295 - 3300 [auto.] 0. secs (0.u,0.s) Chars 3301 - 3305 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.002 secs (0.001u,0.s) +Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.001 secs (0.001u,0.s) Chars 3426 - 3442 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 3445 - 3449 [(red).] 0. secs (0.u,0.s) Chars 3450 - 3460 [(red~in~H0).] 0. secs (0.u,0.s) @@ -67,7 +67,7 @@ Chars 3597 - 3615 [(eapply~Hfa;~eauto).] 0. secs (0.u,0.s) Chars 3618 - 3619 [-] 0. secs (0.u,0.s) Chars 3620 - 3626 [right.] 0. secs (0.u,0.s) Chars 3627 - 3639 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3640 - 3644 [Qed.] 0.061 secs (0.059u,0.s) +Chars 3640 - 3644 [Qed.] 0.057 secs (0.057u,0.s) Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0.001 secs (0.001u,0.s) Chars 3747 - 3831 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) Chars 3832 - 3838 [Proof.] 0. secs (0.u,0.s) @@ -84,10 +84,10 @@ Chars 3987 - 3993 [tauto.] 0.002 secs (0.002u,0.s) Chars 3994 - 3998 [Qed.] 0.002 secs (0.002u,0.s) Chars 4000 - 4104 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.016 secs (0.016u,0.s) -Chars 4177 - 4193 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4177 - 4193 [Next~Obligation.] 0. secs (0.u,0.s) Chars 4196 - 4207 [(repeat~red).] 0. secs (0.u,0.s) Chars 4208 - 4212 [(cbn).] 0. secs (0.u,0.s) -Chars 4213 - 4246 [(split;~intros;~basic_solve;~a...] 0.002 secs (0.001u,0.s) +Chars 4213 - 4246 [(split;~intros;~basic_solve;~a...] 0.002 secs (0.002u,0.s) Chars 4249 - 4250 [-] 0. secs (0.u,0.s) Chars 4251 - 4285 [(repeat~red~in~H;~step~in~H;~i...] 0. secs (0.u,0.s) Chars 4289 - 4290 [-] 0. secs (0.u,0.s) @@ -183,8 +183,8 @@ Chars 5421 - 5427 [right.] 0. secs (0.u,0.s) Chars 5428 - 5440 [(split;~auto).] 0. secs (0.u,0.s) Chars 5441 - 5447 [right.] 0. secs (0.u,0.s) Chars 5448 - 5484 [(split;~try~auto~using~spin_in...] 0. secs (0.u,0.s) -Chars 5485 - 5489 [Qed.] 0.013 secs (0.013u,0.s) -Chars 5490 - 5506 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 5485 - 5489 [Qed.] 0.014 secs (0.014u,0.s) +Chars 5490 - 5506 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 5509 - 5534 [(intros~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) Chars 5535 - 5567 [(unfold~pointwise_relation~in~...] 0. secs (0.u,0.s) Chars 5570 - 5581 [(repeat~red).] 0. secs (0.u,0.s) @@ -202,7 +202,7 @@ Chars 5915 - 6054 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.002 secs (0.002u,0.s) Chars 6059 - 6068 [(apply~Hk).] 0. secs (0.u,0.s) Chars 6069 - 6074 [auto.] 0. secs (0.u,0.s) Chars 6077 - 6078 [-] 0. secs (0.u,0.s) -Chars 6079 - 6090 [(rewrite~Hw).] 0.002 secs (0.001u,0.s) +Chars 6079 - 6090 [(rewrite~Hw).] 0.002 secs (0.002u,0.s) Chars 6091 - 6127 [(eapply~Hw2;~try~apply~H;~simp...] 0. secs (0.u,0.s) Chars 6128 - 6135 [(intros).] 0. secs (0.u,0.s) Chars 6140 - 6193 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.001 secs (0.001u,0.s) @@ -210,10 +210,10 @@ Chars 6198 - 6203 [left.] 0. secs (0.u,0.s) Chars 6204 - 6213 [exists~a.] 0. secs (0.u,0.s) Chars 6214 - 6226 [(split;~auto).] 0. secs (0.u,0.s) Chars 6231 - 6249 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 6250 - 6389 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.005 secs (0.004u,0.s) +Chars 6250 - 6389 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.005 secs (0.005u,0.s) Chars 6394 - 6403 [(apply~Hk).] 0. secs (0.u,0.s) Chars 6404 - 6409 [auto.] 0. secs (0.u,0.s) -Chars 6410 - 6414 [Qed.] 0.013 secs (0.013u,0.s) +Chars 6410 - 6414 [Qed.] 0.014 secs (0.014u,0.s) Chars 6416 - 6521 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) Chars 6523 - 6582 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) Chars 6583 - 6589 [Proof.] 0. secs (0.u,0.s) @@ -260,7 +260,7 @@ Chars 7031 - 7036 [auto.] 0. secs (0.u,0.s) Chars 7041 - 7042 [+] 0. secs (0.u,0.s) Chars 7043 - 7049 [right.] 0. secs (0.u,0.s) Chars 7050 - 7055 [auto.] 0. secs (0.u,0.s) -Chars 7056 - 7060 [Qed.] 0.008 secs (0.008u,0.s) +Chars 7056 - 7060 [Qed.] 0.009 secs (0.009u,0.s) Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.002 secs (0.002u,0.s) Chars 7153 - 7224 [#[global]~Instance~DelaySpecOb...] 0. secs (0.u,0.s) Chars 7226 - 7310 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) @@ -306,16 +306,16 @@ Chars 7881 - 7906 [(apply~div_spin_eutt~in~H).] 0. secs (0.u,0.s) Chars 7907 - 7928 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) Chars 7929 - 7940 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 7941 - 7965 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 7966 - 7976 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 7966 - 7976 [(rewrite~H).] 0.002 secs (0.001u,0.s) Chars 7983 - 7992 [symmetry.] 0. secs (0.u,0.s) Chars 7993 - 8009 [(apply~spin_bind).] 0. secs (0.u,0.s) -Chars 8010 - 8014 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8010 - 8014 [Qed.] 0.006 secs (0.005u,0.s) Chars 8016 - 8127 [Definition~iter_arrow_rel~{A~B...] 0. secs (0.u,0.s) Chars 8129 - 8211 [Notation~"x~=[~g~]=>~y"~:=~(it...] 0. secs (0.u,0.s) Chars 8213 - 8360 [Lemma~iter_inl_spin~:~~~forall...] 0. secs (0.u,0.s) Chars 8361 - 8367 [Proof.] 0. secs (0.u,0.s) Chars 8370 - 8383 [(intros~A~B~g).] 0. secs (0.u,0.s) -Chars 8384 - 8396 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 8384 - 8396 [coinduction.] 0.005 secs (0.004u,0.s) Chars 8397 - 8404 [(intros).] 0. secs (0.u,0.s) Chars 8405 - 8448 [(red~in~H;~sinv~H;~try~apply~n...] 0.015 secs (0.015u,0.s) Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.039 secs (0.038u,0.s) @@ -357,11 +357,11 @@ Chars 9410 - 9427 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 9428 - 9433 [auto.] 0. secs (0.u,0.s) Chars 9438 - 9439 [+] 0. secs (0.u,0.s) Chars 9440 - 9449 [exists~b.] 0. secs (0.u,0.s) -Chars 9450 - 9470 [(rewrite~unfold_iter).] 0.001 secs (0.001u,0.s) +Chars 9450 - 9470 [(rewrite~unfold_iter).] 0. secs (0.u,0.s) Chars 9471 - 9484 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) Chars 9485 - 9504 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 9511 - 9523 [reflexivity.] 0. secs (0.u,0.s) -Chars 9524 - 9528 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9524 - 9528 [Qed.] 0.004 secs (0.003u,0.s) Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0.001 secs (0.u,0.s) Chars 9682 - 9863 [Definition~iter_lift~{A~B~:~Ty...] 0. secs (0.u,0.s) Chars 9865 - 9940 [Notation~"q~-+>~p"~:=~(loop_in...] 0. secs (0.u,0.s) @@ -385,7 +385,7 @@ Chars 10568 - 10569 [*] 0. secs (0.u,0.s) Chars 10570 - 10578 [(apply~H).] 0. secs (0.u,0.s) Chars 10579 - 10583 [(cbn).] 0. secs (0.u,0.s) Chars 10584 - 10608 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.007 secs (0.007u,0.s) +Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.006 secs (0.006u,0.s) Chars 10651 - 10665 [(rewrite~<-~H3).] 0.004 secs (0.004u,0.s) Chars 10674 - 10707 [(repeat~setoid_rewrite~bind_re...] 0.011 secs (0.011u,0.s) Chars 10708 - 10720 [reflexivity.] 0. secs (0.u,0.s) @@ -420,7 +420,7 @@ Chars 11245 - 11271 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) Chars 11283 - 11295 [reflexivity.] 0. secs (0.u,0.s) Chars 11302 - 11303 [*] 0. secs (0.u,0.s) Chars 11304 - 11314 [(cbn~in~H4).] 0. secs (0.u,0.s) -Chars 11315 - 11354 [(rewrite~unfold_iter,~<-~H4,~b...] 0.006 secs (0.006u,0.s) +Chars 11315 - 11354 [(rewrite~unfold_iter,~<-~H4,~b...] 0.005 secs (0.005u,0.s) Chars 11363 - 11371 [(apply~H).] 0. secs (0.u,0.s) Chars 11372 - 11376 [(cbn).] 0. secs (0.u,0.s) Chars 11377 - 11396 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/ITreeDijkstra.v.timing b/extra/Dijkstra/ITreeDijkstra.v.timing index d3228b95..1978bd4b 100644 --- a/extra/Dijkstra/ITreeDijkstra.v.timing +++ b/extra/Dijkstra/ITreeDijkstra.v.timing @@ -1,8 +1,8 @@ Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.229 secs (0.2u,0.027s) -Chars 242 - 361 [From~ITree.Extra~Require~Impor...] 0.021 secs (0.017u,0.004s) +Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.234 secs (0.2u,0.032s) +Chars 242 - 361 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 401 - 433 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -18,9 +18,9 @@ Chars 954 - 967 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 968 - 989 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) Chars 990 - 996 [(simpl).] 0. secs (0.u,0.s) Chars 997 - 1029 [(split;~intros;~eapply~Hp;~eau...] 0.002 secs (0.001u,0.s) -Chars 1034 - 1051 [now~rewrite~<-~H.] 0.004 secs (0.003u,0.s) -Chars 1054 - 1058 [Qed.] 0.036 secs (0.032u,0.004s) -Chars 1062 - 1271 [#[program]~Definition~bind_ex~...] 0.004 secs (0.004u,0.s) +Chars 1034 - 1051 [now~rewrite~<-~H.] 0.003 secs (0.002u,0.s) +Chars 1054 - 1058 [Qed.] 0.035 secs (0.031u,0.003s) +Chars 1062 - 1271 [#[program]~Definition~bind_ex~...] 0.003 secs (0.003u,0.s) Chars 1274 - 1290 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 1293 - 1299 [Proof.] 0. secs (0.u,0.s) Chars 1304 - 1315 [(repeat~red).] 0. secs (0.u,0.s) @@ -28,7 +28,7 @@ Chars 1316 - 1343 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) Chars 1348 - 1349 [-] 0. secs (0.u,0.s) Chars 1350 - 1355 [left.] 0. secs (0.u,0.s) Chars 1356 - 1365 [exists~a.] 0. secs (0.u,0.s) -Chars 1366 - 1382 [(rewrite~H~in~H0).] 0.005 secs (0.005u,0.s) +Chars 1366 - 1382 [(rewrite~H~in~H0).] 0.005 secs (0.004u,0.s) Chars 1383 - 1388 [auto.] 0. secs (0.u,0.s) Chars 1393 - 1394 [-] 0. secs (0.u,0.s) Chars 1395 - 1401 [right.] 0. secs (0.u,0.s) @@ -44,14 +44,14 @@ Chars 1649 - 1659 [(eapply~Hp).] 0. secs (0.u,0.s) Chars 1667 - 1677 [clear~Ht2.] 0. secs (0.u,0.s) Chars 1685 - 1699 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 1707 - 1730 [(eapply~noret_cast_cast).] 0. secs (0.u,0.s) -Chars 1731 - 1742 [all:~eauto.] 0.001 secs (0.001u,0.s) +Chars 1731 - 1742 [all:~eauto.] 0.002 secs (0.002u,0.s) Chars 1747 - 1748 [-] 0. secs (0.u,0.s) Chars 1749 - 1754 [left.] 0. secs (0.u,0.s) Chars 1755 - 1764 [exists~a.] 0. secs (0.u,0.s) Chars 1765 - 1777 [(split;~auto).] 0. secs (0.u,0.s) -Chars 1778 - 1788 [(rewrite~H).] 0.005 secs (0.004u,0.s) +Chars 1778 - 1788 [(rewrite~H).] 0.004 secs (0.004u,0.s) Chars 1789 - 1794 [auto.] 0. secs (0.u,0.s) -Chars 1799 - 1800 [-] 0. secs (0.u,0.s) +Chars 1799 - 1800 [-] 0.052 secs (0.051u,0.s) Chars 1801 - 1807 [right.] 0. secs (0.u,0.s) Chars 1808 - 1823 [(rewrite~H~~at~1).] 0.002 secs (0.002u,0.s) Chars 1824 - 1836 [(split;~auto).] 0. secs (0.u,0.s) @@ -69,7 +69,7 @@ Chars 2045 - 2056 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 2058 - 2082 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) Chars 2087 - 2094 [(intros).] 0. secs (0.u,0.s) Chars 2095 - 2106 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2111 - 2132 [(destruct~p~as~[p~Hp]).] 0.001 secs (0.u,0.s) +Chars 2111 - 2132 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) Chars 2133 - 2157 [(destruct~p'~as~[p'~Hp']).] 0. secs (0.u,0.s) Chars 2158 - 2169 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 2174 - 2186 [basic_solve.] 0. secs (0.u,0.s) @@ -85,11 +85,11 @@ Chars 2307 - 2312 [auto.] 0. secs (0.u,0.s) Chars 2317 - 2318 [-] 0. secs (0.u,0.s) Chars 2319 - 2325 [right.] 0. secs (0.u,0.s) Chars 2326 - 2338 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2341 - 2345 [Qed.] 0.007 secs (0.006u,0.s) +Chars 2341 - 2345 [Qed.] 0.006 secs (0.006u,0.s) Chars 2349 - 2440 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0.001 secs (0.001u,0.s) Chars 2444 - 2509 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) -Chars 2523 - 2564 [(constructor;~red;~intros;~red...] 0.005 secs (0.004u,0.s) +Chars 2523 - 2564 [(constructor;~red;~intros;~red...] 0.004 secs (0.004u,0.s) Chars 2569 - 2570 [-] 0. secs (0.u,0.s) Chars 2571 - 2580 [(red~in~H).] 0. secs (0.u,0.s) Chars 2581 - 2588 [(intros).] 0. secs (0.u,0.s) @@ -99,7 +99,7 @@ Chars 2617 - 2618 [-] 0. secs (0.u,0.s) Chars 2619 - 2626 [(intros).] 0. secs (0.u,0.s) Chars 2627 - 2636 [(red~in~H).] 0. secs (0.u,0.s) Chars 2637 - 2647 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 2648 - 2658 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 2648 - 2658 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 2659 - 2670 [(rewrite~H0).] 0.001 secs (0.001u,0.s) Chars 2677 - 2689 [reflexivity.] 0. secs (0.u,0.s) Chars 2692 - 2696 [Qed.] 0.001 secs (0.001u,0.s) @@ -117,7 +117,7 @@ Chars 6437 - 6554 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 6558 - 6616 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) Chars 6620 - 6626 [Proof.] 0. secs (0.u,0.s) Chars 6632 - 6640 [intros~!.] 0. secs (0.u,0.s) -Chars 6646 - 6653 [(inv~H0).] 0.001 secs (0.001u,0.s) +Chars 6646 - 6653 [(inv~H0).] 0.001 secs (0.u,0.s) Chars 6654 - 6658 [(red).] 0. secs (0.u,0.s) Chars 6659 - 6673 [(rewrite~<-~H1).] 0. secs (0.u,0.s) Chars 6674 - 6687 [econstructor.] 0. secs (0.u,0.s) @@ -134,7 +134,7 @@ Chars 7593 - 7649 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) Chars 7653 - 7659 [Proof.] 0. secs (0.u,0.s) Chars 7665 - 7673 [intros~!.] 0. secs (0.u,0.s) Chars 7674 - 7678 [(red).] 0. secs (0.u,0.s) -Chars 7679 - 7686 [(inv~H0).] 0.006 secs (0.006u,0.s) +Chars 7679 - 7686 [(inv~H0).] 0.005 secs (0.005u,0.s) Chars 7692 - 7693 [-] 0. secs (0.u,0.s) Chars 7694 - 7706 [constructor.] 0. secs (0.u,0.s) Chars 7712 - 7713 [-] 0. secs (0.u,0.s) @@ -161,7 +161,7 @@ Chars 8194 - 8212 [(unfold~bisim~at~3).] 0. secs (0.u,0.s) Chars 8213 - 8231 [coinduction~c~CIH.] 0. secs (0.u,0.s) Chars 8232 - 8239 [(intros).] 0. secs (0.u,0.s) Chars 8240 - 8249 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8256 - 8310 [(red~in~H;~sinv~H;~red~in~H0;~...] 0.044 secs (0.043u,0.s) +Chars 8256 - 8310 [(red~in~H;~sinv~H;~red~in~H0;~...] 0.042 secs (0.042u,0.s) Chars 8317 - 8318 [+] 0. secs (0.u,0.s) Chars 8319 - 8338 [(rewrite~<-~H~in~H3).] 0. secs (0.u,0.s) Chars 8339 - 8352 [discriminate.] 0. secs (0.u,0.s) @@ -185,7 +185,7 @@ Chars 8769 - 8770 [-] 0. secs (0.u,0.s) Chars 8771 - 8777 [(simpl).] 0. secs (0.u,0.s) Chars 8778 - 8790 [(destruct~s3).] 0. secs (0.u,0.s) Chars 8791 - 8803 [(destruct~s4).] 0. secs (0.u,0.s) -Chars 8804 - 8849 [(sinv~H34;~simpl~in~*;~subst;~...] 0.015 secs (0.015u,0.s) +Chars 8804 - 8849 [(sinv~H34;~simpl~in~*;~subst;~...] 0.016 secs (0.016u,0.s) Chars 8856 - 8868 [constructor.] 0. secs (0.u,0.s) Chars 8869 - 8883 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 8889 - 8890 [-] 0. secs (0.u,0.s) @@ -225,11 +225,11 @@ Chars 9592 - 9610 [coinduction~c~CIH.] 0. secs (0.u,0.s) Chars 9611 - 9629 [(intros~s1~s2~Hinf).] 0. secs (0.u,0.s) Chars 9630 - 9635 [icbn.] 0. secs (0.u,0.s) Chars 9636 - 9647 [(unfold~app).] 0. secs (0.u,0.s) -Chars 9652 - 9662 [(sinv~Hinf).] 0.005 secs (0.005u,0.s) +Chars 9652 - 9662 [(sinv~Hinf).] 0.004 secs (0.004u,0.s) Chars 9667 - 9671 [(cbn).] 0. secs (0.u,0.s) Chars 9672 - 9684 [constructor.] 0. secs (0.u,0.s) Chars 9685 - 9701 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 9704 - 9708 [Qed.] 0.002 secs (0.001u,0.s) +Chars 9704 - 9708 [Qed.] 0.001 secs (0.001u,0.s) Chars 9712 - 9939 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) Chars 9943 - 9984 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) Chars 9988 - 10137 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) @@ -279,7 +279,7 @@ Chars 11812 - 11817 [icbn.] 0. secs (0.u,0.s) Chars 11818 - 11831 [step~in~Hinf.] 0. secs (0.u,0.s) Chars 11832 - 11848 [step~in~Hforall.] 0. secs (0.u,0.s) Chars 11853 - 11862 [(inv~Hinf).] 0.002 secs (0.002u,0.s) -Chars 11867 - 11879 [(inv~Hforall).] 0.003 secs (0.003u,0.s) +Chars 11867 - 11879 [(inv~Hforall).] 0.004 secs (0.004u,0.s) Chars 11884 - 11885 [-] 0. secs (0.u,0.s) Chars 11886 - 11905 [(rewrite~<-~H~in~H2).] 0. secs (0.u,0.s) Chars 11906 - 11919 [discriminate.] 0. secs (0.u,0.s) @@ -314,7 +314,7 @@ Chars 14119 - 14125 [Proof.] 0. secs (0.u,0.s) Chars 14130 - 14141 [(repeat~red).] 0. secs (0.u,0.s) Chars 14142 - 14149 [(intros).] 0. secs (0.u,0.s) Chars 14150 - 14160 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 14161 - 14191 [(inversion~H0;~auto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 14161 - 14191 [(inversion~H0;~auto~with~itree).] 0. secs (0.u,0.s) Chars 14196 - 14208 [constructor.] 0. secs (0.u,0.s) Chars 14209 - 14221 [now~apply~H.] 0. secs (0.u,0.s) Chars 14226 - 14230 [Qed.] 0.001 secs (0.001u,0.s) @@ -329,12 +329,12 @@ Chars 14581 - 14595 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 14596 - 14601 [icbn.] 0. secs (0.u,0.s) Chars 14606 - 14627 [(pose~proof~Hev~as~Hev').] 0. secs (0.u,0.s) Chars 14628 - 14640 [step~in~Hev.] 0. secs (0.u,0.s) -Chars 14645 - 14695 [(dependent~induction~Heutt;~su...] 0.024 secs (0.024u,0.s) +Chars 14645 - 14695 [(dependent~induction~Heutt;~su...] 0.024 secs (0.023u,0.s) Chars 14700 - 14701 [-] 0. secs (0.u,0.s) -Chars 14702 - 14710 [simpobs.] 0.002 secs (0.001u,0.s) +Chars 14702 - 14710 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14711 - 14727 [auto~with~itree.] 0. secs (0.u,0.s) Chars 14732 - 14733 [-] 0. secs (0.u,0.s) -Chars 14734 - 14742 [simpobs.] 0.002 secs (0.001u,0.s) +Chars 14734 - 14742 [simpobs.] 0.002 secs (0.002u,0.s) Chars 14743 - 14755 [constructor.] 0. secs (0.u,0.s) Chars 14756 - 14774 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 14781 - 14789 [(inv~Hev).] 0. secs (0.u,0.s) @@ -343,7 +343,7 @@ Chars 14797 - 14805 [simpobs.] 0.002 secs (0.002u,0.s) Chars 14806 - 14814 [(inv~Hev).] 0. secs (0.u,0.s) Chars 14820 - 14821 [-] 0. secs (0.u,0.s) Chars 14822 - 14830 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14831 - 14839 [(inv~Hev).] 0.009 secs (0.009u,0.s) +Chars 14831 - 14839 [(inv~Hev).] 0.009 secs (0.008u,0.s) Chars 14846 - 14882 [(eapply~IHHeutt;~try~apply~H0;...] 0.001 secs (0.001u,0.s) Chars 14889 - 14904 [now~step~in~H0.] 0. secs (0.u,0.s) Chars 14910 - 14911 [-] 0. secs (0.u,0.s) @@ -371,7 +371,7 @@ Chars 15444 - 15462 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 15463 - 15470 [(intros).] 0. secs (0.u,0.s) Chars 15475 - 15486 [step~in~H0.] 0. secs (0.u,0.s) Chars 15487 - 15492 [icbn.] 0. secs (0.u,0.s) -Chars 15493 - 15522 [(dependent~induction~H0;~auto).] 0.02 secs (0.019u,0.s) +Chars 15493 - 15522 [(dependent~induction~H0;~auto).] 0.019 secs (0.019u,0.s) Chars 15527 - 15528 [-] 0. secs (0.u,0.s) Chars 15529 - 15537 [simpobs.] 0.002 secs (0.002u,0.s) Chars 15538 - 15543 [eret.] 0. secs (0.u,0.s) @@ -397,19 +397,19 @@ Chars 15825 - 15841 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 15848 - 15866 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 15872 - 15873 [-] 0. secs (0.u,0.s) Chars 15874 - 15882 [exfalso.] 0. secs (0.u,0.s) -Chars 15883 - 15902 [(step~in~H;~simpobs).] 0.002 secs (0.001u,0.s) +Chars 15883 - 15902 [(step~in~H;~simpobs).] 0.002 secs (0.002u,0.s) Chars 15903 - 15909 [(inv~H).] 0. secs (0.u,0.s) Chars 15914 - 15915 [-] 0. secs (0.u,0.s) Chars 15916 - 15924 [simpobs.] 0.001 secs (0.001u,0.s) Chars 15925 - 15937 [constructor.] 0. secs (0.u,0.s) Chars 15944 - 15977 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) Chars 15978 - 15986 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15994 - 16001 [(sinv~H).] 0.019 secs (0.018u,0.s) +Chars 15994 - 16001 [(sinv~H).] 0.017 secs (0.017u,0.s) Chars 16009 - 16010 [+] 0. secs (0.u,0.s) Chars 16011 - 16025 [(simpobs;~easy).] 0.003 secs (0.003u,0.s) Chars 16034 - 16035 [+] 0. secs (0.u,0.s) -Chars 16036 - 16058 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 16059 - 16079 [(rewrite~<-~tau_eutt).] 0.002 secs (0.001u,0.s) +Chars 16036 - 16058 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16059 - 16079 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 16080 - 16085 [step.] 0. secs (0.u,0.s) Chars 16093 - 16110 [(rewrite~x,~<-~H1).] 0. secs (0.u,0.s) Chars 16111 - 16127 [now~constructor.] 0. secs (0.u,0.s) @@ -417,13 +417,13 @@ Chars 16133 - 16134 [-] 0. secs (0.u,0.s) Chars 16135 - 16143 [simpobs.] 0.001 secs (0.001u,0.s) Chars 16144 - 16156 [constructor.] 0. secs (0.u,0.s) Chars 16157 - 16179 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 16182 - 16186 [Qed.] 0.017 secs (0.017u,0.s) +Chars 16182 - 16186 [Qed.] 0.016 secs (0.016u,0.s) Chars 16190 - 16303 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) Chars 16306 - 16312 [Proof.] 0. secs (0.u,0.s) Chars 16317 - 16326 [(intros~R).] 0. secs (0.u,0.s) Chars 16327 - 16345 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 16346 - 16353 [(intros).] 0. secs (0.u,0.s) -Chars 16360 - 16367 [(sinv~H).] 0.032 secs (0.032u,0.s) +Chars 16360 - 16367 [(sinv~H).] 0.031 secs (0.031u,0.s) Chars 16372 - 16373 [-] 0. secs (0.u,0.s) Chars 16374 - 16405 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) Chars 16406 - 16414 [simpobs.] 0. secs (0.u,0.s) @@ -436,7 +436,7 @@ Chars 16477 - 16487 [(red~in~H0).] 0. secs (0.u,0.s) Chars 16488 - 16516 [(step~in~H0;~simpobs;~inv~H0).] 0.013 secs (0.013u,0.s) Chars 16524 - 16536 [constructor.] 0. secs (0.u,0.s) Chars 16543 - 16559 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 16563 - 16567 [Qed.] 0.009 secs (0.008u,0.s) +Chars 16563 - 16567 [Qed.] 0.008 secs (0.008u,0.s) Chars 16571 - 16689 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) Chars 16692 - 16698 [Proof.] 0. secs (0.u,0.s) Chars 16703 - 16716 [(intros~R~t~r).] 0. secs (0.u,0.s) @@ -495,7 +495,7 @@ Chars 18758 - 18773 [(intros~E1~E2~A).] 0. secs (0.u,0.s) Chars 18774 - 18792 [coinduction~c~CIH.] 0. secs (0.u,0.s) Chars 18793 - 18800 [(intros).] 0. secs (0.u,0.s) Chars 18805 - 18810 [icbn.] 0. secs (0.u,0.s) -Chars 18811 - 18818 [(sinv~H).] 0.006 secs (0.006u,0.s) +Chars 18811 - 18818 [(sinv~H).] 0.006 secs (0.005u,0.s) Chars 18823 - 18824 [-] 0. secs (0.u,0.s) Chars 18825 - 18829 [(cbn).] 0. secs (0.u,0.s) Chars 18830 - 18851 [(unfold~remove_events).] 0. secs (0.u,0.s) @@ -530,7 +530,7 @@ Chars 19343 - 19347 [(cbn).] 0. secs (0.u,0.s) Chars 19348 - 19360 [constructor.] 0. secs (0.u,0.s) Chars 19361 - 19371 [(do~2~step).] 0. secs (0.u,0.s) Chars 19372 - 19393 [(apply~eventless_spin).] 0. secs (0.u,0.s) -Chars 19397 - 19401 [Qed.] 0.002 secs (0.001u,0.s) +Chars 19397 - 19401 [Qed.] 0.001 secs (0.001u,0.s) Chars 19405 - 19480 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) Chars 19483 - 19489 [Proof.] 0. secs (0.u,0.s) Chars 19494 - 19503 [(intros~A).] 0. secs (0.u,0.s) @@ -539,7 +539,7 @@ Chars 19523 - 19530 [(intros).] 0. secs (0.u,0.s) Chars 19535 - 19540 [icbn.] 0. secs (0.u,0.s) Chars 19541 - 19579 [(destruct~(observe~d);~auto~wi...] 0. secs (0.u,0.s) Chars 19584 - 19595 [(destruct~e).] 0. secs (0.u,0.s) -Chars 19598 - 19602 [Qed.] 0.001 secs (0.u,0.s) +Chars 19598 - 19602 [Qed.] 0. secs (0.u,0.s) Chars 19606 - 19805 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) Chars 19808 - 19814 [Proof.] 0. secs (0.u,0.s) Chars 19819 - 19841 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) @@ -552,12 +552,12 @@ Chars 19913 - 19939 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) Chars 19945 - 19971 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) Chars 19977 - 20004 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 20005 - 20014 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20020 - 20079 [(induction~H;~intros~t1'~t2'~H...] 0.023 secs (0.022u,0.s) +Chars 20020 - 20079 [(induction~H;~intros~t1'~t2'~H...] 0.022 secs (0.022u,0.s) Chars 20084 - 20085 [-] 0. secs (0.u,0.s) -Chars 20086 - 20109 [(inv~Heqot1;~inv~Heqot2).] 0.006 secs (0.006u,0.s) +Chars 20086 - 20109 [(inv~Heqot1;~inv~Heqot2).] 0.005 secs (0.005u,0.s) Chars 20110 - 20119 [now~step.] 0.001 secs (0.001u,0.s) Chars 20126 - 20127 [-] 0. secs (0.u,0.s) -Chars 20128 - 20155 [(inv~H;~inv~Heqot1;~simpobs).] 0.044 secs (0.043u,0.s) +Chars 20128 - 20155 [(inv~H;~inv~Heqot1;~simpobs).] 0.042 secs (0.041u,0.s) Chars 20163 - 20164 [+] 0. secs (0.u,0.s) Chars 20165 - 20177 [constructor.] 0. secs (0.u,0.s) Chars 20178 - 20197 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) @@ -567,7 +567,7 @@ Chars 20220 - 20239 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) Chars 20246 - 20247 [+] 0. secs (0.u,0.s) Chars 20248 - 20262 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 20268 - 20269 [-] 0. secs (0.u,0.s) -Chars 20270 - 20297 [(inv~H;~inv~Heqot2;~simpobs).] 0.043 secs (0.042u,0.s) +Chars 20270 - 20297 [(inv~H;~inv~Heqot2;~simpobs).] 0.04 secs (0.04u,0.s) Chars 20305 - 20306 [+] 0. secs (0.u,0.s) Chars 20307 - 20319 [constructor.] 0. secs (0.u,0.s) Chars 20320 - 20339 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) @@ -590,7 +590,7 @@ Chars 20822 - 20852 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) Chars 20859 - 20922 [(destruct~(observe~t1);~destru...] 0.004 secs (0.004u,0.s) Chars 20929 - 20941 [constructor.] 0. secs (0.u,0.s) Chars 20942 - 20951 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 20952 - 20966 [(inv~x0;~inv~x).] 0.001 secs (0.001u,0.s) +Chars 20952 - 20966 [(inv~x0;~inv~x).] 0.002 secs (0.002u,0.s) Chars 20972 - 20973 [-] 0. secs (0.u,0.s) Chars 20974 - 21004 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) Chars 21011 - 21096 [(destruct~(observe~t1)~eqn:Heq...] 0.004 secs (0.004u,0.s) @@ -598,7 +598,7 @@ Chars 21103 - 21104 [+] 0. secs (0.u,0.s) Chars 21105 - 21114 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 21115 - 21127 [constructor.] 0. secs (0.u,0.s) Chars 21136 - 21143 [(inv~x0).] 0.003 secs (0.003u,0.s) -Chars 21144 - 21150 [(inv~x).] 0.003 secs (0.003u,0.s) +Chars 21144 - 21150 [(inv~x).] 0.002 secs (0.002u,0.s) Chars 21151 - 21158 [(intros).] 0. secs (0.u,0.s) Chars 21169 - 21185 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 21194 - 21195 [*] 0. secs (0.u,0.s) @@ -624,7 +624,7 @@ Chars 21516 - 21517 [}] 0. secs (0.u,0.s) Chars 21528 - 21538 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 21539 - 21544 [auto.] 0. secs (0.u,0.s) Chars 21551 - 21552 [+] 0. secs (0.u,0.s) -Chars 21553 - 21563 [(sinv~Hev2).] 0.016 secs (0.015u,0.s) +Chars 21553 - 21563 [(sinv~Hev2).] 0.016 secs (0.016u,0.s) Chars 21572 - 21573 [*] 0. secs (0.u,0.s) Chars 21574 - 21593 [(rewrite~Heq2~in~H0).] 0. secs (0.u,0.s) Chars 21594 - 21607 [discriminate.] 0. secs (0.u,0.s) @@ -632,7 +632,7 @@ Chars 21616 - 21617 [*] 0. secs (0.u,0.s) Chars 21618 - 21636 [(rewrite~Heq2~in~H).] 0. secs (0.u,0.s) Chars 21637 - 21650 [discriminate.] 0. secs (0.u,0.s) Chars 21657 - 21658 [+] 0. secs (0.u,0.s) -Chars 21659 - 21669 [(sinv~Hev1).] 0.014 secs (0.013u,0.s) +Chars 21659 - 21669 [(sinv~Hev1).] 0.014 secs (0.014u,0.s) Chars 21678 - 21679 [*] 0. secs (0.u,0.s) Chars 21680 - 21699 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) Chars 21700 - 21713 [discriminate.] 0. secs (0.u,0.s) @@ -656,7 +656,7 @@ Chars 21977 - 22037 [(destruct~(observe~t1)~eqn:Heq...] 0.002 secs (0.002u,0.s) Chars 22044 - 22045 [+] 0. secs (0.u,0.s) Chars 22046 - 22063 [injection~x~as~x.] 0. secs (0.u,0.s) Chars 22064 - 22076 [constructor.] 0. secs (0.u,0.s) -Chars 22085 - 22105 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 22085 - 22105 [(apply~IHHeutt;~auto).] 0.002 secs (0.001u,0.s) Chars 22114 - 22115 [*] 0. secs (0.u,0.s) Chars 22116 - 22149 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) Chars 22150 - 22169 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) @@ -680,7 +680,7 @@ Chars 22414 - 22434 [(rewrite~Ht1~in~Hev1).] 0.001 secs (0.001u,0.s) Chars 22435 - 22445 [(sinv~Hev1).] 0. secs (0.u,0.s) Chars 22450 - 22451 [-] 0. secs (0.u,0.s) Chars 22452 - 22478 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) -Chars 22479 - 22539 [(destruct~(observe~t2)~eqn:Heq...] 0.002 secs (0.002u,0.s) +Chars 22479 - 22539 [(destruct~(observe~t2)~eqn:Heq...] 0.003 secs (0.003u,0.s) Chars 22546 - 22547 [+] 0. secs (0.u,0.s) Chars 22548 - 22565 [injection~x~as~x.] 0. secs (0.u,0.s) Chars 22566 - 22578 [constructor.] 0. secs (0.u,0.s) @@ -706,7 +706,7 @@ Chars 22852 - 22885 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) Chars 22886 - 22905 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) Chars 22914 - 22934 [(rewrite~Ht2~in~Hev2).] 0.001 secs (0.001u,0.s) Chars 22935 - 22945 [(sinv~Hev2).] 0. secs (0.u,0.s) -Chars 22948 - 22952 [Qed.] 0.045 secs (0.045u,0.s) +Chars 22948 - 22952 [Qed.] 0.044 secs (0.044u,0.s) Chars 22956 - 23265 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) Chars 23268 - 23274 [Proof.] 0. secs (0.u,0.s) Chars 23279 - 23307 [(intros~E1~E2~E3~E4~R1~R2~RR).] 0. secs (0.u,0.s) @@ -789,13 +789,13 @@ Chars 25232 - 25238 [Proof.] 0. secs (0.u,0.s) Chars 25243 - 25257 [(split;~intros).] 0. secs (0.u,0.s) Chars 25262 - 25263 [-] 0. secs (0.u,0.s) Chars 25264 - 25277 [(rewrite~<-~H).] 0.009 secs (0.009u,0.s) -Chars 25278 - 25292 [(rewrite~<-~H0).] 0.01 secs (0.01u,0.s) +Chars 25278 - 25292 [(rewrite~<-~H0).] 0.011 secs (0.01u,0.s) Chars 25293 - 25298 [auto.] 0. secs (0.u,0.s) Chars 25303 - 25304 [-] 0. secs (0.u,0.s) Chars 25305 - 25319 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 25320 - 25335 [symmetry~in~H0.] 0. secs (0.u,0.s) Chars 25342 - 25355 [(rewrite~<-~H).] 0.008 secs (0.008u,0.s) -Chars 25356 - 25370 [(rewrite~<-~H0).] 0.012 secs (0.012u,0.s) +Chars 25356 - 25370 [(rewrite~<-~H0).] 0.012 secs (0.011u,0.s) Chars 25371 - 25376 [auto.] 0. secs (0.u,0.s) Chars 25379 - 25383 [Qed.] 0.002 secs (0.002u,0.s) Chars 25490 - 25882 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) @@ -845,5 +845,5 @@ Chars 28726 - 28739 [ddestruction.] 0. secs (0.u,0.s) Chars 28746 - 28765 [specialize~(H1~tt).] 0. secs (0.u,0.s) Chars 28766 - 28808 [(step~in~H1;~try~apply~all_inf...] 0. secs (0.u,0.s) Chars 28815 - 28822 [(inv~H1).] 0. secs (0.u,0.s) -Chars 28825 - 28829 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28825 - 28829 [Qed.] 0.003 secs (0.003u,0.s) Chars 28831 - 28850 [End~RetBindCounter.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/IterRel.v.timing b/extra/Dijkstra/IterRel.v.timing index ed46bd9a..a471884a 100644 --- a/extra/Dijkstra/IterRel.v.timing +++ b/extra/Dijkstra/IterRel.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.159 secs (0.132u,0.018s) +Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.164 secs (0.133u,0.022s) Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.083 secs (0.073u,0.009s) +Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.083 secs (0.073u,0.01s) Chars 128 - 149 [Create~HintDb~not_wf.] 0. secs (0.u,0.s) Chars 151 - 174 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 282 - 298 [Section~IterRel.] 0. secs (0.u,0.s) @@ -95,7 +95,7 @@ Chars 2855 - 2861 [Proof.] 0. secs (0.u,0.s) Chars 2866 - 2879 [(intros~P~m~a).] 0. secs (0.u,0.s) Chars 2880 - 2909 [(remember~(m~a)~as~ma~eqn:Hma~).] 0. secs (0.u,0.s) Chars 2910 - 2923 [revert~a~Hma.] 0. secs (0.u,0.s) -Chars 2928 - 2980 [(induction~ma~using~lt_wf_ind;...] 0.031 secs (0.028u,0.002s) +Chars 2928 - 2980 [(induction~ma~using~lt_wf_ind;...] 0.031 secs (0.029u,0.002s) Chars 2985 - 3003 [(apply~step;~eauto).] 0. secs (0.u,0.s) Chars 3006 - 3010 [Qed.] 0. secs (0.u,0.s) Chars 3012 - 3024 [End~IterRel.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/PureITreeBasics.v.timing b/extra/Dijkstra/PureITreeBasics.v.timing index e42306b9..2fab28fd 100644 --- a/extra/Dijkstra/PureITreeBasics.v.timing +++ b/extra/Dijkstra/PureITreeBasics.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.22 secs (0.193u,0.026s) +Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.225 secs (0.195u,0.029s) Chars 182 - 196 [Import~Monads.] 0. secs (0.u,0.s) Chars 197 - 218 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 219 - 251 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -12,7 +12,7 @@ Chars 567 - 628 [#[local]~Tactic~Notation~"sinv...] 0. secs (0.u,0.s) Chars 708 - 814 [Lemma~spin_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) Chars 815 - 821 [Proof.] 0. secs (0.u,0.s) Chars 824 - 831 [(intros).] 0. secs (0.u,0.s) -Chars 832 - 844 [coinduction.] 0.003 secs (0.002u,0.001s) +Chars 832 - 844 [coinduction.] 0.002 secs (0.002u,0.s) Chars 845 - 851 [(simpl).] 0. secs (0.u,0.s) Chars 854 - 870 [now~constructor.] 0. secs (0.u,0.s) Chars 871 - 875 [Qed.] 0.004 secs (0.003u,0.001s) @@ -22,12 +22,12 @@ Chars 1437 - 1619 [Lemma~tau_invar_resp_eutt1~:~~...] 0. secs (0.u,0.s) Chars 1622 - 1628 [Proof.] 0. secs (0.u,0.s) Chars 1633 - 1640 [(intros).] 0. secs (0.u,0.s) Chars 1641 - 1658 [(unfold~tau_invar).] 0. secs (0.u,0.s) -Chars 1659 - 1735 [(split;~intros;~eapply~H;~try~...] 0.005 secs (0.003u,0.001s) +Chars 1659 - 1735 [(split;~intros;~eapply~H;~try~...] 0.004 secs (0.003u,0.001s) Chars 1738 - 1742 [Qed.] 0. secs (0.u,0.s) Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0. secs (0.u,0.s) Chars 1899 - 1905 [Proof.] 0. secs (0.u,0.s) Chars 1908 - 1917 [(intros~A).] 0. secs (0.u,0.s) -Chars 1918 - 1930 [coinduction.] 0.032 secs (0.029u,0.002s) +Chars 1918 - 1930 [coinduction.] 0.033 secs (0.03u,0.002s) Chars 1931 - 1938 [(intros).] 0. secs (0.u,0.s) Chars 1939 - 1943 [(cbn).] 0. secs (0.u,0.s) Chars 1946 - 1978 [(destruct~(observe~t)~eqn:Heqt).] 0. secs (0.u,0.s) @@ -74,7 +74,7 @@ Chars 2680 - 2686 [intro.] 0. secs (0.u,0.s) Chars 2687 - 2695 [(apply~H).] 0. secs (0.u,0.s) Chars 2700 - 2722 [(destruct~H0~as~[a~Ha]).] 0. secs (0.u,0.s) Chars 2723 - 2732 [exists~a.] 0. secs (0.u,0.s) -Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0.039 secs (0.039u,0.s) +Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0.04 secs (0.04u,0.s) Chars 2765 - 2784 [(rewrite~Heqt~in~Ht).] 0. secs (0.u,0.s) Chars 2789 - 2800 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) Chars 2801 - 2818 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) @@ -111,17 +111,17 @@ Chars 3702 - 3709 [(intros).] 0. secs (0.u,0.s) Chars 3710 - 3733 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 3734 - 3753 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3754 - 3761 [(intros).] 0. secs (0.u,0.s) -Chars 3762 - 3769 [sinv~H.] 0.025 secs (0.024u,0.s) +Chars 3762 - 3769 [sinv~H.] 0.028 secs (0.025u,0.002s) Chars 3773 - 3774 [-] 0. secs (0.u,0.s) Chars 3775 - 3780 [taul.] 0. secs (0.u,0.s) Chars 3821 - 3848 [(remember~(observe~(Ret~a))).] 0.001 secs (0.001u,0.s) -Chars 3853 - 3877 [(induction~REL;~try~easy).] 0.081 secs (0.058u,0.s) +Chars 3853 - 3877 [(induction~REL;~try~easy).] 0.053 secs (0.053u,0.s) Chars 3883 - 3884 [+] 0. secs (0.u,0.s) Chars 3885 - 3890 [eret.] 0. secs (0.u,0.s) Chars 3896 - 3897 [+] 0. secs (0.u,0.s) Chars 3898 - 3903 [taul.] 0. secs (0.u,0.s) Chars 3904 - 3920 [now~apply~IHREL.] 0. secs (0.u,0.s) -Chars 3923 - 3927 [Qed.] 0.012 secs (0.012u,0.s) +Chars 3923 - 3927 [Qed.] 0.012 secs (0.011u,0.s) Chars 3929 - 4012 [Lemma~unfold_spin~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4013 - 4019 [Proof.] 0. secs (0.u,0.s) Chars 4022 - 4029 [(intros).] 0. secs (0.u,0.s) @@ -145,7 +145,7 @@ Chars 4389 - 4390 [-] 0. secs (0.u,0.s) Chars 4391 - 4401 [(apply~IHn).] 0. secs (0.u,0.s) Chars 4402 - 4433 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) Chars 4434 - 4452 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) -Chars 4453 - 4469 [(rewrite~Ht~in~H).] 0.015 secs (0.015u,0.s) -Chars 4474 - 4496 [(rewrite~tau_eutt~in~H).] 0.015 secs (0.015u,0.s) +Chars 4453 - 4469 [(rewrite~Ht~in~H).] 0.016 secs (0.015u,0.s) +Chars 4474 - 4496 [(rewrite~tau_eutt~in~H).] 0.017 secs (0.016u,0.s) Chars 4497 - 4502 [auto.] 0. secs (0.u,0.s) Chars 4503 - 4507 [Qed.] 0.002 secs (0.002u,0.s) diff --git a/extra/Dijkstra/PureITreeDijkstra.v.timing b/extra/Dijkstra/PureITreeDijkstra.v.timing new file mode 100644 index 00000000..879377c8 --- /dev/null +++ b/extra/Dijkstra/PureITreeDijkstra.v.timing @@ -0,0 +1,571 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 39 - 88 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 90 - 180 [From~ITree~Require~Import~Inde...] 0.221 secs (0.192u,0.028s) +Chars 182 - 272 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.001u,0.s) +Chars 274 - 288 [Import~Monads.] 0. secs (0.u,0.s) +Chars 289 - 310 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 311 - 343 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 345 - 363 [Section~PureITree.] 0. secs (0.u,0.s) +Chars 367 - 407 [Definition~PureITree~A~:=~itre...] 0. secs (0.u,0.s) +Chars 572 - 659 [Definition~_PureITreeSpec~A~:=...] 0. secs (0.u,0.s) +Chars 719 - 943 [Definition~monotonici~A~(w~:~_...] 0. secs (0.u,0.s) +Chars 970 - 1116 [Definition~dmonot~A~(w~:~_Pure...] 0. secs (0.u,0.s) +Chars 1206 - 1293 [Lemma~monot_imp_dmonot~:~~~for...] 0. secs (0.u,0.s) +Chars 1296 - 1302 [Proof.] 0. secs (0.u,0.s) +Chars 1307 - 1333 [(unfold~monotonici,~dmonot).] 0. secs (0.u,0.s) +Chars 1334 - 1341 [(intros).] 0. secs (0.u,0.s) +Chars 1342 - 1348 [split.] 0. secs (0.u,0.s) +Chars 1353 - 1354 [-] 0. secs (0.u,0.s) +Chars 1355 - 1369 [(apply~H;~auto).] 0. secs (0.u,0.s) +Chars 1370 - 1377 [(intros).] 0. secs (0.u,0.s) +Chars 1378 - 1387 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1388 - 1393 [auto.] 0. secs (0.u,0.s) +Chars 1398 - 1399 [-] 0. secs (0.u,0.s) +Chars 1400 - 1414 [(apply~H;~auto).] 0. secs (0.u,0.s) +Chars 1415 - 1422 [(intros).] 0. secs (0.u,0.s) +Chars 1423 - 1432 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1433 - 1438 [auto.] 0. secs (0.u,0.s) +Chars 1441 - 1445 [Qed.] 0. secs (0.u,0.s) +Chars 1493 - 1635 [Definition~amonot~A~(w~:~_Pure...] 0. secs (0.u,0.s) +Chars 1650 - 1720 [Definition~PureITreeSpec~A~:=~...] 0. secs (0.u,0.s) +Chars 1780 - 1849 [Definition~_div_spec~A~:~_Pure...] 0. secs (0.u,0.s) +Chars 1853 - 1913 [Lemma~div_spec_monot~:~forall~...] 0. secs (0.u,0.s) +Chars 1918 - 1924 [Proof.] 0. secs (0.u,0.s) +Chars 1931 - 1960 [(unfold~monotonici,~_div_spec).] 0. secs (0.u,0.s) +Chars 1961 - 1966 [auto.] 0. secs (0.u,0.s) +Chars 1971 - 1975 [Qed.] 0. secs (0.u,0.s) +Chars 1979 - 2037 [Lemma~div_spec_amonot~:~forall...] 0. secs (0.u,0.s) +Chars 2040 - 2046 [Proof.] 0. secs (0.u,0.s) +Chars 2051 - 2076 [(unfold~amonot,~_div_spec).] 0. secs (0.u,0.s) +Chars 2077 - 2084 [(intros).] 0. secs (0.u,0.s) +Chars 2085 - 2090 [auto.] 0. secs (0.u,0.s) +Chars 2093 - 2099 [Abort.] 0. secs (0.u,0.s) +Chars 2102 - 2168 [Definition~div_spec~A~:=~exist...] 0. secs (0.u,0.s) +Chars 2278 - 2349 [Definition~_retpi~A~(a~:~A)~:~...] 0. secs (0.u,0.s) +Chars 2353 - 2417 [Lemma~retpi_monot~:~forall~A~(...] 0. secs (0.u,0.s) +Chars 2420 - 2426 [Proof.] 0. secs (0.u,0.s) +Chars 2431 - 2449 [(unfold~monotonici).] 0. secs (0.u,0.s) +Chars 2450 - 2460 [intuition.] 0.005 secs (0.003u,0.001s) +Chars 2461 - 2480 [(unfold~_retpi~in~*).] 0. secs (0.u,0.s) +Chars 2481 - 2486 [auto.] 0. secs (0.u,0.s) +Chars 2489 - 2493 [Qed.] 0. secs (0.u,0.s) +Chars 2497 - 2560 [Lemma~retpi_amonot~:~forall~A~...] 0. secs (0.u,0.s) +Chars 2563 - 2569 [Proof.] 0. secs (0.u,0.s) +Chars 2574 - 2596 [(unfold~amonot,~_retpi).] 0. secs (0.u,0.s) +Chars 2597 - 2604 [(intros).] 0. secs (0.u,0.s) +Chars 2609 - 2615 [Abort.] 0. secs (0.u,0.s) +Chars 2690 - 3003 [Lemma~bind_pred_resp_eutt~:~~~...] 0.001 secs (0.u,0.s) +Chars 3006 - 3012 [Proof.] 0. secs (0.u,0.s) +Chars 3017 - 3024 [(intros).] 0. secs (0.u,0.s) +Chars 3025 - 3044 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 3045 - 3066 [setoid_rewrite~Heutt.] 0.035 secs (0.031u,0.004s) +Chars 3067 - 3079 [reflexivity.] 0. secs (0.u,0.s) +Chars 3082 - 3086 [Qed.] 0. secs (0.u,0.s) +Chars 3301 - 3642 [Definition~_bindpi~A~B~(w~:~_P...] 0.001 secs (0.001u,0.s) +Chars 3646 - 3819 [Lemma~bindpi_monot~:~~~forall~...] 0. secs (0.u,0.s) +Chars 3822 - 3828 [Proof.] 0. secs (0.u,0.s) +Chars 3833 - 3851 [(unfold~monotonici).] 0. secs (0.u,0.s) +Chars 3852 - 3859 [(intros).] 0. secs (0.u,0.s) +Chars 3860 - 3880 [(unfold~_bindpi~in~*).] 0. secs (0.u,0.s) +Chars 3885 - 4012 [(set~~~(fp~:=~~~~fun~(t~:~itre...] 0. secs (0.u,0.s) +Chars 4017 - 4061 [(enough~(forall~t,~fp~t~p~Hp~-...] 0. secs (0.u,0.s) +Chars 4066 - 4067 [-] 0. secs (0.u,0.s) +Chars 4068 - 4108 [(eapply~H~with~(p~:=~fun~t~=>~...] 0. secs (0.u,0.s) +Chars 4115 - 4116 [+] 0. secs (0.u,0.s) +Chars 4117 - 4124 [(intros).] 0. secs (0.u,0.s) +Chars 4126 - 4141 [(apply~H3~in~H4).] 0. secs (0.u,0.s) +Chars 4150 - 4166 [(unfold~fp~in~H4).] 0. secs (0.u,0.s) +Chars 4167 - 4185 [(destruct~H4;~auto).] 0.001 secs (0.001u,0.s) +Chars 4194 - 4206 [(destruct~H4).] 0. secs (0.u,0.s) +Chars 4207 - 4213 [right.] 0. secs (0.u,0.s) +Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) +Chars 4226 - 4227 [+] 0. secs (0.u,0.s) +Chars 4228 - 4237 [(apply~H2).] 0. secs (0.u,0.s) +Chars 4242 - 4243 [-] 0. secs (0.u,0.s) +Chars 4244 - 4254 [(unfold~fp).] 0. secs (0.u,0.s) +Chars 4255 - 4262 [(intros).] 0. secs (0.u,0.s) +Chars 4263 - 4281 [(destruct~H3;~auto).] 0. secs (0.u,0.s) +Chars 4282 - 4287 [left.] 0. secs (0.u,0.s) +Chars 4294 - 4301 [(intros).] 0. secs (0.u,0.s) +Chars 4302 - 4334 [(destruct~H3~as~[a~[Hvala~Hfa]]).] 0. secs (0.u,0.s) +Chars 4341 - 4350 [exists~a.] 0. secs (0.u,0.s) +Chars 4351 - 4363 [(split;~auto).] 0. secs (0.u,0.s) +Chars 4370 - 4393 [(eapply~H0;~[~eauto~|~~]).] 0. secs (0.u,0.s) +Chars 4400 - 4427 [(revert~Hfa;~apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 4430 - 4434 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4503 - 4594 [Definition~retpi~A~(a~:~A)~:~P...] 0. secs (0.u,0.s) +Chars 4664 - 4922 [Definition~bindpi~A~B~(w~:~Pur...] 0. secs (0.u,0.s) +Chars 4926 - 5078 [Lemma~inf_tree_pred_resp_eutt~...] 0. secs (0.u,0.s) +Chars 5081 - 5087 [Proof.] 0. secs (0.u,0.s) +Chars 5092 - 5099 [(intros).] 0. secs (0.u,0.s) +Chars 5100 - 5119 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 5120 - 5134 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 5135 - 5147 [reflexivity.] 0. secs (0.u,0.s) +Chars 5150 - 5154 [Qed.] 0. secs (0.u,0.s) +Chars 5158 - 5322 [Lemma~term_b_pred_resp_eutt~:~...] 0. secs (0.u,0.s) +Chars 5325 - 5331 [Proof.] 0. secs (0.u,0.s) +Chars 5336 - 5343 [(intros).] 0. secs (0.u,0.s) +Chars 5344 - 5363 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 5364 - 5378 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5383 - 5384 [-] 0. secs (0.u,0.s) +Chars 5385 - 5396 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5397 - 5406 [exists~x.] 0. secs (0.u,0.s) +Chars 5407 - 5424 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5425 - 5430 [auto.] 0. secs (0.u,0.s) +Chars 5435 - 5436 [-] 0. secs (0.u,0.s) +Chars 5437 - 5448 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5449 - 5458 [exists~x.] 0. secs (0.u,0.s) +Chars 5459 - 5473 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5474 - 5479 [auto.] 0. secs (0.u,0.s) +Chars 5482 - 5486 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5490 - 5679 [Lemma~cont_a_pred_resp_eutt~:~...] 0. secs (0.u,0.s) +Chars 5682 - 5688 [Proof.] 0. secs (0.u,0.s) +Chars 5693 - 5700 [(intros).] 0. secs (0.u,0.s) +Chars 5701 - 5720 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 5721 - 5735 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5740 - 5741 [-] 0. secs (0.u,0.s) +Chars 5742 - 5753 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5754 - 5763 [exists~x.] 0. secs (0.u,0.s) +Chars 5764 - 5781 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5782 - 5787 [auto.] 0. secs (0.u,0.s) +Chars 5792 - 5793 [-] 0. secs (0.u,0.s) +Chars 5794 - 5805 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5806 - 5815 [exists~x.] 0. secs (0.u,0.s) +Chars 5816 - 5830 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5831 - 5836 [auto.] 0. secs (0.u,0.s) +Chars 5839 - 5843 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5847 - 5979 [Lemma~resp_eutt_or~:~~~forall~...] 0. secs (0.u,0.s) +Chars 5982 - 5988 [Proof.] 0. secs (0.u,0.s) +Chars 5993 - 6000 [(intros).] 0. secs (0.u,0.s) +Chars 6001 - 6017 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 6018 - 6032 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6037 - 6038 [-] 0. secs (0.u,0.s) +Chars 6039 - 6052 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 6059 - 6060 [+] 0. secs (0.u,0.s) +Chars 6061 - 6066 [left.] 0. secs (0.u,0.s) +Chars 6067 - 6083 [(eapply~H;~eauto).] 0.039 secs (0.039u,0.s) +Chars 6084 - 6102 [now~rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) +Chars 6110 - 6111 [+] 0. secs (0.u,0.s) +Chars 6112 - 6118 [right.] 0. secs (0.u,0.s) +Chars 6119 - 6136 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 6137 - 6155 [now~rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) +Chars 6161 - 6162 [-] 0. secs (0.u,0.s) +Chars 6163 - 6175 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 6182 - 6183 [+] 0. secs (0.u,0.s) +Chars 6184 - 6189 [left.] 0. secs (0.u,0.s) +Chars 6190 - 6206 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 6213 - 6214 [+] 0. secs (0.u,0.s) +Chars 6215 - 6221 [right.] 0. secs (0.u,0.s) +Chars 6222 - 6239 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 6242 - 6246 [Qed.] 0. secs (0.u,0.s) +Chars 6250 - 6598 [Definition~iterF_body'~{A~B~:~...] 0.001 secs (0.001u,0.s) +Chars 6602 - 6950 [Variant~iterF_body~{A~B~:~Type...] 0.001 secs (0.001u,0.s) +Chars 6953 - 7147 [Lemma~iterF_body_equiv~:~~~for...] 0. secs (0.u,0.s) +Chars 7151 - 7157 [Proof.] 0. secs (0.u,0.s) +Chars 7163 - 7183 [(split;~intros;~auto).] 0. secs (0.u,0.s) +Chars 7187 - 7191 [Qed.] 0. secs (0.u,0.s) +Chars 7193 - 7230 [Hint~Constructors~iterF_body:~...] 0. secs (0.u,0.s) +Chars 7234 - 7397 [Lemma~iterF_body'_resp_eutt~:~...] 0. secs (0.u,0.s) +Chars 7400 - 7406 [Proof.] 0. secs (0.u,0.s) +Chars 7411 - 7418 [(intros).] 0. secs (0.u,0.s) +Chars 7419 - 7472 [(eapply~resp_eutt_or;~try~eapp...] 0. secs (0.u,0.s) +Chars 7477 - 7478 [-] 0. secs (0.u,0.s) +Chars 7479 - 7509 [(apply~inf_tree_pred_resp_eutt).] 0. secs (0.u,0.s) +Chars 7514 - 7515 [-] 0. secs (0.u,0.s) +Chars 7516 - 7544 [(apply~term_b_pred_resp_eutt).] 0. secs (0.u,0.s) +Chars 7549 - 7550 [-] 0. secs (0.u,0.s) +Chars 7551 - 7579 [(apply~cont_a_pred_resp_eutt).] 0. secs (0.u,0.s) +Chars 7582 - 7586 [Qed.] 0. secs (0.u,0.s) +Chars 7590 - 7751 [Lemma~iterF_body_resp_eutt~:~~...] 0. secs (0.u,0.s) +Chars 7754 - 7760 [Proof.] 0. secs (0.u,0.s) +Chars 7765 - 7772 [(intros).] 0. secs (0.u,0.s) +Chars 7773 - 7792 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) +Chars 7793 - 7833 [(split;~intros;~inversion~H;~s...] 0. secs (0.u,0.s) +Chars 7838 - 7839 [-] 0. secs (0.u,0.s) +Chars 7840 - 7860 [(apply~inf_tau;~auto).] 0. secs (0.u,0.s) +Chars 7861 - 7881 [(rewrite~Heutt~in~Ht).] 0.001 secs (0.001u,0.s) +Chars 7882 - 7887 [auto.] 0. secs (0.u,0.s) +Chars 7892 - 7893 [-] 0. secs (0.u,0.s) +Chars 7894 - 7915 [(eapply~term_b;~eauto).] 0.002 secs (0.002u,0.s) +Chars 7916 - 7930 [(rewrite~Hretb).] 0.001 secs (0.001u,0.s) +Chars 7931 - 7936 [auto.] 0. secs (0.u,0.s) +Chars 7941 - 7942 [-] 0. secs (0.u,0.s) +Chars 7943 - 7964 [(eapply~cont_a;~eauto).] 0.002 secs (0.002u,0.s) +Chars 7965 - 7979 [(rewrite~Hreta).] 0.001 secs (0.001u,0.s) +Chars 7980 - 7985 [auto.] 0. secs (0.u,0.s) +Chars 7990 - 7991 [-] 0. secs (0.u,0.s) +Chars 7992 - 8012 [(apply~inf_tau;~auto).] 0. secs (0.u,0.s) +Chars 8013 - 8027 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 8028 - 8033 [auto.] 0. secs (0.u,0.s) +Chars 8038 - 8039 [-] 0. secs (0.u,0.s) +Chars 8040 - 8061 [(eapply~term_b;~eauto).] 0.004 secs (0.004u,0.s) +Chars 8062 - 8076 [(rewrite~Hretb).] 0.001 secs (0.001u,0.s) +Chars 8077 - 8086 [symmetry.] 0. secs (0.u,0.s) +Chars 8087 - 8092 [auto.] 0. secs (0.u,0.s) +Chars 8097 - 8098 [-] 0. secs (0.u,0.s) +Chars 8099 - 8120 [(eapply~cont_a;~eauto).] 0.002 secs (0.002u,0.s) +Chars 8121 - 8135 [(rewrite~Hreta).] 0. secs (0.u,0.s) +Chars 8136 - 8145 [symmetry.] 0. secs (0.u,0.s) +Chars 8146 - 8151 [auto.] 0. secs (0.u,0.s) +Chars 8154 - 8158 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8162 - 8430 [Variant~iterF~{A~B~:~Type}~(bo...] 0.001 secs (0.001u,0.s) +Chars 9170 - 9202 [Hint~Constructors~iterF:~itree.] 0. secs (0.u,0.s) +Chars 9206 - 9312 [Definition~iter_~{A}~{B}~sim~(...] 0. secs (0.u,0.s) +Chars 9315 - 9341 [Hint~Unfold~iter_:~itree.] 0. secs (0.u,0.s) +Chars 9345 - 9446 [Lemma~iter_mono~{A}~{B}~body~p...] 0. secs (0.u,0.s) +Chars 9449 - 9455 [Proof.] 0. secs (0.u,0.s) +Chars 9460 - 9471 [(repeat~red).] 0. secs (0.u,0.s) +Chars 9472 - 9479 [(intros).] 0. secs (0.u,0.s) +Chars 9485 - 9517 [(induction~H0;~constructor;~au...] 0. secs (0.u,0.s) +Chars 9522 - 9562 [(destruct~(body~a)~as~[fa~Hfa]...] 0. secs (0.u,0.s) +Chars 9563 - 9574 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 9579 - 9605 [refine~(Hfa~_~_~_~_~_~H0).] 0. secs (0.u,0.s) +Chars 9606 - 9613 [(intros).] 0. secs (0.u,0.s) +Chars 9614 - 9645 [(inversion~H1;~eauto~with~itree).] 0.011 secs (0.01u,0.s) +Chars 9650 - 9671 [(eapply~cont_a;~eauto).] 0. secs (0.u,0.s) +Chars 9672 - 9684 [now~apply~H.] 0. secs (0.u,0.s) +Chars 9686 - 9690 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9694 - 9770 [Definition~iter_mon~{A}~{B}~bo...] 0. secs (0.u,0.s) +Chars 9776 - 9939 [Definition~_iter~{A}~{B}~:=~~~...] 0. secs (0.u,0.s) +Chars 10047 - 10175 [Lemma~iter_monot~:~~~forall~A~...] 0. secs (0.u,0.s) +Chars 10180 - 10186 [Proof.] 0. secs (0.u,0.s) +Chars 10193 - 10211 [(unfold~monotonici).] 0. secs (0.u,0.s) +Chars 10212 - 10219 [(intros).] 0. secs (0.u,0.s) +Chars 10220 - 10243 [generalize~dependent~a.] 0. secs (0.u,0.s) +Chars 10250 - 10276 [(coinduction~c~CIH;~intros).] 0. secs (0.u,0.s) +Chars 10277 - 10288 [step~in~H0.] 0. secs (0.u,0.s) +Chars 10295 - 10302 [(inv~H0).] 0.001 secs (0.001u,0.s) +Chars 10310 - 10322 [constructor.] 0. secs (0.u,0.s) +Chars 10323 - 10360 [(destruct~(f~a)~as~[fa~Hfa]~eq...] 0. secs (0.u,0.s) +Chars 10361 - 10372 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 10379 - 10405 [refine~(Hfa~_~_~_~_~_~H1).] 0. secs (0.u,0.s) +Chars 10406 - 10415 [(intros~t).] 0. secs (0.u,0.s) +Chars 10416 - 10423 [(intros).] 0. secs (0.u,0.s) +Chars 10424 - 10449 [(inv~H0;~eauto~with~itree).] 0.008 secs (0.008u,0.s) +Chars 10455 - 10459 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10463 - 10612 [Definition~iterp~{A}~{B}~(body...] 0. secs (0.u,0.s) +Chars 10740 - 10912 [#[global]~Instance~PureITreeSp...] 0. secs (0.u,0.s) +Chars 10916 - 11032 [#[global]~Instance~PureItreeSp...] 0. secs (0.u,0.s) +Chars 11059 - 11164 [Lemma~retpi_bindpi~:~~~forall~...] 0. secs (0.u,0.s) +Chars 11167 - 11173 [Proof.] 0. secs (0.u,0.s) +Chars 11178 - 11185 [(intros).] 0. secs (0.u,0.s) +Chars 11186 - 11192 [split.] 0. secs (0.u,0.s) +Chars 11197 - 11198 [-] 0. secs (0.u,0.s) +Chars 11199 - 11203 [(cbn).] 0. secs (0.u,0.s) +Chars 11204 - 11219 [(unfold~_bindpi).] 0. secs (0.u,0.s) +Chars 11220 - 11234 [(unfold~_retpi).] 0. secs (0.u,0.s) +Chars 11235 - 11242 [(intros).] 0. secs (0.u,0.s) +Chars 11249 - 11260 [(destruct~H).] 0. secs (0.u,0.s) +Chars 11267 - 11268 [+] 0. secs (0.u,0.s) +Chars 11269 - 11303 [(destruct~H~as~[a0~[Hvala0~Hfa...] 0. secs (0.u,0.s) +Chars 11312 - 11341 [(apply~eutt_inv_Ret~in~Hvala0).] 0. secs (0.u,0.s) +Chars 11342 - 11348 [subst.] 0. secs (0.u,0.s) +Chars 11349 - 11354 [auto.] 0. secs (0.u,0.s) +Chars 11361 - 11362 [+] 0. secs (0.u,0.s) +Chars 11363 - 11371 [exfalso.] 0. secs (0.u,0.s) +Chars 11372 - 11383 [(destruct~H).] 0. secs (0.u,0.s) +Chars 11384 - 11403 [(eapply~ret_not_div).] 0. secs (0.u,0.s) +Chars 11404 - 11410 [eauto.] 0. secs (0.u,0.s) +Chars 11415 - 11416 [-] 0. secs (0.u,0.s) +Chars 11417 - 11423 [(simpl).] 0. secs (0.u,0.s) +Chars 11424 - 11461 [(destruct~(f~a)~as~[fa~Hfa]~eq...] 0. secs (0.u,0.s) +Chars 11462 - 11468 [(simpl).] 0. secs (0.u,0.s) +Chars 11469 - 11476 [(intros).] 0. secs (0.u,0.s) +Chars 11483 - 11488 [left.] 0. secs (0.u,0.s) +Chars 11489 - 11498 [exists~a.] 0. secs (0.u,0.s) +Chars 11499 - 11505 [split.] 0. secs (0.u,0.s) +Chars 11512 - 11513 [+] 0. secs (0.u,0.s) +Chars 11514 - 11526 [reflexivity.] 0. secs (0.u,0.s) +Chars 11533 - 11534 [+] 0. secs (0.u,0.s) +Chars 11535 - 11547 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11549 - 11554 [auto.] 0. secs (0.u,0.s) +Chars 11557 - 11561 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11565 - 11656 [Lemma~bindpi_retpi~:~~~forall~...] 0. secs (0.u,0.s) +Chars 11659 - 11665 [Proof.] 0. secs (0.u,0.s) +Chars 11670 - 11677 [(intros).] 0. secs (0.u,0.s) +Chars 11678 - 11700 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 11701 - 11707 [split.] 0. secs (0.u,0.s) +Chars 11712 - 11713 [-] 0. secs (0.u,0.s) +Chars 11714 - 11721 [(intros).] 0. secs (0.u,0.s) +Chars 11722 - 11733 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 11734 - 11754 [(unfold~_bindpi~in~H).] 0. secs (0.u,0.s) +Chars 11761 - 11780 [(unfold~_retpi~in~H).] 0. secs (0.u,0.s) +Chars 11781 - 11792 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 11799 - 11823 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) +Chars 11830 - 11837 [(intros).] 0. secs (0.u,0.s) +Chars 11838 - 11850 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 11857 - 11858 [+] 0. secs (0.u,0.s) +Chars 11859 - 11893 [(destruct~H0~as~[a~[Hvala~Hpa]]).] 0. secs (0.u,0.s) +Chars 11902 - 11919 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 11920 - 11941 [now~rewrite~<-~Hvala.] 0.001 secs (0.001u,0.s) +Chars 11949 - 11950 [+] 0. secs (0.u,0.s) +Chars 11951 - 11963 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 11964 - 11990 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 11991 - 12008 [(eapply~Hp;~eauto).] 0. secs (0.u,0.s) +Chars 12013 - 12014 [-] 0. secs (0.u,0.s) +Chars 12015 - 12021 [(simpl).] 0. secs (0.u,0.s) +Chars 12022 - 12029 [(intros).] 0. secs (0.u,0.s) +Chars 12030 - 12045 [(unfold~_bindpi).] 0. secs (0.u,0.s) +Chars 12052 - 12076 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) +Chars 12077 - 12084 [(intros).] 0. secs (0.u,0.s) +Chars 12085 - 12099 [(unfold~_retpi).] 0. secs (0.u,0.s) +Chars 12106 - 12146 [specialize~(eutt_reta_or_div~i...] 0. secs (0.u,0.s) +Chars 12147 - 12160 [(destruct~Hor).] 0. secs (0.u,0.s) +Chars 12167 - 12168 [+] 0. secs (0.u,0.s) +Chars 12169 - 12191 [(destruct~H1~as~[a~Ha]).] 0. secs (0.u,0.s) +Chars 12192 - 12197 [left.] 0.001 secs (0.001u,0.s) +Chars 12198 - 12207 [exists~a.] 0. secs (0.u,0.s) +Chars 12208 - 12220 [(split;~auto).] 0. secs (0.u,0.s) +Chars 12221 - 12238 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 12245 - 12246 [+] 0. secs (0.u,0.s) +Chars 12247 - 12253 [right.] 0. secs (0.u,0.s) +Chars 12254 - 12266 [(split;~auto).] 0. secs (0.u,0.s) +Chars 12267 - 12303 [specialize~(div_spin_eutt~H1)~...] 0. secs (0.u,0.s) +Chars 12304 - 12319 [symmetry~in~H2.] 0. secs (0.u,0.s) +Chars 12320 - 12337 [(eapply~Hp;~eauto).] 0. secs (0.u,0.s) +Chars 12341 - 12345 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12349 - 12568 [Lemma~bindpi_bindpi~:~~~forall...] 0. secs (0.u,0.s) +Chars 12571 - 12577 [Proof.] 0. secs (0.u,0.s) +Chars 12582 - 12589 [(intros).] 0. secs (0.u,0.s) +Chars 12590 - 12611 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 12612 - 12618 [(simpl).] 0. secs (0.u,0.s) +Chars 12619 - 12633 [(split;~intros).] 0. secs (0.u,0.s) +Chars 12638 - 12639 [-] 0. secs (0.u,0.s) +Chars 12640 - 12651 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 12652 - 12676 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) +Chars 12677 - 12687 [(intros~t0).] 0. secs (0.u,0.s) +Chars 12688 - 12695 [(intros).] 0. secs (0.u,0.s) +Chars 12696 - 12708 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 12715 - 12716 [+] 0. secs (0.u,0.s) +Chars 12717 - 12748 [(destruct~H0~as~[a~[Hreta~Hfa]]).] 0. secs (0.u,0.s) +Chars 12757 - 12762 [left.] 0. secs (0.u,0.s) +Chars 12763 - 12772 [exists~a.] 0. secs (0.u,0.s) +Chars 12773 - 12785 [(split;~auto).] 0. secs (0.u,0.s) +Chars 12786 - 12815 [(destruct~(f~a)~as~[wfa~Hwfa]).] 0. secs (0.u,0.s) +Chars 12816 - 12827 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 12836 - 12864 [refine~(Hwfa~_~_~_~_~_~Hfa).] 0. secs (0.u,0.s) +Chars 12865 - 12875 [(intros~t1).] 0. secs (0.u,0.s) +Chars 12876 - 12883 [(intros).] 0. secs (0.u,0.s) +Chars 12884 - 12902 [(destruct~H0;~auto).] 0.001 secs (0.001u,0.s) +Chars 12909 - 12910 [+] 0. secs (0.u,0.s) +Chars 12911 - 12923 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 12924 - 12936 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 12945 - 12946 [*] 0. secs (0.u,0.s) +Chars 12947 - 12981 [(destruct~H1~as~[b~[Hretb~Hgb]]).] 0. secs (0.u,0.s) +Chars 12982 - 12990 [exfalso.] 0. secs (0.u,0.s) +Chars 12991 - 13036 [specialize~(@ret_not_div~B~voi...] 0. secs (0.u,0.s) +Chars 13047 - 13070 [(rewrite~Hretb~in~Hndiv).] 0.001 secs (0.001u,0.s) +Chars 13071 - 13083 [(apply~Hndiv).] 0. secs (0.u,0.s) +Chars 13084 - 13104 [(apply~spin_infinite).] 0. secs (0.u,0.s) +Chars 13113 - 13114 [*] 0. secs (0.u,0.s) +Chars 13116 - 13122 [right.] 0. secs (0.u,0.s) +Chars 13123 - 13135 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 13136 - 13141 [auto.] 0. secs (0.u,0.s) +Chars 13146 - 13147 [-] 0. secs (0.u,0.s) +Chars 13148 - 13159 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 13160 - 13184 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) +Chars 13185 - 13195 [(intros~t0).] 0. secs (0.u,0.s) +Chars 13196 - 13203 [(intros).] 0. secs (0.u,0.s) +Chars 13204 - 13216 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 13223 - 13224 [+] 0. secs (0.u,0.s) +Chars 13226 - 13258 [(destruct~H0~as~[a~[Hreta~Hfa]]).] 0. secs (0.u,0.s) +Chars 13259 - 13264 [left.] 0. secs (0.u,0.s) +Chars 13265 - 13274 [exists~a.] 0. secs (0.u,0.s) +Chars 13275 - 13287 [(split;~auto).] 0. secs (0.u,0.s) +Chars 13297 - 13326 [(destruct~(f~a)~as~[wfa~Hwfa]).] 0. secs (0.u,0.s) +Chars 13327 - 13338 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 13348 - 13376 [refine~(Hwfa~_~_~_~_~_~Hfa).] 0. secs (0.u,0.s) +Chars 13377 - 13387 [(intros~t1).] 0. secs (0.u,0.s) +Chars 13388 - 13395 [(intros).] 0. secs (0.u,0.s) +Chars 13405 - 13423 [(destruct~H0;~auto).] 0. secs (0.u,0.s) +Chars 13430 - 13431 [+] 0. secs (0.u,0.s) +Chars 13432 - 13444 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 13445 - 13451 [right.] 0. secs (0.u,0.s) +Chars 13452 - 13464 [(split;~auto).] 0. secs (0.u,0.s) +Chars 13465 - 13471 [right.] 0. secs (0.u,0.s) +Chars 13472 - 13484 [(split;~auto).] 0. secs (0.u,0.s) +Chars 13485 - 13505 [(apply~spin_infinite).] 0. secs (0.u,0.s) +Chars 13508 - 13512 [Qed.] 0.006 secs (0.006u,0.s) +Chars 13516 - 13570 [Instance~PureItreeSpecLaws~:~(...] 0. secs (0.u,0.s) +Chars 13573 - 13579 [Proof.] 0. secs (0.u,0.s) +Chars 13584 - 13596 [constructor.] 0. secs (0.u,0.s) +Chars 13601 - 13602 [-] 0. secs (0.u,0.s) +Chars 13603 - 13622 [(apply~retpi_bindpi).] 0. secs (0.u,0.s) +Chars 13627 - 13628 [-] 0. secs (0.u,0.s) +Chars 13629 - 13648 [(apply~bindpi_retpi).] 0. secs (0.u,0.s) +Chars 13653 - 13654 [-] 0. secs (0.u,0.s) +Chars 13655 - 13675 [(apply~bindpi_bindpi).] 0. secs (0.u,0.s) +Chars 13680 - 13681 [-] 0. secs (0.u,0.s) +Chars 13682 - 13689 [(intros).] 0. secs (0.u,0.s) +Chars 13690 - 13694 [(red).] 0. secs (0.u,0.s) +Chars 13695 - 13699 [(red).] 0. secs (0.u,0.s) +Chars 13700 - 13717 [(intros~mx~my~Hxy).] 0. secs (0.u,0.s) +Chars 13718 - 13722 [(red).] 0. secs (0.u,0.s) +Chars 13723 - 13727 [(red).] 0. secs (0.u,0.s) +Chars 13728 - 13732 [(red).] 0. secs (0.u,0.s) +Chars 13733 - 13748 [(intros~f~g~Hfg).] 0. secs (0.u,0.s) +Chars 13755 - 13762 [(intros).] 0. secs (0.u,0.s) +Chars 13763 - 13774 [(red~in~Hfg).] 0. secs (0.u,0.s) +Chars 13775 - 13800 [(destruct~mx~as~[mx~Hmx]).] 0. secs (0.u,0.s) +Chars 13801 - 13825 [(destruct~my~as~[my~Hmy]).] 0. secs (0.u,0.s) +Chars 13832 - 13836 [(cbn).] 0. secs (0.u,0.s) +Chars 13837 - 13852 [(unfold~_bindpi).] 0. secs (0.u,0.s) +Chars 13853 - 13869 [(do~2~red~in~Hxy).] 0. secs (0.u,0.s) +Chars 13870 - 13881 [(cbn~in~Hxy).] 0. secs (0.u,0.s) +Chars 13888 - 13900 [(rewrite~Hxy).] 0.001 secs (0.001u,0.s) +Chars 13901 - 13912 [(red~in~Hmy).] 0. secs (0.u,0.s) +Chars 13913 - 13964 [(split;~intros;~try~refine~(Hm...] 0.004 secs (0.004u,0.s) +Chars 13971 - 13972 [+] 0. secs (0.u,0.s) +Chars 13973 - 13980 [(intros).] 0. secs (0.u,0.s) +Chars 13981 - 13991 [(cbn~in~H0).] 0. secs (0.u,0.s) +Chars 13992 - 14011 [(destruct~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 14012 - 14017 [left.] 0. secs (0.u,0.s) +Chars 14026 - 14046 [decompose~record~H0.] 0.002 secs (0.002u,0.s) +Chars 14047 - 14056 [exists~x.] 0. secs (0.u,0.s) +Chars 14057 - 14069 [(split;~auto).] 0. secs (0.u,0.s) +Chars 14070 - 14080 [(apply~Hfg).] 0. secs (0.u,0.s) +Chars 14081 - 14086 [auto.] 0. secs (0.u,0.s) +Chars 14093 - 14094 [+] 0. secs (0.u,0.s) +Chars 14095 - 14102 [(intros).] 0. secs (0.u,0.s) +Chars 14103 - 14113 [(cbn~in~H0).] 0. secs (0.u,0.s) +Chars 14114 - 14133 [(destruct~H0;~eauto).] 0.002 secs (0.002u,0.s) +Chars 14134 - 14139 [left.] 0. secs (0.u,0.s) +Chars 14148 - 14168 [decompose~record~H0.] 0. secs (0.u,0.s) +Chars 14169 - 14178 [exists~x.] 0. secs (0.u,0.s) +Chars 14179 - 14191 [(split;~auto).] 0. secs (0.u,0.s) +Chars 14192 - 14202 [(apply~Hfg).] 0. secs (0.u,0.s) +Chars 14203 - 14208 [auto.] 0. secs (0.u,0.s) +Chars 14211 - 14215 [Qed.] 0.004 secs (0.003u,0.s) +Chars 14220 - 14362 [Instance~PureITreeOrderM~:~(Or...] 0. secs (0.u,0.s) +Chars 14366 - 14419 [Instance~PureItreeOrder~:~(Ord...] 0. secs (0.u,0.s) +Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) +Chars 14433 - 14445 [constructor.] 0. secs (0.u,0.s) +Chars 14450 - 14451 [-] 0. secs (0.u,0.s) +Chars 14452 - 14459 [(intros).] 0. secs (0.u,0.s) +Chars 14460 - 14471 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14472 - 14479 [(intros).] 0. secs (0.u,0.s) +Chars 14480 - 14491 [(destruct~w).] 0. secs (0.u,0.s) +Chars 14492 - 14497 [auto.] 0. secs (0.u,0.s) +Chars 14502 - 14503 [-] 0. secs (0.u,0.s) +Chars 14504 - 14511 [(intros).] 0. secs (0.u,0.s) +Chars 14512 - 14523 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14524 - 14544 [(repeat~red~in~H,~H0).] 0. secs (0.u,0.s) +Chars 14545 - 14552 [(intros).] 0. secs (0.u,0.s) +Chars 14553 - 14565 [(destruct~w1).] 0. secs (0.u,0.s) +Chars 14572 - 14584 [(destruct~w2).] 0. secs (0.u,0.s) +Chars 14585 - 14597 [(destruct~w3).] 0. secs (0.u,0.s) +Chars 14598 - 14609 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 14610 - 14615 [auto.] 0. secs (0.u,0.s) +Chars 14620 - 14621 [-] 0. secs (0.u,0.s) +Chars 14622 - 14629 [(intros).] 0. secs (0.u,0.s) +Chars 14630 - 14656 [(destruct~w1~as~[w1'~Hw1']).] 0. secs (0.u,0.s) +Chars 14657 - 14683 [(destruct~w2~as~[w2'~Hw2']).] 0. secs (0.u,0.s) +Chars 14684 - 14695 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 14702 - 14714 [(intros~p~Hp).] 0. secs (0.u,0.s) +Chars 14715 - 14721 [(simpl).] 0. secs (0.u,0.s) +Chars 14728 - 14743 [(unfold~_bindpi).] 0. secs (0.u,0.s) +Chars 14744 - 14751 [(intros).] 0. secs (0.u,0.s) +Chars 14753 - 14762 [(eapply~H).] 0. secs (0.u,0.s) +Chars 14763 - 14769 [(simpl).] 0. secs (0.u,0.s) +Chars 14776 - 14803 [refine~(Hw2'~_~_~_~_~_~H1).] 0. secs (0.u,0.s) +Chars 14804 - 14813 [(intros~t).] 0. secs (0.u,0.s) +Chars 14814 - 14821 [(intros).] 0. secs (0.u,0.s) +Chars 14822 - 14840 [(destruct~H2;~auto).] 0.001 secs (0.001u,0.s) +Chars 14847 - 14880 [(destruct~H2~as~[a~[Hreta~Hf2a...] 0. secs (0.u,0.s) +Chars 14881 - 14886 [left.] 0. secs (0.u,0.s) +Chars 14887 - 14910 [specialize~(H0~a~p~Hp).] 0. secs (0.u,0.s) +Chars 14911 - 14920 [exists~a.] 0. secs (0.u,0.s) +Chars 14921 - 14926 [auto.] 0. secs (0.u,0.s) +Chars 14929 - 14933 [Qed.] 0.003 secs (0.003u,0.s) +Chars 27695 - 27772 [Definition~_obsip~A~(t~:~itree...] 0. secs (0.u,0.s) +Chars 27932 - 28008 [Lemma~obsip_monot~:~forall~A~(...] 0. secs (0.u,0.s) +Chars 28011 - 28017 [Proof.] 0. secs (0.u,0.s) +Chars 28022 - 28040 [(unfold~monotonici).] 0. secs (0.u,0.s) +Chars 28041 - 28048 [(intros).] 0. secs (0.u,0.s) +Chars 28049 - 28068 [(unfold~_obsip~in~*).] 0. secs (0.u,0.s) +Chars 28069 - 28074 [auto.] 0. secs (0.u,0.s) +Chars 28077 - 28081 [Qed.] 0. secs (0.u,0.s) +Chars 28085 - 28188 [Definition~obsip~A~(t~:~itree~...] 0. secs (0.u,0.s) +Chars 28259 - 28334 [Lemma~obsip_pres_ret~:~forall~...] 0. secs (0.u,0.s) +Chars 28337 - 28343 [Proof.] 0. secs (0.u,0.s) +Chars 28348 - 28355 [(intros).] 0. secs (0.u,0.s) +Chars 28356 - 28368 [(intros~p~Hp).] 0. secs (0.u,0.s) +Chars 28369 - 28373 [(cbn).] 0. secs (0.u,0.s) +Chars 28374 - 28396 [(unfold~_retpi,~_obsip).] 0. secs (0.u,0.s) +Chars 28397 - 28403 [tauto.] 0. secs (0.u,0.s) +Chars 28406 - 28410 [Qed.] 0. secs (0.u,0.s) +Chars 28414 - 28576 [Lemma~obsip_pres_bind~:~~~fora...] 0. secs (0.u,0.s) +Chars 28579 - 28585 [Proof.] 0. secs (0.u,0.s) +Chars 28590 - 28597 [(intros).] 0. secs (0.u,0.s) +Chars 28598 - 28610 [(intros~p~Hp).] 0. secs (0.u,0.s) +Chars 28611 - 28615 [(cbn).] 0. secs (0.u,0.s) +Chars 28616 - 28639 [(unfold~_obsip,~_bindpi).] 0. secs (0.u,0.s) +Chars 28640 - 28654 [(split;~intros).] 0. secs (0.u,0.s) +Chars 28659 - 28660 [-] 0. secs (0.u,0.s) +Chars 28661 - 28700 [specialize~(eutt_reta_or_div~t...] 0. secs (0.u,0.s) +Chars 28701 - 28714 [(destruct~Hor).] 0. secs (0.u,0.s) +Chars 28721 - 28722 [+] 0. secs (0.u,0.s) +Chars 28723 - 28749 [(destruct~H0~as~[a~Hreta]).] 0. secs (0.u,0.s) +Chars 28750 - 28755 [left.] 0. secs (0.u,0.s) +Chars 28756 - 28765 [exists~a.] 0. secs (0.u,0.s) +Chars 28766 - 28778 [(split;~auto).] 0. secs (0.u,0.s) +Chars 28787 - 28804 [(eapply~Hp;~eauto).] 0.002 secs (0.001u,0.s) +Chars 28805 - 28839 [specialize~(bind_ret_l~a~f)~as...] 0. secs (0.u,0.s) +Chars 28840 - 28854 [(rewrite~<-~H1).] 0.001 secs (0.001u,0.s) +Chars 28863 - 28881 [now~rewrite~Hreta.] 0.002 secs (0.002u,0.s) +Chars 28889 - 28890 [+] 0. secs (0.u,0.s) +Chars 28891 - 28897 [right.] 0. secs (0.u,0.s) +Chars 28898 - 28910 [(split;~auto).] 0. secs (0.u,0.s) +Chars 28911 - 28937 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 28938 - 28976 [(rewrite~(spin_bind~f),~<-~H0;...] 0.004 secs (0.003u,0.s) +Chars 28981 - 28982 [-] 0. secs (0.u,0.s) +Chars 28983 - 28994 [(destruct~H).] 0. secs (0.u,0.s) +Chars 29001 - 29002 [+] 0. secs (0.u,0.s) +Chars 29003 - 29035 [(destruct~H~as~[a~[Hreta~Hpfa]]).] 0. secs (0.u,0.s) +Chars 29036 - 29070 [specialize~(bind_ret_l~a~f)~as...] 0. secs (0.u,0.s) +Chars 29079 - 29096 [(eapply~Hp;~eauto).] 0.002 secs (0.001u,0.s) +Chars 29097 - 29122 [now~rewrite~<-~Hreta,~H1.] 0.006 secs (0.006u,0.s) +Chars 29130 - 29131 [+] 0. secs (0.u,0.s) +Chars 29132 - 29143 [(destruct~H).] 0. secs (0.u,0.s) +Chars 29144 - 29169 [(apply~div_spin_eutt~in~H).] 0. secs (0.u,0.s) +Chars 29178 - 29202 [(rewrite~H,~<-~spin_bind).] 0.002 secs (0.002u,0.s) +Chars 29203 - 29212 [(apply~H0).] 0. secs (0.u,0.s) +Chars 29215 - 29219 [Qed.] 0.003 secs (0.003u,0.s) +Chars 29223 - 29324 [Lemma~obsip_eutt~:~~~forall~A~...] 0. secs (0.u,0.s) +Chars 29327 - 29333 [Proof.] 0. secs (0.u,0.s) +Chars 29338 - 29391 [(split;~intros;~unfold~obsip,~...] 0. secs (0.u,0.s) +Chars 29396 - 29397 [-] 0. secs (0.u,0.s) +Chars 29398 - 29410 [(intros~p~Hp).] 0. secs (0.u,0.s) +Chars 29411 - 29417 [(simpl).] 0. secs (0.u,0.s) +Chars 29418 - 29450 [(split;~intros;~eapply~Hp;~eau...] 0.001 secs (0.001u,0.s) +Chars 29457 - 29474 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 29480 - 29481 [-] 0. secs (0.u,0.s) +Chars 29482 - 29511 [(set~(p~:=~fun~t~=>~t~≈~t1)).] 0. secs (0.u,0.s) +Chars 29518 - 29544 [(assert~(Hp~:~resp_eutt~p)).] 0. secs (0.u,0.s) +Chars 29551 - 29552 [+] 0. secs (0.u,0.s) +Chars 29553 - 29566 [(intros~t3~t4).] 0. secs (0.u,0.s) +Chars 29567 - 29576 [(unfold~p).] 0. secs (0.u,0.s) +Chars 29577 - 29591 [(split;~intros).] 0. secs (0.u,0.s) +Chars 29600 - 29601 [*] 0. secs (0.u,0.s) +Chars 29602 - 29616 [(rewrite~<-~H1).] 0. secs (0.u,0.s) +Chars 29617 - 29630 [now~symmetry.] 0. secs (0.u,0.s) +Chars 29640 - 29641 [*] 0. secs (0.u,0.s) +Chars 29642 - 29657 [now~rewrite~H0.] 0. secs (0.u,0.s) +Chars 29665 - 29666 [+] 0. secs (0.u,0.s) +Chars 29667 - 29687 [specialize~(H~p~Hp).] 0. secs (0.u,0.s) +Chars 29688 - 29699 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 29700 - 29714 [(unfold~p~in~H).] 0. secs (0.u,0.s) +Chars 29715 - 29724 [symmetry.] 0. secs (0.u,0.s) +Chars 29725 - 29733 [(apply~H).] 0. secs (0.u,0.s) +Chars 29734 - 29746 [reflexivity.] 0. secs (0.u,0.s) +Chars 29749 - 29753 [Qed.] 0.001 secs (0.001u,0.s) +Chars 29757 - 29846 [#[global]~Instance~PureITreeEf...] 0. secs (0.u,0.s) +Chars 29850 - 29949 [#[global]~Instance~PureITreeMo...] 0. secs (0.u,0.s) +Chars 29952 - 29958 [Proof.] 0. secs (0.u,0.s) +Chars 29963 - 29975 [constructor.] 0. secs (0.u,0.s) +Chars 29980 - 29981 [-] 0. secs (0.u,0.s) +Chars 29982 - 30003 [(apply~obsip_pres_ret).] 0. secs (0.u,0.s) +Chars 30008 - 30009 [-] 0. secs (0.u,0.s) +Chars 30010 - 30032 [(apply~obsip_pres_bind).] 0. secs (0.u,0.s) +Chars 30035 - 30039 [Qed.] 0. secs (0.u,0.s) +Chars 30041 - 30055 [End~PureITree.] 0.002 secs (0.002u,0.s) diff --git a/extra/Dijkstra/StateDelaySpec.v.timing b/extra/Dijkstra/StateDelaySpec.v.timing index 33541e40..16897245 100644 --- a/extra/Dijkstra/StateDelaySpec.v.timing +++ b/extra/Dijkstra/StateDelaySpec.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.139 secs (0.121u,0.016s) -Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.062 secs (0.055u,0.006s) -Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.047 secs (0.038u,0.009s) -Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.061 secs (0.054u,0.007s) +Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.137 secs (0.12u,0.015s) +Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.061 secs (0.054u,0.006s) +Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.047 secs (0.038u,0.008s) +Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.059 secs (0.052u,0.007s) Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.025 secs (0.024u,0.s) @@ -41,7 +41,7 @@ Chars 2138 - 2164 [(set~(p~:=~exist~_~post~H)).] 0. secs (0.u,0.s) Chars 2165 - 2192 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) Chars 2199 - 2208 [(apply~H0).] 0. secs (0.u,0.s) Chars 2209 - 2214 [auto.] 0. secs (0.u,0.s) -Chars 2217 - 2221 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2217 - 2221 [Qed.] 0.003 secs (0.003u,0.s) Chars 2225 - 2282 [Definition~PrePostPair~A~:~Typ...] 0. secs (0.u,0.s) Chars 2286 - 2485 [Definition~PrePostPairRef~{A~:...] 0. secs (0.u,0.s) Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.004 secs (0.004u,0.s) @@ -90,7 +90,7 @@ Chars 3734 - 3738 [Qed.] 0.005 secs (0.005u,0.s) Chars 3742 - 3794 [Definition~PrePostList~A~:~Typ...] 0. secs (0.u,0.s) Chars 3798 - 3977 [Definition~PrePostListRef~{A~:...] 0. secs (0.u,0.s) Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.002 secs (0.002u,0.s) -Chars 4217 - 4233 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4217 - 4233 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 4238 - 4258 [(induction~H0;~eauto).] 0. secs (0.u,0.s) Chars 4263 - 4288 [(destruct~x~as~[post~pre]).] 0. secs (0.u,0.s) Chars 4289 - 4312 [(destruct~H0~as~[Hs~Hr]).] 0. secs (0.u,0.s) @@ -121,7 +121,7 @@ Chars 4865 - 4877 [(destruct~H3).] 0. secs (0.u,0.s) Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) Chars 4894 - 4932 [(assert~(pre~s~->~post~(m~s));...] 0. secs (0.u,0.s) Chars 4943 - 4950 [(intros).] 0. secs (0.u,0.s) -Chars 4951 - 4982 [(inversion~Hrefine;~subst;~auto).] 0.001 secs (0.001u,0.s) +Chars 4951 - 4982 [(inversion~Hrefine;~subst;~auto).] 0.001 secs (0.u,0.s) Chars 4991 - 4992 [*] 0. secs (0.u,0.s) Chars 4993 - 5011 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) Chars 5022 - 5024 [--] 0. secs (0.u,0.s) @@ -196,7 +196,7 @@ Chars 6634 - 6645 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 6646 - 6651 [auto.] 0. secs (0.u,0.s) Chars 6656 - 6660 [Qed.] 0.002 secs (0.002u,0.s) Chars 6664 - 6807 [Definition~DynPrePostListRef~{...] 0. secs (0.u,0.s) -Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.002 secs (0.002u,0.s) +Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) Chars 7028 - 7044 [Next~Obligation.] 0. secs (0.u,0.s) Chars 7049 - 7069 [(induction~H0;~eauto).] 0. secs (0.u,0.s) Chars 7070 - 7075 [left.] 0. secs (0.u,0.s) @@ -270,8 +270,8 @@ Chars 8430 - 8437 [(intros).] 0. secs (0.u,0.s) Chars 8448 - 8468 [specialize~(H0~s~p).] 0. secs (0.u,0.s) Chars 8469 - 8478 [(apply~H0).] 0. secs (0.u,0.s) Chars 8479 - 8485 [eauto.] 0. secs (0.u,0.s) -Chars 8488 - 8492 [Qed.] 0.011 secs (0.011u,0.s) -Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.004 secs (0.004u,0.s) +Chars 8488 - 8492 [Qed.] 0.012 secs (0.012u,0.s) +Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.005 secs (0.004u,0.s) Chars 8993 - 8999 [Proof.] 0. secs (0.u,0.s) Chars 9004 - 9011 [(intros).] 0. secs (0.u,0.s) Chars 9012 - 9028 [(repeat~red~in~H).] 0. secs (0.u,0.s) @@ -284,18 +284,18 @@ Chars 9108 - 9155 [(destruct~(eutt_reta_or_div~(m...] 0. secs (0.u,0.s) Chars 9160 - 9161 [-] 0. secs (0.u,0.s) Chars 9162 - 9183 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) Chars 9190 - 9200 [(cbn~in~H5).] 0. secs (0.u,0.s) -Chars 9201 - 9232 [(rewrite~<-~H5,~bind_ret_l;~cbn).] 0.006 secs (0.006u,0.s) +Chars 9201 - 9232 [(rewrite~<-~H5,~bind_ret_l;~cbn).] 0.007 secs (0.007u,0.s) Chars 9233 - 9246 [(apply~H4,~H0).] 0. secs (0.u,0.s) -Chars 9247 - 9258 [(rewrite~H5).] 0.002 secs (0.001u,0.s) +Chars 9247 - 9258 [(rewrite~H5).] 0.001 secs (0.001u,0.s) Chars 9265 - 9302 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) Chars 9307 - 9308 [-] 0. secs (0.u,0.s) Chars 9309 - 9335 [(apply~div_spin_eutt~in~H5).] 0. secs (0.u,0.s) -Chars 9342 - 9367 [(rewrite~H5,~<-~spin_bind).] 0.006 secs (0.005u,0.s) +Chars 9342 - 9367 [(rewrite~H5,~<-~spin_bind).] 0.005 secs (0.005u,0.s) Chars 9368 - 9381 [(apply~H4,~H1).] 0. secs (0.u,0.s) -Chars 9382 - 9396 [(rewrite~<-~H5).] 0.001 secs (0.001u,0.s) +Chars 9382 - 9396 [(rewrite~<-~H5).] 0.002 secs (0.002u,0.s) Chars 9397 - 9434 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) Chars 9437 - 9441 [Qed.] 0.005 secs (0.005u,0.s) -Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.002 secs (0.002u,0.s) +Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.001 secs (0.001u,0.s) Chars 9947 - 9953 [Proof.] 0. secs (0.u,0.s) Chars 9958 - 9965 [(intros).] 0. secs (0.u,0.s) Chars 9970 - 10004 [(eapply~combine_prepost_aux;~e...] 0. secs (0.u,0.s) @@ -307,4 +307,4 @@ Chars 10113 - 10124 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 10129 - 10140 [(apply~Hpp2).] 0. secs (0.u,0.s) Chars 10141 - 10154 [(split;~eauto).] 0. secs (0.u,0.s) Chars 10157 - 10161 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10163 - 10182 [End~StateDelaySpec.] 0.003 secs (0.002u,0.s) +Chars 10163 - 10182 [End~StateDelaySpec.] 0.002 secs (0.002u,0.s) diff --git a/extra/Dijkstra/StateIOTrace.v.timing b/extra/Dijkstra/StateIOTrace.v.timing new file mode 100644 index 00000000..0277c3ef --- /dev/null +++ b/extra/Dijkstra/StateIOTrace.v.timing @@ -0,0 +1,284 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 39 - 89 [From~Stdlib~Require~Import~Ari...] 0.143 secs (0.123u,0.018s) +Chars 91 - 198 [From~ExtLib~Require~Import~Dat...] 0.009 secs (0.005u,0.002s) +Chars 200 - 342 [From~ITree~Require~Import~Axio...] 0.13 secs (0.11u,0.019s) +Chars 344 - 558 [From~ITree.Extra~Require~Impor...] 0.095 secs (0.082u,0.012s) +Chars 560 - 574 [Import~Monads.] 0. secs (0.u,0.s) +Chars 575 - 596 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 597 - 629 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 631 - 666 [Definition~env~:=~alist~string...] 0. secs (0.u,0.s) +Chars 668 - 774 [Variant~StateE~:~Type~->~Type~...] 0. secs (0.u,0.s) +Chars 776 - 851 [Variant~IO~:~Type~->~Type~:=~~...] 0. secs (0.u,0.s) +Chars 852 - 903 [Notation~stateiotree~A:=~(itre...] 0. secs (0.u,0.s) +Chars 905 - 976 [Definition~StateIOSpec~:~Type~...] 0.001 secs (0.001u,0.s) +Chars 978 - 1040 [Definition~SIOSpecOrder~:=~Sta...] 0. secs (0.u,0.s) +Chars 1042 - 1114 [Definition~SIOSpecOrderLaws~:=...] 0. secs (0.u,0.s) +Chars 1116 - 1173 [Definition~SIOSpecEq~:=~StateS...] 0. secs (0.u,0.s) +Chars 1175 - 1242 [Definition~SIOObs~:=~EffectObs...] 0. secs (0.u,0.s) +Chars 1244 - 1315 [Definition~SIOMorph~:=~MonadMo...] 0. secs (0.u,0.s) +Chars 1317 - 1412 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) +Chars 1461 - 1523 [Definition~StateIOSpecPre~:~Ty...] 0. secs (0.u,0.s) +Chars 1577 - 1653 [Definition~StateIOSpecPost~(A~...] 0. secs (0.u,0.s) +Chars 1655 - 1813 [#[program]~Definition~encode~{...] 0.005 secs (0.005u,0.s) +Chars 1816 - 1835 [Section~PrintMults.] 0. secs (0.u,0.s) +Chars 1838 - 1860 [Variables~(X~Y~:~string).] 0. secs (0.u,0.s) +Chars 1863 - 1886 [Context~(HXY~:~X~<>~Y).] 0. secs (0.u,0.s) +Chars 1934 - 2050 [Variant~write_next_mult~(n~:~n...] 0. secs (0.u,0.s) +Chars 2054 - 2243 [Definition~wnm_ev~(next~:~nat)...] 0. secs (0.u,0.s) +Chars 2247 - 2347 [Variant~writes_n~(n~:~nat)~:~f...] 0. secs (0.u,0.s) +Chars 2351 - 2494 [Definition~mults_n~{R~:~Type}~...] 0. secs (0.u,0.s) +Chars 2498 - 2640 [CoFixpoint~mults_of_n_from_m~{...] 0. secs (0.u,0.s) +Chars 2644 - 2730 [Definition~mults_of_n~{R~:~Typ...] 0. secs (0.u,0.s) +Chars 2734 - 2837 [Definition~print_mults_pre~:~S...] 0. secs (0.u,0.s) +Chars 2893 - 3040 [Definition~print_mults_post~:~...] 0.001 secs (0.u,0.s) +Chars 3044 - 3304 [Definition~print_mults~:~state...] 0.007 secs (0.007u,0.s) +Chars 3309 - 3388 [Definition~add~(V~:~string)~(v...] 0. secs (0.u,0.s) +Chars 3392 - 3705 [Definition~handleIOStateE~(A~:...] 0.002 secs (0.002u,0.s) +Chars 3709 - 3767 [Ltac~unf_res~:=~unfold~resum,~...] 0. secs (0.u,0.s) +Chars 3771 - 3876 [Lemma~lookup_eq~:~~~forall~(s~...] 0. secs (0.u,0.s) +Chars 3879 - 3885 [Proof.] 0. secs (0.u,0.s) +Chars 3890 - 3897 [(intros).] 0. secs (0.u,0.s) +Chars 3898 - 3941 [(assert~(Maps.mapsto~x~v~(Maps...] 0. secs (0.u,0.s) +Chars 3946 - 3947 [{] 0. secs (0.u,0.s) +Chars 3948 - 3990 [(apply~Maps.mapsto_add_eq;~try...] 0. secs (0.u,0.s) +Chars 3991 - 3992 [}] 0. secs (0.u,0.s) +Chars 3997 - 4028 [(eapply~Maps.mapsto_lookup~in~H).] 0. secs (0.u,0.s) +Chars 4029 - 4051 [(unfold~lookup_default).] 0. secs (0.u,0.s) +Chars 4052 - 4062 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 4063 - 4068 [auto.] 0. secs (0.u,0.s) +Chars 4071 - 4075 [Qed.] 0. secs (0.u,0.s) +Chars 4079 - 4193 [Lemma~lookup_nin~:~~~forall~(x...] 0.01 secs (0.008u,0.001s) +Chars 4196 - 4202 [Proof.] 0. secs (0.u,0.s) +Chars 4207 - 4214 [(intros).] 0. secs (0.u,0.s) +Chars 4215 - 4224 [(red~in~s).] 0. secs (0.u,0.s) +Chars 4225 - 4234 [(red~in~s).] 0. secs (0.u,0.s) +Chars 4235 - 4258 [generalize~dependent~x.] 0. secs (0.u,0.s) +Chars 4259 - 4285 [(induction~s;~intros;~auto).] 0. secs (0.u,0.s) +Chars 4290 - 4291 [-] 0. secs (0.u,0.s) +Chars 4292 - 4296 [(cbn).] 0. secs (0.u,0.s) +Chars 4297 - 4317 [(destruct~a~as~[y~v]).] 0. secs (0.u,0.s) +Chars 4318 - 4359 [(destruct~(Strings.String.stri...] 0. secs (0.u,0.s) +Chars 4366 - 4367 [+] 0. secs (0.u,0.s) +Chars 4368 - 4374 [subst.] 0. secs (0.u,0.s) +Chars 4375 - 4383 [exfalso.] 0. secs (0.u,0.s) +Chars 4384 - 4393 [(eapply~H).] 0. secs (0.u,0.s) +Chars 4394 - 4398 [(red).] 0. secs (0.u,0.s) +Chars 4399 - 4403 [(cbn).] 0. secs (0.u,0.s) +Chars 4404 - 4408 [(red).] 0. secs (0.u,0.s) +Chars 4409 - 4413 [(cbn).] 0. secs (0.u,0.s) +Chars 4422 - 4459 [(rewrite~RelDec.rel_dec_eq_tru...] 0. secs (0.u,0.s) +Chars 4460 - 4488 [(apply~RelDec_Correct_string).] 0. secs (0.u,0.s) +Chars 4495 - 4496 [+] 0. secs (0.u,0.s) +Chars 4497 - 4569 [(rewrite~RelDec.rel_dec_neq_fa...] 0. secs (0.u,0.s) +Chars 4578 - 4604 [(unfold~Maps.lookup~in~IHs).] 0. secs (0.u,0.s) +Chars 4605 - 4614 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 4615 - 4631 [(apply~IHs;~auto).] 0.001 secs (0.001u,0.s) +Chars 4632 - 4639 [(intros).] 0. secs (0.u,0.s) +Chars 4648 - 4662 [intro~Hcontra.] 0. secs (0.u,0.s) +Chars 4663 - 4672 [(eapply~H).] 0. secs (0.u,0.s) +Chars 4673 - 4677 [(red).] 0. secs (0.u,0.s) +Chars 4678 - 4682 [(cbn).] 0. secs (0.u,0.s) +Chars 4691 - 4764 [(rewrite~RelDec.rel_dec_neq_fa...] 0. secs (0.u,0.s) +Chars 4767 - 4771 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4775 - 4965 [Lemma~lookup_neq~:~~~forall~(s...] 0. secs (0.u,0.s) +Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) +Chars 4980 - 4987 [(intros).] 0. secs (0.u,0.s) +Chars 4992 - 5043 [(destruct~(classic~(exists~v',...] 0. secs (0.u,0.s) +Chars 5048 - 5049 [-] 0. secs (0.u,0.s) +Chars 5050 - 5074 [(destruct~H0~as~[v'~Hv']).] 0. secs (0.u,0.s) +Chars 5081 - 5124 [(assert~(Maps.mapsto~x~v'~(Map...] 0. secs (0.u,0.s) +Chars 5131 - 5132 [{] 0. secs (0.u,0.s) +Chars 5141 - 5182 [(eapply~Maps.mapsto_add_neq~in...] 0. secs (0.u,0.s) +Chars 5189 - 5190 [}] 0. secs (0.u,0.s) +Chars 5197 - 5228 [(apply~Maps.mapsto_lookup~in~H0).] 0. secs (0.u,0.s) +Chars 5229 - 5261 [(apply~Maps.mapsto_lookup~in~H...] 0. secs (0.u,0.s) +Chars 5262 - 5284 [(unfold~lookup_default).] 0. secs (0.u,0.s) +Chars 5291 - 5303 [(rewrite~Hv').] 0. secs (0.u,0.s) +Chars 5304 - 5315 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 5316 - 5321 [auto.] 0. secs (0.u,0.s) +Chars 5326 - 5327 [-] 0. secs (0.u,0.s) +Chars 5328 - 5368 [(assert~(forall~v',~~~Maps.map...] 0. secs (0.u,0.s) +Chars 5375 - 5376 [{] 0. secs (0.u,0.s) +Chars 5377 - 5390 [(intros~v'~Hc).] 0. secs (0.u,0.s) +Chars 5391 - 5400 [(apply~H0).] 0. secs (0.u,0.s) +Chars 5401 - 5411 [exists~v'.] 0. secs (0.u,0.s) +Chars 5412 - 5417 [auto.] 0. secs (0.u,0.s) +Chars 5418 - 5419 [}] 0. secs (0.u,0.s) +Chars 5426 - 5435 [clear~H0.] 0. secs (0.u,0.s) +Chars 5436 - 5465 [(apply~lookup_nin~in~H1~as~Hs).] 0. secs (0.u,0.s) +Chars 5466 - 5488 [(unfold~lookup_default).] 0. secs (0.u,0.s) +Chars 5495 - 5506 [(rewrite~Hs).] 0. secs (0.u,0.s) +Chars 5513 - 5568 [(assert~(forall~v',~~~Maps.map...] 0. secs (0.u,0.s) +Chars 5575 - 5576 [{] 0. secs (0.u,0.s) +Chars 5585 - 5603 [(intros~v'~Hcontra).] 0. secs (0.u,0.s) +Chars 5604 - 5647 [(apply~Maps.mapsto_add_neq~in~...] 0. secs (0.u,0.s) +Chars 5656 - 5673 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) +Chars 5680 - 5681 [}] 0. secs (0.u,0.s) +Chars 5688 - 5718 [(apply~lookup_nin~in~H0~as~Hs').] 0. secs (0.u,0.s) +Chars 5719 - 5731 [(rewrite~Hs').] 0. secs (0.u,0.s) +Chars 5732 - 5737 [auto.] 0. secs (0.u,0.s) +Chars 5740 - 5744 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5748 - 5884 [Ltac~~prove_arg~H~:=~~~let~H'~...] 0. secs (0.u,0.s) +Chars 5888 - 6018 [Lemma~print_mults_sats_spec~:~...] 0. secs (0.u,0.s) +Chars 6021 - 6027 [Proof.] 0. secs (0.u,0.s) +Chars 6032 - 6043 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6044 - 6050 [(simpl).] 0. secs (0.u,0.s) +Chars 6051 - 6088 [(intros~s~log~[p~Hp]~[Hpre~H']...] 0. secs (0.u,0.s) +Chars 6089 - 6100 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6105 - 6114 [(apply~H').] 0. secs (0.u,0.s) +Chars 6115 - 6124 [clear~H'.] 0. secs (0.u,0.s) +Chars 6125 - 6156 [(unfold~print_mults_pre~in~Hpre).] 0. secs (0.u,0.s) +Chars 6161 - 6190 [(destruct~Hpre~as~[Hlog~Henv]).] 0. secs (0.u,0.s) +Chars 6191 - 6197 [subst.] 0. secs (0.u,0.s) +Chars 6202 - 6226 [(unfold~print_mults_post).] 0. secs (0.u,0.s) +Chars 6227 - 6253 [setoid_rewrite~append_nil.] 0.026 secs (0.025u,0.s) +Chars 6258 - 6285 [(unfold~print_mults~in~Href).] 0. secs (0.u,0.s) +Chars 6286 - 6327 [setoid_rewrite~interp_state_bi...] 0.012 secs (0.012u,0.s) +Chars 6332 - 6376 [setoid_rewrite~interp_state_tr...] 0.539 secs (0.53u,0.006s) +Chars 6381 - 6413 [setoid_rewrite~bind_vis~in~Href.] 0.007 secs (0.007u,0.s) +Chars 6418 - 6457 [(apply~trace_refine_vis~in~Hre...] 0. secs (0.u,0.s) +Chars 6458 - 6470 [basic_solve.] 0. secs (0.u,0.s) +Chars 6475 - 6496 [(rewrite~Hbhd~in~Href).] 0.008 secs (0.007u,0.s) +Chars 6497 - 6517 [setoid_rewrite~Hbhd.] 0.01 secs (0.01u,0.s) +Chars 6522 - 6534 [(destruct~e0).] 0.001 secs (0.001u,0.s) +Chars 6539 - 6618 [2:~~(destruct~ev;~assert~void;...] 0.002 secs (0.002u,0.s) +Chars 6623 - 6640 [(assert~(A~=~nat)).] 0. secs (0.u,0.s) +Chars 6645 - 6646 [{] 0. secs (0.u,0.s) +Chars 6653 - 6671 [(destruct~ev;~auto).] 0.001 secs (0.001u,0.s) +Chars 6672 - 6681 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6682 - 6692 [sinv~Href.] 0.025 secs (0.025u,0.s) +Chars 6693 - 6713 [(ddestruction;~subst).] 0.006 secs (0.006u,0.s) +Chars 6720 - 6729 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6730 - 6749 [(inversion~H1;~auto).] 0.002 secs (0.002u,0.s) +Chars 6754 - 6755 [}] 0. secs (0.u,0.s) +Chars 6760 - 6766 [subst.] 0.001 secs (0.001u,0.s) +Chars 6767 - 6785 [rename~ans~into~n.] 0. secs (0.u,0.s) +Chars 6786 - 6795 [exists~n.] 0. secs (0.u,0.s) +Chars 6800 - 6867 [(match~type~of~Href~with~~|~_~...] 0.001 secs (0.001u,0.s) +Chars 6872 - 6882 [exists~k0.] 0. secs (0.u,0.s) +Chars 6883 - 6889 [split.] 0. secs (0.u,0.s) +Chars 6894 - 6895 [{] 0. secs (0.u,0.s) +Chars 6902 - 6916 [(simpl~in~Href).] 0. secs (0.u,0.s) +Chars 6917 - 6928 [clear~Henv.] 0. secs (0.u,0.s) +Chars 6929 - 6937 [unf_res.] 0. secs (0.u,0.s) +Chars 6944 - 6954 [sinv~Href.] 0.019 secs (0.019u,0.s) +Chars 6955 - 6975 [(ddestruction;~subst).] 0.006 secs (0.006u,0.s) +Chars 6976 - 6989 [(inversion~H1).] 0.003 secs (0.003u,0.s) +Chars 6990 - 7010 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 7011 - 7023 [reflexivity.] 0. secs (0.u,0.s) +Chars 7028 - 7029 [}] 0. secs (0.u,0.s) +Chars 7034 - 7052 [clear~Hp~p~Hbhd~b.] 0. secs (0.u,0.s) +Chars 7057 - 7081 [(assert~(k0~tt~⊑~kp~n)).] 0. secs (0.u,0.s) +Chars 7086 - 7087 [{] 0. secs (0.u,0.s) +Chars 7088 - 7100 [clear~Heqkp.] 0. secs (0.u,0.s) +Chars 7101 - 7111 [sinv~Href.] 0.012 secs (0.012u,0.s) +Chars 7112 - 7132 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) +Chars 7139 - 7181 [(unfold~resum,~ReSum_id,~id_,~...] 0. secs (0.u,0.s) +Chars 7182 - 7195 [(inversion~H1).] 0.001 secs (0.001u,0.s) +Chars 7196 - 7216 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) +Chars 7223 - 7298 [(assert~(RAnsRef~IO~unit~nat~(...] 0. secs (0.u,0.s) +Chars 7305 - 7319 [(apply~H6~in~H).] 0. secs (0.u,0.s) +Chars 7321 - 7326 [auto.] 0. secs (0.u,0.s) +Chars 7331 - 7332 [}] 0. secs (0.u,0.s) +Chars 7337 - 7351 [clear~Href~ev.] 0. secs (0.u,0.s) +Chars 7352 - 7358 [subst.] 0. secs (0.u,0.s) +Chars 7359 - 7383 [(rewrite~bind_ret_l~in~H).] 0.007 secs (0.007u,0.s) +Chars 7384 - 7395 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7396 - 7427 [(rewrite~interp_state_bind~in~H).] 0.006 secs (0.006u,0.s) +Chars 7432 - 7466 [(rewrite~interp_state_trigger~...] 0.008 secs (0.008u,0.s) +Chars 7467 - 7478 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7479 - 7503 [(rewrite~bind_ret_l~in~H).] 0.008 secs (0.007u,0.s) +Chars 7508 - 7519 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7524 - 7582 [specialize~(@interp_state_iter...] 0. secs (0.u,0.s) +Chars 7587 - 7612 [(unfold~state_eq~in~Hiter).] 0. secs (0.u,0.s) +Chars 7613 - 7632 [(rewrite~Hiter~in~H).] 0.006 secs (0.006u,0.s) +Chars 7633 - 7645 [clear~Hiter.] 0. secs (0.u,0.s) +Chars 7651 - 7683 [(remember~(Maps.add~X~n~s)~as~...] 0.001 secs (0.001u,0.s) +Chars 7688 - 7757 [(assert~(si~=~alist_add~RelDec...] 0. secs (0.u,0.s) +Chars 7762 - 7781 [(rewrite~<-~H0~in~H).] 0. secs (0.u,0.s) +Chars 7782 - 7791 [clear~H0.] 0. secs (0.u,0.s) +Chars 7796 - 7814 [(unfold~mults_of_n).] 0. secs (0.u,0.s) +Chars 7819 - 7847 [(remember~0~as~next_to_write).] 0. secs (0.u,0.s) +Chars 7896 - 7943 [(assert~(lookup_default~Y~0~si...] 0. secs (0.u,0.s) +Chars 7948 - 7949 [{] 0. secs (0.u,0.s) +Chars 7950 - 7956 [subst.] 0. secs (0.u,0.s) +Chars 7957 - 7982 [(rewrite~lookup_neq;~auto).] 0. secs (0.u,0.s) +Chars 7983 - 7984 [}] 0. secs (0.u,0.s) +Chars 7989 - 8023 [(assert~(lookup_default~X~0~si...] 0. secs (0.u,0.s) +Chars 8028 - 8029 [{] 0. secs (0.u,0.s) +Chars 8030 - 8036 [subst.] 0. secs (0.u,0.s) +Chars 8037 - 8053 [(apply~lookup_eq).] 0. secs (0.u,0.s) +Chars 8054 - 8055 [}] 0. secs (0.u,0.s) +Chars 8060 - 8096 [clear~Heqsi~Heqnext_to_write~H...] 0. secs (0.u,0.s) +Chars 8101 - 8125 [generalize~dependent~si.] 0. secs (0.u,0.s) +Chars 8130 - 8153 [(remember~(k0~tt)~as~tr).] 0.001 secs (0.001u,0.s) +Chars 8154 - 8169 [clear~Heqtr~k0.] 0. secs (0.u,0.s) +Chars 8174 - 8198 [generalize~dependent~tr.] 0. secs (0.u,0.s) +Chars 8203 - 8238 [generalize~dependent~next_to_w...] 0. secs (0.u,0.s) +Chars 8244 - 8262 [coinduction~c~CIH.] 0.006 secs (0.006u,0.s) +Chars 8314 - 8321 [(intros).] 0. secs (0.u,0.s) +Chars 8326 - 8344 [rename~H1~into~HX.] 0. secs (0.u,0.s) +Chars 8476 - 8549 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 8554 - 8579 [(rewrite~unfold_iter~in~H).] 0.011 secs (0.011u,0.s) +Chars 8584 - 8652 [(match~type~of~H~with~~|~_~⊑~I...] 0.002 secs (0.002u,0.s) +Chars 8658 - 8688 [setoid_rewrite~bind_bind~in~H.] 0.007 secs (0.007u,0.s) +Chars 8693 - 8719 [(rewrite~bind_trigger~in~H).] 0.012 secs (0.012u,0.s) +Chars 8724 - 8761 [setoid_rewrite~interp_state_vi...] 0.069 secs (0.068u,0.s) +Chars 8766 - 8775 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 8776 - 8800 [(rewrite~bind_ret_l~in~H).] 0.01 secs (0.01u,0.s) +Chars 8801 - 8823 [(rewrite~tau_eutt~in~H).] 0.01 secs (0.01u,0.s) +Chars 8828 - 8861 [setoid_rewrite~bind_trigger~in~H.] 0.021 secs (0.02u,0.s) +Chars 8866 - 8896 [(rewrite~interp_state_vis~in~H).] 0.011 secs (0.011u,0.s) +Chars 8897 - 8906 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 8911 - 8933 [(rewrite~bind_vis~in~H).] 0.012 secs (0.011u,0.s) +Chars 8938 - 8960 [(rewrite~bind_vis~in~H).] 0.007 secs (0.007u,0.s) +Chars 8965 - 8996 [setoid_rewrite~bind_ret_l~in~H.] 0.017 secs (0.017u,0.s) +Chars 9001 - 9009 [unf_res.] 0. secs (0.u,0.s) +Chars 9014 - 9024 [step~in~H.] 0. secs (0.u,0.s) +Chars 9025 - 9034 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 9039 - 9061 [dependent~induction~H.] 0.05 secs (0.049u,0.s) +Chars 9066 - 9070 [2:~{] 0. secs (0.u,0.s) +Chars 9071 - 9079 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 9080 - 9098 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 9099 - 9134 [(eapply~IHruttF;~eauto;~reflex...] 0.007 secs (0.007u,0.s) +Chars 9135 - 9136 [}] 0. secs (0.u,0.s) +Chars 9141 - 9207 [(inversion~H;~ddestruction;~su...] 0.03 secs (0.03u,0.s) +Chars 9212 - 9218 [subst.] 0. secs (0.u,0.s) +Chars 9219 - 9241 [specialize~(H0~tt~tt).] 0. secs (0.u,0.s) +Chars 9246 - 9257 [(destruct~a).] 0.002 secs (0.002u,0.s) +Chars 9262 - 9292 [(prove_arg~H0;~auto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 9298 - 9380 [(match~type~of~H0~with~~|~gfp~...] 0. secs (0.u,0.s) +Chars 9385 - 9393 [simpobs.] 0.007 secs (0.007u,0.s) +Chars 9394 - 9412 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 9417 - 9427 [(intros~[]).] 0. secs (0.u,0.s) +Chars 9432 - 9443 [clear~x~tr.] 0. secs (0.u,0.s) +Chars 9449 - 9487 [(remember~(lookup_default~X~0~...] 0.008 secs (0.008u,0.s) +Chars 9492 - 9530 [(remember~(lookup_default~Y~0~...] 0.01 secs (0.01u,0.s) +Chars 9535 - 9596 [(eapply~CIH~with~(Maps.add~Y~(...] 0. secs (0.u,0.s) +Chars 9601 - 9605 [2:~{] 0. secs (0.u,0.s) +Chars 9606 - 9638 [(rewrite~lookup_neq;~subst;~au...] 0.007 secs (0.007u,0.s) +Chars 9639 - 9640 [}] 0. secs (0.u,0.s) +Chars 9645 - 9669 [(rewrite~tau_eutt~in~Hk1).] 0.012 secs (0.012u,0.s) +Chars 9670 - 9705 [setoid_rewrite~bind_trigger~in...] 0.019 secs (0.019u,0.s) +Chars 9710 - 9749 [setoid_rewrite~interp_state_vi...] 0.032 secs (0.032u,0.s) +Chars 9750 - 9759 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 9764 - 9790 [(rewrite~bind_ret_l~in~Hk1).] 0.014 secs (0.013u,0.s) +Chars 9791 - 9815 [(rewrite~tau_eutt~in~Hk1).] 0.012 secs (0.012u,0.s) +Chars 9820 - 9851 [setoid_rewrite~bind_vis~in~Hk1.] 0.019 secs (0.018u,0.s) +Chars 9856 - 9895 [setoid_rewrite~interp_state_vi...] 0.033 secs (0.033u,0.s) +Chars 9896 - 9905 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 9910 - 9936 [(rewrite~bind_ret_l~in~Hk1).] 0.012 secs (0.012u,0.s) +Chars 9937 - 9963 [(rewrite~bind_ret_l~in~Hk1).] 0.015 secs (0.014u,0.s) +Chars 9968 - 9992 [(rewrite~tau_eutt~in~Hk1).] 0.011 secs (0.011u,0.s) +Chars 9993 - 10002 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 10007 - 10039 [(rewrite~interp_state_ret~in~H...] 0.013 secs (0.012u,0.s) +Chars 10040 - 10066 [(rewrite~bind_ret_l~in~Hk1).] 0.009 secs (0.008u,0.s) +Chars 10071 - 10080 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 10085 - 10109 [(rewrite~tau_eutt~in~Hk1).] 0.008 secs (0.008u,0.s) +Chars 10114 - 10182 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) +Chars 10187 - 10333 [(match~goal~with~~|~H:_~⊑~ITre...] 0.001 secs (0.001u,0.s) +Chars 10338 - 10344 [subst.] 0.004 secs (0.004u,0.s) +Chars 10345 - 10366 [(rewrite~Nat.add_comm).] 0. secs (0.u,0.s) +Chars 10367 - 10372 [auto.] 0. secs (0.u,0.s) +Chars 10375 - 10379 [Qed.] 0.137 secs (0.135u,0.002s) +Chars 10381 - 10396 [End~PrintMults.] 0.002 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateSpecT.v.timing b/extra/Dijkstra/StateSpecT.v.timing index 6d036228..c53b1cfa 100644 --- a/extra/Dijkstra/StateSpecT.v.timing +++ b/extra/Dijkstra/StateSpecT.v.timing @@ -1,7 +1,7 @@ Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.224 secs (0.195u,0.028s) -Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.02 secs (0.016u,0.003s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.221 secs (0.193u,0.027s) +Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) Chars 341 - 355 [Import~Monads.] 0. secs (0.u,0.s) Chars 356 - 377 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 379 - 411 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -33,7 +33,7 @@ Chars 1170 - 1201 [(intros~A~B~w1~w2~f1~f2~Hlw~Hlf).] 0. secs (0.u,0.s) Chars 1202 - 1225 [(unfold~StateSpecT~in~*).] 0. secs (0.u,0.s) Chars 1232 - 1243 [(repeat~red).] 0. secs (0.u,0.s) Chars 1250 - 1257 [(intros).] 0. secs (0.u,0.s) -Chars 1258 - 1276 [(apply~monot;~auto).] 0.038 secs (0.033u,0.004s) +Chars 1258 - 1276 [(apply~monot;~auto).] 0.036 secs (0.032u,0.003s) Chars 1277 - 1284 [(intros).] 0. secs (0.u,0.s) Chars 1285 - 1306 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) Chars 1307 - 1313 [(simpl).] 0. secs (0.u,0.s) @@ -141,14 +141,14 @@ Chars 5162 - 5187 [(destruct~s1;~reflexivity).] 0. secs (0.u,0.s) Chars 5194 - 5195 [+] 0. secs (0.u,0.s) Chars 5196 - 5253 [(assert~(Hpdiv~:~resp_eutt~(Di...] 0. secs (0.u,0.s) Chars 5262 - 5263 [{] 0. secs (0.u,0.s) -Chars 5264 - 5283 [(intros~t1~t2~Heutt).] 0.054 secs (0.053u,0.s) +Chars 5264 - 5283 [(intros~t1~t2~Heutt).] 0.053 secs (0.053u,0.s) Chars 5284 - 5320 [(split;~intros;~destruct~H4).] 0. secs (0.u,0.s) Chars 5332 - 5333 [-] 0. secs (0.u,0.s) Chars 5334 - 5339 [left.] 0. secs (0.u,0.s) Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 5372 - 5373 [-] 0. secs (0.u,0.s) Chars 5374 - 5380 [right.] 0. secs (0.u,0.s) -Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.002 secs (0.001u,0.s) +Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 5414 - 5415 [-] 0. secs (0.u,0.s) Chars 5416 - 5421 [left.] 0. secs (0.u,0.s) Chars 5422 - 5440 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) @@ -172,7 +172,7 @@ Chars 6041 - 6064 [generalize~dependent~a.] 0. secs (0.u,0.s) Chars 6065 - 6088 [generalize~dependent~s.] 0. secs (0.u,0.s) Chars 6093 - 6111 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 6118 - 6125 [(intros).] 0. secs (0.u,0.s) -Chars 6126 - 6169 [(red~in~H;~sinv~H;~try~apply~n...] 0.003 secs (0.002u,0.s) +Chars 6126 - 6169 [(red~in~H;~sinv~H;~try~apply~n...] 0.003 secs (0.003u,0.s) Chars 6175 - 6211 [(apply~not_wf~with~(a'~:=~a');...] 0.001 secs (0.001u,0.s) Chars 6216 - 6217 [-] 0. secs (0.u,0.s) Chars 6218 - 6230 [(red~in~Hrel).] 0. secs (0.u,0.s) @@ -205,17 +205,17 @@ Chars 6936 - 6958 [(destruct~y~as~[s'~a']).] 0. secs (0.u,0.s) Chars 6965 - 7014 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) Chars 7021 - 7022 [+] 0. secs (0.u,0.s) Chars 7023 - 7037 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) -Chars 7038 - 7058 [(rewrite~<-~H0~in~H1).] 0.025 secs (0.024u,0.s) +Chars 7038 - 7058 [(rewrite~<-~H0~in~H1).] 0.025 secs (0.025u,0.s) Chars 7059 - 7071 [(simpl~in~H1).] 0. secs (0.u,0.s) -Chars 7072 - 7097 [(rewrite~bind_ret_l~in~H1).] 0.025 secs (0.025u,0.s) +Chars 7072 - 7097 [(rewrite~bind_ret_l~in~H1).] 0.024 secs (0.023u,0.s) Chars 7106 - 7117 [(simpl~in~*).] 0. secs (0.u,0.s) Chars 7118 - 7130 [(destruct~a0).] 0. secs (0.u,0.s) Chars 7131 - 7142 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7143 - 7168 [(destruct~s1;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 7143 - 7168 [(destruct~s1;~basic_solve).] 0.002 secs (0.002u,0.s) Chars 7177 - 7189 [reflexivity.] 0. secs (0.u,0.s) Chars 7196 - 7197 [+] 0. secs (0.u,0.s) Chars 7198 - 7224 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 7225 - 7242 [(rewrite~H0~in~H1).] 0.025 secs (0.023u,0.s) +Chars 7225 - 7242 [(rewrite~H0~in~H1).] 0.022 secs (0.022u,0.s) Chars 7243 - 7270 [(rewrite~<-~spin_bind~in~H1).] 0.022 secs (0.022u,0.s) Chars 7279 - 7294 [symmetry~in~H1.] 0. secs (0.u,0.s) Chars 7295 - 7303 [exfalso.] 0. secs (0.u,0.s) @@ -240,5 +240,5 @@ Chars 7569 - 7579 [(rewrite~H).] 0.004 secs (0.004u,0.s) Chars 7580 - 7599 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 7600 - 7606 [(simpl).] 0. secs (0.u,0.s) Chars 7614 - 7626 [reflexivity.] 0. secs (0.u,0.s) -Chars 7629 - 7633 [Qed.] 0.013 secs (0.012u,0.s) -Chars 7635 - 7657 [End~LoopInvarSpecific.] 0.001 secs (0.u,0.s) +Chars 7629 - 7633 [Qed.] 0.012 secs (0.012u,0.s) +Chars 7635 - 7657 [End~LoopInvarSpecific.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/TracesIT.v.timing b/extra/Dijkstra/TracesIT.v.timing new file mode 100644 index 00000000..07e8e44b --- /dev/null +++ b/extra/Dijkstra/TracesIT.v.timing @@ -0,0 +1,604 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.216 secs (0.19u,0.025s) +Chars 242 - 461 [From~ITree.Extra~Require~Impor...] 0.083 secs (0.072u,0.01s) +Chars 463 - 477 [Import~Monads.] 0. secs (0.u,0.s) +Chars 478 - 499 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 501 - 533 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 534 - 570 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) +Chars 773 - 791 [Section~TraceSpec.] 0. secs (0.u,0.s) +Chars 794 - 821 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) +Chars 825 - 904 [Definition~TraceSpecInput~(A~:...] 0. secs (0.u,0.s) +Chars 908 - 1012 [Instance~proper_eutt_spec_in~~...] 0. secs (0.u,0.s) +Chars 1015 - 1021 [Proof.] 0. secs (0.u,0.s) +Chars 1026 - 1045 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) +Chars 1046 - 1067 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 1068 - 1074 [(simpl).] 0. secs (0.u,0.s) +Chars 1075 - 1123 [(split;~intros;~eapply~Hp;~try...] 0. secs (0.u,0.s) +Chars 1124 - 1133 [symmetry.] 0. secs (0.u,0.s) +Chars 1134 - 1139 [auto.] 0. secs (0.u,0.s) +Chars 1142 - 1146 [Qed.] 0. secs (0.u,0.s) +Chars 1150 - 1352 [Definition~TraceSpec~(A~:~Type...] 0. secs (0.u,0.s) +Chars 1356 - 1467 [#[global]~Instance~EqM_TraceSp...] 0.001 secs (0.001u,0.s) +Chars 1470 - 1536 [#[global]~Instance~EqMTS_equiv...] 0. secs (0.u,0.s) +Chars 1539 - 1545 [Proof.] 0. secs (0.u,0.s) +Chars 1550 - 1635 [(do~2~constructor;~unfold~EqM_...] 0.003 secs (0.003u,0.s) +Chars 1640 - 1649 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1650 - 1655 [auto.] 0. secs (0.u,0.s) +Chars 1658 - 1662 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1781 - 1841 [Notation~"↑~log"~:=~(ev_list_t...] 0. secs (0.u,0.s) +Chars 1845 - 1932 [#[program]~Definition~ret_ts1~...] 0.002 secs (0.002u,0.s) +Chars 1936 - 2032 [#[program]~Definition~ret_ts2~...] 0.003 secs (0.003u,0.s) +Chars 2186 - 2430 [#[program]~Definition~bind_ts1...] 0.003 secs (0.003u,0.s) +Chars 2433 - 2449 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 2454 - 2473 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) +Chars 2474 - 2508 [(split;~intros;~split;~basic_s...] 0.06 secs (0.059u,0.s) +Chars 2513 - 2514 [-] 0. secs (0.u,0.s) +Chars 2515 - 2523 [(apply~H).] 0. secs (0.u,0.s) +Chars 2524 - 2538 [(rewrite~Heutt).] 0.003 secs (0.003u,0.s) +Chars 2539 - 2544 [auto.] 0. secs (0.u,0.s) +Chars 2549 - 2550 [-] 0. secs (0.u,0.s) +Chars 2551 - 2568 [(rewrite~<-~Heutt).] 0.007 secs (0.007u,0.s) +Chars 2569 - 2578 [(apply~H1).] 0. secs (0.u,0.s) +Chars 2579 - 2593 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 2594 - 2599 [auto.] 0. secs (0.u,0.s) +Chars 2604 - 2605 [-] 0. secs (0.u,0.s) +Chars 2606 - 2614 [(apply~H).] 0. secs (0.u,0.s) +Chars 2615 - 2632 [(rewrite~<-~Heutt).] 0.001 secs (0.001u,0.s) +Chars 2633 - 2638 [auto.] 0. secs (0.u,0.s) +Chars 2643 - 2644 [-] 0. secs (0.u,0.s) +Chars 2645 - 2659 [(rewrite~Heutt).] 0.007 secs (0.007u,0.s) +Chars 2660 - 2669 [(apply~H1).] 0. secs (0.u,0.s) +Chars 2670 - 2687 [(rewrite~<-~Heutt).] 0.001 secs (0.001u,0.s) +Chars 2688 - 2693 [auto.] 0. secs (0.u,0.s) +Chars 2696 - 2700 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2704 - 2997 [#[program]~Definition~bind_ts1...] 0.005 secs (0.005u,0.s) +Chars 3000 - 3016 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 3021 - 3040 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) +Chars 3041 - 3068 [(split;~intros;~basic_solve).] 0.002 secs (0.002u,0.s) +Chars 3073 - 3074 [-] 0. secs (0.u,0.s) +Chars 3075 - 3080 [left.] 0. secs (0.u,0.s) +Chars 3081 - 3090 [exists~a.] 0. secs (0.u,0.s) +Chars 3091 - 3103 [exists~log'.] 0. secs (0.u,0.s) +Chars 3110 - 3127 [(rewrite~<-~Heutt).] 0.008 secs (0.008u,0.s) +Chars 3128 - 3133 [auto.] 0. secs (0.u,0.s) +Chars 3138 - 3139 [-] 0. secs (0.u,0.s) +Chars 3140 - 3146 [right.] 0. secs (0.u,0.s) +Chars 3147 - 3164 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 3165 - 3170 [auto.] 0. secs (0.u,0.s) +Chars 3175 - 3176 [-] 0. secs (0.u,0.s) +Chars 3177 - 3182 [left.] 0. secs (0.u,0.s) +Chars 3183 - 3192 [exists~a.] 0. secs (0.u,0.s) +Chars 3193 - 3205 [exists~log'.] 0. secs (0.u,0.s) +Chars 3206 - 3220 [(rewrite~Heutt).] 0.01 secs (0.01u,0.s) +Chars 3227 - 3232 [auto.] 0. secs (0.u,0.s) +Chars 3237 - 3238 [-] 0. secs (0.u,0.s) +Chars 3239 - 3245 [right.] 0. secs (0.u,0.s) +Chars 3246 - 3260 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 3261 - 3266 [auto.] 0. secs (0.u,0.s) +Chars 3269 - 3273 [Qed.] 0.01 secs (0.009u,0.s) +Chars 3276 - 3292 [Next~Obligation.] 0.003 secs (0.003u,0.s) +Chars 3297 - 3326 [(destruct~(w~log)~as~[wl~Hwl]).] 0.001 secs (0.001u,0.s) +Chars 3327 - 3338 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 3343 - 3368 [(eapply~Hwl;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 3369 - 3375 [(simpl).] 0. secs (0.u,0.s) +Chars 3376 - 3385 [clear~H0.] 0. secs (0.u,0.s) +Chars 3386 - 3393 [(intros).] 0. secs (0.u,0.s) +Chars 3398 - 3410 [basic_solve.] 0.001 secs (0.001u,0.s) +Chars 3415 - 3416 [-] 0. secs (0.u,0.s) +Chars 3417 - 3422 [left.] 0. secs (0.u,0.s) +Chars 3423 - 3432 [exists~a.] 0. secs (0.u,0.s) +Chars 3433 - 3445 [exists~log'.] 0. secs (0.u,0.s) +Chars 3446 - 3458 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3465 - 3499 [(destruct~(g~a~log')~as~[gal~H...] 0. secs (0.u,0.s) +Chars 3500 - 3511 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 3518 - 3544 [(eapply~Hgal;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 3545 - 3550 [auto.] 0. secs (0.u,0.s) +Chars 3555 - 3556 [-] 0. secs (0.u,0.s) +Chars 3557 - 3563 [right.] 0. secs (0.u,0.s) +Chars 3564 - 3569 [auto.] 0. secs (0.u,0.s) +Chars 3571 - 3575 [Qed.] 0.007 secs (0.007u,0.s) +Chars 3579 - 3694 [#[global]~Instance~TraceSpecMo...] 0.001 secs (0.001u,0.s) +Chars 3936 - 4106 [Lemma~apply_monot~:~~~forall~(...] 0. secs (0.u,0.s) +Chars 4109 - 4115 [Proof.] 0. secs (0.u,0.s) +Chars 4120 - 4127 [(intros).] 0. secs (0.u,0.s) +Chars 4128 - 4157 [(destruct~(w~log)~as~[w'~Hw']).] 0. secs (0.u,0.s) +Chars 4162 - 4173 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4174 - 4180 [eauto.] 0. secs (0.u,0.s) +Chars 4183 - 4187 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4191 - 4260 [#[global,~program]~Instance~Tr...] 0.025 secs (0.024u,0.s) +Chars 4263 - 4279 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4284 - 4300 [rename~x~into~a.] 0. secs (0.u,0.s) +Chars 4305 - 4309 [(red).] 0. secs (0.u,0.s) +Chars 4310 - 4314 [(red).] 0. secs (0.u,0.s) +Chars 4315 - 4319 [(cbn).] 0. secs (0.u,0.s) +Chars 4320 - 4347 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 4352 - 4353 [-] 0. secs (0.u,0.s) +Chars 4354 - 4381 [(apply~inv_append_eutt~in~H).] 0. secs (0.u,0.s) +Chars 4382 - 4393 [(destruct~H).] 0. secs (0.u,0.s) +Chars 4394 - 4400 [subst.] 0. secs (0.u,0.s) +Chars 4401 - 4406 [auto.] 0. secs (0.u,0.s) +Chars 4411 - 4412 [-] 0. secs (0.u,0.s) +Chars 4413 - 4421 [exfalso.] 0. secs (0.u,0.s) +Chars 4422 - 4466 [(assert~(may_converge~a~(↑~log...] 0. secs (0.u,0.s) +Chars 4473 - 4474 [{] 0. secs (0.u,0.s) +Chars 4475 - 4501 [(apply~may_converge_append).] 0. secs (0.u,0.s) +Chars 4502 - 4530 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 4531 - 4532 [}] 0. secs (0.u,0.s) +Chars 4539 - 4579 [(eapply~all_infinite_not_conve...] 0. secs (0.u,0.s) +Chars 4584 - 4585 [-] 0. secs (0.u,0.s) +Chars 4586 - 4591 [left.] 0. secs (0.u,0.s) +Chars 4592 - 4601 [exists~a.] 0. secs (0.u,0.s) +Chars 4602 - 4613 [exists~log.] 0. secs (0.u,0.s) +Chars 4614 - 4626 [(split;~auto).] 0. secs (0.u,0.s) +Chars 4629 - 4633 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4636 - 4652 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4657 - 4673 [rename~x~into~w.] 0. secs (0.u,0.s) +Chars 4674 - 4678 [(red).] 0. secs (0.u,0.s) +Chars 4679 - 4683 [(red).] 0. secs (0.u,0.s) +Chars 4684 - 4688 [(cbn).] 0. secs (0.u,0.s) +Chars 4689 - 4716 [(split;~intros;~basic_solve).] 0. secs (0.u,0.s) +Chars 4721 - 4722 [-] 0. secs (0.u,0.s) +Chars 4723 - 4755 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 4756 - 4764 [clear~H.] 0. secs (0.u,0.s) +Chars 4771 - 4777 [(simpl).] 0. secs (0.u,0.s) +Chars 4778 - 4785 [(intros).] 0. secs (0.u,0.s) +Chars 4786 - 4798 [basic_solve.] 0. secs (0.u,0.s) +Chars 4805 - 4806 [+] 0. secs (0.u,0.s) +Chars 4807 - 4817 [(rewrite~H).] 0.007 secs (0.007u,0.s) +Chars 4818 - 4823 [auto.] 0. secs (0.u,0.s) +Chars 4830 - 4831 [+] 0. secs (0.u,0.s) +Chars 4832 - 4858 [(apply~noret_cast_nop~in~H).] 0. secs (0.u,0.s) +Chars 4867 - 4877 [(rewrite~H).] 0.006 secs (0.006u,0.s) +Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) +Chars 4888 - 4889 [-] 0. secs (0.u,0.s) +Chars 4890 - 4922 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 4923 - 4931 [clear~H.] 0. secs (0.u,0.s) +Chars 4938 - 4945 [(intros).] 0. secs (0.u,0.s) +Chars 4946 - 4952 [(simpl).] 0. secs (0.u,0.s) +Chars 4953 - 4990 [(destruct~(classic_converge_it...] 0. secs (0.u,0.s) +Chars 4997 - 4998 [+] 0. secs (0.u,0.s) +Chars 4999 - 5011 [basic_solve.] 0. secs (0.u,0.s) +Chars 5012 - 5017 [left.] 0. secs (0.u,0.s) +Chars 5018 - 5027 [exists~r.] 0. secs (0.u,0.s) +Chars 5028 - 5040 [exists~log0.] 0. secs (0.u,0.s) +Chars 5041 - 5047 [split.] 0. secs (0.u,0.s) +Chars 5056 - 5057 [*] 0. secs (0.u,0.s) +Chars 5058 - 5067 [symmetry.] 0. secs (0.u,0.s) +Chars 5068 - 5073 [auto.] 0. secs (0.u,0.s) +Chars 5082 - 5083 [*] 0. secs (0.u,0.s) +Chars 5084 - 5095 [(rewrite~H0).] 0.007 secs (0.007u,0.s) +Chars 5096 - 5101 [auto.] 0. secs (0.u,0.s) +Chars 5108 - 5109 [+] 0. secs (0.u,0.s) +Chars 5110 - 5116 [right.] 0. secs (0.u,0.s) +Chars 5117 - 5129 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5130 - 5164 [(rewrite~noret_cast_nop~in~H;~...] 0.007 secs (0.007u,0.s) +Chars 5167 - 5171 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5174 - 5190 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 5195 - 5211 [rename~x~into~w.] 0. secs (0.u,0.s) +Chars 5216 - 5220 [(red).] 0. secs (0.u,0.s) +Chars 5221 - 5225 [(red).] 0. secs (0.u,0.s) +Chars 5226 - 5230 [(cbn).] 0. secs (0.u,0.s) +Chars 5231 - 5258 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 5263 - 5264 [-] 0. secs (0.u,0.s) +Chars 5265 - 5297 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 5298 - 5306 [clear~H.] 0. secs (0.u,0.s) +Chars 5307 - 5313 [(simpl).] 0. secs (0.u,0.s) +Chars 5314 - 5321 [(intros).] 0. secs (0.u,0.s) +Chars 5328 - 5340 [basic_solve.] 0.003 secs (0.003u,0.s) +Chars 5347 - 5348 [+] 0. secs (0.u,0.s) +Chars 5349 - 5354 [left.] 0. secs (0.u,0.s) +Chars 5355 - 5364 [exists~a.] 0. secs (0.u,0.s) +Chars 5365 - 5377 [exists~log'.] 0. secs (0.u,0.s) +Chars 5378 - 5383 [auto.] 0. secs (0.u,0.s) +Chars 5390 - 5391 [+] 0. secs (0.u,0.s) +Chars 5392 - 5400 [exfalso.] 0. secs (0.u,0.s) +Chars 5409 - 5453 [(assert~(may_converge~a~(↑~log...] 0. secs (0.u,0.s) +Chars 5462 - 5463 [{] 0. secs (0.u,0.s) +Chars 5464 - 5490 [(apply~may_converge_append).] 0. secs (0.u,0.s) +Chars 5491 - 5519 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 5520 - 5521 [}] 0. secs (0.u,0.s) +Chars 5530 - 5583 [(assert~(all_infinite~(@noret_...] 0. secs (0.u,0.s) +Chars 5592 - 5593 [{] 0. secs (0.u,0.s) +Chars 5594 - 5618 [(apply~all_infinite_bind).] 0. secs (0.u,0.s) +Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) +Chars 5625 - 5626 [}] 0. secs (0.u,0.s) +Chars 5635 - 5655 [(rewrite~<-~H0~in~H2).] 0.005 secs (0.005u,0.s) +Chars 5656 - 5680 [(unfold~noret_cast~in~H3).] 0. secs (0.u,0.s) +Chars 5681 - 5691 [(cbn~in~H3).] 0. secs (0.u,0.s) +Chars 5700 - 5755 [(eapply~all_infinite_not_conve...] 0. secs (0.u,0.s) +Chars 5764 - 5788 [(apply~all_infinite_bind).] 0. secs (0.u,0.s) +Chars 5789 - 5794 [auto.] 0. secs (0.u,0.s) +Chars 5801 - 5802 [+] 0. secs (0.u,0.s) +Chars 5803 - 5809 [right.] 0. secs (0.u,0.s) +Chars 5810 - 5822 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5831 - 5852 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 5853 - 5864 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5865 - 5889 [(eapply~Hp;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 5898 - 5961 [(eapply~eutt_bind_eutt~with~(U...] 0.02 secs (0.02u,0.s) +Chars 5970 - 5991 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 5992 - 5997 [auto.] 0. secs (0.u,0.s) +Chars 6002 - 6003 [-] 0. secs (0.u,0.s) +Chars 6004 - 6036 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 6037 - 6045 [clear~H.] 0. secs (0.u,0.s) +Chars 6046 - 6052 [(simpl).] 0. secs (0.u,0.s) +Chars 6053 - 6060 [(intros).] 0. secs (0.u,0.s) +Chars 6067 - 6079 [basic_solve.] 0.002 secs (0.002u,0.s) +Chars 6086 - 6087 [+] 0. secs (0.u,0.s) +Chars 6088 - 6093 [left.] 0. secs (0.u,0.s) +Chars 6094 - 6103 [exists~a.] 0. secs (0.u,0.s) +Chars 6104 - 6116 [exists~log'.] 0. secs (0.u,0.s) +Chars 6117 - 6122 [auto.] 0. secs (0.u,0.s) +Chars 6129 - 6130 [+] 0. secs (0.u,0.s) +Chars 6131 - 6137 [right.] 0. secs (0.u,0.s) +Chars 6138 - 6150 [(split;~auto).] 0. secs (0.u,0.s) +Chars 6151 - 6157 [right.] 0. secs (0.u,0.s) +Chars 6158 - 6164 [split.] 0. secs (0.u,0.s) +Chars 6173 - 6174 [*] 0. secs (0.u,0.s) +Chars 6175 - 6199 [(apply~all_infinite_bind).] 0. secs (0.u,0.s) +Chars 6200 - 6205 [auto.] 0. secs (0.u,0.s) +Chars 6214 - 6215 [*] 0. secs (0.u,0.s) +Chars 6216 - 6237 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) +Chars 6238 - 6249 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6250 - 6274 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 6285 - 6348 [(eapply~eutt_bind_eutt~with~(U...] 0.022 secs (0.021u,0.s) +Chars 6359 - 6379 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 6380 - 6401 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 6402 - 6407 [auto.] 0. secs (0.u,0.s) +Chars 6411 - 6415 [Qed.] 0.02 secs (0.02u,0.s) +Chars 6418 - 6434 [Next~Obligation.] 0.001 secs (0.u,0.s) +Chars 6439 - 6464 [(intros~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) +Chars 6465 - 6480 [(do~2~red~in~Hw).] 0. secs (0.u,0.s) +Chars 6481 - 6496 [(do~3~red~in~Hk).] 0. secs (0.u,0.s) +Chars 6501 - 6512 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6513 - 6529 [(unfold~bind_ts1).] 0. secs (0.u,0.s) +Chars 6530 - 6536 [(simpl).] 0. secs (0.u,0.s) +Chars 6537 - 6551 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6556 - 6557 [-] 0. secs (0.u,0.s) +Chars 6558 - 6572 [(rewrite~<-~Hw).] 0.004 secs (0.004u,0.s) +Chars 6573 - 6617 [(destruct~(w1~log)~as~[w1l~Hw1...] 0.002 secs (0.002u,0.s) +Chars 6618 - 6656 [(eapply~Hw1l;~try~apply~H;~sim...] 0. secs (0.u,0.s) +Chars 6657 - 6664 [(intros).] 0. secs (0.u,0.s) +Chars 6665 - 6683 [(basic_solve;~auto).] 0.002 secs (0.002u,0.s) +Chars 6690 - 6695 [left.] 0. secs (0.u,0.s) +Chars 6696 - 6705 [exists~a.] 0. secs (0.u,0.s) +Chars 6706 - 6718 [exists~log'.] 0. secs (0.u,0.s) +Chars 6719 - 6731 [(split;~auto).] 0. secs (0.u,0.s) +Chars 6732 - 6746 [(rewrite~<-~Hk).] 0.001 secs (0.001u,0.s) +Chars 6747 - 6752 [auto.] 0. secs (0.u,0.s) +Chars 6757 - 6758 [-] 0. secs (0.u,0.s) +Chars 6759 - 6770 [(rewrite~Hw).] 0.003 secs (0.003u,0.s) +Chars 6771 - 6815 [(destruct~(w2~log)~as~[w2l~Hw2...] 0.002 secs (0.002u,0.s) +Chars 6816 - 6854 [(eapply~Hw2l;~try~apply~H;~sim...] 0. secs (0.u,0.s) +Chars 6855 - 6862 [(intros).] 0. secs (0.u,0.s) +Chars 6863 - 6881 [(basic_solve;~auto).] 0.002 secs (0.002u,0.s) +Chars 6888 - 6893 [left.] 0. secs (0.u,0.s) +Chars 6894 - 6903 [exists~a.] 0. secs (0.u,0.s) +Chars 6904 - 6916 [exists~log'.] 0. secs (0.u,0.s) +Chars 6917 - 6929 [(split;~auto).] 0.003 secs (0.002u,0.s) +Chars 6930 - 6941 [(rewrite~Hk).] 0.001 secs (0.001u,0.s) +Chars 6942 - 6947 [auto.] 0. secs (0.u,0.s) +Chars 6950 - 6954 [Qed.] 0.009 secs (0.009u,0.s) +Chars 6959 - 7086 [#[program]~Definition~obs_trac...] 0.003 secs (0.003u,0.s) +Chars 7090 - 7167 [#[global]~Instance~TraceSpecOb...] 0. secs (0.u,0.s) +Chars 7171 - 7506 [Lemma~bind_split_diverge~:~~~f...] 0.001 secs (0.001u,0.s) +Chars 7509 - 7515 [Proof.] 0. secs (0.u,0.s) +Chars 7520 - 7560 [(intros~A~B~log~p~b~b'~g'~Hspl...] 0. secs (0.u,0.s) +Chars 7565 - 7583 [(rewrite~<-~Hsplit).] 0.008 secs (0.008u,0.s) +Chars 7588 - 7678 [(enough~~~(↑~log~++~ITree.bind...] 0. secs (0.u,0.s) +Chars 7683 - 7684 [{] 0. secs (0.u,0.s) +Chars 7685 - 7695 [(rewrite~H).] 0.007 secs (0.007u,0.s) +Chars 7696 - 7701 [auto.] 0. secs (0.u,0.s) +Chars 7702 - 7703 [}] 0. secs (0.u,0.s) +Chars 7708 - 7722 [(unfold~append).] 0. secs (0.u,0.s) +Chars 7723 - 7741 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 7746 - 7812 [(eapply~eutt_bind_eutt~with~(R...] 0. secs (0.u,0.s) +Chars 7817 - 7824 [(intros).] 0. secs (0.u,0.s) +Chars 7825 - 7848 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 7849 - 7888 [(eapply~euttNoRet_trans~with~(...] 0. secs (0.u,0.s) +Chars 7893 - 7894 [+] 0. secs (0.u,0.s) +Chars 7895 - 7915 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 7916 - 7937 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 7938 - 7977 [(eapply~all_infinite_bind_appe...] 0. secs (0.u,0.s) +Chars 7982 - 7983 [+] 0. secs (0.u,0.s) +Chars 7984 - 8005 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 8006 - 8045 [(eapply~all_infinite_bind_appe...] 0. secs (0.u,0.s) +Chars 8048 - 8052 [Qed.] 0.002 secs (0.002u,0.s) +Chars 8056 - 8139 [#[global]~Instance~TraceSpecMo...] 0. secs (0.u,0.s) +Chars 8142 - 8148 [Proof.] 0. secs (0.u,0.s) +Chars 8153 - 8165 [constructor.] 0. secs (0.u,0.s) +Chars 8170 - 8171 [-] 0. secs (0.u,0.s) +Chars 8172 - 8179 [(intros).] 0. secs (0.u,0.s) +Chars 8180 - 8191 [(repeat~red).] 0. secs (0.u,0.s) +Chars 8192 - 8217 [(unfold~obs,~TraceSpecObs).] 0. secs (0.u,0.s) +Chars 8218 - 8222 [(cbn).] 0. secs (0.u,0.s) +Chars 8223 - 8237 [(split;~intros).] 0. secs (0.u,0.s) +Chars 8244 - 8245 [+] 0. secs (0.u,0.s) +Chars 8246 - 8254 [(apply~H).] 0. secs (0.u,0.s) +Chars 8255 - 8278 [(apply~trace_refine_ret).] 0. secs (0.u,0.s) +Chars 8285 - 8286 [+] 0. secs (0.u,0.s) +Chars 8287 - 8322 [(apply~trace_refine_ret_inv_l~...] 0. secs (0.u,0.s) +Chars 8331 - 8342 [(rewrite~H0).] 0.008 secs (0.008u,0.s) +Chars 8343 - 8348 [auto.] 0. secs (0.u,0.s) +Chars 8353 - 8354 [-] 0. secs (0.u,0.s) +Chars 8355 - 8362 [(intros).] 0. secs (0.u,0.s) +Chars 8363 - 8374 [(repeat~red).] 0. secs (0.u,0.s) +Chars 8375 - 8379 [(cbn).] 0. secs (0.u,0.s) +Chars 8386 - 8400 [(split;~intros).] 0. secs (0.u,0.s) +Chars 8407 - 8408 [+] 0. secs (0.u,0.s) +Chars 8409 - 8459 [(destruct~(classic_converge_it...] 0. secs (0.u,0.s) +Chars 8468 - 8469 [*] 0. secs (0.u,0.s) +Chars 8470 - 8475 [left.] 0. secs (0.u,0.s) +Chars 8476 - 8485 [exists~r.] 0. secs (0.u,0.s) +Chars 8486 - 8507 [setoid_rewrite~~<-~H1.] 0.012 secs (0.012u,0.s) +Chars 8518 - 8544 [exists~(log~++~log0)%list.] 0. secs (0.u,0.s) +Chars 8545 - 8551 [split.] 0. secs (0.u,0.s) +Chars 8562 - 8564 [++] 0. secs (0.u,0.s) +Chars 8565 - 8586 [(rewrite~append_assoc).] 0.001 secs (0.001u,0.s) +Chars 8587 - 8599 [reflexivity.] 0. secs (0.u,0.s) +Chars 8610 - 8612 [++] 0. secs (0.u,0.s) +Chars 8613 - 8627 [(intros~bf~Hbf).] 0. secs (0.u,0.s) +Chars 8641 - 8668 [(set~(g~:=~fun~r~:~A~=>~bf)).] 0. secs (0.u,0.s) +Chars 8682 - 8728 [(assert~(ITree.bind~b~g~≈~↑~lo...] 0. secs (0.u,0.s) +Chars 8742 - 8743 [{] 0. secs (0.u,0.s) +Chars 8759 - 8773 [(rewrite~<-~H1).] 0.002 secs (0.002u,0.s) +Chars 8774 - 8788 [(unfold~append).] 0. secs (0.u,0.s) +Chars 8789 - 8807 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 8823 - 8849 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) +Chars 8850 - 8859 [(unfold~g).] 0. secs (0.u,0.s) +Chars 8860 - 8872 [reflexivity.] 0. secs (0.u,0.s) +Chars 8886 - 8887 [}] 0. secs (0.u,0.s) +Chars 8901 - 8922 [(rewrite~append_assoc).] 0.007 secs (0.007u,0.s) +Chars 8923 - 8937 [(rewrite~<-~H2).] 0.009 secs (0.009u,0.s) +Chars 8938 - 8946 [(apply~H).] 0. secs (0.u,0.s) +Chars 8960 - 8969 [(unfold~g).] 0. secs (0.u,0.s) +Chars 8970 - 9023 [(apply~trace_refine_converge_b...] 0. secs (0.u,0.s) +Chars 9037 - 9051 [(rewrite~<-~H1).] 0.005 secs (0.005u,0.s) +Chars 9052 - 9078 [(apply~may_converge_append).] 0. secs (0.u,0.s) +Chars 9079 - 9107 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 9116 - 9117 [*] 0. secs (0.u,0.s) +Chars 9118 - 9124 [right.] 0. secs (0.u,0.s) +Chars 9125 - 9131 [split.] 0. secs (0.u,0.s) +Chars 9142 - 9144 [++] 0. secs (0.u,0.s) +Chars 9145 - 9168 [(apply~append_div;~auto).] 0. secs (0.u,0.s) +Chars 9179 - 9181 [++] 0. secs (0.u,0.s) +Chars 9182 - 9196 [(unfold~append).] 0. secs (0.u,0.s) +Chars 9210 - 9228 [(rewrite~bind_bind).] 0.007 secs (0.007u,0.s) +Chars 9229 - 9237 [(apply~H).] 0. secs (0.u,0.s) +Chars 9251 - 9289 [(apply~trace_refine_diverge_bi...] 0. secs (0.u,0.s) +Chars 9295 - 9296 [+] 0. secs (0.u,0.s) +Chars 9297 - 9346 [(apply~decompose_trace_refine_...] 0. secs (0.u,0.s) +Chars 9354 - 9366 [basic_solve.] 0. secs (0.u,0.s) +Chars 9367 - 9387 [(apply~H~in~H2~as~?H).] 0. secs (0.u,0.s) +Chars 9388 - 9439 [(destruct~(classic_converge_it...] 0.003 secs (0.003u,0.s) +Chars 9447 - 9448 [*] 0. secs (0.u,0.s) +Chars 9546 - 9554 [clear~H.] 0. secs (0.u,0.s) +Chars 9555 - 9579 [(assert~(H~:~True);~auto).] 0. secs (0.u,0.s) +Chars 9590 - 9645 [(assert~(Hbind~:~ITree.bind~b'...] 0. secs (0.u,0.s) +Chars 9655 - 9656 [{] 0. secs (0.u,0.s) +Chars 9657 - 9668 [(rewrite~H1).] 0.004 secs (0.004u,0.s) +Chars 9669 - 9674 [auto.] 0. secs (0.u,0.s) +Chars 9675 - 9676 [}] 0. secs (0.u,0.s) +Chars 9686 - 9706 [(rewrite~<-~H4~in~H1).] 0.019 secs (0.019u,0.s) +Chars 9716 - 9747 [setoid_rewrite~bind_bind~in~H1.] 0.021 secs (0.021u,0.s) +Chars 9757 - 9789 [setoid_rewrite~bind_ret_l~in~H1.] 0.023 secs (0.023u,0.s) +Chars 9799 - 9845 [(assert~(↑~log0~++~g'~r~≈~b)%i...] 0.001 secs (0.001u,0.s) +Chars 9846 - 9855 [clear~H1.] 0. secs (0.u,0.s) +Chars 9865 - 9889 [specialize~(H5~(g'~r)).] 0. secs (0.u,0.s) +Chars 9891 - 9911 [(rewrite~<-~H6~in~H0).] 0.004 secs (0.004u,0.s) +Chars 9923 - 9979 [(assert~(↑~log~++~b~≈~↑~log'~+...] 0. secs (0.u,0.s) +Chars 9989 - 9990 [{] 0. secs (0.u,0.s) +Chars 10002 - 10016 [(rewrite~<-~H6).] 0.009 secs (0.009u,0.s) +Chars 10017 - 10037 [(rewrite~<-~H4~in~H3).] 0.021 secs (0.02u,0.s) +Chars 10049 - 10073 [(rewrite~<-~append_assoc).] 0.008 secs (0.008u,0.s) +Chars 10074 - 10104 [(rewrite~<-~append_assoc~in~H3).] 0.019 secs (0.019u,0.s) +Chars 10105 - 10133 [(apply~inv_append_eutt~in~H3).] 0. secs (0.u,0.s) +Chars 10145 - 10157 [(destruct~H3).] 0. secs (0.u,0.s) +Chars 10158 - 10164 [subst.] 0. secs (0.u,0.s) +Chars 10165 - 10184 [(split;~reflexivity).] 0. secs (0.u,0.s) +Chars 10194 - 10195 [}] 0. secs (0.u,0.s) +Chars 10205 - 10233 [(destruct~H1~as~[Hevsplit~?]).] 0. secs (0.u,0.s) +Chars 10234 - 10240 [subst.] 0. secs (0.u,0.s) +Chars 10241 - 10258 [(rewrite~Hevsplit).] 0.007 secs (0.007u,0.s) +Chars 10318 - 10327 [(apply~H5).] 0. secs (0.u,0.s) +Chars 10382 - 10399 [(rewrite~H6~in~H0).] 0.003 secs (0.003u,0.s) +Chars 10536 - 10597 [(apply~trace_refine_bind_cont_...] 0. secs (0.u,0.s) +Chars 10607 - 10621 [(rewrite~<-~H4).] 0.006 secs (0.006u,0.s) +Chars 10622 - 10649 [(eapply~may_converge_append).] 0. secs (0.u,0.s) +Chars 10650 - 10678 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 10686 - 10687 [*] 0. secs (0.u,0.s) +Chars 10688 - 10721 [(eapply~bind_split_diverge;~ea...] 0.003 secs (0.003u,0.s) +Chars 10729 - 10730 [*] 0. secs (0.u,0.s) +Chars 10731 - 10758 [(assert~(may_converge~a~b')).] 0. secs (0.u,0.s) +Chars 10768 - 10769 [{] 0. secs (0.u,0.s) +Chars 10770 - 10806 [(eapply~may_converge_two_list;...] 0. secs (0.u,0.s) +Chars 10807 - 10808 [}] 0. secs (0.u,0.s) +Chars 10818 - 10826 [exfalso.] 0. secs (0.u,0.s) +Chars 10827 - 10867 [(eapply~all_infinite_not_conve...] 0. secs (0.u,0.s) +Chars 10875 - 10876 [*] 0. secs (0.u,0.s) +Chars 10877 - 10910 [(eapply~bind_split_diverge;~ea...] 0.001 secs (0.001u,0.s) +Chars 10913 - 10917 [Qed.] 0.018 secs (0.018u,0.s) +Chars 10921 - 11043 [#[global]~Instance~TraceSpecOr...] 0.001 secs (0.001u,0.s) +Chars 11047 - 11110 [#[global]~Instance~TraceSpecOr...] 0. secs (0.u,0.s) +Chars 11113 - 11119 [Proof.] 0. secs (0.u,0.s) +Chars 11124 - 11136 [constructor.] 0. secs (0.u,0.s) +Chars 11141 - 11142 [-] 0. secs (0.u,0.s) +Chars 11143 - 11150 [(intros).] 0. secs (0.u,0.s) +Chars 11151 - 11162 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11163 - 11168 [auto.] 0. secs (0.u,0.s) +Chars 11173 - 11174 [-] 0. secs (0.u,0.s) +Chars 11175 - 11182 [(intros).] 0. secs (0.u,0.s) +Chars 11183 - 11199 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 11200 - 11217 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 11224 - 11235 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11236 - 11243 [(intros).] 0. secs (0.u,0.s) +Chars 11244 - 11252 [(apply~H).] 0. secs (0.u,0.s) +Chars 11253 - 11262 [(apply~H0).] 0. secs (0.u,0.s) +Chars 11263 - 11268 [auto.] 0. secs (0.u,0.s) +Chars 11273 - 11274 [-] 0. secs (0.u,0.s) +Chars 11275 - 11282 [(intros).] 0. secs (0.u,0.s) +Chars 11283 - 11300 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 11301 - 11317 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 11318 - 11329 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11330 - 11337 [(intros).] 0. secs (0.u,0.s) +Chars 11338 - 11355 [(repeat~red~in~H1).] 0. secs (0.u,0.s) +Chars 11362 - 11371 [(eapply~H).] 0. secs (0.u,0.s) +Chars 11372 - 11403 [(destruct~(w2~log)~as~[w2'~Hw2]).] 0.001 secs (0.001u,0.s) +Chars 11404 - 11408 [(cbn).] 0. secs (0.u,0.s) +Chars 11409 - 11434 [(eapply~Hw2;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 11441 - 11448 [(intros).] 0. secs (0.u,0.s) +Chars 11449 - 11458 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 11459 - 11471 [basic_solve.] 0.001 secs (0.001u,0.s) +Chars 11478 - 11479 [+] 0. secs (0.u,0.s) +Chars 11480 - 11485 [left.] 0. secs (0.u,0.s) +Chars 11486 - 11495 [exists~a.] 0. secs (0.u,0.s) +Chars 11496 - 11508 [exists~log'.] 0. secs (0.u,0.s) +Chars 11509 - 11521 [(split;~auto).] 0. secs (0.u,0.s) +Chars 11530 - 11540 [(eapply~H0).] 0. secs (0.u,0.s) +Chars 11541 - 11546 [auto.] 0. secs (0.u,0.s) +Chars 11553 - 11554 [+] 0. secs (0.u,0.s) +Chars 11555 - 11561 [right.] 0. secs (0.u,0.s) +Chars 11562 - 11567 [auto.] 0. secs (0.u,0.s) +Chars 11570 - 11574 [Qed.] 0.007 secs (0.007u,0.s) +Chars 11578 - 11702 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) +Chars 11706 - 11892 [#[program]~Definition~encode~{...] 0.004 secs (0.004u,0.s) +Chars 11896 - 12103 [#[program]~Definition~encode_d...] 0.004 secs (0.004u,0.s) +Chars 12105 - 12119 [End~TraceSpec.] 0.004 secs (0.004u,0.s) +Chars 12121 - 12150 [Arguments~TraceSpecMonad~{E}.] 0. secs (0.u,0.s) +Chars 12151 - 12184 [Arguments~TraceSpecMonadLaws~{E}.] 0. secs (0.u,0.s) +Chars 12185 - 12214 [Arguments~TraceSpecOrder~{E}.] 0. secs (0.u,0.s) +Chars 12215 - 12248 [Arguments~TraceSpecOrderLaws~{E}.] 0. secs (0.u,0.s) +Chars 12249 - 12276 [Arguments~TraceSpecObs~{E}.] 0. secs (0.u,0.s) +Chars 12277 - 12306 [Arguments~TraceSpecMorph~{E}.] 0. secs (0.u,0.s) +Chars 12308 - 12330 [Section~NonDetExample.] 0. secs (0.u,0.s) +Chars 12332 - 12388 [Variant~NonDet~:~Type~->~Prop~...] 0. secs (0.u,0.s) +Chars 12390 - 12549 [Definition~decide_ex~:~itree~N...] 0.001 secs (0.001u,0.s) +Chars 12551 - 12625 [Definition~decide_ex_pre~:~ev_...] 0. secs (0.u,0.s) +Chars 12627 - 12752 [Variant~is_bool~(b~:~bool)~:~f...] 0. secs (0.u,0.s) +Chars 12754 - 12788 [Hint~Constructors~is_bool:~itree.] 0. secs (0.u,0.s) +Chars 12790 - 12911 [Definition~fal_decide_ex~:~itr...] 0. secs (0.u,0.s) +Chars 12913 - 13098 [Definition~decide_ex_post~:~it...] 0. secs (0.u,0.s) +Chars 13100 - 13208 [Lemma~decide_ex_satisfies_spec...] 0. secs (0.u,0.s) +Chars 13209 - 13215 [Proof.] 0. secs (0.u,0.s) +Chars 13218 - 13229 [(repeat~red).] 0. secs (0.u,0.s) +Chars 13230 - 13234 [(cbn).] 0. secs (0.u,0.s) +Chars 13235 - 13242 [(intros).] 0. secs (0.u,0.s) +Chars 13243 - 13266 [(destruct~H~as~[Hlog~H]).] 0. secs (0.u,0.s) +Chars 13269 - 13281 [(red~in~Hlog).] 0. secs (0.u,0.s) +Chars 13282 - 13290 [(apply~H).] 0. secs (0.u,0.s) +Chars 13291 - 13299 [clear~H.] 0. secs (0.u,0.s) +Chars 13300 - 13306 [subst.] 0. secs (0.u,0.s) +Chars 13307 - 13311 [(cbn).] 0. secs (0.u,0.s) +Chars 13312 - 13316 [(red).] 0. secs (0.u,0.s) +Chars 13317 - 13331 [(split;~intros).] 0. secs (0.u,0.s) +Chars 13334 - 13335 [-] 0. secs (0.u,0.s) +Chars 13336 - 13355 [(unfold~append~in~*).] 0. secs (0.u,0.s) +Chars 13356 - 13380 [(rewrite~bind_ret_l~in~H).] 0.004 secs (0.004u,0.s) +Chars 13381 - 13400 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) +Chars 13405 - 13427 [(unfold~decide_ex~in~*).] 0. secs (0.u,0.s) +Chars 13432 - 13455 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 13456 - 13474 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 13475 - 13492 [(intros~b~Hb~Hdiv).] 0. secs (0.u,0.s) +Chars 13497 - 13528 [(rewrite~unfold_iter~in~Hb~at~1).] 0.003 secs (0.003u,0.s) +Chars 13529 - 13553 [(rewrite~bind_bind~in~Hb).] 0.004 secs (0.004u,0.s) +Chars 13558 - 13622 [(apply~bind_trigger_refine~in~...] 0. secs (0.u,0.s) +Chars 13627 - 13639 [basic_solve.] 0. secs (0.u,0.s) +Chars 13640 - 13651 [(destruct~a).] 0. secs (0.u,0.s) +Chars 13656 - 13657 [+] 0. secs (0.u,0.s) +Chars 13658 - 13683 [(rewrite~bind_ret_l~in~H0).] 0.003 secs (0.003u,0.s) +Chars 13684 - 13694 [(cbn~in~H0).] 0. secs (0.u,0.s) +Chars 13695 - 13718 [(rewrite~tau_eutt~in~H0).] 0.003 secs (0.003u,0.s) +Chars 13725 - 13735 [step~in~H.] 0. secs (0.u,0.s) +Chars 13736 - 13745 [clear~Hb.] 0. secs (0.u,0.s) +Chars 13752 - 13757 [icbn.] 0. secs (0.u,0.s) +Chars 13766 - 13797 [(dependent~induction~H;~simpobs).] 0.014 secs (0.014u,0.s) +Chars 13805 - 13806 [*] 0. secs (0.u,0.s) +Chars 13807 - 13836 [(constructor;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 13837 - 13844 [(intros).] 0. secs (0.u,0.s) +Chars 13853 - 13864 [(destruct~a).] 0. secs (0.u,0.s) +Chars 13865 - 13876 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 13885 - 13887 [++] 0. secs (0.u,0.s) +Chars 13888 - 13934 [(assert~(k1~tt~≈~k'~tt)%itree;...] 0. secs (0.u,0.s) +Chars 13946 - 13960 [now~rewrite~H.] 0.005 secs (0.005u,0.s) +Chars 13970 - 13972 [++] 0. secs (0.u,0.s) +Chars 13973 - 13992 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 13993 - 14011 [(rewrite~x~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 14012 - 14022 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) +Chars 14034 - 14047 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 14048 - 14057 [(apply~H1).] 0. secs (0.u,0.s) +Chars 14064 - 14065 [*] 0. secs (0.u,0.s) +Chars 14066 - 14078 [constructor.] 0. secs (0.u,0.s) +Chars 14079 - 14090 [Utils.step.] 0. secs (0.u,0.s) +Chars 14091 - 14113 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 14123 - 14142 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 14143 - 14161 [(rewrite~x~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 14162 - 14187 [(rewrite~tau_eutt~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 14188 - 14193 [auto.] 0. secs (0.u,0.s) +Chars 14197 - 14198 [+] 0. secs (0.u,0.s) +Chars 14199 - 14224 [(rewrite~bind_ret_l~in~H0).] 0.003 secs (0.003u,0.s) +Chars 14225 - 14235 [(cbn~in~H0).] 0. secs (0.u,0.s) +Chars 14236 - 14271 [(apply~trace_refine_ret_inv_l~...] 0. secs (0.u,0.s) +Chars 14277 - 14295 [(rewrite~H~in~Hdiv).] 0.002 secs (0.002u,0.s) +Chars 14296 - 14306 [sinv~Hdiv.] 0.005 secs (0.005u,0.s) +Chars 14307 - 14320 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 14326 - 14345 [specialize~(H2~tt).] 0. secs (0.u,0.s) +Chars 14351 - 14368 [(rewrite~H0~in~H2).] 0.014 secs (0.014u,0.s) +Chars 14369 - 14377 [sinv~H2.] 0.001 secs (0.001u,0.s) +Chars 14380 - 14381 [-] 0. secs (0.u,0.s) +Chars 14382 - 14386 [(red).] 0. secs (0.u,0.s) +Chars 14387 - 14406 [(rewrite~append_nil).] 0.039 secs (0.039u,0.s) +Chars 14407 - 14431 [(rewrite~append_nil~in~H).] 0.005 secs (0.005u,0.s) +Chars 14432 - 14454 [(unfold~decide_ex~in~*).] 0. secs (0.u,0.s) +Chars 14459 - 14471 [(induction~H).] 0. secs (0.u,0.s) +Chars 14476 - 14477 [+] 0. secs (0.u,0.s) +Chars 14478 - 14486 [exfalso.] 0. secs (0.u,0.s) +Chars 14487 - 14503 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) +Chars 14504 - 14530 [(rewrite~unfold_iter~in~H0).] 0.004 secs (0.004u,0.s) +Chars 14537 - 14561 [(rewrite~bind_bind~in~H0).] 0.004 secs (0.004u,0.s) +Chars 14562 - 14589 [(rewrite~bind_trigger~in~H0).] 0.004 secs (0.004u,0.s) +Chars 14596 - 14635 [(revert~H0;~apply~refine_ret_v...] 0. secs (0.u,0.s) +Chars 14640 - 14641 [+] 0. secs (0.u,0.s) +Chars 14642 - 14652 [(rewrite~H).] 0.042 secs (0.042u,0.s) +Chars 14653 - 14683 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) +Chars 14690 - 14701 [(destruct~b).] 0. secs (0.u,0.s) +Chars 14702 - 14714 [(destruct~ev).] 0. secs (0.u,0.s) +Chars 14715 - 14728 [(destruct~ans).] 0. secs (0.u,0.s) +Chars 14735 - 14736 [*] 0. secs (0.u,0.s) +Chars 14737 - 14788 [(eapply~front_and_last_cons;~e...] 0.002 secs (0.001u,0.s) +Chars 14789 - 14810 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 14819 - 14840 [clear~IHmay_converge.] 0. secs (0.u,0.s) +Chars 14841 - 14867 [(rewrite~unfold_iter~in~H0).] 0.003 secs (0.003u,0.s) +Chars 14868 - 14892 [(rewrite~bind_bind~in~H0).] 0.004 secs (0.004u,0.s) +Chars 14901 - 14917 [(rewrite~H~in~H0).] 0.004 secs (0.004u,0.s) +Chars 14918 - 14976 [(eapply~bind_trigger_refine~in...] 0. secs (0.u,0.s) +Chars 14985 - 14997 [basic_solve.] 0. secs (0.u,0.s) +Chars 15006 - 15014 [sinv~H0.] 0.011 secs (0.01u,0.s) +Chars 15015 - 15028 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 15037 - 15082 [(assert~(k~tt~≈~k'~tt)%itree;~...] 0. secs (0.u,0.s) +Chars 15083 - 15108 [(rewrite~bind_ret_l~in~H2).] 0.005 secs (0.004u,0.s) +Chars 15117 - 15126 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 15127 - 15150 [(rewrite~tau_eutt~in~H2).] 0.004 secs (0.003u,0.s) +Chars 15151 - 15166 [now~rewrite~H0.] 0.006 secs (0.005u,0.s) +Chars 15174 - 15175 [*] 0. secs (0.u,0.s) +Chars 15176 - 15197 [clear~IHmay_converge.] 0. secs (0.u,0.s) +Chars 15198 - 15224 [(rewrite~unfold_iter~in~H0).] 0.005 secs (0.004u,0.s) +Chars 15225 - 15249 [(rewrite~bind_bind~in~H0).] 0.004 secs (0.004u,0.s) +Chars 15258 - 15274 [(rewrite~H~in~H0).] 0.004 secs (0.004u,0.s) +Chars 15275 - 15333 [(eapply~bind_trigger_refine~in...] 0. secs (0.u,0.s) +Chars 15342 - 15354 [basic_solve.] 0. secs (0.u,0.s) +Chars 15363 - 15371 [sinv~H0.] 0.008 secs (0.008u,0.s) +Chars 15372 - 15385 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 15394 - 15419 [(rewrite~bind_ret_l~in~H2).] 0.005 secs (0.004u,0.s) +Chars 15420 - 15430 [(cbn~in~H2).] 0. secs (0.u,0.s) +Chars 15439 - 15474 [(apply~trace_refine_ret_inv_l~...] 0. secs (0.u,0.s) +Chars 15483 - 15543 [(eapply~front_and_last_base~wi...] 0.008 secs (0.008u,0.s) +Chars 15552 - 15557 [step.] 0.002 secs (0.002u,0.s) +Chars 15558 - 15562 [(cbn).] 0. secs (0.u,0.s) +Chars 15563 - 15575 [constructor.] 0. secs (0.u,0.s) +Chars 15576 - 15583 [(intros).] 0. secs (0.u,0.s) +Chars 15592 - 15606 [(rewrite~<-~H2).] 0.001 secs (0.001u,0.s) +Chars 15607 - 15618 [(destruct~v).] 0. secs (0.u,0.s) +Chars 15619 - 15624 [auto.] 0. secs (0.u,0.s) +Chars 15627 - 15631 [Qed.] 0.035 secs (0.034u,0.s) +Chars 15633 - 15651 [End~NonDetExample.] 0.001 secs (0.001u,0.s) diff --git a/extra/IForest.v.timing b/extra/IForest.v.timing index d4fafa9b..cdc719af 100644 --- a/extra/IForest.v.timing +++ b/extra/IForest.v.timing @@ -1,7 +1,7 @@ -Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) -Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.227 secs (0.199u,0.027s) +Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.238 secs (0.205u,0.031s) Chars 461 - 512 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.002 secs (0.001u,0.s) +Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.003 secs (0.001u,0.001s) Chars 586 - 620 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 622 - 643 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 644 - 664 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -11,10 +11,10 @@ Chars 801 - 877 [Definition~iforest~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 1082 - 1148 [Notation~eutt_closed~:=~(Prope...] 0. secs (0.u,0.s) Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.002 secs (0.001u,0.s) -Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0. secs (0.u,0.s) -Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0.001 secs (0.u,0.s) -Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0.001 secs (0.u,0.s) -Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.001 secs (0.001u,0.s) +Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0.001 secs (0.u,0.s) +Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0.001 secs (0.001u,0.s) +Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0.001 secs (0.001u,0.s) +Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.002 secs (0.001u,0.s) Chars 2851 - 2980 [Lemma~bind_iforest_bind_ifores...] 0. secs (0.u,0.s) Chars 2981 - 2987 [Proof.] 0. secs (0.u,0.s) Chars 2990 - 2997 [(intros).] 0. secs (0.u,0.s) @@ -46,9 +46,9 @@ Chars 3333 - 3371 [specialize~(HX~(fun~_~=>~ITree...] 0. secs (0.u,0.s) Chars 3378 - 3402 [(destruct~HX~as~(HA,~H)).] 0. secs (0.u,0.s) Chars 3409 - 3421 [(split;~auto).] 0. secs (0.u,0.s) Chars 3422 - 3426 [Qed.] 0.003 secs (0.002u,0.s) -Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0.001 secs (0.001u,0.s) +Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0.002 secs (0.001u,0.s) Chars 3627 - 3748 [Definition~handler_correct~{E}...] 0. secs (0.u,0.s) -Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.035 secs (0.032u,0.002s) +Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.037 secs (0.033u,0.004s) Chars 4598 - 4650 [#[global]~Hint~Constructors~in...] 0. secs (0.u,0.s) Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0. secs (0.u,0.s) Chars 4878 - 4884 [Proof.] 0. secs (0.u,0.s) @@ -99,25 +99,25 @@ Chars 10150 - 10157 [(intros).] 0. secs (0.u,0.s) Chars 10158 - 10172 [(split;~intros).] 0. secs (0.u,0.s) Chars 10177 - 10178 [+] 0. secs (0.u,0.s) Chars 10179 - 10190 [step~in~H0.] 0. secs (0.u,0.s) -Chars 10191 - 10198 [(inv~H0).] 0.002 secs (0.002u,0.s) +Chars 10191 - 10198 [(inv~H0).] 0.003 secs (0.002u,0.s) Chars 10205 - 10209 [(cbn).] 0. secs (0.u,0.s) Chars 10210 - 10227 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 10232 - 10233 [+] 0. secs (0.u,0.s) Chars 10234 - 10256 [(unfold~interp_iforest).] 0. secs (0.u,0.s) Chars 10257 - 10262 [step.] 0. secs (0.u,0.s) Chars 10263 - 10283 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 10284 - 10298 [now~rewrite~H.] 0. secs (0.u,0.s) +Chars 10284 - 10298 [now~rewrite~H.] 0.001 secs (0.001u,0.s) Chars 10301 - 10302 [-] 0. secs (0.u,0.s) Chars 10303 - 10314 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10319 - 10360 [(intros~t1~t2~eq;~split;~intro...] 0.004 secs (0.004u,0.s) +Chars 10319 - 10360 [(intros~t1~t2~eq;~split;~intro...] 0.005 secs (0.004u,0.s) Chars 10366 - 10367 [+] 0. secs (0.u,0.s) Chars 10368 - 10373 [step.] 0. secs (0.u,0.s) -Chars 10374 - 10394 [(econstructor;~eauto).] 0.04 secs (0.04u,0.s) +Chars 10374 - 10394 [(econstructor;~eauto).] 0.041 secs (0.041u,0.s) Chars 10395 - 10413 [now~rewrite~<-~eq.] 0.001 secs (0.001u,0.s) Chars 10419 - 10420 [+] 0. secs (0.u,0.s) Chars 10421 - 10426 [step.] 0. secs (0.u,0.s) -Chars 10427 - 10447 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 10448 - 10463 [now~rewrite~eq.] 0. secs (0.u,0.s) +Chars 10427 - 10447 [(econstructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 10448 - 10463 [now~rewrite~eq.] 0.001 secs (0.001u,0.s) Chars 10466 - 10467 [-] 0. secs (0.u,0.s) Chars 10468 - 10479 [(repeat~red).] 0. secs (0.u,0.s) Chars 10480 - 10487 [(intros).] 0. secs (0.u,0.s) @@ -131,7 +131,7 @@ Chars 10838 - 10849 [(repeat~red).] 0. secs (0.u,0.s) Chars 10852 - 10859 [(intros).] 0. secs (0.u,0.s) Chars 10862 - 10876 [(split;~intros).] 0. secs (0.u,0.s) Chars 10879 - 10880 [-] 0. secs (0.u,0.s) -Chars 10881 - 10922 [(inversion~H0;~subst;~econstru...] 0.005 secs (0.005u,0.s) +Chars 10881 - 10922 [(inversion~H0;~subst;~econstru...] 0.006 secs (0.005u,0.s) Chars 10927 - 10928 [+] 0. secs (0.u,0.s) Chars 10929 - 10946 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 10951 - 10952 [+] 0. secs (0.u,0.s) @@ -140,7 +140,7 @@ Chars 10973 - 10990 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 10995 - 10996 [+] 0. secs (0.u,0.s) Chars 10997 - 11014 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 11018 - 11019 [-] 0. secs (0.u,0.s) -Chars 11020 - 11061 [(inversion~H0;~subst;~econstru...] 0.009 secs (0.008u,0.s) +Chars 11020 - 11061 [(inversion~H0;~subst;~econstru...] 0.009 secs (0.009u,0.s) Chars 11067 - 11086 [all:~now~rewrite~H.] 0.002 secs (0.002u,0.s) Chars 11088 - 11092 [Qed.] 0.003 secs (0.003u,0.s) Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) @@ -156,9 +156,9 @@ Chars 11407 - 11413 [split.] 0. secs (0.u,0.s) Chars 11416 - 11417 [-] 0. secs (0.u,0.s) Chars 11418 - 11428 [(intros~HI).] 0. secs (0.u,0.s) Chars 11433 - 11462 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 11469 - 11476 [(inv~HI).] 0.009 secs (0.009u,0.s) +Chars 11469 - 11476 [(inv~HI).] 0.011 secs (0.01u,0.s) Chars 11483 - 11484 [+] 0. secs (0.u,0.s) -Chars 11485 - 11503 [(rewrite~H0~in~eq2).] 0.022 secs (0.022u,0.s) +Chars 11485 - 11503 [(rewrite~H0~in~eq2).] 0.025 secs (0.024u,0.s) Chars 11511 - 11544 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 11550 - 11551 [+] 0. secs (0.u,0.s) Chars 11552 - 11565 [econstructor.] 0. secs (0.u,0.s) @@ -170,9 +170,9 @@ Chars 11628 - 11646 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 11650 - 11651 [-] 0. secs (0.u,0.s) Chars 11652 - 11662 [(intros~HI).] 0. secs (0.u,0.s) Chars 11667 - 11696 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 11703 - 11710 [(inv~HI).] 0.011 secs (0.011u,0.s) +Chars 11703 - 11710 [(inv~HI).] 0.012 secs (0.012u,0.s) Chars 11717 - 11718 [+] 0. secs (0.u,0.s) -Chars 11719 - 11740 [(rewrite~<-~H0~in~eq2).] 0.018 secs (0.018u,0.s) +Chars 11719 - 11740 [(rewrite~<-~H0~in~eq2).] 0.021 secs (0.02u,0.s) Chars 11748 - 11781 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 11787 - 11788 [+] 0. secs (0.u,0.s) Chars 11789 - 11802 [econstructor.] 0. secs (0.u,0.s) @@ -180,37 +180,37 @@ Chars 11803 - 11819 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 11826 - 11827 [+] 0. secs (0.u,0.s) Chars 11828 - 11848 [(econstructor;~eauto).] 0.004 secs (0.004u,0.s) Chars 11849 - 11864 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 11866 - 11870 [Qed.] 0.006 secs (0.006u,0.s) -Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 11866 - 11870 [Qed.] 0.007 secs (0.007u,0.s) +Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) Chars 12086 - 12092 [Proof.] 0. secs (0.u,0.s) Chars 12095 - 12106 [(repeat~red).] 0. secs (0.u,0.s) Chars 12107 - 12116 [revert~t.] 0. secs (0.u,0.s) Chars 12120 - 12136 [tower~induction.] 0. secs (0.u,0.s) Chars 12140 - 12141 [{] 0. secs (0.u,0.s) Chars 12142 - 12148 [split.] 0. secs (0.u,0.s) -Chars 12149 - 12182 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) +Chars 12149 - 12182 [all:~(repeat~intro;~apply~H;~a...] 0.001 secs (0.001u,0.s) Chars 12183 - 12184 [}] 0. secs (0.u,0.s) Chars 12189 - 12195 [split.] 0. secs (0.u,0.s) Chars 12198 - 12199 [-] 0. secs (0.u,0.s) Chars 12200 - 12210 [(intros~HI).] 0. secs (0.u,0.s) Chars 12215 - 12244 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 12251 - 12258 [(inv~HI).] 0.009 secs (0.009u,0.s) +Chars 12251 - 12258 [(inv~HI).] 0.01 secs (0.01u,0.s) Chars 12265 - 12266 [+] 0. secs (0.u,0.s) -Chars 12267 - 12285 [(rewrite~H0~in~eq2).] 0.018 secs (0.018u,0.s) +Chars 12267 - 12285 [(rewrite~H0~in~eq2).] 0.02 secs (0.019u,0.s) Chars 12293 - 12326 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 12332 - 12333 [+] 0. secs (0.u,0.s) Chars 12334 - 12347 [econstructor.] 0. secs (0.u,0.s) Chars 12348 - 12363 [symmetry~in~H0.] 0. secs (0.u,0.s) Chars 12364 - 12380 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 12387 - 12388 [+] 0. secs (0.u,0.s) -Chars 12389 - 12409 [(econstructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 12389 - 12409 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) Chars 12410 - 12428 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 12432 - 12433 [-] 0. secs (0.u,0.s) Chars 12434 - 12444 [(intros~HI).] 0. secs (0.u,0.s) Chars 12450 - 12479 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 12486 - 12493 [(inv~HI).] 0.011 secs (0.011u,0.s) +Chars 12486 - 12493 [(inv~HI).] 0.013 secs (0.012u,0.s) Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12523 [(rewrite~<-~H0~in~eq2).] 0.016 secs (0.016u,0.s) +Chars 12502 - 12523 [(rewrite~<-~H0~in~eq2).] 0.018 secs (0.018u,0.s) Chars 12531 - 12564 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 12570 - 12571 [+] 0. secs (0.u,0.s) Chars 12572 - 12585 [econstructor.] 0. secs (0.u,0.s) @@ -218,17 +218,17 @@ Chars 12586 - 12602 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 12609 - 12610 [+] 0. secs (0.u,0.s) Chars 12611 - 12631 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) Chars 12632 - 12647 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 12649 - 12653 [Qed.] 0.006 secs (0.006u,0.s) +Chars 12649 - 12653 [Qed.] 0.007 secs (0.006u,0.s) Chars 12934 - 13050 [Lemma~inj_pair2~:~~~forall~(U~...] 0. secs (0.u,0.s) Chars 13051 - 13057 [Proof.] 0. secs (0.u,0.s) Chars 13060 - 13067 [(intros).] 0. secs (0.u,0.s) Chars 13068 - 13087 [(apply~JMeq.JMeq_eq).] 0. secs (0.u,0.s) Chars 13090 - 13202 [refine~~match~H~in~(_~=~w)~ret...] 0. secs (0.u,0.s) Chars 13203 - 13207 [Qed.] 0. secs (0.u,0.s) -Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) +Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) Chars 13409 - 13415 [Proof.] 0. secs (0.u,0.s) Chars 13418 - 13429 [(repeat~red).] 0. secs (0.u,0.s) -Chars 13430 - 13446 [tower~induction.] 0. secs (0.u,0.s) +Chars 13430 - 13446 [tower~induction.] 0.001 secs (0.001u,0.s) Chars 13450 - 13451 [{] 0. secs (0.u,0.s) Chars 13452 - 13458 [split.] 0. secs (0.u,0.s) Chars 13459 - 13492 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) @@ -238,18 +238,18 @@ Chars 13508 - 13509 [-] 0. secs (0.u,0.s) Chars 13510 - 13520 [(intros~HI).] 0. secs (0.u,0.s) Chars 13525 - 13554 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 13560 - 13571 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13579 - 13595 [(inv~HI;~simpobs).] 0.026 secs (0.026u,0.s) +Chars 13579 - 13595 [(inv~HI;~simpobs).] 0.03 secs (0.029u,0.s) Chars 13600 - 13601 [+] 0. secs (0.u,0.s) -Chars 13602 - 13609 [(inv~H0).] 0.009 secs (0.009u,0.s) +Chars 13602 - 13609 [(inv~H0).] 0.01 secs (0.01u,0.s) Chars 13610 - 13643 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 13649 - 13650 [+] 0. secs (0.u,0.s) -Chars 13651 - 13658 [(inv~H0).] 0.016 secs (0.016u,0.s) +Chars 13651 - 13658 [(inv~H0).] 0.018 secs (0.017u,0.s) Chars 13659 - 13672 [econstructor.] 0. secs (0.u,0.s) Chars 13673 - 13689 [symmetry~in~REL.] 0. secs (0.u,0.s) Chars 13690 - 13706 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 13712 - 13713 [+] 0. secs (0.u,0.s) Chars 13714 - 13744 [(eapply~eqitF_inv_VisF_l~in~H0).] 0. secs (0.u,0.s) -Chars 13745 - 13762 [(crunch;~try~easy).] 0.008 secs (0.008u,0.s) +Chars 13745 - 13762 [(crunch;~try~easy).] 0.01 secs (0.009u,0.s) Chars 13770 - 13778 [simpobs.] 0.003 secs (0.003u,0.s) Chars 13779 - 13799 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) Chars 13800 - 13807 [(intros).] 0. secs (0.u,0.s) @@ -261,24 +261,24 @@ Chars 13872 - 13873 [-] 0. secs (0.u,0.s) Chars 13874 - 13884 [(intros~HI).] 0. secs (0.u,0.s) Chars 13889 - 13918 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) Chars 13923 - 13934 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13942 - 13958 [(inv~HI;~simpobs).] 0.026 secs (0.026u,0.s) +Chars 13942 - 13958 [(inv~HI;~simpobs).] 0.029 secs (0.028u,0.s) Chars 13966 - 13967 [+] 0. secs (0.u,0.s) -Chars 13968 - 13975 [(inv~H0).] 0.01 secs (0.01u,0.s) +Chars 13968 - 13975 [(inv~H0).] 0.012 secs (0.012u,0.s) Chars 13976 - 14009 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) Chars 14015 - 14016 [+] 0. secs (0.u,0.s) -Chars 14017 - 14024 [(inv~H0).] 0.017 secs (0.017u,0.s) +Chars 14017 - 14024 [(inv~H0).] 0.019 secs (0.018u,0.s) Chars 14025 - 14038 [econstructor.] 0. secs (0.u,0.s) Chars 14039 - 14055 [(eapply~H;~eauto).] 0. secs (0.u,0.s) Chars 14061 - 14062 [+] 0. secs (0.u,0.s) Chars 14063 - 14093 [(eapply~eqitF_inv_VisF_r~in~H0).] 0. secs (0.u,0.s) -Chars 14094 - 14111 [(crunch;~try~easy).] 0.009 secs (0.009u,0.s) +Chars 14094 - 14111 [(crunch;~try~easy).] 0.011 secs (0.01u,0.s) Chars 14119 - 14127 [simpobs.] 0.003 secs (0.003u,0.s) Chars 14128 - 14148 [(econstructor;~eauto).] 0.001 secs (0.001u,0.s) Chars 14149 - 14156 [(intros).] 0. secs (0.u,0.s) Chars 14164 - 14173 [(eapply~H).] 0. secs (0.u,0.s) Chars 14182 - 14191 [(apply~H1).] 0. secs (0.u,0.s) Chars 14192 - 14203 [all:~eauto.] 0. secs (0.u,0.s) -Chars 14204 - 14208 [Qed.] 0.02 secs (0.02u,0.s) +Chars 14204 - 14208 [Qed.] 0.023 secs (0.022u,0.s) Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0.001 secs (0.001u,0.s) Chars 14547 - 14553 [Proof.] 0. secs (0.u,0.s) Chars 14556 - 14563 [(intros).] 0. secs (0.u,0.s) @@ -286,31 +286,31 @@ Chars 14566 - 14581 [revert~t~t'~H1.] 0. secs (0.u,0.s) Chars 14584 - 14596 [coinduction.] 0.001 secs (0.001u,0.s) Chars 14599 - 14614 [(intros~t~t'~eq).] 0. secs (0.u,0.s) Chars 14617 - 14661 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) -Chars 14664 - 14692 [(rewrite~(itree_eta~t)~in~eq).] 0.02 secs (0.02u,0.s) +Chars 14664 - 14692 [(rewrite~(itree_eta~t)~in~eq).] 0.023 secs (0.022u,0.s) Chars 14695 - 14725 [(destruct~(observe~t)~eqn:oeqt).] 0.001 secs (0.001u,0.s) Chars 14729 - 14730 [-] 0. secs (0.u,0.s) -Chars 14731 - 14745 [(rewrite~<-~eq).] 0.082 secs (0.082u,0.s) -Chars 14746 - 14766 [(rewrite~unfold_iter).] 0.079 secs (0.079u,0.s) +Chars 14731 - 14745 [(rewrite~<-~eq).] 0.094 secs (0.09u,0.001s) +Chars 14746 - 14766 [(rewrite~unfold_iter).] 0.088 secs (0.085u,0.001s) Chars 14767 - 14772 [bcbn.] 0. secs (0.u,0.s) -Chars 14778 - 14802 [(rewrite~Eqit.bind_ret_l).] 0.078 secs (0.078u,0.s) +Chars 14778 - 14802 [(rewrite~Eqit.bind_ret_l).] 0.086 secs (0.083u,0.001s) Chars 14803 - 14814 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14815 - 14823 [simpobs.] 0. secs (0.u,0.s) +Chars 14815 - 14823 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14824 - 14841 [now~econstructor.] 0. secs (0.u,0.s) Chars 14845 - 14846 [-] 0. secs (0.u,0.s) -Chars 14847 - 14861 [(rewrite~<-~eq).] 0.094 secs (0.087u,0.002s) -Chars 14862 - 14882 [(rewrite~unfold_iter).] 0.098 secs (0.088u,0.s) +Chars 14847 - 14861 [(rewrite~<-~eq).] 0.083 secs (0.081u,0.001s) +Chars 14862 - 14882 [(rewrite~unfold_iter).] 0.085 secs (0.082u,0.001s) Chars 14883 - 14888 [bcbn.] 0. secs (0.u,0.s) -Chars 14889 - 14913 [(rewrite~Eqit.bind_ret_l).] 0.103 secs (0.089u,0.s) -Chars 14918 - 14935 [(rewrite~tau_eutt).] 0.094 secs (0.088u,0.s) +Chars 14889 - 14913 [(rewrite~Eqit.bind_ret_l).] 0.08 secs (0.079u,0.s) +Chars 14918 - 14935 [(rewrite~tau_eutt).] 0.08 secs (0.079u,0.s) Chars 14941 - 14952 [(repeat~red).] 0. secs (0.u,0.s) Chars 14953 - 14961 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14962 - 14975 [econstructor.] 0. secs (0.u,0.s) -Chars 14976 - 14990 [now~apply~CIH.] 0.003 secs (0.u,0.s) +Chars 14976 - 14990 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 14995 - 14996 [-] 0. secs (0.u,0.s) -Chars 14997 - 15011 [(rewrite~<-~eq).] 0.142 secs (0.102u,0.002s) -Chars 15012 - 15032 [(rewrite~unfold_iter).] 0.102 secs (0.095u,0.001s) +Chars 14997 - 15011 [(rewrite~<-~eq).] 0.079 secs (0.078u,0.s) +Chars 15012 - 15032 [(rewrite~unfold_iter).] 0.084 secs (0.082u,0.s) Chars 15033 - 15038 [bcbn.] 0. secs (0.u,0.s) -Chars 15043 - 15060 [(rewrite~bind_map).] 0.1 secs (0.092u,0.s) +Chars 15043 - 15060 [(rewrite~bind_map).] 0.083 secs (0.081u,0.001s) Chars 15061 - 15081 [(repeat~red;~simpobs).] 0.001 secs (0.001u,0.s) Chars 15082 - 15095 [econstructor.] 0. secs (0.u,0.s) Chars 15100 - 15101 [+] 0. secs (0.u,0.s) @@ -322,9 +322,9 @@ Chars 15140 - 15157 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) Chars 15158 - 15170 [reflexivity.] 0. secs (0.u,0.s) Chars 15176 - 15177 [+] 0. secs (0.u,0.s) Chars 15178 - 15185 [(intros).] 0. secs (0.u,0.s) -Chars 15186 - 15203 [(rewrite~tau_eutt).] 0.036 secs (0.035u,0.s) +Chars 15186 - 15203 [(rewrite~tau_eutt).] 0.031 secs (0.03u,0.s) Chars 15204 - 15218 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 15220 - 15224 [Qed.] 0.018 secs (0.017u,0.s) +Chars 15220 - 15224 [Qed.] 0.015 secs (0.014u,0.s) Chars 15328 - 15564 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 15565 - 15571 [Proof.] 0. secs (0.u,0.s) Chars 15574 - 15581 [(intros).] 0. secs (0.u,0.s) @@ -339,18 +339,18 @@ Chars 15712 - 15724 [step~in~eqt.] 0. secs (0.u,0.s) Chars 15728 - 15744 [(genobs~t1~obst1).] 0. secs (0.u,0.s) Chars 15747 - 15763 [(genobs~t2~obst2).] 0. secs (0.u,0.s) Chars 15766 - 15802 [revert~t1~t2~Heqobst1~Heqobst2...] 0. secs (0.u,0.s) -Chars 15805 - 15827 [(induction~eqt;~intros).] 0.001 secs (0.001u,0.s) +Chars 15805 - 15827 [(induction~eqt;~intros).] 0.001 secs (0.u,0.s) Chars 15830 - 15831 [-] 0. secs (0.u,0.s) -Chars 15832 - 15839 [(inv~HI).] 0.008 secs (0.007u,0.s) +Chars 15832 - 15839 [(inv~HI).] 0.006 secs (0.006u,0.s) Chars 15840 - 15853 [econstructor.] 0. secs (0.u,0.s) Chars 15854 - 15875 [(etransitivity;~eauto).] 0. secs (0.u,0.s) Chars 15876 - 15882 [eauto.] 0. secs (0.u,0.s) Chars 15887 - 15888 [-] 0. secs (0.u,0.s) -Chars 15889 - 15896 [(inv~HI).] 0.007 secs (0.006u,0.s) +Chars 15889 - 15896 [(inv~HI).] 0.005 secs (0.005u,0.s) Chars 15902 - 15915 [econstructor.] 0. secs (0.u,0.s) Chars 15916 - 15934 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 15937 - 15938 [-] 0. secs (0.u,0.s) -Chars 15939 - 15946 [(inv~HI).] 0.009 secs (0.008u,0.s) +Chars 15939 - 15946 [(inv~HI).] 0.007 secs (0.007u,0.s) Chars 15952 - 15974 [(apply~inj_pair2~in~H1).] 0. secs (0.u,0.s) Chars 15979 - 16001 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) Chars 16006 - 16012 [subst.] 0. secs (0.u,0.s) @@ -372,12 +372,12 @@ Chars 16213 - 16225 [reflexivity.] 0. secs (0.u,0.s) Chars 16226 - 16238 [eassumption.] 0. secs (0.u,0.s) Chars 16239 - 16250 [assumption.] 0. secs (0.u,0.s) Chars 16253 - 16254 [-] 0. secs (0.u,0.s) -Chars 16255 - 16262 [(inv~HI).] 0.013 secs (0.012u,0.s) +Chars 16255 - 16262 [(inv~HI).] 0.01 secs (0.01u,0.s) Chars 16268 - 16281 [(eapply~IHeqt).] 0. secs (0.u,0.s) Chars 16282 - 16294 [reflexivity.] 0. secs (0.u,0.s) Chars 16295 - 16307 [reflexivity.] 0. secs (0.u,0.s) -Chars 16312 - 16323 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 16325 - 16329 [Qed.] 0.015 secs (0.014u,0.s) +Chars 16312 - 16323 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 16325 - 16329 [Qed.] 0.012 secs (0.012u,0.s) Chars 16331 - 16439 [Lemma~Leaf_Vis_sub~:~~~forall~...] 0. secs (0.u,0.s) Chars 16440 - 16446 [Proof.] 0. secs (0.u,0.s) Chars 16449 - 16456 [(intros).] 0. secs (0.u,0.s) @@ -390,8 +390,8 @@ Chars 16659 - 16665 [Proof.] 0. secs (0.u,0.s) Chars 16668 - 16679 [(intros~E~R).] 0. secs (0.u,0.s) Chars 16682 - 16701 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 16702 - 16709 [(intros).] 0. secs (0.u,0.s) -Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.004 secs (0.004u,0.s) -Chars 16752 - 16774 [(destruct~(observe~ta)).] 0.002 secs (0.002u,0.s) +Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.003 secs (0.003u,0.s) +Chars 16752 - 16774 [(destruct~(observe~ta)).] 0.001 secs (0.001u,0.s) Chars 16777 - 16778 [-] 0. secs (0.u,0.s) Chars 16779 - 16792 [econstructor.] 0. secs (0.u,0.s) Chars 16794 - 16806 [(split;~auto).] 0. secs (0.u,0.s) @@ -402,7 +402,7 @@ Chars 16839 - 16852 [econstructor.] 0. secs (0.u,0.s) Chars 16853 - 16863 [(apply~CIH).] 0. secs (0.u,0.s) Chars 16864 - 16871 [(intros).] 0. secs (0.u,0.s) Chars 16872 - 16882 [(eapply~IN).] 0. secs (0.u,0.s) -Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) Chars 16907 - 16908 [-] 0. secs (0.u,0.s) Chars 16909 - 16922 [econstructor.] 0. secs (0.u,0.s) Chars 16923 - 16930 [(intros).] 0. secs (0.u,0.s) @@ -411,7 +411,7 @@ Chars 16947 - 16954 [(intros).] 0. secs (0.u,0.s) Chars 16955 - 16965 [(eapply~IN).] 0. secs (0.u,0.s) Chars 16966 - 16986 [(eapply~Leaf_Vis_sub).] 0. secs (0.u,0.s) Chars 16987 - 16995 [(apply~H).] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.005 secs (0.005u,0.s) +Chars 16996 - 17000 [Qed.] 0.004 secs (0.004u,0.s) Chars 17002 - 17097 [Lemma~eutt_Leaf~:~~~forall~E~R...] 0. secs (0.u,0.s) Chars 17098 - 17104 [Proof.] 0. secs (0.u,0.s) Chars 17107 - 17114 [(intros).] 0. secs (0.u,0.s) @@ -428,26 +428,26 @@ Chars 17516 - 17538 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 17543 - 17544 [+] 0. secs (0.u,0.s) Chars 17545 - 17566 [(unfold~trigger~in~H0).] 0. secs (0.u,0.s) Chars 17567 - 17578 [step~in~H0.] 0. secs (0.u,0.s) -Chars 17586 - 17593 [(inv~H0).] 0.005 secs (0.004u,0.s) +Chars 17586 - 17593 [(inv~H0).] 0.003 secs (0.003u,0.s) Chars 17601 - 17623 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) Chars 17624 - 17646 [(apply~inj_pair2~in~H4).] 0. secs (0.u,0.s) Chars 17653 - 17659 [subst.] 0. secs (0.u,0.s) Chars 17666 - 17720 [(unfold~subevent,~resum,~ReSum...] 0. secs (0.u,0.s) -Chars 17727 - 17744 [(rewrite~eq2~in~H).] 0.021 secs (0.02u,0.s) +Chars 17727 - 17744 [(rewrite~eq2~in~H).] 0.017 secs (0.016u,0.s) Chars 17751 - 17783 [(assert~(x~<-~ta;;~k2~x~≈~ta)).] 0. secs (0.u,0.s) Chars 17790 - 17791 [{] 0. secs (0.u,0.s) Chars 17792 - 17824 [(rewrite~<-~(Eqit.bind_ret_r~t...] 0.002 secs (0.002u,0.s) Chars 17833 - 17902 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 17911 - 17935 [(rewrite~Eqit.bind_ret_r).] 0.001 secs (0.001u,0.s) +Chars 17911 - 17935 [(rewrite~Eqit.bind_ret_r).] 0. secs (0.u,0.s) Chars 17936 - 17952 [(apply~eutt_Leaf).] 0. secs (0.u,0.s) Chars 17961 - 17968 [(intros).] 0. secs (0.u,0.s) Chars 17969 - 17981 [(destruct~H0).] 0. secs (0.u,0.s) Chars 17982 - 17988 [subst.] 0. secs (0.u,0.s) Chars 17989 - 18011 [specialize~(HK~u2~H1).] 0. secs (0.u,0.s) -Chars 18012 - 18023 [step~in~HK.] 0.001 secs (0.u,0.s) -Chars 18024 - 18031 [(inv~HK).] 0.003 secs (0.002u,0.s) +Chars 18012 - 18023 [step~in~HK.] 0. secs (0.u,0.s) +Chars 18024 - 18031 [(inv~HK).] 0.001 secs (0.001u,0.s) Chars 18038 - 18039 [}] 0. secs (0.u,0.s) -Chars 18046 - 18062 [(rewrite~H0~in~H).] 0.044 secs (0.024u,0.s) +Chars 18046 - 18062 [(rewrite~H0~in~H).] 0.019 secs (0.018u,0.s) Chars 18069 - 18099 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) Chars 18100 - 18125 [(unfold~Eq1_iforest~in~HP).] 0. secs (0.u,0.s) Chars 18126 - 18153 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) @@ -467,14 +467,14 @@ Chars 18392 - 18416 [(rewrite~Eqit.bind_ret_r).] 0.001 secs (0.001u,0.s) Chars 18417 - 18428 [assumption.] 0. secs (0.u,0.s) Chars 18435 - 18436 [*] 0. secs (0.u,0.s) Chars 18437 - 18444 [(intros).] 0. secs (0.u,0.s) -Chars 18445 - 18450 [step.] 0.001 secs (0.u,0.s) +Chars 18445 - 18450 [step.] 0. secs (0.u,0.s) Chars 18451 - 18471 [(econstructor;~eauto).] 0. secs (0.u,0.s) Chars 18474 - 18475 [-] 0. secs (0.u,0.s) Chars 18476 - 18480 [(hnf).] 0. secs (0.u,0.s) Chars 18481 - 18503 [(intros;~split;~intros).] 0. secs (0.u,0.s) -Chars 18508 - 18521 [(rewrite~<-~H).] 0.052 secs (0.047u,0.s) +Chars 18508 - 18521 [(rewrite~<-~H).] 0.038 secs (0.038u,0.s) Chars 18522 - 18533 [assumption.] 0. secs (0.u,0.s) -Chars 18538 - 18548 [(rewrite~H).] 0.049 secs (0.046u,0.s) +Chars 18538 - 18548 [(rewrite~H).] 0.038 secs (0.038u,0.s) Chars 18549 - 18560 [assumption.] 0. secs (0.u,0.s) Chars 18563 - 18564 [-] 0. secs (0.u,0.s) Chars 18565 - 18569 [(hnf).] 0. secs (0.u,0.s) @@ -487,11 +487,11 @@ Chars 18692 - 18703 [assumption.] 0. secs (0.u,0.s) Chars 18708 - 18738 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) Chars 18739 - 18766 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) Chars 18771 - 18788 [(rewrite~P;~eauto).] 0. secs (0.u,0.s) -Chars 18789 - 18793 [Qed.] 0.012 secs (0.012u,0.s) +Chars 18789 - 18793 [Qed.] 0.011 secs (0.01u,0.s) Chars 19261 - 19411 [Lemma~interp_iforest_spin_acce...] 0. secs (0.u,0.s) Chars 19412 - 19418 [Proof.] 0. secs (0.u,0.s) Chars 19421 - 19428 [(intros).] 0. secs (0.u,0.s) -Chars 19431 - 19450 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 19431 - 19450 [icoinduction~c~CIH.] 0. secs (0.u,0.s) Chars 19451 - 19455 [(cbn).] 0. secs (0.u,0.s) Chars 19456 - 19469 [econstructor.] 0. secs (0.u,0.s) Chars 19470 - 19480 [(apply~CIH).] 0. secs (0.u,0.s) @@ -503,42 +503,42 @@ Chars 19740 - 19757 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) Chars 19760 - 19761 [-] 0. secs (0.u,0.s) Chars 19762 - 19784 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 19789 - 19790 [+] 0. secs (0.u,0.s) -Chars 19791 - 19804 [(rewrite~<-~H).] 0.035 secs (0.035u,0.s) +Chars 19791 - 19804 [(rewrite~<-~H).] 0.032 secs (0.032u,0.s) Chars 19811 - 19816 [step.] 0. secs (0.u,0.s) Chars 19817 - 19834 [now~econstructor.] 0. secs (0.u,0.s) Chars 19840 - 19841 [+] 0. secs (0.u,0.s) -Chars 19842 - 19852 [(rewrite~H).] 0.037 secs (0.036u,0.s) +Chars 19842 - 19852 [(rewrite~H).] 0.032 secs (0.032u,0.s) Chars 19859 - 19870 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19871 - 19878 [(inv~H0).] 0.002 secs (0.001u,0.s) +Chars 19871 - 19878 [(inv~H0).] 0.001 secs (0.001u,0.s) Chars 19881 - 19882 [-] 0. secs (0.u,0.s) Chars 19883 - 19901 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 19904 - 19905 [-] 0. secs (0.u,0.s) Chars 19906 - 19924 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19925 - 19929 [Qed.] 0.004 secs (0.003u,0.s) -Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0.001 secs (0.001u,0.s) +Chars 19925 - 19929 [Qed.] 0.003 secs (0.003u,0.s) +Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0. secs (0.u,0.s) Chars 20131 - 20137 [Proof.] 0. secs (0.u,0.s) Chars 20140 - 20147 [(intros).] 0. secs (0.u,0.s) Chars 20150 - 20160 [step~in~H.] 0. secs (0.u,0.s) -Chars 20161 - 20167 [(inv~H).] 0.002 secs (0.001u,0.s) +Chars 20161 - 20167 [(inv~H).] 0.001 secs (0.001u,0.s) Chars 20171 - 20188 [(exists~r2;~eauto).] 0. secs (0.u,0.s) Chars 20189 - 20193 [Qed.] 0.002 secs (0.002u,0.s) Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0.001 secs (0.001u,0.s) Chars 20468 - 20474 [Proof.] 0. secs (0.u,0.s) Chars 20477 - 20484 [(intros).] 0. secs (0.u,0.s) -Chars 20487 - 20494 [(sinv~H).] 0.005 secs (0.005u,0.s) +Chars 20487 - 20494 [(sinv~H).] 0.004 secs (0.004u,0.s) Chars 20498 - 20520 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) Chars 20523 - 20545 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) Chars 20548 - 20554 [subst.] 0. secs (0.u,0.s) Chars 20557 - 20567 [exists~ta.] 0. secs (0.u,0.s) Chars 20568 - 20578 [exists~k2.] 0. secs (0.u,0.s) Chars 20579 - 20591 [(split;~auto).] 0. secs (0.u,0.s) -Chars 20592 - 20596 [Qed.] 0.004 secs (0.004u,0.s) +Chars 20592 - 20596 [Qed.] 0.003 secs (0.003u,0.s) Chars 20598 - 20796 [Lemma~interp_iforest_tau_inv~:...] 0. secs (0.u,0.s) Chars 20797 - 20803 [Proof.] 0. secs (0.u,0.s) Chars 20806 - 20813 [(intros).] 0. secs (0.u,0.s) -Chars 20816 - 20823 [(sinv~H).] 0.002 secs (0.002u,0.s) -Chars 20825 - 20829 [Qed.] 0.002 secs (0.002u,0.s) -Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.003 secs (0.002u,0.s) +Chars 20816 - 20823 [(sinv~H).] 0.001 secs (0.001u,0.s) +Chars 20825 - 20829 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.002 secs (0.002u,0.s) Chars 21130 - 21136 [Proof.] 0. secs (0.u,0.s) Chars 21139 - 21182 [(intros~E1~E2~F~h1_spec~h2_spe...] 0. secs (0.u,0.s) Chars 21185 - 21213 [(unfold~handler_correct~in~*).] 0. secs (0.u,0.s) @@ -546,16 +546,16 @@ Chars 21216 - 21227 [(intros~T~e).] 0. secs (0.u,0.s) Chars 21230 - 21241 [(destruct~e).] 0. secs (0.u,0.s) Chars 21242 - 21251 [(apply~C1).] 0. secs (0.u,0.s) Chars 21252 - 21261 [(apply~C2).] 0. secs (0.u,0.s) -Chars 21262 - 21266 [Qed.] 0.001 secs (0.001u,0.s) +Chars 21262 - 21266 [Qed.] 0. secs (0.u,0.s) Chars 21268 - 21500 [Definition~iforest_compose~{F~...] 0. secs (0.u,0.s) Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0.001 secs (0.001u,0.s) -Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0.001 secs (0.u,0.s) +Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0. secs (0.u,0.s) Chars 21849 - 21993 [Definition~iter_cont~{I}~{E}~{...] 0. secs (0.u,0.s) -Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) +Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) Chars 22317 - 22547 [Lemma~eqit_Leaf_bind'~{E}~{R}~...] 0. secs (0.u,0.s) Chars 22548 - 22554 [Proof.] 0. secs (0.u,0.s) Chars 22557 - 22564 [(intros).] 0. secs (0.u,0.s) -Chars 22565 - 22597 [(eapply~eqit_clo_bind_gen;~eau...] 0.005 secs (0.005u,0.s) +Chars 22565 - 22597 [(eapply~eqit_clo_bind_gen;~eau...] 0.004 secs (0.004u,0.s) Chars 22598 - 22612 [(intros;~subst).] 0. secs (0.u,0.s) Chars 22616 - 22626 [(eapply~H0).] 0. secs (0.u,0.s) Chars 22627 - 22633 [eauto.] 0. secs (0.u,0.s) @@ -563,7 +563,7 @@ Chars 22635 - 22639 [Qed.] 0.001 secs (0.001u,0.s) Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0. secs (0.u,0.s) Chars 22916 - 22922 [Proof.] 0. secs (0.u,0.s) Chars 22925 - 22932 [(intros).] 0. secs (0.u,0.s) -Chars 22933 - 22965 [(eapply~eqit_clo_bind_gen;~eau...] 0.003 secs (0.003u,0.s) +Chars 22933 - 22965 [(eapply~eqit_clo_bind_gen;~eau...] 0.002 secs (0.002u,0.s) Chars 22966 - 22980 [(intros;~subst).] 0. secs (0.u,0.s) Chars 22984 - 22994 [(eapply~H0).] 0. secs (0.u,0.s) Chars 22995 - 23001 [eauto.] 0. secs (0.u,0.s) @@ -572,17 +572,17 @@ Chars 23009 - 23094 [Lemma~eutt_ret_vis_abs~:~~~for...] 0. secs (0.u,0.s) Chars 23095 - 23101 [Proof.] 0. secs (0.u,0.s) Chars 23104 - 23111 [(intros).] 0. secs (0.u,0.s) Chars 23114 - 23125 [now~sinv~H.] 0.002 secs (0.002u,0.s) -Chars 23127 - 23131 [Qed.] 0.003 secs (0.002u,0.s) +Chars 23127 - 23131 [Qed.] 0.002 secs (0.002u,0.s) Chars 23139 - 23218 [Ltac~simpl_iter~:=~unfold~iter...] 0. secs (0.u,0.s) -Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.005 secs (0.004u,0.s) -Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0.001 secs (0.001u,0.s) -Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.003 secs (0.003u,0.s) +Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.004 secs (0.003u,0.s) +Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0. secs (0.u,0.s) +Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.002 secs (0.002u,0.s) Chars 23925 - 23931 [Proof.] 0. secs (0.u,0.s) Chars 23934 - 23941 [(intros).] 0. secs (0.u,0.s) -Chars 23942 - 23965 [(rewrite~iter_dinatural).] 0.006 secs (0.006u,0.s) +Chars 23942 - 23965 [(rewrite~iter_dinatural).] 0.005 secs (0.005u,0.s) Chars 23966 - 23978 [reflexivity.] 0. secs (0.u,0.s) Chars 23979 - 23983 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.004 secs (0.004u,0.s) +Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.003 secs (0.003u,0.s) Chars 24680 - 24686 [Proof.] 0. secs (0.u,0.s) Chars 24689 - 24708 [(intros~a~b~m~x0~a1).] 0. secs (0.u,0.s) Chars 24711 - 24756 [(pose~proof~(iter_succ_dinatur...] 0. secs (0.u,0.s) @@ -592,7 +592,7 @@ Chars 24817 - 24857 [(unfold~cat~at~1,~Cat_Kleisli~...] 0. secs (0.u,0.s) Chars 24860 - 24979 [(match~goal~with~~|~H:(?body1~...] 0.002 secs (0.002u,0.s) Chars 24981 - 25000 [(assert~(s1~≈~s2)).] 0. secs (0.u,0.s) Chars 25001 - 25002 [{] 0. secs (0.u,0.s) -Chars 25007 - 25013 [subst.] 0.001 secs (0.u,0.s) +Chars 25007 - 25013 [subst.] 0. secs (0.u,0.s) Chars 25018 - 25171 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) Chars 25176 - 25205 [(assert~(iter~k1~⩯~iter~k2)).] 0.001 secs (0.001u,0.s) Chars 25206 - 25207 [{] 0. secs (0.u,0.s) @@ -607,31 +607,31 @@ Chars 25354 - 25368 [(do~3~red~in~H).] 0. secs (0.u,0.s) Chars 25373 - 25381 [(apply~H).] 0. secs (0.u,0.s) Chars 25384 - 25385 [}] 0. secs (0.u,0.s) Chars 25388 - 25401 [(rewrite~<-~H).] 0.002 secs (0.002u,0.s) -Chars 25402 - 25408 [subst.] 0.002 secs (0.002u,0.s) +Chars 25402 - 25408 [subst.] 0.001 secs (0.001u,0.s) Chars 25409 - 25417 [clear~H.] 0. secs (0.u,0.s) -Chars 25418 - 25429 [(rewrite~H0).] 0.004 secs (0.003u,0.s) +Chars 25418 - 25429 [(rewrite~H0).] 0.003 secs (0.003u,0.s) Chars 25432 - 25444 [(unfold~f,~g).] 0. secs (0.u,0.s) Chars 25447 - 25471 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 25472 - 25497 [(rewrite~Monad.bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 25472 - 25497 [(rewrite~Monad.bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 25500 - 25504 [(cbn).] 0. secs (0.u,0.s) Chars 25507 - 25615 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) Chars 25618 - 25647 [(assert~(iter~i1~⩯~iter~i2)).] 0.001 secs (0.001u,0.s) Chars 25648 - 25649 [{] 0. secs (0.u,0.s) Chars 25654 - 25683 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 25688 - 25694 [subst.] 0.001 secs (0.u,0.s) +Chars 25688 - 25694 [subst.] 0. secs (0.u,0.s) Chars 25699 - 25708 [(do~3~red).] 0. secs (0.u,0.s) Chars 25709 - 25716 [(intros).] 0. secs (0.u,0.s) Chars 25721 - 25733 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 25734 - 25757 [(rewrite~Eqit.bind_bind).] 0.004 secs (0.004u,0.s) +Chars 25734 - 25757 [(rewrite~Eqit.bind_bind).] 0.003 secs (0.003u,0.s) Chars 25762 - 25784 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) Chars 25785 - 25797 [reflexivity.] 0. secs (0.u,0.s) Chars 25802 - 25809 [(intros).] 0. secs (0.u,0.s) Chars 25810 - 25820 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 25821 - 25880 [(destruct~u2;~rewrite~Eqit.bin...] 0.01 secs (0.009u,0.s) +Chars 25821 - 25880 [(destruct~u2;~rewrite~Eqit.bin...] 0.008 secs (0.007u,0.s) Chars 25883 - 25884 [}] 0. secs (0.u,0.s) Chars 25887 - 25901 [(do~3~red~in~H).] 0. secs (0.u,0.s) Chars 25904 - 25912 [(apply~H).] 0. secs (0.u,0.s) -Chars 25913 - 25917 [Qed.] 0.016 secs (0.015u,0.s) +Chars 25913 - 25917 [Qed.] 0.013 secs (0.013u,0.s) Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0.001 secs (0.001u,0.s) Chars 26139 - 26240 [Lemma~Eq1_iforest'_Eq1_iforest...] 0. secs (0.u,0.s) Chars 26241 - 26247 [Proof.] 0. secs (0.u,0.s) @@ -656,7 +656,7 @@ Chars 26514 - 26524 [(apply~HXY).] 0. secs (0.u,0.s) Chars 26525 - 26537 [reflexivity.] 0. secs (0.u,0.s) Chars 26538 - 26549 [assumption.] 0. secs (0.u,0.s) Chars 26550 - 26554 [Qed.] 0.001 secs (0.001u,0.s) -Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0.001 secs (0.u,0.s) +Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 26740 - 26746 [Proof.] 0. secs (0.u,0.s) Chars 26749 - 26756 [(intros).] 0. secs (0.u,0.s) Chars 26759 - 26776 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) @@ -668,7 +668,7 @@ Chars 26840 - 26860 [(repeat~red~in~eqtt').] 0. secs (0.u,0.s) Chars 26867 - 26911 [(destruct~eqtt'~as~(ta,~(k,~(E...] 0. secs (0.u,0.s) Chars 26916 - 26917 [+] 0. secs (0.u,0.s) Chars 26918 - 26950 [(unfold~bind,~Monad_itree~in~E...] 0. secs (0.u,0.s) -Chars 26951 - 26991 [(rewrite~EQ1,~Eqit.bind_ret_l,...] 0.05 secs (0.049u,0.s) +Chars 26951 - 26991 [(rewrite~EQ1,~Eqit.bind_ret_l,...] 0.044 secs (0.043u,0.s) Chars 26998 - 27031 [(eapply~H;~[~apply~EQ2~|~apply...] 0. secs (0.u,0.s) Chars 27038 - 27050 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) Chars 27051 - 27070 [(constructor;~eauto).] 0. secs (0.u,0.s) @@ -696,7 +696,7 @@ Chars 27524 - 27535 [assumption.] 0. secs (0.u,0.s) Chars 27542 - 27544 [--] 0. secs (0.u,0.s) Chars 27545 - 27558 [(intros~?~RET).] 0. secs (0.u,0.s) Chars 27559 - 27592 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) -Chars 27593 - 27610 [(rewrite~EQ2,~EQ1).] 0.011 secs (0.011u,0.s) +Chars 27593 - 27610 [(rewrite~EQ2,~EQ1).] 0.01 secs (0.01u,0.s) Chars 27620 - 27624 [(cbn).] 0. secs (0.u,0.s) Chars 27625 - 27644 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 27645 - 27654 [(apply~KA).] 0. secs (0.u,0.s) @@ -712,7 +712,7 @@ Chars 27862 - 27874 [reflexivity.] 0. secs (0.u,0.s) Chars 27881 - 27883 [--] 0. secs (0.u,0.s) Chars 27884 - 27897 [(intros~?~RET).] 0. secs (0.u,0.s) Chars 27898 - 27931 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) -Chars 27932 - 27953 [(rewrite~EQ,~EQ2,~EQ1).] 0.016 secs (0.015u,0.s) +Chars 27932 - 27953 [(rewrite~EQ,~EQ2,~EQ1).] 0.015 secs (0.014u,0.s) Chars 27963 - 27967 [(cbn).] 0. secs (0.u,0.s) Chars 27968 - 27987 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 27988 - 27997 [(apply~KA).] 0. secs (0.u,0.s) @@ -758,7 +758,7 @@ Chars 28684 - 28696 [reflexivity.] 0. secs (0.u,0.s) Chars 28697 - 28708 [assumption.] 0. secs (0.u,0.s) Chars 28713 - 28714 [+] 0. secs (0.u,0.s) Chars 28715 - 28721 [split.] 0. secs (0.u,0.s) -Chars 28722 - 28734 [(rewrite~EQt).] 0.001 secs (0.001u,0.s) +Chars 28722 - 28734 [(rewrite~EQt).] 0. secs (0.u,0.s) Chars 28735 - 28746 [assumption.] 0. secs (0.u,0.s) Chars 28747 - 28754 [(intros).] 0. secs (0.u,0.s) Chars 28761 - 28779 [(repeat~red~in~EQK).] 0. secs (0.u,0.s) @@ -800,16 +800,16 @@ Chars 29819 - 29827 [(apply~H).] 0. secs (0.u,0.s) Chars 29828 - 29839 [assumption.] 0. secs (0.u,0.s) Chars 29842 - 29843 [-] 0. secs (0.u,0.s) Chars 29844 - 29853 [revert~H.] 0. secs (0.u,0.s) -Chars 29858 - 29920 [(induction~H0;~cbn;~unfold~ITr...] 0.097 secs (0.096u,0.s) +Chars 29858 - 29920 [(induction~H0;~cbn;~unfold~ITr...] 0.092 secs (0.09u,0.001s) Chars 29925 - 29926 [+] 0. secs (0.u,0.s) Chars 29927 - 29963 [(intros~H';~apply~eqit_inv_Ret...] 0. secs (0.u,0.s) Chars 29964 - 29969 [auto.] 0. secs (0.u,0.s) Chars 29974 - 29975 [+] 0. secs (0.u,0.s) -Chars 29976 - 30009 [(rewrite~2!tau_eutt;~apply~IHL...] 0.029 secs (0.029u,0.s) +Chars 29976 - 30009 [(rewrite~2!tau_eutt;~apply~IHL...] 0.026 secs (0.026u,0.s) Chars 30014 - 30015 [+] 0. secs (0.u,0.s) Chars 30016 - 30053 [(intros~H';~eapply~eqit_inv_Vi...] 0. secs (0.u,0.s) Chars 30054 - 30060 [eauto.] 0. secs (0.u,0.s) -Chars 30061 - 30065 [Qed.] 0.007 secs (0.007u,0.s) +Chars 30061 - 30065 [Qed.] 0.006 secs (0.006u,0.s) Chars 30067 - 30279 [Lemma~distinguish_bind~{E}~{A}...] 0. secs (0.u,0.s) Chars 30280 - 30286 [Proof.] 0. secs (0.u,0.s) Chars 30289 - 30339 [(intros~HI;~eapply~eqit_bind_L...] 0. secs (0.u,0.s) @@ -819,24 +819,24 @@ Chars 30503 - 30509 [Proof.] 0. secs (0.u,0.s) Chars 30512 - 30541 [(intros~[b]~ta~[tb~HK]~a~HRet).] 0. secs (0.u,0.s) Chars 30542 - 30585 [(revert~tb~HK;~induction~HRet;...] 0. secs (0.u,0.s) Chars 30588 - 30589 [-] 0. secs (0.u,0.s) -Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.012 secs (0.012u,0.s) -Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.003 secs (0.003u,0.s) +Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.01 secs (0.01u,0.s) +Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.002 secs (0.002u,0.s) Chars 30652 - 30690 [(generalize~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) -Chars 30691 - 30721 [(rewrite~(HK~(fun~_~=>~ret~b))).] 0.013 secs (0.013u,0.s) +Chars 30691 - 30721 [(rewrite~(HK~(fun~_~=>~ret~b))).] 0.011 secs (0.011u,0.s) Chars 30726 - 30750 [(apply~eutt_Ret_spin_abs).] 0. secs (0.u,0.s) Chars 30753 - 30754 [-] 0. secs (0.u,0.s) Chars 30755 - 30774 [(eapply~(IHHRet~tb)).] 0. secs (0.u,0.s) Chars 30775 - 30803 [(intros~k;~specialize~(HK~k)).] 0. secs (0.u,0.s) Chars 30808 - 30818 [(cbn~in~HK).] 0. secs (0.u,0.s) -Chars 30819 - 30848 [(rewrite~unfold_bind,~H~in~HK).] 0.028 secs (0.028u,0.s) +Chars 30819 - 30848 [(rewrite~unfold_bind,~H~in~HK).] 0.025 secs (0.025u,0.s) Chars 30849 - 30872 [(rewrite~tau_eutt~in~HK).] 0. secs (0.u,0.s) Chars 30873 - 30878 [auto.] 0. secs (0.u,0.s) Chars 30881 - 30882 [-] 0. secs (0.u,0.s) -Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.011 secs (0.011u,0.s) +Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.01 secs (0.01u,0.s) Chars 30917 - 30951 [(setoid_rewrite~H~in~HK;~clear...] 0.003 secs (0.003u,0.s) Chars 30956 - 30996 [(pose~proof~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) Chars 31001 - 31057 [(apply~(IHHRet~(ITree.bind~(k~...] 0. secs (0.u,0.s) -Chars 31062 - 31095 [(intros~k';~rewrite~(HK~k')~in...] 0.017 secs (0.017u,0.s) +Chars 31062 - 31095 [(intros~k';~rewrite~(HK~k')~in...] 0.016 secs (0.016u,0.s) Chars 31100 - 31143 [(eapply~eqit_inv_Vis~in~t2;~sy...] 0. secs (0.u,0.s) Chars 31144 - 31148 [Qed.] 0.004 secs (0.004u,0.s) Chars 31206 - 31324 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) @@ -867,16 +867,16 @@ Chars 31890 - 31925 [(intros~x~y~EQ;~split;~intros~...] 0. secs (0.u,0.s) Chars 31930 - 31931 [*] 0. secs (0.u,0.s) Chars 31932 - 31941 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 31948 - 31994 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) -Chars 32001 - 32043 [(exists~ta,k;~split;~[~auto~|~...] 0.001 secs (0.001u,0.s) +Chars 32001 - 32043 [(exists~ta,k;~split;~[~auto~|~...] 0. secs (0.u,0.s) Chars 32050 - 32070 [(rewrite~<-~EQ;~auto).] 0.001 secs (0.001u,0.s) Chars 32076 - 32077 [*] 0. secs (0.u,0.s) Chars 32078 - 32087 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 32094 - 32140 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) -Chars 32147 - 32189 [(exists~ta,k;~split;~[~auto~|~...] 0.001 secs (0.001u,0.s) -Chars 32196 - 32213 [(rewrite~EQ;~auto).] 0.001 secs (0.001u,0.s) +Chars 32147 - 32189 [(exists~ta,k;~split;~[~auto~|~...] 0. secs (0.u,0.s) +Chars 32196 - 32213 [(rewrite~EQ;~auto).] 0. secs (0.u,0.s) Chars 32216 - 32217 [+] 0. secs (0.u,0.s) Chars 32218 - 32223 [auto.] 0. secs (0.u,0.s) -Chars 32224 - 32228 [Qed.] 0.004 secs (0.004u,0.s) +Chars 32224 - 32228 [Qed.] 0.004 secs (0.003u,0.s) Chars 32230 - 32323 [Definition~EQ_REL~{E}~{A}~(ta~...] 0. secs (0.u,0.s) Chars 32325 - 32395 [Lemma~Symmteric_EQ_REL~{E}~{A}...] 0. secs (0.u,0.s) Chars 32396 - 32402 [Proof.] 0. secs (0.u,0.s) @@ -927,11 +927,11 @@ Chars 33148 - 33154 [Proof.] 0. secs (0.u,0.s) Chars 33157 - 33168 [(repeat~red).] 0. secs (0.u,0.s) Chars 33171 - 33193 [(intros;~split;~intros).] 0. secs (0.u,0.s) Chars 33196 - 33197 [-] 0. secs (0.u,0.s) -Chars 33199 - 33213 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) -Chars 33214 - 33228 [(rewrite~<-~H1).] 0.002 secs (0.002u,0.s) +Chars 33199 - 33213 [(rewrite~<-~H0).] 0. secs (0.u,0.s) +Chars 33214 - 33228 [(rewrite~<-~H1).] 0.001 secs (0.001u,0.s) Chars 33234 - 33246 [clear~H0~H1.] 0. secs (0.u,0.s) Chars 33252 - 33263 [(destruct~H).] 0. secs (0.u,0.s) -Chars 33269 - 33293 [(eapply~eqit_mono;~eauto).] 0.002 secs (0.002u,0.s) +Chars 33269 - 33293 [(eapply~eqit_mono;~eauto).] 0.001 secs (0.001u,0.s) Chars 33296 - 33297 [-] 0. secs (0.u,0.s) Chars 33298 - 33313 [(rewrite~H0,~H1).] 0.002 secs (0.002u,0.s) Chars 33318 - 33329 [(destruct~H).] 0. secs (0.u,0.s) @@ -948,7 +948,7 @@ Chars 33550 - 33563 [econstructor.] 0. secs (0.u,0.s) Chars 33564 - 33574 [(apply~HEQ).] 0. secs (0.u,0.s) Chars 33575 - 33579 [(red).] 0. secs (0.u,0.s) Chars 33580 - 33592 [(split;~auto).] 0. secs (0.u,0.s) -Chars 33598 - 33616 [(rewrite~itree_eta).] 0.003 secs (0.002u,0.s) +Chars 33598 - 33616 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) Chars 33617 - 33629 [(rewrite~hta).] 0. secs (0.u,0.s) Chars 33630 - 33646 [now~constructor.] 0. secs (0.u,0.s) Chars 33650 - 33651 [-] 0. secs (0.u,0.s) @@ -969,13 +969,13 @@ Chars 33827 - 33850 [(rewrite~itree_eta,~hta).] 0.002 secs (0.002u,0.s) Chars 33855 - 33866 [(destruct~H).] 0. secs (0.u,0.s) Chars 33871 - 33883 [(split;~auto).] 0. secs (0.u,0.s) Chars 33888 - 33910 [(econstructor~3;~eauto).] 0. secs (0.u,0.s) -Chars 33912 - 33916 [Qed.] 0.006 secs (0.005u,0.s) +Chars 33912 - 33916 [Qed.] 0.004 secs (0.004u,0.s) Chars 33918 - 33996 [Lemma~eutt_EQ_REL_Reflexive~{E...] 0. secs (0.u,0.s) Chars 33997 - 34003 [Proof.] 0. secs (0.u,0.s) Chars 34006 - 34039 [now~apply~eutt_EQ_REL_Reflexive_.] 0. secs (0.u,0.s) Chars 34041 - 34045 [Qed.] 0. secs (0.u,0.s) Chars 34047 - 34146 [Definition~RET_EQ~{E}~{A}~(ta~...] 0. secs (0.u,0.s) -Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.002 secs (0.001u,0.s) +Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 34539 - 34545 [Proof.] 0. secs (0.u,0.s) Chars 34577 - 34622 [(intros~E~A~B~C~PA~KB~KC~PQOK~...] 0. secs (0.u,0.s) Chars 34629 - 34642 [(red~in~eqtt').] 0. secs (0.u,0.s) @@ -986,11 +986,11 @@ Chars 34766 - 34776 [exists~ta.] 0. secs (0.u,0.s) Chars 34777 - 34818 [exists~(fun~a~=>~ITree.bind~(k...] 0. secs (0.u,0.s) Chars 34825 - 34847 [(split;~[~auto~|~~];~split).] 0. secs (0.u,0.s) Chars 34854 - 34855 [*] 0. secs (0.u,0.s) -Chars 34856 - 34886 [(setoid_rewrite~EQc;~clear~EQc).] 0.003 secs (0.003u,0.s) +Chars 34856 - 34886 [(setoid_rewrite~EQc;~clear~EQc).] 0.003 secs (0.002u,0.s) Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.002 secs (0.002u,0.s) Chars 34915 - 34957 [(setoid_rewrite~EQb~in~HRkbc;~...] 0.002 secs (0.002u,0.s) Chars 34966 - 34991 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 35000 - 35023 [(rewrite~Eqit.bind_bind).] 0.001 secs (0.001u,0.s) +Chars 35000 - 35023 [(rewrite~Eqit.bind_bind).] 0. secs (0.u,0.s) Chars 35024 - 35036 [reflexivity.] 0. secs (0.u,0.s) Chars 35043 - 35044 [*] 0. secs (0.u,0.s) Chars 35045 - 35059 [(intros~a~HRet).] 0. secs (0.u,0.s) @@ -1003,19 +1003,19 @@ Chars 35154 - 35168 [(intros~b~HRET).] 0. secs (0.u,0.s) Chars 35169 - 35181 [(apply~HRkbc).] 0. secs (0.u,0.s) Chars 35182 - 35194 [(rewrite~EQb).] 0.002 secs (0.002u,0.s) Chars 35195 - 35219 [(eapply~Leaf_bind;~eauto).] 0. secs (0.u,0.s) -Chars 35220 - 35224 [Qed.] 0.004 secs (0.004u,0.s) +Chars 35220 - 35224 [Qed.] 0.003 secs (0.003u,0.s) Chars 35226 - 35258 [Module~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) Chars 35262 - 35312 [Inductive~ND~:~Type~->~Prop~:=...] 0. secs (0.u,0.s) Chars 35316 - 35399 [Definition~PA~:~iforest~ND~boo...] 0. secs (0.u,0.s) Chars 35403 - 35462 [Definition~KB~:~bool~->~ifores...] 0. secs (0.u,0.s) -Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0.001 secs (0.001u,0.s) +Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0. secs (0.u,0.s) Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.001 secs (0.001u,0.s) Chars 35958 - 36019 [Lemma~bind_right_assoc~:~bind~...] 0. secs (0.u,0.s) Chars 36022 - 36028 [Proof.] 0. secs (0.u,0.s) Chars 36033 - 36044 [(repeat~red).] 0. secs (0.u,0.s) Chars 36049 - 36071 [exists~(trigger~Pick).] 0. secs (0.u,0.s) Chars 36076 - 36293 [exists~~~~(fun~b~:~bool~=>~~~~...] 0.001 secs (0.001u,0.s) -Chars 36298 - 36310 [(split;~auto).] 0.001 secs (0.u,0.s) +Chars 36298 - 36310 [(split;~auto).] 0. secs (0.u,0.s) Chars 36315 - 36319 [(red).] 0. secs (0.u,0.s) Chars 36320 - 36332 [reflexivity.] 0. secs (0.u,0.s) Chars 36337 - 36343 [split.] 0. secs (0.u,0.s) @@ -1057,14 +1057,14 @@ Chars 36927 - 36943 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 36948 - 36989 [(destruct~H~as~(ta,~(k,~(HB,~(...] 0. secs (0.u,0.s) Chars 36994 - 37039 [(destruct~HB~as~(tb,~(kb,~(HX,...] 0. secs (0.u,0.s) Chars 37044 - 37054 [(red~in~HX).] 0. secs (0.u,0.s) -Chars 37059 - 37075 [(rewrite~HX~in~*).] 0.003 secs (0.002u,0.s) +Chars 37059 - 37075 [(rewrite~HX~in~*).] 0.001 secs (0.001u,0.s) Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.002 secs (0.002u,0.s) Chars 37112 - 37124 [clear~tb~HX.] 0. secs (0.u,0.s) -Chars 37129 - 37149 [(rewrite~HEQ'~in~HEQ).] 0.002 secs (0.001u,0.s) +Chars 37129 - 37149 [(rewrite~HEQ'~in~HEQ).] 0.001 secs (0.001u,0.s) Chars 37154 - 37170 [(unfold~t~in~HEQ).] 0. secs (0.u,0.s) Chars 37175 - 37207 [(unfold~bind,~Monad_itree~in~H...] 0. secs (0.u,0.s) -Chars 37212 - 37242 [(rewrite~Eqit.bind_bind~in~HEQ).] 0.007 secs (0.006u,0.s) -Chars 37247 - 37576 [(assert~~~(forall~r,~~~~Leaf~r...] 0.002 secs (0.002u,0.s) +Chars 37212 - 37242 [(rewrite~Eqit.bind_bind~in~HEQ).] 0.005 secs (0.005u,0.s) +Chars 37247 - 37576 [(assert~~~(forall~r,~~~~Leaf~r...] 0.001 secs (0.001u,0.s) Chars 37581 - 37606 [(apply~eqit_bind_Leaf_inv).] 0. secs (0.u,0.s) Chars 37607 - 37617 [(apply~HEQ).] 0. secs (0.u,0.s) Chars 37622 - 37662 [(assert~(Leaf~true~(ITree.trig...] 0. secs (0.u,0.s) @@ -1107,8 +1107,8 @@ Chars 38212 - 38222 [(red~in~H2).] 0. secs (0.u,0.s) Chars 38223 - 38233 [(red~in~H3).] 0. secs (0.u,0.s) Chars 38234 - 38244 [(red~in~H2).] 0. secs (0.u,0.s) Chars 38245 - 38255 [(red~in~H3).] 0. secs (0.u,0.s) -Chars 38260 - 38277 [(rewrite~H2~in~H0).] 0.002 secs (0.002u,0.s) -Chars 38282 - 38299 [(rewrite~H3~in~H1).] 0.002 secs (0.002u,0.s) +Chars 38260 - 38277 [(rewrite~H2~in~H0).] 0.001 secs (0.001u,0.s) +Chars 38282 - 38299 [(rewrite~H3~in~H1).] 0.001 secs (0.001u,0.s) Chars 38304 - 38324 [(rewrite~<-~H0~in~H1).] 0.001 secs (0.001u,0.s) Chars 38329 - 38378 [(apply~eqit_bind_Leaf_inv~with...] 0. secs (0.u,0.s) Chars 38383 - 38408 [(apply~eqit_inv_Ret~in~H1).] 0. secs (0.u,0.s) @@ -1120,7 +1120,7 @@ Chars 38461 - 38473 [reflexivity.] 0. secs (0.u,0.s) Chars 38474 - 38488 [constructor~1.] 0. secs (0.u,0.s) Chars 38489 - 38501 [reflexivity.] 0. secs (0.u,0.s) Chars 38502 - 38503 [}] 0. secs (0.u,0.s) -Chars 38504 - 38508 [Qed.] 0.006 secs (0.005u,0.s) +Chars 38504 - 38508 [Qed.] 0.004 secs (0.004u,0.s) Chars 38510 - 38622 [Lemma~bind_bind_counterexample...] 0. secs (0.u,0.s) Chars 38623 - 38629 [Proof.] 0. secs (0.u,0.s) Chars 38632 - 38641 [exists~t.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceBind.v.timing b/extra/ITrace/ITraceBind.v.timing index e5ab84ce..5891e331 100644 --- a/extra/ITrace/ITraceBind.v.timing +++ b/extra/ITrace/ITraceBind.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.002s) Chars 39 - 82 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 84 - 221 [From~ITree~Require~Import~Basi...] 0.227 secs (0.198u,0.028s) -Chars 223 - 334 [From~ITree.Extra~Require~Impor...] 0.017 secs (0.014u,0.002s) +Chars 84 - 221 [From~ITree~Require~Import~Basi...] 0.223 secs (0.193u,0.03s) +Chars 223 - 334 [From~ITree.Extra~Require~Impor...] 0.015 secs (0.012u,0.002s) Chars 336 - 350 [Import~Monads.] 0. secs (0.u,0.s) Chars 351 - 372 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 373 - 402 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -16,7 +16,7 @@ Chars 931 - 937 [subst.] 0. secs (0.u,0.s) Chars 938 - 1019 [(apply~~~(Vis~(evans~_~e0~a)~(...] 0. secs (0.u,0.s) Chars 1022 - 1023 [-] 0. secs (0.u,0.s) Chars 1024 - 1041 [(apply~ITree.spin).] 0. secs (0.u,0.s) -Chars 1042 - 1050 [Defined.] 0.001 secs (0.u,0.s) +Chars 1042 - 1050 [Defined.] 0. secs (0.u,0.s) Chars 1052 - 1645 [CoFixpoint~peel_~{E}~{R}~{S}~(...] 0.004 secs (0.003u,0.s) Chars 1647 - 1752 [Definition~peel~{E}~{R}~{S}~(b...] 0. secs (0.u,0.s) Chars 1787 - 1986 [Definition~peel_cont_vis~{E}~{...] 0. secs (0.u,0.s) @@ -30,7 +30,7 @@ Chars 2099 - 2116 [(apply~ITree.spin).] 0. secs (0.u,0.s) Chars 2117 - 2125 [Defined.] 0. secs (0.u,0.s) Chars 2209 - 2815 [CoFixpoint~peel_cont_~{E}~{R}~...] 0.003 secs (0.002u,0.s) Chars 2817 - 2946 [Definition~peel_cont~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 2948 - 3113 [Lemma~refine_ret_vis_contra~:~...] 0.033 secs (0.029u,0.003s) +Chars 2948 - 3113 [Lemma~refine_ret_vis_contra~:~...] 0.032 secs (0.028u,0.003s) Chars 3114 - 3120 [Proof.] 0. secs (0.u,0.s) Chars 3123 - 3130 [(intros).] 0. secs (0.u,0.s) Chars 3131 - 3145 [intro~Hcontra.] 0. secs (0.u,0.s) @@ -40,2075 +40,2075 @@ Chars 3304 - 3408 [Lemma~peel_t_ret~:~~~forall~E~...] 0. secs (0.u,0.s) Chars 3409 - 3415 [Proof.] 0. secs (0.u,0.s) Chars 3418 - 3425 [(intros).] 0. secs (0.u,0.s) Chars 3427 - 3439 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 3442 - 3471 [(sinv~H;~subst;~try~inv~CHECK).] 0.01 secs (0.01u,0.s) -Chars 3474 - 3506 [(destruct~(observe~b);~cbn;~au...] 0.001 secs (0.001u,0.s) -Chars 3509 - 3510 [-] 0. secs (0.u,0.s) -Chars 3511 - 3516 [step.] 0.002 secs (0.002u,0.s) -Chars 3517 - 3521 [(cbn).] 0. secs (0.u,0.s) -Chars 3522 - 3534 [constructor.] 0. secs (0.u,0.s) -Chars 3535 - 3540 [auto.] 0. secs (0.u,0.s) -Chars 3543 - 3544 [-] 0. secs (0.u,0.s) -Chars 3545 - 3550 [step.] 0.001 secs (0.001u,0.s) -Chars 3551 - 3555 [(cbn).] 0. secs (0.u,0.s) -Chars 3556 - 3574 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 3577 - 3578 [-] 0. secs (0.u,0.s) -Chars 3579 - 3584 [step.] 0.001 secs (0.001u,0.s) -Chars 3585 - 3589 [(cbn).] 0. secs (0.u,0.s) -Chars 3590 - 3596 [(simpl).] 0. secs (0.u,0.s) -Chars 3597 - 3608 [(destruct~e).] 0. secs (0.u,0.s) -Chars 3613 - 3614 [+] 0. secs (0.u,0.s) -Chars 3615 - 3619 [(cbn).] 0. secs (0.u,0.s) -Chars 3620 - 3632 [constructor.] 0. secs (0.u,0.s) -Chars 3633 - 3638 [auto.] 0. secs (0.u,0.s) -Chars 3643 - 3644 [+] 0. secs (0.u,0.s) -Chars 3645 - 3649 [(cbn).] 0. secs (0.u,0.s) -Chars 3650 - 3662 [constructor.] 0. secs (0.u,0.s) -Chars 3663 - 3668 [auto.] 0. secs (0.u,0.s) -Chars 3669 - 3673 [Qed.] 0.052 secs (0.052u,0.s) -Chars 3750 - 3964 [Lemma~peel_refine_t~:~~~forall...] 0. secs (0.u,0.s) -Chars 3965 - 3971 [Proof.] 0. secs (0.u,0.s) -Chars 3974 - 3993 [(intros~E~R~S~b~t~f).] 0. secs (0.u,0.s) -Chars 3994 - 4017 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 4018 - 4041 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4044 - 4063 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4064 - 4071 [(intros).] 0. secs (0.u,0.s) -Chars 4074 - 4088 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 4089 - 4102 [(cbn~in~Hrutt).] 0. secs (0.u,0.s) -Chars 4106 - 4118 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 4121 - 4152 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) -Chars 4155 - 4156 [-] 0. secs (0.u,0.s) -Chars 4157 - 4208 [(destruct~(observe~b);~cbn;~tr...] 0.001 secs (0.001u,0.s) -Chars 4213 - 4248 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) -Chars 4251 - 4252 [-] 0. secs (0.u,0.s) -Chars 4253 - 4279 [dependent~induction~Hrutt.] 0.061 secs (0.06u,0.001s) -Chars 4284 - 4285 [+] 0. secs (0.u,0.s) -Chars 4286 - 4294 [exfalso.] 0. secs (0.u,0.s) -Chars 4295 - 4311 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4312 - 4333 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4334 - 4353 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 4360 - 4377 [(rewrite~Heq~in~x).] 0.022 secs (0.021u,0.001s) -Chars 4378 - 4400 [(rewrite~bind_tau~in~x).] 0.019 secs (0.019u,0.s) -Chars 4401 - 4408 [sinv~x.] 0.006 secs (0.006u,0.s) -Chars 4413 - 4414 [+] 0. secs (0.u,0.s) -Chars 4415 - 4423 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 4424 - 4428 [(cbn).] 0. secs (0.u,0.s) -Chars 4429 - 4441 [constructor.] 0. secs (0.u,0.s) -Chars 4442 - 4453 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 4461 - 4477 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4478 - 4498 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) -Chars 4505 - 4524 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 4525 - 4546 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4553 - 4577 [(apply~eq_sub_eutt~in~x0).] 0. secs (0.u,0.s) -Chars 4578 - 4603 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 4610 - 4634 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 4635 - 4658 [(rewrite~tau_eutt~in~x0).] 0. secs (0.u,0.s) -Chars 4665 - 4680 [(rewrite~<-~Heq).] 0.005 secs (0.004u,0.s) -Chars 4681 - 4691 [(rewrite~x).] 0.003 secs (0.003u,0.s) -Chars 4692 - 4709 [(rewrite~tau_eutt).] 0.003 secs (0.003u,0.s) -Chars 4710 - 4715 [auto.] 0. secs (0.u,0.s) -Chars 4720 - 4721 [+] 0. secs (0.u,0.s) -Chars 4722 - 4730 [exfalso.] 0. secs (0.u,0.s) -Chars 4731 - 4747 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4748 - 4769 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4776 - 4795 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 4802 - 4819 [(rewrite~Heq~in~x).] 0.017 secs (0.017u,0.s) -Chars 4820 - 4842 [(rewrite~bind_tau~in~x).] 0.017 secs (0.017u,0.s) -Chars 4843 - 4850 [sinv~x.] 0.007 secs (0.007u,0.s) -Chars 4855 - 4856 [+] 0. secs (0.u,0.s) -Chars 4857 - 4865 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 4866 - 4870 [(cbn).] 0. secs (0.u,0.s) -Chars 4871 - 4883 [constructor.] 0. secs (0.u,0.s) -Chars 4884 - 4895 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 4902 - 4916 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 4917 - 4933 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4934 - 4955 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4962 - 4987 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 4988 - 5012 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5019 - 5034 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) -Chars 5035 - 5040 [step.] 0.001 secs (0.001u,0.s) -Chars 5041 - 5046 [auto.] 0. secs (0.u,0.s) -Chars 5051 - 5052 [+] 0. secs (0.u,0.s) -Chars 5053 - 5057 [(cbn).] 0. secs (0.u,0.s) -Chars 5058 - 5090 [(destruct~(observe~b)~eqn:Heq').] 0.004 secs (0.004u,0.s) -Chars 5097 - 5098 [*] 0. secs (0.u,0.s) -Chars 5099 - 5103 [(cbn).] 0. secs (0.u,0.s) -Chars 5104 - 5120 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) -Chars 5121 - 5133 [constructor.] 0. secs (0.u,0.s) -Chars 5134 - 5145 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 5154 - 5171 [symmetry~in~Heq'.] 0. secs (0.u,0.s) -Chars 5180 - 5202 [(apply~simpobs~in~Heq').] 0. secs (0.u,0.s) -Chars 5203 - 5216 [(rewrite~Heq').] 0.004 secs (0.004u,0.s) -Chars 5225 - 5241 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5242 - 5263 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 5272 - 5297 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5298 - 5322 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5331 - 5346 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) -Chars 5347 - 5366 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 5367 - 5377 [(rewrite~x).] 0.004 secs (0.004u,0.s) -Chars 5386 - 5403 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) -Chars 5404 - 5409 [step.] 0.001 secs (0.001u,0.s) -Chars 5410 - 5415 [auto.] 0. secs (0.u,0.s) -Chars 5422 - 5423 [*] 0. secs (0.u,0.s) -Chars 5424 - 5428 [(cbn).] 0. secs (0.u,0.s) -Chars 5429 - 5443 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 5452 - 5464 [constructor.] 0. secs (0.u,0.s) -Chars 5465 - 5476 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 5486 - 5502 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5503 - 5524 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 5533 - 5558 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5559 - 5583 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5592 - 5607 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) -Chars 5616 - 5635 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 5636 - 5659 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) -Chars 5668 - 5690 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) -Chars 5691 - 5701 [(rewrite~x).] 0.003 secs (0.003u,0.s) -Chars 5710 - 5733 [(enough~(Tau~t1~⊑~t2)).] 0. secs (0.u,0.s) -Chars 5742 - 5743 [{] 0. secs (0.u,0.s) -Chars 5744 - 5766 [(rewrite~tau_eutt~in~H).] 0.003 secs (0.003u,0.s) -Chars 5767 - 5772 [auto.] 0. secs (0.u,0.s) -Chars 5773 - 5774 [}] 0. secs (0.u,0.s) -Chars 5783 - 5788 [step.] 0.001 secs (0.001u,0.s) -Chars 5789 - 5794 [auto.] 0. secs (0.u,0.s) -Chars 5801 - 5802 [*] 0. secs (0.u,0.s) -Chars 5803 - 5819 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) -Chars 5828 - 5830 [++] 0. secs (0.u,0.s) -Chars 5831 - 5843 [constructor.] 0. secs (0.u,0.s) -Chars 5844 - 5860 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) -Chars 5861 - 5875 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 5887 - 5898 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 5899 - 5915 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5927 - 5948 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 5949 - 5974 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5986 - 6010 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 6011 - 6030 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6042 - 6065 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6066 - 6088 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6100 - 6115 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) -Chars 6116 - 6126 [(rewrite~x).] 0.005 secs (0.005u,0.s) -Chars 6127 - 6132 [step.] 0.001 secs (0.001u,0.s) -Chars 6145 - 6158 [(rewrite~Heq').] 0. secs (0.u,0.s) -Chars 6159 - 6164 [auto.] 0. secs (0.u,0.s) -Chars 6173 - 6175 [++] 0. secs (0.u,0.s) -Chars 6176 - 6188 [constructor.] 0. secs (0.u,0.s) -Chars 6189 - 6205 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) -Chars 6206 - 6220 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 6232 - 6243 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 6244 - 6260 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6272 - 6293 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6294 - 6319 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 6331 - 6355 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 6356 - 6375 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6387 - 6410 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6411 - 6433 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6445 - 6460 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) -Chars 6461 - 6471 [(rewrite~x).] 0.004 secs (0.004u,0.s) -Chars 6472 - 6477 [step.] 0.001 secs (0.001u,0.s) -Chars 6490 - 6503 [(rewrite~Heq').] 0. secs (0.u,0.s) -Chars 6504 - 6509 [auto.] 0. secs (0.u,0.s) -Chars 6512 - 6513 [-] 0. secs (0.u,0.s) -Chars 6514 - 6540 [dependent~induction~Hrutt.] 0.064 secs (0.063u,0.s) -Chars 6545 - 6546 [+] 0. secs (0.u,0.s) -Chars 6547 - 6555 [exfalso.] 0. secs (0.u,0.s) -Chars 6556 - 6572 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6573 - 6594 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6595 - 6614 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6621 - 6638 [(rewrite~Heq~in~x).] 0.02 secs (0.02u,0.s) -Chars 6639 - 6661 [(rewrite~bind_vis~in~x).] 0.016 secs (0.016u,0.s) -Chars 6668 - 6675 [sinv~x.] 0.003 secs (0.003u,0.s) -Chars 6680 - 6681 [+] 0. secs (0.u,0.s) -Chars 6682 - 6690 [exfalso.] 0. secs (0.u,0.s) -Chars 6691 - 6707 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6708 - 6729 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6730 - 6749 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6756 - 6773 [(rewrite~Heq~in~x).] 0.018 secs (0.017u,0.s) -Chars 6774 - 6796 [(rewrite~bind_vis~in~x).] 0.017 secs (0.016u,0.s) -Chars 6803 - 6821 [(sinv~x;~inv~CHECK).] 0.006 secs (0.006u,0.s) -Chars 6826 - 6827 [+] 0. secs (0.u,0.s) -Chars 6828 - 6836 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 6843 - 6859 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6860 - 6881 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6882 - 6901 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6908 - 6925 [(rewrite~Heq~in~x).] 0.017 secs (0.016u,0.s) -Chars 6926 - 6948 [(rewrite~bind_vis~in~x).] 0.016 secs (0.016u,0.s) -Chars 6949 - 6972 [(step~in~x;~inversion~x).] 0.006 secs (0.005u,0.s) -Chars 6980 - 6993 [ddestruction.] 0.006 secs (0.006u,0.s) -Chars 6994 - 7020 [(inversion~H;~ddestruction).] 0.019 secs (0.019u,0.s) -Chars 7027 - 7028 [*] 0. secs (0.u,0.s) -Chars 7029 - 7044 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 7045 - 7049 [(cbn).] 0. secs (0.u,0.s) -Chars 7050 - 7066 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 7075 - 7123 [(destruct~(classicT~(B~=~B));~...] 0.001 secs (0.001u,0.s) -Chars 7132 - 7158 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 7167 - 7193 [(remember~(eq_sym~_)~as~He).] 0.002 secs (0.002u,0.s) -Chars 7194 - 7206 [clear~HeqHe.] 0. secs (0.u,0.s) -Chars 7215 - 7240 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) -Chars 7241 - 7245 [(cbn).] 0. secs (0.u,0.s) -Chars 7246 - 7265 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) -Chars 7274 - 7281 [(intros).] 0. secs (0.u,0.s) -Chars 7282 - 7295 [(inversion~H1).] 0.003 secs (0.003u,0.s) -Chars 7296 - 7309 [ddestruction.] 0.007 secs (0.006u,0.s) -Chars 7318 - 7333 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 7335 - 7345 [(unfold~id).] 0. secs (0.u,0.s) -Chars 7346 - 7357 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7367 - 7377 [(cbn~in~x1).] 0. secs (0.u,0.s) -Chars 7378 - 7391 [(inversion~x1).] 0.002 secs (0.002u,0.s) -Chars 7392 - 7405 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 7414 - 7447 [specialize~(H0~tt~a~(rar~_~_~_)).] 0. secs (0.u,0.s) -Chars 7456 - 7476 [specialize~(REL0~a).] 0. secs (0.u,0.s) -Chars 7486 - 7499 [(rewrite~REL0).] 0.004 secs (0.004u,0.s) -Chars 7500 - 7509 [(apply~H0).] 0. secs (0.u,0.s) -Chars 7516 - 7517 [*] 0. secs (0.u,0.s) -Chars 7518 - 7522 [(cbn).] 0. secs (0.u,0.s) -Chars 7523 - 7542 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) -Chars 7543 - 7550 [(intros).] 0. secs (0.u,0.s) -Chars 7551 - 7565 [contradiction.] 0. secs (0.u,0.s) -Chars 7570 - 7571 [+] 0. secs (0.u,0.s) -Chars 7572 - 7580 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 7581 - 7585 [(cbn).] 0. secs (0.u,0.s) -Chars 7586 - 7598 [constructor.] 0. secs (0.u,0.s) -Chars 7599 - 7621 [(eapply~IHHrutt;~eauto).] 0.003 secs (0.003u,0.s) -Chars 7626 - 7627 [+] 0. secs (0.u,0.s) -Chars 7628 - 7636 [exfalso.] 0. secs (0.u,0.s) -Chars 7637 - 7653 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 7654 - 7673 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7674 - 7695 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 7702 - 7719 [(rewrite~Heq~in~x).] 0.02 secs (0.019u,0.s) -Chars 7720 - 7742 [(rewrite~bind_vis~in~x).] 0.02 secs (0.019u,0.s) -Chars 7749 - 7756 [sinv~x.] 0.007 secs (0.007u,0.s) -Chars 7757 - 7761 [Qed.] 0.233 secs (0.229u,0.002s) -Chars 7763 - 7839 [Lemma~not_spin_eutt_ret~:~fora...] 0. secs (0.u,0.s) -Chars 7840 - 7846 [Proof.] 0. secs (0.u,0.s) -Chars 7849 - 7856 [(intros).] 0. secs (0.u,0.s) -Chars 7857 - 7872 [(intros~Hcontra).] 0. secs (0.u,0.s) -Chars 7873 - 7913 [specialize~(@spin_infinite~E~R...] 0. secs (0.u,0.s) -Chars 7916 - 7940 [(rewrite~Hcontra~in~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 7941 - 7951 [sinv~Hdiv.] 0. secs (0.u,0.s) -Chars 7952 - 7956 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7959 - 8138 [Lemma~proper_peel_eutt_l~:~~~f...] 0. secs (0.u,0.s) -Chars 8139 - 8145 [Proof.] 0. secs (0.u,0.s) -Chars 8148 - 8161 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 8162 - 8181 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8182 - 8189 [(intros).] 0. secs (0.u,0.s) -Chars 8190 - 8202 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 8205 - 8226 [(destruct~(observe~t)).] 0. secs (0.u,0.s) -Chars 8229 - 8230 [-] 0. secs (0.u,0.s) -Chars 8231 - 8365 [(destruct~(observe~b);~destruc...] 0.016 secs (0.016u,0.s) -Chars 8368 - 8369 [-] 0. secs (0.u,0.s) -Chars 8370 - 8380 [step~in~H.] 0. secs (0.u,0.s) -Chars 8381 - 8403 [dependent~induction~H.] 0.058 secs (0.057u,0.s) -Chars 8408 - 8409 [+] 0. secs (0.u,0.s) -Chars 8410 - 8418 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 8419 - 8431 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8437 - 8438 [+] 0. secs (0.u,0.s) -Chars 8439 - 8447 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 8448 - 8452 [(cbn).] 0. secs (0.u,0.s) -Chars 8453 - 8458 [etau.] 0.001 secs (0.001u,0.s) -Chars 8464 - 8465 [+] 0. secs (0.u,0.s) -Chars 8466 - 8474 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 8475 - 8491 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) -Chars 8498 - 8499 [*] 0. secs (0.u,0.s) -Chars 8500 - 8512 [constructor.] 0. secs (0.u,0.s) -Chars 8513 - 8527 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 8536 - 8547 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8548 - 8553 [step.] 0.002 secs (0.002u,0.s) -Chars 8554 - 8562 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 8571 - 8576 [evis.] 0. secs (0.u,0.s) -Chars 8584 - 8585 [*] 0. secs (0.u,0.s) -Chars 8586 - 8598 [constructor.] 0. secs (0.u,0.s) -Chars 8599 - 8613 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 8622 - 8633 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8634 - 8639 [step.] 0.002 secs (0.002u,0.s) -Chars 8640 - 8648 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 8657 - 8662 [evis.] 0. secs (0.u,0.s) -Chars 8668 - 8669 [+] 0. secs (0.u,0.s) -Chars 8670 - 8739 [(destruct~(observe~b);~destruc...] 0.052 secs (0.051u,0.s) -Chars 8746 - 8747 [*] 0. secs (0.u,0.s) -Chars 8748 - 8752 [(cbn).] 0. secs (0.u,0.s) -Chars 8753 - 8765 [constructor.] 0. secs (0.u,0.s) -Chars 8766 - 8808 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) -Chars 8817 - 8846 [(assert~(RetF~r~=~observe~t1)).] 0. secs (0.u,0.s) -Chars 8855 - 8856 [{] 0. secs (0.u,0.s) -Chars 8857 - 8871 [(rewrite~Heqt1).] 0. secs (0.u,0.s) -Chars 8872 - 8877 [auto.] 0. secs (0.u,0.s) -Chars 8878 - 8879 [}] 0. secs (0.u,0.s) -Chars 8888 - 8899 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 8900 - 8911 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8912 - 8926 [(rewrite~Heqt1).] 0. secs (0.u,0.s) -Chars 8927 - 8932 [step.] 0.001 secs (0.001u,0.s) -Chars 8933 - 8938 [auto.] 0. secs (0.u,0.s) -Chars 8945 - 8946 [*] 0. secs (0.u,0.s) -Chars 8947 - 8951 [(cbn).] 0. secs (0.u,0.s) -Chars 8952 - 8964 [constructor.] 0. secs (0.u,0.s) -Chars 8965 - 8976 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8986 - 9009 [(enough~(t2~≈~Tau~t3)).] 0. secs (0.u,0.s) -Chars 9018 - 9019 [{] 0. secs (0.u,0.s) -Chars 9020 - 9043 [(rewrite~tau_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 9044 - 9049 [auto.] 0. secs (0.u,0.s) -Chars 9050 - 9051 [}] 0. secs (0.u,0.s) -Chars 9060 - 9065 [step.] 0.001 secs (0.001u,0.s) -Chars 9066 - 9071 [auto.] 0. secs (0.u,0.s) -Chars 9078 - 9079 [*] 0. secs (0.u,0.s) -Chars 9080 - 9096 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) -Chars 9105 - 9107 [++] 0. secs (0.u,0.s) -Chars 9108 - 9120 [constructor.] 0. secs (0.u,0.s) -Chars 9132 - 9194 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) -Chars 9206 - 9253 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) -Chars 9265 - 9266 [{] 0. secs (0.u,0.s) -Chars 9267 - 9281 [(rewrite~Heqt1).] 0. secs (0.u,0.s) -Chars 9282 - 9287 [auto.] 0. secs (0.u,0.s) -Chars 9288 - 9289 [}] 0. secs (0.u,0.s) -Chars 9301 - 9312 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 9313 - 9324 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9325 - 9331 [subst.] 0. secs (0.u,0.s) -Chars 9332 - 9337 [step.] 0.001 secs (0.001u,0.s) -Chars 9338 - 9343 [auto.] 0. secs (0.u,0.s) -Chars 9352 - 9354 [++] 0. secs (0.u,0.s) -Chars 9355 - 9367 [constructor.] 0. secs (0.u,0.s) -Chars 9379 - 9433 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) -Chars 9445 - 9497 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) -Chars 9509 - 9510 [{] 0. secs (0.u,0.s) -Chars 9511 - 9517 [subst.] 0. secs (0.u,0.s) -Chars 9518 - 9523 [auto.] 0. secs (0.u,0.s) -Chars 9524 - 9525 [}] 0. secs (0.u,0.s) -Chars 9537 - 9548 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 9549 - 9560 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9561 - 9567 [subst.] 0. secs (0.u,0.s) -Chars 9568 - 9573 [step.] 0.001 secs (0.001u,0.s) -Chars 9574 - 9579 [auto.] 0. secs (0.u,0.s) -Chars 9584 - 9585 [+] 0. secs (0.u,0.s) -Chars 9586 - 9655 [(destruct~(observe~b);~destruc...] 0.044 secs (0.044u,0.s) -Chars 9662 - 9663 [*] 0. secs (0.u,0.s) -Chars 9664 - 9668 [(cbn).] 0. secs (0.u,0.s) -Chars 9669 - 9681 [constructor.] 0. secs (0.u,0.s) -Chars 9682 - 9724 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) -Chars 9733 - 9762 [(assert~(RetF~r~=~observe~t2)).] 0. secs (0.u,0.s) -Chars 9771 - 9772 [{] 0. secs (0.u,0.s) -Chars 9773 - 9779 [subst.] 0. secs (0.u,0.s) -Chars 9780 - 9785 [auto.] 0. secs (0.u,0.s) -Chars 9786 - 9787 [}] 0. secs (0.u,0.s) -Chars 9796 - 9807 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 9808 - 9819 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9820 - 9834 [(rewrite~Heqt2).] 0. secs (0.u,0.s) -Chars 9835 - 9840 [step.] 0.001 secs (0.001u,0.s) -Chars 9841 - 9846 [auto.] 0. secs (0.u,0.s) -Chars 9853 - 9854 [*] 0. secs (0.u,0.s) -Chars 9855 - 9859 [(cbn).] 0. secs (0.u,0.s) -Chars 9860 - 9872 [constructor.] 0.001 secs (0.001u,0.s) -Chars 9873 - 9884 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9894 - 9917 [(enough~(Tau~t1~≈~t3)).] 0. secs (0.u,0.s) -Chars 9926 - 9927 [{] 0. secs (0.u,0.s) -Chars 9928 - 9951 [(rewrite~tau_eutt~in~H0).] 0.022 secs (0.022u,0.s) -Chars 9952 - 9957 [auto.] 0. secs (0.u,0.s) -Chars 9958 - 9959 [}] 0. secs (0.u,0.s) -Chars 9968 - 9973 [step.] 0.002 secs (0.002u,0.s) -Chars 9974 - 9979 [auto.] 0. secs (0.u,0.s) -Chars 9986 - 9987 [*] 0. secs (0.u,0.s) -Chars 9988 - 10004 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) -Chars 10013 - 10015 [++] 0. secs (0.u,0.s) -Chars 10016 - 10028 [constructor.] 0. secs (0.u,0.s) -Chars 10041 - 10103 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) -Chars 10115 - 10162 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) -Chars 10174 - 10175 [{] 0. secs (0.u,0.s) -Chars 10176 - 10182 [subst.] 0. secs (0.u,0.s) -Chars 10183 - 10188 [auto.] 0. secs (0.u,0.s) -Chars 10189 - 10190 [}] 0. secs (0.u,0.s) -Chars 10202 - 10213 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 10214 - 10225 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 10226 - 10232 [subst.] 0. secs (0.u,0.s) -Chars 10233 - 10238 [step.] 0.002 secs (0.002u,0.s) -Chars 10239 - 10244 [auto.] 0. secs (0.u,0.s) -Chars 10253 - 10255 [++] 0. secs (0.u,0.s) -Chars 10256 - 10268 [constructor.] 0. secs (0.u,0.s) -Chars 10281 - 10335 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) -Chars 10347 - 10399 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) -Chars 10411 - 10412 [{] 0. secs (0.u,0.s) -Chars 10413 - 10419 [subst.] 0. secs (0.u,0.s) -Chars 10420 - 10425 [auto.] 0. secs (0.u,0.s) -Chars 10426 - 10427 [}] 0. secs (0.u,0.s) -Chars 10439 - 10450 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 10451 - 10462 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 10463 - 10469 [subst.] 0. secs (0.u,0.s) -Chars 10470 - 10475 [step.] 0.002 secs (0.002u,0.s) -Chars 10476 - 10481 [auto.] 0. secs (0.u,0.s) -Chars 10484 - 10485 [-] 0. secs (0.u,0.s) -Chars 10486 - 10496 [step~in~H.] 0. secs (0.u,0.s) -Chars 10497 - 10519 [dependent~induction~H.] 0.053 secs (0.053u,0.s) -Chars 10524 - 10525 [+] 0. secs (0.u,0.s) -Chars 10526 - 10534 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 10535 - 10547 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 10552 - 10553 [+] 0. secs (0.u,0.s) -Chars 10554 - 10562 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 10563 - 10567 [(cbn).] 0. secs (0.u,0.s) -Chars 10568 - 10580 [constructor.] 0. secs (0.u,0.s) -Chars 10587 - 10619 [(remember~(go~(VisF~e~k))~as~t0).] 0. secs (0.u,0.s) -Chars 10626 - 10657 [(assert~(VisF~e~k~=~observe~t0)).] 0. secs (0.u,0.s) -Chars 10664 - 10665 [{] 0. secs (0.u,0.s) -Chars 10666 - 10672 [subst.] 0. secs (0.u,0.s) -Chars 10673 - 10678 [auto.] 0. secs (0.u,0.s) -Chars 10679 - 10680 [}] 0. secs (0.u,0.s) -Chars 10687 - 10697 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 10698 - 10709 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 10711 - 10716 [auto.] 0. secs (0.u,0.s) -Chars 10721 - 10722 [+] 0. secs (0.u,0.s) -Chars 10723 - 10731 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 10732 - 10748 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) -Chars 10755 - 10756 [*] 0. secs (0.u,0.s) -Chars 10757 - 10772 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 10773 - 10777 [(cbn).] 0. secs (0.u,0.s) -Chars 10778 - 10794 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 10803 - 10832 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 10841 - 10843 [++] 0. secs (0.u,0.s) -Chars 10844 - 10870 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 10871 - 10897 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.u,0.s) -Chars 10909 - 10934 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 10935 - 10939 [(cbn).] 0. secs (0.u,0.s) -Chars 10940 - 10952 [constructor.] 0. secs (0.u,0.s) -Chars 10953 - 10960 [(intros).] 0. secs (0.u,0.s) -Chars 10972 - 10983 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 10986 - 11002 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 11011 - 11013 [++] 0. secs (0.u,0.s) -Chars 11014 - 11026 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11033 - 11034 [*] 0. secs (0.u,0.s) -Chars 11035 - 11047 [constructor.] 0. secs (0.u,0.s) -Chars 11048 - 11062 [contradiction.] 0. secs (0.u,0.s) -Chars 11067 - 11068 [+] 0. secs (0.u,0.s) -Chars 11069 - 11077 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 11078 - 11110 [(destruct~(observe~b')~eqn:Heq).] 0.004 secs (0.004u,0.s) -Chars 11117 - 11118 [*] 0. secs (0.u,0.s) -Chars 11119 - 11134 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11135 - 11139 [(cbn).] 0. secs (0.u,0.s) -Chars 11140 - 11158 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 11159 - 11181 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 11182 - 11194 [(rewrite~Heq).] 0. secs (0.u,0.s) -Chars 11195 - 11200 [auto.] 0. secs (0.u,0.s) -Chars 11207 - 11208 [*] 0. secs (0.u,0.s) -Chars 11209 - 11213 [(cbn).] 0. secs (0.u,0.s) -Chars 11214 - 11226 [constructor.] 0. secs (0.u,0.s) -Chars 11235 - 11267 [(remember~(go~(VisF~e~k))~as~t2).] 0. secs (0.u,0.s) -Chars 11276 - 11307 [(assert~(VisF~e~k~=~observe~t2)).] 0. secs (0.u,0.s) -Chars 11316 - 11317 [{] 0. secs (0.u,0.s) -Chars 11318 - 11324 [subst.] 0. secs (0.u,0.s) -Chars 11325 - 11330 [auto.] 0. secs (0.u,0.s) -Chars 11331 - 11332 [}] 0. secs (0.u,0.s) -Chars 11341 - 11352 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 11353 - 11364 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 11373 - 11396 [(enough~(t1~≈~Tau~t0)).] 0. secs (0.u,0.s) -Chars 11405 - 11406 [{] 0. secs (0.u,0.s) -Chars 11407 - 11430 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) -Chars 11431 - 11436 [auto.] 0. secs (0.u,0.s) -Chars 11437 - 11438 [}] 0. secs (0.u,0.s) -Chars 11447 - 11458 [(step;~auto).] 0.002 secs (0.002u,0.s) -Chars 11465 - 11466 [*] 0. secs (0.u,0.s) -Chars 11467 - 11471 [(cbn).] 0. secs (0.u,0.s) -Chars 11472 - 11491 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 11492 - 11507 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11508 - 11530 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 11539 - 11551 [(rewrite~Heq).] 0. secs (0.u,0.s) -Chars 11552 - 11557 [auto.] 0. secs (0.u,0.s) -Chars 11562 - 11563 [+] 0. secs (0.u,0.s) -Chars 11564 - 11572 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 11573 - 11604 [(destruct~(observe~b)~eqn:Heq).] 0.004 secs (0.004u,0.s) -Chars 11611 - 11612 [*] 0. secs (0.u,0.s) -Chars 11613 - 11628 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11629 - 11633 [(cbn).] 0. secs (0.u,0.s) -Chars 11634 - 11652 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 11653 - 11675 [(eapply~IHeqitF;~eauto).] 0.004 secs (0.004u,0.s) -Chars 11676 - 11688 [(rewrite~Heq).] 0. secs (0.u,0.s) -Chars 11689 - 11694 [auto.] 0. secs (0.u,0.s) -Chars 11701 - 11702 [*] 0. secs (0.u,0.s) -Chars 11703 - 11707 [(cbn).] 0. secs (0.u,0.s) -Chars 11708 - 11720 [constructor.] 0. secs (0.u,0.s) -Chars 11729 - 11761 [(remember~(go~(VisF~e~k))~as~t1).] 0. secs (0.u,0.s) -Chars 11770 - 11801 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) -Chars 11810 - 11811 [{] 0. secs (0.u,0.s) -Chars 11812 - 11818 [subst.] 0. secs (0.u,0.s) -Chars 11819 - 11824 [auto.] 0. secs (0.u,0.s) -Chars 11825 - 11826 [}] 0. secs (0.u,0.s) -Chars 11835 - 11846 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 11847 - 11858 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 11867 - 11890 [(enough~(Tau~t0~≈~t2)).] 0. secs (0.u,0.s) -Chars 11899 - 11900 [{] 0. secs (0.u,0.s) -Chars 11901 - 11924 [(rewrite~tau_eutt~in~H1).] 0.021 secs (0.021u,0.s) -Chars 11925 - 11930 [auto.] 0. secs (0.u,0.s) -Chars 11931 - 11932 [}] 0. secs (0.u,0.s) -Chars 11941 - 11952 [(step;~auto).] 0.002 secs (0.002u,0.s) -Chars 11959 - 11960 [*] 0. secs (0.u,0.s) -Chars 11961 - 11965 [(cbn).] 0. secs (0.u,0.s) -Chars 11966 - 11985 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 11986 - 12001 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 12002 - 12024 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 12033 - 12045 [(rewrite~Heq).] 0. secs (0.u,0.s) -Chars 12046 - 12051 [auto.] 0. secs (0.u,0.s) -Chars 12052 - 12056 [Qed.] 0.226 secs (0.223u,0.002s) -Chars 12060 - 12238 [Lemma~proper_peel_eutt_r~:~~~f...] 0. secs (0.u,0.s) -Chars 12239 - 12245 [Proof.] 0. secs (0.u,0.s) -Chars 12248 - 12261 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 12262 - 12280 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 12281 - 12288 [(intros).] 0. secs (0.u,0.s) -Chars 12291 - 12303 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 12304 - 12336 [(destruct~(observe~b)~eqn:Heqb).] 0.001 secs (0.001u,0.s) -Chars 12339 - 12340 [-] 0. secs (0.u,0.s) -Chars 12341 - 12351 [step~in~H.] 0. secs (0.u,0.s) -Chars 12352 - 12374 [dependent~induction~H.] 0.047 secs (0.046u,0.s) -Chars 12379 - 12380 [+] 0. secs (0.u,0.s) -Chars 12381 - 12389 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12390 - 12402 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 12407 - 12408 [+] 0. secs (0.u,0.s) -Chars 12409 - 12417 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12418 - 12422 [(cbn).] 0. secs (0.u,0.s) -Chars 12423 - 12435 [constructor.] 0. secs (0.u,0.s) -Chars 12436 - 12452 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 12459 - 12470 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 12472 - 12477 [auto.] 0. secs (0.u,0.s) -Chars 12482 - 12483 [+] 0. secs (0.u,0.s) -Chars 12484 - 12492 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12493 - 12497 [(cbn).] 0. secs (0.u,0.s) -Chars 12498 - 12510 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 12515 - 12516 [+] 0. secs (0.u,0.s) -Chars 12517 - 12525 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 12526 - 12530 [(cbn).] 0. secs (0.u,0.s) -Chars 12531 - 12549 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 12550 - 12572 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 12577 - 12578 [+] 0. secs (0.u,0.s) -Chars 12579 - 12587 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12588 - 12592 [(cbn).] 0. secs (0.u,0.s) -Chars 12593 - 12611 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 12612 - 12634 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 12637 - 12638 [-] 0. secs (0.u,0.s) -Chars 12639 - 12649 [step~in~H.] 0. secs (0.u,0.s) -Chars 12650 - 12672 [dependent~induction~H.] 0.047 secs (0.047u,0.s) -Chars 12677 - 12678 [+] 0. secs (0.u,0.s) -Chars 12679 - 12687 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12688 - 12692 [(cbn).] 0. secs (0.u,0.s) -Chars 12693 - 12705 [constructor.] 0. secs (0.u,0.s) -Chars 12706 - 12711 [auto.] 0. secs (0.u,0.s) -Chars 12716 - 12717 [+] 0. secs (0.u,0.s) -Chars 12718 - 12726 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12727 - 12731 [(cbn).] 0. secs (0.u,0.s) -Chars 12732 - 12737 [etau.] 0.001 secs (0.001u,0.s) -Chars 12743 - 12744 [+] 0. secs (0.u,0.s) -Chars 12745 - 12753 [simpobs.] 0.009 secs (0.009u,0.s) -Chars 12754 - 12758 [(cbn).] 0. secs (0.u,0.s) -Chars 12759 - 12771 [constructor.] 0. secs (0.u,0.s) -Chars 12778 - 12792 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 12795 - 12806 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 12813 - 12818 [step.] 0.001 secs (0.001u,0.s) -Chars 12819 - 12827 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12835 - 12847 [constructor.] 0. secs (0.u,0.s) -Chars 12848 - 12853 [auto.] 0. secs (0.u,0.s) -Chars 12858 - 12859 [+] 0. secs (0.u,0.s) -Chars 12860 - 12868 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12869 - 12903 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) -Chars 12910 - 12911 [*] 0. secs (0.u,0.s) -Chars 12912 - 12916 [(cbn).] 0. secs (0.u,0.s) -Chars 12918 - 12936 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 12937 - 12951 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 12960 - 12982 [dependent~induction~H.] 0.057 secs (0.056u,0.s) -Chars 12991 - 12993 [++] 0. secs (0.u,0.s) -Chars 12994 - 13002 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 13003 - 13061 [(destruct~(observe~t0);~cbn;~t...] 0.002 secs (0.002u,0.s) -Chars 13073 - 13108 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) -Chars 13117 - 13119 [++] 0. secs (0.u,0.s) -Chars 13120 - 13128 [simpobs.] 0.011 secs (0.011u,0.s) -Chars 13129 - 13133 [(cbn).] 0. secs (0.u,0.s) -Chars 13134 - 13173 [(destruct~(observe~t2)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 13185 - 13187 [**] 0. secs (0.u,0.s) -Chars 13188 - 13207 [(constructor;~eauto).] 0.006 secs (0.006u,0.s) -Chars 13208 - 13225 [(rewrite~<-~Heqt2).] 0. secs (0.u,0.s) -Chars 13227 - 13249 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 13261 - 13263 [**] 0. secs (0.u,0.s) -Chars 13264 - 13282 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 13283 - 13305 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 13317 - 13319 [**] 0. secs (0.u,0.s) -Chars 13320 - 13418 [(destruct~e;~cbn;~~~try~(const...] 0.012 secs (0.012u,0.s) -Chars 13425 - 13426 [*] 0. secs (0.u,0.s) -Chars 13427 - 13431 [(cbn).] 0. secs (0.u,0.s) -Chars 13432 - 13444 [constructor.] 0. secs (0.u,0.s) -Chars 13445 - 13463 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 13472 - 13495 [(enough~(t1~≈~Tau~t2)).] 0. secs (0.u,0.s) -Chars 13504 - 13505 [{] 0. secs (0.u,0.s) -Chars 13506 - 13529 [(rewrite~tau_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 13530 - 13535 [auto.] 0. secs (0.u,0.s) -Chars 13536 - 13537 [}] 0. secs (0.u,0.s) -Chars 13546 - 13551 [step.] 0.001 secs (0.001u,0.s) -Chars 13552 - 13557 [auto.] 0. secs (0.u,0.s) -Chars 13564 - 13565 [*] 0. secs (0.u,0.s) -Chars 13566 - 13570 [(cbn).] 0. secs (0.u,0.s) -Chars 13571 - 13583 [constructor.] 0. secs (0.u,0.s) -Chars 13584 - 13601 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) -Chars 13602 - 13613 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 13623 - 13628 [step.] 0.001 secs (0.001u,0.s) -Chars 13629 - 13643 [(rewrite~Heqt').] 0. secs (0.u,0.s) -Chars 13644 - 13649 [auto.] 0. secs (0.u,0.s) -Chars 13654 - 13655 [+] 0. secs (0.u,0.s) -Chars 13656 - 13664 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13665 - 13686 [(destruct~(observe~t)).] 0.004 secs (0.004u,0.s) -Chars 13693 - 13694 [*] 0. secs (0.u,0.s) -Chars 13695 - 13699 [(cbn).] 0. secs (0.u,0.s) -Chars 13700 - 13718 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 13719 - 13733 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 13742 - 13764 [dependent~induction~H.] 0.04 secs (0.04u,0.s) -Chars 13773 - 13775 [++] 0. secs (0.u,0.s) -Chars 13776 - 13784 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13785 - 13849 [(destruct~(observe~t0);~try~de...] 0.002 secs (0.002u,0.s) -Chars 13858 - 13860 [++] 0. secs (0.u,0.s) -Chars 13861 - 13869 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 13870 - 13909 [(destruct~(observe~t1)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 13921 - 13923 [**] 0. secs (0.u,0.s) -Chars 13924 - 13942 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 13943 - 13960 [(rewrite~<-~Heqt1).] 0. secs (0.u,0.s) -Chars 13961 - 13983 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 13995 - 13997 [**] 0. secs (0.u,0.s) -Chars 13998 - 14016 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 14017 - 14039 [(eapply~IHeqitF;~eauto).] 0.008 secs (0.008u,0.s) -Chars 14051 - 14053 [**] 0. secs (0.u,0.s) -Chars 14054 - 14136 [(destruct~e;~cbn;~~~try~(const...] 0.012 secs (0.012u,0.s) -Chars 14143 - 14144 [*] 0. secs (0.u,0.s) -Chars 14145 - 14149 [(cbn).] 0. secs (0.u,0.s) -Chars 14150 - 14162 [constructor.] 0. secs (0.u,0.s) -Chars 14163 - 14181 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 14190 - 14215 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) -Chars 14216 - 14221 [step.] 0.001 secs (0.001u,0.s) -Chars 14222 - 14227 [auto.] 0. secs (0.u,0.s) -Chars 14234 - 14235 [*] 0. secs (0.u,0.s) -Chars 14236 - 14240 [(cbn).] 0. secs (0.u,0.s) -Chars 14241 - 14253 [constructor.] 0. secs (0.u,0.s) -Chars 14254 - 14282 [(remember~(Vis~e~k)~as~t1).] 0.001 secs (0.001u,0.s) -Chars 14291 - 14322 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) -Chars 14331 - 14332 [{] 0. secs (0.u,0.s) -Chars 14333 - 14339 [subst.] 0. secs (0.u,0.s) -Chars 14340 - 14345 [auto.] 0. secs (0.u,0.s) -Chars 14346 - 14347 [}] 0. secs (0.u,0.s) -Chars 14356 - 14367 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 14368 - 14379 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 14380 - 14386 [subst.] 0. secs (0.u,0.s) -Chars 14387 - 14392 [step.] 0.001 secs (0.001u,0.s) -Chars 14393 - 14398 [auto.] 0. secs (0.u,0.s) -Chars 14401 - 14402 [-] 0. secs (0.u,0.s) -Chars 14403 - 14413 [step~in~H.] 0. secs (0.u,0.s) -Chars 14414 - 14436 [dependent~induction~H.] 0.046 secs (0.046u,0.s) -Chars 14441 - 14442 [+] 0. secs (0.u,0.s) -Chars 14443 - 14451 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14452 - 14487 [(destruct~e;~cbn;~constructor;...] 0.005 secs (0.004u,0.s) -Chars 14492 - 14493 [+] 0. secs (0.u,0.s) -Chars 14494 - 14502 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14503 - 14577 [(destruct~e;~cbn;~constructor;...] 0.003 secs (0.003u,0.s) -Chars 14582 - 14583 [+] 0. secs (0.u,0.s) -Chars 14584 - 14592 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14593 - 14610 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) -Chars 14617 - 14618 [*] 0. secs (0.u,0.s) -Chars 14619 - 14634 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 14635 - 14639 [(cbn).] 0. secs (0.u,0.s) -Chars 14640 - 14656 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 14665 - 14694 [(destruct~(classicT~(A~=~u))).] 0.001 secs (0.001u,0.s) -Chars 14703 - 14705 [++] 0. secs (0.u,0.s) -Chars 14706 - 14732 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 14733 - 14760 [(remember~(eq_sym~e0)~as~He).] 0.001 secs (0.001u,0.s) -Chars 14772 - 14797 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 14798 - 14802 [(cbn).] 0. secs (0.u,0.s) -Chars 14803 - 14815 [constructor.] 0. secs (0.u,0.s) -Chars 14816 - 14823 [(intros).] 0. secs (0.u,0.s) -Chars 14835 - 14846 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 14849 - 14865 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 14874 - 14876 [++] 0. secs (0.u,0.s) -Chars 14877 - 14881 [(cbn).] 0. secs (0.u,0.s) -Chars 14882 - 14894 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 14902 - 14903 [*] 0. secs (0.u,0.s) -Chars 14904 - 14916 [constructor.] 0. secs (0.u,0.s) -Chars 14917 - 14931 [contradiction.] 0. secs (0.u,0.s) -Chars 14936 - 14937 [+] 0. secs (0.u,0.s) -Chars 14938 - 14946 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 14947 - 14986 [(destruct~(observe~t');~destru...] 0.009 secs (0.009u,0.s) -Chars 14993 - 14994 [*] 0. secs (0.u,0.s) -Chars 14995 - 15013 [(constructor;~auto).] 0.002 secs (0.001u,0.s) -Chars 15014 - 15028 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15029 - 15051 [dependent~induction~H.] 0.043 secs (0.043u,0.s) -Chars 15060 - 15062 [++] 0. secs (0.u,0.s) -Chars 15063 - 15071 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15072 - 15076 [(cbn).] 0. secs (0.u,0.s) -Chars 15077 - 15095 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 15104 - 15106 [++] 0. secs (0.u,0.s) -Chars 15107 - 15115 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 15116 - 15120 [(cbn).] 0. secs (0.u,0.s) -Chars 15121 - 15140 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 15147 - 15148 [*] 0. secs (0.u,0.s) -Chars 15149 - 15167 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 15168 - 15182 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15183 - 15205 [dependent~induction~H.] 0.046 secs (0.045u,0.s) -Chars 15214 - 15216 [++] 0. secs (0.u,0.s) -Chars 15217 - 15225 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15226 - 15230 [(cbn).] 0. secs (0.u,0.s) -Chars 15231 - 15249 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 15258 - 15260 [++] 0. secs (0.u,0.s) -Chars 15261 - 15269 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 15270 - 15274 [(cbn).] 0. secs (0.u,0.s) -Chars 15275 - 15294 [(constructor;~eauto).] 0.005 secs (0.005u,0.s) -Chars 15301 - 15302 [*] 0. secs (0.u,0.s) -Chars 15303 - 15315 [constructor.] 0. secs (0.u,0.s) -Chars 15316 - 15332 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 15333 - 15344 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 15354 - 15386 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) -Chars 15387 - 15392 [step.] 0.001 secs (0.001u,0.s) -Chars 15393 - 15398 [auto.] 0. secs (0.u,0.s) -Chars 15405 - 15406 [*] 0. secs (0.u,0.s) -Chars 15407 - 15423 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 15424 - 15436 [constructor.] 0. secs (0.u,0.s) -Chars 15437 - 15448 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 15458 - 15490 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) -Chars 15491 - 15496 [step.] 0.001 secs (0.001u,0.s) -Chars 15497 - 15502 [auto.] 0. secs (0.u,0.s) -Chars 15509 - 15510 [*] 0. secs (0.u,0.s) -Chars 15511 - 15529 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 15530 - 15544 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15553 - 15575 [dependent~induction~H.] 0.054 secs (0.054u,0.s) -Chars 15584 - 15586 [++] 0. secs (0.u,0.s) -Chars 15587 - 15595 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15596 - 15611 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 15612 - 15616 [(cbn).] 0. secs (0.u,0.s) -Chars 15628 - 15644 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 15645 - 15675 [(destruct~(classicT~(A~=~X0))).] 0.001 secs (0.u,0.s) -Chars 15687 - 15689 [**] 0. secs (0.u,0.s) -Chars 15690 - 15716 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 15731 - 15757 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.001u,0.s) -Chars 15758 - 15783 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 15798 - 15802 [(cbn).] 0. secs (0.u,0.s) -Chars 15803 - 15815 [constructor.] 0. secs (0.u,0.s) -Chars 15816 - 15823 [(intros).] 0. secs (0.u,0.s) -Chars 15825 - 15854 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) -Chars 15866 - 15868 [**] 0. secs (0.u,0.s) -Chars 15869 - 15873 [(cbn).] 0. secs (0.u,0.s) -Chars 15874 - 15886 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 15896 - 15898 [++] 0. secs (0.u,0.s) -Chars 15899 - 15907 [simpobs.] 0.011 secs (0.01u,0.s) -Chars 15908 - 15912 [(cbn).] 0. secs (0.u,0.s) -Chars 15913 - 15954 [(constructor;~auto;~eapply~IHe...] 0.006 secs (0.006u,0.s) -Chars 15961 - 15962 [*] 0. secs (0.u,0.s) -Chars 15963 - 15981 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 15982 - 15996 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16005 - 16027 [dependent~induction~H.] 0.051 secs (0.05u,0.s) -Chars 16036 - 16038 [++] 0. secs (0.u,0.s) -Chars 16039 - 16047 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 16048 - 16052 [(cbn).] 0. secs (0.u,0.s) -Chars 16053 - 16065 [constructor.] 0. secs (0.u,0.s) -Chars 16066 - 16080 [contradiction.] 0. secs (0.u,0.s) -Chars 16089 - 16091 [++] 0. secs (0.u,0.s) -Chars 16092 - 16100 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 16101 - 16105 [(cbn).] 0. secs (0.u,0.s) -Chars 16106 - 16147 [(constructor;~auto;~eapply~IHe...] 0.008 secs (0.008u,0.s) -Chars 16152 - 16153 [+] 0. secs (0.u,0.s) -Chars 16154 - 16162 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 16163 - 16167 [(cbn).] 0. secs (0.u,0.s) -Chars 16168 - 16217 [(destruct~(observe~t)~eqn:Heqt...] 0.008 secs (0.008u,0.s) -Chars 16224 - 16225 [*] 0. secs (0.u,0.s) -Chars 16226 - 16244 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 16245 - 16259 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16260 - 16282 [dependent~induction~H.] 0.056 secs (0.055u,0.s) -Chars 16291 - 16293 [++] 0. secs (0.u,0.s) -Chars 16294 - 16302 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 16303 - 16307 [(cbn).] 0. secs (0.u,0.s) -Chars 16308 - 16326 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 16335 - 16337 [++] 0. secs (0.u,0.s) -Chars 16338 - 16346 [simpobs.] 0.016 secs (0.016u,0.s) -Chars 16347 - 16351 [(cbn).] 0. secs (0.u,0.s) -Chars 16352 - 16371 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 16378 - 16379 [*] 0. secs (0.u,0.s) -Chars 16380 - 16398 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 16399 - 16413 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16414 - 16436 [dependent~induction~H.] 0.055 secs (0.054u,0.s) -Chars 16445 - 16447 [++] 0. secs (0.u,0.s) -Chars 16448 - 16456 [simpobs.] 0.006 secs (0.005u,0.s) -Chars 16457 - 16461 [(cbn).] 0. secs (0.u,0.s) -Chars 16462 - 16480 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 16489 - 16491 [++] 0. secs (0.u,0.s) -Chars 16492 - 16500 [simpobs.] 0.011 secs (0.011u,0.s) -Chars 16501 - 16505 [(cbn).] 0. secs (0.u,0.s) -Chars 16506 - 16525 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 16532 - 16533 [*] 0. secs (0.u,0.s) -Chars 16534 - 16546 [constructor.] 0. secs (0.u,0.s) -Chars 16547 - 16563 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 16564 - 16582 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 16583 - 16603 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 16612 - 16617 [step.] 0.001 secs (0.001u,0.s) -Chars 16618 - 16623 [auto.] 0. secs (0.u,0.s) -Chars 16630 - 16631 [*] 0. secs (0.u,0.s) -Chars 16632 - 16644 [constructor.] 0. secs (0.u,0.s) -Chars 16645 - 16661 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 16662 - 16680 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 16681 - 16701 [(rewrite~<-~tau_eutt).] 0.004 secs (0.004u,0.s) -Chars 16710 - 16715 [step.] 0.001 secs (0.001u,0.s) -Chars 16716 - 16721 [auto.] 0. secs (0.u,0.s) -Chars 16728 - 16729 [*] 0. secs (0.u,0.s) -Chars 16730 - 16748 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 16749 - 16763 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16764 - 16786 [dependent~induction~H.] 0.064 secs (0.063u,0.s) -Chars 16795 - 16797 [++] 0. secs (0.u,0.s) -Chars 16798 - 16806 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 16807 - 16822 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 16823 - 16827 [(cbn).] 0. secs (0.u,0.s) -Chars 16839 - 16855 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 16867 - 16897 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) -Chars 16909 - 16911 [**] 0. secs (0.u,0.s) -Chars 16912 - 16938 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 16953 - 16979 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.001u,0.s) -Chars 16980 - 17005 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 17020 - 17024 [(cbn).] 0. secs (0.u,0.s) -Chars 17025 - 17037 [constructor.] 0. secs (0.u,0.s) -Chars 17038 - 17045 [(intros).] 0. secs (0.u,0.s) -Chars 17047 - 17069 [(eapply~CIH;~apply~REL).] 0. secs (0.u,0.s) -Chars 17081 - 17083 [**] 0. secs (0.u,0.s) -Chars 17084 - 17088 [(cbn).] 0. secs (0.u,0.s) -Chars 17089 - 17101 [reflexivity.] 0.003 secs (0.003u,0.s) -Chars 17111 - 17113 [++] 0. secs (0.u,0.s) -Chars 17114 - 17122 [simpobs.] 0.013 secs (0.012u,0.s) -Chars 17123 - 17127 [(cbn).] 0. secs (0.u,0.s) -Chars 17128 - 17147 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 17154 - 17155 [*] 0. secs (0.u,0.s) -Chars 17156 - 17174 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 17175 - 17189 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 17190 - 17212 [dependent~induction~H.] 0.068 secs (0.068u,0.s) -Chars 17221 - 17223 [++] 0. secs (0.u,0.s) -Chars 17224 - 17232 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 17233 - 17237 [(cbn).] 0. secs (0.u,0.s) -Chars 17238 - 17250 [constructor.] 0. secs (0.u,0.s) -Chars 17251 - 17265 [contradiction.] 0. secs (0.u,0.s) -Chars 17274 - 17276 [++] 0. secs (0.u,0.s) -Chars 17277 - 17285 [simpobs.] 0.014 secs (0.014u,0.s) -Chars 17286 - 17290 [(cbn).] 0. secs (0.u,0.s) -Chars 17291 - 17310 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 17311 - 17315 [Qed.] 0.546 secs (0.539u,0.005s) -Chars 17317 - 17418 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 17419 - 17425 [Proof.] 0. secs (0.u,0.s) -Chars 17428 - 17447 [(intros~?~?~?~?~?~?).] 0. secs (0.u,0.s) -Chars 17448 - 17497 [(rewrite~proper_peel_eutt_l~wi...] 0.008 secs (0.008u,0.s) -Chars 17500 - 17533 [(eapply~proper_peel_eutt_r;~ea...] 0. secs (0.u,0.s) -Chars 17534 - 17538 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17540 - 17746 [Lemma~not_peel_vis_ret~:~~~for...] 0. secs (0.u,0.s) -Chars 17747 - 17753 [Proof.] 0. secs (0.u,0.s) -Chars 17756 - 17786 [(intros~R~E~S~X~e~k~r~t1~Heutt).] 0. secs (0.u,0.s) -Chars 17789 - 17803 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 17804 - 17821 [(unfold~peel~in~*).] 0. secs (0.u,0.s) -Chars 17822 - 17831 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 17834 - 17861 [dependent~induction~Heutt.] 0.03 secs (0.03u,0.s) -Chars 17864 - 17865 [-] 0. secs (0.u,0.s) -Chars 17866 - 17916 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) -Chars 17921 - 17961 [(destruct~e0;~cbn~in~*;~try~di...] 0. secs (0.u,0.s) -Chars 17966 - 17986 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 17987 - 17996 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 17997 - 18018 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 18023 - 18069 [(destruct~(classicT~(A~=~X));~...] 0. secs (0.u,0.s) -Chars 18074 - 18105 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 18106 - 18133 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 18138 - 18163 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 18164 - 18177 [discriminate.] 0. secs (0.u,0.s) -Chars 18180 - 18181 [-] 0. secs (0.u,0.s) -Chars 18182 - 18232 [(destruct~(observe~t1);~cbn~in...] 0. secs (0.u,0.s) -Chars 18237 - 18238 [+] 0. secs (0.u,0.s) -Chars 18239 - 18260 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 18261 - 18284 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) -Chars 18291 - 18316 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 18317 - 18322 [step.] 0.006 secs (0.006u,0.s) -Chars 18323 - 18329 [eauto.] 0. secs (0.u,0.s) -Chars 18334 - 18335 [+] 0. secs (0.u,0.s) -Chars 18336 - 18355 [injection~x~as~Ht0.] 0. secs (0.u,0.s) -Chars 18356 - 18378 [(eapply~IHHeutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 18379 - 18391 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 18392 - 18404 [reflexivity.] 0. secs (0.u,0.s) -Chars 18409 - 18410 [+] 0. secs (0.u,0.s) -Chars 18411 - 18451 [(destruct~e0;~cbn~in~*;~try~di...] 0.001 secs (0.001u,0.s) -Chars 18458 - 18478 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 18479 - 18488 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 18489 - 18510 [(unfold~peel_vis~in~*).] 0. secs (0.u,0.s) -Chars 18517 - 18546 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 18553 - 18554 [*] 0. secs (0.u,0.s) -Chars 18555 - 18586 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 18587 - 18614 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 18623 - 18648 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 18649 - 18662 [discriminate.] 0. secs (0.u,0.s) -Chars 18669 - 18670 [*] 0. secs (0.u,0.s) -Chars 18671 - 18680 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 18681 - 18702 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 18703 - 18726 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) -Chars 18735 - 18760 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 18761 - 18766 [step.] 0.004 secs (0.004u,0.s) -Chars 18767 - 18773 [eauto.] 0. secs (0.u,0.s) -Chars 18774 - 18778 [Qed.] 0.024 secs (0.024u,0.s) -Chars 18780 - 18934 [Lemma~peel_ret_inv~:~~~forall~...] 0. secs (0.u,0.s) -Chars 18935 - 18941 [Proof.] 0. secs (0.u,0.s) -Chars 18944 - 18965 [(intros~R~r~E~S~b~t~H).] 0. secs (0.u,0.s) -Chars 18966 - 18983 [(unfold~peel~in~H).] 0. secs (0.u,0.s) -Chars 18986 - 18996 [step~in~H.] 0. secs (0.u,0.s) -Chars 18997 - 19006 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 19007 - 19012 [step.] 0.001 secs (0.001u,0.s) -Chars 19013 - 19017 [(cbn).] 0. secs (0.u,0.s) -Chars 19020 - 19042 [dependent~induction~H.] 0.03 secs (0.03u,0.s) -Chars 19045 - 19046 [-] 0. secs (0.u,0.s) -Chars 19047 - 19064 [(unfold~peel~in~x).] 0. secs (0.u,0.s) -Chars 19065 - 19180 [(destruct~(observe~b);~destruc...] 0.018 secs (0.018u,0.s) -Chars 19185 - 19186 [+] 0. secs (0.u,0.s) -Chars 19187 - 19248 [(destruct~e;~dependent~destruc...] 0.004 secs (0.004u,0.s) -Chars 19253 - 19254 [+] 0. secs (0.u,0.s) -Chars 19255 - 19291 [(destruct~e;~dependent~destruc...] 0.003 secs (0.003u,0.s) -Chars 19296 - 19297 [+] 0. secs (0.u,0.s) -Chars 19298 - 19334 [(destruct~e;~dependent~destruc...] 0.004 secs (0.004u,0.s) -Chars 19341 - 19361 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 19362 - 19371 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 19372 - 19393 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 19400 - 19440 [(destruct~(classicT~(A~=~X0))~...] 0. secs (0.u,0.s) -Chars 19447 - 19448 [*] 0. secs (0.u,0.s) -Chars 19449 - 19480 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 19481 - 19487 [subst.] 0. secs (0.u,0.s) -Chars 19488 - 19520 [(remember~(eq_sym~eq_refl)~as~...] 0. secs (0.u,0.s) -Chars 19529 - 19554 [dependent~destruction~He.] 0.004 secs (0.004u,0.s) -Chars 19555 - 19565 [(cbn~in~x0).] 0. secs (0.u,0.s) -Chars 19566 - 19579 [discriminate.] 0. secs (0.u,0.s) -Chars 19586 - 19587 [*] 0. secs (0.u,0.s) -Chars 19588 - 19601 [discriminate.] 0. secs (0.u,0.s) -Chars 19604 - 19605 [-] 0. secs (0.u,0.s) -Chars 19606 - 19684 [(destruct~(observe~b);~destruc...] 0.02 secs (0.02u,0.s) -Chars 19689 - 19690 [+] 0. secs (0.u,0.s) -Chars 19691 - 19709 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 19710 - 19751 [(eapply~IHeqitF~with~(b~:=~Ret...] 0.001 secs (0.001u,0.s) -Chars 19756 - 19757 [+] 0. secs (0.u,0.s) -Chars 19758 - 19766 [exfalso.] 0. secs (0.u,0.s) -Chars 19767 - 19792 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 19793 - 19798 [step.] 0.004 secs (0.004u,0.s) -Chars 19799 - 19805 [eauto.] 0. secs (0.u,0.s) -Chars 19810 - 19811 [+] 0. secs (0.u,0.s) -Chars 19812 - 19830 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 19831 - 19853 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 19858 - 19859 [+] 0. secs (0.u,0.s) -Chars 19860 - 19868 [exfalso.] 0. secs (0.u,0.s) -Chars 19869 - 19891 [(destruct~(observe~t0)).] 0.001 secs (0.001u,0.s) -Chars 19898 - 19899 [*] 0. secs (0.u,0.s) -Chars 19900 - 19909 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 19910 - 19935 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 19944 - 19951 [(inv~H).] 0.012 secs (0.012u,0.s) -Chars 19952 - 19957 [step.] 0.004 secs (0.004u,0.s) -Chars 19958 - 19964 [eauto.] 0. secs (0.u,0.s) -Chars 19971 - 19972 [*] 0. secs (0.u,0.s) -Chars 19973 - 19982 [(cbn~in~H).] 0.001 secs (0.001u,0.s) -Chars 19983 - 19989 [(inv~H).] 0.008 secs (0.008u,0.s) -Chars 19990 - 20014 [(eapply~not_peel_vis_ret).] 0. secs (0.u,0.s) -Chars 20023 - 20028 [step.] 0.004 secs (0.004u,0.s) -Chars 20029 - 20035 [eauto.] 0. secs (0.u,0.s) -Chars 20042 - 20043 [*] 0. secs (0.u,0.s) -Chars 20044 - 20056 [(destruct~e0).] 0. secs (0.u,0.s) -Chars 20065 - 20067 [++] 0. secs (0.u,0.s) -Chars 20068 - 20082 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 20083 - 20103 [(unfold~observe~in~H).] 0. secs (0.u,0.s) -Chars 20104 - 20113 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20114 - 20135 [(unfold~peel_vis~in~H).] 0. secs (0.u,0.s) -Chars 20147 - 20176 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 20188 - 20190 [**] 0. secs (0.u,0.s) -Chars 20191 - 20222 [(unfold~eq_rect_r,~eq_rect~in~H).] 0. secs (0.u,0.s) -Chars 20223 - 20250 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 20265 - 20290 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 20291 - 20297 [(inv~H).] 0.003 secs (0.003u,0.s) -Chars 20309 - 20311 [**] 0. secs (0.u,0.s) -Chars 20312 - 20337 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 20338 - 20343 [step.] 0.004 secs (0.004u,0.s) -Chars 20344 - 20350 [eauto.] 0. secs (0.u,0.s) -Chars 20359 - 20361 [++] 0. secs (0.u,0.s) -Chars 20362 - 20371 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20372 - 20378 [(inv~H).] 0.003 secs (0.003u,0.s) -Chars 20383 - 20384 [+] 0. secs (0.u,0.s) -Chars 20385 - 20424 [(destruct~e;~cbn~in~x;~try~dis...] 0. secs (0.u,0.s) -Chars 20429 - 20430 [+] 0. secs (0.u,0.s) -Chars 20431 - 20449 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 20450 - 20492 [(eapply~IHeqitF~with~(b~:=~Vis...] 0.001 secs (0.001u,0.s) -Chars 20493 - 20497 [(cbn).] 0. secs (0.u,0.s) -Chars 20504 - 20556 [(destruct~e;~cbn~in~x;~depende...] 0.006 secs (0.006u,0.s) -Chars 20561 - 20562 [+] 0. secs (0.u,0.s) -Chars 20563 - 20602 [(destruct~e;~cbn~in~x;~try~dis...] 0.001 secs (0.001u,0.s) -Chars 20609 - 20629 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 20630 - 20639 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 20640 - 20661 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 20668 - 20698 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) -Chars 20705 - 20706 [*] 0. secs (0.u,0.s) -Chars 20707 - 20738 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 20739 - 20765 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 20774 - 20799 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 20800 - 20813 [discriminate.] 0. secs (0.u,0.s) -Chars 20820 - 20821 [*] 0. secs (0.u,0.s) -Chars 20822 - 20843 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 20844 - 20857 [(cbn~in~Hspin).] 0. secs (0.u,0.s) -Chars 20858 - 20866 [exfalso.] 0. secs (0.u,0.s) -Chars 20875 - 20897 [(assert~(t1~≈~Ret~r)).] 0. secs (0.u,0.s) -Chars 20906 - 20907 [{] 0. secs (0.u,0.s) -Chars 20908 - 20913 [step.] 0.002 secs (0.002u,0.s) -Chars 20914 - 20919 [auto.] 0. secs (0.u,0.s) -Chars 20920 - 20921 [}] 0. secs (0.u,0.s) -Chars 20930 - 20950 [(rewrite~Hspin~in~H0).] 0. secs (0.u,0.s) -Chars 20951 - 20983 [(eapply~not_spin_eutt_ret;~eau...] 0. secs (0.u,0.s) -Chars 20984 - 20988 [Qed.] 0.077 secs (0.076u,0.s) -Chars 21766 - 22425 [Lemma~eqitF_observe_peel_cont_...] 0.002 secs (0.002u,0.s) -Chars 22426 - 22432 [Proof.] 0. secs (0.u,0.s) -Chars 22435 - 22479 [(intros~E~R~S~A~ev~ans~k1~k2~R...] 0. secs (0.u,0.s) -Chars 22482 - 22497 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 22498 - 22502 [(cbn).] 0. secs (0.u,0.s) -Chars 22503 - 22524 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) -Chars 22527 - 22556 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 22559 - 22560 [-] 0. secs (0.u,0.s) -Chars 22561 - 22587 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 22588 - 22615 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 22620 - 22645 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 22646 - 22650 [(cbn).] 0. secs (0.u,0.s) -Chars 22651 - 22663 [constructor.] 0. secs (0.u,0.s) -Chars 22668 - 22675 [(intros).] 0. secs (0.u,0.s) -Chars 22677 - 22688 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 22689 - 22705 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 22708 - 22709 [-] 0. secs (0.u,0.s) -Chars 22710 - 22714 [(cbn).] 0. secs (0.u,0.s) -Chars 22715 - 22720 [taus.] 0. secs (0.u,0.s) -Chars 22721 - 22730 [Admitted.] 0. secs (0.u,0.s) -Chars 22734 - 22945 [Lemma~proper_peel_cont_eutt_l~...] 0. secs (0.u,0.s) -Chars 22946 - 22952 [Proof.] 0. secs (0.u,0.s) -Chars 22955 - 22968 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 22969 - 22986 [(unfold~peel_cont).] 0. secs (0.u,0.s) -Chars 22987 - 23003 [(intros~b~b'~t~_).] 0. secs (0.u,0.s) -Chars 23006 - 23020 [revert~b~b'~t.] 0. secs (0.u,0.s) -Chars 23021 - 23040 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 23041 - 23048 [(intros).] 0. secs (0.u,0.s) -Chars 23049 - 23059 [step~in~H.] 0. secs (0.u,0.s) -Chars 23063 - 23095 [(destruct~(observe~t)~eqn:Heqt).] 0.001 secs (0.001u,0.s) -Chars 23117 - 23118 [-] 0. secs (0.u,0.s) -Chars 23119 - 23268 [(destruct~(observe~b')~eqn:Hb;...] 0.173 secs (0.17u,0.002s) -Chars 23274 - 23275 [+] 0. secs (0.u,0.s) -Chars 23276 - 23281 [taus.] 0. secs (0.u,0.s) -Chars 23282 - 23302 [now~do~2~Utils.step.] 0.009 secs (0.009u,0.s) -Chars 23311 - 23312 [+] 0. secs (0.u,0.s) -Chars 23313 - 23326 [ddestruction.] 0.006 secs (0.006u,0.s) -Chars 23327 - 23339 [constructor.] 0. secs (0.u,0.s) -Chars 23340 - 23347 [(intros).] 0. secs (0.u,0.s) -Chars 23348 - 23354 [(inv~H).] 0.027 secs (0.027u,0.s) -Chars 23362 - 23375 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 23376 - 23392 [(do~2~Utils.step).] 0.009 secs (0.009u,0.s) -Chars 23393 - 23404 [(apply~REL0).] 0. secs (0.u,0.s) -Chars 23468 - 23469 [-] 0. secs (0.u,0.s) -Chars 23470 - 23511 [(dependent~induction~H;~try~cl...] 0.053 secs (0.052u,0.s) -Chars 23516 - 23517 [+] 0. secs (0.u,0.s) -Chars 23518 - 23526 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23527 - 23531 [(cbn).] 0. secs (0.u,0.s) -Chars 23532 - 23537 [etau.] 0.001 secs (0.001u,0.s) -Chars 23546 - 23547 [+] 0. secs (0.u,0.s) -Chars 23548 - 23556 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23557 - 23561 [(cbn).] 0. secs (0.u,0.s) -Chars 23562 - 23567 [etau.] 0.001 secs (0.001u,0.s) -Chars 23573 - 23574 [+] 0. secs (0.u,0.s) -Chars 23575 - 23583 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 23584 - 23613 [(destruct~e;~cbn;~constructor).] 0.002 secs (0.002u,0.s) -Chars 23621 - 23622 [*] 0. secs (0.u,0.s) -Chars 23623 - 23631 [simpobs.] 0.004 secs (0.003u,0.s) -Chars 23632 - 23646 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 23647 - 23665 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 23666 - 23671 [step.] 0.001 secs (0.001u,0.s) -Chars 23680 - 23688 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23689 - 23701 [constructor.] 0. secs (0.u,0.s) -Chars 23702 - 23707 [auto.] 0. secs (0.u,0.s) -Chars 23714 - 23715 [*] 0. secs (0.u,0.s) -Chars 23716 - 23730 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 23731 - 23749 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 23750 - 23755 [step.] 0.001 secs (0.001u,0.s) -Chars 23765 - 23773 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23774 - 23786 [constructor.] 0. secs (0.u,0.s) -Chars 23787 - 23792 [auto.] 0. secs (0.u,0.s) -Chars 23797 - 23798 [+] 0. secs (0.u,0.s) -Chars 23799 - 23807 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 23809 - 23813 [(cbn).] 0. secs (0.u,0.s) -Chars 23820 - 23859 [(destruct~(observe~b')~eqn:Heq...] 0.002 secs (0.002u,0.s) -Chars 23866 - 23867 [*] 0. secs (0.u,0.s) -Chars 23868 - 23880 [constructor.] 0. secs (0.u,0.s) -Chars 23881 - 23898 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) -Chars 23899 - 23910 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 23919 - 23937 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) -Chars 23938 - 23961 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) -Chars 23962 - 23976 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) -Chars 23985 - 23990 [step.] 0.001 secs (0.001u,0.s) -Chars 23991 - 23996 [auto.] 0. secs (0.u,0.s) -Chars 24003 - 24004 [*] 0. secs (0.u,0.s) -Chars 24005 - 24017 [constructor.] 0. secs (0.u,0.s) -Chars 24018 - 24029 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24031 - 24063 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) -Chars 24072 - 24077 [step.] 0.002 secs (0.002u,0.s) -Chars 24078 - 24083 [auto.] 0. secs (0.u,0.s) -Chars 24090 - 24091 [*] 0. secs (0.u,0.s) -Chars 24092 - 24104 [constructor.] 0. secs (0.u,0.s) -Chars 24105 - 24122 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) -Chars 24123 - 24134 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24143 - 24161 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) -Chars 24162 - 24185 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) -Chars 24186 - 24200 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) -Chars 24201 - 24206 [step.] 0.001 secs (0.001u,0.s) -Chars 24207 - 24212 [auto.] 0. secs (0.u,0.s) -Chars 24217 - 24218 [+] 0. secs (0.u,0.s) -Chars 24219 - 24227 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24228 - 24232 [(cbn).] 0. secs (0.u,0.s) -Chars 24233 - 24270 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) -Chars 24277 - 24278 [*] 0. secs (0.u,0.s) -Chars 24279 - 24297 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24298 - 24314 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 24315 - 24326 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24335 - 24340 [step.] 0.001 secs (0.001u,0.s) -Chars 24341 - 24354 [(rewrite~Heqb).] 0. secs (0.u,0.s) -Chars 24355 - 24360 [auto.] 0. secs (0.u,0.s) -Chars 24367 - 24368 [*] 0. secs (0.u,0.s) -Chars 24369 - 24381 [constructor.] 0. secs (0.u,0.s) -Chars 24382 - 24393 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24395 - 24420 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) -Chars 24421 - 24426 [step.] 0.001 secs (0.001u,0.s) -Chars 24427 - 24432 [auto.] 0. secs (0.u,0.s) -Chars 24439 - 24440 [*] 0. secs (0.u,0.s) -Chars 24441 - 24453 [constructor.] 0. secs (0.u,0.s) -Chars 24454 - 24470 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 24471 - 24482 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24483 - 24488 [step.] 0.001 secs (0.001u,0.s) -Chars 24497 - 24510 [(rewrite~Heqb).] 0. secs (0.u,0.s) -Chars 24511 - 24516 [auto.] 0. secs (0.u,0.s) -Chars 24519 - 24520 [-] 0. secs (0.u,0.s) -Chars 24521 - 24548 [(dependent~induction~H;~cbn).] 0.06 secs (0.059u,0.s) -Chars 24553 - 24554 [+] 0. secs (0.u,0.s) -Chars 24556 - 24564 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24565 - 24573 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24574 - 24578 [(cbn).] 0. secs (0.u,0.s) -Chars 24579 - 24591 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 24597 - 24598 [+] 0. secs (0.u,0.s) -Chars 24599 - 24607 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 24608 - 24616 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 24617 - 24621 [(cbn).] 0. secs (0.u,0.s) -Chars 24622 - 24634 [constructor.] 0. secs (0.u,0.s) -Chars 24635 - 24651 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) -Chars 24652 - 24663 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24671 - 24676 [auto.] 0. secs (0.u,0.s) -Chars 24681 - 24682 [+] 0. secs (0.u,0.s) -Chars 24683 - 24691 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 24692 - 24755 [(destruct~e;~cbn;~try~(apply~e...] 0.002 secs (0.002u,0.s) -Chars 24762 - 24774 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 24780 - 24781 [+] 0. secs (0.u,0.s) -Chars 24782 - 24790 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24791 - 24795 [(cbn).] 0. secs (0.u,0.s) -Chars 24796 - 24815 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 24820 - 24821 [+] 0. secs (0.u,0.s) -Chars 24822 - 24830 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24831 - 24835 [(cbn).] 0. secs (0.u,0.s) -Chars 24836 - 24855 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 24856 - 24860 [Qed.] 0.211 secs (0.209u,0.001s) -Chars 24862 - 25005 [Lemma~peel_cont_ret_inv~:~~~fo...] 0. secs (0.u,0.s) -Chars 25006 - 25012 [Proof.] 0. secs (0.u,0.s) -Chars 25015 - 25028 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 25029 - 25047 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 25048 - 25055 [(intros).] 0. secs (0.u,0.s) -Chars 25056 - 25066 [step~in~H.] 0. secs (0.u,0.s) -Chars 25067 - 25076 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 25077 - 25106 [(dependent~induction~H;~subst).] 0.045 secs (0.045u,0.s) -Chars 25109 - 25110 [-] 0. secs (0.u,0.s) -Chars 25111 - 25119 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 25120 - 25124 [(cbn).] 0. secs (0.u,0.s) -Chars 25125 - 25137 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 25141 - 25142 [-] 0. secs (0.u,0.s) -Chars 25143 - 25151 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 25152 - 25182 [(destruct~(observe~b)~eqn:Hb).] 0.001 secs (0.001u,0.s) -Chars 25187 - 25188 [+] 0. secs (0.u,0.s) -Chars 25189 - 25193 [(cbn).] 0. secs (0.u,0.s) -Chars 25194 - 25199 [taul.] 0. secs (0.u,0.s) -Chars 25200 - 25208 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 25209 - 25216 [to_mon.] 0. secs (0.u,0.s) -Chars 25224 - 25245 [(rewrite~<-~itree_eta).] 0.017 secs (0.017u,0.s) -Chars 25253 - 25298 [(specialize~(IHeqitF~CIH~(Ret~...] 0. secs (0.u,0.s) -Chars 25303 - 25304 [+] 0. secs (0.u,0.s) -Chars 25305 - 25309 [(cbn).] 0. secs (0.u,0.s) -Chars 25310 - 25321 [(rewrite~Hb).] 0. secs (0.u,0.s) -Chars 25322 - 25327 [taus.] 0. secs (0.u,0.s) -Chars 25328 - 25353 [(eapply~CIH~with~(s~:=~s)).] 0. secs (0.u,0.s) -Chars 25360 - 25365 [step.] 0.003 secs (0.003u,0.s) -Chars 25366 - 25371 [auto.] 0. secs (0.u,0.s) -Chars 25376 - 25377 [+] 0. secs (0.u,0.s) -Chars 25378 - 25382 [(cbn).] 0. secs (0.u,0.s) -Chars 25383 - 25394 [(rewrite~Hb).] 0. secs (0.u,0.s) -Chars 25395 - 25400 [taul.] 0. secs (0.u,0.s) -Chars 25401 - 25415 [(rewrite~<-~Hb).] 0. secs (0.u,0.s) -Chars 25423 - 25462 [(specialize~(IHeqitF~CIH~b~t1~...] 0.001 secs (0.001u,0.s) -Chars 25469 - 25484 [(assert~(S~=~S)).] 0. secs (0.u,0.s) -Chars 25485 - 25490 [auto.] 0. secs (0.u,0.s) -Chars 25491 - 25511 [(apply~IHeqitF;~auto).] 0.001 secs (0.001u,0.s) -Chars 25512 - 25516 [Qed.] 0.059 secs (0.058u,0.s) -Chars 25518 - 25728 [Lemma~proper_peel_cont_eutt_r~...] 0. secs (0.u,0.s) -Chars 25729 - 25735 [Proof.] 0. secs (0.u,0.s) -Chars 25738 - 25751 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 25752 - 25769 [(unfold~peel_cont).] 0. secs (0.u,0.s) -Chars 25770 - 25786 [(intros~b~t~t'~_).] 0. secs (0.u,0.s) -Chars 25789 - 25803 [revert~b~t~t'.] 0. secs (0.u,0.s) -Chars 25804 - 25822 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 25823 - 25830 [(intros).] 0. secs (0.u,0.s) -Chars 25831 - 25841 [step~in~H.] 0. secs (0.u,0.s) -Chars 25842 - 25864 [dependent~induction~H.] 0.044 secs (0.043u,0.s) -Chars 25867 - 25868 [-] 0. secs (0.u,0.s) -Chars 25869 - 25877 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 25878 - 25890 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 25894 - 25895 [-] 0. secs (0.u,0.s) -Chars 25896 - 25904 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 25905 - 25942 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) -Chars 25947 - 25948 [+] 0. secs (0.u,0.s) -Chars 25949 - 25953 [(cbn).] 0. secs (0.u,0.s) -Chars 25954 - 25959 [taus.] 0. secs (0.u,0.s) -Chars 25960 - 25976 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 25977 - 25988 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 25989 - 25994 [auto.] 0. secs (0.u,0.s) -Chars 25999 - 26000 [+] 0. secs (0.u,0.s) -Chars 26001 - 26006 [etau.] 0.001 secs (0.001u,0.s) -Chars 26012 - 26013 [+] 0. secs (0.u,0.s) -Chars 26014 - 26026 [constructor.] 0. secs (0.u,0.s) -Chars 26027 - 26043 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 26044 - 26061 [(eapply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 26064 - 26065 [-] 0. secs (0.u,0.s) -Chars 26066 - 26074 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 26076 - 26118 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) -Chars 26123 - 26124 [+] 0. secs (0.u,0.s) -Chars 26125 - 26137 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 26143 - 26144 [+] 0. secs (0.u,0.s) -Chars 26145 - 26157 [constructor.] 0. secs (0.u,0.s) -Chars 26158 - 26172 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 26173 - 26184 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 26192 - 26197 [step.] 0.001 secs (0.001u,0.s) -Chars 26198 - 26206 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 26207 - 26219 [constructor.] 0. secs (0.u,0.s) -Chars 26220 - 26227 [(intros).] 0. secs (0.u,0.s) -Chars 26234 - 26239 [auto.] 0. secs (0.u,0.s) -Chars 26244 - 26245 [+] 0. secs (0.u,0.s) -Chars 26246 - 26263 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) -Chars 26270 - 26271 [*] 0. secs (0.u,0.s) -Chars 26272 - 26287 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 26288 - 26292 [(cbn).] 0. secs (0.u,0.s) -Chars 26293 - 26314 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) -Chars 26323 - 26369 [(destruct~(classicT~(A~=~u));~...] 0.003 secs (0.003u,0.s) -Chars 26378 - 26404 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 26405 - 26432 [(remember~(eq_sym~e0)~as~He).] 0.001 secs (0.001u,0.s) -Chars 26441 - 26466 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 26467 - 26471 [(cbn).] 0. secs (0.u,0.s) -Chars 26472 - 26484 [constructor.] 0. secs (0.u,0.s) -Chars 26485 - 26492 [(intros).] 0. secs (0.u,0.s) -Chars 26501 - 26512 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 26513 - 26529 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 26536 - 26537 [*] 0. secs (0.u,0.s) -Chars 26538 - 26550 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 26554 - 26555 [-] 0. secs (0.u,0.s) -Chars 26556 - 26564 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 26565 - 26607 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) -Chars 26612 - 26613 [+] 0. secs (0.u,0.s) -Chars 26614 - 26633 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 26634 - 26650 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 26651 - 26673 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 26678 - 26679 [+] 0. secs (0.u,0.s) -Chars 26680 - 26684 [(cbn).] 0. secs (0.u,0.s) -Chars 26685 - 26724 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) -Chars 26731 - 26732 [*] 0. secs (0.u,0.s) -Chars 26733 - 26745 [constructor.] 0. secs (0.u,0.s) -Chars 26747 - 26758 [Utils.step.] 0.002 secs (0.002u,0.s) -Chars 26769 - 26781 [unstep~in~H.] 0. secs (0.u,0.s) -Chars 26782 - 26827 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) -Chars 26828 - 26833 [step.] 0.003 secs (0.003u,0.s) -Chars 26842 - 26852 [(rewrite~H).] 0.022 secs (0.022u,0.s) -Chars 26853 - 26865 [reflexivity.] 0. secs (0.u,0.s) -Chars 26873 - 26874 [*] 0. secs (0.u,0.s) -Chars 26875 - 26887 [constructor.] 0. secs (0.u,0.s) -Chars 26888 - 26906 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 26907 - 26939 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.u,0.s) -Chars 26948 - 26953 [step.] 0.001 secs (0.001u,0.s) -Chars 26954 - 26959 [auto.] 0. secs (0.u,0.s) -Chars 26966 - 26967 [*] 0. secs (0.u,0.s) -Chars 26968 - 26980 [constructor.] 0. secs (0.u,0.s) -Chars 26981 - 26998 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) -Chars 26999 - 27010 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 27019 - 27024 [step.] 0.001 secs (0.001u,0.s) -Chars 27025 - 27039 [(rewrite~Heqt').] 0. secs (0.u,0.s) -Chars 27040 - 27045 [auto.] 0. secs (0.u,0.s) -Chars 27050 - 27051 [+] 0. secs (0.u,0.s) -Chars 27052 - 27068 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 27069 - 27087 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 27088 - 27110 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 27113 - 27114 [-] 0. secs (0.u,0.s) -Chars 27115 - 27123 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 27124 - 27166 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) -Chars 27171 - 27172 [+] 0. secs (0.u,0.s) -Chars 27173 - 27191 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 27192 - 27208 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 27209 - 27231 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 27236 - 27237 [+] 0. secs (0.u,0.s) -Chars 27238 - 27275 [(destruct~(observe~t)~eqn:Heqt...] 0.004 secs (0.004u,0.s) -Chars 27282 - 27283 [*] 0. secs (0.u,0.s) -Chars 27290 - 27304 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 27305 - 27317 [unstep~in~H.] 0. secs (0.u,0.s) -Chars 27325 - 27370 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) -Chars 27371 - 27380 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 27388 - 27393 [taus.] 0. secs (0.u,0.s) -Chars 27394 - 27403 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 27404 - 27424 [now~do~2~Utils.step.] 0.01 secs (0.01u,0.s) -Chars 27432 - 27433 [*] 0. secs (0.u,0.s) -Chars 27434 - 27446 [constructor.] 0. secs (0.u,0.s) -Chars 27447 - 27458 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 27460 - 27485 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) -Chars 27486 - 27491 [step.] 0.001 secs (0.001u,0.s) -Chars 27492 - 27497 [auto.] 0. secs (0.u,0.s) -Chars 27504 - 27505 [*] 0. secs (0.u,0.s) -Chars 27506 - 27518 [constructor.] 0. secs (0.u,0.s) -Chars 27519 - 27535 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) -Chars 27536 - 27547 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 27556 - 27561 [step.] 0.001 secs (0.001u,0.s) -Chars 27562 - 27575 [(rewrite~Heqt).] 0. secs (0.u,0.s) -Chars 27576 - 27581 [auto.] 0. secs (0.u,0.s) -Chars 27586 - 27587 [+] 0. secs (0.u,0.s) -Chars 27588 - 27604 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 27605 - 27623 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 27624 - 27646 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 27647 - 27651 [Qed.] 0.086 secs (0.085u,0.s) -Chars 27653 - 27771 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 27772 - 27778 [Proof.] 0. secs (0.u,0.s) -Chars 27781 - 27794 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 27795 - 27801 [subst.] 0. secs (0.u,0.s) -Chars 27802 - 27841 [(rewrite~proper_peel_cont_eutt...] 0.003 secs (0.003u,0.s) -Chars 27844 - 27883 [(rewrite~proper_peel_cont_eutt...] 0.002 secs (0.002u,0.s) -Chars 27884 - 27888 [Qed.] 0.001 secs (0.001u,0.s) -Chars 28280 - 28577 [Lemma~vis_refine_peel~:~~~fora...] 0.001 secs (0.001u,0.s) -Chars 28578 - 28584 [Proof.] 0. secs (0.u,0.s) -Chars 28587 - 28602 [(intros~E~R~S~A).] 0. secs (0.u,0.s) -Chars 28628 - 28654 [(intros~e~a~k1~k2~k3~Hpeel).] 0. secs (0.u,0.s) -Chars 28657 - 28674 [(unfold~peel~in~*).] 0. secs (0.u,0.s) -Chars 28675 - 28684 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 28685 - 28699 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 28702 - 28711 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 28715 - 28739 [(unfold~observe~in~Hpeel).] 0. secs (0.u,0.s) -Chars 28740 - 28753 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) -Chars 28756 - 28781 [(unfold~peel_vis~in~Hpeel).] 0. secs (0.u,0.s) -Chars 28784 - 28807 [(assert~(A~=~A)~by~auto).] 0. secs (0.u,0.s) -Chars 28810 - 28858 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 28859 - 28894 [(unfold~eq_rect_r,~eq_rect~in~...] 0. secs (0.u,0.s) -Chars 28897 - 28924 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 28925 - 28950 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 28951 - 28960 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 28963 - 28980 [clear~HeqHe~e0~H.] 0. secs (0.u,0.s) -Chars 28981 - 28986 [step.] 0.002 secs (0.002u,0.s) -Chars 28987 - 28991 [(cbn).] 0. secs (0.u,0.s) -Chars 28992 - 29002 [(inv~Hpeel).] 0.009 secs (0.009u,0.s) -Chars 29003 - 29016 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 29020 - 29040 [specialize~(REL~tt).] 0. secs (0.u,0.s) -Chars 29043 - 29104 [(assert~(peel_~(observe~(k1~tt...] 0. secs (0.u,0.s) -Chars 29105 - 29110 [auto.] 0. secs (0.u,0.s) -Chars 29113 - 29127 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 29128 - 29142 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 29143 - 29147 [Qed.] 0.011 secs (0.011u,0.s) -Chars 29149 - 29460 [Lemma~vis_refine_peel_cont~:~~...] 0.001 secs (0.001u,0.s) -Chars 29461 - 29467 [Proof.] 0. secs (0.u,0.s) -Chars 29470 - 29507 [(intros~E~R~S~A~e~a~k1~k2~t~Hp...] 0. secs (0.u,0.s) -Chars 29508 - 29526 [step~in~Hpeelcont.] 0. secs (0.u,0.s) -Chars 29529 - 29562 [(unfold~observe~in~Hpeelcont~a...] 0. secs (0.u,0.s) -Chars 29563 - 29572 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 29573 - 29599 [(unfold~peel_cont_vis~in~*).] 0. secs (0.u,0.s) -Chars 29602 - 29623 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) -Chars 29624 - 29672 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 29675 - 29706 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) -Chars 29707 - 29734 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 29737 - 29762 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) -Chars 29763 - 29772 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 29773 - 29782 [symmetry.] 0. secs (0.u,0.s) -Chars 29785 - 29856 [(assert~(Tau~(peel_cont_~(obse...] 0. secs (0.u,0.s) -Chars 29859 - 29860 [{] 0. secs (0.u,0.s) -Chars 29861 - 29866 [step.] 0.001 secs (0.001u,0.s) -Chars 29867 - 29872 [auto.] 0. secs (0.u,0.s) -Chars 29873 - 29874 [}] 0. secs (0.u,0.s) -Chars 29877 - 29900 [(rewrite~tau_eutt~in~H0).] 0.018 secs (0.018u,0.s) -Chars 29901 - 29906 [auto.] 0. secs (0.u,0.s) -Chars 29907 - 29911 [Qed.] 0.005 secs (0.005u,0.s) -Chars 29913 - 30062 [Lemma~spin_not_vis~:~~~forall~...] 0. secs (0.u,0.s) -Chars 30063 - 30069 [Proof.] 0. secs (0.u,0.s) -Chars 30072 - 30097 [(intros~E~R~A~e~k~Hcontra).] 0. secs (0.u,0.s) -Chars 30098 - 30114 [step~in~Hcontra.] 0. secs (0.u,0.s) -Chars 30115 - 30124 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 30127 - 30155 [dependent~induction~Hcontra.] 0.02 secs (0.02u,0.s) -Chars 30158 - 30182 [(eapply~IHHcontra;~eauto).] 0. secs (0.u,0.s) -Chars 30183 - 30187 [Qed.] 0.01 secs (0.01u,0.s) -Chars 30189 - 30629 [Lemma~peel_vis_empty_contra~:~...] 0.001 secs (0.001u,0.s) -Chars 30630 - 30636 [Proof.] 0. secs (0.u,0.s) -Chars 30639 - 30685 [(intros~R~E~S~A0~Hempty~ev~k0~...] 0. secs (0.u,0.s) -Chars 30688 - 30714 [dependent~induction~Hpeel.] 0.043 secs (0.042u,0.s) -Chars 30717 - 30718 [-] 0. secs (0.u,0.s) -Chars 30719 - 30767 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 30770 - 30771 [-] 0. secs (0.u,0.s) -Chars 30772 - 30824 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 30825 - 30834 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 30835 - 30854 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 30859 - 30882 [(rewrite~Ht1~in~IHHpeel).] 0. secs (0.u,0.s) -Chars 30883 - 30905 [(eapply~IHHpeel;~eauto).] 0.002 secs (0.002u,0.s) -Chars 30906 - 30910 [Qed.] 0.024 secs (0.024u,0.s) -Chars 30913 - 31207 [Lemma~vis_peel_l~:~~~forall~(E...] 0.001 secs (0.001u,0.s) -Chars 31208 - 31214 [Proof.] 0. secs (0.u,0.s) -Chars 31217 - 31255 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) -Chars 31258 - 31272 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 31273 - 31286 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) -Chars 31287 - 31313 [dependent~induction~Hpeel.] 0.049 secs (0.048u,0.s) -Chars 31316 - 31317 [-] 0. secs (0.u,0.s) -Chars 31318 - 31335 [(unfold~peel~in~x).] 0. secs (0.u,0.s) -Chars 31340 - 31463 [(destruct~(observe~b)~eqn:Heqb...] 0.032 secs (0.032u,0.s) -Chars 31464 - 31484 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 31485 - 31494 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 31499 - 31520 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 31525 - 31542 [(assert~(A0~=~X0)).] 0. secs (0.u,0.s) -Chars 31547 - 31548 [{] 0. secs (0.u,0.s) -Chars 31555 - 31563 [clear~x.] 0. secs (0.u,0.s) -Chars 31570 - 31587 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 31588 - 31605 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 31606 - 31628 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 31629 - 31651 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 31658 - 31679 [(rewrite~Heqb~in~Href).] 0.004 secs (0.004u,0.s) -Chars 31680 - 31701 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 31708 - 31733 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 31740 - 31753 [step~in~Href.] 0. secs (0.u,0.s) -Chars 31754 - 31763 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 31764 - 31773 [(inv~Href).] 0.016 secs (0.015u,0.s) -Chars 31780 - 31793 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 31794 - 31800 [subst.] 0. secs (0.u,0.s) -Chars 31801 - 31808 [(inv~H1).] 0.003 secs (0.003u,0.s) -Chars 31814 - 31815 [}] 0. secs (0.u,0.s) -Chars 31820 - 31877 [(destruct~(classicT~(A0~=~X0))...] 0.001 secs (0.001u,0.s) -Chars 31882 - 31913 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 31914 - 31941 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 31946 - 31971 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 31972 - 31981 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 31982 - 32004 [injection~x~as~Hevans.] 0.001 secs (0.001u,0.s) -Chars 32009 - 32022 [ddestruction.] 0.01 secs (0.01u,0.s) -Chars 32023 - 32029 [subst.] 0. secs (0.u,0.s) -Chars 32030 - 32043 [ddestruction.] 0. secs (0.u,0.s) -Chars 32044 - 32050 [subst.] 0. secs (0.u,0.s) -Chars 32051 - 32061 [exists~k0.] 0. secs (0.u,0.s) -Chars 32066 - 32083 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32084 - 32106 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 32107 - 32120 [(rewrite~Heqb).] 0.002 secs (0.002u,0.s) -Chars 32121 - 32133 [reflexivity.] 0. secs (0.u,0.s) -Chars 32136 - 32137 [-] 0. secs (0.u,0.s) -Chars 32138 - 32155 [(unfold~peel~in~x).] 0. secs (0.u,0.s) -Chars 32156 - 32279 [(destruct~(observe~b)~eqn:Heqb...] 0.046 secs (0.046u,0.s) -Chars 32284 - 32285 [+] 0. secs (0.u,0.s) -Chars 32286 - 32303 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32304 - 32326 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 32327 - 32348 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) -Chars 32355 - 32380 [(rewrite~tau_eutt~in~Href).] 0.007 secs (0.007u,0.s) -Chars 32381 - 32411 [(eapply~IHHpeel~in~Href;~eauto).] 0.003 secs (0.003u,0.s) -Chars 32412 - 32424 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 32431 - 32444 [(rewrite~Heqb).] 0. secs (0.u,0.s) -Chars 32445 - 32450 [auto.] 0. secs (0.u,0.s) -Chars 32455 - 32456 [+] 0. secs (0.u,0.s) -Chars 32457 - 32465 [exfalso.] 0. secs (0.u,0.s) -Chars 32466 - 32486 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) -Chars 32487 - 32492 [step.] 0.005 secs (0.005u,0.s) -Chars 32493 - 32499 [eauto.] 0. secs (0.u,0.s) -Chars 32504 - 32505 [+] 0. secs (0.u,0.s) -Chars 32506 - 32523 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32524 - 32541 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32542 - 32564 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 32571 - 32593 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 32594 - 32614 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) -Chars 32615 - 32639 [setoid_rewrite~tau_eutt.] 0.004 secs (0.004u,0.s) -Chars 32646 - 32667 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 32668 - 32689 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) -Chars 32690 - 32722 [(repeat~rewrite~tau_eutt~in~Hr...] 0.009 secs (0.009u,0.s) -Chars 32729 - 32759 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) -Chars 32764 - 32765 [+] 0. secs (0.u,0.s) -Chars 32766 - 32783 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32784 - 32801 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32802 - 32824 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 32825 - 32847 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 32854 - 32874 [setoid_rewrite~Heqb.] 0.003 secs (0.003u,0.s) -Chars 32875 - 32899 [setoid_rewrite~tau_eutt.] 0.004 secs (0.004u,0.s) -Chars 32900 - 32921 [(rewrite~Heqb~in~Href).] 0.004 secs (0.003u,0.s) -Chars 32928 - 32949 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) -Chars 32950 - 32982 [(repeat~rewrite~tau_eutt~in~Hr...] 0.004 secs (0.004u,0.s) -Chars 32989 - 33019 [(eapply~IHHpeel~in~Href;~eauto).] 0.003 secs (0.003u,0.s) -Chars 33024 - 33025 [+] 0. secs (0.u,0.s) -Chars 33026 - 33043 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 33044 - 33066 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 33067 - 33088 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33095 - 33120 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33127 - 33144 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 33145 - 33167 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 33168 - 33189 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 33196 - 33216 [setoid_rewrite~Heqb.] 0.003 secs (0.003u,0.s) -Chars 33217 - 33247 [(eapply~IHHpeel~in~Href;~eauto).] 0.004 secs (0.004u,0.s) -Chars 33252 - 33253 [+] 0. secs (0.u,0.s) -Chars 33254 - 33262 [exfalso.] 0. secs (0.u,0.s) -Chars 33263 - 33299 [(eapply~peel_vis_empty_contra;...] 0. secs (0.u,0.s) -Chars 33304 - 33305 [+] 0. secs (0.u,0.s) -Chars 33306 - 33326 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 33327 - 33336 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 33337 - 33358 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 33365 - 33382 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 33383 - 33400 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 33401 - 33423 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 33430 - 33452 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 33453 - 33474 [(rewrite~Heqb~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33475 - 33496 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33503 - 33528 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33529 - 33542 [step~in~Href.] 0. secs (0.u,0.s) -Chars 33543 - 33552 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 33559 - 33568 [(inv~Href).] 0.02 secs (0.02u,0.s) -Chars 33569 - 33582 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 33583 - 33589 [subst.] 0. secs (0.u,0.s) -Chars 33590 - 33597 [(inv~H1).] 0.012 secs (0.012u,0.s) -Chars 33598 - 33625 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 33632 - 33655 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) -Chars 33656 - 33706 [(destruct~(classicT~(A0~=~A0))...] 0.001 secs (0.001u,0.s) -Chars 33713 - 33744 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) -Chars 33745 - 33772 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 33779 - 33804 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 33805 - 33814 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 33815 - 33828 [discriminate.] 0. secs (0.u,0.s) -Chars 33829 - 33833 [Qed.] 0.138 secs (0.136u,0.001s) -Chars 33835 - 34117 [Lemma~vis_peel_r~:~~~forall~(E...] 0.001 secs (0.001u,0.s) -Chars 34118 - 34124 [Proof.] 0. secs (0.u,0.s) -Chars 34127 - 34165 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) -Chars 34168 - 34212 [(eapply~vis_peel_l~in~Hpeel~as...] 0.001 secs (0.001u,0.s) -Chars 34213 - 34240 [(destruct~Hpeell~as~[k'~Hb]).] 0. secs (0.u,0.s) -Chars 34243 - 34262 [(rewrite~Hb~in~Href).] 0.004 secs (0.004u,0.s) -Chars 34263 - 34283 [(rewrite~Hb~in~Hpeel).] 0.026 secs (0.025u,0.s) -Chars 34284 - 34295 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 34296 - 34310 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 34311 - 34320 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34323 - 34344 [(unfold~peel~in~Hpeel).] 0. secs (0.u,0.s) -Chars 34345 - 34354 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34355 - 34381 [dependent~induction~Hpeel.] 0.057 secs (0.056u,0.s) -Chars 34384 - 34385 [-] 0. secs (0.u,0.s) -Chars 34386 - 34443 [(destruct~(observe~t)~eqn:Heqt...] 0.011 secs (0.011u,0.s) -Chars 34448 - 34465 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 34466 - 34488 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 34489 - 34509 [setoid_rewrite~Heqt.] 0.002 secs (0.002u,0.s) -Chars 34514 - 34534 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 34535 - 34544 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34545 - 34566 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 34567 - 34629 [(destruct~(classicT~(A~=~X));~...] 0.001 secs (0.001u,0.s) -Chars 34634 - 34665 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 34666 - 34693 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) -Chars 34698 - 34723 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 34724 - 34733 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34734 - 34744 [exists~k0.] 0. secs (0.u,0.s) -Chars 34749 - 34770 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 34771 - 34796 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.003u,0.s) -Chars 34797 - 34810 [step~in~Href.] 0. secs (0.u,0.s) -Chars 34816 - 34825 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34826 - 34835 [(inv~Href).] 0.016 secs (0.016u,0.s) -Chars 34836 - 34856 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 34857 - 34864 [(inv~H1).] 0.007 secs (0.007u,0.s) -Chars 34865 - 34885 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 34886 - 34898 [reflexivity.] 0. secs (0.u,0.s) -Chars 34901 - 34902 [-] 0. secs (0.u,0.s) -Chars 34903 - 34970 [(destruct~(observe~t)~eqn:Heqt...] 0.009 secs (0.009u,0.s) -Chars 34975 - 34976 [+] 0. secs (0.u,0.s) -Chars 34977 - 34994 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 34995 - 35017 [(apply~simpobs~in~Heqt).] 0.003 secs (0.003u,0.s) -Chars 35018 - 35039 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) -Chars 35040 - 35065 [(rewrite~tau_eutt~in~Href).] 0.005 secs (0.005u,0.s) -Chars 35072 - 35092 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) -Chars 35093 - 35117 [setoid_rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) -Chars 35118 - 35140 [(eapply~IHHpeel;~eauto).] 0.003 secs (0.002u,0.s) -Chars 35145 - 35146 [+] 0. secs (0.u,0.s) -Chars 35147 - 35167 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 35168 - 35177 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 35178 - 35199 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 35206 - 35235 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 35242 - 35243 [*] 0. secs (0.u,0.s) -Chars 35244 - 35275 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 35276 - 35303 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) -Chars 35304 - 35329 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 35338 - 35347 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 35348 - 35361 [discriminate.] 0. secs (0.u,0.s) -Chars 35368 - 35369 [*] 0. secs (0.u,0.s) -Chars 35370 - 35379 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 35380 - 35399 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 35400 - 35421 [(rewrite~Ht1~in~Hpeel).] 0. secs (0.u,0.s) -Chars 35430 - 35438 [exfalso.] 0. secs (0.u,0.s) -Chars 35439 - 35459 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) -Chars 35460 - 35465 [step.] 0.006 secs (0.006u,0.s) -Chars 35466 - 35472 [eauto.] 0. secs (0.u,0.s) -Chars 35473 - 35477 [Qed.] 0.067 secs (0.066u,0.s) -Chars 35479 - 35762 [Lemma~peel_cont_vis_eutt~:~~~f...] 0.001 secs (0.001u,0.s) -Chars 35763 - 35769 [Proof.] 0. secs (0.u,0.s) -Chars 35772 - 35802 [(intros~R~r~E~S~A~ev~ans~kb~kt).] 0. secs (0.u,0.s) -Chars 35805 - 35810 [step.] 0.002 secs (0.002u,0.s) -Chars 35811 - 35831 [(unfold~observe~at~1).] 0. secs (0.u,0.s) -Chars 35832 - 35836 [(cbn).] 0. secs (0.u,0.s) -Chars 35837 - 35858 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) -Chars 35861 - 35882 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) -Chars 35883 - 35930 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 35933 - 35959 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 35960 - 35986 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 35989 - 36014 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 36015 - 36019 [(cbn).] 0. secs (0.u,0.s) -Chars 36020 - 36038 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 36040 - 36044 [Qed.] 0.004 secs (0.004u,0.s) -Chars 36046 - 36331 [Lemma~peel_cont_refine_t~:~~~f...] 0. secs (0.u,0.s) -Chars 36332 - 36338 [Proof.] 0. secs (0.u,0.s) -Chars 36341 - 36348 [(intros).] 0. secs (0.u,0.s) -Chars 36349 - 36375 [(remember~(peel~b~t)~as~t').] 0. secs (0.u,0.s) -Chars 36376 - 36401 [(assert~(peel~b~t~≈~t')).] 0. secs (0.u,0.s) -Chars 36404 - 36405 [{] 0. secs (0.u,0.s) -Chars 36406 - 36412 [subst.] 0. secs (0.u,0.s) -Chars 36413 - 36425 [reflexivity.] 0. secs (0.u,0.s) -Chars 36426 - 36427 [}] 0. secs (0.u,0.s) -Chars 36430 - 36442 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 36443 - 36466 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 36467 - 36490 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 36493 - 36513 [(induction~H;~intros).] 0. secs (0.u,0.s) -Chars 36516 - 36517 [-] 0. secs (0.u,0.s) -Chars 36518 - 36537 [(rewrite~<-~H0~in~H).] 0.023 secs (0.023u,0.s) -Chars 36538 - 36547 [clear~H0.] 0. secs (0.u,0.s) -Chars 36548 - 36578 [(apply~peel_ret_inv~in~H~as~Ht).] 0. secs (0.u,0.s) -Chars 36583 - 36603 [(rewrite~Ht~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 36608 - 36636 [(rewrite~bind_ret_l~in~Hrutt).] 0.003 secs (0.003u,0.s) -Chars 36641 - 36657 [(rewrite~Ht~in~H).] 0.025 secs (0.025u,0.s) -Chars 36662 - 36679 [(unfold~peel_cont).] 0. secs (0.u,0.s) -Chars 36680 - 36684 [(cbn).] 0. secs (0.u,0.s) -Chars 36685 - 36718 [(rewrite~peel_cont_ret_inv;~ea...] 0.004 secs (0.004u,0.s) -Chars 36721 - 36722 [-] 0. secs (0.u,0.s) -Chars 36723 - 36739 [(rewrite~H~in~H1).] 0. secs (0.u,0.s) -Chars 36740 - 36748 [clear~H.] 0. secs (0.u,0.s) -Chars 36753 - 36783 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) -Chars 36784 - 36821 [(eapply~vis_peel_l~in~H1~as~Hb...] 0.001 secs (0.001u,0.s) -Chars 36826 - 36863 [(eapply~vis_peel_r~in~H1~as~Ht...] 0.001 secs (0.001u,0.s) -Chars 36868 - 36892 [(destruct~Hb~as~[kb~Hkb]).] 0. secs (0.u,0.s) -Chars 36893 - 36917 [(destruct~Ht~as~[kt~Htk]).] 0. secs (0.u,0.s) -Chars 36922 - 36934 [(rewrite~Htk).] 0.006 secs (0.006u,0.s) -Chars 36935 - 36947 [(rewrite~Hkb).] 0.005 secs (0.005u,0.s) -Chars 36952 - 36973 [(rewrite~Hkb~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 36974 - 36995 [(rewrite~Htk~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 37000 - 37018 [(rewrite~Hkb~in~H1).] 0.021 secs (0.021u,0.s) -Chars 37019 - 37037 [(rewrite~Htk~in~H1).] 0.022 secs (0.022u,0.s) -Chars 37042 - 37076 [(apply~vis_refine_peel~in~H1~a...] 0. secs (0.u,0.s) -Chars 37081 - 37108 [(rewrite~peel_cont_vis_eutt).] 0.005 secs (0.005u,0.s) -Chars 37109 - 37136 [(apply~IHmay_converge;~auto).] 0.001 secs (0.001u,0.s) -Chars 37141 - 37142 [+] 0. secs (0.u,0.s) -Chars 37143 - 37169 [(rewrite~bind_vis~in~Hrutt).] 0.003 secs (0.003u,0.s) -Chars 37170 - 37184 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 37185 - 37194 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 37201 - 37211 [(inv~Hrutt).] 0.012 secs (0.012u,0.s) -Chars 37212 - 37232 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 37239 - 37310 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 37317 - 37331 [(apply~H8~in~H).] 0. secs (0.u,0.s) -Chars 37333 - 37338 [auto.] 0. secs (0.u,0.s) -Chars 37343 - 37344 [+] 0. secs (0.u,0.s) -Chars 37345 - 37356 [(destruct~b).] 0. secs (0.u,0.s) -Chars 37357 - 37366 [symmetry.] 0. secs (0.u,0.s) -Chars 37367 - 37372 [auto.] 0. secs (0.u,0.s) -Chars 37373 - 37377 [Qed.] 0.018 secs (0.018u,0.s) -Chars 37380 - 37681 [Ltac~~fold_peel_cont~r~:=~~~ma...] 0. secs (0.u,0.s) -Chars 37683 - 38045 [Lemma~trace_prefix_tau_ret~:~~...] 0.001 secs (0.001u,0.s) -Chars 38046 - 38052 [Proof.] 0. secs (0.u,0.s) -Chars 38055 - 38098 [(intros~E~R~S~r~b~t~f~r0~Hrutt...] 0. secs (0.u,0.s) -Chars 38101 - 38118 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 38119 - 38136 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 38139 - 38161 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 38162 - 38184 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 38185 - 38207 [(rewrite~Heqb~in~Hrutt).] 0.003 secs (0.003u,0.s) -Chars 38210 - 38232 [(rewrite~Heqt~in~Hrutt).] 0.005 secs (0.005u,0.s) -Chars 38233 - 38259 [(rewrite~tau_eutt~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 38262 - 38300 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 38301 - 38313 [constructor.] 0. secs (0.u,0.s) -Chars 38316 - 38348 [(assert~(exists~s,~t0~≈~Ret~s)).] 0. secs (0.u,0.s) -Chars 38351 - 38352 [{] 0. secs (0.u,0.s) -Chars 38357 - 38371 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 38372 - 38398 [dependent~induction~Hrutt.] 0.028 secs (0.028u,0.s) -Chars 38403 - 38404 [-] 0. secs (0.u,0.s) -Chars 38405 - 38425 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 38426 - 38435 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 38436 - 38496 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) -Chars 38503 - 38513 [exists~r1.] 0. secs (0.u,0.s) -Chars 38514 - 38519 [step.] 0.001 secs (0.001u,0.s) -Chars 38520 - 38532 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 38533 - 38537 [(cbn).] 0. secs (0.u,0.s) -Chars 38538 - 38554 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 38559 - 38560 [-] 0. secs (0.u,0.s) -Chars 38561 - 38581 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 38582 - 38591 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 38592 - 38652 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) -Chars 38659 - 38660 [+] 0. secs (0.u,0.s) -Chars 38661 - 38671 [exists~r1.] 0. secs (0.u,0.s) -Chars 38672 - 38677 [step.] 0.001 secs (0.001u,0.s) -Chars 38678 - 38690 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 38691 - 38695 [(cbn).] 0. secs (0.u,0.s) -Chars 38696 - 38712 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 38719 - 38720 [+] 0. secs (0.u,0.s) -Chars 38721 - 38740 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 38741 - 38757 [symmetry~in~Ht0.] 0. secs (0.u,0.s) -Chars 38758 - 38779 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) -Chars 38788 - 38821 [(apply~eq_sub_eutt~in~Ht0~as~H...] 0. secs (0.u,0.s) -Chars 38822 - 38842 [setoid_rewrite~Ht0'.] 0.004 secs (0.003u,0.s) -Chars 38851 - 38875 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 38876 - 38898 [(eapply~IHHrutt;~eauto).] 0.004 secs (0.004u,0.s) -Chars 38907 - 38919 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 38920 - 38926 [eauto.] 0. secs (0.u,0.s) -Chars 38929 - 38930 [}] 0. secs (0.u,0.s) -Chars 38933 - 38955 [(destruct~H~as~[s~Ht0]).] 0. secs (0.u,0.s) -Chars 38956 - 38968 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 38969 - 38980 [(cbn~in~Ht0).] 0. secs (0.u,0.s) -Chars 38983 - 39000 [clear~Heqt~Hrutt.] 0. secs (0.u,0.s) -Chars 39003 - 39027 [dependent~induction~Ht0.] 0.029 secs (0.029u,0.s) -Chars 39030 - 39031 [-] 0. secs (0.u,0.s) -Chars 39032 - 39040 [simpobs.] 0. secs (0.u,0.s) -Chars 39041 - 39045 [(cbn).] 0. secs (0.u,0.s) -Chars 39046 - 39059 [step~in~Heqb.] 0. secs (0.u,0.s) -Chars 39060 - 39069 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 39070 - 39094 [(inv~Heqb;~try~inv~CHECK).] 0.012 secs (0.012u,0.s) -Chars 39099 - 39110 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 39111 - 39127 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 39130 - 39131 [-] 0. secs (0.u,0.s) -Chars 39132 - 39140 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 39141 - 39145 [(cbn).] 0. secs (0.u,0.s) -Chars 39146 - 39158 [constructor.] 0. secs (0.u,0.s) -Chars 39159 - 39179 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 39180 - 39184 [Qed.] 0.05 secs (0.05u,0.s) -Chars 39186 - 39988 [Lemma~trace_prefix_vis_evans~:...] 0.002 secs (0.002u,0.s) -Chars 39989 - 39995 [Proof.] 0. secs (0.u,0.s) -Chars 39998 - 40045 [(intros~E~R~S~r~A0~ev~ans~k~k'...] 0. secs (0.u,0.s) -Chars 40048 - 40060 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 40061 - 40070 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 40071 - 40095 [dependent~induction~Ht0.] 0.045 secs (0.044u,0.s) -Chars 40098 - 40099 [-] 0. secs (0.u,0.s) -Chars 40100 - 40108 [simpobs.] 0. secs (0.u,0.s) -Chars 40109 - 40124 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 40125 - 40129 [(cbn).] 0. secs (0.u,0.s) -Chars 40130 - 40146 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 40151 - 40174 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) -Chars 40175 - 40224 [(destruct~(classicT~(A0~=~A0))...] 0. secs (0.u,0.s) -Chars 40229 - 40255 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 40256 - 40282 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 40287 - 40312 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 40313 - 40317 [(cbn).] 0. secs (0.u,0.s) -Chars 40318 - 40330 [constructor.] 0. secs (0.u,0.s) -Chars 40331 - 40342 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 40348 - 40420 [(assert~(RAnsRef~E~unit~A0~(ev...] 0. secs (0.u,0.s) -Chars 40425 - 40441 [(apply~Hk'~in~H0).] 0. secs (0.u,0.s) -Chars 40443 - 40485 [(assert~(k1~ans~≈~k'~ans);~try...] 0. secs (0.u,0.s) -Chars 40490 - 40501 [(rewrite~H1).] 0.004 secs (0.004u,0.s) -Chars 40502 - 40508 [eauto.] 0. secs (0.u,0.s) -Chars 40511 - 40512 [-] 0. secs (0.u,0.s) -Chars 40513 - 40521 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 40522 - 40526 [(cbn).] 0. secs (0.u,0.s) -Chars 40527 - 40539 [constructor.] 0. secs (0.u,0.s) -Chars 40540 - 40560 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 40561 - 40565 [Qed.] 0.033 secs (0.033u,0.s) -Chars 40567 - 41225 [Lemma~trace_prefix_vis_evempty...] 0.001 secs (0.001u,0.s) -Chars 41226 - 41232 [Proof.] 0. secs (0.u,0.s) -Chars 41235 - 41280 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) -Chars 41283 - 41287 [(cbn).] 0. secs (0.u,0.s) -Chars 41288 - 41300 [constructor.] 0. secs (0.u,0.s) -Chars 41303 - 41327 [dependent~induction~Ht0.] 0.036 secs (0.036u,0.s) -Chars 41330 - 41331 [-] 0. secs (0.u,0.s) -Chars 41332 - 41340 [simpobs.] 0. secs (0.u,0.s) -Chars 41341 - 41345 [(cbn).] 0. secs (0.u,0.s) -Chars 41346 - 41358 [constructor.] 0. secs (0.u,0.s) -Chars 41361 - 41362 [-] 0. secs (0.u,0.s) -Chars 41363 - 41371 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 41372 - 41376 [(cbn).] 0. secs (0.u,0.s) -Chars 41377 - 41389 [constructor.] 0. secs (0.u,0.s) -Chars 41390 - 41410 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 41411 - 41415 [Qed.] 0.043 secs (0.042u,0.s) -Chars 41418 - 41969 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) -Chars 41970 - 41976 [Proof.] 0. secs (0.u,0.s) -Chars 41979 - 42015 [(intros~E~R~S~r~A0~ev~ans~k~t0...] 0. secs (0.u,0.s) -Chars 42018 - 42030 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 42031 - 42040 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 42041 - 42065 [dependent~induction~Ht0.] 0.044 secs (0.043u,0.s) -Chars 42068 - 42069 [-] 0. secs (0.u,0.s) -Chars 42070 - 42078 [simpobs.] 0. secs (0.u,0.s) -Chars 42079 - 42083 [(cbn).] 0. secs (0.u,0.s) -Chars 42084 - 42132 [(remember~(go~(VisF~(evans~A0~...] 0. secs (0.u,0.s) -Chars 42137 - 42184 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) -Chars 42189 - 42190 [{] 0. secs (0.u,0.s) -Chars 42191 - 42197 [subst.] 0. secs (0.u,0.s) -Chars 42198 - 42203 [auto.] 0. secs (0.u,0.s) -Chars 42204 - 42205 [}] 0. secs (0.u,0.s) -Chars 42210 - 42222 [constructor.] 0. secs (0.u,0.s) -Chars 42225 - 42226 [-] 0. secs (0.u,0.s) -Chars 42227 - 42235 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 42236 - 42240 [(cbn).] 0. secs (0.u,0.s) -Chars 42241 - 42253 [constructor.] 0. secs (0.u,0.s) -Chars 42254 - 42274 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 42275 - 42279 [Qed.] 0.016 secs (0.016u,0.s) -Chars 42281 - 42878 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) -Chars 42879 - 42885 [Proof.] 0. secs (0.u,0.s) -Chars 42888 - 42927 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) -Chars 42930 - 42942 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 42943 - 42952 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 42953 - 42977 [dependent~induction~Ht0.] 0.035 secs (0.035u,0.s) -Chars 42980 - 42981 [-] 0. secs (0.u,0.s) -Chars 42982 - 42990 [simpobs.] 0. secs (0.u,0.s) -Chars 42991 - 42995 [(cbn).] 0. secs (0.u,0.s) -Chars 42996 - 43049 [(remember~(go~(VisF~(evempty~A...] 0. secs (0.u,0.s) -Chars 43054 - 43101 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) -Chars 43106 - 43107 [{] 0. secs (0.u,0.s) -Chars 43108 - 43114 [subst.] 0. secs (0.u,0.s) -Chars 43115 - 43120 [auto.] 0. secs (0.u,0.s) -Chars 43121 - 43122 [}] 0. secs (0.u,0.s) -Chars 43127 - 43139 [constructor.] 0.002 secs (0.002u,0.s) -Chars 43142 - 43143 [-] 0. secs (0.u,0.s) -Chars 43144 - 43152 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43153 - 43157 [(cbn).] 0. secs (0.u,0.s) -Chars 43158 - 43170 [constructor.] 0. secs (0.u,0.s) -Chars 43171 - 43191 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 43192 - 43196 [Qed.] 0.016 secs (0.016u,0.s) -Chars 43198 - 43409 [Lemma~trace_prefix_peel~:~~~fo...] 0. secs (0.u,0.s) -Chars 43410 - 43416 [Proof.] 0. secs (0.u,0.s) -Chars 43419 - 43432 [(intros~E~S~R).] 0. secs (0.u,0.s) -Chars 43433 - 43451 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 43452 - 43470 [(intros~b~t~f~Href).] 0. secs (0.u,0.s) -Chars 43471 - 43483 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 43486 - 43562 [(destruct~(observe~b)~eqn:Heqb...] 0.003 secs (0.003u,0.s) -Chars 43566 - 43567 [-] 0. secs (0.u,0.s) -Chars 43568 - 43572 [(cbn).] 0. secs (0.u,0.s) -Chars 43573 - 43589 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 43593 - 43594 [-] 0. secs (0.u,0.s) -Chars 43595 - 43603 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43604 - 43639 [(eapply~trace_prefix_tau_ret;~...] 0. secs (0.u,0.s) -Chars 43642 - 43643 [-] 0. secs (0.u,0.s) -Chars 43644 - 43661 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 43662 - 43679 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 43680 - 43702 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 43703 - 43725 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 43730 - 43751 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 43752 - 43773 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) -Chars 43774 - 43799 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 43804 - 43814 [sinv~Href.] 0.003 secs (0.003u,0.s) +Chars 3442 - 3456 [(sinv~H;~subst).] 0.01 secs (0.01u,0.s) +Chars 3459 - 3491 [(destruct~(observe~b);~cbn;~au...] 0.001 secs (0.001u,0.s) +Chars 3494 - 3495 [-] 0. secs (0.u,0.s) +Chars 3496 - 3501 [step.] 0.001 secs (0.001u,0.s) +Chars 3502 - 3506 [(cbn).] 0. secs (0.u,0.s) +Chars 3507 - 3519 [constructor.] 0. secs (0.u,0.s) +Chars 3520 - 3525 [auto.] 0. secs (0.u,0.s) +Chars 3528 - 3529 [-] 0. secs (0.u,0.s) +Chars 3530 - 3535 [step.] 0.002 secs (0.001u,0.s) +Chars 3536 - 3540 [(cbn).] 0. secs (0.u,0.s) +Chars 3541 - 3559 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 3562 - 3563 [-] 0. secs (0.u,0.s) +Chars 3564 - 3569 [step.] 0.001 secs (0.001u,0.s) +Chars 3570 - 3574 [(cbn).] 0. secs (0.u,0.s) +Chars 3575 - 3581 [(simpl).] 0. secs (0.u,0.s) +Chars 3582 - 3593 [(destruct~e).] 0. secs (0.u,0.s) +Chars 3598 - 3599 [+] 0. secs (0.u,0.s) +Chars 3600 - 3604 [(cbn).] 0. secs (0.u,0.s) +Chars 3605 - 3617 [constructor.] 0. secs (0.u,0.s) +Chars 3618 - 3623 [auto.] 0. secs (0.u,0.s) +Chars 3628 - 3629 [+] 0. secs (0.u,0.s) +Chars 3630 - 3634 [(cbn).] 0. secs (0.u,0.s) +Chars 3635 - 3647 [constructor.] 0. secs (0.u,0.s) +Chars 3648 - 3653 [auto.] 0. secs (0.u,0.s) +Chars 3654 - 3658 [Qed.] 0.05 secs (0.049u,0.s) +Chars 3735 - 3949 [Lemma~peel_refine_t~:~~~forall...] 0. secs (0.u,0.s) +Chars 3950 - 3956 [Proof.] 0. secs (0.u,0.s) +Chars 3959 - 3978 [(intros~E~R~S~b~t~f).] 0. secs (0.u,0.s) +Chars 3979 - 4002 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 4003 - 4026 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 4029 - 4048 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4049 - 4056 [(intros).] 0. secs (0.u,0.s) +Chars 4059 - 4073 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 4074 - 4087 [(cbn~in~Hrutt).] 0. secs (0.u,0.s) +Chars 4091 - 4103 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 4106 - 4137 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) +Chars 4140 - 4141 [-] 0. secs (0.u,0.s) +Chars 4142 - 4193 [(destruct~(observe~b);~cbn;~tr...] 0.001 secs (0.001u,0.s) +Chars 4198 - 4233 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) +Chars 4236 - 4237 [-] 0. secs (0.u,0.s) +Chars 4238 - 4264 [dependent~induction~Hrutt.] 0.061 secs (0.059u,0.001s) +Chars 4269 - 4270 [+] 0. secs (0.u,0.s) +Chars 4271 - 4279 [exfalso.] 0. secs (0.u,0.s) +Chars 4280 - 4296 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4297 - 4318 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4319 - 4338 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 4345 - 4362 [(rewrite~Heq~in~x).] 0.021 secs (0.02u,0.s) +Chars 4363 - 4385 [(rewrite~bind_tau~in~x).] 0.019 secs (0.019u,0.s) +Chars 4386 - 4393 [sinv~x.] 0.006 secs (0.006u,0.s) +Chars 4398 - 4399 [+] 0. secs (0.u,0.s) +Chars 4400 - 4408 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 4409 - 4413 [(cbn).] 0. secs (0.u,0.s) +Chars 4414 - 4426 [constructor.] 0. secs (0.u,0.s) +Chars 4427 - 4438 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 4446 - 4462 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4463 - 4483 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) +Chars 4490 - 4509 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 4510 - 4531 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4538 - 4562 [(apply~eq_sub_eutt~in~x0).] 0. secs (0.u,0.s) +Chars 4563 - 4588 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 4595 - 4619 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 4620 - 4643 [(rewrite~tau_eutt~in~x0).] 0. secs (0.u,0.s) +Chars 4650 - 4665 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) +Chars 4666 - 4676 [(rewrite~x).] 0.003 secs (0.003u,0.s) +Chars 4677 - 4694 [(rewrite~tau_eutt).] 0.003 secs (0.003u,0.s) +Chars 4695 - 4700 [auto.] 0. secs (0.u,0.s) +Chars 4705 - 4706 [+] 0. secs (0.u,0.s) +Chars 4707 - 4715 [exfalso.] 0. secs (0.u,0.s) +Chars 4716 - 4732 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4733 - 4754 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4761 - 4780 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 4787 - 4804 [(rewrite~Heq~in~x).] 0.017 secs (0.017u,0.s) +Chars 4805 - 4827 [(rewrite~bind_tau~in~x).] 0.016 secs (0.015u,0.s) +Chars 4828 - 4835 [sinv~x.] 0.006 secs (0.006u,0.s) +Chars 4840 - 4841 [+] 0. secs (0.u,0.s) +Chars 4842 - 4850 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 4851 - 4855 [(cbn).] 0. secs (0.u,0.s) +Chars 4856 - 4868 [constructor.] 0. secs (0.u,0.s) +Chars 4869 - 4880 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 4887 - 4901 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 4902 - 4918 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 4919 - 4940 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 4947 - 4972 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 4973 - 4997 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5004 - 5019 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) +Chars 5020 - 5025 [step.] 0.001 secs (0.001u,0.s) +Chars 5026 - 5031 [auto.] 0. secs (0.u,0.s) +Chars 5036 - 5037 [+] 0. secs (0.u,0.s) +Chars 5038 - 5042 [(cbn).] 0. secs (0.u,0.s) +Chars 5043 - 5075 [(destruct~(observe~b)~eqn:Heq').] 0.004 secs (0.004u,0.s) +Chars 5082 - 5083 [*] 0. secs (0.u,0.s) +Chars 5084 - 5088 [(cbn).] 0. secs (0.u,0.s) +Chars 5089 - 5105 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 5106 - 5118 [constructor.] 0. secs (0.u,0.s) +Chars 5119 - 5130 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5139 - 5156 [symmetry~in~Heq'.] 0. secs (0.u,0.s) +Chars 5165 - 5187 [(apply~simpobs~in~Heq').] 0. secs (0.u,0.s) +Chars 5188 - 5201 [(rewrite~Heq').] 0.004 secs (0.004u,0.s) +Chars 5210 - 5226 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 5227 - 5248 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 5257 - 5282 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5283 - 5307 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5316 - 5331 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) +Chars 5332 - 5351 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 5352 - 5362 [(rewrite~x).] 0.004 secs (0.004u,0.s) +Chars 5371 - 5388 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) +Chars 5389 - 5394 [step.] 0.001 secs (0.001u,0.s) +Chars 5395 - 5400 [auto.] 0. secs (0.u,0.s) +Chars 5407 - 5408 [*] 0. secs (0.u,0.s) +Chars 5409 - 5413 [(cbn).] 0. secs (0.u,0.s) +Chars 5414 - 5428 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 5437 - 5449 [constructor.] 0. secs (0.u,0.s) +Chars 5450 - 5461 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5471 - 5487 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 5488 - 5509 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 5518 - 5543 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5544 - 5568 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5577 - 5592 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) +Chars 5601 - 5620 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 5621 - 5644 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) +Chars 5653 - 5675 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) +Chars 5676 - 5686 [(rewrite~x).] 0.003 secs (0.003u,0.s) +Chars 5695 - 5718 [(enough~(Tau~t1~⊑~t2)).] 0. secs (0.u,0.s) +Chars 5727 - 5728 [{] 0. secs (0.u,0.s) +Chars 5729 - 5751 [(rewrite~tau_eutt~in~H).] 0.003 secs (0.003u,0.s) +Chars 5752 - 5757 [auto.] 0. secs (0.u,0.s) +Chars 5758 - 5759 [}] 0. secs (0.u,0.s) +Chars 5768 - 5773 [step.] 0. secs (0.u,0.s) +Chars 5774 - 5779 [auto.] 0. secs (0.u,0.s) +Chars 5786 - 5787 [*] 0. secs (0.u,0.s) +Chars 5788 - 5804 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 5813 - 5815 [++] 0. secs (0.u,0.s) +Chars 5816 - 5828 [constructor.] 0. secs (0.u,0.s) +Chars 5829 - 5845 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 5846 - 5860 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 5872 - 5883 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5884 - 5900 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 5912 - 5933 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 5934 - 5959 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5971 - 5995 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 5996 - 6015 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6027 - 6050 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6051 - 6073 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6085 - 6100 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) +Chars 6101 - 6111 [(rewrite~x).] 0.005 secs (0.004u,0.s) +Chars 6112 - 6117 [step.] 0.001 secs (0.001u,0.s) +Chars 6130 - 6143 [(rewrite~Heq').] 0. secs (0.u,0.s) +Chars 6144 - 6149 [auto.] 0. secs (0.u,0.s) +Chars 6158 - 6160 [++] 0. secs (0.u,0.s) +Chars 6161 - 6173 [constructor.] 0. secs (0.u,0.s) +Chars 6174 - 6190 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 6191 - 6205 [clear~IHHrutt.] 0. secs (0.u,0.s) +Chars 6217 - 6228 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 6229 - 6245 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6257 - 6278 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6279 - 6304 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 6316 - 6340 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) +Chars 6341 - 6360 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6372 - 6395 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6396 - 6418 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) +Chars 6430 - 6445 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) +Chars 6446 - 6456 [(rewrite~x).] 0.003 secs (0.003u,0.s) +Chars 6457 - 6462 [step.] 0.001 secs (0.001u,0.s) +Chars 6475 - 6488 [(rewrite~Heq').] 0. secs (0.u,0.s) +Chars 6489 - 6494 [auto.] 0. secs (0.u,0.s) +Chars 6497 - 6498 [-] 0. secs (0.u,0.s) +Chars 6499 - 6525 [dependent~induction~Hrutt.] 0.059 secs (0.059u,0.s) +Chars 6530 - 6531 [+] 0. secs (0.u,0.s) +Chars 6532 - 6540 [exfalso.] 0. secs (0.u,0.s) +Chars 6541 - 6557 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6558 - 6579 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6580 - 6599 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6606 - 6623 [(rewrite~Heq~in~x).] 0.02 secs (0.02u,0.s) +Chars 6624 - 6646 [(rewrite~bind_vis~in~x).] 0.016 secs (0.015u,0.s) +Chars 6653 - 6660 [sinv~x.] 0.003 secs (0.003u,0.s) +Chars 6665 - 6666 [+] 0. secs (0.u,0.s) +Chars 6667 - 6675 [exfalso.] 0. secs (0.u,0.s) +Chars 6676 - 6692 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6693 - 6714 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6715 - 6734 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6741 - 6758 [(rewrite~Heq~in~x).] 0.017 secs (0.016u,0.s) +Chars 6759 - 6781 [(rewrite~bind_vis~in~x).] 0.016 secs (0.015u,0.s) +Chars 6788 - 6806 [(sinv~x;~inv~CHECK).] 0.006 secs (0.006u,0.s) +Chars 6811 - 6812 [+] 0. secs (0.u,0.s) +Chars 6813 - 6821 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 6828 - 6844 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 6845 - 6866 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 6867 - 6886 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6893 - 6910 [(rewrite~Heq~in~x).] 0.017 secs (0.016u,0.s) +Chars 6911 - 6933 [(rewrite~bind_vis~in~x).] 0.016 secs (0.016u,0.s) +Chars 6934 - 6957 [(step~in~x;~inversion~x).] 0.006 secs (0.006u,0.s) +Chars 6965 - 6978 [ddestruction.] 0.007 secs (0.006u,0.s) +Chars 6979 - 7005 [(inversion~H;~ddestruction).] 0.018 secs (0.018u,0.s) +Chars 7012 - 7013 [*] 0. secs (0.u,0.s) +Chars 7014 - 7029 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 7030 - 7034 [(cbn).] 0. secs (0.u,0.s) +Chars 7035 - 7051 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 7060 - 7108 [(destruct~(classicT~(B~=~B));~...] 0.001 secs (0.001u,0.s) +Chars 7117 - 7143 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 7152 - 7178 [(remember~(eq_sym~_)~as~He).] 0.002 secs (0.002u,0.s) +Chars 7179 - 7191 [clear~HeqHe.] 0. secs (0.u,0.s) +Chars 7200 - 7225 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) +Chars 7226 - 7230 [(cbn).] 0. secs (0.u,0.s) +Chars 7231 - 7250 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7259 - 7266 [(intros).] 0. secs (0.u,0.s) +Chars 7267 - 7280 [(inversion~H1).] 0.003 secs (0.003u,0.s) +Chars 7281 - 7294 [ddestruction.] 0.007 secs (0.006u,0.s) +Chars 7303 - 7318 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 7320 - 7330 [(unfold~id).] 0. secs (0.u,0.s) +Chars 7331 - 7342 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7352 - 7362 [(cbn~in~x1).] 0. secs (0.u,0.s) +Chars 7363 - 7376 [(inversion~x1).] 0.002 secs (0.002u,0.s) +Chars 7377 - 7390 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 7399 - 7432 [specialize~(H0~tt~a~(rar~_~_~_)).] 0. secs (0.u,0.s) +Chars 7441 - 7461 [specialize~(REL0~a).] 0. secs (0.u,0.s) +Chars 7471 - 7484 [(rewrite~REL0).] 0.003 secs (0.003u,0.s) +Chars 7485 - 7494 [(apply~H0).] 0. secs (0.u,0.s) +Chars 7501 - 7502 [*] 0. secs (0.u,0.s) +Chars 7503 - 7507 [(cbn).] 0. secs (0.u,0.s) +Chars 7508 - 7527 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7528 - 7535 [(intros).] 0. secs (0.u,0.s) +Chars 7536 - 7550 [contradiction.] 0. secs (0.u,0.s) +Chars 7555 - 7556 [+] 0. secs (0.u,0.s) +Chars 7557 - 7565 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 7566 - 7570 [(cbn).] 0. secs (0.u,0.s) +Chars 7571 - 7583 [constructor.] 0. secs (0.u,0.s) +Chars 7584 - 7606 [(eapply~IHHrutt;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7611 - 7612 [+] 0. secs (0.u,0.s) +Chars 7613 - 7621 [exfalso.] 0. secs (0.u,0.s) +Chars 7622 - 7638 [symmetry~in~Heq.] 0. secs (0.u,0.s) +Chars 7639 - 7658 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 7659 - 7680 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) +Chars 7687 - 7704 [(rewrite~Heq~in~x).] 0.018 secs (0.017u,0.s) +Chars 7705 - 7727 [(rewrite~bind_vis~in~x).] 0.018 secs (0.018u,0.s) +Chars 7734 - 7741 [sinv~x.] 0.006 secs (0.006u,0.s) +Chars 7742 - 7746 [Qed.] 0.233 secs (0.228u,0.004s) +Chars 7748 - 7824 [Lemma~not_spin_eutt_ret~:~fora...] 0. secs (0.u,0.s) +Chars 7825 - 7831 [Proof.] 0. secs (0.u,0.s) +Chars 7834 - 7841 [(intros).] 0. secs (0.u,0.s) +Chars 7842 - 7857 [(intros~Hcontra).] 0. secs (0.u,0.s) +Chars 7858 - 7898 [specialize~(@spin_infinite~E~R...] 0. secs (0.u,0.s) +Chars 7901 - 7925 [(rewrite~Hcontra~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 7926 - 7936 [sinv~Hdiv.] 0. secs (0.u,0.s) +Chars 7937 - 7941 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7944 - 8123 [Lemma~proper_peel_eutt_l~:~~~f...] 0. secs (0.u,0.s) +Chars 8124 - 8130 [Proof.] 0. secs (0.u,0.s) +Chars 8133 - 8146 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 8147 - 8166 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 8167 - 8174 [(intros).] 0. secs (0.u,0.s) +Chars 8175 - 8187 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 8190 - 8211 [(destruct~(observe~t)).] 0. secs (0.u,0.s) +Chars 8214 - 8215 [-] 0. secs (0.u,0.s) +Chars 8216 - 8350 [(destruct~(observe~b);~destruc...] 0.016 secs (0.015u,0.s) +Chars 8353 - 8354 [-] 0. secs (0.u,0.s) +Chars 8355 - 8365 [step~in~H.] 0. secs (0.u,0.s) +Chars 8366 - 8388 [dependent~induction~H.] 0.057 secs (0.056u,0.s) +Chars 8393 - 8394 [+] 0. secs (0.u,0.s) +Chars 8395 - 8403 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 8404 - 8416 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8422 - 8423 [+] 0. secs (0.u,0.s) +Chars 8424 - 8432 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 8433 - 8437 [(cbn).] 0. secs (0.u,0.s) +Chars 8438 - 8443 [etau.] 0.001 secs (0.001u,0.s) +Chars 8449 - 8450 [+] 0. secs (0.u,0.s) +Chars 8451 - 8459 [simpobs.] 0.006 secs (0.005u,0.s) +Chars 8460 - 8476 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) +Chars 8483 - 8484 [*] 0. secs (0.u,0.s) +Chars 8485 - 8497 [constructor.] 0. secs (0.u,0.s) +Chars 8498 - 8512 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 8521 - 8532 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8533 - 8538 [step.] 0.001 secs (0.001u,0.s) +Chars 8539 - 8547 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 8556 - 8561 [evis.] 0. secs (0.u,0.s) +Chars 8569 - 8570 [*] 0. secs (0.u,0.s) +Chars 8571 - 8583 [constructor.] 0. secs (0.u,0.s) +Chars 8584 - 8598 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 8607 - 8618 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8619 - 8624 [step.] 0.001 secs (0.001u,0.s) +Chars 8625 - 8633 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 8642 - 8647 [evis.] 0. secs (0.u,0.s) +Chars 8653 - 8654 [+] 0. secs (0.u,0.s) +Chars 8655 - 8724 [(destruct~(observe~b);~destruc...] 0.053 secs (0.052u,0.s) +Chars 8731 - 8732 [*] 0. secs (0.u,0.s) +Chars 8733 - 8737 [(cbn).] 0. secs (0.u,0.s) +Chars 8738 - 8750 [constructor.] 0. secs (0.u,0.s) +Chars 8751 - 8793 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) +Chars 8802 - 8831 [(assert~(RetF~r~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 8840 - 8841 [{] 0. secs (0.u,0.s) +Chars 8842 - 8856 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 8857 - 8862 [auto.] 0. secs (0.u,0.s) +Chars 8863 - 8864 [}] 0. secs (0.u,0.s) +Chars 8873 - 8884 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 8885 - 8896 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8897 - 8911 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 8912 - 8917 [step.] 0.002 secs (0.002u,0.s) +Chars 8918 - 8923 [auto.] 0. secs (0.u,0.s) +Chars 8930 - 8931 [*] 0. secs (0.u,0.s) +Chars 8932 - 8936 [(cbn).] 0. secs (0.u,0.s) +Chars 8937 - 8949 [constructor.] 0. secs (0.u,0.s) +Chars 8950 - 8961 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8971 - 8994 [(enough~(t2~≈~Tau~t3)).] 0. secs (0.u,0.s) +Chars 9003 - 9004 [{] 0. secs (0.u,0.s) +Chars 9005 - 9028 [(rewrite~tau_eutt~in~H0).] 0.001 secs (0.001u,0.s) +Chars 9029 - 9034 [auto.] 0. secs (0.u,0.s) +Chars 9035 - 9036 [}] 0. secs (0.u,0.s) +Chars 9045 - 9050 [step.] 0.002 secs (0.002u,0.s) +Chars 9051 - 9056 [auto.] 0. secs (0.u,0.s) +Chars 9063 - 9064 [*] 0. secs (0.u,0.s) +Chars 9065 - 9081 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 9090 - 9092 [++] 0. secs (0.u,0.s) +Chars 9093 - 9105 [constructor.] 0. secs (0.u,0.s) +Chars 9117 - 9179 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) +Chars 9191 - 9238 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) +Chars 9250 - 9251 [{] 0. secs (0.u,0.s) +Chars 9252 - 9266 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 9267 - 9272 [auto.] 0. secs (0.u,0.s) +Chars 9273 - 9274 [}] 0. secs (0.u,0.s) +Chars 9286 - 9297 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 9298 - 9309 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9310 - 9316 [subst.] 0. secs (0.u,0.s) +Chars 9317 - 9322 [step.] 0.002 secs (0.002u,0.s) +Chars 9323 - 9328 [auto.] 0. secs (0.u,0.s) +Chars 9337 - 9339 [++] 0. secs (0.u,0.s) +Chars 9340 - 9352 [constructor.] 0. secs (0.u,0.s) +Chars 9364 - 9418 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) +Chars 9430 - 9482 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) +Chars 9494 - 9495 [{] 0. secs (0.u,0.s) +Chars 9496 - 9502 [subst.] 0. secs (0.u,0.s) +Chars 9503 - 9508 [auto.] 0. secs (0.u,0.s) +Chars 9509 - 9510 [}] 0. secs (0.u,0.s) +Chars 9522 - 9533 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 9534 - 9545 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9546 - 9552 [subst.] 0. secs (0.u,0.s) +Chars 9553 - 9558 [step.] 0.002 secs (0.001u,0.s) +Chars 9559 - 9564 [auto.] 0. secs (0.u,0.s) +Chars 9569 - 9570 [+] 0. secs (0.u,0.s) +Chars 9571 - 9640 [(destruct~(observe~b);~destruc...] 0.046 secs (0.045u,0.s) +Chars 9647 - 9648 [*] 0. secs (0.u,0.s) +Chars 9649 - 9653 [(cbn).] 0. secs (0.u,0.s) +Chars 9654 - 9666 [constructor.] 0. secs (0.u,0.s) +Chars 9667 - 9709 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) +Chars 9718 - 9747 [(assert~(RetF~r~=~observe~t2)).] 0. secs (0.u,0.s) +Chars 9756 - 9757 [{] 0. secs (0.u,0.s) +Chars 9758 - 9764 [subst.] 0. secs (0.u,0.s) +Chars 9765 - 9770 [auto.] 0. secs (0.u,0.s) +Chars 9771 - 9772 [}] 0. secs (0.u,0.s) +Chars 9781 - 9792 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 9793 - 9804 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9805 - 9819 [(rewrite~Heqt2).] 0. secs (0.u,0.s) +Chars 9820 - 9825 [step.] 0.001 secs (0.001u,0.s) +Chars 9826 - 9831 [auto.] 0. secs (0.u,0.s) +Chars 9838 - 9839 [*] 0. secs (0.u,0.s) +Chars 9840 - 9844 [(cbn).] 0. secs (0.u,0.s) +Chars 9845 - 9857 [constructor.] 0.001 secs (0.001u,0.s) +Chars 9858 - 9869 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9879 - 9902 [(enough~(Tau~t1~≈~t3)).] 0. secs (0.u,0.s) +Chars 9911 - 9912 [{] 0. secs (0.u,0.s) +Chars 9913 - 9936 [(rewrite~tau_eutt~in~H0).] 0.021 secs (0.02u,0.s) +Chars 9937 - 9942 [auto.] 0. secs (0.u,0.s) +Chars 9943 - 9944 [}] 0. secs (0.u,0.s) +Chars 9953 - 9958 [step.] 0.001 secs (0.001u,0.s) +Chars 9959 - 9964 [auto.] 0. secs (0.u,0.s) +Chars 9971 - 9972 [*] 0. secs (0.u,0.s) +Chars 9973 - 9989 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 9998 - 10000 [++] 0. secs (0.u,0.s) +Chars 10001 - 10013 [constructor.] 0. secs (0.u,0.s) +Chars 10026 - 10088 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) +Chars 10100 - 10147 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) +Chars 10159 - 10160 [{] 0. secs (0.u,0.s) +Chars 10161 - 10167 [subst.] 0. secs (0.u,0.s) +Chars 10168 - 10173 [auto.] 0. secs (0.u,0.s) +Chars 10174 - 10175 [}] 0. secs (0.u,0.s) +Chars 10187 - 10198 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 10199 - 10210 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10211 - 10217 [subst.] 0. secs (0.u,0.s) +Chars 10218 - 10223 [step.] 0.001 secs (0.001u,0.s) +Chars 10224 - 10229 [auto.] 0. secs (0.u,0.s) +Chars 10238 - 10240 [++] 0. secs (0.u,0.s) +Chars 10241 - 10253 [constructor.] 0. secs (0.u,0.s) +Chars 10266 - 10320 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) +Chars 10332 - 10384 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) +Chars 10396 - 10397 [{] 0. secs (0.u,0.s) +Chars 10398 - 10404 [subst.] 0. secs (0.u,0.s) +Chars 10405 - 10410 [auto.] 0. secs (0.u,0.s) +Chars 10411 - 10412 [}] 0. secs (0.u,0.s) +Chars 10424 - 10435 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 10436 - 10447 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10448 - 10454 [subst.] 0. secs (0.u,0.s) +Chars 10455 - 10460 [step.] 0.002 secs (0.002u,0.s) +Chars 10461 - 10466 [auto.] 0. secs (0.u,0.s) +Chars 10469 - 10470 [-] 0. secs (0.u,0.s) +Chars 10471 - 10481 [step~in~H.] 0. secs (0.u,0.s) +Chars 10482 - 10504 [dependent~induction~H.] 0.052 secs (0.052u,0.s) +Chars 10509 - 10510 [+] 0. secs (0.u,0.s) +Chars 10511 - 10519 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 10520 - 10532 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10537 - 10538 [+] 0. secs (0.u,0.s) +Chars 10539 - 10547 [simpobs.] 0.006 secs (0.005u,0.s) +Chars 10548 - 10552 [(cbn).] 0. secs (0.u,0.s) +Chars 10553 - 10565 [constructor.] 0. secs (0.u,0.s) +Chars 10572 - 10604 [(remember~(go~(VisF~e~k))~as~t0).] 0. secs (0.u,0.s) +Chars 10611 - 10642 [(assert~(VisF~e~k~=~observe~t0)).] 0. secs (0.u,0.s) +Chars 10649 - 10650 [{] 0. secs (0.u,0.s) +Chars 10651 - 10657 [subst.] 0. secs (0.u,0.s) +Chars 10658 - 10663 [auto.] 0. secs (0.u,0.s) +Chars 10664 - 10665 [}] 0. secs (0.u,0.s) +Chars 10672 - 10682 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 10683 - 10694 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10696 - 10701 [auto.] 0. secs (0.u,0.s) +Chars 10706 - 10707 [+] 0. secs (0.u,0.s) +Chars 10708 - 10716 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 10717 - 10733 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) +Chars 10740 - 10741 [*] 0. secs (0.u,0.s) +Chars 10742 - 10757 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 10758 - 10762 [(cbn).] 0. secs (0.u,0.s) +Chars 10763 - 10779 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 10788 - 10817 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 10826 - 10828 [++] 0. secs (0.u,0.s) +Chars 10829 - 10855 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 10856 - 10882 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 10894 - 10919 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 10920 - 10924 [(cbn).] 0. secs (0.u,0.s) +Chars 10925 - 10937 [constructor.] 0. secs (0.u,0.s) +Chars 10938 - 10945 [(intros).] 0. secs (0.u,0.s) +Chars 10957 - 10968 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10971 - 10987 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 10996 - 10998 [++] 0. secs (0.u,0.s) +Chars 10999 - 11011 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11018 - 11019 [*] 0. secs (0.u,0.s) +Chars 11020 - 11032 [constructor.] 0. secs (0.u,0.s) +Chars 11033 - 11047 [contradiction.] 0. secs (0.u,0.s) +Chars 11052 - 11053 [+] 0. secs (0.u,0.s) +Chars 11054 - 11062 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 11063 - 11095 [(destruct~(observe~b')~eqn:Heq).] 0.004 secs (0.004u,0.s) +Chars 11102 - 11103 [*] 0. secs (0.u,0.s) +Chars 11104 - 11119 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11120 - 11124 [(cbn).] 0. secs (0.u,0.s) +Chars 11125 - 11143 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 11144 - 11166 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 11167 - 11179 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11180 - 11185 [auto.] 0. secs (0.u,0.s) +Chars 11192 - 11193 [*] 0. secs (0.u,0.s) +Chars 11194 - 11198 [(cbn).] 0. secs (0.u,0.s) +Chars 11199 - 11211 [constructor.] 0. secs (0.u,0.s) +Chars 11220 - 11252 [(remember~(go~(VisF~e~k))~as~t2).] 0. secs (0.u,0.s) +Chars 11261 - 11292 [(assert~(VisF~e~k~=~observe~t2)).] 0. secs (0.u,0.s) +Chars 11301 - 11302 [{] 0. secs (0.u,0.s) +Chars 11303 - 11309 [subst.] 0. secs (0.u,0.s) +Chars 11310 - 11315 [auto.] 0. secs (0.u,0.s) +Chars 11316 - 11317 [}] 0. secs (0.u,0.s) +Chars 11326 - 11337 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 11338 - 11349 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 11358 - 11381 [(enough~(t1~≈~Tau~t0)).] 0. secs (0.u,0.s) +Chars 11390 - 11391 [{] 0. secs (0.u,0.s) +Chars 11392 - 11415 [(rewrite~tau_eutt~in~H1).] 0.001 secs (0.001u,0.s) +Chars 11416 - 11421 [auto.] 0. secs (0.u,0.s) +Chars 11422 - 11423 [}] 0. secs (0.u,0.s) +Chars 11432 - 11443 [(step;~auto).] 0.002 secs (0.002u,0.s) +Chars 11450 - 11451 [*] 0. secs (0.u,0.s) +Chars 11452 - 11456 [(cbn).] 0. secs (0.u,0.s) +Chars 11457 - 11476 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 11477 - 11492 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11493 - 11515 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 11524 - 11536 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11537 - 11542 [auto.] 0. secs (0.u,0.s) +Chars 11547 - 11548 [+] 0. secs (0.u,0.s) +Chars 11549 - 11557 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 11558 - 11589 [(destruct~(observe~b)~eqn:Heq).] 0.004 secs (0.004u,0.s) +Chars 11596 - 11597 [*] 0. secs (0.u,0.s) +Chars 11598 - 11613 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11614 - 11618 [(cbn).] 0. secs (0.u,0.s) +Chars 11619 - 11637 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 11638 - 11660 [(eapply~IHeqitF;~eauto).] 0.004 secs (0.004u,0.s) +Chars 11661 - 11673 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11674 - 11679 [auto.] 0. secs (0.u,0.s) +Chars 11686 - 11687 [*] 0. secs (0.u,0.s) +Chars 11688 - 11692 [(cbn).] 0. secs (0.u,0.s) +Chars 11693 - 11705 [constructor.] 0. secs (0.u,0.s) +Chars 11714 - 11746 [(remember~(go~(VisF~e~k))~as~t1).] 0. secs (0.u,0.s) +Chars 11755 - 11786 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 11795 - 11796 [{] 0. secs (0.u,0.s) +Chars 11797 - 11803 [subst.] 0. secs (0.u,0.s) +Chars 11804 - 11809 [auto.] 0. secs (0.u,0.s) +Chars 11810 - 11811 [}] 0. secs (0.u,0.s) +Chars 11820 - 11831 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 11832 - 11843 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 11852 - 11875 [(enough~(Tau~t0~≈~t2)).] 0. secs (0.u,0.s) +Chars 11884 - 11885 [{] 0. secs (0.u,0.s) +Chars 11886 - 11909 [(rewrite~tau_eutt~in~H1).] 0.022 secs (0.022u,0.s) +Chars 11910 - 11915 [auto.] 0. secs (0.u,0.s) +Chars 11916 - 11917 [}] 0. secs (0.u,0.s) +Chars 11926 - 11937 [(step;~auto).] 0.002 secs (0.002u,0.s) +Chars 11944 - 11945 [*] 0. secs (0.u,0.s) +Chars 11946 - 11950 [(cbn).] 0. secs (0.u,0.s) +Chars 11951 - 11970 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 11971 - 11986 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) +Chars 11987 - 12009 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12018 - 12030 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 12031 - 12036 [auto.] 0. secs (0.u,0.s) +Chars 12037 - 12041 [Qed.] 0.223 secs (0.219u,0.004s) +Chars 12045 - 12223 [Lemma~proper_peel_eutt_r~:~~~f...] 0. secs (0.u,0.s) +Chars 12224 - 12230 [Proof.] 0. secs (0.u,0.s) +Chars 12233 - 12246 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 12247 - 12265 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 12266 - 12273 [(intros).] 0. secs (0.u,0.s) +Chars 12276 - 12288 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 12289 - 12321 [(destruct~(observe~b)~eqn:Heqb).] 0.001 secs (0.001u,0.s) +Chars 12324 - 12325 [-] 0. secs (0.u,0.s) +Chars 12326 - 12336 [step~in~H.] 0. secs (0.u,0.s) +Chars 12337 - 12359 [dependent~induction~H.] 0.047 secs (0.046u,0.s) +Chars 12364 - 12365 [+] 0. secs (0.u,0.s) +Chars 12366 - 12374 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 12375 - 12387 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 12392 - 12393 [+] 0. secs (0.u,0.s) +Chars 12394 - 12402 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12403 - 12407 [(cbn).] 0. secs (0.u,0.s) +Chars 12408 - 12420 [constructor.] 0. secs (0.u,0.s) +Chars 12421 - 12437 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 12444 - 12455 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 12457 - 12462 [auto.] 0. secs (0.u,0.s) +Chars 12467 - 12468 [+] 0. secs (0.u,0.s) +Chars 12469 - 12477 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12478 - 12482 [(cbn).] 0. secs (0.u,0.s) +Chars 12483 - 12495 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 12500 - 12501 [+] 0. secs (0.u,0.s) +Chars 12502 - 12510 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 12511 - 12515 [(cbn).] 0. secs (0.u,0.s) +Chars 12516 - 12534 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 12535 - 12557 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 12562 - 12563 [+] 0. secs (0.u,0.s) +Chars 12564 - 12572 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12573 - 12577 [(cbn).] 0. secs (0.u,0.s) +Chars 12578 - 12596 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 12597 - 12619 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12622 - 12623 [-] 0. secs (0.u,0.s) +Chars 12624 - 12634 [step~in~H.] 0. secs (0.u,0.s) +Chars 12635 - 12657 [dependent~induction~H.] 0.049 secs (0.048u,0.s) +Chars 12662 - 12663 [+] 0. secs (0.u,0.s) +Chars 12664 - 12672 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12673 - 12677 [(cbn).] 0. secs (0.u,0.s) +Chars 12678 - 12690 [constructor.] 0. secs (0.u,0.s) +Chars 12691 - 12696 [auto.] 0. secs (0.u,0.s) +Chars 12701 - 12702 [+] 0. secs (0.u,0.s) +Chars 12703 - 12711 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 12712 - 12716 [(cbn).] 0. secs (0.u,0.s) +Chars 12717 - 12722 [etau.] 0.001 secs (0.001u,0.s) +Chars 12728 - 12729 [+] 0. secs (0.u,0.s) +Chars 12730 - 12738 [simpobs.] 0.009 secs (0.008u,0.s) +Chars 12739 - 12743 [(cbn).] 0. secs (0.u,0.s) +Chars 12744 - 12756 [constructor.] 0. secs (0.u,0.s) +Chars 12763 - 12777 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 12780 - 12791 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 12798 - 12803 [step.] 0.001 secs (0.001u,0.s) +Chars 12804 - 12812 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12820 - 12832 [constructor.] 0. secs (0.u,0.s) +Chars 12833 - 12838 [auto.] 0. secs (0.u,0.s) +Chars 12843 - 12844 [+] 0. secs (0.u,0.s) +Chars 12845 - 12853 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12854 - 12888 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 12895 - 12896 [*] 0. secs (0.u,0.s) +Chars 12897 - 12901 [(cbn).] 0. secs (0.u,0.s) +Chars 12903 - 12921 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 12922 - 12936 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 12945 - 12967 [dependent~induction~H.] 0.057 secs (0.056u,0.s) +Chars 12976 - 12978 [++] 0. secs (0.u,0.s) +Chars 12979 - 12987 [simpobs.] 0.006 secs (0.005u,0.s) +Chars 12988 - 13046 [(destruct~(observe~t0);~cbn;~t...] 0.001 secs (0.001u,0.s) +Chars 13058 - 13093 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) +Chars 13102 - 13104 [++] 0. secs (0.u,0.s) +Chars 13105 - 13113 [simpobs.] 0.011 secs (0.011u,0.s) +Chars 13114 - 13118 [(cbn).] 0. secs (0.u,0.s) +Chars 13119 - 13158 [(destruct~(observe~t2)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 13170 - 13172 [**] 0. secs (0.u,0.s) +Chars 13173 - 13192 [(constructor;~eauto).] 0.006 secs (0.006u,0.s) +Chars 13193 - 13210 [(rewrite~<-~Heqt2).] 0. secs (0.u,0.s) +Chars 13212 - 13234 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13246 - 13248 [**] 0. secs (0.u,0.s) +Chars 13249 - 13267 [(constructor;~auto).] 0.002 secs (0.001u,0.s) +Chars 13268 - 13290 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13302 - 13304 [**] 0. secs (0.u,0.s) +Chars 13305 - 13403 [(destruct~e;~cbn;~~~try~(const...] 0.012 secs (0.012u,0.s) +Chars 13410 - 13411 [*] 0. secs (0.u,0.s) +Chars 13412 - 13416 [(cbn).] 0. secs (0.u,0.s) +Chars 13417 - 13429 [constructor.] 0. secs (0.u,0.s) +Chars 13430 - 13448 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 13457 - 13480 [(enough~(t1~≈~Tau~t2)).] 0. secs (0.u,0.s) +Chars 13489 - 13490 [{] 0. secs (0.u,0.s) +Chars 13491 - 13514 [(rewrite~tau_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 13515 - 13520 [auto.] 0. secs (0.u,0.s) +Chars 13521 - 13522 [}] 0. secs (0.u,0.s) +Chars 13531 - 13536 [step.] 0.001 secs (0.001u,0.s) +Chars 13537 - 13542 [auto.] 0. secs (0.u,0.s) +Chars 13549 - 13550 [*] 0. secs (0.u,0.s) +Chars 13551 - 13555 [(cbn).] 0. secs (0.u,0.s) +Chars 13556 - 13568 [constructor.] 0. secs (0.u,0.s) +Chars 13569 - 13586 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) +Chars 13587 - 13598 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 13608 - 13613 [step.] 0.001 secs (0.001u,0.s) +Chars 13614 - 13628 [(rewrite~Heqt').] 0. secs (0.u,0.s) +Chars 13629 - 13634 [auto.] 0. secs (0.u,0.s) +Chars 13639 - 13640 [+] 0. secs (0.u,0.s) +Chars 13641 - 13649 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13650 - 13671 [(destruct~(observe~t)).] 0.004 secs (0.004u,0.s) +Chars 13678 - 13679 [*] 0. secs (0.u,0.s) +Chars 13680 - 13684 [(cbn).] 0. secs (0.u,0.s) +Chars 13685 - 13703 [(constructor;~auto).] 0.002 secs (0.001u,0.s) +Chars 13704 - 13718 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 13727 - 13749 [dependent~induction~H.] 0.038 secs (0.037u,0.s) +Chars 13758 - 13760 [++] 0. secs (0.u,0.s) +Chars 13761 - 13769 [simpobs.] 0.003 secs (0.002u,0.s) +Chars 13770 - 13834 [(destruct~(observe~t0);~try~de...] 0.002 secs (0.002u,0.s) +Chars 13843 - 13845 [++] 0. secs (0.u,0.s) +Chars 13846 - 13854 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 13855 - 13894 [(destruct~(observe~t1)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 13906 - 13908 [**] 0. secs (0.u,0.s) +Chars 13909 - 13927 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 13928 - 13945 [(rewrite~<-~Heqt1).] 0. secs (0.u,0.s) +Chars 13946 - 13968 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 13980 - 13982 [**] 0. secs (0.u,0.s) +Chars 13983 - 14001 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 14002 - 14024 [(eapply~IHeqitF;~eauto).] 0.009 secs (0.009u,0.s) +Chars 14036 - 14038 [**] 0. secs (0.u,0.s) +Chars 14039 - 14121 [(destruct~e;~cbn;~~~try~(const...] 0.011 secs (0.011u,0.s) +Chars 14128 - 14129 [*] 0. secs (0.u,0.s) +Chars 14130 - 14134 [(cbn).] 0. secs (0.u,0.s) +Chars 14135 - 14147 [constructor.] 0. secs (0.u,0.s) +Chars 14148 - 14166 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 14175 - 14200 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 14201 - 14206 [step.] 0.001 secs (0.001u,0.s) +Chars 14207 - 14212 [auto.] 0. secs (0.u,0.s) +Chars 14219 - 14220 [*] 0. secs (0.u,0.s) +Chars 14221 - 14225 [(cbn).] 0. secs (0.u,0.s) +Chars 14226 - 14238 [constructor.] 0. secs (0.u,0.s) +Chars 14239 - 14267 [(remember~(Vis~e~k)~as~t1).] 0.001 secs (0.001u,0.s) +Chars 14276 - 14307 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 14316 - 14317 [{] 0. secs (0.u,0.s) +Chars 14318 - 14324 [subst.] 0. secs (0.u,0.s) +Chars 14325 - 14330 [auto.] 0. secs (0.u,0.s) +Chars 14331 - 14332 [}] 0. secs (0.u,0.s) +Chars 14341 - 14352 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 14353 - 14364 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 14365 - 14371 [subst.] 0. secs (0.u,0.s) +Chars 14372 - 14377 [step.] 0.001 secs (0.001u,0.s) +Chars 14378 - 14383 [auto.] 0. secs (0.u,0.s) +Chars 14386 - 14387 [-] 0. secs (0.u,0.s) +Chars 14388 - 14398 [step~in~H.] 0. secs (0.u,0.s) +Chars 14399 - 14421 [dependent~induction~H.] 0.045 secs (0.044u,0.s) +Chars 14426 - 14427 [+] 0. secs (0.u,0.s) +Chars 14428 - 14436 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 14437 - 14472 [(destruct~e;~cbn;~constructor;...] 0.004 secs (0.004u,0.s) +Chars 14477 - 14478 [+] 0. secs (0.u,0.s) +Chars 14479 - 14487 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 14488 - 14562 [(destruct~e;~cbn;~constructor;...] 0.003 secs (0.003u,0.s) +Chars 14567 - 14568 [+] 0. secs (0.u,0.s) +Chars 14569 - 14577 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 14578 - 14595 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14602 - 14603 [*] 0. secs (0.u,0.s) +Chars 14604 - 14619 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 14620 - 14624 [(cbn).] 0. secs (0.u,0.s) +Chars 14625 - 14641 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 14650 - 14679 [(destruct~(classicT~(A~=~u))).] 0. secs (0.u,0.s) +Chars 14688 - 14690 [++] 0. secs (0.u,0.s) +Chars 14691 - 14717 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 14718 - 14745 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 14757 - 14782 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 14783 - 14787 [(cbn).] 0. secs (0.u,0.s) +Chars 14788 - 14800 [constructor.] 0. secs (0.u,0.s) +Chars 14801 - 14808 [(intros).] 0. secs (0.u,0.s) +Chars 14820 - 14831 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 14834 - 14850 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 14859 - 14861 [++] 0. secs (0.u,0.s) +Chars 14862 - 14866 [(cbn).] 0. secs (0.u,0.s) +Chars 14867 - 14879 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 14887 - 14888 [*] 0. secs (0.u,0.s) +Chars 14889 - 14901 [constructor.] 0. secs (0.u,0.s) +Chars 14902 - 14916 [contradiction.] 0. secs (0.u,0.s) +Chars 14921 - 14922 [+] 0. secs (0.u,0.s) +Chars 14923 - 14931 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 14932 - 14971 [(destruct~(observe~t');~destru...] 0.008 secs (0.008u,0.s) +Chars 14978 - 14979 [*] 0. secs (0.u,0.s) +Chars 14980 - 14998 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 14999 - 15013 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15014 - 15036 [dependent~induction~H.] 0.041 secs (0.041u,0.s) +Chars 15045 - 15047 [++] 0. secs (0.u,0.s) +Chars 15048 - 15056 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15057 - 15061 [(cbn).] 0. secs (0.u,0.s) +Chars 15062 - 15080 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15089 - 15091 [++] 0. secs (0.u,0.s) +Chars 15092 - 15100 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 15101 - 15105 [(cbn).] 0. secs (0.u,0.s) +Chars 15106 - 15125 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 15132 - 15133 [*] 0. secs (0.u,0.s) +Chars 15134 - 15152 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15153 - 15167 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15168 - 15190 [dependent~induction~H.] 0.043 secs (0.042u,0.s) +Chars 15199 - 15201 [++] 0. secs (0.u,0.s) +Chars 15202 - 15210 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15211 - 15215 [(cbn).] 0. secs (0.u,0.s) +Chars 15216 - 15234 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15243 - 15245 [++] 0. secs (0.u,0.s) +Chars 15246 - 15254 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 15255 - 15259 [(cbn).] 0. secs (0.u,0.s) +Chars 15260 - 15279 [(constructor;~eauto).] 0.005 secs (0.005u,0.s) +Chars 15286 - 15287 [*] 0. secs (0.u,0.s) +Chars 15288 - 15300 [constructor.] 0. secs (0.u,0.s) +Chars 15301 - 15317 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 15318 - 15329 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15339 - 15371 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) +Chars 15372 - 15377 [step.] 0.001 secs (0.001u,0.s) +Chars 15378 - 15383 [auto.] 0. secs (0.u,0.s) +Chars 15390 - 15391 [*] 0. secs (0.u,0.s) +Chars 15392 - 15408 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 15409 - 15421 [constructor.] 0. secs (0.u,0.s) +Chars 15422 - 15433 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15443 - 15475 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) +Chars 15476 - 15481 [step.] 0.001 secs (0.001u,0.s) +Chars 15482 - 15487 [auto.] 0. secs (0.u,0.s) +Chars 15494 - 15495 [*] 0. secs (0.u,0.s) +Chars 15496 - 15514 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15515 - 15529 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15538 - 15560 [dependent~induction~H.] 0.053 secs (0.052u,0.s) +Chars 15569 - 15571 [++] 0. secs (0.u,0.s) +Chars 15572 - 15580 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15581 - 15596 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 15597 - 15601 [(cbn).] 0. secs (0.u,0.s) +Chars 15613 - 15629 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 15630 - 15660 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) +Chars 15672 - 15674 [**] 0. secs (0.u,0.s) +Chars 15675 - 15701 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 15716 - 15742 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 15743 - 15768 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 15783 - 15787 [(cbn).] 0. secs (0.u,0.s) +Chars 15788 - 15800 [constructor.] 0. secs (0.u,0.s) +Chars 15801 - 15808 [(intros).] 0. secs (0.u,0.s) +Chars 15810 - 15839 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 15851 - 15853 [**] 0. secs (0.u,0.s) +Chars 15854 - 15858 [(cbn).] 0. secs (0.u,0.s) +Chars 15859 - 15871 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 15881 - 15883 [++] 0. secs (0.u,0.s) +Chars 15884 - 15892 [simpobs.] 0.01 secs (0.01u,0.s) +Chars 15893 - 15897 [(cbn).] 0. secs (0.u,0.s) +Chars 15898 - 15939 [(constructor;~auto;~eapply~IHe...] 0.005 secs (0.005u,0.s) +Chars 15946 - 15947 [*] 0. secs (0.u,0.s) +Chars 15948 - 15966 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15967 - 15981 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 15990 - 16012 [dependent~induction~H.] 0.05 secs (0.049u,0.s) +Chars 16021 - 16023 [++] 0. secs (0.u,0.s) +Chars 16024 - 16032 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 16033 - 16037 [(cbn).] 0. secs (0.u,0.s) +Chars 16038 - 16050 [constructor.] 0. secs (0.u,0.s) +Chars 16051 - 16065 [contradiction.] 0. secs (0.u,0.s) +Chars 16074 - 16076 [++] 0. secs (0.u,0.s) +Chars 16077 - 16085 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 16086 - 16090 [(cbn).] 0. secs (0.u,0.s) +Chars 16091 - 16132 [(constructor;~auto;~eapply~IHe...] 0.008 secs (0.008u,0.s) +Chars 16137 - 16138 [+] 0. secs (0.u,0.s) +Chars 16139 - 16147 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 16148 - 16152 [(cbn).] 0. secs (0.u,0.s) +Chars 16153 - 16202 [(destruct~(observe~t)~eqn:Heqt...] 0.007 secs (0.007u,0.s) +Chars 16209 - 16210 [*] 0. secs (0.u,0.s) +Chars 16211 - 16229 [(constructor;~auto).] 0.002 secs (0.001u,0.s) +Chars 16230 - 16244 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16245 - 16267 [dependent~induction~H.] 0.054 secs (0.053u,0.s) +Chars 16276 - 16278 [++] 0. secs (0.u,0.s) +Chars 16279 - 16287 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 16288 - 16292 [(cbn).] 0. secs (0.u,0.s) +Chars 16293 - 16311 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 16320 - 16322 [++] 0. secs (0.u,0.s) +Chars 16323 - 16331 [simpobs.] 0.015 secs (0.015u,0.s) +Chars 16332 - 16336 [(cbn).] 0. secs (0.u,0.s) +Chars 16337 - 16356 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 16363 - 16364 [*] 0. secs (0.u,0.s) +Chars 16365 - 16383 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 16384 - 16398 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16399 - 16421 [dependent~induction~H.] 0.053 secs (0.052u,0.s) +Chars 16430 - 16432 [++] 0. secs (0.u,0.s) +Chars 16433 - 16441 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 16442 - 16446 [(cbn).] 0. secs (0.u,0.s) +Chars 16447 - 16465 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 16474 - 16476 [++] 0. secs (0.u,0.s) +Chars 16477 - 16485 [simpobs.] 0.011 secs (0.011u,0.s) +Chars 16486 - 16490 [(cbn).] 0. secs (0.u,0.s) +Chars 16491 - 16510 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 16517 - 16518 [*] 0. secs (0.u,0.s) +Chars 16519 - 16531 [constructor.] 0. secs (0.u,0.s) +Chars 16532 - 16548 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 16549 - 16567 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 16568 - 16588 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 16597 - 16602 [step.] 0.001 secs (0.001u,0.s) +Chars 16603 - 16608 [auto.] 0. secs (0.u,0.s) +Chars 16615 - 16616 [*] 0. secs (0.u,0.s) +Chars 16617 - 16629 [constructor.] 0. secs (0.u,0.s) +Chars 16630 - 16646 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 16647 - 16665 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 16666 - 16686 [(rewrite~<-~tau_eutt).] 0.004 secs (0.004u,0.s) +Chars 16695 - 16700 [step.] 0.001 secs (0.001u,0.s) +Chars 16701 - 16706 [auto.] 0. secs (0.u,0.s) +Chars 16713 - 16714 [*] 0. secs (0.u,0.s) +Chars 16715 - 16733 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 16734 - 16748 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 16749 - 16771 [dependent~induction~H.] 0.062 secs (0.061u,0.s) +Chars 16780 - 16782 [++] 0. secs (0.u,0.s) +Chars 16783 - 16791 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 16792 - 16807 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 16808 - 16812 [(cbn).] 0. secs (0.u,0.s) +Chars 16824 - 16840 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 16852 - 16882 [(destruct~(classicT~(A~=~X0))).] 0.001 secs (0.u,0.s) +Chars 16894 - 16896 [**] 0. secs (0.u,0.s) +Chars 16897 - 16923 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 16938 - 16964 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.001u,0.s) +Chars 16965 - 16990 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 17005 - 17009 [(cbn).] 0. secs (0.u,0.s) +Chars 17010 - 17022 [constructor.] 0. secs (0.u,0.s) +Chars 17023 - 17030 [(intros).] 0. secs (0.u,0.s) +Chars 17032 - 17054 [(eapply~CIH;~apply~REL).] 0. secs (0.u,0.s) +Chars 17066 - 17068 [**] 0. secs (0.u,0.s) +Chars 17069 - 17073 [(cbn).] 0. secs (0.u,0.s) +Chars 17074 - 17086 [reflexivity.] 0.003 secs (0.003u,0.s) +Chars 17096 - 17098 [++] 0. secs (0.u,0.s) +Chars 17099 - 17107 [simpobs.] 0.013 secs (0.013u,0.s) +Chars 17108 - 17112 [(cbn).] 0. secs (0.u,0.s) +Chars 17113 - 17132 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 17139 - 17140 [*] 0. secs (0.u,0.s) +Chars 17141 - 17159 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 17160 - 17174 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 17175 - 17197 [dependent~induction~H.] 0.071 secs (0.069u,0.001s) +Chars 17206 - 17208 [++] 0. secs (0.u,0.s) +Chars 17209 - 17217 [simpobs.] 0.005 secs (0.004u,0.s) +Chars 17218 - 17222 [(cbn).] 0. secs (0.u,0.s) +Chars 17223 - 17235 [constructor.] 0. secs (0.u,0.s) +Chars 17236 - 17250 [contradiction.] 0. secs (0.u,0.s) +Chars 17259 - 17261 [++] 0. secs (0.u,0.s) +Chars 17262 - 17270 [simpobs.] 0.015 secs (0.015u,0.s) +Chars 17271 - 17275 [(cbn).] 0. secs (0.u,0.s) +Chars 17276 - 17295 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 17296 - 17300 [Qed.] 0.561 secs (0.548u,0.011s) +Chars 17302 - 17403 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 17404 - 17410 [Proof.] 0. secs (0.u,0.s) +Chars 17413 - 17432 [(intros~?~?~?~?~?~?).] 0. secs (0.u,0.s) +Chars 17433 - 17482 [(rewrite~proper_peel_eutt_l~wi...] 0.01 secs (0.009u,0.s) +Chars 17485 - 17518 [(eapply~proper_peel_eutt_r;~ea...] 0. secs (0.u,0.s) +Chars 17519 - 17523 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17525 - 17731 [Lemma~not_peel_vis_ret~:~~~for...] 0. secs (0.u,0.s) +Chars 17732 - 17738 [Proof.] 0. secs (0.u,0.s) +Chars 17741 - 17771 [(intros~R~E~S~X~e~k~r~t1~Heutt).] 0. secs (0.u,0.s) +Chars 17774 - 17788 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 17789 - 17806 [(unfold~peel~in~*).] 0. secs (0.u,0.s) +Chars 17807 - 17816 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 17819 - 17846 [dependent~induction~Heutt.] 0.031 secs (0.031u,0.s) +Chars 17849 - 17850 [-] 0. secs (0.u,0.s) +Chars 17851 - 17901 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) +Chars 17906 - 17946 [(destruct~e0;~cbn~in~*;~try~di...] 0.001 secs (0.001u,0.s) +Chars 17951 - 17971 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 17972 - 17981 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 17982 - 18003 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 18008 - 18054 [(destruct~(classicT~(A~=~X));~...] 0. secs (0.u,0.s) +Chars 18059 - 18090 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 18091 - 18118 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 18123 - 18148 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 18149 - 18162 [discriminate.] 0. secs (0.u,0.s) +Chars 18165 - 18166 [-] 0. secs (0.u,0.s) +Chars 18167 - 18217 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) +Chars 18222 - 18223 [+] 0. secs (0.u,0.s) +Chars 18224 - 18245 [injection~x~as~Hspin.] 0. secs (0.u,0.s) +Chars 18246 - 18269 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) +Chars 18276 - 18301 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 18302 - 18307 [step.] 0.007 secs (0.007u,0.s) +Chars 18308 - 18314 [eauto.] 0. secs (0.u,0.s) +Chars 18319 - 18320 [+] 0. secs (0.u,0.s) +Chars 18321 - 18340 [injection~x~as~Ht0.] 0. secs (0.u,0.s) +Chars 18341 - 18363 [(eapply~IHHeutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 18364 - 18376 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 18377 - 18389 [reflexivity.] 0. secs (0.u,0.s) +Chars 18394 - 18395 [+] 0. secs (0.u,0.s) +Chars 18396 - 18436 [(destruct~e0;~cbn~in~*;~try~di...] 0.001 secs (0.001u,0.s) +Chars 18443 - 18463 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 18464 - 18473 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 18474 - 18495 [(unfold~peel_vis~in~*).] 0. secs (0.u,0.s) +Chars 18502 - 18531 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 18538 - 18539 [*] 0. secs (0.u,0.s) +Chars 18540 - 18571 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 18572 - 18599 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 18608 - 18633 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 18634 - 18647 [discriminate.] 0. secs (0.u,0.s) +Chars 18654 - 18655 [*] 0. secs (0.u,0.s) +Chars 18656 - 18665 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 18666 - 18687 [injection~x~as~Hspin.] 0. secs (0.u,0.s) +Chars 18688 - 18711 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) +Chars 18720 - 18745 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 18746 - 18751 [step.] 0.004 secs (0.004u,0.s) +Chars 18752 - 18758 [eauto.] 0. secs (0.u,0.s) +Chars 18759 - 18763 [Qed.] 0.025 secs (0.025u,0.s) +Chars 18765 - 18919 [Lemma~peel_ret_inv~:~~~forall~...] 0. secs (0.u,0.s) +Chars 18920 - 18926 [Proof.] 0. secs (0.u,0.s) +Chars 18929 - 18950 [(intros~R~r~E~S~b~t~H).] 0. secs (0.u,0.s) +Chars 18951 - 18968 [(unfold~peel~in~H).] 0. secs (0.u,0.s) +Chars 18971 - 18981 [step~in~H.] 0. secs (0.u,0.s) +Chars 18982 - 18991 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 18992 - 18997 [step.] 0.001 secs (0.001u,0.s) +Chars 18998 - 19002 [(cbn).] 0. secs (0.u,0.s) +Chars 19005 - 19027 [dependent~induction~H.] 0.031 secs (0.031u,0.s) +Chars 19030 - 19031 [-] 0. secs (0.u,0.s) +Chars 19032 - 19049 [(unfold~peel~in~x).] 0. secs (0.u,0.s) +Chars 19050 - 19165 [(destruct~(observe~b);~destruc...] 0.018 secs (0.018u,0.s) +Chars 19170 - 19171 [+] 0. secs (0.u,0.s) +Chars 19172 - 19233 [(destruct~e;~dependent~destruc...] 0.005 secs (0.005u,0.s) +Chars 19238 - 19239 [+] 0. secs (0.u,0.s) +Chars 19240 - 19276 [(destruct~e;~dependent~destruc...] 0.004 secs (0.003u,0.s) +Chars 19281 - 19282 [+] 0. secs (0.u,0.s) +Chars 19283 - 19319 [(destruct~e;~dependent~destruc...] 0.003 secs (0.003u,0.s) +Chars 19326 - 19346 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 19347 - 19356 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 19357 - 19378 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 19385 - 19425 [(destruct~(classicT~(A~=~X0))~...] 0. secs (0.u,0.s) +Chars 19432 - 19433 [*] 0. secs (0.u,0.s) +Chars 19434 - 19465 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 19466 - 19472 [subst.] 0. secs (0.u,0.s) +Chars 19473 - 19505 [(remember~(eq_sym~eq_refl)~as~...] 0. secs (0.u,0.s) +Chars 19514 - 19539 [dependent~destruction~He.] 0.004 secs (0.004u,0.s) +Chars 19540 - 19550 [(cbn~in~x0).] 0. secs (0.u,0.s) +Chars 19551 - 19564 [discriminate.] 0. secs (0.u,0.s) +Chars 19571 - 19572 [*] 0. secs (0.u,0.s) +Chars 19573 - 19586 [discriminate.] 0. secs (0.u,0.s) +Chars 19589 - 19590 [-] 0. secs (0.u,0.s) +Chars 19591 - 19669 [(destruct~(observe~b);~destruc...] 0.019 secs (0.019u,0.s) +Chars 19674 - 19675 [+] 0. secs (0.u,0.s) +Chars 19676 - 19694 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 19695 - 19736 [(eapply~IHeqitF~with~(b~:=~Ret...] 0.001 secs (0.001u,0.s) +Chars 19741 - 19742 [+] 0. secs (0.u,0.s) +Chars 19743 - 19751 [exfalso.] 0. secs (0.u,0.s) +Chars 19752 - 19777 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 19778 - 19783 [step.] 0.004 secs (0.004u,0.s) +Chars 19784 - 19790 [eauto.] 0. secs (0.u,0.s) +Chars 19795 - 19796 [+] 0. secs (0.u,0.s) +Chars 19797 - 19815 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 19816 - 19838 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 19843 - 19844 [+] 0. secs (0.u,0.s) +Chars 19845 - 19853 [exfalso.] 0. secs (0.u,0.s) +Chars 19854 - 19876 [(destruct~(observe~t0)).] 0.001 secs (0.001u,0.s) +Chars 19883 - 19884 [*] 0. secs (0.u,0.s) +Chars 19885 - 19894 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 19895 - 19920 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 19929 - 19936 [(inv~H).] 0.011 secs (0.011u,0.s) +Chars 19937 - 19942 [step.] 0.004 secs (0.004u,0.s) +Chars 19943 - 19949 [eauto.] 0. secs (0.u,0.s) +Chars 19956 - 19957 [*] 0. secs (0.u,0.s) +Chars 19958 - 19967 [(cbn~in~H).] 0.001 secs (0.001u,0.s) +Chars 19968 - 19974 [(inv~H).] 0.008 secs (0.008u,0.s) +Chars 19975 - 19999 [(eapply~not_peel_vis_ret).] 0. secs (0.u,0.s) +Chars 20008 - 20013 [step.] 0.004 secs (0.004u,0.s) +Chars 20014 - 20020 [eauto.] 0. secs (0.u,0.s) +Chars 20027 - 20028 [*] 0. secs (0.u,0.s) +Chars 20029 - 20041 [(destruct~e0).] 0. secs (0.u,0.s) +Chars 20050 - 20052 [++] 0. secs (0.u,0.s) +Chars 20053 - 20067 [clear~IHeqitF.] 0. secs (0.u,0.s) +Chars 20068 - 20088 [(unfold~observe~in~H).] 0. secs (0.u,0.s) +Chars 20089 - 20098 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 20099 - 20120 [(unfold~peel_vis~in~H).] 0. secs (0.u,0.s) +Chars 20132 - 20161 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 20173 - 20175 [**] 0. secs (0.u,0.s) +Chars 20176 - 20207 [(unfold~eq_rect_r,~eq_rect~in~H).] 0. secs (0.u,0.s) +Chars 20208 - 20235 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 20250 - 20275 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 20276 - 20282 [(inv~H).] 0.003 secs (0.003u,0.s) +Chars 20294 - 20296 [**] 0. secs (0.u,0.s) +Chars 20297 - 20322 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) +Chars 20323 - 20328 [step.] 0.004 secs (0.004u,0.s) +Chars 20329 - 20335 [eauto.] 0. secs (0.u,0.s) +Chars 20344 - 20346 [++] 0. secs (0.u,0.s) +Chars 20347 - 20356 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 20357 - 20363 [(inv~H).] 0.003 secs (0.003u,0.s) +Chars 20368 - 20369 [+] 0. secs (0.u,0.s) +Chars 20370 - 20409 [(destruct~e;~cbn~in~x;~try~dis...] 0.001 secs (0.001u,0.s) +Chars 20414 - 20415 [+] 0. secs (0.u,0.s) +Chars 20416 - 20434 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 20435 - 20477 [(eapply~IHeqitF~with~(b~:=~Vis...] 0.001 secs (0.001u,0.s) +Chars 20478 - 20482 [(cbn).] 0. secs (0.u,0.s) +Chars 20489 - 20541 [(destruct~e;~cbn~in~x;~depende...] 0.006 secs (0.006u,0.s) +Chars 20546 - 20547 [+] 0. secs (0.u,0.s) +Chars 20548 - 20587 [(destruct~e;~cbn~in~x;~try~dis...] 0.001 secs (0.u,0.s) +Chars 20594 - 20614 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 20615 - 20624 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 20625 - 20646 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 20653 - 20683 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) +Chars 20690 - 20691 [*] 0. secs (0.u,0.s) +Chars 20692 - 20723 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 20724 - 20750 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 20759 - 20784 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 20785 - 20798 [discriminate.] 0. secs (0.u,0.s) +Chars 20805 - 20806 [*] 0. secs (0.u,0.s) +Chars 20807 - 20828 [injection~x~as~Hspin.] 0. secs (0.u,0.s) +Chars 20829 - 20842 [(cbn~in~Hspin).] 0. secs (0.u,0.s) +Chars 20843 - 20851 [exfalso.] 0. secs (0.u,0.s) +Chars 20860 - 20882 [(assert~(t1~≈~Ret~r)).] 0. secs (0.u,0.s) +Chars 20891 - 20892 [{] 0. secs (0.u,0.s) +Chars 20893 - 20898 [step.] 0.001 secs (0.001u,0.s) +Chars 20899 - 20904 [auto.] 0. secs (0.u,0.s) +Chars 20905 - 20906 [}] 0. secs (0.u,0.s) +Chars 20915 - 20935 [(rewrite~Hspin~in~H0).] 0. secs (0.u,0.s) +Chars 20936 - 20968 [(eapply~not_spin_eutt_ret;~eau...] 0. secs (0.u,0.s) +Chars 20969 - 20973 [Qed.] 0.072 secs (0.072u,0.s) +Chars 21751 - 22410 [Lemma~eqitF_observe_peel_cont_...] 0.002 secs (0.002u,0.s) +Chars 22411 - 22417 [Proof.] 0. secs (0.u,0.s) +Chars 22420 - 22464 [(intros~E~R~S~A~ev~ans~k1~k2~R...] 0. secs (0.u,0.s) +Chars 22467 - 22482 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 22483 - 22487 [(cbn).] 0. secs (0.u,0.s) +Chars 22488 - 22509 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) +Chars 22512 - 22541 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 22544 - 22545 [-] 0. secs (0.u,0.s) +Chars 22546 - 22572 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 22573 - 22600 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 22605 - 22630 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 22631 - 22635 [(cbn).] 0. secs (0.u,0.s) +Chars 22636 - 22648 [constructor.] 0. secs (0.u,0.s) +Chars 22653 - 22660 [(intros).] 0. secs (0.u,0.s) +Chars 22662 - 22673 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 22674 - 22690 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 22693 - 22694 [-] 0. secs (0.u,0.s) +Chars 22695 - 22699 [(cbn).] 0. secs (0.u,0.s) +Chars 22700 - 22705 [taus.] 0. secs (0.u,0.s) +Chars 22706 - 22715 [Admitted.] 0. secs (0.u,0.s) +Chars 22719 - 22930 [Lemma~proper_peel_cont_eutt_l~...] 0. secs (0.u,0.s) +Chars 22931 - 22937 [Proof.] 0. secs (0.u,0.s) +Chars 22940 - 22953 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 22954 - 22971 [(unfold~peel_cont).] 0. secs (0.u,0.s) +Chars 22972 - 22988 [(intros~b~b'~t~_).] 0. secs (0.u,0.s) +Chars 22991 - 23005 [revert~b~b'~t.] 0. secs (0.u,0.s) +Chars 23006 - 23025 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 23026 - 23033 [(intros).] 0. secs (0.u,0.s) +Chars 23034 - 23044 [step~in~H.] 0. secs (0.u,0.s) +Chars 23048 - 23080 [(destruct~(observe~t)~eqn:Heqt).] 0.001 secs (0.001u,0.s) +Chars 23102 - 23103 [-] 0. secs (0.u,0.s) +Chars 23104 - 23253 [(destruct~(observe~b')~eqn:Hb;...] 0.163 secs (0.162u,0.001s) +Chars 23259 - 23260 [+] 0. secs (0.u,0.s) +Chars 23261 - 23266 [taus.] 0. secs (0.u,0.s) +Chars 23267 - 23287 [now~do~2~Utils.step.] 0.009 secs (0.009u,0.s) +Chars 23296 - 23297 [+] 0. secs (0.u,0.s) +Chars 23298 - 23311 [ddestruction.] 0.006 secs (0.006u,0.s) +Chars 23312 - 23324 [constructor.] 0. secs (0.u,0.s) +Chars 23325 - 23332 [(intros).] 0. secs (0.u,0.s) +Chars 23333 - 23339 [(inv~H).] 0.028 secs (0.028u,0.s) +Chars 23347 - 23360 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 23361 - 23377 [(do~2~Utils.step).] 0.01 secs (0.01u,0.s) +Chars 23378 - 23389 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 23453 - 23454 [-] 0. secs (0.u,0.s) +Chars 23455 - 23496 [(dependent~induction~H;~try~cl...] 0.056 secs (0.055u,0.s) +Chars 23501 - 23502 [+] 0. secs (0.u,0.s) +Chars 23503 - 23511 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23512 - 23516 [(cbn).] 0. secs (0.u,0.s) +Chars 23517 - 23522 [etau.] 0.001 secs (0.001u,0.s) +Chars 23531 - 23532 [+] 0. secs (0.u,0.s) +Chars 23533 - 23541 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23542 - 23546 [(cbn).] 0. secs (0.u,0.s) +Chars 23547 - 23552 [etau.] 0.001 secs (0.001u,0.s) +Chars 23558 - 23559 [+] 0. secs (0.u,0.s) +Chars 23560 - 23568 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 23569 - 23598 [(destruct~e;~cbn;~constructor).] 0.002 secs (0.002u,0.s) +Chars 23606 - 23607 [*] 0. secs (0.u,0.s) +Chars 23608 - 23616 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 23617 - 23631 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 23632 - 23650 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 23651 - 23656 [step.] 0.001 secs (0.001u,0.s) +Chars 23665 - 23673 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23674 - 23686 [constructor.] 0. secs (0.u,0.s) +Chars 23687 - 23692 [auto.] 0. secs (0.u,0.s) +Chars 23699 - 23700 [*] 0. secs (0.u,0.s) +Chars 23701 - 23715 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 23716 - 23734 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 23735 - 23740 [step.] 0.001 secs (0.001u,0.s) +Chars 23750 - 23758 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 23759 - 23771 [constructor.] 0. secs (0.u,0.s) +Chars 23772 - 23777 [auto.] 0. secs (0.u,0.s) +Chars 23782 - 23783 [+] 0. secs (0.u,0.s) +Chars 23784 - 23792 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 23794 - 23798 [(cbn).] 0. secs (0.u,0.s) +Chars 23805 - 23844 [(destruct~(observe~b')~eqn:Heq...] 0.002 secs (0.002u,0.s) +Chars 23851 - 23852 [*] 0. secs (0.u,0.s) +Chars 23853 - 23865 [constructor.] 0. secs (0.u,0.s) +Chars 23866 - 23883 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) +Chars 23884 - 23895 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 23904 - 23922 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) +Chars 23923 - 23946 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) +Chars 23947 - 23961 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) +Chars 23970 - 23975 [step.] 0.001 secs (0.001u,0.s) +Chars 23976 - 23981 [auto.] 0. secs (0.u,0.s) +Chars 23988 - 23989 [*] 0. secs (0.u,0.s) +Chars 23990 - 24002 [constructor.] 0. secs (0.u,0.s) +Chars 24003 - 24014 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24016 - 24048 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) +Chars 24057 - 24062 [step.] 0.002 secs (0.002u,0.s) +Chars 24063 - 24068 [auto.] 0. secs (0.u,0.s) +Chars 24075 - 24076 [*] 0. secs (0.u,0.s) +Chars 24077 - 24089 [constructor.] 0. secs (0.u,0.s) +Chars 24090 - 24107 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) +Chars 24108 - 24119 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24128 - 24146 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) +Chars 24147 - 24170 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) +Chars 24171 - 24185 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) +Chars 24186 - 24191 [step.] 0.002 secs (0.002u,0.s) +Chars 24192 - 24197 [auto.] 0. secs (0.u,0.s) +Chars 24202 - 24203 [+] 0. secs (0.u,0.s) +Chars 24204 - 24212 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24213 - 24217 [(cbn).] 0. secs (0.u,0.s) +Chars 24218 - 24255 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) +Chars 24262 - 24263 [*] 0. secs (0.u,0.s) +Chars 24264 - 24282 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 24283 - 24299 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 24300 - 24311 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24320 - 24325 [step.] 0.002 secs (0.002u,0.s) +Chars 24326 - 24339 [(rewrite~Heqb).] 0. secs (0.u,0.s) +Chars 24340 - 24345 [auto.] 0. secs (0.u,0.s) +Chars 24352 - 24353 [*] 0. secs (0.u,0.s) +Chars 24354 - 24366 [constructor.] 0. secs (0.u,0.s) +Chars 24367 - 24378 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24380 - 24405 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 24406 - 24411 [step.] 0.001 secs (0.001u,0.s) +Chars 24412 - 24417 [auto.] 0. secs (0.u,0.s) +Chars 24424 - 24425 [*] 0. secs (0.u,0.s) +Chars 24426 - 24438 [constructor.] 0. secs (0.u,0.s) +Chars 24439 - 24455 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 24456 - 24467 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24468 - 24473 [step.] 0.001 secs (0.001u,0.s) +Chars 24482 - 24495 [(rewrite~Heqb).] 0. secs (0.u,0.s) +Chars 24496 - 24501 [auto.] 0. secs (0.u,0.s) +Chars 24504 - 24505 [-] 0. secs (0.u,0.s) +Chars 24506 - 24533 [(dependent~induction~H;~cbn).] 0.058 secs (0.057u,0.s) +Chars 24538 - 24539 [+] 0. secs (0.u,0.s) +Chars 24541 - 24549 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24550 - 24558 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24559 - 24563 [(cbn).] 0. secs (0.u,0.s) +Chars 24564 - 24576 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 24582 - 24583 [+] 0. secs (0.u,0.s) +Chars 24584 - 24592 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 24593 - 24601 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24602 - 24606 [(cbn).] 0. secs (0.u,0.s) +Chars 24607 - 24619 [constructor.] 0. secs (0.u,0.s) +Chars 24620 - 24636 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) +Chars 24637 - 24648 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 24656 - 24661 [auto.] 0. secs (0.u,0.s) +Chars 24666 - 24667 [+] 0. secs (0.u,0.s) +Chars 24668 - 24676 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 24677 - 24740 [(destruct~e;~cbn;~try~(apply~e...] 0.002 secs (0.002u,0.s) +Chars 24747 - 24759 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 24765 - 24766 [+] 0. secs (0.u,0.s) +Chars 24767 - 24775 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24776 - 24780 [(cbn).] 0. secs (0.u,0.s) +Chars 24781 - 24800 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 24805 - 24806 [+] 0. secs (0.u,0.s) +Chars 24807 - 24815 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24816 - 24820 [(cbn).] 0. secs (0.u,0.s) +Chars 24821 - 24840 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 24841 - 24845 [Qed.] 0.199 secs (0.196u,0.002s) +Chars 24847 - 24990 [Lemma~peel_cont_ret_inv~:~~~fo...] 0. secs (0.u,0.s) +Chars 24991 - 24997 [Proof.] 0. secs (0.u,0.s) +Chars 25000 - 25013 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 25014 - 25032 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 25033 - 25040 [(intros).] 0. secs (0.u,0.s) +Chars 25041 - 25051 [step~in~H.] 0. secs (0.u,0.s) +Chars 25052 - 25061 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 25062 - 25091 [(dependent~induction~H;~subst).] 0.042 secs (0.042u,0.s) +Chars 25094 - 25095 [-] 0. secs (0.u,0.s) +Chars 25096 - 25104 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 25105 - 25109 [(cbn).] 0. secs (0.u,0.s) +Chars 25110 - 25122 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 25126 - 25127 [-] 0. secs (0.u,0.s) +Chars 25128 - 25136 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 25137 - 25167 [(destruct~(observe~b)~eqn:Hb).] 0.001 secs (0.001u,0.s) +Chars 25172 - 25173 [+] 0. secs (0.u,0.s) +Chars 25174 - 25178 [(cbn).] 0. secs (0.u,0.s) +Chars 25179 - 25184 [taul.] 0. secs (0.u,0.s) +Chars 25185 - 25193 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 25194 - 25201 [to_mon.] 0. secs (0.u,0.s) +Chars 25209 - 25230 [(rewrite~<-~itree_eta).] 0.017 secs (0.017u,0.s) +Chars 25238 - 25283 [(specialize~(IHeqitF~CIH~(Ret~...] 0. secs (0.u,0.s) +Chars 25288 - 25289 [+] 0. secs (0.u,0.s) +Chars 25290 - 25294 [(cbn).] 0. secs (0.u,0.s) +Chars 25295 - 25306 [(rewrite~Hb).] 0. secs (0.u,0.s) +Chars 25307 - 25312 [taus.] 0. secs (0.u,0.s) +Chars 25313 - 25338 [(eapply~CIH~with~(s~:=~s)).] 0. secs (0.u,0.s) +Chars 25345 - 25350 [step.] 0.003 secs (0.003u,0.s) +Chars 25351 - 25356 [auto.] 0. secs (0.u,0.s) +Chars 25361 - 25362 [+] 0. secs (0.u,0.s) +Chars 25363 - 25367 [(cbn).] 0. secs (0.u,0.s) +Chars 25368 - 25379 [(rewrite~Hb).] 0. secs (0.u,0.s) +Chars 25380 - 25385 [taul.] 0. secs (0.u,0.s) +Chars 25386 - 25400 [(rewrite~<-~Hb).] 0. secs (0.u,0.s) +Chars 25408 - 25447 [(specialize~(IHeqitF~CIH~b~t1~...] 0.001 secs (0.001u,0.s) +Chars 25454 - 25469 [(assert~(S~=~S)).] 0. secs (0.u,0.s) +Chars 25470 - 25475 [auto.] 0. secs (0.u,0.s) +Chars 25476 - 25496 [(apply~IHeqitF;~auto).] 0.001 secs (0.001u,0.s) +Chars 25497 - 25501 [Qed.] 0.055 secs (0.054u,0.s) +Chars 25503 - 25713 [Lemma~proper_peel_cont_eutt_r~...] 0. secs (0.u,0.s) +Chars 25714 - 25720 [Proof.] 0. secs (0.u,0.s) +Chars 25723 - 25736 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 25737 - 25754 [(unfold~peel_cont).] 0. secs (0.u,0.s) +Chars 25755 - 25771 [(intros~b~t~t'~_).] 0. secs (0.u,0.s) +Chars 25774 - 25788 [revert~b~t~t'.] 0. secs (0.u,0.s) +Chars 25789 - 25807 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 25808 - 25815 [(intros).] 0. secs (0.u,0.s) +Chars 25816 - 25826 [step~in~H.] 0. secs (0.u,0.s) +Chars 25827 - 25849 [dependent~induction~H.] 0.042 secs (0.042u,0.s) +Chars 25852 - 25853 [-] 0. secs (0.u,0.s) +Chars 25854 - 25862 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 25863 - 25875 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 25879 - 25880 [-] 0. secs (0.u,0.s) +Chars 25881 - 25889 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 25890 - 25927 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) +Chars 25932 - 25933 [+] 0. secs (0.u,0.s) +Chars 25934 - 25938 [(cbn).] 0. secs (0.u,0.s) +Chars 25939 - 25944 [taus.] 0. secs (0.u,0.s) +Chars 25945 - 25961 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 25962 - 25973 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 25974 - 25979 [auto.] 0. secs (0.u,0.s) +Chars 25984 - 25985 [+] 0. secs (0.u,0.s) +Chars 25986 - 25991 [etau.] 0.001 secs (0.001u,0.s) +Chars 25997 - 25998 [+] 0. secs (0.u,0.s) +Chars 25999 - 26011 [constructor.] 0. secs (0.u,0.s) +Chars 26012 - 26028 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 26029 - 26046 [(eapply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 26049 - 26050 [-] 0. secs (0.u,0.s) +Chars 26051 - 26059 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 26061 - 26103 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) +Chars 26108 - 26109 [+] 0. secs (0.u,0.s) +Chars 26110 - 26122 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 26128 - 26129 [+] 0. secs (0.u,0.s) +Chars 26130 - 26142 [constructor.] 0. secs (0.u,0.s) +Chars 26143 - 26157 [(rewrite~x,~x0).] 0. secs (0.u,0.s) +Chars 26158 - 26169 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 26177 - 26182 [step.] 0.001 secs (0.001u,0.s) +Chars 26183 - 26191 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 26192 - 26204 [constructor.] 0. secs (0.u,0.s) +Chars 26205 - 26212 [(intros).] 0. secs (0.u,0.s) +Chars 26219 - 26224 [auto.] 0. secs (0.u,0.s) +Chars 26229 - 26230 [+] 0. secs (0.u,0.s) +Chars 26231 - 26248 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) +Chars 26255 - 26256 [*] 0. secs (0.u,0.s) +Chars 26257 - 26272 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 26273 - 26277 [(cbn).] 0. secs (0.u,0.s) +Chars 26278 - 26299 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) +Chars 26308 - 26354 [(destruct~(classicT~(A~=~u));~...] 0.002 secs (0.002u,0.s) +Chars 26363 - 26389 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 26390 - 26417 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 26426 - 26451 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 26452 - 26456 [(cbn).] 0. secs (0.u,0.s) +Chars 26457 - 26469 [constructor.] 0. secs (0.u,0.s) +Chars 26470 - 26477 [(intros).] 0. secs (0.u,0.s) +Chars 26486 - 26497 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 26498 - 26514 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 26521 - 26522 [*] 0. secs (0.u,0.s) +Chars 26523 - 26535 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 26539 - 26540 [-] 0. secs (0.u,0.s) +Chars 26541 - 26549 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 26550 - 26592 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) +Chars 26597 - 26598 [+] 0. secs (0.u,0.s) +Chars 26599 - 26618 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 26619 - 26635 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 26636 - 26658 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 26663 - 26664 [+] 0. secs (0.u,0.s) +Chars 26665 - 26669 [(cbn).] 0. secs (0.u,0.s) +Chars 26670 - 26709 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 26716 - 26717 [*] 0. secs (0.u,0.s) +Chars 26718 - 26730 [constructor.] 0. secs (0.u,0.s) +Chars 26732 - 26743 [Utils.step.] 0.002 secs (0.002u,0.s) +Chars 26754 - 26766 [unstep~in~H.] 0. secs (0.u,0.s) +Chars 26767 - 26812 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) +Chars 26813 - 26818 [step.] 0.003 secs (0.003u,0.s) +Chars 26827 - 26837 [(rewrite~H).] 0.021 secs (0.021u,0.s) +Chars 26838 - 26850 [reflexivity.] 0. secs (0.u,0.s) +Chars 26858 - 26859 [*] 0. secs (0.u,0.s) +Chars 26860 - 26872 [constructor.] 0. secs (0.u,0.s) +Chars 26873 - 26891 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 26892 - 26924 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.u,0.s) +Chars 26933 - 26938 [step.] 0.001 secs (0.001u,0.s) +Chars 26939 - 26944 [auto.] 0. secs (0.u,0.s) +Chars 26951 - 26952 [*] 0. secs (0.u,0.s) +Chars 26953 - 26965 [constructor.] 0. secs (0.u,0.s) +Chars 26966 - 26983 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) +Chars 26984 - 26995 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 27004 - 27009 [step.] 0.001 secs (0.001u,0.s) +Chars 27010 - 27024 [(rewrite~Heqt').] 0. secs (0.u,0.s) +Chars 27025 - 27030 [auto.] 0. secs (0.u,0.s) +Chars 27035 - 27036 [+] 0. secs (0.u,0.s) +Chars 27037 - 27053 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 27054 - 27072 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 27073 - 27095 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 27098 - 27099 [-] 0. secs (0.u,0.s) +Chars 27100 - 27108 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 27109 - 27151 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) +Chars 27156 - 27157 [+] 0. secs (0.u,0.s) +Chars 27158 - 27176 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 27177 - 27193 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 27194 - 27216 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 27221 - 27222 [+] 0. secs (0.u,0.s) +Chars 27223 - 27260 [(destruct~(observe~t)~eqn:Heqt...] 0.004 secs (0.004u,0.s) +Chars 27267 - 27268 [*] 0. secs (0.u,0.s) +Chars 27275 - 27289 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 27290 - 27302 [unstep~in~H.] 0. secs (0.u,0.s) +Chars 27310 - 27355 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) +Chars 27356 - 27365 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 27373 - 27378 [taus.] 0. secs (0.u,0.s) +Chars 27379 - 27388 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 27389 - 27409 [now~do~2~Utils.step.] 0.009 secs (0.009u,0.s) +Chars 27417 - 27418 [*] 0. secs (0.u,0.s) +Chars 27419 - 27431 [constructor.] 0. secs (0.u,0.s) +Chars 27432 - 27443 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 27445 - 27470 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 27471 - 27476 [step.] 0.001 secs (0.001u,0.s) +Chars 27477 - 27482 [auto.] 0. secs (0.u,0.s) +Chars 27489 - 27490 [*] 0. secs (0.u,0.s) +Chars 27491 - 27503 [constructor.] 0. secs (0.u,0.s) +Chars 27504 - 27520 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) +Chars 27521 - 27532 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 27541 - 27546 [step.] 0.001 secs (0.001u,0.s) +Chars 27547 - 27560 [(rewrite~Heqt).] 0. secs (0.u,0.s) +Chars 27561 - 27566 [auto.] 0. secs (0.u,0.s) +Chars 27571 - 27572 [+] 0. secs (0.u,0.s) +Chars 27573 - 27589 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 27590 - 27608 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 27609 - 27631 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 27632 - 27636 [Qed.] 0.084 secs (0.083u,0.s) +Chars 27638 - 27756 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 27757 - 27763 [Proof.] 0. secs (0.u,0.s) +Chars 27766 - 27779 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 27780 - 27786 [subst.] 0. secs (0.u,0.s) +Chars 27787 - 27826 [(rewrite~proper_peel_cont_eutt...] 0.002 secs (0.002u,0.s) +Chars 27829 - 27868 [(rewrite~proper_peel_cont_eutt...] 0.002 secs (0.002u,0.s) +Chars 27869 - 27873 [Qed.] 0.001 secs (0.001u,0.s) +Chars 28265 - 28562 [Lemma~vis_refine_peel~:~~~fora...] 0.001 secs (0.001u,0.s) +Chars 28563 - 28569 [Proof.] 0. secs (0.u,0.s) +Chars 28572 - 28587 [(intros~E~R~S~A).] 0. secs (0.u,0.s) +Chars 28613 - 28639 [(intros~e~a~k1~k2~k3~Hpeel).] 0. secs (0.u,0.s) +Chars 28642 - 28659 [(unfold~peel~in~*).] 0. secs (0.u,0.s) +Chars 28660 - 28669 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 28670 - 28684 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 28687 - 28696 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 28700 - 28724 [(unfold~observe~in~Hpeel).] 0. secs (0.u,0.s) +Chars 28725 - 28738 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) +Chars 28741 - 28766 [(unfold~peel_vis~in~Hpeel).] 0. secs (0.u,0.s) +Chars 28769 - 28792 [(assert~(A~=~A)~by~auto).] 0. secs (0.u,0.s) +Chars 28795 - 28843 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 28844 - 28879 [(unfold~eq_rect_r,~eq_rect~in~...] 0. secs (0.u,0.s) +Chars 28882 - 28909 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 28910 - 28935 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 28936 - 28945 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 28948 - 28965 [clear~HeqHe~e0~H.] 0. secs (0.u,0.s) +Chars 28966 - 28971 [step.] 0.001 secs (0.001u,0.s) +Chars 28972 - 28976 [(cbn).] 0. secs (0.u,0.s) +Chars 28977 - 28987 [(inv~Hpeel).] 0.008 secs (0.008u,0.s) +Chars 28988 - 29001 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 29005 - 29025 [specialize~(REL~tt).] 0. secs (0.u,0.s) +Chars 29028 - 29089 [(assert~(peel_~(observe~(k1~tt...] 0. secs (0.u,0.s) +Chars 29090 - 29095 [auto.] 0. secs (0.u,0.s) +Chars 29098 - 29112 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 29113 - 29127 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 29128 - 29132 [Qed.] 0.011 secs (0.011u,0.s) +Chars 29134 - 29445 [Lemma~vis_refine_peel_cont~:~~...] 0.001 secs (0.001u,0.s) +Chars 29446 - 29452 [Proof.] 0. secs (0.u,0.s) +Chars 29455 - 29492 [(intros~E~R~S~A~e~a~k1~k2~t~Hp...] 0. secs (0.u,0.s) +Chars 29493 - 29511 [step~in~Hpeelcont.] 0. secs (0.u,0.s) +Chars 29514 - 29547 [(unfold~observe~in~Hpeelcont~a...] 0. secs (0.u,0.s) +Chars 29548 - 29557 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 29558 - 29584 [(unfold~peel_cont_vis~in~*).] 0. secs (0.u,0.s) +Chars 29587 - 29608 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) +Chars 29609 - 29657 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 29660 - 29691 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) +Chars 29692 - 29719 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 29722 - 29747 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) +Chars 29748 - 29757 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 29758 - 29767 [symmetry.] 0. secs (0.u,0.s) +Chars 29770 - 29841 [(assert~(Tau~(peel_cont_~(obse...] 0. secs (0.u,0.s) +Chars 29844 - 29845 [{] 0. secs (0.u,0.s) +Chars 29846 - 29851 [step.] 0.001 secs (0.001u,0.s) +Chars 29852 - 29857 [auto.] 0. secs (0.u,0.s) +Chars 29858 - 29859 [}] 0. secs (0.u,0.s) +Chars 29862 - 29885 [(rewrite~tau_eutt~in~H0).] 0.018 secs (0.018u,0.s) +Chars 29886 - 29891 [auto.] 0. secs (0.u,0.s) +Chars 29892 - 29896 [Qed.] 0.005 secs (0.005u,0.s) +Chars 29898 - 30047 [Lemma~spin_not_vis~:~~~forall~...] 0. secs (0.u,0.s) +Chars 30048 - 30054 [Proof.] 0. secs (0.u,0.s) +Chars 30057 - 30082 [(intros~E~R~A~e~k~Hcontra).] 0. secs (0.u,0.s) +Chars 30083 - 30099 [step~in~Hcontra.] 0. secs (0.u,0.s) +Chars 30100 - 30109 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 30112 - 30140 [dependent~induction~Hcontra.] 0.019 secs (0.019u,0.s) +Chars 30143 - 30167 [(eapply~IHHcontra;~eauto).] 0. secs (0.u,0.s) +Chars 30168 - 30172 [Qed.] 0.01 secs (0.009u,0.s) +Chars 30174 - 30614 [Lemma~peel_vis_empty_contra~:~...] 0.001 secs (0.001u,0.s) +Chars 30615 - 30621 [Proof.] 0. secs (0.u,0.s) +Chars 30624 - 30670 [(intros~R~E~S~A0~Hempty~ev~k0~...] 0. secs (0.u,0.s) +Chars 30673 - 30699 [dependent~induction~Hpeel.] 0.042 secs (0.041u,0.s) +Chars 30702 - 30703 [-] 0. secs (0.u,0.s) +Chars 30704 - 30752 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 30755 - 30756 [-] 0. secs (0.u,0.s) +Chars 30757 - 30809 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 30810 - 30819 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 30820 - 30839 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 30844 - 30867 [(rewrite~Ht1~in~IHHpeel).] 0. secs (0.u,0.s) +Chars 30868 - 30890 [(eapply~IHHpeel;~eauto).] 0.002 secs (0.002u,0.s) +Chars 30891 - 30895 [Qed.] 0.023 secs (0.023u,0.s) +Chars 30898 - 31192 [Lemma~vis_peel_l~:~~~forall~(E...] 0.001 secs (0.001u,0.s) +Chars 31193 - 31199 [Proof.] 0. secs (0.u,0.s) +Chars 31202 - 31240 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) +Chars 31243 - 31257 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 31258 - 31271 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) +Chars 31272 - 31298 [dependent~induction~Hpeel.] 0.045 secs (0.044u,0.s) +Chars 31301 - 31302 [-] 0. secs (0.u,0.s) +Chars 31303 - 31320 [(unfold~peel~in~x).] 0. secs (0.u,0.s) +Chars 31325 - 31448 [(destruct~(observe~b)~eqn:Heqb...] 0.03 secs (0.03u,0.s) +Chars 31449 - 31469 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 31470 - 31479 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 31484 - 31505 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 31510 - 31527 [(assert~(A0~=~X0)).] 0. secs (0.u,0.s) +Chars 31532 - 31533 [{] 0. secs (0.u,0.s) +Chars 31540 - 31548 [clear~x.] 0. secs (0.u,0.s) +Chars 31555 - 31572 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 31573 - 31590 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 31591 - 31613 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 31614 - 31636 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 31643 - 31664 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 31665 - 31686 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 31693 - 31718 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 31725 - 31738 [step~in~Href.] 0. secs (0.u,0.s) +Chars 31739 - 31748 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 31749 - 31758 [(inv~Href).] 0.015 secs (0.015u,0.s) +Chars 31765 - 31778 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 31779 - 31785 [subst.] 0. secs (0.u,0.s) +Chars 31786 - 31793 [(inv~H1).] 0.002 secs (0.002u,0.s) +Chars 31799 - 31800 [}] 0. secs (0.u,0.s) +Chars 31805 - 31862 [(destruct~(classicT~(A0~=~X0))...] 0.001 secs (0.001u,0.s) +Chars 31867 - 31898 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 31899 - 31926 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 31931 - 31956 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 31957 - 31966 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 31967 - 31989 [injection~x~as~Hevans.] 0.001 secs (0.001u,0.s) +Chars 31994 - 32007 [ddestruction.] 0.01 secs (0.01u,0.s) +Chars 32008 - 32014 [subst.] 0. secs (0.u,0.s) +Chars 32015 - 32028 [ddestruction.] 0. secs (0.u,0.s) +Chars 32029 - 32035 [subst.] 0. secs (0.u,0.s) +Chars 32036 - 32046 [exists~k0.] 0. secs (0.u,0.s) +Chars 32051 - 32068 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32069 - 32091 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 32092 - 32105 [(rewrite~Heqb).] 0.001 secs (0.001u,0.s) +Chars 32106 - 32118 [reflexivity.] 0. secs (0.u,0.s) +Chars 32121 - 32122 [-] 0. secs (0.u,0.s) +Chars 32123 - 32140 [(unfold~peel~in~x).] 0. secs (0.u,0.s) +Chars 32141 - 32264 [(destruct~(observe~b)~eqn:Heqb...] 0.043 secs (0.043u,0.s) +Chars 32269 - 32270 [+] 0. secs (0.u,0.s) +Chars 32271 - 32288 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32289 - 32311 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 32312 - 32333 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 32340 - 32365 [(rewrite~tau_eutt~in~Href).] 0.006 secs (0.006u,0.s) +Chars 32366 - 32396 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) +Chars 32397 - 32409 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 32416 - 32429 [(rewrite~Heqb).] 0. secs (0.u,0.s) +Chars 32430 - 32435 [auto.] 0. secs (0.u,0.s) +Chars 32440 - 32441 [+] 0. secs (0.u,0.s) +Chars 32442 - 32450 [exfalso.] 0. secs (0.u,0.s) +Chars 32451 - 32471 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) +Chars 32472 - 32477 [step.] 0.004 secs (0.004u,0.s) +Chars 32478 - 32484 [eauto.] 0. secs (0.u,0.s) +Chars 32489 - 32490 [+] 0. secs (0.u,0.s) +Chars 32491 - 32508 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32509 - 32526 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32527 - 32549 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 32556 - 32578 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 32579 - 32599 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) +Chars 32600 - 32624 [setoid_rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 32631 - 32652 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 32653 - 32674 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) +Chars 32675 - 32707 [(repeat~rewrite~tau_eutt~in~Hr...] 0.008 secs (0.008u,0.s) +Chars 32714 - 32744 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) +Chars 32749 - 32750 [+] 0. secs (0.u,0.s) +Chars 32751 - 32768 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32769 - 32786 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32787 - 32809 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 32810 - 32832 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 32839 - 32859 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) +Chars 32860 - 32884 [setoid_rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 32885 - 32906 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 32913 - 32934 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) +Chars 32935 - 32967 [(repeat~rewrite~tau_eutt~in~Hr...] 0.004 secs (0.004u,0.s) +Chars 32974 - 33004 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) +Chars 33009 - 33010 [+] 0. secs (0.u,0.s) +Chars 33011 - 33028 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 33029 - 33051 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 33052 - 33073 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33080 - 33105 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 33112 - 33129 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 33130 - 33152 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 33153 - 33174 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 33181 - 33201 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) +Chars 33202 - 33232 [(eapply~IHHpeel~in~Href;~eauto).] 0.004 secs (0.004u,0.s) +Chars 33237 - 33238 [+] 0. secs (0.u,0.s) +Chars 33239 - 33247 [exfalso.] 0. secs (0.u,0.s) +Chars 33248 - 33284 [(eapply~peel_vis_empty_contra;...] 0. secs (0.u,0.s) +Chars 33289 - 33290 [+] 0. secs (0.u,0.s) +Chars 33291 - 33311 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 33312 - 33321 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 33322 - 33343 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 33350 - 33367 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 33368 - 33385 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 33386 - 33408 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 33415 - 33437 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 33438 - 33459 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 33460 - 33481 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) +Chars 33488 - 33513 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 33514 - 33527 [step~in~Href.] 0. secs (0.u,0.s) +Chars 33528 - 33537 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 33544 - 33553 [(inv~Href).] 0.018 secs (0.018u,0.s) +Chars 33554 - 33567 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 33568 - 33574 [subst.] 0. secs (0.u,0.s) +Chars 33575 - 33582 [(inv~H1).] 0.012 secs (0.012u,0.s) +Chars 33583 - 33610 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 33617 - 33640 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) +Chars 33641 - 33691 [(destruct~(classicT~(A0~=~A0))...] 0.001 secs (0.001u,0.s) +Chars 33698 - 33729 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) +Chars 33730 - 33757 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 33764 - 33789 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 33790 - 33799 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 33800 - 33813 [discriminate.] 0. secs (0.u,0.s) +Chars 33814 - 33818 [Qed.] 0.131 secs (0.129u,0.001s) +Chars 33820 - 34102 [Lemma~vis_peel_r~:~~~forall~(E...] 0.001 secs (0.001u,0.s) +Chars 34103 - 34109 [Proof.] 0. secs (0.u,0.s) +Chars 34112 - 34150 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) +Chars 34153 - 34197 [(eapply~vis_peel_l~in~Hpeel~as...] 0.001 secs (0.001u,0.s) +Chars 34198 - 34225 [(destruct~Hpeell~as~[k'~Hb]).] 0. secs (0.u,0.s) +Chars 34228 - 34247 [(rewrite~Hb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 34248 - 34268 [(rewrite~Hb~in~Hpeel).] 0.022 secs (0.022u,0.s) +Chars 34269 - 34280 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 34281 - 34295 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 34296 - 34305 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34308 - 34329 [(unfold~peel~in~Hpeel).] 0. secs (0.u,0.s) +Chars 34330 - 34339 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34340 - 34366 [dependent~induction~Hpeel.] 0.052 secs (0.052u,0.s) +Chars 34369 - 34370 [-] 0. secs (0.u,0.s) +Chars 34371 - 34428 [(destruct~(observe~t)~eqn:Heqt...] 0.01 secs (0.01u,0.s) +Chars 34433 - 34450 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 34451 - 34473 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 34474 - 34494 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) +Chars 34499 - 34519 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 34520 - 34529 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34530 - 34551 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 34552 - 34614 [(destruct~(classicT~(A~=~X));~...] 0.001 secs (0.001u,0.s) +Chars 34619 - 34650 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 34651 - 34678 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) +Chars 34683 - 34708 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 34709 - 34718 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34719 - 34729 [exists~k0.] 0. secs (0.u,0.s) +Chars 34734 - 34755 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 34756 - 34781 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 34782 - 34795 [step~in~Href.] 0. secs (0.u,0.s) +Chars 34801 - 34810 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 34811 - 34820 [(inv~Href).] 0.015 secs (0.015u,0.s) +Chars 34821 - 34841 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 34842 - 34849 [(inv~H1).] 0.006 secs (0.006u,0.s) +Chars 34850 - 34870 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 34871 - 34883 [reflexivity.] 0. secs (0.u,0.s) +Chars 34886 - 34887 [-] 0. secs (0.u,0.s) +Chars 34888 - 34955 [(destruct~(observe~t)~eqn:Heqt...] 0.007 secs (0.007u,0.s) +Chars 34960 - 34961 [+] 0. secs (0.u,0.s) +Chars 34962 - 34979 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 34980 - 35002 [(apply~simpobs~in~Heqt).] 0.003 secs (0.003u,0.s) +Chars 35003 - 35024 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 35025 - 35050 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 35057 - 35077 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) +Chars 35078 - 35102 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 35103 - 35125 [(eapply~IHHpeel;~eauto).] 0.002 secs (0.002u,0.s) +Chars 35130 - 35131 [+] 0. secs (0.u,0.s) +Chars 35132 - 35152 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 35153 - 35162 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 35163 - 35184 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) +Chars 35191 - 35220 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 35227 - 35228 [*] 0. secs (0.u,0.s) +Chars 35229 - 35260 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) +Chars 35261 - 35288 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) +Chars 35289 - 35314 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 35323 - 35332 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 35333 - 35346 [discriminate.] 0. secs (0.u,0.s) +Chars 35353 - 35354 [*] 0. secs (0.u,0.s) +Chars 35355 - 35364 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 35365 - 35384 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 35385 - 35406 [(rewrite~Ht1~in~Hpeel).] 0. secs (0.u,0.s) +Chars 35415 - 35423 [exfalso.] 0. secs (0.u,0.s) +Chars 35424 - 35444 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) +Chars 35445 - 35450 [step.] 0.006 secs (0.006u,0.s) +Chars 35451 - 35457 [eauto.] 0. secs (0.u,0.s) +Chars 35458 - 35462 [Qed.] 0.064 secs (0.062u,0.001s) +Chars 35464 - 35747 [Lemma~peel_cont_vis_eutt~:~~~f...] 0.001 secs (0.001u,0.s) +Chars 35748 - 35754 [Proof.] 0. secs (0.u,0.s) +Chars 35757 - 35787 [(intros~R~r~E~S~A~ev~ans~kb~kt).] 0. secs (0.u,0.s) +Chars 35790 - 35795 [step.] 0.002 secs (0.002u,0.s) +Chars 35796 - 35816 [(unfold~observe~at~1).] 0. secs (0.u,0.s) +Chars 35817 - 35821 [(cbn).] 0. secs (0.u,0.s) +Chars 35822 - 35843 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) +Chars 35846 - 35867 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) +Chars 35868 - 35915 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 35918 - 35944 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 35945 - 35971 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 35974 - 35999 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 36000 - 36004 [(cbn).] 0. secs (0.u,0.s) +Chars 36005 - 36023 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 36025 - 36029 [Qed.] 0.004 secs (0.004u,0.s) +Chars 36031 - 36316 [Lemma~peel_cont_refine_t~:~~~f...] 0. secs (0.u,0.s) +Chars 36317 - 36323 [Proof.] 0. secs (0.u,0.s) +Chars 36326 - 36333 [(intros).] 0. secs (0.u,0.s) +Chars 36334 - 36360 [(remember~(peel~b~t)~as~t').] 0. secs (0.u,0.s) +Chars 36361 - 36386 [(assert~(peel~b~t~≈~t')).] 0. secs (0.u,0.s) +Chars 36389 - 36390 [{] 0. secs (0.u,0.s) +Chars 36391 - 36397 [subst.] 0. secs (0.u,0.s) +Chars 36398 - 36410 [reflexivity.] 0. secs (0.u,0.s) +Chars 36411 - 36412 [}] 0. secs (0.u,0.s) +Chars 36415 - 36427 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 36428 - 36451 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 36452 - 36475 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 36478 - 36498 [(induction~H;~intros).] 0. secs (0.u,0.s) +Chars 36501 - 36502 [-] 0. secs (0.u,0.s) +Chars 36503 - 36522 [(rewrite~<-~H0~in~H).] 0.023 secs (0.023u,0.s) +Chars 36523 - 36532 [clear~H0.] 0. secs (0.u,0.s) +Chars 36533 - 36563 [(apply~peel_ret_inv~in~H~as~Ht).] 0. secs (0.u,0.s) +Chars 36568 - 36588 [(rewrite~Ht~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 36593 - 36621 [(rewrite~bind_ret_l~in~Hrutt).] 0.003 secs (0.003u,0.s) +Chars 36626 - 36642 [(rewrite~Ht~in~H).] 0.027 secs (0.027u,0.s) +Chars 36647 - 36664 [(unfold~peel_cont).] 0. secs (0.u,0.s) +Chars 36665 - 36669 [(cbn).] 0. secs (0.u,0.s) +Chars 36670 - 36703 [(rewrite~peel_cont_ret_inv;~ea...] 0.004 secs (0.004u,0.s) +Chars 36706 - 36707 [-] 0. secs (0.u,0.s) +Chars 36708 - 36724 [(rewrite~H~in~H1).] 0. secs (0.u,0.s) +Chars 36725 - 36733 [clear~H.] 0. secs (0.u,0.s) +Chars 36738 - 36768 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) +Chars 36769 - 36806 [(eapply~vis_peel_l~in~H1~as~Hb...] 0.001 secs (0.001u,0.s) +Chars 36811 - 36848 [(eapply~vis_peel_r~in~H1~as~Ht...] 0.001 secs (0.001u,0.s) +Chars 36853 - 36877 [(destruct~Hb~as~[kb~Hkb]).] 0. secs (0.u,0.s) +Chars 36878 - 36902 [(destruct~Ht~as~[kt~Htk]).] 0. secs (0.u,0.s) +Chars 36907 - 36919 [(rewrite~Htk).] 0.006 secs (0.006u,0.s) +Chars 36920 - 36932 [(rewrite~Hkb).] 0.005 secs (0.005u,0.s) +Chars 36937 - 36958 [(rewrite~Hkb~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 36959 - 36980 [(rewrite~Htk~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 36985 - 37003 [(rewrite~Hkb~in~H1).] 0.021 secs (0.021u,0.s) +Chars 37004 - 37022 [(rewrite~Htk~in~H1).] 0.024 secs (0.024u,0.s) +Chars 37027 - 37061 [(apply~vis_refine_peel~in~H1~a...] 0. secs (0.u,0.s) +Chars 37066 - 37093 [(rewrite~peel_cont_vis_eutt).] 0.005 secs (0.005u,0.s) +Chars 37094 - 37121 [(apply~IHmay_converge;~auto).] 0.001 secs (0.001u,0.s) +Chars 37126 - 37127 [+] 0. secs (0.u,0.s) +Chars 37128 - 37154 [(rewrite~bind_vis~in~Hrutt).] 0.003 secs (0.003u,0.s) +Chars 37155 - 37169 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 37170 - 37179 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 37186 - 37196 [(inv~Hrutt).] 0.013 secs (0.012u,0.s) +Chars 37197 - 37217 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 37224 - 37295 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 37302 - 37316 [(apply~H8~in~H).] 0. secs (0.u,0.s) +Chars 37318 - 37323 [auto.] 0. secs (0.u,0.s) +Chars 37328 - 37329 [+] 0. secs (0.u,0.s) +Chars 37330 - 37341 [(destruct~b).] 0. secs (0.u,0.s) +Chars 37342 - 37351 [symmetry.] 0. secs (0.u,0.s) +Chars 37352 - 37357 [auto.] 0. secs (0.u,0.s) +Chars 37358 - 37362 [Qed.] 0.019 secs (0.019u,0.s) +Chars 37365 - 37666 [Ltac~~fold_peel_cont~r~:=~~~ma...] 0. secs (0.u,0.s) +Chars 37668 - 38030 [Lemma~trace_prefix_tau_ret~:~~...] 0.001 secs (0.001u,0.s) +Chars 38031 - 38037 [Proof.] 0. secs (0.u,0.s) +Chars 38040 - 38083 [(intros~E~R~S~r~b~t~f~r0~Hrutt...] 0. secs (0.u,0.s) +Chars 38086 - 38103 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 38104 - 38121 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 38124 - 38146 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 38147 - 38169 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 38170 - 38192 [(rewrite~Heqb~in~Hrutt).] 0.003 secs (0.003u,0.s) +Chars 38195 - 38217 [(rewrite~Heqt~in~Hrutt).] 0.007 secs (0.006u,0.s) +Chars 38218 - 38244 [(rewrite~tau_eutt~in~Hrutt).] 0.004 secs (0.004u,0.s) +Chars 38247 - 38285 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) +Chars 38286 - 38298 [constructor.] 0. secs (0.u,0.s) +Chars 38301 - 38333 [(assert~(exists~s,~t0~≈~Ret~s)).] 0. secs (0.u,0.s) +Chars 38336 - 38337 [{] 0. secs (0.u,0.s) +Chars 38342 - 38356 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 38357 - 38383 [dependent~induction~Hrutt.] 0.029 secs (0.029u,0.s) +Chars 38388 - 38389 [-] 0. secs (0.u,0.s) +Chars 38390 - 38410 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 38411 - 38420 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 38421 - 38481 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) +Chars 38488 - 38498 [exists~r1.] 0. secs (0.u,0.s) +Chars 38499 - 38504 [step.] 0.001 secs (0.001u,0.s) +Chars 38505 - 38517 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 38518 - 38522 [(cbn).] 0. secs (0.u,0.s) +Chars 38523 - 38539 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 38544 - 38545 [-] 0. secs (0.u,0.s) +Chars 38546 - 38566 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 38567 - 38576 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 38577 - 38637 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) +Chars 38644 - 38645 [+] 0. secs (0.u,0.s) +Chars 38646 - 38656 [exists~r1.] 0. secs (0.u,0.s) +Chars 38657 - 38662 [step.] 0.001 secs (0.001u,0.s) +Chars 38663 - 38675 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 38676 - 38680 [(cbn).] 0. secs (0.u,0.s) +Chars 38681 - 38697 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 38704 - 38705 [+] 0. secs (0.u,0.s) +Chars 38706 - 38725 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 38726 - 38742 [symmetry~in~Ht0.] 0. secs (0.u,0.s) +Chars 38743 - 38764 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) +Chars 38773 - 38806 [(apply~eq_sub_eutt~in~Ht0~as~H...] 0. secs (0.u,0.s) +Chars 38807 - 38827 [setoid_rewrite~Ht0'.] 0.004 secs (0.004u,0.s) +Chars 38836 - 38860 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 38861 - 38883 [(eapply~IHHrutt;~eauto).] 0.004 secs (0.004u,0.s) +Chars 38892 - 38904 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 38905 - 38911 [eauto.] 0. secs (0.u,0.s) +Chars 38914 - 38915 [}] 0. secs (0.u,0.s) +Chars 38918 - 38940 [(destruct~H~as~[s~Ht0]).] 0. secs (0.u,0.s) +Chars 38941 - 38953 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 38954 - 38965 [(cbn~in~Ht0).] 0. secs (0.u,0.s) +Chars 38968 - 38985 [clear~Heqt~Hrutt.] 0. secs (0.u,0.s) +Chars 38988 - 39012 [dependent~induction~Ht0.] 0.03 secs (0.03u,0.s) +Chars 39015 - 39016 [-] 0. secs (0.u,0.s) +Chars 39017 - 39025 [simpobs.] 0. secs (0.u,0.s) +Chars 39026 - 39030 [(cbn).] 0. secs (0.u,0.s) +Chars 39031 - 39044 [step~in~Heqb.] 0. secs (0.u,0.s) +Chars 39045 - 39054 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 39055 - 39064 [(inv~Heqb).] 0.012 secs (0.012u,0.s) +Chars 39069 - 39080 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 39081 - 39097 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 39100 - 39101 [-] 0. secs (0.u,0.s) +Chars 39102 - 39110 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 39111 - 39115 [(cbn).] 0. secs (0.u,0.s) +Chars 39116 - 39128 [constructor.] 0. secs (0.u,0.s) +Chars 39129 - 39149 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 39150 - 39154 [Qed.] 0.046 secs (0.046u,0.s) +Chars 39156 - 39958 [Lemma~trace_prefix_vis_evans~:...] 0.002 secs (0.002u,0.s) +Chars 39959 - 39965 [Proof.] 0. secs (0.u,0.s) +Chars 39968 - 40015 [(intros~E~R~S~r~A0~ev~ans~k~k'...] 0. secs (0.u,0.s) +Chars 40018 - 40030 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 40031 - 40040 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 40041 - 40065 [dependent~induction~Ht0.] 0.044 secs (0.043u,0.s) +Chars 40068 - 40069 [-] 0. secs (0.u,0.s) +Chars 40070 - 40078 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 40079 - 40094 [(unfold~observe).] 0. secs (0.u,0.s) +Chars 40095 - 40099 [(cbn).] 0. secs (0.u,0.s) +Chars 40100 - 40116 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 40121 - 40144 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) +Chars 40145 - 40194 [(destruct~(classicT~(A0~=~A0))...] 0. secs (0.u,0.s) +Chars 40199 - 40225 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 40226 - 40252 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 40257 - 40282 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 40283 - 40287 [(cbn).] 0. secs (0.u,0.s) +Chars 40288 - 40300 [constructor.] 0. secs (0.u,0.s) +Chars 40301 - 40312 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 40318 - 40390 [(assert~(RAnsRef~E~unit~A0~(ev...] 0. secs (0.u,0.s) +Chars 40395 - 40411 [(apply~Hk'~in~H0).] 0. secs (0.u,0.s) +Chars 40413 - 40455 [(assert~(k1~ans~≈~k'~ans);~try...] 0. secs (0.u,0.s) +Chars 40460 - 40471 [(rewrite~H1).] 0.004 secs (0.004u,0.s) +Chars 40472 - 40478 [eauto.] 0. secs (0.u,0.s) +Chars 40481 - 40482 [-] 0. secs (0.u,0.s) +Chars 40483 - 40491 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 40492 - 40496 [(cbn).] 0. secs (0.u,0.s) +Chars 40497 - 40509 [constructor.] 0. secs (0.u,0.s) +Chars 40510 - 40530 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 40531 - 40535 [Qed.] 0.031 secs (0.03u,0.s) +Chars 40537 - 41195 [Lemma~trace_prefix_vis_evempty...] 0.001 secs (0.001u,0.s) +Chars 41196 - 41202 [Proof.] 0. secs (0.u,0.s) +Chars 41205 - 41250 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) +Chars 41253 - 41257 [(cbn).] 0. secs (0.u,0.s) +Chars 41258 - 41270 [constructor.] 0. secs (0.u,0.s) +Chars 41273 - 41297 [dependent~induction~Ht0.] 0.034 secs (0.033u,0.s) +Chars 41300 - 41301 [-] 0. secs (0.u,0.s) +Chars 41302 - 41310 [simpobs.] 0. secs (0.u,0.s) +Chars 41311 - 41315 [(cbn).] 0. secs (0.u,0.s) +Chars 41316 - 41328 [constructor.] 0. secs (0.u,0.s) +Chars 41331 - 41332 [-] 0. secs (0.u,0.s) +Chars 41333 - 41341 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 41342 - 41346 [(cbn).] 0. secs (0.u,0.s) +Chars 41347 - 41359 [constructor.] 0. secs (0.u,0.s) +Chars 41360 - 41380 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 41381 - 41385 [Qed.] 0.038 secs (0.037u,0.s) +Chars 41388 - 41939 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) +Chars 41940 - 41946 [Proof.] 0. secs (0.u,0.s) +Chars 41949 - 41985 [(intros~E~R~S~r~A0~ev~ans~k~t0...] 0. secs (0.u,0.s) +Chars 41988 - 42000 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 42001 - 42010 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 42011 - 42035 [dependent~induction~Ht0.] 0.042 secs (0.041u,0.s) +Chars 42038 - 42039 [-] 0. secs (0.u,0.s) +Chars 42040 - 42048 [simpobs.] 0. secs (0.u,0.s) +Chars 42049 - 42053 [(cbn).] 0. secs (0.u,0.s) +Chars 42054 - 42102 [(remember~(go~(VisF~(evans~A0~...] 0. secs (0.u,0.s) +Chars 42107 - 42154 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) +Chars 42159 - 42160 [{] 0. secs (0.u,0.s) +Chars 42161 - 42167 [subst.] 0. secs (0.u,0.s) +Chars 42168 - 42173 [auto.] 0. secs (0.u,0.s) +Chars 42174 - 42175 [}] 0. secs (0.u,0.s) +Chars 42180 - 42192 [constructor.] 0. secs (0.u,0.s) +Chars 42195 - 42196 [-] 0. secs (0.u,0.s) +Chars 42197 - 42205 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 42206 - 42210 [(cbn).] 0. secs (0.u,0.s) +Chars 42211 - 42223 [constructor.] 0. secs (0.u,0.s) +Chars 42224 - 42244 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 42245 - 42249 [Qed.] 0.015 secs (0.015u,0.s) +Chars 42251 - 42848 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) +Chars 42849 - 42855 [Proof.] 0. secs (0.u,0.s) +Chars 42858 - 42897 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) +Chars 42900 - 42912 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 42913 - 42922 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 42923 - 42947 [dependent~induction~Ht0.] 0.033 secs (0.033u,0.s) +Chars 42950 - 42951 [-] 0. secs (0.u,0.s) +Chars 42952 - 42960 [simpobs.] 0. secs (0.u,0.s) +Chars 42961 - 42965 [(cbn).] 0. secs (0.u,0.s) +Chars 42966 - 43019 [(remember~(go~(VisF~(evempty~A...] 0. secs (0.u,0.s) +Chars 43024 - 43071 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) +Chars 43076 - 43077 [{] 0. secs (0.u,0.s) +Chars 43078 - 43084 [subst.] 0. secs (0.u,0.s) +Chars 43085 - 43090 [auto.] 0. secs (0.u,0.s) +Chars 43091 - 43092 [}] 0. secs (0.u,0.s) +Chars 43097 - 43109 [constructor.] 0. secs (0.u,0.s) +Chars 43112 - 43113 [-] 0.002 secs (0.002u,0.s) +Chars 43114 - 43122 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43123 - 43127 [(cbn).] 0. secs (0.u,0.s) +Chars 43128 - 43140 [constructor.] 0. secs (0.u,0.s) +Chars 43141 - 43161 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 43162 - 43166 [Qed.] 0.015 secs (0.015u,0.s) +Chars 43168 - 43379 [Lemma~trace_prefix_peel~:~~~fo...] 0. secs (0.u,0.s) +Chars 43380 - 43386 [Proof.] 0. secs (0.u,0.s) +Chars 43389 - 43402 [(intros~E~S~R).] 0. secs (0.u,0.s) +Chars 43403 - 43421 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 43422 - 43440 [(intros~b~t~f~Href).] 0. secs (0.u,0.s) +Chars 43441 - 43453 [(unfold~peel).] 0. secs (0.u,0.s) +Chars 43456 - 43532 [(destruct~(observe~b)~eqn:Heqb...] 0.003 secs (0.003u,0.s) +Chars 43536 - 43537 [-] 0. secs (0.u,0.s) +Chars 43538 - 43542 [(cbn).] 0. secs (0.u,0.s) +Chars 43543 - 43559 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 43563 - 43564 [-] 0. secs (0.u,0.s) +Chars 43565 - 43573 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43574 - 43609 [(eapply~trace_prefix_tau_ret;~...] 0. secs (0.u,0.s) +Chars 43612 - 43613 [-] 0. secs (0.u,0.s) +Chars 43614 - 43631 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 43632 - 43649 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 43650 - 43672 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 43673 - 43695 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 43700 - 43721 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 43722 - 43743 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) +Chars 43744 - 43769 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 43774 - 43784 [sinv~Href.] 0.003 secs (0.003u,0.s) +Chars 43787 - 43788 [-] 0. secs (0.u,0.s) +Chars 43789 - 43797 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43798 - 43814 [auto~with~itree.] 0. secs (0.u,0.s) Chars 43817 - 43818 [-] 0. secs (0.u,0.s) Chars 43819 - 43827 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43828 - 43844 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 43847 - 43848 [-] 0. secs (0.u,0.s) -Chars 43849 - 43857 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43858 - 43870 [constructor.] 0. secs (0.u,0.s) -Chars 43871 - 43882 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 43884 - 43901 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 43902 - 43919 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 43924 - 43946 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 43947 - 43969 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 43970 - 43991 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 43992 - 44013 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 44018 - 44050 [(repeat~rewrite~tau_eutt~in~Hr...] 0.011 secs (0.011u,0.s) -Chars 44051 - 44057 [eauto.] 0. secs (0.u,0.s) -Chars 44060 - 44061 [-] 0. secs (0.u,0.s) -Chars 44062 - 44070 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 44071 - 44083 [constructor.] 0. secs (0.u,0.s) -Chars 44084 - 44100 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) -Chars 44101 - 44112 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 44118 - 44135 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 44136 - 44158 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 44159 - 44180 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 44185 - 44210 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 44211 - 44217 [eauto.] 0. secs (0.u,0.s) -Chars 44220 - 44221 [-] 0. secs (0.u,0.s) -Chars 44222 - 44230 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 44231 - 44281 [(destruct~e;~cbn;~rewrite~<-~H...] 0.002 secs (0.001u,0.s) -Chars 44284 - 44285 [-] 0. secs (0.u,0.s) -Chars 44286 - 44294 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 44295 - 44312 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 44313 - 44335 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 44340 - 44361 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 44366 - 44406 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 44407 - 44445 [(destruct~Hbt~as~[A~[e0~[k0~Hv...] 0.003 secs (0.003u,0.s) -Chars 44450 - 44467 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 44468 - 44490 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 44491 - 44512 [(rewrite~Heqt~in~Hvis).] 0.011 secs (0.011u,0.s) -Chars 44517 - 44542 [(rewrite~tau_eutt~in~Hvis).] 0.008 secs (0.008u,0.s) -Chars 44547 - 44642 [(assert~~~((exists~B,~exists~k...] 0.001 secs (0.001u,0.s) -Chars 44647 - 44648 [{] 0. secs (0.u,0.s) -Chars 44655 - 44668 [step~in~Hvis.] 0. secs (0.u,0.s) -Chars 44669 - 44685 [clear~Heqb~Heqt.] 0. secs (0.u,0.s) -Chars 44692 - 44717 [dependent~induction~Hvis.] 0.048 secs (0.048u,0.s) -Chars 44724 - 44725 [-] 0. secs (0.u,0.s) -Chars 44726 - 44746 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 44747 - 44756 [(cbn~in~*).] 0.002 secs (0.002u,0.s) -Chars 44757 - 44809 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 44818 - 44819 [+] 0. secs (0.u,0.s) -Chars 44820 - 44826 [right.] 0. secs (0.u,0.s) -Chars 44827 - 44836 [exists~r.] 0. secs (0.u,0.s) -Chars 44837 - 44842 [step.] 0.001 secs (0.001u,0.s) -Chars 44843 - 44847 [(cbn).] 0. secs (0.u,0.s) -Chars 44848 - 44862 [(rewrite~Heqt0).] 0. secs (0.u,0.s) -Chars 44863 - 44879 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 44888 - 44889 [+] 0. secs (0.u,0.s) -Chars 44890 - 44899 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 44900 - 44905 [left.] 0. secs (0.u,0.s) -Chars 44906 - 44916 [exists~X0.] 0. secs (0.u,0.s) -Chars 44917 - 44927 [exists~k2.] 0. secs (0.u,0.s) -Chars 44928 - 44938 [exists~e1.] 0. secs (0.u,0.s) -Chars 44939 - 44957 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) -Chars 44968 - 44991 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) -Chars 44992 - 45006 [(rewrite~Heqt0).] 0.001 secs (0.001u,0.s) -Chars 45007 - 45019 [reflexivity.] 0. secs (0.u,0.s) -Chars 45026 - 45027 [-] 0. secs (0.u,0.s) -Chars 45028 - 45048 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 45049 - 45058 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 45059 - 45111 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 45120 - 45121 [+] 0. secs (0.u,0.s) -Chars 45122 - 45128 [right.] 0. secs (0.u,0.s) -Chars 45129 - 45138 [exists~r.] 0. secs (0.u,0.s) -Chars 45139 - 45144 [step.] 0.001 secs (0.001u,0.s) -Chars 45145 - 45149 [(cbn).] 0. secs (0.u,0.s) -Chars 45150 - 45164 [(rewrite~Heqt0).] 0. secs (0.u,0.s) -Chars 45165 - 45181 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 45190 - 45191 [+] 0. secs (0.u,0.s) -Chars 45192 - 45211 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 45212 - 45230 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) -Chars 45231 - 45254 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) -Chars 45265 - 45286 [setoid_rewrite~Heqt0.] 0.01 secs (0.01u,0.s) -Chars 45287 - 45311 [setoid_rewrite~tau_eutt.] 0.016 secs (0.016u,0.s) -Chars 45312 - 45333 [(eapply~IHHvis;~eauto).] 0.003 secs (0.003u,0.s) -Chars 45344 - 45356 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 45357 - 45362 [auto.] 0. secs (0.u,0.s) -Chars 45367 - 45368 [}] 0. secs (0.u,0.s) -Chars 45373 - 45421 [(destruct~H~as~[[B~[k'~[e1~Ht0...] 0. secs (0.u,0.s) -Chars 45426 - 45427 [+] 0. secs (0.u,0.s) -Chars 45428 - 45449 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45450 - 45475 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45482 - 45502 [(rewrite~Ht0~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45503 - 45528 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45535 - 45545 [sinv~Href.] 0.018 secs (0.018u,0.s) -Chars 45546 - 45573 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 45580 - 45600 [(rewrite~Ht0~in~Hvis).] 0.011 secs (0.011u,0.s) -Chars 45601 - 45626 [(rewrite~bind_vis~in~Hvis).] 0.011 secs (0.011u,0.s) -Chars 45627 - 45637 [sinv~Hvis.] 0.019 secs (0.019u,0.s) -Chars 45644 - 45671 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 45672 - 45688 [clear~Heqt~Heqb.] 0. secs (0.u,0.s) -Chars 45695 - 45707 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 45708 - 45717 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 45724 - 45735 [(destruct~e).] 0. secs (0.u,0.s) -Chars 45742 - 45743 [*] 0. secs (0.u,0.s) -Chars 45744 - 45751 [(inv~H1).] 0.014 secs (0.014u,0.s) -Chars 45752 - 45772 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 45773 - 45777 [(cbn).] 0. secs (0.u,0.s) -Chars 45778 - 45790 [constructor.] 0. secs (0.u,0.s) -Chars 45799 - 45847 [(eapply~trace_prefix_vis_evans...] 0.001 secs (0.001u,0.s) -Chars 45856 - 45865 [now~step.] 0.002 secs (0.002u,0.s) -Chars 45873 - 45874 [*] 0. secs (0.u,0.s) -Chars 45875 - 45914 [(eapply~trace_prefix_vis_evemp...] 0. secs (0.u,0.s) -Chars 45919 - 45920 [+] 0. secs (0.u,0.s) -Chars 45921 - 45942 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45943 - 45963 [(rewrite~Ht0~in~Href).] 0.005 secs (0.005u,0.s) -Chars 45970 - 45995 [(rewrite~tau_eutt~in~Href).] 0.006 secs (0.006u,0.s) -Chars 45996 - 46023 [(rewrite~bind_ret_l~in~Href).] 0.003 secs (0.003u,0.s) -Chars 46024 - 46035 [clear~Hvis.] 0. secs (0.u,0.s) -Chars 46042 - 46053 [(destruct~e).] 0. secs (0.u,0.s) -Chars 46060 - 46061 [*] 0. secs (0.u,0.s) -Chars 46062 - 46066 [(cbn).] 0. secs (0.u,0.s) -Chars 46067 - 46079 [constructor.] 0. secs (0.u,0.s) -Chars 46080 - 46120 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) -Chars 46127 - 46128 [*] 0. secs (0.u,0.s) -Chars 46129 - 46133 [(cbn).] 0. secs (0.u,0.s) -Chars 46134 - 46146 [constructor.] 0. secs (0.u,0.s) -Chars 46147 - 46193 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) -Chars 46196 - 46197 [-] 0. secs (0.u,0.s) -Chars 46198 - 46242 [(destruct~e;~cbn;~simpobs;~[~~...] 0.005 secs (0.005u,0.s) -Chars 46247 - 46264 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 46265 - 46287 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 46288 - 46309 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 46314 - 46339 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 46340 - 46357 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 46358 - 46380 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 46385 - 46406 [(rewrite~Heqb~in~Href).] 0.006 secs (0.006u,0.s) -Chars 46407 - 46417 [sinv~Href.] 0.017 secs (0.016u,0.s) -Chars 46418 - 46445 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 46450 - 46463 [(inversion~H1).] 0.003 secs (0.003u,0.s) -Chars 46464 - 46484 [(ddestruction;~subst).] 0.006 secs (0.006u,0.s) -Chars 46489 - 46509 [(unfold~observe~at~1).] 0. secs (0.u,0.s) -Chars 46510 - 46514 [(cbn).] 0. secs (0.u,0.s) -Chars 46515 - 46531 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 46532 - 46553 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) -Chars 46558 - 46606 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 46611 - 46637 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 46638 - 46664 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 46669 - 46694 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 46695 - 46699 [(cbn).] 0. secs (0.u,0.s) -Chars 46700 - 46712 [constructor.] 0. secs (0.u,0.s) -Chars 46713 - 46724 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 46730 - 46750 [(ddestruction;~subst).] 0. secs (0.u,0.s) -Chars 46755 - 46826 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 46831 - 46846 [(apply~H6~in~H0).] 0. secs (0.u,0.s) -Chars 46848 - 46854 [eauto.] 0. secs (0.u,0.s) -Chars 46855 - 46859 [Qed.] 0.139 secs (0.138u,0.001s) -Chars 46861 - 47068 [Lemma~peel_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 47069 - 47075 [Proof.] 0. secs (0.u,0.s) -Chars 47078 - 47085 [(intros).] 0. secs (0.u,0.s) -Chars 47086 - 47110 [(apply~trace_prefix_bind).] 0. secs (0.u,0.s) -Chars 47111 - 47143 [(eapply~trace_prefix_peel;~eau...] 0. secs (0.u,0.s) -Chars 47144 - 47148 [Qed.] 0. secs (0.u,0.s) -Chars 47150 - 47313 [Lemma~peel_lemma~:~~~forall~E~...] 0. secs (0.u,0.s) -Chars 47314 - 47320 [Proof.] 0. secs (0.u,0.s) -Chars 47323 - 47330 [(intros).] 0. secs (0.u,0.s) -Chars 47331 - 47403 [(split;~try~eapply~peel_refine...] 0. secs (0.u,0.s) -Chars 47404 - 47408 [Qed.] 0. secs (0.u,0.s) -Chars 47410 - 47419 [End~Peel.] 0.009 secs (0.009u,0.s) -Chars 47421 - 47604 [Lemma~bind_peel_ret_tau_aux~:~...] 0. secs (0.u,0.s) -Chars 47605 - 47611 [Proof.] 0. secs (0.u,0.s) -Chars 47614 - 47641 [(intros~E~S~R~f~r0~t0~Hrutt).] 0. secs (0.u,0.s) -Chars 47644 - 47658 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 47659 - 47668 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 47669 - 47695 [dependent~induction~Hrutt.] 0.038 secs (0.038u,0.s) -Chars 47698 - 47699 [-] 0. secs (0.u,0.s) -Chars 47700 - 47723 [(unfold~ITree.bind~in~x).] 0. secs (0.u,0.s) -Chars 47724 - 47749 [(unfold~observe~in~x~at~1).] 0. secs (0.u,0.s) -Chars 47750 - 47759 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 47764 - 47814 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) -Chars 47819 - 47828 [exists~r.] 0. secs (0.u,0.s) -Chars 47829 - 47834 [step.] 0.001 secs (0.001u,0.s) -Chars 47835 - 47847 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 47848 - 47860 [constructor.] 0. secs (0.u,0.s) -Chars 47861 - 47866 [auto.] 0. secs (0.u,0.s) -Chars 47869 - 47870 [-] 0. secs (0.u,0.s) -Chars 47871 - 47891 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 47892 - 47901 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 47902 - 47952 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) -Chars 47957 - 47958 [+] 0. secs (0.u,0.s) -Chars 47959 - 47968 [exists~r.] 0. secs (0.u,0.s) -Chars 47969 - 47974 [step.] 0.001 secs (0.001u,0.s) -Chars 47975 - 47987 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 47988 - 48000 [constructor.] 0. secs (0.u,0.s) -Chars 48001 - 48006 [auto.] 0. secs (0.u,0.s) -Chars 48011 - 48012 [+] 0. secs (0.u,0.s) -Chars 48013 - 48029 [symmetry~in~Ht0.] 0. secs (0.u,0.s) -Chars 48030 - 48051 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) -Chars 48052 - 48071 [setoid_rewrite~Ht0.] 0.001 secs (0.001u,0.s) -Chars 48072 - 48096 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 48103 - 48112 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 48113 - 48132 [injection~x~as~Ht2.] 0. secs (0.u,0.s) -Chars 48133 - 48154 [(eapply~IHHrutt;~auto).] 0.002 secs (0.002u,0.s) -Chars 48161 - 48167 [subst.] 0.001 secs (0.001u,0.s) -Chars 48168 - 48180 [reflexivity.] 0. secs (0.u,0.s) -Chars 48181 - 48185 [Qed.] 0.03 secs (0.03u,0.s) -Chars 48187 - 48435 [Lemma~decompose_trace_refine_b...] 0.001 secs (0.001u,0.s) -Chars 48436 - 48442 [Proof.] 0. secs (0.u,0.s) -Chars 48445 - 48487 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) -Chars 48490 - 48497 [(intros).] 0. secs (0.u,0.s) -Chars 48498 - 48525 [exists~(peel~classicT~b~t).] 0. secs (0.u,0.s) -Chars 48528 - 48569 [(apply~(peel_bind~classicT)~in...] 0. secs (0.u,0.s) -Chars 48570 - 48598 [(destruct~Heutt~as~[g~Heutt]).] 0. secs (0.u,0.s) -Chars 48601 - 48610 [exists~g.] 0. secs (0.u,0.s) -Chars 48611 - 48665 [(split;~auto;~eapply~(peel_ref...] 0. secs (0.u,0.s) -Chars 48666 - 48670 [Qed.] 0.001 secs (0.001u,0.s) -Chars 48672 - 48993 [Lemma~bind_trigger_refine~:~~~...] 0.001 secs (0.001u,0.s) -Chars 48994 - 49000 [Proof.] 0. secs (0.u,0.s) -Chars 49003 - 49010 [(intros).] 0. secs (0.u,0.s) -Chars 49011 - 49038 [(rewrite~bind_trigger~in~H0).] 0.005 secs (0.005u,0.s) -Chars 49039 - 49076 [(apply~trace_refine_vis~in~H0~...] 0. secs (0.u,0.s) -Chars 49079 - 49118 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) -Chars 49119 - 49140 [setoid_rewrite~Hbvis.] 0.008 secs (0.008u,0.s) -Chars 49143 - 49163 [(rewrite~Hbvis~in~H0).] 0.003 secs (0.003u,0.s) -Chars 49166 - 49177 [step~in~H0.] 0. secs (0.u,0.s) -Chars 49178 - 49187 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 49188 - 49195 [(inv~H0).] 0.011 secs (0.011u,0.s) -Chars 49196 - 49209 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 49210 - 49216 [subst.] 0. secs (0.u,0.s) -Chars 49217 - 49245 [(inv~H3;~ddestruction;~subst).] 0.012 secs (0.012u,0.s) -Chars 49248 - 49249 [-] 0. secs (0.u,0.s) -Chars 49250 - 49259 [exists~a.] 0. secs (0.u,0.s) -Chars 49260 - 49270 [exists~k'.] 0. secs (0.u,0.s) -Chars 49271 - 49294 [(split;~try~reflexivity).] 0. secs (0.u,0.s) -Chars 49300 - 49365 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 49370 - 49385 [(apply~H8~in~H0).] 0. secs (0.u,0.s) -Chars 49387 - 49392 [auto.] 0. secs (0.u,0.s) -Chars 49395 - 49396 [-] 0. secs (0.u,0.s) -Chars 49397 - 49417 [(destruct~H~as~[a~_]).] 0. secs (0.u,0.s) -Chars 49418 - 49432 [contradiction.] 0. secs (0.u,0.s) -Chars 49433 - 49437 [Qed.] 0.019 secs (0.019u,0.s) +Chars 43828 - 43840 [constructor.] 0. secs (0.u,0.s) +Chars 43841 - 43852 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 43854 - 43871 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 43872 - 43889 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 43894 - 43916 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 43917 - 43939 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 43940 - 43961 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 43962 - 43983 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 43988 - 44020 [(repeat~rewrite~tau_eutt~in~Hr...] 0.011 secs (0.01u,0.s) +Chars 44021 - 44027 [eauto.] 0. secs (0.u,0.s) +Chars 44030 - 44031 [-] 0. secs (0.u,0.s) +Chars 44032 - 44040 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 44041 - 44053 [constructor.] 0. secs (0.u,0.s) +Chars 44054 - 44070 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) +Chars 44071 - 44082 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 44088 - 44105 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 44106 - 44128 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 44129 - 44150 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 44155 - 44180 [(rewrite~tau_eutt~in~Href).] 0.003 secs (0.003u,0.s) +Chars 44181 - 44187 [eauto.] 0. secs (0.u,0.s) +Chars 44190 - 44191 [-] 0. secs (0.u,0.s) +Chars 44192 - 44200 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 44201 - 44251 [(destruct~e;~cbn;~rewrite~<-~H...] 0.001 secs (0.001u,0.s) +Chars 44254 - 44255 [-] 0. secs (0.u,0.s) +Chars 44256 - 44264 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 44265 - 44282 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 44283 - 44305 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 44310 - 44331 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) +Chars 44336 - 44376 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) +Chars 44377 - 44415 [(destruct~Hbt~as~[A~[e0~[k0~Hv...] 0.003 secs (0.003u,0.s) +Chars 44420 - 44437 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 44438 - 44460 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 44461 - 44482 [(rewrite~Heqt~in~Hvis).] 0.01 secs (0.01u,0.s) +Chars 44487 - 44512 [(rewrite~tau_eutt~in~Hvis).] 0.008 secs (0.008u,0.s) +Chars 44517 - 44612 [(assert~~~((exists~B,~exists~k...] 0.001 secs (0.001u,0.s) +Chars 44617 - 44618 [{] 0. secs (0.u,0.s) +Chars 44625 - 44638 [step~in~Hvis.] 0. secs (0.u,0.s) +Chars 44639 - 44655 [clear~Heqb~Heqt.] 0. secs (0.u,0.s) +Chars 44662 - 44687 [dependent~induction~Hvis.] 0.046 secs (0.045u,0.s) +Chars 44694 - 44695 [-] 0. secs (0.u,0.s) +Chars 44696 - 44716 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 44717 - 44726 [(cbn~in~*).] 0.002 secs (0.002u,0.s) +Chars 44727 - 44779 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 44788 - 44789 [+] 0. secs (0.u,0.s) +Chars 44790 - 44796 [right.] 0. secs (0.u,0.s) +Chars 44797 - 44806 [exists~r.] 0. secs (0.u,0.s) +Chars 44807 - 44812 [step.] 0.001 secs (0.001u,0.s) +Chars 44813 - 44817 [(cbn).] 0. secs (0.u,0.s) +Chars 44818 - 44832 [(rewrite~Heqt0).] 0. secs (0.u,0.s) +Chars 44833 - 44849 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 44858 - 44859 [+] 0. secs (0.u,0.s) +Chars 44860 - 44869 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 44870 - 44875 [left.] 0. secs (0.u,0.s) +Chars 44876 - 44886 [exists~X0.] 0. secs (0.u,0.s) +Chars 44887 - 44897 [exists~k2.] 0. secs (0.u,0.s) +Chars 44898 - 44908 [exists~e1.] 0. secs (0.u,0.s) +Chars 44909 - 44927 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) +Chars 44938 - 44961 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) +Chars 44962 - 44976 [(rewrite~Heqt0).] 0.001 secs (0.001u,0.s) +Chars 44977 - 44989 [reflexivity.] 0. secs (0.u,0.s) +Chars 44996 - 44997 [-] 0. secs (0.u,0.s) +Chars 44998 - 45018 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 45019 - 45028 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 45029 - 45081 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 45090 - 45091 [+] 0. secs (0.u,0.s) +Chars 45092 - 45098 [right.] 0. secs (0.u,0.s) +Chars 45099 - 45108 [exists~r.] 0. secs (0.u,0.s) +Chars 45109 - 45114 [step.] 0.001 secs (0.001u,0.s) +Chars 45115 - 45119 [(cbn).] 0. secs (0.u,0.s) +Chars 45120 - 45134 [(rewrite~Heqt0).] 0. secs (0.u,0.s) +Chars 45135 - 45151 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 45160 - 45161 [+] 0. secs (0.u,0.s) +Chars 45162 - 45181 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 45182 - 45200 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) +Chars 45201 - 45224 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) +Chars 45235 - 45256 [setoid_rewrite~Heqt0.] 0.01 secs (0.01u,0.s) +Chars 45257 - 45281 [setoid_rewrite~tau_eutt.] 0.015 secs (0.015u,0.s) +Chars 45282 - 45303 [(eapply~IHHvis;~eauto).] 0.003 secs (0.003u,0.s) +Chars 45314 - 45326 [(rewrite~Ht1).] 0. secs (0.u,0.s) +Chars 45327 - 45332 [auto.] 0. secs (0.u,0.s) +Chars 45337 - 45338 [}] 0. secs (0.u,0.s) +Chars 45343 - 45391 [(destruct~H~as~[[B~[k'~[e1~Ht0...] 0. secs (0.u,0.s) +Chars 45396 - 45397 [+] 0. secs (0.u,0.s) +Chars 45398 - 45419 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45420 - 45445 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45452 - 45472 [(rewrite~Ht0~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45473 - 45498 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45505 - 45515 [sinv~Href.] 0.018 secs (0.018u,0.s) +Chars 45516 - 45543 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 45550 - 45570 [(rewrite~Ht0~in~Hvis).] 0.01 secs (0.01u,0.s) +Chars 45571 - 45596 [(rewrite~bind_vis~in~Hvis).] 0.01 secs (0.01u,0.s) +Chars 45597 - 45607 [sinv~Hvis.] 0.018 secs (0.017u,0.s) +Chars 45614 - 45641 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 45642 - 45658 [clear~Heqt~Heqb.] 0. secs (0.u,0.s) +Chars 45665 - 45677 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 45678 - 45687 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 45694 - 45705 [(destruct~e).] 0. secs (0.u,0.s) +Chars 45712 - 45713 [*] 0. secs (0.u,0.s) +Chars 45714 - 45721 [(inv~H1).] 0.014 secs (0.014u,0.s) +Chars 45722 - 45742 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 45743 - 45747 [(cbn).] 0. secs (0.u,0.s) +Chars 45748 - 45760 [constructor.] 0. secs (0.u,0.s) +Chars 45769 - 45817 [(eapply~trace_prefix_vis_evans...] 0.001 secs (0.001u,0.s) +Chars 45826 - 45835 [now~step.] 0.001 secs (0.001u,0.s) +Chars 45843 - 45844 [*] 0. secs (0.u,0.s) +Chars 45845 - 45884 [(eapply~trace_prefix_vis_evemp...] 0. secs (0.u,0.s) +Chars 45889 - 45890 [+] 0. secs (0.u,0.s) +Chars 45891 - 45912 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 45913 - 45933 [(rewrite~Ht0~in~Href).] 0.005 secs (0.005u,0.s) +Chars 45940 - 45965 [(rewrite~tau_eutt~in~Href).] 0.006 secs (0.005u,0.s) +Chars 45966 - 45993 [(rewrite~bind_ret_l~in~Href).] 0.003 secs (0.003u,0.s) +Chars 45994 - 46005 [clear~Hvis.] 0. secs (0.u,0.s) +Chars 46012 - 46023 [(destruct~e).] 0. secs (0.u,0.s) +Chars 46030 - 46031 [*] 0. secs (0.u,0.s) +Chars 46032 - 46036 [(cbn).] 0. secs (0.u,0.s) +Chars 46037 - 46049 [constructor.] 0. secs (0.u,0.s) +Chars 46050 - 46090 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) +Chars 46097 - 46098 [*] 0. secs (0.u,0.s) +Chars 46099 - 46103 [(cbn).] 0. secs (0.u,0.s) +Chars 46104 - 46116 [constructor.] 0. secs (0.u,0.s) +Chars 46117 - 46163 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) +Chars 46166 - 46167 [-] 0. secs (0.u,0.s) +Chars 46168 - 46212 [(destruct~e;~cbn;~simpobs;~[~~...] 0.005 secs (0.005u,0.s) +Chars 46217 - 46234 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 46235 - 46257 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) +Chars 46258 - 46279 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) +Chars 46284 - 46309 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) +Chars 46310 - 46327 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 46328 - 46350 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) +Chars 46355 - 46376 [(rewrite~Heqb~in~Href).] 0.005 secs (0.005u,0.s) +Chars 46377 - 46387 [sinv~Href.] 0.015 secs (0.015u,0.s) +Chars 46388 - 46415 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 46420 - 46433 [(inversion~H1).] 0.003 secs (0.003u,0.s) +Chars 46434 - 46454 [(ddestruction;~subst).] 0.006 secs (0.005u,0.s) +Chars 46459 - 46479 [(unfold~observe~at~1).] 0. secs (0.u,0.s) +Chars 46480 - 46484 [(cbn).] 0. secs (0.u,0.s) +Chars 46485 - 46501 [(unfold~peel_vis).] 0. secs (0.u,0.s) +Chars 46502 - 46523 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) +Chars 46528 - 46576 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) +Chars 46581 - 46607 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) +Chars 46608 - 46634 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 46639 - 46664 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 46665 - 46669 [(cbn).] 0. secs (0.u,0.s) +Chars 46670 - 46682 [constructor.] 0. secs (0.u,0.s) +Chars 46683 - 46694 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 46700 - 46720 [(ddestruction;~subst).] 0. secs (0.u,0.s) +Chars 46725 - 46796 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 46801 - 46816 [(apply~H6~in~H0).] 0. secs (0.u,0.s) +Chars 46818 - 46824 [eauto.] 0. secs (0.u,0.s) +Chars 46825 - 46829 [Qed.] 0.143 secs (0.14u,0.002s) +Chars 46831 - 47038 [Lemma~peel_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 47039 - 47045 [Proof.] 0. secs (0.u,0.s) +Chars 47048 - 47055 [(intros).] 0. secs (0.u,0.s) +Chars 47056 - 47080 [(apply~trace_prefix_bind).] 0. secs (0.u,0.s) +Chars 47081 - 47113 [(eapply~trace_prefix_peel;~eau...] 0. secs (0.u,0.s) +Chars 47114 - 47118 [Qed.] 0. secs (0.u,0.s) +Chars 47120 - 47283 [Lemma~peel_lemma~:~~~forall~E~...] 0. secs (0.u,0.s) +Chars 47284 - 47290 [Proof.] 0. secs (0.u,0.s) +Chars 47293 - 47300 [(intros).] 0. secs (0.u,0.s) +Chars 47301 - 47373 [(split;~try~eapply~peel_refine...] 0. secs (0.u,0.s) +Chars 47374 - 47378 [Qed.] 0. secs (0.u,0.s) +Chars 47380 - 47389 [End~Peel.] 0.008 secs (0.008u,0.s) +Chars 47391 - 47574 [Lemma~bind_peel_ret_tau_aux~:~...] 0. secs (0.u,0.s) +Chars 47575 - 47581 [Proof.] 0. secs (0.u,0.s) +Chars 47584 - 47611 [(intros~E~S~R~f~r0~t0~Hrutt).] 0. secs (0.u,0.s) +Chars 47614 - 47628 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 47629 - 47638 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 47639 - 47665 [dependent~induction~Hrutt.] 0.038 secs (0.037u,0.s) +Chars 47668 - 47669 [-] 0. secs (0.u,0.s) +Chars 47670 - 47693 [(unfold~ITree.bind~in~x).] 0. secs (0.u,0.s) +Chars 47694 - 47719 [(unfold~observe~in~x~at~1).] 0. secs (0.u,0.s) +Chars 47720 - 47729 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 47734 - 47784 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) +Chars 47789 - 47798 [exists~r.] 0. secs (0.u,0.s) +Chars 47799 - 47804 [step.] 0.001 secs (0.001u,0.s) +Chars 47805 - 47817 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 47818 - 47830 [constructor.] 0. secs (0.u,0.s) +Chars 47831 - 47836 [auto.] 0. secs (0.u,0.s) +Chars 47839 - 47840 [-] 0. secs (0.u,0.s) +Chars 47841 - 47861 [(unfold~observe~in~x).] 0. secs (0.u,0.s) +Chars 47862 - 47871 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 47872 - 47922 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) +Chars 47927 - 47928 [+] 0. secs (0.u,0.s) +Chars 47929 - 47938 [exists~r.] 0. secs (0.u,0.s) +Chars 47939 - 47944 [step.] 0.001 secs (0.001u,0.s) +Chars 47945 - 47957 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 47958 - 47970 [constructor.] 0. secs (0.u,0.s) +Chars 47971 - 47976 [auto.] 0. secs (0.u,0.s) +Chars 47981 - 47982 [+] 0. secs (0.u,0.s) +Chars 47983 - 47999 [symmetry~in~Ht0.] 0. secs (0.u,0.s) +Chars 48000 - 48021 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) +Chars 48022 - 48041 [setoid_rewrite~Ht0.] 0.001 secs (0.001u,0.s) +Chars 48042 - 48066 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 48073 - 48082 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 48083 - 48102 [injection~x~as~Ht2.] 0. secs (0.u,0.s) +Chars 48103 - 48124 [(eapply~IHHrutt;~auto).] 0.002 secs (0.002u,0.s) +Chars 48131 - 48137 [subst.] 0.001 secs (0.001u,0.s) +Chars 48138 - 48150 [reflexivity.] 0. secs (0.u,0.s) +Chars 48151 - 48155 [Qed.] 0.03 secs (0.03u,0.s) +Chars 48157 - 48405 [Lemma~decompose_trace_refine_b...] 0.001 secs (0.001u,0.s) +Chars 48406 - 48412 [Proof.] 0. secs (0.u,0.s) +Chars 48415 - 48457 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) +Chars 48460 - 48467 [(intros).] 0. secs (0.u,0.s) +Chars 48468 - 48495 [exists~(peel~classicT~b~t).] 0. secs (0.u,0.s) +Chars 48498 - 48539 [(apply~(peel_bind~classicT)~in...] 0. secs (0.u,0.s) +Chars 48540 - 48568 [(destruct~Heutt~as~[g~Heutt]).] 0. secs (0.u,0.s) +Chars 48571 - 48580 [exists~g.] 0. secs (0.u,0.s) +Chars 48581 - 48635 [(split;~auto;~eapply~(peel_ref...] 0. secs (0.u,0.s) +Chars 48636 - 48640 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48642 - 48963 [Lemma~bind_trigger_refine~:~~~...] 0.001 secs (0.001u,0.s) +Chars 48964 - 48970 [Proof.] 0. secs (0.u,0.s) +Chars 48973 - 48980 [(intros).] 0. secs (0.u,0.s) +Chars 48981 - 49008 [(rewrite~bind_trigger~in~H0).] 0.005 secs (0.005u,0.s) +Chars 49009 - 49046 [(apply~trace_refine_vis~in~H0~...] 0. secs (0.u,0.s) +Chars 49049 - 49088 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) +Chars 49089 - 49110 [setoid_rewrite~Hbvis.] 0.008 secs (0.008u,0.s) +Chars 49113 - 49133 [(rewrite~Hbvis~in~H0).] 0.003 secs (0.003u,0.s) +Chars 49136 - 49147 [step~in~H0.] 0. secs (0.u,0.s) +Chars 49148 - 49157 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 49158 - 49165 [(inv~H0).] 0.011 secs (0.011u,0.s) +Chars 49166 - 49179 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 49180 - 49186 [subst.] 0. secs (0.u,0.s) +Chars 49187 - 49215 [(inv~H3;~ddestruction;~subst).] 0.012 secs (0.012u,0.s) +Chars 49218 - 49219 [-] 0. secs (0.u,0.s) +Chars 49220 - 49229 [exists~a.] 0. secs (0.u,0.s) +Chars 49230 - 49240 [exists~k'.] 0. secs (0.u,0.s) +Chars 49241 - 49264 [(split;~try~reflexivity).] 0. secs (0.u,0.s) +Chars 49270 - 49335 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 49340 - 49355 [(apply~H8~in~H0).] 0. secs (0.u,0.s) +Chars 49357 - 49362 [auto.] 0. secs (0.u,0.s) +Chars 49365 - 49366 [-] 0. secs (0.u,0.s) +Chars 49367 - 49387 [(destruct~H~as~[a~_]).] 0. secs (0.u,0.s) +Chars 49388 - 49402 [contradiction.] 0. secs (0.u,0.s) +Chars 49403 - 49407 [Qed.] 0.019 secs (0.019u,0.s) diff --git a/extra/ITrace/ITraceDefinition.v.timing b/extra/ITrace/ITraceDefinition.v.timing index c015213e..7498c825 100644 --- a/extra/ITrace/ITraceDefinition.v.timing +++ b/extra/ITrace/ITraceDefinition.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.25 secs (0.212u,0.036s) -Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.009 secs (0.007u,0.001s) +Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.228 secs (0.196u,0.029s) +Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.009 secs (0.008u,0.001s) Chars 122 - 136 [Import~Monads.] 0. secs (0.u,0.s) Chars 137 - 158 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 159 - 188 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -11,7 +11,7 @@ Chars 572 - 643 [Definition~itrace'~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 645 - 702 [Definition~ev_stream~(E~:~Type...] 0. secs (0.u,0.s) Chars 704 - 762 [Definition~Nil~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) Chars 764 - 825 [Definition~ev_list~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 827 - 996 [Fixpoint~ev_list_to_stream~{E~...] 0.001 secs (0.u,0.s) +Chars 827 - 996 [Fixpoint~ev_list_to_stream~{E~...] 0. secs (0.u,0.s) Chars 1079 - 1171 [Definition~append~{E}~{R}~(s~:...] 0. secs (0.u,0.s) Chars 1173 - 1207 [Notation~"s~++~b"~:=~(append~s...] 0. secs (0.u,0.s) Chars 1209 - 1457 [Variant~REvRef~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceFacts.v.timing b/extra/ITrace/ITraceFacts.v.timing index 2ada4e6c..8205d019 100644 --- a/extra/ITrace/ITraceFacts.v.timing +++ b/extra/ITrace/ITraceFacts.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 89 - 216 [From~ITree~Require~Import~Util...] 0.245 secs (0.215u,0.029s) -Chars 218 - 280 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.u,0.s) +Chars 89 - 216 [From~ITree~Require~Import~Util...] 0.262 secs (0.219u,0.039s) +Chars 218 - 280 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.001u,0.s) Chars 282 - 305 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 308 - 322 [Import~Monads.] 0. secs (0.u,0.s) Chars 323 - 344 [Import~MonadNotation.] 0. secs (0.u,0.s) @@ -31,31 +31,31 @@ Chars 934 - 938 [Qed.] 0.003 secs (0.002u,0.s) Chars 940 - 1020 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0. secs (0.u,0.s) Chars 1021 - 1027 [Proof.] 0. secs (0.u,0.s) Chars 1030 - 1039 [(intros~x).] 0. secs (0.u,0.s) -Chars 1040 - 1052 [(inversion~x).] 0.036 secs (0.032u,0.003s) +Chars 1040 - 1052 [(inversion~x).] 0.037 secs (0.032u,0.004s) Chars 1055 - 1056 [-] 0. secs (0.u,0.s) -Chars 1057 - 1070 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 1057 - 1070 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 1071 - 1092 [(eexists;~reflexivity).] 0. secs (0.u,0.s) Chars 1095 - 1096 [-] 0. secs (0.u,0.s) Chars 1097 - 1136 [(enough~(unit~->~void)~by~cont...] 0. secs (0.u,0.s) Chars 1137 - 1148 [(destruct~H).] 0. secs (0.u,0.s) Chars 1149 - 1154 [auto.] 0. secs (0.u,0.s) -Chars 1155 - 1159 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1155 - 1159 [Qed.] 0.003 secs (0.003u,0.s) Chars 1161 - 1338 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) Chars 1339 - 1345 [Proof.] 0. secs (0.u,0.s) Chars 1348 - 1355 [(intros).] 0. secs (0.u,0.s) Chars 1356 - 1376 [(induction~H;~inv~H0).] 0.007 secs (0.007u,0.s) Chars 1380 - 1381 [-] 0. secs (0.u,0.s) -Chars 1382 - 1398 [(rewrite~H~in~H1).] 0.06 secs (0.059u,0.s) +Chars 1382 - 1398 [(rewrite~H~in~H1).] 0.062 secs (0.06u,0.001s) Chars 1399 - 1407 [sinv~H1.] 0.003 secs (0.003u,0.s) Chars 1410 - 1411 [-] 0. secs (0.u,0.s) -Chars 1412 - 1428 [(rewrite~H~in~H1).] 0.02 secs (0.019u,0.s) +Chars 1412 - 1428 [(rewrite~H~in~H1).] 0.022 secs (0.021u,0.001s) Chars 1429 - 1437 [sinv~H1.] 0.003 secs (0.003u,0.s) Chars 1440 - 1441 [-] 0. secs (0.u,0.s) Chars 1442 - 1453 [(destruct~e).] 0. secs (0.u,0.s) Chars 1454 - 1465 [(destruct~b).] 0. secs (0.u,0.s) Chars 1466 - 1487 [(apply~IHmay_converge).] 0. secs (0.u,0.s) Chars 1492 - 1493 [+] 0. secs (0.u,0.s) -Chars 1494 - 1510 [(rewrite~H~in~H2).] 0.017 secs (0.017u,0.s) +Chars 1494 - 1510 [(rewrite~H~in~H2).] 0.019 secs (0.018u,0.s) Chars 1511 - 1519 [sinv~H2.] 0.006 secs (0.006u,0.s) Chars 1525 - 1526 [+] 0. secs (0.u,0.s) Chars 1527 - 1539 [contra_void.] 0. secs (0.u,0.s) @@ -65,14 +65,14 @@ Chars 1579 - 1608 [(destruct~e0;~try~contra_void).] 0. secs (0.u,0.s) Chars 1613 - 1624 [(destruct~b).] 0. secs (0.u,0.s) Chars 1625 - 1637 [(destruct~b0).] 0. secs (0.u,0.s) Chars 1642 - 1663 [(apply~IHmay_converge).] 0. secs (0.u,0.s) -Chars 1664 - 1680 [(rewrite~H~in~H2).] 0.018 secs (0.018u,0.s) -Chars 1685 - 1693 [sinv~H2.] 0.01 secs (0.01u,0.s) +Chars 1664 - 1680 [(rewrite~H~in~H2).] 0.02 secs (0.019u,0.s) +Chars 1685 - 1693 [sinv~H2.] 0.011 secs (0.01u,0.s) Chars 1694 - 1707 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 1712 - 1718 [subst.] 0. secs (0.u,0.s) Chars 1719 - 1758 [(enough~(k~tt~≈~k0~tt);~try~ap...] 0. secs (0.u,0.s) -Chars 1763 - 1774 [(rewrite~H0).] 0.005 secs (0.005u,0.s) +Chars 1763 - 1774 [(rewrite~H0).] 0.006 secs (0.006u,0.s) Chars 1775 - 1780 [auto.] 0. secs (0.u,0.s) -Chars 1781 - 1785 [Qed.] 0.02 secs (0.02u,0.s) +Chars 1781 - 1785 [Qed.] 0.021 secs (0.021u,0.s) Chars 1787 - 1841 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 1842 - 1848 [Proof.] 0. secs (0.u,0.s) Chars 1851 - 1866 [(apply~conv_ret).] 0. secs (0.u,0.s) @@ -111,7 +111,7 @@ Chars 2421 - 2433 [(inversion~e).] 0. secs (0.u,0.s) Chars 2434 - 2440 [subst.] 0. secs (0.u,0.s) Chars 2445 - 2463 [exists~(cons~e~l).] 0. secs (0.u,0.s) Chars 2464 - 2470 [(simpl).] 0. secs (0.u,0.s) -Chars 2471 - 2481 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 2471 - 2481 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 2486 - 2497 [(destruct~b).] 0. secs (0.u,0.s) Chars 2503 - 2518 [(apply~eqit_Vis).] 0. secs (0.u,0.s) Chars 2524 - 2531 [(intros).] 0. secs (0.u,0.s) @@ -134,19 +134,19 @@ Chars 2977 - 3008 [(intros~log1~log2~Hlog~b1~b2~Hb).] 0. secs (0.u,0.s) Chars 3009 - 3023 [(unfold~append).] 0. secs (0.u,0.s) Chars 3024 - 3037 [(rewrite~Hlog).] 0.002 secs (0.002u,0.s) Chars 3040 - 3069 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3070 - 3074 [Qed.] 0.005 secs (0.004u,0.s) +Chars 3070 - 3074 [Qed.] 0.004 secs (0.004u,0.s) Chars 3076 - 3248 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) Chars 3249 - 3255 [Proof.] 0. secs (0.u,0.s) Chars 3258 - 3265 [(intros).] 0. secs (0.u,0.s) Chars 3266 - 3278 [(induction~H).] 0. secs (0.u,0.s) Chars 3281 - 3282 [-] 0. secs (0.u,0.s) Chars 3283 - 3297 [(unfold~append).] 0. secs (0.u,0.s) -Chars 3298 - 3308 [(rewrite~H).] 0.009 secs (0.009u,0.s) +Chars 3298 - 3308 [(rewrite~H).] 0.009 secs (0.008u,0.s) Chars 3309 - 3328 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 3333 - 3345 [constructor.] 0. secs (0.u,0.s) Chars 3346 - 3358 [reflexivity.] 0. secs (0.u,0.s) Chars 3361 - 3362 [-] 0. secs (0.u,0.s) -Chars 3363 - 3373 [(rewrite~H).] 0.006 secs (0.006u,0.s) +Chars 3363 - 3373 [(rewrite~H).] 0.005 secs (0.005u,0.s) Chars 3374 - 3386 [(inversion~e).] 0. secs (0.u,0.s) Chars 3387 - 3393 [subst.] 0. secs (0.u,0.s) Chars 3394 - 3413 [(rewrite~append_vis).] 0.006 secs (0.006u,0.s) @@ -155,7 +155,7 @@ Chars 3459 - 3465 [(simpl).] 0. secs (0.u,0.s) Chars 3466 - 3472 [eauto.] 0. secs (0.u,0.s) Chars 3477 - 3483 [subst.] 0. secs (0.u,0.s) Chars 3484 - 3498 [contradiction.] 0. secs (0.u,0.s) -Chars 3499 - 3503 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3499 - 3503 [Qed.] 0.002 secs (0.002u,0.s) Chars 3505 - 3718 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) Chars 3719 - 3725 [Proof.] 0. secs (0.u,0.s) Chars 3728 - 3735 [(intros).] 0. secs (0.u,0.s) @@ -173,7 +173,7 @@ Chars 3847 - 3859 [(inversion~e).] 0. secs (0.u,0.s) Chars 3860 - 3866 [subst.] 0. secs (0.u,0.s) Chars 3871 - 3891 [exists~(cons~e~log).] 0. secs (0.u,0.s) Chars 3892 - 3896 [(cbn).] 0. secs (0.u,0.s) -Chars 3897 - 3916 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) +Chars 3897 - 3916 [(rewrite~append_vis).] 0.002 secs (0.002u,0.s) Chars 3917 - 3927 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 3932 - 3937 [step.] 0.002 secs (0.002u,0.s) Chars 3938 - 3950 [constructor.] 0. secs (0.u,0.s) @@ -183,7 +183,7 @@ Chars 3977 - 3988 [(destruct~b).] 0. secs (0.u,0.s) Chars 3989 - 4000 [(apply~Hlog).] 0. secs (0.u,0.s) Chars 4001 - 4007 [subst.] 0. secs (0.u,0.s) Chars 4008 - 4022 [contradiction.] 0. secs (0.u,0.s) -Chars 4023 - 4027 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4023 - 4027 [Qed.] 0.005 secs (0.005u,0.s) Chars 4029 - 4211 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) Chars 4212 - 4218 [Proof.] 0. secs (0.u,0.s) Chars 4221 - 4228 [(intros).] 0. secs (0.u,0.s) @@ -209,13 +209,13 @@ Chars 4850 - 4864 [(induction~log).] 0. secs (0.u,0.s) Chars 4867 - 4868 [-] 0. secs (0.u,0.s) Chars 4869 - 4875 [(simpl).] 0. secs (0.u,0.s) Chars 4876 - 4883 [(intros).] 0. secs (0.u,0.s) -Chars 4884 - 4903 [(rewrite~append_nil).] 0.001 secs (0.001u,0.s) +Chars 4884 - 4903 [(rewrite~append_nil).] 0. secs (0.u,0.s) Chars 4904 - 4916 [reflexivity.] 0. secs (0.u,0.s) Chars 4919 - 4920 [-] 0. secs (0.u,0.s) Chars 4921 - 4925 [(cbn).] 0. secs (0.u,0.s) Chars 4926 - 4933 [(intros).] 0. secs (0.u,0.s) -Chars 4934 - 4953 [(rewrite~append_vis).] 0.003 secs (0.003u,0.s) -Chars 4954 - 4975 [setoid_rewrite~IHlog.] 0.004 secs (0.004u,0.s) +Chars 4934 - 4953 [(rewrite~append_vis).] 0.002 secs (0.002u,0.s) +Chars 4954 - 4975 [setoid_rewrite~IHlog.] 0.004 secs (0.003u,0.s) Chars 4980 - 4999 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) Chars 5000 - 5012 [reflexivity.] 0. secs (0.u,0.s) Chars 5013 - 5017 [Qed.] 0.003 secs (0.003u,0.s) @@ -248,7 +248,7 @@ Chars 5678 - 5692 [(destruct~log2).] 0. secs (0.u,0.s) Chars 5697 - 5698 [+] 0. secs (0.u,0.s) Chars 5699 - 5711 [(split;~auto).] 0. secs (0.u,0.s) Chars 5712 - 5721 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 5722 - 5729 [sinv~H.] 0.004 secs (0.004u,0.s) +Chars 5722 - 5729 [sinv~H.] 0.004 secs (0.003u,0.s) Chars 5735 - 5736 [+] 0. secs (0.u,0.s) Chars 5737 - 5744 [sinv~H.] 0.003 secs (0.003u,0.s) Chars 5747 - 5748 [-] 0. secs (0.u,0.s) @@ -258,7 +258,7 @@ Chars 5770 - 5777 [sinv~H.] 0.006 secs (0.006u,0.s) Chars 5782 - 5783 [+] 0. secs (0.u,0.s) Chars 5784 - 5793 [(cbn~in~H).] 0. secs (0.u,0.s) Chars 5794 - 5813 [(unfold~append~in~H).] 0. secs (0.u,0.s) -Chars 5814 - 5821 [sinv~H.] 0.009 secs (0.009u,0.s) +Chars 5814 - 5821 [sinv~H.] 0.01 secs (0.009u,0.s) Chars 5822 - 5831 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 5832 - 5845 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 5852 - 5884 [(enough~(log1~=~log2~/\~r1~=~r...] 0. secs (0.u,0.s) @@ -270,8 +270,8 @@ Chars 5918 - 5919 [}] 0. secs (0.u,0.s) Chars 5926 - 5939 [(apply~IHlog1).] 0. secs (0.u,0.s) Chars 5940 - 5950 [(apply~REL).] 0. secs (0.u,0.s) Chars 5951 - 5960 [(apply~tt).] 0. secs (0.u,0.s) -Chars 5961 - 5965 [Qed.] 0.022 secs (0.022u,0.s) -Chars 5967 - 6255 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) +Chars 5961 - 5965 [Qed.] 0.021 secs (0.02u,0.s) +Chars 5967 - 6255 [Lemma~trace_refine_proper_left...] 0.001 secs (0.001u,0.s) Chars 6256 - 6262 [Proof.] 0. secs (0.u,0.s) Chars 6265 - 6276 [(intros~E~R).] 0. secs (0.u,0.s) Chars 6277 - 6296 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) @@ -304,12 +304,12 @@ Chars 6859 - 6877 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 6885 - 6904 [(apply~rutt_inv_Tau).] 0. secs (0.u,0.s) Chars 6905 - 6914 [now~step.] 0.001 secs (0.001u,0.s) Chars 6921 - 6922 [+] 0. secs (0.u,0.s) -Chars 6923 - 6969 [(inv~H0;~try~(exfalso;~eapply~...] 0.038 secs (0.038u,0.s) +Chars 6923 - 6969 [(inv~H0;~try~(exfalso;~eapply~...] 0.04 secs (0.039u,0.s) Chars 6977 - 6989 [constructor.] 0. secs (0.u,0.s) Chars 6997 - 7009 [step~in~REL.] 0. secs (0.u,0.s) Chars 7018 - 7097 [(hinduction~H1~before~CIH;~int...] 0.004 secs (0.004u,0.s) Chars 7105 - 7106 [*] 0. secs (0.u,0.s) -Chars 7107 - 7145 [(dependent~induction~REL;~rewr...] 0.054 secs (0.053u,0.s) +Chars 7107 - 7145 [(dependent~induction~REL;~rewr...] 0.055 secs (0.054u,0.s) Chars 7155 - 7157 [++] 0. secs (0.u,0.s) Chars 7158 - 7170 [constructor.] 0. secs (0.u,0.s) Chars 7171 - 7176 [auto.] 0. secs (0.u,0.s) @@ -317,7 +317,7 @@ Chars 7186 - 7188 [++] 0. secs (0.u,0.s) Chars 7189 - 7201 [constructor.] 0. secs (0.u,0.s) Chars 7202 - 7222 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) Chars 7230 - 7231 [*] 0. secs (0.u,0.s) -Chars 7232 - 7270 [(dependent~induction~REL;~rewr...] 0.08 secs (0.079u,0.s) +Chars 7232 - 7270 [(dependent~induction~REL;~rewr...] 0.078 secs (0.077u,0.001s) Chars 7280 - 7282 [++] 0. secs (0.u,0.s) Chars 7283 - 7301 [(constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 7302 - 7309 [(intros).] 0. secs (0.u,0.s) @@ -327,11 +327,11 @@ Chars 7351 - 7361 [(apply~REL).] 0. secs (0.u,0.s) Chars 7362 - 7373 [assumption.] 0. secs (0.u,0.s) Chars 7384 - 7386 [++] 0. secs (0.u,0.s) Chars 7387 - 7399 [constructor.] 0. secs (0.u,0.s) -Chars 7400 - 7420 [(eapply~IHREL;~eauto).] 0.006 secs (0.006u,0.s) +Chars 7400 - 7420 [(eapply~IHREL;~eauto).] 0.005 secs (0.005u,0.s) Chars 7428 - 7429 [*] 0. secs (0.u,0.s) -Chars 7430 - 7452 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7430 - 7452 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 7453 - 7467 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 7477 - 7540 [(dependent~induction~REL;~try~...] 0.063 secs (0.062u,0.s) +Chars 7477 - 7540 [(dependent~induction~REL;~try~...] 0.063 secs (0.061u,0.001s) Chars 7550 - 7552 [++] 0. secs (0.u,0.s) Chars 7553 - 7566 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 7567 - 7585 [(constructor;~auto).] 0. secs (0.u,0.s) @@ -340,11 +340,11 @@ Chars 7608 - 7610 [++] 0. secs (0.u,0.s) Chars 7611 - 7616 [auto.] 0. secs (0.u,0.s) Chars 7626 - 7628 [++] 0. secs (0.u,0.s) Chars 7629 - 7642 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7643 - 7661 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 7643 - 7661 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 7662 - 7682 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) Chars 7685 - 7686 [-] 0. secs (0.u,0.s) Chars 7687 - 7715 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 7720 - 7783 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) +Chars 7720 - 7783 [(hinduction~H0~before~CIH;~int...] 0.019 secs (0.019u,0.s) Chars 7788 - 7789 [+] 0. secs (0.u,0.s) Chars 7790 - 7808 [(constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 7809 - 7816 [(intros).] 0. secs (0.u,0.s) @@ -358,7 +358,7 @@ Chars 7894 - 7916 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 7919 - 7920 [-] 0. secs (0.u,0.s) Chars 7921 - 7943 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) Chars 7944 - 7971 [(remember~(TauF~t1)~as~otf1).] 0.001 secs (0.001u,0.s) -Chars 7976 - 8047 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) +Chars 7976 - 8047 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.019u,0.s) Chars 8052 - 8053 [+] 0. secs (0.u,0.s) Chars 8054 - 8066 [constructor.] 0. secs (0.u,0.s) Chars 8067 - 8078 [now~unstep.] 0.001 secs (0.001u,0.s) @@ -368,7 +368,7 @@ Chars 8099 - 8121 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) Chars 8124 - 8125 [-] 0. secs (0.u,0.s) Chars 8126 - 8138 [constructor.] 0. secs (0.u,0.s) Chars 8139 - 8161 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 8162 - 8166 [Qed.] 0.191 secs (0.188u,0.002s) +Chars 8162 - 8166 [Qed.] 0.185 secs (0.18u,0.004s) Chars 8168 - 8461 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) Chars 8462 - 8468 [Proof.] 0. secs (0.u,0.s) Chars 8471 - 8482 [(intros~E~R).] 0. secs (0.u,0.s) @@ -381,7 +381,7 @@ Chars 8558 - 8578 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) Chars 8581 - 8637 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) Chars 8640 - 8641 [-] 0. secs (0.u,0.s) Chars 8642 - 8668 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 8669 - 8731 [(hinduction~H0~before~CIH;~int...] 0.023 secs (0.023u,0.s) +Chars 8669 - 8731 [(hinduction~H0~before~CIH;~int...] 0.023 secs (0.022u,0.s) Chars 8736 - 8737 [+] 0. secs (0.u,0.s) Chars 8738 - 8756 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 8761 - 8762 [+] 0. secs (0.u,0.s) @@ -389,7 +389,7 @@ Chars 8763 - 8775 [constructor.] 0. secs (0.u,0.s) Chars 8776 - 8782 [eauto.] 0. secs (0.u,0.s) Chars 8785 - 8786 [-] 0. secs (0.u,0.s) Chars 8787 - 8814 [(remember~(TauF~m1)~as~otm1).] 0.001 secs (0.001u,0.s) -Chars 8819 - 8878 [(hinduction~H0~before~CIH;~int...] 0.023 secs (0.022u,0.s) +Chars 8819 - 8878 [(hinduction~H0~before~CIH;~int...] 0.021 secs (0.02u,0.s) Chars 8883 - 8884 [+] 0. secs (0.u,0.s) Chars 8885 - 8897 [constructor.] 0. secs (0.u,0.s) Chars 8898 - 8916 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) @@ -400,11 +400,11 @@ Chars 8961 - 8982 [(apply~rutt_inv_Tau_r).] 0. secs (0.u,0.s) Chars 8983 - 8992 [now~step.] 0.001 secs (0.001u,0.s) Chars 8998 - 8999 [+] 0. secs (0.u,0.s) Chars 9000 - 9012 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9020 - 9051 [(dependent~induction~REL;~subst).] 0.045 secs (0.045u,0.s) +Chars 9020 - 9051 [(dependent~induction~REL;~subst).] 0.044 secs (0.043u,0.s) Chars 9058 - 9059 [*] 0. secs (0.u,0.s) Chars 9060 - 9072 [constructor.] 0. secs (0.u,0.s) Chars 9073 - 9087 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9096 - 9155 [(hinduction~H0~before~CIH;~int...] 0.013 secs (0.013u,0.s) +Chars 9096 - 9155 [(hinduction~H0~before~CIH;~int...] 0.012 secs (0.012u,0.s) Chars 9164 - 9166 [++] 0. secs (0.u,0.s) Chars 9167 - 9180 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9181 - 9193 [constructor.] 0. secs (0.u,0.s) @@ -423,7 +423,7 @@ Chars 9354 - 9355 [*] 0. secs (0.u,0.s) Chars 9356 - 9368 [constructor.] 0. secs (0.u,0.s) Chars 9369 - 9382 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9391 - 9405 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9406 - 9465 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.02u,0.s) +Chars 9406 - 9465 [(hinduction~H0~before~CIH;~int...] 0.019 secs (0.018u,0.s) Chars 9474 - 9476 [++] 0. secs (0.u,0.s) Chars 9477 - 9495 [(constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 9496 - 9503 [(intros).] 0. secs (0.u,0.s) @@ -443,9 +443,9 @@ Chars 9680 - 9693 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 9694 - 9714 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) Chars 9717 - 9718 [-] 0. secs (0.u,0.s) Chars 9719 - 9747 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 9748 - 9793 [(hinduction~H0~before~CIH;~int...] 0.03 secs (0.03u,0.s) +Chars 9748 - 9793 [(hinduction~H0~before~CIH;~int...] 0.028 secs (0.028u,0.s) Chars 9798 - 9799 [+] 0. secs (0.u,0.s) -Chars 9800 - 9813 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 9800 - 9813 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 9814 - 9832 [(constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 9833 - 9840 [(intros).] 0. secs (0.u,0.s) Chars 9841 - 9856 [(apply~H0~in~H1).] 0. secs (0.u,0.s) @@ -457,8 +457,8 @@ Chars 9905 - 9917 [constructor.] 0. secs (0.u,0.s) Chars 9918 - 9924 [eauto.] 0. secs (0.u,0.s) Chars 9927 - 9928 [-] 0. secs (0.u,0.s) Chars 9929 - 9951 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 9952 - 9979 [(remember~(TauF~t0)~as~otf0).] 0.002 secs (0.002u,0.s) -Chars 9984 - 10055 [(hinduction~H0~before~CIH;~int...] 0.017 secs (0.017u,0.s) +Chars 9952 - 9979 [(remember~(TauF~t0)~as~otf0).] 0.001 secs (0.001u,0.s) +Chars 9984 - 10055 [(hinduction~H0~before~CIH;~int...] 0.016 secs (0.016u,0.s) Chars 10060 - 10061 [+] 0. secs (0.u,0.s) Chars 10062 - 10074 [constructor.] 0. secs (0.u,0.s) Chars 10075 - 10086 [now~unstep.] 0.001 secs (0.001u,0.s) @@ -468,12 +468,12 @@ Chars 10107 - 10129 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) Chars 10132 - 10133 [-] 0. secs (0.u,0.s) Chars 10134 - 10146 [constructor.] 0. secs (0.u,0.s) Chars 10147 - 10169 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 10170 - 10174 [Qed.] 0.098 secs (0.096u,0.s) +Chars 10170 - 10174 [Qed.] 0.096 secs (0.094u,0.001s) Chars 10176 - 10280 [#[global]~Instance~trace_refin...] 0. secs (0.u,0.s) Chars 10281 - 10287 [Proof.] 0. secs (0.u,0.s) Chars 10290 - 10323 [(intros~b1~b2~Heuttb~t1~t2~Heu...] 0. secs (0.u,0.s) Chars 10326 - 10436 [(split;~intros;~~~try~~~~(eapp...] 0.006 secs (0.006u,0.s) -Chars 10441 - 10468 [now~rewrite~Heuttb,~Heuttt.] 0.021 secs (0.021u,0.s) +Chars 10441 - 10468 [now~rewrite~Heuttb,~Heuttt.] 0.02 secs (0.02u,0.s) Chars 10469 - 10473 [Qed.] 0.003 secs (0.003u,0.s) Chars 10475 - 10584 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) Chars 10585 - 10591 [Proof.] 0. secs (0.u,0.s) @@ -488,7 +488,7 @@ Chars 10800 - 10807 [(intros).] 0. secs (0.u,0.s) Chars 10808 - 10813 [step.] 0.001 secs (0.001u,0.s) Chars 10814 - 10824 [step~in~H.] 0. secs (0.u,0.s) Chars 10825 - 10841 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 10845 - 10874 [(dependent~induction~H;~subst).] 0.033 secs (0.033u,0.s) +Chars 10845 - 10874 [(dependent~induction~H;~subst).] 0.032 secs (0.032u,0.s) Chars 10877 - 10878 [-] 0. secs (0.u,0.s) Chars 10879 - 10892 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10893 - 10905 [constructor.] 0. secs (0.u,0.s) @@ -496,22 +496,22 @@ Chars 10906 - 10911 [auto.] 0. secs (0.u,0.s) Chars 10914 - 10915 [-] 0. secs (0.u,0.s) Chars 10916 - 10929 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 10930 - 10948 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 10949 - 10953 [Qed.] 0.028 secs (0.027u,0.s) +Chars 10949 - 10953 [Qed.] 0.026 secs (0.026u,0.s) Chars 10955 - 11121 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) Chars 11122 - 11128 [Proof.] 0. secs (0.u,0.s) Chars 11131 - 11138 [(intros).] 0. secs (0.u,0.s) -Chars 11139 - 11144 [step.] 0.002 secs (0.002u,0.s) +Chars 11139 - 11144 [step.] 0.002 secs (0.001u,0.s) Chars 11145 - 11155 [step~in~H.] 0. secs (0.u,0.s) Chars 11156 - 11172 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11175 - 11204 [(dependent~induction~H;~subst).] 0.038 secs (0.037u,0.s) +Chars 11175 - 11204 [(dependent~induction~H;~subst).] 0.034 secs (0.033u,0.s) Chars 11207 - 11208 [-] 0. secs (0.u,0.s) Chars 11209 - 11222 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 11223 - 11235 [constructor.] 0. secs (0.u,0.s) Chars 11236 - 11241 [auto.] 0. secs (0.u,0.s) Chars 11244 - 11245 [-] 0. secs (0.u,0.s) Chars 11246 - 11259 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 11260 - 11278 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 11279 - 11283 [Qed.] 0.03 secs (0.03u,0.s) +Chars 11260 - 11278 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 11279 - 11283 [Qed.] 0.027 secs (0.027u,0.s) Chars 11285 - 11525 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) Chars 11526 - 11532 [Proof.] 0. secs (0.u,0.s) Chars 11535 - 11552 [(intros~E~R~A~e~a).] 0. secs (0.u,0.s) @@ -520,18 +520,18 @@ Chars 11563 - 11572 [(red~in~H).] 0. secs (0.u,0.s) Chars 11573 - 11577 [(red).] 0. secs (0.u,0.s) Chars 11578 - 11588 [step~in~H.] 0. secs (0.u,0.s) Chars 11589 - 11605 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11606 - 11612 [(inv~H).] 0.013 secs (0.013u,0.s) +Chars 11606 - 11612 [(inv~H).] 0.012 secs (0.011u,0.s) Chars 11613 - 11626 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 11629 - 11635 [subst.] 0. secs (0.u,0.s) Chars 11638 - 11703 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 11704 - 11708 [Qed.] 0.008 secs (0.008u,0.s) +Chars 11704 - 11708 [Qed.] 0.008 secs (0.007u,0.s) Chars 11710 - 11924 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) Chars 11925 - 11931 [Proof.] 0. secs (0.u,0.s) Chars 11934 - 11941 [(intros).] 0. secs (0.u,0.s) -Chars 11942 - 11947 [step.] 0.001 secs (0.001u,0.s) +Chars 11942 - 11947 [step.] 0. secs (0.u,0.s) Chars 11948 - 11978 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 11981 - 11988 [(intros).] 0. secs (0.u,0.s) -Chars 11989 - 11996 [(inv~H0).] 0.007 secs (0.007u,0.s) +Chars 11989 - 11996 [(inv~H0).] 0.006 secs (0.006u,0.s) Chars 11997 - 12010 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 12013 - 12019 [subst.] 0. secs (0.u,0.s) Chars 12020 - 12025 [auto.] 0. secs (0.u,0.s) @@ -591,7 +591,7 @@ Chars 13465 - 13487 [(destruct~(classicT~_)).] 0.001 secs (0.001u,0.s) Chars 13492 - 13493 [+] 0. secs (0.u,0.s) Chars 13494 - 13524 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 13525 - 13532 [(intros).] 0. secs (0.u,0.s) -Chars 13539 - 13551 [(inversion~H).] 0.003 secs (0.003u,0.s) +Chars 13539 - 13551 [(inversion~H).] 0.002 secs (0.002u,0.s) Chars 13552 - 13565 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 13572 - 13578 [subst.] 0. secs (0.u,0.s) Chars 13579 - 13589 [(apply~CIH).] 0. secs (0.u,0.s) @@ -599,7 +599,7 @@ Chars 13594 - 13595 [+] 0. secs (0.u,0.s) Chars 13596 - 13625 [(constructor;~auto~with~itree).] 0.001 secs (0.001u,0.s) Chars 13626 - 13633 [(intros).] 0. secs (0.u,0.s) Chars 13634 - 13648 [contradiction.] 0. secs (0.u,0.s) -Chars 13649 - 13653 [Qed.] 0.013 secs (0.013u,0.s) +Chars 13649 - 13653 [Qed.] 0.012 secs (0.012u,0.s) Chars 13655 - 14377 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) Chars 14378 - 14384 [Proof.] 0. secs (0.u,0.s) Chars 14387 - 14394 [(intros).] 0. secs (0.u,0.s) @@ -612,13 +612,13 @@ Chars 14564 - 14592 [(apply~itree_refine_nonempty).] 0. secs (0.u,0.s) Chars 14593 - 14594 [}] 0. secs (0.u,0.s) Chars 14599 - 14621 [(destruct~H~as~[b~Hbk]).] 0. secs (0.u,0.s) Chars 14622 - 14670 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 14675 - 14697 [(rewrite~<-~Ht1~in~Hbk).] 0.004 secs (0.004u,0.s) +Chars 14675 - 14697 [(rewrite~<-~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) Chars 14702 - 14726 [(apply~H0~in~Hbk~as~Hbk0).] 0. secs (0.u,0.s) -Chars 14731 - 14750 [(rewrite~Ht1~in~Hbk).] 0.004 secs (0.004u,0.s) +Chars 14731 - 14750 [(rewrite~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) Chars 14751 - 14771 [(rewrite~Ht2~in~Hbk0).] 0.003 secs (0.003u,0.s) -Chars 14776 - 14785 [sinv~Hbk.] 0.017 secs (0.017u,0.s) -Chars 14790 - 14800 [sinv~Hbk0.] 0.024 secs (0.024u,0.s) -Chars 14801 - 14814 [ddestruction.] 0.009 secs (0.009u,0.s) +Chars 14776 - 14785 [sinv~Hbk.] 0.017 secs (0.016u,0.s) +Chars 14790 - 14800 [sinv~Hbk0.] 0.023 secs (0.023u,0.s) +Chars 14801 - 14814 [ddestruction.] 0.008 secs (0.008u,0.s) Chars 14819 - 14825 [subst.] 0. secs (0.u,0.s) Chars 14830 - 14843 [(inversion~H8).] 0.002 secs (0.002u,0.s) Chars 14844 - 14857 [ddestruction.] 0.004 secs (0.004u,0.s) @@ -627,8 +627,8 @@ Chars 14869 - 14881 [constructor.] 0. secs (0.u,0.s) Chars 14886 - 14893 [(intros).] 0. secs (0.u,0.s) Chars 14894 - 14912 [(eapply~CIH;~eauto).] 0.001 secs (0.001u,0.s) Chars 14917 - 14924 [(intros).] 0. secs (0.u,0.s) -Chars 14925 - 14950 [setoid_rewrite~Ht1~in~H0.] 0.024 secs (0.024u,0.s) -Chars 14951 - 14976 [setoid_rewrite~Ht2~in~H0.] 0.068 secs (0.067u,0.s) +Chars 14925 - 14950 [setoid_rewrite~Ht1~in~H0.] 0.021 secs (0.021u,0.s) +Chars 14951 - 14976 [setoid_rewrite~Ht2~in~H0.] 0.064 secs (0.063u,0.s) Chars 14981 - 14995 [(split;~intros).] 0. secs (0.u,0.s) Chars 15000 - 15001 [+] 0. secs (0.u,0.s) Chars 15002 - 15048 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) @@ -662,9 +662,9 @@ Chars 15479 - 15493 [(unfold~b~in~*).] 0. secs (0.u,0.s) Chars 15494 - 15502 [clear~b.] 0. secs (0.u,0.s) Chars 15507 - 15524 [(rewrite~Ht1~in~H).] 0.003 secs (0.003u,0.s) Chars 15525 - 15543 [(rewrite~Ht2~in~H1).] 0.003 secs (0.003u,0.s) -Chars 15548 - 15555 [sinv~H.] 0.036 secs (0.023u,0.s) -Chars 15556 - 15564 [sinv~H1.] 0.033 secs (0.028u,0.s) -Chars 15565 - 15578 [ddestruction.] 0.009 secs (0.009u,0.s) +Chars 15548 - 15555 [sinv~H.] 0.017 secs (0.016u,0.s) +Chars 15556 - 15564 [sinv~H1.] 0.022 secs (0.022u,0.s) +Chars 15565 - 15578 [ddestruction.] 0.008 secs (0.008u,0.s) Chars 15583 - 15589 [subst.] 0. secs (0.u,0.s) Chars 15590 - 15603 [(inversion~H6).] 0.002 secs (0.002u,0.s) Chars 15604 - 15617 [ddestruction.] 0.004 secs (0.004u,0.s) @@ -672,16 +672,16 @@ Chars 15622 - 15634 [constructor.] 0. secs (0.u,0.s) Chars 15639 - 15646 [(intros).] 0. secs (0.u,0.s) Chars 15647 - 15658 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 15663 - 15670 [(intros).] 0. secs (0.u,0.s) -Chars 15671 - 15696 [setoid_rewrite~Ht1~in~H0.] 0.025 secs (0.025u,0.s) -Chars 15697 - 15722 [setoid_rewrite~Ht2~in~H0.] 0.07 secs (0.069u,0.s) +Chars 15671 - 15696 [setoid_rewrite~Ht1~in~H0.] 0.022 secs (0.022u,0.s) +Chars 15697 - 15722 [setoid_rewrite~Ht2~in~H0.] 0.064 secs (0.063u,0.001s) Chars 15727 - 15756 [(split;~intros;~contradiction).] 0. secs (0.u,0.s) -Chars 15757 - 15761 [Qed.] 0.055 secs (0.054u,0.s) -Chars 15763 - 15992 [Lemma~trace_refine_vis~:~~~for...] 0.001 secs (0.001u,0.s) +Chars 15757 - 15761 [Qed.] 0.052 secs (0.048u,0.003s) +Chars 15763 - 15992 [Lemma~trace_refine_vis~:~~~for...] 0. secs (0.u,0.s) Chars 15993 - 15999 [Proof.] 0. secs (0.u,0.s) Chars 16002 - 16009 [(intros).] 0. secs (0.u,0.s) Chars 16010 - 16020 [step~in~H.] 0. secs (0.u,0.s) Chars 16021 - 16037 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16041 - 16063 [dependent~induction~H.] 0.051 secs (0.05u,0.s) +Chars 16041 - 16063 [dependent~induction~H.] 0.047 secs (0.046u,0.s) Chars 16066 - 16067 [-] 0. secs (0.u,0.s) Chars 16068 - 16078 [exists~A0.] 0. secs (0.u,0.s) Chars 16079 - 16089 [exists~e1.] 0. secs (0.u,0.s) @@ -700,17 +700,17 @@ Chars 16373 - 16383 [exists~k0.] 0. secs (0.u,0.s) Chars 16390 - 16421 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) Chars 16422 - 16441 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) Chars 16442 - 16453 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) -Chars 16460 - 16477 [(rewrite~tau_eutt).] 0.002 secs (0.002u,0.s) +Chars 16460 - 16477 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) Chars 16478 - 16483 [auto.] 0. secs (0.u,0.s) Chars 16488 - 16489 [}] 0. secs (0.u,0.s) -Chars 16494 - 16516 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 16517 - 16521 [Qed.] 0.042 secs (0.041u,0.s) -Chars 16523 - 16769 [Lemma~trace_refine_vis_l~:~~~f...] 0.001 secs (0.001u,0.s) +Chars 16494 - 16516 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16517 - 16521 [Qed.] 0.036 secs (0.035u,0.s) +Chars 16523 - 16769 [Lemma~trace_refine_vis_l~:~~~f...] 0. secs (0.u,0.s) Chars 16770 - 16776 [Proof.] 0. secs (0.u,0.s) Chars 16779 - 16786 [(intros).] 0. secs (0.u,0.s) Chars 16787 - 16797 [step~in~H.] 0. secs (0.u,0.s) Chars 16798 - 16814 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16818 - 16840 [dependent~induction~H.] 0.051 secs (0.05u,0.s) +Chars 16818 - 16840 [dependent~induction~H.] 0.047 secs (0.046u,0.s) Chars 16843 - 16844 [-] 0. secs (0.u,0.s) Chars 16845 - 16854 [exists~B.] 0. secs (0.u,0.s) Chars 16855 - 16865 [exists~e2.] 0. secs (0.u,0.s) @@ -730,8 +730,8 @@ Chars 17060 - 17077 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) Chars 17078 - 17090 [reflexivity.] 0. secs (0.u,0.s) Chars 17095 - 17096 [}] 0. secs (0.u,0.s) Chars 17101 - 17122 [setoid_rewrite~~<-~H0.] 0.002 secs (0.002u,0.s) -Chars 17123 - 17145 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 17146 - 17150 [Qed.] 0.04 secs (0.04u,0.s) +Chars 17123 - 17145 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 17146 - 17150 [Qed.] 0.036 secs (0.035u,0.s) Chars 17152 - 17357 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) Chars 17358 - 17364 [Proof.] 0. secs (0.u,0.s) Chars 17367 - 17374 [(intros).] 0. secs (0.u,0.s) @@ -755,7 +755,7 @@ Chars 17635 - 17641 [eauto.] 0. secs (0.u,0.s) Chars 17642 - 17651 [Unshelve.] 0. secs (0.u,0.s) Chars 17652 - 17661 [exact~tt.] 0. secs (0.u,0.s) Chars 17666 - 17667 [+] 0. secs (0.u,0.s) -Chars 17668 - 17678 [(rewrite~H).] 0.004 secs (0.004u,0.s) +Chars 17668 - 17678 [(rewrite~H).] 0.003 secs (0.003u,0.s) Chars 17679 - 17706 [(apply~trace_refine_vis_add).] 0. secs (0.u,0.s) Chars 17707 - 17712 [auto.] 0. secs (0.u,0.s) Chars 17713 - 17717 [Qed.] 0.002 secs (0.002u,0.s) @@ -767,20 +767,20 @@ Chars 17967 - 17987 [(induction~H;~intros).] 0. secs (0.u,0.s) Chars 17990 - 17991 [-] 0. secs (0.u,0.s) Chars 17992 - 18008 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) Chars 18009 - 18044 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 18049 - 18060 [(rewrite~H0).] 0.008 secs (0.007u,0.s) +Chars 18049 - 18060 [(rewrite~H0).] 0.007 secs (0.006u,0.s) Chars 18061 - 18073 [constructor.] 0. secs (0.u,0.s) Chars 18074 - 18086 [reflexivity.] 0. secs (0.u,0.s) Chars 18089 - 18090 [-] 0. secs (0.u,0.s) -Chars 18091 - 18107 [(rewrite~H~in~H1).] 0.004 secs (0.004u,0.s) +Chars 18091 - 18107 [(rewrite~H~in~H1).] 0.003 secs (0.003u,0.s) Chars 18108 - 18146 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) Chars 18151 - 18187 [(destruct~Ht0~as~[X~[e0~[k0~Ht...] 0. secs (0.u,0.s) Chars 18192 - 18210 [(rewrite~Ht0~in~H1).] 0.003 secs (0.003u,0.s) -Chars 18211 - 18219 [sinv~H1.] 0.012 secs (0.012u,0.s) +Chars 18211 - 18219 [sinv~H1.] 0.01 secs (0.01u,0.s) Chars 18220 - 18226 [subst.] 0. secs (0.u,0.s) Chars 18231 - 18244 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 18245 - 18251 [subst.] 0. secs (0.u,0.s) -Chars 18252 - 18264 [(rewrite~Ht0).] 0.009 secs (0.009u,0.s) -Chars 18269 - 18329 [(inversion~H4;~subst;~ddestruc...] 0.008 secs (0.008u,0.s) +Chars 18252 - 18264 [(rewrite~Ht0).] 0.008 secs (0.008u,0.s) +Chars 18269 - 18329 [(inversion~H4;~subst;~ddestruc...] 0.008 secs (0.007u,0.s) Chars 18334 - 18367 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) Chars 18368 - 18377 [Unshelve.] 0. secs (0.u,0.s) Chars 18378 - 18390 [2:~exact~a.] 0. secs (0.u,0.s) @@ -791,7 +791,7 @@ Chars 18498 - 18510 [constructor.] 0. secs (0.u,0.s) Chars 18511 - 18526 [(apply~H9~in~H1).] 0. secs (0.u,0.s) Chars 18527 - 18538 [(destruct~b).] 0. secs (0.u,0.s) Chars 18539 - 18544 [auto.] 0. secs (0.u,0.s) -Chars 18545 - 18549 [Qed.] 0.015 secs (0.015u,0.s) +Chars 18545 - 18549 [Qed.] 0.014 secs (0.014u,0.s) Chars 18551 - 18740 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) Chars 18741 - 18747 [Proof.] 0. secs (0.u,0.s) Chars 18750 - 18761 [(intros~E~R).] 0. secs (0.u,0.s) @@ -801,7 +801,7 @@ Chars 18814 - 18821 [(intros).] 0. secs (0.u,0.s) Chars 18822 - 18832 [step~in~H.] 0. secs (0.u,0.s) Chars 18833 - 18844 [step~in~H0.] 0. secs (0.u,0.s) Chars 18845 - 18877 [(repeat~red~in~H,~H0;~repeat~r...] 0. secs (0.u,0.s) -Chars 18883 - 18906 [dependent~induction~H0.] 0.041 secs (0.041u,0.s) +Chars 18883 - 18906 [dependent~induction~H0.] 0.04 secs (0.039u,0.s) Chars 18909 - 18910 [-] 0. secs (0.u,0.s) Chars 18911 - 18929 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) Chars 18930 - 18936 [(inv~H).] 0. secs (0.u,0.s) @@ -815,11 +815,11 @@ Chars 19021 - 19022 [-] 0. secs (0.u,0.s) Chars 19023 - 19037 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 19038 - 19056 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) Chars 19057 - 19069 [constructor.] 0. secs (0.u,0.s) -Chars 19070 - 19076 [(inv~H).] 0.012 secs (0.011u,0.s) +Chars 19070 - 19076 [(inv~H).] 0.011 secs (0.011u,0.s) Chars 19081 - 19094 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 19095 - 19101 [subst.] 0. secs (0.u,0.s) Chars 19102 - 19109 [(intros).] 0. secs (0.u,0.s) -Chars 19115 - 19162 [(inv~H1;~subst;~ddestruction;~...] 0.012 secs (0.012u,0.s) +Chars 19115 - 19162 [(inv~H1;~subst;~ddestruction;~...] 0.011 secs (0.011u,0.s) Chars 19163 - 19175 [(destruct~b0).] 0. secs (0.u,0.s) Chars 19180 - 19205 [(eapply~CIH;~try~apply~H3).] 0. secs (0.u,0.s) Chars 19210 - 19231 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) @@ -833,11 +833,11 @@ Chars 19337 - 19349 [constructor.] 0. secs (0.u,0.s) Chars 19350 - 19368 [(apply~(b_chain~c)).] 0. secs (0.u,0.s) Chars 19369 - 19391 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) Chars 19394 - 19395 [-] 0. secs (0.u,0.s) -Chars 19396 - 19417 [(eapply~IHruttF;~auto).] 0.006 secs (0.006u,0.s) +Chars 19396 - 19417 [(eapply~IHruttF;~auto).] 0.006 secs (0.005u,0.s) Chars 19418 - 19436 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) Chars 19437 - 19443 [(inv~H).] 0.007 secs (0.007u,0.s) Chars 19448 - 19463 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 19465 - 19469 [Qed.] 0.054 secs (0.053u,0.s) +Chars 19465 - 19469 [Qed.] 0.053 secs (0.052u,0.s) Chars 19471 - 19756 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) Chars 19757 - 19763 [Proof.] 0. secs (0.u,0.s) Chars 19766 - 19773 [(intros).] 0. secs (0.u,0.s) @@ -858,12 +858,12 @@ Chars 20045 - 20079 [(destruct~Ht~as~[X~[e0~[k0~Ht]...] 0. secs (0.u,0.s) Chars 20084 - 20101 [(rewrite~Ht~in~H2).] 0.003 secs (0.003u,0.s) Chars 20102 - 20113 [step~in~H2.] 0. secs (0.u,0.s) Chars 20114 - 20131 [(repeat~red~in~H2).] 0. secs (0.u,0.s) -Chars 20132 - 20139 [(inv~H2).] 0.014 secs (0.014u,0.s) +Chars 20132 - 20139 [(inv~H2).] 0.015 secs (0.015u,0.s) Chars 20145 - 20158 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 20159 - 20165 [subst.] 0. secs (0.u,0.s) -Chars 20170 - 20214 [(inversion~H5;~subst;~ddestruc...] 0.014 secs (0.014u,0.s) +Chars 20170 - 20214 [(inversion~H5;~subst;~ddestruc...] 0.013 secs (0.013u,0.s) Chars 20220 - 20230 [(rewrite~H).] 0.009 secs (0.009u,0.s) -Chars 20231 - 20242 [(rewrite~Ht).] 0.006 secs (0.006u,0.s) +Chars 20231 - 20242 [(rewrite~Ht).] 0.005 secs (0.005u,0.s) Chars 20247 - 20252 [step.] 0.001 secs (0.001u,0.s) Chars 20253 - 20264 [(repeat~red).] 0. secs (0.u,0.s) Chars 20265 - 20269 [(cbn).] 0. secs (0.u,0.s) @@ -874,19 +874,19 @@ Chars 20322 - 20334 [(destruct~a0).] 0. secs (0.u,0.s) Chars 20335 - 20346 [(destruct~b).] 0. secs (0.u,0.s) Chars 20347 - 20368 [(apply~IHmay_converge).] 0. secs (0.u,0.s) Chars 20369 - 20374 [auto.] 0. secs (0.u,0.s) -Chars 20375 - 20379 [Qed.] 0.022 secs (0.022u,0.s) +Chars 20375 - 20379 [Qed.] 0.022 secs (0.021u,0.s) Chars 20381 - 20639 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) Chars 20640 - 20646 [Proof.] 0. secs (0.u,0.s) Chars 20649 - 20670 [(intros~E~R~S~b~t~f~g).] 0. secs (0.u,0.s) Chars 20671 - 20694 [generalize~dependent~b.] 0. secs (0.u,0.s) Chars 20695 - 20718 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 20721 - 20725 [(red).] 0. secs (0.u,0.s) -Chars 20726 - 20745 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 20726 - 20745 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) Chars 20746 - 20753 [(intros).] 0. secs (0.u,0.s) Chars 20756 - 20767 [step~in~H0.] 0. secs (0.u,0.s) Chars 20771 - 20781 [step~in~H.] 0. secs (0.u,0.s) Chars 20782 - 20802 [(repeat~red~in~H0,~H).] 0. secs (0.u,0.s) -Chars 20806 - 20829 [dependent~induction~H0.] 0.066 secs (0.066u,0.s) +Chars 20806 - 20829 [dependent~induction~H0.] 0.063 secs (0.062u,0.s) Chars 20832 - 20833 [-] 0. secs (0.u,0.s) Chars 20834 - 20853 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) Chars 20854 - 20860 [(inv~H).] 0.001 secs (0.001u,0.s) @@ -899,7 +899,7 @@ Chars 20919 - 20923 [(cbn).] 0. secs (0.u,0.s) Chars 20924 - 20936 [constructor.] 0. secs (0.u,0.s) Chars 20937 - 20953 [(apply~CIH;~auto).] 0. secs (0.u,0.s) Chars 20958 - 20977 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 20978 - 20984 [(inv~H).] 0.001 secs (0.u,0.s) +Chars 20978 - 20984 [(inv~H).] 0. secs (0.u,0.s) Chars 20988 - 20989 [-] 0. secs (0.u,0.s) Chars 20990 - 21005 [(unfold~observe).] 0. secs (0.u,0.s) Chars 21006 - 21010 [(cbn).] 0. secs (0.u,0.s) @@ -909,7 +909,7 @@ Chars 21040 - 21044 [(cbn).] 0. secs (0.u,0.s) Chars 21045 - 21063 [(constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 21068 - 21075 [(intros).] 0. secs (0.u,0.s) Chars 21080 - 21099 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 21100 - 21106 [(inv~H).] 0.026 secs (0.026u,0.s) +Chars 21100 - 21106 [(inv~H).] 0.024 secs (0.024u,0.s) Chars 21107 - 21120 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 21121 - 21127 [subst.] 0. secs (0.u,0.s) Chars 21133 - 21148 [(apply~H0~in~H2).] 0. secs (0.u,0.s) @@ -923,7 +923,7 @@ Chars 21222 - 21226 [(cbn).] 0. secs (0.u,0.s) Chars 21227 - 21239 [constructor.] 0. secs (0.u,0.s) Chars 21244 - 21266 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) Chars 21267 - 21285 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 21286 - 21292 [(inv~H).] 0.011 secs (0.011u,0.s) +Chars 21286 - 21292 [(inv~H).] 0.01 secs (0.01u,0.s) Chars 21293 - 21304 [now~unstep.] 0. secs (0.u,0.s) Chars 21307 - 21308 [-] 0. secs (0.u,0.s) Chars 21309 - 21329 [(unfold~observe~at~2).] 0. secs (0.u,0.s) @@ -932,7 +932,7 @@ Chars 21335 - 21348 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 21349 - 21353 [(cbn).] 0. secs (0.u,0.s) Chars 21354 - 21366 [constructor.] 0. secs (0.u,0.s) Chars 21371 - 21393 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 21394 - 21398 [Qed.] 0.09 secs (0.088u,0.s) +Chars 21394 - 21398 [Qed.] 0.076 secs (0.076u,0.s) Chars 21400 - 21539 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) Chars 21540 - 21546 [Proof.] 0. secs (0.u,0.s) Chars 21549 - 21560 [(intros~E~R).] 0. secs (0.u,0.s) @@ -940,29 +940,29 @@ Chars 21561 - 21580 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 21581 - 21588 [(intros).] 0. secs (0.u,0.s) Chars 21591 - 21620 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) Chars 21621 - 21650 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 21653 - 21684 [(destruct~(ot1);~destruct~(ot2)).] 0.003 secs (0.003u,0.s) +Chars 21653 - 21684 [(destruct~(ot1);~destruct~(ot2)).] 0.002 secs (0.002u,0.s) Chars 21687 - 21815 [all:~~(specialize~(itree_eta~t...] 0.001 secs (0.001u,0.s) Chars 21832 - 21833 [-] 0. secs (0.u,0.s) Chars 21834 - 21865 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) -Chars 21870 - 21889 [(rewrite~Ht1~in~Hr0).] 0.031 secs (0.031u,0.s) -Chars 21890 - 21909 [(rewrite~Ht2~in~Hr0).] 0.071 secs (0.07u,0.s) +Chars 21870 - 21889 [(rewrite~Ht1~in~Hr0).] 0.028 secs (0.028u,0.s) +Chars 21890 - 21909 [(rewrite~Ht2~in~Hr0).] 0.063 secs (0.062u,0.001s) Chars 21915 - 21938 [(assert~(Ret~r0~⊑~t1)).] 0. secs (0.u,0.s) Chars 21943 - 21944 [{] 0. secs (0.u,0.s) -Chars 21945 - 21957 [(rewrite~Ht1).] 0.004 secs (0.004u,0.s) +Chars 21945 - 21957 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) Chars 21958 - 21968 [(apply~Hr0).] 0. secs (0.u,0.s) Chars 21969 - 21974 [step.] 0.001 secs (0.001u,0.s) Chars 21975 - 21980 [eret.] 0. secs (0.u,0.s) Chars 21981 - 21982 [}] 0. secs (0.u,0.s) Chars 21987 - 22005 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) -Chars 22006 - 22014 [sinv~H0.] 0.007 secs (0.007u,0.s) +Chars 22006 - 22014 [sinv~H0.] 0.006 secs (0.006u,0.s) Chars 22033 - 22034 [-] 0. secs (0.u,0.s) -Chars 22035 - 22059 [setoid_rewrite~Ht2~in~H.] 0.068 secs (0.067u,0.s) +Chars 22035 - 22059 [setoid_rewrite~Ht2~in~H.] 0.063 secs (0.062u,0.s) Chars 22064 - 22088 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) Chars 22093 - 22115 [(rewrite~tau_eutt~in~H).] 0.001 secs (0.001u,0.s) Chars 22116 - 22121 [taur.] 0. secs (0.u,0.s) Chars 22127 - 22149 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) Chars 22154 - 22155 [{] 0. secs (0.u,0.s) -Chars 22156 - 22168 [(rewrite~Ht1).] 0.004 secs (0.004u,0.s) +Chars 22156 - 22168 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) Chars 22169 - 22174 [step.] 0.001 secs (0.001u,0.s) Chars 22175 - 22180 [eret.] 0. secs (0.u,0.s) Chars 22181 - 22182 [}] 0. secs (0.u,0.s) @@ -970,7 +970,7 @@ Chars 22187 - 22201 [(apply~H~in~H0).] 0. secs (0.u,0.s) Chars 22202 - 22213 [step~in~H0.] 0. secs (0.u,0.s) Chars 22214 - 22242 [(repeat~red~in~H0;~cbn~in~H0).] 0. secs (0.u,0.s) Chars 22247 - 22277 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 22278 - 22301 [dependent~induction~H0.] 0.05 secs (0.048u,0.s) +Chars 22278 - 22301 [dependent~induction~H0.] 0.047 secs (0.046u,0.s) Chars 22306 - 22307 [+] 0. secs (0.u,0.s) Chars 22308 - 22321 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 22322 - 22327 [eret.] 0. secs (0.u,0.s) @@ -981,16 +981,16 @@ Chars 22380 - 22381 [-] 0. secs (0.u,0.s) Chars 22382 - 22390 [exfalso.] 0. secs (0.u,0.s) Chars 22395 - 22417 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) Chars 22422 - 22423 [{] 0. secs (0.u,0.s) -Chars 22424 - 22436 [(rewrite~Ht1).] 0.004 secs (0.004u,0.s) +Chars 22424 - 22436 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) Chars 22437 - 22442 [step.] 0.001 secs (0.001u,0.s) Chars 22443 - 22448 [eret.] 0. secs (0.u,0.s) Chars 22449 - 22450 [}] 0. secs (0.u,0.s) Chars 22455 - 22469 [(apply~H~in~H0).] 0. secs (0.u,0.s) Chars 22470 - 22488 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) -Chars 22489 - 22497 [sinv~H0.] 0.003 secs (0.002u,0.s) +Chars 22489 - 22497 [sinv~H0.] 0.002 secs (0.002u,0.s) Chars 22515 - 22516 [-] 0. secs (0.u,0.s) -Chars 22517 - 22541 [setoid_rewrite~Ht1~in~H.] 0.026 secs (0.025u,0.s) -Chars 22542 - 22566 [setoid_rewrite~Ht2~in~H.] 0.066 secs (0.066u,0.s) +Chars 22517 - 22541 [setoid_rewrite~Ht1~in~H.] 0.025 secs (0.024u,0.s) +Chars 22542 - 22566 [setoid_rewrite~Ht2~in~H.] 0.066 secs (0.065u,0.s) Chars 22571 - 22593 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) Chars 22598 - 22599 [{] 0. secs (0.u,0.s) Chars 22600 - 22612 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) @@ -1004,8 +1004,8 @@ Chars 22688 - 22721 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) Chars 22722 - 22739 [(repeat~red~in~H1).] 0. secs (0.u,0.s) Chars 22740 - 22749 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 22754 - 22759 [taul.] 0. secs (0.u,0.s) -Chars 22760 - 22767 [(inv~H1).] 0.014 secs (0.014u,0.s) -Chars 22768 - 22806 [(dependent~induction~H2;~intro...] 0.049 secs (0.049u,0.s) +Chars 22760 - 22767 [(inv~H1).] 0.013 secs (0.013u,0.s) +Chars 22768 - 22806 [(dependent~induction~H2;~intro...] 0.047 secs (0.046u,0.s) Chars 22811 - 22812 [+] 0. secs (0.u,0.s) Chars 22813 - 22826 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 22827 - 22832 [eret.] 0. secs (0.u,0.s) @@ -1034,21 +1034,21 @@ Chars 23115 - 23165 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) Chars 23170 - 23194 [(apply~H~in~Hbt1~as~Hbt2).] 0. secs (0.u,0.s) Chars 23195 - 23215 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) Chars 23220 - 23245 [(rewrite~tau_eutt~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 23250 - 23270 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) +Chars 23250 - 23270 [(rewrite~Ht2~in~Hbt2).] 0.002 secs (0.002u,0.s) Chars 23275 - 23312 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) Chars 23317 - 23351 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) Chars 23356 - 23375 [(rewrite~Hb~in~Hbt2).] 0.004 secs (0.004u,0.s) Chars 23380 - 23399 [(rewrite~Hb~in~Hbt1).] 0.01 secs (0.01u,0.s) Chars 23400 - 23411 [clear~Hb~b.] 0. secs (0.u,0.s) Chars 23416 - 23434 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 23439 - 23463 [setoid_rewrite~Ht1~in~H.] 0.022 secs (0.022u,0.s) -Chars 23464 - 23493 [setoid_rewrite~tau_eutt~in~H.] 0.004 secs (0.004u,0.s) +Chars 23439 - 23463 [setoid_rewrite~Ht1~in~H.] 0.021 secs (0.021u,0.s) +Chars 23464 - 23493 [setoid_rewrite~tau_eutt~in~H.] 0.003 secs (0.003u,0.s) Chars 23498 - 23518 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 23519 - 23532 [clear~Ht1~t1.] 0. secs (0.u,0.s) Chars 23537 - 23550 [step~in~Hbt1.] 0. secs (0.u,0.s) Chars 23551 - 23570 [(repeat~red~in~Hbt1).] 0. secs (0.u,0.s) Chars 23571 - 23580 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23585 - 23610 [dependent~induction~Hbt1.] 0.067 secs (0.067u,0.s) +Chars 23585 - 23610 [dependent~induction~Hbt1.] 0.064 secs (0.063u,0.s) Chars 23615 - 23616 [+] 0. secs (0.u,0.s) Chars 23617 - 23630 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 23637 - 23668 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) @@ -1057,7 +1057,7 @@ Chars 23695 - 23739 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) Chars 23744 - 23745 [+] 0. secs (0.u,0.s) Chars 23746 - 23759 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 23760 - 23778 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 23779 - 23800 [(eapply~IHHbt1;~eauto).] 0.011 secs (0.01u,0.s) +Chars 23779 - 23800 [(eapply~IHHbt1;~eauto).] 0.01 secs (0.01u,0.s) Chars 23807 - 23825 [(assert~(t0~≈~t)).] 0. secs (0.u,0.s) Chars 23832 - 23833 [{] 0. secs (0.u,0.s) Chars 23842 - 23873 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) @@ -1078,7 +1078,7 @@ Chars 24063 - 24068 [eret.] 0. secs (0.u,0.s) Chars 24069 - 24070 [}] 0. secs (0.u,0.s) Chars 24075 - 24089 [(apply~H~in~H0).] 0. secs (0.u,0.s) Chars 24090 - 24108 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) -Chars 24109 - 24117 [sinv~H0.] 0.002 secs (0.002u,0.s) +Chars 24109 - 24117 [sinv~H0.] 0.003 secs (0.002u,0.s) Chars 24134 - 24135 [-] 0. secs (0.u,0.s) Chars 24136 - 24186 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) Chars 24191 - 24215 [(apply~H~in~Hbt2~as~Hbt1).] 0. secs (0.u,0.s) @@ -1091,14 +1091,14 @@ Chars 24377 - 24396 [(rewrite~Hb~in~Hbt2).] 0.003 secs (0.003u,0.s) Chars 24401 - 24420 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) Chars 24421 - 24432 [clear~Hb~b.] 0. secs (0.u,0.s) Chars 24437 - 24455 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24460 - 24484 [setoid_rewrite~Ht2~in~H.] 0.065 secs (0.064u,0.s) +Chars 24460 - 24484 [setoid_rewrite~Ht2~in~H.] 0.062 secs (0.062u,0.s) Chars 24485 - 24514 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) Chars 24519 - 24539 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 24540 - 24553 [clear~Ht2~t2.] 0. secs (0.u,0.s) Chars 24558 - 24571 [step~in~Hbt2.] 0. secs (0.u,0.s) Chars 24572 - 24591 [(repeat~red~in~Hbt2).] 0. secs (0.u,0.s) Chars 24592 - 24601 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 24606 - 24631 [dependent~induction~Hbt2.] 0.068 secs (0.067u,0.s) +Chars 24606 - 24631 [dependent~induction~Hbt2.] 0.064 secs (0.063u,0.s) Chars 24636 - 24637 [+] 0. secs (0.u,0.s) Chars 24638 - 24651 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 24658 - 24689 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) @@ -1120,7 +1120,7 @@ Chars 24980 - 24998 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) Chars 24999 - 25004 [auto.] 0. secs (0.u,0.s) Chars 25023 - 25024 [-] 0. secs (0.u,0.s) Chars 25025 - 25069 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) -Chars 25070 - 25074 [Qed.] 0.266 secs (0.263u,0.002s) +Chars 25070 - 25074 [Qed.] 0.247 secs (0.244u,0.003s) Chars 25076 - 25183 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) Chars 25184 - 25190 [Proof.] 0. secs (0.u,0.s) Chars 25193 - 25200 [(intros).] 0. secs (0.u,0.s) @@ -1138,32 +1138,32 @@ Chars 25703 - 25727 [generalize~dependent~m.] 0. secs (0.u,0.s) Chars 25730 - 25782 [(dependent~induction~Hconv;~in...] 0.001 secs (0.001u,0.s) Chars 25785 - 25786 [-] 0. secs (0.u,0.s) Chars 25787 - 25809 [(rewrite~H~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 25810 - 25841 [(rewrite~bind_ret_l~in~Hrefbind).] 0.008 secs (0.008u,0.s) +Chars 25810 - 25841 [(rewrite~bind_ret_l~in~Hrefbind).] 0.008 secs (0.007u,0.s) Chars 25842 - 25861 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) Chars 25866 - 25904 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 25905 - 25931 [(rewrite~Hrefb~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 25936 - 25967 [(rewrite~bind_ret_l~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 25905 - 25931 [(rewrite~Hrefb~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 25936 - 25967 [(rewrite~bind_ret_l~in~Hrefbind).] 0.002 secs (0.002u,0.s) Chars 25968 - 25977 [now~step.] 0.002 secs (0.002u,0.s) Chars 25981 - 25982 [-] 0. secs (0.u,0.s) Chars 26106 - 26136 [(destruct~e;~try~contradiction).] 0.001 secs (0.001u,0.s) -Chars 26137 - 26156 [(rewrite~H~in~Hrefb).] 0.004 secs (0.004u,0.s) -Chars 26161 - 26183 [(rewrite~H~in~Hrefbind).] 0.005 secs (0.005u,0.s) -Chars 26184 - 26213 [(rewrite~bind_vis~in~Hrefbind).] 0.005 secs (0.004u,0.s) +Chars 26137 - 26156 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) +Chars 26161 - 26183 [(rewrite~H~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 26184 - 26213 [(rewrite~bind_vis~in~Hrefbind).] 0.004 secs (0.004u,0.s) Chars 26218 - 26260 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) Chars 26261 - 26300 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) -Chars 26305 - 26330 [(rewrite~Hvis~in~Hrefbind).] 0.005 secs (0.005u,0.s) -Chars 26331 - 26360 [(rewrite~bind_vis~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 26305 - 26330 [(rewrite~Hvis~in~Hrefbind).] 0.004 secs (0.004u,0.s) +Chars 26331 - 26360 [(rewrite~bind_vis~in~Hrefbind).] 0.003 secs (0.003u,0.s) Chars 26365 - 26382 [step~in~Hrefbind.] 0. secs (0.u,0.s) Chars 26383 - 26423 [(repeat~red~in~Hrefbind;~cbn~i...] 0. secs (0.u,0.s) -Chars 26424 - 26437 [(inv~Hrefbind).] 0.025 secs (0.025u,0.s) +Chars 26424 - 26437 [(inv~Hrefbind).] 0.025 secs (0.024u,0.s) Chars 26442 - 26455 [ddestruction.] 0.005 secs (0.005u,0.s) Chars 26456 - 26463 [(inv~H2).] 0.014 secs (0.014u,0.s) Chars 26464 - 26484 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) Chars 26489 - 26511 [(rewrite~Hvis~in~Hrefb).] 0.004 secs (0.004u,0.s) Chars 26512 - 26526 [step~in~Hrefb.] 0. secs (0.u,0.s) Chars 26527 - 26561 [(repeat~red~in~Hrefb;~cbn~in~H...] 0. secs (0.u,0.s) -Chars 26562 - 26572 [(inv~Hrefb).] 0.026 secs (0.026u,0.s) -Chars 26577 - 26590 [ddestruction.] 0.006 secs (0.006u,0.s) +Chars 26562 - 26572 [(inv~Hrefb).] 0.024 secs (0.024u,0.s) +Chars 26577 - 26590 [ddestruction.] 0.005 secs (0.005u,0.s) Chars 26595 - 26680 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) Chars 26685 - 26716 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) Chars 26717 - 26731 [(apply~IHHconv).] 0. secs (0.u,0.s) @@ -1175,7 +1175,7 @@ Chars 26776 - 26777 [+] 0. secs (0.u,0.s) Chars 26778 - 26793 [(apply~H7~in~H0).] 0. secs (0.u,0.s) Chars 26794 - 26805 [(destruct~b).] 0. secs (0.u,0.s) Chars 26806 - 26811 [auto.] 0. secs (0.u,0.s) -Chars 26812 - 26816 [Qed.] 0.049 secs (0.048u,0.s) +Chars 26812 - 26816 [Qed.] 0.051 secs (0.05u,0.001s) Chars 26818 - 27046 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) Chars 27047 - 27053 [Proof.] 0. secs (0.u,0.s) Chars 27056 - 27063 [(intros).] 0. secs (0.u,0.s) @@ -1183,7 +1183,7 @@ Chars 27064 - 27090 [generalize~dependent~log'.] 0. secs (0.u,0.s) Chars 27093 - 27120 [(induction~log;~cbn;~intros).] 0. secs (0.u,0.s) Chars 27123 - 27124 [-] 0. secs (0.u,0.s) Chars 27125 - 27136 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27137 - 27168 [setoid_rewrite~bind_ret_l~in~H.] 0.022 secs (0.022u,0.s) +Chars 27137 - 27168 [setoid_rewrite~bind_ret_l~in~H.] 0.021 secs (0.021u,0.s) Chars 27169 - 27179 [(rewrite~H).] 0.005 secs (0.005u,0.s) Chars 27184 - 27210 [(apply~may_converge_append).] 0. secs (0.u,0.s) Chars 27211 - 27239 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) @@ -1193,25 +1193,25 @@ Chars 27343 - 27344 [{] 0. secs (0.u,0.s) Chars 27345 - 27349 [(cbn).] 0. secs (0.u,0.s) Chars 27350 - 27362 [reflexivity.] 0. secs (0.u,0.s) Chars 27363 - 27364 [}] 0. secs (0.u,0.s) -Chars 27369 - 27385 [(rewrite~H0~in~H).] 0.021 secs (0.021u,0.s) +Chars 27369 - 27385 [(rewrite~H0~in~H).] 0.021 secs (0.02u,0.s) Chars 27390 - 27417 [(destruct~log'~as~[|~h~t]).] 0. secs (0.u,0.s) Chars 27422 - 27423 [+] 0. secs (0.u,0.s) -Chars 27424 - 27455 [setoid_rewrite~bind_ret_l~in~H.] 0.028 secs (0.028u,0.s) +Chars 27424 - 27455 [setoid_rewrite~bind_ret_l~in~H.] 0.03 secs (0.029u,0.s) Chars 27456 - 27467 [(simpl~in~H).] 0. secs (0.u,0.s) Chars 27468 - 27475 [sinv~H.] 0.004 secs (0.004u,0.s) Chars 27481 - 27482 [+] 0. secs (0.u,0.s) Chars 27483 - 27494 [(simpl~in~H).] 0. secs (0.u,0.s) Chars 27495 - 27514 [(unfold~append~in~H).] 0. secs (0.u,0.s) -Chars 27515 - 27544 [(repeat~rewrite~bind_vis~in~H).] 0.052 secs (0.051u,0.s) +Chars 27515 - 27544 [(repeat~rewrite~bind_vis~in~H).] 0.051 secs (0.05u,0.s) Chars 27545 - 27552 [sinv~H.] 0.009 secs (0.009u,0.s) -Chars 27559 - 27579 [(ddestruction;~subst).] 0.004 secs (0.003u,0.s) +Chars 27559 - 27579 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) Chars 27586 - 27655 [(assert~(ev_list_to_stream~log...] 0. secs (0.u,0.s) Chars 27662 - 27663 [{] 0. secs (0.u,0.s) Chars 27664 - 27674 [(apply~REL).] 0. secs (0.u,0.s) Chars 27675 - 27684 [(apply~tt).] 0. secs (0.u,0.s) Chars 27685 - 27686 [}] 0. secs (0.u,0.s) Chars 27693 - 27713 [(eapply~IHlog;~eauto).] 0. secs (0.u,0.s) -Chars 27714 - 27718 [Qed.] 0.014 secs (0.014u,0.s) +Chars 27714 - 27718 [Qed.] 0.013 secs (0.013u,0.s) Chars 27720 - 27933 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) Chars 27934 - 27940 [Proof.] 0. secs (0.u,0.s) Chars 27943 - 27966 [(intros~E~A~log~b'~Hdiv).] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITracePreds.v.timing b/extra/ITrace/ITracePreds.v.timing index 8b97783d..f5de58d1 100644 --- a/extra/ITrace/ITracePreds.v.timing +++ b/extra/ITrace/ITracePreds.v.timing @@ -1,6 +1,6 @@ Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 83 - 148 [From~ITree~Require~Import~Axio...] 0.217 secs (0.19u,0.026s) +Chars 83 - 148 [From~ITree~Require~Import~Axio...] 0.225 secs (0.19u,0.028s) Chars 150 - 259 [From~ITree.Extra~Require~Impor...] 0.028 secs (0.023u,0.004s) Chars 261 - 275 [Import~Monads.] 0. secs (0.u,0.s) Chars 276 - 297 [Import~MonadNotation.] 0. secs (0.u,0.s) @@ -20,7 +20,7 @@ Chars 1267 - 1340 [Definition~trace_forall~{E}~{R...] 0. secs (0.u,0.s) Chars 1342 - 1597 [Lemma~trace_forall_proper_aux~...] 0.032 secs (0.029u,0.003s) Chars 1598 - 1604 [Proof.] 0. secs (0.u,0.s) Chars 1607 - 1624 [(intros~E~R~PE~PR).] 0. secs (0.u,0.s) -Chars 1625 - 1644 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 1625 - 1644 [icoinduction~c~CIH.] 0. secs (0.u,0.s) Chars 1645 - 1672 [(intros~b1~b2~Heutt~Hforall).] 0. secs (0.u,0.s) Chars 1675 - 1691 [step~in~Hforall.] 0. secs (0.u,0.s) Chars 1694 - 1708 [step~in~Heutt.] 0. secs (0.u,0.s) @@ -50,7 +50,7 @@ Chars 1989 - 2001 [constructor.] 0. secs (0.u,0.s) Chars 2002 - 2013 [Utils.step.] 0. secs (0.u,0.s) Chars 2014 - 2028 [(apply~IHHeutt).] 0. secs (0.u,0.s) Chars 2029 - 2034 [auto.] 0. secs (0.u,0.s) -Chars 2035 - 2039 [Qed.] 0.055 secs (0.055u,0.s) +Chars 2035 - 2039 [Qed.] 0.054 secs (0.054u,0.s) Chars 2041 - 2150 [#[global]~Instance~trace_foral...] 0. secs (0.u,0.s) Chars 2151 - 2157 [Proof.] 0. secs (0.u,0.s) Chars 2160 - 2179 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) @@ -143,10 +143,10 @@ Chars 6759 - 6760 [-] 0. secs (0.u,0.s) Chars 6761 - 6773 [(apply~IHHsm).] 0. secs (0.u,0.s) Chars 6774 - 6781 [unstep.] 0.004 secs (0.004u,0.s) Chars 6782 - 6816 [(assert~(Tau~t~≈~t2)~by~now~st...] 0.002 secs (0.002u,0.s) -Chars 6824 - 6846 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.021u,0.s) +Chars 6824 - 6846 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.022u,0.s) Chars 6847 - 6852 [auto.] 0. secs (0.u,0.s) Chars 6857 - 6858 [-] 0. secs (0.u,0.s) -Chars 6859 - 6899 [(remember~(VisF~(evans~A~e~a)~...] 0.001 secs (0.001u,0.s) +Chars 6859 - 6899 [(remember~(VisF~(evans~A~e~a)~...] 0. secs (0.u,0.s) Chars 6900 - 6958 [(induction~Heutt;~subst;~auto~...] 0.003 secs (0.003u,0.s) Chars 6965 - 6997 [(injection~Heqot1;~intros;~sub...] 0.001 secs (0.001u,0.s) Chars 6998 - 7023 [dependent~destruction~H1.] 0.003 secs (0.003u,0.s) diff --git a/extra/ITrace/ITracePrefix.v.timing b/extra/ITrace/ITracePrefix.v.timing index a364ffb5..3e7f6b98 100644 --- a/extra/ITrace/ITracePrefix.v.timing +++ b/extra/ITrace/ITracePrefix.v.timing @@ -1,12 +1,12 @@ Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.229 secs (0.199u,0.029s) -Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.013 secs (0.011u,0.002s) +Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.24 secs (0.205u,0.033s) +Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.015 secs (0.012u,0.002s) Chars 293 - 307 [Import~Monads.] 0. secs (0.u,0.s) Chars 308 - 329 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 330 - 362 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) Chars 364 - 387 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.005 secs (0.004u,0.001s) +Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.006 secs (0.005u,0.001s) Chars 1395 - 1445 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) Chars 1447 - 1563 [Definition~trace_prefix_~{E}~{...] 0. secs (0.u,0.s) Chars 1565 - 1609 [#[global]~Hint~Unfold~trace_pr...] 0. secs (0.u,0.s) @@ -15,7 +15,7 @@ Chars 1690 - 1696 [Proof.] 0. secs (0.u,0.s) Chars 1699 - 1712 [(repeat~intro).] 0. secs (0.u,0.s) Chars 1713 - 1717 [(red).] 0. secs (0.u,0.s) Chars 1718 - 1728 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 1729 - 1789 [(induction~H0;~eauto~with~itre...] 0.04 secs (0.035u,0.004s) +Chars 1729 - 1789 [(induction~H0;~eauto~with~itre...] 0.042 secs (0.036u,0.006s) Chars 1791 - 1795 [Qed.] 0.001 secs (0.001u,0.s) Chars 1797 - 1873 [Definition~trace_prefix_mon~{E...] 0. secs (0.u,0.s) Chars 1875 - 1975 [Definition~trace_prefix~{E}~{R...] 0. secs (0.u,0.s) @@ -41,7 +41,7 @@ Chars 2451 - 2461 [exists~ks.] 0. secs (0.u,0.s) Chars 2462 - 2481 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) Chars 2482 - 2492 [(rewrite~x).] 0.044 secs (0.044u,0.s) Chars 2493 - 2505 [reflexivity.] 0. secs (0.u,0.s) -Chars 2506 - 2510 [Qed.] 0.012 secs (0.012u,0.s) +Chars 2506 - 2510 [Qed.] 0.011 secs (0.011u,0.s) Chars 2512 - 2608 [Lemma~trace_prefix_ret~:~~~for...] 0. secs (0.u,0.s) Chars 2609 - 2615 [Proof.] 0. secs (0.u,0.s) Chars 2618 - 2625 [(intros).] 0. secs (0.u,0.s) @@ -54,508 +54,504 @@ Chars 2691 - 2692 [}] 0. secs (0.u,0.s) Chars 2695 - 2708 [(rewrite~<-~H).] 0. secs (0.u,0.s) Chars 2709 - 2725 [auto~with~itree.] 0. secs (0.u,0.s) Chars 2726 - 2730 [Qed.] 0. secs (0.u,0.s) -Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.002 secs (0.001u,0.s) +Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.001 secs (0.001u,0.s) Chars 3374 - 3380 [Proof.] 0. secs (0.u,0.s) Chars 3383 - 3423 [(intros~E~S~R~t1~b2~Heutt~r~X~...] 0. secs (0.u,0.s) -Chars 3426 - 3449 [dependent~induction~H0.] 0.02 secs (0.019u,0.001s) +Chars 3426 - 3449 [dependent~induction~H0.] 0.019 secs (0.018u,0.s) Chars 3452 - 3453 [-] 0. secs (0.u,0.s) Chars 3454 - 3477 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) -Chars 3478 - 3504 [dependent~induction~Heutt.] 0.036 secs (0.035u,0.s) +Chars 3478 - 3504 [dependent~induction~Heutt.] 0.035 secs (0.035u,0.s) Chars 3509 - 3510 [+] 0. secs (0.u,0.s) -Chars 3511 - 3524 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3525 - 3548 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 3553 - 3554 [+] 0. secs (0.u,0.s) -Chars 3555 - 3568 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3569 - 3581 [constructor.] 0. secs (0.u,0.s) -Chars 3582 - 3604 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3607 - 3608 [-] 0. secs (0.u,0.s) -Chars 3609 - 3632 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) -Chars 3633 - 3648 [3:~reflexivity.] 0. secs (0.u,0.s) -Chars 3649 - 3660 [all:~eauto.] 0. secs (0.u,0.s) -Chars 3666 - 3685 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 3686 - 3717 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) -Chars 3722 - 3737 [(rewrite~x~in~H).] 0.026 secs (0.025u,0.s) -Chars 3738 - 3760 [(rewrite~tau_eutt~in~H).] 0.023 secs (0.023u,0.s) -Chars 3761 - 3775 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 3778 - 3779 [-] 0. secs (0.u,0.s) -Chars 3780 - 3802 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) -Chars 3803 - 3829 [dependent~induction~Heutt.] 0.041 secs (0.04u,0.s) -Chars 3834 - 3835 [+] 0. secs (0.u,0.s) -Chars 3836 - 3849 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3850 - 3862 [constructor.] 0. secs (0.u,0.s) -Chars 3867 - 3868 [+] 0. secs (0.u,0.s) -Chars 3869 - 3882 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3883 - 3895 [constructor.] 0. secs (0.u,0.s) -Chars 3896 - 3918 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3921 - 3922 [-] 0. secs (0.u,0.s) -Chars 3923 - 3945 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) -Chars 3946 - 3972 [dependent~induction~Heutt.] 0.051 secs (0.051u,0.s) -Chars 3977 - 3978 [+] 0. secs (0.u,0.s) -Chars 3979 - 3992 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3993 - 4005 [constructor.] 0. secs (0.u,0.s) -Chars 4006 - 4035 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) -Chars 4040 - 4041 [+] 0. secs (0.u,0.s) -Chars 4042 - 4055 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4056 - 4068 [constructor.] 0. secs (0.u,0.s) -Chars 4069 - 4091 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 4092 - 4096 [Qed.] 0.099 secs (0.097u,0.001s) -Chars 4098 - 4312 [Lemma~trace_prefix_tau_inv~:~~...] 0.001 secs (0.001u,0.s) -Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) -Chars 4322 - 4344 [(intros~E~S~R~m1~t~Hbp).] 0. secs (0.u,0.s) -Chars 4347 - 4371 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) -Chars 4374 - 4375 [-] 0. secs (0.u,0.s) -Chars 4376 - 4381 [auto.] 0. secs (0.u,0.s) -Chars 4384 - 4385 [-] 0. secs (0.u,0.s) -Chars 4386 - 4391 [step.] 0. secs (0.u,0.s) -Chars 4392 - 4404 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4405 - 4429 [dependent~induction~Hbp.] 0.008 secs (0.008u,0.s) -Chars 4434 - 4435 [+] 0. secs (0.u,0.s) -Chars 4436 - 4450 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 4451 - 4467 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 4472 - 4473 [+] 0. secs (0.u,0.s) -Chars 4474 - 4487 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4488 - 4500 [constructor.] 0. secs (0.u,0.s) -Chars 4501 - 4515 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 4520 - 4521 [+] 0. secs (0.u,0.s) -Chars 4522 - 4535 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4536 - 4548 [constructor.] 0. secs (0.u,0.s) -Chars 4549 - 4569 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) -Chars 4574 - 4575 [+] 0. secs (0.u,0.s) -Chars 4576 - 4581 [auto.] 0. secs (0.u,0.s) -Chars 4584 - 4585 [-] 0. secs (0.u,0.s) -Chars 4586 - 4591 [step.] 0. secs (0.u,0.s) -Chars 4592 - 4604 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4605 - 4629 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) -Chars 4634 - 4635 [+] 0. secs (0.u,0.s) -Chars 4636 - 4649 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4650 - 4662 [constructor.] 0. secs (0.u,0.s) -Chars 4663 - 4677 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 4682 - 4683 [+] 0. secs (0.u,0.s) -Chars 4684 - 4689 [auto.] 0. secs (0.u,0.s) -Chars 4694 - 4695 [+] 0. secs (0.u,0.s) -Chars 4696 - 4709 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4710 - 4722 [constructor.] 0. secs (0.u,0.s) -Chars 4723 - 4743 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) -Chars 4744 - 4748 [Qed.] 0.017 secs (0.017u,0.s) -Chars 4750 - 4890 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) -Chars 4891 - 4897 [Proof.] 0. secs (0.u,0.s) -Chars 4900 - 4913 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 4914 - 4933 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4934 - 4959 [(intros~b1~b2~b~Heutt~Hbp).] 0. secs (0.u,0.s) -Chars 4962 - 4976 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 4977 - 4989 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 4992 - 5018 [dependent~induction~Heutt.] 0.044 secs (0.043u,0.s) -Chars 5021 - 5022 [-] 0. secs (0.u,0.s) -Chars 5023 - 5036 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 5037 - 5049 [constructor.] 0. secs (0.u,0.s) -Chars 5052 - 5053 [-] 0. secs (0.u,0.s) -Chars 5054 - 5067 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 5068 - 5089 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) -Chars 5090 - 5101 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 5106 - 5138 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) -Chars 5143 - 5144 [+] 0. secs (0.u,0.s) -Chars 5145 - 5153 [(inv~Hbp).] 0.012 secs (0.012u,0.s) -Chars 5154 - 5166 [constructor.] 0. secs (0.u,0.s) -Chars 5167 - 5191 [dependent~induction~H0.] 0.015 secs (0.015u,0.s) -Chars 5198 - 5199 [*] 0. secs (0.u,0.s) -Chars 5200 - 5220 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) -Chars 5221 - 5246 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 5255 - 5271 [(rewrite~x0~in~H).] 0.024 secs (0.024u,0.s) -Chars 5272 - 5296 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) -Chars 5305 - 5315 [step~in~H.] 0. secs (0.u,0.s) -Chars 5316 - 5325 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5326 - 5348 [dependent~induction~H.] 0.042 secs (0.041u,0.s) -Chars 5357 - 5359 [++] 0. secs (0.u,0.s) -Chars 5360 - 5373 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 5374 - 5397 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 5406 - 5408 [++] 0. secs (0.u,0.s) -Chars 5409 - 5422 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 5423 - 5435 [constructor.] 0. secs (0.u,0.s) -Chars 5436 - 5458 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 5465 - 5466 [*] 0. secs (0.u,0.s) -Chars 5467 - 5490 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) -Chars 5491 - 5506 [5:~reflexivity.] 0. secs (0.u,0.s) -Chars 5507 - 5517 [all:~auto.] 0.001 secs (0.001u,0.s) -Chars 5526 - 5545 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 5546 - 5571 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 5580 - 5595 [(rewrite~x~in~H).] 0.024 secs (0.023u,0.s) -Chars 5596 - 5618 [(rewrite~tau_eutt~in~H).] 0.023 secs (0.023u,0.s) -Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) -Chars 5629 - 5630 [+] 0. secs (0.u,0.s) -Chars 5631 - 5643 [constructor.] 0. secs (0.u,0.s) -Chars 5644 - 5662 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 5663 - 5698 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) -Chars 5703 - 5704 [+] 0. secs (0.u,0.s) -Chars 5705 - 5717 [constructor.] 0. secs (0.u,0.s) -Chars 5718 - 5729 [clear~Heqb.] 0. secs (0.u,0.s) -Chars 5730 - 5738 [(inv~Hbp).] 0.015 secs (0.015u,0.s) -Chars 5739 - 5762 [dependent~induction~H0.] 0.021 secs (0.02u,0.s) -Chars 5769 - 5770 [*] 0. secs (0.u,0.s) -Chars 5771 - 5791 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) -Chars 5792 - 5817 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 5826 - 5842 [(rewrite~x0~in~H).] 0.026 secs (0.025u,0.s) -Chars 5843 - 5853 [step~in~H.] 0. secs (0.u,0.s) -Chars 5854 - 5863 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5872 - 5894 [dependent~induction~H.] 0.074 secs (0.073u,0.s) -Chars 5903 - 5905 [++] 0. secs (0.u,0.s) -Chars 5906 - 5919 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 5920 - 5943 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 5952 - 5954 [++] 0. secs (0.u,0.s) -Chars 5955 - 5968 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 5969 - 5981 [constructor.] 0. secs (0.u,0.s) -Chars 5982 - 6018 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) -Chars 6031 - 6056 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 6068 - 6076 [sinv~x0.] 0.023 secs (0.022u,0.s) -Chars 6077 - 6100 [(apply~simpobs~in~x,~H2).] 0. secs (0.u,0.s) -Chars 6114 - 6144 [(rewrite~x,~H2,~tau_eutt~in~H0).] 0.056 secs (0.056u,0.s) -Chars 6157 - 6179 [now~rewrite~<-~H0,~H2.] 0.003 secs (0.003u,0.s) -Chars 6187 - 6188 [*] 0. secs (0.u,0.s) -Chars 6189 - 6212 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) -Chars 6213 - 6228 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 6229 - 6239 [all:~auto.] 0.001 secs (0.001u,0.s) -Chars 6248 - 6273 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 6274 - 6293 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6302 - 6317 [(rewrite~x~in~H).] 0.023 secs (0.023u,0.s) -Chars 6318 - 6340 [(rewrite~tau_eutt~in~H).] 0.02 secs (0.02u,0.s) -Chars 6341 - 6346 [auto.] 0. secs (0.u,0.s) -Chars 6353 - 6354 [*] 0. secs (0.u,0.s) -Chars 6355 - 6380 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 6381 - 6400 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6409 - 6425 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) -Chars 6434 - 6445 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6446 - 6455 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6464 - 6487 [dependent~induction~H0.] 0.063 secs (0.063u,0.s) -Chars 6496 - 6498 [++] 0. secs (0.u,0.s) -Chars 6499 - 6512 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 6513 - 6525 [constructor.] 0. secs (0.u,0.s) -Chars 6534 - 6536 [++] 0. secs (0.u,0.s) -Chars 6537 - 6550 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 6551 - 6563 [constructor.] 0. secs (0.u,0.s) -Chars 6564 - 6600 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) -Chars 6612 - 6637 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 6649 - 6668 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6669 - 6685 [(rewrite~x~in~H1).] 0.03 secs (0.03u,0.s) -Chars 6686 - 6709 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) -Chars 6710 - 6715 [auto.] 0. secs (0.u,0.s) -Chars 6722 - 6723 [*] 0. secs (0.u,0.s) -Chars 6725 - 6744 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6745 - 6770 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 6779 - 6795 [(rewrite~x~in~H0).] 0.022 secs (0.022u,0.s) -Chars 6796 - 6807 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6808 - 6817 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6826 - 6849 [dependent~induction~H0.] 0.066 secs (0.065u,0.s) -Chars 6858 - 6860 [++] 0. secs (0.u,0.s) -Chars 6861 - 6874 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 6875 - 6887 [constructor.] 0. secs (0.u,0.s) -Chars 6888 - 6922 [(eapply~CIH;~try~apply~REL0;~e...] 0. secs (0.u,0.s) -Chars 6932 - 6934 [++] 0. secs (0.u,0.s) -Chars 6935 - 6948 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 6949 - 6961 [constructor.] 0. secs (0.u,0.s) -Chars 6962 - 6998 [(eapply~IHeqitF;~try~apply~x0;...] 0.006 secs (0.006u,0.s) -Chars 7010 - 7035 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 7047 - 7066 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7067 - 7083 [(rewrite~x~in~H1).] 0.035 secs (0.035u,0.s) -Chars 7084 - 7107 [(rewrite~tau_eutt~in~H1).] 0.001 secs (0.001u,0.s) -Chars 7108 - 7113 [auto.] 0. secs (0.u,0.s) -Chars 7116 - 7117 [-] 0. secs (0.u,0.s) -Chars 7118 - 7131 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7132 - 7153 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) -Chars 7154 - 7165 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 7171 - 7195 [dependent~induction~Hbp.] 0.017 secs (0.017u,0.s) -Chars 7200 - 7201 [+] 0. secs (0.u,0.s) -Chars 7202 - 7215 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7216 - 7228 [constructor.] 0. secs (0.u,0.s) -Chars 7229 - 7249 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) -Chars 7254 - 7255 [+] 0. secs (0.u,0.s) -Chars 7256 - 7269 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7270 - 7282 [constructor.] 0. secs (0.u,0.s) -Chars 7287 - 7288 [+] 0. secs (0.u,0.s) -Chars 7289 - 7302 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7304 - 7316 [constructor.] 0. secs (0.u,0.s) -Chars 7317 - 7361 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) -Chars 7364 - 7365 [-] 0. secs (0.u,0.s) -Chars 7366 - 7386 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) -Chars 7391 - 7423 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) -Chars 7428 - 7429 [+] 0. secs (0.u,0.s) -Chars 7430 - 7444 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7445 - 7453 [(inv~Hbp).] 0.02 secs (0.02u,0.s) -Chars 7454 - 7467 [clear~Heqb~x.] 0. secs (0.u,0.s) -Chars 7474 - 7497 [dependent~induction~H0.] 0.012 secs (0.012u,0.s) -Chars 7504 - 7505 [*] 0. secs (0.u,0.s) -Chars 7506 - 7529 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) -Chars 7530 - 7545 [clear~CIH~x0~x.] 0. secs (0.u,0.s) -Chars 7554 - 7581 [dependent~induction~Heutt.] 0.04 secs (0.039u,0.s) -Chars 7590 - 7592 [++] 0. secs (0.u,0.s) -Chars 7593 - 7606 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7607 - 7630 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 7639 - 7641 [++] 0. secs (0.u,0.s) -Chars 7642 - 7655 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7656 - 7668 [constructor.] 0. secs (0.u,0.s) -Chars 7669 - 7691 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 7698 - 7699 [*] 0. secs (0.u,0.s) -Chars 7700 - 7723 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) -Chars 7724 - 7739 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 7740 - 7750 [all:~auto.] 0. secs (0.u,0.s) -Chars 7759 - 7790 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) -Chars 7800 - 7819 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7820 - 7835 [(rewrite~x~in~H).] 0.023 secs (0.022u,0.s) -Chars 7836 - 7858 [(rewrite~tau_eutt~in~H).] 0.021 secs (0.021u,0.s) -Chars 7859 - 7873 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 7878 - 7879 [+] 0. secs (0.u,0.s) -Chars 7880 - 7892 [constructor.] 0. secs (0.u,0.s) -Chars 7893 - 7915 [(eapply~IHHeutt;~eauto).] 0.003 secs (0.003u,0.s) -Chars 7916 - 7923 [unstep.] 0. secs (0.u,0.s) -Chars 7924 - 7959 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) -Chars 7964 - 7965 [+] 0. secs (0.u,0.s) -Chars 7966 - 7980 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7981 - 7989 [(inv~Hbp).] 0.022 secs (0.022u,0.s) -Chars 7990 - 8032 [(eapply~trace_prefix_proper_au...] 0. secs (0.u,0.s) -Chars 8035 - 8036 [-] 0. secs (0.u,0.s) -Chars 8037 - 8050 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 8051 - 8063 [constructor.] 0. secs (0.u,0.s) -Chars 8064 - 8086 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 8087 - 8091 [Qed.] 0.31 secs (0.306u,0.003s) -Chars 8093 - 8369 [Lemma~trace_prefixF_tau_inv_r~...] 0.001 secs (0.001u,0.s) -Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) -Chars 8379 - 8401 [(intros~E~S~R~t1~b~Hbp).] 0. secs (0.u,0.s) -Chars 8404 - 8429 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) -Chars 8432 - 8433 [-] 0. secs (0.u,0.s) -Chars 8434 - 8448 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 8449 - 8472 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 8475 - 8476 [-] 0. secs (0.u,0.s) -Chars 8478 - 8491 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 8492 - 8504 [constructor.] 0. secs (0.u,0.s) -Chars 8505 - 8519 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8537 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 8538 - 8550 [constructor.] 0. secs (0.u,0.s) -Chars 8551 - 8571 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) -Chars 8574 - 8575 [-] 0. secs (0.u,0.s) -Chars 8576 - 8581 [auto.] 0. secs (0.u,0.s) -Chars 8582 - 8586 [Qed.] 0.006 secs (0.006u,0.s) -Chars 8588 - 9127 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) -Chars 9128 - 9134 [Proof.] 0. secs (0.u,0.s) -Chars 9137 - 9175 [(intros~E~S~R~m1~m2~REL~r~X~e~...] 0. secs (0.u,0.s) -Chars 9178 - 9190 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9193 - 9216 [dependent~induction~H1.] 0.021 secs (0.021u,0.s) -Chars 9219 - 9220 [-] 0. secs (0.u,0.s) -Chars 9221 - 9244 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) -Chars 9245 - 9260 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 9261 - 9271 [all:~auto.] 0. secs (0.u,0.s) -Chars 9276 - 9296 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9301 - 9336 [(assert~(Tau~bs~≈~m2)~by~now~s...] 0.002 secs (0.002u,0.s) -Chars 9342 - 9364 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) -Chars 9365 - 9379 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 9382 - 9383 [-] 0. secs (0.u,0.s) -Chars 9384 - 9404 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9405 - 9429 [dependent~induction~REL.] 0.048 secs (0.047u,0.s) -Chars 9434 - 9435 [+] 0. secs (0.u,0.s) -Chars 9436 - 9449 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9450 - 9462 [constructor.] 0. secs (0.u,0.s) -Chars 9467 - 9468 [+] 0. secs (0.u,0.s) -Chars 9469 - 9482 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9483 - 9495 [constructor.] 0. secs (0.u,0.s) -Chars 9496 - 9516 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) -Chars 9519 - 9520 [-] 0. secs (0.u,0.s) -Chars 9522 - 9542 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9543 - 9567 [dependent~induction~REL.] 0.05 secs (0.049u,0.s) -Chars 9572 - 9573 [+] 0. secs (0.u,0.s) -Chars 9574 - 9587 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9588 - 9600 [constructor.] 0. secs (0.u,0.s) -Chars 9601 - 9645 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) -Chars 9650 - 9651 [+] 0. secs (0.u,0.s) -Chars 9652 - 9665 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9666 - 9678 [constructor.] 0. secs (0.u,0.s) -Chars 9679 - 9699 [(eapply~IHREL;~eauto).] 0.007 secs (0.007u,0.s) -Chars 9700 - 9704 [Qed.] 0.073 secs (0.072u,0.s) -Chars 9706 - 9846 [Lemma~trace_prefix_proper_r~:~...] 0. secs (0.u,0.s) -Chars 9847 - 9853 [Proof.] 0. secs (0.u,0.s) -Chars 9856 - 9869 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 9870 - 9889 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 9890 - 9915 [(intros~b~b1~b2~Heutt~Hbp).] 0. secs (0.u,0.s) -Chars 9918 - 9932 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 9933 - 9945 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 9949 - 9975 [dependent~induction~Heutt.] 0.052 secs (0.052u,0.s) -Chars 9978 - 9979 [-] 0. secs (0.u,0.s) -Chars 9980 - 9993 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9994 - 10015 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) -Chars 10016 - 10027 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 10028 - 10059 [(induction~Hbp;~auto~with~itree).] 0.004 secs (0.004u,0.s) -Chars 10064 - 10065 [+] 0. secs (0.u,0.s) -Chars 10067 - 10079 [constructor.] 0. secs (0.u,0.s) -Chars 10080 - 10098 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 10103 - 10104 [+] 0. secs (0.u,0.s) -Chars 10105 - 10117 [constructor.] 0. secs (0.u,0.s) -Chars 10118 - 10151 [now~do~2~ITree.Basics.Utils.step.] 0.002 secs (0.002u,0.s) -Chars 10155 - 10156 [-] 0. secs (0.u,0.s) -Chars 10158 - 10179 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) -Chars 10180 - 10193 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10194 - 10205 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 10210 - 10231 [(destruct~(observe~b)).] 0. secs (0.u,0.s) -Chars 10236 - 10237 [+] 0. secs (0.u,0.s) -Chars 10238 - 10261 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 10266 - 10267 [+] 0. secs (0.u,0.s) -Chars 10268 - 10280 [constructor.] 0. secs (0.u,0.s) -Chars 10281 - 10299 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 10300 - 10327 [(apply~trace_prefix_tau_inv).] 0. secs (0.u,0.s) -Chars 10328 - 10333 [auto.] 0. secs (0.u,0.s) -Chars 10338 - 10339 [+] 0. secs (0.u,0.s) -Chars 10340 - 10348 [(inv~Hbp).] 0.019 secs (0.019u,0.s) -Chars 10349 - 10361 [constructor.] 0. secs (0.u,0.s) -Chars 10362 - 10396 [(eapply~trace_prefixF_vis_l;~e...] 0. secs (0.u,0.s) -Chars 10399 - 10400 [-] 0. secs (0.u,0.s) -Chars 10401 - 10414 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10415 - 10436 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) -Chars 10438 - 10449 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 10450 - 10474 [dependent~induction~Hbp.] 0.021 secs (0.021u,0.s) -Chars 10479 - 10480 [+] 0. secs (0.u,0.s) -Chars 10481 - 10495 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 10496 - 10519 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) -Chars 10524 - 10525 [+] 0. secs (0.u,0.s) -Chars 10526 - 10539 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10540 - 10552 [constructor.] 0. secs (0.u,0.s) -Chars 10553 - 10573 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) -Chars 10578 - 10579 [+] 0. secs (0.u,0.s) -Chars 10580 - 10593 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10594 - 10606 [constructor.] 0. secs (0.u,0.s) -Chars 10611 - 10612 [+] 0. secs (0.u,0.s) -Chars 10613 - 10626 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10627 - 10639 [constructor.] 0. secs (0.u,0.s) -Chars 10640 - 10684 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) -Chars 10687 - 10688 [-] 0. secs (0.u,0.s) -Chars 10689 - 10710 [(eapply~IHHeutt;~auto).] 0.002 secs (0.002u,0.s) -Chars 10711 - 10731 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) -Chars 10732 - 10770 [(eapply~trace_prefixF_tau_inv_...] 0. secs (0.u,0.s) +Chars 3511 - 3519 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 3520 - 3543 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 3548 - 3549 [+] 0. secs (0.u,0.s) +Chars 3550 - 3558 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 3559 - 3571 [constructor.] 0. secs (0.u,0.s) +Chars 3572 - 3594 [(eapply~IHHeutt;~eauto).] 0.004 secs (0.004u,0.s) +Chars 3597 - 3598 [-] 0. secs (0.u,0.s) +Chars 3599 - 3622 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 3623 - 3638 [3:~reflexivity.] 0. secs (0.u,0.s) +Chars 3639 - 3650 [all:~eauto.] 0. secs (0.u,0.s) +Chars 3656 - 3675 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 3676 - 3707 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) +Chars 3712 - 3727 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) +Chars 3728 - 3750 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.022u,0.s) +Chars 3751 - 3765 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 3768 - 3769 [-] 0. secs (0.u,0.s) +Chars 3770 - 3792 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) +Chars 3793 - 3819 [dependent~induction~Heutt.] 0.04 secs (0.04u,0.s) +Chars 3824 - 3825 [+] 0. secs (0.u,0.s) +Chars 3826 - 3834 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 3835 - 3847 [constructor.] 0. secs (0.u,0.s) +Chars 3852 - 3853 [+] 0. secs (0.u,0.s) +Chars 3854 - 3862 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 3863 - 3875 [constructor.] 0. secs (0.u,0.s) +Chars 3876 - 3898 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 3901 - 3902 [-] 0. secs (0.u,0.s) +Chars 3903 - 3925 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) +Chars 3926 - 3952 [dependent~induction~Heutt.] 0.052 secs (0.051u,0.001s) +Chars 3957 - 3958 [+] 0. secs (0.u,0.s) +Chars 3959 - 3967 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 3968 - 3980 [constructor.] 0. secs (0.u,0.s) +Chars 3981 - 4010 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 4015 - 4016 [+] 0. secs (0.u,0.s) +Chars 4017 - 4025 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 4026 - 4038 [constructor.] 0. secs (0.u,0.s) +Chars 4039 - 4061 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 4062 - 4066 [Qed.] 0.097 secs (0.095u,0.001s) +Chars 4068 - 4282 [Lemma~trace_prefix_tau_inv~:~~...] 0.001 secs (0.001u,0.s) +Chars 4283 - 4289 [Proof.] 0. secs (0.u,0.s) +Chars 4292 - 4314 [(intros~E~S~R~m1~t~Hbp).] 0. secs (0.u,0.s) +Chars 4317 - 4341 [dependent~induction~Hbp.] 0.007 secs (0.007u,0.s) +Chars 4344 - 4345 [-] 0. secs (0.u,0.s) +Chars 4346 - 4351 [auto.] 0. secs (0.u,0.s) +Chars 4354 - 4355 [-] 0. secs (0.u,0.s) +Chars 4356 - 4361 [step.] 0. secs (0.u,0.s) +Chars 4362 - 4374 [clear~IHHbp.] 0. secs (0.u,0.s) +Chars 4375 - 4399 [dependent~induction~Hbp.] 0.012 secs (0.011u,0.s) +Chars 4404 - 4405 [+] 0. secs (0.u,0.s) +Chars 4406 - 4420 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 4421 - 4437 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 4442 - 4443 [+] 0. secs (0.u,0.s) +Chars 4444 - 4452 [simpobs.] 0. secs (0.u,0.s) +Chars 4453 - 4465 [constructor.] 0. secs (0.u,0.s) +Chars 4466 - 4480 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 4485 - 4486 [+] 0. secs (0.u,0.s) +Chars 4487 - 4495 [simpobs.] 0. secs (0.u,0.s) +Chars 4496 - 4508 [constructor.] 0. secs (0.u,0.s) +Chars 4509 - 4529 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 4534 - 4535 [+] 0. secs (0.u,0.s) +Chars 4536 - 4541 [auto.] 0. secs (0.u,0.s) +Chars 4544 - 4545 [-] 0. secs (0.u,0.s) +Chars 4546 - 4551 [step.] 0. secs (0.u,0.s) +Chars 4552 - 4564 [clear~IHHbp.] 0. secs (0.u,0.s) +Chars 4565 - 4589 [dependent~induction~Hbp.] 0.008 secs (0.008u,0.s) +Chars 4594 - 4595 [+] 0. secs (0.u,0.s) +Chars 4596 - 4604 [simpobs.] 0. secs (0.u,0.s) +Chars 4605 - 4617 [constructor.] 0. secs (0.u,0.s) +Chars 4618 - 4632 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 4637 - 4638 [+] 0. secs (0.u,0.s) +Chars 4639 - 4644 [auto.] 0. secs (0.u,0.s) +Chars 4649 - 4650 [+] 0. secs (0.u,0.s) +Chars 4651 - 4659 [simpobs.] 0. secs (0.u,0.s) +Chars 4660 - 4672 [constructor.] 0. secs (0.u,0.s) +Chars 4673 - 4693 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 4694 - 4698 [Qed.] 0.017 secs (0.017u,0.s) +Chars 4700 - 4840 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) +Chars 4841 - 4847 [Proof.] 0. secs (0.u,0.s) +Chars 4850 - 4863 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 4864 - 4883 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4884 - 4909 [(intros~b1~b2~b~Heutt~Hbp).] 0. secs (0.u,0.s) +Chars 4912 - 4926 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 4927 - 4939 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 4942 - 4968 [dependent~induction~Heutt.] 0.042 secs (0.041u,0.s) +Chars 4971 - 4972 [-] 0. secs (0.u,0.s) +Chars 4973 - 4981 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4982 - 4994 [constructor.] 0. secs (0.u,0.s) +Chars 4997 - 4998 [-] 0. secs (0.u,0.s) +Chars 4999 - 5007 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 5008 - 5019 [clear~x0~x.] 0. secs (0.u,0.s) +Chars 5024 - 5056 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) +Chars 5061 - 5062 [+] 0. secs (0.u,0.s) +Chars 5063 - 5071 [(inv~Hbp).] 0.015 secs (0.014u,0.s) +Chars 5072 - 5084 [constructor.] 0. secs (0.u,0.s) +Chars 5085 - 5109 [dependent~induction~H0.] 0.016 secs (0.016u,0.s) +Chars 5116 - 5117 [*] 0. secs (0.u,0.s) +Chars 5118 - 5138 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) +Chars 5139 - 5164 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 5173 - 5189 [(rewrite~x0~in~H).] 0.022 secs (0.021u,0.s) +Chars 5190 - 5214 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) +Chars 5223 - 5233 [step~in~H.] 0. secs (0.u,0.s) +Chars 5234 - 5243 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5244 - 5266 [dependent~induction~H.] 0.04 secs (0.039u,0.s) +Chars 5275 - 5277 [++] 0. secs (0.u,0.s) +Chars 5278 - 5286 [simpobs.] 0. secs (0.u,0.s) +Chars 5287 - 5310 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 5319 - 5321 [++] 0. secs (0.u,0.s) +Chars 5322 - 5330 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5331 - 5343 [constructor.] 0. secs (0.u,0.s) +Chars 5344 - 5366 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5373 - 5374 [*] 0. secs (0.u,0.s) +Chars 5375 - 5398 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 5399 - 5414 [5:~reflexivity.] 0. secs (0.u,0.s) +Chars 5415 - 5425 [all:~auto.] 0.001 secs (0.001u,0.s) +Chars 5434 - 5453 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 5454 - 5479 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.u,0.s) +Chars 5488 - 5503 [(rewrite~x~in~H).] 0.024 secs (0.024u,0.s) +Chars 5504 - 5526 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) +Chars 5527 - 5532 [auto.] 0. secs (0.u,0.s) +Chars 5537 - 5538 [+] 0. secs (0.u,0.s) +Chars 5539 - 5551 [constructor.] 0. secs (0.u,0.s) +Chars 5552 - 5570 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 5571 - 5606 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) +Chars 5611 - 5612 [+] 0. secs (0.u,0.s) +Chars 5613 - 5625 [constructor.] 0. secs (0.u,0.s) +Chars 5626 - 5637 [clear~Heqb.] 0. secs (0.u,0.s) +Chars 5638 - 5646 [(inv~Hbp).] 0.013 secs (0.013u,0.s) +Chars 5647 - 5670 [dependent~induction~H0.] 0.018 secs (0.018u,0.s) +Chars 5677 - 5678 [*] 0. secs (0.u,0.s) +Chars 5679 - 5699 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) +Chars 5700 - 5725 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 5734 - 5750 [(rewrite~x0~in~H).] 0.02 secs (0.02u,0.s) +Chars 5751 - 5761 [step~in~H.] 0. secs (0.u,0.s) +Chars 5762 - 5771 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5780 - 5802 [dependent~induction~H.] 0.07 secs (0.069u,0.s) +Chars 5811 - 5813 [++] 0. secs (0.u,0.s) +Chars 5814 - 5822 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5823 - 5846 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 5855 - 5857 [++] 0. secs (0.u,0.s) +Chars 5858 - 5866 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 5867 - 5879 [constructor.] 0. secs (0.u,0.s) +Chars 5880 - 5916 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) +Chars 5929 - 5954 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 5966 - 5974 [sinv~x0.] 0.019 secs (0.019u,0.s) +Chars 5975 - 5998 [(apply~simpobs~in~x,~H2).] 0. secs (0.u,0.s) +Chars 6012 - 6042 [(rewrite~x,~H2,~tau_eutt~in~H0).] 0.055 secs (0.055u,0.s) +Chars 6055 - 6077 [now~rewrite~<-~H0,~H2.] 0.003 secs (0.003u,0.s) +Chars 6085 - 6086 [*] 0. secs (0.u,0.s) +Chars 6087 - 6110 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 6111 - 6126 [4:~reflexivity.] 0. secs (0.u,0.s) +Chars 6127 - 6137 [all:~auto.] 0.001 secs (0.001u,0.s) +Chars 6146 - 6171 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6172 - 6191 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6200 - 6215 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) +Chars 6216 - 6238 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) +Chars 6239 - 6244 [auto.] 0. secs (0.u,0.s) +Chars 6251 - 6252 [*] 0. secs (0.u,0.s) +Chars 6253 - 6278 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6279 - 6298 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6307 - 6323 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) +Chars 6332 - 6343 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6344 - 6353 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6362 - 6385 [dependent~induction~H0.] 0.059 secs (0.058u,0.s) +Chars 6394 - 6396 [++] 0. secs (0.u,0.s) +Chars 6397 - 6405 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 6406 - 6418 [constructor.] 0. secs (0.u,0.s) +Chars 6427 - 6429 [++] 0. secs (0.u,0.s) +Chars 6430 - 6438 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 6439 - 6451 [constructor.] 0. secs (0.u,0.s) +Chars 6452 - 6488 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) +Chars 6500 - 6525 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 6537 - 6556 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6557 - 6573 [(rewrite~x~in~H1).] 0.032 secs (0.032u,0.s) +Chars 6574 - 6597 [(rewrite~tau_eutt~in~H1).] 0.001 secs (0.001u,0.s) +Chars 6598 - 6603 [auto.] 0. secs (0.u,0.s) +Chars 6610 - 6611 [*] 0. secs (0.u,0.s) +Chars 6613 - 6632 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6633 - 6658 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) +Chars 6667 - 6683 [(rewrite~x~in~H0).] 0.021 secs (0.021u,0.s) +Chars 6684 - 6695 [step~in~H0.] 0. secs (0.u,0.s) +Chars 6696 - 6705 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 6714 - 6737 [dependent~induction~H0.] 0.064 secs (0.063u,0.s) +Chars 6746 - 6748 [++] 0. secs (0.u,0.s) +Chars 6749 - 6757 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 6758 - 6770 [constructor.] 0. secs (0.u,0.s) +Chars 6771 - 6805 [(eapply~CIH;~try~apply~REL0;~e...] 0. secs (0.u,0.s) +Chars 6815 - 6817 [++] 0. secs (0.u,0.s) +Chars 6818 - 6826 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 6827 - 6839 [constructor.] 0. secs (0.u,0.s) +Chars 6840 - 6876 [(eapply~IHeqitF;~try~apply~x0;...] 0.006 secs (0.006u,0.s) +Chars 6888 - 6913 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) +Chars 6925 - 6944 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 6945 - 6961 [(rewrite~x~in~H1).] 0.031 secs (0.031u,0.s) +Chars 6962 - 6985 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) +Chars 6986 - 6991 [auto.] 0. secs (0.u,0.s) +Chars 6994 - 6995 [-] 0. secs (0.u,0.s) +Chars 6996 - 7004 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 7005 - 7016 [clear~x~x0.] 0. secs (0.u,0.s) +Chars 7022 - 7046 [dependent~induction~Hbp.] 0.016 secs (0.016u,0.s) +Chars 7051 - 7052 [+] 0. secs (0.u,0.s) +Chars 7053 - 7061 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7062 - 7074 [constructor.] 0. secs (0.u,0.s) +Chars 7075 - 7095 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7100 - 7101 [+] 0. secs (0.u,0.s) +Chars 7102 - 7110 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7111 - 7123 [constructor.] 0. secs (0.u,0.s) +Chars 7128 - 7129 [+] 0. secs (0.u,0.s) +Chars 7130 - 7138 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7140 - 7152 [constructor.] 0. secs (0.u,0.s) +Chars 7153 - 7197 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 7200 - 7201 [-] 0. secs (0.u,0.s) +Chars 7202 - 7222 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) +Chars 7227 - 7259 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) +Chars 7264 - 7265 [+] 0. secs (0.u,0.s) +Chars 7266 - 7280 [clear~IHHeutt.] 0. secs (0.u,0.s) +Chars 7281 - 7289 [(inv~Hbp).] 0.02 secs (0.02u,0.s) +Chars 7290 - 7303 [clear~Heqb~x.] 0. secs (0.u,0.s) +Chars 7310 - 7333 [dependent~induction~H0.] 0.012 secs (0.012u,0.s) +Chars 7340 - 7341 [*] 0. secs (0.u,0.s) +Chars 7342 - 7365 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) +Chars 7366 - 7381 [clear~CIH~x0~x.] 0. secs (0.u,0.s) +Chars 7390 - 7417 [dependent~induction~Heutt.] 0.04 secs (0.039u,0.s) +Chars 7426 - 7428 [++] 0. secs (0.u,0.s) +Chars 7429 - 7437 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7438 - 7461 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 7470 - 7472 [++] 0. secs (0.u,0.s) +Chars 7473 - 7481 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7482 - 7494 [constructor.] 0. secs (0.u,0.s) +Chars 7495 - 7517 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 7524 - 7525 [*] 0. secs (0.u,0.s) +Chars 7526 - 7549 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 7550 - 7565 [4:~reflexivity.] 0. secs (0.u,0.s) +Chars 7566 - 7576 [all:~auto.] 0. secs (0.u,0.s) +Chars 7585 - 7616 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) +Chars 7626 - 7645 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) +Chars 7646 - 7661 [(rewrite~x~in~H).] 0.025 secs (0.024u,0.s) +Chars 7662 - 7684 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.021u,0.s) +Chars 7685 - 7699 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 7704 - 7705 [+] 0. secs (0.u,0.s) +Chars 7706 - 7718 [constructor.] 0. secs (0.u,0.s) +Chars 7719 - 7741 [(eapply~IHHeutt;~eauto).] 0.004 secs (0.003u,0.s) +Chars 7742 - 7749 [unstep.] 0. secs (0.u,0.s) +Chars 7750 - 7785 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) +Chars 7790 - 7791 [+] 0. secs (0.u,0.s) +Chars 7792 - 7806 [clear~IHHeutt.] 0. secs (0.u,0.s) +Chars 7807 - 7815 [(inv~Hbp).] 0.023 secs (0.023u,0.s) +Chars 7816 - 7858 [(eapply~trace_prefix_proper_au...] 0. secs (0.u,0.s) +Chars 7861 - 7862 [-] 0. secs (0.u,0.s) +Chars 7863 - 7871 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7872 - 7884 [constructor.] 0. secs (0.u,0.s) +Chars 7885 - 7907 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 7908 - 7912 [Qed.] 0.301 secs (0.294u,0.006s) +Chars 7914 - 8190 [Lemma~trace_prefixF_tau_inv_r~...] 0.001 secs (0.001u,0.s) +Chars 8191 - 8197 [Proof.] 0. secs (0.u,0.s) +Chars 8200 - 8222 [(intros~E~S~R~t1~b~Hbp).] 0. secs (0.u,0.s) +Chars 8225 - 8250 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) +Chars 8253 - 8254 [-] 0. secs (0.u,0.s) +Chars 8255 - 8269 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 8270 - 8293 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 8296 - 8297 [-] 0. secs (0.u,0.s) +Chars 8299 - 8307 [simpobs.] 0. secs (0.u,0.s) +Chars 8308 - 8320 [constructor.] 0. secs (0.u,0.s) +Chars 8321 - 8335 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 8338 - 8339 [-] 0. secs (0.u,0.s) +Chars 8340 - 8348 [simpobs.] 0. secs (0.u,0.s) +Chars 8349 - 8361 [constructor.] 0. secs (0.u,0.s) +Chars 8362 - 8382 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 8385 - 8386 [-] 0. secs (0.u,0.s) +Chars 8387 - 8392 [auto.] 0. secs (0.u,0.s) +Chars 8393 - 8397 [Qed.] 0.006 secs (0.005u,0.s) +Chars 8399 - 8938 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) +Chars 8939 - 8945 [Proof.] 0. secs (0.u,0.s) +Chars 8948 - 8986 [(intros~E~S~R~m1~m2~REL~r~X~e~...] 0. secs (0.u,0.s) +Chars 8989 - 9001 [step~in~REL.] 0. secs (0.u,0.s) +Chars 9004 - 9027 [dependent~induction~H1.] 0.018 secs (0.018u,0.s) +Chars 9030 - 9031 [-] 0. secs (0.u,0.s) +Chars 9032 - 9055 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 9056 - 9071 [4:~reflexivity.] 0. secs (0.u,0.s) +Chars 9072 - 9082 [all:~auto.] 0. secs (0.u,0.s) +Chars 9087 - 9107 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) +Chars 9112 - 9147 [(assert~(Tau~bs~≈~m2)~by~now~s...] 0.002 secs (0.002u,0.s) +Chars 9153 - 9175 [(rewrite~tau_eutt~in~H).] 0.018 secs (0.018u,0.s) +Chars 9176 - 9190 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 9193 - 9194 [-] 0. secs (0.u,0.s) +Chars 9195 - 9215 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) +Chars 9216 - 9240 [dependent~induction~REL.] 0.046 secs (0.045u,0.s) +Chars 9245 - 9246 [+] 0. secs (0.u,0.s) +Chars 9247 - 9255 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 9256 - 9268 [constructor.] 0. secs (0.u,0.s) +Chars 9273 - 9274 [+] 0. secs (0.u,0.s) +Chars 9275 - 9283 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 9284 - 9296 [constructor.] 0. secs (0.u,0.s) +Chars 9297 - 9317 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) +Chars 9320 - 9321 [-] 0. secs (0.u,0.s) +Chars 9323 - 9343 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) +Chars 9344 - 9368 [dependent~induction~REL.] 0.046 secs (0.045u,0.s) +Chars 9373 - 9374 [+] 0. secs (0.u,0.s) +Chars 9375 - 9383 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 9384 - 9396 [constructor.] 0. secs (0.u,0.s) +Chars 9397 - 9441 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 9446 - 9447 [+] 0. secs (0.u,0.s) +Chars 9448 - 9456 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 9457 - 9469 [constructor.] 0. secs (0.u,0.s) +Chars 9470 - 9490 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) +Chars 9491 - 9495 [Qed.] 0.067 secs (0.065u,0.001s) +Chars 9497 - 9637 [Lemma~trace_prefix_proper_r~:~...] 0.008 secs (0.008u,0.s) +Chars 9638 - 9644 [Proof.] 0. secs (0.u,0.s) +Chars 9647 - 9660 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 9661 - 9680 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 9681 - 9706 [(intros~b~b1~b2~Heutt~Hbp).] 0. secs (0.u,0.s) +Chars 9709 - 9723 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 9724 - 9736 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 9740 - 9766 [dependent~induction~Heutt.] 0.044 secs (0.043u,0.s) +Chars 9769 - 9770 [-] 0. secs (0.u,0.s) +Chars 9771 - 9779 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 9780 - 9791 [clear~x0~x.] 0. secs (0.u,0.s) +Chars 9792 - 9823 [(induction~Hbp;~auto~with~itree).] 0.01 secs (0.01u,0.s) +Chars 9828 - 9829 [+] 0. secs (0.u,0.s) +Chars 9831 - 9843 [constructor.] 0. secs (0.u,0.s) +Chars 9844 - 9862 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 9867 - 9868 [+] 0. secs (0.u,0.s) +Chars 9869 - 9881 [constructor.] 0. secs (0.u,0.s) +Chars 9882 - 9915 [now~do~2~ITree.Basics.Utils.step.] 0.002 secs (0.002u,0.s) +Chars 9919 - 9920 [-] 0. secs (0.u,0.s) +Chars 9922 - 9943 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) +Chars 9944 - 9952 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 9953 - 9964 [clear~x0~x.] 0. secs (0.u,0.s) +Chars 9969 - 9990 [(destruct~(observe~b)).] 0. secs (0.u,0.s) +Chars 9995 - 9996 [+] 0. secs (0.u,0.s) +Chars 9997 - 10020 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 10025 - 10026 [+] 0. secs (0.u,0.s) +Chars 10027 - 10039 [constructor.] 0. secs (0.u,0.s) +Chars 10040 - 10058 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 10059 - 10086 [(apply~trace_prefix_tau_inv).] 0. secs (0.u,0.s) +Chars 10087 - 10092 [auto.] 0. secs (0.u,0.s) +Chars 10097 - 10098 [+] 0. secs (0.u,0.s) +Chars 10099 - 10107 [(inv~Hbp).] 0.013 secs (0.013u,0.s) +Chars 10108 - 10120 [constructor.] 0. secs (0.u,0.s) +Chars 10121 - 10155 [(eapply~trace_prefixF_vis_l;~e...] 0.003 secs (0.002u,0.s) +Chars 10158 - 10159 [-] 0. secs (0.u,0.s) +Chars 10160 - 10168 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 10169 - 10180 [clear~x~x0.] 0. secs (0.u,0.s) +Chars 10181 - 10205 [dependent~induction~Hbp.] 0.023 secs (0.022u,0.s) +Chars 10210 - 10211 [+] 0. secs (0.u,0.s) +Chars 10212 - 10226 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 10227 - 10250 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 10255 - 10256 [+] 0. secs (0.u,0.s) +Chars 10257 - 10265 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 10266 - 10278 [constructor.] 0. secs (0.u,0.s) +Chars 10279 - 10299 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 10304 - 10305 [+] 0. secs (0.u,0.s) +Chars 10306 - 10314 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 10315 - 10327 [constructor.] 0. secs (0.u,0.s) +Chars 10332 - 10333 [+] 0. secs (0.u,0.s) +Chars 10334 - 10342 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 10343 - 10355 [constructor.] 0. secs (0.u,0.s) +Chars 10356 - 10400 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 10403 - 10404 [-] 0. secs (0.u,0.s) +Chars 10405 - 10426 [(eapply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 10427 - 10447 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) +Chars 10448 - 10486 [(eapply~trace_prefixF_tau_inv_...] 0. secs (0.u,0.s) +Chars 10489 - 10490 [-] 0. secs (0.u,0.s) +Chars 10491 - 10499 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 10500 - 10512 [constructor.] 0. secs (0.u,0.s) +Chars 10513 - 10535 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 10536 - 10540 [Qed.] 0.071 secs (0.07u,0.001s) +Chars 10542 - 10650 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) +Chars 10651 - 10657 [Proof.] 0. secs (0.u,0.s) +Chars 10660 - 10673 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 10674 - 10688 [(split;~intros).] 0. secs (0.u,0.s) +Chars 10691 - 10692 [-] 0. secs (0.u,0.s) +Chars 10693 - 10729 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) +Chars 10734 - 10770 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) Chars 10773 - 10774 [-] 0. secs (0.u,0.s) -Chars 10775 - 10788 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10789 - 10801 [constructor.] 0. secs (0.u,0.s) -Chars 10802 - 10824 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 10825 - 10829 [Qed.] 0.068 secs (0.067u,0.s) -Chars 10831 - 10939 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) -Chars 10940 - 10946 [Proof.] 0. secs (0.u,0.s) -Chars 10949 - 10962 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 10963 - 10977 [(split;~intros).] 0. secs (0.u,0.s) -Chars 10980 - 10981 [-] 0. secs (0.u,0.s) -Chars 10982 - 11018 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) -Chars 11023 - 11059 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) -Chars 11062 - 11063 [-] 0. secs (0.u,0.s) -Chars 11064 - 11078 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 11079 - 11094 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 11099 - 11135 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) -Chars 11140 - 11176 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) -Chars 11177 - 11181 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11183 - 11598 [Inductive~ind_comb~{E}~{R}~{S}...] 0.005 secs (0.005u,0.s) -Chars 11600 - 11755 [Lemma~ind_comb_bind~:~~~forall...] 0. secs (0.u,0.s) -Chars 11756 - 11762 [Proof.] 0. secs (0.u,0.s) -Chars 11765 - 11791 [(intros~E~R~S~b1~b2~b~Hind).] 0. secs (0.u,0.s) -Chars 11792 - 11807 [(induction~Hind).] 0. secs (0.u,0.s) -Chars 11810 - 11811 [-] 0. secs (0.u,0.s) -Chars 11812 - 11822 [(rewrite~H).] 0.002 secs (0.002u,0.s) -Chars 11823 - 11842 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) -Chars 11843 - 11848 [auto.] 0. secs (0.u,0.s) -Chars 11851 - 11852 [-] 0. secs (0.u,0.s) -Chars 11853 - 11863 [(rewrite~H).] 0.007 secs (0.007u,0.s) -Chars 11864 - 11875 [(rewrite~H0).] 0.001 secs (0.001u,0.s) -Chars 11876 - 11893 [(rewrite~bind_vis).] 0.002 secs (0.002u,0.s) -Chars 11894 - 11899 [step.] 0.002 secs (0.002u,0.s) -Chars 11900 - 11912 [constructor.] 0. secs (0.u,0.s) -Chars 11913 - 11920 [(intros).] 0. secs (0.u,0.s) -Chars 11925 - 11936 [(destruct~v).] 0. secs (0.u,0.s) -Chars 11937 - 11950 [(apply~IHHind).] 0. secs (0.u,0.s) -Chars 11951 - 11955 [Qed.] 0.005 secs (0.005u,0.s) -Chars 11957 - 12359 [Inductive~trace_prefix_ind~{E}...] 0.004 secs (0.004u,0.s) -Chars 12361 - 12504 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) -Chars 12505 - 12511 [Proof.] 0. secs (0.u,0.s) -Chars 12514 - 12538 [(intros~E~R~S~b1~b2~Hpre).] 0. secs (0.u,0.s) -Chars 12539 - 12554 [(induction~Hpre).] 0. secs (0.u,0.s) -Chars 12557 - 12558 [-] 0. secs (0.u,0.s) -Chars 12559 - 12569 [exists~b2.] 0. secs (0.u,0.s) -Chars 12570 - 12590 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 12593 - 12594 [-] 0. secs (0.u,0.s) -Chars 12595 - 12623 [(destruct~IHHpre~as~[b3~Hb3]).] 0. secs (0.u,0.s) -Chars 12628 - 12638 [exists~b3.] 0. secs (0.u,0.s) -Chars 12639 - 12667 [(eapply~left_vis_comb;~eauto).] 0.003 secs (0.003u,0.s) -Chars 12668 - 12672 [Qed.] 0.001 secs (0.001u,0.s) -Chars 12674 - 12829 [Lemma~trace_prefix_ind_bind~:~...] 0. secs (0.u,0.s) -Chars 12830 - 12836 [Proof.] 0. secs (0.u,0.s) -Chars 12839 - 12846 [(intros).] 0. secs (0.u,0.s) -Chars 12847 - 12880 [(apply~trace_prefix_ind_comb~i...] 0. secs (0.u,0.s) -Chars 12881 - 12904 [(destruct~H~as~[b3~Hb3]).] 0. secs (0.u,0.s) -Chars 12907 - 12934 [(apply~ind_comb_bind~in~Hb3).] 0. secs (0.u,0.s) -Chars 12935 - 12956 [exists~(fun~_~=>~b3).] 0. secs (0.u,0.s) -Chars 12957 - 12962 [auto.] 0. secs (0.u,0.s) -Chars 12963 - 12967 [Qed.] 0. secs (0.u,0.s) -Chars 12969 - 13127 [Lemma~converge_trace_prefix~:~...] 0. secs (0.u,0.s) -Chars 13128 - 13134 [Proof.] 0. secs (0.u,0.s) -Chars 13137 - 13168 [(intros~E~R~S~b1~b2~r~Hbp~Hconv).] 0. secs (0.u,0.s) -Chars 13169 - 13193 [generalize~dependent~b2.] 0. secs (0.u,0.s) -Chars 13194 - 13218 [(induction~Hconv;~intros).] 0. secs (0.u,0.s) -Chars 13221 - 13222 [-] 0. secs (0.u,0.s) -Chars 13223 - 13249 [(eapply~left_ret_bp;~eauto).] 0.001 secs (0.001u,0.s) -Chars 13252 - 13253 [-] 0. secs (0.u,0.s) -Chars 13254 - 13271 [(rewrite~H~in~Hbp).] 0.006 secs (0.006u,0.s) -Chars 13272 - 13302 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) -Chars 13307 - 13338 [(apply~prefix_vis~in~Hbp~as~Hb2).] 0. secs (0.u,0.s) -Chars 13343 - 13368 [(destruct~Hb2~as~[k'~Hk']).] 0. secs (0.u,0.s) -Chars 13369 - 13388 [(rewrite~Hk'~in~Hbp).] 0.004 secs (0.004u,0.s) -Chars 13393 - 13419 [(eapply~left_vis_bp;~eauto).] 0.003 secs (0.003u,0.s) -Chars 13420 - 13431 [(destruct~b).] 0. secs (0.u,0.s) -Chars 13432 - 13446 [(apply~IHHconv).] 0. secs (0.u,0.s) -Chars 13451 - 13463 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 13464 - 13473 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 13474 - 13488 [(inversion~Hbp).] 0.004 secs (0.004u,0.s) -Chars 13489 - 13516 [(subst;~ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 13522 - 13527 [auto.] 0. secs (0.u,0.s) -Chars 13528 - 13532 [Qed.] 0.009 secs (0.009u,0.s) -Chars 13534 - 13662 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) -Chars 13663 - 13669 [Proof.] 0. secs (0.u,0.s) -Chars 13672 - 13685 [revert~b1~b2.] 0. secs (0.u,0.s) -Chars 13686 - 13705 [icoinduction~c~CIH.] 0.006 secs (0.006u,0.s) -Chars 13706 - 13728 [(intros~b1~b2~Hdiv~Hbf).] 0. secs (0.u,0.s) -Chars 13731 - 13743 [step~in~Hbf.] 0. secs (0.u,0.s) -Chars 13744 - 13757 [step~in~Hdiv.] 0. secs (0.u,0.s) -Chars 13758 - 13772 [(induction~Hbf).] 0.001 secs (0.001u,0.s) -Chars 13775 - 13776 [-] 0. secs (0.u,0.s) -Chars 13777 - 13786 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 13789 - 13790 [-] 0. secs (0.u,0.s) -Chars 13791 - 13803 [constructor.] 0. secs (0.u,0.s) -Chars 13804 - 13813 [(inv~Hdiv).] 0.006 secs (0.006u,0.s) -Chars 13814 - 13830 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 13833 - 13834 [-] 0. secs (0.u,0.s) -Chars 13835 - 13853 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 13854 - 13866 [(apply~IHHbf).] 0. secs (0.u,0.s) -Chars 13867 - 13874 [unstep.] 0. secs (0.u,0.s) -Chars 13875 - 13884 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 13888 - 13889 [-] 0. secs (0.u,0.s) -Chars 13890 - 13908 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 13911 - 13912 [-] 0. secs (0.u,0.s) -Chars 13913 - 13925 [constructor.] 0. secs (0.u,0.s) -Chars 13926 - 13936 [(intros~[]).] 0. secs (0.u,0.s) -Chars 13939 - 13940 [-] 0. secs (0.u,0.s) -Chars 13942 - 13954 [constructor.] 0. secs (0.u,0.s) -Chars 13955 - 13962 [(intros).] 0. secs (0.u,0.s) -Chars 13963 - 13972 [(inv~Hdiv).] 0.012 secs (0.012u,0.s) -Chars 13973 - 13993 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 13999 - 14010 [(destruct~v).] 0. secs (0.u,0.s) -Chars 14011 - 14027 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 14028 - 14037 [(apply~H1).] 0. secs (0.u,0.s) -Chars 14038 - 14042 [Qed.] 0.02 secs (0.02u,0.s) -Chars 14044 - 14181 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) -Chars 14182 - 14188 [Proof.] 0. secs (0.u,0.s) -Chars 14191 - 14198 [(intros).] 0. secs (0.u,0.s) -Chars 14199 - 14230 [(destruct~(classic_converge~b1)).] 0. secs (0.u,0.s) -Chars 14233 - 14234 [-] 0. secs (0.u,0.s) -Chars 14235 - 14260 [(destruct~H0~as~[r~Hconv]).] 0. secs (0.u,0.s) -Chars 14261 - 14306 [(eapply~converge_trace_prefix~...] 0.001 secs (0.001u,0.s) -Chars 14311 - 14339 [(apply~trace_prefix_ind_bind).] 0. secs (0.u,0.s) -Chars 14340 - 14345 [auto.] 0. secs (0.u,0.s) -Chars 14348 - 14349 [-] 0. secs (0.u,0.s) -Chars 14439 - 14501 [specialize~(@trace_prefix_div~...] 0. secs (0.u,0.s) -Chars 14507 - 14536 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 14537 - 14560 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 14561 - 14581 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 14586 - 14655 [(eapply~noret_bind_nop~with~(f...] 0. secs (0.u,0.s) -Chars 14660 - 14697 [(eapply~euttNoRet_trans;~try~a...] 0.004 secs (0.004u,0.s) -Chars 14698 - 14718 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 14719 - 14724 [auto.] 0. secs (0.u,0.s) -Chars 14725 - 14729 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10775 - 10789 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 10790 - 10805 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 10810 - 10846 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) +Chars 10851 - 10887 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) +Chars 10888 - 10892 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10894 - 11309 [Inductive~ind_comb~{E}~{R}~{S}...] 0.005 secs (0.005u,0.s) +Chars 11311 - 11466 [Lemma~ind_comb_bind~:~~~forall...] 0. secs (0.u,0.s) +Chars 11467 - 11473 [Proof.] 0. secs (0.u,0.s) +Chars 11476 - 11502 [(intros~E~R~S~b1~b2~b~Hind).] 0. secs (0.u,0.s) +Chars 11503 - 11518 [(induction~Hind).] 0. secs (0.u,0.s) +Chars 11521 - 11522 [-] 0. secs (0.u,0.s) +Chars 11523 - 11533 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 11534 - 11553 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 11554 - 11559 [auto.] 0. secs (0.u,0.s) +Chars 11562 - 11563 [-] 0. secs (0.u,0.s) +Chars 11564 - 11574 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 11575 - 11586 [(rewrite~H0).] 0.004 secs (0.003u,0.s) +Chars 11587 - 11604 [(rewrite~bind_vis).] 0.002 secs (0.002u,0.s) +Chars 11605 - 11610 [step.] 0.002 secs (0.002u,0.s) +Chars 11611 - 11623 [constructor.] 0. secs (0.u,0.s) +Chars 11624 - 11631 [(intros).] 0. secs (0.u,0.s) +Chars 11636 - 11647 [(destruct~v).] 0. secs (0.u,0.s) +Chars 11648 - 11661 [(apply~IHHind).] 0. secs (0.u,0.s) +Chars 11662 - 11666 [Qed.] 0.005 secs (0.005u,0.s) +Chars 11668 - 12070 [Inductive~trace_prefix_ind~{E}...] 0.004 secs (0.004u,0.s) +Chars 12072 - 12215 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) +Chars 12216 - 12222 [Proof.] 0. secs (0.u,0.s) +Chars 12225 - 12249 [(intros~E~R~S~b1~b2~Hpre).] 0. secs (0.u,0.s) +Chars 12250 - 12265 [(induction~Hpre).] 0. secs (0.u,0.s) +Chars 12268 - 12269 [-] 0. secs (0.u,0.s) +Chars 12270 - 12280 [exists~b2.] 0. secs (0.u,0.s) +Chars 12281 - 12301 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 12304 - 12305 [-] 0. secs (0.u,0.s) +Chars 12306 - 12334 [(destruct~IHHpre~as~[b3~Hb3]).] 0. secs (0.u,0.s) +Chars 12339 - 12349 [exists~b3.] 0. secs (0.u,0.s) +Chars 12350 - 12378 [(eapply~left_vis_comb;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12379 - 12383 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12385 - 12540 [Lemma~trace_prefix_ind_bind~:~...] 0. secs (0.u,0.s) +Chars 12541 - 12547 [Proof.] 0. secs (0.u,0.s) +Chars 12550 - 12557 [(intros).] 0. secs (0.u,0.s) +Chars 12558 - 12591 [(apply~trace_prefix_ind_comb~i...] 0. secs (0.u,0.s) +Chars 12592 - 12615 [(destruct~H~as~[b3~Hb3]).] 0. secs (0.u,0.s) +Chars 12618 - 12645 [(apply~ind_comb_bind~in~Hb3).] 0. secs (0.u,0.s) +Chars 12646 - 12667 [exists~(fun~_~=>~b3).] 0. secs (0.u,0.s) +Chars 12668 - 12673 [auto.] 0. secs (0.u,0.s) +Chars 12674 - 12678 [Qed.] 0. secs (0.u,0.s) +Chars 12680 - 12838 [Lemma~converge_trace_prefix~:~...] 0. secs (0.u,0.s) +Chars 12839 - 12845 [Proof.] 0. secs (0.u,0.s) +Chars 12848 - 12879 [(intros~E~R~S~b1~b2~r~Hbp~Hconv).] 0. secs (0.u,0.s) +Chars 12880 - 12904 [generalize~dependent~b2.] 0. secs (0.u,0.s) +Chars 12905 - 12929 [(induction~Hconv;~intros).] 0. secs (0.u,0.s) +Chars 12932 - 12933 [-] 0. secs (0.u,0.s) +Chars 12934 - 12960 [(eapply~left_ret_bp;~eauto).] 0. secs (0.u,0.s) +Chars 12963 - 12964 [-] 0. secs (0.u,0.s) +Chars 12965 - 12982 [(rewrite~H~in~Hbp).] 0.003 secs (0.003u,0.s) +Chars 12983 - 13013 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) +Chars 13018 - 13049 [(apply~prefix_vis~in~Hbp~as~Hb2).] 0. secs (0.u,0.s) +Chars 13054 - 13079 [(destruct~Hb2~as~[k'~Hk']).] 0. secs (0.u,0.s) +Chars 13080 - 13099 [(rewrite~Hk'~in~Hbp).] 0.008 secs (0.007u,0.s) +Chars 13104 - 13130 [(eapply~left_vis_bp;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13131 - 13142 [(destruct~b).] 0. secs (0.u,0.s) +Chars 13143 - 13157 [(apply~IHHconv).] 0. secs (0.u,0.s) +Chars 13162 - 13174 [step~in~Hbp.] 0. secs (0.u,0.s) +Chars 13175 - 13184 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 13185 - 13199 [(inversion~Hbp).] 0.004 secs (0.004u,0.s) +Chars 13200 - 13227 [(subst;~ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) +Chars 13239 - 13243 [Qed.] 0.009 secs (0.008u,0.s) +Chars 13245 - 13373 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) +Chars 13374 - 13380 [Proof.] 0. secs (0.u,0.s) +Chars 13383 - 13396 [revert~b1~b2.] 0. secs (0.u,0.s) +Chars 13397 - 13416 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 13417 - 13439 [(intros~b1~b2~Hdiv~Hbf).] 0. secs (0.u,0.s) +Chars 13442 - 13454 [step~in~Hbf.] 0. secs (0.u,0.s) +Chars 13455 - 13468 [step~in~Hdiv.] 0. secs (0.u,0.s) +Chars 13469 - 13483 [(induction~Hbf).] 0.001 secs (0.001u,0.s) +Chars 13486 - 13487 [-] 0. secs (0.u,0.s) +Chars 13488 - 13497 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 13500 - 13501 [-] 0. secs (0.u,0.s) +Chars 13502 - 13514 [constructor.] 0. secs (0.u,0.s) +Chars 13515 - 13524 [(inv~Hdiv).] 0.006 secs (0.006u,0.s) +Chars 13525 - 13541 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 13544 - 13545 [-] 0. secs (0.u,0.s) +Chars 13546 - 13564 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 13565 - 13577 [(apply~IHHbf).] 0. secs (0.u,0.s) +Chars 13578 - 13585 [unstep.] 0. secs (0.u,0.s) +Chars 13586 - 13595 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 13599 - 13600 [-] 0. secs (0.u,0.s) +Chars 13601 - 13619 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 13622 - 13623 [-] 0. secs (0.u,0.s) +Chars 13624 - 13636 [constructor.] 0. secs (0.u,0.s) +Chars 13637 - 13647 [(intros~[]).] 0. secs (0.u,0.s) +Chars 13650 - 13651 [-] 0. secs (0.u,0.s) +Chars 13653 - 13665 [constructor.] 0. secs (0.u,0.s) +Chars 13666 - 13673 [(intros).] 0. secs (0.u,0.s) +Chars 13674 - 13683 [(inv~Hdiv).] 0.012 secs (0.012u,0.s) +Chars 13684 - 13704 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 13710 - 13721 [(destruct~v).] 0. secs (0.u,0.s) +Chars 13722 - 13738 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 13739 - 13748 [(apply~H1).] 0. secs (0.u,0.s) +Chars 13749 - 13753 [Qed.] 0.018 secs (0.018u,0.s) +Chars 13755 - 13892 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) +Chars 13893 - 13899 [Proof.] 0. secs (0.u,0.s) +Chars 13902 - 13909 [(intros).] 0. secs (0.u,0.s) +Chars 13910 - 13941 [(destruct~(classic_converge~b1)).] 0. secs (0.u,0.s) +Chars 13944 - 13945 [-] 0. secs (0.u,0.s) +Chars 13946 - 13971 [(destruct~H0~as~[r~Hconv]).] 0. secs (0.u,0.s) +Chars 13972 - 14017 [(eapply~converge_trace_prefix~...] 0.001 secs (0.001u,0.s) +Chars 14022 - 14050 [(apply~trace_prefix_ind_bind).] 0. secs (0.u,0.s) +Chars 14051 - 14056 [auto.] 0. secs (0.u,0.s) +Chars 14059 - 14060 [-] 0. secs (0.u,0.s) +Chars 14150 - 14212 [specialize~(@trace_prefix_div~...] 0. secs (0.u,0.s) +Chars 14218 - 14247 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) +Chars 14248 - 14271 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) +Chars 14272 - 14292 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 14297 - 14366 [(eapply~noret_bind_nop~with~(f...] 0. secs (0.u,0.s) +Chars 14371 - 14408 [(eapply~euttNoRet_trans;~try~a...] 0.004 secs (0.004u,0.s) +Chars 14409 - 14429 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 14430 - 14435 [auto.] 0. secs (0.u,0.s) +Chars 14436 - 14440 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/Labels.v.timing b/extra/Secure/Labels.v.timing index 1aad102e..05bdd585 100644 --- a/extra/Secure/Labels.v.timing +++ b/extra/Secure/Labels.v.timing @@ -1,4 +1,4 @@ -Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.177 secs (0.156u,0.02s) +Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.182 secs (0.158u,0.023s) Chars 104 - 153 [Variant~nonempty~(A~:~Type)~:~...] 0. secs (0.u,0.s) Chars 155 - 220 [Variant~empty~(A~:~Type)~:~Pro...] 0. secs (0.u,0.s) Chars 222 - 276 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqEuttHalt.v.timing b/extra/Secure/SecureEqEuttHalt.v.timing new file mode 100644 index 00000000..b3c3a7f3 --- /dev/null +++ b/extra/Secure/SecureEqEuttHalt.v.timing @@ -0,0 +1,1773 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 39 - 76 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 78 - 143 [From~ITree~Require~Import~Axio...] 0.242 secs (0.205u,0.035s) +Chars 145 - 222 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.u,0.s) +Chars 224 - 238 [Import~Monads.] 0. secs (0.u,0.s) +Chars 239 - 260 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 261 - 290 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 292 - 485 [Lemma~tau_eqit_secure~:~~~fora...] 0. secs (0.u,0.s) +Chars 486 - 492 [Proof.] 0. secs (0.u,0.s) +Chars 495 - 526 [(intros~E~R1~R2~Label~priv~l~RR).] 0. secs (0.u,0.s) +Chars 528 - 546 [(intros~t1~t2~Hsec).] 0. secs (0.u,0.s) +Chars 547 - 552 [step.] 0. secs (0.u,0.s) +Chars 556 - 569 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 570 - 579 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 580 - 604 [(remember~(TauF~t1)~as~x).] 0.001 secs (0.u,0.s) +Chars 607 - 671 [(hinduction~Hsec~before~priv;~...] 0.29 secs (0.275u,0.013s) +Chars 674 - 675 [-] 0. secs (0.u,0.s) +Chars 676 - 694 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 695 - 706 [now~unstep.] 0. secs (0.u,0.s) +Chars 710 - 711 [-] 0. secs (0.u,0.s) +Chars 712 - 723 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 724 - 735 [now~unstep.] 0. secs (0.u,0.s) +Chars 739 - 740 [-] 0. secs (0.u,0.s) +Chars 741 - 755 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 756 - 760 [Qed.] 0.007 secs (0.007u,0.s) +Chars 762 - 1025 [Lemma~unpriv_e_eqit_secure~:~~...] 0.001 secs (0.001u,0.s) +Chars 1026 - 1032 [Proof.] 0. secs (0.u,0.s) +Chars 1035 - 1042 [(intros).] 0. secs (0.u,0.s) +Chars 1043 - 1066 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 1067 - 1089 [rename~H~into~Hunpriv.] 0. secs (0.u,0.s) +Chars 1090 - 1113 [generalize~dependent~a.] 0. secs (0.u,0.s) +Chars 1116 - 1123 [(intros).] 0. secs (0.u,0.s) +Chars 1124 - 1135 [step~in~H0.] 0. secs (0.u,0.s) +Chars 1136 - 1145 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 1146 - 1151 [step.] 0. secs (0.u,0.s) +Chars 1155 - 1180 [(remember~(VisF~e~k)~as~x).] 0. secs (0.u,0.s) +Chars 1181 - 1199 [(genobs_clear~t~ot).] 0. secs (0.u,0.s) +Chars 1202 - 1314 [(hinduction~H0~before~l;~intro...] 0.083 secs (0.082u,0.001s) +Chars 1317 - 1318 [-] 0. secs (0.u,0.s) +Chars 1319 - 1337 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 1338 - 1367 [(eapply~IHsecure_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 1370 - 1371 [-] 0. secs (0.u,0.s) +Chars 1373 - 1391 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 1392 - 1403 [now~unstep.] 0. secs (0.u,0.s) +Chars 1407 - 1408 [-] 0. secs (0.u,0.s) +Chars 1409 - 1420 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 1421 - 1428 [unstep.] 0. secs (0.u,0.s) +Chars 1430 - 1438 [(apply~H).] 0. secs (0.u,0.s) +Chars 1441 - 1442 [-] 0. secs (0.u,0.s) +Chars 1443 - 1454 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 1455 - 1472 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 1475 - 1476 [-] 0. secs (0.u,0.s) +Chars 1478 - 1497 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 1498 - 1513 [now~now~unstep.] 0. secs (0.u,0.s) +Chars 1515 - 1519 [Qed.] 0.029 secs (0.029u,0.s) +Chars 1522 - 2215 [Lemma~eses_au_vis_r~:~~~forall...] 0.001 secs (0.001u,0.s) +Chars 2216 - 2222 [Proof.] 0. secs (0.u,0.s) +Chars 2225 - 2292 [(intros~E~R2~R1~Label~priv~l~R...] 0. secs (0.u,0.s) +Chars 2295 - 2320 [(remember~(VisF~e~k)~as~x).] 0. secs (0.u,0.s) +Chars 2321 - 2333 [step~in~REL.] 0. secs (0.u,0.s) +Chars 2334 - 2347 [(rewrite~Heqx).] 0. secs (0.u,0.s) +Chars 2350 - 2443 [(hinduction~Hsec~before~E;~int...] 0.089 secs (0.088u,0.s) +Chars 2446 - 2447 [-] 0. secs (0.u,0.s) +Chars 2448 - 2469 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) +Chars 2474 - 2481 [unstep.] 0.003 secs (0.003u,0.s) +Chars 2482 - 2514 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.003 secs (0.002u,0.s) +Chars 2515 - 2520 [step.] 0.001 secs (0.001u,0.s) +Chars 2521 - 2526 [auto.] 0. secs (0.u,0.s) +Chars 2529 - 2530 [-] 0. secs (0.u,0.s) +Chars 2532 - 2559 [(remember~(VisF~e0~k1)~as~y).] 0. secs (0.u,0.s) +Chars 2564 - 2639 [(hinduction~REL~before~CIH;~in...] 0.01 secs (0.01u,0.s) +Chars 2644 - 2645 [+] 0. secs (0.u,0.s) +Chars 2646 - 2664 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 2665 - 2672 [(intros).] 0. secs (0.u,0.s) +Chars 2679 - 2703 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) +Chars 2710 - 2720 [(apply~REL).] 0. secs (0.u,0.s) +Chars 2725 - 2726 [+] 0. secs (0.u,0.s) +Chars 2727 - 2746 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 2749 - 2750 [-] 0. secs (0.u,0.s) +Chars 2751 - 2762 [(rewrite~H2).] 0. secs (0.u,0.s) +Chars 2763 - 2789 [(remember~(VisF~e~k1)~as~y).] 0.003 secs (0.003u,0.s) +Chars 2794 - 2846 [(hinduction~REL~before~e;~intr...] 0.003 secs (0.003u,0.s) +Chars 2847 - 2860 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 2865 - 2866 [+] 0. secs (0.u,0.s) +Chars 2867 - 2881 [(rewrite~<-~H2).] 0. secs (0.u,0.s) +Chars 2882 - 2893 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 2895 - 2906 [(rewrite~H2).] 0. secs (0.u,0.s) +Chars 2907 - 2924 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 2931 - 2940 [Unshelve.] 0. secs (0.u,0.s) +Chars 2941 - 2951 [all:~auto.] 0. secs (0.u,0.s) +Chars 2952 - 2967 [now~now~unstep.] 0.004 secs (0.004u,0.s) +Chars 2973 - 2974 [+] 0. secs (0.u,0.s) +Chars 2975 - 2993 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 2994 - 3014 [(eapply~IHREL;~eauto).] 0.001 secs (0.001u,0.s) +Chars 3015 - 3019 [Qed.] 0.037 secs (0.036u,0.s) +Chars 3021 - 3714 [Lemma~eses_au_vis_l~:~~~forall...] 0.001 secs (0.001u,0.s) +Chars 3715 - 3721 [Proof.] 0. secs (0.u,0.s) +Chars 3724 - 3791 [(intros~E~R2~R1~Label~priv~l~R...] 0. secs (0.u,0.s) +Chars 3794 - 3819 [(remember~(VisF~e~k)~as~x).] 0. secs (0.u,0.s) +Chars 3820 - 3832 [step~in~REL.] 0. secs (0.u,0.s) +Chars 3833 - 3846 [(rewrite~Heqx).] 0. secs (0.u,0.s) +Chars 3849 - 3942 [(hinduction~Hsec~before~E;~int...] 0.091 secs (0.089u,0.s) +Chars 3945 - 3946 [-] 0. secs (0.u,0.s) +Chars 3947 - 3968 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) +Chars 3973 - 3980 [unstep.] 0.003 secs (0.003u,0.s) +Chars 3981 - 4013 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.001 secs (0.001u,0.s) +Chars 4014 - 4019 [step.] 0.001 secs (0.001u,0.s) +Chars 4020 - 4025 [auto.] 0. secs (0.u,0.s) +Chars 4028 - 4029 [-] 0. secs (0.u,0.s) +Chars 4031 - 4058 [(remember~(VisF~e0~k2)~as~y).] 0. secs (0.u,0.s) +Chars 4063 - 4138 [(hinduction~REL~before~CIH;~in...] 0.01 secs (0.01u,0.s) +Chars 4143 - 4144 [+] 0. secs (0.u,0.s) +Chars 4145 - 4163 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 4164 - 4171 [(intros).] 0. secs (0.u,0.s) +Chars 4178 - 4202 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) +Chars 4209 - 4219 [(apply~REL).] 0. secs (0.u,0.s) +Chars 4224 - 4225 [+] 0. secs (0.u,0.s) +Chars 4226 - 4245 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 4248 - 4249 [-] 0. secs (0.u,0.s) +Chars 4250 - 4261 [(rewrite~H2).] 0. secs (0.u,0.s) +Chars 4262 - 4288 [(remember~(VisF~e~k2)~as~y).] 0.001 secs (0.001u,0.s) +Chars 4293 - 4345 [(hinduction~REL~before~e;~intr...] 0.004 secs (0.004u,0.s) +Chars 4346 - 4359 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 4364 - 4365 [+] 0. secs (0.u,0.s) +Chars 4366 - 4380 [(rewrite~<-~H2).] 0. secs (0.u,0.s) +Chars 4381 - 4392 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 4394 - 4405 [(rewrite~H2).] 0. secs (0.u,0.s) +Chars 4406 - 4423 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 4430 - 4439 [Unshelve.] 0. secs (0.u,0.s) +Chars 4440 - 4450 [all:~auto.] 0. secs (0.u,0.s) +Chars 4451 - 4466 [now~now~unstep.] 0.004 secs (0.004u,0.s) +Chars 4472 - 4473 [+] 0. secs (0.u,0.s) +Chars 4474 - 4492 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 4493 - 4513 [(eapply~IHREL;~eauto).] 0.001 secs (0.001u,0.s) +Chars 4514 - 4518 [Qed.] 0.036 secs (0.035u,0.s) +Chars 4520 - 4950 [Lemma~eses_aux_ret_r~:~~~foral...] 0.001 secs (0.001u,0.s) +Chars 4951 - 4957 [Proof.] 0. secs (0.u,0.s) +Chars 4960 - 5013 [(intros~E~R2~R1~Label~priv~l~R...] 0. secs (0.u,0.s) +Chars 5016 - 5030 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 5031 - 5055 [(remember~(RetF~r0)~as~x).] 0. secs (0.u,0.s) +Chars 5058 - 5071 [(rewrite~Heqx).] 0. secs (0.u,0.s) +Chars 5072 - 5132 [(hinduction~Hsec~before~E;~int...] 0.023 secs (0.023u,0.s) +Chars 5135 - 5136 [-] 0. secs (0.u,0.s) +Chars 5137 - 5161 [(remember~(RetF~r1)~as~y).] 0. secs (0.u,0.s) +Chars 5166 - 5227 [(hinduction~Heutt~before~E;~in...] 0.006 secs (0.005u,0.s) +Chars 5232 - 5250 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 5251 - 5273 [(eapply~IHHeutt;~eauto).] 0. secs (0.u,0.s) +Chars 5276 - 5277 [-] 0. secs (0.u,0.s) +Chars 5278 - 5299 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) +Chars 5300 - 5307 [unstep.] 0.006 secs (0.005u,0.s) +Chars 5308 - 5333 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 5334 - 5339 [step.] 0.001 secs (0.001u,0.s) +Chars 5340 - 5345 [auto.] 0. secs (0.u,0.s) +Chars 5348 - 5349 [-] 0. secs (0.u,0.s) +Chars 5350 - 5376 [(remember~(VisF~e~k1)~as~y).] 0. secs (0.u,0.s) +Chars 5381 - 5452 [(hinduction~Heutt~before~E;~in...] 0.015 secs (0.015u,0.s) +Chars 5457 - 5458 [+] 0. secs (0.u,0.s) +Chars 5460 - 5471 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 5472 - 5483 [(rewrite~H2).] 0. secs (0.u,0.s) +Chars 5484 - 5501 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 5510 - 5525 [now~now~unstep.] 0.005 secs (0.005u,0.s) +Chars 5531 - 5532 [+] 0. secs (0.u,0.s) +Chars 5533 - 5551 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 5552 - 5574 [(eapply~IHHeutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5575 - 5579 [Qed.] 0.016 secs (0.016u,0.s) +Chars 5581 - 5637 [Definition~classic_empty~:=~Se...] 0. secs (0.u,0.s) +Chars 5685 - 5902 [Lemma~eutt_secure_eqit_secure~...] 0. secs (0.u,0.s) +Chars 5903 - 5909 [Proof.] 0. secs (0.u,0.s) +Chars 5912 - 5943 [(intros~E~Label~priv~l~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 5944 - 5963 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 5964 - 5992 [(intros~t1~t1'~t2~Heutt~Hsec).] 0. secs (0.u,0.s) +Chars 5995 - 6009 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 6010 - 6023 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 6027 - 6085 [(hinduction~Heutt~before~E;~in...] 0.007 secs (0.006u,0.s) +Chars 6088 - 6089 [-] 0. secs (0.u,0.s) +Chars 6090 - 6114 [(remember~(RetF~r2)~as~x).] 0.001 secs (0.001u,0.s) +Chars 6115 - 6179 [(hinduction~Hsec~before~E;~int...] 0.026 secs (0.025u,0.s) +Chars 6184 - 6185 [+] 0. secs (0.u,0.s) +Chars 6186 - 6204 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 6205 - 6226 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) +Chars 6231 - 6232 [+] 0. secs (0.u,0.s) +Chars 6233 - 6244 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 6245 - 6262 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 6265 - 6266 [-] 0. secs (0.u,0.s) +Chars 6267 - 6287 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) +Chars 6292 - 6366 [(assert~(Ht2~:~(exists~m3,~ot2...] 0. secs (0.u,0.s) +Chars 6371 - 6372 [{] 0. secs (0.u,0.s) +Chars 6373 - 6428 [(destruct~ot2;~eauto;~right;~r...] 0.006 secs (0.006u,0.s) +Chars 6429 - 6430 [}] 0. secs (0.u,0.s) +Chars 6501 - 6536 [(destruct~Ht2~as~[[m3~Hm3]|~Ht...] 0. secs (0.u,0.s) +Chars 6541 - 6542 [+] 0. secs (0.u,0.s) +Chars 6543 - 6549 [subst.] 0. secs (0.u,0.s) +Chars 6551 - 6563 [constructor.] 0. secs (0.u,0.s) +Chars 6564 - 6582 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 6589 - 6611 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) +Chars 6612 - 6634 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 6635 - 6657 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) +Chars 6664 - 6686 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 6687 - 6692 [step.] 0. secs (0.u,0.s) +Chars 6693 - 6698 [auto.] 0. secs (0.u,0.s) +Chars 6703 - 6704 [+] 0. secs (0.u,0.s) +Chars 6705 - 6758 [(destruct~ot2;~try~(exfalso;~e...] 0.001 secs (0.001u,0.s) +Chars 6765 - 6766 [*] 0. secs (0.u,0.s) +Chars 6768 - 6792 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) +Chars 6802 - 6851 [(eapply~eses_aux_ret_r~with~(m...] 0. secs (0.u,0.s) +Chars 6861 - 6887 [now~do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 6894 - 6895 [*] 0. secs (0.u,0.s) +Chars 6896 - 6944 [(assert~(leq~(priv~_~e)~l~\/~~...] 0. secs (0.u,0.s) +Chars 6953 - 6954 [{] 0. secs (0.u,0.s) +Chars 6955 - 6969 [(apply~classic).] 0. secs (0.u,0.s) +Chars 6970 - 6971 [}] 0. secs (0.u,0.s) +Chars 6980 - 7047 [(destruct~H~as~[SECCHECK|~SECC...] 0. secs (0.u,0.s) +Chars 7056 - 7058 [++] 0. secs (0.u,0.s) +Chars 7060 - 7084 [(rewrite~itree_eta'~~at~1).] 0.018 secs (0.018u,0.s) +Chars 7085 - 7131 [(apply~eses_au_vis_r~with~(m1~...] 0.001 secs (0.001u,0.s) +Chars 7143 - 7165 [(do~2~rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 7166 - 7171 [auto.] 0. secs (0.u,0.s) +Chars 7180 - 7182 [++] 0. secs (0.u,0.s) +Chars 7184 - 7208 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) +Chars 7209 - 7255 [(apply~eses_au_vis_r~with~(m1~...] 0.001 secs (0.001u,0.s) +Chars 7267 - 7289 [(do~2~rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 7290 - 7295 [auto.] 0. secs (0.u,0.s) +Chars 7304 - 7306 [++] 0. secs (0.u,0.s) +Chars 7307 - 7319 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 7320 - 7338 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 7350 - 7372 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) +Chars 7373 - 7378 [step.] 0. secs (0.u,0.s) +Chars 7379 - 7384 [auto.] 0. secs (0.u,0.s) +Chars 7393 - 7395 [++] 0. secs (0.u,0.s) +Chars 7396 - 7406 [unpriv_co.] 0. secs (0.u,0.s) +Chars 7408 - 7419 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7421 - 7431 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7443 - 7465 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) +Chars 7477 - 7499 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 7511 - 7546 [(eapply~unpriv_e_eqit_secure;~...] 0. secs (0.u,0.s) +Chars 7558 - 7580 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 7581 - 7586 [step.] 0. secs (0.u,0.s) +Chars 7587 - 7592 [auto.] 0. secs (0.u,0.s) +Chars 7595 - 7596 [-] 0. secs (0.u,0.s) +Chars 7597 - 7675 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) +Chars 7681 - 7692 [clear~Hsec.] 0. secs (0.u,0.s) +Chars 7693 - 7712 [rename~H~into~Hsec.] 0. secs (0.u,0.s) +Chars 7717 - 7757 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) +Chars 7762 - 7763 [+] 0. secs (0.u,0.s) +Chars 7764 - 7777 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 7787 - 7796 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 7797 - 7823 [(remember~(VisF~e~k1)~as~x).] 0.001 secs (0.001u,0.s) +Chars 7830 - 7919 [(hinduction~Hsec~before~E;~int...] 0.086 secs (0.084u,0.001s) +Chars 7926 - 7927 [*] 0. secs (0.u,0.s) +Chars 7928 - 7946 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 7947 - 7968 [(eapply~IHHsec;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7975 - 7976 [*] 0. secs (0.u,0.s) +Chars 7977 - 8003 [(constructor;~auto;~intros).] 0. secs (0.u,0.s) +Chars 8004 - 8030 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 8032 - 8040 [(apply~H).] 0. secs (0.u,0.s) +Chars 8047 - 8048 [*] 0. secs (0.u,0.s) +Chars 8049 - 8073 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) +Chars 8074 - 8085 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 8086 - 8103 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8108 - 8109 [+] 0. secs (0.u,0.s) +Chars 8110 - 8137 [(destruct~(classic_empty~u)).] 0. secs (0.u,0.s) +Chars 8144 - 8145 [*] 0. secs (0.u,0.s) +Chars 8146 - 8159 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 8160 - 8169 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 8178 - 8200 [(destruct~(observe~t2)).] 0. secs (0.u,0.s) +Chars 8209 - 8211 [--] 0. secs (0.u,0.s) +Chars 8212 - 8234 [(inv~Hsec;~contra_size).] 0.022 secs (0.021u,0.s) +Chars 8243 - 8245 [--] 0. secs (0.u,0.s) +Chars 8246 - 8258 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 8259 - 8291 [(apply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) +Chars 8303 - 8305 [++] 0. secs (0.u,0.s) +Chars 8306 - 8311 [step.] 0.001 secs (0.001u,0.s) +Chars 8312 - 8324 [constructor.] 0. secs (0.u,0.s) +Chars 8325 - 8330 [auto.] 0. secs (0.u,0.s) +Chars 8342 - 8344 [++] 0. secs (0.u,0.s) +Chars 8345 - 8412 [(inv~Hsec;~ddestruction;~subst...] 0.047 secs (0.046u,0.s) +Chars 8413 - 8418 [step.] 0. secs (0.u,0.s) +Chars 8419 - 8424 [auto.] 0. secs (0.u,0.s) +Chars 8440 - 8445 [auto.] 0. secs (0.u,0.s) +Chars 8454 - 8456 [--] 0. secs (0.u,0.s) +Chars 8457 - 8523 [(inv~Hsec;~ddestruction;~subst...] 0.072 secs (0.071u,0.001s) +Chars 8535 - 8537 [++] 0. secs (0.u,0.s) +Chars 8538 - 8550 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 8551 - 8583 [(apply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) +Chars 8598 - 8599 [{] 0. secs (0.u,0.s) +Chars 8600 - 8605 [step.] 0.002 secs (0.002u,0.s) +Chars 8606 - 8618 [constructor.] 0. secs (0.u,0.s) +Chars 8619 - 8623 [(red).] 0. secs (0.u,0.s) +Chars 8624 - 8629 [auto.] 0. secs (0.u,0.s) +Chars 8630 - 8631 [}] 0. secs (0.u,0.s) +Chars 8646 - 8647 [{] 0. secs (0.u,0.s) +Chars 8648 - 8665 [(rewrite~H1~in~H3).] 0. secs (0.u,0.s) +Chars 8666 - 8671 [step.] 0. secs (0.u,0.s) +Chars 8672 - 8681 [(apply~H3).] 0. secs (0.u,0.s) +Chars 8682 - 8683 [}] 0. secs (0.u,0.s) +Chars 8695 - 8697 [++] 0. secs (0.u,0.s) +Chars 8699 - 8711 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 8712 - 8744 [(apply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) +Chars 8759 - 8760 [{] 0. secs (0.u,0.s) +Chars 8761 - 8766 [step.] 0.001 secs (0.001u,0.s) +Chars 8767 - 8779 [constructor.] 0. secs (0.u,0.s) +Chars 8780 - 8784 [(red).] 0. secs (0.u,0.s) +Chars 8785 - 8790 [auto.] 0. secs (0.u,0.s) +Chars 8791 - 8792 [}] 0. secs (0.u,0.s) +Chars 8807 - 8808 [{] 0. secs (0.u,0.s) +Chars 8809 - 8818 [(apply~H2).] 0. secs (0.u,0.s) +Chars 8819 - 8820 [}] 0. secs (0.u,0.s) +Chars 8832 - 8834 [++] 0. secs (0.u,0.s) +Chars 8836 - 8848 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 8849 - 8861 [contra_size.] 0. secs (0.u,0.s) +Chars 8868 - 8869 [*] 0. secs (0.u,0.s) +Chars 8870 - 8883 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 8884 - 8893 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 8902 - 8924 [(destruct~(observe~t2)).] 0. secs (0.u,0.s) +Chars 8933 - 8935 [++] 0. secs (0.u,0.s) +Chars 8936 - 9004 [(eapply~eses_aux_ret_r~with~(m...] 0. secs (0.u,0.s) +Chars 9016 - 9021 [step.] 0.001 secs (0.001u,0.s) +Chars 9022 - 9034 [constructor.] 0. secs (0.u,0.s) +Chars 9035 - 9039 [(red).] 0. secs (0.u,0.s) +Chars 9040 - 9045 [auto.] 0. secs (0.u,0.s) +Chars 9054 - 9056 [++] 0. secs (0.u,0.s) +Chars 9057 - 9067 [unpriv_co.] 0. secs (0.u,0.s) +Chars 9068 - 9111 [(apply~CIH~with~(t1~:=~k1~a);~...] 0. secs (0.u,0.s) +Chars 9123 - 9158 [(eapply~unpriv_e_eqit_secure;~...] 0. secs (0.u,0.s) +Chars 9159 - 9181 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 9193 - 9215 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) +Chars 9216 - 9238 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 9239 - 9244 [step.] 0. secs (0.u,0.s) +Chars 9245 - 9250 [auto.] 0. secs (0.u,0.s) +Chars 9259 - 9261 [++] 0. secs (0.u,0.s) +Chars 9262 - 9302 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) +Chars 9314 - 9316 [**] 0. secs (0.u,0.s) +Chars 9317 - 9341 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) +Chars 9356 - 9406 [(eapply~eses_au_vis_r~with~(m1...] 0.001 secs (0.001u,0.s) +Chars 9421 - 9426 [step.] 0.001 secs (0.001u,0.s) +Chars 9427 - 9439 [constructor.] 0. secs (0.u,0.s) +Chars 9440 - 9444 [(red).] 0. secs (0.u,0.s) +Chars 9445 - 9450 [auto.] 0. secs (0.u,0.s) +Chars 9462 - 9464 [**] 0. secs (0.u,0.s) +Chars 9465 - 9492 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) +Chars 9507 - 9510 [---] 0. secs (0.u,0.s) +Chars 9511 - 9523 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 9524 - 9550 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 9569 - 9604 [(eapply~unpriv_e_eqit_secure;~...] 0. secs (0.u,0.s) +Chars 9605 - 9610 [step.] 0. secs (0.u,0.s) +Chars 9611 - 9616 [auto.] 0. secs (0.u,0.s) +Chars 9631 - 9634 [---] 0. secs (0.u,0.s) +Chars 9635 - 9645 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 9646 - 9672 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 9751 - 9816 [(do~2~(eapply~unpriv_e_eqit_se...] 0.001 secs (0.001u,0.s) +Chars 9835 - 9840 [step.] 0. secs (0.u,0.s) +Chars 9841 - 9846 [auto.] 0. secs (0.u,0.s) +Chars 9849 - 9850 [-] 0. secs (0.u,0.s) +Chars 9851 - 9873 [(eapply~IHHeutt;~eauto).] 0. secs (0.u,0.s) +Chars 9874 - 9881 [unstep.] 0. secs (0.u,0.s) +Chars 9886 - 9908 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) +Chars 9909 - 9914 [step.] 0. secs (0.u,0.s) +Chars 9915 - 9920 [auto.] 0. secs (0.u,0.s) +Chars 9921 - 9925 [Qed.] 0.115 secs (0.113u,0.002s) +Chars 9928 - 10258 [Lemma~eqit_secure_TauLR~:~~~fo...] 0. secs (0.u,0.s) +Chars 10259 - 10265 [Proof.] 0. secs (0.u,0.s) +Chars 10268 - 10306 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) +Chars 10309 - 10316 [(intros).] 0. secs (0.u,0.s) +Chars 10317 - 10327 [step~in~H.] 0. secs (0.u,0.s) +Chars 10328 - 10337 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 10338 - 10343 [step.] 0. secs (0.u,0.s) +Chars 10344 - 10348 [(cbn).] 0. secs (0.u,0.s) +Chars 10351 - 10375 [(remember~(TauF~t0)~as~x).] 0. secs (0.u,0.s) +Chars 10376 - 10400 [(remember~(TauF~t4)~as~y).] 0. secs (0.u,0.s) +Chars 10403 - 10453 [(hinduction~H~before~b2;~intro...] 0.007 secs (0.006u,0.s) +Chars 10456 - 10457 [-] 0. secs (0.u,0.s) +Chars 10458 - 10477 [(inv~Heqx;~inv~Heqy).] 0.004 secs (0.004u,0.s) +Chars 10478 - 10489 [now~unstep.] 0. secs (0.u,0.s) +Chars 10493 - 10494 [-] 0. secs (0.u,0.s) +Chars 10495 - 10504 [(inv~Heqx).] 0.013 secs (0.013u,0.s) +Chars 10505 - 10529 [(inv~H;~eauto~with~itree).] 0.372 secs (0.367u,0.004s) +Chars 10534 - 10535 [+] 0. secs (0.u,0.s) +Chars 10537 - 10548 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10549 - 10560 [now~unstep.] 0. secs (0.u,0.s) +Chars 10566 - 10567 [+] 0. secs (0.u,0.s) +Chars 10568 - 10579 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10580 - 10597 [(rewrite~H1~in~H2).] 0. secs (0.u,0.s) +Chars 10604 - 10622 [specialize~(H2~a).] 0. secs (0.u,0.s) +Chars 10623 - 10641 [(genobs~(k1~a)~ok1).] 0. secs (0.u,0.s) +Chars 10642 - 10655 [clear~Heqok1.] 0. secs (0.u,0.s) +Chars 10662 - 10686 [(remember~(TauF~t4)~as~y).] 0.001 secs (0.001u,0.s) +Chars 10693 - 10753 [(hinduction~H2~before~b2;~intr...] 0.422 secs (0.416u,0.005s) +Chars 10760 - 10761 [*] 0. secs (0.u,0.s) +Chars 10763 - 10793 [(constructor;~auto;~now~unstep).] 0.001 secs (0.001u,0.s) +Chars 10801 - 10802 [*] 0. secs (0.u,0.s) +Chars 10804 - 10815 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10816 - 10827 [now~unstep.] 0. secs (0.u,0.s) +Chars 10835 - 10836 [*] 0. secs (0.u,0.s) +Chars 10837 - 10851 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 10856 - 10857 [+] 0. secs (0.u,0.s) +Chars 10858 - 10873 [now~step~in~H2.] 0. secs (0.u,0.s) +Chars 10876 - 10877 [-] 0. secs (0.u,0.s) +Chars 10878 - 10887 [(inv~Heqy).] 0.011 secs (0.011u,0.s) +Chars 10888 - 10912 [(inv~H;~eauto~with~itree).] 0.397 secs (0.391u,0.004s) +Chars 10917 - 10918 [+] 0. secs (0.u,0.s) +Chars 10920 - 10931 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10932 - 10943 [now~unstep.] 0. secs (0.u,0.s) +Chars 10949 - 10950 [+] 0. secs (0.u,0.s) +Chars 10951 - 10968 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) +Chars 10969 - 10980 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10981 - 10999 [specialize~(H2~a).] 0. secs (0.u,0.s) +Chars 11006 - 11024 [(genobs~(k2~a)~ok2).] 0. secs (0.u,0.s) +Chars 11025 - 11038 [clear~Heqok2.] 0. secs (0.u,0.s) +Chars 11045 - 11069 [(remember~(TauF~t0)~as~y).] 0.001 secs (0.001u,0.s) +Chars 11076 - 11136 [(hinduction~H2~before~b2;~intr...] 0.474 secs (0.467u,0.006s) +Chars 11143 - 11144 [*] 0. secs (0.u,0.s) +Chars 11146 - 11164 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 11165 - 11176 [now~unstep.] 0. secs (0.u,0.s) +Chars 11184 - 11185 [*] 0. secs (0.u,0.s) +Chars 11186 - 11197 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 11199 - 11210 [now~unstep.] 0. secs (0.u,0.s) +Chars 11218 - 11219 [*] 0. secs (0.u,0.s) +Chars 11220 - 11234 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 11239 - 11240 [+] 0. secs (0.u,0.s) +Chars 11241 - 11256 [now~step~in~H2.] 0. secs (0.u,0.s) +Chars 11257 - 11261 [Qed.] 0.048 secs (0.047u,0.001s) +Chars 11263 - 11674 [Lemma~eqit_secure_TauLVisR~:~~...] 0.001 secs (0.001u,0.s) +Chars 11675 - 11681 [Proof.] 0. secs (0.u,0.s) +Chars 11684 - 11740 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) +Chars 11743 - 11756 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 11757 - 11766 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 11769 - 11793 [(remember~(TauF~t3)~as~x).] 0. secs (0.u,0.s) +Chars 11794 - 11819 [(remember~(VisF~e~k)~as~y).] 0. secs (0.u,0.s) +Chars 11822 - 11874 [(hinduction~Hsec~before~b2;~in...] 0.003 secs (0.003u,0.s) +Chars 11877 - 11878 [-] 0. secs (0.u,0.s) +Chars 11879 - 11888 [(inv~Heqx).] 0.024 secs (0.024u,0.s) +Chars 11889 - 11899 [(inv~CHECK).] 0.015 secs (0.015u,0.s) +Chars 11904 - 11929 [(remember~(VisF~e~k)~as~y).] 0.001 secs (0.u,0.s) +Chars 11930 - 11935 [step.] 0. secs (0.u,0.s) +Chars 11936 - 11949 [clear~IHHsec.] 0. secs (0.u,0.s) +Chars 11954 - 12078 [(hinduction~Hsec~before~b2;~in...] 0.321 secs (0.315u,0.004s) +Chars 12083 - 12084 [+] 0. secs (0.u,0.s) +Chars 12085 - 12103 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 12105 - 12116 [now~unstep.] 0. secs (0.u,0.s) +Chars 12122 - 12123 [+] 0. secs (0.u,0.s) +Chars 12124 - 12135 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 12137 - 12148 [now~unstep.] 0. secs (0.u,0.s) +Chars 12154 - 12155 [+] 0. secs (0.u,0.s) +Chars 12157 - 12174 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 12175 - 12189 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 12192 - 12193 [-] 0. secs (0.u,0.s) +Chars 12194 - 12203 [(inv~Heqx).] 0.002 secs (0.002u,0.s) +Chars 12204 - 12213 [(inv~Heqy).] 0.002 secs (0.002u,0.s) +Chars 12214 - 12234 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) +Chars 12236 - 12244 [(apply~H).] 0. secs (0.u,0.s) +Chars 12247 - 12248 [-] 0. secs (0.u,0.s) +Chars 12249 - 12258 [(inv~Heqx).] 0.002 secs (0.002u,0.s) +Chars 12259 - 12268 [(inv~Heqy).] 0.003 secs (0.003u,0.s) +Chars 12269 - 12289 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 12290 - 12306 [(rewrite~H2~in~H).] 0. secs (0.u,0.s) +Chars 12311 - 12320 [clear~H0.] 0. secs (0.u,0.s) +Chars 12321 - 12333 [clear~H2~t1.] 0. secs (0.u,0.s) +Chars 12334 - 12358 [(remember~(TauF~t3)~as~x).] 0. secs (0.u,0.s) +Chars 12363 - 12368 [step.] 0. secs (0.u,0.s) +Chars 12369 - 12386 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 12391 - 12467 [(hinduction~H~before~b2;~intro...] 0.218 secs (0.216u,0.001s) +Chars 12472 - 12473 [+] 0. secs (0.u,0.s) +Chars 12475 - 12493 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 12494 - 12505 [now~unstep.] 0. secs (0.u,0.s) +Chars 12511 - 12512 [+] 0. secs (0.u,0.s) +Chars 12514 - 12525 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 12526 - 12537 [now~unstep.] 0. secs (0.u,0.s) +Chars 12543 - 12544 [+] 0. secs (0.u,0.s) +Chars 12545 - 12559 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 12562 - 12563 [-] 0. secs (0.u,0.s) +Chars 12566 - 12575 [(inv~Heqx).] 0.002 secs (0.002u,0.s) +Chars 12576 - 12585 [(inv~Heqy).] 0.002 secs (0.002u,0.s) +Chars 12586 - 12606 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) +Chars 12607 - 12619 [contra_size.] 0. secs (0.u,0.s) +Chars 12620 - 12624 [Qed.] 0.043 secs (0.042u,0.001s) +Chars 12626 - 13015 [Lemma~eqit_secure_TauRVisL~:~~...] 0.001 secs (0.001u,0.s) +Chars 13016 - 13022 [Proof.] 0. secs (0.u,0.s) +Chars 13025 - 13081 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) +Chars 13084 - 13097 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 13098 - 13107 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 13110 - 13134 [(remember~(TauF~t3)~as~x).] 0. secs (0.u,0.s) +Chars 13135 - 13160 [(remember~(VisF~e~k)~as~y).] 0. secs (0.u,0.s) +Chars 13163 - 13215 [(hinduction~Hsec~before~b2;~in...] 0.003 secs (0.003u,0.s) +Chars 13218 - 13219 [-] 0. secs (0.u,0.s) +Chars 13220 - 13229 [(inv~Heqx).] 0.019 secs (0.019u,0.s) +Chars 13230 - 13240 [(inv~CHECK).] 0.013 secs (0.013u,0.s) +Chars 13241 - 13266 [(remember~(VisF~e~k)~as~y).] 0.002 secs (0.002u,0.s) +Chars 13267 - 13272 [step.] 0. secs (0.u,0.s) +Chars 13273 - 13286 [clear~IHHsec.] 0. secs (0.u,0.s) +Chars 13291 - 13397 [(hinduction~Hsec~before~b1;~in...] 0.391 secs (0.387u,0.003s) +Chars 13402 - 13403 [+] 0. secs (0.u,0.s) +Chars 13404 - 13433 [(constructor;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 13435 - 13446 [now~unstep.] 0. secs (0.u,0.s) +Chars 13452 - 13453 [+] 0. secs (0.u,0.s) +Chars 13454 - 13465 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 13467 - 13478 [now~unstep.] 0. secs (0.u,0.s) +Chars 13484 - 13485 [+] 0. secs (0.u,0.s) +Chars 13486 - 13498 [contra_size.] 0. secs (0.u,0.s) +Chars 13503 - 13504 [+] 0. secs (0.u,0.s) +Chars 13505 - 13517 [contra_size.] 0. secs (0.u,0.s) +Chars 13522 - 13523 [+] 0. secs (0.u,0.s) +Chars 13525 - 13542 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 13543 - 13557 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 13560 - 13561 [-] 0. secs (0.u,0.s) +Chars 13562 - 13571 [(inv~Heqx).] 0.002 secs (0.002u,0.s) +Chars 13572 - 13581 [(inv~Heqy).] 0.003 secs (0.003u,0.s) +Chars 13582 - 13602 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) +Chars 13604 - 13612 [(apply~H).] 0. secs (0.u,0.s) +Chars 13615 - 13616 [-] 0. secs (0.u,0.s) +Chars 13617 - 13626 [(inv~Heqx).] 0.002 secs (0.002u,0.s) +Chars 13627 - 13636 [(inv~Heqy).] 0.003 secs (0.003u,0.s) +Chars 13637 - 13657 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 13659 - 13675 [(rewrite~H2~in~H).] 0. secs (0.u,0.s) +Chars 13676 - 13686 [(inv~CHECK).] 0.001 secs (0.001u,0.s) +Chars 13691 - 13708 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 13709 - 13714 [step.] 0. secs (0.u,0.s) +Chars 13715 - 13739 [(remember~(TauF~t3)~as~y).] 0. secs (0.u,0.s) +Chars 13744 - 13820 [(hinduction~H~before~b2;~intro...] 0.266 secs (0.264u,0.001s) +Chars 13825 - 13826 [+] 0. secs (0.u,0.s) +Chars 13828 - 13846 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 13847 - 13858 [now~unstep.] 0. secs (0.u,0.s) +Chars 13864 - 13865 [+] 0. secs (0.u,0.s) +Chars 13867 - 13878 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 13879 - 13890 [now~unstep.] 0. secs (0.u,0.s) +Chars 13896 - 13897 [+] 0. secs (0.u,0.s) +Chars 13898 - 13912 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 13915 - 13916 [-] 0. secs (0.u,0.s) +Chars 13917 - 13926 [(inv~Heqx).] 0.002 secs (0.002u,0.s) +Chars 13927 - 13936 [(inv~Heqy).] 0.002 secs (0.002u,0.s) +Chars 13937 - 13957 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) +Chars 13958 - 13970 [contra_size.] 0. secs (0.u,0.s) +Chars 13971 - 13975 [Qed.] 0.049 secs (0.048u,0.s) +Chars 13977 - 14474 [Lemma~eqit_secure_VisLR~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 14475 - 14481 [Proof.] 0. secs (0.u,0.s) +Chars 14484 - 14556 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) +Chars 14559 - 14564 [step.] 0. secs (0.u,0.s) +Chars 14567 - 14578 [step~in~H1.] 0. secs (0.u,0.s) +Chars 14579 - 14588 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 14589 - 14615 [(remember~(VisF~e~k2)~as~x).] 0. secs (0.u,0.s) +Chars 14618 - 14644 [(remember~(VisF~e0~k)~as~y).] 0. secs (0.u,0.s) +Chars 14647 - 14696 [(hinduction~H1~before~l;~intro...] 0.004 secs (0.004u,0.s) +Chars 14699 - 14700 [-] 0. secs (0.u,0.s) +Chars 14701 - 14710 [(inv~Heqx).] 0.004 secs (0.004u,0.s) +Chars 14711 - 14720 [(inv~Heqy).] 0.004 secs (0.004u,0.s) +Chars 14721 - 14741 [(ddestruction;~subst).] 0.009 secs (0.009u,0.s) +Chars 14742 - 14756 [contradiction.] 0. secs (0.u,0.s) +Chars 14759 - 14760 [-] 0. secs (0.u,0.s) +Chars 14762 - 14771 [(inv~Heqx).] 0.004 secs (0.004u,0.s) +Chars 14772 - 14781 [(inv~Heqy).] 0.004 secs (0.004u,0.s) +Chars 14782 - 14802 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) +Chars 14803 - 14814 [now~unstep.] 0. secs (0.u,0.s) +Chars 14818 - 14819 [-] 0. secs (0.u,0.s) +Chars 14820 - 14829 [(inv~Heqx).] 0.005 secs (0.005u,0.s) +Chars 14830 - 14850 [(ddestruction;~subst).] 0.007 secs (0.006u,0.s) +Chars 14851 - 14861 [(inv~CHECK).] 0.003 secs (0.003u,0.s) +Chars 14862 - 14871 [clear~H0.] 0. secs (0.u,0.s) +Chars 14876 - 14893 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 14898 - 14916 [(rewrite~Heqy~in~H).] 0. secs (0.u,0.s) +Chars 14917 - 14928 [clear~Heqy.] 0. secs (0.u,0.s) +Chars 14929 - 14955 [(remember~(VisF~e1~k)~as~y).] 0. secs (0.u,0.s) +Chars 14960 - 15079 [(hinduction~H~before~l;~intros...] 0.345 secs (0.343u,0.001s) +Chars 15084 - 15085 [+] 0. secs (0.u,0.s) +Chars 15087 - 15105 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15106 - 15117 [now~unstep.] 0. secs (0.u,0.s) +Chars 15123 - 15124 [+] 0. secs (0.u,0.s) +Chars 15125 - 15136 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 15138 - 15149 [now~unstep.] 0. secs (0.u,0.s) +Chars 15155 - 15156 [+] 0. secs (0.u,0.s) +Chars 15158 - 15176 [specialize~(H~a0).] 0. secs (0.u,0.s) +Chars 15177 - 15191 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 15194 - 15195 [-] 0. secs (0.u,0.s) +Chars 15196 - 15205 [(inv~Heqy).] 0.005 secs (0.005u,0.s) +Chars 15207 - 15227 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) +Chars 15228 - 15238 [(inv~CHECK).] 0.002 secs (0.002u,0.s) +Chars 15239 - 15248 [clear~H0.] 0. secs (0.u,0.s) +Chars 15253 - 15271 [(rewrite~Heqx~in~H).] 0. secs (0.u,0.s) +Chars 15272 - 15290 [specialize~(H~a0).] 0. secs (0.u,0.s) +Chars 15295 - 15322 [(remember~(VisF~e0~k0)~as~y).] 0. secs (0.u,0.s) +Chars 15327 - 15447 [(hinduction~H~before~b1;~intro...] 0.354 secs (0.351u,0.002s) +Chars 15452 - 15453 [+] 0. secs (0.u,0.s) +Chars 15455 - 15473 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15474 - 15485 [now~unstep.] 0. secs (0.u,0.s) +Chars 15491 - 15492 [+] 0. secs (0.u,0.s) +Chars 15494 - 15505 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 15506 - 15517 [now~unstep.] 0. secs (0.u,0.s) +Chars 15523 - 15524 [+] 0. secs (0.u,0.s) +Chars 15526 - 15543 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 15544 - 15558 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 15561 - 15562 [-] 0. secs (0.u,0.s) +Chars 15563 - 15603 [(inv~Heqx;~inv~Heqy;~ddestruct...] 0.015 secs (0.014u,0.s) +Chars 15604 - 15616 [contra_size.] 0. secs (0.u,0.s) +Chars 15619 - 15620 [-] 0. secs (0.u,0.s) +Chars 15621 - 15661 [(inv~Heqx;~inv~Heqy;~ddestruct...] 0.014 secs (0.014u,0.s) +Chars 15662 - 15674 [contra_size.] 0. secs (0.u,0.s) +Chars 15675 - 15679 [Qed.] 0.097 secs (0.095u,0.001s) +Chars 15681 - 16217 [Lemma~eqit_secure_private_VisL...] 0.001 secs (0.001u,0.s) +Chars 16218 - 16224 [Proof.] 0. secs (0.u,0.s) +Chars 16227 - 16234 [(intros).] 0. secs (0.u,0.s) +Chars 16235 - 16240 [step.] 0. secs (0.u,0.s) +Chars 16241 - 16245 [(cbn).] 0. secs (0.u,0.s) +Chars 16246 - 16256 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 16257 - 16261 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16263 - 16692 [Lemma~eqit_secure_private_VisL...] 0. secs (0.u,0.s) +Chars 16693 - 16699 [Proof.] 0. secs (0.u,0.s) +Chars 16702 - 16709 [(intros).] 0. secs (0.u,0.s) +Chars 16710 - 16715 [step.] 0. secs (0.u,0.s) +Chars 16716 - 16720 [(cbn).] 0. secs (0.u,0.s) +Chars 16721 - 16732 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 16733 - 16740 [unstep.] 0. secs (0.u,0.s) +Chars 16741 - 16750 [(apply~H1).] 0. secs (0.u,0.s) +Chars 16751 - 16755 [Qed.] 0.002 secs (0.002u,0.s) +Chars 16757 - 17185 [Lemma~eqit_secure_private_VisR...] 0.001 secs (0.001u,0.s) +Chars 17186 - 17192 [Proof.] 0. secs (0.u,0.s) +Chars 17195 - 17202 [(intros).] 0. secs (0.u,0.s) +Chars 17203 - 17208 [step.] 0. secs (0.u,0.s) +Chars 17209 - 17213 [(cbn).] 0. secs (0.u,0.s) +Chars 17214 - 17225 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 17226 - 17233 [unstep.] 0. secs (0.u,0.s) +Chars 17234 - 17243 [(apply~H1).] 0. secs (0.u,0.s) +Chars 17244 - 17248 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17250 - 17651 [Lemma~eqit_secure_public_Vis~:...] 0.001 secs (0.001u,0.s) +Chars 17652 - 17658 [Proof.] 0. secs (0.u,0.s) +Chars 17661 - 17675 [(split;~intros).] 0. secs (0.u,0.s) +Chars 17678 - 17679 [-] 0. secs (0.u,0.s) +Chars 17680 - 17738 [(sinv~H0;~ddestruction;~subst;...] 0.051 secs (0.05u,0.s) +Chars 17741 - 17742 [-] 0. secs (0.u,0.s) +Chars 17743 - 17748 [step.] 0. secs (0.u,0.s) +Chars 17749 - 17767 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 17769 - 17773 [Qed.] 0.022 secs (0.022u,0.s) +Chars 17775 - 18404 [Lemma~eqit_secure_trans_aux1~:...] 0.001 secs (0.001u,0.s) +Chars 18405 - 18411 [Proof.] 0. secs (0.u,0.s) +Chars 18414 - 18473 [(intros~E~R3~R1~Label~priv~l~b...] 0. secs (0.u,0.s) +Chars 18476 - 18486 [step~in~H.] 0. secs (0.u,0.s) +Chars 18487 - 18496 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 18499 - 18523 [(remember~(RetF~r0)~as~x).] 0. secs (0.u,0.s) +Chars 18526 - 18575 [(hinduction~Ht23~before~E;~int...] 0.053 secs (0.053u,0.s) +Chars 18578 - 18579 [-] 0. secs (0.u,0.s) +Chars 18580 - 18604 [(remember~(RetF~r1)~as~y).] 0. secs (0.u,0.s) +Chars 18609 - 18668 [(hinduction~H0~before~E;~intro...] 0.019 secs (0.019u,0.s) +Chars 18673 - 18692 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 18693 - 18704 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 18705 - 18709 [(cbn).] 0. secs (0.u,0.s) +Chars 18710 - 18727 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 18730 - 18731 [-] 0. secs (0.u,0.s) +Chars 18732 - 18753 [(eapply~IHHt23;~eauto).] 0. secs (0.u,0.s) +Chars 18758 - 18782 [(remember~(TauF~t1)~as~y).] 0.001 secs (0.001u,0.s) +Chars 18787 - 18845 [(hinduction~H~before~E;~intros...] 0.456 secs (0.454u,0.001s) +Chars 18850 - 18851 [+] 0. secs (0.u,0.s) +Chars 18853 - 18871 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 18872 - 18883 [now~unstep.] 0. secs (0.u,0.s) +Chars 18889 - 18890 [+] 0. secs (0.u,0.s) +Chars 18892 - 18903 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 18904 - 18915 [now~unstep.] 0. secs (0.u,0.s) +Chars 18921 - 18922 [+] 0. secs (0.u,0.s) +Chars 18924 - 18938 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 18941 - 18942 [-] 0. secs (0.u,0.s) +Chars 18943 - 18969 [(assert~(Hne~:~nonempty~A)).] 0. secs (0.u,0.s) +Chars 18970 - 18971 [{] 0. secs (0.u,0.s) +Chars 18972 - 18978 [eauto.] 0. secs (0.u,0.s) +Chars 18979 - 18980 [}] 0. secs (0.u,0.s) +Chars 19033 - 19041 [(inv~Hne).] 0.017 secs (0.017u,0.s) +Chars 19042 - 19063 [(eapply~(H0~a);~eauto).] 0. secs (0.u,0.s) +Chars 19068 - 19094 [(remember~(VisF~e~k1)~as~y).] 0.001 secs (0.001u,0.s) +Chars 19099 - 19219 [(hinduction~H1~before~E;~intro...] 0.552 secs (0.549u,0.002s) +Chars 19224 - 19225 [+] 0. secs (0.u,0.s) +Chars 19227 - 19245 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 19246 - 19257 [now~unstep.] 0. secs (0.u,0.s) +Chars 19263 - 19264 [+] 0. secs (0.u,0.s) +Chars 19266 - 19277 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 19278 - 19289 [now~unstep.] 0. secs (0.u,0.s) +Chars 19295 - 19296 [+] 0. secs (0.u,0.s) +Chars 19298 - 19322 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) +Chars 19323 - 19334 [now~unstep.] 0. secs (0.u,0.s) +Chars 19336 - 19340 [Qed.] 0.062 secs (0.061u,0.s) +Chars 19342 - 20221 [Lemma~eqit_secure_trans_aux2~:...] 0.001 secs (0.001u,0.s) +Chars 20222 - 20228 [Proof.] 0. secs (0.u,0.s) +Chars 20231 - 20304 [(intros~E~R3~R1~Label~priv~l~b...] 0. secs (0.u,0.s) +Chars 20307 - 20318 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 20319 - 20329 [(cbn~in~Ht).] 0. secs (0.u,0.s) +Chars 20330 - 20356 [(remember~(VisF~e0~k)~as~x).] 0. secs (0.u,0.s) +Chars 20359 - 20451 [(hinduction~Ht23~before~E;~int...] 0.193 secs (0.192u,0.s) +Chars 20454 - 20455 [-] 0. secs (0.u,0.s) +Chars 20456 - 20477 [(eapply~IHHt23;~eauto).] 0. secs (0.u,0.s) +Chars 20478 - 20491 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 20492 - 20516 [(remember~(TauF~t1)~as~y).] 0.001 secs (0.001u,0.s) +Chars 20521 - 20580 [(hinduction~Ht~before~E;~intro...] 0.505 secs (0.502u,0.002s) +Chars 20585 - 20586 [+] 0. secs (0.u,0.s) +Chars 20588 - 20606 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 20607 - 20618 [now~unstep.] 0. secs (0.u,0.s) +Chars 20624 - 20625 [+] 0. secs (0.u,0.s) +Chars 20627 - 20638 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 20639 - 20650 [now~unstep.] 0. secs (0.u,0.s) +Chars 20656 - 20657 [+] 0. secs (0.u,0.s) +Chars 20659 - 20673 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 20676 - 20677 [-] 0. secs (0.u,0.s) +Chars 20679 - 20706 [(remember~(VisF~e0~k1)~as~y).] 0. secs (0.u,0.s) +Chars 20711 - 20814 [(hinduction~Ht~before~E;~intro...] 0.112 secs (0.111u,0.s) +Chars 20819 - 20820 [+] 0. secs (0.u,0.s) +Chars 20822 - 20840 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 20841 - 20848 [(intros).] 0. secs (0.u,0.s) +Chars 20849 - 20861 [(eapply~CIH0).] 0. secs (0.u,0.s) +Chars 20862 - 20870 [(apply~H).] 0. secs (0.u,0.s) +Chars 20871 - 20880 [(apply~H0).] 0. secs (0.u,0.s) +Chars 20885 - 20886 [+] 0. secs (0.u,0.s) +Chars 20887 - 20906 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 20907 - 20918 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 20919 - 20936 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 20939 - 20940 [-] 0. secs (0.u,0.s) +Chars 20941 - 20968 [(assert~(nonempty~A);~eauto).] 0.003 secs (0.003u,0.s) +Chars 20969 - 20976 [(inv~H1).] 0.018 secs (0.018u,0.s) +Chars 20977 - 20994 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 20999 - 21008 [Unshelve.] 0. secs (0.u,0.s) +Chars 21009 - 21020 [all:~auto.] 0. secs (0.u,0.s) +Chars 21021 - 21030 [clear~H0.] 0. secs (0.u,0.s) +Chars 21031 - 21047 [(rewrite~H2~in~H).] 0. secs (0.u,0.s) +Chars 21052 - 21078 [(remember~(VisF~e~k1)~as~y).] 0.001 secs (0.001u,0.s) +Chars 21083 - 21203 [(hinduction~Ht~before~E;~intro...] 0.569 secs (0.565u,0.003s) +Chars 21208 - 21209 [+] 0. secs (0.u,0.s) +Chars 21211 - 21229 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 21230 - 21241 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 21247 - 21248 [+] 0. secs (0.u,0.s) +Chars 21250 - 21261 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 21262 - 21273 [now~unstep.] 0. secs (0.u,0.s) +Chars 21279 - 21280 [+] 0. secs (0.u,0.s) +Chars 21282 - 21306 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) +Chars 21307 - 21318 [now~unstep.] 0. secs (0.u,0.s) +Chars 21321 - 21325 [Qed.] 0.102 secs (0.1u,0.001s) +Chars 21328 - 21699 [Lemma~secret_halt_trans_1~:~~~...] 0.001 secs (0.001u,0.s) +Chars 21700 - 21706 [Proof.] 0. secs (0.u,0.s) +Chars 21709 - 21772 [(intros~E~Label~priv~l~b1~b2~R...] 0. secs (0.u,0.s) +Chars 21775 - 21799 [generalize~dependent~t3.] 0. secs (0.u,0.s) +Chars 21800 - 21824 [generalize~dependent~t1.] 0. secs (0.u,0.s) +Chars 21827 - 21846 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 21847 - 21868 [(intros~t1~t3~Ht1~Ht3).] 0. secs (0.u,0.s) +Chars 21871 - 21883 [step~in~Ht1.] 0. secs (0.u,0.s) +Chars 21884 - 21896 [step~in~Ht3.] 0. secs (0.u,0.s) +Chars 21897 - 21906 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 21909 - 21934 [(remember~(VisF~e~k)~as~x).] 0.001 secs (0.001u,0.s) +Chars 21937 - 22056 [(hinduction~Ht1~before~c;~intr...] 0.328 secs (0.326u,0.002s) +Chars 22059 - 22060 [-] 0. secs (0.u,0.s) +Chars 22062 - 22127 [(inv~Ht3;~ddestruction;~subst;...] 0.107 secs (0.107u,0.s) +Chars 22132 - 22133 [+] 0. secs (0.u,0.s) +Chars 22134 - 22146 [constructor.] 0. secs (0.u,0.s) +Chars 22147 - 22163 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22164 - 22169 [step.] 0. secs (0.u,0.s) +Chars 22170 - 22175 [auto.] 0. secs (0.u,0.s) +Chars 22180 - 22181 [+] 0. secs (0.u,0.s) +Chars 22182 - 22198 [(unpriv_co;~auto).] 0.001 secs (0.001u,0.s) +Chars 22199 - 22215 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22216 - 22221 [step.] 0. secs (0.u,0.s) +Chars 22222 - 22239 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) +Chars 22240 - 22249 [(apply~H2).] 0. secs (0.u,0.s) +Chars 22254 - 22255 [+] 0. secs (0.u,0.s) +Chars 22257 - 22269 [constructor.] 0. secs (0.u,0.s) +Chars 22270 - 22286 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22291 - 22292 [+] 0. secs (0.u,0.s) +Chars 22294 - 22321 [(destruct~(classic_empty~B)).] 0. secs (0.u,0.s) +Chars 22328 - 22329 [*] 0. secs (0.u,0.s) +Chars 22330 - 22342 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 22343 - 22370 [(apply~CIH;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 22371 - 22376 [step.] 0. secs (0.u,0.s) +Chars 22385 - 22389 [(cbn).] 0. secs (0.u,0.s) +Chars 22390 - 22402 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 22409 - 22410 [*] 0. secs (0.u,0.s) +Chars 22411 - 22421 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 22422 - 22438 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22439 - 22448 [(apply~H1).] 0. secs (0.u,0.s) +Chars 22453 - 22454 [+] 0. secs (0.u,0.s) +Chars 22456 - 22468 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 22469 - 22485 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22486 - 22491 [step.] 0. secs (0.u,0.s) +Chars 22498 - 22502 [(cbn).] 0. secs (0.u,0.s) +Chars 22503 - 22515 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 22516 - 22528 [contra_size.] 0.002 secs (0.002u,0.s) +Chars 22531 - 22532 [-] 0. secs (0.u,0.s) +Chars 22535 - 22600 [(inv~Ht3;~ddestruction;~subst;...] 0.109 secs (0.108u,0.s) +Chars 22605 - 22606 [+] 0. secs (0.u,0.s) +Chars 22607 - 22619 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 22620 - 22636 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22643 - 22644 [*] 0. secs (0.u,0.s) +Chars 22645 - 22650 [step.] 0. secs (0.u,0.s) +Chars 22651 - 22655 [(cbn).] 0. secs (0.u,0.s) +Chars 22656 - 22668 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 22675 - 22676 [*] 0. secs (0.u,0.s) +Chars 22677 - 22682 [step.] 0. secs (0.u,0.s) +Chars 22683 - 22688 [auto.] 0. secs (0.u,0.s) +Chars 22693 - 22694 [+] 0. secs (0.u,0.s) +Chars 22695 - 22707 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 22708 - 22724 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22731 - 22732 [*] 0. secs (0.u,0.s) +Chars 22733 - 22738 [step.] 0. secs (0.u,0.s) +Chars 22739 - 22743 [(cbn).] 0. secs (0.u,0.s) +Chars 22744 - 22756 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 22763 - 22764 [*] 0. secs (0.u,0.s) +Chars 22765 - 22770 [step.] 0. secs (0.u,0.s) +Chars 22771 - 22776 [auto.] 0. secs (0.u,0.s) +Chars 22777 - 22794 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) +Chars 22795 - 22804 [(apply~H2).] 0. secs (0.u,0.s) +Chars 22809 - 22810 [+] 0. secs (0.u,0.s) +Chars 22812 - 22824 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 22825 - 22841 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 22848 - 22853 [step.] 0. secs (0.u,0.s) +Chars 22854 - 22858 [(cbn).] 0. secs (0.u,0.s) +Chars 22859 - 22871 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 22876 - 22877 [+] 0. secs (0.u,0.s) +Chars 22879 - 22891 [unpriv_halt.] 0.003 secs (0.003u,0.s) +Chars 22892 - 22902 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 22909 - 22910 [*] 0. secs (0.u,0.s) +Chars 22911 - 22916 [step.] 0. secs (0.u,0.s) +Chars 22917 - 22921 [(cbn).] 0. secs (0.u,0.s) +Chars 22922 - 22934 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 22941 - 22942 [*] 0. secs (0.u,0.s) +Chars 22943 - 22952 [(apply~H1).] 0. secs (0.u,0.s) +Chars 22957 - 22958 [+] 0. secs (0.u,0.s) +Chars 22959 - 22971 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 22972 - 22984 [contra_size.] 0. secs (0.u,0.s) +Chars 22987 - 22988 [-] 0. secs (0.u,0.s) +Chars 22990 - 23088 [(inv~Ht3;~ddestruction;~subst;...] 0.117 secs (0.116u,0.s) +Chars 23093 - 23094 [+] 0. secs (0.u,0.s) +Chars 23095 - 23107 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23108 - 23124 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 23131 - 23132 [*] 0. secs (0.u,0.s) +Chars 23133 - 23138 [step.] 0. secs (0.u,0.s) +Chars 23139 - 23143 [(cbn).] 0. secs (0.u,0.s) +Chars 23144 - 23156 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 23157 - 23169 [contra_size.] 0.002 secs (0.002u,0.s) +Chars 23176 - 23177 [*] 0. secs (0.u,0.s) +Chars 23178 - 23183 [step.] 0. secs (0.u,0.s) +Chars 23184 - 23189 [auto.] 0. secs (0.u,0.s) +Chars 23194 - 23195 [+] 0. secs (0.u,0.s) +Chars 23196 - 23206 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 23207 - 23236 [(apply~CIH;~auto;~try~apply~H).] 0. secs (0.u,0.s) +Chars 23243 - 23248 [step.] 0. secs (0.u,0.s) +Chars 23249 - 23254 [auto.] 0. secs (0.u,0.s) +Chars 23259 - 23260 [+] 0. secs (0.u,0.s) +Chars 23261 - 23273 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23274 - 23290 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 23297 - 23298 [*] 0. secs (0.u,0.s) +Chars 23299 - 23304 [step.] 0. secs (0.u,0.s) +Chars 23305 - 23309 [(cbn).] 0. secs (0.u,0.s) +Chars 23310 - 23322 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23323 - 23335 [contra_size.] 0. secs (0.u,0.s) +Chars 23342 - 23343 [*] 0. secs (0.u,0.s) +Chars 23344 - 23349 [step.] 0. secs (0.u,0.s) +Chars 23350 - 23367 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) +Chars 23368 - 23377 [(apply~H2).] 0. secs (0.u,0.s) +Chars 23382 - 23383 [+] 0. secs (0.u,0.s) +Chars 23384 - 23394 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 23395 - 23405 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 23406 - 23414 [(apply~H).] 0. secs (0.u,0.s) +Chars 23415 - 23432 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) +Chars 23439 - 23444 [step.] 0. secs (0.u,0.s) +Chars 23445 - 23454 [(apply~H2).] 0. secs (0.u,0.s) +Chars 23459 - 23460 [+] 0. secs (0.u,0.s) +Chars 23462 - 23474 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23475 - 23491 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 23492 - 23497 [step.] 0. secs (0.u,0.s) +Chars 23504 - 23508 [(cbn).] 0. secs (0.u,0.s) +Chars 23509 - 23521 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 23522 - 23534 [contra_size.] 0. secs (0.u,0.s) +Chars 23539 - 23540 [+] 0. secs (0.u,0.s) +Chars 23542 - 23552 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 23553 - 23569 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 23570 - 23578 [(apply~H).] 0. secs (0.u,0.s) +Chars 23583 - 23584 [+] 0. secs (0.u,0.s) +Chars 23585 - 23597 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23598 - 23622 [(apply~CIH;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 23629 - 23634 [step.] 0. secs (0.u,0.s) +Chars 23635 - 23639 [(cbn).] 0. secs (0.u,0.s) +Chars 23640 - 23652 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23653 - 23665 [contra_size.] 0. secs (0.u,0.s) +Chars 23670 - 23671 [+] 0. secs (0.u,0.s) +Chars 23673 - 23700 [(destruct~(classic_empty~B)).] 0. secs (0.u,0.s) +Chars 23707 - 23708 [*] 0. secs (0.u,0.s) +Chars 23709 - 23721 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23722 - 23738 [(apply~CIH;~auto).] 0.003 secs (0.003u,0.s) +Chars 23739 - 23747 [(apply~H).] 0. secs (0.u,0.s) +Chars 23756 - 23761 [step.] 0. secs (0.u,0.s) +Chars 23762 - 23766 [(cbn).] 0. secs (0.u,0.s) +Chars 23767 - 23779 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 23786 - 23787 [*] 0. secs (0.u,0.s) +Chars 23788 - 23798 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 23799 - 23816 [(apply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 23817 - 23825 [(apply~H).] 0. secs (0.u,0.s) +Chars 23826 - 23835 [(apply~H1).] 0. secs (0.u,0.s) +Chars 23840 - 23841 [+] 0. secs (0.u,0.s) +Chars 23843 - 23855 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23856 - 23868 [contra_size.] 0. secs (0.u,0.s) +Chars 23873 - 23874 [+] 0. secs (0.u,0.s) +Chars 23876 - 23888 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23889 - 23905 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 23906 - 23914 [(apply~H).] 0. secs (0.u,0.s) +Chars 23921 - 23926 [step.] 0. secs (0.u,0.s) +Chars 23927 - 23931 [(cbn).] 0. secs (0.u,0.s) +Chars 23932 - 23944 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 23945 - 23957 [contra_size.] 0. secs (0.u,0.s) +Chars 23958 - 23962 [Qed.] 0.138 secs (0.136u,0.001s) +Chars 23964 - 24336 [Lemma~secret_halt_trans_2~:~~~...] 0.002 secs (0.002u,0.s) +Chars 24337 - 24343 [Proof.] 0. secs (0.u,0.s) +Chars 24346 - 24409 [(intros~E~Label~priv~l~b1~b2~R...] 0. secs (0.u,0.s) +Chars 24412 - 24436 [generalize~dependent~t3.] 0. secs (0.u,0.s) +Chars 24437 - 24461 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 24464 - 24483 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 24484 - 24506 [(intros~t2~t3~Ht2~Ht23).] 0. secs (0.u,0.s) +Chars 24509 - 24521 [step~in~Ht2.] 0. secs (0.u,0.s) +Chars 24522 - 24535 [step~in~Ht23.] 0. secs (0.u,0.s) +Chars 24536 - 24545 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 24548 - 24599 [(hinduction~Ht23~before~c;~int...] 0.675 secs (0.668u,0.005s) +Chars 24602 - 24603 [-] 0. secs (0.u,0.s) +Chars 24604 - 24612 [(inv~Ht2).] 0.018 secs (0.017u,0.s) +Chars 24613 - 24633 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 24634 - 24646 [contra_size.] 0.004 secs (0.003u,0.s) +Chars 24649 - 24650 [-] 0. secs (0.u,0.s) +Chars 24651 - 24663 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 24664 - 24682 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 24687 - 24761 [(inv~Ht2;~ddestruction;~subst;...] 0.056 secs (0.055u,0.001s) +Chars 24766 - 24771 [step.] 0. secs (0.u,0.s) +Chars 24772 - 24777 [auto.] 0. secs (0.u,0.s) +Chars 24780 - 24781 [-] 0. secs (0.u,0.s) +Chars 24782 - 24803 [(eapply~IHHt23;~eauto).] 0. secs (0.u,0.s) +Chars 24808 - 24881 [(inv~Ht2;~ddestruction;~subst;...] 0.118 secs (0.116u,0.002s) +Chars 24886 - 24897 [step~in~H0.] 0. secs (0.u,0.s) +Chars 24898 - 24903 [auto.] 0. secs (0.u,0.s) +Chars 24906 - 24907 [-] 0. secs (0.u,0.s) +Chars 24912 - 24985 [(inv~Ht2;~ddestruction;~subst;...] 0.082 secs (0.081u,0.001s) +Chars 24988 - 24989 [-] 0. secs (0.u,0.s) +Chars 24990 - 25002 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 25005 - 25019 [(inv~SIZECHECK).] 0.024 secs (0.023u,0.s) +Chars 25020 - 25044 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) +Chars 25049 - 25058 [Unshelve.] 0. secs (0.u,0.s) +Chars 25059 - 25070 [all:~auto.] 0. secs (0.u,0.s) +Chars 25075 - 25148 [(inv~Ht2;~ddestruction;~subst;...] 0.072 secs (0.071u,0.s) +Chars 25153 - 25154 [+] 0. secs (0.u,0.s) +Chars 25155 - 25160 [step.] 0. secs (0.u,0.s) +Chars 25161 - 25170 [(apply~H2).] 0. secs (0.u,0.s) +Chars 25175 - 25176 [+] 0. secs (0.u,0.s) +Chars 25177 - 25186 [(apply~H1).] 0. secs (0.u,0.s) +Chars 25189 - 25190 [-] 0. secs (0.u,0.s) +Chars 25192 - 25204 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25205 - 25229 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) +Chars 25234 - 25307 [(inv~Ht2;~ddestruction;~subst;...] 0.056 secs (0.056u,0.s) +Chars 25312 - 25317 [step.] 0. secs (0.u,0.s) +Chars 25318 - 25323 [auto.] 0. secs (0.u,0.s) +Chars 25326 - 25327 [-] 0. secs (0.u,0.s) +Chars 25329 - 25341 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25342 - 25357 [(inv~SIZECHECK1).] 0.024 secs (0.023u,0.s) +Chars 25358 - 25373 [(inv~SIZECHECK2).] 0.022 secs (0.022u,0.s) +Chars 25374 - 25398 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) +Chars 25403 - 25412 [Unshelve.] 0. secs (0.u,0.s) +Chars 25413 - 25424 [all:~auto.] 0. secs (0.u,0.s) +Chars 25429 - 25502 [(inv~Ht2;~ddestruction;~subst;...] 0.073 secs (0.071u,0.001s) +Chars 25507 - 25508 [+] 0. secs (0.u,0.s) +Chars 25509 - 25514 [step.] 0. secs (0.u,0.s) +Chars 25515 - 25524 [(apply~H2).] 0. secs (0.u,0.s) +Chars 25529 - 25530 [+] 0. secs (0.u,0.s) +Chars 25531 - 25540 [(apply~H1).] 0. secs (0.u,0.s) +Chars 25543 - 25544 [-] 0. secs (0.u,0.s) +Chars 25545 - 25559 [(inv~SIZECHECK).] 0.028 secs (0.027u,0.s) +Chars 25561 - 25578 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 25579 - 25588 [Unshelve.] 0. secs (0.u,0.s) +Chars 25589 - 25600 [all:~auto.] 0. secs (0.u,0.s) +Chars 25605 - 25678 [(inv~Ht2;~ddestruction;~subst;...] 0.096 secs (0.094u,0.001s) +Chars 25683 - 25707 [(rewrite~itree_eta'~~at~1).] 0.023 secs (0.023u,0.s) +Chars 25708 - 25719 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 25722 - 25723 [-] 0. secs (0.u,0.s) +Chars 25724 - 25736 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 25737 - 25755 [(eapply~CIH;~eauto).] 0.001 secs (0.001u,0.s) +Chars 25756 - 25761 [step.] 0. secs (0.u,0.s) +Chars 25762 - 25772 [(apply~Ht2).] 0. secs (0.u,0.s) +Chars 25777 - 25782 [step.] 0. secs (0.u,0.s) +Chars 25783 - 25791 [(apply~H).] 0. secs (0.u,0.s) +Chars 25794 - 25795 [-] 0. secs (0.u,0.s) +Chars 25797 - 25809 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 25810 - 25828 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 25829 - 25834 [step.] 0. secs (0.u,0.s) +Chars 25835 - 25840 [auto.] 0. secs (0.u,0.s) +Chars 25843 - 25844 [-] 0. secs (0.u,0.s) +Chars 25845 - 25857 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 25858 - 25870 [contra_size.] 0. secs (0.u,0.s) +Chars 25873 - 25874 [-] 0. secs (0.u,0.s) +Chars 25875 - 25887 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25888 - 25929 [(eapply~CIH~with~(t2~:=~Vis~e1...] 0. secs (0.u,0.s) +Chars 25934 - 25935 [+] 0. secs (0.u,0.s) +Chars 25936 - 25941 [step.] 0. secs (0.u,0.s) +Chars 25942 - 25947 [auto.] 0. secs (0.u,0.s) +Chars 25952 - 25953 [+] 0. secs (0.u,0.s) +Chars 25954 - 25962 [(apply~H).] 0. secs (0.u,0.s) +Chars 25965 - 25966 [-] 0. secs (0.u,0.s) +Chars 25967 - 25979 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25980 - 25992 [contra_size.] 0. secs (0.u,0.s) +Chars 25993 - 25997 [Qed.] 0.192 secs (0.189u,0.002s) +Chars 25999 - 26284 [Lemma~eqit_secure_RR_imp~:~~~f...] 0. secs (0.u,0.s) +Chars 26285 - 26291 [Proof.] 0. secs (0.u,0.s) +Chars 26294 - 26301 [(intros).] 0. secs (0.u,0.s) +Chars 26302 - 26326 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 26327 - 26337 [revert~t1.] 0. secs (0.u,0.s) +Chars 26340 - 26359 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 26360 - 26378 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 26381 - 26394 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 26395 - 26404 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 26407 - 26571 [(hinduction~Ht12~before~c;~int...] 0.052 secs (0.052u,0.s) +Chars 26575 - 26593 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 26594 - 26601 [(intros).] 0. secs (0.u,0.s) +Chars 26602 - 26620 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 26621 - 26630 [(apply~H0).] 0. secs (0.u,0.s) +Chars 26633 - 26634 [-] 0. secs (0.u,0.s) +Chars 26636 - 26648 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26649 - 26667 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 26668 - 26677 [(apply~H0).] 0. secs (0.u,0.s) +Chars 26680 - 26681 [-] 0. secs (0.u,0.s) +Chars 26683 - 26695 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26696 - 26714 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 26715 - 26724 [(apply~H0).] 0. secs (0.u,0.s) +Chars 26725 - 26729 [Qed.] 0.005 secs (0.005u,0.s) +Chars 26731 - 27104 [Lemma~secret_halt_trans_3~:~~~...] 0.001 secs (0.001u,0.s) +Chars 27105 - 27111 [Proof.] 0. secs (0.u,0.s) +Chars 27114 - 27121 [(intros).] 0. secs (0.u,0.s) +Chars 27122 - 27150 [(apply~eqit_secure_sym~in~H1).] 0. secs (0.u,0.s) +Chars 27151 - 27179 [(apply~eqit_secure_sym~in~H2).] 0. secs (0.u,0.s) +Chars 27182 - 27204 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 27205 - 27245 [(eapply~secret_halt_trans_2~in...] 0. secs (0.u,0.s) +Chars 27248 - 27281 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) +Chars 27284 - 27291 [(intros).] 0. secs (0.u,0.s) +Chars 27292 - 27299 [(inv~H3).] 0.001 secs (0.001u,0.s) +Chars 27300 - 27320 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 27321 - 27325 [Qed.] 0.001 secs (0.001u,0.s) +Chars 27327 - 27672 [Lemma~eqit_secure_trans~:~~~fo...] 0. secs (0.u,0.s) +Chars 27673 - 27679 [Proof.] 0. secs (0.u,0.s) +Chars 27682 - 27727 [(intros~E~Label~priv~l~b1~b2~R...] 0. secs (0.u,0.s) +Chars 27730 - 27750 [icoinduction~c~CIH0.] 0.001 secs (0.001u,0.s) +Chars 27751 - 27777 [(intros~t1~t2~t3~Ht12~Ht23).] 0. secs (0.u,0.s) +Chars 27780 - 27793 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 27794 - 27807 [step~in~Ht23.] 0. secs (0.u,0.s) +Chars 27811 - 27861 [(hinduction~Ht12~before~E;~int...] 0.017 secs (0.017u,0.s) +Chars 27864 - 27865 [-] 0. secs (0.u,0.s) +Chars 27866 - 27890 [(remember~(RetF~r2)~as~x).] 0.001 secs (0.001u,0.s) +Chars 27895 - 27956 [(hinduction~Ht23~before~E;~int...] 0.031 secs (0.031u,0.s) +Chars 27961 - 27985 [(rewrite~itree_eta'~~at~1).] 0.021 secs (0.021u,0.s) +Chars 27986 - 27997 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 27998 - 28015 [(eapply~H0;~eauto).] 0.001 secs (0.u,0.s) +Chars 28018 - 28019 [-] 0. secs (0.u,0.s) +Chars 28021 - 28035 [(genobs~t4~ot4).] 0. secs (0.u,0.s) +Chars 28040 - 28109 [(assert~((exists~t5,~ot4~=~Tau...] 0. secs (0.u,0.s) +Chars 28114 - 28115 [{] 0. secs (0.u,0.s) +Chars 28116 - 28165 [(destruct~ot4;~eauto;~right;~i...] 0.007 secs (0.007u,0.s) +Chars 28166 - 28167 [}] 0. secs (0.u,0.s) +Chars 28172 - 28205 [(destruct~H0~as~[[t5~Ht4]|~Ht4]).] 0. secs (0.u,0.s) +Chars 28210 - 28211 [+] 0. secs (0.u,0.s) +Chars 28212 - 28218 [subst.] 0. secs (0.u,0.s) +Chars 28219 - 28231 [(rewrite~Ht4).] 0. secs (0.u,0.s) +Chars 28232 - 28252 [(rewrite~Ht4~in~Ht23).] 0. secs (0.u,0.s) +Chars 28253 - 28265 [constructor.] 0. secs (0.u,0.s) +Chars 28272 - 28291 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 28292 - 28317 [(eapply~eqit_secure_TauLR).] 0. secs (0.u,0.s) +Chars 28318 - 28323 [step.] 0. secs (0.u,0.s) +Chars 28330 - 28335 [auto.] 0. secs (0.u,0.s) +Chars 28340 - 28341 [+] 0. secs (0.u,0.s) +Chars 28342 - 28398 [(destruct~ot4;~try~(exfalso;~e...] 0.001 secs (0.001u,0.s) +Chars 28405 - 28406 [*] 0. secs (0.u,0.s) +Chars 28407 - 28416 [(inv~Ht23).] 0.023 secs (0.023u,0.s) +Chars 28417 - 28427 [(inv~CHECK).] 0.016 secs (0.016u,0.s) +Chars 28428 - 28452 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) +Chars 28461 - 28541 [(assert~~~(eqit_secure~Label~p...] 0. secs (0.u,0.s) +Chars 28550 - 28551 [{] 0. secs (0.u,0.s) +Chars 28552 - 28557 [step.] 0. secs (0.u,0.s) +Chars 28558 - 28562 [(cbn).] 0. secs (0.u,0.s) +Chars 28563 - 28587 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) +Chars 28588 - 28625 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) +Chars 28636 - 28641 [step.] 0. secs (0.u,0.s) +Chars 28642 - 28660 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 28661 - 28672 [now~unstep.] 0. secs (0.u,0.s) +Chars 28673 - 28674 [}] 0. secs (0.u,0.s) +Chars 28683 - 28702 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 28712 - 28721 [now~step.] 0.001 secs (0.001u,0.s) +Chars 28729 - 28730 [*] 0. secs (0.u,0.s) +Chars 28731 - 28771 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) +Chars 28780 - 28782 [--] 0. secs (0.u,0.s) +Chars 28783 - 28832 [(inv~Ht23;~ddestruction;~subst...] 0.062 secs (0.061u,0.s) +Chars 28844 - 28862 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 28863 - 28873 [(inv~CHECK).] 0.023 secs (0.023u,0.s) +Chars 28935 - 28972 [(eapply~eqit_secure_trans_aux2...] 0. secs (0.u,0.s) +Chars 28981 - 28983 [--] 0. secs (0.u,0.s) +Chars 28984 - 29011 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) +Chars 29023 - 29025 [++] 0. secs (0.u,0.s) +Chars 29026 - 29045 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 29046 - 29070 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) +Chars 29085 - 29090 [step.] 0.001 secs (0.001u,0.s) +Chars 29106 - 29160 [(eapply~secret_halt_trans_3~wi...] 0.001 secs (0.001u,0.s) +Chars 29175 - 29177 [**] 0. secs (0.u,0.s) +Chars 29178 - 29200 [now~step;~constructor.] 0. secs (0.u,0.s) +Chars 29215 - 29217 [**] 0. secs (0.u,0.s) +Chars 29218 - 29227 [now~step.] 0. secs (0.u,0.s) +Chars 29239 - 29241 [++] 0. secs (0.u,0.s) +Chars 29242 - 29252 [unpriv_co.] 0. secs (0.u,0.s) +Chars 29253 - 29272 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 29287 - 29350 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) +Chars 29365 - 29370 [step.] 0. secs (0.u,0.s) +Chars 29371 - 29376 [auto.] 0. secs (0.u,0.s) +Chars 29377 - 29412 [(eapply~eqit_secure_TauLVisR;~...] 0. secs (0.u,0.s) +Chars 29415 - 29416 [-] 0. secs (0.u,0.s) +Chars 29417 - 29436 [(apply~IHHt12;~auto).] 0. secs (0.u,0.s) +Chars 29441 - 29465 [(remember~(TauF~t0)~as~y).] 0.001 secs (0.001u,0.s) +Chars 29470 - 29531 [(hinduction~Ht23~before~E;~int...] 0.439 secs (0.43u,0.009s) +Chars 29536 - 29537 [+] 0. secs (0.u,0.s) +Chars 29539 - 29557 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 29558 - 29569 [now~unstep.] 0. secs (0.u,0.s) +Chars 29575 - 29576 [+] 0. secs (0.u,0.s) +Chars 29578 - 29589 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 29590 - 29601 [now~unstep.] 0. secs (0.u,0.s) +Chars 29607 - 29608 [+] 0. secs (0.u,0.s) +Chars 29610 - 29624 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 29627 - 29628 [-] 0. secs (0.u,0.s) +Chars 29630 - 29656 [(remember~(VisF~e~k2)~as~x).] 0.001 secs (0.001u,0.s) +Chars 29661 - 29766 [(hinduction~Ht23~before~E;~int...] 0.131 secs (0.127u,0.003s) +Chars 29771 - 29772 [+] 0. secs (0.u,0.s) +Chars 29774 - 29792 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 29793 - 29800 [(intros).] 0. secs (0.u,0.s) +Chars 29801 - 29834 [(eapply~CIH0;~eauto;~try~apply...] 0.001 secs (0.001u,0.s) +Chars 29841 - 29849 [(apply~H).] 0. secs (0.u,0.s) +Chars 29854 - 29855 [+] 0. secs (0.u,0.s) +Chars 29856 - 29880 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.022u,0.s) +Chars 29881 - 29892 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 29893 - 29910 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 29913 - 29914 [-] 0. secs (0.u,0.s) +Chars 29916 - 29940 [(remember~(TauF~t0)~as~x).] 0.001 secs (0.001u,0.s) +Chars 29945 - 29994 [(hinduction~Ht23~before~E;~int...] 0.065 secs (0.064u,0.001s) +Chars 29999 - 30000 [+] 0. secs (0.u,0.s) +Chars 30002 - 30012 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 30013 - 30039 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 30046 - 30051 [auto.] 0. secs (0.u,0.s) +Chars 30056 - 30057 [+] 0. secs (0.u,0.s) +Chars 30058 - 30071 [(destruct~ot2).] 0.001 secs (0.001u,0.s) +Chars 30078 - 30079 [*] 0. secs (0.u,0.s) +Chars 30080 - 30093 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 30094 - 30113 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 30114 - 30125 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 30134 - 30155 [(remember~(k1~a)~as~t).] 0. secs (0.u,0.s) +Chars 30156 - 30173 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 30174 - 30202 [setoid_rewrite~~<-~Heqt~in~H.] 0.015 secs (0.015u,0.s) +Chars 30211 - 30227 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) +Chars 30228 - 30232 [(cbn).] 0. secs (0.u,0.s) +Chars 30233 - 30243 [(inv~CHECK).] 0.015 secs (0.015u,0.s) +Chars 30244 - 30281 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) +Chars 30288 - 30289 [*] 0. secs (0.u,0.s) +Chars 30290 - 30300 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 30301 - 30326 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) +Chars 30335 - 30348 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 30349 - 30372 [(remember~(TauF~t)~as~y).] 0.001 secs (0.001u,0.s) +Chars 30381 - 30386 [step.] 0. secs (0.u,0.s) +Chars 30395 - 30456 [(hinduction~Ht23~before~E;~int...] 0.339 secs (0.33u,0.008s) +Chars 30465 - 30467 [--] 0. secs (0.u,0.s) +Chars 30469 - 30487 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 30488 - 30499 [now~unstep.] 0. secs (0.u,0.s) +Chars 30509 - 30511 [--] 0. secs (0.u,0.s) +Chars 30513 - 30524 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 30525 - 30536 [now~unstep.] 0. secs (0.u,0.s) +Chars 30546 - 30548 [--] 0. secs (0.u,0.s) +Chars 30549 - 30563 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 30570 - 30571 [*] 0. secs (0.u,0.s) +Chars 30572 - 30613 [(destruct~(classic~(leq~(priv~...] 0.001 secs (0.001u,0.s) +Chars 30622 - 30624 [--] 0. secs (0.u,0.s) +Chars 30625 - 30644 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 30645 - 30656 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 30657 - 30661 [(cbn).] 0. secs (0.u,0.s) +Chars 30673 - 30686 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 30687 - 30708 [(remember~(k1~a)~as~t).] 0. secs (0.u,0.s) +Chars 30709 - 30726 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 30727 - 30755 [setoid_rewrite~~<-~Heqt~in~H.] 0.016 secs (0.016u,0.s) +Chars 30767 - 30783 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) +Chars 30784 - 30794 [(inv~CHECK).] 0.023 secs (0.023u,0.s) +Chars 30795 - 30832 [(eapply~eqit_secure_trans_aux2...] 0. secs (0.u,0.s) +Chars 30841 - 30843 [--] 0. secs (0.u,0.s) +Chars 30844 - 30871 [(destruct~(classic_empty~X)).] 0.001 secs (0.001u,0.s) +Chars 30883 - 30885 [++] 0. secs (0.u,0.s) +Chars 30886 - 30905 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 30906 - 30917 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 30918 - 30923 [step.] 0.001 secs (0.001u,0.s) +Chars 30939 - 30973 [(eapply~secret_halt_trans_3;~e...] 0.001 secs (0.001u,0.s) +Chars 30974 - 30982 [(apply~H).] 0. secs (0.u,0.s) +Chars 30997 - 31006 [now~step.] 0. secs (0.u,0.s) +Chars 31019 - 31021 [++] 0. secs (0.u,0.s) +Chars 31022 - 31032 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 31033 - 31045 [(eapply~CIH0).] 0. secs (0.u,0.s) +Chars 31046 - 31054 [(apply~H).] 0. secs (0.u,0.s) +Chars 31069 - 31082 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 31083 - 31088 [step.] 0. secs (0.u,0.s) +Chars 31089 - 31115 [(remember~(VisF~e0~k)~as~y).] 0.001 secs (0.001u,0.s) +Chars 31130 - 31264 [(hinduction~Ht23~before~E;~int...] 0.519 secs (0.507u,0.011s) +Chars 31279 - 31281 [**] 0. secs (0.u,0.s) +Chars 31283 - 31301 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 31302 - 31313 [now~unstep.] 0. secs (0.u,0.s) +Chars 31329 - 31331 [**] 0. secs (0.u,0.s) +Chars 31332 - 31343 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 31345 - 31356 [now~unstep.] 0. secs (0.u,0.s) +Chars 31372 - 31374 [**] 0. secs (0.u,0.s) +Chars 31376 - 31400 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.019u,0.s) +Chars 31401 - 31412 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 31418 - 31419 [+] 0. secs (0.u,0.s) +Chars 31420 - 31438 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 31439 - 31460 [(eapply~IHHt23;~eauto).] 0.001 secs (0.001u,0.s) +Chars 31465 - 31466 [+] 0. secs (0.u,0.s) +Chars 31468 - 31478 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 31479 - 31505 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 31506 - 31514 [(apply~H).] 0. secs (0.u,0.s) +Chars 31519 - 31520 [+] 0. secs (0.u,0.s) +Chars 31521 - 31545 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.021u,0.s) +Chars 31546 - 31557 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 31558 - 31575 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 31580 - 31581 [+] 0. secs (0.u,0.s) +Chars 31582 - 31594 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 31596 - 31615 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 31616 - 31625 [(apply~H0).] 0. secs (0.u,0.s) +Chars 31628 - 31629 [-] 0. secs (0.u,0.s) +Chars 31635 - 31655 [(genobs_clear~t3~ot3).] 0. secs (0.u,0.s) +Chars 31660 - 31693 [(assert~(Hne~:~nonempty~A);~ea...] 0. secs (0.u,0.s) +Chars 31694 - 31702 [(inv~Hne).] 0.019 secs (0.018u,0.s) +Chars 31707 - 31776 [(assert~((exists~t4,~ot3~=~Tau...] 0. secs (0.u,0.s) +Chars 31781 - 31782 [{] 0. secs (0.u,0.s) +Chars 31783 - 31832 [(destruct~ot3;~eauto;~right;~i...] 0.017 secs (0.016u,0.s) +Chars 31833 - 31834 [}] 0. secs (0.u,0.s) +Chars 31839 - 31872 [(destruct~H0~as~[[t4~Ht3]|~Ht3]).] 0. secs (0.u,0.s) +Chars 31877 - 31878 [+] 0. secs (0.u,0.s) +Chars 31879 - 31885 [subst.] 0. secs (0.u,0.s) +Chars 31886 - 31898 [constructor.] 0. secs (0.u,0.s) +Chars 31899 - 31924 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) +Chars 31931 - 31940 [Unshelve.] 0. secs (0.u,0.s) +Chars 31941 - 31951 [all:~auto.] 0. secs (0.u,0.s) +Chars 31958 - 31993 [(eapply~eqit_secure_TauRVisL;~...] 0. secs (0.u,0.s) +Chars 31994 - 31999 [step.] 0. secs (0.u,0.s) +Chars 32000 - 32005 [auto.] 0. secs (0.u,0.s) +Chars 32071 - 32072 [+] 0. secs (0.u,0.s) +Chars 32079 - 32135 [(destruct~ot3;~try~(exfalso;~e...] 0. secs (0.u,0.s) +Chars 32142 - 32143 [*] 0. secs (0.u,0.s) +Chars 32144 - 32164 [(inv~Ht23;~inv~CHECK).] 0.025 secs (0.025u,0.s) +Chars 32165 - 32178 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 32179 - 32190 [clear~CIH0.] 0. secs (0.u,0.s) +Chars 32199 - 32217 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 32218 - 32229 [(rewrite~H4).] 0. secs (0.u,0.s) +Chars 32230 - 32273 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) +Chars 32282 - 32296 [(rewrite~<-~H4).] 0. secs (0.u,0.s) +Chars 32297 - 32306 [(apply~H1).] 0. secs (0.u,0.s) +Chars 32307 - 32316 [Unshelve.] 0. secs (0.u,0.s) +Chars 32317 - 32322 [auto.] 0. secs (0.u,0.s) +Chars 32347 - 32348 [*] 0. secs (0.u,0.s) +Chars 32349 - 32361 [constructor.] 0. secs (0.u,0.s) +Chars 32362 - 32387 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) +Chars 32396 - 32431 [(eapply~eqit_secure_TauRVisL;~...] 0. secs (0.u,0.s) +Chars 32432 - 32437 [step.] 0. secs (0.u,0.s) +Chars 32438 - 32443 [auto.] 0. secs (0.u,0.s) +Chars 32488 - 32489 [*] 0. secs (0.u,0.s) +Chars 32490 - 32531 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) +Chars 32540 - 32542 [--] 0. secs (0.u,0.s) +Chars 32543 - 32592 [(inv~Ht23;~ddestruction;~subst...] 0.083 secs (0.081u,0.002s) +Chars 32604 - 32622 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 32623 - 32634 [(rewrite~H5).] 0. secs (0.u,0.s) +Chars 32635 - 32645 [(inv~CHECK).] 0.005 secs (0.005u,0.s) +Chars 32658 - 32716 [(eapply~eqit_secure_trans_aux2...] 0.001 secs (0.001u,0.s) +Chars 32728 - 32742 [(rewrite~<-~H5).] 0. secs (0.u,0.s) +Chars 32743 - 32752 [(apply~H2).] 0. secs (0.u,0.s) +Chars 32753 - 32762 [Unshelve.] 0. secs (0.u,0.s) +Chars 32763 - 32774 [all:~auto.] 0. secs (0.u,0.s) +Chars 32783 - 32785 [--] 0. secs (0.u,0.s) +Chars 32786 - 32813 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) +Chars 32825 - 32827 [++] 0. secs (0.u,0.s) +Chars 32828 - 32847 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 32848 - 32872 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.021u,0.s) +Chars 32873 - 32878 [step.] 0.001 secs (0.001u,0.s) +Chars 32894 - 32950 [(eapply~secret_halt_trans_3~wi...] 0.001 secs (0.001u,0.s) +Chars 32965 - 32967 [**] 0. secs (0.u,0.s) +Chars 32968 - 32973 [step.] 0. secs (0.u,0.s) +Chars 32974 - 32978 [(cbn).] 0. secs (0.u,0.s) +Chars 32979 - 32989 [unpriv_co.] 0. secs (0.u,0.s) +Chars 33004 - 33006 [**] 0. secs (0.u,0.s) +Chars 33007 - 33016 [now~step.] 0. secs (0.u,0.s) +Chars 33029 - 33031 [++] 0. secs (0.u,0.s) +Chars 33032 - 33042 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 33043 - 33068 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) +Chars 33083 - 33092 [Unshelve.] 0. secs (0.u,0.s) +Chars 33093 - 33104 [all:~auto.] 0. secs (0.u,0.s) +Chars 33119 - 33186 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) +Chars 33201 - 33206 [step.] 0. secs (0.u,0.s) +Chars 33207 - 33212 [auto.] 0. secs (0.u,0.s) +Chars 33213 - 33245 [(eapply~eqit_secure_VisLR;~eau...] 0.001 secs (0.001u,0.s) +Chars 33248 - 33249 [-] 0. secs (0.u,0.s) +Chars 33251 - 33278 [(remember~(VisF~e2~k2)~as~x).] 0.001 secs (0.001u,0.s) +Chars 33362 - 33476 [(hinduction~Ht23~before~E;~int...] 0.134 secs (0.132u,0.001s) +Chars 33481 - 33482 [+] 0. secs (0.u,0.s) +Chars 33483 - 33501 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 33502 - 33523 [(eapply~IHHt23;~eauto).] 0.002 secs (0.002u,0.s) +Chars 33528 - 33529 [+] 0. secs (0.u,0.s) +Chars 33531 - 33541 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 33542 - 33568 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 33569 - 33577 [(apply~H).] 0. secs (0.u,0.s) +Chars 33582 - 33583 [+] 0. secs (0.u,0.s) +Chars 33585 - 33618 [(assert~(Hne~:~nonempty~B);~ea...] 0. secs (0.u,0.s) +Chars 33619 - 33627 [(inv~Hne).] 0.004 secs (0.004u,0.s) +Chars 33634 - 33644 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 33645 - 33679 [(eapply~CIH0;~eauto;~try~eappl...] 0.001 secs (0.001u,0.s) +Chars 33680 - 33688 [(apply~H).] 0. secs (0.u,0.s) +Chars 33695 - 33704 [Unshelve.] 0. secs (0.u,0.s) +Chars 33705 - 33710 [auto.] 0. secs (0.u,0.s) +Chars 33715 - 33716 [+] 0. secs (0.u,0.s) +Chars 33718 - 33752 [(assert~(Hne~:~nonempty~B0);~e...] 0. secs (0.u,0.s) +Chars 33753 - 33761 [(inv~Hne).] 0.004 secs (0.004u,0.s) +Chars 33768 - 33778 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 33779 - 33805 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 33806 - 33814 [(apply~H).] 0. secs (0.u,0.s) +Chars 33821 - 33830 [Unshelve.] 0. secs (0.u,0.s) +Chars 33831 - 33836 [auto.] 0. secs (0.u,0.s) +Chars 33841 - 33842 [+] 0. secs (0.u,0.s) +Chars 33843 - 33857 [(genobs~t2~ot2).] 0.001 secs (0.001u,0.s) +Chars 33858 - 33871 [(destruct~ot2).] 0.001 secs (0.001u,0.s) +Chars 33878 - 33879 [*] 0. secs (0.u,0.s) +Chars 33880 - 33913 [(assert~(Hne~:~nonempty~B);~ea...] 0.851 secs (0.831u,0.018s) +Chars 33914 - 33922 [(inv~Hne).] 0.005 secs (0.005u,0.s) +Chars 33931 - 33950 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 33951 - 33962 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 33963 - 33973 [(inv~CHECK).] 0.007 secs (0.006u,0.s) +Chars 33983 - 34034 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) +Chars 34043 - 34052 [Unshelve.] 0. secs (0.u,0.s) +Chars 34053 - 34058 [auto.] 0. secs (0.u,0.s) +Chars 34065 - 34066 [*] 0. secs (0.u,0.s) +Chars 34067 - 34100 [(assert~(Hne~:~nonempty~B);~ea...] 0.841 secs (0.828u,0.012s) +Chars 34101 - 34109 [(inv~Hne).] 0.005 secs (0.005u,0.s) +Chars 34118 - 34128 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 34129 - 34155 [(eapply~CIH0;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 34156 - 34165 [Unshelve.] 0. secs (0.u,0.s) +Chars 34166 - 34177 [all:~auto.] 0. secs (0.u,0.s) +Chars 34186 - 34195 [clear~H0.] 0. secs (0.u,0.s) +Chars 34196 - 34213 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 34214 - 34219 [step.] 0. secs (0.u,0.s) +Chars 34220 - 34238 [(genobs~(k2~a)~ok2).] 0. secs (0.u,0.s) +Chars 34247 - 34266 [clear~Heqok2~H1~k2.] 0. secs (0.u,0.s) +Chars 34275 - 34298 [(remember~(TauF~t)~as~y).] 0.001 secs (0.001u,0.s) +Chars 34307 - 34353 [(hinduction~H~before~E;~intros...] 0.047 secs (0.047u,0.s) +Chars 34362 - 34364 [--] 0. secs (0.u,0.s) +Chars 34365 - 34383 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 34385 - 34396 [now~unstep.] 0. secs (0.u,0.s) +Chars 34406 - 34408 [--] 0. secs (0.u,0.s) +Chars 34409 - 34428 [(constructor;~eauto).] 1.497 secs (1.489u,0.007s) +Chars 34437 - 34439 [--] 0. secs (0.u,0.s) +Chars 34441 - 34452 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 34453 - 34464 [now~unstep.] 0. secs (0.u,0.s) +Chars 34474 - 34476 [--] 0. secs (0.u,0.s) +Chars 34477 - 34488 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 34489 - 34518 [(eapply~H0~with~(c~:=~c);~eauto).] 0.005 secs (0.005u,0.s) +Chars 34528 - 34530 [--] 0. secs (0.u,0.s) +Chars 34532 - 34556 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.019u,0.s) +Chars 34557 - 34568 [now~unstep.] 0. secs (0.u,0.s) +Chars 34576 - 34577 [*] 0. secs (0.u,0.s) +Chars 34578 - 34593 [(inv~SIZECHECK2).] 0.005 secs (0.005u,0.s) +Chars 34602 - 34642 [(destruct~(classic~(leq~(priv~...] 0.001 secs (0.001u,0.s) +Chars 34651 - 34653 [--] 0. secs (0.u,0.s) +Chars 34654 - 34673 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 34674 - 34685 [unpriv_ind.] 0.003 secs (0.003u,0.s) +Chars 34686 - 34696 [(inv~CHECK).] 0.006 secs (0.006u,0.s) +Chars 34709 - 34760 [(eapply~eqit_secure_trans_aux2...] 0.001 secs (0.001u,0.s) +Chars 34761 - 34770 [Unshelve.] 0. secs (0.u,0.s) +Chars 34771 - 34782 [all:~auto.] 0. secs (0.u,0.s) +Chars 34791 - 34793 [--] 0. secs (0.u,0.s) +Chars 34794 - 34821 [(destruct~(classic_empty~X)).] 0.001 secs (0.001u,0.s) +Chars 34833 - 34835 [++] 0. secs (0.u,0.s) +Chars 34836 - 34848 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 34849 - 34868 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 34869 - 34878 [(apply~H1).] 0. secs (0.u,0.s) +Chars 34893 - 34898 [step.] 0. secs (0.u,0.s) +Chars 34899 - 34907 [(apply~H).] 0. secs (0.u,0.s) +Chars 34908 - 34917 [Unshelve.] 0. secs (0.u,0.s) +Chars 34918 - 34923 [auto.] 0. secs (0.u,0.s) +Chars 34935 - 34937 [++] 0. secs (0.u,0.s) +Chars 34938 - 34948 [unpriv_co.] 0.004 secs (0.003u,0.s) +Chars 34949 - 34975 [(eapply~CIH0;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 34990 - 34999 [Unshelve.] 0. secs (0.u,0.s) +Chars 35000 - 35011 [all:~auto.] 0. secs (0.u,0.s) +Chars 35026 - 35035 [clear~H0.] 0. secs (0.u,0.s) +Chars 35036 - 35041 [step.] 0. secs (0.u,0.s) +Chars 35042 - 35067 [(remember~(VisF~e~k)~as~y).] 0.001 secs (0.001u,0.s) +Chars 35082 - 35099 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 35100 - 35113 [clear~Heqot2.] 0. secs (0.u,0.s) +Chars 35114 - 35132 [(genobs~(k2~a)~ok2).] 0. secs (0.u,0.s) +Chars 35147 - 35160 [clear~Heqok2.] 0. secs (0.u,0.s) +Chars 35175 - 35306 [(hinduction~H~before~E;~intros...] 18.487 secs (18.297u,0.168s) +Chars 35321 - 35323 [**] 0. secs (0.u,0.s) +Chars 35325 - 35343 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 35344 - 35355 [now~unstep.] 0. secs (0.u,0.s) +Chars 35371 - 35373 [**] 0. secs (0.u,0.s) +Chars 35374 - 35385 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 35387 - 35398 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 35414 - 35416 [**] 0. secs (0.u,0.s) +Chars 35418 - 35442 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.019u,0.s) +Chars 35443 - 35454 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 35460 - 35461 [+] 0. secs (0.u,0.s) +Chars 35462 - 35486 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.022u,0.s) +Chars 35487 - 35498 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 35499 - 35516 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) +Chars 35521 - 35522 [+] 0. secs (0.u,0.s) +Chars 35524 - 35539 [(inv~SIZECHECK2).] 0.003 secs (0.003u,0.s) +Chars 35540 - 35552 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 35553 - 35572 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 35573 - 35582 [(apply~H0).] 0. secs (0.u,0.s) +Chars 35589 - 35597 [(apply~H).] 0. secs (0.u,0.s) +Chars 35598 - 35607 [Unshelve.] 0. secs (0.u,0.s) +Chars 35608 - 35613 [auto.] 0. secs (0.u,0.s) +Chars 35616 - 35617 [-] 0. secs (0.u,0.s) +Chars 35618 - 35644 [(remember~(VisF~e~k2)~as~x).] 0.002 secs (0.002u,0.s) +Chars 35645 - 35756 [(hinduction~Ht23~before~E;~int...] 0.155 secs (0.153u,0.002s) +Chars 35761 - 35762 [+] 0. secs (0.u,0.s) +Chars 35763 - 35781 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 35782 - 35803 [(eapply~IHHt23;~eauto).] 0.003 secs (0.003u,0.s) +Chars 35808 - 35809 [+] 0. secs (0.u,0.s) +Chars 35810 - 35828 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 35830 - 35864 [(assert~(Hne~:~nonempty~A0);~e...] 0.003 secs (0.003u,0.s) +Chars 35865 - 35873 [(inv~Hne).] 0.004 secs (0.004u,0.s) +Chars 35874 - 35891 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) +Chars 35898 - 35909 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 35910 - 35919 [Unshelve.] 0. secs (0.u,0.s) +Chars 35920 - 35925 [auto.] 0. secs (0.u,0.s) +Chars 35930 - 35931 [+] 0. secs (0.u,0.s) +Chars 35932 - 35943 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 35944 - 35978 [(assert~(Hne~:~nonempty~A0);~e...] 0.004 secs (0.004u,0.s) +Chars 35979 - 35987 [(inv~Hne).] 0.004 secs (0.004u,0.s) +Chars 35988 - 36005 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) +Chars 36013 - 36024 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 36025 - 36034 [Unshelve.] 0. secs (0.u,0.s) +Chars 36035 - 36040 [auto.] 0. secs (0.u,0.s) +Chars 36045 - 36046 [+] 0. secs (0.u,0.s) +Chars 36047 - 36074 [(assert~(Hne~:~nonempty~A0)).] 0. secs (0.u,0.s) +Chars 36075 - 36076 [{] 0. secs (0.u,0.s) +Chars 36077 - 36083 [eauto.] 0. secs (0.u,0.s) +Chars 36084 - 36085 [}] 0. secs (0.u,0.s) +Chars 36086 - 36094 [(inv~Hne).] 0.005 secs (0.005u,0.s) +Chars 36095 - 36101 [eauto.] 0.001 secs (0.001u,0.s) +Chars 36102 - 36111 [Unshelve.] 0. secs (0.u,0.s) +Chars 36113 - 36118 [auto.] 0. secs (0.u,0.s) +Chars 36123 - 36124 [+] 0. secs (0.u,0.s) +Chars 36125 - 36136 [unpriv_ind.] 0.002 secs (0.002u,0.s) +Chars 36137 - 36143 [eauto.] 0.004 secs (0.004u,0.s) +Chars 36148 - 36149 [+] 0. secs (0.u,0.s) +Chars 36151 - 36170 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 36171 - 36176 [step.] 0.001 secs (0.001u,0.s) +Chars 36184 - 36199 [(inv~SIZECHECK0).] 0.004 secs (0.003u,0.s) +Chars 36206 - 36258 [(eapply~secret_halt_trans_3~wi...] 0.001 secs (0.001u,0.s) +Chars 36265 - 36266 [*] 0. secs (0.u,0.s) +Chars 36267 - 36272 [step.] 0. secs (0.u,0.s) +Chars 36273 - 36282 [(apply~H0).] 0. secs (0.u,0.s) +Chars 36289 - 36290 [*] 0. secs (0.u,0.s) +Chars 36291 - 36299 [(apply~H).] 0. secs (0.u,0.s) +Chars 36302 - 36303 [-] 0. secs (0.u,0.s) +Chars 36309 - 36333 [(remember~(TauF~t0)~as~y).] 0.001 secs (0.001u,0.s) +Chars 36338 - 36406 [(hinduction~Ht23~before~E;~int...] 0.358 secs (0.355u,0.003s) +Chars 36412 - 36413 [+] 0. secs (0.u,0.s) +Chars 36414 - 36427 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 36428 - 36447 [(rewrite~itree_eta').] 0. secs (0.u,0.s) +Chars 36448 - 36472 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) +Chars 36479 - 36484 [step.] 0.001 secs (0.001u,0.s) +Chars 36492 - 36526 [(eapply~secret_halt_trans_2;~e...] 0. secs (0.u,0.s) +Chars 36527 - 36532 [step.] 0. secs (0.u,0.s) +Chars 36533 - 36538 [auto.] 0. secs (0.u,0.s) +Chars 36543 - 36544 [+] 0. secs (0.u,0.s) +Chars 36545 - 36557 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 36558 - 36577 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 36578 - 36586 [(apply~H).] 0. secs (0.u,0.s) +Chars 36591 - 36592 [+] 0. secs (0.u,0.s) +Chars 36593 - 36617 [(rewrite~itree_eta'~~at~1).] 0.021 secs (0.021u,0.s) +Chars 36618 - 36629 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 36630 - 36647 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 36652 - 36653 [+] 0. secs (0.u,0.s) +Chars 36654 - 36666 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 36667 - 36679 [contra_size.] 0. secs (0.u,0.s) +Chars 36682 - 36683 [-] 0. secs (0.u,0.s) +Chars 36689 - 36755 [(inv~Ht23;~ddestruction;~subst...] 0.121 secs (0.12u,0.001s) +Chars 36760 - 36761 [+] 0. secs (0.u,0.s) +Chars 36762 - 36774 [constructor.] 0. secs (0.u,0.s) +Chars 36775 - 36794 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 36795 - 36800 [step.] 0. secs (0.u,0.s) +Chars 36801 - 36806 [auto.] 0. secs (0.u,0.s) +Chars 36811 - 36812 [+] 0. secs (0.u,0.s) +Chars 36813 - 36823 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 36824 - 36843 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 36844 - 36861 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) +Chars 36868 - 36873 [step.] 0. secs (0.u,0.s) +Chars 36874 - 36883 [(apply~H2).] 0. secs (0.u,0.s) +Chars 36888 - 36889 [+] 0. secs (0.u,0.s) +Chars 36891 - 36903 [constructor.] 0. secs (0.u,0.s) +Chars 36904 - 36923 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 36928 - 36929 [+] 0. secs (0.u,0.s) +Chars 36931 - 36958 [(destruct~(classic_empty~B)).] 0. secs (0.u,0.s) +Chars 36965 - 36966 [*] 0. secs (0.u,0.s) +Chars 36967 - 36979 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 36980 - 36999 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 37000 - 37005 [step.] 0. secs (0.u,0.s) +Chars 37006 - 37010 [(cbn).] 0. secs (0.u,0.s) +Chars 37011 - 37023 [unpriv_halt.] 0.002 secs (0.002u,0.s) +Chars 37030 - 37031 [*] 0. secs (0.u,0.s) +Chars 37032 - 37042 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 37043 - 37062 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 37063 - 37072 [(apply~H1).] 0. secs (0.u,0.s) +Chars 37077 - 37078 [+] 0. secs (0.u,0.s) +Chars 37080 - 37092 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37093 - 37112 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 37119 - 37124 [step.] 0. secs (0.u,0.s) +Chars 37125 - 37129 [(cbn).] 0. secs (0.u,0.s) +Chars 37130 - 37142 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 37143 - 37155 [contra_size.] 0. secs (0.u,0.s) +Chars 37157 - 37158 [-] 0. secs (0.u,0.s) +Chars 37160 - 37184 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) +Chars 37185 - 37190 [step.] 0.001 secs (0.001u,0.s) +Chars 37194 - 37251 [(eapply~secret_halt_trans_2~wi...] 0.001 secs (0.001u,0.s) +Chars 37255 - 37256 [+] 0. secs (0.u,0.s) +Chars 37257 - 37262 [step.] 0. secs (0.u,0.s) +Chars 37263 - 37267 [(cbn).] 0. secs (0.u,0.s) +Chars 37268 - 37280 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 37284 - 37285 [+] 0. secs (0.u,0.s) +Chars 37286 - 37291 [step.] 0. secs (0.u,0.s) +Chars 37292 - 37297 [auto.] 0. secs (0.u,0.s) +Chars 37299 - 37300 [-] 0. secs (0.u,0.s) +Chars 37302 - 37329 [(destruct~(classic_empty~A)).] 0. secs (0.u,0.s) +Chars 37333 - 37334 [+] 0. secs (0.u,0.s) +Chars 37335 - 37401 [(inv~Ht23;~ddestruction;~subst...] 0.127 secs (0.125u,0.001s) +Chars 37407 - 37408 [*] 0. secs (0.u,0.s) +Chars 37409 - 37421 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37422 - 37464 [(eapply~CIH0~with~(t2~:=~Vis~e...] 0. secs (0.u,0.s) +Chars 37472 - 37474 [--] 0. secs (0.u,0.s) +Chars 37475 - 37480 [step.] 0. secs (0.u,0.s) +Chars 37481 - 37485 [(cbn).] 0. secs (0.u,0.s) +Chars 37486 - 37498 [unpriv_halt.] 0.001 secs (0.u,0.s) +Chars 37499 - 37511 [contra_size.] 0. secs (0.u,0.s) +Chars 37519 - 37521 [--] 0. secs (0.u,0.s) +Chars 37522 - 37527 [step.] 0. secs (0.u,0.s) +Chars 37528 - 37533 [auto.] 0. secs (0.u,0.s) +Chars 37539 - 37540 [*] 0. secs (0.u,0.s) +Chars 37541 - 37553 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37554 - 37571 [(rewrite~H1~in~H3).] 0. secs (0.u,0.s) +Chars 37572 - 37614 [(eapply~CIH0~with~(t2~:=~Vis~e...] 0. secs (0.u,0.s) +Chars 37622 - 37624 [--] 0. secs (0.u,0.s) +Chars 37625 - 37630 [step.] 0. secs (0.u,0.s) +Chars 37631 - 37635 [(cbn).] 0. secs (0.u,0.s) +Chars 37636 - 37648 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37649 - 37661 [contra_size.] 0. secs (0.u,0.s) +Chars 37669 - 37671 [--] 0. secs (0.u,0.s) +Chars 37672 - 37677 [step.] 0. secs (0.u,0.s) +Chars 37678 - 37687 [(apply~H3).] 0. secs (0.u,0.s) +Chars 37693 - 37694 [*] 0. secs (0.u,0.s) +Chars 37695 - 37707 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37709 - 37728 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) +Chars 37736 - 37741 [step.] 0. secs (0.u,0.s) +Chars 37742 - 37746 [(cbn).] 0. secs (0.u,0.s) +Chars 37747 - 37759 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37760 - 37772 [contra_size.] 0. secs (0.u,0.s) +Chars 37778 - 37779 [*] 0. secs (0.u,0.s) +Chars 37780 - 37792 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37794 - 37836 [(eapply~CIH0~with~(t2~:=~Vis~e...] 0. secs (0.u,0.s) +Chars 37844 - 37846 [--] 0. secs (0.u,0.s) +Chars 37847 - 37852 [step.] 0. secs (0.u,0.s) +Chars 37853 - 37857 [(cbn).] 0. secs (0.u,0.s) +Chars 37858 - 37870 [unpriv_halt.] 0.005 secs (0.005u,0.s) +Chars 37871 - 37883 [contra_size.] 0. secs (0.u,0.s) +Chars 37891 - 37893 [--] 0. secs (0.u,0.s) +Chars 37894 - 37903 [(apply~H2).] 0. secs (0.u,0.s) +Chars 37909 - 37910 [*] 0. secs (0.u,0.s) +Chars 37911 - 37923 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 37924 - 37936 [contra_size.] 0.001 secs (0.u,0.s) +Chars 37940 - 37941 [+] 0. secs (0.u,0.s) +Chars 37942 - 37964 [(destruct~(observe~t3)).] 0. secs (0.u,0.s) +Chars 37970 - 37971 [*] 0. secs (0.u,0.s) +Chars 37972 - 38038 [(inv~Ht23;~ddestruction;~subst...] 0.032 secs (0.03u,0.002s) +Chars 38044 - 38045 [*] 0. secs (0.u,0.s) +Chars 38046 - 38056 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 38057 - 38076 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 38077 - 38085 [(apply~H).] 0. secs (0.u,0.s) +Chars 38093 - 38159 [(inv~Ht23;~ddestruction;~subst...] 0.051 secs (0.05u,0.001s) +Chars 38167 - 38172 [step.] 0. secs (0.u,0.s) +Chars 38173 - 38178 [auto.] 0. secs (0.u,0.s) +Chars 38180 - 38185 [auto.] 0. secs (0.u,0.s) +Chars 38191 - 38192 [*] 0. secs (0.u,0.s) +Chars 38193 - 38233 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) +Chars 38241 - 38242 [{] 0. secs (0.u,0.s) +Chars 38243 - 38309 [(inv~Ht23;~ddestruction;~subst...] 0.094 secs (0.093u,0.001s) +Chars 38310 - 38311 [}] 0. secs (0.u,0.s) +Chars 38319 - 38346 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) +Chars 38354 - 38356 [--] 0. secs (0.u,0.s) +Chars 38357 - 38369 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 38370 - 38389 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 38390 - 38398 [(apply~H).] 0. secs (0.u,0.s) +Chars 38399 - 38404 [step.] 0. secs (0.u,0.s) +Chars 38405 - 38410 [auto.] 0. secs (0.u,0.s) +Chars 38418 - 38420 [--] 0. secs (0.u,0.s) +Chars 38421 - 38431 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 38432 - 38451 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 38452 - 38460 [(apply~H).] 0. secs (0.u,0.s) +Chars 38471 - 38537 [(inv~Ht23;~ddestruction;~subst...] 0.066 secs (0.065u,0.s) +Chars 38548 - 38550 [++] 0. secs (0.u,0.s) +Chars 38551 - 38556 [step.] 0. secs (0.u,0.s) +Chars 38557 - 38566 [(apply~H5).] 0. secs (0.u,0.s) +Chars 38577 - 38579 [++] 0. secs (0.u,0.s) +Chars 38581 - 38590 [(apply~H4).] 0. secs (0.u,0.s) +Chars 38591 - 38595 [Qed.] 0.727 secs (0.711u,0.013s) +Chars 38598 - 38818 [Lemma~eqit_itree_eqit_secure~:...] 0. secs (0.u,0.s) +Chars 38819 - 38825 [Proof.] 0. secs (0.u,0.s) +Chars 38828 - 38859 [(intros~E~Label~priv~l~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 38860 - 38878 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 38881 - 38907 [(intros~t1~t1'~t2~Heq~Hsec).] 0. secs (0.u,0.s) +Chars 38908 - 38913 [icbn.] 0. secs (0.u,0.s) +Chars 38917 - 38929 [step~in~Heq.] 0. secs (0.u,0.s) +Chars 38930 - 38943 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 38947 - 38955 [(inv~Heq).] 0.096 secs (0.094u,0.001s) +Chars 38958 - 38959 [-] 0. secs (0.u,0.s) +Chars 38960 - 38982 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) +Chars 38983 - 39007 [(rewrite~itree_eta'~~at~1).] 0.018 secs (0.018u,0.s) +Chars 39013 - 39037 [(remember~(RetF~r2)~as~x).] 0.001 secs (0.001u,0.s) +Chars 39038 - 39049 [clear~H~H0.] 0. secs (0.u,0.s) +Chars 39054 - 39115 [(hinduction~Hsec~before~E;~int...] 0.023 secs (0.023u,0.s) +Chars 39118 - 39119 [-] 0. secs (0.u,0.s) +Chars 39121 - 39135 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 39140 - 39209 [(assert~((exists~t3,~ot2~=~Tau...] 0. secs (0.u,0.s) +Chars 39214 - 39215 [{] 0. secs (0.u,0.s) +Chars 39216 - 39265 [(destruct~ot2;~eauto;~right;~i...] 0.008 secs (0.008u,0.s) +Chars 39266 - 39267 [}] 0. secs (0.u,0.s) +Chars 39272 - 39305 [(destruct~H1~as~[[t3~Ht2]|~Ht2]).] 0. secs (0.u,0.s) +Chars 39310 - 39311 [+] 0. secs (0.u,0.s) +Chars 39312 - 39318 [subst.] 0. secs (0.u,0.s) +Chars 39319 - 39331 [(rewrite~Ht2).] 0. secs (0.u,0.s) +Chars 39332 - 39352 [(rewrite~Ht2~in~Hsec).] 0. secs (0.u,0.s) +Chars 39353 - 39365 [constructor.] 0. secs (0.u,0.s) +Chars 39372 - 39390 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 39391 - 39413 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) +Chars 39414 - 39423 [(inv~Hsec).] 0.023 secs (0.023u,0.s) +Chars 39428 - 39429 [+] 0. secs (0.u,0.s) +Chars 39430 - 39486 [(destruct~ot2;~try~(exfalso;~e...] 0.002 secs (0.002u,0.s) +Chars 39493 - 39494 [*] 0. secs (0.u,0.s) +Chars 39495 - 39517 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) +Chars 39518 - 39527 [(inv~Hsec).] 0.019 secs (0.019u,0.s) +Chars 39534 - 39535 [*] 0. secs (0.u,0.s) +Chars 39536 - 39558 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) +Chars 39559 - 39589 [(inv~Hsec;~ddestruction;~subst).] 0.051 secs (0.05u,0.s) +Chars 39598 - 39600 [--] 0. secs (0.u,0.s) +Chars 39602 - 39612 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 39613 - 39631 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 39632 - 39641 [(apply~H3).] 0. secs (0.u,0.s) +Chars 39650 - 39652 [--] 0. secs (0.u,0.s) +Chars 39654 - 39666 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 39667 - 39685 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 39688 - 39689 [-] 0. secs (0.u,0.s) +Chars 39690 - 39712 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) +Chars 39713 - 39779 [(inv~Hsec;~ddestruction;~subst...] 0.092 secs (0.091u,0.s) +Chars 39784 - 39785 [+] 0. secs (0.u,0.s) +Chars 39787 - 39805 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 39806 - 39813 [(intros).] 0. secs (0.u,0.s) +Chars 39814 - 39840 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 39841 - 39850 [(apply~H2).] 0. secs (0.u,0.s) +Chars 39855 - 39856 [+] 0. secs (0.u,0.s) +Chars 39858 - 39868 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 39869 - 39895 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 39896 - 39905 [(apply~H2).] 0. secs (0.u,0.s) +Chars 39910 - 39911 [+] 0. secs (0.u,0.s) +Chars 39913 - 39923 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 39924 - 39950 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 39951 - 39960 [(apply~H2).] 0. secs (0.u,0.s) +Chars 39965 - 39966 [+] 0. secs (0.u,0.s) +Chars 39968 - 39980 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 39981 - 40006 [(eapply~CIH;~try~apply~H2).] 0. secs (0.u,0.s) +Chars 40007 - 40012 [step.] 0.001 secs (0.001u,0.s) +Chars 40013 - 40025 [constructor.] 0. secs (0.u,0.s) +Chars 40026 - 40031 [auto.] 0. secs (0.u,0.s) +Chars 40036 - 40037 [+] 0. secs (0.u,0.s) +Chars 40039 - 40051 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40052 - 40099 [(eapply~CIH~with~(t1~:=~Vis~e~...] 0. secs (0.u,0.s) +Chars 40106 - 40111 [step.] 0.001 secs (0.001u,0.s) +Chars 40112 - 40124 [constructor.] 0. secs (0.u,0.s) +Chars 40125 - 40130 [auto.] 0. secs (0.u,0.s) +Chars 40135 - 40136 [+] 0. secs (0.u,0.s) +Chars 40138 - 40150 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40151 - 40177 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) +Chars 40178 - 40195 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 40196 - 40205 [(apply~H2).] 0. secs (0.u,0.s) +Chars 40206 - 40210 [Qed.] 0.079 secs (0.079u,0.s) +Chars 40212 - 40433 [Lemma~eqit_secure_eq_trans~:~~...] 0. secs (0.u,0.s) +Chars 40434 - 40440 [Proof.] 0. secs (0.u,0.s) +Chars 40443 - 40450 [(intros).] 0. secs (0.u,0.s) +Chars 40451 - 40505 [(apply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) +Chars 40508 - 40509 [{] 0. secs (0.u,0.s) +Chars 40510 - 40517 [(intros).] 0. secs (0.u,0.s) +Chars 40518 - 40525 [(inv~H1).] 0. secs (0.u,0.s) +Chars 40526 - 40527 [}] 0. secs (0.u,0.s) +Chars 40530 - 40562 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) +Chars 40563 - 40567 [Qed.] 0. secs (0.u,0.s) +Chars 40569 - 40756 [Lemma~eqit_secure_anything~:~~...] 0. secs (0.u,0.s) +Chars 40757 - 40763 [Proof.] 0. secs (0.u,0.s) +Chars 40766 - 40773 [(intros).] 0. secs (0.u,0.s) +Chars 40776 - 40811 [(eapply~eqit_secure_eq_trans;~...] 0. secs (0.u,0.s) +Chars 40814 - 40836 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 40837 - 40870 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) +Chars 40871 - 40875 [Qed.] 0. secs (0.u,0.s) +Chars 40878 - 41077 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 41078 - 41084 [Proof.] 0. secs (0.u,0.s) +Chars 41087 - 41100 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 41101 - 41127 [(destruct~b;~split;~intros).] 0. secs (0.u,0.s) +Chars 41130 - 41131 [-] 0. secs (0.u,0.s) +Chars 41132 - 41170 [(eapply~eutt_secure_eqit_secur...] 0.001 secs (0.001u,0.s) +Chars 41175 - 41197 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41198 - 41236 [(eapply~eutt_secure_eqit_secur...] 0. secs (0.u,0.s) +Chars 41241 - 41263 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41264 - 41269 [auto.] 0. secs (0.u,0.s) +Chars 41272 - 41273 [-] 0. secs (0.u,0.s) +Chars 41274 - 41297 [(assert~(x~≈~y);~auto).] 0. secs (0.u,0.s) +Chars 41298 - 41323 [(assert~(x0~≈~y0);~auto).] 0. secs (0.u,0.s) +Chars 41328 - 41343 [symmetry~in~H2.] 0. secs (0.u,0.s) +Chars 41348 - 41386 [(eapply~eutt_secure_eqit_secur...] 0.001 secs (0.001u,0.s) +Chars 41391 - 41406 [symmetry~in~H3.] 0. secs (0.u,0.s) +Chars 41407 - 41429 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41434 - 41472 [(eapply~eutt_secure_eqit_secur...] 0. secs (0.u,0.s) +Chars 41477 - 41499 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41500 - 41505 [auto.] 0. secs (0.u,0.s) +Chars 41508 - 41509 [-] 0. secs (0.u,0.s) +Chars 41510 - 41547 [(eapply~eqit_itree_eqit_secure...] 0.001 secs (0.001u,0.s) +Chars 41552 - 41574 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41575 - 41612 [(eapply~eqit_itree_eqit_secure...] 0. secs (0.u,0.s) +Chars 41617 - 41639 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41640 - 41645 [auto.] 0. secs (0.u,0.s) +Chars 41648 - 41649 [-] 0. secs (0.u,0.s) +Chars 41650 - 41673 [(assert~(x~≅~y);~auto).] 0. secs (0.u,0.s) +Chars 41674 - 41699 [(assert~(x0~≅~y0);~auto).] 0.002 secs (0.002u,0.s) +Chars 41704 - 41719 [symmetry~in~H2.] 0. secs (0.u,0.s) +Chars 41720 - 41735 [symmetry~in~H3.] 0. secs (0.u,0.s) +Chars 41740 - 41777 [(eapply~eqit_itree_eqit_secure...] 0.001 secs (0.001u,0.s) +Chars 41782 - 41804 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41805 - 41842 [(eapply~eqit_itree_eqit_secure...] 0. secs (0.u,0.s) +Chars 41847 - 41869 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 41870 - 41875 [auto.] 0. secs (0.u,0.s) +Chars 41876 - 41880 [Qed.] 0.001 secs (0.001u,0.s) +Chars 41882 - 42139 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 42140 - 42146 [Proof.] 0. secs (0.u,0.s) +Chars 42149 - 42177 [(repeat~intro;~split;~intros).] 0. secs (0.u,0.s) +Chars 42180 - 42181 [-] 0. secs (0.u,0.s) +Chars 42182 - 42244 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) +Chars 42249 - 42250 [{] 0. secs (0.u,0.s) +Chars 42251 - 42258 [(intros).] 0. secs (0.u,0.s) +Chars 42259 - 42266 [(inv~H2).] 0. secs (0.u,0.s) +Chars 42267 - 42268 [}] 0. secs (0.u,0.s) +Chars 42273 - 42305 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) +Chars 42310 - 42332 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 42337 - 42413 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) +Chars 42418 - 42419 [{] 0. secs (0.u,0.s) +Chars 42420 - 42427 [(intros).] 0. secs (0.u,0.s) +Chars 42428 - 42435 [(inv~H2).] 0. secs (0.u,0.s) +Chars 42436 - 42437 [}] 0. secs (0.u,0.s) +Chars 42442 - 42474 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) +Chars 42475 - 42497 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 42498 - 42503 [auto.] 0. secs (0.u,0.s) +Chars 42506 - 42507 [-] 0. secs (0.u,0.s) +Chars 42508 - 42555 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) +Chars 42560 - 42561 [{] 0. secs (0.u,0.s) +Chars 42562 - 42584 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 42585 - 42618 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) +Chars 42619 - 42620 [}] 0. secs (0.u,0.s) +Chars 42625 - 42680 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) +Chars 42685 - 42686 [{] 0. secs (0.u,0.s) +Chars 42687 - 42694 [(intros).] 0. secs (0.u,0.s) +Chars 42695 - 42702 [(inv~H3).] 0. secs (0.u,0.s) +Chars 42703 - 42704 [}] 0. secs (0.u,0.s) +Chars 42709 - 42741 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) +Chars 42746 - 42791 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) +Chars 42796 - 42797 [{] 0. secs (0.u,0.s) +Chars 42798 - 42820 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) +Chars 42821 - 42854 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) +Chars 42855 - 42856 [}] 0. secs (0.u,0.s) +Chars 42861 - 42916 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) +Chars 42921 - 42922 [{] 0. secs (0.u,0.s) +Chars 42923 - 42930 [(intros).] 0. secs (0.u,0.s) +Chars 42931 - 42938 [(inv~H4).] 0. secs (0.u,0.s) +Chars 42939 - 42940 [}] 0. secs (0.u,0.s) +Chars 42945 - 42977 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) +Chars 42978 - 42982 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/SecureEqEuttTrans.v b/extra/Secure/SecureEqEuttTrans.v index 55332be9..10983023 100644 --- a/extra/Secure/SecureEqEuttTrans.v +++ b/extra/Secure/SecureEqEuttTrans.v @@ -1,15 +1,14 @@ +From Coinduction Require Import all. From ITree Require Import Axioms ITree - ITreeFacts. + ITreeFacts. From ITree.Extra Require Import Secure.SecureEqHalt Secure.SecureEqEuttHalt . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -20,23 +19,23 @@ Lemma eses_aux3: (priv : forall A : Type, E A -> L) (l : L) (R2 : Type) (RR1 : R1 -> R2 -> Prop) (RR2 : R2 -> R3 -> Prop) (r : itree E R1 -> itree E R3 -> Prop) (m1 : itree E R2) (m2 : itree E R3), - paco2 (eqit_ RR2 true true id) bot2 m1 m2 -> + eutt RR2 m1 m2 -> forall r0 : R1, - secure_eqitF Label priv RR1 true true l id - (upaco2 (secure_eqit_ Label priv RR1 true true l id) bot2) (RetF r0) + secure_eqitF Label priv RR1 true true l + (eqit_secure Label priv RR1 true true l) (RetF r0) (observe m1) -> - secure_eqitF Label priv (rcompose RR1 RR2) true true l id - (upaco2 (secure_eqit_ Label priv (rcompose RR1 RR2) true true l id) r) + secure_eqitF Label priv (rcompose RR1 RR2) true true l + r (RetF r0) (observe m2). Proof. intros E R3 R1 Label priv l R2 RR1 RR2 r m1 m2 REL r0 Hsec. remember (RetF r0) as x. - step in REL. red in REL. hinduction Hsec before r; intros; inv Heqx; eauto. + step in REL. hinduction Hsec before r; intros; inv Heqx; eauto. - remember (RetF r2) as y. hinduction REL before r; intros; inv Heqy; eauto with itree. - - eapply IHHsec; eauto. pstep_reverse. setoid_rewrite <- tau_eutt at 1. step. auto. + - eapply IHHsec; eauto. unstep. setoid_rewrite <- tau_eutt at 1. step. auto. - remember (VisF e k2) as y. hinduction REL before r; intros; inv Heqy; ddestruction; subst; eauto with itree. - unpriv_ind. eapply H0; eauto. pstep_reverse. + unpriv_ind. eapply H0; eauto. now unstep. Qed. @@ -47,32 +46,30 @@ Lemma eses_aux4: (m1 : itree E R2) (m2 : itree E R3), (forall (t1 : itree E R1) (t2 : itree E R2) (t3 : itree E R3), eqit_secure Label priv RR1 true true l t1 t2 -> eutt RR2 t2 t3 -> r t1 t3) -> - paco2 (eqit_ RR2 true true id) bot2 m1 m2 -> + eutt RR2 m1 m2 -> forall (X : Type) (e : E X) (k : X -> itree E R1), - secure_eqitF Label priv RR1 true true l id - (upaco2 (secure_eqit_ Label priv RR1 true true l id) bot2) (VisF e k) + secure_eqitF Label priv RR1 true true l + (eqit_secure Label priv RR1 true true l) (VisF e k) (observe m1) -> leq (priv X e) l -> - secure_eqitF Label priv (rcompose RR1 RR2) true true l id - (upaco2 (secure_eqit_ Label priv (rcompose RR1 RR2) true true l id) r) + secure_eqitF Label priv (rcompose RR1 RR2) true true l + r (VisF e k) (observe m2). Proof. intros E R3 R1 Label priv l R2 RR1 RR2 r m1 m2 CIH REL X e k Hsec SECCHECK. - step in REL. red in REL. remember (VisF e k) as y. + step in REL. remember (VisF e k) as y. hinduction Hsec before r; intros; inv Heqy; ddestruction; subst; try contradiction. - - eapply IHHsec; eauto. pstep_reverse. rewrite <- tau_eutt at 1. step. auto. + - eapply IHHsec; eauto. unstep. rewrite <- tau_eutt at 1. step. auto. - inv REL; ddestruction; subst. - + constructor; auto. right. eapply CIH; eauto with itree. - apply H. + + constructor; auto. intros. eapply CIH; eauto with itree. + constructor; auto. remember (VisF e0 k2) as y. hinduction REL0 before r; intros; inv Heqy; ddestruction; subst; try contradiction. - * constructor; auto. right. eapply CIH; eauto with itree. apply H. + * constructor; auto. intros. eapply CIH; eauto with itree. * constructor; auto. eapply IHREL0; eauto. - rewrite H2. remember (VisF e k2) as y. hinduction REL before r; intros; inv Heqy; ddestruction; subst; try contradiction. + rewrite itree_eta' at 1. unpriv_ind. rewrite <- H2. eapply H0; eauto. - - pstep_reverse. + now unstep. + constructor; auto. eapply IHREL; eauto. Qed. @@ -82,10 +79,10 @@ Lemma eutt_secure_eqit_secure : forall E Label priv l R1 R2 R3 (RR1 : R1 -> R2 - eqit_secure Label priv RR1 true true l t1 t2 -> eutt RR2 t2 t3 -> eqit_secure Label priv (rcompose RR1 RR2) true true l t1 t3. Proof. - intros E Label priv l R1 R2 R3 RR1 RR2. coinduction c CIH. intros t1 t2 t3 Hsec Heutt. - step in Heutt. red in Heutt. step in Hsec. red in Hsec. - step. hinduction Heutt before r; intros; subst; auto with itree. - - remember (RetF r2) as x. remember (RetF r1) as y. hinduction Hsec before r; intros; try inv Heqx; try inv Heqy; subst; auto with itree. + intros E Label priv l R1 R2 R3 RR1 RR2. icoinduction c CIH. intros t1 t2 t3 Hsec Heutt. + step in Heutt. step in Hsec. cbn in *. + hinduction Heutt before c; intros; subst; auto with itree. + - remember (RetF r2) as x. remember (RetF r1) as y. hinduction Hsec before c; intros; try inv Heqx; try inv Heqy; subst; auto with itree. + constructor; eauto with itree. + constructor; auto. eapply IHHsec; eauto. + rewrite itree_eta'. unpriv_ind. eapply H0; eauto. @@ -94,13 +91,12 @@ Proof. { destruct ot1; eauto; right; repeat intro; discriminate. } (* because of the extra inductive cases this is not enough *) destruct Ht1 as [ [m3 Hm3] | Ht1 ]. - + subst. constructor. right. eapply CIH; eauto. + + subst. constructor. eapply CIH; eauto. apply tau_eqit_secure. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. step. auto. + destruct ot1; try (exfalso; eapply Ht1; eauto; fail). * rewrite itree_eta'. rewrite itree_eta' in Hsec. - eapply eses_aux3; eauto. step. constructor. - left. auto. + eapply eses_aux3; eauto. step. constructor. auto. * assert (leq (priv _ e) l \/ ~ leq (priv _ e) l). { apply classic. } destruct H as [SECCHECK | SECCHECK]; destruct ( classic_empty X ). @@ -109,11 +105,11 @@ Proof. ++ rewrite itree_eta'. rewrite itree_eta' in Hsec. eapply eses_aux4; eauto. do 2 rewrite tau_eutt. auto. - ++ unpriv_halt. right. eapply CIH; eauto. + ++ unpriv_halt. eapply CIH; eauto. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. step. auto. - ++ - unpriv_co. right. eapply CIH; try apply REL. + ++ + unpriv_co. eapply CIH; try apply REL. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. eapply unpriv_e_eqit_secure; eauto. @@ -121,34 +117,34 @@ Proof. - destruct (classic (leq (priv _ e) l ) ). + genobs_clear t1 ot1. remember (VisF e k1) as y. - hinduction Hsec before r; intros; try inv Heqy; ddestruction; subst; try contradiction; + hinduction Hsec before c; intros; try inv Heqy; ddestruction; subst; try contradiction; eauto with itree. - * constructor; auto. right. eapply CIH; eauto with itree. apply H. + * constructor; auto. intros. eapply CIH; eauto with itree. apply H. * rewrite itree_eta'. unpriv_ind. eapply H0; eauto. + remember (VisF e k1) as y. - hinduction Hsec before r; intros; inv Heqy; ddestruction; subst; try contradiction. + hinduction Hsec before c; intros; inv Heqy; ddestruction; subst; try contradiction. * eauto with itree. - * unpriv_co. right. eapply CIH; eauto with itree. apply H. - * unpriv_co. right. eapply CIH; eauto with itree. apply H. + * unpriv_co. eapply CIH; eauto with itree. apply H. + * unpriv_co. eapply CIH; eauto with itree. apply H. * rewrite itree_eta'. unpriv_ind. eapply H0; eauto. * destruct (observe t0). -- rewrite itree_eta' at 1. unpriv_ind. specialize (H a). - eapply eses_aux3; eauto. - -- unpriv_co. right. eapply CIH; eauto with itree. apply tau_eqit_secure. + eapply eses_aux3; eauto. apply REL. + -- unpriv_co. eapply CIH; eauto with itree. apply tau_eqit_secure. step. apply H. -- destruct (classic (leq (priv _ e) l ) ). ++ rewrite itree_eta' at 1. unpriv_ind. - eapply eses_aux4; eauto. + eapply eses_aux4; eauto. apply REL. ++ destruct (classic_empty X). - ** unpriv_halt. right. eapply CIH; eauto with itree. step. apply H. - ** unpriv_co. right. eapply CIH; eauto with itree. + ** unpriv_halt. eapply CIH; eauto with itree. step. apply H. + ** unpriv_co. eapply CIH; eauto with itree. eapply unpriv_e_eqit_secure; eauto. step. apply H. - * unpriv_halt. right. eapply CIH; eauto. step. + * unpriv_halt. eapply CIH; eauto. step. constructor; intros; auto with itree. - * unpriv_halt. right. eapply CIH; eauto with itree. apply H. - * unpriv_halt. right. eapply CIH; eauto with itree. apply H. + * unpriv_halt. eapply CIH; eauto with itree. apply H. + * unpriv_halt. eapply CIH; eauto with itree. apply H. step. constructor; auto with itree. - - eapply IHHeutt; eauto. pstep_reverse. apply eqit_secure_sym. + - eapply IHHeutt; eauto. unstep. apply eqit_secure_sym. apply tau_eqit_secure. apply eqit_secure_sym. step. auto. Qed. diff --git a/extra/Secure/SecureEqEuttTrans.v.timing b/extra/Secure/SecureEqEuttTrans.v.timing new file mode 100644 index 00000000..317ef9e6 --- /dev/null +++ b/extra/Secure/SecureEqEuttTrans.v.timing @@ -0,0 +1,7 @@ +Chars 0 - 65 [From~ITree~Require~Import~Axio...] 0.303 secs (0.198u,0.036s) +Chars 67 - 154 [From~ITree.Extra~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 156 - 186 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) +Chars 188 - 202 [Import~Monads.] 0. secs (0.u,0.s) +Chars 203 - 224 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 225 - 254 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 257 - 966 [Lemma~eses_aux3~:~~~forall~(E~...] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/SecureEqHalt.v.timing b/extra/Secure/SecureEqHalt.v.timing new file mode 100644 index 00000000..3cda1f14 --- /dev/null +++ b/extra/Secure/SecureEqHalt.v.timing @@ -0,0 +1,73 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.036 secs (0.028u,0.007s) +Chars 211 - 295 [From~ITree~Require~Import~Basi...] 0.19 secs (0.172u,0.018s) +Chars 297 - 343 [From~ITree.Extra~Require~Expor...] 0. secs (0.u,0.s) +Chars 346 - 360 [Import~Monads.] 0. secs (0.u,0.s) +Chars 361 - 382 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 383 - 412 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 476 - 498 [Section~SecureUntimed.] 0. secs (0.u,0.s) +Chars 501 - 543 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 546 - 573 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) +Chars 576 - 612 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) +Chars 615 - 647 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 651 - 689 [Coercion~is_true~:~bool~>->~So...] 0. secs (0.u,0.s) +Chars 692 - 3799 [Inductive~secure_eqitF~(b1~b2~...] 0.015 secs (0.012u,0.003s) +Chars 3803 - 3842 [Hint~Constructors~secure_eqitF...] 0. secs (0.u,0.s) +Chars 3846 - 4040 [Definition~secure_eqit_~(b1~b2...] 0. secs (0.u,0.s) +Chars 4044 - 4077 [Hint~Unfold~secure_eqit_:~itree.] 0. secs (0.u,0.s) +Chars 4080 - 4212 [Lemma~secure_eqitF_mono~b1~b2~...] 0. secs (0.u,0.s) +Chars 4215 - 4221 [Proof.] 0. secs (0.u,0.s) +Chars 4226 - 4234 [intros~!.] 0. secs (0.u,0.s) +Chars 4235 - 4250 [(red;~red~in~H0).] 0. secs (0.u,0.s) +Chars 4256 - 4333 [(induction~H0;~~~try~(solve~[~...] 0.272 secs (0.257u,0.014s) +Chars 4336 - 4340 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4344 - 4420 [Definition~secure_eqit_mon~b1~...] 0. secs (0.u,0.s) +Chars 4424 - 4488 [Definition~eqit_secure~b1~b2~l...] 0. secs (0.u,0.s) +Chars 4887 - 4905 [End~SecureUntimed.] 0.002 secs (0.002u,0.s) +Chars 4907 - 4956 [#[global]~Hint~Constructors~se...] 0. secs (0.u,0.s) +Chars 4958 - 5048 [Definition~NatPreorder~:~Preor...] 0. secs (0.u,0.s) +Chars 5050 - 5232 [Ltac~~unpriv_co~:=~~~try~apply...] 0. secs (0.u,0.s) +Chars 5234 - 5369 [Ltac~~unpriv_ind~:=~~~try~appl...] 0. secs (0.u,0.s) +Chars 5371 - 5761 [Ltac~~unpriv_halt~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 5763 - 5796 [Section~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) +Chars 5798 - 5819 [Section~eqit_secureC.] 0. secs (0.u,0.s) +Chars 5883 - 5948 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 5951 - 6014 [Context~(Label~:~Preorder)~(pr...] 0. secs (0.u,0.s) +Chars 7253 - 7270 [End~eqit_secureC.] 0. secs (0.u,0.s) +Chars 7296 - 7495 [Lemma~eqit_secure_sym~:~~~fora...] 0. secs (0.u,0.s) +Chars 7496 - 7502 [Proof.] 0. secs (0.u,0.s) +Chars 7505 - 7542 [(intros~b1~b2~E~R1~R2~RR~Label...] 0. secs (0.u,0.s) +Chars 7543 - 7562 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 7565 - 7583 [(intros~t1~t2~Hsec).] 0. secs (0.u,0.s) +Chars 7584 - 7597 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 7600 - 7710 [(hinduction~Hsec~before~c;~int...] 0.266 secs (0.263u,0.002s) +Chars 7713 - 7714 [-] 0. secs (0.u,0.s) +Chars 7715 - 7744 [(constructor;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 7745 - 7752 [(intros).] 0. secs (0.u,0.s) +Chars 7753 - 7772 [(apply~CIH;~apply~H).] 0. secs (0.u,0.s) +Chars 7775 - 7776 [-] 0. secs (0.u,0.s) +Chars 7777 - 7788 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7789 - 7797 [(apply~H).] 0. secs (0.u,0.s) +Chars 7801 - 7802 [-] 0. secs (0.u,0.s) +Chars 7803 - 7814 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7815 - 7823 [(apply~H).] 0. secs (0.u,0.s) +Chars 7825 - 7829 [Qed.] 0.005 secs (0.005u,0.s) +Chars 7832 - 8094 [Lemma~secure_eqit_mono~:~~~for...] 0. secs (0.u,0.s) +Chars 8095 - 8101 [Proof.] 0. secs (0.u,0.s) +Chars 8104 - 8111 [(intros).] 0. secs (0.u,0.s) +Chars 8112 - 8136 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 8137 - 8147 [revert~t1.] 0. secs (0.u,0.s) +Chars 8148 - 8166 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) +Chars 8169 - 8187 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 8188 - 8193 [icbn.] 0. secs (0.u,0.s) +Chars 8197 - 8210 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 8213 - 8391 [(hinduction~Ht12~before~l;~int...] 0.037 secs (0.037u,0.s) +Chars 8395 - 8396 [-] 0. secs (0.u,0.s) +Chars 8397 - 8415 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8416 - 8429 [now~apply~H2.] 0. secs (0.u,0.s) +Chars 8433 - 8434 [-] 0. secs (0.u,0.s) +Chars 8435 - 8462 [(constructor;~intros;~eauto).] 0. secs (0.u,0.s) +Chars 8463 - 8474 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8475 - 8483 [(apply~H).] 0. secs (0.u,0.s) +Chars 8485 - 8489 [Qed.] 0.006 secs (0.006u,0.s) +Chars 8491 - 8520 [End~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqHaltProgInsens.v.timing b/extra/Secure/SecureEqHaltProgInsens.v.timing new file mode 100644 index 00000000..124e5a24 --- /dev/null +++ b/extra/Secure/SecureEqHaltProgInsens.v.timing @@ -0,0 +1,66 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.037 secs (0.029u,0.008s) +Chars 209 - 275 [From~ITree~Require~Import~Axio...] 0.193 secs (0.173u,0.019s) +Chars 277 - 323 [From~ITree.Extra~Require~Expor...] 0. secs (0.u,0.s) +Chars 386 - 408 [Section~SecureUntimed.] 0. secs (0.u,0.s) +Chars 411 - 453 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 456 - 483 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) +Chars 486 - 522 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) +Chars 525 - 557 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 561 - 599 [Coercion~is_true~:~bool~>->~So...] 0. secs (0.u,0.s) +Chars 603 - 3577 [Variant~secure_eqitF~(b1~b2~:~...] 0.012 secs (0.009u,0.002s) +Chars 3581 - 3620 [Hint~Constructors~secure_eqitF...] 0. secs (0.u,0.s) +Chars 3624 - 3818 [Definition~secure_eqit_~(b1~b2...] 0. secs (0.u,0.s) +Chars 3822 - 3855 [Hint~Unfold~secure_eqit_:~itree.] 0. secs (0.u,0.s) +Chars 3859 - 3987 [Lemma~secure_eqitF_mono~b1~b2~...] 0. secs (0.u,0.s) +Chars 3990 - 3996 [Proof.] 0. secs (0.u,0.s) +Chars 4001 - 4009 [intros~!.] 0. secs (0.u,0.s) +Chars 4010 - 4025 [(red;~red~in~H0).] 0. secs (0.u,0.s) +Chars 4030 - 4106 [(destruct~H0;~~~try~(solve~[~c...] 0.042 secs (0.036u,0.005s) +Chars 4110 - 4114 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4118 - 4194 [Definition~secure_eqit_mon~b1~...] 0. secs (0.u,0.s) +Chars 4198 - 4262 [Definition~eqit_secure~b1~b2~l...] 0. secs (0.u,0.s) +Chars 4743 - 4761 [End~SecureUntimed.] 0.001 secs (0.001u,0.s) +Chars 4763 - 4812 [#[export]~Hint~Constructors~se...] 0. secs (0.u,0.s) +Chars 4814 - 4904 [Definition~NatPreorder~:~Preor...] 0. secs (0.u,0.s) +Chars 4906 - 4939 [Section~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) +Chars 8475 - 8496 [Section~eqit_secureC.] 0. secs (0.u,0.s) +Chars 8560 - 8625 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 8628 - 8691 [Context~(Label~:~Preorder)~(pr...] 0. secs (0.u,0.s) +Chars 8696 - 9197 [Variant~eqit_secure_trans_clo~...] 0.001 secs (0.001u,0.s) +Chars 9201 - 9249 [Hint~Constructors~eqit_secure_...] 0. secs (0.u,0.s) +Chars 9253 - 9326 [Definition~eqit_secureC~b1~b2~...] 0. secs (0.u,0.s) +Chars 9329 - 9362 [Hint~Unfold~eqit_secureC:~itree.] 0. secs (0.u,0.s) +Chars 9366 - 9519 [Lemma~eqit_secureC_mon~b1~b2~r...] 0. secs (0.u,0.s) +Chars 9522 - 9528 [Proof.] 0. secs (0.u,0.s) +Chars 9533 - 9563 [(destruct~IN;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 9566 - 9570 [Qed.] 0. secs (0.u,0.s) +Chars 9572 - 9589 [End~eqit_secureC.] 0. secs (0.u,0.s) +Chars 9593 - 9775 [Ltac~~unpriv_co~:=~~~try~apply...] 0. secs (0.u,0.s) +Chars 9777 - 9912 [Ltac~~unpriv_ind~:=~~~try~appl...] 0. secs (0.u,0.s) +Chars 9914 - 10309 [Ltac~~unpriv_halt~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 10311 - 10437 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 10580 - 10659 [Ltac~ne~A~:=~let~Hne~:=~fresh~...] 0. secs (0.u,0.s) +Chars 10661 - 10860 [Lemma~eqit_secure_sym~:~~~fora...] 0. secs (0.u,0.s) +Chars 10861 - 10867 [Proof.] 0. secs (0.u,0.s) +Chars 10870 - 10907 [(intros~b1~b2~E~R1~R2~RR~Label...] 0. secs (0.u,0.s) +Chars 10908 - 10927 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 10930 - 10948 [(intros~t1~t2~Hsec).] 0. secs (0.u,0.s) +Chars 10949 - 10962 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 10965 - 11055 [(hinduction~Hsec~before~c;~int...] 0.053 secs (0.052u,0.s) +Chars 11056 - 11060 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11063 - 11325 [Lemma~secure_eqit_mono~:~~~for...] 0.001 secs (0.u,0.s) +Chars 11326 - 11332 [Proof.] 0. secs (0.u,0.s) +Chars 11335 - 11342 [(intros).] 0. secs (0.u,0.s) +Chars 11343 - 11367 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 11368 - 11378 [revert~t1.] 0. secs (0.u,0.s) +Chars 11379 - 11397 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 11400 - 11418 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 11419 - 11424 [icbn.] 0. secs (0.u,0.s) +Chars 11428 - 11441 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 11444 - 11555 [(hinduction~Ht12~before~l;~int...] 0.027 secs (0.025u,0.001s) +Chars 11559 - 11560 [-] 0. secs (0.u,0.s) +Chars 11561 - 11579 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 11580 - 11593 [now~apply~H2.] 0. secs (0.u,0.s) +Chars 11595 - 11599 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11601 - 11630 [End~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 15f391a5..8dcf2b6c 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -1,5 +1,6 @@ -From Stdlib Require Import Morphisms. +(* Tour: This file *) +From Stdlib Require Import Morphisms. From ITree Require Import Axioms ITree diff --git a/extra/Secure/StrongBisimProper.v.timing b/extra/Secure/StrongBisimProper.v.timing index 3b5de393..c0c54f40 100644 --- a/extra/Secure/StrongBisimProper.v.timing +++ b/extra/Secure/StrongBisimProper.v.timing @@ -1,5 +1,5 @@ Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.224 secs (0.194u,0.029s) +Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.222 secs (0.192u,0.028s) Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0.001 secs (0.u,0.s) Chars 380 - 386 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Axioms.v.timing b/theories/Axioms.v.timing index 1cf4075d..1da5905b 100644 --- a/theories/Axioms.v.timing +++ b/theories/Axioms.v.timing @@ -1,4 +1,4 @@ -Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.137 secs (0.121u,0.015s) +Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.184 secs (0.125u,0.025s) Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0.001 secs (0.001u,0.s) Chars 368 - 391 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 490 - 599 [Ltac~~ddestruction~:=~~~repeat...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Basics.v.timing b/theories/Basics/Basics.v.timing index 9840efce..67d44714 100644 --- a/theories/Basics/Basics.v.timing +++ b/theories/Basics/Basics.v.timing @@ -1,10 +1,10 @@ -Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.u,0.001s) -Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.001u,0.s) -Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.002 secs (0.001u,0.s) +Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.001u,0.001s) +Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.002 secs (0.001u,0.s) +Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.005 secs (0.002u,0.001s) Chars 364 - 405 [Import~FunctorNotation~MonadNo...] 0. secs (0.u,0.s) Chars 406 - 429 [#[local]~Open~Scope~monad.] 0. secs (0.u,0.s) Chars 827 - 935 [Notation~"E~~>~F"~:=~(forall~T...] 0. secs (0.u,0.s) -Chars 1099 - 1158 [Definition~idM~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) +Chars 1099 - 1158 [Definition~idM~{E~:~Type~->~Ty...] 0.001 secs (0.u,0.s) Chars 1206 - 1233 [Notation~void~:=~Empty_set.] 0. secs (0.u,0.s) Chars 1278 - 1292 [Module~Monads.] 0. secs (0.u,0.s) Chars 1294 - 1337 [Definition~identity~(a~:~Type)...] 0. secs (0.u,0.s) @@ -21,12 +21,12 @@ Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.001u,0.s) Chars 2274 - 2285 [End~Monads.] 0. secs (0.u,0.s) Chars 2452 - 2572 [#[universes(polymorphic)]~Clas...] 0. secs (0.u,0.s) Chars 2574 - 2628 [#[global]~Hint~Mode~MonadIter~...] 0. secs (0.u,0.s) -Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.005 secs (0.004u,0.001s) -Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.004 secs (0.003u,0.001s) +Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.007 secs (0.004u,0.001s) +Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.005 secs (0.004u,0.001s) Chars 3534 - 3710 [#[global]~Instance~MonadIter_r...] 0. secs (0.u,0.s) Chars 3712 - 4047 [#[global]~Instance~MonadIter_o...] 0.002 secs (0.002u,0.s) -Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.s) -Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0.001 secs (0.u,0.s) +Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.001s) +Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0.001 secs (0.001u,0.s) Chars 4687 - 4778 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) Chars 4911 - 4994 [Definition~equiv_pred~{A~:~Typ...] 0. secs (0.u,0.s) Chars 4996 - 5142 [Definition~sum_pred~{A~B~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Category.v.timing b/theories/Basics/Category.v.timing index d6dd616a..405dffcc 100644 --- a/theories/Basics/Category.v.timing +++ b/theories/Basics/Category.v.timing @@ -1 +1 @@ -Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.009 secs (0.007u,0.002s) +Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.013 secs (0.007u,0.002s) diff --git a/theories/Basics/CategoryFacts.v.timing b/theories/Basics/CategoryFacts.v.timing index bfa3d29b..3a47f0bd 100644 --- a/theories/Basics/CategoryFacts.v.timing +++ b/theories/Basics/CategoryFacts.v.timing @@ -21,20 +21,20 @@ Chars 1394 - 1501 [Context~~{Proper_Cat_C~:~foral...] 0. secs (0.u,0.s) Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0.001 secs (0.u,0.s) Chars 1742 - 1748 [Proof.] 0. secs (0.u,0.s) Chars 1751 - 1755 [(red).] 0. secs (0.u,0.s) -Chars 1758 - 1836 [(rewrite~cat_assoc,~<-~(cat_as...] 0.009 secs (0.007u,0.002s) +Chars 1758 - 1836 [(rewrite~cat_assoc,~<-~(cat_as...] 0.008 secs (0.006u,0.001s) Chars 1839 - 1851 [reflexivity.] 0. secs (0.u,0.s) -Chars 1852 - 1856 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1852 - 1856 [Qed.] 0.001 secs (0.u,0.s) Chars 1858 - 1869 [End~IsoCat.] 0. secs (0.u,0.s) Chars 1871 - 1888 [Section~IsoBimap.] 0. secs (0.u,0.s) Chars 1890 - 1916 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 1917 - 1951 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 1952 - 1990 [Context~{BimapId_bif~:~BimapId...] 0. secs (0.u,0.s) Chars 1991 - 2031 [Context~{BimapCat_bif~:~BimapC...] 0. secs (0.u,0.s) -Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0.001 secs (0.001u,0.s) +Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0.001 secs (0.u,0.s) Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0.001 secs (0.001u,0.s) Chars 2402 - 2408 [Proof.] 0. secs (0.u,0.s) Chars 2411 - 2415 [(red).] 0. secs (0.u,0.s) -Chars 2418 - 2478 [(rewrite~bimap_cat,~(semi_iso~...] 0.006 secs (0.005u,0.001s) +Chars 2418 - 2478 [(rewrite~bimap_cat,~(semi_iso~...] 0.005 secs (0.004u,0.001s) Chars 2481 - 2493 [reflexivity.] 0. secs (0.u,0.s) Chars 2494 - 2498 [Qed.] 0.001 secs (0.u,0.s) Chars 2500 - 2513 [End~IsoBimap.] 0. secs (0.u,0.s) @@ -98,15 +98,15 @@ Chars 4639 - 4683 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.002u,0.s) Chars 4684 - 4688 [Qed.] 0. secs (0.u,0.s) Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) Chars 4804 - 4810 [Proof.] 0. secs (0.u,0.s) -Chars 4813 - 4857 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.002u,0.s) +Chars 4813 - 4857 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.001u,0.s) Chars 4858 - 4862 [Qed.] 0. secs (0.u,0.s) Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) Chars 5026 - 5032 [Proof.] 0. secs (0.u,0.s) -Chars 5035 - 5078 [(apply~case_universal;~rewrite...] 0.002 secs (0.002u,0.s) +Chars 5035 - 5078 [(apply~case_universal;~rewrite...] 0.002 secs (0.001u,0.s) Chars 5081 - 5082 [-] 0. secs (0.u,0.s) Chars 5083 - 5113 [(rewrite~case_inl;~reflexivity).] 0.001 secs (0.001u,0.s) Chars 5116 - 5117 [-] 0. secs (0.u,0.s) -Chars 5118 - 5148 [(rewrite~case_inr;~reflexivity).] 0.014 secs (0.013u,0.s) +Chars 5118 - 5148 [(rewrite~case_inr;~reflexivity).] 0.013 secs (0.013u,0.s) Chars 5149 - 5153 [Qed.] 0. secs (0.u,0.s) Chars 5210 - 5271 [Corollary~case_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) Chars 5272 - 5278 [Proof.] 0. secs (0.u,0.s) @@ -130,7 +130,7 @@ Chars 6132 - 6168 [(intros;~unfold~swap,~Swap_Cop...] 0. secs (0.u,0.s) Chars 6171 - 6208 [(rewrite~cat_case,~inr_case,~i...] 0.003 secs (0.003u,0.s) Chars 6211 - 6223 [reflexivity.] 0. secs (0.u,0.s) Chars 6224 - 6228 [Qed.] 0. secs (0.u,0.s) -Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0.001 secs (0.001u,0.s) +Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0. secs (0.u,0.s) Chars 6282 - 6288 [Proof.] 0. secs (0.u,0.s) Chars 6289 - 6304 [(apply~case_inr).] 0. secs (0.u,0.s) Chars 6305 - 6309 [Qed.] 0. secs (0.u,0.s) @@ -152,11 +152,11 @@ Chars 6741 - 6756 [(apply~case_inl).] 0. secs (0.u,0.s) Chars 6757 - 6761 [Qed.] 0. secs (0.u,0.s) Chars 6763 - 6922 [Lemma~bimap_case~{a}~{a'}~{b}~...] 0.001 secs (0.001u,0.s) Chars 6923 - 6929 [Proof.] 0. secs (0.u,0.s) -Chars 6930 - 6940 [cat_auto'.] 0.068 secs (0.058u,0.009s) -Chars 6941 - 6945 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6930 - 6940 [cat_auto'.] 0.064 secs (0.056u,0.008s) +Chars 6941 - 6945 [Qed.] 0.001 secs (0.001u,0.s) Chars 6947 - 7024 [Lemma~inl_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7025 - 7031 [Proof.] 0. secs (0.u,0.s) -Chars 7032 - 7042 [cat_auto'.] 0.016 secs (0.016u,0.s) +Chars 7032 - 7042 [cat_auto'.] 0.016 secs (0.015u,0.s) Chars 7043 - 7047 [Qed.] 0. secs (0.u,0.s) Chars 7049 - 7121 [Lemma~inl_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) @@ -168,7 +168,7 @@ Chars 7231 - 7241 [cat_auto'.] 0.019 secs (0.019u,0.s) Chars 7242 - 7246 [Qed.] 0.001 secs (0.001u,0.s) Chars 7248 - 7320 [Lemma~inr_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7321 - 7327 [Proof.] 0. secs (0.u,0.s) -Chars 7328 - 7338 [cat_auto'.] 0.013 secs (0.013u,0.s) +Chars 7328 - 7338 [cat_auto'.] 0.015 secs (0.014u,0.s) Chars 7339 - 7343 [Qed.] 0. secs (0.u,0.s) Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0.001 secs (0.001u,0.s) Chars 7504 - 7510 [Proof.] 0. secs (0.u,0.s) @@ -186,38 +186,38 @@ Chars 7758 - 7773 [(apply~case_eta).] 0. secs (0.u,0.s) Chars 7774 - 7778 [Qed.] 0. secs (0.u,0.s) Chars 7780 - 7832 [#[global]~Instance~BimapCat_Co...] 0. secs (0.u,0.s) Chars 7833 - 7839 [Proof.] 0. secs (0.u,0.s) -Chars 7840 - 7850 [cat_auto'.] 0.114 secs (0.109u,0.004s) -Chars 7851 - 7855 [Qed.] 0.003 secs (0.002u,0.s) +Chars 7840 - 7850 [cat_auto'.] 0.105 secs (0.103u,0.002s) +Chars 7851 - 7855 [Qed.] 0.002 secs (0.002u,0.s) Chars 7857 - 7911 [#[global]~Instance~Bifunctor_C...] 0. secs (0.u,0.s) Chars 7912 - 7918 [Proof.] 0. secs (0.u,0.s) Chars 7921 - 7952 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 7953 - 7957 [Qed.] 0. secs (0.u,0.s) Chars 7996 - 8080 [#[global]~Instance~SwapInvolut...] 0. secs (0.u,0.s) Chars 8081 - 8087 [Proof.] 0. secs (0.u,0.s) -Chars 8088 - 8098 [cat_auto'.] 0.033 secs (0.032u,0.s) +Chars 8088 - 8098 [cat_auto'.] 0.032 secs (0.031u,0.s) Chars 8099 - 8103 [Qed.] 0.001 secs (0.001u,0.s) Chars 8142 - 8232 [#[global]~Instance~AssocRMono_...] 0. secs (0.u,0.s) Chars 8233 - 8239 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8250 [cat_auto'.] 0.168 secs (0.167u,0.s) +Chars 8240 - 8250 [cat_auto'.] 0.164 secs (0.162u,0.001s) Chars 8251 - 8255 [Qed.] 0.005 secs (0.005u,0.s) Chars 8257 - 8347 [#[global]~Instance~AssocLMono_...] 0. secs (0.u,0.s) Chars 8348 - 8354 [Proof.] 0. secs (0.u,0.s) -Chars 8355 - 8365 [cat_auto'.] 0.166 secs (0.164u,0.s) -Chars 8366 - 8370 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8355 - 8365 [cat_auto'.] 0.162 secs (0.16u,0.001s) +Chars 8366 - 8370 [Qed.] 0.004 secs (0.004u,0.s) Chars 8372 - 8390 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 8391 - 8425 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 8426 - 8472 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 8507 - 8589 [#[global]~Instance~UnitLMono_C...] 0. secs (0.u,0.s) Chars 8590 - 8596 [Proof.] 0. secs (0.u,0.s) -Chars 8597 - 8607 [cat_auto'.] 0.026 secs (0.026u,0.s) +Chars 8597 - 8607 [cat_auto'.] 0.026 secs (0.025u,0.s) Chars 8608 - 8612 [Qed.] 0.001 secs (0.001u,0.s) Chars 8650 - 8732 [#[global]~Instance~UnitRMono_C...] 0. secs (0.u,0.s) Chars 8733 - 8739 [Proof.] 0. secs (0.u,0.s) -Chars 8740 - 8750 [cat_auto'.] 0.027 secs (0.027u,0.s) +Chars 8740 - 8750 [cat_auto'.] 0.025 secs (0.025u,0.s) Chars 8751 - 8755 [Qed.] 0.001 secs (0.001u,0.s) Chars 8757 - 8838 [#[global]~Instance~UnitLEpi_Co...] 0. secs (0.u,0.s) Chars 8839 - 8845 [Proof.] 0. secs (0.u,0.s) -Chars 8846 - 8856 [cat_auto'.] 0.006 secs (0.006u,0.s) +Chars 8846 - 8856 [cat_auto'.] 0.005 secs (0.005u,0.s) Chars 8857 - 8861 [Qed.] 0. secs (0.u,0.s) Chars 8863 - 8944 [#[global]~Instance~UnitREpi_Co...] 0. secs (0.u,0.s) Chars 8945 - 8951 [Proof.] 0. secs (0.u,0.s) @@ -233,39 +233,39 @@ Chars 9111 - 9132 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 9133 - 9137 [Qed.] 0. secs (0.u,0.s) Chars 9139 - 9201 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 9202 - 9208 [Proof.] 0. secs (0.u,0.s) -Chars 9209 - 9219 [cat_auto'.] 0.059 secs (0.059u,0.s) -Chars 9220 - 9224 [Qed.] 0.003 secs (0.002u,0.s) +Chars 9209 - 9219 [cat_auto'.] 0.056 secs (0.056u,0.s) +Chars 9220 - 9224 [Qed.] 0.002 secs (0.002u,0.s) Chars 9226 - 9290 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 9291 - 9297 [Proof.] 0. secs (0.u,0.s) Chars 9298 - 9308 [cat_auto'.] 0.01 secs (0.01u,0.s) -Chars 9309 - 9313 [Qed.] 0.001 secs (0.u,0.s) +Chars 9309 - 9313 [Qed.] 0. secs (0.u,0.s) Chars 9376 - 9434 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 9435 - 9441 [Proof.] 0. secs (0.u,0.s) -Chars 9442 - 9452 [cat_auto'.] 0.192 secs (0.19u,0.s) +Chars 9442 - 9452 [cat_auto'.] 0.187 secs (0.185u,0.001s) Chars 9453 - 9457 [Qed.] 0.006 secs (0.006u,0.s) Chars 9459 - 9519 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 9520 - 9526 [Proof.] 0. secs (0.u,0.s) -Chars 9527 - 9537 [cat_auto'.] 1.157 secs (1.14u,0.004s) -Chars 9538 - 9542 [Qed.] 0.035 secs (0.035u,0.s) +Chars 9527 - 9537 [cat_auto'.] 1.096 secs (1.091u,0.004s) +Chars 9538 - 9542 [Qed.] 0.034 secs (0.034u,0.s) Chars 9544 - 9598 [#[global]~Instance~Monoidal_Co...] 0. secs (0.u,0.s) Chars 9599 - 9605 [Proof.] 0. secs (0.u,0.s) Chars 9608 - 9660 [(constructor;~idtac~+~construc...] 0.004 secs (0.004u,0.s) Chars 9661 - 9665 [Qed.] 0. secs (0.u,0.s) Chars 9667 - 9727 [#[global]~Instance~AssocLAssoc...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9735 - 9745 [cat_auto'.] 1.12 secs (1.112u,0.003s) -Chars 9746 - 9750 [Qed.] 0.034 secs (0.034u,0.s) +Chars 9735 - 9745 [cat_auto'.] 1.089 secs (1.082u,0.005s) +Chars 9746 - 9750 [Qed.] 0.032 secs (0.032u,0.s) Chars 9813 - 9869 [#[global]~Instance~SwapUnitL_C...] 0. secs (0.u,0.s) Chars 9870 - 9876 [Proof.] 0. secs (0.u,0.s) -Chars 9877 - 9887 [cat_auto'.] 0.039 secs (0.039u,0.s) +Chars 9877 - 9887 [cat_auto'.] 0.037 secs (0.037u,0.s) Chars 9888 - 9892 [Qed.] 0.001 secs (0.001u,0.s) Chars 9894 - 9950 [#[global]~Instance~SwapAssocR_...] 0. secs (0.u,0.s) Chars 9951 - 9957 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9968 [cat_auto'.] 0.677 secs (0.67u,0.003s) -Chars 9969 - 9973 [Qed.] 0.021 secs (0.021u,0.s) +Chars 9958 - 9968 [cat_auto'.] 0.655 secs (0.649u,0.004s) +Chars 9969 - 9973 [Qed.] 0.02 secs (0.02u,0.s) Chars 9975 - 10031 [#[global]~Instance~SwapAssocL_...] 0. secs (0.u,0.s) Chars 10032 - 10038 [Proof.] 0. secs (0.u,0.s) -Chars 10039 - 10049 [cat_auto'.] 0.664 secs (0.661u,0.001s) +Chars 10039 - 10049 [cat_auto'.] 0.667 secs (0.652u,0.01s) Chars 10050 - 10054 [Qed.] 0.02 secs (0.02u,0.s) Chars 10056 - 10116 [#[global]~Instance~SymMonoidal...] 0. secs (0.u,0.s) Chars 10117 - 10123 [Proof.] 0. secs (0.u,0.s) @@ -273,11 +273,11 @@ Chars 10126 - 10157 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 10158 - 10162 [Qed.] 0. secs (0.u,0.s) Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.001 secs (0.001u,0.s) Chars 10270 - 10276 [Proof.] 0. secs (0.u,0.s) -Chars 10277 - 10287 [cat_auto'.] 0.114 secs (0.113u,0.s) +Chars 10277 - 10287 [cat_auto'.] 0.114 secs (0.113u,0.001s) Chars 10288 - 10292 [Qed.] 0.003 secs (0.003u,0.s) Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) Chars 10424 - 10430 [Proof.] 0. secs (0.u,0.s) -Chars 10431 - 10441 [cat_auto'.] 0.099 secs (0.098u,0.s) +Chars 10431 - 10441 [cat_auto'.] 0.098 secs (0.097u,0.s) Chars 10442 - 10446 [Qed.] 0.003 secs (0.003u,0.s) Chars 10448 - 10467 [End~CoproductFacts.] 0.002 secs (0.002u,0.s) Chars 10490 - 10511 [Section~ProductFacts.] 0. secs (0.u,0.s) @@ -315,7 +315,7 @@ Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0.001 secs (0.001u,0.s) Chars 11730 - 11736 [Proof.] 0. secs (0.u,0.s) Chars 11739 - 11774 [(eapply~pair_universal;~reflex...] 0.002 secs (0.002u,0.s) Chars 11775 - 11779 [Qed.] 0. secs (0.u,0.s) -Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.001 secs (0.001u,0.s) +Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.002 secs (0.001u,0.s) Chars 11992 - 11998 [Proof.] 0. secs (0.u,0.s) Chars 12001 - 12008 [(intros).] 0. secs (0.u,0.s) Chars 12009 - 12031 [(rewrite~(pair_eta'~g)).] 0. secs (0.u,0.s) @@ -339,7 +339,7 @@ Chars 13369 - 13403 [(intros;~unfold~swap,~Swap_Pro...] 0. secs (0.u,0.s) Chars 13406 - 13443 [(rewrite~pair_cat,~pair_fst,~p...] 0.003 secs (0.003u,0.s) Chars 13448 - 13460 [reflexivity.] 0. secs (0.u,0.s) Chars 13461 - 13465 [Qed.] 0. secs (0.u,0.s) -Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0.001 secs (0.001u,0.s) +Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) Chars 13519 - 13525 [Proof.] 0. secs (0.u,0.s) Chars 13526 - 13541 [(apply~pair_snd).] 0. secs (0.u,0.s) Chars 13542 - 13546 [Qed.] 0. secs (0.u,0.s) @@ -361,24 +361,24 @@ Chars 13978 - 13993 [(apply~pair_snd).] 0. secs (0.u,0.s) Chars 13994 - 13998 [Qed.] 0. secs (0.u,0.s) Chars 14000 - 14157 [Lemma~pair_bimap~{a}~{b}~{b'}~...] 0.001 secs (0.001u,0.s) Chars 14158 - 14164 [Proof.] 0. secs (0.u,0.s) -Chars 14165 - 14180 [cat_auto_prod'.] 0.061 secs (0.061u,0.s) -Chars 14181 - 14185 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14165 - 14180 [cat_auto_prod'.] 0.062 secs (0.061u,0.s) +Chars 14181 - 14185 [Qed.] 0.002 secs (0.002u,0.s) Chars 14187 - 14259 [Lemma~assoc_r_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14260 - 14266 [Proof.] 0. secs (0.u,0.s) Chars 14267 - 14282 [cat_auto_prod'.] 0.009 secs (0.009u,0.s) Chars 14283 - 14287 [Qed.] 0. secs (0.u,0.s) Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) Chars 14362 - 14368 [Proof.] 0. secs (0.u,0.s) -Chars 14369 - 14384 [cat_auto_prod'.] 0.013 secs (0.013u,0.s) +Chars 14369 - 14384 [cat_auto_prod'.] 0.012 secs (0.012u,0.s) Chars 14385 - 14389 [Qed.] 0. secs (0.u,0.s) Chars 14391 - 14468 [Lemma~assoc_l_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14469 - 14475 [Proof.] 0. secs (0.u,0.s) Chars 14476 - 14491 [cat_auto_prod'.] 0.017 secs (0.017u,0.s) -Chars 14492 - 14496 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14492 - 14496 [Qed.] 0. secs (0.u,0.s) Chars 14499 - 14576 [Lemma~assoc_r_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14577 - 14583 [Proof.] 0. secs (0.u,0.s) -Chars 14584 - 14599 [cat_auto_prod'.] 0.022 secs (0.022u,0.s) -Chars 14600 - 14604 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14584 - 14599 [cat_auto_prod'.] 0.021 secs (0.021u,0.s) +Chars 14600 - 14604 [Qed.] 0. secs (0.u,0.s) Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0.001 secs (0.001u,0.s) Chars 14907 - 14913 [Proof.] 0. secs (0.u,0.s) Chars 14916 - 14947 [(intros~ac~ac'~eqac~bd~bd'~eqbd).] 0. secs (0.u,0.s) @@ -395,7 +395,7 @@ Chars 15148 - 15163 [(apply~pair_eta).] 0. secs (0.u,0.s) Chars 15164 - 15168 [Qed.] 0. secs (0.u,0.s) Chars 15170 - 15213 [Instance~BimapCat_Product~:~(B...] 0. secs (0.u,0.s) Chars 15214 - 15220 [Proof.] 0. secs (0.u,0.s) -Chars 15221 - 15236 [cat_auto_prod'.] 0.107 secs (0.107u,0.s) +Chars 15221 - 15236 [cat_auto_prod'.] 0.105 secs (0.105u,0.s) Chars 15237 - 15241 [Qed.] 0.002 secs (0.002u,0.s) Chars 15243 - 15288 [Instance~Bifunctor_Product~:~(...] 0. secs (0.u,0.s) Chars 15289 - 15295 [Proof.] 0. secs (0.u,0.s) @@ -403,34 +403,34 @@ Chars 15298 - 15329 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) Chars 15330 - 15334 [Qed.] 0. secs (0.u,0.s) Chars 15373 - 15448 [Instance~SwapInvolutive_Produc...] 0. secs (0.u,0.s) Chars 15449 - 15455 [Proof.] 0. secs (0.u,0.s) -Chars 15456 - 15471 [cat_auto_prod'.] 0.043 secs (0.043u,0.s) +Chars 15456 - 15471 [cat_auto_prod'.] 0.042 secs (0.042u,0.s) Chars 15472 - 15476 [Qed.] 0.001 secs (0.001u,0.s) Chars 15515 - 15596 [Instance~AssocRMono_Product~~{...] 0. secs (0.u,0.s) Chars 15597 - 15603 [Proof.] 0. secs (0.u,0.s) -Chars 15604 - 15619 [cat_auto_prod'.] 0.201 secs (0.2u,0.s) +Chars 15604 - 15619 [cat_auto_prod'.] 0.195 secs (0.193u,0.001s) Chars 15620 - 15624 [Qed.] 0.004 secs (0.004u,0.s) Chars 15626 - 15707 [Instance~AssocLMono_Product~~{...] 0. secs (0.u,0.s) Chars 15708 - 15714 [Proof.] 0. secs (0.u,0.s) -Chars 15715 - 15730 [cat_auto_prod'.] 0.199 secs (0.198u,0.s) +Chars 15715 - 15730 [cat_auto_prod'.] 0.192 secs (0.191u,0.s) Chars 15731 - 15735 [Qed.] 0.004 secs (0.004u,0.s) Chars 15737 - 15755 [Context~(t~:~obj).] 0. secs (0.u,0.s) Chars 15756 - 15792 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) Chars 15793 - 15841 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) Chars 15874 - 15947 [Instance~UnitLMono_Product~~{a...] 0. secs (0.u,0.s) Chars 15948 - 15954 [Proof.] 0. secs (0.u,0.s) -Chars 15955 - 15970 [cat_auto_prod'.] 0.039 secs (0.038u,0.s) +Chars 15955 - 15970 [cat_auto_prod'.] 0.037 secs (0.037u,0.s) Chars 15971 - 15995 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 15996 - 16008 [reflexivity.] 0. secs (0.u,0.s) Chars 16009 - 16013 [Qed.] 0.001 secs (0.001u,0.s) Chars 16051 - 16131 [#[global]~Instance~UnitRMono_P...] 0. secs (0.u,0.s) Chars 16132 - 16138 [Proof.] 0. secs (0.u,0.s) -Chars 16139 - 16154 [cat_auto_prod'.] 0.038 secs (0.038u,0.s) +Chars 16139 - 16154 [cat_auto_prod'.] 0.037 secs (0.037u,0.s) Chars 16155 - 16179 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 16180 - 16192 [reflexivity.] 0. secs (0.u,0.s) Chars 16193 - 16197 [Qed.] 0.001 secs (0.001u,0.s) Chars 16199 - 16278 [#[global]~Instance~UnitLEpi_Pr...] 0. secs (0.u,0.s) Chars 16279 - 16285 [Proof.] 0. secs (0.u,0.s) -Chars 16286 - 16301 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) +Chars 16286 - 16301 [cat_auto_prod'.] 0.004 secs (0.004u,0.s) Chars 16302 - 16306 [Qed.] 0. secs (0.u,0.s) Chars 16308 - 16387 [#[global]~Instance~UnitREpi_Pr...] 0. secs (0.u,0.s) Chars 16388 - 16394 [Proof.] 0. secs (0.u,0.s) @@ -446,53 +446,53 @@ Chars 16563 - 16584 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) Chars 16585 - 16589 [Qed.] 0. secs (0.u,0.s) Chars 16591 - 16644 [Instance~UnitLNatural_Product~...] 0. secs (0.u,0.s) Chars 16645 - 16651 [Proof.] 0. secs (0.u,0.s) -Chars 16652 - 16667 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) +Chars 16652 - 16667 [cat_auto_prod'.] 0.01 secs (0.01u,0.s) Chars 16668 - 16672 [Qed.] 0. secs (0.u,0.s) Chars 16674 - 16729 [Instance~UnitL'Natural_Product...] 0. secs (0.u,0.s) Chars 16730 - 16736 [Proof.] 0. secs (0.u,0.s) -Chars 16737 - 16752 [cat_auto_prod'.] 0.076 secs (0.076u,0.s) +Chars 16737 - 16752 [cat_auto_prod'.] 0.073 secs (0.072u,0.s) Chars 16753 - 16777 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) Chars 16778 - 16790 [reflexivity.] 0. secs (0.u,0.s) Chars 16791 - 16795 [Qed.] 0.002 secs (0.002u,0.s) Chars 16856 - 16905 [Instance~AssocRUnit_Product~:~...] 0. secs (0.u,0.s) Chars 16906 - 16912 [Proof.] 0. secs (0.u,0.s) -Chars 16913 - 16928 [cat_auto_prod'.] 0.129 secs (0.128u,0.s) +Chars 16913 - 16928 [cat_auto_prod'.] 0.126 secs (0.126u,0.s) Chars 16929 - 16933 [Qed.] 0.003 secs (0.003u,0.s) Chars 16935 - 16986 [Instance~AssocRAssocR_Product~...] 0. secs (0.u,0.s) Chars 16987 - 16993 [Proof.] 0. secs (0.u,0.s) -Chars 16994 - 17009 [cat_auto_prod'.] 1.264 secs (1.258u,0.003s) -Chars 17010 - 17014 [Qed.] 0.034 secs (0.034u,0.s) +Chars 16994 - 17009 [cat_auto_prod'.] 1.216 secs (1.212u,0.003s) +Chars 17010 - 17014 [Qed.] 0.032 secs (0.032u,0.s) Chars 17016 - 17061 [Instance~Monoidal_Product~:~(M...] 0. secs (0.u,0.s) Chars 17062 - 17068 [Proof.] 0. secs (0.u,0.s) -Chars 17071 - 17123 [(constructor;~idtac~+~construc...] 0.006 secs (0.006u,0.s) +Chars 17071 - 17123 [(constructor;~idtac~+~construc...] 0.005 secs (0.005u,0.s) Chars 17124 - 17128 [Qed.] 0. secs (0.u,0.s) Chars 17130 - 17181 [Instance~AssocLAssocL_Product~...] 0. secs (0.u,0.s) Chars 17182 - 17188 [Proof.] 0. secs (0.u,0.s) -Chars 17189 - 17204 [cat_auto_prod'.] 1.307 secs (1.289u,0.004s) -Chars 17205 - 17209 [Qed.] 0.037 secs (0.037u,0.s) +Chars 17189 - 17204 [cat_auto_prod'.] 1.25 secs (1.242u,0.006s) +Chars 17205 - 17209 [Qed.] 0.035 secs (0.034u,0.s) Chars 17272 - 17319 [Instance~SwapUnitL_Product~:~(...] 0. secs (0.u,0.s) Chars 17320 - 17326 [Proof.] 0. secs (0.u,0.s) Chars 17327 - 17342 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) Chars 17343 - 17347 [Qed.] 0. secs (0.u,0.s) Chars 17349 - 17396 [Instance~SwapAssocR_Product~:~...] 0. secs (0.u,0.s) Chars 17397 - 17403 [Proof.] 0. secs (0.u,0.s) -Chars 17404 - 17419 [cat_auto_prod'.] 0.746 secs (0.744u,0.001s) -Chars 17420 - 17424 [Qed.] 0.022 secs (0.021u,0.s) +Chars 17404 - 17419 [cat_auto_prod'.] 0.719 secs (0.717u,0.001s) +Chars 17420 - 17424 [Qed.] 0.021 secs (0.021u,0.s) Chars 17426 - 17473 [Instance~SwapAssocL_Product~:~...] 0. secs (0.u,0.s) Chars 17474 - 17480 [Proof.] 0. secs (0.u,0.s) -Chars 17481 - 17496 [cat_auto_prod'.] 0.754 secs (0.751u,0.002s) -Chars 17497 - 17501 [Qed.] 0.023 secs (0.023u,0.s) +Chars 17481 - 17496 [cat_auto_prod'.] 0.725 secs (0.722u,0.002s) +Chars 17497 - 17501 [Qed.] 0.022 secs (0.021u,0.s) Chars 17503 - 17554 [Instance~SymMonoidal_Product~:...] 0. secs (0.u,0.s) Chars 17555 - 17561 [Proof.] 0. secs (0.u,0.s) Chars 17564 - 17595 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 17596 - 17600 [Qed.] 0. secs (0.u,0.s) -Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.002 secs (0.002u,0.s) +Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.001 secs (0.001u,0.s) Chars 17713 - 17719 [Proof.] 0. secs (0.u,0.s) -Chars 17720 - 17735 [cat_auto_prod'.] 0.127 secs (0.126u,0.s) +Chars 17720 - 17735 [cat_auto_prod'.] 0.123 secs (0.122u,0.s) Chars 17736 - 17740 [Qed.] 0.003 secs (0.003u,0.s) Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.002 secs (0.002u,0.s) Chars 17877 - 17883 [Proof.] 0. secs (0.u,0.s) -Chars 17884 - 17899 [cat_auto_prod'.] 0.113 secs (0.112u,0.s) +Chars 17884 - 17899 [cat_auto_prod'.] 0.108 secs (0.108u,0.s) Chars 17900 - 17904 [Qed.] 0.003 secs (0.003u,0.s) Chars 17906 - 17923 [End~ProductFacts.] 0.001 secs (0.001u,0.s) Chars 17926 - 18039 [Ltac~~cat_auto_step~:=~~~repea...] 0. secs (0.u,0.s) @@ -508,7 +508,7 @@ Chars 18449 - 18535 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) Chars 18536 - 18576 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) Chars 18578 - 18610 [Context~{Iter_bif~:~Iter~C~bif}.] 0. secs (0.u,0.s) Chars 18611 - 18651 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) -Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0.001 secs (0.u,0.s) +Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0. secs (0.u,0.s) Chars 18754 - 18760 [Proof.] 0. secs (0.u,0.s) Chars 18763 - 18776 [(repeat~intro).] 0. secs (0.u,0.s) Chars 18779 - 18791 [(unfold~loop).] 0. secs (0.u,0.s) @@ -520,13 +520,13 @@ Chars 19223 - 19229 [Proof.] 0. secs (0.u,0.s) Chars 19232 - 19244 [(unfold~loop).] 0. secs (0.u,0.s) Chars 19247 - 19382 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) Chars 19385 - 19386 [-] 0. secs (0.u,0.s) -Chars 19387 - 19410 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) -Chars 19415 - 19424 [cat_auto.] 0.183 secs (0.181u,0.s) +Chars 19387 - 19410 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) +Chars 19415 - 19424 [cat_auto.] 0.172 secs (0.172u,0.s) Chars 19425 - 19444 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 19445 - 19454 [cat_auto.] 0.12 secs (0.107u,0.s) +Chars 19445 - 19454 [cat_auto.] 0.097 secs (0.097u,0.s) Chars 19457 - 19458 [-] 0. secs (0.u,0.s) -Chars 19459 - 19468 [cat_auto.] 0.098 secs (0.097u,0.s) -Chars 19469 - 19473 [Qed.] 0.014 secs (0.014u,0.s) +Chars 19459 - 19468 [cat_auto.] 0.091 secs (0.091u,0.s) +Chars 19469 - 19473 [Qed.] 0.013 secs (0.013u,0.s) Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.002 secs (0.002u,0.s) Chars 19843 - 19849 [Proof.] 0. secs (0.u,0.s) Chars 19852 - 19864 [(unfold~loop).] 0. secs (0.u,0.s) @@ -534,7 +534,7 @@ Chars 19867 - 19885 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) Chars 19886 - 19900 [cat_auto_step.] 0.001 secs (0.001u,0.s) Chars 19903 - 19924 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) Chars 19925 - 19939 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 19942 - 19995 [(rewrite~!cat_assoc,~!bimap_ca...] 0.026 secs (0.026u,0.s) +Chars 19942 - 19995 [(rewrite~!cat_assoc,~!bimap_ca...] 0.025 secs (0.025u,0.s) Chars 19998 - 20010 [reflexivity.] 0. secs (0.u,0.s) Chars 20011 - 20015 [Qed.] 0.002 secs (0.002u,0.s) Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.002 secs (0.002u,0.s) @@ -543,12 +543,12 @@ Chars 20169 - 20181 [(unfold~loop).] 0. secs (0.u,0.s) Chars 20184 - 20319 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) Chars 20322 - 20323 [-] 0. secs (0.u,0.s) Chars 20324 - 20347 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) -Chars 20352 - 20361 [cat_auto.] 0.181 secs (0.18u,0.s) +Chars 20352 - 20361 [cat_auto.] 0.171 secs (0.171u,0.s) Chars 20362 - 20381 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 20382 - 20391 [cat_auto.] 0.158 secs (0.158u,0.s) +Chars 20382 - 20391 [cat_auto.] 0.153 secs (0.153u,0.s) Chars 20394 - 20395 [-] 0. secs (0.u,0.s) -Chars 20396 - 20405 [cat_auto.] 0.098 secs (0.097u,0.s) -Chars 20406 - 20410 [Qed.] 0.016 secs (0.016u,0.s) +Chars 20396 - 20405 [cat_auto.] 0.092 secs (0.092u,0.s) +Chars 20406 - 20410 [Qed.] 0.016 secs (0.015u,0.s) Chars 20412 - 20430 [Context~{i~:~obj}.] 0. secs (0.u,0.s) Chars 20431 - 20465 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 20466 - 20512 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) @@ -556,9 +556,9 @@ Chars 20514 - 20613 [Lemma~loop_vanishing_1~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 20614 - 20620 [Proof.] 0. secs (0.u,0.s) Chars 20623 - 20635 [(unfold~loop).] 0. secs (0.u,0.s) Chars 20638 - 20658 [(rewrite~iter_unfold).] 0.002 secs (0.002u,0.s) -Chars 20659 - 20668 [cat_auto.] 0.072 secs (0.071u,0.s) +Chars 20659 - 20668 [cat_auto.] 0.068 secs (0.068u,0.s) Chars 20669 - 20683 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20684 - 20693 [cat_auto.] 0.088 secs (0.087u,0.s) +Chars 20684 - 20693 [cat_auto.] 0.084 secs (0.084u,0.s) Chars 20694 - 20698 [Qed.] 0.004 secs (0.004u,0.s) Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.003 secs (0.003u,0.s) Chars 21137 - 21143 [Proof.] 0. secs (0.u,0.s) @@ -567,60 +567,60 @@ Chars 21161 - 21291 [(transitivity~~~(inr_~>>>~inr_...] 0.002 secs (0.002u,0.s) Chars 21294 - 21295 [-] 0. secs (0.u,0.s) Chars 21296 - 21441 [(transitivity~~~(inr_~>>>~~~~i...] 0.003 secs (0.003u,0.s) Chars 21446 - 21447 [+] 0. secs (0.u,0.s) -Chars 21448 - 21457 [cat_auto.] 0.174 secs (0.173u,0.s) +Chars 21448 - 21457 [cat_auto.] 0.169 secs (0.168u,0.s) Chars 21458 - 21477 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) Chars 21478 - 21499 [(rewrite~iter_natural).] 0.002 secs (0.002u,0.s) Chars 21506 - 21520 [cat_auto_step.] 0. secs (0.u,0.s) Chars 21521 - 21539 [(rewrite~cat_assoc).] 0.002 secs (0.002u,0.s) Chars 21540 - 21554 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 21561 - 21570 [cat_auto.] 0.178 secs (0.178u,0.s) +Chars 21561 - 21570 [cat_auto.] 0.169 secs (0.168u,0.s) Chars 21575 - 21576 [+] 0. secs (0.u,0.s) -Chars 21577 - 21600 [(rewrite~iter_dinatural).] 0.004 secs (0.004u,0.s) -Chars 21607 - 21635 [(rewrite~cat_assoc,~case_inl).] 0.014 secs (0.012u,0.s) -Chars 21642 - 21663 [(rewrite~iter_natural).] 0.011 secs (0.009u,0.s) -Chars 21670 - 21679 [cat_auto.] 0.253 secs (0.25u,0.s) +Chars 21577 - 21600 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) +Chars 21607 - 21635 [(rewrite~cat_assoc,~case_inl).] 0.008 secs (0.008u,0.s) +Chars 21642 - 21663 [(rewrite~iter_natural).] 0.006 secs (0.006u,0.s) +Chars 21670 - 21679 [cat_auto.] 0.234 secs (0.233u,0.s) Chars 21680 - 21699 [(do~3~cat_auto_step).] 0.004 secs (0.004u,0.s) -Chars 21706 - 21715 [cat_auto.] 0.472 secs (0.47u,0.001s) +Chars 21706 - 21715 [cat_auto.] 0.454 secs (0.452u,0.001s) Chars 21719 - 21720 [-] 0. secs (0.u,0.s) -Chars 21721 - 21745 [(rewrite~iter_codiagonal).] 0.004 secs (0.003u,0.s) -Chars 21750 - 21806 [(rewrite~(cat_assoc~_~(bimap~_...] 0.02 secs (0.02u,0.s) +Chars 21721 - 21745 [(rewrite~iter_codiagonal).] 0.003 secs (0.003u,0.s) +Chars 21750 - 21806 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.018u,0.s) Chars 21811 - 21954 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) Chars 21959 - 21960 [+] 0. secs (0.u,0.s) Chars 21961 - 21984 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) -Chars 21991 - 22000 [cat_auto.] 0.362 secs (0.36u,0.001s) +Chars 21991 - 22000 [cat_auto.] 0.349 secs (0.348u,0.s) Chars 22001 - 22020 [(do~2~cat_auto_step).] 0.003 secs (0.003u,0.s) -Chars 22021 - 22030 [cat_auto.] 0.53 secs (0.528u,0.001s) +Chars 22021 - 22030 [cat_auto.] 0.511 secs (0.51u,0.001s) Chars 22035 - 22036 [+] 0. secs (0.u,0.s) -Chars 22037 - 22046 [cat_auto.] 0.194 secs (0.194u,0.s) -Chars 22047 - 22051 [Qed.] 0.08 secs (0.079u,0.s) +Chars 22037 - 22046 [cat_auto.] 0.189 secs (0.188u,0.s) +Chars 22047 - 22051 [Qed.] 0.076 secs (0.076u,0.s) Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.003 secs (0.003u,0.s) Chars 22211 - 22217 [Proof.] 0. secs (0.u,0.s) Chars 22220 - 22232 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 22235 - 22244 [cat_auto.] 0.342 secs (0.341u,0.001s) +Chars 22235 - 22244 [cat_auto.] 0.332 secs (0.33u,0.001s) Chars 22247 - 22248 [-] 0. secs (0.u,0.s) Chars 22249 - 22438 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) Chars 22444 - 22445 [+] 0. secs (0.u,0.s) Chars 22446 - 22478 [(rewrite~cat_assoc,~iter_natur...] 0.009 secs (0.009u,0.s) -Chars 22485 - 22516 [(do~2~(cat_auto_step;~cat_auto)).] 1.098 secs (1.082u,0.003s) +Chars 22485 - 22516 [(do~2~(cat_auto_step;~cat_auto)).] 1.024 secs (1.022u,0.002s) Chars 22521 - 22522 [+] 0. secs (0.u,0.s) Chars 22523 - 22546 [(rewrite~iter_dinatural).] 0.006 secs (0.006u,0.s) -Chars 22553 - 22584 [(do~3~(cat_auto;~cat_auto_step)).] 2.502 secs (2.454u,0.004s) +Chars 22553 - 22584 [(do~3~(cat_auto;~cat_auto_step)).] 2.356 secs (2.351u,0.004s) Chars 22588 - 22589 [-] 0. secs (0.u,0.s) Chars 22590 - 22610 [(rewrite~iter_unfold).] 0.006 secs (0.006u,0.s) -Chars 22611 - 22620 [cat_auto.] 0.514 secs (0.512u,0.001s) -Chars 22621 - 22625 [Qed.] 0.14 secs (0.139u,0.s) +Chars 22611 - 22620 [cat_auto.] 0.492 secs (0.491u,0.s) +Chars 22621 - 22625 [Qed.] 0.135 secs (0.134u,0.001s) Chars 22627 - 22672 [Lemma~loop_yanking~{a}~:~loop~...] 0. secs (0.u,0.s) Chars 22673 - 22679 [Proof.] 0. secs (0.u,0.s) Chars 22682 - 22694 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 22695 - 22717 [(rewrite~2!iter_unfold).] 0.006 secs (0.006u,0.s) -Chars 22718 - 22727 [cat_auto.] 0.155 secs (0.155u,0.s) +Chars 22695 - 22717 [(rewrite~2!iter_unfold).] 0.007 secs (0.006u,0.s) +Chars 22718 - 22727 [cat_auto.] 0.153 secs (0.152u,0.s) Chars 22728 - 22732 [Qed.] 0.007 secs (0.007u,0.s) Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.003 secs (0.003u,0.s) Chars 22928 - 22934 [Proof.] 0. secs (0.u,0.s) Chars 22937 - 22948 [(intros~Hij).] 0. secs (0.u,0.s) -Chars 22949 - 22972 [(rewrite~loop_dinatural).] 0.001 secs (0.001u,0.s) +Chars 22949 - 22972 [(rewrite~loop_dinatural).] 0.001 secs (0.u,0.s) Chars 22975 - 22996 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 22999 - 23017 [(rewrite~bimap_cat).] 0.002 secs (0.002u,0.s) +Chars 22999 - 23017 [(rewrite~bimap_cat).] 0.001 secs (0.001u,0.s) Chars 23020 - 23032 [(rewrite~Hij).] 0.002 secs (0.002u,0.s) Chars 23035 - 23052 [(rewrite~cat_id_l).] 0.002 secs (0.002u,0.s) Chars 23055 - 23072 [(rewrite~bimap_id).] 0.002 secs (0.002u,0.s) @@ -634,7 +634,7 @@ Chars 23641 - 23662 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) Chars 23776 - 23806 [(rewrite~<-~loop_natural_right).] 0.001 secs (0.001u,0.s) Chars 23914 - 23933 [(rewrite~swap_bimap).] 0.002 secs (0.002u,0.s) Chars 23936 - 23958 [(rewrite~<-~!cat_assoc).] 0.006 secs (0.006u,0.s) -Chars 24088 - 24122 [(rewrite~swap_involutive,~cat_...] 0.007 secs (0.007u,0.s) +Chars 24088 - 24122 [(rewrite~swap_involutive,~cat_...] 0.007 secs (0.006u,0.s) Chars 24252 - 24281 [(rewrite~<-~loop_natural_left).] 0.001 secs (0.001u,0.s) Chars 24380 - 24401 [(rewrite~loop_yanking).] 0.001 secs (0.001u,0.s) Chars 24404 - 24421 [(rewrite~cat_id_r).] 0.001 secs (0.001u,0.s) @@ -657,10 +657,10 @@ Chars 25206 - 25212 [Proof.] 0. secs (0.u,0.s) Chars 25215 - 25224 [symmetry.] 0. secs (0.u,0.s) Chars 25227 - 25254 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) Chars 25257 - 25307 [(do~2~apply~(cat_eq2_l~(bimap~...] 0.001 secs (0.001u,0.s) -Chars 25310 - 25397 [(rewrite~<-~cat_assoc,~bimap_c...] 0.029 secs (0.029u,0.s) -Chars 25400 - 25473 [(rewrite~<-~(cat_assoc~_~_~ass...] 0.01 secs (0.01u,0.s) -Chars 25476 - 25506 [(rewrite~<-~swap_assoc_l~in~Eq).] 0.004 secs (0.004u,0.s) -Chars 25509 - 25547 [(rewrite~(cat_assoc~_~_~assoc_...] 0.003 secs (0.002u,0.s) +Chars 25310 - 25397 [(rewrite~<-~cat_assoc,~bimap_c...] 0.028 secs (0.028u,0.s) +Chars 25400 - 25473 [(rewrite~<-~(cat_assoc~_~_~ass...] 0.009 secs (0.009u,0.s) +Chars 25476 - 25506 [(rewrite~<-~swap_assoc_l~in~Eq).] 0.003 secs (0.003u,0.s) +Chars 25509 - 25547 [(rewrite~(cat_assoc~_~_~assoc_...] 0.002 secs (0.002u,0.s) Chars 25550 - 25577 [(rewrite~assoc_l_mono~in~Eq).] 0.004 secs (0.004u,0.s) Chars 25580 - 25603 [(rewrite~cat_id_r~in~Eq).] 0.002 secs (0.002u,0.s) Chars 25606 - 25624 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) @@ -671,24 +671,24 @@ Chars 25778 - 25784 [Proof.] 0. secs (0.u,0.s) Chars 25787 - 25796 [symmetry.] 0. secs (0.u,0.s) Chars 25799 - 25826 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) Chars 25829 - 25879 [(do~2~apply~(cat_eq2_r~(bimap~...] 0.001 secs (0.001u,0.s) -Chars 25882 - 25966 [(rewrite~cat_assoc,~bimap_cat,...] 0.032 secs (0.032u,0.s) -Chars 25969 - 26005 [(rewrite~2!(cat_assoc~assoc_l)...] 0.006 secs (0.006u,0.s) +Chars 25882 - 25966 [(rewrite~cat_assoc,~bimap_cat,...] 0.031 secs (0.031u,0.s) +Chars 25969 - 26005 [(rewrite~2!(cat_assoc~assoc_l)...] 0.005 secs (0.005u,0.s) Chars 26008 - 26038 [(rewrite~<-~swap_assoc_r~in~Eq).] 0.005 secs (0.005u,0.s) -Chars 26041 - 26080 [(rewrite~<-~2!(cat_assoc~assoc...] 0.006 secs (0.006u,0.s) -Chars 26083 - 26120 [(rewrite~assoc_l_mono,~cat_id_...] 0.006 secs (0.006u,0.s) +Chars 26041 - 26080 [(rewrite~<-~2!(cat_assoc~assoc...] 0.005 secs (0.005u,0.s) +Chars 26083 - 26120 [(rewrite~assoc_l_mono,~cat_id_...] 0.006 secs (0.005u,0.s) Chars 26123 - 26134 [assumption.] 0. secs (0.u,0.s) Chars 26135 - 26139 [Qed.] 0.009 secs (0.009u,0.s) -Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.011 secs (0.011u,0.s) +Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.01 secs (0.01u,0.s) Chars 26438 - 26444 [Proof.] 0. secs (0.u,0.s) Chars 26447 - 26484 [(rewrite~swap_bimap,~loop_supe...] 0.006 secs (0.006u,0.s) Chars 26487 - 26533 [(rewrite~loop_natural_left,~lo...] 0.006 secs (0.006u,0.s) -Chars 26536 - 26563 [(rewrite~(swap_bimap~cd~ab)).] 0.009 secs (0.009u,0.s) +Chars 26536 - 26563 [(rewrite~(swap_bimap~cd~ab)).] 0.009 secs (0.008u,0.s) Chars 26566 - 26588 [(rewrite~<-~!cat_assoc).] 0.031 secs (0.031u,0.s) Chars 26591 - 26614 [(rewrite~local_rewrite1).] 0.007 secs (0.007u,0.s) -Chars 26617 - 26637 [(rewrite~2!cat_assoc).] 0.01 secs (0.01u,0.s) +Chars 26617 - 26637 [(rewrite~2!cat_assoc).] 0.009 secs (0.009u,0.s) Chars 26640 - 26676 [(rewrite~<-~(cat_assoc~swap~as...] 0.006 secs (0.006u,0.s) Chars 26679 - 26702 [(rewrite~local_rewrite2).] 0.005 secs (0.005u,0.s) -Chars 26705 - 26727 [(rewrite~<-~!cat_assoc).] 0.018 secs (0.018u,0.s) +Chars 26705 - 26727 [(rewrite~<-~!cat_assoc).] 0.017 secs (0.017u,0.s) Chars 26730 - 26742 [reflexivity.] 0. secs (0.u,0.s) Chars 26743 - 26747 [Qed.] 0.012 secs (0.012u,0.s) Chars 26749 - 26774 [End~TracedIterativeFacts.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/CategoryFunctor.v.timing b/theories/Basics/CategoryFunctor.v.timing index c1a68a94..43811659 100644 --- a/theories/Basics/CategoryFunctor.v.timing +++ b/theories/Basics/CategoryFunctor.v.timing @@ -1,4 +1,4 @@ -Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.002s) +Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0.001 secs (0.u,0.s) Chars 135 - 155 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 156 - 183 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisli.v.timing b/theories/Basics/CategoryKleisli.v.timing index 795f336b..5f7b16ee 100644 --- a/theories/Basics/CategoryKleisli.v.timing +++ b/theories/Basics/CategoryKleisli.v.timing @@ -1,6 +1,6 @@ -Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 701 - 750 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) +Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.s) Chars 877 - 909 [Implicit~Type~m~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 910 - 938 [Implicit~Types~a~b~c~:~Type.] 0. secs (0.u,0.s) Chars 940 - 984 [Definition~Kleisli~m~a~b~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisliFacts.v.timing b/theories/Basics/CategoryKleisliFacts.v.timing index da5ad8b9..f5e4bdc5 100644 --- a/theories/Basics/CategoryKleisliFacts.v.timing +++ b/theories/Basics/CategoryKleisliFacts.v.timing @@ -1,4 +1,4 @@ -Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.002s) +Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) Chars 165 - 214 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) Chars 379 - 399 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -43,7 +43,7 @@ Chars 1330 - 1345 [(intros~?~?~?~?).] 0. secs (0.u,0.s) Chars 1346 - 1358 [(unfold~pure).] 0. secs (0.u,0.s) Chars 1359 - 1369 [(rewrite~H).] 0. secs (0.u,0.s) Chars 1370 - 1382 [reflexivity.] 0. secs (0.u,0.s) -Chars 1385 - 1389 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1385 - 1389 [Qed.] 0.001 secs (0.u,0.s) Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0.001 secs (0.u,0.s) Chars 1912 - 1918 [Proof.] 0. secs (0.u,0.s) Chars 1921 - 1934 [(repeat~intro).] 0. secs (0.u,0.s) @@ -53,9 +53,9 @@ Chars 1989 - 1993 [Qed.] 0. secs (0.u,0.s) Chars 1995 - 2021 [#[local]~Opaque~bind~ret~eq1.] 0. secs (0.u,0.s) Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) Chars 2152 - 2158 [Proof.] 0. secs (0.u,0.s) -Chars 2161 - 2242 [(compute;~intros~x;~destruct~x...] 0.007 secs (0.005u,0.001s) -Chars 2243 - 2247 [Qed.] 0.014 secs (0.012u,0.001s) -Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) +Chars 2161 - 2242 [(compute;~intros~x;~destruct~x...] 0.006 secs (0.005u,0.001s) +Chars 2243 - 2247 [Qed.] 0.013 secs (0.011u,0.001s) +Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0.001 secs (0.u,0.s) Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) Chars 2379 - 2460 [(compute;~intros~x;~destruct~x...] 0.004 secs (0.004u,0.s) Chars 2461 - 2465 [Qed.] 0.001 secs (0.001u,0.s) @@ -119,7 +119,7 @@ Chars 4177 - 4181 [Qed.] 0.001 secs (0.001u,0.s) Chars 4183 - 4317 [Fact~compose_pure_r~{A}~{B}~{C...] 0. secs (0.u,0.s) Chars 4318 - 4324 [Proof.] 0. secs (0.u,0.s) Chars 4327 - 4345 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 4348 - 4369 [(rewrite~compose_pure).] 0.018 secs (0.018u,0.s) +Chars 4348 - 4369 [(rewrite~compose_pure).] 0.017 secs (0.017u,0.s) Chars 4372 - 4384 [reflexivity.] 0. secs (0.u,0.s) Chars 4385 - 4389 [Qed.] 0.001 secs (0.001u,0.s) Chars 4391 - 4493 [Fact~pure_cat~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) @@ -137,15 +137,15 @@ Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0.001 secs (0.001u,0.s) Chars 4787 - 4793 [Proof.] 0. secs (0.u,0.s) Chars 4796 - 4819 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 4820 - 4824 [Qed.] 0. secs (0.u,0.s) -Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0.001 secs (0.001u,0.s) +Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) Chars 4884 - 4890 [Proof.] 0. secs (0.u,0.s) Chars 4891 - 4903 [reflexivity.] 0. secs (0.u,0.s) Chars 4904 - 4908 [Qed.] 0. secs (0.u,0.s) -Chars 4910 - 4967 [Lemma~pure_inr~{A}~{B}~:~pure~...] 0.001 secs (0.u,0.s) +Chars 4910 - 4967 [Lemma~pure_inr~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) Chars 4975 - 4987 [reflexivity.] 0. secs (0.u,0.s) Chars 4988 - 4992 [Qed.] 0. secs (0.u,0.s) -Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.002 secs (0.002u,0.s) +Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.001 secs (0.001u,0.s) Chars 5121 - 5127 [Proof.] 0. secs (0.u,0.s) Chars 5130 - 5153 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) Chars 5154 - 5158 [Qed.] 0. secs (0.u,0.s) @@ -154,7 +154,7 @@ Chars 5326 - 5332 [Proof.] 0. secs (0.u,0.s) Chars 5335 - 5348 [(intros~[[]|~]).] 0. secs (0.u,0.s) Chars 5349 - 5361 [reflexivity.] 0. secs (0.u,0.s) Chars 5362 - 5366 [Qed.] 0. secs (0.u,0.s) -Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) +Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0.001 secs (0.001u,0.s) Chars 5446 - 5452 [Proof.] 0. secs (0.u,0.s) Chars 5455 - 5467 [reflexivity.] 0. secs (0.u,0.s) Chars 5468 - 5472 [Qed.] 0. secs (0.u,0.s) @@ -174,14 +174,14 @@ Chars 5856 - 5868 [reflexivity.] 0. secs (0.u,0.s) Chars 5869 - 5873 [Qed.] 0.001 secs (0.001u,0.s) Chars 5912 - 6016 [Lemma~case_l'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) Chars 6017 - 6023 [Proof.] 0. secs (0.u,0.s) -Chars 6026 - 6047 [(rewrite~unit_l'_pure).] 0.001 secs (0.001u,0.s) +Chars 6026 - 6047 [(rewrite~unit_l'_pure).] 0.002 secs (0.002u,0.s) Chars 6050 - 6056 [intro.] 0. secs (0.u,0.s) Chars 6057 - 6087 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) Chars 6090 - 6122 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) Chars 6123 - 6127 [Qed.] 0.002 secs (0.002u,0.s) Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0.001 secs (0.001u,0.s) Chars 6221 - 6227 [Proof.] 0. secs (0.u,0.s) -Chars 6230 - 6250 [(rewrite~unit_r_pure).] 0.004 secs (0.003u,0.001s) +Chars 6230 - 6250 [(rewrite~unit_r_pure).] 0.004 secs (0.003u,0.s) Chars 6253 - 6265 [reflexivity.] 0. secs (0.u,0.s) Chars 6266 - 6270 [Qed.] 0.001 secs (0.001u,0.s) Chars 6272 - 6376 [Lemma~case_r'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) @@ -194,17 +194,17 @@ Chars 6483 - 6487 [Qed.] 0.001 secs (0.001u,0.s) Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.004 secs (0.003u,0.001s) Chars 6585 - 6591 [Proof.] 0. secs (0.u,0.s) Chars 6594 - 6624 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 6627 - 6645 [(rewrite~!cat_id_l).] 0.007 secs (0.005u,0.001s) -Chars 6646 - 6668 [(rewrite~<-~!case_pure).] 0.005 secs (0.004u,0.001s) +Chars 6627 - 6645 [(rewrite~!cat_id_l).] 0.006 secs (0.004u,0.001s) +Chars 6646 - 6668 [(rewrite~<-~!case_pure).] 0.005 secs (0.003u,0.001s) Chars 6669 - 6694 [(rewrite~<-~!compose_pure).] 0.014 secs (0.011u,0.002s) -Chars 6695 - 6714 [(rewrite~<-~pure_id).] 0.004 secs (0.004u,0.s) +Chars 6695 - 6714 [(rewrite~<-~pure_id).] 0.003 secs (0.003u,0.s) Chars 6717 - 6735 [(rewrite~!cat_id_l).] 0.004 secs (0.004u,0.s) Chars 6739 - 6751 [reflexivity.] 0. secs (0.u,0.s) Chars 6752 - 6756 [Qed.] 0.003 secs (0.003u,0.s) Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.003 secs (0.003u,0.s) Chars 6848 - 6854 [Proof.] 0. secs (0.u,0.s) Chars 6857 - 6887 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 6890 - 6939 [(rewrite~!cat_id_l,~<-~case_pu...] 0.011 secs (0.01u,0.s) +Chars 6890 - 6939 [(rewrite~!cat_id_l,~<-~case_pu...] 0.01 secs (0.01u,0.s) Chars 6942 - 6954 [reflexivity.] 0. secs (0.u,0.s) Chars 6955 - 6959 [Qed.] 0.002 secs (0.002u,0.s) Chars 6961 - 7023 [#[global]~Instance~Coproduct_K...] 0. secs (0.u,0.s) @@ -257,7 +257,7 @@ Chars 8109 - 8140 [(intros~a1~b1~b2~c1~c2~f1~g1~g2).] 0. secs (0.u,0.s) Chars 8145 - 8200 [(unfold~cat,~Cat_Kleisli,~case...] 0. secs (0.u,0.s) Chars 8205 - 8216 [(unfold~map).] 0. secs (0.u,0.s) Chars 8217 - 8241 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.005 secs (0.005u,0.s) +Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.005 secs (0.004u,0.s) Chars 8276 - 8288 [(unfold~pure).] 0. secs (0.u,0.s) Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) Chars 8316 - 8328 [reflexivity.] 0. secs (0.u,0.s) @@ -278,12 +278,12 @@ Chars 8854 - 8860 [Proof.] 0. secs (0.u,0.s) Chars 8863 - 8903 [(unfold~BimapCat,~bimap,~Bimap...] 0. secs (0.u,0.s) Chars 8906 - 8913 [(intros).] 0. secs (0.u,0.s) Chars 8916 - 8960 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) -Chars 8963 - 8981 [(rewrite~!cat_pure).] 0.029 secs (0.029u,0.s) +Chars 8963 - 8981 [(rewrite~!cat_pure).] 0.027 secs (0.027u,0.s) Chars 8982 - 9000 [(rewrite~!cat_case).] 0.006 secs (0.006u,0.s) Chars 9003 - 9032 [(rewrite~map_inl_case_kleisli).] 0.003 secs (0.003u,0.s) Chars 9035 - 9064 [(rewrite~map_inr_case_kleisli).] 0.003 secs (0.003u,0.s) Chars 9067 - 9079 [reflexivity.] 0. secs (0.u,0.s) -Chars 9080 - 9084 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9080 - 9084 [Qed.] 0.004 secs (0.004u,0.s) Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0.001 secs (0.001u,0.s) Chars 9232 - 9238 [Proof.] 0. secs (0.u,0.s) Chars 9241 - 9248 [(intros).] 0. secs (0.u,0.s) @@ -299,7 +299,7 @@ Chars 9414 - 9415 [-] 0. secs (0.u,0.s) Chars 9416 - 9446 [(unfold~cat,~Cat_Kleisli,~inl_).] 0. secs (0.u,0.s) Chars 9447 - 9458 [(rewrite~H0).] 0.001 secs (0.001u,0.s) Chars 9459 - 9471 [reflexivity.] 0. secs (0.u,0.s) -Chars 9472 - 9476 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9472 - 9476 [Qed.] 0.001 secs (0.001u,0.s) Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0. secs (0.u,0.s) Chars 9541 - 9572 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 9573 - 9577 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryOps.v.timing b/theories/Basics/CategoryOps.v.timing index 2db5209d..aacaab1c 100644 --- a/theories/Basics/CategoryOps.v.timing +++ b/theories/Basics/CategoryOps.v.timing @@ -81,16 +81,16 @@ Chars 9970 - 9995 [End~CocartesianConstruct.] 0. secs (0.u,0.s) Chars 10122 - 10149 [Section~CartesianConstruct.] 0. secs (0.u,0.s) Chars 10309 - 10360 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 10361 - 10484 [Variables~(PROD~:~binop~obj)~(...] 0. secs (0.u,0.s) -Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0.001 secs (0.001u,0.s) -Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0. secs (0.u,0.s) -Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.001 secs (0.001u,0.s) +Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0.002 secs (0.001u,0.s) +Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0.002 secs (0.001u,0.s) +Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.002 secs (0.001u,0.s) Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.002 secs (0.001u,0.s) Chars 11032 - 11095 [Variables~(Id_C~:~Id_~C)~(T~:~...] 0. secs (0.u,0.s) Chars 11151 - 11219 [#[local]~Instance~UnitL_Produc...] 0. secs (0.u,0.s) Chars 11221 - 11304 [#[local]~Instance~UnitL'_Produ...] 0. secs (0.u,0.s) -Chars 11306 - 11374 [#[local]~Instance~UnitR_Produc...] 0. secs (0.u,0.s) +Chars 11306 - 11374 [#[local]~Instance~UnitR_Produc...] 0.001 secs (0.u,0.s) Chars 11376 - 11459 [#[local]~Instance~UnitR'_Produ...] 0. secs (0.u,0.s) -Chars 11461 - 11484 [End~CartesianConstruct.] 0. secs (0.u,0.s) +Chars 11461 - 11484 [End~CartesianConstruct.] 0.001 secs (0.001u,0.s) Chars 11608 - 11632 [Section~CartesianClosed.] 0. secs (0.u,0.s) Chars 11635 - 11737 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 11908 - 11978 [Class~Apply~:~Type~:=~~~~~appl...] 0. secs (0.u,0.s) @@ -120,7 +120,7 @@ Chars 13666 - 13709 [Class~ReSum~(a~b~:~obj)~:=~~~~...] 0. secs (0.u,0.s) Chars 13953 - 14028 [#[global]~Instance~ReSum_id~~`...] 0. secs (0.u,0.s) Chars 14029 - 14155 [#[global]~Instance~ReSum_sum~~...] 0. secs (0.u,0.s) Chars 14156 - 14261 [#[global]~Instance~ReSum_inl~~...] 0. secs (0.u,0.s) -Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0.001 secs (0.u,0.s) +Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0.008 secs (0.001u,0.s) Chars 14368 - 14464 [#[global]~Instance~ReSum_empty...] 0. secs (0.u,0.s) Chars 14776 - 14786 [End~RESUM.] 0. secs (0.u,0.s) Chars 14788 - 14844 [#[global]~Hint~Mode~ReSum~!~!~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryRelations.v.timing b/theories/Basics/CategoryRelations.v.timing index 928d501e..42f42f1c 100644 --- a/theories/Basics/CategoryRelations.v.timing +++ b/theories/Basics/CategoryRelations.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.043 secs (0.035u,0.008s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.048 secs (0.036u,0.011s) Chars 378 - 397 [Section~Operations.] 0. secs (0.u,0.s) Chars 401 - 421 [Import~RelNotations.] 0. secs (0.u,0.s) Chars 424 - 457 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 5744 - 5793 [#[global]~Instance~CatAssoc_re...] 0. secs (0.u,0.s) Chars 5798 - 5804 [Proof.] 0. secs (0.u,0.s) Chars 5811 - 5922 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) Chars 5929 - 5930 [-] 0. secs (0.u,0.s) -Chars 5931 - 5980 [(edestruct~H~as~(C,~((B,~(Rf,~...] 0.017 secs (0.015u,0.001s) +Chars 5931 - 5980 [(edestruct~H~as~(C,~((B,~(Rf,~...] 0.019 secs (0.015u,0.003s) Chars 5989 - 5998 [exists~B.] 0. secs (0.u,0.s) Chars 5999 - 6022 [(split;~[~assumption~|~~]).] 0. secs (0.u,0.s) Chars 6031 - 6040 [exists~C.] 0. secs (0.u,0.s) @@ -71,7 +71,7 @@ Chars 6068 - 6117 [(edestruct~H~as~(B,~(Rf,~(C,~(...] 0. secs (0.u,0.s) Chars 6126 - 6135 [exists~C.] 0. secs (0.u,0.s) Chars 6136 - 6159 [(split;~[~~|~assumption~]).] 0. secs (0.u,0.s) Chars 6168 - 6196 [(exists~B;~split;~assumption).] 0. secs (0.u,0.s) -Chars 6201 - 6205 [Qed.] 0. secs (0.u,0.s) +Chars 6201 - 6205 [Qed.] 0.001 secs (0.001u,0.s) Chars 6211 - 6364 [#[global]~Instance~ProperCat_r...] 0. secs (0.u,0.s) Chars 6369 - 6375 [Proof.] 0. secs (0.u,0.s) Chars 6382 - 6395 [(intros~a~b~c).] 0. secs (0.u,0.s) @@ -96,7 +96,7 @@ Chars 6885 - 6908 [specialize~(H1~_~_~Hy).] 0. secs (0.u,0.s) Chars 6909 - 6920 [assumption.] 0. secs (0.u,0.s) Chars 6929 - 6953 [specialize~(H2~_~_~Hy0).] 0. secs (0.u,0.s) Chars 6954 - 6965 [assumption.] 0. secs (0.u,0.s) -Chars 6970 - 6974 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6970 - 6974 [Qed.] 0. secs (0.u,0.s) Chars 6980 - 7030 [#[global]~Instance~Category_re...] 0. secs (0.u,0.s) Chars 7035 - 7041 [Proof.] 0. secs (0.u,0.s) Chars 7048 - 7079 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -164,14 +164,14 @@ Chars 9029 - 9033 [(compute).] 0. secs (0.u,0.s) Chars 9034 - 9129 [(intros~?~[]~?;~[~apply~RSR~|~...] 0. secs (0.u,0.s) Chars 9136 - 9137 [-] 0. secs (0.u,0.s) Chars 9138 - 9142 [(compute).] 0. secs (0.u,0.s) -Chars 9143 - 9265 [(intros~?~[]~EQ;~[~apply~RRS~i...] 0.001 secs (0.001u,0.s) +Chars 9143 - 9265 [(intros~?~[]~EQ;~[~apply~RRS~i...] 0.002 secs (0.001u,0.s) Chars 9270 - 9274 [Qed.] 0.002 secs (0.002u,0.s) Chars 9280 - 9387 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) Chars 9392 - 9398 [Proof.] 0. secs (0.u,0.s) Chars 9405 - 9449 [(intros~?~?~?~R~S~[RS~SR]~T~U~...] 0. secs (0.u,0.s) Chars 9456 - 9504 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) Chars 9511 - 9559 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) -Chars 9564 - 9568 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9564 - 9568 [Qed.] 0.001 secs (0.u,0.s) Chars 9574 - 9626 [#[global]~Instance~Product_rel...] 0. secs (0.u,0.s) Chars 9631 - 9637 [Proof.] 0. secs (0.u,0.s) Chars 9644 - 9675 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -190,8 +190,8 @@ Chars 10060 - 10066 [Proof.] 0. secs (0.u,0.s) Chars 10073 - 10085 [constructor.] 0. secs (0.u,0.s) Chars 10092 - 10093 [-] 0. secs (0.u,0.s) Chars 10094 - 10147 [(split;~intros~?~?~H;~inversio...] 0.001 secs (0.001u,0.s) -Chars 10154 - 10155 [-] 0.032 secs (0.031u,0.s) -Chars 10156 - 10202 [(split;~intros~?~?~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) +Chars 10154 - 10155 [-] 0. secs (0.u,0.s) +Chars 10156 - 10202 [(split;~intros~?~?~(?,~(?,~?))...] 0.032 secs (0.031u,0.s) Chars 10209 - 10210 [-] 0. secs (0.u,0.s) Chars 10211 - 10240 [(intros~a~b~x~y~[INCL1~INCL2]).] 0. secs (0.u,0.s) Chars 10249 - 10307 [(split;~intros~?~?~H;~[~apply~...] 0. secs (0.u,0.s) @@ -259,13 +259,13 @@ Chars 12077 - 12097 [(exists~(tt,~y);~auto).] 0. secs (0.u,0.s) Chars 12102 - 12106 [Qed.] 0.001 secs (0.001u,0.s) Chars 12112 - 12220 [#[global]~Instance~Iso_UnitR_p...] 0. secs (0.u,0.s) Chars 12225 - 12231 [Proof.] 0. secs (0.u,0.s) -Chars 12238 - 12367 [(split;~compute;~split;~intros...] 0.003 secs (0.002u,0.s) +Chars 12238 - 12367 [(split;~compute;~split;~intros...] 0.004 secs (0.002u,0.001s) Chars 12374 - 12393 [(eexists;~intuition).] 0. secs (0.u,0.s) Chars 12400 - 12420 [(exists~(y,~tt);~auto).] 0. secs (0.u,0.s) Chars 12425 - 12429 [Qed.] 0.001 secs (0.001u,0.s) Chars 12435 - 12508 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 12513 - 12519 [Proof.] 0. secs (0.u,0.s) -Chars 12526 - 12696 [(split;~compute;~intros;~~~rep...] 0.004 secs (0.003u,0.s) +Chars 12526 - 12696 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.001s) Chars 12703 - 12704 [-] 0. secs (0.u,0.s) Chars 12705 - 12737 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) Chars 12744 - 12745 [-] 0. secs (0.u,0.s) @@ -288,11 +288,11 @@ Chars 13354 - 13377 [(constructor;~cbn;~auto).] 0. secs (0.u,0.s) Chars 13384 - 13385 [-] 0. secs (0.u,0.s) Chars 13386 - 13417 [(intros~[];~eexists~(_,~(u,~_))).] 0. secs (0.u,0.s) Chars 13418 - 13428 [intuition.] 0. secs (0.u,0.s) -Chars 13433 - 13437 [Qed.] 0.003 secs (0.003u,0.s) +Chars 13433 - 13437 [Qed.] 0.004 secs (0.003u,0.s) Chars 13439 - 13884 [Ltac~~decomp~:=~~~repeat~~~~la...] 0. secs (0.u,0.s) Chars 13890 - 13958 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 13963 - 13969 [Proof.] 0. secs (0.u,0.s) -Chars 13976 - 13995 [(split;~compute;~decomp).] 0.015 secs (0.015u,0.s) +Chars 13976 - 13995 [(split;~compute;~decomp).] 0.016 secs (0.015u,0.s) Chars 14002 - 14003 [-] 0. secs (0.u,0.s) Chars 14004 - 14027 [eexists~(_,~_,~(_,~_)).] 0. secs (0.u,0.s) Chars 14028 - 14050 [firstorder~~congruence.] 0. secs (0.u,0.s) @@ -300,7 +300,7 @@ Chars 14057 - 14058 [-] 0. secs (0.u,0.s) Chars 14059 - 14094 [(eexists~(_,~(_,~_,~_));~first...] 0.002 secs (0.002u,0.s) Chars 14095 - 14118 [eexists~(_,~(_,~_),~_).] 0. secs (0.u,0.s) Chars 14119 - 14148 [firstorder~~(cbn;~congruence).] 0.001 secs (0.001u,0.s) -Chars 14153 - 14157 [Qed.] 0.019 secs (0.019u,0.s) +Chars 14153 - 14157 [Qed.] 0.021 secs (0.019u,0.001s) Chars 14163 - 14228 [#[global]~Instance~Monoidal_pr...] 0. secs (0.u,0.s) Chars 14233 - 14239 [Proof.] 0. secs (0.u,0.s) Chars 14246 - 14277 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -314,7 +314,7 @@ Chars 14426 - 14430 [(red).] 0. secs (0.u,0.s) Chars 14431 - 14444 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 14445 - 14461 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 14468 - 14527 [(destruct~x,~y;~subst;~inversi...] 0.003 secs (0.003u,0.s) -Chars 14534 - 14580 [(inversion~H;~inversion~H2;~su...] 0.004 secs (0.003u,0.s) +Chars 14534 - 14580 [(inversion~H;~inversion~H2;~su...] 0.003 secs (0.003u,0.s) Chars 14587 - 14633 [(inversion~H;~inversion~H2;~su...] 0.001 secs (0.001u,0.s) Chars 14640 - 14644 [(red).] 0. secs (0.u,0.s) Chars 14645 - 14658 [(intros~?~?~?).] 0. secs (0.u,0.s) @@ -327,7 +327,7 @@ Chars 14754 - 14812 [#[global]~Instance~BimapCat_su...] 0. secs (0.u,0.s) Chars 14817 - 14823 [Proof.] 0. secs (0.u,0.s) Chars 14830 - 14836 [split.] 0. secs (0.u,0.s) Chars 14843 - 14847 [(compute).] 0. secs (0.u,0.s) -Chars 14848 - 14986 [(intros;~destruct~x,~y;~destru...] 0.009 secs (0.009u,0.s) +Chars 14848 - 14986 [(intros;~destruct~x,~y;~destru...] 0.008 secs (0.008u,0.s) Chars 14993 - 15006 [(repeat~intro).] 0. secs (0.u,0.s) Chars 15007 - 15073 [(inversion~H;~inversion~H0;~in...] 0.003 secs (0.003u,0.s) Chars 15081 - 15097 [exists~(inl~x0).] 0. secs (0.u,0.s) @@ -343,25 +343,25 @@ Chars 15319 - 15433 [#[global]~Instance~Iso_Assoc_s...] 0. secs (0.u,0.s) Chars 15438 - 15444 [Proof.] 0. secs (0.u,0.s) Chars 15451 - 15457 [split.] 0. secs (0.u,0.s) Chars 15464 - 15465 [-] 0. secs (0.u,0.s) -Chars 15466 - 15647 [(compute;~split;~intros;~~~rep...] 0.015 secs (0.014u,0.s) +Chars 15466 - 15647 [(compute;~split;~intros;~~~rep...] 0.015 secs (0.015u,0.s) Chars 15656 - 15683 [(exists~(inl~a0);~intuition).] 0. secs (0.u,0.s) Chars 15692 - 15725 [(exists~(inr~(inl~b0));~intuit...] 0. secs (0.u,0.s) Chars 15734 - 15767 [(exists~(inr~(inr~c0));~intuit...] 0. secs (0.u,0.s) Chars 15774 - 15775 [-] 0. secs (0.u,0.s) -Chars 15776 - 15947 [(compute;~split;~intros;~~~rep...] 0.017 secs (0.017u,0.s) +Chars 15776 - 15947 [(compute;~split;~intros;~~~rep...] 0.018 secs (0.017u,0.s) Chars 15956 - 15989 [(exists~(inl~(inl~a0));~intuit...] 0. secs (0.u,0.s) Chars 15998 - 16031 [(exists~(inl~(inr~b0));~intuit...] 0. secs (0.u,0.s) Chars 16040 - 16067 [(exists~(inr~c0);~intuition).] 0. secs (0.u,0.s) -Chars 16072 - 16076 [Qed.] 0.01 secs (0.01u,0.s) +Chars 16072 - 16076 [Qed.] 0.011 secs (0.01u,0.s) Chars 16082 - 16188 [#[global]~Instance~Iso_UnitL_s...] 0. secs (0.u,0.s) Chars 16193 - 16199 [Proof.] 0. secs (0.u,0.s) -Chars 16206 - 16334 [(split;~compute;~split;~intros...] 0.007 secs (0.007u,0.s) +Chars 16206 - 16334 [(split;~compute;~split;~intros...] 0.007 secs (0.006u,0.s) Chars 16341 - 16360 [(eexists;~intuition).] 0. secs (0.u,0.s) Chars 16367 - 16388 [(exists~(inr~y);~auto).] 0. secs (0.u,0.s) Chars 16393 - 16397 [Qed.] 0.001 secs (0.001u,0.s) Chars 16403 - 16509 [#[global]~Instance~Iso_UnitR_s...] 0. secs (0.u,0.s) Chars 16514 - 16520 [Proof.] 0. secs (0.u,0.s) -Chars 16527 - 16655 [(split;~compute;~split;~intros...] 0.003 secs (0.003u,0.s) +Chars 16527 - 16655 [(split;~compute;~split;~intros...] 0.004 secs (0.003u,0.s) Chars 16662 - 16681 [(eexists;~intuition).] 0. secs (0.u,0.s) Chars 16688 - 16709 [(exists~(inl~y);~auto).] 0. secs (0.u,0.s) Chars 16714 - 16718 [Qed.] 0.001 secs (0.001u,0.s) @@ -376,17 +376,17 @@ Chars 17165 - 17171 [Proof.] 0. secs (0.u,0.s) Chars 17178 - 17359 [(split;~compute;~intros;~~~rep...] 0.007 secs (0.007u,0.s) Chars 17366 - 17398 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) Chars 17405 - 17443 [(exists~(inr~x);~intuition~sub...] 0. secs (0.u,0.s) -Chars 17448 - 17452 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17448 - 17452 [Qed.] 0.003 secs (0.003u,0.s) Chars 17458 - 17525 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 17530 - 17536 [Proof.] 0. secs (0.u,0.s) Chars 17543 - 17562 [(split;~compute;~intros).] 0. secs (0.u,0.s) Chars 17569 - 17580 [(destruct~H).] 0. secs (0.u,0.s) -Chars 17587 - 17732 [(destruct~x;~try~destruct~s;~t...] 0.008 secs (0.008u,0.s) +Chars 17587 - 17732 [(destruct~x;~try~destruct~s;~t...] 0.009 secs (0.009u,0.s) Chars 17739 - 17783 [(destruct~s;~try~contradiction...] 0. secs (0.u,0.s) Chars 17790 - 17859 [(inversion~H;~subst;~eauto;~tr...] 0.003 secs (0.003u,0.s) Chars 17866 - 17872 [(inv~H).] 0.001 secs (0.001u,0.s) Chars 17873 - 17896 [(exists~(inl~a2);~eauto).] 0. secs (0.u,0.s) -Chars 17904 - 17940 [(inv~H;~exists~(inr~(inr~b2));...] 0.001 secs (0.001u,0.s) +Chars 17904 - 17940 [(inv~H;~exists~(inr~(inr~b2));...] 0.002 secs (0.002u,0.s) Chars 17946 - 17950 [Qed.] 0.015 secs (0.015u,0.s) Chars 17956 - 18022 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 18027 - 18033 [Proof.] 0. secs (0.u,0.s) @@ -421,7 +421,7 @@ Chars 18829 - 18859 [(intuition;~econstructor;~auto).] 0. secs (0.u,0.s) Chars 18868 - 18878 [intuition.] 0. secs (0.u,0.s) Chars 18885 - 18886 [-] 0. secs (0.u,0.s) Chars 18887 - 18940 [(exists~(inr~(inr~d0));~intuit...] 0.001 secs (0.001u,0.s) -Chars 18946 - 18950 [Qed.] 0.04 secs (0.04u,0.s) +Chars 18946 - 18950 [Qed.] 0.04 secs (0.039u,0.s) Chars 18956 - 19019 [#[global]~Instance~Monoidal_su...] 0. secs (0.u,0.s) Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) Chars 19037 - 19068 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategorySub.v.timing b/theories/Basics/CategorySub.v.timing index 4e703a43..14b94f52 100644 --- a/theories/Basics/CategorySub.v.timing +++ b/theories/Basics/CategorySub.v.timing @@ -1,5 +1,5 @@ -Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.005 secs (0.004u,0.001s) +Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.002s) +Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.005 secs (0.003u,0.001s) Chars 244 - 264 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 265 - 292 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 309 - 335 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) @@ -33,12 +33,12 @@ Chars 2256 - 2349 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) Chars 2351 - 2441 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2443 - 2487 [#[global]~Instance~Category_su...] 0. secs (0.u,0.s) Chars 2488 - 2494 [Proof.] 0. secs (0.u,0.s) -Chars 2497 - 2542 [(destruct~Category_C;~construc...] 0.003 secs (0.002u,0.s) +Chars 2497 - 2542 [(destruct~Category_C;~construc...] 0.003 secs (0.002u,0.001s) Chars 2545 - 2554 [(do~2~red).] 0. secs (0.u,0.s) Chars 2555 - 2562 [(intros).] 0. secs (0.u,0.s) Chars 2563 - 2597 [(eapply~category_proper_cat;~e...] 0. secs (0.u,0.s) -Chars 2598 - 2602 [Qed.] 0. secs (0.u,0.s) -Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0. secs (0.u,0.s) +Chars 2598 - 2602 [Qed.] 0.001 secs (0.u,0.s) +Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0.001 secs (0.u,0.s) Chars 2673 - 2679 [Proof.] 0. secs (0.u,0.s) Chars 2680 - 2690 [(hnf;~auto).] 0. secs (0.u,0.s) Chars 2691 - 2695 [Qed.] 0. secs (0.u,0.s) @@ -48,7 +48,7 @@ Chars 2775 - 2785 [(hnf;~auto).] 0. secs (0.u,0.s) Chars 2786 - 2790 [Qed.] 0. secs (0.u,0.s) Chars 2792 - 2852 [#[global]~Instance~Functor_uns...] 0. secs (0.u,0.s) Chars 2853 - 2859 [Proof.] 0. secs (0.u,0.s) -Chars 2862 - 2907 [(constructor;~reflexivity~+~ty...] 0.001 secs (0.001u,0.s) +Chars 2862 - 2907 [(constructor;~reflexivity~+~ty...] 0.002 secs (0.001u,0.s) Chars 2908 - 2912 [Qed.] 0. secs (0.u,0.s) Chars 2914 - 2926 [End~CatLaws.] 0. secs (0.u,0.s) Chars 2928 - 3800 [Ltac~~unfold_sub~:=~~~repeat~~...] 0. secs (0.u,0.s) @@ -59,13 +59,13 @@ Chars 4143 - 4194 [#[global]~Instance~Coproduct_s...] 0. secs (0.u,0.s) Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) Chars 4204 - 4251 [(destruct~Coproduct_C;~constru...] 0. secs (0.u,0.s) Chars 4254 - 4287 [all:~(unfold~Morphisms.respect...] 0. secs (0.u,0.s) -Chars 4290 - 4306 [all:~unfold_sub.] 0.017 secs (0.015u,0.002s) +Chars 4290 - 4306 [all:~unfold_sub.] 0.016 secs (0.014u,0.002s) Chars 4309 - 4337 [all:~(try~rewrite~!cat_assoc).] 0.005 secs (0.005u,0.s) -Chars 4340 - 4366 [all:~(try~simpl_bif;~eauto).] 0.038 secs (0.037u,0.s) +Chars 4340 - 4366 [all:~(try~simpl_bif;~eauto).] 0.039 secs (0.038u,0.001s) Chars 4369 - 4370 [-] 0. secs (0.u,0.s) Chars 4371 - 4419 [(enough~(from_bif~>>>~fg~⩯~cas...] 0. secs (0.u,0.s) Chars 4424 - 4425 [{] 0. secs (0.u,0.s) -Chars 4426 - 4480 [(rewrite~<-~H1,~<-~cat_assoc,~...] 0.005 secs (0.005u,0.s) +Chars 4426 - 4480 [(rewrite~<-~H1,~<-~cat_assoc,~...] 0.006 secs (0.005u,0.s) Chars 4481 - 4493 [reflexivity.] 0. secs (0.u,0.s) Chars 4494 - 4495 [}] 0. secs (0.u,0.s) Chars 4500 - 4550 [(apply~case_universal;~rewrite...] 0.003 secs (0.003u,0.s) @@ -80,11 +80,11 @@ Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.001 secs (0.001u,0.s) Chars 4829 - 4835 [Proof.] 0. secs (0.u,0.s) Chars 4838 - 4878 [(unfold~bimap~at~1,~Bimap_Copr...] 0. secs (0.u,0.s) Chars 4881 - 4892 [unfold_sub.] 0.001 secs (0.001u,0.s) -Chars 4895 - 4918 [(rewrite~<-~2!cat_assoc).] 0.011 secs (0.009u,0.001s) +Chars 4895 - 4918 [(rewrite~<-~2!cat_assoc).] 0.011 secs (0.009u,0.002s) Chars 4921 - 4941 [(rewrite~<-~cat_case).] 0.004 secs (0.003u,0.001s) Chars 4942 - 4960 [(rewrite~cat_assoc).] 0.002 secs (0.001u,0.s) Chars 4963 - 4975 [reflexivity.] 0. secs (0.u,0.s) -Chars 4976 - 4980 [Qed.] 0.003 secs (0.002u,0.s) +Chars 4976 - 4980 [Qed.] 0.002 secs (0.002u,0.s) Chars 4982 - 5024 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) Chars 5026 - 5077 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) Chars 5078 - 5084 [Proof.] 0. secs (0.u,0.s) @@ -96,30 +96,30 @@ Chars 5202 - 5214 [reflexivity.] 0. secs (0.u,0.s) Chars 5217 - 5218 [-] 0. secs (0.u,0.s) Chars 5219 - 5244 [(rewrite~bimap_sub_unfold).] 0.007 secs (0.006u,0.001s) Chars 5249 - 5277 [(rewrite~!(cat_assoc~to_bif)).] 0.006 secs (0.006u,0.s) -Chars 5282 - 5316 [(rewrite~<-~(cat_assoc~(C:=C)~...] 0.003 secs (0.003u,0.s) -Chars 5321 - 5363 [(rewrite~cat_assoc,~(cat_assoc...] 0.006 secs (0.006u,0.s) +Chars 5282 - 5316 [(rewrite~<-~(cat_assoc~(C:=C)~...] 0.004 secs (0.004u,0.s) +Chars 5321 - 5363 [(rewrite~cat_assoc,~(cat_assoc...] 0.007 secs (0.007u,0.s) Chars 5368 - 5401 [(rewrite~(semi_iso~_~_),~cat_i...] 0.009 secs (0.009u,0.s) -Chars 5406 - 5427 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) +Chars 5406 - 5427 [(rewrite~iter_natural).] 0.002 secs (0.001u,0.s) Chars 5432 - 5444 [reflexivity.] 0. secs (0.u,0.s) Chars 5447 - 5448 [-] 0. secs (0.u,0.s) -Chars 5449 - 5482 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.017 secs (0.016u,0.s) -Chars 5487 - 5519 [(rewrite~!(cat_assoc~_~_~to_bi...] 0.013 secs (0.013u,0.s) +Chars 5449 - 5482 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.018 secs (0.016u,0.001s) +Chars 5487 - 5519 [(rewrite~!(cat_assoc~_~_~to_bi...] 0.015 secs (0.014u,0.s) Chars 5524 - 5542 [(rewrite~!cat_case).] 0.015 secs (0.015u,0.s) -Chars 5547 - 5607 [(rewrite~!(cat_assoc~_~from_bi...] 0.053 secs (0.052u,0.s) +Chars 5547 - 5607 [(rewrite~!(cat_assoc~_~from_bi...] 0.055 secs (0.052u,0.002s) Chars 5612 - 5635 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) Chars 5640 - 5652 [reflexivity.] 0. secs (0.u,0.s) Chars 5655 - 5656 [-] 0. secs (0.u,0.s) -Chars 5657 - 5690 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.005 secs (0.005u,0.s) -Chars 5695 - 5726 [(rewrite~(cat_assoc~_~_~to_bif)).] 0.003 secs (0.003u,0.s) +Chars 5657 - 5690 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.006 secs (0.006u,0.s) +Chars 5695 - 5726 [(rewrite~(cat_assoc~_~_~to_bif)).] 0.003 secs (0.002u,0.s) Chars 5731 - 5758 [(rewrite~cat_case,~cat_id_l).] 0.01 secs (0.01u,0.s) -Chars 5763 - 5820 [(rewrite~(cat_assoc~_~_~to_bif...] 0.015 secs (0.015u,0.s) -Chars 5825 - 5863 [(rewrite~iter_natural,~iter_co...] 0.005 secs (0.005u,0.s) -Chars 5868 - 5934 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.017u,0.s) +Chars 5763 - 5820 [(rewrite~(cat_assoc~_~_~to_bif...] 0.015 secs (0.014u,0.s) +Chars 5825 - 5863 [(rewrite~iter_natural,~iter_co...] 0.004 secs (0.004u,0.s) +Chars 5868 - 5934 [(rewrite~(cat_assoc~_~(bimap~_...] 0.017 secs (0.017u,0.s) Chars 5939 - 5951 [reflexivity.] 0. secs (0.u,0.s) Chars 5954 - 5955 [-] 0. secs (0.u,0.s) Chars 5956 - 5986 [(intros;~unfold~iter,~Iter_sub).] 0. secs (0.u,0.s) Chars 5991 - 6059 [(apply~iterative_proper_iter,~...] 0.001 secs (0.001u,0.s) -Chars 6060 - 6064 [Qed.] 0.019 secs (0.019u,0.s) +Chars 6060 - 6064 [Qed.] 0.019 secs (0.018u,0.s) Chars 6066 - 6084 [End~CoproductLaws.] 0. secs (0.u,0.s) Chars 6086 - 6102 [End~Subcategory.] 0.001 secs (0.001u,0.s) Chars 6104 - 6142 [Arguments~subm~{obj~C~sobj~Emb...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryTheory.v.timing b/theories/Basics/CategoryTheory.v.timing index 157a3996..843f594f 100644 --- a/theories/Basics/CategoryTheory.v.timing +++ b/theories/Basics/CategoryTheory.v.timing @@ -1,4 +1,4 @@ -Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.u,0.s) Chars 291 - 306 [Import~Carrier.] 0. secs (0.u,0.s) Chars 307 - 327 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -61,8 +61,8 @@ Chars 5130 - 5185 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 5186 - 5212 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 5213 - 5247 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 5348 - 5441 [Class~BimapId~:~Prop~:=~~~~~bi...] 0. secs (0.u,0.s) -Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.002 secs (0.002u,0.s) -Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.002 secs (0.001u,0.s) +Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.002 secs (0.001u,0.s) +Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) Chars 5887 - 5934 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5935 - 5983 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5984 - 6035 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) @@ -74,9 +74,9 @@ Chars 6307 - 6342 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 6343 - 6398 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 6399 - 6425 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 6426 - 6512 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0.001 secs (0.001u,0.s) -Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) -Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.002 secs (0.001u,0.s) +Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) +Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) +Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) Chars 7200 - 7247 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) Chars 7248 - 7295 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) @@ -93,9 +93,9 @@ Chars 7827 - 7862 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 7863 - 7918 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 7919 - 7945 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 7946 - 8032 [Context~{Pair_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) -Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0.001 secs (0.u,0.s) -Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0.001 secs (0.u,0.s) -Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.002 secs (0.001u,0.s) +Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) +Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) +Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) Chars 8708 - 8753 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8754 - 8799 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) @@ -143,7 +143,7 @@ Chars 11411 - 11449 [Context~{UnitL_bif~:~UnitL~C~b...] 0. secs (0.u,0.s) Chars 11450 - 11488 [Context~{UnitL'_bif~:~UnitL'~C...] 0. secs (0.u,0.s) Chars 11489 - 11527 [Context~{UnitR_bif~:~UnitR~C~b...] 0. secs (0.u,0.s) Chars 11528 - 11566 [Context~{UnitR'_bif~:~UnitR'~C...] 0. secs (0.u,0.s) -Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0.001 secs (0.001u,0.s) +Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0.001 secs (0.u,0.s) Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0.001 secs (0.u,0.s) Chars 11910 - 11988 [Notation~UnitLIso~:=~(forall~a...] 0. secs (0.u,0.s) Chars 12086 - 12185 [Corollary~unit_l_mono~{UnitLIs...] 0. secs (0.u,0.s) @@ -155,11 +155,11 @@ Chars 12394 - 12400 [Proof.] 0. secs (0.u,0.s) Chars 12403 - 12438 [(intros;~apply~semi_iso,~UnitL...] 0. secs (0.u,0.s) Chars 12439 - 12443 [Qed.] 0. secs (0.u,0.s) Chars 12496 - 12574 [Notation~UnitRIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0.001 secs (0.001u,0.s) +Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0. secs (0.u,0.s) Chars 12676 - 12682 [Proof.] 0. secs (0.u,0.s) Chars 12685 - 12720 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) Chars 12721 - 12725 [Qed.] 0. secs (0.u,0.s) -Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0.001 secs (0.001u,0.s) +Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0.001 secs (0.u,0.s) Chars 12818 - 12824 [Proof.] 0. secs (0.u,0.s) Chars 12827 - 12862 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) Chars 12863 - 12867 [Qed.] 0. secs (0.u,0.s) @@ -175,8 +175,8 @@ Chars 13851 - 13904 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13905 - 13955 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13956 - 14009 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.002 secs (0.002u,0.s) -Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.018 secs (0.017u,0.s) -Chars 14435 - 14452 [End~MonoidalLaws.] 0.001 secs (0.001u,0.s) +Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.019 secs (0.018u,0.001s) +Chars 14435 - 14452 [End~MonoidalLaws.] 0.002 secs (0.001u,0.s) Chars 14454 - 14545 [Arguments~assoc_r_mono~~~{obj~...] 0. secs (0.u,0.s) Chars 14546 - 14637 [Arguments~assoc_l_mono~~~{obj~...] 0. secs (0.u,0.s) Chars 14638 - 14725 [Arguments~unit_l_mono~~~{obj~C...] 0. secs (0.u,0.s) @@ -222,9 +222,9 @@ Chars 17527 - 17557 [Context~{Case_C~:~Case~C~bif}.] 0. secs (0.u,0.s) Chars 17558 - 17586 [Context~{Inl_C~:~Inl~C~bif}.] 0. secs (0.u,0.s) Chars 17587 - 17615 [Context~{Inr_C~:~Inr~C~bif}.] 0. secs (0.u,0.s) Chars 17616 - 17646 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) -Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0. secs (0.u,0.s) +Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0.001 secs (0.u,0.s) Chars 17942 - 18083 [Class~IterNatural~:~Prop~:=~~~...] 0.001 secs (0.001u,0.s) -Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.002 secs (0.002u,0.s) +Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.003 secs (0.002u,0.s) Chars 18534 - 18679 [Class~IterCodiagonal~:~Prop~:=...] 0.001 secs (0.001u,0.s) Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) Chars 19031 - 19076 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) @@ -232,7 +232,7 @@ Chars 19077 - 19123 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19124 - 19172 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19173 - 19222 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19223 - 19273 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.022 secs (0.017u,0.004s) +Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.021 secs (0.016u,0.004s) Chars 19692 - 19710 [End~IterationLaws.] 0.001 secs (0.001u,0.s) Chars 19712 - 19796 [Arguments~iter_unfold~{obj~C~E...] 0. secs (0.u,0.s) Chars 19797 - 19897 [Arguments~iter_natural~~~{obj~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/FunctionFacts.v.timing b/theories/Basics/FunctionFacts.v.timing index 7a7cf717..54b27fef 100644 --- a/theories/Basics/FunctionFacts.v.timing +++ b/theories/Basics/FunctionFacts.v.timing @@ -1,5 +1,5 @@ Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.142 secs (0.128u,0.014s) +Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.15 secs (0.13u,0.018s) Chars 209 - 229 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 230 - 257 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 274 - 378 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) @@ -37,7 +37,7 @@ Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) Chars 1127 - 1131 [Qed.] 0. secs (0.u,0.s) Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0.004 secs (0.004u,0.s) Chars 1262 - 1268 [Proof.] 0. secs (0.u,0.s) -Chars 1269 - 1306 [(compute;~intros;~subst;~destr...] 0.001 secs (0.u,0.s) +Chars 1269 - 1306 [(compute;~intros;~subst;~destr...] 0.001 secs (0.001u,0.s) Chars 1307 - 1311 [Qed.] 0. secs (0.u,0.s) Chars 1313 - 1360 [#[global]~Instance~Category_Fu...] 0. secs (0.u,0.s) Chars 1361 - 1367 [Proof.] 0. secs (0.u,0.s) @@ -77,7 +77,7 @@ Chars 1984 - 2004 [(unfold~cat,~Cat_Fun).] 0. secs (0.u,0.s) Chars 2007 - 2024 [(destruct~(fg~a0)).] 0. secs (0.u,0.s) Chars 2025 - 2037 [reflexivity.] 0. secs (0.u,0.s) Chars 2038 - 2042 [Qed.] 0. secs (0.u,0.s) -Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) +Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0.001 secs (0.u,0.s) Chars 2148 - 2154 [Proof.] 0. secs (0.u,0.s) Chars 2157 - 2188 [(intros~?~?~?~f1~f2~F~g1~g2~G~c).] 0. secs (0.u,0.s) Chars 2191 - 2214 [(unfold~pair_,~Pair_Fun).] 0. secs (0.u,0.s) @@ -99,14 +99,14 @@ Chars 2515 - 2528 [(repeat~intro).] 0. secs (0.u,0.s) Chars 2533 - 2544 [(destruct~a).] 0. secs (0.u,0.s) Chars 2549 - 2561 [reflexivity.] 0. secs (0.u,0.s) Chars 2564 - 2568 [Qed.] 0. secs (0.u,0.s) -Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0.001 secs (0.001u,0.s) +Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0.001 secs (0.u,0.s) Chars 2724 - 2730 [Proof.] 0. secs (0.u,0.s) Chars 2735 - 2748 [(repeat~intro).] 0. secs (0.u,0.s) Chars 2753 - 2781 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) -Chars 2782 - 2792 [(rewrite~H).] 0.008 secs (0.006u,0.002s) -Chars 2793 - 2804 [(rewrite~H0).] 0.009 secs (0.007u,0.002s) +Chars 2782 - 2792 [(rewrite~H).] 0.01 secs (0.007u,0.002s) +Chars 2793 - 2804 [(rewrite~H0).] 0.01 secs (0.008u,0.002s) Chars 2805 - 2817 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2824 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2820 - 2824 [Qed.] 0.003 secs (0.002u,0.s) Chars 2828 - 2889 [#[global]~Instance~Bifunctor_F...] 0. secs (0.u,0.s) Chars 2892 - 2898 [Proof.] 0. secs (0.u,0.s) Chars 2903 - 2915 [constructor.] 0. secs (0.u,0.s) @@ -133,7 +133,7 @@ Chars 3323 - 3335 [reflexivity.] 0. secs (0.u,0.s) Chars 3338 - 3342 [Qed.] 0. secs (0.u,0.s) Chars 3415 - 3492 [#[global]~Instance~CartesianCl...] 0. secs (0.u,0.s) Chars 3495 - 3501 [Proof.] 0. secs (0.u,0.s) -Chars 3506 - 3541 [(constructor;~try~typeclasses~...] 0.027 secs (0.025u,0.002s) +Chars 3506 - 3541 [(constructor;~try~typeclasses~...] 0.033 secs (0.028u,0.004s) Chars 3546 - 3559 [(repeat~intro).] 0. secs (0.u,0.s) Chars 3560 - 3585 [(unfold~curry_,~Curry_Fun).] 0. secs (0.u,0.s) Chars 3586 - 3618 [(apply~functional_extensionali...] 0. secs (0.u,0.s) diff --git a/theories/Basics/HeterogeneousRelations.v.timing b/theories/Basics/HeterogeneousRelations.v.timing index 350dbbac..34c89fe2 100644 --- a/theories/Basics/HeterogeneousRelations.v.timing +++ b/theories/Basics/HeterogeneousRelations.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.005u,0.002s) -Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.034 secs (0.027u,0.007s) +Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.008 secs (0.005u,0.002s) +Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.033 secs (0.026u,0.007s) Chars 157 - 201 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) Chars 405 - 458 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) Chars 460 - 512 [Definition~relationH~(A~B~:~Ty...] 0. secs (0.u,0.s) @@ -18,7 +18,7 @@ Chars 1633 - 1681 [Class~Disj~(T~:~Type)~:=~~~~~d...] 0. secs (0.u,0.s) Chars 1685 - 1798 [#[global]~Instance~Disj_binary...] 0. secs (0.u,0.s) Chars 1802 - 1897 [#[global]~Instance~Disj_unary~...] 0. secs (0.u,0.s) Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) -Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.001u,0.s) +Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) Chars 2536 - 2561 [End~RelationH_Operations.] 0. secs (0.u,0.s) Chars 2563 - 2606 [#[global]~Hint~Constructors~pr...] 0. secs (0.u,0.s) Chars 2607 - 2649 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) @@ -81,7 +81,7 @@ Chars 5440 - 5448 [Defined.] 0. secs (0.u,0.s) Chars 5450 - 5527 [#[global]~Instance~relationH_s...] 0. secs (0.u,0.s) Chars 5528 - 5534 [Proof.] 0. secs (0.u,0.s) Chars 5537 - 5550 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5551 - 5561 [(cbn;~auto).] 0. secs (0.u,0.s) +Chars 5551 - 5561 [(cbn;~auto).] 0.007 secs (0.u,0.s) Chars 5562 - 5570 [Defined.] 0. secs (0.u,0.s) Chars 5572 - 5651 [#[global]~Instance~relationH_t...] 0. secs (0.u,0.s) Chars 5652 - 5658 [Proof.] 0. secs (0.u,0.s) @@ -153,7 +153,7 @@ Chars 7169 - 7260 [Lemma~subrelationH_antisym~{A~...] 0. secs (0.u,0.s) Chars 7263 - 7269 [Proof.] 0. secs (0.u,0.s) Chars 7274 - 7286 [(split;~auto).] 0. secs (0.u,0.s) Chars 7289 - 7293 [Qed.] 0. secs (0.u,0.s) -Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0.018 secs (0.016u,0.002s) +Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0.023 secs (0.017u,0.006s) Chars 7401 - 7407 [Proof.] 0. secs (0.u,0.s) Chars 7412 - 7426 [(intros~!;~auto).] 0. secs (0.u,0.s) Chars 7429 - 7433 [Qed.] 0. secs (0.u,0.s) @@ -390,7 +390,7 @@ Chars 15124 - 15132 [intros~!.] 0. secs (0.u,0.s) Chars 15139 - 15173 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 15174 - 15209 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 15216 - 15240 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) -Chars 15247 - 15309 [(inversion~H1;~inversion~H2;~s...] 0.031 secs (0.03u,0.s) +Chars 15247 - 15309 [(inversion~H1;~inversion~H2;~s...] 0.03 secs (0.029u,0.001s) Chars 15314 - 15318 [Qed.] 0. secs (0.u,0.s) Chars 15324 - 15426 [#[global]~Instance~prod_rel_eq...] 0. secs (0.u,0.s) Chars 15431 - 15437 [Proof.] 0. secs (0.u,0.s) @@ -445,7 +445,7 @@ Chars 16730 - 16739 [(cbn~in~H).] 0. secs (0.u,0.s) Chars 16740 - 16751 [(repeat~red).] 0. secs (0.u,0.s) Chars 16752 - 16764 [(inversion~H).] 0. secs (0.u,0.s) Chars 16765 - 16784 [(split;~reflexivity).] 0. secs (0.u,0.s) -Chars 16787 - 16791 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16787 - 16791 [Qed.] 0. secs (0.u,0.s) Chars 16795 - 16941 [Definition~prod_fst_rel~{A~B~:...] 0. secs (0.u,0.s) Chars 16945 - 17091 [Definition~prod_snd_rel~{A~B~:...] 0. secs (0.u,0.s) Chars 17095 - 17277 [Lemma~prod_inv~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) @@ -538,28 +538,28 @@ Chars 19820 - 19828 [intros~!.] 0. secs (0.u,0.s) Chars 19835 - 19870 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 19871 - 19906 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) Chars 19913 - 19937 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) -Chars 19944 - 20014 [(destruct~x,~y,~z;~try~contrad...] 0.012 secs (0.009u,0.002s) +Chars 19944 - 20014 [(destruct~x,~y,~z;~try~contrad...] 0.014 secs (0.009u,0.003s) Chars 20021 - 20030 [(cbn~in~*).] 0. secs (0.u,0.s) Chars 20037 - 20049 [constructor.] 0. secs (0.u,0.s) Chars 20050 - 20056 [eauto.] 0. secs (0.u,0.s) Chars 20057 - 20069 [constructor.] 0. secs (0.u,0.s) Chars 20070 - 20076 [eauto.] 0. secs (0.u,0.s) -Chars 20081 - 20085 [Qed.] 0.005 secs (0.004u,0.001s) +Chars 20081 - 20085 [Qed.] 0.007 secs (0.004u,0.002s) Chars 20091 - 20190 [#[global]~Instance~sum_rel_eqv...] 0. secs (0.u,0.s) Chars 20195 - 20201 [Proof.] 0. secs (0.u,0.s) -Chars 20208 - 20239 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 20208 - 20239 [(constructor;~typeclasses~eauto).] 0.001 secs (0.u,0.s) Chars 20244 - 20248 [Qed.] 0. secs (0.u,0.s) Chars 20252 - 20268 [End~Equivalence.] 0. secs (0.u,0.s) Chars 20321 - 20474 [Lemma~sum_rel_monotone~{A~B~C~...] 0. secs (0.u,0.s) Chars 20477 - 20483 [Proof.] 0. secs (0.u,0.s) -Chars 20488 - 20586 [(intros~!;~destruct~x,~y;~repe...] 0.004 secs (0.003u,0.s) -Chars 20589 - 20593 [Qed.] 0.002 secs (0.002u,0.s) +Chars 20488 - 20586 [(intros~!;~destruct~x,~y;~repe...] 0.004 secs (0.003u,0.001s) +Chars 20589 - 20593 [Qed.] 0.003 secs (0.002u,0.001s) Chars 20632 - 20704 [Lemma~sum_rel_eq~:~forall~A~B~...] 0. secs (0.u,0.s) Chars 20707 - 20713 [Proof.] 0. secs (0.u,0.s) Chars 20718 - 20725 [(intros).] 0. secs (0.u,0.s) Chars 20726 - 20730 [(red).] 0. secs (0.u,0.s) Chars 20735 - 20762 [(split;~repeat~intro;~eauto).] 0. secs (0.u,0.s) -Chars 20767 - 20809 [(inversion~H;~subst;~auto;~try...] 0.001 secs (0.001u,0.s) +Chars 20767 - 20809 [(inversion~H;~subst;~auto;~try...] 0.002 secs (0.001u,0.s) Chars 20814 - 20820 [subst.] 0. secs (0.u,0.s) Chars 20821 - 20852 [(destruct~y;~constructor;~eauto).] 0. secs (0.u,0.s) Chars 20855 - 20859 [Qed.] 0.001 secs (0.001u,0.s) @@ -567,18 +567,18 @@ Chars 20863 - 21049 [Lemma~sum_compose~{A~B~C~D~E~F...] 0. secs (0.u,0.s) Chars 21052 - 21058 [Proof.] 0. secs (0.u,0.s) Chars 21063 - 21078 [(split;~intros~!).] 0. secs (0.u,0.s) Chars 21083 - 21084 [-] 0. secs (0.u,0.s) -Chars 21085 - 21106 [(destruct~x,~y;~inv~H).] 0.006 secs (0.004u,0.001s) +Chars 21085 - 21106 [(destruct~x,~y;~inv~H).] 0.006 secs (0.004u,0.002s) Chars 21113 - 21156 [(destruct~H2~as~(?,~(?,~?));~e...] 0.001 secs (0.u,0.s) -Chars 21163 - 21206 [(destruct~H2~as~(?,~(?,~?));~e...] 0. secs (0.u,0.s) +Chars 21163 - 21206 [(destruct~H2~as~(?,~(?,~?));~e...] 0.001 secs (0.u,0.s) Chars 21211 - 21212 [-] 0. secs (0.u,0.s) -Chars 21213 - 21257 [(destruct~H~as~(?,~(H1,~H2));~...] 0.009 secs (0.008u,0.s) +Chars 21213 - 21257 [(destruct~H~as~(?,~(H1,~H2));~...] 0.011 secs (0.009u,0.001s) Chars 21264 - 21293 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) Chars 21300 - 21329 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) -Chars 21332 - 21336 [Qed.] 0.005 secs (0.005u,0.s) +Chars 21332 - 21336 [Qed.] 0.004 secs (0.004u,0.s) Chars 21340 - 21444 [#[global]~Instance~Proper_sum_...] 0. secs (0.u,0.s) Chars 21447 - 21453 [Proof.] 0. secs (0.u,0.s) Chars 21458 - 21466 [intros~!.] 0. secs (0.u,0.s) -Chars 21471 - 21659 [(split;~intros~!;~destruct~x1,...] 0.009 secs (0.009u,0.s) +Chars 21471 - 21659 [(split;~intros~!;~destruct~x1,...] 0.008 secs (0.008u,0.s) Chars 21662 - 21666 [Qed.] 0.005 secs (0.005u,0.s) Chars 21892 - 22014 [Lemma~transpose_sum~{A~B~C~D~:...] 0. secs (0.u,0.s) Chars 22017 - 22023 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Monad.v.timing b/theories/Basics/Monad.v.timing index 73342960..06dcdc96 100644 --- a/theories/Basics/Monad.v.timing +++ b/theories/Basics/Monad.v.timing @@ -5,7 +5,7 @@ Chars 246 - 272 [Set~Primitive~Projections.] 0. secs (0.u,0.s) Chars 336 - 412 [Class~Eq1~(M~:~Type~->~Type)~:...] 0. secs (0.u,0.s) Chars 414 - 436 [Arguments~eq1~{M~_~_}.] 0. secs (0.u,0.s) Chars 437 - 484 [Infix~"≈"~:=~eq1~(~at~level~70...] 0. secs (0.u,0.s) -Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0.001 secs (0.u,0.s) +Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0.001 secs (0.001u,0.s) Chars 653 - 691 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 693 - 706 [Section~Laws.] 0. secs (0.u,0.s) Chars 710 - 737 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadProp.v.timing b/theories/Basics/MonadProp.v.timing index eb1c06ae..edacb6d8 100644 --- a/theories/Basics/MonadProp.v.timing +++ b/theories/Basics/MonadProp.v.timing @@ -1,6 +1,6 @@ -Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.008 secs (0.005u,0.002s) +Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.007 secs (0.005u,0.002s) Chars 88 - 137 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) +Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.007 secs (0.005u,0.001s) Chars 253 - 287 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 288 - 308 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 309 - 336 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -52,9 +52,9 @@ Chars 1386 - 1405 [(repeat~intro;~auto).] 0. secs (0.u,0.s) Chars 1406 - 1417 [(destruct~H).] 0. secs (0.u,0.s) Chars 1424 - 1532 [(split;~simpl;~repeat~red;~int...] 0.001 secs (0.001u,0.s) Chars 1535 - 1539 [Qed.] 0.003 secs (0.002u,0.s) -Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0.001 secs (0.u,0.s) +Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) Chars 1684 - 1690 [Proof.] 0. secs (0.u,0.s) -Chars 1695 - 1805 [(repeat~red;~split;~repeat~int...] 0.002 secs (0.002u,0.s) +Chars 1695 - 1805 [(repeat~red;~split;~repeat~int...] 0.002 secs (0.001u,0.s) Chars 1807 - 1811 [Qed.] 0.001 secs (0.001u,0.s) Chars 1815 - 1883 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 1886 - 1892 [Proof.] 0. secs (0.u,0.s) @@ -89,14 +89,14 @@ Chars 2413 - 2414 [+] 0. secs (0.u,0.s) Chars 2415 - 2429 [constructor~1.] 0. secs (0.u,0.s) Chars 2430 - 2452 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 2453 - 2475 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 2476 - 2488 [reflexivity.] 0.01 secs (0.009u,0.s) +Chars 2476 - 2488 [reflexivity.] 0.011 secs (0.01u,0.001s) Chars 2495 - 2496 [+] 0. secs (0.u,0.s) Chars 2497 - 2531 [(econstructor~2;~repeat~red;~e...] 0.001 secs (0.001u,0.s) Chars 2540 - 2562 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 2563 - 2591 [(eexists;~split;~reflexivity).] 0. secs (0.u,0.s) Chars 2596 - 2597 [-] 0. secs (0.u,0.s) Chars 2598 - 2619 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) -Chars 2626 - 2686 [(induction~H;~repeat~red~in~H;...] 0. secs (0.u,0.s) +Chars 2626 - 2686 [(induction~H;~repeat~red~in~H;...] 0.001 secs (0.001u,0.s) Chars 2693 - 2694 [+] 0. secs (0.u,0.s) Chars 2695 - 2756 [(destruct~x;~destruct~H2~as~(?...] 0.001 secs (0.001u,0.s) Chars 2765 - 2787 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) @@ -108,7 +108,7 @@ Chars 2897 - 2947 [(decompose~[~ex~and~]~IHiter_P...] 0. secs (0.u,0.s) Chars 2956 - 2984 [(inversion~H;~clear~H;~subst).] 0. secs (0.u,0.s) Chars 2993 - 3015 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 3016 - 3038 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 3041 - 3045 [Qed.] 0.006 secs (0.005u,0.s) +Chars 3041 - 3045 [Qed.] 0.005 secs (0.005u,0.s) Chars 3049 - 3123 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 3126 - 3132 [Proof.] 0. secs (0.u,0.s) Chars 3137 - 3169 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) @@ -178,7 +178,7 @@ Chars 4415 - 4427 [(induction~H).] 0. secs (0.u,0.s) Chars 4434 - 4435 [+] 0. secs (0.u,0.s) Chars 4436 - 4453 [(remember~(inr~r)).] 0. secs (0.u,0.s) Chars 4454 - 4477 [generalize~dependent~r.] 0. secs (0.u,0.s) -Chars 4478 - 4505 [(induction~H;~intros;~subst).] 0. secs (0.u,0.s) +Chars 4478 - 4505 [(induction~H;~intros;~subst).] 0.001 secs (0.001u,0.s) Chars 4514 - 4515 [*] 0. secs (0.u,0.s) Chars 4516 - 4530 [constructor~1.] 0. secs (0.u,0.s) Chars 4531 - 4566 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadState.v.timing b/theories/Basics/MonadState.v.timing index afb26271..f47923a5 100644 --- a/theories/Basics/MonadState.v.timing +++ b/theories/Basics/MonadState.v.timing @@ -1,6 +1,6 @@ Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) Chars 73 - 122 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.012 secs (0.009u,0.002s) +Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.013 secs (0.01u,0.002s) Chars 271 - 305 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 306 - 326 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 327 - 354 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -57,15 +57,15 @@ Chars 1318 - 1325 [(intros).] 0. secs (0.u,0.s) Chars 1327 - 1338 [(repeat~red).] 0. secs (0.u,0.s) Chars 1339 - 1364 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) Chars 1365 - 1366 [}] 0. secs (0.u,0.s) -Chars 1371 - 1381 [(rewrite~H).] 0.001 secs (0.u,0.s) -Chars 1386 - 1405 [(rewrite~bind_ret_r).] 0.001 secs (0.u,0.s) +Chars 1371 - 1381 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 1386 - 1405 [(rewrite~bind_ret_r).] 0.001 secs (0.001u,0.s) Chars 1406 - 1418 [reflexivity.] 0. secs (0.u,0.s) Chars 1421 - 1422 [-] 0. secs (0.u,0.s) Chars 1423 - 1427 [(cbn).] 0. secs (0.u,0.s) Chars 1428 - 1447 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) Chars 1452 - 1463 [(repeat~red).] 0. secs (0.u,0.s) Chars 1464 - 1473 [(intros~s).] 0. secs (0.u,0.s) -Chars 1478 - 1496 [(rewrite~bind_bind).] 0.002 secs (0.001u,0.s) +Chars 1478 - 1496 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) Chars 1501 - 1519 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 1524 - 1525 [+] 0. secs (0.u,0.s) Chars 1526 - 1538 [reflexivity.] 0. secs (0.u,0.s) @@ -84,7 +84,7 @@ Chars 1684 - 1693 [(apply~H0).] 0. secs (0.u,0.s) Chars 1696 - 1700 [Qed.] 0.003 secs (0.002u,0.s) Chars 1704 - 1739 [Context~{IM~:~Iter~(Kleisli~M)...] 0. secs (0.u,0.s) Chars 1742 - 1782 [Context~{CM~:~Iterative~(Kleis...] 0. secs (0.u,0.s) -Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0. secs (0.u,0.s) +Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0.001 secs (0.u,0.s) Chars 1948 - 2110 [Definition~iso_inv~{a~b~:~Type...] 0. secs (0.u,0.s) Chars 2114 - 2254 [Definition~internalize~{a~b~:~...] 0. secs (0.u,0.s) Chars 2258 - 2377 [Lemma~internalize_eq~{a~b~:~Ty...] 0. secs (0.u,0.s) @@ -99,13 +99,13 @@ Chars 2469 - 2473 [(cbn).] 0. secs (0.u,0.s) Chars 2475 - 2483 [(apply~H).] 0. secs (0.u,0.s) Chars 2488 - 2489 [-] 0. secs (0.u,0.s) Chars 2490 - 2497 [(intros).] 0. secs (0.u,0.s) -Chars 2504 - 2515 [(repeat~red).] 0.012 secs (0.011u,0.001s) +Chars 2504 - 2515 [(repeat~red).] 0.012 secs (0.01u,0.001s) Chars 2516 - 2523 [(intros).] 0. secs (0.u,0.s) Chars 2530 - 2554 [(unfold~internalize~in~H).] 0. secs (0.u,0.s) Chars 2561 - 2585 [specialize~(H~(a1,~a0)).] 0. secs (0.u,0.s) Chars 2592 - 2600 [(apply~H).] 0. secs (0.u,0.s) Chars 2603 - 2607 [Qed.] 0. secs (0.u,0.s) -Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0.001 secs (0.001u,0.s) +Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0. secs (0.u,0.s) Chars 2779 - 2785 [Proof.] 0. secs (0.u,0.s) Chars 2790 - 2801 [(repeat~red).] 0. secs (0.u,0.s) Chars 2806 - 2818 [(destruct~a0).] 0. secs (0.u,0.s) @@ -114,7 +114,7 @@ Chars 2832 - 2851 [(unfold~internalize).] 0. secs (0.u,0.s) Chars 2856 - 2880 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 2885 - 2889 [(cbn).] 0. secs (0.u,0.s) Chars 2894 - 2906 [reflexivity.] 0. secs (0.u,0.s) -Chars 2909 - 2913 [Qed.] 0.001 secs (0.u,0.s) +Chars 2909 - 2913 [Qed.] 0.001 secs (0.001u,0.s) Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 3092 - 3098 [Proof.] 0. secs (0.u,0.s) Chars 3103 - 3114 [(repeat~red).] 0. secs (0.u,0.s) @@ -149,7 +149,7 @@ Chars 3844 - 3852 [(apply~H).] 0. secs (0.u,0.s) Chars 3857 - 3858 [-] 0. secs (0.u,0.s) Chars 3859 - 3870 [(repeat~red).] 0. secs (0.u,0.s) Chars 3871 - 3912 [(destruct~a2~as~[s'~[x1|~y1]];...] 0. secs (0.u,0.s) -Chars 3914 - 3918 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3914 - 3918 [Qed.] 0.001 secs (0.001u,0.s) Chars 3922 - 3997 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 4000 - 4006 [Proof.] 0. secs (0.u,0.s) Chars 4009 - 4021 [(destruct~CM).] 0. secs (0.u,0.s) @@ -159,7 +159,7 @@ Chars 4061 - 4072 [(repeat~red).] 0. secs (0.u,0.s) Chars 4075 - 4087 [(intros~a0~s).] 0. secs (0.u,0.s) Chars 4090 - 4114 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 4117 - 4143 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) -Chars 4146 - 4171 [(rewrite~iterative_unfold).] 0.002 secs (0.002u,0.s) +Chars 4146 - 4171 [(rewrite~iterative_unfold).] 0.003 secs (0.003u,0.s) Chars 4222 - 4246 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 4249 - 4255 [(simpl).] 0. secs (0.u,0.s) Chars 4258 - 4276 [(rewrite~bind_bind).] 0.003 secs (0.003u,0.s) @@ -171,11 +171,11 @@ Chars 4319 - 4330 [(repeat~red).] 0. secs (0.u,0.s) Chars 4331 - 4366 [(destruct~a1~as~[s'~[x|~y]];~s...] 0. secs (0.u,0.s) Chars 4371 - 4372 [*] 0. secs (0.u,0.s) Chars 4373 - 4385 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 4386 - 4405 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 4386 - 4405 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) Chars 4412 - 4424 [reflexivity.] 0. secs (0.u,0.s) Chars 4429 - 4430 [*] 0. secs (0.u,0.s) Chars 4431 - 4443 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 4444 - 4463 [(rewrite~bind_ret_l).] 0.018 secs (0.018u,0.s) +Chars 4444 - 4463 [(rewrite~bind_ret_l).] 0.021 secs (0.02u,0.s) Chars 4470 - 4482 [reflexivity.] 0. secs (0.u,0.s) Chars 4485 - 4489 [Qed.] 0.004 secs (0.004u,0.s) Chars 4493 - 4570 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) @@ -185,7 +185,7 @@ Chars 4601 - 4620 [(unfold~IterNatural).] 0. secs (0.u,0.s) Chars 4625 - 4642 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) Chars 4647 - 4658 [(repeat~red).] 0. secs (0.u,0.s) Chars 4663 - 4675 [(intros~a0~s).] 0. secs (0.u,0.s) -Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.017 secs (0.017u,0.s) +Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.019 secs (0.018u,0.001s) Chars 4718 - 4746 [(apply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 4751 - 4762 [(repeat~red).] 0. secs (0.u,0.s) Chars 4767 - 4779 [(destruct~a1).] 0. secs (0.u,0.s) @@ -200,13 +200,13 @@ Chars 4890 - 4901 [(repeat~red).] 0. secs (0.u,0.s) Chars 4902 - 4937 [(destruct~a2~as~[s'~[x|~y]];~s...] 0.001 secs (0.u,0.s) Chars 4944 - 4945 [+] 0. secs (0.u,0.s) Chars 4946 - 4958 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 4959 - 4978 [(rewrite~bind_ret_l).] 0.004 secs (0.003u,0.001s) +Chars 4959 - 4978 [(rewrite~bind_ret_l).] 0.005 secs (0.003u,0.001s) Chars 4987 - 4991 [(cbn).] 0. secs (0.u,0.s) Chars 4992 - 5016 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 5017 - 5021 [(cbn).] 0. secs (0.u,0.s) -Chars 5030 - 5048 [(rewrite~bind_bind).] 0.003 secs (0.002u,0.s) -Chars 5057 - 5076 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) -Chars 5085 - 5104 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 5030 - 5048 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 5057 - 5076 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 5085 - 5104 [(rewrite~bind_ret_l).] 0.002 secs (0.001u,0.s) Chars 5113 - 5117 [(cbn).] 0. secs (0.u,0.s) Chars 5126 - 5149 [(unfold~id_,~Id_Kleisli).] 0. secs (0.u,0.s) Chars 5150 - 5162 [(unfold~pure).] 0. secs (0.u,0.s) @@ -228,7 +228,7 @@ Chars 5379 - 5391 [(destruct~a2).] 0. secs (0.u,0.s) Chars 5402 - 5406 [(cbn).] 0. secs (0.u,0.s) Chars 5417 - 5436 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) Chars 5437 - 5449 [reflexivity.] 0. secs (0.u,0.s) -Chars 5452 - 5456 [Qed.] 0.008 secs (0.008u,0.s) +Chars 5452 - 5456 [Qed.] 0.009 secs (0.008u,0.s) Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0.001 secs (0.001u,0.s) Chars 5644 - 5650 [Proof.] 0. secs (0.u,0.s) Chars 5655 - 5667 [reflexivity.] 0. secs (0.u,0.s) @@ -246,7 +246,7 @@ Chars 6168 - 6179 [(repeat~red).] 0. secs (0.u,0.s) Chars 6184 - 6196 [(destruct~a0).] 0. secs (0.u,0.s) Chars 6201 - 6238 [(unfold~cat,~Cat_Kleisli,~inte...] 0. secs (0.u,0.s) Chars 6243 - 6247 [(cbn).] 0. secs (0.u,0.s) -Chars 6252 - 6277 [(repeat~rewrite~bind_bind).] 0.009 secs (0.009u,0.s) +Chars 6252 - 6277 [(repeat~rewrite~bind_bind).] 0.01 secs (0.01u,0.s) Chars 6282 - 6300 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 6305 - 6306 [-] 0. secs (0.u,0.s) Chars 6307 - 6319 [reflexivity.] 0. secs (0.u,0.s) @@ -276,7 +276,7 @@ Chars 6845 - 6871 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) Chars 6876 - 6896 [(eapply~transitivity).] 0. secs (0.u,0.s) Chars 6901 - 6930 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 6935 - 6963 [(apply~iter_dinatural_helper).] 0. secs (0.u,0.s) -Chars 6968 - 6996 [(rewrite~iterative_dinatural).] 0.005 secs (0.004u,0.s) +Chars 6968 - 6996 [(rewrite~iterative_dinatural).] 0.004 secs (0.004u,0.s) Chars 7001 - 7005 [(cbn).] 0. secs (0.u,0.s) Chars 7010 - 7034 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 7039 - 7057 [(rewrite~bind_bind).] 0.007 secs (0.007u,0.s) @@ -296,7 +296,7 @@ Chars 7251 - 7280 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 7289 - 7300 [(repeat~red).] 0. secs (0.u,0.s) Chars 7309 - 7321 [(destruct~a2).] 0. secs (0.u,0.s) Chars 7330 - 7334 [(cbn).] 0. secs (0.u,0.s) -Chars 7335 - 7354 [(rewrite~!bind_bind).] 0.008 secs (0.008u,0.s) +Chars 7335 - 7354 [(rewrite~!bind_bind).] 0.009 secs (0.009u,0.s) Chars 7363 - 7381 [(apply~Proper_bind).] 0. secs (0.u,0.s) Chars 7390 - 7391 [*] 0. secs (0.u,0.s) Chars 7392 - 7404 [reflexivity.] 0. secs (0.u,0.s) @@ -319,8 +319,8 @@ Chars 7719 - 7731 [(unfold~pure).] 0. secs (0.u,0.s) Chars 7740 - 7759 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) Chars 7768 - 7772 [(cbn).] 0. secs (0.u,0.s) Chars 7781 - 7793 [reflexivity.] 0. secs (0.u,0.s) -Chars 7798 - 7802 [Qed.] 0.012 secs (0.012u,0.s) -Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0.001 secs (0.001u,0.s) +Chars 7798 - 7802 [Qed.] 0.014 secs (0.013u,0.s) +Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 7893 - 7899 [Proof.] 0. secs (0.u,0.s) Chars 7904 - 7916 [(destruct~CM).] 0. secs (0.u,0.s) Chars 7921 - 7943 [(unfold~IterCodiagonal).] 0. secs (0.u,0.s) @@ -344,14 +344,14 @@ Chars 8393 - 8405 [reflexivity.] 0. secs (0.u,0.s) Chars 8409 - 8429 [(eapply~transitivity).] 0. secs (0.u,0.s) Chars 8434 - 8463 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 8467 - 8491 [(apply~iterative_natural).] 0. secs (0.u,0.s) -Chars 8495 - 8524 [(rewrite~iterative_codiagonal).] 0.006 secs (0.006u,0.s) +Chars 8495 - 8524 [(rewrite~iterative_codiagonal).] 0.007 secs (0.007u,0.s) Chars 8528 - 8557 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) Chars 8561 - 8585 [(rewrite~internalize_cat).] 0.007 secs (0.007u,0.s) Chars 8645 - 8656 [(repeat~red).] 0. secs (0.u,0.s) Chars 8660 - 8672 [(destruct~a2).] 0. secs (0.u,0.s) Chars 8676 - 8700 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 8701 - 8705 [(cbn).] 0. secs (0.u,0.s) -Chars 8709 - 8734 [(repeat~rewrite~bind_bind).] 0.019 secs (0.019u,0.s) +Chars 8709 - 8734 [(repeat~rewrite~bind_bind).] 0.019 secs (0.018u,0.s) Chars 8738 - 8763 [(unfold~internalize,~pure).] 0. secs (0.u,0.s) Chars 8767 - 8771 [(cbn).] 0. secs (0.u,0.s) Chars 8775 - 8793 [(apply~Proper_bind).] 0. secs (0.u,0.s) @@ -364,9 +364,9 @@ Chars 8878 - 8879 [+] 0. secs (0.u,0.s) Chars 8880 - 8899 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 8908 - 8912 [(cbn).] 0. secs (0.u,0.s) Chars 8913 - 8942 [(unfold~id_,~Id_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 8951 - 8970 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 8951 - 8970 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 8979 - 9003 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 9012 - 9030 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 9012 - 9030 [(rewrite~bind_bind).] 0.003 secs (0.002u,0.s) Chars 9039 - 9058 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 9067 - 9071 [(cbn).] 0. secs (0.u,0.s) Chars 9073 - 9104 [(unfold~inl_,~Inl_Kleisli,~pure).] 0. secs (0.u,0.s) @@ -375,7 +375,7 @@ Chars 9133 - 9145 [reflexivity.] 0. secs (0.u,0.s) Chars 9152 - 9153 [+] 0. secs (0.u,0.s) Chars 9154 - 9173 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 9182 - 9186 [(cbn).] 0. secs (0.u,0.s) -Chars 9195 - 9214 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 9195 - 9214 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) Chars 9223 - 9247 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) Chars 9256 - 9286 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 9287 - 9291 [(cbn).] 0. secs (0.u,0.s) @@ -385,14 +385,14 @@ Chars 9360 - 9372 [reflexivity.] 0. secs (0.u,0.s) Chars 9379 - 9380 [+] 0. secs (0.u,0.s) Chars 9381 - 9400 [(rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) Chars 9409 - 9413 [(cbn).] 0. secs (0.u,0.s) -Chars 9422 - 9441 [(rewrite~bind_ret_l).] 0.005 secs (0.004u,0.s) +Chars 9422 - 9441 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) Chars 9450 - 9474 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 9483 - 9513 [(rewrite~bind_bind,~bind_ret_l).] 0.016 secs (0.01u,0.s) +Chars 9483 - 9513 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) Chars 9514 - 9518 [(cbn).] 0. secs (0.u,0.s) Chars 9527 - 9558 [(unfold~inr_,~Inr_Kleisli,~pure).] 0. secs (0.u,0.s) Chars 9567 - 9586 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) Chars 9595 - 9607 [reflexivity.] 0. secs (0.u,0.s) -Chars 9610 - 9614 [Qed.] 0.021 secs (0.02u,0.001s) +Chars 9610 - 9614 [Qed.] 0.018 secs (0.018u,0.s) Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0.001 secs (0.001u,0.s) Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) Chars 9703 - 9736 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) diff --git a/theories/Basics/Utils.v.timing b/theories/Basics/Utils.v.timing index e9b51e40..6a6354aa 100644 --- a/theories/Basics/Utils.v.timing +++ b/theories/Basics/Utils.v.timing @@ -1,7 +1,7 @@ Chars 0 - 51 [#[global]~Set~Warnings~"-intui...] 0. secs (0.u,0.s) -Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.012 secs (0.006u,0.002s) Chars 90 - 121 [Require~Import~Program.Tactics.] 0. secs (0.u,0.s) -Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.037 secs (0.029u,0.007s) +Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.047 secs (0.027u,0.008s) Chars 155 - 207 [Ltac~inv~H~:=~inversion~H;~cle...] 0. secs (0.u,0.s) Chars 278 - 334 [Lemma~hexploit_mp~:~forall~P~Q...] 0. secs (0.u,0.s) Chars 335 - 341 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeDefinition.v.timing b/theories/Core/ITreeDefinition.v.timing index 19ece456..15c265f6 100644 --- a/theories/Core/ITreeDefinition.v.timing +++ b/theories/Core/ITreeDefinition.v.timing @@ -2,7 +2,7 @@ Chars 63 - 104 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 105 - 150 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 151 - 190 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.004 secs (0.003u,0.001s) -Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.035 secs (0.027u,0.007s) +Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.033 secs (0.026u,0.007s) Chars 267 - 290 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 291 - 315 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 316 - 342 [Set~Primitive~Projections.] 0. secs (0.u,0.s) @@ -24,7 +24,7 @@ Chars 3361 - 3393 [Notation~Ret~x:=~(go~(RetF~x)).] 0. secs (0.u,0.s) Chars 3394 - 3426 [Notation~Tau~t:=~(go~(TauF~t)).] 0. secs (0.u,0.s) Chars 3427 - 3463 [Notation~Vis~e~k:=~(go~(VisF~e...] 0. secs (0.u,0.s) Chars 5126 - 5139 [Module~ITree.] 0. secs (0.u,0.s) -Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0. secs (0.u,0.s) +Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0.001 secs (0.u,0.s) Chars 5899 - 6013 [Definition~bind~{E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 6089 - 6213 [Definition~cat~{E}~{T}~{U}~{V}...] 0. secs (0.u,0.s) Chars 6495 - 6595 [Notation~on_left~lr~l~t:=~matc...] 0. secs (0.u,0.s) @@ -52,4 +52,4 @@ Chars 9838 - 9885 [Ltac~genobs~x~ox~:=~remember~(...] 0. secs (0.u,0.s) Chars 9886 - 9983 [Ltac~~genobs_clear~x~ox~:=~~~g...] 0. secs (0.u,0.s) Chars 9984 - 10239 [Ltac~~simpobs~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) Chars 10275 - 10321 [Ltac~desobs~t~H~:=~destruct~(o...] 0. secs (0.u,0.s) -Chars 10403 - 10603 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0.001 secs (0.u,0.s) +Chars 10403 - 10603 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeMonad.v.timing b/theories/Core/ITreeMonad.v.timing index e2863e98..72ab3d97 100644 --- a/theories/Core/ITreeMonad.v.timing +++ b/theories/Core/ITreeMonad.v.timing @@ -1,4 +1,4 @@ -Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.056 secs (0.045u,0.011s) +Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.053 secs (0.042u,0.011s) Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0.001 secs (0.u,0.s) Chars 353 - 424 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 425 - 431 [Proof.] 0. secs (0.u,0.s) @@ -25,8 +25,8 @@ Chars 822 - 823 [-] 0. secs (0.u,0.s) Chars 824 - 843 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) Chars 844 - 886 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) Chars 891 - 913 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) -Chars 914 - 932 [(rewrite~bind_bind).] 0. secs (0.u,0.s) -Chars 933 - 945 [reflexivity.] 0.019 secs (0.017u,0.001s) +Chars 914 - 932 [(rewrite~bind_bind).] 0.001 secs (0.u,0.s) +Chars 933 - 945 [reflexivity.] 0.018 secs (0.016u,0.001s) Chars 948 - 949 [-] 0. secs (0.u,0.s) Chars 950 - 981 [(unfold~Monad.bind,~Monad_itree).] 0. secs (0.u,0.s) Chars 986 - 993 [(intros).] 0. secs (0.u,0.s) diff --git a/theories/Core/KTree.v.timing b/theories/Core/KTree.v.timing index 94016352..0005424f 100644 --- a/theories/Core/KTree.v.timing +++ b/theories/Core/KTree.v.timing @@ -1,5 +1,5 @@ Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.054 secs (0.043u,0.01s) +Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.052 secs (0.041u,0.01s) Chars 382 - 414 [Implicit~Type~E~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 415 - 441 [Implicit~Types~a~b~:~Type.] 0. secs (0.u,0.s) Chars 443 - 483 [Notation~ktree~E:=~(Kleisli~(i...] 0. secs (0.u,0.s) diff --git a/theories/Core/KTreeFacts.v.timing b/theories/Core/KTreeFacts.v.timing index ed66b86f..f18716bd 100644 --- a/theories/Core/KTreeFacts.v.timing +++ b/theories/Core/KTreeFacts.v.timing @@ -1,6 +1,6 @@ -Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) +Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 97 - 192 [From~Stdlib~Require~Import~Cla...] 0.001 secs (0.001u,0.s) -Chars 194 - 538 [From~ITree~Require~Import~Basi...] 0.055 secs (0.044u,0.01s) +Chars 194 - 538 [From~ITree~Require~Import~Basi...] 0.052 secs (0.041u,0.01s) Chars 539 - 559 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 560 - 589 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 590 - 617 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -8,65 +8,65 @@ Chars 634 - 895 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) Chars 923 - 967 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) Chars 970 - 1157 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) Chars 1159 - 1200 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) -Chars 1203 - 1507 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.023 secs (0.021u,0.002s) +Chars 1203 - 1507 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.022 secs (0.019u,0.002s) Chars 1508 - 1514 [Proof.] 0. secs (0.u,0.s) Chars 1517 - 1529 [coinduction.] 0.002 secs (0.002u,0.s) Chars 1592 - 1599 [(intros).] 0. secs (0.u,0.s) -Chars 1722 - 1743 [(rewrite~!unfold_iter).] 0.071 secs (0.07u,0.s) -Chars 1746 - 1774 [(rewrite~bind_map,~bind_bind).] 0.046 secs (0.036u,0.009s) -Chars 1777 - 1783 [ebind.] 0.008 secs (0.008u,0.s) +Chars 1722 - 1743 [(rewrite~!unfold_iter).] 0.066 secs (0.066u,0.s) +Chars 1746 - 1774 [(rewrite~bind_map,~bind_bind).] 0.042 secs (0.034u,0.008s) +Chars 1777 - 1783 [ebind.] 0.007 secs (0.007u,0.s) Chars 1787 - 1807 [(intros~[a|~b]~_~[]).] 0.001 secs (0.001u,0.s) Chars 1810 - 1811 [-] 0. secs (0.u,0.s) -Chars 1812 - 1829 [(rewrite~bind_tau).] 0.018 secs (0.017u,0.s) +Chars 1812 - 1829 [(rewrite~bind_tau).] 0.016 secs (0.016u,0.s) Chars 1830 - 1835 [taus.] 0. secs (0.u,0.s) Chars 1840 - 1851 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 1855 - 1856 [-] 0. secs (0.u,0.s) -Chars 1857 - 1888 [(rewrite~bind_ret_l,~tau_euttge).] 0.026 secs (0.024u,0.001s) -Chars 1949 - 1959 [(do~2~step).] 0.01 secs (0.01u,0.s) +Chars 1857 - 1888 [(rewrite~bind_ret_l,~tau_euttge).] 0.023 secs (0.022u,0.001s) +Chars 1949 - 1959 [(do~2~step).] 0.01 secs (0.009u,0.s) Chars 1960 - 1969 [revert~b.] 0. secs (0.u,0.s) Chars 1970 - 1982 [coinduction.] 0.002 secs (0.002u,0.s) Chars 1983 - 1990 [(intros).] 0. secs (0.u,0.s) -Chars 1996 - 2017 [(rewrite~!unfold_iter).] 0.035 secs (0.034u,0.s) -Chars 2022 - 2039 [(rewrite~bind_map).] 0.017 secs (0.017u,0.s) -Chars 2044 - 2050 [ebind.] 0.009 secs (0.009u,0.s) +Chars 1996 - 2017 [(rewrite~!unfold_iter).] 0.032 secs (0.032u,0.s) +Chars 2022 - 2039 [(rewrite~bind_map).] 0.016 secs (0.016u,0.s) +Chars 2044 - 2050 [ebind.] 0.008 secs (0.008u,0.s) Chars 2056 - 2084 [(intros~[b'|~c'']~_~[];~cbn).] 0.001 secs (0.001u,0.s) Chars 2089 - 2090 [+] 0. secs (0.u,0.s) Chars 2091 - 2100 [now~taus.] 0. secs (0.u,0.s) Chars 2105 - 2106 [+] 0. secs (0.u,0.s) -Chars 2107 - 2119 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 2120 - 2124 [Qed.] 0.02 secs (0.02u,0.s) +Chars 2107 - 2119 [reflexivity.] 0. secs (0.u,0.s) +Chars 2120 - 2124 [Qed.] 0.019 secs (0.018u,0.s) Chars 2129 - 2523 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) Chars 2533 - 2551 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) Chars 2552 - 2559 [(intros).] 0. secs (0.u,0.s) Chars 2563 - 2597 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 2600 - 2625 [(do~2~rewrite~unfold_iter).] 0.028 secs (0.028u,0.s) +Chars 2600 - 2625 [(do~2~rewrite~unfold_iter).] 0.027 secs (0.027u,0.s) Chars 2628 - 2651 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 2655 - 2665 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 2655 - 2665 [(do~2~step).] 0.016 secs (0.015u,0.s) Chars 2666 - 2682 [(apply~eutt_body).] 0. secs (0.u,0.s) Chars 2686 - 2721 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 2723 - 2727 [Qed.] 0.006 secs (0.006u,0.s) +Chars 2723 - 2727 [Qed.] 0.005 secs (0.005u,0.s) Chars 2729 - 3111 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) Chars 3112 - 3118 [Proof.] 0. secs (0.u,0.s) -Chars 3121 - 3139 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 3121 - 3139 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 3140 - 3147 [(intros).] 0. secs (0.u,0.s) Chars 3151 - 3185 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3188 - 3213 [(do~2~rewrite~unfold_iter).] 0.03 secs (0.03u,0.s) -Chars 3216 - 3222 [ebind.] 0.005 secs (0.005u,0.s) +Chars 3188 - 3213 [(do~2~rewrite~unfold_iter).] 0.028 secs (0.028u,0.s) +Chars 3216 - 3222 [ebind.] 0.004 secs (0.004u,0.s) Chars 3225 - 3242 [(do~2~step;~eauto).] 0.015 secs (0.015u,0.s) Chars 3246 - 3281 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 3283 - 3287 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3283 - 3287 [Qed.] 0.006 secs (0.006u,0.s) Chars 3289 - 3704 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0.001 secs (0.001u,0.s) Chars 3705 - 3711 [Proof.] 0. secs (0.u,0.s) Chars 3714 - 3732 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3733 - 3740 [(intros).] 0. secs (0.u,0.s) Chars 3744 - 3778 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3781 - 3806 [(do~2~rewrite~unfold_iter).] 0.029 secs (0.029u,0.s) +Chars 3781 - 3806 [(do~2~rewrite~unfold_iter).] 0.03 secs (0.029u,0.s) Chars 3809 - 3815 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3819 - 3836 [(do~2~step;~eauto).] 0.016 secs (0.016u,0.s) +Chars 3819 - 3836 [(do~2~step;~eauto).] 0.016 secs (0.015u,0.s) Chars 3840 - 3875 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) Chars 3876 - 3896 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) -Chars 3897 - 3901 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3897 - 3901 [Qed.] 0.005 secs (0.005u,0.s) Chars 3903 - 4109 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) Chars 4110 - 4116 [Proof.] 0. secs (0.u,0.s) Chars 4119 - 4166 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) @@ -80,7 +80,7 @@ Chars 4476 - 4498 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) Chars 4501 - 4514 [unfold_ktree.] 0. secs (0.u,0.s) Chars 4517 - 4550 [(eapply~(eq_itree_iter'~eq);~a...] 0.003 secs (0.003u,0.s) Chars 4553 - 4593 [(intros;~eapply~eqit_mono,~EQ_...] 0.002 secs (0.002u,0.s) -Chars 4596 - 4644 [(intros~[]~_~[];~auto;~econstr...] 0.001 secs (0.001u,0.s) +Chars 4596 - 4644 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) Chars 4645 - 4649 [Qed.] 0.001 secs (0.001u,0.s) Chars 4651 - 4853 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) Chars 4854 - 4860 [Proof.] 0. secs (0.u,0.s) @@ -121,37 +121,37 @@ Chars 6093 - 6106 [unfold_ktree.] 0. secs (0.u,0.s) Chars 6109 - 6119 [revert~a0.] 0. secs (0.u,0.s) Chars 6122 - 6141 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) Chars 6142 - 6149 [(intros).] 0. secs (0.u,0.s) -Chars 6153 - 6181 [(rewrite~2!unfold_iter_ktree).] 0.039 secs (0.039u,0.s) -Chars 6184 - 6203 [(rewrite~!bind_bind).] 0.039 secs (0.039u,0.s) +Chars 6153 - 6181 [(rewrite~2!unfold_iter_ktree).] 0.037 secs (0.037u,0.s) +Chars 6184 - 6203 [(rewrite~!bind_bind).] 0.037 secs (0.037u,0.s) Chars 6206 - 6212 [ebind.] 0.008 secs (0.008u,0.s) Chars 6216 - 6231 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) Chars 6234 - 6235 [-] 0. secs (0.u,0.s) -Chars 6236 - 6267 [(rewrite~bind_tau,~2!bind_ret_l).] 0.06 secs (0.059u,0.s) +Chars 6236 - 6267 [(rewrite~bind_tau,~2!bind_ret_l).] 0.056 secs (0.056u,0.s) Chars 6268 - 6277 [now~taus.] 0. secs (0.u,0.s) Chars 6281 - 6282 [-] 0. secs (0.u,0.s) -Chars 6283 - 6314 [(rewrite~bind_ret_l,~!bind_bind).] 0.041 secs (0.04u,0.s) -Chars 6315 - 6341 [setoid_rewrite~bind_ret_l.] 0.038 secs (0.038u,0.s) +Chars 6283 - 6314 [(rewrite~bind_ret_l,~!bind_bind).] 0.038 secs (0.038u,0.s) +Chars 6315 - 6341 [setoid_rewrite~bind_ret_l.] 0.036 secs (0.036u,0.s) Chars 6342 - 6361 [(rewrite~bind_ret_r).] 0.017 secs (0.017u,0.s) Chars 6366 - 6378 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6379 - 6383 [Qed.] 0.015 secs (0.015u,0.s) +Chars 6379 - 6383 [Qed.] 0.015 secs (0.014u,0.s) Chars 6385 - 6923 [Lemma~iter_dinatural_ktree~{E}...] 0.002 secs (0.002u,0.s) Chars 6924 - 6930 [Proof.] 0. secs (0.u,0.s) Chars 6933 - 6953 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) Chars 6957 - 6975 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) Chars 6976 - 6983 [(intros).] 0. secs (0.u,0.s) -Chars 6987 - 7013 [(rewrite~unfold_iter_ktree).] 0.018 secs (0.018u,0.s) -Chars 7016 - 7034 [(rewrite~bind_bind).] 0.017 secs (0.017u,0.s) -Chars 7037 - 7043 [ebind.] 0.01 secs (0.01u,0.s) +Chars 6987 - 7013 [(rewrite~unfold_iter_ktree).] 0.017 secs (0.017u,0.s) +Chars 7016 - 7034 [(rewrite~bind_bind).] 0.016 secs (0.016u,0.s) +Chars 7037 - 7043 [ebind.] 0.009 secs (0.009u,0.s) Chars 7047 - 7062 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) Chars 7174 - 7175 [-] 0. secs (0.u,0.s) -Chars 7176 - 7193 [(rewrite~bind_tau).] 0.018 secs (0.018u,0.s) +Chars 7176 - 7193 [(rewrite~bind_tau).] 0.018 secs (0.017u,0.s) Chars 7194 - 7199 [taus.] 0. secs (0.u,0.s) -Chars 7200 - 7209 [symmetry.] 0.001 secs (0.001u,0.s) +Chars 7200 - 7209 [symmetry.] 0.001 secs (0.u,0.s) Chars 7210 - 7221 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 7225 - 7226 [-] 0. secs (0.u,0.s) Chars 7227 - 7246 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) Chars 7247 - 7259 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 7261 - 7265 [Qed.] 0.011 secs (0.011u,0.s) +Chars 7261 - 7265 [Qed.] 0.011 secs (0.01u,0.s) Chars 7267 - 7340 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 7341 - 7347 [Proof.] 0. secs (0.u,0.s) Chars 7350 - 7363 [(repeat~intro).] 0. secs (0.u,0.s) @@ -183,40 +183,40 @@ Chars 8090 - 8094 [Qed.] 0.005 secs (0.005u,0.s) Chars 8096 - 8404 [Lemma~iter_codiagonal_ktree~{E...] 0.003 secs (0.003u,0.s) Chars 8405 - 8411 [Proof.] 0. secs (0.u,0.s) Chars 8414 - 8424 [revert~a0.] 0. secs (0.u,0.s) -Chars 8427 - 8445 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) +Chars 8427 - 8445 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 8446 - 8453 [(intros).] 0. secs (0.u,0.s) -Chars 8457 - 8483 [(rewrite~unfold_iter_ktree).] 0.016 secs (0.016u,0.s) -Chars 8486 - 8531 [(rewrite~(unfold_iter_ktree~(f...] 0.022 secs (0.022u,0.s) -Chars 8534 - 8572 [(rewrite~unfold_iter_ktree,~!b...] 0.063 secs (0.062u,0.s) -Chars 8575 - 8581 [ebind.] 0.01 secs (0.009u,0.s) +Chars 8457 - 8483 [(rewrite~unfold_iter_ktree).] 0.015 secs (0.015u,0.s) +Chars 8486 - 8531 [(rewrite~(unfold_iter_ktree~(f...] 0.021 secs (0.021u,0.s) +Chars 8534 - 8572 [(rewrite~unfold_iter_ktree,~!b...] 0.061 secs (0.061u,0.s) +Chars 8575 - 8581 [ebind.] 0.009 secs (0.009u,0.s) Chars 8585 - 8604 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) Chars 8607 - 8608 [-] 0. secs (0.u,0.s) -Chars 8609 - 8638 [(rewrite~bind_ret_l,~bind_tau).] 0.042 secs (0.042u,0.s) +Chars 8609 - 8638 [(rewrite~bind_ret_l,~bind_tau).] 0.04 secs (0.04u,0.s) Chars 8643 - 8648 [taus.] 0. secs (0.u,0.s) Chars 8654 - 8663 [revert~a.] 0. secs (0.u,0.s) Chars 8668 - 8683 [accumulate~acc.] 0.002 secs (0.002u,0.s) Chars 8689 - 8696 [(intros).] 0. secs (0.u,0.s) -Chars 8701 - 8727 [(rewrite~unfold_iter_ktree).] 0.018 secs (0.018u,0.s) -Chars 8732 - 8777 [(rewrite~(unfold_iter_ktree~(f...] 0.02 secs (0.019u,0.s) -Chars 8782 - 8801 [(rewrite~!bind_bind).] 0.039 secs (0.039u,0.s) +Chars 8701 - 8727 [(rewrite~unfold_iter_ktree).] 0.017 secs (0.017u,0.s) +Chars 8732 - 8777 [(rewrite~(unfold_iter_ktree~(f...] 0.02 secs (0.02u,0.s) +Chars 8782 - 8801 [(rewrite~!bind_bind).] 0.039 secs (0.038u,0.s) Chars 8806 - 8812 [ebind.] 0.012 secs (0.012u,0.s) Chars 8818 - 8837 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) Chars 8842 - 8843 [+] 0. secs (0.u,0.s) -Chars 8844 - 8873 [(rewrite~bind_tau,~bind_ret_l).] 0.041 secs (0.04u,0.s) +Chars 8844 - 8873 [(rewrite~bind_tau,~bind_ret_l).] 0.04 secs (0.04u,0.s) Chars 8874 - 8883 [now~taus.] 0. secs (0.u,0.s) Chars 8889 - 8890 [+] 0. secs (0.u,0.s) -Chars 8891 - 8912 [(rewrite~2!bind_ret_l).] 0.041 secs (0.041u,0.s) +Chars 8891 - 8912 [(rewrite~2!bind_ret_l).] 0.042 secs (0.041u,0.s) Chars 8913 - 8922 [now~taus.] 0. secs (0.u,0.s) Chars 8928 - 8929 [+] 0. secs (0.u,0.s) Chars 8930 - 8951 [(rewrite~2!bind_ret_l).] 0.038 secs (0.038u,0.s) Chars 8952 - 8964 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8968 - 8969 [-] 0. secs (0.u,0.s) -Chars 8970 - 8991 [(rewrite~2!bind_ret_l).] 0.039 secs (0.039u,0.s) +Chars 8970 - 8991 [(rewrite~2!bind_ret_l).] 0.039 secs (0.038u,0.s) Chars 8996 - 9005 [now~taus.] 0. secs (0.u,0.s) Chars 9009 - 9010 [-] 0. secs (0.u,0.s) -Chars 9011 - 9032 [(rewrite~2!bind_ret_l).] 0.038 secs (0.037u,0.s) +Chars 9011 - 9032 [(rewrite~2!bind_ret_l).] 0.037 secs (0.036u,0.s) Chars 9037 - 9049 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9051 - 9055 [Qed.] 0.034 secs (0.034u,0.s) +Chars 9051 - 9055 [Qed.] 0.033 secs (0.033u,0.s) Chars 9057 - 9132 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 9133 - 9139 [Proof.] 0. secs (0.u,0.s) Chars 9142 - 9155 [(repeat~intro).] 0. secs (0.u,0.s) @@ -237,40 +237,40 @@ Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) Chars 9715 - 9724 [(intros~*).] 0. secs (0.u,0.s) Chars 9727 - 9740 [unfold_ktree.] 0. secs (0.u,0.s) Chars 9773 - 9784 [(repeat~red).] 0. secs (0.u,0.s) -Chars 9882 - 9901 [coinduction~c'~CIH.] 0.003 secs (0.003u,0.s) +Chars 9882 - 9901 [coinduction~c'~CIH.] 0.004 secs (0.004u,0.s) Chars 9902 - 9909 [(intros).] 0. secs (0.u,0.s) -Chars 9915 - 9934 [(rewrite~bind_ret_l).] 0.022 secs (0.021u,0.s) -Chars 9978 - 9998 [(rewrite~unfold_iter).] 0.02 secs (0.02u,0.s) -Chars 10005 - 10025 [(rewrite~unfold_iter).] 0.023 secs (0.022u,0.s) -Chars 10028 - 10047 [(rewrite~!bind_bind).] 0.041 secs (0.041u,0.s) +Chars 9915 - 9934 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 9978 - 9998 [(rewrite~unfold_iter).] 0.02 secs (0.019u,0.s) +Chars 10005 - 10025 [(rewrite~unfold_iter).] 0.022 secs (0.022u,0.s) +Chars 10028 - 10047 [(rewrite~!bind_bind).] 0.04 secs (0.04u,0.s) Chars 10050 - 10056 [ebind.] 0.008 secs (0.008u,0.s) Chars 10102 - 10124 [(intros~[xa|~xb]~?~<-).] 0.002 secs (0.002u,0.s) Chars 10127 - 10128 [-] 0. secs (0.u,0.s) -Chars 10192 - 10213 [(rewrite~!bind_ret_l).] 0.025 secs (0.025u,0.s) -Chars 10218 - 10235 [(rewrite~bind_tau).] 0.02 secs (0.02u,0.s) +Chars 10192 - 10213 [(rewrite~!bind_ret_l).] 0.024 secs (0.024u,0.s) +Chars 10218 - 10235 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) Chars 10240 - 10245 [taus.] 0. secs (0.u,0.s) Chars 10251 - 10271 [specialize~(CIH~xa).] 0. secs (0.u,0.s) -Chars 10276 - 10285 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 10291 - 10313 [(rewrite~<-~bind_ret_l).] 0.016 secs (0.016u,0.s) +Chars 10276 - 10285 [symmetry.] 0. secs (0.u,0.s) +Chars 10291 - 10313 [(rewrite~<-~bind_ret_l).] 0.015 secs (0.015u,0.s) Chars 10314 - 10323 [symmetry.] 0.001 secs (0.001u,0.s) Chars 10329 - 10339 [(apply~CIH).] 0. secs (0.u,0.s) Chars 10343 - 10344 [-] 0. secs (0.u,0.s) -Chars 10381 - 10402 [(rewrite~!bind_ret_l).] 0.045 secs (0.045u,0.s) +Chars 10381 - 10402 [(rewrite~!bind_ret_l).] 0.042 secs (0.042u,0.s) Chars 10640 - 10659 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) Chars 10664 - 10674 [(do~2~step).] 0.011 secs (0.011u,0.s) Chars 10680 - 10694 [(generalize~xb).] 0. secs (0.u,0.s) Chars 10699 - 10720 [coinduction~c''~CIH'.] 0.003 secs (0.003u,0.s) Chars 10721 - 10728 [(intros).] 0. secs (0.u,0.s) -Chars 10780 - 10802 [(rewrite~2!unfold_iter).] 0.038 secs (0.038u,0.s) -Chars 10808 - 10827 [(rewrite~!bind_bind).] 0.049 secs (0.049u,0.s) -Chars 10878 - 10884 [ebind.] 0.009 secs (0.009u,0.s) -Chars 10889 - 10912 [(intros~[xb'|~xc]~?~<-).] 0.002 secs (0.002u,0.s) +Chars 10780 - 10802 [(rewrite~2!unfold_iter).] 0.039 secs (0.038u,0.s) +Chars 10808 - 10827 [(rewrite~!bind_bind).] 0.049 secs (0.048u,0.s) +Chars 10878 - 10884 [ebind.] 0.01 secs (0.009u,0.s) +Chars 10889 - 10912 [(intros~[xb'|~xc]~?~<-).] 0.003 secs (0.003u,0.s) Chars 10917 - 10918 [+] 0. secs (0.u,0.s) -Chars 10963 - 10983 [(rewrite~!bind_ret_l).] 0.074 secs (0.074u,0.s) +Chars 10963 - 10983 [(rewrite~!bind_ret_l).] 0.077 secs (0.075u,0.001s) Chars 10990 - 10995 [taus.] 0. secs (0.u,0.s) Chars 11002 - 11013 [(apply~CIH').] 0. secs (0.u,0.s) Chars 11020 - 11021 [+] 0. secs (0.u,0.s) -Chars 11022 - 11042 [(rewrite~!bind_ret_l).] 0.047 secs (0.047u,0.s) +Chars 11022 - 11042 [(rewrite~!bind_ret_l).] 0.046 secs (0.046u,0.s) Chars 11049 - 11061 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11063 - 11067 [Qed.] 0.038 secs (0.037u,0.s) +Chars 11063 - 11067 [Qed.] 0.037 secs (0.037u,0.s) Chars 11069 - 11088 [End~KTreeIterative.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/Subevent.v.timing b/theories/Core/Subevent.v.timing index f16739ca..52995fc7 100644 --- a/theories/Core/Subevent.v.timing +++ b/theories/Core/Subevent.v.timing @@ -1,4 +1,4 @@ -Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.044 secs (0.035u,0.008s) +Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.044 secs (0.035u,0.009s) Chars 665 - 740 [Notation~Subevent~E~F:=~(@ReSu...] 0. secs (0.u,0.s) Chars 741 - 826 [Notation~"E~-<~F"~:=~(Subevent...] 0. secs (0.u,0.s) Chars 828 - 902 [Definition~subevent~{E~F~:~Typ...] 0. secs (0.u,0.s) @@ -26,7 +26,7 @@ Chars 2127 - 2170 [Notation~vis~e~k:=~(Vis~(subev...] 0. secs (0.u,0.s) Chars 2236 - 2289 [Notation~trigger~e:=~(ITree.tr...] 0. secs (0.u,0.s) Chars 2442 - 2483 [Class~Embeddable~U~V~:=~~~~~em...] 0. secs (0.u,0.s) Chars 2485 - 2685 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) -Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0.001 secs (0.001u,0.s) +Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0.001 secs (0.u,0.s) Chars 2939 - 3043 [Lemma~resum_to_subevent~:~~~fo...] 0. secs (0.u,0.s) Chars 3044 - 3050 [Proof.] 0. secs (0.u,0.s) Chars 3053 - 3073 [(intros;~reflexivity).] 0. secs (0.u,0.s) @@ -40,7 +40,7 @@ Chars 3431 - 3437 [Proof.] 0. secs (0.u,0.s) Chars 3440 - 3452 [reflexivity.] 0. secs (0.u,0.s) Chars 3453 - 3457 [Qed.] 0. secs (0.u,0.s) Chars 3459 - 3540 [#[global]~Instance~subevent_vo...] 0. secs (0.u,0.s) -Chars 3542 - 3638 [Lemma~subevent_left~{E}~{F}~{R...] 0.001 secs (0.u,0.s) +Chars 3542 - 3638 [Lemma~subevent_left~{E}~{F}~{R...] 0. secs (0.u,0.s) Chars 3639 - 3645 [Proof.] 0. secs (0.u,0.s) Chars 3648 - 3660 [reflexivity.] 0. secs (0.u,0.s) Chars 3661 - 3665 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq.v.timing b/theories/Eq.v.timing index 336da460..4cddcb85 100644 --- a/theories/Eq.v.timing +++ b/theories/Eq.v.timing @@ -1 +1 @@ -Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.205 secs (0.179u,0.024s) +Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.214 secs (0.182u,0.031s) diff --git a/theories/Eq/EqAxiom.v.timing b/theories/Eq/EqAxiom.v.timing index c9956dfd..82521964 100644 --- a/theories/Eq/EqAxiom.v.timing +++ b/theories/Eq/EqAxiom.v.timing @@ -1,4 +1,4 @@ -Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.053 secs (0.043u,0.01s) +Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.054 secs (0.042u,0.011s) Chars 492 - 604 [Axiom~~~(bisimulation_is_eq~:~...] 0. secs (0.u,0.s) Chars 606 - 666 [Lemma~itree_eta_~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) Chars 667 - 673 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Eqit.v.timing b/theories/Eq/Eqit.v.timing index 43f06cc6..de44a501 100644 --- a/theories/Eq/Eqit.v.timing +++ b/theories/Eq/Eqit.v.timing @@ -1,6 +1,6 @@ -Chars 665 - 796 [From~Stdlib~Require~Import~Str...] 0.013 secs (0.009u,0.003s) -Chars 798 - 834 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 933 - 1073 [From~ITree~Require~Import~Basi...] 0.035 secs (0.028u,0.007s) +Chars 665 - 796 [From~Stdlib~Require~Import~Str...] 0.018 secs (0.01u,0.004s) +Chars 798 - 834 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) +Chars 933 - 1073 [From~ITree~Require~Import~Basi...] 0.033 secs (0.026u,0.007s) Chars 1076 - 1105 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 2696 - 2740 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) Chars 2742 - 2755 [Section~eqit.] 0. secs (0.u,0.s) @@ -16,7 +16,7 @@ Chars 5101 - 5114 [(unfold~eqit_).] 0. secs (0.u,0.s) Chars 5115 - 5125 [(intros~IN).] 0. secs (0.u,0.s) Chars 5130 - 5162 [(induction~IN;~constructor;~au...] 0.002 secs (0.001u,0.s) Chars 5167 - 5168 [-] 0. secs (0.u,0.s) -Chars 5169 - 5186 [(apply~Hsim;~auto).] 0.019 secs (0.017u,0.002s) +Chars 5169 - 5186 [(apply~Hsim;~auto).] 0.018 secs (0.016u,0.002s) Chars 5191 - 5192 [-] 0. secs (0.u,0.s) Chars 5193 - 5220 [(intros~?;~apply~Hsim;~auto).] 0. secs (0.u,0.s) Chars 5223 - 5227 [Qed.] 0.001 secs (0.001u,0.s) @@ -68,1764 +68,1764 @@ Chars 10016 - 10082 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) Chars 10083 - 10154 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) Chars 10155 - 10226 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) Chars 10228 - 10252 [Ltac~icbn~:=~repeat~red.] 0. secs (0.u,0.s) -Chars 10254 - 10303 [Ltac~icbn_in~h~:=~cbn[eqit_mon...] 0. secs (0.u,0.s) -Chars 10305 - 10520 [Ltac~~refold~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) -Chars 10522 - 10757 [Ltac~~refold_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 10759 - 11855 [Ltac~~to_mon_core~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 11857 - 12041 [Ltac~~to_mon~:=~~~let~dummy~:=...] 0. secs (0.u,0.s) -Chars 12044 - 12519 [Ltac~~to_mon_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 12579 - 12638 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 12639 - 12714 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 12716 - 12770 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) -Chars 12771 - 12825 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) -Chars 12826 - 12882 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 12883 - 12933 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 12984 - 13128 [#[global]~Ltac~~step~:=~~~matc...] 0. secs (0.u,0.s) -Chars 13231 - 13403 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 13406 - 13474 [Tactic~Notation~"unstep"~:=~(i...] 0. secs (0.u,0.s) -Chars 13475 - 13579 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) -Chars 13581 - 13662 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) -Chars 13664 - 13779 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) -Chars 13781 - 13882 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) -Chars 13885 - 13995 [Tactic~Notation~"icoinduction"...] 0. secs (0.u,0.s) -Chars 14054 - 14103 [Ltac~sinv~H~:=~repeat~red~in~H...] 0. secs (0.u,0.s) -Chars 14241 - 14509 [Ltac~~solve_eqitF~:=~~~iunfold...] 0. secs (0.u,0.s) -Chars 14748 - 14783 [Ltac~taul~:=~apply~EqTauL;~[~a...] 0. secs (0.u,0.s) -Chars 14784 - 14819 [Ltac~taur~:=~apply~EqTauR;~[~a...] 0. secs (0.u,0.s) -Chars 14821 - 14846 [Ltac~taus~:=~apply~EqTau.] 0. secs (0.u,0.s) -Chars 14850 - 14877 [Module~step_notation_tests.] 0. secs (0.u,0.s) -Chars 14881 - 14917 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 14920 - 14952 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 14955 - 14996 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 14999 - 15035 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 15038 - 15074 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 15077 - 15136 [#[local]~Parameter~(eqc~:~Chai...] 0. secs (0.u,0.s) -Chars 15139 - 15174 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 15177 - 15215 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 15218 - 15253 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 15256 - 15294 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 15297 - 15331 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) -Chars 15334 - 15369 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 15412 - 15429 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 15478 - 15483 [step.] 0.001 secs (0.001u,0.s) -Chars 15484 - 15491 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15496 - 15501 [step.] 0.001 secs (0.001u,0.s) -Chars 15506 - 15516 [Fail~step.] 0. secs (0.u,0.s) -Chars 15522 - 15529 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15535 - 15547 [Fail~unstep.] 0.002 secs (0.001u,0.s) -Chars 15554 - 15626 [(assert~(eqitF~eq~false~false~...] 0. secs (0.u,0.s) -Chars 15631 - 15636 [step.] 0.003 secs (0.003u,0.s) -Chars 15667 - 15672 [step.] 0.035 secs (0.034u,0.s) -Chars 15673 - 15680 [unstep.] 0.003 secs (0.003u,0.s) -Chars 15681 - 15693 [Fail~unstep.] 0.002 secs (0.002u,0.s) -Chars 15694 - 15699 [step.] 0.001 secs (0.001u,0.s) -Chars 15700 - 15710 [Fail~step.] 0. secs (0.u,0.s) -Chars 15711 - 15735 [now~unstep;~apply~EQ2.] 0.003 secs (0.003u,0.s) -Chars 15741 - 15772 [(assert~((elem~eqc~_~_~eq)~v~w)).] 0. secs (0.u,0.s) -Chars 15777 - 15782 [step.] 0.002 secs (0.002u,0.s) -Chars 15783 - 15788 [step.] 0.003 secs (0.003u,0.s) -Chars 15820 - 15825 [step.] 0.001 secs (0.001u,0.s) -Chars 15826 - 15833 [unstep.] 0.004 secs (0.003u,0.s) -Chars 15834 - 15846 [Fail~unstep.] 0.002 secs (0.002u,0.s) -Chars 15847 - 15852 [step.] 0.001 secs (0.001u,0.s) -Chars 15853 - 15863 [Fail~step.] 0. secs (0.u,0.s) -Chars 15864 - 15888 [now~unstep;~apply~EQ2.] 0.007 secs (0.006u,0.001s) -Chars 15894 - 15906 [to_mon~in~H.] 0. secs (0.u,0.s) -Chars 15910 - 15916 [Abort.] 0. secs (0.u,0.s) -Chars 15919 - 15943 [End~step_notation_tests.] 0. secs (0.u,0.s) -Chars 15946 - 16244 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) -Chars 16245 - 16251 [Proof.] 0. secs (0.u,0.s) -Chars 16254 - 16561 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) -Chars 16564 - 16565 [-] 0. secs (0.u,0.s) -Chars 16566 - 16578 [(left;~eauto).] 0.001 secs (0.u,0.s) -Chars 16581 - 16582 [-] 0. secs (0.u,0.s) -Chars 16583 - 16602 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 16603 - 16607 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16609 - 16910 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.001u,0.s) -Chars 16911 - 16917 [Proof.] 0. secs (0.u,0.s) -Chars 16920 - 17139 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) -Chars 17142 - 17143 [-] 0. secs (0.u,0.s) -Chars 17144 - 17156 [(left;~eauto).] 0. secs (0.u,0.s) -Chars 17159 - 17160 [-] 0. secs (0.u,0.s) -Chars 17161 - 17179 [(destruct~i;~eauto).] 0.001 secs (0.001u,0.s) -Chars 17180 - 17184 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17186 - 17435 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.001u,0.s) -Chars 17436 - 17442 [Proof.] 0. secs (0.u,0.s) -Chars 17445 - 17680 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) -Chars 17683 - 17684 [-] 0. secs (0.u,0.s) -Chars 17685 - 17712 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) -Chars 17715 - 17716 [-] 0. secs (0.u,0.s) -Chars 17717 - 17737 [(destruct~i;~exact~I).] 0. secs (0.u,0.s) -Chars 17738 - 17742 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17744 - 17937 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0.001 secs (0.u,0.s) -Chars 17938 - 17944 [Proof.] 0. secs (0.u,0.s) -Chars 17947 - 17956 [(intros~H).] 0. secs (0.u,0.s) -Chars 17957 - 17981 [dependent~destruction~H.] 0.006 secs (0.004u,0.001s) -Chars 17982 - 17993 [assumption.] 0. secs (0.u,0.s) -Chars 17994 - 17998 [Qed.] 0.003 secs (0.002u,0.s) -Chars 18000 - 18240 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0.001 secs (0.001u,0.s) -Chars 18241 - 18247 [Proof.] 0. secs (0.u,0.s) -Chars 18250 - 18296 [(destruct~p;~intros~<-;~cbn;~c...] 0.019 secs (0.018u,0.001s) -Chars 18297 - 18301 [Qed.] 0.002 secs (0.002u,0.s) -Chars 18303 - 18432 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0.001 secs (0.001u,0.s) -Chars 18433 - 18439 [Proof.] 0. secs (0.u,0.s) -Chars 18442 - 18481 [(intros~!;~induction~H;~eauto~...] 0.001 secs (0.001u,0.s) -Chars 18482 - 18486 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18488 - 18640 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) -Chars 18641 - 18647 [Proof.] 0. secs (0.u,0.s) -Chars 18650 - 18658 [intros~!.] 0. secs (0.u,0.s) -Chars 18659 - 18665 [subst.] 0. secs (0.u,0.s) -Chars 18666 - 18717 [(split;~unfold~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 18720 - 18814 [all:~~(induction~H0;~auto~with...] 0.004 secs (0.004u,0.s) -Chars 18815 - 18819 [Qed.] 0.002 secs (0.002u,0.s) -Chars 18821 - 18986 [#[global]~Instance~eqitF_Prope...] 0.001 secs (0.u,0.s) -Chars 18987 - 18993 [Proof.] 0. secs (0.u,0.s) -Chars 18996 - 19004 [intros~!.] 0. secs (0.u,0.s) -Chars 19005 - 19011 [subst.] 0. secs (0.u,0.s) -Chars 19012 - 19026 [(split;~intros).] 0. secs (0.u,0.s) -Chars 19029 - 19098 [all:~(induction~H0;~auto~with~...] 0.002 secs (0.002u,0.s) -Chars 19099 - 19103 [Qed.] 0.002 secs (0.002u,0.s) -Chars 19105 - 19249 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) -Chars 19250 - 19277 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) -Chars 19280 - 19288 [intros~!.] 0. secs (0.u,0.s) -Chars 19289 - 19295 [subst.] 0. secs (0.u,0.s) -Chars 19299 - 19305 [split.] 0. secs (0.u,0.s) -Chars 19308 - 19309 [-] 0. secs (0.u,0.s) -Chars 19310 - 19325 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 19326 - 19345 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) -Chars 19346 - 19353 [(intros).] 0. secs (0.u,0.s) -Chars 19358 - 19369 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19374 - 19401 [hinduction~H0~before~CIH~...] 0.004 secs (0.004u,0.s) -Chars 19406 - 19432 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 19436 - 19437 [-] 0. secs (0.u,0.s) -Chars 19438 - 19453 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 19454 - 19473 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) -Chars 19474 - 19481 [(intros).] 0. secs (0.u,0.s) -Chars 19488 - 19499 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19504 - 19531 [hinduction~H0~before~CIH~...] 0.004 secs (0.003u,0.s) -Chars 19537 - 19563 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 19565 - 19569 [Qed.] 0.009 secs (0.009u,0.s) -Chars 19572 - 19713 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 19714 - 19720 [Proof.] 0. secs (0.u,0.s) -Chars 19723 - 19756 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 19757 - 19761 [Qed.] 0. secs (0.u,0.s) -Chars 19763 - 19900 [#[global]~Instance~euttge_Prop...] 0. secs (0.u,0.s) -Chars 19901 - 19907 [Proof.] 0. secs (0.u,0.s) -Chars 19910 - 19943 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 19944 - 19948 [Qed.] 0. secs (0.u,0.s) -Chars 19950 - 20083 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 20084 - 20090 [Proof.] 0. secs (0.u,0.s) -Chars 20093 - 20126 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 20127 - 20131 [Qed.] 0. secs (0.u,0.s) -Chars 20576 - 20727 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 20728 - 20734 [Proof.] 0. secs (0.u,0.s) -Chars 20761 - 20780 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 20781 - 20796 [(intros~u~v~euv).] 0. secs (0.u,0.s) -Chars 20864 - 20876 [step~in~euv.] 0. secs (0.u,0.s) -Chars 20942 - 20974 [(induction~euv;~eauto~with~itr...] 0.004 secs (0.004u,0.s) -Chars 20975 - 20979 [Qed.] 0.004 secs (0.004u,0.s) -Chars 20981 - 21159 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 21160 - 21166 [Proof.] 0. secs (0.u,0.s) -Chars 21169 - 21176 [(intros).] 0. secs (0.u,0.s) -Chars 21177 - 21197 [now~apply~eqit_flip.] 0. secs (0.u,0.s) -Chars 21200 - 21204 [Qed.] 0. secs (0.u,0.s) -Chars 21206 - 21241 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) -Chars 21277 - 21450 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 21451 - 21457 [Proof.] 0. secs (0.u,0.s) -Chars 21460 - 21468 [intros~!.] 0. secs (0.u,0.s) -Chars 21472 - 21486 [revert~a~a0~H.] 0. secs (0.u,0.s) -Chars 21490 - 21517 [(icoinduction~c~CIH;~intros).] 0.002 secs (0.002u,0.s) -Chars 21522 - 21532 [step~in~H.] 0. secs (0.u,0.s) -Chars 21533 - 21563 [(induction~H;~eauto~with~itree).] 0.005 secs (0.005u,0.s) -Chars 21566 - 21579 [econstructor.] 0. secs (0.u,0.s) -Chars 21580 - 21595 [now~apply~LERR.] 0. secs (0.u,0.s) -Chars 21598 - 21602 [Qed.] 0.004 secs (0.004u,0.s) -Chars 21701 - 21718 [Section~eqit_gen.] 0. secs (0.u,0.s) -Chars 21771 - 21830 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 22202 - 22352 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 22353 - 22359 [Proof.] 0. secs (0.u,0.s) -Chars 22364 - 22368 [(red).] 0. secs (0.u,0.s) -Chars 22369 - 22411 [(destruct~x;~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 22412 - 22416 [Qed.] 0. secs (0.u,0.s) -Chars 22467 - 22611 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 22612 - 22618 [Proof.] 0. secs (0.u,0.s) -Chars 22623 - 22627 [(red).] 0. secs (0.u,0.s) -Chars 22628 - 22667 [(induction~3;~constructor;~sub...] 0.001 secs (0.001u,0.s) -Chars 22668 - 22672 [Qed.] 0. secs (0.u,0.s) -Chars 22722 - 22876 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 22877 - 22883 [Proof.] 0. secs (0.u,0.s) -Chars 22888 - 22912 [(intros~?~?~t~u~v~EQ1~EQ2).] 0. secs (0.u,0.s) -Chars 22917 - 22962 [(inv~EQ1;~try~now~inv~EQ2;~eau...] 0.052 secs (0.052u,0.s) -Chars 22967 - 23035 [(apply~eqitF_inv_VisF_l~in~EQ2...] 0.001 secs (0.001u,0.s) -Chars 23040 - 23059 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 23060 - 23064 [Qed.] 0.005 secs (0.005u,0.s) -Chars 23173 - 23264 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 23265 - 23271 [Proof.] 0. secs (0.u,0.s) -Chars 23274 - 23286 [(red;~intros).] 0. secs (0.u,0.s) -Chars 23289 - 23298 [revert~x.] 0. secs (0.u,0.s) -Chars 23299 - 23318 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 23319 - 23325 [intro.] 0. secs (0.u,0.s) -Chars 23329 - 23362 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) -Chars 23363 - 23367 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23369 - 23454 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 23455 - 23461 [Proof.] 0. secs (0.u,0.s) -Chars 23464 - 23484 [(intros~Hsym~x~y~Hxy).] 0. secs (0.u,0.s) -Chars 23487 - 23503 [(apply~eqit_flip).] 0. secs (0.u,0.s) -Chars 23506 - 23558 [(eapply~eqit_mono;~[~auto~|~au...] 0.002 secs (0.002u,0.s) -Chars 23560 - 23564 [Qed.] 0. secs (0.u,0.s) -Chars 23566 - 23694 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 23695 - 23701 [Proof.] 0. secs (0.u,0.s) -Chars 23704 - 23717 [(red;~intro~x).] 0. secs (0.u,0.s) -Chars 23720 - 23740 [(apply~(gfp_chain~c)).] 0.001 secs (0.001u,0.s) -Chars 23743 - 23755 [reflexivity.] 0. secs (0.u,0.s) -Chars 23756 - 23760 [Qed.] 0. secs (0.u,0.s) -Chars 23762 - 23919 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) -Chars 23920 - 23926 [Proof.] 0. secs (0.u,0.s) -Chars 23929 - 23949 [(intros~T~HT~x~y~Hxy).] 0. secs (0.u,0.s) -Chars 23952 - 23964 [(intros~z~Hz).] 0. secs (0.u,0.s) -Chars 23965 - 23980 [(apply~HT;~auto).] 0. secs (0.u,0.s) -Chars 23981 - 23985 [Qed.] 0. secs (0.u,0.s) -Chars 23987 - 24109 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 24110 - 24116 [Proof.] 0. secs (0.u,0.s) -Chars 24119 - 24128 [revert~c.] 0. secs (0.u,0.s) -Chars 24129 - 24167 [(apply~(tower~inf_closed_Symme...] 0. secs (0.u,0.s) -Chars 24170 - 24184 [(intros~c~Hsym).] 0. secs (0.u,0.s) -Chars 24185 - 24193 [intros~!.] 0. secs (0.u,0.s) -Chars 24194 - 24222 [(apply~Symmetric_eqitF;~auto).] 0. secs (0.u,0.s) -Chars 24223 - 24227 [Qed.] 0. secs (0.u,0.s) -Chars 24229 - 24242 [End~eqit_gen.] 0. secs (0.u,0.s) -Chars 24245 - 24262 [Section~eqit_inv.] 0. secs (0.u,0.s) -Chars 24266 - 24340 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 24343 - 24392 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) -Chars 24396 - 24862 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) -Chars 24866 - 24961 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 24964 - 24970 [Proof.] 0. secs (0.u,0.s) -Chars 24975 - 24986 [(intros~*~H).] 0. secs (0.u,0.s) -Chars 24991 - 25001 [step~in~H.] 0. secs (0.u,0.s) -Chars 25006 - 25011 [step.] 0.001 secs (0.001u,0.s) -Chars 25019 - 25047 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) -Chars 25052 - 25074 [(induction~H;~inv~Heqi).] 0.008 secs (0.008u,0.s) -Chars 25081 - 25082 [-] 0. secs (0.u,0.s) -Chars 25083 - 25095 [step~in~REL.] 0. secs (0.u,0.s) -Chars 25096 - 25105 [now~taur.] 0. secs (0.u,0.s) -Chars 25110 - 25111 [-] 0. secs (0.u,0.s) -Chars 25112 - 25117 [taur.] 0. secs (0.u,0.s) -Chars 25118 - 25136 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25140 - 25144 [Qed.] 0.003 secs (0.003u,0.s) -Chars 25149 - 25244 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 25247 - 25253 [Proof.] 0. secs (0.u,0.s) -Chars 25258 - 25269 [(intros~*~H).] 0. secs (0.u,0.s) -Chars 25274 - 25284 [step~in~H.] 0. secs (0.u,0.s) -Chars 25289 - 25294 [step.] 0.001 secs (0.001u,0.s) -Chars 25302 - 25330 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) -Chars 25335 - 25357 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) -Chars 25364 - 25365 [-] 0. secs (0.u,0.s) -Chars 25366 - 25378 [step~in~REL.] 0. secs (0.u,0.s) -Chars 25379 - 25388 [now~taul.] 0. secs (0.u,0.s) -Chars 25394 - 25395 [-] 0. secs (0.u,0.s) -Chars 25396 - 25401 [taul.] 0. secs (0.u,0.s) -Chars 25402 - 25420 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25424 - 25428 [Qed.] 0.003 secs (0.003u,0.s) -Chars 25433 - 25621 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0.001 secs (0.001u,0.s) -Chars 25624 - 25630 [Proof.] 0. secs (0.u,0.s) -Chars 25635 - 25642 [(intros).] 0. secs (0.u,0.s) -Chars 25647 - 25673 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 25679 - 25705 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 25711 - 25738 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 25743 - 25802 [(induction~H;~intros~t1'~t2'~H...] 0.029 secs (0.029u,0.s) -Chars 25807 - 25808 [-] 0. secs (0.u,0.s) -Chars 25809 - 25832 [(inv~Heqot1;~inv~Heqot2).] 0.01 secs (0.01u,0.s) -Chars 25833 - 25844 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 25851 - 25852 [-] 0. secs (0.u,0.s) -Chars 25853 - 25880 [(inv~H;~inv~Heqot1;~simpobs).] 0.053 secs (0.052u,0.s) -Chars 25888 - 25889 [+] 0. secs (0.u,0.s) -Chars 25890 - 25895 [taul.] 0. secs (0.u,0.s) -Chars 25896 - 25912 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 25921 - 25922 [+] 0. secs (0.u,0.s) -Chars 25923 - 25928 [taul.] 0. secs (0.u,0.s) -Chars 25929 - 25947 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25954 - 25955 [-] 0. secs (0.u,0.s) -Chars 25956 - 25983 [(inv~H;~inv~Heqot2;~simpobs).] 0.05 secs (0.049u,0.s) -Chars 25991 - 25992 [+] 0. secs (0.u,0.s) -Chars 25993 - 25998 [taur.] 0. secs (0.u,0.s) -Chars 25999 - 26015 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 26023 - 26024 [+] 0. secs (0.u,0.s) -Chars 26025 - 26030 [taur.] 0. secs (0.u,0.s) -Chars 26031 - 26049 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 26053 - 26057 [Qed.] 0.011 secs (0.011u,0.s) -Chars 26062 - 26157 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) -Chars 26160 - 26166 [Proof.] 0. secs (0.u,0.s) -Chars 26171 - 26178 [(intros).] 0. secs (0.u,0.s) -Chars 26183 - 26199 [(step~in~H;~step).] 0.002 secs (0.002u,0.s) -Chars 26204 - 26228 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) -Chars 26232 - 26236 [Qed.] 0.001 secs (0.001u,0.s) -Chars 26241 - 26300 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0.001 secs (0.001u,0.s) -Chars 26303 - 26309 [Proof.] 0. secs (0.u,0.s) -Chars 26314 - 26334 [(intros~H;~step~in~H).] 0. secs (0.u,0.s) -Chars 26339 - 26422 [(genobs~t1~ot1;~genobs~t2~ot2;...] 0. secs (0.u,0.s) -Chars 26427 - 26487 [(destruct~H;~intros~*~E1~E2;~r...] 0.003 secs (0.003u,0.s) -Chars 26492 - 26493 [-] 0. secs (0.u,0.s) -Chars 26494 - 26521 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) -Chars 26526 - 26527 [-] 0. secs (0.u,0.s) -Chars 26528 - 26547 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) -Chars 26548 - 26561 [(destruct~ot2).] 0. secs (0.u,0.s) -Chars 26568 - 26631 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) -Chars 26638 - 26706 [1:~(apply~eqit_inv_Tau_r;~step...] 0.001 secs (0.001u,0.s) -Chars 26711 - 26712 [-] 0. secs (0.u,0.s) -Chars 26713 - 26732 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) -Chars 26733 - 26746 [(destruct~ot1).] 0. secs (0.u,0.s) -Chars 26753 - 26816 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) -Chars 26823 - 26891 [1:~(apply~eqit_inv_Tau_l;~step...] 0.002 secs (0.002u,0.s) -Chars 26894 - 26898 [Qed.] 0.009 secs (0.009u,0.s) -Chars 26900 - 27085 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) -Chars 27086 - 27092 [Proof.] 0. secs (0.u,0.s) -Chars 27095 - 27113 [(intros~om1~Heq~H2).] 0. secs (0.u,0.s) -Chars 27177 - 27223 [(induction~H2;~taul;~simpobs;~...] 0.006 secs (0.006u,0.s) -Chars 27225 - 27229 [Qed.] 0.001 secs (0.001u,0.s) -Chars 27232 - 27245 [End~eqit_inv.] 0. secs (0.u,0.s) -Chars 27247 - 27291 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) -Chars 27292 - 27336 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) -Chars 27337 - 27385 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) -Chars 27387 - 27515 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) -Chars 27516 - 27522 [Proof.] 0. secs (0.u,0.s) -Chars 27525 - 27547 [(intros~EQ;~step~in~EQ).] 0. secs (0.u,0.s) -Chars 27550 - 27583 [(desobs~t~ot;~eauto;~inv~EQ;~e...] 0.01 secs (0.01u,0.s) -Chars 27584 - 27588 [Qed.] 0.005 secs (0.005u,0.s) -Chars 27590 - 27763 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 27764 - 27770 [Proof.] 0. secs (0.u,0.s) -Chars 27773 - 27783 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 27786 - 27808 [(step~in~EQ;~cbn~in~EQ).] 0. secs (0.u,0.s) -Chars 27811 - 27836 [(genobs~t~ot;~genobs~u~ou).] 0. secs (0.u,0.s) -Chars 27839 - 27862 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) -Chars 27865 - 27896 [(induction~EQ;~intros;~try~easy).] 0.013 secs (0.012u,0.s) -Chars 27899 - 27900 [-] 0. secs (0.u,0.s) -Chars 27901 - 27915 [(inv~H;~inv~H0).] 0.002 secs (0.002u,0.s) -Chars 27919 - 27920 [-] 0. secs (0.u,0.s) -Chars 27921 - 27936 [(inv~H;~simpobs).] 0.006 secs (0.006u,0.s) -Chars 27941 - 27985 [(edestruct~euttge_tau_r_inv;~[...] 0.004 secs (0.004u,0.s) -Chars 27990 - 27995 [step.] 0.001 secs (0.001u,0.s) -Chars 28000 - 28008 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 28013 - 28018 [taul.] 0. secs (0.u,0.s) -Chars 28023 - 28030 [unstep.] 0.003 secs (0.003u,0.s) -Chars 28035 - 28054 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 28055 - 28059 [Qed.] 0.007 secs (0.007u,0.s) -Chars 28062 - 28200 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) -Chars 28203 - 28395 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) -Chars 28400 - 28525 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) -Chars 28528 - 28584 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) -Chars 28585 - 28640 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) -Chars 29369 - 29531 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) -Chars 29532 - 29560 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 29563 - 29601 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 29604 - 29620 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 29623 - 29688 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 29693 - 29703 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 29704 - 29714 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 29720 - 29749 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 29869 - 29908 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 29913 - 29934 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 29939 - 29940 [+] 0. secs (0.u,0.s) -Chars 29941 - 29967 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 29974 - 29986 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 29993 - 30007 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 30014 - 30029 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30036 - 30071 [(hinduction~EQx~before~ox;~try...] 0.055 secs (0.055u,0.s) -Chars 30078 - 30079 [*] 0. secs (0.u,0.s) -Chars 30080 - 30106 [(intros;~subst;~inv~Heqor1).] 0.008 secs (0.008u,0.s) -Chars 30107 - 30121 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30130 - 30157 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) -Chars 30166 - 30181 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30190 - 30225 [(hinduction~EQy~before~oy;~try...] 0.035 secs (0.035u,0.s) -Chars 30234 - 30259 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 30268 - 30299 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30306 - 30307 [*] 0. secs (0.u,0.s) -Chars 30308 - 30344 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 30349 - 30350 [+] 0. secs (0.u,0.s) -Chars 30351 - 30377 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30384 - 30396 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30403 - 30417 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 30424 - 30439 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30446 - 30481 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) -Chars 30488 - 30489 [*] 0. secs (0.u,0.s) -Chars 30490 - 30508 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 30517 - 30531 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30540 - 30567 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 30576 - 30591 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30600 - 30635 [(hinduction~EQy~before~oy;~try...] 0.043 secs (0.042u,0.s) -Chars 30644 - 30662 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) -Chars 30671 - 30678 [(intros).] 0. secs (0.u,0.s) -Chars 30687 - 30692 [taur.] 0. secs (0.u,0.s) -Chars 30701 - 30718 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30725 - 30726 [*] 0. secs (0.u,0.s) -Chars 30727 - 30763 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 30768 - 30769 [+] 0. secs (0.u,0.s) -Chars 30770 - 30796 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30803 - 30815 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30822 - 30838 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) -Chars 30845 - 30860 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30867 - 30902 [(hinduction~EQx~before~ox;~try...] 0.057 secs (0.057u,0.s) -Chars 30909 - 30910 [*] 0. secs (0.u,0.s) -Chars 30911 - 30918 [(intros).] 0. secs (0.u,0.s) -Chars 30927 - 30993 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 31002 - 31016 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 31025 - 31054 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 31063 - 31078 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 31087 - 31122 [(hinduction~EQy~before~oy;~try...] 0.038 secs (0.037u,0.s) -Chars 31131 - 31223 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) -Chars 31232 - 31239 [(intros).] 0. secs (0.u,0.s) -Chars 31248 - 31253 [taur.] 0. secs (0.u,0.s) -Chars 31262 - 31279 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 31286 - 31287 [*] 0. secs (0.u,0.s) -Chars 31288 - 31324 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 31329 - 31330 [+] 0. secs (0.u,0.s) -Chars 31331 - 31375 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 31382 - 31390 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 31397 - 31402 [taul.] 0. secs (0.u,0.s) -Chars 31409 - 31428 [(eapply~IHEQ;~eauto).] 0.002 secs (0.002u,0.s) -Chars 31435 - 31486 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 31493 - 31530 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 31535 - 31536 [+] 0. secs (0.u,0.s) -Chars 31537 - 31581 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 31588 - 31596 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 31603 - 31608 [taur.] 0. secs (0.u,0.s) -Chars 31615 - 31634 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 31641 - 31692 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 31699 - 31736 [(unstep;~eapply~euttge_tau_inv...] 0.005 secs (0.005u,0.s) -Chars 31737 - 31741 [Qed.] 0.028 secs (0.028u,0.s) -Chars 31801 - 31995 [#[global]~Instance~euttge_prop...] 0.003 secs (0.003u,0.s) -Chars 31996 - 32002 [Proof.] 0. secs (0.u,0.s) -Chars 32005 - 32061 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) -Chars 32064 - 32068 [Qed.] 0.001 secs (0.001u,0.s) -Chars 32110 - 32295 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 32297 - 32303 [Proof.] 0. secs (0.u,0.s) -Chars 32306 - 32385 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) -Chars 32388 - 32392 [Qed.] 0.001 secs (0.001u,0.s) -Chars 32395 - 32499 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 32500 - 32506 [Proof.] 0. secs (0.u,0.s) -Chars 32507 - 32527 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32528 - 32532 [Qed.] 0. secs (0.u,0.s) -Chars 32534 - 32643 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 32644 - 32650 [Proof.] 0. secs (0.u,0.s) -Chars 32651 - 32671 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32672 - 32676 [Qed.] 0. secs (0.u,0.s) -Chars 32678 - 32780 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) -Chars 32781 - 32787 [Proof.] 0. secs (0.u,0.s) -Chars 32788 - 32809 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32810 - 32814 [Qed.] 0. secs (0.u,0.s) -Chars 32816 - 32923 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) -Chars 32924 - 32930 [Proof.] 0. secs (0.u,0.s) -Chars 32931 - 32951 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32952 - 32956 [Qed.] 0. secs (0.u,0.s) -Chars 32958 - 33058 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 33059 - 33065 [Proof.] 0. secs (0.u,0.s) -Chars 33066 - 33086 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 33087 - 33091 [Qed.] 0. secs (0.u,0.s) -Chars 33093 - 33198 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 33199 - 33205 [Proof.] 0. secs (0.u,0.s) -Chars 33206 - 33226 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 33227 - 33231 [Qed.] 0. secs (0.u,0.s) -Chars 33233 - 33389 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 33390 - 33396 [Proof.] 0. secs (0.u,0.s) -Chars 33400 - 33413 [(split;~intro).] 0. secs (0.u,0.s) -Chars 33417 - 33450 [1:~(symmetry~in~H;~symmetry~in...] 0. secs (0.u,0.s) -Chars 33454 - 33585 [all:~~(apply~eq_sub_euttge~wit...] 0.004 secs (0.004u,0.s) -Chars 33586 - 33590 [Qed.] 0.002 secs (0.001u,0.s) -Chars 33592 - 33741 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 33743 - 33771 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 33775 - 33889 [(split;~intros;~revert_until~R...] 0.011 secs (0.01u,0.s) -Chars 33892 - 33931 [all:~(hinduction~H1~before~RR;...] 0.004 secs (0.004u,0.s) -Chars 33962 - 34013 [1-2,~6-7:~(inv~H;~inv~H0;~simp...] 0.268 secs (0.264u,0.001s) -Chars 34029 - 34208 [1,~4:~~(genvis~e~k1~ok1;~inv~H...] 0.244 secs (0.241u,0.001s) -Chars 34236 - 34305 [1,~3:~(inv~H;~simpobs;~taul;~e...] 0.104 secs (0.103u,0.s) -Chars 34308 - 34378 [1-2:~(inv~H0;~simpobs;~taur;~e...] 0.104 secs (0.103u,0.s) -Chars 34379 - 34383 [Qed.] 0.086 secs (0.085u,0.s) -Chars 34886 - 35052 [Lemma~not_euttge_proper_euttge...] 0.001 secs (0.001u,0.s) -Chars 35055 - 35093 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 35097 - 35103 [intro.] 0. secs (0.u,0.s) -Chars 35105 - 35229 [(assert~~~(Hfalse~:~~~~euttge~...] 0. secs (0.u,0.s) -Chars 35232 - 35233 [{] 0. secs (0.u,0.s) -Chars 35234 - 35276 [(eapply~H~with~(x~:=~Ret~tt)~(...] 0. secs (0.u,0.s) -Chars 35399 - 35400 [-] 0. secs (0.u,0.s) -Chars 35401 - 35413 [reflexivity.] 0. secs (0.u,0.s) -Chars 35418 - 35419 [-] 0. secs (0.u,0.s) -Chars 35420 - 35425 [step.] 0.002 secs (0.002u,0.s) -Chars 35426 - 35431 [taul.] 0. secs (0.u,0.s) -Chars 35432 - 35444 [reflexivity.] 0. secs (0.u,0.s) -Chars 35449 - 35450 [-] 0. secs (0.u,0.s) -Chars 35451 - 35463 [reflexivity.] 0. secs (0.u,0.s) -Chars 35464 - 35465 [}] 0. secs (0.u,0.s) -Chars 35468 - 35483 [step~in~Hfalse.] 0.001 secs (0.001u,0.s) -Chars 35484 - 35495 [(inv~Hfalse).] 0.004 secs (0.004u,0.s) -Chars 35497 - 35501 [Qed.] 0.004 secs (0.004u,0.s) -Chars 35505 - 35672 [Lemma~euttge_proper_flip_euttg...] 0.001 secs (0.001u,0.s) -Chars 35782 - 35788 [Abort.] 0. secs (0.u,0.s) -Chars 36012 - 36183 [#[global]~Instance~euttge_eq_p...] 0.001 secs (0.001u,0.s) -Chars 36184 - 36212 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 36215 - 36253 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 36256 - 36272 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 36275 - 36340 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 36345 - 36355 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 36356 - 36366 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 36372 - 36401 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 36406 - 36445 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 36450 - 36471 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 36476 - 36477 [+] 0. secs (0.u,0.s) -Chars 36478 - 36504 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36511 - 36523 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 36530 - 36544 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 36551 - 36566 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36573 - 36608 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.053u,0.s) -Chars 36615 - 36616 [*] 0. secs (0.u,0.s) -Chars 36617 - 36643 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) -Chars 36644 - 36658 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36667 - 36694 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) -Chars 36703 - 36718 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36819 - 36854 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) -Chars 36863 - 36888 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 36895 - 36896 [*] 0. secs (0.u,0.s) -Chars 36897 - 36933 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 36938 - 36939 [+] 0. secs (0.u,0.s) -Chars 36940 - 36966 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36973 - 36985 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 36992 - 37006 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 37013 - 37028 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 37035 - 37070 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.056u,0.s) -Chars 37077 - 37078 [*] 0. secs (0.u,0.s) -Chars 37079 - 37097 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 37106 - 37120 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 37129 - 37156 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 37165 - 37180 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 37189 - 37224 [(hinduction~EQy~before~oy;~try...] 0.032 secs (0.032u,0.s) -Chars 37233 - 37251 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) -Chars 37258 - 37259 [*] 0. secs (0.u,0.s) -Chars 37260 - 37296 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 37301 - 37302 [+] 0. secs (0.u,0.s) -Chars 37303 - 37329 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 37336 - 37348 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 37355 - 37371 [(genvis~e~k1~ot1).] 0.001 secs (0.001u,0.s) -Chars 37378 - 37393 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 37400 - 37435 [(hinduction~EQx~before~ox;~try...] 0.054 secs (0.054u,0.s) -Chars 37442 - 37443 [*] 0. secs (0.u,0.s) -Chars 37444 - 37451 [(intros).] 0. secs (0.u,0.s) -Chars 37460 - 37526 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 37535 - 37549 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 37558 - 37587 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 37596 - 37611 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 37620 - 37655 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) -Chars 37664 - 37756 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) -Chars 37763 - 37764 [*] 0. secs (0.u,0.s) -Chars 37765 - 37801 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 37806 - 37807 [+] 0. secs (0.u,0.s) -Chars 37808 - 37852 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 37859 - 37867 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 37874 - 37879 [taul.] 0. secs (0.u,0.s) -Chars 37886 - 37905 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 37912 - 37963 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 37970 - 38007 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 38012 - 38013 [+] 0. secs (0.u,0.s) -Chars 38014 - 38019 [easy.] 0.017 secs (0.017u,0.s) -Chars 38069 - 38073 [Qed.] 0.025 secs (0.025u,0.s) -Chars 38075 - 38235 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 38236 - 38242 [Proof.] 0. secs (0.u,0.s) -Chars 38245 - 38258 [(split;~intro).] 0. secs (0.u,0.s) -Chars 38261 - 38262 [-] 0. secs (0.u,0.s) -Chars 38385 - 38441 [(symmetry~in~H;~apply~eq_sub_e...] 0. secs (0.u,0.s) -Chars 38446 - 38461 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 38466 - 38505 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) -Chars 38508 - 38509 [-] 0. secs (0.u,0.s) -Chars 38622 - 38663 [(apply~eq_sub_euttge~with~(RR~...] 0. secs (0.u,0.s) -Chars 38668 - 38707 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) -Chars 38708 - 38712 [Qed.] 0.001 secs (0.001u,0.s) -Chars 38715 - 38879 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 38880 - 38886 [Proof.] 0. secs (0.u,0.s) -Chars 38890 - 38975 [(split;~revert_until~c;~tower~...] 0.011 secs (0.011u,0.s) -Chars 39049 - 39073 [all:~(inv~H2;~simpobs).] 0.157 secs (0.156u,0.s) -Chars 39076 - 39161 [all:~~(try~genvis~e~k1~ok1;~in...] 0.314 secs (0.312u,0.001s) -Chars 39165 - 39229 [all:~(try~do~2~inv_Vis;~constr...] 0.179 secs (0.178u,0.s) -Chars 39232 - 39252 [all:~(inv~H1;~inv~H0).] 0.024 secs (0.024u,0.s) -Chars 39257 - 39315 [all:~(eapply~H;~try~eapply~REL...] 0.001 secs (0.001u,0.s) -Chars 39319 - 39323 [Qed.] 0.076 secs (0.076u,0.s) -Chars 39362 - 39517 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 39518 - 39563 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) -Chars 39565 - 39664 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) -Chars 39665 - 39671 [Proof.] 0. secs (0.u,0.s) -Chars 39674 - 39681 [(intros).] 0. secs (0.u,0.s) -Chars 39682 - 39700 [(destruct~H;~eauto).] 0. secs (0.u,0.s) -Chars 39701 - 39705 [Qed.] 0. secs (0.u,0.s) -Chars 39734 - 39933 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 39934 - 39940 [Proof.] 0. secs (0.u,0.s) -Chars 39943 - 39955 [(unfold~eqit).] 0. secs (0.u,0.s) -Chars 39956 - 39972 [(revert_until~b2).] 0. secs (0.u,0.s) -Chars 40082 - 40101 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 40102 - 40109 [(intros).] 0. secs (0.u,0.s) -Chars 40113 - 40125 [step~in~INL.] 0. secs (0.u,0.s) -Chars 40126 - 40138 [step~in~INR.] 0. secs (0.u,0.s) -Chars 40236 - 40277 [(hinduction~INL~before~CIH;~in...] 0.001 secs (0.001u,0.s) -Chars 40278 - 40290 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 40322 - 40323 [-] 0. secs (0.u,0.s) -Chars 40324 - 40337 [(genret~r2~ot).] 0. secs (0.u,0.s) -Chars 40342 - 40405 [(hinduction~INR~before~CIH;~in...] 0.032 secs (0.031u,0.s) -Chars 40408 - 40409 [-] 0. secs (0.u,0.s) -Chars 40410 - 40424 [(genobs~t3~ot3).] 0. secs (0.u,0.s) -Chars 40498 - 40570 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) -Chars 40575 - 40576 [{] 0. secs (0.u,0.s) -Chars 40577 - 40623 [(destruct~ot3;~eauto;~right;~r...] 0.008 secs (0.008u,0.s) -Chars 40624 - 40625 [}] 0. secs (0.u,0.s) -Chars 40630 - 40660 [(destruct~DEC~as~[[m3~?]|~EQ]).] 0. secs (0.u,0.s) -Chars 40701 - 40702 [+] 0. secs (0.u,0.s) -Chars 40703 - 40718 [(subst;~simpobs).] 0.001 secs (0.001u,0.s) -Chars 40726 - 40739 [econstructor.] 0. secs (0.u,0.s) -Chars 40746 - 40764 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 40771 - 40790 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) -Chars 40797 - 40806 [now~step.] 0.001 secs (0.001u,0.s) -Chars 40866 - 40867 [+] 0. secs (0.u,0.s) -Chars 40868 - 40915 [(inv~INR;~try~(exfalso;~eapply...] 0.048 secs (0.048u,0.s) -Chars 40922 - 40927 [taul.] 0. secs (0.u,0.s) -Chars 40935 - 40947 [step~in~REL.] 0. secs (0.u,0.s) -Chars 40954 - 41028 [(hinduction~REL0~before~CIH;~i...] 0.003 secs (0.003u,0.s) -Chars 41110 - 41111 [*] 0. secs (0.u,0.s) -Chars 41112 - 41137 [(remember~(RetF~r1)~as~ot).] 0. secs (0.u,0.s) -Chars 41146 - 41210 [(hinduction~REL0~before~CIH;~i...] 0.032 secs (0.032u,0.s) -Chars 41217 - 41218 [*] 0. secs (0.u,0.s) -Chars 41219 - 41246 [(remember~(VisF~e~k1)~as~ot).] 0. secs (0.u,0.s) -Chars 41255 - 41340 [(hinduction~REL0~before~CIH;~i...] 0.026 secs (0.025u,0.s) -Chars 41349 - 41362 [econstructor.] 0. secs (0.u,0.s) -Chars 41363 - 41370 [(intros).] 0. secs (0.u,0.s) -Chars 41379 - 41414 [(apply~(CIH~_~_~_~(REL~v)~(REL...] 0. secs (0.u,0.s) -Chars 41422 - 41423 [*] 0. secs (0.u,0.s) -Chars 41424 - 41445 [(eapply~IHREL0;~eauto).] 0. secs (0.u,0.s) -Chars 41454 - 41478 [(destruct~b1;~inv~CHECK0).] 0.009 secs (0.009u,0.s) -Chars 41487 - 41494 [unstep.] 0.004 secs (0.004u,0.s) -Chars 41495 - 41516 [(apply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 41517 - 41526 [now~step.] 0.001 secs (0.001u,0.s) -Chars 41530 - 41531 [-] 0. secs (0.u,0.s) -Chars 41532 - 41559 [(remember~(VisF~e~k2)~as~ot).] 0. secs (0.u,0.s) -Chars 41564 - 41648 [(hinduction~INR~before~CIH;~in...] 0.018 secs (0.018u,0.s) -Chars 41653 - 41666 [econstructor.] 0. secs (0.u,0.s) -Chars 41667 - 41674 [(intros).] 0. secs (0.u,0.s) -Chars 41679 - 41714 [(apply~(CIH~_~_~_~(REL0~v)~(RE...] 0. secs (0.u,0.s) -Chars 41718 - 41719 [-] 0. secs (0.u,0.s) -Chars 41720 - 41737 [eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 41740 - 41741 [-] 0. secs (0.u,0.s) -Chars 41742 - 41755 [(gentau~t0~ot).] 0.001 secs (0.001u,0.s) -Chars 41760 - 41774 [(genobs~t3~ot3).] 0. secs (0.u,0.s) -Chars 41780 - 41842 [(hinduction~INR~before~CIH;~in...] 0.011 secs (0.011u,0.s) -Chars 41847 - 41848 [+] 0. secs (0.u,0.s) -Chars 41849 - 41873 [(eapply~(IHINL~(Tau~m2))).] 0. secs (0.u,0.s) -Chars 41880 - 41892 [step~in~REL.] 0. secs (0.u,0.s) -Chars 41893 - 41910 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10254 - 10288 [Ltac~icbn_in~h~:=~repeat~red~i...] 0. secs (0.u,0.s) +Chars 10290 - 10505 [Ltac~~refold~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) +Chars 10507 - 10742 [Ltac~~refold_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 10744 - 11840 [Ltac~~to_mon_core~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 11842 - 12026 [Ltac~~to_mon~:=~~~let~dummy~:=...] 0. secs (0.u,0.s) +Chars 12029 - 12504 [Ltac~~to_mon_in~h~:=~~~match~t...] 0. secs (0.u,0.s) +Chars 12564 - 12614 [Tactic~Notation~"icbn"~"in"~id...] 0. secs (0.u,0.s) +Chars 12615 - 12690 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) +Chars 12692 - 12746 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) +Chars 12747 - 12801 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) +Chars 12802 - 12858 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) +Chars 12859 - 12909 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) +Chars 12960 - 13104 [#[global]~Ltac~~step~:=~~~matc...] 0. secs (0.u,0.s) +Chars 13207 - 13379 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) +Chars 13382 - 13450 [Tactic~Notation~"unstep"~:=~(i...] 0. secs (0.u,0.s) +Chars 13451 - 13555 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) +Chars 13557 - 13638 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) +Chars 13640 - 13755 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) +Chars 13757 - 13858 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) +Chars 13861 - 13971 [Tactic~Notation~"icoinduction"...] 0. secs (0.u,0.s) +Chars 14030 - 14079 [Ltac~sinv~H~:=~repeat~red~in~H...] 0. secs (0.u,0.s) +Chars 14217 - 14485 [Ltac~~solve_eqitF~:=~~~iunfold...] 0. secs (0.u,0.s) +Chars 14724 - 14759 [Ltac~taul~:=~apply~EqTauL;~[~a...] 0. secs (0.u,0.s) +Chars 14760 - 14795 [Ltac~taur~:=~apply~EqTauR;~[~a...] 0. secs (0.u,0.s) +Chars 14797 - 14822 [Ltac~taus~:=~apply~EqTau.] 0. secs (0.u,0.s) +Chars 14826 - 14853 [Module~step_notation_tests.] 0. secs (0.u,0.s) +Chars 14857 - 14893 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 14896 - 14928 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 14931 - 14972 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 14975 - 15011 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 15014 - 15050 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 15053 - 15112 [#[local]~Parameter~(eqc~:~Chai...] 0. secs (0.u,0.s) +Chars 15115 - 15150 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 15153 - 15191 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 15194 - 15229 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 15232 - 15270 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 15273 - 15307 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 15310 - 15345 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 15388 - 15405 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 15454 - 15459 [step.] 0.001 secs (0.001u,0.s) +Chars 15460 - 15467 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15472 - 15477 [step.] 0.001 secs (0.001u,0.s) +Chars 15482 - 15492 [Fail~step.] 0. secs (0.u,0.s) +Chars 15498 - 15505 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15511 - 15523 [Fail~unstep.] 0.002 secs (0.001u,0.s) +Chars 15530 - 15602 [(assert~(eqitF~eq~false~false~...] 0. secs (0.u,0.s) +Chars 15607 - 15612 [step.] 0.002 secs (0.002u,0.s) +Chars 15643 - 15648 [step.] 0.031 secs (0.031u,0.s) +Chars 15649 - 15656 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15657 - 15669 [Fail~unstep.] 0.001 secs (0.001u,0.s) +Chars 15670 - 15675 [step.] 0.001 secs (0.001u,0.s) +Chars 15676 - 15686 [Fail~step.] 0. secs (0.u,0.s) +Chars 15687 - 15711 [now~unstep;~apply~EQ2.] 0.003 secs (0.003u,0.s) +Chars 15717 - 15748 [(assert~((elem~eqc~_~_~eq)~v~w)).] 0. secs (0.u,0.s) +Chars 15753 - 15758 [step.] 0.001 secs (0.001u,0.s) +Chars 15759 - 15764 [step.] 0.002 secs (0.002u,0.s) +Chars 15796 - 15801 [step.] 0.001 secs (0.001u,0.s) +Chars 15802 - 15809 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15810 - 15822 [Fail~unstep.] 0.001 secs (0.001u,0.s) +Chars 15823 - 15828 [step.] 0.001 secs (0.001u,0.s) +Chars 15829 - 15839 [Fail~step.] 0. secs (0.u,0.s) +Chars 15840 - 15864 [now~unstep;~apply~EQ2.] 0.007 secs (0.005u,0.001s) +Chars 15870 - 15882 [to_mon~in~H.] 0. secs (0.u,0.s) +Chars 15886 - 15892 [Abort.] 0. secs (0.u,0.s) +Chars 15895 - 15919 [End~step_notation_tests.] 0. secs (0.u,0.s) +Chars 15922 - 16220 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) +Chars 16221 - 16227 [Proof.] 0. secs (0.u,0.s) +Chars 16230 - 16537 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 16540 - 16541 [-] 0. secs (0.u,0.s) +Chars 16542 - 16554 [(left;~eauto).] 0. secs (0.u,0.s) +Chars 16557 - 16558 [-] 0. secs (0.u,0.s) +Chars 16559 - 16578 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16579 - 16583 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16585 - 16886 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.001u,0.s) +Chars 16887 - 16893 [Proof.] 0. secs (0.u,0.s) +Chars 16896 - 17115 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 17118 - 17119 [-] 0. secs (0.u,0.s) +Chars 17120 - 17132 [(left;~eauto).] 0. secs (0.u,0.s) +Chars 17135 - 17136 [-] 0. secs (0.u,0.s) +Chars 17137 - 17155 [(destruct~i;~eauto).] 0.001 secs (0.001u,0.s) +Chars 17156 - 17160 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17162 - 17411 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.001u,0.s) +Chars 17412 - 17418 [Proof.] 0. secs (0.u,0.s) +Chars 17421 - 17656 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 17659 - 17660 [-] 0. secs (0.u,0.s) +Chars 17661 - 17688 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) +Chars 17691 - 17692 [-] 0. secs (0.u,0.s) +Chars 17693 - 17713 [(destruct~i;~exact~I).] 0. secs (0.u,0.s) +Chars 17714 - 17718 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17720 - 17913 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0.001 secs (0.u,0.s) +Chars 17914 - 17920 [Proof.] 0. secs (0.u,0.s) +Chars 17923 - 17932 [(intros~H).] 0. secs (0.u,0.s) +Chars 17933 - 17957 [dependent~destruction~H.] 0.006 secs (0.004u,0.002s) +Chars 17958 - 17969 [assumption.] 0. secs (0.u,0.s) +Chars 17970 - 17974 [Qed.] 0.003 secs (0.002u,0.s) +Chars 17976 - 18216 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0.001 secs (0.001u,0.s) +Chars 18217 - 18223 [Proof.] 0. secs (0.u,0.s) +Chars 18226 - 18272 [(destruct~p;~intros~<-;~cbn;~c...] 0.018 secs (0.017u,0.001s) +Chars 18273 - 18277 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18279 - 18408 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 18409 - 18415 [Proof.] 0. secs (0.u,0.s) +Chars 18418 - 18457 [(intros~!;~induction~H;~eauto~...] 0.001 secs (0.001u,0.s) +Chars 18458 - 18462 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18464 - 18616 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) +Chars 18617 - 18623 [Proof.] 0. secs (0.u,0.s) +Chars 18626 - 18634 [intros~!.] 0. secs (0.u,0.s) +Chars 18635 - 18641 [subst.] 0. secs (0.u,0.s) +Chars 18642 - 18693 [(split;~unfold~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 18696 - 18790 [all:~~(induction~H0;~auto~with...] 0.004 secs (0.004u,0.s) +Chars 18791 - 18795 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18797 - 18962 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) +Chars 18963 - 18969 [Proof.] 0. secs (0.u,0.s) +Chars 18972 - 18980 [intros~!.] 0. secs (0.u,0.s) +Chars 18981 - 18987 [subst.] 0. secs (0.u,0.s) +Chars 18988 - 19002 [(split;~intros).] 0. secs (0.u,0.s) +Chars 19005 - 19074 [all:~(induction~H0;~auto~with~...] 0.002 secs (0.002u,0.s) +Chars 19075 - 19079 [Qed.] 0.002 secs (0.002u,0.s) +Chars 19081 - 19225 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) +Chars 19226 - 19253 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) +Chars 19256 - 19264 [intros~!.] 0. secs (0.u,0.s) +Chars 19265 - 19271 [subst.] 0. secs (0.u,0.s) +Chars 19275 - 19281 [split.] 0. secs (0.u,0.s) +Chars 19284 - 19285 [-] 0. secs (0.u,0.s) +Chars 19286 - 19301 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 19302 - 19321 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) +Chars 19322 - 19329 [(intros).] 0. secs (0.u,0.s) +Chars 19334 - 19345 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19350 - 19377 [hinduction~H0~before~CIH~...] 0.003 secs (0.003u,0.s) +Chars 19382 - 19408 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 19412 - 19413 [-] 0. secs (0.u,0.s) +Chars 19414 - 19429 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 19430 - 19449 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) +Chars 19450 - 19457 [(intros).] 0. secs (0.u,0.s) +Chars 19464 - 19475 [step~in~H0.] 0. secs (0.u,0.s) +Chars 19480 - 19507 [hinduction~H0~before~CIH~...] 0.004 secs (0.003u,0.s) +Chars 19513 - 19539 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 19541 - 19545 [Qed.] 0.009 secs (0.009u,0.s) +Chars 19548 - 19689 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 19690 - 19696 [Proof.] 0. secs (0.u,0.s) +Chars 19699 - 19732 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 19733 - 19737 [Qed.] 0. secs (0.u,0.s) +Chars 19739 - 19876 [#[global]~Instance~euttge_Prop...] 0. secs (0.u,0.s) +Chars 19877 - 19883 [Proof.] 0. secs (0.u,0.s) +Chars 19886 - 19919 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 19920 - 19924 [Qed.] 0. secs (0.u,0.s) +Chars 19926 - 20059 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 20060 - 20066 [Proof.] 0. secs (0.u,0.s) +Chars 20069 - 20102 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) +Chars 20103 - 20107 [Qed.] 0. secs (0.u,0.s) +Chars 20552 - 20703 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 20704 - 20710 [Proof.] 0. secs (0.u,0.s) +Chars 20737 - 20756 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 20757 - 20772 [(intros~u~v~euv).] 0. secs (0.u,0.s) +Chars 20840 - 20852 [step~in~euv.] 0. secs (0.u,0.s) +Chars 20918 - 20950 [(induction~euv;~eauto~with~itr...] 0.004 secs (0.004u,0.s) +Chars 20951 - 20955 [Qed.] 0.004 secs (0.004u,0.s) +Chars 20957 - 21135 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 21136 - 21142 [Proof.] 0. secs (0.u,0.s) +Chars 21145 - 21152 [(intros).] 0. secs (0.u,0.s) +Chars 21153 - 21173 [now~apply~eqit_flip.] 0. secs (0.u,0.s) +Chars 21176 - 21180 [Qed.] 0. secs (0.u,0.s) +Chars 21182 - 21217 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) +Chars 21253 - 21426 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) +Chars 21427 - 21433 [Proof.] 0. secs (0.u,0.s) +Chars 21436 - 21444 [intros~!.] 0. secs (0.u,0.s) +Chars 21448 - 21462 [revert~a~a0~H.] 0. secs (0.u,0.s) +Chars 21466 - 21493 [(icoinduction~c~CIH;~intros).] 0.002 secs (0.002u,0.s) +Chars 21498 - 21508 [step~in~H.] 0. secs (0.u,0.s) +Chars 21509 - 21539 [(induction~H;~eauto~with~itree).] 0.005 secs (0.004u,0.s) +Chars 21542 - 21555 [econstructor.] 0. secs (0.u,0.s) +Chars 21556 - 21571 [now~apply~LERR.] 0. secs (0.u,0.s) +Chars 21574 - 21578 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21677 - 21694 [Section~eqit_gen.] 0. secs (0.u,0.s) +Chars 21747 - 21806 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 22178 - 22328 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 22329 - 22335 [Proof.] 0. secs (0.u,0.s) +Chars 22340 - 22344 [(red).] 0. secs (0.u,0.s) +Chars 22345 - 22387 [(destruct~x;~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 22388 - 22392 [Qed.] 0. secs (0.u,0.s) +Chars 22443 - 22587 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 22588 - 22594 [Proof.] 0. secs (0.u,0.s) +Chars 22599 - 22603 [(red).] 0. secs (0.u,0.s) +Chars 22604 - 22643 [(induction~3;~constructor;~sub...] 0.001 secs (0.001u,0.s) +Chars 22644 - 22648 [Qed.] 0. secs (0.u,0.s) +Chars 22698 - 22852 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 22853 - 22859 [Proof.] 0. secs (0.u,0.s) +Chars 22864 - 22888 [(intros~?~?~t~u~v~EQ1~EQ2).] 0. secs (0.u,0.s) +Chars 22893 - 22938 [(inv~EQ1;~try~now~inv~EQ2;~eau...] 0.05 secs (0.05u,0.s) +Chars 22943 - 23011 [(apply~eqitF_inv_VisF_l~in~EQ2...] 0.001 secs (0.001u,0.s) +Chars 23016 - 23035 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 23036 - 23040 [Qed.] 0.004 secs (0.004u,0.s) +Chars 23149 - 23240 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 23241 - 23247 [Proof.] 0. secs (0.u,0.s) +Chars 23250 - 23262 [(red;~intros).] 0. secs (0.u,0.s) +Chars 23265 - 23274 [revert~x.] 0. secs (0.u,0.s) +Chars 23275 - 23294 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 23295 - 23301 [intro.] 0. secs (0.u,0.s) +Chars 23305 - 23338 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) +Chars 23339 - 23343 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23345 - 23430 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 23431 - 23437 [Proof.] 0. secs (0.u,0.s) +Chars 23440 - 23460 [(intros~Hsym~x~y~Hxy).] 0. secs (0.u,0.s) +Chars 23463 - 23479 [(apply~eqit_flip).] 0. secs (0.u,0.s) +Chars 23482 - 23534 [(eapply~eqit_mono;~[~auto~|~au...] 0.001 secs (0.001u,0.s) +Chars 23536 - 23540 [Qed.] 0. secs (0.u,0.s) +Chars 23542 - 23670 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 23671 - 23677 [Proof.] 0. secs (0.u,0.s) +Chars 23680 - 23693 [(red;~intro~x).] 0. secs (0.u,0.s) +Chars 23696 - 23716 [(apply~(gfp_chain~c)).] 0.001 secs (0.001u,0.s) +Chars 23719 - 23731 [reflexivity.] 0. secs (0.u,0.s) +Chars 23732 - 23736 [Qed.] 0. secs (0.u,0.s) +Chars 23738 - 23895 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) +Chars 23896 - 23902 [Proof.] 0. secs (0.u,0.s) +Chars 23905 - 23925 [(intros~T~HT~x~y~Hxy).] 0. secs (0.u,0.s) +Chars 23928 - 23940 [(intros~z~Hz).] 0. secs (0.u,0.s) +Chars 23941 - 23956 [(apply~HT;~auto).] 0. secs (0.u,0.s) +Chars 23957 - 23961 [Qed.] 0. secs (0.u,0.s) +Chars 23963 - 24085 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 24086 - 24092 [Proof.] 0. secs (0.u,0.s) +Chars 24095 - 24104 [revert~c.] 0. secs (0.u,0.s) +Chars 24105 - 24143 [(apply~(tower~inf_closed_Symme...] 0. secs (0.u,0.s) +Chars 24146 - 24160 [(intros~c~Hsym).] 0. secs (0.u,0.s) +Chars 24161 - 24169 [intros~!.] 0. secs (0.u,0.s) +Chars 24170 - 24198 [(apply~Symmetric_eqitF;~auto).] 0. secs (0.u,0.s) +Chars 24199 - 24203 [Qed.] 0. secs (0.u,0.s) +Chars 24205 - 24218 [End~eqit_gen.] 0. secs (0.u,0.s) +Chars 24221 - 24238 [Section~eqit_inv.] 0. secs (0.u,0.s) +Chars 24242 - 24316 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 24319 - 24368 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) +Chars 24372 - 24838 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) +Chars 24842 - 24937 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 24940 - 24946 [Proof.] 0. secs (0.u,0.s) +Chars 24951 - 24962 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 24967 - 24977 [step~in~H.] 0. secs (0.u,0.s) +Chars 24982 - 24987 [step.] 0.001 secs (0.001u,0.s) +Chars 24995 - 25023 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) +Chars 25028 - 25050 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) +Chars 25057 - 25058 [-] 0. secs (0.u,0.s) +Chars 25059 - 25071 [step~in~REL.] 0. secs (0.u,0.s) +Chars 25072 - 25081 [now~taur.] 0. secs (0.u,0.s) +Chars 25086 - 25087 [-] 0. secs (0.u,0.s) +Chars 25088 - 25093 [taur.] 0. secs (0.u,0.s) +Chars 25094 - 25112 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25116 - 25120 [Qed.] 0.003 secs (0.003u,0.s) +Chars 25125 - 25220 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) +Chars 25223 - 25229 [Proof.] 0. secs (0.u,0.s) +Chars 25234 - 25245 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 25250 - 25260 [step~in~H.] 0. secs (0.u,0.s) +Chars 25265 - 25270 [step.] 0.001 secs (0.001u,0.s) +Chars 25278 - 25306 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) +Chars 25311 - 25333 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) +Chars 25340 - 25341 [-] 0. secs (0.u,0.s) +Chars 25342 - 25354 [step~in~REL.] 0. secs (0.u,0.s) +Chars 25355 - 25364 [now~taul.] 0. secs (0.u,0.s) +Chars 25370 - 25371 [-] 0. secs (0.u,0.s) +Chars 25372 - 25377 [taul.] 0. secs (0.u,0.s) +Chars 25378 - 25396 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25400 - 25404 [Qed.] 0.003 secs (0.003u,0.s) +Chars 25409 - 25597 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0.001 secs (0.001u,0.s) +Chars 25600 - 25606 [Proof.] 0. secs (0.u,0.s) +Chars 25611 - 25618 [(intros).] 0. secs (0.u,0.s) +Chars 25623 - 25649 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) +Chars 25655 - 25681 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 25687 - 25714 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) +Chars 25719 - 25778 [(induction~H;~intros~t1'~t2'~H...] 0.028 secs (0.027u,0.s) +Chars 25783 - 25784 [-] 0. secs (0.u,0.s) +Chars 25785 - 25808 [(inv~Heqot1;~inv~Heqot2).] 0.01 secs (0.01u,0.s) +Chars 25809 - 25820 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 25827 - 25828 [-] 0. secs (0.u,0.s) +Chars 25829 - 25856 [(inv~H;~inv~Heqot1;~simpobs).] 0.053 secs (0.051u,0.001s) +Chars 25864 - 25865 [+] 0. secs (0.u,0.s) +Chars 25866 - 25871 [taul.] 0. secs (0.u,0.s) +Chars 25872 - 25888 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 25897 - 25898 [+] 0. secs (0.u,0.s) +Chars 25899 - 25904 [taul.] 0. secs (0.u,0.s) +Chars 25905 - 25923 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 25930 - 25931 [-] 0. secs (0.u,0.s) +Chars 25932 - 25959 [(inv~H;~inv~Heqot2;~simpobs).] 0.048 secs (0.047u,0.s) +Chars 25967 - 25968 [+] 0. secs (0.u,0.s) +Chars 25969 - 25974 [taur.] 0. secs (0.u,0.s) +Chars 25975 - 25991 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 25999 - 26000 [+] 0. secs (0.u,0.s) +Chars 26001 - 26006 [taur.] 0. secs (0.u,0.s) +Chars 26007 - 26025 [now~apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 26029 - 26033 [Qed.] 0.011 secs (0.011u,0.s) +Chars 26038 - 26133 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) +Chars 26136 - 26142 [Proof.] 0. secs (0.u,0.s) +Chars 26147 - 26154 [(intros).] 0. secs (0.u,0.s) +Chars 26159 - 26175 [(step~in~H;~step).] 0.002 secs (0.002u,0.s) +Chars 26180 - 26204 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) +Chars 26208 - 26212 [Qed.] 0.001 secs (0.001u,0.s) +Chars 26217 - 26276 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0.001 secs (0.001u,0.s) +Chars 26279 - 26285 [Proof.] 0. secs (0.u,0.s) +Chars 26290 - 26310 [(intros~H;~step~in~H).] 0. secs (0.u,0.s) +Chars 26315 - 26398 [(genobs~t1~ot1;~genobs~t2~ot2;...] 0. secs (0.u,0.s) +Chars 26403 - 26463 [(destruct~H;~intros~*~E1~E2;~r...] 0.003 secs (0.003u,0.s) +Chars 26468 - 26469 [-] 0. secs (0.u,0.s) +Chars 26470 - 26497 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) +Chars 26502 - 26503 [-] 0. secs (0.u,0.s) +Chars 26504 - 26523 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) +Chars 26524 - 26537 [(destruct~ot2).] 0. secs (0.u,0.s) +Chars 26544 - 26607 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) +Chars 26614 - 26682 [1:~(apply~eqit_inv_Tau_r;~step...] 0.001 secs (0.001u,0.s) +Chars 26687 - 26688 [-] 0. secs (0.u,0.s) +Chars 26689 - 26708 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) +Chars 26709 - 26722 [(destruct~ot1).] 0. secs (0.u,0.s) +Chars 26729 - 26792 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) +Chars 26799 - 26867 [1:~(apply~eqit_inv_Tau_l;~step...] 0.001 secs (0.001u,0.s) +Chars 26870 - 26874 [Qed.] 0.009 secs (0.009u,0.s) +Chars 26876 - 27061 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) +Chars 27062 - 27068 [Proof.] 0. secs (0.u,0.s) +Chars 27071 - 27089 [(intros~om1~Heq~H2).] 0. secs (0.u,0.s) +Chars 27153 - 27199 [(induction~H2;~taul;~simpobs;~...] 0.006 secs (0.006u,0.s) +Chars 27201 - 27205 [Qed.] 0.001 secs (0.001u,0.s) +Chars 27208 - 27221 [End~eqit_inv.] 0. secs (0.u,0.s) +Chars 27223 - 27267 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) +Chars 27268 - 27312 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) +Chars 27313 - 27361 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) +Chars 27363 - 27491 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) +Chars 27492 - 27498 [Proof.] 0. secs (0.u,0.s) +Chars 27501 - 27523 [(intros~EQ;~step~in~EQ).] 0. secs (0.u,0.s) +Chars 27526 - 27559 [(desobs~t~ot;~eauto;~inv~EQ;~e...] 0.009 secs (0.009u,0.s) +Chars 27560 - 27564 [Qed.] 0.005 secs (0.005u,0.s) +Chars 27566 - 27739 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 27740 - 27746 [Proof.] 0. secs (0.u,0.s) +Chars 27749 - 27759 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 27762 - 27784 [(step~in~EQ;~cbn~in~EQ).] 0. secs (0.u,0.s) +Chars 27787 - 27812 [(genobs~t~ot;~genobs~u~ou).] 0. secs (0.u,0.s) +Chars 27815 - 27838 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) +Chars 27841 - 27872 [(induction~EQ;~intros;~try~easy).] 0.013 secs (0.013u,0.s) +Chars 27875 - 27876 [-] 0. secs (0.u,0.s) +Chars 27877 - 27891 [(inv~H;~inv~H0).] 0.003 secs (0.003u,0.s) +Chars 27895 - 27896 [-] 0. secs (0.u,0.s) +Chars 27897 - 27912 [(inv~H;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 27917 - 27961 [(edestruct~euttge_tau_r_inv;~[...] 0.004 secs (0.004u,0.s) +Chars 27966 - 27971 [step.] 0.001 secs (0.001u,0.s) +Chars 27976 - 27984 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 27989 - 27994 [taul.] 0. secs (0.u,0.s) +Chars 27999 - 28006 [unstep.] 0.003 secs (0.003u,0.s) +Chars 28011 - 28030 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 28031 - 28035 [Qed.] 0.007 secs (0.007u,0.s) +Chars 28038 - 28176 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) +Chars 28179 - 28371 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) +Chars 28376 - 28501 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) +Chars 28504 - 28560 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) +Chars 28561 - 28616 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) +Chars 29345 - 29507 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 29508 - 29536 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 29539 - 29577 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 29580 - 29596 [tower~induction.] 0.005 secs (0.004u,0.s) +Chars 29599 - 29664 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 29669 - 29679 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 29680 - 29690 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 29696 - 29725 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) +Chars 29845 - 29884 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 29889 - 29910 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) +Chars 29915 - 29916 [+] 0. secs (0.u,0.s) +Chars 29917 - 29943 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 29950 - 29962 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 29969 - 29983 [(genret~r1~or1).] 0. secs (0.u,0.s) +Chars 29990 - 30005 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30012 - 30047 [(hinduction~EQx~before~ox;~try...] 0.055 secs (0.054u,0.001s) +Chars 30054 - 30055 [*] 0. secs (0.u,0.s) +Chars 30056 - 30082 [(intros;~subst;~inv~Heqor1).] 0.008 secs (0.008u,0.s) +Chars 30083 - 30097 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 30106 - 30133 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) +Chars 30142 - 30157 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30166 - 30201 [(hinduction~EQy~before~oy;~try...] 0.035 secs (0.034u,0.s) +Chars 30210 - 30235 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) +Chars 30244 - 30275 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30282 - 30283 [*] 0. secs (0.u,0.s) +Chars 30284 - 30320 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 30325 - 30326 [+] 0. secs (0.u,0.s) +Chars 30327 - 30353 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30360 - 30372 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30379 - 30393 [(gentau~m1~om1).] 0. secs (0.u,0.s) +Chars 30400 - 30415 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30422 - 30457 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) +Chars 30464 - 30465 [*] 0. secs (0.u,0.s) +Chars 30466 - 30484 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) +Chars 30493 - 30507 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 30516 - 30543 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) +Chars 30552 - 30567 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30576 - 30611 [(hinduction~EQy~before~oy;~try...] 0.041 secs (0.04u,0.s) +Chars 30620 - 30638 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) +Chars 30647 - 30654 [(intros).] 0. secs (0.u,0.s) +Chars 30663 - 30668 [taur.] 0. secs (0.u,0.s) +Chars 30677 - 30694 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30701 - 30702 [*] 0. secs (0.u,0.s) +Chars 30703 - 30739 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 30744 - 30745 [+] 0. secs (0.u,0.s) +Chars 30746 - 30772 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 30779 - 30791 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 30798 - 30814 [(genvis~e~k1~ot1).] 0.001 secs (0.001u,0.s) +Chars 30821 - 30836 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 30843 - 30878 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) +Chars 30885 - 30886 [*] 0. secs (0.u,0.s) +Chars 30887 - 30894 [(intros).] 0. secs (0.u,0.s) +Chars 30903 - 30969 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 30978 - 30992 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 31001 - 31030 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) +Chars 31039 - 31054 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 31063 - 31098 [(hinduction~EQy~before~oy;~try...] 0.038 secs (0.037u,0.s) +Chars 31107 - 31199 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) +Chars 31208 - 31215 [(intros).] 0. secs (0.u,0.s) +Chars 31224 - 31229 [taur.] 0. secs (0.u,0.s) +Chars 31238 - 31255 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 31262 - 31263 [*] 0. secs (0.u,0.s) +Chars 31264 - 31300 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 31305 - 31306 [+] 0. secs (0.u,0.s) +Chars 31307 - 31351 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 31358 - 31366 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 31373 - 31378 [taul.] 0. secs (0.u,0.s) +Chars 31385 - 31404 [(eapply~IHEQ;~eauto).] 0.002 secs (0.001u,0.s) +Chars 31411 - 31462 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 31469 - 31506 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 31511 - 31512 [+] 0. secs (0.u,0.s) +Chars 31513 - 31557 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 31564 - 31572 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 31579 - 31584 [taur.] 0. secs (0.u,0.s) +Chars 31591 - 31610 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 31617 - 31668 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 31675 - 31712 [(unstep;~eapply~euttge_tau_inv...] 0.005 secs (0.005u,0.s) +Chars 31713 - 31717 [Qed.] 0.028 secs (0.028u,0.s) +Chars 31777 - 31971 [#[global]~Instance~euttge_prop...] 0.003 secs (0.003u,0.s) +Chars 31972 - 31978 [Proof.] 0. secs (0.u,0.s) +Chars 31981 - 32037 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) +Chars 32040 - 32044 [Qed.] 0.001 secs (0.001u,0.s) +Chars 32086 - 32271 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 32273 - 32279 [Proof.] 0. secs (0.u,0.s) +Chars 32282 - 32361 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) +Chars 32364 - 32368 [Qed.] 0.001 secs (0.001u,0.s) +Chars 32371 - 32475 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 32476 - 32482 [Proof.] 0. secs (0.u,0.s) +Chars 32483 - 32503 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32504 - 32508 [Qed.] 0. secs (0.u,0.s) +Chars 32510 - 32619 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 32620 - 32626 [Proof.] 0. secs (0.u,0.s) +Chars 32627 - 32647 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32648 - 32652 [Qed.] 0. secs (0.u,0.s) +Chars 32654 - 32756 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) +Chars 32757 - 32763 [Proof.] 0. secs (0.u,0.s) +Chars 32764 - 32785 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32786 - 32790 [Qed.] 0. secs (0.u,0.s) +Chars 32792 - 32899 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) +Chars 32900 - 32906 [Proof.] 0. secs (0.u,0.s) +Chars 32907 - 32927 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32928 - 32932 [Qed.] 0. secs (0.u,0.s) +Chars 32934 - 33034 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 33035 - 33041 [Proof.] 0. secs (0.u,0.s) +Chars 33042 - 33062 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 33063 - 33067 [Qed.] 0. secs (0.u,0.s) +Chars 33069 - 33174 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 33175 - 33181 [Proof.] 0. secs (0.u,0.s) +Chars 33182 - 33202 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 33203 - 33207 [Qed.] 0. secs (0.u,0.s) +Chars 33209 - 33365 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) +Chars 33366 - 33372 [Proof.] 0. secs (0.u,0.s) +Chars 33376 - 33389 [(split;~intro).] 0. secs (0.u,0.s) +Chars 33393 - 33426 [1:~(symmetry~in~H;~symmetry~in...] 0. secs (0.u,0.s) +Chars 33430 - 33561 [all:~~(apply~eq_sub_euttge~wit...] 0.004 secs (0.004u,0.s) +Chars 33562 - 33566 [Qed.] 0.001 secs (0.001u,0.s) +Chars 33568 - 33717 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 33719 - 33747 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 33751 - 33865 [(split;~intros;~revert_until~R...] 0.011 secs (0.01u,0.s) +Chars 33868 - 33907 [all:~(hinduction~H1~before~RR;...] 0.004 secs (0.004u,0.s) +Chars 33938 - 33989 [1-2,~6-7:~(inv~H;~inv~H0;~simp...] 0.256 secs (0.254u,0.001s) +Chars 34005 - 34184 [1,~4:~~(genvis~e~k1~ok1;~inv~H...] 0.237 secs (0.236u,0.001s) +Chars 34212 - 34281 [1,~3:~(inv~H;~simpobs;~taul;~e...] 0.101 secs (0.1u,0.s) +Chars 34284 - 34354 [1-2:~(inv~H0;~simpobs;~taur;~e...] 0.099 secs (0.098u,0.s) +Chars 34355 - 34359 [Qed.] 0.082 secs (0.08u,0.001s) +Chars 34862 - 35028 [Lemma~not_euttge_proper_euttge...] 0.001 secs (0.001u,0.s) +Chars 35031 - 35069 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 35073 - 35079 [intro.] 0. secs (0.u,0.s) +Chars 35081 - 35205 [(assert~~~(Hfalse~:~~~~euttge~...] 0. secs (0.u,0.s) +Chars 35208 - 35209 [{] 0. secs (0.u,0.s) +Chars 35210 - 35252 [(eapply~H~with~(x~:=~Ret~tt)~(...] 0. secs (0.u,0.s) +Chars 35375 - 35376 [-] 0. secs (0.u,0.s) +Chars 35377 - 35389 [reflexivity.] 0. secs (0.u,0.s) +Chars 35394 - 35395 [-] 0. secs (0.u,0.s) +Chars 35396 - 35401 [step.] 0.002 secs (0.002u,0.s) +Chars 35402 - 35407 [taul.] 0. secs (0.u,0.s) +Chars 35408 - 35420 [reflexivity.] 0. secs (0.u,0.s) +Chars 35425 - 35426 [-] 0. secs (0.u,0.s) +Chars 35427 - 35439 [reflexivity.] 0. secs (0.u,0.s) +Chars 35440 - 35441 [}] 0. secs (0.u,0.s) +Chars 35444 - 35459 [step~in~Hfalse.] 0.001 secs (0.001u,0.s) +Chars 35460 - 35471 [(inv~Hfalse).] 0.003 secs (0.003u,0.s) +Chars 35473 - 35477 [Qed.] 0.004 secs (0.004u,0.s) +Chars 35481 - 35648 [Lemma~euttge_proper_flip_euttg...] 0.001 secs (0.001u,0.s) +Chars 35758 - 35764 [Abort.] 0. secs (0.u,0.s) +Chars 35988 - 36159 [#[global]~Instance~euttge_eq_p...] 0.001 secs (0.001u,0.s) +Chars 36160 - 36188 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 36191 - 36229 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) +Chars 36232 - 36248 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 36251 - 36316 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) +Chars 36321 - 36331 [(intros~EQ).] 0. secs (0.u,0.s) +Chars 36332 - 36342 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 36348 - 36377 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) +Chars 36382 - 36421 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 36426 - 36447 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) +Chars 36452 - 36453 [+] 0. secs (0.u,0.s) +Chars 36454 - 36480 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36487 - 36499 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 36506 - 36520 [(genret~r1~or1).] 0. secs (0.u,0.s) +Chars 36527 - 36542 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 36549 - 36584 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.05u,0.s) +Chars 36591 - 36592 [*] 0. secs (0.u,0.s) +Chars 36593 - 36619 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) +Chars 36620 - 36634 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 36643 - 36670 [(genobs~y~oy;~genret~r2~or2).] 0. secs (0.u,0.s) +Chars 36679 - 36694 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 36795 - 36830 [(hinduction~EQy~before~oy;~try...] 0.026 secs (0.026u,0.s) +Chars 36839 - 36864 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) +Chars 36871 - 36872 [*] 0. secs (0.u,0.s) +Chars 36873 - 36909 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 36914 - 36915 [+] 0. secs (0.u,0.s) +Chars 36916 - 36942 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36949 - 36961 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 36968 - 36982 [(gentau~m1~om1).] 0. secs (0.u,0.s) +Chars 36989 - 37004 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 37011 - 37046 [(hinduction~EQx~before~ox;~try...] 0.052 secs (0.052u,0.s) +Chars 37053 - 37054 [*] 0. secs (0.u,0.s) +Chars 37055 - 37073 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) +Chars 37082 - 37096 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 37105 - 37132 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) +Chars 37141 - 37156 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 37165 - 37200 [(hinduction~EQy~before~oy;~try...] 0.03 secs (0.03u,0.s) +Chars 37209 - 37227 [(intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) +Chars 37234 - 37235 [*] 0. secs (0.u,0.s) +Chars 37236 - 37272 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 37277 - 37278 [+] 0. secs (0.u,0.s) +Chars 37279 - 37305 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 37312 - 37324 [(genobs~x~ox).] 0. secs (0.u,0.s) +Chars 37331 - 37347 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) +Chars 37354 - 37369 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 37376 - 37411 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.051u,0.s) +Chars 37418 - 37419 [*] 0. secs (0.u,0.s) +Chars 37420 - 37427 [(intros).] 0. secs (0.u,0.s) +Chars 37436 - 37502 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 37511 - 37525 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 37534 - 37563 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) +Chars 37572 - 37587 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 37596 - 37631 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) +Chars 37640 - 37732 [(intros;~apply~eq_inv_VisF_wea...] 0.022 secs (0.021u,0.s) +Chars 37739 - 37740 [*] 0. secs (0.u,0.s) +Chars 37741 - 37777 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) +Chars 37782 - 37783 [+] 0. secs (0.u,0.s) +Chars 37784 - 37828 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) +Chars 37835 - 37843 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 37850 - 37855 [taul.] 0. secs (0.u,0.s) +Chars 37862 - 37881 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 37888 - 37939 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) +Chars 37946 - 37983 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 37988 - 37989 [+] 0. secs (0.u,0.s) +Chars 37990 - 37995 [easy.] 0.017 secs (0.017u,0.s) +Chars 38045 - 38049 [Qed.] 0.025 secs (0.024u,0.s) +Chars 38051 - 38211 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) +Chars 38212 - 38218 [Proof.] 0. secs (0.u,0.s) +Chars 38221 - 38234 [(split;~intro).] 0. secs (0.u,0.s) +Chars 38237 - 38238 [-] 0. secs (0.u,0.s) +Chars 38361 - 38417 [(symmetry~in~H;~apply~eq_sub_e...] 0. secs (0.u,0.s) +Chars 38422 - 38437 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 38442 - 38481 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) +Chars 38484 - 38485 [-] 0. secs (0.u,0.s) +Chars 38598 - 38639 [(apply~eq_sub_euttge~with~(RR~...] 0. secs (0.u,0.s) +Chars 38644 - 38683 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) +Chars 38684 - 38688 [Qed.] 0.001 secs (0.001u,0.s) +Chars 38691 - 38855 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) +Chars 38856 - 38862 [Proof.] 0. secs (0.u,0.s) +Chars 38866 - 38951 [(split;~revert_until~c;~tower~...] 0.011 secs (0.011u,0.s) +Chars 39025 - 39049 [all:~(inv~H2;~simpobs).] 0.154 secs (0.149u,0.004s) +Chars 39052 - 39137 [all:~~(try~genvis~e~k1~ok1;~in...] 0.297 secs (0.295u,0.002s) +Chars 39141 - 39205 [all:~(try~do~2~inv_Vis;~constr...] 0.17 secs (0.169u,0.001s) +Chars 39208 - 39228 [all:~(inv~H1;~inv~H0).] 0.024 secs (0.023u,0.s) +Chars 39233 - 39291 [all:~(eapply~H;~try~eapply~REL...] 0.001 secs (0.001u,0.s) +Chars 39295 - 39299 [Qed.] 0.07 secs (0.069u,0.s) +Chars 39338 - 39493 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 39494 - 39539 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) +Chars 39541 - 39640 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) +Chars 39641 - 39647 [Proof.] 0. secs (0.u,0.s) +Chars 39650 - 39657 [(intros).] 0. secs (0.u,0.s) +Chars 39658 - 39676 [(destruct~H;~eauto).] 0. secs (0.u,0.s) +Chars 39677 - 39681 [Qed.] 0. secs (0.u,0.s) +Chars 39710 - 39909 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 39910 - 39916 [Proof.] 0. secs (0.u,0.s) +Chars 39919 - 39931 [(unfold~eqit).] 0. secs (0.u,0.s) +Chars 39932 - 39948 [(revert_until~b2).] 0. secs (0.u,0.s) +Chars 40058 - 40077 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 40078 - 40085 [(intros).] 0. secs (0.u,0.s) +Chars 40089 - 40101 [step~in~INL.] 0. secs (0.u,0.s) +Chars 40102 - 40114 [step~in~INR.] 0. secs (0.u,0.s) +Chars 40212 - 40253 [(hinduction~INL~before~CIH;~in...] 0.001 secs (0.001u,0.s) +Chars 40254 - 40266 [clear~t1~t2.] 0. secs (0.u,0.s) +Chars 40298 - 40299 [-] 0. secs (0.u,0.s) +Chars 40300 - 40313 [(genret~r2~ot).] 0. secs (0.u,0.s) +Chars 40318 - 40381 [(hinduction~INR~before~CIH;~in...] 0.029 secs (0.029u,0.s) +Chars 40384 - 40385 [-] 0. secs (0.u,0.s) +Chars 40386 - 40400 [(genobs~t3~ot3).] 0. secs (0.u,0.s) +Chars 40474 - 40546 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) +Chars 40551 - 40552 [{] 0. secs (0.u,0.s) +Chars 40553 - 40599 [(destruct~ot3;~eauto;~right;~r...] 0.008 secs (0.008u,0.s) +Chars 40600 - 40601 [}] 0. secs (0.u,0.s) +Chars 40606 - 40636 [(destruct~DEC~as~[[m3~?]|~EQ]).] 0. secs (0.u,0.s) +Chars 40677 - 40678 [+] 0. secs (0.u,0.s) +Chars 40679 - 40694 [(subst;~simpobs).] 0.001 secs (0.001u,0.s) +Chars 40702 - 40715 [econstructor.] 0. secs (0.u,0.s) +Chars 40722 - 40740 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 40747 - 40766 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) +Chars 40773 - 40782 [now~step.] 0.001 secs (0.001u,0.s) +Chars 40842 - 40843 [+] 0. secs (0.u,0.s) +Chars 40844 - 40891 [(inv~INR;~try~(exfalso;~eapply...] 0.045 secs (0.045u,0.s) +Chars 40898 - 40903 [taul.] 0. secs (0.u,0.s) +Chars 40911 - 40923 [step~in~REL.] 0. secs (0.u,0.s) +Chars 40930 - 41004 [(hinduction~REL0~before~CIH;~i...] 0.003 secs (0.003u,0.s) +Chars 41086 - 41087 [*] 0. secs (0.u,0.s) +Chars 41088 - 41113 [(remember~(RetF~r1)~as~ot).] 0. secs (0.u,0.s) +Chars 41122 - 41186 [(hinduction~REL0~before~CIH;~i...] 0.031 secs (0.031u,0.s) +Chars 41193 - 41194 [*] 0. secs (0.u,0.s) +Chars 41195 - 41222 [(remember~(VisF~e~k1)~as~ot).] 0. secs (0.u,0.s) +Chars 41231 - 41316 [(hinduction~REL0~before~CIH;~i...] 0.023 secs (0.023u,0.s) +Chars 41325 - 41338 [econstructor.] 0. secs (0.u,0.s) +Chars 41339 - 41346 [(intros).] 0. secs (0.u,0.s) +Chars 41355 - 41390 [(apply~(CIH~_~_~_~(REL~v)~(REL...] 0. secs (0.u,0.s) +Chars 41398 - 41399 [*] 0. secs (0.u,0.s) +Chars 41400 - 41421 [(eapply~IHREL0;~eauto).] 0. secs (0.u,0.s) +Chars 41430 - 41454 [(destruct~b1;~inv~CHECK0).] 0.008 secs (0.008u,0.s) +Chars 41463 - 41470 [unstep.] 0.004 secs (0.004u,0.s) +Chars 41471 - 41492 [(apply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) +Chars 41493 - 41502 [now~step.] 0.001 secs (0.001u,0.s) +Chars 41506 - 41507 [-] 0. secs (0.u,0.s) +Chars 41508 - 41535 [(remember~(VisF~e~k2)~as~ot).] 0. secs (0.u,0.s) +Chars 41540 - 41624 [(hinduction~INR~before~CIH;~in...] 0.018 secs (0.018u,0.s) +Chars 41629 - 41642 [econstructor.] 0. secs (0.u,0.s) +Chars 41643 - 41650 [(intros).] 0. secs (0.u,0.s) +Chars 41655 - 41690 [(apply~(CIH~_~_~_~(REL0~v)~(RE...] 0. secs (0.u,0.s) +Chars 41694 - 41695 [-] 0. secs (0.u,0.s) +Chars 41696 - 41713 [eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 41716 - 41717 [-] 0. secs (0.u,0.s) +Chars 41718 - 41731 [(gentau~t0~ot).] 0.001 secs (0.001u,0.s) +Chars 41736 - 41750 [(genobs~t3~ot3).] 0. secs (0.u,0.s) +Chars 41756 - 41818 [(hinduction~INR~before~CIH;~in...] 0.011 secs (0.011u,0.s) +Chars 41823 - 41824 [+] 0. secs (0.u,0.s) +Chars 41825 - 41849 [(eapply~(IHINL~(Tau~m2))).] 0. secs (0.u,0.s) +Chars 41856 - 41868 [step~in~REL.] 0. secs (0.u,0.s) +Chars 41869 - 41886 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 41891 - 41892 [+] 0. secs (0.u,0.s) +Chars 41893 - 41910 [now~eapply~IHINL.] 0. secs (0.u,0.s) Chars 41915 - 41916 [+] 0. secs (0.u,0.s) -Chars 41917 - 41934 [now~eapply~IHINL.] 0. secs (0.u,0.s) -Chars 41939 - 41940 [+] 0. secs (0.u,0.s) -Chars 41941 - 41946 [taur.] 0. secs (0.u,0.s) -Chars 41947 - 41967 [(eapply~IHINR;~eauto).] 0.001 secs (0.001u,0.s) -Chars 41969 - 41973 [Qed.] 0.056 secs (0.055u,0.s) -Chars 41975 - 42034 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) -Chars 42152 - 42306 [#[global]~Instance~Transitive_...] 0.001 secs (0.u,0.s) -Chars 42307 - 42313 [Proof.] 0. secs (0.u,0.s) -Chars 42316 - 42328 [(red;~intros).] 0. secs (0.u,0.s) -Chars 42329 - 42365 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 42369 - 42405 [(eapply~eqit_mono,~eqit_trans;...] 0.002 secs (0.002u,0.s) -Chars 42408 - 42416 [intros~!.] 0. secs (0.u,0.s) -Chars 42417 - 42433 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 42434 - 42438 [Qed.] 0. secs (0.u,0.s) -Chars 42440 - 42558 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 42559 - 42565 [Proof.] 0. secs (0.u,0.s) -Chars 42568 - 42590 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) -Chars 42591 - 42613 [(intros~!;~subst;~eauto).] 0. secs (0.u,0.s) -Chars 42614 - 42618 [Qed.] 0. secs (0.u,0.s) -Chars 42620 - 42771 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 42772 - 42778 [Proof.] 0. secs (0.u,0.s) -Chars 42781 - 42816 [(constructor;~try~typeclasses~...] 0. secs (0.u,0.s) -Chars 42817 - 42821 [Qed.] 0. secs (0.u,0.s) -Chars 42823 - 42945 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 42946 - 42952 [Proof.] 0. secs (0.u,0.s) -Chars 42955 - 42990 [(constructor;~try~typeclasses~...] 0.003 secs (0.003u,0.s) -Chars 42991 - 42995 [Qed.] 0. secs (0.u,0.s) -Chars 42997 - 43088 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 43089 - 43095 [Proof.] 0. secs (0.u,0.s) -Chars 43098 - 43110 [(red;~intros).] 0. secs (0.u,0.s) -Chars 43111 - 43147 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 43148 - 43184 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) -Chars 43187 - 43195 [intros~!.] 0. secs (0.u,0.s) -Chars 43196 - 43212 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 43214 - 43218 [Qed.] 0. secs (0.u,0.s) -Chars 43221 - 43353 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 43354 - 43360 [Proof.] 0. secs (0.u,0.s) -Chars 43363 - 43503 [(assert~~~(Hinf~:~~~~inf_close...] 0. secs (0.u,0.s) -Chars 43506 - 43507 [{] 0. secs (0.u,0.s) -Chars 43508 - 43540 [(intros~T~HTr~x~y~z~Hxy~Hyz~i~...] 0. secs (0.u,0.s) -Chars 43541 - 43604 [(apply~(HTr~_~Hi)~with~y;~[~ex...] 0. secs (0.u,0.s) -Chars 43605 - 43606 [}] 0. secs (0.u,0.s) -Chars 43609 - 43618 [revert~c.] 0. secs (0.u,0.s) -Chars 43619 - 43638 [(apply~(tower~Hinf)).] 0. secs (0.u,0.s) -Chars 43639 - 43655 [(intros~c~Htrans).] 0. secs (0.u,0.s) -Chars 43658 - 43666 [intros~!.] 0. secs (0.u,0.s) -Chars 43667 - 43677 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 43678 - 43709 [(eapply~Transitive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 43710 - 43714 [Qed.] 0.002 secs (0.002u,0.s) -Chars 43716 - 43851 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 43852 - 43858 [Proof.] 0. secs (0.u,0.s) -Chars 43861 - 43892 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 43893 - 43897 [Qed.] 0. secs (0.u,0.s) -Chars 43901 - 43981 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 43982 - 43988 [Proof.] 0. secs (0.u,0.s) -Chars 43991 - 44055 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) -Chars 44056 - 44060 [Qed.] 0. secs (0.u,0.s) -Chars 44061 - 44141 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 44142 - 44148 [Proof.] 0. secs (0.u,0.s) -Chars 44151 - 44218 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) -Chars 44219 - 44223 [Qed.] 0. secs (0.u,0.s) -Chars 44225 - 44343 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 44344 - 44350 [Proof.] 0. secs (0.u,0.s) -Chars 44353 - 44364 [(repeat~red).] 0. secs (0.u,0.s) -Chars 44368 - 44393 [(intros~t~t'~EQ1~u~u'~EQ2).] 0. secs (0.u,0.s) -Chars 44396 - 44416 [(split;~intros~EQUIV).] 0. secs (0.u,0.s) -Chars 44420 - 44421 [-] 0. secs (0.u,0.s) -Chars 44422 - 44438 [symmetry~in~EQ1.] 0. secs (0.u,0.s) -Chars 44444 - 44486 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) -Chars 44491 - 44522 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) -Chars 44527 - 44571 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) -Chars 44576 - 44612 [now~rewrite~rcompose_eqr~in~EQ...] 0.002 secs (0.002u,0.s) -Chars 44615 - 44616 [-] 0. secs (0.u,0.s) -Chars 44617 - 44659 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) -Chars 44664 - 44695 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) -Chars 44700 - 44716 [symmetry~in~EQ2.] 0. secs (0.u,0.s) -Chars 44721 - 44765 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) -Chars 44770 - 44806 [now~rewrite~rcompose_eqr~in~EQ...] 0.007 secs (0.007u,0.s) -Chars 44807 - 44811 [Qed.] 0.002 secs (0.002u,0.s) -Chars 44813 - 44907 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 44908 - 44914 [Proof.] 0. secs (0.u,0.s) -Chars 44917 - 44935 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 44936 - 44940 [Qed.] 0. secs (0.u,0.s) -Chars 44942 - 45037 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 45038 - 45044 [Proof.] 0. secs (0.u,0.s) -Chars 45047 - 45059 [(red;~intros).] 0. secs (0.u,0.s) -Chars 45060 - 45096 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 45097 - 45133 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) -Chars 45136 - 45144 [intros~!.] 0. secs (0.u,0.s) -Chars 45145 - 45161 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 45163 - 45167 [Qed.] 0. secs (0.u,0.s) -Chars 45169 - 45258 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) -Chars 45259 - 45265 [Proof.] 0. secs (0.u,0.s) -Chars 45268 - 45299 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 45301 - 45305 [Qed.] 0. secs (0.u,0.s) -Chars 45307 - 45459 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 45461 - 45467 [Proof.] 0. secs (0.u,0.s) -Chars 45471 - 45489 [(split;~intros~!).] 0. secs (0.u,0.s) -Chars 45492 - 45530 [(do~2~(etransitivity;~symmetry...] 0.005 secs (0.005u,0.s) -Chars 45533 - 45575 [(do~2~(etransitivity;~eauto);~...] 0.004 secs (0.004u,0.s) -Chars 45577 - 45581 [Qed.] 0.001 secs (0.001u,0.s) -Chars 45612 - 45625 [Module~Tests.] 0. secs (0.u,0.s) -Chars 45628 - 45664 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 45667 - 45699 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 45702 - 45743 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 45746 - 45782 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 45785 - 45821 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 45824 - 45859 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 45862 - 45900 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 45903 - 45938 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 45941 - 45979 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 45982 - 46016 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) -Chars 46019 - 46054 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 46056 - 46073 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 46078 - 46093 [(rewrite~EQUIV2).] 0.013 secs (0.013u,0.s) -Chars 46098 - 46113 [(rewrite~<-~EQ2).] 0.011 secs (0.011u,0.s) -Chars 46118 - 46141 [(eapply~eq_proper_euttC).] 0.001 secs (0.001u,0.s) -Chars 46146 - 46161 [(rewrite~<-~EQ1).] 0.001 secs (0.001u,0.s) -Chars 46166 - 46176 [exact~EQ1.] 0. secs (0.u,0.s) -Chars 46182 - 46202 [(rewrite~EQ2,~<-~EQ2).] 0.004 secs (0.004u,0.s) -Chars 46208 - 46218 [exact~EQ2.] 0. secs (0.u,0.s) -Chars 46223 - 46228 [step.] 0.003 secs (0.003u,0.s) -Chars 46233 - 46238 [step.] 0.003 secs (0.003u,0.s) -Chars 46244 - 46259 [(rewrite~<-~EQ1).] 0.01 secs (0.01u,0.s) -Chars 46265 - 46279 [(rewrite~<-~GT).] 0.035 secs (0.035u,0.s) -Chars 46285 - 46297 [(rewrite~EQ1).] 0.01 secs (0.009u,0.s) -Chars 46302 - 46320 [(rewrite~<-~EQUIV1).] 0.012 secs (0.012u,0.s) -Chars 46323 - 46329 [Abort.] 0. secs (0.u,0.s) -Chars 46334 - 46379 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) -Chars 46439 - 46479 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) -Chars 46484 - 46493 [(intros~H).] 0. secs (0.u,0.s) -Chars 46498 - 46510 [(rewrite~EQ1).] 0.008 secs (0.008u,0.s) -Chars 46515 - 46532 [(rewrite~EQ1~in~H).] 0.007 secs (0.007u,0.s) -Chars 46537 - 46555 [(rewrite~<-~EQUIV1).] 0.009 secs (0.009u,0.s) -Chars 46600 - 46623 [(rewrite~<-~EQUIV1~in~H).] 0.008 secs (0.008u,0.s) -Chars 46628 - 46651 [(rewrite~<-~EQUIV2~in~H).] 0.011 secs (0.011u,0.s) -Chars 46657 - 46669 [(rewrite~GT2).] 0.002 secs (0.002u,0.s) -Chars 46674 - 46694 [(rewrite~<-~GT2~in~H).] 0.029 secs (0.028u,0.s) -Chars 46699 - 46710 [(rewrite~GT).] 0.002 secs (0.002u,0.s) -Chars 46715 - 46734 [(rewrite~<-~GT~in~H).] 0.029 secs (0.029u,0.s) -Chars 46796 - 46810 [Fail~symmetry.] 0. secs (0.u,0.s) -Chars 46815 - 46834 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) -Chars 46839 - 46853 [(rewrite~<-~GT).] 0.029 secs (0.029u,0.s) -Chars 46859 - 46870 [assumption.] 0. secs (0.u,0.s) -Chars 46874 - 46878 [Qed.] 0.002 secs (0.002u,0.s) -Chars 46882 - 46925 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) -Chars 46929 - 46996 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) -Chars 46999 - 47039 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) -Chars 47045 - 47050 [step.] 0.001 secs (0.001u,0.s) -Chars 47084 - 47091 [unstep.] 0.003 secs (0.003u,0.s) -Chars 47097 - 47141 [(assert~(eutt~(E:=VE)~eq~(Ret~...] 0. secs (0.u,0.s) -Chars 47147 - 47152 [step.] 0.002 secs (0.002u,0.s) -Chars 47211 - 47237 [(rewrite~observing_observe).] 0.006 secs (0.006u,0.s) -Chars 47238 - 47244 [Abort.] 0. secs (0.u,0.s) -Chars 47248 - 47272 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) -Chars 47277 - 47286 [(intros~H).] 0. secs (0.u,0.s) -Chars 47291 - 47303 [(rewrite~EQ1).] 0. secs (0.u,0.s) -Chars 47308 - 47325 [(rewrite~EQ1~in~H).] 0.008 secs (0.008u,0.s) -Chars 47330 - 47339 [symmetry.] 0. secs (0.u,0.s) -Chars 47344 - 47358 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 47363 - 47375 [reflexivity.] 0. secs (0.u,0.s) -Chars 47376 - 47380 [Qed.] 0.001 secs (0.001u,0.s) -Chars 47467 - 47542 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) -Chars 47547 - 47565 [(intros~EQ1~EQ2'~H).] 0. secs (0.u,0.s) -Chars 47570 - 47582 [(rewrite~EQ1).] 0.01 secs (0.01u,0.s) -Chars 47587 - 47599 [(rewrite~EQ2).] 0.001 secs (0.001u,0.s) -Chars 47604 - 47628 [(apply~eqit_flip~in~EQ2').] 0. secs (0.u,0.s) -Chars 47633 - 47653 [(rewrite~EQ2~in~EQ2').] 0.016 secs (0.016u,0.s) -Chars 47658 - 47702 [(eapply~(eqit_mono~RR~RR~false...] 0.002 secs (0.002u,0.s) -Chars 47769 - 47773 [Qed.] 0.002 secs (0.002u,0.s) -Chars 47824 - 47848 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) -Chars 47853 - 47872 [icoinduction~r~CIH.] 0.002 secs (0.002u,0.s) -Chars 47877 - 47884 [(intros).] 0. secs (0.u,0.s) -Chars 47889 - 47894 [step.] 0.003 secs (0.003u,0.s) -Chars 47900 - 47910 [(rewrite~H).] 0.017 secs (0.017u,0.s) -Chars 47916 - 47928 [reflexivity.] 0. secs (0.u,0.s) -Chars 47930 - 47934 [Qed.] 0.003 secs (0.003u,0.s) -Chars 47937 - 47947 [End~Tests.] 0. secs (0.u,0.s) -Chars 47949 - 48001 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) -Chars 48006 - 48022 [Section~eqit_eq.] 0. secs (0.u,0.s) -Chars 48073 - 48111 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 48113 - 48172 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) -Chars 48174 - 48307 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 48308 - 48314 [Proof.] 0. secs (0.u,0.s) -Chars 48317 - 48346 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 48347 - 48351 [Qed.] 0. secs (0.u,0.s) -Chars 48353 - 48480 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 48481 - 48487 [Proof.] 0. secs (0.u,0.s) -Chars 48490 - 48519 [(apply~Symmetric_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 48521 - 48525 [Qed.] 0. secs (0.u,0.s) -Chars 48574 - 48642 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 48643 - 48649 [Proof.] 0. secs (0.u,0.s) -Chars 48652 - 48680 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 48681 - 48685 [Qed.] 0. secs (0.u,0.s) -Chars 48687 - 48749 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 48750 - 48756 [Proof.] 0. secs (0.u,0.s) -Chars 48759 - 48787 [(apply~Symmetric_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 48788 - 48792 [Qed.] 0. secs (0.u,0.s) -Chars 48827 - 48926 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) -Chars 48927 - 48933 [Proof.] 0. secs (0.u,0.s) -Chars 48936 - 48982 [(constructor;~step~in~H;~step;...] 0.002 secs (0.002u,0.s) -Chars 48985 - 48989 [Qed.] 0.001 secs (0.001u,0.s) -Chars 48992 - 49087 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) -Chars 49088 - 49094 [Proof.] 0. secs (0.u,0.s) -Chars 49097 - 49115 [(constructor;~step).] 0.001 secs (0.001u,0.s) -Chars 49116 - 49129 [econstructor.] 0. secs (0.u,0.s) -Chars 49130 - 49136 [eauto.] 0. secs (0.u,0.s) -Chars 49137 - 49141 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49143 - 49270 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) -Chars 49271 - 49277 [Proof.] 0. secs (0.u,0.s) -Chars 49280 - 49302 [(constructor;~red~in~H).] 0. secs (0.u,0.s) -Chars 49303 - 49339 [(step;~econstructor;~auto~with...] 0.001 secs (0.001u,0.s) -Chars 49340 - 49344 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49346 - 49430 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 49431 - 49437 [Proof.] 0. secs (0.u,0.s) -Chars 49440 - 49459 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 49462 - 49467 [step.] 0.001 secs (0.001u,0.s) -Chars 49468 - 49498 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) -Chars 49499 - 49528 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 49529 - 49533 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49535 - 49680 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 49681 - 49687 [Proof.] 0. secs (0.u,0.s) -Chars 49690 - 49698 [intros~!.] 0. secs (0.u,0.s) -Chars 49701 - 49707 [(inv~H).] 0.007 secs (0.007u,0.s) -Chars 49710 - 49715 [step.] 0.002 secs (0.002u,0.s) -Chars 49718 - 49744 [(rewrite~observing_observe).] 0. secs (0.u,0.s) -Chars 49747 - 49752 [step.] 0.003 secs (0.003u,0.s) -Chars 49753 - 49765 [reflexivity.] 0. secs (0.u,0.s) -Chars 49766 - 49770 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49797 - 49854 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) -Chars 49855 - 49861 [Proof.] 0. secs (0.u,0.s) -Chars 49862 - 49887 [(apply~observing_sub_eqit).] 0. secs (0.u,0.s) -Chars 49888 - 49901 [econstructor.] 0. secs (0.u,0.s) -Chars 49902 - 49914 [reflexivity.] 0. secs (0.u,0.s) -Chars 49915 - 49919 [Qed.] 0. secs (0.u,0.s) -Chars 49921 - 49976 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) -Chars 49977 - 49983 [Proof.] 0. secs (0.u,0.s) -Chars 49984 - 50001 [(apply~itree_eta_).] 0. secs (0.u,0.s) -Chars 50002 - 50006 [Qed.] 0. secs (0.u,0.s) -Chars 50008 - 50066 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) -Chars 50067 - 50073 [Proof.] 0. secs (0.u,0.s) -Chars 50074 - 50086 [reflexivity.] 0. secs (0.u,0.s) -Chars 50087 - 50091 [Qed.] 0. secs (0.u,0.s) -Chars 50093 - 50105 [End~eqit_eq.] 0. secs (0.u,0.s) -Chars 50139 - 50227 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 50228 - 50234 [Proof.] 0. secs (0.u,0.s) -Chars 50237 - 50252 [(intros;~sinv~H).] 0.006 secs (0.006u,0.s) -Chars 50253 - 50257 [Qed.] 0.002 secs (0.002u,0.s) -Chars 50259 - 50410 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 50411 - 50417 [Proof.] 0. secs (0.u,0.s) -Chars 50420 - 50467 [(intros;~step~in~H;~apply~eqit...] 0. secs (0.u,0.s) -Chars 50470 - 50524 [(destruct~H~as~[[?~[->~?]]|~[]...] 0. secs (0.u,0.s) -Chars 50527 - 50549 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 50550 - 50554 [Qed.] 0.002 secs (0.002u,0.s) -Chars 50556 - 50669 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 50670 - 50676 [Proof.] 0. secs (0.u,0.s) -Chars 50679 - 50716 [(intros;~sinv~H;~try~inv~CHECK...] 0.014 secs (0.013u,0.s) -Chars 50717 - 50721 [Qed.] 0.003 secs (0.003u,0.s) -Chars 50723 - 50824 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 50825 - 50831 [Proof.] 0. secs (0.u,0.s) -Chars 50834 - 50841 [(intros).] 0. secs (0.u,0.s) -Chars 50842 - 50852 [step~in~H.] 0. secs (0.u,0.s) -Chars 50853 - 50859 [(inv~H).] 0.001 secs (0.001u,0.s) -Chars 50861 - 50865 [Qed.] 0.002 secs (0.002u,0.s) -Chars 50918 - 51147 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0.001 secs (0.001u,0.s) -Chars 51148 - 51154 [Proof.] 0. secs (0.u,0.s) -Chars 51157 - 51164 [(intros).] 0. secs (0.u,0.s) -Chars 51165 - 51207 [(step~in~H;~apply~eqitF_inv_Vi...] 0. secs (0.u,0.s) -Chars 51210 - 51232 [(destruct~H~as~[p~[]]).] 0. secs (0.u,0.s) -Chars 51233 - 51255 [(exists~p;~split;~auto).] 0. secs (0.u,0.s) -Chars 51256 - 51260 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51286 - 51492 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 51493 - 51499 [Proof.] 0. secs (0.u,0.s) -Chars 51502 - 51571 [(intros~H~x;~step~in~H;~apply~...] 0. secs (0.u,0.s) -Chars 51572 - 51576 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51619 - 51698 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) -Chars 51699 - 51705 [Proof.] 0. secs (0.u,0.s) -Chars 51708 - 51743 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) -Chars 51744 - 51748 [Qed.] 0. secs (0.u,0.s) -Chars 51750 - 51832 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) -Chars 51833 - 51839 [Proof.] 0. secs (0.u,0.s) -Chars 51842 - 51877 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) -Chars 51878 - 51882 [Qed.] 0. secs (0.u,0.s) -Chars 51884 - 52010 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 52011 - 52017 [Proof.] 0. secs (0.u,0.s) -Chars 52020 - 52027 [(intros).] 0. secs (0.u,0.s) -Chars 52028 - 52033 [step.] 0.001 secs (0.001u,0.s) -Chars 52034 - 52054 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 52055 - 52069 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 52071 - 52075 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52077 - 52203 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 52204 - 52210 [Proof.] 0. secs (0.u,0.s) -Chars 52213 - 52220 [(intros).] 0. secs (0.u,0.s) -Chars 52221 - 52226 [step.] 0.002 secs (0.002u,0.s) -Chars 52227 - 52247 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 52248 - 52262 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 52264 - 52268 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52270 - 52324 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) -Chars 52325 - 52331 [Proof.] 0. secs (0.u,0.s) -Chars 52334 - 52351 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) -Chars 52352 - 52364 [reflexivity.] 0. secs (0.u,0.s) -Chars 52365 - 52369 [Qed.] 0. secs (0.u,0.s) -Chars 52371 - 52423 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) -Chars 52424 - 52430 [Proof.] 0. secs (0.u,0.s) -Chars 52433 - 52467 [(apply~euttge_sub_eutt,~tau_eu...] 0. secs (0.u,0.s) -Chars 52468 - 52472 [Qed.] 0. secs (0.u,0.s) -Chars 52475 - 52549 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) -Chars 52550 - 52556 [Proof.] 0. secs (0.u,0.s) -Chars 52559 - 52564 [step.] 0.001 secs (0.001u,0.s) -Chars 52565 - 52576 [(repeat~red).] 0. secs (0.u,0.s) -Chars 52577 - 52585 [simpobs.] 0. secs (0.u,0.s) -Chars 52586 - 52592 [(simpl).] 0. secs (0.u,0.s) -Chars 52593 - 52599 [subst.] 0. secs (0.u,0.s) -Chars 52600 - 52607 [unstep.] 0.003 secs (0.003u,0.s) -Chars 52608 - 52636 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 52637 - 52641 [Qed.] 0.002 secs (0.002u,0.s) -Chars 52689 - 53002 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) -Chars 53004 - 53010 [Proof.] 0. secs (0.u,0.s) -Chars 53012 - 53048 [(intros~!;~unfold~flip,~eq_itr...] 0. secs (0.u,0.s) -Chars 54211 - 54217 [idtac.] 0. secs (0.u,0.s) -Chars 54257 - 54317 [(assert~(rcompose~RR1~RS~<=~RS...] 0. secs (0.u,0.s) -Chars 54321 - 54388 [(assert~(rcompose~RS~(flip~RR2...] 0. secs (0.u,0.s) -Chars 54391 - 54489 [(assert~(eqit~b1~b2~RR1~x~y)~b...] 0.005 secs (0.004u,0.s) -Chars 54492 - 54596 [(assert~(eqit~b1~b2~RR2~x0~y0)...] 0.007 secs (0.007u,0.s) -Chars 54625 - 54669 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) -Chars 54673 - 54771 [(assert~(Hdiag~:~eqit~b1~b2~RS...] 0.002 secs (0.002u,0.s) -Chars 54809 - 54831 [(apply~eqit_flip~in~H0).] 0. secs (0.u,0.s) -Chars 54881 - 54941 [(eapply~eqit_mono~with~(RR~:=~...] 0.003 secs (0.003u,0.s) -Chars 54945 - 54970 [(eapply~eqit_trans;~eauto).] 0.003 secs (0.003u,0.s) -Chars 54974 - 55043 [(eapply~eqit_mono~with~(b1~:=~...] 0.006 secs (0.006u,0.s) -Chars 55045 - 55049 [Qed.] 0.002 secs (0.002u,0.s) -Chars 55092 - 55241 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) -Chars 55242 - 55248 [Proof.] 0. secs (0.u,0.s) -Chars 55251 - 55258 [(intros).] 0. secs (0.u,0.s) -Chars 55261 - 55277 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 55280 - 55281 [-] 0. secs (0.u,0.s) -Chars 55282 - 55302 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 55303 - 55315 [2:~(apply~H).] 0. secs (0.u,0.s) -Chars 55321 - 55338 [(apply~eqit_Tau_r).] 0. secs (0.u,0.s) -Chars 55339 - 55351 [reflexivity.] 0. secs (0.u,0.s) -Chars 55354 - 55355 [-] 0. secs (0.u,0.s) -Chars 55356 - 55361 [step.] 0.001 secs (0.001u,0.s) -Chars 55362 - 55367 [taul.] 0. secs (0.u,0.s) -Chars 55368 - 55382 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 55384 - 55388 [Qed.] 0.002 secs (0.002u,0.s) -Chars 55390 - 55539 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) -Chars 55540 - 55546 [Proof.] 0. secs (0.u,0.s) -Chars 55549 - 55556 [(intros).] 0. secs (0.u,0.s) -Chars 55559 - 55575 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 55578 - 55579 [-] 0. secs (0.u,0.s) -Chars 55580 - 55600 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 55601 - 55609 [(apply~H).] 0. secs (0.u,0.s) -Chars 55614 - 55631 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) -Chars 55632 - 55644 [reflexivity.] 0. secs (0.u,0.s) -Chars 55647 - 55648 [-] 0. secs (0.u,0.s) -Chars 55649 - 55654 [step.] 0.001 secs (0.001u,0.s) -Chars 55655 - 55660 [taur.] 0. secs (0.u,0.s) -Chars 55661 - 55675 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 55676 - 55680 [Qed.] 0.001 secs (0.001u,0.s) -Chars 55682 - 55771 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 55772 - 55778 [Proof.] 0. secs (0.u,0.s) -Chars 55781 - 55794 [(intros~Heutt).] 0. secs (0.u,0.s) -Chars 55795 - 55809 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 55813 - 55831 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) -Chars 55835 - 55863 [(remember~(observe~(Ret~r1))).] 0. secs (0.u,0.s) -Chars 55866 - 55880 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 55883 - 55914 [(remember~{|~_observe~:=~ot2~|}).] 0. secs (0.u,0.s) -Chars 55917 - 55962 [(hinduction~Heutt~before~r1;~i...] 0.007 secs (0.007u,0.s) -Chars 55966 - 55967 [-] 0. secs (0.u,0.s) -Chars 55968 - 55987 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) -Chars 55988 - 56006 [(rewrite~itree_eta).] 0.01 secs (0.01u,0.s) -Chars 56007 - 56026 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 56027 - 56031 [Qed.] 0.004 secs (0.004u,0.s) -Chars 56128 - 56217 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 56218 - 56224 [Proof.] 0. secs (0.u,0.s) -Chars 56227 - 56240 [(intros~Heutt).] 0. secs (0.u,0.s) -Chars 56241 - 56255 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 56260 - 56278 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) -Chars 56282 - 56357 [(remember~(observe~(Ret~r2));~...] 0. secs (0.u,0.s) -Chars 56360 - 56404 [(hinduction~Heutt~before~R;~in...] 0.008 secs (0.008u,0.s) -Chars 56408 - 56409 [-] 0. secs (0.u,0.s) -Chars 56410 - 56429 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) -Chars 56430 - 56448 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) -Chars 56449 - 56468 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 56469 - 56473 [Qed.] 0.004 secs (0.004u,0.s) -Chars 56517 - 56684 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) -Chars 56686 - 56782 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 56783 - 56789 [Proof.] 0. secs (0.u,0.s) -Chars 56792 - 56843 [(apply~observing_sub_eqit;~con...] 0. secs (0.u,0.s) -Chars 56844 - 56848 [Qed.] 0. secs (0.u,0.s) -Chars 56850 - 56939 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) -Chars 56940 - 56946 [Proof.] 0. secs (0.u,0.s) -Chars 56947 - 56983 [(apply~observing_sub_eqit,~bin...] 0. secs (0.u,0.s) -Chars 56984 - 56988 [Qed.] 0. secs (0.u,0.s) -Chars 56990 - 57085 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) -Chars 57086 - 57092 [Proof.] 0. secs (0.u,0.s) -Chars 57093 - 57123 [(apply~(unfold_bind~(Tau~t)~k)).] 0. secs (0.u,0.s) -Chars 57124 - 57128 [Qed.] 0. secs (0.u,0.s) -Chars 57130 - 57274 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) -Chars 57275 - 57281 [Proof.] 0. secs (0.u,0.s) -Chars 57282 - 57315 [(apply~(unfold_bind~(Vis~e~ek)...] 0. secs (0.u,0.s) -Chars 57316 - 57320 [Qed.] 0. secs (0.u,0.s) -Chars 57322 - 57440 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) -Chars 57441 - 57447 [Proof.] 0. secs (0.u,0.s) -Chars 57450 - 57475 [(rewrite~unfold_bind;~cbn).] 0.003 secs (0.002u,0.s) -Chars 57478 - 57483 [step.] 0.001 secs (0.001u,0.s) -Chars 57486 - 57498 [constructor.] 0. secs (0.u,0.s) -Chars 57501 - 57508 [(intros).] 0. secs (0.u,0.s) -Chars 57509 - 57526 [(apply~bind_ret_l).] 0. secs (0.u,0.s) -Chars 57527 - 57531 [Qed.] 0.002 secs (0.002u,0.s) -Chars 57533 - 57690 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0.001 secs (0.001u,0.s) -Chars 57691 - 57697 [Proof.] 0. secs (0.u,0.s) -Chars 57700 - 57722 [(rewrite~unfold_aloop_).] 0.009 secs (0.009u,0.s) -Chars 57723 - 57735 [reflexivity.] 0. secs (0.u,0.s) -Chars 57736 - 57740 [Qed.] 0.001 secs (0.001u,0.s) -Chars 57742 - 57864 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 57865 - 57871 [Proof.] 0. secs (0.u,0.s) -Chars 57874 - 57922 [(rewrite~itree_eta,~(itree_eta...] 0.002 secs (0.002u,0.s) -Chars 57925 - 57937 [reflexivity.] 0. secs (0.u,0.s) -Chars 57938 - 57942 [Qed.] 0.001 secs (0.001u,0.s) -Chars 57944 - 58058 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) -Chars 58059 - 58119 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) -Chars 58121 - 58136 [Section~eqit_h.] 0. secs (0.u,0.s) -Chars 58138 - 58204 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 58263 - 58380 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) -Chars 58381 - 58387 [Proof.] 0. secs (0.u,0.s) -Chars 58390 - 58406 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 58409 - 58410 [-] 0. secs (0.u,0.s) -Chars 58411 - 58421 [step~in~H.] 0. secs (0.u,0.s) -Chars 58422 - 58427 [step.] 0.001 secs (0.001u,0.s) -Chars 58434 - 58451 [move~H~before~RR.] 0. secs (0.u,0.s) -Chars 58452 - 58467 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 58472 - 58500 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) -Chars 58506 - 58534 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) -Chars 58540 - 58554 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 58560 - 58574 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 58580 - 58636 [(hinduction~H~before~RR;~intro...] 0.017 secs (0.017u,0.s) -Chars 58642 - 58643 [+] 0. secs (0.u,0.s) -Chars 58644 - 58655 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 58661 - 58662 [+] 0. secs (0.u,0.s) -Chars 58663 - 58669 [(inv~H).] 0.012 secs (0.011u,0.s) -Chars 58677 - 58678 [*] 0. secs (0.u,0.s) -Chars 58679 - 58684 [taul.] 0. secs (0.u,0.s) -Chars 58685 - 58707 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 58715 - 58716 [*] 0. secs (0.u,0.s) -Chars 58717 - 58722 [taul.] 0. secs (0.u,0.s) -Chars 58723 - 58745 [(eapply~IHeqitF;~eauto).] 0.004 secs (0.002u,0.s) -Chars 58751 - 58752 [+] 0. secs (0.u,0.s) -Chars 58753 - 58759 [(inv~H).] 0.014 secs (0.01u,0.s) -Chars 58767 - 58768 [*] 0. secs (0.u,0.s) -Chars 58769 - 58774 [taur.] 0. secs (0.u,0.s) -Chars 58775 - 58797 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 58805 - 58806 [*] 0. secs (0.u,0.s) -Chars 58807 - 58812 [taur.] 0. secs (0.u,0.s) -Chars 58813 - 58835 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 58839 - 58840 [-] 0. secs (0.u,0.s) -Chars 58841 - 58846 [step.] 0.001 secs (0.001u,0.s) -Chars 58847 - 58863 [now~constructor.] 0. secs (0.u,0.s) -Chars 58867 - 58871 [Qed.] 0.009 secs (0.009u,0.s) -Chars 58874 - 59097 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0.001 secs (0.001u,0.s) -Chars 59098 - 59104 [Proof.] 0. secs (0.u,0.s) -Chars 59107 - 59123 [(destruct~p;~cbn).] 0. secs (0.u,0.s) -Chars 59124 - 59136 [(intros~<-~H).] 0. secs (0.u,0.s) -Chars 59137 - 59142 [step.] 0.001 secs (0.001u,0.s) -Chars 59143 - 59156 [econstructor.] 0. secs (0.u,0.s) -Chars 59157 - 59165 [(apply~H).] 0. secs (0.u,0.s) -Chars 59166 - 59170 [Qed.] 0.002 secs (0.002u,0.s) -Chars 59172 - 59344 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) -Chars 59345 - 59351 [Proof.] 0. secs (0.u,0.s) -Chars 59354 - 59406 [(apply~eqit_Vis_gen~with~(p~:=...] 0. secs (0.u,0.s) -Chars 59407 - 59411 [Qed.] 0. secs (0.u,0.s) -Chars 59413 - 59510 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) -Chars 59511 - 59517 [Proof.] 0. secs (0.u,0.s) -Chars 59520 - 59536 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 59539 - 59540 [-] 0. secs (0.u,0.s) -Chars 59541 - 59546 [step.] 0.001 secs (0.001u,0.s) -Chars 59547 - 59563 [now~constructor.] 0. secs (0.u,0.s) -Chars 59566 - 59567 [-] 0. secs (0.u,0.s) -Chars 59568 - 59575 [(sinv~H).] 0.002 secs (0.002u,0.s) -Chars 59577 - 59581 [Qed.] 0.002 secs (0.002u,0.s) -Chars 59766 - 60084 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) -Chars 60085 - 60091 [Proof.] 0. secs (0.u,0.s) -Chars 60095 - 60111 [(revert_until~U2).] 0. secs (0.u,0.s) -Chars 60115 - 60131 [tower~induction.] 0.005 secs (0.005u,0.s) -Chars 60135 - 60136 [-] 0. secs (0.u,0.s) -Chars 60137 - 60144 [(intros).] 0. secs (0.u,0.s) -Chars 60148 - 60165 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) -Chars 60170 - 60171 [-] 0. secs (0.u,0.s) -Chars 60172 - 60179 [(intros).] 0. secs (0.u,0.s) -Chars 60183 - 60193 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 60197 - 60211 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 60216 - 60230 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 60233 - 60275 [(hinduction~H0~before~RR;~intr...] 0.044 secs (0.044u,0.s) -Chars 60360 - 60397 [1-3:~(rewrite~2!observe_bind;~...] 0.019 secs (0.019u,0.s) -Chars 60412 - 60413 [+] 0. secs (0.u,0.s) -Chars 60414 - 60431 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) -Chars 60448 - 60449 [+] 0. secs (0.u,0.s) -Chars 60450 - 60462 [constructor.] 0. secs (0.u,0.s) -Chars 60467 - 60483 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60489 - 60517 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) -Chars 60532 - 60533 [+] 0. secs (0.u,0.s) -Chars 60534 - 60546 [constructor.] 0. secs (0.u,0.s) -Chars 60552 - 60558 [intro.] 0. secs (0.u,0.s) -Chars 60564 - 60580 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60585 - 60613 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) -Chars 60629 - 60630 [+] 0. secs (0.u,0.s) -Chars 60631 - 60652 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 60658 - 60666 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 60672 - 60677 [taul.] 0. secs (0.u,0.s) -Chars 60683 - 60705 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60723 - 60724 [+] 0. secs (0.u,0.s) -Chars 60725 - 60758 [setoid_rewrite~observe_bind~at~2.] 0.023 secs (0.023u,0.s) -Chars 60764 - 60772 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 60778 - 60783 [taur.] 0. secs (0.u,0.s) -Chars 60789 - 60811 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60813 - 60817 [Qed.] 0.009 secs (0.009u,0.s) -Chars 60820 - 61012 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) -Chars 61013 - 61019 [Proof.] 0. secs (0.u,0.s) -Chars 61024 - 61036 [(unfold~eutt).] 0. secs (0.u,0.s) -Chars 61037 - 61067 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) -Chars 61070 - 61074 [Qed.] 0. secs (0.u,0.s) -Chars 61077 - 61311 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) -Chars 61312 - 61318 [Proof.] 0. secs (0.u,0.s) -Chars 61323 - 61354 [(eapply~eqit_bind_chain;~intros).] 0. secs (0.u,0.s) -Chars 61360 - 61405 [all:~now~do~2~step;~[~apply~EQ...] 0.026 secs (0.026u,0.s) -Chars 61406 - 61410 [Qed.] 0.002 secs (0.002u,0.s) -Chars 61414 - 61425 [End~eqit_h.] 0. secs (0.u,0.s) -Chars 61427 - 61470 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 61472 - 61515 [Ltac~etau~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 61517 - 61568 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) -Chars 61570 - 61625 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) -Chars 61630 - 61706 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) -Chars 61707 - 61713 [Proof.] 0. secs (0.u,0.s) -Chars 61716 - 61731 [(apply~eqit_Tau).] 0. secs (0.u,0.s) -Chars 61732 - 61736 [Qed.] 0. secs (0.u,0.s) -Chars 61738 - 61817 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) -Chars 61818 - 61824 [Proof.] 0. secs (0.u,0.s) -Chars 61827 - 61842 [(apply~eqit_Tau).] 0. secs (0.u,0.s) -Chars 61843 - 61847 [Qed.] 0. secs (0.u,0.s) -Chars 61849 - 62111 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 62112 - 62118 [Proof.] 0. secs (0.u,0.s) -Chars 62121 - 62128 [(intros).] 0. secs (0.u,0.s) -Chars 62131 - 62161 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.u,0.s) -Chars 62163 - 62167 [Qed.] 0. secs (0.u,0.s) -Chars 62169 - 62430 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) -Chars 62431 - 62437 [Proof.] 0. secs (0.u,0.s) -Chars 62440 - 62465 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) -Chars 62466 - 62470 [Qed.] 0.002 secs (0.002u,0.s) -Chars 62473 - 62634 [#[global]~Instance~eqit_subst~...] 0.001 secs (0.001u,0.s) -Chars 62635 - 62641 [Proof.] 0. secs (0.u,0.s) -Chars 62644 - 62678 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) -Chars 62681 - 62701 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 62702 - 62706 [Qed.] 0.004 secs (0.001u,0.s) -Chars 62708 - 62867 [#[global]~Instance~eqit_bind~~...] 0.001 secs (0.u,0.s) -Chars 62868 - 62874 [Proof.] 0. secs (0.u,0.s) -Chars 62877 - 62911 [(intros~!;~eapply~eqit_bind';~...] 0.002 secs (0.001u,0.s) -Chars 62914 - 62934 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 62935 - 62939 [Qed.] 0.002 secs (0.001u,0.s) -Chars 62941 - 63188 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0.005 secs (0.002u,0.s) -Chars 63189 - 63195 [Proof.] 0. secs (0.u,0.s) -Chars 63198 - 63223 [(unfold~ITree.map;~intros).] 0. secs (0.u,0.s) -Chars 63226 - 63251 [(eapply~eqit_bind';~eauto).] 0.003 secs (0.002u,0.s) -Chars 63254 - 63286 [(intros;~step;~constructor;~au...] 0.002 secs (0.002u,0.s) -Chars 63287 - 63291 [Qed.] 0.002 secs (0.001u,0.s) -Chars 63293 - 63450 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) -Chars 63451 - 63457 [Proof.] 0. secs (0.u,0.s) -Chars 63460 - 63492 [(intros~!;~eapply~eqit_map;~ea...] 0. secs (0.u,0.s) -Chars 63495 - 63515 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 63516 - 63520 [Qed.] 0.001 secs (0.001u,0.s) -Chars 63522 - 63707 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) -Chars 63709 - 63715 [Proof.] 0. secs (0.u,0.s) -Chars 63719 - 63727 [intros~!.] 0. secs (0.u,0.s) -Chars 63731 - 63738 [unstep.] 0.002 secs (0.002u,0.s) -Chars 63739 - 63749 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 63750 - 63761 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 63762 - 63771 [now~step.] 0.001 secs (0.001u,0.s) -Chars 63773 - 63777 [Qed.] 0.002 secs (0.002u,0.s) -Chars 63781 - 63899 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) -Chars 63900 - 63906 [Proof.] 0. secs (0.u,0.s) -Chars 63909 - 63931 [(apply~Transitive_elem).] 0. secs (0.u,0.s) -Chars 63932 - 63950 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 63952 - 63956 [Qed.] 0. secs (0.u,0.s) -Chars 64285 - 64443 [#[global]~Instance~elem_observ...] 0.001 secs (0.001u,0.s) -Chars 64445 - 64451 [Proof.] 0. secs (0.u,0.s) -Chars 64455 - 64488 [(intros~x~y~Hxy~x'~y'~Hx'y'~He...] 0. secs (0.u,0.s) -Chars 64491 - 64509 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) -Chars 64514 - 64554 [(eapply~observing_sub_elem~in~...] 0. secs (0.u,0.s) -Chars 64557 - 64599 [(eapply~observing_sub_elem~in~...] 0.001 secs (0.001u,0.s) -Chars 64602 - 64630 [(do~2~(etransitivity;~eauto)).] 0.001 secs (0.001u,0.s) -Chars 64633 - 64637 [Qed.] 0.002 secs (0.002u,0.s) -Chars 64642 - 64731 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) -Chars 64732 - 64738 [Proof.] 0. secs (0.u,0.s) -Chars 64741 - 64757 [(unfold~eq_itree).] 0. secs (0.u,0.s) -Chars 64758 - 64765 [(intros).] 0. secs (0.u,0.s) -Chars 64851 - 64904 [(rewrite~(itree_eta_~(ITree.bi...] 0.002 secs (0.002u,0.s) -Chars 64931 - 64940 [revert~s.] 0. secs (0.u,0.s) -Chars 64944 - 64963 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 64967 - 64974 [(intros).] 0. secs (0.u,0.s) -Chars 65049 - 65095 [(desobs~s~H;~cbn;~simpobs;~con...] 0.004 secs (0.004u,0.s) -Chars 65123 - 65135 [reflexivity.] 0. secs (0.u,0.s) -Chars 65276 - 65310 [all:~(eapply~elem_observing_pr...] 0.002 secs (0.002u,0.s) -Chars 65355 - 65375 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) -Chars 65429 - 65464 [all:~(constructor;~ITree.fold_...] 0. secs (0.u,0.s) -Chars 65467 - 65491 [all:~(simpl;~reflexivity).] 0. secs (0.u,0.s) -Chars 65493 - 65497 [Qed.] 0.006 secs (0.006u,0.s) -Chars 65500 - 65622 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) -Chars 65623 - 65629 [Proof.] 0. secs (0.u,0.s) -Chars 65632 - 65640 [intro~H.] 0. secs (0.u,0.s) -Chars 65641 - 65672 [(rewrite~<-~(bind_ret_r~u)~~at...] 0.001 secs (0.001u,0.s) -Chars 65673 - 65689 [(apply~eqit_bind).] 0.002 secs (0.002u,0.s) -Chars 65692 - 65693 [-] 0. secs (0.u,0.s) -Chars 65694 - 65706 [reflexivity.] 0. secs (0.u,0.s) -Chars 65709 - 65710 [-] 0. secs (0.u,0.s) -Chars 65711 - 65715 [(hnf).] 0. secs (0.u,0.s) -Chars 65716 - 65723 [(intros).] 0. secs (0.u,0.s) -Chars 65724 - 65739 [(apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 65740 - 65745 [auto.] 0. secs (0.u,0.s) -Chars 65746 - 65750 [Qed.] 0.001 secs (0.001u,0.s) -Chars 65752 - 65915 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) -Chars 65918 - 66095 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) -Chars 66096 - 66102 [Proof.] 0. secs (0.u,0.s) -Chars 66105 - 66121 [(unfold~eq_itree).] 0. secs (0.u,0.s) -Chars 66122 - 66129 [(intros).] 0. secs (0.u,0.s) -Chars 66133 - 66244 [(lazymatch~goal~with~~|~|-~_~(...] 0.003 secs (0.003u,0.s) -Chars 66247 - 66324 [(lazymatch~goal~with~~|~|-~_~?...] 0.002 secs (0.002u,0.s) -Chars 66327 - 66340 [revert~s~k~h.] 0. secs (0.u,0.s) -Chars 66344 - 66363 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 66366 - 66373 [(intros).] 0. secs (0.u,0.s) -Chars 66376 - 66401 [(desobs~s~H;~cbn;~simpobs).] 0.003 secs (0.003u,0.s) -Chars 66405 - 66413 [1:~step.] 0.003 secs (0.003u,0.s) -Chars 66414 - 66426 [reflexivity.] 0. secs (0.u,0.s) -Chars 66430 - 66485 [all:~(constructor;~intros;~eap...] 0.002 secs (0.002u,0.s) -Chars 66488 - 66508 [all:~(try~eapply~CIH).] 0.001 secs (0.001u,0.s) -Chars 66511 - 66528 [all:~constructor.] 0. secs (0.u,0.s) -Chars 66532 - 66548 [all:~fold_subst.] 0.001 secs (0.001u,0.s) -Chars 66552 - 66585 [all:~(repeat~rewrite~observe_b...] 0.005 secs (0.005u,0.s) -Chars 66588 - 66605 [all:~reflexivity.] 0. secs (0.u,0.s) -Chars 66606 - 66610 [Qed.] 0.011 secs (0.011u,0.s) -Chars 66613 - 66755 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) -Chars 66756 - 66762 [Proof.] 0. secs (0.u,0.s) -Chars 66765 - 66782 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 66783 - 66790 [(intros).] 0. secs (0.u,0.s) -Chars 66791 - 66809 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 66810 - 66836 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) -Chars 66837 - 66849 [reflexivity.] 0. secs (0.u,0.s) -Chars 66850 - 66854 [Qed.] 0.001 secs (0.001u,0.s) -Chars 66856 - 67008 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) -Chars 67009 - 67015 [Proof.] 0. secs (0.u,0.s) -Chars 67018 - 67035 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67036 - 67043 [(intros).] 0. secs (0.u,0.s) -Chars 67044 - 67062 [(rewrite~bind_bind).] 0.003 secs (0.002u,0.s) -Chars 67063 - 67089 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 67090 - 67102 [reflexivity.] 0. secs (0.u,0.s) -Chars 67103 - 67107 [Qed.] 0.001 secs (0.001u,0.s) -Chars 67109 - 67262 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) -Chars 67263 - 67269 [Proof.] 0. secs (0.u,0.s) -Chars 67272 - 67279 [(intros).] 0. secs (0.u,0.s) -Chars 67280 - 67297 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67298 - 67314 [(apply~bind_bind).] 0. secs (0.u,0.s) -Chars 67315 - 67319 [Qed.] 0. secs (0.u,0.s) -Chars 67321 - 67411 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 67412 - 67418 [Proof.] 0. secs (0.u,0.s) -Chars 67421 - 67428 [(intros).] 0. secs (0.u,0.s) -Chars 67429 - 67446 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67449 - 67481 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) -Chars 67482 - 67486 [Qed.] 0.001 secs (0.001u,0.s) -Chars 67488 - 67596 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 67597 - 67603 [Proof.] 0. secs (0.u,0.s) -Chars 67606 - 67613 [(intros).] 0. secs (0.u,0.s) -Chars 67616 - 67633 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67636 - 67666 [(rewrite~bind_tau;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 67667 - 67671 [Qed.] 0.001 secs (0.001u,0.s) -Chars 67673 - 67716 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 67717 - 67760 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 67761 - 67802 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) -Chars 67803 - 67844 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) -Chars 67845 - 67886 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) -Chars 67887 - 67927 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) -Chars 67928 - 67968 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) -Chars 67969 - 68011 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 68032 - 68123 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) -Chars 68125 - 68217 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) -Chars 68334 - 68409 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) -Chars 68481 - 68559 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) -Chars 68622 - 68676 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) -Chars 68678 - 68776 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) -Chars 68778 - 68877 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) -Chars 68879 - 68974 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) -Chars 68976 - 69074 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) -Chars 69076 - 69145 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) -Chars 69147 - 69408 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 69409 - 69415 [Proof.] 0. secs (0.u,0.s) -Chars 69418 - 69425 [(intros).] 0. secs (0.u,0.s) -Chars 69428 - 69438 [step~in~H.] 0. secs (0.u,0.s) -Chars 69441 - 69486 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 69489 - 69514 [(remember~(Ret~b)~as~retb).] 0. secs (0.u,0.s) -Chars 69518 - 69548 [(remember~(observe~retb)~as~tr).] 0. secs (0.u,0.s) -Chars 69551 - 69592 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) -Chars 69595 - 69651 [(hinduction~H~before~RR;~intro...] 0.002 secs (0.002u,0.s) -Chars 69654 - 69655 [-] 0. secs (0.u,0.s) -Chars 69656 - 69670 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 69675 - 69725 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 69730 - 69778 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 69783 - 69792 [exists~r.] 0. secs (0.u,0.s) -Chars 69793 - 69799 [split.] 0. secs (0.u,0.s) -Chars 69804 - 69805 [*] 0. secs (0.u,0.s) -Chars 69806 - 69829 [(rewrite~itree_eta,~Ema).] 0.01 secs (0.01u,0.s) -Chars 69830 - 69842 [reflexivity.] 0. secs (0.u,0.s) -Chars 69847 - 69848 [*] 0. secs (0.u,0.s) -Chars 69849 - 69868 [(rewrite~itree_eta_).] 0.009 secs (0.009u,0.s) -Chars 69869 - 69885 [(unfold~_observe).] 0. secs (0.u,0.s) -Chars 69886 - 69904 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) -Chars 69905 - 69915 [(inv~Heqtr).] 0.001 secs (0.001u,0.s) -Chars 69921 - 69945 [(step;~constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 69948 - 69949 [-] 0. secs (0.u,0.s) -Chars 69950 - 69957 [(intros).] 0. secs (0.u,0.s) -Chars 69958 - 69964 [subst.] 0. secs (0.u,0.s) -Chars 69969 - 70019 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 70024 - 70072 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 70077 - 70078 [+] 0. secs (0.u,0.s) -Chars 70079 - 70088 [exists~r.] 0. secs (0.u,0.s) -Chars 70089 - 70095 [split.] 0. secs (0.u,0.s) -Chars 70102 - 70103 [*] 0. secs (0.u,0.s) -Chars 70104 - 70127 [(rewrite~itree_eta,~Ema).] 0.011 secs (0.011u,0.s) -Chars 70128 - 70140 [reflexivity.] 0. secs (0.u,0.s) -Chars 70147 - 70148 [*] 0. secs (0.u,0.s) -Chars 70149 - 70154 [step.] 0.001 secs (0.001u,0.s) -Chars 70155 - 70192 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) -Chars 70193 - 70211 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) -Chars 70212 - 70230 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 70235 - 70236 [+] 0. secs (0.u,0.s) -Chars 70237 - 70248 [(inv~Heqotl).] 0.005 secs (0.005u,0.s) -Chars 70256 - 70281 [(edestruct~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 70282 - 70291 [exists~x.] 0. secs (0.u,0.s) -Chars 70299 - 70311 [(destruct~H0).] 0. secs (0.u,0.s) -Chars 70319 - 70332 [(split;~eauto).] 0. secs (0.u,0.s) -Chars 70339 - 70357 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 70358 - 70363 [taul.] 0. secs (0.u,0.s) -Chars 70371 - 70386 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 70388 - 70392 [Qed.] 0.009 secs (0.009u,0.s) -Chars 70394 - 70557 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 70558 - 70564 [Proof.] 0. secs (0.u,0.s) -Chars 70567 - 70605 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) -Chars 70606 - 70610 [Qed.] 0. secs (0.u,0.s) -Chars 70612 - 70778 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) -Chars 70779 - 70785 [Proof.] 0. secs (0.u,0.s) -Chars 70788 - 70826 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) -Chars 70827 - 70831 [Qed.] 0. secs (0.u,0.s) -Chars 70833 - 71101 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) -Chars 71103 - 71543 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 71544 - 71550 [Proof.] 0. secs (0.u,0.s) -Chars 71553 - 71560 [(intros).] 0. secs (0.u,0.s) -Chars 71561 - 71571 [step~in~H.] 0. secs (0.u,0.s) -Chars 71575 - 71620 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 71623 - 71651 [(remember~(Vis~e~kxc)~as~vis).] 0. secs (0.u,0.s) -Chars 71654 - 71683 [(remember~(observe~vis)~as~tr).] 0. secs (0.u,0.s) -Chars 71687 - 71730 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) -Chars 71733 - 71786 [(induction~H;~try~(solve~[~int...] 0.003 secs (0.003u,0.s) -Chars 71789 - 71790 [-] 0. secs (0.u,0.s) -Chars 71791 - 71798 [(intros).] 0. secs (0.u,0.s) -Chars 71799 - 71847 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 71852 - 71900 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 71905 - 71906 [+] 0. secs (0.u,0.s) -Chars 71907 - 71913 [right.] 0. secs (0.u,0.s) -Chars 71914 - 71923 [exists~r.] 0. secs (0.u,0.s) -Chars 71924 - 71930 [split.] 0. secs (0.u,0.s) -Chars 71937 - 71938 [*] 0. secs (0.u,0.s) -Chars 71939 - 71958 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 71959 - 71971 [constructor.] 0. secs (0.u,0.s) -Chars 71972 - 71977 [auto.] 0. secs (0.u,0.s) -Chars 71984 - 71985 [*] 0. secs (0.u,0.s) -Chars 71986 - 72030 [(step;~unfold~observe~at~1;~un...] 0.001 secs (0.001u,0.s) -Chars 72031 - 72048 [(rewrite~<-~Heqtl).] 0. secs (0.u,0.s) -Chars 72057 - 72065 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 72066 - 72084 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 72089 - 72090 [+] 0. secs (0.u,0.s) -Chars 72091 - 72096 [left.] 0. secs (0.u,0.s) -Chars 72103 - 72121 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) -Chars 72129 - 72146 [revert~e0~Heqvis.] 0. secs (0.u,0.s) -Chars 72147 - 72167 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) -Chars 72168 - 72186 [(inv_eq_VisF~Heqtl).] 0. secs (0.u,0.s) -Chars 72187 - 72194 [(intros).] 0. secs (0.u,0.s) -Chars 72201 - 72212 [(inv~Heqvis).] 0.002 secs (0.002u,0.s) -Chars 72220 - 72233 [(cbn~in~Heqtr).] 0. secs (0.u,0.s) -Chars 72241 - 72259 [(inv_eq_VisF~Heqtr).] 0. secs (0.u,0.s) -Chars 72266 - 72275 [exists~k.] 0. secs (0.u,0.s) -Chars 72276 - 72282 [split.] 0. secs (0.u,0.s) -Chars 72289 - 72290 [*] 0. secs (0.u,0.s) -Chars 72291 - 72310 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 72311 - 72323 [constructor.] 0. secs (0.u,0.s) -Chars 72325 - 72337 [reflexivity.] 0. secs (0.u,0.s) -Chars 72344 - 72345 [*] 0. secs (0.u,0.s) -Chars 72346 - 72351 [auto.] 0. secs (0.u,0.s) -Chars 72354 - 72355 [-] 0. secs (0.u,0.s) -Chars 72356 - 72363 [(intros).] 0. secs (0.u,0.s) -Chars 72364 - 72370 [subst.] 0. secs (0.u,0.s) -Chars 72375 - 72423 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 72428 - 72477 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 72482 - 72483 [+] 0. secs (0.u,0.s) -Chars 72484 - 72507 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 72514 - 72515 [*] 0. secs (0.u,0.s) -Chars 72516 - 72552 [(rewrite~itree_eta,~Ema;~refle...] 0.013 secs (0.013u,0.s) -Chars 72559 - 72560 [*] 0. secs (0.u,0.s) -Chars 72561 - 72566 [step.] 0.001 secs (0.001u,0.s) -Chars 72568 - 72623 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) -Chars 72624 - 72642 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 72647 - 72648 [+] 0. secs (0.u,0.s) -Chars 72649 - 72659 [(inv~Heqtl).] 0.008 secs (0.008u,0.s) -Chars 72660 - 72715 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 72722 - 72787 [(destruct~IHeqitF~as~[(k0,~(?,...] 0. secs (0.u,0.s) -Chars 72794 - 72795 [*] 0. secs (0.u,0.s) -Chars 72796 - 72806 [exists~k0.] 0. secs (0.u,0.s) -Chars 72807 - 72819 [(split;~auto).] 0. secs (0.u,0.s) -Chars 72828 - 72881 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 72889 - 72890 [*] 0. secs (0.u,0.s) -Chars 72891 - 72900 [exists~a.] 0. secs (0.u,0.s) -Chars 72901 - 72913 [(split;~auto).] 0. secs (0.u,0.s) -Chars 72922 - 72975 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 72976 - 72980 [Qed.] 0.016 secs (0.016u,0.s) -Chars 72982 - 73318 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 73319 - 73325 [Proof.] 0. secs (0.u,0.s) -Chars 73328 - 73335 [(intros).] 0. secs (0.u,0.s) -Chars 73336 - 73360 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) -Chars 73361 - 73366 [auto.] 0. secs (0.u,0.s) -Chars 73367 - 73371 [Qed.] 0. secs (0.u,0.s) -Chars 73373 - 73712 [Lemma~eqitree_inv_bind_vis~:~~...] 0.001 secs (0.001u,0.s) -Chars 73713 - 73719 [Proof.] 0. secs (0.u,0.s) -Chars 73722 - 73729 [(intros).] 0. secs (0.u,0.s) -Chars 73730 - 73754 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) -Chars 73755 - 73760 [auto.] 0. secs (0.u,0.s) -Chars 73761 - 73765 [Qed.] 0. secs (0.u,0.s) -Chars 73767 - 74115 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 74116 - 74122 [Proof.] 0. secs (0.u,0.s) -Chars 74125 - 74132 [(intros).] 0. secs (0.u,0.s) -Chars 74133 - 74143 [step~in~H.] 0. secs (0.u,0.s) -Chars 74147 - 74192 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 74195 - 74220 [(remember~(Tau~tc)~as~tau).] 0. secs (0.u,0.s) -Chars 74223 - 74252 [(remember~(observe~tau)~as~tr).] 0. secs (0.u,0.s) -Chars 74255 - 74295 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) -Chars 74298 - 74351 [(induction~H;~intros;~try~(sol...] 0.003 secs (0.003u,0.s) -Chars 74354 - 74355 [-] 0. secs (0.u,0.s) -Chars 74356 - 74366 [(inv~Heqtr).] 0.005 secs (0.005u,0.s) -Chars 74367 - 74415 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 74420 - 74468 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 74473 - 74474 [+] 0. secs (0.u,0.s) -Chars 74475 - 74498 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 74505 - 74506 [*] 0. secs (0.u,0.s) -Chars 74507 - 74550 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 74557 - 74558 [*] 0. secs (0.u,0.s) -Chars 74559 - 74639 [(step;~icbn;~inv~H0;~unfold~ob...] 0.004 secs (0.004u,0.s) -Chars 74644 - 74645 [+] 0. secs (0.u,0.s) -Chars 74646 - 74668 [(left;~exists~t;~split).] 0. secs (0.u,0.s) -Chars 74675 - 74676 [*] 0. secs (0.u,0.s) -Chars 74677 - 74733 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 74740 - 74741 [*] 0. secs (0.u,0.s) -Chars 74742 - 74752 [(inv~Heqtl).] 0.002 secs (0.002u,0.s) -Chars 74753 - 74760 [(inv~H0).] 0. secs (0.u,0.s) -Chars 74764 - 74765 [-] 0. secs (0.u,0.s) -Chars 74766 - 74772 [subst.] 0. secs (0.u,0.s) -Chars 74777 - 74825 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 74830 - 74878 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 74883 - 74884 [+] 0. secs (0.u,0.s) -Chars 74885 - 74908 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 74915 - 74916 [*] 0. secs (0.u,0.s) -Chars 74917 - 74960 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 74967 - 74968 [*] 0. secs (0.u,0.s) -Chars 74969 - 75036 [(step;~icbn;~unfold~observe~at...] 0.001 secs (0.001u,0.s) -Chars 75037 - 75057 [(constructor~4;~auto).] 0. secs (0.u,0.s) -Chars 75062 - 75063 [+] 0. secs (0.u,0.s) -Chars 75064 - 75074 [(inv~Heqtl).] 0.008 secs (0.007u,0.s) -Chars 75075 - 75128 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 75135 - 75200 [(destruct~IHeqitF~as~[(t0,~(?,...] 0. secs (0.u,0.s) -Chars 75207 - 75208 [*] 0. secs (0.u,0.s) -Chars 75209 - 75219 [exists~t0.] 0. secs (0.u,0.s) -Chars 75220 - 75232 [(split;~auto).] 0. secs (0.u,0.s) -Chars 75241 - 75296 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 75303 - 75304 [*] 0. secs (0.u,0.s) -Chars 75305 - 75314 [exists~a.] 0. secs (0.u,0.s) -Chars 75315 - 75327 [(split;~auto).] 0. secs (0.u,0.s) -Chars 75336 - 75389 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 75392 - 75393 [-] 0. secs (0.u,0.s) -Chars 75394 - 75404 [(inv~Heqtr).] 0.008 secs (0.008u,0.s) -Chars 75409 - 75432 [(left;~exists~ma;~split).] 0. secs (0.u,0.s) -Chars 75437 - 75438 [+] 0. secs (0.u,0.s) -Chars 75439 - 75463 [(step;~constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 75469 - 75470 [+] 0. secs (0.u,0.s) -Chars 75471 - 75496 [(inv~H1;~step;~assumption).] 0.008 secs (0.008u,0.s) -Chars 75497 - 75501 [Qed.] 0.018 secs (0.017u,0.s) -Chars 75503 - 75768 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 75769 - 75775 [Proof.] 0. secs (0.u,0.s) -Chars 75778 - 75785 [(intros).] 0. secs (0.u,0.s) -Chars 75786 - 75810 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) -Chars 75811 - 75816 [auto.] 0. secs (0.u,0.s) -Chars 75817 - 75821 [Qed.] 0. secs (0.u,0.s) -Chars 75823 - 76091 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) -Chars 76092 - 76098 [Proof.] 0. secs (0.u,0.s) -Chars 76101 - 76108 [(intros).] 0. secs (0.u,0.s) -Chars 76109 - 76133 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) -Chars 76134 - 76139 [auto.] 0. secs (0.u,0.s) -Chars 76140 - 76144 [Qed.] 0. secs (0.u,0.s) -Chars 76146 - 76268 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 76269 - 76275 [Proof.] 0. secs (0.u,0.s) -Chars 76278 - 76285 [(intros).] 0. secs (0.u,0.s) -Chars 76288 - 76298 [step~in~H.] 0. secs (0.u,0.s) -Chars 76301 - 76333 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) -Chars 76336 - 76374 [(remember~(observe~ITree.spin)...] 0.001 secs (0.001u,0.s) -Chars 76377 - 76395 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 76398 - 76460 [(induction~H;~intros~EQ1~EQ2;~...] 0.006 secs (0.006u,0.s) -Chars 76463 - 76464 [-] 0. secs (0.u,0.s) -Chars 76465 - 76485 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 76490 - 76498 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 76499 - 76503 [Qed.] 0.003 secs (0.003u,0.s) -Chars 76505 - 76627 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 76628 - 76634 [Proof.] 0. secs (0.u,0.s) -Chars 76637 - 76644 [(intros).] 0. secs (0.u,0.s) -Chars 76647 - 76657 [step~in~H.] 0. secs (0.u,0.s) -Chars 76660 - 76692 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) -Chars 76695 - 76733 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 76736 - 76754 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 76757 - 76819 [(induction~H;~intros~EQ1~EQ2;~...] 0.007 secs (0.007u,0.s) -Chars 76822 - 76823 [-] 0. secs (0.u,0.s) -Chars 76824 - 76844 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 76849 - 76857 [(inv~EQ2).] 0.001 secs (0.001u,0.s) -Chars 76858 - 76862 [Qed.] 0.003 secs (0.003u,0.s) -Chars 76864 - 77014 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 77015 - 77021 [Proof.] 0. secs (0.u,0.s) -Chars 77024 - 77031 [(intros).] 0. secs (0.u,0.s) -Chars 77034 - 77044 [step~in~H.] 0. secs (0.u,0.s) -Chars 77047 - 77081 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) -Chars 77084 - 77122 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 77125 - 77143 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 77146 - 77208 [(induction~H;~intros~EQ1~EQ2;~...] 0.011 secs (0.011u,0.s) -Chars 77211 - 77212 [-] 0. secs (0.u,0.s) -Chars 77213 - 77233 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 77238 - 77246 [(inv~EQ2).] 0.001 secs (0.001u,0.s) -Chars 77247 - 77251 [Qed.] 0.003 secs (0.003u,0.s) -Chars 77253 - 77403 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 77404 - 77410 [Proof.] 0. secs (0.u,0.s) -Chars 77413 - 77420 [(intros).] 0. secs (0.u,0.s) -Chars 77423 - 77433 [step~in~H.] 0. secs (0.u,0.s) -Chars 77436 - 77470 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) -Chars 77473 - 77511 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 77514 - 77532 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 77535 - 77597 [(induction~H;~intros~EQ1~EQ2;~...] 0.009 secs (0.009u,0.s) -Chars 77600 - 77601 [-] 0. secs (0.u,0.s) -Chars 77602 - 77622 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 77627 - 77635 [(inv~EQ2).] 0.001 secs (0.001u,0.s) -Chars 77636 - 77640 [Qed.] 0.003 secs (0.003u,0.s) -Chars 77641 - 77659 [Section~eqit_elem.] 0. secs (0.u,0.s) -Chars 78966 - 79040 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 79042 - 79101 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) -Chars 79139 - 79256 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) -Chars 79257 - 79263 [Proof.] 0. secs (0.u,0.s) -Chars 79266 - 79297 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) -Chars 79298 - 79302 [Qed.] 0. secs (0.u,0.s) -Chars 79304 - 79421 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 79422 - 79428 [Proof.] 0. secs (0.u,0.s) -Chars 79429 - 79447 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 79448 - 79452 [Qed.] 0. secs (0.u,0.s) -Chars 79454 - 79571 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 79572 - 79578 [Proof.] 0. secs (0.u,0.s) -Chars 79579 - 79597 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 79598 - 79602 [Qed.] 0. secs (0.u,0.s) -Chars 79633 - 79868 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.002 secs (0.002u,0.s) -Chars 79869 - 79875 [Proof.] 0. secs (0.u,0.s) -Chars 79878 - 79885 [(intros).] 0. secs (0.u,0.s) -Chars 79886 - 79916 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.001u,0.s) -Chars 79917 - 79931 [now~do~2~step.] 0.005 secs (0.005u,0.s) -Chars 79933 - 79937 [Qed.] 0.001 secs (0.001u,0.s) -Chars 80124 - 80138 [End~eqit_elem.] 0. secs (0.u,0.s) -Chars 80141 - 80160 [Section~eutt_facts.] 0. secs (0.u,0.s) -Chars 81555 - 81668 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 81669 - 81675 [Proof.] 0. secs (0.u,0.s) -Chars 81678 - 81686 [intros~!.] 0. secs (0.u,0.s) -Chars 81687 - 81705 [now~rewrite~H,~H0.] 0.023 secs (0.023u,0.s) -Chars 81706 - 81710 [Qed.] 0.001 secs (0.001u,0.s) -Chars 81712 - 81849 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 81850 - 81856 [Proof.] 0. secs (0.u,0.s) -Chars 81859 - 81867 [intros~!.] 0. secs (0.u,0.s) -Chars 81868 - 81886 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) -Chars 81887 - 81891 [Qed.] 0.001 secs (0.001u,0.s) -Chars 81893 - 82030 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 82031 - 82037 [Proof.] 0. secs (0.u,0.s) -Chars 82040 - 82048 [intros~!.] 0. secs (0.u,0.s) -Chars 82049 - 82067 [now~rewrite~H,~H0.] 0.029 secs (0.029u,0.s) -Chars 82068 - 82072 [Qed.] 0.001 secs (0.001u,0.s) -Chars 82226 - 82412 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) -Chars 82413 - 82419 [Proof.] 0. secs (0.u,0.s) -Chars 82422 - 82429 [(intros).] 0. secs (0.u,0.s) -Chars 82432 - 82492 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 82495 - 82518 [(intros~?~?~->;~apply~H).] 0. secs (0.u,0.s) -Chars 82519 - 82523 [Qed.] 0. secs (0.u,0.s) -Chars 82569 - 82735 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) -Chars 82736 - 82742 [Proof.] 0. secs (0.u,0.s) -Chars 82745 - 82758 [(intros~->~Hk).] 0.001 secs (0.001u,0.s) -Chars 82759 - 82782 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 82783 - 82787 [Qed.] 0.001 secs (0.001u,0.s) -Chars 82882 - 83004 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) -Chars 83005 - 83011 [Proof.] 0. secs (0.u,0.s) -Chars 83014 - 83037 [(intros;~apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 83038 - 83042 [Qed.] 0. secs (0.u,0.s) -Chars 83206 - 83233 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) -Chars 83235 - 83385 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) -Chars 83386 - 83392 [Proof.] 0. secs (0.u,0.s) -Chars 83395 - 83414 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 83415 - 83431 [(intros~*~EQ~EQ').] 0. secs (0.u,0.s) -Chars 83434 - 83458 [(step~in~EQ;~step~in~EQ').] 0.001 secs (0.001u,0.s) -Chars 83462 - 83487 [(genobs~t~ot;~genobs~s~os).] 0.002 secs (0.002u,0.s) -Chars 83490 - 83537 [(hinduction~EQ~before~CIH;~sub...] 0.001 secs (0.001u,0.s) -Chars 83540 - 83541 [-] 0. secs (0.u,0.s) -Chars 83542 - 83550 [(inv~EQ').] 0.01 secs (0.009u,0.s) -Chars 83551 - 83556 [eret.] 0. secs (0.u,0.s) -Chars 83557 - 83573 [now~constructor.] 0. secs (0.u,0.s) -Chars 83577 - 83578 [-] 0. secs (0.u,0.s) -Chars 83579 - 83584 [taus.] 0. secs (0.u,0.s) -Chars 83585 - 83603 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 83604 - 83623 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) -Chars 83624 - 83633 [now~step.] 0.001 secs (0.001u,0.s) -Chars 83638 - 83639 [-] 0. secs (0.u,0.s) -Chars 83640 - 83652 [constructor.] 0. secs (0.u,0.s) -Chars 83653 - 83661 [intro~v.] 0. secs (0.u,0.s) -Chars 83662 - 83681 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 83686 - 83704 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 83710 - 83750 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) -Chars 83753 - 83754 [-] 0. secs (0.u,0.s) -Chars 83755 - 83760 [taul.] 0. secs (0.u,0.s) -Chars 83761 - 83780 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 83781 - 83787 [subst.] 0. secs (0.u,0.s) -Chars 83788 - 83795 [unstep.] 0.003 secs (0.003u,0.s) -Chars 83796 - 83818 [(eapply~eqit_inv_Tau_l).] 0. secs (0.u,0.s) -Chars 83824 - 83833 [now~step.] 0.002 secs (0.001u,0.s) -Chars 83838 - 83839 [-] 0. secs (0.u,0.s) -Chars 83840 - 83845 [taur.] 0. secs (0.u,0.s) -Chars 83846 - 83865 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 83866 - 83872 [subst.] 0. secs (0.u,0.s) -Chars 83873 - 83880 [unstep.] 0.003 secs (0.003u,0.s) -Chars 83881 - 83903 [(eapply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 83909 - 83918 [now~step.] 0.001 secs (0.001u,0.s) -Chars 83921 - 83925 [Qed.] 0.015 secs (0.015u,0.s) -Chars 83927 - 84053 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 84055 - 84061 [Proof.] 0. secs (0.u,0.s) -Chars 84064 - 84071 [(intros).] 0. secs (0.u,0.s) -Chars 84074 - 84105 [(eapply~(eqit_mono~RS~_);~eauto).] 0.002 secs (0.002u,0.s) -Chars 84106 - 84110 [Qed.] 0. secs (0.u,0.s) -Chars 84112 - 84239 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 84241 - 84247 [Proof.] 0. secs (0.u,0.s) -Chars 84250 - 84257 [(intros).] 0. secs (0.u,0.s) -Chars 84260 - 84292 [(eapply~(eqit_mono~RS'~_);~eau...] 0.001 secs (0.001u,0.s) -Chars 84293 - 84297 [Qed.] 0. secs (0.u,0.s) -Chars 84299 - 84458 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) -Chars 84460 - 84466 [Proof.] 0. secs (0.u,0.s) -Chars 84469 - 84542 [(intros~*~EQ;~split;~intros~EU...] 0.005 secs (0.005u,0.s) -Chars 84545 - 84559 [all:~(apply~EQ).] 0. secs (0.u,0.s) -Chars 84560 - 84564 [Qed.] 0. secs (0.u,0.s) -Chars 84642 - 84821 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 84822 - 84828 [Proof.] 0. secs (0.u,0.s) -Chars 84831 - 84846 [(intros~!;~subst).] 0. secs (0.u,0.s) -Chars 84849 - 84889 [(unfold~eq_itree;~rewrite~H;~r...] 0. secs (0.u,0.s) -Chars 84890 - 84894 [Qed.] 0. secs (0.u,0.s) -Chars 84896 - 85056 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 85057 - 85063 [Proof.] 0. secs (0.u,0.s) -Chars 85066 - 85081 [(intros~!;~subst).] 0. secs (0.u,0.s) -Chars 85084 - 85120 [(unfold~eutt;~rewrite~H;~refle...] 0. secs (0.u,0.s) -Chars 85121 - 85125 [Qed.] 0.001 secs (0.u,0.s) -Chars 85234 - 85365 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) -Chars 85366 - 85372 [Proof.] 0. secs (0.u,0.s) -Chars 85375 - 85397 [(intros~Hrel;~revert~t).] 0. secs (0.u,0.s) -Chars 85398 - 85433 [(icoinduction~c~CIH;~intros~t~...] 0.002 secs (0.002u,0.s) -Chars 85436 - 85450 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 85453 - 85484 [(remember~t~as~t'~in~Heutt~at~2).] 0. secs (0.u,0.s) -Chars 85485 - 85521 [(assert~(Ht'~:~t'~≈~t)~by~now~...] 0. secs (0.u,0.s) -Chars 85522 - 85534 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 85537 - 85582 [(rewrite~(itree_eta~t),~(itree...] 0.043 secs (0.042u,0.s) -Chars 85585 - 85596 [revert~Ht'.] 0. secs (0.u,0.s) -Chars 85597 - 85634 [(induction~Heutt;~clear~t;~int...] 0.001 secs (0.001u,0.s) -Chars 85637 - 85638 [-] 0. secs (0.u,0.s) -Chars 85639 - 85672 [(apply~eutt_inv_Ret~in~Heq;~su...] 0. secs (0.u,0.s) -Chars 85677 - 85695 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 85698 - 85699 [-] 0. secs (0.u,0.s) -Chars 85700 - 85726 [(apply~eqit_inv_Tau~in~Heq).] 0. secs (0.u,0.s) -Chars 85731 - 85743 [constructor.] 0. secs (0.u,0.s) -Chars 85744 - 85755 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 85761 - 85785 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 85788 - 85789 [-] 0. secs (0.u,0.s) -Chars 85790 - 85802 [constructor.] 0. secs (0.u,0.s) -Chars 85803 - 85812 [(intros~v).] 0. secs (0.u,0.s) -Chars 85813 - 85840 [(eapply~eqit_inv_Vis~in~Heq).] 0. secs (0.u,0.s) -Chars 85845 - 85864 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 85865 - 85876 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 85877 - 85901 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 85904 - 85905 [-] 0. secs (0.u,0.s) -Chars 85906 - 85911 [taul.] 0. secs (0.u,0.s) -Chars 85912 - 85917 [taur.] 0. secs (0.u,0.s) -Chars 85918 - 85932 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 85933 - 85959 [(rewrite~<-~(itree_eta~t1)).] 0.001 secs (0.001u,0.s) -Chars 85967 - 85997 [now~rewrite~tau_euttge~in~Heq.] 0.025 secs (0.025u,0.s) -Chars 86001 - 86002 [-] 0. secs (0.u,0.s) -Chars 86003 - 86017 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 86018 - 86041 [(rewrite~<-~itree_eta).] 0. secs (0.u,0.s) -Chars 86049 - 86079 [now~rewrite~tau_euttge~in~Heq.] 0.018 secs (0.018u,0.s) -Chars 86081 - 86085 [Qed.] 0.007 secs (0.007u,0.s) -Chars 86087 - 86102 [End~eutt_facts.] 0. secs (0.u,0.s) -Chars 86151 - 86318 [#[global]~Instance~observing_e...] 0.001 secs (0.001u,0.s) -Chars 86320 - 86326 [Proof.] 0. secs (0.u,0.s) -Chars 86330 - 86338 [intros~!.] 0. secs (0.u,0.s) -Chars 86342 - 86347 [step.] 0.003 secs (0.003u,0.s) -Chars 86348 - 86358 [(rewrite~H).] 0.01 secs (0.01u,0.s) -Chars 86359 - 86371 [reflexivity.] 0. secs (0.u,0.s) -Chars 86373 - 86377 [Qed.] 0.001 secs (0.001u,0.s) -Chars 86384 - 86519 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) -Chars 86521 - 86527 [Proof.] 0. secs (0.u,0.s) -Chars 86531 - 86570 [(intros~!;~now~eapply~observin...] 0. secs (0.u,0.s) -Chars 86571 - 86575 [Qed.] 0. secs (0.u,0.s) -Chars 86578 - 86705 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) +Chars 41917 - 41922 [taur.] 0. secs (0.u,0.s) +Chars 41923 - 41943 [(eapply~IHINR;~eauto).] 0.001 secs (0.001u,0.s) +Chars 41945 - 41949 [Qed.] 0.055 secs (0.054u,0.s) +Chars 41951 - 42010 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) +Chars 42128 - 42282 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 42283 - 42289 [Proof.] 0. secs (0.u,0.s) +Chars 42292 - 42304 [(red;~intros).] 0. secs (0.u,0.s) +Chars 42305 - 42341 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 42345 - 42381 [(eapply~eqit_mono,~eqit_trans;...] 0.003 secs (0.003u,0.s) +Chars 42384 - 42392 [intros~!.] 0. secs (0.u,0.s) +Chars 42393 - 42409 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 42410 - 42414 [Qed.] 0. secs (0.u,0.s) +Chars 42416 - 42534 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 42535 - 42541 [Proof.] 0. secs (0.u,0.s) +Chars 42544 - 42566 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) +Chars 42567 - 42589 [(intros~!;~subst;~eauto).] 0. secs (0.u,0.s) +Chars 42590 - 42594 [Qed.] 0. secs (0.u,0.s) +Chars 42596 - 42747 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 42748 - 42754 [Proof.] 0. secs (0.u,0.s) +Chars 42757 - 42792 [(constructor;~try~typeclasses~...] 0. secs (0.u,0.s) +Chars 42793 - 42797 [Qed.] 0. secs (0.u,0.s) +Chars 42799 - 42921 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 42922 - 42928 [Proof.] 0. secs (0.u,0.s) +Chars 42931 - 42966 [(constructor;~try~typeclasses~...] 0.003 secs (0.003u,0.s) +Chars 42967 - 42971 [Qed.] 0. secs (0.u,0.s) +Chars 42973 - 43064 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 43065 - 43071 [Proof.] 0. secs (0.u,0.s) +Chars 43074 - 43086 [(red;~intros).] 0. secs (0.u,0.s) +Chars 43087 - 43123 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 43124 - 43160 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) +Chars 43163 - 43171 [intros~!.] 0. secs (0.u,0.s) +Chars 43172 - 43188 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 43190 - 43194 [Qed.] 0. secs (0.u,0.s) +Chars 43197 - 43329 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 43330 - 43336 [Proof.] 0. secs (0.u,0.s) +Chars 43339 - 43479 [(assert~~~(Hinf~:~~~~inf_close...] 0. secs (0.u,0.s) +Chars 43482 - 43483 [{] 0. secs (0.u,0.s) +Chars 43484 - 43516 [(intros~T~HTr~x~y~z~Hxy~Hyz~i~...] 0. secs (0.u,0.s) +Chars 43517 - 43580 [(apply~(HTr~_~Hi)~with~y;~[~ex...] 0. secs (0.u,0.s) +Chars 43581 - 43582 [}] 0. secs (0.u,0.s) +Chars 43585 - 43594 [revert~c.] 0. secs (0.u,0.s) +Chars 43595 - 43614 [(apply~(tower~Hinf)).] 0. secs (0.u,0.s) +Chars 43615 - 43631 [(intros~c~Htrans).] 0. secs (0.u,0.s) +Chars 43634 - 43642 [intros~!.] 0. secs (0.u,0.s) +Chars 43643 - 43653 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 43654 - 43685 [(eapply~Transitive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 43686 - 43690 [Qed.] 0.002 secs (0.002u,0.s) +Chars 43692 - 43827 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 43828 - 43834 [Proof.] 0. secs (0.u,0.s) +Chars 43837 - 43868 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 43869 - 43873 [Qed.] 0. secs (0.u,0.s) +Chars 43877 - 43957 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 43958 - 43964 [Proof.] 0. secs (0.u,0.s) +Chars 43967 - 44031 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) +Chars 44032 - 44036 [Qed.] 0. secs (0.u,0.s) +Chars 44037 - 44117 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 44118 - 44124 [Proof.] 0. secs (0.u,0.s) +Chars 44127 - 44194 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) +Chars 44195 - 44199 [Qed.] 0. secs (0.u,0.s) +Chars 44201 - 44319 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 44320 - 44326 [Proof.] 0. secs (0.u,0.s) +Chars 44329 - 44340 [(repeat~red).] 0. secs (0.u,0.s) +Chars 44344 - 44369 [(intros~t~t'~EQ1~u~u'~EQ2).] 0. secs (0.u,0.s) +Chars 44372 - 44392 [(split;~intros~EQUIV).] 0. secs (0.u,0.s) +Chars 44396 - 44397 [-] 0. secs (0.u,0.s) +Chars 44398 - 44414 [symmetry~in~EQ1.] 0. secs (0.u,0.s) +Chars 44420 - 44462 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) +Chars 44467 - 44498 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) +Chars 44503 - 44547 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) +Chars 44552 - 44588 [now~rewrite~rcompose_eqr~in~EQ...] 0.003 secs (0.002u,0.s) +Chars 44591 - 44592 [-] 0. secs (0.u,0.s) +Chars 44593 - 44635 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) +Chars 44640 - 44671 [(rewrite~rcompose_eql~in~EQUIV').] 0.003 secs (0.002u,0.s) +Chars 44676 - 44692 [symmetry~in~EQ2.] 0. secs (0.u,0.s) +Chars 44697 - 44741 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) +Chars 44746 - 44782 [now~rewrite~rcompose_eqr~in~EQ...] 0.008 secs (0.007u,0.s) +Chars 44783 - 44787 [Qed.] 0.002 secs (0.002u,0.s) +Chars 44789 - 44883 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 44884 - 44890 [Proof.] 0. secs (0.u,0.s) +Chars 44893 - 44911 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 44912 - 44916 [Qed.] 0. secs (0.u,0.s) +Chars 44918 - 45013 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 45014 - 45020 [Proof.] 0. secs (0.u,0.s) +Chars 45023 - 45035 [(red;~intros).] 0. secs (0.u,0.s) +Chars 45036 - 45072 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) +Chars 45073 - 45109 [(eapply~eqit_mono,~eqit_trans;...] 0.005 secs (0.004u,0.s) +Chars 45112 - 45120 [intros~!.] 0. secs (0.u,0.s) +Chars 45121 - 45137 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 45139 - 45143 [Qed.] 0. secs (0.u,0.s) +Chars 45145 - 45234 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) +Chars 45235 - 45241 [Proof.] 0. secs (0.u,0.s) +Chars 45244 - 45275 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 45277 - 45281 [Qed.] 0. secs (0.u,0.s) +Chars 45283 - 45435 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 45437 - 45443 [Proof.] 0. secs (0.u,0.s) +Chars 45447 - 45465 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 45468 - 45506 [(do~2~(etransitivity;~symmetry...] 0.005 secs (0.005u,0.s) +Chars 45509 - 45551 [(do~2~(etransitivity;~eauto);~...] 0.004 secs (0.004u,0.s) +Chars 45553 - 45557 [Qed.] 0.001 secs (0.001u,0.s) +Chars 45588 - 45601 [Module~Tests.] 0. secs (0.u,0.s) +Chars 45604 - 45640 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 45643 - 45675 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 45678 - 45719 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 45722 - 45758 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 45761 - 45797 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 45800 - 45835 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 45838 - 45876 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 45879 - 45914 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 45917 - 45955 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 45958 - 45992 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 45995 - 46030 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 46125 - 46142 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 46147 - 46162 [(rewrite~EQUIV2).] 0.012 secs (0.012u,0.s) +Chars 46167 - 46182 [(rewrite~<-~EQ2).] 0.01 secs (0.01u,0.s) +Chars 46187 - 46210 [(eapply~eq_proper_euttC).] 0.001 secs (0.001u,0.s) +Chars 46215 - 46230 [(rewrite~<-~EQ1).] 0.001 secs (0.001u,0.s) +Chars 46235 - 46245 [exact~EQ1.] 0. secs (0.u,0.s) +Chars 46251 - 46271 [(rewrite~EQ2,~<-~EQ2).] 0.004 secs (0.004u,0.s) +Chars 46277 - 46287 [exact~EQ2.] 0. secs (0.u,0.s) +Chars 46293 - 46298 [step.] 0.003 secs (0.003u,0.s) +Chars 46319 - 46324 [step.] 0.003 secs (0.003u,0.s) +Chars 46330 - 46345 [(rewrite~<-~EQ1).] 0.01 secs (0.01u,0.s) +Chars 46351 - 46365 [(rewrite~<-~GT).] 0.036 secs (0.035u,0.s) +Chars 46371 - 46383 [(rewrite~EQ1).] 0.01 secs (0.01u,0.s) +Chars 46388 - 46406 [(rewrite~<-~EQUIV1).] 0.011 secs (0.011u,0.s) +Chars 46409 - 46415 [Abort.] 0. secs (0.u,0.s) +Chars 46420 - 46465 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) +Chars 46525 - 46565 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) +Chars 46570 - 46579 [(intros~H).] 0. secs (0.u,0.s) +Chars 46584 - 46596 [(rewrite~EQ1).] 0.007 secs (0.007u,0.s) +Chars 46601 - 46618 [(rewrite~EQ1~in~H).] 0.007 secs (0.007u,0.s) +Chars 46623 - 46641 [(rewrite~<-~EQUIV1).] 0.008 secs (0.008u,0.s) +Chars 46686 - 46709 [(rewrite~<-~EQUIV1~in~H).] 0.008 secs (0.008u,0.s) +Chars 46714 - 46737 [(rewrite~<-~EQUIV2~in~H).] 0.011 secs (0.011u,0.s) +Chars 46743 - 46755 [(rewrite~GT2).] 0.002 secs (0.002u,0.s) +Chars 46760 - 46780 [(rewrite~<-~GT2~in~H).] 0.028 secs (0.027u,0.s) +Chars 46785 - 46796 [(rewrite~GT).] 0.001 secs (0.001u,0.s) +Chars 46801 - 46820 [(rewrite~<-~GT~in~H).] 0.028 secs (0.027u,0.s) +Chars 46882 - 46896 [Fail~symmetry.] 0. secs (0.u,0.s) +Chars 46901 - 46920 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) +Chars 46925 - 46939 [(rewrite~<-~GT).] 0.028 secs (0.028u,0.s) +Chars 46945 - 46956 [assumption.] 0. secs (0.u,0.s) +Chars 46960 - 46964 [Qed.] 0.002 secs (0.002u,0.s) +Chars 46968 - 47011 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) +Chars 47015 - 47082 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) +Chars 47085 - 47125 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) +Chars 47131 - 47136 [step.] 0.001 secs (0.001u,0.s) +Chars 47170 - 47177 [unstep.] 0.003 secs (0.003u,0.s) +Chars 47183 - 47227 [(assert~(eutt~(E:=VE)~eq~(Ret~...] 0. secs (0.u,0.s) +Chars 47233 - 47238 [step.] 0.002 secs (0.002u,0.s) +Chars 47297 - 47323 [(rewrite~observing_observe).] 0.006 secs (0.006u,0.s) +Chars 47324 - 47330 [Abort.] 0. secs (0.u,0.s) +Chars 47334 - 47358 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) +Chars 47363 - 47372 [(intros~H).] 0. secs (0.u,0.s) +Chars 47377 - 47389 [(rewrite~EQ1).] 0. secs (0.u,0.s) +Chars 47394 - 47411 [(rewrite~EQ1~in~H).] 0.008 secs (0.008u,0.s) +Chars 47416 - 47425 [symmetry.] 0. secs (0.u,0.s) +Chars 47430 - 47444 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 47449 - 47461 [reflexivity.] 0. secs (0.u,0.s) +Chars 47462 - 47466 [Qed.] 0. secs (0.u,0.s) +Chars 47553 - 47628 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) +Chars 47633 - 47651 [(intros~EQ1~EQ2'~H).] 0. secs (0.u,0.s) +Chars 47656 - 47668 [(rewrite~EQ1).] 0.009 secs (0.009u,0.s) +Chars 47673 - 47685 [(rewrite~EQ2).] 0.001 secs (0.001u,0.s) +Chars 47690 - 47714 [(apply~eqit_flip~in~EQ2').] 0. secs (0.u,0.s) +Chars 47719 - 47739 [(rewrite~EQ2~in~EQ2').] 0.015 secs (0.015u,0.s) +Chars 47744 - 47788 [(eapply~(eqit_mono~RR~RR~false...] 0.002 secs (0.002u,0.s) +Chars 47855 - 47859 [Qed.] 0.002 secs (0.002u,0.s) +Chars 47910 - 47934 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) +Chars 47939 - 47958 [icoinduction~r~CIH.] 0.002 secs (0.002u,0.s) +Chars 47963 - 47970 [(intros).] 0. secs (0.u,0.s) +Chars 47975 - 47980 [step.] 0.003 secs (0.003u,0.s) +Chars 47986 - 47996 [(rewrite~H).] 0.017 secs (0.016u,0.s) +Chars 48002 - 48014 [reflexivity.] 0. secs (0.u,0.s) +Chars 48016 - 48020 [Qed.] 0.003 secs (0.003u,0.s) +Chars 48023 - 48033 [End~Tests.] 0. secs (0.u,0.s) +Chars 48035 - 48087 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) +Chars 48092 - 48108 [Section~eqit_eq.] 0. secs (0.u,0.s) +Chars 48159 - 48197 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 48199 - 48258 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) +Chars 48260 - 48393 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 48394 - 48400 [Proof.] 0. secs (0.u,0.s) +Chars 48403 - 48432 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 48433 - 48437 [Qed.] 0. secs (0.u,0.s) +Chars 48439 - 48566 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 48567 - 48573 [Proof.] 0. secs (0.u,0.s) +Chars 48576 - 48605 [(apply~Symmetric_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 48607 - 48611 [Qed.] 0. secs (0.u,0.s) +Chars 48660 - 48728 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 48729 - 48735 [Proof.] 0. secs (0.u,0.s) +Chars 48738 - 48766 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 48767 - 48771 [Qed.] 0. secs (0.u,0.s) +Chars 48773 - 48835 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 48836 - 48842 [Proof.] 0. secs (0.u,0.s) +Chars 48845 - 48873 [(apply~Symmetric_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 48874 - 48878 [Qed.] 0. secs (0.u,0.s) +Chars 48913 - 49012 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) +Chars 49013 - 49019 [Proof.] 0. secs (0.u,0.s) +Chars 49022 - 49068 [(constructor;~step~in~H;~step;...] 0.002 secs (0.002u,0.s) +Chars 49071 - 49075 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49078 - 49173 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) +Chars 49174 - 49180 [Proof.] 0. secs (0.u,0.s) +Chars 49183 - 49201 [(constructor;~step).] 0.001 secs (0.001u,0.s) +Chars 49202 - 49215 [econstructor.] 0. secs (0.u,0.s) +Chars 49216 - 49222 [eauto.] 0. secs (0.u,0.s) +Chars 49223 - 49227 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49229 - 49356 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) +Chars 49357 - 49363 [Proof.] 0. secs (0.u,0.s) +Chars 49366 - 49388 [(constructor;~red~in~H).] 0. secs (0.u,0.s) +Chars 49389 - 49425 [(step;~econstructor;~auto~with...] 0.001 secs (0.001u,0.s) +Chars 49426 - 49430 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49432 - 49516 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 49517 - 49523 [Proof.] 0. secs (0.u,0.s) +Chars 49526 - 49545 [(repeat~red;~intros).] 0. secs (0.u,0.s) +Chars 49548 - 49553 [step.] 0.001 secs (0.001u,0.s) +Chars 49554 - 49584 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) +Chars 49585 - 49614 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) +Chars 49615 - 49619 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49621 - 49766 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 49767 - 49773 [Proof.] 0. secs (0.u,0.s) +Chars 49776 - 49784 [intros~!.] 0. secs (0.u,0.s) +Chars 49787 - 49793 [(inv~H).] 0.007 secs (0.006u,0.s) +Chars 49796 - 49801 [step.] 0.001 secs (0.001u,0.s) +Chars 49804 - 49830 [(rewrite~observing_observe).] 0. secs (0.u,0.s) +Chars 49833 - 49838 [step.] 0.003 secs (0.003u,0.s) +Chars 49839 - 49851 [reflexivity.] 0. secs (0.u,0.s) +Chars 49852 - 49856 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49883 - 49940 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) +Chars 49941 - 49947 [Proof.] 0. secs (0.u,0.s) +Chars 49948 - 49973 [(apply~observing_sub_eqit).] 0. secs (0.u,0.s) +Chars 49974 - 49987 [econstructor.] 0. secs (0.u,0.s) +Chars 49988 - 50000 [reflexivity.] 0. secs (0.u,0.s) +Chars 50001 - 50005 [Qed.] 0. secs (0.u,0.s) +Chars 50007 - 50062 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) +Chars 50063 - 50069 [Proof.] 0. secs (0.u,0.s) +Chars 50070 - 50087 [(apply~itree_eta_).] 0. secs (0.u,0.s) +Chars 50088 - 50092 [Qed.] 0. secs (0.u,0.s) +Chars 50094 - 50152 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) +Chars 50153 - 50159 [Proof.] 0. secs (0.u,0.s) +Chars 50160 - 50172 [reflexivity.] 0. secs (0.u,0.s) +Chars 50173 - 50177 [Qed.] 0. secs (0.u,0.s) +Chars 50179 - 50191 [End~eqit_eq.] 0. secs (0.u,0.s) +Chars 50225 - 50313 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 50314 - 50320 [Proof.] 0. secs (0.u,0.s) +Chars 50323 - 50338 [(intros;~sinv~H).] 0.006 secs (0.006u,0.s) +Chars 50339 - 50343 [Qed.] 0.002 secs (0.002u,0.s) +Chars 50345 - 50496 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 50497 - 50503 [Proof.] 0. secs (0.u,0.s) +Chars 50506 - 50553 [(intros;~step~in~H;~apply~eqit...] 0. secs (0.u,0.s) +Chars 50556 - 50610 [(destruct~H~as~[[?~[->~?]]|~[]...] 0. secs (0.u,0.s) +Chars 50613 - 50635 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 50636 - 50640 [Qed.] 0.001 secs (0.001u,0.s) +Chars 50642 - 50755 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 50756 - 50762 [Proof.] 0. secs (0.u,0.s) +Chars 50765 - 50787 [(intros;~sinv~H;~eauto).] 0.013 secs (0.013u,0.s) +Chars 50788 - 50792 [Qed.] 0.003 secs (0.003u,0.s) +Chars 50794 - 50895 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 50896 - 50902 [Proof.] 0. secs (0.u,0.s) +Chars 50905 - 50912 [(intros).] 0. secs (0.u,0.s) +Chars 50913 - 50923 [step~in~H.] 0. secs (0.u,0.s) +Chars 50924 - 50930 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 50932 - 50936 [Qed.] 0.002 secs (0.002u,0.s) +Chars 50989 - 51218 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0.001 secs (0.001u,0.s) +Chars 51219 - 51225 [Proof.] 0. secs (0.u,0.s) +Chars 51228 - 51235 [(intros).] 0. secs (0.u,0.s) +Chars 51236 - 51278 [(step~in~H;~apply~eqitF_inv_Vi...] 0. secs (0.u,0.s) +Chars 51281 - 51303 [(destruct~H~as~[p~[]]).] 0. secs (0.u,0.s) +Chars 51304 - 51326 [(exists~p;~split;~auto).] 0. secs (0.u,0.s) +Chars 51327 - 51331 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51357 - 51563 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 51564 - 51570 [Proof.] 0. secs (0.u,0.s) +Chars 51573 - 51642 [(intros~H~x;~step~in~H;~apply~...] 0. secs (0.u,0.s) +Chars 51643 - 51647 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51690 - 51769 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) +Chars 51770 - 51776 [Proof.] 0. secs (0.u,0.s) +Chars 51779 - 51814 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) +Chars 51815 - 51819 [Qed.] 0. secs (0.u,0.s) +Chars 51821 - 51903 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) +Chars 51904 - 51910 [Proof.] 0. secs (0.u,0.s) +Chars 51913 - 51948 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) +Chars 51949 - 51953 [Qed.] 0. secs (0.u,0.s) +Chars 51955 - 52081 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 52082 - 52088 [Proof.] 0. secs (0.u,0.s) +Chars 52091 - 52098 [(intros).] 0. secs (0.u,0.s) +Chars 52099 - 52104 [step.] 0.001 secs (0.001u,0.s) +Chars 52105 - 52125 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 52126 - 52140 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 52142 - 52146 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52148 - 52274 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 52275 - 52281 [Proof.] 0. secs (0.u,0.s) +Chars 52284 - 52291 [(intros).] 0. secs (0.u,0.s) +Chars 52292 - 52297 [step.] 0.002 secs (0.002u,0.s) +Chars 52298 - 52318 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 52319 - 52333 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 52335 - 52339 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52341 - 52395 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) +Chars 52396 - 52402 [Proof.] 0. secs (0.u,0.s) +Chars 52405 - 52422 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) +Chars 52423 - 52435 [reflexivity.] 0. secs (0.u,0.s) +Chars 52436 - 52440 [Qed.] 0. secs (0.u,0.s) +Chars 52442 - 52494 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) +Chars 52495 - 52501 [Proof.] 0. secs (0.u,0.s) +Chars 52504 - 52538 [(apply~euttge_sub_eutt,~tau_eu...] 0. secs (0.u,0.s) +Chars 52539 - 52543 [Qed.] 0. secs (0.u,0.s) +Chars 52546 - 52620 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) +Chars 52621 - 52627 [Proof.] 0. secs (0.u,0.s) +Chars 52630 - 52635 [step.] 0.001 secs (0.001u,0.s) +Chars 52636 - 52647 [(repeat~red).] 0. secs (0.u,0.s) +Chars 52648 - 52656 [simpobs.] 0. secs (0.u,0.s) +Chars 52657 - 52663 [(simpl).] 0. secs (0.u,0.s) +Chars 52664 - 52670 [subst.] 0. secs (0.u,0.s) +Chars 52671 - 52678 [unstep.] 0.003 secs (0.003u,0.s) +Chars 52679 - 52707 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) +Chars 52708 - 52712 [Qed.] 0.001 secs (0.001u,0.s) +Chars 52760 - 53073 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) +Chars 53075 - 53081 [Proof.] 0. secs (0.u,0.s) +Chars 53083 - 53119 [(intros~!;~unfold~flip,~eq_itr...] 0. secs (0.u,0.s) +Chars 54282 - 54288 [idtac.] 0. secs (0.u,0.s) +Chars 54328 - 54388 [(assert~(rcompose~RR1~RS~<=~RS...] 0. secs (0.u,0.s) +Chars 54392 - 54459 [(assert~(rcompose~RS~(flip~RR2...] 0. secs (0.u,0.s) +Chars 54462 - 54560 [(assert~(eqit~b1~b2~RR1~x~y)~b...] 0.004 secs (0.004u,0.s) +Chars 54563 - 54667 [(assert~(eqit~b1~b2~RR2~x0~y0)...] 0.007 secs (0.007u,0.s) +Chars 54696 - 54740 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) +Chars 54744 - 54842 [(assert~(Hdiag~:~eqit~b1~b2~RS...] 0.002 secs (0.002u,0.s) +Chars 54880 - 54902 [(apply~eqit_flip~in~H0).] 0. secs (0.u,0.s) +Chars 54952 - 55012 [(eapply~eqit_mono~with~(RR~:=~...] 0.003 secs (0.003u,0.s) +Chars 55016 - 55041 [(eapply~eqit_trans;~eauto).] 0.003 secs (0.002u,0.s) +Chars 55045 - 55114 [(eapply~eqit_mono~with~(b1~:=~...] 0.005 secs (0.005u,0.s) +Chars 55116 - 55120 [Qed.] 0.002 secs (0.002u,0.s) +Chars 55163 - 55312 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) +Chars 55313 - 55319 [Proof.] 0. secs (0.u,0.s) +Chars 55322 - 55329 [(intros).] 0. secs (0.u,0.s) +Chars 55332 - 55348 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 55351 - 55352 [-] 0. secs (0.u,0.s) +Chars 55353 - 55373 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 55374 - 55386 [2:~(apply~H).] 0. secs (0.u,0.s) +Chars 55392 - 55409 [(apply~eqit_Tau_r).] 0. secs (0.u,0.s) +Chars 55410 - 55422 [reflexivity.] 0. secs (0.u,0.s) +Chars 55425 - 55426 [-] 0. secs (0.u,0.s) +Chars 55427 - 55432 [step.] 0.001 secs (0.001u,0.s) +Chars 55433 - 55438 [taul.] 0. secs (0.u,0.s) +Chars 55439 - 55453 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 55455 - 55459 [Qed.] 0.001 secs (0.001u,0.s) +Chars 55461 - 55610 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) +Chars 55611 - 55617 [Proof.] 0. secs (0.u,0.s) +Chars 55620 - 55627 [(intros).] 0. secs (0.u,0.s) +Chars 55630 - 55646 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 55649 - 55650 [-] 0. secs (0.u,0.s) +Chars 55651 - 55671 [(eapply~transitivity).] 0. secs (0.u,0.s) +Chars 55672 - 55680 [(apply~H).] 0. secs (0.u,0.s) +Chars 55685 - 55702 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) +Chars 55703 - 55715 [reflexivity.] 0. secs (0.u,0.s) +Chars 55718 - 55719 [-] 0. secs (0.u,0.s) +Chars 55720 - 55725 [step.] 0.001 secs (0.001u,0.s) +Chars 55726 - 55731 [taur.] 0. secs (0.u,0.s) +Chars 55732 - 55746 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 55747 - 55751 [Qed.] 0.001 secs (0.001u,0.s) +Chars 55753 - 55842 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 55843 - 55849 [Proof.] 0. secs (0.u,0.s) +Chars 55852 - 55865 [(intros~Heutt).] 0. secs (0.u,0.s) +Chars 55866 - 55880 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 55884 - 55902 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) +Chars 55906 - 55934 [(remember~(observe~(Ret~r1))).] 0. secs (0.u,0.s) +Chars 55937 - 55951 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 55954 - 55985 [(remember~{|~_observe~:=~ot2~|}).] 0. secs (0.u,0.s) +Chars 55988 - 56033 [(hinduction~Heutt~before~r1;~i...] 0.008 secs (0.007u,0.s) +Chars 56037 - 56038 [-] 0. secs (0.u,0.s) +Chars 56039 - 56058 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) +Chars 56059 - 56077 [(rewrite~itree_eta).] 0.01 secs (0.01u,0.s) +Chars 56078 - 56097 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 56098 - 56102 [Qed.] 0.004 secs (0.004u,0.s) +Chars 56199 - 56288 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 56289 - 56295 [Proof.] 0. secs (0.u,0.s) +Chars 56298 - 56311 [(intros~Heutt).] 0. secs (0.u,0.s) +Chars 56312 - 56326 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 56331 - 56349 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) +Chars 56353 - 56428 [(remember~(observe~(Ret~r2));~...] 0. secs (0.u,0.s) +Chars 56431 - 56475 [(hinduction~Heutt~before~R;~in...] 0.008 secs (0.008u,0.s) +Chars 56479 - 56480 [-] 0. secs (0.u,0.s) +Chars 56481 - 56500 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) +Chars 56501 - 56519 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) +Chars 56520 - 56539 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 56540 - 56544 [Qed.] 0.004 secs (0.004u,0.s) +Chars 56588 - 56755 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) +Chars 56757 - 56853 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 56854 - 56860 [Proof.] 0. secs (0.u,0.s) +Chars 56863 - 56914 [(apply~observing_sub_eqit;~con...] 0. secs (0.u,0.s) +Chars 56915 - 56919 [Qed.] 0. secs (0.u,0.s) +Chars 56921 - 57010 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) +Chars 57011 - 57017 [Proof.] 0. secs (0.u,0.s) +Chars 57018 - 57054 [(apply~observing_sub_eqit,~bin...] 0. secs (0.u,0.s) +Chars 57055 - 57059 [Qed.] 0. secs (0.u,0.s) +Chars 57061 - 57156 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) +Chars 57157 - 57163 [Proof.] 0. secs (0.u,0.s) +Chars 57164 - 57194 [(apply~(unfold_bind~(Tau~t)~k)).] 0. secs (0.u,0.s) +Chars 57195 - 57199 [Qed.] 0. secs (0.u,0.s) +Chars 57201 - 57345 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) +Chars 57346 - 57352 [Proof.] 0. secs (0.u,0.s) +Chars 57353 - 57386 [(apply~(unfold_bind~(Vis~e~ek)...] 0. secs (0.u,0.s) +Chars 57387 - 57391 [Qed.] 0. secs (0.u,0.s) +Chars 57393 - 57511 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) +Chars 57512 - 57518 [Proof.] 0. secs (0.u,0.s) +Chars 57521 - 57546 [(rewrite~unfold_bind;~cbn).] 0.003 secs (0.002u,0.s) +Chars 57549 - 57554 [step.] 0.001 secs (0.001u,0.s) +Chars 57557 - 57569 [constructor.] 0. secs (0.u,0.s) +Chars 57572 - 57579 [(intros).] 0. secs (0.u,0.s) +Chars 57580 - 57597 [(apply~bind_ret_l).] 0. secs (0.u,0.s) +Chars 57598 - 57602 [Qed.] 0.002 secs (0.002u,0.s) +Chars 57604 - 57761 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 57762 - 57768 [Proof.] 0. secs (0.u,0.s) +Chars 57771 - 57793 [(rewrite~unfold_aloop_).] 0.008 secs (0.008u,0.s) +Chars 57794 - 57806 [reflexivity.] 0. secs (0.u,0.s) +Chars 57807 - 57811 [Qed.] 0.001 secs (0.001u,0.s) +Chars 57813 - 57935 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) +Chars 57936 - 57942 [Proof.] 0. secs (0.u,0.s) +Chars 57945 - 57993 [(rewrite~itree_eta,~(itree_eta...] 0.002 secs (0.002u,0.s) +Chars 57996 - 58008 [reflexivity.] 0. secs (0.u,0.s) +Chars 58009 - 58013 [Qed.] 0.001 secs (0.001u,0.s) +Chars 58015 - 58129 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) +Chars 58130 - 58190 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) +Chars 58192 - 58207 [Section~eqit_h.] 0. secs (0.u,0.s) +Chars 58209 - 58275 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 58334 - 58451 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) +Chars 58452 - 58458 [Proof.] 0. secs (0.u,0.s) +Chars 58461 - 58477 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 58480 - 58481 [-] 0. secs (0.u,0.s) +Chars 58482 - 58492 [step~in~H.] 0. secs (0.u,0.s) +Chars 58493 - 58498 [step.] 0.001 secs (0.001u,0.s) +Chars 58505 - 58522 [move~H~before~RR.] 0. secs (0.u,0.s) +Chars 58523 - 58538 [(revert_until~H).] 0. secs (0.u,0.s) +Chars 58543 - 58571 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) +Chars 58577 - 58605 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) +Chars 58611 - 58625 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 58631 - 58645 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 58651 - 58707 [(hinduction~H~before~RR;~intro...] 0.017 secs (0.016u,0.s) +Chars 58713 - 58714 [+] 0. secs (0.u,0.s) +Chars 58715 - 58726 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 58732 - 58733 [+] 0. secs (0.u,0.s) +Chars 58734 - 58740 [(inv~H).] 0.01 secs (0.01u,0.s) +Chars 58748 - 58749 [*] 0. secs (0.u,0.s) +Chars 58750 - 58755 [taul.] 0. secs (0.u,0.s) +Chars 58756 - 58778 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 58786 - 58787 [*] 0. secs (0.u,0.s) +Chars 58788 - 58793 [taul.] 0. secs (0.u,0.s) +Chars 58794 - 58816 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 58822 - 58823 [+] 0. secs (0.u,0.s) +Chars 58824 - 58830 [(inv~H).] 0.007 secs (0.007u,0.s) +Chars 58838 - 58839 [*] 0. secs (0.u,0.s) +Chars 58840 - 58845 [taur.] 0. secs (0.u,0.s) +Chars 58846 - 58868 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 58876 - 58877 [*] 0. secs (0.u,0.s) +Chars 58878 - 58883 [taur.] 0. secs (0.u,0.s) +Chars 58884 - 58906 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 58910 - 58911 [-] 0. secs (0.u,0.s) +Chars 58912 - 58917 [step.] 0.001 secs (0.001u,0.s) +Chars 58918 - 58934 [now~constructor.] 0. secs (0.u,0.s) +Chars 58938 - 58942 [Qed.] 0.008 secs (0.008u,0.s) +Chars 58945 - 59168 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) +Chars 59169 - 59175 [Proof.] 0. secs (0.u,0.s) +Chars 59178 - 59194 [(destruct~p;~cbn).] 0. secs (0.u,0.s) +Chars 59195 - 59207 [(intros~<-~H).] 0. secs (0.u,0.s) +Chars 59208 - 59213 [step.] 0.001 secs (0.001u,0.s) +Chars 59214 - 59227 [econstructor.] 0. secs (0.u,0.s) +Chars 59228 - 59236 [(apply~H).] 0. secs (0.u,0.s) +Chars 59237 - 59241 [Qed.] 0.002 secs (0.001u,0.s) +Chars 59243 - 59415 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) +Chars 59416 - 59422 [Proof.] 0. secs (0.u,0.s) +Chars 59425 - 59477 [(apply~eqit_Vis_gen~with~(p~:=...] 0. secs (0.u,0.s) +Chars 59478 - 59482 [Qed.] 0. secs (0.u,0.s) +Chars 59484 - 59581 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) +Chars 59582 - 59588 [Proof.] 0. secs (0.u,0.s) +Chars 59591 - 59607 [(split;~intros~H).] 0. secs (0.u,0.s) +Chars 59610 - 59611 [-] 0. secs (0.u,0.s) +Chars 59612 - 59617 [step.] 0.001 secs (0.001u,0.s) +Chars 59618 - 59634 [now~constructor.] 0. secs (0.u,0.s) +Chars 59637 - 59638 [-] 0. secs (0.u,0.s) +Chars 59639 - 59646 [(sinv~H).] 0.002 secs (0.002u,0.s) +Chars 59648 - 59652 [Qed.] 0.002 secs (0.002u,0.s) +Chars 59837 - 60155 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) +Chars 60156 - 60162 [Proof.] 0. secs (0.u,0.s) +Chars 60166 - 60182 [(revert_until~U2).] 0. secs (0.u,0.s) +Chars 60186 - 60202 [tower~induction.] 0.004 secs (0.004u,0.s) +Chars 60206 - 60207 [-] 0. secs (0.u,0.s) +Chars 60208 - 60215 [(intros).] 0. secs (0.u,0.s) +Chars 60219 - 60236 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) +Chars 60241 - 60242 [-] 0. secs (0.u,0.s) +Chars 60243 - 60250 [(intros).] 0. secs (0.u,0.s) +Chars 60254 - 60264 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 60268 - 60282 [(genobs~t1~ot1).] 0. secs (0.u,0.s) +Chars 60287 - 60301 [(genobs~t2~ot2).] 0. secs (0.u,0.s) +Chars 60304 - 60346 [(hinduction~H0~before~RR;~intr...] 0.039 secs (0.039u,0.s) +Chars 60431 - 60468 [1-3:~(rewrite~2!observe_bind;~...] 0.018 secs (0.018u,0.s) +Chars 60483 - 60484 [+] 0. secs (0.u,0.s) +Chars 60485 - 60502 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) +Chars 60519 - 60520 [+] 0. secs (0.u,0.s) +Chars 60521 - 60533 [constructor.] 0. secs (0.u,0.s) +Chars 60538 - 60554 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60560 - 60588 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) +Chars 60603 - 60604 [+] 0. secs (0.u,0.s) +Chars 60605 - 60617 [constructor.] 0. secs (0.u,0.s) +Chars 60623 - 60629 [intro.] 0. secs (0.u,0.s) +Chars 60635 - 60651 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60656 - 60684 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) +Chars 60700 - 60701 [+] 0. secs (0.u,0.s) +Chars 60702 - 60723 [(rewrite~observe_bind).] 0. secs (0.u,0.s) +Chars 60729 - 60737 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 60743 - 60748 [taul.] 0. secs (0.u,0.s) +Chars 60754 - 60776 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60794 - 60795 [+] 0. secs (0.u,0.s) +Chars 60796 - 60829 [setoid_rewrite~observe_bind~at~2.] 0.022 secs (0.022u,0.s) +Chars 60835 - 60843 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 60849 - 60854 [taur.] 0. secs (0.u,0.s) +Chars 60860 - 60882 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 60884 - 60888 [Qed.] 0.009 secs (0.009u,0.s) +Chars 60891 - 61083 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) +Chars 61084 - 61090 [Proof.] 0. secs (0.u,0.s) +Chars 61095 - 61107 [(unfold~eutt).] 0. secs (0.u,0.s) +Chars 61108 - 61138 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) +Chars 61141 - 61145 [Qed.] 0. secs (0.u,0.s) +Chars 61148 - 61382 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) +Chars 61383 - 61389 [Proof.] 0. secs (0.u,0.s) +Chars 61394 - 61425 [(eapply~eqit_bind_chain;~intros).] 0. secs (0.u,0.s) +Chars 61431 - 61476 [all:~now~do~2~step;~[~apply~EQ...] 0.025 secs (0.024u,0.s) +Chars 61477 - 61481 [Qed.] 0.002 secs (0.002u,0.s) +Chars 61485 - 61496 [End~eqit_h.] 0. secs (0.u,0.s) +Chars 61498 - 61541 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 61543 - 61586 [Ltac~etau~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 61588 - 61639 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) +Chars 61641 - 61696 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) +Chars 61701 - 61777 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) +Chars 61778 - 61784 [Proof.] 0. secs (0.u,0.s) +Chars 61787 - 61802 [(apply~eqit_Tau).] 0. secs (0.u,0.s) +Chars 61803 - 61807 [Qed.] 0. secs (0.u,0.s) +Chars 61809 - 61888 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) +Chars 61889 - 61895 [Proof.] 0. secs (0.u,0.s) +Chars 61898 - 61913 [(apply~eqit_Tau).] 0. secs (0.u,0.s) +Chars 61914 - 61918 [Qed.] 0. secs (0.u,0.s) +Chars 61920 - 62182 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 62183 - 62189 [Proof.] 0. secs (0.u,0.s) +Chars 62192 - 62199 [(intros).] 0. secs (0.u,0.s) +Chars 62202 - 62232 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) +Chars 62234 - 62238 [Qed.] 0. secs (0.u,0.s) +Chars 62240 - 62501 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) +Chars 62502 - 62508 [Proof.] 0. secs (0.u,0.s) +Chars 62511 - 62536 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) +Chars 62537 - 62541 [Qed.] 0.002 secs (0.001u,0.s) +Chars 62544 - 62705 [#[global]~Instance~eqit_subst~...] 0.001 secs (0.u,0.s) +Chars 62706 - 62712 [Proof.] 0. secs (0.u,0.s) +Chars 62715 - 62749 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) +Chars 62752 - 62772 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 62773 - 62777 [Qed.] 0. secs (0.u,0.s) +Chars 62779 - 62938 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) +Chars 62939 - 62945 [Proof.] 0. secs (0.u,0.s) +Chars 62948 - 62982 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) +Chars 62985 - 63005 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 63006 - 63010 [Qed.] 0. secs (0.u,0.s) +Chars 63012 - 63259 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 63260 - 63266 [Proof.] 0. secs (0.u,0.s) +Chars 63269 - 63294 [(unfold~ITree.map;~intros).] 0. secs (0.u,0.s) +Chars 63297 - 63322 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) +Chars 63325 - 63357 [(intros;~step;~constructor;~au...] 0.001 secs (0.001u,0.s) +Chars 63358 - 63362 [Qed.] 0.001 secs (0.001u,0.s) +Chars 63364 - 63521 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) +Chars 63522 - 63528 [Proof.] 0. secs (0.u,0.s) +Chars 63531 - 63563 [(intros~!;~eapply~eqit_map;~ea...] 0. secs (0.u,0.s) +Chars 63566 - 63586 [(intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 63587 - 63591 [Qed.] 0. secs (0.u,0.s) +Chars 63593 - 63778 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) +Chars 63780 - 63786 [Proof.] 0. secs (0.u,0.s) +Chars 63790 - 63798 [intros~!.] 0. secs (0.u,0.s) +Chars 63802 - 63809 [unstep.] 0.002 secs (0.002u,0.s) +Chars 63810 - 63820 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 63821 - 63832 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 63833 - 63842 [now~step.] 0.001 secs (0.001u,0.s) +Chars 63844 - 63848 [Qed.] 0.002 secs (0.002u,0.s) +Chars 63852 - 63970 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) +Chars 63971 - 63977 [Proof.] 0. secs (0.u,0.s) +Chars 63980 - 64002 [(apply~Transitive_elem).] 0. secs (0.u,0.s) +Chars 64003 - 64021 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 64023 - 64027 [Qed.] 0. secs (0.u,0.s) +Chars 64356 - 64514 [#[global]~Instance~elem_observ...] 0.001 secs (0.001u,0.s) +Chars 64516 - 64522 [Proof.] 0. secs (0.u,0.s) +Chars 64526 - 64559 [(intros~x~y~Hxy~x'~y'~Hx'y'~He...] 0. secs (0.u,0.s) +Chars 64562 - 64580 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) +Chars 64585 - 64625 [(eapply~observing_sub_elem~in~...] 0. secs (0.u,0.s) +Chars 64628 - 64670 [(eapply~observing_sub_elem~in~...] 0.001 secs (0.001u,0.s) +Chars 64673 - 64701 [(do~2~(etransitivity;~eauto)).] 0.001 secs (0.001u,0.s) +Chars 64704 - 64708 [Qed.] 0.001 secs (0.001u,0.s) +Chars 64713 - 64802 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) +Chars 64803 - 64809 [Proof.] 0. secs (0.u,0.s) +Chars 64812 - 64828 [(unfold~eq_itree).] 0. secs (0.u,0.s) +Chars 64829 - 64836 [(intros).] 0. secs (0.u,0.s) +Chars 64922 - 64975 [(rewrite~(itree_eta_~(ITree.bi...] 0.002 secs (0.002u,0.s) +Chars 65002 - 65011 [revert~s.] 0. secs (0.u,0.s) +Chars 65015 - 65034 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 65038 - 65045 [(intros).] 0. secs (0.u,0.s) +Chars 65120 - 65166 [(desobs~s~H;~cbn;~simpobs;~con...] 0.004 secs (0.004u,0.s) +Chars 65194 - 65206 [reflexivity.] 0. secs (0.u,0.s) +Chars 65347 - 65381 [all:~(eapply~elem_observing_pr...] 0.001 secs (0.001u,0.s) +Chars 65426 - 65446 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) +Chars 65500 - 65535 [all:~(constructor;~ITree.fold_...] 0. secs (0.u,0.s) +Chars 65538 - 65562 [all:~(simpl;~reflexivity).] 0. secs (0.u,0.s) +Chars 65564 - 65568 [Qed.] 0.006 secs (0.006u,0.s) +Chars 65571 - 65693 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) +Chars 65694 - 65700 [Proof.] 0. secs (0.u,0.s) +Chars 65703 - 65711 [intro~H.] 0. secs (0.u,0.s) +Chars 65712 - 65743 [(rewrite~<-~(bind_ret_r~u)~~at...] 0.001 secs (0.001u,0.s) +Chars 65744 - 65760 [(apply~eqit_bind).] 0.002 secs (0.001u,0.s) +Chars 65763 - 65764 [-] 0. secs (0.u,0.s) +Chars 65765 - 65777 [reflexivity.] 0. secs (0.u,0.s) +Chars 65780 - 65781 [-] 0. secs (0.u,0.s) +Chars 65782 - 65786 [(hnf).] 0. secs (0.u,0.s) +Chars 65787 - 65794 [(intros).] 0. secs (0.u,0.s) +Chars 65795 - 65810 [(apply~eqit_Ret).] 0. secs (0.u,0.s) +Chars 65811 - 65816 [auto.] 0. secs (0.u,0.s) +Chars 65817 - 65821 [Qed.] 0.001 secs (0.001u,0.s) +Chars 65823 - 65986 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) +Chars 65989 - 66166 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) +Chars 66167 - 66173 [Proof.] 0. secs (0.u,0.s) +Chars 66176 - 66192 [(unfold~eq_itree).] 0. secs (0.u,0.s) +Chars 66193 - 66200 [(intros).] 0. secs (0.u,0.s) +Chars 66204 - 66315 [(lazymatch~goal~with~~|~|-~_~(...] 0.003 secs (0.003u,0.s) +Chars 66318 - 66395 [(lazymatch~goal~with~~|~|-~_~?...] 0.002 secs (0.002u,0.s) +Chars 66398 - 66411 [revert~s~k~h.] 0. secs (0.u,0.s) +Chars 66415 - 66434 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 66437 - 66444 [(intros).] 0. secs (0.u,0.s) +Chars 66447 - 66472 [(desobs~s~H;~cbn;~simpobs).] 0.002 secs (0.002u,0.s) +Chars 66476 - 66484 [1:~step.] 0.003 secs (0.003u,0.s) +Chars 66485 - 66497 [reflexivity.] 0. secs (0.u,0.s) +Chars 66501 - 66556 [all:~(constructor;~intros;~eap...] 0.002 secs (0.002u,0.s) +Chars 66559 - 66579 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) +Chars 66582 - 66599 [all:~constructor.] 0. secs (0.u,0.s) +Chars 66603 - 66619 [all:~fold_subst.] 0.001 secs (0.001u,0.s) +Chars 66623 - 66656 [all:~(repeat~rewrite~observe_b...] 0.005 secs (0.005u,0.s) +Chars 66659 - 66676 [all:~reflexivity.] 0. secs (0.u,0.s) +Chars 66677 - 66681 [Qed.] 0.011 secs (0.011u,0.s) +Chars 66684 - 66826 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) +Chars 66827 - 66833 [Proof.] 0. secs (0.u,0.s) +Chars 66836 - 66853 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 66854 - 66861 [(intros).] 0. secs (0.u,0.s) +Chars 66862 - 66880 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 66881 - 66907 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) +Chars 66908 - 66920 [reflexivity.] 0. secs (0.u,0.s) +Chars 66921 - 66925 [Qed.] 0.001 secs (0.001u,0.s) +Chars 66927 - 67079 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) +Chars 67080 - 67086 [Proof.] 0. secs (0.u,0.s) +Chars 67089 - 67106 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67107 - 67114 [(intros).] 0. secs (0.u,0.s) +Chars 67115 - 67133 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) +Chars 67134 - 67160 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 67161 - 67173 [reflexivity.] 0. secs (0.u,0.s) +Chars 67174 - 67178 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67180 - 67333 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) +Chars 67334 - 67340 [Proof.] 0. secs (0.u,0.s) +Chars 67343 - 67350 [(intros).] 0. secs (0.u,0.s) +Chars 67351 - 67368 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67369 - 67385 [(apply~bind_bind).] 0. secs (0.u,0.s) +Chars 67386 - 67390 [Qed.] 0. secs (0.u,0.s) +Chars 67392 - 67482 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 67483 - 67489 [Proof.] 0. secs (0.u,0.s) +Chars 67492 - 67499 [(intros).] 0. secs (0.u,0.s) +Chars 67500 - 67517 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67520 - 67552 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 67553 - 67557 [Qed.] 0. secs (0.u,0.s) +Chars 67559 - 67667 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 67668 - 67674 [Proof.] 0. secs (0.u,0.s) +Chars 67677 - 67684 [(intros).] 0. secs (0.u,0.s) +Chars 67687 - 67704 [(unfold~ITree.map).] 0. secs (0.u,0.s) +Chars 67707 - 67737 [(rewrite~bind_tau;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 67738 - 67742 [Qed.] 0.001 secs (0.001u,0.s) +Chars 67744 - 67787 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 67788 - 67831 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 67832 - 67873 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) +Chars 67874 - 67915 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) +Chars 67916 - 67957 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) +Chars 67958 - 67998 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) +Chars 67999 - 68039 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) +Chars 68040 - 68082 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) +Chars 68103 - 68194 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) +Chars 68196 - 68288 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) +Chars 68405 - 68480 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) +Chars 68552 - 68630 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) +Chars 68693 - 68747 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) +Chars 68749 - 68847 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) +Chars 68849 - 68948 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) +Chars 68950 - 69045 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) +Chars 69047 - 69145 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) +Chars 69147 - 69216 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) +Chars 69218 - 69479 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 69480 - 69486 [Proof.] 0. secs (0.u,0.s) +Chars 69489 - 69496 [(intros).] 0. secs (0.u,0.s) +Chars 69499 - 69509 [step~in~H.] 0. secs (0.u,0.s) +Chars 69512 - 69557 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 69560 - 69585 [(remember~(Ret~b)~as~retb).] 0. secs (0.u,0.s) +Chars 69589 - 69619 [(remember~(observe~retb)~as~tr).] 0. secs (0.u,0.s) +Chars 69622 - 69663 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) +Chars 69666 - 69722 [(hinduction~H~before~RR;~intro...] 0.002 secs (0.002u,0.s) +Chars 69725 - 69726 [-] 0. secs (0.u,0.s) +Chars 69727 - 69741 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 69746 - 69796 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 69801 - 69849 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) +Chars 69854 - 69863 [exists~r.] 0. secs (0.u,0.s) +Chars 69864 - 69870 [split.] 0. secs (0.u,0.s) +Chars 69875 - 69876 [*] 0. secs (0.u,0.s) +Chars 69877 - 69900 [(rewrite~itree_eta,~Ema).] 0.01 secs (0.01u,0.s) +Chars 69901 - 69913 [reflexivity.] 0. secs (0.u,0.s) +Chars 69918 - 69919 [*] 0. secs (0.u,0.s) +Chars 69920 - 69939 [(rewrite~itree_eta_).] 0.009 secs (0.009u,0.s) +Chars 69940 - 69956 [(unfold~_observe).] 0. secs (0.u,0.s) +Chars 69957 - 69975 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) +Chars 69976 - 69986 [(inv~Heqtr).] 0.001 secs (0.001u,0.s) +Chars 69992 - 70016 [(step;~constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 70019 - 70020 [-] 0. secs (0.u,0.s) +Chars 70021 - 70028 [(intros).] 0. secs (0.u,0.s) +Chars 70029 - 70035 [subst.] 0. secs (0.u,0.s) +Chars 70040 - 70090 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 70095 - 70143 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) +Chars 70148 - 70149 [+] 0. secs (0.u,0.s) +Chars 70150 - 70159 [exists~r.] 0. secs (0.u,0.s) +Chars 70160 - 70166 [split.] 0. secs (0.u,0.s) +Chars 70173 - 70174 [*] 0. secs (0.u,0.s) +Chars 70175 - 70198 [(rewrite~itree_eta,~Ema).] 0.011 secs (0.011u,0.s) +Chars 70199 - 70211 [reflexivity.] 0. secs (0.u,0.s) +Chars 70218 - 70219 [*] 0. secs (0.u,0.s) +Chars 70220 - 70225 [step.] 0.001 secs (0.001u,0.s) +Chars 70226 - 70263 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) +Chars 70264 - 70282 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) +Chars 70283 - 70301 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 70306 - 70307 [+] 0. secs (0.u,0.s) +Chars 70308 - 70319 [(inv~Heqotl).] 0.005 secs (0.005u,0.s) +Chars 70327 - 70352 [(edestruct~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 70353 - 70362 [exists~x.] 0. secs (0.u,0.s) +Chars 70370 - 70382 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 70390 - 70403 [(split;~eauto).] 0. secs (0.u,0.s) +Chars 70410 - 70428 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) +Chars 70429 - 70434 [taul.] 0. secs (0.u,0.s) +Chars 70442 - 70457 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 70459 - 70463 [Qed.] 0.01 secs (0.009u,0.s) +Chars 70465 - 70628 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 70629 - 70635 [Proof.] 0. secs (0.u,0.s) +Chars 70638 - 70676 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) +Chars 70677 - 70681 [Qed.] 0. secs (0.u,0.s) +Chars 70683 - 70849 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) +Chars 70850 - 70856 [Proof.] 0. secs (0.u,0.s) +Chars 70859 - 70897 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) +Chars 70898 - 70902 [Qed.] 0. secs (0.u,0.s) +Chars 70904 - 71172 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) +Chars 71174 - 71614 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 71615 - 71621 [Proof.] 0. secs (0.u,0.s) +Chars 71624 - 71631 [(intros).] 0. secs (0.u,0.s) +Chars 71632 - 71642 [step~in~H.] 0. secs (0.u,0.s) +Chars 71646 - 71691 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 71694 - 71722 [(remember~(Vis~e~kxc)~as~vis).] 0. secs (0.u,0.s) +Chars 71725 - 71754 [(remember~(observe~vis)~as~tr).] 0. secs (0.u,0.s) +Chars 71758 - 71801 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) +Chars 71804 - 71857 [(induction~H;~try~(solve~[~int...] 0.003 secs (0.003u,0.s) +Chars 71860 - 71861 [-] 0. secs (0.u,0.s) +Chars 71862 - 71869 [(intros).] 0. secs (0.u,0.s) +Chars 71870 - 71918 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 71923 - 71971 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) +Chars 71976 - 71977 [+] 0. secs (0.u,0.s) +Chars 71978 - 71984 [right.] 0. secs (0.u,0.s) +Chars 71985 - 71994 [exists~r.] 0. secs (0.u,0.s) +Chars 71995 - 72001 [split.] 0. secs (0.u,0.s) +Chars 72008 - 72009 [*] 0. secs (0.u,0.s) +Chars 72010 - 72029 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) +Chars 72030 - 72042 [constructor.] 0. secs (0.u,0.s) +Chars 72043 - 72048 [auto.] 0. secs (0.u,0.s) +Chars 72055 - 72056 [*] 0. secs (0.u,0.s) +Chars 72057 - 72101 [(step;~unfold~observe~at~1;~un...] 0.001 secs (0.001u,0.s) +Chars 72102 - 72119 [(rewrite~<-~Heqtl).] 0. secs (0.u,0.s) +Chars 72128 - 72136 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 72137 - 72155 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 72160 - 72161 [+] 0. secs (0.u,0.s) +Chars 72162 - 72167 [left.] 0. secs (0.u,0.s) +Chars 72174 - 72192 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) +Chars 72200 - 72217 [revert~e0~Heqvis.] 0. secs (0.u,0.s) +Chars 72218 - 72238 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) +Chars 72239 - 72257 [(inv_eq_VisF~Heqtl).] 0. secs (0.u,0.s) +Chars 72258 - 72265 [(intros).] 0. secs (0.u,0.s) +Chars 72272 - 72283 [(inv~Heqvis).] 0.002 secs (0.002u,0.s) +Chars 72291 - 72304 [(cbn~in~Heqtr).] 0. secs (0.u,0.s) +Chars 72312 - 72330 [(inv_eq_VisF~Heqtr).] 0. secs (0.u,0.s) +Chars 72337 - 72346 [exists~k.] 0. secs (0.u,0.s) +Chars 72347 - 72353 [split.] 0. secs (0.u,0.s) +Chars 72360 - 72361 [*] 0. secs (0.u,0.s) +Chars 72362 - 72381 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) +Chars 72382 - 72394 [constructor.] 0. secs (0.u,0.s) +Chars 72396 - 72408 [reflexivity.] 0. secs (0.u,0.s) +Chars 72415 - 72416 [*] 0. secs (0.u,0.s) +Chars 72417 - 72422 [auto.] 0. secs (0.u,0.s) +Chars 72425 - 72426 [-] 0. secs (0.u,0.s) +Chars 72427 - 72434 [(intros).] 0. secs (0.u,0.s) +Chars 72435 - 72441 [subst.] 0. secs (0.u,0.s) +Chars 72446 - 72494 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 72499 - 72548 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) +Chars 72553 - 72554 [+] 0. secs (0.u,0.s) +Chars 72555 - 72578 [(right;~exists~r;~split).] 0. secs (0.u,0.s) +Chars 72585 - 72586 [*] 0. secs (0.u,0.s) +Chars 72587 - 72623 [(rewrite~itree_eta,~Ema;~refle...] 0.012 secs (0.012u,0.s) +Chars 72630 - 72631 [*] 0. secs (0.u,0.s) +Chars 72632 - 72637 [step.] 0.001 secs (0.001u,0.s) +Chars 72639 - 72694 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) +Chars 72695 - 72713 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 72718 - 72719 [+] 0. secs (0.u,0.s) +Chars 72720 - 72730 [(inv~Heqtl).] 0.008 secs (0.008u,0.s) +Chars 72731 - 72786 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 72793 - 72858 [(destruct~IHeqitF~as~[(k0,~(?,...] 0. secs (0.u,0.s) +Chars 72865 - 72866 [*] 0. secs (0.u,0.s) +Chars 72867 - 72877 [exists~k0.] 0. secs (0.u,0.s) +Chars 72878 - 72890 [(split;~auto).] 0. secs (0.u,0.s) +Chars 72899 - 72952 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 72960 - 72961 [*] 0. secs (0.u,0.s) +Chars 72962 - 72971 [exists~a.] 0. secs (0.u,0.s) +Chars 72972 - 72984 [(split;~auto).] 0. secs (0.u,0.s) +Chars 72993 - 73046 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 73047 - 73051 [Qed.] 0.016 secs (0.016u,0.s) +Chars 73053 - 73389 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 73390 - 73396 [Proof.] 0. secs (0.u,0.s) +Chars 73399 - 73406 [(intros).] 0. secs (0.u,0.s) +Chars 73407 - 73431 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) +Chars 73432 - 73437 [auto.] 0. secs (0.u,0.s) +Chars 73438 - 73442 [Qed.] 0. secs (0.u,0.s) +Chars 73444 - 73783 [Lemma~eqitree_inv_bind_vis~:~~...] 0.001 secs (0.001u,0.s) +Chars 73784 - 73790 [Proof.] 0. secs (0.u,0.s) +Chars 73793 - 73800 [(intros).] 0. secs (0.u,0.s) +Chars 73801 - 73825 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) +Chars 73826 - 73831 [auto.] 0. secs (0.u,0.s) +Chars 73832 - 73836 [Qed.] 0. secs (0.u,0.s) +Chars 73838 - 74186 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 74187 - 74193 [Proof.] 0. secs (0.u,0.s) +Chars 74196 - 74203 [(intros).] 0. secs (0.u,0.s) +Chars 74204 - 74214 [step~in~H.] 0. secs (0.u,0.s) +Chars 74218 - 74263 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) +Chars 74266 - 74291 [(remember~(Tau~tc)~as~tau).] 0. secs (0.u,0.s) +Chars 74294 - 74323 [(remember~(observe~tau)~as~tr).] 0. secs (0.u,0.s) +Chars 74326 - 74366 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) +Chars 74369 - 74422 [(induction~H;~intros;~try~(sol...] 0.003 secs (0.003u,0.s) +Chars 74425 - 74426 [-] 0. secs (0.u,0.s) +Chars 74427 - 74437 [(inv~Heqtr).] 0.005 secs (0.005u,0.s) +Chars 74438 - 74486 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 74491 - 74539 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) +Chars 74544 - 74545 [+] 0. secs (0.u,0.s) +Chars 74546 - 74569 [(right;~exists~r;~split).] 0. secs (0.u,0.s) +Chars 74576 - 74577 [*] 0. secs (0.u,0.s) +Chars 74578 - 74621 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) +Chars 74628 - 74629 [*] 0. secs (0.u,0.s) +Chars 74630 - 74710 [(step;~icbn;~inv~H0;~unfold~ob...] 0.003 secs (0.003u,0.s) +Chars 74715 - 74716 [+] 0. secs (0.u,0.s) +Chars 74717 - 74739 [(left;~exists~t;~split).] 0. secs (0.u,0.s) +Chars 74746 - 74747 [*] 0. secs (0.u,0.s) +Chars 74748 - 74804 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) +Chars 74811 - 74812 [*] 0. secs (0.u,0.s) +Chars 74813 - 74823 [(inv~Heqtl).] 0.002 secs (0.002u,0.s) +Chars 74824 - 74831 [(inv~H0).] 0. secs (0.u,0.s) +Chars 74835 - 74836 [-] 0. secs (0.u,0.s) +Chars 74837 - 74843 [subst.] 0. secs (0.u,0.s) +Chars 74848 - 74896 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) +Chars 74901 - 74949 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) +Chars 74954 - 74955 [+] 0. secs (0.u,0.s) +Chars 74956 - 74979 [(right;~exists~r;~split).] 0. secs (0.u,0.s) +Chars 74986 - 74987 [*] 0. secs (0.u,0.s) +Chars 74988 - 75031 [(step;~icbn;~rewrite~Ema;~cons...] 0.001 secs (0.001u,0.s) +Chars 75038 - 75039 [*] 0. secs (0.u,0.s) +Chars 75040 - 75107 [(step;~icbn;~unfold~observe~at...] 0.001 secs (0.001u,0.s) +Chars 75108 - 75128 [(constructor~4;~auto).] 0. secs (0.u,0.s) +Chars 75133 - 75134 [+] 0. secs (0.u,0.s) +Chars 75135 - 75145 [(inv~Heqtl).] 0.007 secs (0.007u,0.s) +Chars 75146 - 75199 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 75206 - 75271 [(destruct~IHeqitF~as~[(t0,~(?,...] 0. secs (0.u,0.s) +Chars 75278 - 75279 [*] 0. secs (0.u,0.s) +Chars 75280 - 75290 [exists~t0.] 0. secs (0.u,0.s) +Chars 75291 - 75303 [(split;~auto).] 0. secs (0.u,0.s) +Chars 75312 - 75367 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 75374 - 75375 [*] 0. secs (0.u,0.s) +Chars 75376 - 75385 [exists~a.] 0. secs (0.u,0.s) +Chars 75386 - 75398 [(split;~auto).] 0. secs (0.u,0.s) +Chars 75407 - 75460 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) +Chars 75463 - 75464 [-] 0. secs (0.u,0.s) +Chars 75465 - 75475 [(inv~Heqtr).] 0.007 secs (0.007u,0.s) +Chars 75480 - 75503 [(left;~exists~ma;~split).] 0. secs (0.u,0.s) +Chars 75508 - 75509 [+] 0. secs (0.u,0.s) +Chars 75510 - 75534 [(step;~constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 75540 - 75541 [+] 0. secs (0.u,0.s) +Chars 75542 - 75567 [(inv~H1;~step;~assumption).] 0.007 secs (0.007u,0.s) +Chars 75568 - 75572 [Qed.] 0.017 secs (0.017u,0.s) +Chars 75574 - 75839 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 75840 - 75846 [Proof.] 0. secs (0.u,0.s) +Chars 75849 - 75856 [(intros).] 0. secs (0.u,0.s) +Chars 75857 - 75881 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) +Chars 75882 - 75887 [auto.] 0. secs (0.u,0.s) +Chars 75888 - 75892 [Qed.] 0. secs (0.u,0.s) +Chars 75894 - 76162 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) +Chars 76163 - 76169 [Proof.] 0. secs (0.u,0.s) +Chars 76172 - 76179 [(intros).] 0. secs (0.u,0.s) +Chars 76180 - 76204 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) +Chars 76205 - 76210 [auto.] 0. secs (0.u,0.s) +Chars 76211 - 76215 [Qed.] 0. secs (0.u,0.s) +Chars 76217 - 76339 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 76340 - 76346 [Proof.] 0. secs (0.u,0.s) +Chars 76349 - 76356 [(intros).] 0. secs (0.u,0.s) +Chars 76359 - 76369 [step~in~H.] 0. secs (0.u,0.s) +Chars 76372 - 76404 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) +Chars 76407 - 76445 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 76448 - 76466 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 76469 - 76531 [(induction~H;~intros~EQ1~EQ2;~...] 0.006 secs (0.006u,0.s) +Chars 76534 - 76535 [-] 0. secs (0.u,0.s) +Chars 76536 - 76556 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 76561 - 76569 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 76570 - 76574 [Qed.] 0.002 secs (0.002u,0.s) +Chars 76576 - 76698 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 76699 - 76705 [Proof.] 0. secs (0.u,0.s) +Chars 76708 - 76715 [(intros).] 0. secs (0.u,0.s) +Chars 76718 - 76728 [step~in~H.] 0. secs (0.u,0.s) +Chars 76731 - 76763 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) +Chars 76766 - 76804 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 76807 - 76825 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 76828 - 76890 [(induction~H;~intros~EQ1~EQ2;~...] 0.007 secs (0.007u,0.s) +Chars 76893 - 76894 [-] 0. secs (0.u,0.s) +Chars 76895 - 76915 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 76920 - 76928 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 76929 - 76933 [Qed.] 0.003 secs (0.002u,0.s) +Chars 76935 - 77085 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 77086 - 77092 [Proof.] 0. secs (0.u,0.s) +Chars 77095 - 77102 [(intros).] 0. secs (0.u,0.s) +Chars 77105 - 77115 [step~in~H.] 0. secs (0.u,0.s) +Chars 77118 - 77152 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) +Chars 77155 - 77193 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 77196 - 77214 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 77217 - 77279 [(induction~H;~intros~EQ1~EQ2;~...] 0.011 secs (0.01u,0.s) +Chars 77282 - 77283 [-] 0. secs (0.u,0.s) +Chars 77284 - 77304 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 77309 - 77317 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 77318 - 77322 [Qed.] 0.003 secs (0.003u,0.s) +Chars 77324 - 77474 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 77475 - 77481 [Proof.] 0. secs (0.u,0.s) +Chars 77484 - 77491 [(intros).] 0. secs (0.u,0.s) +Chars 77494 - 77504 [step~in~H.] 0. secs (0.u,0.s) +Chars 77507 - 77541 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) +Chars 77544 - 77582 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) +Chars 77585 - 77603 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 77606 - 77668 [(induction~H;~intros~EQ1~EQ2;~...] 0.009 secs (0.009u,0.s) +Chars 77671 - 77672 [-] 0. secs (0.u,0.s) +Chars 77673 - 77693 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) +Chars 77698 - 77706 [(inv~EQ2).] 0. secs (0.u,0.s) +Chars 77707 - 77711 [Qed.] 0.003 secs (0.003u,0.s) +Chars 77712 - 77730 [Section~eqit_elem.] 0. secs (0.u,0.s) +Chars 79037 - 79111 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 79113 - 79172 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) +Chars 79210 - 79327 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) +Chars 79328 - 79334 [Proof.] 0. secs (0.u,0.s) +Chars 79337 - 79368 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 79369 - 79373 [Qed.] 0. secs (0.u,0.s) +Chars 79375 - 79492 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 79493 - 79499 [Proof.] 0. secs (0.u,0.s) +Chars 79500 - 79518 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 79519 - 79523 [Qed.] 0. secs (0.u,0.s) +Chars 79525 - 79642 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 79643 - 79649 [Proof.] 0. secs (0.u,0.s) +Chars 79650 - 79668 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 79669 - 79673 [Qed.] 0. secs (0.u,0.s) +Chars 79704 - 79939 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.002 secs (0.002u,0.s) +Chars 79940 - 79946 [Proof.] 0. secs (0.u,0.s) +Chars 79949 - 79956 [(intros).] 0. secs (0.u,0.s) +Chars 79957 - 79987 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.001u,0.s) +Chars 79988 - 80002 [now~do~2~step.] 0.005 secs (0.004u,0.s) +Chars 80004 - 80008 [Qed.] 0.001 secs (0.001u,0.s) +Chars 80195 - 80209 [End~eqit_elem.] 0. secs (0.u,0.s) +Chars 80212 - 80231 [Section~eutt_facts.] 0. secs (0.u,0.s) +Chars 81626 - 81739 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 81740 - 81746 [Proof.] 0. secs (0.u,0.s) +Chars 81749 - 81757 [intros~!.] 0. secs (0.u,0.s) +Chars 81758 - 81776 [now~rewrite~H,~H0.] 0.022 secs (0.022u,0.s) +Chars 81777 - 81781 [Qed.] 0.001 secs (0.001u,0.s) +Chars 81783 - 81920 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 81921 - 81927 [Proof.] 0. secs (0.u,0.s) +Chars 81930 - 81938 [intros~!.] 0. secs (0.u,0.s) +Chars 81939 - 81957 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) +Chars 81958 - 81962 [Qed.] 0.001 secs (0.001u,0.s) +Chars 81964 - 82101 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 82102 - 82108 [Proof.] 0. secs (0.u,0.s) +Chars 82111 - 82119 [intros~!.] 0. secs (0.u,0.s) +Chars 82120 - 82138 [now~rewrite~H,~H0.] 0.028 secs (0.028u,0.s) +Chars 82139 - 82143 [Qed.] 0.001 secs (0.001u,0.s) +Chars 82297 - 82483 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) +Chars 82484 - 82490 [Proof.] 0. secs (0.u,0.s) +Chars 82493 - 82500 [(intros).] 0. secs (0.u,0.s) +Chars 82503 - 82563 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) +Chars 82566 - 82589 [(intros~?~?~->;~apply~H).] 0. secs (0.u,0.s) +Chars 82590 - 82594 [Qed.] 0. secs (0.u,0.s) +Chars 82640 - 82806 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) +Chars 82807 - 82813 [Proof.] 0. secs (0.u,0.s) +Chars 82816 - 82829 [(intros~->~Hk).] 0.001 secs (0.001u,0.s) +Chars 82830 - 82853 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) +Chars 82854 - 82858 [Qed.] 0.001 secs (0.001u,0.s) +Chars 82953 - 83075 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) +Chars 83076 - 83082 [Proof.] 0. secs (0.u,0.s) +Chars 83085 - 83108 [(intros;~apply~eqit_Ret).] 0. secs (0.u,0.s) +Chars 83109 - 83113 [Qed.] 0. secs (0.u,0.s) +Chars 83277 - 83304 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) +Chars 83306 - 83456 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) +Chars 83457 - 83463 [Proof.] 0. secs (0.u,0.s) +Chars 83466 - 83485 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 83486 - 83502 [(intros~*~EQ~EQ').] 0. secs (0.u,0.s) +Chars 83505 - 83529 [(step~in~EQ;~step~in~EQ').] 0.001 secs (0.001u,0.s) +Chars 83533 - 83558 [(genobs~t~ot;~genobs~s~os).] 0.002 secs (0.002u,0.s) +Chars 83561 - 83608 [(hinduction~EQ~before~CIH;~sub...] 0.001 secs (0.001u,0.s) +Chars 83611 - 83612 [-] 0. secs (0.u,0.s) +Chars 83613 - 83621 [(inv~EQ').] 0.009 secs (0.009u,0.s) +Chars 83622 - 83627 [eret.] 0. secs (0.u,0.s) +Chars 83628 - 83644 [now~constructor.] 0. secs (0.u,0.s) +Chars 83648 - 83649 [-] 0. secs (0.u,0.s) +Chars 83650 - 83655 [taus.] 0. secs (0.u,0.s) +Chars 83656 - 83674 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 83675 - 83694 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) +Chars 83695 - 83704 [now~step.] 0.001 secs (0.001u,0.s) +Chars 83709 - 83710 [-] 0. secs (0.u,0.s) +Chars 83711 - 83723 [constructor.] 0. secs (0.u,0.s) +Chars 83724 - 83732 [intro~v.] 0. secs (0.u,0.s) +Chars 83733 - 83752 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 83757 - 83775 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 83781 - 83821 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) +Chars 83824 - 83825 [-] 0. secs (0.u,0.s) +Chars 83826 - 83831 [taul.] 0. secs (0.u,0.s) +Chars 83832 - 83851 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 83852 - 83858 [subst.] 0. secs (0.u,0.s) +Chars 83859 - 83866 [unstep.] 0.003 secs (0.003u,0.s) +Chars 83867 - 83889 [(eapply~eqit_inv_Tau_l).] 0. secs (0.u,0.s) +Chars 83895 - 83904 [now~step.] 0.002 secs (0.001u,0.s) +Chars 83909 - 83910 [-] 0. secs (0.u,0.s) +Chars 83911 - 83916 [taur.] 0. secs (0.u,0.s) +Chars 83917 - 83936 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) +Chars 83937 - 83943 [subst.] 0. secs (0.u,0.s) +Chars 83944 - 83951 [unstep.] 0.003 secs (0.003u,0.s) +Chars 83952 - 83974 [(eapply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) +Chars 83980 - 83989 [now~step.] 0.001 secs (0.001u,0.s) +Chars 83992 - 83996 [Qed.] 0.014 secs (0.014u,0.s) +Chars 83998 - 84124 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 84126 - 84132 [Proof.] 0. secs (0.u,0.s) +Chars 84135 - 84142 [(intros).] 0. secs (0.u,0.s) +Chars 84145 - 84176 [(eapply~(eqit_mono~RS~_);~eauto).] 0.002 secs (0.002u,0.s) +Chars 84177 - 84181 [Qed.] 0. secs (0.u,0.s) +Chars 84183 - 84310 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 84312 - 84318 [Proof.] 0. secs (0.u,0.s) +Chars 84321 - 84328 [(intros).] 0. secs (0.u,0.s) +Chars 84331 - 84363 [(eapply~(eqit_mono~RS'~_);~eau...] 0.001 secs (0.001u,0.s) +Chars 84364 - 84368 [Qed.] 0. secs (0.u,0.s) +Chars 84370 - 84529 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) +Chars 84531 - 84537 [Proof.] 0. secs (0.u,0.s) +Chars 84540 - 84613 [(intros~*~EQ;~split;~intros~EU...] 0.005 secs (0.005u,0.s) +Chars 84616 - 84630 [all:~(apply~EQ).] 0. secs (0.u,0.s) +Chars 84631 - 84635 [Qed.] 0. secs (0.u,0.s) +Chars 84713 - 84892 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 84893 - 84899 [Proof.] 0. secs (0.u,0.s) +Chars 84902 - 84917 [(intros~!;~subst).] 0. secs (0.u,0.s) +Chars 84920 - 84960 [(unfold~eq_itree;~rewrite~H;~r...] 0. secs (0.u,0.s) +Chars 84961 - 84965 [Qed.] 0. secs (0.u,0.s) +Chars 84967 - 85127 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 85128 - 85134 [Proof.] 0. secs (0.u,0.s) +Chars 85137 - 85152 [(intros~!;~subst).] 0. secs (0.u,0.s) +Chars 85155 - 85191 [(unfold~eutt;~rewrite~H;~refle...] 0. secs (0.u,0.s) +Chars 85192 - 85196 [Qed.] 0. secs (0.u,0.s) +Chars 85305 - 85436 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) +Chars 85437 - 85443 [Proof.] 0. secs (0.u,0.s) +Chars 85446 - 85468 [(intros~Hrel;~revert~t).] 0. secs (0.u,0.s) +Chars 85469 - 85504 [(icoinduction~c~CIH;~intros~t~...] 0.001 secs (0.001u,0.s) +Chars 85507 - 85521 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 85524 - 85555 [(remember~t~as~t'~in~Heutt~at~2).] 0. secs (0.u,0.s) +Chars 85556 - 85592 [(assert~(Ht'~:~t'~≈~t)~by~now~...] 0. secs (0.u,0.s) +Chars 85593 - 85605 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 85608 - 85653 [(rewrite~(itree_eta~t),~(itree...] 0.04 secs (0.039u,0.s) +Chars 85656 - 85667 [revert~Ht'.] 0. secs (0.u,0.s) +Chars 85668 - 85705 [(induction~Heutt;~clear~t;~int...] 0.001 secs (0.001u,0.s) +Chars 85708 - 85709 [-] 0. secs (0.u,0.s) +Chars 85710 - 85743 [(apply~eutt_inv_Ret~in~Heq;~su...] 0. secs (0.u,0.s) +Chars 85748 - 85766 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 85769 - 85770 [-] 0. secs (0.u,0.s) +Chars 85771 - 85797 [(apply~eqit_inv_Tau~in~Heq).] 0. secs (0.u,0.s) +Chars 85802 - 85814 [constructor.] 0. secs (0.u,0.s) +Chars 85815 - 85826 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 85832 - 85856 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 85859 - 85860 [-] 0. secs (0.u,0.s) +Chars 85861 - 85873 [constructor.] 0. secs (0.u,0.s) +Chars 85874 - 85883 [(intros~v).] 0. secs (0.u,0.s) +Chars 85884 - 85911 [(eapply~eqit_inv_Vis~in~Heq).] 0. secs (0.u,0.s) +Chars 85916 - 85935 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 85936 - 85947 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 85948 - 85972 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 85975 - 85976 [-] 0. secs (0.u,0.s) +Chars 85977 - 85982 [taul.] 0. secs (0.u,0.s) +Chars 85983 - 85988 [taur.] 0. secs (0.u,0.s) +Chars 85989 - 86003 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 86004 - 86030 [(rewrite~<-~(itree_eta~t1)).] 0.001 secs (0.001u,0.s) +Chars 86038 - 86068 [now~rewrite~tau_euttge~in~Heq.] 0.024 secs (0.024u,0.s) +Chars 86072 - 86073 [-] 0. secs (0.u,0.s) +Chars 86074 - 86088 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 86089 - 86112 [(rewrite~<-~itree_eta).] 0. secs (0.u,0.s) +Chars 86120 - 86150 [now~rewrite~tau_euttge~in~Heq.] 0.017 secs (0.016u,0.s) +Chars 86152 - 86156 [Qed.] 0.007 secs (0.006u,0.s) +Chars 86158 - 86173 [End~eutt_facts.] 0. secs (0.u,0.s) +Chars 86222 - 86389 [#[global]~Instance~observing_e...] 0.001 secs (0.001u,0.s) +Chars 86391 - 86397 [Proof.] 0. secs (0.u,0.s) +Chars 86401 - 86409 [intros~!.] 0. secs (0.u,0.s) +Chars 86413 - 86418 [step.] 0.002 secs (0.002u,0.s) +Chars 86419 - 86429 [(rewrite~H).] 0.009 secs (0.009u,0.s) +Chars 86430 - 86442 [reflexivity.] 0. secs (0.u,0.s) +Chars 86444 - 86448 [Qed.] 0.001 secs (0.001u,0.s) +Chars 86455 - 86590 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 86592 - 86598 [Proof.] 0. secs (0.u,0.s) +Chars 86602 - 86641 [(intros~!;~now~eapply~observin...] 0. secs (0.u,0.s) +Chars 86642 - 86646 [Qed.] 0. secs (0.u,0.s) +Chars 86649 - 86776 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) diff --git a/theories/Eq/Rutt.v.timing b/theories/Eq/Rutt.v.timing index b30ad0f2..e768af42 100644 --- a/theories/Eq/Rutt.v.timing +++ b/theories/Eq/Rutt.v.timing @@ -1,6 +1,6 @@ -Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.005u,0.002s) +Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.004u,0.002s) Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.208 secs (0.178u,0.022s) +Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.196 secs (0.171u,0.021s) Chars 1082 - 1111 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1113 - 1127 [Section~RuttF.] 0. secs (0.u,0.s) Chars 1131 - 1162 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -16,10 +16,10 @@ Chars 2718 - 2763 [Lemma~rutt_mono~:~Proper~(leq~...] 0. secs (0.u,0.s) Chars 2766 - 2772 [Proof.] 0. secs (0.u,0.s) Chars 2777 - 2790 [(repeat~intro).] 0. secs (0.u,0.s) Chars 2791 - 2809 [(unfold~rutt_~in~*).] 0. secs (0.u,0.s) -Chars 2810 - 2841 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.001u,0.s) +Chars 2810 - 2841 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.002u,0.s) Chars 2846 - 2871 [(constructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 2877 - 2921 [(constructor;~intros;~eauto;~n...] 0. secs (0.u,0.s) -Chars 2925 - 2929 [Qed.] 0. secs (0.u,0.s) +Chars 2877 - 2921 [(constructor;~intros;~eauto;~n...] 0.001 secs (0.u,0.s) +Chars 2925 - 2929 [Qed.] 0.001 secs (0.u,0.s) Chars 2933 - 3066 [Definition~rutt_mon~:~~~mon~((...] 0. secs (0.u,0.s) Chars 3071 - 3162 [Definition~rutt~:~(R1~->~R2~->...] 0. secs (0.u,0.s) Chars 3165 - 3190 [Hint~Unfold~rutt:~itree.] 0. secs (0.u,0.s) @@ -30,11 +30,11 @@ Chars 3750 - 3751 [-] 0. secs (0.u,0.s) Chars 3752 - 3764 [(left;~eauto).] 0.001 secs (0.001u,0.s) Chars 3769 - 3770 [-] 0. secs (0.u,0.s) Chars 3771 - 3790 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 3793 - 3797 [Qed.] 0.002 secs (0.001u,0.s) +Chars 3793 - 3797 [Qed.] 0.001 secs (0.001u,0.s) Chars 3801 - 4007 [Lemma~ruttF_inv_VisF~{sim}~RR~...] 0. secs (0.u,0.s) Chars 4010 - 4016 [Proof.] 0. secs (0.u,0.s) Chars 4021 - 4030 [(intros~H).] 0. secs (0.u,0.s) -Chars 4031 - 4055 [dependent~destruction~H.] 0.008 secs (0.006u,0.002s) +Chars 4031 - 4055 [dependent~destruction~H.] 0.007 secs (0.005u,0.002s) Chars 4056 - 4067 [assumption.] 0. secs (0.u,0.s) Chars 4070 - 4074 [Qed.] 0.004 secs (0.003u,0.s) Chars 4076 - 4086 [End~RuttF.] 0.001 secs (0.001u,0.s) @@ -60,7 +60,7 @@ Chars 6642 - 6678 [#[global]~Hint~Unfold~rutt_:~i...] 0. secs (0.u,0.s) Chars 6679 - 6718 [#[global]~Hint~Unfold~rutt_mon...] 0. secs (0.u,0.s) Chars 6719 - 6754 [#[global]~Hint~Unfold~rutt:~it...] 0. secs (0.u,0.s) Chars 6756 - 6786 [Section~ConstructionInversion.] 0. secs (0.u,0.s) -Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0.027 secs (0.025u,0.002s) +Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0.03 secs (0.025u,0.004s) Chars 6820 - 6844 [Variables~(R1~R2~:~Type).] 0. secs (0.u,0.s) Chars 6845 - 6898 [Variable~(REv~:~forall~T1~T2,~...] 0. secs (0.u,0.s) Chars 6899 - 6965 [Variable~(RAns~:~forall~T1~T2,...] 0. secs (0.u,0.s) @@ -75,8 +75,8 @@ Chars 7160 - 7235 [Lemma~rutt_inv_Ret~r1~r2~:~rut...] 0. secs (0.u,0.s) Chars 7236 - 7242 [Proof.] 0. secs (0.u,0.s) Chars 7245 - 7252 [(intros).] 0. secs (0.u,0.s) Chars 7253 - 7264 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 7265 - 7271 [(inv~H).] 0.002 secs (0.002u,0.s) -Chars 7272 - 7276 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7265 - 7271 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 7272 - 7276 [Qed.] 0.001 secs (0.001u,0.s) Chars 7278 - 7377 [Lemma~rutt_inv_Ret_l~r1~t2~:~~...] 0. secs (0.u,0.s) Chars 7378 - 7384 [Proof.] 0. secs (0.u,0.s) Chars 7387 - 7400 [(intros~Hrutt).] 0. secs (0.u,0.s) @@ -93,15 +93,15 @@ Chars 7633 - 7634 [-] 0. secs (0.u,0.s) Chars 7635 - 7677 [(destruct~(IHHrutt~Heqot1)~as~...] 0. secs (0.u,0.s) Chars 7678 - 7701 [(exists~r2;~split;~auto).] 0. secs (0.u,0.s) Chars 7706 - 7733 [(rewrite~<-~itree_eta~in~H1).] 0.01 secs (0.01u,0.s) -Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.034 secs (0.034u,0.s) +Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.033 secs (0.033u,0.s) Chars 7758 - 7762 [Qed.] 0.003 secs (0.003u,0.s) Chars 7764 - 7863 [Lemma~rutt_inv_Ret_r~t1~r2~:~~...] 0. secs (0.u,0.s) Chars 7864 - 7870 [Proof.] 0. secs (0.u,0.s) Chars 7873 - 7886 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 7887 - 7902 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 7903 - 7917 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.003 secs (0.003u,0.s) -Chars 7951 - 8001 [(remember~(observe~(Ret~r2))~a...] 0.001 secs (0.001u,0.s) +Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.004 secs (0.003u,0.s) +Chars 7951 - 8001 [(remember~(observe~(Ret~r2))~a...] 0.001 secs (0.u,0.s) Chars 8004 - 8046 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) Chars 8049 - 8050 [-] 0. secs (0.u,0.s) Chars 8051 - 8075 [(inversion~Heqot2;~subst).] 0. secs (0.u,0.s) @@ -110,7 +110,7 @@ Chars 8087 - 8113 [(split;~[~reflexivity~|~auto~]).] 0. secs (0.u,0.s) Chars 8116 - 8117 [-] 0. secs (0.u,0.s) Chars 8118 - 8160 [(destruct~(IHHrutt~Heqot2)~as~...] 0. secs (0.u,0.s) Chars 8161 - 8184 [(exists~r1;~split;~auto).] 0. secs (0.u,0.s) -Chars 8189 - 8216 [(rewrite~<-~itree_eta~in~H1).] 0.011 secs (0.01u,0.s) +Chars 8189 - 8216 [(rewrite~<-~itree_eta~in~H1).] 0.013 secs (0.011u,0.001s) Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) Chars 8241 - 8245 [Qed.] 0.003 secs (0.003u,0.s) Chars 8306 - 8449 [Lemma~ruttF_inv_tau_l~t1~ot2~:...] 0. secs (0.u,0.s) @@ -152,7 +152,7 @@ Chars 9106 - 9117 [rstep~in~H.] 0. secs (0.u,0.s) Chars 9118 - 9124 [rstep.] 0. secs (0.u,0.s) Chars 9127 - 9149 [(apply~ruttF_inv_tau_l).] 0. secs (0.u,0.s) Chars 9150 - 9158 [exact~H.] 0. secs (0.u,0.s) -Chars 9159 - 9163 [Qed.] 0. secs (0.u,0.s) +Chars 9159 - 9163 [Qed.] 0.001 secs (0.u,0.s) Chars 9165 - 9251 [Lemma~rutt_add_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9252 - 9258 [Proof.] 0. secs (0.u,0.s) Chars 9261 - 9268 [(intros).] 0. secs (0.u,0.s) @@ -168,7 +168,7 @@ Chars 9420 - 9431 [rstep~in~H.] 0. secs (0.u,0.s) Chars 9432 - 9438 [rstep.] 0. secs (0.u,0.s) Chars 9441 - 9463 [(apply~ruttF_inv_tau_r).] 0. secs (0.u,0.s) Chars 9464 - 9472 [exact~H.] 0. secs (0.u,0.s) -Chars 9473 - 9477 [Qed.] 0. secs (0.u,0.s) +Chars 9473 - 9477 [Qed.] 0.001 secs (0.001u,0.s) Chars 9479 - 9565 [Lemma~rutt_add_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9566 - 9572 [Proof.] 0. secs (0.u,0.s) Chars 9575 - 9582 [(intros).] 0. secs (0.u,0.s) @@ -187,14 +187,14 @@ Chars 10044 - 10057 [(intros~He~Hk).] 0. secs (0.u,0.s) Chars 10058 - 10064 [rstep.] 0. secs (0.u,0.s) Chars 10065 - 10083 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 10084 - 10088 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0. secs (0.u,0.s) +Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0.001 secs (0.001u,0.s) Chars 10323 - 10329 [Proof.] 0. secs (0.u,0.s) Chars 10332 - 10345 [(intros~Hrutt).] 0. secs (0.u,0.s) Chars 10346 - 10361 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 10362 - 10376 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.011 secs (0.011u,0.s) Chars 10410 - 10463 [(remember~(observe~(Vis~e1~k1)...] 0. secs (0.u,0.s) -Chars 10466 - 10515 [(induction~Hrutt;~intros;~try~...] 0.002 secs (0.002u,0.s) +Chars 10466 - 10515 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) Chars 10518 - 10519 [-] 0. secs (0.u,0.s) Chars 10520 - 10546 [(inversion~Heqot1;~subst~A).] 0.001 secs (0.001u,0.s) Chars 10547 - 10620 [(inversion_sigma;~rewrite~<-~e...] 0.003 secs (0.003u,0.s) @@ -203,9 +203,9 @@ Chars 10651 - 10663 [reflexivity.] 0. secs (0.u,0.s) Chars 10664 - 10676 [(split;~auto).] 0. secs (0.u,0.s) Chars 10679 - 10680 [-] 0. secs (0.u,0.s) Chars 10681 - 10739 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) -Chars 10744 - 10772 [(rewrite~<-~itree_eta~in~Ht0).] 0.021 secs (0.02u,0.s) -Chars 10777 - 10808 [(exists~U2,e2,k2;~split;~auto).] 0.001 secs (0.001u,0.s) -Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 10744 - 10772 [(rewrite~<-~itree_eta~in~Ht0).] 0.019 secs (0.019u,0.s) +Chars 10777 - 10808 [(exists~U2,e2,k2;~split;~auto).] 0. secs (0.u,0.s) +Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 10831 - 10835 [Qed.] 0.007 secs (0.007u,0.s) Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0.001 secs (0.001u,0.s) Chars 11072 - 11078 [Proof.] 0. secs (0.u,0.s) @@ -223,7 +223,7 @@ Chars 11400 - 11412 [reflexivity.] 0. secs (0.u,0.s) Chars 11413 - 11425 [(split;~auto).] 0. secs (0.u,0.s) Chars 11428 - 11429 [-] 0. secs (0.u,0.s) Chars 11430 - 11488 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) -Chars 11493 - 11521 [(rewrite~<-~itree_eta~in~Ht0).] 0.017 secs (0.017u,0.s) +Chars 11493 - 11521 [(rewrite~<-~itree_eta~in~Ht0).] 0.018 secs (0.018u,0.s) Chars 11526 - 11557 [(exists~U1,e1,k1;~split;~auto).] 0.002 secs (0.002u,0.s) Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) Chars 11580 - 11584 [Qed.] 0.007 secs (0.007u,0.s) diff --git a/theories/Eq/RuttFacts.v.timing b/theories/Eq/RuttFacts.v.timing index c3c8f2ec..9f04b6e9 100644 --- a/theories/Eq/RuttFacts.v.timing +++ b/theories/Eq/RuttFacts.v.timing @@ -1,13 +1,13 @@ -Chars 346 - 382 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) +Chars 346 - 382 [From~Coinduction~Require~Impor...] 0.009 secs (0.006u,0.002s) Chars 385 - 461 [From~Stdlib~Require~Import~Pro...] 0.006 secs (0.003u,0.002s) -Chars 463 - 581 [From~ITree~Require~Import~ITre...] 0.227 secs (0.203u,0.023s) +Chars 463 - 581 [From~ITree~Require~Import~ITre...] 0.234 secs (0.204u,0.029s) Chars 632 - 844 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.003 secs (0.003u,0.s) Chars 845 - 851 [Proof.] 0. secs (0.u,0.s) Chars 854 - 861 [(intros).] 0. secs (0.u,0.s) Chars 862 - 883 [(apply~rutt_Vis;~auto).] 0. secs (0.u,0.s) Chars 886 - 893 [(intros).] 0. secs (0.u,0.s) Chars 894 - 915 [(apply~rutt_Ret;~auto).] 0. secs (0.u,0.s) -Chars 916 - 920 [Qed.] 0.002 secs (0.001u,0.s) +Chars 916 - 920 [Qed.] 0.001 secs (0.001u,0.s) Chars 1139 - 1271 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) Chars 1273 - 1348 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) Chars 1349 - 1355 [Proof.] 0. secs (0.u,0.s) @@ -34,7 +34,7 @@ Chars 1643 - 1725 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) Chars 1733 - 1745 [reflexivity.] 0. secs (0.u,0.s) Chars 1746 - 1750 [Qed.] 0. secs (0.u,0.s) -Chars 1873 - 2043 [Definition~RAns_pair~E1~E2~~~(...] 0.001 secs (0.u,0.s) +Chars 1873 - 2043 [Definition~RAns_pair~E1~E2~~~(...] 0.001 secs (0.001u,0.s) Chars 2045 - 2172 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) Chars 2173 - 2179 [Proof.] 0. secs (0.u,0.s) Chars 2180 - 2192 [reflexivity.] 0. secs (0.u,0.s) @@ -43,7 +43,7 @@ Chars 2199 - 2366 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) Chars 2368 - 2509 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) Chars 2510 - 2516 [Proof.] 0. secs (0.u,0.s) Chars 2517 - 2526 [(intros~*).] 0. secs (0.u,0.s) -Chars 2527 - 2554 [(rewrite~<-~!RAns_pair_iff).] 0.004 secs (0.003u,0.s) +Chars 2527 - 2554 [(rewrite~<-~!RAns_pair_iff).] 0.004 secs (0.003u,0.001s) Chars 2555 - 2570 [(split;~apply~H).] 0. secs (0.u,0.s) Chars 2571 - 2575 [Qed.] 0.001 secs (0.u,0.s) Chars 2577 - 2654 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) @@ -59,7 +59,7 @@ Chars 2734 - 2735 [-] 0. secs (0.u,0.s) Chars 2736 - 2745 [(red;~red).] 0. secs (0.u,0.s) Chars 2746 - 2761 [(intros~*~H1~H2).] 0. secs (0.u,0.s) Chars 2762 - 2776 [(red~in~H1,~H2).] 0. secs (0.u,0.s) -Chars 2777 - 2798 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 2777 - 2798 [(etransitivity;~eauto).] 0.037 secs (0.029u,0.006s) Chars 2799 - 2803 [Qed.] 0. secs (0.u,0.s) Chars 2805 - 2968 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) Chars 2970 - 3095 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) @@ -74,7 +74,7 @@ Chars 3274 - 3435 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) Chars 3436 - 3442 [Proof.] 0. secs (0.u,0.s) Chars 3445 - 3528 [(split;~revert~t1~t2;~coinduct...] 0.003 secs (0.003u,0.s) Chars 3531 - 3532 [-] 0. secs (0.u,0.s) -Chars 3533 - 3570 [(induction~Hrutt;~try~now~cons...] 0.057 secs (0.056u,0.s) +Chars 3533 - 3570 [(induction~Hrutt;~try~now~cons...] 0.059 secs (0.057u,0.001s) Chars 3575 - 3576 [*] 0. secs (0.u,0.s) Chars 3577 - 3589 [(apply~EqTau).] 0. secs (0.u,0.s) Chars 3590 - 3604 [now~apply~CIH.] 0. secs (0.u,0.s) @@ -86,7 +86,7 @@ Chars 3647 - 3659 [(cbn~in~HAns).] 0. secs (0.u,0.s) Chars 3666 - 3691 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) Chars 3692 - 3706 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3709 - 3710 [-] 0. secs (0.u,0.s) -Chars 3711 - 3748 [(induction~Hrutt;~try~now~cons...] 0.021 secs (0.018u,0.002s) +Chars 3711 - 3748 [(induction~Hrutt;~try~now~cons...] 0.018 secs (0.015u,0.002s) Chars 3753 - 3754 [*] 0. secs (0.u,0.s) Chars 3755 - 3767 [(apply~EqTau).] 0. secs (0.u,0.s) Chars 3768 - 3782 [now~apply~CIH.] 0. secs (0.u,0.s) @@ -97,20 +97,20 @@ Chars 3808 - 3824 [(intros~b~a~HAns).] 0. secs (0.u,0.s) Chars 3825 - 3837 [(cbn~in~HAns).] 0. secs (0.u,0.s) Chars 3844 - 3869 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) Chars 3870 - 3884 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3885 - 3889 [Qed.] 0.01 secs (0.009u,0.001s) +Chars 3885 - 3889 [Qed.] 0.009 secs (0.008u,0.s) Chars 3966 - 4222 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) Chars 4232 - 4301 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) -Chars 4304 - 4484 [(split;~intros~Hrutt;~revert~t...] 0.014 secs (0.013u,0.s) -Chars 4489 - 4521 [1,~4:~(apply~EqRet;~now~apply~...] 0.001 secs (0.u,0.s) +Chars 4304 - 4484 [(split;~intros~Hrutt;~revert~t...] 0.012 secs (0.012u,0.s) +Chars 4489 - 4521 [1,~4:~(apply~EqRet;~now~apply~...] 0. secs (0.u,0.s) Chars 4527 - 4559 [1,~3:~(apply~EqTau;~now~apply~...] 0. secs (0.u,0.s) Chars 4564 - 4565 [*] 0. secs (0.u,0.s) Chars 4566 - 4578 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 4579 - 4594 [now~apply~HREv.] 0.001 secs (0.u,0.s) +Chars 4579 - 4594 [now~apply~HREv.] 0. secs (0.u,0.s) Chars 4595 - 4602 [(intros).] 0. secs (0.u,0.s) Chars 4609 - 4642 [(assert~(H2~:~RAns1~A~B~e1~a~e...] 0. secs (0.u,0.s) Chars 4649 - 4650 [{] 0. secs (0.u,0.s) -Chars 4651 - 4675 [(erewrite~<-~eq_RAns_iff).] 0.001 secs (0.u,0.s) +Chars 4651 - 4675 [(erewrite~<-~eq_RAns_iff).] 0. secs (0.u,0.s) Chars 4676 - 4685 [(apply~H1).] 0. secs (0.u,0.s) Chars 4686 - 4697 [assumption.] 0. secs (0.u,0.s) Chars 4698 - 4699 [}] 0. secs (0.u,0.s) @@ -123,22 +123,22 @@ Chars 4772 - 4787 [now~apply~HREv.] 0. secs (0.u,0.s) Chars 4788 - 4795 [(intros).] 0. secs (0.u,0.s) Chars 4802 - 4835 [(assert~(H2~:~RAns2~A~B~e1~a~e...] 0. secs (0.u,0.s) Chars 4842 - 4843 [{] 0. secs (0.u,0.s) -Chars 4844 - 4865 [(erewrite~eq_RAns_iff).] 0.001 secs (0.u,0.s) +Chars 4844 - 4865 [(erewrite~eq_RAns_iff).] 0. secs (0.u,0.s) Chars 4866 - 4875 [(apply~H1).] 0. secs (0.u,0.s) Chars 4876 - 4887 [assumption.] 0. secs (0.u,0.s) Chars 4888 - 4889 [}] 0. secs (0.u,0.s) Chars 4896 - 4903 [(intros).] 0. secs (0.u,0.s) Chars 4904 - 4927 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) Chars 4928 - 4942 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4943 - 4947 [Qed.] 0.01 secs (0.01u,0.s) +Chars 4943 - 4947 [Qed.] 0.01 secs (0.009u,0.s) Chars 4949 - 5138 [#[global]~Instance~eq_proper_r...] 0.001 secs (0.001u,0.s) Chars 5139 - 5145 [Proof.] 0. secs (0.u,0.s) -Chars 5148 - 5386 [(split;~revert_until~c;~tower~...] 0.022 secs (0.022u,0.s) -Chars 5389 - 5445 [1-3,~6-8:~(inv~Ht1;~inv~Ht2;~s...] 0.28 secs (0.277u,0.001s) +Chars 5148 - 5386 [(split;~revert_until~c;~tower~...] 0.019 secs (0.019u,0.s) +Chars 5389 - 5445 [1-3,~6-8:~(inv~Ht1;~inv~Ht2;~s...] 0.275 secs (0.27u,0.003s) Chars 5448 - 5449 [+] 0. secs (0.u,0.s) Chars 5450 - 5458 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5459 - 5471 [constructor.] 0. secs (0.u,0.s) -Chars 5472 - 5489 [(eapply~IH;~eauto).] 0.001 secs (0.u,0.s) +Chars 5472 - 5489 [(eapply~IH;~eauto).] 0. secs (0.u,0.s) Chars 5492 - 5493 [+] 0. secs (0.u,0.s) Chars 5494 - 5502 [simpobs.] 0.002 secs (0.002u,0.s) Chars 5507 - 5614 [(dependent~destruction~H3;~dep...] 0.012 secs (0.012u,0.s) @@ -149,12 +149,12 @@ Chars 5657 - 5667 [(apply~REL).] 0. secs (0.u,0.s) Chars 5668 - 5679 [(apply~REL0).] 0. secs (0.u,0.s) Chars 5680 - 5693 [now~apply~H0.] 0. secs (0.u,0.s) Chars 5696 - 5697 [+] 0. secs (0.u,0.s) -Chars 5698 - 5706 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 5698 - 5706 [simpobs.] 0.004 secs (0.003u,0.s) Chars 5707 - 5719 [constructor.] 0. secs (0.u,0.s) -Chars 5720 - 5737 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5720 - 5737 [(eapply~IH;~eauto).] 0. secs (0.u,0.s) Chars 5740 - 5741 [+] 0. secs (0.u,0.s) Chars 5742 - 5750 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 5755 - 5862 [(dependent~destruction~H4;~dep...] 0.013 secs (0.012u,0.s) +Chars 5755 - 5862 [(dependent~destruction~H4;~dep...] 0.012 secs (0.012u,0.s) Chars 5867 - 5885 [(constructor;~auto).] 0.001 secs (0.001u,0.s) Chars 5886 - 5893 [(intros).] 0. secs (0.u,0.s) Chars 5894 - 5904 [(eapply~IH).] 0. secs (0.u,0.s) @@ -167,7 +167,7 @@ Chars 5955 - 5967 [constructor.] 0. secs (0.u,0.s) Chars 5968 - 5990 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) Chars 5991 - 6002 [now~unstep.] 0.004 secs (0.004u,0.s) Chars 6005 - 6006 [+] 0. secs (0.u,0.s) -Chars 6007 - 6015 [(inv~Ht2).] 0.029 secs (0.029u,0.s) +Chars 6007 - 6015 [(inv~Ht2).] 0.027 secs (0.027u,0.s) Chars 6016 - 6028 [constructor.] 0. secs (0.u,0.s) Chars 6029 - 6051 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) Chars 6052 - 6063 [now~unstep.] 0.004 secs (0.004u,0.s) @@ -175,20 +175,20 @@ Chars 6066 - 6067 [+] 0. secs (0.u,0.s) Chars 6068 - 6076 [(inv~Ht1).] 0.028 secs (0.028u,0.s) Chars 6077 - 6089 [constructor.] 0. secs (0.u,0.s) Chars 6090 - 6112 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6113 - 6124 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 6113 - 6124 [now~unstep.] 0.003 secs (0.003u,0.s) Chars 6127 - 6128 [+] 0. secs (0.u,0.s) -Chars 6129 - 6137 [(inv~Ht2).] 0.03 secs (0.03u,0.s) +Chars 6129 - 6137 [(inv~Ht2).] 0.029 secs (0.029u,0.s) Chars 6138 - 6150 [constructor.] 0. secs (0.u,0.s) Chars 6151 - 6173 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6174 - 6185 [now~unstep.] 0.004 secs (0.004u,0.s) -Chars 6186 - 6190 [Qed.] 0.075 secs (0.074u,0.s) +Chars 6174 - 6185 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 6186 - 6190 [Qed.] 0.069 secs (0.068u,0.001s) Chars 6192 - 6355 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) Chars 6356 - 6362 [Proof.] 0. secs (0.u,0.s) Chars 6365 - 6377 [(unfold~rutt).] 0. secs (0.u,0.s) Chars 6378 - 6407 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) Chars 6410 - 6438 [(apply~eq_proper_ruttC;~auto).] 0.001 secs (0.001u,0.s) Chars 6439 - 6443 [Qed.] 0. secs (0.u,0.s) -Chars 6445 - 6702 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) +Chars 6445 - 6702 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) Chars 6703 - 6709 [Proof.] 0. secs (0.u,0.s) Chars 6712 - 6786 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) Chars 6789 - 6806 [(rewrite~Ht1,~Ht2).] 0.002 secs (0.002u,0.s) @@ -205,17 +205,17 @@ Chars 7224 - 7263 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) Chars 7266 - 7287 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) Chars 7305 - 7306 [-] 0. secs (0.u,0.s) Chars 7307 - 7333 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7338 - 7350 [(genobs~x~ox).] 0.006 secs (0.005u,0.s) +Chars 7338 - 7350 [(genobs~x~ox).] 0.005 secs (0.005u,0.s) Chars 7351 - 7365 [(genret~r1~or1).] 0. secs (0.u,0.s) Chars 7366 - 7381 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7386 - 7421 [(hinduction~EQx~before~ox;~try...] 0.043 secs (0.043u,0.s) +Chars 7386 - 7421 [(hinduction~EQx~before~ox;~try...] 0.042 secs (0.042u,0.s) Chars 7426 - 7427 [+] 0. secs (0.u,0.s) Chars 7428 - 7454 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) Chars 7455 - 7469 [clear~x~Heqox.] 0. secs (0.u,0.s) Chars 7476 - 7488 [(genobs~y~oy).] 0. secs (0.u,0.s) Chars 7489 - 7503 [(genret~r2~or2).] 0. secs (0.u,0.s) Chars 7504 - 7519 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7526 - 7561 [(hinduction~EQy~before~oy;~try...] 0.029 secs (0.029u,0.s) +Chars 7526 - 7561 [(hinduction~EQy~before~oy;~try...] 0.027 secs (0.026u,0.s) Chars 7568 - 7569 [*] 0. secs (0.u,0.s) Chars 7570 - 7594 [(subst;~intros~[=<-]~?~?).] 0. secs (0.u,0.s) Chars 7595 - 7607 [constructor.] 0. secs (0.u,0.s) @@ -231,15 +231,15 @@ Chars 7712 - 7732 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) Chars 7750 - 7751 [-] 0. secs (0.u,0.s) Chars 7752 - 7778 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) Chars 7783 - 7795 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 7796 - 7810 [(gentau~m1~om1).] 0.001 secs (0.001u,0.s) +Chars 7796 - 7810 [(gentau~m1~om1).] 0. secs (0.u,0.s) Chars 7811 - 7826 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7831 - 7866 [(hinduction~EQx~before~ox;~try...] 0.047 secs (0.047u,0.s) +Chars 7831 - 7866 [(hinduction~EQx~before~ox;~try...] 0.045 secs (0.044u,0.s) Chars 7871 - 7872 [+] 0. secs (0.u,0.s) Chars 7873 - 7890 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) Chars 7897 - 7909 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 7910 - 7924 [(gentau~m2~om2).] 0.001 secs (0.001u,0.s) +Chars 7910 - 7924 [(gentau~m2~om2).] 0. secs (0.u,0.s) Chars 7925 - 7940 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7947 - 7982 [(hinduction~EQy~before~oy;~try...] 0.043 secs (0.043u,0.s) +Chars 7947 - 7982 [(hinduction~EQy~before~oy;~try...] 0.044 secs (0.043u,0.s) Chars 7989 - 7990 [*] 0. secs (0.u,0.s) Chars 7991 - 8008 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) Chars 8009 - 8022 [to_rmon_core.] 0. secs (0.u,0.s) @@ -260,7 +260,7 @@ Chars 8210 - 8236 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) Chars 8241 - 8253 [(genobs~x~ox).] 0. secs (0.u,0.s) Chars 8254 - 8271 [(genvis~e1~k1~ot1).] 0.001 secs (0.001u,0.s) Chars 8272 - 8287 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 8292 - 8327 [(hinduction~EQx~before~ox;~try...] 0.049 secs (0.048u,0.s) +Chars 8292 - 8327 [(hinduction~EQx~before~ox;~try...] 0.046 secs (0.046u,0.s) Chars 8332 - 8333 [+] 0. secs (0.u,0.s) Chars 8334 - 8341 [(intros).] 0. secs (0.u,0.s) Chars 8342 - 8408 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) @@ -268,11 +268,11 @@ Chars 8415 - 8429 [clear~x~Heqox.] 0. secs (0.u,0.s) Chars 8436 - 8448 [(genobs~y~oy).] 0. secs (0.u,0.s) Chars 8449 - 8466 [(genvis~e2~k2~ot2).] 0.001 secs (0.001u,0.s) Chars 8467 - 8482 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 8489 - 8524 [(hinduction~EQy~before~oy;~try...] 0.031 secs (0.031u,0.s) +Chars 8489 - 8524 [(hinduction~EQy~before~oy;~try...] 0.03 secs (0.03u,0.s) Chars 8531 - 8532 [*] 0. secs (0.u,0.s) Chars 8533 - 8540 [(intros).] 0. secs (0.u,0.s) Chars 8541 - 8607 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 8616 - 8634 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8616 - 8634 [(constructor;~auto).] 0.001 secs (0.u,0.s) Chars 8635 - 8642 [(intros).] 0. secs (0.u,0.s) Chars 8643 - 8653 [(eapply~IH).] 0. secs (0.u,0.s) Chars 8654 - 8668 [(apply~(REL~a)).] 0. secs (0.u,0.s) @@ -297,10 +297,10 @@ Chars 9062 - 9063 [-] 0. secs (0.u,0.s) Chars 9064 - 9108 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.006u,0.s) Chars 9113 - 9121 [simpobs.] 0.005 secs (0.005u,0.s) Chars 9126 - 9145 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 9150 - 9169 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) +Chars 9150 - 9169 [(eapply~IHEQ;~eauto).] 0.001 secs (0.u,0.s) Chars 9174 - 9225 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) Chars 9230 - 9267 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 9268 - 9272 [Qed.] 0.026 secs (0.026u,0.s) +Chars 9268 - 9272 [Qed.] 0.025 secs (0.025u,0.s) Chars 9274 - 9443 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) Chars 9444 - 9450 [Proof.] 0. secs (0.u,0.s) Chars 9453 - 9465 [(unfold~rutt).] 0. secs (0.u,0.s) @@ -312,7 +312,7 @@ Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) Chars 9715 - 9766 [(intros~*~Hrutt~Heutt;~revert~...] 0. secs (0.u,0.s) Chars 9769 - 9823 [(coinduction~c~CIH;~icbn;~intr...] 0.001 secs (0.001u,0.s) Chars 9826 - 9840 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 9843 - 9876 [(rewrite~(itree_eta~t1')~in~He...] 0.03 secs (0.03u,0.s) +Chars 9843 - 9876 [(rewrite~(itree_eta~t1')~in~He...] 0.027 secs (0.027u,0.s) Chars 9879 - 9917 [(remember~(observe~t1)~as~ot1~...] 0. secs (0.u,0.s) Chars 9920 - 9958 [(remember~(observe~t2)~as~ot2~...] 0. secs (0.u,0.s) Chars 9961 - 10003 [(move~Hrutt~before~CIH;~revert...] 0. secs (0.u,0.s) @@ -340,7 +340,7 @@ Chars 10485 - 10495 [step~in~H.] 0. secs (0.u,0.s) Chars 10496 - 10506 [rcbn~in~H.] 0. secs (0.u,0.s) Chars 10511 - 10550 [(remember~(TauF~m1)~as~oTauL~e...] 0. secs (0.u,0.s) Chars 10555 - 10577 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) -Chars 10582 - 10713 [(induction~Heutt'~~~as~[r1~r2~...] 0.002 secs (0.001u,0.s) +Chars 10582 - 10713 [(induction~Heutt'~~~as~[r1~r2~...] 0.001 secs (0.001u,0.s) Chars 10718 - 10719 [+] 0. secs (0.u,0.s) Chars 10748 - 10759 [(inv~HoTauL).] 0.009 secs (0.009u,0.s) Chars 10760 - 10772 [(apply~EqTau).] 0. secs (0.u,0.s) @@ -352,7 +352,7 @@ Chars 10819 - 10831 [(unfold~rutt).] 0. secs (0.u,0.s) Chars 10832 - 10837 [step.] 0. secs (0.u,0.s) Chars 10838 - 10846 [exact~H.] 0. secs (0.u,0.s) Chars 10851 - 10852 [+] 0. secs (0.u,0.s) -Chars 10914 - 10925 [(inv~HoTauL).] 0.016 secs (0.016u,0.s) +Chars 10914 - 10925 [(inv~HoTauL).] 0.015 secs (0.015u,0.s) Chars 10932 - 10991 [(destruct~(observe~m1)~as~[r1|...] 0.001 secs (0.001u,0.s) Chars 10998 - 10999 [*] 0. secs (0.u,0.s) Chars 11026 - 11065 [(remember~(RetF~r1)~as~oRetL~e...] 0.001 secs (0.001u,0.s) @@ -365,7 +365,7 @@ Chars 11209 - 11222 [(apply~EqTauR).] 0. secs (0.u,0.s) Chars 11234 - 11275 [(remember~(RetF~r1)~as~oRetL2~...] 0. secs (0.u,0.s) Chars 11287 - 11317 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) Chars 11329 - 11332 [***] 0. secs (0.u,0.s) -Chars 11333 - 11345 [(inv~HoRetL2).] 0.003 secs (0.003u,0.s) +Chars 11333 - 11345 [(inv~HoRetL2).] 0.002 secs (0.002u,0.s) Chars 11346 - 11358 [constructor.] 0. secs (0.u,0.s) Chars 11359 - 11369 [now~subst.] 0. secs (0.u,0.s) Chars 11381 - 11384 [***] 0. secs (0.u,0.s) @@ -382,9 +382,9 @@ Chars 11594 - 11595 [*] 0. secs (0.u,0.s) Chars 11625 - 11667 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) Chars 11676 - 11704 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) Chars 11713 - 11722 [revert~H.] 0. secs (0.u,0.s) -Chars 11731 - 11776 [(induction~IHHeutt';~try~discr...] 0.002 secs (0.002u,0.s) +Chars 11731 - 11776 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) Chars 11785 - 11787 [**] 0. secs (0.u,0.s) -Chars 11788 - 11837 [(symmetry~in~HoVisL;~dependent...] 0.005 secs (0.005u,0.s) +Chars 11788 - 11837 [(symmetry~in~HoVisL;~dependent...] 0.004 secs (0.004u,0.s) Chars 11849 - 11862 [(apply~EqTauR).] 0. secs (0.u,0.s) Chars 11874 - 11917 [(remember~(VisF~e~k0)~as~oVisL...] 0. secs (0.u,0.s) Chars 11929 - 11959 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) @@ -420,10 +420,10 @@ Chars 12458 - 12473 [step~in~Heutt'.] 0. secs (0.u,0.s) Chars 12474 - 12488 [(cbn~in~Heutt').] 0. secs (0.u,0.s) Chars 12493 - 12520 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) Chars 12521 - 12547 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 12552 - 12594 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) +Chars 12552 - 12594 [(remember~(VisF~e1~k1)~as~oVis...] 0. secs (0.u,0.s) Chars 12599 - 12642 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) Chars 12647 - 12648 [+] 0. secs (0.u,0.s) -Chars 12649 - 12678 [dependent~destruction~HoVisL.] 0.003 secs (0.003u,0.s) +Chars 12649 - 12678 [dependent~destruction~HoVisL.] 0.004 secs (0.004u,0.s) Chars 12685 - 12703 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) Chars 12704 - 12720 [(intros~a~b~HAns).] 0. secs (0.u,0.s) Chars 12727 - 12749 [(apply~CIH~with~(k1~a)).] 0. secs (0.u,0.s) @@ -459,7 +459,7 @@ Chars 13633 - 13654 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) Chars 13659 - 13688 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) Chars 13693 - 13716 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) Chars 13717 - 13746 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) -Chars 13747 - 13751 [Qed.] 0.003 secs (0.003u,0.s) +Chars 13747 - 13751 [Qed.] 0.003 secs (0.002u,0.s) Chars 13790 - 13807 [Section~RuttBind.] 0. secs (0.u,0.s) Chars 13808 - 13839 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 13840 - 13863 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) @@ -478,7 +478,7 @@ Chars 14507 - 14521 [(genobs~t1~ot1).] 0. secs (0.u,0.s) Chars 14522 - 14536 [(genobs~t2~ot2).] 0. secs (0.u,0.s) Chars 14539 - 14575 [(hinduction~Hrutt~before~CIH;~...] 0.001 secs (0.001u,0.s) Chars 14578 - 14579 [-] 0. secs (0.u,0.s) -Chars 14594 - 14625 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) +Chars 14594 - 14625 [(rewrite~!observe_bind;~simpobs).] 0.005 secs (0.005u,0.s) Chars 14630 - 14653 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) Chars 14659 - 14671 [step~in~EQK.] 0. secs (0.u,0.s) Chars 14672 - 14686 [now~do~2~step.] 0.002 secs (0.002u,0.s) @@ -513,25 +513,25 @@ Chars 15920 - 15938 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) Chars 15939 - 15952 [step~in~Ht12.] 0. secs (0.u,0.s) Chars 15958 - 15987 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) Chars 15988 - 16017 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 16022 - 16065 [(hinduction~Ht12~before~R1;~in...] 0.003 secs (0.003u,0.s) +Chars 16022 - 16065 [(hinduction~Ht12~before~R1;~in...] 0.002 secs (0.002u,0.s) Chars 16071 - 16072 [-] 0. secs (0.u,0.s) Chars 16073 - 16105 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16106 - 16129 [(rewrite~Heqot1,~Heqot2).] 0.186 secs (0.185u,0.s) -Chars 16136 - 16170 [(repeat~rewrite~unfold_interp_...] 0.192 secs (0.191u,0.s) +Chars 16106 - 16129 [(rewrite~Heqot1,~Heqot2).] 0.183 secs (0.181u,0.001s) +Chars 16136 - 16170 [(repeat~rewrite~unfold_interp_...] 0.184 secs (0.183u,0.001s) Chars 16171 - 16175 [(cbn).] 0. secs (0.u,0.s) Chars 16176 - 16192 [now~constructor.] 0. secs (0.u,0.s) Chars 16199 - 16200 [-] 0. secs (0.u,0.s) Chars 16201 - 16233 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16234 - 16257 [(rewrite~Heqot1,~Heqot2).] 0.19 secs (0.189u,0.s) -Chars 16264 - 16298 [(repeat~rewrite~unfold_interp_...] 0.191 secs (0.191u,0.s) +Chars 16234 - 16257 [(rewrite~Heqot1,~Heqot2).] 0.19 secs (0.188u,0.001s) +Chars 16264 - 16298 [(repeat~rewrite~unfold_interp_...] 0.188 secs (0.187u,0.001s) Chars 16299 - 16303 [(cbn).] 0. secs (0.u,0.s) Chars 16304 - 16331 [(constructor;~now~apply~CIH).] 0. secs (0.u,0.s) Chars 16337 - 16338 [-] 0. secs (0.u,0.s) Chars 16339 - 16371 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16372 - 16395 [(rewrite~Heqot1,~Heqot2).] 0.196 secs (0.195u,0.s) -Chars 16402 - 16436 [(repeat~rewrite~unfold_interp_...] 0.219 secs (0.206u,0.001s) +Chars 16372 - 16395 [(rewrite~Heqot1,~Heqot2).] 0.197 secs (0.194u,0.002s) +Chars 16402 - 16436 [(repeat~rewrite~unfold_interp_...] 0.197 secs (0.195u,0.002s) Chars 16437 - 16441 [(cbn).] 0. secs (0.u,0.s) -Chars 16448 - 16454 [(inv~H).] 0.018 secs (0.018u,0.s) +Chars 16448 - 16454 [(inv~H).] 0.019 secs (0.019u,0.s) Chars 16461 - 16462 [+] 0. secs (0.u,0.s) Chars 16463 - 16489 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) Chars 16490 - 16496 [subst.] 0.001 secs (0.001u,0.s) @@ -545,7 +545,7 @@ Chars 16605 - 16614 [(apply~H0).] 0. secs (0.u,0.s) Chars 16615 - 16631 [now~constructor.] 0. secs (0.u,0.s) Chars 16638 - 16639 [+] 0. secs (0.u,0.s) Chars 16640 - 16666 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) -Chars 16667 - 16673 [subst.] 0.002 secs (0.002u,0.s) +Chars 16667 - 16673 [subst.] 0.001 secs (0.001u,0.s) Chars 16674 - 16686 [constructor.] 0. secs (0.u,0.s) Chars 16695 - 16700 [auto.] 0. secs (0.u,0.s) Chars 16701 - 16708 [(intros).] 0. secs (0.u,0.s) @@ -556,19 +556,19 @@ Chars 16771 - 16780 [(apply~H0).] 0. secs (0.u,0.s) Chars 16781 - 16797 [now~constructor.] 0. secs (0.u,0.s) Chars 16803 - 16804 [-] 0. secs (0.u,0.s) Chars 16805 - 16829 [(apply~simpobs~in~Heqot1).] 0. secs (0.u,0.s) -Chars 16830 - 16845 [(rewrite~Heqot1).] 0.102 secs (0.101u,0.s) -Chars 16846 - 16878 [(rewrite~unfold_interp_mrec~~a...] 0.099 secs (0.098u,0.s) +Chars 16830 - 16845 [(rewrite~Heqot1).] 0.095 secs (0.094u,0.s) +Chars 16846 - 16878 [(rewrite~unfold_interp_mrec~~a...] 0.099 secs (0.098u,0.001s) Chars 16886 - 16890 [(cbn).] 0. secs (0.u,0.s) Chars 16891 - 16903 [constructor.] 0. secs (0.u,0.s) Chars 16904 - 16921 [now~apply~IHHt12.] 0. secs (0.u,0.s) Chars 16927 - 16928 [-] 0. secs (0.u,0.s) Chars 16929 - 16953 [(apply~simpobs~in~Heqot2).] 0. secs (0.u,0.s) -Chars 16954 - 16969 [(rewrite~Heqot2).] 0.103 secs (0.102u,0.s) -Chars 16970 - 17009 [setoid_rewrite~unfold_interp_m...] 0.114 secs (0.113u,0.s) +Chars 16954 - 16969 [(rewrite~Heqot2).] 0.103 secs (0.101u,0.001s) +Chars 16970 - 17009 [setoid_rewrite~unfold_interp_m...] 0.131 secs (0.125u,0.004s) Chars 17016 - 17020 [(cbn).] 0. secs (0.u,0.s) Chars 17021 - 17033 [constructor.] 0. secs (0.u,0.s) Chars 17034 - 17051 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 17055 - 17059 [Qed.] 0.021 secs (0.021u,0.s) +Chars 17055 - 17059 [Qed.] 0.023 secs (0.022u,0.s) Chars 17063 - 17258 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) Chars 17261 - 17267 [Proof.] 0. secs (0.u,0.s) Chars 17272 - 17279 [(intros).] 0. secs (0.u,0.s) diff --git a/theories/Eq/Shallow.v.timing b/theories/Eq/Shallow.v.timing index 2a025fb6..f745daf7 100644 --- a/theories/Eq/Shallow.v.timing +++ b/theories/Eq/Shallow.v.timing @@ -1,5 +1,5 @@ Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.038 secs (0.029u,0.008s) +Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.035 secs (0.028u,0.007s) Chars 349 - 372 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 389 - 523 [Definition~eqeq~{A~:~Type}~(P~...] 0. secs (0.u,0.s) Chars 525 - 720 [Definition~pweqeq~{R1}~{R2}~(R...] 0. secs (0.u,0.s) @@ -7,7 +7,7 @@ Chars 722 - 889 [Lemma~pweqeq_mon~{R1}~{R2}~(RR...] 0. secs (0.u,0.s) Chars 890 - 896 [Proof.] 0. secs (0.u,0.s) Chars 899 - 921 [(destruct~p;~cbn;~auto).] 0. secs (0.u,0.s) Chars 922 - 926 [Qed.] 0. secs (0.u,0.s) -Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0.001 secs (0.u,0.s) +Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0. secs (0.u,0.s) Chars 1164 - 1170 [Proof.] 0. secs (0.u,0.s) Chars 1173 - 1331 [(refine~~~(fun~H~=>~~~~match~~...] 0. secs (0.u,0.s) Chars 1334 - 1360 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) @@ -36,10 +36,10 @@ Chars 2505 - 2529 [(intros~[];~split;~compute)~...] 0.003 secs (0.002u,0.s) Chars 2532 - 2533 [-] 0. secs (0.u,0.s) Chars 2534 - 2556 [(intros~?~?~[];~auto)~...] 0. secs (0.u,0.s) Chars 2559 - 2560 [-] 0. secs (0.u,0.s) -Chars 2561 - 2598 [(intros~?~?~?~[]~[];~eauto~wit...] 0.018 secs (0.016u,0.002s) +Chars 2561 - 2598 [(intros~?~?~?~[]~[];~eauto~wit...] 0.016 secs (0.014u,0.001s) Chars 2599 - 2603 [Qed.] 0. secs (0.u,0.s) Chars 2605 - 2629 [End~observing_relations.] 0. secs (0.u,0.s) -Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0.001 secs (0.001u,0.s) +Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0. secs (0.u,0.s) Chars 2959 - 2965 [Proof.] 0. secs (0.u,0.s) Chars 2966 - 2978 [reflexivity.] 0. secs (0.u,0.s) Chars 2979 - 2983 [Qed.] 0. secs (0.u,0.s) @@ -93,7 +93,7 @@ Chars 5034 - 5068 [(intros~?~?~?~[];~eauto~with~i...] 0. secs (0.u,0.s) Chars 5069 - 5073 [Qed.] 0. secs (0.u,0.s) Chars 5075 - 5159 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5215 [(intros~[];~constructor;~compu...] 0.067 secs (0.065u,0.001s) +Chars 5169 - 5215 [(intros~[];~constructor;~compu...] 0.062 secs (0.061u,0.001s) Chars 5218 - 5219 [-] 0. secs (0.u,0.s) Chars 5220 - 5251 [(intros~?~?~[];~auto~with~itree).] 0. secs (0.u,0.s) Chars 5254 - 5255 [-] 0. secs (0.u,0.s) diff --git a/theories/Eq/SimUpToTaus.v.timing b/theories/Eq/SimUpToTaus.v.timing index a3db840f..e8c67f86 100644 --- a/theories/Eq/SimUpToTaus.v.timing +++ b/theories/Eq/SimUpToTaus.v.timing @@ -1,9 +1,9 @@ Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 573 - 635 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.199 secs (0.176u,0.022s) +Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.204 secs (0.178u,0.024s) Chars 750 - 763 [Section~SUTT.] 0. secs (0.u,0.s) Chars 765 - 831 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.002 secs (0.002u,0.s) +Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.003 secs (0.002u,0.s) Chars 1324 - 1356 [Hint~Constructors~suttF:~itree.] 0. secs (0.u,0.s) Chars 1358 - 1404 [Lemma~suttF_mono~:~Proper~(leq...] 0. secs (0.u,0.s) Chars 1405 - 1411 [Proof.] 0. secs (0.u,0.s) @@ -33,16 +33,16 @@ Chars 2175 - 2190 [End~SUTT_facts.] 0. secs (0.u,0.s) Chars 2192 - 2411 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) Chars 2412 - 2418 [Proof.] 0. secs (0.u,0.s) Chars 2421 - 2428 [(intros).] 0. secs (0.u,0.s) -Chars 2429 - 2435 [(inv~H).] 0.005 secs (0.004u,0.001s) -Chars 2436 - 2455 [(ddestruction;~auto).] 0.003 secs (0.002u,0.s) -Chars 2456 - 2460 [Qed.] 0.004 secs (0.003u,0.s) +Chars 2429 - 2435 [(inv~H).] 0.006 secs (0.004u,0.001s) +Chars 2436 - 2455 [(ddestruction;~auto).] 0.003 secs (0.002u,0.001s) +Chars 2456 - 2460 [Qed.] 0.005 secs (0.003u,0.001s) Chars 2462 - 2646 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0.001 secs (0.u,0.s) Chars 2647 - 2653 [Proof.] 0. secs (0.u,0.s) Chars 2656 - 2663 [(intros).] 0. secs (0.u,0.s) Chars 2664 - 2674 [step~in~H.] 0. secs (0.u,0.s) Chars 2675 - 2686 [(simpl~in~H).] 0. secs (0.u,0.s) Chars 2689 - 2729 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) -Chars 2730 - 2734 [Qed.] 0.001 secs (0.u,0.s) +Chars 2730 - 2734 [Qed.] 0.001 secs (0.001u,0.s) Chars 2736 - 2884 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 2885 - 2891 [Proof.] 0. secs (0.u,0.s) Chars 2894 - 2901 [(intros).] 0. secs (0.u,0.s) @@ -54,17 +54,17 @@ Chars 2940 - 2944 [Qed.] 0.001 secs (0.001u,0.s) Chars 2946 - 3093 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) Chars 3094 - 3100 [Proof.] 0. secs (0.u,0.s) Chars 3103 - 3110 [(intros).] 0. secs (0.u,0.s) -Chars 3111 - 3116 [step.] 0. secs (0.u,0.s) +Chars 3111 - 3116 [step.] 0.001 secs (0.u,0.s) Chars 3119 - 3131 [constructor.] 0. secs (0.u,0.s) Chars 3132 - 3140 [exact~H.] 0. secs (0.u,0.s) -Chars 3141 - 3145 [Qed.] 0.029 secs (0.026u,0.002s) +Chars 3141 - 3145 [Qed.] 0.036 secs (0.027u,0.008s) Chars 3147 - 3298 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) Chars 3299 - 3305 [Proof.] 0. secs (0.u,0.s) Chars 3308 - 3326 [(unfold~sutt~at~-~1).] 0. secs (0.u,0.s) Chars 3327 - 3346 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 3347 - 3362 [(intros~t1~t2~H).] 0. secs (0.u,0.s) Chars 3363 - 3373 [step~in~H.] 0. secs (0.u,0.s) -Chars 3376 - 3382 [(inv~H).] 0.013 secs (0.013u,0.s) +Chars 3376 - 3382 [(inv~H).] 0.014 secs (0.013u,0.s) Chars 3385 - 3386 [-] 0. secs (0.u,0.s) Chars 3387 - 3422 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) Chars 3427 - 3439 [(intros~?~?~?).] 0. secs (0.u,0.s) @@ -73,15 +73,15 @@ Chars 3467 - 3468 [-] 0. secs (0.u,0.s) Chars 3469 - 3481 [constructor.] 0. secs (0.u,0.s) Chars 3482 - 3492 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3493 - 3506 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 3507 - 3511 [Qed.] 0.005 secs (0.004u,0.s) +Chars 3507 - 3511 [Qed.] 0.005 secs (0.005u,0.s) Chars 3513 - 3723 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) Chars 3724 - 3730 [Proof.] 0. secs (0.u,0.s) Chars 3733 - 3740 [(intros).] 0. secs (0.u,0.s) Chars 3743 - 3770 [(remember~(TauF~t1)~as~ott1).] 0. secs (0.u,0.s) -Chars 3773 - 3853 [(induction~H;~intros;~subst;~t...] 0.042 secs (0.041u,0.s) +Chars 3773 - 3853 [(induction~H;~intros;~subst;~t...] 0.044 secs (0.042u,0.001s) Chars 3856 - 3871 [step~in~EQTAUS.] 0. secs (0.u,0.s) Chars 3872 - 3885 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 3886 - 3890 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3886 - 3890 [Qed.] 0.004 secs (0.003u,0.s) Chars 3892 - 4041 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) Chars 4042 - 4048 [Proof.] 0. secs (0.u,0.s) Chars 4051 - 4058 [(intros).] 0. secs (0.u,0.s) @@ -91,11 +91,11 @@ Chars 4078 - 4109 [(apply~suttF_inv_tau_left;~auto).] 0. secs (0.u,0.s) Chars 4110 - 4114 [Qed.] 0.001 secs (0.001u,0.s) Chars 4116 - 4275 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) Chars 4276 - 4282 [Proof.] 0. secs (0.u,0.s) -Chars 4285 - 4304 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 4285 - 4304 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) Chars 4305 - 4324 [(intros~t1~t2~H1~H2).] 0. secs (0.u,0.s) Chars 4327 - 4338 [step~in~H1.] 0. secs (0.u,0.s) Chars 4339 - 4350 [step~in~H2.] 0. secs (0.u,0.s) -Chars 4353 - 4398 [(induction~H1;~intros;~subst;~...] 0.006 secs (0.005u,0.s) +Chars 4353 - 4398 [(induction~H1;~intros;~subst;~...] 0.007 secs (0.006u,0.001s) Chars 4401 - 4402 [-] 0. secs (0.u,0.s) Chars 4423 - 4435 [constructor.] 0. secs (0.u,0.s) Chars 4436 - 4444 [intro~x.] 0. secs (0.u,0.s) @@ -107,17 +107,17 @@ Chars 4496 - 4497 [+] 0. secs (0.u,0.s) Chars 4498 - 4510 [(unfold~sutt).] 0. secs (0.u,0.s) Chars 4511 - 4550 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) Chars 4553 - 4554 [-] 0. secs (0.u,0.s) -Chars 4581 - 4600 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 4581 - 4600 [(constructor;~eauto).] 0.003 secs (0.002u,0.s) Chars 4601 - 4622 [(eapply~IHsuttF;~auto).] 0. secs (0.u,0.s) Chars 4623 - 4655 [(eapply~suttF_inv_tau_left;~au...] 0. secs (0.u,0.s) Chars 4658 - 4659 [-] 0. secs (0.u,0.s) -Chars 4685 - 4692 [(inv~H2).] 0.024 secs (0.024u,0.s) +Chars 4685 - 4692 [(inv~H2).] 0.023 secs (0.023u,0.s) Chars 4697 - 4698 [+] 0. secs (0.u,0.s) Chars 4699 - 4711 [clear~t1~t2.] 0. secs (0.u,0.s) Chars 4712 - 4726 [(genobs~t0~ot0).] 0. secs (0.u,0.s) Chars 4733 - 4778 [(hinduction~EQTAUS0~before~CIH...] 0.002 secs (0.002u,0.s) Chars 4785 - 4786 [*] 0. secs (0.u,0.s) -Chars 4787 - 4806 [(constructor;~eauto).] 0.001 secs (0.u,0.s) +Chars 4787 - 4806 [(constructor;~eauto).] 0. secs (0.u,0.s) Chars 4807 - 4815 [simpobs.] 0.001 secs (0.001u,0.s) Chars 4816 - 4828 [constructor.] 0. secs (0.u,0.s) Chars 4829 - 4835 [eauto.] 0. secs (0.u,0.s) @@ -133,7 +133,7 @@ Chars 4974 - 4976 [--] 0. secs (0.u,0.s) Chars 4977 - 4989 [(unfold~sutt).] 0. secs (0.u,0.s) Chars 4990 - 5002 [(apply~SUTTK).] 0. secs (0.u,0.s) Chars 5009 - 5010 [*] 0. secs (0.u,0.s) -Chars 5011 - 5030 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5011 - 5030 [(constructor;~eauto).] 0. secs (0.u,0.s) Chars 5031 - 5039 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5040 - 5064 [(eapply~IHEQTAUS0;~eauto).] 0. secs (0.u,0.s) Chars 5073 - 5098 [(rewrite~(itree_eta'~ot1)).] 0. secs (0.u,0.s) @@ -147,13 +147,13 @@ Chars 5189 - 5221 [(apply~sutt_elim_tau_right;~au...] 0. secs (0.u,0.s) Chars 5226 - 5227 [+] 0. secs (0.u,0.s) Chars 5228 - 5240 [constructor.] 0. secs (0.u,0.s) Chars 5241 - 5284 [(apply~CIH;~apply~sutt_elim_ta...] 0. secs (0.u,0.s) -Chars 5285 - 5289 [Qed.] 0.014 secs (0.014u,0.s) +Chars 5285 - 5289 [Qed.] 0.015 secs (0.015u,0.s) Chars 5291 - 5426 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) Chars 5436 - 5454 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 5455 - 5470 [(intros~t1~t2~H).] 0. secs (0.u,0.s) Chars 5473 - 5483 [step~in~H.] 0. secs (0.u,0.s) -Chars 5486 - 5498 [(induction~H).] 0. secs (0.u,0.s) +Chars 5486 - 5498 [(induction~H).] 0.001 secs (0.001u,0.s) Chars 5501 - 5502 [-] 0. secs (0.u,0.s) Chars 5503 - 5521 [(constructor;~auto).] 0. secs (0.u,0.s) Chars 5524 - 5525 [-] 0. secs (0.u,0.s) @@ -168,13 +168,13 @@ Chars 5598 - 5608 [(apply~CIH).] 0. secs (0.u,0.s) Chars 5609 - 5619 [(apply~REL).] 0. secs (0.u,0.s) Chars 5622 - 5623 [-] 0. secs (0.u,0.s) Chars 5624 - 5636 [constructor.] 0. secs (0.u,0.s) -Chars 5637 - 5642 [step.] 0. secs (0.u,0.s) +Chars 5637 - 5642 [step.] 0.001 secs (0.001u,0.s) Chars 5643 - 5657 [exact~IHeqitF.] 0. secs (0.u,0.s) Chars 5660 - 5661 [-] 0. secs (0.u,0.s) Chars 5662 - 5674 [constructor.] 0. secs (0.u,0.s) Chars 5675 - 5689 [exact~IHeqitF.] 0. secs (0.u,0.s) Chars 5690 - 5694 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5752 - 6013 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 5752 - 6013 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0.001 secs (0.001u,0.s) Chars 6014 - 6020 [Proof.] 0. secs (0.u,0.s) Chars 6023 - 6041 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 6042 - 6066 [(intros~t1~t2~H~s1~s2~Hs).] 0. secs (0.u,0.s) @@ -212,13 +212,13 @@ Chars 6762 - 6773 [step~in~H1.] 0. secs (0.u,0.s) Chars 6776 - 6793 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) Chars 6796 - 6817 [(induction~H1;~intros).] 0.001 secs (0.001u,0.s) Chars 6820 - 6821 [-] 0. secs (0.u,0.s) -Chars 6822 - 6847 [(inv~H1;~try~discriminate).] 0.026 secs (0.025u,0.s) +Chars 6822 - 6847 [(inv~H1;~try~discriminate).] 0.025 secs (0.025u,0.s) Chars 6848 - 6873 [(inv~H0;~try~discriminate).] 0.022 secs (0.022u,0.s) Chars 6874 - 6887 [econstructor.] 0. secs (0.u,0.s) Chars 6888 - 6894 [eauto.] 0. secs (0.u,0.s) Chars 6897 - 6898 [-] 0. secs (0.u,0.s) -Chars 6899 - 6941 [(dependent~destruction~H;~try~...] 0.025 secs (0.024u,0.s) -Chars 6946 - 6989 [(dependent~destruction~H0;~try...] 0.025 secs (0.025u,0.s) +Chars 6899 - 6941 [(dependent~destruction~H;~try~...] 0.025 secs (0.025u,0.s) +Chars 6946 - 6989 [(dependent~destruction~H0;~try...] 0.024 secs (0.024u,0.s) Chars 6994 - 7002 [simpobs.] 0.003 secs (0.003u,0.s) Chars 7007 - 7019 [constructor.] 0. secs (0.u,0.s) Chars 7020 - 7027 [(intros).] 0. secs (0.u,0.s) @@ -227,13 +227,13 @@ Chars 7045 - 7055 [(apply~REL).] 0. secs (0.u,0.s) Chars 7061 - 7072 [(apply~REL0).] 0. secs (0.u,0.s) Chars 7073 - 7085 [(apply~SUTTK).] 0. secs (0.u,0.s) Chars 7090 - 7091 [-] 0. secs (0.u,0.s) -Chars 7092 - 7135 [(dependent~destruction~H0;~try...] 0.024 secs (0.024u,0.s) -Chars 7140 - 7148 [simpobs.] 0.002 secs (0.001u,0.s) +Chars 7092 - 7135 [(dependent~destruction~H0;~try...] 0.023 secs (0.022u,0.s) +Chars 7140 - 7148 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7149 - 7161 [constructor.] 0. secs (0.u,0.s) Chars 7167 - 7187 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) Chars 7188 - 7204 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 7208 - 7209 [-] 0. secs (0.u,0.s) -Chars 7210 - 7252 [(dependent~destruction~H;~try~...] 0.024 secs (0.024u,0.s) +Chars 7210 - 7252 [(dependent~destruction~H;~try~...] 0.025 secs (0.024u,0.s) Chars 7257 - 7265 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7266 - 7278 [constructor.] 0. secs (0.u,0.s) Chars 7283 - 7313 [(rewrite~(itree_eta'~ot2)~in~*).] 0. secs (0.u,0.s) @@ -241,4 +241,4 @@ Chars 7314 - 7325 [(eapply~CIH).] 0. secs (0.u,0.s) Chars 7331 - 7341 [(apply~REL).] 0. secs (0.u,0.s) Chars 7342 - 7357 [(step;~apply~H0).] 0.001 secs (0.001u,0.s) Chars 7358 - 7371 [(apply~EQTAUS).] 0. secs (0.u,0.s) -Chars 7373 - 7377 [Qed.] 0.071 secs (0.07u,0.001s) +Chars 7373 - 7377 [Qed.] 0.071 secs (0.069u,0.001s) diff --git a/theories/Events.v.timing b/theories/Events.v.timing index 2820e2bd..89386b46 100644 --- a/theories/Events.v.timing +++ b/theories/Events.v.timing @@ -1 +1 @@ -Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.179 secs (0.158u,0.02s) +Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.179 secs (0.155u,0.023s) diff --git a/theories/Events/Concurrency.v.timing b/theories/Events/Concurrency.v.timing index 7646b73d..3d515953 100644 --- a/theories/Events/Concurrency.v.timing +++ b/theories/Events/Concurrency.v.timing @@ -1,10 +1,10 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.042 secs (0.033u,0.008s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.043 secs (0.033u,0.009s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.044 secs (0.035u,0.009s) -Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.077 secs (0.075u,0.002s) -Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0. secs (0.u,0.s) +Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.048 secs (0.036u,0.011s) +Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.08 secs (0.075u,0.004s) +Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0.001 secs (0.001u,0.s) Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.002 secs (0.002u,0.s) Chars 2164 - 2274 [CoFixpoint~round_robin~{E}~(q~...] 0. secs (0.u,0.s) Chars 2276 - 2372 [Definition~run_spawn~{E}~(t~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Dependent.v.timing b/theories/Events/Dependent.v.timing index cfcc56c0..758eb45e 100644 --- a/theories/Events/Dependent.v.timing +++ b/theories/Events/Dependent.v.timing @@ -1,6 +1,6 @@ -Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.049 secs (0.039u,0.009s) +Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.049 secs (0.037u,0.011s) Chars 720 - 748 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 765 - 852 [Variant~depE~{I~:~Type}~(F~:~I...] 0. secs (0.u,0.s) Chars 854 - 876 [Arguments~Dep~{I~F}~&.] 0. secs (0.u,0.s) -Chars 878 - 970 [Definition~dep~{I}~{F}~{E}~`{d...] 0.001 secs (0.u,0.s) +Chars 878 - 970 [Definition~dep~{I}~{F}~{E}~`{d...] 0. secs (0.u,0.s) Chars 972 - 1102 [Definition~undep~{I}~{F}~(f~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Exception.v.timing b/theories/Events/Exception.v.timing index 6e59df43..46bf1add 100644 --- a/theories/Events/Exception.v.timing +++ b/theories/Events/Exception.v.timing @@ -1,6 +1,6 @@ -Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.062 secs (0.049u,0.012s) +Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.069 secs (0.05u,0.016s) Chars 77 - 100 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 156 - 237 [Variant~exceptE~(Err~:~Type)~:...] 0. secs (0.u,0.s) Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.001 secs (0.001u,0.s) -Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.025 secs (0.023u,0.002s) +Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.026 secs (0.022u,0.003s) Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.003 secs (0.003u,0.s) diff --git a/theories/Events/ExceptionFacts.v.timing b/theories/Events/ExceptionFacts.v.timing index 1a94b315..33d9155f 100644 --- a/theories/Events/ExceptionFacts.v.timing +++ b/theories/Events/ExceptionFacts.v.timing @@ -1,7 +1,7 @@ Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) Chars 61 - 110 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.236 secs (0.208u,0.028s) +Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.224 secs (0.196u,0.028s) Chars 242 - 256 [Import~Monads.] 0. secs (0.u,0.s) Chars 257 - 278 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 279 - 311 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -10,30 +10,30 @@ Chars 439 - 445 [Proof.] 0. secs (0.u,0.s) Chars 448 - 455 [(intros).] 0. secs (0.u,0.s) Chars 456 - 473 [(unfold~try_catch).] 0. secs (0.u,0.s) Chars 474 - 530 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 533 - 553 [(rewrite~unfold_iter).] 0.018 secs (0.013u,0.004s) +Chars 533 - 553 [(rewrite~unfold_iter).] 0.017 secs (0.012u,0.004s) Chars 554 - 558 [(cbn).] 0. secs (0.u,0.s) -Chars 559 - 578 [(rewrite~bind_ret_l).] 0.043 secs (0.04u,0.003s) +Chars 559 - 578 [(rewrite~bind_ret_l).] 0.041 secs (0.037u,0.003s) Chars 579 - 591 [reflexivity.] 0. secs (0.u,0.s) -Chars 592 - 596 [Qed.] 0.004 secs (0.004u,0.s) -Chars 598 - 741 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) +Chars 592 - 596 [Qed.] 0.003 secs (0.003u,0.s) +Chars 598 - 741 [Lemma~try_catch_tau~:~~~forall...] 0.001 secs (0.001u,0.s) Chars 742 - 748 [Proof.] 0. secs (0.u,0.s) Chars 751 - 758 [(intros).] 0. secs (0.u,0.s) Chars 759 - 776 [(unfold~try_catch).] 0. secs (0.u,0.s) Chars 777 - 833 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 836 - 856 [(rewrite~unfold_iter).] 0.051 secs (0.051u,0.s) +Chars 836 - 856 [(rewrite~unfold_iter).] 0.052 secs (0.051u,0.s) Chars 857 - 861 [(cbn).] 0. secs (0.u,0.s) -Chars 862 - 881 [(rewrite~bind_ret_l).] 0.013 secs (0.012u,0.s) +Chars 862 - 881 [(rewrite~bind_ret_l).] 0.012 secs (0.011u,0.s) Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) -Chars 895 - 899 [Qed.] 0.005 secs (0.005u,0.s) +Chars 895 - 899 [Qed.] 0.004 secs (0.004u,0.s) Chars 901 - 1123 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) Chars 1124 - 1130 [Proof.] 0. secs (0.u,0.s) Chars 1134 - 1141 [(intros).] 0. secs (0.u,0.s) Chars 1142 - 1159 [(unfold~try_catch).] 0. secs (0.u,0.s) Chars 1160 - 1216 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 1220 - 1240 [(rewrite~unfold_iter).] 0.012 secs (0.011u,0.s) +Chars 1220 - 1240 [(rewrite~unfold_iter).] 0.011 secs (0.01u,0.s) Chars 1241 - 1245 [(cbn).] 0. secs (0.u,0.s) Chars 1246 - 1263 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 1267 - 1285 [(rewrite~bind_bind).] 0.01 secs (0.01u,0.s) +Chars 1267 - 1285 [(rewrite~bind_bind).] 0.01 secs (0.009u,0.s) Chars 1286 - 1312 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) Chars 1313 - 1332 [(rewrite~bind_ret_r).] 0.002 secs (0.002u,0.s) Chars 1336 - 1348 [reflexivity.] 0. secs (0.u,0.s) @@ -43,12 +43,12 @@ Chars 1551 - 1557 [Proof.] 0. secs (0.u,0.s) Chars 1560 - 1567 [(intros).] 0. secs (0.u,0.s) Chars 1568 - 1585 [(unfold~try_catch).] 0. secs (0.u,0.s) Chars 1586 - 1642 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 1645 - 1665 [(rewrite~unfold_iter).] 0.015 secs (0.014u,0.s) +Chars 1645 - 1665 [(rewrite~unfold_iter).] 0.014 secs (0.014u,0.s) Chars 1666 - 1670 [(cbn).] 0. secs (0.u,0.s) Chars 1674 - 1691 [(rewrite~bind_map).] 0.012 secs (0.012u,0.s) -Chars 1692 - 1713 [(rewrite~bind_trigger).] 0.014 secs (0.013u,0.s) +Chars 1692 - 1713 [(rewrite~bind_trigger).] 0.013 secs (0.012u,0.s) Chars 1714 - 1726 [reflexivity.] 0. secs (0.u,0.s) -Chars 1729 - 1733 [Qed.] 0.006 secs (0.006u,0.s) +Chars 1729 - 1733 [Qed.] 0.005 secs (0.005u,0.s) Chars 1735 - 1887 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) Chars 1897 - 1922 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) @@ -57,8 +57,8 @@ Chars 1934 - 1950 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) Chars 1954 - 1966 [coinduction.] 0.003 secs (0.003u,0.s) Chars 1967 - 1974 [(intros).] 0. secs (0.u,0.s) Chars 1975 - 1992 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 1993 - 2026 [setoid_rewrite~unfold_iter_ktree.] 0.07 secs (0.069u,0.s) -Chars 2029 - 2037 [(sinv~Ht).] 0.366 secs (0.359u,0.004s) +Chars 1993 - 2026 [setoid_rewrite~unfold_iter_ktree.] 0.071 secs (0.069u,0.s) +Chars 2029 - 2037 [(sinv~Ht).] 0.343 secs (0.338u,0.004s) Chars 2041 - 2042 [-] 0. secs (0.u,0.s) Chars 2043 - 2047 [(cbn).] 0. secs (0.u,0.s) Chars 2048 - 2060 [reflexivity.] 0.001 secs (0.001u,0.s) @@ -69,54 +69,54 @@ Chars 2080 - 2081 [-] 0. secs (0.u,0.s) Chars 2082 - 2093 [(destruct~e).] 0.005 secs (0.005u,0.s) Chars 2098 - 2099 [+] 0. secs (0.u,0.s) Chars 2100 - 2111 [(destruct~e).] 0.003 secs (0.003u,0.s) -Chars 2112 - 2117 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 2125 - 2144 [(rewrite~2!bind_map).] 0.066 secs (0.065u,0.s) -Chars 2145 - 2166 [(rewrite~2!bind_ret_r).] 0.045 secs (0.044u,0.s) -Chars 2174 - 2179 [step.] 0.009 secs (0.009u,0.s) +Chars 2112 - 2117 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 2125 - 2144 [(rewrite~2!bind_map).] 0.063 secs (0.062u,0.s) +Chars 2145 - 2166 [(rewrite~2!bind_ret_r).] 0.043 secs (0.042u,0.s) +Chars 2174 - 2179 [step.] 0.01 secs (0.009u,0.s) Chars 2180 - 2189 [(apply~Hk).] 0. secs (0.u,0.s) Chars 2195 - 2196 [+] 0. secs (0.u,0.s) Chars 2197 - 2201 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 2202 - 2207 [evis.] 0.002 secs (0.002u,0.s) +Chars 2202 - 2207 [evis.] 0.003 secs (0.003u,0.s) Chars 2208 - 2213 [step.] 0.003 secs (0.003u,0.s) Chars 2214 - 2218 [(cbn).] 0. secs (0.u,0.s) Chars 2219 - 2224 [etau.] 0.003 secs (0.003u,0.s) -Chars 2226 - 2230 [Qed.] 0.044 secs (0.044u,0.s) +Chars 2226 - 2230 [Qed.] 0.044 secs (0.042u,0.001s) Chars 2232 - 2369 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) Chars 2379 - 2404 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) Chars 2405 - 2415 [(red~in~Hk).] 0. secs (0.u,0.s) Chars 2416 - 2432 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 2436 - 2448 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 2436 - 2448 [coinduction.] 0.004 secs (0.003u,0.s) Chars 2449 - 2456 [(intros).] 0. secs (0.u,0.s) Chars 2457 - 2474 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 2475 - 2508 [setoid_rewrite~unfold_iter_ktree.] 0.075 secs (0.074u,0.s) +Chars 2475 - 2508 [setoid_rewrite~unfold_iter_ktree.] 0.075 secs (0.073u,0.s) Chars 2511 - 2522 [step~in~Ht.] 0.001 secs (0.001u,0.s) -Chars 2526 - 2571 [(hinduction~Ht~before~c;~intro...] 0.024 secs (0.024u,0.s) +Chars 2526 - 2571 [(hinduction~Ht~before~c;~intro...] 0.024 secs (0.023u,0.s) Chars 2574 - 2575 [-] 0. secs (0.u,0.s) Chars 2576 - 2580 [(cbn).] 0. secs (0.u,0.s) Chars 2581 - 2593 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 2597 - 2598 [-] 0. secs (0.u,0.s) -Chars 2599 - 2603 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2599 - 2603 [(cbn).] 0. secs (0.u,0.s) Chars 2604 - 2609 [etau.] 0.003 secs (0.003u,0.s) Chars 2614 - 2615 [-] 0. secs (0.u,0.s) Chars 2616 - 2627 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 2632 - 2633 [+] 0. secs (0.u,0.s) Chars 2634 - 2645 [(destruct~e).] 0.003 secs (0.003u,0.s) -Chars 2646 - 2651 [bcbn.] 0.003 secs (0.003u,0.s) -Chars 2658 - 2677 [(rewrite~2!bind_map).] 0.06 secs (0.06u,0.s) -Chars 2678 - 2699 [(rewrite~2!bind_ret_r).] 0.041 secs (0.04u,0.s) +Chars 2646 - 2651 [bcbn.] 0.002 secs (0.002u,0.s) +Chars 2658 - 2677 [(rewrite~2!bind_map).] 0.058 secs (0.057u,0.s) +Chars 2678 - 2699 [(rewrite~2!bind_ret_r).] 0.04 secs (0.039u,0.s) Chars 2707 - 2712 [step.] 0.009 secs (0.009u,0.s) Chars 2713 - 2722 [(apply~Hk).] 0. secs (0.u,0.s) Chars 2728 - 2729 [+] 0. secs (0.u,0.s) Chars 2730 - 2735 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 2736 - 2741 [evis.] 0.003 secs (0.003u,0.s) +Chars 2736 - 2741 [evis.] 0.003 secs (0.002u,0.s) Chars 2742 - 2747 [step.] 0.003 secs (0.003u,0.s) Chars 2748 - 2752 [(cbn).] 0. secs (0.u,0.s) Chars 2753 - 2758 [etau.] 0.003 secs (0.003u,0.s) Chars 2762 - 2763 [-] 0. secs (0.u,0.s) Chars 2764 - 2768 [(cbn).] 0.001 secs (0.001u,0.s) Chars 2769 - 2774 [taul.] 0. secs (0.u,0.s) -Chars 2775 - 2794 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 2775 - 2794 [(eapply~IHHt;~eauto).] 0.001 secs (0.001u,0.s) Chars 2797 - 2798 [-] 0. secs (0.u,0.s) Chars 2799 - 2803 [(cbn).] 0.001 secs (0.001u,0.s) Chars 2804 - 2809 [taur.] 0. secs (0.u,0.s) @@ -129,8 +129,8 @@ Chars 3003 - 3019 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) Chars 3023 - 3035 [coinduction.] 0.002 secs (0.002u,0.s) Chars 3036 - 3043 [(intros).] 0. secs (0.u,0.s) Chars 3044 - 3064 [(unfold~throw_prefix).] 0. secs (0.u,0.s) -Chars 3065 - 3098 [setoid_rewrite~unfold_iter_ktree.] 0.075 secs (0.075u,0.s) -Chars 3101 - 3109 [(sinv~Ht).] 0.343 secs (0.329u,0.001s) +Chars 3065 - 3098 [setoid_rewrite~unfold_iter_ktree.] 0.071 secs (0.071u,0.s) +Chars 3101 - 3109 [(sinv~Ht).] 0.313 secs (0.309u,0.003s) Chars 3112 - 3113 [-] 0. secs (0.u,0.s) Chars 3114 - 3118 [(cbn).] 0.001 secs (0.001u,0.s) Chars 3119 - 3124 [etau.] 0.002 secs (0.002u,0.s) @@ -146,15 +146,15 @@ Chars 3189 - 3194 [evis.] 0.002 secs (0.002u,0.s) Chars 3195 - 3200 [step.] 0.003 secs (0.003u,0.s) Chars 3201 - 3205 [(cbn).] 0. secs (0.u,0.s) Chars 3206 - 3211 [etau.] 0.002 secs (0.002u,0.s) -Chars 3213 - 3217 [Qed.] 0.04 secs (0.04u,0.s) +Chars 3213 - 3217 [Qed.] 0.036 secs (0.036u,0.s) Chars 3219 - 3325 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 3326 - 3332 [Proof.] 0. secs (0.u,0.s) Chars 3335 - 3351 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) Chars 3352 - 3368 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 3372 - 3384 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 3372 - 3384 [coinduction.] 0.002 secs (0.002u,0.s) Chars 3385 - 3392 [(intros).] 0. secs (0.u,0.s) Chars 3393 - 3413 [(unfold~throw_prefix).] 0. secs (0.u,0.s) -Chars 3414 - 3447 [setoid_rewrite~unfold_iter_ktree.] 0.073 secs (0.072u,0.s) +Chars 3414 - 3447 [setoid_rewrite~unfold_iter_ktree.] 0.072 secs (0.071u,0.001s) Chars 3450 - 3461 [step~in~Ht.] 0.001 secs (0.001u,0.s) Chars 3462 - 3507 [(hinduction~Ht~before~c;~intro...] 0.021 secs (0.021u,0.s) Chars 3510 - 3511 [-] 0. secs (0.u,0.s) @@ -168,58 +168,58 @@ Chars 3557 - 3561 [(cbn).] 0.001 secs (0.001u,0.s) Chars 3562 - 3574 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 3580 - 3581 [+] 0. secs (0.u,0.s) Chars 3582 - 3586 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3587 - 3592 [evis.] 0.004 secs (0.003u,0.s) +Chars 3587 - 3592 [evis.] 0.003 secs (0.003u,0.s) Chars 3593 - 3598 [step.] 0.003 secs (0.003u,0.s) Chars 3599 - 3603 [(cbn).] 0. secs (0.u,0.s) Chars 3604 - 3609 [etau.] 0.002 secs (0.002u,0.s) Chars 3613 - 3614 [-] 0. secs (0.u,0.s) Chars 3615 - 3619 [(cbn).] 0.001 secs (0.001u,0.s) Chars 3620 - 3625 [taul.] 0. secs (0.u,0.s) -Chars 3626 - 3645 [(eapply~IHHt;~eauto).] 0.001 secs (0.u,0.s) +Chars 3626 - 3645 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) Chars 3648 - 3649 [-] 0. secs (0.u,0.s) Chars 3650 - 3654 [(cbn).] 0.001 secs (0.001u,0.s) Chars 3655 - 3660 [taur.] 0. secs (0.u,0.s) Chars 3661 - 3680 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 3681 - 3685 [Qed.] 0.027 secs (0.027u,0.s) +Chars 3681 - 3685 [Qed.] 0.026 secs (0.025u,0.s) Chars 3687 - 3806 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 3807 - 3813 [Proof.] 0. secs (0.u,0.s) Chars 3816 - 3903 [(destruct~b;~~~[~apply~proper_...] 0. secs (0.u,0.s) -Chars 3904 - 3908 [Qed.] 0.001 secs (0.u,0.s) +Chars 3904 - 3908 [Qed.] 0. secs (0.u,0.s) Chars 3910 - 4014 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) Chars 4015 - 4021 [Proof.] 0. secs (0.u,0.s) Chars 4024 - 4031 [(intros).] 0. secs (0.u,0.s) -Chars 4032 - 4065 [setoid_rewrite~unfold_iter_ktree.] 0.015 secs (0.015u,0.s) +Chars 4032 - 4065 [setoid_rewrite~unfold_iter_ktree.] 0.016 secs (0.015u,0.s) Chars 4066 - 4070 [(cbn).] 0. secs (0.u,0.s) Chars 4071 - 4090 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) Chars 4091 - 4103 [reflexivity.] 0. secs (0.u,0.s) -Chars 4104 - 4108 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4104 - 4108 [Qed.] 0.004 secs (0.003u,0.s) Chars 4110 - 4240 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) Chars 4241 - 4247 [Proof.] 0. secs (0.u,0.s) Chars 4250 - 4257 [(intros).] 0. secs (0.u,0.s) Chars 4258 - 4296 [setoid_rewrite~unfold_iter_ktr...] 0.013 secs (0.013u,0.s) Chars 4297 - 4301 [(cbn).] 0. secs (0.u,0.s) -Chars 4302 - 4321 [(rewrite~bind_ret_l).] 0.01 secs (0.01u,0.s) +Chars 4302 - 4321 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) Chars 4324 - 4336 [reflexivity.] 0. secs (0.u,0.s) Chars 4337 - 4341 [Qed.] 0.004 secs (0.004u,0.s) Chars 4343 - 4470 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) Chars 4471 - 4477 [Proof.] 0. secs (0.u,0.s) Chars 4480 - 4487 [(intros).] 0. secs (0.u,0.s) -Chars 4488 - 4521 [setoid_rewrite~unfold_iter_ktree.] 0.013 secs (0.013u,0.s) +Chars 4488 - 4521 [setoid_rewrite~unfold_iter_ktree.] 0.014 secs (0.014u,0.s) Chars 4522 - 4526 [(cbn).] 0. secs (0.u,0.s) Chars 4527 - 4546 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) Chars 4547 - 4559 [reflexivity.] 0. secs (0.u,0.s) -Chars 4560 - 4564 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4560 - 4564 [Qed.] 0.005 secs (0.004u,0.s) Chars 4566 - 4748 [Definition~throw_prefix_ev~:~~...] 0.001 secs (0.001u,0.s) Chars 4749 - 4755 [Proof.] 0. secs (0.u,0.s) Chars 4758 - 4765 [(intros).] 0. secs (0.u,0.s) -Chars 4766 - 4804 [setoid_rewrite~unfold_iter_ktr...] 0.017 secs (0.017u,0.s) +Chars 4766 - 4804 [setoid_rewrite~unfold_iter_ktr...] 0.024 secs (0.02u,0.004s) Chars 4805 - 4809 [(cbn).] 0. secs (0.u,0.s) -Chars 4810 - 4827 [(rewrite~bind_map).] 0.013 secs (0.013u,0.s) -Chars 4831 - 4852 [(rewrite~bind_trigger).] 0.01 secs (0.01u,0.s) +Chars 4810 - 4827 [(rewrite~bind_map).] 0.014 secs (0.013u,0.001s) +Chars 4831 - 4852 [(rewrite~bind_trigger).] 0.015 secs (0.011u,0.003s) Chars 4853 - 4868 [(apply~eqit_Vis).] 0. secs (0.u,0.s) Chars 4869 - 4876 [(intros).] 0. secs (0.u,0.s) Chars 4877 - 4889 [reflexivity.] 0. secs (0.u,0.s) -Chars 4890 - 4894 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4890 - 4894 [Qed.] 0.007 secs (0.006u,0.s) Chars 4896 - 5054 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) Chars 5055 - 5061 [Proof.] 0. secs (0.u,0.s) Chars 5065 - 5087 [(intros~E~Err~R~kcatch).] 0. secs (0.u,0.s) @@ -227,13 +227,13 @@ Chars 5088 - 5100 [coinduction.] 0.003 secs (0.003u,0.s) Chars 5101 - 5108 [(intros).] 0. secs (0.u,0.s) Chars 5111 - 5184 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) Chars 5187 - 5188 [-] 0. secs (0.u,0.s) -Chars 5189 - 5201 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) +Chars 5189 - 5201 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) Chars 5202 - 5227 [(rewrite~throw_prefix_ret).] 0.022 secs (0.021u,0.s) -Chars 5228 - 5250 [(rewrite~try_catch_ret).] 0.02 secs (0.02u,0.s) +Chars 5228 - 5250 [(rewrite~try_catch_ret).] 0.021 secs (0.02u,0.s) Chars 5251 - 5263 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 5266 - 5267 [-] 0. secs (0.u,0.s) Chars 5268 - 5280 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 5281 - 5306 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 5281 - 5306 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) Chars 5307 - 5329 [(rewrite~try_catch_tau).] 0.021 secs (0.021u,0.s) Chars 5330 - 5335 [etau.] 0. secs (0.u,0.s) Chars 5338 - 5339 [-] 0. secs (0.u,0.s) @@ -241,16 +241,16 @@ Chars 5340 - 5351 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 5355 - 5356 [+] 0. secs (0.u,0.s) Chars 5357 - 5368 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 5369 - 5381 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 5382 - 5407 [(rewrite~throw_prefix_exc).] 0.022 secs (0.021u,0.s) -Chars 5408 - 5430 [(rewrite~try_catch_ret).] 0.021 secs (0.02u,0.s) -Chars 5431 - 5443 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 5382 - 5407 [(rewrite~throw_prefix_exc).] 0.022 secs (0.022u,0.s) +Chars 5408 - 5430 [(rewrite~try_catch_ret).] 0.02 secs (0.02u,0.s) +Chars 5431 - 5443 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 5447 - 5448 [+] 0. secs (0.u,0.s) Chars 5449 - 5461 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 5462 - 5486 [(rewrite~throw_prefix_ev).] 0.023 secs (0.022u,0.s) -Chars 5487 - 5508 [(rewrite~try_catch_ev).] 0.021 secs (0.021u,0.s) +Chars 5462 - 5486 [(rewrite~throw_prefix_ev).] 0.024 secs (0.023u,0.s) +Chars 5487 - 5508 [(rewrite~try_catch_ev).] 0.023 secs (0.023u,0.s) Chars 5509 - 5514 [evis.] 0.002 secs (0.002u,0.s) -Chars 5520 - 5542 [(rewrite~try_catch_tau).] 0.018 secs (0.018u,0.s) -Chars 5543 - 5569 [(repeat~rewrite~tau_euttge).] 0.018 secs (0.018u,0.s) +Chars 5520 - 5542 [(rewrite~try_catch_tau).] 0.019 secs (0.019u,0.s) +Chars 5543 - 5569 [(repeat~rewrite~tau_euttge).] 0.019 secs (0.019u,0.s) Chars 5570 - 5580 [(apply~CIH).] 0. secs (0.u,0.s) Chars 5581 - 5585 [Qed.] 0.018 secs (0.018u,0.s) Chars 5587 - 5966 [Lemma~throw_prefix_bind_decomp...] 0.002 secs (0.002u,0.s) @@ -260,71 +260,71 @@ Chars 5992 - 6004 [coinduction.] 0.005 secs (0.005u,0.s) Chars 6005 - 6012 [(intros).] 0. secs (0.u,0.s) Chars 6015 - 6085 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) Chars 6088 - 6089 [-] 0. secs (0.u,0.s) -Chars 6090 - 6102 [(rewrite~Heq).] 0.023 secs (0.022u,0.s) +Chars 6090 - 6102 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) Chars 6103 - 6128 [(rewrite~throw_prefix_ret).] 0.025 secs (0.025u,0.s) Chars 6129 - 6148 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) Chars 6149 - 6154 [eret.] 0. secs (0.u,0.s) Chars 6158 - 6159 [-] 0. secs (0.u,0.s) -Chars 6160 - 6172 [(rewrite~Heq).] 0.024 secs (0.023u,0.s) -Chars 6173 - 6198 [(rewrite~throw_prefix_tau).] 0.025 secs (0.025u,0.s) -Chars 6199 - 6216 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) +Chars 6160 - 6172 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) +Chars 6173 - 6198 [(rewrite~throw_prefix_tau).] 0.024 secs (0.024u,0.s) +Chars 6199 - 6216 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) Chars 6217 - 6222 [etau.] 0. secs (0.u,0.s) Chars 6225 - 6226 [-] 0. secs (0.u,0.s) -Chars 6227 - 6238 [(destruct~e).] 0.004 secs (0.002u,0.s) +Chars 6227 - 6238 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 6243 - 6244 [+] 0. secs (0.u,0.s) -Chars 6245 - 6257 [(rewrite~Heq).] 0.037 secs (0.03u,0.s) +Chars 6245 - 6257 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) Chars 6258 - 6269 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 6270 - 6295 [(rewrite~throw_prefix_exc).] 0.026 secs (0.026u,0.s) -Chars 6296 - 6315 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 6270 - 6295 [(rewrite~throw_prefix_exc).] 0.025 secs (0.025u,0.s) +Chars 6296 - 6315 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) Chars 6316 - 6321 [bcbn.] 0. secs (0.u,0.s) -Chars 6322 - 6327 [evis.] 0.002 secs (0.002u,0.s) -Chars 6335 - 6340 [easy.] 0.005 secs (0.005u,0.s) +Chars 6322 - 6327 [evis.] 0.001 secs (0.001u,0.s) +Chars 6335 - 6340 [easy.] 0.004 secs (0.004u,0.s) Chars 6346 - 6347 [+] 0. secs (0.u,0.s) -Chars 6348 - 6360 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) -Chars 6361 - 6385 [(rewrite~throw_prefix_ev).] 0.025 secs (0.025u,0.s) -Chars 6386 - 6403 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) -Chars 6404 - 6409 [evis.] 0.002 secs (0.002u,0.s) +Chars 6348 - 6360 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 6361 - 6385 [(rewrite~throw_prefix_ev).] 0.024 secs (0.024u,0.s) +Chars 6386 - 6403 [(rewrite~bind_vis).] 0.022 secs (0.022u,0.s) +Chars 6404 - 6409 [evis.] 0.001 secs (0.001u,0.s) Chars 6417 - 6424 [(intros).] 0. secs (0.u,0.s) -Chars 6425 - 6444 [(rewrite~tau_euttge).] 0.01 secs (0.01u,0.s) +Chars 6425 - 6444 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) Chars 6445 - 6455 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6457 - 6461 [Qed.] 0.02 secs (0.02u,0.s) +Chars 6457 - 6461 [Qed.] 0.018 secs (0.018u,0.s) Chars 6463 - 6962 [Lemma~try_catch_to_throw_prefi...] 0.001 secs (0.001u,0.s) Chars 6963 - 6969 [Proof.] 0. secs (0.u,0.s) Chars 6972 - 6979 [(intros).] 0. secs (0.u,0.s) Chars 6980 - 6992 [revert~ttry.] 0. secs (0.u,0.s) -Chars 6993 - 7005 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 6993 - 7005 [coinduction.] 0.002 secs (0.002u,0.s) Chars 7009 - 7016 [(intros).] 0. secs (0.u,0.s) Chars 7017 - 7090 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) Chars 7093 - 7094 [-] 0. secs (0.u,0.s) -Chars 7095 - 7107 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) -Chars 7108 - 7130 [(rewrite~try_catch_ret).] 0.02 secs (0.02u,0.s) -Chars 7131 - 7156 [(rewrite~throw_prefix_ret).] 0.024 secs (0.024u,0.s) -Chars 7157 - 7176 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) +Chars 7095 - 7107 [(rewrite~Heq).] 0.023 secs (0.022u,0.s) +Chars 7108 - 7130 [(rewrite~try_catch_ret).] 0.018 secs (0.018u,0.s) +Chars 7131 - 7156 [(rewrite~throw_prefix_ret).] 0.022 secs (0.022u,0.s) +Chars 7157 - 7176 [(rewrite~bind_ret_l).] 0.02 secs (0.019u,0.s) Chars 7182 - 7187 [eret.] 0. secs (0.u,0.s) Chars 7191 - 7192 [-] 0. secs (0.u,0.s) -Chars 7193 - 7205 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 7206 - 7228 [(rewrite~try_catch_tau).] 0.02 secs (0.02u,0.s) -Chars 7229 - 7254 [(rewrite~throw_prefix_tau).] 0.025 secs (0.025u,0.s) -Chars 7255 - 7272 [(rewrite~bind_tau).] 0.023 secs (0.022u,0.s) +Chars 7193 - 7205 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) +Chars 7206 - 7228 [(rewrite~try_catch_tau).] 0.018 secs (0.018u,0.s) +Chars 7229 - 7254 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 7255 - 7272 [(rewrite~bind_tau).] 0.022 secs (0.021u,0.s) Chars 7277 - 7282 [etau.] 0. secs (0.u,0.s) Chars 7286 - 7287 [-] 0. secs (0.u,0.s) Chars 7288 - 7299 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 7304 - 7305 [+] 0. secs (0.u,0.s) Chars 7306 - 7317 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 7318 - 7330 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) -Chars 7331 - 7353 [(rewrite~try_catch_exc).] 0.02 secs (0.02u,0.s) -Chars 7354 - 7379 [(rewrite~throw_prefix_exc).] 0.024 secs (0.024u,0.s) -Chars 7380 - 7399 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 7318 - 7330 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) +Chars 7331 - 7353 [(rewrite~try_catch_exc).] 0.019 secs (0.019u,0.s) +Chars 7354 - 7379 [(rewrite~throw_prefix_exc).] 0.023 secs (0.022u,0.s) +Chars 7380 - 7399 [(rewrite~bind_ret_l).] 0.021 secs (0.02u,0.s) Chars 7406 - 7418 [reflexivity.] 0.002 secs (0.002u,0.s) Chars 7424 - 7425 [+] 0. secs (0.u,0.s) -Chars 7426 - 7438 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 7426 - 7438 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) Chars 7439 - 7460 [(rewrite~try_catch_ev).] 0.02 secs (0.02u,0.s) -Chars 7461 - 7485 [(rewrite~throw_prefix_ev).] 0.025 secs (0.025u,0.s) -Chars 7486 - 7503 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) -Chars 7504 - 7530 [setoid_rewrite~tau_euttge.] 0.024 secs (0.024u,0.s) +Chars 7461 - 7485 [(rewrite~throw_prefix_ev).] 0.023 secs (0.023u,0.s) +Chars 7486 - 7503 [(rewrite~bind_vis).] 0.022 secs (0.021u,0.s) +Chars 7504 - 7530 [setoid_rewrite~tau_euttge.] 0.022 secs (0.022u,0.s) Chars 7537 - 7542 [evis.] 0. secs (0.u,0.s) -Chars 7544 - 7548 [Qed.] 0.02 secs (0.02u,0.s) -Chars 7550 - 7817 [Lemma~throw_prefix_of_try_catc...] 0.001 secs (0.001u,0.s) +Chars 7544 - 7548 [Qed.] 0.019 secs (0.019u,0.s) +Chars 7550 - 7817 [Lemma~throw_prefix_of_try_catc...] 0. secs (0.u,0.s) Chars 7818 - 7824 [Proof.] 0. secs (0.u,0.s) Chars 7827 - 7834 [(intros).] 0. secs (0.u,0.s) Chars 7835 - 7847 [revert~ttry.] 0. secs (0.u,0.s) @@ -332,34 +332,34 @@ Chars 7848 - 7860 [coinduction.] 0.003 secs (0.003u,0.s) Chars 7864 - 7871 [(intros).] 0. secs (0.u,0.s) Chars 7872 - 7945 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) Chars 7948 - 7949 [-] 0. secs (0.u,0.s) -Chars 7950 - 7962 [(rewrite~Heq).] 0.026 secs (0.026u,0.s) -Chars 7963 - 7982 [(rewrite~bind_ret_l).] 0.026 secs (0.026u,0.s) -Chars 7983 - 8012 [(repeat~rewrite~try_catch_ret).] 0.046 secs (0.046u,0.s) -Chars 8013 - 8038 [(rewrite~throw_prefix_ret).] 0.019 secs (0.019u,0.s) +Chars 7950 - 7962 [(rewrite~Heq).] 0.024 secs (0.023u,0.s) +Chars 7963 - 7982 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 7983 - 8012 [(repeat~rewrite~try_catch_ret).] 0.042 secs (0.042u,0.s) +Chars 8013 - 8038 [(rewrite~throw_prefix_ret).] 0.018 secs (0.018u,0.s) Chars 8043 - 8048 [eret.] 0. secs (0.u,0.s) Chars 8052 - 8053 [-] 0. secs (0.u,0.s) -Chars 8054 - 8066 [(rewrite~Heq).] 0.026 secs (0.025u,0.s) -Chars 8067 - 8084 [(rewrite~bind_tau).] 0.025 secs (0.025u,0.s) -Chars 8085 - 8114 [(repeat~rewrite~try_catch_tau).] 0.049 secs (0.048u,0.s) -Chars 8115 - 8140 [(rewrite~throw_prefix_tau).] 0.021 secs (0.02u,0.s) +Chars 8054 - 8066 [(rewrite~Heq).] 0.025 secs (0.024u,0.s) +Chars 8067 - 8084 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) +Chars 8085 - 8114 [(repeat~rewrite~try_catch_tau).] 0.044 secs (0.044u,0.s) +Chars 8115 - 8140 [(rewrite~throw_prefix_tau).] 0.019 secs (0.019u,0.s) Chars 8145 - 8150 [etau.] 0. secs (0.u,0.s) Chars 8154 - 8155 [-] 0. secs (0.u,0.s) Chars 8156 - 8167 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 8172 - 8173 [+] 0. secs (0.u,0.s) Chars 8174 - 8185 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 8186 - 8198 [(rewrite~Heq).] 0.027 secs (0.027u,0.s) -Chars 8199 - 8216 [(rewrite~bind_vis).] 0.027 secs (0.027u,0.s) -Chars 8217 - 8246 [(repeat~rewrite~try_catch_exc).] 0.046 secs (0.045u,0.s) +Chars 8186 - 8198 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 8199 - 8216 [(rewrite~bind_vis).] 0.026 secs (0.026u,0.s) +Chars 8217 - 8246 [(repeat~rewrite~try_catch_exc).] 0.046 secs (0.046u,0.s) Chars 8253 - 8265 [reflexivity.] 0.002 secs (0.002u,0.s) Chars 8271 - 8272 [+] 0. secs (0.u,0.s) -Chars 8273 - 8285 [(rewrite~Heq).] 0.026 secs (0.026u,0.s) -Chars 8286 - 8303 [(rewrite~bind_vis).] 0.027 secs (0.027u,0.s) -Chars 8304 - 8332 [(repeat~rewrite~try_catch_ev).] 0.049 secs (0.049u,0.s) -Chars 8333 - 8357 [(rewrite~throw_prefix_ev).] 0.023 secs (0.023u,0.s) -Chars 8364 - 8396 [setoid_rewrite~throw_prefix_tau.] 0.113 secs (0.112u,0.s) -Chars 8403 - 8436 [(repeat~setoid_rewrite~tau_eut...] 0.063 secs (0.062u,0.s) +Chars 8273 - 8285 [(rewrite~Heq).] 0.029 secs (0.028u,0.s) +Chars 8286 - 8303 [(rewrite~bind_vis).] 0.028 secs (0.027u,0.s) +Chars 8304 - 8332 [(repeat~rewrite~try_catch_ev).] 0.051 secs (0.05u,0.s) +Chars 8333 - 8357 [(rewrite~throw_prefix_ev).] 0.022 secs (0.022u,0.s) +Chars 8364 - 8396 [setoid_rewrite~throw_prefix_tau.] 0.112 secs (0.11u,0.001s) +Chars 8403 - 8436 [(repeat~setoid_rewrite~tau_eut...] 0.06 secs (0.06u,0.s) Chars 8443 - 8448 [evis.] 0. secs (0.u,0.s) -Chars 8450 - 8454 [Qed.] 0.027 secs (0.026u,0.s) +Chars 8450 - 8454 [Qed.] 0.025 secs (0.024u,0.s) Chars 8456 - 8820 [Lemma~throw_prefix_bind~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) Chars 8830 - 8837 [(intros).] 0. secs (0.u,0.s) @@ -368,112 +368,112 @@ Chars 8848 - 8860 [coinduction.] 0.003 secs (0.003u,0.s) Chars 8864 - 8871 [(intros).] 0. secs (0.u,0.s) Chars 8872 - 8942 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) Chars 8945 - 8946 [-] 0. secs (0.u,0.s) -Chars 8947 - 8959 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) -Chars 8960 - 8985 [(rewrite~throw_prefix_ret).] 0.029 secs (0.029u,0.s) -Chars 8986 - 9012 [(repeat~rewrite~bind_ret_l).] 0.051 secs (0.051u,0.s) -Chars 9017 - 9029 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 8947 - 8959 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 8960 - 8985 [(rewrite~throw_prefix_ret).] 0.027 secs (0.026u,0.s) +Chars 8986 - 9012 [(repeat~rewrite~bind_ret_l).] 0.046 secs (0.045u,0.s) +Chars 9017 - 9029 [reflexivity.] 0.002 secs (0.001u,0.s) Chars 9033 - 9034 [-] 0. secs (0.u,0.s) -Chars 9035 - 9047 [(rewrite~Heq).] 0.025 secs (0.025u,0.s) -Chars 9048 - 9073 [(rewrite~throw_prefix_tau).] 0.028 secs (0.027u,0.s) -Chars 9074 - 9098 [(repeat~rewrite~bind_tau).] 0.051 secs (0.051u,0.s) -Chars 9099 - 9124 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) +Chars 9035 - 9047 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 9048 - 9073 [(rewrite~throw_prefix_tau).] 0.026 secs (0.026u,0.s) +Chars 9074 - 9098 [(repeat~rewrite~bind_tau).] 0.048 secs (0.047u,0.s) +Chars 9099 - 9124 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) Chars 9129 - 9134 [etau.] 0. secs (0.u,0.s) Chars 9138 - 9139 [-] 0. secs (0.u,0.s) Chars 9140 - 9151 [(destruct~e).] 0.001 secs (0.001u,0.s) Chars 9156 - 9157 [+] 0. secs (0.u,0.s) Chars 9158 - 9169 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 9170 - 9182 [(rewrite~Heq).] 0.028 secs (0.027u,0.s) -Chars 9183 - 9208 [(rewrite~throw_prefix_exc).] 0.029 secs (0.029u,0.s) -Chars 9209 - 9226 [(rewrite~bind_vis).] 0.023 secs (0.023u,0.s) -Chars 9227 - 9252 [(rewrite~throw_prefix_exc).] 0.022 secs (0.022u,0.s) -Chars 9259 - 9278 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 9170 - 9182 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) +Chars 9183 - 9208 [(rewrite~throw_prefix_exc).] 0.026 secs (0.025u,0.s) +Chars 9209 - 9226 [(rewrite~bind_vis).] 0.021 secs (0.021u,0.s) +Chars 9227 - 9252 [(rewrite~throw_prefix_exc).] 0.02 secs (0.02u,0.s) +Chars 9259 - 9278 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) Chars 9279 - 9284 [eret.] 0. secs (0.u,0.s) Chars 9290 - 9291 [+] 0. secs (0.u,0.s) -Chars 9292 - 9304 [(rewrite~Heq).] 0.026 secs (0.026u,0.s) -Chars 9305 - 9329 [(rewrite~throw_prefix_ev).] 0.029 secs (0.029u,0.s) -Chars 9330 - 9354 [(repeat~rewrite~bind_vis).] 0.053 secs (0.053u,0.s) -Chars 9355 - 9379 [(rewrite~throw_prefix_ev).] 0.023 secs (0.023u,0.s) +Chars 9292 - 9304 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) +Chars 9305 - 9329 [(rewrite~throw_prefix_ev).] 0.026 secs (0.026u,0.s) +Chars 9330 - 9354 [(repeat~rewrite~bind_vis).] 0.052 secs (0.051u,0.s) +Chars 9355 - 9379 [(rewrite~throw_prefix_ev).] 0.025 secs (0.024u,0.s) Chars 9386 - 9391 [evis.] 0.002 secs (0.002u,0.s) -Chars 9392 - 9409 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 9392 - 9409 [(rewrite~bind_tau).] 0.023 secs (0.022u,0.s) Chars 9410 - 9415 [step.] 0.003 secs (0.003u,0.s) Chars 9416 - 9421 [taus.] 0. secs (0.u,0.s) Chars 9422 - 9432 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9435 - 9439 [Qed.] 0.025 secs (0.025u,0.s) -Chars 9441 - 10039 [Lemma~throw_prefix_iter~:~~~fo...] 0.004 secs (0.004u,0.s) +Chars 9435 - 9439 [Qed.] 0.032 secs (0.029u,0.s) +Chars 9441 - 10039 [Lemma~throw_prefix_iter~:~~~fo...] 0.005 secs (0.004u,0.s) Chars 10040 - 10046 [Proof.] 0. secs (0.u,0.s) Chars 10049 - 10066 [(intros~E~Err~A~B).] 0. secs (0.u,0.s) -Chars 10067 - 10079 [coinduction.] 0.004 secs (0.004u,0.s) +Chars 10067 - 10079 [coinduction.] 0.005 secs (0.004u,0.s) Chars 10080 - 10087 [(intros).] 0. secs (0.u,0.s) -Chars 10090 - 10130 [setoid_rewrite~unfold_iter_ktr...] 0.064 secs (0.064u,0.s) -Chars 10133 - 10214 [(destruct~(observe~(body~init)...] 0.004 secs (0.004u,0.s) +Chars 10090 - 10130 [setoid_rewrite~unfold_iter_ktr...] 0.066 secs (0.064u,0.001s) +Chars 10133 - 10214 [(destruct~(observe~(body~init)...] 0.005 secs (0.005u,0.s) Chars 10217 - 10218 [-] 0. secs (0.u,0.s) Chars 10219 - 10236 [(rewrite~Heq~~at~1).] 0.03 secs (0.029u,0.s) -Chars 10237 - 10256 [(rewrite~bind_ret_l).] 0.028 secs (0.028u,0.s) -Chars 10257 - 10282 [setoid_rewrite~bind_bind.] 0.056 secs (0.056u,0.s) -Chars 10288 - 10305 [(rewrite~Heq~~at~1).] 0.035 secs (0.035u,0.s) -Chars 10306 - 10331 [(rewrite~throw_prefix_ret).] 0.036 secs (0.035u,0.s) -Chars 10332 - 10351 [(rewrite~bind_ret_l).] 0.033 secs (0.033u,0.s) -Chars 10356 - 10387 [(destruct~r;~rewrite~bind_ret_l).] 0.062 secs (0.062u,0.s) +Chars 10237 - 10256 [(rewrite~bind_ret_l).] 0.031 secs (0.03u,0.s) +Chars 10257 - 10282 [setoid_rewrite~bind_bind.] 0.056 secs (0.055u,0.s) +Chars 10288 - 10305 [(rewrite~Heq~~at~1).] 0.035 secs (0.034u,0.s) +Chars 10306 - 10331 [(rewrite~throw_prefix_ret).] 0.035 secs (0.034u,0.s) +Chars 10332 - 10351 [(rewrite~bind_ret_l).] 0.032 secs (0.031u,0.s) +Chars 10356 - 10387 [(destruct~r;~rewrite~bind_ret_l).] 0.064 secs (0.063u,0.001s) Chars 10392 - 10393 [+] 0. secs (0.u,0.s) -Chars 10394 - 10419 [(rewrite~throw_prefix_tau).] 0.024 secs (0.024u,0.s) +Chars 10394 - 10419 [(rewrite~throw_prefix_tau).] 0.026 secs (0.025u,0.s) Chars 10420 - 10425 [etau.] 0. secs (0.u,0.s) Chars 10431 - 10432 [+] 0. secs (0.u,0.s) -Chars 10433 - 10458 [(rewrite~throw_prefix_ret).] 0.02 secs (0.02u,0.s) +Chars 10433 - 10458 [(rewrite~throw_prefix_ret).] 0.021 secs (0.021u,0.s) Chars 10459 - 10471 [reflexivity.] 0.002 secs (0.002u,0.s) Chars 10475 - 10476 [-] 0. secs (0.u,0.s) Chars 10477 - 10494 [(rewrite~Heq~~at~1).] 0.031 secs (0.031u,0.s) -Chars 10495 - 10520 [setoid_rewrite~bind_bind.] 0.059 secs (0.059u,0.s) +Chars 10495 - 10520 [setoid_rewrite~bind_bind.] 0.062 secs (0.061u,0.s) Chars 10521 - 10538 [(rewrite~Heq~~at~1).] 0.036 secs (0.036u,0.s) -Chars 10543 - 10568 [(rewrite~throw_prefix_tau).] 0.036 secs (0.035u,0.s) -Chars 10569 - 10593 [(repeat~rewrite~bind_tau).] 0.07 secs (0.069u,0.s) -Chars 10594 - 10619 [(rewrite~throw_prefix_tau).] 0.028 secs (0.028u,0.s) -Chars 10624 - 10629 [etau.] 0.003 secs (0.003u,0.s) -Chars 10630 - 10668 [setoid_rewrite~throw_prefix_bi...] 0.065 secs (0.065u,0.s) +Chars 10543 - 10568 [(rewrite~throw_prefix_tau).] 0.036 secs (0.036u,0.s) +Chars 10569 - 10593 [(repeat~rewrite~bind_tau).] 0.07 secs (0.068u,0.001s) +Chars 10594 - 10619 [(rewrite~throw_prefix_tau).] 0.029 secs (0.029u,0.s) +Chars 10624 - 10629 [etau.] 0.003 secs (0.002u,0.s) +Chars 10630 - 10668 [setoid_rewrite~throw_prefix_bi...] 0.064 secs (0.063u,0.s) Chars 10669 - 10690 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) Chars 10696 - 10728 [(destruct~u2~as~[[a|~b]|~e]).] 0.001 secs (0.001u,0.s) Chars 10733 - 10734 [+] 0. secs (0.u,0.s) -Chars 10735 - 10754 [(rewrite~bind_ret_l).] 0.026 secs (0.026u,0.s) -Chars 10755 - 10780 [(rewrite~throw_prefix_tau).] 0.02 secs (0.02u,0.s) +Chars 10735 - 10754 [(rewrite~bind_ret_l).] 0.025 secs (0.024u,0.s) +Chars 10755 - 10780 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) Chars 10781 - 10792 [(step;~etau).] 0.003 secs (0.003u,0.s) Chars 10798 - 10799 [+] 0. secs (0.u,0.s) -Chars 10800 - 10819 [(rewrite~bind_ret_l).] 0.025 secs (0.024u,0.s) -Chars 10820 - 10845 [(rewrite~throw_prefix_ret).] 0.018 secs (0.018u,0.s) +Chars 10800 - 10819 [(rewrite~bind_ret_l).] 0.026 secs (0.025u,0.s) +Chars 10820 - 10845 [(rewrite~throw_prefix_ret).] 0.017 secs (0.017u,0.s) Chars 10846 - 10858 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 10864 - 10865 [+] 0. secs (0.u,0.s) -Chars 10866 - 10885 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 10866 - 10885 [(rewrite~bind_ret_l).] 0.026 secs (0.025u,0.s) Chars 10886 - 10897 [(step;~eret).] 0.003 secs (0.003u,0.s) Chars 10901 - 10902 [-] 0. secs (0.u,0.s) -Chars 10903 - 10920 [(rewrite~Heq~~at~1).] 0.031 secs (0.03u,0.s) -Chars 10921 - 10946 [setoid_rewrite~bind_bind.] 0.063 secs (0.062u,0.s) +Chars 10903 - 10920 [(rewrite~Heq~~at~1).] 0.033 secs (0.032u,0.s) +Chars 10921 - 10946 [setoid_rewrite~bind_bind.] 0.062 secs (0.061u,0.s) Chars 10947 - 10964 [(rewrite~Heq~~at~1).] 0.037 secs (0.036u,0.s) Chars 10969 - 10980 [(destruct~e).] 0.002 secs (0.002u,0.s) Chars 10985 - 10986 [+] 0. secs (0.u,0.s) Chars 10987 - 10998 [(destruct~e).] 0.002 secs (0.002u,0.s) -Chars 10999 - 11016 [(rewrite~bind_vis).] 0.031 secs (0.031u,0.s) -Chars 11017 - 11042 [(rewrite~throw_prefix_exc).] 0.029 secs (0.029u,0.s) -Chars 11049 - 11081 [setoid_rewrite~throw_prefix_exc.] 0.106 secs (0.106u,0.s) -Chars 11082 - 11108 [(repeat~rewrite~bind_ret_l).] 0.065 secs (0.064u,0.s) -Chars 11115 - 11127 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 10999 - 11016 [(rewrite~bind_vis).] 0.031 secs (0.03u,0.s) +Chars 11017 - 11042 [(rewrite~throw_prefix_exc).] 0.028 secs (0.027u,0.s) +Chars 11049 - 11081 [setoid_rewrite~throw_prefix_exc.] 0.102 secs (0.101u,0.001s) +Chars 11082 - 11108 [(repeat~rewrite~bind_ret_l).] 0.061 secs (0.06u,0.s) +Chars 11115 - 11127 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 11133 - 11134 [+] 0. secs (0.u,0.s) -Chars 11135 - 11152 [(rewrite~bind_vis).] 0.03 secs (0.029u,0.s) -Chars 11153 - 11177 [(rewrite~throw_prefix_ev).] 0.031 secs (0.03u,0.s) -Chars 11178 - 11209 [setoid_rewrite~throw_prefix_ev.] 0.12 secs (0.119u,0.s) -Chars 11216 - 11233 [(rewrite~bind_vis).] 0.036 secs (0.035u,0.s) -Chars 11234 - 11258 [setoid_rewrite~bind_tau.] 0.068 secs (0.068u,0.s) +Chars 11135 - 11152 [(rewrite~bind_vis).] 0.028 secs (0.028u,0.s) +Chars 11153 - 11177 [(rewrite~throw_prefix_ev).] 0.028 secs (0.027u,0.s) +Chars 11178 - 11209 [setoid_rewrite~throw_prefix_ev.] 0.113 secs (0.111u,0.001s) +Chars 11216 - 11233 [(rewrite~bind_vis).] 0.033 secs (0.032u,0.s) +Chars 11234 - 11258 [setoid_rewrite~bind_tau.] 0.065 secs (0.065u,0.s) Chars 11259 - 11264 [evis.] 0.002 secs (0.002u,0.s) -Chars 11265 - 11276 [(step;~etau).] 0.006 secs (0.006u,0.s) -Chars 11284 - 11310 [(rewrite~throw_prefix_bind).] 0.023 secs (0.022u,0.s) -Chars 11311 - 11332 [(ebind;~intros;~subst).] 0.01 secs (0.01u,0.s) +Chars 11265 - 11276 [(step;~etau).] 0.005 secs (0.005u,0.s) +Chars 11284 - 11310 [(rewrite~throw_prefix_bind).] 0.02 secs (0.02u,0.s) +Chars 11311 - 11332 [(ebind;~intros;~subst).] 0.01 secs (0.009u,0.s) Chars 11340 - 11373 [(destruct~u2~as~[[a|~b]|~e']).] 0.001 secs (0.001u,0.s) Chars 11380 - 11381 [*] 0. secs (0.u,0.s) -Chars 11382 - 11401 [(rewrite~bind_ret_l).] 0.026 secs (0.026u,0.s) -Chars 11402 - 11427 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) -Chars 11428 - 11439 [(step;~etau).] 0.004 secs (0.004u,0.s) +Chars 11382 - 11401 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) +Chars 11402 - 11427 [(rewrite~throw_prefix_tau).] 0.02 secs (0.02u,0.s) +Chars 11428 - 11439 [(step;~etau).] 0.003 secs (0.003u,0.s) Chars 11447 - 11448 [*] 0. secs (0.u,0.s) -Chars 11449 - 11468 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) -Chars 11469 - 11494 [(rewrite~throw_prefix_ret).] 0.017 secs (0.017u,0.s) +Chars 11449 - 11468 [(rewrite~bind_ret_l).] 0.024 secs (0.023u,0.s) +Chars 11469 - 11494 [(rewrite~throw_prefix_ret).] 0.016 secs (0.016u,0.s) Chars 11503 - 11515 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 11523 - 11524 [*] 0. secs (0.u,0.s) -Chars 11525 - 11544 [(rewrite~bind_ret_l).] 0.024 secs (0.024u,0.s) +Chars 11525 - 11544 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) Chars 11545 - 11557 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11559 - 11563 [Qed.] 0.095 secs (0.094u,0.s) +Chars 11559 - 11563 [Qed.] 0.086 secs (0.084u,0.001s) diff --git a/theories/Events/FailFacts.v.timing b/theories/Events/FailFacts.v.timing index 21d339b1..d0a646d9 100644 --- a/theories/Events/FailFacts.v.timing +++ b/theories/Events/FailFacts.v.timing @@ -1,6 +1,6 @@ -Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) Chars 97 - 139 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 141 - 469 [From~ITree~Require~Import~Basi...] 0.087 secs (0.072u,0.014s) +Chars 141 - 469 [From~ITree~Require~Import~Basi...] 0.091 secs (0.074u,0.016s) Chars 471 - 493 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 494 - 528 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 529 - 558 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) @@ -9,7 +9,7 @@ Chars 576 - 590 [Section~FailT.] 0. secs (0.u,0.s) Chars 594 - 680 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) Chars 684 - 763 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) Chars 767 - 968 [#[global]~Instance~failT_fun~:...] 0. secs (0.u,0.s) -Chars 972 - 1218 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) +Chars 972 - 1218 [#[global]~Instance~failT_monad...] 0.001 secs (0.u,0.s) Chars 1222 - 1854 [#[global]~Instance~failT_iter~...] 0.001 secs (0.001u,0.s) Chars 1856 - 1866 [End~FailT.] 0. secs (0.u,0.s) Chars 1868 - 1886 [Section~FailTLaws.] 0. secs (0.u,0.s) @@ -17,7 +17,7 @@ Chars 1890 - 1981 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) Chars 1985 - 2056 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) Chars 2059 - 2065 [Proof.] 0. secs (0.u,0.s) Chars 2070 - 2091 [(apply~Reflexive_eqit).] 0. secs (0.u,0.s) -Chars 2096 - 2112 [(intros~[];~auto).] 0.001 secs (0.001u,0.s) +Chars 2096 - 2112 [(intros~[];~auto).] 0. secs (0.u,0.s) Chars 2115 - 2119 [Qed.] 0. secs (0.u,0.s) Chars 2123 - 2194 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) Chars 2197 - 2203 [Proof.] 0. secs (0.u,0.s) @@ -51,8 +51,8 @@ Chars 2959 - 2960 [+] 0. secs (0.u,0.s) Chars 2961 - 2993 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) Chars 2998 - 2999 [-] 0. secs (0.u,0.s) Chars 3000 - 3018 [(repeat~intro;~cbn).] 0. secs (0.u,0.s) -Chars 3025 - 3054 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3061 - 3114 [(intros~[]~[]~REL;~cbn~in~*;~s...] 0.039 secs (0.038u,0.s) +Chars 3025 - 3054 [(eapply~eutt_bind_eutt;~eauto).] 0.003 secs (0.002u,0.s) +Chars 3061 - 3114 [(intros~[]~[]~REL;~cbn~in~*;~s...] 0.039 secs (0.038u,0.001s) Chars 3121 - 3122 [+] 0. secs (0.u,0.s) Chars 3123 - 3132 [(apply~H0).] 0. secs (0.u,0.s) Chars 3139 - 3140 [+] 0. secs (0.u,0.s) @@ -61,42 +61,42 @@ Chars 3156 - 3160 [Qed.] 0.004 secs (0.004u,0.s) Chars 3164 - 3178 [End~FailTLaws.] 0. secs (0.u,0.s) Chars 3330 - 3494 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.001u,0.s) Chars 3495 - 3535 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) -Chars 3578 - 3826 [Definition~_interp_fail~{E}~{F...] 0.002 secs (0.002u,0.s) +Chars 3578 - 3826 [Definition~_interp_fail~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 3849 - 3987 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) Chars 3988 - 3994 [Proof.] 0. secs (0.u,0.s) Chars 3997 - 4023 [(unfold~interp_fail,~interp).] 0. secs (0.u,0.s) Chars 4024 - 4085 [(unfold~Basics.iter,~failT_ite...] 0. secs (0.u,0.s) Chars 4088 - 4108 [(rewrite~unfold_iter).] 0.006 secs (0.006u,0.s) Chars 4109 - 4113 [(cbn).] 0. secs (0.u,0.s) -Chars 4116 - 4137 [(destruct~(observe~t)).] 0.002 secs (0.002u,0.s) -Chars 4140 - 4214 [(cbn;~repeat~(rewrite~?bind_bi...] 0.044 secs (0.034u,0.008s) -Chars 4217 - 4291 [(cbn;~repeat~(rewrite~?bind_bi...] 0.04 secs (0.039u,0.001s) -Chars 4294 - 4368 [(cbn;~repeat~(rewrite~?bind_bi...] 0.046 secs (0.045u,0.s) +Chars 4116 - 4137 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) +Chars 4140 - 4214 [(cbn;~repeat~(rewrite~?bind_bi...] 0.041 secs (0.032u,0.008s) +Chars 4217 - 4291 [(cbn;~repeat~(rewrite~?bind_bi...] 0.038 secs (0.036u,0.001s) +Chars 4294 - 4368 [(cbn;~repeat~(rewrite~?bind_bi...] 0.048 secs (0.046u,0.001s) Chars 4371 - 4444 [(apply~eq_itree_bind~with~(UU~...] 0.001 secs (0.001u,0.s) Chars 4448 - 4467 [(destruct~x~as~[x|~]).] 0. secs (0.u,0.s) Chars 4470 - 4471 [-] 0. secs (0.u,0.s) Chars 4472 - 4504 [(rewrite~bind_ret_l;~reflexivi...] 0.008 secs (0.008u,0.s) Chars 4507 - 4508 [-] 0. secs (0.u,0.s) -Chars 4509 - 4541 [(rewrite~bind_ret_l;~reflexivi...] 0.009 secs (0.007u,0.s) -Chars 4542 - 4546 [Qed.] 0.033 secs (0.026u,0.s) -Chars 4548 - 4722 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 4509 - 4541 [(rewrite~bind_ret_l;~reflexivi...] 0.007 secs (0.007u,0.s) +Chars 4542 - 4546 [Qed.] 0.022 secs (0.021u,0.s) +Chars 4548 - 4722 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) Chars 4723 - 4729 [Proof.] 0. secs (0.u,0.s) Chars 4732 - 4743 [(repeat~red).] 0. secs (0.u,0.s) Chars 4747 - 4759 [coinduction.] 0.002 secs (0.002u,0.s) Chars 4763 - 4777 [(intros~s~t~EQ).] 0. secs (0.u,0.s) -Chars 4780 - 4809 [(rewrite~2!unfold_interp_fail).] 0.036 secs (0.035u,0.s) +Chars 4780 - 4809 [(rewrite~2!unfold_interp_fail).] 0.034 secs (0.033u,0.s) Chars 4812 - 4823 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4827 - 4887 [(destruct~EQ;~cbn;~subst;~try~...] 0.009 secs (0.009u,0.s) +Chars 4827 - 4887 [(destruct~EQ;~cbn;~subst;~try~...] 0.009 secs (0.008u,0.s) Chars 4891 - 4898 [to_mon.] 0. secs (0.u,0.s) -Chars 4899 - 4920 [(ebind;~intros;~subst).] 0.028 secs (0.028u,0.s) +Chars 4899 - 4920 [(ebind;~intros;~subst).] 0.026 secs (0.025u,0.s) Chars 4921 - 4933 [(destruct~u2).] 0. secs (0.u,0.s) -Chars 4937 - 4942 [etau.] 0.005 secs (0.005u,0.s) +Chars 4937 - 4942 [etau.] 0.006 secs (0.006u,0.s) Chars 4943 - 4948 [eret.] 0. secs (0.u,0.s) -Chars 4950 - 4954 [Qed.] 0.009 secs (0.009u,0.s) -Chars 5055 - 5200 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) +Chars 4950 - 4954 [Qed.] 0.01 secs (0.009u,0.s) +Chars 5055 - 5200 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) Chars 5201 - 5207 [Proof.] 0. secs (0.u,0.s) Chars 5210 - 5223 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5226 - 5248 [(rewrite~option_rel_eq).] 0.002 secs (0.002u,0.s) +Chars 5226 - 5248 [(rewrite~option_rel_eq).] 0.003 secs (0.003u,0.s) Chars 5251 - 5284 [(apply~interp_fail_eq_itree;~a...] 0. secs (0.u,0.s) Chars 5285 - 5289 [Qed.] 0.001 secs (0.001u,0.s) Chars 5291 - 5434 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) @@ -104,25 +104,25 @@ Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) Chars 5444 - 5455 [(repeat~red).] 0. secs (0.u,0.s) Chars 5459 - 5471 [coinduction.] 0.002 secs (0.002u,0.s) Chars 5475 - 5489 [(intros~s~t~EQ).] 0. secs (0.u,0.s) -Chars 5492 - 5521 [(rewrite~2!unfold_interp_fail).] 0.034 secs (0.034u,0.s) +Chars 5492 - 5521 [(rewrite~2!unfold_interp_fail).] 0.033 secs (0.033u,0.s) Chars 5524 - 5535 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 5539 - 5591 [(induction~EQ;~intros;~bcbn;~s...] 0.04 secs (0.04u,0.s) +Chars 5539 - 5591 [(induction~EQ;~intros;~bcbn;~s...] 0.039 secs (0.038u,0.s) Chars 5595 - 5596 [-] 0. secs (0.u,0.s) Chars 5597 - 5602 [eret.] 0. secs (0.u,0.s) Chars 5606 - 5607 [-] 0. secs (0.u,0.s) Chars 5608 - 5613 [etau.] 0.002 secs (0.002u,0.s) Chars 5617 - 5618 [-] 0. secs (0.u,0.s) -Chars 5619 - 5640 [(ebind;~intros;~subst).] 0.024 secs (0.023u,0.s) +Chars 5619 - 5640 [(ebind;~intros;~subst).] 0.024 secs (0.024u,0.s) Chars 5641 - 5685 [(destruct~u2;~econstructor;~ea...] 0.005 secs (0.005u,0.s) Chars 5690 - 5691 [-] 0. secs (0.u,0.s) -Chars 5692 - 5738 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) +Chars 5692 - 5738 [(rewrite~tau_euttge,~unfold_in...] 0.022 secs (0.021u,0.s) Chars 5741 - 5742 [-] 0. secs (0.u,0.s) -Chars 5743 - 5789 [(rewrite~tau_euttge,~unfold_in...] 0.025 secs (0.025u,0.s) -Chars 5790 - 5794 [Qed.] 0.013 secs (0.013u,0.s) -Chars 5895 - 6028 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) +Chars 5743 - 5789 [(rewrite~tau_euttge,~unfold_in...] 0.022 secs (0.022u,0.s) +Chars 5790 - 5794 [Qed.] 0.013 secs (0.012u,0.s) +Chars 5895 - 6028 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) Chars 6029 - 6035 [Proof.] 0. secs (0.u,0.s) Chars 6038 - 6051 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 6054 - 6076 [(rewrite~option_rel_eq).] 0.003 secs (0.003u,0.s) +Chars 6054 - 6076 [(rewrite~option_rel_eq).] 0.002 secs (0.002u,0.s) Chars 6079 - 6108 [(apply~interp_fail_eutt;~auto).] 0. secs (0.u,0.s) Chars 6109 - 6113 [Qed.] 0.001 secs (0.001u,0.s) Chars 6115 - 6250 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) @@ -135,7 +135,7 @@ Chars 6691 - 6697 [Proof.] 0. secs (0.u,0.s) Chars 6700 - 6727 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) Chars 6728 - 6740 [reflexivity.] 0. secs (0.u,0.s) Chars 6741 - 6745 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7182 - 7300 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) +Chars 7182 - 7300 [Lemma~interp_fail_Ret~:~~~fora...] 0.001 secs (0.u,0.s) Chars 7301 - 7307 [Proof.] 0. secs (0.u,0.s) Chars 7310 - 7358 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) Chars 7359 - 7363 [Qed.] 0.001 secs (0.001u,0.s) @@ -151,51 +151,51 @@ Chars 7771 - 7858 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.002u,0.s) Chars 7861 - 7881 [(eapply~eutt_eq_bind).] 0. secs (0.u,0.s) Chars 7884 - 7945 [(intros~[];~try~reflexivity;~r...] 0.004 secs (0.004u,0.s) Chars 7948 - 7960 [reflexivity.] 0. secs (0.u,0.s) -Chars 7961 - 7965 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7961 - 7965 [Qed.] 0.003 secs (0.003u,0.s) Chars 7981 - 8269 [Lemma~interp_fail_bind~:~~~for...] 0.001 secs (0.001u,0.s) Chars 8270 - 8276 [Proof.] 0. secs (0.u,0.s) -Chars 8279 - 8315 [(intros~X~Y~E~F;~coinduction;~...] 0.003 secs (0.003u,0.s) -Chars 8318 - 8338 [(rewrite~unfold_bind).] 0.02 secs (0.02u,0.s) -Chars 8341 - 8374 [(rewrite~(unfold_interp_fail~h...] 0.022 secs (0.022u,0.s) +Chars 8279 - 8315 [(intros~X~Y~E~F;~coinduction;~...] 0.002 secs (0.002u,0.s) +Chars 8318 - 8338 [(rewrite~unfold_bind).] 0.019 secs (0.019u,0.s) +Chars 8341 - 8374 [(rewrite~(unfold_interp_fail~h...] 0.022 secs (0.021u,0.s) Chars 8377 - 8411 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) Chars 8414 - 8415 [-] 0. secs (0.u,0.s) -Chars 8416 - 8435 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 8416 - 8435 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) Chars 8436 - 8448 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8452 - 8453 [-] 0. secs (0.u,0.s) Chars 8454 - 8459 [taus.] 0. secs (0.u,0.s) Chars 8460 - 8470 [(apply~CIH).] 0. secs (0.u,0.s) Chars 8474 - 8475 [-] 0. secs (0.u,0.s) -Chars 8476 - 8511 [(rewrite~bind_bind,~interp_fai...] 0.038 secs (0.037u,0.s) -Chars 8516 - 8537 [(ebind;~intros;~subst).] 0.012 secs (0.012u,0.s) +Chars 8476 - 8511 [(rewrite~bind_bind,~interp_fai...] 0.037 secs (0.036u,0.s) +Chars 8516 - 8537 [(ebind;~intros;~subst).] 0.011 secs (0.011u,0.s) Chars 8544 - 8556 [(destruct~u2).] 0. secs (0.u,0.s) Chars 8562 - 8563 [+] 0. secs (0.u,0.s) -Chars 8564 - 8581 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) +Chars 8564 - 8581 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) Chars 8588 - 8593 [etau.] 0. secs (0.u,0.s) Chars 8599 - 8600 [+] 0. secs (0.u,0.s) -Chars 8601 - 8620 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) -Chars 8627 - 8645 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 8601 - 8620 [(rewrite~bind_ret_l).] 0.022 secs (0.021u,0.s) +Chars 8627 - 8645 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) Chars 8646 - 8650 [Qed.] 0.016 secs (0.016u,0.s) Chars 8665 - 8895 [Lemma~interp_failure_bind'~:~~...] 0.001 secs (0.001u,0.s) Chars 8896 - 8902 [Proof.] 0. secs (0.u,0.s) Chars 8905 - 8920 [(intros~X~Y~E~F).] 0. secs (0.u,0.s) Chars 8923 - 8927 [(cbn).] 0. secs (0.u,0.s) Chars 8930 - 8950 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) -Chars 8955 - 9001 [(rewrite~unfold_bind,~(unfold_...] 0.042 secs (0.042u,0.s) -Chars 9004 - 9038 [(destruct~(observe~t)~eqn:EQ;~...] 0.007 secs (0.007u,0.s) +Chars 8955 - 9001 [(rewrite~unfold_bind,~(unfold_...] 0.039 secs (0.039u,0.s) +Chars 9004 - 9038 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) Chars 9041 - 9042 [-] 0. secs (0.u,0.s) -Chars 9043 - 9062 [(rewrite~bind_ret_l).] 0.02 secs (0.02u,0.s) +Chars 9043 - 9062 [(rewrite~bind_ret_l).] 0.018 secs (0.018u,0.s) Chars 9063 - 9075 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 9079 - 9080 [-] 0. secs (0.u,0.s) Chars 9081 - 9086 [etau.] 0.014 secs (0.014u,0.s) Chars 9087 - 9097 [(apply~CIH).] 0. secs (0.u,0.s) Chars 9101 - 9102 [-] 0. secs (0.u,0.s) -Chars 9103 - 9138 [(rewrite~bind_bind,~interp_fai...] 0.039 secs (0.038u,0.s) -Chars 9143 - 9164 [(ebind;~intros;~subst).] 0.011 secs (0.011u,0.s) +Chars 9103 - 9138 [(rewrite~bind_bind,~interp_fai...] 0.035 secs (0.034u,0.s) +Chars 9143 - 9164 [(ebind;~intros;~subst).] 0.01 secs (0.01u,0.s) Chars 9170 - 9182 [(destruct~u2).] 0. secs (0.u,0.s) Chars 9188 - 9189 [+] 0. secs (0.u,0.s) Chars 9190 - 9207 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) Chars 9214 - 9219 [etau.] 0. secs (0.u,0.s) Chars 9225 - 9226 [+] 0. secs (0.u,0.s) -Chars 9227 - 9246 [(rewrite~bind_ret_l).] 0.02 secs (0.02u,0.s) +Chars 9227 - 9246 [(rewrite~bind_ret_l).] 0.019 secs (0.019u,0.s) Chars 9253 - 9265 [reflexivity.] 0.002 secs (0.002u,0.s) -Chars 9266 - 9270 [Qed.] 0.016 secs (0.016u,0.s) +Chars 9266 - 9270 [Qed.] 0.015 secs (0.015u,0.s) diff --git a/theories/Events/Map.v.timing b/theories/Events/Map.v.timing index 7b3f352c..8799591f 100644 --- a/theories/Events/Map.v.timing +++ b/theories/Events/Map.v.timing @@ -1,9 +1,9 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.043 secs (0.033u,0.009s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.043 secs (0.033u,0.01s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) Chars 145 - 181 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.113 secs (0.105u,0.007s) +Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.113 secs (0.103u,0.009s) Chars 376 - 410 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 427 - 439 [Section~Map.] 0. secs (0.u,0.s) Chars 443 - 466 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -11,7 +11,7 @@ Chars 470 - 599 [Variant~mapE~:~Type~->~Type~:=...] 0. secs (0.u,0.s) Chars 603 - 679 [Definition~insert~{E}~`{mapE~-...] 0. secs (0.u,0.s) Chars 682 - 759 [Definition~lookup~{E}~`{mapE~-...] 0. secs (0.u,0.s) Chars 762 - 833 [Definition~remove~{E}~`{mapE~-...] 0. secs (0.u,0.s) -Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0.001 secs (0.001u,0.s) +Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0. secs (0.u,0.s) Chars 1066 - 1089 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1093 - 1114 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1117 - 1143 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefault.v.timing b/theories/Events/MapDefault.v.timing index be1a7333..09560846 100644 --- a/theories/Events/MapDefault.v.timing +++ b/theories/Events/MapDefault.v.timing @@ -1,8 +1,8 @@ Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.006 secs (0.005u,0.001s) +Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.006 secs (0.004u,0.001s) Chars 183 - 239 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.059 secs (0.047u,0.011s) +Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.068 secs (0.048u,0.016s) Chars 499 - 533 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 550 - 562 [Section~Map.] 0. secs (0.u,0.s) Chars 566 - 589 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -10,13 +10,13 @@ Chars 593 - 728 [Variant~mapE~(d~:~V)~:~Type~->...] 0. secs (0.u,0.s) Chars 732 - 753 [Arguments~Insert~{d}.] 0. secs (0.u,0.s) Chars 756 - 780 [Arguments~LookupDef~{d}.] 0. secs (0.u,0.s) Chars 783 - 804 [Arguments~Remove~{d}.] 0. secs (0.u,0.s) -Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0.001 secs (0.001u,0.s) +Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0.001 secs (0.u,0.s) Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0. secs (0.u,0.s) Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0. secs (0.u,0.s) Chars 1060 - 1083 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1087 - 1108 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1111 - 1137 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.022 secs (0.02u,0.002s) +Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.025 secs (0.021u,0.004s) Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 1830 - 1966 [Definition~interp_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 2165 - 2273 [Definition~eq_map~(d~:~V)~(m1~...] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefaultFacts.v.timing b/theories/Events/MapDefaultFacts.v.timing index 74e42ae4..8bb7ab63 100644 --- a/theories/Events/MapDefaultFacts.v.timing +++ b/theories/Events/MapDefaultFacts.v.timing @@ -1,10 +1,10 @@ -Chars 87 - 123 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 87 - 123 [From~Coinduction~Require~Impor...] 0.009 secs (0.006u,0.002s) Chars 126 - 149 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 150 - 174 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 176 - 213 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 176 - 213 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.001s) Chars 215 - 259 [From~ExtLib~Require~Import~Cor...] 0.001 secs (0.001u,0.s) Chars 261 - 302 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 304 - 470 [From~ITree~Require~Import~Basi...] 0.228 secs (0.2u,0.027s) +Chars 304 - 470 [From~ITree~Require~Import~Basi...] 0.248 secs (0.207u,0.036s) Chars 472 - 506 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 507 - 530 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 547 - 564 [Section~MapFacts.] 0. secs (0.u,0.s) @@ -59,7 +59,7 @@ Chars 2291 - 2318 [(rewrite~EQ~in~EQ';~inv~EQ').] 0. secs (0.u,0.s) Chars 2326 - 2335 [Unshelve.] 0. secs (0.u,0.s) Chars 2343 - 2366 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 2369 - 2373 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2377 - 2441 [#[global]~Instance~eq_map_refl...] 0.031 secs (0.028u,0.002s) +Chars 2377 - 2441 [#[global]~Instance~eq_map_refl...] 0.034 secs (0.029u,0.005s) Chars 2444 - 2450 [Proof.] 0. secs (0.u,0.s) Chars 2455 - 2459 [(red).] 0. secs (0.u,0.s) Chars 2460 - 2467 [(intros).] 0. secs (0.u,0.s) @@ -84,7 +84,7 @@ Chars 2822 - 2826 [Qed.] 0. secs (0.u,0.s) Chars 2831 - 2849 [Section~Relations.] 0. secs (0.u,0.s) Chars 2852 - 2875 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) Chars 2878 - 2909 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 2913 - 3133 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) +Chars 2913 - 3133 [Definition~map_default_eq~d~{E...] 0.001 secs (0.001u,0.s) Chars 3137 - 3151 [End~Relations.] 0. secs (0.u,0.s) Chars 3155 - 3298 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) Chars 3301 - 3307 [Proof.] 0. secs (0.u,0.s) @@ -112,7 +112,7 @@ Chars 3901 - 3902 [-] 0. secs (0.u,0.s) Chars 3903 - 3937 [(rewrite~2!lookup_remove_neq;~...] 0. secs (0.u,0.s) Chars 3944 - 3952 [(apply~H).] 0. secs (0.u,0.s) Chars 3955 - 3959 [Qed.] 0. secs (0.u,0.s) -Chars 3965 - 4175 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) +Chars 3965 - 4175 [Lemma~handle_map_eq~:~~~forall...] 0.001 secs (0.001u,0.s) Chars 4178 - 4184 [Proof.] 0. secs (0.u,0.s) Chars 4189 - 4196 [(intros).] 0. secs (0.u,0.s) Chars 4201 - 4262 [(destruct~m;~cbn;~red;~apply~e...] 0.002 secs (0.002u,0.s) @@ -122,7 +122,7 @@ Chars 4287 - 4298 [assumption.] 0. secs (0.u,0.s) Chars 4303 - 4304 [-] 0. secs (0.u,0.s) Chars 4305 - 4325 [(apply~eq_map_remove).] 0. secs (0.u,0.s) Chars 4326 - 4337 [assumption.] 0. secs (0.u,0.s) -Chars 4340 - 4344 [Qed.] 0.003 secs (0.002u,0.s) +Chars 4340 - 4344 [Qed.] 0.003 secs (0.003u,0.s) Chars 4349 - 4462 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) Chars 4465 - 4471 [Proof.] 0. secs (0.u,0.s) Chars 4476 - 4489 [(repeat~intro).] 0. secs (0.u,0.s) @@ -136,15 +136,15 @@ Chars 4819 - 4861 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) Chars 4866 - 4883 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) Chars 4888 - 4900 [coinduction.] 0.003 secs (0.003u,0.s) Chars 4906 - 4913 [(intros).] 0. secs (0.u,0.s) -Chars 4918 - 4953 [(repeat~rewrite~unfold_interp_...] 0.077 secs (0.076u,0.s) +Chars 4918 - 4953 [(repeat~rewrite~unfold_interp_...] 0.083 secs (0.08u,0.002s) Chars 4954 - 4975 [(unfold~_interp_state).] 0. secs (0.u,0.s) Chars 4980 - 5001 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) Chars 5006 - 5007 [-] 0. secs (0.u,0.s) Chars 5008 - 5013 [eret.] 0. secs (0.u,0.s) Chars 5019 - 5020 [-] 0. secs (0.u,0.s) -Chars 5021 - 5026 [etau.] 0.001 secs (0.001u,0.s) +Chars 5021 - 5026 [etau.] 0.002 secs (0.002u,0.s) Chars 5032 - 5033 [-] 0. secs (0.u,0.s) -Chars 5034 - 5040 [ebind.] 0.013 secs (0.013u,0.s) +Chars 5034 - 5040 [ebind.] 0.014 secs (0.013u,0.s) Chars 5048 - 5066 [(unfold~pure_state).] 0. secs (0.u,0.s) Chars 5073 - 5084 [(destruct~e).] 0. secs (0.u,0.s) Chars 5091 - 5092 [+] 0. secs (0.u,0.s) @@ -162,7 +162,7 @@ Chars 5192 - 5204 [(destruct~u2).] 0.001 secs (0.001u,0.s) Chars 5205 - 5209 [(cbn).] 0. secs (0.u,0.s) Chars 5218 - 5263 [(destruct~H0~as~[H1~H2];~cbn~i...] 0. secs (0.u,0.s) Chars 5272 - 5277 [etau.] 0.001 secs (0.001u,0.s) -Chars 5281 - 5285 [Qed.] 0.018 secs (0.018u,0.s) +Chars 5281 - 5285 [Qed.] 0.019 secs (0.019u,0.s) Chars 5290 - 5440 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) Chars 5443 - 5449 [Proof.] 0. secs (0.u,0.s) Chars 5454 - 5488 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) @@ -170,16 +170,16 @@ Chars 5493 - 5506 [(repeat~intro).] 0. secs (0.u,0.s) Chars 5511 - 5533 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) Chars 5538 - 5550 [coinduction.] 0.003 secs (0.003u,0.s) Chars 5556 - 5563 [(intros).] 0. secs (0.u,0.s) -Chars 5568 - 5597 [(rewrite~!unfold_interp_state).] 0.04 secs (0.04u,0.s) +Chars 5568 - 5597 [(rewrite~!unfold_interp_state).] 0.043 secs (0.042u,0.s) Chars 5603 - 5613 [step~in~H.] 0.001 secs (0.001u,0.s) Chars 5619 - 5635 [revert~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5640 - 5673 [(induction~H;~intros;~subst;~b...] 0.043 secs (0.043u,0.s) +Chars 5640 - 5673 [(induction~H;~intros;~subst;~b...] 0.044 secs (0.044u,0.s) Chars 5679 - 5680 [-] 0. secs (0.u,0.s) Chars 5681 - 5686 [eret.] 0.001 secs (0.001u,0.s) Chars 5692 - 5693 [-] 0. secs (0.u,0.s) Chars 5694 - 5699 [etau.] 0.003 secs (0.003u,0.s) Chars 5704 - 5705 [-] 0. secs (0.u,0.s) -Chars 5706 - 5712 [ebind.] 0.024 secs (0.024u,0.s) +Chars 5706 - 5712 [ebind.] 0.026 secs (0.026u,0.s) Chars 5719 - 5720 [+] 0. secs (0.u,0.s) Chars 5721 - 5734 [(unfold~case_).] 0. secs (0.u,0.s) Chars 5735 - 5763 [(unfold~Case_sum1,~case_sum1).] 0. secs (0.u,0.s) @@ -192,20 +192,20 @@ Chars 5846 - 5847 [*] 0. secs (0.u,0.s) Chars 5848 - 5866 [(unfold~pure_state).] 0. secs (0.u,0.s) Chars 5867 - 5872 [step.] 0.001 secs (0.001u,0.s) Chars 5873 - 5878 [evis.] 0.002 secs (0.002u,0.s) -Chars 5879 - 5884 [step.] 0.001 secs (0.001u,0.s) +Chars 5879 - 5884 [step.] 0.002 secs (0.002u,0.s) Chars 5885 - 5890 [eret.] 0. secs (0.u,0.s) Chars 5898 - 5899 [+] 0. secs (0.u,0.s) Chars 5900 - 5907 [(intros).] 0. secs (0.u,0.s) -Chars 5908 - 5913 [etau.] 0.009 secs (0.009u,0.s) -Chars 5921 - 5927 [(inv~H).] 0.024 secs (0.024u,0.s) +Chars 5908 - 5913 [etau.] 0.01 secs (0.01u,0.s) +Chars 5921 - 5927 [(inv~H).] 0.026 secs (0.025u,0.s) Chars 5928 - 5944 [(rewrite~snd_rel).] 0. secs (0.u,0.s) Chars 5945 - 5963 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) Chars 5964 - 5974 [(apply~REL).] 0. secs (0.u,0.s) Chars 5979 - 5980 [-] 0. secs (0.u,0.s) -Chars 5981 - 6021 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) +Chars 5981 - 6021 [(rewrite~tau_euttge,~unfold_in...] 0.025 secs (0.025u,0.s) Chars 6028 - 6047 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) Chars 6053 - 6054 [-] 0. secs (0.u,0.s) -Chars 6055 - 6095 [(rewrite~tau_euttge,~unfold_in...] 0.026 secs (0.026u,0.s) +Chars 6055 - 6095 [(rewrite~tau_euttge,~unfold_in...] 0.027 secs (0.027u,0.s) Chars 6102 - 6121 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6125 - 6129 [Qed.] 0.023 secs (0.022u,0.s) +Chars 6125 - 6129 [Qed.] 0.025 secs (0.024u,0.s) Chars 6131 - 6144 [End~MapFacts.] 0.009 secs (0.009u,0.s) diff --git a/theories/Events/Nondeterminism.v.timing b/theories/Events/Nondeterminism.v.timing index c153e9ac..34bda657 100644 --- a/theories/Events/Nondeterminism.v.timing +++ b/theories/Events/Nondeterminism.v.timing @@ -1,8 +1,8 @@ Chars 84 - 107 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 108 - 132 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.042 secs (0.033u,0.008s) +Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.045 secs (0.033u,0.01s) Chars 167 - 188 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.131 secs (0.119u,0.011s) +Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.134 secs (0.118u,0.015s) Chars 374 - 428 [Variant~nondetE~:~Type~->~Prop...] 0. secs (0.u,0.s) Chars 469 - 592 [Definition~or~{E}~`{nondetE~-<...] 0. secs (0.u,0.s) Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0.001 secs (0.001u,0.s) diff --git a/theories/Events/Reader.v.timing b/theories/Events/Reader.v.timing index eab3f296..bdc333e8 100644 --- a/theories/Events/Reader.v.timing +++ b/theories/Events/Reader.v.timing @@ -1,14 +1,14 @@ Chars 65 - 88 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 89 - 113 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.044 secs (0.034u,0.009s) +Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.046 secs (0.035u,0.01s) Chars 148 - 169 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.137 secs (0.124u,0.013s) +Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.138 secs (0.121u,0.016s) Chars 358 - 373 [Section~Reader.] 0. secs (0.u,0.s) Chars 375 - 397 [Variable~(Env~:~Type).] 0. secs (0.u,0.s) Chars 399 - 453 [Variant~readerE~:~Type~->~Prop...] 0. secs (0.u,0.s) Chars 455 - 521 [Definition~ask~{E}~`{readerE~-...] 0. secs (0.u,0.s) Chars 523 - 639 [Definition~eval_reader~{E}~:~E...] 0. secs (0.u,0.s) -Chars 641 - 761 [Definition~run_reader~{E}~:~En...] 0.001 secs (0.001u,0.s) +Chars 641 - 761 [Definition~run_reader~{E}~:~En...] 0. secs (0.u,0.s) Chars 763 - 774 [End~Reader.] 0. secs (0.u,0.s) Chars 776 - 800 [Arguments~ask~{Env~E~_}.] 0. secs (0.u,0.s) Chars 801 - 836 [Arguments~run_reader~{Env~E}~_...] 0. secs (0.u,0.s) diff --git a/theories/Events/State.v.timing b/theories/Events/State.v.timing index e800d4ca..41056d52 100644 --- a/theories/Events/State.v.timing +++ b/theories/Events/State.v.timing @@ -1,15 +1,15 @@ Chars 81 - 154 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.045 secs (0.036u,0.009s) +Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.047 secs (0.037u,0.01s) Chars 358 - 392 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 394 - 423 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.001 secs (0.001u,0.s) +Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.002 secs (0.001u,0.s) Chars 758 - 804 [Arguments~interp_state~{E~M~S~...] 0. secs (0.u,0.s) Chars 806 - 820 [Section~State.] 0. secs (0.u,0.s) Chars 824 - 844 [Variable~(S~:~Type).] 0. secs (0.u,0.s) Chars 848 - 927 [Variant~stateE~:~Type~->~Type~...] 0. secs (0.u,0.s) Chars 931 - 990 [Definition~get~{E}~`{stateE~-<...] 0. secs (0.u,0.s) Chars 993 - 1060 [Definition~put~{E}~`{stateE~-<...] 0. secs (0.u,0.s) -Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0. secs (0.u,0.s) +Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0.001 secs (0.u,0.s) Chars 1353 - 1455 [Definition~pure_state~{S}~{E}~...] 0. secs (0.u,0.s) Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.001u,0.s) Chars 1581 - 1591 [End~State.] 0. secs (0.u,0.s) @@ -19,5 +19,5 @@ Chars 1639 - 1673 [Arguments~run_state~{S~E}~[_]~...] 0. secs (0.u,0.s) Chars 1715 - 1733 [Section~eff_hom_e.] 0. secs (0.u,0.s) Chars 1736 - 1765 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 2030 - 2116 [CoInductive~eff_hom_e~:~Type~:...] 0. secs (0.u,0.s) -Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.003 secs (0.003u,0.s) +Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.004 secs (0.003u,0.001s) Chars 2409 - 2423 [End~eff_hom_e.] 0. secs (0.u,0.s) diff --git a/theories/Events/StateFacts.v.timing b/theories/Events/StateFacts.v.timing index 6d86f575..a66d933e 100644 --- a/theories/Events/StateFacts.v.timing +++ b/theories/Events/StateFacts.v.timing @@ -1,6 +1,6 @@ -Chars 57 - 93 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) -Chars 96 - 149 [From~Stdlib~Require~Import~Pro...] 0.002 secs (0.u,0.001s) -Chars 152 - 480 [From~ITree~Require~Import~Basi...] 0.084 secs (0.072u,0.012s) +Chars 57 - 93 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) +Chars 96 - 149 [From~Stdlib~Require~Import~Pro...] 0.002 secs (0.001u,0.001s) +Chars 152 - 480 [From~ITree~Require~Import~Basi...] 0.09 secs (0.073u,0.015s) Chars 482 - 504 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 506 - 535 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 537 - 551 [Import~Monads.] 0. secs (0.u,0.s) @@ -11,22 +11,22 @@ Chars 1062 - 1157 [(unfold~interp_state,~interp,~...] 0. secs (0.u,0.s) Chars 1160 - 1185 [(rewrite~unfold_iter;~cbn).] 0.009 secs (0.009u,0.s) Chars 1188 - 1210 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) Chars 1213 - 1214 [-] 0. secs (0.u,0.s) -Chars 1215 - 1236 [(rewrite~2!bind_ret_l).] 0.056 secs (0.055u,0.s) +Chars 1215 - 1236 [(rewrite~2!bind_ret_l).] 0.057 secs (0.055u,0.001s) Chars 1237 - 1249 [reflexivity.] 0. secs (0.u,0.s) Chars 1252 - 1253 [-] 0. secs (0.u,0.s) -Chars 1254 - 1275 [(rewrite~2!bind_ret_l).] 0.024 secs (0.021u,0.002s) +Chars 1254 - 1275 [(rewrite~2!bind_ret_l).] 0.026 secs (0.022u,0.004s) Chars 1280 - 1292 [reflexivity.] 0. secs (0.u,0.s) Chars 1295 - 1296 [-] 0. secs (0.u,0.s) -Chars 1297 - 1330 [(rewrite~bind_map,~bind_bind;~...] 0.028 secs (0.022u,0.005s) +Chars 1297 - 1330 [(rewrite~bind_map,~bind_bind;~...] 0.028 secs (0.021u,0.006s) Chars 1331 - 1357 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) Chars 1362 - 1391 [(apply~eqit_bind;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 1392 - 1396 [Qed.] 0.019 secs (0.018u,0.s) +Chars 1392 - 1396 [Qed.] 0.02 secs (0.019u,0.s) Chars 1398 - 1575 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.001u,0.s) Chars 1576 - 1582 [Proof.] 0. secs (0.u,0.s) Chars 1585 - 1600 [(revert_until~R).] 0. secs (0.u,0.s) -Chars 1603 - 1615 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1603 - 1615 [coinduction.] 0.003 secs (0.002u,0.s) Chars 1616 - 1640 [(intros~h~x~y~H0~x2~_~[]).] 0. secs (0.u,0.s) -Chars 1643 - 1672 [(rewrite~!unfold_interp_state).] 0.039 secs (0.038u,0.s) +Chars 1643 - 1672 [(rewrite~!unfold_interp_state).] 0.04 secs (0.039u,0.001s) Chars 1675 - 1686 [step~in~H0.] 0. secs (0.u,0.s) Chars 1690 - 1732 [(destruct~H0;~subst;~try~discr...] 0.002 secs (0.002u,0.s) Chars 1735 - 1736 [-] 0. secs (0.u,0.s) @@ -37,8 +37,8 @@ Chars 1780 - 1781 [-] 0. secs (0.u,0.s) Chars 1782 - 1789 [to_mon.] 0. secs (0.u,0.s) Chars 1790 - 1811 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) Chars 1818 - 1819 [+] 0. secs (0.u,0.s) -Chars 1820 - 1842 [(taus;~auto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 1844 - 1848 [Qed.] 0.011 secs (0.011u,0.s) +Chars 1820 - 1842 [(taus;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 1844 - 1848 [Qed.] 0.012 secs (0.011u,0.s) Chars 1850 - 2032 [Lemma~interp_state_ret~{E~F~:~...] 0.001 secs (0.001u,0.s) Chars 2033 - 2039 [Proof.] 0. secs (0.u,0.s) Chars 2042 - 2060 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) @@ -52,7 +52,7 @@ Chars 2381 - 2563 [Lemma~interp_state_tau~{E~F~:~...] 0.001 secs (0.001u,0.s) Chars 2564 - 2570 [Proof.] 0. secs (0.u,0.s) Chars 2573 - 2614 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) Chars 2615 - 2619 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2621 - 2828 [Lemma~interp_state_trigger_eqi...] 0.001 secs (0.001u,0.s) +Chars 2621 - 2828 [Lemma~interp_state_trigger_eqi...] 0. secs (0.u,0.s) Chars 2829 - 2835 [Proof.] 0. secs (0.u,0.s) Chars 2838 - 2859 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) Chars 2860 - 2885 [(rewrite~interp_state_vis).] 0.002 secs (0.002u,0.s) @@ -65,32 +65,32 @@ Chars 2981 - 3154 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) Chars 3155 - 3161 [Proof.] 0. secs (0.u,0.s) Chars 3164 - 3185 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) Chars 3186 - 3211 [(rewrite~interp_state_vis).] 0.001 secs (0.001u,0.s) -Chars 3214 - 3301 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.002u,0.s) +Chars 3214 - 3301 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.001u,0.s) Chars 3304 - 3338 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) Chars 3341 - 3386 [(intros~[];~rewrite~interp_sta...] 0.003 secs (0.003u,0.s) Chars 3389 - 3401 [reflexivity.] 0. secs (0.u,0.s) -Chars 3402 - 3406 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3402 - 3406 [Qed.] 0.002 secs (0.002u,0.s) Chars 3408 - 3695 [Lemma~interp_state_bind~{E~F~:...] 0.001 secs (0.001u,0.s) Chars 3696 - 3702 [Proof.] 0. secs (0.u,0.s) Chars 3705 - 3718 [revert~t~k~s.] 0. secs (0.u,0.s) Chars 3721 - 3733 [coinduction.] 0.002 secs (0.002u,0.s) Chars 3737 - 3750 [(intros~t~k~s).] 0. secs (0.u,0.s) -Chars 3753 - 3773 [(rewrite~unfold_bind).] 0.019 secs (0.019u,0.s) -Chars 3776 - 3810 [(rewrite~(unfold_interp_state~...] 0.025 secs (0.025u,0.s) +Chars 3753 - 3773 [(rewrite~unfold_bind).] 0.019 secs (0.018u,0.s) +Chars 3776 - 3810 [(rewrite~(unfold_interp_state~...] 0.024 secs (0.023u,0.s) Chars 3813 - 3834 [(destruct~(observe~t)).] 0. secs (0.u,0.s) Chars 3837 - 3838 [-] 0. secs (0.u,0.s) Chars 3839 - 3844 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 3845 - 3865 [(rewrite~!bind_ret_l).] 0.021 secs (0.021u,0.s) +Chars 3845 - 3865 [(rewrite~!bind_ret_l).] 0.021 secs (0.02u,0.s) Chars 3871 - 3889 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) Chars 3892 - 3893 [-] 0. secs (0.u,0.s) Chars 3894 - 3899 [bcbn.] 0.001 secs (0.001u,0.s) Chars 3900 - 3905 [taus.] 0. secs (0.u,0.s) -Chars 3906 - 3916 [(apply~CIH).] 0.002 secs (0.002u,0.s) +Chars 3906 - 3916 [(apply~CIH).] 0.001 secs (0.001u,0.s) Chars 3919 - 3920 [-] 0. secs (0.u,0.s) Chars 3921 - 3926 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3927 - 3963 [(rewrite~interp_state_vis,~bin...] 0.038 secs (0.037u,0.s) +Chars 3927 - 3963 [(rewrite~interp_state_vis,~bin...] 0.037 secs (0.037u,0.s) Chars 3968 - 3989 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) -Chars 3997 - 4014 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 3997 - 4014 [(rewrite~bind_tau).] 0.023 secs (0.022u,0.s) Chars 4021 - 4026 [taus.] 0. secs (0.u,0.s) Chars 4027 - 4041 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 4043 - 4047 [Qed.] 0.015 secs (0.015u,0.s) @@ -101,23 +101,23 @@ Chars 4286 - 4292 [subst.] 0. secs (0.u,0.s) Chars 4293 - 4309 [(revert_until~RR).] 0. secs (0.u,0.s) Chars 4312 - 4324 [coinduction.] 0.002 secs (0.002u,0.s) Chars 4325 - 4332 [(intros).] 0. secs (0.u,0.s) -Chars 4336 - 4365 [(rewrite~!unfold_interp_state).] 0.037 secs (0.037u,0.s) +Chars 4336 - 4365 [(rewrite~!unfold_interp_state).] 0.036 secs (0.035u,0.s) Chars 4366 - 4376 [step~in~H.] 0. secs (0.u,0.s) -Chars 4380 - 4413 [(induction~H;~intros;~subst;~b...] 0.039 secs (0.039u,0.s) +Chars 4380 - 4413 [(induction~H;~intros;~subst;~b...] 0.039 secs (0.038u,0.s) Chars 4417 - 4418 [-] 0. secs (0.u,0.s) Chars 4419 - 4424 [eret.] 0.003 secs (0.003u,0.s) Chars 4428 - 4429 [-] 0. secs (0.u,0.s) Chars 4430 - 4435 [etau.] 0.002 secs (0.002u,0.s) Chars 4439 - 4440 [-] 0. secs (0.u,0.s) -Chars 4441 - 4462 [(ebind;~intros;~subst).] 0.024 secs (0.024u,0.s) +Chars 4441 - 4462 [(ebind;~intros;~subst).] 0.025 secs (0.024u,0.s) Chars 4463 - 4468 [taus.] 0. secs (0.u,0.s) Chars 4469 - 4479 [(apply~CIH).] 0. secs (0.u,0.s) Chars 4480 - 4490 [(apply~REL).] 0. secs (0.u,0.s) Chars 4494 - 4495 [-] 0. secs (0.u,0.s) -Chars 4496 - 4543 [(rewrite~tau_euttge,~unfold_in...] 0.02 secs (0.02u,0.s) +Chars 4496 - 4543 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) Chars 4546 - 4547 [-] 0. secs (0.u,0.s) Chars 4548 - 4595 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) -Chars 4596 - 4600 [Qed.] 0.012 secs (0.012u,0.s) +Chars 4596 - 4600 [Qed.] 0.013 secs (0.013u,0.s) Chars 4602 - 4801 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) Chars 4802 - 4808 [Proof.] 0. secs (0.u,0.s) Chars 4811 - 4824 [(repeat~intro).] 0. secs (0.u,0.s) @@ -125,41 +125,41 @@ Chars 4825 - 4831 [subst.] 0. secs (0.u,0.s) Chars 4832 - 4847 [(revert_until~R).] 0. secs (0.u,0.s) Chars 4850 - 4862 [coinduction.] 0.002 secs (0.002u,0.s) Chars 4863 - 4870 [(intros).] 0. secs (0.u,0.s) -Chars 4875 - 4904 [(rewrite~!unfold_interp_state).] 0.035 secs (0.035u,0.s) +Chars 4875 - 4904 [(rewrite~!unfold_interp_state).] 0.035 secs (0.034u,0.s) Chars 4905 - 4915 [step~in~H.] 0. secs (0.u,0.s) -Chars 4919 - 4970 [(induction~H;~intros;~subst;~b...] 0.048 secs (0.048u,0.s) +Chars 4919 - 4970 [(induction~H;~intros;~subst;~b...] 0.047 secs (0.047u,0.s) Chars 4974 - 4975 [-] 0. secs (0.u,0.s) Chars 4976 - 4981 [eret.] 0.001 secs (0.001u,0.s) Chars 4985 - 4986 [-] 0. secs (0.u,0.s) Chars 4987 - 4993 [ebind.] 0.009 secs (0.009u,0.s) Chars 4994 - 5008 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 5013 - 5018 [etau.] 0.002 secs (0.002u,0.s) +Chars 5013 - 5018 [etau.] 0.001 secs (0.001u,0.s) Chars 5021 - 5022 [-] 0. secs (0.u,0.s) Chars 5023 - 5070 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) Chars 5073 - 5074 [-] 0. secs (0.u,0.s) -Chars 5075 - 5122 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.022u,0.s) -Chars 5123 - 5127 [Qed.] 0.013 secs (0.013u,0.s) +Chars 5075 - 5122 [(rewrite~tau_euttge,~unfold_in...] 0.024 secs (0.024u,0.s) +Chars 5123 - 5127 [Qed.] 0.014 secs (0.014u,0.s) Chars 5130 - 5766 [Lemma~eutt_interp_state_aloop~...] 0.002 secs (0.002u,0.s) Chars 5767 - 5773 [Proof.] 0. secs (0.u,0.s) Chars 5776 - 5785 [intro~Ht.] 0. secs (0.u,0.s) Chars 5788 - 5800 [coinduction.] 0.002 secs (0.002u,0.s) Chars 5801 - 5808 [(intros).] 0. secs (0.u,0.s) Chars 5811 - 5833 [(rewrite~2!unfold_iter).] 0.037 secs (0.036u,0.s) -Chars 5836 - 5864 [(rewrite~2!interp_state_bind).] 0.036 secs (0.036u,0.s) +Chars 5836 - 5864 [(rewrite~2!interp_state_bind).] 0.037 secs (0.037u,0.s) Chars 5867 - 5888 [(ebind;~intros;~subst).] 0.004 secs (0.004u,0.s) Chars 5892 - 5893 [-] 0. secs (0.u,0.s) -Chars 5894 - 5904 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 5894 - 5904 [(do~2~step).] 0.017 secs (0.016u,0.s) Chars 5905 - 5921 [(eapply~Ht;~auto).] 0. secs (0.u,0.s) Chars 5924 - 5925 [-] 0. secs (0.u,0.s) -Chars 5926 - 5933 [(inv~H1).] 0.013 secs (0.012u,0.s) -Chars 5934 - 5946 [(inv~snd_rel).] 0.024 secs (0.024u,0.s) +Chars 5926 - 5933 [(inv~H1).] 0.012 secs (0.012u,0.s) +Chars 5934 - 5946 [(inv~snd_rel).] 0.024 secs (0.023u,0.s) Chars 5951 - 5952 [+] 0. secs (0.u,0.s) -Chars 5953 - 5980 [(rewrite~2!interp_state_tau).] 0.042 secs (0.042u,0.s) +Chars 5953 - 5980 [(rewrite~2!interp_state_tau).] 0.041 secs (0.04u,0.s) Chars 5981 - 5986 [etau.] 0.001 secs (0.001u,0.s) Chars 5992 - 5993 [+] 0. secs (0.u,0.s) Chars 5994 - 6021 [(rewrite~2!interp_state_ret).] 0.041 secs (0.04u,0.s) Chars 6022 - 6027 [eret.] 0.001 secs (0.001u,0.s) -Chars 6029 - 6033 [Qed.] 0.034 secs (0.02u,0.s) +Chars 6029 - 6033 [Qed.] 0.016 secs (0.015u,0.s) Chars 6035 - 6697 [Lemma~eutt_interp_state_iter~{...] 0.003 secs (0.003u,0.s) Chars 6698 - 6704 [Proof.] 0. secs (0.u,0.s) Chars 6707 - 6737 [(apply~eutt_interp_state_aloop).] 0. secs (0.u,0.s) @@ -167,27 +167,27 @@ Chars 6738 - 6742 [Qed.] 0.001 secs (0.001u,0.s) Chars 6744 - 6955 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) Chars 6956 - 6962 [Proof.] 0. secs (0.u,0.s) Chars 6965 - 7043 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 7046 - 7070 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) -Chars 7073 - 7101 [(rewrite~2!unfold_iter;~bcbn).] 0.048 secs (0.044u,0.s) -Chars 7104 - 7123 [(rewrite~!bind_bind).] 0.027 secs (0.027u,0.s) -Chars 7126 - 7152 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) -Chars 7155 - 7181 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) -Chars 7184 - 7190 [ebind.] 0.009 secs (0.008u,0.s) +Chars 7046 - 7070 [(coinduction;~intros~i~s).] 0.003 secs (0.003u,0.s) +Chars 7073 - 7101 [(rewrite~2!unfold_iter;~bcbn).] 0.042 secs (0.042u,0.s) +Chars 7104 - 7123 [(rewrite~!bind_bind).] 0.026 secs (0.026u,0.s) +Chars 7126 - 7152 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.042u,0.s) +Chars 7155 - 7181 [(rewrite~interp_state_bind).] 0.019 secs (0.019u,0.s) +Chars 7184 - 7190 [ebind.] 0.009 secs (0.009u,0.s) Chars 7193 - 7219 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) Chars 7222 - 7223 [-] 0. secs (0.u,0.s) Chars 7224 - 7229 [etau.] 0.002 secs (0.002u,0.s) Chars 7233 - 7234 [-] 0. secs (0.u,0.s) Chars 7235 - 7240 [eret.] 0. secs (0.u,0.s) -Chars 7242 - 7246 [Qed.] 0.015 secs (0.015u,0.s) +Chars 7242 - 7246 [Qed.] 0.016 secs (0.016u,0.s) Chars 7248 - 7775 [Lemma~eutt_interp_state_loop~{...] 0.003 secs (0.003u,0.s) Chars 7776 - 7782 [Proof.] 0. secs (0.u,0.s) Chars 7785 - 7792 [(intros).] 0. secs (0.u,0.s) Chars 7795 - 7962 [(unfold~loop,~bimap,~Bimap_Cop...] 0. secs (0.u,0.s) -Chars 7965 - 7986 [(rewrite~2!bind_ret_l).] 0.011 secs (0.011u,0.s) -Chars 7989 - 8041 [(eapply~(eutt_interp_state_ite...] 0.026 secs (0.026u,0.s) -Chars 8044 - 8072 [(rewrite~2!interp_state_bind).] 0.013 secs (0.012u,0.s) +Chars 7965 - 7986 [(rewrite~2!bind_ret_l).] 0.012 secs (0.012u,0.s) +Chars 7989 - 8041 [(eapply~(eutt_interp_state_ite...] 0.025 secs (0.025u,0.s) +Chars 8044 - 8072 [(rewrite~2!interp_state_bind).] 0.013 secs (0.013u,0.s) Chars 8075 - 8081 [subst.] 0. secs (0.u,0.s) -Chars 8084 - 8113 [(eapply~eutt_bind_eutt;~eauto).] 0.016 secs (0.016u,0.s) +Chars 8084 - 8113 [(eapply~eutt_bind_eutt;~eauto).] 0.015 secs (0.015u,0.s) Chars 8116 - 8123 [(intros).] 0. secs (0.u,0.s) Chars 8126 - 8162 [(cbn~in~H2;~destruct~H2~as~[H2...] 0. secs (0.u,0.s) Chars 8165 - 8199 [(destruct~(snd~u1);~rewrite~<-...] 0.002 secs (0.002u,0.s) @@ -199,19 +199,19 @@ Chars 8268 - 8269 [-] 0. secs (0.u,0.s) Chars 8270 - 8309 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) Chars 8310 - 8315 [step.] 0.002 secs (0.002u,0.s) Chars 8316 - 8321 [eret.] 0.001 secs (0.001u,0.s) -Chars 8323 - 8327 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8323 - 8327 [Qed.] 0.012 secs (0.012u,0.s) Chars 8376 - 8519 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) Chars 8521 - 8839 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 8840 - 8846 [Proof.] 0. secs (0.u,0.s) Chars 8849 - 8927 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 8930 - 8954 [(coinduction;~intros~i~s).] 0.003 secs (0.003u,0.s) -Chars 8957 - 8985 [(rewrite~2!unfold_iter;~bcbn).] 0.047 secs (0.045u,0.s) -Chars 8988 - 9007 [(rewrite~!bind_bind).] 0.025 secs (0.025u,0.s) -Chars 9010 - 9036 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.042u,0.s) +Chars 8930 - 8954 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) +Chars 8957 - 8985 [(rewrite~2!unfold_iter;~bcbn).] 0.047 secs (0.046u,0.s) +Chars 8988 - 9007 [(rewrite~!bind_bind).] 0.026 secs (0.026u,0.s) +Chars 9010 - 9036 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) Chars 9039 - 9065 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) Chars 9068 - 9074 [ebind.] 0.009 secs (0.009u,0.s) Chars 9078 - 9079 [-] 0. secs (0.u,0.s) -Chars 9080 - 9090 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 9080 - 9090 [(do~2~step).] 0.017 secs (0.016u,0.s) Chars 9091 - 9102 [(apply~EQ_t).] 0. secs (0.u,0.s) Chars 9105 - 9106 [-] 0. secs (0.u,0.s) Chars 9107 - 9133 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) @@ -219,7 +219,7 @@ Chars 9138 - 9139 [+] 0. secs (0.u,0.s) Chars 9140 - 9145 [etau.] 0.002 secs (0.002u,0.s) Chars 9151 - 9152 [+] 0. secs (0.u,0.s) Chars 9153 - 9158 [eret.] 0. secs (0.u,0.s) -Chars 9160 - 9164 [Qed.] 0.016 secs (0.016u,0.s) +Chars 9160 - 9164 [Qed.] 0.017 secs (0.017u,0.s) Chars 9166 - 9410 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) Chars 9411 - 9417 [Proof.] 0. secs (0.u,0.s) Chars 9420 - 9445 [(eapply~interp_state_iter).] 0. secs (0.u,0.s) @@ -230,12 +230,12 @@ Chars 9478 - 9482 [Qed.] 0.001 secs (0.001u,0.s) Chars 9484 - 9761 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) Chars 9762 - 9768 [Proof.] 0. secs (0.u,0.s) Chars 9771 - 9849 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 9852 - 9876 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) -Chars 9879 - 9907 [(rewrite~2!unfold_iter;~bcbn).] 0.039 secs (0.039u,0.s) -Chars 9910 - 9929 [(rewrite~!bind_bind).] 0.024 secs (0.024u,0.s) -Chars 9932 - 9958 [setoid_rewrite~bind_ret_l.] 0.04 secs (0.04u,0.s) -Chars 9961 - 9987 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) -Chars 9990 - 9996 [ebind.] 0.01 secs (0.01u,0.s) +Chars 9852 - 9876 [(coinduction;~intros~i~s).] 0.003 secs (0.003u,0.s) +Chars 9879 - 9907 [(rewrite~2!unfold_iter;~bcbn).] 0.04 secs (0.039u,0.s) +Chars 9910 - 9929 [(rewrite~!bind_bind).] 0.025 secs (0.024u,0.s) +Chars 9932 - 9958 [setoid_rewrite~bind_ret_l.] 0.041 secs (0.04u,0.s) +Chars 9961 - 9987 [(rewrite~interp_state_bind).] 0.02 secs (0.019u,0.s) +Chars 9990 - 9996 [ebind.] 0.009 secs (0.009u,0.s) Chars 10000 - 10001 [-] 0. secs (0.u,0.s) Chars 10002 - 10012 [(do~2~step).] 0.016 secs (0.016u,0.s) Chars 10013 - 10023 [(apply~Heq).] 0. secs (0.u,0.s) @@ -245,4 +245,4 @@ Chars 10059 - 10060 [+] 0. secs (0.u,0.s) Chars 10061 - 10066 [etau.] 0.002 secs (0.002u,0.s) Chars 10072 - 10073 [+] 0. secs (0.u,0.s) Chars 10074 - 10079 [eret.] 0. secs (0.u,0.s) -Chars 10081 - 10085 [Qed.] 0.016 secs (0.016u,0.s) +Chars 10081 - 10085 [Qed.] 0.017 secs (0.016u,0.s) diff --git a/theories/Events/Writer.v.timing b/theories/Events/Writer.v.timing index af5bd24d..83a44685 100644 --- a/theories/Events/Writer.v.timing +++ b/theories/Events/Writer.v.timing @@ -1,9 +1,9 @@ Chars 57 - 80 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 81 - 105 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.042 secs (0.033u,0.009s) +Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.041 secs (0.032u,0.009s) Chars 145 - 166 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.122 secs (0.113u,0.008s) +Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0.001 secs (0.u,0.s) +Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.117 secs (0.108u,0.008s) Chars 501 - 529 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 589 - 663 [Variant~writerE~(W~:~Type)~:~T...] 0. secs (0.u,0.s) Chars 687 - 778 [Definition~tell~{W}~{E}~`{writ...] 0. secs (0.u,0.s) @@ -13,5 +13,5 @@ Chars 1238 - 1280 [Arguments~run_writer_list_stat...] 0. secs (0.u,0.s) Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0.001 secs (0.001u,0.s) Chars 1604 - 1640 [Arguments~run_writer_list~{W~E...] 0. secs (0.u,0.s) Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0.001 secs (0.u,0.s) -Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.002 secs (0.001u,0.s) +Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.001u,0.s) Chars 2160 - 2200 [Arguments~run_writer~{W~E}~Mon...] 0. secs (0.u,0.s) diff --git a/theories/ITree.v.timing b/theories/ITree.v.timing index e9d42dbb..9613afa1 100644 --- a/theories/ITree.v.timing +++ b/theories/ITree.v.timing @@ -1 +1 @@ -Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.063 secs (0.05u,0.012s) +Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.071 secs (0.053u,0.017s) diff --git a/theories/ITreeFacts.v.timing b/theories/ITreeFacts.v.timing index 1ccfb9d5..80dab856 100644 --- a/theories/ITreeFacts.v.timing +++ b/theories/ITreeFacts.v.timing @@ -1 +1 @@ -Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.229 secs (0.201u,0.028s) +Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.249 secs (0.208u,0.037s) diff --git a/theories/Indexed/Function.v.timing b/theories/Indexed/Function.v.timing index c8367719..79279a41 100644 --- a/theories/Indexed/Function.v.timing +++ b/theories/Indexed/Function.v.timing @@ -1,4 +1,4 @@ -Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.014 secs (0.011u,0.003s) +Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.015 secs (0.011u,0.003s) Chars 352 - 378 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 428 - 482 [Definition~IFun~(E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 545 - 610 [Definition~apply_IFun~{E}~{F}~...] 0. secs (0.u,0.s) diff --git a/theories/Indexed/FunctionFacts.v.timing b/theories/Indexed/FunctionFacts.v.timing index 2982ee44..f0f4e8b2 100644 --- a/theories/Indexed/FunctionFacts.v.timing +++ b/theories/Indexed/FunctionFacts.v.timing @@ -1,5 +1,5 @@ -Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) -Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.009 secs (0.007u,0.001s) +Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.003s) +Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.01 secs (0.007u,0.002s) Chars 212 - 238 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 255 - 475 [#[global]~Instance~Proper_appl...] 0. secs (0.u,0.s) Chars 476 - 482 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Relation.v.timing b/theories/Indexed/Relation.v.timing index 80c43d15..859cac6d 100644 --- a/theories/Indexed/Relation.v.timing +++ b/theories/Indexed/Relation.v.timing @@ -1,5 +1,5 @@ -Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.009 secs (0.006u,0.003s) -Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) +Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.009 secs (0.005u,0.002s) +Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.006 secs (0.002u,0.001s) Chars 157 - 183 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 292 - 538 [Definition~i_respectful~{A~B~:...] 0. secs (0.u,0.s) Chars 540 - 718 [Definition~i_pointwise~{A~B~:~...] 0. secs (0.u,0.s) @@ -17,7 +17,7 @@ Chars 1445 - 1492 [(repeat~red;~intros;~red~in~Tr...] 0. secs (0.u,0.s) Chars 1493 - 1497 [Qed.] 0. secs (0.u,0.s) Chars 1499 - 1702 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 1703 - 1709 [Proof.] 0. secs (0.u,0.s) -Chars 1712 - 1741 [(split;~try~typeclasses~eauto).] 0.001 secs (0.u,0.s) +Chars 1712 - 1741 [(split;~try~typeclasses~eauto).] 0. secs (0.u,0.s) Chars 1742 - 1746 [Qed.] 0. secs (0.u,0.s) Chars 1748 - 1944 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) Chars 1945 - 1951 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Sum.v.timing b/theories/Indexed/Sum.v.timing index a8f02b05..172cd209 100644 --- a/theories/Indexed/Sum.v.timing +++ b/theories/Indexed/Sum.v.timing @@ -1,4 +1,4 @@ -Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.005 secs (0.003u,0.001s) +Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) Chars 189 - 212 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 213 - 237 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 368 - 461 [Variant~sum1~(E1~E2~:~Type~->~...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Handler.v.timing b/theories/Interp/Handler.v.timing index 04d2dedb..2b5bb153 100644 --- a/theories/Interp/Handler.v.timing +++ b/theories/Interp/Handler.v.timing @@ -1,15 +1,15 @@ Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.059 secs (0.047u,0.012s) +Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.064 secs (0.046u,0.013s) Chars 362 - 396 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 398 - 427 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 476 - 491 [Module~Handler.] 0. secs (0.u,0.s) Chars 726 - 818 [Definition~htrigger~{A}~{B}~(m...] 0. secs (0.u,0.s) Chars 971 - 1037 [Definition~id_~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0.001 secs (0.001u,0.s) +Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0.001 secs (0.u,0.s) Chars 1282 - 1360 [Definition~inl_~{E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 1404 - 1482 [Definition~inr_~{E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0. secs (0.u,0.s) -Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0.02 secs (0.018u,0.001s) +Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0.021 secs (0.018u,0.002s) Chars 2305 - 2405 [Definition~empty~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 2407 - 2419 [End~Handler.] 0. secs (0.u,0.s) Chars 2451 - 2507 [Definition~Handler~(E~F~:~Type...] 0. secs (0.u,0.s) diff --git a/theories/Interp/HandlerFacts.v.timing b/theories/Interp/HandlerFacts.v.timing index eb49c567..0fd12789 100644 --- a/theories/Interp/HandlerFacts.v.timing +++ b/theories/Interp/HandlerFacts.v.timing @@ -1,6 +1,6 @@ -Chars 63 - 99 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 63 - 99 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) Chars 101 - 176 [From~Stdlib~Require~Import~Set...] 0.003 secs (0.001u,0.001s) -Chars 178 - 417 [From~ITree~Require~Import~Basi...] 0.084 secs (0.07u,0.013s) +Chars 178 - 417 [From~ITree~Require~Import~Basi...] 0.098 secs (0.077u,0.017s) Chars 419 - 441 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 442 - 476 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 478 - 507 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) @@ -26,7 +26,7 @@ Chars 1017 - 1021 [Qed.] 0.001 secs (0.001u,0.s) Chars 1023 - 1068 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) Chars 1069 - 1075 [Proof.] 0. secs (0.u,0.s) Chars 1078 - 1090 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1093 - 1115 [(rewrite~interp_interp).] 0.053 secs (0.052u,0.s) +Chars 1093 - 1115 [(rewrite~interp_interp).] 0.055 secs (0.054u,0.s) Chars 1118 - 1130 [reflexivity.] 0. secs (0.u,0.s) Chars 1131 - 1135 [Qed.] 0.002 secs (0.002u,0.s) Chars 1137 - 1189 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) @@ -37,7 +37,7 @@ Chars 1231 - 1299 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) Chars 1309 - 1328 [(compute;~contradiction).] 0. secs (0.u,0.s) Chars 1329 - 1333 [Qed.] 0. secs (0.u,0.s) -Chars 1335 - 1487 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) +Chars 1335 - 1487 [Instance~Proper_Case_Handler~~...] 0.001 secs (0.001u,0.s) Chars 1488 - 1494 [Proof.] 0. secs (0.u,0.s) Chars 1497 - 1509 [(compute;~intros).] 0. secs (0.u,0.s) Chars 1512 - 1544 [(destruct~(_~:~sum1~_~_~_);~au...] 0. secs (0.u,0.s) @@ -45,26 +45,26 @@ Chars 1545 - 1549 [Qed.] 0.001 secs (0.001u,0.s) Chars 1551 - 1599 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) Chars 1600 - 1606 [Proof.] 0. secs (0.u,0.s) Chars 1609 - 1621 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1624 - 1647 [(rewrite~interp_trigger).] 0.018 secs (0.016u,0.001s) +Chars 1624 - 1647 [(rewrite~interp_trigger).] 0.019 secs (0.017u,0.001s) Chars 1650 - 1662 [reflexivity.] 0. secs (0.u,0.s) Chars 1663 - 1667 [Qed.] 0.001 secs (0.001u,0.s) Chars 1669 - 1717 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) Chars 1718 - 1724 [Proof.] 0. secs (0.u,0.s) Chars 1727 - 1739 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1742 - 1765 [(rewrite~interp_trigger).] 0.019 secs (0.015u,0.004s) +Chars 1742 - 1765 [(rewrite~interp_trigger).] 0.02 secs (0.015u,0.005s) Chars 1768 - 1780 [reflexivity.] 0. secs (0.u,0.s) -Chars 1781 - 1785 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1781 - 1785 [Qed.] 0.002 secs (0.001u,0.s) Chars 1787 - 1847 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) Chars 1848 - 1854 [Proof.] 0. secs (0.u,0.s) Chars 1857 - 1869 [(compute;~intros).] 0. secs (0.u,0.s) Chars 1872 - 1898 [(destruct~(_~:~sum1~_~_~_)).] 0.001 secs (0.001u,0.s) Chars 1901 - 1902 [-] 0. secs (0.u,0.s) -Chars 1903 - 1932 [(rewrite~<-~H,~interp_trigger).] 0.025 secs (0.023u,0.001s) +Chars 1903 - 1932 [(rewrite~<-~H,~interp_trigger).] 0.033 secs (0.027u,0.005s) Chars 1933 - 1945 [reflexivity.] 0. secs (0.u,0.s) Chars 1948 - 1949 [-] 0. secs (0.u,0.s) -Chars 1950 - 1980 [(rewrite~<-~H0,~interp_trigger).] 0.023 secs (0.022u,0.001s) +Chars 1950 - 1980 [(rewrite~<-~H0,~interp_trigger).] 0.029 secs (0.024u,0.004s) Chars 1981 - 1993 [reflexivity.] 0. secs (0.u,0.s) -Chars 1994 - 1998 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1994 - 1998 [Qed.] 0.003 secs (0.002u,0.s) Chars 2000 - 2059 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) Chars 2060 - 2066 [Proof.] 0. secs (0.u,0.s) Chars 2069 - 2094 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) @@ -78,16 +78,16 @@ Chars 2322 - 2326 [Qed.] 0.001 secs (0.001u,0.s) Chars 2328 - 2382 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) Chars 2383 - 2389 [Proof.] 0. secs (0.u,0.s) Chars 2392 - 2404 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 2407 - 2437 [(rewrite~interp_mrec_as_interp).] 0.002 secs (0.002u,0.s) +Chars 2407 - 2437 [(rewrite~interp_mrec_as_interp).] 0.003 secs (0.002u,0.s) Chars 2440 - 2452 [reflexivity.] 0. secs (0.u,0.s) -Chars 2453 - 2457 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2453 - 2457 [Qed.] 0.002 secs (0.001u,0.s) Chars 2459 - 2515 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) Chars 2516 - 2522 [Proof.] 0. secs (0.u,0.s) Chars 2525 - 2537 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 2540 - 2550 [(pattern~f).] 0.004 secs (0.004u,0.s) -Chars 2553 - 2651 [(match~goal~with~~|~|-~?G~?f~=...] 0. secs (0.u,0.s) +Chars 2540 - 2550 [(pattern~f).] 0.005 secs (0.005u,0.s) +Chars 2553 - 2651 [(match~goal~with~~|~|-~?G~?f~=...] 0.001 secs (0.u,0.s) Chars 2654 - 2655 [{] 0. secs (0.u,0.s) -Chars 2656 - 2711 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) +Chars 2656 - 2711 [(etransitivity;~[~etransitivit...] 0.002 secs (0.001u,0.s) Chars 2716 - 2717 [-] 0. secs (0.u,0.s) Chars 2718 - 2727 [symmetry.] 0. secs (0.u,0.s) Chars 2728 - 2765 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) @@ -105,142 +105,142 @@ Chars 2953 - 2965 [reflexivity.] 0. secs (0.u,0.s) Chars 2974 - 2975 [*] 0. secs (0.u,0.s) Chars 2976 - 2993 [(apply~tau_euttge).] 0. secs (0.u,0.s) Chars 3000 - 3001 [+] 0. secs (0.u,0.s) -Chars 3002 - 3021 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 3002 - 3021 [(rewrite~tau_euttge).] 0.016 secs (0.016u,0.s) Chars 3022 - 3034 [reflexivity.] 0. secs (0.u,0.s) Chars 3037 - 3038 [}] 0. secs (0.u,0.s) Chars 3041 - 3269 [(match~goal~with~~|~|-~_~_~(_~...] 0.002 secs (0.002u,0.s) -Chars 3272 - 3311 [(remember~(Tau~(f~T~a0))~as~t~...] 0.002 secs (0.001u,0.s) +Chars 3272 - 3311 [(remember~(Tau~(f~T~a0))~as~t~...] 0.002 secs (0.002u,0.s) Chars 3312 - 3324 [clear~tmp_t.] 0. secs (0.u,0.s) Chars 3399 - 3422 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) Chars 3426 - 3458 [(revert~t;~coinduction;~intros...] 0.006 secs (0.006u,0.s) -Chars 3461 - 3483 [(rewrite~(itree_eta~t)).] 0.025 secs (0.024u,0.s) +Chars 3461 - 3483 [(rewrite~(itree_eta~t)).] 0.024 secs (0.024u,0.s) Chars 3486 - 3507 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) Chars 3510 - 3511 [-] 0. secs (0.u,0.s) -Chars 3512 - 3539 [(rewrite~unfold_interp_mrec).] 0.023 secs (0.022u,0.s) +Chars 3512 - 3539 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) Chars 3540 - 3545 [bcbn.] 0. secs (0.u,0.s) -Chars 3551 - 3572 [(rewrite~2!interp_ret).] 0.045 secs (0.044u,0.s) -Chars 3577 - 3604 [(rewrite~unfold_interp_mrec).] 0.02 secs (0.02u,0.s) +Chars 3551 - 3572 [(rewrite~2!interp_ret).] 0.047 secs (0.046u,0.s) +Chars 3577 - 3604 [(rewrite~unfold_interp_mrec).] 0.02 secs (0.019u,0.s) Chars 3609 - 3621 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 3624 - 3625 [-] 0. secs (0.u,0.s) -Chars 3626 - 3653 [(rewrite~unfold_interp_mrec).] 0.023 secs (0.022u,0.s) -Chars 3654 - 3659 [bcbn.] 0.001 secs (0.u,0.s) -Chars 3665 - 3686 [(rewrite~2!interp_tau).] 0.048 secs (0.048u,0.s) -Chars 3691 - 3737 [(rewrite~(unfold_interp_mrec~_...] 0.023 secs (0.022u,0.s) +Chars 3626 - 3653 [(rewrite~unfold_interp_mrec).] 0.024 secs (0.023u,0.s) +Chars 3654 - 3659 [bcbn.] 0. secs (0.u,0.s) +Chars 3665 - 3686 [(rewrite~2!interp_tau).] 0.049 secs (0.048u,0.s) +Chars 3691 - 3737 [(rewrite~(unfold_interp_mrec~_...] 0.022 secs (0.022u,0.s) Chars 3742 - 3751 [now~taus.] 0. secs (0.u,0.s) Chars 3755 - 3756 [-] 0. secs (0.u,0.s) Chars 3757 - 3784 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) -Chars 3785 - 3790 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 3795 - 3814 [(rewrite~interp_vis).] 0.028 secs (0.028u,0.s) +Chars 3785 - 3790 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3795 - 3814 [(rewrite~interp_vis).] 0.027 secs (0.027u,0.s) Chars 3819 - 3836 [(destruct~e;~bcbn).] 0.001 secs (0.001u,0.s) Chars 3841 - 3842 [+] 0. secs (0.u,0.s) -Chars 3843 - 3862 [(rewrite~interp_tau).] 0.021 secs (0.021u,0.s) -Chars 3869 - 3909 [(rewrite~2!interp_mrec_bind,~i...] 0.07 secs (0.069u,0.s) +Chars 3843 - 3862 [(rewrite~interp_tau).] 0.022 secs (0.022u,0.s) +Chars 3869 - 3909 [(rewrite~2!interp_mrec_bind,~i...] 0.072 secs (0.07u,0.001s) Chars 3916 - 3924 [subst~h.] 0.003 secs (0.003u,0.s) -Chars 3932 - 3937 [bcbn.] 0.057 secs (0.056u,0.s) -Chars 3944 - 3967 [(rewrite~interp_trigger).] 0.043 secs (0.043u,0.s) +Chars 3932 - 3937 [bcbn.] 0.056 secs (0.055u,0.s) +Chars 3944 - 3967 [(rewrite~interp_trigger).] 0.043 secs (0.042u,0.s) Chars 3974 - 4001 [(rewrite~unfold_interp_mrec).] 0.04 secs (0.039u,0.s) -Chars 4003 - 4008 [bcbn.] 0.052 secs (0.051u,0.s) +Chars 4003 - 4008 [bcbn.] 0.051 secs (0.051u,0.s) Chars 4016 - 4044 [(rewrite~interp_mrec_trigger).] 0.037 secs (0.036u,0.s) -Chars 4045 - 4050 [bcbn.] 0.052 secs (0.052u,0.s) +Chars 4045 - 4050 [bcbn.] 0.052 secs (0.051u,0.s) Chars 4058 - 4080 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) -Chars 4209 - 4229 [(rewrite~!interp_tau).] 0.125 secs (0.124u,0.s) -Chars 4236 - 4283 [(rewrite~(unfold_interp_mrec~_...] 0.116 secs (0.115u,0.s) -Chars 4290 - 4308 [(rewrite~!bind_tau).] 0.103 secs (0.103u,0.s) +Chars 4209 - 4229 [(rewrite~!interp_tau).] 0.133 secs (0.13u,0.001s) +Chars 4236 - 4283 [(rewrite~(unfold_interp_mrec~_...] 0.12 secs (0.118u,0.001s) +Chars 4290 - 4308 [(rewrite~!bind_tau).] 0.106 secs (0.105u,0.s) Chars 4315 - 4320 [taus.] 0.001 secs (0.001u,0.s) -Chars 4321 - 4379 [(rewrite~tau_euttge,~<-~interp...] 0.151 secs (0.151u,0.s) -Chars 4386 - 4427 [setoid_rewrite~(tau_euttge~(in...] 0.073 secs (0.072u,0.s) -Chars 4434 - 4457 [(rewrite~<-~interp_bind).] 0.037 secs (0.037u,0.s) +Chars 4321 - 4379 [(rewrite~tau_euttge,~<-~interp...] 0.159 secs (0.157u,0.001s) +Chars 4386 - 4427 [setoid_rewrite~(tau_euttge~(in...] 0.077 secs (0.076u,0.s) +Chars 4434 - 4457 [(rewrite~<-~interp_bind).] 0.038 secs (0.037u,0.s) Chars 4464 - 4469 [auto.] 0. secs (0.u,0.s) Chars 4474 - 4475 [+] 0. secs (0.u,0.s) -Chars 4476 - 4495 [(rewrite~interp_vis).] 0.022 secs (0.022u,0.s) +Chars 4476 - 4495 [(rewrite~interp_vis).] 0.022 secs (0.021u,0.s) Chars 4502 - 4527 [(rewrite~interp_mrec_bind).] 0.023 secs (0.023u,0.s) Chars 4534 - 4548 [(subst~h;~bcbn).] 0.004 secs (0.004u,0.s) -Chars 4555 - 4561 [ebind.] 0.012 secs (0.012u,0.s) +Chars 4555 - 4561 [ebind.] 0.011 secs (0.011u,0.s) Chars 4562 - 4582 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) Chars 4590 - 4591 [{] 0. secs (0.u,0.s) Chars 4592 - 4602 [(do~2~step).] 0.012 secs (0.012u,0.s) -Chars 4603 - 4648 [(rewrite~interp_mrec_as_interp...] 0.025 secs (0.024u,0.s) -Chars 4657 - 4685 [(rewrite~<-~interp_id_h~~at~1).] 0.07 secs (0.069u,0.s) +Chars 4603 - 4648 [(rewrite~interp_mrec_as_interp...] 0.025 secs (0.025u,0.s) +Chars 4657 - 4685 [(rewrite~<-~interp_id_h~~at~1).] 0.069 secs (0.068u,0.001s) Chars 4694 - 4730 [(eapply~eutt_interp;~try~refle...] 0.002 secs (0.002u,0.s) Chars 4739 - 4750 [(intros~?~?).] 0. secs (0.u,0.s) Chars 4759 - 4787 [(rewrite~interp_trigger;~cbn).] 0.011 secs (0.011u,0.s) Chars 4796 - 4808 [reflexivity.] 0. secs (0.u,0.s) Chars 4809 - 4810 [}] 0. secs (0.u,0.s) Chars 4817 - 4831 [(intros~?~_~[]).] 0.001 secs (0.001u,0.s) -Chars 4838 - 4885 [(rewrite~(unfold_interp_mrec~_...] 0.038 secs (0.037u,0.s) +Chars 4838 - 4885 [(rewrite~(unfold_interp_mrec~_...] 0.042 secs (0.041u,0.s) Chars 4892 - 4897 [taus.] 0. secs (0.u,0.s) Chars 4905 - 4924 [(rewrite~tau_euttge).] 0.016 secs (0.016u,0.s) Chars 4931 - 4941 [(apply~CIH).] 0.001 secs (0.001u,0.s) -Chars 4943 - 4947 [Qed.] 0.145 secs (0.143u,0.001s) +Chars 4943 - 4947 [Qed.] 0.153 secs (0.148u,0.003s) Chars 4949 - 4973 [Section~DinatSimulation.] 0. secs (0.u,0.s) Chars 4975 - 5006 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 5007 - 5069 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) Chars 5070 - 5089 [Context~{R~:~Type}.] 0. secs (0.u,0.s) Chars 5091 - 5161 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5163 - 5623 [Inductive~interleaved~:~itree~...] 0.005 secs (0.005u,0.s) +Chars 5163 - 5623 [Inductive~interleaved~:~itree~...] 0.006 secs (0.006u,0.s) Chars 5624 - 5671 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) -Chars 5673 - 5717 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) +Chars 5673 - 5717 [Let~hg~:=~@case_~_~Handler~_~_...] 0.001 secs (0.u,0.s) Chars 5718 - 5762 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) Chars 5764 - 5936 [Theorem~interleaved_mrec~:~~~f...] 0.003 secs (0.003u,0.s) Chars 5937 - 5965 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) Chars 5969 - 5989 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) Chars 5992 - 6004 [(induction~H).] 0.001 secs (0.001u,0.s) Chars 6007 - 6008 [-] 0. secs (0.u,0.s) -Chars 6009 - 6044 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.036u,0.s) +Chars 6009 - 6044 [(rewrite~2!unfold_interp_mrec;...] 0.038 secs (0.037u,0.s) Chars 6045 - 6057 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 6062 - 6063 [-] 0. secs (0.u,0.s) -Chars 6064 - 6108 [(rewrite~(itree_eta~t);~destru...] 0.024 secs (0.024u,0.s) +Chars 6064 - 6108 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.024u,0.s) Chars 6113 - 6114 [+] 0. secs (0.u,0.s) -Chars 6115 - 6148 [(rewrite~interp_ret,~2!bind_re...] 0.055 secs (0.054u,0.s) +Chars 6115 - 6148 [(rewrite~interp_ret,~2!bind_re...] 0.059 secs (0.058u,0.s) Chars 6149 - 6154 [auto.] 0. secs (0.u,0.s) Chars 6159 - 6160 [+] 0. secs (0.u,0.s) -Chars 6161 - 6220 [(rewrite~interp_tau,~2!bind_ta...] 0.101 secs (0.101u,0.s) +Chars 6161 - 6220 [(rewrite~interp_tau,~2!bind_ta...] 0.105 secs (0.103u,0.001s) Chars 6227 - 6234 [taus~...] 0.001 secs (0.001u,0.s) Chars 6241 - 6242 [+] 0. secs (0.u,0.s) -Chars 6243 - 6272 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.044u,0.s) -Chars 6279 - 6297 [(rewrite~bind_bind).] 0.02 secs (0.02u,0.s) -Chars 6304 - 6353 [(rewrite~(unfold_interp_mrec~_...] 0.021 secs (0.02u,0.s) -Chars 6360 - 6377 [(destruct~e;~bcbn).] 0.043 secs (0.043u,0.s) -Chars 6378 - 6419 [setoid_rewrite~(tau_euttge~(in...] 0.074 secs (0.074u,0.s) +Chars 6243 - 6272 [(rewrite~interp_vis,~bind_vis).] 0.046 secs (0.046u,0.s) +Chars 6279 - 6297 [(rewrite~bind_bind).] 0.021 secs (0.021u,0.s) +Chars 6304 - 6353 [(rewrite~(unfold_interp_mrec~_...] 0.022 secs (0.022u,0.s) +Chars 6360 - 6377 [(destruct~e;~bcbn).] 0.044 secs (0.043u,0.s) +Chars 6378 - 6419 [setoid_rewrite~(tau_euttge~(in...] 0.078 secs (0.077u,0.s) Chars 6426 - 6427 [*] 0. secs (0.u,0.s) Chars 6428 - 6475 [(unfold~cat~at~3,~Cat_Handler~...] 0. secs (0.u,0.s) Chars 6484 - 6519 [(change~(g~X~b)~with~(Tau~(g0~...] 0. secs (0.u,0.s) -Chars 6528 - 6571 [(rewrite~bind_tau,~unfold_inte...] 0.042 secs (0.042u,0.s) +Chars 6528 - 6571 [(rewrite~bind_tau,~unfold_inte...] 0.043 secs (0.043u,0.s) Chars 6580 - 6585 [taus.] 0. secs (0.u,0.s) Chars 6586 - 6607 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) Chars 6614 - 6615 [*] 0. secs (0.u,0.s) Chars 6616 - 6678 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) -Chars 6687 - 6708 [(rewrite~bind_trigger).] 0.018 secs (0.018u,0.s) -Chars 6717 - 6750 [(rewrite~unfold_interp_mrec;~b...] 0.019 secs (0.018u,0.s) +Chars 6687 - 6708 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) +Chars 6717 - 6750 [(rewrite~unfold_interp_mrec;~b...] 0.02 secs (0.02u,0.s) Chars 6759 - 6779 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 6780 - 6808 [(repeat~rewrite~tau_euttge)~...] 0.026 secs (0.026u,0.s) +Chars 6780 - 6808 [(repeat~rewrite~tau_euttge)~...] 0.028 secs (0.027u,0.s) Chars 6812 - 6813 [-] 0. secs (0.u,0.s) Chars 6814 - 6858 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.025u,0.s) Chars 6863 - 6864 [+] 0. secs (0.u,0.s) -Chars 6865 - 6898 [(rewrite~interp_ret,~2!bind_re...] 0.056 secs (0.056u,0.s) +Chars 6865 - 6898 [(rewrite~interp_ret,~2!bind_re...] 0.06 secs (0.059u,0.s) Chars 6899 - 6904 [auto.] 0. secs (0.u,0.s) Chars 6909 - 6910 [+] 0. secs (0.u,0.s) -Chars 6911 - 6970 [(rewrite~interp_tau,~2!bind_ta...] 0.103 secs (0.102u,0.s) +Chars 6911 - 6970 [(rewrite~interp_tau,~2!bind_ta...] 0.105 secs (0.103u,0.001s) Chars 6977 - 6984 [taus~...] 0.001 secs (0.001u,0.s) Chars 6991 - 6992 [+] 0. secs (0.u,0.s) -Chars 6993 - 7022 [(rewrite~interp_vis,~bind_vis).] 0.043 secs (0.043u,0.s) +Chars 6993 - 7022 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.043u,0.s) Chars 7029 - 7047 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) Chars 7054 - 7103 [(rewrite~(unfold_interp_mrec~_...] 0.021 secs (0.021u,0.s) -Chars 7110 - 7127 [(destruct~e;~bcbn).] 0.044 secs (0.044u,0.s) -Chars 7128 - 7169 [setoid_rewrite~(tau_euttge~(in...] 0.076 secs (0.076u,0.s) +Chars 7110 - 7127 [(destruct~e;~bcbn).] 0.045 secs (0.044u,0.s) +Chars 7128 - 7169 [setoid_rewrite~(tau_euttge~(in...] 0.075 secs (0.075u,0.s) Chars 7176 - 7177 [*] 0. secs (0.u,0.s) Chars 7178 - 7225 [(unfold~cat~at~2,~Cat_Handler~...] 0. secs (0.u,0.s) Chars 7234 - 7269 [(change~(f~X~a)~with~(Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7278 - 7336 [(rewrite~!bind_tau,~(unfold_in...] 0.047 secs (0.047u,0.s) +Chars 7278 - 7336 [(rewrite~!bind_tau,~(unfold_in...] 0.048 secs (0.048u,0.s) Chars 7345 - 7350 [taus.] 0. secs (0.u,0.s) Chars 7351 - 7372 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) Chars 7380 - 7381 [*] 0. secs (0.u,0.s) Chars 7382 - 7444 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) Chars 7453 - 7474 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) -Chars 7483 - 7516 [(rewrite~unfold_interp_mrec;~b...] 0.021 secs (0.021u,0.s) +Chars 7483 - 7516 [(rewrite~unfold_interp_mrec;~b...] 0.022 secs (0.022u,0.s) Chars 7525 - 7545 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 7546 - 7574 [(repeat~rewrite~tau_euttge)~...] 0.029 secs (0.029u,0.s) -Chars 7575 - 7579 [Qed.] 0.046 secs (0.046u,0.s) +Chars 7546 - 7574 [(repeat~rewrite~tau_euttge)~...] 0.03 secs (0.029u,0.s) +Chars 7575 - 7579 [Qed.] 0.046 secs (0.045u,0.s) Chars 7581 - 7601 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) Chars 7603 - 7621 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) Chars 7623 - 7683 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) @@ -254,9 +254,9 @@ Chars 7988 - 7997 [(compute~in~H).] 0. secs (0.u,0.s) Chars 7998 - 8051 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) Chars 8056 - 8057 [-] 0. secs (0.u,0.s) Chars 8058 - 8067 [symmetry.] 0. secs (0.u,0.s) -Chars 8068 - 8110 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) +Chars 8068 - 8110 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.u,0.s) Chars 8117 - 8131 [1:~(intros~?~?).] 0. secs (0.u,0.s) -Chars 8138 - 8200 [1,~2:~(rewrite~tau_euttge;~app...] 0.017 secs (0.017u,0.s) +Chars 8138 - 8200 [1,~2:~(rewrite~tau_euttge;~app...] 0.018 secs (0.018u,0.s) Chars 8207 - 8257 [1,~2:~(intros~?~[];~[~apply~ta...] 0. secs (0.u,0.s) Chars 8262 - 8263 [-] 0. secs (0.u,0.s) Chars 8264 - 8324 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) @@ -264,13 +264,13 @@ Chars 8331 - 8360 [(intros~?~[];~try~reflexivity).] 0.002 secs (0.002u,0.s) Chars 8367 - 8386 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) Chars 8387 - 8412 [(apply~euttge_interp_mrec).] 0. secs (0.u,0.s) Chars 8419 - 8430 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 8437 - 8456 [(rewrite~tau_euttge).] 0.008 secs (0.007u,0.s) +Chars 8437 - 8456 [(rewrite~tau_euttge).] 0.007 secs (0.007u,0.s) Chars 8463 - 8505 [all:~(apply~euttge_interp;~try...] 0.002 secs (0.002u,0.s) Chars 8512 - 8563 [all:~(intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) Chars 8566 - 8567 [}] 0. secs (0.u,0.s) -Chars 8570 - 8603 [(rewrite~<-~interp_mrec_as_int...] 0.003 secs (0.003u,0.s) +Chars 8570 - 8603 [(rewrite~<-~interp_mrec_as_int...] 0.004 secs (0.003u,0.s) Chars 8607 - 8644 [(rewrite~<-~(bind_ret_r~(inter...] 0.017 secs (0.017u,0.s) -Chars 8647 - 8685 [(rewrite~<-~(bind_ret_r~(f~_~a...] 0.023 secs (0.022u,0.s) +Chars 8647 - 8685 [(rewrite~<-~(bind_ret_r~(f~_~a...] 0.023 secs (0.023u,0.s) Chars 8689 - 8712 [(apply~interleaved_mrec).] 0. secs (0.u,0.s) Chars 8715 - 8732 [(do~2~constructor).] 0. secs (0.u,0.s) Chars 8733 - 8737 [Qed.] 0.015 secs (0.015u,0.s) @@ -301,38 +301,38 @@ Chars 10088 - 10105 [(apply~tau_euttge).] 0. secs (0.u,0.s) Chars 10108 - 10109 [}] 0. secs (0.u,0.s) Chars 10112 - 10135 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) Chars 10140 - 10149 [revert~t.] 0. secs (0.u,0.s) -Chars 10150 - 10170 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) -Chars 10174 - 10224 [(rewrite~(itree_eta~t);~destru...] 0.022 secs (0.022u,0.s) -Chars 10227 - 10293 [all:~(rewrite~(unfold_interp_m...] 0.119 secs (0.118u,0.s) -Chars 10296 - 10334 [1,~2:~(rewrite~unfold_interp_m...] 0.072 secs (0.072u,0.s) -Chars 10337 - 10400 [1,~2:~(rewrite~(unfold_interp_...] 0.042 secs (0.042u,0.s) +Chars 10150 - 10170 [(coinduction;~intros).] 0.004 secs (0.004u,0.s) +Chars 10174 - 10224 [(rewrite~(itree_eta~t);~destru...] 0.024 secs (0.023u,0.s) +Chars 10227 - 10293 [all:~(rewrite~(unfold_interp_m...] 0.132 secs (0.129u,0.001s) +Chars 10296 - 10334 [1,~2:~(rewrite~unfold_interp_m...] 0.076 secs (0.076u,0.s) +Chars 10337 - 10400 [1,~2:~(rewrite~(unfold_interp_...] 0.043 secs (0.042u,0.s) Chars 10403 - 10408 [taus.] 0. secs (0.u,0.s) Chars 10409 - 10419 [(apply~CIH).] 0. secs (0.u,0.s) Chars 10423 - 10434 [(destruct~e).] 0. secs (0.u,0.s) Chars 10437 - 10438 [-] 0. secs (0.u,0.s) -Chars 10439 - 10486 [(rewrite~(interp_mrec_bind~_~(...] 0.02 secs (0.02u,0.s) -Chars 10491 - 10525 [(rewrite~interp_mrec_trigger;~...] 0.013 secs (0.012u,0.s) +Chars 10439 - 10486 [(rewrite~(interp_mrec_bind~_~(...] 0.021 secs (0.021u,0.s) +Chars 10491 - 10525 [(rewrite~interp_mrec_trigger;~...] 0.013 secs (0.013u,0.s) Chars 10530 - 10552 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) -Chars 10557 - 10620 [(remember~(f~X~a0)~as~fxa~eqn:...] 0.002 secs (0.002u,0.s) -Chars 10625 - 10670 [(rewrite~interp_tau,~unfold_in...] 0.077 secs (0.076u,0.s) -Chars 10675 - 10722 [(rewrite~(unfold_interp_mrec~_...] 0.052 secs (0.052u,0.s) -Chars 10727 - 10745 [(rewrite~!bind_tau).] 0.051 secs (0.05u,0.s) +Chars 10557 - 10620 [(remember~(f~X~a0)~as~fxa~eqn:...] 0.003 secs (0.003u,0.s) +Chars 10625 - 10670 [(rewrite~interp_tau,~unfold_in...] 0.079 secs (0.078u,0.s) +Chars 10675 - 10722 [(rewrite~(unfold_interp_mrec~_...] 0.052 secs (0.051u,0.s) +Chars 10727 - 10745 [(rewrite~!bind_tau).] 0.052 secs (0.051u,0.s) Chars 10750 - 10755 [taus.] 0. secs (0.u,0.s) Chars 10761 - 10780 [(rewrite~tau_euttge).] 0.009 secs (0.009u,0.s) -Chars 10781 - 10807 [setoid_rewrite~tau_euttge.] 0.023 secs (0.022u,0.s) -Chars 10812 - 10856 [(rewrite~<-~interp_mrec_bind,~...] 0.041 secs (0.04u,0.s) +Chars 10781 - 10807 [setoid_rewrite~tau_euttge.] 0.023 secs (0.023u,0.s) +Chars 10812 - 10856 [(rewrite~<-~interp_mrec_bind,~...] 0.04 secs (0.04u,0.s) Chars 10861 - 10866 [auto.] 0. secs (0.u,0.s) Chars 10869 - 10870 [-] 0. secs (0.u,0.s) -Chars 10871 - 10892 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) +Chars 10871 - 10892 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) Chars 10897 - 10923 [setoid_rewrite~tau_euttge.] 0.022 secs (0.021u,0.s) -Chars 10928 - 10963 [(rewrite~2!unfold_interp_mrec;...] 0.039 secs (0.039u,0.s) +Chars 10928 - 10963 [(rewrite~2!unfold_interp_mrec;...] 0.04 secs (0.04u,0.s) Chars 10968 - 10979 [(destruct~s).] 0. secs (0.u,0.s) Chars 10980 - 10985 [taus.] 0. secs (0.u,0.s) -Chars 10991 - 11035 [(rewrite~<-~interp_mrec_bind,~...] 0.035 secs (0.035u,0.s) +Chars 10991 - 11035 [(rewrite~<-~interp_mrec_bind,~...] 0.036 secs (0.036u,0.s) Chars 11040 - 11050 [(apply~CIH).] 0. secs (0.u,0.s) Chars 11056 - 11076 [(constructor;~intros).] 0. secs (0.u,0.s) Chars 11077 - 11092 [now~step;~taus.] 0.003 secs (0.003u,0.s) -Chars 11095 - 11099 [Qed.] 0.059 secs (0.059u,0.s) +Chars 11095 - 11099 [Qed.] 0.06 secs (0.059u,0.s) Chars 11101 - 11160 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) Chars 11161 - 11167 [Proof.] 0. secs (0.u,0.s) Chars 11170 - 11195 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) diff --git a/theories/Interp/Interp.v.timing b/theories/Interp/Interp.v.timing index 2d86227f..6ca99700 100644 --- a/theories/Interp/Interp.v.timing +++ b/theories/Interp/Interp.v.timing @@ -1,5 +1,5 @@ Chars 1099 - 1172 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.042 secs (0.032u,0.009s) +Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.054 secs (0.031u,0.009s) Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.001u,0.s) Chars 2077 - 2212 [Definition~translate~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 2214 - 2248 [Arguments~translate~{E~F}~&~h~...] 0. secs (0.u,0.s) diff --git a/theories/Interp/InterpFacts.v.timing b/theories/Interp/InterpFacts.v.timing index e4bb0869..c1b6bdf9 100644 --- a/theories/Interp/InterpFacts.v.timing +++ b/theories/Interp/InterpFacts.v.timing @@ -1,6 +1,6 @@ -Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) -Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.003 secs (0.003u,0.s) -Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.079 secs (0.066u,0.012s) +Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.007u,0.003s) +Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) +Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.081 secs (0.066u,0.014s) Chars 701 - 723 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 740 - 837 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 838 - 844 [Proof.] 0. secs (0.u,0.s) @@ -10,7 +10,7 @@ Chars 924 - 928 [Qed.] 0. secs (0.u,0.s) Chars 930 - 1031 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 1032 - 1038 [Proof.] 0. secs (0.u,0.s) Chars 1041 - 1061 [(unfold~eutt_Handler).] 0. secs (0.u,0.s) -Chars 1064 - 1115 [(apply~(Equivalence_i_pointwis...] 0. secs (0.u,0.s) +Chars 1064 - 1115 [(apply~(Equivalence_i_pointwis...] 0.001 secs (0.001u,0.s) Chars 1116 - 1120 [Qed.] 0. secs (0.u,0.s) Chars 1122 - 1213 [Definition~Equivalence_eq2_Han...] 0. secs (0.u,0.s) Chars 1214 - 1220 [Proof.] 0. secs (0.u,0.s) @@ -21,9 +21,9 @@ Chars 1528 - 1634 [Lemma~unfold_interp~{E}~{F}~{R...] 0. secs (0.u,0.s) Chars 1635 - 1641 [Proof.] 0. secs (0.u,0.s) Chars 1644 - 1688 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) Chars 1689 - 1709 [(rewrite~unfold_iter).] 0.004 secs (0.004u,0.s) -Chars 1712 - 1774 [(destruct~(observe~t);~cbn;~re...] 0.054 secs (0.054u,0.s) +Chars 1712 - 1774 [(destruct~(observe~t);~cbn;~re...] 0.053 secs (0.052u,0.s) Chars 1775 - 1796 [all:~(try~reflexivity).] 0. secs (0.u,0.s) -Chars 1797 - 1801 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1797 - 1801 [Qed.] 0.004 secs (0.004u,0.s) Chars 1936 - 2017 [Lemma~interp_ret~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2018 - 2024 [Proof.] 0. secs (0.u,0.s) Chars 2025 - 2047 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) @@ -36,16 +36,16 @@ Chars 2210 - 2222 [reflexivity.] 0. secs (0.u,0.s) Chars 2223 - 2227 [Qed.] 0.001 secs (0.001u,0.s) Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0.001 secs (0.001u,0.s) Chars 2395 - 2401 [Proof.] 0. secs (0.u,0.s) -Chars 2402 - 2424 [(rewrite~unfold_interp).] 0.002 secs (0.002u,0.s) +Chars 2402 - 2424 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) Chars 2425 - 2437 [reflexivity.] 0. secs (0.u,0.s) Chars 2438 - 2442 [Qed.] 0.001 secs (0.001u,0.s) Chars 2444 - 2581 [Lemma~interp_trigger~{E~F~:~Ty...] 0. secs (0.u,0.s) Chars 2582 - 2588 [Proof.] 0. secs (0.u,0.s) Chars 2591 - 2612 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) Chars 2613 - 2632 [(rewrite~interp_vis).] 0.016 secs (0.013u,0.002s) -Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.021 secs (0.016u,0.004s) -Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.s) -Chars 2691 - 2710 [(rewrite~bind_ret_r).] 0.012 secs (0.012u,0.s) +Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.02 secs (0.015u,0.004s) +Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.001s) +Chars 2691 - 2710 [(rewrite~bind_ret_r).] 0.011 secs (0.011u,0.s) Chars 2713 - 2725 [reflexivity.] 0. secs (0.u,0.s) Chars 2726 - 2730 [Qed.] 0.002 secs (0.002u,0.s) Chars 2732 - 2775 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -56,34 +56,34 @@ Chars 3059 - 3065 [Proof.] 0. secs (0.u,0.s) Chars 3068 - 3085 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) Chars 3088 - 3106 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3107 - 3114 [(intros).] 0. secs (0.u,0.s) -Chars 3118 - 3142 [(rewrite~2!unfold_interp).] 0.032 secs (0.031u,0.001s) +Chars 3118 - 3142 [(rewrite~2!unfold_interp).] 0.031 secs (0.03u,0.001s) Chars 3145 - 3155 [step~in~H.] 0.001 secs (0.001u,0.s) -Chars 3160 - 3211 [(destruct~H;~cbn;~subst;~try~e...] 0.057 secs (0.056u,0.s) +Chars 3160 - 3211 [(destruct~H;~cbn;~subst;~try~e...] 0.052 secs (0.052u,0.s) Chars 3214 - 3252 [(unfold~eq_Handler,~i_pointwis...] 0. secs (0.u,0.s) -Chars 3256 - 3268 [(rewrite~Hfg).] 0.228 secs (0.227u,0.001s) +Chars 3256 - 3268 [(rewrite~Hfg).] 0.221 secs (0.218u,0.002s) Chars 3272 - 3279 [to_mon.] 0. secs (0.u,0.s) -Chars 3283 - 3289 [ebind.] 0.009 secs (0.009u,0.s) -Chars 3290 - 3305 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) +Chars 3283 - 3289 [ebind.] 0.008 secs (0.008u,0.s) +Chars 3290 - 3305 [(intros~?~?~[=<-]).] 0.001 secs (0.001u,0.s) Chars 3306 - 3311 [etau.] 0.002 secs (0.002u,0.s) -Chars 3313 - 3317 [Qed.] 0.012 secs (0.012u,0.s) -Chars 3319 - 3438 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) +Chars 3313 - 3317 [Qed.] 0.014 secs (0.013u,0.s) +Chars 3319 - 3438 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.u,0.s) Chars 3439 - 3445 [Proof.] 0. secs (0.u,0.s) Chars 3448 - 3459 [(repeat~red).] 0. secs (0.u,0.s) Chars 3462 - 3485 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) Chars 3488 - 3500 [reflexivity.] 0. secs (0.u,0.s) -Chars 3501 - 3505 [Qed.] 0. secs (0.u,0.s) +Chars 3501 - 3505 [Qed.] 0.001 secs (0.001u,0.s) Chars 3507 - 3666 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 3667 - 3673 [Proof.] 0. secs (0.u,0.s) Chars 3676 - 3687 [(repeat~red).] 0. secs (0.u,0.s) Chars 3690 - 3705 [intros~until~T.] 0. secs (0.u,0.s) Chars 3708 - 3720 [coinduction.] 0.002 secs (0.002u,0.s) Chars 3721 - 3728 [(intros).] 0. secs (0.u,0.s) -Chars 3731 - 3754 [(rewrite~!unfold_interp).] 0.032 secs (0.032u,0.s) -Chars 3755 - 3766 [step~in~H0.] 0. secs (0.u,0.s) -Chars 3770 - 3829 [(induction~H0;~intros;~subst;~...] 0.381 secs (0.377u,0.001s) +Chars 3731 - 3754 [(rewrite~!unfold_interp).] 0.04 secs (0.036u,0.004s) +Chars 3755 - 3766 [step~in~H0.] 0.001 secs (0.u,0.s) +Chars 3770 - 3829 [(induction~H0;~intros;~subst;~...] 0.401 secs (0.385u,0.009s) Chars 3835 - 3858 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) Chars 3862 - 3863 [-] 0. secs (0.u,0.s) -Chars 3864 - 3874 [(do~2~step).] 0.015 secs (0.015u,0.s) +Chars 3864 - 3874 [(do~2~step).] 0.014 secs (0.014u,0.s) Chars 3875 - 3883 [(apply~H).] 0. secs (0.u,0.s) Chars 3887 - 3888 [-] 0. secs (0.u,0.s) Chars 3889 - 3904 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) @@ -91,26 +91,26 @@ Chars 3905 - 3928 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) Chars 3932 - 3933 [-] 0. secs (0.u,0.s) Chars 3934 - 3939 [taul.] 0. secs (0.u,0.s) Chars 3940 - 3947 [to_mon.] 0. secs (0.u,0.s) -Chars 3948 - 3970 [(rewrite~unfold_interp).] 0.015 secs (0.014u,0.s) +Chars 3948 - 3970 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) Chars 3971 - 3985 [(apply~IHeqitF).] 0. secs (0.u,0.s) Chars 3989 - 3990 [-] 0. secs (0.u,0.s) Chars 3991 - 3996 [taur.] 0. secs (0.u,0.s) Chars 3997 - 4004 [to_mon.] 0. secs (0.u,0.s) -Chars 4005 - 4027 [(rewrite~unfold_interp).] 0.017 secs (0.017u,0.s) +Chars 4005 - 4027 [(rewrite~unfold_interp).] 0.016 secs (0.016u,0.s) Chars 4028 - 4042 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4044 - 4048 [Qed.] 0.011 secs (0.011u,0.s) +Chars 4044 - 4048 [Qed.] 0.012 secs (0.012u,0.s) Chars 4051 - 4293 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) Chars 4294 - 4300 [Proof.] 0. secs (0.u,0.s) Chars 4303 - 4314 [(repeat~red).] 0. secs (0.u,0.s) Chars 4317 - 4332 [intros~until~T.] 0. secs (0.u,0.s) Chars 4335 - 4347 [coinduction.] 0.002 secs (0.002u,0.s) Chars 4348 - 4355 [(intros).] 0. secs (0.u,0.s) -Chars 4358 - 4381 [(rewrite~!unfold_interp).] 0.022 secs (0.022u,0.s) +Chars 4358 - 4381 [(rewrite~!unfold_interp).] 0.022 secs (0.021u,0.s) Chars 4382 - 4393 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4397 - 4466 [(induction~H0;~intros;~subst;~...] 0.266 secs (0.263u,0.001s) -Chars 4469 - 4492 [(eapply~eqit_bind_chain).] 0.001 secs (0.001u,0.s) +Chars 4397 - 4466 [(induction~H0;~intros;~subst;~...] 0.269 secs (0.265u,0.002s) +Chars 4469 - 4492 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) Chars 4496 - 4497 [-] 0. secs (0.u,0.s) -Chars 4498 - 4508 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 4498 - 4508 [(do~2~step).] 0.015 secs (0.015u,0.s) Chars 4509 - 4517 [(apply~H).] 0. secs (0.u,0.s) Chars 4521 - 4522 [-] 0. secs (0.u,0.s) Chars 4523 - 4538 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) @@ -118,28 +118,28 @@ Chars 4539 - 4562 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) Chars 4566 - 4567 [-] 0. secs (0.u,0.s) Chars 4568 - 4573 [taul.] 0. secs (0.u,0.s) Chars 4574 - 4581 [to_mon.] 0. secs (0.u,0.s) -Chars 4582 - 4604 [(rewrite~unfold_interp).] 0.015 secs (0.014u,0.s) +Chars 4582 - 4604 [(rewrite~unfold_interp).] 0.014 secs (0.014u,0.s) Chars 4605 - 4619 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4621 - 4625 [Qed.] 0.026 secs (0.019u,0.s) -Chars 4627 - 4805 [#[global]~Instance~eutt_interp...] 0.001 secs (0.u,0.s) +Chars 4621 - 4625 [Qed.] 0.013 secs (0.013u,0.s) +Chars 4627 - 4805 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 4806 - 4812 [Proof.] 0. secs (0.u,0.s) Chars 4815 - 4826 [(repeat~red).] 0. secs (0.u,0.s) Chars 4829 - 4841 [coinduction.] 0.002 secs (0.002u,0.s) Chars 4842 - 4849 [(intros).] 0. secs (0.u,0.s) -Chars 4852 - 4875 [(rewrite~!unfold_interp).] 0.031 secs (0.031u,0.s) +Chars 4852 - 4875 [(rewrite~!unfold_interp).] 0.032 secs (0.031u,0.s) Chars 4878 - 4888 [step~in~H.] 0. secs (0.u,0.s) -Chars 4891 - 4944 [(induction~H;~cbn;~try~easy;~e...] 0.437 secs (0.435u,0.001s) +Chars 4891 - 4944 [(induction~H;~cbn;~try~easy;~e...] 0.44 secs (0.436u,0.003s) Chars 4948 - 4949 [-] 0. secs (0.u,0.s) -Chars 4950 - 4956 [ebind.] 0.021 secs (0.021u,0.s) -Chars 4957 - 4995 [(intros;~subst;~taus;~eauto~wi...] 0.004 secs (0.004u,0.s) +Chars 4950 - 4956 [ebind.] 0.022 secs (0.022u,0.s) +Chars 4957 - 4995 [(intros;~subst;~taus;~eauto~wi...] 0.005 secs (0.004u,0.s) Chars 4999 - 5000 [-] 0. secs (0.u,0.s) -Chars 5001 - 5023 [(rewrite~unfold_interp).] 0.016 secs (0.016u,0.s) +Chars 5001 - 5023 [(rewrite~unfold_interp).] 0.017 secs (0.016u,0.s) Chars 5024 - 5033 [now~taul.] 0. secs (0.u,0.s) Chars 5037 - 5038 [-] 0. secs (0.u,0.s) -Chars 5039 - 5061 [(rewrite~unfold_interp).] 0.016 secs (0.015u,0.s) +Chars 5039 - 5061 [(rewrite~unfold_interp).] 0.018 secs (0.018u,0.s) Chars 5062 - 5071 [now~taur.] 0. secs (0.u,0.s) -Chars 5073 - 5077 [Qed.] 0.01 secs (0.01u,0.s) -Chars 5079 - 5242 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) +Chars 5073 - 5077 [Qed.] 0.011 secs (0.011u,0.s) +Chars 5079 - 5242 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) Chars 5243 - 5249 [Proof.] 0. secs (0.u,0.s) Chars 5252 - 5263 [(repeat~red).] 0. secs (0.u,0.s) Chars 5264 - 5284 [(apply~euttge_interp).] 0. secs (0.u,0.s) @@ -149,30 +149,30 @@ Chars 5767 - 5945 [Lemma~interp_bind~{E}~{F}~{R}~...] 0.001 secs (0.001u,0.s) Chars 5946 - 5952 [Proof.] 0. secs (0.u,0.s) Chars 5955 - 5968 [revert~R~t~k.] 0. secs (0.u,0.s) Chars 5969 - 5989 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) -Chars 5993 - 6032 [(rewrite~unfold_bind,~(unfold_...] 0.035 secs (0.035u,0.s) -Chars 6035 - 6069 [(destruct~(observe~t);~cbn;~to...] 0.002 secs (0.002u,0.s) +Chars 5993 - 6032 [(rewrite~unfold_bind,~(unfold_...] 0.039 secs (0.038u,0.s) +Chars 6035 - 6069 [(destruct~(observe~t);~cbn;~to...] 0.003 secs (0.003u,0.s) Chars 6073 - 6074 [-] 0. secs (0.u,0.s) -Chars 6075 - 6094 [(rewrite~bind_ret_l).] 0.018 secs (0.017u,0.s) -Chars 6095 - 6113 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 6075 - 6094 [(rewrite~bind_ret_l).] 0.019 secs (0.019u,0.s) +Chars 6095 - 6113 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) Chars 6116 - 6117 [-] 0. secs (0.u,0.s) Chars 6118 - 6123 [taus.] 0. secs (0.u,0.s) Chars 6124 - 6135 [fold_subst.] 0. secs (0.u,0.s) Chars 6136 - 6146 [(apply~CIH).] 0. secs (0.u,0.s) Chars 6150 - 6151 [-] 0. secs (0.u,0.s) -Chars 6152 - 6182 [(rewrite~interp_vis,~bind_bind).] 0.033 secs (0.032u,0.s) +Chars 6152 - 6182 [(rewrite~interp_vis,~bind_bind).] 0.035 secs (0.034u,0.s) Chars 6183 - 6189 [ebind.] 0.009 secs (0.009u,0.s) Chars 6195 - 6209 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 6214 - 6231 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) +Chars 6214 - 6231 [(rewrite~bind_tau).] 0.02 secs (0.02u,0.s) Chars 6232 - 6237 [taus.] 0. secs (0.u,0.s) Chars 6238 - 6248 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6250 - 6254 [Qed.] 0.012 secs (0.012u,0.s) +Chars 6250 - 6254 [Qed.] 0.014 secs (0.014u,0.s) Chars 6256 - 6300 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 6338 - 6405 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) Chars 6406 - 6412 [Proof.] 0. secs (0.u,0.s) Chars 6415 - 6424 [revert~t.] 0. secs (0.u,0.s) Chars 6425 - 6437 [coinduction.] 0.002 secs (0.002u,0.s) Chars 6438 - 6445 [(intros).] 0. secs (0.u,0.s) -Chars 6448 - 6485 [(rewrite~(itree_eta~t),~unfold...] 0.027 secs (0.027u,0.s) +Chars 6448 - 6485 [(rewrite~(itree_eta~t),~unfold...] 0.03 secs (0.03u,0.s) Chars 6488 - 6514 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) Chars 6519 - 6520 [-] 0. secs (0.u,0.s) Chars 6521 - 6533 [reflexivity.] 0.001 secs (0.001u,0.s) @@ -183,33 +183,33 @@ Chars 6559 - 6560 [-] 0. secs (0.u,0.s) Chars 6561 - 6573 [constructor.] 0. secs (0.u,0.s) Chars 6574 - 6580 [intro.] 0. secs (0.u,0.s) Chars 6581 - 6592 [fold_subst.] 0. secs (0.u,0.s) -Chars 6595 - 6625 [(rewrite~bind_ret_,~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 6595 - 6625 [(rewrite~bind_ret_,~tau_euttge).] 0.018 secs (0.017u,0.s) Chars 6626 - 6636 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6638 - 6642 [Qed.] 0.008 secs (0.008u,0.s) +Chars 6638 - 6642 [Qed.] 0.009 secs (0.008u,0.s) Chars 6644 - 6722 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) Chars 6723 - 6729 [Proof.] 0. secs (0.u,0.s) Chars 6732 - 6741 [revert~t.] 0. secs (0.u,0.s) Chars 6742 - 6754 [coinduction.] 0.002 secs (0.002u,0.s) Chars 6755 - 6762 [(intros).] 0. secs (0.u,0.s) Chars 6765 - 6787 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 6788 - 6815 [(rewrite~(itree_eta~t)~~at~2).] 0.014 secs (0.014u,0.s) -Chars 6818 - 6862 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) +Chars 6788 - 6815 [(rewrite~(itree_eta~t)~~at~2).] 0.015 secs (0.015u,0.s) +Chars 6818 - 6862 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.005u,0.s) Chars 6866 - 6885 [(constructor;~intro).] 0. secs (0.u,0.s) Chars 6886 - 6897 [fold_subst.] 0. secs (0.u,0.s) -Chars 6901 - 6932 [(rewrite~bind_ret_l,~tau_euttge).] 0.015 secs (0.015u,0.s) +Chars 6901 - 6932 [(rewrite~bind_ret_l,~tau_euttge).] 0.016 secs (0.016u,0.s) Chars 6935 - 6945 [(apply~CIH).] 0. secs (0.u,0.s) Chars 6947 - 6951 [Qed.] 0.007 secs (0.007u,0.s) Chars 6988 - 7159 [Theorem~interp_interp~{E}~{F}~...] 0.001 secs (0.001u,0.s) Chars 7160 - 7166 [Proof.] 0. secs (0.u,0.s) Chars 7169 - 7181 [coinduction.] 0.002 secs (0.002u,0.s) Chars 7182 - 7189 [(intros).] 0. secs (0.u,0.s) -Chars 7193 - 7221 [(rewrite~2!(unfold_interp~t)).] 0.034 secs (0.034u,0.s) +Chars 7193 - 7221 [(rewrite~2!(unfold_interp~t)).] 0.032 secs (0.032u,0.s) Chars 7224 - 7268 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) Chars 7272 - 7279 [to_mon.] 0. secs (0.u,0.s) -Chars 7280 - 7300 [(rewrite~interp_bind).] 0.016 secs (0.015u,0.s) +Chars 7280 - 7300 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) Chars 7301 - 7307 [ebind.] 0.008 secs (0.008u,0.s) Chars 7308 - 7322 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 7327 - 7346 [(rewrite~interp_tau).] 0.016 secs (0.016u,0.s) +Chars 7327 - 7346 [(rewrite~interp_tau).] 0.016 secs (0.015u,0.s) Chars 7347 - 7352 [taus.] 0. secs (0.u,0.s) Chars 7353 - 7363 [(apply~CIH).] 0. secs (0.u,0.s) Chars 7367 - 7371 [Qed.] 0.01 secs (0.01u,0.s) @@ -218,9 +218,9 @@ Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) Chars 7533 - 7542 [revert~t.] 0. secs (0.u,0.s) Chars 7547 - 7559 [coinduction.] 0.002 secs (0.002u,0.s) Chars 7563 - 7572 [(intros~t).] 0. secs (0.u,0.s) -Chars 7575 - 7598 [(rewrite~!unfold_interp).] 0.034 secs (0.034u,0.s) +Chars 7575 - 7598 [(rewrite~!unfold_interp).] 0.032 secs (0.032u,0.s) Chars 7599 - 7614 [(unfold~_interp).] 0. secs (0.u,0.s) -Chars 7617 - 7643 [(rewrite~unfold_translate_).] 0.013 secs (0.013u,0.s) +Chars 7617 - 7643 [(rewrite~unfold_translate_).] 0.012 secs (0.012u,0.s) Chars 7644 - 7662 [(unfold~translateF).] 0. secs (0.u,0.s) Chars 7665 - 7691 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) Chars 7694 - 7695 [-] 0. secs (0.u,0.s) @@ -230,43 +230,43 @@ Chars 7760 - 7765 [taus.] 0. secs (0.u,0.s) Chars 7766 - 7776 [(apply~CIH).] 0. secs (0.u,0.s) Chars 7780 - 7781 [-] 0. secs (0.u,0.s) Chars 7782 - 7789 [to_mon.] 0. secs (0.u,0.s) -Chars 7790 - 7796 [ebind.] 0.008 secs (0.008u,0.s) +Chars 7790 - 7796 [ebind.] 0.007 secs (0.007u,0.s) Chars 7797 - 7811 [(intros;~subst).] 0. secs (0.u,0.s) Chars 7812 - 7817 [taus.] 0. secs (0.u,0.s) Chars 7818 - 7828 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7831 - 7835 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7831 - 7835 [Qed.] 0.01 secs (0.009u,0.s) Chars 7837 - 7966 [Lemma~translate_to_interp~{E}~...] 0.001 secs (0.001u,0.s) Chars 7967 - 7973 [Proof.] 0. secs (0.u,0.s) Chars 7976 - 7985 [revert~t.] 0. secs (0.u,0.s) Chars 7986 - 7998 [coinduction.] 0.002 secs (0.002u,0.s) Chars 7999 - 8006 [(intros).] 0. secs (0.u,0.s) Chars 8009 - 8034 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) -Chars 8037 - 8059 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 8062 - 8106 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) +Chars 8037 - 8059 [(rewrite~unfold_interp).] 0.014 secs (0.014u,0.s) +Chars 8062 - 8106 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) Chars 8110 - 8122 [constructor.] 0. secs (0.u,0.s) Chars 8123 - 8129 [intro.] 0. secs (0.u,0.s) Chars 8130 - 8141 [fold_subst.] 0.001 secs (0.001u,0.s) -Chars 8145 - 8176 [(rewrite~bind_ret_l,~tau_euttge).] 0.017 secs (0.017u,0.s) +Chars 8145 - 8176 [(rewrite~bind_ret_l,~tau_euttge).] 0.016 secs (0.016u,0.s) Chars 8177 - 8187 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8189 - 8193 [Qed.] 0.009 secs (0.008u,0.s) -Chars 8195 - 8340 [Lemma~interp_forever~{E}~{F}~(...] 0.001 secs (0.001u,0.s) +Chars 8189 - 8193 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8195 - 8340 [Lemma~interp_forever~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 8341 - 8347 [Proof.] 0. secs (0.u,0.s) Chars 8350 - 8362 [coinduction.] 0.002 secs (0.002u,0.s) Chars 8366 - 8393 [(rewrite~(unfold_forever~t)).] 0.014 secs (0.014u,0.s) -Chars 8396 - 8434 [(rewrite~(unfold_forever~(inte...] 0.017 secs (0.017u,0.s) -Chars 8437 - 8457 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) -Chars 8460 - 8466 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8396 - 8434 [(rewrite~(unfold_forever~(inte...] 0.017 secs (0.016u,0.s) +Chars 8437 - 8457 [(rewrite~interp_bind).] 0.014 secs (0.014u,0.s) +Chars 8460 - 8466 [ebind.] 0.007 secs (0.007u,0.s) Chars 8467 - 8481 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8484 - 8503 [(rewrite~interp_tau).] 0.017 secs (0.016u,0.s) +Chars 8484 - 8503 [(rewrite~interp_tau).] 0.016 secs (0.016u,0.s) Chars 8506 - 8511 [taus.] 0. secs (0.u,0.s) Chars 8512 - 8522 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8524 - 8528 [Qed.] 0.006 secs (0.006u,0.s) +Chars 8524 - 8528 [Qed.] 0.006 secs (0.005u,0.s) Chars 8530 - 8775 [Lemma~interp_iter'~{E}~{F}~(f~...] 0.001 secs (0.001u,0.s) Chars 8776 - 8782 [Proof.] 0. secs (0.u,0.s) Chars 8785 - 8807 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) -Chars 8811 - 8833 [(rewrite~2!unfold_iter).] 0.033 secs (0.033u,0.s) -Chars 8836 - 8856 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) -Chars 8859 - 8865 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8811 - 8833 [(rewrite~2!unfold_iter).] 0.034 secs (0.034u,0.s) +Chars 8836 - 8856 [(rewrite~interp_bind).] 0.016 secs (0.016u,0.s) +Chars 8859 - 8865 [ebind.] 0.009 secs (0.008u,0.s) Chars 8869 - 8870 [{] 0. secs (0.u,0.s) Chars 8871 - 8881 [(do~2~step).] 0.015 secs (0.015u,0.s) Chars 8882 - 8893 [(apply~EQ_t).] 0. secs (0.u,0.s) @@ -287,23 +287,23 @@ Chars 9256 - 9260 [Qed.] 0.001 secs (0.001u,0.s) Chars 9262 - 9482 [Lemma~interp_iter'_eutt~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 9483 - 9489 [Proof.] 0. secs (0.u,0.s) Chars 9492 - 9514 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) -Chars 9518 - 9540 [(rewrite~2!unfold_iter).] 0.031 secs (0.031u,0.s) +Chars 9518 - 9540 [(rewrite~2!unfold_iter).] 0.032 secs (0.031u,0.s) Chars 9543 - 9563 [(rewrite~interp_bind).] 0.014 secs (0.014u,0.s) -Chars 9566 - 9572 [ebind.] 0.008 secs (0.008u,0.s) -Chars 9576 - 9586 [(do~2~step).] 0.016 secs (0.016u,0.s) +Chars 9566 - 9572 [ebind.] 0.007 secs (0.007u,0.s) +Chars 9576 - 9586 [(do~2~step).] 0.015 secs (0.015u,0.s) Chars 9587 - 9597 [(apply~Heq).] 0. secs (0.u,0.s) Chars 9600 - 9620 [(intros~[]~_~[];~cbn).] 0.001 secs (0.001u,0.s) Chars 9623 - 9624 [-] 0. secs (0.u,0.s) Chars 9625 - 9630 [taus.] 0. secs (0.u,0.s) Chars 9631 - 9641 [(apply~CIH).] 0. secs (0.u,0.s) Chars 9645 - 9646 [-] 0. secs (0.u,0.s) -Chars 9647 - 9659 [reflexivity.] 0. secs (0.u,0.s) -Chars 9661 - 9665 [Qed.] 0.008 secs (0.008u,0.s) +Chars 9647 - 9659 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9661 - 9665 [Qed.] 0.007 secs (0.007u,0.s) Chars 9667 - 9850 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.002 secs (0.002u,0.s) Chars 9851 - 9857 [Proof.] 0. secs (0.u,0.s) Chars 9860 - 9872 [(unfold~loop).] 0. secs (0.u,0.s) Chars 9873 - 9913 [(unfold~cat,~Cat_Kleisli,~ITre...] 0. secs (0.u,0.s) -Chars 9916 - 9936 [(rewrite~interp_bind).] 0.005 secs (0.005u,0.s) +Chars 9916 - 9936 [(rewrite~interp_bind).] 0.005 secs (0.004u,0.s) Chars 9939 - 9955 [(apply~eqit_bind).] 0. secs (0.u,0.s) Chars 9958 - 9959 [{] 0. secs (0.u,0.s) Chars 9960 - 10008 [(unfold~inr_,~Inr_Kleisli,~lif...] 0. secs (0.u,0.s) @@ -321,11 +321,11 @@ Chars 10210 - 10221 [(unfold~cat).] 0. secs (0.u,0.s) Chars 10222 - 10242 [(rewrite~interp_bind).] 0.003 secs (0.003u,0.s) Chars 10245 - 10246 [-] 0. secs (0.u,0.s) Chars 10247 - 10308 [(unfold~inl_,~Inl_Kleisli,~inr...] 0. secs (0.u,0.s) -Chars 10313 - 10357 [(rewrite~interp_ret,~!bind_ret...] 0.015 secs (0.015u,0.s) +Chars 10313 - 10357 [(rewrite~interp_ret,~!bind_ret...] 0.015 secs (0.014u,0.s) Chars 10362 - 10374 [reflexivity.] 0. secs (0.u,0.s) Chars 10377 - 10378 [-] 0. secs (0.u,0.s) Chars 10379 - 10449 [(unfold~cat,~id_,~Id_Kleisli,~...] 0. secs (0.u,0.s) -Chars 10454 - 10511 [(rewrite~interp_bind,~interp_r...] 0.016 secs (0.016u,0.s) +Chars 10454 - 10511 [(rewrite~interp_bind,~interp_r...] 0.016 secs (0.015u,0.s) Chars 10516 - 10528 [reflexivity.] 0. secs (0.u,0.s) Chars 10529 - 10533 [Qed.] 0.01 secs (0.01u,0.s) Chars 10535 - 10684 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Recursion.v.timing b/theories/Interp/Recursion.v.timing index 9299aec4..2a02d1bc 100644 --- a/theories/Interp/Recursion.v.timing +++ b/theories/Interp/Recursion.v.timing @@ -1,4 +1,4 @@ -Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.044 secs (0.035u,0.009s) +Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.043 secs (0.034u,0.008s) Chars 128 - 150 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 151 - 183 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.003 secs (0.002u,0.s) diff --git a/theories/Interp/RecursionFacts.v.timing b/theories/Interp/RecursionFacts.v.timing index 7dee6f0c..5566dd7c 100644 --- a/theories/Interp/RecursionFacts.v.timing +++ b/theories/Interp/RecursionFacts.v.timing @@ -1,6 +1,6 @@ -Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) -Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.097 secs (0.075u,0.014s) +Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) +Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.004 secs (0.002u,0.s) +Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.094 secs (0.072u,0.018s) Chars 669 - 691 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 693 - 707 [Section~Facts.] 0. secs (0.u,0.s) Chars 709 - 766 [Context~{D~E~:~Type~->~Type}~(...] 0. secs (0.u,0.s) @@ -8,12 +8,12 @@ Chars 804 - 1117 [Definition~_interp_mrec~{R~:~T...] 0.001 secs (0.001u,0.s) Chars 1433 - 1534 [Lemma~unfold_interp_mrec~R~(t~...] 0. secs (0.u,0.s) Chars 1535 - 1541 [Proof.] 0. secs (0.u,0.s) Chars 1544 - 1563 [(unfold~interp_mrec).] 0. secs (0.u,0.s) -Chars 1566 - 1586 [(rewrite~unfold_iter).] 0.008 secs (0.008u,0.s) +Chars 1566 - 1586 [(rewrite~unfold_iter).] 0.009 secs (0.008u,0.s) Chars 1589 - 1611 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) Chars 1614 - 1615 [-] 0. secs (0.u,0.s) Chars 1616 - 1648 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) Chars 1651 - 1652 [-] 0. secs (0.u,0.s) -Chars 1653 - 1685 [(rewrite~bind_ret_l;~reflexivi...] 0.044 secs (0.043u,0.s) +Chars 1653 - 1685 [(rewrite~bind_ret_l;~reflexivi...] 0.043 secs (0.042u,0.s) Chars 1688 - 1689 [-] 0. secs (0.u,0.s) Chars 1690 - 1706 [(destruct~e;~cbn).] 0. secs (0.u,0.s) Chars 1711 - 1712 [+] 0. secs (0.u,0.s) @@ -22,18 +22,18 @@ Chars 1750 - 1751 [+] 0. secs (0.u,0.s) Chars 1752 - 1769 [(rewrite~bind_vis).] 0.007 secs (0.007u,0.s) Chars 1776 - 1794 [(step;~constructor).] 0.003 secs (0.003u,0.s) Chars 1795 - 1802 [(intros).] 0. secs (0.u,0.s) -Chars 1809 - 1828 [(rewrite~bind_ret_l).] 0.009 secs (0.008u,0.001s) +Chars 1809 - 1828 [(rewrite~bind_ret_l).] 0.01 secs (0.009u,0.001s) Chars 1835 - 1853 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 1854 - 1858 [Qed.] 0.011 secs (0.009u,0.002s) +Chars 1854 - 1858 [Qed.] 0.011 secs (0.009u,0.001s) Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0.001 secs (0.u,0.s) Chars 2130 - 2230 [#[global]~Instance~eq_itree_mr...] 0. secs (0.u,0.s) Chars 2231 - 2237 [Proof.] 0. secs (0.u,0.s) Chars 2240 - 2251 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2255 - 2267 [coinduction.] 0.003 secs (0.002u,0.s) +Chars 2255 - 2267 [coinduction.] 0.003 secs (0.002u,0.001s) Chars 2268 - 2275 [(intros).] 0. secs (0.u,0.s) -Chars 2278 - 2306 [(rewrite~!unfold_interp_mrec).] 0.037 secs (0.033u,0.004s) +Chars 2278 - 2306 [(rewrite~!unfold_interp_mrec).] 0.04 secs (0.035u,0.004s) Chars 2309 - 2319 [step~in~H.] 0. secs (0.u,0.s) -Chars 2320 - 2344 [(inv~H;~eauto~with~itree).] 0.094 secs (0.093u,0.001s) +Chars 2320 - 2344 [(inv~H;~eauto~with~itree).] 0.097 secs (0.094u,0.002s) Chars 2348 - 2349 [-] 0. secs (0.u,0.s) Chars 2350 - 2355 [taus.] 0. secs (0.u,0.s) Chars 2356 - 2370 [now~apply~CIH.] 0. secs (0.u,0.s) @@ -43,7 +43,7 @@ Chars 2381 - 2392 [(destruct~e).] 0. secs (0.u,0.s) Chars 2397 - 2398 [+] 0. secs (0.u,0.s) Chars 2399 - 2404 [taus.] 0. secs (0.u,0.s) Chars 2405 - 2415 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2422 - 2428 [ebind.] 0.005 secs (0.005u,0.s) +Chars 2422 - 2428 [ebind.] 0.006 secs (0.006u,0.s) Chars 2429 - 2443 [(intros;~subst).] 0. secs (0.u,0.s) Chars 2450 - 2460 [(do~2~step).] 0.008 secs (0.008u,0.s) Chars 2461 - 2471 [(apply~REL).] 0. secs (0.u,0.s) @@ -54,7 +54,7 @@ Chars 2499 - 2504 [step.] 0.002 secs (0.002u,0.s) Chars 2505 - 2510 [taus.] 0. secs (0.u,0.s) Chars 2511 - 2521 [(apply~CIH).] 0. secs (0.u,0.s) Chars 2526 - 2536 [(apply~REL).] 0. secs (0.u,0.s) -Chars 2540 - 2544 [Qed.] 0.014 secs (0.014u,0.s) +Chars 2540 - 2544 [Qed.] 0.014 secs (0.013u,0.s) Chars 2546 - 2721 [Theorem~interp_mrec_bind~{U}~{...] 0. secs (0.u,0.s) Chars 2722 - 2728 [Proof.] 0. secs (0.u,0.s) Chars 2731 - 2763 [(revert~t~k;~coinduction;~intr...] 0.002 secs (0.002u,0.s) @@ -71,12 +71,12 @@ Chars 2942 - 2943 [-] 0. secs (0.u,0.s) Chars 2944 - 2951 [to_mon.] 0. secs (0.u,0.s) Chars 2952 - 2957 [taus.] 0. secs (0.u,0.s) Chars 2958 - 2969 [fold_subst.] 0. secs (0.u,0.s) -Chars 2975 - 2996 [(rewrite~<-~bind_bind).] 0.013 secs (0.012u,0.s) +Chars 2975 - 2996 [(rewrite~<-~bind_bind).] 0.013 secs (0.013u,0.s) Chars 3001 - 3011 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3016 - 3017 [-] 0. secs (0.u,0.s) Chars 3018 - 3030 [constructor.] 0. secs (0.u,0.s) Chars 3031 - 3037 [intro.] 0. secs (0.u,0.s) -Chars 3038 - 3049 [fold_subst.] 0.001 secs (0.001u,0.s) +Chars 3038 - 3049 [fold_subst.] 0. secs (0.u,0.s) Chars 3055 - 3084 [(rewrite~bind_ret_l,~bind_tau).] 0.029 secs (0.029u,0.s) Chars 3090 - 3095 [step.] 0.002 secs (0.002u,0.s) Chars 3096 - 3101 [taus.] 0. secs (0.u,0.s) @@ -84,13 +84,13 @@ Chars 3102 - 3112 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3116 - 3120 [Qed.] 0.013 secs (0.013u,0.s) Chars 3122 - 3236 [Theorem~interp_mrec_trigger~{U...] 0. secs (0.u,0.s) Chars 3237 - 3243 [Proof.] 0. secs (0.u,0.s) -Chars 3246 - 3292 [(rewrite~unfold_interp_mrec;~u...] 0.013 secs (0.012u,0.s) +Chars 3246 - 3292 [(rewrite~unfold_interp_mrec;~u...] 0.012 secs (0.012u,0.s) Chars 3295 - 3311 [(destruct~a;~cbn).] 0. secs (0.u,0.s) -Chars 3314 - 3345 [(rewrite~tau_euttge,~bind_ret_r).] 0.013 secs (0.012u,0.s) +Chars 3314 - 3345 [(rewrite~tau_euttge,~bind_ret_r).] 0.013 secs (0.013u,0.s) Chars 3348 - 3360 [reflexivity.] 0. secs (0.u,0.s) Chars 3363 - 3381 [(step;~constructor).] 0.002 secs (0.002u,0.s) Chars 3382 - 3389 [(intros).] 0. secs (0.u,0.s) -Chars 3390 - 3434 [(rewrite~tau_euttge,~unfold_in...] 0.015 secs (0.015u,0.s) +Chars 3390 - 3434 [(rewrite~tau_euttge,~unfold_in...] 0.017 secs (0.016u,0.s) Chars 3437 - 3455 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 3456 - 3460 [Qed.] 0.003 secs (0.003u,0.s) Chars 3462 - 3564 [Theorem~interp_mrec_as_interp~...] 0. secs (0.u,0.s) @@ -99,7 +99,7 @@ Chars 3574 - 3609 [(rewrite~<-~(tau_eutt~(interp~...] 0.001 secs (0.001u,0.s) Chars 3612 - 3627 [(revert_until~T).] 0. secs (0.u,0.s) Chars 3628 - 3640 [coinduction.] 0.002 secs (0.002u,0.s) Chars 3641 - 3648 [(intros).] 0. secs (0.u,0.s) -Chars 3651 - 3693 [(rewrite~unfold_interp_mrec,~u...] 0.033 secs (0.033u,0.s) +Chars 3651 - 3693 [(rewrite~unfold_interp_mrec,~u...] 0.036 secs (0.035u,0.s) Chars 3696 - 3759 [(destruct~(observe~c0);~[~~|~~...] 0.005 secs (0.005u,0.s) Chars 3762 - 3763 [-] 0. secs (0.u,0.s) Chars 3764 - 3773 [now~taur.] 0.001 secs (0.001u,0.s) @@ -108,22 +108,22 @@ Chars 3779 - 3784 [taus.] 0. secs (0.u,0.s) Chars 3785 - 3795 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3799 - 3800 [-] 0. secs (0.u,0.s) Chars 3801 - 3806 [taus.] 0. secs (0.u,0.s) -Chars 3807 - 3832 [(rewrite~interp_mrec_bind).] 0.014 secs (0.014u,0.s) +Chars 3807 - 3832 [(rewrite~interp_mrec_bind).] 0.015 secs (0.014u,0.s) Chars 3833 - 3845 [(unfold~mrec).] 0. secs (0.u,0.s) -Chars 3848 - 3854 [ebind.] 0.005 secs (0.005u,0.s) +Chars 3848 - 3854 [ebind.] 0.006 secs (0.006u,0.s) Chars 3855 - 3869 [(intros;~subst).] 0. secs (0.u,0.s) Chars 3870 - 3880 [(apply~CIH).] 0. secs (0.u,0.s) Chars 3884 - 3885 [-] 0. secs (0.u,0.s) Chars 3886 - 3893 [to_mon.] 0. secs (0.u,0.s) -Chars 3894 - 3913 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) +Chars 3894 - 3913 [(rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) Chars 3919 - 3940 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 3942 - 3959 [(rewrite~bind_vis).] 0.016 secs (0.016u,0.s) +Chars 3942 - 3959 [(rewrite~bind_vis).] 0.017 secs (0.017u,0.s) Chars 3964 - 3976 [constructor.] 0. secs (0.u,0.s) Chars 3977 - 3983 [intro.] 0. secs (0.u,0.s) Chars 3989 - 4008 [(rewrite~bind_ret_l).] 0.013 secs (0.013u,0.s) Chars 4009 - 4028 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) Chars 4029 - 4039 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4041 - 4045 [Qed.] 0.013 secs (0.012u,0.s) +Chars 4041 - 4045 [Qed.] 0.012 secs (0.012u,0.s) Chars 4047 - 4137 [Theorem~mrec_as_interp~{T}~(d~...] 0. secs (0.u,0.s) Chars 4138 - 4144 [Proof.] 0. secs (0.u,0.s) Chars 4147 - 4175 [(apply~interp_mrec_as_interp).] 0. secs (0.u,0.s) @@ -140,31 +140,31 @@ Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0.001 secs (0.001u,0.s) Chars 4517 - 4523 [Proof.] 0. secs (0.u,0.s) Chars 4526 - 4546 [(rewrite~<-~tau_eutt).] 0.002 secs (0.002u,0.s) Chars 4549 - 4558 [revert~t.] 0. secs (0.u,0.s) -Chars 4559 - 4571 [coinduction.] 0.003 secs (0.002u,0.s) +Chars 4559 - 4571 [coinduction.] 0.002 secs (0.002u,0.s) Chars 4572 - 4579 [(intros).] 0. secs (0.u,0.s) -Chars 4582 - 4626 [(rewrite~(itree_eta~t);~destru...] 0.019 secs (0.019u,0.s) +Chars 4582 - 4626 [(rewrite~(itree_eta~t);~destru...] 0.018 secs (0.018u,0.s) Chars 4629 - 4630 [-] 0. secs (0.u,0.s) -Chars 4631 - 4670 [(rewrite~2!unfold_interp_mrec;...] 0.037 secs (0.037u,0.s) +Chars 4631 - 4670 [(rewrite~2!unfold_interp_mrec;...] 0.039 secs (0.038u,0.s) Chars 4674 - 4675 [-] 0. secs (0.u,0.s) Chars 4676 - 4720 [(rewrite~unfold_interp,~2!unfo...] 0.053 secs (0.052u,0.s) Chars 4726 - 4731 [taus.] 0. secs (0.u,0.s) Chars 4732 - 4742 [(apply~CIH).] 0. secs (0.u,0.s) Chars 4746 - 4747 [-] 0. secs (0.u,0.s) -Chars 4748 - 4767 [(rewrite~interp_vis).] 0.018 secs (0.018u,0.s) +Chars 4748 - 4767 [(rewrite~interp_vis).] 0.02 secs (0.019u,0.s) Chars 4772 - 4813 [(rewrite~(unfold_interp_mrec~_...] 0.018 secs (0.018u,0.s) Chars 4818 - 4842 [(destruct~e;~cbn;~to_mon).] 0.001 secs (0.001u,0.s) Chars 4848 - 4849 [+] 0. secs (0.u,0.s) -Chars 4850 - 4877 [(rewrite~2!interp_mrec_bind).] 0.037 secs (0.037u,0.s) +Chars 4850 - 4877 [(rewrite~2!interp_mrec_bind).] 0.038 secs (0.038u,0.s) Chars 4884 - 4889 [taus.] 0. secs (0.u,0.s) Chars 4897 - 4918 [(ebind;~intros;~subst).] 0.006 secs (0.006u,0.s) Chars 4926 - 4969 [(rewrite~unfold_interp_mrec;~c...] 0.013 secs (0.013u,0.s) Chars 4975 - 4976 [+] 0. secs (0.u,0.s) Chars 4977 - 5063 [(unfold~inr_,~Handler.Inr_sum1...] 0. secs (0.u,0.s) -Chars 5070 - 5124 [(rewrite~bind_trigger,~unfold_...] 0.037 secs (0.037u,0.s) +Chars 5070 - 5124 [(rewrite~bind_trigger,~unfold_...] 0.038 secs (0.037u,0.s) Chars 5131 - 5150 [(rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) Chars 5157 - 5169 [constructor.] 0. secs (0.u,0.s) Chars 5176 - 5183 [(intros).] 0. secs (0.u,0.s) -Chars 5184 - 5189 [step.] 0.002 secs (0.002u,0.s) +Chars 5184 - 5189 [step.] 0.003 secs (0.003u,0.s) Chars 5190 - 5195 [taus.] 0. secs (0.u,0.s) Chars 5203 - 5235 [(rewrite~unfold_interp_mrec;~c...] 0.012 secs (0.012u,0.s) Chars 5242 - 5252 [(apply~CIH).] 0. secs (0.u,0.s) @@ -175,7 +175,7 @@ Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0.001 secs (0.001u,0.s) Chars 5557 - 5563 [Proof.] 0. secs (0.u,0.s) Chars 5566 - 5583 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) Chars 5586 - 5615 [(coinduction;~intros~t1~t2~Ht).] 0.002 secs (0.002u,0.s) -Chars 5618 - 5647 [(rewrite~2!unfold_interp_mrec).] 0.031 secs (0.031u,0.s) +Chars 5618 - 5647 [(rewrite~2!unfold_interp_mrec).] 0.03 secs (0.03u,0.s) Chars 5650 - 5680 [(step~in~Ht;~induction~Ht;~cbn).] 0.002 secs (0.002u,0.s) Chars 5684 - 5688 [3:~{] 0. secs (0.u,0.s) Chars 5689 - 5713 [(destruct~e;~constructor).] 0. secs (0.u,0.s) @@ -190,8 +190,8 @@ Chars 5791 - 5810 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) Chars 5811 - 5833 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 5836 - 5837 [}] 0. secs (0.u,0.s) Chars 5840 - 5879 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) -Chars 5882 - 5940 [all:~(to_mon;~rewrite~unfold_i...] 0.044 secs (0.043u,0.s) -Chars 5941 - 5945 [Qed.] 0.013 secs (0.012u,0.s) +Chars 5882 - 5940 [all:~(to_mon;~rewrite~unfold_i...] 0.045 secs (0.044u,0.s) +Chars 5941 - 5945 [Qed.] 0.012 secs (0.012u,0.s) Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0.001 secs (0.001u,0.s) Chars 6195 - 6310 [Lemma~rec_as_interp~{E}~{A}~{B...] 0. secs (0.u,0.s) Chars 6311 - 6317 [Proof.] 0. secs (0.u,0.s) @@ -216,9 +216,9 @@ Chars 6694 - 6698 [Qed.] 0.001 secs (0.001u,0.s) Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) Chars 6967 - 6973 [Proof.] 0. secs (0.u,0.s) Chars 6976 - 6993 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) -Chars 6996 - 7025 [(coinduction;~intros~t1~t2~Ht).] 0.003 secs (0.003u,0.s) -Chars 7028 - 7057 [(rewrite~2!unfold_interp_mrec).] 0.018 secs (0.018u,0.s) -Chars 7060 - 7100 [(step~in~Ht;~induction~Ht;~try...] 0.118 secs (0.116u,0.s) +Chars 6996 - 7025 [(coinduction;~intros~t1~t2~Ht).] 0.004 secs (0.003u,0.s) +Chars 7028 - 7057 [(rewrite~2!unfold_interp_mrec).] 0.019 secs (0.019u,0.s) +Chars 7060 - 7100 [(step~in~Ht;~induction~Ht;~try...] 0.117 secs (0.116u,0.s) Chars 7104 - 7108 [3:~{] 0. secs (0.u,0.s) Chars 7109 - 7133 [(destruct~e;~constructor).] 0. secs (0.u,0.s) Chars 7139 - 7140 [+] 0. secs (0.u,0.s) @@ -232,11 +232,11 @@ Chars 7211 - 7230 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) Chars 7231 - 7253 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 7256 - 7257 [}] 0. secs (0.u,0.s) Chars 7260 - 7299 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) -Chars 7302 - 7360 [all:~(to_mon;~rewrite~unfold_i...] 0.022 secs (0.021u,0.s) -Chars 7361 - 7365 [Qed.] 0.012 secs (0.012u,0.s) +Chars 7302 - 7360 [all:~(to_mon;~rewrite~unfold_i...] 0.019 secs (0.019u,0.s) +Chars 7361 - 7365 [Qed.] 0.011 secs (0.011u,0.s) Chars 7367 - 7504 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 7505 - 7511 [Proof.] 0. secs (0.u,0.s) Chars 7514 - 7523 [(do~4~red).] 0. secs (0.u,0.s) Chars 7524 - 7550 [(eapply~euttge_interp_mrec).] 0. secs (0.u,0.s) Chars 7551 - 7563 [reflexivity.] 0. secs (0.u,0.s) -Chars 7564 - 7568 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7564 - 7568 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Interp/Traces.v.timing b/theories/Interp/Traces.v.timing index ec343ef6..cc94101a 100644 --- a/theories/Interp/Traces.v.timing +++ b/theories/Interp/Traces.v.timing @@ -1,8 +1,8 @@ -Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.205 secs (0.181u,0.023s) +Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) +Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.204 secs (0.176u,0.027s) Chars 223 - 246 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) -Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0. secs (0.u,0.s) +Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0.001 secs (0.u,0.s) Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0. secs (0.u,0.s) Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.004 secs (0.003u,0.s) Chars 1431 - 1524 [Definition~is_trace~{E~:~Type~...] 0. secs (0.u,0.s) @@ -47,12 +47,12 @@ Chars 2774 - 2779 [auto.] 0. secs (0.u,0.s) Chars 2782 - 2783 [-] 0. secs (0.u,0.s) Chars 2784 - 2794 [step~in~H.] 0. secs (0.u,0.s) Chars 2795 - 2816 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) -Chars 2821 - 2841 [(remember~(VisF~_~_)).] 0.028 secs (0.026u,0.002s) +Chars 2821 - 2841 [(remember~(VisF~_~_)).] 0.03 secs (0.026u,0.003s) Chars 2842 - 2864 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 2869 - 2893 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 2898 - 2936 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 2941 - 2942 [+] 0. secs (0.u,0.s) -Chars 2943 - 2951 [inv_Vis.] 0.01 secs (0.01u,0.s) +Chars 2943 - 2951 [inv_Vis.] 0.012 secs (0.011u,0.s) Chars 2952 - 2958 [subst.] 0. secs (0.u,0.s) Chars 2959 - 2963 [(red).] 0. secs (0.u,0.s) Chars 2964 - 2981 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) @@ -65,12 +65,12 @@ Chars 3037 - 3059 [(eapply~IHsuttF;~eauto).] 0. secs (0.u,0.s) Chars 3062 - 3063 [-] 0. secs (0.u,0.s) Chars 3064 - 3074 [step~in~H.] 0. secs (0.u,0.s) Chars 3075 - 3096 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) -Chars 3101 - 3121 [(remember~(VisF~_~_)).] 0. secs (0.u,0.s) +Chars 3101 - 3121 [(remember~(VisF~_~_)).] 0.001 secs (0.001u,0.s) Chars 3122 - 3144 [(remember~(observe~t2)).] 0. secs (0.u,0.s) Chars 3149 - 3173 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 3178 - 3216 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 3221 - 3222 [+] 0. secs (0.u,0.s) -Chars 3223 - 3231 [inv_Vis.] 0.045 secs (0.045u,0.s) +Chars 3223 - 3231 [inv_Vis.] 0.047 secs (0.045u,0.s) Chars 3232 - 3238 [subst.] 0. secs (0.u,0.s) Chars 3239 - 3243 [(red).] 0. secs (0.u,0.s) Chars 3244 - 3261 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) @@ -98,7 +98,7 @@ Chars 4006 - 4007 [-] 0. secs (0.u,0.s) Chars 4008 - 4034 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) Chars 4037 - 4038 [-] 0. secs (0.u,0.s) Chars 4039 - 4065 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) -Chars 4066 - 4070 [Qed.] 0. secs (0.u,0.s) +Chars 4066 - 4070 [Qed.] 0.001 secs (0.001u,0.s) Chars 4072 - 4168 [Lemma~trace_incl_sutt~:~~~fora...] 0. secs (0.u,0.s) Chars 4169 - 4175 [Proof.] 0. secs (0.u,0.s) Chars 4178 - 4189 [(intros~E~R).] 0. secs (0.u,0.s) @@ -106,12 +106,12 @@ Chars 4190 - 4208 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 4209 - 4228 [(intros~t1~t2~Hincl).] 0. secs (0.u,0.s) Chars 4231 - 4254 [(unfold~trace_incl~in~*).] 0. secs (0.u,0.s) Chars 4255 - 4276 [(unfold~is_trace~in~*).] 0. secs (0.u,0.s) -Chars 4279 - 4301 [(destruct~(observe~t1)).] 0. secs (0.u,0.s) +Chars 4279 - 4301 [(destruct~(observe~t1)).] 0.001 secs (0.u,0.s) Chars 4304 - 4305 [-] 0. secs (0.u,0.s) Chars 4306 - 4387 [(assert~(H~:~is_traceF~(RetF~r...] 0. secs (0.u,0.s) Chars 4392 - 4409 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) Chars 4410 - 4422 [clear~Hincl.] 0. secs (0.u,0.s) -Chars 4423 - 4452 [(destruct~(observe~t2);~inv~H).] 0.031 secs (0.03u,0.s) +Chars 4423 - 4452 [(destruct~(observe~t2);~inv~H).] 0.035 secs (0.031u,0.003s) Chars 4457 - 4458 [+] 0. secs (0.u,0.s) Chars 4459 - 4471 [constructor.] 0. secs (0.u,0.s) Chars 4472 - 4477 [auto.] 0. secs (0.u,0.s) @@ -133,7 +133,7 @@ Chars 4742 - 4747 [auto.] 0. secs (0.u,0.s) Chars 4750 - 4751 [-] 0. secs (0.u,0.s) Chars 4752 - 4814 [(assert~(H~:~is_traceF~(VisF~e...] 0. secs (0.u,0.s) Chars 4819 - 4836 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) -Chars 4837 - 4866 [(destruct~(observe~t2);~inv~H).] 0.034 secs (0.034u,0.s) +Chars 4837 - 4866 [(destruct~(observe~t2);~inv~H).] 0.034 secs (0.033u,0.s) Chars 4871 - 4872 [+] 0. secs (0.u,0.s) Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) Chars 4892 - 4964 [(assert~(forall~tr,~is_traceF~...] 0. secs (0.u,0.s) @@ -155,7 +155,7 @@ Chars 5263 - 5270 [(intros).] 0. secs (0.u,0.s) Chars 5271 - 5293 [(rewrite~is_traceF_tau).] 0. secs (0.u,0.s) Chars 5294 - 5312 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) Chars 5319 - 5320 [*] 0. secs (0.u,0.s) -Chars 5321 - 5376 [(apply~eq_trace_inv~in~Heqt0;~...] 0.009 secs (0.009u,0.s) +Chars 5321 - 5376 [(apply~eq_trace_inv~in~Heqt0;~...] 0.009 secs (0.008u,0.s) Chars 5385 - 5391 [subst.] 0. secs (0.u,0.s) Chars 5392 - 5404 [constructor.] 0. secs (0.u,0.s) Chars 5405 - 5411 [intro.] 0. secs (0.u,0.s) diff --git a/theories/Interp/TranslateFacts.v.timing b/theories/Interp/TranslateFacts.v.timing index 32d8e969..c703edba 100644 --- a/theories/Interp/TranslateFacts.v.timing +++ b/theories/Interp/TranslateFacts.v.timing @@ -1,6 +1,6 @@ -Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.007u,0.003s) +Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.052 secs (0.041u,0.011s) +Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.05 secs (0.039u,0.01s) Chars 412 - 434 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 451 - 474 [Section~TranslateFacts.] 0. secs (0.u,0.s) Chars 477 - 506 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -12,7 +12,7 @@ Chars 717 - 726 [(intros~t).] 0. secs (0.u,0.s) Chars 727 - 740 [econstructor.] 0. secs (0.u,0.s) Chars 741 - 753 [reflexivity.] 0. secs (0.u,0.s) Chars 754 - 758 [Qed.] 0. secs (0.u,0.s) -Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0.021 secs (0.019u,0.002s) +Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0.02 secs (0.018u,0.002s) Chars 910 - 916 [Proof.] 0. secs (0.u,0.s) Chars 919 - 926 [(intros).] 0. secs (0.u,0.s) Chars 927 - 953 [(rewrite~unfold_translate_).] 0.002 secs (0.002u,0.s) @@ -21,21 +21,21 @@ Chars 967 - 971 [Qed.] 0. secs (0.u,0.s) Chars 973 - 1039 [Lemma~translate_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 1040 - 1046 [Proof.] 0. secs (0.u,0.s) Chars 1049 - 1058 [(intros~r).] 0. secs (0.u,0.s) -Chars 1061 - 1086 [(rewrite~unfold_translate).] 0.002 secs (0.002u,0.s) +Chars 1061 - 1086 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) Chars 1087 - 1091 [(cbn).] 0. secs (0.u,0.s) Chars 1092 - 1104 [reflexivity.] 0. secs (0.u,0.s) Chars 1105 - 1109 [Qed.] 0. secs (0.u,0.s) Chars 1111 - 1201 [Lemma~translate_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 1202 - 1208 [Proof.] 0. secs (0.u,0.s) Chars 1211 - 1220 [(intros~t).] 0. secs (0.u,0.s) -Chars 1223 - 1248 [(rewrite~unfold_translate).] 0.002 secs (0.002u,0.s) +Chars 1223 - 1248 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) Chars 1249 - 1253 [(cbn).] 0. secs (0.u,0.s) Chars 1254 - 1266 [reflexivity.] 0. secs (0.u,0.s) Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) Chars 1273 - 1405 [Lemma~translate_vis~:~~~forall...] 0. secs (0.u,0.s) Chars 1406 - 1412 [Proof.] 0. secs (0.u,0.s) Chars 1415 - 1428 [(intros~X~e~k).] 0. secs (0.u,0.s) -Chars 1431 - 1456 [(rewrite~unfold_translate).] 0.002 secs (0.002u,0.s) +Chars 1431 - 1456 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) Chars 1457 - 1461 [(cbn).] 0. secs (0.u,0.s) Chars 1462 - 1474 [reflexivity.] 0. secs (0.u,0.s) Chars 1475 - 1479 [Qed.] 0. secs (0.u,0.s) @@ -46,15 +46,15 @@ Chars 1601 - 1614 [revert~x~y~H.] 0. secs (0.u,0.s) Chars 1615 - 1634 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 1635 - 1642 [(intros).] 0. secs (0.u,0.s) Chars 1646 - 1653 [to_mon.] 0. secs (0.u,0.s) -Chars 1657 - 1683 [(rewrite~!unfold_translate).] 0.066 secs (0.065u,0.s) +Chars 1657 - 1683 [(rewrite~!unfold_translate).] 0.065 secs (0.064u,0.s) Chars 1686 - 1696 [step~in~H.] 0. secs (0.u,0.s) -Chars 1699 - 1745 [(induction~H;~simpobs;~simpl;~...] 0.017 secs (0.013u,0.003s) +Chars 1699 - 1745 [(induction~H;~simpobs;~simpl;~...] 0.016 secs (0.012u,0.003s) Chars 1748 - 1752 [Qed.] 0.009 secs (0.007u,0.002s) Chars 1754 - 1887 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) Chars 1897 - 1908 [(repeat~red).] 0. secs (0.u,0.s) Chars 1909 - 1916 [(intros).] 0. secs (0.u,0.s) -Chars 1919 - 1983 [(rewrite~(itree_eta'~x),~(itre...] 0.012 secs (0.01u,0.002s) +Chars 1919 - 1983 [(rewrite~(itree_eta'~x),~(itre...] 0.011 secs (0.009u,0.002s) Chars 1986 - 2004 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 2005 - 2009 [Qed.] 0.001 secs (0.001u,0.s) Chars 2011 - 2030 [End~TranslateFacts.] 0. secs (0.u,0.s) @@ -65,10 +65,10 @@ Chars 2237 - 2250 [revert~S~t~k.] 0. secs (0.u,0.s) Chars 2253 - 2272 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 2276 - 2289 [(intros~s~t~k).] 0. secs (0.u,0.s) Chars 2290 - 2297 [to_mon.] 0. secs (0.u,0.s) -Chars 2301 - 2393 [(match~goal~with~~|~|-~_~?t1~?...] 0.032 secs (0.031u,0.s) +Chars 2301 - 2393 [(match~goal~with~~|~|-~_~?t1~?...] 0.031 secs (0.03u,0.001s) Chars 2396 - 2416 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) -Chars 2419 - 2463 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.004u,0.s) -Chars 2465 - 2469 [Qed.] 0.008 secs (0.008u,0.s) +Chars 2419 - 2463 [(destruct~(observe~t);~cbn;~ea...] 0.004 secs (0.004u,0.s) +Chars 2465 - 2469 [Qed.] 0.009 secs (0.008u,0.s) Chars 2471 - 2546 [Lemma~translate_id~:~forall~E~...] 0. secs (0.u,0.s) Chars 2547 - 2553 [Proof.] 0. secs (0.u,0.s) Chars 2556 - 2569 [(intros~E~R~t).] 0. secs (0.u,0.s) @@ -76,9 +76,9 @@ Chars 2572 - 2581 [revert~t.] 0. secs (0.u,0.s) Chars 2584 - 2602 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 2603 - 2610 [(intros).] 0. secs (0.u,0.s) Chars 2754 - 2776 [(rewrite~(itree_eta~t)).] 0.013 secs (0.013u,0.s) -Chars 2779 - 2804 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) +Chars 2779 - 2804 [(rewrite~unfold_translate).] 0.013 secs (0.013u,0.s) Chars 2807 - 2825 [(unfold~translateF).] 0. secs (0.u,0.s) -Chars 2828 - 2846 [(rewrite~itree_eta).] 0.017 secs (0.016u,0.s) +Chars 2828 - 2846 [(rewrite~itree_eta).] 0.015 secs (0.014u,0.s) Chars 2849 - 2899 [(destruct~(observe~t);~cbn;~tr...] 0.001 secs (0.001u,0.s) Chars 2902 - 2906 [Qed.] 0.006 secs (0.006u,0.s) Chars 2908 - 2928 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -88,13 +88,13 @@ Chars 3083 - 3104 [(intros~E~F~G~R~g~f~t).] 0. secs (0.u,0.s) Chars 3107 - 3116 [revert~t.] 0. secs (0.u,0.s) Chars 3119 - 3137 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 3138 - 3145 [(intros).] 0. secs (0.u,0.s) -Chars 3149 - 3175 [(rewrite~!unfold_translate).] 0.095 secs (0.095u,0.s) +Chars 3149 - 3175 [(rewrite~!unfold_translate).] 0.09 secs (0.089u,0.s) Chars 3178 - 3196 [(genobs_clear~t~ot).] 0.001 secs (0.001u,0.s) Chars 3197 - 3238 [(destruct~ot;~cbn;~try~constru...] 0.001 secs (0.001u,0.s) Chars 3240 - 3244 [Qed.] 0.006 secs (0.006u,0.s) Chars 3246 - 3419 [Definition~respectful_eq_itree...] 0. secs (0.u,0.s) Chars 3421 - 3582 [Definition~respectful_eutt~{E~...] 0. secs (0.u,0.s) -Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.004 secs (0.004u,0.s) +Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.004 secs (0.003u,0.s) Chars 3784 - 3967 [#[global]~Instance~eq_itree_ap...] 0. secs (0.u,0.s) Chars 3968 - 3974 [Proof.] 0. secs (0.u,0.s) Chars 3977 - 3988 [(repeat~red).] 0. secs (0.u,0.s) @@ -108,15 +108,15 @@ Chars 4204 - 4215 [(repeat~red).] 0. secs (0.u,0.s) Chars 4216 - 4223 [(intros).] 0. secs (0.u,0.s) Chars 4224 - 4240 [(repeat~red~in~H).] 0. secs (0.u,0.s) Chars 4241 - 4247 [eauto.] 0. secs (0.u,0.s) -Chars 4248 - 4252 [Qed.] 0. secs (0.u,0.s) +Chars 4248 - 4252 [Qed.] 0.001 secs (0.001u,0.s) Chars 4254 - 4409 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 4410 - 4416 [Proof.] 0. secs (0.u,0.s) Chars 4419 - 4436 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) Chars 4439 - 4457 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 4458 - 4465 [(intros).] 0. secs (0.u,0.s) -Chars 4469 - 4496 [(rewrite~2!unfold_translate).] 0.033 secs (0.033u,0.s) +Chars 4469 - 4496 [(rewrite~2!unfold_translate).] 0.032 secs (0.032u,0.s) Chars 4499 - 4509 [step~in~H.] 0. secs (0.u,0.s) -Chars 4513 - 4574 [(destruct~H;~cbn;~try~easy;~tr...] 0.072 secs (0.072u,0.s) +Chars 4513 - 4574 [(destruct~H;~cbn;~try~easy;~tr...] 0.07 secs (0.07u,0.s) Chars 4576 - 4580 [Qed.] 0.008 secs (0.008u,0.s) Chars 4582 - 4729 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) Chars 4730 - 4736 [Proof.] 0. secs (0.u,0.s) @@ -124,11 +124,11 @@ Chars 4739 - 4750 [(repeat~red).] 0. secs (0.u,0.s) Chars 4753 - 4768 [intros~until~T.] 0. secs (0.u,0.s) Chars 4771 - 4789 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 4790 - 4797 [(intros).] 0. secs (0.u,0.s) -Chars 4800 - 4826 [(rewrite~!unfold_translate).] 0.031 secs (0.031u,0.s) +Chars 4800 - 4826 [(rewrite~!unfold_translate).] 0.029 secs (0.029u,0.s) Chars 4827 - 4838 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4842 - 4887 [(induction~H0;~subst;~simpl;~e...] 0.01 secs (0.01u,0.s) +Chars 4842 - 4887 [(induction~H0;~subst;~simpl;~e...] 0.009 secs (0.009u,0.s) Chars 4891 - 4892 [-] 0. secs (0.u,0.s) -Chars 4893 - 4903 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 4893 - 4903 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 4904 - 4917 [econstructor.] 0. secs (0.u,0.s) Chars 4918 - 4935 [eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 4936 - 4940 [Qed.] 0.008 secs (0.008u,0.s) @@ -144,20 +144,20 @@ Chars 5351 - 5360 [(intros~*).] 0. secs (0.u,0.s) Chars 5363 - 5374 [revert~t~s.] 0. secs (0.u,0.s) Chars 5377 - 5395 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) Chars 5396 - 5403 [(intros).] 0. secs (0.u,0.s) -Chars 5407 - 5433 [(rewrite~!unfold_translate).] 0.032 secs (0.031u,0.s) +Chars 5407 - 5433 [(rewrite~!unfold_translate).] 0.031 secs (0.031u,0.s) Chars 5434 - 5444 [step~in~H.] 0. secs (0.u,0.s) Chars 5448 - 5500 [(induction~H;~intros;~subst;~s...] 0.005 secs (0.005u,0.s) Chars 5502 - 5506 [Qed.] 0.007 secs (0.007u,0.s) Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 5648 - 5654 [Proof.] 0. secs (0.u,0.s) Chars 5657 - 5746 [(intros;~unfold~trigger;~rewri...] 0.005 secs (0.005u,0.s) -Chars 5747 - 5751 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0.002 secs (0.002u,0.s) +Chars 5747 - 5751 [Qed.] 0.002 secs (0.001u,0.s) +Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0.003 secs (0.003u,0.s) Chars 5984 - 5990 [Proof.] 0. secs (0.u,0.s) Chars 5993 - 6000 [(intros).] 0. secs (0.u,0.s) Chars 6001 - 6028 [(rewrite~(itree_eta~t)~in~H).] 0.013 secs (0.013u,0.s) Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.004 secs (0.004u,0.s) -Chars 6061 - 6126 [(desobs~t~Ht;~clear~t~Ht;~rewr...] 0.043 secs (0.043u,0.s) +Chars 6061 - 6126 [(desobs~t~Ht;~clear~t~Ht;~rewr...] 0.044 secs (0.043u,0.001s) Chars 6129 - 6130 [-] 0. secs (0.u,0.s) Chars 6131 - 6147 [(step~in~H;~easy).] 0.002 secs (0.002u,0.s) Chars 6151 - 6152 [-] 0. secs (0.u,0.s) @@ -167,5 +167,5 @@ Chars 6173 - 6211 [(apply~eqitree_inv_Vis_r~in~H;...] 0. secs (0.u,0.s) Chars 6217 - 6226 [(cbn~in~H).] 0. secs (0.u,0.s) Chars 6227 - 6235 [inv_Vis.] 0.001 secs (0.001u,0.s) Chars 6241 - 6253 [exists~e,k.] 0. secs (0.u,0.s) -Chars 6254 - 6271 [(repeat~now~split).] 0.001 secs (0.001u,0.s) +Chars 6254 - 6271 [(repeat~now~split).] 0.002 secs (0.002u,0.s) Chars 6273 - 6277 [Qed.] 0.011 secs (0.011u,0.s) diff --git a/theories/Props/Cofinite.v.timing b/theories/Props/Cofinite.v.timing index 98f33ed8..bc68b5c0 100644 --- a/theories/Props/Cofinite.v.timing +++ b/theories/Props/Cofinite.v.timing @@ -1,13 +1,13 @@ -Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.242 secs (0.21u,0.031s) +Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.227 secs (0.196u,0.031s) Chars 133 - 169 [From~Coinduction~Require~Impor...] 0.001 secs (0.001u,0.s) Chars 171 - 273 [Theorem~not_all_infinite_any_f...] 0. secs (0.u,0.s) Chars 274 - 280 [Proof.] 0. secs (0.u,0.s) Chars 283 - 296 [(intros~H1~H2).] 0. secs (0.u,0.s) -Chars 297 - 449 [(induction~H2;~apply~(gfp_fp~a...] 0.007 secs (0.005u,0.001s) -Chars 452 - 500 [all:~(rewrite~H~in~H0;~inversi...] 0.002 secs (0.002u,0.s) -Chars 503 - 516 [ddestruction.] 0.003 secs (0.002u,0.s) +Chars 297 - 449 [(induction~H2;~apply~(gfp_fp~a...] 0.006 secs (0.004u,0.001s) +Chars 452 - 500 [all:~(rewrite~H~in~H0;~inversi...] 0.002 secs (0.001u,0.s) +Chars 503 - 516 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 517 - 545 [exact~(IHany_finite~(H3~_)).] 0. secs (0.u,0.s) -Chars 546 - 550 [Qed.] 0.043 secs (0.038u,0.004s) +Chars 546 - 550 [Qed.] 0.044 secs (0.038u,0.005s) Chars 552 - 654 [Theorem~not_any_infinite_all_f...] 0. secs (0.u,0.s) Chars 655 - 661 [Proof.] 0. secs (0.u,0.s) Chars 664 - 830 [(intros~H1~H2;~induction~H2;~a...] 0.005 secs (0.005u,0.s) diff --git a/theories/Props/EuttNoRet.v.timing b/theories/Props/EuttNoRet.v.timing index fde477f5..cb4bd5a8 100644 --- a/theories/Props/EuttNoRet.v.timing +++ b/theories/Props/EuttNoRet.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 83 - 185 [From~ITree~Require~Import~Axio...] 0.235 secs (0.206u,0.027s) +Chars 83 - 185 [From~ITree~Require~Import~Axio...] 0.217 secs (0.191u,0.025s) Chars 188 - 202 [Import~Monads.] 0. secs (0.u,0.s) Chars 203 - 224 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 225 - 257 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -14,7 +14,7 @@ Chars 809 - 828 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) Chars 829 - 833 [(cbn).] 0. secs (0.u,0.s) Chars 834 - 846 [constructor.] 0. secs (0.u,0.s) Chars 847 - 857 [exact~CIH.] 0. secs (0.u,0.s) -Chars 858 - 862 [Qed.] 0.005 secs (0.003u,0.001s) +Chars 858 - 862 [Qed.] 0.004 secs (0.003u,0.001s) Chars 864 - 1008 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) Chars 1009 - 1015 [Proof.] 0. secs (0.u,0.s) Chars 1018 - 1031 [(intros~E~A~B).] 0. secs (0.u,0.s) @@ -24,8 +24,8 @@ Chars 1070 - 1086 [(intros~t~f~Hdiv).] 0. secs (0.u,0.s) Chars 1089 - 1129 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) Chars 1132 - 1167 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) Chars 1168 - 1197 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) -Chars 1200 - 1222 [(inversion~Hdiv;~subst).] 0.003 secs (0.002u,0.s) -Chars 1225 - 1226 [-] 0.031 secs (0.028u,0.003s) +Chars 1200 - 1222 [(inversion~Hdiv;~subst).] 0.031 secs (0.028u,0.003s) +Chars 1225 - 1226 [-] 0. secs (0.u,0.s) Chars 1227 - 1252 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) Chars 1257 - 1278 [(rewrite~observe_bind).] 0. secs (0.u,0.s) Chars 1279 - 1292 [(rewrite~<-~H).] 0. secs (0.u,0.s) @@ -64,7 +64,7 @@ Chars 2302 - 2315 [(unfold~eqit_).] 0. secs (0.u,0.s) Chars 2318 - 2358 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) Chars 2361 - 2396 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) Chars 2397 - 2426 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2429 - 2455 [dependent~induction~Heutt.] 0.06 secs (0.059u,0.s) +Chars 2429 - 2455 [dependent~induction~Heutt.] 0.058 secs (0.056u,0.s) Chars 2458 - 2459 [-] 0. secs (0.u,0.s) Chars 2460 - 2468 [exfalso.] 0. secs (0.u,0.s) Chars 2469 - 2491 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) @@ -106,7 +106,7 @@ Chars 3012 - 3021 [exact~H0.] 0. secs (0.u,0.s) Chars 3024 - 3025 [-] 0. secs (0.u,0.s) Chars 3026 - 3039 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 3040 - 3059 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 3060 - 3064 [Qed.] 0.034 secs (0.034u,0.s) +Chars 3060 - 3064 [Qed.] 0.033 secs (0.032u,0.s) Chars 3071 - 3215 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) Chars 3216 - 3222 [Proof.] 0. secs (0.u,0.s) Chars 3225 - 3238 [(intros~E~A~B).] 0. secs (0.u,0.s) @@ -119,7 +119,7 @@ Chars 3349 - 3371 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) Chars 3372 - 3382 [step~in~H.] 0. secs (0.u,0.s) Chars 3383 - 3407 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) Chars 3408 - 3426 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) -Chars 3429 - 3470 [(dependent~induction~H;~try~co...] 0.019 secs (0.019u,0.s) +Chars 3429 - 3470 [(dependent~induction~H;~try~co...] 0.02 secs (0.019u,0.001s) Chars 3473 - 3474 [-] 0. secs (0.u,0.s) Chars 3475 - 3489 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 3490 - 3502 [constructor.] 0. secs (0.u,0.s) @@ -143,8 +143,8 @@ Chars 3744 - 3763 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) Chars 3764 - 3777 [(unfold~eqit_).] 0. secs (0.u,0.s) Chars 3778 - 3783 [auto.] 0. secs (0.u,0.s) Chars 3786 - 3787 [-] 0. secs (0.u,0.s) -Chars 3788 - 3810 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 3811 - 3815 [Qed.] 0.012 secs (0.012u,0.s) +Chars 3788 - 3810 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) +Chars 3811 - 3815 [Qed.] 0.011 secs (0.011u,0.s) Chars 3818 - 3953 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) Chars 3954 - 3960 [Proof.] 0. secs (0.u,0.s) Chars 3963 - 3976 [(intros~E~A~B).] 0. secs (0.u,0.s) @@ -155,7 +155,7 @@ Chars 4033 - 4055 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) Chars 4056 - 4066 [step~in~H.] 0. secs (0.u,0.s) Chars 4067 - 4091 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) Chars 4092 - 4110 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) -Chars 4113 - 4154 [(dependent~induction~H;~try~co...] 0.027 secs (0.027u,0.s) +Chars 4113 - 4154 [(dependent~induction~H;~try~co...] 0.028 secs (0.026u,0.001s) Chars 4157 - 4158 [-] 0. secs (0.u,0.s) Chars 4159 - 4173 [(rewrite~<-~x0).] 0. secs (0.u,0.s) Chars 4174 - 4187 [(rewrite~<-~x).] 0.002 secs (0.002u,0.s) @@ -175,7 +175,7 @@ Chars 4314 - 4333 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) Chars 4336 - 4337 [-] 0. secs (0.u,0.s) Chars 4338 - 4351 [(rewrite~<-~x).] 0. secs (0.u,0.s) Chars 4352 - 4371 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 4372 - 4376 [Qed.] 0.033 secs (0.033u,0.s) +Chars 4372 - 4376 [Qed.] 0.031 secs (0.031u,0.s) Chars 4378 - 4560 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 4561 - 4567 [Proof.] 0. secs (0.u,0.s) Chars 4570 - 4577 [(intros).] 0. secs (0.u,0.s) @@ -188,13 +188,13 @@ Chars 4708 - 4914 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) Chars 4915 - 4921 [Proof.] 0. secs (0.u,0.s) Chars 4924 - 4931 [(intros).] 0. secs (0.u,0.s) Chars 4932 - 4954 [(unfold~euttNoRet~in~*).] 0. secs (0.u,0.s) -Chars 4957 - 5084 [(eapply~eqit_mono~with~(b1~:=~...] 0.003 secs (0.003u,0.s) +Chars 4957 - 5084 [(eapply~eqit_mono~with~(b1~:=~...] 0.004 secs (0.003u,0.s) Chars 5087 - 5088 [-] 0. secs (0.u,0.s) Chars 5089 - 5103 [(intros~x~y~Hc).] 0. secs (0.u,0.s) Chars 5104 - 5132 [(inversion~Hc;~contradiction).] 0. secs (0.u,0.s) Chars 5135 - 5136 [-] 0. secs (0.u,0.s) Chars 5137 - 5162 [(eapply~eqit_trans;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5163 - 5167 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5163 - 5167 [Qed.] 0.002 secs (0.002u,0.s) Chars 5170 - 5289 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 5290 - 5296 [Proof.] 0. secs (0.u,0.s) Chars 5299 - 5328 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) @@ -228,7 +228,7 @@ Chars 5960 - 5985 [(assert~(euttNoRet~t3~t4)).] 0. secs (0.u,0.s) Chars 5990 - 5991 [{] 0. secs (0.u,0.s) Chars 5998 - 6018 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) Chars 6019 - 6043 [(apply~eutt_flip~in~Ht34).] 0. secs (0.u,0.s) -Chars 6050 - 6087 [(eapply~all_infinite_euttNoRet...] 0.002 secs (0.002u,0.s) +Chars 6050 - 6087 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) Chars 6092 - 6093 [}] 0. secs (0.u,0.s) Chars 6098 - 6123 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) Chars 6128 - 6166 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) diff --git a/theories/Props/Finite.v.timing b/theories/Props/Finite.v.timing index a68a6011..16cd42f6 100644 --- a/theories/Props/Finite.v.timing +++ b/theories/Props/Finite.v.timing @@ -1,5 +1,5 @@ -Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.095 secs (0.08u,0.015s) -Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.031 secs (0.027u,0.004s) +Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.095 secs (0.077u,0.017s) +Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.031 secs (0.026u,0.004s) Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.s) Chars 305 - 318 [Import~ITree.] 0. secs (0.u,0.s) Chars 319 - 341 [Import~ITreeNotations.] 0. secs (0.u,0.s) @@ -54,7 +54,7 @@ Chars 3541 - 3545 [Qed.] 0. secs (0.u,0.s) Chars 3546 - 3631 [#[global]~Hint~Extern~1~(any_f...] 0. secs (0.u,0.s) Chars 3675 - 3760 [Lemma~all_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3761 - 3767 [Proof.] 0. secs (0.u,0.s) -Chars 3770 - 3814 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.003 secs (0.002u,0.s) +Chars 3770 - 3814 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.003 secs (0.003u,0.s) Chars 3815 - 3819 [Qed.] 0.001 secs (0.001u,0.s) Chars 3821 - 3934 [Lemma~all_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3935 - 3941 [Proof.] 0. secs (0.u,0.s) @@ -65,7 +65,7 @@ Chars 4114 - 4119 [auto.] 0. secs (0.u,0.s) Chars 4120 - 4124 [Qed.] 0.001 secs (0.001u,0.s) Chars 4143 - 4228 [Lemma~any_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 4229 - 4235 [Proof.] 0. secs (0.u,0.s) -Chars 4238 - 4282 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.046 secs (0.045u,0.s) +Chars 4238 - 4282 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.047 secs (0.045u,0.001s) Chars 4283 - 4287 [Qed.] 0.001 secs (0.001u,0.s) Chars 4289 - 4402 [Lemma~any_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 4403 - 4409 [Proof.] 0. secs (0.u,0.s) @@ -86,8 +86,8 @@ Chars 5010 - 5069 [(hinduction~EQ~before~R;~intro...] 0.007 secs (0.007u,0.s) Chars 5072 - 5073 [-] 0. secs (0.u,0.s) Chars 5074 - 5111 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 5116 - 5128 [(apply~IHFIN).] 0. secs (0.u,0.s) -Chars 5129 - 5151 [(rewrite~<-~tau_euttge).] 0.092 secs (0.083u,0.009s) -Chars 5152 - 5161 [now~step.] 0.001 secs (0.001u,0.s) +Chars 5129 - 5151 [(rewrite~<-~tau_euttge).] 0.103 secs (0.087u,0.014s) +Chars 5152 - 5161 [now~step.] 0.002 secs (0.001u,0.s) Chars 5165 - 5166 [-] 0. secs (0.u,0.s) Chars 5167 - 5204 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 5209 - 5244 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) @@ -97,8 +97,8 @@ Chars 5297 - 5310 [revert~H0~H1.] 0. secs (0.u,0.s) Chars 5317 - 5421 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) Chars 5428 - 5445 [eauto~with~itree.] 0.003 secs (0.003u,0.s) Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5479 [(inv~Heqi;~eauto~with~itree).] 0.01 secs (0.01u,0.s) -Chars 5480 - 5484 [Qed.] 0.008 secs (0.008u,0.s) +Chars 5452 - 5479 [(inv~Heqi;~eauto~with~itree).] 0.01 secs (0.009u,0.s) +Chars 5480 - 5484 [Qed.] 0.008 secs (0.007u,0.001s) Chars 5486 - 5612 [Lemma~all_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 5613 - 5619 [Proof.] 0. secs (0.u,0.s) Chars 5622 - 5634 [(intros~*~EQ).] 0. secs (0.u,0.s) @@ -122,11 +122,11 @@ Chars 6117 - 6118 [-] 0. secs (0.u,0.s) Chars 6119 - 6130 [step~in~EQ.] 0. secs (0.u,0.s) Chars 6131 - 6156 [(rewrite~H~in~EQ;~clear~H).] 0. secs (0.u,0.s) Chars 6161 - 6193 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 6198 - 6257 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.007u,0.s) +Chars 6198 - 6257 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.008u,0.s) Chars 6260 - 6261 [-] 0. secs (0.u,0.s) Chars 6262 - 6299 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 6306 - 6318 [(apply~IHFIN).] 0. secs (0.u,0.s) -Chars 6319 - 6341 [(rewrite~<-~tau_euttge).] 0.038 secs (0.037u,0.s) +Chars 6319 - 6341 [(rewrite~<-~tau_euttge).] 0.041 secs (0.039u,0.s) Chars 6342 - 6351 [now~step.] 0.001 secs (0.001u,0.s) Chars 6355 - 6356 [-] 0. secs (0.u,0.s) Chars 6357 - 6394 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) @@ -137,7 +137,7 @@ Chars 6487 - 6506 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) Chars 6513 - 6617 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) Chars 6624 - 6641 [eauto~with~itree.] 0.002 secs (0.002u,0.s) Chars 6646 - 6647 [+] 0. secs (0.u,0.s) -Chars 6648 - 6675 [(inv~Heqi;~eauto~with~itree).] 0.007 secs (0.007u,0.s) +Chars 6648 - 6675 [(inv~Heqi;~eauto~with~itree).] 0.008 secs (0.008u,0.s) Chars 6676 - 6680 [Qed.] 0.007 secs (0.007u,0.s) Chars 6682 - 6808 [Lemma~any_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 6809 - 6815 [Proof.] 0. secs (0.u,0.s) @@ -154,8 +154,8 @@ Chars 7038 - 7070 [(eapply~any_finite_eutt_r;~eau...] 0. secs (0.u,0.s) Chars 7071 - 7075 [Qed.] 0. secs (0.u,0.s) Chars 7285 - 7450 [Lemma~all_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 7451 - 7457 [Proof.] 0. secs (0.u,0.s) -Chars 7460 - 7547 [(intros~*~FIN;~induction~FIN;~...] 0.006 secs (0.006u,0.s) -Chars 7548 - 7552 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7460 - 7547 [(intros~*~FIN;~induction~FIN;~...] 0.007 secs (0.007u,0.s) +Chars 7548 - 7552 [Qed.] 0.002 secs (0.002u,0.s) Chars 7554 - 7713 [Lemma~all_finite_bind_weak~:~~...] 0. secs (0.u,0.s) Chars 7714 - 7720 [Proof.] 0. secs (0.u,0.s) Chars 7723 - 7759 [(intros;~apply~all_finite_bind...] 0. secs (0.u,0.s) @@ -167,18 +167,18 @@ Chars 8014 - 8174 [(cut~~~(forall~u~:~itree~E~S,~...] 0. secs (0.u,0.s) Chars 8177 - 8226 [(intros~LEM~*~FIN;~eapply~LEM;...] 0. secs (0.u,0.s) Chars 8229 - 8254 [(induction~1;~intros~*~EQ).] 0. secs (0.u,0.s) Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8301 [(rewrite~(itree_eta~t),~H~in~E...] 0.016 secs (0.016u,0.s) +Chars 8259 - 8301 [(rewrite~(itree_eta~t),~H~in~E...] 0.017 secs (0.016u,0.s) Chars 8306 - 8371 [(symmetry~in~EQ;~apply~eqit_in...] 0. secs (0.u,0.s) Chars 8376 - 8412 [(rewrite~EQt;~split;~auto~with...] 0.001 secs (0.001u,0.s) Chars 8417 - 8429 [(intros~z~IN).] 0. secs (0.u,0.s) Chars 8434 - 8485 [(rewrite~EQt~in~IN;~apply~Leaf...] 0.002 secs (0.002u,0.s) Chars 8490 - 8519 [(rewrite~EQk;~auto~with~itree).] 0.002 secs (0.002u,0.s) Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8566 [(rewrite~(itree_eta~t),~H~in~E...] 0.017 secs (0.017u,0.s) +Chars 8524 - 8566 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.017u,0.s) Chars 8571 - 8594 [(rewrite~tau_eutt~in~EQ).] 0.014 secs (0.014u,0.s) Chars 8599 - 8605 [eauto.] 0. secs (0.u,0.s) Chars 8608 - 8609 [-] 0. secs (0.u,0.s) -Chars 8610 - 8652 [(rewrite~(itree_eta~t),~H~in~E...] 0.019 secs (0.019u,0.s) +Chars 8610 - 8652 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.018u,0.s) Chars 8657 - 8703 [(symmetry~in~EQ;~apply~eutt_in...] 0. secs (0.u,0.s) Chars 8708 - 8760 [(destruct~EQ~as~[(kca,~(EQ,~EQ...] 0. secs (0.u,0.s) Chars 8765 - 8766 [+] 0. secs (0.u,0.s) @@ -207,13 +207,13 @@ Chars 9588 - 9727 [Lemma~any_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) Chars 9737 - 9767 [(intros~*~IN~FIN;~induction~IN).] 0. secs (0.u,0.s) Chars 9770 - 9771 [-] 0. secs (0.u,0.s) -Chars 9772 - 9815 [(rewrite~(itree_eta~t),~H,~bin...] 0.004 secs (0.004u,0.s) +Chars 9772 - 9815 [(rewrite~(itree_eta~t),~H,~bin...] 0.003 secs (0.003u,0.s) Chars 9818 - 9819 [-] 0. secs (0.u,0.s) -Chars 9820 - 9860 [(rewrite~unfold_bind,~H,~tau_e...] 0.003 secs (0.003u,0.s) +Chars 9820 - 9860 [(rewrite~unfold_bind,~H,~tau_e...] 0.002 secs (0.002u,0.s) Chars 9863 - 9864 [-] 0. secs (0.u,0.s) Chars 9865 - 9888 [(rewrite~unfold_bind,~H).] 0.001 secs (0.001u,0.s) Chars 9893 - 9922 [(eapply~any_finite_Vis;~eauto).] 0. secs (0.u,0.s) -Chars 9923 - 9927 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9923 - 9927 [Qed.] 0.001 secs (0.001u,0.s) Chars 10064 - 10234 [Lemma~any_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) Chars 10235 - 10241 [Proof.] 0. secs (0.u,0.s) Chars 10244 - 10291 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) @@ -225,22 +225,22 @@ Chars 10402 - 10441 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) Chars 10446 - 10470 [(split;~eauto~with~itree).] 0. secs (0.u,0.s) Chars 10473 - 10474 [-] 0. secs (0.u,0.s) Chars 10475 - 10505 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 10510 - 10549 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.003 secs (0.001u,0.s) -Chars 10554 - 10578 [(split;~eauto~with~itree).] 0.003 secs (0.001u,0.s) -Chars 10583 - 10620 [(inversion~H;~clear~H;~symmetr...] 0.004 secs (0.001u,0.s) +Chars 10510 - 10549 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) +Chars 10554 - 10578 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 10583 - 10620 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) Chars 10625 - 10660 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) Chars 10665 - 10674 [(apply~H1).] 0. secs (0.u,0.s) -Chars 10679 - 10703 [(split;~eauto~with~itree).] 0.002 secs (0.001u,0.s) +Chars 10679 - 10703 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 10706 - 10707 [-] 0. secs (0.u,0.s) Chars 10708 - 10738 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) Chars 10743 - 10782 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) Chars 10787 - 10811 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 10816 - 10835 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 10840 - 10941 [refine~~match~~~~H~in~(_~=~u)~...] 0.003 secs (0.001u,0.s) +Chars 10840 - 10941 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) Chars 10946 - 10953 [(intros).] 0. secs (0.u,0.s) Chars 10958 - 11012 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) Chars 11017 - 11041 [(split;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 11042 - 11046 [Qed.] 0.005 secs (0.005u,0.s) +Chars 11042 - 11046 [Qed.] 0.004 secs (0.004u,0.s) Chars 11048 - 11212 [Lemma~any_finite_bind_inv_weak...] 0. secs (0.u,0.s) Chars 11213 - 11219 [Proof.] 0. secs (0.u,0.s) Chars 11222 - 11282 [(intros~*~FIN;~apply~any_finit...] 0. secs (0.u,0.s) @@ -252,8 +252,8 @@ Chars 11444 - 11486 [(intros;~eapply~any_finite_bin...] 0. secs (0.u,0.s) Chars 11487 - 11491 [Qed.] 0. secs (0.u,0.s) Chars 11535 - 11613 [Lemma~Leaf_finite~:~forall~E~R...] 0. secs (0.u,0.s) Chars 11614 - 11620 [Proof.] 0. secs (0.u,0.s) -Chars 11623 - 11691 [(intros~*~FIN;~induction~FIN;~...] 0.005 secs (0.004u,0.s) -Chars 11692 - 11696 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11623 - 11691 [(intros~*~FIN;~induction~FIN;~...] 0.004 secs (0.004u,0.s) +Chars 11692 - 11696 [Qed.] 0.001 secs (0.u,0.s) Chars 11698 - 11784 [Lemma~finite_Leaf~:~~~forall~E...] 0. secs (0.u,0.s) Chars 11785 - 11791 [Proof.] 0. secs (0.u,0.s) Chars 11794 - 11822 [(intros~*~FIN;~induction~FIN).] 0. secs (0.u,0.s) @@ -263,7 +263,7 @@ Chars 11919 - 11923 [Qed.] 0.001 secs (0.001u,0.s) Chars 12232 - 12324 [Lemma~finite_non_interactive~:...] 0. secs (0.u,0.s) Chars 12325 - 12331 [Proof.] 0. secs (0.u,0.s) Chars 12334 - 12406 [(split;~induction~1;~cbn~in~*;...] 0.001 secs (0.001u,0.s) -Chars 12407 - 12411 [Qed.] 0.001 secs (0.u,0.s) +Chars 12407 - 12411 [Qed.] 0. secs (0.u,0.s) Chars 12413 - 12517 [Lemma~finite_leaf_non_interact...] 0. secs (0.u,0.s) Chars 12518 - 12524 [Proof.] 0. secs (0.u,0.s) Chars 12527 - 12536 [(intros~*).] 0. secs (0.u,0.s) @@ -276,7 +276,7 @@ Chars 12764 - 12814 [(intros~*~IN;~revert~b;~induct...] 0. secs (0.u,0.s) Chars 12817 - 12818 [-] 0. secs (0.u,0.s) Chars 12819 - 12880 [(rewrite~itree_eta,~H~in~IN';~...] 0.002 secs (0.002u,0.s) Chars 12883 - 12884 [-] 0. secs (0.u,0.s) -Chars 12885 - 12930 [(rewrite~itree_eta,~H,~tau_eut...] 0.008 secs (0.007u,0.s) +Chars 12885 - 12930 [(rewrite~itree_eta,~H,~tau_eut...] 0.006 secs (0.006u,0.s) Chars 12933 - 12934 [-] 0. secs (0.u,0.s) Chars 12935 - 12941 [(inv~e).] 0. secs (0.u,0.s) Chars 12942 - 12946 [Qed.] 0.001 secs (0.001u,0.s) @@ -353,11 +353,11 @@ Chars 16068 - 16102 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) Chars 16105 - 16106 [-] 0. secs (0.u,0.s) Chars 16107 - 16122 [(unfold~t~in~IN).] 0. secs (0.u,0.s) Chars 16127 - 16143 [clear~FINk~FINt.] 0. secs (0.u,0.s) -Chars 16148 - 16181 [(inv~IN;~cbn~in~*;~try~congrue...] 0.008 secs (0.008u,0.s) +Chars 16148 - 16181 [(inv~IN;~cbn~in~*;~try~congrue...] 0.007 secs (0.007u,0.s) Chars 16186 - 16208 [dependent~induction~H.] 0.001 secs (0.001u,0.s) Chars 16213 - 16234 [(destruct~x;~cbn~in~*).] 0. secs (0.u,0.s) Chars 16239 - 16276 [(apply~Leaf_Ret_inv~in~H0;~con...] 0. secs (0.u,0.s) Chars 16281 - 16305 [(apply~Leaf_finite~in~H0).] 0. secs (0.u,0.s) Chars 16310 - 16344 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) -Chars 16347 - 16351 [Qed.] 0.002 secs (0.002u,0.s) +Chars 16347 - 16351 [Qed.] 0.001 secs (0.001u,0.s) Chars 16353 - 16373 [End~Counterexamples.] 0. secs (0.u,0.s) diff --git a/theories/Props/HasPost.v.timing b/theories/Props/HasPost.v.timing index 61900e8a..1698b5c6 100644 --- a/theories/Props/HasPost.v.timing +++ b/theories/Props/HasPost.v.timing @@ -1,5 +1,5 @@ -Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) -Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.087 secs (0.073u,0.013s) +Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.092 secs (0.073u,0.018s) Chars 186 - 209 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 210 - 230 [Set~Strict~Implicit.] 0. secs (0.u,0.s) Chars 231 - 251 [Import~RelNotations.] 0. secs (0.u,0.s) @@ -24,7 +24,7 @@ Chars 2112 - 2219 [#[global]~Instance~has_post_eq...] 0. secs (0.u,0.s) Chars 2220 - 2226 [Proof.] 0. secs (0.u,0.s) Chars 2229 - 2297 [(repeat~red;~unfold~has_post;~...] 0. secs (0.u,0.s) Chars 2300 - 2301 [-] 0. secs (0.u,0.s) -Chars 2302 - 2344 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.001 secs (0.001u,0.s) +Chars 2302 - 2344 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.002 secs (0.001u,0.s) Chars 2349 - 2385 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) Chars 2388 - 2389 [-] 0. secs (0.u,0.s) Chars 2390 - 2429 [(rewrite~EUTT;~eapply~eutt_equ...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 3650 - 3667 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) Chars 3668 - 3680 [4:~exact~HQ.] 0. secs (0.u,0.s) Chars 3681 - 3691 [1,~2:~auto.] 0. secs (0.u,0.s) Chars 3694 - 3714 [(intros;~right;~auto).] 0. secs (0.u,0.s) -Chars 3715 - 3719 [Qed.] 0.038 secs (0.037u,0.s) +Chars 3715 - 3719 [Qed.] 0.04 secs (0.039u,0.001s) Chars 3737 - 3837 [Lemma~has_post_weaken~:~~~fora...] 0. secs (0.u,0.s) Chars 3838 - 3844 [Proof.] 0. secs (0.u,0.s) Chars 3847 - 3910 [(unfold~has_post,~subrelationH...] 0. secs (0.u,0.s) @@ -93,16 +93,16 @@ Chars 5178 - 5184 [Proof.] 0. secs (0.u,0.s) Chars 5187 - 5205 [(intros~*~IND~INIT).] 0. secs (0.u,0.s) Chars 5208 - 5284 [(eapply~(@KTreeFacts.eutt_iter...] 0.001 secs (0.001u,0.s) Chars 5287 - 5305 [(intros~i~?~[<-~?]).] 0. secs (0.u,0.s) -Chars 5308 - 5368 [(specialize~(IND~i);~apply~has...] 0.004 secs (0.004u,0.s) +Chars 5308 - 5368 [(specialize~(IND~i);~apply~has...] 0.004 secs (0.003u,0.s) Chars 5371 - 5401 [(unfold~has_post_strong~in~IND).] 0. secs (0.u,0.s) Chars 5404 - 5442 [(eapply~eqit_mono;~try~apply~I...] 0.005 secs (0.005u,0.s) -Chars 5445 - 5471 [(intros~[]~?~[<-~?];~eauto).] 0.003 secs (0.002u,0.s) -Chars 5472 - 5476 [Qed.] 0.006 secs (0.004u,0.001s) +Chars 5445 - 5471 [(intros~[]~?~[<-~?];~eauto).] 0.002 secs (0.002u,0.s) +Chars 5472 - 5476 [Qed.] 0.005 secs (0.004u,0.001s) Chars 5521 - 5634 [Lemma~has_post_translate~:~~~f...] 0. secs (0.u,0.s) Chars 5635 - 5641 [Proof.] 0. secs (0.u,0.s) Chars 5644 - 5675 [(unfold~has_post;~intros~*~POST).] 0. secs (0.u,0.s) Chars 5678 - 5709 [(apply~eutt_translate_gen;~auto).] 0. secs (0.u,0.s) -Chars 5710 - 5714 [Qed.] 0.003 secs (0.002u,0.s) +Chars 5710 - 5714 [Qed.] 0.004 secs (0.002u,0.001s) Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0.001 secs (0.u,0.s) Chars 6249 - 6255 [Proof.] 0. secs (0.u,0.s) Chars 6258 - 6286 [(intros~*~POST1~POST2~EQ~KEQ).] 0. secs (0.u,0.s) @@ -114,22 +114,22 @@ Chars 6458 - 6494 [(apply~has_post_post_strong~in...] 0.002 secs (0.001u,0.s) Chars 6497 - 6535 [(pose~proof~(eqit_trans~POST1~...] 0. secs (0.u,0.s) Chars 6538 - 6577 [(pose~proof~(eqit_trans~EQ1~PO...] 0. secs (0.u,0.s) Chars 6580 - 6591 [clear~-~EQ2.] 0. secs (0.u,0.s) -Chars 6594 - 6619 [(eapply~eutt_equiv;~eauto).] 0. secs (0.u,0.s) +Chars 6594 - 6619 [(eapply~eutt_equiv;~eauto).] 0.001 secs (0.u,0.s) Chars 6622 - 6628 [split.] 0. secs (0.u,0.s) Chars 6631 - 6632 [-] 0. secs (0.u,0.s) Chars 6633 - 6682 [(intros~?~?~(?,~(?,~?));~do~2~...] 0.001 secs (0.u,0.s) Chars 6685 - 6686 [-] 0. secs (0.u,0.s) Chars 6687 - 6700 [(intros~?~?~?).] 0. secs (0.u,0.s) Chars 6701 - 6707 [(inv~H).] 0.003 secs (0.002u,0.s) -Chars 6708 - 6717 [(inv~REL1).] 0.003 secs (0.002u,0.s) -Chars 6722 - 6769 [(destruct~REL2~as~[->~?],~REL0...] 0. secs (0.u,0.s) -Chars 6770 - 6774 [Qed.] 0.004 secs (0.003u,0.s) +Chars 6708 - 6717 [(inv~REL1).] 0.003 secs (0.002u,0.001s) +Chars 6722 - 6769 [(destruct~REL2~as~[->~?],~REL0...] 0.001 secs (0.u,0.s) +Chars 6770 - 6774 [Qed.] 0.005 secs (0.003u,0.001s) Chars 6833 - 7052 [Lemma~eutt_post_bind_eq~:~~~fo...] 0. secs (0.u,0.s) Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) Chars 7062 - 7078 [(intros~*~POST~?).] 0. secs (0.u,0.s) -Chars 7081 - 7183 [(apply~eutt_bind_eutt~with~(UU...] 0.002 secs (0.002u,0.s) +Chars 7081 - 7183 [(apply~eutt_bind_eutt~with~(UU...] 0.003 secs (0.002u,0.s) Chars 7186 - 7210 [(intros~?~?~[->~?];~auto).] 0. secs (0.u,0.s) -Chars 7211 - 7215 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7211 - 7215 [Qed.] 0.002 secs (0.002u,0.s) Chars 7435 - 7539 [Lemma~eutt_eq_itree~{E}~{X}~(R...] 0. secs (0.u,0.s) Chars 7540 - 7546 [Proof.] 0. secs (0.u,0.s) Chars 7549 - 7632 [(enough~~~(forall~t~u~:~itree~...] 0. secs (0.u,0.s) @@ -138,10 +138,10 @@ Chars 7637 - 7689 [(intros;~apply~H;~[~auto~|~app...] 0. secs (0.u,0.s) Chars 7690 - 7691 [}] 0. secs (0.u,0.s) Chars 7694 - 7706 [coinduction.] 0.002 secs (0.002u,0.s) Chars 7710 - 7726 [(intros~t~u~H~EQ).] 0. secs (0.u,0.s) -Chars 7730 - 7772 [(rewrite~(itree_eta~t),~(itree...] 0.042 secs (0.04u,0.001s) +Chars 7730 - 7772 [(rewrite~(itree_eta~t),~(itree...] 0.039 secs (0.038u,0.001s) Chars 7775 - 7786 [step~in~EQ.] 0. secs (0.u,0.s) Chars 7787 - 7791 [(cbn).] 0. secs (0.u,0.s) -Chars 7792 - 7835 [(destruct~EQ;~try~discriminate...] 0.002 secs (0.001u,0.s) +Chars 7792 - 7835 [(destruct~EQ;~try~discriminate...] 0.002 secs (0.002u,0.s) Chars 7838 - 7839 [-] 0. secs (0.u,0.s) Chars 7840 - 7865 [(rewrite~<-~eutt_Ret~in~H).] 0. secs (0.u,0.s) Chars 7866 - 7871 [auto.] 0. secs (0.u,0.s) diff --git a/theories/Props/Infinite.v.timing b/theories/Props/Infinite.v.timing index 8ed14ec5..76ec26ee 100644 --- a/theories/Props/Infinite.v.timing +++ b/theories/Props/Infinite.v.timing @@ -1,6 +1,6 @@ -Chars 171 - 207 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.001s) -Chars 210 - 285 [From~Stdlib~Require~Import~Set...] 0.003 secs (0.001u,0.001s) -Chars 287 - 392 [From~ITree~Require~Import~Axio...] 0.226 secs (0.188u,0.026s) +Chars 171 - 207 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 210 - 285 [From~Stdlib~Require~Import~Set...] 0.002 secs (0.001u,0.001s) +Chars 287 - 392 [From~ITree~Require~Import~Axio...] 0.208 secs (0.178u,0.027s) Chars 409 - 431 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 432 - 458 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) Chars 460 - 483 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) @@ -11,8 +11,8 @@ Chars 895 - 939 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) Chars 941 - 1017 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) Chars 1018 - 1024 [Proof.] 0. secs (0.u,0.s) Chars 1028 - 1047 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 1048 - 1096 [(induction~H0;~econstructor;~e...] 0.001 secs (0.u,0.s) -Chars 1098 - 1102 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1048 - 1096 [(induction~H0;~econstructor;~e...] 0. secs (0.u,0.s) +Chars 1098 - 1102 [Qed.] 0.001 secs (0.u,0.s) Chars 1105 - 1235 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) Chars 1237 - 1313 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) Chars 1315 - 1413 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) @@ -47,7 +47,7 @@ Chars 1960 - 1985 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) Chars 1986 - 1992 [eauto.] 0. secs (0.u,0.s) Chars 1997 - 1998 [+] 0. secs (0.u,0.s) Chars 1999 - 2010 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 2011 - 2033 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 2011 - 2033 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) Chars 2040 - 2078 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) Chars 2085 - 2118 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) Chars 2119 - 2146 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) @@ -62,7 +62,7 @@ Chars 2250 - 2261 [exact~Hinf.] 0. secs (0.u,0.s) Chars 2264 - 2265 [-] 0. secs (0.u,0.s) Chars 2266 - 2287 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) Chars 2288 - 2313 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) -Chars 2314 - 2332 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) +Chars 2314 - 2332 [coinduction~c~CIH.] 0. secs (0.u,0.s) Chars 2337 - 2358 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) Chars 2359 - 2370 [step~in~Ht.] 0. secs (0.u,0.s) Chars 2371 - 2396 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) @@ -81,7 +81,7 @@ Chars 2655 - 2667 [constructor.] 0. secs (0.u,0.s) Chars 2668 - 2686 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) Chars 2691 - 2692 [+] 0. secs (0.u,0.s) Chars 2693 - 2715 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) -Chars 2716 - 2741 [dependent~destruction~H2.] 0.032 secs (0.029u,0.003s) +Chars 2716 - 2741 [dependent~destruction~H2.] 0.03 secs (0.026u,0.003s) Chars 2748 - 2761 [econstructor.] 0. secs (0.u,0.s) Chars 2762 - 2787 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) Chars 2788 - 2794 [eauto.] 0. secs (0.u,0.s) @@ -99,7 +99,7 @@ Chars 2947 - 2985 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) Chars 2992 - 3025 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) Chars 3026 - 3053 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 3054 - 3063 [exact~H0.] 0. secs (0.u,0.s) -Chars 3064 - 3068 [Qed.] 0.011 secs (0.011u,0.s) +Chars 3064 - 3068 [Qed.] 0.01 secs (0.01u,0.s) Chars 3070 - 3129 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) Chars 3130 - 3136 [Proof.] 0. secs (0.u,0.s) Chars 3139 - 3159 [(unfold~any_infinite).] 0. secs (0.u,0.s) @@ -136,7 +136,7 @@ Chars 4835 - 4836 [-] 0. secs (0.u,0.s) Chars 4837 - 4849 [(induction~H).] 0. secs (0.u,0.s) Chars 4854 - 4855 [+] 0. secs (0.u,0.s) Chars 4856 - 4877 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) -Chars 4878 - 4892 [(rewrite~<-~Ht).] 0.002 secs (0.002u,0.s) +Chars 4878 - 4892 [(rewrite~<-~Ht).] 0.001 secs (0.001u,0.s) Chars 4893 - 4898 [auto.] 0. secs (0.u,0.s) Chars 4903 - 4904 [+] 0. secs (0.u,0.s) Chars 4905 - 4928 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) @@ -146,7 +146,7 @@ Chars 4959 - 4964 [auto.] 0. secs (0.u,0.s) Chars 4967 - 4968 [-] 0. secs (0.u,0.s) Chars 4969 - 4981 [(induction~H).] 0. secs (0.u,0.s) Chars 4986 - 4987 [+] 0. secs (0.u,0.s) -Chars 4988 - 5009 [(apply~conv_ret;~auto).] 0.035 secs (0.034u,0.s) +Chars 4988 - 5009 [(apply~conv_ret;~auto).] 0.034 secs (0.033u,0.s) Chars 5010 - 5021 [(rewrite~Ht).] 0. secs (0.u,0.s) Chars 5022 - 5027 [auto.] 0. secs (0.u,0.s) Chars 5032 - 5033 [+] 0. secs (0.u,0.s) @@ -236,12 +236,12 @@ Chars 6755 - 6766 [(apply~IHHt).] 0. secs (0.u,0.s) Chars 6767 - 6778 [exact~Hinf.] 0. secs (0.u,0.s) Chars 6783 - 6784 [+] 0. secs (0.u,0.s) Chars 6785 - 6796 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 6797 - 6819 [(inversion~Hinf;~subst).] 0.004 secs (0.004u,0.s) +Chars 6797 - 6819 [(inversion~Hinf;~subst).] 0.004 secs (0.003u,0.s) Chars 6826 - 6864 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) Chars 6871 - 6904 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) Chars 6905 - 6932 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) Chars 6933 - 6942 [exact~H0.] 0. secs (0.u,0.s) -Chars 6943 - 6947 [Qed.] 0.011 secs (0.01u,0.s) +Chars 6943 - 6947 [Qed.] 0.01 secs (0.009u,0.s) Chars 6949 - 7093 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) Chars 7094 - 7100 [Proof.] 0. secs (0.u,0.s) Chars 7103 - 7114 [(intros~E~A).] 0. secs (0.u,0.s) @@ -254,7 +254,7 @@ Chars 7224 - 7308 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) Chars 7311 - 7312 [-] 0. secs (0.u,0.s) Chars 7313 - 7321 [exfalso.] 0. secs (0.u,0.s) Chars 7322 - 7337 [(apply~(Hcon~r)).] 0. secs (0.u,0.s) -Chars 7338 - 7349 [(rewrite~Ht).] 0.004 secs (0.004u,0.s) +Chars 7338 - 7349 [(rewrite~Ht).] 0.003 secs (0.003u,0.s) Chars 7350 - 7362 [constructor.] 0. secs (0.u,0.s) Chars 7363 - 7375 [reflexivity.] 0. secs (0.u,0.s) Chars 7378 - 7379 [-] 0. secs (0.u,0.s) @@ -268,7 +268,7 @@ Chars 7478 - 7490 [constructor.] 0. secs (0.u,0.s) Chars 7491 - 7500 [(intros~b).] 0. secs (0.u,0.s) Chars 7501 - 7511 [(apply~CIH).] 0. secs (0.u,0.s) Chars 7516 - 7533 [(intros~a~Hcontra).] 0. secs (0.u,0.s) -Chars 7534 - 7560 [setoid_rewrite~Ht~in~Hcon.] 0.009 secs (0.009u,0.s) +Chars 7534 - 7560 [setoid_rewrite~Ht~in~Hcon.] 0.009 secs (0.008u,0.s) Chars 7565 - 7580 [(apply~(Hcon~a)).] 0. secs (0.u,0.s) Chars 7581 - 7621 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) Chars 7622 - 7626 [Qed.] 0.002 secs (0.002u,0.s) @@ -300,10 +300,10 @@ Chars 8292 - 8330 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) Chars 8335 - 8368 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) Chars 8369 - 8396 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) Chars 8401 - 8414 [(inversion~Hd).] 0.001 secs (0.001u,0.s) -Chars 8415 - 8428 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 8415 - 8428 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 8429 - 8435 [subst.] 0. secs (0.u,0.s) Chars 8436 - 8445 [(apply~H1).] 0. secs (0.u,0.s) -Chars 8446 - 8450 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8446 - 8450 [Qed.] 0.003 secs (0.003u,0.s) Chars 8452 - 8548 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) Chars 8549 - 8555 [Proof.] 0. secs (0.u,0.s) Chars 8558 - 8565 [(intros).] 0. secs (0.u,0.s) @@ -312,7 +312,7 @@ Chars 8581 - 8582 [-] 0. secs (0.u,0.s) Chars 8583 - 8608 [(apply~eutt_inv_Ret~in~H0).] 0. secs (0.u,0.s) Chars 8609 - 8614 [auto.] 0. secs (0.u,0.s) Chars 8617 - 8618 [-] 0. secs (0.u,0.s) -Chars 8619 - 8666 [(apply~eqit_inv~in~H0;~cbn~in~...] 0.001 secs (0.001u,0.s) +Chars 8619 - 8666 [(apply~eqit_inv~in~H0;~cbn~in~...] 0. secs (0.u,0.s) Chars 8667 - 8671 [Qed.] 0.001 secs (0.001u,0.s) Chars 8746 - 8845 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) Chars 8888 - 9006 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Props/Leaf.v.timing b/theories/Props/Leaf.v.timing index 6cf1b074..ac93c33c 100644 --- a/theories/Props/Leaf.v.timing +++ b/theories/Props/Leaf.v.timing @@ -1,5 +1,5 @@ -Chars 56 - 92 [From~Coinduction~Require~Impor...] 0.008 secs (0.007u,0.001s) -Chars 95 - 298 [From~ITree~Require~Import~Basi...] 0.1 secs (0.078u,0.013s) +Chars 56 - 92 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) +Chars 95 - 298 [From~ITree~Require~Import~Basi...] 0.089 secs (0.073u,0.015s) Chars 300 - 361 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.001s) Chars 362 - 375 [Import~ITree.] 0. secs (0.u,0.s) Chars 376 - 398 [Import~ITreeNotations.] 0. secs (0.u,0.s) @@ -27,11 +27,11 @@ Chars 1870 - 1916 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) Chars 1917 - 1921 [Qed.] 0.001 secs (0.001u,0.s) Chars 1923 - 2001 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) Chars 2002 - 2008 [Proof.] 0. secs (0.u,0.s) -Chars 2011 - 2057 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.004 secs (0.004u,0.s) +Chars 2011 - 2057 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) Chars 2058 - 2062 [Qed.] 0.001 secs (0.001u,0.s) Chars 2064 - 2173 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) Chars 2174 - 2180 [Proof.] 0. secs (0.u,0.s) -Chars 2183 - 2231 [(intros~*~IN~*;~inv~IN;~cbn~in...] 0.004 secs (0.003u,0.s) +Chars 2183 - 2231 [(intros~*~IN~*;~inv~IN;~cbn~in...] 0.003 secs (0.003u,0.s) Chars 2234 - 2246 [revert~x~H0.] 0. secs (0.u,0.s) Chars 2249 - 2364 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) Chars 2367 - 2373 [eauto.] 0. secs (0.u,0.s) @@ -44,7 +44,7 @@ Chars 2764 - 2765 [-] 0. secs (0.u,0.s) Chars 2766 - 2777 [step~in~EQ.] 0. secs (0.u,0.s) Chars 2783 - 2810 [(rewrite~H~in~EQ;~clear~H~t).] 0. secs (0.u,0.s) Chars 2815 - 2847 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 2852 - 2893 [(hinduction~EQ~before~R;~intro...] 0.045 secs (0.045u,0.s) +Chars 2852 - 2893 [(hinduction~EQ~before~R;~intro...] 0.043 secs (0.042u,0.001s) Chars 2898 - 2899 [+] 0. secs (0.u,0.s) Chars 2900 - 2927 [(inv~Heqi;~eauto~with~itree).] 0.001 secs (0.001u,0.s) Chars 2932 - 2933 [+] 0. secs (0.u,0.s) @@ -52,7 +52,7 @@ Chars 2934 - 2984 [(edestruct~IHEQ~as~(b,~(IN,~HR...] 0.001 secs (0.001u,0.s) Chars 2987 - 2988 [-] 0. secs (0.u,0.s) Chars 2989 - 3028 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) Chars 3033 - 3066 [(remember~(TauF~u);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 3071 - 3122 [(hinduction~EQ~before~R;~intro...] 0.028 secs (0.025u,0.002s) +Chars 3071 - 3122 [(hinduction~EQ~before~R;~intro...] 0.026 secs (0.024u,0.002s) Chars 3127 - 3128 [+] 0. secs (0.u,0.s) Chars 3129 - 3196 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.002 secs (0.001u,0.s) Chars 3201 - 3202 [+] 0. secs (0.u,0.s) @@ -71,7 +71,7 @@ Chars 3596 - 3603 [(intros).] 0. secs (0.u,0.s) Chars 3604 - 3668 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.003 secs (0.002u,0.s) Chars 3673 - 3674 [+] 0. secs (0.u,0.s) Chars 3675 - 3742 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) -Chars 3743 - 3747 [Qed.] 0.014 secs (0.011u,0.002s) +Chars 3743 - 3747 [Qed.] 0.013 secs (0.01u,0.002s) Chars 3749 - 3886 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) Chars 3887 - 3893 [Proof.] 0. secs (0.u,0.s) Chars 3896 - 3912 [(intros~*~EQ~FIN).] 0. secs (0.u,0.s) @@ -108,7 +108,7 @@ Chars 4942 - 4981 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) Chars 4986 - 5012 [(exists~r;~auto~with~itree).] 0. secs (0.u,0.s) Chars 5015 - 5016 [-] 0. secs (0.u,0.s) Chars 5017 - 5047 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 5052 - 5124 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.002 secs (0.001u,0.s) +Chars 5052 - 5124 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) Chars 5129 - 5166 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) Chars 5171 - 5241 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) Chars 5244 - 5245 [-] 0. secs (0.u,0.s) @@ -128,7 +128,7 @@ Chars 6348 - 6364 [tower~induction.] 0.005 secs (0.004u,0.s) Chars 6367 - 6368 [{] 0. secs (0.u,0.s) Chars 6369 - 6376 [(intros).] 0. secs (0.u,0.s) Chars 6377 - 6397 [(unfold~Datatypes.id).] 0. secs (0.u,0.s) -Chars 6398 - 6413 [(apply~H0;~auto).] 0.002 secs (0.002u,0.s) +Chars 6398 - 6413 [(apply~H0;~auto).] 0.002 secs (0.001u,0.s) Chars 6414 - 6415 [}] 0. secs (0.u,0.s) Chars 6418 - 6430 [(intros~x~IH).] 0. secs (0.u,0.s) Chars 6433 - 6464 [(intros~UU~t1~t2~k1~k2~EQT~EQKL).] 0. secs (0.u,0.s) @@ -137,7 +137,7 @@ Chars 6495 - 6513 [(unfold~eqit_~in~*).] 0. secs (0.u,0.s) Chars 6516 - 6530 [(genobs~t1~ot1).] 0. secs (0.u,0.s) Chars 6533 - 6547 [(genobs~t2~ot2).] 0. secs (0.u,0.s) Chars 6550 - 6583 [(hinduction~EQT~before~RR;~int...] 0.003 secs (0.003u,0.s) -Chars 6586 - 6623 [1-3:~(rewrite~2!observe_bind;~...] 0.022 secs (0.021u,0.s) +Chars 6586 - 6623 [1-3:~(rewrite~2!observe_bind;~...] 0.021 secs (0.02u,0.s) Chars 6627 - 6628 [+] 0. secs (0.u,0.s) Chars 6643 - 6654 [(apply~EQKL).] 0. secs (0.u,0.s) Chars 6660 - 6661 [*] 0. secs (0.u,0.s) @@ -181,18 +181,18 @@ Chars 7134 - 7135 [+] 0. secs (0.u,0.s) Chars 7151 - 7172 [(rewrite~observe_bind).] 0. secs (0.u,0.s) Chars 7173 - 7181 [simpobs.] 0.005 secs (0.005u,0.s) Chars 7186 - 7191 [taul.] 0. secs (0.u,0.s) -Chars 7196 - 7227 [(eapply~IHEQT;~eauto~with~itree).] 0.003 secs (0.003u,0.s) +Chars 7196 - 7227 [(eapply~IHEQT;~eauto~with~itree).] 0.004 secs (0.003u,0.s) Chars 7230 - 7231 [+] 0. secs (0.u,0.s) -Chars 7247 - 7280 [setoid_rewrite~observe_bind~at~2.] 0.023 secs (0.023u,0.s) +Chars 7247 - 7280 [setoid_rewrite~observe_bind~at~2.] 0.025 secs (0.023u,0.001s) Chars 7281 - 7289 [simpobs.] 0.004 secs (0.004u,0.s) Chars 7294 - 7299 [taur.] 0. secs (0.u,0.s) -Chars 7304 - 7335 [(eapply~IHEQT;~eauto~with~itree).] 0.004 secs (0.004u,0.s) -Chars 7336 - 7340 [Qed.] 0.013 secs (0.012u,0.s) -Chars 7390 - 7778 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) +Chars 7304 - 7335 [(eapply~IHEQT;~eauto~with~itree).] 0.004 secs (0.003u,0.s) +Chars 7336 - 7340 [Qed.] 0.013 secs (0.012u,0.001s) +Chars 7390 - 7778 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0.001 secs (0.u,0.s) Chars 7779 - 7785 [Proof.] 0. secs (0.u,0.s) Chars 7788 - 7797 [(intros~*).] 0. secs (0.u,0.s) Chars 7798 - 7810 [(unfold~eutt).] 0. secs (0.u,0.s) -Chars 7811 - 7835 [(apply~eqit_clo_bind_gen).] 0. secs (0.u,0.s) +Chars 7811 - 7835 [(apply~eqit_clo_bind_gen).] 0.001 secs (0.001u,0.s) Chars 7836 - 7840 [Qed.] 0. secs (0.u,0.s) Chars 7900 - 8107 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) Chars 8108 - 8114 [Proof.] 0. secs (0.u,0.s) @@ -204,11 +204,11 @@ Chars 8200 - 8427 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) Chars 8428 - 8434 [Proof.] 0. secs (0.u,0.s) Chars 8437 - 8456 [(intros~EQIT~r~HRET).] 0. secs (0.u,0.s) Chars 8459 - 8477 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) -Chars 8480 - 8541 [(induction~HRET;~intros;~rewri...] 0.136 secs (0.135u,0.s) +Chars 8480 - 8541 [(induction~HRET;~intros;~rewri...] 0.135 secs (0.133u,0.001s) Chars 8544 - 8545 [-] 0. secs (0.u,0.s) Chars 8546 - 8557 [assumption.] 0. secs (0.u,0.s) Chars 8560 - 8561 [-] 0. secs (0.u,0.s) -Chars 8562 - 8589 [(rewrite~2!tau_eutt~in~EQIT).] 0.045 secs (0.045u,0.s) +Chars 8562 - 8589 [(rewrite~2!tau_eutt~in~EQIT).] 0.042 secs (0.042u,0.s) Chars 8590 - 8595 [auto.] 0. secs (0.u,0.s) Chars 8598 - 8599 [-] 0. secs (0.u,0.s) Chars 8600 - 8613 [(apply~IHHRET).] 0. secs (0.u,0.s) @@ -267,21 +267,21 @@ Chars 10149 - 10432 [Lemma~Leaf_interp_iter_inv~{E}...] 0.001 secs (0.001u,0.s) Chars 10433 - 10439 [Proof.] 0. secs (0.u,0.s) Chars 10442 - 10469 [(intros~*~Hbody~Hentry~r~Hr).] 0. secs (0.u,0.s) Chars 10472 - 10539 [(apply~(Leaf_iter_inv~(fun~i~=...] 0. secs (0.u,0.s) -Chars 10542 - 10605 [(rewrite~(interp_iter'~_~_~(fu...] 0.003 secs (0.003u,0.s) +Chars 10542 - 10605 [(rewrite~(interp_iter'~_~_~(fu...] 0.002 secs (0.002u,0.s) Chars 10608 - 10617 [(apply~Hr).] 0. secs (0.u,0.s) Chars 10618 - 10630 [reflexivity.] 0. secs (0.u,0.s) Chars 10631 - 10635 [Qed.] 0.001 secs (0.001u,0.s) Chars 10772 - 11204 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) Chars 11205 - 11211 [Proof.] 0. secs (0.u,0.s) -Chars 11214 - 11252 [setoid_rewrite~~<-~has_post_Le...] 0.012 secs (0.012u,0.s) -Chars 11255 - 11291 [setoid_rewrite~has_post_post_s...] 0.013 secs (0.012u,0.s) +Chars 11214 - 11252 [setoid_rewrite~~<-~has_post_Le...] 0.011 secs (0.011u,0.s) +Chars 11255 - 11291 [setoid_rewrite~has_post_post_s...] 0.012 secs (0.012u,0.s) Chars 11294 - 11324 [(intros~*~Hinv~Hentrys~Hentryi).] 0. secs (0.u,0.s) Chars 11327 - 11375 [(set~(eRI~:=~fun~i1~i2~:~I~=>~...] 0. secs (0.u,0.s) Chars 11378 - 11426 [(set~(eRR~:=~fun~r1~r2~:~R~=>~...] 0. secs (0.u,0.s) Chars 11429 - 11477 [(set~(eRS~:=~fun~s1~s2~:~S~=>~...] 0. secs (0.u,0.s) Chars 11481 - 11541 [(set~(R1~:=~fun~x~y~:~S~*~R~=>...] 0. secs (0.u,0.s) Chars 11544 - 11620 [(set~(R2~:=~fun~a~b~:~S~*~R~=>...] 0. secs (0.u,0.s) -Chars 11623 - 11703 [(assert~(HR1R2~:~eq_rel~R1~R2)...] 0.074 secs (0.073u,0.s) +Chars 11623 - 11703 [(assert~(HR1R2~:~eq_rel~R1~R2)...] 0.072 secs (0.07u,0.001s) Chars 11706 - 11770 [(unfold~has_post_strong;~fold~...] 0.001 secs (0.001u,0.s) Chars 11774 - 11904 [(unshelve~~~(eapply~(eutt_inte...] 0.004 secs (0.004u,0.s) Chars 11907 - 11942 [(intros~i1~?~s1~?~[<-~Hs1]~[<-...] 0. secs (0.u,0.s) @@ -290,12 +290,12 @@ Chars 12029 - 12074 [(set~(R4~:=~prod_rel~eRS~(sum_...] 0. secs (0.u,0.s) Chars 12077 - 12106 [(assert~(HR3R4~:~eq_rel~R3~R4)).] 0. secs (0.u,0.s) Chars 12109 - 12110 [{] 0. secs (0.u,0.s) Chars 12111 - 12150 [(split;~intros~[?~[|~]]~[?~[|~...] 0.001 secs (0.001u,0.s) -Chars 12155 - 12200 [1-4:~(intros~[[]];~dintuition;...] 0.233 secs (0.23u,0.001s) -Chars 12205 - 12267 [all:~(intros~[[[=->]~?]~HZ];~i...] 0.103 secs (0.102u,0.s) +Chars 12155 - 12200 [1-4:~(intros~[[]];~dintuition;...] 0.229 secs (0.225u,0.003s) +Chars 12205 - 12267 [all:~(intros~[[[=->]~?]~HZ];~i...] 0.101 secs (0.1u,0.001s) Chars 12268 - 12269 [}] 0. secs (0.u,0.s) Chars 12273 - 12307 [(rewrite~<-~(eutt_equiv~_~_~HR...] 0.001 secs (0.001u,0.s) Chars 12310 - 12325 [now~apply~Hinv.] 0. secs (0.u,0.s) -Chars 12326 - 12330 [Qed.] 0.017 secs (0.017u,0.s) +Chars 12326 - 12330 [Qed.] 0.016 secs (0.016u,0.s) Chars 12530 - 12545 [Module~Subtree.] 0. secs (0.u,0.s) Chars 12547 - 12806 [Inductive~subtree~{E}~{R}~:~it...] 0.002 secs (0.002u,0.s) Chars 12808 - 12923 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) @@ -310,8 +310,8 @@ Chars 13053 - 13084 [(apply~SubtreeTau,~IHHsub;~auto).] 0. secs (0.u,0.s) Chars 13085 - 13104 [(apply~eqit_Tau,~Ht).] 0. secs (0.u,0.s) Chars 13107 - 13108 [-] 0. secs (0.u,0.s) Chars 13109 - 13127 [(eapply~SubtreeVis).] 0. secs (0.u,0.s) -Chars 13128 - 13146 [now~rewrite~Ht,~H.] 0.003 secs (0.003u,0.s) -Chars 13147 - 13166 [(apply~IHHsub;~auto).] 0.002 secs (0.002u,0.s) +Chars 13128 - 13146 [now~rewrite~Ht,~H.] 0.004 secs (0.004u,0.s) +Chars 13147 - 13166 [(apply~IHHsub;~auto).] 0.003 secs (0.002u,0.s) Chars 13167 - 13171 [Qed.] 0.001 secs (0.001u,0.s) Chars 13173 - 13255 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) Chars 13256 - 13262 [Proof.] 0. secs (0.u,0.s) @@ -331,8 +331,8 @@ Chars 13563 - 13569 [Proof.] 0. secs (0.u,0.s) Chars 13572 - 13583 [revert~t~u.] 0. secs (0.u,0.s) Chars 13584 - 13600 [(unfold~has_post).] 0. secs (0.u,0.s) Chars 13601 - 13634 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) -Chars 13637 - 13667 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.011u,0.s) -Chars 13670 - 13692 [(rewrite~unfold_interp).] 0.016 secs (0.016u,0.s) +Chars 13637 - 13667 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.01u,0.s) +Chars 13670 - 13692 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) Chars 13695 - 13724 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) Chars 13727 - 13728 [-] 0. secs (0.u,0.s) Chars 13729 - 13741 [constructor.] 0. secs (0.u,0.s) @@ -351,13 +351,13 @@ Chars 13911 - 13916 [taus.] 0. secs (0.u,0.s) Chars 13917 - 13927 [(apply~CIH).] 0. secs (0.u,0.s) Chars 13928 - 13952 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) Chars 13953 - 13965 [reflexivity.] 0. secs (0.u,0.s) -Chars 13966 - 13970 [Qed.] 0.008 secs (0.008u,0.s) +Chars 13966 - 13970 [Qed.] 0.007 secs (0.007u,0.s) Chars 13972 - 14151 [Lemma~Leaf_interp_state_subtre...] 0.001 secs (0.001u,0.s) Chars 14152 - 14158 [Proof.] 0. secs (0.u,0.s) Chars 14161 - 14174 [revert~t~u~s.] 0. secs (0.u,0.s) Chars 14175 - 14191 [(unfold~has_post).] 0. secs (0.u,0.s) Chars 14192 - 14225 [(coinduction~c~CIH;~intros~*~H...] 0.003 secs (0.003u,0.s) -Chars 14228 - 14258 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.011u,0.s) +Chars 14228 - 14258 [(rewrite~(itree_eta~u)~in~Hsub).] 0.01 secs (0.01u,0.s) Chars 14261 - 14289 [(rewrite~unfold_interp_state).] 0.016 secs (0.016u,0.s) Chars 14292 - 14321 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) Chars 14324 - 14325 [-] 0. secs (0.u,0.s) @@ -377,10 +377,10 @@ Chars 14519 - 14524 [taus.] 0. secs (0.u,0.s) Chars 14525 - 14535 [(apply~CIH).] 0. secs (0.u,0.s) Chars 14536 - 14560 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) Chars 14561 - 14573 [reflexivity.] 0. secs (0.u,0.s) -Chars 14574 - 14578 [Qed.] 0.009 secs (0.009u,0.s) +Chars 14574 - 14578 [Qed.] 0.009 secs (0.008u,0.s) Chars 14580 - 14592 [End~Subtree.] 0. secs (0.u,0.s) Chars 14593 - 14608 [Import~Subtree.] 0. secs (0.u,0.s) -Chars 14610 - 14706 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0.001 secs (0.001u,0.s) +Chars 14610 - 14706 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0. secs (0.u,0.s) Chars 14707 - 14713 [Proof.] 0. secs (0.u,0.s) Chars 14716 - 14729 [(intros~Hleaf).] 0. secs (0.u,0.s) Chars 14730 - 14790 [(apply~(has_post_Leaf~(interp~...] 0. secs (0.u,0.s) @@ -397,6 +397,6 @@ Chars 15170 - 15174 [Qed.] 0. secs (0.u,0.s) Chars 15213 - 15336 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) Chars 15337 - 15343 [Proof.] 0. secs (0.u,0.s) Chars 15346 - 15353 [(intros).] 0. secs (0.u,0.s) -Chars 15354 - 15387 [(rewrite~translate_to_interp~i...] 0.004 secs (0.004u,0.s) +Chars 15354 - 15387 [(rewrite~translate_to_interp~i...] 0.003 secs (0.003u,0.s) Chars 15390 - 15420 [(eapply~Leaf_interp_inv;~eauto).] 0. secs (0.u,0.s) Chars 15421 - 15425 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Simple.v.timing b/theories/Simple.v.timing index 1fbc0f9e..954eea89 100644 --- a/theories/Simple.v.timing +++ b/theories/Simple.v.timing @@ -1,15 +1,15 @@ Chars 48 - 84 [Set~Warnings~"-notation-overri...] 0. secs (0.u,0.s) -Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) -Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.032 secs (0.025u,0.006s) +Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.002s) +Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.056 secs (0.029u,0.009s) Chars 305 - 347 [Require~Export~ITree.Core.ITre...] 0. secs (0.u,0.s) Chars 348 - 370 [Export~ITreeNotations.] 0. secs (0.u,0.s) Chars 371 - 404 [#[global]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1062 - 1097 [Require~Export~ITree.Basics.Ba...] 0. secs (0.u,0.s) Chars 1158 - 1191 [Require~Export~ITree.Indexed.Sum.] 0. secs (0.u,0.s) -Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.001u,0.s) -Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.005 secs (0.004u,0.s) -Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.014 secs (0.011u,0.003s) +Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.002 secs (0.001u,0.s) +Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.006 secs (0.005u,0.001s) +Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.016 secs (0.012u,0.003s) Chars 1773 - 1809 [Export~ITree.Interp.Handler.Ha...] 0. secs (0.u,0.s) Chars 2164 - 2189 [Module~Type~SimpleTheory.] 0. secs (0.u,0.s) Chars 2297 - 2325 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) @@ -23,10 +23,10 @@ Chars 2866 - 2940 [Parameter~(eutt_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 2942 - 3072 [Parameter~~~(eutt_vis~:~~~~~~f...] 0. secs (0.u,0.s) Chars 3074 - 3152 [Parameter~(eutt_inv_ret~:~fora...] 0. secs (0.u,0.s) Chars 3154 - 3289 [Parameter~~~(eutt_inv_vis~:~~~...] 0. secs (0.u,0.s) -Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0.006 secs (0.u,0.s) +Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 3317 - 3351 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 3382 - 3481 [Parameter~~~(bind_ret~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0.033 secs (0.023u,0.002s) +Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0.024 secs (0.021u,0.003s) Chars 3647 - 3740 [Parameter~~~(bind_ret_r~:~~~~~...] 0. secs (0.u,0.s) Chars 3742 - 3936 [Parameter~~~(bind_bind~:~~~~~~...] 0. secs (0.u,0.s) Chars 3938 - 3979 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) @@ -46,9 +46,9 @@ Chars 5311 - 5358 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5359 - 5403 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5548 - 5689 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) Chars 5691 - 5824 [Parameter~~~(rec_as_interp~:~~...] 0. secs (0.u,0.s) -Chars 5826 - 5970 [Parameter~~~(interp_recursive_...] 0. secs (0.u,0.s) +Chars 5826 - 5970 [Parameter~~~(interp_recursive_...] 0.001 secs (0.001u,0.s) Chars 6080 - 6192 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) -Chars 6194 - 6332 [Parameter~~~(mrec_as_interp~:~...] 0. secs (0.u,0.s) +Chars 6194 - 6332 [Parameter~~~(mrec_as_interp~:~...] 0.001 secs (0.u,0.s) Chars 6334 - 6482 [Parameter~~~(interp_mrecursive...] 0. secs (0.u,0.s) Chars 6484 - 6538 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 6539 - 6589 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 7152 - 7279 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7281 - 7413 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7541 - 7718 [Ltac~~tau_steps~:=~~~repeat~~~...] 0. secs (0.u,0.s) Chars 7720 - 7737 [End~SimpleTheory.] 0. secs (0.u,0.s) -Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.009 secs (0.009u,0.s) +Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.01 secs (0.01u,0.s) Chars 7873 - 7909 [Module~Export~Simple:~SimpleTh...] 0. secs (0.u,0.s) Chars 7995 - 8023 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 8025 - 8063 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) @@ -109,8 +109,8 @@ Chars 9371 - 9395 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 9397 - 9431 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 9462 - 9557 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9558 - 9564 [Proof.] 0. secs (0.u,0.s) -Chars 9565 - 9621 [(intros;~rewrite~ITree.Eq.Shal...] 0.051 secs (0.05u,0.s) -Chars 9622 - 9626 [Qed.] 0. secs (0.u,0.s) +Chars 9565 - 9621 [(intros;~rewrite~ITree.Eq.Shal...] 0.056 secs (0.053u,0.002s) +Chars 9622 - 9626 [Qed.] 0.001 secs (0.001u,0.s) Chars 9628 - 9723 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) Chars 9724 - 9730 [Proof.] 0. secs (0.u,0.s) Chars 9731 - 9749 [(rewrite~bind_tau_).] 0.011 secs (0.011u,0.s) @@ -118,15 +118,15 @@ Chars 9750 - 9762 [reflexivity.] 0. secs (0.u,0.s) Chars 9763 - 9767 [Qed.] 0. secs (0.u,0.s) Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9928 - 9934 [Proof.] 0. secs (0.u,0.s) -Chars 9935 - 9991 [(intros;~rewrite~ITree.Eq.Shal...] 0.019 secs (0.016u,0.003s) +Chars 9935 - 9991 [(intros;~rewrite~ITree.Eq.Shal...] 0.019 secs (0.015u,0.003s) Chars 9992 - 9996 [Qed.] 0.001 secs (0.001u,0.s) Chars 9998 - 10087 [Lemma~bind_ret_r~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 10088 - 10094 [Proof.] 0. secs (0.u,0.s) Chars 10095 - 10149 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) -Chars 10150 - 10154 [Qed.] 0.001 secs (0.u,0.s) +Chars 10150 - 10154 [Qed.] 0. secs (0.u,0.s) Chars 10156 - 10346 [Lemma~bind_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) Chars 10347 - 10353 [Proof.] 0. secs (0.u,0.s) -Chars 10354 - 10407 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.001u,0.s) +Chars 10354 - 10407 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) Chars 10408 - 10412 [Qed.] 0.001 secs (0.u,0.s) Chars 10414 - 10455 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) Chars 10456 - 10497 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) @@ -140,15 +140,15 @@ Chars 11063 - 11069 [Proof.] 0. secs (0.u,0.s) Chars 11072 - 11130 [(intros;~rewrite~<-~ITree.Inte...] 0.002 secs (0.001u,0.s) Chars 11133 - 11145 [reflexivity.] 0. secs (0.u,0.s) Chars 11146 - 11150 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0. secs (0.u,0.s) +Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0.001 secs (0.u,0.s) Chars 11313 - 11319 [Proof.] 0. secs (0.u,0.s) -Chars 11322 - 11365 [(intros;~rewrite~unfold_interp...] 0.001 secs (0.001u,0.s) +Chars 11322 - 11365 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.001u,0.s) Chars 11366 - 11370 [Qed.] 0.001 secs (0.001u,0.s) Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0.001 secs (0.001u,0.s) Chars 11534 - 11540 [Proof.] 0. secs (0.u,0.s) Chars 11543 - 11620 [(intros;~rewrite~InterpFacts.i...] 0.005 secs (0.004u,0.001s) -Chars 11621 - 11625 [Qed.] 0.002 secs (0.001u,0.s) -Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0. secs (0.u,0.s) +Chars 11621 - 11625 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0.001 secs (0.u,0.s) Chars 11769 - 11775 [Proof.] 0. secs (0.u,0.s) Chars 11778 - 11834 [(intros;~rewrite~ITree.Interp....] 0.002 secs (0.002u,0.s) Chars 11837 - 11849 [reflexivity.] 0. secs (0.u,0.s) @@ -168,7 +168,7 @@ Chars 12726 - 12732 [Proof.] 0. secs (0.u,0.s) Chars 12735 - 12742 [(intros).] 0. secs (0.u,0.s) Chars 12743 - 12793 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) Chars 12794 - 12806 [reflexivity.] 0. secs (0.u,0.s) -Chars 12807 - 12811 [Qed.] 0. secs (0.u,0.s) +Chars 12807 - 12811 [Qed.] 0.001 secs (0.001u,0.s) Chars 12813 - 12953 [Lemma~interp_recursive_call~:~...] 0. secs (0.u,0.s) Chars 12954 - 12960 [Proof.] 0. secs (0.u,0.s) Chars 12963 - 12970 [(intros).] 0. secs (0.u,0.s) @@ -215,9 +215,9 @@ Chars 14479 - 14483 [Qed.] 0. secs (0.u,0.s) Chars 14485 - 14608 [#[global]~Instance~eutt_bind~~...] 0. secs (0.u,0.s) Chars 14609 - 14615 [Proof.] 0. secs (0.u,0.s) Chars 14616 - 14635 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14636 - 14650 [(rewrite~H,~H0).] 0.004 secs (0.004u,0.s) +Chars 14636 - 14650 [(rewrite~H,~H0).] 0.005 secs (0.004u,0.s) Chars 14651 - 14669 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 14670 - 14674 [Qed.] 0.002 secs (0.001u,0.s) +Chars 14670 - 14674 [Qed.] 0.001 secs (0.001u,0.s) Chars 14676 - 14795 [#[global]~Instance~eutt_map~~{...] 0. secs (0.u,0.s) Chars 14796 - 14802 [Proof.] 0. secs (0.u,0.s) Chars 14803 - 14822 [(repeat~red;~intros).] 0. secs (0.u,0.s) @@ -227,7 +227,7 @@ Chars 14857 - 14861 [Qed.] 0.001 secs (0.001u,0.s) Chars 14863 - 14987 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 14988 - 14994 [Proof.] 0. secs (0.u,0.s) Chars 14995 - 15014 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 15015 - 15025 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 15015 - 15025 [(rewrite~H).] 0.001 secs (0.001u,0.s) Chars 15026 - 15044 [(apply~reflexivity).] 0. secs (0.u,0.s) Chars 15045 - 15049 [Qed.] 0.001 secs (0.001u,0.s) -Chars 15051 - 15062 [End~Simple.] 0.001 secs (0.001u,0.s) +Chars 15051 - 15062 [End~Simple.] 0.002 secs (0.001u,0.s) From 81c04eceb2b785ceaf9e6cddfc381f5b90ec43e7 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 12 May 2026 12:54:20 -0400 Subject: [PATCH 159/189] Ready for big proof in securewecompat. --- extra/Secure/SecureEqWcompat.v | 424 ++++++--------------------------- 1 file changed, 67 insertions(+), 357 deletions(-) diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 8dcf2b6c..1a5c2648 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -1,6 +1,30 @@ -(* Tour: This file *) - -From Stdlib Require Import Morphisms. +(* Chain-based congruence for [eqit_secure]. + + This file replaces the paco-style [wcompatible2] proofs of "up-to" closures + over [secure_eqit_]. In Pous' coinduction library we don't need a separate + [wcompatible2] development: we prove the congruence directly as a fact + about any chain element [elem c] and recover the gfp-level statement by + instantiating [c := chain_gfp _]. See [theories/Eq/Eqit.v] — + [euttge_proper_euttC] / [euttge_proper_eutt] and [eqit_bind_chain] are the + templates. + + What this file currently exports: + + - The Ltac utilities used by downstream files + ([inv_vis_secure], [clear_trivial], [find_size], [produce_elem], [spew]). + - The small helper [eqit_secure_shalt_refl]. + - A chain-level [Proper] instance [eqit_secure_proper_chain] for rewriting + under [eqit_secure ... eq] on either side of [elem c]. The proof body is + currently [Admitted]; see the TODO note inside it. The instance is + declared so downstream chain-style proofs can [rewrite] under it once the + proof is filled in. + + At the gfp level, [SecureEqEuttHalt.v] already provides: + - [proper_eqit_secure_eqit] — rewrite under [eqit b b eq] (eq_itree / eutt). + - [proper_eqit_secure_eqit_secure] — rewrite under [eqit_secure ... eq]. *) + +From Stdlib Require Import Morphisms Program.Basics. +From Coinduction Require Import all. From ITree Require Import Axioms ITree @@ -8,107 +32,13 @@ From ITree Require Import From ITree.Extra Require Import Secure.SecureEqHalt -. - -From Paco Require Import paco. + Secure.SecureEqEuttHalt. Import Monads. Import MonadNotation. Local Open Scope monad_scope. - -Lemma eqit_secureC_wcompat_id : forall b1 b2 E R1 R2 (RR : R1 -> R2 -> Prop ) - Label priv l -, wcompatible2 (@secure_eqit_ E R1 R2 Label priv RR b1 b2 l id) - (eqitC RR b1 b2) . -Proof. - econstructor. pmonauto_itree. - intros. destruct PR. - step in EQVl. step in EQVr. unfold_eqit. red in REL. red. - hinduction REL before r; intros; clear t1' t2'. - - genobs_clear t1 ot1. genobs_clear t2 ot2. - remember (RetF r1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto with itree. - remember (RetF r3) as y. - hinduction EQVr before r; intros; inv Heqy; eauto with itree. - - remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; subst; eauto with itree. - remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; subst; eauto with itree. - constructor. gclo. econstructor; eauto with paco. - - eapply IHREL; eauto. - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto with itree. - constructor; auto. pstep_reverse. - - eapply IHREL; eauto. - remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; eauto with itree. - constructor; auto. pstep_reverse. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto with itree. - ddestruction. subst. remember (VisF e0 k3) as y. - hinduction EQVr before r; intros; inv Heqy; eauto with itree. - ddestruction. subst. constructor; auto. - intros. apply gpaco2_clo. econstructor; eauto with itree. apply H. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; subst; eauto with itree. - ddestruction. subst. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; subst; eauto with itree. - - unpriv_co. gclo. econstructor; eauto with paco itree. gfinal. - left. apply H. - - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; subst; eauto with itree. - remember (VisF e k2) as y. - hinduction EQVr before r; intros; inv Heqy; subst; eauto with itree. - ddestruction. subst. - unpriv_co. gclo. econstructor; eauto with paco itree. - gfinal. left. apply H. - - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; subst; eauto with itree. - ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; subst; eauto with itree. - ddestruction. subst. unpriv_co. gclo. - econstructor; eauto with itree paco. gfinal. left. apply H. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto with itree. - ddestruction. subst. unpriv_ind. - eapply H0; eauto. pstep_reverse. - - remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; eauto with itree. - ddestruction. subst. unpriv_ind. - eapply H0; eauto. pstep_reverse. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto with itree. - ddestruction. subst. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; eauto with itree. - unpriv_halt. gclo. econstructor; eauto with paco. - step. constructor. red; auto. - - remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; eauto with itree. - ddestruction. subst. remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; eauto with itree. - unpriv_halt. gclo. econstructor; eauto with paco. - step. constructor. red; auto. - - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try contra_size; eauto with itree. - ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; eauto with itree. - ddestruction. subst. unpriv_halt. - gclo. econstructor 1 with (t1' := Vis e1 k0); eauto with paco itree. - + step. constructor; left; auto. - + gfinal. left. apply H. - - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; try contra_size; eauto with itree. - ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; eauto with itree. - ddestruction. subst. unpriv_halt. - gclo. econstructor 1 with (t2' := Vis e2 k4); eauto with paco itree. - + step. constructor. left. auto. - + gfinal. left. apply H. -Qed. - -#[export] Hint Resolve eqit_secureC_mon : paco. +(* ===== Small helper lemma (paco-free, kept verbatim from prior file) ===== *) Lemma eqit_secure_shalt_refl : forall E R1 R2 b1 b2 (RR : R1 -> R2 -> Prop) Label priv l A (e : E A) k1 k2, (~ leq (priv _ e) l) -> empty A -> @@ -117,46 +47,14 @@ Proof. intros. step. cbn. unpriv_halt. contra_size. Qed. +(* ===== Utility Ltacs (paco-free) ===== *) + Ltac inv_vis_secure := ddestruction; subst; try contradiction; try contra_size. + Ltac clear_trivial := repeat match goal with | H : empty ?A, H' : forall a : ?A, ?P |- _ => clear H' end. -Ltac eqit_secureC_halt_cases E := repeat ( clear_trivial; match goal with - | |- _ (TauF _ ) (TauF _) => constructor; gclo; pclearbot - | |- eqit_secureC ?RR ?Label ?priv ?l ?b1 ?b2 _ ?t1 ?t2 => econstructor; clear_trivial; eauto with paco - | H : secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l _ _ (observe ?t1) _ |- eqit_secure ?Label ?priv ?RR ?b1 ?b2 ?l ?t1 ?t2 => step; eauto with itree - | H : nonempty ?A |- _ _ (@VisF _ _ _ ?A ?e _ ) => unpriv_co; gclo ; pclearbot - | H : nonempty ?A |- _ (@VisF _ _ _ ?A ?e _ ) _ => unpriv_co; gclo ; pclearbot - | H : empty ?A |- _ _ (@VisF _ _ _ ?A ?e _ ) => unpriv_halt; gclo ; pclearbot - | H : empty ?A |- _ (@VisF _ _ _ ?A ?e _ ) _ => unpriv_halt; gclo ; pclearbot - | |- eqit_secureC ?RR ?Label ?priv ?l ?b1 ?b2 _ ?t1 ?t2 => econstructor; eauto with paco - - | H : forall a, secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l _ _ _ (observe ?t2), - H1 : observe ?t2 = VisF ?e ?k |- eqit_secure _ _ _ _ _ _ _ (Vis ?e ?k) => - rewrite H1 in H; step; apply H - | HA : empty ?A, HB : empty ?B, ev1 : E ?A |- - eqit_secure _ _ _ _ _ _ (go (@VisF _ _ _ ?A _ _ )) (go (@VisF _ _ _ ?B _ _ )) - => step; red; cbn; unpriv_halt; try contra_size - | H : forall a : ?A, paco2 _ bot2 (?k a) ?t |- eqit_secure _ _ _ _ _ _ (?k ?a) (?t) => red; eauto with itree - | H : forall a : ?A, paco2 _ bot2 ?t (?k a) |- eqit_secure _ _ _ _ _ _ ?t (?k ?a) => red; eauto with itree - | H : forall (a : ?A) (b : ?B), paco2 _ bot2 (?k1 a) (?k2 b) |- - eqit_secure _ _ _ _ _ _ (?k1 ?a) (?k2 ?b) => red; eauto with itree - | H : _ (observe ?t) (VisF ?e1 ?k1) |- _ ?t ?t1 => rewrite itree_eta' in H; apply H - | a : ?A, H : empty ?A |- _ => contra_size - | a : ?A |- nonempty ?A => constructor; auto - | HA : empty ?A, HB : empty ?B, Heq : observe ?t = (@VisF _ _ _ ?A _ _) |- - gpaco2 _ _ _ _ (?t ) (go (@VisF _ _ _ ?B _ _)) => gfinal; right; pstep; red; cbn; rewrite Heq; unpriv_halt - | HA : empty ?A, HB : empty ?B |- - gpaco2 _ _ _ _ (go (@VisF _ _ _ ?A _ _) ) (go (@VisF _ _ _ ?B _ _)) => gfinal; right; pstep; red; cbn; unpriv_halt - | H : forall (a : ?A), _ (observe (?k a) ) observe (?t), Heq : observe ?t = VisF ?e ?k1 |- - eqit_secure _ _ _ _ _ _ (?k ?a) _ => rewrite itree_eta' in Heq; rewrite Heq in H; step; apply H - | H : forall a : ?A, ?P (observe (?k a) ) (observe ?t), Heq : observe ?t = VisF ?e ?k2 |- - eqit_secure _ _ _ _ _ _ (?k ?a) _ => - rewrite itree_eta' in Heq; rewrite Heq in H; step; apply H - end; - clear_trivial) -. Ltac find_size A := match goal with @@ -164,12 +62,8 @@ Ltac find_size A := | H : empty A |- _ => idtac | |- _ => destruct (classic_empty A); try contra_size end. - Ltac produce_elem H A := inv H; assert (nonempty A); try (constructor; auto with itree; fail). -Ltac fold_secure := - change (paco2 (_ ?LB ?priv ?RR ?b ?fls ?l _) ?a) with (eqit_secure LB priv RR b fls l) in *. - (* Specialize some hypothesis with the assumption x *) Ltac spew x := let T := type of x in @@ -177,223 +71,39 @@ Ltac spew x := | [ H0 : forall (_ : T), _ |- _ ] => specialize (H0 x) end. -Lemma eqit_secureC_wcompat_id' : forall b1 b2 E R1 R2 (RR : R1 -> R2 -> Prop ) - Label priv l, - wcompatible2 (@secure_eqit_ E R1 R2 Label priv RR b1 b2 l id) - (eqit_secureC RR Label priv l b1 b2) . +(* ===== Chain-level [Proper] for [elem c] under [eqit_secure ... eq] ===== + + The proof follows the template of [euttge_proper_euttC] in + [theories/Eq/Eqit.v]: [tower induction] on the chain, then case-split on + the chain-element hypothesis at body level, with nested case analysis on + the [eqit_secure] premises. The body should mirror the original paco proof + of [eqit_secureC_wcompat_id'] (~ 170 lines, 14 case bullets) with the paco + verbs replaced by chain primitives. *) +#[global] Instance eqit_secure_proper_chain + {E R1 R2} (RR : R1 -> R2 -> Prop) Label priv l (b1 b2 : bool) + (c : Chain (secure_eqit_mon (E := E) Label priv RR b1 b2 l)) : + Proper (eqit_secure Label priv eq false false l ==> + eqit_secure Label priv eq false false l ==> + flip impl) (elem c). Proof. - econstructor. - { red. intros. eauto with paco. } - intros. dependent destruction PR. - step in EQVl. step in EQVr. red in EQVl. red in EQVr. red in REL. red. - hinduction REL before r; intros; clear t1' t2'. - - remember (RetF r1) as x. hinduction EQVl before r; intros; subst; try inv Heqx; eauto with itree. - remember (RetF r3) as y. hinduction EQVr before r; intros; subst; try inv Heqy; eauto with itree. - rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - - remember (TauF t1) as x. hinduction EQVl before r; intros; subst; try inv Heqx; - eauto with itree. - + remember (TauF t4) as y. - (* think I might have a lead on the problem, should H0 have vclo not id here?*) - hinduction EQVr before r; intros; subst; try inv Heqy; - try fold_secure; eauto with itree. - * constructor. gclo. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. - * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. - + remember (TauF t3) as y. - hinduction EQVr before r; intros; subst; try inv Heqy; - repeat fold_secure; eauto with itree. - * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. econstructor; eauto. gfinal; eauto. - * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. - + remember (TauF t3) as y. - hinduction EQVr before r; intros; subst; try inv Heqy; - repeat fold_secure; eauto with itree. - * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. - * unpriv_halt. gclo. econstructor; eauto. gfinal; eauto. - * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. contra_size. - - eapply IHREL; eauto. - remember (TauF t1) as y. hinduction EQVl before r; intros; inv Heqy; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. - + step in H. - - eapply IHREL; eauto. - remember (TauF t2) as y. hinduction EQVr before r; intros; inv Heqy; try inv CHECL; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. - + step in H. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree. - remember (VisF e0 k3) as y. - hinduction EQVr before r; intros; inv Heqy; inv_vis_secure; eauto with itree. - + constructor; auto. intros. gclo. econstructor; eauto. - apply H0. apply H. gfinal; left; apply H1. - + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. - - unfold id in H. remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree. - + remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; repeat fold_secure; eauto with itree. - * constructor. gclo. inv SIZECHECK. spew a. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. inv SIZECHECK0. spew a0; spew a. econstructor; eauto. - gfinal; eauto. - * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. inv SIZECHECK0. - gclo. spew a. econstructor; eauto. gfinal; eauto. - + inv SIZECHECK. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; repeat fold_secure; eauto with itree. - * unpriv_co. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. fold_secure. spew a0; spew a. econstructor; eauto. gfinal; eauto. - * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. gclo. spew a0. spew a. econstructor; eauto. gfinal; eauto. - + inv SIZECHECK0. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; repeat fold_secure; eauto with itree. - * unpriv_halt. gclo. spew a; econstructor; eauto. - gfinal; eauto. - * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. gfinal; eauto. - * rewrite itree_eta' at 1. unpriv_ind. eauto. - * unpriv_halt. contra_size. - - unfold id in H. remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree. - + remember (TauF t0) as y. - hinduction EQVl before r; intros; inv Heqy; eauto with itree; repeat fold_secure. - * constructor. gclo. fold_secure. inv SIZECHECK. - spew a; econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. fold_secure. inv SIZECHECK0. spew a; spew a0. econstructor; eauto. - gfinal; eauto. - * rewrite itree_eta'. unpriv_ind. eauto. - * unpriv_halt. inv SIZECHECK0. - gclo. spew a; econstructor; eauto. gfinal; eauto. - + inv SIZECHECK. remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; repeat fold_secure; eauto with itree. - * unpriv_co. gclo. spew a0; spew a. econstructor; eauto. gfinal; eauto. - * unpriv_co. gclo. spew b; spew a; spew a0; econstructor; eauto. - gfinal; eauto. - * rewrite itree_eta'. unpriv_ind. eauto. - * unpriv_halt. gclo. spew a. econstructor; eauto. gfinal; eauto. - + inv SIZECHECK0. remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; eauto with itree. - * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. - gfinal; eauto. - * unpriv_halt. gclo. fold_secure. spew a. econstructor; eauto. - gfinal; eauto. - * rewrite itree_eta'. unpriv_ind. eauto. - * unpriv_halt. contra_size. - - unfold id in H. remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree; fold_secure. - 1: inv SIZECHECK1; inv SIZECHECK2; remember (VisF e1 k1) as y. - 2: inv SIZECHECK0; inv SIZECHECK3; remember (VisF e0 k0) as y. - 3: inv SIZECHECK1; inv SIZECHECK2; remember (VisF e0 k0) as y. - all: spew a; spew a0. - all: hinduction EQVl before r; intros; inv Heqy; inv_vis_secure; subst; - eauto with itree; try (eqit_secureC_halt_cases E; fail). - all: rewrite itree_eta'; unpriv_ind; auto with itree; eauto. - - inv SIZECHECK. eapply H0; eauto. Unshelve. all : auto. - remember (VisF e k1) as x. clear H0. - hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. - + rewrite itree_eta' at 1 . pstep_reverse. - - inv SIZECHECK. eapply (H0 a); eauto. - remember (VisF e k2) as x. clear H0. - hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree. - + constructor; auto. pstep_reverse. - + unpriv_ind. pstep_reverse. - + rewrite itree_eta' at 1 . pstep_reverse. - - remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; eauto with itree; - inv EQVl; inv_vis_secure; eqit_secureC_halt_cases E. - + find_size A0; eqit_secureC_halt_cases E. - + find_size A1; eqit_secureC_halt_cases E. - - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto with itree; - inv EQVr; inv_vis_secure; - eqit_secureC_halt_cases E. - + find_size A0; eqit_secureC_halt_cases E. - + find_size A1; eqit_secureC_halt_cases E. - - unfold id in H. remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; inv_vis_secure; eauto with itree; - inv EQVl; inv_vis_secure; - (* maybe I should just write a new one *) - do 2 ( - repeat match goal with | H : nonempty ?A |- _ => inv H end; - match goal with - | e1 : E ?A, e2 : E ?B, e3 : E ?C, e4 : E ?D |- _ => - find_size A ; find_size B; find_size C ; find_size D ; try contra_size - | e1 : E ?A, e2 : E ?B, e3 : E ?C |- _ => - find_size A ; find_size B; find_size C ; try contra_size - | e1 : E ?A, e2 : E ?B |- _ => - find_size A ; find_size B; try contra_size - | e1 : E ?A |- _ => - find_size A ; try contra_size - end); - eqit_secureC_halt_cases E; try (eapply eqit_secure_shalt_refl; eauto); eqit_secureC_halt_cases E; - try apply H3; try apply H; eqit_secureC_halt_cases E. - Unshelve. all : auto. - - unfold id in H. remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; inv_vis_secure; eauto with itree; - inv EQVr; inv_vis_secure; - do 2 ( - repeat match goal with | H : nonempty ?A |- _ => inv H end; - match goal with - | e1 : E ?A, e2 : E ?B, e3 : E ?C, e4 : E ?D |- _ => - find_size A ; find_size B; find_size C ; find_size D ; try contra_size - | e1 : E ?A, e2 : E ?B, e3 : E ?C |- _ => - find_size A ; find_size B; find_size C ; try contra_size - | e1 : E ?A, e2 : E ?B |- _ => - find_size A ; find_size B; try contra_size - | e1 : E ?A |- _ => - find_size A ; try contra_size - end); - eqit_secureC_halt_cases E; try (eapply eqit_secure_shalt_refl; eauto); eqit_secureC_halt_cases E; - try apply H3; try apply H; eqit_secureC_halt_cases E. - Unshelve. all: auto. -Qed. - -#[export] Hint Resolve eqit_secureC_wcompat_id : paco. - -#[global] Instance geuttgen_cong_secure_eqit {E} {Label priv l} {R1 R2 : Type} {RR1 : R1 -> R1 -> Prop} - {RR2 : R2 -> R2 -> Prop} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) {r rg} : - (forall (x x' : R1) (y : R2), (RR1 x x' : Prop) -> (RS x' y : Prop) -> RS x y) -> - (forall (x : R1) (y y' : R2), (RR2 y y' : Prop) -> RS x y' -> RS x y) -> - Proper (@eq_itree E R1 R1 RR1 ==> eq_itree RR2 ==> flip impl) - (gpaco2 (secure_eqit_ Label priv RS b1 b2 l id) (eqitC RS b1 b2) r rg ). -Proof. - repeat intro. gclo. econstructor; eauto. - - eapply eqit_mon, H1; eauto; discriminate. - - eapply eqit_mon, H2; eauto; discriminate. -Qed. - -#[global] Instance geuttgen_cong_secure_eqit' {E} {Label priv l} {R1 R2 : Type} {RR1 : R1 -> R1 -> Prop} - {RR2 : R2 -> R2 -> Prop} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) {r rg} : - (forall (x x' : R1) (y : R2), (RR1 x x' : Prop) -> (RS x' y : Prop) -> RS x y) -> - (forall (x : R1) (y y' : R2), (RR2 y y' : Prop) -> RS x y' -> RS x y) -> - Proper (@eqit_secure E R1 R1 Label priv RR1 false false l ==> - eqit_secure Label priv RR2 false false l ==> flip impl) - (gpaco2 (secure_eqit_ Label priv RS b1 b2 l id) (eqit_secureC RS Label priv l b1 b2) r rg ). -Proof. - repeat intro. gclo. econstructor; eauto. - - eapply secure_eqit_mon, H1; eauto. intros; discriminate. - - eapply secure_eqit_mon, H2; eauto. intros; discriminate. -Qed. - -#[global] Instance geutt_cong_euttge: - forall {E : Type -> Type} Label priv l b1 b2 {R1 R2 : Type} {RR1 : R1 -> R1 -> Prop} - {RR2 : R2 -> R2 -> Prop} {RS : R1 -> R2 -> Prop} - (r rg : forall x : itree E R1, (fun _ : itree E R1 => itree E R2) x -> Prop), - (forall (x x' : R1) (y : R2), (RR1 x x' : Prop) -> (RS x' y : Prop) -> RS x y) -> - (forall (x : R1) (y y' : R2), (RR2 y y' : Prop) -> RS x y' -> RS x y) -> - Proper (euttge RR1 ==> euttge RR2 ==> flip impl) - (gpaco2 (secure_eqit_ Label priv RS b1 b2 l id) (eqitC RS true true) r rg). -Proof. - repeat intro. gclo. econstructor; eauto. -Qed. - -#[global] Instance geutt_eq_cong_euttge: - forall {E : Type -> Type} Label priv l b1 b2 {R1 R2 : Type} r rg RS , - Proper ( @euttge E R1 R1 eq ==> @euttge E R2 R2 eq ==> flip impl) - (gpaco2 (secure_eqit_ Label priv RS b1 b2 l id) (eqitC RS true true) r rg ). -Proof. - repeat intro. eapply geutt_cong_euttge; eauto; intros; subst; auto. -Qed. + unfold Proper, respectful, flip, impl. + tower induction. clear c. + intros c CIH t1 t2 Ht1t2 t3 t4 Ht3t4 Hbt2t4. + icbn; icbn in Hbt2t4. + step in Ht1t2; step in Ht3t4. + revert t1 t3 Ht1t2 Ht3t4. induction Hbt2t4; intros. + (* Ret-Ret *) + - inv Ht1t2; inv Ht3t4. now constructor. + - + (* TODO(paco→coinduction migration): port the 14-case body of the original + paco proof [eqit_secureC_wcompat_id'] to a [tower induction] over the + chain [c], replacing the paco verbs: + [gclo ... gfinal ; left ; apply H] → [apply IH; eauto] + [pclearbot] → (delete: no bot disjunction) + [pstep_reverse] → [now unstep] / [now step] + [eauto with paco] → [eauto with itree] + The proof shape mirrors [euttge_proper_euttC] in [theories/Eq/Eqit.v]. + Sketch — for each [secure_eqitF] constructor on the [REL] hypothesis, + case-split on [EQVl] and [EQVr] and reconstruct the resulting chain + element using [IH] from the [tower induction]. *) +Admitted. From 592c6a0fbb0e70bced449e15f6839b454eb4a967 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 12 May 2026 17:25:35 -0400 Subject: [PATCH 160/189] Some progress, but lack of good Proper instances are starting to show. --- extra/Secure/SecureEqBind.v | 205 ++++++++++++++++++-------------- extra/Secure/SecureEqEuttHalt.v | 31 ++++- theories/Core/ITreeDefinition.v | 6 + theories/Eq/Eqit.v | 38 +----- 4 files changed, 157 insertions(+), 123 deletions(-) diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index b2bc57f6..e0e0be5d 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -1,15 +1,17 @@ +From Coinduction Require Import all. + From ITree Require Import Axioms ITree ITreeFacts. From ITree.Extra Require Import + Secure.SecureEqHalt Secure.SecureEqWcompat + Secure.SecureEqEuttHalt . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -22,22 +24,23 @@ Lemma eqit_bind_shalt_aux1: (t2 : itree E R2), ~ leq (priv A e) l -> empty A -> - paco2 (secure_eqit_ Label priv RR b1 b2 l id) bot2 (Vis e k0) t2 -> + eqit_secure Label priv RR b1 b2 l (Vis e k0) t2 -> forall (t1 : itree E R1), VisF e k0 = observe t1 -> - paco2 (secure_eqit_ Label priv RS b1 b2 l id) bot2 (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros E S2 S1 R1 R2 RR RS b1 b2 Label priv l k1 k2 A e k0 t2 SECCHECK SIZECHECK H0 t1 Heqot1. - pstep. unfold ITree.bind at 1, observe at 1. cbn. rewrite <- Heqot1. - cbn. rewrite itree_eta' at 1. pstep_reverse. + step. unfold ITree.bind at 1, observe at 1. cbn. simpobs. + cbn. rewrite itree_eta' at 1. unstep. generalize dependent t2. coinduction c CIH. intros t2 Ht2. - pstep. red. - step in Ht2. red in Ht2. + step in Ht2. icbn. unfold ITree.bind at 1. unfold observe at 2. cbn in *. inv Ht2; ddestruction; subst; try contra_size; try contradiction; try rewrite <- H; cbn; - try unpriv_halt; right; eapply CIH; eauto; - try (step; rewrite H in H1; apply H1). - contra_size. + try unpriv_halt; eapply CIH; eauto; + try solve [step; rewrite H in H1; apply H1]. + - now step. + - apply H0. + - contra_size. Qed. Lemma eqit_bind_shalt_aux2: @@ -48,74 +51,85 @@ Lemma eqit_bind_shalt_aux2: (t1 : itree E R1) (t2 : itree E R2), ~ leq (priv A e) l -> empty A -> - paco2 (secure_eqit_ Label priv RR b1 b2 l id) bot2 t1 (Vis e k0) -> + eqit_secure Label priv RR b1 b2 l t1 (Vis e k0) -> VisF e k0 = observe t2 -> - paco2 (secure_eqit_ Label priv RS b1 b2 l id) bot2 (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros E S2 S1 R1 R2 RR RS b1 b2 Label priv l k1 k2 A e k0 t1 t2 SECCHECK SIZECHECK H0 Heqot1. - pstep. unfold ITree.bind at 2, observe at 2. cbn. rewrite <- Heqot1. - cbn. rewrite itree_eta'. pstep_reverse. + step. unfold ITree.bind at 2, observe at 2. cbn. simpobs. + cbn. rewrite itree_eta'. unstep. generalize dependent t1. coinduction c CIH. intros t1 Ht1. - pstep. red. - step in Ht1. red in Ht1. + step in Ht1. icbn. unfold ITree.bind at 1, observe at 1. cbn in *. inv Ht1; ddestruction; subst; try contra_size; try contradiction; cbn; - try unpriv_halt; try contra_size; try (right; eapply CIH; eauto). - step. rewrite H0 in H1. auto. apply H1. + try unpriv_halt; try contra_size; try (eapply CIH; eauto). + - now step. + - rewrite <- H0. step. apply H1. + - apply H1. Qed. +#[local] Ltac to_mon_s := +match goal with +| |- secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l ?sim (observe ?t1) (observe ?t2) => + change (secure_eqit_mon Label priv RR b1 b2 l sim t1 t2) + end. + Lemma secure_eqit_bind' : forall E R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) - b1 b2 Label priv l r + b1 b2 Label priv l (t1 : itree E R1) (t2 : itree E R2) (k1 : R1 -> itree E S1) (k2 : R2 -> itree E S2), - (forall r1 r2, RR r1 r2 -> paco2 (secure_eqit_ Label priv RS b1 b2 l id) r (k1 r1) (k2 r2) ) -> + (forall r1 r2, RR r1 r2 -> eqit_secure Label priv RS b1 b2 l (k1 r1) (k2 r2) ) -> eqit_secure Label priv RR b1 b2 l t1 t2 -> - paco2 (secure_eqit_ Label priv RS b1 b2 l id) r (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. revert H0. revert t1 t2. coinduction c CIH. intros t1 t2 Ht12. - step in Ht12. red in Ht12. + intros. revert H0. revert t1 t2. icoinduction c CIH. intros t1 t2 Ht12. + step in Ht12. genobs t1 ot1. genobs t2 ot2. - hinduction Ht12 before r; intros; eauto. - - pstep. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. pstep_reverse. - eapply paco2_mon; eauto. - - pstep. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. constructor. eapply CIH. - auto. - - pstep. unfold ITree.bind at 1, observe at 1. cbn. - rewrite <- Heqot1. cbn. constructor; auto. pstep_reverse. - - pstep. unfold ITree.bind at 2, observe at 2. cbn. - rewrite <- Heqot2. cbn. constructor; auto. pstep_reverse. - - pstep. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. - constructor; auto. right. eapply CIH; eauto. apply H. - - pstep. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. unpriv_co. - right. eapply CIH; apply H. - - pstep. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. unpriv_co. - right. eapply CIH; apply H. - - pstep. unfold ITree.bind, observe. unfold observe. cbn. - rewrite <- Heqot1. rewrite <- Heqot2. cbn. unpriv_co. - right. eapply CIH; apply H. - - pstep. unfold ITree.bind at 1, observe at 1. cbn. - rewrite <- Heqot1. cbn. unpriv_ind. pstep_reverse; try eapply H0; eauto. - - pstep. unfold ITree.bind at 2, observe at 2. cbn. - rewrite <- Heqot2. cbn. unpriv_ind. pstep_reverse; try eapply H0; eauto. - - - eapply paco2_mon with (r := bot2); intros; try contradiction. - eapply eqit_bind_shalt_aux1; eauto. step. rewrite <- Heqot2. - cbn. unpriv_halt. left. eauto. - - - eapply paco2_mon with (r := bot2); intros; try contradiction. - eapply eqit_bind_shalt_aux2; eauto. step. cbn. rewrite <- Heqot1. - unpriv_halt. left. eauto. - - - eapply paco2_mon with (r := bot2); intros; try contradiction. + hinduction Ht12 before E; intros. + - unfold ITree.bind, observe; cbn. + simpobs. step. now apply H0. + - unfold ITree.bind, observe. + cbn; simpobs; cbn. + constructor. now eapply CIH. + - unfold ITree.bind at 1, observe at 1. + cbn; simpobs; cbn. + constructor; auto. + apply IHHt12; eauto. + - unfold ITree.bind at 2, observe at 2. + cbn; simpobs; cbn. + constructor; auto. apply IHHt12; eauto. + - unfold ITree.bind, observe. + cbn; simpobs; cbn. + evis. + eapply CIH, H. + - unfold ITree.bind, observe. + cbn; simpobs; cbn. + unpriv_co. + eapply CIH, H. + - unfold ITree.bind, observe. + cbn; simpobs; cbn. + unpriv_co. + eapply CIH, H. + - unfold ITree.bind, observe. + cbn; simpobs; cbn. + unpriv_co. + eapply CIH, H. + - unfold ITree.bind at 1, observe at 1. + cbn. rewrite <- Heqot1. cbn. + unpriv_ind. eapply H0; eauto. + - unfold ITree.bind at 2, observe at 2. + cbn; rewrite <- Heqot2; cbn. + unpriv_ind. eapply H0; eauto. + - step. + eapply eqit_bind_shalt_aux1; eauto. step. simpobs. + cbn. unpriv_halt. eauto. + - step. + eapply eqit_bind_shalt_aux2; eauto. step. cbn. simpobs. + unpriv_halt. eauto. + - step. eapply eqit_bind_shalt_aux1 with (A := A); eauto. - step. rewrite <- Heqot2. cbn. unpriv_halt. - - - eapply paco2_mon with (r := bot2); intros; try contradiction. - eapply eqit_bind_shalt_aux2; eauto. step. cbn. rewrite <- Heqot1. + step. simpobs. cbn. unpriv_halt. + - step. + eapply eqit_bind_shalt_aux2; eauto. step. cbn. simpobs. unpriv_halt. Qed. @@ -138,9 +152,9 @@ Lemma iter_bind_shalt_aux1: (A : Type) (e : E A) (k1 : A -> itree E (A1 + B1)) (t0 : itree E (A2 + B2)), ~ leq (priv A e) l -> empty A -> - paco2 (secure_eqit_ Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l id) bot2 + eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l (Vis e k1) t0 -> - paco2 (secure_eqit_ Label priv RB b1 b2 l id) r + eqit_secure Label priv RB b1 b2 l (Vis e (fun x : A => ITree.bind (k1 x) @@ -158,24 +172,28 @@ Lemma iter_bind_shalt_aux1: Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r A e k1 t0 SECCHECK SIZECHECK H. generalize dependent t0. coinduction c CIH. intros t0 Ht0. - pstep. cbn. unfold observe. cbn. step in Ht0. - red in Ht0. cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; - right; eauto. - eapply CIH; eauto. - rewrite H in H1. step. auto. + icbn. step in Ht0. rewrite observe_bind. + cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; + eauto. + all: + eapply CIH; eauto. + - now step. + - simpobs. now step. + - apply H0. Qed. Lemma iter_bind_shalt_aux2: forall (E : Type -> Type) (B2 B1 A1 A2 : Type) (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (body1 : A1 -> itree E (A1 + B1)) - (body2 : A2 -> itree E (A2 + B2)) (r : itree E B1 -> itree E B2 -> Prop) + (body2 : A2 -> itree E (A2 + B2)) + (* (r : itree E B1 -> itree E B2 -> Prop) *) (A : Type) (e : E A) (t0 : itree E (A1 + B1)) (k2 : A -> itree E (A2 + B2)), ~ leq (priv A e) l -> empty A -> - paco2 (secure_eqit_ Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l id) bot2 t0 + eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l t0 (Vis e k2) -> - paco2 (secure_eqit_ Label priv RB b1 b2 l id) r + eqit_secure Label priv RB b1 b2 l (ITree.bind t0 (fun lr : A1 + B1 => match lr with @@ -191,24 +209,29 @@ Lemma iter_bind_shalt_aux2: | inr r0 => Ret r0 end))). Proof. - intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r A e t0 k2 SECCHECK SIZECHECK H. + intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 A e t0 k2 SECCHECK SIZECHECK H. generalize dependent t0. coinduction c CIH. intros t0 Ht0. - pstep. cbn. unfold observe. cbn. step in Ht0. - red in Ht0. cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; - try (right; eauto). + icbn. step in Ht0. + rewrite observe_bind. + cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; + eauto. + all: eapply CIH; eauto. - rewrite H0 in H1. step. auto. + - now step. + - simpobs. now step. + - apply H1. Qed. Lemma iter_bind_aux: forall (E : Type -> Type) (B2 B1 A1 A2 : Type) (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (body1 : A1 -> itree E (A1 + B1)) - (body2 : A2 -> itree E (A2 + B2)) (r : itree E B1 -> itree E B2 -> Prop) + (body2 : A2 -> itree E (A2 + B2)) + (r : itree E B1 -> itree E B2 -> Prop) (t1 : itree E (A1 + B1)) (t2 : itree E (A2 + B2)), - paco2 (secure_eqit_ Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l id) bot2 t1 t2 -> + eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l t1 t2 -> (forall (a1 : A1) (a2 : A2), RA a1 a2 -> r (ITree.iter body1 a1) (ITree.iter body2 a2)) -> - paco2 (secure_eqit_ Label priv RB b1 b2 l id) r + eqit_secure Label priv RB b1 b2 l (ITree.bind t1 (fun lr : A1 + B1 => match lr with @@ -222,10 +245,11 @@ Lemma iter_bind_aux: | inr r0 => Ret r0 end)). Proof. - intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r t1 t2 H CIH0. +Admitted. + (* intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r t1 t2 H CIH0. generalize dependent t2. revert t1. coinduction c CIH1. intros t1 t2 Ht12. step in Ht12. pstep. red. - unfold observe. cbn. + cbn. hinduction Ht12 before r; intros; cbn; eauto; try (unpriv_co; fail); try (constructor; auto; right; eapply CIH1; eauto with itree; fail). @@ -236,7 +260,7 @@ Proof. - unpriv_halt. left. eapply iter_bind_shalt_aux2; eauto with itree. - unpriv_halt. specialize (H b). left. eapply iter_bind_shalt_aux1; eauto with itree. - unpriv_halt. specialize (H a). left. eapply iter_bind_shalt_aux2; eauto with itree. -Qed. +Qed. *) Lemma secure_eqit_iter : forall E A1 A2 B1 B2 (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) @@ -252,11 +276,12 @@ Proof. guclo eqit_bind_clo. *) (* look into the more general secure_eqitC closure, see if that is weakly compatible, *) - coinduction c CIH. + icoinduction c CIH. intros a1 a2 Ha. specialize (Hbody a1 a2 Ha) as Hbodya. - step in Hbodya. red in Hbodya. step. red. - unfold observe. (* write lemmas for unfolding the observe of iter *) cbn. - hinduction Hbodya before r; intros; cbn; auto with itree. + step in Hbodya. + (* write lemmas for unfolding the observe of iter *) cbn. + rewrite unfold_iter. + hinduction Hbodya before E; intros; cbn; auto with itree. - inv H; cbn; eauto with itree. - cbn. constructor. left. eapply iter_bind_aux; eauto. diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 9d01292a..100cb96b 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -16,6 +16,17 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. +Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2) r, + secure_eqit_mon Label priv RR true true l r (Tau t1) t2 -> secure_eqit_mon Label priv RR true true l r t1 t2. +Proof. + intros E R1 R2 Label priv l RR. intros t1 t2 r Hsec. + icbn; icbn in Hsec; cbn in *. remember (TauF t1) as x. + hinduction Hsec before priv; intros; inv Heqx; eauto with itree. + - constructor; auto. now unstep. + - unpriv_ind. now unstep. + - now step in H. +Qed. + Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR true true l (Tau t1) t2 -> eqit_secure Label priv RR true true l t1 t2. Proof. @@ -132,8 +143,26 @@ Proof. Qed. Definition classic_empty := Secure.Labels.classic_empty. +(* #[global] Instance eutt_secure_secure_eqit_mon + (c : Chain (secure_eqit_mon Label priv RR true true l)): + Proper (eutt eq ==> eq ==> Basics.flip Basics.impl) + (elem c). +Proof. + do 5 red. tower induction; subst. + clear c. intros c. intros CIH t1 t1' Heutt t2 _ <- Hsec. + step in Heutt. icbn; icbn in Hsec. + hinduction Heutt before E; intros; subst; auto with itree. + (* - remember (RetF r2) as x. hinduction Hsec before E; intros; try inv Heqx; auto with itree. + + constructor; auto. eapply IHHsec; eauto. + + unpriv_ind. eapply H0; eauto. *) + - genobs t2 ot2. clear Heqot2. + assert (Ht2 : (exists m3, ot2 = TauF m3) \/ (forall m3, ot2 <> TauF m3) ). + { destruct ot2; eauto; right; repeat intro; discriminate. } + (* because of the extra inductive cases this is not enough *) + destruct Ht2 as [ [m3 Hm3] | Ht2 ]. + + subst. constructor. eapply CIH; eauto. *) + -(*tomorrow start on the transitivity proof *) Lemma eutt_secure_eqit_secure : forall E Label priv l R1 R2 RR (t1 t1': itree E R1) (t2 : itree E R2), t1 ≈ t1' -> eqit_secure Label priv RR true true l t1 t2 -> eqit_secure Label priv RR true true l t1' t2. diff --git a/theories/Core/ITreeDefinition.v b/theories/Core/ITreeDefinition.v index fe14a9b3..66b677ac 100644 --- a/theories/Core/ITreeDefinition.v +++ b/theories/Core/ITreeDefinition.v @@ -281,6 +281,12 @@ Ltac genobs x ox := remember (observe x) as ox. Ltac genobs_clear x ox := genobs x ox; match goal with [H: ox = observe x |- _] => clear H x end. Ltac simpobs := repeat match goal with + (* would be nice to 'eliminate' any + obs-obs cases from the sarch, but not sure how. + maybe backtracking works here? *) + (* don't loop on the obs-obs case *) + | H : observe _ = observe _ |- _ => + rewrite <- H in *; clear H | H : _ = observe _ |- _ => rewrite <- H in * | H : observe _ = _ |- _ => diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e9b4db7d..ea2c66e6 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -800,17 +800,6 @@ Section eqit_inv. 1: apply eqit_inv_Tau_l; step; unfold observe, _observe; assumption. Qed. -Lemma eqit_inv_Tau_var (m1 : itree E R1) z : - forall (om1 : itree' E R1), - observe m1 = om1 -> - eqitF RR true false sim om1 z -> - @eqitF _ R1 R2 RR true false sim (TauF m1) z. -Proof. - intros om1 Heq H2. - (* Now om2 is a variable — we can use plain induction *) - induction H2; taul; simpobs; eauto with itree. -Qed. - End eqit_inv. Ltac genret r or := remember (RetF r) as or. @@ -871,23 +860,6 @@ end. Ltac tower_induction := apply tower; [inf_closed_auto|]. Tactic Notation "tower" "induction" := tower_induction. -(* for meeting *) - (* learned a lot from this. - 1 interesting difference is your induction on eqit_mon ... ̇c, - rather than on {≳}. - another is the strong IH. - a third is use of certain interesting automation, which I'd like to learn - finally, edestructing a lemma. seems quite cool. - - we will talk next steps at our meeting: - 1. where to go in this file: notation, tactic naming, etc. - imo we should name things exactly as they will be in your - coinduction library PR, so that they are easy to fix. - 2. onwards: we want this proof but with euttgeC, no? - finally, will we use uptotaus, or just move on to the next - part in ktrees? - 3. finally, thanks! - *) #[global] Instance euttge_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC): Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c _ _ RR). @@ -963,7 +935,8 @@ Qed. (* here chain_b lifts b to elements of the chain... *) #[global] Instance euttge_proper_euttC_mon {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC): - Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eqit_mon true true (elem c) R1 R2 RR). + Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) + (eqit_mon true true (elem c) R1 R2 RR). Proof. eapply euttge_proper_euttC with (c := chain_b c); eauto. Qed. @@ -971,7 +944,8 @@ Qed. (* ... and chain_gfp lifts the gfp. *) #[global] Instance euttge_proper_eutt {E R1 R2} (RR : R1 -> R2 -> Prop) (c : Chain (@eqit_mon E true true)): - Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) (eutt RR). + Proper ((euttge (E := E) eq) ==> (euttge eq) ==> flip impl) + (eutt RR). Proof. eapply euttge_proper_euttC with (c := (chain_gfp (eqit_mon true true))); eauto. Qed. @@ -1051,7 +1025,7 @@ Lemma not_euttge_proper_euttgeC : Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c _ _ RR)). unfold Proper, respectful, flip, impl. intro. -assert (Hfalse : euttge (E := fun _ => Empty_set) (R1 := unit) (R2 := unit) eq +assert (Hfalse : euttge (E := fun _ => False) (R1 := unit) (R2 := unit) eq (Ret tt) (Tau (Ret tt))). { eapply H with (x := Ret tt) (y := Ret tt). (* ^ this works because the canonical chain structure uses chain_gfp @@ -2663,7 +2637,7 @@ Proof. now rewrite <- Heq at 2. - constructor. intros v. eapply eqit_inv_Vis in Heq. specialize (REL v). eapply CIH. now rewrite <- Heq at 2. - - taul. taur. apply IHHeutt. rewrite <- (itree_eta t1). + - taul; taur. apply IHHeutt. rewrite <- (itree_eta t1). now rewrite tau_euttge in Heq. - apply IHHeutt. rewrite <- (itree_eta). now rewrite tau_euttge in Heq. From d914e89d4e44ac7033c6241857fb11d7e3fb62cf Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 12 May 2026 20:06:04 -0400 Subject: [PATCH 161/189] Progress and new lemmas. switching for check --- extra/Secure/SecureEqBind.v | 8 ++- extra/Secure/SecureEqEuttHalt.v | 114 ++++++++++++++++++++++++++++---- 2 files changed, 105 insertions(+), 17 deletions(-) diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index e0e0be5d..5d7e93c6 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -278,11 +278,13 @@ Proof. (* look into the more general secure_eqitC closure, see if that is weakly compatible, *) icoinduction c CIH. intros a1 a2 Ha. specialize (Hbody a1 a2 Ha) as Hbodya. - step in Hbodya. + step in Hbodya. (* write lemmas for unfolding the observe of iter *) cbn. - rewrite unfold_iter. + to_mon_s. rewrite 2unfold_iter. icbn. rewrite observe_bind. + hinduction Hbodya before E; intros; cbn; auto with itree. - - inv H; cbn; eauto with itree. + fail. + - inv H. cbn; eauto with itree. - cbn. constructor. left. eapply iter_bind_aux; eauto. - constructor; auto. left. eapply iter_bind_aux; eauto. diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 100cb96b..bcedd9cc 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -16,16 +16,60 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. -Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2) r, - secure_eqit_mon Label priv RR true true l r (Tau t1) t2 -> secure_eqit_mon Label priv RR true true l r t1 t2. -Proof. - intros E R1 R2 Label priv l RR. intros t1 t2 r Hsec. - icbn; icbn in Hsec; cbn in *. remember (TauF t1) as x. - hinduction Hsec before priv; intros; inv Heqx; eauto with itree. - - constructor; auto. now unstep. - - unpriv_ind. now unstep. - - now step in H. -Qed. + + +#[local] Ltac taul := apply secEqTauL; [auto|]. +#[local] Ltac taur := apply secEqTauR; [auto|]. + +#[global] Instance euttge_proper_secureC {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l + (c : Chain (secure_eqit_mon Label priv RR b1 b2 l)) : + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> Basics.flip Basics.impl) (elem c). +Proof with eauto with itree. + unfold Proper, respectful, Basics.flip, Basics.impl. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + intros EQ. icbn; icbn in EQ; cbn in *. + genobs x' ox'; genobs y' oy'. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genret r1 or1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy; genret r2 or2. + revert y Heqoy. + hinduction EQy before oy; try easy. + subst; intros [=<-] ??... + + inv EQx; inv EQy. constructor. eapply IH; eauto. + + inv EQx. taul. eapply IHEQ; eauto. now unstep. + + inv EQy. taur. eapply IHEQ; eauto. now unstep. + + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. + + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. + + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. + + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. + + inv EQx; ddestruction. constructor; auto. intros. + eapply H0; eauto. now unstep. + + inv EQy; ddestruction. constructor; auto. intros. + eapply H0; eauto. now unstep. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 11; eauto. eapply IH. + 2, 3: eauto. step. constructor. auto. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 12; eauto. eapply IH. + 1, 3: eauto. step. constructor. auto. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 13; eauto. intro. eapply IH. + 3: apply H. step; now constructor. apply REL0. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 14; eauto. intro. eapply IH. + 3: apply H. apply REL. + step; now constructor. +Qed. + Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR true true l (Tau t1) t2 -> eqit_secure Label priv RR true true l t1 t2. @@ -819,10 +863,17 @@ Proof. specialize (H a). clear Heqot2. genobs (k2 a) ok2. clear Heqok2. hinduction H before E; intros; inv Heqy; - ddestruction; subst; try contradiction; try contra_size; eauto with itree. - ** constructor; auto. now unstep. - ** unpriv_ind. now unstep. - ** rewrite itree_eta' at 1. now unstep. + ddestruction; subst; try contradiction; try contra_size. + ** constructor; auto. + eapply IHsecure_eqitF. + 13: exact H1. all: eauto. + ** constructor; auto. now unstep. + ** unpriv_ind. now unstep. + ** apply EqVisUnPrivLInd; auto. + intro. eapply H0. + 13: exact H1. all: eauto. + ** eauto with itree. + ** rewrite itree_eta' at 1. now unstep. + rewrite itree_eta' at 1. unpriv_ind. eapply H0; eauto. + inv SIZECHECK2. unpriv_halt. eapply CIH0; eauto. apply H0. apply H. Unshelve. auto. @@ -994,3 +1045,38 @@ Proof. { intros. inv H4. } eapply eqit_secure_trans; eauto. Qed. + + + + +(* Lemma tau_secure_eqit_mon : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2) + (c : Chain (secure_eqit_mon Label priv RR true true l)), + secure_eqit_mon Label priv RR true true l (elem c) (Tau t1) t2 -> secure_eqit_mon Label priv RR true true l (elem c) t1 t2. +Proof. + intros E R1 R2 Label priv l RR. intros t1 t2 c Hsec. + icbn; icbn in Hsec; cbn in *. remember (TauF t1) as x. + hinduction Hsec before priv; intros; inversion Heqx; subst; eauto with itree. + - constructor; auto. now unstep. + - unpriv_ind. now unstep. + - now step in H. +Qed. *) + + +(* #[global] Instance eutt_secure_secure_eqit_mon {E : Type -> Type} {R1 R2 : Type} {RR : R1 -> R2 -> Prop} {Label priv l} + (c : Chain (secure_eqit_mon Label priv RR true true l)): + Proper (@eq_itree E _ _ eq ==> eq ==> Basics.flip Basics.impl) + (elem c). +Proof. + do 5 red. tower induction; subst. + clear c. intros c. intros CIH t1 t1' Heutt t2 _ <- Hsec. + step in Heutt. icbn; icbn in Hsec. + hinduction Heutt before E; intros; subst; auto with itree. + (* - remember (RetF r2) as x. hinduction Hsec before E; intros; try inv Heqx; auto with itree. + + constructor; auto. eapply IHHsec; eauto. + + unpriv_ind. eapply H0; eauto. *) + - genobs t2 ot2. clear Heqot2. + assert (Ht2 : (exists m3, ot2 = TauF m3) \/ (forall m3, ot2 <> TauF m3) ). + { destruct ot2; eauto; right; repeat intro; discriminate. } + (* because of the extra inductive cases this is not enough *) + destruct Ht2 as [ [m3 Hm3] | Ht2 ]. + + subst. constructor. eapply CIH; eauto. *) From 0b32b6cb560f7798cae5a3da6046de8c676175fd Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 12 May 2026 20:20:00 -0400 Subject: [PATCH 162/189] Done, continuing --- extra/Secure/SecureEqBind.v | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index 5d7e93c6..e3a8bad5 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -279,28 +279,28 @@ Proof. icoinduction c CIH. intros a1 a2 Ha. specialize (Hbody a1 a2 Ha) as Hbodya. step in Hbodya. + unfold observe. (* write lemmas for unfolding the observe of iter *) cbn. - to_mon_s. rewrite 2unfold_iter. icbn. rewrite observe_bind. - hinduction Hbodya before E; intros; cbn; auto with itree. - fail. - - inv H. cbn; eauto with itree. - - cbn. constructor. - left. eapply iter_bind_aux; eauto. - - constructor; auto. left. eapply iter_bind_aux; eauto. - - unpriv_co. left. eapply iter_bind_aux; eauto. - - unpriv_co. left. eapply iter_bind_aux; eauto. - - unpriv_co. left. eapply iter_bind_aux; eauto. + - inv H; cbn; eauto with itree. + - cbn. constructor. do 2 step. + eapply iter_bind_aux; eauto. + - constructor; auto. intro. do 2 step. eapply iter_bind_aux; eauto. + apply H. + - unpriv_co. do 2 step. + eapply iter_bind_aux; eauto. apply H. + - unpriv_co. do 2 step. eapply iter_bind_aux; eauto. apply H. + - unpriv_co. do 2 step. eapply iter_bind_aux; eauto. apply H. - unpriv_ind. (* here is where it gets bad, I am pretty sure H0 does match up but could take very particular *) unfold observe at 1. cbn. eauto. - unpriv_ind. unfold observe at 3. cbn. eauto. - - unpriv_halt. - left. eapply iter_bind_shalt_aux1; eauto. - - unpriv_halt. left. eapply iter_bind_shalt_aux2; eauto. - - unpriv_halt. specialize (H b). left. - eapply iter_bind_shalt_aux1; eauto. - - unpriv_halt. specialize (H a). left. eapply iter_bind_shalt_aux2; eauto. + - unpriv_halt. do 2 step. + eapply iter_bind_shalt_aux1; eauto. intros; apply RA; auto. + - unpriv_halt. do 2 step. eapply iter_bind_shalt_aux2; eauto. + - unpriv_halt. specialize (H b). do 2 step. + eapply iter_bind_shalt_aux1; eauto. intros; apply RA; auto. + - unpriv_halt. specialize (H a). do 2 step. eapply iter_bind_shalt_aux2; eauto. Qed. Lemma secure_eqit_ret : forall (E : Type -> Type) Label priv l b1 b2 (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (r1 : R1) (r2 : R2), From dad885f59ea148195d8d00b85d860fc2260bb08f Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 15 May 2026 16:44:59 -0400 Subject: [PATCH 163/189] Done with SecureEqWcompat --- Makefile | 10 +- Makefile.conf | 8 +- _CoqProject | 2 +- extra/Secure/SecureEqProgInsens.v | 2 +- extra/Secure/SecureEqWcompat.v | 268 +++++++++++++++++++++++++----- 5 files changed, 236 insertions(+), 54 deletions(-) diff --git a/Makefile b/Makefile index 2784ed89..c5f54563 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.0.1 +## GNUMakefile for Rocq 9.1.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code he may need +# add any other Makefile code they may need -include Makefile.local # Parameters ################################################################## @@ -77,7 +77,6 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" -ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -87,9 +86,6 @@ else STDTIME?=command time endif endif -else -STDTIME?=command time -f $(TIMEFMT) -endif COQBIN?= ifneq (,$(COQBIN)) @@ -278,7 +274,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.0.1 +COQMAKEFILE_VERSION:=9.1.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index 4db136fe..f5a69775 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerburtonpatel/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerburtonpatel/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerburtonpatel/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerburtonpatel/.opam/default/bin/ocamlfind +COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true diff --git a/_CoqProject b/_CoqProject index ee277008..d5847a7c 100644 --- a/_CoqProject +++ b/_CoqProject @@ -107,4 +107,4 @@ extra/Secure/SecureEqBind.v extra/Secure/SecureEqProgInsens.v extra/Secure/SecureEqProgInsensFacts.v extra/Secure/SecureStateHandler.v -# extra/Secure/SecureStateHandlerPi.v +extra/Secure/SecureStateHandlerPi.v diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index 7aeece28..24af1b2b 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -1,3 +1,4 @@ +From Coinduction Require Import all. From Stdlib Require Import Morphisms. From ITree Require Import @@ -9,7 +10,6 @@ From ITree.Extra Require Import Secure.SecureEqHalt . -From Paco Require Import paco. Import Monads. Import MonadNotation. diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 1a5c2648..6b4c94a1 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -1,23 +1,12 @@ (* Chain-based congruence for [eqit_secure]. - This file replaces the paco-style [wcompatible2] proofs of "up-to" closures - over [secure_eqit_]. In Pous' coinduction library we don't need a separate - [wcompatible2] development: we prove the congruence directly as a fact - about any chain element [elem c] and recover the gfp-level statement by - instantiating [c := chain_gfp _]. See [theories/Eq/Eqit.v] — - [euttge_proper_euttC] / [euttge_proper_eutt] and [eqit_bind_chain] are the - templates. - - What this file currently exports: + This currently exports: - The Ltac utilities used by downstream files ([inv_vis_secure], [clear_trivial], [find_size], [produce_elem], [spew]). - The small helper [eqit_secure_shalt_refl]. - A chain-level [Proper] instance [eqit_secure_proper_chain] for rewriting - under [eqit_secure ... eq] on either side of [elem c]. The proof body is - currently [Admitted]; see the TODO note inside it. The instance is - declared so downstream chain-style proofs can [rewrite] under it once the - proof is filled in. + under [eqit_secure ... eq] on either side of [elem c]. At the gfp level, [SecureEqEuttHalt.v] already provides: - [proper_eqit_secure_eqit] — rewrite under [eqit b b eq] (eq_itree / eutt). @@ -47,9 +36,9 @@ Proof. intros. step. cbn. unpriv_halt. contra_size. Qed. -(* ===== Utility Ltacs (paco-free) ===== *) +(* ===== Generic Ltac utilities (also used by downstream files) ===== *) -Ltac inv_vis_secure := ddestruction; subst; +Ltac inv_vis_secure := ddestruction; try contradiction; try contra_size. Ltac clear_trivial := @@ -64,21 +53,151 @@ Ltac find_size A := Ltac produce_elem H A := inv H; assert (nonempty A); try (constructor; auto with itree; fail). -(* Specialize some hypothesis with the assumption x *) +(* Specialize every [forall _ : (type of x), _] hypothesis with [x]. *) Ltac spew x := let T := type of x in repeat lazymatch goal with | [ H0 : forall (_ : T), _ |- _ ] => specialize (H0 x) end. -(* ===== Chain-level [Proper] for [elem c] under [eqit_secure ... eq] ===== +Ltac contra_leq := + match goal with + | [ Hleq : leq ?a ?b, Hnleq : ~ leq ?a ?b |- _ ] => contradiction + end. + +(* Decide the size of every event index appearing in the goal classically + (paco's [find_size] preprocessing) so the shape-directed + [smart_constructor] always has the [empty]/[nonempty] facts it needs. *) +Ltac resolve_sizes := + repeat match goal with + | |- context [ @VisF _ _ _ ?A _ _ ] => + lazymatch goal with + | _ : empty A |- _ => fail + | _ : nonempty A |- _ => fail + | _ => destruct (classic_empty A) + end + end; + try contra_size. + +Ltac apply_foralls := + repeat match goal with + | w : ?A, H : forall _ : ?A, _ |- _ => apply (H w) + end. + +(* Close a halting [Vis]/[Vis] obligation, at either the [gfp] + ([eqit_secure]) or chain ([elem c]) level: step into the halting + constructor, then finish by the empty-index contradiction or the body + hypothesis. More general than [eqit_secure_shalt_refl] (the two events + need not coincide). *) +Ltac secure_halt_refl := + solve [ step; cbn; unpriv_halt; intros; + repeat match goal with He : nonempty ?A |- _ => + let w := fresh "wit" in destruct He as [w] end; + first [ contra_size + | solve [ apply_foralls; eauto with itree ] + | solve [ eauto with itree ] ] ]. + +Ltac sec_hyp := + first [ eassumption + | solve [ apply_foralls; first [ eassumption | eauto with itree ] ] + | solve [ eauto with itree ] ]. + +Ltac sec_fin := solve [ sec_hyp | secure_halt_refl ]. + +(* Deep halt/halt subcases: no hypothesis pins the [CIH] intermediate, but it + can be taken to be the concrete halting [Vis] already on the other side — + a reflexive halt bridge. Mirrors paco's explicit + [econstructor 1 with (t1' := Vis e k)]. *) +Ltac sec_reflexive := + match goal with + | |- eqit_secure _ _ _ _ _ _ ?X ?Y => + first [ is_evar Y; unify Y X | is_evar X; unify X Y ] + end; + secure_halt_refl. + +(* [eapply CIH] leaves [eqit_secure x ?y], [eqit_secure x0 ?y0], + [elem c ?y ?y0]. Pin the shared evars from a concrete hypothesis before + any [secure_halt_refl] (running it on an evar goal would invent and shelve + a spurious event). The body hypothesis (premise 3) or the [eqit_secure] + hypotheses (premises 1/2) provide the pinning; try both orders. *) +Ltac by_coinduction CIH := + first + [ (eapply CIH; + [ first [ sec_hyp | sec_reflexive ] + | first [ sec_hyp | sec_reflexive ] + | sec_fin ]) + | (eapply CIH; + only 3: (solve [ eassumption | apply_foralls; eassumption ]); + sec_fin) ]. + +(* ===== Smart constructor for [secure_eqitF] ===== + + [smart_constructor conclude] inspects the goal shape (Ret/Tau/Vis on each + side) and the context (for [leq]/[~ leq]/[nonempty]/[empty] facts), then + tries the [secure_eqitF] constructors that are compatible with that shape, + in a sensible order. For each candidate it [eapply]s the constructor, + discharges the side-conditions ([SECCHECK]/[SIZECHECK]/[CHECK]) from the + context, and runs [conclude] on the remaining relational premise(s). If + that whole sequence does not close the goal it backtracks and tries the + next constructor; if none work it leaves the goal untouched (never fails). *) + +(* Discharge one subgoal produced by a [secure_eqitF] constructor: trivial + side-conditions by [assumption]/[reflexivity]/[contra_size]/[auto]; the + relational premise(s) by [conclude] (after [intros]). *) +Tactic Notation "sec_side" tactic3(conclude) := + first [ assumption + | reflexivity + | contra_size + | solve [ econstructor; eassumption ] (* [nonempty A] from a witness *) + | solve [ auto ] + | solve [ intros; + repeat match goal with He : nonempty ?A |- _ => + let w := fresh "wit" in destruct He as [w] end; + first [ contra_size | conclude ] ] ]. + +Tactic Notation "smart_constructor" tactic3(conclude) := + lazymatch goal with + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ (RetF _) (RetF _) => + first [ solve [ eapply secEqRet; sec_side conclude ] + | fail 1 "smart_constructor: Ret/Ret unsolved" ] + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ (TauF _) (TauF _) => + first [ solve [ eapply secEqTau; sec_side conclude ] + | solve [ eapply secEqTauL; sec_side conclude ] + | solve [ eapply secEqTauR; sec_side conclude ] + | fail 1 "smart_constructor: Tau/Tau unsolved" ] + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ (VisF _ _) (VisF _ _) => + first [ solve [ eapply EqVisPriv; sec_side conclude ] + | solve [ eapply EqVisUnPrivVisCo; sec_side conclude ] + | solve [ eapply EqVisUnprivHaltLVisR; sec_side conclude ] + | solve [ eapply EqVisUnprivHaltRVisL; sec_side conclude ] + | solve [ eapply EqVisUnPrivLInd; sec_side conclude ] + | solve [ eapply EqVisUnPrivRInd; sec_side conclude ] + | fail 1 "smart_constructor: Vis/Vis unsolved" ] + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ (VisF _ _) (TauF _) => + first [ solve [ eapply EqVisUnPrivTauLCo; sec_side conclude ] + | solve [ eapply EqVisUnprivHaltLTauR; sec_side conclude ] + | solve [ eapply secEqTauR; sec_side conclude ] + | solve [ eapply secEqTauL; sec_side conclude ] + | solve [ eapply EqVisUnPrivLInd; sec_side conclude ] + | fail 1 "smart_constructor: Vis/Tau unsolved" ] + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ (TauF _) (VisF _ _) => + first [ solve [ eapply EqVisUnPrivTauRCo; sec_side conclude ] + | solve [ eapply EqVisUnprivHaltRTauL; sec_side conclude ] + | solve [ eapply secEqTauL; sec_side conclude ] + | solve [ eapply secEqTauR; sec_side conclude ] + | solve [ eapply EqVisUnPrivRInd; sec_side conclude ] + | fail 1 "smart_constructor: Tau/Vis unsolved" ] + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ (VisF _ _) _ => + first [ solve [ eapply EqVisUnPrivLInd; sec_side conclude ] + | solve [ eapply secEqTauR; sec_side conclude ] + | fail 1 "smart_constructor: Vis/? unsolved" ] + | |- @secure_eqitF _ _ _ _ _ _ _ _ _ _ _ (VisF _ _) => + first [ solve [ eapply EqVisUnPrivRInd; sec_side conclude ] + | solve [ eapply secEqTauL; sec_side conclude ] + | fail 1 "smart_constructor: ?/Vis unsolved" ] + | |- _ => idtac + end. - The proof follows the template of [euttge_proper_euttC] in - [theories/Eq/Eqit.v]: [tower induction] on the chain, then case-split on - the chain-element hypothesis at body level, with nested case analysis on - the [eqit_secure] premises. The body should mirror the original paco proof - of [eqit_secureC_wcompat_id'] (~ 170 lines, 14 case bullets) with the paco - verbs replaced by chain primitives. *) #[global] Instance eqit_secure_proper_chain {E R1 R2} (RR : R1 -> R2 -> Prop) Label priv l (b1 b2 : bool) (c : Chain (secure_eqit_mon (E := E) Label priv RR b1 b2 l)) : @@ -87,23 +206,90 @@ Ltac spew x := flip impl) (elem c). Proof. unfold Proper, respectful, flip, impl. - tower induction. clear c. + tower induction. clear c. intros c CIH t1 t2 Ht1t2 t3 t4 Ht3t4 Hbt2t4. icbn; icbn in Hbt2t4. - step in Ht1t2; step in Ht3t4. - revert t1 t3 Ht1t2 Ht3t4. induction Hbt2t4; intros. - (* Ret-Ret *) - - inv Ht1t2; inv Ht3t4. now constructor. - - - (* TODO(paco→coinduction migration): port the 14-case body of the original - paco proof [eqit_secureC_wcompat_id'] to a [tower induction] over the - chain [c], replacing the paco verbs: - [gclo ... gfinal ; left ; apply H] → [apply IH; eauto] - [pclearbot] → (delete: no bot disjunction) - [pstep_reverse] → [now unstep] / [now step] - [eauto with paco] → [eauto with itree] - The proof shape mirrors [euttge_proper_euttC] in [theories/Eq/Eqit.v]. - Sketch — for each [secure_eqitF] constructor on the [REL] hypothesis, - case-split on [EQVl] and [EQVr] and reconstruct the resulting chain - element using [IH] from the [tower induction]. *) -Admitted. + step in Ht1t2; step in Ht3t4. + revert t1 t3 Ht1t2 Ht3t4. induction Hbt2t4; intros. + - (* secEqRet *) + inv Ht1t2; inv Ht3t4; now constructor. + - (* secEqTau *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: smart_constructor (by_coinduction CIH). + - (* secEqTauL (CHECK : b1) *) + inv Ht1t2; ddestruction; try contra_size; try contra_leq. + + apply secEqTauL; auto. eapply IHHbt2t4; eauto. now unstep. + + apply EqVisUnPrivLInd; auto. intros. eapply IHHbt2t4; eauto. now unstep. + + eapply (IHHbt2t4 (Vis _ _)); eauto. now unstep. + - (* secEqTauR (CHECK : b2) *) + inv Ht3t4; ddestruction; try contra_size; try contra_leq. + + apply secEqTauR; auto. eapply IHHbt2t4; eauto. now unstep. + + apply EqVisUnPrivRInd; auto. intros. eapply IHHbt2t4; eauto. now unstep. + + eapply (IHHbt2t4 _ (Vis _ _)); eauto. now unstep. + - (* EqVisPriv (priv leq) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnPrivTauLCo (left vis nonempty, right tau) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnPrivTauRCo (left tau, right vis nonempty) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnPrivVisCo (left vis nonempty, right vis nonempty) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnPrivLInd (CHECK : b1, left vis nonempty inductive) *) + inv Ht1t2; ddestruction; try contra_size; try contra_leq. + + (* Ht1t2 = EqVisUnPrivTauRCo : observe t1 = TauF t5 *) + apply secEqTauL; auto. + match goal with He : nonempty ?A |- _ => destruct He as [aE] end. + eapply (H0 aE); eauto. unstep. eauto. + + (* Ht1t2 = EqVisUnPrivVisCo : observe t1 = VisF, nonempty *) + apply EqVisUnPrivLInd; auto. intros. + match goal with He : nonempty ?A |- _ => destruct He as [aE] end. + eapply (H0 aE); eauto. unstep. eauto. + + (* Ht1t2 = EqVisUnprivHaltLVisR : observe t1 = VisF, A empty *) + match goal with He : nonempty ?A |- _ => destruct He as [aE] end. + eapply (H0 aE (Vis _ _)); eauto. unstep. eauto. + - (* EqVisUnPrivRInd (CHECK : b2, right vis nonempty inductive) *) + inv Ht3t4; ddestruction; try contra_size; try contra_leq. + + (* Ht3t4 = EqVisUnPrivTauLCo : observe t3 = TauF *) + apply secEqTauR; auto. + match goal with He : nonempty ?A |- _ => destruct He as [aE] end. + eapply (H0 aE); eauto. unstep. eauto. + + (* Ht3t4 = EqVisUnPrivVisCo : observe t3 = VisF, nonempty *) + apply EqVisUnPrivRInd; auto. intros. + match goal with He : nonempty ?A |- _ => destruct He as [aE] end. + eapply (H0 aE); eauto. unstep. eauto. + + (* Ht3t4 = EqVisUnprivHaltRVisL : observe t3 = VisF, B empty *) + match goal with He : nonempty ?A |- _ => destruct He as [aE] end. + eapply (H0 aE _ (Vis _ _)); eauto. unstep. eauto. + - (* EqVisUnprivHaltLTauR (left vis empty, right tau) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: resolve_sizes. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnprivHaltRTauL (left tau, right vis empty) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: resolve_sizes. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnprivHaltLVisR (left vis empty, right vis ~leq) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; + try contra_leq. + all: resolve_sizes. + all: smart_constructor (by_coinduction CIH). + - (* EqVisUnprivHaltRVisL (left vis ~leq, right vis empty) *) + inv Ht1t2; inv Ht3t4; ddestruction; + try contra_size; try contra_leq. + all: resolve_sizes. + all: smart_constructor (by_coinduction CIH). + Unshelve. + all: assumption. +Qed. From 88777c37e3ebd1ad5bd234c913647f9cd851aa60 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 18 May 2026 17:08:44 -0400 Subject: [PATCH 164/189] Progress. Nearly done. --- extra/Secure/SecureEqBind.v | 67 ++-- extra/Secure/SecureEqProgInsens.v | 515 +++++++++++------------------- 2 files changed, 232 insertions(+), 350 deletions(-) diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index e3a8bad5..8fda86de 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -148,7 +148,7 @@ Lemma iter_bind_shalt_aux1: forall (E : Type -> Type) (B2 B1 A1 A2 : Type) (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (body1 : A1 -> itree E (A1 + B1)) - (body2 : A2 -> itree E (A2 + B2)) (r : itree E B1 -> itree E B2 -> Prop) + (body2 : A2 -> itree E (A2 + B2)) (A : Type) (e : E A) (k1 : A -> itree E (A1 + B1)) (t0 : itree E (A2 + B2)), ~ leq (priv A e) l -> empty A -> @@ -170,7 +170,7 @@ Lemma iter_bind_shalt_aux1: | inr r0 => Ret r0 end)). Proof. - intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r A e k1 t0 SECCHECK SIZECHECK H. + intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 A e k1 t0 SECCHECK SIZECHECK H. generalize dependent t0. coinduction c CIH. intros t0 Ht0. icbn. step in Ht0. rewrite observe_bind. cbn in *. inv Ht0; inv_vis_secure; cbn; unpriv_halt; try contra_size; @@ -187,7 +187,6 @@ Lemma iter_bind_shalt_aux2: (RB : B1 -> B2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (body1 : A1 -> itree E (A1 + B1)) (body2 : A2 -> itree E (A2 + B2)) - (* (r : itree E B1 -> itree E B2 -> Prop) *) (A : Type) (e : E A) (t0 : itree E (A1 + B1)) (k2 : A -> itree E (A2 + B2)), ~ leq (priv A e) l -> empty A -> @@ -227,11 +226,12 @@ Lemma iter_bind_aux: (RB : B1 -> B2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (body1 : A1 -> itree E (A1 + B1)) (body2 : A2 -> itree E (A2 + B2)) - (r : itree E B1 -> itree E B2 -> Prop) + (c : Chain (secure_eqit_mon Label priv RB b1 b2 l)) (t1 : itree E (A1 + B1)) (t2 : itree E (A2 + B2)), eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l t1 t2 -> - (forall (a1 : A1) (a2 : A2), RA a1 a2 -> r (ITree.iter body1 a1) (ITree.iter body2 a2)) -> - eqit_secure Label priv RB b1 b2 l + (forall (a1 : A1) (a2 : A2) + , RA a1 a2 -> elem c (ITree.iter body1 a1) (ITree.iter body2 a2)) -> + elem c (ITree.bind t1 (fun lr : A1 + B1 => match lr with @@ -245,23 +245,36 @@ Lemma iter_bind_aux: | inr r0 => Ret r0 end)). Proof. -Admitted. - (* intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r t1 t2 H CIH0. - generalize dependent t2. revert t1. coinduction c CIH1. - intros t1 t2 Ht12. step in Ht12. pstep. red. - cbn. - hinduction Ht12 before r; intros; cbn; eauto; + intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 c. + tower induction. clear c; intros c CIH t1 t2 Ht12 Hbody. step in Ht12. + icbn. + unfold observe. cbn. + hinduction Ht12 before E; intros; simpobs; cbn; eauto; try (unpriv_co; fail); try (constructor; auto; right; eapply CIH1; eauto with itree; fail). - inv H; cbn; eauto with itree. - - unpriv_ind. unfold observe at 1. cbn. eapply H0; eauto with itree. - - unpriv_ind. unfold observe at 3. cbn. eapply H0; eauto with itree. - - unpriv_halt. left. eapply iter_bind_shalt_aux1; eauto with itree. - - unpriv_halt. left. eapply iter_bind_shalt_aux2; eauto with itree. - - unpriv_halt. specialize (H b). left. eapply iter_bind_shalt_aux1; eauto with itree. - - unpriv_halt. specialize (H a). left. eapply iter_bind_shalt_aux2; eauto with itree. -Qed. *) + constructor. now step; apply Hbody. + - constructor; auto. eapply CIH; eauto with itree. + intros. now step; apply Hbody. + - constructor; auto. unfold observe at 1. cbn. eapply IHHt12; eauto with itree. + - constructor; auto. unfold observe at 1. cbn. eapply IHHt12; eauto with itree. + - constructor; auto. intro. + eapply CIH; intros. apply H. + now step; apply Hbody. + - unpriv_co. eapply CIH; intros. apply H. + now step; apply Hbody. + - unpriv_co. eapply CIH; intros. apply H. + now step; apply Hbody. + - unpriv_co. eapply CIH; intros. apply H. + now step; apply Hbody. + - unpriv_ind. unfold observe at 1. cbn. eapply H0; eauto with itree. + - unpriv_ind. unfold observe at 3. cbn. apply H0; eauto with itree. + - unpriv_halt. do 2 step. eapply iter_bind_shalt_aux1; eauto with itree. + - unpriv_halt. do 2 step. eapply iter_bind_shalt_aux2; eauto with itree. + - unpriv_halt. specialize (H b). do 2 step. eapply iter_bind_shalt_aux1; eauto with itree. + - unpriv_halt. specialize (H a). do 2 step. eapply iter_bind_shalt_aux2; eauto with itree. +Qed. Lemma secure_eqit_iter : forall E A1 A2 B1 B2 (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) b1 b2 Label priv l @@ -283,23 +296,23 @@ Proof. (* write lemmas for unfolding the observe of iter *) cbn. hinduction Hbodya before E; intros; cbn; auto with itree. - inv H; cbn; eauto with itree. - - cbn. constructor. do 2 step. - eapply iter_bind_aux; eauto. - - constructor; auto. intro. do 2 step. eapply iter_bind_aux; eauto. + - cbn. constructor. + eapply iter_bind_aux; eauto. + - constructor; auto. intro. eapply iter_bind_aux; eauto. apply H. - - unpriv_co. do 2 step. + - unpriv_co. eapply iter_bind_aux; eauto. apply H. - - unpriv_co. do 2 step. eapply iter_bind_aux; eauto. apply H. - - unpriv_co. do 2 step. eapply iter_bind_aux; eauto. apply H. + - unpriv_co. eapply iter_bind_aux; eauto. apply H. + - unpriv_co. eapply iter_bind_aux; eauto. apply H. - unpriv_ind. (* here is where it gets bad, I am pretty sure H0 does match up but could take very particular *) unfold observe at 1. cbn. eauto. - unpriv_ind. unfold observe at 3. cbn. eauto. - unpriv_halt. do 2 step. - eapply iter_bind_shalt_aux1; eauto. intros; apply RA; auto. + eapply iter_bind_shalt_aux1; eauto. - unpriv_halt. do 2 step. eapply iter_bind_shalt_aux2; eauto. - unpriv_halt. specialize (H b). do 2 step. - eapply iter_bind_shalt_aux1; eauto. intros; apply RA; auto. + eapply iter_bind_shalt_aux1; eauto. - unpriv_halt. specialize (H a). do 2 step. eapply iter_bind_shalt_aux2; eauto. Qed. diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index 24af1b2b..5a935302 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -1,5 +1,5 @@ From Coinduction Require Import all. -From Stdlib Require Import Morphisms. +From Stdlib Require Import Morphisms Program.Basics. From ITree Require Import Axioms @@ -29,67 +29,55 @@ Section SecureProgInsens. want it to be an equivalence *) - Variant pi_secure_eqitF (b1 b2 : bool) (l : L) vclo (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := + Variant pi_secure_eqitF (b1 b2 : bool) (l : L) (sim : itree E R1 -> itree E R2 -> Prop) : itree' E R1 -> itree' E R2 -> Prop := (* eqitF constructors *) - | pisecEqRet r1 r2 : RR r1 r2 -> pi_secure_eqitF b1 b2 l vclo sim (RetF r1) (RetF r2) - | pisecEqTau t1 t2 : sim t1 t2 -> pi_secure_eqitF b1 b2 l vclo sim (TauF t1) (TauF t2) - | pisecEqTauL t1 t2 (CHECK : b1) : sim t1 t2 -> pi_secure_eqitF b1 b2 l vclo sim (TauF t1) (observe t2) - | pisecEqTauR t1 t2 (CHECK : b2) : sim t1 t2 -> pi_secure_eqitF b1 b2 l vclo sim (observe t1) (TauF t2) + | pisecEqRet r1 r2 : RR r1 r2 -> pi_secure_eqitF b1 b2 l sim (RetF r1) (RetF r2) + | pisecEqTau t1 t2 : sim t1 t2 -> pi_secure_eqitF b1 b2 l sim (TauF t1) (TauF t2) + | pisecEqTauL t1 t2 (CHECK : b1) : sim t1 t2 -> pi_secure_eqitF b1 b2 l sim (TauF t1) (observe t2) + | pisecEqTauR t1 t2 (CHECK : b2) : sim t1 t2 -> pi_secure_eqitF b1 b2 l sim (observe t1) (TauF t2) (* info_flow protecting coinductive constructors *) | piEqVisPriv {A} (e : E A) k1 k2 (SECCHECK : leq (priv A e) l) : - ((forall a, vclo sim (k1 a) (k2 a) : Prop)) -> pi_secure_eqitF b1 b2 l vclo sim (VisF e k1) (VisF e k2) + ((forall a, sim (k1 a) (k2 a) : Prop)) -> pi_secure_eqitF b1 b2 l sim (VisF e k1) (VisF e k2) | piEqVisUnPrivTauLCo {A} (e : E A) k1 t2 (SECCHECK : ~ leq (priv A e) l) : - (forall a, vclo sim (k1 a) t2) -> pi_secure_eqitF b1 b2 l vclo sim (VisF e k1) (TauF t2) + (forall a, sim (k1 a) t2) -> pi_secure_eqitF b1 b2 l sim (VisF e k1) (TauF t2) | piEqVisUnPrivTauRCo {A} (e : E A) t1 k2 (SECCHECK : ~ leq (priv A e) l) : - (forall a, vclo sim t1 (k2 a)) -> pi_secure_eqitF b1 b2 l vclo sim (TauF t1) (VisF e k2) + (forall a, sim t1 (k2 a)) -> pi_secure_eqitF b1 b2 l sim (TauF t1) (VisF e k2) | piEqVisUnPrivVisCo {A B} (e1 : E A) (e2 : E B) k1 k2 (SECCHECK1 : ~ leq (priv A e1) l) (SECCHECK2 : ~ leq (priv B e2) l) : - (forall a b, vclo sim (k1 a) (k2 b)) -> pi_secure_eqitF b1 b2 l vclo sim (VisF e1 k1) (VisF e2 k2) + (forall a b, sim (k1 a) (k2 b)) -> pi_secure_eqitF b1 b2 l sim (VisF e1 k1) (VisF e2 k2) (* info_flow protecting inductive constructors *) | piEqVisUnPrivLInd {A} (e : E A) k1 t2 (CHECK : b1) (SECCHECK : ~ leq (priv A e) l) : - (forall a, vclo sim (k1 a) t2 ) -> - pi_secure_eqitF b1 b2 l vclo sim (VisF e k1) (observe t2) + (forall a, sim (k1 a) t2 ) -> + pi_secure_eqitF b1 b2 l sim (VisF e k1) (observe t2) | piEqVisUnPrivRInd {A} (e : E A) t1 k2 (CHECK : b2) (SECCHECK : ~ leq (priv A e) l) : - (forall a, vclo sim t1 (k2 a) ) -> - pi_secure_eqitF b1 b2 l vclo sim (observe t1) (VisF e k2) + (forall a, sim t1 (k2 a) ) -> + pi_secure_eqitF b1 b2 l sim (observe t1) (VisF e k2) . Hint Constructors pi_secure_eqitF : itree. - Definition pi_secure_eqit_ (b1 b2 : bool) (l : L) vclo (sim : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := - fun t1 t2 => pi_secure_eqitF b1 b2 l vclo sim (observe t1) (observe t2). + Definition pi_secure_eqit_ (b1 b2 : bool) (l : L) (sim : itree E R1 -> itree E R2 -> Prop) : itree E R1 -> itree E R2 -> Prop := + fun t1 t2 => pi_secure_eqitF b1 b2 l sim (observe t1) (observe t2). Hint Unfold pi_secure_eqit_ : itree. - Lemma pi_secure_eqitF_mono b1 b2 l x0 x1 vclo vclo' sim sim' - (IN: pi_secure_eqitF b1 b2 l vclo sim x0 x1) - (MON: monotone2 vclo) - (LEc: vclo <3= vclo') - (LE: sim <2= sim'): - pi_secure_eqitF b1 b2 l vclo' sim' x0 x1. + Lemma pi_secure_eqitF_mono b1 b2 l : + Proper (respectful Coinduction.lattice.leq Coinduction.lattice.leq) + (pi_secure_eqit_ b1 b2 l). Proof. - intros. induction IN; eauto with itree. + intros!. red; red in H0. + induction H0; try solve [constructor; intros; eauto with itree; now apply H]. Qed. - Lemma pi_secure_eqit_mono b1 b2 l vclo (MON: monotone2 vclo) : monotone2 (pi_secure_eqit_ b1 b2 l vclo). - Proof. - do 2 red. intros; eapply pi_secure_eqitF_mono; eauto with itree. - Qed. - - Hint Resolve pi_secure_eqit_mono : paco. - - Definition pi_eqit_secure b1 b2 l := paco2 (pi_secure_eqit_ b1 b2 l id) bot2. - - (* want and eqitC_secure which could help prove some interesting stuff - - *) + Definition pi_secure_eqit_mon b1 b2 l := Build_mon (pi_secure_eqitF_mono b1 b2 l). + Definition pi_eqit_secure b1 b2 l := gfp (pi_secure_eqit_mon b1 b2 l). End SecureProgInsens. -#[export] Hint Resolve pi_secure_eqit_mono : paco. #[export] Hint Constructors pi_secure_eqitF : itree. +#[global] Hint Constructors pi_secure_eqitF : itree. Ltac unpriv_pi := try apply piEqVisUnPrivVisCo; try apply piEqVisUnPrivTauLCo; @@ -102,126 +90,116 @@ Ltac contra_size := match goal with | [ Hemp : empty ?A, Hne : nonempty ?A |- _ ] => inv Hemp; inv Hne; contradiction end. +#[local] Ltac taul := apply pisecEqTauL; [auto|]. +#[local] Ltac taur := apply pisecEqTauR; [auto|]. Lemma eqit_secure_imp_pi_eqit_scure b1 b2 E R1 R2 RR Label priv l : forall (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR b1 b2 l t1 t2 -> pi_eqit_secure Label priv RR b1 b2 l t1 t2. Proof. - coinduction c CIH. intros t1 t2 Hps. step. step in Hps. red in Hps. - hinduction Hps before r; intros. + icoinduction c CIH. intros t1 t2 Hps. step in Hps. + hinduction Hps before c; intros. - constructor; auto with itree. - - constructor. right. eauto with itree. - - rewrite itree_eta'. constructor; auto with itree. eapply CIH. step. apply Hps. - - rewrite itree_eta' at 1. constructor; auto with itree. eapply CIH. step. apply Hps. - - constructor; auto with itree. right. eapply CIH; eauto with itree. apply H. - - unpriv_pi. right. eapply CIH; apply H. - - unpriv_pi. right. eapply CIH; apply H. - - unpriv_pi. right. eapply CIH; apply H. - - unpriv_pi. eapply CIH. step. apply H. - - unpriv_pi. eapply CIH. step. apply H. - - unpriv_pi. inv SIZECHECK. contradiction. - - unpriv_pi. inv SIZECHECK. contradiction. - - unpriv_pi. inv SIZECHECK. contradiction. - - unpriv_pi. inv SIZECHECK. contradiction. + - constructor. apply CIH. apply H. + - rewrite itree_eta'. constructor; auto with itree. eapply CIH. step. apply Hps. + - rewrite itree_eta' at 1. constructor; auto with itree. eapply CIH. step. apply Hps. + - constructor; auto with itree. intros. apply CIH. apply H. + - unpriv_pi. eapply CIH; apply H. + - unpriv_pi. eapply CIH; apply H. + - unpriv_pi. eapply CIH; apply H. + - unpriv_pi. eapply CIH. step. apply H. + - unpriv_pi. eapply CIH. step. apply H. + - unpriv_pi; inv SIZECHECK; contradiction. + - unpriv_pi; inv SIZECHECK; contradiction. + - unpriv_pi; inv SIZECHECK; contradiction. + - unpriv_pi; inv SIZECHECK; contradiction. Qed. Lemma pi_eqit_secure_sym b1 b2 E R1 R2 RR Label priv l : forall (t1 : itree E R1) (t2 : itree E R2), pi_eqit_secure Label priv RR b1 b2 l t1 t2 -> pi_eqit_secure Label priv (flip RR) b2 b1 l t2 t1. Proof. - coinduction c CIH. intros t1 t2 Hsec. - step in Hsec. step. red in Hsec. red. inversion Hsec; eauto; - try (unpriv_pi; right; eapply CIH; apply H1; fail). - constructor; auto. right. eapply CIH; apply H1. + icoinduction c CIH. intros t1 t2 Hsec. step in Hsec. + hinduction Hsec before c; intros; eauto with itree; + try (unpriv_pi; apply CIH; apply H; fail). + constructor; auto. intros. apply CIH. apply H. Qed. -Lemma pi_secure_eqit_mon : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l +Lemma pi_secure_eqit_mono : forall E (b1 b2 b3 b4 : bool) R1 R2 RR1 RR2 Label priv l (t1 : itree E R1) (t2 : itree E R2), - (b1 -> b3) -> (b2 -> b4) -> (RR1 <2= RR2) -> + (b1 -> b3) -> (b2 -> b4) -> (RR1 <= RR2) -> pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> pi_eqit_secure Label priv RR2 b3 b4 l t1 t2. Proof. intros. generalize dependent t2. revert t1. coinduction c CIH. - intros t1 t2 Ht12. pstep. red. - step in Ht12. red in Ht12. - hinduction Ht12 before r; intros; eauto; - try (unpriv_pi; right; apply CIH; try red; eauto; fail); - constructor; auto. right. eauto. apply CIH; apply H2. + intros t1 t2 Ht12. icbn. + step in Ht12. + hinduction Ht12 before l; intros; + try (unpriv_pi; apply CIH; try red; eauto; fail); + eauto with itree. + - constructor; auto. now apply H2. + - constructor; intros; eauto. eapply CIH. apply H. Qed. Lemma pi_eqit_secure_spin b E R1 R2 (RR : R1 -> R2 -> Prop) Label priv l : forall (t1 : itree E R1), pi_eqit_secure Label priv RR b true l t1 (ITree.spin). Proof. - coinduction c CIH. intros. step. cbn. constructor; auto. + icoinduction c CIH. intros. cbn. constructor; auto. Qed. Lemma pi_eqit_secure_private_halt b E R1 R2 (RR : R1 -> R2 -> Prop) Label priv l A (e : E A) k: empty A -> ~ leq (priv A e) l -> forall (t1 : itree E R1), pi_eqit_secure Label priv RR b true l t1 (Vis e k). Proof. - intros HA t1. step. cbn. intros. unpriv_pi. inv HA; contradiction. + intros HA Hleq t1. step. cbn. unpriv_pi. inv HA; contradiction. Qed. Lemma pi_eqit_secure_mixed_trans_aux1: forall (E : Type -> Type) (R1 : Type) (b2 : bool) (R2 : Type) (RR1 : R1 -> R2 -> Prop) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) t1 t2, - paco2 (pi_secure_eqit_ Label priv RR1 true b2 l id) bot2 t1 (Tau t2) -> + pi_eqit_secure Label priv RR1 true b2 l t1 (Tau t2) -> pi_eqit_secure Label priv RR1 true b2 l t1 t2. Proof. intros E R1 b2 R2 RR1 Label priv l. coinduction c CIH. - intros t1 t2 Htau. step in Htau. red in Htau. - step. cbn in *. inv Htau; eauto. - - constructor; auto. left. eapply paco2_mon; eauto. intros; contradiction. - - constructor; auto. right. eapply CIH; eauto. step. rewrite <- H0. - cbn. pstep_reverse. - - pstep_reverse. eapply paco2_mon; eauto. intros; contradiction. - - unpriv_pi. left. eapply paco2_mon; eauto. intros; contradiction. - - unpriv_pi. eapply CIH. step. rewrite <- H0. - cbn. pstep_reverse. + intros t1 t2 Htau. step in Htau. + icbn. cbn in *. + inv Htau; eauto with itree. + - constructor; auto. apply (gfp_chain c). apply H1. + - constructor; auto. apply CIH. step. rewrite <- H0. step in H1. apply H1. + - apply (gfp_bchain c). apply H1. + - unpriv_pi. apply (gfp_chain c). apply H1. + - unpriv_pi. apply CIH. step. rewrite <- H0. specialize (H1 a). step in H1. apply H1. Qed. Lemma pi_eqit_secure_mixed_trans b1 b2 E R1 R2 R3 (RR1 : R1 -> R2 -> Prop) (RR2 : R2 -> R3 -> Prop) Label priv l : forall (t1 : itree E R1) t2 t3, - pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit RR2 b1 b2 t2 t3 -> + pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit b1 b2 RR2 t2 t3 -> pi_eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. - coinduction c CIH. intros t1 t2 t3 Hsec Heq. step in Heq. - red in Heq. step in Hsec. red in Hsec. step. red. - hinduction Heq before r; intros; - - inv Hsec; eauto with itree; unpriv_pi; - + rewrite itree_eta'. constructor; auto with itree. right. eapply CIH; eauto. - step. rewrite H0. constructor. auto. - + rewrite itree_eta'. unpriv_pi. right. eapply CIH; eauto. - apply H1. step. rewrite H0. constructor; auto. - - inv Hsec; eauto with itree. - + constructor. right. eapply CIH; eauto with itree. - step. rewrite H0. constructor; auto. pstep_reverse. - + unpriv_pi. right. eapply CIH; eauto. apply H1. - + rewrite itree_eta'. unpriv_pi. right. eapply CIH; eauto. - inv CHECK. apply pi_eqit_secure_mixed_trans_aux1. - step. rewrite <- H0. cbn. pstep_reverse. + coinduction c CIH. intros t1 t2 t3 Hsec Heq. + step in Heq. step in Hsec. icbn. cbn in *. + hinduction Heq before c; intros. + - inv Hsec; eauto with itree; unpriv_pi. + + rewrite itree_eta'. constructor; auto with itree. eapply CIH; eauto. step. rewrite H0. constructor. auto. + + rewrite itree_eta'. unpriv_pi. eapply CIH; eauto. apply H1. step. rewrite H0. constructor; auto. + - inv Hsec; eauto with itree. + + constructor. eapply CIH; eauto with itree. step. rewrite H0. constructor; auto. now step in REL. + + unpriv_pi. eapply CIH; eauto. apply H1. + + unpriv_pi. eapply CIH. apply H1. step. rewrite H0. apply EqTauL; auto. now step in REL. - inv Hsec. - + rewrite itree_eta'. constructor; auto. right. eapply CIH; eauto. - step. rewrite H0. constructor. left. auto. - + ddestruction. subst. constructor; auto with itree. right. - eapply CIH; eauto with itree. apply H1. - + ddestruction. subst. unpriv_pi. right. - eapply CIH; eauto with itree. apply H1. - + ddestruction. subst. unpriv_pi. right. - eapply CIH; eauto with itree. apply H1. - + remember (VisF e k2) as ovis. rewrite itree_eta'. - unpriv_pi. rewrite Heqovis. right. eapply CIH; eauto with itree. apply H1. - step. rewrite H0. constructor. left. auto. - + ddestruction. subst. unpriv_pi. right. eapply CIH; eauto with itree. apply H1. - - eapply IHHeq; eauto. clear IHHeq. inv Hsec; + + rewrite itree_eta'. constructor; auto. eapply CIH; eauto. step. rewrite H0. apply EqVis. apply REL. + + ddestruction. subst. constructor; auto with itree. intros a. eapply CIH. apply H1. apply REL. + + ddestruction. subst. unpriv_pi. eapply CIH. apply H1. apply REL. + + ddestruction. subst. unpriv_pi. eapply CIH. apply H1. apply REL. + + remember (VisF e k2) as ovis. rewrite itree_eta'. unpriv_pi. rewrite Heqovis. eapply CIH. apply H1. step. rewrite H0. apply EqVis. apply REL. + + ddestruction. subst. unpriv_pi. eapply CIH. apply H1. apply REL. + - eapply IHHeq; eauto. clear IHHeq. inv Hsec. + constructor; auto. - + constructor; auto. left. apply pi_eqit_secure_mixed_trans_aux1. step. red. - rewrite <- H0. cbn. pstep_reverse. - + pstep_reverse. + + inv CHECK. constructor; auto. apply pi_eqit_secure_mixed_trans_aux1. step. rewrite <- H0. now step in H1. + + now step in H1. + unpriv_pi. - + unpriv_pi. left. apply pi_eqit_secure_mixed_trans_aux1. step. red. - rewrite <- H0. cbn. pstep_reverse. - - constructor; auto. left. step. eapply IHHeq; eauto. + + inv CHECK0. unpriv_pi. apply pi_eqit_secure_mixed_trans_aux1. step. rewrite <- H0. specialize (H1 a). step in H1. apply H1. + - constructor; auto. step. eapply IHHeq; eauto. Qed. Lemma pi_eqit_secure_RR_imp b1 b2 E R1 R2 (RR1 : R1 -> R2 -> Prop ) (RR2 : R1 -> R2 -> Prop) @@ -230,121 +208,55 @@ Lemma pi_eqit_secure_RR_imp b1 b2 E R1 R2 (RR1 : R1 -> R2 -> Prop ) (RR2 : R1 -> pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> pi_eqit_secure Label priv RR2 b1 b2 l t1 t2. Proof. - intro Himp. coinduction c CIH. - intros. step. step in H0. red in H0. - inv H0; eauto; - try (constructor; auto; eauto; fail); - try ( constructor; auto; right; eapply CIH; eauto; try apply H2; fail). + intros Himp. + icoinduction c CIH. intros t1 t2 Ht12. step in Ht12. + hinduction Ht12 before c; intros; eauto with itree; + try ( constructor; auto; intros; eapply CIH; eauto; fail); + try ( unpriv_pi; intros; eapply CIH; eauto; apply H; fail). + constructor; auto. intros. eapply CIH. apply H. Qed. -Lemma pi_eqit_secureC_wcompat_id : forall b1 b2 E R1 R2 (RR : R1 -> R2 -> Prop ) - Label priv l -, wcompatible2 (@pi_secure_eqit_ E R1 R2 Label priv RR b1 b2 l id) - (eqitC RR b1 b2) . +Ltac inv_eq_itree := + repeat match goal with + | [ H : eqitF _ false false _ (RetF _) _ |- _ ] => inv H + | [ H : eqitF _ false false _ _ (RetF _) |- _ ] => inv H + | [ H : eqitF _ false false _ (TauF _) _ |- _ ] => inv H + | [ H : eqitF _ false false _ _ (TauF _) |- _ ] => inv H + | [ H : eqitF _ false false _ (VisF _ _) _ |- _ ] => inv H + | [ H : eqitF _ false false _ _ (VisF _ _) |- _ ] => inv H + end. +(* Chain-level congruence: rewriting under [eq_itree eq] on either side of a + chain element. This replaces the paco-style [pi_eqit_secureC_wcompat_id] + (weak compatibility of the [eqitC] up-to-eutt closure). Template: + [euttge_proper_secureC] in [SecureEqEuttHalt.v]. *) +#[global] Instance pi_eqit_secure_proper_secureC {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l + (c : Chain (pi_secure_eqit_mon Label priv RR b1 b2 l)) : + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) (elem c). Proof. - econstructor. pmonauto_itree. - intros. destruct PR. - step in EQVl. step in EQVr. unfold_eqit. red in REL. red. - hinduction REL before r; intros; clear t1' t2'. - - genobs_clear t1 ot1. genobs_clear t2 ot2. - remember (RetF r1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto. - + remember (RetF r3) as y. - hinduction EQVr before r; intros; inv Heqy; eauto with itree. - rewrite itree_eta' at 1. constructor; eauto with itree. gstep. red. - eapply IHEQVr; eauto. - + rewrite itree_eta'. constructor; auto. cbn. gstep. cbn. - eauto. - - remember (TauF t1) as y. - hinduction EQVl before r; intros; inv Heqy; subst; eauto. - + remember (TauF t2) as x. - hinduction EQVr before r; intros; inv Heqx; subst; eauto. - constructor. gclo. econstructor; eauto with paco. - - remember (TauF m1) as ot1. rewrite itree_eta' at 1. - constructor; auto. rewrite Heqot1. gstep. cbn. eauto. - + constructor; auto. gstep. eapply IHEQVl; eauto. - - inv EQVl. - + constructor; auto. gclo. econstructor; eauto with paco itree. - + constructor; auto. gclo. econstructor; eauto with paco itree. - apply eqit_inv_Tau_r. step. auto. - - inv EQVr. - + constructor; auto. gclo. econstructor; eauto with paco itree. - + constructor; auto. gclo. econstructor; eauto with paco itree. - apply eqit_inv_Tau_r. step. auto. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto. - + ddestruction. subst. remember (VisF e0 k3) as y. - hinduction EQVr before r; intros; inv Heqy; eauto. - * ddestruction. subst. constructor; auto. - intros. apply gpaco2_clo. econstructor; eauto with itree. apply H. - * remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. - constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto with itree. - + constructor; auto. gstep. eapply IHEQVl; eauto. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; subst; eauto. - + ddestruction. subst. remember (TauF t2) as y. - hinduction EQVr before r; intros; inv Heqy; subst; eauto. - * unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. gfinal. left. apply H. - * remember (VisF e0 k1) as ovis. rewrite itree_eta' at 1. constructor; auto. - rewrite Heqovis. gstep. eapply IHEQVr; eauto. - + constructor; auto. gstep. eapply IHEQVl; eauto. - - remember (TauF t1) as x. - hinduction EQVl before r; intros; inv Heqx; subst; eauto. - + remember (VisF e k2) as y. - hinduction EQVr before r; intros; inv Heqy; subst; eauto. - * ddestruction. subst. - unpriv_pi. gclo. econstructor; cycle -1; eauto with paco itree. - gfinal. left. apply H. - * remember (TauF m1) as otm1. rewrite itree_eta' at 1. constructor; auto. - gstep. rewrite Heqotm1. red. eapply IHEQVr; eauto. - + constructor; auto. gstep. eapply IHEQVl; eauto. - - remember (VisF e1 k1) as x. - hinduction EQVl before r; intros; inv Heqx; subst; eauto. - + ddestruction. subst. remember (VisF e2 k3) as y. - hinduction EQVr before r; intros; inv Heqy; subst; eauto. - * ddestruction. subst. unpriv_pi. gclo. - econstructor; eauto with paco itree. gfinal. left. apply H. - * remember (VisF e1 k1) as ovis. rewrite itree_eta' at 1. - constructor; auto. rewrite Heqovis. gstep. eapply IHEQVr; eauto. - + remember (VisF e2 k2) as x. - hinduction EQVr before r; intros; inv Heqx; subst; eauto. - * ddestruction. subst. unpriv_pi. - gclo. eapply eqit_trans_clo_intro with (t1' := Vis e1 k0); eauto with paco itree. - gstep. cbn. unpriv_pi. gfinal. left. apply H. - * remember (TauF t3) as ott3. rewrite itree_eta' at 1. constructor; auto. - rewrite Heqott3. gstep. eapply IHEQVr; eauto. - - remember (VisF e k1) as x. - hinduction EQVl before r; intros; inv Heqx; eauto. - + ddestruction. subst. unpriv_pi. - gclo. econstructor; eauto with paco itree. gfinal. left. apply H. - + constructor; auto. gstep. eapply IHEQVl; eauto. - - remember (VisF e k2) as x. - hinduction EQVr before r; intros; inv Heqx; eauto. - + ddestruction. subst. unpriv_pi. - gclo. econstructor; eauto with paco itree. gfinal. left. apply H. - + constructor; auto. gstep. eapply IHEQVr; eauto. -Qed. - -#[export] Hint Resolve pi_eqit_secureC_wcompat_id : paco. - -Global Instance geuttgen_cong_secure_eqit {E} {Label priv l} {R1 R2 : Type} {RR1 : R1 -> R1 -> Prop} - {RR2 : R2 -> R2 -> Prop} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) {r rg} : - (forall (x x' : R1) (y : R2), (RR1 x x' : Prop) -> (RS x' y : Prop) -> RS x y) -> - (forall (x : R1) (y y' : R2), (RR2 y y' : Prop) -> RS x y' -> RS x y) -> - Proper (@eq_itree E R1 R1 RR1 ==> eq_itree RR2 ==> flip impl) - (gpaco2 (pi_secure_eqit_ Label priv RS b1 b2 l id) (eqitC RS b1 b2) r rg ). -Proof. - repeat intro. gclo. econstructor; eauto with itree. - - eapply eqit_mon, H1; eauto; discriminate. - - eapply eqit_mon, H2; eauto; discriminate. -Qed. - -Global Instance geuttgen_cong_eq_secure_eqit {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) {r rg} : - Proper (@eq_itree E R1 R1 eq ==> eq_itree eq ==> flip impl) - (gpaco2 (pi_secure_eqit_ Label priv RS b1 b2 l id) (eqitC RS b1 b2) r rg ). + do 5 red. tower induction. clear c. intros c CIH t1 t2 H12 t3 t4 H34 Hpi. + icbn; icbn in Hpi. step in H12; step in H34. + induction Hpi; inv_eq_itree. + (* ret and coinductive cases are simple *) + 1,2: eauto with itree. + - taul. eapply CIH. apply REL. step; apply H34. assumption. + - taur. eapply CIH. step; apply H12. apply REL. assumption. + - ddestruction. evis. + - ddestruction. unpriv_pi. eapply CIH. apply REL0. apply REL. apply H. + - ddestruction. unpriv_pi. eapply CIH. apply REL. apply REL0. apply H. + - ddestruction. unpriv_pi. eapply CIH. apply REL0. apply REL. apply H. + - ddestruction. unpriv_pi. eapply CIH. apply REL. step; apply H34. apply H. + - ddestruction. unpriv_pi. eapply CIH. step; apply H12. apply REL. apply H. +Qed. + +(* ... lift to the gfp via [chain_gfp]: this is the [Proper] instance the + downstream chain-style [rewrite]s depend on, replacing the paco + [geuttgen_cong_*] gpaco instances. *) +#[global] Instance pi_eqit_secure_eutt_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : + Proper (@eq_itree E R1 R1 eq ==> eq_itree eq ==> flip impl) + (pi_eqit_secure Label priv RS b1 b2 l). Proof. - eapply geuttgen_cong_secure_eqit; eauto; intros; subst; auto. + eapply pi_eqit_secure_proper_secureC with + (c := chain_gfp (pi_secure_eqit_mon Label priv RS b1 b2 l)). Qed. Global Instance pi_eqit_secure_eq_itree_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : @@ -353,21 +265,16 @@ Global Instance pi_eqit_secure_eq_itree_proper {E} {Label priv l} {R1 R2 : Type} Proof. intros t1 t2 Ht12 t3 t4 Ht34. intros Hsec. apply pi_eqit_secure_RR_imp with (RR1 := rcompose RS eq). - { intros. inv H. auto. } - eapply pi_eqit_secure_mixed_trans. 2: { symmetry in Ht34. apply Ht34. } + intros r0 r3 Hr; inv Hr; auto. + eapply pi_eqit_secure_mixed_trans; cycle 1. + symmetry in Ht34. apply Ht34. apply pi_eqit_secure_sym in Hsec. apply pi_eqit_secure_sym. symmetry in Ht12. apply pi_eqit_secure_RR_imp with (RR1 := rcompose (flip RS) eq). - { intros. inv H. auto. } + intros r0 r3 Hr; inv Hr; auto. eapply pi_eqit_secure_mixed_trans; eauto. Qed. -Global Instance pi_eqit_secure_eutt_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : - Proper (@eq_itree E R1 R1 eq ==> eq_itree eq ==> flip impl) - (pi_eqit_secure Label priv RS b1 b2 l). -Proof. - repeat intro. ginit. rewrite H, H0. gfinal. eauto. -Qed. Lemma pi_eqit_secure_ret E Label priv l b1 b2 R1 R2 (RR : R1 -> R2 -> Prop) r1 r2 : RR r1 r2 -> @pi_eqit_secure E R1 R2 Label priv RR b1 b2 l (Ret r1) (Ret r2). @@ -381,48 +288,41 @@ Lemma pi_eqit_secure_bind E Label priv l b1 b2 R1 R2 S1 S2 (RR : R1 -> R2 -> Pro pi_eqit_secure Label priv RR b1 b2 l t1 t2 -> pi_eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - ginit. gcofix CIH. intros. sinv H1. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - repeat rewrite bind_ret_l. gfinal. right. eapply paco2_mon; try apply H0; auto. - intros; contradiction. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - repeat rewrite bind_tau. gstep. constructor. gfinal. left. eapply CIH; eauto. - - apply simpobs in H. apply simpobs in H2. rewrite H2. rewrite H. rewrite bind_tau. - gstep. constructor; auto. gfinal. left. eapply CIH; eauto. - step. cbn. pstep_reverse. - - apply simpobs in H. apply simpobs in H2. rewrite H2. rewrite H. rewrite bind_tau. - gstep. constructor; auto. gfinal. left. eapply CIH; eauto. - step. cbn. pstep_reverse. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - repeat rewrite bind_vis. gstep. constructor; auto. - gfinal. left. eapply CIH; eauto. apply H3. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. rewrite bind_tau. gstep. cbn. unpriv_pi. - gfinal. left. eapply CIH; eauto. apply H3. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. rewrite bind_tau. gstep. cbn. unpriv_pi. - gfinal. left. eapply CIH; eauto. apply H3. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - repeat rewrite bind_vis. gstep. cbn. unpriv_pi. - gfinal. left. eapply CIH; eauto. apply H3. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. gstep. unpriv_pi. - gfinal. left. eapply CIH; eauto. step. cbn. pstep_reverse. - - apply simpobs in H. apply simpobs in H2. rewrite H. rewrite H2. - rewrite bind_vis. gstep. unpriv_pi. - gfinal. left. eapply CIH; eauto. step. cbn. pstep_reverse. -Qed. + icoinduction c CIH. intros ?? Hk1k2 Ht1t2. + step in Ht1t2. + genobs t1 Hot1. + genobs t2 Hot2. + hinduction Ht1t2 before c; intros. + - rewrite 2observe_bind. simpobs. step. apply Hk1k2. apply H. + - rewrite 2observe_bind. simpobs. etau. + - rewrite observe_bind. simpobs. taul. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite (observe_bind t3). simpobs. taur. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite 2observe_bind. simpobs. constructor; auto. intros. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite 2observe_bind. simpobs. unpriv_pi. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite 2observe_bind. simpobs. unpriv_pi. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite 2observe_bind. simpobs. unpriv_pi. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite observe_bind. simpobs. unpriv_pi. + eapply CIH; intros; auto. step. simpobs. now unstep. + - rewrite (observe_bind t2). simpobs. unpriv_pi. + eapply CIH; intros; auto. step. simpobs. now unstep. +Qed. Lemma pi_eqit_secure_iter_bind_aux: forall (E : Type -> Type) (B2 B1 A1 A2 : Type) (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) (body1 : A1 -> itree E (A1 + B1)) - (body2 : A2 -> itree E (A2 + B2)) (r : itree E B1 -> itree E B2 -> Prop), - (forall (a1 : A1) (a2 : A2), RA a1 a2 -> r (ITree.iter body1 a1) (ITree.iter body2 a2)) -> + (body2 : A2 -> itree E (A2 + B2)) + (c : Chain (pi_secure_eqit_mon Label priv RB b1 b2 l)), + (forall (a1 : A1) (a2 : A2), RA a1 a2 -> elem c (ITree.iter body1 a1) (ITree.iter body2 a2)) -> forall (t1 : itree E (A1 + B1)) (t2 : itree E (A2 + B2)), - paco2 (pi_secure_eqit_ Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l id) bot2 t1 - t2 -> - gpaco2 (pi_secure_eqit_ Label priv RB b1 b2 l id) (eqitC RB b1 b2) r r + pi_eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l t1 t2 -> + elem c (ITree.bind t1 (fun lr : A1 + B1 => match lr with @@ -436,33 +336,31 @@ Lemma pi_eqit_secure_iter_bind_aux: | inr r0 => Ret r0 end)). Proof. - intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 r CIH t1 t2 H2. - generalize dependent t2. revert t1. gcofix CIH'. intros t1 t2 Ht12. - sinv Ht12; apply simpobs in H; apply simpobs in H0. - - rewrite H, H0. repeat rewrite bind_ret_l. inv H1. - + gstep. constructor. gfinal. left. apply CIH'0. eapply CIH; eauto. - + gstep. constructor; auto. - - rewrite H, H0. repeat rewrite bind_tau. gstep. constructor. - gfinal. left. eapply CIH'; eauto. - - rewrite H. rewrite <- itree_eta in H0. rewrite H0. rewrite bind_tau. gstep. - constructor; auto. gfinal. - left. eapply CIH'; eauto. - - rewrite H0. rewrite <- itree_eta in H. rewrite H. rewrite bind_tau. gstep. - constructor; auto. gfinal. - left. eapply CIH'; eauto. - - rewrite H, H0. repeat rewrite bind_vis. gstep. constructor; auto. - intros. gfinal. left. eauto. - - rewrite H, H0. rewrite bind_vis, bind_tau. gstep. unpriv_pi; auto. - intros. gfinal. left. eauto. - - rewrite H, H0. rewrite bind_vis, bind_tau. gstep. unpriv_pi; auto. - intros. gfinal. left. eauto. - - rewrite H, H0. repeat rewrite bind_vis. gstep. unpriv_pi. - gfinal. left. eauto. - - rewrite H. rewrite <- itree_eta in H0. rewrite H0. rewrite bind_vis. - gstep. unpriv_pi. gfinal. left. eauto. - - rewrite H0. rewrite <- itree_eta in H. rewrite H. rewrite bind_vis. - gstep. unpriv_pi. gfinal. left. eauto. -Qed. + intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 c. + tower induction. clear c; intros c CIH Hbody t1 t2 Ht12. step in Ht12. + icbn. genobs t1 ot1. genobs t2 ot2. + hinduction Ht12 before E; intros. + #[local] Ltac by_coinduction CIH := + eapply CIH; intros; + try solve [now step; simpobs; unstep]; + match goal with + | |- elem _ _ _ => Utils.step + end; auto. + (* QUESTION: why does 'now step; apply Hbody' instead of auto fail? *) + #[local] Ltac pi_solve CIH := constructor; auto; intros; by_coinduction CIH. + - unfold observe; cbn; simpobs. inv H; cbn; eauto with itree. + constructor. now step; apply Hbody. + - unfold observe; cbn; simpobs. pi_solve CIH. + - unfold observe at 1; cbn; simpobs. pi_solve CIH. + - unfold observe at 2; cbn; simpobs. pi_solve CIH. + - unfold observe; cbn; simpobs. pi_solve CIH. + - unfold observe; cbn; simpobs. pi_solve CIH. + - unfold observe; cbn; simpobs. pi_solve CIH. + - unfold observe; cbn; simpobs. pi_solve CIH. + - unfold observe at 1; cbn; simpobs. pi_solve CIH. + - unfold observe at 2; cbn; simpobs. pi_solve CIH. +Qed. + Lemma secure_eqit_iter E A1 A2 B1 B2 (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) b1 b2 Label priv l @@ -471,34 +369,5 @@ Lemma secure_eqit_iter E A1 A2 B1 B2 (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> P forall (a1 : A1) (a2 : A2), RA a1 a2 -> pi_eqit_secure Label priv RB b1 b2 l (ITree.iter body1 a1) (ITree.iter body2 a2). Proof. - intro Hbody. ginit. gcofix CIH. intros. rewrite unfold_iter. rewrite unfold_iter. - apply Hbody in H0. sinv H0; apply simpobs in H; apply simpobs in H1. - - rewrite H. rewrite H1. repeat rewrite bind_ret_l. inv H2. - + gstep. constructor. gfinal. left. eapply CIH; eauto. - + gstep. constructor; auto. - - rewrite H. rewrite H1. repeat rewrite bind_tau. gstep. - constructor. eapply pi_eqit_secure_iter_bind_aux; eauto. - - rewrite H. rewrite bind_tau. gstep. constructor; auto. - eapply pi_eqit_secure_iter_bind_aux; eauto. - assert (t1 ≈ body1 a1). - { rewrite H. rewrite tau_eutt. reflexivity. } - inv CHECK. rewrite <- itree_eta in H1. rewrite H1. auto. - - rewrite H1. rewrite bind_tau. gstep. constructor; auto. - eapply pi_eqit_secure_iter_bind_aux; eauto. rewrite H. - rewrite <- itree_eta. apply H2. - - rewrite H, H1. repeat rewrite bind_vis. gstep. constructor; auto. - intros. red. - eapply pi_eqit_secure_iter_bind_aux; eauto. - - rewrite H, H1. rewrite bind_vis, bind_tau. gstep. unpriv_pi. - eapply pi_eqit_secure_iter_bind_aux; eauto. - - rewrite H, H1. rewrite bind_vis, bind_tau. gstep. unpriv_pi. - eapply pi_eqit_secure_iter_bind_aux; eauto. - - rewrite H, H1. repeat rewrite bind_vis. gstep. unpriv_pi. - eapply pi_eqit_secure_iter_bind_aux; eauto. - - rewrite H. rewrite bind_vis. gstep. unpriv_pi. - eapply pi_eqit_secure_iter_bind_aux; eauto. - rewrite H1. rewrite <- itree_eta. apply H2. - - rewrite H1. rewrite bind_vis. gstep. unpriv_pi. red. - rewrite H. rewrite <- itree_eta. - eapply pi_eqit_secure_iter_bind_aux; eauto. -Qed. + (* TODO(paco->coinduction): fill in (template: secure_eqit_iter in SecureEqBind.v). *) +Admitted. From 64852e0bb577980834e1c532793328a82883e37d Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 19 May 2026 14:29:00 -0400 Subject: [PATCH 165/189] Fixed ITraceBind Admitted --- extra/ITrace/ITraceBind.v | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 2c178792..39ef522a 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -530,23 +530,23 @@ Lemma eqitF_observe_peel_cont_vis: forall (E : Type -> Type) (R S A : Type) (ev : E A) (ans : A) (k1 k2 : unit -> itree (EvAns E) R), (forall v : unit, eutt eq (k1 v) (k2 v)) -> - forall r : itree (EvAns E) R -> itree (EvAns E) R -> Prop, + forall c : Chain (eqit_mon true true), (forall (b b' : itrace E R) (t : itree E S), (b ≈ b') -> - r (peel_cont_ (observe b) (observe t)) (peel_cont_ (observe b') (observe t))) -> + elem c _ _ eq (peel_cont_ (observe b) (observe t)) (peel_cont_ (observe b') (observe t))) -> forall (X : Type) (e : E X) (k : X -> itree E S), - eqitF eq true true (r) - (observe (peel_cont_ (VisF (evans A ev ans) k1) (VisF e k))) - (observe (peel_cont_ (VisF (evans A ev ans) k2) (VisF e k))). + eqit_mon true true (elem c) _ _ eq + ((peel_cont_ (VisF (evans A ev ans) k1) (VisF e k))) + ((peel_cont_ (VisF (evans A ev ans) k2) (VisF e k))). Proof. - intros E R S A ev ans k1 k2 REL r CIH X e k. + intros E R S A ev ans k1 k2 REL c CIH X e k. icbn. unfold observe. cbn. unfold peel_cont_vis. destruct (classicT (A = X) ). - unfold eq_rect_r, eq_rect. remember (eq_sym e0) as He. dependent destruction He. cbn. constructor. intros. eapply CIH. auto with itree. - - cbn. taus. -Admitted. + - cbn. taus. reflexivity. +Qed. Lemma proper_peel_cont_eutt_l : forall (E : Type -> Type) (R S : Type) From ea0d564536e690b0f203cd7c0bab2bb8e51e4753 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 19 May 2026 17:34:05 -0400 Subject: [PATCH 166/189] Timing and so forth --- extra/Dijkstra/DelaySpecMonad.v.timing | 514 +-- extra/Dijkstra/DijkstraMonad.v.timing | 4 +- extra/Dijkstra/ITreeDijkstra.v.timing | 788 ++-- extra/Dijkstra/IterRel.v.timing | 166 +- extra/Dijkstra/PureITreeBasics.v.timing | 134 +- extra/Dijkstra/PureITreeDijkstra.v.timing | 606 +-- extra/Dijkstra/StateDelaySpec.v.timing | 388 +- extra/Dijkstra/StateIOTrace.v.timing | 358 +- extra/Dijkstra/StateSpecT.v.timing | 260 +- extra/Dijkstra/TracesIT.v.timing | 696 ++-- extra/IForest.v.timing | 1226 +++--- extra/ITrace/ITraceBind.v.timing | 3326 +++++++-------- extra/ITrace/ITraceDefinition.v.timing | 6 +- extra/ITrace/ITraceFacts.v.timing | 1396 +++---- extra/ITrace/ITracePreds.v.timing | 148 +- extra/ITrace/ITracePrefix.v.timing | 548 +-- extra/Secure/Labels.v.timing | 12 +- extra/Secure/SecureEqBind.v.timing | 350 ++ extra/Secure/SecureEqEuttHalt.v | 10 +- extra/Secure/SecureEqEuttHalt.v.timing | 3645 +++++++++-------- extra/Secure/SecureEqEuttTrans.v.timing | 251 +- extra/Secure/SecureEqHalt.v.timing | 56 +- extra/Secure/SecureEqHaltProgInsens.v.timing | 42 +- extra/Secure/SecureEqProgInsens.v.timing | 527 +++ extra/Secure/SecureEqProgInsensFacts.v.timing | 10 + extra/Secure/SecureEqWcompat.v.timing | 144 + extra/Secure/StrongBisimProper.v.timing | 16 +- theories/Axioms.v.timing | 10 +- theories/Basics/Basics.v.timing | 30 +- theories/Basics/Category.v.timing | 2 +- theories/Basics/CategoryFacts.v.timing | 592 +-- theories/Basics/CategoryFunctor.v.timing | 10 +- theories/Basics/CategoryKleisli.v.timing | 4 +- theories/Basics/CategoryKleisliFacts.v.timing | 292 +- theories/Basics/CategoryOps.v.timing | 22 +- theories/Basics/CategoryRelations.v.timing | 376 +- theories/Basics/CategorySub.v.timing | 108 +- theories/Basics/CategoryTheory.v.timing | 78 +- theories/Basics/Function.v.timing | 2 +- theories/Basics/FunctionFacts.v.timing | 104 +- .../Basics/HeterogeneousRelations.v.timing | 544 +-- theories/Basics/Monad.v.timing | 8 +- theories/Basics/MonadProp.v.timing | 236 +- theories/Basics/MonadState.v.timing | 528 +-- theories/Basics/Utils.v.timing | 6 +- theories/Core/ITreeDefinition.v.timing | 12 +- theories/Core/ITreeMonad.v.timing | 44 +- theories/Core/KTree.v.timing | 4 +- theories/Core/KTreeFacts.v.timing | 336 +- theories/Core/Subevent.v.timing | 8 +- theories/Eq.v.timing | 2 +- theories/Eq/EqAxiom.v.timing | 6 +- theories/Eq/Eqit.v.timing | 3146 +++++++------- theories/Eq/Rutt.v.timing | 196 +- theories/Eq/RuttFacts.v.timing | 644 +-- theories/Eq/Shallow.v.timing | 54 +- theories/Eq/SimUpToTaus.v.timing | 224 +- theories/Events.v.timing | 2 +- theories/Events/Concurrency.v.timing | 10 +- theories/Events/Dependent.v.timing | 2 +- theories/Events/Exception.v.timing | 8 +- theories/Events/ExceptionFacts.v.timing | 682 +-- theories/Events/FailFacts.v.timing | 238 +- theories/Events/Map.v.timing | 8 +- theories/Events/MapDefault.v.timing | 14 +- theories/Events/MapDefaultFacts.v.timing | 226 +- theories/Events/Nondeterminism.v.timing | 10 +- theories/Events/Reader.v.timing | 4 +- theories/Events/State.v.timing | 10 +- theories/Events/StateFacts.v.timing | 306 +- theories/Events/Writer.v.timing | 12 +- theories/ITree.v.timing | 2 +- theories/ITreeFacts.v.timing | 2 +- theories/Indexed/Function.v.timing | 2 +- theories/Indexed/FunctionFacts.v.timing | 6 +- theories/Indexed/Relation.v.timing | 16 +- theories/Indexed/Sum.v.timing | 2 +- theories/Interp/Handler.v.timing | 10 +- theories/Interp/HandlerFacts.v.timing | 408 +- theories/Interp/Interp.v.timing | 6 +- theories/Interp/InterpFacts.v.timing | 422 +- theories/Interp/Recursion.v.timing | 6 +- theories/Interp/RecursionFacts.v.timing | 288 +- theories/Interp/Traces.v.timing | 232 +- theories/Interp/TranslateFacts.v.timing | 188 +- theories/Props/Cofinite.v.timing | 24 +- theories/Props/EuttNoRet.v.timing | 354 +- theories/Props/Finite.v.timing | 352 +- theories/Props/HasPost.v.timing | 184 +- theories/Props/Infinite.v.timing | 366 +- theories/Props/Leaf.v.timing | 450 +- theories/Simple.v.timing | 164 +- 92 files changed, 14820 insertions(+), 13451 deletions(-) create mode 100644 extra/Secure/SecureEqBind.v.timing create mode 100644 extra/Secure/SecureEqProgInsens.v.timing create mode 100644 extra/Secure/SecureEqProgInsensFacts.v.timing create mode 100644 extra/Secure/SecureEqWcompat.v.timing diff --git a/extra/Dijkstra/DelaySpecMonad.v.timing b/extra/Dijkstra/DelaySpecMonad.v.timing index 0f2e0f33..97fe1bc1 100644 --- a/extra/Dijkstra/DelaySpecMonad.v.timing +++ b/extra/Dijkstra/DelaySpecMonad.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.233 secs (0.2u,0.031s) -Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.018 secs (0.015u,0.003s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.158 secs (0.141u,0.017s) +Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.013 secs (0.011u,0.002s) Chars 312 - 326 [Import~Monads.] 0. secs (0.u,0.s) Chars 327 - 348 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 350 - 382 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -23,137 +23,137 @@ Chars 2341 - 2426 [#[global]~Instance~MonadIterDe...] 0. secs (0.u,0.s) Chars 2428 - 2511 [Definition~DelaySpecInput~(A~:...] 0. secs (0.u,0.s) Chars 2513 - 2604 [Definition~DelayIn~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 2606 - 2767 [Definition~DelaySpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.003 secs (0.002u,0.s) -Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.003 secs (0.002u,0.s) -Chars 3076 - 3092 [Next~Obligation.] 0.038 secs (0.035u,0.003s) -Chars 3095 - 3114 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 3115 - 3142 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.002 secs (0.001u,0.s) +Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.028 secs (0.026u,0.001s) +Chars 3076 - 3092 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 3095 - 3114 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 3115 - 3142 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) Chars 3145 - 3146 [-] 0. secs (0.u,0.s) Chars 3147 - 3152 [left.] 0. secs (0.u,0.s) Chars 3153 - 3162 [exists~a.] 0. secs (0.u,0.s) -Chars 3163 - 3175 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3176 - 3186 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 3163 - 3175 [split;~auto.] 0. secs (0.u,0.s) +Chars 3176 - 3186 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 3187 - 3192 [auto.] 0. secs (0.u,0.s) Chars 3195 - 3196 [-] 0. secs (0.u,0.s) Chars 3197 - 3203 [right.] 0. secs (0.u,0.s) -Chars 3204 - 3221 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 3204 - 3221 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 3222 - 3227 [auto.] 0. secs (0.u,0.s) Chars 3230 - 3231 [-] 0. secs (0.u,0.s) Chars 3232 - 3237 [left.] 0. secs (0.u,0.s) Chars 3238 - 3247 [exists~a.] 0. secs (0.u,0.s) -Chars 3248 - 3262 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 3248 - 3262 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 3263 - 3268 [auto.] 0. secs (0.u,0.s) Chars 3271 - 3272 [-] 0. secs (0.u,0.s) Chars 3273 - 3279 [right.] 0. secs (0.u,0.s) -Chars 3280 - 3294 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 3280 - 3294 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 3295 - 3300 [auto.] 0. secs (0.u,0.s) -Chars 3301 - 3305 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3301 - 3305 [Qed.] 0.003 secs (0.003u,0.s) Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.001 secs (0.001u,0.s) -Chars 3426 - 3442 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 3445 - 3449 [(red).] 0. secs (0.u,0.s) -Chars 3450 - 3460 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 3461 - 3482 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 3483 - 3494 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 3495 - 3519 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 3522 - 3528 [(simpl).] 0. secs (0.u,0.s) -Chars 3529 - 3536 [(intros).] 0. secs (0.u,0.s) +Chars 3426 - 3442 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 3445 - 3449 [red.] 0. secs (0.u,0.s) +Chars 3450 - 3460 [red~in~H0.] 0. secs (0.u,0.s) +Chars 3461 - 3482 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 3483 - 3494 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 3495 - 3519 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 3522 - 3528 [simpl.] 0. secs (0.u,0.s) +Chars 3529 - 3536 [intros.] 0. secs (0.u,0.s) Chars 3537 - 3549 [basic_solve.] 0. secs (0.u,0.s) Chars 3552 - 3553 [-] 0. secs (0.u,0.s) Chars 3554 - 3559 [left.] 0. secs (0.u,0.s) Chars 3560 - 3569 [exists~a.] 0. secs (0.u,0.s) -Chars 3570 - 3582 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3583 - 3596 [(dest_dep~f~a).] 0. secs (0.u,0.s) -Chars 3597 - 3615 [(eapply~Hfa;~eauto).] 0. secs (0.u,0.s) +Chars 3570 - 3582 [split;~auto.] 0. secs (0.u,0.s) +Chars 3583 - 3596 [dest_dep~f~a.] 0. secs (0.u,0.s) +Chars 3597 - 3615 [eapply~Hfa;~eauto.] 0. secs (0.u,0.s) Chars 3618 - 3619 [-] 0. secs (0.u,0.s) Chars 3620 - 3626 [right.] 0. secs (0.u,0.s) -Chars 3627 - 3639 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3640 - 3644 [Qed.] 0.057 secs (0.057u,0.s) -Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0.001 secs (0.001u,0.s) +Chars 3627 - 3639 [split;~auto.] 0.043 secs (0.043u,0.s) +Chars 3640 - 3644 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) Chars 3747 - 3831 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) Chars 3832 - 3838 [Proof.] 0. secs (0.u,0.s) -Chars 3841 - 3878 [(constructor;~repeat~intro;~tr...] 0.005 secs (0.005u,0.s) +Chars 3841 - 3878 [constructor;~repeat~intro;~try...] 0.003 secs (0.003u,0.s) Chars 3881 - 3882 [-] 0. secs (0.u,0.s) -Chars 3883 - 3899 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 3883 - 3899 [repeat~red~in~H.] 0. secs (0.u,0.s) Chars 3900 - 3917 [specialize~(H~p).] 0. secs (0.u,0.s) -Chars 3918 - 3924 [tauto.] 0.001 secs (0.001u,0.s) +Chars 3918 - 3924 [tauto.] 0. secs (0.u,0.s) Chars 3927 - 3928 [-] 0. secs (0.u,0.s) -Chars 3929 - 3949 [(repeat~red~in~H,~H0).] 0. secs (0.u,0.s) +Chars 3929 - 3949 [repeat~red~in~H,~H0.] 0. secs (0.u,0.s) Chars 3950 - 3967 [specialize~(H~p).] 0. secs (0.u,0.s) Chars 3968 - 3986 [specialize~(H0~p).] 0. secs (0.u,0.s) -Chars 3987 - 3993 [tauto.] 0.002 secs (0.002u,0.s) +Chars 3987 - 3993 [tauto.] 0.001 secs (0.001u,0.s) Chars 3994 - 3998 [Qed.] 0.002 secs (0.002u,0.s) Chars 4000 - 4104 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) -Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.016 secs (0.016u,0.s) +Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.01 secs (0.01u,0.s) Chars 4177 - 4193 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4196 - 4207 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4208 - 4212 [(cbn).] 0. secs (0.u,0.s) -Chars 4213 - 4246 [(split;~intros;~basic_solve;~a...] 0.002 secs (0.002u,0.s) +Chars 4196 - 4207 [repeat~red.] 0. secs (0.u,0.s) +Chars 4208 - 4212 [cbn.] 0. secs (0.u,0.s) +Chars 4213 - 4246 [split;~intros;~basic_solve;~auto.] 0.001 secs (0.001u,0.s) Chars 4249 - 4250 [-] 0. secs (0.u,0.s) -Chars 4251 - 4285 [(repeat~red~in~H;~step~in~H;~i...] 0. secs (0.u,0.s) +Chars 4251 - 4285 [repeat~red~in~H;~step~in~H;~in...] 0. secs (0.u,0.s) Chars 4289 - 4290 [-] 0. secs (0.u,0.s) Chars 4291 - 4296 [left.] 0. secs (0.u,0.s) Chars 4297 - 4306 [exists~x.] 0. secs (0.u,0.s) -Chars 4307 - 4332 [(split;~auto;~reflexivity).] 0. secs (0.u,0.s) -Chars 4333 - 4337 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4307 - 4332 [split;~auto;~reflexivity.] 0. secs (0.u,0.s) +Chars 4333 - 4337 [Qed.] 0.002 secs (0.002u,0.s) Chars 4338 - 4354 [Next~Obligation.] 0. secs (0.u,0.s) Chars 4357 - 4373 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 4376 - 4387 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4388 - 4392 [(cbn).] 0. secs (0.u,0.s) -Chars 4393 - 4407 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4376 - 4387 [repeat~red.] 0. secs (0.u,0.s) +Chars 4388 - 4392 [cbn.] 0. secs (0.u,0.s) +Chars 4393 - 4407 [split;~intros.] 0. secs (0.u,0.s) Chars 4410 - 4411 [-] 0. secs (0.u,0.s) -Chars 4412 - 4421 [(red~in~H).] 0. secs (0.u,0.s) -Chars 4422 - 4433 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 4434 - 4455 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 4456 - 4467 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 4468 - 4491 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) -Chars 4496 - 4503 [(intros).] 0. secs (0.u,0.s) -Chars 4504 - 4515 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 4516 - 4537 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 4538 - 4549 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4412 - 4421 [red~in~H.] 0. secs (0.u,0.s) +Chars 4422 - 4433 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 4434 - 4455 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 4456 - 4467 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4468 - 4491 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 4496 - 4503 [intros.] 0. secs (0.u,0.s) +Chars 4504 - 4515 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4516 - 4537 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 4538 - 4549 [simpl~in~*.] 0. secs (0.u,0.s) Chars 4550 - 4562 [basic_solve.] 0. secs (0.u,0.s) Chars 4567 - 4568 [+] 0. secs (0.u,0.s) -Chars 4569 - 4586 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 4569 - 4586 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) Chars 4587 - 4605 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 4611 - 4612 [+] 0. secs (0.u,0.s) -Chars 4613 - 4639 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 4640 - 4657 [(eapply~Hp;~eauto).] 0. secs (0.u,0.s) +Chars 4613 - 4639 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 4640 - 4657 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) Chars 4660 - 4661 [-] 0. secs (0.u,0.s) -Chars 4662 - 4666 [(red).] 0. secs (0.u,0.s) -Chars 4667 - 4688 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 4689 - 4700 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 4701 - 4724 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) -Chars 4725 - 4732 [(intros).] 0. secs (0.u,0.s) -Chars 4737 - 4758 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 4759 - 4770 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 4775 - 4818 [(destruct~(eutt_reta_or_div~t)...] 0. secs (0.u,0.s) +Chars 4662 - 4666 [red.] 0. secs (0.u,0.s) +Chars 4667 - 4688 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 4689 - 4700 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4701 - 4724 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 4725 - 4732 [intros.] 0. secs (0.u,0.s) +Chars 4737 - 4758 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 4759 - 4770 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4775 - 4818 [destruct~(eutt_reta_or_div~t);...] 0. secs (0.u,0.s) Chars 4823 - 4824 [+] 0. secs (0.u,0.s) Chars 4825 - 4830 [left.] 0. secs (0.u,0.s) Chars 4831 - 4840 [exists~a.] 0. secs (0.u,0.s) -Chars 4841 - 4853 [(split;~auto).] 0. secs (0.u,0.s) -Chars 4854 - 4871 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 4841 - 4853 [split;~auto.] 0. secs (0.u,0.s) +Chars 4854 - 4871 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) Chars 4876 - 4877 [+] 0. secs (0.u,0.s) Chars 4878 - 4884 [right.] 0. secs (0.u,0.s) -Chars 4885 - 4897 [(split;~auto).] 0. secs (0.u,0.s) -Chars 4898 - 4922 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) +Chars 4885 - 4897 [split;~auto.] 0. secs (0.u,0.s) +Chars 4898 - 4922 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) Chars 4923 - 4932 [symmetry.] 0. secs (0.u,0.s) -Chars 4933 - 4953 [(apply~div_spin_eutt).] 0. secs (0.u,0.s) +Chars 4933 - 4953 [apply~div_spin_eutt.] 0. secs (0.u,0.s) Chars 4954 - 4959 [auto.] 0. secs (0.u,0.s) -Chars 4960 - 4964 [Qed.] 0.007 secs (0.007u,0.s) -Chars 4965 - 4981 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4960 - 4964 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4965 - 4981 [Next~Obligation.] 0. secs (0.u,0.s) Chars 4984 - 5000 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 5003 - 5014 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5015 - 5019 [(cbn).] 0. secs (0.u,0.s) -Chars 5020 - 5034 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5003 - 5014 [repeat~red.] 0. secs (0.u,0.s) +Chars 5015 - 5019 [cbn.] 0. secs (0.u,0.s) +Chars 5020 - 5034 [split;~intros.] 0. secs (0.u,0.s) Chars 5037 - 5038 [-] 0. secs (0.u,0.s) -Chars 5039 - 5043 [(red).] 0. secs (0.u,0.s) -Chars 5044 - 5053 [(red~in~H).] 0. secs (0.u,0.s) -Chars 5054 - 5075 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 5076 - 5087 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5088 - 5109 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 5110 - 5121 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5126 - 5149 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) -Chars 5150 - 5157 [(intros).] 0. secs (0.u,0.s) -Chars 5158 - 5169 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 5039 - 5043 [red.] 0. secs (0.u,0.s) +Chars 5044 - 5053 [red~in~H.] 0. secs (0.u,0.s) +Chars 5054 - 5075 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 5076 - 5087 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5088 - 5109 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 5110 - 5121 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5126 - 5149 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 5150 - 5157 [intros.] 0. secs (0.u,0.s) +Chars 5158 - 5169 [simpl~in~*.] 0. secs (0.u,0.s) Chars 5170 - 5178 [clear~H.] 0. secs (0.u,0.s) Chars 5179 - 5191 [basic_solve.] 0.001 secs (0.001u,0.s) Chars 5196 - 5197 [+] 0. secs (0.u,0.s) @@ -164,280 +164,280 @@ Chars 5224 - 5225 [+] 0. secs (0.u,0.s) Chars 5226 - 5232 [right.] 0. secs (0.u,0.s) Chars 5233 - 5238 [auto.] 0. secs (0.u,0.s) Chars 5241 - 5242 [-] 0. secs (0.u,0.s) -Chars 5243 - 5247 [(red).] 0. secs (0.u,0.s) -Chars 5248 - 5257 [(red~in~H).] 0. secs (0.u,0.s) -Chars 5258 - 5279 [(destruct~w~as~[w~Hw]).] 0.001 secs (0.001u,0.s) -Chars 5280 - 5291 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5292 - 5313 [(destruct~p~as~[p~Hp]).] 0.001 secs (0.001u,0.s) -Chars 5314 - 5325 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5330 - 5353 [(eapply~Hw;~try~apply~H).] 0. secs (0.u,0.s) -Chars 5354 - 5365 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5366 - 5373 [(intros).] 0. secs (0.u,0.s) -Chars 5374 - 5386 [basic_solve.] 0.001 secs (0.001u,0.s) +Chars 5243 - 5247 [red.] 0. secs (0.u,0.s) +Chars 5248 - 5257 [red~in~H.] 0. secs (0.u,0.s) +Chars 5258 - 5279 [destruct~w~as~[w~Hw].] 0.001 secs (0.001u,0.s) +Chars 5280 - 5291 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5292 - 5313 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 5314 - 5325 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5330 - 5353 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) +Chars 5354 - 5365 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5366 - 5373 [intros.] 0. secs (0.u,0.s) +Chars 5374 - 5386 [basic_solve.] 0. secs (0.u,0.s) Chars 5391 - 5392 [+] 0. secs (0.u,0.s) Chars 5393 - 5398 [left.] 0. secs (0.u,0.s) Chars 5399 - 5408 [exists~a.] 0. secs (0.u,0.s) Chars 5409 - 5414 [auto.] 0. secs (0.u,0.s) Chars 5419 - 5420 [+] 0. secs (0.u,0.s) Chars 5421 - 5427 [right.] 0. secs (0.u,0.s) -Chars 5428 - 5440 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5428 - 5440 [split;~auto.] 0. secs (0.u,0.s) Chars 5441 - 5447 [right.] 0. secs (0.u,0.s) -Chars 5448 - 5484 [(split;~try~auto~using~spin_in...] 0. secs (0.u,0.s) -Chars 5485 - 5489 [Qed.] 0.014 secs (0.014u,0.s) -Chars 5490 - 5506 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 5509 - 5534 [(intros~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 5535 - 5567 [(unfold~pointwise_relation~in~...] 0. secs (0.u,0.s) -Chars 5570 - 5581 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5582 - 5736 [(unfold~bind_del,~_bind_del;~s...] 0.01 secs (0.01u,0.s) +Chars 5448 - 5484 [split;~try~auto~using~spin_inf...] 0. secs (0.u,0.s) +Chars 5485 - 5489 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5490 - 5506 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 5509 - 5534 [intros~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 5535 - 5567 [unfold~pointwise_relation~in~Hk.] 0. secs (0.u,0.s) +Chars 5570 - 5581 [repeat~red.] 0. secs (0.u,0.s) +Chars 5582 - 5736 [unfold~bind_del,~_bind_del;~sp...] 0.007 secs (0.007u,0.s) Chars 5739 - 5740 [-] 0. secs (0.u,0.s) -Chars 5741 - 5755 [(rewrite~<-~Hw).] 0.002 secs (0.002u,0.s) -Chars 5756 - 5792 [(eapply~Hw1;~try~apply~H;~simp...] 0. secs (0.u,0.s) -Chars 5793 - 5800 [(intros).] 0. secs (0.u,0.s) -Chars 5805 - 5858 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.001 secs (0.001u,0.s) +Chars 5741 - 5755 [rewrite~<-~Hw.] 0.001 secs (0.001u,0.s) +Chars 5756 - 5792 [eapply~Hw1;~try~apply~H;~simpl...] 0. secs (0.u,0.s) +Chars 5793 - 5800 [intros.] 0. secs (0.u,0.s) +Chars 5805 - 5858 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.001 secs (0.001u,0.s) Chars 5863 - 5868 [left.] 0. secs (0.u,0.s) Chars 5869 - 5878 [exists~a.] 0. secs (0.u,0.s) -Chars 5879 - 5891 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5879 - 5891 [split;~auto.] 0. secs (0.u,0.s) Chars 5896 - 5914 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 5915 - 6054 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.002 secs (0.002u,0.s) -Chars 6059 - 6068 [(apply~Hk).] 0. secs (0.u,0.s) +Chars 5915 - 6054 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.002 secs (0.002u,0.s) +Chars 6059 - 6068 [apply~Hk.] 0. secs (0.u,0.s) Chars 6069 - 6074 [auto.] 0. secs (0.u,0.s) Chars 6077 - 6078 [-] 0. secs (0.u,0.s) -Chars 6079 - 6090 [(rewrite~Hw).] 0.002 secs (0.002u,0.s) -Chars 6091 - 6127 [(eapply~Hw2;~try~apply~H;~simp...] 0. secs (0.u,0.s) -Chars 6128 - 6135 [(intros).] 0. secs (0.u,0.s) -Chars 6140 - 6193 [(destruct~H0~as~[[a~[Ht~Ha]]|~...] 0.001 secs (0.001u,0.s) +Chars 6079 - 6090 [rewrite~Hw.] 0.001 secs (0.001u,0.s) +Chars 6091 - 6127 [eapply~Hw2;~try~apply~H;~simpl...] 0. secs (0.u,0.s) +Chars 6128 - 6135 [intros.] 0. secs (0.u,0.s) +Chars 6140 - 6193 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.002 secs (0.002u,0.s) Chars 6198 - 6203 [left.] 0. secs (0.u,0.s) Chars 6204 - 6213 [exists~a.] 0. secs (0.u,0.s) -Chars 6214 - 6226 [(split;~auto).] 0. secs (0.u,0.s) +Chars 6214 - 6226 [split;~auto.] 0. secs (0.u,0.s) Chars 6231 - 6249 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 6250 - 6389 [(destruct~(k1~a)~as~[k1a~Hk1a]...] 0.005 secs (0.005u,0.s) -Chars 6394 - 6403 [(apply~Hk).] 0. secs (0.u,0.s) +Chars 6250 - 6389 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.001 secs (0.001u,0.s) +Chars 6394 - 6403 [apply~Hk.] 0. secs (0.u,0.s) Chars 6404 - 6409 [auto.] 0. secs (0.u,0.s) -Chars 6410 - 6414 [Qed.] 0.014 secs (0.014u,0.s) +Chars 6410 - 6414 [Qed.] 0.01 secs (0.01u,0.s) Chars 6416 - 6521 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) Chars 6523 - 6582 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) Chars 6583 - 6589 [Proof.] 0. secs (0.u,0.s) Chars 6592 - 6604 [constructor.] 0. secs (0.u,0.s) Chars 6607 - 6608 [-] 0. secs (0.u,0.s) -Chars 6609 - 6616 [(intros).] 0. secs (0.u,0.s) -Chars 6617 - 6628 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6629 - 6636 [(intros).] 0. secs (0.u,0.s) -Chars 6637 - 6648 [(destruct~w).] 0. secs (0.u,0.s) +Chars 6609 - 6616 [intros.] 0. secs (0.u,0.s) +Chars 6617 - 6628 [repeat~red.] 0. secs (0.u,0.s) +Chars 6629 - 6636 [intros.] 0. secs (0.u,0.s) +Chars 6637 - 6648 [destruct~w.] 0. secs (0.u,0.s) Chars 6649 - 6654 [auto.] 0. secs (0.u,0.s) Chars 6657 - 6658 [-] 0. secs (0.u,0.s) -Chars 6659 - 6666 [(intros).] 0. secs (0.u,0.s) -Chars 6667 - 6679 [(destruct~w1).] 0. secs (0.u,0.s) -Chars 6680 - 6692 [(destruct~w2).] 0. secs (0.u,0.s) -Chars 6693 - 6705 [(destruct~w3).] 0. secs (0.u,0.s) +Chars 6659 - 6666 [intros.] 0. secs (0.u,0.s) +Chars 6667 - 6679 [destruct~w1.] 0. secs (0.u,0.s) +Chars 6680 - 6692 [destruct~w2.] 0. secs (0.u,0.s) +Chars 6693 - 6705 [destruct~w3.] 0. secs (0.u,0.s) Chars 6706 - 6712 [intro.] 0. secs (0.u,0.s) -Chars 6713 - 6724 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6713 - 6724 [simpl~in~*.] 0. secs (0.u,0.s) Chars 6729 - 6747 [specialize~(H~p2).] 0. secs (0.u,0.s) Chars 6748 - 6767 [specialize~(H0~p2).] 0. secs (0.u,0.s) -Chars 6768 - 6779 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6780 - 6787 [(intros).] 0. secs (0.u,0.s) +Chars 6768 - 6779 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6780 - 6787 [intros.] 0. secs (0.u,0.s) Chars 6788 - 6793 [auto.] 0. secs (0.u,0.s) Chars 6796 - 6797 [-] 0. secs (0.u,0.s) -Chars 6798 - 6802 [(red).] 0. secs (0.u,0.s) -Chars 6803 - 6810 [(intros).] 0. secs (0.u,0.s) -Chars 6811 - 6822 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6823 - 6827 [(cbn).] 0. secs (0.u,0.s) -Chars 6828 - 6852 [(destruct~w1~as~[w1~Hw1]).] 0. secs (0.u,0.s) -Chars 6853 - 6877 [(destruct~w2~as~[w2~Hw2]).] 0. secs (0.u,0.s) -Chars 6882 - 6889 [(intros).] 0. secs (0.u,0.s) -Chars 6890 - 6901 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6902 - 6910 [(apply~H).] 0. secs (0.u,0.s) -Chars 6911 - 6922 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6923 - 6948 [(eapply~Hw2;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 6949 - 6960 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6961 - 6968 [(intros).] 0. secs (0.u,0.s) +Chars 6798 - 6802 [red.] 0. secs (0.u,0.s) +Chars 6803 - 6810 [intros.] 0. secs (0.u,0.s) +Chars 6811 - 6822 [repeat~red.] 0. secs (0.u,0.s) +Chars 6823 - 6827 [cbn.] 0. secs (0.u,0.s) +Chars 6828 - 6852 [destruct~w1~as~[w1~Hw1].] 0. secs (0.u,0.s) +Chars 6853 - 6877 [destruct~w2~as~[w2~Hw2].] 0. secs (0.u,0.s) +Chars 6882 - 6889 [intros.] 0. secs (0.u,0.s) +Chars 6890 - 6901 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6902 - 6910 [apply~H.] 0. secs (0.u,0.s) +Chars 6911 - 6922 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6923 - 6948 [eapply~Hw2;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 6949 - 6960 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6961 - 6968 [intros.] 0. secs (0.u,0.s) Chars 6973 - 6985 [basic_solve.] 0. secs (0.u,0.s) Chars 6990 - 6991 [+] 0. secs (0.u,0.s) Chars 6992 - 6997 [left.] 0. secs (0.u,0.s) Chars 6998 - 7007 [exists~a.] 0. secs (0.u,0.s) -Chars 7008 - 7020 [(split;~auto).] 0. secs (0.u,0.s) -Chars 7021 - 7030 [(apply~H0).] 0. secs (0.u,0.s) +Chars 7008 - 7020 [split;~auto.] 0. secs (0.u,0.s) +Chars 7021 - 7030 [apply~H0.] 0. secs (0.u,0.s) Chars 7031 - 7036 [auto.] 0. secs (0.u,0.s) Chars 7041 - 7042 [+] 0. secs (0.u,0.s) Chars 7043 - 7049 [right.] 0. secs (0.u,0.s) Chars 7050 - 7055 [auto.] 0. secs (0.u,0.s) -Chars 7056 - 7060 [Qed.] 0.009 secs (0.009u,0.s) -Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.002 secs (0.002u,0.s) +Chars 7056 - 7060 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.001 secs (0.001u,0.s) Chars 7153 - 7224 [#[global]~Instance~DelaySpecOb...] 0. secs (0.u,0.s) Chars 7226 - 7310 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) Chars 7311 - 7317 [Proof.] 0. secs (0.u,0.s) Chars 7320 - 7332 [constructor.] 0. secs (0.u,0.s) Chars 7335 - 7336 [-] 0. secs (0.u,0.s) -Chars 7337 - 7348 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7349 - 7353 [(cbn).] 0. secs (0.u,0.s) +Chars 7337 - 7348 [repeat~red.] 0. secs (0.u,0.s) +Chars 7349 - 7353 [cbn.] 0. secs (0.u,0.s) Chars 7354 - 7360 [tauto.] 0. secs (0.u,0.s) Chars 7363 - 7364 [-] 0. secs (0.u,0.s) -Chars 7365 - 7376 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7377 - 7381 [(cbn).] 0. secs (0.u,0.s) -Chars 7382 - 7409 [(split;~intros;~basic_solve).] 0. secs (0.u,0.s) +Chars 7365 - 7376 [repeat~red.] 0. secs (0.u,0.s) +Chars 7377 - 7381 [cbn.] 0. secs (0.u,0.s) +Chars 7382 - 7409 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) Chars 7414 - 7415 [+] 0. secs (0.u,0.s) -Chars 7416 - 7459 [(destruct~(eutt_reta_or_div~m)...] 0. secs (0.u,0.s) +Chars 7416 - 7459 [destruct~(eutt_reta_or_div~m);...] 0. secs (0.u,0.s) Chars 7466 - 7467 [*] 0. secs (0.u,0.s) Chars 7468 - 7473 [left.] 0. secs (0.u,0.s) Chars 7474 - 7483 [exists~a.] 0. secs (0.u,0.s) -Chars 7484 - 7496 [(split;~auto).] 0. secs (0.u,0.s) -Chars 7497 - 7518 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 7519 - 7530 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7531 - 7554 [(eapply~Hp;~try~apply~H).] 0. secs (0.u,0.s) -Chars 7563 - 7577 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) +Chars 7484 - 7496 [split;~auto.] 0. secs (0.u,0.s) +Chars 7497 - 7518 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7519 - 7530 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7531 - 7554 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) +Chars 7563 - 7577 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 7578 - 7604 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 7605 - 7617 [reflexivity.] 0. secs (0.u,0.s) Chars 7624 - 7625 [*] 0. secs (0.u,0.s) Chars 7626 - 7632 [right.] 0. secs (0.u,0.s) -Chars 7633 - 7645 [(split;~auto).] 0. secs (0.u,0.s) -Chars 7646 - 7672 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 7673 - 7694 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 7695 - 7718 [(eapply~Hp;~try~apply~H).] 0. secs (0.u,0.s) -Chars 7727 - 7738 [(rewrite~H0).] 0.001 secs (0.001u,0.s) -Chars 7739 - 7755 [(apply~spin_bind).] 0. secs (0.u,0.s) +Chars 7633 - 7645 [split;~auto.] 0. secs (0.u,0.s) +Chars 7646 - 7672 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 7673 - 7694 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7695 - 7718 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) +Chars 7727 - 7738 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7739 - 7755 [apply~spin_bind.] 0. secs (0.u,0.s) Chars 7760 - 7761 [+] 0. secs (0.u,0.s) -Chars 7762 - 7783 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 7784 - 7795 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7796 - 7820 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 7821 - 7834 [(rewrite~<-~H).] 0.001 secs (0.001u,0.s) -Chars 7835 - 7861 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7762 - 7783 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7784 - 7795 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7796 - 7820 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 7821 - 7834 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 7835 - 7861 [setoid_rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 7862 - 7874 [reflexivity.] 0. secs (0.u,0.s) Chars 7879 - 7880 [+] 0. secs (0.u,0.s) -Chars 7881 - 7906 [(apply~div_spin_eutt~in~H).] 0. secs (0.u,0.s) -Chars 7907 - 7928 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 7929 - 7940 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7941 - 7965 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 7966 - 7976 [(rewrite~H).] 0.002 secs (0.001u,0.s) +Chars 7881 - 7906 [apply~div_spin_eutt~in~H.] 0. secs (0.u,0.s) +Chars 7907 - 7928 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7929 - 7940 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7941 - 7965 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 7966 - 7976 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 7983 - 7992 [symmetry.] 0. secs (0.u,0.s) -Chars 7993 - 8009 [(apply~spin_bind).] 0. secs (0.u,0.s) -Chars 8010 - 8014 [Qed.] 0.006 secs (0.005u,0.s) +Chars 7993 - 8009 [apply~spin_bind.] 0. secs (0.u,0.s) +Chars 8010 - 8014 [Qed.] 0.005 secs (0.005u,0.s) Chars 8016 - 8127 [Definition~iter_arrow_rel~{A~B...] 0. secs (0.u,0.s) Chars 8129 - 8211 [Notation~"x~=[~g~]=>~y"~:=~(it...] 0. secs (0.u,0.s) Chars 8213 - 8360 [Lemma~iter_inl_spin~:~~~forall...] 0. secs (0.u,0.s) Chars 8361 - 8367 [Proof.] 0. secs (0.u,0.s) -Chars 8370 - 8383 [(intros~A~B~g).] 0. secs (0.u,0.s) -Chars 8384 - 8396 [coinduction.] 0.005 secs (0.004u,0.s) -Chars 8397 - 8404 [(intros).] 0. secs (0.u,0.s) -Chars 8405 - 8448 [(red~in~H;~sinv~H;~try~apply~n...] 0.015 secs (0.015u,0.s) -Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.039 secs (0.038u,0.s) -Chars 8485 - 8515 [(unfold~iter_arrow_rel~in~Hrel).] 0. secs (0.u,0.s) -Chars 8516 - 8546 [(apply~eutt_ret_euttge~in~Hrel).] 0. secs (0.u,0.s) -Chars 8549 - 8562 [(rewrite~Hrel).] 0.005 secs (0.005u,0.s) -Chars 8563 - 8582 [(rewrite~bind_ret_l).] 0.014 secs (0.014u,0.s) -Chars 8583 - 8603 [(rewrite~unfold_spin).] 0.015 secs (0.015u,0.s) -Chars 8604 - 8609 [etau.] 0.001 secs (0.001u,0.s) -Chars 8610 - 8614 [Qed.] 0.007 secs (0.007u,0.s) +Chars 8370 - 8383 [intros~A~B~g.] 0. secs (0.u,0.s) +Chars 8384 - 8396 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 8397 - 8404 [intros.] 0. secs (0.u,0.s) +Chars 8405 - 8448 [red~in~H;~sinv~H;~try~apply~no...] 0.01 secs (0.01u,0.s) +Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.031 secs (0.031u,0.s) +Chars 8485 - 8515 [unfold~iter_arrow_rel~in~Hrel.] 0. secs (0.u,0.s) +Chars 8516 - 8546 [apply~eutt_ret_euttge~in~Hrel.] 0. secs (0.u,0.s) +Chars 8549 - 8562 [rewrite~Hrel.] 0.004 secs (0.004u,0.s) +Chars 8563 - 8582 [rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) +Chars 8583 - 8603 [rewrite~unfold_spin.] 0.01 secs (0.01u,0.s) +Chars 8604 - 8609 [etau.] 0. secs (0.u,0.s) +Chars 8610 - 8614 [Qed.] 0.004 secs (0.004u,0.s) Chars 8759 - 8973 [Lemma~iter_wf_converge~:~~~for...] 0. secs (0.u,0.s) Chars 8974 - 8980 [Proof.] 0. secs (0.u,0.s) -Chars 8983 - 9008 [(intros~A~B~g~a~Hwf~Hconv).] 0. secs (0.u,0.s) -Chars 9011 - 9025 [(induction~Hwf).] 0. secs (0.u,0.s) +Chars 8983 - 9008 [intros~A~B~g~a~Hwf~Hconv.] 0. secs (0.u,0.s) +Chars 9011 - 9025 [induction~Hwf.] 0. secs (0.u,0.s) Chars 9028 - 9029 [-] 0. secs (0.u,0.s) Chars 9030 - 9051 [specialize~(Hconv~a).] 0. secs (0.u,0.s) -Chars 9052 - 9088 [(destruct~Hconv~as~[[a'|~b]~Hr...] 0. secs (0.u,0.s) +Chars 9052 - 9088 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) Chars 9093 - 9094 [+] 0. secs (0.u,0.s) Chars 9095 - 9103 [exfalso.] 0. secs (0.u,0.s) -Chars 9104 - 9117 [(apply~(H~a')).] 0. secs (0.u,0.s) +Chars 9104 - 9117 [apply~(H~a').] 0. secs (0.u,0.s) Chars 9118 - 9123 [auto.] 0. secs (0.u,0.s) Chars 9128 - 9129 [+] 0. secs (0.u,0.s) Chars 9130 - 9139 [exists~b.] 0. secs (0.u,0.s) -Chars 9140 - 9160 [(rewrite~unfold_iter).] 0.001 secs (0.001u,0.s) -Chars 9161 - 9174 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) -Chars 9175 - 9194 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 9140 - 9160 [rewrite~unfold_iter.] 0. secs (0.u,0.s) +Chars 9161 - 9174 [rewrite~Hret.] 0.001 secs (0.001u,0.s) +Chars 9175 - 9194 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 9201 - 9213 [reflexivity.] 0. secs (0.u,0.s) Chars 9216 - 9217 [-] 0. secs (0.u,0.s) Chars 9218 - 9239 [specialize~(Hconv~a).] 0. secs (0.u,0.s) -Chars 9240 - 9276 [(destruct~Hconv~as~[[a'|~b]~Hr...] 0. secs (0.u,0.s) +Chars 9240 - 9276 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) Chars 9281 - 9282 [+] 0. secs (0.u,0.s) -Chars 9283 - 9309 [(apply~H0~in~Hret~as~Hret').] 0. secs (0.u,0.s) -Chars 9310 - 9338 [(destruct~Hret'~as~[b~Hret']).] 0. secs (0.u,0.s) +Chars 9283 - 9309 [apply~H0~in~Hret~as~Hret'.] 0. secs (0.u,0.s) +Chars 9310 - 9338 [destruct~Hret'~as~[b~Hret'].] 0. secs (0.u,0.s) Chars 9339 - 9348 [exists~b.] 0. secs (0.u,0.s) -Chars 9355 - 9375 [(rewrite~unfold_iter).] 0.001 secs (0.001u,0.s) -Chars 9376 - 9389 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) -Chars 9390 - 9409 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) -Chars 9410 - 9427 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 9355 - 9375 [rewrite~unfold_iter.] 0. secs (0.u,0.s) +Chars 9376 - 9389 [rewrite~Hret.] 0.001 secs (0.001u,0.s) +Chars 9390 - 9409 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) +Chars 9410 - 9427 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 9428 - 9433 [auto.] 0. secs (0.u,0.s) Chars 9438 - 9439 [+] 0. secs (0.u,0.s) Chars 9440 - 9449 [exists~b.] 0. secs (0.u,0.s) -Chars 9450 - 9470 [(rewrite~unfold_iter).] 0. secs (0.u,0.s) -Chars 9471 - 9484 [(rewrite~Hret).] 0.002 secs (0.002u,0.s) -Chars 9485 - 9504 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 9450 - 9470 [rewrite~unfold_iter.] 0. secs (0.u,0.s) +Chars 9471 - 9484 [rewrite~Hret.] 0.001 secs (0.001u,0.s) +Chars 9485 - 9504 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 9511 - 9523 [reflexivity.] 0. secs (0.u,0.s) -Chars 9524 - 9528 [Qed.] 0.004 secs (0.003u,0.s) -Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0.001 secs (0.u,0.s) +Chars 9524 - 9528 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0. secs (0.u,0.s) Chars 9682 - 9863 [Definition~iter_lift~{A~B~:~Ty...] 0. secs (0.u,0.s) Chars 9865 - 9940 [Notation~"q~-+>~p"~:=~(loop_in...] 0. secs (0.u,0.s) -Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0.001 secs (0.001u,0.s) +Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0. secs (0.u,0.s) Chars 10289 - 10295 [Proof.] 0. secs (0.u,0.s) -Chars 10298 - 10305 [(intros).] 0. secs (0.u,0.s) -Chars 10306 - 10333 [(unfold~loop_invar_imp~in~*).] 0. secs (0.u,0.s) -Chars 10336 - 10365 [(set~(rg~:=~iter_arrow_rel~g)).] 0. secs (0.u,0.s) -Chars 10368 - 10395 [(destruct~(classic_wf~rg~a)).] 0. secs (0.u,0.s) +Chars 10298 - 10305 [intros.] 0. secs (0.u,0.s) +Chars 10306 - 10333 [unfold~loop_invar_imp~in~*.] 0. secs (0.u,0.s) +Chars 10336 - 10365 [set~(rg~:=~iter_arrow_rel~g).] 0. secs (0.u,0.s) +Chars 10368 - 10395 [destruct~(classic_wf~rg~a).] 0. secs (0.u,0.s) Chars 10398 - 10399 [-] 0. secs (0.u,0.s) Chars 10400 - 10405 [left.] 0. secs (0.u,0.s) -Chars 10406 - 10419 [(induction~H2).] 0. secs (0.u,0.s) +Chars 10406 - 10419 [induction~H2.] 0. secs (0.u,0.s) Chars 10424 - 10425 [+] 0. secs (0.u,0.s) -Chars 10426 - 10458 [(unfold~rg,~iter_arrow_rel~in~...] 0. secs (0.u,0.s) -Chars 10459 - 10506 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) +Chars 10426 - 10458 [unfold~rg,~iter_arrow_rel~in~H2.] 0. secs (0.u,0.s) +Chars 10459 - 10506 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) Chars 10513 - 10514 [*] 0. secs (0.u,0.s) Chars 10515 - 10530 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 10531 - 10546 [(apply~H2~in~H3).] 0. secs (0.u,0.s) +Chars 10531 - 10546 [apply~H2~in~H3.] 0. secs (0.u,0.s) Chars 10547 - 10561 [contradiction.] 0. secs (0.u,0.s) Chars 10568 - 10569 [*] 0. secs (0.u,0.s) -Chars 10570 - 10578 [(apply~H).] 0. secs (0.u,0.s) -Chars 10579 - 10583 [(cbn).] 0. secs (0.u,0.s) -Chars 10584 - 10608 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.006 secs (0.006u,0.s) -Chars 10651 - 10665 [(rewrite~<-~H3).] 0.004 secs (0.004u,0.s) -Chars 10674 - 10707 [(repeat~setoid_rewrite~bind_re...] 0.011 secs (0.011u,0.s) +Chars 10570 - 10578 [apply~H.] 0. secs (0.u,0.s) +Chars 10579 - 10583 [cbn.] 0. secs (0.u,0.s) +Chars 10584 - 10608 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.005 secs (0.005u,0.s) +Chars 10651 - 10665 [rewrite~<-~H3.] 0.002 secs (0.002u,0.s) +Chars 10674 - 10707 [repeat~setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) Chars 10708 - 10720 [reflexivity.] 0. secs (0.u,0.s) Chars 10727 - 10728 [*] 0. secs (0.u,0.s) -Chars 10729 - 10755 [(apply~div_spin_eutt~in~H3).] 0. secs (0.u,0.s) -Chars 10756 - 10764 [(apply~H).] 0. secs (0.u,0.s) -Chars 10765 - 10769 [(cbn).] 0. secs (0.u,0.s) -Chars 10778 - 10802 [(eapply~Hq;~try~apply~H0).] 0.001 secs (0.001u,0.s) -Chars 10803 - 10814 [(rewrite~H3).] 0.001 secs (0.001u,0.s) -Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) -Chars 10851 - 10862 [(rewrite~H3).] 0.003 secs (0.003u,0.s) +Chars 10729 - 10755 [apply~div_spin_eutt~in~H3.] 0. secs (0.u,0.s) +Chars 10756 - 10764 [apply~H.] 0. secs (0.u,0.s) +Chars 10765 - 10769 [cbn.] 0. secs (0.u,0.s) +Chars 10778 - 10802 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 10803 - 10814 [rewrite~H3.] 0. secs (0.u,0.s) +Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) +Chars 10851 - 10862 [rewrite~H3.] 0.002 secs (0.002u,0.s) Chars 10871 - 10880 [symmetry.] 0. secs (0.u,0.s) -Chars 10881 - 10909 [setoid_rewrite~~<-~spin_bind.] 0.004 secs (0.004u,0.s) -Chars 10910 - 10926 [(apply~spin_bind).] 0. secs (0.u,0.s) +Chars 10881 - 10909 [setoid_rewrite~~<-~spin_bind.] 0.003 secs (0.003u,0.s) +Chars 10910 - 10926 [apply~spin_bind.] 0. secs (0.u,0.s) Chars 10931 - 10932 [+] 0. secs (0.u,0.s) -Chars 10933 - 10948 [(unfold~rg~in~*).] 0. secs (0.u,0.s) -Chars 10955 - 11002 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) +Chars 10933 - 10948 [unfold~rg~in~*.] 0. secs (0.u,0.s) +Chars 10955 - 11002 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) Chars 11009 - 11010 [*] 0. secs (0.u,0.s) -Chars 11011 - 11021 [(cbn~in~H4).] 0. secs (0.u,0.s) -Chars 11022 - 11071 [(rewrite~unfold_iter,~<-~H4,~b...] 0.007 secs (0.007u,0.s) -Chars 11080 - 11089 [(apply~H3).] 0. secs (0.u,0.s) +Chars 11011 - 11021 [cbn~in~H4.] 0. secs (0.u,0.s) +Chars 11022 - 11071 [rewrite~unfold_iter,~<-~H4,~bi...] 0.005 secs (0.005u,0.s) +Chars 11080 - 11089 [apply~H3.] 0. secs (0.u,0.s) Chars 11098 - 11100 [--] 0. secs (0.u,0.s) -Chars 11101 - 11105 [(red).] 0. secs (0.u,0.s) -Chars 11106 - 11127 [(symmetry;~assumption).] 0. secs (0.u,0.s) +Chars 11101 - 11105 [red.] 0. secs (0.u,0.s) +Chars 11106 - 11127 [symmetry;~assumption.] 0. secs (0.u,0.s) Chars 11136 - 11138 [--] 0. secs (0.u,0.s) -Chars 11139 - 11162 [(unfold~iter_lift~in~H1).] 0. secs (0.u,0.s) +Chars 11139 - 11162 [unfold~iter_lift~in~H1.] 0. secs (0.u,0.s) Chars 11163 - 11188 [specialize~(H1~(g~a)~H0).] 0. secs (0.u,0.s) -Chars 11200 - 11224 [(eapply~Hq;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 11225 - 11229 [(cbn).] 0. secs (0.u,0.s) -Chars 11230 - 11244 [(rewrite~<-~H4).] 0.002 secs (0.002u,0.s) -Chars 11245 - 11271 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 11200 - 11224 [eapply~Hq;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 11225 - 11229 [cbn.] 0. secs (0.u,0.s) +Chars 11230 - 11244 [rewrite~<-~H4.] 0.001 secs (0.001u,0.s) +Chars 11245 - 11271 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 11283 - 11295 [reflexivity.] 0. secs (0.u,0.s) Chars 11302 - 11303 [*] 0. secs (0.u,0.s) -Chars 11304 - 11314 [(cbn~in~H4).] 0. secs (0.u,0.s) -Chars 11315 - 11354 [(rewrite~unfold_iter,~<-~H4,~b...] 0.005 secs (0.005u,0.s) -Chars 11363 - 11371 [(apply~H).] 0. secs (0.u,0.s) -Chars 11372 - 11376 [(cbn).] 0. secs (0.u,0.s) -Chars 11377 - 11396 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) -Chars 11397 - 11414 [(eapply~Hq;~eauto).] 0.001 secs (0.001u,0.s) +Chars 11304 - 11314 [cbn~in~H4.] 0. secs (0.u,0.s) +Chars 11315 - 11354 [rewrite~unfold_iter,~<-~H4,~bi...] 0.004 secs (0.004u,0.s) +Chars 11363 - 11371 [apply~H.] 0. secs (0.u,0.s) +Chars 11372 - 11376 [cbn.] 0. secs (0.u,0.s) +Chars 11377 - 11396 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 11397 - 11414 [eapply~Hq;~eauto.] 0. secs (0.u,0.s) Chars 11421 - 11422 [*] 0. secs (0.u,0.s) -Chars 11423 - 11449 [(apply~div_spin_eutt~in~H4).] 0. secs (0.u,0.s) -Chars 11450 - 11458 [(apply~H).] 0. secs (0.u,0.s) -Chars 11459 - 11463 [(cbn).] 0. secs (0.u,0.s) -Chars 11472 - 11496 [(eapply~Hq;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 11497 - 11508 [(rewrite~H4).] 0. secs (0.u,0.s) -Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) -Chars 11545 - 11556 [(rewrite~H4).] 0.003 secs (0.003u,0.s) -Chars 11557 - 11592 [(repeat~setoid_rewrite~~<-~spi...] 0.009 secs (0.008u,0.s) +Chars 11423 - 11449 [apply~div_spin_eutt~in~H4.] 0. secs (0.u,0.s) +Chars 11450 - 11458 [apply~H.] 0. secs (0.u,0.s) +Chars 11459 - 11463 [cbn.] 0. secs (0.u,0.s) +Chars 11472 - 11496 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 11497 - 11508 [rewrite~H4.] 0. secs (0.u,0.s) +Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) +Chars 11545 - 11556 [rewrite~H4.] 0.002 secs (0.002u,0.s) +Chars 11557 - 11592 [repeat~setoid_rewrite~~<-~spin...] 0.005 secs (0.005u,0.s) Chars 11601 - 11613 [reflexivity.] 0. secs (0.u,0.s) Chars 11616 - 11617 [-] 0. secs (0.u,0.s) -Chars 11618 - 11644 [(apply~iter_inl_spin~in~H2).] 0. secs (0.u,0.s) +Chars 11618 - 11644 [apply~iter_inl_spin~in~H2.] 0. secs (0.u,0.s) Chars 11645 - 11651 [right.] 0. secs (0.u,0.s) -Chars 11652 - 11663 [(rewrite~H2).] 0.001 secs (0.001u,0.s) -Chars 11664 - 11684 [(apply~spin_infinite).] 0. secs (0.u,0.s) -Chars 11685 - 11689 [Qed.] 0.008 secs (0.008u,0.s) +Chars 11652 - 11663 [rewrite~H2.] 0.001 secs (0.001u,0.s) +Chars 11664 - 11684 [apply~spin_infinite.] 0. secs (0.u,0.s) +Chars 11685 - 11689 [Qed.] 0.006 secs (0.006u,0.s) diff --git a/extra/Dijkstra/DijkstraMonad.v.timing b/extra/Dijkstra/DijkstraMonad.v.timing index f1769d6c..452119a0 100644 --- a/extra/Dijkstra/DijkstraMonad.v.timing +++ b/extra/Dijkstra/DijkstraMonad.v.timing @@ -1,5 +1,5 @@ Chars 113 - 162 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) +Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) Chars 229 - 250 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 252 - 281 [Declare~Scope~dijkstra_scope.] 0. secs (0.u,0.s) Chars 282 - 325 [Delimit~Scope~dijkstra_scope~w...] 0. secs (0.u,0.s) @@ -23,7 +23,7 @@ Chars 1221 - 1249 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) Chars 1252 - 1293 [Context~{OrderedMonadW~:~Order...] 0. secs (0.u,0.s) Chars 1296 - 1408 [Class~SpecMonad~:={~~~~~~~~~~~...] 0. secs (0.u,0.s) Chars 1412 - 1461 [Infix~"∈"~:=~In~(~at~level~70)...] 0. secs (0.u,0.s) -Chars 1462 - 1476 [End~SpecMonad.] 0. secs (0.u,0.s) +Chars 1462 - 1476 [End~SpecMonad.] 0.001 secs (0.u,0.s) Chars 1509 - 1564 [Class~EffectObs~(M~W~:~Type~->...] 0. secs (0.u,0.s) Chars 1566 - 1592 [Section~EffectObservation.] 0. secs (0.u,0.s) Chars 1596 - 1625 [Context~(M~W~:~Type~->~Type).] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/ITreeDijkstra.v.timing b/extra/Dijkstra/ITreeDijkstra.v.timing index 1978bd4b..46c65c0a 100644 --- a/extra/Dijkstra/ITreeDijkstra.v.timing +++ b/extra/Dijkstra/ITreeDijkstra.v.timing @@ -1,8 +1,8 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.234 secs (0.2u,0.032s) -Chars 242 - 361 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) +Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.157 secs (0.139u,0.017s) +Chars 242 - 361 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.011u,0.002s) Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 401 - 433 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -11,96 +11,96 @@ Chars 473 - 495 [Section~ITreeDijkstra.] 0. secs (0.u,0.s) Chars 499 - 526 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 530 - 602 [Definition~ITDInput~(A~:~Type)...] 0. secs (0.u,0.s) Chars 606 - 760 [Definition~ITreeSpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 764 - 848 [#[program]~Definition~ret_itre...] 0.003 secs (0.002u,0.s) +Chars 764 - 848 [#[program]~Definition~ret_itre...] 0.002 secs (0.001u,0.s) Chars 852 - 940 [Instance~proper_itree_spec~~{R...] 0. secs (0.u,0.s) Chars 943 - 949 [Proof.] 0. secs (0.u,0.s) -Chars 954 - 967 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 968 - 989 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 990 - 996 [(simpl).] 0. secs (0.u,0.s) -Chars 997 - 1029 [(split;~intros;~eapply~Hp;~eau...] 0.002 secs (0.001u,0.s) -Chars 1034 - 1051 [now~rewrite~<-~H.] 0.003 secs (0.002u,0.s) -Chars 1054 - 1058 [Qed.] 0.035 secs (0.031u,0.003s) -Chars 1062 - 1271 [#[program]~Definition~bind_ex~...] 0.003 secs (0.003u,0.s) -Chars 1274 - 1290 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 954 - 967 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 968 - 989 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 990 - 996 [simpl.] 0. secs (0.u,0.s) +Chars 997 - 1029 [split;~intros;~eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) +Chars 1034 - 1051 [now~rewrite~<-~H.] 0.026 secs (0.024u,0.001s) +Chars 1054 - 1058 [Qed.] 0. secs (0.u,0.s) +Chars 1062 - 1271 [#[program]~Definition~bind_ex~...] 0.002 secs (0.002u,0.s) +Chars 1274 - 1290 [Next~Obligation.] 0. secs (0.u,0.s) Chars 1293 - 1299 [Proof.] 0. secs (0.u,0.s) -Chars 1304 - 1315 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1316 - 1343 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 1304 - 1315 [repeat~red.] 0. secs (0.u,0.s) +Chars 1316 - 1343 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) Chars 1348 - 1349 [-] 0. secs (0.u,0.s) Chars 1350 - 1355 [left.] 0. secs (0.u,0.s) Chars 1356 - 1365 [exists~a.] 0. secs (0.u,0.s) -Chars 1366 - 1382 [(rewrite~H~in~H0).] 0.005 secs (0.004u,0.s) +Chars 1366 - 1382 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) Chars 1383 - 1388 [auto.] 0. secs (0.u,0.s) Chars 1393 - 1394 [-] 0. secs (0.u,0.s) Chars 1395 - 1401 [right.] 0. secs (0.u,0.s) -Chars 1402 - 1420 [(rewrite~<-~H~~at~1).] 0.002 secs (0.002u,0.s) -Chars 1421 - 1433 [(split;~auto).] 0. secs (0.u,0.s) -Chars 1440 - 1473 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) +Chars 1402 - 1420 [rewrite~<-~H~~at~1.] 0.001 secs (0.001u,0.s) +Chars 1421 - 1433 [split;~auto.] 0. secs (0.u,0.s) +Chars 1440 - 1473 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) Chars 1480 - 1521 [specialize~(all_infinite_euttN...] 0. secs (0.u,0.s) -Chars 1528 - 1535 [(intros).] 0. secs (0.u,0.s) +Chars 1528 - 1535 [intros.] 0. secs (0.u,0.s) Chars 1542 - 1580 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 1587 - 1603 [(rewrite~H~in~H0).] 0.001 secs (0.001u,0.s) +Chars 1587 - 1603 [rewrite~H~in~H0.] 0. secs (0.u,0.s) Chars 1604 - 1642 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 1649 - 1659 [(eapply~Hp).] 0. secs (0.u,0.s) +Chars 1649 - 1659 [eapply~Hp.] 0. secs (0.u,0.s) Chars 1667 - 1677 [clear~Ht2.] 0. secs (0.u,0.s) Chars 1685 - 1699 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 1707 - 1730 [(eapply~noret_cast_cast).] 0. secs (0.u,0.s) -Chars 1731 - 1742 [all:~eauto.] 0.002 secs (0.002u,0.s) +Chars 1707 - 1730 [eapply~noret_cast_cast.] 0. secs (0.u,0.s) +Chars 1731 - 1742 [all:~eauto.] 0.001 secs (0.001u,0.s) Chars 1747 - 1748 [-] 0. secs (0.u,0.s) Chars 1749 - 1754 [left.] 0. secs (0.u,0.s) Chars 1755 - 1764 [exists~a.] 0. secs (0.u,0.s) -Chars 1765 - 1777 [(split;~auto).] 0. secs (0.u,0.s) -Chars 1778 - 1788 [(rewrite~H).] 0.004 secs (0.004u,0.s) +Chars 1765 - 1777 [split;~auto.] 0. secs (0.u,0.s) +Chars 1778 - 1788 [rewrite~H.] 0.046 secs (0.045u,0.s) Chars 1789 - 1794 [auto.] 0. secs (0.u,0.s) -Chars 1799 - 1800 [-] 0.052 secs (0.051u,0.s) +Chars 1799 - 1800 [-] 0. secs (0.u,0.s) Chars 1801 - 1807 [right.] 0. secs (0.u,0.s) -Chars 1808 - 1823 [(rewrite~H~~at~1).] 0.002 secs (0.002u,0.s) -Chars 1824 - 1836 [(split;~auto).] 0. secs (0.u,0.s) -Chars 1843 - 1876 [(destruct~p~as~[p~Hp];~simpl~i...] 0. secs (0.u,0.s) -Chars 1883 - 1893 [(eapply~Hp).] 0. secs (0.u,0.s) +Chars 1808 - 1823 [rewrite~H~~at~1.] 0.001 secs (0.001u,0.s) +Chars 1824 - 1836 [split;~auto.] 0. secs (0.u,0.s) +Chars 1843 - 1876 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) +Chars 1883 - 1893 [eapply~Hp.] 0. secs (0.u,0.s) Chars 1901 - 1915 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 1923 - 1932 [symmetry.] 0. secs (0.u,0.s) -Chars 1940 - 1970 [(eapply~noret_cast_cast;~eauto).] 0. secs (0.u,0.s) +Chars 1940 - 1970 [eapply~noret_cast_cast;~eauto.] 0. secs (0.u,0.s) Chars 1977 - 1982 [auto.] 0. secs (0.u,0.s) -Chars 1986 - 1990 [Qed.] 0.007 secs (0.007u,0.s) -Chars 1993 - 2009 [Next~Obligation.] 0.002 secs (0.002u,0.s) +Chars 1986 - 1990 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1993 - 2009 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 2012 - 2018 [Proof.] 0. secs (0.u,0.s) -Chars 2023 - 2044 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 2045 - 2056 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2058 - 2082 [(eapply~Hw;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 2087 - 2094 [(intros).] 0. secs (0.u,0.s) -Chars 2095 - 2106 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2111 - 2132 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 2133 - 2157 [(destruct~p'~as~[p'~Hp']).] 0. secs (0.u,0.s) -Chars 2158 - 2169 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 2023 - 2044 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 2045 - 2056 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2058 - 2082 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 2087 - 2094 [intros.] 0. secs (0.u,0.s) +Chars 2095 - 2106 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2111 - 2132 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 2133 - 2157 [destruct~p'~as~[p'~Hp'].] 0. secs (0.u,0.s) +Chars 2158 - 2169 [simpl~in~*.] 0. secs (0.u,0.s) Chars 2174 - 2186 [basic_solve.] 0. secs (0.u,0.s) Chars 2191 - 2192 [-] 0. secs (0.u,0.s) Chars 2193 - 2198 [left.] 0. secs (0.u,0.s) Chars 2199 - 2208 [exists~a.] 0. secs (0.u,0.s) -Chars 2209 - 2221 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2222 - 2249 [(destruct~(g~a)~as~[ga~Hga]).] 0. secs (0.u,0.s) -Chars 2250 - 2261 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 2268 - 2293 [(eapply~Hga;~try~apply~H2).] 0. secs (0.u,0.s) -Chars 2300 - 2306 [(simpl).] 0. secs (0.u,0.s) +Chars 2209 - 2221 [split;~auto.] 0. secs (0.u,0.s) +Chars 2222 - 2249 [destruct~(g~a)~as~[ga~Hga].] 0. secs (0.u,0.s) +Chars 2250 - 2261 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 2268 - 2293 [eapply~Hga;~try~apply~H2.] 0. secs (0.u,0.s) +Chars 2300 - 2306 [simpl.] 0. secs (0.u,0.s) Chars 2307 - 2312 [auto.] 0. secs (0.u,0.s) Chars 2317 - 2318 [-] 0. secs (0.u,0.s) Chars 2319 - 2325 [right.] 0. secs (0.u,0.s) -Chars 2326 - 2338 [(split;~auto).] 0. secs (0.u,0.s) -Chars 2341 - 2345 [Qed.] 0.006 secs (0.006u,0.s) -Chars 2349 - 2440 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0.001 secs (0.001u,0.s) +Chars 2326 - 2338 [split;~auto.] 0. secs (0.u,0.s) +Chars 2341 - 2345 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2349 - 2440 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0. secs (0.u,0.s) Chars 2444 - 2509 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) -Chars 2523 - 2564 [(constructor;~red;~intros;~red...] 0.004 secs (0.004u,0.s) +Chars 2523 - 2564 [constructor;~red;~intros;~red;...] 0.002 secs (0.002u,0.s) Chars 2569 - 2570 [-] 0. secs (0.u,0.s) -Chars 2571 - 2580 [(red~in~H).] 0. secs (0.u,0.s) -Chars 2581 - 2588 [(intros).] 0. secs (0.u,0.s) -Chars 2589 - 2599 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 2571 - 2580 [red~in~H.] 0. secs (0.u,0.s) +Chars 2581 - 2588 [intros.] 0. secs (0.u,0.s) +Chars 2589 - 2599 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 2600 - 2612 [reflexivity.] 0. secs (0.u,0.s) Chars 2617 - 2618 [-] 0. secs (0.u,0.s) -Chars 2619 - 2626 [(intros).] 0. secs (0.u,0.s) -Chars 2627 - 2636 [(red~in~H).] 0. secs (0.u,0.s) -Chars 2637 - 2647 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 2648 - 2658 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 2659 - 2670 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 2619 - 2626 [intros.] 0. secs (0.u,0.s) +Chars 2627 - 2636 [red~in~H.] 0. secs (0.u,0.s) +Chars 2637 - 2647 [red~in~H0.] 0. secs (0.u,0.s) +Chars 2648 - 2658 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 2659 - 2670 [rewrite~H0.] 0.001 secs (0.001u,0.s) Chars 2677 - 2689 [reflexivity.] 0. secs (0.u,0.s) Chars 2692 - 2696 [Qed.] 0.001 secs (0.001u,0.s) Chars 2700 - 2804 [Instance~ItreeSpecMonad~:~(Mon...] 0. secs (0.u,0.s) @@ -117,9 +117,9 @@ Chars 6437 - 6554 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 6558 - 6616 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) Chars 6620 - 6626 [Proof.] 0. secs (0.u,0.s) Chars 6632 - 6640 [intros~!.] 0. secs (0.u,0.s) -Chars 6646 - 6653 [(inv~H0).] 0.001 secs (0.u,0.s) -Chars 6654 - 6658 [(red).] 0. secs (0.u,0.s) -Chars 6659 - 6673 [(rewrite~<-~H1).] 0. secs (0.u,0.s) +Chars 6646 - 6653 [inv~H0.] 0. secs (0.u,0.s) +Chars 6654 - 6658 [red.] 0. secs (0.u,0.s) +Chars 6659 - 6673 [rewrite~<-~H1.] 0. secs (0.u,0.s) Chars 6674 - 6687 [econstructor.] 0. secs (0.u,0.s) Chars 6692 - 6704 [now~apply~H.] 0. secs (0.u,0.s) Chars 6709 - 6713 [Qed.] 0. secs (0.u,0.s) @@ -133,172 +133,172 @@ Chars 7425 - 7589 [Definition~bisim_~{A~:~Type}~(...] 0. secs (0.u,0.s) Chars 7593 - 7649 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) Chars 7653 - 7659 [Proof.] 0. secs (0.u,0.s) Chars 7665 - 7673 [intros~!.] 0. secs (0.u,0.s) -Chars 7674 - 7678 [(red).] 0. secs (0.u,0.s) -Chars 7679 - 7686 [(inv~H0).] 0.005 secs (0.005u,0.s) +Chars 7674 - 7678 [red.] 0. secs (0.u,0.s) +Chars 7679 - 7686 [inv~H0.] 0.004 secs (0.004u,0.s) Chars 7692 - 7693 [-] 0. secs (0.u,0.s) Chars 7694 - 7706 [constructor.] 0. secs (0.u,0.s) Chars 7712 - 7713 [-] 0. secs (0.u,0.s) Chars 7714 - 7726 [constructor.] 0. secs (0.u,0.s) Chars 7727 - 7739 [now~apply~H.] 0. secs (0.u,0.s) -Chars 7743 - 7747 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7754 - 7868 [Definition~bisim_mon~{A}~:~mon...] 0. secs (0.u,0.s) +Chars 7743 - 7747 [Qed.] 0. secs (0.u,0.s) +Chars 7754 - 7868 [Definition~bisim_mon~{A}~:~mon...] 0.001 secs (0.001u,0.s) Chars 7873 - 7923 [Definition~bisim~{A~:~Type}~:=...] 0. secs (0.u,0.s) Chars 7927 - 7977 [Instance~bisim_equiv~~{A}:~(Eq...] 0. secs (0.u,0.s) Chars 7980 - 7986 [Proof.] 0. secs (0.u,0.s) -Chars 7991 - 8008 [(constructor;~red).] 0. secs (0.u,0.s) +Chars 7991 - 8008 [constructor;~red.] 0. secs (0.u,0.s) Chars 8013 - 8014 [-] 0. secs (0.u,0.s) Chars 8015 - 8033 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8034 - 8041 [(intros).] 0. secs (0.u,0.s) -Chars 8042 - 8051 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8052 - 8097 [(destruct~(observe_stream~x);~...] 0.003 secs (0.003u,0.s) +Chars 8034 - 8041 [intros.] 0. secs (0.u,0.s) +Chars 8042 - 8051 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8052 - 8097 [destruct~(observe_stream~x);~a...] 0. secs (0.u,0.s) Chars 8102 - 8103 [-] 0. secs (0.u,0.s) Chars 8104 - 8122 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8123 - 8130 [(intros).] 0. secs (0.u,0.s) -Chars 8137 - 8146 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8153 - 8187 [(red~in~H;~sinv~H;~auto~with~i...] 0.011 secs (0.011u,0.s) +Chars 8123 - 8130 [intros.] 0. secs (0.u,0.s) +Chars 8137 - 8146 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8153 - 8187 [red~in~H;~sinv~H;~auto~with~it...] 0.008 secs (0.007u,0.s) Chars 8192 - 8193 [-] 0. secs (0.u,0.s) -Chars 8194 - 8212 [(unfold~bisim~at~3).] 0. secs (0.u,0.s) +Chars 8194 - 8212 [unfold~bisim~at~3.] 0. secs (0.u,0.s) Chars 8213 - 8231 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8232 - 8239 [(intros).] 0. secs (0.u,0.s) -Chars 8240 - 8249 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8256 - 8310 [(red~in~H;~sinv~H;~red~in~H0;~...] 0.042 secs (0.042u,0.s) +Chars 8232 - 8239 [intros.] 0. secs (0.u,0.s) +Chars 8240 - 8249 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8256 - 8310 [red~in~H;~sinv~H;~red~in~H0;~s...] 0.028 secs (0.027u,0.s) Chars 8317 - 8318 [+] 0. secs (0.u,0.s) -Chars 8319 - 8338 [(rewrite~<-~H~in~H3).] 0. secs (0.u,0.s) +Chars 8319 - 8338 [rewrite~<-~H~in~H3.] 0. secs (0.u,0.s) Chars 8339 - 8352 [discriminate.] 0. secs (0.u,0.s) Chars 8359 - 8360 [+] 0. secs (0.u,0.s) -Chars 8361 - 8381 [(rewrite~<-~H2~in~H4).] 0. secs (0.u,0.s) +Chars 8361 - 8381 [rewrite~<-~H2~in~H4.] 0. secs (0.u,0.s) Chars 8382 - 8395 [discriminate.] 0. secs (0.u,0.s) Chars 8402 - 8403 [+] 0. secs (0.u,0.s) -Chars 8404 - 8423 [(rewrite~<-~H2~in~H).] 0. secs (0.u,0.s) -Chars 8424 - 8451 [(injection~H;~intros;~subst).] 0. secs (0.u,0.s) +Chars 8404 - 8423 [rewrite~<-~H2~in~H.] 0. secs (0.u,0.s) +Chars 8424 - 8451 [injection~H;~intros;~subst.] 0. secs (0.u,0.s) Chars 8460 - 8472 [constructor.] 0. secs (0.u,0.s) Chars 8473 - 8479 [eauto.] 0. secs (0.u,0.s) -Chars 8483 - 8487 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8483 - 8487 [Qed.] 0.006 secs (0.005u,0.s) Chars 8592 - 8666 [Instance~proper_bisim_app~~{A}...] 0. secs (0.u,0.s) Chars 8669 - 8675 [Proof.] 0. secs (0.u,0.s) Chars 8681 - 8699 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8700 - 8727 [(intros~s1~s2~H12~s3~s4~H34).] 0. secs (0.u,0.s) -Chars 8733 - 8742 [(cbn;~red).] 0. secs (0.u,0.s) -Chars 8743 - 8754 [(unfold~app).] 0. secs (0.u,0.s) -Chars 8755 - 8764 [(sinv~H12).] 0.011 secs (0.011u,0.s) +Chars 8700 - 8727 [intros~s1~s2~H12~s3~s4~H34.] 0. secs (0.u,0.s) +Chars 8733 - 8742 [cbn;~red.] 0. secs (0.u,0.s) +Chars 8743 - 8754 [unfold~app.] 0. secs (0.u,0.s) +Chars 8755 - 8764 [sinv~H12.] 0.008 secs (0.008u,0.s) Chars 8769 - 8770 [-] 0. secs (0.u,0.s) -Chars 8771 - 8777 [(simpl).] 0. secs (0.u,0.s) -Chars 8778 - 8790 [(destruct~s3).] 0. secs (0.u,0.s) -Chars 8791 - 8803 [(destruct~s4).] 0. secs (0.u,0.s) -Chars 8804 - 8849 [(sinv~H34;~simpl~in~*;~subst;~...] 0.016 secs (0.016u,0.s) +Chars 8771 - 8777 [simpl.] 0. secs (0.u,0.s) +Chars 8778 - 8790 [destruct~s3.] 0. secs (0.u,0.s) +Chars 8791 - 8803 [destruct~s4.] 0. secs (0.u,0.s) +Chars 8804 - 8849 [sinv~H34;~simpl~in~*;~subst;~a...] 0.01 secs (0.01u,0.s) Chars 8856 - 8868 [constructor.] 0. secs (0.u,0.s) Chars 8869 - 8883 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 8889 - 8890 [-] 0. secs (0.u,0.s) -Chars 8891 - 8895 [(cbn).] 0. secs (0.u,0.s) +Chars 8891 - 8895 [cbn.] 0. secs (0.u,0.s) Chars 8896 - 8908 [constructor.] 0. secs (0.u,0.s) -Chars 8909 - 8925 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 8928 - 8932 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8909 - 8925 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 8928 - 8932 [Qed.] 0.003 secs (0.003u,0.s) Chars 8936 - 8987 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) Chars 8993 - 9070 [Instance~proper_bisim_inf_imp~...] 0. secs (0.u,0.s) Chars 9073 - 9079 [Proof.] 0. secs (0.u,0.s) Chars 9084 - 9102 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9107 - 9126 [(intros~s1~s2~H12~H).] 0. secs (0.u,0.s) +Chars 9107 - 9126 [intros~s1~s2~H12~H.] 0. secs (0.u,0.s) Chars 9127 - 9132 [icbn.] 0. secs (0.u,0.s) Chars 9133 - 9143 [step~in~H.] 0. secs (0.u,0.s) Chars 9149 - 9161 [step~in~H12.] 0. secs (0.u,0.s) -Chars 9162 - 9170 [(inv~H12).] 0.005 secs (0.005u,0.s) +Chars 9162 - 9170 [inv~H12.] 0.003 secs (0.003u,0.s) Chars 9176 - 9177 [-] 0. secs (0.u,0.s) -Chars 9178 - 9197 [(rewrite~<-~H1~in~H).] 0. secs (0.u,0.s) -Chars 9198 - 9204 [(inv~H).] 0. secs (0.u,0.s) +Chars 9178 - 9197 [rewrite~<-~H1~in~H.] 0. secs (0.u,0.s) +Chars 9198 - 9204 [inv~H.] 0. secs (0.u,0.s) Chars 9209 - 9210 [-] 0. secs (0.u,0.s) -Chars 9211 - 9230 [(inversion~H;~subst).] 0. secs (0.u,0.s) +Chars 9211 - 9230 [inversion~H;~subst.] 0. secs (0.u,0.s) Chars 9238 - 9250 [constructor.] 0. secs (0.u,0.s) -Chars 9251 - 9269 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 9276 - 9296 [(rewrite~<-~H3~in~H0).] 0. secs (0.u,0.s) -Chars 9297 - 9304 [(inv~H0).] 0. secs (0.u,0.s) -Chars 9307 - 9311 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9251 - 9269 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 9276 - 9296 [rewrite~<-~H3~in~H0.] 0. secs (0.u,0.s) +Chars 9297 - 9304 [inv~H0.] 0. secs (0.u,0.s) +Chars 9307 - 9311 [Qed.] 0.002 secs (0.002u,0.s) Chars 9315 - 9382 [Instance~proper_bisim_inf~~{A}...] 0. secs (0.u,0.s) Chars 9385 - 9391 [Proof.] 0. secs (0.u,0.s) -Chars 9396 - 9440 [(split;~try~apply~proper_bisim...] 0. secs (0.u,0.s) -Chars 9445 - 9463 [(apply~bisim_equiv).] 0. secs (0.u,0.s) +Chars 9396 - 9440 [split;~try~apply~proper_bisim_...] 0. secs (0.u,0.s) +Chars 9445 - 9463 [apply~bisim_equiv.] 0. secs (0.u,0.s) Chars 9464 - 9469 [auto.] 0. secs (0.u,0.s) Chars 9472 - 9476 [Qed.] 0. secs (0.u,0.s) Chars 9480 - 9568 [Lemma~app_inf~:~~~forall~(A~:~...] 0. secs (0.u,0.s) Chars 9571 - 9577 [Proof.] 0. secs (0.u,0.s) -Chars 9582 - 9591 [(intros~A).] 0. secs (0.u,0.s) +Chars 9582 - 9591 [intros~A.] 0. secs (0.u,0.s) Chars 9592 - 9610 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9611 - 9629 [(intros~s1~s2~Hinf).] 0. secs (0.u,0.s) +Chars 9611 - 9629 [intros~s1~s2~Hinf.] 0. secs (0.u,0.s) Chars 9630 - 9635 [icbn.] 0. secs (0.u,0.s) -Chars 9636 - 9647 [(unfold~app).] 0. secs (0.u,0.s) -Chars 9652 - 9662 [(sinv~Hinf).] 0.004 secs (0.004u,0.s) -Chars 9667 - 9671 [(cbn).] 0. secs (0.u,0.s) +Chars 9636 - 9647 [unfold~app.] 0. secs (0.u,0.s) +Chars 9652 - 9662 [sinv~Hinf.] 0.003 secs (0.003u,0.s) +Chars 9667 - 9671 [cbn.] 0. secs (0.u,0.s) Chars 9672 - 9684 [constructor.] 0. secs (0.u,0.s) -Chars 9685 - 9701 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 9685 - 9701 [apply~CIH;~auto.] 0. secs (0.u,0.s) Chars 9704 - 9708 [Qed.] 0.001 secs (0.001u,0.s) Chars 9712 - 9939 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) Chars 9943 - 9984 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) Chars 9988 - 10137 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) Chars 10141 - 10235 [Lemma~forall_stream_mono~(A~:~...] 0. secs (0.u,0.s) Chars 10238 - 10244 [Proof.] 0. secs (0.u,0.s) -Chars 10249 - 10260 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10261 - 10268 [(intros).] 0. secs (0.u,0.s) -Chars 10269 - 10279 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 10280 - 10309 [(destruct~H0;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 10314 - 10332 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 10249 - 10260 [repeat~red.] 0. secs (0.u,0.s) +Chars 10261 - 10268 [intros.] 0. secs (0.u,0.s) +Chars 10269 - 10279 [red~in~H0.] 0. secs (0.u,0.s) +Chars 10280 - 10309 [destruct~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 10314 - 10332 [constructor;~auto.] 0. secs (0.u,0.s) Chars 10333 - 10345 [now~apply~H.] 0. secs (0.u,0.s) Chars 10349 - 10353 [Qed.] 0. secs (0.u,0.s) Chars 10357 - 10428 [Definition~forall_stream_mon~A...] 0. secs (0.u,0.s) Chars 10433 - 10516 [Definition~forall_stream~{A~:~...] 0. secs (0.u,0.s) -Chars 10520 - 10803 [Inductive~inf_manyF~{A~:~Type}...] 0.001 secs (0.001u,0.s) +Chars 10520 - 10803 [Inductive~inf_manyF~{A~:~Type}...] 0. secs (0.u,0.s) Chars 10807 - 10843 [Hint~Constructors~inf_manyF:~i...] 0. secs (0.u,0.s) Chars 10847 - 10986 [Definition~inf_many_~{A~:~Type...] 0. secs (0.u,0.s) Chars 10990 - 11074 [Lemma~inf_many_mono~(A~:~Type)...] 0. secs (0.u,0.s) Chars 11077 - 11083 [Proof.] 0. secs (0.u,0.s) -Chars 11088 - 11099 [(repeat~red).] 0. secs (0.u,0.s) -Chars 11100 - 11107 [(intros).] 0. secs (0.u,0.s) -Chars 11108 - 11118 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 11119 - 11149 [(induction~H0;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 11154 - 11177 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) +Chars 11088 - 11099 [repeat~red.] 0. secs (0.u,0.s) +Chars 11100 - 11107 [intros.] 0. secs (0.u,0.s) +Chars 11108 - 11118 [red~in~H0.] 0. secs (0.u,0.s) +Chars 11119 - 11149 [induction~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 11154 - 11177 [apply~cons_found;~auto.] 0. secs (0.u,0.s) Chars 11178 - 11190 [now~apply~H.] 0. secs (0.u,0.s) Chars 11194 - 11198 [Qed.] 0. secs (0.u,0.s) Chars 11202 - 11263 [Definition~inf_many_mon~A~P~:=...] 0. secs (0.u,0.s) Chars 11268 - 11341 [Definition~inf_many~{A~:~Type}...] 0. secs (0.u,0.s) Chars 11345 - 11447 [Lemma~inf_many_inf~:~~~forall~...] 0. secs (0.u,0.s) Chars 11450 - 11456 [Proof.] 0. secs (0.u,0.s) -Chars 11461 - 11472 [(intros~A~P).] 0. secs (0.u,0.s) +Chars 11461 - 11472 [intros~A~P.] 0. secs (0.u,0.s) Chars 11473 - 11491 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11492 - 11505 [(intros~s~Him).] 0. secs (0.u,0.s) +Chars 11492 - 11505 [intros~s~Him.] 0. secs (0.u,0.s) Chars 11510 - 11522 [step~in~Him.] 0. secs (0.u,0.s) Chars 11523 - 11528 [icbn.] 0. secs (0.u,0.s) -Chars 11534 - 11565 [(induction~Him;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 11534 - 11565 [induction~Him;~auto~with~itree.] 0. secs (0.u,0.s) Chars 11570 - 11582 [constructor.] 0. secs (0.u,0.s) -Chars 11583 - 11593 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 11583 - 11593 [apply~CIH.] 0. secs (0.u,0.s) Chars 11594 - 11603 [now~step.] 0. secs (0.u,0.s) -Chars 11607 - 11611 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11607 - 11611 [Qed.] 0. secs (0.u,0.s) Chars 11615 - 11740 [Lemma~inf_and_forall~:~~~foral...] 0. secs (0.u,0.s) Chars 11743 - 11749 [Proof.] 0. secs (0.u,0.s) -Chars 11754 - 11765 [(intros~A~P).] 0. secs (0.u,0.s) +Chars 11754 - 11765 [intros~A~P.] 0. secs (0.u,0.s) Chars 11766 - 11784 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11785 - 11807 [(intros~s~Hinf~Hforall).] 0. secs (0.u,0.s) +Chars 11785 - 11807 [intros~s~Hinf~Hforall.] 0. secs (0.u,0.s) Chars 11812 - 11817 [icbn.] 0. secs (0.u,0.s) Chars 11818 - 11831 [step~in~Hinf.] 0. secs (0.u,0.s) Chars 11832 - 11848 [step~in~Hforall.] 0. secs (0.u,0.s) -Chars 11853 - 11862 [(inv~Hinf).] 0.002 secs (0.002u,0.s) -Chars 11867 - 11879 [(inv~Hforall).] 0.004 secs (0.004u,0.s) +Chars 11853 - 11862 [inv~Hinf.] 0.001 secs (0.001u,0.s) +Chars 11867 - 11879 [inv~Hforall.] 0.002 secs (0.002u,0.s) Chars 11884 - 11885 [-] 0. secs (0.u,0.s) -Chars 11886 - 11905 [(rewrite~<-~H~in~H2).] 0. secs (0.u,0.s) +Chars 11886 - 11905 [rewrite~<-~H~in~H2.] 0. secs (0.u,0.s) Chars 11906 - 11919 [discriminate.] 0. secs (0.u,0.s) Chars 11924 - 11925 [-] 0. secs (0.u,0.s) -Chars 11926 - 11945 [(rewrite~<-~H~in~H1).] 0. secs (0.u,0.s) -Chars 11946 - 11953 [(inv~H1).] 0.002 secs (0.002u,0.s) -Chars 11960 - 11983 [(apply~cons_found;~auto).] 0. secs (0.u,0.s) -Chars 11986 - 11990 [Qed.] 0.003 secs (0.003u,0.s) +Chars 11926 - 11945 [rewrite~<-~H~in~H1.] 0. secs (0.u,0.s) +Chars 11946 - 11953 [inv~H1.] 0.001 secs (0.001u,0.s) +Chars 11960 - 11983 [apply~cons_found;~auto.] 0.001 secs (0.001u,0.s) +Chars 11986 - 11990 [Qed.] 0.002 secs (0.002u,0.s) Chars 12101 - 12188 [Definition~rel_eventless~{E1}~...] 0. secs (0.u,0.s) -Chars 12191 - 12850 [Inductive~eqitEF~{E1~E2~:~Type...] 0.005 secs (0.004u,0.s) +Chars 12191 - 12850 [Inductive~eqitEF~{E1~E2~:~Type...] 0.002 secs (0.002u,0.s) Chars 12854 - 12887 [Hint~Constructors~eqitEF:~itree.] 0. secs (0.u,0.s) Chars 12891 - 13125 [Definition~eqitE_~(E1~E2~:~Typ...] 0. secs (0.u,0.s) Chars 13129 - 13212 [Lemma~eqitE_mono~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) Chars 13217 - 13223 [Proof.] 0. secs (0.u,0.s) -Chars 13230 - 13241 [(repeat~red).] 0. secs (0.u,0.s) -Chars 13242 - 13249 [(intros).] 0. secs (0.u,0.s) +Chars 13230 - 13241 [repeat~red.] 0. secs (0.u,0.s) +Chars 13242 - 13249 [intros.] 0. secs (0.u,0.s) Chars 13250 - 13267 [rename~x~into~t1.] 0. secs (0.u,0.s) Chars 13268 - 13285 [rename~y~into~t2.] 0. secs (0.u,0.s) -Chars 13292 - 13323 [(induction~H0;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 13292 - 13323 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 13330 - 13342 [constructor.] 0. secs (0.u,0.s) Chars 13343 - 13355 [now~apply~H.] 0. secs (0.u,0.s) Chars 13361 - 13365 [Qed.] 0.001 secs (0.001u,0.s) @@ -311,179 +311,179 @@ Chars 13868 - 14005 [Definition~eventless_~{E~:~Typ...] 0. secs (0.u,0.s) Chars 14009 - 14040 [Hint~Unfold~eventless_:~itree.] 0. secs (0.u,0.s) Chars 14046 - 14116 [Lemma~eventless_mono~{E1}~{R}~...] 0. secs (0.u,0.s) Chars 14119 - 14125 [Proof.] 0. secs (0.u,0.s) -Chars 14130 - 14141 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14142 - 14149 [(intros).] 0. secs (0.u,0.s) -Chars 14150 - 14160 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 14161 - 14191 [(inversion~H0;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 14130 - 14141 [repeat~red.] 0. secs (0.u,0.s) +Chars 14142 - 14149 [intros.] 0. secs (0.u,0.s) +Chars 14150 - 14160 [red~in~H0.] 0. secs (0.u,0.s) +Chars 14161 - 14191 [inversion~H0;~auto~with~itree.] 0. secs (0.u,0.s) Chars 14196 - 14208 [constructor.] 0. secs (0.u,0.s) Chars 14209 - 14221 [now~apply~H.] 0. secs (0.u,0.s) -Chars 14226 - 14230 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14226 - 14230 [Qed.] 0. secs (0.u,0.s) Chars 14234 - 14302 [Definition~eventless_mon~{E1}~...] 0. secs (0.u,0.s) Chars 14306 - 14409 [Definition~eventless~{E~:~Type...] 0. secs (0.u,0.s) Chars 14413 - 14504 [Instance~proper_eventless_imp~...] 0. secs (0.u,0.s) Chars 14507 - 14513 [Proof.] 0. secs (0.u,0.s) -Chars 14518 - 14529 [(repeat~red).] 0. secs (0.u,0.s) +Chars 14518 - 14529 [repeat~red.] 0. secs (0.u,0.s) Chars 14530 - 14548 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 14553 - 14576 [(intros~t1~t2~Heutt~Hev).] 0. secs (0.u,0.s) +Chars 14553 - 14576 [intros~t1~t2~Heutt~Hev.] 0. secs (0.u,0.s) Chars 14581 - 14595 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 14596 - 14601 [icbn.] 0. secs (0.u,0.s) -Chars 14606 - 14627 [(pose~proof~Hev~as~Hev').] 0. secs (0.u,0.s) +Chars 14606 - 14627 [pose~proof~Hev~as~Hev'.] 0. secs (0.u,0.s) Chars 14628 - 14640 [step~in~Hev.] 0. secs (0.u,0.s) -Chars 14645 - 14695 [(dependent~induction~Heutt;~su...] 0.024 secs (0.023u,0.s) +Chars 14645 - 14695 [dependent~induction~Heutt;~sub...] 0.017 secs (0.017u,0.s) Chars 14700 - 14701 [-] 0. secs (0.u,0.s) Chars 14702 - 14710 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14711 - 14727 [auto~with~itree.] 0. secs (0.u,0.s) Chars 14732 - 14733 [-] 0. secs (0.u,0.s) -Chars 14734 - 14742 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 14734 - 14742 [simpobs.] 0.001 secs (0.001u,0.s) Chars 14743 - 14755 [constructor.] 0. secs (0.u,0.s) -Chars 14756 - 14774 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 14781 - 14789 [(inv~Hev).] 0. secs (0.u,0.s) +Chars 14756 - 14774 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 14781 - 14789 [inv~Hev.] 0.002 secs (0.002u,0.s) Chars 14795 - 14796 [-] 0. secs (0.u,0.s) -Chars 14797 - 14805 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 14806 - 14814 [(inv~Hev).] 0. secs (0.u,0.s) +Chars 14797 - 14805 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14806 - 14814 [inv~Hev.] 0. secs (0.u,0.s) Chars 14820 - 14821 [-] 0. secs (0.u,0.s) -Chars 14822 - 14830 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14831 - 14839 [(inv~Hev).] 0.009 secs (0.008u,0.s) -Chars 14846 - 14882 [(eapply~IHHeutt;~try~apply~H0;...] 0.001 secs (0.001u,0.s) +Chars 14822 - 14830 [simpobs.] 0. secs (0.u,0.s) +Chars 14831 - 14839 [inv~Hev.] 0.004 secs (0.004u,0.s) +Chars 14846 - 14882 [eapply~IHHeutt;~try~apply~H0;~...] 0.001 secs (0.001u,0.s) Chars 14889 - 14904 [now~step~in~H0.] 0. secs (0.u,0.s) Chars 14910 - 14911 [-] 0. secs (0.u,0.s) -Chars 14912 - 14920 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14912 - 14920 [simpobs.] 0. secs (0.u,0.s) Chars 14921 - 14933 [constructor.] 0. secs (0.u,0.s) Chars 14934 - 14950 [unstep~in~Heutt.] 0. secs (0.u,0.s) -Chars 14951 - 14980 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) -Chars 14983 - 14987 [Qed.] 0.021 secs (0.021u,0.s) +Chars 14951 - 14980 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 14983 - 14987 [Qed.] 0.014 secs (0.014u,0.s) Chars 14991 - 15069 [Instance~proper_eventless~~{E1...] 0. secs (0.u,0.s) Chars 15072 - 15078 [Proof.] 0. secs (0.u,0.s) -Chars 15083 - 15102 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 15103 - 15121 [(split;~intros~Hev).] 0. secs (0.u,0.s) +Chars 15083 - 15102 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 15103 - 15121 [split;~intros~Hev.] 0. secs (0.u,0.s) Chars 15126 - 15127 [-] 0. secs (0.u,0.s) -Chars 15128 - 15145 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 15128 - 15145 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 15146 - 15151 [auto.] 0. secs (0.u,0.s) Chars 15156 - 15157 [-] 0. secs (0.u,0.s) Chars 15158 - 15176 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 15177 - 15194 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 15177 - 15194 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 15195 - 15200 [auto.] 0. secs (0.u,0.s) Chars 15203 - 15207 [Qed.] 0. secs (0.u,0.s) Chars 15211 - 15410 [Lemma~eutt_eventless~:~~~foral...] 0. secs (0.u,0.s) Chars 15413 - 15419 [Proof.] 0. secs (0.u,0.s) -Chars 15424 - 15443 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 15444 - 15462 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 15463 - 15470 [(intros).] 0. secs (0.u,0.s) +Chars 15424 - 15443 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 15444 - 15462 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 15463 - 15470 [intros.] 0. secs (0.u,0.s) Chars 15475 - 15486 [step~in~H0.] 0. secs (0.u,0.s) Chars 15487 - 15492 [icbn.] 0. secs (0.u,0.s) -Chars 15493 - 15522 [(dependent~induction~H0;~auto).] 0.019 secs (0.019u,0.s) +Chars 15493 - 15522 [dependent~induction~H0;~auto.] 0.013 secs (0.013u,0.s) Chars 15527 - 15528 [-] 0. secs (0.u,0.s) -Chars 15529 - 15537 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15529 - 15537 [simpobs.] 0.001 secs (0.001u,0.s) Chars 15538 - 15543 [eret.] 0. secs (0.u,0.s) Chars 15549 - 15550 [-] 0. secs (0.u,0.s) -Chars 15551 - 15559 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15551 - 15559 [simpobs.] 0.001 secs (0.001u,0.s) Chars 15566 - 15578 [constructor.] 0. secs (0.u,0.s) Chars 15587 - 15620 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) Chars 15621 - 15654 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 15661 - 15669 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15677 - 15696 [(assert~(t1~≈~m1)).] 0. secs (0.u,0.s) +Chars 15661 - 15669 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15677 - 15696 [assert~(t1~≈~m1).] 0. secs (0.u,0.s) Chars 15697 - 15698 [{] 0. secs (0.u,0.s) -Chars 15699 - 15711 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 15712 - 15729 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 15699 - 15711 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 15712 - 15729 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 15730 - 15742 [reflexivity.] 0. secs (0.u,0.s) Chars 15743 - 15744 [}] 0. secs (0.u,0.s) -Chars 15751 - 15770 [(assert~(t2~≈~m2)).] 0. secs (0.u,0.s) +Chars 15751 - 15770 [assert~(t2~≈~m2).] 0. secs (0.u,0.s) Chars 15771 - 15772 [{] 0. secs (0.u,0.s) -Chars 15773 - 15785 [(rewrite~Ht2).] 0. secs (0.u,0.s) -Chars 15786 - 15803 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 15773 - 15785 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 15786 - 15803 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 15804 - 15816 [reflexivity.] 0. secs (0.u,0.s) Chars 15817 - 15818 [}] 0. secs (0.u,0.s) -Chars 15825 - 15841 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 15825 - 15841 [apply~CIH;~auto.] 0. secs (0.u,0.s) Chars 15848 - 15866 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 15872 - 15873 [-] 0. secs (0.u,0.s) Chars 15874 - 15882 [exfalso.] 0. secs (0.u,0.s) -Chars 15883 - 15902 [(step~in~H;~simpobs).] 0.002 secs (0.002u,0.s) -Chars 15903 - 15909 [(inv~H).] 0. secs (0.u,0.s) +Chars 15883 - 15902 [step~in~H;~simpobs.] 0.001 secs (0.001u,0.s) +Chars 15903 - 15909 [inv~H.] 0. secs (0.u,0.s) Chars 15914 - 15915 [-] 0. secs (0.u,0.s) -Chars 15916 - 15924 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 15916 - 15924 [simpobs.] 0. secs (0.u,0.s) Chars 15925 - 15937 [constructor.] 0. secs (0.u,0.s) Chars 15944 - 15977 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 15978 - 15986 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15994 - 16001 [(sinv~H).] 0.017 secs (0.017u,0.s) +Chars 15978 - 15986 [simpobs.] 0. secs (0.u,0.s) +Chars 15994 - 16001 [sinv~H.] 0.014 secs (0.014u,0.s) Chars 16009 - 16010 [+] 0. secs (0.u,0.s) -Chars 16011 - 16025 [(simpobs;~easy).] 0.003 secs (0.003u,0.s) +Chars 16011 - 16025 [simpobs;~easy.] 0.002 secs (0.002u,0.s) Chars 16034 - 16035 [+] 0. secs (0.u,0.s) -Chars 16036 - 16058 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 16059 - 16079 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 16036 - 16058 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 16059 - 16079 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) Chars 16080 - 16085 [step.] 0. secs (0.u,0.s) -Chars 16093 - 16110 [(rewrite~x,~<-~H1).] 0. secs (0.u,0.s) +Chars 16093 - 16110 [rewrite~x,~<-~H1.] 0. secs (0.u,0.s) Chars 16111 - 16127 [now~constructor.] 0. secs (0.u,0.s) Chars 16133 - 16134 [-] 0. secs (0.u,0.s) -Chars 16135 - 16143 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 16135 - 16143 [simpobs.] 0. secs (0.u,0.s) Chars 16144 - 16156 [constructor.] 0. secs (0.u,0.s) -Chars 16157 - 16179 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 16182 - 16186 [Qed.] 0.016 secs (0.016u,0.s) +Chars 16157 - 16179 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 16182 - 16186 [Qed.] 0.012 secs (0.012u,0.s) Chars 16190 - 16303 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) Chars 16306 - 16312 [Proof.] 0. secs (0.u,0.s) -Chars 16317 - 16326 [(intros~R).] 0. secs (0.u,0.s) -Chars 16327 - 16345 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 16346 - 16353 [(intros).] 0. secs (0.u,0.s) -Chars 16360 - 16367 [(sinv~H).] 0.031 secs (0.031u,0.s) +Chars 16317 - 16326 [intros~R.] 0. secs (0.u,0.s) +Chars 16327 - 16345 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 16346 - 16353 [intros.] 0. secs (0.u,0.s) +Chars 16360 - 16367 [sinv~H.] 0.022 secs (0.022u,0.s) Chars 16372 - 16373 [-] 0. secs (0.u,0.s) Chars 16374 - 16405 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) Chars 16406 - 16414 [simpobs.] 0. secs (0.u,0.s) -Chars 16422 - 16439 [(rewrite~Ht~in~H0).] 0.001 secs (0.001u,0.s) -Chars 16440 - 16448 [(sinv~H0).] 0.001 secs (0.001u,0.s) +Chars 16422 - 16439 [rewrite~Ht~in~H0.] 0.001 secs (0.001u,0.s) +Chars 16440 - 16448 [sinv~H0.] 0.001 secs (0.001u,0.s) Chars 16453 - 16454 [-] 0. secs (0.u,0.s) Chars 16455 - 16460 [icbn.] 0. secs (0.u,0.s) Chars 16461 - 16469 [simpobs.] 0. secs (0.u,0.s) -Chars 16477 - 16487 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 16488 - 16516 [(step~in~H0;~simpobs;~inv~H0).] 0.013 secs (0.013u,0.s) +Chars 16477 - 16487 [red~in~H0.] 0. secs (0.u,0.s) +Chars 16488 - 16516 [step~in~H0;~simpobs;~inv~H0.] 0.009 secs (0.009u,0.s) Chars 16524 - 16536 [constructor.] 0. secs (0.u,0.s) -Chars 16543 - 16559 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 16563 - 16567 [Qed.] 0.008 secs (0.008u,0.s) +Chars 16543 - 16559 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 16563 - 16567 [Qed.] 0.006 secs (0.006u,0.s) Chars 16571 - 16689 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) Chars 16692 - 16698 [Proof.] 0. secs (0.u,0.s) -Chars 16703 - 16716 [(intros~R~t~r).] 0. secs (0.u,0.s) -Chars 16721 - 16728 [(intros).] 0. secs (0.u,0.s) -Chars 16729 - 16748 [(induction~H0;~auto).] 0. secs (0.u,0.s) -Chars 16749 - 16765 [(rewrite~H0~in~H).] 0. secs (0.u,0.s) -Chars 16770 - 16777 [(sinv~H).] 0. secs (0.u,0.s) -Chars 16780 - 16784 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16703 - 16716 [intros~R~t~r.] 0. secs (0.u,0.s) +Chars 16721 - 16728 [intros.] 0. secs (0.u,0.s) +Chars 16729 - 16748 [induction~H0;~auto.] 0. secs (0.u,0.s) +Chars 16749 - 16765 [rewrite~H0~in~H.] 0. secs (0.u,0.s) +Chars 16770 - 16777 [sinv~H.] 0. secs (0.u,0.s) +Chars 16780 - 16784 [Qed.] 0. secs (0.u,0.s) Chars 16788 - 16983 [Lemma~eqitE_imp_eutt~:~~~foral...] 0. secs (0.u,0.s) Chars 16986 - 16992 [Proof.] 0. secs (0.u,0.s) -Chars 16997 - 17016 [(intros~E1~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 17017 - 17035 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 17040 - 17057 [(intros~t1~t2~Heq).] 0. secs (0.u,0.s) +Chars 16997 - 17016 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 17017 - 17035 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 17040 - 17057 [intros~t1~t2~Heq.] 0. secs (0.u,0.s) Chars 17058 - 17063 [icbn.] 0. secs (0.u,0.s) Chars 17064 - 17076 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 17082 - 17113 [(induction~Heq;~auto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 17116 - 17120 [Qed.] 0.004 secs (0.004u,0.s) +Chars 17082 - 17113 [induction~Heq;~auto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 17116 - 17120 [Qed.] 0.003 secs (0.003u,0.s) Chars 17124 - 17374 [Lemma~eqitE_imp_eventlessl~:~~...] 0. secs (0.u,0.s) Chars 17377 - 17383 [Proof.] 0. secs (0.u,0.s) -Chars 17388 - 17410 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 17388 - 17410 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) Chars 17411 - 17429 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 17434 - 17441 [(intros).] 0. secs (0.u,0.s) +Chars 17434 - 17441 [intros.] 0. secs (0.u,0.s) Chars 17442 - 17452 [step~in~H.] 0. secs (0.u,0.s) Chars 17458 - 17463 [icbn.] 0. secs (0.u,0.s) -Chars 17464 - 17494 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 17464 - 17494 [induction~H;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 17499 - 17511 [constructor.] 0. secs (0.u,0.s) -Chars 17512 - 17552 [(apply~(CIH~t0~(ITreeDefinitio...] 0. secs (0.u,0.s) +Chars 17512 - 17552 [apply~(CIH~t0~(ITreeDefinition...] 0. secs (0.u,0.s) Chars 17553 - 17562 [now~step.] 0. secs (0.u,0.s) -Chars 17566 - 17570 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17566 - 17570 [Qed.] 0.001 secs (0.001u,0.s) Chars 17574 - 17824 [Lemma~eqitE_imp_eventlessr~:~~...] 0. secs (0.u,0.s) Chars 17827 - 17833 [Proof.] 0. secs (0.u,0.s) -Chars 17838 - 17860 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) +Chars 17838 - 17860 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) Chars 17861 - 17879 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 17884 - 17891 [(intros).] 0. secs (0.u,0.s) +Chars 17884 - 17891 [intros.] 0. secs (0.u,0.s) Chars 17892 - 17902 [step~in~H.] 0. secs (0.u,0.s) Chars 17907 - 17912 [icbn.] 0. secs (0.u,0.s) -Chars 17913 - 17943 [(induction~H;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 17913 - 17943 [induction~H;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 17948 - 17960 [constructor.] 0. secs (0.u,0.s) -Chars 17961 - 18001 [(apply~(CIH~(ITreeDefinition.g...] 0. secs (0.u,0.s) +Chars 17961 - 18001 [apply~(CIH~(ITreeDefinition.go...] 0. secs (0.u,0.s) Chars 18002 - 18011 [now~step.] 0. secs (0.u,0.s) -Chars 18015 - 18019 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18015 - 18019 [Qed.] 0.001 secs (0.001u,0.s) Chars 18023 - 18120 [Lemma~eventless_spin~:~~~foral...] 0. secs (0.u,0.s) Chars 18123 - 18129 [Proof.] 0. secs (0.u,0.s) -Chars 18134 - 18146 [(intros~E1~R).] 0. secs (0.u,0.s) +Chars 18134 - 18146 [intros~E1~R.] 0. secs (0.u,0.s) Chars 18147 - 18165 [coinduction~c~CIH.] 0. secs (0.u,0.s) Chars 18166 - 18171 [icbn.] 0. secs (0.u,0.s) -Chars 18172 - 18176 [(cbn).] 0. secs (0.u,0.s) +Chars 18172 - 18176 [cbn.] 0. secs (0.u,0.s) Chars 18177 - 18189 [constructor.] 0. secs (0.u,0.s) Chars 18194 - 18199 [auto.] 0. secs (0.u,0.s) Chars 18202 - 18206 [Qed.] 0. secs (0.u,0.s) @@ -491,73 +491,73 @@ Chars 18210 - 18441 [CoFixpoint~remove_events'~{E1~...] 0. secs (0.u,0.s) Chars 18445 - 18544 [Definition~remove_events~{E1}~...] 0. secs (0.u,0.s) Chars 18548 - 18744 [Lemma~remove_events_eventless_...] 0. secs (0.u,0.s) Chars 18747 - 18753 [Proof.] 0. secs (0.u,0.s) -Chars 18758 - 18773 [(intros~E1~E2~A).] 0. secs (0.u,0.s) +Chars 18758 - 18773 [intros~E1~E2~A.] 0. secs (0.u,0.s) Chars 18774 - 18792 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18793 - 18800 [(intros).] 0. secs (0.u,0.s) +Chars 18793 - 18800 [intros.] 0. secs (0.u,0.s) Chars 18805 - 18810 [icbn.] 0. secs (0.u,0.s) -Chars 18811 - 18818 [(sinv~H).] 0.006 secs (0.005u,0.s) +Chars 18811 - 18818 [sinv~H.] 0.004 secs (0.004u,0.s) Chars 18823 - 18824 [-] 0. secs (0.u,0.s) -Chars 18825 - 18829 [(cbn).] 0. secs (0.u,0.s) -Chars 18830 - 18851 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 18852 - 18866 [(rewrite~<-~H1).] 0. secs (0.u,0.s) -Chars 18867 - 18871 [(cbn).] 0. secs (0.u,0.s) +Chars 18825 - 18829 [cbn.] 0. secs (0.u,0.s) +Chars 18830 - 18851 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 18852 - 18866 [rewrite~<-~H1.] 0. secs (0.u,0.s) +Chars 18867 - 18871 [cbn.] 0. secs (0.u,0.s) Chars 18872 - 18888 [auto~with~itree.] 0. secs (0.u,0.s) Chars 18893 - 18894 [-] 0. secs (0.u,0.s) -Chars 18895 - 18916 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 18917 - 18931 [(rewrite~<-~H0).] 0. secs (0.u,0.s) -Chars 18932 - 18936 [(cbn).] 0. secs (0.u,0.s) +Chars 18895 - 18916 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 18917 - 18931 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 18932 - 18936 [cbn.] 0. secs (0.u,0.s) Chars 18937 - 18949 [constructor.] 0. secs (0.u,0.s) -Chars 18950 - 18960 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 18950 - 18960 [apply~CIH.] 0. secs (0.u,0.s) Chars 18967 - 18972 [auto.] 0. secs (0.u,0.s) -Chars 18975 - 18979 [Qed.] 0.003 secs (0.003u,0.s) +Chars 18975 - 18979 [Qed.] 0.002 secs (0.002u,0.s) Chars 18983 - 19157 [Lemma~remove_events_eventless~...] 0. secs (0.u,0.s) Chars 19160 - 19166 [Proof.] 0. secs (0.u,0.s) -Chars 19171 - 19186 [(intros~E1~E2~A).] 0. secs (0.u,0.s) +Chars 19171 - 19186 [intros~E1~E2~A.] 0. secs (0.u,0.s) Chars 19187 - 19205 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19206 - 19213 [(intros).] 0. secs (0.u,0.s) +Chars 19206 - 19213 [intros.] 0. secs (0.u,0.s) Chars 19218 - 19223 [icbn.] 0. secs (0.u,0.s) -Chars 19224 - 19245 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 19246 - 19277 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) +Chars 19224 - 19245 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 19246 - 19277 [destruct~(observe~t)~eqn:Heq.] 0. secs (0.u,0.s) Chars 19282 - 19283 [-] 0. secs (0.u,0.s) -Chars 19284 - 19288 [(cbn).] 0. secs (0.u,0.s) +Chars 19284 - 19288 [cbn.] 0. secs (0.u,0.s) Chars 19289 - 19301 [constructor.] 0. secs (0.u,0.s) Chars 19306 - 19307 [-] 0. secs (0.u,0.s) -Chars 19308 - 19312 [(cbn).] 0. secs (0.u,0.s) +Chars 19308 - 19312 [cbn.] 0. secs (0.u,0.s) Chars 19313 - 19325 [constructor.] 0. secs (0.u,0.s) -Chars 19326 - 19336 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 19326 - 19336 [apply~CIH.] 0. secs (0.u,0.s) Chars 19341 - 19342 [-] 0. secs (0.u,0.s) -Chars 19343 - 19347 [(cbn).] 0. secs (0.u,0.s) +Chars 19343 - 19347 [cbn.] 0. secs (0.u,0.s) Chars 19348 - 19360 [constructor.] 0. secs (0.u,0.s) -Chars 19361 - 19371 [(do~2~step).] 0. secs (0.u,0.s) -Chars 19372 - 19393 [(apply~eventless_spin).] 0. secs (0.u,0.s) +Chars 19361 - 19371 [do~2~step.] 0. secs (0.u,0.s) +Chars 19372 - 19393 [apply~eventless_spin.] 0. secs (0.u,0.s) Chars 19397 - 19401 [Qed.] 0.001 secs (0.001u,0.s) Chars 19405 - 19480 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) Chars 19483 - 19489 [Proof.] 0. secs (0.u,0.s) -Chars 19494 - 19503 [(intros~A).] 0. secs (0.u,0.s) +Chars 19494 - 19503 [intros~A.] 0. secs (0.u,0.s) Chars 19504 - 19522 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19523 - 19530 [(intros).] 0. secs (0.u,0.s) +Chars 19523 - 19530 [intros.] 0. secs (0.u,0.s) Chars 19535 - 19540 [icbn.] 0. secs (0.u,0.s) -Chars 19541 - 19579 [(destruct~(observe~d);~auto~wi...] 0. secs (0.u,0.s) -Chars 19584 - 19595 [(destruct~e).] 0. secs (0.u,0.s) +Chars 19541 - 19579 [destruct~(observe~d);~auto~wit...] 0. secs (0.u,0.s) +Chars 19584 - 19595 [destruct~e.] 0. secs (0.u,0.s) Chars 19598 - 19602 [Qed.] 0. secs (0.u,0.s) Chars 19606 - 19805 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) Chars 19808 - 19814 [Proof.] 0. secs (0.u,0.s) -Chars 19819 - 19841 [(intros~E1~E2~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 19847 - 19865 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 19866 - 19873 [(intros).] 0. secs (0.u,0.s) +Chars 19819 - 19841 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 19847 - 19865 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 19866 - 19873 [intros.] 0. secs (0.u,0.s) Chars 19874 - 19879 [icbn.] 0. secs (0.u,0.s) -Chars 19885 - 19892 [(intros).] 0. secs (0.u,0.s) +Chars 19885 - 19892 [intros.] 0. secs (0.u,0.s) Chars 19897 - 19907 [step~in~H.] 0. secs (0.u,0.s) -Chars 19913 - 19939 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 19945 - 19971 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 19913 - 19939 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 19945 - 19971 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) Chars 19977 - 20004 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 20005 - 20014 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20020 - 20079 [(induction~H;~intros~t1'~t2'~H...] 0.022 secs (0.022u,0.s) +Chars 20005 - 20014 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 20020 - 20079 [induction~H;~intros~t1'~t2'~He...] 0.016 secs (0.016u,0.s) Chars 20084 - 20085 [-] 0. secs (0.u,0.s) -Chars 20086 - 20109 [(inv~Heqot1;~inv~Heqot2).] 0.005 secs (0.005u,0.s) -Chars 20110 - 20119 [now~step.] 0.001 secs (0.001u,0.s) +Chars 20086 - 20109 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) +Chars 20110 - 20119 [now~step.] 0. secs (0.u,0.s) Chars 20126 - 20127 [-] 0. secs (0.u,0.s) -Chars 20128 - 20155 [(inv~H;~inv~Heqot1;~simpobs).] 0.042 secs (0.041u,0.s) +Chars 20128 - 20155 [inv~H;~inv~Heqot1;~simpobs.] 0.031 secs (0.03u,0.s) Chars 20163 - 20164 [+] 0. secs (0.u,0.s) Chars 20165 - 20177 [constructor.] 0. secs (0.u,0.s) Chars 20178 - 20197 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) @@ -567,7 +567,7 @@ Chars 20220 - 20239 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) Chars 20246 - 20247 [+] 0. secs (0.u,0.s) Chars 20248 - 20262 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 20268 - 20269 [-] 0. secs (0.u,0.s) -Chars 20270 - 20297 [(inv~H;~inv~Heqot2;~simpobs).] 0.04 secs (0.04u,0.s) +Chars 20270 - 20297 [inv~H;~inv~Heqot2;~simpobs.] 0.03 secs (0.029u,0.s) Chars 20305 - 20306 [+] 0. secs (0.u,0.s) Chars 20307 - 20319 [constructor.] 0. secs (0.u,0.s) Chars 20320 - 20339 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) @@ -576,274 +576,274 @@ Chars 20349 - 20363 [now~do~2~step.] 0.001 secs (0.001u,0.s) Chars 20371 - 20372 [+] 0. secs (0.u,0.s) Chars 20373 - 20385 [constructor.] 0. secs (0.u,0.s) Chars 20386 - 20405 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20409 - 20413 [Qed.] 0.013 secs (0.013u,0.s) +Chars 20409 - 20413 [Qed.] 0.01 secs (0.009u,0.s) Chars 20419 - 20674 [Lemma~inv_remove_events~:~~~fo...] 0. secs (0.u,0.s) Chars 20677 - 20683 [Proof.] 0. secs (0.u,0.s) -Chars 20688 - 20703 [(intros~E1~E2~R).] 0. secs (0.u,0.s) -Chars 20704 - 20722 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20727 - 20756 [(intros~t1~t2~Hev1~Hev2~Heutt).] 0. secs (0.u,0.s) +Chars 20688 - 20703 [intros~E1~E2~R.] 0. secs (0.u,0.s) +Chars 20704 - 20722 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 20727 - 20756 [intros~t1~t2~Hev1~Hev2~Heutt.] 0. secs (0.u,0.s) Chars 20757 - 20762 [icbn.] 0. secs (0.u,0.s) Chars 20767 - 20781 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 20782 - 20815 [(dependent~induction~Heutt;~su...] 0.037 secs (0.036u,0.s) +Chars 20782 - 20815 [dependent~induction~Heutt;~subst.] 0.024 secs (0.024u,0.s) Chars 20820 - 20821 [-] 0. secs (0.u,0.s) -Chars 20822 - 20852 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) -Chars 20859 - 20922 [(destruct~(observe~t1);~destru...] 0.004 secs (0.004u,0.s) +Chars 20822 - 20852 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) +Chars 20859 - 20922 [destruct~(observe~t1);~destruc...] 0.003 secs (0.002u,0.s) Chars 20929 - 20941 [constructor.] 0. secs (0.u,0.s) -Chars 20942 - 20951 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 20952 - 20966 [(inv~x0;~inv~x).] 0.002 secs (0.002u,0.s) +Chars 20942 - 20951 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 20952 - 20966 [inv~x0;~inv~x.] 0.001 secs (0.001u,0.s) Chars 20972 - 20973 [-] 0. secs (0.u,0.s) -Chars 20974 - 21004 [(unfold~remove_events~in~x0,~x).] 0. secs (0.u,0.s) -Chars 21011 - 21096 [(destruct~(observe~t1)~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 20974 - 21004 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) +Chars 21011 - 21096 [destruct~(observe~t1)~eqn:Heq1...] 0.003 secs (0.002u,0.s) Chars 21103 - 21104 [+] 0. secs (0.u,0.s) -Chars 21105 - 21114 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 21105 - 21114 [cbn~in~*.] 0. secs (0.u,0.s) Chars 21115 - 21127 [constructor.] 0. secs (0.u,0.s) -Chars 21136 - 21143 [(inv~x0).] 0.003 secs (0.003u,0.s) -Chars 21144 - 21150 [(inv~x).] 0.002 secs (0.002u,0.s) -Chars 21151 - 21158 [(intros).] 0. secs (0.u,0.s) -Chars 21169 - 21185 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 21136 - 21143 [inv~x0.] 0.002 secs (0.002u,0.s) +Chars 21144 - 21150 [inv~x.] 0.002 secs (0.002u,0.s) +Chars 21151 - 21158 [intros.] 0. secs (0.u,0.s) +Chars 21169 - 21185 [apply~CIH;~auto.] 0. secs (0.u,0.s) Chars 21194 - 21195 [*] 0. secs (0.u,0.s) Chars 21196 - 21229 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 21230 - 21250 [(rewrite~Heq1~in~Ht1).] 0. secs (0.u,0.s) -Chars 21261 - 21279 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) +Chars 21230 - 21250 [rewrite~Heq1~in~Ht1.] 0. secs (0.u,0.s) +Chars 21261 - 21279 [assert~(t~≈~t1).] 0. secs (0.u,0.s) Chars 21290 - 21291 [{] 0. secs (0.u,0.s) -Chars 21292 - 21304 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) -Chars 21305 - 21322 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 21292 - 21304 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 21305 - 21322 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 21323 - 21335 [reflexivity.] 0. secs (0.u,0.s) Chars 21336 - 21337 [}] 0. secs (0.u,0.s) -Chars 21348 - 21358 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 21348 - 21358 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 21359 - 21364 [auto.] 0. secs (0.u,0.s) Chars 21373 - 21374 [*] 0. secs (0.u,0.s) Chars 21375 - 21408 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 21409 - 21429 [(rewrite~Heq2~in~Ht2).] 0. secs (0.u,0.s) -Chars 21440 - 21459 [(assert~(t0~≈~t2)).] 0. secs (0.u,0.s) +Chars 21409 - 21429 [rewrite~Heq2~in~Ht2.] 0. secs (0.u,0.s) +Chars 21440 - 21459 [assert~(t0~≈~t2).] 0. secs (0.u,0.s) Chars 21470 - 21471 [{] 0. secs (0.u,0.s) -Chars 21472 - 21484 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) -Chars 21485 - 21502 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 21472 - 21484 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 21485 - 21502 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 21503 - 21515 [reflexivity.] 0. secs (0.u,0.s) Chars 21516 - 21517 [}] 0. secs (0.u,0.s) -Chars 21528 - 21538 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 21528 - 21538 [rewrite~H.] 0. secs (0.u,0.s) Chars 21539 - 21544 [auto.] 0. secs (0.u,0.s) Chars 21551 - 21552 [+] 0. secs (0.u,0.s) -Chars 21553 - 21563 [(sinv~Hev2).] 0.016 secs (0.016u,0.s) +Chars 21553 - 21563 [sinv~Hev2.] 0.011 secs (0.011u,0.s) Chars 21572 - 21573 [*] 0. secs (0.u,0.s) -Chars 21574 - 21593 [(rewrite~Heq2~in~H0).] 0. secs (0.u,0.s) +Chars 21574 - 21593 [rewrite~Heq2~in~H0.] 0. secs (0.u,0.s) Chars 21594 - 21607 [discriminate.] 0. secs (0.u,0.s) Chars 21616 - 21617 [*] 0. secs (0.u,0.s) -Chars 21618 - 21636 [(rewrite~Heq2~in~H).] 0. secs (0.u,0.s) +Chars 21618 - 21636 [rewrite~Heq2~in~H.] 0. secs (0.u,0.s) Chars 21637 - 21650 [discriminate.] 0. secs (0.u,0.s) Chars 21657 - 21658 [+] 0. secs (0.u,0.s) -Chars 21659 - 21669 [(sinv~Hev1).] 0.014 secs (0.014u,0.s) +Chars 21659 - 21669 [sinv~Hev1.] 0.01 secs (0.01u,0.s) Chars 21678 - 21679 [*] 0. secs (0.u,0.s) -Chars 21680 - 21699 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) +Chars 21680 - 21699 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) Chars 21700 - 21713 [discriminate.] 0. secs (0.u,0.s) Chars 21722 - 21723 [*] 0. secs (0.u,0.s) -Chars 21724 - 21742 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) +Chars 21724 - 21742 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) Chars 21743 - 21756 [discriminate.] 0. secs (0.u,0.s) Chars 21763 - 21764 [+] 0. secs (0.u,0.s) -Chars 21765 - 21775 [(sinv~Hev1).] 0.013 secs (0.013u,0.s) +Chars 21765 - 21775 [sinv~Hev1.] 0.01 secs (0.01u,0.s) Chars 21784 - 21785 [*] 0. secs (0.u,0.s) -Chars 21786 - 21805 [(rewrite~Heq1~in~H0).] 0. secs (0.u,0.s) +Chars 21786 - 21805 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) Chars 21806 - 21819 [discriminate.] 0. secs (0.u,0.s) Chars 21828 - 21829 [*] 0. secs (0.u,0.s) -Chars 21830 - 21848 [(rewrite~Heq1~in~H).] 0. secs (0.u,0.s) +Chars 21830 - 21848 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) Chars 21849 - 21862 [discriminate.] 0. secs (0.u,0.s) Chars 21867 - 21868 [-] 0. secs (0.u,0.s) -Chars 21869 - 21895 [(unfold~remove_events~in~*).] 0. secs (0.u,0.s) -Chars 21896 - 21943 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) +Chars 21869 - 21895 [unfold~remove_events~in~*.] 0. secs (0.u,0.s) +Chars 21896 - 21943 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) Chars 21948 - 21949 [-] 0. secs (0.u,0.s) -Chars 21950 - 21976 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) -Chars 21977 - 22037 [(destruct~(observe~t1)~eqn:Heq...] 0.002 secs (0.002u,0.s) +Chars 21950 - 21976 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) +Chars 21977 - 22037 [destruct~(observe~t1)~eqn:Heq;...] 0.001 secs (0.001u,0.s) Chars 22044 - 22045 [+] 0. secs (0.u,0.s) Chars 22046 - 22063 [injection~x~as~x.] 0. secs (0.u,0.s) Chars 22064 - 22076 [constructor.] 0. secs (0.u,0.s) -Chars 22085 - 22105 [(apply~IHHeutt;~auto).] 0.002 secs (0.001u,0.s) +Chars 22085 - 22105 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) Chars 22114 - 22115 [*] 0. secs (0.u,0.s) Chars 22116 - 22149 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22150 - 22169 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) -Chars 22180 - 22198 [(assert~(t~≈~t1)).] 0. secs (0.u,0.s) +Chars 22150 - 22169 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) +Chars 22180 - 22198 [assert~(t~≈~t1).] 0. secs (0.u,0.s) Chars 22209 - 22210 [{] 0. secs (0.u,0.s) -Chars 22211 - 22223 [(rewrite~Ht1).] 0.001 secs (0.001u,0.s) -Chars 22224 - 22241 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 22211 - 22223 [rewrite~Ht1.] 0.001 secs (0.001u,0.s) +Chars 22224 - 22241 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 22242 - 22254 [reflexivity.] 0. secs (0.u,0.s) Chars 22255 - 22256 [}] 0. secs (0.u,0.s) -Chars 22268 - 22279 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 22268 - 22279 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 22280 - 22285 [auto.] 0. secs (0.u,0.s) Chars 22294 - 22295 [*] 0. secs (0.u,0.s) -Chars 22296 - 22317 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 22318 - 22328 [(rewrite~x).] 0. secs (0.u,0.s) +Chars 22296 - 22317 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 22318 - 22328 [rewrite~x.] 0. secs (0.u,0.s) Chars 22329 - 22334 [auto.] 0. secs (0.u,0.s) Chars 22341 - 22342 [+] 0. secs (0.u,0.s) Chars 22343 - 22351 [exfalso.] 0. secs (0.u,0.s) Chars 22352 - 22385 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22386 - 22405 [(rewrite~Heq~in~Ht1).] 0. secs (0.u,0.s) -Chars 22414 - 22434 [(rewrite~Ht1~in~Hev1).] 0.001 secs (0.001u,0.s) -Chars 22435 - 22445 [(sinv~Hev1).] 0. secs (0.u,0.s) +Chars 22386 - 22405 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) +Chars 22414 - 22434 [rewrite~Ht1~in~Hev1.] 0.001 secs (0.001u,0.s) +Chars 22435 - 22445 [sinv~Hev1.] 0. secs (0.u,0.s) Chars 22450 - 22451 [-] 0. secs (0.u,0.s) -Chars 22452 - 22478 [(unfold~remove_events~in~x).] 0. secs (0.u,0.s) -Chars 22479 - 22539 [(destruct~(observe~t2)~eqn:Heq...] 0.003 secs (0.003u,0.s) +Chars 22452 - 22478 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) +Chars 22479 - 22539 [destruct~(observe~t2)~eqn:Heq;...] 0.001 secs (0.001u,0.s) Chars 22546 - 22547 [+] 0. secs (0.u,0.s) Chars 22548 - 22565 [injection~x~as~x.] 0. secs (0.u,0.s) Chars 22566 - 22578 [constructor.] 0. secs (0.u,0.s) -Chars 22587 - 22607 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) +Chars 22587 - 22607 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) Chars 22616 - 22617 [*] 0. secs (0.u,0.s) Chars 22618 - 22651 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 22652 - 22671 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) -Chars 22682 - 22700 [(assert~(t~≈~t2)).] 0. secs (0.u,0.s) +Chars 22652 - 22671 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) +Chars 22682 - 22700 [assert~(t~≈~t2).] 0. secs (0.u,0.s) Chars 22711 - 22712 [{] 0. secs (0.u,0.s) -Chars 22713 - 22725 [(rewrite~Ht2).] 0.001 secs (0.001u,0.s) -Chars 22726 - 22743 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 22713 - 22725 [rewrite~Ht2.] 0.001 secs (0.001u,0.s) +Chars 22726 - 22743 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 22744 - 22756 [reflexivity.] 0. secs (0.u,0.s) Chars 22757 - 22758 [}] 0. secs (0.u,0.s) -Chars 22769 - 22779 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 22769 - 22779 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 22780 - 22785 [auto.] 0. secs (0.u,0.s) Chars 22794 - 22795 [*] 0. secs (0.u,0.s) -Chars 22796 - 22817 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 22818 - 22828 [(rewrite~x).] 0. secs (0.u,0.s) +Chars 22796 - 22817 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 22818 - 22828 [rewrite~x.] 0. secs (0.u,0.s) Chars 22829 - 22834 [auto.] 0. secs (0.u,0.s) Chars 22841 - 22842 [+] 0. secs (0.u,0.s) Chars 22843 - 22851 [exfalso.] 0. secs (0.u,0.s) Chars 22852 - 22885 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 22886 - 22905 [(rewrite~Heq~in~Ht2).] 0. secs (0.u,0.s) -Chars 22914 - 22934 [(rewrite~Ht2~in~Hev2).] 0.001 secs (0.001u,0.s) -Chars 22935 - 22945 [(sinv~Hev2).] 0. secs (0.u,0.s) -Chars 22948 - 22952 [Qed.] 0.044 secs (0.044u,0.s) +Chars 22886 - 22905 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) +Chars 22914 - 22934 [rewrite~Ht2~in~Hev2.] 0. secs (0.u,0.s) +Chars 22935 - 22945 [sinv~Hev2.] 0. secs (0.u,0.s) +Chars 22948 - 22952 [Qed.] 0.037 secs (0.037u,0.s) Chars 22956 - 23265 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) Chars 23268 - 23274 [Proof.] 0. secs (0.u,0.s) -Chars 23279 - 23307 [(intros~E1~E2~E3~E4~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 23308 - 23326 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 23327 - 23334 [(intros).] 0. secs (0.u,0.s) +Chars 23279 - 23307 [intros~E1~E2~E3~E4~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 23308 - 23326 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 23327 - 23334 [intros.] 0. secs (0.u,0.s) Chars 23339 - 23349 [step~in~H.] 0. secs (0.u,0.s) Chars 23350 - 23355 [icbn.] 0. secs (0.u,0.s) -Chars 23356 - 23377 [(unfold~remove_events).] 0. secs (0.u,0.s) -Chars 23382 - 23416 [(induction~H;~cbn;~auto~with~i...] 0.003 secs (0.003u,0.s) +Chars 23356 - 23377 [unfold~remove_events.] 0. secs (0.u,0.s) +Chars 23382 - 23416 [induction~H;~cbn;~auto~with~it...] 0.002 secs (0.002u,0.s) Chars 23421 - 23433 [constructor.] 0. secs (0.u,0.s) -Chars 23434 - 23450 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23453 - 23457 [Qed.] 0.006 secs (0.006u,0.s) +Chars 23434 - 23450 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 23453 - 23457 [Qed.] 0.002 secs (0.002u,0.s) Chars 23461 - 23660 [Lemma~eqitE_trans~:~~~forall~(...] 0. secs (0.u,0.s) Chars 23663 - 23669 [Proof.] 0. secs (0.u,0.s) -Chars 23674 - 23711 [(intros~E1~E2~E3~R~t1~t2~t3~Ht...] 0. secs (0.u,0.s) -Chars 23716 - 23744 [(assert~(Ht1~:~eventless~t1)).] 0. secs (0.u,0.s) +Chars 23674 - 23711 [intros~E1~E2~E3~R~t1~t2~t3~Ht1...] 0. secs (0.u,0.s) +Chars 23716 - 23744 [assert~(Ht1~:~eventless~t1).] 0. secs (0.u,0.s) Chars 23749 - 23750 [{] 0. secs (0.u,0.s) -Chars 23751 - 23786 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) +Chars 23751 - 23786 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) Chars 23787 - 23788 [}] 0. secs (0.u,0.s) -Chars 23793 - 23821 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) +Chars 23793 - 23821 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) Chars 23826 - 23827 [{] 0. secs (0.u,0.s) -Chars 23828 - 23863 [(eapply~eqitE_imp_eventlessl;~...] 0. secs (0.u,0.s) +Chars 23828 - 23863 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) Chars 23864 - 23865 [}] 0. secs (0.u,0.s) -Chars 23870 - 23898 [(assert~(Ht3~:~eventless~t3)).] 0. secs (0.u,0.s) +Chars 23870 - 23898 [assert~(Ht3~:~eventless~t3).] 0. secs (0.u,0.s) Chars 23903 - 23904 [{] 0. secs (0.u,0.s) -Chars 23905 - 23940 [(eapply~eqitE_imp_eventlessr;~...] 0. secs (0.u,0.s) +Chars 23905 - 23940 [eapply~eqitE_imp_eventlessr;~e...] 0. secs (0.u,0.s) Chars 23941 - 23942 [}] 0. secs (0.u,0.s) -Chars 23947 - 23977 [(apply~inv_remove_events;~auto).] 0. secs (0.u,0.s) -Chars 23982 - 24038 [(assert~(remove_events~t1~≈~@r...] 0. secs (0.u,0.s) +Chars 23947 - 23977 [apply~inv_remove_events;~auto.] 0. secs (0.u,0.s) +Chars 23982 - 24038 [assert~(remove_events~t1~≈~@re...] 0. secs (0.u,0.s) Chars 24043 - 24044 [{] 0. secs (0.u,0.s) -Chars 24051 - 24072 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) -Chars 24073 - 24099 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) +Chars 24051 - 24072 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) +Chars 24073 - 24099 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) Chars 24100 - 24105 [auto.] 0. secs (0.u,0.s) Chars 24110 - 24111 [}] 0. secs (0.u,0.s) -Chars 24116 - 24172 [(assert~(remove_events~t2~≈~@r...] 0. secs (0.u,0.s) +Chars 24116 - 24172 [assert~(remove_events~t2~≈~@re...] 0. secs (0.u,0.s) Chars 24177 - 24178 [{] 0. secs (0.u,0.s) -Chars 24185 - 24206 [(apply~eqitE_imp_eutt).] 0. secs (0.u,0.s) -Chars 24207 - 24233 [(apply~remove_events_eqitE).] 0. secs (0.u,0.s) +Chars 24185 - 24206 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) +Chars 24207 - 24233 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) Chars 24234 - 24239 [auto.] 0. secs (0.u,0.s) Chars 24244 - 24245 [}] 0. secs (0.u,0.s) -Chars 24250 - 24260 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 24250 - 24260 [rewrite~H.] 0. secs (0.u,0.s) Chars 24261 - 24266 [auto.] 0. secs (0.u,0.s) -Chars 24269 - 24273 [Qed.] 0.001 secs (0.001u,0.s) +Chars 24269 - 24273 [Qed.] 0. secs (0.u,0.s) Chars 24277 - 24437 [Lemma~equivE_sym~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 24440 - 24446 [Proof.] 0. secs (0.u,0.s) -Chars 24451 - 24466 [(intros~E1~E2~R).] 0. secs (0.u,0.s) -Chars 24467 - 24485 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 24486 - 24493 [(intros).] 0. secs (0.u,0.s) +Chars 24451 - 24466 [intros~E1~E2~R.] 0. secs (0.u,0.s) +Chars 24467 - 24485 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 24486 - 24493 [intros.] 0. secs (0.u,0.s) Chars 24498 - 24508 [step~in~H.] 0. secs (0.u,0.s) Chars 24509 - 24514 [icbn.] 0. secs (0.u,0.s) -Chars 24520 - 24550 [(induction~H;~eauto~with~itree).] 0.003 secs (0.003u,0.s) -Chars 24553 - 24557 [Qed.] 0.002 secs (0.002u,0.s) +Chars 24520 - 24550 [induction~H;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 24553 - 24557 [Qed.] 0.001 secs (0.001u,0.s) Chars 24562 - 24673 [Instance~proper_eutt_equivE_im...] 0. secs (0.u,0.s) Chars 24676 - 24682 [Proof.] 0. secs (0.u,0.s) -Chars 24687 - 24716 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) +Chars 24687 - 24716 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) Chars 24717 - 24723 [intro.] 0. secs (0.u,0.s) -Chars 24728 - 24767 [(apply~eqitE_imp_eventlessl~in...] 0. secs (0.u,0.s) -Chars 24772 - 24811 [(apply~eqitE_imp_eventlessr~in...] 0. secs (0.u,0.s) -Chars 24816 - 24844 [(assert~(Ht2~:~eventless~t2)).] 0. secs (0.u,0.s) +Chars 24728 - 24767 [apply~eqitE_imp_eventlessl~in~...] 0. secs (0.u,0.s) +Chars 24772 - 24811 [apply~eqitE_imp_eventlessr~in~...] 0. secs (0.u,0.s) +Chars 24816 - 24844 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) Chars 24849 - 24850 [{] 0. secs (0.u,0.s) -Chars 24851 - 24867 [(rewrite~<-~Ht12).] 0.001 secs (0.001u,0.s) +Chars 24851 - 24867 [rewrite~<-~Ht12.] 0.001 secs (0.001u,0.s) Chars 24868 - 24873 [auto.] 0. secs (0.u,0.s) Chars 24874 - 24875 [}] 0. secs (0.u,0.s) -Chars 24880 - 24908 [(assert~(Ht4~:~eventless~t4)).] 0. secs (0.u,0.s) +Chars 24880 - 24908 [assert~(Ht4~:~eventless~t4).] 0. secs (0.u,0.s) Chars 24913 - 24914 [{] 0. secs (0.u,0.s) -Chars 24915 - 24931 [(rewrite~<-~Ht34).] 0.001 secs (0.001u,0.s) +Chars 24915 - 24931 [rewrite~<-~Ht34.] 0.001 secs (0.001u,0.s) Chars 24932 - 24937 [auto.] 0. secs (0.u,0.s) Chars 24938 - 24939 [}] 0. secs (0.u,0.s) -Chars 24944 - 24978 [(apply~eqitE_trans~with~(t2~:=...] 0. secs (0.u,0.s) +Chars 24944 - 24978 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) Chars 24983 - 24984 [-] 0. secs (0.u,0.s) Chars 24985 - 25002 [symmetry~in~Ht12.] 0. secs (0.u,0.s) -Chars 25003 - 25007 [(red).] 0. secs (0.u,0.s) -Chars 25008 - 25035 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) +Chars 25003 - 25007 [red.] 0. secs (0.u,0.s) +Chars 25008 - 25035 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) Chars 25040 - 25041 [-] 0. secs (0.u,0.s) -Chars 25042 - 25082 [(apply~eqitE_trans~with~(t2~:=...] 0.001 secs (0.001u,0.s) -Chars 25089 - 25116 [(apply~eutt_eventless;~auto).] 0. secs (0.u,0.s) -Chars 25119 - 25123 [Qed.] 0.001 secs (0.001u,0.s) +Chars 25042 - 25082 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) +Chars 25089 - 25116 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) +Chars 25119 - 25123 [Qed.] 0. secs (0.u,0.s) Chars 25127 - 25229 [Instance~proper_eutt_equivE~~{...] 0. secs (0.u,0.s) Chars 25232 - 25238 [Proof.] 0. secs (0.u,0.s) -Chars 25243 - 25257 [(split;~intros).] 0. secs (0.u,0.s) +Chars 25243 - 25257 [split;~intros.] 0. secs (0.u,0.s) Chars 25262 - 25263 [-] 0. secs (0.u,0.s) -Chars 25264 - 25277 [(rewrite~<-~H).] 0.009 secs (0.009u,0.s) -Chars 25278 - 25292 [(rewrite~<-~H0).] 0.011 secs (0.01u,0.s) +Chars 25264 - 25277 [rewrite~<-~H.] 0.006 secs (0.006u,0.s) +Chars 25278 - 25292 [rewrite~<-~H0.] 0.008 secs (0.008u,0.s) Chars 25293 - 25298 [auto.] 0. secs (0.u,0.s) Chars 25303 - 25304 [-] 0. secs (0.u,0.s) Chars 25305 - 25319 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 25320 - 25335 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 25342 - 25355 [(rewrite~<-~H).] 0.008 secs (0.008u,0.s) -Chars 25356 - 25370 [(rewrite~<-~H0).] 0.012 secs (0.011u,0.s) +Chars 25342 - 25355 [rewrite~<-~H.] 0.007 secs (0.007u,0.s) +Chars 25356 - 25370 [rewrite~<-~H0.] 0.008 secs (0.008u,0.s) Chars 25371 - 25376 [auto.] 0. secs (0.u,0.s) -Chars 25379 - 25383 [Qed.] 0.002 secs (0.002u,0.s) +Chars 25379 - 25383 [Qed.] 0.001 secs (0.001u,0.s) Chars 25490 - 25882 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) Chars 25886 - 26316 [Variant~itree_includesF~{R~:~T...] 0.001 secs (0.001u,0.s) Chars 26320 - 26362 [Hint~Constructors~itree_includ...] 0. secs (0.u,0.s) Chars 26367 - 26441 [Lemma~itree_includes_mono~{R}~...] 0. secs (0.u,0.s) Chars 26444 - 26450 [Proof.] 0. secs (0.u,0.s) -Chars 26456 - 26469 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 26470 - 26501 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 26507 - 26527 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 26456 - 26469 [repeat~intro.] 0. secs (0.u,0.s) +Chars 26470 - 26501 [induction~H0;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 26507 - 26527 [econstructor;~eauto.] 0. secs (0.u,0.s) Chars 26528 - 26540 [now~apply~H.] 0. secs (0.u,0.s) Chars 26544 - 26548 [Qed.] 0. secs (0.u,0.s) Chars 26553 - 26625 [Definition~itree_includes_mon~...] 0. secs (0.u,0.s) Chars 26632 - 26748 [Definition~itree_includes~{R~:...] 0. secs (0.u,0.s) -Chars 26750 - 26768 [End~ITreeDijkstra.] 0.005 secs (0.005u,0.s) +Chars 26750 - 26768 [End~ITreeDijkstra.] 0.004 secs (0.004u,0.s) Chars 26770 - 26793 [Section~RetBindCounter.] 0. secs (0.u,0.s) Chars 26797 - 26851 [Variant~Sound~:~Type~->~Prop~:...] 0. secs (0.u,0.s) -Chars 27258 - 27346 [#[program]~Definition~p~:~ITDI...] 0.001 secs (0.001u,0.s) +Chars 27258 - 27346 [#[program]~Definition~p~:~ITDI...] 0. secs (0.u,0.s) Chars 27349 - 27365 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 27370 - 27381 [(repeat~red).] 0. secs (0.u,0.s) -Chars 27382 - 27389 [(intros).] 0. secs (0.u,0.s) -Chars 27390 - 27413 [(split;~rewrite~H;~auto).] 0.013 secs (0.013u,0.s) -Chars 27416 - 27420 [Qed.] 0.001 secs (0.001u,0.s) +Chars 27370 - 27381 [repeat~red.] 0. secs (0.u,0.s) +Chars 27382 - 27389 [intros.] 0. secs (0.u,0.s) +Chars 27390 - 27413 [split;~rewrite~H;~auto.] 0.01 secs (0.009u,0.s) +Chars 27416 - 27420 [Qed.] 0. secs (0.u,0.s) Chars 28046 - 28134 [#[program]~Definition~w~:~ITre...] 0.001 secs (0.001u,0.s) Chars 28313 - 28421 [Lemma~bind_ret_failure~:~~~~~~...] 0. secs (0.u,0.s) Chars 28424 - 28430 [Proof.] 0. secs (0.u,0.s) -Chars 28435 - 28439 [(cbn).] 0. secs (0.u,0.s) -Chars 28440 - 28455 [(intros~Hcontra).] 0. secs (0.u,0.s) +Chars 28435 - 28439 [cbn.] 0. secs (0.u,0.s) +Chars 28440 - 28455 [intros~Hcontra.] 0. secs (0.u,0.s) Chars 28460 - 28483 [specialize~(Hcontra~p).] 0. secs (0.u,0.s) -Chars 28488 - 28530 [(assert~(p~∋~Vis~Ring~(fun~_~=...] 0. secs (0.u,0.s) +Chars 28488 - 28530 [assert~(p~∋~Vis~Ring~(fun~_~=>...] 0. secs (0.u,0.s) Chars 28535 - 28536 [{] 0. secs (0.u,0.s) -Chars 28543 - 28552 [(unfold~p).] 0. secs (0.u,0.s) -Chars 28553 - 28557 [(cbn).] 0. secs (0.u,0.s) -Chars 28558 - 28570 [reflexivity.] 0. secs (0.u,0.s) +Chars 28543 - 28552 [unfold~p.] 0. secs (0.u,0.s) +Chars 28553 - 28557 [cbn.] 0. secs (0.u,0.s) +Chars 28558 - 28570 [reflexivity.] 0.002 secs (0.002u,0.s) Chars 28575 - 28576 [}] 0. secs (0.u,0.s) -Chars 28581 - 28600 [(apply~Hcontra~in~H).] 0. secs (0.u,0.s) +Chars 28581 - 28600 [apply~Hcontra~in~H.] 0. secs (0.u,0.s) Chars 28601 - 28615 [clear~Hcontra.] 0. secs (0.u,0.s) Chars 28616 - 28628 [basic_solve.] 0. secs (0.u,0.s) Chars 28633 - 28634 [-] 0. secs (0.u,0.s) -Chars 28635 - 28650 [(unfold~p~in~H0).] 0. secs (0.u,0.s) -Chars 28651 - 28661 [(cbn~in~H0).] 0. secs (0.u,0.s) -Chars 28662 - 28670 [(sinv~H0).] 0.002 secs (0.002u,0.s) +Chars 28635 - 28650 [unfold~p~in~H0.] 0. secs (0.u,0.s) +Chars 28651 - 28661 [cbn~in~H0.] 0. secs (0.u,0.s) +Chars 28662 - 28670 [sinv~H0.] 0.001 secs (0.001u,0.s) Chars 28675 - 28676 [-] 0. secs (0.u,0.s) Chars 28677 - 28686 [clear~H0.] 0. secs (0.u,0.s) -Chars 28687 - 28725 [(sinv~H;~try~apply~all_infinit...] 0.001 secs (0.001u,0.s) +Chars 28687 - 28725 [sinv~H;~try~apply~all_infinite...] 0.001 secs (0.001u,0.s) Chars 28726 - 28739 [ddestruction.] 0. secs (0.u,0.s) Chars 28746 - 28765 [specialize~(H1~tt).] 0. secs (0.u,0.s) -Chars 28766 - 28808 [(step~in~H1;~try~apply~all_inf...] 0. secs (0.u,0.s) -Chars 28815 - 28822 [(inv~H1).] 0. secs (0.u,0.s) -Chars 28825 - 28829 [Qed.] 0.003 secs (0.003u,0.s) +Chars 28766 - 28808 [step~in~H1;~try~apply~all_infi...] 0. secs (0.u,0.s) +Chars 28815 - 28822 [inv~H1.] 0. secs (0.u,0.s) +Chars 28825 - 28829 [Qed.] 0.002 secs (0.002u,0.s) Chars 28831 - 28850 [End~RetBindCounter.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/IterRel.v.timing b/extra/Dijkstra/IterRel.v.timing index a471884a..96e44f8e 100644 --- a/extra/Dijkstra/IterRel.v.timing +++ b/extra/Dijkstra/IterRel.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.164 secs (0.133u,0.022s) -Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.083 secs (0.073u,0.01s) +Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.132 secs (0.095u,0.014s) +Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) +Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.059 secs (0.053u,0.006s) Chars 128 - 149 [Create~HintDb~not_wf.] 0. secs (0.u,0.s) Chars 151 - 174 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 282 - 298 [Section~IterRel.] 0. secs (0.u,0.s) @@ -10,9 +10,9 @@ Chars 357 - 463 [Variant~not_wf_F~(F~:~A~->~Pro...] 0. secs (0.u,0.s) Chars 466 - 502 [Hint~Constructors~not_wf_F:~no...] 0. secs (0.u,0.s) Chars 506 - 566 [Lemma~not_wf_F_mono~:~Proper~(...] 0. secs (0.u,0.s) Chars 570 - 576 [Proof.] 0. secs (0.u,0.s) -Chars 581 - 592 [(repeat~red).] 0. secs (0.u,0.s) -Chars 593 - 608 [(intros;~inv~H0).] 0. secs (0.u,0.s) -Chars 614 - 634 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 581 - 592 [repeat~red.] 0. secs (0.u,0.s) +Chars 593 - 608 [intros;~inv~H0.] 0. secs (0.u,0.s) +Chars 614 - 634 [econstructor;~eauto.] 0. secs (0.u,0.s) Chars 635 - 647 [now~apply~H.] 0. secs (0.u,0.s) Chars 652 - 656 [Qed.] 0. secs (0.u,0.s) Chars 658 - 734 [Definition~not_wf_F_mon~:=~{|~...] 0. secs (0.u,0.s) @@ -22,157 +22,157 @@ Chars 953 - 988 [Hint~Constructors~wf_from:~not...] 0. secs (0.u,0.s) Chars 991 - 1077 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) Chars 1080 - 1086 [Proof.] 0. secs (0.u,0.s) Chars 1093 - 1111 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1112 - 1119 [(intros).] 0. secs (0.u,0.s) -Chars 1120 - 1179 [(destruct~(classic~(exists~a',...] 0. secs (0.u,0.s) +Chars 1112 - 1119 [intros.] 0. secs (0.u,0.s) +Chars 1120 - 1179 [destruct~(classic~(exists~a',~...] 0. secs (0.u,0.s) Chars 1184 - 1185 [-] 0. secs (0.u,0.s) -Chars 1186 - 1216 [(destruct~H0~as~[a'~[Hr~Hwf]]).] 0. secs (0.u,0.s) -Chars 1217 - 1237 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 1186 - 1216 [destruct~H0~as~[a'~[Hr~Hwf]].] 0. secs (0.u,0.s) +Chars 1217 - 1237 [econstructor;~eauto.] 0. secs (0.u,0.s) Chars 1242 - 1243 [-] 0. secs (0.u,0.s) -Chars 1244 - 1287 [(assert~(forall~a',~~~r~a~a'~\...] 0. secs (0.u,0.s) +Chars 1244 - 1287 [assert~(forall~a',~~~r~a~a'~\/...] 0. secs (0.u,0.s) Chars 1294 - 1295 [{] 0. secs (0.u,0.s) -Chars 1304 - 1311 [(intros).] 0. secs (0.u,0.s) -Chars 1320 - 1354 [(destruct~(classic~(r~a~a'));~...] 0.001 secs (0.u,0.s) -Chars 1355 - 1393 [(destruct~(classic~(wf_from~a'...] 0.001 secs (0.u,0.s) +Chars 1304 - 1311 [intros.] 0. secs (0.u,0.s) +Chars 1320 - 1354 [destruct~(classic~(r~a~a'));~a...] 0. secs (0.u,0.s) +Chars 1355 - 1393 [destruct~(classic~(wf_from~a')...] 0. secs (0.u,0.s) Chars 1402 - 1410 [exfalso.] 0. secs (0.u,0.s) -Chars 1411 - 1420 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1411 - 1420 [apply~H0.] 0. secs (0.u,0.s) Chars 1421 - 1431 [exists~a'.] 0. secs (0.u,0.s) Chars 1432 - 1437 [auto.] 0. secs (0.u,0.s) Chars 1444 - 1445 [}] 0. secs (0.u,0.s) Chars 1452 - 1461 [clear~H0.] 0. secs (0.u,0.s) Chars 1468 - 1476 [exfalso.] 0. secs (0.u,0.s) -Chars 1477 - 1485 [(apply~H).] 0. secs (0.u,0.s) +Chars 1477 - 1485 [apply~H.] 0. secs (0.u,0.s) Chars 1486 - 1494 [clear~H.] 0. secs (0.u,0.s) -Chars 1495 - 1506 [(apply~step).] 0. secs (0.u,0.s) -Chars 1507 - 1514 [(intros).] 0. secs (0.u,0.s) -Chars 1515 - 1550 [(destruct~(H1~a');~auto~with~n...] 0.002 secs (0.001u,0.s) -Chars 1553 - 1557 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1495 - 1506 [apply~step.] 0. secs (0.u,0.s) +Chars 1507 - 1514 [intros.] 0. secs (0.u,0.s) +Chars 1515 - 1550 [destruct~(H1~a');~auto~with~no...] 0.001 secs (0.001u,0.s) +Chars 1553 - 1557 [Qed.] 0. secs (0.u,0.s) Chars 1561 - 1648 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) Chars 1655 - 1661 [Proof.] 0. secs (0.u,0.s) -Chars 1668 - 1675 [(intros).] 0. secs (0.u,0.s) +Chars 1668 - 1675 [intros.] 0. secs (0.u,0.s) Chars 1676 - 1690 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 1691 - 1707 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 1691 - 1707 [repeat~red~in~H.] 0. secs (0.u,0.s) Chars 1708 - 1718 [step~in~H.] 0. secs (0.u,0.s) -Chars 1719 - 1731 [(inversion~H).] 0. secs (0.u,0.s) +Chars 1719 - 1731 [inversion~H.] 0. secs (0.u,0.s) Chars 1732 - 1740 [clear~H.] 0. secs (0.u,0.s) Chars 1741 - 1765 [generalize~dependent~a'.] 0. secs (0.u,0.s) -Chars 1770 - 1796 [(induction~Hcontra;~intros).] 0. secs (0.u,0.s) +Chars 1770 - 1796 [induction~Hcontra;~intros.] 0. secs (0.u,0.s) Chars 1801 - 1802 [-] 0. secs (0.u,0.s) -Chars 1803 - 1819 [(apply~H~in~Hrel).] 0. secs (0.u,0.s) +Chars 1803 - 1819 [apply~H~in~Hrel.] 0. secs (0.u,0.s) Chars 1820 - 1825 [auto.] 0. secs (0.u,0.s) Chars 1830 - 1831 [-] 0. secs (0.u,0.s) Chars 1832 - 1847 [step~in~Hcorec.] 0. secs (0.u,0.s) -Chars 1848 - 1865 [(inversion~Hcorec).] 0. secs (0.u,0.s) +Chars 1848 - 1865 [inversion~Hcorec.] 0. secs (0.u,0.s) Chars 1866 - 1900 [specialize~(H0~a'~Hrel~a'0~Hre...] 0. secs (0.u,0.s) Chars 1907 - 1912 [auto.] 0. secs (0.u,0.s) Chars 1915 - 1919 [Qed.] 0. secs (0.u,0.s) Chars 1923 - 2008 [Lemma~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) Chars 2011 - 2017 [Proof.] 0. secs (0.u,0.s) -Chars 2022 - 2102 [(split;~try~apply~neg_wf_from_...] 0. secs (0.u,0.s) +Chars 2022 - 2102 [split;~try~apply~neg_wf_from_n...] 0. secs (0.u,0.s) Chars 2105 - 2109 [Qed.] 0. secs (0.u,0.s) Chars 2113 - 2175 [Lemma~classic_wf~:~forall~a~:~...] 0. secs (0.u,0.s) Chars 2178 - 2184 [Proof.] 0. secs (0.u,0.s) -Chars 2189 - 2196 [(intros).] 0. secs (0.u,0.s) -Chars 2197 - 2234 [(destruct~(classic~(wf_from~a)...] 0. secs (0.u,0.s) -Chars 2239 - 2274 [(apply~neg_wf_from_not_wf_from...] 0. secs (0.u,0.s) +Chars 2189 - 2196 [intros.] 0. secs (0.u,0.s) +Chars 2197 - 2234 [destruct~(classic~(wf_from~a))...] 0. secs (0.u,0.s) +Chars 2239 - 2274 [apply~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) Chars 2275 - 2280 [auto.] 0. secs (0.u,0.s) Chars 2283 - 2287 [Qed.] 0. secs (0.u,0.s) Chars 2291 - 2462 [Lemma~intro_not_wf~:~~~forall~...] 0. secs (0.u,0.s) Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) -Chars 2476 - 2483 [(intros).] 0. secs (0.u,0.s) +Chars 2476 - 2483 [intros.] 0. secs (0.u,0.s) Chars 2484 - 2507 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 2508 - 2527 [(unfold~not_wf_from).] 0. secs (0.u,0.s) +Chars 2508 - 2527 [unfold~not_wf_from.] 0. secs (0.u,0.s) Chars 2532 - 2550 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2556 - 2563 [(intros).] 0. secs (0.u,0.s) -Chars 2569 - 2599 [(apply~not_wf~with~(a'~:=~f~a)).] 0. secs (0.u,0.s) +Chars 2556 - 2563 [intros.] 0. secs (0.u,0.s) +Chars 2569 - 2599 [apply~not_wf~with~(a'~:=~f~a).] 0. secs (0.u,0.s) Chars 2604 - 2605 [-] 0. secs (0.u,0.s) Chars 2606 - 2620 [auto~using~H1.] 0. secs (0.u,0.s) Chars 2625 - 2626 [-] 0. secs (0.u,0.s) -Chars 2627 - 2637 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2638 - 2655 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 2658 - 2662 [Qed.] 0. secs (0.u,0.s) +Chars 2627 - 2637 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2638 - 2655 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 2658 - 2662 [Qed.] 0.024 secs (0.022u,0.001s) Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0. secs (0.u,0.s) Chars 2855 - 2861 [Proof.] 0. secs (0.u,0.s) -Chars 2866 - 2879 [(intros~P~m~a).] 0. secs (0.u,0.s) -Chars 2880 - 2909 [(remember~(m~a)~as~ma~eqn:Hma~).] 0. secs (0.u,0.s) +Chars 2866 - 2879 [intros~P~m~a.] 0. secs (0.u,0.s) +Chars 2880 - 2909 [remember~(m~a)~as~ma~eqn:Hma~.] 0. secs (0.u,0.s) Chars 2910 - 2923 [revert~a~Hma.] 0. secs (0.u,0.s) -Chars 2928 - 2980 [(induction~ma~using~lt_wf_ind;...] 0.031 secs (0.029u,0.002s) -Chars 2985 - 3003 [(apply~step;~eauto).] 0. secs (0.u,0.s) +Chars 2928 - 2980 [induction~ma~using~lt_wf_ind;~...] 0. secs (0.u,0.s) +Chars 2985 - 3003 [apply~step;~eauto.] 0. secs (0.u,0.s) Chars 3006 - 3010 [Qed.] 0. secs (0.u,0.s) Chars 3012 - 3024 [End~IterRel.] 0. secs (0.u,0.s) Chars 3026 - 3118 [Definition~rel_rev~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 3189 - 3310 [Lemma~well_found_wf_from~:~~~f...] 0. secs (0.u,0.s) Chars 3311 - 3317 [Proof.] 0. secs (0.u,0.s) -Chars 3320 - 3337 [(intros~A~r~Hwf~a).] 0. secs (0.u,0.s) -Chars 3338 - 3365 [(unfold~well_founded~in~Hwf).] 0. secs (0.u,0.s) -Chars 3368 - 3388 [(unfold~rel_rev~in~*).] 0. secs (0.u,0.s) -Chars 3389 - 3407 [(induction~(Hwf~a)).] 0. secs (0.u,0.s) -Chars 3408 - 3419 [(apply~step).] 0. secs (0.u,0.s) -Chars 3420 - 3427 [(intros).] 0. secs (0.u,0.s) -Chars 3430 - 3445 [(apply~H0~in~H1).] 0. secs (0.u,0.s) +Chars 3320 - 3337 [intros~A~r~Hwf~a.] 0. secs (0.u,0.s) +Chars 3338 - 3365 [unfold~well_founded~in~Hwf.] 0. secs (0.u,0.s) +Chars 3368 - 3388 [unfold~rel_rev~in~*.] 0. secs (0.u,0.s) +Chars 3389 - 3407 [induction~(Hwf~a).] 0. secs (0.u,0.s) +Chars 3408 - 3419 [apply~step.] 0. secs (0.u,0.s) +Chars 3420 - 3427 [intros.] 0. secs (0.u,0.s) +Chars 3430 - 3445 [apply~H0~in~H1.] 0. secs (0.u,0.s) Chars 3446 - 3451 [auto.] 0. secs (0.u,0.s) Chars 3452 - 3456 [Qed.] 0. secs (0.u,0.s) Chars 3545 - 3675 [Lemma~wf_from_sub_rel~:~~~fora...] 0. secs (0.u,0.s) Chars 3676 - 3682 [Proof.] 0. secs (0.u,0.s) -Chars 3685 - 3692 [(intros).] 0. secs (0.u,0.s) -Chars 3693 - 3706 [(induction~H0).] 0. secs (0.u,0.s) +Chars 3685 - 3692 [intros.] 0. secs (0.u,0.s) +Chars 3693 - 3706 [induction~H0.] 0. secs (0.u,0.s) Chars 3709 - 3710 [-] 0. secs (0.u,0.s) -Chars 3711 - 3722 [(apply~base).] 0. secs (0.u,0.s) -Chars 3723 - 3741 [(intros~a'~Hcontra).] 0. secs (0.u,0.s) -Chars 3742 - 3761 [(apply~H~in~Hcontra).] 0. secs (0.u,0.s) -Chars 3762 - 3779 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 3711 - 3722 [apply~base.] 0. secs (0.u,0.s) +Chars 3723 - 3741 [intros~a'~Hcontra.] 0. secs (0.u,0.s) +Chars 3742 - 3761 [apply~H~in~Hcontra.] 0. secs (0.u,0.s) +Chars 3762 - 3779 [eapply~H0;~eauto.] 0. secs (0.u,0.s) Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3795 [(apply~step).] 0. secs (0.u,0.s) -Chars 3796 - 3813 [(intros~a'~Hr0aa').] 0. secs (0.u,0.s) -Chars 3814 - 3832 [(apply~H~in~Hr0aa').] 0. secs (0.u,0.s) +Chars 3784 - 3795 [apply~step.] 0. secs (0.u,0.s) +Chars 3796 - 3813 [intros~a'~Hr0aa'.] 0. secs (0.u,0.s) +Chars 3814 - 3832 [apply~H~in~Hr0aa'.] 0. secs (0.u,0.s) Chars 3833 - 3838 [auto.] 0. secs (0.u,0.s) Chars 3839 - 3843 [Qed.] 0. secs (0.u,0.s) Chars 3845 - 3915 [Lemma~wf_from_gt~:~forall~n~:~...] 0. secs (0.u,0.s) Chars 3916 - 3922 [Proof.] 0. secs (0.u,0.s) -Chars 3925 - 3932 [(intros).] 0. secs (0.u,0.s) -Chars 3935 - 4007 [(enough~(forall~n',~le~n'~n~->...] 0. secs (0.u,0.s) -Chars 4010 - 4030 [(induction~n;~intros).] 0. secs (0.u,0.s) +Chars 3925 - 3932 [intros.] 0. secs (0.u,0.s) +Chars 3935 - 4007 [enough~(forall~n',~le~n'~n~->~...] 0. secs (0.u,0.s) +Chars 4010 - 4030 [induction~n;~intros.] 0. secs (0.u,0.s) Chars 4033 - 4034 [-] 0. secs (0.u,0.s) -Chars 4035 - 4060 [(assert~(n'~=~0);~try~lia).] 0.002 secs (0.001u,0.s) +Chars 4035 - 4060 [assert~(n'~=~0);~try~lia.] 0.003 secs (0.u,0.s) Chars 4061 - 4067 [subst.] 0. secs (0.u,0.s) -Chars 4068 - 4079 [(apply~base).] 0. secs (0.u,0.s) -Chars 4080 - 4087 [(intros).] 0. secs (0.u,0.s) +Chars 4068 - 4079 [apply~base.] 0. secs (0.u,0.s) +Chars 4080 - 4087 [intros.] 0. secs (0.u,0.s) Chars 4088 - 4092 [lia.] 0. secs (0.u,0.s) Chars 4095 - 4096 [-] 0. secs (0.u,0.s) -Chars 4097 - 4108 [(apply~step).] 0. secs (0.u,0.s) -Chars 4109 - 4125 [(intros~n''~Hn'').] 0. secs (0.u,0.s) -Chars 4126 - 4153 [(assert~(le~n''~n);~try~lia).] 0. secs (0.u,0.s) +Chars 4097 - 4108 [apply~step.] 0. secs (0.u,0.s) +Chars 4109 - 4125 [intros~n''~Hn''.] 0. secs (0.u,0.s) +Chars 4126 - 4153 [assert~(le~n''~n);~try~lia.] 0. secs (0.u,0.s) Chars 4154 - 4159 [auto.] 0. secs (0.u,0.s) -Chars 4160 - 4164 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4160 - 4164 [Qed.] 0. secs (0.u,0.s) Chars 4183 - 4312 [Lemma~no_inf_dec_seq_aux~:~~~f...] 0. secs (0.u,0.s) Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) -Chars 4322 - 4329 [(intros).] 0. secs (0.u,0.s) -Chars 4330 - 4375 [(eapply~wf_from_sub_rel;~try~a...] 0. secs (0.u,0.s) -Chars 4378 - 4391 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4322 - 4329 [intros.] 0. secs (0.u,0.s) +Chars 4330 - 4375 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) +Chars 4378 - 4391 [repeat~intro.] 0. secs (0.u,0.s) Chars 4392 - 4397 [auto.] 0. secs (0.u,0.s) Chars 4398 - 4402 [Qed.] 0. secs (0.u,0.s) Chars 4587 - 4810 [Lemma~wf_intro_gt~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4811 - 4817 [Proof.] 0. secs (0.u,0.s) -Chars 4820 - 4851 [(intros~A~r~f~inv~a~Hinv~Hgt~Ha).] 0. secs (0.u,0.s) -Chars 4854 - 4875 [(remember~(f~a)~as~n0).] 0. secs (0.u,0.s) +Chars 4820 - 4851 [intros~A~r~f~inv~a~Hinv~Hgt~Ha.] 0. secs (0.u,0.s) +Chars 4854 - 4875 [remember~(f~a)~as~n0.] 0. secs (0.u,0.s) Chars 4878 - 4901 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 4904 - 4959 [(enough~(forall~a,~le~(f~a)~n0...] 0. secs (0.u,0.s) +Chars 4904 - 4959 [enough~(forall~a,~le~(f~a)~n0~...] 0. secs (0.u,0.s) Chars 4962 - 4963 [{] 0. secs (0.u,0.s) -Chars 4968 - 4975 [(intros).] 0. secs (0.u,0.s) -Chars 4976 - 4984 [(apply~H).] 0. secs (0.u,0.s) +Chars 4968 - 4975 [intros.] 0. secs (0.u,0.s) +Chars 4976 - 4984 [apply~H.] 0. secs (0.u,0.s) Chars 4985 - 4989 [lia.] 0. secs (0.u,0.s) Chars 4990 - 4995 [auto.] 0. secs (0.u,0.s) Chars 4998 - 4999 [}] 0. secs (0.u,0.s) -Chars 5002 - 5023 [(induction~n0;~intros).] 0. secs (0.u,0.s) +Chars 5002 - 5023 [induction~n0;~intros.] 0. secs (0.u,0.s) Chars 5026 - 5027 [-] 0. secs (0.u,0.s) -Chars 5028 - 5039 [(apply~base).] 0. secs (0.u,0.s) -Chars 5040 - 5066 [(assert~(f~a~=~0);~try~lia).] 0. secs (0.u,0.s) -Chars 5071 - 5089 [(intros~a'~Hcontra).] 0. secs (0.u,0.s) +Chars 5028 - 5039 [apply~base.] 0. secs (0.u,0.s) +Chars 5040 - 5066 [assert~(f~a~=~0);~try~lia.] 0. secs (0.u,0.s) +Chars 5071 - 5089 [intros~a'~Hcontra.] 0. secs (0.u,0.s) Chars 5094 - 5127 [specialize~(Hgt~a~a'~H0~Hcontra).] 0. secs (0.u,0.s) Chars 5128 - 5132 [lia.] 0. secs (0.u,0.s) Chars 5135 - 5136 [-] 0. secs (0.u,0.s) -Chars 5137 - 5148 [(apply~step).] 0. secs (0.u,0.s) -Chars 5149 - 5163 [(intros~a'~Ha').] 0. secs (0.u,0.s) -Chars 5168 - 5186 [(apply~IHn0;~eauto).] 0. secs (0.u,0.s) -Chars 5191 - 5218 [(assert~(f~a~>~f~a');~eauto).] 0. secs (0.u,0.s) +Chars 5137 - 5148 [apply~step.] 0. secs (0.u,0.s) +Chars 5149 - 5163 [intros~a'~Ha'.] 0. secs (0.u,0.s) +Chars 5168 - 5186 [apply~IHn0;~eauto.] 0. secs (0.u,0.s) +Chars 5191 - 5218 [assert~(f~a~>~f~a');~eauto.] 0. secs (0.u,0.s) Chars 5219 - 5223 [lia.] 0. secs (0.u,0.s) Chars 5224 - 5228 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/PureITreeBasics.v.timing b/extra/Dijkstra/PureITreeBasics.v.timing index 2fab28fd..01c5e4ed 100644 --- a/extra/Dijkstra/PureITreeBasics.v.timing +++ b/extra/Dijkstra/PureITreeBasics.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.225 secs (0.195u,0.029s) +Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.162 secs (0.143u,0.016s) Chars 182 - 196 [Import~Monads.] 0. secs (0.u,0.s) Chars 197 - 218 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 219 - 251 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -11,141 +11,141 @@ Chars 489 - 565 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) Chars 567 - 628 [#[local]~Tactic~Notation~"sinv...] 0. secs (0.u,0.s) Chars 708 - 814 [Lemma~spin_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) Chars 815 - 821 [Proof.] 0. secs (0.u,0.s) -Chars 824 - 831 [(intros).] 0. secs (0.u,0.s) -Chars 832 - 844 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 845 - 851 [(simpl).] 0. secs (0.u,0.s) +Chars 824 - 831 [intros.] 0. secs (0.u,0.s) +Chars 832 - 844 [coinduction.] 0.002 secs (0.001u,0.s) +Chars 845 - 851 [simpl.] 0. secs (0.u,0.s) Chars 854 - 870 [now~constructor.] 0. secs (0.u,0.s) -Chars 871 - 875 [Qed.] 0.004 secs (0.003u,0.001s) +Chars 871 - 875 [Qed.] 0.003 secs (0.002u,0.s) Chars 1051 - 1206 [Definition~tau_invar~(E~:~Type...] 0. secs (0.u,0.s) Chars 1382 - 1435 [Notation~resp_eutt~P:=~(Proper...] 0. secs (0.u,0.s) Chars 1437 - 1619 [Lemma~tau_invar_resp_eutt1~:~~...] 0. secs (0.u,0.s) Chars 1622 - 1628 [Proof.] 0. secs (0.u,0.s) -Chars 1633 - 1640 [(intros).] 0. secs (0.u,0.s) -Chars 1641 - 1658 [(unfold~tau_invar).] 0. secs (0.u,0.s) -Chars 1659 - 1735 [(split;~intros;~eapply~H;~try~...] 0.004 secs (0.003u,0.001s) +Chars 1633 - 1640 [intros.] 0. secs (0.u,0.s) +Chars 1641 - 1658 [unfold~tau_invar.] 0. secs (0.u,0.s) +Chars 1659 - 1735 [split;~intros;~eapply~H;~try~e...] 0.026 secs (0.024u,0.001s) Chars 1738 - 1742 [Qed.] 0. secs (0.u,0.s) Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0. secs (0.u,0.s) Chars 1899 - 1905 [Proof.] 0. secs (0.u,0.s) -Chars 1908 - 1917 [(intros~A).] 0. secs (0.u,0.s) -Chars 1918 - 1930 [coinduction.] 0.033 secs (0.03u,0.002s) -Chars 1931 - 1938 [(intros).] 0. secs (0.u,0.s) -Chars 1939 - 1943 [(cbn).] 0. secs (0.u,0.s) -Chars 1946 - 1978 [(destruct~(observe~t)~eqn:Heqt).] 0. secs (0.u,0.s) +Chars 1908 - 1917 [intros~A.] 0. secs (0.u,0.s) +Chars 1918 - 1930 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1931 - 1938 [intros.] 0. secs (0.u,0.s) +Chars 1939 - 1943 [cbn.] 0. secs (0.u,0.s) +Chars 1946 - 1978 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) Chars 1981 - 1982 [-] 0. secs (0.u,0.s) Chars 1983 - 2016 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2017 - 2038 [(rewrite~Heqt~in~Heta).] 0. secs (0.u,0.s) -Chars 2039 - 2057 [(rewrite~Heta~in~H).] 0.001 secs (0.001u,0.s) -Chars 2058 - 2065 [sinv~H.] 0.001 secs (0.001u,0.s) +Chars 2017 - 2038 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) +Chars 2039 - 2057 [rewrite~Heta~in~H.] 0.001 secs (0.001u,0.s) +Chars 2058 - 2065 [sinv~H.] 0. secs (0.u,0.s) Chars 2069 - 2070 [-] 0. secs (0.u,0.s) Chars 2071 - 2083 [constructor.] 0. secs (0.u,0.s) -Chars 2084 - 2094 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2084 - 2094 [apply~CIH.] 0. secs (0.u,0.s) Chars 2095 - 2128 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2129 - 2150 [(rewrite~Heqt~in~Heta).] 0. secs (0.u,0.s) -Chars 2155 - 2177 [(assert~(t~≈~Tau~t0)).] 0. secs (0.u,0.s) +Chars 2129 - 2150 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) +Chars 2155 - 2177 [assert~(t~≈~Tau~t0).] 0. secs (0.u,0.s) Chars 2182 - 2183 [+] 0. secs (0.u,0.s) -Chars 2184 - 2197 [(rewrite~Heta).] 0. secs (0.u,0.s) +Chars 2184 - 2197 [rewrite~Heta.] 0. secs (0.u,0.s) Chars 2198 - 2210 [reflexivity.] 0. secs (0.u,0.s) Chars 2215 - 2216 [+] 0. secs (0.u,0.s) -Chars 2217 - 2237 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 2238 - 2252 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) +Chars 2217 - 2237 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 2238 - 2252 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) Chars 2253 - 2258 [auto.] 0. secs (0.u,0.s) Chars 2261 - 2262 [-] 0. secs (0.u,0.s) -Chars 2263 - 2274 [(destruct~e).] 0. secs (0.u,0.s) -Chars 2275 - 2279 [Qed.] 0.006 secs (0.006u,0.s) +Chars 2263 - 2274 [destruct~e.] 0. secs (0.u,0.s) +Chars 2275 - 2279 [Qed.] 0.004 secs (0.004u,0.s) Chars 2281 - 2383 [Lemma~eutt_reta_or_div_aux~:~~...] 0. secs (0.u,0.s) Chars 2384 - 2390 [Proof.] 0. secs (0.u,0.s) Chars 2393 - 2401 [intro~A.] 0. secs (0.u,0.s) -Chars 2402 - 2437 [(unfold~any_infinite,~any_infi...] 0. secs (0.u,0.s) +Chars 2402 - 2437 [unfold~any_infinite,~any_infin...] 0. secs (0.u,0.s) Chars 2441 - 2459 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2463 - 2470 [(intros).] 0. secs (0.u,0.s) -Chars 2471 - 2503 [(destruct~(observe~t)~eqn:Heqt).] 0. secs (0.u,0.s) +Chars 2463 - 2470 [intros.] 0. secs (0.u,0.s) +Chars 2471 - 2503 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) Chars 2506 - 2507 [-] 0. secs (0.u,0.s) Chars 2508 - 2516 [exfalso.] 0. secs (0.u,0.s) Chars 2517 - 2550 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2551 - 2572 [(rewrite~Heqt~in~Heta).] 0. secs (0.u,0.s) -Chars 2573 - 2581 [(apply~H).] 0. secs (0.u,0.s) +Chars 2551 - 2572 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) +Chars 2573 - 2581 [apply~H.] 0. secs (0.u,0.s) Chars 2586 - 2595 [exists~r.] 0. secs (0.u,0.s) -Chars 2596 - 2609 [(rewrite~Heta).] 0.001 secs (0.001u,0.s) +Chars 2596 - 2609 [rewrite~Heta.] 0. secs (0.u,0.s) Chars 2610 - 2622 [reflexivity.] 0. secs (0.u,0.s) Chars 2625 - 2626 [-] 0. secs (0.u,0.s) -Chars 2627 - 2660 [(repeat~red;~simpobs;~construc...] 0. secs (0.u,0.s) -Chars 2661 - 2679 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) +Chars 2627 - 2660 [repeat~red;~simpobs;~constructor.] 0. secs (0.u,0.s) +Chars 2661 - 2679 [eapply~CIH;~eauto.] 0.033 secs (0.033u,0.s) Chars 2680 - 2686 [intro.] 0. secs (0.u,0.s) -Chars 2687 - 2695 [(apply~H).] 0. secs (0.u,0.s) -Chars 2700 - 2722 [(destruct~H0~as~[a~Ha]).] 0. secs (0.u,0.s) +Chars 2687 - 2695 [apply~H.] 0. secs (0.u,0.s) +Chars 2700 - 2722 [destruct~H0~as~[a~Ha].] 0. secs (0.u,0.s) Chars 2723 - 2732 [exists~a.] 0. secs (0.u,0.s) -Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0.04 secs (0.04u,0.s) -Chars 2765 - 2784 [(rewrite~Heqt~in~Ht).] 0. secs (0.u,0.s) -Chars 2789 - 2800 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 2801 - 2818 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) +Chars 2765 - 2784 [rewrite~Heqt~in~Ht.] 0. secs (0.u,0.s) +Chars 2789 - 2800 [rewrite~Ht.] 0. secs (0.u,0.s) +Chars 2801 - 2818 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 2819 - 2824 [auto.] 0. secs (0.u,0.s) Chars 2827 - 2828 [-] 0. secs (0.u,0.s) -Chars 2829 - 2840 [(destruct~e).] 0. secs (0.u,0.s) -Chars 2841 - 2845 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2829 - 2840 [destruct~e.] 0. secs (0.u,0.s) +Chars 2841 - 2845 [Qed.] 0.001 secs (0.001u,0.s) Chars 2984 - 3083 [Lemma~eutt_reta_or_div~:~~~for...] 0. secs (0.u,0.s) Chars 3084 - 3090 [Proof.] 0. secs (0.u,0.s) -Chars 3093 - 3104 [(intros~A~t).] 0. secs (0.u,0.s) +Chars 3093 - 3104 [intros~A~t.] 0. secs (0.u,0.s) Chars 3106 - 3160 [specialize~(classic~(exists~a,...] 0. secs (0.u,0.s) -Chars 3161 - 3181 [(destruct~Hlem;~auto).] 0. secs (0.u,0.s) +Chars 3161 - 3181 [destruct~Hlem;~auto.] 0. secs (0.u,0.s) Chars 3184 - 3190 [right.] 0. secs (0.u,0.s) -Chars 3191 - 3218 [(apply~eutt_reta_or_div_aux).] 0. secs (0.u,0.s) +Chars 3191 - 3218 [apply~eutt_reta_or_div_aux.] 0. secs (0.u,0.s) Chars 3219 - 3224 [auto.] 0. secs (0.u,0.s) Chars 3225 - 3229 [Qed.] 0. secs (0.u,0.s) Chars 3231 - 3327 [Lemma~ret_not_div~:~~~forall~(...] 0. secs (0.u,0.s) Chars 3328 - 3334 [Proof.] 0. secs (0.u,0.s) -Chars 3337 - 3344 [(intros).] 0. secs (0.u,0.s) +Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) Chars 3345 - 3359 [intro~Hcontra.] 0. secs (0.u,0.s) Chars 3360 - 3373 [sinv~Hcontra.] 0. secs (0.u,0.s) Chars 3375 - 3379 [Qed.] 0. secs (0.u,0.s) Chars 3381 - 3451 [Lemma~not_ret_eutt_spin~:~fora...] 0. secs (0.u,0.s) Chars 3452 - 3458 [Proof.] 0. secs (0.u,0.s) -Chars 3461 - 3468 [(intros).] 0. secs (0.u,0.s) +Chars 3461 - 3468 [intros.] 0. secs (0.u,0.s) Chars 3469 - 3483 [intro~Hcontra.] 0. secs (0.u,0.s) Chars 3484 - 3504 [symmetry~in~Hcontra.] 0. secs (0.u,0.s) -Chars 3505 - 3543 [(revert~Hcontra;~apply~no_infi...] 0. secs (0.u,0.s) -Chars 3546 - 3566 [(apply~spin_infinite).] 0. secs (0.u,0.s) +Chars 3505 - 3543 [revert~Hcontra;~apply~no_infin...] 0. secs (0.u,0.s) +Chars 3546 - 3566 [apply~spin_infinite.] 0. secs (0.u,0.s) Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) Chars 3573 - 3692 [Lemma~eutt_ret_euttge~:~~~fora...] 0. secs (0.u,0.s) Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) -Chars 3702 - 3709 [(intros).] 0. secs (0.u,0.s) +Chars 3702 - 3709 [intros.] 0. secs (0.u,0.s) Chars 3710 - 3733 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 3734 - 3753 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 3754 - 3761 [(intros).] 0. secs (0.u,0.s) -Chars 3762 - 3769 [sinv~H.] 0.028 secs (0.025u,0.002s) +Chars 3734 - 3753 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3754 - 3761 [intros.] 0. secs (0.u,0.s) +Chars 3762 - 3769 [sinv~H.] 0.017 secs (0.017u,0.s) Chars 3773 - 3774 [-] 0. secs (0.u,0.s) Chars 3775 - 3780 [taul.] 0. secs (0.u,0.s) -Chars 3821 - 3848 [(remember~(observe~(Ret~a))).] 0.001 secs (0.001u,0.s) -Chars 3853 - 3877 [(induction~REL;~try~easy).] 0.053 secs (0.053u,0.s) +Chars 3821 - 3848 [remember~(observe~(Ret~a)).] 0.001 secs (0.001u,0.s) +Chars 3853 - 3877 [induction~REL;~try~easy.] 0.039 secs (0.039u,0.s) Chars 3883 - 3884 [+] 0. secs (0.u,0.s) Chars 3885 - 3890 [eret.] 0. secs (0.u,0.s) Chars 3896 - 3897 [+] 0. secs (0.u,0.s) Chars 3898 - 3903 [taul.] 0. secs (0.u,0.s) Chars 3904 - 3920 [now~apply~IHREL.] 0. secs (0.u,0.s) -Chars 3923 - 3927 [Qed.] 0.012 secs (0.011u,0.s) +Chars 3923 - 3927 [Qed.] 0.008 secs (0.008u,0.s) Chars 3929 - 4012 [Lemma~unfold_spin~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4013 - 4019 [Proof.] 0. secs (0.u,0.s) -Chars 4022 - 4029 [(intros).] 0. secs (0.u,0.s) +Chars 4022 - 4029 [intros.] 0. secs (0.u,0.s) Chars 4030 - 4035 [step.] 0.001 secs (0.001u,0.s) -Chars 4036 - 4040 [(cbn).] 0. secs (0.u,0.s) +Chars 4036 - 4040 [cbn.] 0. secs (0.u,0.s) Chars 4041 - 4053 [reflexivity.] 0. secs (0.u,0.s) Chars 4055 - 4059 [Qed.] 0.002 secs (0.002u,0.s) Chars 4061 - 4160 [Lemma~burn_eutt_r~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4161 - 4167 [Proof.] 0. secs (0.u,0.s) -Chars 4170 - 4177 [(intros).] 0. secs (0.u,0.s) +Chars 4170 - 4177 [intros.] 0. secs (0.u,0.s) Chars 4178 - 4201 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 4202 - 4226 [generalize~dependent~t'.] 0. secs (0.u,0.s) -Chars 4227 - 4260 [(induction~n;~intros;~simpl;~a...] 0. secs (0.u,0.s) -Chars 4263 - 4310 [(destruct~(observe~t)~eqn:Heq;...] 0.001 secs (0.001u,0.s) +Chars 4227 - 4260 [induction~n;~intros;~simpl;~auto.] 0. secs (0.u,0.s) +Chars 4263 - 4310 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) Chars 4313 - 4314 [-] 0. secs (0.u,0.s) Chars 4315 - 4346 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 4347 - 4365 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) -Chars 4366 - 4380 [(rewrite~<-~Ht).] 0. secs (0.u,0.s) +Chars 4347 - 4365 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) +Chars 4366 - 4380 [rewrite~<-~Ht.] 0. secs (0.u,0.s) Chars 4381 - 4386 [auto.] 0. secs (0.u,0.s) Chars 4389 - 4390 [-] 0. secs (0.u,0.s) -Chars 4391 - 4401 [(apply~IHn).] 0. secs (0.u,0.s) +Chars 4391 - 4401 [apply~IHn.] 0. secs (0.u,0.s) Chars 4402 - 4433 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 4434 - 4452 [(rewrite~Heq~in~Ht).] 0. secs (0.u,0.s) -Chars 4453 - 4469 [(rewrite~Ht~in~H).] 0.016 secs (0.015u,0.s) -Chars 4474 - 4496 [(rewrite~tau_eutt~in~H).] 0.017 secs (0.016u,0.s) +Chars 4434 - 4452 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) +Chars 4453 - 4469 [rewrite~Ht~in~H.] 0.011 secs (0.011u,0.s) +Chars 4474 - 4496 [rewrite~tau_eutt~in~H.] 0.011 secs (0.01u,0.s) Chars 4497 - 4502 [auto.] 0. secs (0.u,0.s) -Chars 4503 - 4507 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4503 - 4507 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/PureITreeDijkstra.v.timing b/extra/Dijkstra/PureITreeDijkstra.v.timing index 879377c8..b4da22df 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v.timing +++ b/extra/Dijkstra/PureITreeDijkstra.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) Chars 39 - 88 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 90 - 180 [From~ITree~Require~Import~Inde...] 0.221 secs (0.192u,0.028s) -Chars 182 - 272 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.001u,0.s) +Chars 90 - 180 [From~ITree~Require~Import~Inde...] 0.158 secs (0.141u,0.016s) +Chars 182 - 272 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) Chars 274 - 288 [Import~Monads.] 0. secs (0.u,0.s) Chars 289 - 310 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 311 - 343 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -12,18 +12,18 @@ Chars 719 - 943 [Definition~monotonici~A~(w~:~_...] 0. secs (0.u,0.s) Chars 970 - 1116 [Definition~dmonot~A~(w~:~_Pure...] 0. secs (0.u,0.s) Chars 1206 - 1293 [Lemma~monot_imp_dmonot~:~~~for...] 0. secs (0.u,0.s) Chars 1296 - 1302 [Proof.] 0. secs (0.u,0.s) -Chars 1307 - 1333 [(unfold~monotonici,~dmonot).] 0. secs (0.u,0.s) -Chars 1334 - 1341 [(intros).] 0. secs (0.u,0.s) +Chars 1307 - 1333 [unfold~monotonici,~dmonot.] 0. secs (0.u,0.s) +Chars 1334 - 1341 [intros.] 0. secs (0.u,0.s) Chars 1342 - 1348 [split.] 0. secs (0.u,0.s) Chars 1353 - 1354 [-] 0. secs (0.u,0.s) -Chars 1355 - 1369 [(apply~H;~auto).] 0. secs (0.u,0.s) -Chars 1370 - 1377 [(intros).] 0. secs (0.u,0.s) -Chars 1378 - 1387 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1355 - 1369 [apply~H;~auto.] 0. secs (0.u,0.s) +Chars 1370 - 1377 [intros.] 0. secs (0.u,0.s) +Chars 1378 - 1387 [apply~H0.] 0. secs (0.u,0.s) Chars 1388 - 1393 [auto.] 0. secs (0.u,0.s) Chars 1398 - 1399 [-] 0. secs (0.u,0.s) -Chars 1400 - 1414 [(apply~H;~auto).] 0. secs (0.u,0.s) -Chars 1415 - 1422 [(intros).] 0. secs (0.u,0.s) -Chars 1423 - 1432 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1400 - 1414 [apply~H;~auto.] 0. secs (0.u,0.s) +Chars 1415 - 1422 [intros.] 0. secs (0.u,0.s) +Chars 1423 - 1432 [apply~H0.] 0. secs (0.u,0.s) Chars 1433 - 1438 [auto.] 0. secs (0.u,0.s) Chars 1441 - 1445 [Qed.] 0. secs (0.u,0.s) Chars 1493 - 1635 [Definition~amonot~A~(w~:~_Pure...] 0. secs (0.u,0.s) @@ -31,532 +31,532 @@ Chars 1650 - 1720 [Definition~PureITreeSpec~A~:=~...] 0. secs (0.u,0.s) Chars 1780 - 1849 [Definition~_div_spec~A~:~_Pure...] 0. secs (0.u,0.s) Chars 1853 - 1913 [Lemma~div_spec_monot~:~forall~...] 0. secs (0.u,0.s) Chars 1918 - 1924 [Proof.] 0. secs (0.u,0.s) -Chars 1931 - 1960 [(unfold~monotonici,~_div_spec).] 0. secs (0.u,0.s) +Chars 1931 - 1960 [unfold~monotonici,~_div_spec.] 0. secs (0.u,0.s) Chars 1961 - 1966 [auto.] 0. secs (0.u,0.s) Chars 1971 - 1975 [Qed.] 0. secs (0.u,0.s) Chars 1979 - 2037 [Lemma~div_spec_amonot~:~forall...] 0. secs (0.u,0.s) Chars 2040 - 2046 [Proof.] 0. secs (0.u,0.s) -Chars 2051 - 2076 [(unfold~amonot,~_div_spec).] 0. secs (0.u,0.s) -Chars 2077 - 2084 [(intros).] 0. secs (0.u,0.s) +Chars 2051 - 2076 [unfold~amonot,~_div_spec.] 0. secs (0.u,0.s) +Chars 2077 - 2084 [intros.] 0. secs (0.u,0.s) Chars 2085 - 2090 [auto.] 0. secs (0.u,0.s) Chars 2093 - 2099 [Abort.] 0. secs (0.u,0.s) Chars 2102 - 2168 [Definition~div_spec~A~:=~exist...] 0. secs (0.u,0.s) Chars 2278 - 2349 [Definition~_retpi~A~(a~:~A)~:~...] 0. secs (0.u,0.s) Chars 2353 - 2417 [Lemma~retpi_monot~:~forall~A~(...] 0. secs (0.u,0.s) Chars 2420 - 2426 [Proof.] 0. secs (0.u,0.s) -Chars 2431 - 2449 [(unfold~monotonici).] 0. secs (0.u,0.s) -Chars 2450 - 2460 [intuition.] 0.005 secs (0.003u,0.001s) -Chars 2461 - 2480 [(unfold~_retpi~in~*).] 0. secs (0.u,0.s) +Chars 2431 - 2449 [unfold~monotonici.] 0. secs (0.u,0.s) +Chars 2450 - 2460 [intuition.] 0.003 secs (0.003u,0.s) +Chars 2461 - 2480 [unfold~_retpi~in~*.] 0. secs (0.u,0.s) Chars 2481 - 2486 [auto.] 0. secs (0.u,0.s) Chars 2489 - 2493 [Qed.] 0. secs (0.u,0.s) Chars 2497 - 2560 [Lemma~retpi_amonot~:~forall~A~...] 0. secs (0.u,0.s) Chars 2563 - 2569 [Proof.] 0. secs (0.u,0.s) -Chars 2574 - 2596 [(unfold~amonot,~_retpi).] 0. secs (0.u,0.s) -Chars 2597 - 2604 [(intros).] 0. secs (0.u,0.s) +Chars 2574 - 2596 [unfold~amonot,~_retpi.] 0. secs (0.u,0.s) +Chars 2597 - 2604 [intros.] 0. secs (0.u,0.s) Chars 2609 - 2615 [Abort.] 0. secs (0.u,0.s) -Chars 2690 - 3003 [Lemma~bind_pred_resp_eutt~:~~~...] 0.001 secs (0.u,0.s) +Chars 2690 - 3003 [Lemma~bind_pred_resp_eutt~:~~~...] 0. secs (0.u,0.s) Chars 3006 - 3012 [Proof.] 0. secs (0.u,0.s) -Chars 3017 - 3024 [(intros).] 0. secs (0.u,0.s) -Chars 3025 - 3044 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 3045 - 3066 [setoid_rewrite~Heutt.] 0.035 secs (0.031u,0.004s) +Chars 3017 - 3024 [intros.] 0. secs (0.u,0.s) +Chars 3025 - 3044 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 3045 - 3066 [setoid_rewrite~Heutt.] 0.025 secs (0.023u,0.001s) Chars 3067 - 3079 [reflexivity.] 0. secs (0.u,0.s) Chars 3082 - 3086 [Qed.] 0. secs (0.u,0.s) -Chars 3301 - 3642 [Definition~_bindpi~A~B~(w~:~_P...] 0.001 secs (0.001u,0.s) +Chars 3301 - 3642 [Definition~_bindpi~A~B~(w~:~_P...] 0. secs (0.u,0.s) Chars 3646 - 3819 [Lemma~bindpi_monot~:~~~forall~...] 0. secs (0.u,0.s) Chars 3822 - 3828 [Proof.] 0. secs (0.u,0.s) -Chars 3833 - 3851 [(unfold~monotonici).] 0. secs (0.u,0.s) -Chars 3852 - 3859 [(intros).] 0. secs (0.u,0.s) -Chars 3860 - 3880 [(unfold~_bindpi~in~*).] 0. secs (0.u,0.s) -Chars 3885 - 4012 [(set~~~(fp~:=~~~~fun~(t~:~itre...] 0. secs (0.u,0.s) -Chars 4017 - 4061 [(enough~(forall~t,~fp~t~p~Hp~-...] 0. secs (0.u,0.s) +Chars 3833 - 3851 [unfold~monotonici.] 0. secs (0.u,0.s) +Chars 3852 - 3859 [intros.] 0. secs (0.u,0.s) +Chars 3860 - 3880 [unfold~_bindpi~in~*.] 0. secs (0.u,0.s) +Chars 3885 - 4012 [set~~(fp~:=~~~fun~(t~:~itree~v...] 0. secs (0.u,0.s) +Chars 4017 - 4061 [enough~(forall~t,~fp~t~p~Hp~->...] 0. secs (0.u,0.s) Chars 4066 - 4067 [-] 0. secs (0.u,0.s) -Chars 4068 - 4108 [(eapply~H~with~(p~:=~fun~t~=>~...] 0. secs (0.u,0.s) +Chars 4068 - 4108 [eapply~H~with~(p~:=~fun~t~=>~f...] 0. secs (0.u,0.s) Chars 4115 - 4116 [+] 0. secs (0.u,0.s) -Chars 4117 - 4124 [(intros).] 0. secs (0.u,0.s) -Chars 4126 - 4141 [(apply~H3~in~H4).] 0. secs (0.u,0.s) -Chars 4150 - 4166 [(unfold~fp~in~H4).] 0. secs (0.u,0.s) -Chars 4167 - 4185 [(destruct~H4;~auto).] 0.001 secs (0.001u,0.s) -Chars 4194 - 4206 [(destruct~H4).] 0. secs (0.u,0.s) +Chars 4117 - 4124 [intros.] 0. secs (0.u,0.s) +Chars 4126 - 4141 [apply~H3~in~H4.] 0. secs (0.u,0.s) +Chars 4150 - 4166 [unfold~fp~in~H4.] 0. secs (0.u,0.s) +Chars 4167 - 4185 [destruct~H4;~auto.] 0. secs (0.u,0.s) +Chars 4194 - 4206 [destruct~H4.] 0. secs (0.u,0.s) Chars 4207 - 4213 [right.] 0. secs (0.u,0.s) Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) Chars 4226 - 4227 [+] 0. secs (0.u,0.s) -Chars 4228 - 4237 [(apply~H2).] 0. secs (0.u,0.s) +Chars 4228 - 4237 [apply~H2.] 0. secs (0.u,0.s) Chars 4242 - 4243 [-] 0. secs (0.u,0.s) -Chars 4244 - 4254 [(unfold~fp).] 0. secs (0.u,0.s) -Chars 4255 - 4262 [(intros).] 0. secs (0.u,0.s) -Chars 4263 - 4281 [(destruct~H3;~auto).] 0. secs (0.u,0.s) +Chars 4244 - 4254 [unfold~fp.] 0. secs (0.u,0.s) +Chars 4255 - 4262 [intros.] 0. secs (0.u,0.s) +Chars 4263 - 4281 [destruct~H3;~auto.] 0. secs (0.u,0.s) Chars 4282 - 4287 [left.] 0. secs (0.u,0.s) -Chars 4294 - 4301 [(intros).] 0. secs (0.u,0.s) -Chars 4302 - 4334 [(destruct~H3~as~[a~[Hvala~Hfa]]).] 0. secs (0.u,0.s) +Chars 4294 - 4301 [intros.] 0. secs (0.u,0.s) +Chars 4302 - 4334 [destruct~H3~as~[a~[Hvala~Hfa]].] 0. secs (0.u,0.s) Chars 4341 - 4350 [exists~a.] 0. secs (0.u,0.s) -Chars 4351 - 4363 [(split;~auto).] 0. secs (0.u,0.s) -Chars 4370 - 4393 [(eapply~H0;~[~eauto~|~~]).] 0. secs (0.u,0.s) -Chars 4400 - 4427 [(revert~Hfa;~apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 4351 - 4363 [split;~auto.] 0. secs (0.u,0.s) +Chars 4370 - 4393 [eapply~H0;~[~eauto~|~~].] 0. secs (0.u,0.s) +Chars 4400 - 4427 [revert~Hfa;~apply~H0;~auto.] 0. secs (0.u,0.s) Chars 4430 - 4434 [Qed.] 0.001 secs (0.001u,0.s) Chars 4503 - 4594 [Definition~retpi~A~(a~:~A)~:~P...] 0. secs (0.u,0.s) Chars 4664 - 4922 [Definition~bindpi~A~B~(w~:~Pur...] 0. secs (0.u,0.s) Chars 4926 - 5078 [Lemma~inf_tree_pred_resp_eutt~...] 0. secs (0.u,0.s) Chars 5081 - 5087 [Proof.] 0. secs (0.u,0.s) -Chars 5092 - 5099 [(intros).] 0. secs (0.u,0.s) -Chars 5100 - 5119 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 5120 - 5134 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 5092 - 5099 [intros.] 0. secs (0.u,0.s) +Chars 5100 - 5119 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 5120 - 5134 [rewrite~Heutt.] 0. secs (0.u,0.s) Chars 5135 - 5147 [reflexivity.] 0. secs (0.u,0.s) Chars 5150 - 5154 [Qed.] 0. secs (0.u,0.s) Chars 5158 - 5322 [Lemma~term_b_pred_resp_eutt~:~...] 0. secs (0.u,0.s) Chars 5325 - 5331 [Proof.] 0. secs (0.u,0.s) -Chars 5336 - 5343 [(intros).] 0. secs (0.u,0.s) -Chars 5344 - 5363 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 5364 - 5378 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5336 - 5343 [intros.] 0. secs (0.u,0.s) +Chars 5344 - 5363 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 5364 - 5378 [split;~intros.] 0. secs (0.u,0.s) Chars 5383 - 5384 [-] 0. secs (0.u,0.s) -Chars 5385 - 5396 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5385 - 5396 [destruct~H.] 0. secs (0.u,0.s) Chars 5397 - 5406 [exists~x.] 0. secs (0.u,0.s) -Chars 5407 - 5424 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5407 - 5424 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 5425 - 5430 [auto.] 0. secs (0.u,0.s) Chars 5435 - 5436 [-] 0. secs (0.u,0.s) -Chars 5437 - 5448 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5437 - 5448 [destruct~H.] 0. secs (0.u,0.s) Chars 5449 - 5458 [exists~x.] 0. secs (0.u,0.s) -Chars 5459 - 5473 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5459 - 5473 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 5474 - 5479 [auto.] 0. secs (0.u,0.s) -Chars 5482 - 5486 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5482 - 5486 [Qed.] 0. secs (0.u,0.s) Chars 5490 - 5679 [Lemma~cont_a_pred_resp_eutt~:~...] 0. secs (0.u,0.s) Chars 5682 - 5688 [Proof.] 0. secs (0.u,0.s) -Chars 5693 - 5700 [(intros).] 0. secs (0.u,0.s) -Chars 5701 - 5720 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 5721 - 5735 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5693 - 5700 [intros.] 0. secs (0.u,0.s) +Chars 5701 - 5720 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 5721 - 5735 [split;~intros.] 0. secs (0.u,0.s) Chars 5740 - 5741 [-] 0. secs (0.u,0.s) -Chars 5742 - 5753 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5742 - 5753 [destruct~H.] 0. secs (0.u,0.s) Chars 5754 - 5763 [exists~x.] 0. secs (0.u,0.s) -Chars 5764 - 5781 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5764 - 5781 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 5782 - 5787 [auto.] 0. secs (0.u,0.s) Chars 5792 - 5793 [-] 0. secs (0.u,0.s) -Chars 5794 - 5805 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5794 - 5805 [destruct~H.] 0. secs (0.u,0.s) Chars 5806 - 5815 [exists~x.] 0. secs (0.u,0.s) -Chars 5816 - 5830 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 5816 - 5830 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 5831 - 5836 [auto.] 0. secs (0.u,0.s) -Chars 5839 - 5843 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5839 - 5843 [Qed.] 0.033 secs (0.033u,0.s) Chars 5847 - 5979 [Lemma~resp_eutt_or~:~~~forall~...] 0. secs (0.u,0.s) Chars 5982 - 5988 [Proof.] 0. secs (0.u,0.s) -Chars 5993 - 6000 [(intros).] 0. secs (0.u,0.s) -Chars 6001 - 6017 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 6018 - 6032 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5993 - 6000 [intros.] 0. secs (0.u,0.s) +Chars 6001 - 6017 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 6018 - 6032 [split;~intros.] 0. secs (0.u,0.s) Chars 6037 - 6038 [-] 0. secs (0.u,0.s) -Chars 6039 - 6052 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 6039 - 6052 [destruct~H1.] 0. secs (0.u,0.s) Chars 6059 - 6060 [+] 0. secs (0.u,0.s) Chars 6061 - 6066 [left.] 0. secs (0.u,0.s) -Chars 6067 - 6083 [(eapply~H;~eauto).] 0.039 secs (0.039u,0.s) -Chars 6084 - 6102 [now~rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) +Chars 6067 - 6083 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) +Chars 6084 - 6102 [now~rewrite~<-~Ht.] 0. secs (0.u,0.s) Chars 6110 - 6111 [+] 0. secs (0.u,0.s) Chars 6112 - 6118 [right.] 0. secs (0.u,0.s) -Chars 6119 - 6136 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6137 - 6155 [now~rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) +Chars 6119 - 6136 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 6137 - 6155 [now~rewrite~<-~Ht.] 0. secs (0.u,0.s) Chars 6161 - 6162 [-] 0. secs (0.u,0.s) -Chars 6163 - 6175 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 6163 - 6175 [destruct~H1.] 0. secs (0.u,0.s) Chars 6182 - 6183 [+] 0. secs (0.u,0.s) Chars 6184 - 6189 [left.] 0. secs (0.u,0.s) -Chars 6190 - 6206 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 6190 - 6206 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 6213 - 6214 [+] 0. secs (0.u,0.s) Chars 6215 - 6221 [right.] 0. secs (0.u,0.s) -Chars 6222 - 6239 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) +Chars 6222 - 6239 [eapply~H0;~eauto.] 0. secs (0.u,0.s) Chars 6242 - 6246 [Qed.] 0. secs (0.u,0.s) Chars 6250 - 6598 [Definition~iterF_body'~{A~B~:~...] 0.001 secs (0.001u,0.s) Chars 6602 - 6950 [Variant~iterF_body~{A~B~:~Type...] 0.001 secs (0.001u,0.s) Chars 6953 - 7147 [Lemma~iterF_body_equiv~:~~~for...] 0. secs (0.u,0.s) Chars 7151 - 7157 [Proof.] 0. secs (0.u,0.s) -Chars 7163 - 7183 [(split;~intros;~auto).] 0. secs (0.u,0.s) +Chars 7163 - 7183 [split;~intros;~auto.] 0. secs (0.u,0.s) Chars 7187 - 7191 [Qed.] 0. secs (0.u,0.s) Chars 7193 - 7230 [Hint~Constructors~iterF_body:~...] 0. secs (0.u,0.s) Chars 7234 - 7397 [Lemma~iterF_body'_resp_eutt~:~...] 0. secs (0.u,0.s) Chars 7400 - 7406 [Proof.] 0. secs (0.u,0.s) -Chars 7411 - 7418 [(intros).] 0. secs (0.u,0.s) -Chars 7419 - 7472 [(eapply~resp_eutt_or;~try~eapp...] 0. secs (0.u,0.s) +Chars 7411 - 7418 [intros.] 0. secs (0.u,0.s) +Chars 7419 - 7472 [eapply~resp_eutt_or;~try~eappl...] 0. secs (0.u,0.s) Chars 7477 - 7478 [-] 0. secs (0.u,0.s) -Chars 7479 - 7509 [(apply~inf_tree_pred_resp_eutt).] 0. secs (0.u,0.s) +Chars 7479 - 7509 [apply~inf_tree_pred_resp_eutt.] 0. secs (0.u,0.s) Chars 7514 - 7515 [-] 0. secs (0.u,0.s) -Chars 7516 - 7544 [(apply~term_b_pred_resp_eutt).] 0. secs (0.u,0.s) +Chars 7516 - 7544 [apply~term_b_pred_resp_eutt.] 0. secs (0.u,0.s) Chars 7549 - 7550 [-] 0. secs (0.u,0.s) -Chars 7551 - 7579 [(apply~cont_a_pred_resp_eutt).] 0. secs (0.u,0.s) +Chars 7551 - 7579 [apply~cont_a_pred_resp_eutt.] 0. secs (0.u,0.s) Chars 7582 - 7586 [Qed.] 0. secs (0.u,0.s) Chars 7590 - 7751 [Lemma~iterF_body_resp_eutt~:~~...] 0. secs (0.u,0.s) Chars 7754 - 7760 [Proof.] 0. secs (0.u,0.s) -Chars 7765 - 7772 [(intros).] 0. secs (0.u,0.s) -Chars 7773 - 7792 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 7793 - 7833 [(split;~intros;~inversion~H;~s...] 0. secs (0.u,0.s) +Chars 7765 - 7772 [intros.] 0. secs (0.u,0.s) +Chars 7773 - 7792 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 7793 - 7833 [split;~intros;~inversion~H;~su...] 0. secs (0.u,0.s) Chars 7838 - 7839 [-] 0. secs (0.u,0.s) -Chars 7840 - 7860 [(apply~inf_tau;~auto).] 0. secs (0.u,0.s) -Chars 7861 - 7881 [(rewrite~Heutt~in~Ht).] 0.001 secs (0.001u,0.s) +Chars 7840 - 7860 [apply~inf_tau;~auto.] 0. secs (0.u,0.s) +Chars 7861 - 7881 [rewrite~Heutt~in~Ht.] 0.001 secs (0.001u,0.s) Chars 7882 - 7887 [auto.] 0. secs (0.u,0.s) Chars 7892 - 7893 [-] 0. secs (0.u,0.s) -Chars 7894 - 7915 [(eapply~term_b;~eauto).] 0.002 secs (0.002u,0.s) -Chars 7916 - 7930 [(rewrite~Hretb).] 0.001 secs (0.001u,0.s) +Chars 7894 - 7915 [eapply~term_b;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7916 - 7930 [rewrite~Hretb.] 0. secs (0.u,0.s) Chars 7931 - 7936 [auto.] 0. secs (0.u,0.s) Chars 7941 - 7942 [-] 0. secs (0.u,0.s) -Chars 7943 - 7964 [(eapply~cont_a;~eauto).] 0.002 secs (0.002u,0.s) -Chars 7965 - 7979 [(rewrite~Hreta).] 0.001 secs (0.001u,0.s) +Chars 7943 - 7964 [eapply~cont_a;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7965 - 7979 [rewrite~Hreta.] 0. secs (0.u,0.s) Chars 7980 - 7985 [auto.] 0. secs (0.u,0.s) Chars 7990 - 7991 [-] 0. secs (0.u,0.s) -Chars 7992 - 8012 [(apply~inf_tau;~auto).] 0. secs (0.u,0.s) -Chars 8013 - 8027 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 7992 - 8012 [apply~inf_tau;~auto.] 0. secs (0.u,0.s) +Chars 8013 - 8027 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) Chars 8028 - 8033 [auto.] 0. secs (0.u,0.s) Chars 8038 - 8039 [-] 0. secs (0.u,0.s) -Chars 8040 - 8061 [(eapply~term_b;~eauto).] 0.004 secs (0.004u,0.s) -Chars 8062 - 8076 [(rewrite~Hretb).] 0.001 secs (0.001u,0.s) +Chars 8040 - 8061 [eapply~term_b;~eauto.] 0.001 secs (0.001u,0.s) +Chars 8062 - 8076 [rewrite~Hretb.] 0. secs (0.u,0.s) Chars 8077 - 8086 [symmetry.] 0. secs (0.u,0.s) Chars 8087 - 8092 [auto.] 0. secs (0.u,0.s) Chars 8097 - 8098 [-] 0. secs (0.u,0.s) -Chars 8099 - 8120 [(eapply~cont_a;~eauto).] 0.002 secs (0.002u,0.s) -Chars 8121 - 8135 [(rewrite~Hreta).] 0. secs (0.u,0.s) +Chars 8099 - 8120 [eapply~cont_a;~eauto.] 0.001 secs (0.001u,0.s) +Chars 8121 - 8135 [rewrite~Hreta.] 0. secs (0.u,0.s) Chars 8136 - 8145 [symmetry.] 0. secs (0.u,0.s) Chars 8146 - 8151 [auto.] 0. secs (0.u,0.s) Chars 8154 - 8158 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8162 - 8430 [Variant~iterF~{A~B~:~Type}~(bo...] 0.001 secs (0.001u,0.s) +Chars 8162 - 8430 [Variant~iterF~{A~B~:~Type}~(bo...] 0. secs (0.u,0.s) Chars 9170 - 9202 [Hint~Constructors~iterF:~itree.] 0. secs (0.u,0.s) Chars 9206 - 9312 [Definition~iter_~{A}~{B}~sim~(...] 0. secs (0.u,0.s) Chars 9315 - 9341 [Hint~Unfold~iter_:~itree.] 0. secs (0.u,0.s) Chars 9345 - 9446 [Lemma~iter_mono~{A}~{B}~body~p...] 0. secs (0.u,0.s) Chars 9449 - 9455 [Proof.] 0. secs (0.u,0.s) -Chars 9460 - 9471 [(repeat~red).] 0. secs (0.u,0.s) -Chars 9472 - 9479 [(intros).] 0. secs (0.u,0.s) -Chars 9485 - 9517 [(induction~H0;~constructor;~au...] 0. secs (0.u,0.s) -Chars 9522 - 9562 [(destruct~(body~a)~as~[fa~Hfa]...] 0. secs (0.u,0.s) -Chars 9563 - 9574 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 9460 - 9471 [repeat~red.] 0. secs (0.u,0.s) +Chars 9472 - 9479 [intros.] 0. secs (0.u,0.s) +Chars 9485 - 9517 [induction~H0;~constructor;~auto.] 0. secs (0.u,0.s) +Chars 9522 - 9562 [destruct~(body~a)~as~[fa~Hfa]~...] 0. secs (0.u,0.s) +Chars 9563 - 9574 [simpl~in~*.] 0. secs (0.u,0.s) Chars 9579 - 9605 [refine~(Hfa~_~_~_~_~_~H0).] 0. secs (0.u,0.s) -Chars 9606 - 9613 [(intros).] 0. secs (0.u,0.s) -Chars 9614 - 9645 [(inversion~H1;~eauto~with~itree).] 0.011 secs (0.01u,0.s) -Chars 9650 - 9671 [(eapply~cont_a;~eauto).] 0. secs (0.u,0.s) +Chars 9606 - 9613 [intros.] 0. secs (0.u,0.s) +Chars 9614 - 9645 [inversion~H1;~eauto~with~itree.] 0.01 secs (0.01u,0.s) +Chars 9650 - 9671 [eapply~cont_a;~eauto.] 0. secs (0.u,0.s) Chars 9672 - 9684 [now~apply~H.] 0. secs (0.u,0.s) -Chars 9686 - 9690 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9686 - 9690 [Qed.] 0.001 secs (0.001u,0.s) Chars 9694 - 9770 [Definition~iter_mon~{A}~{B}~bo...] 0. secs (0.u,0.s) Chars 9776 - 9939 [Definition~_iter~{A}~{B}~:=~~~...] 0. secs (0.u,0.s) Chars 10047 - 10175 [Lemma~iter_monot~:~~~forall~A~...] 0. secs (0.u,0.s) Chars 10180 - 10186 [Proof.] 0. secs (0.u,0.s) -Chars 10193 - 10211 [(unfold~monotonici).] 0. secs (0.u,0.s) -Chars 10212 - 10219 [(intros).] 0. secs (0.u,0.s) +Chars 10193 - 10211 [unfold~monotonici.] 0. secs (0.u,0.s) +Chars 10212 - 10219 [intros.] 0. secs (0.u,0.s) Chars 10220 - 10243 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 10250 - 10276 [(coinduction~c~CIH;~intros).] 0. secs (0.u,0.s) +Chars 10250 - 10276 [coinduction~c~CIH;~intros.] 0. secs (0.u,0.s) Chars 10277 - 10288 [step~in~H0.] 0. secs (0.u,0.s) -Chars 10295 - 10302 [(inv~H0).] 0.001 secs (0.001u,0.s) +Chars 10295 - 10302 [inv~H0.] 0. secs (0.u,0.s) Chars 10310 - 10322 [constructor.] 0. secs (0.u,0.s) -Chars 10323 - 10360 [(destruct~(f~a)~as~[fa~Hfa]~eq...] 0. secs (0.u,0.s) -Chars 10361 - 10372 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 10323 - 10360 [destruct~(f~a)~as~[fa~Hfa]~eqn...] 0. secs (0.u,0.s) +Chars 10361 - 10372 [simpl~in~*.] 0. secs (0.u,0.s) Chars 10379 - 10405 [refine~(Hfa~_~_~_~_~_~H1).] 0. secs (0.u,0.s) -Chars 10406 - 10415 [(intros~t).] 0. secs (0.u,0.s) -Chars 10416 - 10423 [(intros).] 0. secs (0.u,0.s) -Chars 10424 - 10449 [(inv~H0;~eauto~with~itree).] 0.008 secs (0.008u,0.s) -Chars 10455 - 10459 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10406 - 10415 [intros~t.] 0. secs (0.u,0.s) +Chars 10416 - 10423 [intros.] 0. secs (0.u,0.s) +Chars 10424 - 10449 [inv~H0;~eauto~with~itree.] 0.006 secs (0.006u,0.s) +Chars 10455 - 10459 [Qed.] 0.001 secs (0.001u,0.s) Chars 10463 - 10612 [Definition~iterp~{A}~{B}~(body...] 0. secs (0.u,0.s) Chars 10740 - 10912 [#[global]~Instance~PureITreeSp...] 0. secs (0.u,0.s) Chars 10916 - 11032 [#[global]~Instance~PureItreeSp...] 0. secs (0.u,0.s) Chars 11059 - 11164 [Lemma~retpi_bindpi~:~~~forall~...] 0. secs (0.u,0.s) Chars 11167 - 11173 [Proof.] 0. secs (0.u,0.s) -Chars 11178 - 11185 [(intros).] 0. secs (0.u,0.s) +Chars 11178 - 11185 [intros.] 0. secs (0.u,0.s) Chars 11186 - 11192 [split.] 0. secs (0.u,0.s) Chars 11197 - 11198 [-] 0. secs (0.u,0.s) -Chars 11199 - 11203 [(cbn).] 0. secs (0.u,0.s) -Chars 11204 - 11219 [(unfold~_bindpi).] 0. secs (0.u,0.s) -Chars 11220 - 11234 [(unfold~_retpi).] 0. secs (0.u,0.s) -Chars 11235 - 11242 [(intros).] 0. secs (0.u,0.s) -Chars 11249 - 11260 [(destruct~H).] 0. secs (0.u,0.s) +Chars 11199 - 11203 [cbn.] 0. secs (0.u,0.s) +Chars 11204 - 11219 [unfold~_bindpi.] 0. secs (0.u,0.s) +Chars 11220 - 11234 [unfold~_retpi.] 0. secs (0.u,0.s) +Chars 11235 - 11242 [intros.] 0. secs (0.u,0.s) +Chars 11249 - 11260 [destruct~H.] 0. secs (0.u,0.s) Chars 11267 - 11268 [+] 0. secs (0.u,0.s) -Chars 11269 - 11303 [(destruct~H~as~[a0~[Hvala0~Hfa...] 0. secs (0.u,0.s) -Chars 11312 - 11341 [(apply~eutt_inv_Ret~in~Hvala0).] 0. secs (0.u,0.s) +Chars 11269 - 11303 [destruct~H~as~[a0~[Hvala0~Hfa0]].] 0. secs (0.u,0.s) +Chars 11312 - 11341 [apply~eutt_inv_Ret~in~Hvala0.] 0. secs (0.u,0.s) Chars 11342 - 11348 [subst.] 0. secs (0.u,0.s) Chars 11349 - 11354 [auto.] 0. secs (0.u,0.s) Chars 11361 - 11362 [+] 0. secs (0.u,0.s) Chars 11363 - 11371 [exfalso.] 0. secs (0.u,0.s) -Chars 11372 - 11383 [(destruct~H).] 0. secs (0.u,0.s) -Chars 11384 - 11403 [(eapply~ret_not_div).] 0. secs (0.u,0.s) +Chars 11372 - 11383 [destruct~H.] 0. secs (0.u,0.s) +Chars 11384 - 11403 [eapply~ret_not_div.] 0. secs (0.u,0.s) Chars 11404 - 11410 [eauto.] 0. secs (0.u,0.s) Chars 11415 - 11416 [-] 0. secs (0.u,0.s) -Chars 11417 - 11423 [(simpl).] 0. secs (0.u,0.s) -Chars 11424 - 11461 [(destruct~(f~a)~as~[fa~Hfa]~eq...] 0. secs (0.u,0.s) -Chars 11462 - 11468 [(simpl).] 0. secs (0.u,0.s) -Chars 11469 - 11476 [(intros).] 0. secs (0.u,0.s) +Chars 11417 - 11423 [simpl.] 0. secs (0.u,0.s) +Chars 11424 - 11461 [destruct~(f~a)~as~[fa~Hfa]~eqn...] 0. secs (0.u,0.s) +Chars 11462 - 11468 [simpl.] 0. secs (0.u,0.s) +Chars 11469 - 11476 [intros.] 0. secs (0.u,0.s) Chars 11483 - 11488 [left.] 0. secs (0.u,0.s) Chars 11489 - 11498 [exists~a.] 0. secs (0.u,0.s) Chars 11499 - 11505 [split.] 0. secs (0.u,0.s) Chars 11512 - 11513 [+] 0. secs (0.u,0.s) Chars 11514 - 11526 [reflexivity.] 0. secs (0.u,0.s) Chars 11533 - 11534 [+] 0. secs (0.u,0.s) -Chars 11535 - 11547 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11535 - 11547 [rewrite~Heq.] 0. secs (0.u,0.s) Chars 11549 - 11554 [auto.] 0. secs (0.u,0.s) Chars 11557 - 11561 [Qed.] 0.001 secs (0.001u,0.s) Chars 11565 - 11656 [Lemma~bindpi_retpi~:~~~forall~...] 0. secs (0.u,0.s) Chars 11659 - 11665 [Proof.] 0. secs (0.u,0.s) -Chars 11670 - 11677 [(intros).] 0. secs (0.u,0.s) -Chars 11678 - 11700 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) +Chars 11670 - 11677 [intros.] 0. secs (0.u,0.s) +Chars 11678 - 11700 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) Chars 11701 - 11707 [split.] 0. secs (0.u,0.s) Chars 11712 - 11713 [-] 0. secs (0.u,0.s) -Chars 11714 - 11721 [(intros).] 0. secs (0.u,0.s) -Chars 11722 - 11733 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 11734 - 11754 [(unfold~_bindpi~in~H).] 0. secs (0.u,0.s) -Chars 11761 - 11780 [(unfold~_retpi~in~H).] 0. secs (0.u,0.s) -Chars 11781 - 11792 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 11714 - 11721 [intros.] 0. secs (0.u,0.s) +Chars 11722 - 11733 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 11734 - 11754 [unfold~_bindpi~in~H.] 0. secs (0.u,0.s) +Chars 11761 - 11780 [unfold~_retpi~in~H.] 0. secs (0.u,0.s) +Chars 11781 - 11792 [simpl~in~H.] 0. secs (0.u,0.s) Chars 11799 - 11823 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 11830 - 11837 [(intros).] 0. secs (0.u,0.s) -Chars 11838 - 11850 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 11830 - 11837 [intros.] 0. secs (0.u,0.s) +Chars 11838 - 11850 [destruct~H0.] 0. secs (0.u,0.s) Chars 11857 - 11858 [+] 0. secs (0.u,0.s) -Chars 11859 - 11893 [(destruct~H0~as~[a~[Hvala~Hpa]]).] 0. secs (0.u,0.s) -Chars 11902 - 11919 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) -Chars 11920 - 11941 [now~rewrite~<-~Hvala.] 0.001 secs (0.001u,0.s) +Chars 11859 - 11893 [destruct~H0~as~[a~[Hvala~Hpa]].] 0. secs (0.u,0.s) +Chars 11902 - 11919 [eapply~Hp;~eauto.] 0.002 secs (0.001u,0.s) +Chars 11920 - 11941 [now~rewrite~<-~Hvala.] 0. secs (0.u,0.s) Chars 11949 - 11950 [+] 0. secs (0.u,0.s) -Chars 11951 - 11963 [(destruct~H0).] 0. secs (0.u,0.s) -Chars 11964 - 11990 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 11991 - 12008 [(eapply~Hp;~eauto).] 0. secs (0.u,0.s) +Chars 11951 - 11963 [destruct~H0.] 0. secs (0.u,0.s) +Chars 11964 - 11990 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 11991 - 12008 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) Chars 12013 - 12014 [-] 0. secs (0.u,0.s) -Chars 12015 - 12021 [(simpl).] 0. secs (0.u,0.s) -Chars 12022 - 12029 [(intros).] 0. secs (0.u,0.s) -Chars 12030 - 12045 [(unfold~_bindpi).] 0. secs (0.u,0.s) +Chars 12015 - 12021 [simpl.] 0. secs (0.u,0.s) +Chars 12022 - 12029 [intros.] 0. secs (0.u,0.s) +Chars 12030 - 12045 [unfold~_bindpi.] 0. secs (0.u,0.s) Chars 12052 - 12076 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 12077 - 12084 [(intros).] 0. secs (0.u,0.s) -Chars 12085 - 12099 [(unfold~_retpi).] 0. secs (0.u,0.s) +Chars 12077 - 12084 [intros.] 0. secs (0.u,0.s) +Chars 12085 - 12099 [unfold~_retpi.] 0. secs (0.u,0.s) Chars 12106 - 12146 [specialize~(eutt_reta_or_div~i...] 0. secs (0.u,0.s) -Chars 12147 - 12160 [(destruct~Hor).] 0. secs (0.u,0.s) +Chars 12147 - 12160 [destruct~Hor.] 0. secs (0.u,0.s) Chars 12167 - 12168 [+] 0. secs (0.u,0.s) -Chars 12169 - 12191 [(destruct~H1~as~[a~Ha]).] 0. secs (0.u,0.s) -Chars 12192 - 12197 [left.] 0.001 secs (0.001u,0.s) +Chars 12169 - 12191 [destruct~H1~as~[a~Ha].] 0. secs (0.u,0.s) +Chars 12192 - 12197 [left.] 0. secs (0.u,0.s) Chars 12198 - 12207 [exists~a.] 0. secs (0.u,0.s) -Chars 12208 - 12220 [(split;~auto).] 0. secs (0.u,0.s) -Chars 12221 - 12238 [(eapply~Hp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 12208 - 12220 [split;~auto.] 0. secs (0.u,0.s) +Chars 12221 - 12238 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) Chars 12245 - 12246 [+] 0. secs (0.u,0.s) Chars 12247 - 12253 [right.] 0. secs (0.u,0.s) -Chars 12254 - 12266 [(split;~auto).] 0. secs (0.u,0.s) +Chars 12254 - 12266 [split;~auto.] 0. secs (0.u,0.s) Chars 12267 - 12303 [specialize~(div_spin_eutt~H1)~...] 0. secs (0.u,0.s) Chars 12304 - 12319 [symmetry~in~H2.] 0. secs (0.u,0.s) -Chars 12320 - 12337 [(eapply~Hp;~eauto).] 0. secs (0.u,0.s) +Chars 12320 - 12337 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) Chars 12341 - 12345 [Qed.] 0.001 secs (0.001u,0.s) Chars 12349 - 12568 [Lemma~bindpi_bindpi~:~~~forall...] 0. secs (0.u,0.s) Chars 12571 - 12577 [Proof.] 0. secs (0.u,0.s) -Chars 12582 - 12589 [(intros).] 0. secs (0.u,0.s) -Chars 12590 - 12611 [(destruct~w~as~[w~Hw]).] 0. secs (0.u,0.s) -Chars 12612 - 12618 [(simpl).] 0. secs (0.u,0.s) -Chars 12619 - 12633 [(split;~intros).] 0. secs (0.u,0.s) +Chars 12582 - 12589 [intros.] 0. secs (0.u,0.s) +Chars 12590 - 12611 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) +Chars 12612 - 12618 [simpl.] 0. secs (0.u,0.s) +Chars 12619 - 12633 [split;~intros.] 0. secs (0.u,0.s) Chars 12638 - 12639 [-] 0. secs (0.u,0.s) -Chars 12640 - 12651 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 12640 - 12651 [simpl~in~*.] 0. secs (0.u,0.s) Chars 12652 - 12676 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 12677 - 12687 [(intros~t0).] 0. secs (0.u,0.s) -Chars 12688 - 12695 [(intros).] 0. secs (0.u,0.s) -Chars 12696 - 12708 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 12677 - 12687 [intros~t0.] 0. secs (0.u,0.s) +Chars 12688 - 12695 [intros.] 0. secs (0.u,0.s) +Chars 12696 - 12708 [destruct~H0.] 0. secs (0.u,0.s) Chars 12715 - 12716 [+] 0. secs (0.u,0.s) -Chars 12717 - 12748 [(destruct~H0~as~[a~[Hreta~Hfa]]).] 0. secs (0.u,0.s) +Chars 12717 - 12748 [destruct~H0~as~[a~[Hreta~Hfa]].] 0. secs (0.u,0.s) Chars 12757 - 12762 [left.] 0. secs (0.u,0.s) Chars 12763 - 12772 [exists~a.] 0. secs (0.u,0.s) -Chars 12773 - 12785 [(split;~auto).] 0. secs (0.u,0.s) -Chars 12786 - 12815 [(destruct~(f~a)~as~[wfa~Hwfa]).] 0. secs (0.u,0.s) -Chars 12816 - 12827 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 12773 - 12785 [split;~auto.] 0. secs (0.u,0.s) +Chars 12786 - 12815 [destruct~(f~a)~as~[wfa~Hwfa].] 0. secs (0.u,0.s) +Chars 12816 - 12827 [simpl~in~*.] 0. secs (0.u,0.s) Chars 12836 - 12864 [refine~(Hwfa~_~_~_~_~_~Hfa).] 0. secs (0.u,0.s) -Chars 12865 - 12875 [(intros~t1).] 0. secs (0.u,0.s) -Chars 12876 - 12883 [(intros).] 0. secs (0.u,0.s) -Chars 12884 - 12902 [(destruct~H0;~auto).] 0.001 secs (0.001u,0.s) +Chars 12865 - 12875 [intros~t1.] 0. secs (0.u,0.s) +Chars 12876 - 12883 [intros.] 0. secs (0.u,0.s) +Chars 12884 - 12902 [destruct~H0;~auto.] 0. secs (0.u,0.s) Chars 12909 - 12910 [+] 0. secs (0.u,0.s) -Chars 12911 - 12923 [(destruct~H0).] 0. secs (0.u,0.s) -Chars 12924 - 12936 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 12911 - 12923 [destruct~H0.] 0. secs (0.u,0.s) +Chars 12924 - 12936 [destruct~H1.] 0. secs (0.u,0.s) Chars 12945 - 12946 [*] 0. secs (0.u,0.s) -Chars 12947 - 12981 [(destruct~H1~as~[b~[Hretb~Hgb]]).] 0. secs (0.u,0.s) +Chars 12947 - 12981 [destruct~H1~as~[b~[Hretb~Hgb]].] 0. secs (0.u,0.s) Chars 12982 - 12990 [exfalso.] 0. secs (0.u,0.s) Chars 12991 - 13036 [specialize~(@ret_not_div~B~voi...] 0. secs (0.u,0.s) -Chars 13047 - 13070 [(rewrite~Hretb~in~Hndiv).] 0.001 secs (0.001u,0.s) -Chars 13071 - 13083 [(apply~Hndiv).] 0. secs (0.u,0.s) -Chars 13084 - 13104 [(apply~spin_infinite).] 0. secs (0.u,0.s) +Chars 13047 - 13070 [rewrite~Hretb~in~Hndiv.] 0. secs (0.u,0.s) +Chars 13071 - 13083 [apply~Hndiv.] 0. secs (0.u,0.s) +Chars 13084 - 13104 [apply~spin_infinite.] 0. secs (0.u,0.s) Chars 13113 - 13114 [*] 0. secs (0.u,0.s) Chars 13116 - 13122 [right.] 0. secs (0.u,0.s) -Chars 13123 - 13135 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 13123 - 13135 [destruct~H1.] 0. secs (0.u,0.s) Chars 13136 - 13141 [auto.] 0. secs (0.u,0.s) Chars 13146 - 13147 [-] 0. secs (0.u,0.s) -Chars 13148 - 13159 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 13148 - 13159 [simpl~in~*.] 0. secs (0.u,0.s) Chars 13160 - 13184 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 13185 - 13195 [(intros~t0).] 0. secs (0.u,0.s) -Chars 13196 - 13203 [(intros).] 0. secs (0.u,0.s) -Chars 13204 - 13216 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 13185 - 13195 [intros~t0.] 0. secs (0.u,0.s) +Chars 13196 - 13203 [intros.] 0. secs (0.u,0.s) +Chars 13204 - 13216 [destruct~H0.] 0. secs (0.u,0.s) Chars 13223 - 13224 [+] 0. secs (0.u,0.s) -Chars 13226 - 13258 [(destruct~H0~as~[a~[Hreta~Hfa]]).] 0. secs (0.u,0.s) +Chars 13226 - 13258 [destruct~H0~as~[a~[Hreta~Hfa]].] 0. secs (0.u,0.s) Chars 13259 - 13264 [left.] 0. secs (0.u,0.s) Chars 13265 - 13274 [exists~a.] 0. secs (0.u,0.s) -Chars 13275 - 13287 [(split;~auto).] 0. secs (0.u,0.s) -Chars 13297 - 13326 [(destruct~(f~a)~as~[wfa~Hwfa]).] 0. secs (0.u,0.s) -Chars 13327 - 13338 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 13275 - 13287 [split;~auto.] 0. secs (0.u,0.s) +Chars 13297 - 13326 [destruct~(f~a)~as~[wfa~Hwfa].] 0. secs (0.u,0.s) +Chars 13327 - 13338 [simpl~in~*.] 0. secs (0.u,0.s) Chars 13348 - 13376 [refine~(Hwfa~_~_~_~_~_~Hfa).] 0. secs (0.u,0.s) -Chars 13377 - 13387 [(intros~t1).] 0. secs (0.u,0.s) -Chars 13388 - 13395 [(intros).] 0. secs (0.u,0.s) -Chars 13405 - 13423 [(destruct~H0;~auto).] 0. secs (0.u,0.s) +Chars 13377 - 13387 [intros~t1.] 0. secs (0.u,0.s) +Chars 13388 - 13395 [intros.] 0. secs (0.u,0.s) +Chars 13405 - 13423 [destruct~H0;~auto.] 0. secs (0.u,0.s) Chars 13430 - 13431 [+] 0. secs (0.u,0.s) -Chars 13432 - 13444 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 13432 - 13444 [destruct~H0.] 0. secs (0.u,0.s) Chars 13445 - 13451 [right.] 0. secs (0.u,0.s) -Chars 13452 - 13464 [(split;~auto).] 0. secs (0.u,0.s) +Chars 13452 - 13464 [split;~auto.] 0. secs (0.u,0.s) Chars 13465 - 13471 [right.] 0. secs (0.u,0.s) -Chars 13472 - 13484 [(split;~auto).] 0. secs (0.u,0.s) -Chars 13485 - 13505 [(apply~spin_infinite).] 0. secs (0.u,0.s) -Chars 13508 - 13512 [Qed.] 0.006 secs (0.006u,0.s) +Chars 13472 - 13484 [split;~auto.] 0. secs (0.u,0.s) +Chars 13485 - 13505 [apply~spin_infinite.] 0. secs (0.u,0.s) +Chars 13508 - 13512 [Qed.] 0.004 secs (0.004u,0.s) Chars 13516 - 13570 [Instance~PureItreeSpecLaws~:~(...] 0. secs (0.u,0.s) Chars 13573 - 13579 [Proof.] 0. secs (0.u,0.s) Chars 13584 - 13596 [constructor.] 0. secs (0.u,0.s) Chars 13601 - 13602 [-] 0. secs (0.u,0.s) -Chars 13603 - 13622 [(apply~retpi_bindpi).] 0. secs (0.u,0.s) +Chars 13603 - 13622 [apply~retpi_bindpi.] 0. secs (0.u,0.s) Chars 13627 - 13628 [-] 0. secs (0.u,0.s) -Chars 13629 - 13648 [(apply~bindpi_retpi).] 0. secs (0.u,0.s) +Chars 13629 - 13648 [apply~bindpi_retpi.] 0. secs (0.u,0.s) Chars 13653 - 13654 [-] 0. secs (0.u,0.s) -Chars 13655 - 13675 [(apply~bindpi_bindpi).] 0. secs (0.u,0.s) +Chars 13655 - 13675 [apply~bindpi_bindpi.] 0. secs (0.u,0.s) Chars 13680 - 13681 [-] 0. secs (0.u,0.s) -Chars 13682 - 13689 [(intros).] 0. secs (0.u,0.s) -Chars 13690 - 13694 [(red).] 0. secs (0.u,0.s) -Chars 13695 - 13699 [(red).] 0. secs (0.u,0.s) -Chars 13700 - 13717 [(intros~mx~my~Hxy).] 0. secs (0.u,0.s) -Chars 13718 - 13722 [(red).] 0. secs (0.u,0.s) -Chars 13723 - 13727 [(red).] 0. secs (0.u,0.s) -Chars 13728 - 13732 [(red).] 0. secs (0.u,0.s) -Chars 13733 - 13748 [(intros~f~g~Hfg).] 0. secs (0.u,0.s) -Chars 13755 - 13762 [(intros).] 0. secs (0.u,0.s) -Chars 13763 - 13774 [(red~in~Hfg).] 0. secs (0.u,0.s) -Chars 13775 - 13800 [(destruct~mx~as~[mx~Hmx]).] 0. secs (0.u,0.s) -Chars 13801 - 13825 [(destruct~my~as~[my~Hmy]).] 0. secs (0.u,0.s) -Chars 13832 - 13836 [(cbn).] 0. secs (0.u,0.s) -Chars 13837 - 13852 [(unfold~_bindpi).] 0. secs (0.u,0.s) -Chars 13853 - 13869 [(do~2~red~in~Hxy).] 0. secs (0.u,0.s) -Chars 13870 - 13881 [(cbn~in~Hxy).] 0. secs (0.u,0.s) -Chars 13888 - 13900 [(rewrite~Hxy).] 0.001 secs (0.001u,0.s) -Chars 13901 - 13912 [(red~in~Hmy).] 0. secs (0.u,0.s) -Chars 13913 - 13964 [(split;~intros;~try~refine~(Hm...] 0.004 secs (0.004u,0.s) +Chars 13682 - 13689 [intros.] 0. secs (0.u,0.s) +Chars 13690 - 13694 [red.] 0. secs (0.u,0.s) +Chars 13695 - 13699 [red.] 0. secs (0.u,0.s) +Chars 13700 - 13717 [intros~mx~my~Hxy.] 0. secs (0.u,0.s) +Chars 13718 - 13722 [red.] 0. secs (0.u,0.s) +Chars 13723 - 13727 [red.] 0. secs (0.u,0.s) +Chars 13728 - 13732 [red.] 0. secs (0.u,0.s) +Chars 13733 - 13748 [intros~f~g~Hfg.] 0. secs (0.u,0.s) +Chars 13755 - 13762 [intros.] 0. secs (0.u,0.s) +Chars 13763 - 13774 [red~in~Hfg.] 0. secs (0.u,0.s) +Chars 13775 - 13800 [destruct~mx~as~[mx~Hmx].] 0. secs (0.u,0.s) +Chars 13801 - 13825 [destruct~my~as~[my~Hmy].] 0. secs (0.u,0.s) +Chars 13832 - 13836 [cbn.] 0. secs (0.u,0.s) +Chars 13837 - 13852 [unfold~_bindpi.] 0. secs (0.u,0.s) +Chars 13853 - 13869 [do~2~red~in~Hxy.] 0. secs (0.u,0.s) +Chars 13870 - 13881 [cbn~in~Hxy.] 0. secs (0.u,0.s) +Chars 13888 - 13900 [rewrite~Hxy.] 0.001 secs (0.001u,0.s) +Chars 13901 - 13912 [red~in~Hmy.] 0. secs (0.u,0.s) +Chars 13913 - 13964 [split;~intros;~try~refine~(Hmy...] 0.004 secs (0.004u,0.s) Chars 13971 - 13972 [+] 0. secs (0.u,0.s) -Chars 13973 - 13980 [(intros).] 0. secs (0.u,0.s) -Chars 13981 - 13991 [(cbn~in~H0).] 0. secs (0.u,0.s) -Chars 13992 - 14011 [(destruct~H0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 13973 - 13980 [intros.] 0. secs (0.u,0.s) +Chars 13981 - 13991 [cbn~in~H0.] 0. secs (0.u,0.s) +Chars 13992 - 14011 [destruct~H0;~eauto.] 0.001 secs (0.001u,0.s) Chars 14012 - 14017 [left.] 0. secs (0.u,0.s) -Chars 14026 - 14046 [decompose~record~H0.] 0.002 secs (0.002u,0.s) +Chars 14026 - 14046 [decompose~record~H0.] 0. secs (0.u,0.s) Chars 14047 - 14056 [exists~x.] 0. secs (0.u,0.s) -Chars 14057 - 14069 [(split;~auto).] 0. secs (0.u,0.s) -Chars 14070 - 14080 [(apply~Hfg).] 0. secs (0.u,0.s) +Chars 14057 - 14069 [split;~auto.] 0. secs (0.u,0.s) +Chars 14070 - 14080 [apply~Hfg.] 0. secs (0.u,0.s) Chars 14081 - 14086 [auto.] 0. secs (0.u,0.s) Chars 14093 - 14094 [+] 0. secs (0.u,0.s) -Chars 14095 - 14102 [(intros).] 0. secs (0.u,0.s) -Chars 14103 - 14113 [(cbn~in~H0).] 0. secs (0.u,0.s) -Chars 14114 - 14133 [(destruct~H0;~eauto).] 0.002 secs (0.002u,0.s) +Chars 14095 - 14102 [intros.] 0. secs (0.u,0.s) +Chars 14103 - 14113 [cbn~in~H0.] 0. secs (0.u,0.s) +Chars 14114 - 14133 [destruct~H0;~eauto.] 0.001 secs (0.001u,0.s) Chars 14134 - 14139 [left.] 0. secs (0.u,0.s) Chars 14148 - 14168 [decompose~record~H0.] 0. secs (0.u,0.s) Chars 14169 - 14178 [exists~x.] 0. secs (0.u,0.s) -Chars 14179 - 14191 [(split;~auto).] 0. secs (0.u,0.s) -Chars 14192 - 14202 [(apply~Hfg).] 0. secs (0.u,0.s) +Chars 14179 - 14191 [split;~auto.] 0. secs (0.u,0.s) +Chars 14192 - 14202 [apply~Hfg.] 0. secs (0.u,0.s) Chars 14203 - 14208 [auto.] 0. secs (0.u,0.s) -Chars 14211 - 14215 [Qed.] 0.004 secs (0.003u,0.s) +Chars 14211 - 14215 [Qed.] 0.002 secs (0.002u,0.s) Chars 14220 - 14362 [Instance~PureITreeOrderM~:~(Or...] 0. secs (0.u,0.s) Chars 14366 - 14419 [Instance~PureItreeOrder~:~(Ord...] 0. secs (0.u,0.s) Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) Chars 14433 - 14445 [constructor.] 0. secs (0.u,0.s) Chars 14450 - 14451 [-] 0. secs (0.u,0.s) -Chars 14452 - 14459 [(intros).] 0. secs (0.u,0.s) -Chars 14460 - 14471 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14472 - 14479 [(intros).] 0. secs (0.u,0.s) -Chars 14480 - 14491 [(destruct~w).] 0. secs (0.u,0.s) +Chars 14452 - 14459 [intros.] 0. secs (0.u,0.s) +Chars 14460 - 14471 [repeat~red.] 0. secs (0.u,0.s) +Chars 14472 - 14479 [intros.] 0. secs (0.u,0.s) +Chars 14480 - 14491 [destruct~w.] 0. secs (0.u,0.s) Chars 14492 - 14497 [auto.] 0. secs (0.u,0.s) Chars 14502 - 14503 [-] 0. secs (0.u,0.s) -Chars 14504 - 14511 [(intros).] 0. secs (0.u,0.s) -Chars 14512 - 14523 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14524 - 14544 [(repeat~red~in~H,~H0).] 0. secs (0.u,0.s) -Chars 14545 - 14552 [(intros).] 0. secs (0.u,0.s) -Chars 14553 - 14565 [(destruct~w1).] 0. secs (0.u,0.s) -Chars 14572 - 14584 [(destruct~w2).] 0. secs (0.u,0.s) -Chars 14585 - 14597 [(destruct~w3).] 0. secs (0.u,0.s) -Chars 14598 - 14609 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 14504 - 14511 [intros.] 0. secs (0.u,0.s) +Chars 14512 - 14523 [repeat~red.] 0. secs (0.u,0.s) +Chars 14524 - 14544 [repeat~red~in~H,~H0.] 0. secs (0.u,0.s) +Chars 14545 - 14552 [intros.] 0. secs (0.u,0.s) +Chars 14553 - 14565 [destruct~w1.] 0. secs (0.u,0.s) +Chars 14572 - 14584 [destruct~w2.] 0. secs (0.u,0.s) +Chars 14585 - 14597 [destruct~w3.] 0. secs (0.u,0.s) +Chars 14598 - 14609 [simpl~in~*.] 0. secs (0.u,0.s) Chars 14610 - 14615 [auto.] 0. secs (0.u,0.s) Chars 14620 - 14621 [-] 0. secs (0.u,0.s) -Chars 14622 - 14629 [(intros).] 0. secs (0.u,0.s) -Chars 14630 - 14656 [(destruct~w1~as~[w1'~Hw1']).] 0. secs (0.u,0.s) -Chars 14657 - 14683 [(destruct~w2~as~[w2'~Hw2']).] 0. secs (0.u,0.s) -Chars 14684 - 14695 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 14702 - 14714 [(intros~p~Hp).] 0. secs (0.u,0.s) -Chars 14715 - 14721 [(simpl).] 0. secs (0.u,0.s) -Chars 14728 - 14743 [(unfold~_bindpi).] 0. secs (0.u,0.s) -Chars 14744 - 14751 [(intros).] 0. secs (0.u,0.s) -Chars 14753 - 14762 [(eapply~H).] 0. secs (0.u,0.s) -Chars 14763 - 14769 [(simpl).] 0. secs (0.u,0.s) +Chars 14622 - 14629 [intros.] 0. secs (0.u,0.s) +Chars 14630 - 14656 [destruct~w1~as~[w1'~Hw1'].] 0. secs (0.u,0.s) +Chars 14657 - 14683 [destruct~w2~as~[w2'~Hw2'].] 0. secs (0.u,0.s) +Chars 14684 - 14695 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 14702 - 14714 [intros~p~Hp.] 0. secs (0.u,0.s) +Chars 14715 - 14721 [simpl.] 0. secs (0.u,0.s) +Chars 14728 - 14743 [unfold~_bindpi.] 0. secs (0.u,0.s) +Chars 14744 - 14751 [intros.] 0. secs (0.u,0.s) +Chars 14753 - 14762 [eapply~H.] 0. secs (0.u,0.s) +Chars 14763 - 14769 [simpl.] 0. secs (0.u,0.s) Chars 14776 - 14803 [refine~(Hw2'~_~_~_~_~_~H1).] 0. secs (0.u,0.s) -Chars 14804 - 14813 [(intros~t).] 0. secs (0.u,0.s) -Chars 14814 - 14821 [(intros).] 0. secs (0.u,0.s) -Chars 14822 - 14840 [(destruct~H2;~auto).] 0.001 secs (0.001u,0.s) -Chars 14847 - 14880 [(destruct~H2~as~[a~[Hreta~Hf2a...] 0. secs (0.u,0.s) +Chars 14804 - 14813 [intros~t.] 0. secs (0.u,0.s) +Chars 14814 - 14821 [intros.] 0. secs (0.u,0.s) +Chars 14822 - 14840 [destruct~H2;~auto.] 0. secs (0.u,0.s) +Chars 14847 - 14880 [destruct~H2~as~[a~[Hreta~Hf2a]].] 0. secs (0.u,0.s) Chars 14881 - 14886 [left.] 0. secs (0.u,0.s) Chars 14887 - 14910 [specialize~(H0~a~p~Hp).] 0. secs (0.u,0.s) Chars 14911 - 14920 [exists~a.] 0. secs (0.u,0.s) Chars 14921 - 14926 [auto.] 0. secs (0.u,0.s) -Chars 14929 - 14933 [Qed.] 0.003 secs (0.003u,0.s) +Chars 14929 - 14933 [Qed.] 0.002 secs (0.002u,0.s) Chars 27695 - 27772 [Definition~_obsip~A~(t~:~itree...] 0. secs (0.u,0.s) Chars 27932 - 28008 [Lemma~obsip_monot~:~forall~A~(...] 0. secs (0.u,0.s) Chars 28011 - 28017 [Proof.] 0. secs (0.u,0.s) -Chars 28022 - 28040 [(unfold~monotonici).] 0. secs (0.u,0.s) -Chars 28041 - 28048 [(intros).] 0. secs (0.u,0.s) -Chars 28049 - 28068 [(unfold~_obsip~in~*).] 0. secs (0.u,0.s) +Chars 28022 - 28040 [unfold~monotonici.] 0. secs (0.u,0.s) +Chars 28041 - 28048 [intros.] 0. secs (0.u,0.s) +Chars 28049 - 28068 [unfold~_obsip~in~*.] 0. secs (0.u,0.s) Chars 28069 - 28074 [auto.] 0. secs (0.u,0.s) Chars 28077 - 28081 [Qed.] 0. secs (0.u,0.s) Chars 28085 - 28188 [Definition~obsip~A~(t~:~itree~...] 0. secs (0.u,0.s) Chars 28259 - 28334 [Lemma~obsip_pres_ret~:~forall~...] 0. secs (0.u,0.s) Chars 28337 - 28343 [Proof.] 0. secs (0.u,0.s) -Chars 28348 - 28355 [(intros).] 0. secs (0.u,0.s) -Chars 28356 - 28368 [(intros~p~Hp).] 0. secs (0.u,0.s) -Chars 28369 - 28373 [(cbn).] 0. secs (0.u,0.s) -Chars 28374 - 28396 [(unfold~_retpi,~_obsip).] 0. secs (0.u,0.s) +Chars 28348 - 28355 [intros.] 0. secs (0.u,0.s) +Chars 28356 - 28368 [intros~p~Hp.] 0. secs (0.u,0.s) +Chars 28369 - 28373 [cbn.] 0. secs (0.u,0.s) +Chars 28374 - 28396 [unfold~_retpi,~_obsip.] 0. secs (0.u,0.s) Chars 28397 - 28403 [tauto.] 0. secs (0.u,0.s) Chars 28406 - 28410 [Qed.] 0. secs (0.u,0.s) Chars 28414 - 28576 [Lemma~obsip_pres_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 28579 - 28585 [Proof.] 0. secs (0.u,0.s) -Chars 28590 - 28597 [(intros).] 0. secs (0.u,0.s) -Chars 28598 - 28610 [(intros~p~Hp).] 0. secs (0.u,0.s) -Chars 28611 - 28615 [(cbn).] 0. secs (0.u,0.s) -Chars 28616 - 28639 [(unfold~_obsip,~_bindpi).] 0. secs (0.u,0.s) -Chars 28640 - 28654 [(split;~intros).] 0. secs (0.u,0.s) +Chars 28590 - 28597 [intros.] 0. secs (0.u,0.s) +Chars 28598 - 28610 [intros~p~Hp.] 0. secs (0.u,0.s) +Chars 28611 - 28615 [cbn.] 0. secs (0.u,0.s) +Chars 28616 - 28639 [unfold~_obsip,~_bindpi.] 0. secs (0.u,0.s) +Chars 28640 - 28654 [split;~intros.] 0. secs (0.u,0.s) Chars 28659 - 28660 [-] 0. secs (0.u,0.s) Chars 28661 - 28700 [specialize~(eutt_reta_or_div~t...] 0. secs (0.u,0.s) -Chars 28701 - 28714 [(destruct~Hor).] 0. secs (0.u,0.s) +Chars 28701 - 28714 [destruct~Hor.] 0. secs (0.u,0.s) Chars 28721 - 28722 [+] 0. secs (0.u,0.s) -Chars 28723 - 28749 [(destruct~H0~as~[a~Hreta]).] 0. secs (0.u,0.s) +Chars 28723 - 28749 [destruct~H0~as~[a~Hreta].] 0. secs (0.u,0.s) Chars 28750 - 28755 [left.] 0. secs (0.u,0.s) Chars 28756 - 28765 [exists~a.] 0. secs (0.u,0.s) -Chars 28766 - 28778 [(split;~auto).] 0. secs (0.u,0.s) -Chars 28787 - 28804 [(eapply~Hp;~eauto).] 0.002 secs (0.001u,0.s) +Chars 28766 - 28778 [split;~auto.] 0. secs (0.u,0.s) +Chars 28787 - 28804 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) Chars 28805 - 28839 [specialize~(bind_ret_l~a~f)~as...] 0. secs (0.u,0.s) -Chars 28840 - 28854 [(rewrite~<-~H1).] 0.001 secs (0.001u,0.s) -Chars 28863 - 28881 [now~rewrite~Hreta.] 0.002 secs (0.002u,0.s) +Chars 28840 - 28854 [rewrite~<-~H1.] 0. secs (0.u,0.s) +Chars 28863 - 28881 [now~rewrite~Hreta.] 0.001 secs (0.001u,0.s) Chars 28889 - 28890 [+] 0. secs (0.u,0.s) Chars 28891 - 28897 [right.] 0. secs (0.u,0.s) -Chars 28898 - 28910 [(split;~auto).] 0. secs (0.u,0.s) -Chars 28911 - 28937 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 28938 - 28976 [(rewrite~(spin_bind~f),~<-~H0;...] 0.004 secs (0.003u,0.s) +Chars 28898 - 28910 [split;~auto.] 0. secs (0.u,0.s) +Chars 28911 - 28937 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 28938 - 28976 [rewrite~(spin_bind~f),~<-~H0;~...] 0.004 secs (0.003u,0.s) Chars 28981 - 28982 [-] 0. secs (0.u,0.s) -Chars 28983 - 28994 [(destruct~H).] 0. secs (0.u,0.s) +Chars 28983 - 28994 [destruct~H.] 0. secs (0.u,0.s) Chars 29001 - 29002 [+] 0. secs (0.u,0.s) -Chars 29003 - 29035 [(destruct~H~as~[a~[Hreta~Hpfa]]).] 0. secs (0.u,0.s) +Chars 29003 - 29035 [destruct~H~as~[a~[Hreta~Hpfa]].] 0. secs (0.u,0.s) Chars 29036 - 29070 [specialize~(bind_ret_l~a~f)~as...] 0. secs (0.u,0.s) -Chars 29079 - 29096 [(eapply~Hp;~eauto).] 0.002 secs (0.001u,0.s) -Chars 29097 - 29122 [now~rewrite~<-~Hreta,~H1.] 0.006 secs (0.006u,0.s) +Chars 29079 - 29096 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) +Chars 29097 - 29122 [now~rewrite~<-~Hreta,~H1.] 0.001 secs (0.001u,0.s) Chars 29130 - 29131 [+] 0. secs (0.u,0.s) -Chars 29132 - 29143 [(destruct~H).] 0. secs (0.u,0.s) -Chars 29144 - 29169 [(apply~div_spin_eutt~in~H).] 0. secs (0.u,0.s) -Chars 29178 - 29202 [(rewrite~H,~<-~spin_bind).] 0.002 secs (0.002u,0.s) -Chars 29203 - 29212 [(apply~H0).] 0. secs (0.u,0.s) -Chars 29215 - 29219 [Qed.] 0.003 secs (0.003u,0.s) +Chars 29132 - 29143 [destruct~H.] 0. secs (0.u,0.s) +Chars 29144 - 29169 [apply~div_spin_eutt~in~H.] 0. secs (0.u,0.s) +Chars 29178 - 29202 [rewrite~H,~<-~spin_bind.] 0.002 secs (0.002u,0.s) +Chars 29203 - 29212 [apply~H0.] 0. secs (0.u,0.s) +Chars 29215 - 29219 [Qed.] 0.002 secs (0.002u,0.s) Chars 29223 - 29324 [Lemma~obsip_eutt~:~~~forall~A~...] 0. secs (0.u,0.s) Chars 29327 - 29333 [Proof.] 0. secs (0.u,0.s) -Chars 29338 - 29391 [(split;~intros;~unfold~obsip,~...] 0. secs (0.u,0.s) +Chars 29338 - 29391 [split;~intros;~unfold~obsip,~_...] 0. secs (0.u,0.s) Chars 29396 - 29397 [-] 0. secs (0.u,0.s) -Chars 29398 - 29410 [(intros~p~Hp).] 0. secs (0.u,0.s) -Chars 29411 - 29417 [(simpl).] 0. secs (0.u,0.s) -Chars 29418 - 29450 [(split;~intros;~eapply~Hp;~eau...] 0.001 secs (0.001u,0.s) -Chars 29457 - 29474 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 29398 - 29410 [intros~p~Hp.] 0. secs (0.u,0.s) +Chars 29411 - 29417 [simpl.] 0. secs (0.u,0.s) +Chars 29418 - 29450 [split;~intros;~eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) +Chars 29457 - 29474 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 29480 - 29481 [-] 0. secs (0.u,0.s) -Chars 29482 - 29511 [(set~(p~:=~fun~t~=>~t~≈~t1)).] 0. secs (0.u,0.s) -Chars 29518 - 29544 [(assert~(Hp~:~resp_eutt~p)).] 0. secs (0.u,0.s) +Chars 29482 - 29511 [set~(p~:=~fun~t~=>~t~≈~t1).] 0. secs (0.u,0.s) +Chars 29518 - 29544 [assert~(Hp~:~resp_eutt~p).] 0. secs (0.u,0.s) Chars 29551 - 29552 [+] 0. secs (0.u,0.s) -Chars 29553 - 29566 [(intros~t3~t4).] 0. secs (0.u,0.s) -Chars 29567 - 29576 [(unfold~p).] 0. secs (0.u,0.s) -Chars 29577 - 29591 [(split;~intros).] 0. secs (0.u,0.s) +Chars 29553 - 29566 [intros~t3~t4.] 0. secs (0.u,0.s) +Chars 29567 - 29576 [unfold~p.] 0. secs (0.u,0.s) +Chars 29577 - 29591 [split;~intros.] 0. secs (0.u,0.s) Chars 29600 - 29601 [*] 0. secs (0.u,0.s) -Chars 29602 - 29616 [(rewrite~<-~H1).] 0. secs (0.u,0.s) +Chars 29602 - 29616 [rewrite~<-~H1.] 0. secs (0.u,0.s) Chars 29617 - 29630 [now~symmetry.] 0. secs (0.u,0.s) Chars 29640 - 29641 [*] 0. secs (0.u,0.s) Chars 29642 - 29657 [now~rewrite~H0.] 0. secs (0.u,0.s) Chars 29665 - 29666 [+] 0. secs (0.u,0.s) Chars 29667 - 29687 [specialize~(H~p~Hp).] 0. secs (0.u,0.s) -Chars 29688 - 29699 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 29700 - 29714 [(unfold~p~in~H).] 0. secs (0.u,0.s) +Chars 29688 - 29699 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 29700 - 29714 [unfold~p~in~H.] 0. secs (0.u,0.s) Chars 29715 - 29724 [symmetry.] 0. secs (0.u,0.s) -Chars 29725 - 29733 [(apply~H).] 0. secs (0.u,0.s) +Chars 29725 - 29733 [apply~H.] 0. secs (0.u,0.s) Chars 29734 - 29746 [reflexivity.] 0. secs (0.u,0.s) Chars 29749 - 29753 [Qed.] 0.001 secs (0.001u,0.s) Chars 29757 - 29846 [#[global]~Instance~PureITreeEf...] 0. secs (0.u,0.s) @@ -564,8 +564,8 @@ Chars 29850 - 29949 [#[global]~Instance~PureITreeMo...] 0. secs (0.u,0.s) Chars 29952 - 29958 [Proof.] 0. secs (0.u,0.s) Chars 29963 - 29975 [constructor.] 0. secs (0.u,0.s) Chars 29980 - 29981 [-] 0. secs (0.u,0.s) -Chars 29982 - 30003 [(apply~obsip_pres_ret).] 0. secs (0.u,0.s) +Chars 29982 - 30003 [apply~obsip_pres_ret.] 0. secs (0.u,0.s) Chars 30008 - 30009 [-] 0. secs (0.u,0.s) -Chars 30010 - 30032 [(apply~obsip_pres_bind).] 0. secs (0.u,0.s) +Chars 30010 - 30032 [apply~obsip_pres_bind.] 0. secs (0.u,0.s) Chars 30035 - 30039 [Qed.] 0. secs (0.u,0.s) -Chars 30041 - 30055 [End~PureITree.] 0.002 secs (0.002u,0.s) +Chars 30041 - 30055 [End~PureITree.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateDelaySpec.v.timing b/extra/Dijkstra/StateDelaySpec.v.timing index 16897245..10571be9 100644 --- a/extra/Dijkstra/StateDelaySpec.v.timing +++ b/extra/Dijkstra/StateDelaySpec.v.timing @@ -1,10 +1,10 @@ -Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.137 secs (0.12u,0.015s) -Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.061 secs (0.054u,0.006s) -Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.047 secs (0.038u,0.008s) -Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.059 secs (0.052u,0.007s) +Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.098 secs (0.086u,0.01s) +Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.043 secs (0.039u,0.003s) +Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.032 secs (0.027u,0.005s) +Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.042 secs (0.038u,0.004s) Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.025 secs (0.024u,0.s) +Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.02 secs (0.02u,0.s) Chars 433 - 469 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) Chars 615 - 638 [Section~StateDelaySpec.] 0. secs (0.u,0.s) Chars 642 - 662 [Context~(St~:~Type).] 0. secs (0.u,0.s) @@ -18,293 +18,293 @@ Chars 1054 - 1117 [Definition~StateDelayObs~:=~Ef...] 0. secs (0.u,0.s) Chars 1121 - 1194 [Definition~StateDelayMonadMorp...] 0. secs (0.u,0.s) Chars 1198 - 1270 [Definition~PrePost~A~:~Type~:=...] 0. secs (0.u,0.s) Chars 1274 - 1416 [Definition~PrePostRef~{A~:~Typ...] 0. secs (0.u,0.s) -Chars 1420 - 1575 [#[program]~Definition~encode~{...] 0.004 secs (0.004u,0.s) +Chars 1420 - 1575 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) Chars 1579 - 1671 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) Chars 1675 - 1907 [Lemma~encode_correct~:~~~foral...] 0. secs (0.u,0.s) Chars 1910 - 1916 [Proof.] 0. secs (0.u,0.s) -Chars 1921 - 1928 [(intros).] 0. secs (0.u,0.s) -Chars 1929 - 1933 [(cbn).] 0. secs (0.u,0.s) -Chars 1934 - 1967 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) -Chars 1972 - 1986 [(split;~intros).] 0. secs (0.u,0.s) +Chars 1921 - 1928 [intros.] 0. secs (0.u,0.s) +Chars 1929 - 1933 [cbn.] 0. secs (0.u,0.s) +Chars 1934 - 1967 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 1972 - 1986 [split;~intros.] 0. secs (0.u,0.s) Chars 1991 - 1992 [-] 0. secs (0.u,0.s) -Chars 1993 - 2004 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2005 - 2011 [(simpl).] 0. secs (0.u,0.s) -Chars 2012 - 2019 [(intros).] 0. secs (0.u,0.s) -Chars 2020 - 2041 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 2042 - 2054 [(simpl~in~H1).] 0. secs (0.u,0.s) -Chars 2055 - 2082 [(destruct~H1~as~[Hpre~Himp]).] 0. secs (0.u,0.s) +Chars 1993 - 2004 [repeat~red.] 0. secs (0.u,0.s) +Chars 2005 - 2011 [simpl.] 0. secs (0.u,0.s) +Chars 2012 - 2019 [intros.] 0. secs (0.u,0.s) +Chars 2020 - 2041 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 2042 - 2054 [simpl~in~H1.] 0. secs (0.u,0.s) +Chars 2055 - 2082 [destruct~H1~as~[Hpre~Himp].] 0. secs (0.u,0.s) Chars 2089 - 2094 [auto.] 0. secs (0.u,0.s) Chars 2099 - 2100 [-] 0. secs (0.u,0.s) -Chars 2101 - 2118 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 2119 - 2131 [(simpl~in~H0).] 0. secs (0.u,0.s) -Chars 2138 - 2164 [(set~(p~:=~exist~_~post~H)).] 0. secs (0.u,0.s) -Chars 2165 - 2192 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) -Chars 2199 - 2208 [(apply~H0).] 0. secs (0.u,0.s) +Chars 2101 - 2118 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 2119 - 2131 [simpl~in~H0.] 0. secs (0.u,0.s) +Chars 2138 - 2164 [set~(p~:=~exist~_~post~H).] 0. secs (0.u,0.s) +Chars 2165 - 2192 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 2199 - 2208 [apply~H0.] 0. secs (0.u,0.s) Chars 2209 - 2214 [auto.] 0. secs (0.u,0.s) -Chars 2217 - 2221 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2217 - 2221 [Qed.] 0.002 secs (0.002u,0.s) Chars 2225 - 2282 [Definition~PrePostPair~A~:~Typ...] 0. secs (0.u,0.s) Chars 2286 - 2485 [Definition~PrePostPairRef~{A~:...] 0. secs (0.u,0.s) -Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.004 secs (0.004u,0.s) -Chars 2757 - 2773 [Next~Obligation.] 0.002 secs (0.002u,0.s) -Chars 2776 - 2801 [(destruct~H0~as~[H0|~H1]).] 0. secs (0.u,0.s) +Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.002 secs (0.002u,0.s) +Chars 2757 - 2773 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 2776 - 2801 [destruct~H0~as~[H0|~H1].] 0. secs (0.u,0.s) Chars 2804 - 2805 [-] 0. secs (0.u,0.s) -Chars 2806 - 2829 [(destruct~H0~as~[Hp~Hr]).] 0. secs (0.u,0.s) +Chars 2806 - 2829 [destruct~H0~as~[Hp~Hr].] 0. secs (0.u,0.s) Chars 2830 - 2835 [left.] 0. secs (0.u,0.s) Chars 2836 - 2841 [auto.] 0. secs (0.u,0.s) Chars 2844 - 2845 [-] 0. secs (0.u,0.s) -Chars 2846 - 2869 [(destruct~H1~as~[Hp~Hr]).] 0. secs (0.u,0.s) +Chars 2846 - 2869 [destruct~H1~as~[Hp~Hr].] 0. secs (0.u,0.s) Chars 2870 - 2876 [right.] 0. secs (0.u,0.s) Chars 2877 - 2882 [auto.] 0. secs (0.u,0.s) -Chars 2885 - 2889 [Qed.] 0.002 secs (0.002u,0.s) -Chars 2893 - 3236 [Lemma~encode_pair_correct~:~~~...] 0.001 secs (0.001u,0.s) +Chars 2885 - 2889 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2893 - 3236 [Lemma~encode_pair_correct~:~~~...] 0. secs (0.u,0.s) Chars 3239 - 3245 [Proof.] 0. secs (0.u,0.s) -Chars 3250 - 3257 [(intros).] 0. secs (0.u,0.s) -Chars 3258 - 3262 [(cbn).] 0. secs (0.u,0.s) -Chars 3263 - 3296 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) -Chars 3297 - 3311 [(split;~intros).] 0. secs (0.u,0.s) +Chars 3250 - 3257 [intros.] 0. secs (0.u,0.s) +Chars 3258 - 3262 [cbn.] 0. secs (0.u,0.s) +Chars 3263 - 3296 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 3297 - 3311 [split;~intros.] 0. secs (0.u,0.s) Chars 3316 - 3317 [-] 0. secs (0.u,0.s) -Chars 3318 - 3329 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3330 - 3336 [(simpl).] 0. secs (0.u,0.s) -Chars 3337 - 3344 [(intros).] 0. secs (0.u,0.s) -Chars 3345 - 3367 [(destruct~p~as~[p~Hrp]).] 0. secs (0.u,0.s) +Chars 3318 - 3329 [repeat~red.] 0. secs (0.u,0.s) +Chars 3330 - 3336 [simpl.] 0. secs (0.u,0.s) +Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) +Chars 3345 - 3367 [destruct~p~as~[p~Hrp].] 0. secs (0.u,0.s) Chars 3374 - 3392 [specialize~(H1~s).] 0. secs (0.u,0.s) -Chars 3393 - 3405 [(destruct~H1).] 0. secs (0.u,0.s) -Chars 3412 - 3468 [(destruct~H2~as~[[Hs~Hp]|~[Hs~...] 0. secs (0.u,0.s) +Chars 3393 - 3405 [destruct~H1.] 0. secs (0.u,0.s) +Chars 3412 - 3468 [destruct~H2~as~[[Hs~Hp]|~[Hs~H...] 0. secs (0.u,0.s) Chars 3473 - 3474 [-] 0. secs (0.u,0.s) -Chars 3475 - 3492 [(repeat~red~in~H1).] 0. secs (0.u,0.s) -Chars 3493 - 3504 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 3511 - 3525 [(split;~intros).] 0. secs (0.u,0.s) +Chars 3475 - 3492 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 3493 - 3504 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 3511 - 3525 [split;~intros.] 0. secs (0.u,0.s) Chars 3532 - 3533 [+] 0. secs (0.u,0.s) -Chars 3534 - 3561 [(set~(p~:=~exist~_~post0~H)).] 0. secs (0.u,0.s) -Chars 3562 - 3590 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) -Chars 3599 - 3608 [(apply~H1).] 0. secs (0.u,0.s) +Chars 3534 - 3561 [set~(p~:=~exist~_~post0~H).] 0. secs (0.u,0.s) +Chars 3562 - 3590 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 3599 - 3608 [apply~H1.] 0. secs (0.u,0.s) Chars 3609 - 3614 [left.] 0. secs (0.u,0.s) -Chars 3615 - 3627 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3615 - 3627 [split;~auto.] 0. secs (0.u,0.s) Chars 3634 - 3635 [+] 0. secs (0.u,0.s) -Chars 3636 - 3664 [(set~(p~:=~exist~_~post1~H0)).] 0. secs (0.u,0.s) -Chars 3665 - 3693 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) -Chars 3702 - 3711 [(apply~H1).] 0. secs (0.u,0.s) +Chars 3636 - 3664 [set~(p~:=~exist~_~post1~H0).] 0. secs (0.u,0.s) +Chars 3665 - 3693 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 3702 - 3711 [apply~H1.] 0. secs (0.u,0.s) Chars 3712 - 3718 [right.] 0. secs (0.u,0.s) -Chars 3719 - 3731 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3734 - 3738 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3719 - 3731 [split;~auto.] 0. secs (0.u,0.s) +Chars 3734 - 3738 [Qed.] 0.003 secs (0.003u,0.s) Chars 3742 - 3794 [Definition~PrePostList~A~:~Typ...] 0. secs (0.u,0.s) Chars 3798 - 3977 [Definition~PrePostListRef~{A~:...] 0. secs (0.u,0.s) -Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.002 secs (0.002u,0.s) -Chars 4217 - 4233 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 4238 - 4258 [(induction~H0;~eauto).] 0. secs (0.u,0.s) -Chars 4263 - 4288 [(destruct~x~as~[post~pre]).] 0. secs (0.u,0.s) -Chars 4289 - 4312 [(destruct~H0~as~[Hs~Hr]).] 0. secs (0.u,0.s) +Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) +Chars 4217 - 4233 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 4238 - 4258 [induction~H0;~eauto.] 0. secs (0.u,0.s) +Chars 4263 - 4288 [destruct~x~as~[post~pre].] 0. secs (0.u,0.s) +Chars 4289 - 4312 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) Chars 4313 - 4318 [left.] 0. secs (0.u,0.s) Chars 4319 - 4324 [auto.] 0. secs (0.u,0.s) -Chars 4327 - 4331 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4327 - 4331 [Qed.] 0.001 secs (0.001u,0.s) Chars 4336 - 4545 [Lemma~enocde_list_correct~:~~~...] 0. secs (0.u,0.s) Chars 4548 - 4554 [Proof.] 0. secs (0.u,0.s) -Chars 4559 - 4566 [(intros).] 0. secs (0.u,0.s) -Chars 4567 - 4600 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) -Chars 4601 - 4615 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4559 - 4566 [intros.] 0. secs (0.u,0.s) +Chars 4567 - 4600 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 4601 - 4615 [split;~intros.] 0. secs (0.u,0.s) Chars 4620 - 4621 [-] 0. secs (0.u,0.s) -Chars 4622 - 4633 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4634 - 4641 [(intros).] 0. secs (0.u,0.s) -Chars 4642 - 4663 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 4664 - 4674 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 4622 - 4633 [repeat~red.] 0. secs (0.u,0.s) +Chars 4634 - 4641 [intros.] 0. secs (0.u,0.s) +Chars 4642 - 4663 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 4664 - 4674 [red~in~H0.] 0. secs (0.u,0.s) Chars 4681 - 4710 [specialize~(H0~s)~as~Hrefine.] 0. secs (0.u,0.s) -Chars 4711 - 4736 [(unfold~encode_list~in~H1).] 0. secs (0.u,0.s) -Chars 4737 - 4748 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 4755 - 4769 [(induction~ppl).] 0. secs (0.u,0.s) +Chars 4711 - 4736 [unfold~encode_list~in~H1.] 0. secs (0.u,0.s) +Chars 4737 - 4748 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 4755 - 4769 [induction~ppl.] 0. secs (0.u,0.s) Chars 4776 - 4777 [+] 0. secs (0.u,0.s) -Chars 4778 - 4791 [(inversion~H1).] 0. secs (0.u,0.s) +Chars 4778 - 4791 [inversion~H1.] 0. secs (0.u,0.s) Chars 4798 - 4799 [+] 0. secs (0.u,0.s) -Chars 4800 - 4825 [(destruct~a~as~[post~pre]).] 0. secs (0.u,0.s) -Chars 4834 - 4854 [(inversion~H1;~subst).] 0.001 secs (0.001u,0.s) +Chars 4800 - 4825 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) +Chars 4834 - 4854 [inversion~H1;~subst.] 0. secs (0.u,0.s) Chars 4863 - 4864 [*] 0. secs (0.u,0.s) -Chars 4865 - 4877 [(destruct~H3).] 0. secs (0.u,0.s) +Chars 4865 - 4877 [destruct~H3.] 0. secs (0.u,0.s) Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) -Chars 4894 - 4932 [(assert~(pre~s~->~post~(m~s));...] 0. secs (0.u,0.s) -Chars 4943 - 4950 [(intros).] 0. secs (0.u,0.s) -Chars 4951 - 4982 [(inversion~Hrefine;~subst;~auto).] 0.001 secs (0.u,0.s) +Chars 4894 - 4932 [assert~(pre~s~->~post~(m~s));~...] 0. secs (0.u,0.s) +Chars 4943 - 4950 [intros.] 0. secs (0.u,0.s) +Chars 4951 - 4982 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) Chars 4991 - 4992 [*] 0. secs (0.u,0.s) -Chars 4993 - 5011 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) +Chars 4993 - 5011 [apply~IHppl;~auto.] 0. secs (0.u,0.s) Chars 5022 - 5024 [--] 0. secs (0.u,0.s) -Chars 5025 - 5043 [(inversion~H;~auto).] 0.001 secs (0.001u,0.s) +Chars 5025 - 5043 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) Chars 5054 - 5056 [--] 0. secs (0.u,0.s) -Chars 5057 - 5064 [(intros).] 0. secs (0.u,0.s) +Chars 5057 - 5064 [intros.] 0. secs (0.u,0.s) Chars 5065 - 5084 [specialize~(H0~s0).] 0. secs (0.u,0.s) -Chars 5085 - 5098 [(inversion~H0).] 0. secs (0.u,0.s) +Chars 5085 - 5098 [inversion~H0.] 0. secs (0.u,0.s) Chars 5099 - 5104 [auto.] 0. secs (0.u,0.s) Chars 5115 - 5117 [--] 0. secs (0.u,0.s) Chars 5118 - 5136 [specialize~(H0~s).] 0. secs (0.u,0.s) -Chars 5137 - 5150 [(inversion~H0).] 0. secs (0.u,0.s) +Chars 5137 - 5150 [inversion~H0.] 0. secs (0.u,0.s) Chars 5151 - 5156 [auto.] 0. secs (0.u,0.s) Chars 5161 - 5162 [-] 0. secs (0.u,0.s) -Chars 5163 - 5188 [(unfold~encode_list~in~H0).] 0. secs (0.u,0.s) -Chars 5189 - 5200 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5201 - 5212 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5213 - 5230 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 5231 - 5242 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5243 - 5250 [(intros).] 0. secs (0.u,0.s) -Chars 5257 - 5277 [(induction~ppl;~auto).] 0. secs (0.u,0.s) -Chars 5284 - 5309 [(destruct~a~as~[post~pre]).] 0. secs (0.u,0.s) +Chars 5163 - 5188 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) +Chars 5189 - 5200 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5201 - 5212 [repeat~red.] 0. secs (0.u,0.s) +Chars 5213 - 5230 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 5231 - 5242 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5243 - 5250 [intros.] 0. secs (0.u,0.s) +Chars 5257 - 5277 [induction~ppl;~auto.] 0. secs (0.u,0.s) +Chars 5284 - 5309 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) Chars 5310 - 5336 [specialize~(H0~s)~as~Henc.] 0. secs (0.u,0.s) -Chars 5343 - 5375 [(assert~(Heutt~:~resp_eutt~pos...] 0. secs (0.u,0.s) +Chars 5343 - 5375 [assert~(Heutt~:~resp_eutt~post).] 0. secs (0.u,0.s) Chars 5382 - 5383 [{] 0. secs (0.u,0.s) -Chars 5384 - 5396 [(inversion~H).] 0.005 secs (0.005u,0.s) +Chars 5384 - 5396 [inversion~H.] 0.003 secs (0.003u,0.s) Chars 5397 - 5402 [auto.] 0. secs (0.u,0.s) Chars 5403 - 5404 [}] 0. secs (0.u,0.s) -Chars 5411 - 5441 [(set~(p~:=~exist~_~post~Heutt)).] 0. secs (0.u,0.s) +Chars 5411 - 5441 [set~(p~:=~exist~_~post~Heutt).] 0. secs (0.u,0.s) Chars 5442 - 5471 [specialize~(Henc~p)~as~Hencp.] 0. secs (0.u,0.s) -Chars 5478 - 5498 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 5478 - 5498 [constructor;~intros.] 0. secs (0.u,0.s) Chars 5505 - 5506 [+] 0. secs (0.u,0.s) -Chars 5507 - 5535 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) -Chars 5536 - 5548 [(apply~Hencp).] 0. secs (0.u,0.s) +Chars 5507 - 5535 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 5536 - 5548 [apply~Hencp.] 0. secs (0.u,0.s) Chars 5557 - 5562 [left.] 0. secs (0.u,0.s) -Chars 5563 - 5575 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5563 - 5575 [split;~auto.] 0. secs (0.u,0.s) Chars 5582 - 5583 [+] 0. secs (0.u,0.s) -Chars 5584 - 5602 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) +Chars 5584 - 5602 [apply~IHppl;~auto.] 0. secs (0.u,0.s) Chars 5611 - 5612 [*] 0. secs (0.u,0.s) -Chars 5613 - 5625 [(inversion~H).] 0.001 secs (0.001u,0.s) +Chars 5613 - 5625 [inversion~H.] 0.001 secs (0.001u,0.s) Chars 5626 - 5631 [auto.] 0. secs (0.u,0.s) Chars 5640 - 5641 [*] 0. secs (0.u,0.s) Chars 5642 - 5654 [clear~IHppl.] 0. secs (0.u,0.s) -Chars 5655 - 5662 [(intros).] 0. secs (0.u,0.s) -Chars 5663 - 5672 [(apply~H0).] 0. secs (0.u,0.s) +Chars 5655 - 5662 [intros.] 0. secs (0.u,0.s) +Chars 5663 - 5672 [apply~H0.] 0. secs (0.u,0.s) Chars 5673 - 5679 [eauto.] 0. secs (0.u,0.s) -Chars 5682 - 5686 [Qed.] 0.011 secs (0.011u,0.s) +Chars 5682 - 5686 [Qed.] 0.008 secs (0.008u,0.s) Chars 5690 - 5770 [Definition~DynPrePost~A~:~Type...] 0. secs (0.u,0.s) Chars 5774 - 5916 [Definition~DynPrePostRef~{A~:~...] 0. secs (0.u,0.s) -Chars 5920 - 6081 [#[program]~Definition~encode_d...] 0.003 secs (0.003u,0.s) +Chars 5920 - 6081 [#[program]~Definition~encode_d...] 0.002 secs (0.002u,0.s) Chars 6085 - 6320 [Lemma~encode_dyn_correct~:~~~f...] 0. secs (0.u,0.s) Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) -Chars 6338 - 6345 [(intros).] 0. secs (0.u,0.s) -Chars 6346 - 6379 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) -Chars 6380 - 6394 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6338 - 6345 [intros.] 0. secs (0.u,0.s) +Chars 6346 - 6379 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 6380 - 6394 [split;~intros.] 0. secs (0.u,0.s) Chars 6401 - 6402 [-] 0. secs (0.u,0.s) -Chars 6403 - 6414 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6415 - 6425 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 6426 - 6433 [(intros).] 0. secs (0.u,0.s) -Chars 6434 - 6455 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 6456 - 6467 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6476 - 6499 [(destruct~H1~as~[Hs~Hr]).] 0. secs (0.u,0.s) +Chars 6403 - 6414 [repeat~red.] 0. secs (0.u,0.s) +Chars 6415 - 6425 [red~in~H0.] 0. secs (0.u,0.s) +Chars 6426 - 6433 [intros.] 0. secs (0.u,0.s) +Chars 6434 - 6455 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 6456 - 6467 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6476 - 6499 [destruct~H1~as~[Hs~Hr].] 0. secs (0.u,0.s) Chars 6500 - 6505 [auto.] 0. secs (0.u,0.s) Chars 6512 - 6513 [-] 0. secs (0.u,0.s) -Chars 6514 - 6531 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 6532 - 6536 [(red).] 0. secs (0.u,0.s) -Chars 6537 - 6544 [(intros).] 0. secs (0.u,0.s) -Chars 6553 - 6588 [(set~(p~:=~exist~_~(post~s)~(H...] 0. secs (0.u,0.s) +Chars 6514 - 6531 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 6532 - 6536 [red.] 0. secs (0.u,0.s) +Chars 6537 - 6544 [intros.] 0. secs (0.u,0.s) +Chars 6553 - 6588 [set~(p~:=~exist~_~(post~s)~(H~...] 0. secs (0.u,0.s) Chars 6589 - 6609 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 6618 - 6633 [(unfold~p~in~H0).] 0. secs (0.u,0.s) -Chars 6634 - 6645 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 6618 - 6633 [unfold~p~in~H0.] 0. secs (0.u,0.s) +Chars 6634 - 6645 [simpl~in~*.] 0. secs (0.u,0.s) Chars 6646 - 6651 [auto.] 0. secs (0.u,0.s) -Chars 6656 - 6660 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6656 - 6660 [Qed.] 0.001 secs (0.001u,0.s) Chars 6664 - 6807 [Definition~DynPrePostListRef~{...] 0. secs (0.u,0.s) Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) Chars 7028 - 7044 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 7049 - 7069 [(induction~H0;~eauto).] 0. secs (0.u,0.s) +Chars 7049 - 7069 [induction~H0;~eauto.] 0. secs (0.u,0.s) Chars 7070 - 7075 [left.] 0. secs (0.u,0.s) -Chars 7076 - 7101 [(destruct~x~as~[pre~post]).] 0. secs (0.u,0.s) -Chars 7102 - 7125 [(destruct~H0~as~[Hs~Hr]).] 0. secs (0.u,0.s) -Chars 7130 - 7142 [(split;~auto).] 0. secs (0.u,0.s) -Chars 7145 - 7149 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7076 - 7101 [destruct~x~as~[pre~post].] 0. secs (0.u,0.s) +Chars 7102 - 7125 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) +Chars 7130 - 7142 [split;~auto.] 0. secs (0.u,0.s) +Chars 7145 - 7149 [Qed.] 0.001 secs (0.001u,0.s) Chars 7153 - 7392 [Lemma~enocde_list_dyn_correct~...] 0. secs (0.u,0.s) Chars 7395 - 7401 [Proof.] 0. secs (0.u,0.s) -Chars 7406 - 7413 [(intros).] 0. secs (0.u,0.s) -Chars 7414 - 7447 [(unfold~verify_cond,~DijkstraP...] 0. secs (0.u,0.s) -Chars 7448 - 7462 [(split;~intros).] 0. secs (0.u,0.s) +Chars 7406 - 7413 [intros.] 0. secs (0.u,0.s) +Chars 7414 - 7447 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) +Chars 7448 - 7462 [split;~intros.] 0. secs (0.u,0.s) Chars 7467 - 7468 [-] 0. secs (0.u,0.s) -Chars 7469 - 7480 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7481 - 7488 [(intros).] 0. secs (0.u,0.s) -Chars 7489 - 7510 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 7511 - 7523 [(simpl~in~H1).] 0. secs (0.u,0.s) -Chars 7524 - 7534 [(red~in~H0).] 0. secs (0.u,0.s) +Chars 7469 - 7480 [repeat~red.] 0. secs (0.u,0.s) +Chars 7481 - 7488 [intros.] 0. secs (0.u,0.s) +Chars 7489 - 7510 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 7511 - 7523 [simpl~in~H1.] 0. secs (0.u,0.s) +Chars 7524 - 7534 [red~in~H0.] 0. secs (0.u,0.s) Chars 7535 - 7558 [rename~H0~into~Hrefine.] 0. secs (0.u,0.s) -Chars 7565 - 7597 [(unfold~DynPrePostRef~in~Hrefi...] 0. secs (0.u,0.s) -Chars 7604 - 7618 [(induction~ppl).] 0. secs (0.u,0.s) +Chars 7565 - 7597 [unfold~DynPrePostRef~in~Hrefine.] 0. secs (0.u,0.s) +Chars 7604 - 7618 [induction~ppl.] 0. secs (0.u,0.s) Chars 7625 - 7626 [+] 0. secs (0.u,0.s) -Chars 7627 - 7640 [(inversion~H1).] 0. secs (0.u,0.s) +Chars 7627 - 7640 [inversion~H1.] 0. secs (0.u,0.s) Chars 7647 - 7648 [+] 0. secs (0.u,0.s) -Chars 7649 - 7674 [(destruct~a~as~[pre~post]).] 0. secs (0.u,0.s) -Chars 7683 - 7703 [(inversion~H1;~subst).] 0.001 secs (0.001u,0.s) +Chars 7649 - 7674 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) +Chars 7683 - 7703 [inversion~H1;~subst.] 0. secs (0.u,0.s) Chars 7712 - 7713 [*] 0. secs (0.u,0.s) -Chars 7714 - 7726 [(destruct~H2).] 0. secs (0.u,0.s) -Chars 7737 - 7777 [(assert~(pre~s~->~post~s~(m~s)...] 0. secs (0.u,0.s) -Chars 7788 - 7795 [(intros).] 0. secs (0.u,0.s) -Chars 7796 - 7827 [(inversion~Hrefine;~subst;~auto).] 0. secs (0.u,0.s) +Chars 7714 - 7726 [destruct~H2.] 0. secs (0.u,0.s) +Chars 7737 - 7777 [assert~(pre~s~->~post~s~(m~s))...] 0. secs (0.u,0.s) +Chars 7788 - 7795 [intros.] 0. secs (0.u,0.s) +Chars 7796 - 7827 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) Chars 7836 - 7837 [*] 0. secs (0.u,0.s) -Chars 7838 - 7856 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) +Chars 7838 - 7856 [apply~IHppl;~auto.] 0. secs (0.u,0.s) Chars 7867 - 7869 [--] 0. secs (0.u,0.s) -Chars 7870 - 7888 [(inversion~H;~auto).] 0.001 secs (0.001u,0.s) +Chars 7870 - 7888 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) Chars 7899 - 7901 [--] 0. secs (0.u,0.s) -Chars 7902 - 7909 [(intros).] 0. secs (0.u,0.s) -Chars 7910 - 7934 [(inversion~Hrefine;~auto).] 0.001 secs (0.u,0.s) +Chars 7902 - 7909 [intros.] 0. secs (0.u,0.s) +Chars 7910 - 7934 [inversion~Hrefine;~auto.] 0. secs (0.u,0.s) Chars 7939 - 7940 [-] 0. secs (0.u,0.s) -Chars 7941 - 7966 [(unfold~encode_list~in~H0).] 0. secs (0.u,0.s) -Chars 7967 - 7978 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7979 - 7990 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7991 - 8008 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 8009 - 8020 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 8021 - 8028 [(intros).] 0. secs (0.u,0.s) -Chars 8035 - 8055 [(induction~ppl;~auto).] 0. secs (0.u,0.s) -Chars 8062 - 8087 [(destruct~a~as~[pre~post]).] 0. secs (0.u,0.s) -Chars 8094 - 8140 [(assert~(Heutt~:~forall~s,~res...] 0. secs (0.u,0.s) +Chars 7941 - 7966 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) +Chars 7967 - 7978 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7979 - 7990 [repeat~red.] 0. secs (0.u,0.s) +Chars 7991 - 8008 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 8009 - 8020 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 8021 - 8028 [intros.] 0. secs (0.u,0.s) +Chars 8035 - 8055 [induction~ppl;~auto.] 0. secs (0.u,0.s) +Chars 8062 - 8087 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) +Chars 8094 - 8140 [assert~(Heutt~:~forall~s,~resp...] 0. secs (0.u,0.s) Chars 8147 - 8148 [{] 0. secs (0.u,0.s) -Chars 8149 - 8161 [(inversion~H).] 0.001 secs (0.001u,0.s) +Chars 8149 - 8161 [inversion~H.] 0.001 secs (0.001u,0.s) Chars 8162 - 8167 [auto.] 0. secs (0.u,0.s) Chars 8168 - 8169 [}] 0. secs (0.u,0.s) -Chars 8176 - 8196 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 8176 - 8196 [constructor;~intros.] 0. secs (0.u,0.s) Chars 8203 - 8204 [+] 0. secs (0.u,0.s) -Chars 8205 - 8209 [(red).] 0. secs (0.u,0.s) -Chars 8210 - 8217 [(intros).] 0. secs (0.u,0.s) -Chars 8218 - 8256 [(set~(p~:=~exist~_~(post~s)~(H...] 0. secs (0.u,0.s) +Chars 8205 - 8209 [red.] 0. secs (0.u,0.s) +Chars 8210 - 8217 [intros.] 0. secs (0.u,0.s) +Chars 8218 - 8256 [set~(p~:=~exist~_~(post~s)~(He...] 0. secs (0.u,0.s) Chars 8265 - 8285 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 8286 - 8313 [(enough~(m~s~∈~p);~auto).] 0. secs (0.u,0.s) -Chars 8314 - 8323 [(apply~H0).] 0. secs (0.u,0.s) +Chars 8286 - 8313 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) +Chars 8314 - 8323 [apply~H0.] 0. secs (0.u,0.s) Chars 8332 - 8337 [left.] 0. secs (0.u,0.s) -Chars 8338 - 8350 [(split;~auto).] 0. secs (0.u,0.s) +Chars 8338 - 8350 [split;~auto.] 0. secs (0.u,0.s) Chars 8357 - 8358 [+] 0. secs (0.u,0.s) -Chars 8359 - 8377 [(apply~IHppl;~auto).] 0. secs (0.u,0.s) +Chars 8359 - 8377 [apply~IHppl;~auto.] 0. secs (0.u,0.s) Chars 8386 - 8387 [*] 0. secs (0.u,0.s) -Chars 8388 - 8400 [(inversion~H).] 0.001 secs (0.001u,0.s) +Chars 8388 - 8400 [inversion~H.] 0.001 secs (0.001u,0.s) Chars 8401 - 8406 [auto.] 0. secs (0.u,0.s) Chars 8415 - 8416 [*] 0. secs (0.u,0.s) Chars 8417 - 8429 [clear~IHppl.] 0. secs (0.u,0.s) -Chars 8430 - 8437 [(intros).] 0. secs (0.u,0.s) +Chars 8430 - 8437 [intros.] 0. secs (0.u,0.s) Chars 8448 - 8468 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 8469 - 8478 [(apply~H0).] 0. secs (0.u,0.s) +Chars 8469 - 8478 [apply~H0.] 0. secs (0.u,0.s) Chars 8479 - 8485 [eauto.] 0. secs (0.u,0.s) -Chars 8488 - 8492 [Qed.] 0.012 secs (0.012u,0.s) -Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.005 secs (0.004u,0.s) +Chars 8488 - 8492 [Qed.] 0.011 secs (0.01u,0.s) +Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.001 secs (0.001u,0.s) Chars 8993 - 8999 [Proof.] 0. secs (0.u,0.s) -Chars 9004 - 9011 [(intros).] 0. secs (0.u,0.s) -Chars 9012 - 9028 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 9029 - 9040 [(repeat~red).] 0. secs (0.u,0.s) -Chars 9041 - 9048 [(intros).] 0. secs (0.u,0.s) -Chars 9053 - 9074 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 9075 - 9086 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 9091 - 9103 [(destruct~H3).] 0. secs (0.u,0.s) -Chars 9108 - 9155 [(destruct~(eutt_reta_or_div~(m...] 0. secs (0.u,0.s) +Chars 9004 - 9011 [intros.] 0. secs (0.u,0.s) +Chars 9012 - 9028 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 9029 - 9040 [repeat~red.] 0. secs (0.u,0.s) +Chars 9041 - 9048 [intros.] 0. secs (0.u,0.s) +Chars 9053 - 9074 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 9075 - 9086 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 9091 - 9103 [destruct~H3.] 0. secs (0.u,0.s) +Chars 9108 - 9155 [destruct~(eutt_reta_or_div~(m~...] 0. secs (0.u,0.s) Chars 9160 - 9161 [-] 0. secs (0.u,0.s) -Chars 9162 - 9183 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) -Chars 9190 - 9200 [(cbn~in~H5).] 0. secs (0.u,0.s) -Chars 9201 - 9232 [(rewrite~<-~H5,~bind_ret_l;~cbn).] 0.007 secs (0.007u,0.s) -Chars 9233 - 9246 [(apply~H4,~H0).] 0. secs (0.u,0.s) -Chars 9247 - 9258 [(rewrite~H5).] 0.001 secs (0.001u,0.s) -Chars 9265 - 9302 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) +Chars 9162 - 9183 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) +Chars 9190 - 9200 [cbn~in~H5.] 0. secs (0.u,0.s) +Chars 9201 - 9232 [rewrite~<-~H5,~bind_ret_l;~cbn.] 0.004 secs (0.004u,0.s) +Chars 9233 - 9246 [apply~H4,~H0.] 0. secs (0.u,0.s) +Chars 9247 - 9258 [rewrite~H5.] 0.001 secs (0.001u,0.s) +Chars 9265 - 9302 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) Chars 9307 - 9308 [-] 0. secs (0.u,0.s) -Chars 9309 - 9335 [(apply~div_spin_eutt~in~H5).] 0. secs (0.u,0.s) -Chars 9342 - 9367 [(rewrite~H5,~<-~spin_bind).] 0.005 secs (0.005u,0.s) -Chars 9368 - 9381 [(apply~H4,~H1).] 0. secs (0.u,0.s) -Chars 9382 - 9396 [(rewrite~<-~H5).] 0.002 secs (0.002u,0.s) -Chars 9397 - 9434 [(apply~(H~s~(exist~_~post1~H2)...] 0. secs (0.u,0.s) -Chars 9437 - 9441 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9309 - 9335 [apply~div_spin_eutt~in~H5.] 0. secs (0.u,0.s) +Chars 9342 - 9367 [rewrite~H5,~<-~spin_bind.] 0.003 secs (0.003u,0.s) +Chars 9368 - 9381 [apply~H4,~H1.] 0. secs (0.u,0.s) +Chars 9382 - 9396 [rewrite~<-~H5.] 0.001 secs (0.001u,0.s) +Chars 9397 - 9434 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) +Chars 9437 - 9441 [Qed.] 0.003 secs (0.003u,0.s) Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.001 secs (0.001u,0.s) Chars 9947 - 9953 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9965 [(intros).] 0. secs (0.u,0.s) -Chars 9970 - 10004 [(eapply~combine_prepost_aux;~e...] 0. secs (0.u,0.s) -Chars 10009 - 10016 [(intros).] 0. secs (0.u,0.s) +Chars 9958 - 9965 [intros.] 0. secs (0.u,0.s) +Chars 9970 - 10004 [eapply~combine_prepost_aux;~ea...] 0. secs (0.u,0.s) +Chars 10009 - 10016 [intros.] 0. secs (0.u,0.s) Chars 10021 - 10047 [specialize~(H1~a)~as~Hpp2.] 0. secs (0.u,0.s) -Chars 10048 - 10067 [(repeat~red~in~Hpp2).] 0. secs (0.u,0.s) +Chars 10048 - 10067 [repeat~red~in~Hpp2.] 0.002 secs (0.002u,0.s) Chars 10072 - 10112 [specialize~(Hpp2~s~(exist~_~po...] 0. secs (0.u,0.s) -Chars 10113 - 10124 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 10129 - 10140 [(apply~Hpp2).] 0. secs (0.u,0.s) -Chars 10141 - 10154 [(split;~eauto).] 0. secs (0.u,0.s) -Chars 10157 - 10161 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10163 - 10182 [End~StateDelaySpec.] 0.002 secs (0.002u,0.s) +Chars 10113 - 10124 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 10129 - 10140 [apply~Hpp2.] 0. secs (0.u,0.s) +Chars 10141 - 10154 [split;~eauto.] 0. secs (0.u,0.s) +Chars 10157 - 10161 [Qed.] 0. secs (0.u,0.s) +Chars 10163 - 10182 [End~StateDelaySpec.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateIOTrace.v.timing b/extra/Dijkstra/StateIOTrace.v.timing index 0277c3ef..07172a1c 100644 --- a/extra/Dijkstra/StateIOTrace.v.timing +++ b/extra/Dijkstra/StateIOTrace.v.timing @@ -1,8 +1,8 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 39 - 89 [From~Stdlib~Require~Import~Ari...] 0.143 secs (0.123u,0.018s) -Chars 91 - 198 [From~ExtLib~Require~Import~Dat...] 0.009 secs (0.005u,0.002s) -Chars 200 - 342 [From~ITree~Require~Import~Axio...] 0.13 secs (0.11u,0.019s) -Chars 344 - 558 [From~ITree.Extra~Require~Impor...] 0.095 secs (0.082u,0.012s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 39 - 89 [From~Stdlib~Require~Import~Ari...] 0.098 secs (0.087u,0.009s) +Chars 91 - 198 [From~ExtLib~Require~Import~Dat...] 0.006 secs (0.003u,0.001s) +Chars 200 - 342 [From~ITree~Require~Import~Axio...] 0.081 secs (0.074u,0.007s) +Chars 344 - 558 [From~ITree.Extra~Require~Impor...] 0.059 secs (0.054u,0.005s) Chars 560 - 574 [Import~Monads.] 0. secs (0.u,0.s) Chars 575 - 596 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 597 - 629 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -10,7 +10,7 @@ Chars 631 - 666 [Definition~env~:=~alist~string...] 0. secs (0.u,0.s) Chars 668 - 774 [Variant~StateE~:~Type~->~Type~...] 0. secs (0.u,0.s) Chars 776 - 851 [Variant~IO~:~Type~->~Type~:=~~...] 0. secs (0.u,0.s) Chars 852 - 903 [Notation~stateiotree~A:=~(itre...] 0. secs (0.u,0.s) -Chars 905 - 976 [Definition~StateIOSpec~:~Type~...] 0.001 secs (0.001u,0.s) +Chars 905 - 976 [Definition~StateIOSpec~:~Type~...] 0. secs (0.u,0.s) Chars 978 - 1040 [Definition~SIOSpecOrder~:=~Sta...] 0. secs (0.u,0.s) Chars 1042 - 1114 [Definition~SIOSpecOrderLaws~:=...] 0. secs (0.u,0.s) Chars 1116 - 1173 [Definition~SIOSpecEq~:=~StateS...] 0. secs (0.u,0.s) @@ -19,7 +19,7 @@ Chars 1244 - 1315 [Definition~SIOMorph~:=~MonadMo...] 0. secs (0.u,0.s) Chars 1317 - 1412 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) Chars 1461 - 1523 [Definition~StateIOSpecPre~:~Ty...] 0. secs (0.u,0.s) Chars 1577 - 1653 [Definition~StateIOSpecPost~(A~...] 0. secs (0.u,0.s) -Chars 1655 - 1813 [#[program]~Definition~encode~{...] 0.005 secs (0.005u,0.s) +Chars 1655 - 1813 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) Chars 1816 - 1835 [Section~PrintMults.] 0. secs (0.u,0.s) Chars 1838 - 1860 [Variables~(X~Y~:~string).] 0. secs (0.u,0.s) Chars 1863 - 1886 [Context~(HXY~:~X~<>~Y).] 0. secs (0.u,0.s) @@ -30,255 +30,255 @@ Chars 2351 - 2494 [Definition~mults_n~{R~:~Type}~...] 0. secs (0.u,0.s) Chars 2498 - 2640 [CoFixpoint~mults_of_n_from_m~{...] 0. secs (0.u,0.s) Chars 2644 - 2730 [Definition~mults_of_n~{R~:~Typ...] 0. secs (0.u,0.s) Chars 2734 - 2837 [Definition~print_mults_pre~:~S...] 0. secs (0.u,0.s) -Chars 2893 - 3040 [Definition~print_mults_post~:~...] 0.001 secs (0.u,0.s) -Chars 3044 - 3304 [Definition~print_mults~:~state...] 0.007 secs (0.007u,0.s) +Chars 2893 - 3040 [Definition~print_mults_post~:~...] 0. secs (0.u,0.s) +Chars 3044 - 3304 [Definition~print_mults~:~state...] 0.004 secs (0.004u,0.s) Chars 3309 - 3388 [Definition~add~(V~:~string)~(v...] 0. secs (0.u,0.s) -Chars 3392 - 3705 [Definition~handleIOStateE~(A~:...] 0.002 secs (0.002u,0.s) +Chars 3392 - 3705 [Definition~handleIOStateE~(A~:...] 0.001 secs (0.001u,0.s) Chars 3709 - 3767 [Ltac~unf_res~:=~unfold~resum,~...] 0. secs (0.u,0.s) Chars 3771 - 3876 [Lemma~lookup_eq~:~~~forall~(s~...] 0. secs (0.u,0.s) Chars 3879 - 3885 [Proof.] 0. secs (0.u,0.s) -Chars 3890 - 3897 [(intros).] 0. secs (0.u,0.s) -Chars 3898 - 3941 [(assert~(Maps.mapsto~x~v~(Maps...] 0. secs (0.u,0.s) +Chars 3890 - 3897 [intros.] 0. secs (0.u,0.s) +Chars 3898 - 3941 [assert~(Maps.mapsto~x~v~(Maps....] 0. secs (0.u,0.s) Chars 3946 - 3947 [{] 0. secs (0.u,0.s) -Chars 3948 - 3990 [(apply~Maps.mapsto_add_eq;~try...] 0. secs (0.u,0.s) +Chars 3948 - 3990 [apply~Maps.mapsto_add_eq;~try~...] 0. secs (0.u,0.s) Chars 3991 - 3992 [}] 0. secs (0.u,0.s) -Chars 3997 - 4028 [(eapply~Maps.mapsto_lookup~in~H).] 0. secs (0.u,0.s) -Chars 4029 - 4051 [(unfold~lookup_default).] 0. secs (0.u,0.s) -Chars 4052 - 4062 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 3997 - 4028 [eapply~Maps.mapsto_lookup~in~H.] 0. secs (0.u,0.s) +Chars 4029 - 4051 [unfold~lookup_default.] 0. secs (0.u,0.s) +Chars 4052 - 4062 [rewrite~H.] 0. secs (0.u,0.s) Chars 4063 - 4068 [auto.] 0. secs (0.u,0.s) Chars 4071 - 4075 [Qed.] 0. secs (0.u,0.s) -Chars 4079 - 4193 [Lemma~lookup_nin~:~~~forall~(x...] 0.01 secs (0.008u,0.001s) +Chars 4079 - 4193 [Lemma~lookup_nin~:~~~forall~(x...] 0. secs (0.u,0.s) Chars 4196 - 4202 [Proof.] 0. secs (0.u,0.s) -Chars 4207 - 4214 [(intros).] 0. secs (0.u,0.s) -Chars 4215 - 4224 [(red~in~s).] 0. secs (0.u,0.s) -Chars 4225 - 4234 [(red~in~s).] 0. secs (0.u,0.s) -Chars 4235 - 4258 [generalize~dependent~x.] 0. secs (0.u,0.s) -Chars 4259 - 4285 [(induction~s;~intros;~auto).] 0. secs (0.u,0.s) +Chars 4207 - 4214 [intros.] 0. secs (0.u,0.s) +Chars 4215 - 4224 [red~in~s.] 0. secs (0.u,0.s) +Chars 4225 - 4234 [red~in~s.] 0. secs (0.u,0.s) +Chars 4235 - 4258 [generalize~dependent~x.] 0.006 secs (0.006u,0.s) +Chars 4259 - 4285 [induction~s;~intros;~auto.] 0. secs (0.u,0.s) Chars 4290 - 4291 [-] 0. secs (0.u,0.s) -Chars 4292 - 4296 [(cbn).] 0. secs (0.u,0.s) -Chars 4297 - 4317 [(destruct~a~as~[y~v]).] 0. secs (0.u,0.s) -Chars 4318 - 4359 [(destruct~(Strings.String.stri...] 0. secs (0.u,0.s) +Chars 4292 - 4296 [cbn.] 0. secs (0.u,0.s) +Chars 4297 - 4317 [destruct~a~as~[y~v].] 0. secs (0.u,0.s) +Chars 4318 - 4359 [destruct~(Strings.String.strin...] 0. secs (0.u,0.s) Chars 4366 - 4367 [+] 0. secs (0.u,0.s) Chars 4368 - 4374 [subst.] 0. secs (0.u,0.s) Chars 4375 - 4383 [exfalso.] 0. secs (0.u,0.s) -Chars 4384 - 4393 [(eapply~H).] 0. secs (0.u,0.s) -Chars 4394 - 4398 [(red).] 0. secs (0.u,0.s) -Chars 4399 - 4403 [(cbn).] 0. secs (0.u,0.s) -Chars 4404 - 4408 [(red).] 0. secs (0.u,0.s) -Chars 4409 - 4413 [(cbn).] 0. secs (0.u,0.s) -Chars 4422 - 4459 [(rewrite~RelDec.rel_dec_eq_tru...] 0. secs (0.u,0.s) -Chars 4460 - 4488 [(apply~RelDec_Correct_string).] 0. secs (0.u,0.s) +Chars 4384 - 4393 [eapply~H.] 0. secs (0.u,0.s) +Chars 4394 - 4398 [red.] 0. secs (0.u,0.s) +Chars 4399 - 4403 [cbn.] 0. secs (0.u,0.s) +Chars 4404 - 4408 [red.] 0. secs (0.u,0.s) +Chars 4409 - 4413 [cbn.] 0. secs (0.u,0.s) +Chars 4422 - 4459 [rewrite~RelDec.rel_dec_eq_true...] 0. secs (0.u,0.s) +Chars 4460 - 4488 [apply~RelDec_Correct_string.] 0. secs (0.u,0.s) Chars 4495 - 4496 [+] 0. secs (0.u,0.s) -Chars 4497 - 4569 [(rewrite~RelDec.rel_dec_neq_fa...] 0. secs (0.u,0.s) -Chars 4578 - 4604 [(unfold~Maps.lookup~in~IHs).] 0. secs (0.u,0.s) -Chars 4605 - 4614 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 4615 - 4631 [(apply~IHs;~auto).] 0.001 secs (0.001u,0.s) -Chars 4632 - 4639 [(intros).] 0. secs (0.u,0.s) +Chars 4497 - 4569 [rewrite~RelDec.rel_dec_neq_fal...] 0. secs (0.u,0.s) +Chars 4578 - 4604 [unfold~Maps.lookup~in~IHs.] 0. secs (0.u,0.s) +Chars 4605 - 4614 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 4615 - 4631 [apply~IHs;~auto.] 0. secs (0.u,0.s) +Chars 4632 - 4639 [intros.] 0. secs (0.u,0.s) Chars 4648 - 4662 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 4663 - 4672 [(eapply~H).] 0. secs (0.u,0.s) -Chars 4673 - 4677 [(red).] 0. secs (0.u,0.s) -Chars 4678 - 4682 [(cbn).] 0. secs (0.u,0.s) -Chars 4691 - 4764 [(rewrite~RelDec.rel_dec_neq_fa...] 0. secs (0.u,0.s) -Chars 4767 - 4771 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4663 - 4672 [eapply~H.] 0. secs (0.u,0.s) +Chars 4673 - 4677 [red.] 0. secs (0.u,0.s) +Chars 4678 - 4682 [cbn.] 0. secs (0.u,0.s) +Chars 4691 - 4764 [rewrite~RelDec.rel_dec_neq_fal...] 0. secs (0.u,0.s) +Chars 4767 - 4771 [Qed.] 0. secs (0.u,0.s) Chars 4775 - 4965 [Lemma~lookup_neq~:~~~forall~(s...] 0. secs (0.u,0.s) Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) -Chars 4980 - 4987 [(intros).] 0. secs (0.u,0.s) -Chars 4992 - 5043 [(destruct~(classic~(exists~v',...] 0. secs (0.u,0.s) +Chars 4980 - 4987 [intros.] 0. secs (0.u,0.s) +Chars 4992 - 5043 [destruct~(classic~(exists~v',~...] 0. secs (0.u,0.s) Chars 5048 - 5049 [-] 0. secs (0.u,0.s) -Chars 5050 - 5074 [(destruct~H0~as~[v'~Hv']).] 0. secs (0.u,0.s) -Chars 5081 - 5124 [(assert~(Maps.mapsto~x~v'~(Map...] 0. secs (0.u,0.s) +Chars 5050 - 5074 [destruct~H0~as~[v'~Hv'].] 0. secs (0.u,0.s) +Chars 5081 - 5124 [assert~(Maps.mapsto~x~v'~(Maps...] 0. secs (0.u,0.s) Chars 5131 - 5132 [{] 0. secs (0.u,0.s) -Chars 5141 - 5182 [(eapply~Maps.mapsto_add_neq~in...] 0. secs (0.u,0.s) +Chars 5141 - 5182 [eapply~Maps.mapsto_add_neq~in~...] 0. secs (0.u,0.s) Chars 5189 - 5190 [}] 0. secs (0.u,0.s) -Chars 5197 - 5228 [(apply~Maps.mapsto_lookup~in~H0).] 0. secs (0.u,0.s) -Chars 5229 - 5261 [(apply~Maps.mapsto_lookup~in~H...] 0. secs (0.u,0.s) -Chars 5262 - 5284 [(unfold~lookup_default).] 0. secs (0.u,0.s) -Chars 5291 - 5303 [(rewrite~Hv').] 0. secs (0.u,0.s) -Chars 5304 - 5315 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 5197 - 5228 [apply~Maps.mapsto_lookup~in~H0.] 0. secs (0.u,0.s) +Chars 5229 - 5261 [apply~Maps.mapsto_lookup~in~Hv'.] 0. secs (0.u,0.s) +Chars 5262 - 5284 [unfold~lookup_default.] 0. secs (0.u,0.s) +Chars 5291 - 5303 [rewrite~Hv'.] 0. secs (0.u,0.s) +Chars 5304 - 5315 [rewrite~H0.] 0. secs (0.u,0.s) Chars 5316 - 5321 [auto.] 0. secs (0.u,0.s) Chars 5326 - 5327 [-] 0. secs (0.u,0.s) -Chars 5328 - 5368 [(assert~(forall~v',~~~Maps.map...] 0. secs (0.u,0.s) +Chars 5328 - 5368 [assert~(forall~v',~~~Maps.maps...] 0. secs (0.u,0.s) Chars 5375 - 5376 [{] 0. secs (0.u,0.s) -Chars 5377 - 5390 [(intros~v'~Hc).] 0. secs (0.u,0.s) -Chars 5391 - 5400 [(apply~H0).] 0. secs (0.u,0.s) +Chars 5377 - 5390 [intros~v'~Hc.] 0. secs (0.u,0.s) +Chars 5391 - 5400 [apply~H0.] 0. secs (0.u,0.s) Chars 5401 - 5411 [exists~v'.] 0. secs (0.u,0.s) Chars 5412 - 5417 [auto.] 0. secs (0.u,0.s) Chars 5418 - 5419 [}] 0. secs (0.u,0.s) Chars 5426 - 5435 [clear~H0.] 0. secs (0.u,0.s) -Chars 5436 - 5465 [(apply~lookup_nin~in~H1~as~Hs).] 0. secs (0.u,0.s) -Chars 5466 - 5488 [(unfold~lookup_default).] 0. secs (0.u,0.s) -Chars 5495 - 5506 [(rewrite~Hs).] 0. secs (0.u,0.s) -Chars 5513 - 5568 [(assert~(forall~v',~~~Maps.map...] 0. secs (0.u,0.s) +Chars 5436 - 5465 [apply~lookup_nin~in~H1~as~Hs.] 0. secs (0.u,0.s) +Chars 5466 - 5488 [unfold~lookup_default.] 0. secs (0.u,0.s) +Chars 5495 - 5506 [rewrite~Hs.] 0. secs (0.u,0.s) +Chars 5513 - 5568 [assert~(forall~v',~~~Maps.maps...] 0. secs (0.u,0.s) Chars 5575 - 5576 [{] 0. secs (0.u,0.s) -Chars 5585 - 5603 [(intros~v'~Hcontra).] 0. secs (0.u,0.s) -Chars 5604 - 5647 [(apply~Maps.mapsto_add_neq~in~...] 0. secs (0.u,0.s) -Chars 5656 - 5673 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) +Chars 5585 - 5603 [intros~v'~Hcontra.] 0. secs (0.u,0.s) +Chars 5604 - 5647 [apply~Maps.mapsto_add_neq~in~H...] 0. secs (0.u,0.s) +Chars 5656 - 5673 [eapply~H1;~eauto.] 0. secs (0.u,0.s) Chars 5680 - 5681 [}] 0. secs (0.u,0.s) -Chars 5688 - 5718 [(apply~lookup_nin~in~H0~as~Hs').] 0. secs (0.u,0.s) -Chars 5719 - 5731 [(rewrite~Hs').] 0. secs (0.u,0.s) +Chars 5688 - 5718 [apply~lookup_nin~in~H0~as~Hs'.] 0. secs (0.u,0.s) +Chars 5719 - 5731 [rewrite~Hs'.] 0. secs (0.u,0.s) Chars 5732 - 5737 [auto.] 0. secs (0.u,0.s) Chars 5740 - 5744 [Qed.] 0.001 secs (0.001u,0.s) Chars 5748 - 5884 [Ltac~~prove_arg~H~:=~~~let~H'~...] 0. secs (0.u,0.s) Chars 5888 - 6018 [Lemma~print_mults_sats_spec~:~...] 0. secs (0.u,0.s) Chars 6021 - 6027 [Proof.] 0. secs (0.u,0.s) -Chars 6032 - 6043 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6044 - 6050 [(simpl).] 0. secs (0.u,0.s) -Chars 6051 - 6088 [(intros~s~log~[p~Hp]~[Hpre~H']...] 0. secs (0.u,0.s) -Chars 6089 - 6100 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6105 - 6114 [(apply~H').] 0. secs (0.u,0.s) +Chars 6032 - 6043 [repeat~red.] 0. secs (0.u,0.s) +Chars 6044 - 6050 [simpl.] 0. secs (0.u,0.s) +Chars 6051 - 6088 [intros~s~log~[p~Hp]~[Hpre~H']~...] 0. secs (0.u,0.s) +Chars 6089 - 6100 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6105 - 6114 [apply~H'.] 0. secs (0.u,0.s) Chars 6115 - 6124 [clear~H'.] 0. secs (0.u,0.s) -Chars 6125 - 6156 [(unfold~print_mults_pre~in~Hpre).] 0. secs (0.u,0.s) -Chars 6161 - 6190 [(destruct~Hpre~as~[Hlog~Henv]).] 0. secs (0.u,0.s) +Chars 6125 - 6156 [unfold~print_mults_pre~in~Hpre.] 0. secs (0.u,0.s) +Chars 6161 - 6190 [destruct~Hpre~as~[Hlog~Henv].] 0. secs (0.u,0.s) Chars 6191 - 6197 [subst.] 0. secs (0.u,0.s) -Chars 6202 - 6226 [(unfold~print_mults_post).] 0. secs (0.u,0.s) -Chars 6227 - 6253 [setoid_rewrite~append_nil.] 0.026 secs (0.025u,0.s) -Chars 6258 - 6285 [(unfold~print_mults~in~Href).] 0. secs (0.u,0.s) -Chars 6286 - 6327 [setoid_rewrite~interp_state_bi...] 0.012 secs (0.012u,0.s) -Chars 6332 - 6376 [setoid_rewrite~interp_state_tr...] 0.539 secs (0.53u,0.006s) -Chars 6381 - 6413 [setoid_rewrite~bind_vis~in~Href.] 0.007 secs (0.007u,0.s) -Chars 6418 - 6457 [(apply~trace_refine_vis~in~Hre...] 0. secs (0.u,0.s) +Chars 6202 - 6226 [unfold~print_mults_post.] 0. secs (0.u,0.s) +Chars 6227 - 6253 [setoid_rewrite~append_nil.] 0.018 secs (0.018u,0.s) +Chars 6258 - 6285 [unfold~print_mults~in~Href.] 0. secs (0.u,0.s) +Chars 6286 - 6327 [setoid_rewrite~interp_state_bi...] 0.008 secs (0.008u,0.s) +Chars 6332 - 6376 [setoid_rewrite~interp_state_tr...] 0.39 secs (0.389u,0.001s) +Chars 6381 - 6413 [setoid_rewrite~bind_vis~in~Href.] 0.005 secs (0.005u,0.s) +Chars 6418 - 6457 [apply~trace_refine_vis~in~Href...] 0. secs (0.u,0.s) Chars 6458 - 6470 [basic_solve.] 0. secs (0.u,0.s) -Chars 6475 - 6496 [(rewrite~Hbhd~in~Href).] 0.008 secs (0.007u,0.s) -Chars 6497 - 6517 [setoid_rewrite~Hbhd.] 0.01 secs (0.01u,0.s) -Chars 6522 - 6534 [(destruct~e0).] 0.001 secs (0.001u,0.s) -Chars 6539 - 6618 [2:~~(destruct~ev;~assert~void;...] 0.002 secs (0.002u,0.s) -Chars 6623 - 6640 [(assert~(A~=~nat)).] 0. secs (0.u,0.s) +Chars 6475 - 6496 [rewrite~Hbhd~in~Href.] 0.005 secs (0.005u,0.s) +Chars 6497 - 6517 [setoid_rewrite~Hbhd.] 0.007 secs (0.007u,0.s) +Chars 6522 - 6534 [destruct~e0.] 0.001 secs (0.001u,0.s) +Chars 6539 - 6618 [2:~destruct~ev;~assert~void;~t...] 0.001 secs (0.001u,0.s) +Chars 6623 - 6640 [assert~(A~=~nat).] 0. secs (0.u,0.s) Chars 6645 - 6646 [{] 0. secs (0.u,0.s) -Chars 6653 - 6671 [(destruct~ev;~auto).] 0.001 secs (0.001u,0.s) -Chars 6672 - 6681 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6682 - 6692 [sinv~Href.] 0.025 secs (0.025u,0.s) -Chars 6693 - 6713 [(ddestruction;~subst).] 0.006 secs (0.006u,0.s) -Chars 6720 - 6729 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6730 - 6749 [(inversion~H1;~auto).] 0.002 secs (0.002u,0.s) +Chars 6653 - 6671 [destruct~ev;~auto.] 0.001 secs (0.001u,0.s) +Chars 6672 - 6681 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6682 - 6692 [sinv~Href.] 0.017 secs (0.017u,0.s) +Chars 6693 - 6713 [ddestruction;~subst.] 0.004 secs (0.004u,0.s) +Chars 6720 - 6729 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6730 - 6749 [inversion~H1;~auto.] 0.001 secs (0.001u,0.s) Chars 6754 - 6755 [}] 0. secs (0.u,0.s) -Chars 6760 - 6766 [subst.] 0.001 secs (0.001u,0.s) +Chars 6760 - 6766 [subst.] 0. secs (0.u,0.s) Chars 6767 - 6785 [rename~ans~into~n.] 0. secs (0.u,0.s) Chars 6786 - 6795 [exists~n.] 0. secs (0.u,0.s) -Chars 6800 - 6867 [(match~type~of~Href~with~~|~_~...] 0.001 secs (0.001u,0.s) +Chars 6800 - 6867 [match~type~of~Href~with~|~_~⊑~...] 0.001 secs (0.001u,0.s) Chars 6872 - 6882 [exists~k0.] 0. secs (0.u,0.s) Chars 6883 - 6889 [split.] 0. secs (0.u,0.s) Chars 6894 - 6895 [{] 0. secs (0.u,0.s) -Chars 6902 - 6916 [(simpl~in~Href).] 0. secs (0.u,0.s) +Chars 6902 - 6916 [simpl~in~Href.] 0. secs (0.u,0.s) Chars 6917 - 6928 [clear~Henv.] 0. secs (0.u,0.s) Chars 6929 - 6937 [unf_res.] 0. secs (0.u,0.s) -Chars 6944 - 6954 [sinv~Href.] 0.019 secs (0.019u,0.s) -Chars 6955 - 6975 [(ddestruction;~subst).] 0.006 secs (0.006u,0.s) -Chars 6976 - 6989 [(inversion~H1).] 0.003 secs (0.003u,0.s) -Chars 6990 - 7010 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 6944 - 6954 [sinv~Href.] 0.014 secs (0.014u,0.s) +Chars 6955 - 6975 [ddestruction;~subst.] 0.005 secs (0.005u,0.s) +Chars 6976 - 6989 [inversion~H1.] 0.001 secs (0.001u,0.s) +Chars 6990 - 7010 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) Chars 7011 - 7023 [reflexivity.] 0. secs (0.u,0.s) Chars 7028 - 7029 [}] 0. secs (0.u,0.s) Chars 7034 - 7052 [clear~Hp~p~Hbhd~b.] 0. secs (0.u,0.s) -Chars 7057 - 7081 [(assert~(k0~tt~⊑~kp~n)).] 0. secs (0.u,0.s) +Chars 7057 - 7081 [assert~(k0~tt~⊑~kp~n).] 0. secs (0.u,0.s) Chars 7086 - 7087 [{] 0. secs (0.u,0.s) Chars 7088 - 7100 [clear~Heqkp.] 0. secs (0.u,0.s) -Chars 7101 - 7111 [sinv~Href.] 0.012 secs (0.012u,0.s) -Chars 7112 - 7132 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) -Chars 7139 - 7181 [(unfold~resum,~ReSum_id,~id_,~...] 0. secs (0.u,0.s) -Chars 7182 - 7195 [(inversion~H1).] 0.001 secs (0.001u,0.s) -Chars 7196 - 7216 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) -Chars 7223 - 7298 [(assert~(RAnsRef~IO~unit~nat~(...] 0. secs (0.u,0.s) -Chars 7305 - 7319 [(apply~H6~in~H).] 0. secs (0.u,0.s) +Chars 7101 - 7111 [sinv~Href.] 0.009 secs (0.009u,0.s) +Chars 7112 - 7132 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 7139 - 7181 [unfold~resum,~ReSum_id,~id_,~I...] 0. secs (0.u,0.s) +Chars 7182 - 7195 [inversion~H1.] 0.003 secs (0.003u,0.s) +Chars 7196 - 7216 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) +Chars 7223 - 7298 [assert~(RAnsRef~IO~unit~nat~(e...] 0. secs (0.u,0.s) +Chars 7305 - 7319 [apply~H6~in~H.] 0. secs (0.u,0.s) Chars 7321 - 7326 [auto.] 0. secs (0.u,0.s) Chars 7331 - 7332 [}] 0. secs (0.u,0.s) Chars 7337 - 7351 [clear~Href~ev.] 0. secs (0.u,0.s) Chars 7352 - 7358 [subst.] 0. secs (0.u,0.s) -Chars 7359 - 7383 [(rewrite~bind_ret_l~in~H).] 0.007 secs (0.007u,0.s) -Chars 7384 - 7395 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7396 - 7427 [(rewrite~interp_state_bind~in~H).] 0.006 secs (0.006u,0.s) -Chars 7432 - 7466 [(rewrite~interp_state_trigger~...] 0.008 secs (0.008u,0.s) -Chars 7467 - 7478 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7479 - 7503 [(rewrite~bind_ret_l~in~H).] 0.008 secs (0.007u,0.s) -Chars 7508 - 7519 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 7359 - 7383 [rewrite~bind_ret_l~in~H.] 0.005 secs (0.005u,0.s) +Chars 7384 - 7395 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7396 - 7427 [rewrite~interp_state_bind~in~H.] 0.004 secs (0.004u,0.s) +Chars 7432 - 7466 [rewrite~interp_state_trigger~i...] 0.008 secs (0.008u,0.s) +Chars 7467 - 7478 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7479 - 7503 [rewrite~bind_ret_l~in~H.] 0.005 secs (0.005u,0.s) +Chars 7508 - 7519 [simpl~in~*.] 0. secs (0.u,0.s) Chars 7524 - 7582 [specialize~(@interp_state_iter...] 0. secs (0.u,0.s) -Chars 7587 - 7612 [(unfold~state_eq~in~Hiter).] 0. secs (0.u,0.s) -Chars 7613 - 7632 [(rewrite~Hiter~in~H).] 0.006 secs (0.006u,0.s) +Chars 7587 - 7612 [unfold~state_eq~in~Hiter.] 0. secs (0.u,0.s) +Chars 7613 - 7632 [rewrite~Hiter~in~H.] 0.004 secs (0.004u,0.s) Chars 7633 - 7645 [clear~Hiter.] 0. secs (0.u,0.s) -Chars 7651 - 7683 [(remember~(Maps.add~X~n~s)~as~...] 0.001 secs (0.001u,0.s) -Chars 7688 - 7757 [(assert~(si~=~alist_add~RelDec...] 0. secs (0.u,0.s) -Chars 7762 - 7781 [(rewrite~<-~H0~in~H).] 0. secs (0.u,0.s) +Chars 7651 - 7683 [remember~(Maps.add~X~n~s)~as~si.] 0.001 secs (0.001u,0.s) +Chars 7688 - 7757 [assert~(si~=~alist_add~RelDec_...] 0. secs (0.u,0.s) +Chars 7762 - 7781 [rewrite~<-~H0~in~H.] 0. secs (0.u,0.s) Chars 7782 - 7791 [clear~H0.] 0. secs (0.u,0.s) -Chars 7796 - 7814 [(unfold~mults_of_n).] 0. secs (0.u,0.s) -Chars 7819 - 7847 [(remember~0~as~next_to_write).] 0. secs (0.u,0.s) -Chars 7896 - 7943 [(assert~(lookup_default~Y~0~si...] 0. secs (0.u,0.s) +Chars 7796 - 7814 [unfold~mults_of_n.] 0. secs (0.u,0.s) +Chars 7819 - 7847 [remember~0~as~next_to_write.] 0. secs (0.u,0.s) +Chars 7896 - 7943 [assert~(lookup_default~Y~0~si~...] 0. secs (0.u,0.s) Chars 7948 - 7949 [{] 0. secs (0.u,0.s) Chars 7950 - 7956 [subst.] 0. secs (0.u,0.s) -Chars 7957 - 7982 [(rewrite~lookup_neq;~auto).] 0. secs (0.u,0.s) +Chars 7957 - 7982 [rewrite~lookup_neq;~auto.] 0. secs (0.u,0.s) Chars 7983 - 7984 [}] 0. secs (0.u,0.s) -Chars 7989 - 8023 [(assert~(lookup_default~X~0~si...] 0. secs (0.u,0.s) +Chars 7989 - 8023 [assert~(lookup_default~X~0~si~...] 0. secs (0.u,0.s) Chars 8028 - 8029 [{] 0. secs (0.u,0.s) Chars 8030 - 8036 [subst.] 0. secs (0.u,0.s) -Chars 8037 - 8053 [(apply~lookup_eq).] 0. secs (0.u,0.s) +Chars 8037 - 8053 [apply~lookup_eq.] 0. secs (0.u,0.s) Chars 8054 - 8055 [}] 0. secs (0.u,0.s) Chars 8060 - 8096 [clear~Heqsi~Heqnext_to_write~H...] 0. secs (0.u,0.s) Chars 8101 - 8125 [generalize~dependent~si.] 0. secs (0.u,0.s) -Chars 8130 - 8153 [(remember~(k0~tt)~as~tr).] 0.001 secs (0.001u,0.s) +Chars 8130 - 8153 [remember~(k0~tt)~as~tr.] 0. secs (0.u,0.s) Chars 8154 - 8169 [clear~Heqtr~k0.] 0. secs (0.u,0.s) Chars 8174 - 8198 [generalize~dependent~tr.] 0. secs (0.u,0.s) Chars 8203 - 8238 [generalize~dependent~next_to_w...] 0. secs (0.u,0.s) -Chars 8244 - 8262 [coinduction~c~CIH.] 0.006 secs (0.006u,0.s) -Chars 8314 - 8321 [(intros).] 0. secs (0.u,0.s) +Chars 8244 - 8262 [coinduction~c~CIH.] 0.007 secs (0.007u,0.s) +Chars 8314 - 8321 [intros.] 0. secs (0.u,0.s) Chars 8326 - 8344 [rename~H1~into~HX.] 0. secs (0.u,0.s) -Chars 8476 - 8549 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 8554 - 8579 [(rewrite~unfold_iter~in~H).] 0.011 secs (0.011u,0.s) -Chars 8584 - 8652 [(match~type~of~H~with~~|~_~⊑~I...] 0.002 secs (0.002u,0.s) -Chars 8658 - 8688 [setoid_rewrite~bind_bind~in~H.] 0.007 secs (0.007u,0.s) -Chars 8693 - 8719 [(rewrite~bind_trigger~in~H).] 0.012 secs (0.012u,0.s) -Chars 8724 - 8761 [setoid_rewrite~interp_state_vi...] 0.069 secs (0.068u,0.s) -Chars 8766 - 8775 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 8776 - 8800 [(rewrite~bind_ret_l~in~H).] 0.01 secs (0.01u,0.s) -Chars 8801 - 8823 [(rewrite~tau_eutt~in~H).] 0.01 secs (0.01u,0.s) -Chars 8828 - 8861 [setoid_rewrite~bind_trigger~in~H.] 0.021 secs (0.02u,0.s) -Chars 8866 - 8896 [(rewrite~interp_state_vis~in~H).] 0.011 secs (0.011u,0.s) -Chars 8897 - 8906 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 8911 - 8933 [(rewrite~bind_vis~in~H).] 0.012 secs (0.011u,0.s) -Chars 8938 - 8960 [(rewrite~bind_vis~in~H).] 0.007 secs (0.007u,0.s) -Chars 8965 - 8996 [setoid_rewrite~bind_ret_l~in~H.] 0.017 secs (0.017u,0.s) +Chars 8476 - 8549 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 8554 - 8579 [rewrite~unfold_iter~in~H.] 0.006 secs (0.006u,0.s) +Chars 8584 - 8652 [match~type~of~H~with~|~_~⊑~ITr...] 0.001 secs (0.001u,0.s) +Chars 8658 - 8688 [setoid_rewrite~bind_bind~in~H.] 0.005 secs (0.005u,0.s) +Chars 8693 - 8719 [rewrite~bind_trigger~in~H.] 0.009 secs (0.009u,0.s) +Chars 8724 - 8761 [setoid_rewrite~interp_state_vi...] 0.051 secs (0.05u,0.s) +Chars 8766 - 8775 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 8776 - 8800 [rewrite~bind_ret_l~in~H.] 0.007 secs (0.007u,0.s) +Chars 8801 - 8823 [rewrite~tau_eutt~in~H.] 0.007 secs (0.007u,0.s) +Chars 8828 - 8861 [setoid_rewrite~bind_trigger~in~H.] 0.014 secs (0.014u,0.s) +Chars 8866 - 8896 [rewrite~interp_state_vis~in~H.] 0.008 secs (0.007u,0.s) +Chars 8897 - 8906 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 8911 - 8933 [rewrite~bind_vis~in~H.] 0.007 secs (0.007u,0.s) +Chars 8938 - 8960 [rewrite~bind_vis~in~H.] 0.005 secs (0.005u,0.s) +Chars 8965 - 8996 [setoid_rewrite~bind_ret_l~in~H.] 0.011 secs (0.011u,0.s) Chars 9001 - 9009 [unf_res.] 0. secs (0.u,0.s) Chars 9014 - 9024 [step~in~H.] 0. secs (0.u,0.s) -Chars 9025 - 9034 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 9039 - 9061 [dependent~induction~H.] 0.05 secs (0.049u,0.s) +Chars 9025 - 9034 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9039 - 9061 [dependent~induction~H.] 0.035 secs (0.035u,0.s) Chars 9066 - 9070 [2:~{] 0. secs (0.u,0.s) -Chars 9071 - 9079 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 9080 - 9098 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 9099 - 9134 [(eapply~IHruttF;~eauto;~reflex...] 0.007 secs (0.007u,0.s) +Chars 9071 - 9079 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 9080 - 9098 [constructor;~auto.] 0.002 secs (0.002u,0.s) +Chars 9099 - 9134 [eapply~IHruttF;~eauto;~reflexi...] 0.006 secs (0.006u,0.s) Chars 9135 - 9136 [}] 0. secs (0.u,0.s) -Chars 9141 - 9207 [(inversion~H;~ddestruction;~su...] 0.03 secs (0.03u,0.s) +Chars 9141 - 9207 [inversion~H;~ddestruction;~sub...] 0.025 secs (0.024u,0.s) Chars 9212 - 9218 [subst.] 0. secs (0.u,0.s) Chars 9219 - 9241 [specialize~(H0~tt~tt).] 0. secs (0.u,0.s) -Chars 9246 - 9257 [(destruct~a).] 0.002 secs (0.002u,0.s) -Chars 9262 - 9292 [(prove_arg~H0;~auto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 9298 - 9380 [(match~type~of~H0~with~~|~gfp~...] 0. secs (0.u,0.s) -Chars 9385 - 9393 [simpobs.] 0.007 secs (0.007u,0.s) -Chars 9394 - 9412 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 9417 - 9427 [(intros~[]).] 0. secs (0.u,0.s) +Chars 9246 - 9257 [destruct~a.] 0.001 secs (0.001u,0.s) +Chars 9262 - 9292 [prove_arg~H0;~auto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 9298 - 9380 [match~type~of~H0~with~|~gfp~_~...] 0. secs (0.u,0.s) +Chars 9385 - 9393 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 9394 - 9412 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 9417 - 9427 [intros~[].] 0. secs (0.u,0.s) Chars 9432 - 9443 [clear~x~tr.] 0. secs (0.u,0.s) -Chars 9449 - 9487 [(remember~(lookup_default~X~0~...] 0.008 secs (0.008u,0.s) -Chars 9492 - 9530 [(remember~(lookup_default~Y~0~...] 0.01 secs (0.01u,0.s) -Chars 9535 - 9596 [(eapply~CIH~with~(Maps.add~Y~(...] 0. secs (0.u,0.s) +Chars 9449 - 9487 [remember~(lookup_default~X~0~s...] 0.006 secs (0.006u,0.s) +Chars 9492 - 9530 [remember~(lookup_default~Y~0~s...] 0.008 secs (0.007u,0.s) +Chars 9535 - 9596 [eapply~CIH~with~(Maps.add~Y~(n...] 0. secs (0.u,0.s) Chars 9601 - 9605 [2:~{] 0. secs (0.u,0.s) -Chars 9606 - 9638 [(rewrite~lookup_neq;~subst;~au...] 0.007 secs (0.007u,0.s) +Chars 9606 - 9638 [rewrite~lookup_neq;~subst;~auto.] 0.005 secs (0.005u,0.s) Chars 9639 - 9640 [}] 0. secs (0.u,0.s) -Chars 9645 - 9669 [(rewrite~tau_eutt~in~Hk1).] 0.012 secs (0.012u,0.s) -Chars 9670 - 9705 [setoid_rewrite~bind_trigger~in...] 0.019 secs (0.019u,0.s) -Chars 9710 - 9749 [setoid_rewrite~interp_state_vi...] 0.032 secs (0.032u,0.s) -Chars 9750 - 9759 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 9764 - 9790 [(rewrite~bind_ret_l~in~Hk1).] 0.014 secs (0.013u,0.s) -Chars 9791 - 9815 [(rewrite~tau_eutt~in~Hk1).] 0.012 secs (0.012u,0.s) -Chars 9820 - 9851 [setoid_rewrite~bind_vis~in~Hk1.] 0.019 secs (0.018u,0.s) -Chars 9856 - 9895 [setoid_rewrite~interp_state_vi...] 0.033 secs (0.033u,0.s) -Chars 9896 - 9905 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 9910 - 9936 [(rewrite~bind_ret_l~in~Hk1).] 0.012 secs (0.012u,0.s) -Chars 9937 - 9963 [(rewrite~bind_ret_l~in~Hk1).] 0.015 secs (0.014u,0.s) -Chars 9968 - 9992 [(rewrite~tau_eutt~in~Hk1).] 0.011 secs (0.011u,0.s) -Chars 9993 - 10002 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 10007 - 10039 [(rewrite~interp_state_ret~in~H...] 0.013 secs (0.012u,0.s) -Chars 10040 - 10066 [(rewrite~bind_ret_l~in~Hk1).] 0.009 secs (0.008u,0.s) -Chars 10071 - 10080 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 10085 - 10109 [(rewrite~tau_eutt~in~Hk1).] 0.008 secs (0.008u,0.s) -Chars 10114 - 10182 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 10187 - 10333 [(match~goal~with~~|~H:_~⊑~ITre...] 0.001 secs (0.001u,0.s) -Chars 10338 - 10344 [subst.] 0.004 secs (0.004u,0.s) -Chars 10345 - 10366 [(rewrite~Nat.add_comm).] 0. secs (0.u,0.s) +Chars 9645 - 9669 [rewrite~tau_eutt~in~Hk1.] 0.011 secs (0.01u,0.s) +Chars 9670 - 9705 [setoid_rewrite~bind_trigger~in...] 0.012 secs (0.012u,0.s) +Chars 9710 - 9749 [setoid_rewrite~interp_state_vi...] 0.024 secs (0.024u,0.s) +Chars 9750 - 9759 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9764 - 9790 [rewrite~bind_ret_l~in~Hk1.] 0.01 secs (0.01u,0.s) +Chars 9791 - 9815 [rewrite~tau_eutt~in~Hk1.] 0.009 secs (0.009u,0.s) +Chars 9820 - 9851 [setoid_rewrite~bind_vis~in~Hk1.] 0.014 secs (0.014u,0.s) +Chars 9856 - 9895 [setoid_rewrite~interp_state_vi...] 0.025 secs (0.025u,0.s) +Chars 9896 - 9905 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9910 - 9936 [rewrite~bind_ret_l~in~Hk1.] 0.01 secs (0.01u,0.s) +Chars 9937 - 9963 [rewrite~bind_ret_l~in~Hk1.] 0.01 secs (0.01u,0.s) +Chars 9968 - 9992 [rewrite~tau_eutt~in~Hk1.] 0.009 secs (0.009u,0.s) +Chars 9993 - 10002 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 10007 - 10039 [rewrite~interp_state_ret~in~Hk1.] 0.008 secs (0.008u,0.s) +Chars 10040 - 10066 [rewrite~bind_ret_l~in~Hk1.] 0.006 secs (0.006u,0.s) +Chars 10071 - 10080 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 10085 - 10109 [rewrite~tau_eutt~in~Hk1.] 0.006 secs (0.006u,0.s) +Chars 10114 - 10182 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 10187 - 10333 [match~goal~with~|~H:_~⊑~ITree....] 0. secs (0.u,0.s) +Chars 10338 - 10344 [subst.] 0.002 secs (0.002u,0.s) +Chars 10345 - 10366 [rewrite~Nat.add_comm.] 0. secs (0.u,0.s) Chars 10367 - 10372 [auto.] 0. secs (0.u,0.s) -Chars 10375 - 10379 [Qed.] 0.137 secs (0.135u,0.002s) -Chars 10381 - 10396 [End~PrintMults.] 0.002 secs (0.001u,0.s) +Chars 10375 - 10379 [Qed.] 0.104 secs (0.103u,0.s) +Chars 10381 - 10396 [End~PrintMults.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateSpecT.v.timing b/extra/Dijkstra/StateSpecT.v.timing index c53b1cfa..da263820 100644 --- a/extra/Dijkstra/StateSpecT.v.timing +++ b/extra/Dijkstra/StateSpecT.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.221 secs (0.193u,0.027s) -Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.019 secs (0.016u,0.003s) +Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.16 secs (0.142u,0.017s) +Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.011u,0.002s) Chars 341 - 355 [Import~Monads.] 0. secs (0.u,0.s) Chars 356 - 377 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 379 - 411 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -20,63 +20,63 @@ Chars 792 - 841 [Definition~StateSpecT~(A~:~Typ...] 0. secs (0.u,0.s) Chars 845 - 970 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) Chars 974 - 1041 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) Chars 1044 - 1050 [Proof.] 0. secs (0.u,0.s) -Chars 1055 - 1078 [(destruct~OrderedMonadW).] 0. secs (0.u,0.s) +Chars 1055 - 1078 [destruct~OrderedMonadW.] 0. secs (0.u,0.s) Chars 1083 - 1095 [constructor.] 0. secs (0.u,0.s) Chars 1100 - 1101 [-] 0. secs (0.u,0.s) -Chars 1102 - 1115 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 1102 - 1115 [repeat~intro.] 0. secs (0.u,0.s) Chars 1117 - 1122 [auto.] 0. secs (0.u,0.s) Chars 1127 - 1128 [-] 0. secs (0.u,0.s) -Chars 1129 - 1142 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1143 - 1163 [(eapply~trans;~eauto).] 0.004 secs (0.003u,0.001s) +Chars 1129 - 1142 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1143 - 1163 [eapply~trans;~eauto.] 0.028 secs (0.026u,0.002s) Chars 1168 - 1169 [-] 0. secs (0.u,0.s) -Chars 1170 - 1201 [(intros~A~B~w1~w2~f1~f2~Hlw~Hlf).] 0. secs (0.u,0.s) -Chars 1202 - 1225 [(unfold~StateSpecT~in~*).] 0. secs (0.u,0.s) -Chars 1232 - 1243 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1250 - 1257 [(intros).] 0. secs (0.u,0.s) -Chars 1258 - 1276 [(apply~monot;~auto).] 0.036 secs (0.032u,0.003s) -Chars 1277 - 1284 [(intros).] 0. secs (0.u,0.s) -Chars 1285 - 1306 [(destruct~a~as~[s'~a]).] 0. secs (0.u,0.s) -Chars 1307 - 1313 [(simpl).] 0. secs (0.u,0.s) -Chars 1320 - 1338 [(repeat~red~in~Hlf).] 0. secs (0.u,0.s) -Chars 1339 - 1349 [(apply~Hlf).] 0. secs (0.u,0.s) -Chars 1352 - 1356 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1170 - 1201 [intros~A~B~w1~w2~f1~f2~Hlw~Hlf.] 0. secs (0.u,0.s) +Chars 1202 - 1225 [unfold~StateSpecT~in~*.] 0. secs (0.u,0.s) +Chars 1232 - 1243 [repeat~red.] 0. secs (0.u,0.s) +Chars 1250 - 1257 [intros.] 0. secs (0.u,0.s) +Chars 1258 - 1276 [apply~monot;~auto.] 0. secs (0.u,0.s) +Chars 1277 - 1284 [intros.] 0. secs (0.u,0.s) +Chars 1285 - 1306 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) +Chars 1307 - 1313 [simpl.] 0. secs (0.u,0.s) +Chars 1320 - 1338 [repeat~red~in~Hlf.] 0. secs (0.u,0.s) +Chars 1339 - 1349 [apply~Hlf.] 0. secs (0.u,0.s) +Chars 1352 - 1356 [Qed.] 0. secs (0.u,0.s) Chars 1360 - 1463 [#[global]~Instance~StateSpecTE...] 0. secs (0.u,0.s) Chars 1467 - 1530 [#[global]~Instance~StateSpecTM...] 0. secs (0.u,0.s) Chars 1533 - 1539 [Proof.] 0. secs (0.u,0.s) -Chars 1544 - 1564 [(destruct~MonadLawsW).] 0. secs (0.u,0.s) +Chars 1544 - 1564 [destruct~MonadLawsW.] 0. secs (0.u,0.s) Chars 1569 - 1581 [constructor.] 0. secs (0.u,0.s) Chars 1586 - 1587 [-] 0. secs (0.u,0.s) -Chars 1588 - 1603 [(intros~A~B~f~a).] 0. secs (0.u,0.s) +Chars 1588 - 1603 [intros~A~B~f~a.] 0. secs (0.u,0.s) Chars 1604 - 1610 [intro.] 0. secs (0.u,0.s) -Chars 1611 - 1622 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1629 - 1633 [(cbn).] 0. secs (0.u,0.s) -Chars 1640 - 1659 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 1660 - 1666 [(simpl).] 0. secs (0.u,0.s) +Chars 1611 - 1622 [repeat~red.] 0. secs (0.u,0.s) +Chars 1629 - 1633 [cbn.] 0. secs (0.u,0.s) +Chars 1640 - 1659 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 1660 - 1666 [simpl.] 0. secs (0.u,0.s) Chars 1667 - 1679 [reflexivity.] 0. secs (0.u,0.s) Chars 1684 - 1685 [-] 0. secs (0.u,0.s) -Chars 1686 - 1697 [(intros~A~w).] 0. secs (0.u,0.s) +Chars 1686 - 1697 [intros~A~w.] 0. secs (0.u,0.s) Chars 1698 - 1704 [intro.] 0. secs (0.u,0.s) -Chars 1705 - 1709 [(cbn).] 0. secs (0.u,0.s) -Chars 1716 - 1754 [(etransitivity;~[~~|~apply~bin...] 0. secs (0.u,0.s) -Chars 1761 - 1799 [(eapply~Proper_bind;~[~reflexi...] 0. secs (0.u,0.s) -Chars 1806 - 1829 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) +Chars 1705 - 1709 [cbn.] 0. secs (0.u,0.s) +Chars 1716 - 1754 [etransitivity;~[~~|~apply~bind...] 0. secs (0.u,0.s) +Chars 1761 - 1799 [eapply~Proper_bind;~[~reflexiv...] 0. secs (0.u,0.s) +Chars 1806 - 1829 [intros~[];~reflexivity.] 0. secs (0.u,0.s) Chars 1834 - 1835 [-] 0. secs (0.u,0.s) -Chars 1836 - 1855 [(intros~A~B~C~w~f~g).] 0. secs (0.u,0.s) +Chars 1836 - 1855 [intros~A~B~C~w~f~g.] 0. secs (0.u,0.s) Chars 1856 - 1862 [intro.] 0. secs (0.u,0.s) -Chars 1863 - 1867 [(cbn).] 0. secs (0.u,0.s) -Chars 1868 - 1886 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) +Chars 1863 - 1867 [cbn.] 0. secs (0.u,0.s) +Chars 1868 - 1886 [rewrite~bind_bind.] 0. secs (0.u,0.s) Chars 1887 - 1899 [reflexivity.] 0. secs (0.u,0.s) Chars 1904 - 1905 [-] 0. secs (0.u,0.s) -Chars 1906 - 1935 [(intros~A~B~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 1942 - 1946 [(cbn).] 0. secs (0.u,0.s) -Chars 1947 - 1956 [(do~2~red).] 0. secs (0.u,0.s) -Chars 1957 - 1964 [(intros).] 0. secs (0.u,0.s) -Chars 1965 - 1980 [(do~2~red~in~Hw).] 0. secs (0.u,0.s) -Chars 1981 - 1992 [(rewrite~Hw).] 0.001 secs (0.001u,0.s) -Chars 1993 - 2008 [(do~3~red~in~Hk).] 0. secs (0.u,0.s) -Chars 2015 - 2033 [setoid_rewrite~Hk.] 0.002 secs (0.002u,0.s) +Chars 1906 - 1935 [intros~A~B~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 1942 - 1946 [cbn.] 0. secs (0.u,0.s) +Chars 1947 - 1956 [do~2~red.] 0. secs (0.u,0.s) +Chars 1957 - 1964 [intros.] 0. secs (0.u,0.s) +Chars 1965 - 1980 [do~2~red~in~Hw.] 0. secs (0.u,0.s) +Chars 1981 - 1992 [rewrite~Hw.] 0.001 secs (0.001u,0.s) +Chars 1993 - 2008 [do~3~red~in~Hk.] 0. secs (0.u,0.s) +Chars 2015 - 2033 [setoid_rewrite~Hk.] 0.001 secs (0.001u,0.s) Chars 2034 - 2046 [reflexivity.] 0. secs (0.u,0.s) -Chars 2049 - 2053 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2049 - 2053 [Qed.] 0.001 secs (0.001u,0.s) Chars 2057 - 2077 [Section~Observation.] 0. secs (0.u,0.s) Chars 2082 - 2109 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 2114 - 2141 [Context~{MonadM~:~Monad~M}.] 0. secs (0.u,0.s) @@ -85,24 +85,24 @@ Chars 2189 - 2247 [Context~{MonadMorphismMW~:~Mon...] 0. secs (0.u,0.s) Chars 2253 - 2354 [#[global]~Instance~EffectObsSt...] 0. secs (0.u,0.s) Chars 2360 - 2456 [#[global]~Instance~MonadMorphi...] 0. secs (0.u,0.s) Chars 2461 - 2467 [Proof.] 0. secs (0.u,0.s) -Chars 2474 - 2499 [(destruct~MonadMorphismMW).] 0. secs (0.u,0.s) +Chars 2474 - 2499 [destruct~MonadMorphismMW.] 0. secs (0.u,0.s) Chars 2506 - 2518 [constructor.] 0. secs (0.u,0.s) Chars 2525 - 2526 [-] 0. secs (0.u,0.s) -Chars 2527 - 2534 [(intros).] 0. secs (0.u,0.s) -Chars 2535 - 2546 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2547 - 2554 [(intros).] 0. secs (0.u,0.s) +Chars 2527 - 2534 [intros.] 0. secs (0.u,0.s) +Chars 2535 - 2546 [repeat~red.] 0. secs (0.u,0.s) +Chars 2547 - 2554 [intros.] 0. secs (0.u,0.s) Chars 2555 - 2597 [specialize~(ret_pres~(S~*~A)%t...] 0. secs (0.u,0.s) -Chars 2606 - 2610 [(cbn).] 0. secs (0.u,0.s) -Chars 2611 - 2631 [(rewrite~<-~ret_pres).] 0. secs (0.u,0.s) +Chars 2606 - 2610 [cbn.] 0. secs (0.u,0.s) +Chars 2611 - 2631 [rewrite~<-~ret_pres.] 0. secs (0.u,0.s) Chars 2632 - 2644 [reflexivity.] 0. secs (0.u,0.s) Chars 2651 - 2652 [-] 0. secs (0.u,0.s) -Chars 2653 - 2660 [(intros).] 0. secs (0.u,0.s) -Chars 2661 - 2672 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2673 - 2680 [(intros).] 0. secs (0.u,0.s) -Chars 2681 - 2685 [(cbn).] 0. secs (0.u,0.s) +Chars 2653 - 2660 [intros.] 0. secs (0.u,0.s) +Chars 2661 - 2672 [repeat~red.] 0. secs (0.u,0.s) +Chars 2673 - 2680 [intros.] 0. secs (0.u,0.s) +Chars 2681 - 2685 [cbn.] 0. secs (0.u,0.s) Chars 2686 - 2736 [specialize~(bind_pres~(S~*~A)%...] 0. secs (0.u,0.s) -Chars 2745 - 2773 [(unfold~obs,~EffectObsStateT).] 0. secs (0.u,0.s) -Chars 2782 - 2800 [(rewrite~bind_pres).] 0.001 secs (0.001u,0.s) +Chars 2745 - 2773 [unfold~obs,~EffectObsStateT.] 0. secs (0.u,0.s) +Chars 2782 - 2800 [rewrite~bind_pres.] 0. secs (0.u,0.s) Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) Chars 2818 - 2822 [Qed.] 0.001 secs (0.001u,0.s) Chars 2826 - 2842 [End~Observation.] 0. secs (0.u,0.s) @@ -112,40 +112,40 @@ Chars 3296 - 3315 [Context~(S~:~Type).] 0. secs (0.u,0.s) Chars 3319 - 3379 [Definition~StateSpec~(A~:~Type...] 0. secs (0.u,0.s) Chars 3383 - 3431 [Definition~State~(A~:~Type)~:=...] 0. secs (0.u,0.s) Chars 3435 - 3493 [Instance~StateIter~:~(MonadIte...] 0. secs (0.u,0.s) -Chars 3497 - 3746 [Definition~reassoc~{A~B~:~Type...] 0.001 secs (0.001u,0.s) +Chars 3497 - 3746 [Definition~reassoc~{A~B~:~Type...] 0. secs (0.u,0.s) Chars 3750 - 3884 [Definition~iso_arrow~{A~B~:~Ty...] 0. secs (0.u,0.s) Chars 3888 - 3985 [Definition~decurry_flip~{A~B~C...] 0. secs (0.u,0.s) Chars 4016 - 4162 [Definition~iso_destatify_arrow...] 0. secs (0.u,0.s) Chars 4203 - 4626 [Lemma~loop_invar_state~:~~~for...] 0.001 secs (0.001u,0.s) Chars 4629 - 4635 [Proof.] 0. secs (0.u,0.s) -Chars 4640 - 4647 [(intros).] 0. secs (0.u,0.s) -Chars 4652 - 4686 [(set~(g'~:=~iso_destatify_arro...] 0. secs (0.u,0.s) -Chars 4691 - 4753 [(enough~((Disj_unary~_~p~any_i...] 0. secs (0.u,0.s) +Chars 4640 - 4647 [intros.] 0. secs (0.u,0.s) +Chars 4652 - 4686 [set~(g'~:=~iso_destatify_arrow...] 0. secs (0.u,0.s) +Chars 4691 - 4753 [enough~((Disj_unary~_~p~any_in...] 0. secs (0.u,0.s) Chars 4758 - 4759 [-] 0. secs (0.u,0.s) -Chars 4760 - 4804 [(assert~(ITree.iter~g'~(s,~a)~...] 0.001 secs (0.001u,0.s) +Chars 4760 - 4804 [assert~(ITree.iter~g'~(s,~a)~≈...] 0. secs (0.u,0.s) Chars 4811 - 4812 [+] 0. secs (0.u,0.s) -Chars 4813 - 4844 [(unfold~g',~iso_destatify_arrow).] 0. secs (0.u,0.s) -Chars 4853 - 4955 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 4956 - 4975 [(unfold~Basics.iter).] 0. secs (0.u,0.s) -Chars 4984 - 5006 [(unfold~MonadIterDelay).] 0. secs (0.u,0.s) -Chars 5007 - 5024 [(eapply~eutt_iter).] 0. secs (0.u,0.s) +Chars 4813 - 4844 [unfold~g',~iso_destatify_arrow.] 0. secs (0.u,0.s) +Chars 4853 - 4955 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 4956 - 4975 [unfold~Basics.iter.] 0. secs (0.u,0.s) +Chars 4984 - 5006 [unfold~MonadIterDelay.] 0. secs (0.u,0.s) +Chars 5007 - 5024 [eapply~eutt_iter.] 0.043 secs (0.043u,0.s) Chars 5025 - 5031 [intro.] 0. secs (0.u,0.s) -Chars 5040 - 5063 [(destruct~a0~as~[a'~s']).] 0. secs (0.u,0.s) -Chars 5064 - 5070 [(simpl).] 0. secs (0.u,0.s) -Chars 5079 - 5118 [(eapply~eutt_bind_eutt;~try~re...] 0. secs (0.u,0.s) -Chars 5119 - 5126 [(intros).] 0. secs (0.u,0.s) +Chars 5040 - 5063 [destruct~a0~as~[a'~s'].] 0. secs (0.u,0.s) +Chars 5064 - 5070 [simpl.] 0. secs (0.u,0.s) +Chars 5079 - 5118 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) +Chars 5119 - 5126 [intros.] 0. secs (0.u,0.s) Chars 5135 - 5141 [subst.] 0. secs (0.u,0.s) -Chars 5142 - 5154 [(destruct~u2).] 0. secs (0.u,0.s) -Chars 5155 - 5161 [(simpl).] 0. secs (0.u,0.s) -Chars 5162 - 5187 [(destruct~s1;~reflexivity).] 0. secs (0.u,0.s) +Chars 5142 - 5154 [destruct~u2.] 0. secs (0.u,0.s) +Chars 5155 - 5161 [simpl.] 0. secs (0.u,0.s) +Chars 5162 - 5187 [destruct~s1;~reflexivity.] 0. secs (0.u,0.s) Chars 5194 - 5195 [+] 0. secs (0.u,0.s) -Chars 5196 - 5253 [(assert~(Hpdiv~:~resp_eutt~(Di...] 0. secs (0.u,0.s) +Chars 5196 - 5253 [assert~(Hpdiv~:~resp_eutt~(Dis...] 0. secs (0.u,0.s) Chars 5262 - 5263 [{] 0. secs (0.u,0.s) -Chars 5264 - 5283 [(intros~t1~t2~Heutt).] 0.053 secs (0.053u,0.s) -Chars 5284 - 5320 [(split;~intros;~destruct~H4).] 0. secs (0.u,0.s) +Chars 5264 - 5283 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 5284 - 5320 [split;~intros;~destruct~H4.] 0. secs (0.u,0.s) Chars 5332 - 5333 [-] 0. secs (0.u,0.s) Chars 5334 - 5339 [left.] 0. secs (0.u,0.s) -Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) +Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 5372 - 5373 [-] 0. secs (0.u,0.s) Chars 5374 - 5380 [right.] 0. secs (0.u,0.s) Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) @@ -156,89 +156,89 @@ Chars 5452 - 5453 [-] 0. secs (0.u,0.s) Chars 5454 - 5460 [right.] 0. secs (0.u,0.s) Chars 5461 - 5479 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 5490 - 5491 [}] 0. secs (0.u,0.s) -Chars 5500 - 5527 [(eapply~Hpdiv;~try~apply~H2).] 0. secs (0.u,0.s) +Chars 5500 - 5527 [eapply~Hpdiv;~try~apply~H2.] 0. secs (0.u,0.s) Chars 5528 - 5537 [symmetry.] 0. secs (0.u,0.s) Chars 5538 - 5543 [auto.] 0. secs (0.u,0.s) Chars 5549 - 5550 [-] 0. secs (0.u,0.s) -Chars 5551 - 5576 [(eapply~loop_invar;~eauto).] 0. secs (0.u,0.s) -Chars 5579 - 5583 [Qed.] 0.004 secs (0.004u,0.s) -Chars 5587 - 5723 [Definition~state_iter_arrow_re...] 0.001 secs (0.001u,0.s) +Chars 5551 - 5576 [eapply~loop_invar;~eauto.] 0. secs (0.u,0.s) +Chars 5579 - 5583 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5587 - 5723 [Definition~state_iter_arrow_re...] 0. secs (0.u,0.s) Chars 5727 - 5926 [Lemma~iter_inl_spin_state~:~~~...] 0. secs (0.u,0.s) Chars 5929 - 5935 [Proof.] 0. secs (0.u,0.s) -Chars 5940 - 5947 [(intros).] 0. secs (0.u,0.s) -Chars 5948 - 5973 [(unfold~MonadIter_stateT0).] 0. secs (0.u,0.s) -Chars 5978 - 5998 [(apply~iter_inl_spin).] 0. secs (0.u,0.s) +Chars 5940 - 5947 [intros.] 0. secs (0.u,0.s) +Chars 5948 - 5973 [unfold~MonadIter_stateT0.] 0. secs (0.u,0.s) +Chars 5978 - 5998 [apply~iter_inl_spin.] 0. secs (0.u,0.s) Chars 6041 - 6064 [generalize~dependent~a.] 0. secs (0.u,0.s) Chars 6065 - 6088 [generalize~dependent~s.] 0. secs (0.u,0.s) Chars 6093 - 6111 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6118 - 6125 [(intros).] 0. secs (0.u,0.s) -Chars 6126 - 6169 [(red~in~H;~sinv~H;~try~apply~n...] 0.003 secs (0.003u,0.s) -Chars 6175 - 6211 [(apply~not_wf~with~(a'~:=~a');...] 0.001 secs (0.001u,0.s) +Chars 6118 - 6125 [intros.] 0. secs (0.u,0.s) +Chars 6126 - 6169 [red~in~H;~sinv~H;~try~apply~no...] 0.002 secs (0.002u,0.s) +Chars 6175 - 6211 [apply~not_wf~with~(a'~:=~a');~...] 0. secs (0.u,0.s) Chars 6216 - 6217 [-] 0. secs (0.u,0.s) -Chars 6218 - 6230 [(red~in~Hrel).] 0. secs (0.u,0.s) -Chars 6231 - 6254 [(destruct~a'~as~[s'~a']).] 0. secs (0.u,0.s) -Chars 6255 - 6261 [(simpl).] 0. secs (0.u,0.s) -Chars 6262 - 6266 [(red).] 0. secs (0.u,0.s) -Chars 6267 - 6273 [(simpl).] 0. secs (0.u,0.s) -Chars 6274 - 6287 [(rewrite~Hrel).] 0.004 secs (0.004u,0.s) -Chars 6294 - 6313 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) -Chars 6314 - 6320 [(simpl).] 0. secs (0.u,0.s) +Chars 6218 - 6230 [red~in~Hrel.] 0. secs (0.u,0.s) +Chars 6231 - 6254 [destruct~a'~as~[s'~a'].] 0. secs (0.u,0.s) +Chars 6255 - 6261 [simpl.] 0. secs (0.u,0.s) +Chars 6262 - 6266 [red.] 0. secs (0.u,0.s) +Chars 6267 - 6273 [simpl.] 0. secs (0.u,0.s) +Chars 6274 - 6287 [rewrite~Hrel.] 0.003 secs (0.003u,0.s) +Chars 6294 - 6313 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 6314 - 6320 [simpl.] 0. secs (0.u,0.s) Chars 6321 - 6333 [reflexivity.] 0. secs (0.u,0.s) Chars 6338 - 6339 [-] 0. secs (0.u,0.s) -Chars 6340 - 6352 [(destruct~a').] 0. secs (0.u,0.s) -Chars 6353 - 6371 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 6374 - 6378 [Qed.] 0.004 secs (0.004u,0.s) -Chars 6382 - 6651 [Lemma~iter_wf_converge_state~:...] 0.001 secs (0.001u,0.s) +Chars 6340 - 6352 [destruct~a'.] 0. secs (0.u,0.s) +Chars 6353 - 6371 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6374 - 6378 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6382 - 6651 [Lemma~iter_wf_converge_state~:...] 0. secs (0.u,0.s) Chars 6654 - 6660 [Proof.] 0. secs (0.u,0.s) -Chars 6665 - 6672 [(intros).] 0. secs (0.u,0.s) -Chars 6673 - 6727 [(unfold~MonadIter_stateT0,~Bas...] 0. secs (0.u,0.s) -Chars 6732 - 6755 [(apply~iter_wf_converge).] 0. secs (0.u,0.s) +Chars 6665 - 6672 [intros.] 0. secs (0.u,0.s) +Chars 6673 - 6727 [unfold~MonadIter_stateT0,~Basi...] 0. secs (0.u,0.s) +Chars 6732 - 6755 [apply~iter_wf_converge.] 0. secs (0.u,0.s) Chars 6760 - 6761 [-] 0. secs (0.u,0.s) -Chars 6762 - 6799 [(eapply~wf_from_sub_rel;~try~a...] 0. secs (0.u,0.s) -Chars 6806 - 6819 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 6820 - 6847 [(unfold~iter_arrow_rel~in~*).] 0. secs (0.u,0.s) -Chars 6848 - 6876 [(unfold~state_iter_arrow_rel).] 0. secs (0.u,0.s) +Chars 6762 - 6799 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) +Chars 6806 - 6819 [repeat~intro.] 0. secs (0.u,0.s) +Chars 6820 - 6847 [unfold~iter_arrow_rel~in~*.] 0. secs (0.u,0.s) +Chars 6848 - 6876 [unfold~state_iter_arrow_rel.] 0. secs (0.u,0.s) Chars 6883 - 6896 [clear~H0~a~s.] 0. secs (0.u,0.s) -Chars 6903 - 6923 [(destruct~x~as~[s~a]).] 0. secs (0.u,0.s) -Chars 6924 - 6935 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6936 - 6958 [(destruct~y~as~[s'~a']).] 0. secs (0.u,0.s) -Chars 6965 - 7014 [(destruct~(eutt_reta_or_div~(g...] 0. secs (0.u,0.s) +Chars 6903 - 6923 [destruct~x~as~[s~a].] 0. secs (0.u,0.s) +Chars 6924 - 6935 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6936 - 6958 [destruct~y~as~[s'~a'].] 0. secs (0.u,0.s) +Chars 6965 - 7014 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) Chars 7021 - 7022 [+] 0. secs (0.u,0.s) -Chars 7023 - 7037 [(rewrite~<-~H0).] 0.001 secs (0.001u,0.s) -Chars 7038 - 7058 [(rewrite~<-~H0~in~H1).] 0.025 secs (0.025u,0.s) -Chars 7059 - 7071 [(simpl~in~H1).] 0. secs (0.u,0.s) -Chars 7072 - 7097 [(rewrite~bind_ret_l~in~H1).] 0.024 secs (0.023u,0.s) -Chars 7106 - 7117 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7118 - 7130 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 7131 - 7142 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 7143 - 7168 [(destruct~s1;~basic_solve).] 0.002 secs (0.002u,0.s) +Chars 7023 - 7037 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 7038 - 7058 [rewrite~<-~H0~in~H1.] 0.017 secs (0.017u,0.s) +Chars 7059 - 7071 [simpl~in~H1.] 0. secs (0.u,0.s) +Chars 7072 - 7097 [rewrite~bind_ret_l~in~H1.] 0.016 secs (0.016u,0.s) +Chars 7106 - 7117 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7118 - 7130 [destruct~a0.] 0. secs (0.u,0.s) +Chars 7131 - 7142 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 7143 - 7168 [destruct~s1;~basic_solve.] 0.001 secs (0.001u,0.s) Chars 7177 - 7189 [reflexivity.] 0. secs (0.u,0.s) Chars 7196 - 7197 [+] 0. secs (0.u,0.s) -Chars 7198 - 7224 [(apply~div_spin_eutt~in~H0).] 0. secs (0.u,0.s) -Chars 7225 - 7242 [(rewrite~H0~in~H1).] 0.022 secs (0.022u,0.s) -Chars 7243 - 7270 [(rewrite~<-~spin_bind~in~H1).] 0.022 secs (0.022u,0.s) +Chars 7198 - 7224 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) +Chars 7225 - 7242 [rewrite~H0~in~H1.] 0.016 secs (0.015u,0.s) +Chars 7243 - 7270 [rewrite~<-~spin_bind~in~H1.] 0.015 secs (0.015u,0.s) Chars 7279 - 7294 [symmetry~in~H1.] 0. secs (0.u,0.s) Chars 7295 - 7303 [exfalso.] 0. secs (0.u,0.s) -Chars 7304 - 7336 [(eapply~not_ret_eutt_spin;~eau...] 0. secs (0.u,0.s) +Chars 7304 - 7336 [eapply~not_ret_eutt_spin;~eauto.] 0. secs (0.u,0.s) Chars 7340 - 7341 [-] 0. secs (0.u,0.s) Chars 7342 - 7355 [clear~H0~a~s.] 0. secs (0.u,0.s) -Chars 7356 - 7369 [(intros~[s~a]).] 0. secs (0.u,0.s) +Chars 7356 - 7369 [intros~[s~a].] 0. secs (0.u,0.s) Chars 7370 - 7389 [specialize~(H~a~s).] 0. secs (0.u,0.s) Chars 7390 - 7402 [basic_solve.] 0. secs (0.u,0.s) -Chars 7408 - 7438 [(destruct~ab~as~[s'~[a'|~b]]).] 0. secs (0.u,0.s) +Chars 7408 - 7438 [destruct~ab~as~[s'~[a'|~b]].] 0. secs (0.u,0.s) Chars 7444 - 7445 [+] 0. secs (0.u,0.s) Chars 7446 - 7468 [exists~(inl~(s',~a')).] 0. secs (0.u,0.s) -Chars 7469 - 7475 [(simpl).] 0. secs (0.u,0.s) -Chars 7476 - 7486 [(rewrite~H).] 0.004 secs (0.004u,0.s) -Chars 7487 - 7506 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) -Chars 7507 - 7513 [(simpl).] 0. secs (0.u,0.s) +Chars 7469 - 7475 [simpl.] 0. secs (0.u,0.s) +Chars 7476 - 7486 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 7487 - 7506 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7507 - 7513 [simpl.] 0. secs (0.u,0.s) Chars 7521 - 7533 [reflexivity.] 0. secs (0.u,0.s) Chars 7539 - 7540 [+] 0. secs (0.u,0.s) Chars 7541 - 7561 [exists~(inr~(s',~b)).] 0. secs (0.u,0.s) -Chars 7562 - 7568 [(simpl).] 0. secs (0.u,0.s) -Chars 7569 - 7579 [(rewrite~H).] 0.004 secs (0.004u,0.s) -Chars 7580 - 7599 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 7600 - 7606 [(simpl).] 0. secs (0.u,0.s) +Chars 7562 - 7568 [simpl.] 0. secs (0.u,0.s) +Chars 7569 - 7579 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 7580 - 7599 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7600 - 7606 [simpl.] 0. secs (0.u,0.s) Chars 7614 - 7626 [reflexivity.] 0. secs (0.u,0.s) -Chars 7629 - 7633 [Qed.] 0.012 secs (0.012u,0.s) +Chars 7629 - 7633 [Qed.] 0.008 secs (0.008u,0.s) Chars 7635 - 7657 [End~LoopInvarSpecific.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/TracesIT.v.timing b/extra/Dijkstra/TracesIT.v.timing index 07e8e44b..09e9dcd1 100644 --- a/extra/Dijkstra/TracesIT.v.timing +++ b/extra/Dijkstra/TracesIT.v.timing @@ -1,8 +1,8 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.216 secs (0.19u,0.025s) -Chars 242 - 461 [From~ITree.Extra~Require~Impor...] 0.083 secs (0.072u,0.01s) +Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.158 secs (0.142u,0.016s) +Chars 242 - 461 [From~ITree.Extra~Require~Impor...] 0.061 secs (0.054u,0.006s) Chars 463 - 477 [Import~Monads.] 0. secs (0.u,0.s) Chars 478 - 499 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 501 - 533 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -12,10 +12,10 @@ Chars 794 - 821 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 825 - 904 [Definition~TraceSpecInput~(A~:...] 0. secs (0.u,0.s) Chars 908 - 1012 [Instance~proper_eutt_spec_in~~...] 0. secs (0.u,0.s) Chars 1015 - 1021 [Proof.] 0. secs (0.u,0.s) -Chars 1026 - 1045 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) -Chars 1046 - 1067 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 1068 - 1074 [(simpl).] 0. secs (0.u,0.s) -Chars 1075 - 1123 [(split;~intros;~eapply~Hp;~try...] 0. secs (0.u,0.s) +Chars 1026 - 1045 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) +Chars 1046 - 1067 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 1068 - 1074 [simpl.] 0. secs (0.u,0.s) +Chars 1075 - 1123 [split;~intros;~eapply~Hp;~try~...] 0. secs (0.u,0.s) Chars 1124 - 1133 [symmetry.] 0. secs (0.u,0.s) Chars 1134 - 1139 [auto.] 0. secs (0.u,0.s) Chars 1142 - 1146 [Qed.] 0. secs (0.u,0.s) @@ -23,141 +23,141 @@ Chars 1150 - 1352 [Definition~TraceSpec~(A~:~Type...] 0. secs (0.u,0.s) Chars 1356 - 1467 [#[global]~Instance~EqM_TraceSp...] 0.001 secs (0.001u,0.s) Chars 1470 - 1536 [#[global]~Instance~EqMTS_equiv...] 0. secs (0.u,0.s) Chars 1539 - 1545 [Proof.] 0. secs (0.u,0.s) -Chars 1550 - 1635 [(do~2~constructor;~unfold~EqM_...] 0.003 secs (0.003u,0.s) -Chars 1640 - 1649 [(apply~H0).] 0. secs (0.u,0.s) +Chars 1550 - 1635 [do~2~constructor;~unfold~EqM_T...] 0.002 secs (0.002u,0.s) +Chars 1640 - 1649 [apply~H0.] 0. secs (0.u,0.s) Chars 1650 - 1655 [auto.] 0. secs (0.u,0.s) -Chars 1658 - 1662 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1658 - 1662 [Qed.] 0.002 secs (0.002u,0.s) Chars 1781 - 1841 [Notation~"↑~log"~:=~(ev_list_t...] 0. secs (0.u,0.s) Chars 1845 - 1932 [#[program]~Definition~ret_ts1~...] 0.002 secs (0.002u,0.s) -Chars 1936 - 2032 [#[program]~Definition~ret_ts2~...] 0.003 secs (0.003u,0.s) -Chars 2186 - 2430 [#[program]~Definition~bind_ts1...] 0.003 secs (0.003u,0.s) +Chars 1936 - 2032 [#[program]~Definition~ret_ts2~...] 0.002 secs (0.002u,0.s) +Chars 2186 - 2430 [#[program]~Definition~bind_ts1...] 0.046 secs (0.046u,0.s) Chars 2433 - 2449 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 2454 - 2473 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) -Chars 2474 - 2508 [(split;~intros;~split;~basic_s...] 0.06 secs (0.059u,0.s) +Chars 2454 - 2473 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) +Chars 2474 - 2508 [split;~intros;~split;~basic_so...] 0.001 secs (0.001u,0.s) Chars 2513 - 2514 [-] 0. secs (0.u,0.s) -Chars 2515 - 2523 [(apply~H).] 0. secs (0.u,0.s) -Chars 2524 - 2538 [(rewrite~Heutt).] 0.003 secs (0.003u,0.s) +Chars 2515 - 2523 [apply~H.] 0. secs (0.u,0.s) +Chars 2524 - 2538 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) Chars 2539 - 2544 [auto.] 0. secs (0.u,0.s) Chars 2549 - 2550 [-] 0. secs (0.u,0.s) -Chars 2551 - 2568 [(rewrite~<-~Heutt).] 0.007 secs (0.007u,0.s) -Chars 2569 - 2578 [(apply~H1).] 0. secs (0.u,0.s) -Chars 2579 - 2593 [(rewrite~Heutt).] 0.001 secs (0.001u,0.s) +Chars 2551 - 2568 [rewrite~<-~Heutt.] 0.005 secs (0.005u,0.s) +Chars 2569 - 2578 [apply~H1.] 0. secs (0.u,0.s) +Chars 2579 - 2593 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 2594 - 2599 [auto.] 0. secs (0.u,0.s) Chars 2604 - 2605 [-] 0. secs (0.u,0.s) -Chars 2606 - 2614 [(apply~H).] 0. secs (0.u,0.s) -Chars 2615 - 2632 [(rewrite~<-~Heutt).] 0.001 secs (0.001u,0.s) +Chars 2606 - 2614 [apply~H.] 0. secs (0.u,0.s) +Chars 2615 - 2632 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 2633 - 2638 [auto.] 0. secs (0.u,0.s) Chars 2643 - 2644 [-] 0. secs (0.u,0.s) -Chars 2645 - 2659 [(rewrite~Heutt).] 0.007 secs (0.007u,0.s) -Chars 2660 - 2669 [(apply~H1).] 0. secs (0.u,0.s) -Chars 2670 - 2687 [(rewrite~<-~Heutt).] 0.001 secs (0.001u,0.s) +Chars 2645 - 2659 [rewrite~Heutt.] 0.006 secs (0.006u,0.s) +Chars 2660 - 2669 [apply~H1.] 0. secs (0.u,0.s) +Chars 2670 - 2687 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) Chars 2688 - 2693 [auto.] 0. secs (0.u,0.s) -Chars 2696 - 2700 [Qed.] 0.005 secs (0.005u,0.s) -Chars 2704 - 2997 [#[program]~Definition~bind_ts1...] 0.005 secs (0.005u,0.s) +Chars 2696 - 2700 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2704 - 2997 [#[program]~Definition~bind_ts1...] 0.004 secs (0.004u,0.s) Chars 3000 - 3016 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 3021 - 3040 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) -Chars 3041 - 3068 [(split;~intros;~basic_solve).] 0.002 secs (0.002u,0.s) +Chars 3021 - 3040 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) +Chars 3041 - 3068 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) Chars 3073 - 3074 [-] 0. secs (0.u,0.s) Chars 3075 - 3080 [left.] 0. secs (0.u,0.s) Chars 3081 - 3090 [exists~a.] 0. secs (0.u,0.s) Chars 3091 - 3103 [exists~log'.] 0. secs (0.u,0.s) -Chars 3110 - 3127 [(rewrite~<-~Heutt).] 0.008 secs (0.008u,0.s) +Chars 3110 - 3127 [rewrite~<-~Heutt.] 0.006 secs (0.006u,0.s) Chars 3128 - 3133 [auto.] 0. secs (0.u,0.s) Chars 3138 - 3139 [-] 0. secs (0.u,0.s) Chars 3140 - 3146 [right.] 0. secs (0.u,0.s) -Chars 3147 - 3164 [(rewrite~<-~Heutt).] 0.002 secs (0.002u,0.s) +Chars 3147 - 3164 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) Chars 3165 - 3170 [auto.] 0. secs (0.u,0.s) Chars 3175 - 3176 [-] 0. secs (0.u,0.s) Chars 3177 - 3182 [left.] 0. secs (0.u,0.s) Chars 3183 - 3192 [exists~a.] 0. secs (0.u,0.s) Chars 3193 - 3205 [exists~log'.] 0. secs (0.u,0.s) -Chars 3206 - 3220 [(rewrite~Heutt).] 0.01 secs (0.01u,0.s) +Chars 3206 - 3220 [rewrite~Heutt.] 0.006 secs (0.006u,0.s) Chars 3227 - 3232 [auto.] 0. secs (0.u,0.s) Chars 3237 - 3238 [-] 0. secs (0.u,0.s) Chars 3239 - 3245 [right.] 0. secs (0.u,0.s) -Chars 3246 - 3260 [(rewrite~Heutt).] 0.002 secs (0.002u,0.s) +Chars 3246 - 3260 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) Chars 3261 - 3266 [auto.] 0. secs (0.u,0.s) -Chars 3269 - 3273 [Qed.] 0.01 secs (0.009u,0.s) -Chars 3276 - 3292 [Next~Obligation.] 0.003 secs (0.003u,0.s) -Chars 3297 - 3326 [(destruct~(w~log)~as~[wl~Hwl]).] 0.001 secs (0.001u,0.s) -Chars 3327 - 3338 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 3343 - 3368 [(eapply~Hwl;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 3369 - 3375 [(simpl).] 0. secs (0.u,0.s) +Chars 3269 - 3273 [Qed.] 0.007 secs (0.007u,0.s) +Chars 3276 - 3292 [Next~Obligation.] 0.002 secs (0.002u,0.s) +Chars 3297 - 3326 [destruct~(w~log)~as~[wl~Hwl].] 0.001 secs (0.001u,0.s) +Chars 3327 - 3338 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 3343 - 3368 [eapply~Hwl;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 3369 - 3375 [simpl.] 0. secs (0.u,0.s) Chars 3376 - 3385 [clear~H0.] 0. secs (0.u,0.s) -Chars 3386 - 3393 [(intros).] 0. secs (0.u,0.s) -Chars 3398 - 3410 [basic_solve.] 0.001 secs (0.001u,0.s) +Chars 3386 - 3393 [intros.] 0. secs (0.u,0.s) +Chars 3398 - 3410 [basic_solve.] 0. secs (0.u,0.s) Chars 3415 - 3416 [-] 0. secs (0.u,0.s) Chars 3417 - 3422 [left.] 0. secs (0.u,0.s) Chars 3423 - 3432 [exists~a.] 0. secs (0.u,0.s) Chars 3433 - 3445 [exists~log'.] 0. secs (0.u,0.s) -Chars 3446 - 3458 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3465 - 3499 [(destruct~(g~a~log')~as~[gal~H...] 0. secs (0.u,0.s) -Chars 3500 - 3511 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 3518 - 3544 [(eapply~Hgal;~try~apply~H1).] 0. secs (0.u,0.s) +Chars 3446 - 3458 [split;~auto.] 0. secs (0.u,0.s) +Chars 3465 - 3499 [destruct~(g~a~log')~as~[gal~Hg...] 0. secs (0.u,0.s) +Chars 3500 - 3511 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 3518 - 3544 [eapply~Hgal;~try~apply~H1.] 0. secs (0.u,0.s) Chars 3545 - 3550 [auto.] 0. secs (0.u,0.s) Chars 3555 - 3556 [-] 0. secs (0.u,0.s) Chars 3557 - 3563 [right.] 0. secs (0.u,0.s) Chars 3564 - 3569 [auto.] 0. secs (0.u,0.s) -Chars 3571 - 3575 [Qed.] 0.007 secs (0.007u,0.s) -Chars 3579 - 3694 [#[global]~Instance~TraceSpecMo...] 0.001 secs (0.001u,0.s) +Chars 3571 - 3575 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3579 - 3694 [#[global]~Instance~TraceSpecMo...] 0. secs (0.u,0.s) Chars 3936 - 4106 [Lemma~apply_monot~:~~~forall~(...] 0. secs (0.u,0.s) Chars 4109 - 4115 [Proof.] 0. secs (0.u,0.s) -Chars 4120 - 4127 [(intros).] 0. secs (0.u,0.s) -Chars 4128 - 4157 [(destruct~(w~log)~as~[w'~Hw']).] 0. secs (0.u,0.s) -Chars 4162 - 4173 [(simpl~in~*).] 0. secs (0.u,0.s) +Chars 4120 - 4127 [intros.] 0. secs (0.u,0.s) +Chars 4128 - 4157 [destruct~(w~log)~as~[w'~Hw'].] 0. secs (0.u,0.s) +Chars 4162 - 4173 [simpl~in~*.] 0. secs (0.u,0.s) Chars 4174 - 4180 [eauto.] 0. secs (0.u,0.s) -Chars 4183 - 4187 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4191 - 4260 [#[global,~program]~Instance~Tr...] 0.025 secs (0.024u,0.s) -Chars 4263 - 4279 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4183 - 4187 [Qed.] 0.001 secs (0.u,0.s) +Chars 4191 - 4260 [#[global,~program]~Instance~Tr...] 0.016 secs (0.016u,0.s) +Chars 4263 - 4279 [Next~Obligation.] 0. secs (0.u,0.s) Chars 4284 - 4300 [rename~x~into~a.] 0. secs (0.u,0.s) -Chars 4305 - 4309 [(red).] 0. secs (0.u,0.s) -Chars 4310 - 4314 [(red).] 0. secs (0.u,0.s) -Chars 4315 - 4319 [(cbn).] 0. secs (0.u,0.s) -Chars 4320 - 4347 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 4305 - 4309 [red.] 0. secs (0.u,0.s) +Chars 4310 - 4314 [red.] 0. secs (0.u,0.s) +Chars 4315 - 4319 [cbn.] 0. secs (0.u,0.s) +Chars 4320 - 4347 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) Chars 4352 - 4353 [-] 0. secs (0.u,0.s) -Chars 4354 - 4381 [(apply~inv_append_eutt~in~H).] 0. secs (0.u,0.s) -Chars 4382 - 4393 [(destruct~H).] 0. secs (0.u,0.s) +Chars 4354 - 4381 [apply~inv_append_eutt~in~H.] 0. secs (0.u,0.s) +Chars 4382 - 4393 [destruct~H.] 0. secs (0.u,0.s) Chars 4394 - 4400 [subst.] 0. secs (0.u,0.s) Chars 4401 - 4406 [auto.] 0. secs (0.u,0.s) Chars 4411 - 4412 [-] 0. secs (0.u,0.s) Chars 4413 - 4421 [exfalso.] 0. secs (0.u,0.s) -Chars 4422 - 4466 [(assert~(may_converge~a~(↑~log...] 0. secs (0.u,0.s) +Chars 4422 - 4466 [assert~(may_converge~a~(↑~log~...] 0. secs (0.u,0.s) Chars 4473 - 4474 [{] 0. secs (0.u,0.s) -Chars 4475 - 4501 [(apply~may_converge_append).] 0. secs (0.u,0.s) -Chars 4502 - 4530 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 4475 - 4501 [apply~may_converge_append.] 0. secs (0.u,0.s) +Chars 4502 - 4530 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) Chars 4531 - 4532 [}] 0. secs (0.u,0.s) -Chars 4539 - 4579 [(eapply~all_infinite_not_conve...] 0. secs (0.u,0.s) +Chars 4539 - 4579 [eapply~all_infinite_not_conver...] 0. secs (0.u,0.s) Chars 4584 - 4585 [-] 0. secs (0.u,0.s) Chars 4586 - 4591 [left.] 0. secs (0.u,0.s) Chars 4592 - 4601 [exists~a.] 0. secs (0.u,0.s) Chars 4602 - 4613 [exists~log.] 0. secs (0.u,0.s) -Chars 4614 - 4626 [(split;~auto).] 0. secs (0.u,0.s) -Chars 4629 - 4633 [Qed.] 0.004 secs (0.004u,0.s) -Chars 4636 - 4652 [Next~Obligation.] 0.001 secs (0.001u,0.s) +Chars 4614 - 4626 [split;~auto.] 0. secs (0.u,0.s) +Chars 4629 - 4633 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4636 - 4652 [Next~Obligation.] 0. secs (0.u,0.s) Chars 4657 - 4673 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 4674 - 4678 [(red).] 0. secs (0.u,0.s) -Chars 4679 - 4683 [(red).] 0. secs (0.u,0.s) -Chars 4684 - 4688 [(cbn).] 0. secs (0.u,0.s) -Chars 4689 - 4716 [(split;~intros;~basic_solve).] 0. secs (0.u,0.s) +Chars 4674 - 4678 [red.] 0. secs (0.u,0.s) +Chars 4679 - 4683 [red.] 0. secs (0.u,0.s) +Chars 4684 - 4688 [cbn.] 0. secs (0.u,0.s) +Chars 4689 - 4716 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) Chars 4721 - 4722 [-] 0. secs (0.u,0.s) -Chars 4723 - 4755 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 4723 - 4755 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) Chars 4756 - 4764 [clear~H.] 0. secs (0.u,0.s) -Chars 4771 - 4777 [(simpl).] 0. secs (0.u,0.s) -Chars 4778 - 4785 [(intros).] 0. secs (0.u,0.s) +Chars 4771 - 4777 [simpl.] 0. secs (0.u,0.s) +Chars 4778 - 4785 [intros.] 0. secs (0.u,0.s) Chars 4786 - 4798 [basic_solve.] 0. secs (0.u,0.s) Chars 4805 - 4806 [+] 0. secs (0.u,0.s) -Chars 4807 - 4817 [(rewrite~H).] 0.007 secs (0.007u,0.s) +Chars 4807 - 4817 [rewrite~H.] 0.005 secs (0.005u,0.s) Chars 4818 - 4823 [auto.] 0. secs (0.u,0.s) Chars 4830 - 4831 [+] 0. secs (0.u,0.s) -Chars 4832 - 4858 [(apply~noret_cast_nop~in~H).] 0. secs (0.u,0.s) -Chars 4867 - 4877 [(rewrite~H).] 0.006 secs (0.006u,0.s) +Chars 4832 - 4858 [apply~noret_cast_nop~in~H.] 0. secs (0.u,0.s) +Chars 4867 - 4877 [rewrite~H.] 0.004 secs (0.004u,0.s) Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) Chars 4888 - 4889 [-] 0. secs (0.u,0.s) -Chars 4890 - 4922 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 4890 - 4922 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) Chars 4923 - 4931 [clear~H.] 0. secs (0.u,0.s) -Chars 4938 - 4945 [(intros).] 0. secs (0.u,0.s) -Chars 4946 - 4952 [(simpl).] 0. secs (0.u,0.s) -Chars 4953 - 4990 [(destruct~(classic_converge_it...] 0. secs (0.u,0.s) +Chars 4938 - 4945 [intros.] 0. secs (0.u,0.s) +Chars 4946 - 4952 [simpl.] 0. secs (0.u,0.s) +Chars 4953 - 4990 [destruct~(classic_converge_itr...] 0. secs (0.u,0.s) Chars 4997 - 4998 [+] 0. secs (0.u,0.s) Chars 4999 - 5011 [basic_solve.] 0. secs (0.u,0.s) Chars 5012 - 5017 [left.] 0. secs (0.u,0.s) @@ -168,25 +168,25 @@ Chars 5056 - 5057 [*] 0. secs (0.u,0.s) Chars 5058 - 5067 [symmetry.] 0. secs (0.u,0.s) Chars 5068 - 5073 [auto.] 0. secs (0.u,0.s) Chars 5082 - 5083 [*] 0. secs (0.u,0.s) -Chars 5084 - 5095 [(rewrite~H0).] 0.007 secs (0.007u,0.s) +Chars 5084 - 5095 [rewrite~H0.] 0.005 secs (0.005u,0.s) Chars 5096 - 5101 [auto.] 0. secs (0.u,0.s) Chars 5108 - 5109 [+] 0. secs (0.u,0.s) Chars 5110 - 5116 [right.] 0. secs (0.u,0.s) -Chars 5117 - 5129 [(split;~auto).] 0. secs (0.u,0.s) -Chars 5130 - 5164 [(rewrite~noret_cast_nop~in~H;~...] 0.007 secs (0.007u,0.s) -Chars 5167 - 5171 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5117 - 5129 [split;~auto.] 0. secs (0.u,0.s) +Chars 5130 - 5164 [rewrite~noret_cast_nop~in~H;~a...] 0.005 secs (0.005u,0.s) +Chars 5167 - 5171 [Qed.] 0.003 secs (0.003u,0.s) Chars 5174 - 5190 [Next~Obligation.] 0.001 secs (0.001u,0.s) Chars 5195 - 5211 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 5216 - 5220 [(red).] 0. secs (0.u,0.s) -Chars 5221 - 5225 [(red).] 0. secs (0.u,0.s) -Chars 5226 - 5230 [(cbn).] 0. secs (0.u,0.s) -Chars 5231 - 5258 [(split;~intros;~basic_solve).] 0.001 secs (0.001u,0.s) +Chars 5216 - 5220 [red.] 0. secs (0.u,0.s) +Chars 5221 - 5225 [red.] 0. secs (0.u,0.s) +Chars 5226 - 5230 [cbn.] 0. secs (0.u,0.s) +Chars 5231 - 5258 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) Chars 5263 - 5264 [-] 0. secs (0.u,0.s) -Chars 5265 - 5297 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 5265 - 5297 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) Chars 5298 - 5306 [clear~H.] 0. secs (0.u,0.s) -Chars 5307 - 5313 [(simpl).] 0. secs (0.u,0.s) -Chars 5314 - 5321 [(intros).] 0. secs (0.u,0.s) -Chars 5328 - 5340 [basic_solve.] 0.003 secs (0.003u,0.s) +Chars 5307 - 5313 [simpl.] 0. secs (0.u,0.s) +Chars 5314 - 5321 [intros.] 0. secs (0.u,0.s) +Chars 5328 - 5340 [basic_solve.] 0.002 secs (0.002u,0.s) Chars 5347 - 5348 [+] 0. secs (0.u,0.s) Chars 5349 - 5354 [left.] 0. secs (0.u,0.s) Chars 5355 - 5364 [exists~a.] 0. secs (0.u,0.s) @@ -194,37 +194,37 @@ Chars 5365 - 5377 [exists~log'.] 0. secs (0.u,0.s) Chars 5378 - 5383 [auto.] 0. secs (0.u,0.s) Chars 5390 - 5391 [+] 0. secs (0.u,0.s) Chars 5392 - 5400 [exfalso.] 0. secs (0.u,0.s) -Chars 5409 - 5453 [(assert~(may_converge~a~(↑~log...] 0. secs (0.u,0.s) +Chars 5409 - 5453 [assert~(may_converge~a~(↑~log'...] 0. secs (0.u,0.s) Chars 5462 - 5463 [{] 0. secs (0.u,0.s) -Chars 5464 - 5490 [(apply~may_converge_append).] 0. secs (0.u,0.s) -Chars 5491 - 5519 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 5464 - 5490 [apply~may_converge_append.] 0. secs (0.u,0.s) +Chars 5491 - 5519 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) Chars 5520 - 5521 [}] 0. secs (0.u,0.s) -Chars 5530 - 5583 [(assert~(all_infinite~(@noret_...] 0. secs (0.u,0.s) +Chars 5530 - 5583 [assert~(all_infinite~(@noret_c...] 0. secs (0.u,0.s) Chars 5592 - 5593 [{] 0. secs (0.u,0.s) -Chars 5594 - 5618 [(apply~all_infinite_bind).] 0. secs (0.u,0.s) +Chars 5594 - 5618 [apply~all_infinite_bind.] 0. secs (0.u,0.s) Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) Chars 5625 - 5626 [}] 0. secs (0.u,0.s) -Chars 5635 - 5655 [(rewrite~<-~H0~in~H2).] 0.005 secs (0.005u,0.s) -Chars 5656 - 5680 [(unfold~noret_cast~in~H3).] 0. secs (0.u,0.s) -Chars 5681 - 5691 [(cbn~in~H3).] 0. secs (0.u,0.s) -Chars 5700 - 5755 [(eapply~all_infinite_not_conve...] 0. secs (0.u,0.s) -Chars 5764 - 5788 [(apply~all_infinite_bind).] 0. secs (0.u,0.s) +Chars 5635 - 5655 [rewrite~<-~H0~in~H2.] 0.004 secs (0.004u,0.s) +Chars 5656 - 5680 [unfold~noret_cast~in~H3.] 0. secs (0.u,0.s) +Chars 5681 - 5691 [cbn~in~H3.] 0. secs (0.u,0.s) +Chars 5700 - 5755 [eapply~all_infinite_not_conver...] 0. secs (0.u,0.s) +Chars 5764 - 5788 [apply~all_infinite_bind.] 0. secs (0.u,0.s) Chars 5789 - 5794 [auto.] 0. secs (0.u,0.s) Chars 5801 - 5802 [+] 0. secs (0.u,0.s) Chars 5803 - 5809 [right.] 0. secs (0.u,0.s) -Chars 5810 - 5822 [(split;~auto).] 0. secs (0.u,0.s) -Chars 5831 - 5852 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 5853 - 5864 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 5865 - 5889 [(eapply~Hp;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 5898 - 5961 [(eapply~eutt_bind_eutt~with~(U...] 0.02 secs (0.02u,0.s) -Chars 5970 - 5991 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 5810 - 5822 [split;~auto.] 0. secs (0.u,0.s) +Chars 5831 - 5852 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 5853 - 5864 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 5865 - 5889 [eapply~Hp;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 5898 - 5961 [eapply~eutt_bind_eutt~with~(UU...] 0.013 secs (0.012u,0.s) +Chars 5970 - 5991 [apply~noret_bind_nop.] 0. secs (0.u,0.s) Chars 5992 - 5997 [auto.] 0. secs (0.u,0.s) Chars 6002 - 6003 [-] 0. secs (0.u,0.s) -Chars 6004 - 6036 [(eapply~apply_monot;~try~apply...] 0. secs (0.u,0.s) +Chars 6004 - 6036 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) Chars 6037 - 6045 [clear~H.] 0. secs (0.u,0.s) -Chars 6046 - 6052 [(simpl).] 0. secs (0.u,0.s) -Chars 6053 - 6060 [(intros).] 0. secs (0.u,0.s) -Chars 6067 - 6079 [basic_solve.] 0.002 secs (0.002u,0.s) +Chars 6046 - 6052 [simpl.] 0. secs (0.u,0.s) +Chars 6053 - 6060 [intros.] 0. secs (0.u,0.s) +Chars 6067 - 6079 [basic_solve.] 0.001 secs (0.001u,0.s) Chars 6086 - 6087 [+] 0. secs (0.u,0.s) Chars 6088 - 6093 [left.] 0. secs (0.u,0.s) Chars 6094 - 6103 [exists~a.] 0. secs (0.u,0.s) @@ -232,239 +232,239 @@ Chars 6104 - 6116 [exists~log'.] 0. secs (0.u,0.s) Chars 6117 - 6122 [auto.] 0. secs (0.u,0.s) Chars 6129 - 6130 [+] 0. secs (0.u,0.s) Chars 6131 - 6137 [right.] 0. secs (0.u,0.s) -Chars 6138 - 6150 [(split;~auto).] 0. secs (0.u,0.s) +Chars 6138 - 6150 [split;~auto.] 0. secs (0.u,0.s) Chars 6151 - 6157 [right.] 0. secs (0.u,0.s) Chars 6158 - 6164 [split.] 0. secs (0.u,0.s) Chars 6173 - 6174 [*] 0. secs (0.u,0.s) -Chars 6175 - 6199 [(apply~all_infinite_bind).] 0. secs (0.u,0.s) +Chars 6175 - 6199 [apply~all_infinite_bind.] 0. secs (0.u,0.s) Chars 6200 - 6205 [auto.] 0. secs (0.u,0.s) Chars 6214 - 6215 [*] 0. secs (0.u,0.s) -Chars 6216 - 6237 [(destruct~p~as~[p~Hp]).] 0. secs (0.u,0.s) -Chars 6238 - 6249 [(simpl~in~*).] 0. secs (0.u,0.s) -Chars 6250 - 6274 [(eapply~Hp;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 6285 - 6348 [(eapply~eutt_bind_eutt~with~(U...] 0.022 secs (0.021u,0.s) -Chars 6359 - 6379 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 6380 - 6401 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 6216 - 6237 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) +Chars 6238 - 6249 [simpl~in~*.] 0. secs (0.u,0.s) +Chars 6250 - 6274 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 6285 - 6348 [eapply~eutt_bind_eutt~with~(UU...] 0.014 secs (0.013u,0.s) +Chars 6359 - 6379 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 6380 - 6401 [apply~noret_bind_nop.] 0. secs (0.u,0.s) Chars 6402 - 6407 [auto.] 0. secs (0.u,0.s) -Chars 6411 - 6415 [Qed.] 0.02 secs (0.02u,0.s) -Chars 6418 - 6434 [Next~Obligation.] 0.001 secs (0.u,0.s) -Chars 6439 - 6464 [(intros~w1~w2~Hw~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 6465 - 6480 [(do~2~red~in~Hw).] 0. secs (0.u,0.s) -Chars 6481 - 6496 [(do~3~red~in~Hk).] 0. secs (0.u,0.s) -Chars 6501 - 6512 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6513 - 6529 [(unfold~bind_ts1).] 0. secs (0.u,0.s) -Chars 6530 - 6536 [(simpl).] 0. secs (0.u,0.s) -Chars 6537 - 6551 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6411 - 6415 [Qed.] 0.014 secs (0.014u,0.s) +Chars 6418 - 6434 [Next~Obligation.] 0. secs (0.u,0.s) +Chars 6439 - 6464 [intros~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 6465 - 6480 [do~2~red~in~Hw.] 0. secs (0.u,0.s) +Chars 6481 - 6496 [do~3~red~in~Hk.] 0. secs (0.u,0.s) +Chars 6501 - 6512 [repeat~red.] 0. secs (0.u,0.s) +Chars 6513 - 6529 [unfold~bind_ts1.] 0. secs (0.u,0.s) +Chars 6530 - 6536 [simpl.] 0. secs (0.u,0.s) +Chars 6537 - 6551 [split;~intros.] 0. secs (0.u,0.s) Chars 6556 - 6557 [-] 0. secs (0.u,0.s) -Chars 6558 - 6572 [(rewrite~<-~Hw).] 0.004 secs (0.004u,0.s) -Chars 6573 - 6617 [(destruct~(w1~log)~as~[w1l~Hw1...] 0.002 secs (0.002u,0.s) -Chars 6618 - 6656 [(eapply~Hw1l;~try~apply~H;~sim...] 0. secs (0.u,0.s) -Chars 6657 - 6664 [(intros).] 0. secs (0.u,0.s) -Chars 6665 - 6683 [(basic_solve;~auto).] 0.002 secs (0.002u,0.s) +Chars 6558 - 6572 [rewrite~<-~Hw.] 0.003 secs (0.003u,0.s) +Chars 6573 - 6617 [destruct~(w1~log)~as~[w1l~Hw1l...] 0.001 secs (0.001u,0.s) +Chars 6618 - 6656 [eapply~Hw1l;~try~apply~H;~simpl.] 0. secs (0.u,0.s) +Chars 6657 - 6664 [intros.] 0. secs (0.u,0.s) +Chars 6665 - 6683 [basic_solve;~auto.] 0.002 secs (0.002u,0.s) Chars 6690 - 6695 [left.] 0. secs (0.u,0.s) Chars 6696 - 6705 [exists~a.] 0. secs (0.u,0.s) Chars 6706 - 6718 [exists~log'.] 0. secs (0.u,0.s) -Chars 6719 - 6731 [(split;~auto).] 0. secs (0.u,0.s) -Chars 6732 - 6746 [(rewrite~<-~Hk).] 0.001 secs (0.001u,0.s) +Chars 6719 - 6731 [split;~auto.] 0. secs (0.u,0.s) +Chars 6732 - 6746 [rewrite~<-~Hk.] 0.001 secs (0.001u,0.s) Chars 6747 - 6752 [auto.] 0. secs (0.u,0.s) Chars 6757 - 6758 [-] 0. secs (0.u,0.s) -Chars 6759 - 6770 [(rewrite~Hw).] 0.003 secs (0.003u,0.s) -Chars 6771 - 6815 [(destruct~(w2~log)~as~[w2l~Hw2...] 0.002 secs (0.002u,0.s) -Chars 6816 - 6854 [(eapply~Hw2l;~try~apply~H;~sim...] 0. secs (0.u,0.s) -Chars 6855 - 6862 [(intros).] 0. secs (0.u,0.s) -Chars 6863 - 6881 [(basic_solve;~auto).] 0.002 secs (0.002u,0.s) +Chars 6759 - 6770 [rewrite~Hw.] 0.002 secs (0.002u,0.s) +Chars 6771 - 6815 [destruct~(w2~log)~as~[w2l~Hw2l...] 0.002 secs (0.002u,0.s) +Chars 6816 - 6854 [eapply~Hw2l;~try~apply~H;~simpl.] 0. secs (0.u,0.s) +Chars 6855 - 6862 [intros.] 0. secs (0.u,0.s) +Chars 6863 - 6881 [basic_solve;~auto.] 0.002 secs (0.002u,0.s) Chars 6888 - 6893 [left.] 0. secs (0.u,0.s) Chars 6894 - 6903 [exists~a.] 0. secs (0.u,0.s) Chars 6904 - 6916 [exists~log'.] 0. secs (0.u,0.s) -Chars 6917 - 6929 [(split;~auto).] 0.003 secs (0.002u,0.s) -Chars 6930 - 6941 [(rewrite~Hk).] 0.001 secs (0.001u,0.s) +Chars 6917 - 6929 [split;~auto.] 0. secs (0.u,0.s) +Chars 6930 - 6941 [rewrite~Hk.] 0. secs (0.u,0.s) Chars 6942 - 6947 [auto.] 0. secs (0.u,0.s) -Chars 6950 - 6954 [Qed.] 0.009 secs (0.009u,0.s) -Chars 6959 - 7086 [#[program]~Definition~obs_trac...] 0.003 secs (0.003u,0.s) +Chars 6950 - 6954 [Qed.] 0.007 secs (0.007u,0.s) +Chars 6959 - 7086 [#[program]~Definition~obs_trac...] 0.002 secs (0.002u,0.s) Chars 7090 - 7167 [#[global]~Instance~TraceSpecOb...] 0. secs (0.u,0.s) -Chars 7171 - 7506 [Lemma~bind_split_diverge~:~~~f...] 0.001 secs (0.001u,0.s) +Chars 7171 - 7506 [Lemma~bind_split_diverge~:~~~f...] 0. secs (0.u,0.s) Chars 7509 - 7515 [Proof.] 0. secs (0.u,0.s) -Chars 7520 - 7560 [(intros~A~B~log~p~b~b'~g'~Hspl...] 0. secs (0.u,0.s) -Chars 7565 - 7583 [(rewrite~<-~Hsplit).] 0.008 secs (0.008u,0.s) -Chars 7588 - 7678 [(enough~~~(↑~log~++~ITree.bind...] 0. secs (0.u,0.s) +Chars 7520 - 7560 [intros~A~B~log~p~b~b'~g'~Hspli...] 0. secs (0.u,0.s) +Chars 7565 - 7583 [rewrite~<-~Hsplit.] 0.006 secs (0.006u,0.s) +Chars 7588 - 7678 [enough~~(↑~log~++~ITree.bind~b...] 0. secs (0.u,0.s) Chars 7683 - 7684 [{] 0. secs (0.u,0.s) -Chars 7685 - 7695 [(rewrite~H).] 0.007 secs (0.007u,0.s) +Chars 7685 - 7695 [rewrite~H.] 0.005 secs (0.005u,0.s) Chars 7696 - 7701 [auto.] 0. secs (0.u,0.s) Chars 7702 - 7703 [}] 0. secs (0.u,0.s) -Chars 7708 - 7722 [(unfold~append).] 0. secs (0.u,0.s) -Chars 7723 - 7741 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 7746 - 7812 [(eapply~eutt_bind_eutt~with~(R...] 0. secs (0.u,0.s) -Chars 7817 - 7824 [(intros).] 0. secs (0.u,0.s) -Chars 7825 - 7848 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 7849 - 7888 [(eapply~euttNoRet_trans~with~(...] 0. secs (0.u,0.s) +Chars 7708 - 7722 [unfold~append.] 0. secs (0.u,0.s) +Chars 7723 - 7741 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 7746 - 7812 [eapply~eutt_bind_eutt~with~(RR...] 0. secs (0.u,0.s) +Chars 7817 - 7824 [intros.] 0. secs (0.u,0.s) +Chars 7825 - 7848 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 7849 - 7888 [eapply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) Chars 7893 - 7894 [+] 0. secs (0.u,0.s) -Chars 7895 - 7915 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 7916 - 7937 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) -Chars 7938 - 7977 [(eapply~all_infinite_bind_appe...] 0. secs (0.u,0.s) +Chars 7895 - 7915 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 7916 - 7937 [apply~noret_bind_nop.] 0. secs (0.u,0.s) +Chars 7938 - 7977 [eapply~all_infinite_bind_appen...] 0. secs (0.u,0.s) Chars 7982 - 7983 [+] 0. secs (0.u,0.s) -Chars 7984 - 8005 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) -Chars 8006 - 8045 [(eapply~all_infinite_bind_appe...] 0. secs (0.u,0.s) -Chars 8048 - 8052 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7984 - 8005 [apply~noret_bind_nop.] 0. secs (0.u,0.s) +Chars 8006 - 8045 [eapply~all_infinite_bind_appen...] 0. secs (0.u,0.s) +Chars 8048 - 8052 [Qed.] 0.001 secs (0.001u,0.s) Chars 8056 - 8139 [#[global]~Instance~TraceSpecMo...] 0. secs (0.u,0.s) Chars 8142 - 8148 [Proof.] 0. secs (0.u,0.s) Chars 8153 - 8165 [constructor.] 0. secs (0.u,0.s) Chars 8170 - 8171 [-] 0. secs (0.u,0.s) -Chars 8172 - 8179 [(intros).] 0. secs (0.u,0.s) -Chars 8180 - 8191 [(repeat~red).] 0. secs (0.u,0.s) -Chars 8192 - 8217 [(unfold~obs,~TraceSpecObs).] 0. secs (0.u,0.s) -Chars 8218 - 8222 [(cbn).] 0. secs (0.u,0.s) -Chars 8223 - 8237 [(split;~intros).] 0. secs (0.u,0.s) +Chars 8172 - 8179 [intros.] 0. secs (0.u,0.s) +Chars 8180 - 8191 [repeat~red.] 0. secs (0.u,0.s) +Chars 8192 - 8217 [unfold~obs,~TraceSpecObs.] 0. secs (0.u,0.s) +Chars 8218 - 8222 [cbn.] 0. secs (0.u,0.s) +Chars 8223 - 8237 [split;~intros.] 0. secs (0.u,0.s) Chars 8244 - 8245 [+] 0. secs (0.u,0.s) -Chars 8246 - 8254 [(apply~H).] 0. secs (0.u,0.s) -Chars 8255 - 8278 [(apply~trace_refine_ret).] 0. secs (0.u,0.s) +Chars 8246 - 8254 [apply~H.] 0. secs (0.u,0.s) +Chars 8255 - 8278 [apply~trace_refine_ret.] 0. secs (0.u,0.s) Chars 8285 - 8286 [+] 0. secs (0.u,0.s) -Chars 8287 - 8322 [(apply~trace_refine_ret_inv_l~...] 0. secs (0.u,0.s) -Chars 8331 - 8342 [(rewrite~H0).] 0.008 secs (0.008u,0.s) +Chars 8287 - 8322 [apply~trace_refine_ret_inv_l~i...] 0. secs (0.u,0.s) +Chars 8331 - 8342 [rewrite~H0.] 0.005 secs (0.005u,0.s) Chars 8343 - 8348 [auto.] 0. secs (0.u,0.s) Chars 8353 - 8354 [-] 0. secs (0.u,0.s) -Chars 8355 - 8362 [(intros).] 0. secs (0.u,0.s) -Chars 8363 - 8374 [(repeat~red).] 0. secs (0.u,0.s) -Chars 8375 - 8379 [(cbn).] 0. secs (0.u,0.s) -Chars 8386 - 8400 [(split;~intros).] 0. secs (0.u,0.s) +Chars 8355 - 8362 [intros.] 0. secs (0.u,0.s) +Chars 8363 - 8374 [repeat~red.] 0. secs (0.u,0.s) +Chars 8375 - 8379 [cbn.] 0. secs (0.u,0.s) +Chars 8386 - 8400 [split;~intros.] 0. secs (0.u,0.s) Chars 8407 - 8408 [+] 0. secs (0.u,0.s) -Chars 8409 - 8459 [(destruct~(classic_converge_it...] 0. secs (0.u,0.s) +Chars 8409 - 8459 [destruct~(classic_converge_itr...] 0.001 secs (0.001u,0.s) Chars 8468 - 8469 [*] 0. secs (0.u,0.s) Chars 8470 - 8475 [left.] 0. secs (0.u,0.s) Chars 8476 - 8485 [exists~r.] 0. secs (0.u,0.s) -Chars 8486 - 8507 [setoid_rewrite~~<-~H1.] 0.012 secs (0.012u,0.s) +Chars 8486 - 8507 [setoid_rewrite~~<-~H1.] 0.007 secs (0.007u,0.s) Chars 8518 - 8544 [exists~(log~++~log0)%list.] 0. secs (0.u,0.s) Chars 8545 - 8551 [split.] 0. secs (0.u,0.s) Chars 8562 - 8564 [++] 0. secs (0.u,0.s) -Chars 8565 - 8586 [(rewrite~append_assoc).] 0.001 secs (0.001u,0.s) +Chars 8565 - 8586 [rewrite~append_assoc.] 0. secs (0.u,0.s) Chars 8587 - 8599 [reflexivity.] 0. secs (0.u,0.s) Chars 8610 - 8612 [++] 0. secs (0.u,0.s) -Chars 8613 - 8627 [(intros~bf~Hbf).] 0. secs (0.u,0.s) -Chars 8641 - 8668 [(set~(g~:=~fun~r~:~A~=>~bf)).] 0. secs (0.u,0.s) -Chars 8682 - 8728 [(assert~(ITree.bind~b~g~≈~↑~lo...] 0. secs (0.u,0.s) +Chars 8613 - 8627 [intros~bf~Hbf.] 0. secs (0.u,0.s) +Chars 8641 - 8668 [set~(g~:=~fun~r~:~A~=>~bf).] 0. secs (0.u,0.s) +Chars 8682 - 8728 [assert~(ITree.bind~b~g~≈~↑~log...] 0. secs (0.u,0.s) Chars 8742 - 8743 [{] 0. secs (0.u,0.s) -Chars 8759 - 8773 [(rewrite~<-~H1).] 0.002 secs (0.002u,0.s) -Chars 8774 - 8788 [(unfold~append).] 0. secs (0.u,0.s) -Chars 8789 - 8807 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 8823 - 8849 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) -Chars 8850 - 8859 [(unfold~g).] 0. secs (0.u,0.s) +Chars 8759 - 8773 [rewrite~<-~H1.] 0.001 secs (0.001u,0.s) +Chars 8774 - 8788 [unfold~append.] 0. secs (0.u,0.s) +Chars 8789 - 8807 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 8823 - 8849 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 8850 - 8859 [unfold~g.] 0. secs (0.u,0.s) Chars 8860 - 8872 [reflexivity.] 0. secs (0.u,0.s) Chars 8886 - 8887 [}] 0. secs (0.u,0.s) -Chars 8901 - 8922 [(rewrite~append_assoc).] 0.007 secs (0.007u,0.s) -Chars 8923 - 8937 [(rewrite~<-~H2).] 0.009 secs (0.009u,0.s) -Chars 8938 - 8946 [(apply~H).] 0. secs (0.u,0.s) -Chars 8960 - 8969 [(unfold~g).] 0. secs (0.u,0.s) -Chars 8970 - 9023 [(apply~trace_refine_converge_b...] 0. secs (0.u,0.s) -Chars 9037 - 9051 [(rewrite~<-~H1).] 0.005 secs (0.005u,0.s) -Chars 9052 - 9078 [(apply~may_converge_append).] 0. secs (0.u,0.s) -Chars 9079 - 9107 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 8901 - 8922 [rewrite~append_assoc.] 0.005 secs (0.005u,0.s) +Chars 8923 - 8937 [rewrite~<-~H2.] 0.006 secs (0.006u,0.s) +Chars 8938 - 8946 [apply~H.] 0. secs (0.u,0.s) +Chars 8960 - 8969 [unfold~g.] 0. secs (0.u,0.s) +Chars 8970 - 9023 [apply~trace_refine_converge_bi...] 0. secs (0.u,0.s) +Chars 9037 - 9051 [rewrite~<-~H1.] 0.004 secs (0.004u,0.s) +Chars 9052 - 9078 [apply~may_converge_append.] 0. secs (0.u,0.s) +Chars 9079 - 9107 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) Chars 9116 - 9117 [*] 0. secs (0.u,0.s) Chars 9118 - 9124 [right.] 0. secs (0.u,0.s) Chars 9125 - 9131 [split.] 0. secs (0.u,0.s) Chars 9142 - 9144 [++] 0. secs (0.u,0.s) -Chars 9145 - 9168 [(apply~append_div;~auto).] 0. secs (0.u,0.s) +Chars 9145 - 9168 [apply~append_div;~auto.] 0. secs (0.u,0.s) Chars 9179 - 9181 [++] 0. secs (0.u,0.s) -Chars 9182 - 9196 [(unfold~append).] 0. secs (0.u,0.s) -Chars 9210 - 9228 [(rewrite~bind_bind).] 0.007 secs (0.007u,0.s) -Chars 9229 - 9237 [(apply~H).] 0. secs (0.u,0.s) -Chars 9251 - 9289 [(apply~trace_refine_diverge_bi...] 0. secs (0.u,0.s) +Chars 9182 - 9196 [unfold~append.] 0. secs (0.u,0.s) +Chars 9210 - 9228 [rewrite~bind_bind.] 0.005 secs (0.005u,0.s) +Chars 9229 - 9237 [apply~H.] 0. secs (0.u,0.s) +Chars 9251 - 9289 [apply~trace_refine_diverge_bin...] 0. secs (0.u,0.s) Chars 9295 - 9296 [+] 0. secs (0.u,0.s) -Chars 9297 - 9346 [(apply~decompose_trace_refine_...] 0. secs (0.u,0.s) +Chars 9297 - 9346 [apply~decompose_trace_refine_b...] 0. secs (0.u,0.s) Chars 9354 - 9366 [basic_solve.] 0. secs (0.u,0.s) -Chars 9367 - 9387 [(apply~H~in~H2~as~?H).] 0. secs (0.u,0.s) -Chars 9388 - 9439 [(destruct~(classic_converge_it...] 0.003 secs (0.003u,0.s) +Chars 9367 - 9387 [apply~H~in~H2~as~?H.] 0. secs (0.u,0.s) +Chars 9388 - 9439 [destruct~(classic_converge_itr...] 0.001 secs (0.001u,0.s) Chars 9447 - 9448 [*] 0. secs (0.u,0.s) Chars 9546 - 9554 [clear~H.] 0. secs (0.u,0.s) -Chars 9555 - 9579 [(assert~(H~:~True);~auto).] 0. secs (0.u,0.s) -Chars 9590 - 9645 [(assert~(Hbind~:~ITree.bind~b'...] 0. secs (0.u,0.s) +Chars 9555 - 9579 [assert~(H~:~True);~auto.] 0. secs (0.u,0.s) +Chars 9590 - 9645 [assert~(Hbind~:~ITree.bind~b'~...] 0. secs (0.u,0.s) Chars 9655 - 9656 [{] 0. secs (0.u,0.s) -Chars 9657 - 9668 [(rewrite~H1).] 0.004 secs (0.004u,0.s) +Chars 9657 - 9668 [rewrite~H1.] 0.003 secs (0.003u,0.s) Chars 9669 - 9674 [auto.] 0. secs (0.u,0.s) Chars 9675 - 9676 [}] 0. secs (0.u,0.s) -Chars 9686 - 9706 [(rewrite~<-~H4~in~H1).] 0.019 secs (0.019u,0.s) -Chars 9716 - 9747 [setoid_rewrite~bind_bind~in~H1.] 0.021 secs (0.021u,0.s) -Chars 9757 - 9789 [setoid_rewrite~bind_ret_l~in~H1.] 0.023 secs (0.023u,0.s) -Chars 9799 - 9845 [(assert~(↑~log0~++~g'~r~≈~b)%i...] 0.001 secs (0.001u,0.s) +Chars 9686 - 9706 [rewrite~<-~H4~in~H1.] 0.014 secs (0.014u,0.s) +Chars 9716 - 9747 [setoid_rewrite~bind_bind~in~H1.] 0.016 secs (0.016u,0.s) +Chars 9757 - 9789 [setoid_rewrite~bind_ret_l~in~H1.] 0.017 secs (0.017u,0.s) +Chars 9799 - 9845 [assert~(↑~log0~++~g'~r~≈~b)%it...] 0. secs (0.u,0.s) Chars 9846 - 9855 [clear~H1.] 0. secs (0.u,0.s) Chars 9865 - 9889 [specialize~(H5~(g'~r)).] 0. secs (0.u,0.s) -Chars 9891 - 9911 [(rewrite~<-~H6~in~H0).] 0.004 secs (0.004u,0.s) -Chars 9923 - 9979 [(assert~(↑~log~++~b~≈~↑~log'~+...] 0. secs (0.u,0.s) +Chars 9891 - 9911 [rewrite~<-~H6~in~H0.] 0.002 secs (0.002u,0.s) +Chars 9923 - 9979 [assert~(↑~log~++~b~≈~↑~log'~++...] 0. secs (0.u,0.s) Chars 9989 - 9990 [{] 0. secs (0.u,0.s) -Chars 10002 - 10016 [(rewrite~<-~H6).] 0.009 secs (0.009u,0.s) -Chars 10017 - 10037 [(rewrite~<-~H4~in~H3).] 0.021 secs (0.02u,0.s) -Chars 10049 - 10073 [(rewrite~<-~append_assoc).] 0.008 secs (0.008u,0.s) -Chars 10074 - 10104 [(rewrite~<-~append_assoc~in~H3).] 0.019 secs (0.019u,0.s) -Chars 10105 - 10133 [(apply~inv_append_eutt~in~H3).] 0. secs (0.u,0.s) -Chars 10145 - 10157 [(destruct~H3).] 0. secs (0.u,0.s) +Chars 10002 - 10016 [rewrite~<-~H6.] 0.006 secs (0.006u,0.s) +Chars 10017 - 10037 [rewrite~<-~H4~in~H3.] 0.016 secs (0.016u,0.s) +Chars 10049 - 10073 [rewrite~<-~append_assoc.] 0.006 secs (0.006u,0.s) +Chars 10074 - 10104 [rewrite~<-~append_assoc~in~H3.] 0.014 secs (0.014u,0.s) +Chars 10105 - 10133 [apply~inv_append_eutt~in~H3.] 0. secs (0.u,0.s) +Chars 10145 - 10157 [destruct~H3.] 0. secs (0.u,0.s) Chars 10158 - 10164 [subst.] 0. secs (0.u,0.s) -Chars 10165 - 10184 [(split;~reflexivity).] 0. secs (0.u,0.s) +Chars 10165 - 10184 [split;~reflexivity.] 0. secs (0.u,0.s) Chars 10194 - 10195 [}] 0. secs (0.u,0.s) -Chars 10205 - 10233 [(destruct~H1~as~[Hevsplit~?]).] 0. secs (0.u,0.s) +Chars 10205 - 10233 [destruct~H1~as~[Hevsplit~?].] 0. secs (0.u,0.s) Chars 10234 - 10240 [subst.] 0. secs (0.u,0.s) -Chars 10241 - 10258 [(rewrite~Hevsplit).] 0.007 secs (0.007u,0.s) -Chars 10318 - 10327 [(apply~H5).] 0. secs (0.u,0.s) -Chars 10382 - 10399 [(rewrite~H6~in~H0).] 0.003 secs (0.003u,0.s) -Chars 10536 - 10597 [(apply~trace_refine_bind_cont_...] 0. secs (0.u,0.s) -Chars 10607 - 10621 [(rewrite~<-~H4).] 0.006 secs (0.006u,0.s) -Chars 10622 - 10649 [(eapply~may_converge_append).] 0. secs (0.u,0.s) -Chars 10650 - 10678 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 10241 - 10258 [rewrite~Hevsplit.] 0.006 secs (0.006u,0.s) +Chars 10318 - 10327 [apply~H5.] 0. secs (0.u,0.s) +Chars 10382 - 10399 [rewrite~H6~in~H0.] 0.003 secs (0.003u,0.s) +Chars 10536 - 10597 [apply~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) +Chars 10607 - 10621 [rewrite~<-~H4.] 0.004 secs (0.004u,0.s) +Chars 10622 - 10649 [eapply~may_converge_append.] 0. secs (0.u,0.s) +Chars 10650 - 10678 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) Chars 10686 - 10687 [*] 0. secs (0.u,0.s) -Chars 10688 - 10721 [(eapply~bind_split_diverge;~ea...] 0.003 secs (0.003u,0.s) +Chars 10688 - 10721 [eapply~bind_split_diverge;~eauto.] 0.002 secs (0.002u,0.s) Chars 10729 - 10730 [*] 0. secs (0.u,0.s) -Chars 10731 - 10758 [(assert~(may_converge~a~b')).] 0. secs (0.u,0.s) +Chars 10731 - 10758 [assert~(may_converge~a~b').] 0. secs (0.u,0.s) Chars 10768 - 10769 [{] 0. secs (0.u,0.s) -Chars 10770 - 10806 [(eapply~may_converge_two_list;...] 0. secs (0.u,0.s) +Chars 10770 - 10806 [eapply~may_converge_two_list;~...] 0. secs (0.u,0.s) Chars 10807 - 10808 [}] 0. secs (0.u,0.s) Chars 10818 - 10826 [exfalso.] 0. secs (0.u,0.s) -Chars 10827 - 10867 [(eapply~all_infinite_not_conve...] 0. secs (0.u,0.s) +Chars 10827 - 10867 [eapply~all_infinite_not_conver...] 0. secs (0.u,0.s) Chars 10875 - 10876 [*] 0. secs (0.u,0.s) -Chars 10877 - 10910 [(eapply~bind_split_diverge;~ea...] 0.001 secs (0.001u,0.s) -Chars 10913 - 10917 [Qed.] 0.018 secs (0.018u,0.s) -Chars 10921 - 11043 [#[global]~Instance~TraceSpecOr...] 0.001 secs (0.001u,0.s) +Chars 10877 - 10910 [eapply~bind_split_diverge;~eauto.] 0.001 secs (0.001u,0.s) +Chars 10913 - 10917 [Qed.] 0.014 secs (0.014u,0.s) +Chars 10921 - 11043 [#[global]~Instance~TraceSpecOr...] 0. secs (0.u,0.s) Chars 11047 - 11110 [#[global]~Instance~TraceSpecOr...] 0. secs (0.u,0.s) Chars 11113 - 11119 [Proof.] 0. secs (0.u,0.s) Chars 11124 - 11136 [constructor.] 0. secs (0.u,0.s) Chars 11141 - 11142 [-] 0. secs (0.u,0.s) -Chars 11143 - 11150 [(intros).] 0. secs (0.u,0.s) -Chars 11151 - 11162 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11143 - 11150 [intros.] 0. secs (0.u,0.s) +Chars 11151 - 11162 [repeat~red.] 0. secs (0.u,0.s) Chars 11163 - 11168 [auto.] 0. secs (0.u,0.s) Chars 11173 - 11174 [-] 0. secs (0.u,0.s) -Chars 11175 - 11182 [(intros).] 0. secs (0.u,0.s) -Chars 11183 - 11199 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11200 - 11217 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 11224 - 11235 [(repeat~red).] 0. secs (0.u,0.s) -Chars 11236 - 11243 [(intros).] 0. secs (0.u,0.s) -Chars 11244 - 11252 [(apply~H).] 0. secs (0.u,0.s) -Chars 11253 - 11262 [(apply~H0).] 0. secs (0.u,0.s) +Chars 11175 - 11182 [intros.] 0. secs (0.u,0.s) +Chars 11183 - 11199 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 11200 - 11217 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 11224 - 11235 [repeat~red.] 0. secs (0.u,0.s) +Chars 11236 - 11243 [intros.] 0. secs (0.u,0.s) +Chars 11244 - 11252 [apply~H.] 0. secs (0.u,0.s) +Chars 11253 - 11262 [apply~H0.] 0. secs (0.u,0.s) Chars 11263 - 11268 [auto.] 0. secs (0.u,0.s) Chars 11273 - 11274 [-] 0. secs (0.u,0.s) -Chars 11275 - 11282 [(intros).] 0. secs (0.u,0.s) -Chars 11283 - 11300 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 11301 - 11317 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11318 - 11329 [(repeat~red).] 0. secs (0.u,0.s) -Chars 11330 - 11337 [(intros).] 0. secs (0.u,0.s) -Chars 11338 - 11355 [(repeat~red~in~H1).] 0. secs (0.u,0.s) -Chars 11362 - 11371 [(eapply~H).] 0. secs (0.u,0.s) -Chars 11372 - 11403 [(destruct~(w2~log)~as~[w2'~Hw2]).] 0.001 secs (0.001u,0.s) -Chars 11404 - 11408 [(cbn).] 0. secs (0.u,0.s) -Chars 11409 - 11434 [(eapply~Hw2;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 11441 - 11448 [(intros).] 0. secs (0.u,0.s) -Chars 11449 - 11458 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 11275 - 11282 [intros.] 0. secs (0.u,0.s) +Chars 11283 - 11300 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 11301 - 11317 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 11318 - 11329 [repeat~red.] 0. secs (0.u,0.s) +Chars 11330 - 11337 [intros.] 0. secs (0.u,0.s) +Chars 11338 - 11355 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 11362 - 11371 [eapply~H.] 0. secs (0.u,0.s) +Chars 11372 - 11403 [destruct~(w2~log)~as~[w2'~Hw2].] 0.002 secs (0.001u,0.s) +Chars 11404 - 11408 [cbn.] 0. secs (0.u,0.s) +Chars 11409 - 11434 [eapply~Hw2;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 11441 - 11448 [intros.] 0. secs (0.u,0.s) +Chars 11449 - 11458 [cbn~in~*.] 0. secs (0.u,0.s) Chars 11459 - 11471 [basic_solve.] 0.001 secs (0.001u,0.s) Chars 11478 - 11479 [+] 0. secs (0.u,0.s) Chars 11480 - 11485 [left.] 0. secs (0.u,0.s) Chars 11486 - 11495 [exists~a.] 0. secs (0.u,0.s) Chars 11496 - 11508 [exists~log'.] 0. secs (0.u,0.s) -Chars 11509 - 11521 [(split;~auto).] 0. secs (0.u,0.s) -Chars 11530 - 11540 [(eapply~H0).] 0. secs (0.u,0.s) +Chars 11509 - 11521 [split;~auto.] 0. secs (0.u,0.s) +Chars 11530 - 11540 [eapply~H0.] 0. secs (0.u,0.s) Chars 11541 - 11546 [auto.] 0. secs (0.u,0.s) Chars 11553 - 11554 [+] 0. secs (0.u,0.s) Chars 11555 - 11561 [right.] 0. secs (0.u,0.s) Chars 11562 - 11567 [auto.] 0. secs (0.u,0.s) -Chars 11570 - 11574 [Qed.] 0.007 secs (0.007u,0.s) +Chars 11570 - 11574 [Qed.] 0.006 secs (0.006u,0.s) Chars 11578 - 11702 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) -Chars 11706 - 11892 [#[program]~Definition~encode~{...] 0.004 secs (0.004u,0.s) -Chars 11896 - 12103 [#[program]~Definition~encode_d...] 0.004 secs (0.004u,0.s) -Chars 12105 - 12119 [End~TraceSpec.] 0.004 secs (0.004u,0.s) +Chars 11706 - 11892 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) +Chars 11896 - 12103 [#[program]~Definition~encode_d...] 0.005 secs (0.005u,0.s) +Chars 12105 - 12119 [End~TraceSpec.] 0.005 secs (0.005u,0.s) Chars 12121 - 12150 [Arguments~TraceSpecMonad~{E}.] 0. secs (0.u,0.s) Chars 12151 - 12184 [Arguments~TraceSpecMonadLaws~{E}.] 0. secs (0.u,0.s) Chars 12185 - 12214 [Arguments~TraceSpecOrder~{E}.] 0. secs (0.u,0.s) @@ -481,124 +481,124 @@ Chars 12790 - 12911 [Definition~fal_decide_ex~:~itr...] 0. secs (0.u,0.s) Chars 12913 - 13098 [Definition~decide_ex_post~:~it...] 0. secs (0.u,0.s) Chars 13100 - 13208 [Lemma~decide_ex_satisfies_spec...] 0. secs (0.u,0.s) Chars 13209 - 13215 [Proof.] 0. secs (0.u,0.s) -Chars 13218 - 13229 [(repeat~red).] 0. secs (0.u,0.s) -Chars 13230 - 13234 [(cbn).] 0. secs (0.u,0.s) -Chars 13235 - 13242 [(intros).] 0. secs (0.u,0.s) -Chars 13243 - 13266 [(destruct~H~as~[Hlog~H]).] 0. secs (0.u,0.s) -Chars 13269 - 13281 [(red~in~Hlog).] 0. secs (0.u,0.s) -Chars 13282 - 13290 [(apply~H).] 0. secs (0.u,0.s) +Chars 13218 - 13229 [repeat~red.] 0.001 secs (0.u,0.s) +Chars 13230 - 13234 [cbn.] 0. secs (0.u,0.s) +Chars 13235 - 13242 [intros.] 0. secs (0.u,0.s) +Chars 13243 - 13266 [destruct~H~as~[Hlog~H].] 0. secs (0.u,0.s) +Chars 13269 - 13281 [red~in~Hlog.] 0. secs (0.u,0.s) +Chars 13282 - 13290 [apply~H.] 0. secs (0.u,0.s) Chars 13291 - 13299 [clear~H.] 0. secs (0.u,0.s) Chars 13300 - 13306 [subst.] 0. secs (0.u,0.s) -Chars 13307 - 13311 [(cbn).] 0. secs (0.u,0.s) -Chars 13312 - 13316 [(red).] 0. secs (0.u,0.s) -Chars 13317 - 13331 [(split;~intros).] 0. secs (0.u,0.s) +Chars 13307 - 13311 [cbn.] 0. secs (0.u,0.s) +Chars 13312 - 13316 [red.] 0. secs (0.u,0.s) +Chars 13317 - 13331 [split;~intros.] 0. secs (0.u,0.s) Chars 13334 - 13335 [-] 0. secs (0.u,0.s) -Chars 13336 - 13355 [(unfold~append~in~*).] 0. secs (0.u,0.s) -Chars 13356 - 13380 [(rewrite~bind_ret_l~in~H).] 0.004 secs (0.004u,0.s) -Chars 13381 - 13400 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) -Chars 13405 - 13427 [(unfold~decide_ex~in~*).] 0. secs (0.u,0.s) +Chars 13336 - 13355 [unfold~append~in~*.] 0. secs (0.u,0.s) +Chars 13356 - 13380 [rewrite~bind_ret_l~in~H.] 0.001 secs (0.001u,0.s) +Chars 13381 - 13400 [rewrite~bind_ret_l.] 0.016 secs (0.015u,0.s) +Chars 13405 - 13427 [unfold~decide_ex~in~*.] 0. secs (0.u,0.s) Chars 13432 - 13455 [generalize~dependent~b.] 0. secs (0.u,0.s) Chars 13456 - 13474 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13475 - 13492 [(intros~b~Hb~Hdiv).] 0. secs (0.u,0.s) -Chars 13497 - 13528 [(rewrite~unfold_iter~in~Hb~at~1).] 0.003 secs (0.003u,0.s) -Chars 13529 - 13553 [(rewrite~bind_bind~in~Hb).] 0.004 secs (0.004u,0.s) -Chars 13558 - 13622 [(apply~bind_trigger_refine~in~...] 0. secs (0.u,0.s) +Chars 13475 - 13492 [intros~b~Hb~Hdiv.] 0. secs (0.u,0.s) +Chars 13497 - 13528 [rewrite~unfold_iter~in~Hb~at~1.] 0.002 secs (0.002u,0.s) +Chars 13529 - 13553 [rewrite~bind_bind~in~Hb.] 0.003 secs (0.003u,0.s) +Chars 13558 - 13622 [apply~bind_trigger_refine~in~H...] 0. secs (0.u,0.s) Chars 13627 - 13639 [basic_solve.] 0. secs (0.u,0.s) -Chars 13640 - 13651 [(destruct~a).] 0. secs (0.u,0.s) +Chars 13640 - 13651 [destruct~a.] 0. secs (0.u,0.s) Chars 13656 - 13657 [+] 0. secs (0.u,0.s) -Chars 13658 - 13683 [(rewrite~bind_ret_l~in~H0).] 0.003 secs (0.003u,0.s) -Chars 13684 - 13694 [(cbn~in~H0).] 0. secs (0.u,0.s) -Chars 13695 - 13718 [(rewrite~tau_eutt~in~H0).] 0.003 secs (0.003u,0.s) +Chars 13658 - 13683 [rewrite~bind_ret_l~in~H0.] 0.003 secs (0.003u,0.s) +Chars 13684 - 13694 [cbn~in~H0.] 0. secs (0.u,0.s) +Chars 13695 - 13718 [rewrite~tau_eutt~in~H0.] 0.003 secs (0.003u,0.s) Chars 13725 - 13735 [step~in~H.] 0. secs (0.u,0.s) Chars 13736 - 13745 [clear~Hb.] 0. secs (0.u,0.s) Chars 13752 - 13757 [icbn.] 0. secs (0.u,0.s) -Chars 13766 - 13797 [(dependent~induction~H;~simpobs).] 0.014 secs (0.014u,0.s) +Chars 13766 - 13797 [dependent~induction~H;~simpobs.] 0.014 secs (0.014u,0.s) Chars 13805 - 13806 [*] 0. secs (0.u,0.s) -Chars 13807 - 13836 [(constructor;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 13837 - 13844 [(intros).] 0. secs (0.u,0.s) -Chars 13853 - 13864 [(destruct~a).] 0. secs (0.u,0.s) -Chars 13865 - 13876 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 13807 - 13836 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 13837 - 13844 [intros.] 0. secs (0.u,0.s) +Chars 13853 - 13864 [destruct~a.] 0. secs (0.u,0.s) +Chars 13865 - 13876 [eapply~CIH.] 0. secs (0.u,0.s) Chars 13885 - 13887 [++] 0. secs (0.u,0.s) -Chars 13888 - 13934 [(assert~(k1~tt~≈~k'~tt)%itree;...] 0. secs (0.u,0.s) -Chars 13946 - 13960 [now~rewrite~H.] 0.005 secs (0.005u,0.s) +Chars 13888 - 13934 [assert~(k1~tt~≈~k'~tt)%itree;~...] 0. secs (0.u,0.s) +Chars 13946 - 13960 [now~rewrite~H.] 0.004 secs (0.004u,0.s) Chars 13970 - 13972 [++] 0. secs (0.u,0.s) -Chars 13973 - 13992 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 13993 - 14011 [(rewrite~x~in~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 14012 - 14022 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) +Chars 13973 - 13992 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 13993 - 14011 [rewrite~x~in~Hdiv.] 0.001 secs (0.001u,0.s) +Chars 14012 - 14022 [sinv~Hdiv.] 0.003 secs (0.003u,0.s) Chars 14034 - 14047 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 14048 - 14057 [(apply~H1).] 0. secs (0.u,0.s) +Chars 14048 - 14057 [apply~H1.] 0. secs (0.u,0.s) Chars 14064 - 14065 [*] 0. secs (0.u,0.s) Chars 14066 - 14078 [constructor.] 0. secs (0.u,0.s) Chars 14079 - 14090 [Utils.step.] 0. secs (0.u,0.s) -Chars 14091 - 14113 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 14123 - 14142 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 14143 - 14161 [(rewrite~x~in~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 14162 - 14187 [(rewrite~tau_eutt~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 14091 - 14113 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 14123 - 14142 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 14143 - 14161 [rewrite~x~in~Hdiv.] 0.001 secs (0.001u,0.s) +Chars 14162 - 14187 [rewrite~tau_eutt~in~Hdiv.] 0.001 secs (0.001u,0.s) Chars 14188 - 14193 [auto.] 0. secs (0.u,0.s) Chars 14197 - 14198 [+] 0. secs (0.u,0.s) -Chars 14199 - 14224 [(rewrite~bind_ret_l~in~H0).] 0.003 secs (0.003u,0.s) -Chars 14225 - 14235 [(cbn~in~H0).] 0. secs (0.u,0.s) -Chars 14236 - 14271 [(apply~trace_refine_ret_inv_l~...] 0. secs (0.u,0.s) -Chars 14277 - 14295 [(rewrite~H~in~Hdiv).] 0.002 secs (0.002u,0.s) -Chars 14296 - 14306 [sinv~Hdiv.] 0.005 secs (0.005u,0.s) +Chars 14199 - 14224 [rewrite~bind_ret_l~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14225 - 14235 [cbn~in~H0.] 0. secs (0.u,0.s) +Chars 14236 - 14271 [apply~trace_refine_ret_inv_l~i...] 0. secs (0.u,0.s) +Chars 14277 - 14295 [rewrite~H~in~Hdiv.] 0.001 secs (0.001u,0.s) +Chars 14296 - 14306 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) Chars 14307 - 14320 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 14326 - 14345 [specialize~(H2~tt).] 0. secs (0.u,0.s) -Chars 14351 - 14368 [(rewrite~H0~in~H2).] 0.014 secs (0.014u,0.s) -Chars 14369 - 14377 [sinv~H2.] 0.001 secs (0.001u,0.s) +Chars 14351 - 14368 [rewrite~H0~in~H2.] 0.011 secs (0.011u,0.s) +Chars 14369 - 14377 [sinv~H2.] 0. secs (0.u,0.s) Chars 14380 - 14381 [-] 0. secs (0.u,0.s) -Chars 14382 - 14386 [(red).] 0. secs (0.u,0.s) -Chars 14387 - 14406 [(rewrite~append_nil).] 0.039 secs (0.039u,0.s) -Chars 14407 - 14431 [(rewrite~append_nil~in~H).] 0.005 secs (0.005u,0.s) -Chars 14432 - 14454 [(unfold~decide_ex~in~*).] 0. secs (0.u,0.s) -Chars 14459 - 14471 [(induction~H).] 0. secs (0.u,0.s) +Chars 14382 - 14386 [red.] 0. secs (0.u,0.s) +Chars 14387 - 14406 [rewrite~append_nil.] 0.029 secs (0.029u,0.s) +Chars 14407 - 14431 [rewrite~append_nil~in~H.] 0.003 secs (0.003u,0.s) +Chars 14432 - 14454 [unfold~decide_ex~in~*.] 0. secs (0.u,0.s) +Chars 14459 - 14471 [induction~H.] 0. secs (0.u,0.s) Chars 14476 - 14477 [+] 0. secs (0.u,0.s) Chars 14478 - 14486 [exfalso.] 0. secs (0.u,0.s) -Chars 14487 - 14503 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) -Chars 14504 - 14530 [(rewrite~unfold_iter~in~H0).] 0.004 secs (0.004u,0.s) -Chars 14537 - 14561 [(rewrite~bind_bind~in~H0).] 0.004 secs (0.004u,0.s) -Chars 14562 - 14589 [(rewrite~bind_trigger~in~H0).] 0.004 secs (0.004u,0.s) -Chars 14596 - 14635 [(revert~H0;~apply~refine_ret_v...] 0. secs (0.u,0.s) +Chars 14487 - 14503 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14504 - 14530 [rewrite~unfold_iter~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14537 - 14561 [rewrite~bind_bind~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14562 - 14589 [rewrite~bind_trigger~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14596 - 14635 [revert~H0;~apply~refine_ret_vi...] 0. secs (0.u,0.s) Chars 14640 - 14641 [+] 0. secs (0.u,0.s) -Chars 14642 - 14652 [(rewrite~H).] 0.042 secs (0.042u,0.s) -Chars 14653 - 14683 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) -Chars 14690 - 14701 [(destruct~b).] 0. secs (0.u,0.s) -Chars 14702 - 14714 [(destruct~ev).] 0. secs (0.u,0.s) -Chars 14715 - 14728 [(destruct~ans).] 0. secs (0.u,0.s) +Chars 14642 - 14652 [rewrite~H.] 0.03 secs (0.03u,0.s) +Chars 14653 - 14683 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) +Chars 14690 - 14701 [destruct~b.] 0. secs (0.u,0.s) +Chars 14702 - 14714 [destruct~ev.] 0. secs (0.u,0.s) +Chars 14715 - 14728 [destruct~ans.] 0. secs (0.u,0.s) Chars 14735 - 14736 [*] 0. secs (0.u,0.s) -Chars 14737 - 14788 [(eapply~front_and_last_cons;~e...] 0.002 secs (0.001u,0.s) -Chars 14789 - 14810 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 14737 - 14788 [eapply~front_and_last_cons;~ea...] 0.001 secs (0.001u,0.s) +Chars 14789 - 14810 [apply~IHmay_converge.] 0. secs (0.u,0.s) Chars 14819 - 14840 [clear~IHmay_converge.] 0. secs (0.u,0.s) -Chars 14841 - 14867 [(rewrite~unfold_iter~in~H0).] 0.003 secs (0.003u,0.s) -Chars 14868 - 14892 [(rewrite~bind_bind~in~H0).] 0.004 secs (0.004u,0.s) -Chars 14901 - 14917 [(rewrite~H~in~H0).] 0.004 secs (0.004u,0.s) -Chars 14918 - 14976 [(eapply~bind_trigger_refine~in...] 0. secs (0.u,0.s) +Chars 14841 - 14867 [rewrite~unfold_iter~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14868 - 14892 [rewrite~bind_bind~in~H0.] 0.002 secs (0.002u,0.s) +Chars 14901 - 14917 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) +Chars 14918 - 14976 [eapply~bind_trigger_refine~in~...] 0. secs (0.u,0.s) Chars 14985 - 14997 [basic_solve.] 0. secs (0.u,0.s) -Chars 15006 - 15014 [sinv~H0.] 0.011 secs (0.01u,0.s) -Chars 15015 - 15028 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 15037 - 15082 [(assert~(k~tt~≈~k'~tt)%itree;~...] 0. secs (0.u,0.s) -Chars 15083 - 15108 [(rewrite~bind_ret_l~in~H2).] 0.005 secs (0.004u,0.s) -Chars 15117 - 15126 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 15127 - 15150 [(rewrite~tau_eutt~in~H2).] 0.004 secs (0.003u,0.s) -Chars 15151 - 15166 [now~rewrite~H0.] 0.006 secs (0.005u,0.s) +Chars 15006 - 15014 [sinv~H0.] 0.007 secs (0.007u,0.s) +Chars 15015 - 15028 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 15037 - 15082 [assert~(k~tt~≈~k'~tt)%itree;~t...] 0. secs (0.u,0.s) +Chars 15083 - 15108 [rewrite~bind_ret_l~in~H2.] 0.003 secs (0.003u,0.s) +Chars 15117 - 15126 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 15127 - 15150 [rewrite~tau_eutt~in~H2.] 0.002 secs (0.002u,0.s) +Chars 15151 - 15166 [now~rewrite~H0.] 0.003 secs (0.003u,0.s) Chars 15174 - 15175 [*] 0. secs (0.u,0.s) Chars 15176 - 15197 [clear~IHmay_converge.] 0. secs (0.u,0.s) -Chars 15198 - 15224 [(rewrite~unfold_iter~in~H0).] 0.005 secs (0.004u,0.s) -Chars 15225 - 15249 [(rewrite~bind_bind~in~H0).] 0.004 secs (0.004u,0.s) -Chars 15258 - 15274 [(rewrite~H~in~H0).] 0.004 secs (0.004u,0.s) -Chars 15275 - 15333 [(eapply~bind_trigger_refine~in...] 0. secs (0.u,0.s) +Chars 15198 - 15224 [rewrite~unfold_iter~in~H0.] 0.002 secs (0.002u,0.s) +Chars 15225 - 15249 [rewrite~bind_bind~in~H0.] 0.002 secs (0.002u,0.s) +Chars 15258 - 15274 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) +Chars 15275 - 15333 [eapply~bind_trigger_refine~in~...] 0. secs (0.u,0.s) Chars 15342 - 15354 [basic_solve.] 0. secs (0.u,0.s) -Chars 15363 - 15371 [sinv~H0.] 0.008 secs (0.008u,0.s) -Chars 15372 - 15385 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 15394 - 15419 [(rewrite~bind_ret_l~in~H2).] 0.005 secs (0.004u,0.s) -Chars 15420 - 15430 [(cbn~in~H2).] 0. secs (0.u,0.s) -Chars 15439 - 15474 [(apply~trace_refine_ret_inv_l~...] 0. secs (0.u,0.s) -Chars 15483 - 15543 [(eapply~front_and_last_base~wi...] 0.008 secs (0.008u,0.s) -Chars 15552 - 15557 [step.] 0.002 secs (0.002u,0.s) -Chars 15558 - 15562 [(cbn).] 0. secs (0.u,0.s) +Chars 15363 - 15371 [sinv~H0.] 0.006 secs (0.006u,0.s) +Chars 15372 - 15385 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 15394 - 15419 [rewrite~bind_ret_l~in~H2.] 0.002 secs (0.002u,0.s) +Chars 15420 - 15430 [cbn~in~H2.] 0. secs (0.u,0.s) +Chars 15439 - 15474 [apply~trace_refine_ret_inv_l~i...] 0. secs (0.u,0.s) +Chars 15483 - 15543 [eapply~front_and_last_base~wit...] 0.005 secs (0.005u,0.s) +Chars 15552 - 15557 [step.] 0.001 secs (0.001u,0.s) +Chars 15558 - 15562 [cbn.] 0. secs (0.u,0.s) Chars 15563 - 15575 [constructor.] 0. secs (0.u,0.s) -Chars 15576 - 15583 [(intros).] 0. secs (0.u,0.s) -Chars 15592 - 15606 [(rewrite~<-~H2).] 0.001 secs (0.001u,0.s) -Chars 15607 - 15618 [(destruct~v).] 0. secs (0.u,0.s) +Chars 15576 - 15583 [intros.] 0. secs (0.u,0.s) +Chars 15592 - 15606 [rewrite~<-~H2.] 0. secs (0.u,0.s) +Chars 15607 - 15618 [destruct~v.] 0. secs (0.u,0.s) Chars 15619 - 15624 [auto.] 0. secs (0.u,0.s) -Chars 15627 - 15631 [Qed.] 0.035 secs (0.034u,0.s) -Chars 15633 - 15651 [End~NonDetExample.] 0.001 secs (0.001u,0.s) +Chars 15627 - 15631 [Qed.] 0.022 secs (0.022u,0.s) +Chars 15633 - 15651 [End~NonDetExample.] 0. secs (0.u,0.s) diff --git a/extra/IForest.v.timing b/extra/IForest.v.timing index cdc719af..0f17b70c 100644 --- a/extra/IForest.v.timing +++ b/extra/IForest.v.timing @@ -1,7 +1,7 @@ -Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.238 secs (0.205u,0.031s) +Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.16 secs (0.144u,0.016s) Chars 461 - 512 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.003 secs (0.001u,0.001s) +Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.001s) Chars 586 - 620 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 622 - 643 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 644 - 664 [Import~CatNotations.] 0. secs (0.u,0.s) @@ -9,31 +9,31 @@ Chars 665 - 694 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) Chars 695 - 722 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 801 - 877 [Definition~iforest~(E~:~Type~-...] 0. secs (0.u,0.s) Chars 1082 - 1148 [Notation~eutt_closed~:=~(Prope...] 0. secs (0.u,0.s) -Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0.001 secs (0.001u,0.s) -Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.002 secs (0.001u,0.s) -Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0.001 secs (0.u,0.s) -Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0.001 secs (0.001u,0.s) -Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0.001 secs (0.001u,0.s) -Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.002 secs (0.001u,0.s) +Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0.001 secs (0.u,0.s) +Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.001 secs (0.001u,0.s) +Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0. secs (0.u,0.s) +Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0. secs (0.u,0.s) +Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0. secs (0.u,0.s) +Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.001 secs (0.u,0.s) Chars 2851 - 2980 [Lemma~bind_iforest_bind_ifores...] 0. secs (0.u,0.s) Chars 2981 - 2987 [Proof.] 0. secs (0.u,0.s) -Chars 2990 - 2997 [(intros).] 0. secs (0.u,0.s) +Chars 2990 - 2997 [intros.] 0. secs (0.u,0.s) Chars 2998 - 3004 [split.] 0. secs (0.u,0.s) -Chars 3007 - 3014 [(intros).] 0. secs (0.u,0.s) +Chars 3007 - 3014 [intros.] 0. secs (0.u,0.s) Chars 3017 - 3018 [-] 0. secs (0.u,0.s) -Chars 3019 - 3023 [(red).] 0. secs (0.u,0.s) -Chars 3024 - 3033 [(red~in~H).] 0. secs (0.u,0.s) -Chars 3038 - 3078 [(destruct~H~as~(ta,~(ka,~(HPA,...] 0. secs (0.u,0.s) +Chars 3019 - 3023 [red.] 0. secs (0.u,0.s) +Chars 3024 - 3033 [red~in~H.] 0. secs (0.u,0.s) +Chars 3038 - 3078 [destruct~H~as~(ta,~(ka,~(HPA,~...] 0. secs (0.u,0.s) Chars 3083 - 3093 [exists~ta.] 0. secs (0.u,0.s) -Chars 3094 - 3106 [(split;~auto).] 0.001 secs (0.001u,0.s) +Chars 3094 - 3106 [split;~auto.] 0. secs (0.u,0.s) Chars 3111 - 3116 [left.] 0. secs (0.u,0.s) Chars 3118 - 3128 [exists~ka.] 0. secs (0.u,0.s) -Chars 3129 - 3141 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3129 - 3141 [split;~auto.] 0. secs (0.u,0.s) Chars 3144 - 3145 [-] 0. secs (0.u,0.s) -Chars 3146 - 3153 [(intros).] 0. secs (0.u,0.s) -Chars 3158 - 3162 [(red).] 0. secs (0.u,0.s) -Chars 3163 - 3172 [(red~in~H).] 0. secs (0.u,0.s) -Chars 3177 - 3227 [(destruct~H~as~(ta,~(EQ1,~[(k,...] 0. secs (0.u,0.s) +Chars 3146 - 3153 [intros.] 0. secs (0.u,0.s) +Chars 3158 - 3162 [red.] 0. secs (0.u,0.s) +Chars 3163 - 3172 [red~in~H.] 0. secs (0.u,0.s) +Chars 3177 - 3227 [destruct~H~as~(ta,~(EQ1,~[(k,~...] 0. secs (0.u,0.s) Chars 3232 - 3233 [+] 0. secs (0.u,0.s) Chars 3234 - 3244 [exists~ta.] 0. secs (0.u,0.s) Chars 3245 - 3254 [exists~k.] 0. secs (0.u,0.s) @@ -41,27 +41,27 @@ Chars 3255 - 3260 [auto.] 0. secs (0.u,0.s) Chars 3265 - 3266 [+] 0. secs (0.u,0.s) Chars 3267 - 3277 [exists~ta.] 0. secs (0.u,0.s) Chars 3278 - 3307 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 3314 - 3326 [(split;~auto).] 0. secs (0.u,0.s) +Chars 3314 - 3326 [split;~auto.] 0. secs (0.u,0.s) Chars 3333 - 3371 [specialize~(HX~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 3378 - 3402 [(destruct~HX~as~(HA,~H)).] 0. secs (0.u,0.s) -Chars 3409 - 3421 [(split;~auto).] 0. secs (0.u,0.s) -Chars 3422 - 3426 [Qed.] 0.003 secs (0.002u,0.s) -Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0.002 secs (0.001u,0.s) +Chars 3378 - 3402 [destruct~HX~as~(HA,~H).] 0. secs (0.u,0.s) +Chars 3409 - 3421 [split;~auto.] 0. secs (0.u,0.s) +Chars 3422 - 3426 [Qed.] 0.026 secs (0.024u,0.001s) +Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0. secs (0.u,0.s) Chars 3627 - 3748 [Definition~handler_correct~{E}...] 0. secs (0.u,0.s) -Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.037 secs (0.033u,0.004s) +Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.002 secs (0.002u,0.s) Chars 4598 - 4650 [#[global]~Hint~Constructors~in...] 0. secs (0.u,0.s) Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0. secs (0.u,0.s) Chars 4878 - 4884 [Proof.] 0. secs (0.u,0.s) -Chars 4887 - 4918 [(induction~IN;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 4887 - 4918 [induction~IN;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 4919 - 4923 [Qed.] 0. secs (0.u,0.s) Chars 4925 - 5071 [Definition~interp_iforest_~E~F...] 0. secs (0.u,0.s) Chars 5073 - 5119 [#[global]~Hint~Unfold~interp_i...] 0. secs (0.u,0.s) Chars 5122 - 5270 [Definition~interp_iforest_mon~...] 0. secs (0.u,0.s) Chars 5271 - 5277 [Proof.] 0. secs (0.u,0.s) -Chars 5280 - 5333 [refine~{|~body~:=~interp_ifore...] 0.005 secs (0.005u,0.s) -Chars 5336 - 5363 [(intros~sim~sim'~LE~t0~t1~H).] 0. secs (0.u,0.s) -Chars 5364 - 5392 [(unfold~interp_iforest_~in~*).] 0. secs (0.u,0.s) -Chars 5395 - 5430 [(eapply~interp_iforestF_mono;~...] 0. secs (0.u,0.s) +Chars 5280 - 5333 [refine~{|~body~:=~interp_ifore...] 0.003 secs (0.003u,0.s) +Chars 5336 - 5363 [intros~sim~sim'~LE~t0~t1~H.] 0. secs (0.u,0.s) +Chars 5364 - 5392 [unfold~interp_iforest_~in~*.] 0. secs (0.u,0.s) +Chars 5395 - 5430 [eapply~interp_iforestF_mono;~e...] 0. secs (0.u,0.s) Chars 5431 - 5439 [Defined.] 0. secs (0.u,0.s) Chars 5462 - 5650 [Definition~interp_iforest~{E}~...] 0. secs (0.u,0.s) Chars 5653 - 5734 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) @@ -91,885 +91,885 @@ Chars 9714 - 9816 [#[local]~Ltac~~bcbn~:=~~~cbn[e...] 0. secs (0.u,0.s) Chars 9874 - 9906 [Ltac~sinv~H~:=~step~in~H;~inv~H.] 0. secs (0.u,0.s) Chars 9951 - 10094 [Lemma~interp_iforest_ret~:~~~f...] 0. secs (0.u,0.s) Chars 10095 - 10101 [Proof.] 0. secs (0.u,0.s) -Chars 10104 - 10111 [(intros).] 0. secs (0.u,0.s) -Chars 10114 - 10125 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10128 - 10145 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) +Chars 10104 - 10111 [intros.] 0. secs (0.u,0.s) +Chars 10114 - 10125 [repeat~red.] 0. secs (0.u,0.s) +Chars 10128 - 10145 [split;~[~~|~split~].] 0. secs (0.u,0.s) Chars 10148 - 10149 [-] 0. secs (0.u,0.s) -Chars 10150 - 10157 [(intros).] 0. secs (0.u,0.s) -Chars 10158 - 10172 [(split;~intros).] 0. secs (0.u,0.s) +Chars 10150 - 10157 [intros.] 0. secs (0.u,0.s) +Chars 10158 - 10172 [split;~intros.] 0. secs (0.u,0.s) Chars 10177 - 10178 [+] 0. secs (0.u,0.s) Chars 10179 - 10190 [step~in~H0.] 0. secs (0.u,0.s) -Chars 10191 - 10198 [(inv~H0).] 0.003 secs (0.002u,0.s) -Chars 10205 - 10209 [(cbn).] 0. secs (0.u,0.s) -Chars 10210 - 10227 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 10191 - 10198 [inv~H0.] 0.002 secs (0.002u,0.s) +Chars 10205 - 10209 [cbn.] 0. secs (0.u,0.s) +Chars 10210 - 10227 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 10232 - 10233 [+] 0. secs (0.u,0.s) -Chars 10234 - 10256 [(unfold~interp_iforest).] 0. secs (0.u,0.s) +Chars 10234 - 10256 [unfold~interp_iforest.] 0. secs (0.u,0.s) Chars 10257 - 10262 [step.] 0. secs (0.u,0.s) -Chars 10263 - 10283 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 10284 - 10298 [now~rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 10263 - 10283 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 10284 - 10298 [now~rewrite~H.] 0. secs (0.u,0.s) Chars 10301 - 10302 [-] 0. secs (0.u,0.s) -Chars 10303 - 10314 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10319 - 10360 [(intros~t1~t2~eq;~split;~intro...] 0.005 secs (0.004u,0.s) +Chars 10303 - 10314 [repeat~red.] 0. secs (0.u,0.s) +Chars 10319 - 10360 [intros~t1~t2~eq;~split;~intros...] 0.035 secs (0.034u,0.s) Chars 10366 - 10367 [+] 0. secs (0.u,0.s) Chars 10368 - 10373 [step.] 0. secs (0.u,0.s) -Chars 10374 - 10394 [(econstructor;~eauto).] 0.041 secs (0.041u,0.s) -Chars 10395 - 10413 [now~rewrite~<-~eq.] 0.001 secs (0.001u,0.s) +Chars 10374 - 10394 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 10395 - 10413 [now~rewrite~<-~eq.] 0. secs (0.u,0.s) Chars 10419 - 10420 [+] 0. secs (0.u,0.s) Chars 10421 - 10426 [step.] 0. secs (0.u,0.s) -Chars 10427 - 10447 [(econstructor;~eauto).] 0.001 secs (0.001u,0.s) -Chars 10448 - 10463 [now~rewrite~eq.] 0.001 secs (0.001u,0.s) +Chars 10427 - 10447 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 10448 - 10463 [now~rewrite~eq.] 0. secs (0.u,0.s) Chars 10466 - 10467 [-] 0. secs (0.u,0.s) -Chars 10468 - 10479 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10480 - 10487 [(intros).] 0. secs (0.u,0.s) -Chars 10488 - 10512 [(split;~intros;~cbn~in~*).] 0. secs (0.u,0.s) -Chars 10513 - 10530 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) -Chars 10531 - 10545 [now~rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 10547 - 10551 [Qed.] 0.006 secs (0.006u,0.s) -Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) +Chars 10468 - 10479 [repeat~red.] 0. secs (0.u,0.s) +Chars 10480 - 10487 [intros.] 0. secs (0.u,0.s) +Chars 10488 - 10512 [split;~intros;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 10513 - 10530 [now~rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 10531 - 10545 [now~rewrite~H.] 0. secs (0.u,0.s) +Chars 10547 - 10551 [Qed.] 0.004 secs (0.004u,0.s) +Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 10829 - 10835 [Proof.] 0. secs (0.u,0.s) -Chars 10838 - 10849 [(repeat~red).] 0. secs (0.u,0.s) -Chars 10852 - 10859 [(intros).] 0. secs (0.u,0.s) -Chars 10862 - 10876 [(split;~intros).] 0. secs (0.u,0.s) +Chars 10838 - 10849 [repeat~red.] 0. secs (0.u,0.s) +Chars 10852 - 10859 [intros.] 0. secs (0.u,0.s) +Chars 10862 - 10876 [split;~intros.] 0. secs (0.u,0.s) Chars 10879 - 10880 [-] 0. secs (0.u,0.s) -Chars 10881 - 10922 [(inversion~H0;~subst;~econstru...] 0.006 secs (0.005u,0.s) +Chars 10881 - 10922 [inversion~H0;~subst;~econstruc...] 0.004 secs (0.004u,0.s) Chars 10927 - 10928 [+] 0. secs (0.u,0.s) -Chars 10929 - 10946 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 10929 - 10946 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 10951 - 10952 [+] 0. secs (0.u,0.s) Chars 10953 - 10972 [specialize~(HS~t1).] 0. secs (0.u,0.s) Chars 10973 - 10990 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 10995 - 10996 [+] 0. secs (0.u,0.s) -Chars 10997 - 11014 [now~rewrite~<-~H.] 0.001 secs (0.001u,0.s) +Chars 10997 - 11014 [now~rewrite~<-~H.] 0. secs (0.u,0.s) Chars 11018 - 11019 [-] 0. secs (0.u,0.s) -Chars 11020 - 11061 [(inversion~H0;~subst;~econstru...] 0.009 secs (0.009u,0.s) -Chars 11067 - 11086 [all:~now~rewrite~H.] 0.002 secs (0.002u,0.s) -Chars 11088 - 11092 [Qed.] 0.003 secs (0.003u,0.s) +Chars 11020 - 11061 [inversion~H0;~subst;~econstruc...] 0.006 secs (0.006u,0.s) +Chars 11067 - 11086 [all:~now~rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 11088 - 11092 [Qed.] 0.002 secs (0.002u,0.s) Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 11304 - 11310 [Proof.] 0. secs (0.u,0.s) -Chars 11313 - 11324 [(repeat~red).] 0. secs (0.u,0.s) +Chars 11313 - 11324 [repeat~red.] 0. secs (0.u,0.s) Chars 11325 - 11334 [revert~t.] 0. secs (0.u,0.s) Chars 11338 - 11354 [tower~induction.] 0. secs (0.u,0.s) Chars 11358 - 11359 [{] 0. secs (0.u,0.s) Chars 11360 - 11366 [split.] 0. secs (0.u,0.s) -Chars 11367 - 11400 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) +Chars 11367 - 11400 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) Chars 11401 - 11402 [}] 0. secs (0.u,0.s) Chars 11407 - 11413 [split.] 0. secs (0.u,0.s) Chars 11416 - 11417 [-] 0. secs (0.u,0.s) -Chars 11418 - 11428 [(intros~HI).] 0. secs (0.u,0.s) -Chars 11433 - 11462 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 11469 - 11476 [(inv~HI).] 0.011 secs (0.01u,0.s) +Chars 11418 - 11428 [intros~HI.] 0. secs (0.u,0.s) +Chars 11433 - 11462 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 11469 - 11476 [inv~HI.] 0.007 secs (0.007u,0.s) Chars 11483 - 11484 [+] 0. secs (0.u,0.s) -Chars 11485 - 11503 [(rewrite~H0~in~eq2).] 0.025 secs (0.024u,0.s) -Chars 11511 - 11544 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) +Chars 11485 - 11503 [rewrite~H0~in~eq2.] 0.017 secs (0.017u,0.s) +Chars 11511 - 11544 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) Chars 11550 - 11551 [+] 0. secs (0.u,0.s) Chars 11552 - 11565 [econstructor.] 0. secs (0.u,0.s) Chars 11566 - 11581 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 11582 - 11598 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 11582 - 11598 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 11605 - 11606 [+] 0. secs (0.u,0.s) -Chars 11607 - 11627 [(econstructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 11628 - 11646 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 11607 - 11627 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 11628 - 11646 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) Chars 11650 - 11651 [-] 0. secs (0.u,0.s) -Chars 11652 - 11662 [(intros~HI).] 0. secs (0.u,0.s) -Chars 11667 - 11696 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 11703 - 11710 [(inv~HI).] 0.012 secs (0.012u,0.s) +Chars 11652 - 11662 [intros~HI.] 0. secs (0.u,0.s) +Chars 11667 - 11696 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 11703 - 11710 [inv~HI.] 0.008 secs (0.008u,0.s) Chars 11717 - 11718 [+] 0. secs (0.u,0.s) -Chars 11719 - 11740 [(rewrite~<-~H0~in~eq2).] 0.021 secs (0.02u,0.s) -Chars 11748 - 11781 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) +Chars 11719 - 11740 [rewrite~<-~H0~in~eq2.] 0.015 secs (0.015u,0.s) +Chars 11748 - 11781 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) Chars 11787 - 11788 [+] 0. secs (0.u,0.s) Chars 11789 - 11802 [econstructor.] 0. secs (0.u,0.s) -Chars 11803 - 11819 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 11803 - 11819 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 11826 - 11827 [+] 0. secs (0.u,0.s) -Chars 11828 - 11848 [(econstructor;~eauto).] 0.004 secs (0.004u,0.s) -Chars 11849 - 11864 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 11866 - 11870 [Qed.] 0.007 secs (0.007u,0.s) -Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) +Chars 11828 - 11848 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 11849 - 11864 [now~rewrite~H0.] 0. secs (0.u,0.s) +Chars 11866 - 11870 [Qed.] 0.005 secs (0.005u,0.s) +Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 12086 - 12092 [Proof.] 0. secs (0.u,0.s) -Chars 12095 - 12106 [(repeat~red).] 0. secs (0.u,0.s) +Chars 12095 - 12106 [repeat~red.] 0. secs (0.u,0.s) Chars 12107 - 12116 [revert~t.] 0. secs (0.u,0.s) Chars 12120 - 12136 [tower~induction.] 0. secs (0.u,0.s) Chars 12140 - 12141 [{] 0. secs (0.u,0.s) Chars 12142 - 12148 [split.] 0. secs (0.u,0.s) -Chars 12149 - 12182 [all:~(repeat~intro;~apply~H;~a...] 0.001 secs (0.001u,0.s) +Chars 12149 - 12182 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) Chars 12183 - 12184 [}] 0. secs (0.u,0.s) Chars 12189 - 12195 [split.] 0. secs (0.u,0.s) Chars 12198 - 12199 [-] 0. secs (0.u,0.s) -Chars 12200 - 12210 [(intros~HI).] 0. secs (0.u,0.s) -Chars 12215 - 12244 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 12251 - 12258 [(inv~HI).] 0.01 secs (0.01u,0.s) +Chars 12200 - 12210 [intros~HI.] 0. secs (0.u,0.s) +Chars 12215 - 12244 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 12251 - 12258 [inv~HI.] 0.007 secs (0.007u,0.s) Chars 12265 - 12266 [+] 0. secs (0.u,0.s) -Chars 12267 - 12285 [(rewrite~H0~in~eq2).] 0.02 secs (0.019u,0.s) -Chars 12293 - 12326 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) +Chars 12267 - 12285 [rewrite~H0~in~eq2.] 0.013 secs (0.013u,0.s) +Chars 12293 - 12326 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) Chars 12332 - 12333 [+] 0. secs (0.u,0.s) Chars 12334 - 12347 [econstructor.] 0. secs (0.u,0.s) Chars 12348 - 12363 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 12364 - 12380 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 12364 - 12380 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 12387 - 12388 [+] 0. secs (0.u,0.s) -Chars 12389 - 12409 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 12410 - 12428 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) +Chars 12389 - 12409 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) +Chars 12410 - 12428 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) Chars 12432 - 12433 [-] 0. secs (0.u,0.s) -Chars 12434 - 12444 [(intros~HI).] 0. secs (0.u,0.s) -Chars 12450 - 12479 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) -Chars 12486 - 12493 [(inv~HI).] 0.013 secs (0.012u,0.s) +Chars 12434 - 12444 [intros~HI.] 0. secs (0.u,0.s) +Chars 12450 - 12479 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) +Chars 12486 - 12493 [inv~HI.] 0.008 secs (0.008u,0.s) Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12523 [(rewrite~<-~H0~in~eq2).] 0.018 secs (0.018u,0.s) -Chars 12531 - 12564 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) +Chars 12502 - 12523 [rewrite~<-~H0~in~eq2.] 0.012 secs (0.012u,0.s) +Chars 12531 - 12564 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) Chars 12570 - 12571 [+] 0. secs (0.u,0.s) Chars 12572 - 12585 [econstructor.] 0. secs (0.u,0.s) -Chars 12586 - 12602 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 12586 - 12602 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 12609 - 12610 [+] 0. secs (0.u,0.s) -Chars 12611 - 12631 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 12632 - 12647 [now~rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 12649 - 12653 [Qed.] 0.007 secs (0.006u,0.s) +Chars 12611 - 12631 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) +Chars 12632 - 12647 [now~rewrite~H0.] 0. secs (0.u,0.s) +Chars 12649 - 12653 [Qed.] 0.004 secs (0.004u,0.s) Chars 12934 - 13050 [Lemma~inj_pair2~:~~~forall~(U~...] 0. secs (0.u,0.s) Chars 13051 - 13057 [Proof.] 0. secs (0.u,0.s) -Chars 13060 - 13067 [(intros).] 0. secs (0.u,0.s) -Chars 13068 - 13087 [(apply~JMeq.JMeq_eq).] 0. secs (0.u,0.s) -Chars 13090 - 13202 [refine~~match~H~in~(_~=~w)~ret...] 0. secs (0.u,0.s) +Chars 13060 - 13067 [intros.] 0. secs (0.u,0.s) +Chars 13068 - 13087 [apply~JMeq.JMeq_eq.] 0. secs (0.u,0.s) +Chars 13090 - 13202 [refine~~~match~H~in~(_~=~w)~re...] 0. secs (0.u,0.s) Chars 13203 - 13207 [Qed.] 0. secs (0.u,0.s) -Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0.001 secs (0.001u,0.s) +Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 13409 - 13415 [Proof.] 0. secs (0.u,0.s) -Chars 13418 - 13429 [(repeat~red).] 0. secs (0.u,0.s) -Chars 13430 - 13446 [tower~induction.] 0.001 secs (0.001u,0.s) +Chars 13418 - 13429 [repeat~red.] 0. secs (0.u,0.s) +Chars 13430 - 13446 [tower~induction.] 0. secs (0.u,0.s) Chars 13450 - 13451 [{] 0. secs (0.u,0.s) Chars 13452 - 13458 [split.] 0. secs (0.u,0.s) -Chars 13459 - 13492 [all:~(repeat~intro;~apply~H;~a...] 0. secs (0.u,0.s) +Chars 13459 - 13492 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) Chars 13493 - 13494 [}] 0. secs (0.u,0.s) Chars 13499 - 13505 [split.] 0. secs (0.u,0.s) Chars 13508 - 13509 [-] 0. secs (0.u,0.s) -Chars 13510 - 13520 [(intros~HI).] 0. secs (0.u,0.s) -Chars 13525 - 13554 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) +Chars 13510 - 13520 [intros~HI.] 0. secs (0.u,0.s) +Chars 13525 - 13554 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) Chars 13560 - 13571 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13579 - 13595 [(inv~HI;~simpobs).] 0.03 secs (0.029u,0.s) +Chars 13579 - 13595 [inv~HI;~simpobs.] 0.019 secs (0.019u,0.s) Chars 13600 - 13601 [+] 0. secs (0.u,0.s) -Chars 13602 - 13609 [(inv~H0).] 0.01 secs (0.01u,0.s) -Chars 13610 - 13643 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) +Chars 13602 - 13609 [inv~H0.] 0.007 secs (0.007u,0.s) +Chars 13610 - 13643 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) Chars 13649 - 13650 [+] 0. secs (0.u,0.s) -Chars 13651 - 13658 [(inv~H0).] 0.018 secs (0.017u,0.s) +Chars 13651 - 13658 [inv~H0.] 0.01 secs (0.01u,0.s) Chars 13659 - 13672 [econstructor.] 0. secs (0.u,0.s) Chars 13673 - 13689 [symmetry~in~REL.] 0. secs (0.u,0.s) -Chars 13690 - 13706 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 13690 - 13706 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 13712 - 13713 [+] 0. secs (0.u,0.s) -Chars 13714 - 13744 [(eapply~eqitF_inv_VisF_l~in~H0).] 0. secs (0.u,0.s) -Chars 13745 - 13762 [(crunch;~try~easy).] 0.01 secs (0.009u,0.s) -Chars 13770 - 13778 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13779 - 13799 [(econstructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 13800 - 13807 [(intros).] 0. secs (0.u,0.s) +Chars 13714 - 13744 [eapply~eqitF_inv_VisF_l~in~H0.] 0. secs (0.u,0.s) +Chars 13745 - 13762 [crunch;~try~easy.] 0.008 secs (0.008u,0.s) +Chars 13770 - 13778 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13779 - 13799 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 13800 - 13807 [intros.] 0. secs (0.u,0.s) Chars 13815 - 13830 [symmetry~in~H1.] 0. secs (0.u,0.s) -Chars 13831 - 13840 [(eapply~H).] 0. secs (0.u,0.s) -Chars 13848 - 13857 [(apply~H1).] 0. secs (0.u,0.s) +Chars 13831 - 13840 [eapply~H.] 0. secs (0.u,0.s) +Chars 13848 - 13857 [apply~H1.] 0. secs (0.u,0.s) Chars 13858 - 13869 [all:~eauto.] 0. secs (0.u,0.s) Chars 13872 - 13873 [-] 0. secs (0.u,0.s) -Chars 13874 - 13884 [(intros~HI).] 0. secs (0.u,0.s) -Chars 13889 - 13918 [(repeat~red;~repeat~red~in~HI).] 0. secs (0.u,0.s) +Chars 13874 - 13884 [intros~HI.] 0. secs (0.u,0.s) +Chars 13889 - 13918 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) Chars 13923 - 13934 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13942 - 13958 [(inv~HI;~simpobs).] 0.029 secs (0.028u,0.s) +Chars 13942 - 13958 [inv~HI;~simpobs.] 0.02 secs (0.02u,0.s) Chars 13966 - 13967 [+] 0. secs (0.u,0.s) -Chars 13968 - 13975 [(inv~H0).] 0.012 secs (0.012u,0.s) -Chars 13976 - 14009 [(eapply~Interp_iforest_Ret;~ea...] 0. secs (0.u,0.s) +Chars 13968 - 13975 [inv~H0.] 0.008 secs (0.008u,0.s) +Chars 13976 - 14009 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) Chars 14015 - 14016 [+] 0. secs (0.u,0.s) -Chars 14017 - 14024 [(inv~H0).] 0.019 secs (0.018u,0.s) +Chars 14017 - 14024 [inv~H0.] 0.013 secs (0.013u,0.s) Chars 14025 - 14038 [econstructor.] 0. secs (0.u,0.s) -Chars 14039 - 14055 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 14039 - 14055 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 14061 - 14062 [+] 0. secs (0.u,0.s) -Chars 14063 - 14093 [(eapply~eqitF_inv_VisF_r~in~H0).] 0. secs (0.u,0.s) -Chars 14094 - 14111 [(crunch;~try~easy).] 0.011 secs (0.01u,0.s) -Chars 14119 - 14127 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 14128 - 14148 [(econstructor;~eauto).] 0.001 secs (0.001u,0.s) -Chars 14149 - 14156 [(intros).] 0. secs (0.u,0.s) -Chars 14164 - 14173 [(eapply~H).] 0. secs (0.u,0.s) -Chars 14182 - 14191 [(apply~H1).] 0. secs (0.u,0.s) +Chars 14063 - 14093 [eapply~eqitF_inv_VisF_r~in~H0.] 0. secs (0.u,0.s) +Chars 14094 - 14111 [crunch;~try~easy.] 0.007 secs (0.007u,0.s) +Chars 14119 - 14127 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 14128 - 14148 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 14149 - 14156 [intros.] 0. secs (0.u,0.s) +Chars 14164 - 14173 [eapply~H.] 0. secs (0.u,0.s) +Chars 14182 - 14191 [apply~H1.] 0. secs (0.u,0.s) Chars 14192 - 14203 [all:~eauto.] 0. secs (0.u,0.s) -Chars 14204 - 14208 [Qed.] 0.023 secs (0.022u,0.s) -Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0.001 secs (0.001u,0.s) +Chars 14204 - 14208 [Qed.] 0.013 secs (0.013u,0.s) +Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0. secs (0.u,0.s) Chars 14547 - 14553 [Proof.] 0. secs (0.u,0.s) -Chars 14556 - 14563 [(intros).] 0. secs (0.u,0.s) +Chars 14556 - 14563 [intros.] 0. secs (0.u,0.s) Chars 14566 - 14581 [revert~t~t'~H1.] 0. secs (0.u,0.s) Chars 14584 - 14596 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 14599 - 14614 [(intros~t~t'~eq).] 0. secs (0.u,0.s) -Chars 14617 - 14661 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) -Chars 14664 - 14692 [(rewrite~(itree_eta~t)~in~eq).] 0.023 secs (0.022u,0.s) -Chars 14695 - 14725 [(destruct~(observe~t)~eqn:oeqt).] 0.001 secs (0.001u,0.s) +Chars 14599 - 14614 [intros~t~t'~eq.] 0. secs (0.u,0.s) +Chars 14617 - 14661 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) +Chars 14664 - 14692 [rewrite~(itree_eta~t)~in~eq.] 0.014 secs (0.014u,0.s) +Chars 14695 - 14725 [destruct~(observe~t)~eqn:oeqt.] 0. secs (0.u,0.s) Chars 14729 - 14730 [-] 0. secs (0.u,0.s) -Chars 14731 - 14745 [(rewrite~<-~eq).] 0.094 secs (0.09u,0.001s) -Chars 14746 - 14766 [(rewrite~unfold_iter).] 0.088 secs (0.085u,0.001s) +Chars 14731 - 14745 [rewrite~<-~eq.] 0.06 secs (0.059u,0.s) +Chars 14746 - 14766 [rewrite~unfold_iter.] 0.057 secs (0.056u,0.s) Chars 14767 - 14772 [bcbn.] 0. secs (0.u,0.s) -Chars 14778 - 14802 [(rewrite~Eqit.bind_ret_l).] 0.086 secs (0.083u,0.001s) -Chars 14803 - 14814 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14815 - 14823 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14778 - 14802 [rewrite~Eqit.bind_ret_l.] 0.057 secs (0.056u,0.s) +Chars 14803 - 14814 [repeat~red.] 0. secs (0.u,0.s) +Chars 14815 - 14823 [simpobs.] 0. secs (0.u,0.s) Chars 14824 - 14841 [now~econstructor.] 0. secs (0.u,0.s) Chars 14845 - 14846 [-] 0. secs (0.u,0.s) -Chars 14847 - 14861 [(rewrite~<-~eq).] 0.083 secs (0.081u,0.001s) -Chars 14862 - 14882 [(rewrite~unfold_iter).] 0.085 secs (0.082u,0.001s) +Chars 14847 - 14861 [rewrite~<-~eq.] 0.056 secs (0.055u,0.s) +Chars 14862 - 14882 [rewrite~unfold_iter.] 0.056 secs (0.056u,0.s) Chars 14883 - 14888 [bcbn.] 0. secs (0.u,0.s) -Chars 14889 - 14913 [(rewrite~Eqit.bind_ret_l).] 0.08 secs (0.079u,0.s) -Chars 14918 - 14935 [(rewrite~tau_eutt).] 0.08 secs (0.079u,0.s) -Chars 14941 - 14952 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14953 - 14961 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14889 - 14913 [rewrite~Eqit.bind_ret_l.] 0.056 secs (0.056u,0.s) +Chars 14918 - 14935 [rewrite~tau_eutt.] 0.056 secs (0.056u,0.s) +Chars 14941 - 14952 [repeat~red.] 0. secs (0.u,0.s) +Chars 14953 - 14961 [simpobs.] 0. secs (0.u,0.s) Chars 14962 - 14975 [econstructor.] 0. secs (0.u,0.s) Chars 14976 - 14990 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 14995 - 14996 [-] 0. secs (0.u,0.s) -Chars 14997 - 15011 [(rewrite~<-~eq).] 0.079 secs (0.078u,0.s) -Chars 15012 - 15032 [(rewrite~unfold_iter).] 0.084 secs (0.082u,0.s) +Chars 14997 - 15011 [rewrite~<-~eq.] 0.057 secs (0.056u,0.s) +Chars 15012 - 15032 [rewrite~unfold_iter.] 0.057 secs (0.056u,0.s) Chars 15033 - 15038 [bcbn.] 0. secs (0.u,0.s) -Chars 15043 - 15060 [(rewrite~bind_map).] 0.083 secs (0.081u,0.001s) -Chars 15061 - 15081 [(repeat~red;~simpobs).] 0.001 secs (0.001u,0.s) +Chars 15043 - 15060 [rewrite~bind_map.] 0.057 secs (0.057u,0.s) +Chars 15061 - 15081 [repeat~red;~simpobs.] 0.001 secs (0.001u,0.s) Chars 15082 - 15095 [econstructor.] 0. secs (0.u,0.s) Chars 15100 - 15101 [+] 0. secs (0.u,0.s) -Chars 15102 - 15110 [(apply~H).] 0. secs (0.u,0.s) +Chars 15102 - 15110 [apply~H.] 0. secs (0.u,0.s) Chars 15116 - 15117 [+] 0. secs (0.u,0.s) -Chars 15118 - 15124 [ebind.] 0.006 secs (0.006u,0.s) -Chars 15125 - 15139 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 15140 - 15157 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) +Chars 15118 - 15124 [ebind.] 0.004 secs (0.004u,0.s) +Chars 15125 - 15139 [intros;~subst.] 0. secs (0.u,0.s) +Chars 15140 - 15157 [rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) Chars 15158 - 15170 [reflexivity.] 0. secs (0.u,0.s) Chars 15176 - 15177 [+] 0. secs (0.u,0.s) -Chars 15178 - 15185 [(intros).] 0. secs (0.u,0.s) -Chars 15186 - 15203 [(rewrite~tau_eutt).] 0.031 secs (0.03u,0.s) +Chars 15178 - 15185 [intros.] 0. secs (0.u,0.s) +Chars 15186 - 15203 [rewrite~tau_eutt.] 0.022 secs (0.022u,0.s) Chars 15204 - 15218 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 15220 - 15224 [Qed.] 0.015 secs (0.014u,0.s) +Chars 15220 - 15224 [Qed.] 0.012 secs (0.011u,0.s) Chars 15328 - 15564 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) Chars 15565 - 15571 [Proof.] 0. secs (0.u,0.s) -Chars 15574 - 15581 [(intros).] 0. secs (0.u,0.s) -Chars 15584 - 15595 [(repeat~red).] 0. secs (0.u,0.s) -Chars 15598 - 15627 [(intros~t1~t2~eqt~s'~s~eqs~HI).] 0. secs (0.u,0.s) +Chars 15574 - 15581 [intros.] 0. secs (0.u,0.s) +Chars 15584 - 15595 [repeat~red.] 0. secs (0.u,0.s) +Chars 15598 - 15627 [intros~t1~t2~eqt~s'~s~eqs~HI.] 0. secs (0.u,0.s) Chars 15630 - 15636 [subst.] 0. secs (0.u,0.s) Chars 15639 - 15661 [revert~t1~t2~eqt~s~HI.] 0. secs (0.u,0.s) -Chars 15664 - 15683 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 15687 - 15694 [(intros).] 0. secs (0.u,0.s) +Chars 15664 - 15683 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 15687 - 15694 [intros.] 0. secs (0.u,0.s) Chars 15697 - 15708 [step~in~HI.] 0. secs (0.u,0.s) Chars 15712 - 15724 [step~in~eqt.] 0. secs (0.u,0.s) -Chars 15728 - 15744 [(genobs~t1~obst1).] 0. secs (0.u,0.s) -Chars 15747 - 15763 [(genobs~t2~obst2).] 0. secs (0.u,0.s) +Chars 15728 - 15744 [genobs~t1~obst1.] 0. secs (0.u,0.s) +Chars 15747 - 15763 [genobs~t2~obst2.] 0. secs (0.u,0.s) Chars 15766 - 15802 [revert~t1~t2~Heqobst1~Heqobst2...] 0. secs (0.u,0.s) -Chars 15805 - 15827 [(induction~eqt;~intros).] 0.001 secs (0.u,0.s) +Chars 15805 - 15827 [induction~eqt;~intros.] 0. secs (0.u,0.s) Chars 15830 - 15831 [-] 0. secs (0.u,0.s) -Chars 15832 - 15839 [(inv~HI).] 0.006 secs (0.006u,0.s) +Chars 15832 - 15839 [inv~HI.] 0.003 secs (0.003u,0.s) Chars 15840 - 15853 [econstructor.] 0. secs (0.u,0.s) -Chars 15854 - 15875 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 15854 - 15875 [etransitivity;~eauto.] 0. secs (0.u,0.s) Chars 15876 - 15882 [eauto.] 0. secs (0.u,0.s) Chars 15887 - 15888 [-] 0. secs (0.u,0.s) -Chars 15889 - 15896 [(inv~HI).] 0.005 secs (0.005u,0.s) +Chars 15889 - 15896 [inv~HI.] 0.004 secs (0.004u,0.s) Chars 15902 - 15915 [econstructor.] 0. secs (0.u,0.s) -Chars 15916 - 15934 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 15916 - 15934 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 15937 - 15938 [-] 0. secs (0.u,0.s) -Chars 15939 - 15946 [(inv~HI).] 0.007 secs (0.007u,0.s) -Chars 15952 - 15974 [(apply~inj_pair2~in~H1).] 0. secs (0.u,0.s) -Chars 15979 - 16001 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) +Chars 15939 - 15946 [inv~HI.] 0.006 secs (0.006u,0.s) +Chars 15952 - 15974 [apply~inj_pair2~in~H1.] 0. secs (0.u,0.s) +Chars 15979 - 16001 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) Chars 16006 - 16012 [subst.] 0. secs (0.u,0.s) Chars 16017 - 16030 [econstructor.] 0. secs (0.u,0.s) -Chars 16035 - 16045 [(apply~HTA).] 0. secs (0.u,0.s) -Chars 16050 - 16060 [(apply~eq2).] 0. secs (0.u,0.s) -Chars 16065 - 16077 [(intros~a~Ha).] 0. secs (0.u,0.s) +Chars 16035 - 16045 [apply~HTA.] 0. secs (0.u,0.s) +Chars 16050 - 16060 [apply~eq2.] 0. secs (0.u,0.s) +Chars 16065 - 16077 [intros~a~Ha.] 0. secs (0.u,0.s) Chars 16078 - 16097 [specialize~(REL~a).] 0. secs (0.u,0.s) Chars 16098 - 16119 [specialize~(HK~a~Ha).] 0. secs (0.u,0.s) -Chars 16120 - 16131 [(red~in~REL).] 0. secs (0.u,0.s) -Chars 16137 - 16148 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 16149 - 16159 [(apply~REL).] 0. secs (0.u,0.s) -Chars 16160 - 16169 [(apply~HK).] 0. secs (0.u,0.s) +Chars 16120 - 16131 [red~in~REL.] 0. secs (0.u,0.s) +Chars 16137 - 16148 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 16149 - 16159 [apply~REL.] 0. secs (0.u,0.s) +Chars 16160 - 16169 [apply~HK.] 0. secs (0.u,0.s) Chars 16172 - 16173 [-] 0. secs (0.u,0.s) Chars 16174 - 16187 [econstructor.] 0. secs (0.u,0.s) Chars 16188 - 16193 [step.] 0. secs (0.u,0.s) -Chars 16199 - 16212 [(eapply~IHeqt).] 0. secs (0.u,0.s) +Chars 16199 - 16212 [eapply~IHeqt.] 0. secs (0.u,0.s) Chars 16213 - 16225 [reflexivity.] 0. secs (0.u,0.s) Chars 16226 - 16238 [eassumption.] 0. secs (0.u,0.s) Chars 16239 - 16250 [assumption.] 0. secs (0.u,0.s) Chars 16253 - 16254 [-] 0. secs (0.u,0.s) -Chars 16255 - 16262 [(inv~HI).] 0.01 secs (0.01u,0.s) -Chars 16268 - 16281 [(eapply~IHeqt).] 0. secs (0.u,0.s) +Chars 16255 - 16262 [inv~HI.] 0.007 secs (0.007u,0.s) +Chars 16268 - 16281 [eapply~IHeqt.] 0. secs (0.u,0.s) Chars 16282 - 16294 [reflexivity.] 0. secs (0.u,0.s) Chars 16295 - 16307 [reflexivity.] 0. secs (0.u,0.s) Chars 16312 - 16323 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 16325 - 16329 [Qed.] 0.012 secs (0.012u,0.s) +Chars 16325 - 16329 [Qed.] 0.01 secs (0.01u,0.s) Chars 16331 - 16439 [Lemma~Leaf_Vis_sub~:~~~forall~...] 0. secs (0.u,0.s) Chars 16440 - 16446 [Proof.] 0. secs (0.u,0.s) -Chars 16449 - 16456 [(intros).] 0. secs (0.u,0.s) -Chars 16459 - 16474 [(eapply~LeafVis).] 0. secs (0.u,0.s) +Chars 16449 - 16456 [intros.] 0. secs (0.u,0.s) +Chars 16459 - 16474 [eapply~LeafVis.] 0. secs (0.u,0.s) Chars 16475 - 16487 [reflexivity.] 0. secs (0.u,0.s) -Chars 16488 - 16496 [(apply~H).] 0. secs (0.u,0.s) +Chars 16488 - 16496 [apply~H.] 0. secs (0.u,0.s) Chars 16497 - 16501 [Qed.] 0. secs (0.u,0.s) Chars 16503 - 16658 [Lemma~eutt_Leaf_~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 16659 - 16665 [Proof.] 0. secs (0.u,0.s) -Chars 16668 - 16679 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 16682 - 16701 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 16702 - 16709 [(intros).] 0. secs (0.u,0.s) -Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.003 secs (0.003u,0.s) -Chars 16752 - 16774 [(destruct~(observe~ta)).] 0.001 secs (0.001u,0.s) +Chars 16668 - 16679 [intros~E~R.] 0. secs (0.u,0.s) +Chars 16682 - 16701 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 16702 - 16709 [intros.] 0. secs (0.u,0.s) +Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.002 secs (0.002u,0.s) +Chars 16752 - 16774 [destruct~(observe~ta).] 0. secs (0.u,0.s) Chars 16777 - 16778 [-] 0. secs (0.u,0.s) Chars 16779 - 16792 [econstructor.] 0. secs (0.u,0.s) -Chars 16794 - 16806 [(split;~auto).] 0. secs (0.u,0.s) -Chars 16807 - 16816 [(apply~IN).] 0. secs (0.u,0.s) +Chars 16794 - 16806 [split;~auto.] 0. secs (0.u,0.s) +Chars 16807 - 16816 [apply~IN.] 0. secs (0.u,0.s) Chars 16817 - 16834 [now~econstructor.] 0. secs (0.u,0.s) Chars 16837 - 16838 [-] 0. secs (0.u,0.s) Chars 16839 - 16852 [econstructor.] 0. secs (0.u,0.s) -Chars 16853 - 16863 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 16864 - 16871 [(intros).] 0. secs (0.u,0.s) -Chars 16872 - 16882 [(eapply~IN).] 0. secs (0.u,0.s) -Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 16853 - 16863 [apply~CIH.] 0. secs (0.u,0.s) +Chars 16864 - 16871 [intros.] 0. secs (0.u,0.s) +Chars 16872 - 16882 [eapply~IN.] 0. secs (0.u,0.s) +Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) Chars 16907 - 16908 [-] 0. secs (0.u,0.s) Chars 16909 - 16922 [econstructor.] 0. secs (0.u,0.s) -Chars 16923 - 16930 [(intros).] 0. secs (0.u,0.s) -Chars 16936 - 16946 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 16947 - 16954 [(intros).] 0. secs (0.u,0.s) -Chars 16955 - 16965 [(eapply~IN).] 0. secs (0.u,0.s) -Chars 16966 - 16986 [(eapply~Leaf_Vis_sub).] 0. secs (0.u,0.s) -Chars 16987 - 16995 [(apply~H).] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.004 secs (0.004u,0.s) +Chars 16923 - 16930 [intros.] 0. secs (0.u,0.s) +Chars 16936 - 16946 [apply~CIH.] 0. secs (0.u,0.s) +Chars 16947 - 16954 [intros.] 0. secs (0.u,0.s) +Chars 16955 - 16965 [eapply~IN.] 0. secs (0.u,0.s) +Chars 16966 - 16986 [eapply~Leaf_Vis_sub.] 0. secs (0.u,0.s) +Chars 16987 - 16995 [apply~H.] 0. secs (0.u,0.s) +Chars 16996 - 17000 [Qed.] 0.003 secs (0.003u,0.s) Chars 17002 - 17097 [Lemma~eutt_Leaf~:~~~forall~E~R...] 0. secs (0.u,0.s) Chars 17098 - 17104 [Proof.] 0. secs (0.u,0.s) -Chars 17107 - 17114 [(intros).] 0. secs (0.u,0.s) -Chars 17117 - 17134 [(apply~eutt_Leaf_).] 0. secs (0.u,0.s) +Chars 17107 - 17114 [intros.] 0. secs (0.u,0.s) +Chars 17117 - 17134 [apply~eutt_Leaf_.] 0. secs (0.u,0.s) Chars 17135 - 17140 [auto.] 0. secs (0.u,0.s) Chars 17141 - 17145 [Qed.] 0. secs (0.u,0.s) -Chars 17251 - 17467 [Lemma~interp_iforest_trigger~:...] 0.001 secs (0.001u,0.s) +Chars 17251 - 17467 [Lemma~interp_iforest_trigger~:...] 0. secs (0.u,0.s) Chars 17468 - 17474 [Proof.] 0. secs (0.u,0.s) -Chars 17477 - 17484 [(intros).] 0. secs (0.u,0.s) -Chars 17487 - 17491 [(red).] 0. secs (0.u,0.s) -Chars 17494 - 17511 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) +Chars 17477 - 17484 [intros.] 0. secs (0.u,0.s) +Chars 17487 - 17491 [red.] 0. secs (0.u,0.s) +Chars 17494 - 17511 [split;~[~~|~split~].] 0. secs (0.u,0.s) Chars 17514 - 17515 [-] 0. secs (0.u,0.s) -Chars 17516 - 17538 [(intros;~split;~intros).] 0. secs (0.u,0.s) +Chars 17516 - 17538 [intros;~split;~intros.] 0. secs (0.u,0.s) Chars 17543 - 17544 [+] 0. secs (0.u,0.s) -Chars 17545 - 17566 [(unfold~trigger~in~H0).] 0. secs (0.u,0.s) +Chars 17545 - 17566 [unfold~trigger~in~H0.] 0. secs (0.u,0.s) Chars 17567 - 17578 [step~in~H0.] 0. secs (0.u,0.s) -Chars 17586 - 17593 [(inv~H0).] 0.003 secs (0.003u,0.s) -Chars 17601 - 17623 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) -Chars 17624 - 17646 [(apply~inj_pair2~in~H4).] 0. secs (0.u,0.s) +Chars 17586 - 17593 [inv~H0.] 0.003 secs (0.003u,0.s) +Chars 17601 - 17623 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) +Chars 17624 - 17646 [apply~inj_pair2~in~H4.] 0. secs (0.u,0.s) Chars 17653 - 17659 [subst.] 0. secs (0.u,0.s) -Chars 17666 - 17720 [(unfold~subevent,~resum,~ReSum...] 0. secs (0.u,0.s) -Chars 17727 - 17744 [(rewrite~eq2~in~H).] 0.017 secs (0.016u,0.s) -Chars 17751 - 17783 [(assert~(x~<-~ta;;~k2~x~≈~ta)).] 0. secs (0.u,0.s) +Chars 17666 - 17720 [unfold~subevent,~resum,~ReSum_...] 0. secs (0.u,0.s) +Chars 17727 - 17744 [rewrite~eq2~in~H.] 0.012 secs (0.012u,0.s) +Chars 17751 - 17783 [assert~(x~<-~ta;;~k2~x~≈~ta).] 0. secs (0.u,0.s) Chars 17790 - 17791 [{] 0. secs (0.u,0.s) -Chars 17792 - 17824 [(rewrite~<-~(Eqit.bind_ret_r~t...] 0.002 secs (0.002u,0.s) -Chars 17833 - 17902 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 17911 - 17935 [(rewrite~Eqit.bind_ret_r).] 0. secs (0.u,0.s) -Chars 17936 - 17952 [(apply~eutt_Leaf).] 0. secs (0.u,0.s) -Chars 17961 - 17968 [(intros).] 0. secs (0.u,0.s) -Chars 17969 - 17981 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 17792 - 17824 [rewrite~<-~(Eqit.bind_ret_r~ta).] 0.001 secs (0.001u,0.s) +Chars 17833 - 17902 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 17911 - 17935 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) +Chars 17936 - 17952 [apply~eutt_Leaf.] 0. secs (0.u,0.s) +Chars 17961 - 17968 [intros.] 0. secs (0.u,0.s) +Chars 17969 - 17981 [destruct~H0.] 0. secs (0.u,0.s) Chars 17982 - 17988 [subst.] 0. secs (0.u,0.s) Chars 17989 - 18011 [specialize~(HK~u2~H1).] 0. secs (0.u,0.s) Chars 18012 - 18023 [step~in~HK.] 0. secs (0.u,0.s) -Chars 18024 - 18031 [(inv~HK).] 0.001 secs (0.001u,0.s) +Chars 18024 - 18031 [inv~HK.] 0.002 secs (0.002u,0.s) Chars 18038 - 18039 [}] 0. secs (0.u,0.s) -Chars 18046 - 18062 [(rewrite~H0~in~H).] 0.019 secs (0.018u,0.s) +Chars 18046 - 18062 [rewrite~H0~in~H.] 0.012 secs (0.012u,0.s) Chars 18069 - 18099 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18100 - 18125 [(unfold~Eq1_iforest~in~HP).] 0. secs (0.u,0.s) -Chars 18126 - 18153 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) -Chars 18160 - 18170 [(rewrite~P).] 0. secs (0.u,0.s) -Chars 18171 - 18181 [(apply~HTA).] 0. secs (0.u,0.s) +Chars 18100 - 18125 [unfold~Eq1_iforest~in~HP.] 0. secs (0.u,0.s) +Chars 18126 - 18153 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) +Chars 18160 - 18170 [rewrite~P.] 0. secs (0.u,0.s) +Chars 18171 - 18181 [apply~HTA.] 0. secs (0.u,0.s) Chars 18182 - 18191 [symmetry.] 0. secs (0.u,0.s) Chars 18192 - 18203 [assumption.] 0. secs (0.u,0.s) Chars 18208 - 18209 [+] 0. secs (0.u,0.s) -Chars 18210 - 18266 [(unfold~trigger,~subevent,~res...] 0. secs (0.u,0.s) +Chars 18210 - 18266 [unfold~trigger,~subevent,~resu...] 0. secs (0.u,0.s) Chars 18273 - 18278 [step.] 0. secs (0.u,0.s) -Chars 18279 - 18339 [(eapply~Interp_iforest_Vis~wit...] 0. secs (0.u,0.s) +Chars 18279 - 18339 [eapply~Interp_iforest_Vis~with...] 0. secs (0.u,0.s) Chars 18346 - 18347 [*] 0. secs (0.u,0.s) -Chars 18348 - 18357 [(apply~H0).] 0. secs (0.u,0.s) +Chars 18348 - 18357 [apply~H0.] 0. secs (0.u,0.s) Chars 18364 - 18365 [*] 0. secs (0.u,0.s) -Chars 18366 - 18391 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 18392 - 18416 [(rewrite~Eqit.bind_ret_r).] 0.001 secs (0.001u,0.s) +Chars 18366 - 18391 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 18392 - 18416 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) Chars 18417 - 18428 [assumption.] 0. secs (0.u,0.s) Chars 18435 - 18436 [*] 0. secs (0.u,0.s) -Chars 18437 - 18444 [(intros).] 0. secs (0.u,0.s) +Chars 18437 - 18444 [intros.] 0. secs (0.u,0.s) Chars 18445 - 18450 [step.] 0. secs (0.u,0.s) -Chars 18451 - 18471 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 18451 - 18471 [econstructor;~eauto.] 0. secs (0.u,0.s) Chars 18474 - 18475 [-] 0. secs (0.u,0.s) -Chars 18476 - 18480 [(hnf).] 0. secs (0.u,0.s) -Chars 18481 - 18503 [(intros;~split;~intros).] 0. secs (0.u,0.s) -Chars 18508 - 18521 [(rewrite~<-~H).] 0.038 secs (0.038u,0.s) +Chars 18476 - 18480 [hnf.] 0. secs (0.u,0.s) +Chars 18481 - 18503 [intros;~split;~intros.] 0. secs (0.u,0.s) +Chars 18508 - 18521 [rewrite~<-~H.] 0.028 secs (0.028u,0.s) Chars 18522 - 18533 [assumption.] 0. secs (0.u,0.s) -Chars 18538 - 18548 [(rewrite~H).] 0.038 secs (0.038u,0.s) +Chars 18538 - 18548 [rewrite~H.] 0.027 secs (0.026u,0.s) Chars 18549 - 18560 [assumption.] 0. secs (0.u,0.s) Chars 18563 - 18564 [-] 0. secs (0.u,0.s) -Chars 18565 - 18569 [(hnf).] 0. secs (0.u,0.s) -Chars 18574 - 18596 [(intros;~split;~intros).] 0. secs (0.u,0.s) +Chars 18565 - 18569 [hnf.] 0. secs (0.u,0.s) +Chars 18574 - 18596 [intros;~split;~intros.] 0. secs (0.u,0.s) Chars 18601 - 18631 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18632 - 18659 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) -Chars 18664 - 18681 [(rewrite~P;~eauto).] 0. secs (0.u,0.s) +Chars 18632 - 18659 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) +Chars 18664 - 18681 [rewrite~P;~eauto.] 0. secs (0.u,0.s) Chars 18682 - 18691 [symmetry.] 0. secs (0.u,0.s) Chars 18692 - 18703 [assumption.] 0. secs (0.u,0.s) Chars 18708 - 18738 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18739 - 18766 [(destruct~HP~as~(P,~(_,~_))).] 0. secs (0.u,0.s) -Chars 18771 - 18788 [(rewrite~P;~eauto).] 0. secs (0.u,0.s) -Chars 18789 - 18793 [Qed.] 0.011 secs (0.01u,0.s) +Chars 18739 - 18766 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) +Chars 18771 - 18788 [rewrite~P;~eauto.] 0. secs (0.u,0.s) +Chars 18789 - 18793 [Qed.] 0.008 secs (0.008u,0.s) Chars 19261 - 19411 [Lemma~interp_iforest_spin_acce...] 0. secs (0.u,0.s) Chars 19412 - 19418 [Proof.] 0. secs (0.u,0.s) -Chars 19421 - 19428 [(intros).] 0. secs (0.u,0.s) +Chars 19421 - 19428 [intros.] 0. secs (0.u,0.s) Chars 19431 - 19450 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19451 - 19455 [(cbn).] 0. secs (0.u,0.s) +Chars 19451 - 19455 [cbn.] 0. secs (0.u,0.s) Chars 19456 - 19469 [econstructor.] 0. secs (0.u,0.s) -Chars 19470 - 19480 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 19482 - 19486 [Qed.] 0.001 secs (0.001u,0.s) +Chars 19470 - 19480 [apply~CIH.] 0. secs (0.u,0.s) +Chars 19482 - 19486 [Qed.] 0. secs (0.u,0.s) Chars 19527 - 19720 [Lemma~interp_iforest_tau~:~~~f...] 0. secs (0.u,0.s) Chars 19721 - 19727 [Proof.] 0. secs (0.u,0.s) -Chars 19730 - 19737 [(intros).] 0. secs (0.u,0.s) -Chars 19740 - 19757 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) +Chars 19730 - 19737 [intros.] 0. secs (0.u,0.s) +Chars 19740 - 19757 [split;~[~~|~split~].] 0. secs (0.u,0.s) Chars 19760 - 19761 [-] 0. secs (0.u,0.s) -Chars 19762 - 19784 [(intros;~split;~intros).] 0. secs (0.u,0.s) +Chars 19762 - 19784 [intros;~split;~intros.] 0. secs (0.u,0.s) Chars 19789 - 19790 [+] 0. secs (0.u,0.s) -Chars 19791 - 19804 [(rewrite~<-~H).] 0.032 secs (0.032u,0.s) +Chars 19791 - 19804 [rewrite~<-~H.] 0.022 secs (0.022u,0.s) Chars 19811 - 19816 [step.] 0. secs (0.u,0.s) Chars 19817 - 19834 [now~econstructor.] 0. secs (0.u,0.s) Chars 19840 - 19841 [+] 0. secs (0.u,0.s) -Chars 19842 - 19852 [(rewrite~H).] 0.032 secs (0.032u,0.s) +Chars 19842 - 19852 [rewrite~H.] 0.022 secs (0.022u,0.s) Chars 19859 - 19870 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19871 - 19878 [(inv~H0).] 0.001 secs (0.001u,0.s) +Chars 19871 - 19878 [inv~H0.] 0.001 secs (0.001u,0.s) Chars 19881 - 19882 [-] 0. secs (0.u,0.s) Chars 19883 - 19901 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 19904 - 19905 [-] 0. secs (0.u,0.s) Chars 19906 - 19924 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19925 - 19929 [Qed.] 0.003 secs (0.003u,0.s) +Chars 19925 - 19929 [Qed.] 0.002 secs (0.002u,0.s) Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0. secs (0.u,0.s) Chars 20131 - 20137 [Proof.] 0. secs (0.u,0.s) -Chars 20140 - 20147 [(intros).] 0. secs (0.u,0.s) +Chars 20140 - 20147 [intros.] 0. secs (0.u,0.s) Chars 20150 - 20160 [step~in~H.] 0. secs (0.u,0.s) -Chars 20161 - 20167 [(inv~H).] 0.001 secs (0.001u,0.s) -Chars 20171 - 20188 [(exists~r2;~eauto).] 0. secs (0.u,0.s) -Chars 20189 - 20193 [Qed.] 0.002 secs (0.002u,0.s) -Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0.001 secs (0.001u,0.s) +Chars 20161 - 20167 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 20171 - 20188 [exists~r2;~eauto.] 0. secs (0.u,0.s) +Chars 20189 - 20193 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0. secs (0.u,0.s) Chars 20468 - 20474 [Proof.] 0. secs (0.u,0.s) -Chars 20477 - 20484 [(intros).] 0. secs (0.u,0.s) -Chars 20487 - 20494 [(sinv~H).] 0.004 secs (0.004u,0.s) -Chars 20498 - 20520 [(apply~inj_pair2~in~H2).] 0. secs (0.u,0.s) -Chars 20523 - 20545 [(apply~inj_pair2~in~H3).] 0. secs (0.u,0.s) +Chars 20477 - 20484 [intros.] 0. secs (0.u,0.s) +Chars 20487 - 20494 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 20498 - 20520 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) +Chars 20523 - 20545 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) Chars 20548 - 20554 [subst.] 0. secs (0.u,0.s) Chars 20557 - 20567 [exists~ta.] 0. secs (0.u,0.s) Chars 20568 - 20578 [exists~k2.] 0. secs (0.u,0.s) -Chars 20579 - 20591 [(split;~auto).] 0. secs (0.u,0.s) -Chars 20592 - 20596 [Qed.] 0.003 secs (0.003u,0.s) +Chars 20579 - 20591 [split;~auto.] 0. secs (0.u,0.s) +Chars 20592 - 20596 [Qed.] 0.002 secs (0.002u,0.s) Chars 20598 - 20796 [Lemma~interp_iforest_tau_inv~:...] 0. secs (0.u,0.s) Chars 20797 - 20803 [Proof.] 0. secs (0.u,0.s) -Chars 20806 - 20813 [(intros).] 0. secs (0.u,0.s) -Chars 20816 - 20823 [(sinv~H).] 0.001 secs (0.001u,0.s) +Chars 20806 - 20813 [intros.] 0. secs (0.u,0.s) +Chars 20816 - 20823 [sinv~H.] 0.001 secs (0.001u,0.s) Chars 20825 - 20829 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.002 secs (0.002u,0.s) +Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.001 secs (0.001u,0.s) Chars 21130 - 21136 [Proof.] 0. secs (0.u,0.s) -Chars 21139 - 21182 [(intros~E1~E2~F~h1_spec~h2_spe...] 0. secs (0.u,0.s) -Chars 21185 - 21213 [(unfold~handler_correct~in~*).] 0. secs (0.u,0.s) -Chars 21216 - 21227 [(intros~T~e).] 0. secs (0.u,0.s) -Chars 21230 - 21241 [(destruct~e).] 0. secs (0.u,0.s) -Chars 21242 - 21251 [(apply~C1).] 0. secs (0.u,0.s) -Chars 21252 - 21261 [(apply~C2).] 0. secs (0.u,0.s) +Chars 21139 - 21182 [intros~E1~E2~F~h1_spec~h2_spec...] 0. secs (0.u,0.s) +Chars 21185 - 21213 [unfold~handler_correct~in~*.] 0. secs (0.u,0.s) +Chars 21216 - 21227 [intros~T~e.] 0. secs (0.u,0.s) +Chars 21230 - 21241 [destruct~e.] 0. secs (0.u,0.s) +Chars 21242 - 21251 [apply~C1.] 0. secs (0.u,0.s) +Chars 21252 - 21261 [apply~C2.] 0. secs (0.u,0.s) Chars 21262 - 21266 [Qed.] 0. secs (0.u,0.s) Chars 21268 - 21500 [Definition~iforest_compose~{F~...] 0. secs (0.u,0.s) -Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0.001 secs (0.001u,0.s) +Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0. secs (0.u,0.s) Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0. secs (0.u,0.s) Chars 21849 - 21993 [Definition~iter_cont~{I}~{E}~{...] 0. secs (0.u,0.s) Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) Chars 22317 - 22547 [Lemma~eqit_Leaf_bind'~{E}~{R}~...] 0. secs (0.u,0.s) Chars 22548 - 22554 [Proof.] 0. secs (0.u,0.s) -Chars 22557 - 22564 [(intros).] 0. secs (0.u,0.s) -Chars 22565 - 22597 [(eapply~eqit_clo_bind_gen;~eau...] 0.004 secs (0.004u,0.s) -Chars 22598 - 22612 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 22616 - 22626 [(eapply~H0).] 0. secs (0.u,0.s) +Chars 22557 - 22564 [intros.] 0. secs (0.u,0.s) +Chars 22565 - 22597 [eapply~eqit_clo_bind_gen;~eauto.] 0.004 secs (0.004u,0.s) +Chars 22598 - 22612 [intros;~subst.] 0. secs (0.u,0.s) +Chars 22616 - 22626 [eapply~H0.] 0. secs (0.u,0.s) Chars 22627 - 22633 [eauto.] 0. secs (0.u,0.s) -Chars 22635 - 22639 [Qed.] 0.001 secs (0.001u,0.s) +Chars 22635 - 22639 [Qed.] 0. secs (0.u,0.s) Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0. secs (0.u,0.s) Chars 22916 - 22922 [Proof.] 0. secs (0.u,0.s) -Chars 22925 - 22932 [(intros).] 0. secs (0.u,0.s) -Chars 22933 - 22965 [(eapply~eqit_clo_bind_gen;~eau...] 0.002 secs (0.002u,0.s) -Chars 22966 - 22980 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 22984 - 22994 [(eapply~H0).] 0. secs (0.u,0.s) +Chars 22925 - 22932 [intros.] 0. secs (0.u,0.s) +Chars 22933 - 22965 [eapply~eqit_clo_bind_gen;~eauto.] 0.002 secs (0.002u,0.s) +Chars 22966 - 22980 [intros;~subst.] 0. secs (0.u,0.s) +Chars 22984 - 22994 [eapply~H0.] 0. secs (0.u,0.s) Chars 22995 - 23001 [eauto.] 0. secs (0.u,0.s) -Chars 23003 - 23007 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23003 - 23007 [Qed.] 0. secs (0.u,0.s) Chars 23009 - 23094 [Lemma~eutt_ret_vis_abs~:~~~for...] 0. secs (0.u,0.s) Chars 23095 - 23101 [Proof.] 0. secs (0.u,0.s) -Chars 23104 - 23111 [(intros).] 0. secs (0.u,0.s) -Chars 23114 - 23125 [now~sinv~H.] 0.002 secs (0.002u,0.s) -Chars 23127 - 23131 [Qed.] 0.002 secs (0.002u,0.s) +Chars 23104 - 23111 [intros.] 0. secs (0.u,0.s) +Chars 23114 - 23125 [now~sinv~H.] 0.001 secs (0.001u,0.s) +Chars 23127 - 23131 [Qed.] 0.001 secs (0.001u,0.s) Chars 23139 - 23218 [Ltac~simpl_iter~:=~unfold~iter...] 0. secs (0.u,0.s) -Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.004 secs (0.003u,0.s) +Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.006 secs (0.006u,0.s) Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0. secs (0.u,0.s) -Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.002 secs (0.002u,0.s) +Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.001 secs (0.001u,0.s) Chars 23925 - 23931 [Proof.] 0. secs (0.u,0.s) -Chars 23934 - 23941 [(intros).] 0. secs (0.u,0.s) -Chars 23942 - 23965 [(rewrite~iter_dinatural).] 0.005 secs (0.005u,0.s) +Chars 23934 - 23941 [intros.] 0. secs (0.u,0.s) +Chars 23942 - 23965 [rewrite~iter_dinatural.] 0.004 secs (0.003u,0.s) Chars 23966 - 23978 [reflexivity.] 0. secs (0.u,0.s) -Chars 23979 - 23983 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.003 secs (0.003u,0.s) +Chars 23979 - 23983 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.008 secs (0.008u,0.s) Chars 24680 - 24686 [Proof.] 0. secs (0.u,0.s) -Chars 24689 - 24708 [(intros~a~b~m~x0~a1).] 0. secs (0.u,0.s) -Chars 24711 - 24756 [(pose~proof~(iter_succ_dinatur...] 0. secs (0.u,0.s) +Chars 24689 - 24708 [intros~a~b~m~x0~a1.] 0. secs (0.u,0.s) +Chars 24711 - 24756 [pose~proof~(iter_succ_dinatura...] 0. secs (0.u,0.s) Chars 24759 - 24783 [specialize~(H0~(a1,~0)).] 0. secs (0.u,0.s) -Chars 24786 - 24814 [(unfold~f~at~1,~g~at~1~in~H0).] 0. secs (0.u,0.s) -Chars 24817 - 24857 [(unfold~cat~at~1,~Cat_Kleisli~...] 0. secs (0.u,0.s) -Chars 24860 - 24979 [(match~goal~with~~|~H:(?body1~...] 0.002 secs (0.002u,0.s) -Chars 24981 - 25000 [(assert~(s1~≈~s2)).] 0. secs (0.u,0.s) +Chars 24786 - 24814 [unfold~f~at~1,~g~at~1~in~H0.] 0. secs (0.u,0.s) +Chars 24817 - 24857 [unfold~cat~at~1,~Cat_Kleisli~a...] 0. secs (0.u,0.s) +Chars 24860 - 24979 [match~goal~with~|~H:(?body1~≈~...] 0.001 secs (0.001u,0.s) +Chars 24981 - 25000 [assert~(s1~≈~s2).] 0. secs (0.u,0.s) Chars 25001 - 25002 [{] 0. secs (0.u,0.s) Chars 25007 - 25013 [subst.] 0. secs (0.u,0.s) -Chars 25018 - 25171 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) -Chars 25176 - 25205 [(assert~(iter~k1~⩯~iter~k2)).] 0.001 secs (0.001u,0.s) +Chars 25018 - 25171 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) +Chars 25176 - 25205 [assert~(iter~k1~⩯~iter~k2).] 0. secs (0.u,0.s) Chars 25206 - 25207 [{] 0. secs (0.u,0.s) -Chars 25214 - 25243 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 25214 - 25243 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) Chars 25250 - 25256 [subst.] 0. secs (0.u,0.s) -Chars 25257 - 25266 [(do~3~red).] 0. secs (0.u,0.s) -Chars 25267 - 25274 [(intros).] 0. secs (0.u,0.s) -Chars 25281 - 25324 [(destruct~a0;~rewrite~Monad.bi...] 0.004 secs (0.004u,0.s) +Chars 25257 - 25266 [do~3~red.] 0. secs (0.u,0.s) +Chars 25267 - 25274 [intros.] 0. secs (0.u,0.s) +Chars 25281 - 25324 [destruct~a0;~rewrite~Monad.bin...] 0.004 secs (0.003u,0.s) Chars 25331 - 25343 [reflexivity.] 0. secs (0.u,0.s) Chars 25348 - 25349 [}] 0. secs (0.u,0.s) -Chars 25354 - 25368 [(do~3~red~in~H).] 0. secs (0.u,0.s) -Chars 25373 - 25381 [(apply~H).] 0. secs (0.u,0.s) +Chars 25354 - 25368 [do~3~red~in~H.] 0. secs (0.u,0.s) +Chars 25373 - 25381 [apply~H.] 0. secs (0.u,0.s) Chars 25384 - 25385 [}] 0. secs (0.u,0.s) -Chars 25388 - 25401 [(rewrite~<-~H).] 0.002 secs (0.002u,0.s) +Chars 25388 - 25401 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 25402 - 25408 [subst.] 0.001 secs (0.001u,0.s) Chars 25409 - 25417 [clear~H.] 0. secs (0.u,0.s) -Chars 25418 - 25429 [(rewrite~H0).] 0.003 secs (0.003u,0.s) -Chars 25432 - 25444 [(unfold~f,~g).] 0. secs (0.u,0.s) -Chars 25447 - 25471 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 25472 - 25497 [(rewrite~Monad.bind_ret_l).] 0.004 secs (0.004u,0.s) -Chars 25500 - 25504 [(cbn).] 0. secs (0.u,0.s) -Chars 25507 - 25615 [(match~goal~with~~|~|-~iter~?b...] 0.002 secs (0.002u,0.s) -Chars 25618 - 25647 [(assert~(iter~i1~⩯~iter~i2)).] 0.001 secs (0.001u,0.s) +Chars 25418 - 25429 [rewrite~H0.] 0.002 secs (0.002u,0.s) +Chars 25432 - 25444 [unfold~f,~g.] 0. secs (0.u,0.s) +Chars 25447 - 25471 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 25472 - 25497 [rewrite~Monad.bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 25500 - 25504 [cbn.] 0. secs (0.u,0.s) +Chars 25507 - 25615 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) +Chars 25618 - 25647 [assert~(iter~i1~⩯~iter~i2).] 0. secs (0.u,0.s) Chars 25648 - 25649 [{] 0. secs (0.u,0.s) -Chars 25654 - 25683 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) +Chars 25654 - 25683 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) Chars 25688 - 25694 [subst.] 0. secs (0.u,0.s) -Chars 25699 - 25708 [(do~3~red).] 0. secs (0.u,0.s) -Chars 25709 - 25716 [(intros).] 0. secs (0.u,0.s) -Chars 25721 - 25733 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 25734 - 25757 [(rewrite~Eqit.bind_bind).] 0.003 secs (0.003u,0.s) -Chars 25762 - 25784 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 25699 - 25708 [do~3~red.] 0. secs (0.u,0.s) +Chars 25709 - 25716 [intros.] 0. secs (0.u,0.s) +Chars 25721 - 25733 [destruct~a0.] 0. secs (0.u,0.s) +Chars 25734 - 25757 [rewrite~Eqit.bind_bind.] 0.002 secs (0.002u,0.s) +Chars 25762 - 25784 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) Chars 25785 - 25797 [reflexivity.] 0. secs (0.u,0.s) -Chars 25802 - 25809 [(intros).] 0. secs (0.u,0.s) -Chars 25810 - 25820 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 25821 - 25880 [(destruct~u2;~rewrite~Eqit.bin...] 0.008 secs (0.007u,0.s) +Chars 25802 - 25809 [intros.] 0. secs (0.u,0.s) +Chars 25810 - 25820 [rewrite~H.] 0. secs (0.u,0.s) +Chars 25821 - 25880 [destruct~u2;~rewrite~Eqit.bind...] 0.004 secs (0.004u,0.s) Chars 25883 - 25884 [}] 0. secs (0.u,0.s) -Chars 25887 - 25901 [(do~3~red~in~H).] 0. secs (0.u,0.s) -Chars 25904 - 25912 [(apply~H).] 0. secs (0.u,0.s) -Chars 25913 - 25917 [Qed.] 0.013 secs (0.013u,0.s) -Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0.001 secs (0.001u,0.s) +Chars 25887 - 25901 [do~3~red~in~H.] 0. secs (0.u,0.s) +Chars 25904 - 25912 [apply~H.] 0. secs (0.u,0.s) +Chars 25913 - 25917 [Qed.] 0.01 secs (0.01u,0.s) +Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0. secs (0.u,0.s) Chars 26139 - 26240 [Lemma~Eq1_iforest'_Eq1_iforest...] 0. secs (0.u,0.s) Chars 26241 - 26247 [Proof.] 0. secs (0.u,0.s) -Chars 26250 - 26257 [(intros).] 0. secs (0.u,0.s) -Chars 26260 - 26264 [(red).] 0. secs (0.u,0.s) -Chars 26267 - 26276 [(red~in~H).] 0. secs (0.u,0.s) -Chars 26279 - 26312 [(destruct~H~as~(HXY,~(EPA,~EPA...] 0. secs (0.u,0.s) +Chars 26250 - 26257 [intros.] 0. secs (0.u,0.s) +Chars 26260 - 26264 [red.] 0. secs (0.u,0.s) +Chars 26267 - 26276 [red~in~H.] 0. secs (0.u,0.s) +Chars 26279 - 26312 [destruct~H~as~(HXY,~(EPA,~EPA')).] 0. secs (0.u,0.s) Chars 26315 - 26321 [split.] 0. secs (0.u,0.s) -Chars 26324 - 26331 [(intros).] 0. secs (0.u,0.s) +Chars 26324 - 26331 [intros.] 0. secs (0.u,0.s) Chars 26334 - 26343 [exists~x.] 0. secs (0.u,0.s) -Chars 26344 - 26366 [(split;~[~reflexivity~|~~]).] 0. secs (0.u,0.s) +Chars 26344 - 26366 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) Chars 26367 - 26388 [specialize~(HXY~x~x).] 0. secs (0.u,0.s) -Chars 26390 - 26400 [(apply~HXY).] 0. secs (0.u,0.s) +Chars 26390 - 26400 [apply~HXY.] 0. secs (0.u,0.s) Chars 26401 - 26413 [reflexivity.] 0. secs (0.u,0.s) Chars 26414 - 26425 [assumption.] 0. secs (0.u,0.s) -Chars 26428 - 26445 [(split;~try~tauto).] 0.001 secs (0.001u,0.s) -Chars 26448 - 26455 [(intros).] 0. secs (0.u,0.s) +Chars 26428 - 26445 [split;~try~tauto.] 0. secs (0.u,0.s) +Chars 26448 - 26455 [intros.] 0. secs (0.u,0.s) Chars 26458 - 26467 [exists~y.] 0. secs (0.u,0.s) -Chars 26468 - 26490 [(split;~[~reflexivity~|~~]).] 0. secs (0.u,0.s) +Chars 26468 - 26490 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) Chars 26491 - 26512 [specialize~(HXY~y~y).] 0. secs (0.u,0.s) -Chars 26514 - 26524 [(apply~HXY).] 0. secs (0.u,0.s) +Chars 26514 - 26524 [apply~HXY.] 0. secs (0.u,0.s) Chars 26525 - 26537 [reflexivity.] 0. secs (0.u,0.s) Chars 26538 - 26549 [assumption.] 0. secs (0.u,0.s) -Chars 26550 - 26554 [Qed.] 0.001 secs (0.001u,0.s) +Chars 26550 - 26554 [Qed.] 0. secs (0.u,0.s) Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 26740 - 26746 [Proof.] 0. secs (0.u,0.s) -Chars 26749 - 26756 [(intros).] 0. secs (0.u,0.s) -Chars 26759 - 26776 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) +Chars 26749 - 26756 [intros.] 0. secs (0.u,0.s) +Chars 26759 - 26776 [split;~[~~|~split~].] 0. secs (0.u,0.s) Chars 26779 - 26780 [-] 0. secs (0.u,0.s) -Chars 26781 - 26817 [(intros~t~t'~eq;~split;~intros...] 0. secs (0.u,0.s) +Chars 26781 - 26817 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) Chars 26822 - 26823 [*] 0. secs (0.u,0.s) -Chars 26824 - 26833 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 26840 - 26860 [(repeat~red~in~eqtt').] 0. secs (0.u,0.s) -Chars 26867 - 26911 [(destruct~eqtt'~as~(ta,~(k,~(E...] 0. secs (0.u,0.s) +Chars 26824 - 26833 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 26840 - 26860 [repeat~red~in~eqtt'.] 0. secs (0.u,0.s) +Chars 26867 - 26911 [destruct~eqtt'~as~(ta,~(k,~(EQ...] 0. secs (0.u,0.s) Chars 26916 - 26917 [+] 0. secs (0.u,0.s) -Chars 26918 - 26950 [(unfold~bind,~Monad_itree~in~E...] 0. secs (0.u,0.s) -Chars 26951 - 26991 [(rewrite~EQ1,~Eqit.bind_ret_l,...] 0.044 secs (0.043u,0.s) -Chars 26998 - 27031 [(eapply~H;~[~apply~EQ2~|~apply...] 0. secs (0.u,0.s) -Chars 27038 - 27050 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) -Chars 27051 - 27070 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 26918 - 26950 [unfold~bind,~Monad_itree~in~EQ2.] 0. secs (0.u,0.s) +Chars 26951 - 26991 [rewrite~EQ1,~Eqit.bind_ret_l,~...] 0.032 secs (0.032u,0.s) +Chars 26998 - 27031 [eapply~H;~[~apply~EQ2~|~apply~...] 0. secs (0.u,0.s) +Chars 27038 - 27050 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) +Chars 27051 - 27070 [constructor;~eauto.] 0. secs (0.u,0.s) Chars 27074 - 27075 [*] 0. secs (0.u,0.s) -Chars 27076 - 27080 [(cbn).] 0. secs (0.u,0.s) -Chars 27086 - 27145 [(exists~(Ret~x),(fun~_~=>~t);~...] 0. secs (0.u,0.s) +Chars 27076 - 27080 [cbn.] 0. secs (0.u,0.s) +Chars 27086 - 27145 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) Chars 27152 - 27153 [+] 0. secs (0.u,0.s) -Chars 27154 - 27179 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 27180 - 27217 [(rewrite~Eqit.bind_ret_l;~refl...] 0.001 secs (0.001u,0.s) +Chars 27154 - 27179 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 27180 - 27217 [rewrite~Eqit.bind_ret_l;~refle...] 0. secs (0.u,0.s) Chars 27224 - 27225 [+] 0. secs (0.u,0.s) -Chars 27226 - 27233 [(intros).] 0. secs (0.u,0.s) -Chars 27234 - 27266 [(apply~Leaf_Ret_inv~in~H0;~sub...] 0. secs (0.u,0.s) -Chars 27267 - 27289 [(revert~eqtt';~apply~H).] 0. secs (0.u,0.s) +Chars 27226 - 27233 [intros.] 0. secs (0.u,0.s) +Chars 27234 - 27266 [apply~Leaf_Ret_inv~in~H0;~subst.] 0. secs (0.u,0.s) +Chars 27267 - 27289 [revert~eqtt';~apply~H.] 0. secs (0.u,0.s) Chars 27290 - 27295 [auto.] 0. secs (0.u,0.s) Chars 27298 - 27299 [-] 0. secs (0.u,0.s) -Chars 27300 - 27338 [(intros~t~t'~EQ;~cbn;~split;~i...] 0. secs (0.u,0.s) +Chars 27300 - 27338 [intros~t~t'~EQ;~cbn;~split;~in...] 0. secs (0.u,0.s) Chars 27343 - 27344 [*] 0. secs (0.u,0.s) -Chars 27345 - 27386 [(destruct~HX~as~(ta,~(k,~(EQ1,...] 0. secs (0.u,0.s) -Chars 27393 - 27453 [(exists~(Ret~x),(fun~_~=>~t);~...] 0. secs (0.u,0.s) +Chars 27345 - 27386 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) +Chars 27393 - 27453 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) Chars 27460 - 27462 [--] 0. secs (0.u,0.s) -Chars 27463 - 27488 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 27489 - 27513 [(rewrite~Eqit.bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 27463 - 27488 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 27489 - 27513 [rewrite~Eqit.bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 27514 - 27523 [symmetry.] 0. secs (0.u,0.s) Chars 27524 - 27535 [assumption.] 0. secs (0.u,0.s) Chars 27542 - 27544 [--] 0. secs (0.u,0.s) -Chars 27545 - 27558 [(intros~?~RET).] 0. secs (0.u,0.s) -Chars 27559 - 27592 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) -Chars 27593 - 27610 [(rewrite~EQ2,~EQ1).] 0.01 secs (0.01u,0.s) -Chars 27620 - 27624 [(cbn).] 0. secs (0.u,0.s) -Chars 27625 - 27644 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) -Chars 27645 - 27654 [(apply~KA).] 0. secs (0.u,0.s) -Chars 27655 - 27667 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) -Chars 27668 - 27686 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 27545 - 27558 [intros~?~RET.] 0. secs (0.u,0.s) +Chars 27559 - 27592 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) +Chars 27593 - 27610 [rewrite~EQ2,~EQ1.] 0.006 secs (0.006u,0.s) +Chars 27620 - 27624 [cbn.] 0. secs (0.u,0.s) +Chars 27625 - 27644 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 27645 - 27654 [apply~KA.] 0. secs (0.u,0.s) +Chars 27655 - 27667 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) +Chars 27668 - 27686 [constructor;~auto.] 0. secs (0.u,0.s) Chars 27691 - 27692 [*] 0. secs (0.u,0.s) -Chars 27693 - 27734 [(destruct~HX~as~(ta,~(k,~(EQ1,...] 0. secs (0.u,0.s) -Chars 27741 - 27801 [(exists~(Ret~x),(fun~_~=>~t);~...] 0. secs (0.u,0.s) +Chars 27693 - 27734 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) +Chars 27741 - 27801 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) Chars 27808 - 27810 [--] 0. secs (0.u,0.s) -Chars 27811 - 27836 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 27837 - 27861 [(rewrite~Eqit.bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 27811 - 27836 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 27837 - 27861 [rewrite~Eqit.bind_ret_l.] 0. secs (0.u,0.s) Chars 27862 - 27874 [reflexivity.] 0. secs (0.u,0.s) Chars 27881 - 27883 [--] 0. secs (0.u,0.s) -Chars 27884 - 27897 [(intros~?~RET).] 0. secs (0.u,0.s) -Chars 27898 - 27931 [(apply~Leaf_Ret_inv~in~RET;~su...] 0. secs (0.u,0.s) -Chars 27932 - 27953 [(rewrite~EQ,~EQ2,~EQ1).] 0.015 secs (0.014u,0.s) -Chars 27963 - 27967 [(cbn).] 0. secs (0.u,0.s) -Chars 27968 - 27987 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) -Chars 27988 - 27997 [(apply~KA).] 0. secs (0.u,0.s) -Chars 27998 - 28010 [(rewrite~EQ1).] 0.002 secs (0.002u,0.s) -Chars 28011 - 28029 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 27884 - 27897 [intros~?~RET.] 0. secs (0.u,0.s) +Chars 27898 - 27931 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) +Chars 27932 - 27953 [rewrite~EQ,~EQ2,~EQ1.] 0.009 secs (0.009u,0.s) +Chars 27963 - 27967 [cbn.] 0. secs (0.u,0.s) +Chars 27968 - 27987 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 27988 - 27997 [apply~KA.] 0. secs (0.u,0.s) +Chars 27998 - 28010 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) +Chars 28011 - 28029 [constructor;~auto.] 0. secs (0.u,0.s) Chars 28032 - 28033 [-] 0. secs (0.u,0.s) Chars 28034 - 28045 [assumption.] 0. secs (0.u,0.s) -Chars 28046 - 28050 [Qed.] 0.005 secs (0.005u,0.s) +Chars 28046 - 28050 [Qed.] 0.004 secs (0.004u,0.s) Chars 28052 - 28177 [#[global]~Instance~bind_ifores...] 0. secs (0.u,0.s) Chars 28178 - 28184 [Proof.] 0. secs (0.u,0.s) -Chars 28187 - 28255 [(repeat~red;~intros~PA1~PA2~EQ...] 0. secs (0.u,0.s) +Chars 28187 - 28255 [repeat~red;~intros~PA1~PA2~EQP...] 0. secs (0.u,0.s) Chars 28258 - 28259 [-] 0. secs (0.u,0.s) -Chars 28260 - 28298 [(destruct~H~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) -Chars 28303 - 28307 [(red).] 0. secs (0.u,0.s) +Chars 28260 - 28298 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) +Chars 28303 - 28307 [red.] 0. secs (0.u,0.s) Chars 28312 - 28325 [exists~ta,k.] 0. secs (0.u,0.s) Chars 28326 - 28332 [split.] 0. secs (0.u,0.s) Chars 28337 - 28338 [+] 0. secs (0.u,0.s) -Chars 28339 - 28352 [(destruct~EQP).] 0. secs (0.u,0.s) -Chars 28353 - 28369 [(apply~(H~ta~ta)).] 0. secs (0.u,0.s) +Chars 28339 - 28352 [destruct~EQP.] 0. secs (0.u,0.s) +Chars 28353 - 28369 [apply~(H~ta~ta).] 0. secs (0.u,0.s) Chars 28370 - 28382 [reflexivity.] 0. secs (0.u,0.s) Chars 28383 - 28394 [assumption.] 0. secs (0.u,0.s) Chars 28399 - 28400 [+] 0. secs (0.u,0.s) Chars 28401 - 28407 [split.] 0. secs (0.u,0.s) -Chars 28408 - 28423 [(rewrite~<-~EQt).] 0.001 secs (0.001u,0.s) +Chars 28408 - 28423 [rewrite~<-~EQt.] 0. secs (0.u,0.s) Chars 28424 - 28435 [assumption.] 0. secs (0.u,0.s) -Chars 28436 - 28443 [(intros).] 0. secs (0.u,0.s) -Chars 28450 - 28468 [(repeat~red~in~EQK).] 0. secs (0.u,0.s) +Chars 28436 - 28443 [intros.] 0. secs (0.u,0.s) +Chars 28450 - 28468 [repeat~red~in~EQK.] 0. secs (0.u,0.s) Chars 28470 - 28499 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) -Chars 28500 - 28513 [(destruct~EQK).] 0. secs (0.u,0.s) -Chars 28520 - 28534 [(rewrite~<-~H0).] 0. secs (0.u,0.s) -Chars 28535 - 28544 [(apply~HK).] 0. secs (0.u,0.s) +Chars 28500 - 28513 [destruct~EQK.] 0. secs (0.u,0.s) +Chars 28520 - 28534 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 28535 - 28544 [apply~HK.] 0. secs (0.u,0.s) Chars 28545 - 28556 [assumption.] 0. secs (0.u,0.s) Chars 28557 - 28569 [reflexivity.] 0. secs (0.u,0.s) Chars 28571 - 28572 [-] 0. secs (0.u,0.s) -Chars 28574 - 28612 [(destruct~H~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) -Chars 28617 - 28621 [(red).] 0. secs (0.u,0.s) +Chars 28574 - 28612 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) +Chars 28617 - 28621 [red.] 0. secs (0.u,0.s) Chars 28626 - 28639 [exists~ta,k.] 0. secs (0.u,0.s) Chars 28640 - 28646 [split.] 0. secs (0.u,0.s) Chars 28651 - 28652 [+] 0. secs (0.u,0.s) -Chars 28653 - 28666 [(destruct~EQP).] 0. secs (0.u,0.s) -Chars 28667 - 28683 [(apply~(H~ta~ta)).] 0. secs (0.u,0.s) +Chars 28653 - 28666 [destruct~EQP.] 0. secs (0.u,0.s) +Chars 28667 - 28683 [apply~(H~ta~ta).] 0. secs (0.u,0.s) Chars 28684 - 28696 [reflexivity.] 0. secs (0.u,0.s) Chars 28697 - 28708 [assumption.] 0. secs (0.u,0.s) Chars 28713 - 28714 [+] 0. secs (0.u,0.s) Chars 28715 - 28721 [split.] 0. secs (0.u,0.s) -Chars 28722 - 28734 [(rewrite~EQt).] 0. secs (0.u,0.s) +Chars 28722 - 28734 [rewrite~EQt.] 0.001 secs (0.001u,0.s) Chars 28735 - 28746 [assumption.] 0. secs (0.u,0.s) -Chars 28747 - 28754 [(intros).] 0. secs (0.u,0.s) -Chars 28761 - 28779 [(repeat~red~in~EQK).] 0. secs (0.u,0.s) +Chars 28747 - 28754 [intros.] 0. secs (0.u,0.s) +Chars 28761 - 28779 [repeat~red~in~EQK.] 0. secs (0.u,0.s) Chars 28781 - 28810 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) -Chars 28811 - 28824 [(destruct~EQK).] 0. secs (0.u,0.s) -Chars 28831 - 28842 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 28843 - 28852 [(apply~HK).] 0. secs (0.u,0.s) +Chars 28811 - 28824 [destruct~EQK.] 0. secs (0.u,0.s) +Chars 28831 - 28842 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 28843 - 28852 [apply~HK.] 0. secs (0.u,0.s) Chars 28853 - 28864 [assumption.] 0. secs (0.u,0.s) Chars 28865 - 28877 [reflexivity.] 0. secs (0.u,0.s) -Chars 28878 - 28882 [Qed.] 0.003 secs (0.003u,0.s) +Chars 28878 - 28882 [Qed.] 0.002 secs (0.002u,0.s) Chars 28884 - 29021 [#[global]~Instance~bind_Propt_...] 0. secs (0.u,0.s) Chars 29022 - 29028 [Proof.] 0. secs (0.u,0.s) -Chars 29031 - 29042 [(repeat~red).] 0. secs (0.u,0.s) -Chars 29045 - 29052 [(intros).] 0. secs (0.u,0.s) -Chars 29055 - 29072 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 29075 - 29114 [(destruct~H0~as~(ta,~(k,~(HA,~...] 0. secs (0.u,0.s) +Chars 29031 - 29042 [repeat~red.] 0. secs (0.u,0.s) +Chars 29045 - 29052 [intros.] 0. secs (0.u,0.s) +Chars 29055 - 29072 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 29075 - 29114 [destruct~H0~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) Chars 29117 - 29130 [exists~ta,k.] 0. secs (0.u,0.s) -Chars 29131 - 29143 [(split;~auto).] 0.001 secs (0.001u,0.s) +Chars 29131 - 29143 [split;~auto.] 0. secs (0.u,0.s) Chars 29144 - 29150 [split.] 0. secs (0.u,0.s) -Chars 29151 - 29167 [(rewrite~H;~auto).] 0.001 secs (0.001u,0.s) +Chars 29151 - 29167 [rewrite~H;~auto.] 0. secs (0.u,0.s) Chars 29168 - 29179 [assumption.] 0. secs (0.u,0.s) Chars 29180 - 29184 [Qed.] 0.001 secs (0.001u,0.s) Chars 29186 - 29259 [#[local]~Notation~agrees_itree...] 0. secs (0.u,0.s) Chars 29261 - 29506 [Definition~bind_stronger~{E}~{...] 0.001 secs (0.001u,0.s) Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0. secs (0.u,0.s) Chars 29681 - 29687 [Proof.] 0. secs (0.u,0.s) -Chars 29690 - 29704 [(split;~intros).] 0. secs (0.u,0.s) +Chars 29690 - 29704 [split;~intros.] 0. secs (0.u,0.s) Chars 29707 - 29708 [-] 0. secs (0.u,0.s) -Chars 29709 - 29713 [(cbn).] 0. secs (0.u,0.s) -Chars 29714 - 29718 [(red).] 0. secs (0.u,0.s) -Chars 29723 - 29740 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 29745 - 29769 [(eapply~eqit_Leaf_bind'').] 0. secs (0.u,0.s) +Chars 29709 - 29713 [cbn.] 0. secs (0.u,0.s) +Chars 29714 - 29718 [red.] 0. secs (0.u,0.s) +Chars 29723 - 29740 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 29745 - 29769 [eapply~eqit_Leaf_bind''.] 0. secs (0.u,0.s) Chars 29774 - 29775 [+] 0. secs (0.u,0.s) Chars 29776 - 29788 [reflexivity.] 0. secs (0.u,0.s) Chars 29793 - 29794 [+] 0. secs (0.u,0.s) -Chars 29795 - 29802 [(intros).] 0. secs (0.u,0.s) -Chars 29803 - 29818 [(apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 29819 - 29827 [(apply~H).] 0. secs (0.u,0.s) +Chars 29795 - 29802 [intros.] 0. secs (0.u,0.s) +Chars 29803 - 29818 [apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 29819 - 29827 [apply~H.] 0. secs (0.u,0.s) Chars 29828 - 29839 [assumption.] 0. secs (0.u,0.s) Chars 29842 - 29843 [-] 0. secs (0.u,0.s) Chars 29844 - 29853 [revert~H.] 0. secs (0.u,0.s) -Chars 29858 - 29920 [(induction~H0;~cbn;~unfold~ITr...] 0.092 secs (0.09u,0.001s) +Chars 29858 - 29920 [induction~H0;~cbn;~unfold~ITre...] 0.062 secs (0.061u,0.s) Chars 29925 - 29926 [+] 0. secs (0.u,0.s) -Chars 29927 - 29963 [(intros~H';~apply~eqit_inv_Ret...] 0. secs (0.u,0.s) +Chars 29927 - 29963 [intros~H';~apply~eqit_inv_Ret~...] 0. secs (0.u,0.s) Chars 29964 - 29969 [auto.] 0. secs (0.u,0.s) Chars 29974 - 29975 [+] 0. secs (0.u,0.s) -Chars 29976 - 30009 [(rewrite~2!tau_eutt;~apply~IHL...] 0.026 secs (0.026u,0.s) +Chars 29976 - 30009 [rewrite~2!tau_eutt;~apply~IHLeaf.] 0.018 secs (0.018u,0.s) Chars 30014 - 30015 [+] 0. secs (0.u,0.s) -Chars 30016 - 30053 [(intros~H';~eapply~eqit_inv_Vi...] 0. secs (0.u,0.s) +Chars 30016 - 30053 [intros~H';~eapply~eqit_inv_Vis...] 0. secs (0.u,0.s) Chars 30054 - 30060 [eauto.] 0. secs (0.u,0.s) -Chars 30061 - 30065 [Qed.] 0.006 secs (0.006u,0.s) +Chars 30061 - 30065 [Qed.] 0.005 secs (0.005u,0.s) Chars 30067 - 30279 [Lemma~distinguish_bind~{E}~{A}...] 0. secs (0.u,0.s) Chars 30280 - 30286 [Proof.] 0. secs (0.u,0.s) -Chars 30289 - 30339 [(intros~HI;~eapply~eqit_bind_L...] 0. secs (0.u,0.s) +Chars 30289 - 30339 [intros~HI;~eapply~eqit_bind_Le...] 0. secs (0.u,0.s) Chars 30340 - 30344 [Qed.] 0. secs (0.u,0.s) Chars 30346 - 30502 [Lemma~not_Leaf~{E}~{A}~{B}~:~~...] 0. secs (0.u,0.s) Chars 30503 - 30509 [Proof.] 0. secs (0.u,0.s) -Chars 30512 - 30541 [(intros~[b]~ta~[tb~HK]~a~HRet).] 0. secs (0.u,0.s) -Chars 30542 - 30585 [(revert~tb~HK;~induction~HRet;...] 0. secs (0.u,0.s) +Chars 30512 - 30541 [intros~[b]~ta~[tb~HK]~a~HRet.] 0. secs (0.u,0.s) +Chars 30542 - 30585 [revert~tb~HK;~induction~HRet;~...] 0. secs (0.u,0.s) Chars 30588 - 30589 [-] 0. secs (0.u,0.s) -Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.01 secs (0.01u,0.s) -Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.002 secs (0.002u,0.s) -Chars 30652 - 30690 [(generalize~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) -Chars 30691 - 30721 [(rewrite~(HK~(fun~_~=>~ret~b))).] 0.011 secs (0.011u,0.s) -Chars 30726 - 30750 [(apply~eutt_Ret_spin_abs).] 0. secs (0.u,0.s) +Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.008u,0.s) +Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.001 secs (0.001u,0.s) +Chars 30652 - 30690 [generalize~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) +Chars 30691 - 30721 [rewrite~(HK~(fun~_~=>~ret~b)).] 0.008 secs (0.008u,0.s) +Chars 30726 - 30750 [apply~eutt_Ret_spin_abs.] 0. secs (0.u,0.s) Chars 30753 - 30754 [-] 0. secs (0.u,0.s) -Chars 30755 - 30774 [(eapply~(IHHRet~tb)).] 0. secs (0.u,0.s) -Chars 30775 - 30803 [(intros~k;~specialize~(HK~k)).] 0. secs (0.u,0.s) -Chars 30808 - 30818 [(cbn~in~HK).] 0. secs (0.u,0.s) -Chars 30819 - 30848 [(rewrite~unfold_bind,~H~in~HK).] 0.025 secs (0.025u,0.s) -Chars 30849 - 30872 [(rewrite~tau_eutt~in~HK).] 0. secs (0.u,0.s) +Chars 30755 - 30774 [eapply~(IHHRet~tb).] 0. secs (0.u,0.s) +Chars 30775 - 30803 [intros~k;~specialize~(HK~k).] 0. secs (0.u,0.s) +Chars 30808 - 30818 [cbn~in~HK.] 0. secs (0.u,0.s) +Chars 30819 - 30848 [rewrite~unfold_bind,~H~in~HK.] 0.018 secs (0.018u,0.s) +Chars 30849 - 30872 [rewrite~tau_eutt~in~HK.] 0. secs (0.u,0.s) Chars 30873 - 30878 [auto.] 0. secs (0.u,0.s) Chars 30881 - 30882 [-] 0. secs (0.u,0.s) -Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.01 secs (0.01u,0.s) -Chars 30917 - 30951 [(setoid_rewrite~H~in~HK;~clear...] 0.003 secs (0.003u,0.s) -Chars 30956 - 30996 [(pose~proof~(HK~(fun~_~=>~ITre...] 0. secs (0.u,0.s) -Chars 31001 - 31057 [(apply~(IHHRet~(ITree.bind~(k~...] 0. secs (0.u,0.s) -Chars 31062 - 31095 [(intros~k';~rewrite~(HK~k')~in...] 0.016 secs (0.016u,0.s) -Chars 31100 - 31143 [(eapply~eqit_inv_Vis~in~t2;~sy...] 0. secs (0.u,0.s) -Chars 31144 - 31148 [Qed.] 0.004 secs (0.004u,0.s) +Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.008u,0.s) +Chars 30917 - 30951 [setoid_rewrite~H~in~HK;~clear~...] 0.002 secs (0.002u,0.s) +Chars 30956 - 30996 [pose~proof~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) +Chars 31001 - 31057 [apply~(IHHRet~(ITree.bind~(k~x...] 0. secs (0.u,0.s) +Chars 31062 - 31095 [intros~k';~rewrite~(HK~k')~in~t2.] 0.012 secs (0.011u,0.s) +Chars 31100 - 31143 [eapply~eqit_inv_Vis~in~t2;~sym...] 0. secs (0.u,0.s) +Chars 31144 - 31148 [Qed.] 0.003 secs (0.003u,0.s) Chars 31206 - 31324 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 31325 - 31331 [Proof.] 0. secs (0.u,0.s) -Chars 31334 - 31341 [(intros).] 0. secs (0.u,0.s) -Chars 31344 - 31361 [(split;~[~~|~split~]).] 0. secs (0.u,0.s) +Chars 31334 - 31341 [intros.] 0. secs (0.u,0.s) +Chars 31344 - 31361 [split;~[~~|~split~].] 0. secs (0.u,0.s) Chars 31364 - 31365 [+] 0. secs (0.u,0.s) -Chars 31366 - 31402 [(intros~t~t'~eq;~split;~intros...] 0. secs (0.u,0.s) +Chars 31366 - 31402 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) Chars 31407 - 31408 [*] 0. secs (0.u,0.s) -Chars 31409 - 31418 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 31425 - 31470 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) -Chars 31477 - 31519 [(eapply~H;~[~symmetry;~eauto~|...] 0.001 secs (0.001u,0.s) -Chars 31526 - 31557 [(eapply~H;~[~eauto~|~clear~EQ~...] 0. secs (0.u,0.s) -Chars 31564 - 31573 [(eapply~H).] 0. secs (0.u,0.s) +Chars 31409 - 31418 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 31425 - 31470 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) +Chars 31477 - 31519 [eapply~H;~[~symmetry;~eauto~|~...] 0. secs (0.u,0.s) +Chars 31526 - 31557 [eapply~H;~[~eauto~|~clear~EQ~t~].] 0. secs (0.u,0.s) +Chars 31564 - 31573 [eapply~H.] 0. secs (0.u,0.s) Chars 31574 - 31583 [2:~eauto.] 0. secs (0.u,0.s) -Chars 31590 - 31630 [(rewrite~<-~(Monad.bind_ret_r~...] 0.001 secs (0.001u,0.s) -Chars 31637 - 31676 [(apply~eqit_Leaf_bind';~[~refl...] 0. secs (0.u,0.s) -Chars 31685 - 31692 [(intros).] 0. secs (0.u,0.s) -Chars 31701 - 31724 [(rewrite~(HRET~r);~auto).] 0.001 secs (0.001u,0.s) +Chars 31590 - 31630 [rewrite~<-~(Monad.bind_ret_r~_...] 0. secs (0.u,0.s) +Chars 31637 - 31676 [apply~eqit_Leaf_bind';~[~refle...] 0. secs (0.u,0.s) +Chars 31685 - 31692 [intros.] 0. secs (0.u,0.s) +Chars 31701 - 31724 [rewrite~(HRET~r);~auto.] 0. secs (0.u,0.s) Chars 31730 - 31731 [*] 0. secs (0.u,0.s) -Chars 31732 - 31736 [(cbn).] 0. secs (0.u,0.s) -Chars 31743 - 31794 [(exists~t',(fun~x~=>~Ret~x);~s...] 0. secs (0.u,0.s) -Chars 31801 - 31826 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 31827 - 31857 [(rewrite~Eqit.bind_ret_r;~auto).] 0.001 secs (0.001u,0.s) -Chars 31864 - 31884 [(intros;~reflexivity).] 0. secs (0.u,0.s) +Chars 31732 - 31736 [cbn.] 0. secs (0.u,0.s) +Chars 31743 - 31794 [exists~t',(fun~x~=>~Ret~x);~sp...] 0. secs (0.u,0.s) +Chars 31801 - 31826 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 31827 - 31857 [rewrite~Eqit.bind_ret_r;~auto.] 0. secs (0.u,0.s) +Chars 31864 - 31884 [intros;~reflexivity.] 0. secs (0.u,0.s) Chars 31888 - 31889 [+] 0. secs (0.u,0.s) -Chars 31890 - 31925 [(intros~x~y~EQ;~split;~intros~...] 0. secs (0.u,0.s) +Chars 31890 - 31925 [intros~x~y~EQ;~split;~intros~e...] 0. secs (0.u,0.s) Chars 31930 - 31931 [*] 0. secs (0.u,0.s) -Chars 31932 - 31941 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 31948 - 31994 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) -Chars 32001 - 32043 [(exists~ta,k;~split;~[~auto~|~...] 0. secs (0.u,0.s) -Chars 32050 - 32070 [(rewrite~<-~EQ;~auto).] 0.001 secs (0.001u,0.s) +Chars 31932 - 31941 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 31948 - 31994 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) +Chars 32001 - 32043 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) +Chars 32050 - 32070 [rewrite~<-~EQ;~auto.] 0. secs (0.u,0.s) Chars 32076 - 32077 [*] 0. secs (0.u,0.s) -Chars 32078 - 32087 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 32094 - 32140 [(destruct~eqtt'~as~(ta,~(k,~(H...] 0. secs (0.u,0.s) -Chars 32147 - 32189 [(exists~ta,k;~split;~[~auto~|~...] 0. secs (0.u,0.s) -Chars 32196 - 32213 [(rewrite~EQ;~auto).] 0. secs (0.u,0.s) +Chars 32078 - 32087 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 32094 - 32140 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) +Chars 32147 - 32189 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) +Chars 32196 - 32213 [rewrite~EQ;~auto.] 0. secs (0.u,0.s) Chars 32216 - 32217 [+] 0. secs (0.u,0.s) Chars 32218 - 32223 [auto.] 0. secs (0.u,0.s) -Chars 32224 - 32228 [Qed.] 0.004 secs (0.003u,0.s) +Chars 32224 - 32228 [Qed.] 0.003 secs (0.003u,0.s) Chars 32230 - 32323 [Definition~EQ_REL~{E}~{A}~(ta~...] 0. secs (0.u,0.s) Chars 32325 - 32395 [Lemma~Symmteric_EQ_REL~{E}~{A}...] 0. secs (0.u,0.s) Chars 32396 - 32402 [Proof.] 0. secs (0.u,0.s) -Chars 32405 - 32416 [(repeat~red).] 0. secs (0.u,0.s) -Chars 32419 - 32439 [(intros~a~b~(EQ,~H)).] 0. secs (0.u,0.s) +Chars 32405 - 32416 [repeat~red.] 0. secs (0.u,0.s) +Chars 32419 - 32439 [intros~a~b~(EQ,~H).] 0. secs (0.u,0.s) Chars 32442 - 32448 [split.] 0. secs (0.u,0.s) Chars 32451 - 32452 [-] 0. secs (0.u,0.s) Chars 32453 - 32462 [symmetry.] 0. secs (0.u,0.s) Chars 32463 - 32474 [assumption.] 0. secs (0.u,0.s) Chars 32477 - 32478 [-] 0. secs (0.u,0.s) -Chars 32479 - 32491 [(subst;~auto).] 0. secs (0.u,0.s) +Chars 32479 - 32491 [subst;~auto.] 0. secs (0.u,0.s) Chars 32492 - 32496 [Qed.] 0. secs (0.u,0.s) Chars 32498 - 32570 [Lemma~Transitive_EQ_REL~{E}~{A...] 0. secs (0.u,0.s) Chars 32571 - 32577 [Proof.] 0. secs (0.u,0.s) -Chars 32580 - 32591 [(repeat~red).] 0. secs (0.u,0.s) -Chars 32594 - 32629 [(intros~a~b~c~(EQ1,~H1)~(EQ2,~...] 0. secs (0.u,0.s) +Chars 32580 - 32591 [repeat~red.] 0. secs (0.u,0.s) +Chars 32594 - 32629 [intros~a~b~c~(EQ1,~H1)~(EQ2,~H2).] 0. secs (0.u,0.s) Chars 32632 - 32638 [split.] 0. secs (0.u,0.s) Chars 32641 - 32642 [-] 0. secs (0.u,0.s) -Chars 32643 - 32655 [(rewrite~EQ1).] 0. secs (0.u,0.s) +Chars 32643 - 32655 [rewrite~EQ1.] 0. secs (0.u,0.s) Chars 32656 - 32667 [assumption.] 0. secs (0.u,0.s) Chars 32670 - 32671 [-] 0. secs (0.u,0.s) Chars 32672 - 32683 [assumption.] 0. secs (0.u,0.s) Chars 32684 - 32688 [Qed.] 0. secs (0.u,0.s) Chars 32690 - 32784 [#[global]~Instance~EQ_REL_Prop...] 0. secs (0.u,0.s) Chars 32785 - 32791 [Proof.] 0. secs (0.u,0.s) -Chars 32794 - 32805 [(repeat~red).] 0. secs (0.u,0.s) -Chars 32808 - 32815 [(intros).] 0. secs (0.u,0.s) +Chars 32794 - 32805 [repeat~red.] 0. secs (0.u,0.s) +Chars 32808 - 32815 [intros.] 0. secs (0.u,0.s) Chars 32816 - 32822 [subst.] 0. secs (0.u,0.s) -Chars 32825 - 32859 [(split;~intros;~unfold~EQ_REL~...] 0. secs (0.u,0.s) +Chars 32825 - 32859 [split;~intros;~unfold~EQ_REL~i...] 0. secs (0.u,0.s) Chars 32862 - 32863 [-] 0. secs (0.u,0.s) Chars 32864 - 32870 [split.] 0. secs (0.u,0.s) -Chars 32871 - 32883 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 32871 - 32883 [destruct~H0.] 0. secs (0.u,0.s) Chars 32884 - 32895 [assumption.] 0. secs (0.u,0.s) -Chars 32896 - 32908 [(destruct~H0).] 0. secs (0.u,0.s) -Chars 32913 - 32920 [(intros).] 0. secs (0.u,0.s) -Chars 32921 - 32934 [(rewrite~<-~H).] 0.002 secs (0.002u,0.s) +Chars 32896 - 32908 [destruct~H0.] 0. secs (0.u,0.s) +Chars 32913 - 32920 [intros.] 0. secs (0.u,0.s) +Chars 32921 - 32934 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) Chars 32935 - 32946 [assumption.] 0. secs (0.u,0.s) Chars 32949 - 32950 [-] 0. secs (0.u,0.s) -Chars 32951 - 32963 [(destruct~H0).] 0. secs (0.u,0.s) +Chars 32951 - 32963 [destruct~H0.] 0. secs (0.u,0.s) Chars 32968 - 32974 [split.] 0. secs (0.u,0.s) Chars 32975 - 32986 [assumption.] 0. secs (0.u,0.s) -Chars 32991 - 32998 [(intros).] 0. secs (0.u,0.s) -Chars 32999 - 33009 [(rewrite~H).] 0.002 secs (0.002u,0.s) +Chars 32991 - 32998 [intros.] 0. secs (0.u,0.s) +Chars 32999 - 33009 [rewrite~H.] 0.002 secs (0.002u,0.s) Chars 33010 - 33021 [assumption.] 0. secs (0.u,0.s) -Chars 33022 - 33026 [Qed.] 0.001 secs (0.001u,0.s) +Chars 33022 - 33026 [Qed.] 0. secs (0.u,0.s) Chars 33028 - 33147 [#[global]~Instance~eutt_EQ_REL...] 0. secs (0.u,0.s) Chars 33148 - 33154 [Proof.] 0. secs (0.u,0.s) -Chars 33157 - 33168 [(repeat~red).] 0. secs (0.u,0.s) -Chars 33171 - 33193 [(intros;~split;~intros).] 0. secs (0.u,0.s) +Chars 33157 - 33168 [repeat~red.] 0. secs (0.u,0.s) +Chars 33171 - 33193 [intros;~split;~intros.] 0. secs (0.u,0.s) Chars 33196 - 33197 [-] 0. secs (0.u,0.s) -Chars 33199 - 33213 [(rewrite~<-~H0).] 0. secs (0.u,0.s) -Chars 33214 - 33228 [(rewrite~<-~H1).] 0.001 secs (0.001u,0.s) +Chars 33199 - 33213 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 33214 - 33228 [rewrite~<-~H1.] 0.001 secs (0.001u,0.s) Chars 33234 - 33246 [clear~H0~H1.] 0. secs (0.u,0.s) -Chars 33252 - 33263 [(destruct~H).] 0. secs (0.u,0.s) -Chars 33269 - 33293 [(eapply~eqit_mono;~eauto).] 0.001 secs (0.001u,0.s) +Chars 33252 - 33263 [destruct~H.] 0. secs (0.u,0.s) +Chars 33269 - 33293 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) Chars 33296 - 33297 [-] 0. secs (0.u,0.s) -Chars 33298 - 33313 [(rewrite~H0,~H1).] 0.002 secs (0.002u,0.s) -Chars 33318 - 33329 [(destruct~H).] 0. secs (0.u,0.s) -Chars 33334 - 33358 [(eapply~eqit_mono;~eauto).] 0.002 secs (0.002u,0.s) -Chars 33359 - 33363 [Qed.] 0.001 secs (0.001u,0.s) +Chars 33298 - 33313 [rewrite~H0,~H1.] 0.001 secs (0.001u,0.s) +Chars 33318 - 33329 [destruct~H.] 0. secs (0.u,0.s) +Chars 33334 - 33358 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) +Chars 33359 - 33363 [Qed.] 0. secs (0.u,0.s) Chars 33365 - 33468 [Lemma~eutt_EQ_REL_Reflexive_~{...] 0. secs (0.u,0.s) Chars 33469 - 33475 [Proof.] 0. secs (0.u,0.s) Chars 33478 - 33488 [revert~ta.] 0. secs (0.u,0.s) -Chars 33491 - 33510 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 33511 - 33527 [(intros~ta~R~HEQ).] 0. secs (0.u,0.s) -Chars 33530 - 33544 [(desobs~ta~hta).] 0. secs (0.u,0.s) +Chars 33491 - 33510 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 33511 - 33527 [intros~ta~R~HEQ.] 0. secs (0.u,0.s) +Chars 33530 - 33544 [desobs~ta~hta.] 0. secs (0.u,0.s) Chars 33548 - 33549 [-] 0. secs (0.u,0.s) Chars 33550 - 33563 [econstructor.] 0. secs (0.u,0.s) -Chars 33564 - 33574 [(apply~HEQ).] 0. secs (0.u,0.s) -Chars 33575 - 33579 [(red).] 0. secs (0.u,0.s) -Chars 33580 - 33592 [(split;~auto).] 0. secs (0.u,0.s) -Chars 33598 - 33616 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) -Chars 33617 - 33629 [(rewrite~hta).] 0. secs (0.u,0.s) +Chars 33564 - 33574 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 33575 - 33579 [red.] 0. secs (0.u,0.s) +Chars 33580 - 33592 [split;~auto.] 0. secs (0.u,0.s) +Chars 33598 - 33616 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) +Chars 33617 - 33629 [rewrite~hta.] 0. secs (0.u,0.s) Chars 33630 - 33646 [now~constructor.] 0. secs (0.u,0.s) Chars 33650 - 33651 [-] 0. secs (0.u,0.s) Chars 33652 - 33665 [econstructor.] 0. secs (0.u,0.s) -Chars 33666 - 33676 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 33666 - 33676 [apply~CIH.] 0. secs (0.u,0.s) Chars 33677 - 33685 [intros~!.] 0. secs (0.u,0.s) -Chars 33686 - 33696 [(apply~HEQ).] 0. secs (0.u,0.s) -Chars 33702 - 33706 [(red).] 0. secs (0.u,0.s) -Chars 33707 - 33718 [(destruct~H).] 0. secs (0.u,0.s) -Chars 33719 - 33731 [(split;~auto).] 0. secs (0.u,0.s) -Chars 33737 - 33759 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 33686 - 33696 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 33702 - 33706 [red.] 0. secs (0.u,0.s) +Chars 33707 - 33718 [destruct~H.] 0. secs (0.u,0.s) +Chars 33719 - 33731 [split;~auto.] 0. secs (0.u,0.s) +Chars 33737 - 33759 [econstructor~2;~eauto.] 0. secs (0.u,0.s) Chars 33763 - 33764 [-] 0. secs (0.u,0.s) -Chars 33765 - 33786 [(econstructor;~intros).] 0. secs (0.u,0.s) -Chars 33787 - 33797 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 33765 - 33786 [econstructor;~intros.] 0. secs (0.u,0.s) +Chars 33787 - 33797 [apply~CIH.] 0. secs (0.u,0.s) Chars 33803 - 33811 [intros~!.] 0. secs (0.u,0.s) -Chars 33812 - 33822 [(apply~HEQ).] 0. secs (0.u,0.s) -Chars 33827 - 33850 [(rewrite~itree_eta,~hta).] 0.002 secs (0.002u,0.s) -Chars 33855 - 33866 [(destruct~H).] 0. secs (0.u,0.s) -Chars 33871 - 33883 [(split;~auto).] 0. secs (0.u,0.s) -Chars 33888 - 33910 [(econstructor~3;~eauto).] 0. secs (0.u,0.s) -Chars 33912 - 33916 [Qed.] 0.004 secs (0.004u,0.s) +Chars 33812 - 33822 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 33827 - 33850 [rewrite~itree_eta,~hta.] 0.001 secs (0.001u,0.s) +Chars 33855 - 33866 [destruct~H.] 0. secs (0.u,0.s) +Chars 33871 - 33883 [split;~auto.] 0. secs (0.u,0.s) +Chars 33888 - 33910 [econstructor~3;~eauto.] 0. secs (0.u,0.s) +Chars 33912 - 33916 [Qed.] 0.003 secs (0.003u,0.s) Chars 33918 - 33996 [Lemma~eutt_EQ_REL_Reflexive~{E...] 0. secs (0.u,0.s) Chars 33997 - 34003 [Proof.] 0. secs (0.u,0.s) Chars 34006 - 34039 [now~apply~eutt_EQ_REL_Reflexive_.] 0. secs (0.u,0.s) @@ -977,144 +977,144 @@ Chars 34041 - 34045 [Qed.] 0. secs (0.u,0.s) Chars 34047 - 34146 [Definition~RET_EQ~{E}~{A}~(ta~...] 0. secs (0.u,0.s) Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 34539 - 34545 [Proof.] 0. secs (0.u,0.s) -Chars 34577 - 34622 [(intros~E~A~B~C~PA~KB~KC~PQOK~...] 0. secs (0.u,0.s) -Chars 34629 - 34642 [(red~in~eqtt').] 0. secs (0.u,0.s) -Chars 34649 - 34700 [(destruct~eqtt'~as~(tb,~(kbc,~...] 0. secs (0.u,0.s) -Chars 34707 - 34754 [(destruct~HBC~as~(ta,~(kab,~(H...] 0. secs (0.u,0.s) -Chars 34761 - 34765 [(red).] 0. secs (0.u,0.s) +Chars 34577 - 34622 [intros~E~A~B~C~PA~KB~KC~PQOK~K...] 0. secs (0.u,0.s) +Chars 34629 - 34642 [red~in~eqtt'.] 0. secs (0.u,0.s) +Chars 34649 - 34700 [destruct~eqtt'~as~(tb,~(kbc,~(...] 0. secs (0.u,0.s) +Chars 34707 - 34754 [destruct~HBC~as~(ta,~(kab,~(HT...] 0. secs (0.u,0.s) +Chars 34761 - 34765 [red.] 0. secs (0.u,0.s) Chars 34766 - 34776 [exists~ta.] 0. secs (0.u,0.s) Chars 34777 - 34818 [exists~(fun~a~=>~ITree.bind~(k...] 0. secs (0.u,0.s) -Chars 34825 - 34847 [(split;~[~auto~|~~];~split).] 0. secs (0.u,0.s) +Chars 34825 - 34847 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) Chars 34854 - 34855 [*] 0. secs (0.u,0.s) -Chars 34856 - 34886 [(setoid_rewrite~EQc;~clear~EQc).] 0.003 secs (0.002u,0.s) -Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.002 secs (0.002u,0.s) -Chars 34915 - 34957 [(setoid_rewrite~EQb~in~HRkbc;~...] 0.002 secs (0.002u,0.s) -Chars 34966 - 34991 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 35000 - 35023 [(rewrite~Eqit.bind_bind).] 0. secs (0.u,0.s) +Chars 34856 - 34886 [setoid_rewrite~EQc;~clear~EQc.] 0. secs (0.u,0.s) +Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.001 secs (0.001u,0.s) +Chars 34915 - 34957 [setoid_rewrite~EQb~in~HRkbc;~c...] 0.001 secs (0.001u,0.s) +Chars 34966 - 34991 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 35000 - 35023 [rewrite~Eqit.bind_bind.] 0. secs (0.u,0.s) Chars 35024 - 35036 [reflexivity.] 0. secs (0.u,0.s) Chars 35043 - 35044 [*] 0. secs (0.u,0.s) -Chars 35045 - 35059 [(intros~a~HRet).] 0. secs (0.u,0.s) +Chars 35045 - 35059 [intros~a~HRet.] 0. secs (0.u,0.s) Chars 35068 - 35088 [exists~(kab~a),kbc.] 0. secs (0.u,0.s) -Chars 35097 - 35118 [(split;~[~auto~|~~];~split).] 0. secs (0.u,0.s) +Chars 35097 - 35118 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) Chars 35127 - 35129 [--] 0. secs (0.u,0.s) Chars 35130 - 35142 [reflexivity.] 0. secs (0.u,0.s) Chars 35151 - 35153 [--] 0. secs (0.u,0.s) -Chars 35154 - 35168 [(intros~b~HRET).] 0. secs (0.u,0.s) -Chars 35169 - 35181 [(apply~HRkbc).] 0. secs (0.u,0.s) -Chars 35182 - 35194 [(rewrite~EQb).] 0.002 secs (0.002u,0.s) -Chars 35195 - 35219 [(eapply~Leaf_bind;~eauto).] 0. secs (0.u,0.s) -Chars 35220 - 35224 [Qed.] 0.003 secs (0.003u,0.s) +Chars 35154 - 35168 [intros~b~HRET.] 0. secs (0.u,0.s) +Chars 35169 - 35181 [apply~HRkbc.] 0. secs (0.u,0.s) +Chars 35182 - 35194 [rewrite~EQb.] 0.001 secs (0.001u,0.s) +Chars 35195 - 35219 [eapply~Leaf_bind;~eauto.] 0. secs (0.u,0.s) +Chars 35220 - 35224 [Qed.] 0.002 secs (0.002u,0.s) Chars 35226 - 35258 [Module~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) Chars 35262 - 35312 [Inductive~ND~:~Type~->~Prop~:=...] 0. secs (0.u,0.s) Chars 35316 - 35399 [Definition~PA~:~iforest~ND~boo...] 0. secs (0.u,0.s) Chars 35403 - 35462 [Definition~KB~:~bool~->~ifores...] 0. secs (0.u,0.s) Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0. secs (0.u,0.s) -Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.001 secs (0.001u,0.s) +Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.011 secs (0.01u,0.s) Chars 35958 - 36019 [Lemma~bind_right_assoc~:~bind~...] 0. secs (0.u,0.s) Chars 36022 - 36028 [Proof.] 0. secs (0.u,0.s) -Chars 36033 - 36044 [(repeat~red).] 0. secs (0.u,0.s) +Chars 36033 - 36044 [repeat~red.] 0. secs (0.u,0.s) Chars 36049 - 36071 [exists~(trigger~Pick).] 0. secs (0.u,0.s) -Chars 36076 - 36293 [exists~~~~(fun~b~:~bool~=>~~~~...] 0.001 secs (0.001u,0.s) -Chars 36298 - 36310 [(split;~auto).] 0. secs (0.u,0.s) -Chars 36315 - 36319 [(red).] 0. secs (0.u,0.s) +Chars 36076 - 36293 [exists~~~~~(fun~b~:~bool~=>~~~...] 0.009 secs (0.009u,0.s) +Chars 36298 - 36310 [split;~auto.] 0. secs (0.u,0.s) +Chars 36315 - 36319 [red.] 0. secs (0.u,0.s) Chars 36320 - 36332 [reflexivity.] 0. secs (0.u,0.s) Chars 36337 - 36343 [split.] 0. secs (0.u,0.s) Chars 36344 - 36356 [reflexivity.] 0. secs (0.u,0.s) -Chars 36361 - 36368 [(intros).] 0. secs (0.u,0.s) -Chars 36369 - 36380 [(repeat~red).] 0. secs (0.u,0.s) +Chars 36361 - 36368 [intros.] 0. secs (0.u,0.s) +Chars 36369 - 36380 [repeat~red.] 0. secs (0.u,0.s) Chars 36381 - 36403 [exists~(trigger~Pick).] 0. secs (0.u,0.s) -Chars 36408 - 36557 [exists~~~~(fun~x~:~bool~=>~~~~...] 0. secs (0.u,0.s) +Chars 36408 - 36557 [exists~~~~~(fun~x~:~bool~=>~~~...] 0.008 secs (0.008u,0.s) Chars 36562 - 36568 [split.] 0. secs (0.u,0.s) -Chars 36573 - 36577 [(red).] 0. secs (0.u,0.s) -Chars 36578 - 36582 [(red).] 0. secs (0.u,0.s) +Chars 36573 - 36577 [red.] 0. secs (0.u,0.s) +Chars 36578 - 36582 [red.] 0. secs (0.u,0.s) Chars 36584 - 36596 [reflexivity.] 0. secs (0.u,0.s) Chars 36601 - 36607 [split.] 0. secs (0.u,0.s) -Chars 36612 - 36623 [(destruct~a).] 0. secs (0.u,0.s) +Chars 36612 - 36623 [destruct~a.] 0. secs (0.u,0.s) Chars 36628 - 36629 [-] 0. secs (0.u,0.s) Chars 36630 - 36642 [reflexivity.] 0. secs (0.u,0.s) Chars 36647 - 36648 [-] 0. secs (0.u,0.s) Chars 36649 - 36661 [reflexivity.] 0. secs (0.u,0.s) Chars 36666 - 36667 [-] 0. secs (0.u,0.s) -Chars 36668 - 36675 [(intros).] 0. secs (0.u,0.s) -Chars 36682 - 36694 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 36701 - 36712 [(destruct~a).] 0. secs (0.u,0.s) -Chars 36719 - 36723 [(red).] 0. secs (0.u,0.s) +Chars 36668 - 36675 [intros.] 0. secs (0.u,0.s) +Chars 36682 - 36694 [destruct~a0.] 0. secs (0.u,0.s) +Chars 36701 - 36712 [destruct~a.] 0. secs (0.u,0.s) +Chars 36719 - 36723 [red.] 0. secs (0.u,0.s) Chars 36724 - 36729 [left.] 0. secs (0.u,0.s) Chars 36730 - 36742 [reflexivity.] 0. secs (0.u,0.s) -Chars 36749 - 36753 [(red).] 0. secs (0.u,0.s) +Chars 36749 - 36753 [red.] 0. secs (0.u,0.s) Chars 36754 - 36760 [right.] 0. secs (0.u,0.s) Chars 36761 - 36773 [reflexivity.] 0. secs (0.u,0.s) -Chars 36780 - 36791 [(destruct~a).] 0. secs (0.u,0.s) -Chars 36798 - 36802 [(red).] 0. secs (0.u,0.s) +Chars 36780 - 36791 [destruct~a.] 0. secs (0.u,0.s) +Chars 36798 - 36802 [red.] 0. secs (0.u,0.s) Chars 36803 - 36815 [reflexivity.] 0. secs (0.u,0.s) -Chars 36816 - 36820 [(red).] 0. secs (0.u,0.s) +Chars 36816 - 36820 [red.] 0. secs (0.u,0.s) Chars 36822 - 36834 [reflexivity.] 0. secs (0.u,0.s) -Chars 36837 - 36841 [Qed.] 0.002 secs (0.002u,0.s) +Chars 36837 - 36841 [Qed.] 0.001 secs (0.001u,0.s) Chars 36845 - 36900 [Lemma~not_bind_left_assoc~:~~~...] 0. secs (0.u,0.s) Chars 36903 - 36909 [Proof.] 0. secs (0.u,0.s) Chars 36914 - 36922 [intro~H.] 0. secs (0.u,0.s) -Chars 36927 - 36943 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 36948 - 36989 [(destruct~H~as~(ta,~(k,~(HB,~(...] 0. secs (0.u,0.s) -Chars 36994 - 37039 [(destruct~HB~as~(tb,~(kb,~(HX,...] 0. secs (0.u,0.s) -Chars 37044 - 37054 [(red~in~HX).] 0. secs (0.u,0.s) -Chars 37059 - 37075 [(rewrite~HX~in~*).] 0.001 secs (0.001u,0.s) -Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.002 secs (0.002u,0.s) +Chars 36927 - 36943 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 36948 - 36989 [destruct~H~as~(ta,~(k,~(HB,~(H...] 0. secs (0.u,0.s) +Chars 36994 - 37039 [destruct~HB~as~(tb,~(kb,~(HX,~...] 0. secs (0.u,0.s) +Chars 37044 - 37054 [red~in~HX.] 0. secs (0.u,0.s) +Chars 37059 - 37075 [rewrite~HX~in~*.] 0.001 secs (0.001u,0.s) +Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.001 secs (0.001u,0.s) Chars 37112 - 37124 [clear~tb~HX.] 0. secs (0.u,0.s) -Chars 37129 - 37149 [(rewrite~HEQ'~in~HEQ).] 0.001 secs (0.001u,0.s) -Chars 37154 - 37170 [(unfold~t~in~HEQ).] 0. secs (0.u,0.s) -Chars 37175 - 37207 [(unfold~bind,~Monad_itree~in~H...] 0. secs (0.u,0.s) -Chars 37212 - 37242 [(rewrite~Eqit.bind_bind~in~HEQ).] 0.005 secs (0.005u,0.s) -Chars 37247 - 37576 [(assert~~~(forall~r,~~~~Leaf~r...] 0.001 secs (0.001u,0.s) -Chars 37581 - 37606 [(apply~eqit_bind_Leaf_inv).] 0. secs (0.u,0.s) -Chars 37607 - 37617 [(apply~HEQ).] 0. secs (0.u,0.s) -Chars 37622 - 37662 [(assert~(Leaf~true~(ITree.trig...] 0. secs (0.u,0.s) +Chars 37129 - 37149 [rewrite~HEQ'~in~HEQ.] 0.001 secs (0.001u,0.s) +Chars 37154 - 37170 [unfold~t~in~HEQ.] 0. secs (0.u,0.s) +Chars 37175 - 37207 [unfold~bind,~Monad_itree~in~HEQ.] 0. secs (0.u,0.s) +Chars 37212 - 37242 [rewrite~Eqit.bind_bind~in~HEQ.] 0.003 secs (0.003u,0.s) +Chars 37247 - 37576 [assert~~(forall~r,~~~Leaf~r~(I...] 0.001 secs (0.001u,0.s) +Chars 37581 - 37606 [apply~eqit_bind_Leaf_inv.] 0. secs (0.u,0.s) +Chars 37607 - 37617 [apply~HEQ.] 0. secs (0.u,0.s) +Chars 37622 - 37662 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) Chars 37667 - 37668 [{] 0. secs (0.u,0.s) -Chars 37669 - 37684 [(unfold~trigger).] 0. secs (0.u,0.s) +Chars 37669 - 37684 [unfold~trigger.] 0. secs (0.u,0.s) Chars 37685 - 37700 [econstructor~3.] 0. secs (0.u,0.s) Chars 37701 - 37713 [reflexivity.] 0. secs (0.u,0.s) Chars 37714 - 37728 [constructor~1.] 0. secs (0.u,0.s) Chars 37729 - 37741 [reflexivity.] 0. secs (0.u,0.s) Chars 37742 - 37743 [}] 0. secs (0.u,0.s) -Chars 37748 - 37789 [(assert~(Leaf~false~(ITree.tri...] 0. secs (0.u,0.s) +Chars 37748 - 37789 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) Chars 37794 - 37795 [{] 0. secs (0.u,0.s) -Chars 37796 - 37811 [(unfold~trigger).] 0. secs (0.u,0.s) +Chars 37796 - 37811 [unfold~trigger.] 0. secs (0.u,0.s) Chars 37812 - 37827 [econstructor~3.] 0. secs (0.u,0.s) Chars 37828 - 37840 [reflexivity.] 0. secs (0.u,0.s) Chars 37841 - 37855 [constructor~1.] 0. secs (0.u,0.s) Chars 37856 - 37868 [reflexivity.] 0. secs (0.u,0.s) Chars 37869 - 37870 [}] 0. secs (0.u,0.s) -Chars 37875 - 37915 [(assert~(Leaf~true~(ITree.trig...] 0. secs (0.u,0.s) +Chars 37875 - 37915 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) Chars 37920 - 37921 [{] 0. secs (0.u,0.s) -Chars 37922 - 37937 [(unfold~trigger).] 0. secs (0.u,0.s) +Chars 37922 - 37937 [unfold~trigger.] 0. secs (0.u,0.s) Chars 37938 - 37953 [econstructor~3.] 0. secs (0.u,0.s) Chars 37954 - 37966 [reflexivity.] 0. secs (0.u,0.s) Chars 37967 - 37981 [constructor~1.] 0. secs (0.u,0.s) Chars 37982 - 37994 [reflexivity.] 0. secs (0.u,0.s) Chars 37995 - 37996 [}] 0. secs (0.u,0.s) -Chars 38001 - 38042 [(assert~(Leaf~false~(ITree.tri...] 0. secs (0.u,0.s) +Chars 38001 - 38042 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) Chars 38047 - 38048 [{] 0. secs (0.u,0.s) -Chars 38049 - 38064 [(unfold~trigger).] 0. secs (0.u,0.s) +Chars 38049 - 38064 [unfold~trigger.] 0. secs (0.u,0.s) Chars 38065 - 38080 [econstructor~3.] 0. secs (0.u,0.s) Chars 38081 - 38093 [reflexivity.] 0. secs (0.u,0.s) Chars 38094 - 38108 [constructor~1.] 0. secs (0.u,0.s) Chars 38109 - 38121 [reflexivity.] 0. secs (0.u,0.s) Chars 38122 - 38123 [}] 0. secs (0.u,0.s) -Chars 38128 - 38142 [(apply~H~in~H0).] 0. secs (0.u,0.s) -Chars 38147 - 38161 [(apply~H~in~H1).] 0. secs (0.u,0.s) -Chars 38166 - 38184 [(apply~HRET'~in~H2).] 0. secs (0.u,0.s) -Chars 38189 - 38207 [(apply~HRET'~in~H3).] 0. secs (0.u,0.s) -Chars 38212 - 38222 [(red~in~H2).] 0. secs (0.u,0.s) -Chars 38223 - 38233 [(red~in~H3).] 0. secs (0.u,0.s) -Chars 38234 - 38244 [(red~in~H2).] 0. secs (0.u,0.s) -Chars 38245 - 38255 [(red~in~H3).] 0. secs (0.u,0.s) -Chars 38260 - 38277 [(rewrite~H2~in~H0).] 0.001 secs (0.001u,0.s) -Chars 38282 - 38299 [(rewrite~H3~in~H1).] 0.001 secs (0.001u,0.s) -Chars 38304 - 38324 [(rewrite~<-~H0~in~H1).] 0.001 secs (0.001u,0.s) -Chars 38329 - 38378 [(apply~eqit_bind_Leaf_inv~with...] 0. secs (0.u,0.s) -Chars 38383 - 38408 [(apply~eqit_inv_Ret~in~H1).] 0. secs (0.u,0.s) -Chars 38409 - 38422 [(inversion~H1).] 0. secs (0.u,0.s) +Chars 38128 - 38142 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 38147 - 38161 [apply~H~in~H1.] 0. secs (0.u,0.s) +Chars 38166 - 38184 [apply~HRET'~in~H2.] 0. secs (0.u,0.s) +Chars 38189 - 38207 [apply~HRET'~in~H3.] 0. secs (0.u,0.s) +Chars 38212 - 38222 [red~in~H2.] 0. secs (0.u,0.s) +Chars 38223 - 38233 [red~in~H3.] 0. secs (0.u,0.s) +Chars 38234 - 38244 [red~in~H2.] 0. secs (0.u,0.s) +Chars 38245 - 38255 [red~in~H3.] 0. secs (0.u,0.s) +Chars 38260 - 38277 [rewrite~H2~in~H0.] 0.001 secs (0.001u,0.s) +Chars 38282 - 38299 [rewrite~H3~in~H1.] 0.001 secs (0.001u,0.s) +Chars 38304 - 38324 [rewrite~<-~H0~in~H1.] 0. secs (0.u,0.s) +Chars 38329 - 38378 [apply~eqit_bind_Leaf_inv~with~...] 0. secs (0.u,0.s) +Chars 38383 - 38408 [apply~eqit_inv_Ret~in~H1.] 0. secs (0.u,0.s) +Chars 38409 - 38422 [inversion~H1.] 0. secs (0.u,0.s) Chars 38427 - 38428 [{] 0. secs (0.u,0.s) -Chars 38429 - 38444 [(unfold~trigger).] 0. secs (0.u,0.s) +Chars 38429 - 38444 [unfold~trigger.] 0. secs (0.u,0.s) Chars 38445 - 38460 [econstructor~3.] 0. secs (0.u,0.s) Chars 38461 - 38473 [reflexivity.] 0. secs (0.u,0.s) Chars 38474 - 38488 [constructor~1.] 0. secs (0.u,0.s) @@ -1125,7 +1125,7 @@ Chars 38510 - 38622 [Lemma~bind_bind_counterexample...] 0. secs (0.u,0.s) Chars 38623 - 38629 [Proof.] 0. secs (0.u,0.s) Chars 38632 - 38641 [exists~t.] 0. secs (0.u,0.s) Chars 38644 - 38650 [split.] 0. secs (0.u,0.s) -Chars 38653 - 38676 [(apply~bind_right_assoc).] 0. secs (0.u,0.s) -Chars 38679 - 38705 [(apply~not_bind_left_assoc).] 0. secs (0.u,0.s) +Chars 38653 - 38676 [apply~bind_right_assoc.] 0. secs (0.u,0.s) +Chars 38679 - 38705 [apply~not_bind_left_assoc.] 0. secs (0.u,0.s) Chars 38706 - 38710 [Qed.] 0. secs (0.u,0.s) Chars 38712 - 38741 [End~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceBind.v.timing b/extra/ITrace/ITraceBind.v.timing index 5891e331..5f8e0fbe 100644 --- a/extra/ITrace/ITraceBind.v.timing +++ b/extra/ITrace/ITraceBind.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.002s) -Chars 39 - 82 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 84 - 221 [From~ITree~Require~Import~Basi...] 0.223 secs (0.193u,0.03s) -Chars 223 - 334 [From~ITree.Extra~Require~Impor...] 0.015 secs (0.012u,0.002s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 39 - 82 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 84 - 221 [From~ITree~Require~Import~Basi...] 0.158 secs (0.141u,0.017s) +Chars 223 - 334 [From~ITree.Extra~Require~Impor...] 0.012 secs (0.01u,0.001s) Chars 336 - 350 [Import~Monads.] 0. secs (0.u,0.s) Chars 351 - 372 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 373 - 402 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -10,2105 +10,2107 @@ Chars 621 - 634 [Section~Peel.] 0. secs (0.u,0.s) Chars 635 - 692 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) Chars 694 - 888 [Definition~peel_vis~{E}~{R}~{S...] 0. secs (0.u,0.s) Chars 889 - 895 [Proof.] 0. secs (0.u,0.s) -Chars 898 - 926 [(destruct~(classicT~(A~=~B))).] 0. secs (0.u,0.s) +Chars 898 - 926 [destruct~(classicT~(A~=~B)).] 0. secs (0.u,0.s) Chars 929 - 930 [-] 0. secs (0.u,0.s) Chars 931 - 937 [subst.] 0. secs (0.u,0.s) -Chars 938 - 1019 [(apply~~~(Vis~(evans~_~e0~a)~(...] 0. secs (0.u,0.s) +Chars 938 - 1019 [apply~(Vis~(evans~_~e0~a)~(fun...] 0. secs (0.u,0.s) Chars 1022 - 1023 [-] 0. secs (0.u,0.s) -Chars 1024 - 1041 [(apply~ITree.spin).] 0. secs (0.u,0.s) +Chars 1024 - 1041 [apply~ITree.spin.] 0. secs (0.u,0.s) Chars 1042 - 1050 [Defined.] 0. secs (0.u,0.s) -Chars 1052 - 1645 [CoFixpoint~peel_~{E}~{R}~{S}~(...] 0.004 secs (0.003u,0.s) +Chars 1052 - 1645 [CoFixpoint~peel_~{E}~{R}~{S}~(...] 0.029 secs (0.027u,0.001s) Chars 1647 - 1752 [Definition~peel~{E}~{R}~{S}~(b...] 0. secs (0.u,0.s) Chars 1787 - 1986 [Definition~peel_cont_vis~{E}~{...] 0. secs (0.u,0.s) Chars 1987 - 1993 [Proof.] 0. secs (0.u,0.s) -Chars 1996 - 2025 [(destruct~(classicT~(A~=~B))).] 0. secs (0.u,0.s) +Chars 1996 - 2025 [destruct~(classicT~(A~=~B)).] 0. secs (0.u,0.s) Chars 2028 - 2029 [-] 0. secs (0.u,0.s) Chars 2030 - 2036 [subst.] 0. secs (0.u,0.s) -Chars 2037 - 2094 [(apply~(Tau~(peel~(observe~(k0...] 0. secs (0.u,0.s) +Chars 2037 - 2094 [apply~(Tau~(peel~(observe~(k0~...] 0. secs (0.u,0.s) Chars 2097 - 2098 [-] 0. secs (0.u,0.s) -Chars 2099 - 2116 [(apply~ITree.spin).] 0. secs (0.u,0.s) +Chars 2099 - 2116 [apply~ITree.spin.] 0. secs (0.u,0.s) Chars 2117 - 2125 [Defined.] 0. secs (0.u,0.s) -Chars 2209 - 2815 [CoFixpoint~peel_cont_~{E}~{R}~...] 0.003 secs (0.002u,0.s) +Chars 2209 - 2815 [CoFixpoint~peel_cont_~{E}~{R}~...] 0.001 secs (0.001u,0.s) Chars 2817 - 2946 [Definition~peel_cont~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 2948 - 3113 [Lemma~refine_ret_vis_contra~:~...] 0.032 secs (0.028u,0.003s) +Chars 2948 - 3113 [Lemma~refine_ret_vis_contra~:~...] 0. secs (0.u,0.s) Chars 3114 - 3120 [Proof.] 0. secs (0.u,0.s) -Chars 3123 - 3130 [(intros).] 0. secs (0.u,0.s) +Chars 3123 - 3130 [intros.] 0. secs (0.u,0.s) Chars 3131 - 3145 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 3146 - 3159 [sinv~Hcontra.] 0.002 secs (0.002u,0.s) -Chars 3160 - 3164 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3146 - 3159 [sinv~Hcontra.] 0.001 secs (0.001u,0.s) +Chars 3160 - 3164 [Qed.] 0.002 secs (0.002u,0.s) Chars 3304 - 3408 [Lemma~peel_t_ret~:~~~forall~E~...] 0. secs (0.u,0.s) Chars 3409 - 3415 [Proof.] 0. secs (0.u,0.s) -Chars 3418 - 3425 [(intros).] 0. secs (0.u,0.s) -Chars 3427 - 3439 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 3442 - 3456 [(sinv~H;~subst).] 0.01 secs (0.01u,0.s) -Chars 3459 - 3491 [(destruct~(observe~b);~cbn;~au...] 0.001 secs (0.001u,0.s) +Chars 3418 - 3425 [intros.] 0. secs (0.u,0.s) +Chars 3427 - 3439 [unfold~peel.] 0. secs (0.u,0.s) +Chars 3442 - 3456 [sinv~H;~subst.] 0.007 secs (0.007u,0.s) +Chars 3459 - 3491 [destruct~(observe~b);~cbn;~auto.] 0. secs (0.u,0.s) Chars 3494 - 3495 [-] 0. secs (0.u,0.s) -Chars 3496 - 3501 [step.] 0.001 secs (0.001u,0.s) -Chars 3502 - 3506 [(cbn).] 0. secs (0.u,0.s) +Chars 3496 - 3501 [step.] 0.037 secs (0.037u,0.s) +Chars 3502 - 3506 [cbn.] 0. secs (0.u,0.s) Chars 3507 - 3519 [constructor.] 0. secs (0.u,0.s) Chars 3520 - 3525 [auto.] 0. secs (0.u,0.s) Chars 3528 - 3529 [-] 0. secs (0.u,0.s) -Chars 3530 - 3535 [step.] 0.002 secs (0.001u,0.s) -Chars 3536 - 3540 [(cbn).] 0. secs (0.u,0.s) -Chars 3541 - 3559 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 3530 - 3535 [step.] 0.001 secs (0.001u,0.s) +Chars 3536 - 3540 [cbn.] 0. secs (0.u,0.s) +Chars 3541 - 3559 [constructor;~auto.] 0. secs (0.u,0.s) Chars 3562 - 3563 [-] 0. secs (0.u,0.s) Chars 3564 - 3569 [step.] 0.001 secs (0.001u,0.s) -Chars 3570 - 3574 [(cbn).] 0. secs (0.u,0.s) -Chars 3575 - 3581 [(simpl).] 0. secs (0.u,0.s) -Chars 3582 - 3593 [(destruct~e).] 0. secs (0.u,0.s) +Chars 3570 - 3574 [cbn.] 0. secs (0.u,0.s) +Chars 3575 - 3581 [simpl.] 0. secs (0.u,0.s) +Chars 3582 - 3593 [destruct~e.] 0. secs (0.u,0.s) Chars 3598 - 3599 [+] 0. secs (0.u,0.s) -Chars 3600 - 3604 [(cbn).] 0. secs (0.u,0.s) +Chars 3600 - 3604 [cbn.] 0. secs (0.u,0.s) Chars 3605 - 3617 [constructor.] 0. secs (0.u,0.s) Chars 3618 - 3623 [auto.] 0. secs (0.u,0.s) Chars 3628 - 3629 [+] 0. secs (0.u,0.s) -Chars 3630 - 3634 [(cbn).] 0. secs (0.u,0.s) +Chars 3630 - 3634 [cbn.] 0. secs (0.u,0.s) Chars 3635 - 3647 [constructor.] 0. secs (0.u,0.s) Chars 3648 - 3653 [auto.] 0. secs (0.u,0.s) -Chars 3654 - 3658 [Qed.] 0.05 secs (0.049u,0.s) +Chars 3654 - 3658 [Qed.] 0.005 secs (0.005u,0.s) Chars 3735 - 3949 [Lemma~peel_refine_t~:~~~forall...] 0. secs (0.u,0.s) Chars 3950 - 3956 [Proof.] 0. secs (0.u,0.s) -Chars 3959 - 3978 [(intros~E~R~S~b~t~f).] 0. secs (0.u,0.s) +Chars 3959 - 3978 [intros~E~R~S~b~t~f.] 0. secs (0.u,0.s) Chars 3979 - 4002 [generalize~dependent~b.] 0. secs (0.u,0.s) Chars 4003 - 4026 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 4029 - 4048 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4049 - 4056 [(intros).] 0. secs (0.u,0.s) +Chars 4049 - 4056 [intros.] 0. secs (0.u,0.s) Chars 4059 - 4073 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 4074 - 4087 [(cbn~in~Hrutt).] 0. secs (0.u,0.s) -Chars 4091 - 4103 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 4106 - 4137 [(destruct~(observe~t)~eqn:Heq).] 0. secs (0.u,0.s) +Chars 4074 - 4087 [cbn~in~Hrutt.] 0. secs (0.u,0.s) +Chars 4091 - 4103 [unfold~peel.] 0. secs (0.u,0.s) +Chars 4106 - 4137 [destruct~(observe~t)~eqn:Heq.] 0. secs (0.u,0.s) Chars 4140 - 4141 [-] 0. secs (0.u,0.s) -Chars 4142 - 4193 [(destruct~(observe~b);~cbn;~tr...] 0.001 secs (0.001u,0.s) -Chars 4198 - 4233 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) +Chars 4142 - 4193 [destruct~(observe~b);~cbn;~try...] 0.001 secs (0.001u,0.s) +Chars 4198 - 4233 [destruct~e;~cbn;~constructor;~...] 0.001 secs (0.001u,0.s) Chars 4236 - 4237 [-] 0. secs (0.u,0.s) -Chars 4238 - 4264 [dependent~induction~Hrutt.] 0.061 secs (0.059u,0.001s) +Chars 4238 - 4264 [dependent~induction~Hrutt.] 0.045 secs (0.045u,0.s) Chars 4269 - 4270 [+] 0. secs (0.u,0.s) Chars 4271 - 4279 [exfalso.] 0. secs (0.u,0.s) Chars 4280 - 4296 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4297 - 4318 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4319 - 4338 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 4345 - 4362 [(rewrite~Heq~in~x).] 0.021 secs (0.02u,0.s) -Chars 4363 - 4385 [(rewrite~bind_tau~in~x).] 0.019 secs (0.019u,0.s) -Chars 4386 - 4393 [sinv~x.] 0.006 secs (0.006u,0.s) +Chars 4297 - 4318 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 4319 - 4338 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 4345 - 4362 [rewrite~Heq~in~x.] 0.012 secs (0.012u,0.s) +Chars 4363 - 4385 [rewrite~bind_tau~in~x.] 0.015 secs (0.015u,0.s) +Chars 4386 - 4393 [sinv~x.] 0.004 secs (0.004u,0.s) Chars 4398 - 4399 [+] 0. secs (0.u,0.s) -Chars 4400 - 4408 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 4409 - 4413 [(cbn).] 0. secs (0.u,0.s) +Chars 4400 - 4408 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4409 - 4413 [cbn.] 0. secs (0.u,0.s) Chars 4414 - 4426 [constructor.] 0. secs (0.u,0.s) -Chars 4427 - 4438 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 4427 - 4438 [eapply~CIH.] 0. secs (0.u,0.s) Chars 4446 - 4462 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4463 - 4483 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) -Chars 4490 - 4509 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 4510 - 4531 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4538 - 4562 [(apply~eq_sub_eutt~in~x0).] 0. secs (0.u,0.s) -Chars 4563 - 4588 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 4595 - 4619 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 4620 - 4643 [(rewrite~tau_eutt~in~x0).] 0. secs (0.u,0.s) -Chars 4650 - 4665 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) -Chars 4666 - 4676 [(rewrite~x).] 0.003 secs (0.003u,0.s) -Chars 4677 - 4694 [(rewrite~tau_eutt).] 0.003 secs (0.003u,0.s) +Chars 4463 - 4483 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) +Chars 4490 - 4509 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 4510 - 4531 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 4538 - 4562 [apply~eq_sub_eutt~in~x0.] 0. secs (0.u,0.s) +Chars 4563 - 4588 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 4595 - 4619 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 4620 - 4643 [rewrite~tau_eutt~in~x0.] 0. secs (0.u,0.s) +Chars 4650 - 4665 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) +Chars 4666 - 4676 [rewrite~x.] 0.002 secs (0.002u,0.s) +Chars 4677 - 4694 [rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) Chars 4695 - 4700 [auto.] 0. secs (0.u,0.s) Chars 4705 - 4706 [+] 0. secs (0.u,0.s) Chars 4707 - 4715 [exfalso.] 0. secs (0.u,0.s) Chars 4716 - 4732 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4733 - 4754 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4761 - 4780 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 4787 - 4804 [(rewrite~Heq~in~x).] 0.017 secs (0.017u,0.s) -Chars 4805 - 4827 [(rewrite~bind_tau~in~x).] 0.016 secs (0.015u,0.s) -Chars 4828 - 4835 [sinv~x.] 0.006 secs (0.006u,0.s) +Chars 4733 - 4754 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 4761 - 4780 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 4787 - 4804 [rewrite~Heq~in~x.] 0.011 secs (0.011u,0.s) +Chars 4805 - 4827 [rewrite~bind_tau~in~x.] 0.011 secs (0.01u,0.s) +Chars 4828 - 4835 [sinv~x.] 0.004 secs (0.004u,0.s) Chars 4840 - 4841 [+] 0. secs (0.u,0.s) -Chars 4842 - 4850 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 4851 - 4855 [(cbn).] 0. secs (0.u,0.s) +Chars 4842 - 4850 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4851 - 4855 [cbn.] 0. secs (0.u,0.s) Chars 4856 - 4868 [constructor.] 0. secs (0.u,0.s) -Chars 4869 - 4880 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 4869 - 4880 [eapply~CIH.] 0. secs (0.u,0.s) Chars 4887 - 4901 [clear~IHHrutt.] 0. secs (0.u,0.s) Chars 4902 - 4918 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4919 - 4940 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 4947 - 4972 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 4973 - 4997 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5004 - 5019 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) -Chars 5020 - 5025 [step.] 0.001 secs (0.001u,0.s) +Chars 4919 - 4940 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 4947 - 4972 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 4973 - 4997 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5004 - 5019 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) +Chars 5020 - 5025 [step.] 0. secs (0.u,0.s) Chars 5026 - 5031 [auto.] 0. secs (0.u,0.s) Chars 5036 - 5037 [+] 0. secs (0.u,0.s) -Chars 5038 - 5042 [(cbn).] 0. secs (0.u,0.s) -Chars 5043 - 5075 [(destruct~(observe~b)~eqn:Heq').] 0.004 secs (0.004u,0.s) +Chars 5038 - 5042 [cbn.] 0. secs (0.u,0.s) +Chars 5043 - 5075 [destruct~(observe~b)~eqn:Heq'.] 0.003 secs (0.002u,0.s) Chars 5082 - 5083 [*] 0. secs (0.u,0.s) -Chars 5084 - 5088 [(cbn).] 0. secs (0.u,0.s) -Chars 5089 - 5105 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 5084 - 5088 [cbn.] 0. secs (0.u,0.s) +Chars 5089 - 5105 [rewrite~<-~Heq'.] 0. secs (0.u,0.s) Chars 5106 - 5118 [constructor.] 0. secs (0.u,0.s) -Chars 5119 - 5130 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5119 - 5130 [eapply~CIH.] 0. secs (0.u,0.s) Chars 5139 - 5156 [symmetry~in~Heq'.] 0. secs (0.u,0.s) -Chars 5165 - 5187 [(apply~simpobs~in~Heq').] 0. secs (0.u,0.s) -Chars 5188 - 5201 [(rewrite~Heq').] 0.004 secs (0.004u,0.s) +Chars 5165 - 5187 [apply~simpobs~in~Heq'.] 0. secs (0.u,0.s) +Chars 5188 - 5201 [rewrite~Heq'.] 0.003 secs (0.003u,0.s) Chars 5210 - 5226 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5227 - 5248 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 5257 - 5282 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5283 - 5307 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5316 - 5331 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) -Chars 5332 - 5351 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 5352 - 5362 [(rewrite~x).] 0.004 secs (0.004u,0.s) -Chars 5371 - 5388 [(rewrite~tau_eutt).] 0.004 secs (0.004u,0.s) -Chars 5389 - 5394 [step.] 0.001 secs (0.001u,0.s) +Chars 5227 - 5248 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 5257 - 5282 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5283 - 5307 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5316 - 5331 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) +Chars 5332 - 5351 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 5352 - 5362 [rewrite~x.] 0.003 secs (0.003u,0.s) +Chars 5371 - 5388 [rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) +Chars 5389 - 5394 [step.] 0. secs (0.u,0.s) Chars 5395 - 5400 [auto.] 0. secs (0.u,0.s) Chars 5407 - 5408 [*] 0. secs (0.u,0.s) -Chars 5409 - 5413 [(cbn).] 0. secs (0.u,0.s) +Chars 5409 - 5413 [cbn.] 0. secs (0.u,0.s) Chars 5414 - 5428 [clear~IHHrutt.] 0. secs (0.u,0.s) Chars 5437 - 5449 [constructor.] 0. secs (0.u,0.s) -Chars 5450 - 5461 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5450 - 5461 [eapply~CIH.] 0. secs (0.u,0.s) Chars 5471 - 5487 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5488 - 5509 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 5518 - 5543 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5544 - 5568 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5577 - 5592 [(rewrite~<-~Heq).] 0.005 secs (0.005u,0.s) -Chars 5601 - 5620 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 5621 - 5644 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) -Chars 5653 - 5675 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) -Chars 5676 - 5686 [(rewrite~x).] 0.003 secs (0.003u,0.s) -Chars 5695 - 5718 [(enough~(Tau~t1~⊑~t2)).] 0. secs (0.u,0.s) +Chars 5488 - 5509 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 5518 - 5543 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5544 - 5568 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5577 - 5592 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) +Chars 5601 - 5620 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 5621 - 5644 [apply~eq_sub_eutt~in~x.] 0. secs (0.u,0.s) +Chars 5653 - 5675 [rewrite~tau_eutt~in~x.] 0. secs (0.u,0.s) +Chars 5676 - 5686 [rewrite~x.] 0.002 secs (0.002u,0.s) +Chars 5695 - 5718 [enough~(Tau~t1~⊑~t2).] 0. secs (0.u,0.s) Chars 5727 - 5728 [{] 0. secs (0.u,0.s) -Chars 5729 - 5751 [(rewrite~tau_eutt~in~H).] 0.003 secs (0.003u,0.s) +Chars 5729 - 5751 [rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) Chars 5752 - 5757 [auto.] 0. secs (0.u,0.s) Chars 5758 - 5759 [}] 0. secs (0.u,0.s) Chars 5768 - 5773 [step.] 0. secs (0.u,0.s) Chars 5774 - 5779 [auto.] 0. secs (0.u,0.s) Chars 5786 - 5787 [*] 0. secs (0.u,0.s) -Chars 5788 - 5804 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 5788 - 5804 [destruct~e;~cbn.] 0.002 secs (0.002u,0.s) Chars 5813 - 5815 [++] 0. secs (0.u,0.s) Chars 5816 - 5828 [constructor.] 0. secs (0.u,0.s) -Chars 5829 - 5845 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 5829 - 5845 [rewrite~<-~Heq'.] 0. secs (0.u,0.s) Chars 5846 - 5860 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 5872 - 5883 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 5872 - 5883 [eapply~CIH.] 0. secs (0.u,0.s) Chars 5884 - 5900 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5912 - 5933 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 5934 - 5959 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5971 - 5995 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 5996 - 6015 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6027 - 6050 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6051 - 6073 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6085 - 6100 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) -Chars 6101 - 6111 [(rewrite~x).] 0.005 secs (0.004u,0.s) -Chars 6112 - 6117 [step.] 0.001 secs (0.001u,0.s) -Chars 6130 - 6143 [(rewrite~Heq').] 0. secs (0.u,0.s) +Chars 5912 - 5933 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 5934 - 5959 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5971 - 5995 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 5996 - 6015 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6027 - 6050 [apply~eq_sub_eutt~in~x.] 0. secs (0.u,0.s) +Chars 6051 - 6073 [rewrite~tau_eutt~in~x.] 0. secs (0.u,0.s) +Chars 6085 - 6100 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) +Chars 6101 - 6111 [rewrite~x.] 0.002 secs (0.002u,0.s) +Chars 6112 - 6117 [step.] 0. secs (0.u,0.s) +Chars 6130 - 6143 [rewrite~Heq'.] 0. secs (0.u,0.s) Chars 6144 - 6149 [auto.] 0. secs (0.u,0.s) Chars 6158 - 6160 [++] 0. secs (0.u,0.s) Chars 6161 - 6173 [constructor.] 0. secs (0.u,0.s) -Chars 6174 - 6190 [(rewrite~<-~Heq').] 0. secs (0.u,0.s) +Chars 6174 - 6190 [rewrite~<-~Heq'.] 0. secs (0.u,0.s) Chars 6191 - 6205 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 6217 - 6228 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 6217 - 6228 [eapply~CIH.] 0. secs (0.u,0.s) Chars 6229 - 6245 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6257 - 6278 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6279 - 6304 [(apply~eq_sub_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 6316 - 6340 [(rewrite~tau_eutt~in~Heq).] 0. secs (0.u,0.s) -Chars 6341 - 6360 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6372 - 6395 [(apply~eq_sub_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6396 - 6418 [(rewrite~tau_eutt~in~x).] 0. secs (0.u,0.s) -Chars 6430 - 6445 [(rewrite~<-~Heq).] 0.004 secs (0.004u,0.s) -Chars 6446 - 6456 [(rewrite~x).] 0.003 secs (0.003u,0.s) -Chars 6457 - 6462 [step.] 0.001 secs (0.001u,0.s) -Chars 6475 - 6488 [(rewrite~Heq').] 0. secs (0.u,0.s) +Chars 6257 - 6278 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 6279 - 6304 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 6316 - 6340 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) +Chars 6341 - 6360 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6372 - 6395 [apply~eq_sub_eutt~in~x.] 0. secs (0.u,0.s) +Chars 6396 - 6418 [rewrite~tau_eutt~in~x.] 0. secs (0.u,0.s) +Chars 6430 - 6445 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) +Chars 6446 - 6456 [rewrite~x.] 0.002 secs (0.002u,0.s) +Chars 6457 - 6462 [step.] 0. secs (0.u,0.s) +Chars 6475 - 6488 [rewrite~Heq'.] 0. secs (0.u,0.s) Chars 6489 - 6494 [auto.] 0. secs (0.u,0.s) Chars 6497 - 6498 [-] 0. secs (0.u,0.s) -Chars 6499 - 6525 [dependent~induction~Hrutt.] 0.059 secs (0.059u,0.s) +Chars 6499 - 6525 [dependent~induction~Hrutt.] 0.043 secs (0.043u,0.s) Chars 6530 - 6531 [+] 0. secs (0.u,0.s) Chars 6532 - 6540 [exfalso.] 0. secs (0.u,0.s) Chars 6541 - 6557 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6558 - 6579 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6580 - 6599 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6606 - 6623 [(rewrite~Heq~in~x).] 0.02 secs (0.02u,0.s) -Chars 6624 - 6646 [(rewrite~bind_vis~in~x).] 0.016 secs (0.015u,0.s) -Chars 6653 - 6660 [sinv~x.] 0.003 secs (0.003u,0.s) +Chars 6558 - 6579 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 6580 - 6599 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6606 - 6623 [rewrite~Heq~in~x.] 0.011 secs (0.011u,0.s) +Chars 6624 - 6646 [rewrite~bind_vis~in~x.] 0.011 secs (0.01u,0.s) +Chars 6653 - 6660 [sinv~x.] 0.002 secs (0.002u,0.s) Chars 6665 - 6666 [+] 0. secs (0.u,0.s) Chars 6667 - 6675 [exfalso.] 0. secs (0.u,0.s) Chars 6676 - 6692 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6693 - 6714 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6715 - 6734 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6741 - 6758 [(rewrite~Heq~in~x).] 0.017 secs (0.016u,0.s) -Chars 6759 - 6781 [(rewrite~bind_vis~in~x).] 0.016 secs (0.015u,0.s) -Chars 6788 - 6806 [(sinv~x;~inv~CHECK).] 0.006 secs (0.006u,0.s) +Chars 6693 - 6714 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 6715 - 6734 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6741 - 6758 [rewrite~Heq~in~x.] 0.012 secs (0.012u,0.s) +Chars 6759 - 6781 [rewrite~bind_vis~in~x.] 0.01 secs (0.01u,0.s) +Chars 6788 - 6806 [sinv~x;~inv~CHECK.] 0.004 secs (0.004u,0.s) Chars 6811 - 6812 [+] 0. secs (0.u,0.s) -Chars 6813 - 6821 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 6813 - 6821 [simpobs.] 0.002 secs (0.002u,0.s) Chars 6828 - 6844 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6845 - 6866 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 6867 - 6886 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6893 - 6910 [(rewrite~Heq~in~x).] 0.017 secs (0.016u,0.s) -Chars 6911 - 6933 [(rewrite~bind_vis~in~x).] 0.016 secs (0.016u,0.s) -Chars 6934 - 6957 [(step~in~x;~inversion~x).] 0.006 secs (0.006u,0.s) -Chars 6965 - 6978 [ddestruction.] 0.007 secs (0.006u,0.s) -Chars 6979 - 7005 [(inversion~H;~ddestruction).] 0.018 secs (0.018u,0.s) +Chars 6845 - 6866 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 6867 - 6886 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6893 - 6910 [rewrite~Heq~in~x.] 0.011 secs (0.011u,0.s) +Chars 6911 - 6933 [rewrite~bind_vis~in~x.] 0.011 secs (0.011u,0.s) +Chars 6934 - 6957 [step~in~x;~inversion~x.] 0.004 secs (0.004u,0.s) +Chars 6965 - 6978 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 6979 - 7005 [inversion~H;~ddestruction.] 0.012 secs (0.012u,0.s) Chars 7012 - 7013 [*] 0. secs (0.u,0.s) -Chars 7014 - 7029 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 7030 - 7034 [(cbn).] 0. secs (0.u,0.s) -Chars 7035 - 7051 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 7060 - 7108 [(destruct~(classicT~(B~=~B));~...] 0.001 secs (0.001u,0.s) -Chars 7117 - 7143 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 7152 - 7178 [(remember~(eq_sym~_)~as~He).] 0.002 secs (0.002u,0.s) +Chars 7014 - 7029 [unfold~observe.] 0. secs (0.u,0.s) +Chars 7030 - 7034 [cbn.] 0. secs (0.u,0.s) +Chars 7035 - 7051 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 7060 - 7108 [destruct~(classicT~(B~=~B));~t...] 0. secs (0.u,0.s) +Chars 7117 - 7143 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 7152 - 7178 [remember~(eq_sym~_)~as~He.] 0.001 secs (0.001u,0.s) Chars 7179 - 7191 [clear~HeqHe.] 0. secs (0.u,0.s) Chars 7200 - 7225 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) -Chars 7226 - 7230 [(cbn).] 0. secs (0.u,0.s) -Chars 7231 - 7250 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) -Chars 7259 - 7266 [(intros).] 0. secs (0.u,0.s) -Chars 7267 - 7280 [(inversion~H1).] 0.003 secs (0.003u,0.s) -Chars 7281 - 7294 [ddestruction.] 0.007 secs (0.006u,0.s) -Chars 7303 - 7318 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 7320 - 7330 [(unfold~id).] 0. secs (0.u,0.s) -Chars 7331 - 7342 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7352 - 7362 [(cbn~in~x1).] 0. secs (0.u,0.s) -Chars 7363 - 7376 [(inversion~x1).] 0.002 secs (0.002u,0.s) -Chars 7377 - 7390 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 7226 - 7230 [cbn.] 0. secs (0.u,0.s) +Chars 7231 - 7250 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7259 - 7266 [intros.] 0. secs (0.u,0.s) +Chars 7267 - 7280 [inversion~H1.] 0.002 secs (0.002u,0.s) +Chars 7281 - 7294 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 7303 - 7318 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 7320 - 7330 [unfold~id.] 0. secs (0.u,0.s) +Chars 7331 - 7342 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7352 - 7362 [cbn~in~x1.] 0. secs (0.u,0.s) +Chars 7363 - 7376 [inversion~x1.] 0.002 secs (0.002u,0.s) +Chars 7377 - 7390 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 7399 - 7432 [specialize~(H0~tt~a~(rar~_~_~_)).] 0. secs (0.u,0.s) Chars 7441 - 7461 [specialize~(REL0~a).] 0. secs (0.u,0.s) -Chars 7471 - 7484 [(rewrite~REL0).] 0.003 secs (0.003u,0.s) -Chars 7485 - 7494 [(apply~H0).] 0. secs (0.u,0.s) +Chars 7471 - 7484 [rewrite~REL0.] 0.002 secs (0.002u,0.s) +Chars 7485 - 7494 [apply~H0.] 0. secs (0.u,0.s) Chars 7501 - 7502 [*] 0. secs (0.u,0.s) -Chars 7503 - 7507 [(cbn).] 0. secs (0.u,0.s) -Chars 7508 - 7527 [(constructor;~eauto).] 0.001 secs (0.001u,0.s) -Chars 7528 - 7535 [(intros).] 0. secs (0.u,0.s) +Chars 7503 - 7507 [cbn.] 0. secs (0.u,0.s) +Chars 7508 - 7527 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7528 - 7535 [intros.] 0. secs (0.u,0.s) Chars 7536 - 7550 [contradiction.] 0. secs (0.u,0.s) Chars 7555 - 7556 [+] 0. secs (0.u,0.s) -Chars 7557 - 7565 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 7566 - 7570 [(cbn).] 0. secs (0.u,0.s) +Chars 7557 - 7565 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 7566 - 7570 [cbn.] 0. secs (0.u,0.s) Chars 7571 - 7583 [constructor.] 0. secs (0.u,0.s) -Chars 7584 - 7606 [(eapply~IHHrutt;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7584 - 7606 [eapply~IHHrutt;~eauto.] 0.002 secs (0.002u,0.s) Chars 7611 - 7612 [+] 0. secs (0.u,0.s) Chars 7613 - 7621 [exfalso.] 0. secs (0.u,0.s) Chars 7622 - 7638 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 7639 - 7658 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7659 - 7680 [(apply~simpobs~in~Heq).] 0. secs (0.u,0.s) -Chars 7687 - 7704 [(rewrite~Heq~in~x).] 0.018 secs (0.017u,0.s) -Chars 7705 - 7727 [(rewrite~bind_vis~in~x).] 0.018 secs (0.018u,0.s) -Chars 7734 - 7741 [sinv~x.] 0.006 secs (0.006u,0.s) -Chars 7742 - 7746 [Qed.] 0.233 secs (0.228u,0.004s) +Chars 7639 - 7658 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 7659 - 7680 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) +Chars 7687 - 7704 [rewrite~Heq~in~x.] 0.012 secs (0.012u,0.s) +Chars 7705 - 7727 [rewrite~bind_vis~in~x.] 0.012 secs (0.012u,0.s) +Chars 7734 - 7741 [sinv~x.] 0.004 secs (0.004u,0.s) +Chars 7742 - 7746 [Qed.] 0.157 secs (0.155u,0.001s) Chars 7748 - 7824 [Lemma~not_spin_eutt_ret~:~fora...] 0. secs (0.u,0.s) Chars 7825 - 7831 [Proof.] 0. secs (0.u,0.s) -Chars 7834 - 7841 [(intros).] 0. secs (0.u,0.s) -Chars 7842 - 7857 [(intros~Hcontra).] 0. secs (0.u,0.s) +Chars 7834 - 7841 [intros.] 0. secs (0.u,0.s) +Chars 7842 - 7857 [intros~Hcontra.] 0. secs (0.u,0.s) Chars 7858 - 7898 [specialize~(@spin_infinite~E~R...] 0. secs (0.u,0.s) -Chars 7901 - 7925 [(rewrite~Hcontra~in~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 7901 - 7925 [rewrite~Hcontra~in~Hdiv.] 0.001 secs (0.001u,0.s) Chars 7926 - 7936 [sinv~Hdiv.] 0. secs (0.u,0.s) -Chars 7937 - 7941 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7937 - 7941 [Qed.] 0. secs (0.u,0.s) Chars 7944 - 8123 [Lemma~proper_peel_eutt_l~:~~~f...] 0. secs (0.u,0.s) Chars 8124 - 8130 [Proof.] 0. secs (0.u,0.s) -Chars 8133 - 8146 [(intros~E~R~S).] 0. secs (0.u,0.s) +Chars 8133 - 8146 [intros~E~R~S.] 0. secs (0.u,0.s) Chars 8147 - 8166 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8167 - 8174 [(intros).] 0. secs (0.u,0.s) -Chars 8175 - 8187 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 8190 - 8211 [(destruct~(observe~t)).] 0. secs (0.u,0.s) +Chars 8167 - 8174 [intros.] 0. secs (0.u,0.s) +Chars 8175 - 8187 [unfold~peel.] 0. secs (0.u,0.s) +Chars 8190 - 8211 [destruct~(observe~t).] 0. secs (0.u,0.s) Chars 8214 - 8215 [-] 0. secs (0.u,0.s) -Chars 8216 - 8350 [(destruct~(observe~b);~destruc...] 0.016 secs (0.015u,0.s) +Chars 8216 - 8350 [destruct~(observe~b);~destruct...] 0.01 secs (0.01u,0.s) Chars 8353 - 8354 [-] 0. secs (0.u,0.s) Chars 8355 - 8365 [step~in~H.] 0. secs (0.u,0.s) -Chars 8366 - 8388 [dependent~induction~H.] 0.057 secs (0.056u,0.s) +Chars 8366 - 8388 [dependent~induction~H.] 0.039 secs (0.038u,0.s) Chars 8393 - 8394 [+] 0. secs (0.u,0.s) -Chars 8395 - 8403 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 8404 - 8416 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8395 - 8403 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 8404 - 8416 [reflexivity.] 0. secs (0.u,0.s) Chars 8422 - 8423 [+] 0. secs (0.u,0.s) -Chars 8424 - 8432 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 8433 - 8437 [(cbn).] 0. secs (0.u,0.s) +Chars 8424 - 8432 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 8433 - 8437 [cbn.] 0. secs (0.u,0.s) Chars 8438 - 8443 [etau.] 0.001 secs (0.001u,0.s) Chars 8449 - 8450 [+] 0. secs (0.u,0.s) -Chars 8451 - 8459 [simpobs.] 0.006 secs (0.005u,0.s) -Chars 8460 - 8476 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) +Chars 8451 - 8459 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 8460 - 8476 [destruct~e;~cbn.] 0.001 secs (0.001u,0.s) Chars 8483 - 8484 [*] 0. secs (0.u,0.s) Chars 8485 - 8497 [constructor.] 0. secs (0.u,0.s) -Chars 8498 - 8512 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 8521 - 8532 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8498 - 8512 [rewrite~x,~x0.] 0. secs (0.u,0.s) +Chars 8521 - 8532 [eapply~CIH.] 0. secs (0.u,0.s) Chars 8533 - 8538 [step.] 0.001 secs (0.001u,0.s) Chars 8539 - 8547 [simpobs.] 0.002 secs (0.002u,0.s) Chars 8556 - 8561 [evis.] 0. secs (0.u,0.s) Chars 8569 - 8570 [*] 0. secs (0.u,0.s) Chars 8571 - 8583 [constructor.] 0. secs (0.u,0.s) -Chars 8584 - 8598 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 8607 - 8618 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 8584 - 8598 [rewrite~x,~x0.] 0. secs (0.u,0.s) +Chars 8607 - 8618 [eapply~CIH.] 0. secs (0.u,0.s) Chars 8619 - 8624 [step.] 0.001 secs (0.001u,0.s) Chars 8625 - 8633 [simpobs.] 0.002 secs (0.002u,0.s) Chars 8642 - 8647 [evis.] 0. secs (0.u,0.s) Chars 8653 - 8654 [+] 0. secs (0.u,0.s) -Chars 8655 - 8724 [(destruct~(observe~b);~destruc...] 0.053 secs (0.052u,0.s) +Chars 8655 - 8724 [destruct~(observe~b);~destruct...] 0.035 secs (0.035u,0.s) Chars 8731 - 8732 [*] 0. secs (0.u,0.s) -Chars 8733 - 8737 [(cbn).] 0. secs (0.u,0.s) +Chars 8733 - 8737 [cbn.] 0. secs (0.u,0.s) Chars 8738 - 8750 [constructor.] 0. secs (0.u,0.s) -Chars 8751 - 8793 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) -Chars 8802 - 8831 [(assert~(RetF~r~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 8751 - 8793 [remember~(@go~(EvAns~E)~_~(Ret...] 0. secs (0.u,0.s) +Chars 8802 - 8831 [assert~(RetF~r~=~observe~t1).] 0. secs (0.u,0.s) Chars 8840 - 8841 [{] 0. secs (0.u,0.s) -Chars 8842 - 8856 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 8842 - 8856 [rewrite~Heqt1.] 0. secs (0.u,0.s) Chars 8857 - 8862 [auto.] 0. secs (0.u,0.s) Chars 8863 - 8864 [}] 0. secs (0.u,0.s) -Chars 8873 - 8884 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 8885 - 8896 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8897 - 8911 [(rewrite~Heqt1).] 0. secs (0.u,0.s) -Chars 8912 - 8917 [step.] 0.002 secs (0.002u,0.s) +Chars 8873 - 8884 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 8885 - 8896 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8897 - 8911 [rewrite~Heqt1.] 0. secs (0.u,0.s) +Chars 8912 - 8917 [step.] 0.001 secs (0.001u,0.s) Chars 8918 - 8923 [auto.] 0. secs (0.u,0.s) Chars 8930 - 8931 [*] 0. secs (0.u,0.s) -Chars 8932 - 8936 [(cbn).] 0. secs (0.u,0.s) +Chars 8932 - 8936 [cbn.] 0. secs (0.u,0.s) Chars 8937 - 8949 [constructor.] 0. secs (0.u,0.s) -Chars 8950 - 8961 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8971 - 8994 [(enough~(t2~≈~Tau~t3)).] 0. secs (0.u,0.s) +Chars 8950 - 8961 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8971 - 8994 [enough~(t2~≈~Tau~t3).] 0. secs (0.u,0.s) Chars 9003 - 9004 [{] 0. secs (0.u,0.s) -Chars 9005 - 9028 [(rewrite~tau_eutt~in~H0).] 0.001 secs (0.001u,0.s) +Chars 9005 - 9028 [rewrite~tau_eutt~in~H0.] 0. secs (0.u,0.s) Chars 9029 - 9034 [auto.] 0. secs (0.u,0.s) Chars 9035 - 9036 [}] 0. secs (0.u,0.s) -Chars 9045 - 9050 [step.] 0.002 secs (0.002u,0.s) +Chars 9045 - 9050 [step.] 0.001 secs (0.001u,0.s) Chars 9051 - 9056 [auto.] 0. secs (0.u,0.s) Chars 9063 - 9064 [*] 0. secs (0.u,0.s) -Chars 9065 - 9081 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 9065 - 9081 [destruct~e;~cbn.] 0.002 secs (0.002u,0.s) Chars 9090 - 9092 [++] 0. secs (0.u,0.s) Chars 9093 - 9105 [constructor.] 0. secs (0.u,0.s) -Chars 9117 - 9179 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) -Chars 9191 - 9238 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) +Chars 9117 - 9179 [remember~(@go~(EvAns~E)~_~(Vis...] 0. secs (0.u,0.s) +Chars 9191 - 9238 [assert~(VisF~(evans~A~ev~ans)~...] 0. secs (0.u,0.s) Chars 9250 - 9251 [{] 0. secs (0.u,0.s) -Chars 9252 - 9266 [(rewrite~Heqt1).] 0. secs (0.u,0.s) +Chars 9252 - 9266 [rewrite~Heqt1.] 0. secs (0.u,0.s) Chars 9267 - 9272 [auto.] 0. secs (0.u,0.s) Chars 9273 - 9274 [}] 0. secs (0.u,0.s) -Chars 9286 - 9297 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 9298 - 9309 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9286 - 9297 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 9298 - 9309 [eapply~CIH.] 0. secs (0.u,0.s) Chars 9310 - 9316 [subst.] 0. secs (0.u,0.s) -Chars 9317 - 9322 [step.] 0.002 secs (0.002u,0.s) +Chars 9317 - 9322 [step.] 0.001 secs (0.001u,0.s) Chars 9323 - 9328 [auto.] 0. secs (0.u,0.s) Chars 9337 - 9339 [++] 0. secs (0.u,0.s) Chars 9340 - 9352 [constructor.] 0. secs (0.u,0.s) -Chars 9364 - 9418 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) -Chars 9430 - 9482 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) +Chars 9364 - 9418 [remember~(go~(VisF~(evempty~A~...] 0.002 secs (0.001u,0.s) +Chars 9430 - 9482 [assert~(VisF~(evempty~A~Hempty...] 0. secs (0.u,0.s) Chars 9494 - 9495 [{] 0. secs (0.u,0.s) Chars 9496 - 9502 [subst.] 0. secs (0.u,0.s) Chars 9503 - 9508 [auto.] 0. secs (0.u,0.s) Chars 9509 - 9510 [}] 0. secs (0.u,0.s) -Chars 9522 - 9533 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 9534 - 9545 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 9522 - 9533 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 9534 - 9545 [eapply~CIH.] 0. secs (0.u,0.s) Chars 9546 - 9552 [subst.] 0. secs (0.u,0.s) -Chars 9553 - 9558 [step.] 0.002 secs (0.001u,0.s) +Chars 9553 - 9558 [step.] 0.001 secs (0.001u,0.s) Chars 9559 - 9564 [auto.] 0. secs (0.u,0.s) Chars 9569 - 9570 [+] 0. secs (0.u,0.s) -Chars 9571 - 9640 [(destruct~(observe~b);~destruc...] 0.046 secs (0.045u,0.s) +Chars 9571 - 9640 [destruct~(observe~b);~destruct...] 0.032 secs (0.031u,0.s) Chars 9647 - 9648 [*] 0. secs (0.u,0.s) -Chars 9649 - 9653 [(cbn).] 0. secs (0.u,0.s) +Chars 9649 - 9653 [cbn.] 0. secs (0.u,0.s) Chars 9654 - 9666 [constructor.] 0. secs (0.u,0.s) -Chars 9667 - 9709 [(remember~(@go~(EvAns~E)~_~(Re...] 0.001 secs (0.001u,0.s) -Chars 9718 - 9747 [(assert~(RetF~r~=~observe~t2)).] 0. secs (0.u,0.s) +Chars 9667 - 9709 [remember~(@go~(EvAns~E)~_~(Ret...] 0. secs (0.u,0.s) +Chars 9718 - 9747 [assert~(RetF~r~=~observe~t2).] 0. secs (0.u,0.s) Chars 9756 - 9757 [{] 0. secs (0.u,0.s) Chars 9758 - 9764 [subst.] 0. secs (0.u,0.s) Chars 9765 - 9770 [auto.] 0. secs (0.u,0.s) Chars 9771 - 9772 [}] 0. secs (0.u,0.s) -Chars 9781 - 9792 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 9793 - 9804 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9805 - 9819 [(rewrite~Heqt2).] 0. secs (0.u,0.s) +Chars 9781 - 9792 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 9793 - 9804 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9805 - 9819 [rewrite~Heqt2.] 0. secs (0.u,0.s) Chars 9820 - 9825 [step.] 0.001 secs (0.001u,0.s) Chars 9826 - 9831 [auto.] 0. secs (0.u,0.s) Chars 9838 - 9839 [*] 0. secs (0.u,0.s) -Chars 9840 - 9844 [(cbn).] 0. secs (0.u,0.s) -Chars 9845 - 9857 [constructor.] 0.001 secs (0.001u,0.s) -Chars 9858 - 9869 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9879 - 9902 [(enough~(Tau~t1~≈~t3)).] 0. secs (0.u,0.s) +Chars 9840 - 9844 [cbn.] 0. secs (0.u,0.s) +Chars 9845 - 9857 [constructor.] 0. secs (0.u,0.s) +Chars 9858 - 9869 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9879 - 9902 [enough~(Tau~t1~≈~t3).] 0. secs (0.u,0.s) Chars 9911 - 9912 [{] 0. secs (0.u,0.s) -Chars 9913 - 9936 [(rewrite~tau_eutt~in~H0).] 0.021 secs (0.02u,0.s) +Chars 9913 - 9936 [rewrite~tau_eutt~in~H0.] 0.014 secs (0.014u,0.s) Chars 9937 - 9942 [auto.] 0. secs (0.u,0.s) Chars 9943 - 9944 [}] 0. secs (0.u,0.s) Chars 9953 - 9958 [step.] 0.001 secs (0.001u,0.s) Chars 9959 - 9964 [auto.] 0. secs (0.u,0.s) Chars 9971 - 9972 [*] 0. secs (0.u,0.s) -Chars 9973 - 9989 [(destruct~e;~cbn).] 0.003 secs (0.003u,0.s) +Chars 9973 - 9989 [destruct~e;~cbn.] 0.002 secs (0.002u,0.s) Chars 9998 - 10000 [++] 0. secs (0.u,0.s) Chars 10001 - 10013 [constructor.] 0. secs (0.u,0.s) -Chars 10026 - 10088 [(remember~(@go~(EvAns~E)~_~(Vi...] 0.001 secs (0.001u,0.s) -Chars 10100 - 10147 [(assert~(VisF~(evans~A~ev~ans)...] 0. secs (0.u,0.s) +Chars 10026 - 10088 [remember~(@go~(EvAns~E)~_~(Vis...] 0. secs (0.u,0.s) +Chars 10100 - 10147 [assert~(VisF~(evans~A~ev~ans)~...] 0. secs (0.u,0.s) Chars 10159 - 10160 [{] 0. secs (0.u,0.s) Chars 10161 - 10167 [subst.] 0. secs (0.u,0.s) Chars 10168 - 10173 [auto.] 0. secs (0.u,0.s) Chars 10174 - 10175 [}] 0. secs (0.u,0.s) -Chars 10187 - 10198 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 10199 - 10210 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10187 - 10198 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 10199 - 10210 [eapply~CIH.] 0. secs (0.u,0.s) Chars 10211 - 10217 [subst.] 0. secs (0.u,0.s) Chars 10218 - 10223 [step.] 0.001 secs (0.001u,0.s) Chars 10224 - 10229 [auto.] 0. secs (0.u,0.s) Chars 10238 - 10240 [++] 0. secs (0.u,0.s) Chars 10241 - 10253 [constructor.] 0. secs (0.u,0.s) -Chars 10266 - 10320 [(remember~(go~(VisF~(evempty~A...] 0.001 secs (0.001u,0.s) -Chars 10332 - 10384 [(assert~(VisF~(evempty~A~Hempt...] 0. secs (0.u,0.s) +Chars 10266 - 10320 [remember~(go~(VisF~(evempty~A~...] 0. secs (0.u,0.s) +Chars 10332 - 10384 [assert~(VisF~(evempty~A~Hempty...] 0. secs (0.u,0.s) Chars 10396 - 10397 [{] 0. secs (0.u,0.s) Chars 10398 - 10404 [subst.] 0. secs (0.u,0.s) Chars 10405 - 10410 [auto.] 0. secs (0.u,0.s) Chars 10411 - 10412 [}] 0. secs (0.u,0.s) -Chars 10424 - 10435 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 10436 - 10447 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10424 - 10435 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 10436 - 10447 [eapply~CIH.] 0. secs (0.u,0.s) Chars 10448 - 10454 [subst.] 0. secs (0.u,0.s) -Chars 10455 - 10460 [step.] 0.002 secs (0.002u,0.s) +Chars 10455 - 10460 [step.] 0.001 secs (0.001u,0.s) Chars 10461 - 10466 [auto.] 0. secs (0.u,0.s) Chars 10469 - 10470 [-] 0. secs (0.u,0.s) Chars 10471 - 10481 [step~in~H.] 0. secs (0.u,0.s) -Chars 10482 - 10504 [dependent~induction~H.] 0.052 secs (0.052u,0.s) +Chars 10482 - 10504 [dependent~induction~H.] 0.039 secs (0.038u,0.s) Chars 10509 - 10510 [+] 0. secs (0.u,0.s) -Chars 10511 - 10519 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 10520 - 10532 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10511 - 10519 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 10520 - 10532 [reflexivity.] 0. secs (0.u,0.s) Chars 10537 - 10538 [+] 0. secs (0.u,0.s) -Chars 10539 - 10547 [simpobs.] 0.006 secs (0.005u,0.s) -Chars 10548 - 10552 [(cbn).] 0. secs (0.u,0.s) +Chars 10539 - 10547 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 10548 - 10552 [cbn.] 0. secs (0.u,0.s) Chars 10553 - 10565 [constructor.] 0. secs (0.u,0.s) -Chars 10572 - 10604 [(remember~(go~(VisF~e~k))~as~t0).] 0. secs (0.u,0.s) -Chars 10611 - 10642 [(assert~(VisF~e~k~=~observe~t0)).] 0. secs (0.u,0.s) +Chars 10572 - 10604 [remember~(go~(VisF~e~k))~as~t0.] 0. secs (0.u,0.s) +Chars 10611 - 10642 [assert~(VisF~e~k~=~observe~t0).] 0. secs (0.u,0.s) Chars 10649 - 10650 [{] 0. secs (0.u,0.s) Chars 10651 - 10657 [subst.] 0. secs (0.u,0.s) Chars 10658 - 10663 [auto.] 0. secs (0.u,0.s) Chars 10664 - 10665 [}] 0. secs (0.u,0.s) -Chars 10672 - 10682 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 10683 - 10694 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10672 - 10682 [rewrite~H.] 0. secs (0.u,0.s) +Chars 10683 - 10694 [eapply~CIH.] 0. secs (0.u,0.s) Chars 10696 - 10701 [auto.] 0. secs (0.u,0.s) Chars 10706 - 10707 [+] 0. secs (0.u,0.s) -Chars 10708 - 10716 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 10717 - 10733 [(destruct~e;~cbn).] 0.001 secs (0.001u,0.s) +Chars 10708 - 10716 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 10717 - 10733 [destruct~e;~cbn.] 0.001 secs (0.001u,0.s) Chars 10740 - 10741 [*] 0. secs (0.u,0.s) -Chars 10742 - 10757 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 10758 - 10762 [(cbn).] 0. secs (0.u,0.s) -Chars 10763 - 10779 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 10788 - 10817 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 10742 - 10757 [unfold~observe.] 0. secs (0.u,0.s) +Chars 10758 - 10762 [cbn.] 0. secs (0.u,0.s) +Chars 10763 - 10779 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 10788 - 10817 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) Chars 10826 - 10828 [++] 0. secs (0.u,0.s) -Chars 10829 - 10855 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 10856 - 10882 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 10829 - 10855 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 10856 - 10882 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) Chars 10894 - 10919 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 10920 - 10924 [(cbn).] 0. secs (0.u,0.s) +Chars 10920 - 10924 [cbn.] 0. secs (0.u,0.s) Chars 10925 - 10937 [constructor.] 0. secs (0.u,0.s) -Chars 10938 - 10945 [(intros).] 0. secs (0.u,0.s) -Chars 10957 - 10968 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 10938 - 10945 [intros.] 0. secs (0.u,0.s) +Chars 10957 - 10968 [eapply~CIH.] 0. secs (0.u,0.s) Chars 10971 - 10987 [auto~with~itree.] 0. secs (0.u,0.s) Chars 10996 - 10998 [++] 0. secs (0.u,0.s) -Chars 10999 - 11011 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10999 - 11011 [reflexivity.] 0. secs (0.u,0.s) Chars 11018 - 11019 [*] 0. secs (0.u,0.s) Chars 11020 - 11032 [constructor.] 0. secs (0.u,0.s) Chars 11033 - 11047 [contradiction.] 0. secs (0.u,0.s) Chars 11052 - 11053 [+] 0. secs (0.u,0.s) -Chars 11054 - 11062 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 11063 - 11095 [(destruct~(observe~b')~eqn:Heq).] 0.004 secs (0.004u,0.s) +Chars 11054 - 11062 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 11063 - 11095 [destruct~(observe~b')~eqn:Heq.] 0.003 secs (0.003u,0.s) Chars 11102 - 11103 [*] 0. secs (0.u,0.s) -Chars 11104 - 11119 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11120 - 11124 [(cbn).] 0. secs (0.u,0.s) -Chars 11125 - 11143 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 11144 - 11166 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 11167 - 11179 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11104 - 11119 [rewrite~<-~Heq.] 0. secs (0.u,0.s) +Chars 11120 - 11124 [cbn.] 0. secs (0.u,0.s) +Chars 11125 - 11143 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 11144 - 11166 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 11167 - 11179 [rewrite~Heq.] 0. secs (0.u,0.s) Chars 11180 - 11185 [auto.] 0. secs (0.u,0.s) Chars 11192 - 11193 [*] 0. secs (0.u,0.s) -Chars 11194 - 11198 [(cbn).] 0. secs (0.u,0.s) +Chars 11194 - 11198 [cbn.] 0. secs (0.u,0.s) Chars 11199 - 11211 [constructor.] 0. secs (0.u,0.s) -Chars 11220 - 11252 [(remember~(go~(VisF~e~k))~as~t2).] 0. secs (0.u,0.s) -Chars 11261 - 11292 [(assert~(VisF~e~k~=~observe~t2)).] 0. secs (0.u,0.s) +Chars 11220 - 11252 [remember~(go~(VisF~e~k))~as~t2.] 0. secs (0.u,0.s) +Chars 11261 - 11292 [assert~(VisF~e~k~=~observe~t2).] 0. secs (0.u,0.s) Chars 11301 - 11302 [{] 0. secs (0.u,0.s) Chars 11303 - 11309 [subst.] 0. secs (0.u,0.s) Chars 11310 - 11315 [auto.] 0. secs (0.u,0.s) Chars 11316 - 11317 [}] 0. secs (0.u,0.s) -Chars 11326 - 11337 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 11338 - 11349 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 11358 - 11381 [(enough~(t1~≈~Tau~t0)).] 0. secs (0.u,0.s) +Chars 11326 - 11337 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 11338 - 11349 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 11358 - 11381 [enough~(t1~≈~Tau~t0).] 0. secs (0.u,0.s) Chars 11390 - 11391 [{] 0. secs (0.u,0.s) -Chars 11392 - 11415 [(rewrite~tau_eutt~in~H1).] 0.001 secs (0.001u,0.s) +Chars 11392 - 11415 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) Chars 11416 - 11421 [auto.] 0. secs (0.u,0.s) Chars 11422 - 11423 [}] 0. secs (0.u,0.s) -Chars 11432 - 11443 [(step;~auto).] 0.002 secs (0.002u,0.s) +Chars 11432 - 11443 [step;~auto.] 0.001 secs (0.001u,0.s) Chars 11450 - 11451 [*] 0. secs (0.u,0.s) -Chars 11452 - 11456 [(cbn).] 0. secs (0.u,0.s) -Chars 11457 - 11476 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 11477 - 11492 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11493 - 11515 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 11524 - 11536 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11452 - 11456 [cbn.] 0. secs (0.u,0.s) +Chars 11457 - 11476 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 11477 - 11492 [rewrite~<-~Heq.] 0. secs (0.u,0.s) +Chars 11493 - 11515 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 11524 - 11536 [rewrite~Heq.] 0. secs (0.u,0.s) Chars 11537 - 11542 [auto.] 0. secs (0.u,0.s) Chars 11547 - 11548 [+] 0. secs (0.u,0.s) Chars 11549 - 11557 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 11558 - 11589 [(destruct~(observe~b)~eqn:Heq).] 0.004 secs (0.004u,0.s) +Chars 11558 - 11589 [destruct~(observe~b)~eqn:Heq.] 0.002 secs (0.002u,0.s) Chars 11596 - 11597 [*] 0. secs (0.u,0.s) -Chars 11598 - 11613 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11614 - 11618 [(cbn).] 0. secs (0.u,0.s) -Chars 11619 - 11637 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 11638 - 11660 [(eapply~IHeqitF;~eauto).] 0.004 secs (0.004u,0.s) -Chars 11661 - 11673 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11598 - 11613 [rewrite~<-~Heq.] 0. secs (0.u,0.s) +Chars 11614 - 11618 [cbn.] 0. secs (0.u,0.s) +Chars 11619 - 11637 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 11638 - 11660 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 11661 - 11673 [rewrite~Heq.] 0. secs (0.u,0.s) Chars 11674 - 11679 [auto.] 0. secs (0.u,0.s) Chars 11686 - 11687 [*] 0. secs (0.u,0.s) -Chars 11688 - 11692 [(cbn).] 0. secs (0.u,0.s) +Chars 11688 - 11692 [cbn.] 0. secs (0.u,0.s) Chars 11693 - 11705 [constructor.] 0. secs (0.u,0.s) -Chars 11714 - 11746 [(remember~(go~(VisF~e~k))~as~t1).] 0. secs (0.u,0.s) -Chars 11755 - 11786 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 11714 - 11746 [remember~(go~(VisF~e~k))~as~t1.] 0. secs (0.u,0.s) +Chars 11755 - 11786 [assert~(VisF~e~k~=~observe~t1).] 0. secs (0.u,0.s) Chars 11795 - 11796 [{] 0. secs (0.u,0.s) Chars 11797 - 11803 [subst.] 0. secs (0.u,0.s) Chars 11804 - 11809 [auto.] 0. secs (0.u,0.s) Chars 11810 - 11811 [}] 0. secs (0.u,0.s) -Chars 11820 - 11831 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 11832 - 11843 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 11852 - 11875 [(enough~(Tau~t0~≈~t2)).] 0. secs (0.u,0.s) +Chars 11820 - 11831 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 11832 - 11843 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 11852 - 11875 [enough~(Tau~t0~≈~t2).] 0. secs (0.u,0.s) Chars 11884 - 11885 [{] 0. secs (0.u,0.s) -Chars 11886 - 11909 [(rewrite~tau_eutt~in~H1).] 0.022 secs (0.022u,0.s) +Chars 11886 - 11909 [rewrite~tau_eutt~in~H1.] 0.014 secs (0.014u,0.s) Chars 11910 - 11915 [auto.] 0. secs (0.u,0.s) Chars 11916 - 11917 [}] 0. secs (0.u,0.s) -Chars 11926 - 11937 [(step;~auto).] 0.002 secs (0.002u,0.s) +Chars 11926 - 11937 [step;~auto.] 0.001 secs (0.001u,0.s) Chars 11944 - 11945 [*] 0. secs (0.u,0.s) -Chars 11946 - 11950 [(cbn).] 0. secs (0.u,0.s) -Chars 11951 - 11970 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 11971 - 11986 [(rewrite~<-~Heq).] 0. secs (0.u,0.s) -Chars 11987 - 12009 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 12018 - 12030 [(rewrite~Heq).] 0. secs (0.u,0.s) +Chars 11946 - 11950 [cbn.] 0. secs (0.u,0.s) +Chars 11951 - 11970 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 11971 - 11986 [rewrite~<-~Heq.] 0. secs (0.u,0.s) +Chars 11987 - 12009 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 12018 - 12030 [rewrite~Heq.] 0. secs (0.u,0.s) Chars 12031 - 12036 [auto.] 0. secs (0.u,0.s) -Chars 12037 - 12041 [Qed.] 0.223 secs (0.219u,0.004s) +Chars 12037 - 12041 [Qed.] 0.167 secs (0.166u,0.001s) Chars 12045 - 12223 [Lemma~proper_peel_eutt_r~:~~~f...] 0. secs (0.u,0.s) Chars 12224 - 12230 [Proof.] 0. secs (0.u,0.s) -Chars 12233 - 12246 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 12247 - 12265 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 12266 - 12273 [(intros).] 0. secs (0.u,0.s) -Chars 12276 - 12288 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 12289 - 12321 [(destruct~(observe~b)~eqn:Heqb).] 0.001 secs (0.001u,0.s) +Chars 12233 - 12246 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 12247 - 12265 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 12266 - 12273 [intros.] 0. secs (0.u,0.s) +Chars 12276 - 12288 [unfold~peel.] 0. secs (0.u,0.s) +Chars 12289 - 12321 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) Chars 12324 - 12325 [-] 0. secs (0.u,0.s) Chars 12326 - 12336 [step~in~H.] 0. secs (0.u,0.s) -Chars 12337 - 12359 [dependent~induction~H.] 0.047 secs (0.046u,0.s) +Chars 12337 - 12359 [dependent~induction~H.] 0.035 secs (0.035u,0.s) Chars 12364 - 12365 [+] 0. secs (0.u,0.s) -Chars 12366 - 12374 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 12366 - 12374 [simpobs.] 0.002 secs (0.002u,0.s) Chars 12375 - 12387 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 12392 - 12393 [+] 0. secs (0.u,0.s) -Chars 12394 - 12402 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12403 - 12407 [(cbn).] 0. secs (0.u,0.s) +Chars 12394 - 12402 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12403 - 12407 [cbn.] 0. secs (0.u,0.s) Chars 12408 - 12420 [constructor.] 0. secs (0.u,0.s) -Chars 12421 - 12437 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 12444 - 12455 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 12421 - 12437 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 12444 - 12455 [eapply~CIH.] 0. secs (0.u,0.s) Chars 12457 - 12462 [auto.] 0. secs (0.u,0.s) Chars 12467 - 12468 [+] 0. secs (0.u,0.s) Chars 12469 - 12477 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12478 - 12482 [(cbn).] 0. secs (0.u,0.s) -Chars 12483 - 12495 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 12478 - 12482 [cbn.] 0. secs (0.u,0.s) +Chars 12483 - 12495 [reflexivity.] 0. secs (0.u,0.s) Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12510 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 12511 - 12515 [(cbn).] 0. secs (0.u,0.s) -Chars 12516 - 12534 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 12535 - 12557 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 12502 - 12510 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 12511 - 12515 [cbn.] 0. secs (0.u,0.s) +Chars 12516 - 12534 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 12535 - 12557 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) Chars 12562 - 12563 [+] 0. secs (0.u,0.s) -Chars 12564 - 12572 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12573 - 12577 [(cbn).] 0. secs (0.u,0.s) -Chars 12578 - 12596 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 12597 - 12619 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 12564 - 12572 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 12573 - 12577 [cbn.] 0. secs (0.u,0.s) +Chars 12578 - 12596 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 12597 - 12619 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) Chars 12622 - 12623 [-] 0. secs (0.u,0.s) Chars 12624 - 12634 [step~in~H.] 0. secs (0.u,0.s) -Chars 12635 - 12657 [dependent~induction~H.] 0.049 secs (0.048u,0.s) +Chars 12635 - 12657 [dependent~induction~H.] 0.033 secs (0.033u,0.s) Chars 12662 - 12663 [+] 0. secs (0.u,0.s) -Chars 12664 - 12672 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12673 - 12677 [(cbn).] 0. secs (0.u,0.s) +Chars 12664 - 12672 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 12673 - 12677 [cbn.] 0. secs (0.u,0.s) Chars 12678 - 12690 [constructor.] 0. secs (0.u,0.s) Chars 12691 - 12696 [auto.] 0. secs (0.u,0.s) Chars 12701 - 12702 [+] 0. secs (0.u,0.s) -Chars 12703 - 12711 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12712 - 12716 [(cbn).] 0. secs (0.u,0.s) +Chars 12703 - 12711 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 12712 - 12716 [cbn.] 0. secs (0.u,0.s) Chars 12717 - 12722 [etau.] 0.001 secs (0.001u,0.s) Chars 12728 - 12729 [+] 0. secs (0.u,0.s) -Chars 12730 - 12738 [simpobs.] 0.009 secs (0.008u,0.s) -Chars 12739 - 12743 [(cbn).] 0. secs (0.u,0.s) +Chars 12730 - 12738 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12739 - 12743 [cbn.] 0. secs (0.u,0.s) Chars 12744 - 12756 [constructor.] 0. secs (0.u,0.s) -Chars 12763 - 12777 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 12780 - 12791 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 12763 - 12777 [rewrite~x,~x0.] 0. secs (0.u,0.s) +Chars 12780 - 12791 [eapply~CIH.] 0. secs (0.u,0.s) Chars 12798 - 12803 [step.] 0.001 secs (0.001u,0.s) -Chars 12804 - 12812 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 12804 - 12812 [simpobs.] 0.002 secs (0.002u,0.s) Chars 12820 - 12832 [constructor.] 0. secs (0.u,0.s) Chars 12833 - 12838 [auto.] 0. secs (0.u,0.s) Chars 12843 - 12844 [+] 0. secs (0.u,0.s) -Chars 12845 - 12853 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12854 - 12888 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) +Chars 12845 - 12853 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 12854 - 12888 [destruct~(observe~t')~eqn:Heqt'.] 0.004 secs (0.004u,0.s) Chars 12895 - 12896 [*] 0. secs (0.u,0.s) -Chars 12897 - 12901 [(cbn).] 0. secs (0.u,0.s) -Chars 12903 - 12921 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 12897 - 12901 [cbn.] 0. secs (0.u,0.s) +Chars 12903 - 12921 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 12922 - 12936 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 12945 - 12967 [dependent~induction~H.] 0.057 secs (0.056u,0.s) +Chars 12945 - 12967 [dependent~induction~H.] 0.04 secs (0.04u,0.s) Chars 12976 - 12978 [++] 0. secs (0.u,0.s) -Chars 12979 - 12987 [simpobs.] 0.006 secs (0.005u,0.s) -Chars 12988 - 13046 [(destruct~(observe~t0);~cbn;~t...] 0.001 secs (0.001u,0.s) -Chars 13058 - 13093 [(destruct~e;~cbn;~constructor;...] 0.001 secs (0.001u,0.s) +Chars 12979 - 12987 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 12988 - 13046 [destruct~(observe~t0);~cbn;~tr...] 0.001 secs (0.001u,0.s) +Chars 13058 - 13093 [destruct~e;~cbn;~constructor;~...] 0.001 secs (0.001u,0.s) Chars 13102 - 13104 [++] 0. secs (0.u,0.s) -Chars 13105 - 13113 [simpobs.] 0.011 secs (0.011u,0.s) -Chars 13114 - 13118 [(cbn).] 0. secs (0.u,0.s) -Chars 13119 - 13158 [(destruct~(observe~t2)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 13105 - 13113 [simpobs.] 0.012 secs (0.012u,0.s) +Chars 13114 - 13118 [cbn.] 0. secs (0.u,0.s) +Chars 13119 - 13158 [destruct~(observe~t2)~eqn:Heqt...] 0.001 secs (0.001u,0.s) Chars 13170 - 13172 [**] 0. secs (0.u,0.s) -Chars 13173 - 13192 [(constructor;~eauto).] 0.006 secs (0.006u,0.s) -Chars 13193 - 13210 [(rewrite~<-~Heqt2).] 0. secs (0.u,0.s) -Chars 13212 - 13234 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13173 - 13192 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13193 - 13210 [rewrite~<-~Heqt2.] 0. secs (0.u,0.s) +Chars 13212 - 13234 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) Chars 13246 - 13248 [**] 0. secs (0.u,0.s) -Chars 13249 - 13267 [(constructor;~auto).] 0.002 secs (0.001u,0.s) -Chars 13268 - 13290 [(eapply~IHeqitF;~eauto).] 0.003 secs (0.003u,0.s) +Chars 13249 - 13267 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 13268 - 13290 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) Chars 13302 - 13304 [**] 0. secs (0.u,0.s) -Chars 13305 - 13403 [(destruct~e;~cbn;~~~try~(const...] 0.012 secs (0.012u,0.s) +Chars 13305 - 13403 [destruct~e;~cbn;~~try~(constru...] 0.009 secs (0.009u,0.s) Chars 13410 - 13411 [*] 0. secs (0.u,0.s) -Chars 13412 - 13416 [(cbn).] 0. secs (0.u,0.s) +Chars 13412 - 13416 [cbn.] 0. secs (0.u,0.s) Chars 13417 - 13429 [constructor.] 0. secs (0.u,0.s) -Chars 13430 - 13448 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 13457 - 13480 [(enough~(t1~≈~Tau~t2)).] 0. secs (0.u,0.s) +Chars 13430 - 13448 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 13457 - 13480 [enough~(t1~≈~Tau~t2).] 0. secs (0.u,0.s) Chars 13489 - 13490 [{] 0. secs (0.u,0.s) -Chars 13491 - 13514 [(rewrite~tau_eutt~in~H0).] 0. secs (0.u,0.s) +Chars 13491 - 13514 [rewrite~tau_eutt~in~H0.] 0. secs (0.u,0.s) Chars 13515 - 13520 [auto.] 0. secs (0.u,0.s) Chars 13521 - 13522 [}] 0. secs (0.u,0.s) Chars 13531 - 13536 [step.] 0.001 secs (0.001u,0.s) Chars 13537 - 13542 [auto.] 0. secs (0.u,0.s) Chars 13549 - 13550 [*] 0. secs (0.u,0.s) -Chars 13551 - 13555 [(cbn).] 0. secs (0.u,0.s) +Chars 13551 - 13555 [cbn.] 0. secs (0.u,0.s) Chars 13556 - 13568 [constructor.] 0. secs (0.u,0.s) -Chars 13569 - 13586 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) -Chars 13587 - 13598 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 13569 - 13586 [rewrite~<-~Heqt'.] 0. secs (0.u,0.s) +Chars 13587 - 13598 [eapply~CIH.] 0. secs (0.u,0.s) Chars 13608 - 13613 [step.] 0.001 secs (0.001u,0.s) -Chars 13614 - 13628 [(rewrite~Heqt').] 0. secs (0.u,0.s) +Chars 13614 - 13628 [rewrite~Heqt'.] 0. secs (0.u,0.s) Chars 13629 - 13634 [auto.] 0. secs (0.u,0.s) Chars 13639 - 13640 [+] 0. secs (0.u,0.s) -Chars 13641 - 13649 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13650 - 13671 [(destruct~(observe~t)).] 0.004 secs (0.004u,0.s) +Chars 13641 - 13649 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13650 - 13671 [destruct~(observe~t).] 0.002 secs (0.002u,0.s) Chars 13678 - 13679 [*] 0. secs (0.u,0.s) -Chars 13680 - 13684 [(cbn).] 0. secs (0.u,0.s) -Chars 13685 - 13703 [(constructor;~auto).] 0.002 secs (0.001u,0.s) +Chars 13680 - 13684 [cbn.] 0. secs (0.u,0.s) +Chars 13685 - 13703 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 13704 - 13718 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 13727 - 13749 [dependent~induction~H.] 0.038 secs (0.037u,0.s) +Chars 13727 - 13749 [dependent~induction~H.] 0.027 secs (0.027u,0.s) Chars 13758 - 13760 [++] 0. secs (0.u,0.s) -Chars 13761 - 13769 [simpobs.] 0.003 secs (0.002u,0.s) -Chars 13770 - 13834 [(destruct~(observe~t0);~try~de...] 0.002 secs (0.002u,0.s) +Chars 13761 - 13769 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13770 - 13834 [destruct~(observe~t0);~try~des...] 0.002 secs (0.002u,0.s) Chars 13843 - 13845 [++] 0. secs (0.u,0.s) -Chars 13846 - 13854 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 13855 - 13894 [(destruct~(observe~t1)~eqn:Heq...] 0.001 secs (0.001u,0.s) +Chars 13846 - 13854 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13855 - 13894 [destruct~(observe~t1)~eqn:Heqt...] 0.001 secs (0.001u,0.s) Chars 13906 - 13908 [**] 0. secs (0.u,0.s) -Chars 13909 - 13927 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 13928 - 13945 [(rewrite~<-~Heqt1).] 0. secs (0.u,0.s) -Chars 13946 - 13968 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 13909 - 13927 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 13928 - 13945 [rewrite~<-~Heqt1.] 0. secs (0.u,0.s) +Chars 13946 - 13968 [eapply~IHeqitF;~eauto.] 0.005 secs (0.005u,0.s) Chars 13980 - 13982 [**] 0. secs (0.u,0.s) -Chars 13983 - 14001 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 14002 - 14024 [(eapply~IHeqitF;~eauto).] 0.009 secs (0.009u,0.s) +Chars 13983 - 14001 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 14002 - 14024 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) Chars 14036 - 14038 [**] 0. secs (0.u,0.s) -Chars 14039 - 14121 [(destruct~e;~cbn;~~~try~(const...] 0.011 secs (0.011u,0.s) +Chars 14039 - 14121 [destruct~e;~cbn;~~try~(constru...] 0.008 secs (0.008u,0.s) Chars 14128 - 14129 [*] 0. secs (0.u,0.s) -Chars 14130 - 14134 [(cbn).] 0. secs (0.u,0.s) +Chars 14130 - 14134 [cbn.] 0. secs (0.u,0.s) Chars 14135 - 14147 [constructor.] 0. secs (0.u,0.s) -Chars 14148 - 14166 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 14175 - 14200 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) +Chars 14148 - 14166 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 14175 - 14200 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) Chars 14201 - 14206 [step.] 0.001 secs (0.001u,0.s) Chars 14207 - 14212 [auto.] 0. secs (0.u,0.s) Chars 14219 - 14220 [*] 0. secs (0.u,0.s) -Chars 14221 - 14225 [(cbn).] 0. secs (0.u,0.s) +Chars 14221 - 14225 [cbn.] 0. secs (0.u,0.s) Chars 14226 - 14238 [constructor.] 0. secs (0.u,0.s) -Chars 14239 - 14267 [(remember~(Vis~e~k)~as~t1).] 0.001 secs (0.001u,0.s) -Chars 14276 - 14307 [(assert~(VisF~e~k~=~observe~t1)).] 0. secs (0.u,0.s) +Chars 14239 - 14267 [remember~(Vis~e~k)~as~t1.] 0. secs (0.u,0.s) +Chars 14276 - 14307 [assert~(VisF~e~k~=~observe~t1).] 0. secs (0.u,0.s) Chars 14316 - 14317 [{] 0. secs (0.u,0.s) Chars 14318 - 14324 [subst.] 0. secs (0.u,0.s) Chars 14325 - 14330 [auto.] 0. secs (0.u,0.s) Chars 14331 - 14332 [}] 0. secs (0.u,0.s) -Chars 14341 - 14352 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 14353 - 14364 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 14341 - 14352 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 14353 - 14364 [eapply~CIH.] 0. secs (0.u,0.s) Chars 14365 - 14371 [subst.] 0. secs (0.u,0.s) -Chars 14372 - 14377 [step.] 0.001 secs (0.001u,0.s) +Chars 14372 - 14377 [step.] 0.002 secs (0.002u,0.s) Chars 14378 - 14383 [auto.] 0. secs (0.u,0.s) Chars 14386 - 14387 [-] 0. secs (0.u,0.s) Chars 14388 - 14398 [step~in~H.] 0. secs (0.u,0.s) -Chars 14399 - 14421 [dependent~induction~H.] 0.045 secs (0.044u,0.s) +Chars 14399 - 14421 [dependent~induction~H.] 0.031 secs (0.031u,0.s) Chars 14426 - 14427 [+] 0. secs (0.u,0.s) Chars 14428 - 14436 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14437 - 14472 [(destruct~e;~cbn;~constructor;...] 0.004 secs (0.004u,0.s) +Chars 14437 - 14472 [destruct~e;~cbn;~constructor;~...] 0.001 secs (0.001u,0.s) Chars 14477 - 14478 [+] 0. secs (0.u,0.s) -Chars 14479 - 14487 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14488 - 14562 [(destruct~e;~cbn;~constructor;...] 0.003 secs (0.003u,0.s) +Chars 14479 - 14487 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 14488 - 14562 [destruct~e;~cbn;~constructor;~...] 0.002 secs (0.002u,0.s) Chars 14567 - 14568 [+] 0. secs (0.u,0.s) -Chars 14569 - 14577 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14578 - 14595 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14569 - 14577 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 14578 - 14595 [destruct~e0;~cbn.] 0.001 secs (0.001u,0.s) Chars 14602 - 14603 [*] 0. secs (0.u,0.s) -Chars 14604 - 14619 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 14620 - 14624 [(cbn).] 0. secs (0.u,0.s) -Chars 14625 - 14641 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 14650 - 14679 [(destruct~(classicT~(A~=~u))).] 0. secs (0.u,0.s) +Chars 14604 - 14619 [unfold~observe.] 0. secs (0.u,0.s) +Chars 14620 - 14624 [cbn.] 0. secs (0.u,0.s) +Chars 14625 - 14641 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 14650 - 14679 [destruct~(classicT~(A~=~u)).] 0. secs (0.u,0.s) Chars 14688 - 14690 [++] 0. secs (0.u,0.s) -Chars 14691 - 14717 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 14718 - 14745 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 14757 - 14782 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 14783 - 14787 [(cbn).] 0. secs (0.u,0.s) -Chars 14788 - 14800 [constructor.] 0. secs (0.u,0.s) -Chars 14801 - 14808 [(intros).] 0. secs (0.u,0.s) -Chars 14820 - 14831 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 14691 - 14717 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 14718 - 14745 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 14757 - 14782 [dependent~destruction~He.] 0.001 secs (0.u,0.s) +Chars 14783 - 14787 [cbn.] 0. secs (0.u,0.s) +Chars 14788 - 14800 [constructor.] 0.003 secs (0.003u,0.s) +Chars 14801 - 14808 [intros.] 0. secs (0.u,0.s) +Chars 14820 - 14831 [eapply~CIH.] 0. secs (0.u,0.s) Chars 14834 - 14850 [auto~with~itree.] 0. secs (0.u,0.s) Chars 14859 - 14861 [++] 0. secs (0.u,0.s) -Chars 14862 - 14866 [(cbn).] 0. secs (0.u,0.s) -Chars 14867 - 14879 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 14862 - 14866 [cbn.] 0. secs (0.u,0.s) +Chars 14867 - 14879 [reflexivity.] 0. secs (0.u,0.s) Chars 14887 - 14888 [*] 0. secs (0.u,0.s) Chars 14889 - 14901 [constructor.] 0. secs (0.u,0.s) Chars 14902 - 14916 [contradiction.] 0. secs (0.u,0.s) Chars 14921 - 14922 [+] 0. secs (0.u,0.s) -Chars 14923 - 14931 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 14932 - 14971 [(destruct~(observe~t');~destru...] 0.008 secs (0.008u,0.s) +Chars 14923 - 14931 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 14932 - 14971 [destruct~(observe~t');~destruc...] 0.006 secs (0.006u,0.s) Chars 14978 - 14979 [*] 0. secs (0.u,0.s) -Chars 14980 - 14998 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 14980 - 14998 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 14999 - 15013 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15014 - 15036 [dependent~induction~H.] 0.041 secs (0.041u,0.s) +Chars 15014 - 15036 [dependent~induction~H.] 0.029 secs (0.029u,0.s) Chars 15045 - 15047 [++] 0. secs (0.u,0.s) -Chars 15048 - 15056 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15057 - 15061 [(cbn).] 0. secs (0.u,0.s) -Chars 15062 - 15080 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15048 - 15056 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15057 - 15061 [cbn.] 0. secs (0.u,0.s) +Chars 15062 - 15080 [constructor;~auto.] 0. secs (0.u,0.s) Chars 15089 - 15091 [++] 0. secs (0.u,0.s) -Chars 15092 - 15100 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 15101 - 15105 [(cbn).] 0. secs (0.u,0.s) -Chars 15106 - 15125 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) +Chars 15092 - 15100 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 15101 - 15105 [cbn.] 0. secs (0.u,0.s) +Chars 15106 - 15125 [constructor;~eauto.] 0.002 secs (0.002u,0.s) Chars 15132 - 15133 [*] 0. secs (0.u,0.s) -Chars 15134 - 15152 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15134 - 15152 [constructor;~auto.] 0.002 secs (0.002u,0.s) Chars 15153 - 15167 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15168 - 15190 [dependent~induction~H.] 0.043 secs (0.042u,0.s) +Chars 15168 - 15190 [dependent~induction~H.] 0.03 secs (0.03u,0.s) Chars 15199 - 15201 [++] 0. secs (0.u,0.s) -Chars 15202 - 15210 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15211 - 15215 [(cbn).] 0. secs (0.u,0.s) -Chars 15216 - 15234 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 15202 - 15210 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15211 - 15215 [cbn.] 0. secs (0.u,0.s) +Chars 15216 - 15234 [constructor;~auto.] 0. secs (0.u,0.s) Chars 15243 - 15245 [++] 0. secs (0.u,0.s) Chars 15246 - 15254 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 15255 - 15259 [(cbn).] 0. secs (0.u,0.s) -Chars 15260 - 15279 [(constructor;~eauto).] 0.005 secs (0.005u,0.s) +Chars 15255 - 15259 [cbn.] 0. secs (0.u,0.s) +Chars 15260 - 15279 [constructor;~eauto.] 0.002 secs (0.002u,0.s) Chars 15286 - 15287 [*] 0. secs (0.u,0.s) Chars 15288 - 15300 [constructor.] 0. secs (0.u,0.s) -Chars 15301 - 15317 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 15318 - 15329 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 15339 - 15371 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) +Chars 15301 - 15317 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 15318 - 15329 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 15339 - 15371 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) Chars 15372 - 15377 [step.] 0.001 secs (0.001u,0.s) Chars 15378 - 15383 [auto.] 0. secs (0.u,0.s) Chars 15390 - 15391 [*] 0. secs (0.u,0.s) -Chars 15392 - 15408 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) +Chars 15392 - 15408 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) Chars 15409 - 15421 [constructor.] 0. secs (0.u,0.s) -Chars 15422 - 15433 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 15422 - 15433 [eapply~CIH.] 0. secs (0.u,0.s) Chars 15443 - 15475 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) Chars 15476 - 15481 [step.] 0.001 secs (0.001u,0.s) Chars 15482 - 15487 [auto.] 0. secs (0.u,0.s) Chars 15494 - 15495 [*] 0. secs (0.u,0.s) -Chars 15496 - 15514 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15496 - 15514 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 15515 - 15529 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15538 - 15560 [dependent~induction~H.] 0.053 secs (0.052u,0.s) +Chars 15538 - 15560 [dependent~induction~H.] 0.037 secs (0.037u,0.s) Chars 15569 - 15571 [++] 0. secs (0.u,0.s) -Chars 15572 - 15580 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15581 - 15596 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 15597 - 15601 [(cbn).] 0. secs (0.u,0.s) -Chars 15613 - 15629 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 15630 - 15660 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) +Chars 15572 - 15580 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 15581 - 15596 [unfold~observe.] 0. secs (0.u,0.s) +Chars 15597 - 15601 [cbn.] 0. secs (0.u,0.s) +Chars 15613 - 15629 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 15630 - 15660 [destruct~(classicT~(A~=~X0)).] 0. secs (0.u,0.s) Chars 15672 - 15674 [**] 0. secs (0.u,0.s) -Chars 15675 - 15701 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 15716 - 15742 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 15675 - 15701 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 15716 - 15742 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) Chars 15743 - 15768 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 15783 - 15787 [(cbn).] 0. secs (0.u,0.s) +Chars 15783 - 15787 [cbn.] 0. secs (0.u,0.s) Chars 15788 - 15800 [constructor.] 0. secs (0.u,0.s) -Chars 15801 - 15808 [(intros).] 0. secs (0.u,0.s) -Chars 15810 - 15839 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 15801 - 15808 [intros.] 0. secs (0.u,0.s) +Chars 15810 - 15839 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 15851 - 15853 [**] 0. secs (0.u,0.s) -Chars 15854 - 15858 [(cbn).] 0. secs (0.u,0.s) -Chars 15859 - 15871 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 15854 - 15858 [cbn.] 0. secs (0.u,0.s) +Chars 15859 - 15871 [reflexivity.] 0.003 secs (0.003u,0.s) Chars 15881 - 15883 [++] 0. secs (0.u,0.s) -Chars 15884 - 15892 [simpobs.] 0.01 secs (0.01u,0.s) -Chars 15893 - 15897 [(cbn).] 0. secs (0.u,0.s) -Chars 15898 - 15939 [(constructor;~auto;~eapply~IHe...] 0.005 secs (0.005u,0.s) +Chars 15884 - 15892 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 15893 - 15897 [cbn.] 0. secs (0.u,0.s) +Chars 15898 - 15939 [constructor;~auto;~eapply~IHeq...] 0.004 secs (0.004u,0.s) Chars 15946 - 15947 [*] 0. secs (0.u,0.s) -Chars 15948 - 15966 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 15948 - 15966 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 15967 - 15981 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15990 - 16012 [dependent~induction~H.] 0.05 secs (0.049u,0.s) +Chars 15990 - 16012 [dependent~induction~H.] 0.036 secs (0.036u,0.s) Chars 16021 - 16023 [++] 0. secs (0.u,0.s) -Chars 16024 - 16032 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 16033 - 16037 [(cbn).] 0. secs (0.u,0.s) +Chars 16024 - 16032 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 16033 - 16037 [cbn.] 0. secs (0.u,0.s) Chars 16038 - 16050 [constructor.] 0. secs (0.u,0.s) Chars 16051 - 16065 [contradiction.] 0. secs (0.u,0.s) Chars 16074 - 16076 [++] 0. secs (0.u,0.s) Chars 16077 - 16085 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 16086 - 16090 [(cbn).] 0. secs (0.u,0.s) -Chars 16091 - 16132 [(constructor;~auto;~eapply~IHe...] 0.008 secs (0.008u,0.s) +Chars 16086 - 16090 [cbn.] 0. secs (0.u,0.s) +Chars 16091 - 16132 [constructor;~auto;~eapply~IHeq...] 0.004 secs (0.004u,0.s) Chars 16137 - 16138 [+] 0. secs (0.u,0.s) -Chars 16139 - 16147 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 16148 - 16152 [(cbn).] 0. secs (0.u,0.s) -Chars 16153 - 16202 [(destruct~(observe~t)~eqn:Heqt...] 0.007 secs (0.007u,0.s) +Chars 16139 - 16147 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 16148 - 16152 [cbn.] 0. secs (0.u,0.s) +Chars 16153 - 16202 [destruct~(observe~t)~eqn:Heqt;...] 0.005 secs (0.005u,0.s) Chars 16209 - 16210 [*] 0. secs (0.u,0.s) -Chars 16211 - 16229 [(constructor;~auto).] 0.002 secs (0.001u,0.s) +Chars 16211 - 16229 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 16230 - 16244 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16245 - 16267 [dependent~induction~H.] 0.054 secs (0.053u,0.s) +Chars 16245 - 16267 [dependent~induction~H.] 0.04 secs (0.039u,0.s) Chars 16276 - 16278 [++] 0. secs (0.u,0.s) Chars 16279 - 16287 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 16288 - 16292 [(cbn).] 0. secs (0.u,0.s) -Chars 16293 - 16311 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 16288 - 16292 [cbn.] 0. secs (0.u,0.s) +Chars 16293 - 16311 [constructor;~auto.] 0. secs (0.u,0.s) Chars 16320 - 16322 [++] 0. secs (0.u,0.s) -Chars 16323 - 16331 [simpobs.] 0.015 secs (0.015u,0.s) -Chars 16332 - 16336 [(cbn).] 0. secs (0.u,0.s) -Chars 16337 - 16356 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 16323 - 16331 [simpobs.] 0.008 secs (0.008u,0.s) +Chars 16332 - 16336 [cbn.] 0. secs (0.u,0.s) +Chars 16337 - 16356 [constructor;~eauto.] 0.002 secs (0.002u,0.s) Chars 16363 - 16364 [*] 0. secs (0.u,0.s) -Chars 16365 - 16383 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 16365 - 16383 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 16384 - 16398 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16399 - 16421 [dependent~induction~H.] 0.053 secs (0.052u,0.s) +Chars 16399 - 16421 [dependent~induction~H.] 0.038 secs (0.038u,0.s) Chars 16430 - 16432 [++] 0. secs (0.u,0.s) -Chars 16433 - 16441 [simpobs.] 0.006 secs (0.006u,0.s) -Chars 16442 - 16446 [(cbn).] 0. secs (0.u,0.s) -Chars 16447 - 16465 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 16433 - 16441 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 16442 - 16446 [cbn.] 0. secs (0.u,0.s) +Chars 16447 - 16465 [constructor;~auto.] 0. secs (0.u,0.s) Chars 16474 - 16476 [++] 0. secs (0.u,0.s) -Chars 16477 - 16485 [simpobs.] 0.011 secs (0.011u,0.s) -Chars 16486 - 16490 [(cbn).] 0. secs (0.u,0.s) -Chars 16491 - 16510 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 16477 - 16485 [simpobs.] 0.008 secs (0.008u,0.s) +Chars 16486 - 16490 [cbn.] 0. secs (0.u,0.s) +Chars 16491 - 16510 [constructor;~eauto.] 0.002 secs (0.002u,0.s) Chars 16517 - 16518 [*] 0. secs (0.u,0.s) Chars 16519 - 16531 [constructor.] 0. secs (0.u,0.s) -Chars 16532 - 16548 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 16549 - 16567 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 16568 - 16588 [(rewrite~<-~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 16532 - 16548 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 16549 - 16567 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 16568 - 16588 [rewrite~<-~tau_eutt.] 0.003 secs (0.003u,0.s) Chars 16597 - 16602 [step.] 0.001 secs (0.001u,0.s) Chars 16603 - 16608 [auto.] 0. secs (0.u,0.s) Chars 16615 - 16616 [*] 0. secs (0.u,0.s) Chars 16617 - 16629 [constructor.] 0. secs (0.u,0.s) -Chars 16630 - 16646 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 16647 - 16665 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 16666 - 16686 [(rewrite~<-~tau_eutt).] 0.004 secs (0.004u,0.s) +Chars 16630 - 16646 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 16647 - 16665 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 16666 - 16686 [rewrite~<-~tau_eutt.] 0. secs (0.u,0.s) Chars 16695 - 16700 [step.] 0.001 secs (0.001u,0.s) Chars 16701 - 16706 [auto.] 0. secs (0.u,0.s) Chars 16713 - 16714 [*] 0. secs (0.u,0.s) -Chars 16715 - 16733 [(constructor;~auto).] 0.001 secs (0.001u,0.s) +Chars 16715 - 16733 [constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 16734 - 16748 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16749 - 16771 [dependent~induction~H.] 0.062 secs (0.061u,0.s) +Chars 16749 - 16771 [dependent~induction~H.] 0.044 secs (0.044u,0.s) Chars 16780 - 16782 [++] 0. secs (0.u,0.s) -Chars 16783 - 16791 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 16792 - 16807 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 16808 - 16812 [(cbn).] 0. secs (0.u,0.s) -Chars 16824 - 16840 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 16852 - 16882 [(destruct~(classicT~(A~=~X0))).] 0.001 secs (0.u,0.s) +Chars 16783 - 16791 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 16792 - 16807 [unfold~observe.] 0. secs (0.u,0.s) +Chars 16808 - 16812 [cbn.] 0. secs (0.u,0.s) +Chars 16824 - 16840 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 16852 - 16882 [destruct~(classicT~(A~=~X0)).] 0.002 secs (0.002u,0.s) Chars 16894 - 16896 [**] 0. secs (0.u,0.s) -Chars 16897 - 16923 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 16938 - 16964 [(remember~(eq_sym~e)~as~He).] 0.001 secs (0.001u,0.s) +Chars 16897 - 16923 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 16938 - 16964 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) Chars 16965 - 16990 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 17005 - 17009 [(cbn).] 0. secs (0.u,0.s) +Chars 17005 - 17009 [cbn.] 0. secs (0.u,0.s) Chars 17010 - 17022 [constructor.] 0. secs (0.u,0.s) -Chars 17023 - 17030 [(intros).] 0. secs (0.u,0.s) -Chars 17032 - 17054 [(eapply~CIH;~apply~REL).] 0. secs (0.u,0.s) +Chars 17023 - 17030 [intros.] 0. secs (0.u,0.s) +Chars 17032 - 17054 [eapply~CIH;~apply~REL.] 0. secs (0.u,0.s) Chars 17066 - 17068 [**] 0. secs (0.u,0.s) -Chars 17069 - 17073 [(cbn).] 0. secs (0.u,0.s) -Chars 17074 - 17086 [reflexivity.] 0.003 secs (0.003u,0.s) +Chars 17069 - 17073 [cbn.] 0. secs (0.u,0.s) +Chars 17074 - 17086 [reflexivity.] 0. secs (0.u,0.s) Chars 17096 - 17098 [++] 0. secs (0.u,0.s) -Chars 17099 - 17107 [simpobs.] 0.013 secs (0.013u,0.s) -Chars 17108 - 17112 [(cbn).] 0. secs (0.u,0.s) -Chars 17113 - 17132 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) +Chars 17099 - 17107 [simpobs.] 0.009 secs (0.009u,0.s) +Chars 17108 - 17112 [cbn.] 0. secs (0.u,0.s) +Chars 17113 - 17132 [constructor;~eauto.] 0.002 secs (0.002u,0.s) Chars 17139 - 17140 [*] 0. secs (0.u,0.s) -Chars 17141 - 17159 [(constructor;~auto).] 0.002 secs (0.002u,0.s) +Chars 17141 - 17159 [constructor;~auto.] 0.003 secs (0.003u,0.s) Chars 17160 - 17174 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 17175 - 17197 [dependent~induction~H.] 0.071 secs (0.069u,0.001s) +Chars 17175 - 17197 [dependent~induction~H.] 0.044 secs (0.043u,0.s) Chars 17206 - 17208 [++] 0. secs (0.u,0.s) -Chars 17209 - 17217 [simpobs.] 0.005 secs (0.004u,0.s) -Chars 17218 - 17222 [(cbn).] 0. secs (0.u,0.s) +Chars 17209 - 17217 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 17218 - 17222 [cbn.] 0. secs (0.u,0.s) Chars 17223 - 17235 [constructor.] 0. secs (0.u,0.s) Chars 17236 - 17250 [contradiction.] 0. secs (0.u,0.s) Chars 17259 - 17261 [++] 0. secs (0.u,0.s) -Chars 17262 - 17270 [simpobs.] 0.015 secs (0.015u,0.s) -Chars 17271 - 17275 [(cbn).] 0. secs (0.u,0.s) -Chars 17276 - 17295 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 17296 - 17300 [Qed.] 0.561 secs (0.548u,0.011s) +Chars 17262 - 17270 [simpobs.] 0.01 secs (0.01u,0.s) +Chars 17271 - 17275 [cbn.] 0. secs (0.u,0.s) +Chars 17276 - 17295 [constructor;~eauto.] 0.002 secs (0.002u,0.s) +Chars 17296 - 17300 [Qed.] 0.355 secs (0.352u,0.002s) Chars 17302 - 17403 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 17404 - 17410 [Proof.] 0. secs (0.u,0.s) -Chars 17413 - 17432 [(intros~?~?~?~?~?~?).] 0. secs (0.u,0.s) -Chars 17433 - 17482 [(rewrite~proper_peel_eutt_l~wi...] 0.01 secs (0.009u,0.s) -Chars 17485 - 17518 [(eapply~proper_peel_eutt_r;~ea...] 0. secs (0.u,0.s) -Chars 17519 - 17523 [Qed.] 0.001 secs (0.001u,0.s) +Chars 17413 - 17432 [intros~?~?~?~?~?~?.] 0. secs (0.u,0.s) +Chars 17433 - 17482 [rewrite~proper_peel_eutt_l~wit...] 0.006 secs (0.006u,0.s) +Chars 17485 - 17518 [eapply~proper_peel_eutt_r;~eauto.] 0. secs (0.u,0.s) +Chars 17519 - 17523 [Qed.] 0. secs (0.u,0.s) Chars 17525 - 17731 [Lemma~not_peel_vis_ret~:~~~for...] 0. secs (0.u,0.s) Chars 17732 - 17738 [Proof.] 0. secs (0.u,0.s) -Chars 17741 - 17771 [(intros~R~E~S~X~e~k~r~t1~Heutt).] 0. secs (0.u,0.s) +Chars 17741 - 17771 [intros~R~E~S~X~e~k~r~t1~Heutt.] 0. secs (0.u,0.s) Chars 17774 - 17788 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 17789 - 17806 [(unfold~peel~in~*).] 0. secs (0.u,0.s) -Chars 17807 - 17816 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 17819 - 17846 [dependent~induction~Heutt.] 0.031 secs (0.031u,0.s) +Chars 17789 - 17806 [unfold~peel~in~*.] 0. secs (0.u,0.s) +Chars 17807 - 17816 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 17819 - 17846 [dependent~induction~Heutt.] 0.021 secs (0.021u,0.s) Chars 17849 - 17850 [-] 0. secs (0.u,0.s) -Chars 17851 - 17901 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) -Chars 17906 - 17946 [(destruct~e0;~cbn~in~*;~try~di...] 0.001 secs (0.001u,0.s) -Chars 17951 - 17971 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 17972 - 17981 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 17982 - 18003 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 18008 - 18054 [(destruct~(classicT~(A~=~X));~...] 0. secs (0.u,0.s) -Chars 18059 - 18090 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 18091 - 18118 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 17851 - 17901 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) +Chars 17906 - 17946 [destruct~e0;~cbn~in~*;~try~dis...] 0. secs (0.u,0.s) +Chars 17951 - 17971 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 17972 - 17981 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 17982 - 18003 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 18008 - 18054 [destruct~(classicT~(A~=~X));~t...] 0. secs (0.u,0.s) +Chars 18059 - 18090 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 18091 - 18118 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) Chars 18123 - 18148 [dependent~destruction~He.] 0. secs (0.u,0.s) Chars 18149 - 18162 [discriminate.] 0. secs (0.u,0.s) Chars 18165 - 18166 [-] 0. secs (0.u,0.s) -Chars 18167 - 18217 [(destruct~(observe~t1);~cbn~in...] 0.001 secs (0.001u,0.s) +Chars 18167 - 18217 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) Chars 18222 - 18223 [+] 0. secs (0.u,0.s) Chars 18224 - 18245 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 18246 - 18269 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) -Chars 18276 - 18301 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 18302 - 18307 [step.] 0.007 secs (0.007u,0.s) +Chars 18246 - 18269 [rewrite~Hspin~in~Heutt.] 0. secs (0.u,0.s) +Chars 18276 - 18301 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) +Chars 18302 - 18307 [step.] 0.004 secs (0.004u,0.s) Chars 18308 - 18314 [eauto.] 0. secs (0.u,0.s) Chars 18319 - 18320 [+] 0. secs (0.u,0.s) Chars 18321 - 18340 [injection~x~as~Ht0.] 0. secs (0.u,0.s) -Chars 18341 - 18363 [(eapply~IHHeutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 18364 - 18376 [(rewrite~Ht0).] 0. secs (0.u,0.s) +Chars 18341 - 18363 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 18364 - 18376 [rewrite~Ht0.] 0. secs (0.u,0.s) Chars 18377 - 18389 [reflexivity.] 0. secs (0.u,0.s) Chars 18394 - 18395 [+] 0. secs (0.u,0.s) -Chars 18396 - 18436 [(destruct~e0;~cbn~in~*;~try~di...] 0.001 secs (0.001u,0.s) -Chars 18443 - 18463 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 18464 - 18473 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 18474 - 18495 [(unfold~peel_vis~in~*).] 0. secs (0.u,0.s) -Chars 18502 - 18531 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 18396 - 18436 [destruct~e0;~cbn~in~*;~try~dis...] 0. secs (0.u,0.s) +Chars 18443 - 18463 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 18464 - 18473 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 18474 - 18495 [unfold~peel_vis~in~*.] 0. secs (0.u,0.s) +Chars 18502 - 18531 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) Chars 18538 - 18539 [*] 0. secs (0.u,0.s) -Chars 18540 - 18571 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 18572 - 18599 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 18540 - 18571 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 18572 - 18599 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) Chars 18608 - 18633 [dependent~destruction~He.] 0. secs (0.u,0.s) Chars 18634 - 18647 [discriminate.] 0. secs (0.u,0.s) Chars 18654 - 18655 [*] 0. secs (0.u,0.s) -Chars 18656 - 18665 [(cbn~in~x).] 0. secs (0.u,0.s) +Chars 18656 - 18665 [cbn~in~x.] 0. secs (0.u,0.s) Chars 18666 - 18687 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 18688 - 18711 [(rewrite~Hspin~in~Heutt).] 0. secs (0.u,0.s) -Chars 18720 - 18745 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 18746 - 18751 [step.] 0.004 secs (0.004u,0.s) +Chars 18688 - 18711 [rewrite~Hspin~in~Heutt.] 0. secs (0.u,0.s) +Chars 18720 - 18745 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) +Chars 18746 - 18751 [step.] 0.003 secs (0.003u,0.s) Chars 18752 - 18758 [eauto.] 0. secs (0.u,0.s) -Chars 18759 - 18763 [Qed.] 0.025 secs (0.025u,0.s) +Chars 18759 - 18763 [Qed.] 0.017 secs (0.017u,0.s) Chars 18765 - 18919 [Lemma~peel_ret_inv~:~~~forall~...] 0. secs (0.u,0.s) Chars 18920 - 18926 [Proof.] 0. secs (0.u,0.s) -Chars 18929 - 18950 [(intros~R~r~E~S~b~t~H).] 0. secs (0.u,0.s) -Chars 18951 - 18968 [(unfold~peel~in~H).] 0. secs (0.u,0.s) +Chars 18929 - 18950 [intros~R~r~E~S~b~t~H.] 0. secs (0.u,0.s) +Chars 18951 - 18968 [unfold~peel~in~H.] 0. secs (0.u,0.s) Chars 18971 - 18981 [step~in~H.] 0. secs (0.u,0.s) -Chars 18982 - 18991 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 18982 - 18991 [cbn~in~H.] 0. secs (0.u,0.s) Chars 18992 - 18997 [step.] 0.001 secs (0.001u,0.s) -Chars 18998 - 19002 [(cbn).] 0. secs (0.u,0.s) -Chars 19005 - 19027 [dependent~induction~H.] 0.031 secs (0.031u,0.s) +Chars 18998 - 19002 [cbn.] 0. secs (0.u,0.s) +Chars 19005 - 19027 [dependent~induction~H.] 0.022 secs (0.022u,0.s) Chars 19030 - 19031 [-] 0. secs (0.u,0.s) -Chars 19032 - 19049 [(unfold~peel~in~x).] 0. secs (0.u,0.s) -Chars 19050 - 19165 [(destruct~(observe~b);~destruc...] 0.018 secs (0.018u,0.s) +Chars 19032 - 19049 [unfold~peel~in~x.] 0. secs (0.u,0.s) +Chars 19050 - 19165 [destruct~(observe~b);~destruct...] 0.012 secs (0.012u,0.s) Chars 19170 - 19171 [+] 0. secs (0.u,0.s) -Chars 19172 - 19233 [(destruct~e;~dependent~destruc...] 0.005 secs (0.005u,0.s) +Chars 19172 - 19233 [destruct~e;~dependent~destruct...] 0.003 secs (0.003u,0.s) Chars 19238 - 19239 [+] 0. secs (0.u,0.s) -Chars 19240 - 19276 [(destruct~e;~dependent~destruc...] 0.004 secs (0.003u,0.s) +Chars 19240 - 19276 [destruct~e;~dependent~destruct...] 0.002 secs (0.002u,0.s) Chars 19281 - 19282 [+] 0. secs (0.u,0.s) -Chars 19283 - 19319 [(destruct~e;~dependent~destruc...] 0.003 secs (0.003u,0.s) -Chars 19326 - 19346 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 19347 - 19356 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 19357 - 19378 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 19385 - 19425 [(destruct~(classicT~(A~=~X0))~...] 0. secs (0.u,0.s) +Chars 19283 - 19319 [destruct~e;~dependent~destruct...] 0.002 secs (0.002u,0.s) +Chars 19326 - 19346 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 19347 - 19356 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 19357 - 19378 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 19385 - 19425 [destruct~(classicT~(A~=~X0))~e...] 0. secs (0.u,0.s) Chars 19432 - 19433 [*] 0. secs (0.u,0.s) -Chars 19434 - 19465 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 19466 - 19472 [subst.] 0. secs (0.u,0.s) -Chars 19473 - 19505 [(remember~(eq_sym~eq_refl)~as~...] 0. secs (0.u,0.s) -Chars 19514 - 19539 [dependent~destruction~He.] 0.004 secs (0.004u,0.s) -Chars 19540 - 19550 [(cbn~in~x0).] 0. secs (0.u,0.s) +Chars 19434 - 19465 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 19466 - 19472 [subst.] 0.002 secs (0.001u,0.s) +Chars 19473 - 19505 [remember~(eq_sym~eq_refl)~as~He.] 0. secs (0.u,0.s) +Chars 19514 - 19539 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 19540 - 19550 [cbn~in~x0.] 0. secs (0.u,0.s) Chars 19551 - 19564 [discriminate.] 0. secs (0.u,0.s) Chars 19571 - 19572 [*] 0. secs (0.u,0.s) Chars 19573 - 19586 [discriminate.] 0. secs (0.u,0.s) Chars 19589 - 19590 [-] 0. secs (0.u,0.s) -Chars 19591 - 19669 [(destruct~(observe~b);~destruc...] 0.019 secs (0.019u,0.s) +Chars 19591 - 19669 [destruct~(observe~b);~destruct...] 0.013 secs (0.013u,0.s) Chars 19674 - 19675 [+] 0. secs (0.u,0.s) -Chars 19676 - 19694 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 19695 - 19736 [(eapply~IHeqitF~with~(b~:=~Ret...] 0.001 secs (0.001u,0.s) +Chars 19676 - 19694 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 19695 - 19736 [eapply~IHeqitF~with~(b~:=~Ret~...] 0.001 secs (0.001u,0.s) Chars 19741 - 19742 [+] 0. secs (0.u,0.s) Chars 19743 - 19751 [exfalso.] 0. secs (0.u,0.s) -Chars 19752 - 19777 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 19778 - 19783 [step.] 0.004 secs (0.004u,0.s) +Chars 19752 - 19777 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) +Chars 19778 - 19783 [step.] 0.003 secs (0.003u,0.s) Chars 19784 - 19790 [eauto.] 0. secs (0.u,0.s) Chars 19795 - 19796 [+] 0. secs (0.u,0.s) -Chars 19797 - 19815 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 19816 - 19838 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 19797 - 19815 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 19816 - 19838 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) Chars 19843 - 19844 [+] 0. secs (0.u,0.s) Chars 19845 - 19853 [exfalso.] 0. secs (0.u,0.s) -Chars 19854 - 19876 [(destruct~(observe~t0)).] 0.001 secs (0.001u,0.s) +Chars 19854 - 19876 [destruct~(observe~t0).] 0. secs (0.u,0.s) Chars 19883 - 19884 [*] 0. secs (0.u,0.s) -Chars 19885 - 19894 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 19895 - 19920 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 19929 - 19936 [(inv~H).] 0.011 secs (0.011u,0.s) +Chars 19885 - 19894 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 19895 - 19920 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) +Chars 19929 - 19936 [inv~H.] 0.007 secs (0.007u,0.s) Chars 19937 - 19942 [step.] 0.004 secs (0.004u,0.s) Chars 19943 - 19949 [eauto.] 0. secs (0.u,0.s) Chars 19956 - 19957 [*] 0. secs (0.u,0.s) -Chars 19958 - 19967 [(cbn~in~H).] 0.001 secs (0.001u,0.s) -Chars 19968 - 19974 [(inv~H).] 0.008 secs (0.008u,0.s) -Chars 19975 - 19999 [(eapply~not_peel_vis_ret).] 0. secs (0.u,0.s) -Chars 20008 - 20013 [step.] 0.004 secs (0.004u,0.s) +Chars 19958 - 19967 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 19968 - 19974 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 19975 - 19999 [eapply~not_peel_vis_ret.] 0. secs (0.u,0.s) +Chars 20008 - 20013 [step.] 0.003 secs (0.003u,0.s) Chars 20014 - 20020 [eauto.] 0. secs (0.u,0.s) Chars 20027 - 20028 [*] 0. secs (0.u,0.s) -Chars 20029 - 20041 [(destruct~e0).] 0. secs (0.u,0.s) +Chars 20029 - 20041 [destruct~e0.] 0. secs (0.u,0.s) Chars 20050 - 20052 [++] 0. secs (0.u,0.s) Chars 20053 - 20067 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 20068 - 20088 [(unfold~observe~in~H).] 0. secs (0.u,0.s) -Chars 20089 - 20098 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20099 - 20120 [(unfold~peel_vis~in~H).] 0. secs (0.u,0.s) -Chars 20132 - 20161 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) +Chars 20068 - 20088 [unfold~observe~in~H.] 0. secs (0.u,0.s) +Chars 20089 - 20098 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 20099 - 20120 [unfold~peel_vis~in~H.] 0. secs (0.u,0.s) +Chars 20132 - 20161 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) Chars 20173 - 20175 [**] 0. secs (0.u,0.s) -Chars 20176 - 20207 [(unfold~eq_rect_r,~eq_rect~in~H).] 0. secs (0.u,0.s) -Chars 20208 - 20235 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) +Chars 20176 - 20207 [unfold~eq_rect_r,~eq_rect~in~H.] 0. secs (0.u,0.s) +Chars 20208 - 20235 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) Chars 20250 - 20275 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 20276 - 20282 [(inv~H).] 0.003 secs (0.003u,0.s) +Chars 20276 - 20282 [inv~H.] 0.002 secs (0.002u,0.s) Chars 20294 - 20296 [**] 0. secs (0.u,0.s) -Chars 20297 - 20322 [(eapply~not_spin_eutt_ret).] 0. secs (0.u,0.s) -Chars 20323 - 20328 [step.] 0.004 secs (0.004u,0.s) +Chars 20297 - 20322 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) +Chars 20323 - 20328 [step.] 0.003 secs (0.003u,0.s) Chars 20329 - 20335 [eauto.] 0. secs (0.u,0.s) Chars 20344 - 20346 [++] 0. secs (0.u,0.s) -Chars 20347 - 20356 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 20357 - 20363 [(inv~H).] 0.003 secs (0.003u,0.s) +Chars 20347 - 20356 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 20357 - 20363 [inv~H.] 0.002 secs (0.002u,0.s) Chars 20368 - 20369 [+] 0. secs (0.u,0.s) -Chars 20370 - 20409 [(destruct~e;~cbn~in~x;~try~dis...] 0.001 secs (0.001u,0.s) +Chars 20370 - 20409 [destruct~e;~cbn~in~x;~try~disc...] 0. secs (0.u,0.s) Chars 20414 - 20415 [+] 0. secs (0.u,0.s) -Chars 20416 - 20434 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 20435 - 20477 [(eapply~IHeqitF~with~(b~:=~Vis...] 0.001 secs (0.001u,0.s) -Chars 20478 - 20482 [(cbn).] 0. secs (0.u,0.s) -Chars 20489 - 20541 [(destruct~e;~cbn~in~x;~depende...] 0.006 secs (0.006u,0.s) +Chars 20416 - 20434 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 20435 - 20477 [eapply~IHeqitF~with~(b~:=~Vis~...] 0.001 secs (0.001u,0.s) +Chars 20478 - 20482 [cbn.] 0. secs (0.u,0.s) +Chars 20489 - 20541 [destruct~e;~cbn~in~x;~dependen...] 0.004 secs (0.004u,0.s) Chars 20546 - 20547 [+] 0. secs (0.u,0.s) -Chars 20548 - 20587 [(destruct~e;~cbn~in~x;~try~dis...] 0.001 secs (0.u,0.s) -Chars 20594 - 20614 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 20615 - 20624 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 20625 - 20646 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 20653 - 20683 [(destruct~(classicT~(A~=~X0))).] 0. secs (0.u,0.s) +Chars 20548 - 20587 [destruct~e;~cbn~in~x;~try~disc...] 0. secs (0.u,0.s) +Chars 20594 - 20614 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 20615 - 20624 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 20625 - 20646 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 20653 - 20683 [destruct~(classicT~(A~=~X0)).] 0. secs (0.u,0.s) Chars 20690 - 20691 [*] 0. secs (0.u,0.s) -Chars 20692 - 20723 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 20724 - 20750 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) +Chars 20692 - 20723 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 20724 - 20750 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) Chars 20759 - 20784 [dependent~destruction~He.] 0. secs (0.u,0.s) Chars 20785 - 20798 [discriminate.] 0. secs (0.u,0.s) Chars 20805 - 20806 [*] 0. secs (0.u,0.s) Chars 20807 - 20828 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 20829 - 20842 [(cbn~in~Hspin).] 0. secs (0.u,0.s) +Chars 20829 - 20842 [cbn~in~Hspin.] 0. secs (0.u,0.s) Chars 20843 - 20851 [exfalso.] 0. secs (0.u,0.s) -Chars 20860 - 20882 [(assert~(t1~≈~Ret~r)).] 0. secs (0.u,0.s) +Chars 20860 - 20882 [assert~(t1~≈~Ret~r).] 0. secs (0.u,0.s) Chars 20891 - 20892 [{] 0. secs (0.u,0.s) Chars 20893 - 20898 [step.] 0.001 secs (0.001u,0.s) Chars 20899 - 20904 [auto.] 0. secs (0.u,0.s) Chars 20905 - 20906 [}] 0. secs (0.u,0.s) -Chars 20915 - 20935 [(rewrite~Hspin~in~H0).] 0. secs (0.u,0.s) -Chars 20936 - 20968 [(eapply~not_spin_eutt_ret;~eau...] 0. secs (0.u,0.s) -Chars 20969 - 20973 [Qed.] 0.072 secs (0.072u,0.s) -Chars 21751 - 22410 [Lemma~eqitF_observe_peel_cont_...] 0.002 secs (0.002u,0.s) -Chars 22411 - 22417 [Proof.] 0. secs (0.u,0.s) -Chars 22420 - 22464 [(intros~E~R~S~A~ev~ans~k1~k2~R...] 0. secs (0.u,0.s) -Chars 22467 - 22482 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 22483 - 22487 [(cbn).] 0. secs (0.u,0.s) -Chars 22488 - 22509 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) -Chars 22512 - 22541 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 22544 - 22545 [-] 0. secs (0.u,0.s) -Chars 22546 - 22572 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 22573 - 22600 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 22605 - 22630 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 22631 - 22635 [(cbn).] 0. secs (0.u,0.s) -Chars 22636 - 22648 [constructor.] 0. secs (0.u,0.s) -Chars 22653 - 22660 [(intros).] 0. secs (0.u,0.s) -Chars 22662 - 22673 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 22674 - 22690 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 22693 - 22694 [-] 0. secs (0.u,0.s) -Chars 22695 - 22699 [(cbn).] 0. secs (0.u,0.s) -Chars 22700 - 22705 [taus.] 0. secs (0.u,0.s) -Chars 22706 - 22715 [Admitted.] 0. secs (0.u,0.s) -Chars 22719 - 22930 [Lemma~proper_peel_cont_eutt_l~...] 0. secs (0.u,0.s) -Chars 22931 - 22937 [Proof.] 0. secs (0.u,0.s) -Chars 22940 - 22953 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 22954 - 22971 [(unfold~peel_cont).] 0. secs (0.u,0.s) -Chars 22972 - 22988 [(intros~b~b'~t~_).] 0. secs (0.u,0.s) -Chars 22991 - 23005 [revert~b~b'~t.] 0. secs (0.u,0.s) -Chars 23006 - 23025 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 23026 - 23033 [(intros).] 0. secs (0.u,0.s) -Chars 23034 - 23044 [step~in~H.] 0. secs (0.u,0.s) -Chars 23048 - 23080 [(destruct~(observe~t)~eqn:Heqt).] 0.001 secs (0.001u,0.s) -Chars 23102 - 23103 [-] 0. secs (0.u,0.s) -Chars 23104 - 23253 [(destruct~(observe~b')~eqn:Hb;...] 0.163 secs (0.162u,0.001s) -Chars 23259 - 23260 [+] 0. secs (0.u,0.s) -Chars 23261 - 23266 [taus.] 0. secs (0.u,0.s) -Chars 23267 - 23287 [now~do~2~Utils.step.] 0.009 secs (0.009u,0.s) -Chars 23296 - 23297 [+] 0. secs (0.u,0.s) -Chars 23298 - 23311 [ddestruction.] 0.006 secs (0.006u,0.s) -Chars 23312 - 23324 [constructor.] 0. secs (0.u,0.s) -Chars 23325 - 23332 [(intros).] 0. secs (0.u,0.s) -Chars 23333 - 23339 [(inv~H).] 0.028 secs (0.028u,0.s) -Chars 23347 - 23360 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 23361 - 23377 [(do~2~Utils.step).] 0.01 secs (0.01u,0.s) -Chars 23378 - 23389 [(apply~REL0).] 0. secs (0.u,0.s) -Chars 23453 - 23454 [-] 0. secs (0.u,0.s) -Chars 23455 - 23496 [(dependent~induction~H;~try~cl...] 0.056 secs (0.055u,0.s) -Chars 23501 - 23502 [+] 0. secs (0.u,0.s) -Chars 23503 - 23511 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23512 - 23516 [(cbn).] 0. secs (0.u,0.s) -Chars 23517 - 23522 [etau.] 0.001 secs (0.001u,0.s) -Chars 23531 - 23532 [+] 0. secs (0.u,0.s) -Chars 23533 - 23541 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23542 - 23546 [(cbn).] 0. secs (0.u,0.s) -Chars 23547 - 23552 [etau.] 0.001 secs (0.001u,0.s) -Chars 23558 - 23559 [+] 0. secs (0.u,0.s) -Chars 23560 - 23568 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 23569 - 23598 [(destruct~e;~cbn;~constructor).] 0.002 secs (0.002u,0.s) -Chars 23606 - 23607 [*] 0. secs (0.u,0.s) -Chars 23608 - 23616 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 23617 - 23631 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 23632 - 23650 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 23651 - 23656 [step.] 0.001 secs (0.001u,0.s) -Chars 23665 - 23673 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23674 - 23686 [constructor.] 0. secs (0.u,0.s) -Chars 23687 - 23692 [auto.] 0. secs (0.u,0.s) -Chars 23699 - 23700 [*] 0. secs (0.u,0.s) -Chars 23701 - 23715 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 23716 - 23734 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 23735 - 23740 [step.] 0.001 secs (0.001u,0.s) -Chars 23750 - 23758 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 23759 - 23771 [constructor.] 0. secs (0.u,0.s) -Chars 23772 - 23777 [auto.] 0. secs (0.u,0.s) -Chars 23782 - 23783 [+] 0. secs (0.u,0.s) -Chars 23784 - 23792 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 23794 - 23798 [(cbn).] 0. secs (0.u,0.s) -Chars 23805 - 23844 [(destruct~(observe~b')~eqn:Heq...] 0.002 secs (0.002u,0.s) -Chars 23851 - 23852 [*] 0. secs (0.u,0.s) -Chars 23853 - 23865 [constructor.] 0. secs (0.u,0.s) -Chars 23866 - 23883 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) -Chars 23884 - 23895 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 23904 - 23922 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) -Chars 23923 - 23946 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) -Chars 23947 - 23961 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) -Chars 23970 - 23975 [step.] 0.001 secs (0.001u,0.s) -Chars 23976 - 23981 [auto.] 0. secs (0.u,0.s) -Chars 23988 - 23989 [*] 0. secs (0.u,0.s) -Chars 23990 - 24002 [constructor.] 0. secs (0.u,0.s) -Chars 24003 - 24014 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24016 - 24048 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.001u,0.s) -Chars 24057 - 24062 [step.] 0.002 secs (0.002u,0.s) -Chars 24063 - 24068 [auto.] 0. secs (0.u,0.s) -Chars 24075 - 24076 [*] 0. secs (0.u,0.s) -Chars 24077 - 24089 [constructor.] 0. secs (0.u,0.s) -Chars 24090 - 24107 [(rewrite~<-~Heqb').] 0. secs (0.u,0.s) -Chars 24108 - 24119 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24128 - 24146 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) -Chars 24147 - 24170 [(apply~simpobs~in~Heqb').] 0. secs (0.u,0.s) -Chars 24171 - 24185 [(rewrite~Heqb').] 0.001 secs (0.001u,0.s) -Chars 24186 - 24191 [step.] 0.002 secs (0.002u,0.s) -Chars 24192 - 24197 [auto.] 0. secs (0.u,0.s) -Chars 24202 - 24203 [+] 0. secs (0.u,0.s) -Chars 24204 - 24212 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24213 - 24217 [(cbn).] 0. secs (0.u,0.s) -Chars 24218 - 24255 [(destruct~(observe~b)~eqn:Heqb...] 0.002 secs (0.002u,0.s) -Chars 24262 - 24263 [*] 0. secs (0.u,0.s) -Chars 24264 - 24282 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24283 - 24299 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 24300 - 24311 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24320 - 24325 [step.] 0.002 secs (0.002u,0.s) -Chars 24326 - 24339 [(rewrite~Heqb).] 0. secs (0.u,0.s) -Chars 24340 - 24345 [auto.] 0. secs (0.u,0.s) -Chars 24352 - 24353 [*] 0. secs (0.u,0.s) -Chars 24354 - 24366 [constructor.] 0. secs (0.u,0.s) -Chars 24367 - 24378 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24380 - 24405 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) -Chars 24406 - 24411 [step.] 0.001 secs (0.001u,0.s) -Chars 24412 - 24417 [auto.] 0. secs (0.u,0.s) -Chars 24424 - 24425 [*] 0. secs (0.u,0.s) -Chars 24426 - 24438 [constructor.] 0. secs (0.u,0.s) -Chars 24439 - 24455 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 24456 - 24467 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24468 - 24473 [step.] 0.001 secs (0.001u,0.s) -Chars 24482 - 24495 [(rewrite~Heqb).] 0. secs (0.u,0.s) -Chars 24496 - 24501 [auto.] 0. secs (0.u,0.s) -Chars 24504 - 24505 [-] 0. secs (0.u,0.s) -Chars 24506 - 24533 [(dependent~induction~H;~cbn).] 0.058 secs (0.057u,0.s) -Chars 24538 - 24539 [+] 0. secs (0.u,0.s) -Chars 24541 - 24549 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24550 - 24558 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24559 - 24563 [(cbn).] 0. secs (0.u,0.s) -Chars 24564 - 24576 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 24582 - 24583 [+] 0. secs (0.u,0.s) -Chars 24584 - 24592 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 24593 - 24601 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24602 - 24606 [(cbn).] 0. secs (0.u,0.s) -Chars 24607 - 24619 [constructor.] 0. secs (0.u,0.s) -Chars 24620 - 24636 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) -Chars 24637 - 24648 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 24656 - 24661 [auto.] 0. secs (0.u,0.s) -Chars 24666 - 24667 [+] 0. secs (0.u,0.s) -Chars 24668 - 24676 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 24677 - 24740 [(destruct~e;~cbn;~try~(apply~e...] 0.002 secs (0.002u,0.s) -Chars 24747 - 24759 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 24765 - 24766 [+] 0. secs (0.u,0.s) -Chars 24767 - 24775 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24776 - 24780 [(cbn).] 0. secs (0.u,0.s) -Chars 24781 - 24800 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 24805 - 24806 [+] 0. secs (0.u,0.s) -Chars 24807 - 24815 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24816 - 24820 [(cbn).] 0. secs (0.u,0.s) -Chars 24821 - 24840 [(constructor;~eauto).] 0.002 secs (0.002u,0.s) -Chars 24841 - 24845 [Qed.] 0.199 secs (0.196u,0.002s) -Chars 24847 - 24990 [Lemma~peel_cont_ret_inv~:~~~fo...] 0. secs (0.u,0.s) -Chars 24991 - 24997 [Proof.] 0. secs (0.u,0.s) -Chars 25000 - 25013 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 25014 - 25032 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 25033 - 25040 [(intros).] 0. secs (0.u,0.s) -Chars 25041 - 25051 [step~in~H.] 0. secs (0.u,0.s) -Chars 25052 - 25061 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 25062 - 25091 [(dependent~induction~H;~subst).] 0.042 secs (0.042u,0.s) -Chars 25094 - 25095 [-] 0. secs (0.u,0.s) -Chars 25096 - 25104 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 25105 - 25109 [(cbn).] 0. secs (0.u,0.s) -Chars 25110 - 25122 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 25126 - 25127 [-] 0. secs (0.u,0.s) -Chars 25128 - 25136 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 25137 - 25167 [(destruct~(observe~b)~eqn:Hb).] 0.001 secs (0.001u,0.s) -Chars 25172 - 25173 [+] 0. secs (0.u,0.s) -Chars 25174 - 25178 [(cbn).] 0. secs (0.u,0.s) -Chars 25179 - 25184 [taul.] 0. secs (0.u,0.s) -Chars 25185 - 25193 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 25194 - 25201 [to_mon.] 0. secs (0.u,0.s) -Chars 25209 - 25230 [(rewrite~<-~itree_eta).] 0.017 secs (0.017u,0.s) -Chars 25238 - 25283 [(specialize~(IHeqitF~CIH~(Ret~...] 0. secs (0.u,0.s) -Chars 25288 - 25289 [+] 0. secs (0.u,0.s) -Chars 25290 - 25294 [(cbn).] 0. secs (0.u,0.s) -Chars 25295 - 25306 [(rewrite~Hb).] 0. secs (0.u,0.s) -Chars 25307 - 25312 [taus.] 0. secs (0.u,0.s) -Chars 25313 - 25338 [(eapply~CIH~with~(s~:=~s)).] 0. secs (0.u,0.s) -Chars 25345 - 25350 [step.] 0.003 secs (0.003u,0.s) -Chars 25351 - 25356 [auto.] 0. secs (0.u,0.s) -Chars 25361 - 25362 [+] 0. secs (0.u,0.s) -Chars 25363 - 25367 [(cbn).] 0. secs (0.u,0.s) -Chars 25368 - 25379 [(rewrite~Hb).] 0. secs (0.u,0.s) -Chars 25380 - 25385 [taul.] 0. secs (0.u,0.s) -Chars 25386 - 25400 [(rewrite~<-~Hb).] 0. secs (0.u,0.s) -Chars 25408 - 25447 [(specialize~(IHeqitF~CIH~b~t1~...] 0.001 secs (0.001u,0.s) -Chars 25454 - 25469 [(assert~(S~=~S)).] 0. secs (0.u,0.s) -Chars 25470 - 25475 [auto.] 0. secs (0.u,0.s) -Chars 25476 - 25496 [(apply~IHeqitF;~auto).] 0.001 secs (0.001u,0.s) -Chars 25497 - 25501 [Qed.] 0.055 secs (0.054u,0.s) -Chars 25503 - 25713 [Lemma~proper_peel_cont_eutt_r~...] 0. secs (0.u,0.s) -Chars 25714 - 25720 [Proof.] 0. secs (0.u,0.s) -Chars 25723 - 25736 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 25737 - 25754 [(unfold~peel_cont).] 0. secs (0.u,0.s) -Chars 25755 - 25771 [(intros~b~t~t'~_).] 0. secs (0.u,0.s) -Chars 25774 - 25788 [revert~b~t~t'.] 0. secs (0.u,0.s) -Chars 25789 - 25807 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 25808 - 25815 [(intros).] 0. secs (0.u,0.s) -Chars 25816 - 25826 [step~in~H.] 0. secs (0.u,0.s) -Chars 25827 - 25849 [dependent~induction~H.] 0.042 secs (0.042u,0.s) -Chars 25852 - 25853 [-] 0. secs (0.u,0.s) -Chars 25854 - 25862 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 25863 - 25875 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 25879 - 25880 [-] 0. secs (0.u,0.s) -Chars 25881 - 25889 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 25890 - 25927 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) -Chars 25932 - 25933 [+] 0. secs (0.u,0.s) -Chars 25934 - 25938 [(cbn).] 0. secs (0.u,0.s) -Chars 25939 - 25944 [taus.] 0. secs (0.u,0.s) -Chars 25945 - 25961 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 25962 - 25973 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 25974 - 25979 [auto.] 0. secs (0.u,0.s) -Chars 25984 - 25985 [+] 0. secs (0.u,0.s) -Chars 25986 - 25991 [etau.] 0.001 secs (0.001u,0.s) -Chars 25997 - 25998 [+] 0. secs (0.u,0.s) -Chars 25999 - 26011 [constructor.] 0. secs (0.u,0.s) -Chars 26012 - 26028 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 26029 - 26046 [(eapply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 26049 - 26050 [-] 0. secs (0.u,0.s) -Chars 26051 - 26059 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 26061 - 26103 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) -Chars 26108 - 26109 [+] 0. secs (0.u,0.s) -Chars 26110 - 26122 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 26128 - 26129 [+] 0. secs (0.u,0.s) -Chars 26130 - 26142 [constructor.] 0. secs (0.u,0.s) -Chars 26143 - 26157 [(rewrite~x,~x0).] 0. secs (0.u,0.s) -Chars 26158 - 26169 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 26177 - 26182 [step.] 0.001 secs (0.001u,0.s) -Chars 26183 - 26191 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 26192 - 26204 [constructor.] 0. secs (0.u,0.s) -Chars 26205 - 26212 [(intros).] 0. secs (0.u,0.s) -Chars 26219 - 26224 [auto.] 0. secs (0.u,0.s) -Chars 26229 - 26230 [+] 0. secs (0.u,0.s) -Chars 26231 - 26248 [(destruct~e0;~cbn).] 0.001 secs (0.001u,0.s) -Chars 26255 - 26256 [*] 0. secs (0.u,0.s) -Chars 26257 - 26272 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 26273 - 26277 [(cbn).] 0. secs (0.u,0.s) -Chars 26278 - 26299 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) -Chars 26308 - 26354 [(destruct~(classicT~(A~=~u));~...] 0.002 secs (0.002u,0.s) -Chars 26363 - 26389 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 26390 - 26417 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 26426 - 26451 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 26452 - 26456 [(cbn).] 0. secs (0.u,0.s) -Chars 26457 - 26469 [constructor.] 0. secs (0.u,0.s) -Chars 26470 - 26477 [(intros).] 0. secs (0.u,0.s) -Chars 26486 - 26497 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 26498 - 26514 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 26521 - 26522 [*] 0. secs (0.u,0.s) -Chars 26523 - 26535 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 26539 - 26540 [-] 0. secs (0.u,0.s) -Chars 26541 - 26549 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 26550 - 26592 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) -Chars 26597 - 26598 [+] 0. secs (0.u,0.s) -Chars 26599 - 26618 [(constructor;~eauto).] 0.003 secs (0.003u,0.s) -Chars 26619 - 26635 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 26636 - 26658 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 26663 - 26664 [+] 0. secs (0.u,0.s) -Chars 26665 - 26669 [(cbn).] 0. secs (0.u,0.s) -Chars 26670 - 26709 [(destruct~(observe~t')~eqn:Heq...] 0.004 secs (0.004u,0.s) -Chars 26716 - 26717 [*] 0. secs (0.u,0.s) -Chars 26718 - 26730 [constructor.] 0. secs (0.u,0.s) -Chars 26732 - 26743 [Utils.step.] 0.002 secs (0.002u,0.s) -Chars 26754 - 26766 [unstep~in~H.] 0. secs (0.u,0.s) -Chars 26767 - 26812 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) -Chars 26813 - 26818 [step.] 0.003 secs (0.003u,0.s) -Chars 26827 - 26837 [(rewrite~H).] 0.021 secs (0.021u,0.s) -Chars 26838 - 26850 [reflexivity.] 0. secs (0.u,0.s) -Chars 26858 - 26859 [*] 0. secs (0.u,0.s) -Chars 26860 - 26872 [constructor.] 0. secs (0.u,0.s) -Chars 26873 - 26891 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 26892 - 26924 [setoid_rewrite~~<-~tau_eutt~at~2.] 0.001 secs (0.u,0.s) -Chars 26933 - 26938 [step.] 0.001 secs (0.001u,0.s) -Chars 26939 - 26944 [auto.] 0. secs (0.u,0.s) -Chars 26951 - 26952 [*] 0. secs (0.u,0.s) -Chars 26953 - 26965 [constructor.] 0. secs (0.u,0.s) -Chars 26966 - 26983 [(rewrite~<-~Heqt').] 0. secs (0.u,0.s) -Chars 26984 - 26995 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 27004 - 27009 [step.] 0.001 secs (0.001u,0.s) -Chars 27010 - 27024 [(rewrite~Heqt').] 0. secs (0.u,0.s) -Chars 27025 - 27030 [auto.] 0. secs (0.u,0.s) -Chars 27035 - 27036 [+] 0. secs (0.u,0.s) -Chars 27037 - 27053 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 27054 - 27072 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 27073 - 27095 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 27098 - 27099 [-] 0. secs (0.u,0.s) -Chars 27100 - 27108 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 27109 - 27151 [(destruct~(observe~b)~eqn:Heqb...] 0.001 secs (0.001u,0.s) -Chars 27156 - 27157 [+] 0. secs (0.u,0.s) -Chars 27158 - 27176 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 27177 - 27193 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 27194 - 27216 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 27221 - 27222 [+] 0. secs (0.u,0.s) -Chars 27223 - 27260 [(destruct~(observe~t)~eqn:Heqt...] 0.004 secs (0.004u,0.s) -Chars 27267 - 27268 [*] 0. secs (0.u,0.s) -Chars 27275 - 27289 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 27290 - 27302 [unstep~in~H.] 0. secs (0.u,0.s) -Chars 27310 - 27355 [(eapply~peel_cont_ret_inv~with...] 0. secs (0.u,0.s) -Chars 27356 - 27365 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 27373 - 27378 [taus.] 0. secs (0.u,0.s) -Chars 27379 - 27388 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 27389 - 27409 [now~do~2~Utils.step.] 0.009 secs (0.009u,0.s) -Chars 27417 - 27418 [*] 0. secs (0.u,0.s) -Chars 27419 - 27431 [constructor.] 0. secs (0.u,0.s) -Chars 27432 - 27443 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 27445 - 27470 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) -Chars 27471 - 27476 [step.] 0.001 secs (0.001u,0.s) -Chars 27477 - 27482 [auto.] 0. secs (0.u,0.s) -Chars 27489 - 27490 [*] 0. secs (0.u,0.s) -Chars 27491 - 27503 [constructor.] 0. secs (0.u,0.s) -Chars 27504 - 27520 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) -Chars 27521 - 27532 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 27541 - 27546 [step.] 0.001 secs (0.001u,0.s) -Chars 27547 - 27560 [(rewrite~Heqt).] 0. secs (0.u,0.s) -Chars 27561 - 27566 [auto.] 0. secs (0.u,0.s) -Chars 27571 - 27572 [+] 0. secs (0.u,0.s) -Chars 27573 - 27589 [(rewrite~<-~Heqb).] 0. secs (0.u,0.s) -Chars 27590 - 27608 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 27609 - 27631 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 27632 - 27636 [Qed.] 0.084 secs (0.083u,0.s) -Chars 27638 - 27756 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 27757 - 27763 [Proof.] 0. secs (0.u,0.s) -Chars 27766 - 27779 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 27780 - 27786 [subst.] 0. secs (0.u,0.s) -Chars 27787 - 27826 [(rewrite~proper_peel_cont_eutt...] 0.002 secs (0.002u,0.s) -Chars 27829 - 27868 [(rewrite~proper_peel_cont_eutt...] 0.002 secs (0.002u,0.s) -Chars 27869 - 27873 [Qed.] 0.001 secs (0.001u,0.s) -Chars 28265 - 28562 [Lemma~vis_refine_peel~:~~~fora...] 0.001 secs (0.001u,0.s) -Chars 28563 - 28569 [Proof.] 0. secs (0.u,0.s) -Chars 28572 - 28587 [(intros~E~R~S~A).] 0. secs (0.u,0.s) -Chars 28613 - 28639 [(intros~e~a~k1~k2~k3~Hpeel).] 0. secs (0.u,0.s) -Chars 28642 - 28659 [(unfold~peel~in~*).] 0. secs (0.u,0.s) -Chars 28660 - 28669 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 28670 - 28684 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 28687 - 28696 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 28700 - 28724 [(unfold~observe~in~Hpeel).] 0. secs (0.u,0.s) -Chars 28725 - 28738 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) -Chars 28741 - 28766 [(unfold~peel_vis~in~Hpeel).] 0. secs (0.u,0.s) -Chars 28769 - 28792 [(assert~(A~=~A)~by~auto).] 0. secs (0.u,0.s) -Chars 28795 - 28843 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 28844 - 28879 [(unfold~eq_rect_r,~eq_rect~in~...] 0. secs (0.u,0.s) -Chars 28882 - 28909 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 28910 - 28935 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 28936 - 28945 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 28948 - 28965 [clear~HeqHe~e0~H.] 0. secs (0.u,0.s) -Chars 28966 - 28971 [step.] 0.001 secs (0.001u,0.s) -Chars 28972 - 28976 [(cbn).] 0. secs (0.u,0.s) -Chars 28977 - 28987 [(inv~Hpeel).] 0.008 secs (0.008u,0.s) -Chars 28988 - 29001 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 29005 - 29025 [specialize~(REL~tt).] 0. secs (0.u,0.s) -Chars 29028 - 29089 [(assert~(peel_~(observe~(k1~tt...] 0. secs (0.u,0.s) -Chars 29090 - 29095 [auto.] 0. secs (0.u,0.s) -Chars 29098 - 29112 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 29113 - 29127 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 29128 - 29132 [Qed.] 0.011 secs (0.011u,0.s) -Chars 29134 - 29445 [Lemma~vis_refine_peel_cont~:~~...] 0.001 secs (0.001u,0.s) -Chars 29446 - 29452 [Proof.] 0. secs (0.u,0.s) -Chars 29455 - 29492 [(intros~E~R~S~A~e~a~k1~k2~t~Hp...] 0. secs (0.u,0.s) -Chars 29493 - 29511 [step~in~Hpeelcont.] 0. secs (0.u,0.s) -Chars 29514 - 29547 [(unfold~observe~in~Hpeelcont~a...] 0. secs (0.u,0.s) -Chars 29548 - 29557 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 29558 - 29584 [(unfold~peel_cont_vis~in~*).] 0. secs (0.u,0.s) -Chars 29587 - 29608 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) -Chars 29609 - 29657 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 29660 - 29691 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) -Chars 29692 - 29719 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 29722 - 29747 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) -Chars 29748 - 29757 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 29758 - 29767 [symmetry.] 0. secs (0.u,0.s) -Chars 29770 - 29841 [(assert~(Tau~(peel_cont_~(obse...] 0. secs (0.u,0.s) -Chars 29844 - 29845 [{] 0. secs (0.u,0.s) -Chars 29846 - 29851 [step.] 0.001 secs (0.001u,0.s) -Chars 29852 - 29857 [auto.] 0. secs (0.u,0.s) -Chars 29858 - 29859 [}] 0. secs (0.u,0.s) -Chars 29862 - 29885 [(rewrite~tau_eutt~in~H0).] 0.018 secs (0.018u,0.s) -Chars 29886 - 29891 [auto.] 0. secs (0.u,0.s) -Chars 29892 - 29896 [Qed.] 0.005 secs (0.005u,0.s) -Chars 29898 - 30047 [Lemma~spin_not_vis~:~~~forall~...] 0. secs (0.u,0.s) -Chars 30048 - 30054 [Proof.] 0. secs (0.u,0.s) -Chars 30057 - 30082 [(intros~E~R~A~e~k~Hcontra).] 0. secs (0.u,0.s) -Chars 30083 - 30099 [step~in~Hcontra.] 0. secs (0.u,0.s) -Chars 30100 - 30109 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 30112 - 30140 [dependent~induction~Hcontra.] 0.019 secs (0.019u,0.s) -Chars 30143 - 30167 [(eapply~IHHcontra;~eauto).] 0. secs (0.u,0.s) -Chars 30168 - 30172 [Qed.] 0.01 secs (0.009u,0.s) -Chars 30174 - 30614 [Lemma~peel_vis_empty_contra~:~...] 0.001 secs (0.001u,0.s) -Chars 30615 - 30621 [Proof.] 0. secs (0.u,0.s) -Chars 30624 - 30670 [(intros~R~E~S~A0~Hempty~ev~k0~...] 0. secs (0.u,0.s) -Chars 30673 - 30699 [dependent~induction~Hpeel.] 0.042 secs (0.041u,0.s) -Chars 30702 - 30703 [-] 0. secs (0.u,0.s) -Chars 30704 - 30752 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 30755 - 30756 [-] 0. secs (0.u,0.s) -Chars 30757 - 30809 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 30810 - 30819 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 30820 - 30839 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 30844 - 30867 [(rewrite~Ht1~in~IHHpeel).] 0. secs (0.u,0.s) -Chars 30868 - 30890 [(eapply~IHHpeel;~eauto).] 0.002 secs (0.002u,0.s) -Chars 30891 - 30895 [Qed.] 0.023 secs (0.023u,0.s) -Chars 30898 - 31192 [Lemma~vis_peel_l~:~~~forall~(E...] 0.001 secs (0.001u,0.s) -Chars 31193 - 31199 [Proof.] 0. secs (0.u,0.s) -Chars 31202 - 31240 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) -Chars 31243 - 31257 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 31258 - 31271 [(cbn~in~Hpeel).] 0. secs (0.u,0.s) -Chars 31272 - 31298 [dependent~induction~Hpeel.] 0.045 secs (0.044u,0.s) -Chars 31301 - 31302 [-] 0. secs (0.u,0.s) -Chars 31303 - 31320 [(unfold~peel~in~x).] 0. secs (0.u,0.s) -Chars 31325 - 31448 [(destruct~(observe~b)~eqn:Heqb...] 0.03 secs (0.03u,0.s) -Chars 31449 - 31469 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 31470 - 31479 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 31484 - 31505 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 31510 - 31527 [(assert~(A0~=~X0)).] 0. secs (0.u,0.s) -Chars 31532 - 31533 [{] 0. secs (0.u,0.s) -Chars 31540 - 31548 [clear~x.] 0. secs (0.u,0.s) -Chars 31555 - 31572 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 31573 - 31590 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 31591 - 31613 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 31614 - 31636 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 31643 - 31664 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 31665 - 31686 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 31693 - 31718 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 31725 - 31738 [step~in~Href.] 0. secs (0.u,0.s) -Chars 31739 - 31748 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 31749 - 31758 [(inv~Href).] 0.015 secs (0.015u,0.s) -Chars 31765 - 31778 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 31779 - 31785 [subst.] 0. secs (0.u,0.s) -Chars 31786 - 31793 [(inv~H1).] 0.002 secs (0.002u,0.s) -Chars 31799 - 31800 [}] 0. secs (0.u,0.s) -Chars 31805 - 31862 [(destruct~(classicT~(A0~=~X0))...] 0.001 secs (0.001u,0.s) -Chars 31867 - 31898 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 31899 - 31926 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 31931 - 31956 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 31957 - 31966 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 31967 - 31989 [injection~x~as~Hevans.] 0.001 secs (0.001u,0.s) -Chars 31994 - 32007 [ddestruction.] 0.01 secs (0.01u,0.s) -Chars 32008 - 32014 [subst.] 0. secs (0.u,0.s) -Chars 32015 - 32028 [ddestruction.] 0. secs (0.u,0.s) -Chars 32029 - 32035 [subst.] 0. secs (0.u,0.s) -Chars 32036 - 32046 [exists~k0.] 0. secs (0.u,0.s) -Chars 32051 - 32068 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32069 - 32091 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 32092 - 32105 [(rewrite~Heqb).] 0.001 secs (0.001u,0.s) -Chars 32106 - 32118 [reflexivity.] 0. secs (0.u,0.s) -Chars 32121 - 32122 [-] 0. secs (0.u,0.s) -Chars 32123 - 32140 [(unfold~peel~in~x).] 0. secs (0.u,0.s) -Chars 32141 - 32264 [(destruct~(observe~b)~eqn:Heqb...] 0.043 secs (0.043u,0.s) -Chars 32269 - 32270 [+] 0. secs (0.u,0.s) -Chars 32271 - 32288 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32289 - 32311 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 32312 - 32333 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 32340 - 32365 [(rewrite~tau_eutt~in~Href).] 0.006 secs (0.006u,0.s) -Chars 32366 - 32396 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) -Chars 32397 - 32409 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 32416 - 32429 [(rewrite~Heqb).] 0. secs (0.u,0.s) -Chars 32430 - 32435 [auto.] 0. secs (0.u,0.s) -Chars 32440 - 32441 [+] 0. secs (0.u,0.s) -Chars 32442 - 32450 [exfalso.] 0. secs (0.u,0.s) -Chars 32451 - 32471 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) -Chars 32472 - 32477 [step.] 0.004 secs (0.004u,0.s) -Chars 32478 - 32484 [eauto.] 0. secs (0.u,0.s) -Chars 32489 - 32490 [+] 0. secs (0.u,0.s) -Chars 32491 - 32508 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32509 - 32526 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32527 - 32549 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 32556 - 32578 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 32579 - 32599 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) -Chars 32600 - 32624 [setoid_rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) -Chars 32631 - 32652 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 32653 - 32674 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) -Chars 32675 - 32707 [(repeat~rewrite~tau_eutt~in~Hr...] 0.008 secs (0.008u,0.s) -Chars 32714 - 32744 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) -Chars 32749 - 32750 [+] 0. secs (0.u,0.s) -Chars 32751 - 32768 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32769 - 32786 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32787 - 32809 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 32810 - 32832 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 32839 - 32859 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) -Chars 32860 - 32884 [setoid_rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) -Chars 32885 - 32906 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 32913 - 32934 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) -Chars 32935 - 32967 [(repeat~rewrite~tau_eutt~in~Hr...] 0.004 secs (0.004u,0.s) -Chars 32974 - 33004 [(eapply~IHHpeel~in~Href;~eauto).] 0.002 secs (0.002u,0.s) -Chars 33009 - 33010 [+] 0. secs (0.u,0.s) -Chars 33011 - 33028 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 33029 - 33051 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 33052 - 33073 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33080 - 33105 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 33112 - 33129 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 33130 - 33152 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 33153 - 33174 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 33181 - 33201 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) -Chars 33202 - 33232 [(eapply~IHHpeel~in~Href;~eauto).] 0.004 secs (0.004u,0.s) -Chars 33237 - 33238 [+] 0. secs (0.u,0.s) -Chars 33239 - 33247 [exfalso.] 0. secs (0.u,0.s) -Chars 33248 - 33284 [(eapply~peel_vis_empty_contra;...] 0. secs (0.u,0.s) -Chars 33289 - 33290 [+] 0. secs (0.u,0.s) -Chars 33291 - 33311 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 33312 - 33321 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 33322 - 33343 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 33350 - 33367 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 33368 - 33385 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 33386 - 33408 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 33415 - 33437 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 33438 - 33459 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 33460 - 33481 [(rewrite~Heqt~in~Href).] 0.005 secs (0.005u,0.s) -Chars 33488 - 33513 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 33514 - 33527 [step~in~Href.] 0. secs (0.u,0.s) -Chars 33528 - 33537 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 33544 - 33553 [(inv~Href).] 0.018 secs (0.018u,0.s) -Chars 33554 - 33567 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 33568 - 33574 [subst.] 0. secs (0.u,0.s) -Chars 33575 - 33582 [(inv~H1).] 0.012 secs (0.012u,0.s) -Chars 33583 - 33610 [(subst;~ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 33617 - 33640 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) -Chars 33641 - 33691 [(destruct~(classicT~(A0~=~A0))...] 0.001 secs (0.001u,0.s) -Chars 33698 - 33729 [(unfold~eq_rect_r,~eq_rect~in~*).] 0. secs (0.u,0.s) -Chars 33730 - 33757 [(remember~(eq_sym~e0)~as~He).] 0. secs (0.u,0.s) -Chars 33764 - 33789 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 33790 - 33799 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 33800 - 33813 [discriminate.] 0. secs (0.u,0.s) -Chars 33814 - 33818 [Qed.] 0.131 secs (0.129u,0.001s) -Chars 33820 - 34102 [Lemma~vis_peel_r~:~~~forall~(E...] 0.001 secs (0.001u,0.s) -Chars 34103 - 34109 [Proof.] 0. secs (0.u,0.s) -Chars 34112 - 34150 [(intros~E~R~S~A~e~a~b~t~f~k~Hr...] 0. secs (0.u,0.s) -Chars 34153 - 34197 [(eapply~vis_peel_l~in~Hpeel~as...] 0.001 secs (0.001u,0.s) -Chars 34198 - 34225 [(destruct~Hpeell~as~[k'~Hb]).] 0. secs (0.u,0.s) -Chars 34228 - 34247 [(rewrite~Hb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 34248 - 34268 [(rewrite~Hb~in~Hpeel).] 0.022 secs (0.022u,0.s) -Chars 34269 - 34280 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 34281 - 34295 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 34296 - 34305 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34308 - 34329 [(unfold~peel~in~Hpeel).] 0. secs (0.u,0.s) -Chars 34330 - 34339 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34340 - 34366 [dependent~induction~Hpeel.] 0.052 secs (0.052u,0.s) -Chars 34369 - 34370 [-] 0. secs (0.u,0.s) -Chars 34371 - 34428 [(destruct~(observe~t)~eqn:Heqt...] 0.01 secs (0.01u,0.s) -Chars 34433 - 34450 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 34451 - 34473 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 34474 - 34494 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) -Chars 34499 - 34519 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 34520 - 34529 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34530 - 34551 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 34552 - 34614 [(destruct~(classicT~(A~=~X));~...] 0.001 secs (0.001u,0.s) -Chars 34619 - 34650 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 34651 - 34678 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) -Chars 34683 - 34708 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 34709 - 34718 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34719 - 34729 [exists~k0.] 0. secs (0.u,0.s) -Chars 34734 - 34755 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 34756 - 34781 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 34782 - 34795 [step~in~Href.] 0. secs (0.u,0.s) -Chars 34801 - 34810 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 34811 - 34820 [(inv~Href).] 0.015 secs (0.015u,0.s) -Chars 34821 - 34841 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 34842 - 34849 [(inv~H1).] 0.006 secs (0.006u,0.s) -Chars 34850 - 34870 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 34871 - 34883 [reflexivity.] 0. secs (0.u,0.s) -Chars 34886 - 34887 [-] 0. secs (0.u,0.s) -Chars 34888 - 34955 [(destruct~(observe~t)~eqn:Heqt...] 0.007 secs (0.007u,0.s) -Chars 34960 - 34961 [+] 0. secs (0.u,0.s) -Chars 34962 - 34979 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 34980 - 35002 [(apply~simpobs~in~Heqt).] 0.003 secs (0.003u,0.s) -Chars 35003 - 35024 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 35025 - 35050 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 35057 - 35077 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) -Chars 35078 - 35102 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 35103 - 35125 [(eapply~IHHpeel;~eauto).] 0.002 secs (0.002u,0.s) -Chars 35130 - 35131 [+] 0. secs (0.u,0.s) -Chars 35132 - 35152 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 35153 - 35162 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 35163 - 35184 [(unfold~peel_vis~in~x).] 0. secs (0.u,0.s) -Chars 35191 - 35220 [(destruct~(classicT~(A~=~X))).] 0. secs (0.u,0.s) -Chars 35227 - 35228 [*] 0. secs (0.u,0.s) -Chars 35229 - 35260 [(unfold~eq_rect_r,~eq_rect~in~x).] 0. secs (0.u,0.s) -Chars 35261 - 35288 [(remember~(eq_sym~e1)~as~He).] 0. secs (0.u,0.s) -Chars 35289 - 35314 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 35323 - 35332 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 35333 - 35346 [discriminate.] 0. secs (0.u,0.s) -Chars 35353 - 35354 [*] 0. secs (0.u,0.s) -Chars 35355 - 35364 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 35365 - 35384 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 35385 - 35406 [(rewrite~Ht1~in~Hpeel).] 0. secs (0.u,0.s) -Chars 35415 - 35423 [exfalso.] 0. secs (0.u,0.s) -Chars 35424 - 35444 [(eapply~spin_not_vis).] 0. secs (0.u,0.s) -Chars 35445 - 35450 [step.] 0.006 secs (0.006u,0.s) -Chars 35451 - 35457 [eauto.] 0. secs (0.u,0.s) -Chars 35458 - 35462 [Qed.] 0.064 secs (0.062u,0.001s) -Chars 35464 - 35747 [Lemma~peel_cont_vis_eutt~:~~~f...] 0.001 secs (0.001u,0.s) -Chars 35748 - 35754 [Proof.] 0. secs (0.u,0.s) -Chars 35757 - 35787 [(intros~R~r~E~S~A~ev~ans~kb~kt).] 0. secs (0.u,0.s) -Chars 35790 - 35795 [step.] 0.002 secs (0.002u,0.s) -Chars 35796 - 35816 [(unfold~observe~at~1).] 0. secs (0.u,0.s) -Chars 35817 - 35821 [(cbn).] 0. secs (0.u,0.s) -Chars 35822 - 35843 [(unfold~peel_cont_vis).] 0. secs (0.u,0.s) -Chars 35846 - 35867 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) -Chars 35868 - 35915 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 35918 - 35944 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 35945 - 35971 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 35974 - 35999 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 36000 - 36004 [(cbn).] 0. secs (0.u,0.s) -Chars 36005 - 36023 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 36025 - 36029 [Qed.] 0.004 secs (0.004u,0.s) -Chars 36031 - 36316 [Lemma~peel_cont_refine_t~:~~~f...] 0. secs (0.u,0.s) -Chars 36317 - 36323 [Proof.] 0. secs (0.u,0.s) -Chars 36326 - 36333 [(intros).] 0. secs (0.u,0.s) -Chars 36334 - 36360 [(remember~(peel~b~t)~as~t').] 0. secs (0.u,0.s) -Chars 36361 - 36386 [(assert~(peel~b~t~≈~t')).] 0. secs (0.u,0.s) -Chars 36389 - 36390 [{] 0. secs (0.u,0.s) -Chars 36391 - 36397 [subst.] 0. secs (0.u,0.s) -Chars 36398 - 36410 [reflexivity.] 0. secs (0.u,0.s) -Chars 36411 - 36412 [}] 0. secs (0.u,0.s) -Chars 36415 - 36427 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 36428 - 36451 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 36452 - 36475 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 36478 - 36498 [(induction~H;~intros).] 0. secs (0.u,0.s) -Chars 36501 - 36502 [-] 0. secs (0.u,0.s) -Chars 36503 - 36522 [(rewrite~<-~H0~in~H).] 0.023 secs (0.023u,0.s) -Chars 36523 - 36532 [clear~H0.] 0. secs (0.u,0.s) -Chars 36533 - 36563 [(apply~peel_ret_inv~in~H~as~Ht).] 0. secs (0.u,0.s) -Chars 36568 - 36588 [(rewrite~Ht~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 36593 - 36621 [(rewrite~bind_ret_l~in~Hrutt).] 0.003 secs (0.003u,0.s) -Chars 36626 - 36642 [(rewrite~Ht~in~H).] 0.027 secs (0.027u,0.s) -Chars 36647 - 36664 [(unfold~peel_cont).] 0. secs (0.u,0.s) -Chars 36665 - 36669 [(cbn).] 0. secs (0.u,0.s) -Chars 36670 - 36703 [(rewrite~peel_cont_ret_inv;~ea...] 0.004 secs (0.004u,0.s) -Chars 36706 - 36707 [-] 0. secs (0.u,0.s) -Chars 36708 - 36724 [(rewrite~H~in~H1).] 0. secs (0.u,0.s) -Chars 36725 - 36733 [clear~H.] 0. secs (0.u,0.s) -Chars 36738 - 36768 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) -Chars 36769 - 36806 [(eapply~vis_peel_l~in~H1~as~Hb...] 0.001 secs (0.001u,0.s) -Chars 36811 - 36848 [(eapply~vis_peel_r~in~H1~as~Ht...] 0.001 secs (0.001u,0.s) -Chars 36853 - 36877 [(destruct~Hb~as~[kb~Hkb]).] 0. secs (0.u,0.s) -Chars 36878 - 36902 [(destruct~Ht~as~[kt~Htk]).] 0. secs (0.u,0.s) -Chars 36907 - 36919 [(rewrite~Htk).] 0.006 secs (0.006u,0.s) -Chars 36920 - 36932 [(rewrite~Hkb).] 0.005 secs (0.005u,0.s) -Chars 36937 - 36958 [(rewrite~Hkb~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 36959 - 36980 [(rewrite~Htk~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 36985 - 37003 [(rewrite~Hkb~in~H1).] 0.021 secs (0.021u,0.s) -Chars 37004 - 37022 [(rewrite~Htk~in~H1).] 0.024 secs (0.024u,0.s) -Chars 37027 - 37061 [(apply~vis_refine_peel~in~H1~a...] 0. secs (0.u,0.s) -Chars 37066 - 37093 [(rewrite~peel_cont_vis_eutt).] 0.005 secs (0.005u,0.s) -Chars 37094 - 37121 [(apply~IHmay_converge;~auto).] 0.001 secs (0.001u,0.s) -Chars 37126 - 37127 [+] 0. secs (0.u,0.s) -Chars 37128 - 37154 [(rewrite~bind_vis~in~Hrutt).] 0.003 secs (0.003u,0.s) -Chars 37155 - 37169 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 37170 - 37179 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 37186 - 37196 [(inv~Hrutt).] 0.013 secs (0.012u,0.s) -Chars 37197 - 37217 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 37224 - 37295 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 37302 - 37316 [(apply~H8~in~H).] 0. secs (0.u,0.s) -Chars 37318 - 37323 [auto.] 0. secs (0.u,0.s) -Chars 37328 - 37329 [+] 0. secs (0.u,0.s) -Chars 37330 - 37341 [(destruct~b).] 0. secs (0.u,0.s) -Chars 37342 - 37351 [symmetry.] 0. secs (0.u,0.s) -Chars 37352 - 37357 [auto.] 0. secs (0.u,0.s) -Chars 37358 - 37362 [Qed.] 0.019 secs (0.019u,0.s) -Chars 37365 - 37666 [Ltac~~fold_peel_cont~r~:=~~~ma...] 0. secs (0.u,0.s) -Chars 37668 - 38030 [Lemma~trace_prefix_tau_ret~:~~...] 0.001 secs (0.001u,0.s) -Chars 38031 - 38037 [Proof.] 0. secs (0.u,0.s) -Chars 38040 - 38083 [(intros~E~R~S~r~b~t~f~r0~Hrutt...] 0. secs (0.u,0.s) -Chars 38086 - 38103 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 38104 - 38121 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 38124 - 38146 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 38147 - 38169 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 38170 - 38192 [(rewrite~Heqb~in~Hrutt).] 0.003 secs (0.003u,0.s) -Chars 38195 - 38217 [(rewrite~Heqt~in~Hrutt).] 0.007 secs (0.006u,0.s) -Chars 38218 - 38244 [(rewrite~tau_eutt~in~Hrutt).] 0.004 secs (0.004u,0.s) -Chars 38247 - 38285 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 38286 - 38298 [constructor.] 0. secs (0.u,0.s) -Chars 38301 - 38333 [(assert~(exists~s,~t0~≈~Ret~s)).] 0. secs (0.u,0.s) -Chars 38336 - 38337 [{] 0. secs (0.u,0.s) -Chars 38342 - 38356 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 38357 - 38383 [dependent~induction~Hrutt.] 0.029 secs (0.029u,0.s) -Chars 38388 - 38389 [-] 0. secs (0.u,0.s) -Chars 38390 - 38410 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 38411 - 38420 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 38421 - 38481 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) -Chars 38488 - 38498 [exists~r1.] 0. secs (0.u,0.s) -Chars 38499 - 38504 [step.] 0.001 secs (0.001u,0.s) -Chars 38505 - 38517 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 38518 - 38522 [(cbn).] 0. secs (0.u,0.s) -Chars 38523 - 38539 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 38544 - 38545 [-] 0. secs (0.u,0.s) -Chars 38546 - 38566 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 38567 - 38576 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 38577 - 38637 [(destruct~(observe~t0)~eqn:Ht0...] 0.001 secs (0.001u,0.s) -Chars 38644 - 38645 [+] 0. secs (0.u,0.s) -Chars 38646 - 38656 [exists~r1.] 0. secs (0.u,0.s) -Chars 38657 - 38662 [step.] 0.001 secs (0.001u,0.s) -Chars 38663 - 38675 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 38676 - 38680 [(cbn).] 0. secs (0.u,0.s) -Chars 38681 - 38697 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 38704 - 38705 [+] 0. secs (0.u,0.s) -Chars 38706 - 38725 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 38726 - 38742 [symmetry~in~Ht0.] 0. secs (0.u,0.s) -Chars 38743 - 38764 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) -Chars 38773 - 38806 [(apply~eq_sub_eutt~in~Ht0~as~H...] 0. secs (0.u,0.s) -Chars 38807 - 38827 [setoid_rewrite~Ht0'.] 0.004 secs (0.004u,0.s) -Chars 38836 - 38860 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 38861 - 38883 [(eapply~IHHrutt;~eauto).] 0.004 secs (0.004u,0.s) -Chars 38892 - 38904 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 38905 - 38911 [eauto.] 0. secs (0.u,0.s) -Chars 38914 - 38915 [}] 0. secs (0.u,0.s) -Chars 38918 - 38940 [(destruct~H~as~[s~Ht0]).] 0. secs (0.u,0.s) -Chars 38941 - 38953 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 38954 - 38965 [(cbn~in~Ht0).] 0. secs (0.u,0.s) -Chars 38968 - 38985 [clear~Heqt~Hrutt.] 0. secs (0.u,0.s) -Chars 38988 - 39012 [dependent~induction~Ht0.] 0.03 secs (0.03u,0.s) -Chars 39015 - 39016 [-] 0. secs (0.u,0.s) -Chars 39017 - 39025 [simpobs.] 0. secs (0.u,0.s) -Chars 39026 - 39030 [(cbn).] 0. secs (0.u,0.s) -Chars 39031 - 39044 [step~in~Heqb.] 0. secs (0.u,0.s) -Chars 39045 - 39054 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 39055 - 39064 [(inv~Heqb).] 0.012 secs (0.012u,0.s) -Chars 39069 - 39080 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 39081 - 39097 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 39100 - 39101 [-] 0. secs (0.u,0.s) -Chars 39102 - 39110 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 39111 - 39115 [(cbn).] 0. secs (0.u,0.s) -Chars 39116 - 39128 [constructor.] 0. secs (0.u,0.s) -Chars 39129 - 39149 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 39150 - 39154 [Qed.] 0.046 secs (0.046u,0.s) -Chars 39156 - 39958 [Lemma~trace_prefix_vis_evans~:...] 0.002 secs (0.002u,0.s) -Chars 39959 - 39965 [Proof.] 0. secs (0.u,0.s) -Chars 39968 - 40015 [(intros~E~R~S~r~A0~ev~ans~k~k'...] 0. secs (0.u,0.s) -Chars 40018 - 40030 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 40031 - 40040 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 40041 - 40065 [dependent~induction~Ht0.] 0.044 secs (0.043u,0.s) -Chars 40068 - 40069 [-] 0. secs (0.u,0.s) -Chars 40070 - 40078 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 40079 - 40094 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 40095 - 40099 [(cbn).] 0. secs (0.u,0.s) -Chars 40100 - 40116 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 40121 - 40144 [(assert~(A0~=~A0);~auto).] 0. secs (0.u,0.s) -Chars 40145 - 40194 [(destruct~(classicT~(A0~=~A0))...] 0. secs (0.u,0.s) -Chars 40199 - 40225 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 40226 - 40252 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 40257 - 40282 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 40283 - 40287 [(cbn).] 0. secs (0.u,0.s) -Chars 40288 - 40300 [constructor.] 0. secs (0.u,0.s) -Chars 40301 - 40312 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 40318 - 40390 [(assert~(RAnsRef~E~unit~A0~(ev...] 0. secs (0.u,0.s) -Chars 40395 - 40411 [(apply~Hk'~in~H0).] 0. secs (0.u,0.s) -Chars 40413 - 40455 [(assert~(k1~ans~≈~k'~ans);~try...] 0. secs (0.u,0.s) -Chars 40460 - 40471 [(rewrite~H1).] 0.004 secs (0.004u,0.s) -Chars 40472 - 40478 [eauto.] 0. secs (0.u,0.s) -Chars 40481 - 40482 [-] 0. secs (0.u,0.s) -Chars 40483 - 40491 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 40492 - 40496 [(cbn).] 0. secs (0.u,0.s) -Chars 40497 - 40509 [constructor.] 0. secs (0.u,0.s) -Chars 40510 - 40530 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 40531 - 40535 [Qed.] 0.031 secs (0.03u,0.s) -Chars 40537 - 41195 [Lemma~trace_prefix_vis_evempty...] 0.001 secs (0.001u,0.s) -Chars 41196 - 41202 [Proof.] 0. secs (0.u,0.s) -Chars 41205 - 41250 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) -Chars 41253 - 41257 [(cbn).] 0. secs (0.u,0.s) -Chars 41258 - 41270 [constructor.] 0. secs (0.u,0.s) -Chars 41273 - 41297 [dependent~induction~Ht0.] 0.034 secs (0.033u,0.s) -Chars 41300 - 41301 [-] 0. secs (0.u,0.s) -Chars 41302 - 41310 [simpobs.] 0. secs (0.u,0.s) -Chars 41311 - 41315 [(cbn).] 0. secs (0.u,0.s) -Chars 41316 - 41328 [constructor.] 0. secs (0.u,0.s) -Chars 41331 - 41332 [-] 0. secs (0.u,0.s) -Chars 41333 - 41341 [simpobs.] 0.004 secs (0.003u,0.s) -Chars 41342 - 41346 [(cbn).] 0. secs (0.u,0.s) -Chars 41347 - 41359 [constructor.] 0. secs (0.u,0.s) -Chars 41360 - 41380 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 41381 - 41385 [Qed.] 0.038 secs (0.037u,0.s) -Chars 41388 - 41939 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) -Chars 41940 - 41946 [Proof.] 0. secs (0.u,0.s) -Chars 41949 - 41985 [(intros~E~R~S~r~A0~ev~ans~k~t0...] 0. secs (0.u,0.s) -Chars 41988 - 42000 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 42001 - 42010 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 42011 - 42035 [dependent~induction~Ht0.] 0.042 secs (0.041u,0.s) -Chars 42038 - 42039 [-] 0. secs (0.u,0.s) -Chars 42040 - 42048 [simpobs.] 0. secs (0.u,0.s) -Chars 42049 - 42053 [(cbn).] 0. secs (0.u,0.s) -Chars 42054 - 42102 [(remember~(go~(VisF~(evans~A0~...] 0. secs (0.u,0.s) -Chars 42107 - 42154 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) -Chars 42159 - 42160 [{] 0. secs (0.u,0.s) -Chars 42161 - 42167 [subst.] 0. secs (0.u,0.s) -Chars 42168 - 42173 [auto.] 0. secs (0.u,0.s) -Chars 42174 - 42175 [}] 0. secs (0.u,0.s) -Chars 42180 - 42192 [constructor.] 0. secs (0.u,0.s) -Chars 42195 - 42196 [-] 0. secs (0.u,0.s) -Chars 42197 - 42205 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 42206 - 42210 [(cbn).] 0. secs (0.u,0.s) -Chars 42211 - 42223 [constructor.] 0. secs (0.u,0.s) -Chars 42224 - 42244 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 42245 - 42249 [Qed.] 0.015 secs (0.015u,0.s) -Chars 42251 - 42848 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) -Chars 42849 - 42855 [Proof.] 0. secs (0.u,0.s) -Chars 42858 - 42897 [(intros~E~R~S~r~A0~Hempty~ev~k...] 0. secs (0.u,0.s) -Chars 42900 - 42912 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 42913 - 42922 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 42923 - 42947 [dependent~induction~Ht0.] 0.033 secs (0.033u,0.s) -Chars 42950 - 42951 [-] 0. secs (0.u,0.s) -Chars 42952 - 42960 [simpobs.] 0. secs (0.u,0.s) -Chars 42961 - 42965 [(cbn).] 0. secs (0.u,0.s) -Chars 42966 - 43019 [(remember~(go~(VisF~(evempty~A...] 0. secs (0.u,0.s) -Chars 43024 - 43071 [(enough~(trace_prefixF~r~(RetF...] 0. secs (0.u,0.s) -Chars 43076 - 43077 [{] 0. secs (0.u,0.s) -Chars 43078 - 43084 [subst.] 0. secs (0.u,0.s) -Chars 43085 - 43090 [auto.] 0. secs (0.u,0.s) -Chars 43091 - 43092 [}] 0. secs (0.u,0.s) -Chars 43097 - 43109 [constructor.] 0. secs (0.u,0.s) -Chars 43112 - 43113 [-] 0.002 secs (0.002u,0.s) -Chars 43114 - 43122 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43123 - 43127 [(cbn).] 0. secs (0.u,0.s) -Chars 43128 - 43140 [constructor.] 0. secs (0.u,0.s) -Chars 43141 - 43161 [(eapply~IHHt0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 43162 - 43166 [Qed.] 0.015 secs (0.015u,0.s) -Chars 43168 - 43379 [Lemma~trace_prefix_peel~:~~~fo...] 0. secs (0.u,0.s) -Chars 43380 - 43386 [Proof.] 0. secs (0.u,0.s) -Chars 43389 - 43402 [(intros~E~S~R).] 0. secs (0.u,0.s) -Chars 43403 - 43421 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 43422 - 43440 [(intros~b~t~f~Href).] 0. secs (0.u,0.s) -Chars 43441 - 43453 [(unfold~peel).] 0. secs (0.u,0.s) -Chars 43456 - 43532 [(destruct~(observe~b)~eqn:Heqb...] 0.003 secs (0.003u,0.s) -Chars 43536 - 43537 [-] 0. secs (0.u,0.s) -Chars 43538 - 43542 [(cbn).] 0. secs (0.u,0.s) -Chars 43543 - 43559 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 43563 - 43564 [-] 0. secs (0.u,0.s) -Chars 43565 - 43573 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43574 - 43609 [(eapply~trace_prefix_tau_ret;~...] 0. secs (0.u,0.s) -Chars 43612 - 43613 [-] 0. secs (0.u,0.s) -Chars 43614 - 43631 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 43632 - 43649 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 43650 - 43672 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 43673 - 43695 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 43700 - 43721 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 43722 - 43743 [(rewrite~Heqt~in~Href).] 0.007 secs (0.007u,0.s) -Chars 43744 - 43769 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 43774 - 43784 [sinv~Href.] 0.003 secs (0.003u,0.s) -Chars 43787 - 43788 [-] 0. secs (0.u,0.s) -Chars 43789 - 43797 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43798 - 43814 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 43817 - 43818 [-] 0. secs (0.u,0.s) -Chars 43819 - 43827 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43828 - 43840 [constructor.] 0. secs (0.u,0.s) -Chars 43841 - 43852 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 43854 - 43871 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 43872 - 43889 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 43894 - 43916 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 43917 - 43939 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 43940 - 43961 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 43962 - 43983 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 43988 - 44020 [(repeat~rewrite~tau_eutt~in~Hr...] 0.011 secs (0.01u,0.s) -Chars 44021 - 44027 [eauto.] 0. secs (0.u,0.s) -Chars 44030 - 44031 [-] 0. secs (0.u,0.s) -Chars 44032 - 44040 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 44041 - 44053 [constructor.] 0. secs (0.u,0.s) -Chars 44054 - 44070 [(rewrite~<-~Heqt).] 0. secs (0.u,0.s) -Chars 44071 - 44082 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 44088 - 44105 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 44106 - 44128 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 44129 - 44150 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 44155 - 44180 [(rewrite~tau_eutt~in~Href).] 0.003 secs (0.003u,0.s) -Chars 44181 - 44187 [eauto.] 0. secs (0.u,0.s) -Chars 44190 - 44191 [-] 0. secs (0.u,0.s) -Chars 44192 - 44200 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 44201 - 44251 [(destruct~e;~cbn;~rewrite~<-~H...] 0.001 secs (0.001u,0.s) -Chars 44254 - 44255 [-] 0. secs (0.u,0.s) -Chars 44256 - 44264 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 44265 - 44282 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 44283 - 44305 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 44310 - 44331 [(rewrite~Heqb~in~Href).] 0.003 secs (0.003u,0.s) -Chars 44336 - 44376 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 44377 - 44415 [(destruct~Hbt~as~[A~[e0~[k0~Hv...] 0.003 secs (0.003u,0.s) -Chars 44420 - 44437 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 44438 - 44460 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 44461 - 44482 [(rewrite~Heqt~in~Hvis).] 0.01 secs (0.01u,0.s) -Chars 44487 - 44512 [(rewrite~tau_eutt~in~Hvis).] 0.008 secs (0.008u,0.s) -Chars 44517 - 44612 [(assert~~~((exists~B,~exists~k...] 0.001 secs (0.001u,0.s) -Chars 44617 - 44618 [{] 0. secs (0.u,0.s) -Chars 44625 - 44638 [step~in~Hvis.] 0. secs (0.u,0.s) -Chars 44639 - 44655 [clear~Heqb~Heqt.] 0. secs (0.u,0.s) -Chars 44662 - 44687 [dependent~induction~Hvis.] 0.046 secs (0.045u,0.s) -Chars 44694 - 44695 [-] 0. secs (0.u,0.s) -Chars 44696 - 44716 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 44717 - 44726 [(cbn~in~*).] 0.002 secs (0.002u,0.s) -Chars 44727 - 44779 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 44788 - 44789 [+] 0. secs (0.u,0.s) -Chars 44790 - 44796 [right.] 0. secs (0.u,0.s) -Chars 44797 - 44806 [exists~r.] 0. secs (0.u,0.s) -Chars 44807 - 44812 [step.] 0.001 secs (0.001u,0.s) -Chars 44813 - 44817 [(cbn).] 0. secs (0.u,0.s) -Chars 44818 - 44832 [(rewrite~Heqt0).] 0. secs (0.u,0.s) -Chars 44833 - 44849 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 44858 - 44859 [+] 0. secs (0.u,0.s) -Chars 44860 - 44869 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 44870 - 44875 [left.] 0. secs (0.u,0.s) -Chars 44876 - 44886 [exists~X0.] 0. secs (0.u,0.s) -Chars 44887 - 44897 [exists~k2.] 0. secs (0.u,0.s) -Chars 44898 - 44908 [exists~e1.] 0. secs (0.u,0.s) -Chars 44909 - 44927 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) -Chars 44938 - 44961 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) -Chars 44962 - 44976 [(rewrite~Heqt0).] 0.001 secs (0.001u,0.s) -Chars 44977 - 44989 [reflexivity.] 0. secs (0.u,0.s) -Chars 44996 - 44997 [-] 0. secs (0.u,0.s) -Chars 44998 - 45018 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 45019 - 45028 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 45029 - 45081 [(destruct~(observe~t0)~eqn:Heq...] 0.001 secs (0.001u,0.s) -Chars 45090 - 45091 [+] 0. secs (0.u,0.s) -Chars 45092 - 45098 [right.] 0. secs (0.u,0.s) -Chars 45099 - 45108 [exists~r.] 0. secs (0.u,0.s) -Chars 45109 - 45114 [step.] 0.001 secs (0.001u,0.s) -Chars 45115 - 45119 [(cbn).] 0. secs (0.u,0.s) -Chars 45120 - 45134 [(rewrite~Heqt0).] 0. secs (0.u,0.s) -Chars 45135 - 45151 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 45160 - 45161 [+] 0. secs (0.u,0.s) -Chars 45162 - 45181 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 45182 - 45200 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) -Chars 45201 - 45224 [(apply~simpobs~in~Heqt0).] 0. secs (0.u,0.s) -Chars 45235 - 45256 [setoid_rewrite~Heqt0.] 0.01 secs (0.01u,0.s) -Chars 45257 - 45281 [setoid_rewrite~tau_eutt.] 0.015 secs (0.015u,0.s) -Chars 45282 - 45303 [(eapply~IHHvis;~eauto).] 0.003 secs (0.003u,0.s) -Chars 45314 - 45326 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 45327 - 45332 [auto.] 0. secs (0.u,0.s) -Chars 45337 - 45338 [}] 0. secs (0.u,0.s) -Chars 45343 - 45391 [(destruct~H~as~[[B~[k'~[e1~Ht0...] 0. secs (0.u,0.s) -Chars 45396 - 45397 [+] 0. secs (0.u,0.s) -Chars 45398 - 45419 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45420 - 45445 [(rewrite~tau_eutt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45452 - 45472 [(rewrite~Ht0~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45473 - 45498 [(rewrite~bind_vis~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45505 - 45515 [sinv~Href.] 0.018 secs (0.018u,0.s) -Chars 45516 - 45543 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 45550 - 45570 [(rewrite~Ht0~in~Hvis).] 0.01 secs (0.01u,0.s) -Chars 45571 - 45596 [(rewrite~bind_vis~in~Hvis).] 0.01 secs (0.01u,0.s) -Chars 45597 - 45607 [sinv~Hvis.] 0.018 secs (0.017u,0.s) -Chars 45614 - 45641 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 45642 - 45658 [clear~Heqt~Heqb.] 0. secs (0.u,0.s) -Chars 45665 - 45677 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 45678 - 45687 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 45694 - 45705 [(destruct~e).] 0. secs (0.u,0.s) -Chars 45712 - 45713 [*] 0. secs (0.u,0.s) -Chars 45714 - 45721 [(inv~H1).] 0.014 secs (0.014u,0.s) -Chars 45722 - 45742 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 45743 - 45747 [(cbn).] 0. secs (0.u,0.s) -Chars 45748 - 45760 [constructor.] 0. secs (0.u,0.s) -Chars 45769 - 45817 [(eapply~trace_prefix_vis_evans...] 0.001 secs (0.001u,0.s) -Chars 45826 - 45835 [now~step.] 0.001 secs (0.001u,0.s) -Chars 45843 - 45844 [*] 0. secs (0.u,0.s) -Chars 45845 - 45884 [(eapply~trace_prefix_vis_evemp...] 0. secs (0.u,0.s) -Chars 45889 - 45890 [+] 0. secs (0.u,0.s) -Chars 45891 - 45912 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 45913 - 45933 [(rewrite~Ht0~in~Href).] 0.005 secs (0.005u,0.s) -Chars 45940 - 45965 [(rewrite~tau_eutt~in~Href).] 0.006 secs (0.005u,0.s) -Chars 45966 - 45993 [(rewrite~bind_ret_l~in~Href).] 0.003 secs (0.003u,0.s) -Chars 45994 - 46005 [clear~Hvis.] 0. secs (0.u,0.s) -Chars 46012 - 46023 [(destruct~e).] 0. secs (0.u,0.s) -Chars 46030 - 46031 [*] 0. secs (0.u,0.s) -Chars 46032 - 46036 [(cbn).] 0. secs (0.u,0.s) -Chars 46037 - 46049 [constructor.] 0. secs (0.u,0.s) -Chars 46050 - 46090 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) -Chars 46097 - 46098 [*] 0. secs (0.u,0.s) -Chars 46099 - 46103 [(cbn).] 0. secs (0.u,0.s) -Chars 46104 - 46116 [constructor.] 0. secs (0.u,0.s) -Chars 46117 - 46163 [(eapply~trace_prefix_peel_ret_...] 0.001 secs (0.001u,0.s) -Chars 46166 - 46167 [-] 0. secs (0.u,0.s) -Chars 46168 - 46212 [(destruct~e;~cbn;~simpobs;~[~~...] 0.005 secs (0.005u,0.s) -Chars 46217 - 46234 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 46235 - 46257 [(apply~simpobs~in~Heqt).] 0. secs (0.u,0.s) -Chars 46258 - 46279 [(rewrite~Heqt~in~Href).] 0.004 secs (0.004u,0.s) -Chars 46284 - 46309 [(rewrite~bind_vis~in~Href).] 0.003 secs (0.003u,0.s) -Chars 46310 - 46327 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 46328 - 46350 [(apply~simpobs~in~Heqb).] 0. secs (0.u,0.s) -Chars 46355 - 46376 [(rewrite~Heqb~in~Href).] 0.005 secs (0.005u,0.s) -Chars 46377 - 46387 [sinv~Href.] 0.015 secs (0.015u,0.s) -Chars 46388 - 46415 [(subst;~ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 46420 - 46433 [(inversion~H1).] 0.003 secs (0.003u,0.s) -Chars 46434 - 46454 [(ddestruction;~subst).] 0.006 secs (0.005u,0.s) -Chars 46459 - 46479 [(unfold~observe~at~1).] 0. secs (0.u,0.s) -Chars 46480 - 46484 [(cbn).] 0. secs (0.u,0.s) -Chars 46485 - 46501 [(unfold~peel_vis).] 0. secs (0.u,0.s) -Chars 46502 - 46523 [(assert~(A~=~A);~auto).] 0. secs (0.u,0.s) -Chars 46528 - 46576 [(destruct~(classicT~(A~=~A));~...] 0. secs (0.u,0.s) -Chars 46581 - 46607 [(unfold~eq_rect_r,~eq_rect).] 0. secs (0.u,0.s) -Chars 46608 - 46634 [(remember~(eq_sym~e)~as~He).] 0. secs (0.u,0.s) -Chars 46639 - 46664 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 46665 - 46669 [(cbn).] 0. secs (0.u,0.s) -Chars 46670 - 46682 [constructor.] 0. secs (0.u,0.s) -Chars 46683 - 46694 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 46700 - 46720 [(ddestruction;~subst).] 0. secs (0.u,0.s) -Chars 46725 - 46796 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 46801 - 46816 [(apply~H6~in~H0).] 0. secs (0.u,0.s) -Chars 46818 - 46824 [eauto.] 0. secs (0.u,0.s) -Chars 46825 - 46829 [Qed.] 0.143 secs (0.14u,0.002s) -Chars 46831 - 47038 [Lemma~peel_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 47039 - 47045 [Proof.] 0. secs (0.u,0.s) -Chars 47048 - 47055 [(intros).] 0. secs (0.u,0.s) -Chars 47056 - 47080 [(apply~trace_prefix_bind).] 0. secs (0.u,0.s) -Chars 47081 - 47113 [(eapply~trace_prefix_peel;~eau...] 0. secs (0.u,0.s) -Chars 47114 - 47118 [Qed.] 0. secs (0.u,0.s) -Chars 47120 - 47283 [Lemma~peel_lemma~:~~~forall~E~...] 0. secs (0.u,0.s) -Chars 47284 - 47290 [Proof.] 0. secs (0.u,0.s) -Chars 47293 - 47300 [(intros).] 0. secs (0.u,0.s) -Chars 47301 - 47373 [(split;~try~eapply~peel_refine...] 0. secs (0.u,0.s) -Chars 47374 - 47378 [Qed.] 0. secs (0.u,0.s) -Chars 47380 - 47389 [End~Peel.] 0.008 secs (0.008u,0.s) -Chars 47391 - 47574 [Lemma~bind_peel_ret_tau_aux~:~...] 0. secs (0.u,0.s) -Chars 47575 - 47581 [Proof.] 0. secs (0.u,0.s) -Chars 47584 - 47611 [(intros~E~S~R~f~r0~t0~Hrutt).] 0. secs (0.u,0.s) -Chars 47614 - 47628 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 47629 - 47638 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 47639 - 47665 [dependent~induction~Hrutt.] 0.038 secs (0.037u,0.s) -Chars 47668 - 47669 [-] 0. secs (0.u,0.s) -Chars 47670 - 47693 [(unfold~ITree.bind~in~x).] 0. secs (0.u,0.s) -Chars 47694 - 47719 [(unfold~observe~in~x~at~1).] 0. secs (0.u,0.s) -Chars 47720 - 47729 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 47734 - 47784 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) -Chars 47789 - 47798 [exists~r.] 0. secs (0.u,0.s) -Chars 47799 - 47804 [step.] 0.001 secs (0.001u,0.s) -Chars 47805 - 47817 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 47818 - 47830 [constructor.] 0. secs (0.u,0.s) -Chars 47831 - 47836 [auto.] 0. secs (0.u,0.s) -Chars 47839 - 47840 [-] 0. secs (0.u,0.s) -Chars 47841 - 47861 [(unfold~observe~in~x).] 0. secs (0.u,0.s) -Chars 47862 - 47871 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 47872 - 47922 [(destruct~(observe~t0)~eqn:Ht0...] 0. secs (0.u,0.s) -Chars 47927 - 47928 [+] 0. secs (0.u,0.s) -Chars 47929 - 47938 [exists~r.] 0. secs (0.u,0.s) -Chars 47939 - 47944 [step.] 0.001 secs (0.001u,0.s) -Chars 47945 - 47957 [(rewrite~Ht0).] 0. secs (0.u,0.s) -Chars 47958 - 47970 [constructor.] 0. secs (0.u,0.s) -Chars 47971 - 47976 [auto.] 0. secs (0.u,0.s) -Chars 47981 - 47982 [+] 0. secs (0.u,0.s) -Chars 47983 - 47999 [symmetry~in~Ht0.] 0. secs (0.u,0.s) -Chars 48000 - 48021 [(apply~simpobs~in~Ht0).] 0. secs (0.u,0.s) -Chars 48022 - 48041 [setoid_rewrite~Ht0.] 0.001 secs (0.001u,0.s) -Chars 48042 - 48066 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 48073 - 48082 [(cbn~in~x).] 0. secs (0.u,0.s) -Chars 48083 - 48102 [injection~x~as~Ht2.] 0. secs (0.u,0.s) -Chars 48103 - 48124 [(eapply~IHHrutt;~auto).] 0.002 secs (0.002u,0.s) -Chars 48131 - 48137 [subst.] 0.001 secs (0.001u,0.s) -Chars 48138 - 48150 [reflexivity.] 0. secs (0.u,0.s) -Chars 48151 - 48155 [Qed.] 0.03 secs (0.03u,0.s) -Chars 48157 - 48405 [Lemma~decompose_trace_refine_b...] 0.001 secs (0.001u,0.s) -Chars 48406 - 48412 [Proof.] 0. secs (0.u,0.s) -Chars 48415 - 48457 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) -Chars 48460 - 48467 [(intros).] 0. secs (0.u,0.s) -Chars 48468 - 48495 [exists~(peel~classicT~b~t).] 0. secs (0.u,0.s) -Chars 48498 - 48539 [(apply~(peel_bind~classicT)~in...] 0. secs (0.u,0.s) -Chars 48540 - 48568 [(destruct~Heutt~as~[g~Heutt]).] 0. secs (0.u,0.s) -Chars 48571 - 48580 [exists~g.] 0. secs (0.u,0.s) -Chars 48581 - 48635 [(split;~auto;~eapply~(peel_ref...] 0. secs (0.u,0.s) -Chars 48636 - 48640 [Qed.] 0.001 secs (0.001u,0.s) -Chars 48642 - 48963 [Lemma~bind_trigger_refine~:~~~...] 0.001 secs (0.001u,0.s) -Chars 48964 - 48970 [Proof.] 0. secs (0.u,0.s) -Chars 48973 - 48980 [(intros).] 0. secs (0.u,0.s) -Chars 48981 - 49008 [(rewrite~bind_trigger~in~H0).] 0.005 secs (0.005u,0.s) -Chars 49009 - 49046 [(apply~trace_refine_vis~in~H0~...] 0. secs (0.u,0.s) -Chars 49049 - 49088 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) -Chars 49089 - 49110 [setoid_rewrite~Hbvis.] 0.008 secs (0.008u,0.s) -Chars 49113 - 49133 [(rewrite~Hbvis~in~H0).] 0.003 secs (0.003u,0.s) -Chars 49136 - 49147 [step~in~H0.] 0. secs (0.u,0.s) -Chars 49148 - 49157 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 49158 - 49165 [(inv~H0).] 0.011 secs (0.011u,0.s) -Chars 49166 - 49179 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 49180 - 49186 [subst.] 0. secs (0.u,0.s) -Chars 49187 - 49215 [(inv~H3;~ddestruction;~subst).] 0.012 secs (0.012u,0.s) -Chars 49218 - 49219 [-] 0. secs (0.u,0.s) -Chars 49220 - 49229 [exists~a.] 0. secs (0.u,0.s) -Chars 49230 - 49240 [exists~k'.] 0. secs (0.u,0.s) -Chars 49241 - 49264 [(split;~try~reflexivity).] 0. secs (0.u,0.s) -Chars 49270 - 49335 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 49340 - 49355 [(apply~H8~in~H0).] 0. secs (0.u,0.s) -Chars 49357 - 49362 [auto.] 0. secs (0.u,0.s) -Chars 49365 - 49366 [-] 0. secs (0.u,0.s) -Chars 49367 - 49387 [(destruct~H~as~[a~_]).] 0. secs (0.u,0.s) -Chars 49388 - 49402 [contradiction.] 0. secs (0.u,0.s) -Chars 49403 - 49407 [Qed.] 0.019 secs (0.019u,0.s) +Chars 20915 - 20935 [rewrite~Hspin~in~H0.] 0. secs (0.u,0.s) +Chars 20936 - 20968 [eapply~not_spin_eutt_ret;~eauto.] 0. secs (0.u,0.s) +Chars 20969 - 20973 [Qed.] 0.05 secs (0.05u,0.s) +Chars 21751 - 22398 [Lemma~eqitF_observe_peel_cont_...] 0.002 secs (0.002u,0.s) +Chars 22399 - 22405 [Proof.] 0. secs (0.u,0.s) +Chars 22408 - 22452 [intros~E~R~S~A~ev~ans~k1~k2~RE...] 0. secs (0.u,0.s) +Chars 22453 - 22458 [icbn.] 0. secs (0.u,0.s) +Chars 22462 - 22477 [unfold~observe.] 0. secs (0.u,0.s) +Chars 22478 - 22482 [cbn.] 0. secs (0.u,0.s) +Chars 22483 - 22504 [unfold~peel_cont_vis.] 0. secs (0.u,0.s) +Chars 22507 - 22536 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) +Chars 22539 - 22540 [-] 0. secs (0.u,0.s) +Chars 22541 - 22567 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 22568 - 22595 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 22600 - 22625 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 22626 - 22630 [cbn.] 0. secs (0.u,0.s) +Chars 22631 - 22643 [constructor.] 0. secs (0.u,0.s) +Chars 22648 - 22655 [intros.] 0. secs (0.u,0.s) +Chars 22657 - 22668 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 22669 - 22685 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 22688 - 22689 [-] 0. secs (0.u,0.s) +Chars 22690 - 22694 [cbn.] 0. secs (0.u,0.s) +Chars 22695 - 22700 [taus.] 0. secs (0.u,0.s) +Chars 22701 - 22713 [reflexivity.] 0. secs (0.u,0.s) +Chars 22715 - 22719 [Qed.] 0.002 secs (0.002u,0.s) +Chars 22724 - 22935 [Lemma~proper_peel_cont_eutt_l~...] 0. secs (0.u,0.s) +Chars 22936 - 22942 [Proof.] 0. secs (0.u,0.s) +Chars 22945 - 22958 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 22959 - 22976 [unfold~peel_cont.] 0. secs (0.u,0.s) +Chars 22977 - 22993 [intros~b~b'~t~_.] 0. secs (0.u,0.s) +Chars 22996 - 23010 [revert~b~b'~t.] 0. secs (0.u,0.s) +Chars 23011 - 23030 [icoinduction~c~CIH.] 0.004 secs (0.004u,0.s) +Chars 23031 - 23038 [intros.] 0. secs (0.u,0.s) +Chars 23039 - 23049 [step~in~H.] 0. secs (0.u,0.s) +Chars 23053 - 23085 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) +Chars 23107 - 23108 [-] 0. secs (0.u,0.s) +Chars 23109 - 23258 [destruct~(observe~b')~eqn:Hb;~...] 0.116 secs (0.116u,0.s) +Chars 23264 - 23265 [+] 0. secs (0.u,0.s) +Chars 23266 - 23271 [taus.] 0. secs (0.u,0.s) +Chars 23272 - 23292 [now~do~2~Utils.step.] 0.007 secs (0.007u,0.s) +Chars 23301 - 23302 [+] 0. secs (0.u,0.s) +Chars 23303 - 23316 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 23317 - 23329 [constructor.] 0. secs (0.u,0.s) +Chars 23330 - 23337 [intros.] 0. secs (0.u,0.s) +Chars 23338 - 23344 [inv~H.] 0.02 secs (0.019u,0.s) +Chars 23352 - 23365 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 23366 - 23382 [do~2~Utils.step.] 0.007 secs (0.007u,0.s) +Chars 23383 - 23394 [apply~REL0.] 0. secs (0.u,0.s) +Chars 23458 - 23459 [-] 0. secs (0.u,0.s) +Chars 23460 - 23501 [dependent~induction~H;~try~cle...] 0.037 secs (0.037u,0.s) +Chars 23506 - 23507 [+] 0. secs (0.u,0.s) +Chars 23508 - 23516 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 23517 - 23521 [cbn.] 0. secs (0.u,0.s) +Chars 23522 - 23527 [etau.] 0.001 secs (0.001u,0.s) +Chars 23536 - 23537 [+] 0. secs (0.u,0.s) +Chars 23538 - 23546 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 23547 - 23551 [cbn.] 0. secs (0.u,0.s) +Chars 23552 - 23557 [etau.] 0.001 secs (0.001u,0.s) +Chars 23563 - 23564 [+] 0. secs (0.u,0.s) +Chars 23565 - 23573 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 23574 - 23603 [destruct~e;~cbn;~constructor.] 0.001 secs (0.001u,0.s) +Chars 23611 - 23612 [*] 0. secs (0.u,0.s) +Chars 23613 - 23621 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 23622 - 23636 [rewrite~x,~x0.] 0. secs (0.u,0.s) +Chars 23637 - 23655 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 23656 - 23661 [step.] 0.001 secs (0.001u,0.s) +Chars 23670 - 23678 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 23679 - 23691 [constructor.] 0. secs (0.u,0.s) +Chars 23692 - 23697 [auto.] 0. secs (0.u,0.s) +Chars 23704 - 23705 [*] 0. secs (0.u,0.s) +Chars 23706 - 23720 [rewrite~x,~x0.] 0. secs (0.u,0.s) +Chars 23721 - 23739 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 23740 - 23745 [step.] 0.001 secs (0.001u,0.s) +Chars 23755 - 23763 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 23764 - 23776 [constructor.] 0. secs (0.u,0.s) +Chars 23777 - 23782 [auto.] 0. secs (0.u,0.s) +Chars 23787 - 23788 [+] 0. secs (0.u,0.s) +Chars 23789 - 23797 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 23799 - 23803 [cbn.] 0. secs (0.u,0.s) +Chars 23810 - 23849 [destruct~(observe~b')~eqn:Heqb...] 0.001 secs (0.001u,0.s) +Chars 23856 - 23857 [*] 0. secs (0.u,0.s) +Chars 23858 - 23870 [constructor.] 0. secs (0.u,0.s) +Chars 23871 - 23888 [rewrite~<-~Heqb'.] 0. secs (0.u,0.s) +Chars 23889 - 23900 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 23909 - 23927 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) +Chars 23928 - 23951 [apply~simpobs~in~Heqb'.] 0. secs (0.u,0.s) +Chars 23952 - 23966 [rewrite~Heqb'.] 0.001 secs (0.001u,0.s) +Chars 23975 - 23980 [step.] 0.001 secs (0.001u,0.s) +Chars 23981 - 23986 [auto.] 0. secs (0.u,0.s) +Chars 23993 - 23994 [*] 0. secs (0.u,0.s) +Chars 23995 - 24007 [constructor.] 0. secs (0.u,0.s) +Chars 24008 - 24019 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 24021 - 24053 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) +Chars 24062 - 24067 [step.] 0.001 secs (0.001u,0.s) +Chars 24068 - 24073 [auto.] 0. secs (0.u,0.s) +Chars 24080 - 24081 [*] 0. secs (0.u,0.s) +Chars 24082 - 24094 [constructor.] 0. secs (0.u,0.s) +Chars 24095 - 24112 [rewrite~<-~Heqb'.] 0. secs (0.u,0.s) +Chars 24113 - 24124 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 24133 - 24151 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) +Chars 24152 - 24175 [apply~simpobs~in~Heqb'.] 0. secs (0.u,0.s) +Chars 24176 - 24190 [rewrite~Heqb'.] 0.001 secs (0.001u,0.s) +Chars 24191 - 24196 [step.] 0.001 secs (0.001u,0.s) +Chars 24197 - 24202 [auto.] 0. secs (0.u,0.s) +Chars 24207 - 24208 [+] 0. secs (0.u,0.s) +Chars 24209 - 24217 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24218 - 24222 [cbn.] 0. secs (0.u,0.s) +Chars 24223 - 24260 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) +Chars 24267 - 24268 [*] 0. secs (0.u,0.s) +Chars 24269 - 24287 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 24288 - 24304 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 24305 - 24316 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 24325 - 24330 [step.] 0.001 secs (0.001u,0.s) +Chars 24331 - 24344 [rewrite~Heqb.] 0. secs (0.u,0.s) +Chars 24345 - 24350 [auto.] 0. secs (0.u,0.s) +Chars 24357 - 24358 [*] 0. secs (0.u,0.s) +Chars 24359 - 24371 [constructor.] 0. secs (0.u,0.s) +Chars 24372 - 24383 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 24385 - 24410 [rewrite~<-~tau_eutt~~at~1.] 0.001 secs (0.u,0.s) +Chars 24411 - 24416 [step.] 0.002 secs (0.002u,0.s) +Chars 24417 - 24422 [auto.] 0. secs (0.u,0.s) +Chars 24429 - 24430 [*] 0. secs (0.u,0.s) +Chars 24431 - 24443 [constructor.] 0. secs (0.u,0.s) +Chars 24444 - 24460 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 24461 - 24472 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 24473 - 24478 [step.] 0.001 secs (0.001u,0.s) +Chars 24487 - 24500 [rewrite~Heqb.] 0. secs (0.u,0.s) +Chars 24501 - 24506 [auto.] 0. secs (0.u,0.s) +Chars 24509 - 24510 [-] 0. secs (0.u,0.s) +Chars 24511 - 24538 [dependent~induction~H;~cbn.] 0.04 secs (0.04u,0.s) +Chars 24543 - 24544 [+] 0. secs (0.u,0.s) +Chars 24546 - 24554 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 24555 - 24563 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24564 - 24568 [cbn.] 0. secs (0.u,0.s) +Chars 24569 - 24581 [reflexivity.] 0. secs (0.u,0.s) +Chars 24587 - 24588 [+] 0. secs (0.u,0.s) +Chars 24589 - 24597 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24598 - 24606 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 24607 - 24611 [cbn.] 0. secs (0.u,0.s) +Chars 24612 - 24624 [constructor.] 0. secs (0.u,0.s) +Chars 24625 - 24641 [rewrite~<-~Heqt.] 0. secs (0.u,0.s) +Chars 24642 - 24653 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 24661 - 24666 [auto.] 0. secs (0.u,0.s) +Chars 24671 - 24672 [+] 0. secs (0.u,0.s) +Chars 24673 - 24681 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 24682 - 24745 [destruct~e;~cbn;~try~(apply~eq...] 0.002 secs (0.002u,0.s) +Chars 24752 - 24764 [reflexivity.] 0. secs (0.u,0.s) +Chars 24770 - 24771 [+] 0. secs (0.u,0.s) +Chars 24772 - 24780 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 24781 - 24785 [cbn.] 0. secs (0.u,0.s) +Chars 24786 - 24805 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 24810 - 24811 [+] 0. secs (0.u,0.s) +Chars 24812 - 24820 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 24821 - 24825 [cbn.] 0. secs (0.u,0.s) +Chars 24826 - 24845 [constructor;~eauto.] 0.002 secs (0.002u,0.s) +Chars 24846 - 24850 [Qed.] 0.149 secs (0.148u,0.001s) +Chars 24852 - 24995 [Lemma~peel_cont_ret_inv~:~~~fo...] 0. secs (0.u,0.s) +Chars 24996 - 25002 [Proof.] 0. secs (0.u,0.s) +Chars 25005 - 25018 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 25019 - 25037 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 25038 - 25045 [intros.] 0. secs (0.u,0.s) +Chars 25046 - 25056 [step~in~H.] 0. secs (0.u,0.s) +Chars 25057 - 25066 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 25067 - 25096 [dependent~induction~H;~subst.] 0.031 secs (0.03u,0.s) +Chars 25099 - 25100 [-] 0. secs (0.u,0.s) +Chars 25101 - 25109 [simpobs.] 0. secs (0.u,0.s) +Chars 25110 - 25114 [cbn.] 0. secs (0.u,0.s) +Chars 25115 - 25127 [reflexivity.] 0. secs (0.u,0.s) +Chars 25131 - 25132 [-] 0. secs (0.u,0.s) +Chars 25133 - 25141 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 25142 - 25172 [destruct~(observe~b)~eqn:Hb.] 0. secs (0.u,0.s) +Chars 25177 - 25178 [+] 0. secs (0.u,0.s) +Chars 25179 - 25183 [cbn.] 0. secs (0.u,0.s) +Chars 25184 - 25189 [taul.] 0. secs (0.u,0.s) +Chars 25190 - 25198 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 25199 - 25206 [to_mon.] 0. secs (0.u,0.s) +Chars 25214 - 25235 [rewrite~<-~itree_eta.] 0.014 secs (0.013u,0.s) +Chars 25243 - 25288 [specialize~(IHeqitF~CIH~(Ret~r...] 0. secs (0.u,0.s) +Chars 25293 - 25294 [+] 0. secs (0.u,0.s) +Chars 25295 - 25299 [cbn.] 0. secs (0.u,0.s) +Chars 25300 - 25311 [rewrite~Hb.] 0. secs (0.u,0.s) +Chars 25312 - 25317 [taus.] 0. secs (0.u,0.s) +Chars 25318 - 25343 [eapply~CIH~with~(s~:=~s).] 0. secs (0.u,0.s) +Chars 25350 - 25355 [step.] 0.001 secs (0.001u,0.s) +Chars 25356 - 25361 [auto.] 0. secs (0.u,0.s) +Chars 25366 - 25367 [+] 0. secs (0.u,0.s) +Chars 25368 - 25372 [cbn.] 0. secs (0.u,0.s) +Chars 25373 - 25384 [rewrite~Hb.] 0. secs (0.u,0.s) +Chars 25385 - 25390 [taul.] 0. secs (0.u,0.s) +Chars 25391 - 25405 [rewrite~<-~Hb.] 0. secs (0.u,0.s) +Chars 25413 - 25452 [specialize~(IHeqitF~CIH~b~t1~s...] 0. secs (0.u,0.s) +Chars 25459 - 25474 [assert~(S~=~S).] 0. secs (0.u,0.s) +Chars 25475 - 25480 [auto.] 0. secs (0.u,0.s) +Chars 25481 - 25501 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 25502 - 25506 [Qed.] 0.039 secs (0.039u,0.s) +Chars 25508 - 25718 [Lemma~proper_peel_cont_eutt_r~...] 0. secs (0.u,0.s) +Chars 25719 - 25725 [Proof.] 0. secs (0.u,0.s) +Chars 25728 - 25741 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 25742 - 25759 [unfold~peel_cont.] 0. secs (0.u,0.s) +Chars 25760 - 25776 [intros~b~t~t'~_.] 0. secs (0.u,0.s) +Chars 25779 - 25793 [revert~b~t~t'.] 0. secs (0.u,0.s) +Chars 25794 - 25812 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 25813 - 25820 [intros.] 0. secs (0.u,0.s) +Chars 25821 - 25831 [step~in~H.] 0. secs (0.u,0.s) +Chars 25832 - 25854 [dependent~induction~H.] 0.03 secs (0.03u,0.s) +Chars 25857 - 25858 [-] 0. secs (0.u,0.s) +Chars 25859 - 25867 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 25868 - 25880 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 25884 - 25885 [-] 0. secs (0.u,0.s) +Chars 25886 - 25894 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 25895 - 25932 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) +Chars 25937 - 25938 [+] 0. secs (0.u,0.s) +Chars 25939 - 25943 [cbn.] 0. secs (0.u,0.s) +Chars 25944 - 25949 [taus.] 0. secs (0.u,0.s) +Chars 25950 - 25966 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 25967 - 25978 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 25979 - 25984 [auto.] 0. secs (0.u,0.s) +Chars 25989 - 25990 [+] 0. secs (0.u,0.s) +Chars 25991 - 25996 [etau.] 0.001 secs (0.001u,0.s) +Chars 26002 - 26003 [+] 0. secs (0.u,0.s) +Chars 26004 - 26016 [constructor.] 0. secs (0.u,0.s) +Chars 26017 - 26033 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 26034 - 26051 [eapply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26054 - 26055 [-] 0. secs (0.u,0.s) +Chars 26056 - 26064 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 26066 - 26108 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) +Chars 26113 - 26114 [+] 0. secs (0.u,0.s) +Chars 26115 - 26127 [reflexivity.] 0. secs (0.u,0.s) +Chars 26133 - 26134 [+] 0. secs (0.u,0.s) +Chars 26135 - 26147 [constructor.] 0. secs (0.u,0.s) +Chars 26148 - 26162 [rewrite~x,~x0.] 0. secs (0.u,0.s) +Chars 26163 - 26174 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 26182 - 26187 [step.] 0.001 secs (0.001u,0.s) +Chars 26188 - 26196 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 26197 - 26209 [constructor.] 0. secs (0.u,0.s) +Chars 26210 - 26217 [intros.] 0. secs (0.u,0.s) +Chars 26224 - 26229 [auto.] 0. secs (0.u,0.s) +Chars 26234 - 26235 [+] 0. secs (0.u,0.s) +Chars 26236 - 26253 [destruct~e0;~cbn.] 0. secs (0.u,0.s) +Chars 26260 - 26261 [*] 0. secs (0.u,0.s) +Chars 26262 - 26277 [unfold~observe.] 0. secs (0.u,0.s) +Chars 26278 - 26282 [cbn.] 0. secs (0.u,0.s) +Chars 26283 - 26304 [unfold~peel_cont_vis.] 0. secs (0.u,0.s) +Chars 26313 - 26359 [destruct~(classicT~(A~=~u));~t...] 0.002 secs (0.002u,0.s) +Chars 26368 - 26394 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 26395 - 26422 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 26431 - 26456 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 26457 - 26461 [cbn.] 0. secs (0.u,0.s) +Chars 26462 - 26474 [constructor.] 0. secs (0.u,0.s) +Chars 26475 - 26482 [intros.] 0. secs (0.u,0.s) +Chars 26491 - 26502 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 26503 - 26519 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 26526 - 26527 [*] 0. secs (0.u,0.s) +Chars 26528 - 26540 [reflexivity.] 0. secs (0.u,0.s) +Chars 26544 - 26545 [-] 0. secs (0.u,0.s) +Chars 26546 - 26554 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 26555 - 26597 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) +Chars 26602 - 26603 [+] 0. secs (0.u,0.s) +Chars 26604 - 26623 [constructor;~eauto.] 0.001 secs (0.001u,0.s) +Chars 26624 - 26640 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 26641 - 26663 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 26668 - 26669 [+] 0. secs (0.u,0.s) +Chars 26670 - 26674 [cbn.] 0. secs (0.u,0.s) +Chars 26675 - 26714 [destruct~(observe~t')~eqn:Heqt...] 0.003 secs (0.003u,0.s) +Chars 26721 - 26722 [*] 0. secs (0.u,0.s) +Chars 26723 - 26735 [constructor.] 0. secs (0.u,0.s) +Chars 26737 - 26748 [Utils.step.] 0.001 secs (0.001u,0.s) +Chars 26759 - 26771 [unstep~in~H.] 0. secs (0.u,0.s) +Chars 26772 - 26817 [eapply~peel_cont_ret_inv~with~...] 0. secs (0.u,0.s) +Chars 26818 - 26823 [step.] 0.002 secs (0.002u,0.s) +Chars 26832 - 26842 [rewrite~H.] 0.016 secs (0.016u,0.s) +Chars 26843 - 26855 [reflexivity.] 0. secs (0.u,0.s) +Chars 26863 - 26864 [*] 0. secs (0.u,0.s) +Chars 26865 - 26877 [constructor.] 0. secs (0.u,0.s) +Chars 26878 - 26896 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 26897 - 26929 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) +Chars 26938 - 26943 [step.] 0.001 secs (0.001u,0.s) +Chars 26944 - 26949 [auto.] 0. secs (0.u,0.s) +Chars 26956 - 26957 [*] 0. secs (0.u,0.s) +Chars 26958 - 26970 [constructor.] 0. secs (0.u,0.s) +Chars 26971 - 26988 [rewrite~<-~Heqt'.] 0. secs (0.u,0.s) +Chars 26989 - 27000 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 27009 - 27014 [step.] 0.001 secs (0.001u,0.s) +Chars 27015 - 27029 [rewrite~Heqt'.] 0. secs (0.u,0.s) +Chars 27030 - 27035 [auto.] 0. secs (0.u,0.s) +Chars 27040 - 27041 [+] 0. secs (0.u,0.s) +Chars 27042 - 27058 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 27059 - 27077 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 27078 - 27100 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 27103 - 27104 [-] 0. secs (0.u,0.s) +Chars 27105 - 27113 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 27114 - 27156 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) +Chars 27161 - 27162 [+] 0. secs (0.u,0.s) +Chars 27163 - 27181 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 27182 - 27198 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 27199 - 27221 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 27226 - 27227 [+] 0. secs (0.u,0.s) +Chars 27228 - 27265 [destruct~(observe~t)~eqn:Heqt;...] 0.003 secs (0.003u,0.s) +Chars 27272 - 27273 [*] 0. secs (0.u,0.s) +Chars 27280 - 27294 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 27295 - 27307 [unstep~in~H.] 0. secs (0.u,0.s) +Chars 27315 - 27360 [eapply~peel_cont_ret_inv~with~...] 0. secs (0.u,0.s) +Chars 27361 - 27370 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 27378 - 27383 [taus.] 0. secs (0.u,0.s) +Chars 27384 - 27393 [symmetry.] 0. secs (0.u,0.s) +Chars 27394 - 27414 [now~do~2~Utils.step.] 0.007 secs (0.007u,0.s) +Chars 27422 - 27423 [*] 0. secs (0.u,0.s) +Chars 27424 - 27436 [constructor.] 0. secs (0.u,0.s) +Chars 27437 - 27448 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 27450 - 27475 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) +Chars 27476 - 27481 [step.] 0.001 secs (0.001u,0.s) +Chars 27482 - 27487 [auto.] 0. secs (0.u,0.s) +Chars 27494 - 27495 [*] 0. secs (0.u,0.s) +Chars 27496 - 27508 [constructor.] 0. secs (0.u,0.s) +Chars 27509 - 27525 [rewrite~<-~Heqt.] 0. secs (0.u,0.s) +Chars 27526 - 27537 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 27546 - 27551 [step.] 0.001 secs (0.001u,0.s) +Chars 27552 - 27565 [rewrite~Heqt.] 0. secs (0.u,0.s) +Chars 27566 - 27571 [auto.] 0. secs (0.u,0.s) +Chars 27576 - 27577 [+] 0. secs (0.u,0.s) +Chars 27578 - 27594 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) +Chars 27595 - 27613 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 27614 - 27636 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 27637 - 27641 [Qed.] 0.061 secs (0.061u,0.s) +Chars 27643 - 27761 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) +Chars 27762 - 27768 [Proof.] 0. secs (0.u,0.s) +Chars 27771 - 27784 [repeat~intro.] 0. secs (0.u,0.s) +Chars 27785 - 27791 [subst.] 0. secs (0.u,0.s) +Chars 27792 - 27831 [rewrite~proper_peel_cont_eutt_...] 0.002 secs (0.002u,0.s) +Chars 27834 - 27873 [rewrite~proper_peel_cont_eutt_...] 0.004 secs (0.004u,0.s) +Chars 27874 - 27878 [Qed.] 0.001 secs (0.001u,0.s) +Chars 28270 - 28567 [Lemma~vis_refine_peel~:~~~fora...] 0. secs (0.u,0.s) +Chars 28568 - 28574 [Proof.] 0. secs (0.u,0.s) +Chars 28577 - 28592 [intros~E~R~S~A.] 0. secs (0.u,0.s) +Chars 28618 - 28644 [intros~e~a~k1~k2~k3~Hpeel.] 0. secs (0.u,0.s) +Chars 28647 - 28664 [unfold~peel~in~*.] 0. secs (0.u,0.s) +Chars 28665 - 28674 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 28675 - 28689 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 28692 - 28701 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 28705 - 28729 [unfold~observe~in~Hpeel.] 0. secs (0.u,0.s) +Chars 28730 - 28743 [cbn~in~Hpeel.] 0. secs (0.u,0.s) +Chars 28746 - 28771 [unfold~peel_vis~in~Hpeel.] 0. secs (0.u,0.s) +Chars 28774 - 28797 [assert~(A~=~A)~by~auto.] 0. secs (0.u,0.s) +Chars 28800 - 28848 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) +Chars 28849 - 28884 [unfold~eq_rect_r,~eq_rect~in~H...] 0. secs (0.u,0.s) +Chars 28887 - 28914 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 28915 - 28940 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 28941 - 28950 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 28953 - 28970 [clear~HeqHe~e0~H.] 0. secs (0.u,0.s) +Chars 28971 - 28976 [step.] 0.001 secs (0.001u,0.s) +Chars 28977 - 28981 [cbn.] 0. secs (0.u,0.s) +Chars 28982 - 28992 [inv~Hpeel.] 0.006 secs (0.006u,0.s) +Chars 28993 - 29006 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 29010 - 29030 [specialize~(REL~tt).] 0. secs (0.u,0.s) +Chars 29033 - 29094 [assert~(peel_~(observe~(k1~tt)...] 0. secs (0.u,0.s) +Chars 29095 - 29100 [auto.] 0. secs (0.u,0.s) +Chars 29103 - 29117 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 29118 - 29132 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 29133 - 29137 [Qed.] 0.009 secs (0.009u,0.s) +Chars 29139 - 29450 [Lemma~vis_refine_peel_cont~:~~...] 0. secs (0.u,0.s) +Chars 29451 - 29457 [Proof.] 0. secs (0.u,0.s) +Chars 29460 - 29497 [intros~E~R~S~A~e~a~k1~k2~t~Hpe...] 0. secs (0.u,0.s) +Chars 29498 - 29516 [step~in~Hpeelcont.] 0. secs (0.u,0.s) +Chars 29519 - 29552 [unfold~observe~in~Hpeelcont~at~1.] 0. secs (0.u,0.s) +Chars 29553 - 29562 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 29563 - 29589 [unfold~peel_cont_vis~in~*.] 0. secs (0.u,0.s) +Chars 29592 - 29613 [assert~(A~=~A);~auto.] 0. secs (0.u,0.s) +Chars 29614 - 29662 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) +Chars 29665 - 29696 [unfold~eq_rect_r,~eq_rect~in~*.] 0. secs (0.u,0.s) +Chars 29697 - 29724 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 29727 - 29752 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 29753 - 29762 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 29763 - 29772 [symmetry.] 0. secs (0.u,0.s) +Chars 29775 - 29846 [assert~(Tau~(peel_cont_~(obser...] 0. secs (0.u,0.s) +Chars 29849 - 29850 [{] 0. secs (0.u,0.s) +Chars 29851 - 29856 [step.] 0.001 secs (0.001u,0.s) +Chars 29857 - 29862 [auto.] 0. secs (0.u,0.s) +Chars 29863 - 29864 [}] 0. secs (0.u,0.s) +Chars 29867 - 29890 [rewrite~tau_eutt~in~H0.] 0.016 secs (0.015u,0.s) +Chars 29891 - 29896 [auto.] 0. secs (0.u,0.s) +Chars 29897 - 29901 [Qed.] 0.003 secs (0.003u,0.s) +Chars 29903 - 30052 [Lemma~spin_not_vis~:~~~forall~...] 0. secs (0.u,0.s) +Chars 30053 - 30059 [Proof.] 0. secs (0.u,0.s) +Chars 30062 - 30087 [intros~E~R~A~e~k~Hcontra.] 0. secs (0.u,0.s) +Chars 30088 - 30104 [step~in~Hcontra.] 0. secs (0.u,0.s) +Chars 30105 - 30114 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 30117 - 30145 [dependent~induction~Hcontra.] 0.014 secs (0.014u,0.s) +Chars 30148 - 30172 [eapply~IHHcontra;~eauto.] 0. secs (0.u,0.s) +Chars 30173 - 30177 [Qed.] 0.007 secs (0.007u,0.s) +Chars 30179 - 30619 [Lemma~peel_vis_empty_contra~:~...] 0.001 secs (0.001u,0.s) +Chars 30620 - 30626 [Proof.] 0. secs (0.u,0.s) +Chars 30629 - 30675 [intros~R~E~S~A0~Hempty~ev~k0~t...] 0. secs (0.u,0.s) +Chars 30678 - 30704 [dependent~induction~Hpeel.] 0.032 secs (0.032u,0.s) +Chars 30707 - 30708 [-] 0. secs (0.u,0.s) +Chars 30709 - 30757 [destruct~(observe~t0)~eqn:Heqt...] 0. secs (0.u,0.s) +Chars 30760 - 30761 [-] 0. secs (0.u,0.s) +Chars 30762 - 30814 [destruct~(observe~t0)~eqn:Heqt...] 0. secs (0.u,0.s) +Chars 30815 - 30824 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 30825 - 30844 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 30849 - 30872 [rewrite~Ht1~in~IHHpeel.] 0. secs (0.u,0.s) +Chars 30873 - 30895 [eapply~IHHpeel;~eauto.] 0.001 secs (0.001u,0.s) +Chars 30896 - 30900 [Qed.] 0.02 secs (0.02u,0.s) +Chars 30903 - 31197 [Lemma~vis_peel_l~:~~~forall~(E...] 0.001 secs (0.001u,0.s) +Chars 31198 - 31204 [Proof.] 0. secs (0.u,0.s) +Chars 31207 - 31245 [intros~E~R~S~A~e~a~b~t~f~k~Hre...] 0. secs (0.u,0.s) +Chars 31248 - 31262 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 31263 - 31276 [cbn~in~Hpeel.] 0. secs (0.u,0.s) +Chars 31277 - 31303 [dependent~induction~Hpeel.] 0.033 secs (0.033u,0.s) +Chars 31306 - 31307 [-] 0. secs (0.u,0.s) +Chars 31308 - 31325 [unfold~peel~in~x.] 0. secs (0.u,0.s) +Chars 31330 - 31453 [destruct~(observe~b)~eqn:Heqb;...] 0.021 secs (0.021u,0.s) +Chars 31454 - 31474 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 31475 - 31484 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 31489 - 31510 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 31515 - 31532 [assert~(A0~=~X0).] 0. secs (0.u,0.s) +Chars 31537 - 31538 [{] 0. secs (0.u,0.s) +Chars 31545 - 31553 [clear~x.] 0. secs (0.u,0.s) +Chars 31560 - 31577 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 31578 - 31595 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 31596 - 31618 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 31619 - 31641 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 31648 - 31669 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 31670 - 31691 [rewrite~Heqt~in~Href.] 0.006 secs (0.006u,0.s) +Chars 31698 - 31723 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) +Chars 31730 - 31743 [step~in~Href.] 0. secs (0.u,0.s) +Chars 31744 - 31753 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 31754 - 31763 [inv~Href.] 0.007 secs (0.007u,0.s) +Chars 31770 - 31783 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 31784 - 31790 [subst.] 0. secs (0.u,0.s) +Chars 31791 - 31798 [inv~H1.] 0.002 secs (0.002u,0.s) +Chars 31804 - 31805 [}] 0. secs (0.u,0.s) +Chars 31810 - 31867 [destruct~(classicT~(A0~=~X0));...] 0. secs (0.u,0.s) +Chars 31872 - 31903 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 31904 - 31931 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 31936 - 31961 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 31962 - 31971 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 31972 - 31994 [injection~x~as~Hevans.] 0.002 secs (0.002u,0.s) +Chars 31999 - 32012 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 32013 - 32019 [subst.] 0. secs (0.u,0.s) +Chars 32020 - 32033 [ddestruction.] 0. secs (0.u,0.s) +Chars 32034 - 32040 [subst.] 0. secs (0.u,0.s) +Chars 32041 - 32051 [exists~k0.] 0. secs (0.u,0.s) +Chars 32056 - 32073 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32074 - 32096 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 32097 - 32110 [rewrite~Heqb.] 0.001 secs (0.001u,0.s) +Chars 32111 - 32123 [reflexivity.] 0. secs (0.u,0.s) +Chars 32126 - 32127 [-] 0. secs (0.u,0.s) +Chars 32128 - 32145 [unfold~peel~in~x.] 0. secs (0.u,0.s) +Chars 32146 - 32269 [destruct~(observe~b)~eqn:Heqb;...] 0.033 secs (0.033u,0.s) +Chars 32274 - 32275 [+] 0. secs (0.u,0.s) +Chars 32276 - 32293 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32294 - 32316 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 32317 - 32338 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 32345 - 32370 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 32371 - 32401 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) +Chars 32402 - 32414 [unfold~peel.] 0. secs (0.u,0.s) +Chars 32421 - 32434 [rewrite~Heqb.] 0. secs (0.u,0.s) +Chars 32435 - 32440 [auto.] 0. secs (0.u,0.s) +Chars 32445 - 32446 [+] 0. secs (0.u,0.s) +Chars 32447 - 32455 [exfalso.] 0. secs (0.u,0.s) +Chars 32456 - 32476 [eapply~spin_not_vis.] 0. secs (0.u,0.s) +Chars 32477 - 32482 [step.] 0.003 secs (0.003u,0.s) +Chars 32483 - 32489 [eauto.] 0. secs (0.u,0.s) +Chars 32494 - 32495 [+] 0. secs (0.u,0.s) +Chars 32496 - 32513 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32514 - 32531 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32532 - 32554 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 32561 - 32583 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 32584 - 32604 [setoid_rewrite~Heqb.] 0.005 secs (0.005u,0.s) +Chars 32605 - 32629 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 32636 - 32657 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 32658 - 32679 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 32680 - 32712 [repeat~rewrite~tau_eutt~in~Href.] 0.006 secs (0.005u,0.s) +Chars 32719 - 32749 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) +Chars 32754 - 32755 [+] 0. secs (0.u,0.s) +Chars 32756 - 32773 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 32774 - 32791 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 32792 - 32814 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 32815 - 32837 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 32844 - 32864 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) +Chars 32865 - 32889 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 32890 - 32911 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 32918 - 32939 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 32940 - 32972 [repeat~rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 32979 - 33009 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) +Chars 33014 - 33015 [+] 0. secs (0.u,0.s) +Chars 33016 - 33033 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 33034 - 33056 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 33057 - 33078 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 33085 - 33110 [rewrite~tau_eutt~in~Href.] 0.004 secs (0.004u,0.s) +Chars 33117 - 33134 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 33135 - 33157 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 33158 - 33179 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 33186 - 33206 [setoid_rewrite~Heqb.] 0.001 secs (0.001u,0.s) +Chars 33207 - 33237 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) +Chars 33242 - 33243 [+] 0. secs (0.u,0.s) +Chars 33244 - 33252 [exfalso.] 0. secs (0.u,0.s) +Chars 33253 - 33289 [eapply~peel_vis_empty_contra;~...] 0. secs (0.u,0.s) +Chars 33294 - 33295 [+] 0. secs (0.u,0.s) +Chars 33296 - 33316 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 33317 - 33326 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 33327 - 33348 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 33355 - 33372 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 33373 - 33390 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 33391 - 33413 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 33420 - 33442 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 33443 - 33464 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 33465 - 33486 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 33493 - 33518 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) +Chars 33519 - 33532 [step~in~Href.] 0. secs (0.u,0.s) +Chars 33533 - 33542 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 33549 - 33558 [inv~Href.] 0.013 secs (0.013u,0.s) +Chars 33559 - 33572 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 33573 - 33579 [subst.] 0. secs (0.u,0.s) +Chars 33580 - 33587 [inv~H1.] 0.009 secs (0.009u,0.s) +Chars 33588 - 33615 [subst;~ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 33622 - 33645 [assert~(A0~=~A0);~auto.] 0. secs (0.u,0.s) +Chars 33646 - 33696 [destruct~(classicT~(A0~=~A0));...] 0. secs (0.u,0.s) +Chars 33703 - 33734 [unfold~eq_rect_r,~eq_rect~in~*.] 0. secs (0.u,0.s) +Chars 33735 - 33762 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) +Chars 33769 - 33794 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) +Chars 33795 - 33804 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 33805 - 33818 [discriminate.] 0. secs (0.u,0.s) +Chars 33819 - 33823 [Qed.] 0.084 secs (0.084u,0.s) +Chars 33825 - 34107 [Lemma~vis_peel_r~:~~~forall~(E...] 0.001 secs (0.001u,0.s) +Chars 34108 - 34114 [Proof.] 0. secs (0.u,0.s) +Chars 34117 - 34155 [intros~E~R~S~A~e~a~b~t~f~k~Hre...] 0. secs (0.u,0.s) +Chars 34158 - 34202 [eapply~vis_peel_l~in~Hpeel~as~...] 0.001 secs (0.001u,0.s) +Chars 34203 - 34230 [destruct~Hpeell~as~[k'~Hb].] 0. secs (0.u,0.s) +Chars 34233 - 34252 [rewrite~Hb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 34253 - 34273 [rewrite~Hb~in~Hpeel.] 0.018 secs (0.018u,0.s) +Chars 34274 - 34285 [clear~Hb~b.] 0. secs (0.u,0.s) +Chars 34286 - 34300 [step~in~Hpeel.] 0. secs (0.u,0.s) +Chars 34301 - 34310 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 34313 - 34334 [unfold~peel~in~Hpeel.] 0. secs (0.u,0.s) +Chars 34335 - 34344 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 34345 - 34371 [dependent~induction~Hpeel.] 0.037 secs (0.037u,0.s) +Chars 34374 - 34375 [-] 0. secs (0.u,0.s) +Chars 34376 - 34433 [destruct~(observe~t)~eqn:Heqt;...] 0.004 secs (0.004u,0.s) +Chars 34438 - 34455 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 34456 - 34478 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 34479 - 34499 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) +Chars 34504 - 34524 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 34525 - 34534 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 34535 - 34556 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 34557 - 34619 [destruct~(classicT~(A~=~X));~c...] 0. secs (0.u,0.s) +Chars 34624 - 34655 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 34656 - 34683 [remember~(eq_sym~e1)~as~He.] 0. secs (0.u,0.s) +Chars 34688 - 34713 [dependent~destruction~He.] 0. secs (0.u,0.s) +Chars 34714 - 34723 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 34724 - 34734 [exists~k0.] 0. secs (0.u,0.s) +Chars 34739 - 34760 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 34761 - 34786 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) +Chars 34787 - 34800 [step~in~Href.] 0. secs (0.u,0.s) +Chars 34806 - 34815 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 34816 - 34825 [inv~Href.] 0.011 secs (0.011u,0.s) +Chars 34826 - 34846 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 34847 - 34854 [inv~H1.] 0.004 secs (0.004u,0.s) +Chars 34855 - 34875 [ddestruction;~subst.] 0.005 secs (0.005u,0.s) +Chars 34876 - 34888 [reflexivity.] 0. secs (0.u,0.s) +Chars 34891 - 34892 [-] 0. secs (0.u,0.s) +Chars 34893 - 34960 [destruct~(observe~t)~eqn:Heqt;...] 0.005 secs (0.005u,0.s) +Chars 34965 - 34966 [+] 0. secs (0.u,0.s) +Chars 34967 - 34984 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 34985 - 35007 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 35008 - 35029 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 35030 - 35055 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 35062 - 35082 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) +Chars 35083 - 35107 [setoid_rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 35108 - 35130 [eapply~IHHpeel;~eauto.] 0.003 secs (0.002u,0.s) +Chars 35135 - 35136 [+] 0. secs (0.u,0.s) +Chars 35137 - 35157 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 35158 - 35167 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 35168 - 35189 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) +Chars 35196 - 35225 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) +Chars 35232 - 35233 [*] 0. secs (0.u,0.s) +Chars 35234 - 35265 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) +Chars 35266 - 35293 [remember~(eq_sym~e1)~as~He.] 0. secs (0.u,0.s) +Chars 35294 - 35319 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 35328 - 35337 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 35338 - 35351 [discriminate.] 0. secs (0.u,0.s) +Chars 35358 - 35359 [*] 0. secs (0.u,0.s) +Chars 35360 - 35369 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 35370 - 35389 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 35390 - 35411 [rewrite~Ht1~in~Hpeel.] 0. secs (0.u,0.s) +Chars 35420 - 35428 [exfalso.] 0. secs (0.u,0.s) +Chars 35429 - 35449 [eapply~spin_not_vis.] 0. secs (0.u,0.s) +Chars 35450 - 35455 [step.] 0.003 secs (0.003u,0.s) +Chars 35456 - 35462 [eauto.] 0. secs (0.u,0.s) +Chars 35463 - 35467 [Qed.] 0.045 secs (0.045u,0.s) +Chars 35469 - 35752 [Lemma~peel_cont_vis_eutt~:~~~f...] 0. secs (0.u,0.s) +Chars 35753 - 35759 [Proof.] 0. secs (0.u,0.s) +Chars 35762 - 35792 [intros~R~r~E~S~A~ev~ans~kb~kt.] 0. secs (0.u,0.s) +Chars 35795 - 35800 [step.] 0.001 secs (0.001u,0.s) +Chars 35801 - 35821 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 35822 - 35826 [cbn.] 0. secs (0.u,0.s) +Chars 35827 - 35848 [unfold~peel_cont_vis.] 0. secs (0.u,0.s) +Chars 35851 - 35872 [assert~(A~=~A);~auto.] 0.002 secs (0.002u,0.s) +Chars 35873 - 35920 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) +Chars 35923 - 35949 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 35950 - 35976 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) +Chars 35979 - 36004 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 36005 - 36009 [cbn.] 0. secs (0.u,0.s) +Chars 36010 - 36028 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 36030 - 36034 [Qed.] 0.002 secs (0.002u,0.s) +Chars 36036 - 36321 [Lemma~peel_cont_refine_t~:~~~f...] 0. secs (0.u,0.s) +Chars 36322 - 36328 [Proof.] 0. secs (0.u,0.s) +Chars 36331 - 36338 [intros.] 0. secs (0.u,0.s) +Chars 36339 - 36365 [remember~(peel~b~t)~as~t'.] 0. secs (0.u,0.s) +Chars 36366 - 36391 [assert~(peel~b~t~≈~t').] 0. secs (0.u,0.s) +Chars 36394 - 36395 [{] 0. secs (0.u,0.s) +Chars 36396 - 36402 [subst.] 0. secs (0.u,0.s) +Chars 36403 - 36415 [reflexivity.] 0. secs (0.u,0.s) +Chars 36416 - 36417 [}] 0. secs (0.u,0.s) +Chars 36420 - 36432 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 36433 - 36456 [generalize~dependent~b.] 0. secs (0.u,0.s) +Chars 36457 - 36480 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 36483 - 36503 [induction~H;~intros.] 0. secs (0.u,0.s) +Chars 36506 - 36507 [-] 0. secs (0.u,0.s) +Chars 36508 - 36527 [rewrite~<-~H0~in~H.] 0.016 secs (0.016u,0.s) +Chars 36528 - 36537 [clear~H0.] 0. secs (0.u,0.s) +Chars 36538 - 36568 [apply~peel_ret_inv~in~H~as~Ht.] 0. secs (0.u,0.s) +Chars 36573 - 36593 [rewrite~Ht~in~Hrutt.] 0.002 secs (0.002u,0.s) +Chars 36598 - 36626 [rewrite~bind_ret_l~in~Hrutt.] 0.001 secs (0.001u,0.s) +Chars 36631 - 36647 [rewrite~Ht~in~H.] 0.014 secs (0.014u,0.s) +Chars 36652 - 36669 [unfold~peel_cont.] 0. secs (0.u,0.s) +Chars 36670 - 36674 [cbn.] 0. secs (0.u,0.s) +Chars 36675 - 36708 [rewrite~peel_cont_ret_inv;~eauto.] 0.003 secs (0.003u,0.s) +Chars 36711 - 36712 [-] 0. secs (0.u,0.s) +Chars 36713 - 36729 [rewrite~H~in~H1.] 0. secs (0.u,0.s) +Chars 36730 - 36738 [clear~H.] 0. secs (0.u,0.s) +Chars 36743 - 36773 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) +Chars 36774 - 36811 [eapply~vis_peel_l~in~H1~as~Hb;...] 0. secs (0.u,0.s) +Chars 36816 - 36853 [eapply~vis_peel_r~in~H1~as~Ht;...] 0. secs (0.u,0.s) +Chars 36858 - 36882 [destruct~Hb~as~[kb~Hkb].] 0. secs (0.u,0.s) +Chars 36883 - 36907 [destruct~Ht~as~[kt~Htk].] 0. secs (0.u,0.s) +Chars 36912 - 36924 [rewrite~Htk.] 0.004 secs (0.004u,0.s) +Chars 36925 - 36937 [rewrite~Hkb.] 0.003 secs (0.003u,0.s) +Chars 36942 - 36963 [rewrite~Hkb~in~Hrutt.] 0.004 secs (0.004u,0.s) +Chars 36964 - 36985 [rewrite~Htk~in~Hrutt.] 0.003 secs (0.003u,0.s) +Chars 36990 - 37008 [rewrite~Hkb~in~H1.] 0.013 secs (0.013u,0.s) +Chars 37009 - 37027 [rewrite~Htk~in~H1.] 0.015 secs (0.015u,0.s) +Chars 37032 - 37066 [apply~vis_refine_peel~in~H1~as...] 0. secs (0.u,0.s) +Chars 37071 - 37098 [rewrite~peel_cont_vis_eutt.] 0.003 secs (0.003u,0.s) +Chars 37099 - 37126 [apply~IHmay_converge;~auto.] 0. secs (0.u,0.s) +Chars 37131 - 37132 [+] 0. secs (0.u,0.s) +Chars 37133 - 37159 [rewrite~bind_vis~in~Hrutt.] 0.002 secs (0.002u,0.s) +Chars 37160 - 37174 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 37175 - 37184 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 37191 - 37201 [inv~Hrutt.] 0.008 secs (0.008u,0.s) +Chars 37202 - 37222 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 37229 - 37300 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 37307 - 37321 [apply~H8~in~H.] 0. secs (0.u,0.s) +Chars 37323 - 37328 [auto.] 0. secs (0.u,0.s) +Chars 37333 - 37334 [+] 0. secs (0.u,0.s) +Chars 37335 - 37346 [destruct~b.] 0. secs (0.u,0.s) +Chars 37347 - 37356 [symmetry.] 0. secs (0.u,0.s) +Chars 37357 - 37362 [auto.] 0. secs (0.u,0.s) +Chars 37363 - 37367 [Qed.] 0.018 secs (0.018u,0.s) +Chars 37370 - 37671 [Ltac~~fold_peel_cont~r~:=~~~ma...] 0. secs (0.u,0.s) +Chars 37673 - 38035 [Lemma~trace_prefix_tau_ret~:~~...] 0.001 secs (0.001u,0.s) +Chars 38036 - 38042 [Proof.] 0. secs (0.u,0.s) +Chars 38045 - 38088 [intros~E~R~S~r~b~t~f~r0~Hrutt~...] 0. secs (0.u,0.s) +Chars 38091 - 38108 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 38109 - 38126 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 38129 - 38151 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 38152 - 38174 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 38175 - 38197 [rewrite~Heqb~in~Hrutt.] 0.002 secs (0.002u,0.s) +Chars 38200 - 38222 [rewrite~Heqt~in~Hrutt.] 0.003 secs (0.003u,0.s) +Chars 38223 - 38249 [rewrite~tau_eutt~in~Hrutt.] 0.002 secs (0.002u,0.s) +Chars 38252 - 38290 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 38291 - 38303 [constructor.] 0. secs (0.u,0.s) +Chars 38306 - 38338 [assert~(exists~s,~t0~≈~Ret~s).] 0. secs (0.u,0.s) +Chars 38341 - 38342 [{] 0. secs (0.u,0.s) +Chars 38347 - 38361 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 38362 - 38388 [dependent~induction~Hrutt.] 0.026 secs (0.026u,0.s) +Chars 38393 - 38394 [-] 0. secs (0.u,0.s) +Chars 38395 - 38415 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 38416 - 38425 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 38426 - 38486 [destruct~(observe~t0)~eqn:Ht0;...] 0. secs (0.u,0.s) +Chars 38493 - 38503 [exists~r1.] 0. secs (0.u,0.s) +Chars 38504 - 38509 [step.] 0.001 secs (0.001u,0.s) +Chars 38510 - 38522 [rewrite~Ht0.] 0. secs (0.u,0.s) +Chars 38523 - 38527 [cbn.] 0. secs (0.u,0.s) +Chars 38528 - 38544 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 38549 - 38550 [-] 0. secs (0.u,0.s) +Chars 38551 - 38571 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 38572 - 38581 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 38582 - 38642 [destruct~(observe~t0)~eqn:Ht0;...] 0.001 secs (0.001u,0.s) +Chars 38649 - 38650 [+] 0. secs (0.u,0.s) +Chars 38651 - 38661 [exists~r1.] 0. secs (0.u,0.s) +Chars 38662 - 38667 [step.] 0.001 secs (0.001u,0.s) +Chars 38668 - 38680 [rewrite~Ht0.] 0. secs (0.u,0.s) +Chars 38681 - 38685 [cbn.] 0. secs (0.u,0.s) +Chars 38686 - 38702 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 38709 - 38710 [+] 0. secs (0.u,0.s) +Chars 38711 - 38730 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 38731 - 38747 [symmetry~in~Ht0.] 0. secs (0.u,0.s) +Chars 38748 - 38769 [apply~simpobs~in~Ht0.] 0. secs (0.u,0.s) +Chars 38778 - 38811 [apply~eq_sub_eutt~in~Ht0~as~Ht0'.] 0. secs (0.u,0.s) +Chars 38812 - 38832 [setoid_rewrite~Ht0'.] 0.001 secs (0.001u,0.s) +Chars 38841 - 38865 [setoid_rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 38866 - 38888 [eapply~IHHrutt;~eauto.] 0.002 secs (0.002u,0.s) +Chars 38897 - 38909 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 38910 - 38916 [eauto.] 0. secs (0.u,0.s) +Chars 38919 - 38920 [}] 0. secs (0.u,0.s) +Chars 38923 - 38945 [destruct~H~as~[s~Ht0].] 0. secs (0.u,0.s) +Chars 38946 - 38958 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 38959 - 38970 [cbn~in~Ht0.] 0. secs (0.u,0.s) +Chars 38973 - 38990 [clear~Heqt~Hrutt.] 0. secs (0.u,0.s) +Chars 38993 - 39017 [dependent~induction~Ht0.] 0.024 secs (0.024u,0.s) +Chars 39020 - 39021 [-] 0. secs (0.u,0.s) +Chars 39022 - 39030 [simpobs.] 0.002 secs (0.u,0.s) +Chars 39031 - 39035 [cbn.] 0. secs (0.u,0.s) +Chars 39036 - 39049 [step~in~Heqb.] 0. secs (0.u,0.s) +Chars 39050 - 39059 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 39060 - 39069 [inv~Heqb.] 0.007 secs (0.007u,0.s) +Chars 39074 - 39085 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 39086 - 39102 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 39105 - 39106 [-] 0. secs (0.u,0.s) +Chars 39107 - 39115 [simpobs.] 0. secs (0.u,0.s) +Chars 39116 - 39120 [cbn.] 0. secs (0.u,0.s) +Chars 39121 - 39133 [constructor.] 0. secs (0.u,0.s) +Chars 39134 - 39154 [eapply~IHHt0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 39155 - 39159 [Qed.] 0.036 secs (0.036u,0.s) +Chars 39161 - 39963 [Lemma~trace_prefix_vis_evans~:...] 0.004 secs (0.003u,0.s) +Chars 39964 - 39970 [Proof.] 0. secs (0.u,0.s) +Chars 39973 - 40020 [intros~E~R~S~r~A0~ev~ans~k~k'~...] 0. secs (0.u,0.s) +Chars 40023 - 40035 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 40036 - 40045 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 40046 - 40070 [dependent~induction~Ht0.] 0.029 secs (0.029u,0.s) +Chars 40073 - 40074 [-] 0. secs (0.u,0.s) +Chars 40075 - 40083 [simpobs.] 0. secs (0.u,0.s) +Chars 40084 - 40099 [unfold~observe.] 0. secs (0.u,0.s) +Chars 40100 - 40104 [cbn.] 0. secs (0.u,0.s) +Chars 40105 - 40121 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 40126 - 40149 [assert~(A0~=~A0);~auto.] 0. secs (0.u,0.s) +Chars 40150 - 40199 [destruct~(classicT~(A0~=~A0));...] 0. secs (0.u,0.s) +Chars 40204 - 40230 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 40231 - 40257 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) +Chars 40262 - 40287 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 40288 - 40292 [cbn.] 0. secs (0.u,0.s) +Chars 40293 - 40305 [constructor.] 0.002 secs (0.001u,0.s) +Chars 40306 - 40317 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 40323 - 40395 [assert~(RAnsRef~E~unit~A0~(eva...] 0. secs (0.u,0.s) +Chars 40400 - 40416 [apply~Hk'~in~H0.] 0. secs (0.u,0.s) +Chars 40418 - 40460 [assert~(k1~ans~≈~k'~ans);~try~...] 0. secs (0.u,0.s) +Chars 40465 - 40476 [rewrite~H1.] 0.003 secs (0.003u,0.s) +Chars 40477 - 40483 [eauto.] 0. secs (0.u,0.s) +Chars 40486 - 40487 [-] 0. secs (0.u,0.s) +Chars 40488 - 40496 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 40497 - 40501 [cbn.] 0. secs (0.u,0.s) +Chars 40502 - 40514 [constructor.] 0. secs (0.u,0.s) +Chars 40515 - 40535 [eapply~IHHt0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 40536 - 40540 [Qed.] 0.023 secs (0.023u,0.s) +Chars 40542 - 41200 [Lemma~trace_prefix_vis_evempty...] 0.001 secs (0.001u,0.s) +Chars 41201 - 41207 [Proof.] 0. secs (0.u,0.s) +Chars 41210 - 41255 [intros~E~R~S~r~A0~Hempty~ev~k~...] 0. secs (0.u,0.s) +Chars 41258 - 41262 [cbn.] 0. secs (0.u,0.s) +Chars 41263 - 41275 [constructor.] 0. secs (0.u,0.s) +Chars 41278 - 41302 [dependent~induction~Ht0.] 0.023 secs (0.023u,0.s) +Chars 41305 - 41306 [-] 0. secs (0.u,0.s) +Chars 41307 - 41315 [simpobs.] 0. secs (0.u,0.s) +Chars 41316 - 41320 [cbn.] 0. secs (0.u,0.s) +Chars 41321 - 41333 [constructor.] 0. secs (0.u,0.s) +Chars 41336 - 41337 [-] 0. secs (0.u,0.s) +Chars 41338 - 41346 [simpobs.] 0. secs (0.u,0.s) +Chars 41347 - 41351 [cbn.] 0. secs (0.u,0.s) +Chars 41352 - 41364 [constructor.] 0. secs (0.u,0.s) +Chars 41365 - 41385 [eapply~IHHt0;~eauto.] 0. secs (0.u,0.s) +Chars 41386 - 41390 [Qed.] 0.017 secs (0.017u,0.s) +Chars 41393 - 41944 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) +Chars 41945 - 41951 [Proof.] 0. secs (0.u,0.s) +Chars 41954 - 41990 [intros~E~R~S~r~A0~ev~ans~k~t0~...] 0. secs (0.u,0.s) +Chars 41993 - 42005 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 42006 - 42015 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 42016 - 42040 [dependent~induction~Ht0.] 0.019 secs (0.019u,0.s) +Chars 42043 - 42044 [-] 0. secs (0.u,0.s) +Chars 42045 - 42053 [simpobs.] 0. secs (0.u,0.s) +Chars 42054 - 42058 [cbn.] 0. secs (0.u,0.s) +Chars 42059 - 42107 [remember~(go~(VisF~(evans~A0~e...] 0. secs (0.u,0.s) +Chars 42112 - 42159 [enough~(trace_prefixF~r~(RetF~...] 0. secs (0.u,0.s) +Chars 42164 - 42165 [{] 0. secs (0.u,0.s) +Chars 42166 - 42172 [subst.] 0. secs (0.u,0.s) +Chars 42173 - 42178 [auto.] 0. secs (0.u,0.s) +Chars 42179 - 42180 [}] 0. secs (0.u,0.s) +Chars 42185 - 42197 [constructor.] 0. secs (0.u,0.s) +Chars 42200 - 42201 [-] 0. secs (0.u,0.s) +Chars 42202 - 42210 [simpobs.] 0. secs (0.u,0.s) +Chars 42211 - 42215 [cbn.] 0. secs (0.u,0.s) +Chars 42216 - 42228 [constructor.] 0. secs (0.u,0.s) +Chars 42229 - 42249 [eapply~IHHt0;~eauto.] 0. secs (0.u,0.s) +Chars 42250 - 42254 [Qed.] 0.014 secs (0.014u,0.s) +Chars 42256 - 42853 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) +Chars 42854 - 42860 [Proof.] 0. secs (0.u,0.s) +Chars 42863 - 42902 [intros~E~R~S~r~A0~Hempty~ev~k~...] 0. secs (0.u,0.s) +Chars 42905 - 42917 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 42918 - 42927 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 42928 - 42952 [dependent~induction~Ht0.] 0.019 secs (0.019u,0.s) +Chars 42955 - 42956 [-] 0. secs (0.u,0.s) +Chars 42957 - 42965 [simpobs.] 0. secs (0.u,0.s) +Chars 42966 - 42970 [cbn.] 0. secs (0.u,0.s) +Chars 42971 - 43024 [remember~(go~(VisF~(evempty~A0...] 0. secs (0.u,0.s) +Chars 43029 - 43076 [enough~(trace_prefixF~r~(RetF~...] 0. secs (0.u,0.s) +Chars 43081 - 43082 [{] 0. secs (0.u,0.s) +Chars 43083 - 43089 [subst.] 0. secs (0.u,0.s) +Chars 43090 - 43095 [auto.] 0. secs (0.u,0.s) +Chars 43096 - 43097 [}] 0. secs (0.u,0.s) +Chars 43102 - 43114 [constructor.] 0. secs (0.u,0.s) +Chars 43117 - 43118 [-] 0. secs (0.u,0.s) +Chars 43119 - 43127 [simpobs.] 0. secs (0.u,0.s) +Chars 43128 - 43132 [cbn.] 0. secs (0.u,0.s) +Chars 43133 - 43145 [constructor.] 0. secs (0.u,0.s) +Chars 43146 - 43166 [eapply~IHHt0;~eauto.] 0. secs (0.u,0.s) +Chars 43167 - 43171 [Qed.] 0.028 secs (0.027u,0.s) +Chars 43173 - 43384 [Lemma~trace_prefix_peel~:~~~fo...] 0. secs (0.u,0.s) +Chars 43385 - 43391 [Proof.] 0. secs (0.u,0.s) +Chars 43394 - 43407 [intros~E~S~R.] 0. secs (0.u,0.s) +Chars 43408 - 43426 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 43427 - 43445 [intros~b~t~f~Href.] 0. secs (0.u,0.s) +Chars 43446 - 43458 [unfold~peel.] 0. secs (0.u,0.s) +Chars 43461 - 43537 [destruct~(observe~b)~eqn:Heqb;...] 0.002 secs (0.002u,0.s) +Chars 43541 - 43542 [-] 0. secs (0.u,0.s) +Chars 43543 - 43547 [cbn.] 0. secs (0.u,0.s) +Chars 43548 - 43564 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 43568 - 43569 [-] 0. secs (0.u,0.s) +Chars 43570 - 43578 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43579 - 43614 [eapply~trace_prefix_tau_ret;~e...] 0. secs (0.u,0.s) +Chars 43617 - 43618 [-] 0. secs (0.u,0.s) +Chars 43619 - 43636 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 43637 - 43654 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 43655 - 43677 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 43678 - 43700 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 43705 - 43726 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 43727 - 43748 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 43749 - 43774 [rewrite~bind_vis~in~Href.] 0.005 secs (0.005u,0.s) +Chars 43779 - 43789 [sinv~Href.] 0.002 secs (0.002u,0.s) +Chars 43792 - 43793 [-] 0. secs (0.u,0.s) +Chars 43794 - 43802 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43803 - 43819 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 43822 - 43823 [-] 0. secs (0.u,0.s) +Chars 43824 - 43832 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 43833 - 43845 [constructor.] 0. secs (0.u,0.s) +Chars 43846 - 43857 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 43859 - 43876 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 43877 - 43894 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 43899 - 43921 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 43922 - 43944 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 43945 - 43966 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 43967 - 43988 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 43993 - 44025 [repeat~rewrite~tau_eutt~in~Href.] 0.005 secs (0.005u,0.s) +Chars 44026 - 44032 [eauto.] 0. secs (0.u,0.s) +Chars 44035 - 44036 [-] 0. secs (0.u,0.s) +Chars 44037 - 44045 [simpobs.] 0.009 secs (0.009u,0.s) +Chars 44046 - 44058 [constructor.] 0. secs (0.u,0.s) +Chars 44059 - 44075 [rewrite~<-~Heqt.] 0. secs (0.u,0.s) +Chars 44076 - 44087 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 44093 - 44110 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 44111 - 44133 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 44134 - 44155 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 44160 - 44185 [rewrite~tau_eutt~in~Href.] 0.002 secs (0.002u,0.s) +Chars 44186 - 44192 [eauto.] 0. secs (0.u,0.s) +Chars 44195 - 44196 [-] 0. secs (0.u,0.s) +Chars 44197 - 44205 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 44206 - 44256 [destruct~e;~cbn;~rewrite~<-~He...] 0.001 secs (0.001u,0.s) +Chars 44259 - 44260 [-] 0. secs (0.u,0.s) +Chars 44261 - 44269 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 44270 - 44287 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 44288 - 44310 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 44315 - 44336 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 44341 - 44381 [apply~trace_refine_vis_l~in~Hr...] 0. secs (0.u,0.s) +Chars 44382 - 44420 [destruct~Hbt~as~[A~[e0~[k0~Hvi...] 0. secs (0.u,0.s) +Chars 44425 - 44442 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 44443 - 44465 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 44466 - 44487 [rewrite~Heqt~in~Hvis.] 0.008 secs (0.008u,0.s) +Chars 44492 - 44517 [rewrite~tau_eutt~in~Hvis.] 0.005 secs (0.005u,0.s) +Chars 44522 - 44617 [assert~~((exists~B,~exists~k',...] 0. secs (0.u,0.s) +Chars 44622 - 44623 [{] 0. secs (0.u,0.s) +Chars 44630 - 44643 [step~in~Hvis.] 0. secs (0.u,0.s) +Chars 44644 - 44660 [clear~Heqb~Heqt.] 0. secs (0.u,0.s) +Chars 44667 - 44692 [dependent~induction~Hvis.] 0.035 secs (0.035u,0.s) +Chars 44699 - 44700 [-] 0. secs (0.u,0.s) +Chars 44701 - 44721 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 44722 - 44731 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 44732 - 44784 [destruct~(observe~t0)~eqn:Heqt...] 0. secs (0.u,0.s) +Chars 44793 - 44794 [+] 0. secs (0.u,0.s) +Chars 44795 - 44801 [right.] 0. secs (0.u,0.s) +Chars 44802 - 44811 [exists~r.] 0. secs (0.u,0.s) +Chars 44812 - 44817 [step.] 0.001 secs (0.001u,0.s) +Chars 44818 - 44822 [cbn.] 0. secs (0.u,0.s) +Chars 44823 - 44837 [rewrite~Heqt0.] 0. secs (0.u,0.s) +Chars 44838 - 44854 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 44863 - 44864 [+] 0. secs (0.u,0.s) +Chars 44865 - 44874 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 44875 - 44880 [left.] 0. secs (0.u,0.s) +Chars 44881 - 44891 [exists~X0.] 0. secs (0.u,0.s) +Chars 44892 - 44902 [exists~k2.] 0. secs (0.u,0.s) +Chars 44903 - 44913 [exists~e1.] 0. secs (0.u,0.s) +Chars 44914 - 44932 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) +Chars 44943 - 44966 [apply~simpobs~in~Heqt0.] 0. secs (0.u,0.s) +Chars 44967 - 44981 [rewrite~Heqt0.] 0. secs (0.u,0.s) +Chars 44982 - 44994 [reflexivity.] 0. secs (0.u,0.s) +Chars 45001 - 45002 [-] 0. secs (0.u,0.s) +Chars 45003 - 45023 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 45024 - 45033 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 45034 - 45086 [destruct~(observe~t0)~eqn:Heqt...] 0.002 secs (0.002u,0.s) +Chars 45095 - 45096 [+] 0. secs (0.u,0.s) +Chars 45097 - 45103 [right.] 0. secs (0.u,0.s) +Chars 45104 - 45113 [exists~r.] 0. secs (0.u,0.s) +Chars 45114 - 45119 [step.] 0.001 secs (0.001u,0.s) +Chars 45120 - 45124 [cbn.] 0. secs (0.u,0.s) +Chars 45125 - 45139 [rewrite~Heqt0.] 0. secs (0.u,0.s) +Chars 45140 - 45156 [auto~with~itree.] 0. secs (0.u,0.s) +Chars 45165 - 45166 [+] 0. secs (0.u,0.s) +Chars 45167 - 45186 [injection~x~as~Ht1.] 0. secs (0.u,0.s) +Chars 45187 - 45205 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) +Chars 45206 - 45229 [apply~simpobs~in~Heqt0.] 0. secs (0.u,0.s) +Chars 45240 - 45261 [setoid_rewrite~Heqt0.] 0.007 secs (0.007u,0.s) +Chars 45262 - 45286 [setoid_rewrite~tau_eutt.] 0.009 secs (0.009u,0.s) +Chars 45287 - 45308 [eapply~IHHvis;~eauto.] 0.002 secs (0.002u,0.s) +Chars 45319 - 45331 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 45332 - 45337 [auto.] 0. secs (0.u,0.s) +Chars 45342 - 45343 [}] 0. secs (0.u,0.s) +Chars 45348 - 45396 [destruct~H~as~[[B~[k'~[e1~Ht0]...] 0. secs (0.u,0.s) +Chars 45401 - 45402 [+] 0. secs (0.u,0.s) +Chars 45403 - 45424 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45425 - 45450 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45457 - 45477 [rewrite~Ht0~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45478 - 45503 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) +Chars 45510 - 45520 [sinv~Href.] 0.013 secs (0.013u,0.s) +Chars 45521 - 45548 [subst;~ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 45555 - 45575 [rewrite~Ht0~in~Hvis.] 0.006 secs (0.006u,0.s) +Chars 45576 - 45601 [rewrite~bind_vis~in~Hvis.] 0.007 secs (0.007u,0.s) +Chars 45602 - 45612 [sinv~Hvis.] 0.013 secs (0.013u,0.s) +Chars 45619 - 45646 [subst;~ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 45647 - 45663 [clear~Heqt~Heqb.] 0. secs (0.u,0.s) +Chars 45670 - 45682 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 45683 - 45692 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 45699 - 45710 [destruct~e.] 0. secs (0.u,0.s) +Chars 45717 - 45718 [*] 0. secs (0.u,0.s) +Chars 45719 - 45726 [inv~H1.] 0.008 secs (0.008u,0.s) +Chars 45727 - 45747 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 45748 - 45752 [cbn.] 0. secs (0.u,0.s) +Chars 45753 - 45765 [constructor.] 0. secs (0.u,0.s) +Chars 45774 - 45822 [eapply~trace_prefix_vis_evans;...] 0.001 secs (0.001u,0.s) +Chars 45831 - 45840 [now~step.] 0.001 secs (0.001u,0.s) +Chars 45848 - 45849 [*] 0. secs (0.u,0.s) +Chars 45850 - 45889 [eapply~trace_prefix_vis_evempt...] 0. secs (0.u,0.s) +Chars 45894 - 45895 [+] 0. secs (0.u,0.s) +Chars 45896 - 45917 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45918 - 45938 [rewrite~Ht0~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45945 - 45970 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45971 - 45998 [rewrite~bind_ret_l~in~Href.] 0.003 secs (0.003u,0.s) +Chars 45999 - 46010 [clear~Hvis.] 0. secs (0.u,0.s) +Chars 46017 - 46028 [destruct~e.] 0. secs (0.u,0.s) +Chars 46035 - 46036 [*] 0. secs (0.u,0.s) +Chars 46037 - 46041 [cbn.] 0. secs (0.u,0.s) +Chars 46042 - 46054 [constructor.] 0. secs (0.u,0.s) +Chars 46055 - 46095 [eapply~trace_prefix_peel_ret_v...] 0. secs (0.u,0.s) +Chars 46102 - 46103 [*] 0. secs (0.u,0.s) +Chars 46104 - 46108 [cbn.] 0. secs (0.u,0.s) +Chars 46109 - 46121 [constructor.] 0. secs (0.u,0.s) +Chars 46122 - 46168 [eapply~trace_prefix_peel_ret_v...] 0. secs (0.u,0.s) +Chars 46171 - 46172 [-] 0. secs (0.u,0.s) +Chars 46173 - 46217 [destruct~e;~cbn;~simpobs;~[~~|...] 0.004 secs (0.003u,0.s) +Chars 46222 - 46239 [symmetry~in~Heqt.] 0. secs (0.u,0.s) +Chars 46240 - 46262 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) +Chars 46263 - 46284 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) +Chars 46289 - 46314 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) +Chars 46315 - 46332 [symmetry~in~Heqb.] 0. secs (0.u,0.s) +Chars 46333 - 46355 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) +Chars 46360 - 46381 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) +Chars 46382 - 46392 [sinv~Href.] 0.011 secs (0.011u,0.s) +Chars 46393 - 46420 [subst;~ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 46425 - 46438 [inversion~H1.] 0.002 secs (0.002u,0.s) +Chars 46439 - 46459 [ddestruction;~subst.] 0.004 secs (0.004u,0.s) +Chars 46464 - 46484 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 46485 - 46489 [cbn.] 0. secs (0.u,0.s) +Chars 46490 - 46506 [unfold~peel_vis.] 0. secs (0.u,0.s) +Chars 46507 - 46528 [assert~(A~=~A);~auto.] 0. secs (0.u,0.s) +Chars 46533 - 46581 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) +Chars 46586 - 46612 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) +Chars 46613 - 46639 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) +Chars 46644 - 46669 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) +Chars 46670 - 46674 [cbn.] 0. secs (0.u,0.s) +Chars 46675 - 46687 [constructor.] 0. secs (0.u,0.s) +Chars 46688 - 46699 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 46705 - 46725 [ddestruction;~subst.] 0. secs (0.u,0.s) +Chars 46730 - 46801 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 46806 - 46821 [apply~H6~in~H0.] 0. secs (0.u,0.s) +Chars 46823 - 46829 [eauto.] 0. secs (0.u,0.s) +Chars 46830 - 46834 [Qed.] 0.097 secs (0.096u,0.s) +Chars 46836 - 47043 [Lemma~peel_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) +Chars 47044 - 47050 [Proof.] 0. secs (0.u,0.s) +Chars 47053 - 47060 [intros.] 0. secs (0.u,0.s) +Chars 47061 - 47085 [apply~trace_prefix_bind.] 0. secs (0.u,0.s) +Chars 47086 - 47118 [eapply~trace_prefix_peel;~eauto.] 0. secs (0.u,0.s) +Chars 47119 - 47123 [Qed.] 0. secs (0.u,0.s) +Chars 47125 - 47288 [Lemma~peel_lemma~:~~~forall~E~...] 0. secs (0.u,0.s) +Chars 47289 - 47295 [Proof.] 0. secs (0.u,0.s) +Chars 47298 - 47305 [intros.] 0. secs (0.u,0.s) +Chars 47306 - 47378 [split;~try~eapply~peel_refine_...] 0. secs (0.u,0.s) +Chars 47379 - 47383 [Qed.] 0. secs (0.u,0.s) +Chars 47385 - 47394 [End~Peel.] 0.006 secs (0.006u,0.s) +Chars 47396 - 47579 [Lemma~bind_peel_ret_tau_aux~:~...] 0. secs (0.u,0.s) +Chars 47580 - 47586 [Proof.] 0. secs (0.u,0.s) +Chars 47589 - 47616 [intros~E~S~R~f~r0~t0~Hrutt.] 0. secs (0.u,0.s) +Chars 47619 - 47633 [step~in~Hrutt.] 0. secs (0.u,0.s) +Chars 47634 - 47643 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 47644 - 47670 [dependent~induction~Hrutt.] 0.027 secs (0.027u,0.s) +Chars 47673 - 47674 [-] 0. secs (0.u,0.s) +Chars 47675 - 47698 [unfold~ITree.bind~in~x.] 0. secs (0.u,0.s) +Chars 47699 - 47724 [unfold~observe~in~x~at~1.] 0. secs (0.u,0.s) +Chars 47725 - 47734 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 47739 - 47789 [destruct~(observe~t0)~eqn:Ht0;...] 0. secs (0.u,0.s) +Chars 47794 - 47803 [exists~r.] 0. secs (0.u,0.s) +Chars 47804 - 47809 [step.] 0.001 secs (0.001u,0.s) +Chars 47810 - 47822 [rewrite~Ht0.] 0. secs (0.u,0.s) +Chars 47823 - 47835 [constructor.] 0. secs (0.u,0.s) +Chars 47836 - 47841 [auto.] 0. secs (0.u,0.s) +Chars 47844 - 47845 [-] 0. secs (0.u,0.s) +Chars 47846 - 47866 [unfold~observe~in~x.] 0. secs (0.u,0.s) +Chars 47867 - 47876 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 47877 - 47927 [destruct~(observe~t0)~eqn:Ht0;...] 0. secs (0.u,0.s) +Chars 47932 - 47933 [+] 0. secs (0.u,0.s) +Chars 47934 - 47943 [exists~r.] 0. secs (0.u,0.s) +Chars 47944 - 47949 [step.] 0.001 secs (0.001u,0.s) +Chars 47950 - 47962 [rewrite~Ht0.] 0. secs (0.u,0.s) +Chars 47963 - 47975 [constructor.] 0. secs (0.u,0.s) +Chars 47976 - 47981 [auto.] 0. secs (0.u,0.s) +Chars 47986 - 47987 [+] 0. secs (0.u,0.s) +Chars 47988 - 48004 [symmetry~in~Ht0.] 0. secs (0.u,0.s) +Chars 48005 - 48026 [apply~simpobs~in~Ht0.] 0. secs (0.u,0.s) +Chars 48027 - 48046 [setoid_rewrite~Ht0.] 0.001 secs (0.001u,0.s) +Chars 48047 - 48071 [setoid_rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 48078 - 48087 [cbn~in~x.] 0. secs (0.u,0.s) +Chars 48088 - 48107 [injection~x~as~Ht2.] 0. secs (0.u,0.s) +Chars 48108 - 48129 [eapply~IHHrutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 48136 - 48142 [subst.] 0.002 secs (0.002u,0.s) +Chars 48143 - 48155 [reflexivity.] 0. secs (0.u,0.s) +Chars 48156 - 48160 [Qed.] 0.022 secs (0.022u,0.s) +Chars 48162 - 48410 [Lemma~decompose_trace_refine_b...] 0.001 secs (0.001u,0.s) +Chars 48411 - 48417 [Proof.] 0. secs (0.u,0.s) +Chars 48420 - 48462 [destruct~classicT_inhabited~as...] 0. secs (0.u,0.s) +Chars 48465 - 48472 [intros.] 0. secs (0.u,0.s) +Chars 48473 - 48500 [exists~(peel~classicT~b~t).] 0. secs (0.u,0.s) +Chars 48503 - 48544 [apply~(peel_bind~classicT)~in~...] 0. secs (0.u,0.s) +Chars 48545 - 48573 [destruct~Heutt~as~[g~Heutt].] 0. secs (0.u,0.s) +Chars 48576 - 48585 [exists~g.] 0. secs (0.u,0.s) +Chars 48586 - 48640 [split;~auto;~eapply~(peel_refi...] 0. secs (0.u,0.s) +Chars 48641 - 48645 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48647 - 48968 [Lemma~bind_trigger_refine~:~~~...] 0. secs (0.u,0.s) +Chars 48969 - 48975 [Proof.] 0. secs (0.u,0.s) +Chars 48978 - 48985 [intros.] 0. secs (0.u,0.s) +Chars 48986 - 49013 [rewrite~bind_trigger~in~H0.] 0.002 secs (0.002u,0.s) +Chars 49014 - 49051 [apply~trace_refine_vis~in~H0~a...] 0. secs (0.u,0.s) +Chars 49054 - 49093 [destruct~Hvis~as~[X~[e'~[k'~Hb...] 0. secs (0.u,0.s) +Chars 49094 - 49115 [setoid_rewrite~Hbvis.] 0.006 secs (0.006u,0.s) +Chars 49118 - 49138 [rewrite~Hbvis~in~H0.] 0.002 secs (0.002u,0.s) +Chars 49141 - 49152 [step~in~H0.] 0. secs (0.u,0.s) +Chars 49153 - 49162 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 49163 - 49170 [inv~H0.] 0.01 secs (0.009u,0.s) +Chars 49171 - 49184 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 49185 - 49191 [subst.] 0. secs (0.u,0.s) +Chars 49192 - 49220 [inv~H3;~ddestruction;~subst.] 0.009 secs (0.009u,0.s) +Chars 49223 - 49224 [-] 0. secs (0.u,0.s) +Chars 49225 - 49234 [exists~a.] 0. secs (0.u,0.s) +Chars 49235 - 49245 [exists~k'.] 0. secs (0.u,0.s) +Chars 49246 - 49269 [split;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 49275 - 49340 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 49345 - 49360 [apply~H8~in~H0.] 0. secs (0.u,0.s) +Chars 49362 - 49367 [auto.] 0. secs (0.u,0.s) +Chars 49370 - 49371 [-] 0. secs (0.u,0.s) +Chars 49372 - 49392 [destruct~H~as~[a~_].] 0. secs (0.u,0.s) +Chars 49393 - 49407 [contradiction.] 0. secs (0.u,0.s) +Chars 49408 - 49412 [Qed.] 0.013 secs (0.013u,0.s) diff --git a/extra/ITrace/ITraceDefinition.v.timing b/extra/ITrace/ITraceDefinition.v.timing index 7498c825..1c41cc83 100644 --- a/extra/ITrace/ITraceDefinition.v.timing +++ b/extra/ITrace/ITraceDefinition.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.228 secs (0.196u,0.029s) -Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.009 secs (0.008u,0.001s) +Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.161 secs (0.143u,0.018s) +Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) Chars 122 - 136 [Import~Monads.] 0. secs (0.u,0.s) Chars 137 - 158 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 159 - 188 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -18,7 +18,7 @@ Chars 1209 - 1457 [Variant~REvRef~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) Chars 1458 - 1501 [#[global]~Hint~Constructors~RE...] 0. secs (0.u,0.s) Chars 1536 - 1709 [Variant~RAnsRef~(E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 1710 - 1754 [#[global]~Hint~Constructors~RA...] 0. secs (0.u,0.s) -Chars 1756 - 1862 [Definition~trace_refine~{E}~{R...] 0.001 secs (0.u,0.s) +Chars 1756 - 1862 [Definition~trace_refine~{E}~{R...] 0. secs (0.u,0.s) Chars 1865 - 1920 [Notation~"b~⊑~t"~:=~(trace_ref...] 0. secs (0.u,0.s) Chars 1922 - 2005 [Definition~finite~{E~:~Type~->...] 0. secs (0.u,0.s) Chars 2007 - 2081 [#[global]~Instance~itrace_eq~~...] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceFacts.v.timing b/extra/ITrace/ITraceFacts.v.timing index 8205d019..46c61398 100644 --- a/extra/ITrace/ITraceFacts.v.timing +++ b/extra/ITrace/ITraceFacts.v.timing @@ -1,545 +1,545 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 89 - 216 [From~ITree~Require~Import~Util...] 0.262 secs (0.219u,0.039s) -Chars 218 - 280 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.001u,0.s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 89 - 216 [From~ITree~Require~Import~Util...] 0.162 secs (0.145u,0.016s) +Chars 218 - 280 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) Chars 282 - 305 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 308 - 322 [Import~Monads.] 0. secs (0.u,0.s) Chars 323 - 344 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 345 - 374 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 376 - 419 [Tactic~Notation~"step"~:=~(rep...] 0. secs (0.u,0.s) +Chars 376 - 419 [Tactic~Notation~"step"~:=~repe...] 0. secs (0.u,0.s) Chars 421 - 488 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) Chars 490 - 542 [Tactic~Notation~"sinv"~ident(h...] 0. secs (0.u,0.s) Chars 545 - 623 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) Chars 624 - 630 [Proof.] 0. secs (0.u,0.s) -Chars 633 - 640 [(intros).] 0. secs (0.u,0.s) -Chars 641 - 681 [(destruct~(classic~(exists~a~:...] 0. secs (0.u,0.s) +Chars 633 - 640 [intros.] 0. secs (0.u,0.s) +Chars 641 - 681 [destruct~(classic~(exists~a~:~...] 0. secs (0.u,0.s) Chars 684 - 685 [-] 0. secs (0.u,0.s) -Chars 686 - 704 [(destruct~H;~eauto).] 0. secs (0.u,0.s) +Chars 686 - 704 [destruct~H;~eauto.] 0. secs (0.u,0.s) Chars 707 - 708 [-] 0. secs (0.u,0.s) -Chars 709 - 739 [(assert~(f~:~A~->~void);~eauto).] 0. secs (0.u,0.s) -Chars 740 - 747 [(intros).] 0. secs (0.u,0.s) +Chars 709 - 739 [assert~(f~:~A~->~void);~eauto.] 0. secs (0.u,0.s) +Chars 740 - 747 [intros.] 0. secs (0.u,0.s) Chars 752 - 760 [exfalso.] 0. secs (0.u,0.s) -Chars 761 - 776 [(apply~H;~eauto).] 0. secs (0.u,0.s) +Chars 761 - 776 [apply~H;~eauto.] 0. secs (0.u,0.s) Chars 777 - 781 [Qed.] 0. secs (0.u,0.s) Chars 783 - 874 [Lemma~REvRef_inv~{E}~{A}~(e~e'...] 0. secs (0.u,0.s) Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) -Chars 884 - 893 [(intros~x).] 0. secs (0.u,0.s) -Chars 894 - 906 [(inversion~x).] 0.002 secs (0.002u,0.s) -Chars 907 - 920 [ddestruction.] 0.003 secs (0.002u,0.s) +Chars 884 - 893 [intros~x.] 0. secs (0.u,0.s) +Chars 894 - 906 [inversion~x.] 0.001 secs (0.001u,0.s) +Chars 907 - 920 [ddestruction.] 0.002 secs (0.001u,0.s) Chars 921 - 933 [reflexivity.] 0. secs (0.u,0.s) -Chars 934 - 938 [Qed.] 0.003 secs (0.002u,0.s) +Chars 934 - 938 [Qed.] 0.024 secs (0.023u,0.001s) Chars 940 - 1020 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0. secs (0.u,0.s) Chars 1021 - 1027 [Proof.] 0. secs (0.u,0.s) -Chars 1030 - 1039 [(intros~x).] 0. secs (0.u,0.s) -Chars 1040 - 1052 [(inversion~x).] 0.037 secs (0.032u,0.004s) +Chars 1030 - 1039 [intros~x.] 0. secs (0.u,0.s) +Chars 1040 - 1052 [inversion~x.] 0.001 secs (0.001u,0.s) Chars 1055 - 1056 [-] 0. secs (0.u,0.s) -Chars 1057 - 1070 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 1071 - 1092 [(eexists;~reflexivity).] 0. secs (0.u,0.s) +Chars 1057 - 1070 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 1071 - 1092 [eexists;~reflexivity.] 0. secs (0.u,0.s) Chars 1095 - 1096 [-] 0. secs (0.u,0.s) -Chars 1097 - 1136 [(enough~(unit~->~void)~by~cont...] 0. secs (0.u,0.s) -Chars 1137 - 1148 [(destruct~H).] 0. secs (0.u,0.s) +Chars 1097 - 1136 [enough~(unit~->~void)~by~contr...] 0. secs (0.u,0.s) +Chars 1137 - 1148 [destruct~H.] 0. secs (0.u,0.s) Chars 1149 - 1154 [auto.] 0. secs (0.u,0.s) -Chars 1155 - 1159 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1155 - 1159 [Qed.] 0.002 secs (0.002u,0.s) Chars 1161 - 1338 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) Chars 1339 - 1345 [Proof.] 0. secs (0.u,0.s) -Chars 1348 - 1355 [(intros).] 0. secs (0.u,0.s) -Chars 1356 - 1376 [(induction~H;~inv~H0).] 0.007 secs (0.007u,0.s) +Chars 1348 - 1355 [intros.] 0. secs (0.u,0.s) +Chars 1356 - 1376 [induction~H;~inv~H0.] 0.005 secs (0.005u,0.s) Chars 1380 - 1381 [-] 0. secs (0.u,0.s) -Chars 1382 - 1398 [(rewrite~H~in~H1).] 0.062 secs (0.06u,0.001s) -Chars 1399 - 1407 [sinv~H1.] 0.003 secs (0.003u,0.s) +Chars 1382 - 1398 [rewrite~H~in~H1.] 0.046 secs (0.046u,0.s) +Chars 1399 - 1407 [sinv~H1.] 0.002 secs (0.002u,0.s) Chars 1410 - 1411 [-] 0. secs (0.u,0.s) -Chars 1412 - 1428 [(rewrite~H~in~H1).] 0.022 secs (0.021u,0.001s) -Chars 1429 - 1437 [sinv~H1.] 0.003 secs (0.003u,0.s) +Chars 1412 - 1428 [rewrite~H~in~H1.] 0.013 secs (0.013u,0.s) +Chars 1429 - 1437 [sinv~H1.] 0.002 secs (0.002u,0.s) Chars 1440 - 1441 [-] 0. secs (0.u,0.s) -Chars 1442 - 1453 [(destruct~e).] 0. secs (0.u,0.s) -Chars 1454 - 1465 [(destruct~b).] 0. secs (0.u,0.s) -Chars 1466 - 1487 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 1442 - 1453 [destruct~e.] 0. secs (0.u,0.s) +Chars 1454 - 1465 [destruct~b.] 0. secs (0.u,0.s) +Chars 1466 - 1487 [apply~IHmay_converge.] 0. secs (0.u,0.s) Chars 1492 - 1493 [+] 0. secs (0.u,0.s) -Chars 1494 - 1510 [(rewrite~H~in~H2).] 0.019 secs (0.018u,0.s) -Chars 1511 - 1519 [sinv~H2.] 0.006 secs (0.006u,0.s) +Chars 1494 - 1510 [rewrite~H~in~H2.] 0.014 secs (0.014u,0.s) +Chars 1511 - 1519 [sinv~H2.] 0.002 secs (0.002u,0.s) Chars 1525 - 1526 [+] 0. secs (0.u,0.s) Chars 1527 - 1539 [contra_void.] 0. secs (0.u,0.s) Chars 1543 - 1544 [-] 0. secs (0.u,0.s) -Chars 1545 - 1573 [(destruct~e;~try~contra_void).] 0. secs (0.u,0.s) -Chars 1579 - 1608 [(destruct~e0;~try~contra_void).] 0. secs (0.u,0.s) -Chars 1613 - 1624 [(destruct~b).] 0. secs (0.u,0.s) -Chars 1625 - 1637 [(destruct~b0).] 0. secs (0.u,0.s) -Chars 1642 - 1663 [(apply~IHmay_converge).] 0. secs (0.u,0.s) -Chars 1664 - 1680 [(rewrite~H~in~H2).] 0.02 secs (0.019u,0.s) -Chars 1685 - 1693 [sinv~H2.] 0.011 secs (0.01u,0.s) -Chars 1694 - 1707 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 1545 - 1573 [destruct~e;~try~contra_void.] 0. secs (0.u,0.s) +Chars 1579 - 1608 [destruct~e0;~try~contra_void.] 0. secs (0.u,0.s) +Chars 1613 - 1624 [destruct~b.] 0. secs (0.u,0.s) +Chars 1625 - 1637 [destruct~b0.] 0. secs (0.u,0.s) +Chars 1642 - 1663 [apply~IHmay_converge.] 0. secs (0.u,0.s) +Chars 1664 - 1680 [rewrite~H~in~H2.] 0.013 secs (0.013u,0.s) +Chars 1685 - 1693 [sinv~H2.] 0.006 secs (0.006u,0.s) +Chars 1694 - 1707 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 1712 - 1718 [subst.] 0. secs (0.u,0.s) -Chars 1719 - 1758 [(enough~(k~tt~≈~k0~tt);~try~ap...] 0. secs (0.u,0.s) -Chars 1763 - 1774 [(rewrite~H0).] 0.006 secs (0.006u,0.s) +Chars 1719 - 1758 [enough~(k~tt~≈~k0~tt);~try~app...] 0. secs (0.u,0.s) +Chars 1763 - 1774 [rewrite~H0.] 0.003 secs (0.003u,0.s) Chars 1775 - 1780 [auto.] 0. secs (0.u,0.s) -Chars 1781 - 1785 [Qed.] 0.021 secs (0.021u,0.s) +Chars 1781 - 1785 [Qed.] 0.013 secs (0.013u,0.s) Chars 1787 - 1841 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 1842 - 1848 [Proof.] 0. secs (0.u,0.s) -Chars 1851 - 1866 [(apply~conv_ret).] 0. secs (0.u,0.s) -Chars 1867 - 1878 [(unfold~Nil).] 0. secs (0.u,0.s) +Chars 1851 - 1866 [apply~conv_ret.] 0. secs (0.u,0.s) +Chars 1867 - 1878 [unfold~Nil.] 0. secs (0.u,0.s) Chars 1879 - 1891 [reflexivity.] 0. secs (0.u,0.s) Chars 1892 - 1896 [Qed.] 0. secs (0.u,0.s) Chars 1898 - 2004 [Lemma~finite_list_to_stream~:~...] 0. secs (0.u,0.s) Chars 2005 - 2011 [Proof.] 0. secs (0.u,0.s) -Chars 2014 - 2018 [(red).] 0. secs (0.u,0.s) -Chars 2019 - 2026 [(intros).] 0. secs (0.u,0.s) -Chars 2027 - 2039 [(induction~l).] 0. secs (0.u,0.s) +Chars 2014 - 2018 [red.] 0. secs (0.u,0.s) +Chars 2019 - 2026 [intros.] 0. secs (0.u,0.s) +Chars 2027 - 2039 [induction~l.] 0. secs (0.u,0.s) Chars 2042 - 2043 [-] 0. secs (0.u,0.s) -Chars 2044 - 2048 [(cbn).] 0. secs (0.u,0.s) +Chars 2044 - 2048 [cbn.] 0. secs (0.u,0.s) Chars 2049 - 2061 [constructor.] 0. secs (0.u,0.s) Chars 2062 - 2074 [reflexivity.] 0. secs (0.u,0.s) Chars 2077 - 2078 [-] 0. secs (0.u,0.s) -Chars 2079 - 2083 [(cbn).] 0. secs (0.u,0.s) -Chars 2084 - 2117 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 2118 - 2124 [(simpl).] 0. secs (0.u,0.s) +Chars 2079 - 2083 [cbn.] 0. secs (0.u,0.s) +Chars 2084 - 2117 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) +Chars 2118 - 2124 [simpl.] 0. secs (0.u,0.s) Chars 2125 - 2131 [eauto.] 0. secs (0.u,0.s) Chars 2136 - 2145 [Unshelve.] 0. secs (0.u,0.s) Chars 2146 - 2155 [exact~tt.] 0. secs (0.u,0.s) Chars 2156 - 2160 [Qed.] 0. secs (0.u,0.s) Chars 2162 - 2294 [Lemma~finite_stream_list~:~~~f...] 0. secs (0.u,0.s) Chars 2295 - 2301 [Proof.] 0. secs (0.u,0.s) -Chars 2304 - 2311 [(intros).] 0. secs (0.u,0.s) -Chars 2312 - 2321 [(red~in~H).] 0. secs (0.u,0.s) -Chars 2322 - 2334 [(induction~H).] 0. secs (0.u,0.s) +Chars 2304 - 2311 [intros.] 0. secs (0.u,0.s) +Chars 2312 - 2321 [red~in~H.] 0. secs (0.u,0.s) +Chars 2322 - 2334 [induction~H.] 0. secs (0.u,0.s) Chars 2337 - 2338 [-] 0. secs (0.u,0.s) Chars 2339 - 2350 [exists~nil.] 0. secs (0.u,0.s) Chars 2351 - 2356 [auto.] 0. secs (0.u,0.s) Chars 2359 - 2360 [-] 0. secs (0.u,0.s) -Chars 2361 - 2395 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) -Chars 2396 - 2416 [(unfold~ev_list~in~l).] 0. secs (0.u,0.s) -Chars 2421 - 2433 [(inversion~e).] 0. secs (0.u,0.s) +Chars 2361 - 2395 [destruct~IHmay_converge~as~[l~...] 0. secs (0.u,0.s) +Chars 2396 - 2416 [unfold~ev_list~in~l.] 0. secs (0.u,0.s) +Chars 2421 - 2433 [inversion~e.] 0. secs (0.u,0.s) Chars 2434 - 2440 [subst.] 0. secs (0.u,0.s) Chars 2445 - 2463 [exists~(cons~e~l).] 0. secs (0.u,0.s) -Chars 2464 - 2470 [(simpl).] 0. secs (0.u,0.s) -Chars 2471 - 2481 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 2486 - 2497 [(destruct~b).] 0. secs (0.u,0.s) -Chars 2503 - 2518 [(apply~eqit_Vis).] 0. secs (0.u,0.s) -Chars 2524 - 2531 [(intros).] 0. secs (0.u,0.s) +Chars 2464 - 2470 [simpl.] 0. secs (0.u,0.s) +Chars 2471 - 2481 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 2486 - 2497 [destruct~b.] 0. secs (0.u,0.s) +Chars 2503 - 2518 [apply~eqit_Vis.] 0. secs (0.u,0.s) +Chars 2524 - 2531 [intros.] 0. secs (0.u,0.s) Chars 2532 - 2547 [now~destruct~u.] 0. secs (0.u,0.s) Chars 2552 - 2558 [subst.] 0. secs (0.u,0.s) Chars 2559 - 2573 [contradiction.] 0. secs (0.u,0.s) -Chars 2574 - 2578 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2574 - 2578 [Qed.] 0.001 secs (0.001u,0.s) Chars 2580 - 2767 [Lemma~append_vis~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) -Chars 2777 - 2788 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 2789 - 2803 [(unfold~append).] 0. secs (0.u,0.s) -Chars 2804 - 2811 [(intros).] 0. secs (0.u,0.s) -Chars 2814 - 2819 [step.] 0.002 secs (0.002u,0.s) -Chars 2820 - 2824 [(cbn).] 0. secs (0.u,0.s) +Chars 2777 - 2788 [intros~E~R.] 0. secs (0.u,0.s) +Chars 2789 - 2803 [unfold~append.] 0. secs (0.u,0.s) +Chars 2804 - 2811 [intros.] 0. secs (0.u,0.s) +Chars 2814 - 2819 [step.] 0.001 secs (0.001u,0.s) +Chars 2820 - 2824 [cbn.] 0. secs (0.u,0.s) Chars 2825 - 2830 [evis.] 0. secs (0.u,0.s) -Chars 2832 - 2836 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2832 - 2836 [Qed.] 0.002 secs (0.002u,0.s) Chars 2838 - 2967 [#[global]~Instance~proper_appe...] 0. secs (0.u,0.s) Chars 2968 - 2974 [Proof.] 0. secs (0.u,0.s) -Chars 2977 - 3008 [(intros~log1~log2~Hlog~b1~b2~Hb).] 0. secs (0.u,0.s) -Chars 3009 - 3023 [(unfold~append).] 0. secs (0.u,0.s) -Chars 3024 - 3037 [(rewrite~Hlog).] 0.002 secs (0.002u,0.s) -Chars 3040 - 3069 [(eapply~eutt_bind_eutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 3070 - 3074 [Qed.] 0.004 secs (0.004u,0.s) +Chars 2977 - 3008 [intros~log1~log2~Hlog~b1~b2~Hb.] 0. secs (0.u,0.s) +Chars 3009 - 3023 [unfold~append.] 0. secs (0.u,0.s) +Chars 3024 - 3037 [rewrite~Hlog.] 0.001 secs (0.001u,0.s) +Chars 3040 - 3069 [eapply~eutt_bind_eutt;~eauto.] 0.003 secs (0.003u,0.s) +Chars 3070 - 3074 [Qed.] 0.002 secs (0.002u,0.s) Chars 3076 - 3248 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) Chars 3249 - 3255 [Proof.] 0. secs (0.u,0.s) -Chars 3258 - 3265 [(intros).] 0. secs (0.u,0.s) -Chars 3266 - 3278 [(induction~H).] 0. secs (0.u,0.s) +Chars 3258 - 3265 [intros.] 0. secs (0.u,0.s) +Chars 3266 - 3278 [induction~H.] 0. secs (0.u,0.s) Chars 3281 - 3282 [-] 0. secs (0.u,0.s) -Chars 3283 - 3297 [(unfold~append).] 0. secs (0.u,0.s) -Chars 3298 - 3308 [(rewrite~H).] 0.009 secs (0.008u,0.s) -Chars 3309 - 3328 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) +Chars 3283 - 3297 [unfold~append.] 0. secs (0.u,0.s) +Chars 3298 - 3308 [rewrite~H.] 0.004 secs (0.004u,0.s) +Chars 3309 - 3328 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) Chars 3333 - 3345 [constructor.] 0. secs (0.u,0.s) Chars 3346 - 3358 [reflexivity.] 0. secs (0.u,0.s) Chars 3361 - 3362 [-] 0. secs (0.u,0.s) -Chars 3363 - 3373 [(rewrite~H).] 0.005 secs (0.005u,0.s) -Chars 3374 - 3386 [(inversion~e).] 0. secs (0.u,0.s) +Chars 3363 - 3373 [rewrite~H.] 0.004 secs (0.004u,0.s) +Chars 3374 - 3386 [inversion~e.] 0. secs (0.u,0.s) Chars 3387 - 3393 [subst.] 0. secs (0.u,0.s) -Chars 3394 - 3413 [(rewrite~append_vis).] 0.006 secs (0.006u,0.s) -Chars 3418 - 3458 [(eapply~conv_vis;~eauto;~try~r...] 0.005 secs (0.005u,0.s) -Chars 3459 - 3465 [(simpl).] 0. secs (0.u,0.s) +Chars 3394 - 3413 [rewrite~append_vis.] 0.007 secs (0.007u,0.s) +Chars 3418 - 3458 [eapply~conv_vis;~eauto;~try~re...] 0.001 secs (0.001u,0.s) +Chars 3459 - 3465 [simpl.] 0. secs (0.u,0.s) Chars 3466 - 3472 [eauto.] 0. secs (0.u,0.s) Chars 3477 - 3483 [subst.] 0. secs (0.u,0.s) Chars 3484 - 3498 [contradiction.] 0. secs (0.u,0.s) Chars 3499 - 3503 [Qed.] 0.002 secs (0.002u,0.s) Chars 3505 - 3718 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) Chars 3719 - 3725 [Proof.] 0. secs (0.u,0.s) -Chars 3728 - 3735 [(intros).] 0. secs (0.u,0.s) -Chars 3736 - 3748 [(induction~H).] 0. secs (0.u,0.s) +Chars 3728 - 3735 [intros.] 0. secs (0.u,0.s) +Chars 3736 - 3748 [induction~H.] 0. secs (0.u,0.s) Chars 3751 - 3752 [-] 0. secs (0.u,0.s) Chars 3753 - 3764 [exists~nil.] 0. secs (0.u,0.s) -Chars 3765 - 3769 [(cbn).] 0. secs (0.u,0.s) -Chars 3770 - 3780 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 3785 - 3790 [step.] 0.002 secs (0.002u,0.s) -Chars 3791 - 3795 [(cbn).] 0. secs (0.u,0.s) +Chars 3765 - 3769 [cbn.] 0. secs (0.u,0.s) +Chars 3770 - 3780 [rewrite~H.] 0. secs (0.u,0.s) +Chars 3785 - 3790 [step.] 0.001 secs (0.001u,0.s) +Chars 3791 - 3795 [cbn.] 0. secs (0.u,0.s) Chars 3796 - 3801 [eret.] 0. secs (0.u,0.s) Chars 3806 - 3807 [-] 0. secs (0.u,0.s) -Chars 3808 - 3846 [(destruct~IHmay_converge~as~[l...] 0. secs (0.u,0.s) -Chars 3847 - 3859 [(inversion~e).] 0. secs (0.u,0.s) +Chars 3808 - 3846 [destruct~IHmay_converge~as~[lo...] 0. secs (0.u,0.s) +Chars 3847 - 3859 [inversion~e.] 0. secs (0.u,0.s) Chars 3860 - 3866 [subst.] 0. secs (0.u,0.s) Chars 3871 - 3891 [exists~(cons~e~log).] 0. secs (0.u,0.s) -Chars 3892 - 3896 [(cbn).] 0. secs (0.u,0.s) -Chars 3897 - 3916 [(rewrite~append_vis).] 0.002 secs (0.002u,0.s) -Chars 3917 - 3927 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 3932 - 3937 [step.] 0.002 secs (0.002u,0.s) +Chars 3892 - 3896 [cbn.] 0. secs (0.u,0.s) +Chars 3897 - 3916 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) +Chars 3917 - 3927 [rewrite~H.] 0. secs (0.u,0.s) +Chars 3932 - 3937 [step.] 0.001 secs (0.001u,0.s) Chars 3938 - 3950 [constructor.] 0. secs (0.u,0.s) -Chars 3951 - 3958 [(intros).] 0. secs (0.u,0.s) -Chars 3959 - 3970 [(destruct~v).] 0. secs (0.u,0.s) -Chars 3977 - 3988 [(destruct~b).] 0. secs (0.u,0.s) -Chars 3989 - 4000 [(apply~Hlog).] 0. secs (0.u,0.s) +Chars 3951 - 3958 [intros.] 0. secs (0.u,0.s) +Chars 3959 - 3970 [destruct~v.] 0. secs (0.u,0.s) +Chars 3977 - 3988 [destruct~b.] 0. secs (0.u,0.s) +Chars 3989 - 4000 [apply~Hlog.] 0. secs (0.u,0.s) Chars 4001 - 4007 [subst.] 0. secs (0.u,0.s) Chars 4008 - 4022 [contradiction.] 0. secs (0.u,0.s) -Chars 4023 - 4027 [Qed.] 0.005 secs (0.005u,0.s) +Chars 4023 - 4027 [Qed.] 0.003 secs (0.003u,0.s) Chars 4029 - 4211 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) Chars 4212 - 4218 [Proof.] 0. secs (0.u,0.s) -Chars 4221 - 4228 [(intros).] 0. secs (0.u,0.s) -Chars 4231 - 4267 [(destruct~(classic_converge~b)...] 0. secs (0.u,0.s) -Chars 4268 - 4289 [(destruct~H~as~[r~Hr]).] 0. secs (0.u,0.s) +Chars 4221 - 4228 [intros.] 0. secs (0.u,0.s) +Chars 4231 - 4267 [destruct~(classic_converge~b);...] 0. secs (0.u,0.s) +Chars 4268 - 4289 [destruct~H~as~[r~Hr].] 0. secs (0.u,0.s) Chars 4290 - 4295 [left.] 0. secs (0.u,0.s) Chars 4298 - 4307 [exists~r.] 0. secs (0.u,0.s) -Chars 4308 - 4338 [(apply~converge_itrace_ev_list).] 0. secs (0.u,0.s) +Chars 4308 - 4338 [apply~converge_itrace_ev_list.] 0. secs (0.u,0.s) Chars 4339 - 4344 [auto.] 0. secs (0.u,0.s) Chars 4345 - 4349 [Qed.] 0. secs (0.u,0.s) Chars 4351 - 4393 [Arguments~classic_converge_itr...] 0. secs (0.u,0.s) Chars 4395 - 4499 [Lemma~append_nil~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 4500 - 4506 [Proof.] 0. secs (0.u,0.s) -Chars 4509 - 4516 [(intros).] 0. secs (0.u,0.s) -Chars 4517 - 4531 [(unfold~append).] 0. secs (0.u,0.s) -Chars 4532 - 4551 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 4509 - 4516 [intros.] 0. secs (0.u,0.s) +Chars 4517 - 4531 [unfold~append.] 0. secs (0.u,0.s) +Chars 4532 - 4551 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 4552 - 4564 [reflexivity.] 0. secs (0.u,0.s) -Chars 4565 - 4569 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4565 - 4569 [Qed.] 0.001 secs (0.001u,0.s) Chars 4571 - 4822 [Lemma~append_assoc~:~~~forall~...] 0. secs (0.u,0.s) Chars 4823 - 4829 [Proof.] 0. secs (0.u,0.s) -Chars 4832 - 4849 [(intros~E~R~b~log).] 0. secs (0.u,0.s) -Chars 4850 - 4864 [(induction~log).] 0. secs (0.u,0.s) +Chars 4832 - 4849 [intros~E~R~b~log.] 0. secs (0.u,0.s) +Chars 4850 - 4864 [induction~log.] 0. secs (0.u,0.s) Chars 4867 - 4868 [-] 0. secs (0.u,0.s) -Chars 4869 - 4875 [(simpl).] 0. secs (0.u,0.s) -Chars 4876 - 4883 [(intros).] 0. secs (0.u,0.s) -Chars 4884 - 4903 [(rewrite~append_nil).] 0. secs (0.u,0.s) +Chars 4869 - 4875 [simpl.] 0. secs (0.u,0.s) +Chars 4876 - 4883 [intros.] 0. secs (0.u,0.s) +Chars 4884 - 4903 [rewrite~append_nil.] 0. secs (0.u,0.s) Chars 4904 - 4916 [reflexivity.] 0. secs (0.u,0.s) Chars 4919 - 4920 [-] 0. secs (0.u,0.s) -Chars 4921 - 4925 [(cbn).] 0. secs (0.u,0.s) -Chars 4926 - 4933 [(intros).] 0. secs (0.u,0.s) -Chars 4934 - 4953 [(rewrite~append_vis).] 0.002 secs (0.002u,0.s) -Chars 4954 - 4975 [setoid_rewrite~IHlog.] 0.004 secs (0.003u,0.s) -Chars 4980 - 4999 [(rewrite~append_vis).] 0.001 secs (0.001u,0.s) +Chars 4921 - 4925 [cbn.] 0. secs (0.u,0.s) +Chars 4926 - 4933 [intros.] 0. secs (0.u,0.s) +Chars 4934 - 4953 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) +Chars 4954 - 4975 [setoid_rewrite~IHlog.] 0.002 secs (0.002u,0.s) +Chars 4980 - 4999 [rewrite~append_vis.] 0. secs (0.u,0.s) Chars 5000 - 5012 [reflexivity.] 0. secs (0.u,0.s) -Chars 5013 - 5017 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5013 - 5017 [Qed.] 0.002 secs (0.002u,0.s) Chars 5019 - 5198 [Lemma~append_div~:~~~forall~(E...] 0. secs (0.u,0.s) Chars 5199 - 5205 [Proof.] 0. secs (0.u,0.s) -Chars 5208 - 5215 [(intros).] 0. secs (0.u,0.s) -Chars 5216 - 5230 [(induction~log).] 0. secs (0.u,0.s) +Chars 5208 - 5215 [intros.] 0. secs (0.u,0.s) +Chars 5216 - 5230 [induction~log.] 0. secs (0.u,0.s) Chars 5233 - 5234 [-] 0. secs (0.u,0.s) -Chars 5235 - 5239 [(cbn).] 0. secs (0.u,0.s) -Chars 5240 - 5254 [(unfold~append).] 0. secs (0.u,0.s) -Chars 5255 - 5274 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 5235 - 5239 [cbn.] 0. secs (0.u,0.s) +Chars 5240 - 5254 [unfold~append.] 0. secs (0.u,0.s) +Chars 5255 - 5274 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 5275 - 5280 [auto.] 0. secs (0.u,0.s) Chars 5283 - 5284 [-] 0. secs (0.u,0.s) -Chars 5285 - 5289 [(cbn).] 0. secs (0.u,0.s) -Chars 5290 - 5304 [(unfold~append).] 0. secs (0.u,0.s) +Chars 5285 - 5289 [cbn.] 0. secs (0.u,0.s) +Chars 5290 - 5304 [unfold~append.] 0. secs (0.u,0.s) Chars 5309 - 5314 [step.] 0. secs (0.u,0.s) -Chars 5315 - 5326 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5327 - 5331 [(cbn).] 0. secs (0.u,0.s) +Chars 5315 - 5326 [repeat~red.] 0. secs (0.u,0.s) +Chars 5327 - 5331 [cbn.] 0. secs (0.u,0.s) Chars 5332 - 5344 [constructor.] 0. secs (0.u,0.s) Chars 5345 - 5351 [intro.] 0. secs (0.u,0.s) Chars 5352 - 5357 [auto.] 0. secs (0.u,0.s) Chars 5359 - 5363 [Qed.] 0.001 secs (0.001u,0.s) Chars 5365 - 5605 [Lemma~inv_append_eutt~:~~~fora...] 0. secs (0.u,0.s) Chars 5606 - 5612 [Proof.] 0. secs (0.u,0.s) -Chars 5615 - 5622 [(intros).] 0. secs (0.u,0.s) +Chars 5615 - 5622 [intros.] 0. secs (0.u,0.s) Chars 5623 - 5649 [generalize~dependent~log2.] 0. secs (0.u,0.s) -Chars 5650 - 5673 [(induction~log1;~intros).] 0. secs (0.u,0.s) +Chars 5650 - 5673 [induction~log1;~intros.] 0. secs (0.u,0.s) Chars 5676 - 5677 [-] 0. secs (0.u,0.s) -Chars 5678 - 5692 [(destruct~log2).] 0. secs (0.u,0.s) +Chars 5678 - 5692 [destruct~log2.] 0. secs (0.u,0.s) Chars 5697 - 5698 [+] 0. secs (0.u,0.s) -Chars 5699 - 5711 [(split;~auto).] 0. secs (0.u,0.s) -Chars 5712 - 5721 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 5722 - 5729 [sinv~H.] 0.004 secs (0.003u,0.s) +Chars 5699 - 5711 [split;~auto.] 0. secs (0.u,0.s) +Chars 5712 - 5721 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 5722 - 5729 [sinv~H.] 0.002 secs (0.002u,0.s) Chars 5735 - 5736 [+] 0. secs (0.u,0.s) -Chars 5737 - 5744 [sinv~H.] 0.003 secs (0.003u,0.s) +Chars 5737 - 5744 [sinv~H.] 0.002 secs (0.002u,0.s) Chars 5747 - 5748 [-] 0. secs (0.u,0.s) -Chars 5749 - 5763 [(destruct~log2).] 0. secs (0.u,0.s) +Chars 5749 - 5763 [destruct~log2.] 0. secs (0.u,0.s) Chars 5768 - 5769 [+] 0. secs (0.u,0.s) -Chars 5770 - 5777 [sinv~H.] 0.006 secs (0.006u,0.s) +Chars 5770 - 5777 [sinv~H.] 0.003 secs (0.003u,0.s) Chars 5782 - 5783 [+] 0. secs (0.u,0.s) -Chars 5784 - 5793 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 5794 - 5813 [(unfold~append~in~H).] 0. secs (0.u,0.s) -Chars 5814 - 5821 [sinv~H.] 0.01 secs (0.009u,0.s) -Chars 5822 - 5831 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5832 - 5845 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 5852 - 5884 [(enough~(log1~=~log2~/\~r1~=~r...] 0. secs (0.u,0.s) +Chars 5784 - 5793 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 5794 - 5813 [unfold~append~in~H.] 0. secs (0.u,0.s) +Chars 5814 - 5821 [sinv~H.] 0.006 secs (0.006u,0.s) +Chars 5822 - 5831 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5832 - 5845 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 5852 - 5884 [enough~(log1~=~log2~/\~r1~=~r2).] 0. secs (0.u,0.s) Chars 5891 - 5892 [{] 0. secs (0.u,0.s) -Chars 5893 - 5904 [(destruct~H).] 0. secs (0.u,0.s) +Chars 5893 - 5904 [destruct~H.] 0. secs (0.u,0.s) Chars 5905 - 5911 [subst.] 0. secs (0.u,0.s) Chars 5912 - 5917 [auto.] 0. secs (0.u,0.s) Chars 5918 - 5919 [}] 0. secs (0.u,0.s) -Chars 5926 - 5939 [(apply~IHlog1).] 0. secs (0.u,0.s) -Chars 5940 - 5950 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5951 - 5960 [(apply~tt).] 0. secs (0.u,0.s) -Chars 5961 - 5965 [Qed.] 0.021 secs (0.02u,0.s) -Chars 5967 - 6255 [Lemma~trace_refine_proper_left...] 0.001 secs (0.001u,0.s) +Chars 5926 - 5939 [apply~IHlog1.] 0. secs (0.u,0.s) +Chars 5940 - 5950 [apply~REL.] 0. secs (0.u,0.s) +Chars 5951 - 5960 [apply~tt.] 0. secs (0.u,0.s) +Chars 5961 - 5965 [Qed.] 0.014 secs (0.014u,0.s) +Chars 5967 - 6255 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) Chars 6256 - 6262 [Proof.] 0. secs (0.u,0.s) -Chars 6265 - 6276 [(intros~E~R).] 0. secs (0.u,0.s) +Chars 6265 - 6276 [intros~E~R.] 0. secs (0.u,0.s) Chars 6277 - 6296 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6297 - 6304 [(intros).] 0. secs (0.u,0.s) +Chars 6297 - 6304 [intros.] 0. secs (0.u,0.s) Chars 6308 - 6319 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6320 - 6337 [(repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 6320 - 6337 [repeat~red~in~H0.] 0. secs (0.u,0.s) Chars 6338 - 6348 [step~in~H.] 0. secs (0.u,0.s) -Chars 6351 - 6364 [(genobs~t~ot3).] 0. secs (0.u,0.s) +Chars 6351 - 6364 [genobs~t~ot3.] 0. secs (0.u,0.s) Chars 6365 - 6378 [clear~Heqot3.] 0. secs (0.u,0.s) -Chars 6382 - 6428 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) +Chars 6382 - 6428 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) Chars 6431 - 6432 [-] 0. secs (0.u,0.s) -Chars 6433 - 6459 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 6460 - 6512 [(hinduction~H0~before~CIH;~int...] 0.022 secs (0.022u,0.s) +Chars 6433 - 6459 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) +Chars 6460 - 6512 [hinduction~H0~before~CIH;~intr...] 0.015 secs (0.015u,0.s) Chars 6519 - 6520 [+] 0. secs (0.u,0.s) Chars 6521 - 6533 [constructor.] 0. secs (0.u,0.s) Chars 6534 - 6539 [auto.] 0. secs (0.u,0.s) Chars 6544 - 6545 [+] 0. secs (0.u,0.s) Chars 6546 - 6558 [constructor.] 0. secs (0.u,0.s) -Chars 6559 - 6581 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 6559 - 6581 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) Chars 6637 - 6638 [-] 0. secs (0.u,0.s) -Chars 6640 - 6712 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) +Chars 6640 - 6712 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) Chars 6718 - 6719 [{] 0. secs (0.u,0.s) -Chars 6720 - 6767 [(destruct~ot3;~eauto;~right;~r...] 0.007 secs (0.007u,0.s) +Chars 6720 - 6767 [destruct~ot3;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) Chars 6768 - 6769 [}] 0. secs (0.u,0.s) -Chars 6775 - 6801 [(destruct~DEC~as~[EQ|~EQ]).] 0. secs (0.u,0.s) +Chars 6775 - 6801 [destruct~DEC~as~[EQ|~EQ].] 0. secs (0.u,0.s) Chars 6807 - 6808 [+] 0. secs (0.u,0.s) -Chars 6809 - 6838 [(destruct~EQ~as~[m3~?];~subst).] 0. secs (0.u,0.s) +Chars 6809 - 6838 [destruct~EQ~as~[m3~?];~subst.] 0. secs (0.u,0.s) Chars 6846 - 6858 [constructor.] 0. secs (0.u,0.s) -Chars 6859 - 6877 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 6885 - 6904 [(apply~rutt_inv_Tau).] 0. secs (0.u,0.s) -Chars 6905 - 6914 [now~step.] 0.001 secs (0.001u,0.s) +Chars 6859 - 6877 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6885 - 6904 [apply~rutt_inv_Tau.] 0. secs (0.u,0.s) +Chars 6905 - 6914 [now~step.] 0. secs (0.u,0.s) Chars 6921 - 6922 [+] 0. secs (0.u,0.s) -Chars 6923 - 6969 [(inv~H0;~try~(exfalso;~eapply~...] 0.04 secs (0.039u,0.s) +Chars 6923 - 6969 [inv~H0;~try~(exfalso;~eapply~E...] 0.026 secs (0.025u,0.s) Chars 6977 - 6989 [constructor.] 0. secs (0.u,0.s) Chars 6997 - 7009 [step~in~REL.] 0. secs (0.u,0.s) -Chars 7018 - 7097 [(hinduction~H1~before~CIH;~int...] 0.004 secs (0.004u,0.s) +Chars 7018 - 7097 [hinduction~H1~before~CIH;~intr...] 0.002 secs (0.002u,0.s) Chars 7105 - 7106 [*] 0. secs (0.u,0.s) -Chars 7107 - 7145 [(dependent~induction~REL;~rewr...] 0.055 secs (0.054u,0.s) +Chars 7107 - 7145 [dependent~induction~REL;~rewri...] 0.035 secs (0.034u,0.s) Chars 7155 - 7157 [++] 0. secs (0.u,0.s) Chars 7158 - 7170 [constructor.] 0. secs (0.u,0.s) Chars 7171 - 7176 [auto.] 0. secs (0.u,0.s) Chars 7186 - 7188 [++] 0. secs (0.u,0.s) Chars 7189 - 7201 [constructor.] 0. secs (0.u,0.s) -Chars 7202 - 7222 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7202 - 7222 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) Chars 7230 - 7231 [*] 0. secs (0.u,0.s) -Chars 7232 - 7270 [(dependent~induction~REL;~rewr...] 0.078 secs (0.077u,0.001s) +Chars 7232 - 7270 [dependent~induction~REL;~rewri...] 0.05 secs (0.05u,0.s) Chars 7280 - 7282 [++] 0. secs (0.u,0.s) -Chars 7283 - 7301 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 7302 - 7309 [(intros).] 0. secs (0.u,0.s) -Chars 7310 - 7325 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 7339 - 7350 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7351 - 7361 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7283 - 7301 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 7302 - 7309 [intros.] 0. secs (0.u,0.s) +Chars 7310 - 7325 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 7339 - 7350 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7351 - 7361 [apply~REL.] 0. secs (0.u,0.s) Chars 7362 - 7373 [assumption.] 0. secs (0.u,0.s) Chars 7384 - 7386 [++] 0. secs (0.u,0.s) Chars 7387 - 7399 [constructor.] 0. secs (0.u,0.s) -Chars 7400 - 7420 [(eapply~IHREL;~eauto).] 0.005 secs (0.005u,0.s) +Chars 7400 - 7420 [eapply~IHREL;~eauto.] 0.004 secs (0.004u,0.s) Chars 7428 - 7429 [*] 0. secs (0.u,0.s) -Chars 7430 - 7452 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 7430 - 7452 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) Chars 7453 - 7467 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 7477 - 7540 [(dependent~induction~REL;~try~...] 0.063 secs (0.061u,0.001s) +Chars 7477 - 7540 [dependent~induction~REL;~try~(...] 0.043 secs (0.042u,0.s) Chars 7550 - 7552 [++] 0. secs (0.u,0.s) -Chars 7553 - 7566 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7567 - 7585 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 7586 - 7597 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 7553 - 7566 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7567 - 7585 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7586 - 7597 [now~unstep.] 0.003 secs (0.003u,0.s) Chars 7608 - 7610 [++] 0. secs (0.u,0.s) Chars 7611 - 7616 [auto.] 0. secs (0.u,0.s) Chars 7626 - 7628 [++] 0. secs (0.u,0.s) -Chars 7629 - 7642 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 7643 - 7661 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 7662 - 7682 [(eapply~IHREL;~eauto).] 0.003 secs (0.003u,0.s) +Chars 7629 - 7642 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 7643 - 7661 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7662 - 7682 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) Chars 7685 - 7686 [-] 0. secs (0.u,0.s) -Chars 7687 - 7715 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 7720 - 7783 [(hinduction~H0~before~CIH;~int...] 0.019 secs (0.019u,0.s) +Chars 7687 - 7715 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) +Chars 7720 - 7783 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.012u,0.s) Chars 7788 - 7789 [+] 0. secs (0.u,0.s) -Chars 7790 - 7808 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 7809 - 7816 [(intros).] 0. secs (0.u,0.s) -Chars 7817 - 7832 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 7839 - 7850 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7851 - 7861 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7790 - 7808 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 7809 - 7816 [intros.] 0. secs (0.u,0.s) +Chars 7817 - 7832 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 7839 - 7850 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7851 - 7861 [apply~REL.] 0. secs (0.u,0.s) Chars 7862 - 7873 [assumption.] 0. secs (0.u,0.s) Chars 7879 - 7880 [+] 0. secs (0.u,0.s) Chars 7881 - 7893 [constructor.] 0. secs (0.u,0.s) -Chars 7894 - 7916 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 7894 - 7916 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) Chars 7919 - 7920 [-] 0. secs (0.u,0.s) -Chars 7921 - 7943 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 7944 - 7971 [(remember~(TauF~t1)~as~otf1).] 0.001 secs (0.001u,0.s) -Chars 7976 - 8047 [(hinduction~H0~before~CIH;~int...] 0.02 secs (0.019u,0.s) +Chars 7921 - 7943 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 7944 - 7971 [remember~(TauF~t1)~as~otf1.] 0.001 secs (0.001u,0.s) +Chars 7976 - 8047 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.013u,0.s) Chars 8052 - 8053 [+] 0. secs (0.u,0.s) Chars 8054 - 8066 [constructor.] 0. secs (0.u,0.s) -Chars 8067 - 8078 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 8067 - 8078 [now~unstep.] 0. secs (0.u,0.s) Chars 8084 - 8085 [+] 0. secs (0.u,0.s) Chars 8086 - 8098 [constructor.] 0. secs (0.u,0.s) -Chars 8099 - 8121 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8099 - 8121 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) Chars 8124 - 8125 [-] 0. secs (0.u,0.s) Chars 8126 - 8138 [constructor.] 0. secs (0.u,0.s) -Chars 8139 - 8161 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 8162 - 8166 [Qed.] 0.185 secs (0.18u,0.004s) +Chars 8139 - 8161 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 8162 - 8166 [Qed.] 0.123 secs (0.123u,0.s) Chars 8168 - 8461 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) Chars 8462 - 8468 [Proof.] 0. secs (0.u,0.s) -Chars 8471 - 8482 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 8483 - 8502 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8503 - 8510 [(intros).] 0. secs (0.u,0.s) +Chars 8471 - 8482 [intros~E~R.] 0. secs (0.u,0.s) +Chars 8483 - 8502 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 8503 - 8510 [intros.] 0. secs (0.u,0.s) Chars 8511 - 8521 [step~in~H.] 0. secs (0.u,0.s) Chars 8525 - 8536 [step~in~H0.] 0. secs (0.u,0.s) -Chars 8537 - 8554 [(repeat~red~in~H0).] 0. secs (0.u,0.s) -Chars 8558 - 8578 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) -Chars 8581 - 8637 [(hinduction~H~before~CIH;~intr...] 0.004 secs (0.004u,0.s) +Chars 8537 - 8554 [repeat~red~in~H0.] 0. secs (0.u,0.s) +Chars 8558 - 8578 [genobs_clear~t2~ot2.] 0. secs (0.u,0.s) +Chars 8581 - 8637 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) Chars 8640 - 8641 [-] 0. secs (0.u,0.s) -Chars 8642 - 8668 [(remember~(RetF~r2)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 8669 - 8731 [(hinduction~H0~before~CIH;~int...] 0.023 secs (0.022u,0.s) +Chars 8642 - 8668 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) +Chars 8669 - 8731 [hinduction~H0~before~CIH;~intr...] 0.015 secs (0.015u,0.s) Chars 8736 - 8737 [+] 0. secs (0.u,0.s) -Chars 8738 - 8756 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8738 - 8756 [constructor;~auto.] 0. secs (0.u,0.s) Chars 8761 - 8762 [+] 0. secs (0.u,0.s) Chars 8763 - 8775 [constructor.] 0. secs (0.u,0.s) Chars 8776 - 8782 [eauto.] 0. secs (0.u,0.s) Chars 8785 - 8786 [-] 0. secs (0.u,0.s) -Chars 8787 - 8814 [(remember~(TauF~m1)~as~otm1).] 0.001 secs (0.001u,0.s) -Chars 8819 - 8878 [(hinduction~H0~before~CIH;~int...] 0.021 secs (0.02u,0.s) +Chars 8787 - 8814 [remember~(TauF~m1)~as~otm1.] 0. secs (0.u,0.s) +Chars 8819 - 8878 [hinduction~H0~before~CIH;~intr...] 0.014 secs (0.014u,0.s) Chars 8883 - 8884 [+] 0. secs (0.u,0.s) Chars 8885 - 8897 [constructor.] 0. secs (0.u,0.s) -Chars 8898 - 8916 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 8898 - 8916 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 8921 - 8922 [+] 0. secs (0.u,0.s) Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) -Chars 8936 - 8954 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 8961 - 8982 [(apply~rutt_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 8983 - 8992 [now~step.] 0.001 secs (0.001u,0.s) +Chars 8936 - 8954 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 8961 - 8982 [apply~rutt_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 8983 - 8992 [now~step.] 0. secs (0.u,0.s) Chars 8998 - 8999 [+] 0. secs (0.u,0.s) Chars 9000 - 9012 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9020 - 9051 [(dependent~induction~REL;~subst).] 0.044 secs (0.043u,0.s) +Chars 9020 - 9051 [dependent~induction~REL;~subst.] 0.029 secs (0.029u,0.s) Chars 9058 - 9059 [*] 0. secs (0.u,0.s) Chars 9060 - 9072 [constructor.] 0. secs (0.u,0.s) Chars 9073 - 9087 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9096 - 9155 [(hinduction~H0~before~CIH;~int...] 0.012 secs (0.012u,0.s) +Chars 9096 - 9155 [hinduction~H0~before~CIH;~intr...] 0.011 secs (0.01u,0.s) Chars 9164 - 9166 [++] 0. secs (0.u,0.s) -Chars 9167 - 9180 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9167 - 9180 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 9181 - 9193 [constructor.] 0. secs (0.u,0.s) Chars 9194 - 9199 [auto.] 0. secs (0.u,0.s) Chars 9208 - 9210 [++] 0. secs (0.u,0.s) Chars 9211 - 9223 [constructor.] 0. secs (0.u,0.s) Chars 9224 - 9229 [auto.] 0. secs (0.u,0.s) Chars 9236 - 9237 [*] 0. secs (0.u,0.s) -Chars 9238 - 9253 [(eapply~IHruttF).] 0. secs (0.u,0.s) -Chars 9254 - 9274 [2:~(symmetry;~eauto).] 0. secs (0.u,0.s) +Chars 9238 - 9253 [eapply~IHruttF.] 0. secs (0.u,0.s) +Chars 9254 - 9274 [2:~symmetry;~eauto.] 0. secs (0.u,0.s) Chars 9283 - 9288 [step.] 0.001 secs (0.001u,0.s) -Chars 9289 - 9302 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9303 - 9321 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 9289 - 9302 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9303 - 9321 [constructor;~auto.] 0. secs (0.u,0.s) Chars 9330 - 9346 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 9354 - 9355 [*] 0. secs (0.u,0.s) Chars 9356 - 9368 [constructor.] 0. secs (0.u,0.s) -Chars 9369 - 9382 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 9369 - 9382 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 9391 - 9405 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9406 - 9465 [(hinduction~H0~before~CIH;~int...] 0.019 secs (0.018u,0.s) +Chars 9406 - 9465 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) Chars 9474 - 9476 [++] 0. secs (0.u,0.s) -Chars 9477 - 9495 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 9496 - 9503 [(intros).] 0. secs (0.u,0.s) -Chars 9504 - 9519 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 9530 - 9541 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9542 - 9552 [(apply~REL).] 0. secs (0.u,0.s) +Chars 9477 - 9495 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9496 - 9503 [intros.] 0. secs (0.u,0.s) +Chars 9504 - 9519 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 9530 - 9541 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9542 - 9552 [apply~REL.] 0. secs (0.u,0.s) Chars 9553 - 9564 [assumption.] 0. secs (0.u,0.s) Chars 9574 - 9576 [++] 0. secs (0.u,0.s) Chars 9577 - 9589 [constructor.] 0. secs (0.u,0.s) -Chars 9590 - 9612 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 9590 - 9612 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) Chars 9619 - 9620 [*] 0. secs (0.u,0.s) Chars 9621 - 9635 [unstep~in~REL.] 0. secs (0.u,0.s) -Chars 9636 - 9658 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 9636 - 9658 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) Chars 9665 - 9666 [*] 0. secs (0.u,0.s) Chars 9667 - 9679 [constructor.] 0. secs (0.u,0.s) -Chars 9680 - 9693 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 9694 - 9714 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) +Chars 9680 - 9693 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 9694 - 9714 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) Chars 9717 - 9718 [-] 0. secs (0.u,0.s) -Chars 9719 - 9747 [(remember~(VisF~e~k1)~as~ot1).] 0.001 secs (0.001u,0.s) -Chars 9748 - 9793 [(hinduction~H0~before~CIH;~int...] 0.028 secs (0.028u,0.s) +Chars 9719 - 9747 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) +Chars 9748 - 9793 [hinduction~H0~before~CIH;~intr...] 0.019 secs (0.019u,0.s) Chars 9798 - 9799 [+] 0. secs (0.u,0.s) -Chars 9800 - 9813 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 9814 - 9832 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 9833 - 9840 [(intros).] 0. secs (0.u,0.s) -Chars 9841 - 9856 [(apply~H0~in~H1).] 0. secs (0.u,0.s) -Chars 9863 - 9874 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 9875 - 9885 [(apply~REL).] 0. secs (0.u,0.s) +Chars 9800 - 9813 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 9814 - 9832 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9833 - 9840 [intros.] 0. secs (0.u,0.s) +Chars 9841 - 9856 [apply~H0~in~H1.] 0. secs (0.u,0.s) +Chars 9863 - 9874 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9875 - 9885 [apply~REL.] 0. secs (0.u,0.s) Chars 9886 - 9897 [assumption.] 0. secs (0.u,0.s) Chars 9903 - 9904 [+] 0. secs (0.u,0.s) Chars 9905 - 9917 [constructor.] 0. secs (0.u,0.s) Chars 9918 - 9924 [eauto.] 0. secs (0.u,0.s) Chars 9927 - 9928 [-] 0. secs (0.u,0.s) -Chars 9929 - 9951 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 9952 - 9979 [(remember~(TauF~t0)~as~otf0).] 0.001 secs (0.001u,0.s) -Chars 9984 - 10055 [(hinduction~H0~before~CIH;~int...] 0.016 secs (0.016u,0.s) +Chars 9929 - 9951 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 9952 - 9979 [remember~(TauF~t0)~as~otf0.] 0.001 secs (0.001u,0.s) +Chars 9984 - 10055 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) Chars 10060 - 10061 [+] 0. secs (0.u,0.s) Chars 10062 - 10074 [constructor.] 0. secs (0.u,0.s) -Chars 10075 - 10086 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 10075 - 10086 [now~unstep.] 0. secs (0.u,0.s) Chars 10092 - 10093 [+] 0. secs (0.u,0.s) Chars 10094 - 10106 [constructor.] 0. secs (0.u,0.s) -Chars 10107 - 10129 [(eapply~IHruttF;~eauto).] 0. secs (0.u,0.s) +Chars 10107 - 10129 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) Chars 10132 - 10133 [-] 0. secs (0.u,0.s) Chars 10134 - 10146 [constructor.] 0. secs (0.u,0.s) -Chars 10147 - 10169 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 10170 - 10174 [Qed.] 0.096 secs (0.094u,0.001s) +Chars 10147 - 10169 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 10170 - 10174 [Qed.] 0.064 secs (0.064u,0.s) Chars 10176 - 10280 [#[global]~Instance~trace_refin...] 0. secs (0.u,0.s) Chars 10281 - 10287 [Proof.] 0. secs (0.u,0.s) -Chars 10290 - 10323 [(intros~b1~b2~Heuttb~t1~t2~Heu...] 0. secs (0.u,0.s) -Chars 10326 - 10436 [(split;~intros;~~~try~~~~(eapp...] 0.006 secs (0.006u,0.s) -Chars 10441 - 10468 [now~rewrite~Heuttb,~Heuttt.] 0.02 secs (0.02u,0.s) -Chars 10469 - 10473 [Qed.] 0.003 secs (0.003u,0.s) +Chars 10290 - 10323 [intros~b1~b2~Heuttb~t1~t2~Heuttt.] 0. secs (0.u,0.s) +Chars 10326 - 10436 [split;~intros;~~try~~~(eapply~...] 0.002 secs (0.002u,0.s) +Chars 10441 - 10468 [now~rewrite~Heuttb,~Heuttt.] 0.014 secs (0.014u,0.s) +Chars 10469 - 10473 [Qed.] 0.002 secs (0.002u,0.s) Chars 10475 - 10584 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) Chars 10585 - 10591 [Proof.] 0. secs (0.u,0.s) -Chars 10594 - 10601 [(intros).] 0. secs (0.u,0.s) -Chars 10602 - 10607 [step.] 0.001 secs (0.001u,0.s) +Chars 10594 - 10601 [intros.] 0. secs (0.u,0.s) +Chars 10602 - 10607 [step.] 0. secs (0.u,0.s) Chars 10608 - 10620 [constructor.] 0. secs (0.u,0.s) Chars 10621 - 10626 [auto.] 0. secs (0.u,0.s) Chars 10627 - 10631 [Qed.] 0.001 secs (0.001u,0.s) Chars 10633 - 10790 [Lemma~trace_refine_ret_inv_r~:...] 0. secs (0.u,0.s) Chars 10791 - 10797 [Proof.] 0. secs (0.u,0.s) -Chars 10800 - 10807 [(intros).] 0. secs (0.u,0.s) +Chars 10800 - 10807 [intros.] 0. secs (0.u,0.s) Chars 10808 - 10813 [step.] 0.001 secs (0.001u,0.s) Chars 10814 - 10824 [step~in~H.] 0. secs (0.u,0.s) -Chars 10825 - 10841 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 10845 - 10874 [(dependent~induction~H;~subst).] 0.032 secs (0.032u,0.s) +Chars 10825 - 10841 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 10845 - 10874 [dependent~induction~H;~subst.] 0.024 secs (0.023u,0.s) Chars 10877 - 10878 [-] 0. secs (0.u,0.s) -Chars 10879 - 10892 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 10879 - 10892 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 10893 - 10905 [constructor.] 0. secs (0.u,0.s) Chars 10906 - 10911 [auto.] 0. secs (0.u,0.s) Chars 10914 - 10915 [-] 0. secs (0.u,0.s) -Chars 10916 - 10929 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 10930 - 10948 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 10949 - 10953 [Qed.] 0.026 secs (0.026u,0.s) +Chars 10916 - 10929 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 10930 - 10948 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 10949 - 10953 [Qed.] 0.018 secs (0.018u,0.s) Chars 10955 - 11121 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) Chars 11122 - 11128 [Proof.] 0. secs (0.u,0.s) -Chars 11131 - 11138 [(intros).] 0. secs (0.u,0.s) -Chars 11139 - 11144 [step.] 0.002 secs (0.001u,0.s) +Chars 11131 - 11138 [intros.] 0. secs (0.u,0.s) +Chars 11139 - 11144 [step.] 0.001 secs (0.001u,0.s) Chars 11145 - 11155 [step~in~H.] 0. secs (0.u,0.s) -Chars 11156 - 11172 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11175 - 11204 [(dependent~induction~H;~subst).] 0.034 secs (0.033u,0.s) +Chars 11156 - 11172 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 11175 - 11204 [dependent~induction~H;~subst.] 0.024 secs (0.024u,0.s) Chars 11207 - 11208 [-] 0. secs (0.u,0.s) -Chars 11209 - 11222 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 11209 - 11222 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 11223 - 11235 [constructor.] 0. secs (0.u,0.s) Chars 11236 - 11241 [auto.] 0. secs (0.u,0.s) Chars 11244 - 11245 [-] 0. secs (0.u,0.s) -Chars 11246 - 11259 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 11260 - 11278 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 11279 - 11283 [Qed.] 0.027 secs (0.027u,0.s) +Chars 11246 - 11259 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 11260 - 11278 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 11279 - 11283 [Qed.] 0.019 secs (0.019u,0.s) Chars 11285 - 11525 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) Chars 11526 - 11532 [Proof.] 0. secs (0.u,0.s) -Chars 11535 - 11552 [(intros~E~R~A~e~a).] 0. secs (0.u,0.s) -Chars 11553 - 11560 [(intros).] 0. secs (0.u,0.s) -Chars 11563 - 11572 [(red~in~H).] 0. secs (0.u,0.s) -Chars 11573 - 11577 [(red).] 0. secs (0.u,0.s) +Chars 11535 - 11552 [intros~E~R~A~e~a.] 0. secs (0.u,0.s) +Chars 11553 - 11560 [intros.] 0. secs (0.u,0.s) +Chars 11563 - 11572 [red~in~H.] 0. secs (0.u,0.s) +Chars 11573 - 11577 [red.] 0. secs (0.u,0.s) Chars 11578 - 11588 [step~in~H.] 0. secs (0.u,0.s) -Chars 11589 - 11605 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 11606 - 11612 [(inv~H).] 0.012 secs (0.011u,0.s) -Chars 11613 - 11626 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 11589 - 11605 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 11606 - 11612 [inv~H.] 0.008 secs (0.008u,0.s) +Chars 11613 - 11626 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 11629 - 11635 [subst.] 0. secs (0.u,0.s) -Chars 11638 - 11703 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) -Chars 11704 - 11708 [Qed.] 0.008 secs (0.007u,0.s) +Chars 11638 - 11703 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) +Chars 11704 - 11708 [Qed.] 0.005 secs (0.005u,0.s) Chars 11710 - 11924 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) Chars 11925 - 11931 [Proof.] 0. secs (0.u,0.s) -Chars 11934 - 11941 [(intros).] 0. secs (0.u,0.s) +Chars 11934 - 11941 [intros.] 0. secs (0.u,0.s) Chars 11942 - 11947 [step.] 0. secs (0.u,0.s) -Chars 11948 - 11978 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 11981 - 11988 [(intros).] 0. secs (0.u,0.s) -Chars 11989 - 11996 [(inv~H0).] 0.006 secs (0.006u,0.s) -Chars 11997 - 12010 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 11948 - 11978 [constructor;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 11981 - 11988 [intros.] 0. secs (0.u,0.s) +Chars 11989 - 11996 [inv~H0.] 0.005 secs (0.005u,0.s) +Chars 11997 - 12010 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 12013 - 12019 [subst.] 0. secs (0.u,0.s) Chars 12020 - 12025 [auto.] 0. secs (0.u,0.s) -Chars 12026 - 12030 [Qed.] 0.006 secs (0.006u,0.s) +Chars 12026 - 12030 [Qed.] 0.004 secs (0.004u,0.s) Chars 12032 - 12167 [Lemma~event_ans_constr~:~~~for...] 0. secs (0.u,0.s) Chars 12168 - 12174 [Proof.] 0. secs (0.u,0.s) -Chars 12177 - 12184 [(intros).] 0. secs (0.u,0.s) -Chars 12187 - 12239 [(destruct~(classic_empty~R)~as...] 0. secs (0.u,0.s) +Chars 12177 - 12184 [intros.] 0. secs (0.u,0.s) +Chars 12187 - 12239 [destruct~(classic_empty~R)~as~...] 0. secs (0.u,0.s) Chars 12242 - 12243 [-] 0. secs (0.u,0.s) Chars 12244 - 12256 [exists~unit.] 0. secs (0.u,0.s) Chars 12257 - 12278 [exists~(evans~R~e~a).] 0. secs (0.u,0.s) @@ -553,681 +553,681 @@ Chars 12428 - 12448 [Section~Determinize.] 0. secs (0.u,0.s) Chars 12450 - 12507 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) Chars 12509 - 12594 [CoFixpoint~determinize_~(E~:~T...] 0. secs (0.u,0.s) Chars 12595 - 12601 [Proof.] 0. secs (0.u,0.s) -Chars 12604 - 12616 [(destruct~ot).] 0. secs (0.u,0.s) +Chars 12604 - 12616 [destruct~ot.] 0. secs (0.u,0.s) Chars 12619 - 12620 [-] 0. secs (0.u,0.s) -Chars 12621 - 12635 [(apply~(Ret~r)).] 0. secs (0.u,0.s) +Chars 12621 - 12635 [apply~(Ret~r).] 0. secs (0.u,0.s) Chars 12638 - 12639 [-] 0. secs (0.u,0.s) -Chars 12640 - 12685 [(apply~(Tau~(determinize_~E~R~...] 0. secs (0.u,0.s) +Chars 12640 - 12685 [apply~(Tau~(determinize_~E~R~(...] 0. secs (0.u,0.s) Chars 12688 - 12689 [-] 0. secs (0.u,0.s) -Chars 12690 - 12722 [(destruct~(classicT~X)~as~[|~f]).] 0. secs (0.u,0.s) +Chars 12690 - 12722 [destruct~(classicT~X)~as~[|~f].] 0. secs (0.u,0.s) Chars 12727 - 12728 [+] 0. secs (0.u,0.s) -Chars 12729 - 12804 [(apply~(Vis~(evans~X~e~x)~(fun...] 0. secs (0.u,0.s) +Chars 12729 - 12804 [apply~(Vis~(evans~X~e~x)~(fun~...] 0. secs (0.u,0.s) Chars 12809 - 12810 [+] 0. secs (0.u,0.s) -Chars 12811 - 12921 [(apply~~~(Vis~(evempty~X~(fun~...] 0. secs (0.u,0.s) +Chars 12811 - 12921 [apply~~(Vis~(evempty~X~(fun~x~...] 0. secs (0.u,0.s) Chars 12922 - 12930 [Defined.] 0. secs (0.u,0.s) Chars 12932 - 13018 [Definition~determinize~{E}~{R}...] 0. secs (0.u,0.s) Chars 13020 - 13036 [End~Determinize.] 0. secs (0.u,0.s) Chars 13087 - 13204 [Lemma~itree_refine_nonempty~:~...] 0. secs (0.u,0.s) Chars 13205 - 13211 [Proof.] 0. secs (0.u,0.s) -Chars 13214 - 13221 [(intros).] 0. secs (0.u,0.s) -Chars 13222 - 13264 [(destruct~classicT_inhabited~a...] 0. secs (0.u,0.s) +Chars 13214 - 13221 [intros.] 0. secs (0.u,0.s) +Chars 13222 - 13264 [destruct~classicT_inhabited~as...] 0. secs (0.u,0.s) Chars 13267 - 13299 [exists~(determinize~classicT~t).] 0. secs (0.u,0.s) Chars 13300 - 13323 [generalize~dependent~t.] 0. secs (0.u,0.s) Chars 13326 - 13345 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13349 - 13356 [(intros).] 0. secs (0.u,0.s) -Chars 13357 - 13376 [(unfold~determinize).] 0. secs (0.u,0.s) -Chars 13377 - 13390 [(desobs~t~Hot).] 0. secs (0.u,0.s) +Chars 13349 - 13356 [intros.] 0. secs (0.u,0.s) +Chars 13357 - 13376 [unfold~determinize.] 0. secs (0.u,0.s) +Chars 13377 - 13390 [desobs~t~Hot.] 0. secs (0.u,0.s) Chars 13393 - 13394 [-] 0. secs (0.u,0.s) -Chars 13395 - 13399 [(cbn).] 0. secs (0.u,0.s) +Chars 13395 - 13399 [cbn.] 0. secs (0.u,0.s) Chars 13400 - 13405 [eret.] 0. secs (0.u,0.s) Chars 13408 - 13409 [-] 0. secs (0.u,0.s) -Chars 13410 - 13414 [(cbn).] 0. secs (0.u,0.s) +Chars 13410 - 13414 [cbn.] 0. secs (0.u,0.s) Chars 13415 - 13427 [constructor.] 0. secs (0.u,0.s) -Chars 13428 - 13438 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13428 - 13438 [apply~CIH.] 0. secs (0.u,0.s) Chars 13442 - 13443 [-] 0. secs (0.u,0.s) -Chars 13444 - 13459 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 13460 - 13464 [(cbn).] 0. secs (0.u,0.s) -Chars 13465 - 13487 [(destruct~(classicT~_)).] 0.001 secs (0.001u,0.s) +Chars 13444 - 13459 [unfold~observe.] 0. secs (0.u,0.s) +Chars 13460 - 13464 [cbn.] 0. secs (0.u,0.s) +Chars 13465 - 13487 [destruct~(classicT~_).] 0. secs (0.u,0.s) Chars 13492 - 13493 [+] 0. secs (0.u,0.s) -Chars 13494 - 13524 [(constructor;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 13525 - 13532 [(intros).] 0. secs (0.u,0.s) -Chars 13539 - 13551 [(inversion~H).] 0.002 secs (0.002u,0.s) +Chars 13494 - 13524 [constructor;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 13525 - 13532 [intros.] 0. secs (0.u,0.s) +Chars 13539 - 13551 [inversion~H.] 0.002 secs (0.002u,0.s) Chars 13552 - 13565 [ddestruction.] 0.004 secs (0.004u,0.s) Chars 13572 - 13578 [subst.] 0. secs (0.u,0.s) -Chars 13579 - 13589 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 13579 - 13589 [apply~CIH.] 0. secs (0.u,0.s) Chars 13594 - 13595 [+] 0. secs (0.u,0.s) -Chars 13596 - 13625 [(constructor;~auto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 13626 - 13633 [(intros).] 0. secs (0.u,0.s) +Chars 13596 - 13625 [constructor;~auto~with~itree.] 0.001 secs (0.u,0.s) +Chars 13626 - 13633 [intros.] 0. secs (0.u,0.s) Chars 13634 - 13648 [contradiction.] 0. secs (0.u,0.s) -Chars 13649 - 13653 [Qed.] 0.012 secs (0.012u,0.s) +Chars 13649 - 13653 [Qed.] 0.007 secs (0.007u,0.s) Chars 13655 - 14377 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) Chars 14378 - 14384 [Proof.] 0. secs (0.u,0.s) -Chars 14387 - 14394 [(intros).] 0. secs (0.u,0.s) -Chars 14397 - 14442 [(destruct~(classic_empty~A)~as...] 0. secs (0.u,0.s) +Chars 14387 - 14394 [intros.] 0. secs (0.u,0.s) +Chars 14397 - 14442 [destruct~(classic_empty~A)~as~...] 0. secs (0.u,0.s) Chars 14445 - 14446 [-] 0. secs (0.u,0.s) Chars 14447 - 14520 [specialize~trace_refine_vis_ad...] 0. secs (0.u,0.s) -Chars 14525 - 14557 [(assert~(exists~b,~b~⊑~k~a)).] 0. secs (0.u,0.s) +Chars 14525 - 14557 [assert~(exists~b,~b~⊑~k~a).] 0. secs (0.u,0.s) Chars 14562 - 14563 [{] 0. secs (0.u,0.s) -Chars 14564 - 14592 [(apply~itree_refine_nonempty).] 0. secs (0.u,0.s) +Chars 14564 - 14592 [apply~itree_refine_nonempty.] 0. secs (0.u,0.s) Chars 14593 - 14594 [}] 0. secs (0.u,0.s) -Chars 14599 - 14621 [(destruct~H~as~[b~Hbk]).] 0. secs (0.u,0.s) -Chars 14622 - 14670 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 14675 - 14697 [(rewrite~<-~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) -Chars 14702 - 14726 [(apply~H0~in~Hbk~as~Hbk0).] 0. secs (0.u,0.s) -Chars 14731 - 14750 [(rewrite~Ht1~in~Hbk).] 0.003 secs (0.003u,0.s) -Chars 14751 - 14771 [(rewrite~Ht2~in~Hbk0).] 0.003 secs (0.003u,0.s) -Chars 14776 - 14785 [sinv~Hbk.] 0.017 secs (0.016u,0.s) -Chars 14790 - 14800 [sinv~Hbk0.] 0.023 secs (0.023u,0.s) -Chars 14801 - 14814 [ddestruction.] 0.008 secs (0.008u,0.s) +Chars 14599 - 14621 [destruct~H~as~[b~Hbk].] 0. secs (0.u,0.s) +Chars 14622 - 14670 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) +Chars 14675 - 14697 [rewrite~<-~Ht1~in~Hbk.] 0.002 secs (0.002u,0.s) +Chars 14702 - 14726 [apply~H0~in~Hbk~as~Hbk0.] 0. secs (0.u,0.s) +Chars 14731 - 14750 [rewrite~Ht1~in~Hbk.] 0.002 secs (0.002u,0.s) +Chars 14751 - 14771 [rewrite~Ht2~in~Hbk0.] 0.002 secs (0.002u,0.s) +Chars 14776 - 14785 [sinv~Hbk.] 0.012 secs (0.012u,0.s) +Chars 14790 - 14800 [sinv~Hbk0.] 0.017 secs (0.017u,0.s) +Chars 14801 - 14814 [ddestruction.] 0.006 secs (0.006u,0.s) Chars 14819 - 14825 [subst.] 0. secs (0.u,0.s) -Chars 14830 - 14843 [(inversion~H8).] 0.002 secs (0.002u,0.s) -Chars 14844 - 14857 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 14830 - 14843 [inversion~H8.] 0.001 secs (0.001u,0.s) +Chars 14844 - 14857 [ddestruction.] 0.003 secs (0.003u,0.s) Chars 14862 - 14868 [subst.] 0. secs (0.u,0.s) Chars 14869 - 14881 [constructor.] 0. secs (0.u,0.s) -Chars 14886 - 14893 [(intros).] 0. secs (0.u,0.s) -Chars 14894 - 14912 [(eapply~CIH;~eauto).] 0.001 secs (0.001u,0.s) -Chars 14917 - 14924 [(intros).] 0. secs (0.u,0.s) -Chars 14925 - 14950 [setoid_rewrite~Ht1~in~H0.] 0.021 secs (0.021u,0.s) -Chars 14951 - 14976 [setoid_rewrite~Ht2~in~H0.] 0.064 secs (0.063u,0.s) -Chars 14981 - 14995 [(split;~intros).] 0. secs (0.u,0.s) +Chars 14886 - 14893 [intros.] 0. secs (0.u,0.s) +Chars 14894 - 14912 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 14917 - 14924 [intros.] 0. secs (0.u,0.s) +Chars 14925 - 14950 [setoid_rewrite~Ht1~in~H0.] 0.017 secs (0.016u,0.s) +Chars 14951 - 14976 [setoid_rewrite~Ht2~in~H0.] 0.043 secs (0.043u,0.s) +Chars 14981 - 14995 [split;~intros.] 0. secs (0.u,0.s) Chars 15000 - 15001 [+] 0. secs (0.u,0.s) -Chars 15002 - 15048 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 15049 - 15063 [(apply~H0~in~H).] 0. secs (0.u,0.s) -Chars 15070 - 15102 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) +Chars 15002 - 15048 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) +Chars 15049 - 15063 [apply~H0~in~H.] 0. secs (0.u,0.s) +Chars 15070 - 15102 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) Chars 15103 - 15108 [auto.] 0. secs (0.u,0.s) Chars 15113 - 15114 [+] 0. secs (0.u,0.s) -Chars 15115 - 15161 [(apply~trace_refine_vis_add~wi...] 0. secs (0.u,0.s) -Chars 15162 - 15176 [(apply~H0~in~H).] 0. secs (0.u,0.s) -Chars 15183 - 15215 [(apply~trace_refine_vis_inv~in...] 0. secs (0.u,0.s) +Chars 15115 - 15161 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) +Chars 15162 - 15176 [apply~H0~in~H.] 0. secs (0.u,0.s) +Chars 15183 - 15215 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) Chars 15216 - 15221 [auto.] 0. secs (0.u,0.s) Chars 15224 - 15225 [-] 0. secs (0.u,0.s) -Chars 15226 - 15289 [(set~(ke~:=~fun~v~:~void~=>~ma...] 0. secs (0.u,0.s) -Chars 15294 - 15329 [(set~(b~:=~Vis~(evempty~A~Ha~e...] 0. secs (0.u,0.s) -Chars 15334 - 15352 [(assert~(b~⊑~t1)).] 0. secs (0.u,0.s) +Chars 15226 - 15289 [set~(ke~:=~fun~v~:~void~=>~mat...] 0. secs (0.u,0.s) +Chars 15294 - 15329 [set~(b~:=~Vis~(evempty~A~Ha~e)...] 0. secs (0.u,0.s) +Chars 15334 - 15352 [assert~(b~⊑~t1).] 0. secs (0.u,0.s) Chars 15357 - 15358 [{] 0. secs (0.u,0.s) -Chars 15365 - 15374 [(unfold~b).] 0. secs (0.u,0.s) -Chars 15375 - 15387 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 15388 - 15393 [step.] 0.001 secs (0.001u,0.s) -Chars 15394 - 15398 [(cbn).] 0. secs (0.u,0.s) +Chars 15365 - 15374 [unfold~b.] 0. secs (0.u,0.s) +Chars 15375 - 15387 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 15388 - 15393 [step.] 0. secs (0.u,0.s) +Chars 15394 - 15398 [cbn.] 0.001 secs (0.001u,0.s) Chars 15405 - 15417 [constructor.] 0. secs (0.u,0.s) Chars 15418 - 15419 [{] 0. secs (0.u,0.s) -Chars 15420 - 15430 [(apply~ree).] 0. secs (0.u,0.s) +Chars 15420 - 15430 [apply~ree.] 0. secs (0.u,0.s) Chars 15431 - 15432 [}] 0. secs (0.u,0.s) Chars 15433 - 15434 [{] 0. secs (0.u,0.s) -Chars 15435 - 15445 [(intros~[]).] 0. secs (0.u,0.s) +Chars 15435 - 15445 [intros~[].] 0. secs (0.u,0.s) Chars 15446 - 15447 [}] 0. secs (0.u,0.s) Chars 15452 - 15453 [}] 0. secs (0.u,0.s) -Chars 15458 - 15478 [(apply~H0~in~H~as~H1).] 0. secs (0.u,0.s) -Chars 15479 - 15493 [(unfold~b~in~*).] 0. secs (0.u,0.s) +Chars 15458 - 15478 [apply~H0~in~H~as~H1.] 0. secs (0.u,0.s) +Chars 15479 - 15493 [unfold~b~in~*.] 0. secs (0.u,0.s) Chars 15494 - 15502 [clear~b.] 0. secs (0.u,0.s) -Chars 15507 - 15524 [(rewrite~Ht1~in~H).] 0.003 secs (0.003u,0.s) -Chars 15525 - 15543 [(rewrite~Ht2~in~H1).] 0.003 secs (0.003u,0.s) -Chars 15548 - 15555 [sinv~H.] 0.017 secs (0.016u,0.s) -Chars 15556 - 15564 [sinv~H1.] 0.022 secs (0.022u,0.s) -Chars 15565 - 15578 [ddestruction.] 0.008 secs (0.008u,0.s) +Chars 15507 - 15524 [rewrite~Ht1~in~H.] 0.002 secs (0.002u,0.s) +Chars 15525 - 15543 [rewrite~Ht2~in~H1.] 0.002 secs (0.002u,0.s) +Chars 15548 - 15555 [sinv~H.] 0.011 secs (0.011u,0.s) +Chars 15556 - 15564 [sinv~H1.] 0.015 secs (0.015u,0.s) +Chars 15565 - 15578 [ddestruction.] 0.007 secs (0.007u,0.s) Chars 15583 - 15589 [subst.] 0. secs (0.u,0.s) -Chars 15590 - 15603 [(inversion~H6).] 0.002 secs (0.002u,0.s) -Chars 15604 - 15617 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 15590 - 15603 [inversion~H6.] 0.001 secs (0.001u,0.s) +Chars 15604 - 15617 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 15622 - 15634 [constructor.] 0. secs (0.u,0.s) -Chars 15639 - 15646 [(intros).] 0. secs (0.u,0.s) -Chars 15647 - 15658 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 15663 - 15670 [(intros).] 0. secs (0.u,0.s) -Chars 15671 - 15696 [setoid_rewrite~Ht1~in~H0.] 0.022 secs (0.022u,0.s) -Chars 15697 - 15722 [setoid_rewrite~Ht2~in~H0.] 0.064 secs (0.063u,0.001s) -Chars 15727 - 15756 [(split;~intros;~contradiction).] 0. secs (0.u,0.s) -Chars 15757 - 15761 [Qed.] 0.052 secs (0.048u,0.003s) +Chars 15639 - 15646 [intros.] 0. secs (0.u,0.s) +Chars 15647 - 15658 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 15663 - 15670 [intros.] 0. secs (0.u,0.s) +Chars 15671 - 15696 [setoid_rewrite~Ht1~in~H0.] 0.016 secs (0.016u,0.s) +Chars 15697 - 15722 [setoid_rewrite~Ht2~in~H0.] 0.045 secs (0.045u,0.s) +Chars 15727 - 15756 [split;~intros;~contradiction.] 0. secs (0.u,0.s) +Chars 15757 - 15761 [Qed.] 0.037 secs (0.037u,0.s) Chars 15763 - 15992 [Lemma~trace_refine_vis~:~~~for...] 0. secs (0.u,0.s) Chars 15993 - 15999 [Proof.] 0. secs (0.u,0.s) -Chars 16002 - 16009 [(intros).] 0. secs (0.u,0.s) +Chars 16002 - 16009 [intros.] 0. secs (0.u,0.s) Chars 16010 - 16020 [step~in~H.] 0. secs (0.u,0.s) -Chars 16021 - 16037 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16041 - 16063 [dependent~induction~H.] 0.047 secs (0.046u,0.s) +Chars 16021 - 16037 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 16041 - 16063 [dependent~induction~H.] 0.031 secs (0.031u,0.s) Chars 16066 - 16067 [-] 0. secs (0.u,0.s) Chars 16068 - 16078 [exists~A0.] 0. secs (0.u,0.s) Chars 16079 - 16089 [exists~e1.] 0. secs (0.u,0.s) Chars 16090 - 16100 [exists~k1.] 0. secs (0.u,0.s) Chars 16105 - 16136 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16137 - 16156 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) -Chars 16161 - 16172 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) +Chars 16137 - 16156 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) +Chars 16161 - 16172 [rewrite~Hb.] 0.004 secs (0.003u,0.s) Chars 16173 - 16185 [reflexivity.] 0. secs (0.u,0.s) Chars 16188 - 16189 [-] 0. secs (0.u,0.s) -Chars 16190 - 16296 [(enough~~~(exists~(X~:~Type)~(...] 0. secs (0.u,0.s) +Chars 16190 - 16296 [enough~~(exists~(X~:~Type)~(e0...] 0. secs (0.u,0.s) Chars 16301 - 16302 [{] 0. secs (0.u,0.s) -Chars 16309 - 16345 [(destruct~H0~as~[X~[e0~[k0~Ht1...] 0. secs (0.u,0.s) +Chars 16309 - 16345 [destruct~H0~as~[X~[e0~[k0~Ht1]]].] 0. secs (0.u,0.s) Chars 16352 - 16361 [exists~X.] 0. secs (0.u,0.s) Chars 16362 - 16372 [exists~e0.] 0. secs (0.u,0.s) Chars 16373 - 16383 [exists~k0.] 0. secs (0.u,0.s) Chars 16390 - 16421 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16422 - 16441 [(rewrite~<-~x~in~Hb).] 0. secs (0.u,0.s) -Chars 16442 - 16453 [(rewrite~Hb).] 0.001 secs (0.001u,0.s) -Chars 16460 - 16477 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 16422 - 16441 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) +Chars 16442 - 16453 [rewrite~Hb.] 0.001 secs (0.001u,0.s) +Chars 16460 - 16477 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) Chars 16478 - 16483 [auto.] 0. secs (0.u,0.s) Chars 16488 - 16489 [}] 0. secs (0.u,0.s) -Chars 16494 - 16516 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 16517 - 16521 [Qed.] 0.036 secs (0.035u,0.s) +Chars 16494 - 16516 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 16517 - 16521 [Qed.] 0.026 secs (0.026u,0.s) Chars 16523 - 16769 [Lemma~trace_refine_vis_l~:~~~f...] 0. secs (0.u,0.s) Chars 16770 - 16776 [Proof.] 0. secs (0.u,0.s) -Chars 16779 - 16786 [(intros).] 0. secs (0.u,0.s) +Chars 16779 - 16786 [intros.] 0. secs (0.u,0.s) Chars 16787 - 16797 [step~in~H.] 0. secs (0.u,0.s) -Chars 16798 - 16814 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16818 - 16840 [dependent~induction~H.] 0.047 secs (0.046u,0.s) +Chars 16798 - 16814 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 16818 - 16840 [dependent~induction~H.] 0.028 secs (0.028u,0.s) Chars 16843 - 16844 [-] 0. secs (0.u,0.s) Chars 16845 - 16854 [exists~B.] 0. secs (0.u,0.s) Chars 16855 - 16865 [exists~e2.] 0. secs (0.u,0.s) Chars 16867 - 16877 [exists~k2.] 0. secs (0.u,0.s) Chars 16878 - 16909 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 16914 - 16933 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 16934 - 16945 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 16914 - 16933 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 16934 - 16945 [rewrite~Ht.] 0. secs (0.u,0.s) Chars 16946 - 16958 [reflexivity.] 0. secs (0.u,0.s) Chars 16961 - 16962 [-] 0. secs (0.u,0.s) -Chars 16963 - 16981 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) +Chars 16963 - 16981 [assert~(t2~≈~t).] 0. secs (0.u,0.s) Chars 16986 - 16987 [{] 0. secs (0.u,0.s) Chars 16994 - 17019 [specialize~(itree_eta~t).] 0. secs (0.u,0.s) -Chars 17020 - 17033 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 17034 - 17041 [(intros).] 0. secs (0.u,0.s) -Chars 17048 - 17059 [(rewrite~H0).] 0.001 secs (0.001u,0.s) -Chars 17060 - 17077 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 17020 - 17033 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 17034 - 17041 [intros.] 0. secs (0.u,0.s) +Chars 17048 - 17059 [rewrite~H0.] 0.001 secs (0.001u,0.s) +Chars 17060 - 17077 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 17078 - 17090 [reflexivity.] 0. secs (0.u,0.s) Chars 17095 - 17096 [}] 0. secs (0.u,0.s) -Chars 17101 - 17122 [setoid_rewrite~~<-~H0.] 0.002 secs (0.002u,0.s) -Chars 17123 - 17145 [(eapply~IHruttF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 17146 - 17150 [Qed.] 0.036 secs (0.035u,0.s) +Chars 17101 - 17122 [setoid_rewrite~~<-~H0.] 0.005 secs (0.005u,0.s) +Chars 17123 - 17145 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 17146 - 17150 [Qed.] 0.022 secs (0.022u,0.s) Chars 17152 - 17357 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) Chars 17358 - 17364 [Proof.] 0. secs (0.u,0.s) -Chars 17367 - 17374 [(intros).] 0. secs (0.u,0.s) -Chars 17375 - 17387 [(induction~H).] 0. secs (0.u,0.s) +Chars 17367 - 17374 [intros.] 0. secs (0.u,0.s) +Chars 17375 - 17387 [induction~H.] 0. secs (0.u,0.s) Chars 17390 - 17391 [-] 0. secs (0.u,0.s) Chars 17392 - 17407 [exists~(Ret~r).] 0. secs (0.u,0.s) -Chars 17408 - 17418 [(rewrite~H).] 0.003 secs (0.003u,0.s) +Chars 17408 - 17418 [rewrite~H.] 0.003 secs (0.003u,0.s) Chars 17419 - 17425 [split.] 0. secs (0.u,0.s) Chars 17430 - 17431 [+] 0. secs (0.u,0.s) Chars 17432 - 17444 [constructor.] 0. secs (0.u,0.s) Chars 17445 - 17457 [reflexivity.] 0. secs (0.u,0.s) Chars 17462 - 17463 [+] 0. secs (0.u,0.s) -Chars 17464 - 17487 [(apply~trace_refine_ret).] 0. secs (0.u,0.s) +Chars 17464 - 17487 [apply~trace_refine_ret.] 0. secs (0.u,0.s) Chars 17490 - 17491 [-] 0. secs (0.u,0.s) -Chars 17492 - 17539 [(destruct~IHmay_converge~as~[b...] 0. secs (0.u,0.s) +Chars 17492 - 17539 [destruct~IHmay_converge~as~[br...] 0. secs (0.u,0.s) Chars 17544 - 17587 [exists~(Vis~(evans~B~e~b)~(fun...] 0. secs (0.u,0.s) Chars 17588 - 17594 [split.] 0. secs (0.u,0.s) Chars 17599 - 17600 [+] 0. secs (0.u,0.s) -Chars 17601 - 17634 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 17601 - 17634 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) Chars 17635 - 17641 [eauto.] 0. secs (0.u,0.s) Chars 17642 - 17651 [Unshelve.] 0. secs (0.u,0.s) Chars 17652 - 17661 [exact~tt.] 0. secs (0.u,0.s) Chars 17666 - 17667 [+] 0. secs (0.u,0.s) -Chars 17668 - 17678 [(rewrite~H).] 0.003 secs (0.003u,0.s) -Chars 17679 - 17706 [(apply~trace_refine_vis_add).] 0. secs (0.u,0.s) +Chars 17668 - 17678 [rewrite~H.] 0.002 secs (0.002u,0.s) +Chars 17679 - 17706 [apply~trace_refine_vis_add.] 0. secs (0.u,0.s) Chars 17707 - 17712 [auto.] 0. secs (0.u,0.s) -Chars 17713 - 17717 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17713 - 17717 [Qed.] 0.001 secs (0.001u,0.s) Chars 17719 - 17925 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) Chars 17926 - 17932 [Proof.] 0. secs (0.u,0.s) -Chars 17935 - 17942 [(intros).] 0. secs (0.u,0.s) +Chars 17935 - 17942 [intros.] 0. secs (0.u,0.s) Chars 17943 - 17966 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 17967 - 17987 [(induction~H;~intros).] 0. secs (0.u,0.s) +Chars 17967 - 17987 [induction~H;~intros.] 0. secs (0.u,0.s) Chars 17990 - 17991 [-] 0. secs (0.u,0.s) -Chars 17992 - 18008 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) -Chars 18009 - 18044 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 18049 - 18060 [(rewrite~H0).] 0.007 secs (0.006u,0.s) +Chars 17992 - 18008 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) +Chars 18009 - 18044 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 18049 - 18060 [rewrite~H0.] 0.003 secs (0.003u,0.s) Chars 18061 - 18073 [constructor.] 0. secs (0.u,0.s) Chars 18074 - 18086 [reflexivity.] 0. secs (0.u,0.s) Chars 18089 - 18090 [-] 0. secs (0.u,0.s) -Chars 18091 - 18107 [(rewrite~H~in~H1).] 0.003 secs (0.003u,0.s) -Chars 18108 - 18146 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 18151 - 18187 [(destruct~Ht0~as~[X~[e0~[k0~Ht...] 0. secs (0.u,0.s) -Chars 18192 - 18210 [(rewrite~Ht0~in~H1).] 0.003 secs (0.003u,0.s) +Chars 18091 - 18107 [rewrite~H~in~H1.] 0.002 secs (0.002u,0.s) +Chars 18108 - 18146 [apply~trace_refine_vis_l~in~H1...] 0. secs (0.u,0.s) +Chars 18151 - 18187 [destruct~Ht0~as~[X~[e0~[k0~Ht0...] 0. secs (0.u,0.s) +Chars 18192 - 18210 [rewrite~Ht0~in~H1.] 0.002 secs (0.002u,0.s) Chars 18211 - 18219 [sinv~H1.] 0.01 secs (0.01u,0.s) Chars 18220 - 18226 [subst.] 0. secs (0.u,0.s) -Chars 18231 - 18244 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 18231 - 18244 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 18245 - 18251 [subst.] 0. secs (0.u,0.s) -Chars 18252 - 18264 [(rewrite~Ht0).] 0.008 secs (0.008u,0.s) -Chars 18269 - 18329 [(inversion~H4;~subst;~ddestruc...] 0.008 secs (0.007u,0.s) -Chars 18334 - 18367 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 18252 - 18264 [rewrite~Ht0.] 0.003 secs (0.003u,0.s) +Chars 18269 - 18329 [inversion~H4;~subst;~ddestruct...] 0.006 secs (0.006u,0.s) +Chars 18334 - 18367 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) Chars 18368 - 18377 [Unshelve.] 0. secs (0.u,0.s) Chars 18378 - 18390 [2:~exact~a.] 0. secs (0.u,0.s) -Chars 18395 - 18416 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 18395 - 18416 [apply~IHmay_converge.] 0. secs (0.u,0.s) Chars 18422 - 18443 [specialize~(H9~tt~a).] 0. secs (0.u,0.s) -Chars 18444 - 18493 [(assert~(RAnsRef~E~unit~X~(eva...] 0. secs (0.u,0.s) +Chars 18444 - 18493 [assert~(RAnsRef~E~unit~X~(evan...] 0. secs (0.u,0.s) Chars 18498 - 18510 [constructor.] 0. secs (0.u,0.s) -Chars 18511 - 18526 [(apply~H9~in~H1).] 0. secs (0.u,0.s) -Chars 18527 - 18538 [(destruct~b).] 0. secs (0.u,0.s) +Chars 18511 - 18526 [apply~H9~in~H1.] 0. secs (0.u,0.s) +Chars 18527 - 18538 [destruct~b.] 0. secs (0.u,0.s) Chars 18539 - 18544 [auto.] 0. secs (0.u,0.s) -Chars 18545 - 18549 [Qed.] 0.014 secs (0.014u,0.s) +Chars 18545 - 18549 [Qed.] 0.01 secs (0.01u,0.s) Chars 18551 - 18740 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) Chars 18741 - 18747 [Proof.] 0. secs (0.u,0.s) -Chars 18750 - 18761 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 18762 - 18788 [(unfold~all_infinite~at~-~1).] 0. secs (0.u,0.s) +Chars 18750 - 18761 [intros~E~R.] 0. secs (0.u,0.s) +Chars 18762 - 18788 [unfold~all_infinite~at~-~1.] 0. secs (0.u,0.s) Chars 18792 - 18810 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18814 - 18821 [(intros).] 0. secs (0.u,0.s) +Chars 18814 - 18821 [intros.] 0. secs (0.u,0.s) Chars 18822 - 18832 [step~in~H.] 0. secs (0.u,0.s) Chars 18833 - 18844 [step~in~H0.] 0. secs (0.u,0.s) -Chars 18845 - 18877 [(repeat~red~in~H,~H0;~repeat~r...] 0. secs (0.u,0.s) -Chars 18883 - 18906 [dependent~induction~H0.] 0.04 secs (0.039u,0.s) +Chars 18845 - 18877 [repeat~red~in~H,~H0;~repeat~red.] 0. secs (0.u,0.s) +Chars 18883 - 18906 [dependent~induction~H0.] 0.032 secs (0.032u,0.s) Chars 18909 - 18910 [-] 0. secs (0.u,0.s) -Chars 18911 - 18929 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 18930 - 18936 [(inv~H).] 0. secs (0.u,0.s) +Chars 18911 - 18929 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 18930 - 18936 [inv~H.] 0. secs (0.u,0.s) Chars 18940 - 18941 [-] 0. secs (0.u,0.s) -Chars 18942 - 18956 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 18942 - 18956 [rewrite~<-~x0.] 0. secs (0.u,0.s) Chars 18957 - 18969 [constructor.] 0. secs (0.u,0.s) -Chars 18970 - 18988 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 18993 - 19011 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 19012 - 19018 [(inv~H).] 0. secs (0.u,0.s) +Chars 18970 - 18988 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 18993 - 19011 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 19012 - 19018 [inv~H.] 0. secs (0.u,0.s) Chars 19021 - 19022 [-] 0. secs (0.u,0.s) -Chars 19023 - 19037 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 19038 - 19056 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) +Chars 19023 - 19037 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 19038 - 19056 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) Chars 19057 - 19069 [constructor.] 0. secs (0.u,0.s) -Chars 19070 - 19076 [(inv~H).] 0.011 secs (0.011u,0.s) -Chars 19081 - 19094 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 19070 - 19076 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 19081 - 19094 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 19095 - 19101 [subst.] 0. secs (0.u,0.s) -Chars 19102 - 19109 [(intros).] 0. secs (0.u,0.s) -Chars 19115 - 19162 [(inv~H1;~subst;~ddestruction;~...] 0.011 secs (0.011u,0.s) -Chars 19163 - 19175 [(destruct~b0).] 0. secs (0.u,0.s) -Chars 19180 - 19205 [(eapply~CIH;~try~apply~H3).] 0. secs (0.u,0.s) +Chars 19102 - 19109 [intros.] 0. secs (0.u,0.s) +Chars 19115 - 19162 [inv~H1;~subst;~ddestruction;~t...] 0.012 secs (0.012u,0.s) +Chars 19163 - 19175 [destruct~b0.] 0. secs (0.u,0.s) +Chars 19180 - 19205 [eapply~CIH;~try~apply~H3.] 0. secs (0.u,0.s) Chars 19210 - 19231 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) -Chars 19232 - 19279 [(assert~(RAnsRef~_~_~_~(evans~...] 0. secs (0.u,0.s) +Chars 19232 - 19279 [assert~(RAnsRef~_~_~_~(evans~B...] 0. secs (0.u,0.s) Chars 19284 - 19296 [constructor.] 0. secs (0.u,0.s) -Chars 19297 - 19311 [(apply~H0~in~H).] 0. secs (0.u,0.s) +Chars 19297 - 19311 [apply~H0~in~H.] 0. secs (0.u,0.s) Chars 19312 - 19318 [eauto.] 0. secs (0.u,0.s) Chars 19321 - 19322 [-] 0. secs (0.u,0.s) -Chars 19323 - 19336 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 19323 - 19336 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 19337 - 19349 [constructor.] 0. secs (0.u,0.s) -Chars 19350 - 19368 [(apply~(b_chain~c)).] 0. secs (0.u,0.s) -Chars 19369 - 19391 [(eapply~IHruttF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 19350 - 19368 [apply~(b_chain~c).] 0. secs (0.u,0.s) +Chars 19369 - 19391 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) Chars 19394 - 19395 [-] 0. secs (0.u,0.s) -Chars 19396 - 19417 [(eapply~IHruttF;~auto).] 0.006 secs (0.005u,0.s) -Chars 19418 - 19436 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 19437 - 19443 [(inv~H).] 0.007 secs (0.007u,0.s) +Chars 19396 - 19417 [eapply~IHruttF;~auto.] 0.001 secs (0.001u,0.s) +Chars 19418 - 19436 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 19437 - 19443 [inv~H.] 0.005 secs (0.005u,0.s) Chars 19448 - 19463 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 19465 - 19469 [Qed.] 0.053 secs (0.052u,0.s) +Chars 19465 - 19469 [Qed.] 0.036 secs (0.036u,0.s) Chars 19471 - 19756 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) Chars 19757 - 19763 [Proof.] 0. secs (0.u,0.s) -Chars 19766 - 19773 [(intros).] 0. secs (0.u,0.s) +Chars 19766 - 19773 [intros.] 0. secs (0.u,0.s) Chars 19774 - 19797 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 19798 - 19828 [(dependent~induction~H;~intros).] 0. secs (0.u,0.s) +Chars 19798 - 19828 [dependent~induction~H;~intros.] 0. secs (0.u,0.s) Chars 19831 - 19832 [-] 0. secs (0.u,0.s) -Chars 19833 - 19843 [(rewrite~H).] 0.005 secs (0.005u,0.s) -Chars 19844 - 19860 [(rewrite~H~in~H0).] 0.003 secs (0.003u,0.s) -Chars 19861 - 19896 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 19901 - 19912 [(rewrite~H0).] 0.01 secs (0.01u,0.s) -Chars 19913 - 19939 [(repeat~rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) +Chars 19833 - 19843 [rewrite~H.] 0.003 secs (0.003u,0.s) +Chars 19844 - 19860 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) +Chars 19861 - 19896 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 19901 - 19912 [rewrite~H0.] 0.003 secs (0.003u,0.s) +Chars 19913 - 19939 [repeat~rewrite~bind_ret_l.] 0.006 secs (0.005u,0.s) Chars 19940 - 19945 [auto.] 0. secs (0.u,0.s) Chars 19948 - 19949 [-] 0. secs (0.u,0.s) Chars 19950 - 19981 [specialize~(IHmay_converge~H1).] 0. secs (0.u,0.s) -Chars 19986 - 20002 [(rewrite~H~in~H2).] 0.003 secs (0.003u,0.s) -Chars 20003 - 20040 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 20045 - 20079 [(destruct~Ht~as~[X~[e0~[k0~Ht]...] 0. secs (0.u,0.s) -Chars 20084 - 20101 [(rewrite~Ht~in~H2).] 0.003 secs (0.003u,0.s) +Chars 19986 - 20002 [rewrite~H~in~H2.] 0.002 secs (0.002u,0.s) +Chars 20003 - 20040 [apply~trace_refine_vis_l~in~H2...] 0. secs (0.u,0.s) +Chars 20045 - 20079 [destruct~Ht~as~[X~[e0~[k0~Ht]]].] 0. secs (0.u,0.s) +Chars 20084 - 20101 [rewrite~Ht~in~H2.] 0.002 secs (0.002u,0.s) Chars 20102 - 20113 [step~in~H2.] 0. secs (0.u,0.s) -Chars 20114 - 20131 [(repeat~red~in~H2).] 0. secs (0.u,0.s) -Chars 20132 - 20139 [(inv~H2).] 0.015 secs (0.015u,0.s) -Chars 20145 - 20158 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 20114 - 20131 [repeat~red~in~H2.] 0. secs (0.u,0.s) +Chars 20132 - 20139 [inv~H2.] 0.008 secs (0.008u,0.s) +Chars 20145 - 20158 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 20159 - 20165 [subst.] 0. secs (0.u,0.s) -Chars 20170 - 20214 [(inversion~H5;~subst;~ddestruc...] 0.013 secs (0.013u,0.s) -Chars 20220 - 20230 [(rewrite~H).] 0.009 secs (0.009u,0.s) -Chars 20231 - 20242 [(rewrite~Ht).] 0.005 secs (0.005u,0.s) -Chars 20247 - 20252 [step.] 0.001 secs (0.001u,0.s) -Chars 20253 - 20264 [(repeat~red).] 0. secs (0.u,0.s) -Chars 20265 - 20269 [(cbn).] 0. secs (0.u,0.s) -Chars 20270 - 20288 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 20293 - 20300 [(intros).] 0. secs (0.u,0.s) -Chars 20301 - 20317 [(apply~H10~in~H2).] 0. secs (0.u,0.s) -Chars 20322 - 20334 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 20335 - 20346 [(destruct~b).] 0. secs (0.u,0.s) -Chars 20347 - 20368 [(apply~IHmay_converge).] 0. secs (0.u,0.s) +Chars 20170 - 20214 [inversion~H5;~subst;~ddestruct...] 0.01 secs (0.01u,0.s) +Chars 20220 - 20230 [rewrite~H.] 0.004 secs (0.003u,0.s) +Chars 20231 - 20242 [rewrite~Ht.] 0.003 secs (0.003u,0.s) +Chars 20247 - 20252 [step.] 0. secs (0.u,0.s) +Chars 20253 - 20264 [repeat~red.] 0. secs (0.u,0.s) +Chars 20265 - 20269 [cbn.] 0. secs (0.u,0.s) +Chars 20270 - 20288 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 20293 - 20300 [intros.] 0. secs (0.u,0.s) +Chars 20301 - 20317 [apply~H10~in~H2.] 0. secs (0.u,0.s) +Chars 20322 - 20334 [destruct~a0.] 0. secs (0.u,0.s) +Chars 20335 - 20346 [destruct~b.] 0.001 secs (0.001u,0.s) +Chars 20347 - 20368 [apply~IHmay_converge.] 0. secs (0.u,0.s) Chars 20369 - 20374 [auto.] 0. secs (0.u,0.s) -Chars 20375 - 20379 [Qed.] 0.022 secs (0.021u,0.s) +Chars 20375 - 20379 [Qed.] 0.014 secs (0.014u,0.s) Chars 20381 - 20639 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) Chars 20640 - 20646 [Proof.] 0. secs (0.u,0.s) -Chars 20649 - 20670 [(intros~E~R~S~b~t~f~g).] 0. secs (0.u,0.s) +Chars 20649 - 20670 [intros~E~R~S~b~t~f~g.] 0. secs (0.u,0.s) Chars 20671 - 20694 [generalize~dependent~b.] 0. secs (0.u,0.s) Chars 20695 - 20718 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 20721 - 20725 [(red).] 0. secs (0.u,0.s) -Chars 20726 - 20745 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) -Chars 20746 - 20753 [(intros).] 0. secs (0.u,0.s) +Chars 20721 - 20725 [red.] 0. secs (0.u,0.s) +Chars 20726 - 20745 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 20746 - 20753 [intros.] 0. secs (0.u,0.s) Chars 20756 - 20767 [step~in~H0.] 0. secs (0.u,0.s) Chars 20771 - 20781 [step~in~H.] 0. secs (0.u,0.s) -Chars 20782 - 20802 [(repeat~red~in~H0,~H).] 0. secs (0.u,0.s) -Chars 20806 - 20829 [dependent~induction~H0.] 0.063 secs (0.062u,0.s) +Chars 20782 - 20802 [repeat~red~in~H0,~H.] 0. secs (0.u,0.s) +Chars 20806 - 20829 [dependent~induction~H0.] 0.049 secs (0.048u,0.s) Chars 20832 - 20833 [-] 0. secs (0.u,0.s) -Chars 20834 - 20853 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 20854 - 20860 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 20834 - 20853 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) +Chars 20854 - 20860 [inv~H.] 0. secs (0.u,0.s) Chars 20863 - 20864 [-] 0. secs (0.u,0.s) -Chars 20865 - 20880 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 20881 - 20885 [(cbn).] 0. secs (0.u,0.s) -Chars 20886 - 20900 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 20901 - 20914 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 20919 - 20923 [(cbn).] 0. secs (0.u,0.s) +Chars 20865 - 20880 [unfold~observe.] 0. secs (0.u,0.s) +Chars 20881 - 20885 [cbn.] 0. secs (0.u,0.s) +Chars 20886 - 20900 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 20901 - 20914 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 20919 - 20923 [cbn.] 0. secs (0.u,0.s) Chars 20924 - 20936 [constructor.] 0. secs (0.u,0.s) -Chars 20937 - 20953 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 20958 - 20977 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 20978 - 20984 [(inv~H).] 0. secs (0.u,0.s) +Chars 20937 - 20953 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 20958 - 20977 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) +Chars 20978 - 20984 [inv~H.] 0. secs (0.u,0.s) Chars 20988 - 20989 [-] 0. secs (0.u,0.s) -Chars 20990 - 21005 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 21006 - 21010 [(cbn).] 0. secs (0.u,0.s) -Chars 21011 - 21025 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 21026 - 21039 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 21040 - 21044 [(cbn).] 0. secs (0.u,0.s) -Chars 21045 - 21063 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 21068 - 21075 [(intros).] 0. secs (0.u,0.s) -Chars 21080 - 21099 [(rewrite~<-~x0~in~H).] 0. secs (0.u,0.s) -Chars 21100 - 21106 [(inv~H).] 0.024 secs (0.024u,0.s) -Chars 21107 - 21120 [ddestruction.] 0.003 secs (0.003u,0.s) +Chars 20990 - 21005 [unfold~observe.] 0. secs (0.u,0.s) +Chars 21006 - 21010 [cbn.] 0. secs (0.u,0.s) +Chars 21011 - 21025 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 21026 - 21039 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 21040 - 21044 [cbn.] 0. secs (0.u,0.s) +Chars 21045 - 21063 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 21068 - 21075 [intros.] 0. secs (0.u,0.s) +Chars 21080 - 21099 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) +Chars 21100 - 21106 [inv~H.] 0.014 secs (0.014u,0.s) +Chars 21107 - 21120 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 21121 - 21127 [subst.] 0. secs (0.u,0.s) -Chars 21133 - 21148 [(apply~H0~in~H2).] 0. secs (0.u,0.s) -Chars 21149 - 21167 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 21168 - 21177 [(apply~H4).] 0. secs (0.u,0.s) +Chars 21133 - 21148 [apply~H0~in~H2.] 0. secs (0.u,0.s) +Chars 21149 - 21167 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 21168 - 21177 [apply~H4.] 0. secs (0.u,0.s) Chars 21180 - 21181 [-] 0. secs (0.u,0.s) -Chars 21182 - 21202 [(unfold~observe~at~1).] 0. secs (0.u,0.s) -Chars 21203 - 21207 [(cbn).] 0. secs (0.u,0.s) -Chars 21208 - 21221 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 21222 - 21226 [(cbn).] 0. secs (0.u,0.s) +Chars 21182 - 21202 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 21203 - 21207 [cbn.] 0. secs (0.u,0.s) +Chars 21208 - 21221 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 21222 - 21226 [cbn.] 0. secs (0.u,0.s) Chars 21227 - 21239 [constructor.] 0. secs (0.u,0.s) -Chars 21244 - 21266 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 21267 - 21285 [(rewrite~<-~x~in~H).] 0. secs (0.u,0.s) -Chars 21286 - 21292 [(inv~H).] 0.01 secs (0.01u,0.s) +Chars 21244 - 21266 [eapply~IHruttF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 21267 - 21285 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) +Chars 21286 - 21292 [inv~H.] 0.006 secs (0.006u,0.s) Chars 21293 - 21304 [now~unstep.] 0. secs (0.u,0.s) Chars 21307 - 21308 [-] 0. secs (0.u,0.s) -Chars 21309 - 21329 [(unfold~observe~at~2).] 0. secs (0.u,0.s) -Chars 21330 - 21334 [(cbn).] 0. secs (0.u,0.s) -Chars 21335 - 21348 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 21349 - 21353 [(cbn).] 0. secs (0.u,0.s) +Chars 21309 - 21329 [unfold~observe~at~2.] 0. secs (0.u,0.s) +Chars 21330 - 21334 [cbn.] 0. secs (0.u,0.s) +Chars 21335 - 21348 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 21349 - 21353 [cbn.] 0. secs (0.u,0.s) Chars 21354 - 21366 [constructor.] 0. secs (0.u,0.s) -Chars 21371 - 21393 [(eapply~IHruttF;~eauto).] 0.003 secs (0.003u,0.s) -Chars 21394 - 21398 [Qed.] 0.076 secs (0.076u,0.s) +Chars 21371 - 21393 [eapply~IHruttF;~eauto.] 0.002 secs (0.002u,0.s) +Chars 21394 - 21398 [Qed.] 0.061 secs (0.06u,0.s) Chars 21400 - 21539 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) Chars 21540 - 21546 [Proof.] 0. secs (0.u,0.s) -Chars 21549 - 21560 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 21561 - 21580 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 21581 - 21588 [(intros).] 0. secs (0.u,0.s) -Chars 21591 - 21620 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 21621 - 21650 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 21653 - 21684 [(destruct~(ot1);~destruct~(ot2)).] 0.002 secs (0.002u,0.s) -Chars 21687 - 21815 [all:~~(specialize~(itree_eta~t...] 0.001 secs (0.001u,0.s) +Chars 21549 - 21560 [intros~E~R.] 0. secs (0.u,0.s) +Chars 21561 - 21580 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 21581 - 21588 [intros.] 0. secs (0.u,0.s) +Chars 21591 - 21620 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 21621 - 21650 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 21653 - 21684 [destruct~(ot1);~destruct~(ot2).] 0.002 secs (0.002u,0.s) +Chars 21687 - 21815 [all:~~specialize~(itree_eta~t1...] 0.001 secs (0.001u,0.s) Chars 21832 - 21833 [-] 0. secs (0.u,0.s) Chars 21834 - 21865 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) -Chars 21870 - 21889 [(rewrite~Ht1~in~Hr0).] 0.028 secs (0.028u,0.s) -Chars 21890 - 21909 [(rewrite~Ht2~in~Hr0).] 0.063 secs (0.062u,0.001s) -Chars 21915 - 21938 [(assert~(Ret~r0~⊑~t1)).] 0. secs (0.u,0.s) +Chars 21870 - 21889 [rewrite~Ht1~in~Hr0.] 0.017 secs (0.017u,0.s) +Chars 21890 - 21909 [rewrite~Ht2~in~Hr0.] 0.045 secs (0.045u,0.s) +Chars 21915 - 21938 [assert~(Ret~r0~⊑~t1).] 0. secs (0.u,0.s) Chars 21943 - 21944 [{] 0. secs (0.u,0.s) -Chars 21945 - 21957 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 21958 - 21968 [(apply~Hr0).] 0. secs (0.u,0.s) -Chars 21969 - 21974 [step.] 0.001 secs (0.001u,0.s) +Chars 21945 - 21957 [rewrite~Ht1.] 0.003 secs (0.003u,0.s) +Chars 21958 - 21968 [apply~Hr0.] 0. secs (0.u,0.s) +Chars 21969 - 21974 [step.] 0. secs (0.u,0.s) Chars 21975 - 21980 [eret.] 0. secs (0.u,0.s) Chars 21981 - 21982 [}] 0. secs (0.u,0.s) -Chars 21987 - 22005 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) -Chars 22006 - 22014 [sinv~H0.] 0.006 secs (0.006u,0.s) +Chars 21987 - 22005 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) +Chars 22006 - 22014 [sinv~H0.] 0.004 secs (0.004u,0.s) Chars 22033 - 22034 [-] 0. secs (0.u,0.s) -Chars 22035 - 22059 [setoid_rewrite~Ht2~in~H.] 0.063 secs (0.062u,0.s) +Chars 22035 - 22059 [setoid_rewrite~Ht2~in~H.] 0.042 secs (0.042u,0.s) Chars 22064 - 22088 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) -Chars 22093 - 22115 [(rewrite~tau_eutt~in~H).] 0.001 secs (0.001u,0.s) +Chars 22093 - 22115 [rewrite~tau_eutt~in~H.] 0.001 secs (0.001u,0.s) Chars 22116 - 22121 [taur.] 0. secs (0.u,0.s) -Chars 22127 - 22149 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) +Chars 22127 - 22149 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) Chars 22154 - 22155 [{] 0. secs (0.u,0.s) -Chars 22156 - 22168 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 22169 - 22174 [step.] 0.001 secs (0.001u,0.s) +Chars 22156 - 22168 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 22169 - 22174 [step.] 0. secs (0.u,0.s) Chars 22175 - 22180 [eret.] 0. secs (0.u,0.s) Chars 22181 - 22182 [}] 0. secs (0.u,0.s) -Chars 22187 - 22201 [(apply~H~in~H0).] 0. secs (0.u,0.s) +Chars 22187 - 22201 [apply~H~in~H0.] 0. secs (0.u,0.s) Chars 22202 - 22213 [step~in~H0.] 0. secs (0.u,0.s) -Chars 22214 - 22242 [(repeat~red~in~H0;~cbn~in~H0).] 0. secs (0.u,0.s) +Chars 22214 - 22242 [repeat~red~in~H0;~cbn~in~H0.] 0. secs (0.u,0.s) Chars 22247 - 22277 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 22278 - 22301 [dependent~induction~H0.] 0.047 secs (0.046u,0.s) +Chars 22278 - 22301 [dependent~induction~H0.] 0.033 secs (0.033u,0.s) Chars 22306 - 22307 [+] 0. secs (0.u,0.s) -Chars 22308 - 22321 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22308 - 22321 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 22322 - 22327 [eret.] 0. secs (0.u,0.s) Chars 22333 - 22334 [+] 0. secs (0.u,0.s) -Chars 22335 - 22348 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 22349 - 22360 [(taur;~auto).] 0.001 secs (0.001u,0.s) +Chars 22335 - 22348 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22349 - 22360 [taur;~auto.] 0. secs (0.u,0.s) Chars 22380 - 22381 [-] 0. secs (0.u,0.s) Chars 22382 - 22390 [exfalso.] 0. secs (0.u,0.s) -Chars 22395 - 22417 [(assert~(Ret~r~⊑~t1)).] 0. secs (0.u,0.s) +Chars 22395 - 22417 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) Chars 22422 - 22423 [{] 0. secs (0.u,0.s) -Chars 22424 - 22436 [(rewrite~Ht1).] 0.003 secs (0.003u,0.s) -Chars 22437 - 22442 [step.] 0.001 secs (0.001u,0.s) +Chars 22424 - 22436 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) +Chars 22437 - 22442 [step.] 0. secs (0.u,0.s) Chars 22443 - 22448 [eret.] 0. secs (0.u,0.s) Chars 22449 - 22450 [}] 0. secs (0.u,0.s) -Chars 22455 - 22469 [(apply~H~in~H0).] 0. secs (0.u,0.s) -Chars 22470 - 22488 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) -Chars 22489 - 22497 [sinv~H0.] 0.002 secs (0.002u,0.s) +Chars 22455 - 22469 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 22470 - 22488 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) +Chars 22489 - 22497 [sinv~H0.] 0.001 secs (0.001u,0.s) Chars 22515 - 22516 [-] 0. secs (0.u,0.s) -Chars 22517 - 22541 [setoid_rewrite~Ht1~in~H.] 0.025 secs (0.024u,0.s) -Chars 22542 - 22566 [setoid_rewrite~Ht2~in~H.] 0.066 secs (0.065u,0.s) -Chars 22571 - 22593 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) +Chars 22517 - 22541 [setoid_rewrite~Ht1~in~H.] 0.019 secs (0.019u,0.s) +Chars 22542 - 22566 [setoid_rewrite~Ht2~in~H.] 0.044 secs (0.044u,0.s) +Chars 22571 - 22593 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) Chars 22598 - 22599 [{] 0. secs (0.u,0.s) -Chars 22600 - 22612 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) -Chars 22613 - 22618 [step.] 0.001 secs (0.001u,0.s) +Chars 22600 - 22612 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) +Chars 22613 - 22618 [step.] 0. secs (0.u,0.s) Chars 22619 - 22624 [eret.] 0. secs (0.u,0.s) Chars 22625 - 22626 [}] 0. secs (0.u,0.s) -Chars 22631 - 22649 [(rewrite~Ht2~in~H0).] 0.003 secs (0.003u,0.s) -Chars 22650 - 22670 [(apply~H~in~H0~as~H1).] 0. secs (0.u,0.s) +Chars 22631 - 22649 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) +Chars 22650 - 22670 [apply~H~in~H0~as~H1.] 0. secs (0.u,0.s) Chars 22671 - 22682 [step~in~H1.] 0. secs (0.u,0.s) Chars 22688 - 22721 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) -Chars 22722 - 22739 [(repeat~red~in~H1).] 0. secs (0.u,0.s) -Chars 22740 - 22749 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 22722 - 22739 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 22740 - 22749 [cbn~in~*.] 0. secs (0.u,0.s) Chars 22754 - 22759 [taul.] 0. secs (0.u,0.s) -Chars 22760 - 22767 [(inv~H1).] 0.013 secs (0.013u,0.s) -Chars 22768 - 22806 [(dependent~induction~H2;~intro...] 0.047 secs (0.046u,0.s) +Chars 22760 - 22767 [inv~H1.] 0.009 secs (0.009u,0.s) +Chars 22768 - 22806 [dependent~induction~H2;~intros...] 0.033 secs (0.032u,0.s) Chars 22811 - 22812 [+] 0. secs (0.u,0.s) -Chars 22813 - 22826 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 22813 - 22826 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 22827 - 22832 [eret.] 0. secs (0.u,0.s) Chars 22838 - 22839 [+] 0. secs (0.u,0.s) -Chars 22840 - 22853 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 22854 - 22865 [(taul;~auto).] 0.001 secs (0.001u,0.s) +Chars 22840 - 22853 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 22854 - 22865 [taul;~auto.] 0. secs (0.u,0.s) Chars 22883 - 22884 [-] 0. secs (0.u,0.s) Chars 22885 - 22897 [constructor.] 0. secs (0.u,0.s) -Chars 22898 - 22909 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 22915 - 22922 [(intros).] 0. secs (0.u,0.s) -Chars 22927 - 22945 [(assert~(t1~≈~t)).] 0. secs (0.u,0.s) +Chars 22898 - 22909 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 22915 - 22922 [intros.] 0. secs (0.u,0.s) +Chars 22927 - 22945 [assert~(t1~≈~t).] 0. secs (0.u,0.s) Chars 22946 - 22947 [{] 0. secs (0.u,0.s) -Chars 22948 - 22960 [(rewrite~Ht1).] 0. secs (0.u,0.s) -Chars 22961 - 22978 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 22948 - 22960 [rewrite~Ht1.] 0. secs (0.u,0.s) +Chars 22961 - 22978 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 22979 - 22991 [reflexivity.] 0. secs (0.u,0.s) Chars 22992 - 22993 [}] 0. secs (0.u,0.s) -Chars 22998 - 23017 [(assert~(t2~≈~t0)).] 0. secs (0.u,0.s) +Chars 22998 - 23017 [assert~(t2~≈~t0).] 0. secs (0.u,0.s) Chars 23018 - 23019 [{] 0. secs (0.u,0.s) -Chars 23020 - 23032 [(rewrite~Ht2).] 0. secs (0.u,0.s) -Chars 23033 - 23050 [(rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 23020 - 23032 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 23033 - 23050 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 23051 - 23063 [reflexivity.] 0. secs (0.u,0.s) Chars 23064 - 23065 [}] 0. secs (0.u,0.s) -Chars 23070 - 23095 [now~rewrite~<-~H0,~<-~H1.] 0.002 secs (0.002u,0.s) +Chars 23070 - 23095 [now~rewrite~<-~H0,~<-~H1.] 0.004 secs (0.004u,0.s) Chars 23113 - 23114 [-] 0. secs (0.u,0.s) Chars 23115 - 23165 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 23170 - 23194 [(apply~H~in~Hbt1~as~Hbt2).] 0. secs (0.u,0.s) -Chars 23195 - 23215 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 23220 - 23245 [(rewrite~tau_eutt~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 23250 - 23270 [(rewrite~Ht2~in~Hbt2).] 0.002 secs (0.002u,0.s) -Chars 23275 - 23312 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) -Chars 23317 - 23351 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) -Chars 23356 - 23375 [(rewrite~Hb~in~Hbt2).] 0.004 secs (0.004u,0.s) -Chars 23380 - 23399 [(rewrite~Hb~in~Hbt1).] 0.01 secs (0.01u,0.s) +Chars 23170 - 23194 [apply~H~in~Hbt1~as~Hbt2.] 0. secs (0.u,0.s) +Chars 23195 - 23215 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) +Chars 23220 - 23245 [rewrite~tau_eutt~in~Hbt1.] 0.002 secs (0.002u,0.s) +Chars 23250 - 23270 [rewrite~Ht2~in~Hbt2.] 0.001 secs (0.001u,0.s) +Chars 23275 - 23312 [apply~trace_refine_vis~in~Hbt2...] 0. secs (0.u,0.s) +Chars 23317 - 23351 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) +Chars 23356 - 23375 [rewrite~Hb~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 23380 - 23399 [rewrite~Hb~in~Hbt1.] 0.002 secs (0.002u,0.s) Chars 23400 - 23411 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 23416 - 23434 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 23439 - 23463 [setoid_rewrite~Ht1~in~H.] 0.021 secs (0.021u,0.s) -Chars 23464 - 23493 [setoid_rewrite~tau_eutt~in~H.] 0.003 secs (0.003u,0.s) +Chars 23416 - 23434 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 23439 - 23463 [setoid_rewrite~Ht1~in~H.] 0.017 secs (0.016u,0.s) +Chars 23464 - 23493 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) Chars 23498 - 23518 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 23519 - 23532 [clear~Ht1~t1.] 0. secs (0.u,0.s) Chars 23537 - 23550 [step~in~Hbt1.] 0. secs (0.u,0.s) -Chars 23551 - 23570 [(repeat~red~in~Hbt1).] 0. secs (0.u,0.s) -Chars 23571 - 23580 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23585 - 23610 [dependent~induction~Hbt1.] 0.064 secs (0.063u,0.s) +Chars 23551 - 23570 [repeat~red~in~Hbt1.] 0. secs (0.u,0.s) +Chars 23571 - 23580 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23585 - 23610 [dependent~induction~Hbt1.] 0.049 secs (0.049u,0.s) Chars 23615 - 23616 [+] 0. secs (0.u,0.s) -Chars 23617 - 23630 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 23617 - 23630 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 23637 - 23668 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23669 - 23688 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 23695 - 23739 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) +Chars 23669 - 23688 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 23695 - 23739 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) Chars 23744 - 23745 [+] 0. secs (0.u,0.s) -Chars 23746 - 23759 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 23760 - 23778 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 23779 - 23800 [(eapply~IHHbt1;~eauto).] 0.01 secs (0.01u,0.s) -Chars 23807 - 23825 [(assert~(t0~≈~t)).] 0. secs (0.u,0.s) +Chars 23746 - 23759 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 23760 - 23778 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 23779 - 23800 [eapply~IHHbt1;~eauto.] 0.003 secs (0.003u,0.s) +Chars 23807 - 23825 [assert~(t0~≈~t).] 0. secs (0.u,0.s) Chars 23832 - 23833 [{] 0. secs (0.u,0.s) Chars 23842 - 23873 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23874 - 23893 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 23894 - 23905 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 23914 - 23931 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 23874 - 23893 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 23894 - 23905 [rewrite~Ht.] 0.001 secs (0.001u,0.s) +Chars 23914 - 23931 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 23932 - 23944 [reflexivity.] 0. secs (0.u,0.s) Chars 23951 - 23952 [}] 0. secs (0.u,0.s) Chars 23959 - 23977 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) Chars 23978 - 23983 [auto.] 0. secs (0.u,0.s) Chars 24000 - 24001 [-] 0. secs (0.u,0.s) Chars 24002 - 24010 [exfalso.] 0. secs (0.u,0.s) -Chars 24015 - 24037 [(assert~(Ret~r~⊑~t2)).] 0. secs (0.u,0.s) +Chars 24015 - 24037 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) Chars 24042 - 24043 [{] 0. secs (0.u,0.s) -Chars 24044 - 24056 [(rewrite~Ht2).] 0.003 secs (0.003u,0.s) -Chars 24057 - 24062 [step.] 0.001 secs (0.001u,0.s) +Chars 24044 - 24056 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) +Chars 24057 - 24062 [step.] 0. secs (0.u,0.s) Chars 24063 - 24068 [eret.] 0. secs (0.u,0.s) Chars 24069 - 24070 [}] 0. secs (0.u,0.s) -Chars 24075 - 24089 [(apply~H~in~H0).] 0. secs (0.u,0.s) -Chars 24090 - 24108 [(rewrite~Ht1~in~H0).] 0.003 secs (0.003u,0.s) -Chars 24109 - 24117 [sinv~H0.] 0.003 secs (0.002u,0.s) +Chars 24075 - 24089 [apply~H~in~H0.] 0. secs (0.u,0.s) +Chars 24090 - 24108 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) +Chars 24109 - 24117 [sinv~H0.] 0.001 secs (0.001u,0.s) Chars 24134 - 24135 [-] 0. secs (0.u,0.s) Chars 24136 - 24186 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 24191 - 24215 [(apply~H~in~Hbt2~as~Hbt1).] 0. secs (0.u,0.s) -Chars 24216 - 24236 [(rewrite~Ht1~in~Hbt1).] 0.003 secs (0.003u,0.s) -Chars 24241 - 24261 [(rewrite~Ht2~in~Hbt2).] 0.003 secs (0.003u,0.s) -Chars 24266 - 24291 [(rewrite~tau_eutt~in~Hbt2).] 0.005 secs (0.005u,0.s) -Chars 24296 - 24333 [(apply~trace_refine_vis~in~Hbt...] 0. secs (0.u,0.s) -Chars 24338 - 24372 [(destruct~Hb~as~[Y~[e0~[k0~Hb]...] 0. secs (0.u,0.s) -Chars 24377 - 24396 [(rewrite~Hb~in~Hbt2).] 0.003 secs (0.003u,0.s) -Chars 24401 - 24420 [(rewrite~Hb~in~Hbt1).] 0.004 secs (0.004u,0.s) +Chars 24191 - 24215 [apply~H~in~Hbt2~as~Hbt1.] 0. secs (0.u,0.s) +Chars 24216 - 24236 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) +Chars 24241 - 24261 [rewrite~Ht2~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 24266 - 24291 [rewrite~tau_eutt~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 24296 - 24333 [apply~trace_refine_vis~in~Hbt1...] 0. secs (0.u,0.s) +Chars 24338 - 24372 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) +Chars 24377 - 24396 [rewrite~Hb~in~Hbt2.] 0.002 secs (0.002u,0.s) +Chars 24401 - 24420 [rewrite~Hb~in~Hbt1.] 0.004 secs (0.004u,0.s) Chars 24421 - 24432 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 24437 - 24455 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24460 - 24484 [setoid_rewrite~Ht2~in~H.] 0.062 secs (0.062u,0.s) -Chars 24485 - 24514 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) +Chars 24437 - 24455 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 24460 - 24484 [setoid_rewrite~Ht2~in~H.] 0.043 secs (0.043u,0.s) +Chars 24485 - 24514 [setoid_rewrite~tau_eutt~in~H.] 0.001 secs (0.001u,0.s) Chars 24519 - 24539 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) Chars 24540 - 24553 [clear~Ht2~t2.] 0. secs (0.u,0.s) Chars 24558 - 24571 [step~in~Hbt2.] 0. secs (0.u,0.s) -Chars 24572 - 24591 [(repeat~red~in~Hbt2).] 0. secs (0.u,0.s) -Chars 24592 - 24601 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 24606 - 24631 [dependent~induction~Hbt2.] 0.064 secs (0.063u,0.s) +Chars 24572 - 24591 [repeat~red~in~Hbt2.] 0. secs (0.u,0.s) +Chars 24592 - 24601 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 24606 - 24631 [dependent~induction~Hbt2.] 0.045 secs (0.045u,0.s) Chars 24636 - 24637 [+] 0. secs (0.u,0.s) -Chars 24638 - 24651 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 24638 - 24651 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 24658 - 24689 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24690 - 24709 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 24716 - 24760 [(eapply~refine_set_eq_to_eutt_...] 0.001 secs (0.001u,0.s) +Chars 24690 - 24709 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 24716 - 24760 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) Chars 24765 - 24766 [+] 0. secs (0.u,0.s) -Chars 24767 - 24780 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 24781 - 24799 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 24800 - 24821 [(eapply~IHHbt2;~eauto).] 0.006 secs (0.006u,0.s) -Chars 24828 - 24846 [(assert~(t2~≈~t)).] 0. secs (0.u,0.s) +Chars 24767 - 24780 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 24781 - 24799 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 24800 - 24821 [eapply~IHHbt2;~eauto.] 0.004 secs (0.003u,0.s) +Chars 24828 - 24846 [assert~(t2~≈~t).] 0. secs (0.u,0.s) Chars 24853 - 24854 [{] 0. secs (0.u,0.s) Chars 24863 - 24894 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24895 - 24914 [(rewrite~<-~x~in~Ht).] 0. secs (0.u,0.s) -Chars 24915 - 24926 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) -Chars 24935 - 24952 [(rewrite~tau_eutt).] 0. secs (0.u,0.s) +Chars 24895 - 24914 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) +Chars 24915 - 24926 [rewrite~Ht.] 0.001 secs (0.001u,0.s) +Chars 24935 - 24952 [rewrite~tau_eutt.] 0. secs (0.u,0.s) Chars 24953 - 24965 [reflexivity.] 0. secs (0.u,0.s) Chars 24972 - 24973 [}] 0. secs (0.u,0.s) -Chars 24980 - 24998 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) +Chars 24980 - 24998 [setoid_rewrite~H0.] 0.003 secs (0.003u,0.s) Chars 24999 - 25004 [auto.] 0. secs (0.u,0.s) Chars 25023 - 25024 [-] 0. secs (0.u,0.s) -Chars 25025 - 25069 [(eapply~refine_set_eq_to_eutt_...] 0. secs (0.u,0.s) -Chars 25070 - 25074 [Qed.] 0.247 secs (0.244u,0.003s) +Chars 25025 - 25069 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) +Chars 25070 - 25074 [Qed.] 0.186 secs (0.184u,0.001s) Chars 25076 - 25183 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) Chars 25184 - 25190 [Proof.] 0. secs (0.u,0.s) -Chars 25193 - 25200 [(intros).] 0. secs (0.u,0.s) -Chars 25201 - 25254 [(split;~intros;~try~apply~refi...] 0. secs (0.u,0.s) -Chars 25257 - 25267 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 25268 - 25280 [(split;~auto).] 0. secs (0.u,0.s) +Chars 25193 - 25200 [intros.] 0. secs (0.u,0.s) +Chars 25201 - 25254 [split;~intros;~try~apply~refin...] 0. secs (0.u,0.s) +Chars 25257 - 25267 [rewrite~H.] 0. secs (0.u,0.s) +Chars 25268 - 25280 [split;~auto.] 0. secs (0.u,0.s) Chars 25281 - 25285 [Qed.] 0. secs (0.u,0.s) Chars 25287 - 25614 [Lemma~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) Chars 25615 - 25621 [Proof.] 0. secs (0.u,0.s) -Chars 25624 - 25637 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 25638 - 25642 [(red).] 0. secs (0.u,0.s) +Chars 25624 - 25637 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 25638 - 25642 [red.] 0. secs (0.u,0.s) Chars 25643 - 25661 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25662 - 25700 [(intros~b~m~g~f~a~Hconv~Hrefb~...] 0. secs (0.u,0.s) +Chars 25662 - 25700 [intros~b~m~g~f~a~Hconv~Hrefb~H...] 0. secs (0.u,0.s) Chars 25703 - 25727 [generalize~dependent~m.] 0. secs (0.u,0.s) -Chars 25730 - 25782 [(dependent~induction~Hconv;~in...] 0.001 secs (0.001u,0.s) +Chars 25730 - 25782 [dependent~induction~Hconv;~int...] 0. secs (0.u,0.s) Chars 25785 - 25786 [-] 0. secs (0.u,0.s) -Chars 25787 - 25809 [(rewrite~H~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 25810 - 25841 [(rewrite~bind_ret_l~in~Hrefbind).] 0.008 secs (0.007u,0.s) -Chars 25842 - 25861 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) -Chars 25866 - 25904 [(apply~trace_refine_ret_inv_r~...] 0. secs (0.u,0.s) -Chars 25905 - 25931 [(rewrite~Hrefb~in~Hrefbind).] 0.003 secs (0.003u,0.s) -Chars 25936 - 25967 [(rewrite~bind_ret_l~in~Hrefbind).] 0.002 secs (0.002u,0.s) -Chars 25968 - 25977 [now~step.] 0.002 secs (0.002u,0.s) +Chars 25787 - 25809 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) +Chars 25810 - 25841 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 25842 - 25861 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) +Chars 25866 - 25904 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) +Chars 25905 - 25931 [rewrite~Hrefb~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 25936 - 25967 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 25968 - 25977 [now~step.] 0.001 secs (0.001u,0.s) Chars 25981 - 25982 [-] 0. secs (0.u,0.s) -Chars 26106 - 26136 [(destruct~e;~try~contradiction).] 0.001 secs (0.001u,0.s) -Chars 26137 - 26156 [(rewrite~H~in~Hrefb).] 0.003 secs (0.003u,0.s) -Chars 26161 - 26183 [(rewrite~H~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 26184 - 26213 [(rewrite~bind_vis~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 26218 - 26260 [(apply~trace_refine_vis_l~in~H...] 0. secs (0.u,0.s) -Chars 26261 - 26300 [(destruct~Hvis~as~[X~[e'~[k'~H...] 0. secs (0.u,0.s) -Chars 26305 - 26330 [(rewrite~Hvis~in~Hrefbind).] 0.004 secs (0.004u,0.s) -Chars 26331 - 26360 [(rewrite~bind_vis~in~Hrefbind).] 0.003 secs (0.003u,0.s) +Chars 26106 - 26136 [destruct~e;~try~contradiction.] 0.001 secs (0.001u,0.s) +Chars 26137 - 26156 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) +Chars 26161 - 26183 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) +Chars 26184 - 26213 [rewrite~bind_vis~in~Hrefbind.] 0.002 secs (0.002u,0.s) +Chars 26218 - 26260 [apply~trace_refine_vis_l~in~Hr...] 0. secs (0.u,0.s) +Chars 26261 - 26300 [destruct~Hvis~as~[X~[e'~[k'~Hv...] 0. secs (0.u,0.s) +Chars 26305 - 26330 [rewrite~Hvis~in~Hrefbind.] 0.003 secs (0.003u,0.s) +Chars 26331 - 26360 [rewrite~bind_vis~in~Hrefbind.] 0.003 secs (0.003u,0.s) Chars 26365 - 26382 [step~in~Hrefbind.] 0. secs (0.u,0.s) -Chars 26383 - 26423 [(repeat~red~in~Hrefbind;~cbn~i...] 0. secs (0.u,0.s) -Chars 26424 - 26437 [(inv~Hrefbind).] 0.025 secs (0.024u,0.s) -Chars 26442 - 26455 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 26456 - 26463 [(inv~H2).] 0.014 secs (0.014u,0.s) -Chars 26464 - 26484 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 26489 - 26511 [(rewrite~Hvis~in~Hrefb).] 0.004 secs (0.004u,0.s) +Chars 26383 - 26423 [repeat~red~in~Hrefbind;~cbn~in...] 0. secs (0.u,0.s) +Chars 26424 - 26437 [inv~Hrefbind.] 0.017 secs (0.017u,0.s) +Chars 26442 - 26455 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 26456 - 26463 [inv~H2.] 0.01 secs (0.01u,0.s) +Chars 26464 - 26484 [ddestruction;~subst.] 0.004 secs (0.004u,0.s) +Chars 26489 - 26511 [rewrite~Hvis~in~Hrefb.] 0.002 secs (0.002u,0.s) Chars 26512 - 26526 [step~in~Hrefb.] 0. secs (0.u,0.s) -Chars 26527 - 26561 [(repeat~red~in~Hrefb;~cbn~in~H...] 0. secs (0.u,0.s) -Chars 26562 - 26572 [(inv~Hrefb).] 0.024 secs (0.024u,0.s) -Chars 26577 - 26590 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 26595 - 26680 [(assert~(RAnsRef~E~unit~A~(eva...] 0. secs (0.u,0.s) +Chars 26527 - 26561 [repeat~red~in~Hrefb;~cbn~in~Hr...] 0. secs (0.u,0.s) +Chars 26562 - 26572 [inv~Hrefb.] 0.016 secs (0.016u,0.s) +Chars 26577 - 26590 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 26595 - 26680 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) Chars 26685 - 26716 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) -Chars 26717 - 26731 [(apply~IHHconv).] 0. secs (0.u,0.s) +Chars 26717 - 26731 [apply~IHHconv.] 0. secs (0.u,0.s) Chars 26736 - 26737 [+] 0. secs (0.u,0.s) -Chars 26738 - 26753 [(apply~H8~in~H0).] 0. secs (0.u,0.s) -Chars 26754 - 26765 [(destruct~b).] 0. secs (0.u,0.s) +Chars 26738 - 26753 [apply~H8~in~H0.] 0. secs (0.u,0.s) +Chars 26754 - 26765 [destruct~b.] 0. secs (0.u,0.s) Chars 26766 - 26771 [auto.] 0. secs (0.u,0.s) Chars 26776 - 26777 [+] 0. secs (0.u,0.s) -Chars 26778 - 26793 [(apply~H7~in~H0).] 0. secs (0.u,0.s) -Chars 26794 - 26805 [(destruct~b).] 0. secs (0.u,0.s) +Chars 26778 - 26793 [apply~H7~in~H0.] 0. secs (0.u,0.s) +Chars 26794 - 26805 [destruct~b.] 0. secs (0.u,0.s) Chars 26806 - 26811 [auto.] 0. secs (0.u,0.s) -Chars 26812 - 26816 [Qed.] 0.051 secs (0.05u,0.001s) +Chars 26812 - 26816 [Qed.] 0.037 secs (0.037u,0.s) Chars 26818 - 27046 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) Chars 27047 - 27053 [Proof.] 0. secs (0.u,0.s) -Chars 27056 - 27063 [(intros).] 0. secs (0.u,0.s) +Chars 27056 - 27063 [intros.] 0. secs (0.u,0.s) Chars 27064 - 27090 [generalize~dependent~log'.] 0. secs (0.u,0.s) -Chars 27093 - 27120 [(induction~log;~cbn;~intros).] 0. secs (0.u,0.s) +Chars 27093 - 27120 [induction~log;~cbn;~intros.] 0. secs (0.u,0.s) Chars 27123 - 27124 [-] 0. secs (0.u,0.s) -Chars 27125 - 27136 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27137 - 27168 [setoid_rewrite~bind_ret_l~in~H.] 0.021 secs (0.021u,0.s) -Chars 27169 - 27179 [(rewrite~H).] 0.005 secs (0.005u,0.s) -Chars 27184 - 27210 [(apply~may_converge_append).] 0. secs (0.u,0.s) -Chars 27211 - 27239 [(apply~finite_list_to_stream).] 0. secs (0.u,0.s) +Chars 27125 - 27136 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 27137 - 27168 [setoid_rewrite~bind_ret_l~in~H.] 0.014 secs (0.014u,0.s) +Chars 27169 - 27179 [rewrite~H.] 0.005 secs (0.005u,0.s) +Chars 27184 - 27210 [apply~may_converge_append.] 0. secs (0.u,0.s) +Chars 27211 - 27239 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) Chars 27242 - 27243 [-] 0. secs (0.u,0.s) -Chars 27244 - 27338 [(assert~~~(Vis~a0~(fun~_~=>~ev...] 0. secs (0.u,0.s) +Chars 27244 - 27338 [assert~~(Vis~a0~(fun~_~=>~ev_l...] 0. secs (0.u,0.s) Chars 27343 - 27344 [{] 0. secs (0.u,0.s) -Chars 27345 - 27349 [(cbn).] 0. secs (0.u,0.s) +Chars 27345 - 27349 [cbn.] 0. secs (0.u,0.s) Chars 27350 - 27362 [reflexivity.] 0. secs (0.u,0.s) Chars 27363 - 27364 [}] 0. secs (0.u,0.s) -Chars 27369 - 27385 [(rewrite~H0~in~H).] 0.021 secs (0.02u,0.s) -Chars 27390 - 27417 [(destruct~log'~as~[|~h~t]).] 0. secs (0.u,0.s) +Chars 27369 - 27385 [rewrite~H0~in~H.] 0.013 secs (0.013u,0.s) +Chars 27390 - 27417 [destruct~log'~as~[|~h~t].] 0. secs (0.u,0.s) Chars 27422 - 27423 [+] 0. secs (0.u,0.s) -Chars 27424 - 27455 [setoid_rewrite~bind_ret_l~in~H.] 0.03 secs (0.029u,0.s) -Chars 27456 - 27467 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27468 - 27475 [sinv~H.] 0.004 secs (0.004u,0.s) +Chars 27424 - 27455 [setoid_rewrite~bind_ret_l~in~H.] 0.02 secs (0.02u,0.s) +Chars 27456 - 27467 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 27468 - 27475 [sinv~H.] 0.002 secs (0.002u,0.s) Chars 27481 - 27482 [+] 0. secs (0.u,0.s) -Chars 27483 - 27494 [(simpl~in~H).] 0. secs (0.u,0.s) -Chars 27495 - 27514 [(unfold~append~in~H).] 0. secs (0.u,0.s) -Chars 27515 - 27544 [(repeat~rewrite~bind_vis~in~H).] 0.051 secs (0.05u,0.s) -Chars 27545 - 27552 [sinv~H.] 0.009 secs (0.009u,0.s) -Chars 27559 - 27579 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 27586 - 27655 [(assert~(ev_list_to_stream~log...] 0. secs (0.u,0.s) +Chars 27483 - 27494 [simpl~in~H.] 0. secs (0.u,0.s) +Chars 27495 - 27514 [unfold~append~in~H.] 0. secs (0.u,0.s) +Chars 27515 - 27544 [repeat~rewrite~bind_vis~in~H.] 0.035 secs (0.035u,0.s) +Chars 27545 - 27552 [sinv~H.] 0.006 secs (0.006u,0.s) +Chars 27559 - 27579 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 27586 - 27655 [assert~(ev_list_to_stream~log~...] 0. secs (0.u,0.s) Chars 27662 - 27663 [{] 0. secs (0.u,0.s) -Chars 27664 - 27674 [(apply~REL).] 0. secs (0.u,0.s) -Chars 27675 - 27684 [(apply~tt).] 0. secs (0.u,0.s) +Chars 27664 - 27674 [apply~REL.] 0. secs (0.u,0.s) +Chars 27675 - 27684 [apply~tt.] 0. secs (0.u,0.s) Chars 27685 - 27686 [}] 0. secs (0.u,0.s) -Chars 27693 - 27713 [(eapply~IHlog;~eauto).] 0. secs (0.u,0.s) -Chars 27714 - 27718 [Qed.] 0.013 secs (0.013u,0.s) +Chars 27693 - 27713 [eapply~IHlog;~eauto.] 0. secs (0.u,0.s) +Chars 27714 - 27718 [Qed.] 0.01 secs (0.01u,0.s) Chars 27720 - 27933 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) Chars 27934 - 27940 [Proof.] 0. secs (0.u,0.s) -Chars 27943 - 27966 [(intros~E~A~log~b'~Hdiv).] 0. secs (0.u,0.s) -Chars 27967 - 27981 [(induction~log).] 0. secs (0.u,0.s) +Chars 27943 - 27966 [intros~E~A~log~b'~Hdiv.] 0. secs (0.u,0.s) +Chars 27967 - 27981 [induction~log.] 0. secs (0.u,0.s) Chars 27984 - 27985 [-] 0. secs (0.u,0.s) -Chars 27986 - 27998 [(cbn~in~Hdiv).] 0. secs (0.u,0.s) +Chars 27986 - 27998 [cbn~in~Hdiv.] 0. secs (0.u,0.s) Chars 27999 - 28033 [setoid_rewrite~bind_ret_l~in~H...] 0.001 secs (0.001u,0.s) Chars 28034 - 28039 [auto.] 0. secs (0.u,0.s) Chars 28042 - 28043 [-] 0. secs (0.u,0.s) -Chars 28044 - 28056 [(apply~IHlog).] 0. secs (0.u,0.s) -Chars 28057 - 28071 [(simpl~in~Hdiv).] 0. secs (0.u,0.s) -Chars 28072 - 28094 [(unfold~append~in~Hdiv).] 0. secs (0.u,0.s) -Chars 28099 - 28124 [(rewrite~bind_vis~in~Hdiv).] 0.001 secs (0.001u,0.s) -Chars 28125 - 28135 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) +Chars 28044 - 28056 [apply~IHlog.] 0. secs (0.u,0.s) +Chars 28057 - 28071 [simpl~in~Hdiv.] 0. secs (0.u,0.s) +Chars 28072 - 28094 [unfold~append~in~Hdiv.] 0. secs (0.u,0.s) +Chars 28099 - 28124 [rewrite~bind_vis~in~Hdiv.] 0.001 secs (0.001u,0.s) +Chars 28125 - 28135 [sinv~Hdiv.] 0.003 secs (0.003u,0.s) Chars 28136 - 28149 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 28150 - 28156 [subst.] 0. secs (0.u,0.s) -Chars 28157 - 28166 [(apply~H0).] 0. secs (0.u,0.s) -Chars 28171 - 28180 [(apply~tt).] 0. secs (0.u,0.s) -Chars 28181 - 28185 [Qed.] 0.004 secs (0.004u,0.s) +Chars 28157 - 28166 [apply~H0.] 0. secs (0.u,0.s) +Chars 28171 - 28180 [apply~tt.] 0. secs (0.u,0.s) +Chars 28181 - 28185 [Qed.] 0.003 secs (0.003u,0.s) diff --git a/extra/ITrace/ITracePreds.v.timing b/extra/ITrace/ITracePreds.v.timing index f5de58d1..230fda3a 100644 --- a/extra/ITrace/ITracePreds.v.timing +++ b/extra/ITrace/ITracePreds.v.timing @@ -1,7 +1,7 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 83 - 148 [From~ITree~Require~Import~Axio...] 0.225 secs (0.19u,0.028s) -Chars 150 - 259 [From~ITree.Extra~Require~Impor...] 0.028 secs (0.023u,0.004s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 83 - 148 [From~ITree~Require~Import~Axio...] 0.157 secs (0.14u,0.016s) +Chars 150 - 259 [From~ITree.Extra~Require~Impor...] 0.044 secs (0.04u,0.004s) Chars 261 - 275 [Import~Monads.] 0. secs (0.u,0.s) Chars 276 - 297 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 298 - 327 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -10,76 +10,76 @@ Chars 841 - 891 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) Chars 893 - 988 [Definition~trace_forall_~{E}~{...] 0. secs (0.u,0.s) Chars 990 - 1076 [Lemma~trace_forall_mono~{E}~{R...] 0. secs (0.u,0.s) Chars 1077 - 1083 [Proof.] 0. secs (0.u,0.s) -Chars 1086 - 1099 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1100 - 1110 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 1111 - 1115 [(red).] 0. secs (0.u,0.s) -Chars 1116 - 1172 [(induction~H0;~constructor;~in...] 0.001 secs (0.u,0.s) +Chars 1086 - 1099 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1100 - 1110 [red~in~H0.] 0. secs (0.u,0.s) +Chars 1111 - 1115 [red.] 0. secs (0.u,0.s) +Chars 1116 - 1172 [induction~H0;~constructor;~int...] 0. secs (0.u,0.s) Chars 1174 - 1178 [Qed.] 0. secs (0.u,0.s) Chars 1180 - 1264 [Definition~trace_forall_mon~{E...] 0. secs (0.u,0.s) Chars 1267 - 1340 [Definition~trace_forall~{E}~{R...] 0. secs (0.u,0.s) -Chars 1342 - 1597 [Lemma~trace_forall_proper_aux~...] 0.032 secs (0.029u,0.003s) +Chars 1342 - 1597 [Lemma~trace_forall_proper_aux~...] 0. secs (0.u,0.s) Chars 1598 - 1604 [Proof.] 0. secs (0.u,0.s) -Chars 1607 - 1624 [(intros~E~R~PE~PR).] 0. secs (0.u,0.s) +Chars 1607 - 1624 [intros~E~R~PE~PR.] 0. secs (0.u,0.s) Chars 1625 - 1644 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1645 - 1672 [(intros~b1~b2~Heutt~Hforall).] 0. secs (0.u,0.s) +Chars 1645 - 1672 [intros~b1~b2~Heutt~Hforall.] 0. secs (0.u,0.s) Chars 1675 - 1691 [step~in~Hforall.] 0. secs (0.u,0.s) Chars 1694 - 1708 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 1709 - 1738 [(induction~Heutt;~subst;~auto).] 0.001 secs (0.001u,0.s) +Chars 1709 - 1738 [induction~Heutt;~subst;~auto.] 0.001 secs (0.001u,0.s) Chars 1742 - 1743 [-] 0. secs (0.u,0.s) -Chars 1744 - 1756 [(inv~Hforall).] 0.002 secs (0.002u,0.s) +Chars 1744 - 1756 [inv~Hforall.] 0.001 secs (0.001u,0.s) Chars 1757 - 1773 [auto~with~itree.] 0. secs (0.u,0.s) Chars 1776 - 1777 [-] 0. secs (0.u,0.s) -Chars 1778 - 1790 [(inv~Hforall).] 0.002 secs (0.002u,0.s) +Chars 1778 - 1790 [inv~Hforall.] 0.001 secs (0.001u,0.s) Chars 1792 - 1804 [constructor.] 0. secs (0.u,0.s) -Chars 1805 - 1823 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 1805 - 1823 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 1826 - 1827 [-] 0. secs (0.u,0.s) -Chars 1828 - 1840 [(inv~Hforall).] 0.005 secs (0.005u,0.s) -Chars 1841 - 1854 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 1828 - 1840 [inv~Hforall.] 0.003 secs (0.003u,0.s) +Chars 1841 - 1854 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 1855 - 1861 [subst.] 0. secs (0.u,0.s) -Chars 1867 - 1885 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 1886 - 1893 [(intros).] 0. secs (0.u,0.s) -Chars 1894 - 1905 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 1911 - 1921 [(apply~REL).] 0. secs (0.u,0.s) -Chars 1927 - 1936 [(apply~H3).] 0. secs (0.u,0.s) +Chars 1867 - 1885 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 1886 - 1893 [intros.] 0. secs (0.u,0.s) +Chars 1894 - 1905 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 1911 - 1921 [apply~REL.] 0. secs (0.u,0.s) +Chars 1927 - 1936 [apply~H3.] 0. secs (0.u,0.s) Chars 1939 - 1940 [-] 0. secs (0.u,0.s) -Chars 1941 - 1955 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 1956 - 1968 [(inv~Hforall).] 0.005 secs (0.005u,0.s) +Chars 1941 - 1955 [apply~IHHeutt.] 0. secs (0.u,0.s) +Chars 1956 - 1968 [inv~Hforall.] 0.04 secs (0.04u,0.s) Chars 1969 - 1984 [now~step~in~H0.] 0. secs (0.u,0.s) Chars 1987 - 1988 [-] 0. secs (0.u,0.s) Chars 1989 - 2001 [constructor.] 0. secs (0.u,0.s) Chars 2002 - 2013 [Utils.step.] 0. secs (0.u,0.s) -Chars 2014 - 2028 [(apply~IHHeutt).] 0. secs (0.u,0.s) +Chars 2014 - 2028 [apply~IHHeutt.] 0. secs (0.u,0.s) Chars 2029 - 2034 [auto.] 0. secs (0.u,0.s) -Chars 2035 - 2039 [Qed.] 0.054 secs (0.054u,0.s) +Chars 2035 - 2039 [Qed.] 0.007 secs (0.007u,0.s) Chars 2041 - 2150 [#[global]~Instance~trace_foral...] 0. secs (0.u,0.s) Chars 2151 - 2157 [Proof.] 0. secs (0.u,0.s) -Chars 2160 - 2179 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) -Chars 2180 - 2194 [(split;~intros).] 0. secs (0.u,0.s) +Chars 2160 - 2179 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) +Chars 2180 - 2194 [split;~intros.] 0. secs (0.u,0.s) Chars 2197 - 2198 [-] 0. secs (0.u,0.s) -Chars 2199 - 2237 [(eapply~trace_forall_proper_au...] 0. secs (0.u,0.s) +Chars 2199 - 2237 [eapply~trace_forall_proper_aux...] 0. secs (0.u,0.s) Chars 2240 - 2241 [-] 0. secs (0.u,0.s) Chars 2242 - 2260 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 2261 - 2299 [(eapply~trace_forall_proper_au...] 0. secs (0.u,0.s) +Chars 2261 - 2299 [eapply~trace_forall_proper_aux...] 0. secs (0.u,0.s) Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) Chars 2306 - 2389 [Lemma~forall_spin~:~~~forall~E...] 0. secs (0.u,0.s) Chars 2390 - 2396 [Proof.] 0. secs (0.u,0.s) -Chars 2399 - 2406 [(intros).] 0. secs (0.u,0.s) +Chars 2399 - 2406 [intros.] 0. secs (0.u,0.s) Chars 2407 - 2426 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2427 - 2431 [(cbn).] 0. secs (0.u,0.s) +Chars 2427 - 2431 [cbn.] 0. secs (0.u,0.s) Chars 2432 - 2444 [constructor.] 0. secs (0.u,0.s) Chars 2447 - 2452 [auto.] 0. secs (0.u,0.s) Chars 2454 - 2458 [Qed.] 0. secs (0.u,0.s) -Chars 2460 - 3044 [Inductive~trace_inf_oftenF~{E~...] 0.002 secs (0.002u,0.s) +Chars 2460 - 3044 [Inductive~trace_inf_oftenF~{E~...] 0.001 secs (0.001u,0.s) Chars 3046 - 3099 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) Chars 3101 - 3196 [Definition~trace_inf_often_~{E...] 0. secs (0.u,0.s) Chars 3198 - 3284 [Lemma~trace_inf_often_mono~{E}...] 0. secs (0.u,0.s) Chars 3285 - 3291 [Proof.] 0. secs (0.u,0.s) -Chars 3294 - 3307 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 3308 - 3318 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 3319 - 3323 [(red).] 0. secs (0.u,0.s) -Chars 3324 - 3337 [(induction~H0).] 0. secs (0.u,0.s) +Chars 3294 - 3307 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3308 - 3318 [red~in~H0.] 0. secs (0.u,0.s) +Chars 3319 - 3323 [red.] 0. secs (0.u,0.s) +Chars 3324 - 3337 [induction~H0.] 0. secs (0.u,0.s) Chars 3340 - 3361 [1-2:~now~constructor.] 0. secs (0.u,0.s) -Chars 3364 - 3384 [(constructor~3;~auto).] 0. secs (0.u,0.s) +Chars 3364 - 3384 [constructor~3;~auto.] 0. secs (0.u,0.s) Chars 3385 - 3397 [now~apply~H.] 0. secs (0.u,0.s) Chars 3399 - 3403 [Qed.] 0. secs (0.u,0.s) Chars 3405 - 3489 [Definition~trace_inf_often_mon...] 0. secs (0.u,0.s) @@ -87,43 +87,43 @@ Chars 3491 - 3564 [Definition~trace_inf_often~{E}...] 0. secs (0.u,0.s) Chars 3566 - 4094 [Inductive~front_and_last~{E~:~...] 0.002 secs (0.002u,0.s) Chars 4096 - 4352 [Lemma~fal_proper_aux~:~~~foral...] 0. secs (0.u,0.s) Chars 4353 - 4359 [Proof.] 0. secs (0.u,0.s) -Chars 4362 - 4401 [(intros~E~R~PEF~PEL~PR~b1~b2~H...] 0. secs (0.u,0.s) +Chars 4362 - 4401 [intros~E~R~PEF~PEL~PR~b1~b2~He...] 0. secs (0.u,0.s) Chars 4404 - 4428 [generalize~dependent~b2.] 0. secs (0.u,0.s) -Chars 4429 - 4452 [(induction~Hfal;~intros).] 0. secs (0.u,0.s) +Chars 4429 - 4452 [induction~Hfal;~intros.] 0. secs (0.u,0.s) Chars 4455 - 4456 [-] 0. secs (0.u,0.s) -Chars 4457 - 4491 [(eapply~front_and_last_base;~e...] 0.002 secs (0.002u,0.s) -Chars 4496 - 4513 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 4457 - 4491 [eapply~front_and_last_base;~ea...] 0.001 secs (0.001u,0.s) +Chars 4496 - 4513 [rewrite~<-~Heutt.] 0.004 secs (0.004u,0.s) Chars 4514 - 4519 [auto.] 0. secs (0.u,0.s) Chars 4522 - 4523 [-] 0. secs (0.u,0.s) -Chars 4524 - 4558 [(eapply~front_and_last_cons;~e...] 0.002 secs (0.002u,0.s) -Chars 4559 - 4576 [(rewrite~<-~Heutt).] 0.003 secs (0.003u,0.s) +Chars 4524 - 4558 [eapply~front_and_last_cons;~ea...] 0.001 secs (0.001u,0.s) +Chars 4559 - 4576 [rewrite~<-~Heutt.] 0. secs (0.u,0.s) Chars 4577 - 4582 [auto.] 0. secs (0.u,0.s) Chars 4583 - 4587 [Qed.] 0.001 secs (0.001u,0.s) Chars 4589 - 4714 [#[global]~Instance~front_and_l...] 0. secs (0.u,0.s) Chars 4715 - 4721 [Proof.] 0. secs (0.u,0.s) -Chars 4724 - 4743 [(intros~b1~b2~Heutt).] 0. secs (0.u,0.s) -Chars 4744 - 4758 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4724 - 4743 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) +Chars 4744 - 4758 [split;~intros.] 0. secs (0.u,0.s) Chars 4761 - 4762 [-] 0. secs (0.u,0.s) -Chars 4763 - 4792 [(eapply~fal_proper_aux;~eauto).] 0. secs (0.u,0.s) +Chars 4763 - 4792 [eapply~fal_proper_aux;~eauto.] 0. secs (0.u,0.s) Chars 4795 - 4796 [-] 0. secs (0.u,0.s) Chars 4797 - 4815 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 4816 - 4845 [(eapply~fal_proper_aux;~eauto).] 0. secs (0.u,0.s) +Chars 4816 - 4845 [eapply~fal_proper_aux;~eauto.] 0. secs (0.u,0.s) Chars 4846 - 4850 [Qed.] 0. secs (0.u,0.s) Chars 4852 - 4873 [Section~StateMachine.] 0. secs (0.u,0.s) Chars 5158 - 5185 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 5188 - 5207 [Context~{R~:~Type}.] 0. secs (0.u,0.s) Chars 5210 - 5279 [Context~(EvTrans~:~forall~A,~E...] 0. secs (0.u,0.s) Chars 5282 - 5335 [Context~(RetTrans~:~forall~A,~...] 0. secs (0.u,0.s) -Chars 5339 - 5847 [Inductive~state_machineF~(PEv~...] 0.002 secs (0.002u,0.s) +Chars 5339 - 5847 [Inductive~state_machineF~(PEv~...] 0.001 secs (0.001u,0.s) Chars 5851 - 5892 [Hint~Constructors~state_machin...] 0. secs (0.u,0.s) Chars 5896 - 5997 [Definition~state_machine_~F~PE...] 0. secs (0.u,0.s) Chars 6001 - 6064 [Lemma~state_machine_mono~:~Pro...] 0. secs (0.u,0.s) Chars 6067 - 6073 [Proof.] 0. secs (0.u,0.s) Chars 6078 - 6086 [intros~!.] 0. secs (0.u,0.s) -Chars 6087 - 6091 [(red).] 0. secs (0.u,0.s) -Chars 6092 - 6102 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 6103 - 6133 [(induction~H0;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 6138 - 6156 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 6087 - 6091 [red.] 0. secs (0.u,0.s) +Chars 6092 - 6102 [red~in~H0.] 0. secs (0.u,0.s) +Chars 6103 - 6133 [induction~H0;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 6138 - 6156 [constructor;~auto.] 0. secs (0.u,0.s) Chars 6157 - 6169 [now~apply~H.] 0. secs (0.u,0.s) Chars 6173 - 6177 [Qed.] 0. secs (0.u,0.s) Chars 6181 - 6244 [Definition~state_machine_mon~:...] 0. secs (0.u,0.s) @@ -131,33 +131,33 @@ Chars 6248 - 6300 [Definition~state_machine~:=~gf...] 0. secs (0.u,0.s) Chars 6304 - 6451 [Lemma~state_machine_proper_aux...] 0. secs (0.u,0.s) Chars 6454 - 6460 [Proof.] 0. secs (0.u,0.s) Chars 6465 - 6484 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6485 - 6517 [(intros~PEV~PREt~t1~t2~Heutt~H...] 0. secs (0.u,0.s) -Chars 6523 - 6569 [(step~in~Hsm;~try~apply~monoto...] 0. secs (0.u,0.s) +Chars 6485 - 6517 [intros~PEV~PREt~t1~t2~Heutt~Hsm.] 0. secs (0.u,0.s) +Chars 6523 - 6569 [step~in~Hsm;~try~apply~monoton...] 0. secs (0.u,0.s) Chars 6574 - 6588 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 6593 - 6607 [(induction~Hsm).] 0. secs (0.u,0.s) +Chars 6593 - 6607 [induction~Hsm.] 0. secs (0.u,0.s) Chars 6612 - 6613 [-] 0. secs (0.u,0.s) -Chars 6614 - 6639 [(remember~(RetF~r)~as~ot1).] 0. secs (0.u,0.s) -Chars 6640 - 6698 [(induction~Heutt;~subst;~auto~...] 0.003 secs (0.003u,0.s) -Chars 6705 - 6754 [(injection~Heqot1;~intros;~sub...] 0. secs (0.u,0.s) +Chars 6614 - 6639 [remember~(RetF~r)~as~ot1.] 0. secs (0.u,0.s) +Chars 6640 - 6698 [induction~Heutt;~subst;~auto~w...] 0.002 secs (0.002u,0.s) +Chars 6705 - 6754 [injection~Heqot1;~intros;~subs...] 0. secs (0.u,0.s) Chars 6759 - 6760 [-] 0. secs (0.u,0.s) -Chars 6761 - 6773 [(apply~IHHsm).] 0. secs (0.u,0.s) -Chars 6774 - 6781 [unstep.] 0.004 secs (0.004u,0.s) -Chars 6782 - 6816 [(assert~(Tau~t~≈~t2)~by~now~st...] 0.002 secs (0.002u,0.s) -Chars 6824 - 6846 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.022u,0.s) +Chars 6761 - 6773 [apply~IHHsm.] 0. secs (0.u,0.s) +Chars 6774 - 6781 [unstep.] 0.003 secs (0.003u,0.s) +Chars 6782 - 6816 [assert~(Tau~t~≈~t2)~by~now~step.] 0.005 secs (0.005u,0.s) +Chars 6824 - 6846 [rewrite~tau_eutt~in~H.] 0.013 secs (0.013u,0.s) Chars 6847 - 6852 [auto.] 0. secs (0.u,0.s) Chars 6857 - 6858 [-] 0. secs (0.u,0.s) -Chars 6859 - 6899 [(remember~(VisF~(evans~A~e~a)~...] 0. secs (0.u,0.s) -Chars 6900 - 6958 [(induction~Heutt;~subst;~auto~...] 0.003 secs (0.003u,0.s) -Chars 6965 - 6997 [(injection~Heqot1;~intros;~sub...] 0.001 secs (0.001u,0.s) -Chars 6998 - 7023 [dependent~destruction~H1.] 0.003 secs (0.003u,0.s) +Chars 6859 - 6899 [remember~(VisF~(evans~A~e~a)~k...] 0. secs (0.u,0.s) +Chars 6900 - 6958 [induction~Heutt;~subst;~auto~w...] 0.003 secs (0.003u,0.s) +Chars 6965 - 6997 [injection~Heqot1;~intros;~subst.] 0. secs (0.u,0.s) +Chars 6998 - 7023 [dependent~destruction~H1.] 0.002 secs (0.002u,0.s) Chars 7030 - 7036 [subst.] 0. secs (0.u,0.s) -Chars 7037 - 7055 [(constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 7056 - 7089 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) -Chars 7093 - 7097 [Qed.] 0.01 secs (0.01u,0.s) +Chars 7037 - 7055 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7056 - 7089 [eapply~CIH;~try~apply~REL;~eauto.] 0. secs (0.u,0.s) +Chars 7093 - 7097 [Qed.] 0.007 secs (0.007u,0.s) Chars 7101 - 7210 [#[global]~Instance~state_machi...] 0. secs (0.u,0.s) Chars 7213 - 7219 [Proof.] 0. secs (0.u,0.s) -Chars 7224 - 7243 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 7244 - 7288 [(assert~(Heutt2~:~t2~≈~t1)~by~...] 0. secs (0.u,0.s) -Chars 7294 - 7348 [(split;~intros;~eapply~state_m...] 0.001 secs (0.001u,0.s) +Chars 7224 - 7243 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 7244 - 7288 [assert~(Heutt2~:~t2~≈~t1)~by~n...] 0. secs (0.u,0.s) +Chars 7294 - 7348 [split;~intros;~eapply~state_ma...] 0. secs (0.u,0.s) Chars 7352 - 7356 [Qed.] 0. secs (0.u,0.s) -Chars 7358 - 7375 [End~StateMachine.] 0.001 secs (0.001u,0.s) +Chars 7358 - 7375 [End~StateMachine.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITracePrefix.v.timing b/extra/ITrace/ITracePrefix.v.timing index 3e7f6b98..85714477 100644 --- a/extra/ITrace/ITracePrefix.v.timing +++ b/extra/ITrace/ITracePrefix.v.timing @@ -1,116 +1,116 @@ -Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.24 secs (0.205u,0.033s) -Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.015 secs (0.012u,0.002s) +Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.16 secs (0.143u,0.016s) +Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.01 secs (0.008u,0.001s) Chars 293 - 307 [Import~Monads.] 0. secs (0.u,0.s) Chars 308 - 329 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 330 - 362 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) Chars 364 - 387 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.006 secs (0.005u,0.001s) +Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.004 secs (0.003u,0.s) Chars 1395 - 1445 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) Chars 1447 - 1563 [Definition~trace_prefix_~{E}~{...] 0. secs (0.u,0.s) Chars 1565 - 1609 [#[global]~Hint~Unfold~trace_pr...] 0. secs (0.u,0.s) Chars 1611 - 1689 [Lemma~trace_prefix_mono~{E}~{R...] 0. secs (0.u,0.s) Chars 1690 - 1696 [Proof.] 0. secs (0.u,0.s) -Chars 1699 - 1712 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1713 - 1717 [(red).] 0. secs (0.u,0.s) -Chars 1718 - 1728 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 1729 - 1789 [(induction~H0;~eauto~with~itre...] 0.042 secs (0.036u,0.006s) +Chars 1699 - 1712 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1713 - 1717 [red.] 0. secs (0.u,0.s) +Chars 1718 - 1728 [red~in~H0.] 0. secs (0.u,0.s) +Chars 1729 - 1789 [induction~H0;~eauto~with~itree...] 0.002 secs (0.002u,0.s) Chars 1791 - 1795 [Qed.] 0.001 secs (0.001u,0.s) Chars 1797 - 1873 [Definition~trace_prefix_mon~{E...] 0. secs (0.u,0.s) Chars 1875 - 1975 [Definition~trace_prefix~{E}~{R...] 0. secs (0.u,0.s) Chars 1977 - 2170 [Lemma~prefix_vis~:~~~forall~E~...] 0. secs (0.u,0.s) Chars 2171 - 2177 [Proof.] 0. secs (0.u,0.s) -Chars 2180 - 2209 [(intros~E~R~S~A~e~ans~k~t~Hbp).] 0. secs (0.u,0.s) +Chars 2180 - 2209 [intros~E~R~S~A~e~ans~k~t~Hbp.] 0. secs (0.u,0.s) Chars 2210 - 2222 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 2223 - 2232 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 2235 - 2259 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) +Chars 2223 - 2232 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 2235 - 2259 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) Chars 2262 - 2263 [-] 0. secs (0.u,0.s) -Chars 2264 - 2283 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 2284 - 2343 [(enough~(exists~k',~bs~≈~Vis~(...] 0. secs (0.u,0.s) +Chars 2264 - 2283 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 2284 - 2343 [enough~(exists~k',~bs~≈~Vis~(e...] 0. secs (0.u,0.s) Chars 2348 - 2349 [+] 0. secs (0.u,0.s) -Chars 2350 - 2373 [(destruct~H~as~[k'~Hk']).] 0. secs (0.u,0.s) +Chars 2350 - 2373 [destruct~H~as~[k'~Hk'].] 0. secs (0.u,0.s) Chars 2374 - 2384 [exists~k'.] 0. secs (0.u,0.s) -Chars 2385 - 2395 [(rewrite~x).] 0.003 secs (0.003u,0.s) -Chars 2396 - 2413 [(rewrite~tau_eutt).] 0.002 secs (0.002u,0.s) +Chars 2385 - 2395 [rewrite~x.] 0.002 secs (0.002u,0.s) +Chars 2396 - 2413 [rewrite~tau_eutt.] 0.035 secs (0.035u,0.s) Chars 2414 - 2419 [auto.] 0. secs (0.u,0.s) Chars 2424 - 2425 [+] 0. secs (0.u,0.s) -Chars 2426 - 2446 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 2426 - 2446 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) Chars 2449 - 2450 [-] 0. secs (0.u,0.s) Chars 2451 - 2461 [exists~ks.] 0. secs (0.u,0.s) -Chars 2462 - 2481 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 2482 - 2492 [(rewrite~x).] 0.044 secs (0.044u,0.s) +Chars 2462 - 2481 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 2482 - 2492 [rewrite~x.] 0.001 secs (0.001u,0.s) Chars 2493 - 2505 [reflexivity.] 0. secs (0.u,0.s) -Chars 2506 - 2510 [Qed.] 0.011 secs (0.011u,0.s) +Chars 2506 - 2510 [Qed.] 0.008 secs (0.008u,0.s) Chars 2512 - 2608 [Lemma~trace_prefix_ret~:~~~for...] 0. secs (0.u,0.s) Chars 2609 - 2615 [Proof.] 0. secs (0.u,0.s) -Chars 2618 - 2625 [(intros).] 0. secs (0.u,0.s) -Chars 2626 - 2648 [(remember~(go~ob)~as~b).] 0. secs (0.u,0.s) -Chars 2649 - 2673 [(assert~(observe~b~=~ob)).] 0. secs (0.u,0.s) +Chars 2618 - 2625 [intros.] 0. secs (0.u,0.s) +Chars 2626 - 2648 [remember~(go~ob)~as~b.] 0. secs (0.u,0.s) +Chars 2649 - 2673 [assert~(observe~b~=~ob).] 0. secs (0.u,0.s) Chars 2676 - 2677 [{] 0. secs (0.u,0.s) Chars 2678 - 2684 [subst.] 0. secs (0.u,0.s) Chars 2685 - 2690 [auto.] 0. secs (0.u,0.s) Chars 2691 - 2692 [}] 0. secs (0.u,0.s) -Chars 2695 - 2708 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 2695 - 2708 [rewrite~<-~H.] 0. secs (0.u,0.s) Chars 2709 - 2725 [auto~with~itree.] 0. secs (0.u,0.s) Chars 2726 - 2730 [Qed.] 0. secs (0.u,0.s) Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.001 secs (0.001u,0.s) Chars 3374 - 3380 [Proof.] 0. secs (0.u,0.s) -Chars 3383 - 3423 [(intros~E~S~R~t1~b2~Heutt~r~X~...] 0. secs (0.u,0.s) -Chars 3426 - 3449 [dependent~induction~H0.] 0.019 secs (0.018u,0.s) +Chars 3383 - 3423 [intros~E~S~R~t1~b2~Heutt~r~X~e...] 0. secs (0.u,0.s) +Chars 3426 - 3449 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) Chars 3452 - 3453 [-] 0. secs (0.u,0.s) -Chars 3454 - 3477 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) -Chars 3478 - 3504 [dependent~induction~Heutt.] 0.035 secs (0.035u,0.s) +Chars 3454 - 3477 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) +Chars 3478 - 3504 [dependent~induction~Heutt.] 0.025 secs (0.025u,0.s) Chars 3509 - 3510 [+] 0. secs (0.u,0.s) -Chars 3511 - 3519 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 3520 - 3543 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 3511 - 3519 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 3520 - 3543 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 3548 - 3549 [+] 0. secs (0.u,0.s) -Chars 3550 - 3558 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 3550 - 3558 [simpobs.] 0.004 secs (0.004u,0.s) Chars 3559 - 3571 [constructor.] 0. secs (0.u,0.s) -Chars 3572 - 3594 [(eapply~IHHeutt;~eauto).] 0.004 secs (0.004u,0.s) +Chars 3572 - 3594 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) Chars 3597 - 3598 [-] 0. secs (0.u,0.s) -Chars 3599 - 3622 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 3599 - 3622 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) Chars 3623 - 3638 [3:~reflexivity.] 0. secs (0.u,0.s) Chars 3639 - 3650 [all:~eauto.] 0. secs (0.u,0.s) -Chars 3656 - 3675 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 3676 - 3707 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) -Chars 3712 - 3727 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) -Chars 3728 - 3750 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.022u,0.s) +Chars 3656 - 3675 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 3676 - 3707 [assert~(t1~≈~b2)~by~now~step.] 0.001 secs (0.001u,0.s) +Chars 3712 - 3727 [rewrite~x~in~H.] 0.017 secs (0.017u,0.s) +Chars 3728 - 3750 [rewrite~tau_eutt~in~H.] 0.013 secs (0.013u,0.s) Chars 3751 - 3765 [now~step~in~H.] 0. secs (0.u,0.s) Chars 3768 - 3769 [-] 0. secs (0.u,0.s) -Chars 3770 - 3792 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) -Chars 3793 - 3819 [dependent~induction~Heutt.] 0.04 secs (0.04u,0.s) +Chars 3770 - 3792 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) +Chars 3793 - 3819 [dependent~induction~Heutt.] 0.028 secs (0.028u,0.s) Chars 3824 - 3825 [+] 0. secs (0.u,0.s) Chars 3826 - 3834 [simpobs.] 0.001 secs (0.001u,0.s) Chars 3835 - 3847 [constructor.] 0. secs (0.u,0.s) Chars 3852 - 3853 [+] 0. secs (0.u,0.s) -Chars 3854 - 3862 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 3854 - 3862 [simpobs.] 0.003 secs (0.003u,0.s) Chars 3863 - 3875 [constructor.] 0. secs (0.u,0.s) -Chars 3876 - 3898 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 3876 - 3898 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) Chars 3901 - 3902 [-] 0. secs (0.u,0.s) -Chars 3903 - 3925 [(rewrite~<-~x~in~Heutt).] 0. secs (0.u,0.s) -Chars 3926 - 3952 [dependent~induction~Heutt.] 0.052 secs (0.051u,0.001s) +Chars 3903 - 3925 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) +Chars 3926 - 3952 [dependent~induction~Heutt.] 0.033 secs (0.033u,0.s) Chars 3957 - 3958 [+] 0. secs (0.u,0.s) -Chars 3959 - 3967 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 3959 - 3967 [simpobs.] 0.001 secs (0.001u,0.s) Chars 3968 - 3980 [constructor.] 0. secs (0.u,0.s) -Chars 3981 - 4010 [(eapply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 3981 - 4010 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 4015 - 4016 [+] 0. secs (0.u,0.s) -Chars 4017 - 4025 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 4017 - 4025 [simpobs.] 0.002 secs (0.002u,0.s) Chars 4026 - 4038 [constructor.] 0. secs (0.u,0.s) -Chars 4039 - 4061 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 4062 - 4066 [Qed.] 0.097 secs (0.095u,0.001s) -Chars 4068 - 4282 [Lemma~trace_prefix_tau_inv~:~~...] 0.001 secs (0.001u,0.s) +Chars 4039 - 4061 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4062 - 4066 [Qed.] 0.065 secs (0.064u,0.s) +Chars 4068 - 4282 [Lemma~trace_prefix_tau_inv~:~~...] 0. secs (0.u,0.s) Chars 4283 - 4289 [Proof.] 0. secs (0.u,0.s) -Chars 4292 - 4314 [(intros~E~S~R~m1~t~Hbp).] 0. secs (0.u,0.s) -Chars 4317 - 4341 [dependent~induction~Hbp.] 0.007 secs (0.007u,0.s) +Chars 4292 - 4314 [intros~E~S~R~m1~t~Hbp.] 0. secs (0.u,0.s) +Chars 4317 - 4341 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) Chars 4344 - 4345 [-] 0. secs (0.u,0.s) Chars 4346 - 4351 [auto.] 0. secs (0.u,0.s) Chars 4354 - 4355 [-] 0. secs (0.u,0.s) Chars 4356 - 4361 [step.] 0. secs (0.u,0.s) Chars 4362 - 4374 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4375 - 4399 [dependent~induction~Hbp.] 0.012 secs (0.011u,0.s) +Chars 4375 - 4399 [dependent~induction~Hbp.] 0.006 secs (0.006u,0.s) Chars 4404 - 4405 [+] 0. secs (0.u,0.s) -Chars 4406 - 4420 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 4406 - 4420 [rewrite~<-~x0.] 0. secs (0.u,0.s) Chars 4421 - 4437 [auto~with~itree.] 0. secs (0.u,0.s) Chars 4442 - 4443 [+] 0. secs (0.u,0.s) Chars 4444 - 4452 [simpobs.] 0. secs (0.u,0.s) @@ -119,13 +119,13 @@ Chars 4466 - 4480 [now~step~in~H.] 0. secs (0.u,0.s) Chars 4485 - 4486 [+] 0. secs (0.u,0.s) Chars 4487 - 4495 [simpobs.] 0. secs (0.u,0.s) Chars 4496 - 4508 [constructor.] 0. secs (0.u,0.s) -Chars 4509 - 4529 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 4509 - 4529 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) Chars 4534 - 4535 [+] 0. secs (0.u,0.s) Chars 4536 - 4541 [auto.] 0. secs (0.u,0.s) Chars 4544 - 4545 [-] 0. secs (0.u,0.s) Chars 4546 - 4551 [step.] 0. secs (0.u,0.s) Chars 4552 - 4564 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4565 - 4589 [dependent~induction~Hbp.] 0.008 secs (0.008u,0.s) +Chars 4565 - 4589 [dependent~induction~Hbp.] 0.006 secs (0.006u,0.s) Chars 4594 - 4595 [+] 0. secs (0.u,0.s) Chars 4596 - 4604 [simpobs.] 0. secs (0.u,0.s) Chars 4605 - 4617 [constructor.] 0. secs (0.u,0.s) @@ -135,191 +135,191 @@ Chars 4639 - 4644 [auto.] 0. secs (0.u,0.s) Chars 4649 - 4650 [+] 0. secs (0.u,0.s) Chars 4651 - 4659 [simpobs.] 0. secs (0.u,0.s) Chars 4660 - 4672 [constructor.] 0. secs (0.u,0.s) -Chars 4673 - 4693 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) -Chars 4694 - 4698 [Qed.] 0.017 secs (0.017u,0.s) +Chars 4673 - 4693 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) +Chars 4694 - 4698 [Qed.] 0.011 secs (0.011u,0.s) Chars 4700 - 4840 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) Chars 4841 - 4847 [Proof.] 0. secs (0.u,0.s) -Chars 4850 - 4863 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 4864 - 4883 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4884 - 4909 [(intros~b1~b2~b~Heutt~Hbp).] 0. secs (0.u,0.s) +Chars 4850 - 4863 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 4864 - 4883 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 4884 - 4909 [intros~b1~b2~b~Heutt~Hbp.] 0. secs (0.u,0.s) Chars 4912 - 4926 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 4927 - 4939 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 4942 - 4968 [dependent~induction~Heutt.] 0.042 secs (0.041u,0.s) +Chars 4942 - 4968 [dependent~induction~Heutt.] 0.029 secs (0.028u,0.s) Chars 4971 - 4972 [-] 0. secs (0.u,0.s) -Chars 4973 - 4981 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4973 - 4981 [simpobs.] 0.001 secs (0.001u,0.s) Chars 4982 - 4994 [constructor.] 0. secs (0.u,0.s) Chars 4997 - 4998 [-] 0. secs (0.u,0.s) -Chars 4999 - 5007 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4999 - 5007 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5008 - 5019 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 5024 - 5056 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) +Chars 5024 - 5056 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) Chars 5061 - 5062 [+] 0. secs (0.u,0.s) -Chars 5063 - 5071 [(inv~Hbp).] 0.015 secs (0.014u,0.s) +Chars 5063 - 5071 [inv~Hbp.] 0.01 secs (0.01u,0.s) Chars 5072 - 5084 [constructor.] 0. secs (0.u,0.s) -Chars 5085 - 5109 [dependent~induction~H0.] 0.016 secs (0.016u,0.s) +Chars 5085 - 5109 [dependent~induction~H0.] 0.011 secs (0.011u,0.s) Chars 5116 - 5117 [*] 0. secs (0.u,0.s) -Chars 5118 - 5138 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) -Chars 5139 - 5164 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 5173 - 5189 [(rewrite~x0~in~H).] 0.022 secs (0.021u,0.s) +Chars 5118 - 5138 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) +Chars 5139 - 5164 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5173 - 5189 [rewrite~x0~in~H.] 0.015 secs (0.015u,0.s) Chars 5190 - 5214 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) Chars 5223 - 5233 [step~in~H.] 0. secs (0.u,0.s) -Chars 5234 - 5243 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5244 - 5266 [dependent~induction~H.] 0.04 secs (0.039u,0.s) +Chars 5234 - 5243 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5244 - 5266 [dependent~induction~H.] 0.027 secs (0.027u,0.s) Chars 5275 - 5277 [++] 0. secs (0.u,0.s) Chars 5278 - 5286 [simpobs.] 0. secs (0.u,0.s) -Chars 5287 - 5310 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 5287 - 5310 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 5319 - 5321 [++] 0. secs (0.u,0.s) Chars 5322 - 5330 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5331 - 5343 [constructor.] 0. secs (0.u,0.s) -Chars 5344 - 5366 [(eapply~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) +Chars 5344 - 5366 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) Chars 5373 - 5374 [*] 0. secs (0.u,0.s) -Chars 5375 - 5398 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 5375 - 5398 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) Chars 5399 - 5414 [5:~reflexivity.] 0. secs (0.u,0.s) -Chars 5415 - 5425 [all:~auto.] 0.001 secs (0.001u,0.s) -Chars 5434 - 5453 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 5454 - 5479 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.u,0.s) -Chars 5488 - 5503 [(rewrite~x~in~H).] 0.024 secs (0.024u,0.s) -Chars 5504 - 5526 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) +Chars 5415 - 5425 [all:~auto.] 0. secs (0.u,0.s) +Chars 5434 - 5453 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 5454 - 5479 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5488 - 5503 [rewrite~x~in~H.] 0.017 secs (0.017u,0.s) +Chars 5504 - 5526 [rewrite~tau_eutt~in~H.] 0.014 secs (0.014u,0.s) Chars 5527 - 5532 [auto.] 0. secs (0.u,0.s) Chars 5537 - 5538 [+] 0. secs (0.u,0.s) Chars 5539 - 5551 [constructor.] 0. secs (0.u,0.s) -Chars 5552 - 5570 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 5571 - 5606 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) +Chars 5552 - 5570 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 5571 - 5606 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) Chars 5611 - 5612 [+] 0. secs (0.u,0.s) Chars 5613 - 5625 [constructor.] 0. secs (0.u,0.s) Chars 5626 - 5637 [clear~Heqb.] 0. secs (0.u,0.s) -Chars 5638 - 5646 [(inv~Hbp).] 0.013 secs (0.013u,0.s) -Chars 5647 - 5670 [dependent~induction~H0.] 0.018 secs (0.018u,0.s) +Chars 5638 - 5646 [inv~Hbp.] 0.01 secs (0.01u,0.s) +Chars 5647 - 5670 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) Chars 5677 - 5678 [*] 0. secs (0.u,0.s) -Chars 5679 - 5699 [(apply~simpobs~in~x0).] 0. secs (0.u,0.s) -Chars 5700 - 5725 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 5734 - 5750 [(rewrite~x0~in~H).] 0.02 secs (0.02u,0.s) +Chars 5679 - 5699 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) +Chars 5700 - 5725 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5734 - 5750 [rewrite~x0~in~H.] 0.014 secs (0.014u,0.s) Chars 5751 - 5761 [step~in~H.] 0. secs (0.u,0.s) -Chars 5762 - 5771 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 5780 - 5802 [dependent~induction~H.] 0.07 secs (0.069u,0.s) +Chars 5762 - 5771 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 5780 - 5802 [dependent~induction~H.] 0.05 secs (0.049u,0.s) Chars 5811 - 5813 [++] 0. secs (0.u,0.s) Chars 5814 - 5822 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5823 - 5846 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 5823 - 5846 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 5855 - 5857 [++] 0. secs (0.u,0.s) -Chars 5858 - 5866 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 5858 - 5866 [simpobs.] 0.002 secs (0.002u,0.s) Chars 5867 - 5879 [constructor.] 0. secs (0.u,0.s) -Chars 5880 - 5916 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) -Chars 5929 - 5954 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 5966 - 5974 [sinv~x0.] 0.019 secs (0.019u,0.s) -Chars 5975 - 5998 [(apply~simpobs~in~x,~H2).] 0. secs (0.u,0.s) -Chars 6012 - 6042 [(rewrite~x,~H2,~tau_eutt~in~H0).] 0.055 secs (0.055u,0.s) -Chars 6055 - 6077 [now~rewrite~<-~H0,~H2.] 0.003 secs (0.003u,0.s) +Chars 5880 - 5916 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) +Chars 5929 - 5954 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 5966 - 5974 [sinv~x0.] 0.015 secs (0.014u,0.s) +Chars 5975 - 5998 [apply~simpobs~in~x,~H2.] 0. secs (0.u,0.s) +Chars 6012 - 6042 [rewrite~x,~H2,~tau_eutt~in~H0.] 0.037 secs (0.037u,0.s) +Chars 6055 - 6077 [now~rewrite~<-~H0,~H2.] 0.002 secs (0.002u,0.s) Chars 6085 - 6086 [*] 0. secs (0.u,0.s) -Chars 6087 - 6110 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 6087 - 6110 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) Chars 6111 - 6126 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 6127 - 6137 [all:~auto.] 0.001 secs (0.001u,0.s) -Chars 6146 - 6171 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 6172 - 6191 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6200 - 6215 [(rewrite~x~in~H).] 0.021 secs (0.021u,0.s) -Chars 6216 - 6238 [(rewrite~tau_eutt~in~H).] 0.019 secs (0.019u,0.s) +Chars 6127 - 6137 [all:~auto.] 0. secs (0.u,0.s) +Chars 6146 - 6171 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6172 - 6191 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6200 - 6215 [rewrite~x~in~H.] 0.015 secs (0.015u,0.s) +Chars 6216 - 6238 [rewrite~tau_eutt~in~H.] 0.014 secs (0.013u,0.s) Chars 6239 - 6244 [auto.] 0. secs (0.u,0.s) Chars 6251 - 6252 [*] 0. secs (0.u,0.s) -Chars 6253 - 6278 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 6279 - 6298 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6307 - 6323 [(rewrite~x~in~H0).] 0.02 secs (0.02u,0.s) +Chars 6253 - 6278 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6279 - 6298 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6307 - 6323 [rewrite~x~in~H0.] 0.014 secs (0.014u,0.s) Chars 6332 - 6343 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6344 - 6353 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6362 - 6385 [dependent~induction~H0.] 0.059 secs (0.058u,0.s) +Chars 6344 - 6353 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6362 - 6385 [dependent~induction~H0.] 0.041 secs (0.041u,0.s) Chars 6394 - 6396 [++] 0. secs (0.u,0.s) Chars 6397 - 6405 [simpobs.] 0.001 secs (0.001u,0.s) Chars 6406 - 6418 [constructor.] 0. secs (0.u,0.s) Chars 6427 - 6429 [++] 0. secs (0.u,0.s) Chars 6430 - 6438 [simpobs.] 0.001 secs (0.001u,0.s) Chars 6439 - 6451 [constructor.] 0. secs (0.u,0.s) -Chars 6452 - 6488 [(eapply~IHeqitF;~try~apply~x0;...] 0.005 secs (0.005u,0.s) -Chars 6500 - 6525 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 6537 - 6556 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6557 - 6573 [(rewrite~x~in~H1).] 0.032 secs (0.032u,0.s) -Chars 6574 - 6597 [(rewrite~tau_eutt~in~H1).] 0.001 secs (0.001u,0.s) +Chars 6452 - 6488 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) +Chars 6500 - 6525 [assert~(m1~≈~m2);~auto.] 0.001 secs (0.001u,0.s) +Chars 6537 - 6556 [apply~simpobs~in~x.] 0.001 secs (0.001u,0.s) +Chars 6557 - 6573 [rewrite~x~in~H1.] 0.022 secs (0.022u,0.s) +Chars 6574 - 6597 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) Chars 6598 - 6603 [auto.] 0. secs (0.u,0.s) Chars 6610 - 6611 [*] 0. secs (0.u,0.s) -Chars 6613 - 6632 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6633 - 6658 [(assert~(m1~≈~m2);~auto).] 0. secs (0.u,0.s) -Chars 6667 - 6683 [(rewrite~x~in~H0).] 0.021 secs (0.021u,0.s) +Chars 6613 - 6632 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6633 - 6658 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6667 - 6683 [rewrite~x~in~H0.] 0.015 secs (0.015u,0.s) Chars 6684 - 6695 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6696 - 6705 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6714 - 6737 [dependent~induction~H0.] 0.064 secs (0.063u,0.s) +Chars 6696 - 6705 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6714 - 6737 [dependent~induction~H0.] 0.045 secs (0.044u,0.s) Chars 6746 - 6748 [++] 0. secs (0.u,0.s) Chars 6749 - 6757 [simpobs.] 0.001 secs (0.001u,0.s) Chars 6758 - 6770 [constructor.] 0. secs (0.u,0.s) -Chars 6771 - 6805 [(eapply~CIH;~try~apply~REL0;~e...] 0. secs (0.u,0.s) +Chars 6771 - 6805 [eapply~CIH;~try~apply~REL0;~ea...] 0. secs (0.u,0.s) Chars 6815 - 6817 [++] 0. secs (0.u,0.s) -Chars 6818 - 6826 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 6818 - 6826 [simpobs.] 0.001 secs (0.001u,0.s) Chars 6827 - 6839 [constructor.] 0. secs (0.u,0.s) -Chars 6840 - 6876 [(eapply~IHeqitF;~try~apply~x0;...] 0.006 secs (0.006u,0.s) -Chars 6888 - 6913 [(assert~(m1~≈~m2);~auto).] 0.001 secs (0.001u,0.s) -Chars 6925 - 6944 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 6945 - 6961 [(rewrite~x~in~H1).] 0.031 secs (0.031u,0.s) -Chars 6962 - 6985 [(rewrite~tau_eutt~in~H1).] 0. secs (0.u,0.s) +Chars 6840 - 6876 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) +Chars 6888 - 6913 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) +Chars 6925 - 6944 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 6945 - 6961 [rewrite~x~in~H1.] 0.025 secs (0.025u,0.s) +Chars 6962 - 6985 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) Chars 6986 - 6991 [auto.] 0. secs (0.u,0.s) Chars 6994 - 6995 [-] 0. secs (0.u,0.s) Chars 6996 - 7004 [simpobs.] 0.002 secs (0.002u,0.s) Chars 7005 - 7016 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 7022 - 7046 [dependent~induction~Hbp.] 0.016 secs (0.016u,0.s) +Chars 7022 - 7046 [dependent~induction~Hbp.] 0.012 secs (0.012u,0.s) Chars 7051 - 7052 [+] 0. secs (0.u,0.s) Chars 7053 - 7061 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7062 - 7074 [constructor.] 0. secs (0.u,0.s) -Chars 7075 - 7095 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 7075 - 7095 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) Chars 7100 - 7101 [+] 0. secs (0.u,0.s) -Chars 7102 - 7110 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7102 - 7110 [simpobs.] 0. secs (0.u,0.s) Chars 7111 - 7123 [constructor.] 0. secs (0.u,0.s) Chars 7128 - 7129 [+] 0. secs (0.u,0.s) -Chars 7130 - 7138 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 7130 - 7138 [simpobs.] 0. secs (0.u,0.s) Chars 7140 - 7152 [constructor.] 0. secs (0.u,0.s) -Chars 7153 - 7197 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 7153 - 7197 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) Chars 7200 - 7201 [-] 0. secs (0.u,0.s) -Chars 7202 - 7222 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) -Chars 7227 - 7259 [(destruct~(observe~b)~eqn:Heqb).] 0. secs (0.u,0.s) +Chars 7202 - 7222 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) +Chars 7227 - 7259 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) Chars 7264 - 7265 [+] 0. secs (0.u,0.s) Chars 7266 - 7280 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7281 - 7289 [(inv~Hbp).] 0.02 secs (0.02u,0.s) +Chars 7281 - 7289 [inv~Hbp.] 0.015 secs (0.015u,0.s) Chars 7290 - 7303 [clear~Heqb~x.] 0. secs (0.u,0.s) -Chars 7310 - 7333 [dependent~induction~H0.] 0.012 secs (0.012u,0.s) +Chars 7310 - 7333 [dependent~induction~H0.] 0.009 secs (0.009u,0.s) Chars 7340 - 7341 [*] 0. secs (0.u,0.s) -Chars 7342 - 7365 [(rewrite~<-~x0~in~Heutt).] 0. secs (0.u,0.s) +Chars 7342 - 7365 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) Chars 7366 - 7381 [clear~CIH~x0~x.] 0. secs (0.u,0.s) -Chars 7390 - 7417 [dependent~induction~Heutt.] 0.04 secs (0.039u,0.s) +Chars 7390 - 7417 [dependent~induction~Heutt.] 0.031 secs (0.03u,0.s) Chars 7426 - 7428 [++] 0. secs (0.u,0.s) -Chars 7429 - 7437 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 7438 - 7461 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 7429 - 7437 [simpobs.] 0. secs (0.u,0.s) +Chars 7438 - 7461 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 7470 - 7472 [++] 0. secs (0.u,0.s) Chars 7473 - 7481 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7482 - 7494 [constructor.] 0. secs (0.u,0.s) -Chars 7495 - 7517 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) +Chars 7495 - 7517 [eapply~IHHeutt;~eauto.] 0.002 secs (0.002u,0.s) Chars 7524 - 7525 [*] 0. secs (0.u,0.s) -Chars 7526 - 7549 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 7526 - 7549 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) Chars 7550 - 7565 [4:~reflexivity.] 0. secs (0.u,0.s) Chars 7566 - 7576 [all:~auto.] 0. secs (0.u,0.s) -Chars 7585 - 7616 [(assert~(t1~≈~b2)~by~now~step).] 0.002 secs (0.002u,0.s) -Chars 7626 - 7645 [(apply~simpobs~in~x).] 0. secs (0.u,0.s) -Chars 7646 - 7661 [(rewrite~x~in~H).] 0.025 secs (0.024u,0.s) -Chars 7662 - 7684 [(rewrite~tau_eutt~in~H).] 0.022 secs (0.021u,0.s) +Chars 7585 - 7616 [assert~(t1~≈~b2)~by~now~step.] 0.001 secs (0.001u,0.s) +Chars 7626 - 7645 [apply~simpobs~in~x.] 0. secs (0.u,0.s) +Chars 7646 - 7661 [rewrite~x~in~H.] 0.018 secs (0.017u,0.s) +Chars 7662 - 7684 [rewrite~tau_eutt~in~H.] 0.018 secs (0.018u,0.s) Chars 7685 - 7699 [now~step~in~H.] 0. secs (0.u,0.s) Chars 7704 - 7705 [+] 0. secs (0.u,0.s) Chars 7706 - 7718 [constructor.] 0. secs (0.u,0.s) -Chars 7719 - 7741 [(eapply~IHHeutt;~eauto).] 0.004 secs (0.003u,0.s) +Chars 7719 - 7741 [eapply~IHHeutt;~eauto.] 0.003 secs (0.003u,0.s) Chars 7742 - 7749 [unstep.] 0. secs (0.u,0.s) -Chars 7750 - 7785 [(eapply~trace_prefix_tau_inv;~...] 0. secs (0.u,0.s) +Chars 7750 - 7785 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) Chars 7790 - 7791 [+] 0. secs (0.u,0.s) Chars 7792 - 7806 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7807 - 7815 [(inv~Hbp).] 0.023 secs (0.023u,0.s) -Chars 7816 - 7858 [(eapply~trace_prefix_proper_au...] 0. secs (0.u,0.s) +Chars 7807 - 7815 [inv~Hbp.] 0.016 secs (0.016u,0.s) +Chars 7816 - 7858 [eapply~trace_prefix_proper_aux...] 0. secs (0.u,0.s) Chars 7861 - 7862 [-] 0. secs (0.u,0.s) Chars 7863 - 7871 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7872 - 7884 [constructor.] 0. secs (0.u,0.s) -Chars 7885 - 7907 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 7908 - 7912 [Qed.] 0.301 secs (0.294u,0.006s) -Chars 7914 - 8190 [Lemma~trace_prefixF_tau_inv_r~...] 0.001 secs (0.001u,0.s) +Chars 7885 - 7907 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 7908 - 7912 [Qed.] 0.221 secs (0.219u,0.001s) +Chars 7914 - 8190 [Lemma~trace_prefixF_tau_inv_r~...] 0. secs (0.u,0.s) Chars 8191 - 8197 [Proof.] 0. secs (0.u,0.s) -Chars 8200 - 8222 [(intros~E~S~R~t1~b~Hbp).] 0. secs (0.u,0.s) -Chars 8225 - 8250 [dependent~induction~Hbp.] 0.013 secs (0.013u,0.s) +Chars 8200 - 8222 [intros~E~S~R~t1~b~Hbp.] 0. secs (0.u,0.s) +Chars 8225 - 8250 [dependent~induction~Hbp.] 0.005 secs (0.005u,0.s) Chars 8253 - 8254 [-] 0. secs (0.u,0.s) -Chars 8255 - 8269 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 8270 - 8293 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 8255 - 8269 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 8270 - 8293 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 8296 - 8297 [-] 0. secs (0.u,0.s) Chars 8299 - 8307 [simpobs.] 0. secs (0.u,0.s) Chars 8308 - 8320 [constructor.] 0. secs (0.u,0.s) @@ -327,231 +327,231 @@ Chars 8321 - 8335 [now~step~in~H.] 0. secs (0.u,0.s) Chars 8338 - 8339 [-] 0. secs (0.u,0.s) Chars 8340 - 8348 [simpobs.] 0. secs (0.u,0.s) Chars 8349 - 8361 [constructor.] 0. secs (0.u,0.s) -Chars 8362 - 8382 [(eapply~IHHbp;~eauto).] 0. secs (0.u,0.s) +Chars 8362 - 8382 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) Chars 8385 - 8386 [-] 0. secs (0.u,0.s) Chars 8387 - 8392 [auto.] 0. secs (0.u,0.s) -Chars 8393 - 8397 [Qed.] 0.006 secs (0.005u,0.s) +Chars 8393 - 8397 [Qed.] 0.004 secs (0.004u,0.s) Chars 8399 - 8938 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) Chars 8939 - 8945 [Proof.] 0. secs (0.u,0.s) -Chars 8948 - 8986 [(intros~E~S~R~m1~m2~REL~r~X~e~...] 0. secs (0.u,0.s) +Chars 8948 - 8986 [intros~E~S~R~m1~m2~REL~r~X~e~k...] 0. secs (0.u,0.s) Chars 8989 - 9001 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9004 - 9027 [dependent~induction~H1.] 0.018 secs (0.018u,0.s) +Chars 9004 - 9027 [dependent~induction~H1.] 0.013 secs (0.013u,0.s) Chars 9030 - 9031 [-] 0. secs (0.u,0.s) -Chars 9032 - 9055 [(eapply~IHtrace_prefixF).] 0. secs (0.u,0.s) +Chars 9032 - 9055 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) Chars 9056 - 9071 [4:~reflexivity.] 0. secs (0.u,0.s) Chars 9072 - 9082 [all:~auto.] 0. secs (0.u,0.s) -Chars 9087 - 9107 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9112 - 9147 [(assert~(Tau~bs~≈~m2)~by~now~s...] 0.002 secs (0.002u,0.s) -Chars 9153 - 9175 [(rewrite~tau_eutt~in~H).] 0.018 secs (0.018u,0.s) +Chars 9087 - 9107 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) +Chars 9112 - 9147 [assert~(Tau~bs~≈~m2)~by~now~step.] 0.001 secs (0.001u,0.s) +Chars 9153 - 9175 [rewrite~tau_eutt~in~H.] 0.018 secs (0.018u,0.s) Chars 9176 - 9190 [now~step~in~H.] 0. secs (0.u,0.s) Chars 9193 - 9194 [-] 0. secs (0.u,0.s) -Chars 9195 - 9215 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9216 - 9240 [dependent~induction~REL.] 0.046 secs (0.045u,0.s) +Chars 9195 - 9215 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) +Chars 9216 - 9240 [dependent~induction~REL.] 0.031 secs (0.031u,0.s) Chars 9245 - 9246 [+] 0. secs (0.u,0.s) Chars 9247 - 9255 [simpobs.] 0.001 secs (0.001u,0.s) Chars 9256 - 9268 [constructor.] 0. secs (0.u,0.s) Chars 9273 - 9274 [+] 0. secs (0.u,0.s) -Chars 9275 - 9283 [simpobs.] 0.006 secs (0.006u,0.s) +Chars 9275 - 9283 [simpobs.] 0.001 secs (0.001u,0.s) Chars 9284 - 9296 [constructor.] 0. secs (0.u,0.s) -Chars 9297 - 9317 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) +Chars 9297 - 9317 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) Chars 9320 - 9321 [-] 0. secs (0.u,0.s) -Chars 9323 - 9343 [(rewrite~<-~x~in~REL).] 0. secs (0.u,0.s) -Chars 9344 - 9368 [dependent~induction~REL.] 0.046 secs (0.045u,0.s) +Chars 9323 - 9343 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) +Chars 9344 - 9368 [dependent~induction~REL.] 0.033 secs (0.033u,0.s) Chars 9373 - 9374 [+] 0. secs (0.u,0.s) -Chars 9375 - 9383 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 9375 - 9383 [simpobs.] 0.001 secs (0.001u,0.s) Chars 9384 - 9396 [constructor.] 0. secs (0.u,0.s) -Chars 9397 - 9441 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 9397 - 9441 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) Chars 9446 - 9447 [+] 0. secs (0.u,0.s) Chars 9448 - 9456 [simpobs.] 0.002 secs (0.002u,0.s) Chars 9457 - 9469 [constructor.] 0. secs (0.u,0.s) -Chars 9470 - 9490 [(eapply~IHREL;~eauto).] 0.002 secs (0.002u,0.s) -Chars 9491 - 9495 [Qed.] 0.067 secs (0.065u,0.001s) -Chars 9497 - 9637 [Lemma~trace_prefix_proper_r~:~...] 0.008 secs (0.008u,0.s) +Chars 9470 - 9490 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 9491 - 9495 [Qed.] 0.049 secs (0.048u,0.s) +Chars 9497 - 9637 [Lemma~trace_prefix_proper_r~:~...] 0. secs (0.u,0.s) Chars 9638 - 9644 [Proof.] 0. secs (0.u,0.s) -Chars 9647 - 9660 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 9661 - 9680 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 9681 - 9706 [(intros~b~b1~b2~Heutt~Hbp).] 0. secs (0.u,0.s) +Chars 9647 - 9660 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 9661 - 9680 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9681 - 9706 [intros~b~b1~b2~Heutt~Hbp.] 0. secs (0.u,0.s) Chars 9709 - 9723 [step~in~Heutt.] 0. secs (0.u,0.s) Chars 9724 - 9736 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 9740 - 9766 [dependent~induction~Heutt.] 0.044 secs (0.043u,0.s) +Chars 9740 - 9766 [dependent~induction~Heutt.] 0.032 secs (0.032u,0.s) Chars 9769 - 9770 [-] 0. secs (0.u,0.s) -Chars 9771 - 9779 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 9771 - 9779 [simpobs.] 0.001 secs (0.001u,0.s) Chars 9780 - 9791 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 9792 - 9823 [(induction~Hbp;~auto~with~itree).] 0.01 secs (0.01u,0.s) +Chars 9792 - 9823 [induction~Hbp;~auto~with~itree.] 0.003 secs (0.003u,0.s) Chars 9828 - 9829 [+] 0. secs (0.u,0.s) Chars 9831 - 9843 [constructor.] 0. secs (0.u,0.s) -Chars 9844 - 9862 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 9844 - 9862 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 9867 - 9868 [+] 0. secs (0.u,0.s) Chars 9869 - 9881 [constructor.] 0. secs (0.u,0.s) Chars 9882 - 9915 [now~do~2~ITree.Basics.Utils.step.] 0.002 secs (0.002u,0.s) Chars 9919 - 9920 [-] 0. secs (0.u,0.s) -Chars 9922 - 9943 [(rewrite~<-~x0~in~Hbp).] 0. secs (0.u,0.s) +Chars 9922 - 9943 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) Chars 9944 - 9952 [simpobs.] 0.001 secs (0.001u,0.s) Chars 9953 - 9964 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 9969 - 9990 [(destruct~(observe~b)).] 0. secs (0.u,0.s) +Chars 9969 - 9990 [destruct~(observe~b).] 0. secs (0.u,0.s) Chars 9995 - 9996 [+] 0. secs (0.u,0.s) -Chars 9997 - 10020 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 9997 - 10020 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 10025 - 10026 [+] 0. secs (0.u,0.s) Chars 10027 - 10039 [constructor.] 0. secs (0.u,0.s) -Chars 10040 - 10058 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 10059 - 10086 [(apply~trace_prefix_tau_inv).] 0. secs (0.u,0.s) +Chars 10040 - 10058 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 10059 - 10086 [apply~trace_prefix_tau_inv.] 0. secs (0.u,0.s) Chars 10087 - 10092 [auto.] 0. secs (0.u,0.s) Chars 10097 - 10098 [+] 0. secs (0.u,0.s) -Chars 10099 - 10107 [(inv~Hbp).] 0.013 secs (0.013u,0.s) +Chars 10099 - 10107 [inv~Hbp.] 0.011 secs (0.01u,0.s) Chars 10108 - 10120 [constructor.] 0. secs (0.u,0.s) -Chars 10121 - 10155 [(eapply~trace_prefixF_vis_l;~e...] 0.003 secs (0.002u,0.s) +Chars 10121 - 10155 [eapply~trace_prefixF_vis_l;~ea...] 0. secs (0.u,0.s) Chars 10158 - 10159 [-] 0. secs (0.u,0.s) Chars 10160 - 10168 [simpobs.] 0.002 secs (0.002u,0.s) Chars 10169 - 10180 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 10181 - 10205 [dependent~induction~Hbp.] 0.023 secs (0.022u,0.s) +Chars 10181 - 10205 [dependent~induction~Hbp.] 0.016 secs (0.016u,0.s) Chars 10210 - 10211 [+] 0. secs (0.u,0.s) -Chars 10212 - 10226 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 10227 - 10250 [(apply~trace_prefix_ret).] 0. secs (0.u,0.s) +Chars 10212 - 10226 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 10227 - 10250 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) Chars 10255 - 10256 [+] 0. secs (0.u,0.s) Chars 10257 - 10265 [simpobs.] 0.001 secs (0.001u,0.s) Chars 10266 - 10278 [constructor.] 0. secs (0.u,0.s) -Chars 10279 - 10299 [(eapply~IHHbp;~eauto).] 0.001 secs (0.001u,0.s) +Chars 10279 - 10299 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) Chars 10304 - 10305 [+] 0. secs (0.u,0.s) -Chars 10306 - 10314 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 10306 - 10314 [simpobs.] 0. secs (0.u,0.s) Chars 10315 - 10327 [constructor.] 0. secs (0.u,0.s) Chars 10332 - 10333 [+] 0. secs (0.u,0.s) -Chars 10334 - 10342 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 10334 - 10342 [simpobs.] 0. secs (0.u,0.s) Chars 10343 - 10355 [constructor.] 0. secs (0.u,0.s) -Chars 10356 - 10400 [(eapply~CIH;~try~apply~REL;~ea...] 0. secs (0.u,0.s) +Chars 10356 - 10400 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) Chars 10403 - 10404 [-] 0. secs (0.u,0.s) -Chars 10405 - 10426 [(eapply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) -Chars 10427 - 10447 [(rewrite~<-~x~in~Hbp).] 0. secs (0.u,0.s) -Chars 10448 - 10486 [(eapply~trace_prefixF_tau_inv_...] 0. secs (0.u,0.s) +Chars 10405 - 10426 [eapply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) +Chars 10427 - 10447 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) +Chars 10448 - 10486 [eapply~trace_prefixF_tau_inv_r...] 0. secs (0.u,0.s) Chars 10489 - 10490 [-] 0. secs (0.u,0.s) Chars 10491 - 10499 [simpobs.] 0.001 secs (0.001u,0.s) Chars 10500 - 10512 [constructor.] 0. secs (0.u,0.s) -Chars 10513 - 10535 [(eapply~IHHeutt;~eauto).] 0.002 secs (0.002u,0.s) -Chars 10536 - 10540 [Qed.] 0.071 secs (0.07u,0.001s) +Chars 10513 - 10535 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 10536 - 10540 [Qed.] 0.043 secs (0.043u,0.s) Chars 10542 - 10650 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) Chars 10651 - 10657 [Proof.] 0. secs (0.u,0.s) -Chars 10660 - 10673 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 10674 - 10688 [(split;~intros).] 0. secs (0.u,0.s) +Chars 10660 - 10673 [repeat~intro.] 0. secs (0.u,0.s) +Chars 10674 - 10688 [split;~intros.] 0. secs (0.u,0.s) Chars 10691 - 10692 [-] 0. secs (0.u,0.s) -Chars 10693 - 10729 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) -Chars 10734 - 10770 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) +Chars 10693 - 10729 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) +Chars 10734 - 10770 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) Chars 10773 - 10774 [-] 0. secs (0.u,0.s) Chars 10775 - 10789 [symmetry~in~H.] 0. secs (0.u,0.s) Chars 10790 - 10805 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 10810 - 10846 [(eapply~trace_prefix_proper_l;...] 0.001 secs (0.001u,0.s) -Chars 10851 - 10887 [(eapply~trace_prefix_proper_r;...] 0. secs (0.u,0.s) -Chars 10888 - 10892 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10810 - 10846 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) +Chars 10851 - 10887 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) +Chars 10888 - 10892 [Qed.] 0. secs (0.u,0.s) Chars 10894 - 11309 [Inductive~ind_comb~{E}~{R}~{S}...] 0.005 secs (0.005u,0.s) Chars 11311 - 11466 [Lemma~ind_comb_bind~:~~~forall...] 0. secs (0.u,0.s) Chars 11467 - 11473 [Proof.] 0. secs (0.u,0.s) -Chars 11476 - 11502 [(intros~E~R~S~b1~b2~b~Hind).] 0. secs (0.u,0.s) -Chars 11503 - 11518 [(induction~Hind).] 0. secs (0.u,0.s) +Chars 11476 - 11502 [intros~E~R~S~b1~b2~b~Hind.] 0. secs (0.u,0.s) +Chars 11503 - 11518 [induction~Hind.] 0. secs (0.u,0.s) Chars 11521 - 11522 [-] 0. secs (0.u,0.s) -Chars 11523 - 11533 [(rewrite~H).] 0.002 secs (0.002u,0.s) -Chars 11534 - 11553 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 11523 - 11533 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 11534 - 11553 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 11554 - 11559 [auto.] 0. secs (0.u,0.s) Chars 11562 - 11563 [-] 0. secs (0.u,0.s) -Chars 11564 - 11574 [(rewrite~H).] 0.002 secs (0.002u,0.s) -Chars 11575 - 11586 [(rewrite~H0).] 0.004 secs (0.003u,0.s) -Chars 11587 - 11604 [(rewrite~bind_vis).] 0.002 secs (0.002u,0.s) -Chars 11605 - 11610 [step.] 0.002 secs (0.002u,0.s) +Chars 11564 - 11574 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 11575 - 11586 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 11587 - 11604 [rewrite~bind_vis.] 0.001 secs (0.001u,0.s) +Chars 11605 - 11610 [step.] 0.001 secs (0.001u,0.s) Chars 11611 - 11623 [constructor.] 0. secs (0.u,0.s) -Chars 11624 - 11631 [(intros).] 0. secs (0.u,0.s) -Chars 11636 - 11647 [(destruct~v).] 0. secs (0.u,0.s) -Chars 11648 - 11661 [(apply~IHHind).] 0. secs (0.u,0.s) -Chars 11662 - 11666 [Qed.] 0.005 secs (0.005u,0.s) -Chars 11668 - 12070 [Inductive~trace_prefix_ind~{E}...] 0.004 secs (0.004u,0.s) +Chars 11624 - 11631 [intros.] 0. secs (0.u,0.s) +Chars 11636 - 11647 [destruct~v.] 0. secs (0.u,0.s) +Chars 11648 - 11661 [apply~IHHind.] 0. secs (0.u,0.s) +Chars 11662 - 11666 [Qed.] 0.003 secs (0.003u,0.s) +Chars 11668 - 12070 [Inductive~trace_prefix_ind~{E}...] 0.003 secs (0.003u,0.s) Chars 12072 - 12215 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) Chars 12216 - 12222 [Proof.] 0. secs (0.u,0.s) -Chars 12225 - 12249 [(intros~E~R~S~b1~b2~Hpre).] 0. secs (0.u,0.s) -Chars 12250 - 12265 [(induction~Hpre).] 0. secs (0.u,0.s) +Chars 12225 - 12249 [intros~E~R~S~b1~b2~Hpre.] 0. secs (0.u,0.s) +Chars 12250 - 12265 [induction~Hpre.] 0. secs (0.u,0.s) Chars 12268 - 12269 [-] 0. secs (0.u,0.s) Chars 12270 - 12280 [exists~b2.] 0. secs (0.u,0.s) -Chars 12281 - 12301 [(econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 12281 - 12301 [econstructor;~eauto.] 0. secs (0.u,0.s) Chars 12304 - 12305 [-] 0. secs (0.u,0.s) -Chars 12306 - 12334 [(destruct~IHHpre~as~[b3~Hb3]).] 0. secs (0.u,0.s) +Chars 12306 - 12334 [destruct~IHHpre~as~[b3~Hb3].] 0. secs (0.u,0.s) Chars 12339 - 12349 [exists~b3.] 0. secs (0.u,0.s) -Chars 12350 - 12378 [(eapply~left_vis_comb;~eauto).] 0.003 secs (0.003u,0.s) -Chars 12379 - 12383 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12350 - 12378 [eapply~left_vis_comb;~eauto.] 0.004 secs (0.004u,0.s) +Chars 12379 - 12383 [Qed.] 0. secs (0.u,0.s) Chars 12385 - 12540 [Lemma~trace_prefix_ind_bind~:~...] 0. secs (0.u,0.s) Chars 12541 - 12547 [Proof.] 0. secs (0.u,0.s) -Chars 12550 - 12557 [(intros).] 0. secs (0.u,0.s) -Chars 12558 - 12591 [(apply~trace_prefix_ind_comb~i...] 0. secs (0.u,0.s) -Chars 12592 - 12615 [(destruct~H~as~[b3~Hb3]).] 0. secs (0.u,0.s) -Chars 12618 - 12645 [(apply~ind_comb_bind~in~Hb3).] 0. secs (0.u,0.s) +Chars 12550 - 12557 [intros.] 0. secs (0.u,0.s) +Chars 12558 - 12591 [apply~trace_prefix_ind_comb~in~H.] 0. secs (0.u,0.s) +Chars 12592 - 12615 [destruct~H~as~[b3~Hb3].] 0. secs (0.u,0.s) +Chars 12618 - 12645 [apply~ind_comb_bind~in~Hb3.] 0. secs (0.u,0.s) Chars 12646 - 12667 [exists~(fun~_~=>~b3).] 0. secs (0.u,0.s) Chars 12668 - 12673 [auto.] 0. secs (0.u,0.s) Chars 12674 - 12678 [Qed.] 0. secs (0.u,0.s) Chars 12680 - 12838 [Lemma~converge_trace_prefix~:~...] 0. secs (0.u,0.s) Chars 12839 - 12845 [Proof.] 0. secs (0.u,0.s) -Chars 12848 - 12879 [(intros~E~R~S~b1~b2~r~Hbp~Hconv).] 0. secs (0.u,0.s) +Chars 12848 - 12879 [intros~E~R~S~b1~b2~r~Hbp~Hconv.] 0. secs (0.u,0.s) Chars 12880 - 12904 [generalize~dependent~b2.] 0. secs (0.u,0.s) -Chars 12905 - 12929 [(induction~Hconv;~intros).] 0. secs (0.u,0.s) +Chars 12905 - 12929 [induction~Hconv;~intros.] 0. secs (0.u,0.s) Chars 12932 - 12933 [-] 0. secs (0.u,0.s) -Chars 12934 - 12960 [(eapply~left_ret_bp;~eauto).] 0. secs (0.u,0.s) +Chars 12934 - 12960 [eapply~left_ret_bp;~eauto.] 0. secs (0.u,0.s) Chars 12963 - 12964 [-] 0. secs (0.u,0.s) -Chars 12965 - 12982 [(rewrite~H~in~Hbp).] 0.003 secs (0.003u,0.s) -Chars 12983 - 13013 [(destruct~e;~try~contradiction).] 0. secs (0.u,0.s) -Chars 13018 - 13049 [(apply~prefix_vis~in~Hbp~as~Hb2).] 0. secs (0.u,0.s) -Chars 13054 - 13079 [(destruct~Hb2~as~[k'~Hk']).] 0. secs (0.u,0.s) -Chars 13080 - 13099 [(rewrite~Hk'~in~Hbp).] 0.008 secs (0.007u,0.s) -Chars 13104 - 13130 [(eapply~left_vis_bp;~eauto).] 0.003 secs (0.003u,0.s) -Chars 13131 - 13142 [(destruct~b).] 0. secs (0.u,0.s) -Chars 13143 - 13157 [(apply~IHHconv).] 0. secs (0.u,0.s) +Chars 12965 - 12982 [rewrite~H~in~Hbp.] 0.002 secs (0.002u,0.s) +Chars 12983 - 13013 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) +Chars 13018 - 13049 [apply~prefix_vis~in~Hbp~as~Hb2.] 0. secs (0.u,0.s) +Chars 13054 - 13079 [destruct~Hb2~as~[k'~Hk'].] 0. secs (0.u,0.s) +Chars 13080 - 13099 [rewrite~Hk'~in~Hbp.] 0.003 secs (0.003u,0.s) +Chars 13104 - 13130 [eapply~left_vis_bp;~eauto.] 0.002 secs (0.002u,0.s) +Chars 13131 - 13142 [destruct~b.] 0. secs (0.u,0.s) +Chars 13143 - 13157 [apply~IHHconv.] 0. secs (0.u,0.s) Chars 13162 - 13174 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 13175 - 13184 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 13185 - 13199 [(inversion~Hbp).] 0.004 secs (0.004u,0.s) -Chars 13200 - 13227 [(subst;~ddestruction;~subst).] 0.003 secs (0.003u,0.s) +Chars 13175 - 13184 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 13185 - 13199 [inversion~Hbp.] 0.004 secs (0.004u,0.s) +Chars 13200 - 13227 [subst;~ddestruction;~subst.] 0.002 secs (0.002u,0.s) Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) -Chars 13239 - 13243 [Qed.] 0.009 secs (0.008u,0.s) +Chars 13239 - 13243 [Qed.] 0.006 secs (0.006u,0.s) Chars 13245 - 13373 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) Chars 13374 - 13380 [Proof.] 0. secs (0.u,0.s) Chars 13383 - 13396 [revert~b1~b2.] 0. secs (0.u,0.s) -Chars 13397 - 13416 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) -Chars 13417 - 13439 [(intros~b1~b2~Hdiv~Hbf).] 0. secs (0.u,0.s) +Chars 13397 - 13416 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 13417 - 13439 [intros~b1~b2~Hdiv~Hbf.] 0. secs (0.u,0.s) Chars 13442 - 13454 [step~in~Hbf.] 0. secs (0.u,0.s) Chars 13455 - 13468 [step~in~Hdiv.] 0. secs (0.u,0.s) -Chars 13469 - 13483 [(induction~Hbf).] 0.001 secs (0.001u,0.s) +Chars 13469 - 13483 [induction~Hbf.] 0.001 secs (0.001u,0.s) Chars 13486 - 13487 [-] 0. secs (0.u,0.s) -Chars 13488 - 13497 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 13488 - 13497 [inv~Hdiv.] 0. secs (0.u,0.s) Chars 13500 - 13501 [-] 0. secs (0.u,0.s) Chars 13502 - 13514 [constructor.] 0. secs (0.u,0.s) -Chars 13515 - 13524 [(inv~Hdiv).] 0.006 secs (0.006u,0.s) -Chars 13525 - 13541 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 13515 - 13524 [inv~Hdiv.] 0.006 secs (0.006u,0.s) +Chars 13525 - 13541 [apply~CIH;~auto.] 0. secs (0.u,0.s) Chars 13544 - 13545 [-] 0. secs (0.u,0.s) -Chars 13546 - 13564 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 13565 - 13577 [(apply~IHHbf).] 0. secs (0.u,0.s) +Chars 13546 - 13564 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 13565 - 13577 [apply~IHHbf.] 0. secs (0.u,0.s) Chars 13578 - 13585 [unstep.] 0. secs (0.u,0.s) -Chars 13586 - 13595 [(inv~Hdiv).] 0.001 secs (0.001u,0.s) +Chars 13586 - 13595 [inv~Hdiv.] 0. secs (0.u,0.s) Chars 13599 - 13600 [-] 0. secs (0.u,0.s) -Chars 13601 - 13619 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 13601 - 13619 [constructor;~auto.] 0. secs (0.u,0.s) Chars 13622 - 13623 [-] 0. secs (0.u,0.s) Chars 13624 - 13636 [constructor.] 0. secs (0.u,0.s) -Chars 13637 - 13647 [(intros~[]).] 0. secs (0.u,0.s) +Chars 13637 - 13647 [intros~[].] 0. secs (0.u,0.s) Chars 13650 - 13651 [-] 0. secs (0.u,0.s) Chars 13653 - 13665 [constructor.] 0. secs (0.u,0.s) -Chars 13666 - 13673 [(intros).] 0. secs (0.u,0.s) -Chars 13674 - 13683 [(inv~Hdiv).] 0.012 secs (0.012u,0.s) -Chars 13684 - 13704 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 13710 - 13721 [(destruct~v).] 0. secs (0.u,0.s) -Chars 13722 - 13738 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 13739 - 13748 [(apply~H1).] 0. secs (0.u,0.s) -Chars 13749 - 13753 [Qed.] 0.018 secs (0.018u,0.s) +Chars 13666 - 13673 [intros.] 0. secs (0.u,0.s) +Chars 13674 - 13683 [inv~Hdiv.] 0.007 secs (0.007u,0.s) +Chars 13684 - 13704 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 13710 - 13721 [destruct~v.] 0. secs (0.u,0.s) +Chars 13722 - 13738 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 13739 - 13748 [apply~H1.] 0. secs (0.u,0.s) +Chars 13749 - 13753 [Qed.] 0.013 secs (0.013u,0.s) Chars 13755 - 13892 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 13893 - 13899 [Proof.] 0. secs (0.u,0.s) -Chars 13902 - 13909 [(intros).] 0. secs (0.u,0.s) -Chars 13910 - 13941 [(destruct~(classic_converge~b1)).] 0. secs (0.u,0.s) +Chars 13902 - 13909 [intros.] 0. secs (0.u,0.s) +Chars 13910 - 13941 [destruct~(classic_converge~b1).] 0. secs (0.u,0.s) Chars 13944 - 13945 [-] 0. secs (0.u,0.s) -Chars 13946 - 13971 [(destruct~H0~as~[r~Hconv]).] 0. secs (0.u,0.s) -Chars 13972 - 14017 [(eapply~converge_trace_prefix~...] 0.001 secs (0.001u,0.s) -Chars 14022 - 14050 [(apply~trace_prefix_ind_bind).] 0. secs (0.u,0.s) +Chars 13946 - 13971 [destruct~H0~as~[r~Hconv].] 0. secs (0.u,0.s) +Chars 13972 - 14017 [eapply~converge_trace_prefix~i...] 0. secs (0.u,0.s) +Chars 14022 - 14050 [apply~trace_prefix_ind_bind.] 0. secs (0.u,0.s) Chars 14051 - 14056 [auto.] 0. secs (0.u,0.s) Chars 14059 - 14060 [-] 0. secs (0.u,0.s) Chars 14150 - 14212 [specialize~(@trace_prefix_div~...] 0. secs (0.u,0.s) Chars 14218 - 14247 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 14248 - 14271 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 14272 - 14292 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 14297 - 14366 [(eapply~noret_bind_nop~with~(f...] 0. secs (0.u,0.s) -Chars 14371 - 14408 [(eapply~euttNoRet_trans;~try~a...] 0.004 secs (0.004u,0.s) -Chars 14409 - 14429 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 14248 - 14271 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 14272 - 14292 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 14297 - 14366 [eapply~noret_bind_nop~with~(f~...] 0. secs (0.u,0.s) +Chars 14371 - 14408 [eapply~euttNoRet_trans;~try~ap...] 0.002 secs (0.002u,0.s) +Chars 14409 - 14429 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) Chars 14430 - 14435 [auto.] 0. secs (0.u,0.s) -Chars 14436 - 14440 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14436 - 14440 [Qed.] 0. secs (0.u,0.s) diff --git a/extra/Secure/Labels.v.timing b/extra/Secure/Labels.v.timing index 05bdd585..c9beea8a 100644 --- a/extra/Secure/Labels.v.timing +++ b/extra/Secure/Labels.v.timing @@ -1,15 +1,15 @@ -Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.182 secs (0.158u,0.023s) +Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.134 secs (0.12u,0.014s) Chars 104 - 153 [Variant~nonempty~(A~:~Type)~:~...] 0. secs (0.u,0.s) Chars 155 - 220 [Variant~empty~(A~:~Type)~:~Pro...] 0. secs (0.u,0.s) Chars 222 - 276 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) Chars 277 - 283 [Proof.] 0. secs (0.u,0.s) -Chars 286 - 293 [(intros).] 0. secs (0.u,0.s) -Chars 294 - 333 [(destruct~(classic~(nonempty~A...] 0. secs (0.u,0.s) +Chars 286 - 293 [intros.] 0. secs (0.u,0.s) +Chars 294 - 333 [destruct~(classic~(nonempty~A)...] 0. secs (0.u,0.s) Chars 336 - 341 [left.] 0. secs (0.u,0.s) Chars 342 - 354 [constructor.] 0. secs (0.u,0.s) -Chars 355 - 362 [(intros).] 0. secs (0.u,0.s) -Chars 363 - 371 [(apply~H).] 0. secs (0.u,0.s) -Chars 372 - 390 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 355 - 362 [intros.] 0. secs (0.u,0.s) +Chars 363 - 371 [apply~H.] 0. secs (0.u,0.s) +Chars 372 - 390 [constructor;~auto.] 0. secs (0.u,0.s) Chars 391 - 395 [Qed.] 0. secs (0.u,0.s) Chars 397 - 463 [Class~Preorder~:={~L~~:~Type;~...] 0. secs (0.u,0.s) Chars 465 - 656 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqBind.v.timing b/extra/Secure/SecureEqBind.v.timing new file mode 100644 index 00000000..17444035 --- /dev/null +++ b/extra/Secure/SecureEqBind.v.timing @@ -0,0 +1,350 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 39 - 104 [From~ITree~Require~Import~Axio...] 0.157 secs (0.14u,0.016s) +Chars 106 - 226 [From~ITree.Extra~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 228 - 242 [Import~Monads.] 0. secs (0.u,0.s) +Chars 243 - 264 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 265 - 294 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 296 - 861 [Lemma~eqit_bind_shalt_aux1~:~~...] 0.002 secs (0.001u,0.s) +Chars 862 - 868 [Proof.] 0. secs (0.u,0.s) +Chars 871 - 965 [intros~E~S2~S1~R1~R2~RR~RS~b1~...] 0. secs (0.u,0.s) +Chars 968 - 973 [step.] 0. secs (0.u,0.s) +Chars 974 - 1011 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) +Chars 1012 - 1016 [cbn.] 0. secs (0.u,0.s) +Chars 1017 - 1025 [simpobs.] 0.001 secs (0.u,0.s) +Chars 1028 - 1032 [cbn.] 0. secs (0.u,0.s) +Chars 1033 - 1057 [rewrite~itree_eta'~~at~1.] 0.039 secs (0.037u,0.002s) +Chars 1058 - 1065 [unstep.] 0. secs (0.u,0.s) +Chars 1069 - 1093 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 1094 - 1112 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 1113 - 1127 [intros~t2~Ht2.] 0. secs (0.u,0.s) +Chars 1130 - 1142 [step~in~Ht2.] 0. secs (0.u,0.s) +Chars 1143 - 1148 [icbn.] 0. secs (0.u,0.s) +Chars 1153 - 1176 [unfold~ITree.bind~at~1.] 0. secs (0.u,0.s) +Chars 1177 - 1197 [unfold~observe~at~2.] 0. secs (0.u,0.s) +Chars 1198 - 1207 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 1210 - 1383 [inv~Ht2;~ddestruction;~subst;~...] 0.128 secs (0.127u,0.s) +Chars 1386 - 1387 [-] 0. secs (0.u,0.s) +Chars 1388 - 1397 [now~step.] 0. secs (0.u,0.s) +Chars 1401 - 1402 [-] 0. secs (0.u,0.s) +Chars 1403 - 1412 [apply~H0.] 0. secs (0.u,0.s) +Chars 1416 - 1417 [-] 0. secs (0.u,0.s) +Chars 1418 - 1430 [contra_size.] 0. secs (0.u,0.s) +Chars 1432 - 1436 [Qed.] 0.026 secs (0.026u,0.s) +Chars 1438 - 1987 [Lemma~eqit_bind_shalt_aux2~:~~...] 0.001 secs (0.001u,0.s) +Chars 1988 - 1994 [Proof.] 0. secs (0.u,0.s) +Chars 1997 - 2091 [intros~E~S2~S1~R1~R2~RR~RS~b1~...] 0. secs (0.u,0.s) +Chars 2094 - 2099 [step.] 0. secs (0.u,0.s) +Chars 2100 - 2137 [unfold~ITree.bind~at~2,~observ...] 0. secs (0.u,0.s) +Chars 2138 - 2142 [cbn.] 0. secs (0.u,0.s) +Chars 2143 - 2151 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 2154 - 2158 [cbn.] 0. secs (0.u,0.s) +Chars 2159 - 2178 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 2179 - 2186 [unstep.] 0. secs (0.u,0.s) +Chars 2189 - 2213 [generalize~dependent~t1.] 0. secs (0.u,0.s) +Chars 2214 - 2232 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 2233 - 2247 [intros~t1~Ht1.] 0. secs (0.u,0.s) +Chars 2250 - 2262 [step~in~Ht1.] 0. secs (0.u,0.s) +Chars 2263 - 2268 [icbn.] 0. secs (0.u,0.s) +Chars 2273 - 2310 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) +Chars 2311 - 2320 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 2323 - 2454 [inv~Ht1;~ddestruction;~subst;~...] 0.097 secs (0.096u,0.s) +Chars 2457 - 2458 [-] 0. secs (0.u,0.s) +Chars 2459 - 2468 [now~step.] 0. secs (0.u,0.s) +Chars 2472 - 2473 [-] 0. secs (0.u,0.s) +Chars 2474 - 2488 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 2489 - 2494 [step.] 0. secs (0.u,0.s) +Chars 2495 - 2504 [apply~H1.] 0. secs (0.u,0.s) +Chars 2508 - 2509 [-] 0. secs (0.u,0.s) +Chars 2510 - 2519 [apply~H1.] 0. secs (0.u,0.s) +Chars 2522 - 2526 [Qed.] 0.026 secs (0.026u,0.s) +Chars 2528 - 2719 [#[local]~Ltac~~to_mon_s~:=~~~m...] 0. secs (0.u,0.s) +Chars 2721 - 3160 [Lemma~secure_eqit_bind'~:~~~fo...] 0. secs (0.u,0.s) +Chars 3161 - 3167 [Proof.] 0. secs (0.u,0.s) +Chars 3170 - 3177 [intros.] 0. secs (0.u,0.s) +Chars 3178 - 3188 [revert~H0.] 0. secs (0.u,0.s) +Chars 3189 - 3202 [revert~t1~t2.] 0. secs (0.u,0.s) +Chars 3203 - 3222 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3223 - 3241 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) +Chars 3244 - 3257 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 3260 - 3274 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 3275 - 3289 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 3292 - 3325 [hinduction~Ht12~before~E;~intros.] 0.002 secs (0.002u,0.s) +Chars 3328 - 3329 [-] 0. secs (0.u,0.s) +Chars 3330 - 3362 [unfold~ITree.bind,~observe;~cbn.] 0. secs (0.u,0.s) +Chars 3368 - 3376 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 3377 - 3382 [step.] 0. secs (0.u,0.s) +Chars 3383 - 3396 [now~apply~H0.] 0. secs (0.u,0.s) +Chars 3400 - 3401 [-] 0. secs (0.u,0.s) +Chars 3402 - 3429 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) +Chars 3435 - 3453 [cbn;~simpobs;~cbn.] 0.003 secs (0.003u,0.s) +Chars 3456 - 3468 [constructor.] 0. secs (0.u,0.s) +Chars 3469 - 3484 [now~eapply~CIH.] 0. secs (0.u,0.s) +Chars 3489 - 3490 [-] 0. secs (0.u,0.s) +Chars 3491 - 3528 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) +Chars 3534 - 3552 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) +Chars 3555 - 3573 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3578 - 3598 [apply~IHHt12;~eauto.] 0. secs (0.u,0.s) +Chars 3603 - 3604 [-] 0. secs (0.u,0.s) +Chars 3605 - 3642 [unfold~ITree.bind~at~2,~observ...] 0. secs (0.u,0.s) +Chars 3648 - 3666 [cbn;~simpobs;~cbn.] 0.002 secs (0.001u,0.s) +Chars 3669 - 3687 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3688 - 3708 [apply~IHHt12;~eauto.] 0. secs (0.u,0.s) +Chars 3711 - 3712 [-] 0. secs (0.u,0.s) +Chars 3713 - 3740 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) +Chars 3746 - 3764 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) +Chars 3769 - 3774 [evis.] 0. secs (0.u,0.s) +Chars 3781 - 3795 [eapply~CIH,~H.] 0. secs (0.u,0.s) +Chars 3798 - 3799 [-] 0. secs (0.u,0.s) +Chars 3800 - 3827 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) +Chars 3833 - 3851 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) +Chars 3857 - 3867 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 3872 - 3886 [eapply~CIH,~H.] 0. secs (0.u,0.s) +Chars 3889 - 3890 [-] 0. secs (0.u,0.s) +Chars 3891 - 3918 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) +Chars 3924 - 3942 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) +Chars 3948 - 3958 [unpriv_co.] 0. secs (0.u,0.s) +Chars 3963 - 3977 [eapply~CIH,~H.] 0. secs (0.u,0.s) +Chars 3980 - 3981 [-] 0. secs (0.u,0.s) +Chars 3982 - 4009 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) +Chars 4015 - 4033 [cbn;~simpobs;~cbn.] 0.003 secs (0.003u,0.s) +Chars 4039 - 4049 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 4054 - 4068 [eapply~CIH,~H.] 0. secs (0.u,0.s) +Chars 4071 - 4072 [-] 0. secs (0.u,0.s) +Chars 4073 - 4110 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) +Chars 4116 - 4120 [cbn.] 0. secs (0.u,0.s) +Chars 4121 - 4139 [rewrite~<-~Heqot1.] 0. secs (0.u,0.s) +Chars 4140 - 4144 [cbn.] 0. secs (0.u,0.s) +Chars 4150 - 4161 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 4162 - 4179 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 4182 - 4183 [-] 0. secs (0.u,0.s) +Chars 4184 - 4221 [unfold~ITree.bind~at~2,~observ...] 0. secs (0.u,0.s) +Chars 4227 - 4255 [cbn;~rewrite~<-~Heqot2;~cbn.] 0. secs (0.u,0.s) +Chars 4261 - 4272 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 4273 - 4290 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 4294 - 4295 [-] 0. secs (0.u,0.s) +Chars 4296 - 4301 [step.] 0. secs (0.u,0.s) +Chars 4307 - 4342 [eapply~eqit_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) +Chars 4343 - 4348 [step.] 0. secs (0.u,0.s) +Chars 4349 - 4357 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 4362 - 4366 [cbn.] 0. secs (0.u,0.s) +Chars 4367 - 4379 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 4380 - 4386 [eauto.] 0. secs (0.u,0.s) +Chars 4389 - 4390 [-] 0. secs (0.u,0.s) +Chars 4391 - 4396 [step.] 0. secs (0.u,0.s) +Chars 4402 - 4437 [eapply~eqit_bind_shalt_aux2;~e...] 0.001 secs (0.u,0.s) +Chars 4438 - 4443 [step.] 0. secs (0.u,0.s) +Chars 4444 - 4448 [cbn.] 0. secs (0.u,0.s) +Chars 4449 - 4457 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4462 - 4474 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 4475 - 4481 [eauto.] 0. secs (0.u,0.s) +Chars 4484 - 4485 [-] 0. secs (0.u,0.s) +Chars 4486 - 4491 [step.] 0. secs (0.u,0.s) +Chars 4497 - 4546 [eapply~eqit_bind_shalt_aux1~wi...] 0. secs (0.u,0.s) +Chars 4551 - 4556 [step.] 0. secs (0.u,0.s) +Chars 4557 - 4565 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 4566 - 4570 [cbn.] 0. secs (0.u,0.s) +Chars 4571 - 4583 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 4586 - 4587 [-] 0. secs (0.u,0.s) +Chars 4588 - 4593 [step.] 0. secs (0.u,0.s) +Chars 4599 - 4634 [eapply~eqit_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) +Chars 4635 - 4640 [step.] 0. secs (0.u,0.s) +Chars 4641 - 4645 [cbn.] 0. secs (0.u,0.s) +Chars 4646 - 4654 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 4659 - 4671 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 4672 - 4676 [Qed.] 0.012 secs (0.012u,0.s) +Chars 4678 - 5116 [Lemma~secure_eqit_bind~:~~~for...] 0. secs (0.u,0.s) +Chars 5117 - 5123 [Proof.] 0. secs (0.u,0.s) +Chars 5126 - 5133 [intros.] 0. secs (0.u,0.s) +Chars 5136 - 5168 [eapply~secure_eqit_bind';~eauto.] 0. secs (0.u,0.s) +Chars 5169 - 5173 [Qed.] 0. secs (0.u,0.s) +Chars 5175 - 6302 [Lemma~iter_bind_shalt_aux1~:~~...] 0.002 secs (0.002u,0.s) +Chars 6303 - 6309 [Proof.] 0. secs (0.u,0.s) +Chars 6312 - 6401 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) +Chars 6404 - 6428 [generalize~dependent~t0.] 0. secs (0.u,0.s) +Chars 6429 - 6447 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 6448 - 6462 [intros~t0~Ht0.] 0. secs (0.u,0.s) +Chars 6465 - 6470 [icbn.] 0. secs (0.u,0.s) +Chars 6471 - 6483 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 6484 - 6505 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 6512 - 6521 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6522 - 6593 [inv~Ht0;~inv_vis_secure;~cbn;~...] 0.119 secs (0.118u,0.s) +Chars 6596 - 6622 [all:~eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6626 - 6627 [-] 0. secs (0.u,0.s) +Chars 6628 - 6637 [now~step.] 0. secs (0.u,0.s) +Chars 6640 - 6641 [-] 0. secs (0.u,0.s) +Chars 6642 - 6650 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 6651 - 6660 [now~step.] 0. secs (0.u,0.s) +Chars 6664 - 6665 [-] 0. secs (0.u,0.s) +Chars 6666 - 6675 [apply~H0.] 0. secs (0.u,0.s) +Chars 6677 - 6681 [Qed.] 0.036 secs (0.035u,0.s) +Chars 6683 - 7810 [Lemma~iter_bind_shalt_aux2~:~~...] 0.002 secs (0.002u,0.s) +Chars 7811 - 7817 [Proof.] 0. secs (0.u,0.s) +Chars 7820 - 7909 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) +Chars 7912 - 7936 [generalize~dependent~t0.] 0. secs (0.u,0.s) +Chars 7937 - 7955 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 7956 - 7970 [intros~t0~Ht0.] 0. secs (0.u,0.s) +Chars 7973 - 7978 [icbn.] 0. secs (0.u,0.s) +Chars 7979 - 7991 [step~in~Ht0.] 0. secs (0.u,0.s) +Chars 7994 - 8015 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 8022 - 8031 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 8032 - 8103 [inv~Ht0;~inv_vis_secure;~cbn;~...] 0.128 secs (0.127u,0.s) +Chars 8106 - 8132 [all:~eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 8135 - 8136 [-] 0. secs (0.u,0.s) +Chars 8137 - 8146 [now~step.] 0. secs (0.u,0.s) +Chars 8149 - 8150 [-] 0. secs (0.u,0.s) +Chars 8151 - 8159 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 8160 - 8169 [now~step.] 0. secs (0.u,0.s) +Chars 8173 - 8174 [-] 0. secs (0.u,0.s) +Chars 8175 - 8184 [apply~H1.] 0. secs (0.u,0.s) +Chars 8185 - 8189 [Qed.] 0.036 secs (0.036u,0.s) +Chars 8191 - 9267 [Lemma~iter_bind_aux~:~~~forall...] 0.002 secs (0.002u,0.s) +Chars 9268 - 9274 [Proof.] 0. secs (0.u,0.s) +Chars 9277 - 9337 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) +Chars 9341 - 9357 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 9358 - 9397 [clear~c;~intros~c~CIH~t1~t2~Ht...] 0. secs (0.u,0.s) +Chars 9398 - 9411 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 9415 - 9420 [icbn.] 0. secs (0.u,0.s) +Chars 9424 - 9439 [unfold~observe.] 0. secs (0.u,0.s) +Chars 9440 - 9444 [cbn.] 0. secs (0.u,0.s) +Chars 9448 - 9600 [hinduction~Ht12~before~E;~intr...] 0.054 secs (0.054u,0.s) +Chars 9603 - 9604 [-] 0. secs (0.u,0.s) +Chars 9605 - 9634 [inv~H;~cbn;~eauto~with~itree.] 0.012 secs (0.012u,0.s) +Chars 9639 - 9651 [constructor.] 0. secs (0.u,0.s) +Chars 9652 - 9674 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 9678 - 9679 [-] 0. secs (0.u,0.s) +Chars 9680 - 9698 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9699 - 9728 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 9733 - 9740 [intros.] 0. secs (0.u,0.s) +Chars 9741 - 9763 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 9767 - 9768 [-] 0. secs (0.u,0.s) +Chars 9769 - 9787 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9788 - 9808 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 9809 - 9813 [cbn.] 0. secs (0.u,0.s) +Chars 9814 - 9846 [eapply~IHHt12;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 9850 - 9851 [-] 0. secs (0.u,0.s) +Chars 9852 - 9870 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9871 - 9891 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 9892 - 9896 [cbn.] 0. secs (0.u,0.s) +Chars 9897 - 9929 [eapply~IHHt12;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 9933 - 9934 [-] 0. secs (0.u,0.s) +Chars 9935 - 9953 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9954 - 9960 [intro.] 0. secs (0.u,0.s) +Chars 9966 - 9985 [eapply~CIH;~intros.] 0. secs (0.u,0.s) +Chars 9986 - 9994 [apply~H.] 0. secs (0.u,0.s) +Chars 9999 - 10021 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 10025 - 10026 [-] 0. secs (0.u,0.s) +Chars 10027 - 10037 [unpriv_co.] 0. secs (0.u,0.s) +Chars 10038 - 10057 [eapply~CIH;~intros.] 0. secs (0.u,0.s) +Chars 10058 - 10066 [apply~H.] 0. secs (0.u,0.s) +Chars 10073 - 10095 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 10098 - 10099 [-] 0. secs (0.u,0.s) +Chars 10100 - 10110 [unpriv_co.] 0. secs (0.u,0.s) +Chars 10111 - 10130 [eapply~CIH;~intros.] 0. secs (0.u,0.s) +Chars 10131 - 10139 [apply~H.] 0. secs (0.u,0.s) +Chars 10146 - 10168 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 10171 - 10172 [-] 0. secs (0.u,0.s) +Chars 10173 - 10183 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 10184 - 10203 [eapply~CIH;~intros.] 0. secs (0.u,0.s) +Chars 10204 - 10212 [apply~H.] 0. secs (0.u,0.s) +Chars 10220 - 10242 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 10245 - 10246 [-] 0. secs (0.u,0.s) +Chars 10247 - 10258 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10259 - 10279 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 10280 - 10284 [cbn.] 0. secs (0.u,0.s) +Chars 10285 - 10313 [eapply~H0;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10316 - 10317 [-] 0. secs (0.u,0.s) +Chars 10318 - 10329 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 10330 - 10350 [unfold~observe~at~3.] 0. secs (0.u,0.s) +Chars 10351 - 10355 [cbn.] 0. secs (0.u,0.s) +Chars 10356 - 10383 [apply~H0;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10386 - 10387 [-] 0. secs (0.u,0.s) +Chars 10388 - 10400 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 10401 - 10411 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 10412 - 10458 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) +Chars 10461 - 10462 [-] 0. secs (0.u,0.s) +Chars 10463 - 10475 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 10476 - 10486 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 10487 - 10533 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) +Chars 10536 - 10537 [-] 0. secs (0.u,0.s) +Chars 10538 - 10550 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 10551 - 10568 [specialize~(H~b).] 0. secs (0.u,0.s) +Chars 10569 - 10579 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 10580 - 10626 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) +Chars 10629 - 10630 [-] 0. secs (0.u,0.s) +Chars 10631 - 10643 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 10644 - 10661 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 10662 - 10672 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 10673 - 10719 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) +Chars 10720 - 10724 [Qed.] 0.018 secs (0.018u,0.s) +Chars 10727 - 11238 [Lemma~secure_eqit_iter~:~~~for...] 0. secs (0.u,0.s) +Chars 11239 - 11245 [Proof.] 0. secs (0.u,0.s) +Chars 11248 - 11255 [intros.] 0. secs (0.u,0.s) +Chars 11256 - 11277 [rename~H0~into~Hbody.] 0. secs (0.u,0.s) +Chars 11278 - 11302 [generalize~dependent~a2.] 0. secs (0.u,0.s) +Chars 11303 - 11313 [revert~a1.] 0. secs (0.u,0.s) +Chars 11487 - 11506 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 11509 - 11525 [intros~a1~a2~Ha.] 0. secs (0.u,0.s) +Chars 11526 - 11564 [specialize~(Hbody~a1~a2~Ha)~as...] 0. secs (0.u,0.s) +Chars 11567 - 11582 [step~in~Hbodya.] 0. secs (0.u,0.s) +Chars 11585 - 11600 [unfold~observe.] 0. secs (0.u,0.s) +Chars 11657 - 11661 [cbn.] 0. secs (0.u,0.s) +Chars 11664 - 11721 [hinduction~Hbodya~before~E;~in...] 0.016 secs (0.016u,0.s) +Chars 11724 - 11725 [-] 0. secs (0.u,0.s) +Chars 11726 - 11755 [inv~H;~cbn;~eauto~with~itree.] 0.004 secs (0.004u,0.s) +Chars 11759 - 11760 [-] 0. secs (0.u,0.s) +Chars 11761 - 11765 [cbn.] 0. secs (0.u,0.s) +Chars 11767 - 11779 [constructor.] 0. secs (0.u,0.s) +Chars 11785 - 11813 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) +Chars 11817 - 11818 [-] 0. secs (0.u,0.s) +Chars 11819 - 11837 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 11838 - 11844 [intro.] 0. secs (0.u,0.s) +Chars 11845 - 11873 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) +Chars 11880 - 11888 [apply~H.] 0. secs (0.u,0.s) +Chars 11892 - 11893 [-] 0. secs (0.u,0.s) +Chars 11894 - 11904 [unpriv_co.] 0. secs (0.u,0.s) +Chars 11911 - 11939 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) +Chars 11940 - 11948 [apply~H.] 0. secs (0.u,0.s) +Chars 11952 - 11953 [-] 0. secs (0.u,0.s) +Chars 11954 - 11964 [unpriv_co.] 0. secs (0.u,0.s) +Chars 11965 - 11993 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) +Chars 11994 - 12002 [apply~H.] 0. secs (0.u,0.s) +Chars 12006 - 12007 [-] 0. secs (0.u,0.s) +Chars 12008 - 12018 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 12019 - 12047 [eapply~iter_bind_aux;~eauto.] 0.002 secs (0.002u,0.s) +Chars 12048 - 12056 [apply~H.] 0. secs (0.u,0.s) +Chars 12060 - 12061 [-] 0. secs (0.u,0.s) +Chars 12062 - 12073 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 12191 - 12211 [unfold~observe~at~1.] 0. secs (0.u,0.s) +Chars 12212 - 12216 [cbn.] 0. secs (0.u,0.s) +Chars 12221 - 12227 [eauto.] 0. secs (0.u,0.s) +Chars 12230 - 12231 [-] 0. secs (0.u,0.s) +Chars 12232 - 12243 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 12244 - 12264 [unfold~observe~at~3.] 0. secs (0.u,0.s) +Chars 12265 - 12269 [cbn.] 0. secs (0.u,0.s) +Chars 12270 - 12276 [eauto.] 0. secs (0.u,0.s) +Chars 12279 - 12280 [-] 0. secs (0.u,0.s) +Chars 12282 - 12294 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12295 - 12305 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 12313 - 12348 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) +Chars 12352 - 12353 [-] 0. secs (0.u,0.s) +Chars 12354 - 12366 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12367 - 12377 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 12379 - 12414 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) +Chars 12417 - 12418 [-] 0. secs (0.u,0.s) +Chars 12419 - 12431 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12433 - 12450 [specialize~(H~b).] 0. secs (0.u,0.s) +Chars 12451 - 12461 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 12467 - 12502 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) +Chars 12506 - 12507 [-] 0. secs (0.u,0.s) +Chars 12508 - 12520 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12522 - 12539 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 12540 - 12550 [do~2~step.] 0.001 secs (0.001u,0.s) +Chars 12551 - 12586 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) +Chars 12587 - 12591 [Qed.] 0.012 secs (0.012u,0.s) +Chars 12593 - 12799 [Lemma~secure_eqit_ret~:~~~fora...] 0. secs (0.u,0.s) +Chars 12800 - 12806 [Proof.] 0. secs (0.u,0.s) +Chars 12809 - 12816 [intros.] 0. secs (0.u,0.s) +Chars 12817 - 12822 [step.] 0. secs (0.u,0.s) +Chars 12823 - 12835 [constructor.] 0. secs (0.u,0.s) +Chars 12836 - 12841 [auto.] 0. secs (0.u,0.s) +Chars 12842 - 12846 [Qed.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index bcedd9cc..1e1d4fe3 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -732,7 +732,6 @@ Proof. * destruct (classic (leq (priv _ e) l ) ). -- inv Ht23; ddestruction; subst; try contradiction. constructor; auto. inv CHECK. - (* RTODO fix stepping without eta' *) eapply eqit_secure_trans_aux2; eauto. -- destruct (classic_empty X). ++ rewrite itree_eta'. rewrite itree_eta' at 1. @@ -798,15 +797,13 @@ Proof. + subst. constructor. eapply CIH0; try apply H. Unshelve. all: auto. eapply eqit_secure_TauRVisL; eauto. step. auto. - (* should be fine but new lemma, also shelved goal *) + destruct ot3; try (exfalso; eapply Ht4; eauto; fail ). * inv Ht23; inv CHECK. ddestruction. clear CIH0. constructor; auto. rewrite H4. eapply eqit_secure_trans_aux1; try apply H. - rewrite <- H4. apply H1. Unshelve. auto. (* shelved goal*) + rewrite <- H4. apply H1. Unshelve. auto. * constructor. eapply CIH0; try apply H. eapply eqit_secure_TauRVisL; eauto. step. auto. - (* same goal as last admit *) * destruct (classic (leq (priv _ e0) l ) ). -- inv Ht23; ddestruction; subst; try contradiction. constructor; auto. rewrite H5. inv CHECK. @@ -822,7 +819,6 @@ Proof. assert (eqit_secure Label priv RR2 b1 b2 l (Vis e k2) (Vis e0 k) ). step. auto. eapply eqit_secure_VisLR; eauto. - remember (VisF e2 k2) as x. - (* maybe need to separate the inductive and coinductive progress cases? *) hinduction Ht23 before E; intros; inv Heqx; try contradiction; try contra_size; ddestruction; subst; auto. @@ -846,8 +842,8 @@ Proof. remember (TauF t) as y. hinduction H before E; intros; inv Heqy; auto. -- constructor; auto. now unstep. - -- constructor; eauto. - -- unpriv_ind. now unstep. + -- apply secEqTauL; eauto. + -- unpriv_ind. now unstep. -- unpriv_ind. eapply H0 with (c:=c); eauto. -- rewrite itree_eta' at 1. now unstep. * inv SIZECHECK2. diff --git a/extra/Secure/SecureEqEuttHalt.v.timing b/extra/Secure/SecureEqEuttHalt.v.timing index b3c3a7f3..1652340f 100644 --- a/extra/Secure/SecureEqEuttHalt.v.timing +++ b/extra/Secure/SecureEqEuttHalt.v.timing @@ -1,1773 +1,1882 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) Chars 39 - 76 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 78 - 143 [From~ITree~Require~Import~Axio...] 0.242 secs (0.205u,0.035s) -Chars 145 - 222 [From~ITree.Extra~Require~Impor...] 0.001 secs (0.u,0.s) +Chars 78 - 143 [From~ITree~Require~Import~Axio...] 0.159 secs (0.142u,0.016s) +Chars 145 - 222 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) Chars 224 - 238 [Import~Monads.] 0. secs (0.u,0.s) Chars 239 - 260 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 261 - 290 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 292 - 485 [Lemma~tau_eqit_secure~:~~~fora...] 0. secs (0.u,0.s) -Chars 486 - 492 [Proof.] 0. secs (0.u,0.s) -Chars 495 - 526 [(intros~E~R1~R2~Label~priv~l~RR).] 0. secs (0.u,0.s) -Chars 528 - 546 [(intros~t1~t2~Hsec).] 0. secs (0.u,0.s) -Chars 547 - 552 [step.] 0. secs (0.u,0.s) -Chars 556 - 569 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 570 - 579 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 580 - 604 [(remember~(TauF~t1)~as~x).] 0.001 secs (0.u,0.s) -Chars 607 - 671 [(hinduction~Hsec~before~priv;~...] 0.29 secs (0.275u,0.013s) -Chars 674 - 675 [-] 0. secs (0.u,0.s) -Chars 676 - 694 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 695 - 706 [now~unstep.] 0. secs (0.u,0.s) -Chars 710 - 711 [-] 0. secs (0.u,0.s) -Chars 712 - 723 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 724 - 735 [now~unstep.] 0. secs (0.u,0.s) -Chars 739 - 740 [-] 0. secs (0.u,0.s) -Chars 741 - 755 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 756 - 760 [Qed.] 0.007 secs (0.007u,0.s) -Chars 762 - 1025 [Lemma~unpriv_e_eqit_secure~:~~...] 0.001 secs (0.001u,0.s) -Chars 1026 - 1032 [Proof.] 0. secs (0.u,0.s) -Chars 1035 - 1042 [(intros).] 0. secs (0.u,0.s) -Chars 1043 - 1066 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 1067 - 1089 [rename~H~into~Hunpriv.] 0. secs (0.u,0.s) -Chars 1090 - 1113 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 1116 - 1123 [(intros).] 0. secs (0.u,0.s) -Chars 1124 - 1135 [step~in~H0.] 0. secs (0.u,0.s) -Chars 1136 - 1145 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 1146 - 1151 [step.] 0. secs (0.u,0.s) -Chars 1155 - 1180 [(remember~(VisF~e~k)~as~x).] 0. secs (0.u,0.s) -Chars 1181 - 1199 [(genobs_clear~t~ot).] 0. secs (0.u,0.s) -Chars 1202 - 1314 [(hinduction~H0~before~l;~intro...] 0.083 secs (0.082u,0.001s) -Chars 1317 - 1318 [-] 0. secs (0.u,0.s) -Chars 1319 - 1337 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 1338 - 1367 [(eapply~IHsecure_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 1370 - 1371 [-] 0. secs (0.u,0.s) -Chars 1373 - 1391 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 1392 - 1403 [now~unstep.] 0. secs (0.u,0.s) -Chars 1407 - 1408 [-] 0. secs (0.u,0.s) -Chars 1409 - 1420 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 1421 - 1428 [unstep.] 0. secs (0.u,0.s) -Chars 1430 - 1438 [(apply~H).] 0. secs (0.u,0.s) -Chars 1441 - 1442 [-] 0. secs (0.u,0.s) -Chars 1443 - 1454 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 1455 - 1472 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 1475 - 1476 [-] 0. secs (0.u,0.s) -Chars 1478 - 1497 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 1498 - 1513 [now~now~unstep.] 0. secs (0.u,0.s) -Chars 1515 - 1519 [Qed.] 0.029 secs (0.029u,0.s) -Chars 1522 - 2215 [Lemma~eses_au_vis_r~:~~~forall...] 0.001 secs (0.001u,0.s) -Chars 2216 - 2222 [Proof.] 0. secs (0.u,0.s) -Chars 2225 - 2292 [(intros~E~R2~R1~Label~priv~l~R...] 0. secs (0.u,0.s) -Chars 2295 - 2320 [(remember~(VisF~e~k)~as~x).] 0. secs (0.u,0.s) -Chars 2321 - 2333 [step~in~REL.] 0. secs (0.u,0.s) -Chars 2334 - 2347 [(rewrite~Heqx).] 0. secs (0.u,0.s) -Chars 2350 - 2443 [(hinduction~Hsec~before~E;~int...] 0.089 secs (0.088u,0.s) -Chars 2446 - 2447 [-] 0. secs (0.u,0.s) -Chars 2448 - 2469 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) -Chars 2474 - 2481 [unstep.] 0.003 secs (0.003u,0.s) -Chars 2482 - 2514 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.003 secs (0.002u,0.s) -Chars 2515 - 2520 [step.] 0.001 secs (0.001u,0.s) -Chars 2521 - 2526 [auto.] 0. secs (0.u,0.s) -Chars 2529 - 2530 [-] 0. secs (0.u,0.s) -Chars 2532 - 2559 [(remember~(VisF~e0~k1)~as~y).] 0. secs (0.u,0.s) -Chars 2564 - 2639 [(hinduction~REL~before~CIH;~in...] 0.01 secs (0.01u,0.s) -Chars 2644 - 2645 [+] 0. secs (0.u,0.s) -Chars 2646 - 2664 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 2665 - 2672 [(intros).] 0. secs (0.u,0.s) -Chars 2679 - 2703 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) -Chars 2710 - 2720 [(apply~REL).] 0. secs (0.u,0.s) -Chars 2725 - 2726 [+] 0. secs (0.u,0.s) -Chars 2727 - 2746 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 2749 - 2750 [-] 0. secs (0.u,0.s) -Chars 2751 - 2762 [(rewrite~H2).] 0. secs (0.u,0.s) -Chars 2763 - 2789 [(remember~(VisF~e~k1)~as~y).] 0.003 secs (0.003u,0.s) -Chars 2794 - 2846 [(hinduction~REL~before~e;~intr...] 0.003 secs (0.003u,0.s) -Chars 2847 - 2860 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 2865 - 2866 [+] 0. secs (0.u,0.s) -Chars 2867 - 2881 [(rewrite~<-~H2).] 0. secs (0.u,0.s) -Chars 2882 - 2893 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 2895 - 2906 [(rewrite~H2).] 0. secs (0.u,0.s) -Chars 2907 - 2924 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 2931 - 2940 [Unshelve.] 0. secs (0.u,0.s) -Chars 2941 - 2951 [all:~auto.] 0. secs (0.u,0.s) -Chars 2952 - 2967 [now~now~unstep.] 0.004 secs (0.004u,0.s) -Chars 2973 - 2974 [+] 0. secs (0.u,0.s) -Chars 2975 - 2993 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 2994 - 3014 [(eapply~IHREL;~eauto).] 0.001 secs (0.001u,0.s) -Chars 3015 - 3019 [Qed.] 0.037 secs (0.036u,0.s) -Chars 3021 - 3714 [Lemma~eses_au_vis_l~:~~~forall...] 0.001 secs (0.001u,0.s) -Chars 3715 - 3721 [Proof.] 0. secs (0.u,0.s) -Chars 3724 - 3791 [(intros~E~R2~R1~Label~priv~l~R...] 0. secs (0.u,0.s) -Chars 3794 - 3819 [(remember~(VisF~e~k)~as~x).] 0. secs (0.u,0.s) -Chars 3820 - 3832 [step~in~REL.] 0. secs (0.u,0.s) -Chars 3833 - 3846 [(rewrite~Heqx).] 0. secs (0.u,0.s) -Chars 3849 - 3942 [(hinduction~Hsec~before~E;~int...] 0.091 secs (0.089u,0.s) -Chars 3945 - 3946 [-] 0. secs (0.u,0.s) -Chars 3947 - 3968 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) -Chars 3973 - 3980 [unstep.] 0.003 secs (0.003u,0.s) -Chars 3981 - 4013 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.001 secs (0.001u,0.s) -Chars 4014 - 4019 [step.] 0.001 secs (0.001u,0.s) -Chars 4020 - 4025 [auto.] 0. secs (0.u,0.s) -Chars 4028 - 4029 [-] 0. secs (0.u,0.s) -Chars 4031 - 4058 [(remember~(VisF~e0~k2)~as~y).] 0. secs (0.u,0.s) -Chars 4063 - 4138 [(hinduction~REL~before~CIH;~in...] 0.01 secs (0.01u,0.s) -Chars 4143 - 4144 [+] 0. secs (0.u,0.s) -Chars 4145 - 4163 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 4164 - 4171 [(intros).] 0. secs (0.u,0.s) -Chars 4178 - 4202 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) -Chars 4209 - 4219 [(apply~REL).] 0. secs (0.u,0.s) -Chars 4224 - 4225 [+] 0. secs (0.u,0.s) -Chars 4226 - 4245 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 4248 - 4249 [-] 0. secs (0.u,0.s) -Chars 4250 - 4261 [(rewrite~H2).] 0. secs (0.u,0.s) -Chars 4262 - 4288 [(remember~(VisF~e~k2)~as~y).] 0.001 secs (0.001u,0.s) -Chars 4293 - 4345 [(hinduction~REL~before~e;~intr...] 0.004 secs (0.004u,0.s) -Chars 4346 - 4359 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 4364 - 4365 [+] 0. secs (0.u,0.s) -Chars 4366 - 4380 [(rewrite~<-~H2).] 0. secs (0.u,0.s) -Chars 4381 - 4392 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 4394 - 4405 [(rewrite~H2).] 0. secs (0.u,0.s) -Chars 4406 - 4423 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 4430 - 4439 [Unshelve.] 0. secs (0.u,0.s) -Chars 4440 - 4450 [all:~auto.] 0. secs (0.u,0.s) -Chars 4451 - 4466 [now~now~unstep.] 0.004 secs (0.004u,0.s) -Chars 4472 - 4473 [+] 0. secs (0.u,0.s) -Chars 4474 - 4492 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 4493 - 4513 [(eapply~IHREL;~eauto).] 0.001 secs (0.001u,0.s) -Chars 4514 - 4518 [Qed.] 0.036 secs (0.035u,0.s) -Chars 4520 - 4950 [Lemma~eses_aux_ret_r~:~~~foral...] 0.001 secs (0.001u,0.s) -Chars 4951 - 4957 [Proof.] 0. secs (0.u,0.s) -Chars 4960 - 5013 [(intros~E~R2~R1~Label~priv~l~R...] 0. secs (0.u,0.s) -Chars 5016 - 5030 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 5031 - 5055 [(remember~(RetF~r0)~as~x).] 0. secs (0.u,0.s) -Chars 5058 - 5071 [(rewrite~Heqx).] 0. secs (0.u,0.s) -Chars 5072 - 5132 [(hinduction~Hsec~before~E;~int...] 0.023 secs (0.023u,0.s) -Chars 5135 - 5136 [-] 0. secs (0.u,0.s) -Chars 5137 - 5161 [(remember~(RetF~r1)~as~y).] 0. secs (0.u,0.s) -Chars 5166 - 5227 [(hinduction~Heutt~before~E;~in...] 0.006 secs (0.005u,0.s) -Chars 5232 - 5250 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 5251 - 5273 [(eapply~IHHeutt;~eauto).] 0. secs (0.u,0.s) -Chars 5276 - 5277 [-] 0. secs (0.u,0.s) -Chars 5278 - 5299 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) -Chars 5300 - 5307 [unstep.] 0.006 secs (0.005u,0.s) -Chars 5308 - 5333 [(rewrite~<-~tau_eutt~~at~1).] 0.001 secs (0.001u,0.s) -Chars 5334 - 5339 [step.] 0.001 secs (0.001u,0.s) -Chars 5340 - 5345 [auto.] 0. secs (0.u,0.s) -Chars 5348 - 5349 [-] 0. secs (0.u,0.s) -Chars 5350 - 5376 [(remember~(VisF~e~k1)~as~y).] 0. secs (0.u,0.s) -Chars 5381 - 5452 [(hinduction~Heutt~before~E;~in...] 0.015 secs (0.015u,0.s) -Chars 5457 - 5458 [+] 0. secs (0.u,0.s) -Chars 5460 - 5471 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 5472 - 5483 [(rewrite~H2).] 0. secs (0.u,0.s) -Chars 5484 - 5501 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 5510 - 5525 [now~now~unstep.] 0.005 secs (0.005u,0.s) -Chars 5531 - 5532 [+] 0. secs (0.u,0.s) -Chars 5533 - 5551 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 5552 - 5574 [(eapply~IHHeutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5575 - 5579 [Qed.] 0.016 secs (0.016u,0.s) -Chars 5581 - 5637 [Definition~classic_empty~:=~Se...] 0. secs (0.u,0.s) -Chars 5685 - 5902 [Lemma~eutt_secure_eqit_secure~...] 0. secs (0.u,0.s) -Chars 5903 - 5909 [Proof.] 0. secs (0.u,0.s) -Chars 5912 - 5943 [(intros~E~Label~priv~l~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 5944 - 5963 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 5964 - 5992 [(intros~t1~t1'~t2~Heutt~Hsec).] 0. secs (0.u,0.s) -Chars 5995 - 6009 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 6010 - 6023 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 6027 - 6085 [(hinduction~Heutt~before~E;~in...] 0.007 secs (0.006u,0.s) -Chars 6088 - 6089 [-] 0. secs (0.u,0.s) -Chars 6090 - 6114 [(remember~(RetF~r2)~as~x).] 0.001 secs (0.001u,0.s) -Chars 6115 - 6179 [(hinduction~Hsec~before~E;~int...] 0.026 secs (0.025u,0.s) -Chars 6184 - 6185 [+] 0. secs (0.u,0.s) -Chars 6186 - 6204 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 6205 - 6226 [(eapply~IHHsec;~eauto).] 0. secs (0.u,0.s) -Chars 6231 - 6232 [+] 0. secs (0.u,0.s) -Chars 6233 - 6244 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 6245 - 6262 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 6265 - 6266 [-] 0. secs (0.u,0.s) -Chars 6267 - 6287 [(genobs_clear~t2~ot2).] 0. secs (0.u,0.s) -Chars 6292 - 6366 [(assert~(Ht2~:~(exists~m3,~ot2...] 0. secs (0.u,0.s) -Chars 6371 - 6372 [{] 0. secs (0.u,0.s) -Chars 6373 - 6428 [(destruct~ot2;~eauto;~right;~r...] 0.006 secs (0.006u,0.s) -Chars 6429 - 6430 [}] 0. secs (0.u,0.s) -Chars 6501 - 6536 [(destruct~Ht2~as~[[m3~Hm3]|~Ht...] 0. secs (0.u,0.s) -Chars 6541 - 6542 [+] 0. secs (0.u,0.s) -Chars 6543 - 6549 [subst.] 0. secs (0.u,0.s) -Chars 6551 - 6563 [constructor.] 0. secs (0.u,0.s) -Chars 6564 - 6582 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 6589 - 6611 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) -Chars 6612 - 6634 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 6635 - 6657 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) -Chars 6664 - 6686 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 6687 - 6692 [step.] 0. secs (0.u,0.s) -Chars 6693 - 6698 [auto.] 0. secs (0.u,0.s) -Chars 6703 - 6704 [+] 0. secs (0.u,0.s) -Chars 6705 - 6758 [(destruct~ot2;~try~(exfalso;~e...] 0.001 secs (0.001u,0.s) -Chars 6765 - 6766 [*] 0. secs (0.u,0.s) -Chars 6768 - 6792 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) -Chars 6802 - 6851 [(eapply~eses_aux_ret_r~with~(m...] 0. secs (0.u,0.s) -Chars 6861 - 6887 [now~do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 6894 - 6895 [*] 0. secs (0.u,0.s) -Chars 6896 - 6944 [(assert~(leq~(priv~_~e)~l~\/~~...] 0. secs (0.u,0.s) -Chars 6953 - 6954 [{] 0. secs (0.u,0.s) -Chars 6955 - 6969 [(apply~classic).] 0. secs (0.u,0.s) -Chars 6970 - 6971 [}] 0. secs (0.u,0.s) -Chars 6980 - 7047 [(destruct~H~as~[SECCHECK|~SECC...] 0. secs (0.u,0.s) -Chars 7056 - 7058 [++] 0. secs (0.u,0.s) -Chars 7060 - 7084 [(rewrite~itree_eta'~~at~1).] 0.018 secs (0.018u,0.s) -Chars 7085 - 7131 [(apply~eses_au_vis_r~with~(m1~...] 0.001 secs (0.001u,0.s) -Chars 7143 - 7165 [(do~2~rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 7166 - 7171 [auto.] 0. secs (0.u,0.s) -Chars 7180 - 7182 [++] 0. secs (0.u,0.s) -Chars 7184 - 7208 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) -Chars 7209 - 7255 [(apply~eses_au_vis_r~with~(m1~...] 0.001 secs (0.001u,0.s) -Chars 7267 - 7289 [(do~2~rewrite~tau_eutt).] 0.001 secs (0.001u,0.s) -Chars 7290 - 7295 [auto.] 0. secs (0.u,0.s) -Chars 7304 - 7306 [++] 0. secs (0.u,0.s) -Chars 7307 - 7319 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 7320 - 7338 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 7350 - 7372 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) -Chars 7373 - 7378 [step.] 0. secs (0.u,0.s) -Chars 7379 - 7384 [auto.] 0. secs (0.u,0.s) -Chars 7393 - 7395 [++] 0. secs (0.u,0.s) -Chars 7396 - 7406 [unpriv_co.] 0. secs (0.u,0.s) -Chars 7408 - 7419 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7421 - 7431 [(apply~REL).] 0. secs (0.u,0.s) -Chars 7443 - 7465 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) -Chars 7477 - 7499 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 7511 - 7546 [(eapply~unpriv_e_eqit_secure;~...] 0. secs (0.u,0.s) -Chars 7558 - 7580 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 7581 - 7586 [step.] 0. secs (0.u,0.s) -Chars 7587 - 7592 [auto.] 0. secs (0.u,0.s) -Chars 7595 - 7596 [-] 0. secs (0.u,0.s) -Chars 7597 - 7675 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) -Chars 7681 - 7692 [clear~Hsec.] 0. secs (0.u,0.s) -Chars 7693 - 7712 [rename~H~into~Hsec.] 0. secs (0.u,0.s) -Chars 7717 - 7757 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) -Chars 7762 - 7763 [+] 0. secs (0.u,0.s) -Chars 7764 - 7777 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 7787 - 7796 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 7797 - 7823 [(remember~(VisF~e~k1)~as~x).] 0.001 secs (0.001u,0.s) -Chars 7830 - 7919 [(hinduction~Hsec~before~E;~int...] 0.086 secs (0.084u,0.001s) -Chars 7926 - 7927 [*] 0. secs (0.u,0.s) -Chars 7928 - 7946 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 7947 - 7968 [(eapply~IHHsec;~eauto).] 0.001 secs (0.001u,0.s) -Chars 7975 - 7976 [*] 0. secs (0.u,0.s) -Chars 7977 - 8003 [(constructor;~auto;~intros).] 0. secs (0.u,0.s) -Chars 8004 - 8030 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 8032 - 8040 [(apply~H).] 0. secs (0.u,0.s) -Chars 8047 - 8048 [*] 0. secs (0.u,0.s) -Chars 8049 - 8073 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) -Chars 8074 - 8085 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 8086 - 8103 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 8108 - 8109 [+] 0. secs (0.u,0.s) -Chars 8110 - 8137 [(destruct~(classic_empty~u)).] 0. secs (0.u,0.s) -Chars 8144 - 8145 [*] 0. secs (0.u,0.s) -Chars 8146 - 8159 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 8160 - 8169 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 8178 - 8200 [(destruct~(observe~t2)).] 0. secs (0.u,0.s) -Chars 8209 - 8211 [--] 0. secs (0.u,0.s) -Chars 8212 - 8234 [(inv~Hsec;~contra_size).] 0.022 secs (0.021u,0.s) -Chars 8243 - 8245 [--] 0. secs (0.u,0.s) -Chars 8246 - 8258 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 8259 - 8291 [(apply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) -Chars 8303 - 8305 [++] 0. secs (0.u,0.s) -Chars 8306 - 8311 [step.] 0.001 secs (0.001u,0.s) -Chars 8312 - 8324 [constructor.] 0. secs (0.u,0.s) -Chars 8325 - 8330 [auto.] 0. secs (0.u,0.s) -Chars 8342 - 8344 [++] 0. secs (0.u,0.s) -Chars 8345 - 8412 [(inv~Hsec;~ddestruction;~subst...] 0.047 secs (0.046u,0.s) -Chars 8413 - 8418 [step.] 0. secs (0.u,0.s) -Chars 8419 - 8424 [auto.] 0. secs (0.u,0.s) -Chars 8440 - 8445 [auto.] 0. secs (0.u,0.s) -Chars 8454 - 8456 [--] 0. secs (0.u,0.s) -Chars 8457 - 8523 [(inv~Hsec;~ddestruction;~subst...] 0.072 secs (0.071u,0.001s) -Chars 8535 - 8537 [++] 0. secs (0.u,0.s) -Chars 8538 - 8550 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 8551 - 8583 [(apply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) -Chars 8598 - 8599 [{] 0. secs (0.u,0.s) -Chars 8600 - 8605 [step.] 0.002 secs (0.002u,0.s) -Chars 8606 - 8618 [constructor.] 0. secs (0.u,0.s) -Chars 8619 - 8623 [(red).] 0. secs (0.u,0.s) -Chars 8624 - 8629 [auto.] 0. secs (0.u,0.s) -Chars 8630 - 8631 [}] 0. secs (0.u,0.s) -Chars 8646 - 8647 [{] 0. secs (0.u,0.s) -Chars 8648 - 8665 [(rewrite~H1~in~H3).] 0. secs (0.u,0.s) -Chars 8666 - 8671 [step.] 0. secs (0.u,0.s) -Chars 8672 - 8681 [(apply~H3).] 0. secs (0.u,0.s) -Chars 8682 - 8683 [}] 0. secs (0.u,0.s) -Chars 8695 - 8697 [++] 0. secs (0.u,0.s) -Chars 8699 - 8711 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 8712 - 8744 [(apply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) -Chars 8759 - 8760 [{] 0. secs (0.u,0.s) -Chars 8761 - 8766 [step.] 0.001 secs (0.001u,0.s) -Chars 8767 - 8779 [constructor.] 0. secs (0.u,0.s) -Chars 8780 - 8784 [(red).] 0. secs (0.u,0.s) -Chars 8785 - 8790 [auto.] 0. secs (0.u,0.s) -Chars 8791 - 8792 [}] 0. secs (0.u,0.s) -Chars 8807 - 8808 [{] 0. secs (0.u,0.s) -Chars 8809 - 8818 [(apply~H2).] 0. secs (0.u,0.s) -Chars 8819 - 8820 [}] 0. secs (0.u,0.s) -Chars 8832 - 8834 [++] 0. secs (0.u,0.s) -Chars 8836 - 8848 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 8849 - 8861 [contra_size.] 0. secs (0.u,0.s) -Chars 8868 - 8869 [*] 0. secs (0.u,0.s) -Chars 8870 - 8883 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 8884 - 8893 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 8902 - 8924 [(destruct~(observe~t2)).] 0. secs (0.u,0.s) -Chars 8933 - 8935 [++] 0. secs (0.u,0.s) -Chars 8936 - 9004 [(eapply~eses_aux_ret_r~with~(m...] 0. secs (0.u,0.s) -Chars 9016 - 9021 [step.] 0.001 secs (0.001u,0.s) -Chars 9022 - 9034 [constructor.] 0. secs (0.u,0.s) -Chars 9035 - 9039 [(red).] 0. secs (0.u,0.s) -Chars 9040 - 9045 [auto.] 0. secs (0.u,0.s) -Chars 9054 - 9056 [++] 0. secs (0.u,0.s) -Chars 9057 - 9067 [unpriv_co.] 0. secs (0.u,0.s) -Chars 9068 - 9111 [(apply~CIH~with~(t1~:=~k1~a);~...] 0. secs (0.u,0.s) -Chars 9123 - 9158 [(eapply~unpriv_e_eqit_secure;~...] 0. secs (0.u,0.s) -Chars 9159 - 9181 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 9193 - 9215 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) -Chars 9216 - 9238 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 9239 - 9244 [step.] 0. secs (0.u,0.s) -Chars 9245 - 9250 [auto.] 0. secs (0.u,0.s) -Chars 9259 - 9261 [++] 0. secs (0.u,0.s) -Chars 9262 - 9302 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) -Chars 9314 - 9316 [**] 0. secs (0.u,0.s) -Chars 9317 - 9341 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) -Chars 9356 - 9406 [(eapply~eses_au_vis_r~with~(m1...] 0.001 secs (0.001u,0.s) -Chars 9421 - 9426 [step.] 0.001 secs (0.001u,0.s) -Chars 9427 - 9439 [constructor.] 0. secs (0.u,0.s) -Chars 9440 - 9444 [(red).] 0. secs (0.u,0.s) -Chars 9445 - 9450 [auto.] 0. secs (0.u,0.s) -Chars 9462 - 9464 [**] 0. secs (0.u,0.s) -Chars 9465 - 9492 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) -Chars 9507 - 9510 [---] 0. secs (0.u,0.s) -Chars 9511 - 9523 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 9524 - 9550 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 9569 - 9604 [(eapply~unpriv_e_eqit_secure;~...] 0. secs (0.u,0.s) -Chars 9605 - 9610 [step.] 0. secs (0.u,0.s) -Chars 9611 - 9616 [auto.] 0. secs (0.u,0.s) -Chars 9631 - 9634 [---] 0. secs (0.u,0.s) -Chars 9635 - 9645 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 9646 - 9672 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 9751 - 9816 [(do~2~(eapply~unpriv_e_eqit_se...] 0.001 secs (0.001u,0.s) -Chars 9835 - 9840 [step.] 0. secs (0.u,0.s) -Chars 9841 - 9846 [auto.] 0. secs (0.u,0.s) -Chars 9849 - 9850 [-] 0. secs (0.u,0.s) -Chars 9851 - 9873 [(eapply~IHHeutt;~eauto).] 0. secs (0.u,0.s) -Chars 9874 - 9881 [unstep.] 0. secs (0.u,0.s) -Chars 9886 - 9908 [(apply~tau_eqit_secure).] 0. secs (0.u,0.s) -Chars 9909 - 9914 [step.] 0. secs (0.u,0.s) -Chars 9915 - 9920 [auto.] 0. secs (0.u,0.s) -Chars 9921 - 9925 [Qed.] 0.115 secs (0.113u,0.002s) -Chars 9928 - 10258 [Lemma~eqit_secure_TauLR~:~~~fo...] 0. secs (0.u,0.s) -Chars 10259 - 10265 [Proof.] 0. secs (0.u,0.s) -Chars 10268 - 10306 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) -Chars 10309 - 10316 [(intros).] 0. secs (0.u,0.s) -Chars 10317 - 10327 [step~in~H.] 0. secs (0.u,0.s) -Chars 10328 - 10337 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 10338 - 10343 [step.] 0. secs (0.u,0.s) -Chars 10344 - 10348 [(cbn).] 0. secs (0.u,0.s) -Chars 10351 - 10375 [(remember~(TauF~t0)~as~x).] 0. secs (0.u,0.s) -Chars 10376 - 10400 [(remember~(TauF~t4)~as~y).] 0. secs (0.u,0.s) -Chars 10403 - 10453 [(hinduction~H~before~b2;~intro...] 0.007 secs (0.006u,0.s) -Chars 10456 - 10457 [-] 0. secs (0.u,0.s) -Chars 10458 - 10477 [(inv~Heqx;~inv~Heqy).] 0.004 secs (0.004u,0.s) -Chars 10478 - 10489 [now~unstep.] 0. secs (0.u,0.s) -Chars 10493 - 10494 [-] 0. secs (0.u,0.s) -Chars 10495 - 10504 [(inv~Heqx).] 0.013 secs (0.013u,0.s) -Chars 10505 - 10529 [(inv~H;~eauto~with~itree).] 0.372 secs (0.367u,0.004s) -Chars 10534 - 10535 [+] 0. secs (0.u,0.s) -Chars 10537 - 10548 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10549 - 10560 [now~unstep.] 0. secs (0.u,0.s) -Chars 10566 - 10567 [+] 0. secs (0.u,0.s) -Chars 10568 - 10579 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10580 - 10597 [(rewrite~H1~in~H2).] 0. secs (0.u,0.s) -Chars 10604 - 10622 [specialize~(H2~a).] 0. secs (0.u,0.s) -Chars 10623 - 10641 [(genobs~(k1~a)~ok1).] 0. secs (0.u,0.s) -Chars 10642 - 10655 [clear~Heqok1.] 0. secs (0.u,0.s) -Chars 10662 - 10686 [(remember~(TauF~t4)~as~y).] 0.001 secs (0.001u,0.s) -Chars 10693 - 10753 [(hinduction~H2~before~b2;~intr...] 0.422 secs (0.416u,0.005s) -Chars 10760 - 10761 [*] 0. secs (0.u,0.s) -Chars 10763 - 10793 [(constructor;~auto;~now~unstep).] 0.001 secs (0.001u,0.s) -Chars 10801 - 10802 [*] 0. secs (0.u,0.s) -Chars 10804 - 10815 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10816 - 10827 [now~unstep.] 0. secs (0.u,0.s) -Chars 10835 - 10836 [*] 0. secs (0.u,0.s) -Chars 10837 - 10851 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 10856 - 10857 [+] 0. secs (0.u,0.s) -Chars 10858 - 10873 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 10876 - 10877 [-] 0. secs (0.u,0.s) -Chars 10878 - 10887 [(inv~Heqy).] 0.011 secs (0.011u,0.s) -Chars 10888 - 10912 [(inv~H;~eauto~with~itree).] 0.397 secs (0.391u,0.004s) -Chars 10917 - 10918 [+] 0. secs (0.u,0.s) -Chars 10920 - 10931 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10932 - 10943 [now~unstep.] 0. secs (0.u,0.s) -Chars 10949 - 10950 [+] 0. secs (0.u,0.s) -Chars 10951 - 10968 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) -Chars 10969 - 10980 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10981 - 10999 [specialize~(H2~a).] 0. secs (0.u,0.s) -Chars 11006 - 11024 [(genobs~(k2~a)~ok2).] 0. secs (0.u,0.s) -Chars 11025 - 11038 [clear~Heqok2.] 0. secs (0.u,0.s) -Chars 11045 - 11069 [(remember~(TauF~t0)~as~y).] 0.001 secs (0.001u,0.s) -Chars 11076 - 11136 [(hinduction~H2~before~b2;~intr...] 0.474 secs (0.467u,0.006s) -Chars 11143 - 11144 [*] 0. secs (0.u,0.s) -Chars 11146 - 11164 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 11165 - 11176 [now~unstep.] 0. secs (0.u,0.s) -Chars 11184 - 11185 [*] 0. secs (0.u,0.s) -Chars 11186 - 11197 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 11199 - 11210 [now~unstep.] 0. secs (0.u,0.s) -Chars 11218 - 11219 [*] 0. secs (0.u,0.s) -Chars 11220 - 11234 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 11239 - 11240 [+] 0. secs (0.u,0.s) -Chars 11241 - 11256 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 11257 - 11261 [Qed.] 0.048 secs (0.047u,0.001s) -Chars 11263 - 11674 [Lemma~eqit_secure_TauLVisR~:~~...] 0.001 secs (0.001u,0.s) -Chars 11675 - 11681 [Proof.] 0. secs (0.u,0.s) -Chars 11684 - 11740 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) -Chars 11743 - 11756 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 11757 - 11766 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 11769 - 11793 [(remember~(TauF~t3)~as~x).] 0. secs (0.u,0.s) -Chars 11794 - 11819 [(remember~(VisF~e~k)~as~y).] 0. secs (0.u,0.s) -Chars 11822 - 11874 [(hinduction~Hsec~before~b2;~in...] 0.003 secs (0.003u,0.s) -Chars 11877 - 11878 [-] 0. secs (0.u,0.s) -Chars 11879 - 11888 [(inv~Heqx).] 0.024 secs (0.024u,0.s) -Chars 11889 - 11899 [(inv~CHECK).] 0.015 secs (0.015u,0.s) -Chars 11904 - 11929 [(remember~(VisF~e~k)~as~y).] 0.001 secs (0.u,0.s) -Chars 11930 - 11935 [step.] 0. secs (0.u,0.s) -Chars 11936 - 11949 [clear~IHHsec.] 0. secs (0.u,0.s) -Chars 11954 - 12078 [(hinduction~Hsec~before~b2;~in...] 0.321 secs (0.315u,0.004s) -Chars 12083 - 12084 [+] 0. secs (0.u,0.s) -Chars 12085 - 12103 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 12105 - 12116 [now~unstep.] 0. secs (0.u,0.s) -Chars 12122 - 12123 [+] 0. secs (0.u,0.s) -Chars 12124 - 12135 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 12137 - 12148 [now~unstep.] 0. secs (0.u,0.s) -Chars 12154 - 12155 [+] 0. secs (0.u,0.s) -Chars 12157 - 12174 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 12175 - 12189 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 12192 - 12193 [-] 0. secs (0.u,0.s) -Chars 12194 - 12203 [(inv~Heqx).] 0.002 secs (0.002u,0.s) -Chars 12204 - 12213 [(inv~Heqy).] 0.002 secs (0.002u,0.s) -Chars 12214 - 12234 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) -Chars 12236 - 12244 [(apply~H).] 0. secs (0.u,0.s) -Chars 12247 - 12248 [-] 0. secs (0.u,0.s) -Chars 12249 - 12258 [(inv~Heqx).] 0.002 secs (0.002u,0.s) -Chars 12259 - 12268 [(inv~Heqy).] 0.003 secs (0.003u,0.s) -Chars 12269 - 12289 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 12290 - 12306 [(rewrite~H2~in~H).] 0. secs (0.u,0.s) -Chars 12311 - 12320 [clear~H0.] 0. secs (0.u,0.s) -Chars 12321 - 12333 [clear~H2~t1.] 0. secs (0.u,0.s) -Chars 12334 - 12358 [(remember~(TauF~t3)~as~x).] 0. secs (0.u,0.s) -Chars 12363 - 12368 [step.] 0. secs (0.u,0.s) -Chars 12369 - 12386 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 12391 - 12467 [(hinduction~H~before~b2;~intro...] 0.218 secs (0.216u,0.001s) -Chars 12472 - 12473 [+] 0. secs (0.u,0.s) -Chars 12475 - 12493 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 12494 - 12505 [now~unstep.] 0. secs (0.u,0.s) -Chars 12511 - 12512 [+] 0. secs (0.u,0.s) -Chars 12514 - 12525 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 12526 - 12537 [now~unstep.] 0. secs (0.u,0.s) -Chars 12543 - 12544 [+] 0. secs (0.u,0.s) -Chars 12545 - 12559 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 12562 - 12563 [-] 0. secs (0.u,0.s) -Chars 12566 - 12575 [(inv~Heqx).] 0.002 secs (0.002u,0.s) -Chars 12576 - 12585 [(inv~Heqy).] 0.002 secs (0.002u,0.s) -Chars 12586 - 12606 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) -Chars 12607 - 12619 [contra_size.] 0. secs (0.u,0.s) -Chars 12620 - 12624 [Qed.] 0.043 secs (0.042u,0.001s) -Chars 12626 - 13015 [Lemma~eqit_secure_TauRVisL~:~~...] 0.001 secs (0.001u,0.s) -Chars 13016 - 13022 [Proof.] 0. secs (0.u,0.s) -Chars 13025 - 13081 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) -Chars 13084 - 13097 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 13098 - 13107 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 13110 - 13134 [(remember~(TauF~t3)~as~x).] 0. secs (0.u,0.s) -Chars 13135 - 13160 [(remember~(VisF~e~k)~as~y).] 0. secs (0.u,0.s) -Chars 13163 - 13215 [(hinduction~Hsec~before~b2;~in...] 0.003 secs (0.003u,0.s) -Chars 13218 - 13219 [-] 0. secs (0.u,0.s) -Chars 13220 - 13229 [(inv~Heqx).] 0.019 secs (0.019u,0.s) -Chars 13230 - 13240 [(inv~CHECK).] 0.013 secs (0.013u,0.s) -Chars 13241 - 13266 [(remember~(VisF~e~k)~as~y).] 0.002 secs (0.002u,0.s) -Chars 13267 - 13272 [step.] 0. secs (0.u,0.s) -Chars 13273 - 13286 [clear~IHHsec.] 0. secs (0.u,0.s) -Chars 13291 - 13397 [(hinduction~Hsec~before~b1;~in...] 0.391 secs (0.387u,0.003s) -Chars 13402 - 13403 [+] 0. secs (0.u,0.s) -Chars 13404 - 13433 [(constructor;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 13435 - 13446 [now~unstep.] 0. secs (0.u,0.s) -Chars 13452 - 13453 [+] 0. secs (0.u,0.s) -Chars 13454 - 13465 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 13467 - 13478 [now~unstep.] 0. secs (0.u,0.s) -Chars 13484 - 13485 [+] 0. secs (0.u,0.s) -Chars 13486 - 13498 [contra_size.] 0. secs (0.u,0.s) -Chars 13503 - 13504 [+] 0. secs (0.u,0.s) -Chars 13505 - 13517 [contra_size.] 0. secs (0.u,0.s) -Chars 13522 - 13523 [+] 0. secs (0.u,0.s) -Chars 13525 - 13542 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 13543 - 13557 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 13560 - 13561 [-] 0. secs (0.u,0.s) -Chars 13562 - 13571 [(inv~Heqx).] 0.002 secs (0.002u,0.s) -Chars 13572 - 13581 [(inv~Heqy).] 0.003 secs (0.003u,0.s) -Chars 13582 - 13602 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) -Chars 13604 - 13612 [(apply~H).] 0. secs (0.u,0.s) -Chars 13615 - 13616 [-] 0. secs (0.u,0.s) -Chars 13617 - 13626 [(inv~Heqx).] 0.002 secs (0.002u,0.s) -Chars 13627 - 13636 [(inv~Heqy).] 0.003 secs (0.003u,0.s) -Chars 13637 - 13657 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 13659 - 13675 [(rewrite~H2~in~H).] 0. secs (0.u,0.s) -Chars 13676 - 13686 [(inv~CHECK).] 0.001 secs (0.001u,0.s) -Chars 13691 - 13708 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 13709 - 13714 [step.] 0. secs (0.u,0.s) -Chars 13715 - 13739 [(remember~(TauF~t3)~as~y).] 0. secs (0.u,0.s) -Chars 13744 - 13820 [(hinduction~H~before~b2;~intro...] 0.266 secs (0.264u,0.001s) -Chars 13825 - 13826 [+] 0. secs (0.u,0.s) -Chars 13828 - 13846 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 13847 - 13858 [now~unstep.] 0. secs (0.u,0.s) -Chars 13864 - 13865 [+] 0. secs (0.u,0.s) -Chars 13867 - 13878 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 13879 - 13890 [now~unstep.] 0. secs (0.u,0.s) -Chars 13896 - 13897 [+] 0. secs (0.u,0.s) -Chars 13898 - 13912 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 13915 - 13916 [-] 0. secs (0.u,0.s) -Chars 13917 - 13926 [(inv~Heqx).] 0.002 secs (0.002u,0.s) -Chars 13927 - 13936 [(inv~Heqy).] 0.002 secs (0.002u,0.s) -Chars 13937 - 13957 [(ddestruction;~subst).] 0.002 secs (0.002u,0.s) -Chars 13958 - 13970 [contra_size.] 0. secs (0.u,0.s) -Chars 13971 - 13975 [Qed.] 0.049 secs (0.048u,0.s) -Chars 13977 - 14474 [Lemma~eqit_secure_VisLR~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 14475 - 14481 [Proof.] 0. secs (0.u,0.s) -Chars 14484 - 14556 [(intros~E~R3~Label~priv~l~b1~b...] 0. secs (0.u,0.s) -Chars 14559 - 14564 [step.] 0. secs (0.u,0.s) -Chars 14567 - 14578 [step~in~H1.] 0. secs (0.u,0.s) -Chars 14579 - 14588 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 14589 - 14615 [(remember~(VisF~e~k2)~as~x).] 0. secs (0.u,0.s) -Chars 14618 - 14644 [(remember~(VisF~e0~k)~as~y).] 0. secs (0.u,0.s) -Chars 14647 - 14696 [(hinduction~H1~before~l;~intro...] 0.004 secs (0.004u,0.s) -Chars 14699 - 14700 [-] 0. secs (0.u,0.s) -Chars 14701 - 14710 [(inv~Heqx).] 0.004 secs (0.004u,0.s) -Chars 14711 - 14720 [(inv~Heqy).] 0.004 secs (0.004u,0.s) -Chars 14721 - 14741 [(ddestruction;~subst).] 0.009 secs (0.009u,0.s) -Chars 14742 - 14756 [contradiction.] 0. secs (0.u,0.s) -Chars 14759 - 14760 [-] 0. secs (0.u,0.s) -Chars 14762 - 14771 [(inv~Heqx).] 0.004 secs (0.004u,0.s) -Chars 14772 - 14781 [(inv~Heqy).] 0.004 secs (0.004u,0.s) -Chars 14782 - 14802 [(ddestruction;~subst).] 0.005 secs (0.005u,0.s) -Chars 14803 - 14814 [now~unstep.] 0. secs (0.u,0.s) -Chars 14818 - 14819 [-] 0. secs (0.u,0.s) -Chars 14820 - 14829 [(inv~Heqx).] 0.005 secs (0.005u,0.s) -Chars 14830 - 14850 [(ddestruction;~subst).] 0.007 secs (0.006u,0.s) -Chars 14851 - 14861 [(inv~CHECK).] 0.003 secs (0.003u,0.s) -Chars 14862 - 14871 [clear~H0.] 0. secs (0.u,0.s) -Chars 14876 - 14893 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 14898 - 14916 [(rewrite~Heqy~in~H).] 0. secs (0.u,0.s) -Chars 14917 - 14928 [clear~Heqy.] 0. secs (0.u,0.s) -Chars 14929 - 14955 [(remember~(VisF~e1~k)~as~y).] 0. secs (0.u,0.s) -Chars 14960 - 15079 [(hinduction~H~before~l;~intros...] 0.345 secs (0.343u,0.001s) -Chars 15084 - 15085 [+] 0. secs (0.u,0.s) -Chars 15087 - 15105 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 15106 - 15117 [now~unstep.] 0. secs (0.u,0.s) -Chars 15123 - 15124 [+] 0. secs (0.u,0.s) -Chars 15125 - 15136 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 15138 - 15149 [now~unstep.] 0. secs (0.u,0.s) -Chars 15155 - 15156 [+] 0. secs (0.u,0.s) -Chars 15158 - 15176 [specialize~(H~a0).] 0. secs (0.u,0.s) -Chars 15177 - 15191 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 15194 - 15195 [-] 0. secs (0.u,0.s) -Chars 15196 - 15205 [(inv~Heqy).] 0.005 secs (0.005u,0.s) -Chars 15207 - 15227 [(ddestruction;~subst).] 0.004 secs (0.004u,0.s) -Chars 15228 - 15238 [(inv~CHECK).] 0.002 secs (0.002u,0.s) -Chars 15239 - 15248 [clear~H0.] 0. secs (0.u,0.s) -Chars 15253 - 15271 [(rewrite~Heqx~in~H).] 0. secs (0.u,0.s) -Chars 15272 - 15290 [specialize~(H~a0).] 0. secs (0.u,0.s) -Chars 15295 - 15322 [(remember~(VisF~e0~k0)~as~y).] 0. secs (0.u,0.s) -Chars 15327 - 15447 [(hinduction~H~before~b1;~intro...] 0.354 secs (0.351u,0.002s) -Chars 15452 - 15453 [+] 0. secs (0.u,0.s) -Chars 15455 - 15473 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 15474 - 15485 [now~unstep.] 0. secs (0.u,0.s) -Chars 15491 - 15492 [+] 0. secs (0.u,0.s) -Chars 15494 - 15505 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 15506 - 15517 [now~unstep.] 0. secs (0.u,0.s) -Chars 15523 - 15524 [+] 0. secs (0.u,0.s) -Chars 15526 - 15543 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 15544 - 15558 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 15561 - 15562 [-] 0. secs (0.u,0.s) -Chars 15563 - 15603 [(inv~Heqx;~inv~Heqy;~ddestruct...] 0.015 secs (0.014u,0.s) -Chars 15604 - 15616 [contra_size.] 0. secs (0.u,0.s) -Chars 15619 - 15620 [-] 0. secs (0.u,0.s) -Chars 15621 - 15661 [(inv~Heqx;~inv~Heqy;~ddestruct...] 0.014 secs (0.014u,0.s) -Chars 15662 - 15674 [contra_size.] 0. secs (0.u,0.s) -Chars 15675 - 15679 [Qed.] 0.097 secs (0.095u,0.001s) -Chars 15681 - 16217 [Lemma~eqit_secure_private_VisL...] 0.001 secs (0.001u,0.s) -Chars 16218 - 16224 [Proof.] 0. secs (0.u,0.s) -Chars 16227 - 16234 [(intros).] 0. secs (0.u,0.s) -Chars 16235 - 16240 [step.] 0. secs (0.u,0.s) -Chars 16241 - 16245 [(cbn).] 0. secs (0.u,0.s) -Chars 16246 - 16256 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 16257 - 16261 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16263 - 16692 [Lemma~eqit_secure_private_VisL...] 0. secs (0.u,0.s) -Chars 16693 - 16699 [Proof.] 0. secs (0.u,0.s) -Chars 16702 - 16709 [(intros).] 0. secs (0.u,0.s) -Chars 16710 - 16715 [step.] 0. secs (0.u,0.s) -Chars 16716 - 16720 [(cbn).] 0. secs (0.u,0.s) -Chars 16721 - 16732 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 16733 - 16740 [unstep.] 0. secs (0.u,0.s) -Chars 16741 - 16750 [(apply~H1).] 0. secs (0.u,0.s) -Chars 16751 - 16755 [Qed.] 0.002 secs (0.002u,0.s) -Chars 16757 - 17185 [Lemma~eqit_secure_private_VisR...] 0.001 secs (0.001u,0.s) -Chars 17186 - 17192 [Proof.] 0. secs (0.u,0.s) -Chars 17195 - 17202 [(intros).] 0. secs (0.u,0.s) -Chars 17203 - 17208 [step.] 0. secs (0.u,0.s) -Chars 17209 - 17213 [(cbn).] 0. secs (0.u,0.s) -Chars 17214 - 17225 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 17226 - 17233 [unstep.] 0. secs (0.u,0.s) -Chars 17234 - 17243 [(apply~H1).] 0. secs (0.u,0.s) -Chars 17244 - 17248 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17250 - 17651 [Lemma~eqit_secure_public_Vis~:...] 0.001 secs (0.001u,0.s) -Chars 17652 - 17658 [Proof.] 0. secs (0.u,0.s) -Chars 17661 - 17675 [(split;~intros).] 0. secs (0.u,0.s) -Chars 17678 - 17679 [-] 0. secs (0.u,0.s) -Chars 17680 - 17738 [(sinv~H0;~ddestruction;~subst;...] 0.051 secs (0.05u,0.s) -Chars 17741 - 17742 [-] 0. secs (0.u,0.s) -Chars 17743 - 17748 [step.] 0. secs (0.u,0.s) -Chars 17749 - 17767 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 17769 - 17773 [Qed.] 0.022 secs (0.022u,0.s) -Chars 17775 - 18404 [Lemma~eqit_secure_trans_aux1~:...] 0.001 secs (0.001u,0.s) -Chars 18405 - 18411 [Proof.] 0. secs (0.u,0.s) -Chars 18414 - 18473 [(intros~E~R3~R1~Label~priv~l~b...] 0. secs (0.u,0.s) -Chars 18476 - 18486 [step~in~H.] 0. secs (0.u,0.s) -Chars 18487 - 18496 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 18499 - 18523 [(remember~(RetF~r0)~as~x).] 0. secs (0.u,0.s) -Chars 18526 - 18575 [(hinduction~Ht23~before~E;~int...] 0.053 secs (0.053u,0.s) -Chars 18578 - 18579 [-] 0. secs (0.u,0.s) -Chars 18580 - 18604 [(remember~(RetF~r1)~as~y).] 0. secs (0.u,0.s) -Chars 18609 - 18668 [(hinduction~H0~before~E;~intro...] 0.019 secs (0.019u,0.s) -Chars 18673 - 18692 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 18693 - 18704 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 18705 - 18709 [(cbn).] 0. secs (0.u,0.s) -Chars 18710 - 18727 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 18730 - 18731 [-] 0. secs (0.u,0.s) -Chars 18732 - 18753 [(eapply~IHHt23;~eauto).] 0. secs (0.u,0.s) -Chars 18758 - 18782 [(remember~(TauF~t1)~as~y).] 0.001 secs (0.001u,0.s) -Chars 18787 - 18845 [(hinduction~H~before~E;~intros...] 0.456 secs (0.454u,0.001s) -Chars 18850 - 18851 [+] 0. secs (0.u,0.s) -Chars 18853 - 18871 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 18872 - 18883 [now~unstep.] 0. secs (0.u,0.s) -Chars 18889 - 18890 [+] 0. secs (0.u,0.s) -Chars 18892 - 18903 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 18904 - 18915 [now~unstep.] 0. secs (0.u,0.s) -Chars 18921 - 18922 [+] 0. secs (0.u,0.s) -Chars 18924 - 18938 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 18941 - 18942 [-] 0. secs (0.u,0.s) -Chars 18943 - 18969 [(assert~(Hne~:~nonempty~A)).] 0. secs (0.u,0.s) -Chars 18970 - 18971 [{] 0. secs (0.u,0.s) -Chars 18972 - 18978 [eauto.] 0. secs (0.u,0.s) -Chars 18979 - 18980 [}] 0. secs (0.u,0.s) -Chars 19033 - 19041 [(inv~Hne).] 0.017 secs (0.017u,0.s) -Chars 19042 - 19063 [(eapply~(H0~a);~eauto).] 0. secs (0.u,0.s) -Chars 19068 - 19094 [(remember~(VisF~e~k1)~as~y).] 0.001 secs (0.001u,0.s) -Chars 19099 - 19219 [(hinduction~H1~before~E;~intro...] 0.552 secs (0.549u,0.002s) -Chars 19224 - 19225 [+] 0. secs (0.u,0.s) -Chars 19227 - 19245 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 19246 - 19257 [now~unstep.] 0. secs (0.u,0.s) -Chars 19263 - 19264 [+] 0. secs (0.u,0.s) -Chars 19266 - 19277 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 19278 - 19289 [now~unstep.] 0. secs (0.u,0.s) -Chars 19295 - 19296 [+] 0. secs (0.u,0.s) -Chars 19298 - 19322 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) -Chars 19323 - 19334 [now~unstep.] 0. secs (0.u,0.s) -Chars 19336 - 19340 [Qed.] 0.062 secs (0.061u,0.s) -Chars 19342 - 20221 [Lemma~eqit_secure_trans_aux2~:...] 0.001 secs (0.001u,0.s) -Chars 20222 - 20228 [Proof.] 0. secs (0.u,0.s) -Chars 20231 - 20304 [(intros~E~R3~R1~Label~priv~l~b...] 0. secs (0.u,0.s) -Chars 20307 - 20318 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 20319 - 20329 [(cbn~in~Ht).] 0. secs (0.u,0.s) -Chars 20330 - 20356 [(remember~(VisF~e0~k)~as~x).] 0. secs (0.u,0.s) -Chars 20359 - 20451 [(hinduction~Ht23~before~E;~int...] 0.193 secs (0.192u,0.s) -Chars 20454 - 20455 [-] 0. secs (0.u,0.s) -Chars 20456 - 20477 [(eapply~IHHt23;~eauto).] 0. secs (0.u,0.s) -Chars 20478 - 20491 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 20492 - 20516 [(remember~(TauF~t1)~as~y).] 0.001 secs (0.001u,0.s) -Chars 20521 - 20580 [(hinduction~Ht~before~E;~intro...] 0.505 secs (0.502u,0.002s) -Chars 20585 - 20586 [+] 0. secs (0.u,0.s) -Chars 20588 - 20606 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 20607 - 20618 [now~unstep.] 0. secs (0.u,0.s) -Chars 20624 - 20625 [+] 0. secs (0.u,0.s) -Chars 20627 - 20638 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 20639 - 20650 [now~unstep.] 0. secs (0.u,0.s) -Chars 20656 - 20657 [+] 0. secs (0.u,0.s) -Chars 20659 - 20673 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 20676 - 20677 [-] 0. secs (0.u,0.s) -Chars 20679 - 20706 [(remember~(VisF~e0~k1)~as~y).] 0. secs (0.u,0.s) -Chars 20711 - 20814 [(hinduction~Ht~before~E;~intro...] 0.112 secs (0.111u,0.s) -Chars 20819 - 20820 [+] 0. secs (0.u,0.s) -Chars 20822 - 20840 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 20841 - 20848 [(intros).] 0. secs (0.u,0.s) -Chars 20849 - 20861 [(eapply~CIH0).] 0. secs (0.u,0.s) -Chars 20862 - 20870 [(apply~H).] 0. secs (0.u,0.s) -Chars 20871 - 20880 [(apply~H0).] 0. secs (0.u,0.s) -Chars 20885 - 20886 [+] 0. secs (0.u,0.s) -Chars 20887 - 20906 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 20907 - 20918 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 20919 - 20936 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 20939 - 20940 [-] 0. secs (0.u,0.s) -Chars 20941 - 20968 [(assert~(nonempty~A);~eauto).] 0.003 secs (0.003u,0.s) -Chars 20969 - 20976 [(inv~H1).] 0.018 secs (0.018u,0.s) -Chars 20977 - 20994 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 20999 - 21008 [Unshelve.] 0. secs (0.u,0.s) -Chars 21009 - 21020 [all:~auto.] 0. secs (0.u,0.s) -Chars 21021 - 21030 [clear~H0.] 0. secs (0.u,0.s) -Chars 21031 - 21047 [(rewrite~H2~in~H).] 0. secs (0.u,0.s) -Chars 21052 - 21078 [(remember~(VisF~e~k1)~as~y).] 0.001 secs (0.001u,0.s) -Chars 21083 - 21203 [(hinduction~Ht~before~E;~intro...] 0.569 secs (0.565u,0.003s) -Chars 21208 - 21209 [+] 0. secs (0.u,0.s) -Chars 21211 - 21229 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 21230 - 21241 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 21247 - 21248 [+] 0. secs (0.u,0.s) -Chars 21250 - 21261 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 21262 - 21273 [now~unstep.] 0. secs (0.u,0.s) -Chars 21279 - 21280 [+] 0. secs (0.u,0.s) -Chars 21282 - 21306 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) -Chars 21307 - 21318 [now~unstep.] 0. secs (0.u,0.s) -Chars 21321 - 21325 [Qed.] 0.102 secs (0.1u,0.001s) -Chars 21328 - 21699 [Lemma~secret_halt_trans_1~:~~~...] 0.001 secs (0.001u,0.s) -Chars 21700 - 21706 [Proof.] 0. secs (0.u,0.s) -Chars 21709 - 21772 [(intros~E~Label~priv~l~b1~b2~R...] 0. secs (0.u,0.s) -Chars 21775 - 21799 [generalize~dependent~t3.] 0. secs (0.u,0.s) -Chars 21800 - 21824 [generalize~dependent~t1.] 0. secs (0.u,0.s) -Chars 21827 - 21846 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 21847 - 21868 [(intros~t1~t3~Ht1~Ht3).] 0. secs (0.u,0.s) -Chars 21871 - 21883 [step~in~Ht1.] 0. secs (0.u,0.s) -Chars 21884 - 21896 [step~in~Ht3.] 0. secs (0.u,0.s) -Chars 21897 - 21906 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 21909 - 21934 [(remember~(VisF~e~k)~as~x).] 0.001 secs (0.001u,0.s) -Chars 21937 - 22056 [(hinduction~Ht1~before~c;~intr...] 0.328 secs (0.326u,0.002s) -Chars 22059 - 22060 [-] 0. secs (0.u,0.s) -Chars 22062 - 22127 [(inv~Ht3;~ddestruction;~subst;...] 0.107 secs (0.107u,0.s) -Chars 22132 - 22133 [+] 0. secs (0.u,0.s) -Chars 22134 - 22146 [constructor.] 0. secs (0.u,0.s) -Chars 22147 - 22163 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22164 - 22169 [step.] 0. secs (0.u,0.s) -Chars 22170 - 22175 [auto.] 0. secs (0.u,0.s) -Chars 22180 - 22181 [+] 0. secs (0.u,0.s) -Chars 22182 - 22198 [(unpriv_co;~auto).] 0.001 secs (0.001u,0.s) -Chars 22199 - 22215 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22216 - 22221 [step.] 0. secs (0.u,0.s) -Chars 22222 - 22239 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) -Chars 22240 - 22249 [(apply~H2).] 0. secs (0.u,0.s) -Chars 22254 - 22255 [+] 0. secs (0.u,0.s) -Chars 22257 - 22269 [constructor.] 0. secs (0.u,0.s) -Chars 22270 - 22286 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22291 - 22292 [+] 0. secs (0.u,0.s) -Chars 22294 - 22321 [(destruct~(classic_empty~B)).] 0. secs (0.u,0.s) -Chars 22328 - 22329 [*] 0. secs (0.u,0.s) -Chars 22330 - 22342 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 22343 - 22370 [(apply~CIH;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 22371 - 22376 [step.] 0. secs (0.u,0.s) -Chars 22385 - 22389 [(cbn).] 0. secs (0.u,0.s) -Chars 22390 - 22402 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 22409 - 22410 [*] 0. secs (0.u,0.s) -Chars 22411 - 22421 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 22422 - 22438 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22439 - 22448 [(apply~H1).] 0. secs (0.u,0.s) -Chars 22453 - 22454 [+] 0. secs (0.u,0.s) -Chars 22456 - 22468 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 22469 - 22485 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22486 - 22491 [step.] 0. secs (0.u,0.s) -Chars 22498 - 22502 [(cbn).] 0. secs (0.u,0.s) -Chars 22503 - 22515 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 22516 - 22528 [contra_size.] 0.002 secs (0.002u,0.s) -Chars 22531 - 22532 [-] 0. secs (0.u,0.s) -Chars 22535 - 22600 [(inv~Ht3;~ddestruction;~subst;...] 0.109 secs (0.108u,0.s) -Chars 22605 - 22606 [+] 0. secs (0.u,0.s) -Chars 22607 - 22619 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 22620 - 22636 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22643 - 22644 [*] 0. secs (0.u,0.s) -Chars 22645 - 22650 [step.] 0. secs (0.u,0.s) -Chars 22651 - 22655 [(cbn).] 0. secs (0.u,0.s) -Chars 22656 - 22668 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 22675 - 22676 [*] 0. secs (0.u,0.s) -Chars 22677 - 22682 [step.] 0. secs (0.u,0.s) -Chars 22683 - 22688 [auto.] 0. secs (0.u,0.s) -Chars 22693 - 22694 [+] 0. secs (0.u,0.s) -Chars 22695 - 22707 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 22708 - 22724 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22731 - 22732 [*] 0. secs (0.u,0.s) -Chars 22733 - 22738 [step.] 0. secs (0.u,0.s) -Chars 22739 - 22743 [(cbn).] 0. secs (0.u,0.s) -Chars 22744 - 22756 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 22763 - 22764 [*] 0. secs (0.u,0.s) -Chars 22765 - 22770 [step.] 0. secs (0.u,0.s) -Chars 22771 - 22776 [auto.] 0. secs (0.u,0.s) -Chars 22777 - 22794 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) -Chars 22795 - 22804 [(apply~H2).] 0. secs (0.u,0.s) -Chars 22809 - 22810 [+] 0. secs (0.u,0.s) -Chars 22812 - 22824 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 22825 - 22841 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 22848 - 22853 [step.] 0. secs (0.u,0.s) -Chars 22854 - 22858 [(cbn).] 0. secs (0.u,0.s) -Chars 22859 - 22871 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 22876 - 22877 [+] 0. secs (0.u,0.s) -Chars 22879 - 22891 [unpriv_halt.] 0.003 secs (0.003u,0.s) -Chars 22892 - 22902 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 22909 - 22910 [*] 0. secs (0.u,0.s) -Chars 22911 - 22916 [step.] 0. secs (0.u,0.s) -Chars 22917 - 22921 [(cbn).] 0. secs (0.u,0.s) -Chars 22922 - 22934 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 22941 - 22942 [*] 0. secs (0.u,0.s) -Chars 22943 - 22952 [(apply~H1).] 0. secs (0.u,0.s) -Chars 22957 - 22958 [+] 0. secs (0.u,0.s) -Chars 22959 - 22971 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 22972 - 22984 [contra_size.] 0. secs (0.u,0.s) -Chars 22987 - 22988 [-] 0. secs (0.u,0.s) -Chars 22990 - 23088 [(inv~Ht3;~ddestruction;~subst;...] 0.117 secs (0.116u,0.s) -Chars 23093 - 23094 [+] 0. secs (0.u,0.s) -Chars 23095 - 23107 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23108 - 23124 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23131 - 23132 [*] 0. secs (0.u,0.s) -Chars 23133 - 23138 [step.] 0. secs (0.u,0.s) -Chars 23139 - 23143 [(cbn).] 0. secs (0.u,0.s) -Chars 23144 - 23156 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 23157 - 23169 [contra_size.] 0.002 secs (0.002u,0.s) -Chars 23176 - 23177 [*] 0. secs (0.u,0.s) -Chars 23178 - 23183 [step.] 0. secs (0.u,0.s) -Chars 23184 - 23189 [auto.] 0. secs (0.u,0.s) -Chars 23194 - 23195 [+] 0. secs (0.u,0.s) -Chars 23196 - 23206 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 23207 - 23236 [(apply~CIH;~auto;~try~apply~H).] 0. secs (0.u,0.s) -Chars 23243 - 23248 [step.] 0. secs (0.u,0.s) -Chars 23249 - 23254 [auto.] 0. secs (0.u,0.s) -Chars 23259 - 23260 [+] 0. secs (0.u,0.s) -Chars 23261 - 23273 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23274 - 23290 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23297 - 23298 [*] 0. secs (0.u,0.s) -Chars 23299 - 23304 [step.] 0. secs (0.u,0.s) -Chars 23305 - 23309 [(cbn).] 0. secs (0.u,0.s) -Chars 23310 - 23322 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23323 - 23335 [contra_size.] 0. secs (0.u,0.s) -Chars 23342 - 23343 [*] 0. secs (0.u,0.s) -Chars 23344 - 23349 [step.] 0. secs (0.u,0.s) -Chars 23350 - 23367 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) -Chars 23368 - 23377 [(apply~H2).] 0. secs (0.u,0.s) -Chars 23382 - 23383 [+] 0. secs (0.u,0.s) -Chars 23384 - 23394 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 23395 - 23405 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 23406 - 23414 [(apply~H).] 0. secs (0.u,0.s) -Chars 23415 - 23432 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) -Chars 23439 - 23444 [step.] 0. secs (0.u,0.s) -Chars 23445 - 23454 [(apply~H2).] 0. secs (0.u,0.s) -Chars 23459 - 23460 [+] 0. secs (0.u,0.s) -Chars 23462 - 23474 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23475 - 23491 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23492 - 23497 [step.] 0. secs (0.u,0.s) -Chars 23504 - 23508 [(cbn).] 0. secs (0.u,0.s) -Chars 23509 - 23521 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 23522 - 23534 [contra_size.] 0. secs (0.u,0.s) -Chars 23539 - 23540 [+] 0. secs (0.u,0.s) -Chars 23542 - 23552 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 23553 - 23569 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23570 - 23578 [(apply~H).] 0. secs (0.u,0.s) -Chars 23583 - 23584 [+] 0. secs (0.u,0.s) -Chars 23585 - 23597 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23598 - 23622 [(apply~CIH;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 23629 - 23634 [step.] 0. secs (0.u,0.s) -Chars 23635 - 23639 [(cbn).] 0. secs (0.u,0.s) -Chars 23640 - 23652 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23653 - 23665 [contra_size.] 0. secs (0.u,0.s) -Chars 23670 - 23671 [+] 0. secs (0.u,0.s) -Chars 23673 - 23700 [(destruct~(classic_empty~B)).] 0. secs (0.u,0.s) -Chars 23707 - 23708 [*] 0. secs (0.u,0.s) -Chars 23709 - 23721 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23722 - 23738 [(apply~CIH;~auto).] 0.003 secs (0.003u,0.s) -Chars 23739 - 23747 [(apply~H).] 0. secs (0.u,0.s) -Chars 23756 - 23761 [step.] 0. secs (0.u,0.s) -Chars 23762 - 23766 [(cbn).] 0. secs (0.u,0.s) -Chars 23767 - 23779 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 23786 - 23787 [*] 0. secs (0.u,0.s) -Chars 23788 - 23798 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 23799 - 23816 [(apply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 23817 - 23825 [(apply~H).] 0. secs (0.u,0.s) -Chars 23826 - 23835 [(apply~H1).] 0. secs (0.u,0.s) -Chars 23840 - 23841 [+] 0. secs (0.u,0.s) -Chars 23843 - 23855 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23856 - 23868 [contra_size.] 0. secs (0.u,0.s) -Chars 23873 - 23874 [+] 0. secs (0.u,0.s) -Chars 23876 - 23888 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23889 - 23905 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 23906 - 23914 [(apply~H).] 0. secs (0.u,0.s) -Chars 23921 - 23926 [step.] 0. secs (0.u,0.s) -Chars 23927 - 23931 [(cbn).] 0. secs (0.u,0.s) -Chars 23932 - 23944 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 23945 - 23957 [contra_size.] 0. secs (0.u,0.s) -Chars 23958 - 23962 [Qed.] 0.138 secs (0.136u,0.001s) -Chars 23964 - 24336 [Lemma~secret_halt_trans_2~:~~~...] 0.002 secs (0.002u,0.s) -Chars 24337 - 24343 [Proof.] 0. secs (0.u,0.s) -Chars 24346 - 24409 [(intros~E~Label~priv~l~b1~b2~R...] 0. secs (0.u,0.s) -Chars 24412 - 24436 [generalize~dependent~t3.] 0. secs (0.u,0.s) -Chars 24437 - 24461 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 24464 - 24483 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 24484 - 24506 [(intros~t2~t3~Ht2~Ht23).] 0. secs (0.u,0.s) -Chars 24509 - 24521 [step~in~Ht2.] 0. secs (0.u,0.s) -Chars 24522 - 24535 [step~in~Ht23.] 0. secs (0.u,0.s) -Chars 24536 - 24545 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 24548 - 24599 [(hinduction~Ht23~before~c;~int...] 0.675 secs (0.668u,0.005s) -Chars 24602 - 24603 [-] 0. secs (0.u,0.s) -Chars 24604 - 24612 [(inv~Ht2).] 0.018 secs (0.017u,0.s) -Chars 24613 - 24633 [(ddestruction;~subst).] 0.003 secs (0.003u,0.s) -Chars 24634 - 24646 [contra_size.] 0.004 secs (0.003u,0.s) -Chars 24649 - 24650 [-] 0. secs (0.u,0.s) -Chars 24651 - 24663 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 24664 - 24682 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 24687 - 24761 [(inv~Ht2;~ddestruction;~subst;...] 0.056 secs (0.055u,0.001s) -Chars 24766 - 24771 [step.] 0. secs (0.u,0.s) -Chars 24772 - 24777 [auto.] 0. secs (0.u,0.s) -Chars 24780 - 24781 [-] 0. secs (0.u,0.s) -Chars 24782 - 24803 [(eapply~IHHt23;~eauto).] 0. secs (0.u,0.s) -Chars 24808 - 24881 [(inv~Ht2;~ddestruction;~subst;...] 0.118 secs (0.116u,0.002s) -Chars 24886 - 24897 [step~in~H0.] 0. secs (0.u,0.s) -Chars 24898 - 24903 [auto.] 0. secs (0.u,0.s) -Chars 24906 - 24907 [-] 0. secs (0.u,0.s) -Chars 24912 - 24985 [(inv~Ht2;~ddestruction;~subst;...] 0.082 secs (0.081u,0.001s) -Chars 24988 - 24989 [-] 0. secs (0.u,0.s) -Chars 24990 - 25002 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 25005 - 25019 [(inv~SIZECHECK).] 0.024 secs (0.023u,0.s) -Chars 25020 - 25044 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) -Chars 25049 - 25058 [Unshelve.] 0. secs (0.u,0.s) -Chars 25059 - 25070 [all:~auto.] 0. secs (0.u,0.s) -Chars 25075 - 25148 [(inv~Ht2;~ddestruction;~subst;...] 0.072 secs (0.071u,0.s) -Chars 25153 - 25154 [+] 0. secs (0.u,0.s) -Chars 25155 - 25160 [step.] 0. secs (0.u,0.s) -Chars 25161 - 25170 [(apply~H2).] 0. secs (0.u,0.s) -Chars 25175 - 25176 [+] 0. secs (0.u,0.s) -Chars 25177 - 25186 [(apply~H1).] 0. secs (0.u,0.s) -Chars 25189 - 25190 [-] 0. secs (0.u,0.s) -Chars 25192 - 25204 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25205 - 25229 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) -Chars 25234 - 25307 [(inv~Ht2;~ddestruction;~subst;...] 0.056 secs (0.056u,0.s) -Chars 25312 - 25317 [step.] 0. secs (0.u,0.s) -Chars 25318 - 25323 [auto.] 0. secs (0.u,0.s) -Chars 25326 - 25327 [-] 0. secs (0.u,0.s) -Chars 25329 - 25341 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25342 - 25357 [(inv~SIZECHECK1).] 0.024 secs (0.023u,0.s) -Chars 25358 - 25373 [(inv~SIZECHECK2).] 0.022 secs (0.022u,0.s) -Chars 25374 - 25398 [(eapply~CIH;~try~apply~H).] 0. secs (0.u,0.s) -Chars 25403 - 25412 [Unshelve.] 0. secs (0.u,0.s) -Chars 25413 - 25424 [all:~auto.] 0. secs (0.u,0.s) -Chars 25429 - 25502 [(inv~Ht2;~ddestruction;~subst;...] 0.073 secs (0.071u,0.001s) -Chars 25507 - 25508 [+] 0. secs (0.u,0.s) -Chars 25509 - 25514 [step.] 0. secs (0.u,0.s) -Chars 25515 - 25524 [(apply~H2).] 0. secs (0.u,0.s) -Chars 25529 - 25530 [+] 0. secs (0.u,0.s) -Chars 25531 - 25540 [(apply~H1).] 0. secs (0.u,0.s) -Chars 25543 - 25544 [-] 0. secs (0.u,0.s) -Chars 25545 - 25559 [(inv~SIZECHECK).] 0.028 secs (0.027u,0.s) -Chars 25561 - 25578 [(eapply~H0;~eauto).] 0. secs (0.u,0.s) -Chars 25579 - 25588 [Unshelve.] 0. secs (0.u,0.s) -Chars 25589 - 25600 [all:~auto.] 0. secs (0.u,0.s) -Chars 25605 - 25678 [(inv~Ht2;~ddestruction;~subst;...] 0.096 secs (0.094u,0.001s) -Chars 25683 - 25707 [(rewrite~itree_eta'~~at~1).] 0.023 secs (0.023u,0.s) -Chars 25708 - 25719 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 25722 - 25723 [-] 0. secs (0.u,0.s) -Chars 25724 - 25736 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 25737 - 25755 [(eapply~CIH;~eauto).] 0.001 secs (0.001u,0.s) -Chars 25756 - 25761 [step.] 0. secs (0.u,0.s) -Chars 25762 - 25772 [(apply~Ht2).] 0. secs (0.u,0.s) -Chars 25777 - 25782 [step.] 0. secs (0.u,0.s) -Chars 25783 - 25791 [(apply~H).] 0. secs (0.u,0.s) -Chars 25794 - 25795 [-] 0. secs (0.u,0.s) -Chars 25797 - 25809 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 25810 - 25828 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 25829 - 25834 [step.] 0. secs (0.u,0.s) -Chars 25835 - 25840 [auto.] 0. secs (0.u,0.s) -Chars 25843 - 25844 [-] 0. secs (0.u,0.s) -Chars 25845 - 25857 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 25858 - 25870 [contra_size.] 0. secs (0.u,0.s) -Chars 25873 - 25874 [-] 0. secs (0.u,0.s) -Chars 25875 - 25887 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25888 - 25929 [(eapply~CIH~with~(t2~:=~Vis~e1...] 0. secs (0.u,0.s) -Chars 25934 - 25935 [+] 0. secs (0.u,0.s) -Chars 25936 - 25941 [step.] 0. secs (0.u,0.s) -Chars 25942 - 25947 [auto.] 0. secs (0.u,0.s) -Chars 25952 - 25953 [+] 0. secs (0.u,0.s) -Chars 25954 - 25962 [(apply~H).] 0. secs (0.u,0.s) -Chars 25965 - 25966 [-] 0. secs (0.u,0.s) -Chars 25967 - 25979 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25980 - 25992 [contra_size.] 0. secs (0.u,0.s) -Chars 25993 - 25997 [Qed.] 0.192 secs (0.189u,0.002s) -Chars 25999 - 26284 [Lemma~eqit_secure_RR_imp~:~~~f...] 0. secs (0.u,0.s) -Chars 26285 - 26291 [Proof.] 0. secs (0.u,0.s) -Chars 26294 - 26301 [(intros).] 0. secs (0.u,0.s) -Chars 26302 - 26326 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 26327 - 26337 [revert~t1.] 0. secs (0.u,0.s) -Chars 26340 - 26359 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 26360 - 26378 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) -Chars 26381 - 26394 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 26395 - 26404 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 26407 - 26571 [(hinduction~Ht12~before~c;~int...] 0.052 secs (0.052u,0.s) -Chars 26575 - 26593 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 26594 - 26601 [(intros).] 0. secs (0.u,0.s) -Chars 26602 - 26620 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 26621 - 26630 [(apply~H0).] 0. secs (0.u,0.s) -Chars 26633 - 26634 [-] 0. secs (0.u,0.s) -Chars 26636 - 26648 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26649 - 26667 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 26668 - 26677 [(apply~H0).] 0. secs (0.u,0.s) -Chars 26680 - 26681 [-] 0. secs (0.u,0.s) -Chars 26683 - 26695 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26696 - 26714 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 26715 - 26724 [(apply~H0).] 0. secs (0.u,0.s) -Chars 26725 - 26729 [Qed.] 0.005 secs (0.005u,0.s) -Chars 26731 - 27104 [Lemma~secret_halt_trans_3~:~~~...] 0.001 secs (0.001u,0.s) -Chars 27105 - 27111 [Proof.] 0. secs (0.u,0.s) -Chars 27114 - 27121 [(intros).] 0. secs (0.u,0.s) -Chars 27122 - 27150 [(apply~eqit_secure_sym~in~H1).] 0. secs (0.u,0.s) -Chars 27151 - 27179 [(apply~eqit_secure_sym~in~H2).] 0. secs (0.u,0.s) -Chars 27182 - 27204 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 27205 - 27245 [(eapply~secret_halt_trans_2~in...] 0. secs (0.u,0.s) -Chars 27248 - 27281 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) -Chars 27284 - 27291 [(intros).] 0. secs (0.u,0.s) -Chars 27292 - 27299 [(inv~H3).] 0.001 secs (0.001u,0.s) -Chars 27300 - 27320 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 27321 - 27325 [Qed.] 0.001 secs (0.001u,0.s) -Chars 27327 - 27672 [Lemma~eqit_secure_trans~:~~~fo...] 0. secs (0.u,0.s) -Chars 27673 - 27679 [Proof.] 0. secs (0.u,0.s) -Chars 27682 - 27727 [(intros~E~Label~priv~l~b1~b2~R...] 0. secs (0.u,0.s) -Chars 27730 - 27750 [icoinduction~c~CIH0.] 0.001 secs (0.001u,0.s) -Chars 27751 - 27777 [(intros~t1~t2~t3~Ht12~Ht23).] 0. secs (0.u,0.s) -Chars 27780 - 27793 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 27794 - 27807 [step~in~Ht23.] 0. secs (0.u,0.s) -Chars 27811 - 27861 [(hinduction~Ht12~before~E;~int...] 0.017 secs (0.017u,0.s) -Chars 27864 - 27865 [-] 0. secs (0.u,0.s) -Chars 27866 - 27890 [(remember~(RetF~r2)~as~x).] 0.001 secs (0.001u,0.s) -Chars 27895 - 27956 [(hinduction~Ht23~before~E;~int...] 0.031 secs (0.031u,0.s) -Chars 27961 - 27985 [(rewrite~itree_eta'~~at~1).] 0.021 secs (0.021u,0.s) -Chars 27986 - 27997 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 27998 - 28015 [(eapply~H0;~eauto).] 0.001 secs (0.u,0.s) -Chars 28018 - 28019 [-] 0. secs (0.u,0.s) -Chars 28021 - 28035 [(genobs~t4~ot4).] 0. secs (0.u,0.s) -Chars 28040 - 28109 [(assert~((exists~t5,~ot4~=~Tau...] 0. secs (0.u,0.s) -Chars 28114 - 28115 [{] 0. secs (0.u,0.s) -Chars 28116 - 28165 [(destruct~ot4;~eauto;~right;~i...] 0.007 secs (0.007u,0.s) -Chars 28166 - 28167 [}] 0. secs (0.u,0.s) -Chars 28172 - 28205 [(destruct~H0~as~[[t5~Ht4]|~Ht4]).] 0. secs (0.u,0.s) -Chars 28210 - 28211 [+] 0. secs (0.u,0.s) -Chars 28212 - 28218 [subst.] 0. secs (0.u,0.s) -Chars 28219 - 28231 [(rewrite~Ht4).] 0. secs (0.u,0.s) -Chars 28232 - 28252 [(rewrite~Ht4~in~Ht23).] 0. secs (0.u,0.s) -Chars 28253 - 28265 [constructor.] 0. secs (0.u,0.s) -Chars 28272 - 28291 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 28292 - 28317 [(eapply~eqit_secure_TauLR).] 0. secs (0.u,0.s) -Chars 28318 - 28323 [step.] 0. secs (0.u,0.s) -Chars 28330 - 28335 [auto.] 0. secs (0.u,0.s) -Chars 28340 - 28341 [+] 0. secs (0.u,0.s) -Chars 28342 - 28398 [(destruct~ot4;~try~(exfalso;~e...] 0.001 secs (0.001u,0.s) -Chars 28405 - 28406 [*] 0. secs (0.u,0.s) -Chars 28407 - 28416 [(inv~Ht23).] 0.023 secs (0.023u,0.s) -Chars 28417 - 28427 [(inv~CHECK).] 0.016 secs (0.016u,0.s) -Chars 28428 - 28452 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) -Chars 28461 - 28541 [(assert~~~(eqit_secure~Label~p...] 0. secs (0.u,0.s) -Chars 28550 - 28551 [{] 0. secs (0.u,0.s) -Chars 28552 - 28557 [step.] 0. secs (0.u,0.s) -Chars 28558 - 28562 [(cbn).] 0. secs (0.u,0.s) -Chars 28563 - 28587 [(rewrite~itree_eta'~~at~1).] 0.019 secs (0.019u,0.s) -Chars 28588 - 28625 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) -Chars 28636 - 28641 [step.] 0. secs (0.u,0.s) -Chars 28642 - 28660 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 28661 - 28672 [now~unstep.] 0. secs (0.u,0.s) -Chars 28673 - 28674 [}] 0. secs (0.u,0.s) -Chars 28683 - 28702 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 28712 - 28721 [now~step.] 0.001 secs (0.001u,0.s) -Chars 28729 - 28730 [*] 0. secs (0.u,0.s) -Chars 28731 - 28771 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) -Chars 28780 - 28782 [--] 0. secs (0.u,0.s) -Chars 28783 - 28832 [(inv~Ht23;~ddestruction;~subst...] 0.062 secs (0.061u,0.s) -Chars 28844 - 28862 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 28863 - 28873 [(inv~CHECK).] 0.023 secs (0.023u,0.s) -Chars 28935 - 28972 [(eapply~eqit_secure_trans_aux2...] 0. secs (0.u,0.s) -Chars 28981 - 28983 [--] 0. secs (0.u,0.s) -Chars 28984 - 29011 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) -Chars 29023 - 29025 [++] 0. secs (0.u,0.s) -Chars 29026 - 29045 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 29046 - 29070 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) -Chars 29085 - 29090 [step.] 0.001 secs (0.001u,0.s) -Chars 29106 - 29160 [(eapply~secret_halt_trans_3~wi...] 0.001 secs (0.001u,0.s) -Chars 29175 - 29177 [**] 0. secs (0.u,0.s) -Chars 29178 - 29200 [now~step;~constructor.] 0. secs (0.u,0.s) -Chars 29215 - 29217 [**] 0. secs (0.u,0.s) -Chars 29218 - 29227 [now~step.] 0. secs (0.u,0.s) -Chars 29239 - 29241 [++] 0. secs (0.u,0.s) -Chars 29242 - 29252 [unpriv_co.] 0. secs (0.u,0.s) -Chars 29253 - 29272 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 29287 - 29350 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) -Chars 29365 - 29370 [step.] 0. secs (0.u,0.s) -Chars 29371 - 29376 [auto.] 0. secs (0.u,0.s) -Chars 29377 - 29412 [(eapply~eqit_secure_TauLVisR;~...] 0. secs (0.u,0.s) -Chars 29415 - 29416 [-] 0. secs (0.u,0.s) -Chars 29417 - 29436 [(apply~IHHt12;~auto).] 0. secs (0.u,0.s) -Chars 29441 - 29465 [(remember~(TauF~t0)~as~y).] 0.001 secs (0.001u,0.s) -Chars 29470 - 29531 [(hinduction~Ht23~before~E;~int...] 0.439 secs (0.43u,0.009s) -Chars 29536 - 29537 [+] 0. secs (0.u,0.s) -Chars 29539 - 29557 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 29558 - 29569 [now~unstep.] 0. secs (0.u,0.s) -Chars 29575 - 29576 [+] 0. secs (0.u,0.s) -Chars 29578 - 29589 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 29590 - 29601 [now~unstep.] 0. secs (0.u,0.s) -Chars 29607 - 29608 [+] 0. secs (0.u,0.s) -Chars 29610 - 29624 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 29627 - 29628 [-] 0. secs (0.u,0.s) -Chars 29630 - 29656 [(remember~(VisF~e~k2)~as~x).] 0.001 secs (0.001u,0.s) -Chars 29661 - 29766 [(hinduction~Ht23~before~E;~int...] 0.131 secs (0.127u,0.003s) -Chars 29771 - 29772 [+] 0. secs (0.u,0.s) -Chars 29774 - 29792 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 29793 - 29800 [(intros).] 0. secs (0.u,0.s) -Chars 29801 - 29834 [(eapply~CIH0;~eauto;~try~apply...] 0.001 secs (0.001u,0.s) -Chars 29841 - 29849 [(apply~H).] 0. secs (0.u,0.s) -Chars 29854 - 29855 [+] 0. secs (0.u,0.s) -Chars 29856 - 29880 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.022u,0.s) -Chars 29881 - 29892 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 29893 - 29910 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 29913 - 29914 [-] 0. secs (0.u,0.s) -Chars 29916 - 29940 [(remember~(TauF~t0)~as~x).] 0.001 secs (0.001u,0.s) -Chars 29945 - 29994 [(hinduction~Ht23~before~E;~int...] 0.065 secs (0.064u,0.001s) -Chars 29999 - 30000 [+] 0. secs (0.u,0.s) -Chars 30002 - 30012 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 30013 - 30039 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 30046 - 30051 [auto.] 0. secs (0.u,0.s) -Chars 30056 - 30057 [+] 0. secs (0.u,0.s) -Chars 30058 - 30071 [(destruct~ot2).] 0.001 secs (0.001u,0.s) -Chars 30078 - 30079 [*] 0. secs (0.u,0.s) -Chars 30080 - 30093 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 30094 - 30113 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 30114 - 30125 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 30134 - 30155 [(remember~(k1~a)~as~t).] 0. secs (0.u,0.s) -Chars 30156 - 30173 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 30174 - 30202 [setoid_rewrite~~<-~Heqt~in~H.] 0.015 secs (0.015u,0.s) -Chars 30211 - 30227 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) -Chars 30228 - 30232 [(cbn).] 0. secs (0.u,0.s) -Chars 30233 - 30243 [(inv~CHECK).] 0.015 secs (0.015u,0.s) -Chars 30244 - 30281 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) -Chars 30288 - 30289 [*] 0. secs (0.u,0.s) -Chars 30290 - 30300 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 30301 - 30326 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) -Chars 30335 - 30348 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 30349 - 30372 [(remember~(TauF~t)~as~y).] 0.001 secs (0.001u,0.s) -Chars 30381 - 30386 [step.] 0. secs (0.u,0.s) -Chars 30395 - 30456 [(hinduction~Ht23~before~E;~int...] 0.339 secs (0.33u,0.008s) -Chars 30465 - 30467 [--] 0. secs (0.u,0.s) -Chars 30469 - 30487 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 30488 - 30499 [now~unstep.] 0. secs (0.u,0.s) -Chars 30509 - 30511 [--] 0. secs (0.u,0.s) -Chars 30513 - 30524 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 30525 - 30536 [now~unstep.] 0. secs (0.u,0.s) -Chars 30546 - 30548 [--] 0. secs (0.u,0.s) -Chars 30549 - 30563 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 30570 - 30571 [*] 0. secs (0.u,0.s) -Chars 30572 - 30613 [(destruct~(classic~(leq~(priv~...] 0.001 secs (0.001u,0.s) -Chars 30622 - 30624 [--] 0. secs (0.u,0.s) -Chars 30625 - 30644 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 30645 - 30656 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 30657 - 30661 [(cbn).] 0. secs (0.u,0.s) -Chars 30673 - 30686 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 30687 - 30708 [(remember~(k1~a)~as~t).] 0. secs (0.u,0.s) -Chars 30709 - 30726 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 30727 - 30755 [setoid_rewrite~~<-~Heqt~in~H.] 0.016 secs (0.016u,0.s) -Chars 30767 - 30783 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) -Chars 30784 - 30794 [(inv~CHECK).] 0.023 secs (0.023u,0.s) -Chars 30795 - 30832 [(eapply~eqit_secure_trans_aux2...] 0. secs (0.u,0.s) -Chars 30841 - 30843 [--] 0. secs (0.u,0.s) -Chars 30844 - 30871 [(destruct~(classic_empty~X)).] 0.001 secs (0.001u,0.s) -Chars 30883 - 30885 [++] 0. secs (0.u,0.s) -Chars 30886 - 30905 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 30906 - 30917 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 30918 - 30923 [step.] 0.001 secs (0.001u,0.s) -Chars 30939 - 30973 [(eapply~secret_halt_trans_3;~e...] 0.001 secs (0.001u,0.s) -Chars 30974 - 30982 [(apply~H).] 0. secs (0.u,0.s) -Chars 30997 - 31006 [now~step.] 0. secs (0.u,0.s) -Chars 31019 - 31021 [++] 0. secs (0.u,0.s) -Chars 31022 - 31032 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 31033 - 31045 [(eapply~CIH0).] 0. secs (0.u,0.s) -Chars 31046 - 31054 [(apply~H).] 0. secs (0.u,0.s) -Chars 31069 - 31082 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 31083 - 31088 [step.] 0. secs (0.u,0.s) -Chars 31089 - 31115 [(remember~(VisF~e0~k)~as~y).] 0.001 secs (0.001u,0.s) -Chars 31130 - 31264 [(hinduction~Ht23~before~E;~int...] 0.519 secs (0.507u,0.011s) -Chars 31279 - 31281 [**] 0. secs (0.u,0.s) -Chars 31283 - 31301 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 31302 - 31313 [now~unstep.] 0. secs (0.u,0.s) -Chars 31329 - 31331 [**] 0. secs (0.u,0.s) -Chars 31332 - 31343 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 31345 - 31356 [now~unstep.] 0. secs (0.u,0.s) -Chars 31372 - 31374 [**] 0. secs (0.u,0.s) -Chars 31376 - 31400 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.019u,0.s) -Chars 31401 - 31412 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 31418 - 31419 [+] 0. secs (0.u,0.s) -Chars 31420 - 31438 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 31439 - 31460 [(eapply~IHHt23;~eauto).] 0.001 secs (0.001u,0.s) -Chars 31465 - 31466 [+] 0. secs (0.u,0.s) -Chars 31468 - 31478 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 31479 - 31505 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 31506 - 31514 [(apply~H).] 0. secs (0.u,0.s) -Chars 31519 - 31520 [+] 0. secs (0.u,0.s) -Chars 31521 - 31545 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.021u,0.s) -Chars 31546 - 31557 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 31558 - 31575 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 31580 - 31581 [+] 0. secs (0.u,0.s) -Chars 31582 - 31594 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 31596 - 31615 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 31616 - 31625 [(apply~H0).] 0. secs (0.u,0.s) -Chars 31628 - 31629 [-] 0. secs (0.u,0.s) -Chars 31635 - 31655 [(genobs_clear~t3~ot3).] 0. secs (0.u,0.s) -Chars 31660 - 31693 [(assert~(Hne~:~nonempty~A);~ea...] 0. secs (0.u,0.s) -Chars 31694 - 31702 [(inv~Hne).] 0.019 secs (0.018u,0.s) -Chars 31707 - 31776 [(assert~((exists~t4,~ot3~=~Tau...] 0. secs (0.u,0.s) -Chars 31781 - 31782 [{] 0. secs (0.u,0.s) -Chars 31783 - 31832 [(destruct~ot3;~eauto;~right;~i...] 0.017 secs (0.016u,0.s) -Chars 31833 - 31834 [}] 0. secs (0.u,0.s) -Chars 31839 - 31872 [(destruct~H0~as~[[t4~Ht3]|~Ht3]).] 0. secs (0.u,0.s) -Chars 31877 - 31878 [+] 0. secs (0.u,0.s) -Chars 31879 - 31885 [subst.] 0. secs (0.u,0.s) -Chars 31886 - 31898 [constructor.] 0. secs (0.u,0.s) -Chars 31899 - 31924 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) -Chars 31931 - 31940 [Unshelve.] 0. secs (0.u,0.s) -Chars 31941 - 31951 [all:~auto.] 0. secs (0.u,0.s) -Chars 31958 - 31993 [(eapply~eqit_secure_TauRVisL;~...] 0. secs (0.u,0.s) -Chars 31994 - 31999 [step.] 0. secs (0.u,0.s) -Chars 32000 - 32005 [auto.] 0. secs (0.u,0.s) -Chars 32071 - 32072 [+] 0. secs (0.u,0.s) -Chars 32079 - 32135 [(destruct~ot3;~try~(exfalso;~e...] 0. secs (0.u,0.s) -Chars 32142 - 32143 [*] 0. secs (0.u,0.s) -Chars 32144 - 32164 [(inv~Ht23;~inv~CHECK).] 0.025 secs (0.025u,0.s) -Chars 32165 - 32178 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 32179 - 32190 [clear~CIH0.] 0. secs (0.u,0.s) -Chars 32199 - 32217 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 32218 - 32229 [(rewrite~H4).] 0. secs (0.u,0.s) -Chars 32230 - 32273 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) -Chars 32282 - 32296 [(rewrite~<-~H4).] 0. secs (0.u,0.s) -Chars 32297 - 32306 [(apply~H1).] 0. secs (0.u,0.s) -Chars 32307 - 32316 [Unshelve.] 0. secs (0.u,0.s) -Chars 32317 - 32322 [auto.] 0. secs (0.u,0.s) -Chars 32347 - 32348 [*] 0. secs (0.u,0.s) -Chars 32349 - 32361 [constructor.] 0. secs (0.u,0.s) -Chars 32362 - 32387 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) -Chars 32396 - 32431 [(eapply~eqit_secure_TauRVisL;~...] 0. secs (0.u,0.s) -Chars 32432 - 32437 [step.] 0. secs (0.u,0.s) -Chars 32438 - 32443 [auto.] 0. secs (0.u,0.s) -Chars 32488 - 32489 [*] 0. secs (0.u,0.s) -Chars 32490 - 32531 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) -Chars 32540 - 32542 [--] 0. secs (0.u,0.s) -Chars 32543 - 32592 [(inv~Ht23;~ddestruction;~subst...] 0.083 secs (0.081u,0.002s) -Chars 32604 - 32622 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 32623 - 32634 [(rewrite~H5).] 0. secs (0.u,0.s) -Chars 32635 - 32645 [(inv~CHECK).] 0.005 secs (0.005u,0.s) -Chars 32658 - 32716 [(eapply~eqit_secure_trans_aux2...] 0.001 secs (0.001u,0.s) -Chars 32728 - 32742 [(rewrite~<-~H5).] 0. secs (0.u,0.s) -Chars 32743 - 32752 [(apply~H2).] 0. secs (0.u,0.s) -Chars 32753 - 32762 [Unshelve.] 0. secs (0.u,0.s) -Chars 32763 - 32774 [all:~auto.] 0. secs (0.u,0.s) -Chars 32783 - 32785 [--] 0. secs (0.u,0.s) -Chars 32786 - 32813 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) -Chars 32825 - 32827 [++] 0. secs (0.u,0.s) -Chars 32828 - 32847 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 32848 - 32872 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.021u,0.s) -Chars 32873 - 32878 [step.] 0.001 secs (0.001u,0.s) -Chars 32894 - 32950 [(eapply~secret_halt_trans_3~wi...] 0.001 secs (0.001u,0.s) -Chars 32965 - 32967 [**] 0. secs (0.u,0.s) -Chars 32968 - 32973 [step.] 0. secs (0.u,0.s) -Chars 32974 - 32978 [(cbn).] 0. secs (0.u,0.s) -Chars 32979 - 32989 [unpriv_co.] 0. secs (0.u,0.s) -Chars 33004 - 33006 [**] 0. secs (0.u,0.s) -Chars 33007 - 33016 [now~step.] 0. secs (0.u,0.s) -Chars 33029 - 33031 [++] 0. secs (0.u,0.s) -Chars 33032 - 33042 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 33043 - 33068 [(eapply~CIH0;~try~apply~H).] 0. secs (0.u,0.s) -Chars 33083 - 33092 [Unshelve.] 0. secs (0.u,0.s) -Chars 33093 - 33104 [all:~auto.] 0. secs (0.u,0.s) -Chars 33119 - 33186 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) -Chars 33201 - 33206 [step.] 0. secs (0.u,0.s) -Chars 33207 - 33212 [auto.] 0. secs (0.u,0.s) -Chars 33213 - 33245 [(eapply~eqit_secure_VisLR;~eau...] 0.001 secs (0.001u,0.s) -Chars 33248 - 33249 [-] 0. secs (0.u,0.s) -Chars 33251 - 33278 [(remember~(VisF~e2~k2)~as~x).] 0.001 secs (0.001u,0.s) -Chars 33362 - 33476 [(hinduction~Ht23~before~E;~int...] 0.134 secs (0.132u,0.001s) -Chars 33481 - 33482 [+] 0. secs (0.u,0.s) -Chars 33483 - 33501 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 33502 - 33523 [(eapply~IHHt23;~eauto).] 0.002 secs (0.002u,0.s) -Chars 33528 - 33529 [+] 0. secs (0.u,0.s) -Chars 33531 - 33541 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 33542 - 33568 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 33569 - 33577 [(apply~H).] 0. secs (0.u,0.s) -Chars 33582 - 33583 [+] 0. secs (0.u,0.s) -Chars 33585 - 33618 [(assert~(Hne~:~nonempty~B);~ea...] 0. secs (0.u,0.s) -Chars 33619 - 33627 [(inv~Hne).] 0.004 secs (0.004u,0.s) -Chars 33634 - 33644 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 33645 - 33679 [(eapply~CIH0;~eauto;~try~eappl...] 0.001 secs (0.001u,0.s) -Chars 33680 - 33688 [(apply~H).] 0. secs (0.u,0.s) -Chars 33695 - 33704 [Unshelve.] 0. secs (0.u,0.s) -Chars 33705 - 33710 [auto.] 0. secs (0.u,0.s) -Chars 33715 - 33716 [+] 0. secs (0.u,0.s) -Chars 33718 - 33752 [(assert~(Hne~:~nonempty~B0);~e...] 0. secs (0.u,0.s) -Chars 33753 - 33761 [(inv~Hne).] 0.004 secs (0.004u,0.s) -Chars 33768 - 33778 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 33779 - 33805 [(eapply~CIH0;~try~apply~H0).] 0. secs (0.u,0.s) -Chars 33806 - 33814 [(apply~H).] 0. secs (0.u,0.s) -Chars 33821 - 33830 [Unshelve.] 0. secs (0.u,0.s) -Chars 33831 - 33836 [auto.] 0. secs (0.u,0.s) -Chars 33841 - 33842 [+] 0. secs (0.u,0.s) -Chars 33843 - 33857 [(genobs~t2~ot2).] 0.001 secs (0.001u,0.s) -Chars 33858 - 33871 [(destruct~ot2).] 0.001 secs (0.001u,0.s) -Chars 33878 - 33879 [*] 0. secs (0.u,0.s) -Chars 33880 - 33913 [(assert~(Hne~:~nonempty~B);~ea...] 0.851 secs (0.831u,0.018s) -Chars 33914 - 33922 [(inv~Hne).] 0.005 secs (0.005u,0.s) -Chars 33931 - 33950 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 33951 - 33962 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 33963 - 33973 [(inv~CHECK).] 0.007 secs (0.006u,0.s) -Chars 33983 - 34034 [(eapply~eqit_secure_trans_aux1...] 0. secs (0.u,0.s) -Chars 34043 - 34052 [Unshelve.] 0. secs (0.u,0.s) -Chars 34053 - 34058 [auto.] 0. secs (0.u,0.s) -Chars 34065 - 34066 [*] 0. secs (0.u,0.s) -Chars 34067 - 34100 [(assert~(Hne~:~nonempty~B);~ea...] 0.841 secs (0.828u,0.012s) -Chars 34101 - 34109 [(inv~Hne).] 0.005 secs (0.005u,0.s) -Chars 34118 - 34128 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 34129 - 34155 [(eapply~CIH0;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 34156 - 34165 [Unshelve.] 0. secs (0.u,0.s) -Chars 34166 - 34177 [all:~auto.] 0. secs (0.u,0.s) -Chars 34186 - 34195 [clear~H0.] 0. secs (0.u,0.s) -Chars 34196 - 34213 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 34214 - 34219 [step.] 0. secs (0.u,0.s) -Chars 34220 - 34238 [(genobs~(k2~a)~ok2).] 0. secs (0.u,0.s) -Chars 34247 - 34266 [clear~Heqok2~H1~k2.] 0. secs (0.u,0.s) -Chars 34275 - 34298 [(remember~(TauF~t)~as~y).] 0.001 secs (0.001u,0.s) -Chars 34307 - 34353 [(hinduction~H~before~E;~intros...] 0.047 secs (0.047u,0.s) -Chars 34362 - 34364 [--] 0. secs (0.u,0.s) -Chars 34365 - 34383 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 34385 - 34396 [now~unstep.] 0. secs (0.u,0.s) -Chars 34406 - 34408 [--] 0. secs (0.u,0.s) -Chars 34409 - 34428 [(constructor;~eauto).] 1.497 secs (1.489u,0.007s) -Chars 34437 - 34439 [--] 0. secs (0.u,0.s) -Chars 34441 - 34452 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 34453 - 34464 [now~unstep.] 0. secs (0.u,0.s) -Chars 34474 - 34476 [--] 0. secs (0.u,0.s) -Chars 34477 - 34488 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 34489 - 34518 [(eapply~H0~with~(c~:=~c);~eauto).] 0.005 secs (0.005u,0.s) -Chars 34528 - 34530 [--] 0. secs (0.u,0.s) -Chars 34532 - 34556 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.019u,0.s) -Chars 34557 - 34568 [now~unstep.] 0. secs (0.u,0.s) -Chars 34576 - 34577 [*] 0. secs (0.u,0.s) -Chars 34578 - 34593 [(inv~SIZECHECK2).] 0.005 secs (0.005u,0.s) -Chars 34602 - 34642 [(destruct~(classic~(leq~(priv~...] 0.001 secs (0.001u,0.s) -Chars 34651 - 34653 [--] 0. secs (0.u,0.s) -Chars 34654 - 34673 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 34674 - 34685 [unpriv_ind.] 0.003 secs (0.003u,0.s) -Chars 34686 - 34696 [(inv~CHECK).] 0.006 secs (0.006u,0.s) -Chars 34709 - 34760 [(eapply~eqit_secure_trans_aux2...] 0.001 secs (0.001u,0.s) -Chars 34761 - 34770 [Unshelve.] 0. secs (0.u,0.s) -Chars 34771 - 34782 [all:~auto.] 0. secs (0.u,0.s) -Chars 34791 - 34793 [--] 0. secs (0.u,0.s) -Chars 34794 - 34821 [(destruct~(classic_empty~X)).] 0.001 secs (0.001u,0.s) -Chars 34833 - 34835 [++] 0. secs (0.u,0.s) -Chars 34836 - 34848 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 34849 - 34868 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 34869 - 34878 [(apply~H1).] 0. secs (0.u,0.s) -Chars 34893 - 34898 [step.] 0. secs (0.u,0.s) -Chars 34899 - 34907 [(apply~H).] 0. secs (0.u,0.s) -Chars 34908 - 34917 [Unshelve.] 0. secs (0.u,0.s) -Chars 34918 - 34923 [auto.] 0. secs (0.u,0.s) -Chars 34935 - 34937 [++] 0. secs (0.u,0.s) -Chars 34938 - 34948 [unpriv_co.] 0.004 secs (0.003u,0.s) -Chars 34949 - 34975 [(eapply~CIH0;~try~apply~H1).] 0. secs (0.u,0.s) -Chars 34990 - 34999 [Unshelve.] 0. secs (0.u,0.s) -Chars 35000 - 35011 [all:~auto.] 0. secs (0.u,0.s) -Chars 35026 - 35035 [clear~H0.] 0. secs (0.u,0.s) -Chars 35036 - 35041 [step.] 0. secs (0.u,0.s) -Chars 35042 - 35067 [(remember~(VisF~e~k)~as~y).] 0.001 secs (0.001u,0.s) -Chars 35082 - 35099 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 35100 - 35113 [clear~Heqot2.] 0. secs (0.u,0.s) -Chars 35114 - 35132 [(genobs~(k2~a)~ok2).] 0. secs (0.u,0.s) -Chars 35147 - 35160 [clear~Heqok2.] 0. secs (0.u,0.s) -Chars 35175 - 35306 [(hinduction~H~before~E;~intros...] 18.487 secs (18.297u,0.168s) -Chars 35321 - 35323 [**] 0. secs (0.u,0.s) -Chars 35325 - 35343 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 35344 - 35355 [now~unstep.] 0. secs (0.u,0.s) -Chars 35371 - 35373 [**] 0. secs (0.u,0.s) -Chars 35374 - 35385 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 35387 - 35398 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 35414 - 35416 [**] 0. secs (0.u,0.s) -Chars 35418 - 35442 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.019u,0.s) -Chars 35443 - 35454 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 35460 - 35461 [+] 0. secs (0.u,0.s) -Chars 35462 - 35486 [(rewrite~itree_eta'~~at~1).] 0.022 secs (0.022u,0.s) -Chars 35487 - 35498 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 35499 - 35516 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) -Chars 35521 - 35522 [+] 0. secs (0.u,0.s) -Chars 35524 - 35539 [(inv~SIZECHECK2).] 0.003 secs (0.003u,0.s) -Chars 35540 - 35552 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 35553 - 35572 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 35573 - 35582 [(apply~H0).] 0. secs (0.u,0.s) -Chars 35589 - 35597 [(apply~H).] 0. secs (0.u,0.s) -Chars 35598 - 35607 [Unshelve.] 0. secs (0.u,0.s) -Chars 35608 - 35613 [auto.] 0. secs (0.u,0.s) -Chars 35616 - 35617 [-] 0. secs (0.u,0.s) -Chars 35618 - 35644 [(remember~(VisF~e~k2)~as~x).] 0.002 secs (0.002u,0.s) -Chars 35645 - 35756 [(hinduction~Ht23~before~E;~int...] 0.155 secs (0.153u,0.002s) -Chars 35761 - 35762 [+] 0. secs (0.u,0.s) -Chars 35763 - 35781 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 35782 - 35803 [(eapply~IHHt23;~eauto).] 0.003 secs (0.003u,0.s) -Chars 35808 - 35809 [+] 0. secs (0.u,0.s) -Chars 35810 - 35828 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 35830 - 35864 [(assert~(Hne~:~nonempty~A0);~e...] 0.003 secs (0.003u,0.s) -Chars 35865 - 35873 [(inv~Hne).] 0.004 secs (0.004u,0.s) -Chars 35874 - 35891 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) -Chars 35898 - 35909 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 35910 - 35919 [Unshelve.] 0. secs (0.u,0.s) -Chars 35920 - 35925 [auto.] 0. secs (0.u,0.s) -Chars 35930 - 35931 [+] 0. secs (0.u,0.s) -Chars 35932 - 35943 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 35944 - 35978 [(assert~(Hne~:~nonempty~A0);~e...] 0.004 secs (0.004u,0.s) -Chars 35979 - 35987 [(inv~Hne).] 0.004 secs (0.004u,0.s) -Chars 35988 - 36005 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) -Chars 36013 - 36024 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 36025 - 36034 [Unshelve.] 0. secs (0.u,0.s) -Chars 36035 - 36040 [auto.] 0. secs (0.u,0.s) -Chars 36045 - 36046 [+] 0. secs (0.u,0.s) -Chars 36047 - 36074 [(assert~(Hne~:~nonempty~A0)).] 0. secs (0.u,0.s) -Chars 36075 - 36076 [{] 0. secs (0.u,0.s) -Chars 36077 - 36083 [eauto.] 0. secs (0.u,0.s) -Chars 36084 - 36085 [}] 0. secs (0.u,0.s) -Chars 36086 - 36094 [(inv~Hne).] 0.005 secs (0.005u,0.s) -Chars 36095 - 36101 [eauto.] 0.001 secs (0.001u,0.s) -Chars 36102 - 36111 [Unshelve.] 0. secs (0.u,0.s) -Chars 36113 - 36118 [auto.] 0. secs (0.u,0.s) -Chars 36123 - 36124 [+] 0. secs (0.u,0.s) -Chars 36125 - 36136 [unpriv_ind.] 0.002 secs (0.002u,0.s) -Chars 36137 - 36143 [eauto.] 0.004 secs (0.004u,0.s) -Chars 36148 - 36149 [+] 0. secs (0.u,0.s) -Chars 36151 - 36170 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 36171 - 36176 [step.] 0.001 secs (0.001u,0.s) -Chars 36184 - 36199 [(inv~SIZECHECK0).] 0.004 secs (0.003u,0.s) -Chars 36206 - 36258 [(eapply~secret_halt_trans_3~wi...] 0.001 secs (0.001u,0.s) -Chars 36265 - 36266 [*] 0. secs (0.u,0.s) -Chars 36267 - 36272 [step.] 0. secs (0.u,0.s) -Chars 36273 - 36282 [(apply~H0).] 0. secs (0.u,0.s) -Chars 36289 - 36290 [*] 0. secs (0.u,0.s) -Chars 36291 - 36299 [(apply~H).] 0. secs (0.u,0.s) -Chars 36302 - 36303 [-] 0. secs (0.u,0.s) -Chars 36309 - 36333 [(remember~(TauF~t0)~as~y).] 0.001 secs (0.001u,0.s) -Chars 36338 - 36406 [(hinduction~Ht23~before~E;~int...] 0.358 secs (0.355u,0.003s) -Chars 36412 - 36413 [+] 0. secs (0.u,0.s) -Chars 36414 - 36427 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 36428 - 36447 [(rewrite~itree_eta').] 0. secs (0.u,0.s) -Chars 36448 - 36472 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) -Chars 36479 - 36484 [step.] 0.001 secs (0.001u,0.s) -Chars 36492 - 36526 [(eapply~secret_halt_trans_2;~e...] 0. secs (0.u,0.s) -Chars 36527 - 36532 [step.] 0. secs (0.u,0.s) -Chars 36533 - 36538 [auto.] 0. secs (0.u,0.s) -Chars 36543 - 36544 [+] 0. secs (0.u,0.s) -Chars 36545 - 36557 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 36558 - 36577 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 36578 - 36586 [(apply~H).] 0. secs (0.u,0.s) -Chars 36591 - 36592 [+] 0. secs (0.u,0.s) -Chars 36593 - 36617 [(rewrite~itree_eta'~~at~1).] 0.021 secs (0.021u,0.s) -Chars 36618 - 36629 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 36630 - 36647 [(eapply~H0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 36652 - 36653 [+] 0. secs (0.u,0.s) -Chars 36654 - 36666 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 36667 - 36679 [contra_size.] 0. secs (0.u,0.s) -Chars 36682 - 36683 [-] 0. secs (0.u,0.s) -Chars 36689 - 36755 [(inv~Ht23;~ddestruction;~subst...] 0.121 secs (0.12u,0.001s) -Chars 36760 - 36761 [+] 0. secs (0.u,0.s) -Chars 36762 - 36774 [constructor.] 0. secs (0.u,0.s) -Chars 36775 - 36794 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 36795 - 36800 [step.] 0. secs (0.u,0.s) -Chars 36801 - 36806 [auto.] 0. secs (0.u,0.s) -Chars 36811 - 36812 [+] 0. secs (0.u,0.s) -Chars 36813 - 36823 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 36824 - 36843 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 36844 - 36861 [(rewrite~H0~in~H2).] 0. secs (0.u,0.s) -Chars 36868 - 36873 [step.] 0. secs (0.u,0.s) -Chars 36874 - 36883 [(apply~H2).] 0. secs (0.u,0.s) -Chars 36888 - 36889 [+] 0. secs (0.u,0.s) -Chars 36891 - 36903 [constructor.] 0. secs (0.u,0.s) -Chars 36904 - 36923 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 36928 - 36929 [+] 0. secs (0.u,0.s) -Chars 36931 - 36958 [(destruct~(classic_empty~B)).] 0. secs (0.u,0.s) -Chars 36965 - 36966 [*] 0. secs (0.u,0.s) -Chars 36967 - 36979 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 36980 - 36999 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 37000 - 37005 [step.] 0. secs (0.u,0.s) -Chars 37006 - 37010 [(cbn).] 0. secs (0.u,0.s) -Chars 37011 - 37023 [unpriv_halt.] 0.002 secs (0.002u,0.s) -Chars 37030 - 37031 [*] 0. secs (0.u,0.s) -Chars 37032 - 37042 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 37043 - 37062 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 37063 - 37072 [(apply~H1).] 0. secs (0.u,0.s) -Chars 37077 - 37078 [+] 0. secs (0.u,0.s) -Chars 37080 - 37092 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37093 - 37112 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 37119 - 37124 [step.] 0. secs (0.u,0.s) -Chars 37125 - 37129 [(cbn).] 0. secs (0.u,0.s) -Chars 37130 - 37142 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 37143 - 37155 [contra_size.] 0. secs (0.u,0.s) -Chars 37157 - 37158 [-] 0. secs (0.u,0.s) -Chars 37160 - 37184 [(rewrite~itree_eta'~~at~1).] 0.02 secs (0.02u,0.s) -Chars 37185 - 37190 [step.] 0.001 secs (0.001u,0.s) -Chars 37194 - 37251 [(eapply~secret_halt_trans_2~wi...] 0.001 secs (0.001u,0.s) -Chars 37255 - 37256 [+] 0. secs (0.u,0.s) -Chars 37257 - 37262 [step.] 0. secs (0.u,0.s) -Chars 37263 - 37267 [(cbn).] 0. secs (0.u,0.s) -Chars 37268 - 37280 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 37284 - 37285 [+] 0. secs (0.u,0.s) -Chars 37286 - 37291 [step.] 0. secs (0.u,0.s) -Chars 37292 - 37297 [auto.] 0. secs (0.u,0.s) -Chars 37299 - 37300 [-] 0. secs (0.u,0.s) -Chars 37302 - 37329 [(destruct~(classic_empty~A)).] 0. secs (0.u,0.s) -Chars 37333 - 37334 [+] 0. secs (0.u,0.s) -Chars 37335 - 37401 [(inv~Ht23;~ddestruction;~subst...] 0.127 secs (0.125u,0.001s) -Chars 37407 - 37408 [*] 0. secs (0.u,0.s) -Chars 37409 - 37421 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37422 - 37464 [(eapply~CIH0~with~(t2~:=~Vis~e...] 0. secs (0.u,0.s) -Chars 37472 - 37474 [--] 0. secs (0.u,0.s) -Chars 37475 - 37480 [step.] 0. secs (0.u,0.s) -Chars 37481 - 37485 [(cbn).] 0. secs (0.u,0.s) -Chars 37486 - 37498 [unpriv_halt.] 0.001 secs (0.u,0.s) -Chars 37499 - 37511 [contra_size.] 0. secs (0.u,0.s) -Chars 37519 - 37521 [--] 0. secs (0.u,0.s) -Chars 37522 - 37527 [step.] 0. secs (0.u,0.s) -Chars 37528 - 37533 [auto.] 0. secs (0.u,0.s) -Chars 37539 - 37540 [*] 0. secs (0.u,0.s) -Chars 37541 - 37553 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37554 - 37571 [(rewrite~H1~in~H3).] 0. secs (0.u,0.s) -Chars 37572 - 37614 [(eapply~CIH0~with~(t2~:=~Vis~e...] 0. secs (0.u,0.s) -Chars 37622 - 37624 [--] 0. secs (0.u,0.s) -Chars 37625 - 37630 [step.] 0. secs (0.u,0.s) -Chars 37631 - 37635 [(cbn).] 0. secs (0.u,0.s) -Chars 37636 - 37648 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37649 - 37661 [contra_size.] 0. secs (0.u,0.s) -Chars 37669 - 37671 [--] 0. secs (0.u,0.s) -Chars 37672 - 37677 [step.] 0. secs (0.u,0.s) -Chars 37678 - 37687 [(apply~H3).] 0. secs (0.u,0.s) -Chars 37693 - 37694 [*] 0. secs (0.u,0.s) -Chars 37695 - 37707 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37709 - 37728 [(eapply~CIH0;~eauto).] 0. secs (0.u,0.s) -Chars 37736 - 37741 [step.] 0. secs (0.u,0.s) -Chars 37742 - 37746 [(cbn).] 0. secs (0.u,0.s) -Chars 37747 - 37759 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37760 - 37772 [contra_size.] 0. secs (0.u,0.s) -Chars 37778 - 37779 [*] 0. secs (0.u,0.s) -Chars 37780 - 37792 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37794 - 37836 [(eapply~CIH0~with~(t2~:=~Vis~e...] 0. secs (0.u,0.s) -Chars 37844 - 37846 [--] 0. secs (0.u,0.s) -Chars 37847 - 37852 [step.] 0. secs (0.u,0.s) -Chars 37853 - 37857 [(cbn).] 0. secs (0.u,0.s) -Chars 37858 - 37870 [unpriv_halt.] 0.005 secs (0.005u,0.s) -Chars 37871 - 37883 [contra_size.] 0. secs (0.u,0.s) -Chars 37891 - 37893 [--] 0. secs (0.u,0.s) -Chars 37894 - 37903 [(apply~H2).] 0. secs (0.u,0.s) -Chars 37909 - 37910 [*] 0. secs (0.u,0.s) +Chars 294 - 341 [#[local]~Ltac~taul~:=~apply~se...] 0. secs (0.u,0.s) +Chars 342 - 389 [#[local]~Ltac~taur~:=~apply~se...] 0. secs (0.u,0.s) +Chars 391 - 627 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 628 - 656 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 659 - 711 [unfold~Proper,~respectful,~Bas...] 0. secs (0.u,0.s) +Chars 714 - 730 [tower~induction.] 0.003 secs (0.002u,0.s) +Chars 733 - 798 [clear~c;~intros~c~IH~x~x'~EQx~...] 0.001 secs (0.001u,0.s) +Chars 803 - 813 [intros~EQ.] 0. secs (0.u,0.s) +Chars 814 - 841 [icbn;~icbn~in~EQ;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 847 - 876 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 996 - 1035 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 1040 - 1061 [induction~EQ;~intros.] 0.002 secs (0.002u,0.s) +Chars 1066 - 1067 [+] 0. secs (0.u,0.s) +Chars 1068 - 1094 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 1101 - 1113 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 1120 - 1134 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 1141 - 1156 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 1163 - 1198 [hinduction~EQx~before~ox;~try~...] 0.077 secs (0.075u,0.001s) +Chars 1205 - 1206 [*] 0. secs (0.u,0.s) +Chars 1207 - 1233 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) +Chars 1234 - 1248 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 1257 - 1284 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 1293 - 1308 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 1317 - 1352 [hinduction~EQy~before~oy;~try~...] 0.016 secs (0.016u,0.s) +Chars 1361 - 1386 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 1391 - 1392 [+] 0. secs (0.u,0.s) +Chars 1393 - 1410 [inv~EQx;~inv~EQy.] 0.029 secs (0.029u,0.s) +Chars 1411 - 1423 [constructor.] 0. secs (0.u,0.s) +Chars 1424 - 1441 [eapply~IH;~eauto.] 0.001 secs (0.001u,0.s) +Chars 1447 - 1448 [+] 0. secs (0.u,0.s) +Chars 1449 - 1457 [inv~EQx.] 0.027 secs (0.027u,0.s) +Chars 1458 - 1463 [taul.] 0. secs (0.u,0.s) +Chars 1464 - 1483 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 1484 - 1495 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 1501 - 1502 [+] 0. secs (0.u,0.s) +Chars 1503 - 1511 [inv~EQy.] 0.028 secs (0.028u,0.s) +Chars 1512 - 1517 [taur.] 0. secs (0.u,0.s) +Chars 1518 - 1537 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 1538 - 1549 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 1554 - 1555 [+] 0. secs (0.u,0.s) +Chars 1556 - 1573 [inv~EQx;~inv~EQy.] 0.026 secs (0.026u,0.s) +Chars 1574 - 1648 [ddestruction;~subst;~try~contr...] 0.022 secs (0.021u,0.s) +Chars 1653 - 1654 [+] 0. secs (0.u,0.s) +Chars 1655 - 1672 [inv~EQx;~inv~EQy.] 0.028 secs (0.028u,0.s) +Chars 1673 - 1747 [ddestruction;~subst;~try~contr...] 0.021 secs (0.021u,0.s) +Chars 1752 - 1753 [+] 0. secs (0.u,0.s) +Chars 1754 - 1771 [inv~EQx;~inv~EQy.] 0.027 secs (0.027u,0.s) +Chars 1772 - 1846 [ddestruction;~subst;~try~contr...] 0.019 secs (0.019u,0.s) +Chars 1851 - 1852 [+] 0. secs (0.u,0.s) +Chars 1853 - 1870 [inv~EQx;~inv~EQy.] 0.026 secs (0.026u,0.s) +Chars 1871 - 1945 [ddestruction;~subst;~try~contr...] 0.055 secs (0.055u,0.s) +Chars 1950 - 1951 [+] 0. secs (0.u,0.s) +Chars 1952 - 1974 [inv~EQx;~ddestruction.] 0.016 secs (0.016u,0.s) +Chars 1975 - 1993 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 1994 - 2001 [intros.] 0. secs (0.u,0.s) +Chars 2009 - 2026 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 2027 - 2038 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 2044 - 2045 [+] 0. secs (0.u,0.s) +Chars 2046 - 2068 [inv~EQy;~ddestruction.] 0.016 secs (0.016u,0.s) +Chars 2069 - 2087 [constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 2088 - 2095 [intros.] 0. secs (0.u,0.s) +Chars 2103 - 2120 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 2121 - 2132 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 2138 - 2139 [+] 0. secs (0.u,0.s) +Chars 2140 - 2188 [inv~EQx;~inv~EQy;~ddestruction...] 0.034 secs (0.034u,0.s) +Chars 2197 - 2219 [constructor~11;~eauto.] 0.023 secs (0.023u,0.s) +Chars 2220 - 2230 [eapply~IH.] 0. secs (0.u,0.s) +Chars 2238 - 2250 [2,~3:~eauto.] 0. secs (0.u,0.s) +Chars 2251 - 2256 [step.] 0.001 secs (0.001u,0.s) +Chars 2257 - 2269 [constructor.] 0. secs (0.u,0.s) +Chars 2270 - 2275 [auto.] 0. secs (0.u,0.s) +Chars 2281 - 2282 [+] 0. secs (0.u,0.s) +Chars 2283 - 2331 [inv~EQx;~inv~EQy;~ddestruction...] 0.032 secs (0.032u,0.s) +Chars 2340 - 2362 [constructor~12;~eauto.] 0.028 secs (0.028u,0.s) +Chars 2363 - 2373 [eapply~IH.] 0. secs (0.u,0.s) +Chars 2381 - 2393 [1,~3:~eauto.] 0. secs (0.u,0.s) +Chars 2394 - 2399 [step.] 0.001 secs (0.001u,0.s) +Chars 2400 - 2412 [constructor.] 0. secs (0.u,0.s) +Chars 2413 - 2418 [auto.] 0. secs (0.u,0.s) +Chars 2424 - 2425 [+] 0. secs (0.u,0.s) +Chars 2426 - 2474 [inv~EQx;~inv~EQy;~ddestruction...] 0.033 secs (0.033u,0.s) +Chars 2483 - 2505 [constructor~13;~eauto.] 0.008 secs (0.008u,0.s) +Chars 2506 - 2512 [intro.] 0. secs (0.u,0.s) +Chars 2513 - 2523 [eapply~IH.] 0. secs (0.u,0.s) +Chars 2530 - 2541 [3:~apply~H.] 0. secs (0.u,0.s) +Chars 2542 - 2564 [step;~now~constructor.] 0.001 secs (0.001u,0.s) +Chars 2565 - 2576 [apply~REL0.] 0. secs (0.u,0.s) +Chars 2582 - 2583 [+] 0. secs (0.u,0.s) +Chars 2584 - 2632 [inv~EQx;~inv~EQy;~ddestruction...] 0.035 secs (0.034u,0.s) +Chars 2641 - 2663 [constructor~14;~eauto.] 0.008 secs (0.008u,0.s) +Chars 2664 - 2670 [intro.] 0. secs (0.u,0.s) +Chars 2671 - 2681 [eapply~IH.] 0. secs (0.u,0.s) +Chars 2688 - 2699 [3:~apply~H.] 0. secs (0.u,0.s) +Chars 2700 - 2710 [apply~REL.] 0. secs (0.u,0.s) +Chars 2718 - 2740 [step;~now~constructor.] 0.001 secs (0.001u,0.s) +Chars 2742 - 2746 [Qed.] 0.076 secs (0.075u,0.001s) +Chars 2750 - 2943 [Lemma~tau_eqit_secure~:~~~fora...] 0. secs (0.u,0.s) +Chars 2944 - 2950 [Proof.] 0. secs (0.u,0.s) +Chars 2953 - 2984 [intros~E~R1~R2~Label~priv~l~RR.] 0. secs (0.u,0.s) +Chars 2986 - 3004 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) +Chars 3005 - 3010 [step.] 0. secs (0.u,0.s) +Chars 3014 - 3027 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 3028 - 3037 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 3038 - 3062 [remember~(TauF~t1)~as~x.] 0. secs (0.u,0.s) +Chars 3065 - 3129 [hinduction~Hsec~before~priv;~i...] 0.15 secs (0.148u,0.001s) +Chars 3132 - 3133 [-] 0. secs (0.u,0.s) +Chars 3134 - 3152 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3153 - 3164 [now~unstep.] 0. secs (0.u,0.s) +Chars 3168 - 3169 [-] 0. secs (0.u,0.s) +Chars 3170 - 3181 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 3182 - 3193 [now~unstep.] 0. secs (0.u,0.s) +Chars 3197 - 3198 [-] 0. secs (0.u,0.s) +Chars 3199 - 3213 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 3214 - 3218 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3220 - 3483 [Lemma~unpriv_e_eqit_secure~:~~...] 0. secs (0.u,0.s) +Chars 3484 - 3490 [Proof.] 0. secs (0.u,0.s) +Chars 3493 - 3500 [intros.] 0. secs (0.u,0.s) +Chars 3501 - 3524 [generalize~dependent~t.] 0. secs (0.u,0.s) +Chars 3525 - 3547 [rename~H~into~Hunpriv.] 0. secs (0.u,0.s) +Chars 3548 - 3571 [generalize~dependent~a.] 0. secs (0.u,0.s) +Chars 3574 - 3581 [intros.] 0. secs (0.u,0.s) +Chars 3582 - 3593 [step~in~H0.] 0. secs (0.u,0.s) +Chars 3594 - 3603 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 3604 - 3609 [step.] 0. secs (0.u,0.s) +Chars 3613 - 3638 [remember~(VisF~e~k)~as~x.] 0. secs (0.u,0.s) +Chars 3639 - 3657 [genobs_clear~t~ot.] 0. secs (0.u,0.s) +Chars 3660 - 3772 [hinduction~H0~before~l;~intros...] 0.056 secs (0.056u,0.s) +Chars 3775 - 3776 [-] 0. secs (0.u,0.s) +Chars 3777 - 3795 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3796 - 3825 [eapply~IHsecure_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 3828 - 3829 [-] 0. secs (0.u,0.s) +Chars 3831 - 3849 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3850 - 3861 [now~unstep.] 0. secs (0.u,0.s) +Chars 3865 - 3866 [-] 0. secs (0.u,0.s) +Chars 3867 - 3878 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 3879 - 3886 [unstep.] 0. secs (0.u,0.s) +Chars 3888 - 3896 [apply~H.] 0. secs (0.u,0.s) +Chars 3899 - 3900 [-] 0. secs (0.u,0.s) +Chars 3901 - 3912 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 3913 - 3930 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 3933 - 3934 [-] 0. secs (0.u,0.s) +Chars 3936 - 3955 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 3956 - 3971 [now~now~unstep.] 0. secs (0.u,0.s) +Chars 3973 - 3977 [Qed.] 0.018 secs (0.018u,0.s) +Chars 3980 - 4673 [Lemma~eses_au_vis_r~:~~~forall...] 0.001 secs (0.001u,0.s) +Chars 4674 - 4680 [Proof.] 0. secs (0.u,0.s) +Chars 4683 - 4750 [intros~E~R2~R1~Label~priv~l~RR...] 0. secs (0.u,0.s) +Chars 4753 - 4778 [remember~(VisF~e~k)~as~x.] 0. secs (0.u,0.s) +Chars 4779 - 4791 [step~in~REL.] 0. secs (0.u,0.s) +Chars 4792 - 4805 [rewrite~Heqx.] 0. secs (0.u,0.s) +Chars 4808 - 4901 [hinduction~Hsec~before~E;~intr...] 0.061 secs (0.061u,0.s) +Chars 4904 - 4905 [-] 0. secs (0.u,0.s) +Chars 4906 - 4927 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 4932 - 4939 [unstep.] 0.002 secs (0.002u,0.s) +Chars 4940 - 4972 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.002 secs (0.002u,0.s) +Chars 4973 - 4978 [step.] 0.001 secs (0.001u,0.s) +Chars 4979 - 4984 [auto.] 0. secs (0.u,0.s) +Chars 4987 - 4988 [-] 0. secs (0.u,0.s) +Chars 4990 - 5017 [remember~(VisF~e0~k1)~as~y.] 0. secs (0.u,0.s) +Chars 5022 - 5097 [hinduction~REL~before~CIH;~int...] 0.009 secs (0.008u,0.s) +Chars 5102 - 5103 [+] 0. secs (0.u,0.s) +Chars 5104 - 5122 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5123 - 5130 [intros.] 0. secs (0.u,0.s) +Chars 5137 - 5161 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) +Chars 5168 - 5178 [apply~REL.] 0. secs (0.u,0.s) +Chars 5183 - 5184 [+] 0. secs (0.u,0.s) +Chars 5185 - 5204 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 5207 - 5208 [-] 0. secs (0.u,0.s) +Chars 5209 - 5220 [rewrite~H2.] 0. secs (0.u,0.s) +Chars 5221 - 5247 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) +Chars 5252 - 5304 [hinduction~REL~before~e;~intro...] 0.002 secs (0.002u,0.s) +Chars 5305 - 5318 [ddestruction.] 0.004 secs (0.003u,0.s) +Chars 5323 - 5324 [+] 0. secs (0.u,0.s) +Chars 5325 - 5339 [rewrite~<-~H2.] 0. secs (0.u,0.s) +Chars 5340 - 5351 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 5353 - 5364 [rewrite~H2.] 0. secs (0.u,0.s) +Chars 5365 - 5382 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 5389 - 5398 [Unshelve.] 0. secs (0.u,0.s) +Chars 5399 - 5409 [all:~auto.] 0. secs (0.u,0.s) +Chars 5410 - 5425 [now~now~unstep.] 0.003 secs (0.002u,0.s) +Chars 5431 - 5432 [+] 0. secs (0.u,0.s) +Chars 5433 - 5451 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5452 - 5472 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5473 - 5477 [Qed.] 0.024 secs (0.024u,0.s) +Chars 5479 - 6172 [Lemma~eses_au_vis_l~:~~~forall...] 0.001 secs (0.001u,0.s) +Chars 6173 - 6179 [Proof.] 0. secs (0.u,0.s) +Chars 6182 - 6249 [intros~E~R2~R1~Label~priv~l~RR...] 0. secs (0.u,0.s) +Chars 6252 - 6277 [remember~(VisF~e~k)~as~x.] 0. secs (0.u,0.s) +Chars 6278 - 6290 [step~in~REL.] 0. secs (0.u,0.s) +Chars 6291 - 6304 [rewrite~Heqx.] 0. secs (0.u,0.s) +Chars 6307 - 6400 [hinduction~Hsec~before~E;~intr...] 0.06 secs (0.059u,0.s) +Chars 6403 - 6404 [-] 0. secs (0.u,0.s) +Chars 6405 - 6426 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 6431 - 6438 [unstep.] 0.002 secs (0.002u,0.s) +Chars 6439 - 6471 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.001 secs (0.001u,0.s) +Chars 6472 - 6477 [step.] 0.001 secs (0.001u,0.s) +Chars 6478 - 6483 [auto.] 0. secs (0.u,0.s) +Chars 6486 - 6487 [-] 0. secs (0.u,0.s) +Chars 6489 - 6516 [remember~(VisF~e0~k2)~as~y.] 0. secs (0.u,0.s) +Chars 6521 - 6596 [hinduction~REL~before~CIH;~int...] 0.009 secs (0.009u,0.s) +Chars 6601 - 6602 [+] 0. secs (0.u,0.s) +Chars 6603 - 6621 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 6622 - 6629 [intros.] 0. secs (0.u,0.s) +Chars 6636 - 6660 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) +Chars 6667 - 6677 [apply~REL.] 0. secs (0.u,0.s) +Chars 6682 - 6683 [+] 0. secs (0.u,0.s) +Chars 6684 - 6703 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 6706 - 6707 [-] 0. secs (0.u,0.s) +Chars 6708 - 6719 [rewrite~H2.] 0. secs (0.u,0.s) +Chars 6720 - 6746 [remember~(VisF~e~k2)~as~y.] 0. secs (0.u,0.s) +Chars 6751 - 6803 [hinduction~REL~before~e;~intro...] 0.002 secs (0.002u,0.s) +Chars 6804 - 6817 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 6822 - 6823 [+] 0. secs (0.u,0.s) +Chars 6824 - 6838 [rewrite~<-~H2.] 0. secs (0.u,0.s) +Chars 6839 - 6850 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 6852 - 6863 [rewrite~H2.] 0. secs (0.u,0.s) +Chars 6864 - 6881 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 6888 - 6897 [Unshelve.] 0. secs (0.u,0.s) +Chars 6898 - 6908 [all:~auto.] 0. secs (0.u,0.s) +Chars 6909 - 6924 [now~now~unstep.] 0.003 secs (0.003u,0.s) +Chars 6930 - 6931 [+] 0. secs (0.u,0.s) +Chars 6932 - 6950 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 6951 - 6971 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) +Chars 6972 - 6976 [Qed.] 0.025 secs (0.025u,0.s) +Chars 6978 - 7408 [Lemma~eses_aux_ret_r~:~~~foral...] 0. secs (0.u,0.s) +Chars 7409 - 7415 [Proof.] 0. secs (0.u,0.s) +Chars 7418 - 7471 [intros~E~R2~R1~Label~priv~l~RR...] 0. secs (0.u,0.s) +Chars 7474 - 7488 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 7489 - 7513 [remember~(RetF~r0)~as~x.] 0.001 secs (0.001u,0.s) +Chars 7516 - 7529 [rewrite~Heqx.] 0. secs (0.u,0.s) +Chars 7530 - 7590 [hinduction~Hsec~before~E;~intr...] 0.017 secs (0.017u,0.s) +Chars 7593 - 7594 [-] 0. secs (0.u,0.s) +Chars 7595 - 7619 [remember~(RetF~r1)~as~y.] 0. secs (0.u,0.s) +Chars 7624 - 7685 [hinduction~Heutt~before~E;~int...] 0.004 secs (0.004u,0.s) +Chars 7690 - 7708 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7709 - 7731 [eapply~IHHeutt;~eauto.] 0. secs (0.u,0.s) +Chars 7734 - 7735 [-] 0. secs (0.u,0.s) +Chars 7736 - 7757 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 7758 - 7765 [unstep.] 0.002 secs (0.002u,0.s) +Chars 7766 - 7791 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) +Chars 7792 - 7797 [step.] 0.001 secs (0.001u,0.s) +Chars 7798 - 7803 [auto.] 0. secs (0.u,0.s) +Chars 7806 - 7807 [-] 0. secs (0.u,0.s) +Chars 7808 - 7834 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) +Chars 7839 - 7910 [hinduction~Heutt~before~E;~int...] 0.012 secs (0.011u,0.s) +Chars 7915 - 7916 [+] 0. secs (0.u,0.s) +Chars 7918 - 7929 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 7930 - 7941 [rewrite~H2.] 0. secs (0.u,0.s) +Chars 7942 - 7959 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 7968 - 7983 [now~now~unstep.] 0.003 secs (0.003u,0.s) +Chars 7989 - 7990 [+] 0. secs (0.u,0.s) +Chars 7991 - 8009 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8010 - 8032 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 8033 - 8037 [Qed.] 0.012 secs (0.012u,0.s) +Chars 8039 - 8095 [Definition~classic_empty~:=~Se...] 0. secs (0.u,0.s) +Chars 9001 - 9218 [Lemma~eutt_secure_eqit_secure~...] 0. secs (0.u,0.s) +Chars 9219 - 9225 [Proof.] 0. secs (0.u,0.s) +Chars 9228 - 9259 [intros~E~Label~priv~l~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 9260 - 9279 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9280 - 9308 [intros~t1~t1'~t2~Heutt~Hsec.] 0. secs (0.u,0.s) +Chars 9311 - 9325 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 9326 - 9339 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 9343 - 9401 [hinduction~Heutt~before~E;~int...] 0.003 secs (0.003u,0.s) +Chars 9404 - 9405 [-] 0. secs (0.u,0.s) +Chars 9406 - 9430 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) +Chars 9431 - 9495 [hinduction~Hsec~before~E;~intr...] 0.02 secs (0.02u,0.s) +Chars 9500 - 9501 [+] 0. secs (0.u,0.s) +Chars 9502 - 9520 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9521 - 9542 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 9547 - 9548 [+] 0. secs (0.u,0.s) +Chars 9549 - 9560 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 9561 - 9578 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 9581 - 9582 [-] 0. secs (0.u,0.s) +Chars 9583 - 9603 [genobs_clear~t2~ot2.] 0. secs (0.u,0.s) +Chars 9608 - 9682 [assert~(Ht2~:~(exists~m3,~ot2~...] 0. secs (0.u,0.s) +Chars 9687 - 9688 [{] 0. secs (0.u,0.s) +Chars 9689 - 9744 [destruct~ot2;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) +Chars 9745 - 9746 [}] 0. secs (0.u,0.s) +Chars 9817 - 9852 [destruct~Ht2~as~[[m3~Hm3]|~Ht2].] 0. secs (0.u,0.s) +Chars 9857 - 9858 [+] 0. secs (0.u,0.s) +Chars 9859 - 9865 [subst.] 0. secs (0.u,0.s) +Chars 9867 - 9879 [constructor.] 0. secs (0.u,0.s) +Chars 9880 - 9898 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 9905 - 9927 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 9928 - 9950 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 9951 - 9973 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 9980 - 10002 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 10003 - 10008 [step.] 0. secs (0.u,0.s) +Chars 10009 - 10014 [auto.] 0. secs (0.u,0.s) +Chars 10019 - 10020 [+] 0. secs (0.u,0.s) +Chars 10021 - 10074 [destruct~ot2;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) +Chars 10081 - 10082 [*] 0. secs (0.u,0.s) +Chars 10084 - 10108 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) +Chars 10118 - 10167 [eapply~eses_aux_ret_r~with~(m1...] 0. secs (0.u,0.s) +Chars 10177 - 10203 [now~do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 10210 - 10211 [*] 0. secs (0.u,0.s) +Chars 10212 - 10260 [assert~(leq~(priv~_~e)~l~\/~~~...] 0. secs (0.u,0.s) +Chars 10269 - 10270 [{] 0. secs (0.u,0.s) +Chars 10271 - 10285 [apply~classic.] 0. secs (0.u,0.s) +Chars 10286 - 10287 [}] 0. secs (0.u,0.s) +Chars 10296 - 10363 [destruct~H~as~[SECCHECK|~SECCH...] 0. secs (0.u,0.s) +Chars 10372 - 10374 [++] 0. secs (0.u,0.s) +Chars 10376 - 10400 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) +Chars 10401 - 10447 [apply~eses_au_vis_r~with~(m1~:...] 0. secs (0.u,0.s) +Chars 10459 - 10481 [do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 10482 - 10487 [auto.] 0. secs (0.u,0.s) +Chars 10496 - 10498 [++] 0. secs (0.u,0.s) +Chars 10500 - 10524 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) +Chars 10525 - 10571 [apply~eses_au_vis_r~with~(m1~:...] 0. secs (0.u,0.s) +Chars 10583 - 10605 [do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 10606 - 10611 [auto.] 0. secs (0.u,0.s) +Chars 10620 - 10622 [++] 0. secs (0.u,0.s) +Chars 10623 - 10635 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 10636 - 10654 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 10666 - 10688 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 10689 - 10694 [step.] 0. secs (0.u,0.s) +Chars 10695 - 10700 [auto.] 0. secs (0.u,0.s) +Chars 10709 - 10711 [++] 0. secs (0.u,0.s) +Chars 10712 - 10722 [unpriv_co.] 0. secs (0.u,0.s) +Chars 10724 - 10735 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 10737 - 10747 [apply~REL.] 0. secs (0.u,0.s) +Chars 10759 - 10781 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 10793 - 10815 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 10827 - 10862 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) +Chars 10874 - 10896 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 10897 - 10902 [step.] 0. secs (0.u,0.s) +Chars 10903 - 10908 [auto.] 0. secs (0.u,0.s) +Chars 10911 - 10912 [-] 0. secs (0.u,0.s) +Chars 10913 - 10991 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) +Chars 10997 - 11008 [clear~Hsec.] 0. secs (0.u,0.s) +Chars 11009 - 11028 [rename~H~into~Hsec.] 0. secs (0.u,0.s) +Chars 11033 - 11073 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 11078 - 11079 [+] 0. secs (0.u,0.s) +Chars 11080 - 11093 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 11103 - 11112 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 11113 - 11139 [remember~(VisF~e~k1)~as~x.] 0. secs (0.u,0.s) +Chars 11146 - 11235 [hinduction~Hsec~before~E;~intr...] 0.061 secs (0.06u,0.s) +Chars 11242 - 11243 [*] 0. secs (0.u,0.s) +Chars 11244 - 11262 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 11263 - 11284 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 11291 - 11292 [*] 0. secs (0.u,0.s) +Chars 11293 - 11319 [constructor;~auto;~intros.] 0. secs (0.u,0.s) +Chars 11320 - 11346 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 11348 - 11356 [apply~H.] 0. secs (0.u,0.s) +Chars 11363 - 11364 [*] 0. secs (0.u,0.s) +Chars 11365 - 11389 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 11390 - 11401 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 11402 - 11419 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 11424 - 11425 [+] 0. secs (0.u,0.s) +Chars 11426 - 11453 [destruct~(classic_empty~u).] 0. secs (0.u,0.s) +Chars 11460 - 11461 [*] 0. secs (0.u,0.s) +Chars 11462 - 11475 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 11476 - 11485 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 11494 - 11516 [destruct~(observe~t2).] 0. secs (0.u,0.s) +Chars 11525 - 11527 [--] 0. secs (0.u,0.s) +Chars 11528 - 11550 [inv~Hsec;~contra_size.] 0.015 secs (0.014u,0.s) +Chars 11559 - 11561 [--] 0. secs (0.u,0.s) +Chars 11562 - 11574 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 11575 - 11607 [apply~CIH~with~(t1~:=~Vis~e~k1).] 0. secs (0.u,0.s) +Chars 11619 - 11621 [++] 0. secs (0.u,0.s) +Chars 11622 - 11627 [step.] 0.001 secs (0.001u,0.s) +Chars 11628 - 11640 [constructor.] 0. secs (0.u,0.s) +Chars 11641 - 11646 [auto.] 0. secs (0.u,0.s) +Chars 11658 - 11660 [++] 0. secs (0.u,0.s) +Chars 11661 - 11728 [inv~Hsec;~ddestruction;~subst;...] 0.032 secs (0.032u,0.s) +Chars 11729 - 11734 [step.] 0. secs (0.u,0.s) +Chars 11735 - 11740 [auto.] 0. secs (0.u,0.s) +Chars 11756 - 11761 [auto.] 0. secs (0.u,0.s) +Chars 11770 - 11772 [--] 0. secs (0.u,0.s) +Chars 11773 - 11839 [inv~Hsec;~ddestruction;~subst;...] 0.053 secs (0.053u,0.s) +Chars 11851 - 11853 [++] 0. secs (0.u,0.s) +Chars 11854 - 11866 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 11867 - 11899 [apply~CIH~with~(t1~:=~Vis~e~k1).] 0. secs (0.u,0.s) +Chars 11914 - 11915 [{] 0. secs (0.u,0.s) +Chars 11916 - 11921 [step.] 0.001 secs (0.001u,0.s) +Chars 11922 - 11934 [constructor.] 0. secs (0.u,0.s) +Chars 11935 - 11939 [red.] 0. secs (0.u,0.s) +Chars 11940 - 11945 [auto.] 0. secs (0.u,0.s) +Chars 11946 - 11947 [}] 0. secs (0.u,0.s) +Chars 11962 - 11963 [{] 0. secs (0.u,0.s) +Chars 11964 - 11981 [rewrite~H1~in~H3.] 0. secs (0.u,0.s) +Chars 11982 - 11987 [step.] 0. secs (0.u,0.s) +Chars 11988 - 11997 [apply~H3.] 0. secs (0.u,0.s) +Chars 11998 - 11999 [}] 0. secs (0.u,0.s) +Chars 12011 - 12013 [++] 0. secs (0.u,0.s) +Chars 12015 - 12027 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12028 - 12060 [apply~CIH~with~(t1~:=~Vis~e~k1).] 0. secs (0.u,0.s) +Chars 12075 - 12076 [{] 0. secs (0.u,0.s) +Chars 12077 - 12082 [step.] 0.001 secs (0.001u,0.s) +Chars 12083 - 12095 [constructor.] 0. secs (0.u,0.s) +Chars 12096 - 12100 [red.] 0. secs (0.u,0.s) +Chars 12101 - 12106 [auto.] 0. secs (0.u,0.s) +Chars 12107 - 12108 [}] 0. secs (0.u,0.s) +Chars 12123 - 12124 [{] 0. secs (0.u,0.s) +Chars 12125 - 12134 [apply~H2.] 0. secs (0.u,0.s) +Chars 12135 - 12136 [}] 0. secs (0.u,0.s) +Chars 12148 - 12150 [++] 0. secs (0.u,0.s) +Chars 12152 - 12164 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12165 - 12177 [contra_size.] 0. secs (0.u,0.s) +Chars 12184 - 12185 [*] 0. secs (0.u,0.s) +Chars 12186 - 12199 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 12200 - 12209 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 12218 - 12240 [destruct~(observe~t2).] 0. secs (0.u,0.s) +Chars 12249 - 12251 [++] 0. secs (0.u,0.s) +Chars 12252 - 12320 [eapply~eses_aux_ret_r~with~(m1...] 0. secs (0.u,0.s) +Chars 12332 - 12337 [step.] 0.001 secs (0.001u,0.s) +Chars 12338 - 12350 [constructor.] 0. secs (0.u,0.s) +Chars 12351 - 12355 [red.] 0. secs (0.u,0.s) +Chars 12356 - 12361 [auto.] 0. secs (0.u,0.s) +Chars 12370 - 12372 [++] 0. secs (0.u,0.s) +Chars 12373 - 12383 [unpriv_co.] 0. secs (0.u,0.s) +Chars 12384 - 12427 [apply~CIH~with~(t1~:=~k1~a);~t...] 0. secs (0.u,0.s) +Chars 12439 - 12474 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) +Chars 12475 - 12497 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 12509 - 12531 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 12532 - 12554 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 12555 - 12560 [step.] 0. secs (0.u,0.s) +Chars 12561 - 12566 [auto.] 0. secs (0.u,0.s) +Chars 12575 - 12577 [++] 0. secs (0.u,0.s) +Chars 12578 - 12618 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 12630 - 12632 [**] 0. secs (0.u,0.s) +Chars 12633 - 12657 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) +Chars 12672 - 12722 [eapply~eses_au_vis_r~with~(m1~...] 0. secs (0.u,0.s) +Chars 12737 - 12742 [step.] 0.001 secs (0.001u,0.s) +Chars 12743 - 12755 [constructor.] 0.001 secs (0.001u,0.s) +Chars 12756 - 12760 [red.] 0. secs (0.u,0.s) +Chars 12761 - 12766 [auto.] 0. secs (0.u,0.s) +Chars 12778 - 12780 [**] 0. secs (0.u,0.s) +Chars 12781 - 12808 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 12823 - 12826 [---] 0. secs (0.u,0.s) +Chars 12827 - 12839 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 12840 - 12866 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 12885 - 12920 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) +Chars 12921 - 12926 [step.] 0. secs (0.u,0.s) +Chars 12927 - 12932 [auto.] 0. secs (0.u,0.s) +Chars 12947 - 12950 [---] 0. secs (0.u,0.s) +Chars 12951 - 12961 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 12962 - 12988 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 13067 - 13132 [do~2~(eapply~unpriv_e_eqit_sec...] 0. secs (0.u,0.s) +Chars 13151 - 13156 [step.] 0. secs (0.u,0.s) +Chars 13157 - 13162 [auto.] 0. secs (0.u,0.s) +Chars 13165 - 13166 [-] 0. secs (0.u,0.s) +Chars 13167 - 13189 [eapply~IHHeutt;~eauto.] 0. secs (0.u,0.s) +Chars 13190 - 13197 [unstep.] 0. secs (0.u,0.s) +Chars 13202 - 13224 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 13225 - 13230 [step.] 0. secs (0.u,0.s) +Chars 13231 - 13236 [auto.] 0. secs (0.u,0.s) +Chars 13237 - 13241 [Qed.] 0.087 secs (0.086u,0.s) +Chars 13244 - 13574 [Lemma~eqit_secure_TauLR~:~~~fo...] 0. secs (0.u,0.s) +Chars 13575 - 13581 [Proof.] 0. secs (0.u,0.s) +Chars 13584 - 13622 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) +Chars 13625 - 13632 [intros.] 0. secs (0.u,0.s) +Chars 13633 - 13643 [step~in~H.] 0. secs (0.u,0.s) +Chars 13644 - 13653 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 13654 - 13659 [step.] 0. secs (0.u,0.s) +Chars 13660 - 13664 [cbn.] 0. secs (0.u,0.s) +Chars 13667 - 13691 [remember~(TauF~t0)~as~x.] 0. secs (0.u,0.s) +Chars 13692 - 13716 [remember~(TauF~t4)~as~y.] 0. secs (0.u,0.s) +Chars 13719 - 13769 [hinduction~H~before~b2;~intros...] 0.002 secs (0.002u,0.s) +Chars 13772 - 13773 [-] 0. secs (0.u,0.s) +Chars 13774 - 13793 [inv~Heqx;~inv~Heqy.] 0.003 secs (0.003u,0.s) +Chars 13794 - 13805 [now~unstep.] 0. secs (0.u,0.s) +Chars 13809 - 13810 [-] 0. secs (0.u,0.s) +Chars 13811 - 13820 [inv~Heqx.] 0.013 secs (0.013u,0.s) +Chars 13821 - 13845 [inv~H;~eauto~with~itree.] 0.277 secs (0.276u,0.001s) +Chars 13850 - 13851 [+] 0. secs (0.u,0.s) +Chars 13853 - 13864 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 13865 - 13876 [now~unstep.] 0. secs (0.u,0.s) +Chars 13882 - 13883 [+] 0. secs (0.u,0.s) +Chars 13884 - 13895 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 13896 - 13913 [rewrite~H1~in~H2.] 0. secs (0.u,0.s) +Chars 13920 - 13938 [specialize~(H2~a).] 0. secs (0.u,0.s) +Chars 13939 - 13957 [genobs~(k1~a)~ok1.] 0. secs (0.u,0.s) +Chars 13958 - 13971 [clear~Heqok1.] 0. secs (0.u,0.s) +Chars 13978 - 14002 [remember~(TauF~t4)~as~y.] 0. secs (0.u,0.s) +Chars 14009 - 14069 [hinduction~H2~before~b2;~intro...] 0.314 secs (0.312u,0.002s) +Chars 14076 - 14077 [*] 0. secs (0.u,0.s) +Chars 14079 - 14109 [constructor;~auto;~now~unstep.] 0. secs (0.u,0.s) +Chars 14117 - 14118 [*] 0. secs (0.u,0.s) +Chars 14120 - 14131 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 14132 - 14143 [now~unstep.] 0. secs (0.u,0.s) +Chars 14151 - 14152 [*] 0. secs (0.u,0.s) +Chars 14153 - 14167 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 14172 - 14173 [+] 0. secs (0.u,0.s) +Chars 14174 - 14189 [now~step~in~H2.] 0. secs (0.u,0.s) +Chars 14192 - 14193 [-] 0. secs (0.u,0.s) +Chars 14194 - 14203 [inv~Heqy.] 0.007 secs (0.007u,0.s) +Chars 14204 - 14228 [inv~H;~eauto~with~itree.] 0.283 secs (0.281u,0.002s) +Chars 14233 - 14234 [+] 0. secs (0.u,0.s) +Chars 14236 - 14247 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 14248 - 14259 [now~unstep.] 0. secs (0.u,0.s) +Chars 14265 - 14266 [+] 0. secs (0.u,0.s) +Chars 14267 - 14284 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) +Chars 14285 - 14296 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 14297 - 14315 [specialize~(H2~a).] 0. secs (0.u,0.s) +Chars 14322 - 14340 [genobs~(k2~a)~ok2.] 0. secs (0.u,0.s) +Chars 14341 - 14354 [clear~Heqok2.] 0. secs (0.u,0.s) +Chars 14361 - 14385 [remember~(TauF~t0)~as~y.] 0.001 secs (0.u,0.s) +Chars 14392 - 14452 [hinduction~H2~before~b2;~intro...] 0.33 secs (0.328u,0.001s) +Chars 14459 - 14460 [*] 0. secs (0.u,0.s) +Chars 14462 - 14480 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 14481 - 14492 [now~unstep.] 0. secs (0.u,0.s) +Chars 14500 - 14501 [*] 0. secs (0.u,0.s) +Chars 14502 - 14513 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 14515 - 14526 [now~unstep.] 0. secs (0.u,0.s) +Chars 14534 - 14535 [*] 0. secs (0.u,0.s) +Chars 14536 - 14550 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 14555 - 14556 [+] 0. secs (0.u,0.s) +Chars 14557 - 14572 [now~step~in~H2.] 0. secs (0.u,0.s) +Chars 14573 - 14577 [Qed.] 0.033 secs (0.033u,0.s) +Chars 14579 - 14990 [Lemma~eqit_secure_TauLVisR~:~~...] 0. secs (0.u,0.s) +Chars 14991 - 14997 [Proof.] 0. secs (0.u,0.s) +Chars 15000 - 15056 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) +Chars 15059 - 15072 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 15073 - 15082 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 15085 - 15109 [remember~(TauF~t3)~as~x.] 0. secs (0.u,0.s) +Chars 15110 - 15135 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) +Chars 15138 - 15190 [hinduction~Hsec~before~b2;~int...] 0.002 secs (0.002u,0.s) +Chars 15193 - 15194 [-] 0. secs (0.u,0.s) +Chars 15195 - 15204 [inv~Heqx.] 0.015 secs (0.015u,0.s) +Chars 15205 - 15215 [inv~CHECK.] 0.011 secs (0.011u,0.s) +Chars 15220 - 15245 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) +Chars 15246 - 15251 [step.] 0. secs (0.u,0.s) +Chars 15252 - 15265 [clear~IHHsec.] 0. secs (0.u,0.s) +Chars 15270 - 15394 [hinduction~Hsec~before~b2;~int...] 0.227 secs (0.226u,0.001s) +Chars 15399 - 15400 [+] 0. secs (0.u,0.s) +Chars 15401 - 15419 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 15421 - 15432 [now~unstep.] 0. secs (0.u,0.s) +Chars 15438 - 15439 [+] 0. secs (0.u,0.s) +Chars 15440 - 15451 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 15453 - 15464 [now~unstep.] 0. secs (0.u,0.s) +Chars 15470 - 15471 [+] 0. secs (0.u,0.s) +Chars 15473 - 15490 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 15491 - 15505 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 15508 - 15509 [-] 0. secs (0.u,0.s) +Chars 15510 - 15519 [inv~Heqx.] 0.001 secs (0.001u,0.s) +Chars 15520 - 15529 [inv~Heqy.] 0.001 secs (0.001u,0.s) +Chars 15530 - 15550 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) +Chars 15552 - 15560 [apply~H.] 0. secs (0.u,0.s) +Chars 15563 - 15564 [-] 0. secs (0.u,0.s) +Chars 15565 - 15574 [inv~Heqx.] 0.001 secs (0.001u,0.s) +Chars 15575 - 15584 [inv~Heqy.] 0.002 secs (0.002u,0.s) +Chars 15585 - 15605 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 15606 - 15622 [rewrite~H2~in~H.] 0. secs (0.u,0.s) +Chars 15627 - 15636 [clear~H0.] 0. secs (0.u,0.s) +Chars 15637 - 15649 [clear~H2~t1.] 0. secs (0.u,0.s) +Chars 15650 - 15674 [remember~(TauF~t3)~as~x.] 0. secs (0.u,0.s) +Chars 15679 - 15684 [step.] 0. secs (0.u,0.s) +Chars 15685 - 15702 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 15707 - 15783 [hinduction~H~before~b2;~intros...] 0.161 secs (0.16u,0.001s) +Chars 15788 - 15789 [+] 0. secs (0.u,0.s) +Chars 15791 - 15809 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 15810 - 15821 [now~unstep.] 0. secs (0.u,0.s) +Chars 15827 - 15828 [+] 0. secs (0.u,0.s) +Chars 15830 - 15841 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 15842 - 15853 [now~unstep.] 0. secs (0.u,0.s) +Chars 15859 - 15860 [+] 0. secs (0.u,0.s) +Chars 15861 - 15875 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 15878 - 15879 [-] 0. secs (0.u,0.s) +Chars 15882 - 15891 [inv~Heqx.] 0.001 secs (0.001u,0.s) +Chars 15892 - 15901 [inv~Heqy.] 0.002 secs (0.002u,0.s) +Chars 15902 - 15922 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) +Chars 15923 - 15935 [contra_size.] 0. secs (0.u,0.s) +Chars 15936 - 15940 [Qed.] 0.031 secs (0.031u,0.s) +Chars 15942 - 16331 [Lemma~eqit_secure_TauRVisL~:~~...] 0. secs (0.u,0.s) +Chars 16332 - 16338 [Proof.] 0. secs (0.u,0.s) +Chars 16341 - 16397 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) +Chars 16400 - 16413 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 16414 - 16423 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 16426 - 16450 [remember~(TauF~t3)~as~x.] 0. secs (0.u,0.s) +Chars 16451 - 16476 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) +Chars 16479 - 16531 [hinduction~Hsec~before~b2;~int...] 0.004 secs (0.004u,0.s) +Chars 16534 - 16535 [-] 0. secs (0.u,0.s) +Chars 16536 - 16545 [inv~Heqx.] 0.01 secs (0.01u,0.s) +Chars 16546 - 16556 [inv~CHECK.] 0.013 secs (0.013u,0.s) +Chars 16557 - 16582 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) +Chars 16583 - 16588 [step.] 0. secs (0.u,0.s) +Chars 16589 - 16602 [clear~IHHsec.] 0. secs (0.u,0.s) +Chars 16607 - 16713 [hinduction~Hsec~before~b1;~int...] 0.293 secs (0.291u,0.002s) +Chars 16718 - 16719 [+] 0. secs (0.u,0.s) +Chars 16720 - 16749 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 16751 - 16762 [now~unstep.] 0. secs (0.u,0.s) +Chars 16768 - 16769 [+] 0. secs (0.u,0.s) +Chars 16770 - 16781 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 16783 - 16794 [now~unstep.] 0. secs (0.u,0.s) +Chars 16800 - 16801 [+] 0. secs (0.u,0.s) +Chars 16802 - 16814 [contra_size.] 0. secs (0.u,0.s) +Chars 16819 - 16820 [+] 0. secs (0.u,0.s) +Chars 16821 - 16833 [contra_size.] 0. secs (0.u,0.s) +Chars 16838 - 16839 [+] 0. secs (0.u,0.s) +Chars 16841 - 16858 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 16859 - 16873 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 16876 - 16877 [-] 0. secs (0.u,0.s) +Chars 16878 - 16887 [inv~Heqx.] 0.001 secs (0.001u,0.s) +Chars 16888 - 16897 [inv~Heqy.] 0.001 secs (0.001u,0.s) +Chars 16898 - 16918 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) +Chars 16920 - 16928 [apply~H.] 0. secs (0.u,0.s) +Chars 16931 - 16932 [-] 0. secs (0.u,0.s) +Chars 16933 - 16942 [inv~Heqx.] 0.001 secs (0.001u,0.s) +Chars 16943 - 16952 [inv~Heqy.] 0.002 secs (0.002u,0.s) +Chars 16953 - 16973 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 16975 - 16991 [rewrite~H2~in~H.] 0. secs (0.u,0.s) +Chars 16992 - 17002 [inv~CHECK.] 0.001 secs (0.001u,0.s) +Chars 17007 - 17024 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 17025 - 17030 [step.] 0. secs (0.u,0.s) +Chars 17031 - 17055 [remember~(TauF~t3)~as~y.] 0. secs (0.u,0.s) +Chars 17060 - 17136 [hinduction~H~before~b2;~intros...] 0.203 secs (0.201u,0.001s) +Chars 17141 - 17142 [+] 0. secs (0.u,0.s) +Chars 17144 - 17162 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 17163 - 17174 [now~unstep.] 0. secs (0.u,0.s) +Chars 17180 - 17181 [+] 0. secs (0.u,0.s) +Chars 17183 - 17194 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 17195 - 17206 [now~unstep.] 0. secs (0.u,0.s) +Chars 17212 - 17213 [+] 0. secs (0.u,0.s) +Chars 17214 - 17228 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 17231 - 17232 [-] 0. secs (0.u,0.s) +Chars 17233 - 17242 [inv~Heqx.] 0.001 secs (0.001u,0.s) +Chars 17243 - 17252 [inv~Heqy.] 0.002 secs (0.002u,0.s) +Chars 17253 - 17273 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) +Chars 17274 - 17286 [contra_size.] 0. secs (0.u,0.s) +Chars 17287 - 17291 [Qed.] 0.033 secs (0.033u,0.s) +Chars 17293 - 17790 [Lemma~eqit_secure_VisLR~:~~~fo...] 0. secs (0.u,0.s) +Chars 17791 - 17797 [Proof.] 0. secs (0.u,0.s) +Chars 17800 - 17872 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) +Chars 17875 - 17880 [step.] 0. secs (0.u,0.s) +Chars 17883 - 17894 [step~in~H1.] 0. secs (0.u,0.s) +Chars 17895 - 17904 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 17905 - 17931 [remember~(VisF~e~k2)~as~x.] 0. secs (0.u,0.s) +Chars 17934 - 17960 [remember~(VisF~e0~k)~as~y.] 0. secs (0.u,0.s) +Chars 17963 - 18012 [hinduction~H1~before~l;~intros...] 0.005 secs (0.005u,0.s) +Chars 18015 - 18016 [-] 0. secs (0.u,0.s) +Chars 18017 - 18026 [inv~Heqx.] 0.003 secs (0.003u,0.s) +Chars 18027 - 18036 [inv~Heqy.] 0.003 secs (0.003u,0.s) +Chars 18037 - 18057 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 18058 - 18072 [contradiction.] 0. secs (0.u,0.s) +Chars 18075 - 18076 [-] 0. secs (0.u,0.s) +Chars 18078 - 18087 [inv~Heqx.] 0.003 secs (0.003u,0.s) +Chars 18088 - 18097 [inv~Heqy.] 0.005 secs (0.004u,0.s) +Chars 18098 - 18118 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 18119 - 18130 [now~unstep.] 0. secs (0.u,0.s) +Chars 18134 - 18135 [-] 0. secs (0.u,0.s) +Chars 18136 - 18145 [inv~Heqx.] 0.003 secs (0.003u,0.s) +Chars 18146 - 18166 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 18167 - 18177 [inv~CHECK.] 0.002 secs (0.002u,0.s) +Chars 18178 - 18187 [clear~H0.] 0. secs (0.u,0.s) +Chars 18192 - 18209 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 18214 - 18232 [rewrite~Heqy~in~H.] 0. secs (0.u,0.s) +Chars 18233 - 18244 [clear~Heqy.] 0. secs (0.u,0.s) +Chars 18245 - 18271 [remember~(VisF~e1~k)~as~y.] 0. secs (0.u,0.s) +Chars 18276 - 18395 [hinduction~H~before~l;~intros;...] 0.248 secs (0.247u,0.001s) +Chars 18400 - 18401 [+] 0. secs (0.u,0.s) +Chars 18403 - 18421 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 18422 - 18433 [now~unstep.] 0. secs (0.u,0.s) +Chars 18439 - 18440 [+] 0. secs (0.u,0.s) +Chars 18441 - 18452 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 18454 - 18465 [now~unstep.] 0. secs (0.u,0.s) +Chars 18471 - 18472 [+] 0. secs (0.u,0.s) +Chars 18474 - 18492 [specialize~(H~a0).] 0. secs (0.u,0.s) +Chars 18493 - 18507 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 18510 - 18511 [-] 0. secs (0.u,0.s) +Chars 18512 - 18521 [inv~Heqy.] 0.003 secs (0.003u,0.s) +Chars 18523 - 18543 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) +Chars 18544 - 18554 [inv~CHECK.] 0.002 secs (0.002u,0.s) +Chars 18555 - 18564 [clear~H0.] 0. secs (0.u,0.s) +Chars 18569 - 18587 [rewrite~Heqx~in~H.] 0. secs (0.u,0.s) +Chars 18588 - 18606 [specialize~(H~a0).] 0. secs (0.u,0.s) +Chars 18611 - 18638 [remember~(VisF~e0~k0)~as~y.] 0. secs (0.u,0.s) +Chars 18643 - 18763 [hinduction~H~before~b1;~intros...] 0.257 secs (0.255u,0.001s) +Chars 18768 - 18769 [+] 0. secs (0.u,0.s) +Chars 18771 - 18789 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 18790 - 18801 [now~unstep.] 0. secs (0.u,0.s) +Chars 18807 - 18808 [+] 0. secs (0.u,0.s) +Chars 18810 - 18821 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 18822 - 18833 [now~unstep.] 0. secs (0.u,0.s) +Chars 18839 - 18840 [+] 0. secs (0.u,0.s) +Chars 18842 - 18859 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 18860 - 18874 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 18877 - 18878 [-] 0. secs (0.u,0.s) +Chars 18879 - 18919 [inv~Heqx;~inv~Heqy;~ddestructi...] 0.011 secs (0.01u,0.s) +Chars 18920 - 18932 [contra_size.] 0. secs (0.u,0.s) +Chars 18935 - 18936 [-] 0. secs (0.u,0.s) +Chars 18937 - 18977 [inv~Heqx;~inv~Heqy;~ddestructi...] 0.01 secs (0.01u,0.s) +Chars 18978 - 18990 [contra_size.] 0. secs (0.u,0.s) +Chars 18991 - 18995 [Qed.] 0.063 secs (0.062u,0.s) +Chars 18997 - 19533 [Lemma~eqit_secure_private_VisL...] 0.001 secs (0.001u,0.s) +Chars 19534 - 19540 [Proof.] 0. secs (0.u,0.s) +Chars 19543 - 19550 [intros.] 0. secs (0.u,0.s) +Chars 19551 - 19556 [step.] 0. secs (0.u,0.s) +Chars 19557 - 19561 [cbn.] 0. secs (0.u,0.s) +Chars 19562 - 19572 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 19573 - 19577 [Qed.] 0. secs (0.u,0.s) +Chars 19579 - 20008 [Lemma~eqit_secure_private_VisL...] 0. secs (0.u,0.s) +Chars 20009 - 20015 [Proof.] 0. secs (0.u,0.s) +Chars 20018 - 20025 [intros.] 0. secs (0.u,0.s) +Chars 20026 - 20031 [step.] 0. secs (0.u,0.s) +Chars 20032 - 20036 [cbn.] 0. secs (0.u,0.s) +Chars 20037 - 20048 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 20049 - 20056 [unstep.] 0. secs (0.u,0.s) +Chars 20057 - 20066 [apply~H1.] 0. secs (0.u,0.s) +Chars 20067 - 20071 [Qed.] 0. secs (0.u,0.s) +Chars 20073 - 20501 [Lemma~eqit_secure_private_VisR...] 0. secs (0.u,0.s) +Chars 20502 - 20508 [Proof.] 0. secs (0.u,0.s) +Chars 20511 - 20518 [intros.] 0. secs (0.u,0.s) +Chars 20519 - 20524 [step.] 0. secs (0.u,0.s) +Chars 20525 - 20529 [cbn.] 0. secs (0.u,0.s) +Chars 20530 - 20541 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 20542 - 20549 [unstep.] 0. secs (0.u,0.s) +Chars 20550 - 20559 [apply~H1.] 0. secs (0.u,0.s) +Chars 20560 - 20564 [Qed.] 0. secs (0.u,0.s) +Chars 20566 - 20967 [Lemma~eqit_secure_public_Vis~:...] 0. secs (0.u,0.s) +Chars 20968 - 20974 [Proof.] 0. secs (0.u,0.s) +Chars 20977 - 20991 [split;~intros.] 0. secs (0.u,0.s) +Chars 20994 - 20995 [-] 0. secs (0.u,0.s) +Chars 20996 - 21054 [sinv~H0;~ddestruction;~subst;~...] 0.036 secs (0.036u,0.s) +Chars 21057 - 21058 [-] 0. secs (0.u,0.s) +Chars 21059 - 21064 [step.] 0. secs (0.u,0.s) +Chars 21065 - 21083 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 21085 - 21089 [Qed.] 0.015 secs (0.015u,0.s) +Chars 21091 - 21720 [Lemma~eqit_secure_trans_aux1~:...] 0. secs (0.u,0.s) +Chars 21721 - 21727 [Proof.] 0. secs (0.u,0.s) +Chars 21730 - 21789 [intros~E~R3~R1~Label~priv~l~b2...] 0. secs (0.u,0.s) +Chars 21792 - 21802 [step~in~H.] 0. secs (0.u,0.s) +Chars 21803 - 21812 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 21815 - 21839 [remember~(RetF~r0)~as~x.] 0.001 secs (0.001u,0.s) +Chars 21842 - 21891 [hinduction~Ht23~before~E;~intr...] 0.039 secs (0.039u,0.s) +Chars 21894 - 21895 [-] 0. secs (0.u,0.s) +Chars 21896 - 21920 [remember~(RetF~r1)~as~y.] 0. secs (0.u,0.s) +Chars 21925 - 21984 [hinduction~H0~before~E;~intros...] 0.014 secs (0.014u,0.s) +Chars 21989 - 22008 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 22009 - 22020 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 22021 - 22025 [cbn.] 0. secs (0.u,0.s) +Chars 22026 - 22043 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 22046 - 22047 [-] 0. secs (0.u,0.s) +Chars 22048 - 22069 [eapply~IHHt23;~eauto.] 0. secs (0.u,0.s) +Chars 22074 - 22098 [remember~(TauF~t1)~as~y.] 0. secs (0.u,0.s) +Chars 22103 - 22161 [hinduction~H~before~E;~intros;...] 0.346 secs (0.343u,0.001s) +Chars 22166 - 22167 [+] 0. secs (0.u,0.s) +Chars 22169 - 22187 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 22188 - 22199 [now~unstep.] 0. secs (0.u,0.s) +Chars 22205 - 22206 [+] 0. secs (0.u,0.s) +Chars 22208 - 22219 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 22220 - 22231 [now~unstep.] 0. secs (0.u,0.s) +Chars 22237 - 22238 [+] 0. secs (0.u,0.s) +Chars 22240 - 22254 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 22257 - 22258 [-] 0. secs (0.u,0.s) +Chars 22259 - 22285 [assert~(Hne~:~nonempty~A).] 0. secs (0.u,0.s) +Chars 22286 - 22287 [{] 0. secs (0.u,0.s) +Chars 22288 - 22294 [eauto.] 0. secs (0.u,0.s) +Chars 22295 - 22296 [}] 0. secs (0.u,0.s) +Chars 22349 - 22357 [inv~Hne.] 0.012 secs (0.012u,0.s) +Chars 22358 - 22379 [eapply~(H0~a);~eauto.] 0. secs (0.u,0.s) +Chars 22384 - 22410 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) +Chars 22415 - 22535 [hinduction~H1~before~E;~intros...] 0.436 secs (0.431u,0.002s) +Chars 22540 - 22541 [+] 0. secs (0.u,0.s) +Chars 22543 - 22561 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 22562 - 22573 [now~unstep.] 0. secs (0.u,0.s) +Chars 22579 - 22580 [+] 0. secs (0.u,0.s) +Chars 22582 - 22593 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 22594 - 22605 [now~unstep.] 0. secs (0.u,0.s) +Chars 22611 - 22612 [+] 0. secs (0.u,0.s) +Chars 22614 - 22638 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 22639 - 22650 [now~unstep.] 0. secs (0.u,0.s) +Chars 22652 - 22656 [Qed.] 0.044 secs (0.044u,0.s) +Chars 22658 - 23537 [Lemma~eqit_secure_trans_aux2~:...] 0.001 secs (0.001u,0.s) +Chars 23538 - 23544 [Proof.] 0. secs (0.u,0.s) +Chars 23547 - 23620 [intros~E~R3~R1~Label~priv~l~b2...] 0. secs (0.u,0.s) +Chars 23623 - 23634 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 23635 - 23645 [cbn~in~Ht.] 0. secs (0.u,0.s) +Chars 23646 - 23672 [remember~(VisF~e0~k)~as~x.] 0. secs (0.u,0.s) +Chars 23675 - 23767 [hinduction~Ht23~before~E;~intr...] 0.151 secs (0.15u,0.001s) +Chars 23770 - 23771 [-] 0. secs (0.u,0.s) +Chars 23772 - 23793 [eapply~IHHt23;~eauto.] 0.001 secs (0.001u,0.s) +Chars 23794 - 23807 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 23808 - 23832 [remember~(TauF~t1)~as~y.] 0. secs (0.u,0.s) +Chars 23837 - 23896 [hinduction~Ht~before~E;~intros...] 0.375 secs (0.372u,0.002s) +Chars 23901 - 23902 [+] 0. secs (0.u,0.s) +Chars 23904 - 23922 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 23923 - 23934 [now~unstep.] 0. secs (0.u,0.s) +Chars 23940 - 23941 [+] 0. secs (0.u,0.s) +Chars 23943 - 23954 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 23955 - 23966 [now~unstep.] 0. secs (0.u,0.s) +Chars 23972 - 23973 [+] 0. secs (0.u,0.s) +Chars 23975 - 23989 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 23992 - 23993 [-] 0. secs (0.u,0.s) +Chars 23995 - 24022 [remember~(VisF~e0~k1)~as~y.] 0. secs (0.u,0.s) +Chars 24027 - 24130 [hinduction~Ht~before~E;~intros...] 0.082 secs (0.081u,0.s) +Chars 24135 - 24136 [+] 0. secs (0.u,0.s) +Chars 24138 - 24156 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 24157 - 24164 [intros.] 0. secs (0.u,0.s) +Chars 24165 - 24177 [eapply~CIH0.] 0. secs (0.u,0.s) +Chars 24178 - 24186 [apply~H.] 0. secs (0.u,0.s) +Chars 24187 - 24196 [apply~H0.] 0. secs (0.u,0.s) +Chars 24201 - 24202 [+] 0. secs (0.u,0.s) +Chars 24203 - 24222 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 24223 - 24234 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 24235 - 24252 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 24255 - 24256 [-] 0. secs (0.u,0.s) +Chars 24257 - 24284 [assert~(nonempty~A);~eauto.] 0.002 secs (0.002u,0.s) +Chars 24285 - 24292 [inv~H1.] 0.012 secs (0.012u,0.s) +Chars 24293 - 24310 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 24315 - 24324 [Unshelve.] 0. secs (0.u,0.s) +Chars 24325 - 24336 [all:~auto.] 0. secs (0.u,0.s) +Chars 24337 - 24346 [clear~H0.] 0. secs (0.u,0.s) +Chars 24347 - 24363 [rewrite~H2~in~H.] 0. secs (0.u,0.s) +Chars 24368 - 24394 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) +Chars 24399 - 24519 [hinduction~Ht~before~E;~intros...] 0.416 secs (0.413u,0.003s) +Chars 24524 - 24525 [+] 0. secs (0.u,0.s) +Chars 24527 - 24545 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 24546 - 24557 [now~unstep.] 0. secs (0.u,0.s) +Chars 24563 - 24564 [+] 0. secs (0.u,0.s) +Chars 24566 - 24577 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 24578 - 24589 [now~unstep.] 0. secs (0.u,0.s) +Chars 24595 - 24596 [+] 0. secs (0.u,0.s) +Chars 24598 - 24622 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.013u,0.s) +Chars 24623 - 24634 [now~unstep.] 0. secs (0.u,0.s) +Chars 24637 - 24641 [Qed.] 0.078 secs (0.078u,0.s) +Chars 24644 - 25015 [Lemma~secret_halt_trans_1~:~~~...] 0.001 secs (0.001u,0.s) +Chars 25016 - 25022 [Proof.] 0. secs (0.u,0.s) +Chars 25025 - 25088 [intros~E~Label~priv~l~b1~b2~R1...] 0. secs (0.u,0.s) +Chars 25091 - 25115 [generalize~dependent~t3.] 0. secs (0.u,0.s) +Chars 25116 - 25140 [generalize~dependent~t1.] 0. secs (0.u,0.s) +Chars 25143 - 25162 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 25163 - 25184 [intros~t1~t3~Ht1~Ht3.] 0. secs (0.u,0.s) +Chars 25187 - 25199 [step~in~Ht1.] 0. secs (0.u,0.s) +Chars 25200 - 25212 [step~in~Ht3.] 0. secs (0.u,0.s) +Chars 25213 - 25222 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 25225 - 25250 [remember~(VisF~e~k)~as~x.] 0.001 secs (0.001u,0.s) +Chars 25253 - 25372 [hinduction~Ht1~before~c;~intro...] 0.256 secs (0.254u,0.001s) +Chars 25375 - 25376 [-] 0. secs (0.u,0.s) +Chars 25378 - 25443 [inv~Ht3;~ddestruction;~subst;~...] 0.085 secs (0.084u,0.s) +Chars 25448 - 25449 [+] 0. secs (0.u,0.s) +Chars 25450 - 25462 [constructor.] 0. secs (0.u,0.s) +Chars 25463 - 25479 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 25480 - 25485 [step.] 0. secs (0.u,0.s) +Chars 25486 - 25491 [auto.] 0. secs (0.u,0.s) +Chars 25496 - 25497 [+] 0. secs (0.u,0.s) +Chars 25498 - 25514 [unpriv_co;~auto.] 0.001 secs (0.001u,0.s) +Chars 25515 - 25531 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 25532 - 25537 [step.] 0.001 secs (0.001u,0.s) +Chars 25538 - 25555 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) +Chars 25556 - 25565 [apply~H2.] 0. secs (0.u,0.s) +Chars 25570 - 25571 [+] 0. secs (0.u,0.s) +Chars 25573 - 25585 [constructor.] 0. secs (0.u,0.s) +Chars 25586 - 25602 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 25607 - 25608 [+] 0. secs (0.u,0.s) +Chars 25610 - 25637 [destruct~(classic_empty~B).] 0. secs (0.u,0.s) +Chars 25644 - 25645 [*] 0. secs (0.u,0.s) +Chars 25646 - 25658 [unpriv_halt.] 0.001 secs (0.u,0.s) +Chars 25659 - 25686 [apply~CIH;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 25687 - 25692 [step.] 0. secs (0.u,0.s) +Chars 25701 - 25705 [cbn.] 0. secs (0.u,0.s) +Chars 25706 - 25718 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25725 - 25726 [*] 0. secs (0.u,0.s) +Chars 25727 - 25737 [unpriv_co.] 0. secs (0.u,0.s) +Chars 25738 - 25754 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 25755 - 25764 [apply~H1.] 0. secs (0.u,0.s) +Chars 25769 - 25770 [+] 0. secs (0.u,0.s) +Chars 25772 - 25784 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25785 - 25801 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 25802 - 25807 [step.] 0. secs (0.u,0.s) +Chars 25814 - 25818 [cbn.] 0. secs (0.u,0.s) +Chars 25819 - 25831 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25832 - 25844 [contra_size.] 0. secs (0.u,0.s) +Chars 25847 - 25848 [-] 0. secs (0.u,0.s) +Chars 25851 - 25916 [inv~Ht3;~ddestruction;~subst;~...] 0.086 secs (0.086u,0.s) +Chars 25921 - 25922 [+] 0. secs (0.u,0.s) +Chars 25923 - 25935 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25936 - 25952 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 25959 - 25960 [*] 0. secs (0.u,0.s) +Chars 25961 - 25966 [step.] 0. secs (0.u,0.s) +Chars 25967 - 25971 [cbn.] 0. secs (0.u,0.s) +Chars 25972 - 25984 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 25991 - 25992 [*] 0. secs (0.u,0.s) +Chars 25993 - 25998 [step.] 0. secs (0.u,0.s) +Chars 25999 - 26004 [auto.] 0. secs (0.u,0.s) +Chars 26009 - 26010 [+] 0. secs (0.u,0.s) +Chars 26011 - 26023 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26024 - 26040 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26047 - 26048 [*] 0. secs (0.u,0.s) +Chars 26049 - 26054 [step.] 0. secs (0.u,0.s) +Chars 26055 - 26059 [cbn.] 0. secs (0.u,0.s) +Chars 26060 - 26072 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26079 - 26080 [*] 0. secs (0.u,0.s) +Chars 26081 - 26086 [step.] 0. secs (0.u,0.s) +Chars 26087 - 26092 [auto.] 0. secs (0.u,0.s) +Chars 26093 - 26110 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) +Chars 26111 - 26120 [apply~H2.] 0. secs (0.u,0.s) +Chars 26125 - 26126 [+] 0. secs (0.u,0.s) +Chars 26128 - 26140 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26141 - 26157 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26164 - 26169 [step.] 0. secs (0.u,0.s) +Chars 26170 - 26174 [cbn.] 0. secs (0.u,0.s) +Chars 26175 - 26187 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26192 - 26193 [+] 0. secs (0.u,0.s) +Chars 26195 - 26207 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26208 - 26218 [apply~CIH.] 0. secs (0.u,0.s) +Chars 26225 - 26226 [*] 0. secs (0.u,0.s) +Chars 26227 - 26232 [step.] 0. secs (0.u,0.s) +Chars 26233 - 26237 [cbn.] 0. secs (0.u,0.s) +Chars 26238 - 26250 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26257 - 26258 [*] 0. secs (0.u,0.s) +Chars 26259 - 26268 [apply~H1.] 0. secs (0.u,0.s) +Chars 26273 - 26274 [+] 0. secs (0.u,0.s) +Chars 26275 - 26287 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26288 - 26300 [contra_size.] 0. secs (0.u,0.s) +Chars 26303 - 26304 [-] 0. secs (0.u,0.s) +Chars 26306 - 26404 [inv~Ht3;~ddestruction;~subst;~...] 0.087 secs (0.087u,0.s) +Chars 26409 - 26410 [+] 0. secs (0.u,0.s) +Chars 26411 - 26423 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26424 - 26440 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26447 - 26448 [*] 0. secs (0.u,0.s) +Chars 26449 - 26454 [step.] 0. secs (0.u,0.s) +Chars 26455 - 26459 [cbn.] 0. secs (0.u,0.s) +Chars 26460 - 26472 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26473 - 26485 [contra_size.] 0. secs (0.u,0.s) +Chars 26492 - 26493 [*] 0. secs (0.u,0.s) +Chars 26494 - 26499 [step.] 0. secs (0.u,0.s) +Chars 26500 - 26505 [auto.] 0. secs (0.u,0.s) +Chars 26510 - 26511 [+] 0. secs (0.u,0.s) +Chars 26512 - 26522 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 26523 - 26552 [apply~CIH;~auto;~try~apply~H.] 0. secs (0.u,0.s) +Chars 26559 - 26564 [step.] 0. secs (0.u,0.s) +Chars 26565 - 26570 [auto.] 0. secs (0.u,0.s) +Chars 26575 - 26576 [+] 0. secs (0.u,0.s) +Chars 26577 - 26589 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26590 - 26606 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26613 - 26614 [*] 0. secs (0.u,0.s) +Chars 26615 - 26620 [step.] 0. secs (0.u,0.s) +Chars 26621 - 26625 [cbn.] 0. secs (0.u,0.s) +Chars 26626 - 26638 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26639 - 26651 [contra_size.] 0. secs (0.u,0.s) +Chars 26658 - 26659 [*] 0. secs (0.u,0.s) +Chars 26660 - 26665 [step.] 0. secs (0.u,0.s) +Chars 26666 - 26683 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) +Chars 26684 - 26693 [apply~H2.] 0. secs (0.u,0.s) +Chars 26698 - 26699 [+] 0. secs (0.u,0.s) +Chars 26700 - 26710 [unpriv_co.] 0.004 secs (0.004u,0.s) +Chars 26711 - 26721 [apply~CIH.] 0. secs (0.u,0.s) +Chars 26722 - 26730 [apply~H.] 0. secs (0.u,0.s) +Chars 26731 - 26748 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) +Chars 26755 - 26760 [step.] 0. secs (0.u,0.s) +Chars 26761 - 26770 [apply~H2.] 0. secs (0.u,0.s) +Chars 26775 - 26776 [+] 0. secs (0.u,0.s) +Chars 26778 - 26790 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26791 - 26807 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26808 - 26813 [step.] 0. secs (0.u,0.s) +Chars 26820 - 26824 [cbn.] 0. secs (0.u,0.s) +Chars 26825 - 26837 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26838 - 26850 [contra_size.] 0. secs (0.u,0.s) +Chars 26855 - 26856 [+] 0. secs (0.u,0.s) +Chars 26858 - 26868 [unpriv_co.] 0. secs (0.u,0.s) +Chars 26869 - 26885 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 26886 - 26894 [apply~H.] 0. secs (0.u,0.s) +Chars 26899 - 26900 [+] 0. secs (0.u,0.s) +Chars 26901 - 26913 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26914 - 26938 [apply~CIH;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 26945 - 26950 [step.] 0. secs (0.u,0.s) +Chars 26951 - 26955 [cbn.] 0. secs (0.u,0.s) +Chars 26956 - 26968 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 26969 - 26981 [contra_size.] 0. secs (0.u,0.s) +Chars 26986 - 26987 [+] 0. secs (0.u,0.s) +Chars 26989 - 27016 [destruct~(classic_empty~B).] 0. secs (0.u,0.s) +Chars 27023 - 27024 [*] 0. secs (0.u,0.s) +Chars 27025 - 27037 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 27038 - 27054 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 27055 - 27063 [apply~H.] 0. secs (0.u,0.s) +Chars 27072 - 27077 [step.] 0. secs (0.u,0.s) +Chars 27078 - 27082 [cbn.] 0. secs (0.u,0.s) +Chars 27083 - 27095 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 27102 - 27103 [*] 0. secs (0.u,0.s) +Chars 27104 - 27114 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 27115 - 27132 [apply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 27133 - 27141 [apply~H.] 0. secs (0.u,0.s) +Chars 27142 - 27151 [apply~H1.] 0. secs (0.u,0.s) +Chars 27156 - 27157 [+] 0. secs (0.u,0.s) +Chars 27159 - 27171 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 27172 - 27184 [contra_size.] 0. secs (0.u,0.s) +Chars 27189 - 27190 [+] 0. secs (0.u,0.s) +Chars 27192 - 27204 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 27205 - 27221 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 27222 - 27230 [apply~H.] 0. secs (0.u,0.s) +Chars 27237 - 27242 [step.] 0. secs (0.u,0.s) +Chars 27243 - 27247 [cbn.] 0. secs (0.u,0.s) +Chars 27248 - 27260 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 27261 - 27273 [contra_size.] 0.001 secs (0.001u,0.s) +Chars 27274 - 27278 [Qed.] 0.105 secs (0.103u,0.001s) +Chars 27280 - 27652 [Lemma~secret_halt_trans_2~:~~~...] 0.001 secs (0.001u,0.s) +Chars 27653 - 27659 [Proof.] 0. secs (0.u,0.s) +Chars 27662 - 27725 [intros~E~Label~priv~l~b1~b2~R1...] 0. secs (0.u,0.s) +Chars 27728 - 27752 [generalize~dependent~t3.] 0. secs (0.u,0.s) +Chars 27753 - 27777 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 27780 - 27799 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 27800 - 27822 [intros~t2~t3~Ht2~Ht23.] 0. secs (0.u,0.s) +Chars 27825 - 27837 [step~in~Ht2.] 0. secs (0.u,0.s) +Chars 27838 - 27851 [step~in~Ht23.] 0. secs (0.u,0.s) +Chars 27852 - 27861 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 27864 - 27915 [hinduction~Ht23~before~c;~intr...] 0.501 secs (0.497u,0.003s) +Chars 27918 - 27919 [-] 0. secs (0.u,0.s) +Chars 27920 - 27928 [inv~Ht2.] 0.012 secs (0.012u,0.s) +Chars 27929 - 27949 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) +Chars 27950 - 27962 [contra_size.] 0.003 secs (0.003u,0.s) +Chars 27965 - 27966 [-] 0. secs (0.u,0.s) +Chars 27967 - 27979 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 27980 - 27998 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 28003 - 28077 [inv~Ht2;~ddestruction;~subst;~...] 0.037 secs (0.036u,0.s) +Chars 28082 - 28087 [step.] 0. secs (0.u,0.s) +Chars 28088 - 28093 [auto.] 0. secs (0.u,0.s) +Chars 28096 - 28097 [-] 0. secs (0.u,0.s) +Chars 28098 - 28119 [eapply~IHHt23;~eauto.] 0. secs (0.u,0.s) +Chars 28124 - 28197 [inv~Ht2;~ddestruction;~subst;~...] 0.089 secs (0.088u,0.s) +Chars 28202 - 28213 [step~in~H0.] 0. secs (0.u,0.s) +Chars 28214 - 28219 [auto.] 0. secs (0.u,0.s) +Chars 28222 - 28223 [-] 0. secs (0.u,0.s) +Chars 28228 - 28301 [inv~Ht2;~ddestruction;~subst;~...] 0.058 secs (0.058u,0.s) +Chars 28304 - 28305 [-] 0. secs (0.u,0.s) +Chars 28306 - 28318 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 28321 - 28335 [inv~SIZECHECK.] 0.015 secs (0.015u,0.s) +Chars 28336 - 28360 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) +Chars 28365 - 28374 [Unshelve.] 0. secs (0.u,0.s) +Chars 28375 - 28386 [all:~auto.] 0. secs (0.u,0.s) +Chars 28391 - 28464 [inv~Ht2;~ddestruction;~subst;~...] 0.05 secs (0.049u,0.s) +Chars 28469 - 28470 [+] 0. secs (0.u,0.s) +Chars 28471 - 28476 [step.] 0. secs (0.u,0.s) +Chars 28477 - 28486 [apply~H2.] 0. secs (0.u,0.s) +Chars 28491 - 28492 [+] 0. secs (0.u,0.s) +Chars 28493 - 28502 [apply~H1.] 0. secs (0.u,0.s) +Chars 28505 - 28506 [-] 0. secs (0.u,0.s) +Chars 28508 - 28520 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 28521 - 28545 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) +Chars 28550 - 28623 [inv~Ht2;~ddestruction;~subst;~...] 0.04 secs (0.04u,0.s) +Chars 28628 - 28633 [step.] 0. secs (0.u,0.s) +Chars 28634 - 28639 [auto.] 0. secs (0.u,0.s) +Chars 28642 - 28643 [-] 0. secs (0.u,0.s) +Chars 28645 - 28657 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 28658 - 28673 [inv~SIZECHECK1.] 0.015 secs (0.015u,0.s) +Chars 28674 - 28689 [inv~SIZECHECK2.] 0.016 secs (0.016u,0.s) +Chars 28690 - 28714 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) +Chars 28719 - 28728 [Unshelve.] 0. secs (0.u,0.s) +Chars 28729 - 28740 [all:~auto.] 0. secs (0.u,0.s) +Chars 28745 - 28818 [inv~Ht2;~ddestruction;~subst;~...] 0.051 secs (0.05u,0.s) +Chars 28823 - 28824 [+] 0. secs (0.u,0.s) +Chars 28825 - 28830 [step.] 0. secs (0.u,0.s) +Chars 28831 - 28840 [apply~H2.] 0. secs (0.u,0.s) +Chars 28845 - 28846 [+] 0. secs (0.u,0.s) +Chars 28847 - 28856 [apply~H1.] 0. secs (0.u,0.s) +Chars 28859 - 28860 [-] 0. secs (0.u,0.s) +Chars 28861 - 28875 [inv~SIZECHECK.] 0.019 secs (0.019u,0.s) +Chars 28877 - 28894 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 28895 - 28904 [Unshelve.] 0. secs (0.u,0.s) +Chars 28905 - 28916 [all:~auto.] 0. secs (0.u,0.s) +Chars 28921 - 28994 [inv~Ht2;~ddestruction;~subst;~...] 0.065 secs (0.065u,0.s) +Chars 28999 - 29023 [rewrite~itree_eta'~~at~1.] 0.017 secs (0.017u,0.s) +Chars 29024 - 29035 [now~unstep.] 0. secs (0.u,0.s) +Chars 29038 - 29039 [-] 0. secs (0.u,0.s) +Chars 29040 - 29052 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 29053 - 29071 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 29072 - 29077 [step.] 0. secs (0.u,0.s) +Chars 29078 - 29088 [apply~Ht2.] 0. secs (0.u,0.s) +Chars 29093 - 29098 [step.] 0. secs (0.u,0.s) +Chars 29099 - 29107 [apply~H.] 0. secs (0.u,0.s) +Chars 29110 - 29111 [-] 0. secs (0.u,0.s) +Chars 29113 - 29125 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 29126 - 29144 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 29145 - 29150 [step.] 0. secs (0.u,0.s) +Chars 29151 - 29156 [auto.] 0. secs (0.u,0.s) +Chars 29159 - 29160 [-] 0. secs (0.u,0.s) +Chars 29161 - 29173 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 29174 - 29186 [contra_size.] 0. secs (0.u,0.s) +Chars 29189 - 29190 [-] 0. secs (0.u,0.s) +Chars 29191 - 29203 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 29204 - 29245 [eapply~CIH~with~(t2~:=~Vis~e1~...] 0. secs (0.u,0.s) +Chars 29250 - 29251 [+] 0. secs (0.u,0.s) +Chars 29252 - 29257 [step.] 0. secs (0.u,0.s) +Chars 29258 - 29263 [auto.] 0. secs (0.u,0.s) +Chars 29268 - 29269 [+] 0. secs (0.u,0.s) +Chars 29270 - 29278 [apply~H.] 0. secs (0.u,0.s) +Chars 29281 - 29282 [-] 0. secs (0.u,0.s) +Chars 29283 - 29295 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 29296 - 29308 [contra_size.] 0. secs (0.u,0.s) +Chars 29309 - 29313 [Qed.] 0.122 secs (0.121u,0.001s) +Chars 29315 - 29600 [Lemma~eqit_secure_RR_imp~:~~~f...] 0. secs (0.u,0.s) +Chars 29601 - 29607 [Proof.] 0. secs (0.u,0.s) +Chars 29610 - 29617 [intros.] 0. secs (0.u,0.s) +Chars 29618 - 29642 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 29643 - 29653 [revert~t1.] 0. secs (0.u,0.s) +Chars 29656 - 29675 [icoinduction~c~CIH.] 0.002 secs (0.001u,0.s) +Chars 29676 - 29694 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) +Chars 29697 - 29710 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 29711 - 29720 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 29723 - 29887 [hinduction~Ht12~before~c;~intr...] 0.037 secs (0.037u,0.s) +Chars 29891 - 29909 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 29910 - 29917 [intros.] 0. secs (0.u,0.s) +Chars 29918 - 29936 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 29937 - 29946 [apply~H0.] 0. secs (0.u,0.s) +Chars 29949 - 29950 [-] 0. secs (0.u,0.s) +Chars 29952 - 29964 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 29965 - 29983 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 29984 - 29993 [apply~H0.] 0. secs (0.u,0.s) +Chars 29996 - 29997 [-] 0. secs (0.u,0.s) +Chars 29999 - 30011 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 30012 - 30030 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 30031 - 30040 [apply~H0.] 0. secs (0.u,0.s) +Chars 30041 - 30045 [Qed.] 0.004 secs (0.004u,0.s) +Chars 30047 - 30420 [Lemma~secret_halt_trans_3~:~~~...] 0.001 secs (0.001u,0.s) +Chars 30421 - 30427 [Proof.] 0. secs (0.u,0.s) +Chars 30430 - 30437 [intros.] 0. secs (0.u,0.s) +Chars 30438 - 30466 [apply~eqit_secure_sym~in~H1.] 0. secs (0.u,0.s) +Chars 30467 - 30495 [apply~eqit_secure_sym~in~H2.] 0. secs (0.u,0.s) +Chars 30498 - 30520 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 30521 - 30561 [eapply~secret_halt_trans_2~in~...] 0. secs (0.u,0.s) +Chars 30564 - 30597 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) +Chars 30600 - 30607 [intros.] 0. secs (0.u,0.s) +Chars 30608 - 30615 [inv~H3.] 0. secs (0.u,0.s) +Chars 30616 - 30636 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 30637 - 30641 [Qed.] 0. secs (0.u,0.s) +Chars 30643 - 30988 [Lemma~eqit_secure_trans~:~~~fo...] 0. secs (0.u,0.s) +Chars 30989 - 30995 [Proof.] 0. secs (0.u,0.s) +Chars 30998 - 31043 [intros~E~Label~priv~l~b1~b2~R1...] 0. secs (0.u,0.s) +Chars 31046 - 31066 [icoinduction~c~CIH0.] 0. secs (0.u,0.s) +Chars 31067 - 31093 [intros~t1~t2~t3~Ht12~Ht23.] 0. secs (0.u,0.s) +Chars 31096 - 31109 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 31110 - 31123 [step~in~Ht23.] 0. secs (0.u,0.s) +Chars 31127 - 31177 [hinduction~Ht12~before~E;~intr...] 0.014 secs (0.014u,0.s) +Chars 31180 - 31181 [-] 0. secs (0.u,0.s) +Chars 31182 - 31206 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) +Chars 31211 - 31272 [hinduction~Ht23~before~E;~intr...] 0.021 secs (0.021u,0.s) +Chars 31277 - 31301 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 31302 - 31313 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 31314 - 31331 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 31334 - 31335 [-] 0. secs (0.u,0.s) +Chars 31337 - 31351 [genobs~t4~ot4.] 0. secs (0.u,0.s) +Chars 31356 - 31425 [assert~((exists~t5,~ot4~=~TauF...] 0. secs (0.u,0.s) +Chars 31430 - 31431 [{] 0. secs (0.u,0.s) +Chars 31432 - 31481 [destruct~ot4;~eauto;~right;~in...] 0.005 secs (0.005u,0.s) +Chars 31482 - 31483 [}] 0. secs (0.u,0.s) +Chars 31488 - 31521 [destruct~H0~as~[[t5~Ht4]|~Ht4].] 0. secs (0.u,0.s) +Chars 31526 - 31527 [+] 0. secs (0.u,0.s) +Chars 31528 - 31534 [subst.] 0. secs (0.u,0.s) +Chars 31535 - 31547 [rewrite~Ht4.] 0. secs (0.u,0.s) +Chars 31548 - 31568 [rewrite~Ht4~in~Ht23.] 0. secs (0.u,0.s) +Chars 31569 - 31581 [constructor.] 0. secs (0.u,0.s) +Chars 31588 - 31607 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 31608 - 31633 [eapply~eqit_secure_TauLR.] 0. secs (0.u,0.s) +Chars 31634 - 31639 [step.] 0. secs (0.u,0.s) +Chars 31646 - 31651 [auto.] 0. secs (0.u,0.s) +Chars 31656 - 31657 [+] 0. secs (0.u,0.s) +Chars 31658 - 31714 [destruct~ot4;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) +Chars 31721 - 31722 [*] 0. secs (0.u,0.s) +Chars 31723 - 31732 [inv~Ht23.] 0.018 secs (0.018u,0.s) +Chars 31733 - 31743 [inv~CHECK.] 0.012 secs (0.011u,0.s) +Chars 31744 - 31768 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 31777 - 31857 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) +Chars 31866 - 31867 [{] 0. secs (0.u,0.s) +Chars 31868 - 31873 [step.] 0. secs (0.u,0.s) +Chars 31874 - 31878 [cbn.] 0. secs (0.u,0.s) +Chars 31879 - 31903 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) +Chars 31904 - 31941 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) +Chars 31952 - 31957 [step.] 0. secs (0.u,0.s) +Chars 31958 - 31976 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 31977 - 31988 [now~unstep.] 0. secs (0.u,0.s) +Chars 31989 - 31990 [}] 0. secs (0.u,0.s) +Chars 31999 - 32018 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 32028 - 32037 [now~step.] 0. secs (0.u,0.s) +Chars 32045 - 32046 [*] 0. secs (0.u,0.s) +Chars 32047 - 32087 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 32096 - 32098 [--] 0. secs (0.u,0.s) +Chars 32099 - 32148 [inv~Ht23;~ddestruction;~subst;...] 0.045 secs (0.044u,0.s) +Chars 32160 - 32178 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 32179 - 32189 [inv~CHECK.] 0.018 secs (0.018u,0.s) +Chars 32202 - 32239 [eapply~eqit_secure_trans_aux2;...] 0. secs (0.u,0.s) +Chars 32248 - 32250 [--] 0. secs (0.u,0.s) +Chars 32251 - 32278 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 32290 - 32292 [++] 0. secs (0.u,0.s) +Chars 32293 - 32312 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 32313 - 32337 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 32352 - 32357 [step.] 0. secs (0.u,0.s) +Chars 32373 - 32427 [eapply~secret_halt_trans_3~wit...] 0. secs (0.u,0.s) +Chars 32442 - 32444 [**] 0. secs (0.u,0.s) +Chars 32445 - 32467 [now~step;~constructor.] 0. secs (0.u,0.s) +Chars 32482 - 32484 [**] 0. secs (0.u,0.s) +Chars 32485 - 32494 [now~step.] 0. secs (0.u,0.s) +Chars 32506 - 32508 [++] 0. secs (0.u,0.s) +Chars 32509 - 32519 [unpriv_co.] 0. secs (0.u,0.s) +Chars 32520 - 32539 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 32554 - 32617 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) +Chars 32632 - 32637 [step.] 0. secs (0.u,0.s) +Chars 32638 - 32643 [auto.] 0. secs (0.u,0.s) +Chars 32644 - 32679 [eapply~eqit_secure_TauLVisR;~e...] 0. secs (0.u,0.s) +Chars 32682 - 32683 [-] 0. secs (0.u,0.s) +Chars 32684 - 32703 [apply~IHHt12;~auto.] 0. secs (0.u,0.s) +Chars 32708 - 32732 [remember~(TauF~t0)~as~y.] 0.001 secs (0.001u,0.s) +Chars 32737 - 32798 [hinduction~Ht23~before~E;~intr...] 0.313 secs (0.312u,0.001s) +Chars 32803 - 32804 [+] 0. secs (0.u,0.s) +Chars 32806 - 32824 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 32825 - 32836 [now~unstep.] 0. secs (0.u,0.s) +Chars 32842 - 32843 [+] 0. secs (0.u,0.s) +Chars 32845 - 32856 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 32857 - 32868 [now~unstep.] 0. secs (0.u,0.s) +Chars 32874 - 32875 [+] 0. secs (0.u,0.s) +Chars 32877 - 32891 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 32894 - 32895 [-] 0. secs (0.u,0.s) +Chars 32897 - 32923 [remember~(VisF~e~k2)~as~x.] 0.001 secs (0.001u,0.s) +Chars 32928 - 33033 [hinduction~Ht23~before~E;~intr...] 0.091 secs (0.09u,0.s) +Chars 33038 - 33039 [+] 0. secs (0.u,0.s) +Chars 33041 - 33059 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 33060 - 33067 [intros.] 0. secs (0.u,0.s) +Chars 33068 - 33101 [eapply~CIH0;~eauto;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 33108 - 33116 [apply~H.] 0. secs (0.u,0.s) +Chars 33121 - 33122 [+] 0. secs (0.u,0.s) +Chars 33123 - 33147 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 33148 - 33159 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 33160 - 33177 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 33180 - 33181 [-] 0. secs (0.u,0.s) +Chars 33183 - 33207 [remember~(TauF~t0)~as~x.] 0.001 secs (0.001u,0.s) +Chars 33212 - 33261 [hinduction~Ht23~before~E;~intr...] 0.047 secs (0.046u,0.s) +Chars 33266 - 33267 [+] 0. secs (0.u,0.s) +Chars 33269 - 33279 [unpriv_co.] 0. secs (0.u,0.s) +Chars 33280 - 33306 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 33313 - 33318 [auto.] 0. secs (0.u,0.s) +Chars 33323 - 33324 [+] 0. secs (0.u,0.s) +Chars 33325 - 33338 [destruct~ot2.] 0. secs (0.u,0.s) +Chars 33345 - 33346 [*] 0. secs (0.u,0.s) +Chars 33347 - 33360 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 33361 - 33380 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 33381 - 33392 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 33401 - 33422 [remember~(k1~a)~as~t.] 0. secs (0.u,0.s) +Chars 33423 - 33440 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 33441 - 33469 [setoid_rewrite~~<-~Heqt~in~H.] 0.01 secs (0.01u,0.s) +Chars 33478 - 33494 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) +Chars 33495 - 33499 [cbn.] 0. secs (0.u,0.s) +Chars 33500 - 33510 [inv~CHECK.] 0.011 secs (0.011u,0.s) +Chars 33511 - 33548 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) +Chars 33555 - 33556 [*] 0. secs (0.u,0.s) +Chars 33557 - 33567 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 33568 - 33593 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) +Chars 33602 - 33615 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 33616 - 33639 [remember~(TauF~t)~as~y.] 0. secs (0.u,0.s) +Chars 33648 - 33653 [step.] 0. secs (0.u,0.s) +Chars 33662 - 33723 [hinduction~Ht23~before~E;~intr...] 0.244 secs (0.243u,0.001s) +Chars 33732 - 33734 [--] 0. secs (0.u,0.s) +Chars 33736 - 33754 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 33755 - 33766 [now~unstep.] 0. secs (0.u,0.s) +Chars 33776 - 33778 [--] 0. secs (0.u,0.s) +Chars 33780 - 33791 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 33792 - 33803 [now~unstep.] 0. secs (0.u,0.s) +Chars 33813 - 33815 [--] 0. secs (0.u,0.s) +Chars 33816 - 33830 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 33837 - 33838 [*] 0. secs (0.u,0.s) +Chars 33839 - 33880 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 33889 - 33891 [--] 0. secs (0.u,0.s) +Chars 33892 - 33911 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 33912 - 33923 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 33924 - 33928 [cbn.] 0. secs (0.u,0.s) +Chars 33940 - 33953 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 33954 - 33975 [remember~(k1~a)~as~t.] 0. secs (0.u,0.s) +Chars 33976 - 33993 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 33994 - 34022 [setoid_rewrite~~<-~Heqt~in~H.] 0.011 secs (0.011u,0.s) +Chars 34034 - 34050 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) +Chars 34051 - 34061 [inv~CHECK.] 0.016 secs (0.016u,0.s) +Chars 34062 - 34099 [eapply~eqit_secure_trans_aux2;...] 0. secs (0.u,0.s) +Chars 34108 - 34110 [--] 0. secs (0.u,0.s) +Chars 34111 - 34138 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 34150 - 34152 [++] 0. secs (0.u,0.s) +Chars 34153 - 34172 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 34173 - 34184 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 34185 - 34190 [step.] 0. secs (0.u,0.s) +Chars 34206 - 34240 [eapply~secret_halt_trans_3;~ea...] 0.001 secs (0.001u,0.s) +Chars 34241 - 34249 [apply~H.] 0. secs (0.u,0.s) +Chars 34264 - 34273 [now~step.] 0. secs (0.u,0.s) +Chars 34286 - 34288 [++] 0. secs (0.u,0.s) +Chars 34289 - 34299 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 34300 - 34312 [eapply~CIH0.] 0. secs (0.u,0.s) +Chars 34313 - 34321 [apply~H.] 0. secs (0.u,0.s) +Chars 34336 - 34349 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 34350 - 34355 [step.] 0. secs (0.u,0.s) +Chars 34356 - 34382 [remember~(VisF~e0~k)~as~y.] 0.001 secs (0.001u,0.s) +Chars 34397 - 34531 [hinduction~Ht23~before~E;~intr...] 0.364 secs (0.362u,0.001s) +Chars 34546 - 34548 [**] 0. secs (0.u,0.s) +Chars 34550 - 34568 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 34569 - 34580 [now~unstep.] 0. secs (0.u,0.s) +Chars 34596 - 34598 [**] 0. secs (0.u,0.s) +Chars 34599 - 34610 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 34612 - 34623 [now~unstep.] 0. secs (0.u,0.s) +Chars 34639 - 34641 [**] 0. secs (0.u,0.s) +Chars 34643 - 34667 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 34668 - 34679 [now~unstep.] 0. secs (0.u,0.s) +Chars 34685 - 34686 [+] 0. secs (0.u,0.s) +Chars 34687 - 34705 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 34706 - 34727 [eapply~IHHt23;~eauto.] 0.001 secs (0.001u,0.s) +Chars 34732 - 34733 [+] 0. secs (0.u,0.s) +Chars 34735 - 34745 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 34746 - 34772 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 34773 - 34781 [apply~H.] 0. secs (0.u,0.s) +Chars 34786 - 34787 [+] 0. secs (0.u,0.s) +Chars 34788 - 34812 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 34813 - 34824 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 34825 - 34842 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 34847 - 34848 [+] 0. secs (0.u,0.s) +Chars 34849 - 34861 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 34863 - 34882 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 34883 - 34892 [apply~H0.] 0. secs (0.u,0.s) +Chars 34895 - 34896 [-] 0. secs (0.u,0.s) +Chars 34902 - 34922 [genobs_clear~t3~ot3.] 0. secs (0.u,0.s) +Chars 34927 - 34960 [assert~(Hne~:~nonempty~A);~eauto.] 0. secs (0.u,0.s) +Chars 34961 - 34969 [inv~Hne.] 0.014 secs (0.014u,0.s) +Chars 34974 - 35043 [assert~((exists~t4,~ot3~=~TauF...] 0. secs (0.u,0.s) +Chars 35048 - 35049 [{] 0. secs (0.u,0.s) +Chars 35050 - 35099 [destruct~ot3;~eauto;~right;~in...] 0.012 secs (0.012u,0.s) +Chars 35100 - 35101 [}] 0. secs (0.u,0.s) +Chars 35106 - 35139 [destruct~H0~as~[[t4~Ht3]|~Ht3].] 0. secs (0.u,0.s) +Chars 35144 - 35145 [+] 0. secs (0.u,0.s) +Chars 35146 - 35152 [subst.] 0. secs (0.u,0.s) +Chars 35153 - 35165 [constructor.] 0. secs (0.u,0.s) +Chars 35166 - 35191 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) +Chars 35198 - 35207 [Unshelve.] 0. secs (0.u,0.s) +Chars 35208 - 35218 [all:~auto.] 0. secs (0.u,0.s) +Chars 35225 - 35260 [eapply~eqit_secure_TauRVisL;~e...] 0. secs (0.u,0.s) +Chars 35261 - 35266 [step.] 0. secs (0.u,0.s) +Chars 35267 - 35272 [auto.] 0. secs (0.u,0.s) +Chars 35277 - 35278 [+] 0. secs (0.u,0.s) +Chars 35285 - 35341 [destruct~ot3;~try~(exfalso;~ea...] 0. secs (0.u,0.s) +Chars 35348 - 35349 [*] 0. secs (0.u,0.s) +Chars 35350 - 35370 [inv~Ht23;~inv~CHECK.] 0.019 secs (0.019u,0.s) +Chars 35371 - 35384 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 35385 - 35396 [clear~CIH0.] 0. secs (0.u,0.s) +Chars 35405 - 35423 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 35424 - 35435 [rewrite~H4.] 0. secs (0.u,0.s) +Chars 35436 - 35479 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) +Chars 35488 - 35502 [rewrite~<-~H4.] 0. secs (0.u,0.s) +Chars 35503 - 35512 [apply~H1.] 0. secs (0.u,0.s) +Chars 35513 - 35522 [Unshelve.] 0. secs (0.u,0.s) +Chars 35523 - 35528 [auto.] 0. secs (0.u,0.s) +Chars 35535 - 35536 [*] 0. secs (0.u,0.s) +Chars 35537 - 35549 [constructor.] 0. secs (0.u,0.s) +Chars 35550 - 35575 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) +Chars 35584 - 35619 [eapply~eqit_secure_TauRVisL;~e...] 0. secs (0.u,0.s) +Chars 35620 - 35625 [step.] 0. secs (0.u,0.s) +Chars 35626 - 35631 [auto.] 0. secs (0.u,0.s) +Chars 35638 - 35639 [*] 0. secs (0.u,0.s) +Chars 35640 - 35681 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 35690 - 35692 [--] 0. secs (0.u,0.s) +Chars 35693 - 35742 [inv~Ht23;~ddestruction;~subst;...] 0.061 secs (0.06u,0.s) +Chars 35754 - 35772 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 35773 - 35784 [rewrite~H5.] 0. secs (0.u,0.s) +Chars 35785 - 35795 [inv~CHECK.] 0.003 secs (0.003u,0.s) +Chars 35808 - 35866 [eapply~eqit_secure_trans_aux2;...] 0. secs (0.u,0.s) +Chars 35878 - 35892 [rewrite~<-~H5.] 0. secs (0.u,0.s) +Chars 35893 - 35902 [apply~H2.] 0. secs (0.u,0.s) +Chars 35903 - 35912 [Unshelve.] 0. secs (0.u,0.s) +Chars 35913 - 35924 [all:~auto.] 0. secs (0.u,0.s) +Chars 35933 - 35935 [--] 0. secs (0.u,0.s) +Chars 35936 - 35963 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 35975 - 35977 [++] 0. secs (0.u,0.s) +Chars 35978 - 35997 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 35998 - 36022 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 36023 - 36028 [step.] 0. secs (0.u,0.s) +Chars 36044 - 36100 [eapply~secret_halt_trans_3~wit...] 0. secs (0.u,0.s) +Chars 36115 - 36117 [**] 0. secs (0.u,0.s) +Chars 36118 - 36123 [step.] 0. secs (0.u,0.s) +Chars 36124 - 36128 [cbn.] 0. secs (0.u,0.s) +Chars 36129 - 36139 [unpriv_co.] 0. secs (0.u,0.s) +Chars 36154 - 36156 [**] 0. secs (0.u,0.s) +Chars 36157 - 36166 [now~step.] 0. secs (0.u,0.s) +Chars 36179 - 36181 [++] 0. secs (0.u,0.s) +Chars 36182 - 36192 [unpriv_co.] 0. secs (0.u,0.s) +Chars 36193 - 36218 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) +Chars 36233 - 36242 [Unshelve.] 0. secs (0.u,0.s) +Chars 36243 - 36254 [all:~auto.] 0. secs (0.u,0.s) +Chars 36269 - 36336 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) +Chars 36351 - 36356 [step.] 0. secs (0.u,0.s) +Chars 36357 - 36362 [auto.] 0. secs (0.u,0.s) +Chars 36363 - 36395 [eapply~eqit_secure_VisLR;~eauto.] 0. secs (0.u,0.s) +Chars 36398 - 36399 [-] 0. secs (0.u,0.s) +Chars 36401 - 36428 [remember~(VisF~e2~k2)~as~x.] 0.001 secs (0.001u,0.s) +Chars 36433 - 36547 [hinduction~Ht23~before~E;~intr...] 0.093 secs (0.092u,0.s) +Chars 36552 - 36553 [+] 0. secs (0.u,0.s) +Chars 36554 - 36572 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 36573 - 36594 [eapply~IHHt23;~eauto.] 0.001 secs (0.001u,0.s) +Chars 36599 - 36600 [+] 0. secs (0.u,0.s) +Chars 36602 - 36612 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 36613 - 36639 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 36640 - 36648 [apply~H.] 0. secs (0.u,0.s) +Chars 36653 - 36654 [+] 0. secs (0.u,0.s) +Chars 36656 - 36689 [assert~(Hne~:~nonempty~B);~eauto.] 0. secs (0.u,0.s) +Chars 36690 - 36698 [inv~Hne.] 0.002 secs (0.002u,0.s) +Chars 36705 - 36715 [unpriv_co.] 0. secs (0.u,0.s) +Chars 36716 - 36750 [eapply~CIH0;~eauto;~try~eapply...] 0. secs (0.u,0.s) +Chars 36751 - 36759 [apply~H.] 0. secs (0.u,0.s) +Chars 36766 - 36775 [Unshelve.] 0. secs (0.u,0.s) +Chars 36776 - 36781 [auto.] 0. secs (0.u,0.s) +Chars 36786 - 36787 [+] 0. secs (0.u,0.s) +Chars 36789 - 36823 [assert~(Hne~:~nonempty~B0);~ea...] 0. secs (0.u,0.s) +Chars 36824 - 36832 [inv~Hne.] 0.004 secs (0.004u,0.s) +Chars 36839 - 36849 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 36850 - 36876 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) +Chars 36877 - 36885 [apply~H.] 0. secs (0.u,0.s) +Chars 36892 - 36901 [Unshelve.] 0. secs (0.u,0.s) +Chars 36902 - 36907 [auto.] 0. secs (0.u,0.s) +Chars 36912 - 36913 [+] 0. secs (0.u,0.s) +Chars 36914 - 36928 [genobs~t2~ot2.] 0.001 secs (0.001u,0.s) +Chars 36929 - 36942 [destruct~ot2.] 0.001 secs (0.001u,0.s) +Chars 36949 - 36950 [*] 0. secs (0.u,0.s) +Chars 36951 - 36984 [assert~(Hne~:~nonempty~B);~eauto.] 0.607 secs (0.604u,0.003s) +Chars 36985 - 36993 [inv~Hne.] 0.004 secs (0.004u,0.s) +Chars 37002 - 37021 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 37022 - 37033 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 37034 - 37044 [inv~CHECK.] 0.004 secs (0.004u,0.s) +Chars 37054 - 37105 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) +Chars 37114 - 37123 [Unshelve.] 0. secs (0.u,0.s) +Chars 37124 - 37129 [auto.] 0. secs (0.u,0.s) +Chars 37136 - 37137 [*] 0. secs (0.u,0.s) +Chars 37138 - 37171 [assert~(Hne~:~nonempty~B);~eauto.] 0.607 secs (0.604u,0.003s) +Chars 37172 - 37180 [inv~Hne.] 0.004 secs (0.004u,0.s) +Chars 37189 - 37199 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 37200 - 37226 [eapply~CIH0;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 37227 - 37236 [Unshelve.] 0. secs (0.u,0.s) +Chars 37237 - 37248 [all:~auto.] 0. secs (0.u,0.s) +Chars 37257 - 37266 [clear~H0.] 0. secs (0.u,0.s) +Chars 37267 - 37284 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 37285 - 37290 [step.] 0. secs (0.u,0.s) +Chars 37291 - 37309 [genobs~(k2~a)~ok2.] 0. secs (0.u,0.s) +Chars 37318 - 37337 [clear~Heqok2~H1~k2.] 0. secs (0.u,0.s) +Chars 37346 - 37369 [remember~(TauF~t)~as~y.] 0.001 secs (0.001u,0.s) +Chars 37378 - 37424 [hinduction~H~before~E;~intros;...] 0.036 secs (0.036u,0.s) +Chars 37433 - 37435 [--] 0. secs (0.u,0.s) +Chars 37436 - 37454 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 37456 - 37467 [now~unstep.] 0. secs (0.u,0.s) +Chars 37477 - 37479 [--] 0. secs (0.u,0.s) +Chars 37480 - 37503 [apply~secEqTauL;~eauto.] 1.101 secs (1.095u,0.005s) +Chars 37513 - 37515 [--] 0. secs (0.u,0.s) +Chars 37516 - 37527 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 37528 - 37539 [now~unstep.] 0. secs (0.u,0.s) +Chars 37549 - 37551 [--] 0. secs (0.u,0.s) +Chars 37552 - 37563 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 37564 - 37593 [eapply~H0~with~(c~:=~c);~eauto.] 0.003 secs (0.003u,0.s) +Chars 37603 - 37605 [--] 0. secs (0.u,0.s) +Chars 37607 - 37631 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 37632 - 37643 [now~unstep.] 0. secs (0.u,0.s) +Chars 37651 - 37652 [*] 0. secs (0.u,0.s) +Chars 37653 - 37668 [inv~SIZECHECK2.] 0.003 secs (0.003u,0.s) +Chars 37677 - 37717 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 37726 - 37728 [--] 0. secs (0.u,0.s) +Chars 37729 - 37748 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 37749 - 37760 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 37761 - 37771 [inv~CHECK.] 0.004 secs (0.004u,0.s) +Chars 37784 - 37835 [eapply~eqit_secure_trans_aux2;...] 0.001 secs (0.001u,0.s) +Chars 37836 - 37845 [Unshelve.] 0. secs (0.u,0.s) +Chars 37846 - 37857 [all:~auto.] 0. secs (0.u,0.s) +Chars 37866 - 37868 [--] 0. secs (0.u,0.s) +Chars 37869 - 37896 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 37908 - 37910 [++] 0. secs (0.u,0.s) Chars 37911 - 37923 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37924 - 37936 [contra_size.] 0.001 secs (0.u,0.s) -Chars 37940 - 37941 [+] 0. secs (0.u,0.s) -Chars 37942 - 37964 [(destruct~(observe~t3)).] 0. secs (0.u,0.s) -Chars 37970 - 37971 [*] 0. secs (0.u,0.s) -Chars 37972 - 38038 [(inv~Ht23;~ddestruction;~subst...] 0.032 secs (0.03u,0.002s) -Chars 38044 - 38045 [*] 0. secs (0.u,0.s) -Chars 38046 - 38056 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 38057 - 38076 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 38077 - 38085 [(apply~H).] 0. secs (0.u,0.s) -Chars 38093 - 38159 [(inv~Ht23;~ddestruction;~subst...] 0.051 secs (0.05u,0.001s) -Chars 38167 - 38172 [step.] 0. secs (0.u,0.s) -Chars 38173 - 38178 [auto.] 0. secs (0.u,0.s) -Chars 38180 - 38185 [auto.] 0. secs (0.u,0.s) -Chars 38191 - 38192 [*] 0. secs (0.u,0.s) -Chars 38193 - 38233 [(destruct~(classic~(leq~(priv~...] 0. secs (0.u,0.s) -Chars 38241 - 38242 [{] 0. secs (0.u,0.s) -Chars 38243 - 38309 [(inv~Ht23;~ddestruction;~subst...] 0.094 secs (0.093u,0.001s) -Chars 38310 - 38311 [}] 0. secs (0.u,0.s) -Chars 38319 - 38346 [(destruct~(classic_empty~X)).] 0. secs (0.u,0.s) -Chars 38354 - 38356 [--] 0. secs (0.u,0.s) -Chars 38357 - 38369 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 38370 - 38389 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 38390 - 38398 [(apply~H).] 0. secs (0.u,0.s) -Chars 38399 - 38404 [step.] 0. secs (0.u,0.s) -Chars 38405 - 38410 [auto.] 0. secs (0.u,0.s) -Chars 38418 - 38420 [--] 0. secs (0.u,0.s) -Chars 38421 - 38431 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 38432 - 38451 [(eapply~CIH0;~eauto).] 0.001 secs (0.001u,0.s) -Chars 38452 - 38460 [(apply~H).] 0. secs (0.u,0.s) -Chars 38471 - 38537 [(inv~Ht23;~ddestruction;~subst...] 0.066 secs (0.065u,0.s) -Chars 38548 - 38550 [++] 0. secs (0.u,0.s) -Chars 38551 - 38556 [step.] 0. secs (0.u,0.s) -Chars 38557 - 38566 [(apply~H5).] 0. secs (0.u,0.s) -Chars 38577 - 38579 [++] 0. secs (0.u,0.s) -Chars 38581 - 38590 [(apply~H4).] 0. secs (0.u,0.s) -Chars 38591 - 38595 [Qed.] 0.727 secs (0.711u,0.013s) -Chars 38598 - 38818 [Lemma~eqit_itree_eqit_secure~:...] 0. secs (0.u,0.s) -Chars 38819 - 38825 [Proof.] 0. secs (0.u,0.s) -Chars 38828 - 38859 [(intros~E~Label~priv~l~R1~R2~RR).] 0. secs (0.u,0.s) -Chars 38860 - 38878 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 38881 - 38907 [(intros~t1~t1'~t2~Heq~Hsec).] 0. secs (0.u,0.s) -Chars 38908 - 38913 [icbn.] 0. secs (0.u,0.s) -Chars 38917 - 38929 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 38930 - 38943 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 38947 - 38955 [(inv~Heq).] 0.096 secs (0.094u,0.001s) -Chars 38958 - 38959 [-] 0. secs (0.u,0.s) -Chars 38960 - 38982 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) -Chars 38983 - 39007 [(rewrite~itree_eta'~~at~1).] 0.018 secs (0.018u,0.s) -Chars 39013 - 39037 [(remember~(RetF~r2)~as~x).] 0.001 secs (0.001u,0.s) -Chars 39038 - 39049 [clear~H~H0.] 0. secs (0.u,0.s) -Chars 39054 - 39115 [(hinduction~Hsec~before~E;~int...] 0.023 secs (0.023u,0.s) -Chars 39118 - 39119 [-] 0. secs (0.u,0.s) -Chars 39121 - 39135 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 39140 - 39209 [(assert~((exists~t3,~ot2~=~Tau...] 0. secs (0.u,0.s) -Chars 39214 - 39215 [{] 0. secs (0.u,0.s) -Chars 39216 - 39265 [(destruct~ot2;~eauto;~right;~i...] 0.008 secs (0.008u,0.s) -Chars 39266 - 39267 [}] 0. secs (0.u,0.s) -Chars 39272 - 39305 [(destruct~H1~as~[[t3~Ht2]|~Ht2]).] 0. secs (0.u,0.s) -Chars 39310 - 39311 [+] 0. secs (0.u,0.s) -Chars 39312 - 39318 [subst.] 0. secs (0.u,0.s) -Chars 39319 - 39331 [(rewrite~Ht2).] 0. secs (0.u,0.s) -Chars 39332 - 39352 [(rewrite~Ht2~in~Hsec).] 0. secs (0.u,0.s) -Chars 39353 - 39365 [constructor.] 0. secs (0.u,0.s) -Chars 39372 - 39390 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 39391 - 39413 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) -Chars 39414 - 39423 [(inv~Hsec).] 0.023 secs (0.023u,0.s) -Chars 39428 - 39429 [+] 0. secs (0.u,0.s) -Chars 39430 - 39486 [(destruct~ot2;~try~(exfalso;~e...] 0.002 secs (0.002u,0.s) -Chars 39493 - 39494 [*] 0. secs (0.u,0.s) -Chars 39495 - 39517 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) -Chars 39518 - 39527 [(inv~Hsec).] 0.019 secs (0.019u,0.s) -Chars 39534 - 39535 [*] 0. secs (0.u,0.s) -Chars 39536 - 39558 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) -Chars 39559 - 39589 [(inv~Hsec;~ddestruction;~subst).] 0.051 secs (0.05u,0.s) -Chars 39598 - 39600 [--] 0. secs (0.u,0.s) -Chars 39602 - 39612 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 39613 - 39631 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 39632 - 39641 [(apply~H3).] 0. secs (0.u,0.s) -Chars 39650 - 39652 [--] 0. secs (0.u,0.s) -Chars 39654 - 39666 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 39667 - 39685 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 39688 - 39689 [-] 0. secs (0.u,0.s) -Chars 39690 - 39712 [(rewrite~<-~H0~in~Hsec).] 0. secs (0.u,0.s) -Chars 39713 - 39779 [(inv~Hsec;~ddestruction;~subst...] 0.092 secs (0.091u,0.s) -Chars 39784 - 39785 [+] 0. secs (0.u,0.s) -Chars 39787 - 39805 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 39806 - 39813 [(intros).] 0. secs (0.u,0.s) -Chars 39814 - 39840 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 39841 - 39850 [(apply~H2).] 0. secs (0.u,0.s) -Chars 39855 - 39856 [+] 0. secs (0.u,0.s) -Chars 39858 - 39868 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 39869 - 39895 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 39896 - 39905 [(apply~H2).] 0. secs (0.u,0.s) -Chars 39910 - 39911 [+] 0. secs (0.u,0.s) -Chars 39913 - 39923 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 39924 - 39950 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 39951 - 39960 [(apply~H2).] 0. secs (0.u,0.s) -Chars 39965 - 39966 [+] 0. secs (0.u,0.s) -Chars 39968 - 39980 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 39981 - 40006 [(eapply~CIH;~try~apply~H2).] 0. secs (0.u,0.s) -Chars 40007 - 40012 [step.] 0.001 secs (0.001u,0.s) -Chars 40013 - 40025 [constructor.] 0. secs (0.u,0.s) -Chars 40026 - 40031 [auto.] 0. secs (0.u,0.s) -Chars 40036 - 40037 [+] 0. secs (0.u,0.s) -Chars 40039 - 40051 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40052 - 40099 [(eapply~CIH~with~(t1~:=~Vis~e~...] 0. secs (0.u,0.s) -Chars 40106 - 40111 [step.] 0.001 secs (0.001u,0.s) -Chars 40112 - 40124 [constructor.] 0. secs (0.u,0.s) -Chars 40125 - 40130 [auto.] 0. secs (0.u,0.s) -Chars 40135 - 40136 [+] 0. secs (0.u,0.s) -Chars 40138 - 40150 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40151 - 40177 [(eapply~CIH;~try~apply~REL).] 0. secs (0.u,0.s) -Chars 40178 - 40195 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 40196 - 40205 [(apply~H2).] 0. secs (0.u,0.s) -Chars 40206 - 40210 [Qed.] 0.079 secs (0.079u,0.s) -Chars 40212 - 40433 [Lemma~eqit_secure_eq_trans~:~~...] 0. secs (0.u,0.s) -Chars 40434 - 40440 [Proof.] 0. secs (0.u,0.s) -Chars 40443 - 40450 [(intros).] 0. secs (0.u,0.s) -Chars 40451 - 40505 [(apply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) -Chars 40508 - 40509 [{] 0. secs (0.u,0.s) -Chars 40510 - 40517 [(intros).] 0. secs (0.u,0.s) -Chars 40518 - 40525 [(inv~H1).] 0. secs (0.u,0.s) -Chars 40526 - 40527 [}] 0. secs (0.u,0.s) -Chars 40530 - 40562 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) -Chars 40563 - 40567 [Qed.] 0. secs (0.u,0.s) -Chars 40569 - 40756 [Lemma~eqit_secure_anything~:~~...] 0. secs (0.u,0.s) -Chars 40757 - 40763 [Proof.] 0. secs (0.u,0.s) -Chars 40766 - 40773 [(intros).] 0. secs (0.u,0.s) -Chars 40776 - 40811 [(eapply~eqit_secure_eq_trans;~...] 0. secs (0.u,0.s) -Chars 40814 - 40836 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 40837 - 40870 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) -Chars 40871 - 40875 [Qed.] 0. secs (0.u,0.s) -Chars 40878 - 41077 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 41078 - 41084 [Proof.] 0. secs (0.u,0.s) -Chars 41087 - 41100 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 41101 - 41127 [(destruct~b;~split;~intros).] 0. secs (0.u,0.s) -Chars 41130 - 41131 [-] 0. secs (0.u,0.s) -Chars 41132 - 41170 [(eapply~eutt_secure_eqit_secur...] 0.001 secs (0.001u,0.s) -Chars 41175 - 41197 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41198 - 41236 [(eapply~eutt_secure_eqit_secur...] 0. secs (0.u,0.s) -Chars 41241 - 41263 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41264 - 41269 [auto.] 0. secs (0.u,0.s) -Chars 41272 - 41273 [-] 0. secs (0.u,0.s) -Chars 41274 - 41297 [(assert~(x~≈~y);~auto).] 0. secs (0.u,0.s) -Chars 41298 - 41323 [(assert~(x0~≈~y0);~auto).] 0. secs (0.u,0.s) -Chars 41328 - 41343 [symmetry~in~H2.] 0. secs (0.u,0.s) -Chars 41348 - 41386 [(eapply~eutt_secure_eqit_secur...] 0.001 secs (0.001u,0.s) -Chars 41391 - 41406 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 41407 - 41429 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41434 - 41472 [(eapply~eutt_secure_eqit_secur...] 0. secs (0.u,0.s) -Chars 41477 - 41499 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41500 - 41505 [auto.] 0. secs (0.u,0.s) -Chars 41508 - 41509 [-] 0. secs (0.u,0.s) -Chars 41510 - 41547 [(eapply~eqit_itree_eqit_secure...] 0.001 secs (0.001u,0.s) -Chars 41552 - 41574 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41575 - 41612 [(eapply~eqit_itree_eqit_secure...] 0. secs (0.u,0.s) -Chars 41617 - 41639 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41640 - 41645 [auto.] 0. secs (0.u,0.s) -Chars 41648 - 41649 [-] 0. secs (0.u,0.s) -Chars 41650 - 41673 [(assert~(x~≅~y);~auto).] 0. secs (0.u,0.s) -Chars 41674 - 41699 [(assert~(x0~≅~y0);~auto).] 0.002 secs (0.002u,0.s) -Chars 41704 - 41719 [symmetry~in~H2.] 0. secs (0.u,0.s) -Chars 41720 - 41735 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 41740 - 41777 [(eapply~eqit_itree_eqit_secure...] 0.001 secs (0.001u,0.s) -Chars 41782 - 41804 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41805 - 41842 [(eapply~eqit_itree_eqit_secure...] 0. secs (0.u,0.s) -Chars 41847 - 41869 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 41870 - 41875 [auto.] 0. secs (0.u,0.s) -Chars 41876 - 41880 [Qed.] 0.001 secs (0.001u,0.s) -Chars 41882 - 42139 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 42140 - 42146 [Proof.] 0. secs (0.u,0.s) -Chars 42149 - 42177 [(repeat~intro;~split;~intros).] 0. secs (0.u,0.s) -Chars 42180 - 42181 [-] 0. secs (0.u,0.s) -Chars 42182 - 42244 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) -Chars 42249 - 42250 [{] 0. secs (0.u,0.s) -Chars 42251 - 42258 [(intros).] 0. secs (0.u,0.s) -Chars 42259 - 42266 [(inv~H2).] 0. secs (0.u,0.s) -Chars 42267 - 42268 [}] 0. secs (0.u,0.s) -Chars 42273 - 42305 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) -Chars 42310 - 42332 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 42337 - 42413 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) -Chars 42418 - 42419 [{] 0. secs (0.u,0.s) -Chars 42420 - 42427 [(intros).] 0. secs (0.u,0.s) -Chars 42428 - 42435 [(inv~H2).] 0. secs (0.u,0.s) -Chars 42436 - 42437 [}] 0. secs (0.u,0.s) -Chars 42442 - 42474 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) -Chars 42475 - 42497 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 42498 - 42503 [auto.] 0. secs (0.u,0.s) -Chars 42506 - 42507 [-] 0. secs (0.u,0.s) -Chars 42508 - 42555 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) -Chars 42560 - 42561 [{] 0. secs (0.u,0.s) -Chars 42562 - 42584 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 42585 - 42618 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) -Chars 42619 - 42620 [}] 0. secs (0.u,0.s) -Chars 42625 - 42680 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) -Chars 42685 - 42686 [{] 0. secs (0.u,0.s) -Chars 42687 - 42694 [(intros).] 0. secs (0.u,0.s) -Chars 42695 - 42702 [(inv~H3).] 0. secs (0.u,0.s) -Chars 42703 - 42704 [}] 0. secs (0.u,0.s) -Chars 42709 - 42741 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) -Chars 42746 - 42791 [(assert~(eqit_secure~Label~pri...] 0. secs (0.u,0.s) -Chars 42796 - 42797 [{] 0. secs (0.u,0.s) -Chars 42798 - 42820 [(apply~eqit_secure_sym).] 0. secs (0.u,0.s) -Chars 42821 - 42854 [(eapply~eqit_secure_RR_imp;~ea...] 0. secs (0.u,0.s) -Chars 42855 - 42856 [}] 0. secs (0.u,0.s) -Chars 42861 - 42916 [(eapply~eqit_secure_RR_imp~wit...] 0. secs (0.u,0.s) -Chars 42921 - 42922 [{] 0. secs (0.u,0.s) -Chars 42923 - 42930 [(intros).] 0. secs (0.u,0.s) -Chars 42931 - 42938 [(inv~H4).] 0. secs (0.u,0.s) -Chars 42939 - 42940 [}] 0. secs (0.u,0.s) -Chars 42945 - 42977 [(eapply~eqit_secure_trans;~eau...] 0. secs (0.u,0.s) -Chars 42978 - 42982 [Qed.] 0.001 secs (0.001u,0.s) +Chars 37924 - 37943 [eapply~CIH0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 37944 - 37953 [apply~H1.] 0. secs (0.u,0.s) +Chars 37968 - 37973 [step.] 0. secs (0.u,0.s) +Chars 37974 - 37982 [apply~H.] 0. secs (0.u,0.s) +Chars 37983 - 37992 [Unshelve.] 0. secs (0.u,0.s) +Chars 37993 - 37998 [auto.] 0. secs (0.u,0.s) +Chars 38010 - 38012 [++] 0. secs (0.u,0.s) +Chars 38013 - 38023 [unpriv_co.] 0.002 secs (0.002u,0.s) +Chars 38024 - 38050 [eapply~CIH0;~try~apply~H1.] 0. secs (0.u,0.s) +Chars 38065 - 38074 [Unshelve.] 0. secs (0.u,0.s) +Chars 38075 - 38086 [all:~auto.] 0. secs (0.u,0.s) +Chars 38101 - 38110 [clear~H0.] 0. secs (0.u,0.s) +Chars 38111 - 38116 [step.] 0. secs (0.u,0.s) +Chars 38117 - 38142 [remember~(VisF~e~k)~as~y.] 0.001 secs (0.001u,0.s) +Chars 38157 - 38174 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 38175 - 38188 [clear~Heqot2.] 0. secs (0.u,0.s) +Chars 38189 - 38207 [genobs~(k2~a)~ok2.] 0. secs (0.u,0.s) +Chars 38222 - 38235 [clear~Heqok2.] 0. secs (0.u,0.s) +Chars 38250 - 38363 [hinduction~H~before~E;~intros;...] 0.092 secs (0.091u,0.s) +Chars 38378 - 38380 [**] 0. secs (0.u,0.s) +Chars 38382 - 38400 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 38420 - 38442 [eapply~IHsecure_eqitF.] 0. secs (0.u,0.s) +Chars 38462 - 38475 [13:~exact~H1.] 0. secs (0.u,0.s) +Chars 38476 - 38487 [all:~eauto.] 0.004 secs (0.004u,0.s) +Chars 38502 - 38504 [**] 0. secs (0.u,0.s) +Chars 38506 - 38524 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 38525 - 38536 [now~unstep.] 0. secs (0.u,0.s) +Chars 38551 - 38553 [**] 0. secs (0.u,0.s) +Chars 38554 - 38565 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 38567 - 38578 [now~unstep.] 0. secs (0.u,0.s) +Chars 38593 - 38595 [**] 0. secs (0.u,0.s) +Chars 38596 - 38624 [apply~EqVisUnPrivLInd;~auto.] 0.001 secs (0.001u,0.s) +Chars 38644 - 38650 [intro.] 0. secs (0.u,0.s) +Chars 38651 - 38661 [eapply~H0.] 0. secs (0.u,0.s) +Chars 38681 - 38694 [13:~exact~H1.] 0. secs (0.u,0.s) +Chars 38695 - 38706 [all:~eauto.] 0.004 secs (0.004u,0.s) +Chars 38722 - 38724 [**] 0. secs (0.u,0.s) +Chars 38725 - 38742 [eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 38760 - 38762 [**] 0. secs (0.u,0.s) +Chars 38764 - 38788 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 38789 - 38800 [now~unstep.] 0. secs (0.u,0.s) +Chars 38805 - 38806 [+] 0. secs (0.u,0.s) +Chars 38807 - 38831 [rewrite~itree_eta'~~at~1.] 0.016 secs (0.016u,0.s) +Chars 38832 - 38843 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 38844 - 38861 [eapply~H0;~eauto.] 0.002 secs (0.002u,0.s) +Chars 38866 - 38867 [+] 0. secs (0.u,0.s) +Chars 38869 - 38884 [inv~SIZECHECK2.] 0.002 secs (0.002u,0.s) +Chars 38885 - 38897 [unpriv_halt.] 0.001 secs (0.001u,0.s) +Chars 38898 - 38917 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 38918 - 38927 [apply~H0.] 0. secs (0.u,0.s) +Chars 38934 - 38942 [apply~H.] 0. secs (0.u,0.s) +Chars 38943 - 38952 [Unshelve.] 0. secs (0.u,0.s) +Chars 38953 - 38958 [auto.] 0. secs (0.u,0.s) +Chars 38961 - 38962 [-] 0. secs (0.u,0.s) +Chars 38963 - 38989 [remember~(VisF~e~k2)~as~x.] 0.001 secs (0.001u,0.s) +Chars 38990 - 39101 [hinduction~Ht23~before~E;~intr...] 0.109 secs (0.109u,0.s) +Chars 39106 - 39107 [+] 0. secs (0.u,0.s) +Chars 39108 - 39126 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 39127 - 39148 [eapply~IHHt23;~eauto.] 0.003 secs (0.003u,0.s) +Chars 39153 - 39154 [+] 0. secs (0.u,0.s) +Chars 39155 - 39173 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 39175 - 39209 [assert~(Hne~:~nonempty~A0);~ea...] 0.002 secs (0.002u,0.s) +Chars 39210 - 39218 [inv~Hne.] 0.003 secs (0.003u,0.s) +Chars 39219 - 39236 [eapply~H1;~eauto.] 0. secs (0.u,0.s) +Chars 39243 - 39254 [now~unstep.] 0.001 secs (0.001u,0.s) +Chars 39255 - 39264 [Unshelve.] 0. secs (0.u,0.s) +Chars 39265 - 39270 [auto.] 0. secs (0.u,0.s) +Chars 39275 - 39276 [+] 0. secs (0.u,0.s) +Chars 39277 - 39288 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 39289 - 39323 [assert~(Hne~:~nonempty~A0);~ea...] 0.002 secs (0.002u,0.s) +Chars 39324 - 39332 [inv~Hne.] 0.003 secs (0.003u,0.s) +Chars 39333 - 39350 [eapply~H1;~eauto.] 0. secs (0.u,0.s) +Chars 39358 - 39369 [now~unstep.] 0. secs (0.u,0.s) +Chars 39370 - 39379 [Unshelve.] 0. secs (0.u,0.s) +Chars 39380 - 39385 [auto.] 0. secs (0.u,0.s) +Chars 39390 - 39391 [+] 0. secs (0.u,0.s) +Chars 39392 - 39419 [assert~(Hne~:~nonempty~A0).] 0. secs (0.u,0.s) +Chars 39420 - 39421 [{] 0. secs (0.u,0.s) +Chars 39422 - 39428 [eauto.] 0. secs (0.u,0.s) +Chars 39429 - 39430 [}] 0. secs (0.u,0.s) +Chars 39431 - 39439 [inv~Hne.] 0.003 secs (0.003u,0.s) +Chars 39440 - 39446 [eauto.] 0. secs (0.u,0.s) +Chars 39447 - 39456 [Unshelve.] 0. secs (0.u,0.s) +Chars 39458 - 39463 [auto.] 0. secs (0.u,0.s) +Chars 39468 - 39469 [+] 0. secs (0.u,0.s) +Chars 39470 - 39481 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 39482 - 39488 [eauto.] 0.003 secs (0.003u,0.s) +Chars 39493 - 39494 [+] 0. secs (0.u,0.s) +Chars 39496 - 39515 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 39516 - 39521 [step.] 0. secs (0.u,0.s) +Chars 39529 - 39544 [inv~SIZECHECK0.] 0.002 secs (0.002u,0.s) +Chars 39551 - 39603 [eapply~secret_halt_trans_3~wit...] 0. secs (0.u,0.s) +Chars 39610 - 39611 [*] 0. secs (0.u,0.s) +Chars 39612 - 39617 [step.] 0. secs (0.u,0.s) +Chars 39618 - 39627 [apply~H0.] 0. secs (0.u,0.s) +Chars 39634 - 39635 [*] 0. secs (0.u,0.s) +Chars 39636 - 39644 [apply~H.] 0. secs (0.u,0.s) +Chars 39647 - 39648 [-] 0. secs (0.u,0.s) +Chars 39654 - 39678 [remember~(TauF~t0)~as~y.] 0.001 secs (0.001u,0.s) +Chars 39683 - 39751 [hinduction~Ht23~before~E;~intr...] 0.258 secs (0.257u,0.001s) +Chars 39757 - 39758 [+] 0. secs (0.u,0.s) +Chars 39759 - 39772 [clear~IHHt23.] 0. secs (0.u,0.s) +Chars 39773 - 39792 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 39793 - 39817 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) +Chars 39824 - 39829 [step.] 0. secs (0.u,0.s) +Chars 39837 - 39871 [eapply~secret_halt_trans_2;~ea...] 0. secs (0.u,0.s) +Chars 39872 - 39877 [step.] 0. secs (0.u,0.s) +Chars 39878 - 39883 [auto.] 0. secs (0.u,0.s) +Chars 39888 - 39889 [+] 0. secs (0.u,0.s) +Chars 39890 - 39902 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 39903 - 39922 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 39923 - 39931 [apply~H.] 0. secs (0.u,0.s) +Chars 39936 - 39937 [+] 0. secs (0.u,0.s) +Chars 39938 - 39962 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 39963 - 39974 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 39975 - 39992 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 39997 - 39998 [+] 0. secs (0.u,0.s) +Chars 39999 - 40011 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40012 - 40024 [contra_size.] 0. secs (0.u,0.s) +Chars 40027 - 40028 [-] 0. secs (0.u,0.s) +Chars 40034 - 40100 [inv~Ht23;~ddestruction;~subst;...] 0.091 secs (0.09u,0.s) +Chars 40105 - 40106 [+] 0. secs (0.u,0.s) +Chars 40107 - 40119 [constructor.] 0. secs (0.u,0.s) +Chars 40120 - 40139 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 40140 - 40145 [step.] 0. secs (0.u,0.s) +Chars 40146 - 40151 [auto.] 0. secs (0.u,0.s) +Chars 40156 - 40157 [+] 0. secs (0.u,0.s) +Chars 40158 - 40168 [unpriv_co.] 0. secs (0.u,0.s) +Chars 40169 - 40188 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 40189 - 40206 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) +Chars 40213 - 40218 [step.] 0. secs (0.u,0.s) +Chars 40219 - 40228 [apply~H2.] 0. secs (0.u,0.s) +Chars 40233 - 40234 [+] 0. secs (0.u,0.s) +Chars 40236 - 40248 [constructor.] 0. secs (0.u,0.s) +Chars 40249 - 40268 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 40273 - 40274 [+] 0. secs (0.u,0.s) +Chars 40276 - 40303 [destruct~(classic_empty~B).] 0. secs (0.u,0.s) +Chars 40310 - 40311 [*] 0. secs (0.u,0.s) +Chars 40312 - 40324 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40325 - 40344 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 40345 - 40350 [step.] 0. secs (0.u,0.s) +Chars 40351 - 40355 [cbn.] 0. secs (0.u,0.s) +Chars 40356 - 40368 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40375 - 40376 [*] 0. secs (0.u,0.s) +Chars 40377 - 40387 [unpriv_co.] 0. secs (0.u,0.s) +Chars 40388 - 40407 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 40408 - 40417 [apply~H1.] 0. secs (0.u,0.s) +Chars 40422 - 40423 [+] 0. secs (0.u,0.s) +Chars 40425 - 40437 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40438 - 40457 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 40464 - 40469 [step.] 0. secs (0.u,0.s) +Chars 40470 - 40474 [cbn.] 0. secs (0.u,0.s) +Chars 40475 - 40487 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40488 - 40500 [contra_size.] 0. secs (0.u,0.s) +Chars 40502 - 40503 [-] 0. secs (0.u,0.s) +Chars 40505 - 40529 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) +Chars 40530 - 40535 [step.] 0. secs (0.u,0.s) +Chars 40539 - 40596 [eapply~secret_halt_trans_2~wit...] 0. secs (0.u,0.s) +Chars 40600 - 40601 [+] 0. secs (0.u,0.s) +Chars 40602 - 40607 [step.] 0. secs (0.u,0.s) +Chars 40608 - 40612 [cbn.] 0. secs (0.u,0.s) +Chars 40613 - 40625 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40629 - 40630 [+] 0. secs (0.u,0.s) +Chars 40631 - 40636 [step.] 0. secs (0.u,0.s) +Chars 40637 - 40642 [auto.] 0. secs (0.u,0.s) +Chars 40644 - 40645 [-] 0. secs (0.u,0.s) +Chars 40647 - 40674 [destruct~(classic_empty~A).] 0. secs (0.u,0.s) +Chars 40678 - 40679 [+] 0. secs (0.u,0.s) +Chars 40680 - 40746 [inv~Ht23;~ddestruction;~subst;...] 0.094 secs (0.093u,0.s) +Chars 40752 - 40753 [*] 0. secs (0.u,0.s) +Chars 40754 - 40766 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40767 - 40809 [eapply~CIH0~with~(t2~:=~Vis~e2...] 0. secs (0.u,0.s) +Chars 40817 - 40819 [--] 0. secs (0.u,0.s) +Chars 40820 - 40825 [step.] 0. secs (0.u,0.s) +Chars 40826 - 40830 [cbn.] 0. secs (0.u,0.s) +Chars 40831 - 40843 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40844 - 40856 [contra_size.] 0. secs (0.u,0.s) +Chars 40864 - 40866 [--] 0. secs (0.u,0.s) +Chars 40867 - 40872 [step.] 0. secs (0.u,0.s) +Chars 40873 - 40878 [auto.] 0. secs (0.u,0.s) +Chars 40884 - 40885 [*] 0. secs (0.u,0.s) +Chars 40886 - 40898 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40899 - 40916 [rewrite~H1~in~H3.] 0. secs (0.u,0.s) +Chars 40917 - 40959 [eapply~CIH0~with~(t2~:=~Vis~e2...] 0. secs (0.u,0.s) +Chars 40967 - 40969 [--] 0. secs (0.u,0.s) +Chars 40970 - 40975 [step.] 0. secs (0.u,0.s) +Chars 40976 - 40980 [cbn.] 0. secs (0.u,0.s) +Chars 40981 - 40993 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 40994 - 41006 [contra_size.] 0. secs (0.u,0.s) +Chars 41014 - 41016 [--] 0. secs (0.u,0.s) +Chars 41017 - 41022 [step.] 0. secs (0.u,0.s) +Chars 41023 - 41032 [apply~H3.] 0. secs (0.u,0.s) +Chars 41038 - 41039 [*] 0. secs (0.u,0.s) +Chars 41040 - 41052 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 41054 - 41073 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 41081 - 41086 [step.] 0. secs (0.u,0.s) +Chars 41087 - 41091 [cbn.] 0. secs (0.u,0.s) +Chars 41092 - 41104 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 41105 - 41117 [contra_size.] 0. secs (0.u,0.s) +Chars 41123 - 41124 [*] 0. secs (0.u,0.s) +Chars 41125 - 41137 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 41139 - 41181 [eapply~CIH0~with~(t2~:=~Vis~e2...] 0. secs (0.u,0.s) +Chars 41189 - 41191 [--] 0. secs (0.u,0.s) +Chars 41192 - 41197 [step.] 0. secs (0.u,0.s) +Chars 41198 - 41202 [cbn.] 0. secs (0.u,0.s) +Chars 41203 - 41215 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 41216 - 41228 [contra_size.] 0. secs (0.u,0.s) +Chars 41236 - 41238 [--] 0. secs (0.u,0.s) +Chars 41239 - 41248 [apply~H2.] 0. secs (0.u,0.s) +Chars 41254 - 41255 [*] 0. secs (0.u,0.s) +Chars 41256 - 41268 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 41269 - 41281 [contra_size.] 0. secs (0.u,0.s) +Chars 41285 - 41286 [+] 0. secs (0.u,0.s) +Chars 41287 - 41309 [destruct~(observe~t3).] 0. secs (0.u,0.s) +Chars 41315 - 41316 [*] 0. secs (0.u,0.s) +Chars 41317 - 41383 [inv~Ht23;~ddestruction;~subst;...] 0.022 secs (0.022u,0.s) +Chars 41389 - 41390 [*] 0. secs (0.u,0.s) +Chars 41391 - 41401 [unpriv_co.] 0. secs (0.u,0.s) +Chars 41402 - 41421 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 41422 - 41430 [apply~H.] 0. secs (0.u,0.s) +Chars 41438 - 41504 [inv~Ht23;~ddestruction;~subst;...] 0.036 secs (0.036u,0.s) +Chars 41512 - 41517 [step.] 0. secs (0.u,0.s) +Chars 41518 - 41523 [auto.] 0. secs (0.u,0.s) +Chars 41525 - 41530 [auto.] 0. secs (0.u,0.s) +Chars 41536 - 41537 [*] 0. secs (0.u,0.s) +Chars 41538 - 41578 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 41586 - 41587 [{] 0. secs (0.u,0.s) +Chars 41588 - 41654 [inv~Ht23;~ddestruction;~subst;...] 0.068 secs (0.068u,0.s) +Chars 41655 - 41656 [}] 0. secs (0.u,0.s) +Chars 41664 - 41691 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 41699 - 41701 [--] 0. secs (0.u,0.s) +Chars 41702 - 41714 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 41715 - 41734 [eapply~CIH0;~eauto.] 0.002 secs (0.002u,0.s) +Chars 41735 - 41743 [apply~H.] 0. secs (0.u,0.s) +Chars 41744 - 41749 [step.] 0. secs (0.u,0.s) +Chars 41750 - 41755 [auto.] 0. secs (0.u,0.s) +Chars 41763 - 41765 [--] 0. secs (0.u,0.s) +Chars 41766 - 41776 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 41777 - 41796 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) +Chars 41797 - 41805 [apply~H.] 0. secs (0.u,0.s) +Chars 41816 - 41882 [inv~Ht23;~ddestruction;~subst;...] 0.049 secs (0.049u,0.s) +Chars 41893 - 41895 [++] 0. secs (0.u,0.s) +Chars 41896 - 41901 [step.] 0. secs (0.u,0.s) +Chars 41902 - 41911 [apply~H5.] 0. secs (0.u,0.s) +Chars 41922 - 41924 [++] 0. secs (0.u,0.s) +Chars 41926 - 41935 [apply~H4.] 0. secs (0.u,0.s) +Chars 41936 - 41940 [Qed.] 0.551 secs (0.543u,0.007s) +Chars 41943 - 42163 [Lemma~eqit_itree_eqit_secure~:...] 0. secs (0.u,0.s) +Chars 42164 - 42170 [Proof.] 0. secs (0.u,0.s) +Chars 42173 - 42204 [intros~E~Label~priv~l~R1~R2~RR.] 0. secs (0.u,0.s) +Chars 42205 - 42223 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 42226 - 42252 [intros~t1~t1'~t2~Heq~Hsec.] 0. secs (0.u,0.s) +Chars 42253 - 42258 [icbn.] 0. secs (0.u,0.s) +Chars 42262 - 42274 [step~in~Heq.] 0. secs (0.u,0.s) +Chars 42275 - 42288 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 42292 - 42300 [inv~Heq.] 0.085 secs (0.084u,0.001s) +Chars 42303 - 42304 [-] 0. secs (0.u,0.s) +Chars 42305 - 42327 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) +Chars 42328 - 42352 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) +Chars 42358 - 42382 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) +Chars 42383 - 42394 [clear~H~H0.] 0. secs (0.u,0.s) +Chars 42399 - 42460 [hinduction~Hsec~before~E;~intr...] 0.017 secs (0.017u,0.s) +Chars 42463 - 42464 [-] 0. secs (0.u,0.s) +Chars 42466 - 42480 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 42485 - 42554 [assert~((exists~t3,~ot2~=~TauF...] 0. secs (0.u,0.s) +Chars 42559 - 42560 [{] 0. secs (0.u,0.s) +Chars 42561 - 42610 [destruct~ot2;~eauto;~right;~in...] 0.005 secs (0.005u,0.s) +Chars 42611 - 42612 [}] 0. secs (0.u,0.s) +Chars 42617 - 42650 [destruct~H1~as~[[t3~Ht2]|~Ht2].] 0. secs (0.u,0.s) +Chars 42655 - 42656 [+] 0. secs (0.u,0.s) +Chars 42657 - 42663 [subst.] 0. secs (0.u,0.s) +Chars 42664 - 42676 [rewrite~Ht2.] 0. secs (0.u,0.s) +Chars 42677 - 42697 [rewrite~Ht2~in~Hsec.] 0. secs (0.u,0.s) +Chars 42698 - 42710 [constructor.] 0. secs (0.u,0.s) +Chars 42717 - 42735 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 42736 - 42758 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) +Chars 42759 - 42768 [inv~Hsec.] 0.016 secs (0.016u,0.s) +Chars 42773 - 42774 [+] 0. secs (0.u,0.s) +Chars 42775 - 42831 [destruct~ot2;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) +Chars 42838 - 42839 [*] 0. secs (0.u,0.s) +Chars 42840 - 42862 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) +Chars 42863 - 42872 [inv~Hsec.] 0.014 secs (0.014u,0.s) +Chars 42879 - 42880 [*] 0. secs (0.u,0.s) +Chars 42881 - 42903 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) +Chars 42904 - 42934 [inv~Hsec;~ddestruction;~subst.] 0.037 secs (0.036u,0.s) +Chars 42943 - 42945 [--] 0. secs (0.u,0.s) +Chars 42947 - 42957 [unpriv_co.] 0. secs (0.u,0.s) +Chars 42958 - 42976 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 42977 - 42986 [apply~H3.] 0. secs (0.u,0.s) +Chars 42995 - 42997 [--] 0. secs (0.u,0.s) +Chars 42999 - 43011 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 43012 - 43030 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 43033 - 43034 [-] 0. secs (0.u,0.s) +Chars 43035 - 43057 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) +Chars 43058 - 43124 [inv~Hsec;~ddestruction;~subst;...] 0.067 secs (0.067u,0.s) +Chars 43129 - 43130 [+] 0. secs (0.u,0.s) +Chars 43132 - 43150 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 43151 - 43158 [intros.] 0. secs (0.u,0.s) +Chars 43159 - 43185 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 43186 - 43195 [apply~H2.] 0. secs (0.u,0.s) +Chars 43200 - 43201 [+] 0. secs (0.u,0.s) +Chars 43203 - 43213 [unpriv_co.] 0. secs (0.u,0.s) +Chars 43214 - 43240 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 43241 - 43250 [apply~H2.] 0. secs (0.u,0.s) +Chars 43255 - 43256 [+] 0. secs (0.u,0.s) +Chars 43258 - 43268 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 43269 - 43295 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 43296 - 43305 [apply~H2.] 0. secs (0.u,0.s) +Chars 43310 - 43311 [+] 0. secs (0.u,0.s) +Chars 43313 - 43325 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 43326 - 43351 [eapply~CIH;~try~apply~H2.] 0. secs (0.u,0.s) +Chars 43352 - 43357 [step.] 0.001 secs (0.001u,0.s) +Chars 43358 - 43370 [constructor.] 0. secs (0.u,0.s) +Chars 43371 - 43376 [auto.] 0. secs (0.u,0.s) +Chars 43381 - 43382 [+] 0. secs (0.u,0.s) +Chars 43384 - 43396 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 43397 - 43444 [eapply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) +Chars 43451 - 43456 [step.] 0.001 secs (0.001u,0.s) +Chars 43457 - 43469 [constructor.] 0. secs (0.u,0.s) +Chars 43470 - 43475 [auto.] 0. secs (0.u,0.s) +Chars 43480 - 43481 [+] 0. secs (0.u,0.s) +Chars 43483 - 43495 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 43496 - 43522 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 43523 - 43540 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 43541 - 43550 [apply~H2.] 0. secs (0.u,0.s) +Chars 43551 - 43555 [Qed.] 0.052 secs (0.052u,0.s) +Chars 43557 - 43778 [Lemma~eqit_secure_eq_trans~:~~...] 0. secs (0.u,0.s) +Chars 43779 - 43785 [Proof.] 0. secs (0.u,0.s) +Chars 43788 - 43795 [intros.] 0. secs (0.u,0.s) +Chars 43796 - 43850 [apply~eqit_secure_RR_imp~with~...] 0. secs (0.u,0.s) +Chars 43853 - 43854 [{] 0. secs (0.u,0.s) +Chars 43855 - 43862 [intros.] 0. secs (0.u,0.s) +Chars 43863 - 43870 [inv~H1.] 0. secs (0.u,0.s) +Chars 43871 - 43872 [}] 0. secs (0.u,0.s) +Chars 43875 - 43907 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) +Chars 43908 - 43912 [Qed.] 0. secs (0.u,0.s) +Chars 43914 - 44101 [Lemma~eqit_secure_anything~:~~...] 0. secs (0.u,0.s) +Chars 44102 - 44108 [Proof.] 0. secs (0.u,0.s) +Chars 44111 - 44118 [intros.] 0. secs (0.u,0.s) +Chars 44121 - 44156 [eapply~eqit_secure_eq_trans;~e...] 0. secs (0.u,0.s) +Chars 44159 - 44181 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44182 - 44215 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) +Chars 44216 - 44220 [Qed.] 0. secs (0.u,0.s) +Chars 44223 - 44422 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) +Chars 44423 - 44429 [Proof.] 0. secs (0.u,0.s) +Chars 44432 - 44445 [repeat~intro.] 0. secs (0.u,0.s) +Chars 44446 - 44472 [destruct~b;~split;~intros.] 0. secs (0.u,0.s) +Chars 44475 - 44476 [-] 0. secs (0.u,0.s) +Chars 44477 - 44515 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) +Chars 44520 - 44542 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44543 - 44581 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) +Chars 44586 - 44608 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44609 - 44614 [auto.] 0. secs (0.u,0.s) +Chars 44617 - 44618 [-] 0. secs (0.u,0.s) +Chars 44619 - 44642 [assert~(x~≈~y);~auto.] 0. secs (0.u,0.s) +Chars 44643 - 44668 [assert~(x0~≈~y0);~auto.] 0. secs (0.u,0.s) +Chars 44673 - 44688 [symmetry~in~H2.] 0. secs (0.u,0.s) +Chars 44693 - 44731 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) +Chars 44736 - 44751 [symmetry~in~H3.] 0. secs (0.u,0.s) +Chars 44752 - 44774 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44779 - 44817 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) +Chars 44822 - 44844 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44845 - 44850 [auto.] 0. secs (0.u,0.s) +Chars 44853 - 44854 [-] 0. secs (0.u,0.s) +Chars 44855 - 44892 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) +Chars 44897 - 44919 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44920 - 44957 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) +Chars 44962 - 44984 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 44985 - 44990 [auto.] 0. secs (0.u,0.s) +Chars 44993 - 44994 [-] 0. secs (0.u,0.s) +Chars 44995 - 45018 [assert~(x~≅~y);~auto.] 0. secs (0.u,0.s) +Chars 45019 - 45044 [assert~(x0~≅~y0);~auto.] 0. secs (0.u,0.s) +Chars 45049 - 45064 [symmetry~in~H2.] 0. secs (0.u,0.s) +Chars 45065 - 45080 [symmetry~in~H3.] 0. secs (0.u,0.s) +Chars 45085 - 45122 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) +Chars 45127 - 45149 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 45150 - 45187 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) +Chars 45192 - 45214 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 45215 - 45220 [auto.] 0. secs (0.u,0.s) +Chars 45221 - 45225 [Qed.] 0.001 secs (0.001u,0.s) +Chars 45227 - 45484 [#[global]~Instance~proper_eqit...] 0.002 secs (0.002u,0.s) +Chars 45485 - 45491 [Proof.] 0. secs (0.u,0.s) +Chars 45494 - 45522 [repeat~intro;~split;~intros.] 0. secs (0.u,0.s) +Chars 45525 - 45526 [-] 0. secs (0.u,0.s) +Chars 45527 - 45589 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) +Chars 45594 - 45595 [{] 0. secs (0.u,0.s) +Chars 45596 - 45603 [intros.] 0. secs (0.u,0.s) +Chars 45604 - 45611 [inv~H2.] 0. secs (0.u,0.s) +Chars 45612 - 45613 [}] 0. secs (0.u,0.s) +Chars 45618 - 45650 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) +Chars 45655 - 45677 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 45682 - 45758 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) +Chars 45763 - 45764 [{] 0. secs (0.u,0.s) +Chars 45765 - 45772 [intros.] 0. secs (0.u,0.s) +Chars 45773 - 45780 [inv~H2.] 0. secs (0.u,0.s) +Chars 45781 - 45782 [}] 0. secs (0.u,0.s) +Chars 45787 - 45819 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) +Chars 45820 - 45842 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 45843 - 45848 [auto.] 0. secs (0.u,0.s) +Chars 45851 - 45852 [-] 0. secs (0.u,0.s) +Chars 45853 - 45900 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) +Chars 45905 - 45906 [{] 0. secs (0.u,0.s) +Chars 45907 - 45929 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 45930 - 45963 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) +Chars 45964 - 45965 [}] 0. secs (0.u,0.s) +Chars 45970 - 46025 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) +Chars 46030 - 46031 [{] 0. secs (0.u,0.s) +Chars 46032 - 46039 [intros.] 0. secs (0.u,0.s) +Chars 46040 - 46047 [inv~H3.] 0. secs (0.u,0.s) +Chars 46048 - 46049 [}] 0. secs (0.u,0.s) +Chars 46054 - 46086 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) +Chars 46091 - 46136 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) +Chars 46141 - 46142 [{] 0. secs (0.u,0.s) +Chars 46143 - 46165 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 46166 - 46199 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) +Chars 46200 - 46201 [}] 0. secs (0.u,0.s) +Chars 46206 - 46261 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) +Chars 46266 - 46267 [{] 0. secs (0.u,0.s) +Chars 46268 - 46275 [intros.] 0. secs (0.u,0.s) +Chars 46276 - 46283 [inv~H4.] 0. secs (0.u,0.s) +Chars 46284 - 46285 [}] 0. secs (0.u,0.s) +Chars 46290 - 46322 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) +Chars 46323 - 46327 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/SecureEqEuttTrans.v.timing b/extra/Secure/SecureEqEuttTrans.v.timing index 317ef9e6..04e3dc0a 100644 --- a/extra/Secure/SecureEqEuttTrans.v.timing +++ b/extra/Secure/SecureEqEuttTrans.v.timing @@ -1,7 +1,244 @@ -Chars 0 - 65 [From~ITree~Require~Import~Axio...] 0.303 secs (0.198u,0.036s) -Chars 67 - 154 [From~ITree.Extra~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 156 - 186 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) -Chars 188 - 202 [Import~Monads.] 0. secs (0.u,0.s) -Chars 203 - 224 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 225 - 254 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 257 - 966 [Lemma~eses_aux3~:~~~forall~(E~...] 0.001 secs (0.001u,0.s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 38 - 103 [From~ITree~Require~Import~Axio...] 0.161 secs (0.143u,0.017s) +Chars 106 - 193 [From~ITree.Extra~Require~Impor...] 0.005 secs (0.004u,0.s) +Chars 195 - 209 [Import~Monads.] 0. secs (0.u,0.s) +Chars 210 - 231 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 232 - 261 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 264 - 853 [Lemma~eses_aux3~:~~~forall~(E~...] 0.001 secs (0.001u,0.s) +Chars 854 - 860 [Proof.] 0. secs (0.u,0.s) +Chars 863 - 922 [intros~E~R3~R1~Label~priv~l~R2...] 0. secs (0.u,0.s) +Chars 925 - 949 [remember~(RetF~r0)~as~x.] 0. secs (0.u,0.s) +Chars 952 - 964 [step~in~REL.] 0. secs (0.u,0.s) +Chars 965 - 1015 [hinduction~Hsec~before~r;~intr...] 0.041 secs (0.038u,0.002s) +Chars 1018 - 1019 [-] 0. secs (0.u,0.s) +Chars 1020 - 1044 [remember~(RetF~r2)~as~y.] 0. secs (0.u,0.s) +Chars 1045 - 1105 [hinduction~REL~before~r;~intro...] 0.004 secs (0.004u,0.s) +Chars 1108 - 1109 [-] 0. secs (0.u,0.s) +Chars 1110 - 1131 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 1132 - 1139 [unstep.] 0.036 secs (0.035u,0.s) +Chars 1140 - 1172 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.002 secs (0.002u,0.s) +Chars 1173 - 1178 [step.] 0.001 secs (0.001u,0.s) +Chars 1179 - 1184 [auto.] 0. secs (0.u,0.s) +Chars 1187 - 1188 [-] 0. secs (0.u,0.s) +Chars 1189 - 1215 [remember~(VisF~e~k2)~as~y.] 0. secs (0.u,0.s) +Chars 1220 - 1301 [hinduction~REL~before~r;~intro...] 0.165 secs (0.163u,0.001s) +Chars 1307 - 1318 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 1319 - 1336 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 1337 - 1348 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 1349 - 1353 [Qed.] 0.012 secs (0.011u,0.s) +Chars 1356 - 2161 [Lemma~eses_aux4~:~~~forall~(E~...] 0.001 secs (0.001u,0.s) +Chars 2162 - 2168 [Proof.] 0. secs (0.u,0.s) +Chars 2171 - 2246 [intros~E~R3~R1~Label~priv~l~R2...] 0. secs (0.u,0.s) +Chars 2249 - 2261 [step~in~REL.] 0. secs (0.u,0.s) +Chars 2262 - 2287 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) +Chars 2290 - 2373 [hinduction~Hsec~before~r;~intr...] 0.062 secs (0.062u,0.s) +Chars 2376 - 2377 [-] 0. secs (0.u,0.s) +Chars 2378 - 2399 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 2400 - 2407 [unstep.] 0.002 secs (0.002u,0.s) +Chars 2408 - 2433 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) +Chars 2434 - 2439 [step.] 0.001 secs (0.001u,0.s) +Chars 2440 - 2445 [auto.] 0. secs (0.u,0.s) +Chars 2448 - 2449 [-] 0. secs (0.u,0.s) +Chars 2451 - 2480 [inv~REL;~ddestruction;~subst.] 0.009 secs (0.009u,0.s) +Chars 2485 - 2486 [+] 0. secs (0.u,0.s) +Chars 2487 - 2505 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 2506 - 2513 [intros.] 0. secs (0.u,0.s) +Chars 2514 - 2543 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 2548 - 2549 [+] 0. secs (0.u,0.s) +Chars 2550 - 2568 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 2569 - 2596 [remember~(VisF~e0~k2)~as~y.] 0. secs (0.u,0.s) +Chars 2603 - 2686 [hinduction~REL0~before~r;~intr...] 0.011 secs (0.011u,0.s) +Chars 2693 - 2694 [*] 0. secs (0.u,0.s) +Chars 2695 - 2713 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 2714 - 2721 [intros.] 0. secs (0.u,0.s) +Chars 2722 - 2751 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 2758 - 2759 [*] 0. secs (0.u,0.s) +Chars 2760 - 2778 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 2779 - 2800 [eapply~IHREL0;~eauto.] 0. secs (0.u,0.s) +Chars 2803 - 2804 [-] 0. secs (0.u,0.s) +Chars 2805 - 2816 [rewrite~H2.] 0. secs (0.u,0.s) +Chars 2817 - 2843 [remember~(VisF~e~k2)~as~y.] 0. secs (0.u,0.s) +Chars 2848 - 2930 [hinduction~REL~before~r;~intro...] 0.011 secs (0.011u,0.s) +Chars 2935 - 2936 [+] 0. secs (0.u,0.s) +Chars 2937 - 2961 [rewrite~itree_eta'~~at~1.] 0.016 secs (0.016u,0.s) +Chars 2962 - 2973 [unpriv_ind.] 0. secs (0.u,0.s) +Chars 2974 - 2988 [rewrite~<-~H2.] 0. secs (0.u,0.s) +Chars 2989 - 3006 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 3013 - 3024 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 3029 - 3030 [+] 0. secs (0.u,0.s) +Chars 3031 - 3049 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3050 - 3070 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) +Chars 3071 - 3075 [Qed.] 0.032 secs (0.032u,0.s) +Chars 3176 - 3480 [Lemma~eutt_secure_eqit_secure~...] 0. secs (0.u,0.s) +Chars 3481 - 3487 [Proof.] 0. secs (0.u,0.s) +Chars 3490 - 3529 [intros~E~Label~priv~l~R1~R2~R3...] 0. secs (0.u,0.s) +Chars 3530 - 3549 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3550 - 3577 [intros~t1~t2~t3~Hsec~Heutt.] 0. secs (0.u,0.s) +Chars 3580 - 3594 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 3595 - 3608 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 3609 - 3618 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 3621 - 3679 [hinduction~Heutt~before~c;~int...] 0.003 secs (0.003u,0.s) +Chars 3682 - 3683 [-] 0. secs (0.u,0.s) +Chars 3684 - 3708 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) +Chars 3709 - 3734 [remember~(RetF~r1)~as~y.] 0. secs (0.u,0.s) +Chars 3735 - 3820 [hinduction~Hsec~before~c;~intr...] 0.033 secs (0.032u,0.s) +Chars 3825 - 3826 [+] 0. secs (0.u,0.s) +Chars 3827 - 3857 [constructor;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 3862 - 3863 [+] 0. secs (0.u,0.s) +Chars 3864 - 3882 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3883 - 3904 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) +Chars 3909 - 3910 [+] 0. secs (0.u,0.s) +Chars 3911 - 3930 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 3931 - 3942 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 3943 - 3960 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 3963 - 3964 [-] 0. secs (0.u,0.s) +Chars 3965 - 3985 [genobs_clear~t1~ot1.] 0. secs (0.u,0.s) +Chars 3990 - 4064 [assert~(Ht1~:~(exists~m3,~ot1~...] 0. secs (0.u,0.s) +Chars 4069 - 4070 [{] 0. secs (0.u,0.s) +Chars 4071 - 4126 [destruct~ot1;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) +Chars 4127 - 4128 [}] 0. secs (0.u,0.s) +Chars 4199 - 4234 [destruct~Ht1~as~[[m3~Hm3]|~Ht1].] 0. secs (0.u,0.s) +Chars 4239 - 4240 [+] 0. secs (0.u,0.s) +Chars 4241 - 4247 [subst.] 0. secs (0.u,0.s) +Chars 4249 - 4261 [constructor.] 0. secs (0.u,0.s) +Chars 4262 - 4280 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 4287 - 4309 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 4310 - 4332 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 4333 - 4355 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 4362 - 4384 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 4385 - 4390 [step.] 0. secs (0.u,0.s) +Chars 4391 - 4396 [auto.] 0. secs (0.u,0.s) +Chars 4401 - 4402 [+] 0. secs (0.u,0.s) +Chars 4403 - 4456 [destruct~ot1;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) +Chars 4463 - 4464 [*] 0. secs (0.u,0.s) +Chars 4466 - 4485 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 4486 - 4513 [rewrite~itree_eta'~in~Hsec.] 0. secs (0.u,0.s) +Chars 4522 - 4546 [eapply~eses_aux3;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4547 - 4552 [step.] 0.001 secs (0.001u,0.s) +Chars 4553 - 4565 [constructor.] 0. secs (0.u,0.s) +Chars 4566 - 4571 [auto.] 0. secs (0.u,0.s) +Chars 4578 - 4579 [*] 0. secs (0.u,0.s) +Chars 4580 - 4628 [assert~(leq~(priv~_~e)~l~\/~~~...] 0. secs (0.u,0.s) +Chars 4637 - 4638 [{] 0. secs (0.u,0.s) +Chars 4639 - 4653 [apply~classic.] 0. secs (0.u,0.s) +Chars 4654 - 4655 [}] 0. secs (0.u,0.s) +Chars 4664 - 4731 [destruct~H~as~[SECCHECK|~SECCH...] 0. secs (0.u,0.s) +Chars 4740 - 4742 [++] 0. secs (0.u,0.s) +Chars 4744 - 4763 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 4764 - 4791 [rewrite~itree_eta'~in~Hsec.] 0. secs (0.u,0.s) +Chars 4803 - 4827 [eapply~eses_aux4;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4828 - 4850 [do~2~rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) +Chars 4851 - 4856 [auto.] 0. secs (0.u,0.s) +Chars 4865 - 4867 [++] 0. secs (0.u,0.s) +Chars 4869 - 4888 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 4900 - 4927 [rewrite~itree_eta'~in~Hsec.] 0. secs (0.u,0.s) +Chars 4928 - 4952 [eapply~eses_aux4;~eauto.] 0.001 secs (0.001u,0.s) +Chars 4964 - 4986 [do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 4987 - 4992 [auto.] 0. secs (0.u,0.s) +Chars 5001 - 5003 [++] 0. secs (0.u,0.s) +Chars 5004 - 5016 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 5017 - 5035 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 5047 - 5069 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 5070 - 5092 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 5093 - 5115 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 5127 - 5132 [step.] 0. secs (0.u,0.s) +Chars 5133 - 5138 [auto.] 0. secs (0.u,0.s) +Chars 5147 - 5149 [++] 0. secs (0.u,0.s) +Chars 5161 - 5171 [unpriv_co.] 0. secs (0.u,0.s) +Chars 5172 - 5198 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) +Chars 5210 - 5232 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 5233 - 5255 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 5267 - 5289 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 5301 - 5336 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) +Chars 5348 - 5353 [step.] 0. secs (0.u,0.s) +Chars 5354 - 5359 [auto.] 0. secs (0.u,0.s) +Chars 5362 - 5363 [-] 0. secs (0.u,0.s) +Chars 5365 - 5405 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 5410 - 5411 [+] 0. secs (0.u,0.s) +Chars 5412 - 5432 [genobs_clear~t1~ot1.] 0. secs (0.u,0.s) +Chars 5439 - 5465 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) +Chars 5472 - 5583 [hinduction~Hsec~before~c;~intr...] 0.114 secs (0.112u,0.s) +Chars 5590 - 5591 [*] 0. secs (0.u,0.s) +Chars 5592 - 5610 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5611 - 5618 [intros.] 0. secs (0.u,0.s) +Chars 5619 - 5648 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 5649 - 5657 [apply~H.] 0. secs (0.u,0.s) +Chars 5664 - 5665 [*] 0. secs (0.u,0.s) +Chars 5666 - 5685 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 5686 - 5697 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 5698 - 5715 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 5720 - 5721 [+] 0. secs (0.u,0.s) +Chars 5722 - 5748 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) +Chars 5755 - 5838 [hinduction~Hsec~before~c;~intr...] 0.068 secs (0.066u,0.s) +Chars 5845 - 5846 [*] 0. secs (0.u,0.s) +Chars 5847 - 5864 [eauto~with~itree.] 0.019 secs (0.018u,0.s) +Chars 5871 - 5872 [*] 0. secs (0.u,0.s) +Chars 5874 - 5884 [unpriv_co.] 0. secs (0.u,0.s) +Chars 5885 - 5914 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 5915 - 5923 [apply~H.] 0. secs (0.u,0.s) +Chars 5930 - 5931 [*] 0. secs (0.u,0.s) +Chars 5933 - 5943 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 5944 - 5973 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 5974 - 5982 [apply~H.] 0. secs (0.u,0.s) +Chars 5989 - 5990 [*] 0. secs (0.u,0.s) +Chars 5991 - 6010 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 6011 - 6022 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 6023 - 6040 [eapply~H0;~eauto.] 0. secs (0.u,0.s) +Chars 6047 - 6048 [*] 0. secs (0.u,0.s) +Chars 6049 - 6071 [destruct~(observe~t0).] 0.001 secs (0.001u,0.s) +Chars 6080 - 6082 [--] 0. secs (0.u,0.s) +Chars 6083 - 6107 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.014u,0.s) +Chars 6108 - 6119 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 6131 - 6148 [specialize~(H~a).] 0. secs (0.u,0.s) +Chars 6160 - 6184 [eapply~eses_aux3;~eauto.] 0. secs (0.u,0.s) +Chars 6185 - 6195 [apply~REL.] 0. secs (0.u,0.s) +Chars 6205 - 6207 [--] 0. secs (0.u,0.s) +Chars 6208 - 6218 [unpriv_co.] 0. secs (0.u,0.s) +Chars 6219 - 6248 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6249 - 6271 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 6283 - 6288 [step.] 0. secs (0.u,0.s) +Chars 6289 - 6297 [apply~H.] 0. secs (0.u,0.s) +Chars 6306 - 6308 [--] 0. secs (0.u,0.s) +Chars 6309 - 6349 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) +Chars 6361 - 6363 [++] 0. secs (0.u,0.s) +Chars 6364 - 6388 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.014u,0.s) +Chars 6389 - 6400 [unpriv_ind.] 0.001 secs (0.001u,0.s) +Chars 6415 - 6439 [eapply~eses_aux4;~eauto.] 0.001 secs (0.001u,0.s) +Chars 6440 - 6450 [apply~REL.] 0. secs (0.u,0.s) +Chars 6463 - 6465 [++] 0. secs (0.u,0.s) +Chars 6466 - 6493 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) +Chars 6508 - 6510 [**] 0. secs (0.u,0.s) +Chars 6511 - 6523 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 6524 - 6553 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6554 - 6559 [step.] 0. secs (0.u,0.s) +Chars 6560 - 6568 [apply~H.] 0. secs (0.u,0.s) +Chars 6583 - 6585 [**] 0. secs (0.u,0.s) +Chars 6586 - 6596 [unpriv_co.] 0.001 secs (0.001u,0.s) +Chars 6597 - 6626 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6644 - 6679 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) +Chars 6680 - 6685 [step.] 0. secs (0.u,0.s) +Chars 6686 - 6694 [apply~H.] 0. secs (0.u,0.s) +Chars 6701 - 6702 [*] 0. secs (0.u,0.s) +Chars 6704 - 6716 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 6717 - 6735 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 6736 - 6741 [step.] 0.001 secs (0.001u,0.s) +Chars 6750 - 6787 [constructor;~intros;~auto~with...] 0. secs (0.u,0.s) +Chars 6794 - 6795 [*] 0. secs (0.u,0.s) +Chars 6797 - 6809 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 6810 - 6839 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6840 - 6848 [apply~H.] 0. secs (0.u,0.s) +Chars 6855 - 6856 [*] 0. secs (0.u,0.s) +Chars 6858 - 6870 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 6871 - 6900 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 6901 - 6909 [apply~H.] 0. secs (0.u,0.s) +Chars 6918 - 6923 [step.] 0.001 secs (0.001u,0.s) +Chars 6924 - 6953 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 6956 - 6957 [-] 0. secs (0.u,0.s) +Chars 6958 - 6980 [eapply~IHHeutt;~eauto.] 0. secs (0.u,0.s) +Chars 6981 - 6988 [unstep.] 0. secs (0.u,0.s) +Chars 6989 - 7011 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 7016 - 7038 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) +Chars 7039 - 7061 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 7062 - 7067 [step.] 0. secs (0.u,0.s) +Chars 7068 - 7073 [auto.] 0. secs (0.u,0.s) +Chars 7074 - 7078 [Qed.] 0.069 secs (0.069u,0.s) diff --git a/extra/Secure/SecureEqHalt.v.timing b/extra/Secure/SecureEqHalt.v.timing index 3cda1f14..e40df8e2 100644 --- a/extra/Secure/SecureEqHalt.v.timing +++ b/extra/Secure/SecureEqHalt.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.036 secs (0.028u,0.007s) -Chars 211 - 295 [From~ITree~Require~Import~Basi...] 0.19 secs (0.172u,0.018s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.024 secs (0.019u,0.005s) +Chars 211 - 295 [From~ITree~Require~Import~Basi...] 0.138 secs (0.127u,0.011s) Chars 297 - 343 [From~ITree.Extra~Require~Expor...] 0. secs (0.u,0.s) Chars 346 - 360 [Import~Monads.] 0. secs (0.u,0.s) Chars 361 - 382 [Import~MonadNotation.] 0. secs (0.u,0.s) @@ -11,19 +11,19 @@ Chars 546 - 573 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) Chars 576 - 612 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) Chars 615 - 647 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) Chars 651 - 689 [Coercion~is_true~:~bool~>->~So...] 0. secs (0.u,0.s) -Chars 692 - 3799 [Inductive~secure_eqitF~(b1~b2~...] 0.015 secs (0.012u,0.003s) +Chars 692 - 3799 [Inductive~secure_eqitF~(b1~b2~...] 0.011 secs (0.009u,0.001s) Chars 3803 - 3842 [Hint~Constructors~secure_eqitF...] 0. secs (0.u,0.s) Chars 3846 - 4040 [Definition~secure_eqit_~(b1~b2...] 0. secs (0.u,0.s) Chars 4044 - 4077 [Hint~Unfold~secure_eqit_:~itree.] 0. secs (0.u,0.s) Chars 4080 - 4212 [Lemma~secure_eqitF_mono~b1~b2~...] 0. secs (0.u,0.s) Chars 4215 - 4221 [Proof.] 0. secs (0.u,0.s) Chars 4226 - 4234 [intros~!.] 0. secs (0.u,0.s) -Chars 4235 - 4250 [(red;~red~in~H0).] 0. secs (0.u,0.s) -Chars 4256 - 4333 [(induction~H0;~~~try~(solve~[~...] 0.272 secs (0.257u,0.014s) +Chars 4235 - 4250 [red;~red~in~H0.] 0. secs (0.u,0.s) +Chars 4256 - 4333 [induction~H0;~~try~(solve~[~co...] 0.211 secs (0.205u,0.004s) Chars 4336 - 4340 [Qed.] 0.001 secs (0.001u,0.s) Chars 4344 - 4420 [Definition~secure_eqit_mon~b1~...] 0. secs (0.u,0.s) Chars 4424 - 4488 [Definition~eqit_secure~b1~b2~l...] 0. secs (0.u,0.s) -Chars 4887 - 4905 [End~SecureUntimed.] 0.002 secs (0.002u,0.s) +Chars 4887 - 4905 [End~SecureUntimed.] 0.001 secs (0.001u,0.s) Chars 4907 - 4956 [#[global]~Hint~Constructors~se...] 0. secs (0.u,0.s) Chars 4958 - 5048 [Definition~NatPreorder~:~Preor...] 0. secs (0.u,0.s) Chars 5050 - 5232 [Ltac~~unpriv_co~:=~~~try~apply...] 0. secs (0.u,0.s) @@ -36,38 +36,38 @@ Chars 5951 - 6014 [Context~(Label~:~Preorder)~(pr...] 0. secs (0.u,0.s) Chars 7253 - 7270 [End~eqit_secureC.] 0. secs (0.u,0.s) Chars 7296 - 7495 [Lemma~eqit_secure_sym~:~~~fora...] 0. secs (0.u,0.s) Chars 7496 - 7502 [Proof.] 0. secs (0.u,0.s) -Chars 7505 - 7542 [(intros~b1~b2~E~R1~R2~RR~Label...] 0. secs (0.u,0.s) -Chars 7543 - 7562 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 7565 - 7583 [(intros~t1~t2~Hsec).] 0. secs (0.u,0.s) +Chars 7505 - 7542 [intros~b1~b2~E~R1~R2~RR~Label~...] 0. secs (0.u,0.s) +Chars 7543 - 7562 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 7565 - 7583 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) Chars 7584 - 7597 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 7600 - 7710 [(hinduction~Hsec~before~c;~int...] 0.266 secs (0.263u,0.002s) +Chars 7600 - 7710 [hinduction~Hsec~before~c;~intr...] 0.201 secs (0.199u,0.001s) Chars 7713 - 7714 [-] 0. secs (0.u,0.s) -Chars 7715 - 7744 [(constructor;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 7745 - 7752 [(intros).] 0. secs (0.u,0.s) -Chars 7753 - 7772 [(apply~CIH;~apply~H).] 0. secs (0.u,0.s) +Chars 7715 - 7744 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 7745 - 7752 [intros.] 0. secs (0.u,0.s) +Chars 7753 - 7772 [apply~CIH;~apply~H.] 0. secs (0.u,0.s) Chars 7775 - 7776 [-] 0. secs (0.u,0.s) -Chars 7777 - 7788 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7789 - 7797 [(apply~H).] 0. secs (0.u,0.s) +Chars 7777 - 7788 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7789 - 7797 [apply~H.] 0. secs (0.u,0.s) Chars 7801 - 7802 [-] 0. secs (0.u,0.s) -Chars 7803 - 7814 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7815 - 7823 [(apply~H).] 0. secs (0.u,0.s) -Chars 7825 - 7829 [Qed.] 0.005 secs (0.005u,0.s) +Chars 7803 - 7814 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7815 - 7823 [apply~H.] 0. secs (0.u,0.s) +Chars 7825 - 7829 [Qed.] 0.004 secs (0.004u,0.s) Chars 7832 - 8094 [Lemma~secure_eqit_mono~:~~~for...] 0. secs (0.u,0.s) Chars 8095 - 8101 [Proof.] 0. secs (0.u,0.s) -Chars 8104 - 8111 [(intros).] 0. secs (0.u,0.s) +Chars 8104 - 8111 [intros.] 0. secs (0.u,0.s) Chars 8112 - 8136 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 8137 - 8147 [revert~t1.] 0. secs (0.u,0.s) -Chars 8148 - 8166 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) -Chars 8169 - 8187 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 8148 - 8166 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 8169 - 8187 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) Chars 8188 - 8193 [icbn.] 0. secs (0.u,0.s) Chars 8197 - 8210 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 8213 - 8391 [(hinduction~Ht12~before~l;~int...] 0.037 secs (0.037u,0.s) +Chars 8213 - 8391 [hinduction~Ht12~before~l;~intr...] 0.025 secs (0.025u,0.s) Chars 8395 - 8396 [-] 0. secs (0.u,0.s) -Chars 8397 - 8415 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 8397 - 8415 [constructor;~auto.] 0. secs (0.u,0.s) Chars 8416 - 8429 [now~apply~H2.] 0. secs (0.u,0.s) Chars 8433 - 8434 [-] 0. secs (0.u,0.s) -Chars 8435 - 8462 [(constructor;~intros;~eauto).] 0. secs (0.u,0.s) -Chars 8463 - 8474 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 8475 - 8483 [(apply~H).] 0. secs (0.u,0.s) -Chars 8485 - 8489 [Qed.] 0.006 secs (0.006u,0.s) +Chars 8435 - 8462 [constructor;~intros;~eauto.] 0. secs (0.u,0.s) +Chars 8463 - 8474 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8475 - 8483 [apply~H.] 0. secs (0.u,0.s) +Chars 8485 - 8489 [Qed.] 0.005 secs (0.005u,0.s) Chars 8491 - 8520 [End~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqHaltProgInsens.v.timing b/extra/Secure/SecureEqHaltProgInsens.v.timing index 124e5a24..11742d3e 100644 --- a/extra/Secure/SecureEqHaltProgInsens.v.timing +++ b/extra/Secure/SecureEqHaltProgInsens.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.037 secs (0.029u,0.008s) -Chars 209 - 275 [From~ITree~Require~Import~Axio...] 0.193 secs (0.173u,0.019s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.025 secs (0.02u,0.005s) +Chars 209 - 275 [From~ITree~Require~Import~Axio...] 0.142 secs (0.13u,0.012s) Chars 277 - 323 [From~ITree.Extra~Require~Expor...] 0. secs (0.u,0.s) Chars 386 - 408 [Section~SecureUntimed.] 0. secs (0.u,0.s) Chars 411 - 453 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) @@ -8,19 +8,19 @@ Chars 456 - 483 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) Chars 486 - 522 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) Chars 525 - 557 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) Chars 561 - 599 [Coercion~is_true~:~bool~>->~So...] 0. secs (0.u,0.s) -Chars 603 - 3577 [Variant~secure_eqitF~(b1~b2~:~...] 0.012 secs (0.009u,0.002s) +Chars 603 - 3577 [Variant~secure_eqitF~(b1~b2~:~...] 0.008 secs (0.007u,0.001s) Chars 3581 - 3620 [Hint~Constructors~secure_eqitF...] 0. secs (0.u,0.s) Chars 3624 - 3818 [Definition~secure_eqit_~(b1~b2...] 0. secs (0.u,0.s) Chars 3822 - 3855 [Hint~Unfold~secure_eqit_:~itree.] 0. secs (0.u,0.s) Chars 3859 - 3987 [Lemma~secure_eqitF_mono~b1~b2~...] 0. secs (0.u,0.s) Chars 3990 - 3996 [Proof.] 0. secs (0.u,0.s) Chars 4001 - 4009 [intros~!.] 0. secs (0.u,0.s) -Chars 4010 - 4025 [(red;~red~in~H0).] 0. secs (0.u,0.s) -Chars 4030 - 4106 [(destruct~H0;~~~try~(solve~[~c...] 0.042 secs (0.036u,0.005s) +Chars 4010 - 4025 [red;~red~in~H0.] 0. secs (0.u,0.s) +Chars 4030 - 4106 [destruct~H0;~~try~(solve~[~con...] 0.031 secs (0.028u,0.002s) Chars 4110 - 4114 [Qed.] 0.001 secs (0.001u,0.s) Chars 4118 - 4194 [Definition~secure_eqit_mon~b1~...] 0. secs (0.u,0.s) Chars 4198 - 4262 [Definition~eqit_secure~b1~b2~l...] 0. secs (0.u,0.s) -Chars 4743 - 4761 [End~SecureUntimed.] 0.001 secs (0.001u,0.s) +Chars 4743 - 4761 [End~SecureUntimed.] 0. secs (0.u,0.s) Chars 4763 - 4812 [#[export]~Hint~Constructors~se...] 0. secs (0.u,0.s) Chars 4814 - 4904 [Definition~NatPreorder~:~Preor...] 0. secs (0.u,0.s) Chars 4906 - 4939 [Section~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) @@ -33,34 +33,34 @@ Chars 9253 - 9326 [Definition~eqit_secureC~b1~b2~...] 0. secs (0.u,0.s) Chars 9329 - 9362 [Hint~Unfold~eqit_secureC:~itree.] 0. secs (0.u,0.s) Chars 9366 - 9519 [Lemma~eqit_secureC_mon~b1~b2~r...] 0. secs (0.u,0.s) Chars 9522 - 9528 [Proof.] 0. secs (0.u,0.s) -Chars 9533 - 9563 [(destruct~IN;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 9533 - 9563 [destruct~IN;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 9566 - 9570 [Qed.] 0. secs (0.u,0.s) Chars 9572 - 9589 [End~eqit_secureC.] 0. secs (0.u,0.s) Chars 9593 - 9775 [Ltac~~unpriv_co~:=~~~try~apply...] 0. secs (0.u,0.s) Chars 9777 - 9912 [Ltac~~unpriv_ind~:=~~~try~appl...] 0. secs (0.u,0.s) Chars 9914 - 10309 [Ltac~~unpriv_halt~:=~~~match~g...] 0. secs (0.u,0.s) Chars 10311 - 10437 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 10580 - 10659 [Ltac~ne~A~:=~let~Hne~:=~fresh~...] 0. secs (0.u,0.s) +Chars 10580 - 10659 [Ltac~~ne~A~:=~let~Hne~:=~fresh...] 0. secs (0.u,0.s) Chars 10661 - 10860 [Lemma~eqit_secure_sym~:~~~fora...] 0. secs (0.u,0.s) Chars 10861 - 10867 [Proof.] 0. secs (0.u,0.s) -Chars 10870 - 10907 [(intros~b1~b2~E~R1~R2~RR~Label...] 0. secs (0.u,0.s) -Chars 10908 - 10927 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 10930 - 10948 [(intros~t1~t2~Hsec).] 0. secs (0.u,0.s) +Chars 10870 - 10907 [intros~b1~b2~E~R1~R2~RR~Label~...] 0. secs (0.u,0.s) +Chars 10908 - 10927 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 10930 - 10948 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) Chars 10949 - 10962 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 10965 - 11055 [(hinduction~Hsec~before~c;~int...] 0.053 secs (0.052u,0.s) -Chars 11056 - 11060 [Qed.] 0.006 secs (0.006u,0.s) -Chars 11063 - 11325 [Lemma~secure_eqit_mono~:~~~for...] 0.001 secs (0.u,0.s) +Chars 10965 - 11055 [hinduction~Hsec~before~c;~intr...] 0.042 secs (0.042u,0.s) +Chars 11056 - 11060 [Qed.] 0.004 secs (0.004u,0.s) +Chars 11063 - 11325 [Lemma~secure_eqit_mono~:~~~for...] 0. secs (0.u,0.s) Chars 11326 - 11332 [Proof.] 0. secs (0.u,0.s) -Chars 11335 - 11342 [(intros).] 0. secs (0.u,0.s) +Chars 11335 - 11342 [intros.] 0. secs (0.u,0.s) Chars 11343 - 11367 [generalize~dependent~t2.] 0. secs (0.u,0.s) Chars 11368 - 11378 [revert~t1.] 0. secs (0.u,0.s) -Chars 11379 - 11397 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 11400 - 11418 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 11379 - 11397 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 11400 - 11418 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) Chars 11419 - 11424 [icbn.] 0. secs (0.u,0.s) Chars 11428 - 11441 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 11444 - 11555 [(hinduction~Ht12~before~l;~int...] 0.027 secs (0.025u,0.001s) +Chars 11444 - 11555 [hinduction~Ht12~before~l;~intr...] 0.018 secs (0.018u,0.s) Chars 11559 - 11560 [-] 0. secs (0.u,0.s) -Chars 11561 - 11579 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 11561 - 11579 [constructor;~auto.] 0. secs (0.u,0.s) Chars 11580 - 11593 [now~apply~H2.] 0. secs (0.u,0.s) -Chars 11595 - 11599 [Qed.] 0.006 secs (0.006u,0.s) +Chars 11595 - 11599 [Qed.] 0.004 secs (0.004u,0.s) Chars 11601 - 11630 [End~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqProgInsens.v.timing b/extra/Secure/SecureEqProgInsens.v.timing new file mode 100644 index 00000000..7e7bff2e --- /dev/null +++ b/extra/Secure/SecureEqProgInsens.v.timing @@ -0,0 +1,527 @@ +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 37 - 89 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 91 - 156 [From~ITree~Require~Import~Axio...] 0.156 secs (0.141u,0.015s) +Chars 158 - 216 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) +Chars 219 - 233 [Import~Monads.] 0. secs (0.u,0.s) +Chars 234 - 255 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 256 - 285 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 349 - 374 [Section~SecureProgInsens.] 0. secs (0.u,0.s) +Chars 377 - 419 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 422 - 449 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) +Chars 452 - 488 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) +Chars 491 - 523 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) +Chars 626 - 2394 [Variant~pi_secure_eqitF~(b1~b2...] 0.005 secs (0.004u,0.s) +Chars 2398 - 2440 [Hint~Constructors~pi_secure_eq...] 0. secs (0.u,0.s) +Chars 2444 - 2644 [Definition~pi_secure_eqit_~(b1...] 0. secs (0.u,0.s) +Chars 2648 - 2684 [Hint~Unfold~pi_secure_eqit_:~i...] 0. secs (0.u,0.s) +Chars 2688 - 2829 [Lemma~pi_secure_eqitF_mono~b1~...] 0. secs (0.u,0.s) +Chars 2832 - 2838 [Proof.] 0. secs (0.u,0.s) +Chars 2843 - 2851 [intros~!.] 0. secs (0.u,0.s) +Chars 2852 - 2867 [red;~red~in~H0.] 0. secs (0.u,0.s) +Chars 2872 - 2949 [induction~H0;~~try~(solve~[~co...] 0.005 secs (0.004u,0.001s) +Chars 2952 - 2956 [Qed.] 0.023 secs (0.021u,0.001s) +Chars 2960 - 3042 [Definition~pi_secure_eqit_mon~...] 0. secs (0.u,0.s) +Chars 3046 - 3116 [Definition~pi_eqit_secure~b1~b...] 0. secs (0.u,0.s) +Chars 3118 - 3139 [End~SecureProgInsens.] 0. secs (0.u,0.s) +Chars 3141 - 3193 [#[export]~Hint~Constructors~pi...] 0. secs (0.u,0.s) +Chars 3194 - 3246 [#[global]~Hint~Constructors~pi...] 0. secs (0.u,0.s) +Chars 3248 - 3530 [Ltac~~unpriv_pi~:=~~~try~apply...] 0. secs (0.u,0.s) +Chars 3532 - 3658 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 3660 - 3709 [#[local]~Ltac~taul~:=~apply~pi...] 0. secs (0.u,0.s) +Chars 3710 - 3759 [#[local]~Ltac~taur~:=~apply~pi...] 0. secs (0.u,0.s) +Chars 3761 - 3963 [Lemma~eqit_secure_imp_pi_eqit_...] 0. secs (0.u,0.s) +Chars 3964 - 3970 [Proof.] 0. secs (0.u,0.s) +Chars 3973 - 3992 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3993 - 4010 [intros~t1~t2~Hps.] 0. secs (0.u,0.s) +Chars 4011 - 4023 [step~in~Hps.] 0. secs (0.u,0.s) +Chars 4026 - 4058 [hinduction~Hps~before~c;~intros.] 0.001 secs (0.001u,0.s) +Chars 4061 - 4062 [-] 0. secs (0.u,0.s) +Chars 4063 - 4092 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4095 - 4096 [-] 0. secs (0.u,0.s) +Chars 4097 - 4109 [constructor.] 0. secs (0.u,0.s) +Chars 4110 - 4120 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4121 - 4129 [apply~H.] 0. secs (0.u,0.s) +Chars 4132 - 4133 [-] 0. secs (0.u,0.s) +Chars 4134 - 4153 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 4154 - 4183 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4184 - 4195 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 4196 - 4201 [step.] 0. secs (0.u,0.s) +Chars 4202 - 4212 [apply~Hps.] 0. secs (0.u,0.s) +Chars 4215 - 4216 [-] 0. secs (0.u,0.s) +Chars 4217 - 4241 [rewrite~itree_eta'~~at~1.] 0.048 secs (0.047u,0.s) +Chars 4242 - 4271 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4272 - 4283 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 4284 - 4289 [step.] 0. secs (0.u,0.s) +Chars 4290 - 4300 [apply~Hps.] 0. secs (0.u,0.s) +Chars 4303 - 4304 [-] 0. secs (0.u,0.s) +Chars 4305 - 4334 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4335 - 4342 [intros.] 0. secs (0.u,0.s) +Chars 4343 - 4353 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4354 - 4362 [apply~H.] 0. secs (0.u,0.s) +Chars 4365 - 4366 [-] 0. secs (0.u,0.s) +Chars 4367 - 4377 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 4378 - 4398 [eapply~CIH;~apply~H.] 0. secs (0.u,0.s) +Chars 4401 - 4402 [-] 0. secs (0.u,0.s) +Chars 4403 - 4413 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 4414 - 4434 [eapply~CIH;~apply~H.] 0. secs (0.u,0.s) +Chars 4437 - 4438 [-] 0. secs (0.u,0.s) +Chars 4439 - 4449 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 4450 - 4470 [eapply~CIH;~apply~H.] 0. secs (0.u,0.s) +Chars 4473 - 4474 [-] 0. secs (0.u,0.s) +Chars 4475 - 4485 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 4486 - 4497 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 4498 - 4503 [step.] 0. secs (0.u,0.s) +Chars 4504 - 4512 [apply~H.] 0. secs (0.u,0.s) +Chars 4515 - 4516 [-] 0. secs (0.u,0.s) +Chars 4517 - 4527 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 4528 - 4539 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 4540 - 4545 [step.] 0. secs (0.u,0.s) +Chars 4546 - 4554 [apply~H.] 0. secs (0.u,0.s) +Chars 4557 - 4558 [-] 0. secs (0.u,0.s) +Chars 4559 - 4599 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.001 secs (0.001u,0.s) +Chars 4602 - 4603 [-] 0. secs (0.u,0.s) +Chars 4604 - 4644 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.001 secs (0.001u,0.s) +Chars 4647 - 4648 [-] 0. secs (0.u,0.s) +Chars 4649 - 4689 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.002 secs (0.002u,0.s) +Chars 4692 - 4693 [-] 0. secs (0.u,0.s) +Chars 4694 - 4734 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.003 secs (0.003u,0.s) +Chars 4735 - 4739 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4742 - 4943 [Lemma~pi_eqit_secure_sym~b1~b2...] 0. secs (0.u,0.s) +Chars 4944 - 4950 [Proof.] 0. secs (0.u,0.s) +Chars 4953 - 4972 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 4973 - 4991 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) +Chars 4992 - 5005 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 5008 - 5104 [hinduction~Hsec~before~c;~intr...] 0.325 secs (0.322u,0.002s) +Chars 5107 - 5125 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5126 - 5133 [intros.] 0. secs (0.u,0.s) +Chars 5134 - 5144 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5145 - 5153 [apply~H.] 0. secs (0.u,0.s) +Chars 5154 - 5158 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5161 - 5432 [Lemma~pi_secure_eqit_mono~:~~~...] 0. secs (0.u,0.s) +Chars 5433 - 5439 [Proof.] 0. secs (0.u,0.s) +Chars 5442 - 5449 [intros.] 0. secs (0.u,0.s) +Chars 5450 - 5474 [generalize~dependent~t2.] 0. secs (0.u,0.s) +Chars 5475 - 5485 [revert~t1.] 0. secs (0.u,0.s) +Chars 5486 - 5504 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 5507 - 5525 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) +Chars 5526 - 5531 [icbn.] 0. secs (0.u,0.s) +Chars 5534 - 5547 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 5550 - 5655 [hinduction~Ht12~before~l;~intr...] 0.017 secs (0.017u,0.s) +Chars 5658 - 5659 [-] 0. secs (0.u,0.s) +Chars 5660 - 5678 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5679 - 5692 [now~apply~H2.] 0. secs (0.u,0.s) +Chars 5695 - 5696 [-] 0. secs (0.u,0.s) +Chars 5697 - 5724 [constructor;~intros;~eauto.] 0. secs (0.u,0.s) +Chars 5725 - 5736 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 5737 - 5745 [apply~H.] 0. secs (0.u,0.s) +Chars 5746 - 5750 [Qed.] 0.003 secs (0.003u,0.s) +Chars 5753 - 5912 [Lemma~pi_eqit_secure_spin~b~E~...] 0. secs (0.u,0.s) +Chars 5913 - 5919 [Proof.] 0. secs (0.u,0.s) +Chars 5922 - 5941 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 5942 - 5949 [intros.] 0. secs (0.u,0.s) +Chars 5950 - 5954 [cbn.] 0. secs (0.u,0.s) +Chars 5955 - 5973 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5974 - 5978 [Qed.] 0. secs (0.u,0.s) +Chars 5980 - 6192 [Lemma~pi_eqit_secure_private_h...] 0. secs (0.u,0.s) +Chars 6193 - 6199 [Proof.] 0. secs (0.u,0.s) +Chars 6202 - 6220 [intros~HA~Hleq~t1.] 0. secs (0.u,0.s) +Chars 6221 - 6226 [step.] 0. secs (0.u,0.s) +Chars 6227 - 6231 [cbn.] 0. secs (0.u,0.s) +Chars 6232 - 6242 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 6243 - 6265 [inv~HA;~contradiction.] 0. secs (0.u,0.s) +Chars 6266 - 6270 [Qed.] 0. secs (0.u,0.s) +Chars 6272 - 6583 [Lemma~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) +Chars 6584 - 6590 [Proof.] 0. secs (0.u,0.s) +Chars 6593 - 6628 [intros~E~R1~b2~R2~RR1~Label~pr...] 0. secs (0.u,0.s) +Chars 6629 - 6647 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 6650 - 6668 [intros~t1~t2~Htau.] 0. secs (0.u,0.s) +Chars 6669 - 6682 [step~in~Htau.] 0. secs (0.u,0.s) +Chars 6685 - 6690 [icbn.] 0. secs (0.u,0.s) +Chars 6691 - 6700 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6703 - 6730 [inv~Htau;~eauto~with~itree.] 0.506 secs (0.5u,0.003s) +Chars 6733 - 6734 [-] 0. secs (0.u,0.s) +Chars 6735 - 6753 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 6754 - 6774 [apply~(gfp_chain~c).] 0. secs (0.u,0.s) +Chars 6775 - 6784 [apply~H1.] 0. secs (0.u,0.s) +Chars 6787 - 6788 [-] 0. secs (0.u,0.s) +Chars 6789 - 6807 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 6808 - 6818 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6819 - 6824 [step.] 0. secs (0.u,0.s) +Chars 6825 - 6839 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 6840 - 6851 [step~in~H1.] 0. secs (0.u,0.s) +Chars 6852 - 6861 [apply~H1.] 0. secs (0.u,0.s) +Chars 6864 - 6865 [-] 0. secs (0.u,0.s) +Chars 6866 - 6887 [apply~(gfp_bchain~c).] 0. secs (0.u,0.s) +Chars 6888 - 6897 [apply~H1.] 0. secs (0.u,0.s) +Chars 6900 - 6901 [-] 0. secs (0.u,0.s) +Chars 6902 - 6912 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 6913 - 6933 [apply~(gfp_chain~c).] 0. secs (0.u,0.s) +Chars 6934 - 6943 [apply~H1.] 0. secs (0.u,0.s) +Chars 6946 - 6947 [-] 0. secs (0.u,0.s) +Chars 6948 - 6958 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 6959 - 6969 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6970 - 6975 [step.] 0. secs (0.u,0.s) +Chars 6976 - 6990 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 6991 - 7009 [specialize~(H1~a).] 0. secs (0.u,0.s) +Chars 7010 - 7021 [step~in~H1.] 0. secs (0.u,0.s) +Chars 7022 - 7031 [apply~H1.] 0. secs (0.u,0.s) +Chars 7032 - 7036 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7038 - 7329 [Lemma~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) +Chars 7330 - 7336 [Proof.] 0. secs (0.u,0.s) +Chars 7339 - 7357 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 7358 - 7383 [intros~t1~t2~t3~Hsec~Heq.] 0. secs (0.u,0.s) +Chars 7386 - 7398 [step~in~Heq.] 0. secs (0.u,0.s) +Chars 7399 - 7412 [step~in~Hsec.] 0. secs (0.u,0.s) +Chars 7413 - 7418 [icbn.] 0. secs (0.u,0.s) +Chars 7419 - 7428 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 7431 - 7463 [hinduction~Heq~before~c;~intros.] 0.001 secs (0.001u,0.s) +Chars 7466 - 7467 [-] 0. secs (0.u,0.s) +Chars 7468 - 7506 [inv~Hsec;~eauto~with~itree;~un...] 0.013 secs (0.013u,0.s) +Chars 7511 - 7512 [+] 0. secs (0.u,0.s) +Chars 7513 - 7532 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 7533 - 7562 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 7563 - 7581 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 7582 - 7587 [step.] 0.001 secs (0.001u,0.s) +Chars 7588 - 7599 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7600 - 7612 [constructor.] 0. secs (0.u,0.s) +Chars 7613 - 7618 [auto.] 0. secs (0.u,0.s) +Chars 7623 - 7624 [+] 0. secs (0.u,0.s) +Chars 7625 - 7644 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 7645 - 7655 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 7656 - 7674 [eapply~CIH;~eauto.] 0.002 secs (0.001u,0.s) +Chars 7675 - 7684 [apply~H1.] 0. secs (0.u,0.s) +Chars 7685 - 7690 [step.] 0.001 secs (0.001u,0.s) +Chars 7691 - 7702 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7703 - 7721 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7724 - 7725 [-] 0. secs (0.u,0.s) +Chars 7726 - 7753 [inv~Hsec;~eauto~with~itree.] 0.039 secs (0.039u,0.s) +Chars 7758 - 7759 [+] 0. secs (0.u,0.s) +Chars 7760 - 7772 [constructor.] 0. secs (0.u,0.s) +Chars 7773 - 7802 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 7803 - 7808 [step.] 0.001 secs (0.001u,0.s) +Chars 7809 - 7820 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7821 - 7839 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 7840 - 7856 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 7861 - 7862 [+] 0. secs (0.u,0.s) +Chars 7863 - 7873 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 7874 - 7892 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 7893 - 7902 [apply~H1.] 0. secs (0.u,0.s) +Chars 7907 - 7908 [+] 0. secs (0.u,0.s) +Chars 7909 - 7919 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 7920 - 7931 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7932 - 7941 [apply~H1.] 0. secs (0.u,0.s) +Chars 7942 - 7947 [step.] 0.001 secs (0.001u,0.s) +Chars 7948 - 7959 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7960 - 7979 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 7980 - 7996 [now~step~in~REL.] 0. secs (0.u,0.s) +Chars 7999 - 8000 [-] 0. secs (0.u,0.s) +Chars 8001 - 8010 [inv~Hsec.] 0.024 secs (0.024u,0.s) +Chars 8015 - 8016 [+] 0. secs (0.u,0.s) +Chars 8017 - 8036 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 8037 - 8055 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8056 - 8074 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 8075 - 8080 [step.] 0.001 secs (0.001u,0.s) +Chars 8081 - 8092 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 8093 - 8105 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 8106 - 8116 [apply~REL.] 0. secs (0.u,0.s) +Chars 8121 - 8122 [+] 0. secs (0.u,0.s) +Chars 8123 - 8136 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 8137 - 8143 [subst.] 0. secs (0.u,0.s) +Chars 8144 - 8173 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 8174 - 8183 [intros~a.] 0. secs (0.u,0.s) +Chars 8184 - 8195 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8196 - 8205 [apply~H1.] 0. secs (0.u,0.s) +Chars 8206 - 8216 [apply~REL.] 0. secs (0.u,0.s) +Chars 8221 - 8222 [+] 0. secs (0.u,0.s) +Chars 8223 - 8236 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 8237 - 8243 [subst.] 0. secs (0.u,0.s) +Chars 8244 - 8254 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 8255 - 8266 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8267 - 8276 [apply~H1.] 0. secs (0.u,0.s) +Chars 8277 - 8287 [apply~REL.] 0. secs (0.u,0.s) +Chars 8292 - 8293 [+] 0. secs (0.u,0.s) +Chars 8294 - 8307 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 8308 - 8314 [subst.] 0. secs (0.u,0.s) +Chars 8315 - 8325 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 8326 - 8337 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8338 - 8347 [apply~H1.] 0. secs (0.u,0.s) +Chars 8348 - 8358 [apply~REL.] 0. secs (0.u,0.s) +Chars 8363 - 8364 [+] 0. secs (0.u,0.s) +Chars 8365 - 8394 [remember~(VisF~e~k2)~as~ovis.] 0. secs (0.u,0.s) +Chars 8395 - 8414 [rewrite~itree_eta'.] 0. secs (0.u,0.s) +Chars 8415 - 8425 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 8426 - 8442 [rewrite~Heqovis.] 0. secs (0.u,0.s) +Chars 8443 - 8454 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8455 - 8464 [apply~H1.] 0. secs (0.u,0.s) +Chars 8465 - 8470 [step.] 0.001 secs (0.001u,0.s) +Chars 8471 - 8482 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 8483 - 8495 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 8496 - 8506 [apply~REL.] 0. secs (0.u,0.s) +Chars 8511 - 8512 [+] 0. secs (0.u,0.s) +Chars 8513 - 8526 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 8527 - 8533 [subst.] 0. secs (0.u,0.s) +Chars 8534 - 8544 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 8545 - 8556 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 8557 - 8566 [apply~H1.] 0. secs (0.u,0.s) +Chars 8567 - 8577 [apply~REL.] 0. secs (0.u,0.s) +Chars 8580 - 8581 [-] 0. secs (0.u,0.s) +Chars 8582 - 8602 [eapply~IHHeq;~eauto.] 0. secs (0.u,0.s) +Chars 8603 - 8615 [clear~IHHeq.] 0. secs (0.u,0.s) +Chars 8616 - 8625 [inv~Hsec.] 0.031 secs (0.03u,0.s) +Chars 8630 - 8631 [+] 0. secs (0.u,0.s) +Chars 8632 - 8650 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8655 - 8656 [+] 0. secs (0.u,0.s) +Chars 8657 - 8667 [inv~CHECK.] 0.005 secs (0.005u,0.s) +Chars 8668 - 8686 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8687 - 8725 [apply~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) +Chars 8726 - 8731 [step.] 0. secs (0.u,0.s) +Chars 8732 - 8746 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 8747 - 8762 [now~step~in~H1.] 0. secs (0.u,0.s) +Chars 8767 - 8768 [+] 0. secs (0.u,0.s) +Chars 8769 - 8784 [now~step~in~H1.] 0. secs (0.u,0.s) +Chars 8789 - 8790 [+] 0. secs (0.u,0.s) +Chars 8791 - 8801 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 8806 - 8807 [+] 0. secs (0.u,0.s) +Chars 8808 - 8819 [inv~CHECK0.] 0.005 secs (0.005u,0.s) +Chars 8820 - 8830 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 8831 - 8869 [apply~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) +Chars 8870 - 8875 [step.] 0. secs (0.u,0.s) +Chars 8876 - 8890 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 8891 - 8909 [specialize~(H1~a).] 0. secs (0.u,0.s) +Chars 8910 - 8921 [step~in~H1.] 0. secs (0.u,0.s) +Chars 8922 - 8931 [apply~H1.] 0. secs (0.u,0.s) +Chars 8934 - 8935 [-] 0. secs (0.u,0.s) +Chars 8936 - 8954 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8955 - 8960 [step.] 0. secs (0.u,0.s) +Chars 8961 - 8981 [eapply~IHHeq;~eauto.] 0. secs (0.u,0.s) +Chars 8982 - 8986 [Qed.] 0.031 secs (0.031u,0.s) +Chars 8988 - 9312 [Lemma~pi_eqit_secure_RR_imp~b1...] 0. secs (0.u,0.s) +Chars 9313 - 9319 [Proof.] 0. secs (0.u,0.s) +Chars 9322 - 9334 [intros~Himp.] 0. secs (0.u,0.s) +Chars 9337 - 9356 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 9357 - 9375 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) +Chars 9376 - 9389 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 9392 - 9566 [hinduction~Ht12~before~c;~intr...] 0.326 secs (0.324u,0.001s) +Chars 9569 - 9587 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 9588 - 9595 [intros.] 0. secs (0.u,0.s) +Chars 9596 - 9607 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 9608 - 9616 [apply~H.] 0. secs (0.u,0.s) +Chars 9617 - 9621 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9623 - 10035 [Ltac~~inv_eq_itree~:=~~~repeat...] 0. secs (0.u,0.s) +Chars 10316 - 10548 [#[global]~Instance~pi_eqit_sec...] 0.001 secs (0.001u,0.s) +Chars 10549 - 10555 [Proof.] 0. secs (0.u,0.s) +Chars 10558 - 10567 [do~5~red.] 0. secs (0.u,0.s) +Chars 10568 - 10584 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 10585 - 10593 [clear~c.] 0. secs (0.u,0.s) +Chars 10594 - 10631 [intros~c~CIH~t1~t2~H12~t3~t4~H...] 0. secs (0.u,0.s) +Chars 10634 - 10652 [icbn;~icbn~in~Hpi.] 0. secs (0.u,0.s) +Chars 10653 - 10678 [step~in~H12;~step~in~H34.] 0. secs (0.u,0.s) +Chars 10682 - 10710 [induction~Hpi;~inv_eq_itree.] 0.197 secs (0.196u,0.001s) +Chars 10758 - 10780 [1,~2:~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 10784 - 10785 [-] 0. secs (0.u,0.s) +Chars 10786 - 10791 [taul.] 0. secs (0.u,0.s) +Chars 10792 - 10803 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 10804 - 10814 [apply~REL.] 0. secs (0.u,0.s) +Chars 10815 - 10831 [step;~apply~H34.] 0.001 secs (0.001u,0.s) +Chars 10832 - 10843 [assumption.] 0. secs (0.u,0.s) +Chars 10847 - 10848 [-] 0. secs (0.u,0.s) +Chars 10849 - 10854 [taur.] 0. secs (0.u,0.s) +Chars 10855 - 10866 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 10867 - 10883 [step;~apply~H12.] 0.001 secs (0.001u,0.s) +Chars 10884 - 10894 [apply~REL.] 0. secs (0.u,0.s) +Chars 10895 - 10906 [assumption.] 0. secs (0.u,0.s) +Chars 10910 - 10911 [-] 0. secs (0.u,0.s) +Chars 10912 - 10925 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 10926 - 10931 [evis.] 0.016 secs (0.016u,0.s) +Chars 10936 - 10937 [-] 0. secs (0.u,0.s) +Chars 10938 - 10951 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 10952 - 10962 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 10963 - 10974 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 10975 - 10986 [apply~REL0.] 0. secs (0.u,0.s) +Chars 10987 - 10997 [apply~REL.] 0. secs (0.u,0.s) +Chars 10998 - 11006 [apply~H.] 0. secs (0.u,0.s) +Chars 11010 - 11011 [-] 0. secs (0.u,0.s) +Chars 11012 - 11025 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 11026 - 11036 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 11037 - 11048 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 11049 - 11059 [apply~REL.] 0. secs (0.u,0.s) +Chars 11060 - 11071 [apply~REL0.] 0. secs (0.u,0.s) +Chars 11072 - 11080 [apply~H.] 0. secs (0.u,0.s) +Chars 11083 - 11084 [-] 0. secs (0.u,0.s) +Chars 11085 - 11098 [ddestruction.] 0.005 secs (0.005u,0.s) +Chars 11099 - 11109 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 11110 - 11121 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 11122 - 11133 [apply~REL0.] 0. secs (0.u,0.s) +Chars 11134 - 11144 [apply~REL.] 0. secs (0.u,0.s) +Chars 11145 - 11153 [apply~H.] 0. secs (0.u,0.s) +Chars 11156 - 11157 [-] 0. secs (0.u,0.s) +Chars 11158 - 11171 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 11172 - 11182 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 11183 - 11194 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 11195 - 11205 [apply~REL.] 0. secs (0.u,0.s) +Chars 11206 - 11222 [step;~apply~H34.] 0.001 secs (0.001u,0.s) +Chars 11223 - 11231 [apply~H.] 0. secs (0.u,0.s) +Chars 11235 - 11236 [-] 0. secs (0.u,0.s) +Chars 11237 - 11250 [ddestruction.] 0.001 secs (0.001u,0.s) +Chars 11251 - 11261 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 11262 - 11273 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 11274 - 11290 [step;~apply~H12.] 0.001 secs (0.001u,0.s) +Chars 11291 - 11301 [apply~REL.] 0. secs (0.u,0.s) +Chars 11302 - 11310 [apply~H.] 0. secs (0.u,0.s) +Chars 11311 - 11315 [Qed.] 0.046 secs (0.046u,0.s) +Chars 11500 - 11733 [#[global]~Instance~pi_eqit_sec...] 0. secs (0.u,0.s) +Chars 11734 - 11740 [Proof.] 0. secs (0.u,0.s) +Chars 11743 - 11849 [eapply~pi_eqit_secure_proper_s...] 0. secs (0.u,0.s) +Chars 11850 - 11854 [Qed.] 0. secs (0.u,0.s) +Chars 11856 - 12086 [#[global]~Instance~pi_eqit_sec...] 0. secs (0.u,0.s) +Chars 12087 - 12093 [Proof.] 0. secs (0.u,0.s) +Chars 12096 - 12125 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) +Chars 12126 - 12138 [intros~Hsec.] 0. secs (0.u,0.s) +Chars 12141 - 12198 [apply~pi_eqit_secure_RR_imp~wi...] 0. secs (0.u,0.s) +Chars 12201 - 12231 [intros~r0~r3~Hr;~inv~Hr;~auto.] 0. secs (0.u,0.s) +Chars 12234 - 12277 [eapply~pi_eqit_secure_mixed_tr...] 0. secs (0.u,0.s) +Chars 12280 - 12297 [symmetry~in~Ht34.] 0. secs (0.u,0.s) +Chars 12298 - 12309 [apply~Ht34.] 0. secs (0.u,0.s) +Chars 12312 - 12345 [apply~pi_eqit_secure_sym~in~Hsec.] 0. secs (0.u,0.s) +Chars 12346 - 12371 [apply~pi_eqit_secure_sym.] 0. secs (0.u,0.s) +Chars 12374 - 12391 [symmetry~in~Ht12.] 0. secs (0.u,0.s) +Chars 12394 - 12458 [apply~pi_eqit_secure_RR_imp~wi...] 0. secs (0.u,0.s) +Chars 12461 - 12491 [intros~r0~r3~Hr;~inv~Hr;~auto.] 0. secs (0.u,0.s) +Chars 12494 - 12535 [eapply~pi_eqit_secure_mixed_tr...] 0. secs (0.u,0.s) +Chars 12536 - 12540 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12543 - 12705 [Lemma~pi_eqit_secure_ret~E~Lab...] 0. secs (0.u,0.s) +Chars 12706 - 12712 [Proof.] 0. secs (0.u,0.s) +Chars 12715 - 12747 [intros;~step;~constructor;~auto.] 0. secs (0.u,0.s) +Chars 12748 - 12752 [Qed.] 0. secs (0.u,0.s) +Chars 12754 - 13147 [Lemma~pi_eqit_secure_bind~E~La...] 0. secs (0.u,0.s) +Chars 13148 - 13154 [Proof.] 0. secs (0.u,0.s) +Chars 13157 - 13176 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 13177 - 13199 [intros~?~?~Hk1k2~Ht1t2.] 0. secs (0.u,0.s) +Chars 13202 - 13216 [step~in~Ht1t2.] 0. secs (0.u,0.s) +Chars 13219 - 13234 [genobs~t1~Hot1.] 0. secs (0.u,0.s) +Chars 13238 - 13253 [genobs~t2~Hot2.] 0. secs (0.u,0.s) +Chars 13257 - 13291 [hinduction~Ht1t2~before~c;~int...] 0.001 secs (0.001u,0.s) +Chars 13294 - 13295 [-] 0. secs (0.u,0.s) +Chars 13296 - 13318 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) +Chars 13319 - 13327 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13328 - 13333 [step.] 0. secs (0.u,0.s) +Chars 13334 - 13346 [apply~Hk1k2.] 0. secs (0.u,0.s) +Chars 13347 - 13355 [apply~H.] 0. secs (0.u,0.s) +Chars 13359 - 13360 [-] 0. secs (0.u,0.s) +Chars 13361 - 13383 [rewrite~2!observe_bind.] 0. secs (0.u,0.s) +Chars 13384 - 13392 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13393 - 13398 [etau.] 0. secs (0.u,0.s) +Chars 13402 - 13403 [-] 0. secs (0.u,0.s) +Chars 13404 - 13425 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 13426 - 13434 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13435 - 13440 [taul.] 0. secs (0.u,0.s) +Chars 13447 - 13472 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 13473 - 13478 [step.] 0. secs (0.u,0.s) +Chars 13479 - 13487 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 13488 - 13499 [now~unstep.] 0. secs (0.u,0.s) +Chars 13503 - 13504 [-] 0. secs (0.u,0.s) +Chars 13505 - 13531 [rewrite~(observe_bind~t3).] 0. secs (0.u,0.s) +Chars 13532 - 13540 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 13541 - 13546 [taur.] 0. secs (0.u,0.s) +Chars 13551 - 13576 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 13577 - 13582 [step.] 0.002 secs (0.002u,0.s) +Chars 13583 - 13591 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 13592 - 13603 [now~unstep.] 0. secs (0.u,0.s) +Chars 13606 - 13607 [-] 0. secs (0.u,0.s) +Chars 13608 - 13630 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) +Chars 13631 - 13639 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13640 - 13658 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 13659 - 13666 [intros.] 0. secs (0.u,0.s) +Chars 13672 - 13697 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 13698 - 13703 [step.] 0. secs (0.u,0.s) +Chars 13704 - 13712 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 13713 - 13724 [now~unstep.] 0. secs (0.u,0.s) +Chars 13727 - 13728 [-] 0. secs (0.u,0.s) +Chars 13729 - 13751 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) +Chars 13752 - 13760 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13761 - 13771 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 13777 - 13802 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 13803 - 13808 [step.] 0. secs (0.u,0.s) +Chars 13809 - 13817 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 13818 - 13829 [now~unstep.] 0. secs (0.u,0.s) +Chars 13832 - 13833 [-] 0. secs (0.u,0.s) +Chars 13834 - 13856 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) +Chars 13857 - 13865 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13866 - 13876 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 13882 - 13907 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 13908 - 13913 [step.] 0. secs (0.u,0.s) +Chars 13914 - 13922 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 13923 - 13934 [now~unstep.] 0. secs (0.u,0.s) +Chars 13937 - 13938 [-] 0. secs (0.u,0.s) +Chars 13939 - 13961 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) +Chars 13962 - 13970 [simpobs.] 0.002 secs (0.002u,0.s) +Chars 13971 - 13981 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 13987 - 14012 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 14013 - 14018 [step.] 0. secs (0.u,0.s) +Chars 14019 - 14027 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14028 - 14039 [now~unstep.] 0. secs (0.u,0.s) +Chars 14042 - 14043 [-] 0. secs (0.u,0.s) +Chars 14045 - 14066 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 14067 - 14075 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 14076 - 14086 [unpriv_pi.] 0.001 secs (0.001u,0.s) +Chars 14092 - 14117 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 14118 - 14123 [step.] 0. secs (0.u,0.s) +Chars 14124 - 14132 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14133 - 14144 [now~unstep.] 0. secs (0.u,0.s) +Chars 14147 - 14148 [-] 0. secs (0.u,0.s) +Chars 14149 - 14175 [rewrite~(observe_bind~t2).] 0. secs (0.u,0.s) +Chars 14176 - 14184 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 14185 - 14195 [unpriv_pi.] 0. secs (0.u,0.s) +Chars 14201 - 14226 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) +Chars 14227 - 14232 [step.] 0. secs (0.u,0.s) +Chars 14233 - 14241 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 14242 - 14253 [now~unstep.] 0. secs (0.u,0.s) +Chars 14254 - 14258 [Qed.] 0.009 secs (0.009u,0.s) +Chars 14261 - 15400 [Lemma~pi_eqit_secure_iter_bind...] 0.002 secs (0.002u,0.s) +Chars 15401 - 15407 [Proof.] 0. secs (0.u,0.s) +Chars 15410 - 15470 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) +Chars 15474 - 15490 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 15491 - 15530 [clear~c;~intros~c~CIH~Hbody~t1...] 0. secs (0.u,0.s) +Chars 15531 - 15544 [step~in~Ht12.] 0. secs (0.u,0.s) +Chars 15548 - 15553 [icbn.] 0. secs (0.u,0.s) +Chars 15554 - 15568 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 15569 - 15583 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 15586 - 15619 [hinduction~Ht12~before~E;~intros.] 0.002 secs (0.002u,0.s) +Chars 15623 - 15788 [#[local]~Ltac~~by_coinduction~...] 0. secs (0.u,0.s) +Chars 15865 - 15941 [#[local]~Ltac~pi_solve~CIH~:=~...] 0. secs (0.u,0.s) +Chars 15944 - 15945 [-] 0. secs (0.u,0.s) +Chars 15946 - 15975 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 15976 - 16005 [inv~H;~cbn;~eauto~with~itree.] 0.007 secs (0.007u,0.s) +Chars 16010 - 16022 [constructor.] 0. secs (0.u,0.s) +Chars 16023 - 16045 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) +Chars 16049 - 16050 [-] 0. secs (0.u,0.s) +Chars 16051 - 16080 [unfold~observe;~cbn;~simpobs.] 0.003 secs (0.003u,0.s) +Chars 16081 - 16094 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) +Chars 16097 - 16098 [-] 0. secs (0.u,0.s) +Chars 16099 - 16133 [unfold~observe~at~1;~cbn;~simp...] 0.005 secs (0.005u,0.s) +Chars 16134 - 16147 [pi_solve~CIH.] 0.006 secs (0.006u,0.s) +Chars 16150 - 16151 [-] 0. secs (0.u,0.s) +Chars 16152 - 16186 [unfold~observe~at~2;~cbn;~simp...] 0.004 secs (0.004u,0.s) +Chars 16187 - 16200 [pi_solve~CIH.] 0.006 secs (0.006u,0.s) +Chars 16203 - 16204 [-] 0. secs (0.u,0.s) +Chars 16205 - 16234 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 16235 - 16248 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) +Chars 16251 - 16252 [-] 0. secs (0.u,0.s) +Chars 16253 - 16282 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 16283 - 16296 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) +Chars 16299 - 16300 [-] 0. secs (0.u,0.s) +Chars 16301 - 16330 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 16331 - 16344 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) +Chars 16347 - 16348 [-] 0. secs (0.u,0.s) +Chars 16349 - 16378 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 16379 - 16392 [pi_solve~CIH.] 0.006 secs (0.006u,0.s) +Chars 16395 - 16396 [-] 0. secs (0.u,0.s) +Chars 16397 - 16431 [unfold~observe~at~1;~cbn;~simp...] 0.005 secs (0.005u,0.s) +Chars 16432 - 16445 [pi_solve~CIH.] 0.007 secs (0.007u,0.s) +Chars 16448 - 16449 [-] 0. secs (0.u,0.s) +Chars 16450 - 16484 [unfold~observe~at~2;~cbn;~simp...] 0.004 secs (0.004u,0.s) +Chars 16485 - 16498 [pi_solve~CIH.] 0.007 secs (0.007u,0.s) +Chars 16499 - 16503 [Qed.] 0.016 secs (0.016u,0.s) +Chars 16507 - 17017 [Lemma~secure_eqit_iter~E~A1~A2...] 0. secs (0.u,0.s) +Chars 17018 - 17024 [Proof.] 0. secs (0.u,0.s) +Chars 17114 - 17123 [Admitted.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqProgInsensFacts.v.timing b/extra/Secure/SecureEqProgInsensFacts.v.timing new file mode 100644 index 00000000..25b0ad5f --- /dev/null +++ b/extra/Secure/SecureEqProgInsensFacts.v.timing @@ -0,0 +1,10 @@ +Chars 0 - 65 [From~ITree~Require~Import~Axio...] 0.162 secs (0.142u,0.019s) +Chars 67 - 156 [From~ITree.Extra~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 158 - 188 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) +Chars 190 - 204 [Import~Monads.] 0. secs (0.u,0.s) +Chars 205 - 226 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 227 - 256 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 258 - 470 [Variant~case_rel~{A1~A2~B~:~Ty...] 0. secs (0.u,0.s) +Chars 472 - 820 [Lemma~pi_eqit_secure_iter_ret~...] 0. secs (0.u,0.s) +Chars 821 - 827 [Proof.] 0. secs (0.u,0.s) +Chars 830 - 836 [ginit.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqWcompat.v.timing b/extra/Secure/SecureEqWcompat.v.timing new file mode 100644 index 00000000..2835f7b0 --- /dev/null +++ b/extra/Secure/SecureEqWcompat.v.timing @@ -0,0 +1,144 @@ +Chars 614 - 666 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 667 - 703 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.001s) +Chars 704 - 769 [From~ITree~Require~Import~Axio...] 0.159 secs (0.142u,0.017s) +Chars 771 - 857 [From~ITree.Extra~Require~Impor...] 0.005 secs (0.004u,0.s) +Chars 859 - 873 [Import~Monads.] 0. secs (0.u,0.s) +Chars 874 - 895 [Import~MonadNotation.] 0. secs (0.u,0.s) +Chars 896 - 925 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) +Chars 1008 - 1215 [Lemma~eqit_secure_shalt_refl~:...] 0.001 secs (0.u,0.s) +Chars 1216 - 1222 [Proof.] 0. secs (0.u,0.s) +Chars 1225 - 1232 [intros.] 0. secs (0.u,0.s) +Chars 1233 - 1238 [step.] 0. secs (0.u,0.s) +Chars 1239 - 1243 [cbn.] 0. secs (0.u,0.s) +Chars 1244 - 1256 [unpriv_halt.] 0. secs (0.u,0.s) +Chars 1257 - 1269 [contra_size.] 0. secs (0.u,0.s) +Chars 1270 - 1274 [Qed.] 0. secs (0.u,0.s) +Chars 1350 - 1425 [Ltac~inv_vis_secure~:=~ddestru...] 0. secs (0.u,0.s) +Chars 1427 - 1536 [Ltac~~clear_trivial~:=~~~repea...] 0. secs (0.u,0.s) +Chars 1538 - 1699 [Ltac~~find_size~A~:=~~~match~g...] 0. secs (0.u,0.s) +Chars 1701 - 1795 [Ltac~~produce_elem~H~A~:=~~~in...] 0. secs (0.u,0.s) +Chars 1869 - 2000 [Ltac~~spew~x~:=~~~let~T~:=~typ...] 0. secs (0.u,0.s) +Chars 2002 - 2113 [Ltac~~contra_leq~:=~~~match~go...] 0. secs (0.u,0.s) +Chars 2325 - 2583 [Ltac~~resolve_sizes~:=~~~repea...] 0. secs (0.u,0.s) +Chars 2585 - 2691 [Ltac~~apply_foralls~:=~~~repea...] 0. secs (0.u,0.s) +Chars 2998 - 3329 [Ltac~~secure_halt_refl~:=~solv...] 0. secs (0.u,0.s) +Chars 3331 - 3484 [Ltac~~sec_hyp~:=~first~~[~eass...] 0. secs (0.u,0.s) +Chars 3486 - 3539 [Ltac~sec_fin~:=~solve~[~sec_hy...] 0. secs (0.u,0.s) +Chars 3797 - 3963 [Ltac~~sec_reflexive~:=~~~match...] 0. secs (0.u,0.s) +Chars 4330 - 4582 [Ltac~~by_coinduction~CIH~:=~fi...] 0. secs (0.u,0.s) +Chars 5461 - 5903 [Tactic~Notation~"sec_side"~tac...] 0. secs (0.u,0.s) +Chars 5905 - 8567 [Tactic~Notation~"smart_constru...] 0. secs (0.u,0.s) +Chars 8569 - 8880 [#[global]~Instance~eqit_secure...] 0.001 secs (0.u,0.s) +Chars 8881 - 8887 [Proof.] 0. secs (0.u,0.s) +Chars 8890 - 8928 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 8931 - 8947 [tower~induction.] 0.025 secs (0.023u,0.001s) +Chars 8948 - 8956 [clear~c.] 0. secs (0.u,0.s) +Chars 8959 - 9003 [intros~c~CIH~t1~t2~Ht1t2~t3~t4...] 0. secs (0.u,0.s) +Chars 9006 - 9027 [icbn;~icbn~in~Hbt2t4.] 0. secs (0.u,0.s) +Chars 9030 - 9059 [step~in~Ht1t2;~step~in~Ht3t4.] 0. secs (0.u,0.s) +Chars 9062 - 9087 [revert~t1~t3~Ht1t2~Ht3t4.] 0. secs (0.u,0.s) +Chars 9088 - 9113 [induction~Hbt2t4;~intros.] 0.002 secs (0.002u,0.s) +Chars 9116 - 9117 [-] 0. secs (0.u,0.s) +Chars 9137 - 9175 [inv~Ht1t2;~inv~Ht3t4;~now~cons...] 0.083 secs (0.082u,0.s) +Chars 9178 - 9179 [-] 0. secs (0.u,0.s) +Chars 9199 - 9275 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.198 secs (0.196u,0.001s) +Chars 9280 - 9324 [all:~smart_constructor~by_coin...] 0.013 secs (0.013u,0.s) +Chars 9327 - 9328 [-] 0. secs (0.u,0.s) +Chars 9362 - 9419 [inv~Ht1t2;~ddestruction;~try~c...] 0.099 secs (0.098u,0.s) +Chars 9424 - 9425 [+] 0. secs (0.u,0.s) +Chars 9426 - 9448 [apply~secEqTauL;~auto.] 0. secs (0.u,0.s) +Chars 9449 - 9472 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) +Chars 9473 - 9484 [now~unstep.] 0. secs (0.u,0.s) +Chars 9489 - 9490 [+] 0. secs (0.u,0.s) +Chars 9491 - 9519 [apply~EqVisUnPrivLInd;~auto.] 0. secs (0.u,0.s) +Chars 9520 - 9527 [intros.] 0. secs (0.u,0.s) +Chars 9528 - 9551 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) +Chars 9552 - 9563 [now~unstep.] 0. secs (0.u,0.s) +Chars 9568 - 9569 [+] 0. secs (0.u,0.s) +Chars 9570 - 9605 [eapply~(IHHbt2t4~(Vis~_~_));~e...] 0. secs (0.u,0.s) +Chars 9606 - 9617 [now~unstep.] 0. secs (0.u,0.s) +Chars 9620 - 9621 [-] 0. secs (0.u,0.s) +Chars 9655 - 9713 [inv~Ht3t4;~ddestruction;~try~c...] 0.098 secs (0.097u,0.s) +Chars 9718 - 9719 [+] 0. secs (0.u,0.s) +Chars 9720 - 9742 [apply~secEqTauR;~auto.] 0. secs (0.u,0.s) +Chars 9743 - 9766 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) +Chars 9767 - 9778 [now~unstep.] 0. secs (0.u,0.s) +Chars 9783 - 9784 [+] 0. secs (0.u,0.s) +Chars 9785 - 9813 [apply~EqVisUnPrivRInd;~auto.] 0.001 secs (0.001u,0.s) +Chars 9814 - 9821 [intros.] 0. secs (0.u,0.s) +Chars 9822 - 9845 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) +Chars 9846 - 9857 [now~unstep.] 0. secs (0.u,0.s) +Chars 9862 - 9863 [+] 0. secs (0.u,0.s) +Chars 9864 - 9901 [eapply~(IHHbt2t4~_~(Vis~_~_));...] 0. secs (0.u,0.s) +Chars 9902 - 9913 [now~unstep.] 0. secs (0.u,0.s) +Chars 9916 - 9917 [-] 0. secs (0.u,0.s) +Chars 9949 - 10024 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.728 secs (0.722u,0.005s) +Chars 10029 - 10073 [all:~smart_constructor~by_coin...] 0.002 secs (0.002u,0.s) +Chars 10076 - 10077 [-] 0. secs (0.u,0.s) +Chars 10137 - 10212 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.48 secs (0.477u,0.003s) +Chars 10217 - 10261 [all:~smart_constructor~by_coin...] 0.022 secs (0.022u,0.s) +Chars 10264 - 10265 [-] 0. secs (0.u,0.s) +Chars 10325 - 10400 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.331 secs (0.328u,0.002s) +Chars 10405 - 10449 [all:~smart_constructor~by_coin...] 0.022 secs (0.022u,0.s) +Chars 10452 - 10453 [-] 0. secs (0.u,0.s) +Chars 10521 - 10596 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.819 secs (0.813u,0.005s) +Chars 10601 - 10645 [all:~smart_constructor~by_coin...] 0.027 secs (0.027u,0.s) +Chars 10648 - 10649 [-] 0. secs (0.u,0.s) +Chars 10718 - 10776 [inv~Ht1t2;~ddestruction;~try~c...] 0.168 secs (0.166u,0.001s) +Chars 10781 - 10782 [+] 0. secs (0.u,0.s) +Chars 10844 - 10866 [apply~secEqTauL;~auto.] 0. secs (0.u,0.s) +Chars 10873 - 10938 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) +Chars 10945 - 10967 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) +Chars 10968 - 10975 [unstep.] 0. secs (0.u,0.s) +Chars 10976 - 10982 [eauto.] 0. secs (0.u,0.s) +Chars 10987 - 10988 [+] 0. secs (0.u,0.s) +Chars 11056 - 11084 [apply~EqVisUnPrivLInd;~auto.] 0. secs (0.u,0.s) +Chars 11085 - 11092 [intros.] 0. secs (0.u,0.s) +Chars 11099 - 11164 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) +Chars 11171 - 11193 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) +Chars 11194 - 11201 [unstep.] 0. secs (0.u,0.s) +Chars 11202 - 11208 [eauto.] 0. secs (0.u,0.s) +Chars 11213 - 11214 [+] 0. secs (0.u,0.s) +Chars 11285 - 11350 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) +Chars 11357 - 11389 [eapply~(H0~aE~(Vis~_~_));~eauto.] 0.001 secs (0.001u,0.s) +Chars 11390 - 11397 [unstep.] 0. secs (0.u,0.s) +Chars 11398 - 11404 [eauto.] 0. secs (0.u,0.s) +Chars 11407 - 11408 [-] 0. secs (0.u,0.s) +Chars 11478 - 11536 [inv~Ht3t4;~ddestruction;~try~c...] 0.167 secs (0.166u,0.001s) +Chars 11541 - 11542 [+] 0. secs (0.u,0.s) +Chars 11601 - 11623 [apply~secEqTauR;~auto.] 0. secs (0.u,0.s) +Chars 11630 - 11695 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) +Chars 11702 - 11724 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) +Chars 11725 - 11732 [unstep.] 0. secs (0.u,0.s) +Chars 11733 - 11739 [eauto.] 0. secs (0.u,0.s) +Chars 11744 - 11745 [+] 0. secs (0.u,0.s) +Chars 11813 - 11841 [apply~EqVisUnPrivRInd;~auto.] 0. secs (0.u,0.s) +Chars 11842 - 11849 [intros.] 0. secs (0.u,0.s) +Chars 11856 - 11921 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) +Chars 11928 - 11950 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) +Chars 11951 - 11958 [unstep.] 0. secs (0.u,0.s) +Chars 11959 - 11965 [eauto.] 0. secs (0.u,0.s) +Chars 11970 - 11971 [+] 0. secs (0.u,0.s) +Chars 12042 - 12107 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) +Chars 12114 - 12148 [eapply~(H0~aE~_~(Vis~_~_));~ea...] 0. secs (0.u,0.s) +Chars 12149 - 12156 [unstep.] 0. secs (0.u,0.s) +Chars 12157 - 12163 [eauto.] 0. secs (0.u,0.s) +Chars 12166 - 12167 [-] 0. secs (0.u,0.s) +Chars 12227 - 12302 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.462 secs (0.458u,0.003s) +Chars 12307 - 12326 [all:~resolve_sizes.] 0.002 secs (0.002u,0.s) +Chars 12331 - 12375 [all:~smart_constructor~by_coin...] 0.156 secs (0.155u,0.001s) +Chars 12378 - 12379 [-] 0. secs (0.u,0.s) +Chars 12439 - 12514 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.316 secs (0.314u,0.001s) +Chars 12519 - 12538 [all:~resolve_sizes.] 0.002 secs (0.002u,0.s) +Chars 12543 - 12587 [all:~smart_constructor~by_coin...] 0.16 secs (0.159u,0.s) +Chars 12590 - 12591 [-] 0. secs (0.u,0.s) +Chars 12656 - 12738 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.818 secs (0.812u,0.005s) +Chars 12743 - 12762 [all:~resolve_sizes.] 0.007 secs (0.007u,0.s) +Chars 12767 - 12811 [all:~smart_constructor~by_coin...] 0.335 secs (0.333u,0.002s) +Chars 12814 - 12815 [-] 0. secs (0.u,0.s) +Chars 12880 - 12955 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.806 secs (0.8u,0.006s) +Chars 12960 - 12979 [all:~resolve_sizes.] 0.007 secs (0.007u,0.s) +Chars 12984 - 13028 [all:~smart_constructor~by_coin...] 0.327 secs (0.325u,0.001s) +Chars 13031 - 13040 [Unshelve.] 0. secs (0.u,0.s) +Chars 13043 - 13059 [all:~assumption.] 0. secs (0.u,0.s) +Chars 13061 - 13065 [Qed.] 0.857 secs (0.85u,0.007s) diff --git a/extra/Secure/StrongBisimProper.v.timing b/extra/Secure/StrongBisimProper.v.timing index c0c54f40..5aaf6ba7 100644 --- a/extra/Secure/StrongBisimProper.v.timing +++ b/extra/Secure/StrongBisimProper.v.timing @@ -1,11 +1,11 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.222 secs (0.192u,0.028s) -Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.008 secs (0.007u,0.001s) -Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0.001 secs (0.u,0.s) +Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.161 secs (0.143u,0.017s) +Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) +Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0. secs (0.u,0.s) Chars 380 - 386 [Proof.] 0. secs (0.u,0.s) -Chars 389 - 402 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 403 - 433 [(apply~bisimulation_is_eq~in~H).] 0. secs (0.u,0.s) -Chars 434 - 465 [(apply~bisimulation_is_eq~in~H0).] 0. secs (0.u,0.s) +Chars 389 - 402 [repeat~intro.] 0. secs (0.u,0.s) +Chars 403 - 433 [apply~bisimulation_is_eq~in~H.] 0. secs (0.u,0.s) +Chars 434 - 465 [apply~bisimulation_is_eq~in~H0.] 0. secs (0.u,0.s) Chars 468 - 474 [subst.] 0. secs (0.u,0.s) Chars 475 - 480 [auto.] 0. secs (0.u,0.s) -Chars 481 - 485 [Qed.] 0.001 secs (0.001u,0.s) +Chars 481 - 485 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Axioms.v.timing b/theories/Axioms.v.timing index 1da5905b..eaf6d683 100644 --- a/theories/Axioms.v.timing +++ b/theories/Axioms.v.timing @@ -1,5 +1,5 @@ -Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.184 secs (0.125u,0.025s) -Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0.001 secs (0.001u,0.s) +Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.095 secs (0.084u,0.01s) +Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0. secs (0.u,0.s) Chars 368 - 391 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 490 - 599 [Ltac~~ddestruction~:=~~~repeat...] 0. secs (0.u,0.s) Chars 666 - 719 [Definition~eq_rect_eq~:=~Eqdep...] 0. secs (0.u,0.s) @@ -11,10 +11,10 @@ Chars 1162 - 1231 [Axiom~(guarded_choice~:~forall...] 0. secs (0.u,0.s) Chars 1233 - 1303 [Inductive~mwitness~:~Type~:=~~...] 0. secs (0.u,0.s) Chars 1305 - 1380 [Lemma~classicT_inhabited~:~inh...] 0. secs (0.u,0.s) Chars 1381 - 1387 [Proof.] 0. secs (0.u,0.s) -Chars 1390 - 1521 [(destruct~~~(choice~~~~~~(fun~...] 0. secs (0.u,0.s) +Chars 1390 - 1521 [destruct~~(choice~~~~~(fun~(P~...] 0. secs (0.u,0.s) Chars 1524 - 1525 [{] 0. secs (0.u,0.s) -Chars 1526 - 1634 [(intros~P;~destruct~(classic~(...] 0. secs (0.u,0.s) +Chars 1526 - 1634 [intros~P;~destruct~(classic~(i...] 0. secs (0.u,0.s) Chars 1635 - 1636 [}] 0. secs (0.u,0.s) Chars 1639 - 1651 [constructor.] 0. secs (0.u,0.s) -Chars 1652 - 1713 [(intros~P;~specialize~(H~P);~d...] 0. secs (0.u,0.s) +Chars 1652 - 1713 [intros~P;~specialize~(H~P);~de...] 0. secs (0.u,0.s) Chars 1714 - 1718 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Basics.v.timing b/theories/Basics/Basics.v.timing index 67d44714..a001eac0 100644 --- a/theories/Basics/Basics.v.timing +++ b/theories/Basics/Basics.v.timing @@ -1,10 +1,10 @@ -Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.001u,0.001s) -Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.002 secs (0.001u,0.s) -Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.005 secs (0.002u,0.001s) +Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.u,0.001s) +Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.s) +Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.001 secs (0.001u,0.s) Chars 364 - 405 [Import~FunctorNotation~MonadNo...] 0. secs (0.u,0.s) Chars 406 - 429 [#[local]~Open~Scope~monad.] 0. secs (0.u,0.s) Chars 827 - 935 [Notation~"E~~>~F"~:=~(forall~T...] 0. secs (0.u,0.s) -Chars 1099 - 1158 [Definition~idM~{E~:~Type~->~Ty...] 0.001 secs (0.u,0.s) +Chars 1099 - 1158 [Definition~idM~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) Chars 1206 - 1233 [Notation~void~:=~Empty_set.] 0. secs (0.u,0.s) Chars 1278 - 1292 [Module~Monads.] 0. secs (0.u,0.s) Chars 1294 - 1337 [Definition~identity~(a~:~Type)...] 0. secs (0.u,0.s) @@ -16,17 +16,17 @@ Chars 1661 - 1742 [Definition~readerT~(r~:~Type)~...] 0. secs (0.u,0.s) Chars 1743 - 1784 [Definition~reader~(r~a~:~Type)...] 0. secs (0.u,0.s) Chars 1786 - 1871 [Definition~writerT~(w~:~Type)~...] 0. secs (0.u,0.s) Chars 1872 - 1898 [Definition~writer~:=~prod.] 0. secs (0.u,0.s) -Chars 1900 - 2072 [#[global]~Instance~Functor_sta...] 0.001 secs (0.001u,0.s) -Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.001u,0.s) +Chars 1900 - 2072 [#[global]~Instance~Functor_sta...] 0. secs (0.u,0.s) +Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.u,0.s) Chars 2274 - 2285 [End~Monads.] 0. secs (0.u,0.s) Chars 2452 - 2572 [#[universes(polymorphic)]~Clas...] 0. secs (0.u,0.s) Chars 2574 - 2628 [#[global]~Hint~Mode~MonadIter~...] 0. secs (0.u,0.s) -Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.007 secs (0.004u,0.001s) -Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.005 secs (0.004u,0.001s) +Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.004 secs (0.003u,0.s) +Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.003 secs (0.002u,0.s) Chars 3534 - 3710 [#[global]~Instance~MonadIter_r...] 0. secs (0.u,0.s) Chars 3712 - 4047 [#[global]~Instance~MonadIter_o...] 0.002 secs (0.002u,0.s) -Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.001s) -Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0.001 secs (0.001u,0.s) +Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.s) +Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0. secs (0.u,0.s) Chars 4687 - 4778 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) Chars 4911 - 4994 [Definition~equiv_pred~{A~:~Typ...] 0. secs (0.u,0.s) Chars 4996 - 5142 [Definition~sum_pred~{A~B~:~Typ...] 0. secs (0.u,0.s) @@ -35,17 +35,17 @@ Chars 5262 - 5316 [Definition~TT~{A~:~Type}~:~A~-...] 0. secs (0.u,0.s) Chars 5317 - 5364 [#[global]~Hint~Unfold~TT~sum_p...] 0. secs (0.u,0.s) Chars 5366 - 5434 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) -Chars 5444 - 5456 [(split;~auto).] 0. secs (0.u,0.s) +Chars 5444 - 5456 [split;~auto.] 0. secs (0.u,0.s) Chars 5457 - 5461 [Qed.] 0. secs (0.u,0.s) Chars 5462 - 5530 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) Chars 5531 - 5537 [Proof.] 0. secs (0.u,0.s) -Chars 5540 - 5589 [(red;~intros~*~EQ;~split;~intr...] 0. secs (0.u,0.s) +Chars 5540 - 5589 [red;~intros~*~EQ;~split;~intro...] 0. secs (0.u,0.s) Chars 5590 - 5594 [Qed.] 0. secs (0.u,0.s) Chars 5595 - 5664 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) Chars 5665 - 5671 [Proof.] 0. secs (0.u,0.s) -Chars 5674 - 5751 [(red;~intros~*~EQ1~EQ2;~split;...] 0. secs (0.u,0.s) +Chars 5674 - 5751 [red;~intros~*~EQ1~EQ2;~split;~...] 0. secs (0.u,0.s) Chars 5752 - 5756 [Qed.] 0. secs (0.u,0.s) Chars 5757 - 5827 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) -Chars 5828 - 5834 [Proof.] 0. secs (0.u,0.s) -Chars 5837 - 5862 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 5828 - 5834 [Proof.] 0.005 secs (0.004u,0.s) +Chars 5837 - 5862 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 5863 - 5867 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Category.v.timing b/theories/Basics/Category.v.timing index 405dffcc..9c041e38 100644 --- a/theories/Basics/Category.v.timing +++ b/theories/Basics/Category.v.timing @@ -1 +1 @@ -Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.013 secs (0.007u,0.002s) +Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.006 secs (0.005u,0.001s) diff --git a/theories/Basics/CategoryFacts.v.timing b/theories/Basics/CategoryFacts.v.timing index 3a47f0bd..d5e3c770 100644 --- a/theories/Basics/CategoryFacts.v.timing +++ b/theories/Basics/CategoryFacts.v.timing @@ -1,5 +1,5 @@ -Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) -Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.002 secs (0.002u,0.s) +Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.001u,0.s) Chars 176 - 191 [Import~Carrier.] 0. secs (0.u,0.s) Chars 192 - 212 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 213 - 234 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) @@ -12,31 +12,31 @@ Chars 1066 - 1118 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) Chars 1120 - 1150 [Context~{CatIdL_C~:~CatIdL~C}.] 0. secs (0.u,0.s) Chars 1184 - 1243 [#[global]~Instance~SemiIso_Id~...] 0. secs (0.u,0.s) Chars 1244 - 1250 [Proof.] 0. secs (0.u,0.s) -Chars 1251 - 1266 [(apply~cat_id_l).] 0. secs (0.u,0.s) +Chars 1251 - 1266 [apply~cat_id_l.] 0. secs (0.u,0.s) Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) Chars 1273 - 1340 [Context~{Equivalence_Eq2_C~:~f...] 0. secs (0.u,0.s) Chars 1342 - 1357 [Section~IsoCat.] 0. secs (0.u,0.s) Chars 1359 - 1393 [Context~{CatAssoc_C~:~CatAssoc...] 0. secs (0.u,0.s) Chars 1394 - 1501 [Context~~{Proper_Cat_C~:~foral...] 0. secs (0.u,0.s) -Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0.001 secs (0.u,0.s) +Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0. secs (0.u,0.s) Chars 1742 - 1748 [Proof.] 0. secs (0.u,0.s) -Chars 1751 - 1755 [(red).] 0. secs (0.u,0.s) -Chars 1758 - 1836 [(rewrite~cat_assoc,~<-~(cat_as...] 0.008 secs (0.006u,0.001s) +Chars 1751 - 1755 [red.] 0. secs (0.u,0.s) +Chars 1758 - 1836 [rewrite~cat_assoc,~<-~(cat_ass...] 0.005 secs (0.004u,0.001s) Chars 1839 - 1851 [reflexivity.] 0. secs (0.u,0.s) -Chars 1852 - 1856 [Qed.] 0.001 secs (0.u,0.s) +Chars 1852 - 1856 [Qed.] 0. secs (0.u,0.s) Chars 1858 - 1869 [End~IsoCat.] 0. secs (0.u,0.s) Chars 1871 - 1888 [Section~IsoBimap.] 0. secs (0.u,0.s) Chars 1890 - 1916 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 1917 - 1951 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 1952 - 1990 [Context~{BimapId_bif~:~BimapId...] 0. secs (0.u,0.s) Chars 1991 - 2031 [Context~{BimapCat_bif~:~BimapC...] 0. secs (0.u,0.s) -Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0.001 secs (0.u,0.s) -Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0.001 secs (0.001u,0.s) +Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0. secs (0.u,0.s) +Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0.001 secs (0.u,0.s) Chars 2402 - 2408 [Proof.] 0. secs (0.u,0.s) -Chars 2411 - 2415 [(red).] 0. secs (0.u,0.s) -Chars 2418 - 2478 [(rewrite~bimap_cat,~(semi_iso~...] 0.005 secs (0.004u,0.001s) +Chars 2411 - 2415 [red.] 0. secs (0.u,0.s) +Chars 2418 - 2478 [rewrite~bimap_cat,~(semi_iso~f...] 0.003 secs (0.002u,0.s) Chars 2481 - 2493 [reflexivity.] 0. secs (0.u,0.s) -Chars 2494 - 2498 [Qed.] 0.001 secs (0.u,0.s) +Chars 2494 - 2498 [Qed.] 0. secs (0.u,0.s) Chars 2500 - 2513 [End~IsoBimap.] 0. secs (0.u,0.s) Chars 2515 - 2528 [End~IsoFacts.] 0. secs (0.u,0.s) Chars 2552 - 2574 [Section~CategoryFacts.] 0. secs (0.u,0.s) @@ -46,11 +46,11 @@ Chars 2638 - 2695 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) Chars 2697 - 2736 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) Chars 2738 - 2756 [Context~{i~:~obj}.] 0. secs (0.u,0.s) Chars 2757 - 2791 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) -Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) +Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0.006 secs (0.005u,0.s) Chars 2879 - 2936 [Lemma~initial_unique~:~forall~...] 0. secs (0.u,0.s) Chars 2937 - 2943 [Proof.] 0. secs (0.u,0.s) -Chars 2946 - 2953 [(intros).] 0. secs (0.u,0.s) -Chars 2956 - 3003 [(rewrite~(initial_object~f),~(...] 0.01 secs (0.009u,0.001s) +Chars 2946 - 2953 [intros.] 0. secs (0.u,0.s) +Chars 2956 - 3003 [rewrite~(initial_object~f),~(i...] 0. secs (0.u,0.s) Chars 3006 - 3018 [reflexivity.] 0. secs (0.u,0.s) Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) Chars 3025 - 3043 [Context~{t~:~obj}.] 0. secs (0.u,0.s) @@ -58,8 +58,8 @@ Chars 3044 - 3080 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) Chars 3081 - 3129 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) Chars 3171 - 3229 [Lemma~terminal_unique~:~forall...] 0. secs (0.u,0.s) Chars 3230 - 3236 [Proof.] 0. secs (0.u,0.s) -Chars 3239 - 3246 [(intros).] 0. secs (0.u,0.s) -Chars 3249 - 3298 [(rewrite~(terminal_object~f),~...] 0. secs (0.u,0.s) +Chars 3239 - 3246 [intros.] 0. secs (0.u,0.s) +Chars 3249 - 3298 [rewrite~(terminal_object~f),~(...] 0. secs (0.u,0.s) Chars 3301 - 3313 [reflexivity.] 0. secs (0.u,0.s) Chars 3314 - 3318 [Qed.] 0. secs (0.u,0.s) Chars 3320 - 3338 [End~CategoryFacts.] 0. secs (0.u,0.s) @@ -72,14 +72,14 @@ Chars 3551 - 3590 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) Chars 3592 - 3626 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) Chars 3628 - 3654 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 3655 - 3731 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 3733 - 3843 [Lemma~bimap_slide~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) +Chars 3733 - 3843 [Lemma~bimap_slide~{a}~{b}~{c}~...] 0. secs (0.u,0.s) Chars 3844 - 3850 [Proof.] 0. secs (0.u,0.s) -Chars 3853 - 3891 [(rewrite~bimap_cat,~cat_id_l,~...] 0.003 secs (0.003u,0.s) +Chars 3853 - 3891 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) Chars 3894 - 3906 [reflexivity.] 0. secs (0.u,0.s) Chars 3907 - 3911 [Qed.] 0. secs (0.u,0.s) -Chars 3913 - 4024 [Lemma~bimap_slide'~{a}~{b}~{c}...] 0.001 secs (0.001u,0.s) +Chars 3913 - 4024 [Lemma~bimap_slide'~{a}~{b}~{c}...] 0. secs (0.u,0.s) Chars 4025 - 4031 [Proof.] 0. secs (0.u,0.s) -Chars 4034 - 4072 [(rewrite~bimap_cat,~cat_id_l,~...] 0.003 secs (0.003u,0.s) +Chars 4034 - 4072 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) Chars 4075 - 4087 [reflexivity.] 0. secs (0.u,0.s) Chars 4088 - 4092 [Qed.] 0. secs (0.u,0.s) Chars 4094 - 4113 [End~BifunctorFacts.] 0. secs (0.u,0.s) @@ -92,194 +92,194 @@ Chars 4324 - 4358 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) Chars 4360 - 4386 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 4387 - 4473 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) Chars 4474 - 4514 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) -Chars 4516 - 4629 [Lemma~case_inl'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 4516 - 4629 [Lemma~case_inl'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 4630 - 4636 [Proof.] 0. secs (0.u,0.s) -Chars 4639 - 4683 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.002u,0.s) +Chars 4639 - 4683 [rewrite~<-~cat_assoc,~case_inl...] 0.001 secs (0.001u,0.s) Chars 4684 - 4688 [Qed.] 0. secs (0.u,0.s) -Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 4804 - 4810 [Proof.] 0. secs (0.u,0.s) -Chars 4813 - 4857 [(rewrite~<-~cat_assoc,~case_in...] 0.002 secs (0.001u,0.s) +Chars 4813 - 4857 [rewrite~<-~cat_assoc,~case_inr...] 0.001 secs (0.001u,0.s) Chars 4858 - 4862 [Qed.] 0. secs (0.u,0.s) -Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) +Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0. secs (0.u,0.s) Chars 5026 - 5032 [Proof.] 0. secs (0.u,0.s) -Chars 5035 - 5078 [(apply~case_universal;~rewrite...] 0.002 secs (0.001u,0.s) +Chars 5035 - 5078 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) Chars 5081 - 5082 [-] 0. secs (0.u,0.s) -Chars 5083 - 5113 [(rewrite~case_inl;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 5083 - 5113 [rewrite~case_inl;~reflexivity.] 0.011 secs (0.011u,0.s) Chars 5116 - 5117 [-] 0. secs (0.u,0.s) -Chars 5118 - 5148 [(rewrite~case_inr;~reflexivity).] 0.013 secs (0.013u,0.s) +Chars 5118 - 5148 [rewrite~case_inr;~reflexivity.] 0. secs (0.u,0.s) Chars 5149 - 5153 [Qed.] 0. secs (0.u,0.s) Chars 5210 - 5271 [Corollary~case_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) Chars 5272 - 5278 [Proof.] 0. secs (0.u,0.s) -Chars 5281 - 5333 [(apply~case_universal;~rewrite...] 0.001 secs (0.001u,0.s) +Chars 5281 - 5333 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) Chars 5334 - 5338 [Qed.] 0. secs (0.u,0.s) -Chars 5340 - 5426 [Lemma~case_eta'~{a}~{b}~{c}~(f...] 0.001 secs (0.001u,0.s) +Chars 5340 - 5426 [Lemma~case_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) -Chars 5436 - 5471 [(eapply~case_universal;~reflex...] 0. secs (0.u,0.s) +Chars 5436 - 5471 [eapply~case_universal;~reflexi...] 0. secs (0.u,0.s) Chars 5472 - 5476 [Qed.] 0. secs (0.u,0.s) Chars 5563 - 5690 [Lemma~coprod_split~{a}~{b}~{c}...] 0.001 secs (0.001u,0.s) Chars 5691 - 5697 [Proof.] 0. secs (0.u,0.s) -Chars 5700 - 5707 [(intros).] 0. secs (0.u,0.s) -Chars 5708 - 5730 [(rewrite~(case_eta'~g)).] 0. secs (0.u,0.s) -Chars 5733 - 5766 [(apply~case_universal;~assumpt...] 0. secs (0.u,0.s) +Chars 5700 - 5707 [intros.] 0. secs (0.u,0.s) +Chars 5708 - 5730 [rewrite~(case_eta'~g).] 0. secs (0.u,0.s) +Chars 5733 - 5766 [apply~case_universal;~assumption.] 0. secs (0.u,0.s) Chars 5767 - 5771 [Qed.] 0. secs (0.u,0.s) Chars 5773 - 5890 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) Chars 5892 - 6032 [Ltac~~cat_auto'~:=~~~repeat~in...] 0. secs (0.u,0.s) Chars 6034 - 6122 [Lemma~swap_case~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) Chars 6123 - 6129 [Proof.] 0. secs (0.u,0.s) -Chars 6132 - 6168 [(intros;~unfold~swap,~Swap_Cop...] 0. secs (0.u,0.s) -Chars 6171 - 6208 [(rewrite~cat_case,~inr_case,~i...] 0.003 secs (0.003u,0.s) +Chars 6132 - 6168 [intros;~unfold~swap,~Swap_Copr...] 0. secs (0.u,0.s) +Chars 6171 - 6208 [rewrite~cat_case,~inr_case,~in...] 0.002 secs (0.002u,0.s) Chars 6211 - 6223 [reflexivity.] 0. secs (0.u,0.s) Chars 6224 - 6228 [Qed.] 0. secs (0.u,0.s) Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0. secs (0.u,0.s) Chars 6282 - 6288 [Proof.] 0. secs (0.u,0.s) -Chars 6289 - 6304 [(apply~case_inr).] 0. secs (0.u,0.s) +Chars 6289 - 6304 [apply~case_inr.] 0. secs (0.u,0.s) Chars 6305 - 6309 [Qed.] 0. secs (0.u,0.s) Chars 6311 - 6362 [Lemma~inl_swap~{a}~{b}~:~inl_~...] 0. secs (0.u,0.s) Chars 6363 - 6369 [Proof.] 0. secs (0.u,0.s) -Chars 6370 - 6385 [(apply~case_inl).] 0. secs (0.u,0.s) +Chars 6370 - 6385 [apply~case_inl.] 0. secs (0.u,0.s) Chars 6386 - 6390 [Qed.] 0. secs (0.u,0.s) Chars 6392 - 6500 [Lemma~bimap_case_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) Chars 6501 - 6507 [Proof.] 0. secs (0.u,0.s) Chars 6508 - 6520 [reflexivity.] 0. secs (0.u,0.s) Chars 6521 - 6525 [Qed.] 0. secs (0.u,0.s) -Chars 6527 - 6615 [Lemma~inr_bimap~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 6527 - 6615 [Lemma~inr_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 6616 - 6622 [Proof.] 0. secs (0.u,0.s) -Chars 6623 - 6638 [(apply~case_inr).] 0. secs (0.u,0.s) +Chars 6623 - 6638 [apply~case_inr.] 0. secs (0.u,0.s) Chars 6639 - 6643 [Qed.] 0. secs (0.u,0.s) -Chars 6645 - 6733 [Lemma~inl_bimap~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 6645 - 6733 [Lemma~inl_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 6734 - 6740 [Proof.] 0. secs (0.u,0.s) -Chars 6741 - 6756 [(apply~case_inl).] 0. secs (0.u,0.s) +Chars 6741 - 6756 [apply~case_inl.] 0. secs (0.u,0.s) Chars 6757 - 6761 [Qed.] 0. secs (0.u,0.s) Chars 6763 - 6922 [Lemma~bimap_case~{a}~{a'}~{b}~...] 0.001 secs (0.001u,0.s) Chars 6923 - 6929 [Proof.] 0. secs (0.u,0.s) -Chars 6930 - 6940 [cat_auto'.] 0.064 secs (0.056u,0.008s) +Chars 6930 - 6940 [cat_auto'.] 0.044 secs (0.039u,0.004s) Chars 6941 - 6945 [Qed.] 0.001 secs (0.001u,0.s) Chars 6947 - 7024 [Lemma~inl_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7025 - 7031 [Proof.] 0. secs (0.u,0.s) -Chars 7032 - 7042 [cat_auto'.] 0.016 secs (0.015u,0.s) +Chars 7032 - 7042 [cat_auto'.] 0.011 secs (0.01u,0.s) Chars 7043 - 7047 [Qed.] 0. secs (0.u,0.s) Chars 7049 - 7121 [Lemma~inl_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) -Chars 7129 - 7139 [cat_auto'.] 0.009 secs (0.009u,0.s) +Chars 7129 - 7139 [cat_auto'.] 0.006 secs (0.006u,0.s) Chars 7140 - 7144 [Qed.] 0. secs (0.u,0.s) Chars 7146 - 7223 [Lemma~inr_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7224 - 7230 [Proof.] 0. secs (0.u,0.s) -Chars 7231 - 7241 [cat_auto'.] 0.019 secs (0.019u,0.s) -Chars 7242 - 7246 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7231 - 7241 [cat_auto'.] 0.013 secs (0.013u,0.s) +Chars 7242 - 7246 [Qed.] 0. secs (0.u,0.s) Chars 7248 - 7320 [Lemma~inr_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 7321 - 7327 [Proof.] 0. secs (0.u,0.s) -Chars 7328 - 7338 [cat_auto'.] 0.015 secs (0.014u,0.s) +Chars 7328 - 7338 [cat_auto'.] 0.009 secs (0.009u,0.s) Chars 7339 - 7343 [Qed.] 0. secs (0.u,0.s) -Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0.001 secs (0.001u,0.s) +Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0. secs (0.u,0.s) Chars 7504 - 7510 [Proof.] 0. secs (0.u,0.s) -Chars 7513 - 7544 [(intros~ac~ac'~eqac~bd~bd'~eqbd).] 0. secs (0.u,0.s) -Chars 7547 - 7577 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 7580 - 7612 [(rewrite~eqac,~eqbd;~reflexivi...] 0.004 secs (0.004u,0.s) -Chars 7613 - 7617 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7513 - 7544 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) +Chars 7547 - 7577 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 7580 - 7612 [rewrite~eqac,~eqbd;~reflexivity.] 0.003 secs (0.002u,0.s) +Chars 7613 - 7617 [Qed.] 0. secs (0.u,0.s) Chars 7619 - 7669 [#[global]~Instance~BimapId_Cop...] 0. secs (0.u,0.s) Chars 7670 - 7676 [Proof.] 0. secs (0.u,0.s) -Chars 7679 - 7690 [(intros~A~B).] 0. secs (0.u,0.s) +Chars 7679 - 7690 [intros~A~B.] 0. secs (0.u,0.s) Chars 7693 - 7702 [symmetry.] 0. secs (0.u,0.s) -Chars 7703 - 7733 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 7736 - 7755 [(rewrite~2!cat_id_l).] 0.002 secs (0.002u,0.s) -Chars 7758 - 7773 [(apply~case_eta).] 0. secs (0.u,0.s) +Chars 7703 - 7733 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 7736 - 7755 [rewrite~2!cat_id_l.] 0.001 secs (0.001u,0.s) +Chars 7758 - 7773 [apply~case_eta.] 0. secs (0.u,0.s) Chars 7774 - 7778 [Qed.] 0. secs (0.u,0.s) Chars 7780 - 7832 [#[global]~Instance~BimapCat_Co...] 0. secs (0.u,0.s) Chars 7833 - 7839 [Proof.] 0. secs (0.u,0.s) -Chars 7840 - 7850 [cat_auto'.] 0.105 secs (0.103u,0.002s) +Chars 7840 - 7850 [cat_auto'.] 0.073 secs (0.073u,0.s) Chars 7851 - 7855 [Qed.] 0.002 secs (0.002u,0.s) Chars 7857 - 7911 [#[global]~Instance~Bifunctor_C...] 0. secs (0.u,0.s) Chars 7912 - 7918 [Proof.] 0. secs (0.u,0.s) -Chars 7921 - 7952 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) +Chars 7921 - 7952 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 7953 - 7957 [Qed.] 0. secs (0.u,0.s) Chars 7996 - 8080 [#[global]~Instance~SwapInvolut...] 0. secs (0.u,0.s) Chars 8081 - 8087 [Proof.] 0. secs (0.u,0.s) -Chars 8088 - 8098 [cat_auto'.] 0.032 secs (0.031u,0.s) +Chars 8088 - 8098 [cat_auto'.] 0.023 secs (0.022u,0.s) Chars 8099 - 8103 [Qed.] 0.001 secs (0.001u,0.s) Chars 8142 - 8232 [#[global]~Instance~AssocRMono_...] 0. secs (0.u,0.s) Chars 8233 - 8239 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8250 [cat_auto'.] 0.164 secs (0.162u,0.001s) -Chars 8251 - 8255 [Qed.] 0.005 secs (0.005u,0.s) +Chars 8240 - 8250 [cat_auto'.] 0.116 secs (0.116u,0.s) +Chars 8251 - 8255 [Qed.] 0.003 secs (0.003u,0.s) Chars 8257 - 8347 [#[global]~Instance~AssocLMono_...] 0. secs (0.u,0.s) Chars 8348 - 8354 [Proof.] 0. secs (0.u,0.s) -Chars 8355 - 8365 [cat_auto'.] 0.162 secs (0.16u,0.001s) -Chars 8366 - 8370 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8355 - 8365 [cat_auto'.] 0.114 secs (0.113u,0.s) +Chars 8366 - 8370 [Qed.] 0.003 secs (0.003u,0.s) Chars 8372 - 8390 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 8391 - 8425 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 8426 - 8472 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 8507 - 8589 [#[global]~Instance~UnitLMono_C...] 0. secs (0.u,0.s) Chars 8590 - 8596 [Proof.] 0. secs (0.u,0.s) -Chars 8597 - 8607 [cat_auto'.] 0.026 secs (0.025u,0.s) -Chars 8608 - 8612 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8597 - 8607 [cat_auto'.] 0.018 secs (0.018u,0.s) +Chars 8608 - 8612 [Qed.] 0. secs (0.u,0.s) Chars 8650 - 8732 [#[global]~Instance~UnitRMono_C...] 0. secs (0.u,0.s) Chars 8733 - 8739 [Proof.] 0. secs (0.u,0.s) -Chars 8740 - 8750 [cat_auto'.] 0.025 secs (0.025u,0.s) -Chars 8751 - 8755 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8740 - 8750 [cat_auto'.] 0.018 secs (0.018u,0.s) +Chars 8751 - 8755 [Qed.] 0. secs (0.u,0.s) Chars 8757 - 8838 [#[global]~Instance~UnitLEpi_Co...] 0. secs (0.u,0.s) Chars 8839 - 8845 [Proof.] 0. secs (0.u,0.s) -Chars 8846 - 8856 [cat_auto'.] 0.005 secs (0.005u,0.s) +Chars 8846 - 8856 [cat_auto'.] 0.003 secs (0.003u,0.s) Chars 8857 - 8861 [Qed.] 0. secs (0.u,0.s) Chars 8863 - 8944 [#[global]~Instance~UnitREpi_Co...] 0. secs (0.u,0.s) Chars 8945 - 8951 [Proof.] 0. secs (0.u,0.s) -Chars 8952 - 8962 [cat_auto'.] 0.003 secs (0.003u,0.s) +Chars 8952 - 8962 [cat_auto'.] 0.002 secs (0.002u,0.s) Chars 8963 - 8967 [Qed.] 0. secs (0.u,0.s) Chars 8969 - 9018 [Lemma~inr_unit_l~{a}~:~inr_~>>...] 0. secs (0.u,0.s) Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) -Chars 9026 - 9047 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) +Chars 9026 - 9047 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) Chars 9048 - 9052 [Qed.] 0. secs (0.u,0.s) Chars 9054 - 9103 [Lemma~inl_unit_r~{a}~:~inl_~>>...] 0. secs (0.u,0.s) Chars 9104 - 9110 [Proof.] 0. secs (0.u,0.s) -Chars 9111 - 9132 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) +Chars 9111 - 9132 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) Chars 9133 - 9137 [Qed.] 0. secs (0.u,0.s) Chars 9139 - 9201 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 9202 - 9208 [Proof.] 0. secs (0.u,0.s) -Chars 9209 - 9219 [cat_auto'.] 0.056 secs (0.056u,0.s) -Chars 9220 - 9224 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9209 - 9219 [cat_auto'.] 0.04 secs (0.04u,0.s) +Chars 9220 - 9224 [Qed.] 0.001 secs (0.001u,0.s) Chars 9226 - 9290 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 9291 - 9297 [Proof.] 0. secs (0.u,0.s) -Chars 9298 - 9308 [cat_auto'.] 0.01 secs (0.01u,0.s) +Chars 9298 - 9308 [cat_auto'.] 0.007 secs (0.007u,0.s) Chars 9309 - 9313 [Qed.] 0. secs (0.u,0.s) Chars 9376 - 9434 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 9435 - 9441 [Proof.] 0. secs (0.u,0.s) -Chars 9442 - 9452 [cat_auto'.] 0.187 secs (0.185u,0.001s) -Chars 9453 - 9457 [Qed.] 0.006 secs (0.006u,0.s) +Chars 9442 - 9452 [cat_auto'.] 0.132 secs (0.132u,0.s) +Chars 9453 - 9457 [Qed.] 0.004 secs (0.004u,0.s) Chars 9459 - 9519 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 9520 - 9526 [Proof.] 0. secs (0.u,0.s) -Chars 9527 - 9537 [cat_auto'.] 1.096 secs (1.091u,0.004s) -Chars 9538 - 9542 [Qed.] 0.034 secs (0.034u,0.s) +Chars 9527 - 9537 [cat_auto'.] 0.795 secs (0.792u,0.002s) +Chars 9538 - 9542 [Qed.] 0.022 secs (0.022u,0.s) Chars 9544 - 9598 [#[global]~Instance~Monoidal_Co...] 0. secs (0.u,0.s) Chars 9599 - 9605 [Proof.] 0. secs (0.u,0.s) -Chars 9608 - 9660 [(constructor;~idtac~+~construc...] 0.004 secs (0.004u,0.s) +Chars 9608 - 9660 [constructor;~idtac~+~construct...] 0.003 secs (0.003u,0.s) Chars 9661 - 9665 [Qed.] 0. secs (0.u,0.s) Chars 9667 - 9727 [#[global]~Instance~AssocLAssoc...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9735 - 9745 [cat_auto'.] 1.089 secs (1.082u,0.005s) -Chars 9746 - 9750 [Qed.] 0.032 secs (0.032u,0.s) +Chars 9735 - 9745 [cat_auto'.] 0.782 secs (0.779u,0.003s) +Chars 9746 - 9750 [Qed.] 0.021 secs (0.021u,0.s) Chars 9813 - 9869 [#[global]~Instance~SwapUnitL_C...] 0. secs (0.u,0.s) Chars 9870 - 9876 [Proof.] 0. secs (0.u,0.s) -Chars 9877 - 9887 [cat_auto'.] 0.037 secs (0.037u,0.s) +Chars 9877 - 9887 [cat_auto'.] 0.027 secs (0.027u,0.s) Chars 9888 - 9892 [Qed.] 0.001 secs (0.001u,0.s) Chars 9894 - 9950 [#[global]~Instance~SwapAssocR_...] 0. secs (0.u,0.s) Chars 9951 - 9957 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9968 [cat_auto'.] 0.655 secs (0.649u,0.004s) -Chars 9969 - 9973 [Qed.] 0.02 secs (0.02u,0.s) +Chars 9958 - 9968 [cat_auto'.] 0.472 secs (0.471u,0.001s) +Chars 9969 - 9973 [Qed.] 0.013 secs (0.013u,0.s) Chars 9975 - 10031 [#[global]~Instance~SwapAssocL_...] 0. secs (0.u,0.s) Chars 10032 - 10038 [Proof.] 0. secs (0.u,0.s) -Chars 10039 - 10049 [cat_auto'.] 0.667 secs (0.652u,0.01s) -Chars 10050 - 10054 [Qed.] 0.02 secs (0.02u,0.s) +Chars 10039 - 10049 [cat_auto'.] 0.466 secs (0.464u,0.001s) +Chars 10050 - 10054 [Qed.] 0.013 secs (0.013u,0.s) Chars 10056 - 10116 [#[global]~Instance~SymMonoidal...] 0. secs (0.u,0.s) Chars 10117 - 10123 [Proof.] 0. secs (0.u,0.s) -Chars 10126 - 10157 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 10126 - 10157 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 10158 - 10162 [Qed.] 0. secs (0.u,0.s) Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.001 secs (0.001u,0.s) Chars 10270 - 10276 [Proof.] 0. secs (0.u,0.s) -Chars 10277 - 10287 [cat_auto'.] 0.114 secs (0.113u,0.001s) -Chars 10288 - 10292 [Qed.] 0.003 secs (0.003u,0.s) -Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) +Chars 10277 - 10287 [cat_auto'.] 0.078 secs (0.077u,0.s) +Chars 10288 - 10292 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 10424 - 10430 [Proof.] 0. secs (0.u,0.s) -Chars 10431 - 10441 [cat_auto'.] 0.098 secs (0.097u,0.s) -Chars 10442 - 10446 [Qed.] 0.003 secs (0.003u,0.s) -Chars 10448 - 10467 [End~CoproductFacts.] 0.002 secs (0.002u,0.s) +Chars 10431 - 10441 [cat_auto'.] 0.068 secs (0.068u,0.s) +Chars 10442 - 10446 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10448 - 10467 [End~CoproductFacts.] 0.001 secs (0.001u,0.s) Chars 10490 - 10511 [Section~ProductFacts.] 0. secs (0.u,0.s) Chars 10513 - 10548 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) Chars 10550 - 10574 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) @@ -289,37 +289,37 @@ Chars 10675 - 10709 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) Chars 10711 - 10737 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) Chars 10738 - 10824 [Context~{Prod_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) Chars 10825 - 10861 [Context~{Product_C~:~Product~C...] 0. secs (0.u,0.s) -Chars 10863 - 10974 [Lemma~pair_fst'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 10863 - 10974 [Lemma~pair_fst'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 10975 - 10981 [Proof.] 0. secs (0.u,0.s) -Chars 10984 - 11012 [(rewrite~cat_assoc,~pair_fst).] 0.002 secs (0.002u,0.s) +Chars 10984 - 11012 [rewrite~cat_assoc,~pair_fst.] 0.001 secs (0.001u,0.s) Chars 11013 - 11025 [reflexivity.] 0. secs (0.u,0.s) Chars 11026 - 11030 [Qed.] 0. secs (0.u,0.s) -Chars 11032 - 11143 [Lemma~pair_snd'~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 11032 - 11143 [Lemma~pair_snd'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 11144 - 11150 [Proof.] 0. secs (0.u,0.s) -Chars 11153 - 11181 [(rewrite~cat_assoc,~pair_snd).] 0.002 secs (0.002u,0.s) +Chars 11153 - 11181 [rewrite~cat_assoc,~pair_snd.] 0.001 secs (0.001u,0.s) Chars 11182 - 11194 [reflexivity.] 0. secs (0.u,0.s) Chars 11195 - 11199 [Qed.] 0. secs (0.u,0.s) Chars 11235 - 11359 [Lemma~pair_cat~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) Chars 11360 - 11366 [Proof.] 0. secs (0.u,0.s) -Chars 11369 - 11390 [(apply~pair_universal).] 0. secs (0.u,0.s) +Chars 11369 - 11390 [apply~pair_universal.] 0. secs (0.u,0.s) Chars 11393 - 11394 [-] 0. secs (0.u,0.s) -Chars 11395 - 11426 [(rewrite~pair_fst';~reflexivity).] 0. secs (0.u,0.s) +Chars 11395 - 11426 [rewrite~pair_fst';~reflexivity.] 0. secs (0.u,0.s) Chars 11429 - 11430 [-] 0. secs (0.u,0.s) -Chars 11431 - 11462 [(rewrite~pair_snd';~reflexivity).] 0. secs (0.u,0.s) +Chars 11431 - 11462 [rewrite~pair_snd';~reflexivity.] 0. secs (0.u,0.s) Chars 11463 - 11467 [Qed.] 0. secs (0.u,0.s) Chars 11513 - 11574 [Corollary~pair_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) Chars 11575 - 11581 [Proof.] 0. secs (0.u,0.s) -Chars 11584 - 11636 [(apply~pair_universal;~rewrite...] 0.001 secs (0.001u,0.s) +Chars 11584 - 11636 [apply~pair_universal;~rewrite~...] 0.001 secs (0.001u,0.s) Chars 11637 - 11641 [Qed.] 0. secs (0.u,0.s) -Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0.001 secs (0.001u,0.s) +Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) Chars 11730 - 11736 [Proof.] 0. secs (0.u,0.s) -Chars 11739 - 11774 [(eapply~pair_universal;~reflex...] 0.002 secs (0.002u,0.s) +Chars 11739 - 11774 [eapply~pair_universal;~reflexi...] 0. secs (0.u,0.s) Chars 11775 - 11779 [Qed.] 0. secs (0.u,0.s) -Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.002 secs (0.001u,0.s) +Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.001 secs (0.001u,0.s) Chars 11992 - 11998 [Proof.] 0. secs (0.u,0.s) -Chars 12001 - 12008 [(intros).] 0. secs (0.u,0.s) -Chars 12009 - 12031 [(rewrite~(pair_eta'~g)).] 0. secs (0.u,0.s) -Chars 12034 - 12067 [(apply~pair_universal;~assumpt...] 0. secs (0.u,0.s) +Chars 12001 - 12008 [intros.] 0. secs (0.u,0.s) +Chars 12009 - 12031 [rewrite~(pair_eta'~g).] 0. secs (0.u,0.s) +Chars 12034 - 12067 [apply~pair_universal;~assumption.] 0. secs (0.u,0.s) Chars 12068 - 12072 [Qed.] 0. secs (0.u,0.s) Chars 12074 - 12106 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) Chars 12107 - 12138 [Existing~Instance~Swap_Product.] 0. secs (0.u,0.s) @@ -335,165 +335,165 @@ Chars 12993 - 13116 [Ltac~~cat_auto_prod~:=~~~unfol...] 0. secs (0.u,0.s) Chars 13118 - 13268 [Ltac~~cat_auto_prod'~:=~~~repe...] 0. secs (0.u,0.s) Chars 13271 - 13359 [Lemma~swap_pair~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) Chars 13360 - 13366 [Proof.] 0. secs (0.u,0.s) -Chars 13369 - 13403 [(intros;~unfold~swap,~Swap_Pro...] 0. secs (0.u,0.s) -Chars 13406 - 13443 [(rewrite~pair_cat,~pair_fst,~p...] 0.003 secs (0.003u,0.s) +Chars 13369 - 13403 [intros;~unfold~swap,~Swap_Prod...] 0. secs (0.u,0.s) +Chars 13406 - 13443 [rewrite~pair_cat,~pair_fst,~pa...] 0.002 secs (0.002u,0.s) Chars 13448 - 13460 [reflexivity.] 0. secs (0.u,0.s) Chars 13461 - 13465 [Qed.] 0. secs (0.u,0.s) Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) Chars 13519 - 13525 [Proof.] 0. secs (0.u,0.s) -Chars 13526 - 13541 [(apply~pair_snd).] 0. secs (0.u,0.s) +Chars 13526 - 13541 [apply~pair_snd.] 0. secs (0.u,0.s) Chars 13542 - 13546 [Qed.] 0. secs (0.u,0.s) Chars 13548 - 13599 [Lemma~swap_fst~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) Chars 13600 - 13606 [Proof.] 0. secs (0.u,0.s) -Chars 13607 - 13622 [(apply~pair_fst).] 0. secs (0.u,0.s) +Chars 13607 - 13622 [apply~pair_fst.] 0. secs (0.u,0.s) Chars 13623 - 13627 [Qed.] 0. secs (0.u,0.s) Chars 13629 - 13737 [Lemma~bimap_pair_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) Chars 13738 - 13744 [Proof.] 0. secs (0.u,0.s) Chars 13745 - 13757 [reflexivity.] 0. secs (0.u,0.s) Chars 13758 - 13762 [Qed.] 0. secs (0.u,0.s) -Chars 13764 - 13852 [Lemma~bimap_fst~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 13764 - 13852 [Lemma~bimap_fst~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 13853 - 13859 [Proof.] 0. secs (0.u,0.s) -Chars 13860 - 13875 [(apply~pair_fst).] 0. secs (0.u,0.s) +Chars 13860 - 13875 [apply~pair_fst.] 0. secs (0.u,0.s) Chars 13876 - 13880 [Qed.] 0. secs (0.u,0.s) -Chars 13882 - 13970 [Lemma~bimap_snd~{a}~{b}~{c}~{d...] 0.001 secs (0.001u,0.s) +Chars 13882 - 13970 [Lemma~bimap_snd~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) Chars 13971 - 13977 [Proof.] 0. secs (0.u,0.s) -Chars 13978 - 13993 [(apply~pair_snd).] 0. secs (0.u,0.s) +Chars 13978 - 13993 [apply~pair_snd.] 0. secs (0.u,0.s) Chars 13994 - 13998 [Qed.] 0. secs (0.u,0.s) Chars 14000 - 14157 [Lemma~pair_bimap~{a}~{b}~{b'}~...] 0.001 secs (0.001u,0.s) Chars 14158 - 14164 [Proof.] 0. secs (0.u,0.s) -Chars 14165 - 14180 [cat_auto_prod'.] 0.062 secs (0.061u,0.s) -Chars 14181 - 14185 [Qed.] 0.002 secs (0.002u,0.s) +Chars 14165 - 14180 [cat_auto_prod'.] 0.042 secs (0.042u,0.s) +Chars 14181 - 14185 [Qed.] 0.001 secs (0.001u,0.s) Chars 14187 - 14259 [Lemma~assoc_r_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14260 - 14266 [Proof.] 0. secs (0.u,0.s) -Chars 14267 - 14282 [cat_auto_prod'.] 0.009 secs (0.009u,0.s) +Chars 14267 - 14282 [cat_auto_prod'.] 0.006 secs (0.006u,0.s) Chars 14283 - 14287 [Qed.] 0. secs (0.u,0.s) -Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.002 secs (0.002u,0.s) +Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14362 - 14368 [Proof.] 0. secs (0.u,0.s) -Chars 14369 - 14384 [cat_auto_prod'.] 0.012 secs (0.012u,0.s) +Chars 14369 - 14384 [cat_auto_prod'.] 0.008 secs (0.008u,0.s) Chars 14385 - 14389 [Qed.] 0. secs (0.u,0.s) Chars 14391 - 14468 [Lemma~assoc_l_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14469 - 14475 [Proof.] 0. secs (0.u,0.s) -Chars 14476 - 14491 [cat_auto_prod'.] 0.017 secs (0.017u,0.s) +Chars 14476 - 14491 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) Chars 14492 - 14496 [Qed.] 0. secs (0.u,0.s) Chars 14499 - 14576 [Lemma~assoc_r_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) Chars 14577 - 14583 [Proof.] 0. secs (0.u,0.s) -Chars 14584 - 14599 [cat_auto_prod'.] 0.021 secs (0.021u,0.s) +Chars 14584 - 14599 [cat_auto_prod'.] 0.015 secs (0.015u,0.s) Chars 14600 - 14604 [Qed.] 0. secs (0.u,0.s) -Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0.001 secs (0.001u,0.s) +Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0. secs (0.u,0.s) Chars 14907 - 14913 [Proof.] 0. secs (0.u,0.s) -Chars 14916 - 14947 [(intros~ac~ac'~eqac~bd~bd'~eqbd).] 0. secs (0.u,0.s) -Chars 14950 - 14978 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) -Chars 14981 - 15013 [(rewrite~eqac,~eqbd;~reflexivi...] 0.004 secs (0.004u,0.s) -Chars 15014 - 15018 [Qed.] 0.001 secs (0.001u,0.s) +Chars 14916 - 14947 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) +Chars 14950 - 14978 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) +Chars 14981 - 15013 [rewrite~eqac,~eqbd;~reflexivity.] 0.003 secs (0.003u,0.s) +Chars 15014 - 15018 [Qed.] 0. secs (0.u,0.s) Chars 15020 - 15061 [Instance~BimapId_Product~:~(Bi...] 0. secs (0.u,0.s) Chars 15062 - 15068 [Proof.] 0. secs (0.u,0.s) -Chars 15071 - 15082 [(intros~A~B).] 0. secs (0.u,0.s) +Chars 15071 - 15082 [intros~A~B.] 0. secs (0.u,0.s) Chars 15085 - 15094 [symmetry.] 0. secs (0.u,0.s) -Chars 15095 - 15123 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) -Chars 15126 - 15145 [(rewrite~2!cat_id_r).] 0.003 secs (0.003u,0.s) -Chars 15148 - 15163 [(apply~pair_eta).] 0. secs (0.u,0.s) +Chars 15095 - 15123 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) +Chars 15126 - 15145 [rewrite~2!cat_id_r.] 0.001 secs (0.001u,0.s) +Chars 15148 - 15163 [apply~pair_eta.] 0. secs (0.u,0.s) Chars 15164 - 15168 [Qed.] 0. secs (0.u,0.s) Chars 15170 - 15213 [Instance~BimapCat_Product~:~(B...] 0. secs (0.u,0.s) Chars 15214 - 15220 [Proof.] 0. secs (0.u,0.s) -Chars 15221 - 15236 [cat_auto_prod'.] 0.105 secs (0.105u,0.s) +Chars 15221 - 15236 [cat_auto_prod'.] 0.074 secs (0.074u,0.s) Chars 15237 - 15241 [Qed.] 0.002 secs (0.002u,0.s) Chars 15243 - 15288 [Instance~Bifunctor_Product~:~(...] 0. secs (0.u,0.s) Chars 15289 - 15295 [Proof.] 0. secs (0.u,0.s) -Chars 15298 - 15329 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) +Chars 15298 - 15329 [constructor;~typeclasses~eauto.] 0.001 secs (0.001u,0.s) Chars 15330 - 15334 [Qed.] 0. secs (0.u,0.s) Chars 15373 - 15448 [Instance~SwapInvolutive_Produc...] 0. secs (0.u,0.s) Chars 15449 - 15455 [Proof.] 0. secs (0.u,0.s) -Chars 15456 - 15471 [cat_auto_prod'.] 0.042 secs (0.042u,0.s) +Chars 15456 - 15471 [cat_auto_prod'.] 0.03 secs (0.03u,0.s) Chars 15472 - 15476 [Qed.] 0.001 secs (0.001u,0.s) Chars 15515 - 15596 [Instance~AssocRMono_Product~~{...] 0. secs (0.u,0.s) Chars 15597 - 15603 [Proof.] 0. secs (0.u,0.s) -Chars 15604 - 15619 [cat_auto_prod'.] 0.195 secs (0.193u,0.001s) -Chars 15620 - 15624 [Qed.] 0.004 secs (0.004u,0.s) +Chars 15604 - 15619 [cat_auto_prod'.] 0.14 secs (0.139u,0.s) +Chars 15620 - 15624 [Qed.] 0.003 secs (0.003u,0.s) Chars 15626 - 15707 [Instance~AssocLMono_Product~~{...] 0. secs (0.u,0.s) Chars 15708 - 15714 [Proof.] 0. secs (0.u,0.s) -Chars 15715 - 15730 [cat_auto_prod'.] 0.192 secs (0.191u,0.s) -Chars 15731 - 15735 [Qed.] 0.004 secs (0.004u,0.s) +Chars 15715 - 15730 [cat_auto_prod'.] 0.137 secs (0.137u,0.s) +Chars 15731 - 15735 [Qed.] 0.003 secs (0.003u,0.s) Chars 15737 - 15755 [Context~(t~:~obj).] 0. secs (0.u,0.s) Chars 15756 - 15792 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) Chars 15793 - 15841 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) Chars 15874 - 15947 [Instance~UnitLMono_Product~~{a...] 0. secs (0.u,0.s) Chars 15948 - 15954 [Proof.] 0. secs (0.u,0.s) -Chars 15955 - 15970 [cat_auto_prod'.] 0.037 secs (0.037u,0.s) -Chars 15971 - 15995 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) +Chars 15955 - 15970 [cat_auto_prod'.] 0.027 secs (0.026u,0.s) +Chars 15971 - 15995 [rewrite~terminal_unique.] 0. secs (0.u,0.s) Chars 15996 - 16008 [reflexivity.] 0. secs (0.u,0.s) -Chars 16009 - 16013 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16009 - 16013 [Qed.] 0. secs (0.u,0.s) Chars 16051 - 16131 [#[global]~Instance~UnitRMono_P...] 0. secs (0.u,0.s) Chars 16132 - 16138 [Proof.] 0. secs (0.u,0.s) -Chars 16139 - 16154 [cat_auto_prod'.] 0.037 secs (0.037u,0.s) -Chars 16155 - 16179 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) +Chars 16139 - 16154 [cat_auto_prod'.] 0.027 secs (0.027u,0.s) +Chars 16155 - 16179 [rewrite~terminal_unique.] 0. secs (0.u,0.s) Chars 16180 - 16192 [reflexivity.] 0. secs (0.u,0.s) -Chars 16193 - 16197 [Qed.] 0.001 secs (0.001u,0.s) +Chars 16193 - 16197 [Qed.] 0. secs (0.u,0.s) Chars 16199 - 16278 [#[global]~Instance~UnitLEpi_Pr...] 0. secs (0.u,0.s) Chars 16279 - 16285 [Proof.] 0. secs (0.u,0.s) -Chars 16286 - 16301 [cat_auto_prod'.] 0.004 secs (0.004u,0.s) +Chars 16286 - 16301 [cat_auto_prod'.] 0.003 secs (0.003u,0.s) Chars 16302 - 16306 [Qed.] 0. secs (0.u,0.s) Chars 16308 - 16387 [#[global]~Instance~UnitREpi_Pr...] 0. secs (0.u,0.s) Chars 16388 - 16394 [Proof.] 0. secs (0.u,0.s) -Chars 16395 - 16410 [cat_auto_prod'.] 0.003 secs (0.003u,0.s) +Chars 16395 - 16410 [cat_auto_prod'.] 0.002 secs (0.002u,0.s) Chars 16411 - 16415 [Qed.] 0. secs (0.u,0.s) Chars 16417 - 16468 [Lemma~unit_l'_snd~{a}~:~unit_l...] 0. secs (0.u,0.s) Chars 16469 - 16475 [Proof.] 0. secs (0.u,0.s) -Chars 16476 - 16497 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) +Chars 16476 - 16497 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) Chars 16498 - 16502 [Qed.] 0. secs (0.u,0.s) Chars 16504 - 16555 [Lemma~unit_r'_fst~{a}~:~unit_r...] 0. secs (0.u,0.s) Chars 16556 - 16562 [Proof.] 0. secs (0.u,0.s) -Chars 16563 - 16584 [(apply~(semi_iso~_~_)).] 0. secs (0.u,0.s) +Chars 16563 - 16584 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) Chars 16585 - 16589 [Qed.] 0. secs (0.u,0.s) Chars 16591 - 16644 [Instance~UnitLNatural_Product~...] 0. secs (0.u,0.s) Chars 16645 - 16651 [Proof.] 0. secs (0.u,0.s) -Chars 16652 - 16667 [cat_auto_prod'.] 0.01 secs (0.01u,0.s) +Chars 16652 - 16667 [cat_auto_prod'.] 0.007 secs (0.007u,0.s) Chars 16668 - 16672 [Qed.] 0. secs (0.u,0.s) Chars 16674 - 16729 [Instance~UnitL'Natural_Product...] 0. secs (0.u,0.s) Chars 16730 - 16736 [Proof.] 0. secs (0.u,0.s) -Chars 16737 - 16752 [cat_auto_prod'.] 0.073 secs (0.072u,0.s) -Chars 16753 - 16777 [(rewrite~terminal_unique).] 0. secs (0.u,0.s) +Chars 16737 - 16752 [cat_auto_prod'.] 0.052 secs (0.051u,0.s) +Chars 16753 - 16777 [rewrite~terminal_unique.] 0. secs (0.u,0.s) Chars 16778 - 16790 [reflexivity.] 0. secs (0.u,0.s) -Chars 16791 - 16795 [Qed.] 0.002 secs (0.002u,0.s) +Chars 16791 - 16795 [Qed.] 0.001 secs (0.001u,0.s) Chars 16856 - 16905 [Instance~AssocRUnit_Product~:~...] 0. secs (0.u,0.s) Chars 16906 - 16912 [Proof.] 0. secs (0.u,0.s) -Chars 16913 - 16928 [cat_auto_prod'.] 0.126 secs (0.126u,0.s) -Chars 16929 - 16933 [Qed.] 0.003 secs (0.003u,0.s) +Chars 16913 - 16928 [cat_auto_prod'.] 0.088 secs (0.087u,0.s) +Chars 16929 - 16933 [Qed.] 0.002 secs (0.002u,0.s) Chars 16935 - 16986 [Instance~AssocRAssocR_Product~...] 0. secs (0.u,0.s) Chars 16987 - 16993 [Proof.] 0. secs (0.u,0.s) -Chars 16994 - 17009 [cat_auto_prod'.] 1.216 secs (1.212u,0.003s) -Chars 17010 - 17014 [Qed.] 0.032 secs (0.032u,0.s) +Chars 16994 - 17009 [cat_auto_prod'.] 0.883 secs (0.88u,0.002s) +Chars 17010 - 17014 [Qed.] 0.023 secs (0.023u,0.s) Chars 17016 - 17061 [Instance~Monoidal_Product~:~(M...] 0. secs (0.u,0.s) Chars 17062 - 17068 [Proof.] 0. secs (0.u,0.s) -Chars 17071 - 17123 [(constructor;~idtac~+~construc...] 0.005 secs (0.005u,0.s) +Chars 17071 - 17123 [constructor;~idtac~+~construct...] 0.004 secs (0.004u,0.s) Chars 17124 - 17128 [Qed.] 0. secs (0.u,0.s) Chars 17130 - 17181 [Instance~AssocLAssocL_Product~...] 0. secs (0.u,0.s) Chars 17182 - 17188 [Proof.] 0. secs (0.u,0.s) -Chars 17189 - 17204 [cat_auto_prod'.] 1.25 secs (1.242u,0.006s) -Chars 17205 - 17209 [Qed.] 0.035 secs (0.034u,0.s) +Chars 17189 - 17204 [cat_auto_prod'.] 0.896 secs (0.894u,0.002s) +Chars 17205 - 17209 [Qed.] 0.021 secs (0.021u,0.s) Chars 17272 - 17319 [Instance~SwapUnitL_Product~:~(...] 0. secs (0.u,0.s) Chars 17320 - 17326 [Proof.] 0. secs (0.u,0.s) Chars 17327 - 17342 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) Chars 17343 - 17347 [Qed.] 0. secs (0.u,0.s) Chars 17349 - 17396 [Instance~SwapAssocR_Product~:~...] 0. secs (0.u,0.s) Chars 17397 - 17403 [Proof.] 0. secs (0.u,0.s) -Chars 17404 - 17419 [cat_auto_prod'.] 0.719 secs (0.717u,0.001s) -Chars 17420 - 17424 [Qed.] 0.021 secs (0.021u,0.s) +Chars 17404 - 17419 [cat_auto_prod'.] 0.528 secs (0.526u,0.001s) +Chars 17420 - 17424 [Qed.] 0.014 secs (0.014u,0.s) Chars 17426 - 17473 [Instance~SwapAssocL_Product~:~...] 0. secs (0.u,0.s) Chars 17474 - 17480 [Proof.] 0. secs (0.u,0.s) -Chars 17481 - 17496 [cat_auto_prod'.] 0.725 secs (0.722u,0.002s) -Chars 17497 - 17501 [Qed.] 0.022 secs (0.021u,0.s) +Chars 17481 - 17496 [cat_auto_prod'.] 0.53 secs (0.528u,0.002s) +Chars 17497 - 17501 [Qed.] 0.015 secs (0.015u,0.s) Chars 17503 - 17554 [Instance~SymMonoidal_Product~:...] 0. secs (0.u,0.s) Chars 17555 - 17561 [Proof.] 0. secs (0.u,0.s) -Chars 17564 - 17595 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 17564 - 17595 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 17596 - 17600 [Qed.] 0. secs (0.u,0.s) Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.001 secs (0.001u,0.s) Chars 17713 - 17719 [Proof.] 0. secs (0.u,0.s) -Chars 17720 - 17735 [cat_auto_prod'.] 0.123 secs (0.122u,0.s) -Chars 17736 - 17740 [Qed.] 0.003 secs (0.003u,0.s) -Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.002 secs (0.002u,0.s) +Chars 17720 - 17735 [cat_auto_prod'.] 0.093 secs (0.093u,0.s) +Chars 17736 - 17740 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 17877 - 17883 [Proof.] 0. secs (0.u,0.s) -Chars 17884 - 17899 [cat_auto_prod'.] 0.108 secs (0.108u,0.s) -Chars 17900 - 17904 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17884 - 17899 [cat_auto_prod'.] 0.079 secs (0.078u,0.s) +Chars 17900 - 17904 [Qed.] 0.002 secs (0.002u,0.s) Chars 17906 - 17923 [End~ProductFacts.] 0.001 secs (0.001u,0.s) Chars 17926 - 18039 [Ltac~~cat_auto_step~:=~~~repea...] 0. secs (0.u,0.s) Chars 18041 - 18152 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) @@ -510,185 +510,185 @@ Chars 18578 - 18610 [Context~{Iter_bif~:~Iter~C~bif}.] 0. secs (0.u,0.s) Chars 18611 - 18651 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0. secs (0.u,0.s) Chars 18754 - 18760 [Proof.] 0. secs (0.u,0.s) -Chars 18763 - 18776 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 18779 - 18791 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 18794 - 18804 [(rewrite~H).] 0.003 secs (0.003u,0.s) +Chars 18763 - 18776 [repeat~intro.] 0. secs (0.u,0.s) +Chars 18779 - 18791 [unfold~loop.] 0. secs (0.u,0.s) +Chars 18794 - 18804 [rewrite~H.] 0.003 secs (0.003u,0.s) Chars 18807 - 18819 [reflexivity.] 0. secs (0.u,0.s) Chars 18820 - 18824 [Qed.] 0. secs (0.u,0.s) Chars 19094 - 19222 [Lemma~loop_natural_left~{a}~{a...] 0.001 secs (0.001u,0.s) Chars 19223 - 19229 [Proof.] 0. secs (0.u,0.s) -Chars 19232 - 19244 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 19247 - 19382 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) +Chars 19232 - 19244 [unfold~loop.] 0. secs (0.u,0.s) +Chars 19247 - 19382 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) Chars 19385 - 19386 [-] 0. secs (0.u,0.s) -Chars 19387 - 19410 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) -Chars 19415 - 19424 [cat_auto.] 0.172 secs (0.172u,0.s) -Chars 19425 - 19444 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 19445 - 19454 [cat_auto.] 0.097 secs (0.097u,0.s) +Chars 19387 - 19410 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 19415 - 19424 [cat_auto.] 0.124 secs (0.123u,0.s) +Chars 19425 - 19444 [do~2~cat_auto_step.] 0.002 secs (0.002u,0.s) +Chars 19445 - 19454 [cat_auto.] 0.073 secs (0.073u,0.s) Chars 19457 - 19458 [-] 0. secs (0.u,0.s) -Chars 19459 - 19468 [cat_auto.] 0.091 secs (0.091u,0.s) -Chars 19469 - 19473 [Qed.] 0.013 secs (0.013u,0.s) -Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.002 secs (0.002u,0.s) +Chars 19459 - 19468 [cat_auto.] 0.079 secs (0.076u,0.s) +Chars 19469 - 19473 [Qed.] 0.011 secs (0.011u,0.s) +Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.001 secs (0.001u,0.s) Chars 19843 - 19849 [Proof.] 0. secs (0.u,0.s) -Chars 19852 - 19864 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 19867 - 19885 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 19852 - 19864 [unfold~loop.] 0. secs (0.u,0.s) +Chars 19867 - 19885 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) Chars 19886 - 19900 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 19903 - 19924 [(rewrite~iter_natural).] 0.001 secs (0.001u,0.s) -Chars 19925 - 19939 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 19942 - 19995 [(rewrite~!cat_assoc,~!bimap_ca...] 0.025 secs (0.025u,0.s) +Chars 19903 - 19924 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) +Chars 19925 - 19939 [cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 19942 - 19995 [rewrite~!cat_assoc,~!bimap_cat...] 0.02 secs (0.02u,0.s) Chars 19998 - 20010 [reflexivity.] 0. secs (0.u,0.s) Chars 20011 - 20015 [Qed.] 0.002 secs (0.002u,0.s) -Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.002 secs (0.002u,0.s) +Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.001 secs (0.001u,0.s) Chars 20160 - 20166 [Proof.] 0. secs (0.u,0.s) -Chars 20169 - 20181 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 20184 - 20319 [(transitivity~~~(inr_~>>>~~~~i...] 0.001 secs (0.001u,0.s) +Chars 20169 - 20181 [unfold~loop.] 0. secs (0.u,0.s) +Chars 20184 - 20319 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) Chars 20322 - 20323 [-] 0. secs (0.u,0.s) -Chars 20324 - 20347 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) -Chars 20352 - 20361 [cat_auto.] 0.171 secs (0.171u,0.s) -Chars 20362 - 20381 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 20382 - 20391 [cat_auto.] 0.153 secs (0.153u,0.s) +Chars 20324 - 20347 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 20352 - 20361 [cat_auto.] 0.126 secs (0.125u,0.s) +Chars 20362 - 20381 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 20382 - 20391 [cat_auto.] 0.114 secs (0.113u,0.s) Chars 20394 - 20395 [-] 0. secs (0.u,0.s) -Chars 20396 - 20405 [cat_auto.] 0.092 secs (0.092u,0.s) -Chars 20406 - 20410 [Qed.] 0.016 secs (0.015u,0.s) +Chars 20396 - 20405 [cat_auto.] 0.068 secs (0.067u,0.s) +Chars 20406 - 20410 [Qed.] 0.011 secs (0.011u,0.s) Chars 20412 - 20430 [Context~{i~:~obj}.] 0. secs (0.u,0.s) Chars 20431 - 20465 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) Chars 20466 - 20512 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) Chars 20514 - 20613 [Lemma~loop_vanishing_1~{a}~{b}...] 0.001 secs (0.001u,0.s) Chars 20614 - 20620 [Proof.] 0. secs (0.u,0.s) -Chars 20623 - 20635 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 20638 - 20658 [(rewrite~iter_unfold).] 0.002 secs (0.002u,0.s) -Chars 20659 - 20668 [cat_auto.] 0.068 secs (0.068u,0.s) +Chars 20623 - 20635 [unfold~loop.] 0. secs (0.u,0.s) +Chars 20638 - 20658 [rewrite~iter_unfold.] 0.001 secs (0.001u,0.s) +Chars 20659 - 20668 [cat_auto.] 0.049 secs (0.049u,0.s) Chars 20669 - 20683 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20684 - 20693 [cat_auto.] 0.084 secs (0.084u,0.s) -Chars 20694 - 20698 [Qed.] 0.004 secs (0.004u,0.s) -Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.003 secs (0.003u,0.s) +Chars 20684 - 20693 [cat_auto.] 0.06 secs (0.06u,0.s) +Chars 20694 - 20698 [Qed.] 0.003 secs (0.003u,0.s) +Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.002 secs (0.002u,0.s) Chars 21137 - 21143 [Proof.] 0. secs (0.u,0.s) -Chars 21146 - 21158 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 21161 - 21291 [(transitivity~~~(inr_~>>>~inr_...] 0.002 secs (0.002u,0.s) +Chars 21146 - 21158 [unfold~loop.] 0. secs (0.u,0.s) +Chars 21161 - 21291 [transitivity~~(inr_~>>>~inr_~>...] 0.001 secs (0.001u,0.s) Chars 21294 - 21295 [-] 0. secs (0.u,0.s) -Chars 21296 - 21441 [(transitivity~~~(inr_~>>>~~~~i...] 0.003 secs (0.003u,0.s) +Chars 21296 - 21441 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) Chars 21446 - 21447 [+] 0. secs (0.u,0.s) -Chars 21448 - 21457 [cat_auto.] 0.169 secs (0.168u,0.s) -Chars 21458 - 21477 [(do~2~cat_auto_step).] 0.002 secs (0.002u,0.s) -Chars 21478 - 21499 [(rewrite~iter_natural).] 0.002 secs (0.002u,0.s) +Chars 21448 - 21457 [cat_auto.] 0.123 secs (0.123u,0.s) +Chars 21458 - 21477 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) +Chars 21478 - 21499 [rewrite~iter_natural.] 0.002 secs (0.001u,0.s) Chars 21506 - 21520 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 21521 - 21539 [(rewrite~cat_assoc).] 0.002 secs (0.002u,0.s) -Chars 21540 - 21554 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 21561 - 21570 [cat_auto.] 0.169 secs (0.168u,0.s) +Chars 21521 - 21539 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 21540 - 21554 [cat_auto_step.] 0. secs (0.u,0.s) +Chars 21561 - 21570 [cat_auto.] 0.123 secs (0.123u,0.s) Chars 21575 - 21576 [+] 0. secs (0.u,0.s) -Chars 21577 - 21600 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) -Chars 21607 - 21635 [(rewrite~cat_assoc,~case_inl).] 0.008 secs (0.008u,0.s) -Chars 21642 - 21663 [(rewrite~iter_natural).] 0.006 secs (0.006u,0.s) -Chars 21670 - 21679 [cat_auto.] 0.234 secs (0.233u,0.s) -Chars 21680 - 21699 [(do~3~cat_auto_step).] 0.004 secs (0.004u,0.s) -Chars 21706 - 21715 [cat_auto.] 0.454 secs (0.452u,0.001s) +Chars 21577 - 21600 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 21607 - 21635 [rewrite~cat_assoc,~case_inl.] 0.006 secs (0.006u,0.s) +Chars 21642 - 21663 [rewrite~iter_natural.] 0.004 secs (0.004u,0.s) +Chars 21670 - 21679 [cat_auto.] 0.17 secs (0.169u,0.s) +Chars 21680 - 21699 [do~3~cat_auto_step.] 0.003 secs (0.003u,0.s) +Chars 21706 - 21715 [cat_auto.] 0.327 secs (0.326u,0.001s) Chars 21719 - 21720 [-] 0. secs (0.u,0.s) -Chars 21721 - 21745 [(rewrite~iter_codiagonal).] 0.003 secs (0.003u,0.s) -Chars 21750 - 21806 [(rewrite~(cat_assoc~_~(bimap~_...] 0.018 secs (0.018u,0.s) -Chars 21811 - 21954 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) +Chars 21721 - 21745 [rewrite~iter_codiagonal.] 0.002 secs (0.002u,0.s) +Chars 21750 - 21806 [rewrite~(cat_assoc~_~(bimap~_~...] 0.013 secs (0.013u,0.s) +Chars 21811 - 21954 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) Chars 21959 - 21960 [+] 0. secs (0.u,0.s) -Chars 21961 - 21984 [(rewrite~iter_dinatural).] 0.003 secs (0.003u,0.s) -Chars 21991 - 22000 [cat_auto.] 0.349 secs (0.348u,0.s) -Chars 22001 - 22020 [(do~2~cat_auto_step).] 0.003 secs (0.003u,0.s) -Chars 22021 - 22030 [cat_auto.] 0.511 secs (0.51u,0.001s) +Chars 21961 - 21984 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) +Chars 21991 - 22000 [cat_auto.] 0.256 secs (0.255u,0.001s) +Chars 22001 - 22020 [do~2~cat_auto_step.] 0.002 secs (0.002u,0.s) +Chars 22021 - 22030 [cat_auto.] 0.372 secs (0.37u,0.001s) Chars 22035 - 22036 [+] 0. secs (0.u,0.s) -Chars 22037 - 22046 [cat_auto.] 0.189 secs (0.188u,0.s) -Chars 22047 - 22051 [Qed.] 0.076 secs (0.076u,0.s) -Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.003 secs (0.003u,0.s) +Chars 22037 - 22046 [cat_auto.] 0.138 secs (0.137u,0.s) +Chars 22047 - 22051 [Qed.] 0.05 secs (0.05u,0.s) +Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.002 secs (0.002u,0.s) Chars 22211 - 22217 [Proof.] 0. secs (0.u,0.s) -Chars 22220 - 22232 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 22235 - 22244 [cat_auto.] 0.332 secs (0.33u,0.001s) +Chars 22220 - 22232 [unfold~loop.] 0. secs (0.u,0.s) +Chars 22235 - 22244 [cat_auto.] 0.242 secs (0.241u,0.s) Chars 22247 - 22248 [-] 0. secs (0.u,0.s) -Chars 22249 - 22438 [(transitivity~~~(inr_~>>>~~~~i...] 0.004 secs (0.004u,0.s) +Chars 22249 - 22438 [transitivity~~(inr_~>>>~~~iter...] 0.003 secs (0.003u,0.s) Chars 22444 - 22445 [+] 0. secs (0.u,0.s) -Chars 22446 - 22478 [(rewrite~cat_assoc,~iter_natur...] 0.009 secs (0.009u,0.s) -Chars 22485 - 22516 [(do~2~(cat_auto_step;~cat_auto)).] 1.024 secs (1.022u,0.002s) +Chars 22446 - 22478 [rewrite~cat_assoc,~iter_natural.] 0.006 secs (0.006u,0.s) +Chars 22485 - 22516 [do~2~(cat_auto_step;~cat_auto).] 0.747 secs (0.744u,0.002s) Chars 22521 - 22522 [+] 0. secs (0.u,0.s) -Chars 22523 - 22546 [(rewrite~iter_dinatural).] 0.006 secs (0.006u,0.s) -Chars 22553 - 22584 [(do~3~(cat_auto;~cat_auto_step)).] 2.356 secs (2.351u,0.004s) +Chars 22523 - 22546 [rewrite~iter_dinatural.] 0.004 secs (0.004u,0.s) +Chars 22553 - 22584 [do~3~(cat_auto;~cat_auto_step).] 1.715 secs (1.711u,0.004s) Chars 22588 - 22589 [-] 0. secs (0.u,0.s) -Chars 22590 - 22610 [(rewrite~iter_unfold).] 0.006 secs (0.006u,0.s) -Chars 22611 - 22620 [cat_auto.] 0.492 secs (0.491u,0.s) -Chars 22621 - 22625 [Qed.] 0.135 secs (0.134u,0.001s) +Chars 22590 - 22610 [rewrite~iter_unfold.] 0.005 secs (0.005u,0.s) +Chars 22611 - 22620 [cat_auto.] 0.361 secs (0.36u,0.001s) +Chars 22621 - 22625 [Qed.] 0.089 secs (0.088u,0.s) Chars 22627 - 22672 [Lemma~loop_yanking~{a}~:~loop~...] 0. secs (0.u,0.s) Chars 22673 - 22679 [Proof.] 0. secs (0.u,0.s) -Chars 22682 - 22694 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 22695 - 22717 [(rewrite~2!iter_unfold).] 0.007 secs (0.006u,0.s) -Chars 22718 - 22727 [cat_auto.] 0.153 secs (0.152u,0.s) -Chars 22728 - 22732 [Qed.] 0.007 secs (0.007u,0.s) -Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.003 secs (0.003u,0.s) +Chars 22682 - 22694 [unfold~loop.] 0. secs (0.u,0.s) +Chars 22695 - 22717 [rewrite~2!iter_unfold.] 0.005 secs (0.005u,0.s) +Chars 22718 - 22727 [cat_auto.] 0.117 secs (0.116u,0.s) +Chars 22728 - 22732 [Qed.] 0.005 secs (0.005u,0.s) +Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.002 secs (0.002u,0.s) Chars 22928 - 22934 [Proof.] 0. secs (0.u,0.s) -Chars 22937 - 22948 [(intros~Hij).] 0. secs (0.u,0.s) -Chars 22949 - 22972 [(rewrite~loop_dinatural).] 0.001 secs (0.u,0.s) -Chars 22975 - 22996 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 22999 - 23017 [(rewrite~bimap_cat).] 0.001 secs (0.001u,0.s) -Chars 23020 - 23032 [(rewrite~Hij).] 0.002 secs (0.002u,0.s) -Chars 23035 - 23052 [(rewrite~cat_id_l).] 0.002 secs (0.002u,0.s) -Chars 23055 - 23072 [(rewrite~bimap_id).] 0.002 secs (0.002u,0.s) -Chars 23075 - 23092 [(rewrite~cat_id_l).] 0. secs (0.u,0.s) +Chars 22937 - 22948 [intros~Hij.] 0. secs (0.u,0.s) +Chars 22949 - 22972 [rewrite~loop_dinatural.] 0. secs (0.u,0.s) +Chars 22975 - 22996 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 22999 - 23017 [rewrite~bimap_cat.] 0.001 secs (0.001u,0.s) +Chars 23020 - 23032 [rewrite~Hij.] 0.001 secs (0.001u,0.s) +Chars 23035 - 23052 [rewrite~cat_id_l.] 0.001 secs (0.001u,0.s) +Chars 23055 - 23072 [rewrite~bimap_id.] 0.001 secs (0.001u,0.s) +Chars 23075 - 23092 [rewrite~cat_id_l.] 0. secs (0.u,0.s) Chars 23095 - 23107 [reflexivity.] 0. secs (0.u,0.s) -Chars 23108 - 23112 [Qed.] 0.001 secs (0.001u,0.s) +Chars 23108 - 23112 [Qed.] 0.002 secs (0.002u,0.s) Chars 23407 - 23509 [Theorem~cat_from_loop~{a}~{b}~...] 0.001 secs (0.001u,0.s) Chars 23510 - 23516 [Proof.] 0. secs (0.u,0.s) -Chars 23618 - 23638 [(rewrite~bimap_slide).] 0.002 secs (0.002u,0.s) -Chars 23641 - 23662 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 23776 - 23806 [(rewrite~<-~loop_natural_right).] 0.001 secs (0.001u,0.s) -Chars 23914 - 23933 [(rewrite~swap_bimap).] 0.002 secs (0.002u,0.s) -Chars 23936 - 23958 [(rewrite~<-~!cat_assoc).] 0.006 secs (0.006u,0.s) -Chars 24088 - 24122 [(rewrite~swap_involutive,~cat_...] 0.007 secs (0.006u,0.s) -Chars 24252 - 24281 [(rewrite~<-~loop_natural_left).] 0.001 secs (0.001u,0.s) -Chars 24380 - 24401 [(rewrite~loop_yanking).] 0.001 secs (0.001u,0.s) -Chars 24404 - 24421 [(rewrite~cat_id_r).] 0.001 secs (0.001u,0.s) +Chars 23618 - 23638 [rewrite~bimap_slide.] 0.001 secs (0.001u,0.s) +Chars 23641 - 23662 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 23776 - 23806 [rewrite~<-~loop_natural_right.] 0. secs (0.u,0.s) +Chars 23914 - 23933 [rewrite~swap_bimap.] 0.001 secs (0.001u,0.s) +Chars 23936 - 23958 [rewrite~<-~!cat_assoc.] 0.004 secs (0.004u,0.s) +Chars 24088 - 24122 [rewrite~swap_involutive,~cat_i...] 0.003 secs (0.003u,0.s) +Chars 24252 - 24281 [rewrite~<-~loop_natural_left.] 0.002 secs (0.002u,0.s) +Chars 24380 - 24401 [rewrite~loop_yanking.] 0.001 secs (0.001u,0.s) +Chars 24404 - 24421 [rewrite~cat_id_r.] 0. secs (0.u,0.s) Chars 24451 - 24463 [reflexivity.] 0. secs (0.u,0.s) -Chars 24464 - 24468 [Qed.] 0.003 secs (0.003u,0.s) +Chars 24464 - 24468 [Qed.] 0.002 secs (0.002u,0.s) Chars 24625 - 24704 [Fact~fwd_eqn~{a}~{b}~(f~g~:~C~...] 0. secs (0.u,0.s) Chars 24705 - 24711 [Proof.] 0. secs (0.u,0.s) -Chars 24714 - 24744 [(intro~H;~apply~H;~reflexivity).] 0. secs (0.u,0.s) +Chars 24714 - 24744 [intro~H;~apply~H;~reflexivity.] 0. secs (0.u,0.s) Chars 24745 - 24749 [Qed.] 0. secs (0.u,0.s) Chars 24800 - 24886 [Fact~cat_eq2_l~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) Chars 24887 - 24893 [Proof.] 0. secs (0.u,0.s) -Chars 24896 - 24929 [(intros~H;~rewrite~H;~reflexiv...] 0.001 secs (0.001u,0.s) +Chars 24896 - 24929 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) Chars 24930 - 24934 [Qed.] 0. secs (0.u,0.s) Chars 24936 - 25022 [Fact~cat_eq2_r~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) Chars 25023 - 25029 [Proof.] 0. secs (0.u,0.s) -Chars 25032 - 25065 [(intros~H;~rewrite~H;~reflexiv...] 0. secs (0.u,0.s) +Chars 25032 - 25065 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) Chars 25066 - 25070 [Qed.] 0. secs (0.u,0.s) -Chars 25072 - 25205 [Fact~local_rewrite1~{a}~{b}~{c...] 0.005 secs (0.005u,0.s) +Chars 25072 - 25205 [Fact~local_rewrite1~{a}~{b}~{c...] 0.004 secs (0.003u,0.s) Chars 25206 - 25212 [Proof.] 0. secs (0.u,0.s) Chars 25215 - 25224 [symmetry.] 0. secs (0.u,0.s) -Chars 25227 - 25254 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) -Chars 25257 - 25307 [(do~2~apply~(cat_eq2_l~(bimap~...] 0.001 secs (0.001u,0.s) -Chars 25310 - 25397 [(rewrite~<-~cat_assoc,~bimap_c...] 0.028 secs (0.028u,0.s) -Chars 25400 - 25473 [(rewrite~<-~(cat_assoc~_~_~ass...] 0.009 secs (0.009u,0.s) -Chars 25476 - 25506 [(rewrite~<-~swap_assoc_l~in~Eq).] 0.003 secs (0.003u,0.s) -Chars 25509 - 25547 [(rewrite~(cat_assoc~_~_~assoc_...] 0.002 secs (0.002u,0.s) -Chars 25550 - 25577 [(rewrite~assoc_l_mono~in~Eq).] 0.004 secs (0.004u,0.s) -Chars 25580 - 25603 [(rewrite~cat_id_r~in~Eq).] 0.002 secs (0.002u,0.s) -Chars 25606 - 25624 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) +Chars 25227 - 25254 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) +Chars 25257 - 25307 [do~2~apply~(cat_eq2_l~(bimap~(...] 0.001 secs (0.001u,0.s) +Chars 25310 - 25397 [rewrite~<-~cat_assoc,~bimap_ca...] 0.02 secs (0.02u,0.s) +Chars 25400 - 25473 [rewrite~<-~(cat_assoc~_~_~asso...] 0.007 secs (0.007u,0.s) +Chars 25476 - 25506 [rewrite~<-~swap_assoc_l~in~Eq.] 0.002 secs (0.002u,0.s) +Chars 25509 - 25547 [rewrite~(cat_assoc~_~_~assoc_r...] 0.001 secs (0.001u,0.s) +Chars 25550 - 25577 [rewrite~assoc_l_mono~in~Eq.] 0.002 secs (0.002u,0.s) +Chars 25580 - 25603 [rewrite~cat_id_r~in~Eq.] 0.001 secs (0.001u,0.s) +Chars 25606 - 25624 [rewrite~cat_assoc.] 0. secs (0.u,0.s) Chars 25627 - 25638 [assumption.] 0. secs (0.u,0.s) -Chars 25639 - 25643 [Qed.] 0.01 secs (0.01u,0.s) -Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.005 secs (0.005u,0.s) +Chars 25639 - 25643 [Qed.] 0.007 secs (0.007u,0.s) +Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.003 secs (0.003u,0.s) Chars 25778 - 25784 [Proof.] 0. secs (0.u,0.s) Chars 25787 - 25796 [symmetry.] 0. secs (0.u,0.s) -Chars 25799 - 25826 [(apply~fwd_eqn;~intros~h~Eq).] 0. secs (0.u,0.s) -Chars 25829 - 25879 [(do~2~apply~(cat_eq2_r~(bimap~...] 0.001 secs (0.001u,0.s) -Chars 25882 - 25966 [(rewrite~cat_assoc,~bimap_cat,...] 0.031 secs (0.031u,0.s) -Chars 25969 - 26005 [(rewrite~2!(cat_assoc~assoc_l)...] 0.005 secs (0.005u,0.s) -Chars 26008 - 26038 [(rewrite~<-~swap_assoc_r~in~Eq).] 0.005 secs (0.005u,0.s) -Chars 26041 - 26080 [(rewrite~<-~2!(cat_assoc~assoc...] 0.005 secs (0.005u,0.s) -Chars 26083 - 26120 [(rewrite~assoc_l_mono,~cat_id_...] 0.006 secs (0.005u,0.s) +Chars 25799 - 25826 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) +Chars 25829 - 25879 [do~2~apply~(cat_eq2_r~(bimap~(...] 0.001 secs (0.001u,0.s) +Chars 25882 - 25966 [rewrite~cat_assoc,~bimap_cat,~...] 0.022 secs (0.022u,0.s) +Chars 25969 - 26005 [rewrite~2!(cat_assoc~assoc_l)~...] 0.004 secs (0.004u,0.s) +Chars 26008 - 26038 [rewrite~<-~swap_assoc_r~in~Eq.] 0.002 secs (0.002u,0.s) +Chars 26041 - 26080 [rewrite~<-~2!(cat_assoc~assoc_...] 0.005 secs (0.005u,0.s) +Chars 26083 - 26120 [rewrite~assoc_l_mono,~cat_id_l...] 0.004 secs (0.004u,0.s) Chars 26123 - 26134 [assumption.] 0. secs (0.u,0.s) -Chars 26135 - 26139 [Qed.] 0.009 secs (0.009u,0.s) -Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.01 secs (0.01u,0.s) +Chars 26135 - 26139 [Qed.] 0.006 secs (0.006u,0.s) +Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.008 secs (0.008u,0.s) Chars 26438 - 26444 [Proof.] 0. secs (0.u,0.s) -Chars 26447 - 26484 [(rewrite~swap_bimap,~loop_supe...] 0.006 secs (0.006u,0.s) -Chars 26487 - 26533 [(rewrite~loop_natural_left,~lo...] 0.006 secs (0.006u,0.s) -Chars 26536 - 26563 [(rewrite~(swap_bimap~cd~ab)).] 0.009 secs (0.008u,0.s) -Chars 26566 - 26588 [(rewrite~<-~!cat_assoc).] 0.031 secs (0.031u,0.s) -Chars 26591 - 26614 [(rewrite~local_rewrite1).] 0.007 secs (0.007u,0.s) -Chars 26617 - 26637 [(rewrite~2!cat_assoc).] 0.009 secs (0.009u,0.s) -Chars 26640 - 26676 [(rewrite~<-~(cat_assoc~swap~as...] 0.006 secs (0.006u,0.s) -Chars 26679 - 26702 [(rewrite~local_rewrite2).] 0.005 secs (0.005u,0.s) -Chars 26705 - 26727 [(rewrite~<-~!cat_assoc).] 0.017 secs (0.017u,0.s) +Chars 26447 - 26484 [rewrite~swap_bimap,~loop_super...] 0.004 secs (0.004u,0.s) +Chars 26487 - 26533 [rewrite~loop_natural_left,~loo...] 0.004 secs (0.004u,0.s) +Chars 26536 - 26563 [rewrite~(swap_bimap~cd~ab).] 0.006 secs (0.006u,0.s) +Chars 26566 - 26588 [rewrite~<-~!cat_assoc.] 0.023 secs (0.023u,0.s) +Chars 26591 - 26614 [rewrite~local_rewrite1.] 0.005 secs (0.005u,0.s) +Chars 26617 - 26637 [rewrite~2!cat_assoc.] 0.006 secs (0.006u,0.s) +Chars 26640 - 26676 [rewrite~<-~(cat_assoc~swap~ass...] 0.004 secs (0.004u,0.s) +Chars 26679 - 26702 [rewrite~local_rewrite2.] 0.003 secs (0.003u,0.s) +Chars 26705 - 26727 [rewrite~<-~!cat_assoc.] 0.013 secs (0.013u,0.s) Chars 26730 - 26742 [reflexivity.] 0. secs (0.u,0.s) -Chars 26743 - 26747 [Qed.] 0.012 secs (0.012u,0.s) +Chars 26743 - 26747 [Qed.] 0.008 secs (0.008u,0.s) Chars 26749 - 26774 [End~TracedIterativeFacts.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/CategoryFunctor.v.timing b/theories/Basics/CategoryFunctor.v.timing index 43811659..7ce6e3e3 100644 --- a/theories/Basics/CategoryFunctor.v.timing +++ b/theories/Basics/CategoryFunctor.v.timing @@ -1,11 +1,11 @@ -Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) -Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0.001 secs (0.u,0.s) +Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0. secs (0.u,0.s) Chars 135 - 155 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 156 - 183 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 185 - 201 [Section~Functor.] 0. secs (0.u,0.s) Chars 203 - 435 [Context~{obj1~obj2~:~Type}~{C1...] 0. secs (0.u,0.s) Chars 437 - 458 [Arguments~fmap~{a~b}.] 0. secs (0.u,0.s) -Chars 460 - 698 [Class~Functor~:~Prop~:={~~~~~~...] 0.002 secs (0.001u,0.s) +Chars 460 - 698 [Class~Functor~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) Chars 700 - 712 [End~Functor.] 0. secs (0.u,0.s) Chars 714 - 750 [Arguments~Functor~:~clear~impl...] 0. secs (0.u,0.s) Chars 751 - 802 [Arguments~Functor~{_~_}~C1~C2~...] 0. secs (0.u,0.s) @@ -13,10 +13,10 @@ Chars 804 - 822 [Section~FunctorId.] 0. secs (0.u,0.s) Chars 824 - 1041 [Context~{obj~:~Type}~{C1~C2~:~...] 0. secs (0.u,0.s) Chars 1043 - 1097 [Lemma~fmap_id0~:~forall~a,~fma...] 0. secs (0.u,0.s) Chars 1098 - 1104 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1119 [(apply~fmap_id).] 0. secs (0.u,0.s) +Chars 1105 - 1119 [apply~fmap_id.] 0. secs (0.u,0.s) Chars 1120 - 1124 [Qed.] 0. secs (0.u,0.s) Chars 1126 - 1237 [Lemma~fmap_cat0~:~~~forall~a~b...] 0. secs (0.u,0.s) Chars 1238 - 1244 [Proof.] 0. secs (0.u,0.s) -Chars 1245 - 1260 [(apply~fmap_cat).] 0. secs (0.u,0.s) +Chars 1245 - 1260 [apply~fmap_cat.] 0. secs (0.u,0.s) Chars 1261 - 1265 [Qed.] 0. secs (0.u,0.s) Chars 1267 - 1281 [End~FunctorId.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisli.v.timing b/theories/Basics/CategoryKleisli.v.timing index 5f7b16ee..db9787ff 100644 --- a/theories/Basics/CategoryKleisli.v.timing +++ b/theories/Basics/CategoryKleisli.v.timing @@ -1,6 +1,6 @@ -Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) Chars 701 - 750 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.s) +Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.002 secs (0.002u,0.s) Chars 877 - 909 [Implicit~Type~m~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 910 - 938 [Implicit~Types~a~b~c~:~Type.] 0. secs (0.u,0.s) Chars 940 - 984 [Definition~Kleisli~m~a~b~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisliFacts.v.timing b/theories/Basics/CategoryKleisliFacts.v.timing index f5e4bdc5..f6e904f6 100644 --- a/theories/Basics/CategoryKleisliFacts.v.timing +++ b/theories/Basics/CategoryKleisliFacts.v.timing @@ -1,6 +1,6 @@ -Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) +Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) Chars 165 - 214 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.008 secs (0.006u,0.001s) +Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) Chars 379 - 399 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 400 - 427 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 428 - 457 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -12,7 +12,7 @@ Chars 564 - 605 [Context~{Eq1P~:~@Eq1Equivalenc...] 0. secs (0.u,0.s) Chars 608 - 644 [Context~{ML~:~@MonadLawsE~m~Eq...] 0. secs (0.u,0.s) Chars 650 - 743 [Instance~Proper_Kleisli_apply~...] 0. secs (0.u,0.s) Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) -Chars 757 - 782 [(compute;~intros;~subst;~auto).] 0. secs (0.u,0.s) +Chars 757 - 782 [compute;~intros;~subst;~auto.] 0. secs (0.u,0.s) Chars 785 - 789 [Qed.] 0. secs (0.u,0.s) Chars 793 - 872 [Lemma~fold_Kleisli~{a}~{b}~(f~...] 0. secs (0.u,0.s) Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) @@ -20,113 +20,113 @@ Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) Chars 895 - 899 [Qed.] 0. secs (0.u,0.s) Chars 905 - 986 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 989 - 995 [Proof.] 0. secs (0.u,0.s) -Chars 1000 - 1020 [(split;~repeat~intro).] 0. secs (0.u,0.s) +Chars 1000 - 1020 [split;~repeat~intro.] 0. secs (0.u,0.s) Chars 1025 - 1026 [-] 0. secs (0.u,0.s) Chars 1027 - 1039 [reflexivity.] 0. secs (0.u,0.s) Chars 1044 - 1045 [-] 0. secs (0.u,0.s) -Chars 1046 - 1061 [(symmetry;~auto).] 0. secs (0.u,0.s) +Chars 1046 - 1061 [symmetry;~auto.] 0. secs (0.u,0.s) Chars 1066 - 1067 [-] 0. secs (0.u,0.s) -Chars 1068 - 1089 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 1068 - 1089 [etransitivity;~eauto.] 0. secs (0.u,0.s) Chars 1092 - 1096 [Qed.] 0. secs (0.u,0.s) Chars 1100 - 1184 [#[global]~Instance~Functor_pur...] 0. secs (0.u,0.s) Chars 1187 - 1193 [Proof.] 0. secs (0.u,0.s) -Chars 1198 - 1218 [(constructor;~intros).] 0. secs (0.u,0.s) +Chars 1198 - 1218 [constructor;~intros.] 0. secs (0.u,0.s) Chars 1223 - 1224 [-] 0. secs (0.u,0.s) Chars 1225 - 1237 [reflexivity.] 0. secs (0.u,0.s) Chars 1242 - 1243 [-] 0. secs (0.u,0.s) -Chars 1244 - 1253 [(intros~?).] 0. secs (0.u,0.s) -Chars 1254 - 1284 [(unfold~pure,~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 1285 - 1304 [(rewrite~bind_ret_l).] 0.001 secs (0.u,0.s) +Chars 1244 - 1253 [intros~?.] 0. secs (0.u,0.s) +Chars 1254 - 1284 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 1285 - 1304 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 1311 - 1323 [reflexivity.] 0. secs (0.u,0.s) Chars 1328 - 1329 [-] 0. secs (0.u,0.s) -Chars 1330 - 1345 [(intros~?~?~?~?).] 0. secs (0.u,0.s) -Chars 1346 - 1358 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 1359 - 1369 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 1330 - 1345 [intros~?~?~?~?.] 0. secs (0.u,0.s) +Chars 1346 - 1358 [unfold~pure.] 0. secs (0.u,0.s) +Chars 1359 - 1369 [rewrite~H.] 0. secs (0.u,0.s) Chars 1370 - 1382 [reflexivity.] 0. secs (0.u,0.s) -Chars 1385 - 1389 [Qed.] 0.001 secs (0.u,0.s) -Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0.001 secs (0.u,0.s) +Chars 1385 - 1389 [Qed.] 0. secs (0.u,0.s) +Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0. secs (0.u,0.s) Chars 1912 - 1918 [Proof.] 0. secs (0.u,0.s) -Chars 1921 - 1934 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1937 - 1961 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 1964 - 1988 [(apply~Proper_bind;~auto).] 0. secs (0.u,0.s) +Chars 1921 - 1934 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1937 - 1961 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 1964 - 1988 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) Chars 1989 - 1993 [Qed.] 0. secs (0.u,0.s) Chars 1995 - 2021 [#[local]~Opaque~bind~ret~eq1.] 0. secs (0.u,0.s) -Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0.001 secs (0.001u,0.s) +Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0. secs (0.u,0.s) Chars 2152 - 2158 [Proof.] 0. secs (0.u,0.s) -Chars 2161 - 2242 [(compute;~intros~x;~destruct~x...] 0.006 secs (0.005u,0.001s) -Chars 2243 - 2247 [Qed.] 0.013 secs (0.011u,0.001s) -Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0.001 secs (0.u,0.s) +Chars 2161 - 2242 [compute;~intros~x;~destruct~x~...] 0.004 secs (0.003u,0.s) +Chars 2243 - 2247 [Qed.] 0.009 secs (0.008u,0.s) +Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0. secs (0.u,0.s) Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) -Chars 2379 - 2460 [(compute;~intros~x;~destruct~x...] 0.004 secs (0.004u,0.s) +Chars 2379 - 2460 [compute;~intros~x;~destruct~x~...] 0.003 secs (0.003u,0.s) Chars 2461 - 2465 [Qed.] 0.001 secs (0.001u,0.s) Chars 2467 - 2523 [#[global]~Instance~CatAssoc_Kl...] 0. secs (0.u,0.s) Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2537 [(red).] 0. secs (0.u,0.s) -Chars 2538 - 2559 [(intros~a~b~c~d~f~g~h).] 0. secs (0.u,0.s) -Chars 2563 - 2587 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 2590 - 2594 [(compute).] 0. secs (0.u,0.s) -Chars 2595 - 2604 [(intros~x).] 0. secs (0.u,0.s) +Chars 2533 - 2537 [red.] 0. secs (0.u,0.s) +Chars 2538 - 2559 [intros~a~b~c~d~f~g~h.] 0. secs (0.u,0.s) +Chars 2563 - 2587 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 2590 - 2594 [compute.] 0. secs (0.u,0.s) +Chars 2595 - 2604 [intros~x.] 0. secs (0.u,0.s) Chars 2607 - 2632 [setoid_rewrite~bind_bind.] 0.001 secs (0.001u,0.s) Chars 2635 - 2647 [reflexivity.] 0. secs (0.u,0.s) Chars 2648 - 2652 [Qed.] 0. secs (0.u,0.s) Chars 2698 - 2750 [#[global]~Instance~CatIdL_Klei...] 0. secs (0.u,0.s) Chars 2751 - 2757 [Proof.] 0. secs (0.u,0.s) -Chars 2760 - 2823 [(intros~A~B~f~a;~unfold~cat,~C...] 0. secs (0.u,0.s) -Chars 2826 - 2845 [(rewrite~bind_ret_l).] 0. secs (0.u,0.s) +Chars 2760 - 2823 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) +Chars 2826 - 2845 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 2846 - 2858 [reflexivity.] 0. secs (0.u,0.s) Chars 2859 - 2863 [Qed.] 0. secs (0.u,0.s) Chars 2865 - 2917 [#[global]~Instance~CatIdR_Klei...] 0. secs (0.u,0.s) Chars 2918 - 2924 [Proof.] 0. secs (0.u,0.s) -Chars 2927 - 2990 [(intros~A~B~f~a;~unfold~cat,~C...] 0. secs (0.u,0.s) -Chars 2993 - 3012 [(rewrite~bind_ret_r).] 0. secs (0.u,0.s) +Chars 2927 - 2990 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) +Chars 2993 - 3012 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) Chars 3015 - 3027 [reflexivity.] 0. secs (0.u,0.s) Chars 3028 - 3032 [Qed.] 0. secs (0.u,0.s) Chars 3034 - 3090 [#[global]~Instance~Category_Kl...] 0. secs (0.u,0.s) Chars 3091 - 3097 [Proof.] 0. secs (0.u,0.s) -Chars 3100 - 3131 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 3100 - 3131 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 3132 - 3136 [Qed.] 0. secs (0.u,0.s) Chars 3138 - 3209 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) -Chars 3217 - 3231 [(intros~A~f~[]).] 0. secs (0.u,0.s) +Chars 3217 - 3231 [intros~A~f~[].] 0. secs (0.u,0.s) Chars 3232 - 3236 [Qed.] 0. secs (0.u,0.s) Chars 3240 - 3374 [#[global]~Instance~Proper_case...] 0. secs (0.u,0.s) Chars 3375 - 3381 [Proof.] 0. secs (0.u,0.s) -Chars 3384 - 3430 [(repeat~intro;~destruct~(_~:~_...] 0. secs (0.u,0.s) +Chars 3384 - 3430 [repeat~intro;~destruct~(_~:~_~...] 0. secs (0.u,0.s) Chars 3431 - 3435 [Qed.] 0. secs (0.u,0.s) Chars 3528 - 3603 [#[global]~Instance~Proper_pure...] 0. secs (0.u,0.s) Chars 3604 - 3610 [Proof.] 0. secs (0.u,0.s) -Chars 3613 - 3626 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 3629 - 3641 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 3644 - 3672 [(erewrite~(H~a);~reflexivity).] 0. secs (0.u,0.s) +Chars 3613 - 3626 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3629 - 3641 [unfold~pure.] 0. secs (0.u,0.s) +Chars 3644 - 3672 [erewrite~(H~a);~reflexivity.] 0. secs (0.u,0.s) Chars 3673 - 3677 [Qed.] 0. secs (0.u,0.s) Chars 3679 - 3742 [Lemma~pure_id~{A~:~Type}~:~(id...] 0. secs (0.u,0.s) Chars 3743 - 3749 [Proof.] 0. secs (0.u,0.s) Chars 3752 - 3764 [reflexivity.] 0. secs (0.u,0.s) Chars 3765 - 3769 [Qed.] 0. secs (0.u,0.s) -Chars 3771 - 3876 [Fact~compose_pure~{A}~{B}~{C}~...] 0.001 secs (0.001u,0.s) +Chars 3771 - 3876 [Fact~compose_pure~{A}~{B}~{C}~...] 0. secs (0.u,0.s) Chars 3877 - 3883 [Proof.] 0. secs (0.u,0.s) -Chars 3886 - 3895 [(intros~a).] 0. secs (0.u,0.s) -Chars 3898 - 3928 [(unfold~pure,~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 3931 - 3950 [(rewrite~bind_ret_l).] 0. secs (0.u,0.s) +Chars 3886 - 3895 [intros~a.] 0. secs (0.u,0.s) +Chars 3898 - 3928 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 3931 - 3950 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 3953 - 3965 [reflexivity.] 0. secs (0.u,0.s) Chars 3966 - 3970 [Qed.] 0. secs (0.u,0.s) Chars 3972 - 4106 [Fact~compose_pure_l~{A}~{B}~{C...] 0. secs (0.u,0.s) Chars 4107 - 4113 [Proof.] 0. secs (0.u,0.s) -Chars 4116 - 4137 [(rewrite~<-~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 4140 - 4161 [(rewrite~compose_pure).] 0.001 secs (0.001u,0.s) +Chars 4116 - 4137 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) +Chars 4140 - 4161 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) Chars 4164 - 4176 [reflexivity.] 0. secs (0.u,0.s) -Chars 4177 - 4181 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4177 - 4181 [Qed.] 0. secs (0.u,0.s) Chars 4183 - 4317 [Fact~compose_pure_r~{A}~{B}~{C...] 0. secs (0.u,0.s) Chars 4318 - 4324 [Proof.] 0. secs (0.u,0.s) -Chars 4327 - 4345 [(rewrite~cat_assoc).] 0.001 secs (0.001u,0.s) -Chars 4348 - 4369 [(rewrite~compose_pure).] 0.017 secs (0.017u,0.s) +Chars 4327 - 4345 [rewrite~cat_assoc.] 0.013 secs (0.012u,0.s) +Chars 4348 - 4369 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) Chars 4372 - 4384 [reflexivity.] 0. secs (0.u,0.s) -Chars 4385 - 4389 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4385 - 4389 [Qed.] 0. secs (0.u,0.s) Chars 4391 - 4493 [Fact~pure_cat~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) Chars 4494 - 4500 [Proof.] 0. secs (0.u,0.s) -Chars 4503 - 4519 [(intros;~intro~a).] 0. secs (0.u,0.s) -Chars 4522 - 4558 [(unfold~pure,~pure,~cat,~Cat_K...] 0. secs (0.u,0.s) -Chars 4561 - 4580 [(rewrite~bind_ret_l).] 0. secs (0.u,0.s) +Chars 4503 - 4519 [intros;~intro~a.] 0. secs (0.u,0.s) +Chars 4522 - 4558 [unfold~pure,~pure,~cat,~Cat_Kl...] 0. secs (0.u,0.s) +Chars 4561 - 4580 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 4581 - 4593 [reflexivity.] 0. secs (0.u,0.s) Chars 4594 - 4598 [Qed.] 0. secs (0.u,0.s) Chars 4601 - 4700 [Fact~cat_pure~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) @@ -135,7 +135,7 @@ Chars 4710 - 4722 [reflexivity.] 0. secs (0.u,0.s) Chars 4723 - 4727 [Qed.] 0. secs (0.u,0.s) Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0.001 secs (0.001u,0.s) Chars 4787 - 4793 [Proof.] 0. secs (0.u,0.s) -Chars 4796 - 4819 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) +Chars 4796 - 4819 [intros~[];~reflexivity.] 0. secs (0.u,0.s) Chars 4820 - 4824 [Qed.] 0. secs (0.u,0.s) Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) Chars 4884 - 4890 [Proof.] 0. secs (0.u,0.s) @@ -147,20 +147,20 @@ Chars 4975 - 4987 [reflexivity.] 0. secs (0.u,0.s) Chars 4988 - 4992 [Qed.] 0. secs (0.u,0.s) Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.001 secs (0.001u,0.s) Chars 5121 - 5127 [Proof.] 0. secs (0.u,0.s) -Chars 5130 - 5153 [(intros~[];~reflexivity).] 0. secs (0.u,0.s) +Chars 5130 - 5153 [intros~[];~reflexivity.] 0. secs (0.u,0.s) Chars 5154 - 5158 [Qed.] 0. secs (0.u,0.s) -Chars 5251 - 5325 [Lemma~unit_l_pure~(A~:~Type)~:...] 0.001 secs (0.001u,0.s) +Chars 5251 - 5325 [Lemma~unit_l_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) Chars 5326 - 5332 [Proof.] 0. secs (0.u,0.s) -Chars 5335 - 5348 [(intros~[[]|~]).] 0. secs (0.u,0.s) +Chars 5335 - 5348 [intros~[[]|~].] 0. secs (0.u,0.s) Chars 5349 - 5361 [reflexivity.] 0. secs (0.u,0.s) Chars 5362 - 5366 [Qed.] 0. secs (0.u,0.s) -Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0.001 secs (0.001u,0.s) +Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) Chars 5446 - 5452 [Proof.] 0. secs (0.u,0.s) Chars 5455 - 5467 [reflexivity.] 0. secs (0.u,0.s) Chars 5468 - 5472 [Qed.] 0. secs (0.u,0.s) -Chars 5474 - 5548 [Lemma~unit_r_pure~(A~:~Type)~:...] 0.001 secs (0.001u,0.s) +Chars 5474 - 5548 [Lemma~unit_r_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) Chars 5549 - 5555 [Proof.] 0. secs (0.u,0.s) -Chars 5558 - 5571 [(intros~[|~[]]).] 0. secs (0.u,0.s) +Chars 5558 - 5571 [intros~[|~[]].] 0. secs (0.u,0.s) Chars 5572 - 5584 [reflexivity.] 0. secs (0.u,0.s) Chars 5585 - 5589 [Qed.] 0. secs (0.u,0.s) Chars 5591 - 5668 [Lemma~unit_r'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) @@ -169,139 +169,139 @@ Chars 5678 - 5690 [reflexivity.] 0. secs (0.u,0.s) Chars 5691 - 5695 [Qed.] 0. secs (0.u,0.s) Chars 5733 - 5823 [Lemma~case_l~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) Chars 5824 - 5830 [Proof.] 0. secs (0.u,0.s) -Chars 5833 - 5853 [(rewrite~unit_l_pure).] 0.002 secs (0.002u,0.s) +Chars 5833 - 5853 [rewrite~unit_l_pure.] 0.002 secs (0.002u,0.s) Chars 5856 - 5868 [reflexivity.] 0. secs (0.u,0.s) -Chars 5869 - 5873 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5869 - 5873 [Qed.] 0. secs (0.u,0.s) Chars 5912 - 6016 [Lemma~case_l'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) Chars 6017 - 6023 [Proof.] 0. secs (0.u,0.s) -Chars 6026 - 6047 [(rewrite~unit_l'_pure).] 0.002 secs (0.002u,0.s) +Chars 6026 - 6047 [rewrite~unit_l'_pure.] 0.001 secs (0.001u,0.s) Chars 6050 - 6056 [intro.] 0. secs (0.u,0.s) -Chars 6057 - 6087 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 6090 - 6122 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) -Chars 6123 - 6127 [Qed.] 0.002 secs (0.002u,0.s) -Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0.001 secs (0.001u,0.s) +Chars 6057 - 6087 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 6090 - 6122 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6123 - 6127 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) Chars 6221 - 6227 [Proof.] 0. secs (0.u,0.s) -Chars 6230 - 6250 [(rewrite~unit_r_pure).] 0.004 secs (0.003u,0.s) +Chars 6230 - 6250 [rewrite~unit_r_pure.] 0.002 secs (0.002u,0.s) Chars 6253 - 6265 [reflexivity.] 0. secs (0.u,0.s) -Chars 6266 - 6270 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6266 - 6270 [Qed.] 0. secs (0.u,0.s) Chars 6272 - 6376 [Lemma~case_r'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) Chars 6377 - 6383 [Proof.] 0. secs (0.u,0.s) -Chars 6386 - 6407 [(rewrite~unit_r'_pure).] 0.002 secs (0.002u,0.s) +Chars 6386 - 6407 [rewrite~unit_r'_pure.] 0.001 secs (0.001u,0.s) Chars 6410 - 6416 [intro.] 0. secs (0.u,0.s) -Chars 6417 - 6447 [(unfold~cat,~Cat_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 6450 - 6482 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 6417 - 6447 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 6450 - 6482 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.u,0.s) Chars 6483 - 6487 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.004 secs (0.003u,0.001s) +Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.002 secs (0.002u,0.s) Chars 6585 - 6591 [Proof.] 0. secs (0.u,0.s) -Chars 6594 - 6624 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 6627 - 6645 [(rewrite~!cat_id_l).] 0.006 secs (0.004u,0.001s) -Chars 6646 - 6668 [(rewrite~<-~!case_pure).] 0.005 secs (0.003u,0.001s) -Chars 6669 - 6694 [(rewrite~<-~!compose_pure).] 0.014 secs (0.011u,0.002s) -Chars 6695 - 6714 [(rewrite~<-~pure_id).] 0.003 secs (0.003u,0.s) -Chars 6717 - 6735 [(rewrite~!cat_id_l).] 0.004 secs (0.004u,0.s) +Chars 6594 - 6624 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 6627 - 6645 [rewrite~!cat_id_l.] 0.004 secs (0.003u,0.s) +Chars 6646 - 6668 [rewrite~<-~!case_pure.] 0.003 secs (0.002u,0.s) +Chars 6669 - 6694 [rewrite~<-~!compose_pure.] 0.008 secs (0.007u,0.s) +Chars 6695 - 6714 [rewrite~<-~pure_id.] 0.002 secs (0.002u,0.s) +Chars 6717 - 6735 [rewrite~!cat_id_l.] 0.002 secs (0.002u,0.s) Chars 6739 - 6751 [reflexivity.] 0. secs (0.u,0.s) -Chars 6752 - 6756 [Qed.] 0.003 secs (0.003u,0.s) -Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.003 secs (0.003u,0.s) +Chars 6752 - 6756 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.002 secs (0.002u,0.s) Chars 6848 - 6854 [Proof.] 0. secs (0.u,0.s) -Chars 6857 - 6887 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 6890 - 6939 [(rewrite~!cat_id_l,~<-~case_pu...] 0.01 secs (0.01u,0.s) +Chars 6857 - 6887 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 6890 - 6939 [rewrite~!cat_id_l,~<-~case_pur...] 0.007 secs (0.007u,0.s) Chars 6942 - 6954 [reflexivity.] 0. secs (0.u,0.s) -Chars 6955 - 6959 [Qed.] 0.002 secs (0.002u,0.s) +Chars 6955 - 6959 [Qed.] 0.001 secs (0.001u,0.s) Chars 6961 - 7023 [#[global]~Instance~Coproduct_K...] 0. secs (0.u,0.s) Chars 7024 - 7030 [Proof.] 0. secs (0.u,0.s) Chars 7033 - 7045 [constructor.] 0. secs (0.u,0.s) Chars 7048 - 7049 [-] 0. secs (0.u,0.s) -Chars 7050 - 7067 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) -Chars 7072 - 7097 [(unfold~inl_,~Inl_Kleisli).] 0. secs (0.u,0.s) -Chars 7102 - 7119 [(rewrite~pure_cat).] 0.001 secs (0.u,0.s) +Chars 7050 - 7067 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 7072 - 7097 [unfold~inl_,~Inl_Kleisli.] 0. secs (0.u,0.s) +Chars 7102 - 7119 [rewrite~pure_cat.] 0. secs (0.u,0.s) Chars 7124 - 7136 [reflexivity.] 0. secs (0.u,0.s) Chars 7139 - 7140 [-] 0. secs (0.u,0.s) -Chars 7141 - 7158 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) -Chars 7163 - 7188 [(unfold~inr_,~Inr_Kleisli).] 0. secs (0.u,0.s) -Chars 7193 - 7210 [(rewrite~pure_cat).] 0. secs (0.u,0.s) +Chars 7141 - 7158 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 7163 - 7188 [unfold~inr_,~Inr_Kleisli.] 0. secs (0.u,0.s) +Chars 7193 - 7210 [rewrite~pure_cat.] 0. secs (0.u,0.s) Chars 7215 - 7227 [reflexivity.] 0. secs (0.u,0.s) Chars 7230 - 7231 [-] 0. secs (0.u,0.s) -Chars 7232 - 7266 [(intros~a~b~c~f~g~fg~Hf~Hg~[x|...] 0. secs (0.u,0.s) +Chars 7232 - 7266 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~y].] 0. secs (0.u,0.s) Chars 7271 - 7272 [+] 0. secs (0.u,0.s) -Chars 7273 - 7304 [(unfold~inl_,~Inl_Kleisli~in~Hf).] 0. secs (0.u,0.s) -Chars 7311 - 7334 [(rewrite~pure_cat~in~Hf).] 0.002 secs (0.002u,0.s) +Chars 7273 - 7304 [unfold~inl_,~Inl_Kleisli~in~Hf.] 0. secs (0.u,0.s) +Chars 7311 - 7334 [rewrite~pure_cat~in~Hf.] 0.001 secs (0.001u,0.s) Chars 7341 - 7359 [specialize~(Hf~x).] 0. secs (0.u,0.s) -Chars 7360 - 7372 [(simpl~in~Hf).] 0. secs (0.u,0.s) -Chars 7373 - 7384 [(rewrite~Hf).] 0. secs (0.u,0.s) +Chars 7360 - 7372 [simpl~in~Hf.] 0. secs (0.u,0.s) +Chars 7373 - 7384 [rewrite~Hf.] 0. secs (0.u,0.s) Chars 7385 - 7397 [reflexivity.] 0. secs (0.u,0.s) Chars 7402 - 7403 [+] 0. secs (0.u,0.s) -Chars 7404 - 7435 [(unfold~inr_,~Inr_Kleisli~in~Hg).] 0. secs (0.u,0.s) -Chars 7442 - 7465 [(rewrite~pure_cat~in~Hg).] 0.002 secs (0.002u,0.s) +Chars 7404 - 7435 [unfold~inr_,~Inr_Kleisli~in~Hg.] 0. secs (0.u,0.s) +Chars 7442 - 7465 [rewrite~pure_cat~in~Hg.] 0.001 secs (0.001u,0.s) Chars 7472 - 7490 [specialize~(Hg~y).] 0. secs (0.u,0.s) -Chars 7491 - 7503 [(simpl~in~Hg).] 0. secs (0.u,0.s) -Chars 7504 - 7515 [(rewrite~Hg).] 0. secs (0.u,0.s) +Chars 7491 - 7503 [simpl~in~Hg.] 0. secs (0.u,0.s) +Chars 7504 - 7515 [rewrite~Hg.] 0. secs (0.u,0.s) Chars 7516 - 7528 [reflexivity.] 0. secs (0.u,0.s) Chars 7531 - 7532 [-] 0. secs (0.u,0.s) Chars 7533 - 7551 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 7552 - 7556 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7552 - 7556 [Qed.] 0.001 secs (0.001u,0.s) Chars 7558 - 7617 [#[global]~Instance~bimap_id_kl...] 0. secs (0.u,0.s) Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) -Chars 7627 - 7666 [(unfold~BimapId,~bimap,~Bimap_...] 0. secs (0.u,0.s) -Chars 7669 - 7676 [(intros).] 0. secs (0.u,0.s) -Chars 7679 - 7697 [(rewrite~!cat_id_l).] 0.007 secs (0.005u,0.001s) -Chars 7700 - 7744 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) -Chars 7747 - 7765 [(rewrite~case_pure).] 0.001 secs (0.001u,0.s) -Chars 7768 - 7834 [(unfold~pure,~id_,~case_,~Case...] 0. secs (0.u,0.s) -Chars 7837 - 7841 [(red).] 0. secs (0.u,0.s) +Chars 7627 - 7666 [unfold~BimapId,~bimap,~Bimap_C...] 0. secs (0.u,0.s) +Chars 7669 - 7676 [intros.] 0. secs (0.u,0.s) +Chars 7679 - 7697 [rewrite~!cat_id_l.] 0.003 secs (0.003u,0.s) +Chars 7700 - 7744 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) +Chars 7747 - 7765 [rewrite~case_pure.] 0. secs (0.u,0.s) +Chars 7768 - 7834 [unfold~pure,~id_,~case_,~Case_...] 0. secs (0.u,0.s) +Chars 7837 - 7841 [red.] 0. secs (0.u,0.s) Chars 7842 - 7848 [intro.] 0. secs (0.u,0.s) -Chars 7849 - 7874 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) -Chars 7875 - 7879 [Qed.] 0.002 secs (0.002u,0.s) -Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0.001 secs (0.001u,0.s) +Chars 7849 - 7874 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) +Chars 7875 - 7879 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0. secs (0.u,0.s) Chars 8098 - 8104 [Proof.] 0. secs (0.u,0.s) -Chars 8109 - 8140 [(intros~a1~b1~b2~c1~c2~f1~g1~g2).] 0. secs (0.u,0.s) -Chars 8145 - 8200 [(unfold~cat,~Cat_Kleisli,~case...] 0. secs (0.u,0.s) -Chars 8205 - 8216 [(unfold~map).] 0. secs (0.u,0.s) -Chars 8217 - 8241 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.005 secs (0.004u,0.s) -Chars 8276 - 8288 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) +Chars 8109 - 8140 [intros~a1~b1~b2~c1~c2~f1~g1~g2.] 0. secs (0.u,0.s) +Chars 8145 - 8200 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) +Chars 8205 - 8216 [unfold~map.] 0. secs (0.u,0.s) +Chars 8217 - 8241 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.003 secs (0.003u,0.s) +Chars 8276 - 8288 [unfold~pure.] 0. secs (0.u,0.s) +Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) Chars 8316 - 8328 [reflexivity.] 0. secs (0.u,0.s) -Chars 8331 - 8335 [Qed.] 0.002 secs (0.002u,0.s) -Chars 8339 - 8549 [Lemma~map_inr_case_kleisli~:~~...] 0.001 secs (0.001u,0.s) +Chars 8331 - 8335 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8339 - 8549 [Lemma~map_inr_case_kleisli~:~~...] 0. secs (0.u,0.s) Chars 8552 - 8558 [Proof.] 0. secs (0.u,0.s) -Chars 8563 - 8594 [(intros~a2~b1~b2~c1~c2~f2~g1~g2).] 0. secs (0.u,0.s) -Chars 8599 - 8654 [(unfold~cat,~Cat_Kleisli,~case...] 0. secs (0.u,0.s) -Chars 8659 - 8670 [(unfold~map).] 0. secs (0.u,0.s) -Chars 8671 - 8695 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 8700 - 8725 [setoid_rewrite~bind_bind.] 0.003 secs (0.003u,0.s) -Chars 8730 - 8742 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 8743 - 8769 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) +Chars 8563 - 8594 [intros~a2~b1~b2~c1~c2~f2~g1~g2.] 0. secs (0.u,0.s) +Chars 8599 - 8654 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) +Chars 8659 - 8670 [unfold~map.] 0. secs (0.u,0.s) +Chars 8671 - 8695 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8700 - 8725 [setoid_rewrite~bind_bind.] 0.002 secs (0.002u,0.s) +Chars 8730 - 8742 [unfold~pure.] 0. secs (0.u,0.s) +Chars 8743 - 8769 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) Chars 8770 - 8782 [reflexivity.] 0. secs (0.u,0.s) -Chars 8785 - 8789 [Qed.] 0.002 secs (0.002u,0.s) +Chars 8785 - 8789 [Qed.] 0.001 secs (0.001u,0.s) Chars 8792 - 8853 [#[global]~Instance~bimap_cat_k...] 0. secs (0.u,0.s) Chars 8854 - 8860 [Proof.] 0. secs (0.u,0.s) -Chars 8863 - 8903 [(unfold~BimapCat,~bimap,~Bimap...] 0. secs (0.u,0.s) -Chars 8906 - 8913 [(intros).] 0. secs (0.u,0.s) -Chars 8916 - 8960 [(unfold~inl_,~inr_,~Inl_Kleisl...] 0. secs (0.u,0.s) -Chars 8963 - 8981 [(rewrite~!cat_pure).] 0.027 secs (0.027u,0.s) -Chars 8982 - 9000 [(rewrite~!cat_case).] 0.006 secs (0.006u,0.s) -Chars 9003 - 9032 [(rewrite~map_inl_case_kleisli).] 0.003 secs (0.003u,0.s) -Chars 9035 - 9064 [(rewrite~map_inr_case_kleisli).] 0.003 secs (0.003u,0.s) +Chars 8863 - 8903 [unfold~BimapCat,~bimap,~Bimap_...] 0. secs (0.u,0.s) +Chars 8906 - 8913 [intros.] 0. secs (0.u,0.s) +Chars 8916 - 8960 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) +Chars 8963 - 8981 [rewrite~!cat_pure.] 0.021 secs (0.02u,0.s) +Chars 8982 - 9000 [rewrite~!cat_case.] 0.004 secs (0.004u,0.s) +Chars 9003 - 9032 [rewrite~map_inl_case_kleisli.] 0.002 secs (0.002u,0.s) +Chars 9035 - 9064 [rewrite~map_inr_case_kleisli.] 0.002 secs (0.002u,0.s) Chars 9067 - 9079 [reflexivity.] 0. secs (0.u,0.s) -Chars 9080 - 9084 [Qed.] 0.004 secs (0.004u,0.s) -Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0.001 secs (0.001u,0.s) +Chars 9080 - 9084 [Qed.] 0.003 secs (0.003u,0.s) +Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0. secs (0.u,0.s) Chars 9232 - 9238 [Proof.] 0. secs (0.u,0.s) -Chars 9241 - 9248 [(intros).] 0. secs (0.u,0.s) -Chars 9251 - 9264 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 9267 - 9297 [(unfold~bimap,~Bimap_Coproduct).] 0. secs (0.u,0.s) -Chars 9300 - 9337 [(unfold~case_,~Case_Kleisli,~c...] 0. secs (0.u,0.s) -Chars 9340 - 9352 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 9241 - 9248 [intros.] 0. secs (0.u,0.s) +Chars 9251 - 9264 [repeat~intro.] 0. secs (0.u,0.s) +Chars 9267 - 9297 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) +Chars 9300 - 9337 [unfold~case_,~Case_Kleisli,~ca...] 0. secs (0.u,0.s) +Chars 9340 - 9352 [destruct~a0.] 0. secs (0.u,0.s) Chars 9355 - 9356 [-] 0. secs (0.u,0.s) -Chars 9357 - 9387 [(unfold~cat,~Cat_Kleisli,~inl_).] 0. secs (0.u,0.s) -Chars 9388 - 9398 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 9357 - 9387 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) +Chars 9388 - 9398 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 9399 - 9411 [reflexivity.] 0. secs (0.u,0.s) Chars 9414 - 9415 [-] 0. secs (0.u,0.s) -Chars 9416 - 9446 [(unfold~cat,~Cat_Kleisli,~inl_).] 0. secs (0.u,0.s) -Chars 9447 - 9458 [(rewrite~H0).] 0.001 secs (0.001u,0.s) +Chars 9416 - 9446 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) +Chars 9447 - 9458 [rewrite~H0.] 0.001 secs (0.001u,0.s) Chars 9459 - 9471 [reflexivity.] 0. secs (0.u,0.s) Chars 9472 - 9476 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0. secs (0.u,0.s) -Chars 9541 - 9572 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0.001 secs (0.001u,0.s) +Chars 9541 - 9572 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 9573 - 9577 [Qed.] 0. secs (0.u,0.s) -Chars 9579 - 9594 [End~BasicFacts.] 0.002 secs (0.002u,0.s) +Chars 9579 - 9594 [End~BasicFacts.] 0.001 secs (0.001u,0.s) Chars 9596 - 9769 [Notation~Proper_iter~m~a~b:=~~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryOps.v.timing b/theories/Basics/CategoryOps.v.timing index aacaab1c..2013e111 100644 --- a/theories/Basics/CategoryOps.v.timing +++ b/theories/Basics/CategoryOps.v.timing @@ -68,10 +68,10 @@ Chars 8405 - 8592 [Definition~merge~{obj~:~Type}~...] 0. secs (0.u,0.s) Chars 8726 - 8755 [Section~CocartesianConstruct.] 0. secs (0.u,0.s) Chars 8757 - 8808 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 8809 - 8927 [Variables~(SUM~:~binop~obj)~(C...] 0. secs (0.u,0.s) -Chars 8963 - 9092 [#[global]~Instance~Bimap_Copro...] 0.001 secs (0.001u,0.s) +Chars 8963 - 9092 [#[global]~Instance~Bimap_Copro...] 0. secs (0.u,0.s) Chars 9128 - 9207 [#[global]~Instance~Swap_Coprod...] 0. secs (0.u,0.s) -Chars 9245 - 9385 [#[global]~Instance~AssocR_Copr...] 0.002 secs (0.001u,0.s) -Chars 9387 - 9527 [#[global]~Instance~AssocL_Copr...] 0.002 secs (0.001u,0.s) +Chars 9245 - 9385 [#[global]~Instance~AssocR_Copr...] 0.001 secs (0.001u,0.s) +Chars 9387 - 9527 [#[global]~Instance~AssocL_Copr...] 0.001 secs (0.001u,0.s) Chars 9529 - 9590 [Variables~(Id_C~:~Id_~C)~(I~:~...] 0. secs (0.u,0.s) Chars 9648 - 9733 [#[global]~Instance~UnitL_Copro...] 0. secs (0.u,0.s) Chars 9735 - 9807 [#[global]~Instance~UnitL'_Copr...] 0. secs (0.u,0.s) @@ -81,16 +81,16 @@ Chars 9970 - 9995 [End~CocartesianConstruct.] 0. secs (0.u,0.s) Chars 10122 - 10149 [Section~CartesianConstruct.] 0. secs (0.u,0.s) Chars 10309 - 10360 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 10361 - 10484 [Variables~(PROD~:~binop~obj)~(...] 0. secs (0.u,0.s) -Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0.002 secs (0.001u,0.s) -Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0.002 secs (0.001u,0.s) -Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.002 secs (0.001u,0.s) -Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.002 secs (0.001u,0.s) +Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0. secs (0.u,0.s) +Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0. secs (0.u,0.s) +Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.001 secs (0.001u,0.s) +Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.001 secs (0.001u,0.s) Chars 11032 - 11095 [Variables~(Id_C~:~Id_~C)~(T~:~...] 0. secs (0.u,0.s) Chars 11151 - 11219 [#[local]~Instance~UnitL_Produc...] 0. secs (0.u,0.s) Chars 11221 - 11304 [#[local]~Instance~UnitL'_Produ...] 0. secs (0.u,0.s) -Chars 11306 - 11374 [#[local]~Instance~UnitR_Produc...] 0.001 secs (0.u,0.s) +Chars 11306 - 11374 [#[local]~Instance~UnitR_Produc...] 0. secs (0.u,0.s) Chars 11376 - 11459 [#[local]~Instance~UnitR'_Produ...] 0. secs (0.u,0.s) -Chars 11461 - 11484 [End~CartesianConstruct.] 0.001 secs (0.001u,0.s) +Chars 11461 - 11484 [End~CartesianConstruct.] 0. secs (0.u,0.s) Chars 11608 - 11632 [Section~CartesianClosed.] 0. secs (0.u,0.s) Chars 11635 - 11737 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 11908 - 11978 [Class~Apply~:~Type~:=~~~~~appl...] 0. secs (0.u,0.s) @@ -108,7 +108,7 @@ Chars 12400 - 12435 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 12436 - 12464 [Variable~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 12689 - 12754 [Class~Iter~:~Type~:=~~~~~iter~...] 0. secs (0.u,0.s) Chars 12756 - 12893 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 12951 - 13075 [Definition~loop~(a~b~c~:~obj)~...] 0.001 secs (0.001u,0.s) +Chars 12951 - 13075 [Definition~loop~(a~b~c~:~obj)~...] 0.001 secs (0.u,0.s) Chars 13362 - 13376 [End~Iteration.] 0. secs (0.u,0.s) Chars 13378 - 13411 [Arguments~iter~{obj~C~bif~_~a~b}.] 0. secs (0.u,0.s) Chars 13412 - 13457 [Arguments~loop~{obj~C~bif~_~_~...] 0. secs (0.u,0.s) @@ -120,7 +120,7 @@ Chars 13666 - 13709 [Class~ReSum~(a~b~:~obj)~:=~~~~...] 0. secs (0.u,0.s) Chars 13953 - 14028 [#[global]~Instance~ReSum_id~~`...] 0. secs (0.u,0.s) Chars 14029 - 14155 [#[global]~Instance~ReSum_sum~~...] 0. secs (0.u,0.s) Chars 14156 - 14261 [#[global]~Instance~ReSum_inl~~...] 0. secs (0.u,0.s) -Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0.008 secs (0.001u,0.s) +Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0. secs (0.u,0.s) Chars 14368 - 14464 [#[global]~Instance~ReSum_empty...] 0. secs (0.u,0.s) Chars 14776 - 14786 [End~RESUM.] 0. secs (0.u,0.s) Chars 14788 - 14844 [#[global]~Hint~Mode~ReSum~!~!~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryRelations.v.timing b/theories/Basics/CategoryRelations.v.timing index 42f42f1c..3d6004e5 100644 --- a/theories/Basics/CategoryRelations.v.timing +++ b/theories/Basics/CategoryRelations.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.002s) -Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.048 secs (0.036u,0.011s) +Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.028 secs (0.023u,0.005s) Chars 378 - 397 [Section~Operations.] 0. secs (0.u,0.s) Chars 401 - 421 [Import~RelNotations.] 0. secs (0.u,0.s) Chars 424 - 457 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) @@ -33,10 +33,10 @@ Chars 5097 - 5111 [Section~Facts.] 0. secs (0.u,0.s) Chars 5115 - 5135 [Section~CategoryRel.] 0. secs (0.u,0.s) Chars 5141 - 5186 [#[global]~Instance~CatIdL_rel~...] 0. secs (0.u,0.s) Chars 5191 - 5197 [Proof.] 0. secs (0.u,0.s) -Chars 5204 - 5301 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) +Chars 5204 - 5301 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) Chars 5308 - 5309 [-] 0. secs (0.u,0.s) -Chars 5310 - 5339 [(edestruct~H~as~(B',~(EQ,~R))).] 0. secs (0.u,0.s) -Chars 5340 - 5359 [(rewrite~<-~EQ~in~R).] 0. secs (0.u,0.s) +Chars 5310 - 5339 [edestruct~H~as~(B',~(EQ,~R)).] 0. secs (0.u,0.s) +Chars 5340 - 5359 [rewrite~<-~EQ~in~R.] 0. secs (0.u,0.s) Chars 5368 - 5379 [assumption.] 0. secs (0.u,0.s) Chars 5386 - 5387 [-] 0. secs (0.u,0.s) Chars 5388 - 5397 [exists~x.] 0. secs (0.u,0.s) @@ -44,12 +44,12 @@ Chars 5398 - 5404 [split.] 0. secs (0.u,0.s) Chars 5405 - 5417 [reflexivity.] 0. secs (0.u,0.s) Chars 5418 - 5429 [assumption.] 0. secs (0.u,0.s) Chars 5434 - 5438 [Qed.] 0. secs (0.u,0.s) -Chars 5444 - 5489 [#[global]~Instance~CatIdR_rel~...] 0. secs (0.u,0.s) +Chars 5444 - 5489 [#[global]~Instance~CatIdR_rel~...] 0.011 secs (0.01u,0.s) Chars 5494 - 5500 [Proof.] 0. secs (0.u,0.s) -Chars 5507 - 5604 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) +Chars 5507 - 5604 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) Chars 5611 - 5612 [-] 0. secs (0.u,0.s) -Chars 5613 - 5642 [(edestruct~H~as~(B',~(R,~EQ))).] 0. secs (0.u,0.s) -Chars 5643 - 5659 [(rewrite~EQ~in~R).] 0. secs (0.u,0.s) +Chars 5613 - 5642 [edestruct~H~as~(B',~(R,~EQ)).] 0. secs (0.u,0.s) +Chars 5643 - 5659 [rewrite~EQ~in~R.] 0. secs (0.u,0.s) Chars 5668 - 5679 [assumption.] 0. secs (0.u,0.s) Chars 5686 - 5687 [-] 0. secs (0.u,0.s) Chars 5688 - 5697 [exists~y.] 0. secs (0.u,0.s) @@ -59,27 +59,27 @@ Chars 5717 - 5729 [reflexivity.] 0. secs (0.u,0.s) Chars 5734 - 5738 [Qed.] 0. secs (0.u,0.s) Chars 5744 - 5793 [#[global]~Instance~CatAssoc_re...] 0. secs (0.u,0.s) Chars 5798 - 5804 [Proof.] 0. secs (0.u,0.s) -Chars 5811 - 5922 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) +Chars 5811 - 5922 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) Chars 5929 - 5930 [-] 0. secs (0.u,0.s) -Chars 5931 - 5980 [(edestruct~H~as~(C,~((B,~(Rf,~...] 0.019 secs (0.015u,0.003s) +Chars 5931 - 5980 [edestruct~H~as~(C,~((B,~(Rf,~R...] 0. secs (0.u,0.s) Chars 5989 - 5998 [exists~B.] 0. secs (0.u,0.s) -Chars 5999 - 6022 [(split;~[~assumption~|~~]).] 0. secs (0.u,0.s) +Chars 5999 - 6022 [split;~[~assumption~|~~].] 0. secs (0.u,0.s) Chars 6031 - 6040 [exists~C.] 0. secs (0.u,0.s) -Chars 6041 - 6059 [(split;~assumption).] 0. secs (0.u,0.s) +Chars 6041 - 6059 [split;~assumption.] 0. secs (0.u,0.s) Chars 6066 - 6067 [-] 0. secs (0.u,0.s) -Chars 6068 - 6117 [(edestruct~H~as~(B,~(Rf,~(C,~(...] 0. secs (0.u,0.s) +Chars 6068 - 6117 [edestruct~H~as~(B,~(Rf,~(C,~(R...] 0. secs (0.u,0.s) Chars 6126 - 6135 [exists~C.] 0. secs (0.u,0.s) -Chars 6136 - 6159 [(split;~[~~|~assumption~]).] 0. secs (0.u,0.s) -Chars 6168 - 6196 [(exists~B;~split;~assumption).] 0. secs (0.u,0.s) -Chars 6201 - 6205 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6136 - 6159 [split;~[~~|~assumption~].] 0. secs (0.u,0.s) +Chars 6168 - 6196 [exists~B;~split;~assumption.] 0. secs (0.u,0.s) +Chars 6201 - 6205 [Qed.] 0. secs (0.u,0.s) Chars 6211 - 6364 [#[global]~Instance~ProperCat_r...] 0. secs (0.u,0.s) Chars 6369 - 6375 [Proof.] 0. secs (0.u,0.s) -Chars 6382 - 6395 [(intros~a~b~c).] 0. secs (0.u,0.s) -Chars 6402 - 6514 [(constructor;~~~unfold~subrela...] 0. secs (0.u,0.s) +Chars 6382 - 6395 [intros~a~b~c.] 0. secs (0.u,0.s) +Chars 6402 - 6514 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) Chars 6521 - 6522 [-] 0. secs (0.u,0.s) -Chars 6523 - 6554 [(edestruct~He~as~(B,~(Hx,~Hx0))).] 0. secs (0.u,0.s) -Chars 6563 - 6610 [(unfold~eq2,~Eq2_rel,~eq_rel,~...] 0. secs (0.u,0.s) -Chars 6619 - 6634 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 6523 - 6554 [edestruct~He~as~(B,~(Hx,~Hx0)).] 0. secs (0.u,0.s) +Chars 6563 - 6610 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) +Chars 6619 - 6634 [destruct~H,~H0.] 0. secs (0.u,0.s) Chars 6643 - 6652 [exists~B.] 0. secs (0.u,0.s) Chars 6653 - 6659 [split.] 0. secs (0.u,0.s) Chars 6660 - 6682 [specialize~(H~A~B~Hx).] 0. secs (0.u,0.s) @@ -87,9 +87,9 @@ Chars 6683 - 6694 [assumption.] 0. secs (0.u,0.s) Chars 6703 - 6727 [specialize~(H0~_~_~Hx0).] 0. secs (0.u,0.s) Chars 6728 - 6739 [assumption.] 0. secs (0.u,0.s) Chars 6746 - 6747 [-] 0. secs (0.u,0.s) -Chars 6748 - 6779 [(edestruct~He~as~(B,~(Hy,~Hy0))).] 0. secs (0.u,0.s) -Chars 6788 - 6835 [(unfold~eq2,~Eq2_rel,~eq_rel,~...] 0. secs (0.u,0.s) -Chars 6844 - 6859 [(destruct~H,~H0).] 0. secs (0.u,0.s) +Chars 6748 - 6779 [edestruct~He~as~(B,~(Hy,~Hy0)).] 0. secs (0.u,0.s) +Chars 6788 - 6835 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) +Chars 6844 - 6859 [destruct~H,~H0.] 0. secs (0.u,0.s) Chars 6868 - 6877 [exists~B.] 0. secs (0.u,0.s) Chars 6878 - 6884 [split.] 0. secs (0.u,0.s) Chars 6885 - 6908 [specialize~(H1~_~_~Hy).] 0. secs (0.u,0.s) @@ -99,42 +99,42 @@ Chars 6954 - 6965 [assumption.] 0. secs (0.u,0.s) Chars 6970 - 6974 [Qed.] 0. secs (0.u,0.s) Chars 6980 - 7030 [#[global]~Instance~Category_re...] 0. secs (0.u,0.s) Chars 7035 - 7041 [Proof.] 0. secs (0.u,0.s) -Chars 7048 - 7079 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 7048 - 7079 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 7084 - 7088 [Qed.] 0. secs (0.u,0.s) Chars 7092 - 7108 [End~CategoryRel.] 0. secs (0.u,0.s) Chars 7112 - 7177 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 7180 - 7186 [Proof.] 0. secs (0.u,0.s) -Chars 7191 - 7208 [(split;~intros~[]).] 0. secs (0.u,0.s) +Chars 7191 - 7208 [split;~intros~[].] 0. secs (0.u,0.s) Chars 7211 - 7215 [Qed.] 0. secs (0.u,0.s) Chars 7219 - 7240 [Section~CoproductRel.] 0. secs (0.u,0.s) Chars 7246 - 7298 [#[global]~Instance~CaseInl_rel...] 0. secs (0.u,0.s) Chars 7303 - 7309 [Proof.] 0. secs (0.u,0.s) Chars 7316 - 7322 [split.] 0. secs (0.u,0.s) -Chars 7329 - 7384 [(intros~?~?~[[]~[H1~H2]];~inve...] 0. secs (0.u,0.s) -Chars 7391 - 7404 [(intros~x~?~?).] 0. secs (0.u,0.s) -Chars 7411 - 7452 [(exists~(inl~x);~split;~auto;~...] 0. secs (0.u,0.s) -Chars 7457 - 7461 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7329 - 7384 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) +Chars 7391 - 7404 [intros~x~?~?.] 0. secs (0.u,0.s) +Chars 7411 - 7452 [exists~(inl~x);~split;~auto;~r...] 0. secs (0.u,0.s) +Chars 7457 - 7461 [Qed.] 0. secs (0.u,0.s) Chars 7467 - 7519 [#[global]~Instance~CaseInr_rel...] 0. secs (0.u,0.s) Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) Chars 7537 - 7543 [split.] 0. secs (0.u,0.s) -Chars 7550 - 7605 [(intros~?~?~[[]~[H1~H2]];~inve...] 0. secs (0.u,0.s) -Chars 7612 - 7625 [(intros~x~?~?).] 0. secs (0.u,0.s) -Chars 7632 - 7673 [(exists~(inr~x);~split;~auto;~...] 0. secs (0.u,0.s) -Chars 7678 - 7682 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7550 - 7605 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) +Chars 7612 - 7625 [intros~x~?~?.] 0. secs (0.u,0.s) +Chars 7632 - 7673 [exists~(inr~x);~split;~auto;~r...] 0. secs (0.u,0.s) +Chars 7678 - 7682 [Qed.] 0. secs (0.u,0.s) Chars 7688 - 7752 [#[global]~Instance~CaseUnivers...] 0. secs (0.u,0.s) Chars 7757 - 7763 [Proof.] 0. secs (0.u,0.s) -Chars 7770 - 7805 [(intros~a~b~c~R~S~T~[TR~RT]~[T...] 0. secs (0.u,0.s) +Chars 7770 - 7805 [intros~a~b~c~R~S~T~[TR~RT]~[TS...] 0. secs (0.u,0.s) Chars 7812 - 7818 [split.] 0. secs (0.u,0.s) -Chars 7825 - 7903 [(intros~[]~?~?;~cbn;~[~apply~T...] 0.001 secs (0.001u,0.s) -Chars 7910 - 8026 [(intros~[]~?~HR;~[~apply~RT~in...] 0. secs (0.u,0.s) -Chars 8031 - 8035 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7825 - 7903 [intros~[]~?~?;~cbn;~[~apply~TR...] 0. secs (0.u,0.s) +Chars 7910 - 8026 [intros~[]~?~HR;~[~apply~RT~in~...] 0. secs (0.u,0.s) +Chars 8031 - 8035 [Qed.] 0. secs (0.u,0.s) Chars 8041 - 8148 [#[global]~Instance~Proper_Case...] 0. secs (0.u,0.s) Chars 8153 - 8159 [Proof.] 0. secs (0.u,0.s) -Chars 8166 - 8294 [(intros~?~?~?~R~S~[RS~SR]~T~U~...] 0. secs (0.u,0.s) -Chars 8299 - 8303 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8166 - 8294 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) +Chars 8299 - 8303 [Qed.] 0. secs (0.u,0.s) Chars 8309 - 8365 [#[global]~Instance~Coproduct_r...] 0. secs (0.u,0.s) Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) -Chars 8383 - 8414 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 8383 - 8414 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 8419 - 8423 [Qed.] 0. secs (0.u,0.s) Chars 8427 - 8444 [End~CoproductRel.] 0. secs (0.u,0.s) Chars 8448 - 8467 [Section~ProductRel.] 0. secs (0.u,0.s) @@ -142,45 +142,45 @@ Chars 8473 - 8525 [#[global]~Instance~PairFst_rel...] 0. secs (0.u,0.s) Chars 8530 - 8536 [Proof.] 0. secs (0.u,0.s) Chars 8543 - 8549 [split.] 0. secs (0.u,0.s) Chars 8556 - 8557 [-] 0. secs (0.u,0.s) -Chars 8558 - 8610 [(intros~?~?~([],~(?,~EQ));~inv...] 0. secs (0.u,0.s) +Chars 8558 - 8610 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) Chars 8617 - 8618 [-] 0. secs (0.u,0.s) -Chars 8619 - 8632 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 8641 - 8667 [(exists~(inl~y);~compute;~auto).] 0. secs (0.u,0.s) -Chars 8672 - 8676 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8619 - 8632 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 8641 - 8667 [exists~(inl~y);~compute;~auto.] 0. secs (0.u,0.s) +Chars 8672 - 8676 [Qed.] 0. secs (0.u,0.s) Chars 8682 - 8734 [#[global]~Instance~PairSnd_rel...] 0. secs (0.u,0.s) Chars 8739 - 8745 [Proof.] 0. secs (0.u,0.s) Chars 8752 - 8758 [split.] 0. secs (0.u,0.s) Chars 8765 - 8766 [-] 0. secs (0.u,0.s) -Chars 8767 - 8819 [(intros~?~?~([],~(?,~EQ));~inv...] 0. secs (0.u,0.s) +Chars 8767 - 8819 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) Chars 8826 - 8827 [-] 0. secs (0.u,0.s) -Chars 8828 - 8841 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 8850 - 8876 [(exists~(inr~y);~compute;~auto).] 0. secs (0.u,0.s) -Chars 8881 - 8885 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8828 - 8841 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 8850 - 8876 [exists~(inr~y);~compute;~auto.] 0. secs (0.u,0.s) +Chars 8881 - 8885 [Qed.] 0. secs (0.u,0.s) Chars 8891 - 8955 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) Chars 8960 - 8966 [Proof.] 0. secs (0.u,0.s) -Chars 8973 - 9020 [(intros~?~?~?~R~S~RS~[RSR~RRS]...] 0. secs (0.u,0.s) +Chars 8973 - 9020 [intros~?~?~?~R~S~RS~[RSR~RRS]~...] 0. secs (0.u,0.s) Chars 9027 - 9028 [-] 0. secs (0.u,0.s) -Chars 9029 - 9033 [(compute).] 0. secs (0.u,0.s) -Chars 9034 - 9129 [(intros~?~[]~?;~[~apply~RSR~|~...] 0. secs (0.u,0.s) +Chars 9029 - 9033 [compute.] 0. secs (0.u,0.s) +Chars 9034 - 9129 [intros~?~[]~?;~[~apply~RSR~|~a...] 0. secs (0.u,0.s) Chars 9136 - 9137 [-] 0. secs (0.u,0.s) -Chars 9138 - 9142 [(compute).] 0. secs (0.u,0.s) -Chars 9143 - 9265 [(intros~?~[]~EQ;~[~apply~RRS~i...] 0.002 secs (0.001u,0.s) -Chars 9270 - 9274 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9138 - 9142 [compute.] 0. secs (0.u,0.s) +Chars 9143 - 9265 [intros~?~[]~EQ;~[~apply~RRS~in...] 0.001 secs (0.001u,0.s) +Chars 9270 - 9274 [Qed.] 0.001 secs (0.001u,0.s) Chars 9280 - 9387 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) Chars 9392 - 9398 [Proof.] 0. secs (0.u,0.s) -Chars 9405 - 9449 [(intros~?~?~?~R~S~[RS~SR]~T~U~...] 0. secs (0.u,0.s) -Chars 9456 - 9504 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) -Chars 9511 - 9559 [(compute;~intros~?~[]~?;~[~app...] 0. secs (0.u,0.s) -Chars 9564 - 9568 [Qed.] 0.001 secs (0.u,0.s) +Chars 9405 - 9449 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) +Chars 9456 - 9504 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) +Chars 9511 - 9559 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) +Chars 9564 - 9568 [Qed.] 0. secs (0.u,0.s) Chars 9574 - 9626 [#[global]~Instance~Product_rel...] 0. secs (0.u,0.s) Chars 9631 - 9637 [Proof.] 0. secs (0.u,0.s) -Chars 9644 - 9675 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 9644 - 9675 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 9680 - 9684 [Qed.] 0. secs (0.u,0.s) Chars 9688 - 9703 [End~ProductRel.] 0. secs (0.u,0.s) Chars 9707 - 9725 [Section~DaggerRel.] 0. secs (0.u,0.s) -Chars 9731 - 9797 [#[global]~Instance~DaggerInvol...] 0. secs (0.u,0.s) +Chars 9731 - 9797 [#[global]~Instance~DaggerInvol...] 0.022 secs (0.022u,0.s) Chars 9802 - 9808 [Proof.] 0. secs (0.u,0.s) -Chars 9815 - 9844 [(split;~intros~?~?~H;~apply~H).] 0. secs (0.u,0.s) +Chars 9815 - 9844 [split;~intros~?~?~H;~apply~H.] 0. secs (0.u,0.s) Chars 9849 - 9853 [Qed.] 0. secs (0.u,0.s) Chars 9859 - 9890 [#[local]~Existing~Instance~Eq2...] 0. secs (0.u,0.s) Chars 9895 - 9925 [#[local]~Existing~Instance~Id_Op.] 0. secs (0.u,0.s) @@ -189,16 +189,16 @@ Chars 9967 - 10055 [#[global]~Instance~DaggerFunct...] 0. secs (0.u,0.s) Chars 10060 - 10066 [Proof.] 0. secs (0.u,0.s) Chars 10073 - 10085 [constructor.] 0. secs (0.u,0.s) Chars 10092 - 10093 [-] 0. secs (0.u,0.s) -Chars 10094 - 10147 [(split;~intros~?~?~H;~inversio...] 0.001 secs (0.001u,0.s) +Chars 10094 - 10147 [split;~intros~?~?~H;~inversion...] 0. secs (0.u,0.s) Chars 10154 - 10155 [-] 0. secs (0.u,0.s) -Chars 10156 - 10202 [(split;~intros~?~?~(?,~(?,~?))...] 0.032 secs (0.031u,0.s) +Chars 10156 - 10202 [split;~intros~?~?~(?,~(?,~?));...] 0. secs (0.u,0.s) Chars 10209 - 10210 [-] 0. secs (0.u,0.s) -Chars 10211 - 10240 [(intros~a~b~x~y~[INCL1~INCL2]).] 0. secs (0.u,0.s) -Chars 10249 - 10307 [(split;~intros~?~?~H;~[~apply~...] 0. secs (0.u,0.s) +Chars 10211 - 10240 [intros~a~b~x~y~[INCL1~INCL2].] 0. secs (0.u,0.s) +Chars 10249 - 10307 [split;~intros~?~?~H;~[~apply~I...] 0. secs (0.u,0.s) Chars 10312 - 10316 [Qed.] 0.001 secs (0.001u,0.s) Chars 10322 - 10376 [#[global]~Instance~DaggerLaws_...] 0. secs (0.u,0.s) Chars 10381 - 10387 [Proof.] 0. secs (0.u,0.s) -Chars 10394 - 10425 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 10394 - 10425 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 10430 - 10434 [Qed.] 0. secs (0.u,0.s) Chars 10438 - 10452 [End~DaggerRel.] 0. secs (0.u,0.s) Chars 10456 - 10478 [Section~BifunctorProd.] 0. secs (0.u,0.s) @@ -206,225 +206,225 @@ Chars 10484 - 10542 [#[global]~Instance~BimapId_pro...] 0. secs (0.u,0.s) Chars 10547 - 10553 [Proof.] 0. secs (0.u,0.s) Chars 10560 - 10566 [split.] 0. secs (0.u,0.s) Chars 10573 - 10574 [-] 0. secs (0.u,0.s) -Chars 10575 - 10606 [(compute;~intros~?~?~?;~subst;...] 0. secs (0.u,0.s) -Chars 10615 - 10629 [(destruct~x,~y).] 0. secs (0.u,0.s) -Chars 10638 - 10650 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 10651 - 10685 [(destruct~H;~cbn~in~*;~subst;~...] 0. secs (0.u,0.s) +Chars 10575 - 10606 [compute;~intros~?~?~?;~subst;~...] 0. secs (0.u,0.s) +Chars 10615 - 10629 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 10638 - 10650 [compute;~intros.] 0. secs (0.u,0.s) +Chars 10651 - 10685 [destruct~H;~cbn~in~*;~subst;~a...] 0. secs (0.u,0.s) Chars 10692 - 10693 [-] 0. secs (0.u,0.s) -Chars 10694 - 10698 [(compute).] 0. secs (0.u,0.s) -Chars 10699 - 10720 [(intros~[?~?]~[?~?]~H).] 0. secs (0.u,0.s) -Chars 10721 - 10733 [(inversion~H).] 0. secs (0.u,0.s) +Chars 10694 - 10698 [compute.] 0. secs (0.u,0.s) +Chars 10699 - 10720 [intros~[?~?]~[?~?]~H.] 0. secs (0.u,0.s) +Chars 10721 - 10733 [inversion~H.] 0. secs (0.u,0.s) Chars 10734 - 10740 [subst.] 0. secs (0.u,0.s) -Chars 10741 - 10760 [(repeat~constructor).] 0. secs (0.u,0.s) -Chars 10765 - 10769 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10741 - 10760 [repeat~constructor.] 0. secs (0.u,0.s) +Chars 10765 - 10769 [Qed.] 0. secs (0.u,0.s) Chars 10775 - 10835 [#[global]~Instance~BimapCat_pr...] 0. secs (0.u,0.s) Chars 10840 - 10846 [Proof.] 0. secs (0.u,0.s) Chars 10853 - 10859 [split.] 0. secs (0.u,0.s) Chars 10866 - 10867 [-] 0. secs (0.u,0.s) -Chars 10868 - 10901 [(compute;~intros~[]~[]~([],~(H...] 0. secs (0.u,0.s) -Chars 10910 - 10934 [(inv~H1;~inv~H2;~eauto~~6).] 0.002 secs (0.002u,0.s) +Chars 10868 - 10901 [compute;~intros~[]~[]~([],~(H1...] 0. secs (0.u,0.s) +Chars 10910 - 10934 [inv~H1;~inv~H2;~eauto~~6.] 0.001 secs (0.001u,0.s) Chars 10941 - 10942 [-] 0. secs (0.u,0.s) -Chars 10943 - 10963 [(compute;~intros~[]~[]~H).] 0. secs (0.u,0.s) -Chars 10964 - 11004 [(destruct~H~as~[(?,~(?,~?))~(?...] 0. secs (0.u,0.s) -Chars 11013 - 11045 [(cbn~in~*;~eexists~(_,~_);~eau...] 0. secs (0.u,0.s) -Chars 11050 - 11054 [Qed.] 0.002 secs (0.002u,0.s) +Chars 10943 - 10963 [compute;~intros~[]~[]~H.] 0. secs (0.u,0.s) +Chars 10964 - 11004 [destruct~H~as~[(?,~(?,~?))~(?,...] 0. secs (0.u,0.s) +Chars 11013 - 11045 [cbn~in~*;~eexists~(_,~_);~eauto.] 0. secs (0.u,0.s) +Chars 11050 - 11054 [Qed.] 0.001 secs (0.001u,0.s) Chars 11060 - 11122 [#[global]~Instance~Bifunctor_p...] 0. secs (0.u,0.s) Chars 11127 - 11133 [Proof.] 0. secs (0.u,0.s) -Chars 11140 - 11175 [(constructor;~try~typeclasses~...] 0.002 secs (0.002u,0.s) +Chars 11140 - 11175 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) Chars 11180 - 11184 [Qed.] 0. secs (0.u,0.s) Chars 11190 - 11306 [#[global]~Instance~Iso_Assoc_p...] 0. secs (0.u,0.s) Chars 11311 - 11317 [Proof.] 0. secs (0.u,0.s) Chars 11324 - 11330 [split.] 0. secs (0.u,0.s) Chars 11337 - 11338 [-] 0. secs (0.u,0.s) -Chars 11339 - 11350 [(compute;~split).] 0. secs (0.u,0.s) +Chars 11339 - 11350 [compute;~split.] 0. secs (0.u,0.s) Chars 11359 - 11360 [+] 0. secs (0.u,0.s) -Chars 11361 - 11397 [(intros~?~?~?;~repeat~destruct...] 0. secs (0.u,0.s) -Chars 11408 - 11479 [(destructn~ex;~repeat~destruct...] 0.001 secs (0.001u,0.s) +Chars 11361 - 11397 [intros~?~?~?;~repeat~destructn...] 0. secs (0.u,0.s) +Chars 11408 - 11479 [destructn~ex;~repeat~destructn...] 0. secs (0.u,0.s) Chars 11488 - 11489 [+] 0. secs (0.u,0.s) -Chars 11490 - 11536 [(intros~((?,~?),~?)~((x,~y),~z...] 0.002 secs (0.002u,0.s) -Chars 11547 - 11575 [(exists~(x,~(y,~z));~intuition).] 0. secs (0.u,0.s) +Chars 11490 - 11536 [intros~((?,~?),~?)~((x,~y),~z)...] 0.001 secs (0.001u,0.s) +Chars 11547 - 11575 [exists~(x,~(y,~z));~intuition.] 0. secs (0.u,0.s) Chars 11582 - 11583 [-] 0. secs (0.u,0.s) -Chars 11584 - 11595 [(compute;~split).] 0. secs (0.u,0.s) +Chars 11584 - 11595 [compute;~split.] 0. secs (0.u,0.s) Chars 11604 - 11605 [+] 0. secs (0.u,0.s) -Chars 11606 - 11679 [(intros~?~?~?;~destructn~ex;~r...] 0.002 secs (0.002u,0.s) +Chars 11606 - 11679 [intros~?~?~?;~destructn~ex;~re...] 0.003 secs (0.003u,0.s) Chars 11688 - 11689 [+] 0. secs (0.u,0.s) -Chars 11690 - 11737 [(intros~?~(x,~(y,~z))~->;~repe...] 0. secs (0.u,0.s) -Chars 11748 - 11774 [(exists~(x,~y,~z);~intuition).] 0.003 secs (0.002u,0.s) -Chars 11779 - 11783 [Qed.] 0.009 secs (0.007u,0.001s) +Chars 11690 - 11737 [intros~?~(x,~(y,~z))~->;~repea...] 0. secs (0.u,0.s) +Chars 11748 - 11774 [exists~(x,~y,~z);~intuition.] 0. secs (0.u,0.s) +Chars 11779 - 11783 [Qed.] 0.006 secs (0.005u,0.s) Chars 11789 - 11897 [#[global]~Instance~Iso_UnitL_p...] 0. secs (0.u,0.s) Chars 11902 - 11908 [Proof.] 0. secs (0.u,0.s) -Chars 11915 - 12044 [(split;~compute;~split;~intros...] 0.003 secs (0.002u,0.s) -Chars 12051 - 12070 [(eexists;~intuition).] 0. secs (0.u,0.s) -Chars 12077 - 12097 [(exists~(tt,~y);~auto).] 0. secs (0.u,0.s) -Chars 12102 - 12106 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11915 - 12044 [split;~compute;~split;~intros;...] 0.002 secs (0.001u,0.s) +Chars 12051 - 12070 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 12077 - 12097 [exists~(tt,~y);~auto.] 0. secs (0.u,0.s) +Chars 12102 - 12106 [Qed.] 0.001 secs (0.u,0.s) Chars 12112 - 12220 [#[global]~Instance~Iso_UnitR_p...] 0. secs (0.u,0.s) Chars 12225 - 12231 [Proof.] 0. secs (0.u,0.s) -Chars 12238 - 12367 [(split;~compute;~split;~intros...] 0.004 secs (0.002u,0.001s) -Chars 12374 - 12393 [(eexists;~intuition).] 0. secs (0.u,0.s) -Chars 12400 - 12420 [(exists~(y,~tt);~auto).] 0. secs (0.u,0.s) -Chars 12425 - 12429 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12238 - 12367 [split;~compute;~split;~intros;...] 0.002 secs (0.001u,0.s) +Chars 12374 - 12393 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 12400 - 12420 [exists~(y,~tt);~auto.] 0. secs (0.u,0.s) +Chars 12425 - 12429 [Qed.] 0.001 secs (0.u,0.s) Chars 12435 - 12508 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 12513 - 12519 [Proof.] 0. secs (0.u,0.s) -Chars 12526 - 12696 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.001s) +Chars 12526 - 12696 [split;~compute;~intros;~~repea...] 0.002 secs (0.002u,0.s) Chars 12703 - 12704 [-] 0. secs (0.u,0.s) -Chars 12705 - 12737 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) +Chars 12705 - 12737 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) Chars 12744 - 12745 [-] 0. secs (0.u,0.s) -Chars 12746 - 12810 [(eexists~(_,~_);~constructor;~...] 0. secs (0.u,0.s) -Chars 12815 - 12819 [Qed.] 0.002 secs (0.002u,0.s) +Chars 12746 - 12810 [eexists~(_,~_);~constructor;~[...] 0. secs (0.u,0.s) +Chars 12815 - 12819 [Qed.] 0.001 secs (0.001u,0.s) Chars 12825 - 12900 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 12905 - 12911 [Proof.] 0. secs (0.u,0.s) -Chars 12918 - 13076 [(split;~compute;~intros;~~~rep...] 0.003 secs (0.002u,0.s) -Chars 13083 - 13115 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) -Chars 13122 - 13159 [(exists~(tt,~x);~intuition~sub...] 0. secs (0.u,0.s) -Chars 13164 - 13168 [Qed.] 0.002 secs (0.001u,0.s) +Chars 12918 - 13076 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) +Chars 13083 - 13115 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 13122 - 13159 [exists~(tt,~x);~intuition~subs...] 0. secs (0.u,0.s) +Chars 13164 - 13168 [Qed.] 0.001 secs (0.001u,0.s) Chars 13174 - 13243 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 13248 - 13254 [Proof.] 0. secs (0.u,0.s) -Chars 13261 - 13293 [(split;~compute;~intros~[[?~?]...] 0.004 secs (0.004u,0.s) +Chars 13261 - 13293 [split;~compute;~intros~[[?~?]~...] 0.001 secs (0.001u,0.s) Chars 13300 - 13301 [-] 0. secs (0.u,0.s) -Chars 13302 - 13325 [(intros~[[?~[]]~[?~[]]]).] 0. secs (0.u,0.s) +Chars 13302 - 13325 [intros~[[?~[]]~[?~[]]].] 0. secs (0.u,0.s) Chars 13326 - 13336 [intuition.] 0.001 secs (0.001u,0.s) -Chars 13337 - 13353 [(cbn~in~*;~subst).] 0. secs (0.u,0.s) -Chars 13354 - 13377 [(constructor;~cbn;~auto).] 0. secs (0.u,0.s) +Chars 13337 - 13353 [cbn~in~*;~subst.] 0. secs (0.u,0.s) +Chars 13354 - 13377 [constructor;~cbn;~auto.] 0. secs (0.u,0.s) Chars 13384 - 13385 [-] 0. secs (0.u,0.s) -Chars 13386 - 13417 [(intros~[];~eexists~(_,~(u,~_))).] 0. secs (0.u,0.s) +Chars 13386 - 13417 [intros~[];~eexists~(_,~(u,~_)).] 0. secs (0.u,0.s) Chars 13418 - 13428 [intuition.] 0. secs (0.u,0.s) -Chars 13433 - 13437 [Qed.] 0.004 secs (0.003u,0.s) +Chars 13433 - 13437 [Qed.] 0.002 secs (0.002u,0.s) Chars 13439 - 13884 [Ltac~~decomp~:=~~~repeat~~~~la...] 0. secs (0.u,0.s) Chars 13890 - 13958 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 13963 - 13969 [Proof.] 0. secs (0.u,0.s) -Chars 13976 - 13995 [(split;~compute;~decomp).] 0.016 secs (0.015u,0.s) +Chars 13976 - 13995 [split;~compute;~decomp.] 0.011 secs (0.011u,0.s) Chars 14002 - 14003 [-] 0. secs (0.u,0.s) Chars 14004 - 14027 [eexists~(_,~_,~(_,~_)).] 0. secs (0.u,0.s) Chars 14028 - 14050 [firstorder~~congruence.] 0. secs (0.u,0.s) Chars 14057 - 14058 [-] 0. secs (0.u,0.s) -Chars 14059 - 14094 [(eexists~(_,~(_,~_,~_));~first...] 0.002 secs (0.002u,0.s) +Chars 14059 - 14094 [eexists~(_,~(_,~_,~_));~firsto...] 0.001 secs (0.001u,0.s) Chars 14095 - 14118 [eexists~(_,~(_,~_),~_).] 0. secs (0.u,0.s) Chars 14119 - 14148 [firstorder~~(cbn;~congruence).] 0.001 secs (0.001u,0.s) -Chars 14153 - 14157 [Qed.] 0.021 secs (0.019u,0.001s) +Chars 14153 - 14157 [Qed.] 0.014 secs (0.014u,0.s) Chars 14163 - 14228 [#[global]~Instance~Monoidal_pr...] 0. secs (0.u,0.s) Chars 14233 - 14239 [Proof.] 0. secs (0.u,0.s) -Chars 14246 - 14277 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 14246 - 14277 [constructor;~typeclasses~eauto.] 0.001 secs (0.001u,0.s) Chars 14282 - 14286 [Qed.] 0. secs (0.u,0.s) Chars 14290 - 14308 [End~BifunctorProd.] 0. secs (0.u,0.s) Chars 14312 - 14333 [Section~BifunctorSum.] 0. secs (0.u,0.s) Chars 14339 - 14395 [#[global]~Instance~BimapId_sum...] 0. secs (0.u,0.s) Chars 14400 - 14406 [Proof.] 0. secs (0.u,0.s) Chars 14413 - 14419 [split.] 0. secs (0.u,0.s) -Chars 14426 - 14430 [(red).] 0. secs (0.u,0.s) -Chars 14431 - 14444 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 14445 - 14461 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 14468 - 14527 [(destruct~x,~y;~subst;~inversi...] 0.003 secs (0.003u,0.s) -Chars 14534 - 14580 [(inversion~H;~inversion~H2;~su...] 0.003 secs (0.003u,0.s) -Chars 14587 - 14633 [(inversion~H;~inversion~H2;~su...] 0.001 secs (0.001u,0.s) -Chars 14640 - 14644 [(red).] 0. secs (0.u,0.s) -Chars 14645 - 14658 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 14659 - 14675 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 14426 - 14430 [red.] 0. secs (0.u,0.s) +Chars 14431 - 14444 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 14445 - 14461 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 14468 - 14527 [destruct~x,~y;~subst;~inversio...] 0.002 secs (0.002u,0.s) +Chars 14534 - 14580 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) +Chars 14587 - 14633 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) +Chars 14640 - 14644 [red.] 0. secs (0.u,0.s) +Chars 14645 - 14658 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 14659 - 14675 [repeat~red~in~H.] 0. secs (0.u,0.s) Chars 14682 - 14688 [subst.] 0. secs (0.u,0.s) -Chars 14689 - 14700 [(repeat~red).] 0. secs (0.u,0.s) -Chars 14701 - 14739 [(destruct~y;~econstructor;~ref...] 0. secs (0.u,0.s) -Chars 14744 - 14748 [Qed.] 0.003 secs (0.003u,0.s) +Chars 14689 - 14700 [repeat~red.] 0. secs (0.u,0.s) +Chars 14701 - 14739 [destruct~y;~econstructor;~refl...] 0. secs (0.u,0.s) +Chars 14744 - 14748 [Qed.] 0.002 secs (0.002u,0.s) Chars 14754 - 14812 [#[global]~Instance~BimapCat_su...] 0. secs (0.u,0.s) Chars 14817 - 14823 [Proof.] 0. secs (0.u,0.s) Chars 14830 - 14836 [split.] 0. secs (0.u,0.s) -Chars 14843 - 14847 [(compute).] 0. secs (0.u,0.s) -Chars 14848 - 14986 [(intros;~destruct~x,~y;~destru...] 0.008 secs (0.008u,0.s) -Chars 14993 - 15006 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 15007 - 15073 [(inversion~H;~inversion~H0;~in...] 0.003 secs (0.003u,0.s) +Chars 14843 - 14847 [compute.] 0. secs (0.u,0.s) +Chars 14848 - 14986 [intros;~destruct~x,~y;~destruc...] 0.006 secs (0.006u,0.s) +Chars 14993 - 15006 [repeat~intro.] 0. secs (0.u,0.s) +Chars 15007 - 15073 [inversion~H;~inversion~H0;~inv...] 0.002 secs (0.002u,0.s) Chars 15081 - 15097 [exists~(inl~x0).] 0. secs (0.u,0.s) -Chars 15098 - 15125 [(split;~econstructor;~eauto).] 0. secs (0.u,0.s) +Chars 15098 - 15125 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) Chars 15132 - 15148 [exists~(inr~x0).] 0. secs (0.u,0.s) -Chars 15149 - 15176 [(split;~econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 15181 - 15185 [Qed.] 0.008 secs (0.008u,0.s) +Chars 15149 - 15176 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 15181 - 15185 [Qed.] 0.006 secs (0.006u,0.s) Chars 15191 - 15251 [#[global]~Instance~Bifunctor_s...] 0. secs (0.u,0.s) Chars 15256 - 15262 [Proof.] 0. secs (0.u,0.s) -Chars 15269 - 15304 [(constructor;~try~typeclasses~...] 0.004 secs (0.004u,0.s) +Chars 15269 - 15304 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) Chars 15309 - 15313 [Qed.] 0. secs (0.u,0.s) Chars 15319 - 15433 [#[global]~Instance~Iso_Assoc_s...] 0. secs (0.u,0.s) Chars 15438 - 15444 [Proof.] 0. secs (0.u,0.s) Chars 15451 - 15457 [split.] 0. secs (0.u,0.s) Chars 15464 - 15465 [-] 0. secs (0.u,0.s) -Chars 15466 - 15647 [(compute;~split;~intros;~~~rep...] 0.015 secs (0.015u,0.s) -Chars 15656 - 15683 [(exists~(inl~a0);~intuition).] 0. secs (0.u,0.s) -Chars 15692 - 15725 [(exists~(inr~(inl~b0));~intuit...] 0. secs (0.u,0.s) -Chars 15734 - 15767 [(exists~(inr~(inr~c0));~intuit...] 0. secs (0.u,0.s) +Chars 15466 - 15647 [compute;~split;~intros;~~repea...] 0.012 secs (0.011u,0.s) +Chars 15656 - 15683 [exists~(inl~a0);~intuition.] 0. secs (0.u,0.s) +Chars 15692 - 15725 [exists~(inr~(inl~b0));~intuition.] 0. secs (0.u,0.s) +Chars 15734 - 15767 [exists~(inr~(inr~c0));~intuition.] 0. secs (0.u,0.s) Chars 15774 - 15775 [-] 0. secs (0.u,0.s) -Chars 15776 - 15947 [(compute;~split;~intros;~~~rep...] 0.018 secs (0.017u,0.s) -Chars 15956 - 15989 [(exists~(inl~(inl~a0));~intuit...] 0. secs (0.u,0.s) -Chars 15998 - 16031 [(exists~(inl~(inr~b0));~intuit...] 0. secs (0.u,0.s) -Chars 16040 - 16067 [(exists~(inr~c0);~intuition).] 0. secs (0.u,0.s) -Chars 16072 - 16076 [Qed.] 0.011 secs (0.01u,0.s) +Chars 15776 - 15947 [compute;~split;~intros;~~repea...] 0.01 secs (0.01u,0.s) +Chars 15956 - 15989 [exists~(inl~(inl~a0));~intuition.] 0. secs (0.u,0.s) +Chars 15998 - 16031 [exists~(inl~(inr~b0));~intuition.] 0. secs (0.u,0.s) +Chars 16040 - 16067 [exists~(inr~c0);~intuition.] 0. secs (0.u,0.s) +Chars 16072 - 16076 [Qed.] 0.01 secs (0.01u,0.s) Chars 16082 - 16188 [#[global]~Instance~Iso_UnitL_s...] 0. secs (0.u,0.s) Chars 16193 - 16199 [Proof.] 0. secs (0.u,0.s) -Chars 16206 - 16334 [(split;~compute;~split;~intros...] 0.007 secs (0.006u,0.s) -Chars 16341 - 16360 [(eexists;~intuition).] 0. secs (0.u,0.s) -Chars 16367 - 16388 [(exists~(inr~y);~auto).] 0. secs (0.u,0.s) +Chars 16206 - 16334 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) +Chars 16341 - 16360 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 16367 - 16388 [exists~(inr~y);~auto.] 0. secs (0.u,0.s) Chars 16393 - 16397 [Qed.] 0.001 secs (0.001u,0.s) Chars 16403 - 16509 [#[global]~Instance~Iso_UnitR_s...] 0. secs (0.u,0.s) Chars 16514 - 16520 [Proof.] 0. secs (0.u,0.s) -Chars 16527 - 16655 [(split;~compute;~split;~intros...] 0.004 secs (0.003u,0.s) -Chars 16662 - 16681 [(eexists;~intuition).] 0. secs (0.u,0.s) -Chars 16688 - 16709 [(exists~(inl~y);~auto).] 0. secs (0.u,0.s) +Chars 16527 - 16655 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) +Chars 16662 - 16681 [eexists;~intuition.] 0. secs (0.u,0.s) +Chars 16688 - 16709 [exists~(inl~y);~auto.] 0. secs (0.u,0.s) Chars 16714 - 16718 [Qed.] 0.001 secs (0.001u,0.s) Chars 16724 - 16795 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) Chars 16800 - 16806 [Proof.] 0. secs (0.u,0.s) -Chars 16813 - 16994 [(split;~compute;~intros;~~~rep...] 0.005 secs (0.005u,0.s) -Chars 17001 - 17033 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) -Chars 17040 - 17072 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) -Chars 17077 - 17081 [Qed.] 0.003 secs (0.003u,0.s) +Chars 16813 - 16994 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) +Chars 17001 - 17033 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 17040 - 17072 [eexists;~intuition~subst;~eauto.] 0.001 secs (0.001u,0.s) +Chars 17077 - 17081 [Qed.] 0.002 secs (0.002u,0.s) Chars 17087 - 17160 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) Chars 17165 - 17171 [Proof.] 0. secs (0.u,0.s) -Chars 17178 - 17359 [(split;~compute;~intros;~~~rep...] 0.007 secs (0.007u,0.s) -Chars 17366 - 17398 [(eexists;~intuition~subst;~eau...] 0. secs (0.u,0.s) -Chars 17405 - 17443 [(exists~(inr~x);~intuition~sub...] 0. secs (0.u,0.s) -Chars 17448 - 17452 [Qed.] 0.003 secs (0.003u,0.s) +Chars 17178 - 17359 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) +Chars 17366 - 17398 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) +Chars 17405 - 17443 [exists~(inr~x);~intuition~subs...] 0. secs (0.u,0.s) +Chars 17448 - 17452 [Qed.] 0.002 secs (0.002u,0.s) Chars 17458 - 17525 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) Chars 17530 - 17536 [Proof.] 0. secs (0.u,0.s) -Chars 17543 - 17562 [(split;~compute;~intros).] 0. secs (0.u,0.s) -Chars 17569 - 17580 [(destruct~H).] 0. secs (0.u,0.s) -Chars 17587 - 17732 [(destruct~x;~try~destruct~s;~t...] 0.009 secs (0.009u,0.s) -Chars 17739 - 17783 [(destruct~s;~try~contradiction...] 0. secs (0.u,0.s) -Chars 17790 - 17859 [(inversion~H;~subst;~eauto;~tr...] 0.003 secs (0.003u,0.s) -Chars 17866 - 17872 [(inv~H).] 0.001 secs (0.001u,0.s) -Chars 17873 - 17896 [(exists~(inl~a2);~eauto).] 0. secs (0.u,0.s) -Chars 17904 - 17940 [(inv~H;~exists~(inr~(inr~b2));...] 0.002 secs (0.002u,0.s) -Chars 17946 - 17950 [Qed.] 0.015 secs (0.015u,0.s) +Chars 17543 - 17562 [split;~compute;~intros.] 0. secs (0.u,0.s) +Chars 17569 - 17580 [destruct~H.] 0. secs (0.u,0.s) +Chars 17587 - 17732 [destruct~x;~try~destruct~s;~tr...] 0.006 secs (0.006u,0.s) +Chars 17739 - 17783 [destruct~s;~try~contradiction;...] 0. secs (0.u,0.s) +Chars 17790 - 17859 [inversion~H;~subst;~eauto;~try...] 0.004 secs (0.004u,0.s) +Chars 17866 - 17872 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 17873 - 17896 [exists~(inl~a2);~eauto.] 0. secs (0.u,0.s) +Chars 17904 - 17940 [inv~H;~exists~(inr~(inr~b2));~...] 0.001 secs (0.001u,0.s) +Chars 17946 - 17950 [Qed.] 0.008 secs (0.008u,0.s) Chars 17956 - 18022 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) Chars 18027 - 18033 [Proof.] 0. secs (0.u,0.s) -Chars 18040 - 18221 [(split;~compute;~intros;~~~rep...] 0.069 secs (0.068u,0.s) +Chars 18040 - 18221 [split;~compute;~intros;~~repea...] 0.048 secs (0.048u,0.s) Chars 18228 - 18229 [-] 0. secs (0.u,0.s) -Chars 18230 - 18269 [(exists~(inl~(inl~a2));~intuit...] 0. secs (0.u,0.s) +Chars 18230 - 18269 [exists~(inl~(inl~a2));~intuiti...] 0. secs (0.u,0.s) Chars 18276 - 18277 [-] 0. secs (0.u,0.s) -Chars 18278 - 18317 [(eexists~(inl~(inr~_));~intuit...] 0. secs (0.u,0.s) +Chars 18278 - 18317 [eexists~(inl~(inr~_));~intuiti...] 0. secs (0.u,0.s) Chars 18324 - 18325 [-] 0. secs (0.u,0.s) -Chars 18326 - 18365 [(eexists~(inr~(inl~_));~intuit...] 0. secs (0.u,0.s) +Chars 18326 - 18365 [eexists~(inr~(inl~_));~intuiti...] 0. secs (0.u,0.s) Chars 18372 - 18373 [-] 0. secs (0.u,0.s) -Chars 18374 - 18413 [(eexists~(inr~(inr~_));~intuit...] 0. secs (0.u,0.s) +Chars 18374 - 18413 [eexists~(inr~(inr~_));~intuiti...] 0. secs (0.u,0.s) Chars 18420 - 18421 [-] 0. secs (0.u,0.s) -Chars 18422 - 18455 [(eexists~(inl~_);~intuition;~a...] 0. secs (0.u,0.s) -Chars 18464 - 18503 [(exists~(inl~(inl~a1));~intuit...] 0. secs (0.u,0.s) +Chars 18422 - 18455 [eexists~(inl~_);~intuition;~auto.] 0. secs (0.u,0.s) +Chars 18464 - 18503 [exists~(inl~(inl~a1));~intuiti...] 0. secs (0.u,0.s) Chars 18510 - 18511 [-] 0. secs (0.u,0.s) -Chars 18512 - 18571 [(exists~(inr~(inl~(inl~b1)));~...] 0.001 secs (0.001u,0.s) +Chars 18512 - 18571 [exists~(inr~(inl~(inl~b1)));~i...] 0.001 secs (0.001u,0.s) Chars 18580 - 18586 [split.] 0. secs (0.u,0.s) Chars 18587 - 18600 [econstructor.] 0. secs (0.u,0.s) Chars 18601 - 18610 [Unshelve.] 0. secs (0.u,0.s) Chars 18611 - 18638 [3:~exact~(inr~(inl~b1)).] 0. secs (0.u,0.s) -Chars 18639 - 18655 [(intuition;~auto).] 0. secs (0.u,0.s) -Chars 18664 - 18674 [intuition.] 0. secs (0.u,0.s) +Chars 18639 - 18655 [intuition;~auto.] 0. secs (0.u,0.s) +Chars 18664 - 18674 [intuition.] 0.002 secs (0.002u,0.s) Chars 18681 - 18682 [-] 0. secs (0.u,0.s) -Chars 18683 - 18742 [(exists~(inr~(inl~(inr~c0)));~...] 0.001 secs (0.001u,0.s) +Chars 18683 - 18742 [exists~(inr~(inl~(inr~c0)));~i...] 0.001 secs (0.001u,0.s) Chars 18751 - 18757 [split.] 0. secs (0.u,0.s) Chars 18758 - 18767 [Unshelve.] 0. secs (0.u,0.s) Chars 18768 - 18781 [econstructor.] 0. secs (0.u,0.s) Chars 18782 - 18791 [Unshelve.] 0. secs (0.u,0.s) Chars 18800 - 18828 [3:~refine~(inr~(inr~c0)).] 0. secs (0.u,0.s) -Chars 18829 - 18859 [(intuition;~econstructor;~auto).] 0. secs (0.u,0.s) +Chars 18829 - 18859 [intuition;~econstructor;~auto.] 0. secs (0.u,0.s) Chars 18868 - 18878 [intuition.] 0. secs (0.u,0.s) Chars 18885 - 18886 [-] 0. secs (0.u,0.s) -Chars 18887 - 18940 [(exists~(inr~(inr~d0));~intuit...] 0.001 secs (0.001u,0.s) -Chars 18946 - 18950 [Qed.] 0.04 secs (0.039u,0.s) +Chars 18887 - 18940 [exists~(inr~(inr~d0));~intuiti...] 0.001 secs (0.001u,0.s) +Chars 18946 - 18950 [Qed.] 0.028 secs (0.028u,0.s) Chars 18956 - 19019 [#[global]~Instance~Monoidal_su...] 0. secs (0.u,0.s) Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) -Chars 19037 - 19068 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 19037 - 19068 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 19073 - 19077 [Qed.] 0. secs (0.u,0.s) Chars 19081 - 19098 [End~BifunctorSum.] 0. secs (0.u,0.s) -Chars 19100 - 19110 [End~Facts.] 0.001 secs (0.001u,0.s) +Chars 19100 - 19110 [End~Facts.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategorySub.v.timing b/theories/Basics/CategorySub.v.timing index 14b94f52..b1eb7c7c 100644 --- a/theories/Basics/CategorySub.v.timing +++ b/theories/Basics/CategorySub.v.timing @@ -1,5 +1,5 @@ -Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.002s) -Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.005 secs (0.003u,0.001s) +Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.003 secs (0.002u,0.s) Chars 244 - 264 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 265 - 292 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 309 - 335 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) @@ -20,7 +20,7 @@ Chars 1431 - 1458 [Arguments~from_bif~{_~a~b}.] 0. secs (0.u,0.s) Chars 1460 - 1591 [Context~{ToBif~:~ToBifunctor}~...] 0. secs (0.u,0.s) Chars 1593 - 1607 [Section~Bimap.] 0. secs (0.u,0.s) Chars 1609 - 1643 [Context~{Bimap_C~:~Bimap~C~bif}.] 0. secs (0.u,0.s) -Chars 1645 - 1750 [Definition~Bimap_sub~:~Bimap~s...] 0.001 secs (0.001u,0.s) +Chars 1645 - 1750 [Definition~Bimap_sub~:~Bimap~s...] 0. secs (0.u,0.s) Chars 1752 - 1762 [End~Bimap.] 0. secs (0.u,0.s) Chars 1764 - 1840 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) Chars 1842 - 1935 [#[global]~Instance~Case_sub~:~...] 0. secs (0.u,0.s) @@ -33,22 +33,22 @@ Chars 2256 - 2349 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) Chars 2351 - 2441 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2443 - 2487 [#[global]~Instance~Category_su...] 0. secs (0.u,0.s) Chars 2488 - 2494 [Proof.] 0. secs (0.u,0.s) -Chars 2497 - 2542 [(destruct~Category_C;~construc...] 0.003 secs (0.002u,0.001s) -Chars 2545 - 2554 [(do~2~red).] 0. secs (0.u,0.s) -Chars 2555 - 2562 [(intros).] 0. secs (0.u,0.s) -Chars 2563 - 2597 [(eapply~category_proper_cat;~e...] 0. secs (0.u,0.s) -Chars 2598 - 2602 [Qed.] 0.001 secs (0.u,0.s) -Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0.001 secs (0.u,0.s) +Chars 2497 - 2542 [destruct~Category_C;~construct...] 0.002 secs (0.001u,0.s) +Chars 2545 - 2554 [do~2~red.] 0. secs (0.u,0.s) +Chars 2555 - 2562 [intros.] 0. secs (0.u,0.s) +Chars 2563 - 2597 [eapply~category_proper_cat;~ea...] 0. secs (0.u,0.s) +Chars 2598 - 2602 [Qed.] 0. secs (0.u,0.s) +Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0. secs (0.u,0.s) Chars 2673 - 2679 [Proof.] 0. secs (0.u,0.s) -Chars 2680 - 2690 [(hnf;~auto).] 0. secs (0.u,0.s) +Chars 2680 - 2690 [hnf;~auto.] 0. secs (0.u,0.s) Chars 2691 - 2695 [Qed.] 0. secs (0.u,0.s) Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0. secs (0.u,0.s) Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) -Chars 2775 - 2785 [(hnf;~auto).] 0. secs (0.u,0.s) +Chars 2775 - 2785 [hnf;~auto.] 0. secs (0.u,0.s) Chars 2786 - 2790 [Qed.] 0. secs (0.u,0.s) Chars 2792 - 2852 [#[global]~Instance~Functor_uns...] 0. secs (0.u,0.s) Chars 2853 - 2859 [Proof.] 0. secs (0.u,0.s) -Chars 2862 - 2907 [(constructor;~reflexivity~+~ty...] 0.002 secs (0.001u,0.s) +Chars 2862 - 2907 [constructor;~reflexivity~+~typ...] 0.001 secs (0.u,0.s) Chars 2908 - 2912 [Qed.] 0. secs (0.u,0.s) Chars 2914 - 2926 [End~CatLaws.] 0. secs (0.u,0.s) Chars 2928 - 3800 [Ltac~~unfold_sub~:=~~~repeat~~...] 0. secs (0.u,0.s) @@ -57,69 +57,69 @@ Chars 3990 - 4012 [Section~CoproductLaws.] 0. secs (0.u,0.s) Chars 4014 - 4141 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) Chars 4143 - 4194 [#[global]~Instance~Coproduct_s...] 0. secs (0.u,0.s) Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) -Chars 4204 - 4251 [(destruct~Coproduct_C;~constru...] 0. secs (0.u,0.s) -Chars 4254 - 4287 [all:~(unfold~Morphisms.respect...] 0. secs (0.u,0.s) -Chars 4290 - 4306 [all:~unfold_sub.] 0.016 secs (0.014u,0.002s) -Chars 4309 - 4337 [all:~(try~rewrite~!cat_assoc).] 0.005 secs (0.005u,0.s) -Chars 4340 - 4366 [all:~(try~simpl_bif;~eauto).] 0.039 secs (0.038u,0.001s) +Chars 4204 - 4251 [destruct~Coproduct_C;~construc...] 0. secs (0.u,0.s) +Chars 4254 - 4287 [all:~unfold~Morphisms.respectful.] 0. secs (0.u,0.s) +Chars 4290 - 4306 [all:~unfold_sub.] 0.01 secs (0.009u,0.s) +Chars 4309 - 4337 [all:~try~rewrite~!cat_assoc.] 0.003 secs (0.003u,0.s) +Chars 4340 - 4366 [all:~try~simpl_bif;~eauto.] 0.026 secs (0.025u,0.s) Chars 4369 - 4370 [-] 0. secs (0.u,0.s) -Chars 4371 - 4419 [(enough~(from_bif~>>>~fg~⩯~cas...] 0. secs (0.u,0.s) +Chars 4371 - 4419 [enough~(from_bif~>>>~fg~⩯~case...] 0. secs (0.u,0.s) Chars 4424 - 4425 [{] 0. secs (0.u,0.s) -Chars 4426 - 4480 [(rewrite~<-~H1,~<-~cat_assoc,~...] 0.006 secs (0.005u,0.s) +Chars 4426 - 4480 [rewrite~<-~H1,~<-~cat_assoc,~(...] 0.003 secs (0.003u,0.s) Chars 4481 - 4493 [reflexivity.] 0. secs (0.u,0.s) Chars 4494 - 4495 [}] 0. secs (0.u,0.s) -Chars 4500 - 4550 [(apply~case_universal;~rewrite...] 0.003 secs (0.003u,0.s) +Chars 4500 - 4550 [apply~case_universal;~rewrite~...] 0.002 secs (0.002u,0.s) Chars 4553 - 4554 [-] 0. secs (0.u,0.s) -Chars 4555 - 4562 [(intros).] 0. secs (0.u,0.s) -Chars 4563 - 4586 [(unfold~case_,~Case_sub).] 0. secs (0.u,0.s) -Chars 4591 - 4617 [(apply~category_proper_cat).] 0. secs (0.u,0.s) +Chars 4555 - 4562 [intros.] 0. secs (0.u,0.s) +Chars 4563 - 4586 [unfold~case_,~Case_sub.] 0. secs (0.u,0.s) +Chars 4591 - 4617 [apply~category_proper_cat.] 0. secs (0.u,0.s) Chars 4618 - 4630 [reflexivity.] 0. secs (0.u,0.s) -Chars 4635 - 4671 [(eapply~coproduct_proper_case;...] 0. secs (0.u,0.s) -Chars 4672 - 4676 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4635 - 4671 [eapply~coproduct_proper_case;~...] 0. secs (0.u,0.s) +Chars 4672 - 4676 [Qed.] 0.002 secs (0.002u,0.s) Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.001 secs (0.001u,0.s) Chars 4829 - 4835 [Proof.] 0. secs (0.u,0.s) -Chars 4838 - 4878 [(unfold~bimap~at~1,~Bimap_Copr...] 0. secs (0.u,0.s) -Chars 4881 - 4892 [unfold_sub.] 0.001 secs (0.001u,0.s) -Chars 4895 - 4918 [(rewrite~<-~2!cat_assoc).] 0.011 secs (0.009u,0.002s) -Chars 4921 - 4941 [(rewrite~<-~cat_case).] 0.004 secs (0.003u,0.001s) -Chars 4942 - 4960 [(rewrite~cat_assoc).] 0.002 secs (0.001u,0.s) +Chars 4838 - 4878 [unfold~bimap~at~1,~Bimap_Copro...] 0. secs (0.u,0.s) +Chars 4881 - 4892 [unfold_sub.] 0. secs (0.u,0.s) +Chars 4895 - 4918 [rewrite~<-~2!cat_assoc.] 0.007 secs (0.005u,0.001s) +Chars 4921 - 4941 [rewrite~<-~cat_case.] 0.002 secs (0.002u,0.s) +Chars 4942 - 4960 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) Chars 4963 - 4975 [reflexivity.] 0. secs (0.u,0.s) -Chars 4976 - 4980 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4976 - 4980 [Qed.] 0.001 secs (0.001u,0.s) Chars 4982 - 5024 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) Chars 5026 - 5077 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) Chars 5078 - 5084 [Proof.] 0. secs (0.u,0.s) -Chars 5087 - 5112 [(constructor;~red;~intros).] 0. secs (0.u,0.s) -Chars 5115 - 5160 [all:~(unfold~Morphisms.respect...] 0.009 secs (0.007u,0.002s) +Chars 5087 - 5112 [constructor;~red;~intros.] 0. secs (0.u,0.s) +Chars 5115 - 5160 [all:~unfold~Morphisms.respectf...] 0.006 secs (0.005u,0.001s) Chars 5163 - 5164 [-] 0. secs (0.u,0.s) -Chars 5165 - 5201 [(rewrite~iter_unfold,~cat_asso...] 0.004 secs (0.003u,0.001s) +Chars 5165 - 5201 [rewrite~iter_unfold,~cat_assoc...] 0.002 secs (0.002u,0.s) Chars 5202 - 5214 [reflexivity.] 0. secs (0.u,0.s) Chars 5217 - 5218 [-] 0. secs (0.u,0.s) -Chars 5219 - 5244 [(rewrite~bimap_sub_unfold).] 0.007 secs (0.006u,0.001s) -Chars 5249 - 5277 [(rewrite~!(cat_assoc~to_bif)).] 0.006 secs (0.006u,0.s) -Chars 5282 - 5316 [(rewrite~<-~(cat_assoc~(C:=C)~...] 0.004 secs (0.004u,0.s) -Chars 5321 - 5363 [(rewrite~cat_assoc,~(cat_assoc...] 0.007 secs (0.007u,0.s) -Chars 5368 - 5401 [(rewrite~(semi_iso~_~_),~cat_i...] 0.009 secs (0.009u,0.s) -Chars 5406 - 5427 [(rewrite~iter_natural).] 0.002 secs (0.001u,0.s) +Chars 5219 - 5244 [rewrite~bimap_sub_unfold.] 0.004 secs (0.004u,0.s) +Chars 5249 - 5277 [rewrite~!(cat_assoc~to_bif).] 0.004 secs (0.004u,0.s) +Chars 5282 - 5316 [rewrite~<-~(cat_assoc~(C:=C)~f).] 0.002 secs (0.002u,0.s) +Chars 5321 - 5363 [rewrite~cat_assoc,~(cat_assoc~...] 0.004 secs (0.004u,0.s) +Chars 5368 - 5401 [rewrite~(semi_iso~_~_),~cat_id_r.] 0.006 secs (0.006u,0.s) +Chars 5406 - 5427 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) Chars 5432 - 5444 [reflexivity.] 0. secs (0.u,0.s) Chars 5447 - 5448 [-] 0. secs (0.u,0.s) -Chars 5449 - 5482 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.018 secs (0.016u,0.001s) -Chars 5487 - 5519 [(rewrite~!(cat_assoc~_~_~to_bi...] 0.015 secs (0.014u,0.s) -Chars 5524 - 5542 [(rewrite~!cat_case).] 0.015 secs (0.015u,0.s) -Chars 5547 - 5607 [(rewrite~!(cat_assoc~_~from_bi...] 0.055 secs (0.052u,0.002s) -Chars 5612 - 5635 [(rewrite~iter_dinatural).] 0.002 secs (0.002u,0.s) +Chars 5449 - 5482 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.01 secs (0.01u,0.s) +Chars 5487 - 5519 [rewrite~!(cat_assoc~_~_~to_bif).] 0.009 secs (0.009u,0.s) +Chars 5524 - 5542 [rewrite~!cat_case.] 0.01 secs (0.01u,0.s) +Chars 5547 - 5607 [rewrite~!(cat_assoc~_~from_bif...] 0.035 secs (0.035u,0.s) +Chars 5612 - 5635 [rewrite~iter_dinatural.] 0.001 secs (0.001u,0.s) Chars 5640 - 5652 [reflexivity.] 0. secs (0.u,0.s) Chars 5655 - 5656 [-] 0. secs (0.u,0.s) -Chars 5657 - 5690 [(rewrite~<-~!(cat_assoc~_~to_b...] 0.006 secs (0.006u,0.s) -Chars 5695 - 5726 [(rewrite~(cat_assoc~_~_~to_bif)).] 0.003 secs (0.002u,0.s) -Chars 5731 - 5758 [(rewrite~cat_case,~cat_id_l).] 0.01 secs (0.01u,0.s) -Chars 5763 - 5820 [(rewrite~(cat_assoc~_~_~to_bif...] 0.015 secs (0.014u,0.s) -Chars 5825 - 5863 [(rewrite~iter_natural,~iter_co...] 0.004 secs (0.004u,0.s) -Chars 5868 - 5934 [(rewrite~(cat_assoc~_~(bimap~_...] 0.017 secs (0.017u,0.s) +Chars 5657 - 5690 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.004 secs (0.004u,0.s) +Chars 5695 - 5726 [rewrite~(cat_assoc~_~_~to_bif).] 0.002 secs (0.002u,0.s) +Chars 5731 - 5758 [rewrite~cat_case,~cat_id_l.] 0.007 secs (0.007u,0.s) +Chars 5763 - 5820 [rewrite~(cat_assoc~_~_~to_bif)...] 0.01 secs (0.01u,0.s) +Chars 5825 - 5863 [rewrite~iter_natural,~iter_cod...] 0.003 secs (0.003u,0.s) +Chars 5868 - 5934 [rewrite~(cat_assoc~_~(bimap~_~...] 0.012 secs (0.012u,0.s) Chars 5939 - 5951 [reflexivity.] 0. secs (0.u,0.s) Chars 5954 - 5955 [-] 0. secs (0.u,0.s) -Chars 5956 - 5986 [(intros;~unfold~iter,~Iter_sub).] 0. secs (0.u,0.s) -Chars 5991 - 6059 [(apply~iterative_proper_iter,~...] 0.001 secs (0.001u,0.s) -Chars 6060 - 6064 [Qed.] 0.019 secs (0.018u,0.s) +Chars 5956 - 5986 [intros;~unfold~iter,~Iter_sub.] 0. secs (0.u,0.s) +Chars 5991 - 6059 [apply~iterative_proper_iter,~c...] 0. secs (0.u,0.s) +Chars 6060 - 6064 [Qed.] 0.012 secs (0.012u,0.s) Chars 6066 - 6084 [End~CoproductLaws.] 0. secs (0.u,0.s) Chars 6086 - 6102 [End~Subcategory.] 0.001 secs (0.001u,0.s) Chars 6104 - 6142 [Arguments~subm~{obj~C~sobj~Emb...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryTheory.v.timing b/theories/Basics/CategoryTheory.v.timing index 843f594f..066cb77b 100644 --- a/theories/Basics/CategoryTheory.v.timing +++ b/theories/Basics/CategoryTheory.v.timing @@ -1,5 +1,5 @@ -Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.004u,0.002s) -Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.u,0.s) +Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0. secs (0.u,0.s) Chars 291 - 306 [Import~Carrier.] 0. secs (0.u,0.s) Chars 307 - 327 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 328 - 349 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) @@ -10,7 +10,7 @@ Chars 488 - 540 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) Chars 592 - 670 [Class~CatIdL~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) Chars 672 - 750 [Class~CatIdR~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) Chars 752 - 885 [Class~CatAssoc~:~Prop~:=~~~~~c...] 0. secs (0.u,0.s) -Chars 887 - 1114 [Class~Category~:~Prop~:={~~~~~...] 0.001 secs (0.001u,0.s) +Chars 887 - 1114 [Class~Category~:~Prop~:={~~~~~...] 0.001 secs (0.u,0.s) Chars 1115 - 1161 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) Chars 1162 - 1208 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) Chars 1209 - 1256 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) @@ -61,8 +61,8 @@ Chars 5130 - 5185 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 5186 - 5212 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 5213 - 5247 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 5348 - 5441 [Class~BimapId~:~Prop~:=~~~~~bi...] 0. secs (0.u,0.s) -Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.002 secs (0.001u,0.s) -Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) +Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.001 secs (0.001u,0.s) +Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) Chars 5887 - 5934 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5935 - 5983 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) Chars 5984 - 6035 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) @@ -74,10 +74,10 @@ Chars 6307 - 6342 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) Chars 6343 - 6398 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) Chars 6399 - 6425 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) Chars 6426 - 6512 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0.001 secs (0.u,0.s) +Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) +Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) Chars 7200 - 7247 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) Chars 7248 - 7295 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) Chars 7296 - 7349 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) @@ -96,12 +96,12 @@ Chars 7946 - 8032 [Context~{Pair_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) +Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.007 secs (0.006u,0.s) Chars 8708 - 8753 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8754 - 8799 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8800 - 8851 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) Chars 8852 - 8900 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8902 - 8918 [End~ProductLaws.] 0.01 secs (0.009u,0.001s) +Chars 8902 - 8918 [End~ProductLaws.] 0. secs (0.u,0.s) Chars 8920 - 8996 [Arguments~pair_fst~{obj~C~Eq2_...] 0. secs (0.u,0.s) Chars 8997 - 9073 [Arguments~pair_snd~{obj~C~Eq2_...] 0. secs (0.u,0.s) Chars 9074 - 9138 [Arguments~pair_universal~{obj~...] 0. secs (0.u,0.s) @@ -114,7 +114,7 @@ Chars 9371 - 9460 [Context~{Pair_C~:~Pair~C~PROD}...] 0. secs (0.u,0.s) Chars 9461 - 9487 [Context~(EXP~:~binop~obj).] 0. secs (0.u,0.s) Chars 9488 - 9562 [Context~{Apply_C~:~Apply~C~PRO...] 0. secs (0.u,0.s) Chars 9564 - 9596 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) -Chars 9598 - 9754 [Class~CurryApply~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) +Chars 9598 - 9754 [Class~CurryApply~:~Prop~:=~~~~...] 0.001 secs (0.u,0.s) Chars 9756 - 10022 [Class~CartesianClosed~:~Prop~:...] 0.001 secs (0.001u,0.s) Chars 10023 - 10070 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) Chars 10071 - 10117 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) @@ -130,42 +130,42 @@ Chars 10529 - 10563 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) Chars 10565 - 10601 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) Chars 10602 - 10638 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) Chars 10745 - 10830 [Notation~AssocIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 10968 - 11081 [Corollary~assoc_r_mono~{AssocI...] 0.001 secs (0.001u,0.s) +Chars 10968 - 11081 [Corollary~assoc_r_mono~{AssocI...] 0. secs (0.u,0.s) Chars 11082 - 11088 [Proof.] 0. secs (0.u,0.s) -Chars 11091 - 11126 [(intros;~apply~semi_iso,~Assoc...] 0. secs (0.u,0.s) +Chars 11091 - 11126 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) Chars 11127 - 11131 [Qed.] 0. secs (0.u,0.s) -Chars 11227 - 11340 [Corollary~assoc_l_mono~{AssocI...] 0.001 secs (0.001u,0.s) +Chars 11227 - 11340 [Corollary~assoc_l_mono~{AssocI...] 0. secs (0.u,0.s) Chars 11341 - 11347 [Proof.] 0. secs (0.u,0.s) -Chars 11350 - 11385 [(intros;~apply~semi_iso,~Assoc...] 0. secs (0.u,0.s) +Chars 11350 - 11385 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) Chars 11386 - 11390 [Qed.] 0. secs (0.u,0.s) Chars 11392 - 11410 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 11411 - 11449 [Context~{UnitL_bif~:~UnitL~C~b...] 0. secs (0.u,0.s) Chars 11450 - 11488 [Context~{UnitL'_bif~:~UnitL'~C...] 0. secs (0.u,0.s) Chars 11489 - 11527 [Context~{UnitR_bif~:~UnitR~C~b...] 0. secs (0.u,0.s) Chars 11528 - 11566 [Context~{UnitR'_bif~:~UnitR'~C...] 0. secs (0.u,0.s) -Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0.001 secs (0.u,0.s) -Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0.001 secs (0.u,0.s) +Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0. secs (0.u,0.s) +Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0. secs (0.u,0.s) Chars 11910 - 11988 [Notation~UnitLIso~:=~(forall~a...] 0. secs (0.u,0.s) Chars 12086 - 12185 [Corollary~unit_l_mono~{UnitLIs...] 0. secs (0.u,0.s) Chars 12186 - 12192 [Proof.] 0. secs (0.u,0.s) -Chars 12195 - 12230 [(intros;~apply~semi_iso,~UnitL...] 0. secs (0.u,0.s) +Chars 12195 - 12230 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) Chars 12231 - 12235 [Qed.] 0. secs (0.u,0.s) -Chars 12303 - 12393 [Corollary~unit_l_epi~{UnitLIso...] 0.001 secs (0.001u,0.s) +Chars 12303 - 12393 [Corollary~unit_l_epi~{UnitLIso...] 0. secs (0.u,0.s) Chars 12394 - 12400 [Proof.] 0. secs (0.u,0.s) -Chars 12403 - 12438 [(intros;~apply~semi_iso,~UnitL...] 0. secs (0.u,0.s) +Chars 12403 - 12438 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) Chars 12439 - 12443 [Qed.] 0. secs (0.u,0.s) Chars 12496 - 12574 [Notation~UnitRIso~:=~(forall~a...] 0. secs (0.u,0.s) Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0. secs (0.u,0.s) Chars 12676 - 12682 [Proof.] 0. secs (0.u,0.s) -Chars 12685 - 12720 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) +Chars 12685 - 12720 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) Chars 12721 - 12725 [Qed.] 0. secs (0.u,0.s) -Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0.001 secs (0.u,0.s) +Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0. secs (0.u,0.s) Chars 12818 - 12824 [Proof.] 0. secs (0.u,0.s) -Chars 12827 - 12862 [(intros;~apply~semi_iso,~UnitR...] 0. secs (0.u,0.s) +Chars 12827 - 12862 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) Chars 12863 - 12867 [Qed.] 0. secs (0.u,0.s) -Chars 12924 - 13042 [Class~AssocRUnit~:~Prop~:=~~~~...] 0.002 secs (0.002u,0.s) -Chars 13072 - 13264 [Class~AssocRAssocR~:~Prop~:=~~...] 0.005 secs (0.005u,0.s) -Chars 13266 - 13603 [Class~Monoidal~:~Prop~:={~~~~~...] 0.002 secs (0.002u,0.s) +Chars 12924 - 13042 [Class~AssocRUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) +Chars 13072 - 13264 [Class~AssocRAssocR~:~Prop~:=~~...] 0.003 secs (0.003u,0.s) +Chars 13266 - 13603 [Class~Monoidal~:~Prop~:={~~~~~...] 0.001 secs (0.001u,0.s) Chars 13604 - 13651 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13652 - 13699 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13700 - 13748 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) @@ -174,9 +174,9 @@ Chars 13798 - 13850 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13851 - 13904 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13905 - 13955 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) Chars 13956 - 14009 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.002 secs (0.002u,0.s) -Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.019 secs (0.018u,0.001s) -Chars 14435 - 14452 [End~MonoidalLaws.] 0.002 secs (0.001u,0.s) +Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) +Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.012 secs (0.012u,0.s) +Chars 14435 - 14452 [End~MonoidalLaws.] 0.001 secs (0.001u,0.s) Chars 14454 - 14545 [Arguments~assoc_r_mono~~~{obj~...] 0. secs (0.u,0.s) Chars 14546 - 14637 [Arguments~assoc_l_mono~~~{obj~...] 0. secs (0.u,0.s) Chars 14638 - 14725 [Arguments~unit_l_mono~~~{obj~C...] 0. secs (0.u,0.s) @@ -196,20 +196,20 @@ Chars 15628 - 15660 [Context~{Swap_bif~:~Swap~C~bif}.] 0. secs (0.u,0.s) Chars 15693 - 15778 [Notation~SwapInvolutive~:=~(fo...] 0. secs (0.u,0.s) Chars 15780 - 15890 [Corollary~swap_involutive~{Swa...] 0. secs (0.u,0.s) Chars 15891 - 15897 [Proof.] 0. secs (0.u,0.s) -Chars 15900 - 15941 [(intros;~apply~semi_iso,~SwapI...] 0. secs (0.u,0.s) +Chars 15900 - 15941 [intros;~apply~semi_iso,~SwapIn...] 0. secs (0.u,0.s) Chars 15942 - 15946 [Qed.] 0. secs (0.u,0.s) Chars 15948 - 15966 [Context~(i~:~obj).] 0. secs (0.u,0.s) Chars 15967 - 16003 [Context~{UnitL_i~:~UnitL~C~bif...] 0. secs (0.u,0.s) Chars 16004 - 16040 [Context~{UnitL'_i~:~UnitL'~C~b...] 0. secs (0.u,0.s) Chars 16041 - 16077 [Context~{UnitR_i~:~UnitR~C~bif...] 0. secs (0.u,0.s) Chars 16078 - 16114 [Context~{UnitR'_i~:~UnitR'~C~b...] 0. secs (0.u,0.s) -Chars 16161 - 16245 [Class~SwapUnitL~:~Prop~:=~~~~~...] 0.001 secs (0.001u,0.s) +Chars 16161 - 16245 [Class~SwapUnitL~:~Prop~:=~~~~~...] 0. secs (0.u,0.s) Chars 16247 - 16283 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) Chars 16284 - 16320 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) -Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.005 secs (0.005u,0.s) -Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0.001 secs (0.001u,0.s) -Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.005 secs (0.005u,0.s) -Chars 16989 - 17007 [End~SymmetricLaws.] 0.001 secs (0.u,0.s) +Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) +Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0. secs (0.u,0.s) +Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) +Chars 16989 - 17007 [End~SymmetricLaws.] 0. secs (0.u,0.s) Chars 17009 - 17094 [Arguments~swap_involutive~~~{o...] 0. secs (0.u,0.s) Chars 17095 - 17180 [Arguments~swap_unit_l~~~{obj~C...] 0. secs (0.u,0.s) Chars 17181 - 17281 [Arguments~swap_assoc_r~~~{obj~...] 0. secs (0.u,0.s) @@ -222,18 +222,18 @@ Chars 17527 - 17557 [Context~{Case_C~:~Case~C~bif}.] 0. secs (0.u,0.s) Chars 17558 - 17586 [Context~{Inl_C~:~Inl~C~bif}.] 0. secs (0.u,0.s) Chars 17587 - 17615 [Context~{Inr_C~:~Inr~C~bif}.] 0. secs (0.u,0.s) Chars 17616 - 17646 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) -Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0.001 secs (0.u,0.s) +Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0. secs (0.u,0.s) Chars 17942 - 18083 [Class~IterNatural~:~Prop~:=~~~...] 0.001 secs (0.001u,0.s) -Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.003 secs (0.002u,0.s) +Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.001 secs (0.001u,0.s) Chars 18534 - 18679 [Class~IterCodiagonal~:~Prop~:=...] 0.001 secs (0.001u,0.s) -Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0.001 secs (0.001u,0.s) +Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) Chars 19031 - 19076 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19077 - 19123 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19124 - 19172 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19173 - 19222 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) Chars 19223 - 19273 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.021 secs (0.016u,0.004s) -Chars 19692 - 19710 [End~IterationLaws.] 0.001 secs (0.001u,0.s) +Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.014 secs (0.011u,0.002s) +Chars 19692 - 19710 [End~IterationLaws.] 0. secs (0.u,0.s) Chars 19712 - 19796 [Arguments~iter_unfold~{obj~C~E...] 0. secs (0.u,0.s) Chars 19797 - 19897 [Arguments~iter_natural~~~{obj~...] 0. secs (0.u,0.s) Chars 19898 - 19996 [Arguments~iter_dinatural~~~{ob...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Function.v.timing b/theories/Basics/Function.v.timing index b7208493..99bd21bd 100644 --- a/theories/Basics/Function.v.timing +++ b/theories/Basics/Function.v.timing @@ -1,4 +1,4 @@ -Chars 125 - 194 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) +Chars 125 - 194 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) Chars 196 - 216 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 217 - 247 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 297 - 342 [Definition~Fun~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/FunctionFacts.v.timing b/theories/Basics/FunctionFacts.v.timing index 54b27fef..b129bda5 100644 --- a/theories/Basics/FunctionFacts.v.timing +++ b/theories/Basics/FunctionFacts.v.timing @@ -1,5 +1,5 @@ -Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.15 secs (0.13u,0.018s) +Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.101 secs (0.09u,0.01s) Chars 209 - 229 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 230 - 257 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) Chars 274 - 378 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) @@ -8,52 +8,52 @@ Chars 386 - 397 [congruence.] 0. secs (0.u,0.s) Chars 398 - 402 [Qed.] 0. secs (0.u,0.s) Chars 404 - 474 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 475 - 481 [Proof.] 0. secs (0.u,0.s) -Chars 482 - 506 [(constructor;~congruence).] 0. secs (0.u,0.s) +Chars 482 - 506 [constructor;~congruence.] 0. secs (0.u,0.s) Chars 507 - 511 [Qed.] 0. secs (0.u,0.s) Chars 513 - 628 [#[global]~Instance~Proper_cat~...] 0. secs (0.u,0.s) Chars 629 - 635 [Proof.] 0. secs (0.u,0.s) -Chars 636 - 652 [(compute;~congruence).] 0. secs (0.u,0.s) +Chars 636 - 652 [compute;~congruence.] 0. secs (0.u,0.s) Chars 653 - 657 [Qed.] 0. secs (0.u,0.s) Chars 659 - 706 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) Chars 707 - 713 [Proof.] 0. secs (0.u,0.s) -Chars 714 - 731 [(red;~reflexivity).] 0. secs (0.u,0.s) +Chars 714 - 731 [red;~reflexivity.] 0. secs (0.u,0.s) Chars 732 - 736 [Qed.] 0. secs (0.u,0.s) Chars 738 - 785 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) Chars 786 - 792 [Proof.] 0. secs (0.u,0.s) -Chars 793 - 810 [(red;~reflexivity).] 0. secs (0.u,0.s) -Chars 811 - 815 [Qed.] 0. secs (0.u,0.s) +Chars 793 - 810 [red;~reflexivity.] 0. secs (0.u,0.s) +Chars 811 - 815 [Qed.] 0.002 secs (0.002u,0.s) Chars 817 - 865 [#[global]~Instance~cat_Fun_ass...] 0. secs (0.u,0.s) Chars 866 - 872 [Proof.] 0. secs (0.u,0.s) -Chars 873 - 890 [(red;~reflexivity).] 0. secs (0.u,0.s) +Chars 873 - 890 [red;~reflexivity.] 0. secs (0.u,0.s) Chars 891 - 895 [Qed.] 0. secs (0.u,0.s) Chars 897 - 1002 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 1004 - 1069 [#[global]~Instance~TerminalObj...] 0. secs (0.u,0.s) Chars 1070 - 1076 [Proof.] 0. secs (0.u,0.s) -Chars 1077 - 1081 [(red).] 0. secs (0.u,0.s) -Chars 1082 - 1089 [(intros).] 0. secs (0.u,0.s) +Chars 1077 - 1081 [red.] 0. secs (0.u,0.s) +Chars 1082 - 1089 [intros.] 0. secs (0.u,0.s) Chars 1090 - 1096 [intro.] 0. secs (0.u,0.s) -Chars 1097 - 1113 [(destruct~(f~a0)).] 0. secs (0.u,0.s) +Chars 1097 - 1113 [destruct~(f~a0).] 0. secs (0.u,0.s) Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) Chars 1127 - 1131 [Qed.] 0. secs (0.u,0.s) -Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0.004 secs (0.004u,0.s) +Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0. secs (0.u,0.s) Chars 1262 - 1268 [Proof.] 0. secs (0.u,0.s) -Chars 1269 - 1306 [(compute;~intros;~subst;~destr...] 0.001 secs (0.001u,0.s) +Chars 1269 - 1306 [compute;~intros;~subst;~destru...] 0. secs (0.u,0.s) Chars 1307 - 1311 [Qed.] 0. secs (0.u,0.s) Chars 1313 - 1360 [#[global]~Instance~Category_Fu...] 0. secs (0.u,0.s) Chars 1361 - 1367 [Proof.] 0. secs (0.u,0.s) -Chars 1370 - 1401 [(constructor;~typeclasses~eauto).] 0.001 secs (0.001u,0.s) +Chars 1370 - 1401 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 1402 - 1406 [Qed.] 0. secs (0.u,0.s) Chars 1408 - 1461 [#[global]~Instance~Coproduct_F...] 0. secs (0.u,0.s) Chars 1462 - 1468 [Proof.] 0. secs (0.u,0.s) Chars 1471 - 1483 [constructor.] 0. secs (0.u,0.s) Chars 1486 - 1487 [-] 0. secs (0.u,0.s) -Chars 1488 - 1505 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) -Chars 1510 - 1527 [(compute;~reflexivity).] 0. secs (0.u,0.s) +Chars 1488 - 1505 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 1510 - 1527 [compute;~reflexivity.] 0. secs (0.u,0.s) Chars 1530 - 1531 [-] 0. secs (0.u,0.s) -Chars 1532 - 1549 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) -Chars 1554 - 1571 [(compute;~reflexivity).] 0. secs (0.u,0.s) +Chars 1532 - 1549 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 1554 - 1571 [compute;~reflexivity.] 0. secs (0.u,0.s) Chars 1574 - 1575 [-] 0. secs (0.u,0.s) -Chars 1576 - 1626 [(intros~a~b~c~f~g~fg~Hf~Hg~[x|...] 0. secs (0.u,0.s) +Chars 1576 - 1626 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~...] 0. secs (0.u,0.s) Chars 1629 - 1630 [-] 0. secs (0.u,0.s) Chars 1631 - 1649 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 1650 - 1654 [Qed.] 0. secs (0.u,0.s) @@ -67,46 +67,46 @@ Chars 1789 - 1795 [split.] 0. secs (0.u,0.s) Chars 1796 - 1800 [Qed.] 0. secs (0.u,0.s) Chars 1802 - 1864 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) Chars 1865 - 1871 [Proof.] 0. secs (0.u,0.s) -Chars 1874 - 1887 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1890 - 1913 [(unfold~pair_,~Pair_Fun).] 0. secs (0.u,0.s) +Chars 1874 - 1887 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1890 - 1913 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) Chars 1914 - 1932 [specialize~(H~a0).] 0. secs (0.u,0.s) Chars 1933 - 1952 [specialize~(H0~a0).] 0. secs (0.u,0.s) -Chars 1953 - 1966 [(rewrite~<-~H).] 0. secs (0.u,0.s) -Chars 1969 - 1983 [(rewrite~<-~H0).] 0. secs (0.u,0.s) -Chars 1984 - 2004 [(unfold~cat,~Cat_Fun).] 0. secs (0.u,0.s) -Chars 2007 - 2024 [(destruct~(fg~a0)).] 0. secs (0.u,0.s) +Chars 1953 - 1966 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 1969 - 1983 [rewrite~<-~H0.] 0. secs (0.u,0.s) +Chars 1984 - 2004 [unfold~cat,~Cat_Fun.] 0. secs (0.u,0.s) +Chars 2007 - 2024 [destruct~(fg~a0).] 0. secs (0.u,0.s) Chars 2025 - 2037 [reflexivity.] 0. secs (0.u,0.s) Chars 2038 - 2042 [Qed.] 0. secs (0.u,0.s) -Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0.001 secs (0.u,0.s) +Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) Chars 2148 - 2154 [Proof.] 0. secs (0.u,0.s) -Chars 2157 - 2188 [(intros~?~?~?~f1~f2~F~g1~g2~G~c).] 0. secs (0.u,0.s) -Chars 2191 - 2214 [(unfold~pair_,~Pair_Fun).] 0. secs (0.u,0.s) -Chars 2215 - 2225 [(rewrite~F).] 0. secs (0.u,0.s) -Chars 2226 - 2236 [(rewrite~G).] 0. secs (0.u,0.s) +Chars 2157 - 2188 [intros~?~?~?~f1~f2~F~g1~g2~G~c.] 0. secs (0.u,0.s) +Chars 2191 - 2214 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) +Chars 2215 - 2225 [rewrite~F.] 0. secs (0.u,0.s) +Chars 2226 - 2236 [rewrite~G.] 0. secs (0.u,0.s) Chars 2237 - 2249 [reflexivity.] 0. secs (0.u,0.s) Chars 2250 - 2254 [Qed.] 0. secs (0.u,0.s) Chars 2258 - 2275 [Section~Products.] 0. secs (0.u,0.s) Chars 2278 - 2310 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) Chars 2314 - 2371 [#[global]~Instance~BimapId_Fun...] 0. secs (0.u,0.s) Chars 2374 - 2380 [Proof.] 0. secs (0.u,0.s) -Chars 2385 - 2398 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2403 - 2415 [(destruct~a0).] 0. secs (0.u,0.s) +Chars 2385 - 2398 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2403 - 2415 [destruct~a0.] 0. secs (0.u,0.s) Chars 2416 - 2428 [reflexivity.] 0. secs (0.u,0.s) Chars 2431 - 2435 [Qed.] 0. secs (0.u,0.s) Chars 2442 - 2501 [#[global]~Instance~BimapCat_Fu...] 0. secs (0.u,0.s) Chars 2504 - 2510 [Proof.] 0. secs (0.u,0.s) -Chars 2515 - 2528 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2533 - 2544 [(destruct~a).] 0. secs (0.u,0.s) +Chars 2515 - 2528 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2533 - 2544 [destruct~a.] 0. secs (0.u,0.s) Chars 2549 - 2561 [reflexivity.] 0. secs (0.u,0.s) Chars 2564 - 2568 [Qed.] 0. secs (0.u,0.s) -Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0.001 secs (0.u,0.s) +Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0. secs (0.u,0.s) Chars 2724 - 2730 [Proof.] 0. secs (0.u,0.s) -Chars 2735 - 2748 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2753 - 2781 [(unfold~bimap,~Bimap_Product).] 0. secs (0.u,0.s) -Chars 2782 - 2792 [(rewrite~H).] 0.01 secs (0.007u,0.002s) -Chars 2793 - 2804 [(rewrite~H0).] 0.01 secs (0.008u,0.002s) +Chars 2735 - 2748 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2753 - 2781 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) +Chars 2782 - 2792 [rewrite~H.] 0.005 secs (0.004u,0.001s) +Chars 2793 - 2804 [rewrite~H0.] 0.005 secs (0.004u,0.001s) Chars 2805 - 2817 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2824 [Qed.] 0.003 secs (0.002u,0.s) +Chars 2820 - 2824 [Qed.] 0.001 secs (0.001u,0.s) Chars 2828 - 2889 [#[global]~Instance~Bifunctor_F...] 0. secs (0.u,0.s) Chars 2892 - 2898 [Proof.] 0. secs (0.u,0.s) Chars 2903 - 2915 [constructor.] 0. secs (0.u,0.s) @@ -117,27 +117,27 @@ Chars 2952 - 2976 [exact~BimapCat_Fun_prod.] 0. secs (0.u,0.s) Chars 2981 - 2982 [-] 0. secs (0.u,0.s) Chars 2983 - 3010 [exact~BimapProper_Fun_prod.] 0. secs (0.u,0.s) Chars 3013 - 3017 [Qed.] 0. secs (0.u,0.s) -Chars 3021 - 3073 [#[global]~Instance~Product_Fun...] 0. secs (0.u,0.s) +Chars 3021 - 3073 [#[global]~Instance~Product_Fun...] 0.016 secs (0.015u,0.001s) Chars 3076 - 3082 [Proof.] 0. secs (0.u,0.s) -Chars 3087 - 3118 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 3087 - 3118 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 3121 - 3125 [Qed.] 0. secs (0.u,0.s) Chars 3131 - 3144 [End~Products.] 0. secs (0.u,0.s) Chars 3146 - 3171 [Section~CartesianClosure.] 0. secs (0.u,0.s) Chars 3175 - 3237 [#[global]~Instance~CurryApply_...] 0. secs (0.u,0.s) Chars 3240 - 3246 [Proof.] 0. secs (0.u,0.s) -Chars 3251 - 3255 [(red).] 0. secs (0.u,0.s) -Chars 3256 - 3269 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 3270 - 3282 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 3283 - 3322 [(unfold~curry_,~Curry_Fun,~cat...] 0. secs (0.u,0.s) +Chars 3251 - 3255 [red.] 0. secs (0.u,0.s) +Chars 3256 - 3269 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3270 - 3282 [destruct~a0.] 0. secs (0.u,0.s) +Chars 3283 - 3322 [unfold~curry_,~Curry_Fun,~cat,...] 0. secs (0.u,0.s) Chars 3323 - 3335 [reflexivity.] 0. secs (0.u,0.s) Chars 3338 - 3342 [Qed.] 0. secs (0.u,0.s) Chars 3415 - 3492 [#[global]~Instance~CartesianCl...] 0. secs (0.u,0.s) Chars 3495 - 3501 [Proof.] 0. secs (0.u,0.s) -Chars 3506 - 3541 [(constructor;~try~typeclasses~...] 0.033 secs (0.028u,0.004s) -Chars 3546 - 3559 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 3560 - 3585 [(unfold~curry_,~Curry_Fun).] 0. secs (0.u,0.s) -Chars 3586 - 3618 [(apply~functional_extensionali...] 0. secs (0.u,0.s) -Chars 3623 - 3630 [(intros).] 0. secs (0.u,0.s) -Chars 3631 - 3639 [(apply~H).] 0. secs (0.u,0.s) +Chars 3506 - 3541 [constructor;~try~typeclasses~e...] 0.003 secs (0.003u,0.s) +Chars 3546 - 3559 [repeat~intro.] 0. secs (0.u,0.s) +Chars 3560 - 3585 [unfold~curry_,~Curry_Fun.] 0. secs (0.u,0.s) +Chars 3586 - 3618 [apply~functional_extensionality.] 0. secs (0.u,0.s) +Chars 3623 - 3630 [intros.] 0. secs (0.u,0.s) +Chars 3631 - 3639 [apply~H.] 0. secs (0.u,0.s) Chars 3642 - 3646 [Qed.] 0. secs (0.u,0.s) Chars 3647 - 3668 [End~CartesianClosure.] 0. secs (0.u,0.s) diff --git a/theories/Basics/HeterogeneousRelations.v.timing b/theories/Basics/HeterogeneousRelations.v.timing index 34c89fe2..f06414ba 100644 --- a/theories/Basics/HeterogeneousRelations.v.timing +++ b/theories/Basics/HeterogeneousRelations.v.timing @@ -1,5 +1,5 @@ -Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.008 secs (0.005u,0.002s) -Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.033 secs (0.026u,0.007s) +Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) +Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.022 secs (0.017u,0.004s) Chars 157 - 201 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) Chars 405 - 458 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) Chars 460 - 512 [Definition~relationH~(A~B~:~Ty...] 0. secs (0.u,0.s) @@ -17,8 +17,8 @@ Chars 1534 - 1629 [#[global]~Instance~Conj_unary~...] 0. secs (0.u,0.s) Chars 1633 - 1681 [Class~Disj~(T~:~Type)~:=~~~~~d...] 0. secs (0.u,0.s) Chars 1685 - 1798 [#[global]~Instance~Disj_binary...] 0. secs (0.u,0.s) Chars 1802 - 1897 [#[global]~Instance~Disj_unary~...] 0. secs (0.u,0.s) -Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) -Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0.001 secs (0.u,0.s) +Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) +Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) Chars 2536 - 2561 [End~RelationH_Operations.] 0. secs (0.u,0.s) Chars 2563 - 2606 [#[global]~Hint~Constructors~pr...] 0. secs (0.u,0.s) Chars 2607 - 2649 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) @@ -44,20 +44,20 @@ Chars 3550 - 3624 [Infix~"∪"~:=~disj_rel~(~at~lev...] 0. secs (0.u,0.s) Chars 3628 - 3706 [Infix~"⊑"~:=~subrelationH~(~at...] 0. secs (0.u,0.s) Chars 3709 - 3795 [Notation~"†~R"~:=~(transpose~R...] 0. secs (0.u,0.s) Chars 3799 - 3871 [Infix~"≡"~:=~eq_rel~(~at~level...] 0. secs (0.u,0.s) -Chars 3873 - 3890 [End~RelNotations.] 0. secs (0.u,0.s) +Chars 3873 - 3890 [End~RelNotations.] 0.001 secs (0.u,0.s) Chars 3892 - 3912 [Import~RelNotations.] 0. secs (0.u,0.s) Chars 3913 - 3949 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) Chars 3951 - 4029 [Definition~relationH_of_Type~(...] 0. secs (0.u,0.s) Chars 4031 - 4135 [#[global]~Instance~Proper_rela...] 0. secs (0.u,0.s) Chars 4136 - 4142 [Proof.] 0. secs (0.u,0.s) -Chars 4145 - 4158 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 4161 - 4172 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4175 - 4189 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4145 - 4158 [repeat~intro.] 0. secs (0.u,0.s) +Chars 4161 - 4172 [repeat~red.] 0. secs (0.u,0.s) +Chars 4175 - 4189 [split;~intros.] 0. secs (0.u,0.s) Chars 4192 - 4193 [-] 0. secs (0.u,0.s) -Chars 4194 - 4213 [(rewrite~<-~H,~<-~H0).] 0. secs (0.u,0.s) +Chars 4194 - 4213 [rewrite~<-~H,~<-~H0.] 0. secs (0.u,0.s) Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) Chars 4222 - 4223 [-] 0. secs (0.u,0.s) -Chars 4224 - 4238 [(rewrite~H,~H0).] 0. secs (0.u,0.s) +Chars 4224 - 4238 [rewrite~H,~H0.] 0. secs (0.u,0.s) Chars 4239 - 4244 [auto.] 0. secs (0.u,0.s) Chars 4245 - 4249 [Qed.] 0. secs (0.u,0.s) Chars 4334 - 4425 [Class~ReflexiveH~{A~:~Type}~(R...] 0. secs (0.u,0.s) @@ -75,280 +75,280 @@ Chars 5242 - 5281 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 5282 - 5322 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 5324 - 5401 [#[global]~Instance~relationH_r...] 0. secs (0.u,0.s) Chars 5402 - 5408 [Proof.] 0. secs (0.u,0.s) -Chars 5411 - 5424 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5411 - 5424 [repeat~intro.] 0. secs (0.u,0.s) Chars 5427 - 5439 [reflexivity.] 0. secs (0.u,0.s) Chars 5440 - 5448 [Defined.] 0. secs (0.u,0.s) Chars 5450 - 5527 [#[global]~Instance~relationH_s...] 0. secs (0.u,0.s) Chars 5528 - 5534 [Proof.] 0. secs (0.u,0.s) -Chars 5537 - 5550 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5551 - 5561 [(cbn;~auto).] 0.007 secs (0.u,0.s) +Chars 5537 - 5550 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5551 - 5561 [cbn;~auto.] 0. secs (0.u,0.s) Chars 5562 - 5570 [Defined.] 0. secs (0.u,0.s) Chars 5572 - 5651 [#[global]~Instance~relationH_t...] 0. secs (0.u,0.s) Chars 5652 - 5658 [Proof.] 0. secs (0.u,0.s) -Chars 5661 - 5674 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5675 - 5684 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 5661 - 5674 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5675 - 5684 [cbn~in~*.] 0. secs (0.u,0.s) Chars 5685 - 5699 [etransitivity.] 0. secs (0.u,0.s) -Chars 5702 - 5710 [(apply~H).] 0. secs (0.u,0.s) -Chars 5711 - 5720 [(apply~H0).] 0. secs (0.u,0.s) +Chars 5702 - 5710 [apply~H.] 0. secs (0.u,0.s) +Chars 5711 - 5720 [apply~H0.] 0. secs (0.u,0.s) Chars 5721 - 5729 [Defined.] 0. secs (0.u,0.s) Chars 5731 - 5789 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) Chars 5790 - 5796 [Proof.] 0. secs (0.u,0.s) -Chars 5799 - 5830 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 5799 - 5830 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 5831 - 5839 [Defined.] 0. secs (0.u,0.s) Chars 5841 - 5909 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) Chars 5910 - 5916 [Proof.] 0. secs (0.u,0.s) -Chars 5919 - 5950 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 5919 - 5950 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 5951 - 5959 [Defined.] 0. secs (0.u,0.s) Chars 5961 - 6030 [#[global]~Instance~relationH_E...] 0. secs (0.u,0.s) Chars 6031 - 6037 [Proof.] 0. secs (0.u,0.s) -Chars 6040 - 6071 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 6040 - 6071 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 6072 - 6080 [Defined.] 0. secs (0.u,0.s) Chars 6082 - 6172 [Lemma~ReflexiveH_Reflexive~{A~...] 0. secs (0.u,0.s) Chars 6173 - 6179 [Proof.] 0. secs (0.u,0.s) -Chars 6182 - 6196 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6182 - 6196 [split;~intros.] 0. secs (0.u,0.s) Chars 6199 - 6200 [-] 0. secs (0.u,0.s) -Chars 6201 - 6205 [(red).] 0. secs (0.u,0.s) -Chars 6206 - 6214 [(apply~H).] 0. secs (0.u,0.s) +Chars 6201 - 6205 [red.] 0. secs (0.u,0.s) +Chars 6206 - 6214 [apply~H.] 0. secs (0.u,0.s) Chars 6217 - 6218 [-] 0. secs (0.u,0.s) -Chars 6219 - 6227 [(apply~H).] 0. secs (0.u,0.s) +Chars 6219 - 6227 [apply~H.] 0. secs (0.u,0.s) Chars 6228 - 6232 [Qed.] 0. secs (0.u,0.s) Chars 6234 - 6324 [Lemma~SymmetricH_Symmetric~{A~...] 0. secs (0.u,0.s) Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) -Chars 6334 - 6348 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6334 - 6348 [split;~intros.] 0. secs (0.u,0.s) Chars 6351 - 6352 [-] 0. secs (0.u,0.s) -Chars 6353 - 6357 [(red).] 0. secs (0.u,0.s) -Chars 6358 - 6381 [(unfold~SymmetricH~in~H).] 0. secs (0.u,0.s) -Chars 6382 - 6389 [(intros).] 0. secs (0.u,0.s) +Chars 6353 - 6357 [red.] 0. secs (0.u,0.s) +Chars 6358 - 6381 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) +Chars 6382 - 6389 [intros.] 0. secs (0.u,0.s) Chars 6390 - 6409 [specialize~(H~x~y).] 0. secs (0.u,0.s) -Chars 6410 - 6419 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 6424 - 6432 [(apply~H).] 0. secs (0.u,0.s) +Chars 6410 - 6419 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 6424 - 6432 [apply~H.] 0. secs (0.u,0.s) Chars 6433 - 6444 [assumption.] 0. secs (0.u,0.s) Chars 6447 - 6448 [-] 0. secs (0.u,0.s) -Chars 6449 - 6453 [(red).] 0. secs (0.u,0.s) -Chars 6454 - 6466 [(intros~p~HP).] 0. secs (0.u,0.s) -Chars 6467 - 6476 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 6477 - 6485 [(apply~H).] 0. secs (0.u,0.s) -Chars 6486 - 6490 [Qed.] 0. secs (0.u,0.s) +Chars 6449 - 6453 [red.] 0. secs (0.u,0.s) +Chars 6454 - 6466 [intros~p~HP.] 0. secs (0.u,0.s) +Chars 6467 - 6476 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 6477 - 6485 [apply~H.] 0. secs (0.u,0.s) +Chars 6486 - 6490 [Qed.] 0.011 secs (0.01u,0.s) Chars 6492 - 6586 [Lemma~TransitiveH_Transitive~{...] 0. secs (0.u,0.s) Chars 6587 - 6593 [Proof.] 0. secs (0.u,0.s) -Chars 6596 - 6610 [(split;~intros).] 0. secs (0.u,0.s) +Chars 6596 - 6610 [split;~intros.] 0. secs (0.u,0.s) Chars 6613 - 6614 [-] 0. secs (0.u,0.s) -Chars 6615 - 6619 [(red).] 0. secs (0.u,0.s) -Chars 6620 - 6639 [(intros~x~y~z~H0~H1).] 0. secs (0.u,0.s) -Chars 6640 - 6664 [(unfold~TransitiveH~in~H).] 0. secs (0.u,0.s) -Chars 6665 - 6681 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 6615 - 6619 [red.] 0. secs (0.u,0.s) +Chars 6620 - 6639 [intros~x~y~z~H0~H1.] 0. secs (0.u,0.s) +Chars 6640 - 6664 [unfold~TransitiveH~in~H.] 0. secs (0.u,0.s) +Chars 6665 - 6681 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 6684 - 6685 [-] 0. secs (0.u,0.s) -Chars 6686 - 6690 [(red).] 0. secs (0.u,0.s) -Chars 6691 - 6711 [(intros~p~q~HP~HQ~EQ).] 0. secs (0.u,0.s) -Chars 6716 - 6739 [(unfold~Transitive~in~H).] 0. secs (0.u,0.s) -Chars 6740 - 6750 [(cbn~in~EQ).] 0. secs (0.u,0.s) -Chars 6755 - 6771 [(eapply~H;~eauto).] 0. secs (0.u,0.s) +Chars 6686 - 6690 [red.] 0. secs (0.u,0.s) +Chars 6691 - 6711 [intros~p~q~HP~HQ~EQ.] 0. secs (0.u,0.s) +Chars 6716 - 6739 [unfold~Transitive~in~H.] 0. secs (0.u,0.s) +Chars 6740 - 6750 [cbn~in~EQ.] 0. secs (0.u,0.s) +Chars 6755 - 6771 [eapply~H;~eauto.] 0. secs (0.u,0.s) Chars 6772 - 6776 [Qed.] 0. secs (0.u,0.s) Chars 6802 - 6823 [Section~SubRelationH.] 0. secs (0.u,0.s) Chars 7061 - 7130 [Lemma~subrelationH_Reflexive~{...] 0. secs (0.u,0.s) Chars 7133 - 7139 [Proof.] 0. secs (0.u,0.s) -Chars 7144 - 7158 [(intros~!;~auto).] 0. secs (0.u,0.s) +Chars 7144 - 7158 [intros~!;~auto.] 0. secs (0.u,0.s) Chars 7161 - 7165 [Qed.] 0. secs (0.u,0.s) Chars 7169 - 7260 [Lemma~subrelationH_antisym~{A~...] 0. secs (0.u,0.s) Chars 7263 - 7269 [Proof.] 0. secs (0.u,0.s) -Chars 7274 - 7286 [(split;~auto).] 0. secs (0.u,0.s) +Chars 7274 - 7286 [split;~auto.] 0. secs (0.u,0.s) Chars 7289 - 7293 [Qed.] 0. secs (0.u,0.s) -Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0.023 secs (0.017u,0.006s) +Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0. secs (0.u,0.s) Chars 7401 - 7407 [Proof.] 0. secs (0.u,0.s) -Chars 7412 - 7426 [(intros~!;~auto).] 0. secs (0.u,0.s) +Chars 7412 - 7426 [intros~!;~auto.] 0. secs (0.u,0.s) Chars 7429 - 7433 [Qed.] 0. secs (0.u,0.s) Chars 7437 - 7525 [Lemma~subrelationH_refl_eq~{A~...] 0. secs (0.u,0.s) Chars 7528 - 7534 [Proof.] 0. secs (0.u,0.s) Chars 7539 - 7547 [intros~!.] 0. secs (0.u,0.s) -Chars 7552 - 7563 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 7564 - 7568 [(cbn).] 0. secs (0.u,0.s) -Chars 7569 - 7577 [(apply~H).] 0. secs (0.u,0.s) +Chars 7552 - 7563 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 7564 - 7568 [cbn.] 0. secs (0.u,0.s) +Chars 7569 - 7577 [apply~H.] 0. secs (0.u,0.s) Chars 7580 - 7584 [Qed.] 0. secs (0.u,0.s) Chars 7587 - 7604 [End~SubRelationH.] 0. secs (0.u,0.s) Chars 7606 - 7628 [Section~RelationEqRel.] 0. secs (0.u,0.s) Chars 7676 - 7746 [#[global]~Instance~eq_rel_Refl...] 0. secs (0.u,0.s) Chars 7749 - 7755 [Proof.] 0. secs (0.u,0.s) -Chars 7760 - 7764 [(red).] 0. secs (0.u,0.s) -Chars 7765 - 7809 [(unfold~eq_rel,~subrelationH,~...] 0. secs (0.u,0.s) +Chars 7760 - 7764 [red.] 0. secs (0.u,0.s) +Chars 7765 - 7809 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) Chars 7810 - 7816 [tauto.] 0. secs (0.u,0.s) Chars 7819 - 7823 [Qed.] 0. secs (0.u,0.s) Chars 7827 - 7897 [#[global]~Instance~eq_rel_Symm...] 0. secs (0.u,0.s) Chars 7900 - 7906 [Proof.] 0. secs (0.u,0.s) -Chars 7911 - 7915 [(red).] 0. secs (0.u,0.s) -Chars 7916 - 7960 [(unfold~eq_rel,~subrelationH,~...] 0. secs (0.u,0.s) +Chars 7911 - 7915 [red.] 0. secs (0.u,0.s) +Chars 7916 - 7960 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) Chars 7961 - 7967 [tauto.] 0. secs (0.u,0.s) Chars 7970 - 7974 [Qed.] 0. secs (0.u,0.s) Chars 7978 - 8050 [#[global]~Instance~eq_rel_Tran...] 0. secs (0.u,0.s) Chars 8053 - 8059 [Proof.] 0. secs (0.u,0.s) -Chars 8064 - 8068 [(red).] 0. secs (0.u,0.s) -Chars 8069 - 8113 [(unfold~eq_rel,~subrelationH,~...] 0. secs (0.u,0.s) -Chars 8114 - 8121 [(intros).] 0. secs (0.u,0.s) -Chars 8126 - 8141 [(destruct~H,~H0).] 0. secs (0.u,0.s) -Chars 8142 - 8155 [(split;~eauto).] 0. secs (0.u,0.s) +Chars 8064 - 8068 [red.] 0. secs (0.u,0.s) +Chars 8069 - 8113 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) +Chars 8114 - 8121 [intros.] 0. secs (0.u,0.s) +Chars 8126 - 8141 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 8142 - 8155 [split;~eauto.] 0. secs (0.u,0.s) Chars 8158 - 8162 [Qed.] 0. secs (0.u,0.s) Chars 8166 - 8234 [#[global]~Instance~eq_rel_Equi...] 0. secs (0.u,0.s) Chars 8237 - 8243 [Proof.] 0. secs (0.u,0.s) -Chars 8248 - 8273 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 8248 - 8273 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 8276 - 8280 [Qed.] 0. secs (0.u,0.s) Chars 8398 - 8490 [#[global]~Instance~eq_rel_Prop...] 0. secs (0.u,0.s) Chars 8493 - 8499 [Proof.] 0. secs (0.u,0.s) -Chars 8504 - 8527 [(intros~?~?~EQ1~?~?~EQ2).] 0. secs (0.u,0.s) -Chars 8532 - 8561 [(rewrite~EQ1,~EQ2;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 8504 - 8527 [intros~?~?~EQ1~?~?~EQ2.] 0. secs (0.u,0.s) +Chars 8532 - 8561 [rewrite~EQ1,~EQ2;~reflexivity.] 0.001 secs (0.001u,0.s) Chars 8564 - 8568 [Qed.] 0. secs (0.u,0.s) Chars 9006 - 9024 [End~RelationEqRel.] 0. secs (0.u,0.s) Chars 9026 - 9050 [Section~RelationCompose.] 0. secs (0.u,0.s) Chars 9085 - 9167 [Lemma~eq_id_r~:~forall~{A~B~:~...] 0. secs (0.u,0.s) Chars 9170 - 9176 [Proof.] 0. secs (0.u,0.s) -Chars 9181 - 9196 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 9181 - 9196 [split;~intros~!.] 0. secs (0.u,0.s) Chars 9201 - 9202 [-] 0. secs (0.u,0.s) -Chars 9203 - 9212 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 9213 - 9241 [(destruct~H~as~(b,~(HR,~EQ))).] 0. secs (0.u,0.s) -Chars 9248 - 9262 [(rewrite~<-~EQ).] 0. secs (0.u,0.s) +Chars 9203 - 9212 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9213 - 9241 [destruct~H~as~(b,~(HR,~EQ)).] 0. secs (0.u,0.s) +Chars 9248 - 9262 [rewrite~<-~EQ.] 0. secs (0.u,0.s) Chars 9263 - 9274 [assumption.] 0. secs (0.u,0.s) Chars 9279 - 9280 [-] 0. secs (0.u,0.s) -Chars 9281 - 9285 [(cbn).] 0. secs (0.u,0.s) +Chars 9281 - 9285 [cbn.] 0. secs (0.u,0.s) Chars 9286 - 9295 [exists~y.] 0. secs (0.u,0.s) -Chars 9296 - 9308 [(split;~auto).] 0. secs (0.u,0.s) +Chars 9296 - 9308 [split;~auto.] 0. secs (0.u,0.s) Chars 9311 - 9315 [Qed.] 0. secs (0.u,0.s) Chars 9319 - 9394 [Lemma~eq_id_l~:~forall~{A}~{B}...] 0. secs (0.u,0.s) Chars 9397 - 9403 [Proof.] 0. secs (0.u,0.s) -Chars 9408 - 9423 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 9408 - 9423 [split;~intros~!.] 0. secs (0.u,0.s) Chars 9428 - 9429 [-] 0. secs (0.u,0.s) -Chars 9430 - 9439 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 9440 - 9468 [(destruct~H~as~(b,~(EQ,~HR))).] 0. secs (0.u,0.s) -Chars 9475 - 9486 [(rewrite~EQ).] 0. secs (0.u,0.s) +Chars 9430 - 9439 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 9440 - 9468 [destruct~H~as~(b,~(EQ,~HR)).] 0. secs (0.u,0.s) +Chars 9475 - 9486 [rewrite~EQ.] 0. secs (0.u,0.s) Chars 9487 - 9498 [assumption.] 0. secs (0.u,0.s) Chars 9503 - 9504 [-] 0. secs (0.u,0.s) -Chars 9505 - 9509 [(cbn).] 0. secs (0.u,0.s) +Chars 9505 - 9509 [cbn.] 0. secs (0.u,0.s) Chars 9510 - 9519 [exists~x.] 0. secs (0.u,0.s) -Chars 9520 - 9532 [(split;~auto).] 0. secs (0.u,0.s) +Chars 9520 - 9532 [split;~auto.] 0. secs (0.u,0.s) Chars 9535 - 9539 [Qed.] 0. secs (0.u,0.s) Chars 9579 - 9718 [Lemma~compose_assoc~:~~~forall...] 0. secs (0.u,0.s) Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) -Chars 9732 - 9757 [(split;~intros~!;~cbn~in~*).] 0. secs (0.u,0.s) +Chars 9732 - 9757 [split;~intros~!;~cbn~in~*.] 0. secs (0.u,0.s) Chars 9762 - 9763 [-] 0. secs (0.u,0.s) -Chars 9764 - 9782 [(repeat~destruct~H).] 0. secs (0.u,0.s) -Chars 9783 - 9802 [(repeat~destruct~H0).] 0. secs (0.u,0.s) -Chars 9809 - 9840 [(repeat~(eexists;~split;~eauto)).] 0. secs (0.u,0.s) +Chars 9764 - 9782 [repeat~destruct~H.] 0. secs (0.u,0.s) +Chars 9783 - 9802 [repeat~destruct~H0.] 0. secs (0.u,0.s) +Chars 9809 - 9840 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 9845 - 9846 [-] 0. secs (0.u,0.s) -Chars 9847 - 9865 [(repeat~destruct~H).] 0. secs (0.u,0.s) -Chars 9866 - 9885 [(repeat~destruct~H0).] 0. secs (0.u,0.s) -Chars 9892 - 9923 [(repeat~(eexists;~split;~eauto)).] 0. secs (0.u,0.s) +Chars 9847 - 9865 [repeat~destruct~H.] 0. secs (0.u,0.s) +Chars 9866 - 9885 [repeat~destruct~H0.] 0. secs (0.u,0.s) +Chars 9892 - 9923 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) Chars 9926 - 9930 [Qed.] 0. secs (0.u,0.s) Chars 9935 - 10123 [#[global]~Instance~Proper_comp...] 0. secs (0.u,0.s) Chars 10126 - 10132 [Proof.] 0. secs (0.u,0.s) -Chars 10137 - 10168 [(intros~?~?~?~S~S'~EQS~R~R'~EQR).] 0. secs (0.u,0.s) -Chars 10173 - 10276 [(split;~intros~?~?~EQ;~destruc...] 0.001 secs (0.001u,0.s) +Chars 10137 - 10168 [intros~?~?~?~S~S'~EQS~R~R'~EQR.] 0. secs (0.u,0.s) +Chars 10173 - 10276 [split;~intros~?~?~EQ;~destruct...] 0. secs (0.u,0.s) Chars 10279 - 10283 [Qed.] 0. secs (0.u,0.s) Chars 10285 - 10305 [End~RelationCompose.] 0. secs (0.u,0.s) Chars 10307 - 10330 [Section~TransposeFacts.] 0. secs (0.u,0.s) Chars 10805 - 10900 [Instance~transpose_Reflexive~~...] 0. secs (0.u,0.s) Chars 10903 - 10909 [Proof.] 0. secs (0.u,0.s) -Chars 10914 - 10918 [(red).] 0. secs (0.u,0.s) -Chars 10919 - 10928 [(intros~x).] 0. secs (0.u,0.s) -Chars 10929 - 10938 [(apply~RR).] 0. secs (0.u,0.s) +Chars 10914 - 10918 [red.] 0. secs (0.u,0.s) +Chars 10919 - 10928 [intros~x.] 0. secs (0.u,0.s) +Chars 10929 - 10938 [apply~RR.] 0. secs (0.u,0.s) Chars 10941 - 10945 [Qed.] 0. secs (0.u,0.s) Chars 10949 - 11044 [Instance~transpose_Symmetric~~...] 0. secs (0.u,0.s) Chars 11047 - 11053 [Proof.] 0. secs (0.u,0.s) -Chars 11058 - 11098 [(red;~intros~x;~unfold~transpo...] 0. secs (0.u,0.s) -Chars 11099 - 11132 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 11137 - 11146 [(apply~RS).] 0. secs (0.u,0.s) +Chars 11058 - 11098 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) +Chars 11099 - 11132 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 11137 - 11146 [apply~RS.] 0. secs (0.u,0.s) Chars 11147 - 11158 [assumption.] 0. secs (0.u,0.s) Chars 11161 - 11165 [Qed.] 0. secs (0.u,0.s) Chars 11169 - 11268 [Instance~transpose_Transitive~...] 0. secs (0.u,0.s) Chars 11271 - 11277 [Proof.] 0. secs (0.u,0.s) -Chars 11282 - 11322 [(red;~intros~x;~unfold~transpo...] 0. secs (0.u,0.s) -Chars 11327 - 11362 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) -Chars 11367 - 11392 [(unfold~TransitiveH~in~RT).] 0. secs (0.u,0.s) +Chars 11282 - 11322 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) +Chars 11327 - 11362 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 11367 - 11392 [unfold~TransitiveH~in~RT.] 0. secs (0.u,0.s) Chars 11451 - 11473 [specialize~(RT~z~y~x).] 0. secs (0.u,0.s) -Chars 11474 - 11490 [(apply~RT;~eauto).] 0. secs (0.u,0.s) +Chars 11474 - 11490 [apply~RT;~eauto.] 0. secs (0.u,0.s) Chars 11493 - 11497 [Qed.] 0. secs (0.u,0.s) Chars 11632 - 11691 [Lemma~transpose_eq~{A~:~Type}~...] 0. secs (0.u,0.s) Chars 11694 - 11700 [Proof.] 0. secs (0.u,0.s) -Chars 11705 - 11751 [(split;~unfold~transpose;~intr...] 0. secs (0.u,0.s) +Chars 11705 - 11751 [split;~unfold~transpose;~intro...] 0. secs (0.u,0.s) Chars 11754 - 11758 [Qed.] 0. secs (0.u,0.s) Chars 11762 - 11849 [Lemma~transpose_sym~{A~:~Type}...] 0. secs (0.u,0.s) Chars 11852 - 11858 [Proof.] 0. secs (0.u,0.s) -Chars 11863 - 11906 [(unfold~transpose;~split;~intr...] 0. secs (0.u,0.s) -Chars 11911 - 11944 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 11945 - 11955 [(red~in~RS).] 0. secs (0.u,0.s) -Chars 11960 - 11975 [(apply~(RS~y~x)).] 0. secs (0.u,0.s) +Chars 11863 - 11906 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) +Chars 11911 - 11944 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 11945 - 11955 [red~in~RS.] 0. secs (0.u,0.s) +Chars 11960 - 11975 [apply~(RS~y~x).] 0. secs (0.u,0.s) Chars 11976 - 11987 [assumption.] 0. secs (0.u,0.s) -Chars 11992 - 12025 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 12026 - 12036 [(red~in~RS).] 0. secs (0.u,0.s) -Chars 12041 - 12056 [(apply~(RS~x~y)).] 0. secs (0.u,0.s) +Chars 11992 - 12025 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 12026 - 12036 [red~in~RS.] 0. secs (0.u,0.s) +Chars 12041 - 12056 [apply~(RS~x~y).] 0. secs (0.u,0.s) Chars 12057 - 12068 [assumption.] 0. secs (0.u,0.s) Chars 12071 - 12075 [Qed.] 0. secs (0.u,0.s) Chars 12079 - 12206 [Lemma~transpose_compose~{A~B~C...] 0. secs (0.u,0.s) Chars 12209 - 12215 [Proof.] 0. secs (0.u,0.s) -Chars 12220 - 12268 [(split;~unfold~transpose;~cbn;...] 0. secs (0.u,0.s) +Chars 12220 - 12268 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) Chars 12273 - 12274 [-] 0. secs (0.u,0.s) -Chars 12275 - 12303 [(destruct~H~as~(b,~(HR,~HS))).] 0. secs (0.u,0.s) +Chars 12275 - 12303 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) Chars 12304 - 12313 [exists~b.] 0. secs (0.u,0.s) Chars 12314 - 12320 [tauto.] 0. secs (0.u,0.s) Chars 12325 - 12326 [-] 0. secs (0.u,0.s) -Chars 12327 - 12355 [(destruct~H~as~(b,~(HR,~HS))).] 0. secs (0.u,0.s) +Chars 12327 - 12355 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) Chars 12356 - 12365 [exists~b.] 0. secs (0.u,0.s) Chars 12366 - 12372 [tauto.] 0. secs (0.u,0.s) Chars 12375 - 12379 [Qed.] 0. secs (0.u,0.s) Chars 12383 - 12484 [#[global]~Instance~Proper_tran...] 0. secs (0.u,0.s) Chars 12487 - 12493 [Proof.] 0. secs (0.u,0.s) -Chars 12498 - 12562 [(intros~?~?~EQ;~split;~unfold~...] 0. secs (0.u,0.s) +Chars 12498 - 12562 [intros~?~?~EQ;~split;~unfold~t...] 0. secs (0.u,0.s) Chars 12565 - 12569 [Qed.] 0. secs (0.u,0.s) Chars 12647 - 12732 [Lemma~transpose_involution~:~f...] 0. secs (0.u,0.s) Chars 12735 - 12741 [Proof.] 0. secs (0.u,0.s) -Chars 12746 - 12759 [(intros~A~B~R).] 0. secs (0.u,0.s) +Chars 12746 - 12759 [intros~A~B~R.] 0. secs (0.u,0.s) Chars 12764 - 12770 [split.] 0. secs (0.u,0.s) Chars 12775 - 12776 [-] 0. secs (0.u,0.s) -Chars 12777 - 12813 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) -Chars 12814 - 12831 [(unfold~transpose).] 0. secs (0.u,0.s) +Chars 12777 - 12813 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) +Chars 12814 - 12831 [unfold~transpose.] 0. secs (0.u,0.s) Chars 12832 - 12838 [tauto.] 0. secs (0.u,0.s) Chars 12843 - 12844 [-] 0. secs (0.u,0.s) -Chars 12845 - 12892 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) +Chars 12845 - 12892 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) Chars 12893 - 12899 [tauto.] 0. secs (0.u,0.s) Chars 12902 - 12906 [Qed.] 0. secs (0.u,0.s) Chars 12910 - 13034 [Lemma~transpose_inclusion~:~~~...] 0. secs (0.u,0.s) Chars 13037 - 13043 [Proof.] 0. secs (0.u,0.s) -Chars 13048 - 13065 [(intros~A~B~R1~R2).] 0. secs (0.u,0.s) +Chars 13048 - 13065 [intros~A~B~R1~R2.] 0. secs (0.u,0.s) Chars 13070 - 13076 [split.] 0. secs (0.u,0.s) Chars 13081 - 13082 [-] 0. secs (0.u,0.s) -Chars 13083 - 13093 [(intros~HS).] 0. secs (0.u,0.s) -Chars 13100 - 13152 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) +Chars 13083 - 13093 [intros~HS.] 0. secs (0.u,0.s) +Chars 13100 - 13152 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) Chars 13153 - 13159 [eauto.] 0. secs (0.u,0.s) Chars 13164 - 13165 [-] 0. secs (0.u,0.s) -Chars 13166 - 13176 [(intros~HS).] 0. secs (0.u,0.s) -Chars 13183 - 13235 [(unfold~subrelationH,~SubRelH_...] 0. secs (0.u,0.s) +Chars 13166 - 13176 [intros~HS.] 0. secs (0.u,0.s) +Chars 13183 - 13235 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) Chars 13236 - 13242 [eauto.] 0. secs (0.u,0.s) Chars 13245 - 13249 [Qed.] 0. secs (0.u,0.s) Chars 13253 - 13353 [#[global]~Instance~transpose_P...] 0. secs (0.u,0.s) Chars 13356 - 13362 [Proof.] 0. secs (0.u,0.s) -Chars 13367 - 13396 [(intros~A~B~R1~R2~(Hab,~Hba)).] 0. secs (0.u,0.s) +Chars 13367 - 13396 [intros~A~B~R1~R2~(Hab,~Hba).] 0. secs (0.u,0.s) Chars 13401 - 13407 [split.] 0. secs (0.u,0.s) Chars 13412 - 13413 [-] 0. secs (0.u,0.s) -Chars 13414 - 13447 [(apply~transpose_inclusion~in~...] 0. secs (0.u,0.s) +Chars 13414 - 13447 [apply~transpose_inclusion~in~Hab.] 0. secs (0.u,0.s) Chars 13448 - 13459 [assumption.] 0. secs (0.u,0.s) Chars 13464 - 13465 [-] 0. secs (0.u,0.s) -Chars 13466 - 13499 [(apply~transpose_inclusion~in~...] 0. secs (0.u,0.s) +Chars 13466 - 13499 [apply~transpose_inclusion~in~Hba.] 0. secs (0.u,0.s) Chars 13500 - 13511 [assumption.] 0. secs (0.u,0.s) Chars 13514 - 13518 [Qed.] 0. secs (0.u,0.s) Chars 13583 - 13670 [Lemma~transpose_sym_eq_rel~{A}...] 0. secs (0.u,0.s) Chars 13673 - 13679 [Proof.] 0. secs (0.u,0.s) -Chars 13684 - 13727 [(unfold~transpose;~split;~intr...] 0. secs (0.u,0.s) +Chars 13684 - 13727 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) Chars 13732 - 13733 [-] 0. secs (0.u,0.s) -Chars 13734 - 13767 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 13768 - 13792 [(unfold~SymmetricH~in~RS).] 0. secs (0.u,0.s) -Chars 13793 - 13808 [(apply~(RS~y~x)).] 0. secs (0.u,0.s) +Chars 13734 - 13767 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 13768 - 13792 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) +Chars 13793 - 13808 [apply~(RS~y~x).] 0. secs (0.u,0.s) Chars 13809 - 13820 [assumption.] 0. secs (0.u,0.s) Chars 13825 - 13826 [-] 0. secs (0.u,0.s) -Chars 13827 - 13860 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 13861 - 13885 [(unfold~SymmetricH~in~RS).] 0. secs (0.u,0.s) -Chars 13886 - 13901 [(apply~(RS~x~y)).] 0. secs (0.u,0.s) +Chars 13827 - 13860 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 13861 - 13885 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) +Chars 13886 - 13901 [apply~(RS~x~y).] 0. secs (0.u,0.s) Chars 13902 - 13913 [assumption.] 0. secs (0.u,0.s) Chars 13916 - 13920 [Qed.] 0. secs (0.u,0.s) Chars 13956 - 14048 [Lemma~transpose_monotone~{A}~{...] 0. secs (0.u,0.s) Chars 14051 - 14057 [Proof.] 0. secs (0.u,0.s) -Chars 14062 - 14088 [(unfold~transpose;~intros~!).] 0. secs (0.u,0.s) -Chars 14093 - 14101 [(apply~H).] 0. secs (0.u,0.s) +Chars 14062 - 14088 [unfold~transpose;~intros~!.] 0. secs (0.u,0.s) +Chars 14093 - 14101 [apply~H.] 0. secs (0.u,0.s) Chars 14102 - 14107 [auto.] 0. secs (0.u,0.s) Chars 14110 - 14114 [Qed.] 0. secs (0.u,0.s) Chars 14116 - 14135 [End~TransposeFacts.] 0. secs (0.u,0.s) @@ -359,139 +359,139 @@ Chars 14325 - 14354 [Context~(RR~:~relationH~R~R).] 0. secs (0.u,0.s) Chars 14359 - 14388 [Context~(SS~:~relationH~S~S).] 0. secs (0.u,0.s) Chars 14394 - 14491 [#[global]~Instance~prod_rel_re...] 0. secs (0.u,0.s) Chars 14496 - 14502 [Proof.] 0. secs (0.u,0.s) -Chars 14509 - 14519 [(intros~[]).] 0. secs (0.u,0.s) -Chars 14520 - 14552 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) -Chars 14553 - 14586 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) -Chars 14593 - 14597 [(cbn).] 0. secs (0.u,0.s) +Chars 14509 - 14519 [intros~[].] 0. secs (0.u,0.s) +Chars 14520 - 14552 [apply~ReflexiveH_Reflexive~in~H.] 0. secs (0.u,0.s) +Chars 14553 - 14586 [apply~ReflexiveH_Reflexive~in~H0.] 0. secs (0.u,0.s) +Chars 14593 - 14597 [cbn.] 0. secs (0.u,0.s) Chars 14598 - 14604 [split.] 0. secs (0.u,0.s) -Chars 14605 - 14613 [(apply~H).] 0. secs (0.u,0.s) -Chars 14614 - 14623 [(apply~H0).] 0. secs (0.u,0.s) +Chars 14605 - 14613 [apply~H.] 0. secs (0.u,0.s) +Chars 14614 - 14623 [apply~H0.] 0. secs (0.u,0.s) Chars 14628 - 14632 [Qed.] 0. secs (0.u,0.s) Chars 14638 - 14735 [#[global]~Instance~prod_rel_sy...] 0. secs (0.u,0.s) Chars 14740 - 14746 [Proof.] 0. secs (0.u,0.s) -Chars 14753 - 14766 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 14767 - 14799 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 14800 - 14833 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 14840 - 14873 [(destruct~x;~destruct~y;~cbn~i...] 0. secs (0.u,0.s) -Chars 14874 - 14886 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 14753 - 14766 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 14767 - 14799 [apply~SymmetricH_Symmetric~in~H.] 0. secs (0.u,0.s) +Chars 14800 - 14833 [apply~SymmetricH_Symmetric~in~H0.] 0. secs (0.u,0.s) +Chars 14840 - 14873 [destruct~x;~destruct~y;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 14874 - 14886 [destruct~H1.] 0. secs (0.u,0.s) Chars 14887 - 14893 [split.] 0. secs (0.u,0.s) Chars 14900 - 14901 [-] 0. secs (0.u,0.s) -Chars 14902 - 14925 [(unfold~SymmetricH~in~H).] 0. secs (0.u,0.s) -Chars 14926 - 14934 [(apply~H).] 0. secs (0.u,0.s) -Chars 14935 - 14940 [auto.] 0. secs (0.u,0.s) +Chars 14902 - 14925 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) +Chars 14926 - 14934 [apply~H.] 0. secs (0.u,0.s) +Chars 14935 - 14940 [auto.] 0.021 secs (0.02u,0.s) Chars 14947 - 14948 [-] 0. secs (0.u,0.s) -Chars 14949 - 14973 [(unfold~SymmetricH~in~H0).] 0. secs (0.u,0.s) -Chars 14974 - 14983 [(apply~H0).] 0. secs (0.u,0.s) +Chars 14949 - 14973 [unfold~SymmetricH~in~H0.] 0. secs (0.u,0.s) +Chars 14974 - 14983 [apply~H0.] 0. secs (0.u,0.s) Chars 14984 - 14989 [auto.] 0. secs (0.u,0.s) Chars 14994 - 14998 [Qed.] 0. secs (0.u,0.s) Chars 15004 - 15106 [#[global]~Instance~prod_rel_tr...] 0. secs (0.u,0.s) Chars 15111 - 15117 [Proof.] 0. secs (0.u,0.s) Chars 15124 - 15132 [intros~!.] 0. secs (0.u,0.s) -Chars 15139 - 15173 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) -Chars 15174 - 15209 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) -Chars 15216 - 15240 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) -Chars 15247 - 15309 [(inversion~H1;~inversion~H2;~s...] 0.03 secs (0.029u,0.001s) +Chars 15139 - 15173 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 15174 - 15209 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 15216 - 15240 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) +Chars 15247 - 15309 [inversion~H1;~inversion~H2;~su...] 0. secs (0.u,0.s) Chars 15314 - 15318 [Qed.] 0. secs (0.u,0.s) Chars 15324 - 15426 [#[global]~Instance~prod_rel_eq...] 0. secs (0.u,0.s) Chars 15431 - 15437 [Proof.] 0. secs (0.u,0.s) -Chars 15444 - 15475 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 15444 - 15475 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 15480 - 15484 [Qed.] 0. secs (0.u,0.s) Chars 15490 - 15571 [#[global]~Instance~prod_rel_PE...] 0. secs (0.u,0.s) Chars 15576 - 15582 [Proof.] 0. secs (0.u,0.s) Chars 15589 - 15601 [constructor.] 0. secs (0.u,0.s) Chars 15608 - 15609 [-] 0. secs (0.u,0.s) -Chars 15610 - 15625 [(destruct~H,~H0).] 0. secs (0.u,0.s) -Chars 15634 - 15662 [(eapply~SymmetricH_Symmetric).] 0. secs (0.u,0.s) -Chars 15671 - 15737 [(eapply~@prod_rel_sym;~[~eappl...] 0. secs (0.u,0.s) -Chars 15746 - 15781 [(eapply~SymmetricH_Symmetric;~...] 0. secs (0.u,0.s) +Chars 15610 - 15625 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 15634 - 15662 [eapply~SymmetricH_Symmetric.] 0. secs (0.u,0.s) +Chars 15671 - 15737 [eapply~@prod_rel_sym;~[~eapply...] 0. secs (0.u,0.s) +Chars 15746 - 15781 [eapply~SymmetricH_Symmetric;~e...] 0. secs (0.u,0.s) Chars 15788 - 15789 [-] 0. secs (0.u,0.s) -Chars 15790 - 15820 [(eapply~TransitiveH_Transitive).] 0. secs (0.u,0.s) -Chars 15829 - 15852 [(eapply~@prod_rel_trans).] 0. secs (0.u,0.s) +Chars 15790 - 15820 [eapply~TransitiveH_Transitive.] 0. secs (0.u,0.s) +Chars 15829 - 15852 [eapply~@prod_rel_trans.] 0. secs (0.u,0.s) Chars 15861 - 15862 [+] 0. secs (0.u,0.s) -Chars 15863 - 15878 [(destruct~H,~H0).] 0. secs (0.u,0.s) -Chars 15889 - 15926 [(eapply~TransitiveH_Transitive...] 0. secs (0.u,0.s) +Chars 15863 - 15878 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 15889 - 15926 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) Chars 15935 - 15936 [+] 0. secs (0.u,0.s) -Chars 15937 - 15952 [(destruct~H,~H0).] 0. secs (0.u,0.s) -Chars 15963 - 16000 [(eapply~TransitiveH_Transitive...] 0. secs (0.u,0.s) +Chars 15937 - 15952 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 15963 - 16000 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) Chars 16005 - 16009 [Qed.] 0. secs (0.u,0.s) Chars 16013 - 16029 [End~Equivalence.] 0. secs (0.u,0.s) Chars 16083 - 16235 [Lemma~prod_rel_monotone~{A~B~C...] 0. secs (0.u,0.s) Chars 16238 - 16244 [Proof.] 0. secs (0.u,0.s) Chars 16249 - 16257 [intros~!.] 0. secs (0.u,0.s) -Chars 16258 - 16272 [(destruct~x,~y).] 0. secs (0.u,0.s) -Chars 16273 - 16284 [(repeat~red).] 0. secs (0.u,0.s) -Chars 16285 - 16302 [(repeat~red~in~H1).] 0. secs (0.u,0.s) -Chars 16303 - 16315 [(destruct~H1).] 0. secs (0.u,0.s) +Chars 16258 - 16272 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 16273 - 16284 [repeat~red.] 0. secs (0.u,0.s) +Chars 16285 - 16302 [repeat~red~in~H1.] 0. secs (0.u,0.s) +Chars 16303 - 16315 [destruct~H1.] 0. secs (0.u,0.s) Chars 16320 - 16326 [split.] 0. secs (0.u,0.s) Chars 16331 - 16332 [-] 0. secs (0.u,0.s) -Chars 16333 - 16341 [(apply~H).] 0. secs (0.u,0.s) +Chars 16333 - 16341 [apply~H.] 0. secs (0.u,0.s) Chars 16342 - 16353 [assumption.] 0. secs (0.u,0.s) Chars 16358 - 16359 [-] 0. secs (0.u,0.s) -Chars 16360 - 16369 [(apply~H0).] 0. secs (0.u,0.s) +Chars 16360 - 16369 [apply~H0.] 0. secs (0.u,0.s) Chars 16370 - 16381 [assumption.] 0. secs (0.u,0.s) Chars 16384 - 16388 [Qed.] 0. secs (0.u,0.s) Chars 16451 - 16527 [Lemma~prod_rel_eq~:~forall~A~B...] 0. secs (0.u,0.s) Chars 16530 - 16536 [Proof.] 0. secs (0.u,0.s) -Chars 16541 - 16548 [(intros).] 0. secs (0.u,0.s) -Chars 16553 - 16619 [(unfold~eq_rel;~split;~unfold~...] 0. secs (0.u,0.s) +Chars 16541 - 16548 [intros.] 0. secs (0.u,0.s) +Chars 16553 - 16619 [unfold~eq_rel;~split;~unfold~s...] 0. secs (0.u,0.s) Chars 16624 - 16625 [-] 0. secs (0.u,0.s) -Chars 16626 - 16640 [(destruct~x,~y).] 0. secs (0.u,0.s) -Chars 16641 - 16657 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 16658 - 16669 [(destruct~H).] 0. secs (0.u,0.s) -Chars 16670 - 16699 [(cbn~in~*;~subst;~reflexivity).] 0. secs (0.u,0.s) +Chars 16626 - 16640 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 16641 - 16657 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 16658 - 16669 [destruct~H.] 0. secs (0.u,0.s) +Chars 16670 - 16699 [cbn~in~*;~subst;~reflexivity.] 0. secs (0.u,0.s) Chars 16704 - 16705 [-] 0. secs (0.u,0.s) -Chars 16706 - 16729 [(destruct~x;~destruct~y).] 0. secs (0.u,0.s) -Chars 16730 - 16739 [(cbn~in~H).] 0. secs (0.u,0.s) -Chars 16740 - 16751 [(repeat~red).] 0. secs (0.u,0.s) -Chars 16752 - 16764 [(inversion~H).] 0. secs (0.u,0.s) -Chars 16765 - 16784 [(split;~reflexivity).] 0. secs (0.u,0.s) +Chars 16706 - 16729 [destruct~x;~destruct~y.] 0. secs (0.u,0.s) +Chars 16730 - 16739 [cbn~in~H.] 0. secs (0.u,0.s) +Chars 16740 - 16751 [repeat~red.] 0. secs (0.u,0.s) +Chars 16752 - 16764 [inversion~H.] 0. secs (0.u,0.s) +Chars 16765 - 16784 [split;~reflexivity.] 0. secs (0.u,0.s) Chars 16787 - 16791 [Qed.] 0. secs (0.u,0.s) Chars 16795 - 16941 [Definition~prod_fst_rel~{A~B~:...] 0. secs (0.u,0.s) Chars 16945 - 17091 [Definition~prod_snd_rel~{A~B~:...] 0. secs (0.u,0.s) Chars 17095 - 17277 [Lemma~prod_inv~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) Chars 17280 - 17286 [Proof.] 0. secs (0.u,0.s) -Chars 17291 - 17298 [(intros).] 0. secs (0.u,0.s) -Chars 17303 - 17314 [(destruct~H).] 0. secs (0.u,0.s) -Chars 17315 - 17354 [(unfold~prod_fst_rel,~prod_snd...] 0. secs (0.u,0.s) -Chars 17355 - 17364 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 17369 - 17378 [(apply~H0).] 0. secs (0.u,0.s) +Chars 17291 - 17298 [intros.] 0. secs (0.u,0.s) +Chars 17303 - 17314 [destruct~H.] 0. secs (0.u,0.s) +Chars 17315 - 17354 [unfold~prod_fst_rel,~prod_snd_...] 0. secs (0.u,0.s) +Chars 17355 - 17364 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 17369 - 17378 [apply~H0.] 0. secs (0.u,0.s) Chars 17381 - 17385 [Qed.] 0. secs (0.u,0.s) Chars 17389 - 17578 [Lemma~prod_compose~{A~B~C~D~E~...] 0. secs (0.u,0.s) Chars 17581 - 17587 [Proof.] 0. secs (0.u,0.s) -Chars 17592 - 17607 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 17592 - 17607 [split;~intros~!.] 0. secs (0.u,0.s) Chars 17612 - 17613 [-] 0. secs (0.u,0.s) -Chars 17614 - 17628 [(destruct~x,~y).] 0. secs (0.u,0.s) -Chars 17629 - 17640 [(repeat~red).] 0. secs (0.u,0.s) -Chars 17641 - 17657 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 17658 - 17680 [(destruct~H~as~[H1~H2]).] 0. secs (0.u,0.s) -Chars 17687 - 17703 [(unfold~fst,~snd).] 0. secs (0.u,0.s) -Chars 17704 - 17718 [(cbn~in~H1,~H2).] 0. secs (0.u,0.s) -Chars 17725 - 17755 [(edestruct~H1~as~(b,~(HR,~HS))).] 0. secs (0.u,0.s) -Chars 17762 - 17792 [(edestruct~H2~as~(e,~(HT,~HU))).] 0. secs (0.u,0.s) +Chars 17614 - 17628 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 17629 - 17640 [repeat~red.] 0. secs (0.u,0.s) +Chars 17641 - 17657 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 17658 - 17680 [destruct~H~as~[H1~H2].] 0. secs (0.u,0.s) +Chars 17687 - 17703 [unfold~fst,~snd.] 0. secs (0.u,0.s) +Chars 17704 - 17718 [cbn~in~H1,~H2.] 0. secs (0.u,0.s) +Chars 17725 - 17755 [edestruct~H1~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) +Chars 17762 - 17792 [edestruct~H2~as~(e,~(HT,~HU)).] 0. secs (0.u,0.s) Chars 17799 - 17813 [exists~(b,~e).] 0. secs (0.u,0.s) -Chars 17814 - 17839 [(split;~cbn;~split;~eauto).] 0. secs (0.u,0.s) +Chars 17814 - 17839 [split;~cbn;~split;~eauto.] 0. secs (0.u,0.s) Chars 17844 - 17845 [-] 0. secs (0.u,0.s) -Chars 17846 - 17860 [(destruct~x,~y).] 0. secs (0.u,0.s) -Chars 17861 - 17872 [(repeat~red).] 0. secs (0.u,0.s) -Chars 17873 - 17889 [(repeat~red~in~H).] 0. secs (0.u,0.s) -Chars 17890 - 17916 [(destruct~H~as~[x~[H1~H2]]).] 0. secs (0.u,0.s) +Chars 17846 - 17860 [destruct~x,~y.] 0. secs (0.u,0.s) +Chars 17861 - 17872 [repeat~red.] 0. secs (0.u,0.s) +Chars 17873 - 17889 [repeat~red~in~H.] 0. secs (0.u,0.s) +Chars 17890 - 17916 [destruct~H~as~[x~[H1~H2]].] 0. secs (0.u,0.s) Chars 17923 - 17929 [split.] 0. secs (0.u,0.s) Chars 17936 - 17937 [+] 0. secs (0.u,0.s) Chars 17938 - 17953 [exists~(fst~x).] 0. secs (0.u,0.s) -Chars 17954 - 17986 [(cbn;~split;~[~apply~H1~|~appl...] 0. secs (0.u,0.s) +Chars 17954 - 17986 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) Chars 17993 - 17994 [+] 0. secs (0.u,0.s) Chars 17995 - 18010 [exists~(snd~x).] 0. secs (0.u,0.s) -Chars 18011 - 18043 [(cbn;~split;~[~apply~H1~|~appl...] 0. secs (0.u,0.s) -Chars 18046 - 18050 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18011 - 18043 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) +Chars 18046 - 18050 [Qed.] 0.001 secs (0.001u,0.s) Chars 18054 - 18160 [#[global]~Instance~Proper_prod...] 0. secs (0.u,0.s) Chars 18163 - 18169 [Proof.] 0. secs (0.u,0.s) Chars 18174 - 18182 [intros~!.] 0. secs (0.u,0.s) -Chars 18183 - 18283 [(split;~intros~!;~destruct~x1,...] 0.001 secs (0.001u,0.s) -Chars 18286 - 18290 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18183 - 18283 [split;~intros~!;~destruct~x1,~...] 0.001 secs (0.001u,0.s) +Chars 18286 - 18290 [Qed.] 0. secs (0.u,0.s) Chars 18523 - 18646 [Lemma~transpose_prod~{A~B~C~D~...] 0. secs (0.u,0.s) Chars 18649 - 18655 [Proof.] 0. secs (0.u,0.s) -Chars 18660 - 18753 [(split;~unfold~transpose;~cbn;...] 0.001 secs (0.001u,0.s) -Chars 18756 - 18760 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18660 - 18753 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) +Chars 18756 - 18760 [Qed.] 0. secs (0.u,0.s) Chars 18761 - 18778 [End~ProdRelFacts.] 0. secs (0.u,0.s) Chars 18781 - 18801 [Section~SumRelFacts.] 0. secs (0.u,0.s) Chars 18915 - 18935 [Section~Equivalence.] 0. secs (0.u,0.s) @@ -500,151 +500,151 @@ Chars 18966 - 18994 [Context~(R~:~relationH~A~A).] 0. secs (0.u,0.s) Chars 18999 - 19027 [Context~(S~:~relationH~B~B).] 0. secs (0.u,0.s) Chars 19033 - 19127 [#[global]~Instance~sum_rel_ref...] 0. secs (0.u,0.s) Chars 19132 - 19138 [Proof.] 0. secs (0.u,0.s) -Chars 19145 - 19155 [(intros~[]).] 0. secs (0.u,0.s) -Chars 19156 - 19189 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) -Chars 19196 - 19229 [(apply~ReflexiveH_Reflexive~in...] 0. secs (0.u,0.s) -Chars 19236 - 19240 [(cbn).] 0. secs (0.u,0.s) +Chars 19145 - 19155 [intros~[].] 0. secs (0.u,0.s) +Chars 19156 - 19189 [apply~ReflexiveH_Reflexive~in~RR.] 0. secs (0.u,0.s) +Chars 19196 - 19229 [apply~ReflexiveH_Reflexive~in~SR.] 0. secs (0.u,0.s) +Chars 19236 - 19240 [cbn.] 0. secs (0.u,0.s) Chars 19247 - 19259 [constructor.] 0. secs (0.u,0.s) -Chars 19260 - 19269 [(apply~RR).] 0. secs (0.u,0.s) +Chars 19260 - 19269 [apply~RR.] 0. secs (0.u,0.s) Chars 19276 - 19288 [constructor.] 0. secs (0.u,0.s) -Chars 19289 - 19298 [(apply~SR).] 0. secs (0.u,0.s) +Chars 19289 - 19298 [apply~SR.] 0. secs (0.u,0.s) Chars 19303 - 19307 [Qed.] 0. secs (0.u,0.s) Chars 19313 - 19406 [#[global]~Instance~sum_rel_sym...] 0. secs (0.u,0.s) Chars 19411 - 19417 [Proof.] 0. secs (0.u,0.s) -Chars 19424 - 19437 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 19438 - 19471 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 19478 - 19511 [(apply~SymmetricH_Symmetric~in...] 0. secs (0.u,0.s) -Chars 19518 - 19532 [(destruct~x,~y).] 0. secs (0.u,0.s) +Chars 19424 - 19437 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 19438 - 19471 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) +Chars 19478 - 19511 [apply~SymmetricH_Symmetric~in~SS.] 0. secs (0.u,0.s) +Chars 19518 - 19532 [destruct~x,~y.] 0. secs (0.u,0.s) Chars 19539 - 19540 [-] 0. secs (0.u,0.s) Chars 19541 - 19553 [constructor.] 0. secs (0.u,0.s) -Chars 19554 - 19566 [(inversion~H).] 0. secs (0.u,0.s) +Chars 19554 - 19566 [inversion~H.] 0. secs (0.u,0.s) Chars 19567 - 19573 [subst.] 0. secs (0.u,0.s) -Chars 19574 - 19583 [(apply~RS).] 0. secs (0.u,0.s) +Chars 19574 - 19583 [apply~RS.] 0. secs (0.u,0.s) Chars 19584 - 19589 [auto.] 0. secs (0.u,0.s) Chars 19596 - 19597 [-] 0. secs (0.u,0.s) -Chars 19598 - 19610 [(inversion~H).] 0. secs (0.u,0.s) +Chars 19598 - 19610 [inversion~H.] 0. secs (0.u,0.s) Chars 19617 - 19618 [-] 0. secs (0.u,0.s) -Chars 19619 - 19631 [(inversion~H).] 0. secs (0.u,0.s) +Chars 19619 - 19631 [inversion~H.] 0. secs (0.u,0.s) Chars 19638 - 19639 [-] 0. secs (0.u,0.s) Chars 19640 - 19652 [constructor.] 0. secs (0.u,0.s) -Chars 19653 - 19665 [(inversion~H).] 0. secs (0.u,0.s) +Chars 19653 - 19665 [inversion~H.] 0. secs (0.u,0.s) Chars 19666 - 19672 [subst.] 0. secs (0.u,0.s) -Chars 19673 - 19682 [(apply~SS).] 0. secs (0.u,0.s) +Chars 19673 - 19682 [apply~SS.] 0. secs (0.u,0.s) Chars 19683 - 19688 [auto.] 0. secs (0.u,0.s) -Chars 19693 - 19697 [Qed.] 0.001 secs (0.001u,0.s) +Chars 19693 - 19697 [Qed.] 0.002 secs (0.002u,0.s) Chars 19703 - 19802 [#[global]~Instance~sum_rel_tra...] 0. secs (0.u,0.s) Chars 19807 - 19813 [Proof.] 0. secs (0.u,0.s) Chars 19820 - 19828 [intros~!.] 0. secs (0.u,0.s) -Chars 19835 - 19870 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) -Chars 19871 - 19906 [(apply~TransitiveH_Transitive~...] 0. secs (0.u,0.s) -Chars 19913 - 19937 [(unfold~TransitiveH~in~*).] 0. secs (0.u,0.s) -Chars 19944 - 20014 [(destruct~x,~y,~z;~try~contrad...] 0.014 secs (0.009u,0.003s) -Chars 20021 - 20030 [(cbn~in~*).] 0. secs (0.u,0.s) +Chars 19835 - 19870 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 19871 - 19906 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) +Chars 19913 - 19937 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) +Chars 19944 - 20014 [destruct~x,~y,~z;~try~contradi...] 0.006 secs (0.005u,0.001s) +Chars 20021 - 20030 [cbn~in~*.] 0. secs (0.u,0.s) Chars 20037 - 20049 [constructor.] 0. secs (0.u,0.s) Chars 20050 - 20056 [eauto.] 0. secs (0.u,0.s) Chars 20057 - 20069 [constructor.] 0. secs (0.u,0.s) Chars 20070 - 20076 [eauto.] 0. secs (0.u,0.s) -Chars 20081 - 20085 [Qed.] 0.007 secs (0.004u,0.002s) +Chars 20081 - 20085 [Qed.] 0.003 secs (0.002u,0.s) Chars 20091 - 20190 [#[global]~Instance~sum_rel_eqv...] 0. secs (0.u,0.s) Chars 20195 - 20201 [Proof.] 0. secs (0.u,0.s) -Chars 20208 - 20239 [(constructor;~typeclasses~eauto).] 0.001 secs (0.u,0.s) +Chars 20208 - 20239 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 20244 - 20248 [Qed.] 0. secs (0.u,0.s) Chars 20252 - 20268 [End~Equivalence.] 0. secs (0.u,0.s) Chars 20321 - 20474 [Lemma~sum_rel_monotone~{A~B~C~...] 0. secs (0.u,0.s) Chars 20477 - 20483 [Proof.] 0. secs (0.u,0.s) -Chars 20488 - 20586 [(intros~!;~destruct~x,~y;~repe...] 0.004 secs (0.003u,0.001s) -Chars 20589 - 20593 [Qed.] 0.003 secs (0.002u,0.001s) +Chars 20488 - 20586 [intros~!;~destruct~x,~y;~repea...] 0.002 secs (0.002u,0.s) +Chars 20589 - 20593 [Qed.] 0.001 secs (0.001u,0.s) Chars 20632 - 20704 [Lemma~sum_rel_eq~:~forall~A~B~...] 0. secs (0.u,0.s) Chars 20707 - 20713 [Proof.] 0. secs (0.u,0.s) -Chars 20718 - 20725 [(intros).] 0. secs (0.u,0.s) -Chars 20726 - 20730 [(red).] 0. secs (0.u,0.s) -Chars 20735 - 20762 [(split;~repeat~intro;~eauto).] 0. secs (0.u,0.s) -Chars 20767 - 20809 [(inversion~H;~subst;~auto;~try...] 0.002 secs (0.001u,0.s) +Chars 20718 - 20725 [intros.] 0. secs (0.u,0.s) +Chars 20726 - 20730 [red.] 0. secs (0.u,0.s) +Chars 20735 - 20762 [split;~repeat~intro;~eauto.] 0. secs (0.u,0.s) +Chars 20767 - 20809 [inversion~H;~subst;~auto;~try~...] 0.001 secs (0.u,0.s) Chars 20814 - 20820 [subst.] 0. secs (0.u,0.s) -Chars 20821 - 20852 [(destruct~y;~constructor;~eauto).] 0. secs (0.u,0.s) -Chars 20855 - 20859 [Qed.] 0.001 secs (0.001u,0.s) +Chars 20821 - 20852 [destruct~y;~constructor;~eauto.] 0. secs (0.u,0.s) +Chars 20855 - 20859 [Qed.] 0. secs (0.u,0.s) Chars 20863 - 21049 [Lemma~sum_compose~{A~B~C~D~E~F...] 0. secs (0.u,0.s) Chars 21052 - 21058 [Proof.] 0. secs (0.u,0.s) -Chars 21063 - 21078 [(split;~intros~!).] 0. secs (0.u,0.s) +Chars 21063 - 21078 [split;~intros~!.] 0. secs (0.u,0.s) Chars 21083 - 21084 [-] 0. secs (0.u,0.s) -Chars 21085 - 21106 [(destruct~x,~y;~inv~H).] 0.006 secs (0.004u,0.002s) -Chars 21113 - 21156 [(destruct~H2~as~(?,~(?,~?));~e...] 0.001 secs (0.u,0.s) -Chars 21163 - 21206 [(destruct~H2~as~(?,~(?,~?));~e...] 0.001 secs (0.u,0.s) +Chars 21085 - 21106 [destruct~x,~y;~inv~H.] 0.006 secs (0.005u,0.s) +Chars 21113 - 21156 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) +Chars 21163 - 21206 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) Chars 21211 - 21212 [-] 0. secs (0.u,0.s) -Chars 21213 - 21257 [(destruct~H~as~(?,~(H1,~H2));~...] 0.011 secs (0.009u,0.001s) -Chars 21264 - 21293 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) -Chars 21300 - 21329 [(econstructor;~eexists;~eauto).] 0. secs (0.u,0.s) -Chars 21332 - 21336 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21213 - 21257 [destruct~H~as~(?,~(H1,~H2));~i...] 0.003 secs (0.003u,0.s) +Chars 21264 - 21293 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) +Chars 21300 - 21329 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) +Chars 21332 - 21336 [Qed.] 0.003 secs (0.003u,0.s) Chars 21340 - 21444 [#[global]~Instance~Proper_sum_...] 0. secs (0.u,0.s) Chars 21447 - 21453 [Proof.] 0. secs (0.u,0.s) Chars 21458 - 21466 [intros~!.] 0. secs (0.u,0.s) -Chars 21471 - 21659 [(split;~intros~!;~destruct~x1,...] 0.008 secs (0.008u,0.s) -Chars 21662 - 21666 [Qed.] 0.005 secs (0.005u,0.s) +Chars 21471 - 21659 [split;~intros~!;~destruct~x1,~...] 0.006 secs (0.006u,0.s) +Chars 21662 - 21666 [Qed.] 0.004 secs (0.004u,0.s) Chars 21892 - 22014 [Lemma~transpose_sum~{A~B~C~D~:...] 0. secs (0.u,0.s) Chars 22017 - 22023 [Proof.] 0. secs (0.u,0.s) -Chars 22028 - 22173 [(split;~unfold~transpose;~cbn;...] 0.007 secs (0.007u,0.s) -Chars 22176 - 22180 [Qed.] 0.004 secs (0.004u,0.s) +Chars 22028 - 22173 [split;~unfold~transpose;~cbn;~...] 0.003 secs (0.003u,0.s) +Chars 22176 - 22180 [Qed.] 0.002 secs (0.002u,0.s) Chars 22182 - 22198 [End~SumRelFacts.] 0. secs (0.u,0.s) Chars 22200 - 22356 [Lemma~PER_reflexivityH1~:~~~fo...] 0. secs (0.u,0.s) Chars 22357 - 22363 [Proof.] 0. secs (0.u,0.s) -Chars 22366 - 22373 [(intros).] 0. secs (0.u,0.s) -Chars 22376 - 22392 [(assert~(R~b~a)).] 0. secs (0.u,0.s) +Chars 22366 - 22373 [intros.] 0. secs (0.u,0.s) +Chars 22376 - 22392 [assert~(R~b~a).] 0. secs (0.u,0.s) Chars 22393 - 22394 [{] 0. secs (0.u,0.s) Chars 22395 - 22415 [specialize~(RS~a~b).] 0. secs (0.u,0.s) -Chars 22416 - 22425 [(apply~RS).] 0. secs (0.u,0.s) +Chars 22416 - 22425 [apply~RS.] 0. secs (0.u,0.s) Chars 22426 - 22437 [assumption.] 0. secs (0.u,0.s) Chars 22438 - 22439 [}] 0. secs (0.u,0.s) Chars 22442 - 22464 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) -Chars 22465 - 22480 [(apply~RT;~auto).] 0. secs (0.u,0.s) +Chars 22465 - 22480 [apply~RT;~auto.] 0. secs (0.u,0.s) Chars 22481 - 22485 [Qed.] 0. secs (0.u,0.s) Chars 22487 - 22643 [Lemma~PER_reflexivityH2~:~~~fo...] 0. secs (0.u,0.s) Chars 22644 - 22650 [Proof.] 0. secs (0.u,0.s) -Chars 22653 - 22660 [(intros).] 0. secs (0.u,0.s) -Chars 22663 - 22678 [(assert~(R~a~b)).] 0. secs (0.u,0.s) +Chars 22653 - 22660 [intros.] 0. secs (0.u,0.s) +Chars 22663 - 22678 [assert~(R~a~b).] 0. secs (0.u,0.s) Chars 22679 - 22680 [{] 0. secs (0.u,0.s) Chars 22681 - 22701 [specialize~(RS~b~a).] 0. secs (0.u,0.s) -Chars 22702 - 22711 [(apply~RS).] 0. secs (0.u,0.s) +Chars 22702 - 22711 [apply~RS.] 0. secs (0.u,0.s) Chars 22712 - 22723 [assumption.] 0. secs (0.u,0.s) Chars 22724 - 22725 [}] 0. secs (0.u,0.s) Chars 22728 - 22750 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) -Chars 22751 - 22766 [(apply~RT;~auto).] 0. secs (0.u,0.s) +Chars 22751 - 22766 [apply~RT;~auto.] 0. secs (0.u,0.s) Chars 22767 - 22771 [Qed.] 0. secs (0.u,0.s) Chars 22773 - 23006 [Ltac~~PER_reflexivityH~:=~~~ma...] 0. secs (0.u,0.s) Chars 23009 - 23107 [Definition~diagonal_prop~{A~:~...] 0. secs (0.u,0.s) Chars 23109 - 23198 [Lemma~diagonal_prop_SymmetricH...] 0. secs (0.u,0.s) Chars 23199 - 23205 [Proof.] 0. secs (0.u,0.s) -Chars 23208 - 23212 [(red).] 0. secs (0.u,0.s) -Chars 23213 - 23228 [(intros~a1~a2~H).] 0. secs (0.u,0.s) -Chars 23231 - 23240 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23241 - 23267 [(unfold~diagonal_prop~in~*).] 0. secs (0.u,0.s) +Chars 23208 - 23212 [red.] 0. secs (0.u,0.s) +Chars 23213 - 23228 [intros~a1~a2~H.] 0. secs (0.u,0.s) +Chars 23231 - 23240 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23241 - 23267 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) Chars 23268 - 23274 [tauto.] 0. secs (0.u,0.s) Chars 23275 - 23279 [Qed.] 0. secs (0.u,0.s) Chars 23281 - 23372 [Lemma~diagonal_prop_Transitive...] 0. secs (0.u,0.s) Chars 23373 - 23379 [Proof.] 0. secs (0.u,0.s) -Chars 23382 - 23386 [(red).] 0. secs (0.u,0.s) -Chars 23387 - 23394 [(intros).] 0. secs (0.u,0.s) -Chars 23397 - 23406 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23407 - 23433 [(unfold~diagonal_prop~in~*).] 0. secs (0.u,0.s) +Chars 23382 - 23386 [red.] 0. secs (0.u,0.s) +Chars 23387 - 23394 [intros.] 0. secs (0.u,0.s) +Chars 23397 - 23406 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23407 - 23433 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) Chars 23436 - 23442 [tauto.] 0. secs (0.u,0.s) Chars 23443 - 23447 [Qed.] 0. secs (0.u,0.s) Chars 23449 - 23524 [Lemma~diagonal_prop_PER~{A~:~T...] 0. secs (0.u,0.s) Chars 23525 - 23531 [Proof.] 0. secs (0.u,0.s) Chars 23534 - 23546 [constructor.] 0. secs (0.u,0.s) -Chars 23549 - 23553 [(red).] 0. secs (0.u,0.s) -Chars 23554 - 23561 [(intros).] 0. secs (0.u,0.s) -Chars 23564 - 23573 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23574 - 23607 [(unfold~diagonal_prop~in~*;~ta...] 0. secs (0.u,0.s) -Chars 23610 - 23614 [(red).] 0. secs (0.u,0.s) -Chars 23615 - 23622 [(intros).] 0. secs (0.u,0.s) -Chars 23625 - 23634 [(cbn~in~*).] 0. secs (0.u,0.s) -Chars 23635 - 23668 [(unfold~diagonal_prop~in~*;~ta...] 0. secs (0.u,0.s) +Chars 23549 - 23553 [red.] 0. secs (0.u,0.s) +Chars 23554 - 23561 [intros.] 0. secs (0.u,0.s) +Chars 23564 - 23573 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23574 - 23607 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) +Chars 23610 - 23614 [red.] 0. secs (0.u,0.s) +Chars 23615 - 23622 [intros.] 0. secs (0.u,0.s) +Chars 23625 - 23634 [cbn~in~*.] 0. secs (0.u,0.s) +Chars 23635 - 23668 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) Chars 23669 - 23673 [Qed.] 0. secs (0.u,0.s) Chars 23905 - 24127 [Definition~option_rel~{X~:~Typ...] 0. secs (0.u,0.s) Chars 24128 - 24168 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) Chars 24170 - 24255 [Lemma~option_rel_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 24256 - 24262 [Proof.] 0. secs (0.u,0.s) -Chars 24265 - 24328 [(intros~?;~split;~intros~[]~[]...] 0.002 secs (0.002u,0.s) -Chars 24329 - 24333 [Qed.] 0.001 secs (0.001u,0.s) +Chars 24265 - 24328 [intros~?;~split;~intros~[]~[]~...] 0.001 secs (0.001u,0.s) +Chars 24329 - 24333 [Qed.] 0. secs (0.u,0.s) Chars 24335 - 24375 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) Chars 24377 - 24443 [Notation~prerel~E~D:=~(forall~...] 0. secs (0.u,0.s) Chars 24444 - 24520 [Notation~postrel~E~D:=~(forall...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Monad.v.timing b/theories/Basics/Monad.v.timing index 06dcdc96..64ce76d3 100644 --- a/theories/Basics/Monad.v.timing +++ b/theories/Basics/Monad.v.timing @@ -1,18 +1,18 @@ -Chars 65 - 107 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 65 - 107 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) Chars 109 - 158 [From~ExtLib~Require~Export~Str...] 0. secs (0.u,0.s) -Chars 160 - 229 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.s) +Chars 160 - 229 [From~ITree~Require~Import~Basi...] 0.002 secs (0.001u,0.s) Chars 246 - 272 [Set~Primitive~Projections.] 0. secs (0.u,0.s) Chars 336 - 412 [Class~Eq1~(M~:~Type~->~Type)~:...] 0. secs (0.u,0.s) Chars 414 - 436 [Arguments~eq1~{M~_~_}.] 0. secs (0.u,0.s) Chars 437 - 484 [Infix~"≈"~:=~eq1~(~at~level~70...] 0. secs (0.u,0.s) -Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0.001 secs (0.001u,0.s) +Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0. secs (0.u,0.s) Chars 653 - 691 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) Chars 693 - 706 [Section~Laws.] 0. secs (0.u,0.s) Chars 710 - 737 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 740 - 763 [Context~{Eq1~:~@Eq1~M}.] 0. secs (0.u,0.s) Chars 766 - 792 [Context~{Monad~:~Monad~M}.] 0. secs (0.u,0.s) Chars 796 - 825 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 999 - 1456 [Class~MonadLawsE~:~Prop~:={~~~...] 0.003 secs (0.002u,0.s) +Chars 999 - 1456 [Class~MonadLawsE~:~Prop~:={~~~...] 0.002 secs (0.001u,0.s) Chars 1458 - 1467 [End~Laws.] 0. secs (0.u,0.s) Chars 1469 - 1509 [#[global]~Existing~Instance~Pr...] 0. secs (0.u,0.s) Chars 1511 - 1542 [Arguments~bind_ret_l~{M~_~_~_}.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadProp.v.timing b/theories/Basics/MonadProp.v.timing index edacb6d8..df2a9363 100644 --- a/theories/Basics/MonadProp.v.timing +++ b/theories/Basics/MonadProp.v.timing @@ -1,6 +1,6 @@ -Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.007 secs (0.005u,0.002s) +Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.005 secs (0.003u,0.002s) Chars 88 - 137 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.007 secs (0.005u,0.001s) +Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) Chars 253 - 287 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 288 - 308 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 309 - 336 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -12,221 +12,221 @@ Chars 594 - 656 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 659 - 665 [Proof.] 0. secs (0.u,0.s) Chars 670 - 682 [constructor.] 0. secs (0.u,0.s) Chars 687 - 688 [-] 0. secs (0.u,0.s) -Chars 689 - 715 [(split;~repeat~intro;~auto).] 0. secs (0.u,0.s) +Chars 689 - 715 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) Chars 720 - 721 [-] 0. secs (0.u,0.s) -Chars 722 - 735 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 736 - 747 [(destruct~H).] 0. secs (0.u,0.s) -Chars 748 - 760 [(split;~auto).] 0. secs (0.u,0.s) +Chars 722 - 735 [repeat~intro.] 0. secs (0.u,0.s) +Chars 736 - 747 [destruct~H.] 0. secs (0.u,0.s) +Chars 748 - 760 [split;~auto.] 0. secs (0.u,0.s) Chars 765 - 766 [-] 0. secs (0.u,0.s) -Chars 767 - 780 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 781 - 796 [(destruct~H,~H0).] 0. secs (0.u,0.s) -Chars 797 - 823 [(split;~repeat~intro;~auto).] 0. secs (0.u,0.s) +Chars 767 - 780 [repeat~intro.] 0. secs (0.u,0.s) +Chars 781 - 796 [destruct~H,~H0.] 0. secs (0.u,0.s) +Chars 797 - 823 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) Chars 826 - 830 [Qed.] 0. secs (0.u,0.s) Chars 834 - 881 [Instance~MonadLawsE_Prop~:~(Mo...] 0. secs (0.u,0.s) Chars 884 - 890 [Proof.] 0. secs (0.u,0.s) Chars 895 - 907 [constructor.] 0. secs (0.u,0.s) Chars 912 - 913 [-] 0. secs (0.u,0.s) -Chars 914 - 946 [(split;~repeat~intro;~simpl~in...] 0. secs (0.u,0.s) +Chars 914 - 946 [split;~repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) Chars 953 - 954 [+] 0. secs (0.u,0.s) -Chars 955 - 981 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) -Chars 982 - 991 [(red~in~H).] 0. secs (0.u,0.s) -Chars 992 - 1004 [(subst;~auto).] 0. secs (0.u,0.s) +Chars 955 - 981 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 982 - 991 [red~in~H.] 0. secs (0.u,0.s) +Chars 992 - 1004 [subst;~auto.] 0. secs (0.u,0.s) Chars 1011 - 1012 [+] 0. secs (0.u,0.s) -Chars 1013 - 1035 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 1013 - 1035 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 1036 - 1048 [reflexivity.] 0. secs (0.u,0.s) Chars 1053 - 1054 [-] 0. secs (0.u,0.s) Chars 1055 - 1061 [split.] 0. secs (0.u,0.s) -Chars 1062 - 1087 [(repeat~intro;~simpl~in~*).] 0. secs (0.u,0.s) +Chars 1062 - 1087 [repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) Chars 1094 - 1095 [+] 0. secs (0.u,0.s) -Chars 1096 - 1122 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) -Chars 1123 - 1146 [(red~in~H0;~subst;~auto).] 0. secs (0.u,0.s) +Chars 1096 - 1122 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 1123 - 1146 [red~in~H0;~subst;~auto.] 0. secs (0.u,0.s) Chars 1153 - 1154 [+] 0. secs (0.u,0.s) -Chars 1155 - 1159 [(red).] 0. secs (0.u,0.s) -Chars 1160 - 1173 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1174 - 1196 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 1155 - 1159 [red.] 0. secs (0.u,0.s) +Chars 1160 - 1173 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1174 - 1196 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) Chars 1214 - 1215 [-] 0. secs (0.u,0.s) -Chars 1216 - 1379 [(intros;~split;~repeat~intro;~...] 0.001 secs (0.001u,0.s) +Chars 1216 - 1379 [intros;~split;~repeat~intro;~s...] 0.001 secs (0.u,0.s) Chars 1384 - 1385 [-] 0. secs (0.u,0.s) -Chars 1386 - 1405 [(repeat~intro;~auto).] 0. secs (0.u,0.s) -Chars 1406 - 1417 [(destruct~H).] 0. secs (0.u,0.s) -Chars 1424 - 1532 [(split;~simpl;~repeat~red;~int...] 0.001 secs (0.001u,0.s) -Chars 1535 - 1539 [Qed.] 0.003 secs (0.002u,0.s) +Chars 1386 - 1405 [repeat~intro;~auto.] 0. secs (0.u,0.s) +Chars 1406 - 1417 [destruct~H.] 0. secs (0.u,0.s) +Chars 1424 - 1532 [split;~simpl;~repeat~red;~intr...] 0.001 secs (0.u,0.s) +Chars 1535 - 1539 [Qed.] 0.002 secs (0.001u,0.s) Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) Chars 1684 - 1690 [Proof.] 0. secs (0.u,0.s) -Chars 1695 - 1805 [(repeat~red;~split;~repeat~int...] 0.002 secs (0.001u,0.s) -Chars 1807 - 1811 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1695 - 1805 [repeat~red;~split;~repeat~intr...] 0.001 secs (0.001u,0.s) +Chars 1807 - 1811 [Qed.] 0. secs (0.u,0.s) Chars 1815 - 1883 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 1886 - 1892 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1929 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) +Chars 1897 - 1929 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) Chars 1934 - 1935 [-] 0. secs (0.u,0.s) -Chars 1936 - 1957 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) -Chars 1958 - 1969 [(destruct~H).] 0. secs (0.u,0.s) +Chars 1936 - 1957 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 1958 - 1969 [destruct~H.] 0. secs (0.u,0.s) Chars 1976 - 1977 [+] 0. secs (0.u,0.s) Chars 1978 - 1993 [exists~(inr~x).] 0. secs (0.u,0.s) -Chars 1994 - 2018 [(split;~repeat~red;~auto).] 0. secs (0.u,0.s) +Chars 1994 - 2018 [split;~repeat~red;~auto.] 0. secs (0.u,0.s) Chars 2025 - 2026 [+] 0. secs (0.u,0.s) -Chars 2027 - 2049 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 2027 - 2049 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 2054 - 2055 [-] 0. secs (0.u,0.s) -Chars 2056 - 2077 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) -Chars 2078 - 2108 [(decompose~[~ex~and~]~H;~clear...] 0. secs (0.u,0.s) -Chars 2109 - 2121 [(destruct~x0).] 0. secs (0.u,0.s) +Chars 2056 - 2077 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 2078 - 2108 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) +Chars 2109 - 2121 [destruct~x0.] 0. secs (0.u,0.s) Chars 2128 - 2129 [+] 0. secs (0.u,0.s) -Chars 2130 - 2152 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 2130 - 2152 [econstructor~2;~eauto.] 0. secs (0.u,0.s) Chars 2159 - 2160 [+] 0. secs (0.u,0.s) Chars 2161 - 2175 [constructor~1.] 0. secs (0.u,0.s) -Chars 2176 - 2193 [(repeat~red~in~H2).] 0. secs (0.u,0.s) -Chars 2194 - 2206 [(subst;~auto).] 0. secs (0.u,0.s) -Chars 2209 - 2213 [Qed.] 0.002 secs (0.001u,0.s) +Chars 2176 - 2193 [repeat~red~in~H2.] 0. secs (0.u,0.s) +Chars 2194 - 2206 [subst;~auto.] 0. secs (0.u,0.s) +Chars 2209 - 2213 [Qed.] 0.001 secs (0.001u,0.s) Chars 2217 - 2287 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 2290 - 2296 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2333 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) +Chars 2301 - 2333 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) Chars 2338 - 2339 [-] 0. secs (0.u,0.s) -Chars 2340 - 2361 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) -Chars 2362 - 2392 [(decompose~[~ex~and~]~H;~clear...] 0. secs (0.u,0.s) -Chars 2393 - 2406 [(induction~H1).] 0. secs (0.u,0.s) +Chars 2340 - 2361 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 2362 - 2392 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) +Chars 2393 - 2406 [induction~H1.] 0. secs (0.u,0.s) Chars 2413 - 2414 [+] 0. secs (0.u,0.s) Chars 2415 - 2429 [constructor~1.] 0. secs (0.u,0.s) -Chars 2430 - 2452 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 2453 - 2475 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 2476 - 2488 [reflexivity.] 0.011 secs (0.01u,0.001s) +Chars 2430 - 2452 [eexists;~split;~eauto.] 0.007 secs (0.007u,0.s) +Chars 2453 - 2475 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2476 - 2488 [reflexivity.] 0. secs (0.u,0.s) Chars 2495 - 2496 [+] 0. secs (0.u,0.s) -Chars 2497 - 2531 [(econstructor~2;~repeat~red;~e...] 0.001 secs (0.001u,0.s) -Chars 2540 - 2562 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 2563 - 2591 [(eexists;~split;~reflexivity).] 0. secs (0.u,0.s) +Chars 2497 - 2531 [econstructor~2;~repeat~red;~ea...] 0. secs (0.u,0.s) +Chars 2540 - 2562 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 2563 - 2591 [eexists;~split;~reflexivity.] 0. secs (0.u,0.s) Chars 2596 - 2597 [-] 0. secs (0.u,0.s) -Chars 2598 - 2619 [(repeat~red~in~H~|-~*).] 0. secs (0.u,0.s) -Chars 2626 - 2686 [(induction~H;~repeat~red~in~H;...] 0.001 secs (0.001u,0.s) +Chars 2598 - 2619 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) +Chars 2626 - 2686 [induction~H;~repeat~red~in~H;~...] 0. secs (0.u,0.s) Chars 2693 - 2694 [+] 0. secs (0.u,0.s) -Chars 2695 - 2756 [(destruct~x;~destruct~H2~as~(?...] 0.001 secs (0.001u,0.s) -Chars 2765 - 2787 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 2695 - 2756 [destruct~x;~destruct~H2~as~(?,...] 0. secs (0.u,0.s) +Chars 2765 - 2787 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 2788 - 2802 [constructor~1.] 0. secs (0.u,0.s) Chars 2803 - 2808 [auto.] 0. secs (0.u,0.s) Chars 2815 - 2816 [+] 0. secs (0.u,0.s) -Chars 2817 - 2888 [(destruct~x;~destruct~H3~as~(?...] 0.001 secs (0.001u,0.s) -Chars 2897 - 2947 [(decompose~[~ex~and~]~IHiter_P...] 0. secs (0.u,0.s) -Chars 2956 - 2984 [(inversion~H;~clear~H;~subst).] 0. secs (0.u,0.s) -Chars 2993 - 3015 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 3016 - 3038 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 3041 - 3045 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2817 - 2888 [destruct~x;~destruct~H3~as~(?,...] 0. secs (0.u,0.s) +Chars 2897 - 2947 [decompose~[~ex~and~]~IHiter_Pr...] 0. secs (0.u,0.s) +Chars 2956 - 2984 [inversion~H;~clear~H;~subst.] 0. secs (0.u,0.s) +Chars 2993 - 3015 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3016 - 3038 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 3041 - 3045 [Qed.] 0.003 secs (0.003u,0.s) Chars 3049 - 3123 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 3126 - 3132 [Proof.] 0. secs (0.u,0.s) -Chars 3137 - 3169 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) +Chars 3137 - 3169 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) Chars 3174 - 3175 [-] 0. secs (0.u,0.s) -Chars 3176 - 3215 [(induction~H;~destruct~H~as~(?...] 0. secs (0.u,0.s) +Chars 3176 - 3215 [induction~H;~destruct~H~as~(?,...] 0. secs (0.u,0.s) Chars 3222 - 3223 [+] 0. secs (0.u,0.s) -Chars 3224 - 3253 [(destruct~x;~repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 3224 - 3253 [destruct~x;~repeat~red~in~H0.] 0. secs (0.u,0.s) Chars 3262 - 3263 [*] 0. secs (0.u,0.s) -Chars 3264 - 3286 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 3287 - 3305 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 3306 - 3328 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3264 - 3286 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3287 - 3305 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 3306 - 3328 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 3329 - 3341 [reflexivity.] 0. secs (0.u,0.s) Chars 3350 - 3351 [*] 0. secs (0.u,0.s) -Chars 3352 - 3372 [(inversion~H0;~subst).] 0. secs (0.u,0.s) -Chars 3373 - 3395 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 3396 - 3414 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 3352 - 3372 [inversion~H0;~subst.] 0. secs (0.u,0.s) +Chars 3373 - 3395 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 3396 - 3414 [constructor;~auto.] 0. secs (0.u,0.s) Chars 3421 - 3422 [+] 0. secs (0.u,0.s) -Chars 3423 - 3470 [(destruct~x;~repeat~red~in~H1;...] 0. secs (0.u,0.s) -Chars 3479 - 3515 [(destruct~IHiter_Prop~as~(?,~(...] 0. secs (0.u,0.s) -Chars 3516 - 3550 [(destruct~x;~eexists;~split;~e...] 0.001 secs (0.001u,0.s) +Chars 3423 - 3470 [destruct~x;~repeat~red~in~H1;~...] 0. secs (0.u,0.s) +Chars 3479 - 3515 [destruct~IHiter_Prop~as~(?,~(?...] 0. secs (0.u,0.s) +Chars 3516 - 3550 [destruct~x;~eexists;~split;~ea...] 0. secs (0.u,0.s) Chars 3559 - 3560 [*] 0. secs (0.u,0.s) -Chars 3561 - 3583 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 3584 - 3606 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3561 - 3583 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 3584 - 3606 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 3615 - 3616 [*] 0. secs (0.u,0.s) -Chars 3617 - 3634 [(repeat~red~in~H3).] 0. secs (0.u,0.s) +Chars 3617 - 3634 [repeat~red~in~H3.] 0. secs (0.u,0.s) Chars 3635 - 3641 [subst.] 0. secs (0.u,0.s) -Chars 3642 - 3653 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3642 - 3653 [repeat~red.] 0. secs (0.u,0.s) Chars 3654 - 3668 [constructor~1.] 0. secs (0.u,0.s) -Chars 3669 - 3691 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3669 - 3691 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 3696 - 3697 [-] 0. secs (0.u,0.s) -Chars 3698 - 3724 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) -Chars 3725 - 3755 [(destruct~x0;~repeat~red~in~H0).] 0. secs (0.u,0.s) +Chars 3698 - 3724 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 3725 - 3755 [destruct~x0;~repeat~red~in~H0.] 0. secs (0.u,0.s) Chars 3762 - 3763 [+] 0. secs (0.u,0.s) Chars 3764 - 3788 [generalize~dependent~a0.] 0. secs (0.u,0.s) -Chars 3789 - 3837 [(induction~H0;~intros;~destruc...] 0. secs (0.u,0.s) +Chars 3789 - 3837 [induction~H0;~intros;~destruct...] 0. secs (0.u,0.s) Chars 3846 - 3847 [*] 0. secs (0.u,0.s) -Chars 3848 - 3859 [(destruct~x).] 0. secs (0.u,0.s) +Chars 3848 - 3859 [destruct~x.] 0. secs (0.u,0.s) Chars 3870 - 3872 [--] 0. secs (0.u,0.s) -Chars 3873 - 3895 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 3896 - 3918 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3873 - 3895 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 3896 - 3918 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 3932 - 3946 [constructor~1.] 0. secs (0.u,0.s) -Chars 3947 - 3969 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 3947 - 3969 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 3970 - 3982 [reflexivity.] 0. secs (0.u,0.s) Chars 3993 - 3995 [--] 0. secs (0.u,0.s) -Chars 3996 - 4026 [(inversion~H1;~clear~H1;~subst).] 0. secs (0.u,0.s) +Chars 3996 - 4026 [inversion~H1;~clear~H1;~subst.] 0. secs (0.u,0.s) Chars 4027 - 4041 [constructor~1.] 0. secs (0.u,0.s) -Chars 4042 - 4064 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 4042 - 4064 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 4073 - 4074 [*] 0. secs (0.u,0.s) -Chars 4075 - 4104 [(destruct~x;~try~inversion~H2).] 0. secs (0.u,0.s) -Chars 4115 - 4137 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 4075 - 4104 [destruct~x;~try~inversion~H2.] 0. secs (0.u,0.s) +Chars 4115 - 4137 [econstructor~2;~eauto.] 0. secs (0.u,0.s) Chars 4138 - 4142 [2:~{] 0. secs (0.u,0.s) -Chars 4143 - 4161 [(apply~IHiter_Prop).] 0. secs (0.u,0.s) -Chars 4162 - 4171 [(apply~H2).] 0. secs (0.u,0.s) +Chars 4143 - 4161 [apply~IHiter_Prop.] 0. secs (0.u,0.s) +Chars 4162 - 4171 [apply~H2.] 0. secs (0.u,0.s) Chars 4172 - 4173 [}] 0. secs (0.u,0.s) -Chars 4184 - 4206 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 4184 - 4206 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 4213 - 4214 [+] 0. secs (0.u,0.s) Chars 4215 - 4221 [subst.] 0. secs (0.u,0.s) Chars 4222 - 4236 [constructor~1.] 0. secs (0.u,0.s) -Chars 4237 - 4259 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) +Chars 4237 - 4259 [eexists;~split;~eauto.] 0. secs (0.u,0.s) Chars 4260 - 4272 [reflexivity.] 0. secs (0.u,0.s) -Chars 4275 - 4279 [Qed.] 0.024 secs (0.023u,0.s) +Chars 4275 - 4279 [Qed.] 0.018 secs (0.018u,0.s) Chars 4283 - 4362 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 4365 - 4371 [Proof.] 0. secs (0.u,0.s) -Chars 4376 - 4408 [(repeat~red;~split;~repeat~int...] 0. secs (0.u,0.s) +Chars 4376 - 4408 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) Chars 4413 - 4414 [-] 0. secs (0.u,0.s) -Chars 4415 - 4427 [(induction~H).] 0. secs (0.u,0.s) +Chars 4415 - 4427 [induction~H.] 0. secs (0.u,0.s) Chars 4434 - 4435 [+] 0. secs (0.u,0.s) -Chars 4436 - 4453 [(remember~(inr~r)).] 0. secs (0.u,0.s) +Chars 4436 - 4453 [remember~(inr~r).] 0. secs (0.u,0.s) Chars 4454 - 4477 [generalize~dependent~r.] 0. secs (0.u,0.s) -Chars 4478 - 4505 [(induction~H;~intros;~subst).] 0.001 secs (0.001u,0.s) +Chars 4478 - 4505 [induction~H;~intros;~subst.] 0. secs (0.u,0.s) Chars 4514 - 4515 [*] 0. secs (0.u,0.s) Chars 4516 - 4530 [constructor~1.] 0. secs (0.u,0.s) -Chars 4531 - 4566 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) +Chars 4531 - 4566 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) Chars 4575 - 4576 [*] 0. secs (0.u,0.s) Chars 4577 - 4592 [econstructor~2.] 0. secs (0.u,0.s) Chars 4593 - 4597 [2:~{] 0. secs (0.u,0.s) -Chars 4598 - 4622 [(apply~IHiter_Prop;~auto).] 0. secs (0.u,0.s) +Chars 4598 - 4622 [apply~IHiter_Prop;~auto.] 0. secs (0.u,0.s) Chars 4623 - 4624 [}] 0. secs (0.u,0.s) -Chars 4635 - 4670 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) +Chars 4635 - 4670 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) Chars 4677 - 4678 [+] 0. secs (0.u,0.s) -Chars 4679 - 4697 [(remember~(inl~i')).] 0. secs (0.u,0.s) +Chars 4679 - 4697 [remember~(inl~i').] 0. secs (0.u,0.s) Chars 4698 - 4722 [generalize~dependent~i'.] 0. secs (0.u,0.s) -Chars 4723 - 4750 [(induction~H;~intros;~subst).] 0.001 secs (0.001u,0.s) +Chars 4723 - 4750 [induction~H;~intros;~subst.] 0.001 secs (0.001u,0.s) Chars 4759 - 4760 [*] 0. secs (0.u,0.s) -Chars 4761 - 4783 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 4784 - 4819 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) +Chars 4761 - 4783 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 4784 - 4819 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) Chars 4828 - 4829 [*] 0. secs (0.u,0.s) Chars 4830 - 4845 [econstructor~2.] 0. secs (0.u,0.s) Chars 4846 - 4850 [2:~{] 0. secs (0.u,0.s) -Chars 4851 - 4877 [(eapply~IHiter_Prop;~eauto).] 0. secs (0.u,0.s) +Chars 4851 - 4877 [eapply~IHiter_Prop;~eauto.] 0. secs (0.u,0.s) Chars 4878 - 4879 [}] 0. secs (0.u,0.s) -Chars 4890 - 4925 [(eexists;~split;~eauto;~reflex...] 0. secs (0.u,0.s) +Chars 4890 - 4925 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) Chars 4930 - 4931 [-] 0. secs (0.u,0.s) -Chars 4932 - 4944 [(induction~H).] 0. secs (0.u,0.s) +Chars 4932 - 4944 [induction~H.] 0. secs (0.u,0.s) Chars 4951 - 4952 [+] 0. secs (0.u,0.s) -Chars 4953 - 4979 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) -Chars 4980 - 5039 [(destruct~x~as~[?|~[?|~?]];~in...] 0.001 secs (0.001u,0.s) +Chars 4953 - 4979 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 4980 - 5039 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) Chars 5048 - 5062 [constructor~1.] 0. secs (0.u,0.s) Chars 5063 - 5077 [constructor~1.] 0. secs (0.u,0.s) Chars 5078 - 5083 [auto.] 0. secs (0.u,0.s) Chars 5090 - 5091 [+] 0. secs (0.u,0.s) -Chars 5092 - 5118 [(destruct~H~as~(?,~(?,~?))).] 0. secs (0.u,0.s) -Chars 5127 - 5186 [(destruct~x~as~[?|~[?|~?]];~in...] 0.001 secs (0.001u,0.s) +Chars 5092 - 5118 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) +Chars 5127 - 5186 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) Chars 5195 - 5196 [*] 0. secs (0.u,0.s) -Chars 5197 - 5218 [(destruct~IHiter_Prop).] 0. secs (0.u,0.s) +Chars 5197 - 5218 [destruct~IHiter_Prop.] 0. secs (0.u,0.s) Chars 5229 - 5231 [--] 0. secs (0.u,0.s) Chars 5232 - 5246 [constructor~1.] 0. secs (0.u,0.s) -Chars 5247 - 5269 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 5247 - 5269 [econstructor~2;~eauto.] 0. secs (0.u,0.s) Chars 5280 - 5282 [--] 0. secs (0.u,0.s) -Chars 5283 - 5305 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) -Chars 5306 - 5328 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 5283 - 5305 [econstructor~2;~eauto.] 0. secs (0.u,0.s) +Chars 5306 - 5328 [econstructor~2;~eauto.] 0. secs (0.u,0.s) Chars 5337 - 5338 [*] 0. secs (0.u,0.s) -Chars 5339 - 5361 [(econstructor~2;~eauto).] 0. secs (0.u,0.s) +Chars 5339 - 5361 [econstructor~2;~eauto.] 0. secs (0.u,0.s) Chars 5362 - 5376 [constructor~1.] 0. secs (0.u,0.s) -Chars 5377 - 5385 [(apply~H).] 0. secs (0.u,0.s) -Chars 5388 - 5392 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5377 - 5385 [apply~H.] 0. secs (0.u,0.s) +Chars 5388 - 5392 [Qed.] 0.004 secs (0.004u,0.s) Chars 5396 - 5462 [#[global]~Instance~Iterative_P...] 0. secs (0.u,0.s) Chars 5465 - 5471 [Proof.] 0. secs (0.u,0.s) -Chars 5476 - 5507 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 5476 - 5507 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 5510 - 5514 [Qed.] 0. secs (0.u,0.s) Chars 5516 - 5525 [End~prop.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadState.v.timing b/theories/Basics/MonadState.v.timing index f47923a5..feed581d 100644 --- a/theories/Basics/MonadState.v.timing +++ b/theories/Basics/MonadState.v.timing @@ -1,6 +1,6 @@ -Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.007 secs (0.005u,0.002s) +Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.004u,0.002s) Chars 73 - 122 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.013 secs (0.01u,0.002s) +Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.01 secs (0.008u,0.001s) Chars 271 - 305 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 306 - 326 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 327 - 354 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -20,381 +20,381 @@ Chars 693 - 777 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 780 - 786 [Proof.] 0. secs (0.u,0.s) Chars 789 - 801 [constructor.] 0. secs (0.u,0.s) Chars 804 - 805 [-] 0. secs (0.u,0.s) -Chars 806 - 817 [(repeat~red).] 0. secs (0.u,0.s) +Chars 806 - 817 [repeat~red.] 0. secs (0.u,0.s) Chars 822 - 834 [reflexivity.] 0. secs (0.u,0.s) Chars 837 - 838 [-] 0. secs (0.u,0.s) -Chars 839 - 850 [(repeat~red).] 0. secs (0.u,0.s) -Chars 851 - 858 [(intros).] 0. secs (0.u,0.s) +Chars 839 - 850 [repeat~red.] 0. secs (0.u,0.s) +Chars 851 - 858 [intros.] 0. secs (0.u,0.s) Chars 859 - 868 [symmetry.] 0. secs (0.u,0.s) -Chars 869 - 877 [(apply~H).] 0. secs (0.u,0.s) +Chars 869 - 877 [apply~H.] 0. secs (0.u,0.s) Chars 880 - 881 [-] 0. secs (0.u,0.s) -Chars 882 - 893 [(repeat~red).] 0. secs (0.u,0.s) -Chars 894 - 901 [(intros).] 0. secs (0.u,0.s) -Chars 902 - 923 [(etransitivity;~eauto).] 0. secs (0.u,0.s) -Chars 924 - 932 [(apply~H).] 0. secs (0.u,0.s) -Chars 934 - 943 [(apply~H0).] 0. secs (0.u,0.s) +Chars 882 - 893 [repeat~red.] 0. secs (0.u,0.s) +Chars 894 - 901 [intros.] 0. secs (0.u,0.s) +Chars 902 - 923 [etransitivity;~eauto.] 0. secs (0.u,0.s) +Chars 924 - 932 [apply~H.] 0. secs (0.u,0.s) +Chars 934 - 943 [apply~H0.] 0. secs (0.u,0.s) Chars 946 - 950 [Qed.] 0. secs (0.u,0.s) Chars 954 - 1013 [Instance~MonadLawsE_stateTM~:~...] 0. secs (0.u,0.s) Chars 1016 - 1022 [Proof.] 0. secs (0.u,0.s) Chars 1025 - 1037 [constructor.] 0. secs (0.u,0.s) Chars 1040 - 1041 [-] 0. secs (0.u,0.s) -Chars 1042 - 1046 [(cbn).] 0. secs (0.u,0.s) -Chars 1047 - 1062 [(intros~a~b~f~x).] 0. secs (0.u,0.s) -Chars 1067 - 1078 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1080 - 1089 [(intros~s).] 0. secs (0.u,0.s) -Chars 1094 - 1113 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 1042 - 1046 [cbn.] 0. secs (0.u,0.s) +Chars 1047 - 1062 [intros~a~b~f~x.] 0. secs (0.u,0.s) +Chars 1067 - 1078 [repeat~red.] 0. secs (0.u,0.s) +Chars 1080 - 1089 [intros~s.] 0. secs (0.u,0.s) +Chars 1094 - 1113 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) Chars 1129 - 1130 [-] 0. secs (0.u,0.s) -Chars 1131 - 1135 [(cbn).] 0. secs (0.u,0.s) -Chars 1136 - 1147 [(intros~a~x).] 0. secs (0.u,0.s) -Chars 1152 - 1163 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1164 - 1173 [(intros~s).] 0. secs (0.u,0.s) -Chars 1178 - 1279 [(assert~~~(EQM~_~(bind~(x~s)~(...] 0. secs (0.u,0.s) +Chars 1131 - 1135 [cbn.] 0. secs (0.u,0.s) +Chars 1136 - 1147 [intros~a~x.] 0. secs (0.u,0.s) +Chars 1152 - 1163 [repeat~red.] 0. secs (0.u,0.s) +Chars 1164 - 1173 [intros~s.] 0. secs (0.u,0.s) +Chars 1178 - 1279 [assert~~(EQM~_~(bind~(x~s)~(fu...] 0. secs (0.u,0.s) Chars 1284 - 1285 [{] 0. secs (0.u,0.s) -Chars 1286 - 1304 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 1286 - 1304 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 1305 - 1317 [reflexivity.] 0. secs (0.u,0.s) -Chars 1318 - 1325 [(intros).] 0. secs (0.u,0.s) -Chars 1327 - 1338 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1339 - 1364 [(destruct~a0;~reflexivity).] 0. secs (0.u,0.s) +Chars 1318 - 1325 [intros.] 0. secs (0.u,0.s) +Chars 1327 - 1338 [repeat~red.] 0. secs (0.u,0.s) +Chars 1339 - 1364 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) Chars 1365 - 1366 [}] 0. secs (0.u,0.s) -Chars 1371 - 1381 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 1386 - 1405 [(rewrite~bind_ret_r).] 0.001 secs (0.001u,0.s) +Chars 1371 - 1381 [rewrite~H.] 0. secs (0.u,0.s) +Chars 1386 - 1405 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) Chars 1406 - 1418 [reflexivity.] 0. secs (0.u,0.s) Chars 1421 - 1422 [-] 0. secs (0.u,0.s) -Chars 1423 - 1427 [(cbn).] 0. secs (0.u,0.s) -Chars 1428 - 1447 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) -Chars 1452 - 1463 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1464 - 1473 [(intros~s).] 0. secs (0.u,0.s) -Chars 1478 - 1496 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 1501 - 1519 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 1423 - 1427 [cbn.] 0. secs (0.u,0.s) +Chars 1428 - 1447 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) +Chars 1452 - 1463 [repeat~red.] 0. secs (0.u,0.s) +Chars 1464 - 1473 [intros~s.] 0. secs (0.u,0.s) +Chars 1478 - 1496 [rewrite~bind_bind.] 0.001 secs (0.u,0.s) +Chars 1501 - 1519 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 1524 - 1525 [+] 0. secs (0.u,0.s) Chars 1526 - 1538 [reflexivity.] 0. secs (0.u,0.s) Chars 1543 - 1544 [+] 0. secs (0.u,0.s) Chars 1545 - 1557 [reflexivity.] 0. secs (0.u,0.s) Chars 1560 - 1561 [-] 0. secs (0.u,0.s) -Chars 1562 - 1573 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1574 - 1602 [(intros~a~b~x~y~H~x0~y0~H0~s).] 0. secs (0.u,0.s) -Chars 1607 - 1625 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 1562 - 1573 [repeat~red.] 0. secs (0.u,0.s) +Chars 1574 - 1602 [intros~a~b~x~y~H~x0~y0~H0~s.] 0. secs (0.u,0.s) +Chars 1607 - 1625 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 1630 - 1631 [+] 0. secs (0.u,0.s) -Chars 1632 - 1640 [(apply~H).] 0. secs (0.u,0.s) +Chars 1632 - 1640 [apply~H.] 0. secs (0.u,0.s) Chars 1645 - 1646 [+] 0. secs (0.u,0.s) -Chars 1647 - 1658 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1665 - 1677 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 1684 - 1693 [(apply~H0).] 0. secs (0.u,0.s) -Chars 1696 - 1700 [Qed.] 0.003 secs (0.002u,0.s) +Chars 1647 - 1658 [repeat~red.] 0. secs (0.u,0.s) +Chars 1665 - 1677 [destruct~a0.] 0. secs (0.u,0.s) +Chars 1684 - 1693 [apply~H0.] 0. secs (0.u,0.s) +Chars 1696 - 1700 [Qed.] 0.002 secs (0.001u,0.s) Chars 1704 - 1739 [Context~{IM~:~Iter~(Kleisli~M)...] 0. secs (0.u,0.s) Chars 1742 - 1782 [Context~{CM~:~Iterative~(Kleis...] 0. secs (0.u,0.s) -Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0.001 secs (0.u,0.s) +Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0. secs (0.u,0.s) Chars 1948 - 2110 [Definition~iso_inv~{a~b~:~Type...] 0. secs (0.u,0.s) Chars 2114 - 2254 [Definition~internalize~{a~b~:~...] 0. secs (0.u,0.s) Chars 2258 - 2377 [Lemma~internalize_eq~{a~b~:~Ty...] 0. secs (0.u,0.s) Chars 2380 - 2386 [Proof.] 0. secs (0.u,0.s) Chars 2391 - 2397 [split.] 0. secs (0.u,0.s) Chars 2402 - 2403 [-] 0. secs (0.u,0.s) -Chars 2404 - 2411 [(intros).] 0. secs (0.u,0.s) -Chars 2418 - 2429 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2430 - 2442 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 2449 - 2468 [(unfold~internalize).] 0. secs (0.u,0.s) -Chars 2469 - 2473 [(cbn).] 0. secs (0.u,0.s) -Chars 2475 - 2483 [(apply~H).] 0. secs (0.u,0.s) +Chars 2404 - 2411 [intros.] 0. secs (0.u,0.s) +Chars 2418 - 2429 [repeat~red.] 0. secs (0.u,0.s) +Chars 2430 - 2442 [destruct~a0.] 0.007 secs (0.007u,0.s) +Chars 2449 - 2468 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 2469 - 2473 [cbn.] 0. secs (0.u,0.s) +Chars 2475 - 2483 [apply~H.] 0. secs (0.u,0.s) Chars 2488 - 2489 [-] 0. secs (0.u,0.s) -Chars 2490 - 2497 [(intros).] 0. secs (0.u,0.s) -Chars 2504 - 2515 [(repeat~red).] 0.012 secs (0.01u,0.001s) -Chars 2516 - 2523 [(intros).] 0. secs (0.u,0.s) -Chars 2530 - 2554 [(unfold~internalize~in~H).] 0. secs (0.u,0.s) +Chars 2490 - 2497 [intros.] 0. secs (0.u,0.s) +Chars 2504 - 2515 [repeat~red.] 0. secs (0.u,0.s) +Chars 2516 - 2523 [intros.] 0. secs (0.u,0.s) +Chars 2530 - 2554 [unfold~internalize~in~H.] 0. secs (0.u,0.s) Chars 2561 - 2585 [specialize~(H~(a1,~a0)).] 0. secs (0.u,0.s) -Chars 2592 - 2600 [(apply~H).] 0. secs (0.u,0.s) +Chars 2592 - 2600 [apply~H.] 0. secs (0.u,0.s) Chars 2603 - 2607 [Qed.] 0. secs (0.u,0.s) Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0. secs (0.u,0.s) Chars 2779 - 2785 [Proof.] 0. secs (0.u,0.s) -Chars 2790 - 2801 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2806 - 2818 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 2823 - 2827 [(cbn).] 0. secs (0.u,0.s) -Chars 2832 - 2851 [(unfold~internalize).] 0. secs (0.u,0.s) -Chars 2856 - 2880 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 2885 - 2889 [(cbn).] 0. secs (0.u,0.s) +Chars 2790 - 2801 [repeat~red.] 0. secs (0.u,0.s) +Chars 2806 - 2818 [destruct~a0.] 0. secs (0.u,0.s) +Chars 2823 - 2827 [cbn.] 0. secs (0.u,0.s) +Chars 2832 - 2851 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 2856 - 2880 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 2885 - 2889 [cbn.] 0. secs (0.u,0.s) Chars 2894 - 2906 [reflexivity.] 0. secs (0.u,0.s) -Chars 2909 - 2913 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0.001 secs (0.001u,0.s) +Chars 2909 - 2913 [Qed.] 0. secs (0.u,0.s) +Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0. secs (0.u,0.s) Chars 3092 - 3098 [Proof.] 0. secs (0.u,0.s) -Chars 3103 - 3114 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3119 - 3131 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 3136 - 3173 [(unfold~internalize,~cat,~Cat_...] 0. secs (0.u,0.s) -Chars 3174 - 3178 [(cbn).] 0. secs (0.u,0.s) -Chars 3183 - 3207 [(apply~Proper_bind;~auto).] 0. secs (0.u,0.s) +Chars 3103 - 3114 [repeat~red.] 0. secs (0.u,0.s) +Chars 3119 - 3131 [destruct~a0.] 0. secs (0.u,0.s) +Chars 3136 - 3173 [unfold~internalize,~cat,~Cat_K...] 0. secs (0.u,0.s) +Chars 3174 - 3178 [cbn.] 0. secs (0.u,0.s) +Chars 3183 - 3207 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) Chars 3212 - 3213 [-] 0. secs (0.u,0.s) Chars 3214 - 3226 [reflexivity.] 0. secs (0.u,0.s) Chars 3231 - 3232 [-] 0. secs (0.u,0.s) -Chars 3233 - 3244 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3251 - 3263 [(destruct~a1).] 0. secs (0.u,0.s) -Chars 3270 - 3282 [(unfold~pure).] 0. secs (0.u,0.s) +Chars 3233 - 3244 [repeat~red.] 0. secs (0.u,0.s) +Chars 3251 - 3263 [destruct~a1.] 0. secs (0.u,0.s) +Chars 3270 - 3282 [unfold~pure.] 0. secs (0.u,0.s) Chars 3283 - 3295 [reflexivity.] 0. secs (0.u,0.s) -Chars 3298 - 3302 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3298 - 3302 [Qed.] 0. secs (0.u,0.s) Chars 3307 - 3370 [#[global]~Instance~Iter_stateT...] 0. secs (0.u,0.s) Chars 3373 - 3379 [Proof.] 0. secs (0.u,0.s) -Chars 3384 - 3515 [exact~~(fun~(a~b~:~Type)~(f~:~...] 0. secs (0.u,0.s) +Chars 3384 - 3515 [exact~~~(fun~(a~b~:~Type)~(f~:...] 0. secs (0.u,0.s) Chars 3518 - 3526 [Defined.] 0. secs (0.u,0.s) Chars 3530 - 3670 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) Chars 3673 - 3679 [Proof.] 0. secs (0.u,0.s) -Chars 3684 - 3696 [(destruct~CM).] 0. secs (0.u,0.s) -Chars 3701 - 3712 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3717 - 3739 [(intros~a~b~x~y~H~a0~s).] 0. secs (0.u,0.s) -Chars 3744 - 3772 [(apply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 3777 - 3788 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3793 - 3805 [(destruct~a1).] 0. secs (0.u,0.s) -Chars 3810 - 3814 [(cbn).] 0. secs (0.u,0.s) -Chars 3819 - 3837 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 3684 - 3696 [destruct~CM.] 0. secs (0.u,0.s) +Chars 3701 - 3712 [repeat~red.] 0. secs (0.u,0.s) +Chars 3717 - 3739 [intros~a~b~x~y~H~a0~s.] 0. secs (0.u,0.s) +Chars 3744 - 3772 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 3777 - 3788 [repeat~red.] 0. secs (0.u,0.s) +Chars 3793 - 3805 [destruct~a1.] 0. secs (0.u,0.s) +Chars 3810 - 3814 [cbn.] 0. secs (0.u,0.s) +Chars 3819 - 3837 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 3842 - 3843 [-] 0. secs (0.u,0.s) -Chars 3844 - 3852 [(apply~H).] 0. secs (0.u,0.s) +Chars 3844 - 3852 [apply~H.] 0. secs (0.u,0.s) Chars 3857 - 3858 [-] 0. secs (0.u,0.s) -Chars 3859 - 3870 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3871 - 3912 [(destruct~a2~as~[s'~[x1|~y1]];...] 0. secs (0.u,0.s) +Chars 3859 - 3870 [repeat~red.] 0. secs (0.u,0.s) +Chars 3871 - 3912 [destruct~a2~as~[s'~[x1|~y1]];~...] 0. secs (0.u,0.s) Chars 3914 - 3918 [Qed.] 0.001 secs (0.001u,0.s) Chars 3922 - 3997 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 4000 - 4006 [Proof.] 0. secs (0.u,0.s) -Chars 4009 - 4021 [(destruct~CM).] 0. secs (0.u,0.s) -Chars 4024 - 4042 [(unfold~IterUnfold).] 0. secs (0.u,0.s) -Chars 4045 - 4058 [(intros~a~b~f).] 0. secs (0.u,0.s) -Chars 4061 - 4072 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4075 - 4087 [(intros~a0~s).] 0. secs (0.u,0.s) -Chars 4090 - 4114 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 4117 - 4143 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) -Chars 4146 - 4171 [(rewrite~iterative_unfold).] 0.003 secs (0.003u,0.s) -Chars 4222 - 4246 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 4249 - 4255 [(simpl).] 0. secs (0.u,0.s) -Chars 4258 - 4276 [(rewrite~bind_bind).] 0.003 secs (0.003u,0.s) -Chars 4279 - 4297 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 4009 - 4021 [destruct~CM.] 0. secs (0.u,0.s) +Chars 4024 - 4042 [unfold~IterUnfold.] 0. secs (0.u,0.s) +Chars 4045 - 4058 [intros~a~b~f.] 0. secs (0.u,0.s) +Chars 4061 - 4072 [repeat~red.] 0. secs (0.u,0.s) +Chars 4075 - 4087 [intros~a0~s.] 0. secs (0.u,0.s) +Chars 4090 - 4114 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 4117 - 4143 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) +Chars 4146 - 4171 [rewrite~iterative_unfold.] 0.002 secs (0.002u,0.s) +Chars 4222 - 4246 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 4249 - 4255 [simpl.] 0. secs (0.u,0.s) +Chars 4258 - 4276 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) +Chars 4279 - 4297 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 4300 - 4301 [+] 0. secs (0.u,0.s) Chars 4302 - 4314 [reflexivity.] 0. secs (0.u,0.s) Chars 4317 - 4318 [+] 0. secs (0.u,0.s) -Chars 4319 - 4330 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4331 - 4366 [(destruct~a1~as~[s'~[x|~y]];~s...] 0. secs (0.u,0.s) +Chars 4319 - 4330 [repeat~red.] 0. secs (0.u,0.s) +Chars 4331 - 4366 [destruct~a1~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) Chars 4371 - 4372 [*] 0. secs (0.u,0.s) -Chars 4373 - 4385 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 4386 - 4405 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 4373 - 4385 [unfold~pure.] 0. secs (0.u,0.s) +Chars 4386 - 4405 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) Chars 4412 - 4424 [reflexivity.] 0. secs (0.u,0.s) Chars 4429 - 4430 [*] 0. secs (0.u,0.s) -Chars 4431 - 4443 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 4444 - 4463 [(rewrite~bind_ret_l).] 0.021 secs (0.02u,0.s) +Chars 4431 - 4443 [unfold~pure.] 0. secs (0.u,0.s) +Chars 4444 - 4463 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) Chars 4470 - 4482 [reflexivity.] 0. secs (0.u,0.s) -Chars 4485 - 4489 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4485 - 4489 [Qed.] 0.003 secs (0.003u,0.s) Chars 4493 - 4570 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 4573 - 4579 [Proof.] 0. secs (0.u,0.s) -Chars 4584 - 4596 [(destruct~CM).] 0. secs (0.u,0.s) -Chars 4601 - 4620 [(unfold~IterNatural).] 0. secs (0.u,0.s) -Chars 4625 - 4642 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) -Chars 4647 - 4658 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4663 - 4675 [(intros~a0~s).] 0. secs (0.u,0.s) -Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.019 secs (0.018u,0.001s) -Chars 4718 - 4746 [(apply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 4751 - 4762 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4767 - 4779 [(destruct~a1).] 0. secs (0.u,0.s) -Chars 4784 - 4808 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 4813 - 4817 [(cbn).] 0. secs (0.u,0.s) -Chars 4822 - 4841 [(rewrite~!bind_bind).] 0.016 secs (0.012u,0.003s) -Chars 4846 - 4864 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 4584 - 4596 [destruct~CM.] 0. secs (0.u,0.s) +Chars 4601 - 4620 [unfold~IterNatural.] 0. secs (0.u,0.s) +Chars 4625 - 4642 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 4647 - 4658 [repeat~red.] 0. secs (0.u,0.s) +Chars 4663 - 4675 [intros~a0~s.] 0. secs (0.u,0.s) +Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.012 secs (0.012u,0.s) +Chars 4718 - 4746 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 4751 - 4762 [repeat~red.] 0. secs (0.u,0.s) +Chars 4767 - 4779 [destruct~a1.] 0. secs (0.u,0.s) +Chars 4784 - 4808 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 4813 - 4817 [cbn.] 0. secs (0.u,0.s) +Chars 4822 - 4841 [rewrite~!bind_bind.] 0.01 secs (0.007u,0.002s) +Chars 4846 - 4864 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 4869 - 4870 [-] 0. secs (0.u,0.s) Chars 4871 - 4883 [reflexivity.] 0. secs (0.u,0.s) Chars 4888 - 4889 [-] 0. secs (0.u,0.s) -Chars 4890 - 4901 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4902 - 4937 [(destruct~a2~as~[s'~[x|~y]];~s...] 0.001 secs (0.u,0.s) +Chars 4890 - 4901 [repeat~red.] 0. secs (0.u,0.s) +Chars 4902 - 4937 [destruct~a2~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) Chars 4944 - 4945 [+] 0. secs (0.u,0.s) -Chars 4946 - 4958 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 4959 - 4978 [(rewrite~bind_ret_l).] 0.005 secs (0.003u,0.001s) -Chars 4987 - 4991 [(cbn).] 0. secs (0.u,0.s) -Chars 4992 - 5016 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 5017 - 5021 [(cbn).] 0. secs (0.u,0.s) -Chars 5030 - 5048 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) -Chars 5057 - 5076 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 5085 - 5104 [(rewrite~bind_ret_l).] 0.002 secs (0.001u,0.s) -Chars 5113 - 5117 [(cbn).] 0. secs (0.u,0.s) -Chars 5126 - 5149 [(unfold~id_,~Id_Kleisli).] 0. secs (0.u,0.s) -Chars 5150 - 5162 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 5163 - 5182 [(rewrite~bind_ret_l).] 0.002 secs (0.001u,0.s) +Chars 4946 - 4958 [unfold~pure.] 0. secs (0.u,0.s) +Chars 4959 - 4978 [rewrite~bind_ret_l.] 0.003 secs (0.002u,0.s) +Chars 4987 - 4991 [cbn.] 0. secs (0.u,0.s) +Chars 4992 - 5016 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 5017 - 5021 [cbn.] 0. secs (0.u,0.s) +Chars 5030 - 5048 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 5057 - 5076 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5085 - 5104 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 5113 - 5117 [cbn.] 0. secs (0.u,0.s) +Chars 5126 - 5149 [unfold~id_,~Id_Kleisli.] 0. secs (0.u,0.s) +Chars 5150 - 5162 [unfold~pure.] 0. secs (0.u,0.s) +Chars 5163 - 5182 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 5183 - 5195 [reflexivity.] 0. secs (0.u,0.s) Chars 5202 - 5203 [+] 0. secs (0.u,0.s) -Chars 5204 - 5216 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 5217 - 5236 [(rewrite~bind_ret_l).] 0.005 secs (0.004u,0.s) -Chars 5245 - 5249 [(cbn).] 0. secs (0.u,0.s) -Chars 5250 - 5274 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 5275 - 5279 [(cbn).] 0. secs (0.u,0.s) -Chars 5288 - 5306 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 5315 - 5333 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 5204 - 5216 [unfold~pure.] 0. secs (0.u,0.s) +Chars 5217 - 5236 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 5245 - 5249 [cbn.] 0. secs (0.u,0.s) +Chars 5250 - 5274 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 5275 - 5279 [cbn.] 0. secs (0.u,0.s) +Chars 5288 - 5306 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 5315 - 5333 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 5342 - 5343 [*] 0. secs (0.u,0.s) Chars 5344 - 5356 [reflexivity.] 0. secs (0.u,0.s) Chars 5365 - 5366 [*] 0. secs (0.u,0.s) -Chars 5367 - 5378 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5379 - 5391 [(destruct~a2).] 0. secs (0.u,0.s) -Chars 5402 - 5406 [(cbn).] 0. secs (0.u,0.s) -Chars 5417 - 5436 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 5367 - 5378 [repeat~red.] 0. secs (0.u,0.s) +Chars 5379 - 5391 [destruct~a2.] 0. secs (0.u,0.s) +Chars 5402 - 5406 [cbn.] 0. secs (0.u,0.s) +Chars 5417 - 5436 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 5437 - 5449 [reflexivity.] 0. secs (0.u,0.s) -Chars 5452 - 5456 [Qed.] 0.009 secs (0.008u,0.s) -Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0.001 secs (0.001u,0.s) +Chars 5452 - 5456 [Qed.] 0.006 secs (0.006u,0.s) +Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0. secs (0.u,0.s) Chars 5644 - 5650 [Proof.] 0. secs (0.u,0.s) Chars 5655 - 5667 [reflexivity.] 0. secs (0.u,0.s) Chars 5670 - 5674 [Qed.] 0. secs (0.u,0.s) Chars 5679 - 5798 [Lemma~eq2_to_eq1~:~~~forall~a~...] 0. secs (0.u,0.s) Chars 5801 - 5807 [Proof.] 0. secs (0.u,0.s) -Chars 5812 - 5833 [(intros~a~b~f~g~x~s~H).] 0. secs (0.u,0.s) -Chars 5838 - 5846 [(apply~H).] 0. secs (0.u,0.s) +Chars 5812 - 5833 [intros~a~b~f~g~x~s~H.] 0. secs (0.u,0.s) +Chars 5838 - 5846 [apply~H.] 0. secs (0.u,0.s) Chars 5849 - 5853 [Qed.] 0. secs (0.u,0.s) -Chars 5858 - 6115 [Lemma~iter_dinatural_helper~:~...] 0.002 secs (0.002u,0.s) +Chars 5858 - 6115 [Lemma~iter_dinatural_helper~:~...] 0.001 secs (0.001u,0.s) Chars 6118 - 6124 [Proof.] 0. secs (0.u,0.s) -Chars 6129 - 6141 [(destruct~CM).] 0. secs (0.u,0.s) -Chars 6146 - 6163 [(intros~a~b~c~f~g).] 0. secs (0.u,0.s) -Chars 6168 - 6179 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6184 - 6196 [(destruct~a0).] 0. secs (0.u,0.s) -Chars 6201 - 6238 [(unfold~cat,~Cat_Kleisli,~inte...] 0. secs (0.u,0.s) -Chars 6243 - 6247 [(cbn).] 0. secs (0.u,0.s) -Chars 6252 - 6277 [(repeat~rewrite~bind_bind).] 0.01 secs (0.01u,0.s) -Chars 6282 - 6300 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 6129 - 6141 [destruct~CM.] 0. secs (0.u,0.s) +Chars 6146 - 6163 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) +Chars 6168 - 6179 [repeat~red.] 0. secs (0.u,0.s) +Chars 6184 - 6196 [destruct~a0.] 0. secs (0.u,0.s) +Chars 6201 - 6238 [unfold~cat,~Cat_Kleisli,~inter...] 0. secs (0.u,0.s) +Chars 6243 - 6247 [cbn.] 0. secs (0.u,0.s) +Chars 6252 - 6277 [repeat~rewrite~bind_bind.] 0.006 secs (0.006u,0.s) +Chars 6282 - 6300 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 6305 - 6306 [-] 0. secs (0.u,0.s) Chars 6307 - 6319 [reflexivity.] 0. secs (0.u,0.s) Chars 6324 - 6325 [-] 0. secs (0.u,0.s) -Chars 6326 - 6337 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6344 - 6372 [(destruct~a1~as~[s'~[x|~y]]).] 0. secs (0.u,0.s) +Chars 6326 - 6337 [repeat~red.] 0. secs (0.u,0.s) +Chars 6344 - 6372 [destruct~a1~as~[s'~[x|~y]].] 0. secs (0.u,0.s) Chars 6379 - 6380 [+] 0. secs (0.u,0.s) -Chars 6381 - 6393 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 6402 - 6421 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) -Chars 6430 - 6476 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) +Chars 6381 - 6393 [unfold~pure.] 0. secs (0.u,0.s) +Chars 6402 - 6421 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 6430 - 6476 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) Chars 6485 - 6497 [reflexivity.] 0. secs (0.u,0.s) Chars 6504 - 6505 [+] 0. secs (0.u,0.s) -Chars 6506 - 6518 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 6519 - 6538 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) -Chars 6547 - 6593 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) -Chars 6604 - 6608 [(cbn).] 0. secs (0.u,0.s) -Chars 6619 - 6638 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 6506 - 6518 [unfold~pure.] 0. secs (0.u,0.s) +Chars 6519 - 6538 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 6547 - 6593 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 6604 - 6608 [cbn.] 0. secs (0.u,0.s) +Chars 6619 - 6638 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 6639 - 6651 [reflexivity.] 0. secs (0.u,0.s) -Chars 6654 - 6658 [Qed.] 0.006 secs (0.006u,0.s) +Chars 6654 - 6658 [Qed.] 0.004 secs (0.004u,0.s) Chars 6663 - 6744 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 6747 - 6753 [Proof.] 0. secs (0.u,0.s) -Chars 6758 - 6770 [(destruct~CM).] 0. secs (0.u,0.s) -Chars 6775 - 6796 [(unfold~IterDinatural).] 0. secs (0.u,0.s) -Chars 6801 - 6812 [(repeat~red).] 0. secs (0.u,0.s) -Chars 6817 - 6840 [(intros~a~b~c~f~g~a0~a1).] 0. secs (0.u,0.s) -Chars 6845 - 6871 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) -Chars 6876 - 6896 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 6901 - 6930 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 6935 - 6963 [(apply~iter_dinatural_helper).] 0. secs (0.u,0.s) -Chars 6968 - 6996 [(rewrite~iterative_dinatural).] 0.004 secs (0.004u,0.s) -Chars 7001 - 7005 [(cbn).] 0. secs (0.u,0.s) -Chars 7010 - 7034 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 7039 - 7057 [(rewrite~bind_bind).] 0.007 secs (0.007u,0.s) -Chars 7062 - 7081 [(unfold~internalize).] 0. secs (0.u,0.s) -Chars 7082 - 7086 [(cbn).] 0. secs (0.u,0.s) -Chars 7091 - 7109 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 6758 - 6770 [destruct~CM.] 0. secs (0.u,0.s) +Chars 6775 - 6796 [unfold~IterDinatural.] 0. secs (0.u,0.s) +Chars 6801 - 6812 [repeat~red.] 0. secs (0.u,0.s) +Chars 6817 - 6840 [intros~a~b~c~f~g~a0~a1.] 0. secs (0.u,0.s) +Chars 6845 - 6871 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) +Chars 6876 - 6896 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 6901 - 6930 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 6935 - 6963 [apply~iter_dinatural_helper.] 0. secs (0.u,0.s) +Chars 6968 - 6996 [rewrite~iterative_dinatural.] 0.004 secs (0.004u,0.s) +Chars 7001 - 7005 [cbn.] 0. secs (0.u,0.s) +Chars 7010 - 7034 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 7039 - 7057 [rewrite~bind_bind.] 0.003 secs (0.003u,0.s) +Chars 7062 - 7081 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 7082 - 7086 [cbn.] 0. secs (0.u,0.s) +Chars 7091 - 7109 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 7114 - 7115 [-] 0. secs (0.u,0.s) Chars 7116 - 7128 [reflexivity.] 0. secs (0.u,0.s) Chars 7133 - 7134 [-] 0. secs (0.u,0.s) -Chars 7135 - 7146 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7153 - 7180 [(destruct~a2~as~[s~[x|~y]]).] 0. secs (0.u,0.s) +Chars 7135 - 7146 [repeat~red.] 0. secs (0.u,0.s) +Chars 7153 - 7180 [destruct~a2~as~[s~[x|~y]].] 0. secs (0.u,0.s) Chars 7187 - 7188 [+] 0. secs (0.u,0.s) -Chars 7189 - 7201 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 7210 - 7229 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) -Chars 7238 - 7242 [(cbn).] 0. secs (0.u,0.s) -Chars 7251 - 7280 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 7289 - 7300 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7309 - 7321 [(destruct~a2).] 0. secs (0.u,0.s) -Chars 7330 - 7334 [(cbn).] 0. secs (0.u,0.s) -Chars 7335 - 7354 [(rewrite~!bind_bind).] 0.009 secs (0.009u,0.s) -Chars 7363 - 7381 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 7189 - 7201 [unfold~pure.] 0. secs (0.u,0.s) +Chars 7210 - 7229 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 7238 - 7242 [cbn.] 0. secs (0.u,0.s) +Chars 7251 - 7280 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 7289 - 7300 [repeat~red.] 0. secs (0.u,0.s) +Chars 7309 - 7321 [destruct~a2.] 0. secs (0.u,0.s) +Chars 7330 - 7334 [cbn.] 0. secs (0.u,0.s) +Chars 7335 - 7354 [rewrite~!bind_bind.] 0.006 secs (0.006u,0.s) +Chars 7363 - 7381 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 7390 - 7391 [*] 0. secs (0.u,0.s) Chars 7392 - 7404 [reflexivity.] 0. secs (0.u,0.s) Chars 7413 - 7414 [*] 0. secs (0.u,0.s) -Chars 7415 - 7426 [(repeat~red).] 0. secs (0.u,0.s) -Chars 7437 - 7466 [(destruct~a2~as~[s'~[x'|~y]]).] 0. secs (0.u,0.s) +Chars 7415 - 7426 [repeat~red.] 0. secs (0.u,0.s) +Chars 7437 - 7466 [destruct~a2~as~[s'~[x'|~y]].] 0. secs (0.u,0.s) Chars 7477 - 7479 [**] 0. secs (0.u,0.s) -Chars 7480 - 7484 [(cbn).] 0. secs (0.u,0.s) -Chars 7486 - 7505 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 7506 - 7552 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) +Chars 7480 - 7484 [cbn.] 0. secs (0.u,0.s) +Chars 7486 - 7505 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7506 - 7552 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) Chars 7566 - 7578 [reflexivity.] 0. secs (0.u,0.s) Chars 7589 - 7591 [**] 0. secs (0.u,0.s) -Chars 7592 - 7596 [(cbn).] 0. secs (0.u,0.s) -Chars 7598 - 7617 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 7618 - 7664 [(unfold~case_,~Case_Kleisli,~F...] 0. secs (0.u,0.s) -Chars 7678 - 7697 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 7592 - 7596 [cbn.] 0. secs (0.u,0.s) +Chars 7598 - 7617 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 7618 - 7664 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) +Chars 7678 - 7697 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) Chars 7698 - 7710 [reflexivity.] 0. secs (0.u,0.s) Chars 7717 - 7718 [+] 0. secs (0.u,0.s) -Chars 7719 - 7731 [(unfold~pure).] 0. secs (0.u,0.s) -Chars 7740 - 7759 [(rewrite~bind_ret_l).] 0.004 secs (0.004u,0.s) -Chars 7768 - 7772 [(cbn).] 0. secs (0.u,0.s) +Chars 7719 - 7731 [unfold~pure.] 0. secs (0.u,0.s) +Chars 7740 - 7759 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 7768 - 7772 [cbn.] 0. secs (0.u,0.s) Chars 7781 - 7793 [reflexivity.] 0. secs (0.u,0.s) -Chars 7798 - 7802 [Qed.] 0.014 secs (0.013u,0.s) +Chars 7798 - 7802 [Qed.] 0.009 secs (0.009u,0.s) Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 7893 - 7899 [Proof.] 0. secs (0.u,0.s) -Chars 7904 - 7916 [(destruct~CM).] 0. secs (0.u,0.s) -Chars 7921 - 7943 [(unfold~IterCodiagonal).] 0. secs (0.u,0.s) -Chars 7948 - 7961 [(intros~a~b~f).] 0. secs (0.u,0.s) -Chars 7966 - 7992 [(unfold~iter,~Iter_stateTM).] 0. secs (0.u,0.s) -Chars 7997 - 8008 [(repeat~red).] 0. secs (0.u,0.s) -Chars 8013 - 8020 [(intros).] 0. secs (0.u,0.s) -Chars 8025 - 8045 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 8050 - 8079 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 8084 - 8110 [(eapply~Proper_cat_Kleisli).] 0. secs (0.u,0.s) -Chars 8116 - 8283 [(assert~~~(internalize~~~~~~(f...] 0.001 secs (0.001u,0.s) +Chars 7904 - 7916 [destruct~CM.] 0. secs (0.u,0.s) +Chars 7921 - 7943 [unfold~IterCodiagonal.] 0. secs (0.u,0.s) +Chars 7948 - 7961 [intros~a~b~f.] 0. secs (0.u,0.s) +Chars 7966 - 7992 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) +Chars 7997 - 8008 [repeat~red.] 0. secs (0.u,0.s) +Chars 8013 - 8020 [intros.] 0. secs (0.u,0.s) +Chars 8025 - 8045 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 8050 - 8079 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 8084 - 8110 [eapply~Proper_cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8116 - 8283 [assert~~(internalize~~~~~(fun~...] 0. secs (0.u,0.s) Chars 8288 - 8289 [{] 0. secs (0.u,0.s) -Chars 8290 - 8301 [(repeat~red).] 0. secs (0.u,0.s) -Chars 8308 - 8320 [(destruct~a2).] 0. secs (0.u,0.s) -Chars 8327 - 8346 [(unfold~internalize).] 0. secs (0.u,0.s) -Chars 8353 - 8357 [(cbn).] 0. secs (0.u,0.s) +Chars 8290 - 8301 [repeat~red.] 0. secs (0.u,0.s) +Chars 8308 - 8320 [destruct~a2.] 0. secs (0.u,0.s) +Chars 8327 - 8346 [unfold~internalize.] 0. secs (0.u,0.s) +Chars 8353 - 8357 [cbn.] 0. secs (0.u,0.s) Chars 8359 - 8371 [reflexivity.] 0. secs (0.u,0.s) Chars 8376 - 8377 [}] 0. secs (0.u,0.s) -Chars 8381 - 8389 [(apply~H).] 0. secs (0.u,0.s) -Chars 8393 - 8405 [reflexivity.] 0. secs (0.u,0.s) -Chars 8409 - 8429 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 8434 - 8463 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 8467 - 8491 [(apply~iterative_natural).] 0. secs (0.u,0.s) -Chars 8495 - 8524 [(rewrite~iterative_codiagonal).] 0.007 secs (0.007u,0.s) -Chars 8528 - 8557 [(eapply~iterative_proper_iter).] 0. secs (0.u,0.s) -Chars 8561 - 8585 [(rewrite~internalize_cat).] 0.007 secs (0.007u,0.s) -Chars 8645 - 8656 [(repeat~red).] 0. secs (0.u,0.s) -Chars 8660 - 8672 [(destruct~a2).] 0. secs (0.u,0.s) -Chars 8676 - 8700 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 8701 - 8705 [(cbn).] 0. secs (0.u,0.s) -Chars 8709 - 8734 [(repeat~rewrite~bind_bind).] 0.019 secs (0.018u,0.s) -Chars 8738 - 8763 [(unfold~internalize,~pure).] 0. secs (0.u,0.s) -Chars 8767 - 8771 [(cbn).] 0. secs (0.u,0.s) -Chars 8775 - 8793 [(apply~Proper_bind).] 0. secs (0.u,0.s) +Chars 8381 - 8389 [apply~H.] 0. secs (0.u,0.s) +Chars 8393 - 8405 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8409 - 8429 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 8434 - 8463 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 8467 - 8491 [apply~iterative_natural.] 0. secs (0.u,0.s) +Chars 8495 - 8524 [rewrite~iterative_codiagonal.] 0.003 secs (0.003u,0.s) +Chars 8528 - 8557 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) +Chars 8561 - 8585 [rewrite~internalize_cat.] 0.005 secs (0.005u,0.s) +Chars 8645 - 8656 [repeat~red.] 0. secs (0.u,0.s) +Chars 8660 - 8672 [destruct~a2.] 0. secs (0.u,0.s) +Chars 8676 - 8700 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 8701 - 8705 [cbn.] 0. secs (0.u,0.s) +Chars 8709 - 8734 [repeat~rewrite~bind_bind.] 0.013 secs (0.013u,0.s) +Chars 8738 - 8763 [unfold~internalize,~pure.] 0. secs (0.u,0.s) +Chars 8767 - 8771 [cbn.] 0. secs (0.u,0.s) +Chars 8775 - 8793 [apply~Proper_bind.] 0. secs (0.u,0.s) Chars 8798 - 8799 [-] 0. secs (0.u,0.s) Chars 8800 - 8812 [reflexivity.] 0. secs (0.u,0.s) Chars 8817 - 8818 [-] 0. secs (0.u,0.s) -Chars 8819 - 8830 [(repeat~red).] 0. secs (0.u,0.s) -Chars 8837 - 8871 [(destruct~a3~as~[s'~[x|~[y|~z]...] 0. secs (0.u,0.s) +Chars 8819 - 8830 [repeat~red.] 0. secs (0.u,0.s) +Chars 8837 - 8871 [destruct~a3~as~[s'~[x|~[y|~z]]].] 0. secs (0.u,0.s) Chars 8878 - 8879 [+] 0. secs (0.u,0.s) -Chars 8880 - 8899 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) -Chars 8908 - 8912 [(cbn).] 0. secs (0.u,0.s) -Chars 8913 - 8942 [(unfold~id_,~Id_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 8951 - 8970 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 8979 - 9003 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 9012 - 9030 [(rewrite~bind_bind).] 0.003 secs (0.002u,0.s) -Chars 9039 - 9058 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) -Chars 9067 - 9071 [(cbn).] 0. secs (0.u,0.s) -Chars 9073 - 9104 [(unfold~inl_,~Inl_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 9113 - 9132 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) +Chars 8880 - 8899 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 8908 - 8912 [cbn.] 0. secs (0.u,0.s) +Chars 8913 - 8942 [unfold~id_,~Id_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 8951 - 8970 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 8979 - 9003 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 9012 - 9030 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) +Chars 9039 - 9058 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) +Chars 9067 - 9071 [cbn.] 0. secs (0.u,0.s) +Chars 9073 - 9104 [unfold~inl_,~Inl_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 9113 - 9132 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 9133 - 9145 [reflexivity.] 0. secs (0.u,0.s) Chars 9152 - 9153 [+] 0. secs (0.u,0.s) -Chars 9154 - 9173 [(rewrite~bind_ret_l).] 0.005 secs (0.005u,0.s) -Chars 9182 - 9186 [(cbn).] 0. secs (0.u,0.s) -Chars 9195 - 9214 [(rewrite~bind_ret_l).] 0.003 secs (0.002u,0.s) -Chars 9223 - 9247 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 9256 - 9286 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) -Chars 9287 - 9291 [(cbn).] 0. secs (0.u,0.s) -Chars 9300 - 9331 [(unfold~inr_,~Inr_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 9340 - 9359 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 9154 - 9173 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 9182 - 9186 [cbn.] 0. secs (0.u,0.s) +Chars 9195 - 9214 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 9223 - 9247 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 9256 - 9286 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 9287 - 9291 [cbn.] 0. secs (0.u,0.s) +Chars 9300 - 9331 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 9340 - 9359 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 9360 - 9372 [reflexivity.] 0. secs (0.u,0.s) Chars 9379 - 9380 [+] 0. secs (0.u,0.s) -Chars 9381 - 9400 [(rewrite~bind_ret_l).] 0.007 secs (0.007u,0.s) -Chars 9409 - 9413 [(cbn).] 0. secs (0.u,0.s) -Chars 9422 - 9441 [(rewrite~bind_ret_l).] 0.003 secs (0.003u,0.s) -Chars 9450 - 9474 [(unfold~cat,~Cat_Kleisli).] 0. secs (0.u,0.s) -Chars 9483 - 9513 [(rewrite~bind_bind,~bind_ret_l).] 0.005 secs (0.005u,0.s) -Chars 9514 - 9518 [(cbn).] 0. secs (0.u,0.s) -Chars 9527 - 9558 [(unfold~inr_,~Inr_Kleisli,~pure).] 0. secs (0.u,0.s) -Chars 9567 - 9586 [(rewrite~bind_ret_l).] 0.002 secs (0.002u,0.s) +Chars 9381 - 9400 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) +Chars 9409 - 9413 [cbn.] 0. secs (0.u,0.s) +Chars 9422 - 9441 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 9450 - 9474 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) +Chars 9483 - 9513 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) +Chars 9514 - 9518 [cbn.] 0. secs (0.u,0.s) +Chars 9527 - 9558 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) +Chars 9567 - 9586 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) Chars 9595 - 9607 [reflexivity.] 0. secs (0.u,0.s) -Chars 9610 - 9614 [Qed.] 0.018 secs (0.018u,0.s) -Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0.001 secs (0.001u,0.s) +Chars 9610 - 9614 [Qed.] 0.012 secs (0.012u,0.s) +Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) -Chars 9703 - 9736 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 9703 - 9736 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 9739 - 9743 [Qed.] 0. secs (0.u,0.s) -Chars 9745 - 9755 [End~State.] 0.003 secs (0.003u,0.s) +Chars 9745 - 9755 [End~State.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/Utils.v.timing b/theories/Basics/Utils.v.timing index 6a6354aa..5e8477ff 100644 --- a/theories/Basics/Utils.v.timing +++ b/theories/Basics/Utils.v.timing @@ -1,7 +1,7 @@ Chars 0 - 51 [#[global]~Set~Warnings~"-intui...] 0. secs (0.u,0.s) -Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.012 secs (0.006u,0.002s) +Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) Chars 90 - 121 [Require~Import~Program.Tactics.] 0. secs (0.u,0.s) -Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.047 secs (0.027u,0.008s) +Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.022 secs (0.018u,0.003s) Chars 155 - 207 [Ltac~inv~H~:=~inversion~H;~cle...] 0. secs (0.u,0.s) Chars 278 - 334 [Lemma~hexploit_mp~:~forall~P~Q...] 0. secs (0.u,0.s) Chars 335 - 341 [Proof.] 0. secs (0.u,0.s) @@ -24,7 +24,7 @@ Chars 3438 - 3670 [Ltac~~crunch~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) Chars 3672 - 3993 [Ltac~~saturate~H~:=~~~match~go...] 0. secs (0.u,0.s) Chars 4104 - 4180 [Lemma~pfp_gfp~{X}~{L~:~Complet...] 0. secs (0.u,0.s) Chars 4181 - 4187 [Proof.] 0. secs (0.u,0.s) -Chars 4188 - 4202 [(apply~b_chain).] 0. secs (0.u,0.s) +Chars 4188 - 4202 [apply~b_chain.] 0. secs (0.u,0.s) Chars 4203 - 4207 [Qed.] 0. secs (0.u,0.s) Chars 4260 - 4574 [Ltac~~step_~:=~~~match~goal~wi...] 0. secs (0.u,0.s) Chars 4576 - 4739 [Ltac~~step~:=~~~match~goal~wit...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeDefinition.v.timing b/theories/Core/ITreeDefinition.v.timing index 15c265f6..e057b526 100644 --- a/theories/Core/ITreeDefinition.v.timing +++ b/theories/Core/ITreeDefinition.v.timing @@ -1,8 +1,8 @@ Chars 63 - 104 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 105 - 150 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) Chars 151 - 190 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) -Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.004 secs (0.003u,0.001s) -Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.033 secs (0.026u,0.007s) +Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.003 secs (0.002u,0.001s) +Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.022 secs (0.018u,0.003s) Chars 267 - 290 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 291 - 315 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 316 - 342 [Set~Primitive~Projections.] 0. secs (0.u,0.s) @@ -24,7 +24,7 @@ Chars 3361 - 3393 [Notation~Ret~x:=~(go~(RetF~x)).] 0. secs (0.u,0.s) Chars 3394 - 3426 [Notation~Tau~t:=~(go~(TauF~t)).] 0. secs (0.u,0.s) Chars 3427 - 3463 [Notation~Vis~e~k:=~(go~(VisF~e...] 0. secs (0.u,0.s) Chars 5126 - 5139 [Module~ITree.] 0. secs (0.u,0.s) -Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0.001 secs (0.u,0.s) +Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 5899 - 6013 [Definition~bind~{E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 6089 - 6213 [Definition~cat~{E}~{T}~{U}~{V}...] 0. secs (0.u,0.s) Chars 6495 - 6595 [Notation~on_left~lr~l~t:=~matc...] 0. secs (0.u,0.s) @@ -50,6 +50,6 @@ Chars 9616 - 9727 [#[global]~Instance~Monad_itree...] 0. secs (0.u,0.s) Chars 9729 - 9817 [#[global]~Instance~MonadIter_i...] 0. secs (0.u,0.s) Chars 9838 - 9885 [Ltac~genobs~x~ox~:=~remember~(...] 0. secs (0.u,0.s) Chars 9886 - 9983 [Ltac~~genobs_clear~x~ox~:=~~~g...] 0. secs (0.u,0.s) -Chars 9984 - 10239 [Ltac~~simpobs~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) -Chars 10275 - 10321 [Ltac~desobs~t~H~:=~destruct~(o...] 0. secs (0.u,0.s) -Chars 10403 - 10603 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0. secs (0.u,0.s) +Chars 9984 - 10481 [Ltac~~simpobs~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) +Chars 10517 - 10563 [Ltac~desobs~t~H~:=~destruct~(o...] 0. secs (0.u,0.s) +Chars 10645 - 10845 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeMonad.v.timing b/theories/Core/ITreeMonad.v.timing index 72ab3d97..1709d17f 100644 --- a/theories/Core/ITreeMonad.v.timing +++ b/theories/Core/ITreeMonad.v.timing @@ -1,36 +1,36 @@ -Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.053 secs (0.042u,0.011s) -Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0.001 secs (0.u,0.s) +Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.037 secs (0.03u,0.007s) +Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0. secs (0.u,0.s) Chars 353 - 424 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) Chars 425 - 431 [Proof.] 0. secs (0.u,0.s) -Chars 434 - 445 [(repeat~red).] 0. secs (0.u,0.s) -Chars 448 - 457 [(intros~a).] 0. secs (0.u,0.s) +Chars 434 - 445 [repeat~red.] 0. secs (0.u,0.s) +Chars 448 - 457 [intros~a.] 0. secs (0.u,0.s) Chars 460 - 478 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 479 - 483 [Qed.] 0. secs (0.u,0.s) Chars 485 - 548 [#[global]~Instance~MonadLawsE_...] 0. secs (0.u,0.s) Chars 549 - 555 [Proof.] 0. secs (0.u,0.s) Chars 558 - 570 [constructor.] 0. secs (0.u,0.s) Chars 573 - 574 [-] 0. secs (0.u,0.s) -Chars 575 - 590 [(intros~a~b~f~x).] 0. secs (0.u,0.s) -Chars 595 - 637 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) -Chars 642 - 664 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) -Chars 665 - 684 [(rewrite~bind_ret_l).] 0.001 secs (0.001u,0.s) +Chars 575 - 590 [intros~a~b~f~x.] 0. secs (0.u,0.s) +Chars 595 - 637 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) +Chars 642 - 664 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) +Chars 665 - 684 [rewrite~bind_ret_l.] 0.001 secs (0.u,0.s) Chars 685 - 697 [reflexivity.] 0. secs (0.u,0.s) Chars 700 - 701 [-] 0. secs (0.u,0.s) -Chars 702 - 713 [(intros~a~x).] 0. secs (0.u,0.s) -Chars 717 - 759 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) -Chars 764 - 786 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) -Chars 787 - 806 [(rewrite~bind_ret_r).] 0. secs (0.u,0.s) +Chars 702 - 713 [intros~a~x.] 0. secs (0.u,0.s) +Chars 717 - 759 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) +Chars 764 - 786 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) +Chars 787 - 806 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) Chars 807 - 819 [reflexivity.] 0. secs (0.u,0.s) Chars 822 - 823 [-] 0. secs (0.u,0.s) -Chars 824 - 843 [(intros~a~b~c~x~f~g).] 0. secs (0.u,0.s) -Chars 844 - 886 [(unfold~Monad.bind,~Monad.ret,...] 0. secs (0.u,0.s) -Chars 891 - 913 [(unfold~eq1,~Eq1_ITree).] 0. secs (0.u,0.s) -Chars 914 - 932 [(rewrite~bind_bind).] 0.001 secs (0.u,0.s) -Chars 933 - 945 [reflexivity.] 0.018 secs (0.016u,0.001s) +Chars 824 - 843 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) +Chars 844 - 886 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) +Chars 891 - 913 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) +Chars 914 - 932 [rewrite~bind_bind.] 0.013 secs (0.012u,0.s) +Chars 933 - 945 [reflexivity.] 0. secs (0.u,0.s) Chars 948 - 949 [-] 0. secs (0.u,0.s) -Chars 950 - 981 [(unfold~Monad.bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 986 - 993 [(intros).] 0. secs (0.u,0.s) -Chars 998 - 1009 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1014 - 1021 [(intros).] 0. secs (0.u,0.s) -Chars 1026 - 1048 [(apply~eqit_bind;~auto).] 0. secs (0.u,0.s) +Chars 950 - 981 [unfold~Monad.bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 986 - 993 [intros.] 0. secs (0.u,0.s) +Chars 998 - 1009 [repeat~red.] 0. secs (0.u,0.s) +Chars 1014 - 1021 [intros.] 0. secs (0.u,0.s) +Chars 1026 - 1048 [apply~eqit_bind;~auto.] 0. secs (0.u,0.s) Chars 1049 - 1053 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/KTree.v.timing b/theories/Core/KTree.v.timing index 0005424f..d7897806 100644 --- a/theories/Core/KTree.v.timing +++ b/theories/Core/KTree.v.timing @@ -1,5 +1,5 @@ -Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.052 secs (0.041u,0.01s) +Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.035 secs (0.029u,0.006s) Chars 382 - 414 [Implicit~Type~E~:~Type~->~Type.] 0. secs (0.u,0.s) Chars 415 - 441 [Implicit~Types~a~b~:~Type.] 0. secs (0.u,0.s) Chars 443 - 483 [Notation~ktree~E:=~(Kleisli~(i...] 0. secs (0.u,0.s) diff --git a/theories/Core/KTreeFacts.v.timing b/theories/Core/KTreeFacts.v.timing index f18716bd..034fa20f 100644 --- a/theories/Core/KTreeFacts.v.timing +++ b/theories/Core/KTreeFacts.v.timing @@ -1,6 +1,6 @@ -Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 97 - 192 [From~Stdlib~Require~Import~Cla...] 0.001 secs (0.001u,0.s) -Chars 194 - 538 [From~ITree~Require~Import~Basi...] 0.052 secs (0.041u,0.01s) +Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 97 - 192 [From~Stdlib~Require~Import~Cla...] 0.001 secs (0.u,0.s) +Chars 194 - 538 [From~ITree~Require~Import~Basi...] 0.035 secs (0.029u,0.006s) Chars 539 - 559 [Import~CatNotations.] 0. secs (0.u,0.s) Chars 560 - 589 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 590 - 617 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) @@ -8,269 +8,269 @@ Chars 634 - 895 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) Chars 923 - 967 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) Chars 970 - 1157 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) Chars 1159 - 1200 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) -Chars 1203 - 1507 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.022 secs (0.019u,0.002s) +Chars 1203 - 1507 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.014 secs (0.013u,0.001s) Chars 1508 - 1514 [Proof.] 0. secs (0.u,0.s) -Chars 1517 - 1529 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1592 - 1599 [(intros).] 0. secs (0.u,0.s) -Chars 1722 - 1743 [(rewrite~!unfold_iter).] 0.066 secs (0.066u,0.s) -Chars 1746 - 1774 [(rewrite~bind_map,~bind_bind).] 0.042 secs (0.034u,0.008s) -Chars 1777 - 1783 [ebind.] 0.007 secs (0.007u,0.s) -Chars 1787 - 1807 [(intros~[a|~b]~_~[]).] 0.001 secs (0.001u,0.s) +Chars 1517 - 1529 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1592 - 1599 [intros.] 0. secs (0.u,0.s) +Chars 1722 - 1743 [rewrite~!unfold_iter.] 0.049 secs (0.049u,0.s) +Chars 1746 - 1774 [rewrite~bind_map,~bind_bind.] 0.029 secs (0.024u,0.004s) +Chars 1777 - 1783 [ebind.] 0.005 secs (0.005u,0.s) +Chars 1787 - 1807 [intros~[a|~b]~_~[].] 0.001 secs (0.001u,0.s) Chars 1810 - 1811 [-] 0. secs (0.u,0.s) -Chars 1812 - 1829 [(rewrite~bind_tau).] 0.016 secs (0.016u,0.s) +Chars 1812 - 1829 [rewrite~bind_tau.] 0.011 secs (0.011u,0.s) Chars 1830 - 1835 [taus.] 0. secs (0.u,0.s) -Chars 1840 - 1851 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 1840 - 1851 [eapply~CIH.] 0. secs (0.u,0.s) Chars 1855 - 1856 [-] 0. secs (0.u,0.s) -Chars 1857 - 1888 [(rewrite~bind_ret_l,~tau_euttge).] 0.023 secs (0.022u,0.001s) -Chars 1949 - 1959 [(do~2~step).] 0.01 secs (0.009u,0.s) +Chars 1857 - 1888 [rewrite~bind_ret_l,~tau_euttge.] 0.015 secs (0.015u,0.s) +Chars 1949 - 1959 [do~2~step.] 0.007 secs (0.007u,0.s) Chars 1960 - 1969 [revert~b.] 0. secs (0.u,0.s) -Chars 1970 - 1982 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1983 - 1990 [(intros).] 0. secs (0.u,0.s) -Chars 1996 - 2017 [(rewrite~!unfold_iter).] 0.032 secs (0.032u,0.s) -Chars 2022 - 2039 [(rewrite~bind_map).] 0.016 secs (0.016u,0.s) -Chars 2044 - 2050 [ebind.] 0.008 secs (0.008u,0.s) -Chars 2056 - 2084 [(intros~[b'|~c'']~_~[];~cbn).] 0.001 secs (0.001u,0.s) +Chars 1970 - 1982 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1983 - 1990 [intros.] 0. secs (0.u,0.s) +Chars 1996 - 2017 [rewrite~!unfold_iter.] 0.023 secs (0.023u,0.s) +Chars 2022 - 2039 [rewrite~bind_map.] 0.011 secs (0.011u,0.s) +Chars 2044 - 2050 [ebind.] 0.006 secs (0.006u,0.s) +Chars 2056 - 2084 [intros~[b'|~c'']~_~[];~cbn.] 0.001 secs (0.001u,0.s) Chars 2089 - 2090 [+] 0. secs (0.u,0.s) Chars 2091 - 2100 [now~taus.] 0. secs (0.u,0.s) Chars 2105 - 2106 [+] 0. secs (0.u,0.s) Chars 2107 - 2119 [reflexivity.] 0. secs (0.u,0.s) -Chars 2120 - 2124 [Qed.] 0.019 secs (0.018u,0.s) +Chars 2120 - 2124 [Qed.] 0.013 secs (0.013u,0.s) Chars 2129 - 2523 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) Chars 2533 - 2551 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) -Chars 2552 - 2559 [(intros).] 0. secs (0.u,0.s) +Chars 2552 - 2559 [intros.] 0. secs (0.u,0.s) Chars 2563 - 2597 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 2600 - 2625 [(do~2~rewrite~unfold_iter).] 0.027 secs (0.027u,0.s) -Chars 2628 - 2651 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 2655 - 2665 [(do~2~step).] 0.016 secs (0.015u,0.s) -Chars 2666 - 2682 [(apply~eutt_body).] 0. secs (0.u,0.s) -Chars 2686 - 2721 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 2723 - 2727 [Qed.] 0.005 secs (0.005u,0.s) +Chars 2600 - 2625 [do~2~rewrite~unfold_iter.] 0.019 secs (0.019u,0.s) +Chars 2628 - 2651 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 2655 - 2665 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 2666 - 2682 [apply~eutt_body.] 0. secs (0.u,0.s) +Chars 2686 - 2721 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.u,0.s) +Chars 2723 - 2727 [Qed.] 0.004 secs (0.004u,0.s) Chars 2729 - 3111 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) Chars 3112 - 3118 [Proof.] 0. secs (0.u,0.s) Chars 3121 - 3139 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3140 - 3147 [(intros).] 0. secs (0.u,0.s) +Chars 3140 - 3147 [intros.] 0. secs (0.u,0.s) Chars 3151 - 3185 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3188 - 3213 [(do~2~rewrite~unfold_iter).] 0.028 secs (0.028u,0.s) -Chars 3216 - 3222 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3225 - 3242 [(do~2~step;~eauto).] 0.015 secs (0.015u,0.s) -Chars 3246 - 3281 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) -Chars 3283 - 3287 [Qed.] 0.006 secs (0.006u,0.s) -Chars 3289 - 3704 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0.001 secs (0.001u,0.s) +Chars 3188 - 3213 [do~2~rewrite~unfold_iter.] 0.02 secs (0.019u,0.s) +Chars 3216 - 3222 [ebind.] 0.003 secs (0.003u,0.s) +Chars 3225 - 3242 [do~2~step;~eauto.] 0.011 secs (0.011u,0.s) +Chars 3246 - 3281 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) +Chars 3283 - 3287 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3289 - 3704 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0. secs (0.u,0.s) Chars 3705 - 3711 [Proof.] 0. secs (0.u,0.s) -Chars 3714 - 3732 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 3733 - 3740 [(intros).] 0. secs (0.u,0.s) +Chars 3714 - 3732 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3733 - 3740 [intros.] 0. secs (0.u,0.s) Chars 3744 - 3778 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3781 - 3806 [(do~2~rewrite~unfold_iter).] 0.03 secs (0.029u,0.s) -Chars 3809 - 3815 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3819 - 3836 [(do~2~step;~eauto).] 0.016 secs (0.015u,0.s) -Chars 3840 - 3875 [(intros~?~?~[];~econstructor;~...] 0.001 secs (0.001u,0.s) +Chars 3781 - 3806 [do~2~rewrite~unfold_iter.] 0.021 secs (0.02u,0.s) +Chars 3809 - 3815 [ebind.] 0.003 secs (0.003u,0.s) +Chars 3819 - 3836 [do~2~step;~eauto.] 0.011 secs (0.011u,0.s) +Chars 3840 - 3875 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) Chars 3876 - 3896 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) -Chars 3897 - 3901 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3897 - 3901 [Qed.] 0.004 secs (0.004u,0.s) Chars 3903 - 4109 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) Chars 4110 - 4116 [Proof.] 0. secs (0.u,0.s) -Chars 4119 - 4166 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) -Chars 4167 - 4182 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) -Chars 4185 - 4211 [(eapply~eutt_iter'';~eauto).] 0. secs (0.u,0.s) -Chars 4212 - 4216 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4119 - 4166 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) +Chars 4167 - 4182 [red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 4185 - 4211 [eapply~eutt_iter'';~eauto.] 0. secs (0.u,0.s) +Chars 4212 - 4216 [Qed.] 0. secs (0.u,0.s) Chars 4236 - 4436 [#[global]~Instance~eq_itree_it...] 0. secs (0.u,0.s) Chars 4437 - 4443 [Proof.] 0. secs (0.u,0.s) -Chars 4446 - 4475 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) -Chars 4476 - 4498 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 4446 - 4475 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) +Chars 4476 - 4498 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) Chars 4501 - 4514 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4517 - 4550 [(eapply~(eq_itree_iter'~eq);~a...] 0.003 secs (0.003u,0.s) -Chars 4553 - 4593 [(intros;~eapply~eqit_mono,~EQ_...] 0.002 secs (0.002u,0.s) -Chars 4596 - 4644 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) +Chars 4517 - 4550 [eapply~(eq_itree_iter'~eq);~auto.] 0.002 secs (0.002u,0.s) +Chars 4553 - 4593 [intros;~eapply~eqit_mono,~EQ_B...] 0.001 secs (0.001u,0.s) +Chars 4596 - 4644 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) Chars 4645 - 4649 [Qed.] 0.001 secs (0.001u,0.s) Chars 4651 - 4853 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) Chars 4854 - 4860 [Proof.] 0. secs (0.u,0.s) -Chars 4863 - 4892 [(intros~body1~body2~EQ_BODY~a).] 0. secs (0.u,0.s) -Chars 4893 - 4915 [(repeat~red~in~EQ_BODY).] 0. secs (0.u,0.s) +Chars 4863 - 4892 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) +Chars 4893 - 4915 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) Chars 4918 - 4931 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4934 - 4963 [(eapply~(eutt_iter'~eq);~auto).] 0.003 secs (0.003u,0.s) -Chars 4966 - 5013 [(intros~?~_~[];~eapply~eqit_mo...] 0.002 secs (0.002u,0.s) -Chars 5016 - 5057 [(intros~[]~_~[];~auto;~econstr...] 0. secs (0.u,0.s) +Chars 4934 - 4963 [eapply~(eutt_iter'~eq);~auto.] 0.001 secs (0.001u,0.s) +Chars 4966 - 5013 [intros~?~_~[];~eapply~eqit_mon...] 0.002 secs (0.002u,0.s) +Chars 5016 - 5057 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) Chars 5058 - 5062 [Qed.] 0.001 secs (0.001u,0.s) Chars 5064 - 5246 [Definition~eutt_iter_gen~{F}~{...] 0. secs (0.u,0.s) Chars 5247 - 5253 [Proof.] 0. secs (0.u,0.s) -Chars 5256 - 5303 [(do~3~red;~intros~body1~body2~...] 0. secs (0.u,0.s) -Chars 5304 - 5319 [(red~in~EQ_BODY).] 0. secs (0.u,0.s) -Chars 5322 - 5347 [(eapply~eutt_iter';~eauto).] 0. secs (0.u,0.s) +Chars 5256 - 5303 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) +Chars 5304 - 5319 [red~in~EQ_BODY.] 0. secs (0.u,0.s) +Chars 5322 - 5347 [eapply~eutt_iter';~eauto.] 0. secs (0.u,0.s) Chars 5348 - 5352 [Qed.] 0. secs (0.u,0.s) Chars 5354 - 5482 [#[global]~Instance~eq2_ktree_i...] 0. secs (0.u,0.s) Chars 5483 - 5489 [Proof.] 0. secs (0.u,0.s) -Chars 5490 - 5506 [(apply~eutt_iter).] 0. secs (0.u,0.s) +Chars 5490 - 5506 [apply~eutt_iter.] 0. secs (0.u,0.s) Chars 5507 - 5511 [Qed.] 0. secs (0.u,0.s) Chars 5513 - 5536 [Section~KTreeIterative.] 0. secs (0.u,0.s) -Chars 5538 - 5732 [Lemma~unfold_iter_ktree~{E}~{A...] 0.001 secs (0.001u,0.s) +Chars 5538 - 5732 [Lemma~unfold_iter_ktree~{E}~{A...] 0. secs (0.u,0.s) Chars 5733 - 5739 [Proof.] 0. secs (0.u,0.s) -Chars 5742 - 5760 [(apply~unfold_iter).] 0. secs (0.u,0.s) +Chars 5742 - 5760 [apply~unfold_iter.] 0. secs (0.u,0.s) Chars 5761 - 5765 [Qed.] 0. secs (0.u,0.s) Chars 5767 - 5834 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) Chars 5835 - 5841 [Proof.] 0. secs (0.u,0.s) -Chars 5844 - 5857 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5844 - 5857 [repeat~intro.] 0. secs (0.u,0.s) Chars 5858 - 5871 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 5872 - 5898 [(rewrite~unfold_iter_ktree).] 0.001 secs (0.001u,0.s) -Chars 5901 - 5940 [(eapply~eutt_bind_eutt;~try~re...] 0. secs (0.u,0.s) -Chars 5943 - 5993 [(intros~[]~?~[];~try~rewrite~t...] 0.002 secs (0.002u,0.s) -Chars 5994 - 5998 [Qed.] 0.002 secs (0.002u,0.s) +Chars 5872 - 5898 [rewrite~unfold_iter_ktree.] 0.001 secs (0.001u,0.s) +Chars 5901 - 5940 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) +Chars 5943 - 5993 [intros~[]~?~[];~try~rewrite~ta...] 0.001 secs (0.001u,0.s) +Chars 5994 - 5998 [Qed.] 0.001 secs (0.001u,0.s) Chars 6000 - 6069 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) Chars 6070 - 6076 [Proof.] 0. secs (0.u,0.s) -Chars 6079 - 6092 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 6079 - 6092 [repeat~intro.] 0. secs (0.u,0.s) Chars 6093 - 6106 [unfold_ktree.] 0. secs (0.u,0.s) Chars 6109 - 6119 [revert~a0.] 0. secs (0.u,0.s) -Chars 6122 - 6141 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) -Chars 6142 - 6149 [(intros).] 0. secs (0.u,0.s) -Chars 6153 - 6181 [(rewrite~2!unfold_iter_ktree).] 0.037 secs (0.037u,0.s) -Chars 6184 - 6203 [(rewrite~!bind_bind).] 0.037 secs (0.037u,0.s) -Chars 6206 - 6212 [ebind.] 0.008 secs (0.008u,0.s) -Chars 6216 - 6231 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) +Chars 6122 - 6141 [coinduction~c'~CIH.] 0.001 secs (0.001u,0.s) +Chars 6142 - 6149 [intros.] 0. secs (0.u,0.s) +Chars 6153 - 6181 [rewrite~2!unfold_iter_ktree.] 0.026 secs (0.026u,0.s) +Chars 6184 - 6203 [rewrite~!bind_bind.] 0.027 secs (0.027u,0.s) +Chars 6206 - 6212 [ebind.] 0.006 secs (0.006u,0.s) +Chars 6216 - 6231 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) Chars 6234 - 6235 [-] 0. secs (0.u,0.s) -Chars 6236 - 6267 [(rewrite~bind_tau,~2!bind_ret_l).] 0.056 secs (0.056u,0.s) +Chars 6236 - 6267 [rewrite~bind_tau,~2!bind_ret_l.] 0.041 secs (0.04u,0.s) Chars 6268 - 6277 [now~taus.] 0. secs (0.u,0.s) Chars 6281 - 6282 [-] 0. secs (0.u,0.s) -Chars 6283 - 6314 [(rewrite~bind_ret_l,~!bind_bind).] 0.038 secs (0.038u,0.s) -Chars 6315 - 6341 [setoid_rewrite~bind_ret_l.] 0.036 secs (0.036u,0.s) -Chars 6342 - 6361 [(rewrite~bind_ret_r).] 0.017 secs (0.017u,0.s) -Chars 6366 - 6378 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6379 - 6383 [Qed.] 0.015 secs (0.014u,0.s) -Chars 6385 - 6923 [Lemma~iter_dinatural_ktree~{E}...] 0.002 secs (0.002u,0.s) +Chars 6283 - 6314 [rewrite~bind_ret_l,~!bind_bind.] 0.027 secs (0.027u,0.s) +Chars 6315 - 6341 [setoid_rewrite~bind_ret_l.] 0.029 secs (0.029u,0.s) +Chars 6342 - 6361 [rewrite~bind_ret_r.] 0.012 secs (0.012u,0.s) +Chars 6366 - 6378 [reflexivity.] 0. secs (0.u,0.s) +Chars 6379 - 6383 [Qed.] 0.01 secs (0.01u,0.s) +Chars 6385 - 6923 [Lemma~iter_dinatural_ktree~{E}...] 0.001 secs (0.001u,0.s) Chars 6924 - 6930 [Proof.] 0. secs (0.u,0.s) Chars 6933 - 6953 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) -Chars 6957 - 6975 [coinduction~c~CIH.] 0.003 secs (0.003u,0.s) -Chars 6976 - 6983 [(intros).] 0. secs (0.u,0.s) -Chars 6987 - 7013 [(rewrite~unfold_iter_ktree).] 0.017 secs (0.017u,0.s) -Chars 7016 - 7034 [(rewrite~bind_bind).] 0.016 secs (0.016u,0.s) -Chars 7037 - 7043 [ebind.] 0.009 secs (0.009u,0.s) -Chars 7047 - 7062 [(intros~[]~?~[]).] 0.001 secs (0.001u,0.s) +Chars 6957 - 6975 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 6976 - 6983 [intros.] 0. secs (0.u,0.s) +Chars 6987 - 7013 [rewrite~unfold_iter_ktree.] 0.012 secs (0.012u,0.s) +Chars 7016 - 7034 [rewrite~bind_bind.] 0.011 secs (0.011u,0.s) +Chars 7037 - 7043 [ebind.] 0.007 secs (0.007u,0.s) +Chars 7047 - 7062 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) Chars 7174 - 7175 [-] 0. secs (0.u,0.s) -Chars 7176 - 7193 [(rewrite~bind_tau).] 0.018 secs (0.017u,0.s) +Chars 7176 - 7193 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) Chars 7194 - 7199 [taus.] 0. secs (0.u,0.s) -Chars 7200 - 7209 [symmetry.] 0.001 secs (0.u,0.s) -Chars 7210 - 7221 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 7200 - 7209 [symmetry.] 0. secs (0.u,0.s) +Chars 7210 - 7221 [eapply~CIH.] 0. secs (0.u,0.s) Chars 7225 - 7226 [-] 0. secs (0.u,0.s) -Chars 7227 - 7246 [(rewrite~bind_ret_l).] 0.016 secs (0.016u,0.s) +Chars 7227 - 7246 [rewrite~bind_ret_l.] 0.011 secs (0.011u,0.s) Chars 7247 - 7259 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 7261 - 7265 [Qed.] 0.011 secs (0.01u,0.s) +Chars 7261 - 7265 [Qed.] 0.007 secs (0.007u,0.s) Chars 7267 - 7340 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) Chars 7341 - 7347 [Proof.] 0. secs (0.u,0.s) -Chars 7350 - 7363 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 7350 - 7363 [repeat~intro.] 0. secs (0.u,0.s) Chars 7364 - 7377 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 7380 - 7642 [(transitivity~~~(iter~(C:=ktre...] 0.001 secs (0.001u,0.s) +Chars 7380 - 7642 [transitivity~~(iter~(C:=ktree~...] 0. secs (0.u,0.s) Chars 7645 - 7646 [-] 0. secs (0.u,0.s) -Chars 7647 - 7673 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) -Chars 7678 - 7700 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 7647 - 7673 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) +Chars 7678 - 7700 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) Chars 7705 - 7717 [reflexivity.] 0. secs (0.u,0.s) -Chars 7722 - 7737 [(intros~[]~?~[]).] 0. secs (0.u,0.s) -Chars 7742 - 7772 [(rewrite~tau_eutt;~reflexivity).] 0. secs (0.u,0.s) +Chars 7722 - 7737 [intros~[]~?~[].] 0. secs (0.u,0.s) +Chars 7742 - 7772 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) Chars 7777 - 7789 [reflexivity.] 0. secs (0.u,0.s) Chars 7792 - 7793 [-] 0. secs (0.u,0.s) -Chars 7794 - 7823 [(rewrite~iter_dinatural_ktree).] 0.002 secs (0.002u,0.s) -Chars 7828 - 7850 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 7794 - 7823 [rewrite~iter_dinatural_ktree.] 0.001 secs (0.001u,0.s) +Chars 7828 - 7850 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) Chars 7855 - 7867 [reflexivity.] 0. secs (0.u,0.s) -Chars 7872 - 7887 [(intros~[]~?~[]).] 0. secs (0.u,0.s) +Chars 7872 - 7887 [intros~[]~?~[].] 0. secs (0.u,0.s) Chars 7892 - 7893 [+] 0. secs (0.u,0.s) -Chars 7894 - 7911 [(rewrite~tau_eutt).] 0.002 secs (0.002u,0.s) -Chars 7918 - 7944 [(apply~eutt_iter;~intros~x).] 0. secs (0.u,0.s) -Chars 7951 - 7973 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 7894 - 7911 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) +Chars 7918 - 7944 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) +Chars 7951 - 7973 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) Chars 7980 - 7992 [reflexivity.] 0. secs (0.u,0.s) -Chars 7999 - 8014 [(intros~[]~?~[]).] 0. secs (0.u,0.s) -Chars 8021 - 8051 [(rewrite~tau_eutt;~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 7999 - 8014 [intros~[]~?~[].] 0. secs (0.u,0.s) +Chars 8021 - 8051 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) Chars 8058 - 8070 [reflexivity.] 0. secs (0.u,0.s) Chars 8075 - 8076 [+] 0. secs (0.u,0.s) Chars 8077 - 8089 [reflexivity.] 0. secs (0.u,0.s) -Chars 8090 - 8094 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8096 - 8404 [Lemma~iter_codiagonal_ktree~{E...] 0.003 secs (0.003u,0.s) +Chars 8090 - 8094 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8096 - 8404 [Lemma~iter_codiagonal_ktree~{E...] 0.001 secs (0.001u,0.s) Chars 8405 - 8411 [Proof.] 0. secs (0.u,0.s) Chars 8414 - 8424 [revert~a0.] 0. secs (0.u,0.s) Chars 8427 - 8445 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8446 - 8453 [(intros).] 0. secs (0.u,0.s) -Chars 8457 - 8483 [(rewrite~unfold_iter_ktree).] 0.015 secs (0.015u,0.s) -Chars 8486 - 8531 [(rewrite~(unfold_iter_ktree~(f...] 0.021 secs (0.021u,0.s) -Chars 8534 - 8572 [(rewrite~unfold_iter_ktree,~!b...] 0.061 secs (0.061u,0.s) -Chars 8575 - 8581 [ebind.] 0.009 secs (0.009u,0.s) -Chars 8585 - 8604 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) +Chars 8446 - 8453 [intros.] 0. secs (0.u,0.s) +Chars 8457 - 8483 [rewrite~unfold_iter_ktree.] 0.011 secs (0.011u,0.s) +Chars 8486 - 8531 [rewrite~(unfold_iter_ktree~(fu...] 0.015 secs (0.015u,0.s) +Chars 8534 - 8572 [rewrite~unfold_iter_ktree,~!bi...] 0.044 secs (0.043u,0.s) +Chars 8575 - 8581 [ebind.] 0.006 secs (0.006u,0.s) +Chars 8585 - 8604 [intros~[|~[]]~?~[].] 0.002 secs (0.002u,0.s) Chars 8607 - 8608 [-] 0. secs (0.u,0.s) -Chars 8609 - 8638 [(rewrite~bind_ret_l,~bind_tau).] 0.04 secs (0.04u,0.s) +Chars 8609 - 8638 [rewrite~bind_ret_l,~bind_tau.] 0.027 secs (0.027u,0.s) Chars 8643 - 8648 [taus.] 0. secs (0.u,0.s) Chars 8654 - 8663 [revert~a.] 0. secs (0.u,0.s) Chars 8668 - 8683 [accumulate~acc.] 0.002 secs (0.002u,0.s) -Chars 8689 - 8696 [(intros).] 0. secs (0.u,0.s) -Chars 8701 - 8727 [(rewrite~unfold_iter_ktree).] 0.017 secs (0.017u,0.s) -Chars 8732 - 8777 [(rewrite~(unfold_iter_ktree~(f...] 0.02 secs (0.02u,0.s) -Chars 8782 - 8801 [(rewrite~!bind_bind).] 0.039 secs (0.038u,0.s) -Chars 8806 - 8812 [ebind.] 0.012 secs (0.012u,0.s) -Chars 8818 - 8837 [(intros~[|~[]]~?~[]).] 0.003 secs (0.003u,0.s) +Chars 8689 - 8696 [intros.] 0. secs (0.u,0.s) +Chars 8701 - 8727 [rewrite~unfold_iter_ktree.] 0.011 secs (0.011u,0.s) +Chars 8732 - 8777 [rewrite~(unfold_iter_ktree~(fu...] 0.013 secs (0.013u,0.s) +Chars 8782 - 8801 [rewrite~!bind_bind.] 0.027 secs (0.026u,0.s) +Chars 8806 - 8812 [ebind.] 0.008 secs (0.008u,0.s) +Chars 8818 - 8837 [intros~[|~[]]~?~[].] 0.002 secs (0.002u,0.s) Chars 8842 - 8843 [+] 0. secs (0.u,0.s) -Chars 8844 - 8873 [(rewrite~bind_tau,~bind_ret_l).] 0.04 secs (0.04u,0.s) +Chars 8844 - 8873 [rewrite~bind_tau,~bind_ret_l.] 0.027 secs (0.027u,0.s) Chars 8874 - 8883 [now~taus.] 0. secs (0.u,0.s) Chars 8889 - 8890 [+] 0. secs (0.u,0.s) -Chars 8891 - 8912 [(rewrite~2!bind_ret_l).] 0.042 secs (0.041u,0.s) +Chars 8891 - 8912 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) Chars 8913 - 8922 [now~taus.] 0. secs (0.u,0.s) Chars 8928 - 8929 [+] 0. secs (0.u,0.s) -Chars 8930 - 8951 [(rewrite~2!bind_ret_l).] 0.038 secs (0.038u,0.s) -Chars 8952 - 8964 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8930 - 8951 [rewrite~2!bind_ret_l.] 0.026 secs (0.026u,0.s) +Chars 8952 - 8964 [reflexivity.] 0. secs (0.u,0.s) Chars 8968 - 8969 [-] 0. secs (0.u,0.s) -Chars 8970 - 8991 [(rewrite~2!bind_ret_l).] 0.039 secs (0.038u,0.s) +Chars 8970 - 8991 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) Chars 8996 - 9005 [now~taus.] 0. secs (0.u,0.s) Chars 9009 - 9010 [-] 0. secs (0.u,0.s) -Chars 9011 - 9032 [(rewrite~2!bind_ret_l).] 0.037 secs (0.036u,0.s) +Chars 9011 - 9032 [rewrite~2!bind_ret_l.] 0.026 secs (0.026u,0.s) Chars 9037 - 9049 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9051 - 9055 [Qed.] 0.033 secs (0.033u,0.s) +Chars 9051 - 9055 [Qed.] 0.023 secs (0.022u,0.s) Chars 9057 - 9132 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) Chars 9133 - 9139 [Proof.] 0. secs (0.u,0.s) -Chars 9142 - 9155 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 9142 - 9155 [repeat~intro.] 0. secs (0.u,0.s) Chars 9156 - 9169 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9172 - 9202 [(rewrite~iter_codiagonal_ktree).] 0.002 secs (0.002u,0.s) -Chars 9205 - 9221 [(apply~eutt_iter).] 0. secs (0.u,0.s) -Chars 9224 - 9234 [(intros~a1).] 0. secs (0.u,0.s) -Chars 9237 - 9259 [(eapply~eutt_bind_eutt).] 0. secs (0.u,0.s) +Chars 9172 - 9202 [rewrite~iter_codiagonal_ktree.] 0.001 secs (0.001u,0.s) +Chars 9205 - 9221 [apply~eutt_iter.] 0. secs (0.u,0.s) +Chars 9224 - 9234 [intros~a1.] 0. secs (0.u,0.s) +Chars 9237 - 9259 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) Chars 9262 - 9274 [reflexivity.] 0. secs (0.u,0.s) -Chars 9277 - 9328 [(intros~[|~[]]~?~[];~rewrite~?...] 0.002 secs (0.002u,0.s) -Chars 9329 - 9333 [Qed.] 0.002 secs (0.002u,0.s) +Chars 9277 - 9328 [intros~[|~[]]~?~[];~rewrite~?t...] 0.001 secs (0.001u,0.s) +Chars 9329 - 9333 [Qed.] 0.001 secs (0.001u,0.s) Chars 9335 - 9400 [#[global]~Instance~Iterative_k...] 0. secs (0.u,0.s) Chars 9401 - 9407 [Proof.] 0. secs (0.u,0.s) -Chars 9410 - 9435 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 9410 - 9435 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 9436 - 9440 [Qed.] 0. secs (0.u,0.s) -Chars 9501 - 9705 [Lemma~cat_iter~:~~~forall~{E~:...] 0.002 secs (0.002u,0.s) +Chars 9501 - 9705 [Lemma~cat_iter~:~~~forall~{E~:...] 0.001 secs (0.001u,0.s) Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) -Chars 9715 - 9724 [(intros~*).] 0. secs (0.u,0.s) +Chars 9715 - 9724 [intros~*.] 0. secs (0.u,0.s) Chars 9727 - 9740 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9773 - 9784 [(repeat~red).] 0. secs (0.u,0.s) -Chars 9882 - 9901 [coinduction~c'~CIH.] 0.004 secs (0.004u,0.s) -Chars 9902 - 9909 [(intros).] 0. secs (0.u,0.s) -Chars 9915 - 9934 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) -Chars 9978 - 9998 [(rewrite~unfold_iter).] 0.02 secs (0.019u,0.s) -Chars 10005 - 10025 [(rewrite~unfold_iter).] 0.022 secs (0.022u,0.s) -Chars 10028 - 10047 [(rewrite~!bind_bind).] 0.04 secs (0.04u,0.s) -Chars 10050 - 10056 [ebind.] 0.008 secs (0.008u,0.s) -Chars 10102 - 10124 [(intros~[xa|~xb]~?~<-).] 0.002 secs (0.002u,0.s) +Chars 9773 - 9784 [repeat~red.] 0. secs (0.u,0.s) +Chars 9882 - 9901 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) +Chars 9902 - 9909 [intros.] 0. secs (0.u,0.s) +Chars 9915 - 9934 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) +Chars 9978 - 9998 [rewrite~unfold_iter.] 0.013 secs (0.013u,0.s) +Chars 10005 - 10025 [rewrite~unfold_iter.] 0.016 secs (0.016u,0.s) +Chars 10028 - 10047 [rewrite~!bind_bind.] 0.028 secs (0.028u,0.s) +Chars 10050 - 10056 [ebind.] 0.005 secs (0.005u,0.s) +Chars 10102 - 10124 [intros~[xa|~xb]~?~<-.] 0.001 secs (0.001u,0.s) Chars 10127 - 10128 [-] 0. secs (0.u,0.s) -Chars 10192 - 10213 [(rewrite~!bind_ret_l).] 0.024 secs (0.024u,0.s) -Chars 10218 - 10235 [(rewrite~bind_tau).] 0.019 secs (0.019u,0.s) +Chars 10192 - 10213 [rewrite~!bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 10218 - 10235 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) Chars 10240 - 10245 [taus.] 0. secs (0.u,0.s) Chars 10251 - 10271 [specialize~(CIH~xa).] 0. secs (0.u,0.s) Chars 10276 - 10285 [symmetry.] 0. secs (0.u,0.s) -Chars 10291 - 10313 [(rewrite~<-~bind_ret_l).] 0.015 secs (0.015u,0.s) -Chars 10314 - 10323 [symmetry.] 0.001 secs (0.001u,0.s) -Chars 10329 - 10339 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 10291 - 10313 [rewrite~<-~bind_ret_l.] 0.011 secs (0.011u,0.s) +Chars 10314 - 10323 [symmetry.] 0. secs (0.u,0.s) +Chars 10329 - 10339 [apply~CIH.] 0. secs (0.u,0.s) Chars 10343 - 10344 [-] 0. secs (0.u,0.s) -Chars 10381 - 10402 [(rewrite~!bind_ret_l).] 0.042 secs (0.042u,0.s) -Chars 10640 - 10659 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) -Chars 10664 - 10674 [(do~2~step).] 0.011 secs (0.011u,0.s) -Chars 10680 - 10694 [(generalize~xb).] 0. secs (0.u,0.s) -Chars 10699 - 10720 [coinduction~c''~CIH'.] 0.003 secs (0.003u,0.s) -Chars 10721 - 10728 [(intros).] 0. secs (0.u,0.s) -Chars 10780 - 10802 [(rewrite~2!unfold_iter).] 0.039 secs (0.038u,0.s) -Chars 10808 - 10827 [(rewrite~!bind_bind).] 0.049 secs (0.048u,0.s) -Chars 10878 - 10884 [ebind.] 0.01 secs (0.009u,0.s) -Chars 10889 - 10912 [(intros~[xb'|~xc]~?~<-).] 0.003 secs (0.003u,0.s) +Chars 10381 - 10402 [rewrite~!bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 10640 - 10659 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) +Chars 10664 - 10674 [do~2~step.] 0.008 secs (0.008u,0.s) +Chars 10680 - 10694 [generalize~xb.] 0. secs (0.u,0.s) +Chars 10699 - 10720 [coinduction~c''~CIH'.] 0.002 secs (0.002u,0.s) +Chars 10721 - 10728 [intros.] 0. secs (0.u,0.s) +Chars 10780 - 10802 [rewrite~2!unfold_iter.] 0.027 secs (0.027u,0.s) +Chars 10808 - 10827 [rewrite~!bind_bind.] 0.034 secs (0.034u,0.s) +Chars 10878 - 10884 [ebind.] 0.006 secs (0.006u,0.s) +Chars 10889 - 10912 [intros~[xb'|~xc]~?~<-.] 0.002 secs (0.002u,0.s) Chars 10917 - 10918 [+] 0. secs (0.u,0.s) -Chars 10963 - 10983 [(rewrite~!bind_ret_l).] 0.077 secs (0.075u,0.001s) +Chars 10963 - 10983 [rewrite~!bind_ret_l.] 0.052 secs (0.052u,0.s) Chars 10990 - 10995 [taus.] 0. secs (0.u,0.s) -Chars 11002 - 11013 [(apply~CIH').] 0. secs (0.u,0.s) +Chars 11002 - 11013 [apply~CIH'.] 0. secs (0.u,0.s) Chars 11020 - 11021 [+] 0. secs (0.u,0.s) -Chars 11022 - 11042 [(rewrite~!bind_ret_l).] 0.046 secs (0.046u,0.s) -Chars 11049 - 11061 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11063 - 11067 [Qed.] 0.037 secs (0.037u,0.s) -Chars 11069 - 11088 [End~KTreeIterative.] 0.001 secs (0.001u,0.s) +Chars 11022 - 11042 [rewrite~!bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 11049 - 11061 [reflexivity.] 0. secs (0.u,0.s) +Chars 11063 - 11067 [Qed.] 0.026 secs (0.026u,0.s) +Chars 11069 - 11088 [End~KTreeIterative.] 0. secs (0.u,0.s) diff --git a/theories/Core/Subevent.v.timing b/theories/Core/Subevent.v.timing index 52995fc7..cebebdf9 100644 --- a/theories/Core/Subevent.v.timing +++ b/theories/Core/Subevent.v.timing @@ -1,4 +1,4 @@ -Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.044 secs (0.035u,0.009s) +Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.03 secs (0.024u,0.005s) Chars 665 - 740 [Notation~Subevent~E~F:=~(@ReSu...] 0. secs (0.u,0.s) Chars 741 - 826 [Notation~"E~-<~F"~:=~(Subevent...] 0. secs (0.u,0.s) Chars 828 - 902 [Definition~subevent~{E~F~:~Typ...] 0. secs (0.u,0.s) @@ -20,16 +20,16 @@ Chars 1683 - 1767 [Notation~"(|||||~x~|)"~:=~(inr...] 0. secs (0.u,0.s) Chars 1768 - 1852 [Notation~"(||||||~x~)"~:=~(inr...] 0. secs (0.u,0.s) Chars 1853 - 1945 [Notation~"(||||||~x~|)"~:=~(in...] 0. secs (0.u,0.s) Chars 1946 - 2038 [Notation~"(|||||||~x~)"~:=~(in...] 0. secs (0.u,0.s) -Chars 2040 - 2057 [End~SumNotations.] 0. secs (0.u,0.s) +Chars 2040 - 2057 [End~SumNotations.] 0.001 secs (0.u,0.s) Chars 2059 - 2086 [#[local]~Open~Scope~sum_scope.] 0. secs (0.u,0.s) Chars 2127 - 2170 [Notation~vis~e~k:=~(Vis~(subev...] 0. secs (0.u,0.s) Chars 2236 - 2289 [Notation~trigger~e:=~(ITree.tr...] 0. secs (0.u,0.s) Chars 2442 - 2483 [Class~Embeddable~U~V~:=~~~~~em...] 0. secs (0.u,0.s) Chars 2485 - 2685 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) -Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0.001 secs (0.u,0.s) +Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) Chars 2939 - 3043 [Lemma~resum_to_subevent~:~~~fo...] 0. secs (0.u,0.s) Chars 3044 - 3050 [Proof.] 0. secs (0.u,0.s) -Chars 3053 - 3073 [(intros;~reflexivity).] 0. secs (0.u,0.s) +Chars 3053 - 3073 [intros;~reflexivity.] 0. secs (0.u,0.s) Chars 3074 - 3078 [Qed.] 0. secs (0.u,0.s) Chars 3080 - 3204 [Lemma~subevent_subevent'~:~~~f...] 0. secs (0.u,0.s) Chars 3205 - 3211 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Eq.v.timing b/theories/Eq.v.timing index 4cddcb85..5d10eb0b 100644 --- a/theories/Eq.v.timing +++ b/theories/Eq.v.timing @@ -1 +1 @@ -Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.214 secs (0.182u,0.031s) +Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.14 secs (0.125u,0.015s) diff --git a/theories/Eq/EqAxiom.v.timing b/theories/Eq/EqAxiom.v.timing index 82521964..5ce35da0 100644 --- a/theories/Eq/EqAxiom.v.timing +++ b/theories/Eq/EqAxiom.v.timing @@ -1,7 +1,7 @@ -Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.054 secs (0.042u,0.011s) +Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.037 secs (0.029u,0.007s) Chars 492 - 604 [Axiom~~~(bisimulation_is_eq~:~...] 0. secs (0.u,0.s) Chars 606 - 666 [Lemma~itree_eta_~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) Chars 667 - 673 [Proof.] 0. secs (0.u,0.s) -Chars 676 - 701 [(apply~bisimulation_is_eq).] 0. secs (0.u,0.s) -Chars 702 - 718 [(apply~itree_eta).] 0. secs (0.u,0.s) +Chars 676 - 701 [apply~bisimulation_is_eq.] 0. secs (0.u,0.s) +Chars 702 - 718 [apply~itree_eta.] 0. secs (0.u,0.s) Chars 719 - 723 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Eqit.v.timing b/theories/Eq/Eqit.v.timing index de44a501..e7a8697d 100644 --- a/theories/Eq/Eqit.v.timing +++ b/theories/Eq/Eqit.v.timing @@ -1,26 +1,26 @@ -Chars 665 - 796 [From~Stdlib~Require~Import~Str...] 0.018 secs (0.01u,0.004s) -Chars 798 - 834 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 933 - 1073 [From~ITree~Require~Import~Basi...] 0.033 secs (0.026u,0.007s) +Chars 665 - 796 [From~Stdlib~Require~Import~Str...] 0.009 secs (0.006u,0.003s) +Chars 798 - 834 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 933 - 1073 [From~ITree~Require~Import~Basi...] 0.022 secs (0.018u,0.004s) Chars 1076 - 1105 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 2696 - 2740 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) Chars 2742 - 2755 [Section~eqit.] 0. secs (0.u,0.s) Chars 3432 - 3459 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 3886 - 4602 [Inductive~eqitF~{R1~R2~:~Type}...] 0.004 secs (0.003u,0.s) +Chars 3886 - 4602 [Inductive~eqitF~{R1~R2~:~Type}...] 0.002 secs (0.002u,0.s) Chars 4605 - 4637 [Hint~Constructors~eqitF:~itree.] 0. secs (0.u,0.s) Chars 4641 - 4905 [Definition~eqit_~b1~b2~~~(sim~...] 0. secs (0.u,0.s) Chars 4908 - 4934 [Hint~Unfold~eqit_:~itree.] 0. secs (0.u,0.s) Chars 4986 - 5046 [Lemma~eqitF_mono~b1~b2~:~Prope...] 0. secs (0.u,0.s) Chars 5049 - 5055 [Proof.] 0. secs (0.u,0.s) -Chars 5060 - 5096 [(intros~sim~sim'~Hsim~R1~R2~RR...] 0. secs (0.u,0.s) -Chars 5101 - 5114 [(unfold~eqit_).] 0. secs (0.u,0.s) -Chars 5115 - 5125 [(intros~IN).] 0. secs (0.u,0.s) -Chars 5130 - 5162 [(induction~IN;~constructor;~au...] 0.002 secs (0.001u,0.s) +Chars 5060 - 5096 [intros~sim~sim'~Hsim~R1~R2~RR~...] 0. secs (0.u,0.s) +Chars 5101 - 5114 [unfold~eqit_.] 0. secs (0.u,0.s) +Chars 5115 - 5125 [intros~IN.] 0. secs (0.u,0.s) +Chars 5130 - 5162 [induction~IN;~constructor;~auto.] 0.001 secs (0.001u,0.s) Chars 5167 - 5168 [-] 0. secs (0.u,0.s) -Chars 5169 - 5186 [(apply~Hsim;~auto).] 0.018 secs (0.016u,0.002s) +Chars 5169 - 5186 [apply~Hsim;~auto.] 0.012 secs (0.011u,0.s) Chars 5191 - 5192 [-] 0. secs (0.u,0.s) -Chars 5193 - 5220 [(intros~?;~apply~Hsim;~auto).] 0. secs (0.u,0.s) -Chars 5223 - 5227 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5286 - 5450 [Definition~eqit_mon~b1~b2~:~~~...] 0.001 secs (0.001u,0.s) +Chars 5193 - 5220 [intros~?;~apply~Hsim;~auto.] 0. secs (0.u,0.s) +Chars 5223 - 5227 [Qed.] 0. secs (0.u,0.s) +Chars 5286 - 5450 [Definition~eqit_mon~b1~b2~:~~~...] 0. secs (0.u,0.s) Chars 5454 - 5575 [Definition~eqit~b1~b2~:~~~fora...] 0. secs (0.u,0.s) Chars 5786 - 5867 [Definition~eq_itree~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 5871 - 5946 [Definition~eutt~{R1}~{R2}~(RR~...] 0. secs (0.u,0.s) @@ -82,7 +82,7 @@ Chars 12802 - 12858 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) Chars 12859 - 12909 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) Chars 12960 - 13104 [#[global]~Ltac~~step~:=~~~matc...] 0. secs (0.u,0.s) Chars 13207 - 13379 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 13382 - 13450 [Tactic~Notation~"unstep"~:=~(i...] 0. secs (0.u,0.s) +Chars 13382 - 13450 [Tactic~Notation~"unstep"~:=~iu...] 0. secs (0.u,0.s) Chars 13451 - 13555 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) Chars 13557 - 13638 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) Chars 13640 - 13755 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) @@ -108,103 +108,103 @@ Chars 15273 - 15307 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) Chars 15310 - 15345 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) Chars 15388 - 15405 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) Chars 15454 - 15459 [step.] 0.001 secs (0.001u,0.s) -Chars 15460 - 15467 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15460 - 15467 [unstep.] 0.002 secs (0.002u,0.s) Chars 15472 - 15477 [step.] 0.001 secs (0.001u,0.s) Chars 15482 - 15492 [Fail~step.] 0. secs (0.u,0.s) -Chars 15498 - 15505 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15498 - 15505 [unstep.] 0.002 secs (0.002u,0.s) Chars 15511 - 15523 [Fail~unstep.] 0.002 secs (0.001u,0.s) -Chars 15530 - 15602 [(assert~(eqitF~eq~false~false~...] 0. secs (0.u,0.s) -Chars 15607 - 15612 [step.] 0.002 secs (0.002u,0.s) -Chars 15643 - 15648 [step.] 0.031 secs (0.031u,0.s) -Chars 15649 - 15656 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15530 - 15602 [assert~(eqitF~eq~false~false~(...] 0. secs (0.u,0.s) +Chars 15607 - 15612 [step.] 0.001 secs (0.001u,0.s) +Chars 15643 - 15648 [step.] 0.024 secs (0.024u,0.s) +Chars 15649 - 15656 [unstep.] 0.002 secs (0.002u,0.s) Chars 15657 - 15669 [Fail~unstep.] 0.001 secs (0.001u,0.s) Chars 15670 - 15675 [step.] 0.001 secs (0.001u,0.s) Chars 15676 - 15686 [Fail~step.] 0. secs (0.u,0.s) -Chars 15687 - 15711 [now~unstep;~apply~EQ2.] 0.003 secs (0.003u,0.s) -Chars 15717 - 15748 [(assert~((elem~eqc~_~_~eq)~v~w)).] 0. secs (0.u,0.s) +Chars 15687 - 15711 [now~unstep;~apply~EQ2.] 0.002 secs (0.002u,0.s) +Chars 15717 - 15748 [assert~((elem~eqc~_~_~eq)~v~w).] 0. secs (0.u,0.s) Chars 15753 - 15758 [step.] 0.001 secs (0.001u,0.s) Chars 15759 - 15764 [step.] 0.002 secs (0.002u,0.s) Chars 15796 - 15801 [step.] 0.001 secs (0.001u,0.s) -Chars 15802 - 15809 [unstep.] 0.003 secs (0.003u,0.s) +Chars 15802 - 15809 [unstep.] 0.002 secs (0.002u,0.s) Chars 15810 - 15822 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15823 - 15828 [step.] 0.001 secs (0.001u,0.s) +Chars 15823 - 15828 [step.] 0.002 secs (0.002u,0.s) Chars 15829 - 15839 [Fail~step.] 0. secs (0.u,0.s) -Chars 15840 - 15864 [now~unstep;~apply~EQ2.] 0.007 secs (0.005u,0.001s) +Chars 15840 - 15864 [now~unstep;~apply~EQ2.] 0.003 secs (0.002u,0.s) Chars 15870 - 15882 [to_mon~in~H.] 0. secs (0.u,0.s) Chars 15886 - 15892 [Abort.] 0. secs (0.u,0.s) Chars 15895 - 15919 [End~step_notation_tests.] 0. secs (0.u,0.s) Chars 15922 - 16220 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) Chars 16221 - 16227 [Proof.] 0. secs (0.u,0.s) -Chars 16230 - 16537 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 16230 - 16537 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) Chars 16540 - 16541 [-] 0. secs (0.u,0.s) -Chars 16542 - 16554 [(left;~eauto).] 0. secs (0.u,0.s) +Chars 16542 - 16554 [left;~eauto.] 0. secs (0.u,0.s) Chars 16557 - 16558 [-] 0. secs (0.u,0.s) -Chars 16559 - 16578 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 16559 - 16578 [destruct~i0;~eauto.] 0.001 secs (0.u,0.s) Chars 16579 - 16583 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16585 - 16886 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.001u,0.s) +Chars 16585 - 16886 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.u,0.s) Chars 16887 - 16893 [Proof.] 0. secs (0.u,0.s) -Chars 16896 - 17115 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 16896 - 17115 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) Chars 17118 - 17119 [-] 0. secs (0.u,0.s) -Chars 17120 - 17132 [(left;~eauto).] 0. secs (0.u,0.s) +Chars 17120 - 17132 [left;~eauto.] 0. secs (0.u,0.s) Chars 17135 - 17136 [-] 0. secs (0.u,0.s) -Chars 17137 - 17155 [(destruct~i;~eauto).] 0.001 secs (0.001u,0.s) +Chars 17137 - 17155 [destruct~i;~eauto.] 0.001 secs (0.u,0.s) Chars 17156 - 17160 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17162 - 17411 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.001u,0.s) +Chars 17162 - 17411 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.u,0.s) Chars 17412 - 17418 [Proof.] 0. secs (0.u,0.s) -Chars 17421 - 17656 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 17421 - 17656 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) Chars 17659 - 17660 [-] 0. secs (0.u,0.s) -Chars 17661 - 17688 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) +Chars 17661 - 17688 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) Chars 17691 - 17692 [-] 0. secs (0.u,0.s) -Chars 17693 - 17713 [(destruct~i;~exact~I).] 0. secs (0.u,0.s) -Chars 17714 - 17718 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17720 - 17913 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0.001 secs (0.u,0.s) +Chars 17693 - 17713 [destruct~i;~exact~I.] 0. secs (0.u,0.s) +Chars 17714 - 17718 [Qed.] 0. secs (0.u,0.s) +Chars 17720 - 17913 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 17914 - 17920 [Proof.] 0. secs (0.u,0.s) -Chars 17923 - 17932 [(intros~H).] 0. secs (0.u,0.s) -Chars 17933 - 17957 [dependent~destruction~H.] 0.006 secs (0.004u,0.002s) +Chars 17923 - 17932 [intros~H.] 0. secs (0.u,0.s) +Chars 17933 - 17957 [dependent~destruction~H.] 0.003 secs (0.002u,0.s) Chars 17958 - 17969 [assumption.] 0. secs (0.u,0.s) -Chars 17970 - 17974 [Qed.] 0.003 secs (0.002u,0.s) -Chars 17976 - 18216 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0.001 secs (0.001u,0.s) +Chars 17970 - 17974 [Qed.] 0.002 secs (0.002u,0.s) +Chars 17976 - 18216 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 18217 - 18223 [Proof.] 0. secs (0.u,0.s) -Chars 18226 - 18272 [(destruct~p;~intros~<-;~cbn;~c...] 0.018 secs (0.017u,0.001s) +Chars 18226 - 18272 [destruct~p;~intros~<-;~cbn;~co...] 0.012 secs (0.012u,0.s) Chars 18273 - 18277 [Qed.] 0.001 secs (0.001u,0.s) Chars 18279 - 18408 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 18409 - 18415 [Proof.] 0. secs (0.u,0.s) -Chars 18418 - 18457 [(intros~!;~induction~H;~eauto~...] 0.001 secs (0.001u,0.s) -Chars 18458 - 18462 [Qed.] 0.001 secs (0.001u,0.s) +Chars 18418 - 18457 [intros~!;~induction~H;~eauto~w...] 0. secs (0.u,0.s) +Chars 18458 - 18462 [Qed.] 0. secs (0.u,0.s) Chars 18464 - 18616 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) Chars 18617 - 18623 [Proof.] 0. secs (0.u,0.s) Chars 18626 - 18634 [intros~!.] 0. secs (0.u,0.s) Chars 18635 - 18641 [subst.] 0. secs (0.u,0.s) -Chars 18642 - 18693 [(split;~unfold~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 18696 - 18790 [all:~~(induction~H0;~auto~with...] 0.004 secs (0.004u,0.s) -Chars 18791 - 18795 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18642 - 18693 [split;~unfold~subrelationH,~Su...] 0. secs (0.u,0.s) +Chars 18696 - 18790 [all:~~induction~H0;~auto~with~...] 0.003 secs (0.003u,0.s) +Chars 18791 - 18795 [Qed.] 0.001 secs (0.001u,0.s) Chars 18797 - 18962 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) Chars 18963 - 18969 [Proof.] 0. secs (0.u,0.s) Chars 18972 - 18980 [intros~!.] 0. secs (0.u,0.s) Chars 18981 - 18987 [subst.] 0. secs (0.u,0.s) -Chars 18988 - 19002 [(split;~intros).] 0. secs (0.u,0.s) -Chars 19005 - 19074 [all:~(induction~H0;~auto~with~...] 0.002 secs (0.002u,0.s) -Chars 19075 - 19079 [Qed.] 0.002 secs (0.002u,0.s) +Chars 18988 - 19002 [split;~intros.] 0. secs (0.u,0.s) +Chars 19005 - 19074 [all:~induction~H0;~auto~with~i...] 0.001 secs (0.001u,0.s) +Chars 19075 - 19079 [Qed.] 0.001 secs (0.001u,0.s) Chars 19081 - 19225 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) Chars 19226 - 19253 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) Chars 19256 - 19264 [intros~!.] 0. secs (0.u,0.s) Chars 19265 - 19271 [subst.] 0. secs (0.u,0.s) Chars 19275 - 19281 [split.] 0. secs (0.u,0.s) Chars 19284 - 19285 [-] 0. secs (0.u,0.s) -Chars 19286 - 19301 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 19302 - 19321 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) -Chars 19322 - 19329 [(intros).] 0. secs (0.u,0.s) +Chars 19286 - 19301 [revert_until~H.] 0. secs (0.u,0.s) +Chars 19302 - 19321 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) +Chars 19322 - 19329 [intros.] 0. secs (0.u,0.s) Chars 19334 - 19345 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19350 - 19377 [hinduction~H0~before~CIH~...] 0.003 secs (0.003u,0.s) -Chars 19382 - 19408 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) +Chars 19350 - 19377 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) +Chars 19382 - 19408 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) Chars 19412 - 19413 [-] 0. secs (0.u,0.s) -Chars 19414 - 19429 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 19430 - 19449 [icoinduction~R~CIH.] 0.002 secs (0.002u,0.s) -Chars 19450 - 19457 [(intros).] 0. secs (0.u,0.s) +Chars 19414 - 19429 [revert_until~H.] 0. secs (0.u,0.s) +Chars 19430 - 19449 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) +Chars 19450 - 19457 [intros.] 0. secs (0.u,0.s) Chars 19464 - 19475 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19480 - 19507 [hinduction~H0~before~CIH~...] 0.004 secs (0.003u,0.s) -Chars 19513 - 19539 [(econstructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 19541 - 19545 [Qed.] 0.009 secs (0.009u,0.s) +Chars 19480 - 19507 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) +Chars 19513 - 19539 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) +Chars 19541 - 19545 [Qed.] 0.006 secs (0.006u,0.s) Chars 19548 - 19689 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) Chars 19690 - 19696 [Proof.] 0. secs (0.u,0.s) Chars 19699 - 19732 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) @@ -219,14 +219,14 @@ Chars 20069 - 20102 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) Chars 20103 - 20107 [Qed.] 0. secs (0.u,0.s) Chars 20552 - 20703 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 20704 - 20710 [Proof.] 0. secs (0.u,0.s) -Chars 20737 - 20756 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 20757 - 20772 [(intros~u~v~euv).] 0. secs (0.u,0.s) +Chars 20737 - 20756 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 20757 - 20772 [intros~u~v~euv.] 0. secs (0.u,0.s) Chars 20840 - 20852 [step~in~euv.] 0. secs (0.u,0.s) -Chars 20918 - 20950 [(induction~euv;~eauto~with~itr...] 0.004 secs (0.004u,0.s) -Chars 20951 - 20955 [Qed.] 0.004 secs (0.004u,0.s) +Chars 20918 - 20950 [induction~euv;~eauto~with~itree.] 0.003 secs (0.003u,0.s) +Chars 20951 - 20955 [Qed.] 0.003 secs (0.003u,0.s) Chars 20957 - 21135 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) Chars 21136 - 21142 [Proof.] 0. secs (0.u,0.s) -Chars 21145 - 21152 [(intros).] 0. secs (0.u,0.s) +Chars 21145 - 21152 [intros.] 0. secs (0.u,0.s) Chars 21153 - 21173 [now~apply~eqit_flip.] 0. secs (0.u,0.s) Chars 21176 - 21180 [Qed.] 0. secs (0.u,0.s) Chars 21182 - 21217 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) @@ -234,34 +234,34 @@ Chars 21253 - 21426 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 21427 - 21433 [Proof.] 0. secs (0.u,0.s) Chars 21436 - 21444 [intros~!.] 0. secs (0.u,0.s) Chars 21448 - 21462 [revert~a~a0~H.] 0. secs (0.u,0.s) -Chars 21466 - 21493 [(icoinduction~c~CIH;~intros).] 0.002 secs (0.002u,0.s) +Chars 21466 - 21493 [icoinduction~c~CIH;~intros.] 0.001 secs (0.001u,0.s) Chars 21498 - 21508 [step~in~H.] 0. secs (0.u,0.s) -Chars 21509 - 21539 [(induction~H;~eauto~with~itree).] 0.005 secs (0.004u,0.s) +Chars 21509 - 21539 [induction~H;~eauto~with~itree.] 0.003 secs (0.003u,0.s) Chars 21542 - 21555 [econstructor.] 0. secs (0.u,0.s) Chars 21556 - 21571 [now~apply~LERR.] 0. secs (0.u,0.s) -Chars 21574 - 21578 [Qed.] 0.004 secs (0.004u,0.s) +Chars 21574 - 21578 [Qed.] 0.003 secs (0.003u,0.s) Chars 21677 - 21694 [Section~eqit_gen.] 0. secs (0.u,0.s) Chars 21747 - 21806 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 22178 - 22328 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 22329 - 22335 [Proof.] 0. secs (0.u,0.s) -Chars 22340 - 22344 [(red).] 0. secs (0.u,0.s) -Chars 22345 - 22387 [(destruct~x;~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 22340 - 22344 [red.] 0. secs (0.u,0.s) +Chars 22345 - 22387 [destruct~x;~constructor;~eauto...] 0. secs (0.u,0.s) Chars 22388 - 22392 [Qed.] 0. secs (0.u,0.s) Chars 22443 - 22587 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 22588 - 22594 [Proof.] 0. secs (0.u,0.s) -Chars 22599 - 22603 [(red).] 0. secs (0.u,0.s) -Chars 22604 - 22643 [(induction~3;~constructor;~sub...] 0.001 secs (0.001u,0.s) +Chars 22599 - 22603 [red.] 0. secs (0.u,0.s) +Chars 22604 - 22643 [induction~3;~constructor;~subs...] 0.001 secs (0.001u,0.s) Chars 22644 - 22648 [Qed.] 0. secs (0.u,0.s) Chars 22698 - 22852 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 22853 - 22859 [Proof.] 0. secs (0.u,0.s) -Chars 22864 - 22888 [(intros~?~?~t~u~v~EQ1~EQ2).] 0. secs (0.u,0.s) -Chars 22893 - 22938 [(inv~EQ1;~try~now~inv~EQ2;~eau...] 0.05 secs (0.05u,0.s) -Chars 22943 - 23011 [(apply~eqitF_inv_VisF_l~in~EQ2...] 0.001 secs (0.001u,0.s) -Chars 23016 - 23035 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 23036 - 23040 [Qed.] 0.004 secs (0.004u,0.s) +Chars 22864 - 22888 [intros~?~?~t~u~v~EQ1~EQ2.] 0. secs (0.u,0.s) +Chars 22893 - 22938 [inv~EQ1;~try~now~inv~EQ2;~eaut...] 0.036 secs (0.035u,0.s) +Chars 22943 - 23011 [apply~eqitF_inv_VisF_l~in~EQ2~...] 0.001 secs (0.001u,0.s) +Chars 23016 - 23035 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 23036 - 23040 [Qed.] 0.002 secs (0.002u,0.s) Chars 23149 - 23240 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 23241 - 23247 [Proof.] 0. secs (0.u,0.s) -Chars 23250 - 23262 [(red;~intros).] 0. secs (0.u,0.s) +Chars 23250 - 23262 [red;~intros.] 0. secs (0.u,0.s) Chars 23265 - 23274 [revert~x.] 0. secs (0.u,0.s) Chars 23275 - 23294 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 23295 - 23301 [intro.] 0. secs (0.u,0.s) @@ -269,29 +269,29 @@ Chars 23305 - 23338 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) Chars 23339 - 23343 [Qed.] 0.001 secs (0.001u,0.s) Chars 23345 - 23430 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 23431 - 23437 [Proof.] 0. secs (0.u,0.s) -Chars 23440 - 23460 [(intros~Hsym~x~y~Hxy).] 0. secs (0.u,0.s) -Chars 23463 - 23479 [(apply~eqit_flip).] 0. secs (0.u,0.s) -Chars 23482 - 23534 [(eapply~eqit_mono;~[~auto~|~au...] 0.001 secs (0.001u,0.s) +Chars 23440 - 23460 [intros~Hsym~x~y~Hxy.] 0. secs (0.u,0.s) +Chars 23463 - 23479 [apply~eqit_flip.] 0. secs (0.u,0.s) +Chars 23482 - 23534 [eapply~eqit_mono;~[~auto~|~aut...] 0.001 secs (0.001u,0.s) Chars 23536 - 23540 [Qed.] 0. secs (0.u,0.s) Chars 23542 - 23670 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) Chars 23671 - 23677 [Proof.] 0. secs (0.u,0.s) -Chars 23680 - 23693 [(red;~intro~x).] 0. secs (0.u,0.s) -Chars 23696 - 23716 [(apply~(gfp_chain~c)).] 0.001 secs (0.001u,0.s) +Chars 23680 - 23693 [red;~intro~x.] 0. secs (0.u,0.s) +Chars 23696 - 23716 [apply~(gfp_chain~c).] 0.001 secs (0.001u,0.s) Chars 23719 - 23731 [reflexivity.] 0. secs (0.u,0.s) Chars 23732 - 23736 [Qed.] 0. secs (0.u,0.s) Chars 23738 - 23895 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) Chars 23896 - 23902 [Proof.] 0. secs (0.u,0.s) -Chars 23905 - 23925 [(intros~T~HT~x~y~Hxy).] 0. secs (0.u,0.s) -Chars 23928 - 23940 [(intros~z~Hz).] 0. secs (0.u,0.s) -Chars 23941 - 23956 [(apply~HT;~auto).] 0. secs (0.u,0.s) +Chars 23905 - 23925 [intros~T~HT~x~y~Hxy.] 0. secs (0.u,0.s) +Chars 23928 - 23940 [intros~z~Hz.] 0. secs (0.u,0.s) +Chars 23941 - 23956 [apply~HT;~auto.] 0. secs (0.u,0.s) Chars 23957 - 23961 [Qed.] 0. secs (0.u,0.s) Chars 23963 - 24085 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) Chars 24086 - 24092 [Proof.] 0. secs (0.u,0.s) Chars 24095 - 24104 [revert~c.] 0. secs (0.u,0.s) -Chars 24105 - 24143 [(apply~(tower~inf_closed_Symme...] 0. secs (0.u,0.s) -Chars 24146 - 24160 [(intros~c~Hsym).] 0. secs (0.u,0.s) +Chars 24105 - 24143 [apply~(tower~inf_closed_Symmet...] 0. secs (0.u,0.s) +Chars 24146 - 24160 [intros~c~Hsym.] 0. secs (0.u,0.s) Chars 24161 - 24169 [intros~!.] 0. secs (0.u,0.s) -Chars 24170 - 24198 [(apply~Symmetric_eqitF;~auto).] 0. secs (0.u,0.s) +Chars 24170 - 24198 [apply~Symmetric_eqitF;~auto.] 0. secs (0.u,0.s) Chars 24199 - 24203 [Qed.] 0. secs (0.u,0.s) Chars 24205 - 24218 [End~eqit_gen.] 0. secs (0.u,0.s) Chars 24221 - 24238 [Section~eqit_inv.] 0. secs (0.u,0.s) @@ -300,44 +300,44 @@ Chars 24319 - 24368 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) Chars 24372 - 24838 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) Chars 24842 - 24937 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 24940 - 24946 [Proof.] 0. secs (0.u,0.s) -Chars 24951 - 24962 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 24951 - 24962 [intros~*~H.] 0. secs (0.u,0.s) Chars 24967 - 24977 [step~in~H.] 0. secs (0.u,0.s) Chars 24982 - 24987 [step.] 0.001 secs (0.001u,0.s) -Chars 24995 - 25023 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) -Chars 25028 - 25050 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) +Chars 24995 - 25023 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) +Chars 25028 - 25050 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) Chars 25057 - 25058 [-] 0. secs (0.u,0.s) Chars 25059 - 25071 [step~in~REL.] 0. secs (0.u,0.s) Chars 25072 - 25081 [now~taur.] 0. secs (0.u,0.s) Chars 25086 - 25087 [-] 0. secs (0.u,0.s) Chars 25088 - 25093 [taur.] 0. secs (0.u,0.s) Chars 25094 - 25112 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25116 - 25120 [Qed.] 0.003 secs (0.003u,0.s) +Chars 25116 - 25120 [Qed.] 0.002 secs (0.002u,0.s) Chars 25125 - 25220 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 25223 - 25229 [Proof.] 0. secs (0.u,0.s) -Chars 25234 - 25245 [(intros~*~H).] 0. secs (0.u,0.s) +Chars 25234 - 25245 [intros~*~H.] 0. secs (0.u,0.s) Chars 25250 - 25260 [step~in~H.] 0. secs (0.u,0.s) Chars 25265 - 25270 [step.] 0.001 secs (0.001u,0.s) -Chars 25278 - 25306 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) -Chars 25311 - 25333 [(induction~H;~inv~Heqi).] 0.007 secs (0.007u,0.s) +Chars 25278 - 25306 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) +Chars 25311 - 25333 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) Chars 25340 - 25341 [-] 0. secs (0.u,0.s) Chars 25342 - 25354 [step~in~REL.] 0. secs (0.u,0.s) Chars 25355 - 25364 [now~taul.] 0. secs (0.u,0.s) Chars 25370 - 25371 [-] 0. secs (0.u,0.s) Chars 25372 - 25377 [taul.] 0. secs (0.u,0.s) Chars 25378 - 25396 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25400 - 25404 [Qed.] 0.003 secs (0.003u,0.s) -Chars 25409 - 25597 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0.001 secs (0.001u,0.s) +Chars 25400 - 25404 [Qed.] 0.002 secs (0.002u,0.s) +Chars 25409 - 25597 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0. secs (0.u,0.s) Chars 25600 - 25606 [Proof.] 0. secs (0.u,0.s) -Chars 25611 - 25618 [(intros).] 0. secs (0.u,0.s) -Chars 25623 - 25649 [(remember~(TauF~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 25655 - 25681 [(remember~(TauF~t2)~as~ot2).] 0. secs (0.u,0.s) +Chars 25611 - 25618 [intros.] 0. secs (0.u,0.s) +Chars 25623 - 25649 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 25655 - 25681 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) Chars 25687 - 25714 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 25719 - 25778 [(induction~H;~intros~t1'~t2'~H...] 0.028 secs (0.027u,0.s) +Chars 25719 - 25778 [induction~H;~intros~t1'~t2'~He...] 0.022 secs (0.022u,0.s) Chars 25783 - 25784 [-] 0. secs (0.u,0.s) -Chars 25785 - 25808 [(inv~Heqot1;~inv~Heqot2).] 0.01 secs (0.01u,0.s) -Chars 25809 - 25820 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 25785 - 25808 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) +Chars 25809 - 25820 [now~unstep.] 0.002 secs (0.002u,0.s) Chars 25827 - 25828 [-] 0. secs (0.u,0.s) -Chars 25829 - 25856 [(inv~H;~inv~Heqot1;~simpobs).] 0.053 secs (0.051u,0.001s) +Chars 25829 - 25856 [inv~H;~inv~Heqot1;~simpobs.] 0.034 secs (0.034u,0.s) Chars 25864 - 25865 [+] 0. secs (0.u,0.s) Chars 25866 - 25871 [taul.] 0. secs (0.u,0.s) Chars 25872 - 25888 [now~step~in~REL.] 0. secs (0.u,0.s) @@ -345,1487 +345,1481 @@ Chars 25897 - 25898 [+] 0. secs (0.u,0.s) Chars 25899 - 25904 [taul.] 0. secs (0.u,0.s) Chars 25905 - 25923 [now~apply~IHeqitF.] 0. secs (0.u,0.s) Chars 25930 - 25931 [-] 0. secs (0.u,0.s) -Chars 25932 - 25959 [(inv~H;~inv~Heqot2;~simpobs).] 0.048 secs (0.047u,0.s) +Chars 25932 - 25959 [inv~H;~inv~Heqot2;~simpobs.] 0.032 secs (0.032u,0.s) Chars 25967 - 25968 [+] 0. secs (0.u,0.s) Chars 25969 - 25974 [taur.] 0. secs (0.u,0.s) Chars 25975 - 25991 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 25999 - 26000 [+] 0. secs (0.u,0.s) Chars 26001 - 26006 [taur.] 0. secs (0.u,0.s) Chars 26007 - 26025 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 26029 - 26033 [Qed.] 0.011 secs (0.011u,0.s) +Chars 26029 - 26033 [Qed.] 0.007 secs (0.007u,0.s) Chars 26038 - 26133 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) Chars 26136 - 26142 [Proof.] 0. secs (0.u,0.s) -Chars 26147 - 26154 [(intros).] 0. secs (0.u,0.s) -Chars 26159 - 26175 [(step~in~H;~step).] 0.002 secs (0.002u,0.s) +Chars 26147 - 26154 [intros.] 0. secs (0.u,0.s) +Chars 26159 - 26175 [step~in~H;~step.] 0.001 secs (0.001u,0.s) Chars 26180 - 26204 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) -Chars 26208 - 26212 [Qed.] 0.001 secs (0.001u,0.s) -Chars 26217 - 26276 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0.001 secs (0.001u,0.s) +Chars 26208 - 26212 [Qed.] 0. secs (0.u,0.s) +Chars 26217 - 26276 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0. secs (0.u,0.s) Chars 26279 - 26285 [Proof.] 0. secs (0.u,0.s) -Chars 26290 - 26310 [(intros~H;~step~in~H).] 0. secs (0.u,0.s) -Chars 26315 - 26398 [(genobs~t1~ot1;~genobs~t2~ot2;...] 0. secs (0.u,0.s) -Chars 26403 - 26463 [(destruct~H;~intros~*~E1~E2;~r...] 0.003 secs (0.003u,0.s) +Chars 26290 - 26310 [intros~H;~step~in~H.] 0. secs (0.u,0.s) +Chars 26315 - 26398 [genobs~t1~ot1;~genobs~t2~ot2;~...] 0. secs (0.u,0.s) +Chars 26403 - 26463 [destruct~H;~intros~*~E1~E2;~re...] 0.001 secs (0.001u,0.s) Chars 26468 - 26469 [-] 0. secs (0.u,0.s) -Chars 26470 - 26497 [(exists~eq_refl;~cbn;~eauto).] 0. secs (0.u,0.s) +Chars 26470 - 26497 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) Chars 26502 - 26503 [-] 0. secs (0.u,0.s) -Chars 26504 - 26523 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) -Chars 26524 - 26537 [(destruct~ot2).] 0. secs (0.u,0.s) -Chars 26544 - 26607 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) -Chars 26614 - 26682 [1:~(apply~eqit_inv_Tau_r;~step...] 0.001 secs (0.001u,0.s) +Chars 26504 - 26523 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) +Chars 26524 - 26537 [destruct~ot2.] 0. secs (0.u,0.s) +Chars 26544 - 26607 [1,~3:~step;~unfold~observe,~_o...] 0.003 secs (0.003u,0.s) +Chars 26614 - 26682 [1:~apply~eqit_inv_Tau_r;~step;...] 0.001 secs (0.001u,0.s) Chars 26687 - 26688 [-] 0. secs (0.u,0.s) -Chars 26689 - 26708 [(rewrite~CHECK~in~*).] 0. secs (0.u,0.s) -Chars 26709 - 26722 [(destruct~ot1).] 0. secs (0.u,0.s) -Chars 26729 - 26792 [1,~3:~(step;~unfold~observe,~_...] 0.004 secs (0.004u,0.s) -Chars 26799 - 26867 [1:~(apply~eqit_inv_Tau_l;~step...] 0.001 secs (0.001u,0.s) -Chars 26870 - 26874 [Qed.] 0.009 secs (0.009u,0.s) -Chars 26876 - 27061 [Lemma~eqit_inv_Tau_var~(m1~:~i...] 0. secs (0.u,0.s) -Chars 27062 - 27068 [Proof.] 0. secs (0.u,0.s) -Chars 27071 - 27089 [(intros~om1~Heq~H2).] 0. secs (0.u,0.s) -Chars 27153 - 27199 [(induction~H2;~taul;~simpobs;~...] 0.006 secs (0.006u,0.s) -Chars 27201 - 27205 [Qed.] 0.001 secs (0.001u,0.s) -Chars 27208 - 27221 [End~eqit_inv.] 0. secs (0.u,0.s) -Chars 27223 - 27267 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) -Chars 27268 - 27312 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) -Chars 27313 - 27361 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) -Chars 27363 - 27491 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) -Chars 27492 - 27498 [Proof.] 0. secs (0.u,0.s) -Chars 27501 - 27523 [(intros~EQ;~step~in~EQ).] 0. secs (0.u,0.s) -Chars 27526 - 27559 [(desobs~t~ot;~eauto;~inv~EQ;~e...] 0.009 secs (0.009u,0.s) -Chars 27560 - 27564 [Qed.] 0.005 secs (0.005u,0.s) -Chars 27566 - 27739 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 27740 - 27746 [Proof.] 0. secs (0.u,0.s) -Chars 27749 - 27759 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 27762 - 27784 [(step~in~EQ;~cbn~in~EQ).] 0. secs (0.u,0.s) -Chars 27787 - 27812 [(genobs~t~ot;~genobs~u~ou).] 0. secs (0.u,0.s) -Chars 27815 - 27838 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) -Chars 27841 - 27872 [(induction~EQ;~intros;~try~easy).] 0.013 secs (0.013u,0.s) -Chars 27875 - 27876 [-] 0. secs (0.u,0.s) -Chars 27877 - 27891 [(inv~H;~inv~H0).] 0.003 secs (0.003u,0.s) -Chars 27895 - 27896 [-] 0. secs (0.u,0.s) -Chars 27897 - 27912 [(inv~H;~simpobs).] 0.006 secs (0.006u,0.s) -Chars 27917 - 27961 [(edestruct~euttge_tau_r_inv;~[...] 0.004 secs (0.004u,0.s) -Chars 27966 - 27971 [step.] 0.001 secs (0.001u,0.s) -Chars 27976 - 27984 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 27989 - 27994 [taul.] 0. secs (0.u,0.s) -Chars 27999 - 28006 [unstep.] 0.003 secs (0.003u,0.s) -Chars 28011 - 28030 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 28031 - 28035 [Qed.] 0.007 secs (0.007u,0.s) -Chars 28038 - 28176 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) -Chars 28179 - 28371 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) -Chars 28376 - 28501 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) -Chars 28504 - 28560 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) -Chars 28561 - 28616 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) -Chars 29345 - 29507 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) -Chars 29508 - 29536 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 29539 - 29577 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 29580 - 29596 [tower~induction.] 0.005 secs (0.004u,0.s) -Chars 29599 - 29664 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 29669 - 29679 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 29680 - 29690 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 29696 - 29725 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 29845 - 29884 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 29889 - 29910 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 29915 - 29916 [+] 0. secs (0.u,0.s) -Chars 29917 - 29943 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 29950 - 29962 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 29969 - 29983 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 29990 - 30005 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30012 - 30047 [(hinduction~EQx~before~ox;~try...] 0.055 secs (0.054u,0.001s) -Chars 30054 - 30055 [*] 0. secs (0.u,0.s) -Chars 30056 - 30082 [(intros;~subst;~inv~Heqor1).] 0.008 secs (0.008u,0.s) -Chars 30083 - 30097 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30106 - 30133 [(genobs~y~oy;~genret~r2~or2).] 0.001 secs (0.001u,0.s) -Chars 30142 - 30157 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30166 - 30201 [(hinduction~EQy~before~oy;~try...] 0.035 secs (0.034u,0.s) -Chars 30210 - 30235 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 30244 - 30275 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30282 - 30283 [*] 0. secs (0.u,0.s) -Chars 30284 - 30320 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 30325 - 30326 [+] 0. secs (0.u,0.s) -Chars 30327 - 30353 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30360 - 30372 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30379 - 30393 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 30400 - 30415 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30422 - 30457 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) -Chars 30464 - 30465 [*] 0. secs (0.u,0.s) -Chars 30466 - 30484 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 30493 - 30507 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 30516 - 30543 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 30552 - 30567 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30576 - 30611 [(hinduction~EQy~before~oy;~try...] 0.041 secs (0.04u,0.s) -Chars 30620 - 30638 [(intros~[=<-]~?~?)~...] 0.002 secs (0.002u,0.s) -Chars 30647 - 30654 [(intros).] 0. secs (0.u,0.s) -Chars 30663 - 30668 [taur.] 0. secs (0.u,0.s) -Chars 30677 - 30694 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30701 - 30702 [*] 0. secs (0.u,0.s) -Chars 30703 - 30739 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 30744 - 30745 [+] 0. secs (0.u,0.s) -Chars 30746 - 30772 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 30779 - 30791 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 30798 - 30814 [(genvis~e~k1~ot1).] 0.001 secs (0.001u,0.s) -Chars 30821 - 30836 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 30843 - 30878 [(hinduction~EQx~before~ox;~try...] 0.056 secs (0.055u,0.s) -Chars 30885 - 30886 [*] 0. secs (0.u,0.s) -Chars 30887 - 30894 [(intros).] 0. secs (0.u,0.s) -Chars 30903 - 30969 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 30978 - 30992 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 31001 - 31030 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 31039 - 31054 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 31063 - 31098 [(hinduction~EQy~before~oy;~try...] 0.038 secs (0.037u,0.s) -Chars 31107 - 31199 [(intros;~apply~eq_inv_VisF_wea...] 0.023 secs (0.023u,0.s) -Chars 31208 - 31215 [(intros).] 0. secs (0.u,0.s) -Chars 31224 - 31229 [taur.] 0. secs (0.u,0.s) -Chars 31238 - 31255 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 31262 - 31263 [*] 0. secs (0.u,0.s) -Chars 31264 - 31300 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 31305 - 31306 [+] 0. secs (0.u,0.s) -Chars 31307 - 31351 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 31358 - 31366 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 31373 - 31378 [taul.] 0. secs (0.u,0.s) -Chars 31385 - 31404 [(eapply~IHEQ;~eauto).] 0.002 secs (0.001u,0.s) -Chars 31411 - 31462 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 31469 - 31506 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 31511 - 31512 [+] 0. secs (0.u,0.s) -Chars 31513 - 31557 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 31564 - 31572 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 31579 - 31584 [taur.] 0. secs (0.u,0.s) -Chars 31591 - 31610 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 31617 - 31668 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 31675 - 31712 [(unstep;~eapply~euttge_tau_inv...] 0.005 secs (0.005u,0.s) -Chars 31713 - 31717 [Qed.] 0.028 secs (0.028u,0.s) -Chars 31777 - 31971 [#[global]~Instance~euttge_prop...] 0.003 secs (0.003u,0.s) -Chars 31972 - 31978 [Proof.] 0. secs (0.u,0.s) -Chars 31981 - 32037 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) -Chars 32040 - 32044 [Qed.] 0.001 secs (0.001u,0.s) -Chars 32086 - 32271 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 32273 - 32279 [Proof.] 0. secs (0.u,0.s) -Chars 32282 - 32361 [(eapply~euttge_proper_euttC~wi...] 0. secs (0.u,0.s) -Chars 32364 - 32368 [Qed.] 0.001 secs (0.001u,0.s) -Chars 32371 - 32475 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 32476 - 32482 [Proof.] 0. secs (0.u,0.s) -Chars 32483 - 32503 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32504 - 32508 [Qed.] 0. secs (0.u,0.s) -Chars 32510 - 32619 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 32620 - 32626 [Proof.] 0. secs (0.u,0.s) -Chars 32627 - 32647 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32648 - 32652 [Qed.] 0. secs (0.u,0.s) -Chars 32654 - 32756 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) -Chars 32757 - 32763 [Proof.] 0. secs (0.u,0.s) -Chars 32764 - 32785 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32786 - 32790 [Qed.] 0. secs (0.u,0.s) -Chars 32792 - 32899 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) -Chars 32900 - 32906 [Proof.] 0. secs (0.u,0.s) -Chars 32907 - 32927 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32928 - 32932 [Qed.] 0. secs (0.u,0.s) -Chars 32934 - 33034 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 33035 - 33041 [Proof.] 0. secs (0.u,0.s) -Chars 33042 - 33062 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 33063 - 33067 [Qed.] 0. secs (0.u,0.s) -Chars 33069 - 33174 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 33175 - 33181 [Proof.] 0. secs (0.u,0.s) -Chars 33182 - 33202 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 33203 - 33207 [Qed.] 0. secs (0.u,0.s) -Chars 33209 - 33365 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 33366 - 33372 [Proof.] 0. secs (0.u,0.s) -Chars 33376 - 33389 [(split;~intro).] 0. secs (0.u,0.s) -Chars 33393 - 33426 [1:~(symmetry~in~H;~symmetry~in...] 0. secs (0.u,0.s) -Chars 33430 - 33561 [all:~~(apply~eq_sub_euttge~wit...] 0.004 secs (0.004u,0.s) -Chars 33562 - 33566 [Qed.] 0.001 secs (0.001u,0.s) -Chars 33568 - 33717 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 33719 - 33747 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 33751 - 33865 [(split;~intros;~revert_until~R...] 0.011 secs (0.01u,0.s) -Chars 33868 - 33907 [all:~(hinduction~H1~before~RR;...] 0.004 secs (0.004u,0.s) -Chars 33938 - 33989 [1-2,~6-7:~(inv~H;~inv~H0;~simp...] 0.256 secs (0.254u,0.001s) -Chars 34005 - 34184 [1,~4:~~(genvis~e~k1~ok1;~inv~H...] 0.237 secs (0.236u,0.001s) -Chars 34212 - 34281 [1,~3:~(inv~H;~simpobs;~taul;~e...] 0.101 secs (0.1u,0.s) -Chars 34284 - 34354 [1-2:~(inv~H0;~simpobs;~taur;~e...] 0.099 secs (0.098u,0.s) -Chars 34355 - 34359 [Qed.] 0.082 secs (0.08u,0.001s) -Chars 34862 - 35028 [Lemma~not_euttge_proper_euttge...] 0.001 secs (0.001u,0.s) -Chars 35031 - 35069 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 35073 - 35079 [intro.] 0. secs (0.u,0.s) -Chars 35081 - 35205 [(assert~~~(Hfalse~:~~~~euttge~...] 0. secs (0.u,0.s) -Chars 35208 - 35209 [{] 0. secs (0.u,0.s) -Chars 35210 - 35252 [(eapply~H~with~(x~:=~Ret~tt)~(...] 0. secs (0.u,0.s) -Chars 35375 - 35376 [-] 0. secs (0.u,0.s) -Chars 35377 - 35389 [reflexivity.] 0. secs (0.u,0.s) -Chars 35394 - 35395 [-] 0. secs (0.u,0.s) -Chars 35396 - 35401 [step.] 0.002 secs (0.002u,0.s) -Chars 35402 - 35407 [taul.] 0. secs (0.u,0.s) -Chars 35408 - 35420 [reflexivity.] 0. secs (0.u,0.s) -Chars 35425 - 35426 [-] 0. secs (0.u,0.s) -Chars 35427 - 35439 [reflexivity.] 0. secs (0.u,0.s) -Chars 35440 - 35441 [}] 0. secs (0.u,0.s) -Chars 35444 - 35459 [step~in~Hfalse.] 0.001 secs (0.001u,0.s) -Chars 35460 - 35471 [(inv~Hfalse).] 0.003 secs (0.003u,0.s) -Chars 35473 - 35477 [Qed.] 0.004 secs (0.004u,0.s) -Chars 35481 - 35648 [Lemma~euttge_proper_flip_euttg...] 0.001 secs (0.001u,0.s) -Chars 35758 - 35764 [Abort.] 0. secs (0.u,0.s) -Chars 35988 - 36159 [#[global]~Instance~euttge_eq_p...] 0.001 secs (0.001u,0.s) -Chars 36160 - 36188 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 36191 - 36229 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 36232 - 36248 [tower~induction.] 0.003 secs (0.003u,0.s) -Chars 36251 - 36316 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 36321 - 36331 [(intros~EQ).] 0. secs (0.u,0.s) -Chars 36332 - 36342 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 36348 - 36377 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) -Chars 36382 - 36421 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 36426 - 36447 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) -Chars 36452 - 36453 [+] 0. secs (0.u,0.s) -Chars 36454 - 36480 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36487 - 36499 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 36506 - 36520 [(genret~r1~or1).] 0. secs (0.u,0.s) -Chars 36527 - 36542 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36549 - 36584 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.05u,0.s) -Chars 36591 - 36592 [*] 0. secs (0.u,0.s) -Chars 36593 - 36619 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) -Chars 36620 - 36634 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36643 - 36670 [(genobs~y~oy;~genret~r2~or2).] 0. secs (0.u,0.s) -Chars 36679 - 36694 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36795 - 36830 [(hinduction~EQy~before~oy;~try...] 0.026 secs (0.026u,0.s) -Chars 36839 - 36864 [(subst;~intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 36871 - 36872 [*] 0. secs (0.u,0.s) -Chars 36873 - 36909 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 36914 - 36915 [+] 0. secs (0.u,0.s) -Chars 36916 - 36942 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36949 - 36961 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 36968 - 36982 [(gentau~m1~om1).] 0. secs (0.u,0.s) -Chars 36989 - 37004 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 37011 - 37046 [(hinduction~EQx~before~ox;~try...] 0.052 secs (0.052u,0.s) -Chars 37053 - 37054 [*] 0. secs (0.u,0.s) -Chars 37055 - 37073 [(intros~[=<-]~?~?~?).] 0. secs (0.u,0.s) -Chars 37082 - 37096 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 37105 - 37132 [(genobs~y~oy;~gentau~m2~om2).] 0.001 secs (0.001u,0.s) -Chars 37141 - 37156 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 37165 - 37200 [(hinduction~EQy~before~oy;~try...] 0.03 secs (0.03u,0.s) -Chars 37209 - 37227 [(intros~[=<-]~?~?)~...] 0.001 secs (0.001u,0.s) -Chars 37234 - 37235 [*] 0. secs (0.u,0.s) -Chars 37236 - 37272 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 37277 - 37278 [+] 0. secs (0.u,0.s) -Chars 37279 - 37305 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 37312 - 37324 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 37331 - 37347 [(genvis~e~k1~ot1).] 0. secs (0.u,0.s) -Chars 37354 - 37369 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 37376 - 37411 [(hinduction~EQx~before~ox;~try...] 0.051 secs (0.051u,0.s) -Chars 37418 - 37419 [*] 0. secs (0.u,0.s) -Chars 37420 - 37427 [(intros).] 0. secs (0.u,0.s) -Chars 37436 - 37502 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 37511 - 37525 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 37534 - 37563 [(genobs~y~oy;~genvis~e~k2~ot2).] 0.001 secs (0.001u,0.s) -Chars 37572 - 37587 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 37596 - 37631 [(hinduction~EQy~before~oy;~try...] 0.028 secs (0.028u,0.s) -Chars 37640 - 37732 [(intros;~apply~eq_inv_VisF_wea...] 0.022 secs (0.021u,0.s) -Chars 37739 - 37740 [*] 0. secs (0.u,0.s) -Chars 37741 - 37777 [(intros;~subst;~taul;~eapply~I...] 0.001 secs (0.001u,0.s) -Chars 37782 - 37783 [+] 0. secs (0.u,0.s) -Chars 37784 - 37828 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 37835 - 37843 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 37850 - 37855 [taul.] 0. secs (0.u,0.s) -Chars 37862 - 37881 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 37888 - 37939 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 37946 - 37983 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 37988 - 37989 [+] 0. secs (0.u,0.s) -Chars 37990 - 37995 [easy.] 0.017 secs (0.017u,0.s) -Chars 38045 - 38049 [Qed.] 0.025 secs (0.024u,0.s) -Chars 38051 - 38211 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 38212 - 38218 [Proof.] 0. secs (0.u,0.s) -Chars 38221 - 38234 [(split;~intro).] 0. secs (0.u,0.s) -Chars 38237 - 38238 [-] 0. secs (0.u,0.s) -Chars 38361 - 38417 [(symmetry~in~H;~apply~eq_sub_e...] 0. secs (0.u,0.s) -Chars 38422 - 38437 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 38442 - 38481 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) -Chars 38484 - 38485 [-] 0. secs (0.u,0.s) -Chars 38598 - 38639 [(apply~eq_sub_euttge~with~(RR~...] 0. secs (0.u,0.s) -Chars 38644 - 38683 [(eapply~euttge_eq_proper_euttg...] 0.001 secs (0.001u,0.s) -Chars 38684 - 38688 [Qed.] 0.001 secs (0.001u,0.s) -Chars 38691 - 38855 [#[global]~Instance~eq_proper_e...] 0.001 secs (0.001u,0.s) -Chars 38856 - 38862 [Proof.] 0. secs (0.u,0.s) -Chars 38866 - 38951 [(split;~revert_until~c;~tower~...] 0.011 secs (0.011u,0.s) -Chars 39025 - 39049 [all:~(inv~H2;~simpobs).] 0.154 secs (0.149u,0.004s) -Chars 39052 - 39137 [all:~~(try~genvis~e~k1~ok1;~in...] 0.297 secs (0.295u,0.002s) -Chars 39141 - 39205 [all:~(try~do~2~inv_Vis;~constr...] 0.17 secs (0.169u,0.001s) -Chars 39208 - 39228 [all:~(inv~H1;~inv~H0).] 0.024 secs (0.023u,0.s) -Chars 39233 - 39291 [all:~(eapply~H;~try~eapply~REL...] 0.001 secs (0.001u,0.s) -Chars 39295 - 39299 [Qed.] 0.07 secs (0.069u,0.s) -Chars 39338 - 39493 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 39494 - 39539 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) -Chars 39541 - 39640 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) -Chars 39641 - 39647 [Proof.] 0. secs (0.u,0.s) -Chars 39650 - 39657 [(intros).] 0. secs (0.u,0.s) -Chars 39658 - 39676 [(destruct~H;~eauto).] 0. secs (0.u,0.s) -Chars 39677 - 39681 [Qed.] 0. secs (0.u,0.s) -Chars 39710 - 39909 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 39910 - 39916 [Proof.] 0. secs (0.u,0.s) -Chars 39919 - 39931 [(unfold~eqit).] 0. secs (0.u,0.s) -Chars 39932 - 39948 [(revert_until~b2).] 0. secs (0.u,0.s) -Chars 40058 - 40077 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 40078 - 40085 [(intros).] 0. secs (0.u,0.s) -Chars 40089 - 40101 [step~in~INL.] 0. secs (0.u,0.s) -Chars 40102 - 40114 [step~in~INR.] 0. secs (0.u,0.s) -Chars 40212 - 40253 [(hinduction~INL~before~CIH;~in...] 0.001 secs (0.001u,0.s) -Chars 40254 - 40266 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 40298 - 40299 [-] 0. secs (0.u,0.s) -Chars 40300 - 40313 [(genret~r2~ot).] 0. secs (0.u,0.s) -Chars 40318 - 40381 [(hinduction~INR~before~CIH;~in...] 0.029 secs (0.029u,0.s) -Chars 40384 - 40385 [-] 0. secs (0.u,0.s) -Chars 40386 - 40400 [(genobs~t3~ot3).] 0. secs (0.u,0.s) -Chars 40474 - 40546 [(assert~(DEC~:~(exists~m3,~ot3...] 0. secs (0.u,0.s) -Chars 40551 - 40552 [{] 0. secs (0.u,0.s) -Chars 40553 - 40599 [(destruct~ot3;~eauto;~right;~r...] 0.008 secs (0.008u,0.s) -Chars 40600 - 40601 [}] 0. secs (0.u,0.s) -Chars 40606 - 40636 [(destruct~DEC~as~[[m3~?]|~EQ]).] 0. secs (0.u,0.s) -Chars 40677 - 40678 [+] 0. secs (0.u,0.s) -Chars 40679 - 40694 [(subst;~simpobs).] 0.001 secs (0.001u,0.s) -Chars 40702 - 40715 [econstructor.] 0. secs (0.u,0.s) -Chars 40722 - 40740 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 40747 - 40766 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) -Chars 40773 - 40782 [now~step.] 0.001 secs (0.001u,0.s) -Chars 40842 - 40843 [+] 0. secs (0.u,0.s) -Chars 40844 - 40891 [(inv~INR;~try~(exfalso;~eapply...] 0.045 secs (0.045u,0.s) -Chars 40898 - 40903 [taul.] 0. secs (0.u,0.s) -Chars 40911 - 40923 [step~in~REL.] 0. secs (0.u,0.s) -Chars 40930 - 41004 [(hinduction~REL0~before~CIH;~i...] 0.003 secs (0.003u,0.s) -Chars 41086 - 41087 [*] 0. secs (0.u,0.s) -Chars 41088 - 41113 [(remember~(RetF~r1)~as~ot).] 0. secs (0.u,0.s) -Chars 41122 - 41186 [(hinduction~REL0~before~CIH;~i...] 0.031 secs (0.031u,0.s) -Chars 41193 - 41194 [*] 0. secs (0.u,0.s) -Chars 41195 - 41222 [(remember~(VisF~e~k1)~as~ot).] 0. secs (0.u,0.s) -Chars 41231 - 41316 [(hinduction~REL0~before~CIH;~i...] 0.023 secs (0.023u,0.s) -Chars 41325 - 41338 [econstructor.] 0. secs (0.u,0.s) -Chars 41339 - 41346 [(intros).] 0. secs (0.u,0.s) -Chars 41355 - 41390 [(apply~(CIH~_~_~_~(REL~v)~(REL...] 0. secs (0.u,0.s) -Chars 41398 - 41399 [*] 0. secs (0.u,0.s) -Chars 41400 - 41421 [(eapply~IHREL0;~eauto).] 0. secs (0.u,0.s) -Chars 41430 - 41454 [(destruct~b1;~inv~CHECK0).] 0.008 secs (0.008u,0.s) -Chars 41463 - 41470 [unstep.] 0.004 secs (0.004u,0.s) -Chars 41471 - 41492 [(apply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 41493 - 41502 [now~step.] 0.001 secs (0.001u,0.s) -Chars 41506 - 41507 [-] 0. secs (0.u,0.s) -Chars 41508 - 41535 [(remember~(VisF~e~k2)~as~ot).] 0. secs (0.u,0.s) -Chars 41540 - 41624 [(hinduction~INR~before~CIH;~in...] 0.018 secs (0.018u,0.s) -Chars 41629 - 41642 [econstructor.] 0. secs (0.u,0.s) -Chars 41643 - 41650 [(intros).] 0. secs (0.u,0.s) -Chars 41655 - 41690 [(apply~(CIH~_~_~_~(REL0~v)~(RE...] 0. secs (0.u,0.s) -Chars 41694 - 41695 [-] 0. secs (0.u,0.s) -Chars 41696 - 41713 [eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 41716 - 41717 [-] 0. secs (0.u,0.s) -Chars 41718 - 41731 [(gentau~t0~ot).] 0.001 secs (0.001u,0.s) -Chars 41736 - 41750 [(genobs~t3~ot3).] 0. secs (0.u,0.s) -Chars 41756 - 41818 [(hinduction~INR~before~CIH;~in...] 0.011 secs (0.011u,0.s) -Chars 41823 - 41824 [+] 0. secs (0.u,0.s) -Chars 41825 - 41849 [(eapply~(IHINL~(Tau~m2))).] 0. secs (0.u,0.s) -Chars 41856 - 41868 [step~in~REL.] 0. secs (0.u,0.s) -Chars 41869 - 41886 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 41891 - 41892 [+] 0. secs (0.u,0.s) -Chars 41893 - 41910 [now~eapply~IHINL.] 0. secs (0.u,0.s) -Chars 41915 - 41916 [+] 0. secs (0.u,0.s) -Chars 41917 - 41922 [taur.] 0. secs (0.u,0.s) -Chars 41923 - 41943 [(eapply~IHINR;~eauto).] 0.001 secs (0.001u,0.s) -Chars 41945 - 41949 [Qed.] 0.055 secs (0.054u,0.s) -Chars 41951 - 42010 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) -Chars 42128 - 42282 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 42283 - 42289 [Proof.] 0. secs (0.u,0.s) -Chars 42292 - 42304 [(red;~intros).] 0. secs (0.u,0.s) -Chars 42305 - 42341 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 42345 - 42381 [(eapply~eqit_mono,~eqit_trans;...] 0.003 secs (0.003u,0.s) -Chars 42384 - 42392 [intros~!.] 0. secs (0.u,0.s) -Chars 42393 - 42409 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 42410 - 42414 [Qed.] 0. secs (0.u,0.s) -Chars 42416 - 42534 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 42535 - 42541 [Proof.] 0. secs (0.u,0.s) -Chars 42544 - 42566 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) -Chars 42567 - 42589 [(intros~!;~subst;~eauto).] 0. secs (0.u,0.s) -Chars 42590 - 42594 [Qed.] 0. secs (0.u,0.s) -Chars 42596 - 42747 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 42748 - 42754 [Proof.] 0. secs (0.u,0.s) -Chars 42757 - 42792 [(constructor;~try~typeclasses~...] 0. secs (0.u,0.s) -Chars 42793 - 42797 [Qed.] 0. secs (0.u,0.s) -Chars 42799 - 42921 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 42922 - 42928 [Proof.] 0. secs (0.u,0.s) -Chars 42931 - 42966 [(constructor;~try~typeclasses~...] 0.003 secs (0.003u,0.s) -Chars 42967 - 42971 [Qed.] 0. secs (0.u,0.s) -Chars 42973 - 43064 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 43065 - 43071 [Proof.] 0. secs (0.u,0.s) -Chars 43074 - 43086 [(red;~intros).] 0. secs (0.u,0.s) -Chars 43087 - 43123 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 43124 - 43160 [(eapply~eqit_mono,~eqit_trans;...] 0.004 secs (0.004u,0.s) -Chars 43163 - 43171 [intros~!.] 0. secs (0.u,0.s) -Chars 43172 - 43188 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 43190 - 43194 [Qed.] 0. secs (0.u,0.s) -Chars 43197 - 43329 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 43330 - 43336 [Proof.] 0. secs (0.u,0.s) -Chars 43339 - 43479 [(assert~~~(Hinf~:~~~~inf_close...] 0. secs (0.u,0.s) -Chars 43482 - 43483 [{] 0. secs (0.u,0.s) -Chars 43484 - 43516 [(intros~T~HTr~x~y~z~Hxy~Hyz~i~...] 0. secs (0.u,0.s) -Chars 43517 - 43580 [(apply~(HTr~_~Hi)~with~y;~[~ex...] 0. secs (0.u,0.s) -Chars 43581 - 43582 [}] 0. secs (0.u,0.s) -Chars 43585 - 43594 [revert~c.] 0. secs (0.u,0.s) -Chars 43595 - 43614 [(apply~(tower~Hinf)).] 0. secs (0.u,0.s) -Chars 43615 - 43631 [(intros~c~Htrans).] 0. secs (0.u,0.s) -Chars 43634 - 43642 [intros~!.] 0. secs (0.u,0.s) -Chars 43643 - 43653 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 43654 - 43685 [(eapply~Transitive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 43686 - 43690 [Qed.] 0.002 secs (0.002u,0.s) -Chars 43692 - 43827 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 43828 - 43834 [Proof.] 0. secs (0.u,0.s) -Chars 43837 - 43868 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 26689 - 26708 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) +Chars 26709 - 26722 [destruct~ot1.] 0. secs (0.u,0.s) +Chars 26729 - 26792 [1,~3:~step;~unfold~observe,~_o...] 0.003 secs (0.003u,0.s) +Chars 26799 - 26867 [1:~apply~eqit_inv_Tau_l;~step;...] 0.001 secs (0.001u,0.s) +Chars 26870 - 26874 [Qed.] 0.006 secs (0.006u,0.s) +Chars 26876 - 26889 [End~eqit_inv.] 0. secs (0.u,0.s) +Chars 26891 - 26935 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) +Chars 26936 - 26980 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) +Chars 26981 - 27029 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) +Chars 27031 - 27159 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) +Chars 27160 - 27166 [Proof.] 0. secs (0.u,0.s) +Chars 27169 - 27191 [intros~EQ;~step~in~EQ.] 0. secs (0.u,0.s) +Chars 27194 - 27227 [desobs~t~ot;~eauto;~inv~EQ;~easy.] 0.006 secs (0.006u,0.s) +Chars 27228 - 27232 [Qed.] 0.003 secs (0.003u,0.s) +Chars 27234 - 27407 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 27408 - 27414 [Proof.] 0. secs (0.u,0.s) +Chars 27417 - 27427 [intros~EQ.] 0. secs (0.u,0.s) +Chars 27430 - 27452 [step~in~EQ;~cbn~in~EQ.] 0. secs (0.u,0.s) +Chars 27455 - 27480 [genobs~t~ot;~genobs~u~ou.] 0. secs (0.u,0.s) +Chars 27483 - 27506 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) +Chars 27509 - 27540 [induction~EQ;~intros;~try~easy.] 0.009 secs (0.008u,0.s) +Chars 27543 - 27544 [-] 0. secs (0.u,0.s) +Chars 27545 - 27559 [inv~H;~inv~H0.] 0.001 secs (0.001u,0.s) +Chars 27563 - 27564 [-] 0. secs (0.u,0.s) +Chars 27565 - 27580 [inv~H;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 27585 - 27629 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 27634 - 27639 [step.] 0.001 secs (0.001u,0.s) +Chars 27644 - 27652 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 27657 - 27662 [taul.] 0. secs (0.u,0.s) +Chars 27667 - 27674 [unstep.] 0.002 secs (0.002u,0.s) +Chars 27679 - 27698 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 27699 - 27703 [Qed.] 0.004 secs (0.004u,0.s) +Chars 27706 - 27844 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) +Chars 27847 - 28039 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) +Chars 28044 - 28169 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) +Chars 28172 - 28228 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) +Chars 28229 - 28284 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) +Chars 28287 - 28449 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 28450 - 28478 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 28481 - 28519 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 28522 - 28538 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 28541 - 28606 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) +Chars 28611 - 28621 [intros~EQ.] 0. secs (0.u,0.s) +Chars 28622 - 28632 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 28638 - 28667 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 28787 - 28826 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 28831 - 28852 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 28857 - 28858 [+] 0. secs (0.u,0.s) +Chars 28859 - 28885 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 28892 - 28904 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 28911 - 28925 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 28932 - 28947 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 28954 - 28989 [hinduction~EQx~before~ox;~try~...] 0.037 secs (0.037u,0.s) +Chars 28996 - 28997 [*] 0. secs (0.u,0.s) +Chars 28998 - 29024 [intros;~subst;~inv~Heqor1.] 0.005 secs (0.005u,0.s) +Chars 29025 - 29039 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 29048 - 29075 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 29084 - 29099 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 29108 - 29143 [hinduction~EQy~before~oy;~try~...] 0.024 secs (0.024u,0.s) +Chars 29152 - 29177 [subst;~intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 29186 - 29217 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 29224 - 29225 [*] 0. secs (0.u,0.s) +Chars 29226 - 29262 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 29267 - 29268 [+] 0. secs (0.u,0.s) +Chars 29269 - 29295 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 29302 - 29314 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 29321 - 29335 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 29342 - 29357 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 29364 - 29399 [hinduction~EQx~before~ox;~try~...] 0.04 secs (0.04u,0.s) +Chars 29406 - 29407 [*] 0. secs (0.u,0.s) +Chars 29408 - 29426 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 29435 - 29449 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 29458 - 29485 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 29494 - 29509 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 29518 - 29553 [hinduction~EQy~before~oy;~try~...] 0.028 secs (0.028u,0.s) +Chars 29562 - 29580 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 29589 - 29596 [intros.] 0. secs (0.u,0.s) +Chars 29605 - 29610 [taur.] 0. secs (0.u,0.s) +Chars 29619 - 29636 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 29643 - 29644 [*] 0. secs (0.u,0.s) +Chars 29645 - 29681 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 29686 - 29687 [+] 0. secs (0.u,0.s) +Chars 29688 - 29714 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 29721 - 29733 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 29740 - 29756 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 29763 - 29778 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 29785 - 29820 [hinduction~EQx~before~ox;~try~...] 0.038 secs (0.038u,0.s) +Chars 29827 - 29828 [*] 0. secs (0.u,0.s) +Chars 29829 - 29836 [intros.] 0. secs (0.u,0.s) +Chars 29845 - 29911 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 29920 - 29934 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 29943 - 29972 [genobs~y~oy;~genvis~e~k2~ot2.] 0.001 secs (0.001u,0.s) +Chars 29981 - 29996 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 30005 - 30040 [hinduction~EQy~before~oy;~try~...] 0.025 secs (0.025u,0.s) +Chars 30049 - 30141 [intros;~apply~eq_inv_VisF_weak...] 0.015 secs (0.015u,0.s) +Chars 30150 - 30157 [intros.] 0. secs (0.u,0.s) +Chars 30166 - 30171 [taur.] 0. secs (0.u,0.s) +Chars 30180 - 30197 [now~eapply~IHEQy.] 0. secs (0.u,0.s) +Chars 30204 - 30205 [*] 0. secs (0.u,0.s) +Chars 30206 - 30242 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 30247 - 30248 [+] 0. secs (0.u,0.s) +Chars 30249 - 30293 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 30300 - 30308 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 30315 - 30320 [taul.] 0. secs (0.u,0.s) +Chars 30327 - 30346 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 30353 - 30404 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 30411 - 30448 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 30453 - 30454 [+] 0. secs (0.u,0.s) +Chars 30455 - 30499 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 30506 - 30514 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 30521 - 30526 [taur.] 0. secs (0.u,0.s) +Chars 30533 - 30552 [eapply~IHEQ;~eauto.] 0.001 secs (0.001u,0.s) +Chars 30559 - 30610 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 30617 - 30654 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 30655 - 30659 [Qed.] 0.02 secs (0.02u,0.s) +Chars 30719 - 30922 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 30923 - 30929 [Proof.] 0. secs (0.u,0.s) +Chars 30932 - 30988 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) +Chars 30991 - 30995 [Qed.] 0. secs (0.u,0.s) +Chars 31037 - 31232 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) +Chars 31234 - 31240 [Proof.] 0. secs (0.u,0.s) +Chars 31243 - 31322 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) +Chars 31325 - 31329 [Qed.] 0. secs (0.u,0.s) +Chars 31332 - 31436 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) +Chars 31437 - 31443 [Proof.] 0. secs (0.u,0.s) +Chars 31444 - 31464 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 31465 - 31469 [Qed.] 0. secs (0.u,0.s) +Chars 31471 - 31580 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 31581 - 31587 [Proof.] 0. secs (0.u,0.s) +Chars 31588 - 31608 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 31609 - 31613 [Qed.] 0. secs (0.u,0.s) +Chars 31615 - 31717 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) +Chars 31718 - 31724 [Proof.] 0. secs (0.u,0.s) +Chars 31725 - 31746 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) +Chars 31747 - 31751 [Qed.] 0. secs (0.u,0.s) +Chars 31753 - 31860 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) +Chars 31861 - 31867 [Proof.] 0. secs (0.u,0.s) +Chars 31868 - 31888 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 31889 - 31893 [Qed.] 0. secs (0.u,0.s) +Chars 31895 - 31995 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 31996 - 32002 [Proof.] 0. secs (0.u,0.s) +Chars 32003 - 32023 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32024 - 32028 [Qed.] 0. secs (0.u,0.s) +Chars 32030 - 32135 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) +Chars 32136 - 32142 [Proof.] 0. secs (0.u,0.s) +Chars 32143 - 32163 [now~apply~eqit_mono.] 0. secs (0.u,0.s) +Chars 32164 - 32168 [Qed.] 0. secs (0.u,0.s) +Chars 32170 - 32326 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 32327 - 32333 [Proof.] 0. secs (0.u,0.s) +Chars 32337 - 32350 [split;~intro.] 0. secs (0.u,0.s) +Chars 32354 - 32387 [1:~symmetry~in~H;~symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 32391 - 32522 [all:~~apply~eq_sub_euttge~with...] 0.005 secs (0.005u,0.s) +Chars 32523 - 32527 [Qed.] 0.001 secs (0.001u,0.s) +Chars 32529 - 32678 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 32680 - 32708 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 32712 - 32826 [split;~intros;~revert_until~RR...] 0.006 secs (0.006u,0.s) +Chars 32829 - 32868 [all:~hinduction~H1~before~RR;~...] 0.003 secs (0.003u,0.s) +Chars 32899 - 32950 [1-2,~6-7:~inv~H;~inv~H0;~simpo...] 0.178 secs (0.177u,0.s) +Chars 32966 - 33145 [1,~4:~~genvis~e~k1~ok1;~inv~H;...] 0.162 secs (0.162u,0.s) +Chars 33173 - 33242 [1,~3:~inv~H;~simpobs;~taul;~ea...] 0.073 secs (0.072u,0.s) +Chars 33245 - 33315 [1-2:~inv~H0;~simpobs;~taur;~ea...] 0.071 secs (0.071u,0.s) +Chars 33316 - 33320 [Qed.] 0.059 secs (0.058u,0.s) +Chars 33823 - 33989 [Lemma~not_euttge_proper_euttge...] 0. secs (0.u,0.s) +Chars 33992 - 34030 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 34034 - 34040 [intro.] 0. secs (0.u,0.s) +Chars 34042 - 34162 [assert~~(Hfalse~:~~~euttge~(E:...] 0. secs (0.u,0.s) +Chars 34165 - 34166 [{] 0. secs (0.u,0.s) +Chars 34167 - 34209 [eapply~H~with~(x~:=~Ret~tt)~(y...] 0. secs (0.u,0.s) +Chars 34332 - 34333 [-] 0. secs (0.u,0.s) +Chars 34334 - 34346 [reflexivity.] 0. secs (0.u,0.s) +Chars 34351 - 34352 [-] 0. secs (0.u,0.s) +Chars 34353 - 34358 [step.] 0.001 secs (0.001u,0.s) +Chars 34359 - 34364 [taul.] 0. secs (0.u,0.s) +Chars 34365 - 34377 [reflexivity.] 0. secs (0.u,0.s) +Chars 34382 - 34383 [-] 0. secs (0.u,0.s) +Chars 34384 - 34396 [reflexivity.] 0. secs (0.u,0.s) +Chars 34397 - 34398 [}] 0. secs (0.u,0.s) +Chars 34401 - 34416 [step~in~Hfalse.] 0. secs (0.u,0.s) +Chars 34417 - 34428 [inv~Hfalse.] 0.002 secs (0.002u,0.s) +Chars 34430 - 34434 [Qed.] 0.003 secs (0.003u,0.s) +Chars 34438 - 34605 [Lemma~euttge_proper_flip_euttg...] 0. secs (0.u,0.s) +Chars 34715 - 34721 [Abort.] 0. secs (0.u,0.s) +Chars 34945 - 35116 [#[global]~Instance~euttge_eq_p...] 0. secs (0.u,0.s) +Chars 35117 - 35145 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 35148 - 35186 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 35189 - 35205 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 35208 - 35273 [clear~c;~intros~c~IH~x~x'~EQx~...] 0.001 secs (0.001u,0.s) +Chars 35278 - 35288 [intros~EQ.] 0. secs (0.u,0.s) +Chars 35289 - 35299 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 35305 - 35334 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) +Chars 35339 - 35378 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) +Chars 35383 - 35404 [induction~EQ;~intros.] 0. secs (0.u,0.s) +Chars 35409 - 35410 [+] 0. secs (0.u,0.s) +Chars 35411 - 35437 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 35444 - 35456 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 35463 - 35477 [genret~r1~or1.] 0. secs (0.u,0.s) +Chars 35484 - 35499 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 35506 - 35541 [hinduction~EQx~before~ox;~try~...] 0.039 secs (0.039u,0.s) +Chars 35548 - 35549 [*] 0. secs (0.u,0.s) +Chars 35550 - 35576 [intros;~subst;~inv~Heqor1.] 0.006 secs (0.006u,0.s) +Chars 35577 - 35591 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 35600 - 35627 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) +Chars 35636 - 35651 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 35752 - 35787 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) +Chars 35796 - 35821 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) +Chars 35828 - 35829 [*] 0. secs (0.u,0.s) +Chars 35830 - 35866 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 35871 - 35872 [+] 0. secs (0.u,0.s) +Chars 35873 - 35899 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 35906 - 35918 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 35925 - 35939 [gentau~m1~om1.] 0. secs (0.u,0.s) +Chars 35946 - 35961 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 35968 - 36003 [hinduction~EQx~before~ox;~try~...] 0.046 secs (0.045u,0.s) +Chars 36010 - 36011 [*] 0. secs (0.u,0.s) +Chars 36012 - 36030 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) +Chars 36039 - 36053 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 36062 - 36089 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) +Chars 36098 - 36113 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 36122 - 36157 [hinduction~EQy~before~oy;~try~...] 0.024 secs (0.022u,0.s) +Chars 36166 - 36184 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) +Chars 36191 - 36192 [*] 0. secs (0.u,0.s) +Chars 36193 - 36229 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 36234 - 36235 [+] 0. secs (0.u,0.s) +Chars 36236 - 36262 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) +Chars 36269 - 36281 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 36288 - 36304 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) +Chars 36311 - 36326 [revert~x~Heqox.] 0. secs (0.u,0.s) +Chars 36333 - 36368 [hinduction~EQx~before~ox;~try~...] 0.044 secs (0.043u,0.s) +Chars 36375 - 36376 [*] 0. secs (0.u,0.s) +Chars 36377 - 36384 [intros.] 0. secs (0.u,0.s) +Chars 36393 - 36459 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 36468 - 36482 [clear~x~Heqox.] 0. secs (0.u,0.s) +Chars 36491 - 36520 [genobs~y~oy;~genvis~e~k2~ot2.] 0. secs (0.u,0.s) +Chars 36529 - 36544 [revert~y~Heqoy.] 0. secs (0.u,0.s) +Chars 36553 - 36588 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) +Chars 36597 - 36689 [intros;~apply~eq_inv_VisF_weak...] 0.016 secs (0.016u,0.s) +Chars 36696 - 36697 [*] 0. secs (0.u,0.s) +Chars 36698 - 36734 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) +Chars 36739 - 36740 [+] 0. secs (0.u,0.s) +Chars 36741 - 36785 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 36792 - 36800 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 36807 - 36812 [taul.] 0. secs (0.u,0.s) +Chars 36819 - 36838 [eapply~IHEQ;~eauto.] 0.001 secs (0.001u,0.s) +Chars 36845 - 36896 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 36903 - 36940 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 36945 - 36946 [+] 0. secs (0.u,0.s) +Chars 36947 - 36952 [easy.] 0.013 secs (0.013u,0.s) +Chars 37002 - 37006 [Qed.] 0.018 secs (0.018u,0.s) +Chars 37008 - 37168 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 37169 - 37175 [Proof.] 0. secs (0.u,0.s) +Chars 37178 - 37191 [split;~intro.] 0. secs (0.u,0.s) +Chars 37194 - 37195 [-] 0. secs (0.u,0.s) +Chars 37318 - 37374 [symmetry~in~H;~apply~eq_sub_eu...] 0. secs (0.u,0.s) +Chars 37379 - 37394 [symmetry~in~H0.] 0. secs (0.u,0.s) +Chars 37399 - 37438 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) +Chars 37441 - 37442 [-] 0. secs (0.u,0.s) +Chars 37555 - 37596 [apply~eq_sub_euttge~with~(RR~:...] 0. secs (0.u,0.s) +Chars 37601 - 37640 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) +Chars 37641 - 37645 [Qed.] 0.001 secs (0.001u,0.s) +Chars 37648 - 37812 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 37813 - 37819 [Proof.] 0. secs (0.u,0.s) +Chars 37823 - 37908 [split;~revert_until~c;~tower~i...] 0.008 secs (0.008u,0.s) +Chars 37982 - 38006 [all:~inv~H2;~simpobs.] 0.11 secs (0.109u,0.s) +Chars 38009 - 38094 [all:~~try~genvis~e~k1~ok1;~inv...] 0.218 secs (0.217u,0.s) +Chars 38098 - 38162 [all:~try~do~2~inv_Vis;~constru...] 0.12 secs (0.12u,0.s) +Chars 38165 - 38185 [all:~inv~H1;~inv~H0.] 0.017 secs (0.017u,0.s) +Chars 38190 - 38248 [all:~eapply~H;~try~eapply~REL0...] 0.001 secs (0.001u,0.s) +Chars 38252 - 38256 [Qed.] 0.054 secs (0.054u,0.s) +Chars 38295 - 38450 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 38451 - 38496 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) +Chars 38498 - 38597 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) +Chars 38598 - 38604 [Proof.] 0. secs (0.u,0.s) +Chars 38607 - 38614 [intros.] 0. secs (0.u,0.s) +Chars 38615 - 38633 [destruct~H;~eauto.] 0. secs (0.u,0.s) +Chars 38634 - 38638 [Qed.] 0. secs (0.u,0.s) +Chars 38667 - 38866 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 38867 - 38873 [Proof.] 0. secs (0.u,0.s) +Chars 38876 - 38888 [unfold~eqit.] 0. secs (0.u,0.s) +Chars 38889 - 38905 [revert_until~b2.] 0. secs (0.u,0.s) +Chars 39015 - 39034 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 39035 - 39042 [intros.] 0. secs (0.u,0.s) +Chars 39046 - 39058 [step~in~INL.] 0. secs (0.u,0.s) +Chars 39059 - 39071 [step~in~INR.] 0. secs (0.u,0.s) +Chars 39169 - 39210 [hinduction~INL~before~CIH;~int...] 0. secs (0.u,0.s) +Chars 39211 - 39223 [clear~t1~t2.] 0. secs (0.u,0.s) +Chars 39255 - 39256 [-] 0. secs (0.u,0.s) +Chars 39257 - 39270 [genret~r2~ot.] 0. secs (0.u,0.s) +Chars 39275 - 39338 [hinduction~INR~before~CIH;~int...] 0.017 secs (0.017u,0.s) +Chars 39341 - 39342 [-] 0. secs (0.u,0.s) +Chars 39343 - 39357 [genobs~t3~ot3.] 0. secs (0.u,0.s) +Chars 39431 - 39503 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) +Chars 39508 - 39509 [{] 0. secs (0.u,0.s) +Chars 39510 - 39556 [destruct~ot3;~eauto;~right;~re...] 0.004 secs (0.004u,0.s) +Chars 39557 - 39558 [}] 0. secs (0.u,0.s) +Chars 39563 - 39593 [destruct~DEC~as~[[m3~?]|~EQ].] 0. secs (0.u,0.s) +Chars 39634 - 39635 [+] 0. secs (0.u,0.s) +Chars 39636 - 39651 [subst;~simpobs.] 0.003 secs (0.003u,0.s) +Chars 39659 - 39672 [econstructor.] 0. secs (0.u,0.s) +Chars 39679 - 39697 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 39704 - 39723 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) +Chars 39730 - 39739 [now~step.] 0.001 secs (0.001u,0.s) +Chars 39799 - 39800 [+] 0. secs (0.u,0.s) +Chars 39801 - 39848 [inv~INR;~try~(exfalso;~eapply~...] 0.032 secs (0.032u,0.s) +Chars 39855 - 39860 [taul.] 0. secs (0.u,0.s) +Chars 39868 - 39880 [step~in~REL.] 0. secs (0.u,0.s) +Chars 39887 - 39961 [hinduction~REL0~before~CIH;~in...] 0.002 secs (0.002u,0.s) +Chars 40043 - 40044 [*] 0. secs (0.u,0.s) +Chars 40045 - 40070 [remember~(RetF~r1)~as~ot.] 0. secs (0.u,0.s) +Chars 40079 - 40143 [hinduction~REL0~before~CIH;~in...] 0.022 secs (0.022u,0.s) +Chars 40150 - 40151 [*] 0. secs (0.u,0.s) +Chars 40152 - 40179 [remember~(VisF~e~k1)~as~ot.] 0. secs (0.u,0.s) +Chars 40188 - 40273 [hinduction~REL0~before~CIH;~in...] 0.016 secs (0.016u,0.s) +Chars 40282 - 40295 [econstructor.] 0. secs (0.u,0.s) +Chars 40296 - 40303 [intros.] 0. secs (0.u,0.s) +Chars 40312 - 40347 [apply~(CIH~_~_~_~(REL~v)~(REL0...] 0. secs (0.u,0.s) +Chars 40355 - 40356 [*] 0. secs (0.u,0.s) +Chars 40357 - 40378 [eapply~IHREL0;~eauto.] 0. secs (0.u,0.s) +Chars 40387 - 40411 [destruct~b1;~inv~CHECK0.] 0.006 secs (0.006u,0.s) +Chars 40420 - 40427 [unstep.] 0.002 secs (0.002u,0.s) +Chars 40428 - 40449 [apply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 40450 - 40459 [now~step.] 0.001 secs (0.001u,0.s) +Chars 40463 - 40464 [-] 0. secs (0.u,0.s) +Chars 40465 - 40492 [remember~(VisF~e~k2)~as~ot.] 0. secs (0.u,0.s) +Chars 40497 - 40581 [hinduction~INR~before~CIH;~int...] 0.014 secs (0.014u,0.s) +Chars 40586 - 40599 [econstructor.] 0. secs (0.u,0.s) +Chars 40600 - 40607 [intros.] 0. secs (0.u,0.s) +Chars 40612 - 40647 [apply~(CIH~_~_~_~(REL0~v)~(REL...] 0. secs (0.u,0.s) +Chars 40651 - 40652 [-] 0. secs (0.u,0.s) +Chars 40653 - 40670 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 40673 - 40674 [-] 0. secs (0.u,0.s) +Chars 40675 - 40688 [gentau~t0~ot.] 0. secs (0.u,0.s) +Chars 40693 - 40707 [genobs~t3~ot3.] 0. secs (0.u,0.s) +Chars 40713 - 40775 [hinduction~INR~before~CIH;~int...] 0.009 secs (0.008u,0.s) +Chars 40780 - 40781 [+] 0. secs (0.u,0.s) +Chars 40782 - 40806 [eapply~(IHINL~(Tau~m2)).] 0. secs (0.u,0.s) +Chars 40813 - 40825 [step~in~REL.] 0. secs (0.u,0.s) +Chars 40826 - 40843 [eauto~with~itree.] 0. secs (0.u,0.s) +Chars 40848 - 40849 [+] 0. secs (0.u,0.s) +Chars 40850 - 40867 [now~eapply~IHINL.] 0. secs (0.u,0.s) +Chars 40872 - 40873 [+] 0. secs (0.u,0.s) +Chars 40874 - 40879 [taur.] 0. secs (0.u,0.s) +Chars 40880 - 40900 [eapply~IHINR;~eauto.] 0.001 secs (0.001u,0.s) +Chars 40902 - 40906 [Qed.] 0.037 secs (0.037u,0.s) +Chars 40908 - 40967 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) +Chars 41085 - 41239 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 41240 - 41246 [Proof.] 0. secs (0.u,0.s) +Chars 41249 - 41261 [red;~intros.] 0. secs (0.u,0.s) +Chars 41262 - 41298 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) +Chars 41302 - 41338 [eapply~eqit_mono,~eqit_trans;~...] 0.002 secs (0.002u,0.s) +Chars 41341 - 41349 [intros~!.] 0. secs (0.u,0.s) +Chars 41350 - 41366 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 41367 - 41371 [Qed.] 0. secs (0.u,0.s) +Chars 41373 - 41491 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 41492 - 41498 [Proof.] 0. secs (0.u,0.s) +Chars 41501 - 41523 [apply~Transitive_eqit.] 0. secs (0.u,0.s) +Chars 41524 - 41546 [intros~!;~subst;~eauto.] 0. secs (0.u,0.s) +Chars 41547 - 41551 [Qed.] 0. secs (0.u,0.s) +Chars 41553 - 41704 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 41705 - 41711 [Proof.] 0. secs (0.u,0.s) +Chars 41714 - 41749 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) +Chars 41750 - 41754 [Qed.] 0. secs (0.u,0.s) +Chars 41756 - 41878 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 41879 - 41885 [Proof.] 0. secs (0.u,0.s) +Chars 41888 - 41923 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) +Chars 41924 - 41928 [Qed.] 0. secs (0.u,0.s) +Chars 41930 - 42021 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 42022 - 42028 [Proof.] 0. secs (0.u,0.s) +Chars 42031 - 42043 [red;~intros.] 0. secs (0.u,0.s) +Chars 42044 - 42080 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) +Chars 42081 - 42117 [eapply~eqit_mono,~eqit_trans;~...] 0.007 secs (0.007u,0.s) +Chars 42120 - 42128 [intros~!.] 0. secs (0.u,0.s) +Chars 42129 - 42145 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 42147 - 42151 [Qed.] 0. secs (0.u,0.s) +Chars 42154 - 42286 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 42287 - 42293 [Proof.] 0. secs (0.u,0.s) +Chars 42296 - 42436 [assert~~(Hinf~:~~~inf_closed~~...] 0. secs (0.u,0.s) +Chars 42439 - 42440 [{] 0. secs (0.u,0.s) +Chars 42441 - 42473 [intros~T~HTr~x~y~z~Hxy~Hyz~i~Hi.] 0. secs (0.u,0.s) +Chars 42474 - 42537 [apply~(HTr~_~Hi)~with~y;~[~exa...] 0. secs (0.u,0.s) +Chars 42538 - 42539 [}] 0. secs (0.u,0.s) +Chars 42542 - 42551 [revert~c.] 0. secs (0.u,0.s) +Chars 42552 - 42571 [apply~(tower~Hinf).] 0. secs (0.u,0.s) +Chars 42572 - 42588 [intros~c~Htrans.] 0. secs (0.u,0.s) +Chars 42591 - 42599 [intros~!.] 0. secs (0.u,0.s) +Chars 42600 - 42610 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 42611 - 42642 [eapply~Transitive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 42643 - 42647 [Qed.] 0.001 secs (0.001u,0.s) +Chars 42649 - 42784 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 42785 - 42791 [Proof.] 0. secs (0.u,0.s) +Chars 42794 - 42825 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 42826 - 42830 [Qed.] 0. secs (0.u,0.s) +Chars 42834 - 42914 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 42915 - 42921 [Proof.] 0. secs (0.u,0.s) +Chars 42924 - 42988 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) +Chars 42989 - 42993 [Qed.] 0. secs (0.u,0.s) +Chars 42994 - 43074 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) +Chars 43075 - 43081 [Proof.] 0. secs (0.u,0.s) +Chars 43084 - 43151 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) +Chars 43152 - 43156 [Qed.] 0. secs (0.u,0.s) +Chars 43158 - 43276 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 43277 - 43283 [Proof.] 0. secs (0.u,0.s) +Chars 43286 - 43297 [repeat~red.] 0. secs (0.u,0.s) +Chars 43301 - 43326 [intros~t~t'~EQ1~u~u'~EQ2.] 0. secs (0.u,0.s) +Chars 43329 - 43349 [split;~intros~EQUIV.] 0. secs (0.u,0.s) +Chars 43353 - 43354 [-] 0. secs (0.u,0.s) +Chars 43355 - 43371 [symmetry~in~EQ1.] 0. secs (0.u,0.s) +Chars 43377 - 43419 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) +Chars 43424 - 43455 [rewrite~rcompose_eql~in~EQUIV'.] 0.001 secs (0.001u,0.s) +Chars 43460 - 43504 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) +Chars 43509 - 43545 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) +Chars 43548 - 43549 [-] 0. secs (0.u,0.s) +Chars 43550 - 43592 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) +Chars 43597 - 43628 [rewrite~rcompose_eql~in~EQUIV'.] 0.001 secs (0.001u,0.s) +Chars 43633 - 43649 [symmetry~in~EQ2.] 0. secs (0.u,0.s) +Chars 43654 - 43698 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) +Chars 43703 - 43739 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) +Chars 43740 - 43744 [Qed.] 0.001 secs (0.001u,0.s) +Chars 43746 - 43840 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) +Chars 43841 - 43847 [Proof.] 0. secs (0.u,0.s) +Chars 43850 - 43868 [typeclasses~eauto.] 0. secs (0.u,0.s) Chars 43869 - 43873 [Qed.] 0. secs (0.u,0.s) -Chars 43877 - 43957 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 43958 - 43964 [Proof.] 0. secs (0.u,0.s) -Chars 43967 - 44031 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) -Chars 44032 - 44036 [Qed.] 0. secs (0.u,0.s) -Chars 44037 - 44117 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 44118 - 44124 [Proof.] 0. secs (0.u,0.s) -Chars 44127 - 44194 [(split;~[~intros~?~?~[];~now~s...] 0. secs (0.u,0.s) -Chars 44195 - 44199 [Qed.] 0. secs (0.u,0.s) -Chars 44201 - 44319 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 44320 - 44326 [Proof.] 0. secs (0.u,0.s) -Chars 44329 - 44340 [(repeat~red).] 0. secs (0.u,0.s) -Chars 44344 - 44369 [(intros~t~t'~EQ1~u~u'~EQ2).] 0. secs (0.u,0.s) -Chars 44372 - 44392 [(split;~intros~EQUIV).] 0. secs (0.u,0.s) -Chars 44396 - 44397 [-] 0. secs (0.u,0.s) -Chars 44398 - 44414 [symmetry~in~EQ1.] 0. secs (0.u,0.s) -Chars 44420 - 44462 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) -Chars 44467 - 44498 [(rewrite~rcompose_eql~in~EQUIV').] 0.002 secs (0.002u,0.s) -Chars 44503 - 44547 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) -Chars 44552 - 44588 [now~rewrite~rcompose_eqr~in~EQ...] 0.003 secs (0.002u,0.s) -Chars 44591 - 44592 [-] 0. secs (0.u,0.s) -Chars 44593 - 44635 [(pose~proof~(eqit_trans~EQ1~EQ...] 0. secs (0.u,0.s) -Chars 44640 - 44671 [(rewrite~rcompose_eql~in~EQUIV').] 0.003 secs (0.002u,0.s) -Chars 44676 - 44692 [symmetry~in~EQ2.] 0. secs (0.u,0.s) -Chars 44697 - 44741 [(pose~proof~(eqit_trans~EQUIV'...] 0. secs (0.u,0.s) -Chars 44746 - 44782 [now~rewrite~rcompose_eqr~in~EQ...] 0.008 secs (0.007u,0.s) -Chars 44783 - 44787 [Qed.] 0.002 secs (0.002u,0.s) -Chars 44789 - 44883 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 44884 - 44890 [Proof.] 0. secs (0.u,0.s) -Chars 44893 - 44911 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 44912 - 44916 [Qed.] 0. secs (0.u,0.s) -Chars 44918 - 45013 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 45014 - 45020 [Proof.] 0. secs (0.u,0.s) -Chars 45023 - 45035 [(red;~intros).] 0. secs (0.u,0.s) -Chars 45036 - 45072 [(pose~proof~(trans_rcompose~RR...] 0. secs (0.u,0.s) -Chars 45073 - 45109 [(eapply~eqit_mono,~eqit_trans;...] 0.005 secs (0.004u,0.s) -Chars 45112 - 45120 [intros~!.] 0. secs (0.u,0.s) -Chars 45121 - 45137 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 45139 - 45143 [Qed.] 0. secs (0.u,0.s) -Chars 45145 - 45234 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) -Chars 45235 - 45241 [Proof.] 0. secs (0.u,0.s) -Chars 45244 - 45275 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 45277 - 45281 [Qed.] 0. secs (0.u,0.s) -Chars 45283 - 45435 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 45437 - 45443 [Proof.] 0. secs (0.u,0.s) -Chars 45447 - 45465 [(split;~intros~!).] 0. secs (0.u,0.s) -Chars 45468 - 45506 [(do~2~(etransitivity;~symmetry...] 0.005 secs (0.005u,0.s) -Chars 45509 - 45551 [(do~2~(etransitivity;~eauto);~...] 0.004 secs (0.004u,0.s) -Chars 45553 - 45557 [Qed.] 0.001 secs (0.001u,0.s) -Chars 45588 - 45601 [Module~Tests.] 0. secs (0.u,0.s) -Chars 45604 - 45640 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 45643 - 45675 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 45678 - 45719 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 45722 - 45758 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 45761 - 45797 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 45800 - 45835 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 45838 - 45876 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 45879 - 45914 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 45917 - 45955 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 45958 - 45992 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) -Chars 45995 - 46030 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 46125 - 46142 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 46147 - 46162 [(rewrite~EQUIV2).] 0.012 secs (0.012u,0.s) -Chars 46167 - 46182 [(rewrite~<-~EQ2).] 0.01 secs (0.01u,0.s) -Chars 46187 - 46210 [(eapply~eq_proper_euttC).] 0.001 secs (0.001u,0.s) -Chars 46215 - 46230 [(rewrite~<-~EQ1).] 0.001 secs (0.001u,0.s) -Chars 46235 - 46245 [exact~EQ1.] 0. secs (0.u,0.s) -Chars 46251 - 46271 [(rewrite~EQ2,~<-~EQ2).] 0.004 secs (0.004u,0.s) -Chars 46277 - 46287 [exact~EQ2.] 0. secs (0.u,0.s) -Chars 46293 - 46298 [step.] 0.003 secs (0.003u,0.s) -Chars 46319 - 46324 [step.] 0.003 secs (0.003u,0.s) -Chars 46330 - 46345 [(rewrite~<-~EQ1).] 0.01 secs (0.01u,0.s) -Chars 46351 - 46365 [(rewrite~<-~GT).] 0.036 secs (0.035u,0.s) -Chars 46371 - 46383 [(rewrite~EQ1).] 0.01 secs (0.01u,0.s) -Chars 46388 - 46406 [(rewrite~<-~EQUIV1).] 0.011 secs (0.011u,0.s) -Chars 46409 - 46415 [Abort.] 0. secs (0.u,0.s) -Chars 46420 - 46465 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) -Chars 46525 - 46565 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) -Chars 46570 - 46579 [(intros~H).] 0. secs (0.u,0.s) -Chars 46584 - 46596 [(rewrite~EQ1).] 0.007 secs (0.007u,0.s) -Chars 46601 - 46618 [(rewrite~EQ1~in~H).] 0.007 secs (0.007u,0.s) -Chars 46623 - 46641 [(rewrite~<-~EQUIV1).] 0.008 secs (0.008u,0.s) -Chars 46686 - 46709 [(rewrite~<-~EQUIV1~in~H).] 0.008 secs (0.008u,0.s) -Chars 46714 - 46737 [(rewrite~<-~EQUIV2~in~H).] 0.011 secs (0.011u,0.s) -Chars 46743 - 46755 [(rewrite~GT2).] 0.002 secs (0.002u,0.s) -Chars 46760 - 46780 [(rewrite~<-~GT2~in~H).] 0.028 secs (0.027u,0.s) -Chars 46785 - 46796 [(rewrite~GT).] 0.001 secs (0.001u,0.s) -Chars 46801 - 46820 [(rewrite~<-~GT~in~H).] 0.028 secs (0.027u,0.s) -Chars 46882 - 46896 [Fail~symmetry.] 0. secs (0.u,0.s) -Chars 46901 - 46920 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) -Chars 46925 - 46939 [(rewrite~<-~GT).] 0.028 secs (0.028u,0.s) -Chars 46945 - 46956 [assumption.] 0. secs (0.u,0.s) -Chars 46960 - 46964 [Qed.] 0.002 secs (0.002u,0.s) -Chars 46968 - 47011 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) -Chars 47015 - 47082 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) -Chars 47085 - 47125 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) -Chars 47131 - 47136 [step.] 0.001 secs (0.001u,0.s) -Chars 47170 - 47177 [unstep.] 0.003 secs (0.003u,0.s) -Chars 47183 - 47227 [(assert~(eutt~(E:=VE)~eq~(Ret~...] 0. secs (0.u,0.s) -Chars 47233 - 47238 [step.] 0.002 secs (0.002u,0.s) -Chars 47297 - 47323 [(rewrite~observing_observe).] 0.006 secs (0.006u,0.s) -Chars 47324 - 47330 [Abort.] 0. secs (0.u,0.s) -Chars 47334 - 47358 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) -Chars 47363 - 47372 [(intros~H).] 0. secs (0.u,0.s) -Chars 47377 - 47389 [(rewrite~EQ1).] 0. secs (0.u,0.s) -Chars 47394 - 47411 [(rewrite~EQ1~in~H).] 0.008 secs (0.008u,0.s) -Chars 47416 - 47425 [symmetry.] 0. secs (0.u,0.s) -Chars 47430 - 47444 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 47449 - 47461 [reflexivity.] 0. secs (0.u,0.s) -Chars 47462 - 47466 [Qed.] 0. secs (0.u,0.s) -Chars 47553 - 47628 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) -Chars 47633 - 47651 [(intros~EQ1~EQ2'~H).] 0. secs (0.u,0.s) -Chars 47656 - 47668 [(rewrite~EQ1).] 0.009 secs (0.009u,0.s) -Chars 47673 - 47685 [(rewrite~EQ2).] 0.001 secs (0.001u,0.s) -Chars 47690 - 47714 [(apply~eqit_flip~in~EQ2').] 0. secs (0.u,0.s) -Chars 47719 - 47739 [(rewrite~EQ2~in~EQ2').] 0.015 secs (0.015u,0.s) -Chars 47744 - 47788 [(eapply~(eqit_mono~RR~RR~false...] 0.002 secs (0.002u,0.s) -Chars 47855 - 47859 [Qed.] 0.002 secs (0.002u,0.s) -Chars 47910 - 47934 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) -Chars 47939 - 47958 [icoinduction~r~CIH.] 0.002 secs (0.002u,0.s) -Chars 47963 - 47970 [(intros).] 0. secs (0.u,0.s) -Chars 47975 - 47980 [step.] 0.003 secs (0.003u,0.s) -Chars 47986 - 47996 [(rewrite~H).] 0.017 secs (0.016u,0.s) -Chars 48002 - 48014 [reflexivity.] 0. secs (0.u,0.s) -Chars 48016 - 48020 [Qed.] 0.003 secs (0.003u,0.s) -Chars 48023 - 48033 [End~Tests.] 0. secs (0.u,0.s) -Chars 48035 - 48087 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) -Chars 48092 - 48108 [Section~eqit_eq.] 0. secs (0.u,0.s) -Chars 48159 - 48197 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 48199 - 48258 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) -Chars 48260 - 48393 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 48394 - 48400 [Proof.] 0. secs (0.u,0.s) -Chars 48403 - 48432 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 48433 - 48437 [Qed.] 0. secs (0.u,0.s) -Chars 48439 - 48566 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 48567 - 48573 [Proof.] 0. secs (0.u,0.s) -Chars 48576 - 48605 [(apply~Symmetric_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 48607 - 48611 [Qed.] 0. secs (0.u,0.s) -Chars 48660 - 48728 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 48729 - 48735 [Proof.] 0. secs (0.u,0.s) -Chars 48738 - 48766 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 48767 - 48771 [Qed.] 0. secs (0.u,0.s) -Chars 48773 - 48835 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 48836 - 48842 [Proof.] 0. secs (0.u,0.s) -Chars 48845 - 48873 [(apply~Symmetric_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 48874 - 48878 [Qed.] 0. secs (0.u,0.s) -Chars 48913 - 49012 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) -Chars 49013 - 49019 [Proof.] 0. secs (0.u,0.s) -Chars 49022 - 49068 [(constructor;~step~in~H;~step;...] 0.002 secs (0.002u,0.s) -Chars 49071 - 49075 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49078 - 49173 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) -Chars 49174 - 49180 [Proof.] 0. secs (0.u,0.s) -Chars 49183 - 49201 [(constructor;~step).] 0.001 secs (0.001u,0.s) -Chars 49202 - 49215 [econstructor.] 0. secs (0.u,0.s) -Chars 49216 - 49222 [eauto.] 0. secs (0.u,0.s) -Chars 49223 - 49227 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49229 - 49356 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) -Chars 49357 - 49363 [Proof.] 0. secs (0.u,0.s) -Chars 49366 - 49388 [(constructor;~red~in~H).] 0. secs (0.u,0.s) -Chars 49389 - 49425 [(step;~econstructor;~auto~with...] 0.001 secs (0.001u,0.s) -Chars 49426 - 49430 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49432 - 49516 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 49517 - 49523 [Proof.] 0. secs (0.u,0.s) -Chars 49526 - 49545 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 49548 - 49553 [step.] 0.001 secs (0.001u,0.s) -Chars 49554 - 49584 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) -Chars 49585 - 49614 [(apply~Reflexive_eqitF;~eauto).] 0. secs (0.u,0.s) -Chars 49615 - 49619 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49621 - 49766 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 49767 - 49773 [Proof.] 0. secs (0.u,0.s) -Chars 49776 - 49784 [intros~!.] 0. secs (0.u,0.s) -Chars 49787 - 49793 [(inv~H).] 0.007 secs (0.006u,0.s) -Chars 49796 - 49801 [step.] 0.001 secs (0.001u,0.s) -Chars 49804 - 49830 [(rewrite~observing_observe).] 0. secs (0.u,0.s) -Chars 49833 - 49838 [step.] 0.003 secs (0.003u,0.s) -Chars 49839 - 49851 [reflexivity.] 0. secs (0.u,0.s) -Chars 49852 - 49856 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49883 - 49940 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) -Chars 49941 - 49947 [Proof.] 0. secs (0.u,0.s) -Chars 49948 - 49973 [(apply~observing_sub_eqit).] 0. secs (0.u,0.s) -Chars 49974 - 49987 [econstructor.] 0. secs (0.u,0.s) -Chars 49988 - 50000 [reflexivity.] 0. secs (0.u,0.s) -Chars 50001 - 50005 [Qed.] 0. secs (0.u,0.s) -Chars 50007 - 50062 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) -Chars 50063 - 50069 [Proof.] 0. secs (0.u,0.s) -Chars 50070 - 50087 [(apply~itree_eta_).] 0. secs (0.u,0.s) -Chars 50088 - 50092 [Qed.] 0. secs (0.u,0.s) -Chars 50094 - 50152 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) -Chars 50153 - 50159 [Proof.] 0. secs (0.u,0.s) -Chars 50160 - 50172 [reflexivity.] 0. secs (0.u,0.s) -Chars 50173 - 50177 [Qed.] 0. secs (0.u,0.s) -Chars 50179 - 50191 [End~eqit_eq.] 0. secs (0.u,0.s) -Chars 50225 - 50313 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 50314 - 50320 [Proof.] 0. secs (0.u,0.s) -Chars 50323 - 50338 [(intros;~sinv~H).] 0.006 secs (0.006u,0.s) -Chars 50339 - 50343 [Qed.] 0.002 secs (0.002u,0.s) -Chars 50345 - 50496 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 50497 - 50503 [Proof.] 0. secs (0.u,0.s) -Chars 50506 - 50553 [(intros;~step~in~H;~apply~eqit...] 0. secs (0.u,0.s) -Chars 50556 - 50610 [(destruct~H~as~[[?~[->~?]]|~[]...] 0. secs (0.u,0.s) -Chars 50613 - 50635 [(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 50636 - 50640 [Qed.] 0.001 secs (0.001u,0.s) -Chars 50642 - 50755 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 50756 - 50762 [Proof.] 0. secs (0.u,0.s) -Chars 50765 - 50787 [(intros;~sinv~H;~eauto).] 0.013 secs (0.013u,0.s) -Chars 50788 - 50792 [Qed.] 0.003 secs (0.003u,0.s) -Chars 50794 - 50895 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 50896 - 50902 [Proof.] 0. secs (0.u,0.s) -Chars 50905 - 50912 [(intros).] 0. secs (0.u,0.s) -Chars 50913 - 50923 [step~in~H.] 0. secs (0.u,0.s) -Chars 50924 - 50930 [(inv~H).] 0.001 secs (0.001u,0.s) -Chars 50932 - 50936 [Qed.] 0.002 secs (0.002u,0.s) -Chars 50989 - 51218 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0.001 secs (0.001u,0.s) -Chars 51219 - 51225 [Proof.] 0. secs (0.u,0.s) -Chars 51228 - 51235 [(intros).] 0. secs (0.u,0.s) -Chars 51236 - 51278 [(step~in~H;~apply~eqitF_inv_Vi...] 0. secs (0.u,0.s) -Chars 51281 - 51303 [(destruct~H~as~[p~[]]).] 0. secs (0.u,0.s) -Chars 51304 - 51326 [(exists~p;~split;~auto).] 0. secs (0.u,0.s) -Chars 51327 - 51331 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51357 - 51563 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 51564 - 51570 [Proof.] 0. secs (0.u,0.s) -Chars 51573 - 51642 [(intros~H~x;~step~in~H;~apply~...] 0. secs (0.u,0.s) -Chars 51643 - 51647 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51690 - 51769 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) -Chars 51770 - 51776 [Proof.] 0. secs (0.u,0.s) -Chars 51779 - 51814 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) -Chars 51815 - 51819 [Qed.] 0. secs (0.u,0.s) -Chars 51821 - 51903 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) -Chars 51904 - 51910 [Proof.] 0. secs (0.u,0.s) -Chars 51913 - 51948 [(intros;~eapply~eqit_inv_Ret;~...] 0. secs (0.u,0.s) -Chars 51949 - 51953 [Qed.] 0. secs (0.u,0.s) -Chars 51955 - 52081 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 52082 - 52088 [Proof.] 0. secs (0.u,0.s) -Chars 52091 - 52098 [(intros).] 0. secs (0.u,0.s) -Chars 52099 - 52104 [step.] 0.001 secs (0.001u,0.s) -Chars 52105 - 52125 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 52126 - 52140 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 52142 - 52146 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52148 - 52274 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 52275 - 52281 [Proof.] 0. secs (0.u,0.s) -Chars 52284 - 52291 [(intros).] 0. secs (0.u,0.s) -Chars 52292 - 52297 [step.] 0.002 secs (0.002u,0.s) -Chars 52298 - 52318 [(econstructor;~eauto).] 0. secs (0.u,0.s) -Chars 52319 - 52333 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 52335 - 52339 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52341 - 52395 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) -Chars 52396 - 52402 [Proof.] 0. secs (0.u,0.s) -Chars 52405 - 52422 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) -Chars 52423 - 52435 [reflexivity.] 0. secs (0.u,0.s) -Chars 52436 - 52440 [Qed.] 0. secs (0.u,0.s) -Chars 52442 - 52494 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) -Chars 52495 - 52501 [Proof.] 0. secs (0.u,0.s) -Chars 52504 - 52538 [(apply~euttge_sub_eutt,~tau_eu...] 0. secs (0.u,0.s) -Chars 52539 - 52543 [Qed.] 0. secs (0.u,0.s) -Chars 52546 - 52620 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) -Chars 52621 - 52627 [Proof.] 0. secs (0.u,0.s) -Chars 52630 - 52635 [step.] 0.001 secs (0.001u,0.s) -Chars 52636 - 52647 [(repeat~red).] 0. secs (0.u,0.s) -Chars 52648 - 52656 [simpobs.] 0. secs (0.u,0.s) -Chars 52657 - 52663 [(simpl).] 0. secs (0.u,0.s) -Chars 52664 - 52670 [subst.] 0. secs (0.u,0.s) -Chars 52671 - 52678 [unstep.] 0.003 secs (0.003u,0.s) -Chars 52679 - 52707 [(apply~Reflexive_eqit;~eauto).] 0. secs (0.u,0.s) -Chars 52708 - 52712 [Qed.] 0.001 secs (0.001u,0.s) -Chars 52760 - 53073 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) -Chars 53075 - 53081 [Proof.] 0. secs (0.u,0.s) -Chars 53083 - 53119 [(intros~!;~unfold~flip,~eq_itr...] 0. secs (0.u,0.s) -Chars 54282 - 54288 [idtac.] 0. secs (0.u,0.s) -Chars 54328 - 54388 [(assert~(rcompose~RR1~RS~<=~RS...] 0. secs (0.u,0.s) -Chars 54392 - 54459 [(assert~(rcompose~RS~(flip~RR2...] 0. secs (0.u,0.s) -Chars 54462 - 54560 [(assert~(eqit~b1~b2~RR1~x~y)~b...] 0.004 secs (0.004u,0.s) -Chars 54563 - 54667 [(assert~(eqit~b1~b2~RR2~x0~y0)...] 0.007 secs (0.007u,0.s) -Chars 54696 - 54740 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) -Chars 54744 - 54842 [(assert~(Hdiag~:~eqit~b1~b2~RS...] 0.002 secs (0.002u,0.s) -Chars 54880 - 54902 [(apply~eqit_flip~in~H0).] 0. secs (0.u,0.s) -Chars 54952 - 55012 [(eapply~eqit_mono~with~(RR~:=~...] 0.003 secs (0.003u,0.s) -Chars 55016 - 55041 [(eapply~eqit_trans;~eauto).] 0.003 secs (0.002u,0.s) -Chars 55045 - 55114 [(eapply~eqit_mono~with~(b1~:=~...] 0.005 secs (0.005u,0.s) -Chars 55116 - 55120 [Qed.] 0.002 secs (0.002u,0.s) -Chars 55163 - 55312 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) -Chars 55313 - 55319 [Proof.] 0. secs (0.u,0.s) -Chars 55322 - 55329 [(intros).] 0. secs (0.u,0.s) -Chars 55332 - 55348 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 55351 - 55352 [-] 0. secs (0.u,0.s) -Chars 55353 - 55373 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 55374 - 55386 [2:~(apply~H).] 0. secs (0.u,0.s) -Chars 55392 - 55409 [(apply~eqit_Tau_r).] 0. secs (0.u,0.s) -Chars 55410 - 55422 [reflexivity.] 0. secs (0.u,0.s) -Chars 55425 - 55426 [-] 0. secs (0.u,0.s) -Chars 55427 - 55432 [step.] 0.001 secs (0.001u,0.s) -Chars 55433 - 55438 [taul.] 0. secs (0.u,0.s) -Chars 55439 - 55453 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 55455 - 55459 [Qed.] 0.001 secs (0.001u,0.s) -Chars 55461 - 55610 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) -Chars 55611 - 55617 [Proof.] 0. secs (0.u,0.s) -Chars 55620 - 55627 [(intros).] 0. secs (0.u,0.s) -Chars 55630 - 55646 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 55649 - 55650 [-] 0. secs (0.u,0.s) -Chars 55651 - 55671 [(eapply~transitivity).] 0. secs (0.u,0.s) -Chars 55672 - 55680 [(apply~H).] 0. secs (0.u,0.s) -Chars 55685 - 55702 [(apply~eqit_Tau_l).] 0. secs (0.u,0.s) -Chars 55703 - 55715 [reflexivity.] 0. secs (0.u,0.s) -Chars 55718 - 55719 [-] 0. secs (0.u,0.s) -Chars 55720 - 55725 [step.] 0.001 secs (0.001u,0.s) -Chars 55726 - 55731 [taur.] 0. secs (0.u,0.s) -Chars 55732 - 55746 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 55747 - 55751 [Qed.] 0.001 secs (0.001u,0.s) -Chars 55753 - 55842 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 55843 - 55849 [Proof.] 0. secs (0.u,0.s) -Chars 55852 - 55865 [(intros~Heutt).] 0. secs (0.u,0.s) -Chars 55866 - 55880 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 55884 - 55902 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) -Chars 55906 - 55934 [(remember~(observe~(Ret~r1))).] 0. secs (0.u,0.s) -Chars 55937 - 55951 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 55954 - 55985 [(remember~{|~_observe~:=~ot2~|}).] 0. secs (0.u,0.s) -Chars 55988 - 56033 [(hinduction~Heutt~before~r1;~i...] 0.008 secs (0.007u,0.s) -Chars 56037 - 56038 [-] 0. secs (0.u,0.s) -Chars 56039 - 56058 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) -Chars 56059 - 56077 [(rewrite~itree_eta).] 0.01 secs (0.01u,0.s) -Chars 56078 - 56097 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 56098 - 56102 [Qed.] 0.004 secs (0.004u,0.s) -Chars 56199 - 56288 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 56289 - 56295 [Proof.] 0. secs (0.u,0.s) -Chars 56298 - 56311 [(intros~Heutt).] 0. secs (0.u,0.s) -Chars 56312 - 56326 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 56331 - 56349 [(rewrite~itree_eta).] 0.008 secs (0.008u,0.s) -Chars 56353 - 56428 [(remember~(observe~(Ret~r2));~...] 0. secs (0.u,0.s) -Chars 56431 - 56475 [(hinduction~Heutt~before~R;~in...] 0.008 secs (0.008u,0.s) -Chars 56479 - 56480 [-] 0. secs (0.u,0.s) -Chars 56481 - 56500 [(rewrite~tau_euttge).] 0.001 secs (0.001u,0.s) -Chars 56501 - 56519 [(rewrite~itree_eta).] 0.009 secs (0.009u,0.s) -Chars 56520 - 56539 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 56540 - 56544 [Qed.] 0.004 secs (0.004u,0.s) -Chars 56588 - 56755 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) -Chars 56757 - 56853 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 56854 - 56860 [Proof.] 0. secs (0.u,0.s) -Chars 56863 - 56914 [(apply~observing_sub_eqit;~con...] 0. secs (0.u,0.s) -Chars 56915 - 56919 [Qed.] 0. secs (0.u,0.s) -Chars 56921 - 57010 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) -Chars 57011 - 57017 [Proof.] 0. secs (0.u,0.s) -Chars 57018 - 57054 [(apply~observing_sub_eqit,~bin...] 0. secs (0.u,0.s) -Chars 57055 - 57059 [Qed.] 0. secs (0.u,0.s) -Chars 57061 - 57156 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) -Chars 57157 - 57163 [Proof.] 0. secs (0.u,0.s) -Chars 57164 - 57194 [(apply~(unfold_bind~(Tau~t)~k)).] 0. secs (0.u,0.s) -Chars 57195 - 57199 [Qed.] 0. secs (0.u,0.s) -Chars 57201 - 57345 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) -Chars 57346 - 57352 [Proof.] 0. secs (0.u,0.s) -Chars 57353 - 57386 [(apply~(unfold_bind~(Vis~e~ek)...] 0. secs (0.u,0.s) -Chars 57387 - 57391 [Qed.] 0. secs (0.u,0.s) -Chars 57393 - 57511 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) -Chars 57512 - 57518 [Proof.] 0. secs (0.u,0.s) -Chars 57521 - 57546 [(rewrite~unfold_bind;~cbn).] 0.003 secs (0.002u,0.s) -Chars 57549 - 57554 [step.] 0.001 secs (0.001u,0.s) -Chars 57557 - 57569 [constructor.] 0. secs (0.u,0.s) -Chars 57572 - 57579 [(intros).] 0. secs (0.u,0.s) -Chars 57580 - 57597 [(apply~bind_ret_l).] 0. secs (0.u,0.s) -Chars 57598 - 57602 [Qed.] 0.002 secs (0.002u,0.s) -Chars 57604 - 57761 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 57762 - 57768 [Proof.] 0. secs (0.u,0.s) -Chars 57771 - 57793 [(rewrite~unfold_aloop_).] 0.008 secs (0.008u,0.s) -Chars 57794 - 57806 [reflexivity.] 0. secs (0.u,0.s) -Chars 57807 - 57811 [Qed.] 0.001 secs (0.001u,0.s) -Chars 57813 - 57935 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 57936 - 57942 [Proof.] 0. secs (0.u,0.s) -Chars 57945 - 57993 [(rewrite~itree_eta,~(itree_eta...] 0.002 secs (0.002u,0.s) -Chars 57996 - 58008 [reflexivity.] 0. secs (0.u,0.s) -Chars 58009 - 58013 [Qed.] 0.001 secs (0.001u,0.s) -Chars 58015 - 58129 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) -Chars 58130 - 58190 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) -Chars 58192 - 58207 [Section~eqit_h.] 0. secs (0.u,0.s) -Chars 58209 - 58275 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 58334 - 58451 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) -Chars 58452 - 58458 [Proof.] 0. secs (0.u,0.s) -Chars 58461 - 58477 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 58480 - 58481 [-] 0. secs (0.u,0.s) -Chars 58482 - 58492 [step~in~H.] 0. secs (0.u,0.s) -Chars 58493 - 58498 [step.] 0.001 secs (0.001u,0.s) -Chars 58505 - 58522 [move~H~before~RR.] 0. secs (0.u,0.s) -Chars 58523 - 58538 [(revert_until~H).] 0. secs (0.u,0.s) -Chars 58543 - 58571 [(remember~(observe~(Tau~t1))).] 0. secs (0.u,0.s) -Chars 58577 - 58605 [(remember~(observe~(Tau~t2))).] 0. secs (0.u,0.s) -Chars 58611 - 58625 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 58631 - 58645 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 58651 - 58707 [(hinduction~H~before~RR;~intro...] 0.017 secs (0.016u,0.s) -Chars 58713 - 58714 [+] 0. secs (0.u,0.s) -Chars 58715 - 58726 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 58732 - 58733 [+] 0. secs (0.u,0.s) -Chars 58734 - 58740 [(inv~H).] 0.01 secs (0.01u,0.s) -Chars 58748 - 58749 [*] 0. secs (0.u,0.s) -Chars 58750 - 58755 [taul.] 0. secs (0.u,0.s) -Chars 58756 - 58778 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 58786 - 58787 [*] 0. secs (0.u,0.s) -Chars 58788 - 58793 [taul.] 0. secs (0.u,0.s) -Chars 58794 - 58816 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 58822 - 58823 [+] 0. secs (0.u,0.s) -Chars 58824 - 58830 [(inv~H).] 0.007 secs (0.007u,0.s) -Chars 58838 - 58839 [*] 0. secs (0.u,0.s) -Chars 58840 - 58845 [taur.] 0. secs (0.u,0.s) -Chars 58846 - 58868 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 58876 - 58877 [*] 0. secs (0.u,0.s) -Chars 58878 - 58883 [taur.] 0. secs (0.u,0.s) -Chars 58884 - 58906 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 58910 - 58911 [-] 0. secs (0.u,0.s) -Chars 58912 - 58917 [step.] 0.001 secs (0.001u,0.s) -Chars 58918 - 58934 [now~constructor.] 0. secs (0.u,0.s) -Chars 58938 - 58942 [Qed.] 0.008 secs (0.008u,0.s) -Chars 58945 - 59168 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) -Chars 59169 - 59175 [Proof.] 0. secs (0.u,0.s) -Chars 59178 - 59194 [(destruct~p;~cbn).] 0. secs (0.u,0.s) -Chars 59195 - 59207 [(intros~<-~H).] 0. secs (0.u,0.s) -Chars 59208 - 59213 [step.] 0.001 secs (0.001u,0.s) -Chars 59214 - 59227 [econstructor.] 0. secs (0.u,0.s) -Chars 59228 - 59236 [(apply~H).] 0. secs (0.u,0.s) -Chars 59237 - 59241 [Qed.] 0.002 secs (0.001u,0.s) -Chars 59243 - 59415 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) -Chars 59416 - 59422 [Proof.] 0. secs (0.u,0.s) -Chars 59425 - 59477 [(apply~eqit_Vis_gen~with~(p~:=...] 0. secs (0.u,0.s) -Chars 59478 - 59482 [Qed.] 0. secs (0.u,0.s) -Chars 59484 - 59581 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) -Chars 59582 - 59588 [Proof.] 0. secs (0.u,0.s) -Chars 59591 - 59607 [(split;~intros~H).] 0. secs (0.u,0.s) -Chars 59610 - 59611 [-] 0. secs (0.u,0.s) -Chars 59612 - 59617 [step.] 0.001 secs (0.001u,0.s) -Chars 59618 - 59634 [now~constructor.] 0. secs (0.u,0.s) -Chars 59637 - 59638 [-] 0. secs (0.u,0.s) -Chars 59639 - 59646 [(sinv~H).] 0.002 secs (0.002u,0.s) -Chars 59648 - 59652 [Qed.] 0.002 secs (0.002u,0.s) -Chars 59837 - 60155 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) -Chars 60156 - 60162 [Proof.] 0. secs (0.u,0.s) -Chars 60166 - 60182 [(revert_until~U2).] 0. secs (0.u,0.s) -Chars 60186 - 60202 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 60206 - 60207 [-] 0. secs (0.u,0.s) -Chars 60208 - 60215 [(intros).] 0. secs (0.u,0.s) -Chars 60219 - 60236 [(eapply~H0;~eauto).] 0.002 secs (0.002u,0.s) -Chars 60241 - 60242 [-] 0. secs (0.u,0.s) -Chars 60243 - 60250 [(intros).] 0. secs (0.u,0.s) -Chars 60254 - 60264 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 60268 - 60282 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 60287 - 60301 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 60304 - 60346 [(hinduction~H0~before~RR;~intr...] 0.039 secs (0.039u,0.s) -Chars 60431 - 60468 [1-3:~(rewrite~2!observe_bind;~...] 0.018 secs (0.018u,0.s) -Chars 60483 - 60484 [+] 0. secs (0.u,0.s) -Chars 60485 - 60502 [(eapply~H1;~eauto).] 0. secs (0.u,0.s) -Chars 60519 - 60520 [+] 0. secs (0.u,0.s) -Chars 60521 - 60533 [constructor.] 0. secs (0.u,0.s) -Chars 60538 - 60554 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60560 - 60588 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) -Chars 60603 - 60604 [+] 0. secs (0.u,0.s) -Chars 60605 - 60617 [constructor.] 0. secs (0.u,0.s) -Chars 60623 - 60629 [intro.] 0. secs (0.u,0.s) -Chars 60635 - 60651 [(eapply~H;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60656 - 60684 [(intros;~step;~now~eapply~H1).] 0.002 secs (0.002u,0.s) -Chars 60700 - 60701 [+] 0. secs (0.u,0.s) -Chars 60702 - 60723 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 60729 - 60737 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 60743 - 60748 [taul.] 0. secs (0.u,0.s) -Chars 60754 - 60776 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60794 - 60795 [+] 0. secs (0.u,0.s) -Chars 60796 - 60829 [setoid_rewrite~observe_bind~at~2.] 0.022 secs (0.022u,0.s) -Chars 60835 - 60843 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 60849 - 60854 [taur.] 0. secs (0.u,0.s) -Chars 60860 - 60882 [(eapply~IHeqitF;~eauto).] 0.001 secs (0.001u,0.s) -Chars 60884 - 60888 [Qed.] 0.009 secs (0.009u,0.s) -Chars 60891 - 61083 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) -Chars 61084 - 61090 [Proof.] 0. secs (0.u,0.s) -Chars 61095 - 61107 [(unfold~eutt).] 0. secs (0.u,0.s) -Chars 61108 - 61138 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) -Chars 61141 - 61145 [Qed.] 0. secs (0.u,0.s) -Chars 61148 - 61382 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) -Chars 61383 - 61389 [Proof.] 0. secs (0.u,0.s) -Chars 61394 - 61425 [(eapply~eqit_bind_chain;~intros).] 0. secs (0.u,0.s) -Chars 61431 - 61476 [all:~now~do~2~step;~[~apply~EQ...] 0.025 secs (0.024u,0.s) -Chars 61477 - 61481 [Qed.] 0.002 secs (0.002u,0.s) -Chars 61485 - 61496 [End~eqit_h.] 0. secs (0.u,0.s) -Chars 61498 - 61541 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 61543 - 61586 [Ltac~etau~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 61588 - 61639 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) -Chars 61641 - 61696 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) -Chars 61701 - 61777 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) -Chars 61778 - 61784 [Proof.] 0. secs (0.u,0.s) -Chars 61787 - 61802 [(apply~eqit_Tau).] 0. secs (0.u,0.s) -Chars 61803 - 61807 [Qed.] 0. secs (0.u,0.s) -Chars 61809 - 61888 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) -Chars 61889 - 61895 [Proof.] 0. secs (0.u,0.s) -Chars 61898 - 61913 [(apply~eqit_Tau).] 0. secs (0.u,0.s) -Chars 61914 - 61918 [Qed.] 0. secs (0.u,0.s) -Chars 61920 - 62182 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 62183 - 62189 [Proof.] 0. secs (0.u,0.s) -Chars 62192 - 62199 [(intros).] 0. secs (0.u,0.s) -Chars 62202 - 62232 [(eapply~eqit_bind_chain;~eauto).] 0. secs (0.u,0.s) -Chars 62234 - 62238 [Qed.] 0. secs (0.u,0.s) -Chars 62240 - 62501 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) -Chars 62502 - 62508 [Proof.] 0. secs (0.u,0.s) -Chars 62511 - 62536 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) -Chars 62537 - 62541 [Qed.] 0.002 secs (0.001u,0.s) -Chars 62544 - 62705 [#[global]~Instance~eqit_subst~...] 0.001 secs (0.u,0.s) -Chars 62706 - 62712 [Proof.] 0. secs (0.u,0.s) -Chars 62715 - 62749 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) -Chars 62752 - 62772 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 62773 - 62777 [Qed.] 0. secs (0.u,0.s) -Chars 62779 - 62938 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) -Chars 62939 - 62945 [Proof.] 0. secs (0.u,0.s) -Chars 62948 - 62982 [(intros~!;~eapply~eqit_bind';~...] 0.001 secs (0.001u,0.s) -Chars 62985 - 63005 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 63006 - 63010 [Qed.] 0. secs (0.u,0.s) -Chars 63012 - 63259 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 63260 - 63266 [Proof.] 0. secs (0.u,0.s) -Chars 63269 - 63294 [(unfold~ITree.map;~intros).] 0. secs (0.u,0.s) -Chars 63297 - 63322 [(eapply~eqit_bind';~eauto).] 0. secs (0.u,0.s) -Chars 63325 - 63357 [(intros;~step;~constructor;~au...] 0.001 secs (0.001u,0.s) -Chars 63358 - 63362 [Qed.] 0.001 secs (0.001u,0.s) -Chars 63364 - 63521 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) -Chars 63522 - 63528 [Proof.] 0. secs (0.u,0.s) -Chars 63531 - 63563 [(intros~!;~eapply~eqit_map;~ea...] 0. secs (0.u,0.s) -Chars 63566 - 63586 [(intros;~subst;~auto).] 0. secs (0.u,0.s) -Chars 63587 - 63591 [Qed.] 0. secs (0.u,0.s) -Chars 63593 - 63778 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) -Chars 63780 - 63786 [Proof.] 0. secs (0.u,0.s) -Chars 63790 - 63798 [intros~!.] 0. secs (0.u,0.s) -Chars 63802 - 63809 [unstep.] 0.002 secs (0.002u,0.s) -Chars 63810 - 63820 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 63821 - 63832 [(rewrite~H0).] 0. secs (0.u,0.s) -Chars 63833 - 63842 [now~step.] 0.001 secs (0.001u,0.s) -Chars 63844 - 63848 [Qed.] 0.002 secs (0.002u,0.s) -Chars 63852 - 63970 [#[global]~Instance~trans_elem_...] 0. secs (0.u,0.s) -Chars 63971 - 63977 [Proof.] 0. secs (0.u,0.s) -Chars 63980 - 64002 [(apply~Transitive_elem).] 0. secs (0.u,0.s) -Chars 64003 - 64021 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 64023 - 64027 [Qed.] 0. secs (0.u,0.s) -Chars 64356 - 64514 [#[global]~Instance~elem_observ...] 0.001 secs (0.001u,0.s) -Chars 64516 - 64522 [Proof.] 0. secs (0.u,0.s) -Chars 64526 - 64559 [(intros~x~y~Hxy~x'~y'~Hx'y'~He...] 0. secs (0.u,0.s) -Chars 64562 - 64580 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) -Chars 64585 - 64625 [(eapply~observing_sub_elem~in~...] 0. secs (0.u,0.s) -Chars 64628 - 64670 [(eapply~observing_sub_elem~in~...] 0.001 secs (0.001u,0.s) -Chars 64673 - 64701 [(do~2~(etransitivity;~eauto)).] 0.001 secs (0.001u,0.s) -Chars 64704 - 64708 [Qed.] 0.001 secs (0.001u,0.s) -Chars 64713 - 64802 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) -Chars 64803 - 64809 [Proof.] 0. secs (0.u,0.s) -Chars 64812 - 64828 [(unfold~eq_itree).] 0. secs (0.u,0.s) -Chars 64829 - 64836 [(intros).] 0. secs (0.u,0.s) -Chars 64922 - 64975 [(rewrite~(itree_eta_~(ITree.bi...] 0.002 secs (0.002u,0.s) -Chars 65002 - 65011 [revert~s.] 0. secs (0.u,0.s) -Chars 65015 - 65034 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 65038 - 65045 [(intros).] 0. secs (0.u,0.s) -Chars 65120 - 65166 [(desobs~s~H;~cbn;~simpobs;~con...] 0.004 secs (0.004u,0.s) -Chars 65194 - 65206 [reflexivity.] 0. secs (0.u,0.s) -Chars 65347 - 65381 [all:~(eapply~elem_observing_pr...] 0.001 secs (0.001u,0.s) -Chars 65426 - 65446 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) -Chars 65500 - 65535 [all:~(constructor;~ITree.fold_...] 0. secs (0.u,0.s) -Chars 65538 - 65562 [all:~(simpl;~reflexivity).] 0. secs (0.u,0.s) -Chars 65564 - 65568 [Qed.] 0.006 secs (0.006u,0.s) -Chars 65571 - 65693 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) -Chars 65694 - 65700 [Proof.] 0. secs (0.u,0.s) -Chars 65703 - 65711 [intro~H.] 0. secs (0.u,0.s) -Chars 65712 - 65743 [(rewrite~<-~(bind_ret_r~u)~~at...] 0.001 secs (0.001u,0.s) -Chars 65744 - 65760 [(apply~eqit_bind).] 0.002 secs (0.001u,0.s) -Chars 65763 - 65764 [-] 0. secs (0.u,0.s) -Chars 65765 - 65777 [reflexivity.] 0. secs (0.u,0.s) -Chars 65780 - 65781 [-] 0. secs (0.u,0.s) -Chars 65782 - 65786 [(hnf).] 0. secs (0.u,0.s) -Chars 65787 - 65794 [(intros).] 0. secs (0.u,0.s) -Chars 65795 - 65810 [(apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 65811 - 65816 [auto.] 0. secs (0.u,0.s) -Chars 65817 - 65821 [Qed.] 0.001 secs (0.001u,0.s) -Chars 65823 - 65986 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) -Chars 65989 - 66166 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) -Chars 66167 - 66173 [Proof.] 0. secs (0.u,0.s) -Chars 66176 - 66192 [(unfold~eq_itree).] 0. secs (0.u,0.s) -Chars 66193 - 66200 [(intros).] 0. secs (0.u,0.s) -Chars 66204 - 66315 [(lazymatch~goal~with~~|~|-~_~(...] 0.003 secs (0.003u,0.s) -Chars 66318 - 66395 [(lazymatch~goal~with~~|~|-~_~?...] 0.002 secs (0.002u,0.s) -Chars 66398 - 66411 [revert~s~k~h.] 0. secs (0.u,0.s) -Chars 66415 - 66434 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 66437 - 66444 [(intros).] 0. secs (0.u,0.s) -Chars 66447 - 66472 [(desobs~s~H;~cbn;~simpobs).] 0.002 secs (0.002u,0.s) -Chars 66476 - 66484 [1:~step.] 0.003 secs (0.003u,0.s) -Chars 66485 - 66497 [reflexivity.] 0. secs (0.u,0.s) -Chars 66501 - 66556 [all:~(constructor;~intros;~eap...] 0.002 secs (0.002u,0.s) -Chars 66559 - 66579 [all:~(try~eapply~CIH).] 0. secs (0.u,0.s) -Chars 66582 - 66599 [all:~constructor.] 0. secs (0.u,0.s) -Chars 66603 - 66619 [all:~fold_subst.] 0.001 secs (0.001u,0.s) -Chars 66623 - 66656 [all:~(repeat~rewrite~observe_b...] 0.005 secs (0.005u,0.s) -Chars 66659 - 66676 [all:~reflexivity.] 0. secs (0.u,0.s) -Chars 66677 - 66681 [Qed.] 0.011 secs (0.011u,0.s) -Chars 66684 - 66826 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) -Chars 66827 - 66833 [Proof.] 0. secs (0.u,0.s) -Chars 66836 - 66853 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 66854 - 66861 [(intros).] 0. secs (0.u,0.s) -Chars 66862 - 66880 [(rewrite~bind_bind).] 0.001 secs (0.001u,0.s) -Chars 66881 - 66907 [setoid_rewrite~bind_ret_l.] 0.004 secs (0.004u,0.s) -Chars 66908 - 66920 [reflexivity.] 0. secs (0.u,0.s) -Chars 66921 - 66925 [Qed.] 0.001 secs (0.001u,0.s) -Chars 66927 - 67079 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) -Chars 67080 - 67086 [Proof.] 0. secs (0.u,0.s) -Chars 67089 - 67106 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67107 - 67114 [(intros).] 0. secs (0.u,0.s) -Chars 67115 - 67133 [(rewrite~bind_bind).] 0.002 secs (0.002u,0.s) -Chars 67134 - 67160 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 67161 - 67173 [reflexivity.] 0. secs (0.u,0.s) -Chars 67174 - 67178 [Qed.] 0.001 secs (0.001u,0.s) -Chars 67180 - 67333 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) -Chars 67334 - 67340 [Proof.] 0. secs (0.u,0.s) -Chars 67343 - 67350 [(intros).] 0. secs (0.u,0.s) -Chars 67351 - 67368 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67369 - 67385 [(apply~bind_bind).] 0. secs (0.u,0.s) -Chars 67386 - 67390 [Qed.] 0. secs (0.u,0.s) -Chars 67392 - 67482 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 67483 - 67489 [Proof.] 0. secs (0.u,0.s) -Chars 67492 - 67499 [(intros).] 0. secs (0.u,0.s) -Chars 67500 - 67517 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67520 - 67552 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) -Chars 67553 - 67557 [Qed.] 0. secs (0.u,0.s) -Chars 67559 - 67667 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 67668 - 67674 [Proof.] 0. secs (0.u,0.s) -Chars 67677 - 67684 [(intros).] 0. secs (0.u,0.s) -Chars 67687 - 67704 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 67707 - 67737 [(rewrite~bind_tau;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 67738 - 67742 [Qed.] 0.001 secs (0.001u,0.s) -Chars 67744 - 67787 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 67788 - 67831 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 67832 - 67873 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) -Chars 67874 - 67915 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) -Chars 67916 - 67957 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) -Chars 67958 - 67998 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) -Chars 67999 - 68039 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) -Chars 68040 - 68082 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 68103 - 68194 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) -Chars 68196 - 68288 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) -Chars 68405 - 68480 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) -Chars 68552 - 68630 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) -Chars 68693 - 68747 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) -Chars 68749 - 68847 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) -Chars 68849 - 68948 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) -Chars 68950 - 69045 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) -Chars 69047 - 69145 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) -Chars 69147 - 69216 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) -Chars 69218 - 69479 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 69480 - 69486 [Proof.] 0. secs (0.u,0.s) -Chars 69489 - 69496 [(intros).] 0. secs (0.u,0.s) -Chars 69499 - 69509 [step~in~H.] 0. secs (0.u,0.s) -Chars 69512 - 69557 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 69560 - 69585 [(remember~(Ret~b)~as~retb).] 0. secs (0.u,0.s) -Chars 69589 - 69619 [(remember~(observe~retb)~as~tr).] 0. secs (0.u,0.s) -Chars 69622 - 69663 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) -Chars 69666 - 69722 [(hinduction~H~before~RR;~intro...] 0.002 secs (0.002u,0.s) -Chars 69725 - 69726 [-] 0. secs (0.u,0.s) -Chars 69727 - 69741 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 69746 - 69796 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 69801 - 69849 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 69854 - 69863 [exists~r.] 0. secs (0.u,0.s) -Chars 69864 - 69870 [split.] 0. secs (0.u,0.s) -Chars 69875 - 69876 [*] 0. secs (0.u,0.s) -Chars 69877 - 69900 [(rewrite~itree_eta,~Ema).] 0.01 secs (0.01u,0.s) -Chars 69901 - 69913 [reflexivity.] 0. secs (0.u,0.s) -Chars 69918 - 69919 [*] 0. secs (0.u,0.s) -Chars 69920 - 69939 [(rewrite~itree_eta_).] 0.009 secs (0.009u,0.s) -Chars 69940 - 69956 [(unfold~_observe).] 0. secs (0.u,0.s) -Chars 69957 - 69975 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) -Chars 69976 - 69986 [(inv~Heqtr).] 0.001 secs (0.001u,0.s) -Chars 69992 - 70016 [(step;~constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 70019 - 70020 [-] 0. secs (0.u,0.s) -Chars 70021 - 70028 [(intros).] 0. secs (0.u,0.s) -Chars 70029 - 70035 [subst.] 0. secs (0.u,0.s) -Chars 70040 - 70090 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 70095 - 70143 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 70148 - 70149 [+] 0. secs (0.u,0.s) -Chars 70150 - 70159 [exists~r.] 0. secs (0.u,0.s) -Chars 70160 - 70166 [split.] 0. secs (0.u,0.s) -Chars 70173 - 70174 [*] 0. secs (0.u,0.s) -Chars 70175 - 70198 [(rewrite~itree_eta,~Ema).] 0.011 secs (0.011u,0.s) -Chars 70199 - 70211 [reflexivity.] 0. secs (0.u,0.s) -Chars 70218 - 70219 [*] 0. secs (0.u,0.s) -Chars 70220 - 70225 [step.] 0.001 secs (0.001u,0.s) -Chars 70226 - 70263 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) -Chars 70264 - 70282 [(rewrite~<-~Heqotl).] 0. secs (0.u,0.s) -Chars 70283 - 70301 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 70306 - 70307 [+] 0. secs (0.u,0.s) -Chars 70308 - 70319 [(inv~Heqotl).] 0.005 secs (0.005u,0.s) -Chars 70327 - 70352 [(edestruct~IHeqitF;~eauto).] 0.002 secs (0.002u,0.s) -Chars 70353 - 70362 [exists~x.] 0. secs (0.u,0.s) -Chars 70370 - 70382 [(destruct~H0).] 0. secs (0.u,0.s) -Chars 70390 - 70403 [(split;~eauto).] 0. secs (0.u,0.s) -Chars 70410 - 70428 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 70429 - 70434 [taul.] 0. secs (0.u,0.s) -Chars 70442 - 70457 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 70459 - 70463 [Qed.] 0.01 secs (0.009u,0.s) -Chars 70465 - 70628 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 70629 - 70635 [Proof.] 0. secs (0.u,0.s) -Chars 70638 - 70676 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) -Chars 70677 - 70681 [Qed.] 0. secs (0.u,0.s) -Chars 70683 - 70849 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) -Chars 70850 - 70856 [Proof.] 0. secs (0.u,0.s) -Chars 70859 - 70897 [(intros;~apply~eqit_inv_bind_r...] 0. secs (0.u,0.s) -Chars 70898 - 70902 [Qed.] 0. secs (0.u,0.s) -Chars 70904 - 71172 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) -Chars 71174 - 71614 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 71615 - 71621 [Proof.] 0. secs (0.u,0.s) -Chars 71624 - 71631 [(intros).] 0. secs (0.u,0.s) -Chars 71632 - 71642 [step~in~H.] 0. secs (0.u,0.s) -Chars 71646 - 71691 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 71694 - 71722 [(remember~(Vis~e~kxc)~as~vis).] 0. secs (0.u,0.s) -Chars 71725 - 71754 [(remember~(observe~vis)~as~tr).] 0. secs (0.u,0.s) -Chars 71758 - 71801 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) -Chars 71804 - 71857 [(induction~H;~try~(solve~[~int...] 0.003 secs (0.003u,0.s) -Chars 71860 - 71861 [-] 0. secs (0.u,0.s) -Chars 71862 - 71869 [(intros).] 0. secs (0.u,0.s) -Chars 71870 - 71918 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 71923 - 71971 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 71976 - 71977 [+] 0. secs (0.u,0.s) -Chars 71978 - 71984 [right.] 0. secs (0.u,0.s) -Chars 71985 - 71994 [exists~r.] 0. secs (0.u,0.s) -Chars 71995 - 72001 [split.] 0. secs (0.u,0.s) -Chars 72008 - 72009 [*] 0. secs (0.u,0.s) -Chars 72010 - 72029 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 72030 - 72042 [constructor.] 0. secs (0.u,0.s) -Chars 72043 - 72048 [auto.] 0. secs (0.u,0.s) -Chars 72055 - 72056 [*] 0. secs (0.u,0.s) -Chars 72057 - 72101 [(step;~unfold~observe~at~1;~un...] 0.001 secs (0.001u,0.s) -Chars 72102 - 72119 [(rewrite~<-~Heqtl).] 0. secs (0.u,0.s) -Chars 72128 - 72136 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 72137 - 72155 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 72160 - 72161 [+] 0. secs (0.u,0.s) -Chars 72162 - 72167 [left.] 0. secs (0.u,0.s) -Chars 72174 - 72192 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) -Chars 72200 - 72217 [revert~e0~Heqvis.] 0. secs (0.u,0.s) -Chars 72218 - 72238 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) -Chars 72239 - 72257 [(inv_eq_VisF~Heqtl).] 0. secs (0.u,0.s) -Chars 72258 - 72265 [(intros).] 0. secs (0.u,0.s) -Chars 72272 - 72283 [(inv~Heqvis).] 0.002 secs (0.002u,0.s) -Chars 72291 - 72304 [(cbn~in~Heqtr).] 0. secs (0.u,0.s) -Chars 72312 - 72330 [(inv_eq_VisF~Heqtr).] 0. secs (0.u,0.s) -Chars 72337 - 72346 [exists~k.] 0. secs (0.u,0.s) -Chars 72347 - 72353 [split.] 0. secs (0.u,0.s) -Chars 72360 - 72361 [*] 0. secs (0.u,0.s) -Chars 72362 - 72381 [(step;~rewrite~Ema).] 0.001 secs (0.001u,0.s) -Chars 72382 - 72394 [constructor.] 0. secs (0.u,0.s) -Chars 72396 - 72408 [reflexivity.] 0. secs (0.u,0.s) -Chars 72415 - 72416 [*] 0. secs (0.u,0.s) -Chars 72417 - 72422 [auto.] 0. secs (0.u,0.s) -Chars 72425 - 72426 [-] 0. secs (0.u,0.s) -Chars 72427 - 72434 [(intros).] 0. secs (0.u,0.s) -Chars 72435 - 72441 [subst.] 0. secs (0.u,0.s) -Chars 72446 - 72494 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 72499 - 72548 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 72553 - 72554 [+] 0. secs (0.u,0.s) -Chars 72555 - 72578 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 72585 - 72586 [*] 0. secs (0.u,0.s) -Chars 72587 - 72623 [(rewrite~itree_eta,~Ema;~refle...] 0.012 secs (0.012u,0.s) -Chars 72630 - 72631 [*] 0. secs (0.u,0.s) -Chars 72632 - 72637 [step.] 0.001 secs (0.001u,0.s) -Chars 72639 - 72694 [(unfold~observe~at~1;~unfold~_...] 0. secs (0.u,0.s) -Chars 72695 - 72713 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 72718 - 72719 [+] 0. secs (0.u,0.s) -Chars 72720 - 72730 [(inv~Heqtl).] 0.008 secs (0.008u,0.s) -Chars 72731 - 72786 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 72793 - 72858 [(destruct~IHeqitF~as~[(k0,~(?,...] 0. secs (0.u,0.s) -Chars 72865 - 72866 [*] 0. secs (0.u,0.s) -Chars 72867 - 72877 [exists~k0.] 0. secs (0.u,0.s) -Chars 72878 - 72890 [(split;~auto).] 0. secs (0.u,0.s) -Chars 72899 - 72952 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 72960 - 72961 [*] 0. secs (0.u,0.s) -Chars 72962 - 72971 [exists~a.] 0. secs (0.u,0.s) -Chars 72972 - 72984 [(split;~auto).] 0. secs (0.u,0.s) -Chars 72993 - 73046 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 73047 - 73051 [Qed.] 0.016 secs (0.016u,0.s) -Chars 73053 - 73389 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 73390 - 73396 [Proof.] 0. secs (0.u,0.s) -Chars 73399 - 73406 [(intros).] 0. secs (0.u,0.s) -Chars 73407 - 73431 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) -Chars 73432 - 73437 [auto.] 0. secs (0.u,0.s) -Chars 73438 - 73442 [Qed.] 0. secs (0.u,0.s) -Chars 73444 - 73783 [Lemma~eqitree_inv_bind_vis~:~~...] 0.001 secs (0.001u,0.s) -Chars 73784 - 73790 [Proof.] 0. secs (0.u,0.s) -Chars 73793 - 73800 [(intros).] 0. secs (0.u,0.s) -Chars 73801 - 73825 [(apply~eqit_inv_bind_vis).] 0. secs (0.u,0.s) -Chars 73826 - 73831 [auto.] 0. secs (0.u,0.s) -Chars 73832 - 73836 [Qed.] 0. secs (0.u,0.s) -Chars 73838 - 74186 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 74187 - 74193 [Proof.] 0. secs (0.u,0.s) -Chars 74196 - 74203 [(intros).] 0. secs (0.u,0.s) -Chars 74204 - 74214 [step~in~H.] 0. secs (0.u,0.s) -Chars 74218 - 74263 [(remember~(observe~(ITree.bind...] 0. secs (0.u,0.s) -Chars 74266 - 74291 [(remember~(Tau~tc)~as~tau).] 0. secs (0.u,0.s) -Chars 74294 - 74323 [(remember~(observe~tau)~as~tr).] 0. secs (0.u,0.s) -Chars 74326 - 74366 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) -Chars 74369 - 74422 [(induction~H;~intros;~try~(sol...] 0.003 secs (0.003u,0.s) -Chars 74425 - 74426 [-] 0. secs (0.u,0.s) -Chars 74427 - 74437 [(inv~Heqtr).] 0.005 secs (0.005u,0.s) -Chars 74438 - 74486 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 74491 - 74539 [(destruct~(observe~ma)~eqn:Ema...] 0.001 secs (0.001u,0.s) -Chars 74544 - 74545 [+] 0. secs (0.u,0.s) -Chars 74546 - 74569 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 74576 - 74577 [*] 0. secs (0.u,0.s) -Chars 74578 - 74621 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 74628 - 74629 [*] 0. secs (0.u,0.s) -Chars 74630 - 74710 [(step;~icbn;~inv~H0;~unfold~ob...] 0.003 secs (0.003u,0.s) -Chars 74715 - 74716 [+] 0. secs (0.u,0.s) -Chars 74717 - 74739 [(left;~exists~t;~split).] 0. secs (0.u,0.s) -Chars 74746 - 74747 [*] 0. secs (0.u,0.s) -Chars 74748 - 74804 [(step;~icbn;~rewrite~Ema;~cons...] 0.002 secs (0.002u,0.s) -Chars 74811 - 74812 [*] 0. secs (0.u,0.s) -Chars 74813 - 74823 [(inv~Heqtl).] 0.002 secs (0.002u,0.s) -Chars 74824 - 74831 [(inv~H0).] 0. secs (0.u,0.s) -Chars 74835 - 74836 [-] 0. secs (0.u,0.s) -Chars 74837 - 74843 [subst.] 0. secs (0.u,0.s) -Chars 74848 - 74896 [(unfold~observe,~_observe~in~H...] 0. secs (0.u,0.s) -Chars 74901 - 74949 [(destruct~(observe~ma)~eqn:Ema...] 0. secs (0.u,0.s) -Chars 74954 - 74955 [+] 0. secs (0.u,0.s) -Chars 74956 - 74979 [(right;~exists~r;~split).] 0. secs (0.u,0.s) -Chars 74986 - 74987 [*] 0. secs (0.u,0.s) -Chars 74988 - 75031 [(step;~icbn;~rewrite~Ema;~cons...] 0.001 secs (0.001u,0.s) -Chars 75038 - 75039 [*] 0. secs (0.u,0.s) -Chars 75040 - 75107 [(step;~icbn;~unfold~observe~at...] 0.001 secs (0.001u,0.s) -Chars 75108 - 75128 [(constructor~4;~auto).] 0. secs (0.u,0.s) -Chars 75133 - 75134 [+] 0. secs (0.u,0.s) -Chars 75135 - 75145 [(inv~Heqtl).] 0.007 secs (0.007u,0.s) -Chars 75146 - 75199 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 75206 - 75271 [(destruct~IHeqitF~as~[(t0,~(?,...] 0. secs (0.u,0.s) -Chars 75278 - 75279 [*] 0. secs (0.u,0.s) -Chars 75280 - 75290 [exists~t0.] 0. secs (0.u,0.s) -Chars 75291 - 75303 [(split;~auto).] 0. secs (0.u,0.s) -Chars 75312 - 75367 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 75374 - 75375 [*] 0. secs (0.u,0.s) -Chars 75376 - 75385 [exists~a.] 0. secs (0.u,0.s) -Chars 75386 - 75398 [(split;~auto).] 0. secs (0.u,0.s) -Chars 75407 - 75460 [(step;~icbn;~rewrite~Ema;~cons...] 0.003 secs (0.003u,0.s) -Chars 75463 - 75464 [-] 0. secs (0.u,0.s) -Chars 75465 - 75475 [(inv~Heqtr).] 0.007 secs (0.007u,0.s) -Chars 75480 - 75503 [(left;~exists~ma;~split).] 0. secs (0.u,0.s) -Chars 75508 - 75509 [+] 0. secs (0.u,0.s) -Chars 75510 - 75534 [(step;~constructor;~auto).] 0.002 secs (0.002u,0.s) -Chars 75540 - 75541 [+] 0. secs (0.u,0.s) -Chars 75542 - 75567 [(inv~H1;~step;~assumption).] 0.007 secs (0.007u,0.s) -Chars 75568 - 75572 [Qed.] 0.017 secs (0.017u,0.s) -Chars 75574 - 75839 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 75840 - 75846 [Proof.] 0. secs (0.u,0.s) -Chars 75849 - 75856 [(intros).] 0. secs (0.u,0.s) -Chars 75857 - 75881 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) -Chars 75882 - 75887 [auto.] 0. secs (0.u,0.s) -Chars 75888 - 75892 [Qed.] 0. secs (0.u,0.s) -Chars 75894 - 76162 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) -Chars 76163 - 76169 [Proof.] 0. secs (0.u,0.s) -Chars 76172 - 76179 [(intros).] 0. secs (0.u,0.s) -Chars 76180 - 76204 [(apply~eqit_inv_bind_tau).] 0. secs (0.u,0.s) -Chars 76205 - 76210 [auto.] 0. secs (0.u,0.s) -Chars 76211 - 76215 [Qed.] 0. secs (0.u,0.s) -Chars 76217 - 76339 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 76340 - 76346 [Proof.] 0. secs (0.u,0.s) -Chars 76349 - 76356 [(intros).] 0. secs (0.u,0.s) -Chars 76359 - 76369 [step~in~H.] 0. secs (0.u,0.s) -Chars 76372 - 76404 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) -Chars 76407 - 76445 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 76448 - 76466 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 76469 - 76531 [(induction~H;~intros~EQ1~EQ2;~...] 0.006 secs (0.006u,0.s) -Chars 76534 - 76535 [-] 0. secs (0.u,0.s) -Chars 76536 - 76556 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 76561 - 76569 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 76570 - 76574 [Qed.] 0.002 secs (0.002u,0.s) -Chars 76576 - 76698 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 76699 - 76705 [Proof.] 0. secs (0.u,0.s) -Chars 76708 - 76715 [(intros).] 0. secs (0.u,0.s) -Chars 76718 - 76728 [step~in~H.] 0. secs (0.u,0.s) -Chars 76731 - 76763 [(remember~(observe~(Ret~v))~as...] 0. secs (0.u,0.s) -Chars 76766 - 76804 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 76807 - 76825 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 76828 - 76890 [(induction~H;~intros~EQ1~EQ2;~...] 0.007 secs (0.007u,0.s) -Chars 76893 - 76894 [-] 0. secs (0.u,0.s) -Chars 76895 - 76915 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 76920 - 76928 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 76929 - 76933 [Qed.] 0.003 secs (0.002u,0.s) -Chars 76935 - 77085 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 77086 - 77092 [Proof.] 0. secs (0.u,0.s) -Chars 77095 - 77102 [(intros).] 0. secs (0.u,0.s) -Chars 77105 - 77115 [step~in~H.] 0. secs (0.u,0.s) -Chars 77118 - 77152 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) -Chars 77155 - 77193 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 77196 - 77214 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 77217 - 77279 [(induction~H;~intros~EQ1~EQ2;~...] 0.011 secs (0.01u,0.s) -Chars 77282 - 77283 [-] 0. secs (0.u,0.s) -Chars 77284 - 77304 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 77309 - 77317 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 77318 - 77322 [Qed.] 0.003 secs (0.003u,0.s) -Chars 77324 - 77474 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 77475 - 77481 [Proof.] 0. secs (0.u,0.s) -Chars 77484 - 77491 [(intros).] 0. secs (0.u,0.s) -Chars 77494 - 77504 [step~in~H.] 0. secs (0.u,0.s) -Chars 77507 - 77541 [(remember~(observe~(Vis~e~k))~...] 0. secs (0.u,0.s) -Chars 77544 - 77582 [(remember~(observe~ITree.spin)...] 0. secs (0.u,0.s) -Chars 77585 - 77603 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 77606 - 77668 [(induction~H;~intros~EQ1~EQ2;~...] 0.009 secs (0.009u,0.s) -Chars 77671 - 77672 [-] 0. secs (0.u,0.s) -Chars 77673 - 77693 [(apply~IHeqitF;~auto).] 0. secs (0.u,0.s) -Chars 77698 - 77706 [(inv~EQ2).] 0. secs (0.u,0.s) -Chars 77707 - 77711 [Qed.] 0.003 secs (0.003u,0.s) -Chars 77712 - 77730 [Section~eqit_elem.] 0. secs (0.u,0.s) -Chars 79037 - 79111 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 79113 - 79172 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) -Chars 79210 - 79327 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) -Chars 79328 - 79334 [Proof.] 0. secs (0.u,0.s) -Chars 79337 - 79368 [(constructor;~typeclasses~eauto).] 0. secs (0.u,0.s) -Chars 79369 - 79373 [Qed.] 0. secs (0.u,0.s) -Chars 79375 - 79492 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 79493 - 79499 [Proof.] 0. secs (0.u,0.s) -Chars 79500 - 79518 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 79519 - 79523 [Qed.] 0. secs (0.u,0.s) -Chars 79525 - 79642 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 79643 - 79649 [Proof.] 0. secs (0.u,0.s) -Chars 79650 - 79668 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 79669 - 79673 [Qed.] 0. secs (0.u,0.s) -Chars 79704 - 79939 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.002 secs (0.002u,0.s) -Chars 79940 - 79946 [Proof.] 0. secs (0.u,0.s) -Chars 79949 - 79956 [(intros).] 0. secs (0.u,0.s) -Chars 79957 - 79987 [(eapply~eqit_bind_chain;~eauto).] 0.001 secs (0.001u,0.s) -Chars 79988 - 80002 [now~do~2~step.] 0.005 secs (0.004u,0.s) -Chars 80004 - 80008 [Qed.] 0.001 secs (0.001u,0.s) -Chars 80195 - 80209 [End~eqit_elem.] 0. secs (0.u,0.s) -Chars 80212 - 80231 [Section~eutt_facts.] 0. secs (0.u,0.s) -Chars 81626 - 81739 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 81740 - 81746 [Proof.] 0. secs (0.u,0.s) -Chars 81749 - 81757 [intros~!.] 0. secs (0.u,0.s) -Chars 81758 - 81776 [now~rewrite~H,~H0.] 0.022 secs (0.022u,0.s) -Chars 81777 - 81781 [Qed.] 0.001 secs (0.001u,0.s) -Chars 81783 - 81920 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 81921 - 81927 [Proof.] 0. secs (0.u,0.s) -Chars 81930 - 81938 [intros~!.] 0. secs (0.u,0.s) -Chars 81939 - 81957 [now~rewrite~H,~H0.] 0.002 secs (0.002u,0.s) -Chars 81958 - 81962 [Qed.] 0.001 secs (0.001u,0.s) -Chars 81964 - 82101 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 82102 - 82108 [Proof.] 0. secs (0.u,0.s) -Chars 82111 - 82119 [intros~!.] 0. secs (0.u,0.s) -Chars 82120 - 82138 [now~rewrite~H,~H0.] 0.028 secs (0.028u,0.s) -Chars 82139 - 82143 [Qed.] 0.001 secs (0.001u,0.s) -Chars 82297 - 82483 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) -Chars 82484 - 82490 [Proof.] 0. secs (0.u,0.s) -Chars 82493 - 82500 [(intros).] 0. secs (0.u,0.s) -Chars 82503 - 82563 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 82566 - 82589 [(intros~?~?~->;~apply~H).] 0. secs (0.u,0.s) -Chars 82590 - 82594 [Qed.] 0. secs (0.u,0.s) -Chars 82640 - 82806 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) -Chars 82807 - 82813 [Proof.] 0. secs (0.u,0.s) -Chars 82816 - 82829 [(intros~->~Hk).] 0.001 secs (0.001u,0.s) -Chars 82830 - 82853 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 82854 - 82858 [Qed.] 0.001 secs (0.001u,0.s) -Chars 82953 - 83075 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) -Chars 83076 - 83082 [Proof.] 0. secs (0.u,0.s) -Chars 83085 - 83108 [(intros;~apply~eqit_Ret).] 0. secs (0.u,0.s) -Chars 83109 - 83113 [Qed.] 0. secs (0.u,0.s) -Chars 83277 - 83304 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) -Chars 83306 - 83456 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) -Chars 83457 - 83463 [Proof.] 0. secs (0.u,0.s) -Chars 83466 - 83485 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 83486 - 83502 [(intros~*~EQ~EQ').] 0. secs (0.u,0.s) -Chars 83505 - 83529 [(step~in~EQ;~step~in~EQ').] 0.001 secs (0.001u,0.s) -Chars 83533 - 83558 [(genobs~t~ot;~genobs~s~os).] 0.002 secs (0.002u,0.s) -Chars 83561 - 83608 [(hinduction~EQ~before~CIH;~sub...] 0.001 secs (0.001u,0.s) -Chars 83611 - 83612 [-] 0. secs (0.u,0.s) -Chars 83613 - 83621 [(inv~EQ').] 0.009 secs (0.009u,0.s) -Chars 83622 - 83627 [eret.] 0. secs (0.u,0.s) -Chars 83628 - 83644 [now~constructor.] 0. secs (0.u,0.s) -Chars 83648 - 83649 [-] 0. secs (0.u,0.s) -Chars 83650 - 83655 [taus.] 0. secs (0.u,0.s) -Chars 83656 - 83674 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 83675 - 83694 [(apply~eqit_inv_Tau).] 0. secs (0.u,0.s) -Chars 83695 - 83704 [now~step.] 0.001 secs (0.001u,0.s) -Chars 83709 - 83710 [-] 0. secs (0.u,0.s) -Chars 83711 - 83723 [constructor.] 0. secs (0.u,0.s) -Chars 83724 - 83732 [intro~v.] 0. secs (0.u,0.s) -Chars 83733 - 83752 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 83757 - 83775 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) -Chars 83781 - 83821 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) -Chars 83824 - 83825 [-] 0. secs (0.u,0.s) -Chars 83826 - 83831 [taul.] 0. secs (0.u,0.s) -Chars 83832 - 83851 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 83852 - 83858 [subst.] 0. secs (0.u,0.s) -Chars 83859 - 83866 [unstep.] 0.003 secs (0.003u,0.s) -Chars 83867 - 83889 [(eapply~eqit_inv_Tau_l).] 0. secs (0.u,0.s) -Chars 83895 - 83904 [now~step.] 0.002 secs (0.001u,0.s) -Chars 83909 - 83910 [-] 0. secs (0.u,0.s) -Chars 83911 - 83916 [taur.] 0. secs (0.u,0.s) -Chars 83917 - 83936 [(eapply~IHEQ;~eauto).] 0. secs (0.u,0.s) -Chars 83937 - 83943 [subst.] 0. secs (0.u,0.s) -Chars 83944 - 83951 [unstep.] 0.003 secs (0.003u,0.s) -Chars 83952 - 83974 [(eapply~eqit_inv_Tau_r).] 0. secs (0.u,0.s) -Chars 83980 - 83989 [now~step.] 0.001 secs (0.001u,0.s) -Chars 83992 - 83996 [Qed.] 0.014 secs (0.014u,0.s) -Chars 83998 - 84124 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 84126 - 84132 [Proof.] 0. secs (0.u,0.s) -Chars 84135 - 84142 [(intros).] 0. secs (0.u,0.s) -Chars 84145 - 84176 [(eapply~(eqit_mono~RS~_);~eauto).] 0.002 secs (0.002u,0.s) -Chars 84177 - 84181 [Qed.] 0. secs (0.u,0.s) -Chars 84183 - 84310 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 84312 - 84318 [Proof.] 0. secs (0.u,0.s) -Chars 84321 - 84328 [(intros).] 0. secs (0.u,0.s) -Chars 84331 - 84363 [(eapply~(eqit_mono~RS'~_);~eau...] 0.001 secs (0.001u,0.s) -Chars 84364 - 84368 [Qed.] 0. secs (0.u,0.s) -Chars 84370 - 84529 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) -Chars 84531 - 84537 [Proof.] 0. secs (0.u,0.s) -Chars 84540 - 84613 [(intros~*~EQ;~split;~intros~EU...] 0.005 secs (0.005u,0.s) -Chars 84616 - 84630 [all:~(apply~EQ).] 0. secs (0.u,0.s) -Chars 84631 - 84635 [Qed.] 0. secs (0.u,0.s) -Chars 84713 - 84892 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 84893 - 84899 [Proof.] 0. secs (0.u,0.s) -Chars 84902 - 84917 [(intros~!;~subst).] 0. secs (0.u,0.s) -Chars 84920 - 84960 [(unfold~eq_itree;~rewrite~H;~r...] 0. secs (0.u,0.s) -Chars 84961 - 84965 [Qed.] 0. secs (0.u,0.s) -Chars 84967 - 85127 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 85128 - 85134 [Proof.] 0. secs (0.u,0.s) -Chars 85137 - 85152 [(intros~!;~subst).] 0. secs (0.u,0.s) -Chars 85155 - 85191 [(unfold~eutt;~rewrite~H;~refle...] 0. secs (0.u,0.s) -Chars 85192 - 85196 [Qed.] 0. secs (0.u,0.s) -Chars 85305 - 85436 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) -Chars 85437 - 85443 [Proof.] 0. secs (0.u,0.s) -Chars 85446 - 85468 [(intros~Hrel;~revert~t).] 0. secs (0.u,0.s) -Chars 85469 - 85504 [(icoinduction~c~CIH;~intros~t~...] 0.001 secs (0.001u,0.s) -Chars 85507 - 85521 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 85524 - 85555 [(remember~t~as~t'~in~Heutt~at~2).] 0. secs (0.u,0.s) -Chars 85556 - 85592 [(assert~(Ht'~:~t'~≈~t)~by~now~...] 0. secs (0.u,0.s) -Chars 85593 - 85605 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 85608 - 85653 [(rewrite~(itree_eta~t),~(itree...] 0.04 secs (0.039u,0.s) -Chars 85656 - 85667 [revert~Ht'.] 0. secs (0.u,0.s) -Chars 85668 - 85705 [(induction~Heutt;~clear~t;~int...] 0.001 secs (0.001u,0.s) -Chars 85708 - 85709 [-] 0. secs (0.u,0.s) -Chars 85710 - 85743 [(apply~eutt_inv_Ret~in~Heq;~su...] 0. secs (0.u,0.s) -Chars 85748 - 85766 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 85769 - 85770 [-] 0. secs (0.u,0.s) -Chars 85771 - 85797 [(apply~eqit_inv_Tau~in~Heq).] 0. secs (0.u,0.s) -Chars 85802 - 85814 [constructor.] 0. secs (0.u,0.s) -Chars 85815 - 85826 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 85832 - 85856 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 85859 - 85860 [-] 0. secs (0.u,0.s) -Chars 85861 - 85873 [constructor.] 0. secs (0.u,0.s) -Chars 85874 - 85883 [(intros~v).] 0. secs (0.u,0.s) -Chars 85884 - 85911 [(eapply~eqit_inv_Vis~in~Heq).] 0. secs (0.u,0.s) -Chars 85916 - 85935 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 85936 - 85947 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 85948 - 85972 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 85975 - 85976 [-] 0. secs (0.u,0.s) -Chars 85977 - 85982 [taul.] 0. secs (0.u,0.s) -Chars 85983 - 85988 [taur.] 0. secs (0.u,0.s) -Chars 85989 - 86003 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 86004 - 86030 [(rewrite~<-~(itree_eta~t1)).] 0.001 secs (0.001u,0.s) -Chars 86038 - 86068 [now~rewrite~tau_euttge~in~Heq.] 0.024 secs (0.024u,0.s) -Chars 86072 - 86073 [-] 0. secs (0.u,0.s) -Chars 86074 - 86088 [(apply~IHHeutt).] 0. secs (0.u,0.s) -Chars 86089 - 86112 [(rewrite~<-~itree_eta).] 0. secs (0.u,0.s) -Chars 86120 - 86150 [now~rewrite~tau_euttge~in~Heq.] 0.017 secs (0.016u,0.s) -Chars 86152 - 86156 [Qed.] 0.007 secs (0.006u,0.s) -Chars 86158 - 86173 [End~eutt_facts.] 0. secs (0.u,0.s) -Chars 86222 - 86389 [#[global]~Instance~observing_e...] 0.001 secs (0.001u,0.s) -Chars 86391 - 86397 [Proof.] 0. secs (0.u,0.s) -Chars 86401 - 86409 [intros~!.] 0. secs (0.u,0.s) -Chars 86413 - 86418 [step.] 0.002 secs (0.002u,0.s) -Chars 86419 - 86429 [(rewrite~H).] 0.009 secs (0.009u,0.s) -Chars 86430 - 86442 [reflexivity.] 0. secs (0.u,0.s) -Chars 86444 - 86448 [Qed.] 0.001 secs (0.001u,0.s) -Chars 86455 - 86590 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) -Chars 86592 - 86598 [Proof.] 0. secs (0.u,0.s) -Chars 86602 - 86641 [(intros~!;~now~eapply~observin...] 0. secs (0.u,0.s) -Chars 86642 - 86646 [Qed.] 0. secs (0.u,0.s) -Chars 86649 - 86776 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) +Chars 43875 - 43970 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) +Chars 43971 - 43977 [Proof.] 0. secs (0.u,0.s) +Chars 43980 - 43992 [red;~intros.] 0. secs (0.u,0.s) +Chars 43993 - 44029 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) +Chars 44030 - 44066 [eapply~eqit_mono,~eqit_trans;~...] 0.005 secs (0.004u,0.s) +Chars 44069 - 44077 [intros~!.] 0. secs (0.u,0.s) +Chars 44078 - 44094 [now~apply~TRANS.] 0. secs (0.u,0.s) +Chars 44096 - 44100 [Qed.] 0. secs (0.u,0.s) +Chars 44102 - 44191 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) +Chars 44192 - 44198 [Proof.] 0. secs (0.u,0.s) +Chars 44201 - 44232 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 44234 - 44238 [Qed.] 0. secs (0.u,0.s) +Chars 44240 - 44392 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) +Chars 44394 - 44400 [Proof.] 0. secs (0.u,0.s) +Chars 44404 - 44422 [split;~intros~!.] 0. secs (0.u,0.s) +Chars 44425 - 44463 [do~2~(etransitivity;~symmetry;...] 0.003 secs (0.003u,0.s) +Chars 44466 - 44508 [do~2~(etransitivity;~eauto);~n...] 0.002 secs (0.002u,0.s) +Chars 44510 - 44514 [Qed.] 0. secs (0.u,0.s) +Chars 44545 - 44558 [Module~Tests.] 0. secs (0.u,0.s) +Chars 44561 - 44597 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) +Chars 44600 - 44632 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) +Chars 44635 - 44676 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) +Chars 44679 - 44715 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) +Chars 44718 - 44754 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) +Chars 44757 - 44792 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) +Chars 44795 - 44833 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) +Chars 44836 - 44871 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) +Chars 44874 - 44912 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) +Chars 44915 - 44949 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) +Chars 44952 - 44987 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) +Chars 45082 - 45099 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) +Chars 45104 - 45119 [rewrite~EQUIV2.] 0.009 secs (0.009u,0.s) +Chars 45124 - 45139 [rewrite~<-~EQ2.] 0.007 secs (0.007u,0.s) +Chars 45144 - 45167 [eapply~eq_proper_euttC.] 0. secs (0.u,0.s) +Chars 45172 - 45187 [rewrite~<-~EQ1.] 0. secs (0.u,0.s) +Chars 45192 - 45202 [exact~EQ1.] 0. secs (0.u,0.s) +Chars 45208 - 45228 [rewrite~EQ2,~<-~EQ2.] 0.001 secs (0.001u,0.s) +Chars 45234 - 45244 [exact~EQ2.] 0. secs (0.u,0.s) +Chars 45250 - 45255 [step.] 0.002 secs (0.002u,0.s) +Chars 45276 - 45281 [step.] 0.003 secs (0.003u,0.s) +Chars 45287 - 45302 [rewrite~<-~EQ1.] 0.007 secs (0.007u,0.s) +Chars 45308 - 45322 [rewrite~<-~GT.] 0.024 secs (0.024u,0.s) +Chars 45328 - 45340 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) +Chars 45345 - 45363 [rewrite~<-~EQUIV1.] 0.007 secs (0.007u,0.s) +Chars 45366 - 45372 [Abort.] 0. secs (0.u,0.s) +Chars 45377 - 45422 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) +Chars 45482 - 45522 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) +Chars 45527 - 45536 [intros~H.] 0. secs (0.u,0.s) +Chars 45541 - 45553 [rewrite~EQ1.] 0.005 secs (0.005u,0.s) +Chars 45558 - 45575 [rewrite~EQ1~in~H.] 0.005 secs (0.005u,0.s) +Chars 45580 - 45598 [rewrite~<-~EQUIV1.] 0.005 secs (0.005u,0.s) +Chars 45643 - 45666 [rewrite~<-~EQUIV1~in~H.] 0.005 secs (0.005u,0.s) +Chars 45671 - 45694 [rewrite~<-~EQUIV2~in~H.] 0.007 secs (0.007u,0.s) +Chars 45700 - 45712 [rewrite~GT2.] 0.001 secs (0.001u,0.s) +Chars 45717 - 45737 [rewrite~<-~GT2~in~H.] 0.02 secs (0.02u,0.s) +Chars 45742 - 45753 [rewrite~GT.] 0.001 secs (0.001u,0.s) +Chars 45758 - 45777 [rewrite~<-~GT~in~H.] 0.019 secs (0.019u,0.s) +Chars 45839 - 45853 [Fail~symmetry.] 0. secs (0.u,0.s) +Chars 45858 - 45877 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) +Chars 45882 - 45896 [rewrite~<-~GT.] 0.019 secs (0.019u,0.s) +Chars 45902 - 45913 [assumption.] 0. secs (0.u,0.s) +Chars 45917 - 45921 [Qed.] 0.001 secs (0.001u,0.s) +Chars 45925 - 45968 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) +Chars 45972 - 46039 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) +Chars 46042 - 46082 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) +Chars 46088 - 46093 [step.] 0.001 secs (0.001u,0.s) +Chars 46127 - 46134 [unstep.] 0.002 secs (0.002u,0.s) +Chars 46140 - 46184 [assert~(eutt~(E:=VE)~eq~(Ret~t...] 0. secs (0.u,0.s) +Chars 46190 - 46195 [step.] 0.001 secs (0.001u,0.s) +Chars 46254 - 46280 [rewrite~observing_observe.] 0.005 secs (0.005u,0.s) +Chars 46281 - 46287 [Abort.] 0. secs (0.u,0.s) +Chars 46291 - 46315 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) +Chars 46320 - 46329 [intros~H.] 0. secs (0.u,0.s) +Chars 46334 - 46346 [rewrite~EQ1.] 0. secs (0.u,0.s) +Chars 46351 - 46368 [rewrite~EQ1~in~H.] 0.005 secs (0.005u,0.s) +Chars 46373 - 46382 [symmetry.] 0. secs (0.u,0.s) +Chars 46387 - 46401 [symmetry~in~H.] 0. secs (0.u,0.s) +Chars 46406 - 46418 [reflexivity.] 0. secs (0.u,0.s) +Chars 46419 - 46423 [Qed.] 0. secs (0.u,0.s) +Chars 46510 - 46585 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) +Chars 46590 - 46608 [intros~EQ1~EQ2'~H.] 0. secs (0.u,0.s) +Chars 46613 - 46625 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) +Chars 46630 - 46642 [rewrite~EQ2.] 0. secs (0.u,0.s) +Chars 46647 - 46671 [apply~eqit_flip~in~EQ2'.] 0. secs (0.u,0.s) +Chars 46676 - 46696 [rewrite~EQ2~in~EQ2'.] 0.01 secs (0.01u,0.s) +Chars 46701 - 46745 [eapply~(eqit_mono~RR~RR~false~...] 0.001 secs (0.001u,0.s) +Chars 46812 - 46816 [Qed.] 0.001 secs (0.001u,0.s) +Chars 46867 - 46891 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) +Chars 46896 - 46915 [icoinduction~r~CIH.] 0.001 secs (0.001u,0.s) +Chars 46920 - 46927 [intros.] 0. secs (0.u,0.s) +Chars 46932 - 46937 [step.] 0.002 secs (0.002u,0.s) +Chars 46943 - 46953 [rewrite~H.] 0.012 secs (0.012u,0.s) +Chars 46959 - 46971 [reflexivity.] 0. secs (0.u,0.s) +Chars 46973 - 46977 [Qed.] 0.001 secs (0.001u,0.s) +Chars 46980 - 46990 [End~Tests.] 0. secs (0.u,0.s) +Chars 46992 - 47044 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) +Chars 47049 - 47065 [Section~eqit_eq.] 0. secs (0.u,0.s) +Chars 47116 - 47154 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) +Chars 47156 - 47215 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) +Chars 47217 - 47350 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 47351 - 47357 [Proof.] 0. secs (0.u,0.s) +Chars 47360 - 47389 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 47390 - 47394 [Qed.] 0. secs (0.u,0.s) +Chars 47396 - 47523 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 47524 - 47530 [Proof.] 0. secs (0.u,0.s) +Chars 47533 - 47562 [apply~Symmetric_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 47564 - 47568 [Qed.] 0. secs (0.u,0.s) +Chars 47617 - 47685 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) +Chars 47686 - 47692 [Proof.] 0. secs (0.u,0.s) +Chars 47695 - 47723 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 47724 - 47728 [Qed.] 0. secs (0.u,0.s) +Chars 47730 - 47792 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) +Chars 47793 - 47799 [Proof.] 0. secs (0.u,0.s) +Chars 47802 - 47830 [apply~Symmetric_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 47831 - 47835 [Qed.] 0. secs (0.u,0.s) +Chars 47870 - 47969 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) +Chars 47970 - 47976 [Proof.] 0. secs (0.u,0.s) +Chars 47979 - 48025 [constructor;~step~in~H;~step;~...] 0.001 secs (0.001u,0.s) +Chars 48028 - 48032 [Qed.] 0. secs (0.u,0.s) +Chars 48035 - 48130 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) +Chars 48131 - 48137 [Proof.] 0. secs (0.u,0.s) +Chars 48140 - 48158 [constructor;~step.] 0.001 secs (0.001u,0.s) +Chars 48159 - 48172 [econstructor.] 0. secs (0.u,0.s) +Chars 48173 - 48179 [eauto.] 0. secs (0.u,0.s) +Chars 48180 - 48184 [Qed.] 0. secs (0.u,0.s) +Chars 48186 - 48313 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) +Chars 48314 - 48320 [Proof.] 0. secs (0.u,0.s) +Chars 48323 - 48345 [constructor;~red~in~H.] 0. secs (0.u,0.s) +Chars 48346 - 48382 [step;~econstructor;~auto~with~...] 0.001 secs (0.001u,0.s) +Chars 48383 - 48387 [Qed.] 0. secs (0.u,0.s) +Chars 48389 - 48473 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 48474 - 48480 [Proof.] 0. secs (0.u,0.s) +Chars 48483 - 48502 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 48505 - 48510 [step.] 0.001 secs (0.001u,0.s) +Chars 48511 - 48541 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) +Chars 48542 - 48571 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) +Chars 48572 - 48576 [Qed.] 0. secs (0.u,0.s) +Chars 48578 - 48723 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) +Chars 48724 - 48730 [Proof.] 0. secs (0.u,0.s) +Chars 48733 - 48741 [intros~!.] 0. secs (0.u,0.s) +Chars 48744 - 48750 [inv~H.] 0.003 secs (0.003u,0.s) +Chars 48753 - 48758 [step.] 0.001 secs (0.001u,0.s) +Chars 48761 - 48787 [rewrite~observing_observe.] 0. secs (0.u,0.s) +Chars 48790 - 48795 [step.] 0.003 secs (0.002u,0.s) +Chars 48796 - 48808 [reflexivity.] 0. secs (0.u,0.s) +Chars 48809 - 48813 [Qed.] 0.001 secs (0.001u,0.s) +Chars 48840 - 48897 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) +Chars 48898 - 48904 [Proof.] 0. secs (0.u,0.s) +Chars 48905 - 48930 [apply~observing_sub_eqit.] 0. secs (0.u,0.s) +Chars 48931 - 48944 [econstructor.] 0. secs (0.u,0.s) +Chars 48945 - 48957 [reflexivity.] 0. secs (0.u,0.s) +Chars 48958 - 48962 [Qed.] 0. secs (0.u,0.s) +Chars 48964 - 49019 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) +Chars 49020 - 49026 [Proof.] 0. secs (0.u,0.s) +Chars 49027 - 49044 [apply~itree_eta_.] 0. secs (0.u,0.s) +Chars 49045 - 49049 [Qed.] 0. secs (0.u,0.s) +Chars 49051 - 49109 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) +Chars 49110 - 49116 [Proof.] 0. secs (0.u,0.s) +Chars 49117 - 49129 [reflexivity.] 0. secs (0.u,0.s) +Chars 49130 - 49134 [Qed.] 0. secs (0.u,0.s) +Chars 49136 - 49148 [End~eqit_eq.] 0. secs (0.u,0.s) +Chars 49182 - 49270 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 49271 - 49277 [Proof.] 0. secs (0.u,0.s) +Chars 49280 - 49295 [intros;~sinv~H.] 0.004 secs (0.004u,0.s) +Chars 49296 - 49300 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49302 - 49453 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 49454 - 49460 [Proof.] 0. secs (0.u,0.s) +Chars 49463 - 49510 [intros;~step~in~H;~apply~eqitF...] 0. secs (0.u,0.s) +Chars 49513 - 49567 [destruct~H~as~[[?~[->~?]]|~[]]...] 0. secs (0.u,0.s) +Chars 49570 - 49592 [eexists;~split;~eauto.] 0. secs (0.u,0.s) +Chars 49593 - 49597 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49599 - 49712 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) +Chars 49713 - 49719 [Proof.] 0. secs (0.u,0.s) +Chars 49722 - 49744 [intros;~sinv~H;~eauto.] 0.008 secs (0.008u,0.s) +Chars 49745 - 49749 [Qed.] 0.002 secs (0.002u,0.s) +Chars 49751 - 49852 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 49853 - 49859 [Proof.] 0. secs (0.u,0.s) +Chars 49862 - 49869 [intros.] 0. secs (0.u,0.s) +Chars 49870 - 49880 [step~in~H.] 0. secs (0.u,0.s) +Chars 49881 - 49887 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 49889 - 49893 [Qed.] 0.001 secs (0.001u,0.s) +Chars 49946 - 50175 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0. secs (0.u,0.s) +Chars 50176 - 50182 [Proof.] 0. secs (0.u,0.s) +Chars 50185 - 50192 [intros.] 0. secs (0.u,0.s) +Chars 50193 - 50235 [step~in~H;~apply~eqitF_inv_Vis...] 0. secs (0.u,0.s) +Chars 50238 - 50260 [destruct~H~as~[p~[]].] 0. secs (0.u,0.s) +Chars 50261 - 50283 [exists~p;~split;~auto.] 0. secs (0.u,0.s) +Chars 50284 - 50288 [Qed.] 0.001 secs (0.u,0.s) +Chars 50314 - 50520 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) +Chars 50521 - 50527 [Proof.] 0. secs (0.u,0.s) +Chars 50530 - 50599 [intros~H~x;~step~in~H;~apply~e...] 0. secs (0.u,0.s) +Chars 50600 - 50604 [Qed.] 0. secs (0.u,0.s) +Chars 50647 - 50726 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) +Chars 50727 - 50733 [Proof.] 0. secs (0.u,0.s) +Chars 50736 - 50771 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) +Chars 50772 - 50776 [Qed.] 0. secs (0.u,0.s) +Chars 50778 - 50860 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) +Chars 50861 - 50867 [Proof.] 0. secs (0.u,0.s) +Chars 50870 - 50905 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) +Chars 50906 - 50910 [Qed.] 0. secs (0.u,0.s) +Chars 50912 - 51038 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 51039 - 51045 [Proof.] 0. secs (0.u,0.s) +Chars 51048 - 51055 [intros.] 0. secs (0.u,0.s) +Chars 51056 - 51061 [step.] 0.001 secs (0.001u,0.s) +Chars 51062 - 51082 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 51083 - 51097 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 51099 - 51103 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51105 - 51231 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 51232 - 51238 [Proof.] 0. secs (0.u,0.s) +Chars 51241 - 51248 [intros.] 0. secs (0.u,0.s) +Chars 51249 - 51254 [step.] 0.001 secs (0.001u,0.s) +Chars 51255 - 51275 [econstructor;~eauto.] 0. secs (0.u,0.s) +Chars 51276 - 51290 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 51292 - 51296 [Qed.] 0.002 secs (0.002u,0.s) +Chars 51298 - 51352 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) +Chars 51353 - 51359 [Proof.] 0. secs (0.u,0.s) +Chars 51362 - 51379 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) +Chars 51380 - 51392 [reflexivity.] 0. secs (0.u,0.s) +Chars 51393 - 51397 [Qed.] 0. secs (0.u,0.s) +Chars 51399 - 51451 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) +Chars 51452 - 51458 [Proof.] 0. secs (0.u,0.s) +Chars 51461 - 51495 [apply~euttge_sub_eutt,~tau_eut...] 0. secs (0.u,0.s) +Chars 51496 - 51500 [Qed.] 0. secs (0.u,0.s) +Chars 51503 - 51577 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) +Chars 51578 - 51584 [Proof.] 0. secs (0.u,0.s) +Chars 51587 - 51592 [step.] 0.001 secs (0.001u,0.s) +Chars 51593 - 51604 [repeat~red.] 0. secs (0.u,0.s) +Chars 51605 - 51613 [simpobs.] 0. secs (0.u,0.s) +Chars 51614 - 51620 [simpl.] 0. secs (0.u,0.s) +Chars 51621 - 51627 [subst.] 0. secs (0.u,0.s) +Chars 51628 - 51635 [unstep.] 0.002 secs (0.002u,0.s) +Chars 51636 - 51664 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) +Chars 51665 - 51669 [Qed.] 0.001 secs (0.001u,0.s) +Chars 51717 - 52030 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) +Chars 52032 - 52038 [Proof.] 0. secs (0.u,0.s) +Chars 52040 - 52076 [intros~!;~unfold~flip,~eq_itre...] 0. secs (0.u,0.s) +Chars 53239 - 53245 [idtac.] 0. secs (0.u,0.s) +Chars 53285 - 53345 [assert~(rcompose~RR1~RS~<=~RS)...] 0. secs (0.u,0.s) +Chars 53349 - 53416 [assert~(rcompose~RS~(flip~RR2)...] 0. secs (0.u,0.s) +Chars 53419 - 53517 [assert~(eqit~b1~b2~RR1~x~y)~by...] 0.003 secs (0.003u,0.s) +Chars 53520 - 53624 [assert~(eqit~b1~b2~RR2~x0~y0)~...] 0.003 secs (0.003u,0.s) +Chars 53653 - 53697 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) +Chars 53701 - 53799 [assert~(Hdiag~:~eqit~b1~b2~RS~...] 0.001 secs (0.001u,0.s) +Chars 53837 - 53859 [apply~eqit_flip~in~H0.] 0. secs (0.u,0.s) +Chars 53909 - 53969 [eapply~eqit_mono~with~(RR~:=~r...] 0.002 secs (0.002u,0.s) +Chars 53973 - 53998 [eapply~eqit_trans;~eauto.] 0.002 secs (0.002u,0.s) +Chars 54002 - 54071 [eapply~eqit_mono~with~(b1~:=~f...] 0.004 secs (0.004u,0.s) +Chars 54073 - 54077 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54120 - 54269 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) +Chars 54270 - 54276 [Proof.] 0. secs (0.u,0.s) +Chars 54279 - 54286 [intros.] 0. secs (0.u,0.s) +Chars 54289 - 54305 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 54308 - 54309 [-] 0. secs (0.u,0.s) +Chars 54310 - 54330 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 54331 - 54343 [2:~apply~H.] 0. secs (0.u,0.s) +Chars 54349 - 54366 [apply~eqit_Tau_r.] 0. secs (0.u,0.s) +Chars 54367 - 54379 [reflexivity.] 0. secs (0.u,0.s) +Chars 54382 - 54383 [-] 0. secs (0.u,0.s) +Chars 54384 - 54389 [step.] 0.001 secs (0.001u,0.s) +Chars 54390 - 54395 [taul.] 0. secs (0.u,0.s) +Chars 54396 - 54410 [now~step~in~H.] 0. secs (0.u,0.s) +Chars 54412 - 54416 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54418 - 54567 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) +Chars 54568 - 54574 [Proof.] 0. secs (0.u,0.s) +Chars 54577 - 54584 [intros.] 0. secs (0.u,0.s) +Chars 54587 - 54603 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 54606 - 54607 [-] 0. secs (0.u,0.s) +Chars 54608 - 54628 [eapply~transitivity.] 0. secs (0.u,0.s) +Chars 54629 - 54637 [apply~H.] 0. secs (0.u,0.s) +Chars 54642 - 54659 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) +Chars 54660 - 54672 [reflexivity.] 0. secs (0.u,0.s) +Chars 54675 - 54676 [-] 0. secs (0.u,0.s) +Chars 54677 - 54682 [step.] 0.001 secs (0.001u,0.s) +Chars 54683 - 54688 [taur.] 0. secs (0.u,0.s) +Chars 54689 - 54703 [now~step~in~H.] 0.001 secs (0.001u,0.s) +Chars 54704 - 54708 [Qed.] 0.001 secs (0.001u,0.s) +Chars 54710 - 54799 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 54800 - 54806 [Proof.] 0. secs (0.u,0.s) +Chars 54809 - 54822 [intros~Heutt.] 0. secs (0.u,0.s) +Chars 54823 - 54837 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 54841 - 54859 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 54863 - 54891 [remember~(observe~(Ret~r1)).] 0. secs (0.u,0.s) +Chars 54894 - 54908 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 54911 - 54942 [remember~{|~_observe~:=~ot2~|}.] 0. secs (0.u,0.s) +Chars 54945 - 54990 [hinduction~Heutt~before~r1;~in...] 0.005 secs (0.005u,0.s) +Chars 54994 - 54995 [-] 0. secs (0.u,0.s) +Chars 54996 - 55015 [rewrite~tau_euttge.] 0. secs (0.u,0.s) +Chars 55016 - 55034 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 55035 - 55054 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 55055 - 55059 [Qed.] 0.003 secs (0.003u,0.s) +Chars 55156 - 55245 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) +Chars 55246 - 55252 [Proof.] 0. secs (0.u,0.s) +Chars 55255 - 55268 [intros~Heutt.] 0. secs (0.u,0.s) +Chars 55269 - 55283 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 55288 - 55306 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 55310 - 55385 [remember~(observe~(Ret~r2));~g...] 0. secs (0.u,0.s) +Chars 55388 - 55432 [hinduction~Heutt~before~R;~int...] 0.006 secs (0.006u,0.s) +Chars 55436 - 55437 [-] 0. secs (0.u,0.s) +Chars 55438 - 55457 [rewrite~tau_euttge.] 0. secs (0.u,0.s) +Chars 55458 - 55476 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) +Chars 55477 - 55496 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) +Chars 55497 - 55501 [Qed.] 0.003 secs (0.003u,0.s) +Chars 55545 - 55712 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) +Chars 55714 - 55810 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 55811 - 55817 [Proof.] 0. secs (0.u,0.s) +Chars 55820 - 55871 [apply~observing_sub_eqit;~cons...] 0. secs (0.u,0.s) +Chars 55872 - 55876 [Qed.] 0. secs (0.u,0.s) +Chars 55878 - 55967 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) +Chars 55968 - 55974 [Proof.] 0. secs (0.u,0.s) +Chars 55975 - 56011 [apply~observing_sub_eqit,~bind...] 0. secs (0.u,0.s) +Chars 56012 - 56016 [Qed.] 0. secs (0.u,0.s) +Chars 56018 - 56113 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) +Chars 56114 - 56120 [Proof.] 0. secs (0.u,0.s) +Chars 56121 - 56151 [apply~(unfold_bind~(Tau~t)~k).] 0. secs (0.u,0.s) +Chars 56152 - 56156 [Qed.] 0. secs (0.u,0.s) +Chars 56158 - 56302 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) +Chars 56303 - 56309 [Proof.] 0. secs (0.u,0.s) +Chars 56310 - 56343 [apply~(unfold_bind~(Vis~e~ek)~k).] 0. secs (0.u,0.s) +Chars 56344 - 56348 [Qed.] 0. secs (0.u,0.s) +Chars 56350 - 56468 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) +Chars 56469 - 56475 [Proof.] 0. secs (0.u,0.s) +Chars 56478 - 56503 [rewrite~unfold_bind;~cbn.] 0.001 secs (0.001u,0.s) +Chars 56506 - 56511 [step.] 0.001 secs (0.001u,0.s) +Chars 56514 - 56526 [constructor.] 0. secs (0.u,0.s) +Chars 56529 - 56536 [intros.] 0. secs (0.u,0.s) +Chars 56537 - 56554 [apply~bind_ret_l.] 0. secs (0.u,0.s) +Chars 56555 - 56559 [Qed.] 0.001 secs (0.001u,0.s) +Chars 56561 - 56718 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) +Chars 56719 - 56725 [Proof.] 0. secs (0.u,0.s) +Chars 56728 - 56750 [rewrite~unfold_aloop_.] 0.006 secs (0.006u,0.s) +Chars 56751 - 56763 [reflexivity.] 0. secs (0.u,0.s) +Chars 56764 - 56768 [Qed.] 0.001 secs (0.001u,0.s) +Chars 56770 - 56892 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) +Chars 56893 - 56899 [Proof.] 0. secs (0.u,0.s) +Chars 56902 - 56950 [rewrite~itree_eta,~(itree_eta~...] 0.001 secs (0.001u,0.s) +Chars 56953 - 56965 [reflexivity.] 0. secs (0.u,0.s) +Chars 56966 - 56970 [Qed.] 0. secs (0.u,0.s) +Chars 56972 - 57086 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) +Chars 57087 - 57147 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) +Chars 57149 - 57164 [Section~eqit_h.] 0. secs (0.u,0.s) +Chars 57166 - 57232 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 57291 - 57408 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) +Chars 57409 - 57415 [Proof.] 0. secs (0.u,0.s) +Chars 57418 - 57434 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 57437 - 57438 [-] 0. secs (0.u,0.s) +Chars 57439 - 57449 [step~in~H.] 0. secs (0.u,0.s) +Chars 57450 - 57455 [step.] 0.001 secs (0.001u,0.s) +Chars 57462 - 57479 [move~H~before~RR.] 0. secs (0.u,0.s) +Chars 57480 - 57495 [revert_until~H.] 0. secs (0.u,0.s) +Chars 57500 - 57528 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) +Chars 57534 - 57562 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) +Chars 57568 - 57582 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 57588 - 57602 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 57608 - 57664 [hinduction~H~before~RR;~intros...] 0.013 secs (0.013u,0.s) +Chars 57670 - 57671 [+] 0. secs (0.u,0.s) +Chars 57672 - 57683 [now~unstep.] 0.002 secs (0.002u,0.s) +Chars 57689 - 57690 [+] 0. secs (0.u,0.s) +Chars 57691 - 57697 [inv~H.] 0.006 secs (0.006u,0.s) +Chars 57705 - 57706 [*] 0. secs (0.u,0.s) +Chars 57707 - 57712 [taul.] 0. secs (0.u,0.s) +Chars 57713 - 57735 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 57743 - 57744 [*] 0. secs (0.u,0.s) +Chars 57745 - 57750 [taul.] 0. secs (0.u,0.s) +Chars 57751 - 57773 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 57779 - 57780 [+] 0. secs (0.u,0.s) +Chars 57781 - 57787 [inv~H.] 0.005 secs (0.005u,0.s) +Chars 57795 - 57796 [*] 0. secs (0.u,0.s) +Chars 57797 - 57802 [taur.] 0. secs (0.u,0.s) +Chars 57803 - 57825 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 57833 - 57834 [*] 0. secs (0.u,0.s) +Chars 57835 - 57840 [taur.] 0. secs (0.u,0.s) +Chars 57841 - 57863 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 57867 - 57868 [-] 0. secs (0.u,0.s) +Chars 57869 - 57874 [step.] 0.001 secs (0.001u,0.s) +Chars 57875 - 57891 [now~constructor.] 0. secs (0.u,0.s) +Chars 57895 - 57899 [Qed.] 0.006 secs (0.006u,0.s) +Chars 57902 - 58125 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) +Chars 58126 - 58132 [Proof.] 0. secs (0.u,0.s) +Chars 58135 - 58151 [destruct~p;~cbn.] 0. secs (0.u,0.s) +Chars 58152 - 58164 [intros~<-~H.] 0. secs (0.u,0.s) +Chars 58165 - 58170 [step.] 0.001 secs (0.001u,0.s) +Chars 58171 - 58184 [econstructor.] 0. secs (0.u,0.s) +Chars 58185 - 58193 [apply~H.] 0. secs (0.u,0.s) +Chars 58194 - 58198 [Qed.] 0.001 secs (0.001u,0.s) +Chars 58200 - 58372 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) +Chars 58373 - 58379 [Proof.] 0. secs (0.u,0.s) +Chars 58382 - 58434 [apply~eqit_Vis_gen~with~(p~:=~...] 0. secs (0.u,0.s) +Chars 58435 - 58439 [Qed.] 0. secs (0.u,0.s) +Chars 58441 - 58538 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) +Chars 58539 - 58545 [Proof.] 0. secs (0.u,0.s) +Chars 58548 - 58564 [split;~intros~H.] 0. secs (0.u,0.s) +Chars 58567 - 58568 [-] 0. secs (0.u,0.s) +Chars 58569 - 58574 [step.] 0.001 secs (0.001u,0.s) +Chars 58575 - 58591 [now~constructor.] 0. secs (0.u,0.s) +Chars 58594 - 58595 [-] 0. secs (0.u,0.s) +Chars 58596 - 58603 [sinv~H.] 0.001 secs (0.001u,0.s) +Chars 58605 - 58609 [Qed.] 0.001 secs (0.001u,0.s) +Chars 58794 - 59112 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) +Chars 59113 - 59119 [Proof.] 0. secs (0.u,0.s) +Chars 59123 - 59139 [revert_until~U2.] 0. secs (0.u,0.s) +Chars 59143 - 59159 [tower~induction.] 0.003 secs (0.003u,0.s) +Chars 59163 - 59164 [-] 0. secs (0.u,0.s) +Chars 59165 - 59172 [intros.] 0. secs (0.u,0.s) +Chars 59176 - 59193 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 59198 - 59199 [-] 0. secs (0.u,0.s) +Chars 59200 - 59207 [intros.] 0. secs (0.u,0.s) +Chars 59211 - 59221 [icbn~in~*.] 0. secs (0.u,0.s) +Chars 59225 - 59239 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 59244 - 59258 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 59261 - 59303 [hinduction~H0~before~RR;~intro...] 0.029 secs (0.028u,0.s) +Chars 59388 - 59425 [1-3:~rewrite~2!observe_bind;~s...] 0.013 secs (0.013u,0.s) +Chars 59440 - 59441 [+] 0. secs (0.u,0.s) +Chars 59442 - 59459 [eapply~H1;~eauto.] 0. secs (0.u,0.s) +Chars 59476 - 59477 [+] 0. secs (0.u,0.s) +Chars 59478 - 59490 [constructor.] 0. secs (0.u,0.s) +Chars 59495 - 59511 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) +Chars 59517 - 59545 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) +Chars 59560 - 59561 [+] 0. secs (0.u,0.s) +Chars 59562 - 59574 [constructor.] 0. secs (0.u,0.s) +Chars 59580 - 59586 [intro.] 0. secs (0.u,0.s) +Chars 59592 - 59608 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) +Chars 59613 - 59641 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) +Chars 59657 - 59658 [+] 0. secs (0.u,0.s) +Chars 59659 - 59680 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 59686 - 59694 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 59700 - 59705 [taul.] 0. secs (0.u,0.s) +Chars 59711 - 59733 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 59751 - 59752 [+] 0. secs (0.u,0.s) +Chars 59753 - 59786 [setoid_rewrite~observe_bind~at~2.] 0.016 secs (0.016u,0.s) +Chars 59792 - 59800 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 59806 - 59811 [taur.] 0. secs (0.u,0.s) +Chars 59817 - 59839 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 59841 - 59845 [Qed.] 0.006 secs (0.006u,0.s) +Chars 59848 - 60040 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) +Chars 60041 - 60047 [Proof.] 0. secs (0.u,0.s) +Chars 60052 - 60064 [unfold~eutt.] 0. secs (0.u,0.s) +Chars 60065 - 60095 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 60098 - 60102 [Qed.] 0. secs (0.u,0.s) +Chars 60105 - 60339 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) +Chars 60340 - 60346 [Proof.] 0. secs (0.u,0.s) +Chars 60351 - 60382 [eapply~eqit_bind_chain;~intros.] 0. secs (0.u,0.s) +Chars 60388 - 60433 [all:~now~do~2~step;~[~apply~EQ...] 0.018 secs (0.018u,0.s) +Chars 60434 - 60438 [Qed.] 0.001 secs (0.001u,0.s) +Chars 60442 - 60453 [End~eqit_h.] 0. secs (0.u,0.s) +Chars 60455 - 60498 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 60500 - 60543 [Ltac~etau~:=~constructor;~eaut...] 0. secs (0.u,0.s) +Chars 60545 - 60596 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) +Chars 60598 - 60653 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) +Chars 60658 - 60734 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) +Chars 60735 - 60741 [Proof.] 0. secs (0.u,0.s) +Chars 60744 - 60759 [apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 60760 - 60764 [Qed.] 0. secs (0.u,0.s) +Chars 60766 - 60845 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) +Chars 60846 - 60852 [Proof.] 0. secs (0.u,0.s) +Chars 60855 - 60870 [apply~eqit_Tau.] 0. secs (0.u,0.s) +Chars 60871 - 60875 [Qed.] 0. secs (0.u,0.s) +Chars 60877 - 61139 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) +Chars 61140 - 61146 [Proof.] 0. secs (0.u,0.s) +Chars 61149 - 61156 [intros.] 0. secs (0.u,0.s) +Chars 61159 - 61189 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 61191 - 61195 [Qed.] 0. secs (0.u,0.s) +Chars 61197 - 61458 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) +Chars 61459 - 61465 [Proof.] 0. secs (0.u,0.s) +Chars 61468 - 61493 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) +Chars 61494 - 61498 [Qed.] 0. secs (0.u,0.s) +Chars 61501 - 61662 [#[global]~Instance~eqit_subst~...] 0. secs (0.u,0.s) +Chars 61663 - 61669 [Proof.] 0. secs (0.u,0.s) +Chars 61672 - 61706 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) +Chars 61709 - 61729 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 61730 - 61734 [Qed.] 0. secs (0.u,0.s) +Chars 61736 - 61895 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) +Chars 61896 - 61902 [Proof.] 0. secs (0.u,0.s) +Chars 61905 - 61939 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) +Chars 61942 - 61962 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 61963 - 61967 [Qed.] 0. secs (0.u,0.s) +Chars 61969 - 62216 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) +Chars 62217 - 62223 [Proof.] 0. secs (0.u,0.s) +Chars 62226 - 62251 [unfold~ITree.map;~intros.] 0. secs (0.u,0.s) +Chars 62254 - 62279 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) +Chars 62282 - 62314 [intros;~step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 62315 - 62319 [Qed.] 0.001 secs (0.001u,0.s) +Chars 62321 - 62478 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) +Chars 62479 - 62485 [Proof.] 0. secs (0.u,0.s) +Chars 62488 - 62520 [intros~!;~eapply~eqit_map;~eauto.] 0. secs (0.u,0.s) +Chars 62523 - 62543 [intros;~subst;~auto.] 0. secs (0.u,0.s) +Chars 62544 - 62548 [Qed.] 0. secs (0.u,0.s) +Chars 62550 - 62735 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) +Chars 62737 - 62743 [Proof.] 0. secs (0.u,0.s) +Chars 62747 - 62755 [intros~!.] 0. secs (0.u,0.s) +Chars 62759 - 62766 [unstep.] 0.001 secs (0.001u,0.s) +Chars 62767 - 62777 [rewrite~H.] 0. secs (0.u,0.s) +Chars 62778 - 62789 [rewrite~H0.] 0. secs (0.u,0.s) +Chars 62790 - 62799 [now~step.] 0.001 secs (0.001u,0.s) +Chars 62801 - 62805 [Qed.] 0.001 secs (0.001u,0.s) +Chars 62809 - 62927 [#[global]~Instance~trans_elem_...] 0.001 secs (0.001u,0.s) +Chars 62928 - 62934 [Proof.] 0. secs (0.u,0.s) +Chars 62937 - 62959 [apply~Transitive_elem.] 0. secs (0.u,0.s) +Chars 62960 - 62978 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 62980 - 62984 [Qed.] 0. secs (0.u,0.s) +Chars 63313 - 63471 [#[global]~Instance~elem_observ...] 0. secs (0.u,0.s) +Chars 63473 - 63479 [Proof.] 0. secs (0.u,0.s) +Chars 63483 - 63516 [intros~x~y~Hxy~x'~y'~Hx'y'~Helem.] 0. secs (0.u,0.s) +Chars 63519 - 63537 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) +Chars 63542 - 63582 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) +Chars 63585 - 63627 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) +Chars 63630 - 63658 [do~2~(etransitivity;~eauto).] 0.001 secs (0.001u,0.s) +Chars 63661 - 63665 [Qed.] 0.001 secs (0.001u,0.s) +Chars 63670 - 63759 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) +Chars 63760 - 63766 [Proof.] 0. secs (0.u,0.s) +Chars 63769 - 63785 [unfold~eq_itree.] 0. secs (0.u,0.s) +Chars 63786 - 63793 [intros.] 0. secs (0.u,0.s) +Chars 63879 - 63932 [rewrite~(itree_eta_~(ITree.bin...] 0.01 secs (0.01u,0.s) +Chars 63959 - 63968 [revert~s.] 0. secs (0.u,0.s) +Chars 63972 - 63991 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 63995 - 64002 [intros.] 0. secs (0.u,0.s) +Chars 64077 - 64123 [desobs~s~H;~cbn;~simpobs;~cons...] 0.001 secs (0.001u,0.s) +Chars 64151 - 64163 [reflexivity.] 0. secs (0.u,0.s) +Chars 64304 - 64338 [all:~eapply~elem_observing_pro...] 0.001 secs (0.001u,0.s) +Chars 64383 - 64403 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) +Chars 64457 - 64492 [all:~constructor;~ITree.fold_s...] 0. secs (0.u,0.s) +Chars 64495 - 64519 [all:~simpl;~reflexivity.] 0. secs (0.u,0.s) +Chars 64521 - 64525 [Qed.] 0.004 secs (0.004u,0.s) +Chars 64528 - 64650 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) +Chars 64651 - 64657 [Proof.] 0. secs (0.u,0.s) +Chars 64660 - 64668 [intro~H.] 0. secs (0.u,0.s) +Chars 64669 - 64700 [rewrite~<-~(bind_ret_r~u)~~at~2.] 0. secs (0.u,0.s) +Chars 64701 - 64717 [apply~eqit_bind.] 0. secs (0.u,0.s) +Chars 64720 - 64721 [-] 0. secs (0.u,0.s) +Chars 64722 - 64734 [reflexivity.] 0. secs (0.u,0.s) +Chars 64737 - 64738 [-] 0. secs (0.u,0.s) +Chars 64739 - 64743 [hnf.] 0. secs (0.u,0.s) +Chars 64744 - 64751 [intros.] 0. secs (0.u,0.s) +Chars 64752 - 64767 [apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 64768 - 64773 [auto.] 0. secs (0.u,0.s) +Chars 64774 - 64778 [Qed.] 0. secs (0.u,0.s) +Chars 64780 - 64943 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) +Chars 64946 - 65123 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) +Chars 65124 - 65130 [Proof.] 0. secs (0.u,0.s) +Chars 65133 - 65149 [unfold~eq_itree.] 0. secs (0.u,0.s) +Chars 65150 - 65157 [intros.] 0. secs (0.u,0.s) +Chars 65161 - 65272 [lazymatch~goal~with~|~|-~_~(IT...] 0.002 secs (0.002u,0.s) +Chars 65275 - 65352 [lazymatch~goal~with~|~|-~_~?t0...] 0.001 secs (0.001u,0.s) +Chars 65355 - 65368 [revert~s~k~h.] 0. secs (0.u,0.s) +Chars 65372 - 65391 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) +Chars 65394 - 65401 [intros.] 0. secs (0.u,0.s) +Chars 65404 - 65429 [desobs~s~H;~cbn;~simpobs.] 0.002 secs (0.002u,0.s) +Chars 65433 - 65441 [1:~step.] 0.002 secs (0.002u,0.s) +Chars 65442 - 65454 [reflexivity.] 0. secs (0.u,0.s) +Chars 65458 - 65513 [all:~constructor;~intros;~eapp...] 0.001 secs (0.001u,0.s) +Chars 65516 - 65536 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) +Chars 65539 - 65556 [all:~constructor.] 0. secs (0.u,0.s) +Chars 65560 - 65576 [all:~fold_subst.] 0.001 secs (0.001u,0.s) +Chars 65580 - 65613 [all:~repeat~rewrite~observe_bind.] 0.003 secs (0.003u,0.s) +Chars 65616 - 65633 [all:~reflexivity.] 0. secs (0.u,0.s) +Chars 65634 - 65638 [Qed.] 0.007 secs (0.007u,0.s) +Chars 65641 - 65783 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) +Chars 65784 - 65790 [Proof.] 0. secs (0.u,0.s) +Chars 65793 - 65810 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 65811 - 65818 [intros.] 0. secs (0.u,0.s) +Chars 65819 - 65837 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 65838 - 65864 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 65865 - 65877 [reflexivity.] 0. secs (0.u,0.s) +Chars 65878 - 65882 [Qed.] 0.001 secs (0.001u,0.s) +Chars 65884 - 66036 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) +Chars 66037 - 66043 [Proof.] 0. secs (0.u,0.s) +Chars 66046 - 66063 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 66064 - 66071 [intros.] 0. secs (0.u,0.s) +Chars 66072 - 66090 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 66091 - 66117 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) +Chars 66118 - 66130 [reflexivity.] 0. secs (0.u,0.s) +Chars 66131 - 66135 [Qed.] 0. secs (0.u,0.s) +Chars 66137 - 66290 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) +Chars 66291 - 66297 [Proof.] 0. secs (0.u,0.s) +Chars 66300 - 66307 [intros.] 0. secs (0.u,0.s) +Chars 66308 - 66325 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 66326 - 66342 [apply~bind_bind.] 0. secs (0.u,0.s) +Chars 66343 - 66347 [Qed.] 0. secs (0.u,0.s) +Chars 66349 - 66439 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 66440 - 66446 [Proof.] 0. secs (0.u,0.s) +Chars 66449 - 66456 [intros.] 0. secs (0.u,0.s) +Chars 66457 - 66474 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 66477 - 66509 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 66510 - 66514 [Qed.] 0. secs (0.u,0.s) +Chars 66516 - 66624 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) +Chars 66625 - 66631 [Proof.] 0. secs (0.u,0.s) +Chars 66634 - 66641 [intros.] 0. secs (0.u,0.s) +Chars 66644 - 66661 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 66664 - 66694 [rewrite~bind_tau;~reflexivity.] 0.002 secs (0.002u,0.s) +Chars 66695 - 66699 [Qed.] 0. secs (0.u,0.s) +Chars 66701 - 66744 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 66745 - 66788 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) +Chars 66789 - 66830 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) +Chars 66831 - 66872 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) +Chars 66873 - 66914 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) +Chars 66915 - 66955 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) +Chars 66956 - 66996 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) +Chars 66997 - 67039 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) +Chars 67060 - 67151 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) +Chars 67153 - 67245 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) +Chars 67362 - 67437 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) +Chars 67509 - 67587 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) +Chars 67650 - 67704 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) +Chars 67706 - 67804 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) +Chars 67806 - 67905 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) +Chars 67907 - 68002 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) +Chars 68004 - 68102 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) +Chars 68104 - 68173 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) +Chars 68175 - 68436 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 68437 - 68443 [Proof.] 0. secs (0.u,0.s) +Chars 68446 - 68453 [intros.] 0. secs (0.u,0.s) +Chars 68456 - 68466 [step~in~H.] 0. secs (0.u,0.s) +Chars 68469 - 68514 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) +Chars 68517 - 68542 [remember~(Ret~b)~as~retb.] 0. secs (0.u,0.s) +Chars 68546 - 68576 [remember~(observe~retb)~as~tr.] 0. secs (0.u,0.s) +Chars 68579 - 68620 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) +Chars 68623 - 68679 [hinduction~H~before~RR;~intros...] 0.001 secs (0.001u,0.s) +Chars 68682 - 68683 [-] 0. secs (0.u,0.s) +Chars 68684 - 68698 [intros;~subst.] 0. secs (0.u,0.s) +Chars 68703 - 68753 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 68758 - 68806 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 68811 - 68820 [exists~r.] 0. secs (0.u,0.s) +Chars 68821 - 68827 [split.] 0. secs (0.u,0.s) +Chars 68832 - 68833 [*] 0. secs (0.u,0.s) +Chars 68834 - 68857 [rewrite~itree_eta,~Ema.] 0.006 secs (0.006u,0.s) +Chars 68858 - 68870 [reflexivity.] 0. secs (0.u,0.s) +Chars 68875 - 68876 [*] 0. secs (0.u,0.s) +Chars 68877 - 68896 [rewrite~itree_eta_.] 0.006 secs (0.006u,0.s) +Chars 68897 - 68913 [unfold~_observe.] 0. secs (0.u,0.s) +Chars 68914 - 68932 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) +Chars 68933 - 68943 [inv~Heqtr.] 0.001 secs (0.001u,0.s) +Chars 68949 - 68973 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 68976 - 68977 [-] 0. secs (0.u,0.s) +Chars 68978 - 68985 [intros.] 0. secs (0.u,0.s) +Chars 68986 - 68992 [subst.] 0. secs (0.u,0.s) +Chars 68997 - 69047 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 69052 - 69100 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 69105 - 69106 [+] 0. secs (0.u,0.s) +Chars 69107 - 69116 [exists~r.] 0. secs (0.u,0.s) +Chars 69117 - 69123 [split.] 0. secs (0.u,0.s) +Chars 69130 - 69131 [*] 0. secs (0.u,0.s) +Chars 69132 - 69155 [rewrite~itree_eta,~Ema.] 0.006 secs (0.006u,0.s) +Chars 69156 - 69168 [reflexivity.] 0. secs (0.u,0.s) +Chars 69175 - 69176 [*] 0. secs (0.u,0.s) +Chars 69177 - 69182 [step.] 0.001 secs (0.001u,0.s) +Chars 69183 - 69220 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) +Chars 69221 - 69239 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) +Chars 69240 - 69258 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 69263 - 69264 [+] 0. secs (0.u,0.s) +Chars 69265 - 69276 [inv~Heqotl.] 0.004 secs (0.004u,0.s) +Chars 69284 - 69309 [edestruct~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) +Chars 69310 - 69319 [exists~x.] 0. secs (0.u,0.s) +Chars 69327 - 69339 [destruct~H0.] 0. secs (0.u,0.s) +Chars 69347 - 69360 [split;~eauto.] 0. secs (0.u,0.s) +Chars 69367 - 69385 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 69386 - 69391 [taul.] 0. secs (0.u,0.s) +Chars 69399 - 69414 [now~step~in~H0.] 0. secs (0.u,0.s) +Chars 69416 - 69420 [Qed.] 0.006 secs (0.006u,0.s) +Chars 69422 - 69585 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) +Chars 69586 - 69592 [Proof.] 0. secs (0.u,0.s) +Chars 69595 - 69633 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) +Chars 69634 - 69638 [Qed.] 0. secs (0.u,0.s) +Chars 69640 - 69806 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) +Chars 69807 - 69813 [Proof.] 0. secs (0.u,0.s) +Chars 69816 - 69854 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) +Chars 69855 - 69859 [Qed.] 0. secs (0.u,0.s) +Chars 69861 - 70129 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) +Chars 70131 - 70571 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) +Chars 70572 - 70578 [Proof.] 0. secs (0.u,0.s) +Chars 70581 - 70588 [intros.] 0. secs (0.u,0.s) +Chars 70589 - 70599 [step~in~H.] 0. secs (0.u,0.s) +Chars 70603 - 70648 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) +Chars 70651 - 70679 [remember~(Vis~e~kxc)~as~vis.] 0. secs (0.u,0.s) +Chars 70682 - 70711 [remember~(observe~vis)~as~tr.] 0. secs (0.u,0.s) +Chars 70715 - 70758 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) +Chars 70761 - 70814 [induction~H;~try~(solve~[~intr...] 0.002 secs (0.002u,0.s) +Chars 70817 - 70818 [-] 0. secs (0.u,0.s) +Chars 70819 - 70826 [intros.] 0. secs (0.u,0.s) +Chars 70827 - 70875 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 70880 - 70928 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 70933 - 70934 [+] 0. secs (0.u,0.s) +Chars 70935 - 70941 [right.] 0. secs (0.u,0.s) +Chars 70942 - 70951 [exists~r.] 0. secs (0.u,0.s) +Chars 70952 - 70958 [split.] 0. secs (0.u,0.s) +Chars 70965 - 70966 [*] 0. secs (0.u,0.s) +Chars 70967 - 70986 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 70987 - 70999 [constructor.] 0. secs (0.u,0.s) +Chars 71000 - 71005 [auto.] 0. secs (0.u,0.s) +Chars 71012 - 71013 [*] 0. secs (0.u,0.s) +Chars 71014 - 71058 [step;~unfold~observe~at~1;~unf...] 0.001 secs (0.001u,0.s) +Chars 71059 - 71076 [rewrite~<-~Heqtl.] 0. secs (0.u,0.s) +Chars 71085 - 71093 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 71094 - 71112 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 71117 - 71118 [+] 0. secs (0.u,0.s) +Chars 71119 - 71124 [left.] 0. secs (0.u,0.s) +Chars 71131 - 71149 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) +Chars 71157 - 71174 [revert~e0~Heqvis.] 0. secs (0.u,0.s) +Chars 71175 - 71195 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) +Chars 71196 - 71214 [inv_eq_VisF~Heqtl.] 0.002 secs (0.002u,0.s) +Chars 71215 - 71222 [intros.] 0. secs (0.u,0.s) +Chars 71229 - 71240 [inv~Heqvis.] 0.001 secs (0.001u,0.s) +Chars 71248 - 71261 [cbn~in~Heqtr.] 0. secs (0.u,0.s) +Chars 71269 - 71287 [inv_eq_VisF~Heqtr.] 0.002 secs (0.002u,0.s) +Chars 71294 - 71303 [exists~k.] 0. secs (0.u,0.s) +Chars 71304 - 71310 [split.] 0. secs (0.u,0.s) +Chars 71317 - 71318 [*] 0. secs (0.u,0.s) +Chars 71319 - 71338 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) +Chars 71339 - 71351 [constructor.] 0. secs (0.u,0.s) +Chars 71353 - 71365 [reflexivity.] 0. secs (0.u,0.s) +Chars 71372 - 71373 [*] 0. secs (0.u,0.s) +Chars 71374 - 71379 [auto.] 0. secs (0.u,0.s) +Chars 71382 - 71383 [-] 0. secs (0.u,0.s) +Chars 71384 - 71391 [intros.] 0. secs (0.u,0.s) +Chars 71392 - 71398 [subst.] 0. secs (0.u,0.s) +Chars 71403 - 71451 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 71456 - 71505 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 71510 - 71511 [+] 0. secs (0.u,0.s) +Chars 71512 - 71535 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 71542 - 71543 [*] 0. secs (0.u,0.s) +Chars 71544 - 71580 [rewrite~itree_eta,~Ema;~reflex...] 0.008 secs (0.008u,0.s) +Chars 71587 - 71588 [*] 0. secs (0.u,0.s) +Chars 71589 - 71594 [step.] 0.001 secs (0.001u,0.s) +Chars 71596 - 71651 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) +Chars 71652 - 71670 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 71675 - 71676 [+] 0. secs (0.u,0.s) +Chars 71677 - 71687 [inv~Heqtl.] 0.005 secs (0.005u,0.s) +Chars 71688 - 71743 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 71750 - 71815 [destruct~IHeqitF~as~[(k0,~(?,~...] 0. secs (0.u,0.s) +Chars 71822 - 71823 [*] 0. secs (0.u,0.s) +Chars 71824 - 71834 [exists~k0.] 0. secs (0.u,0.s) +Chars 71835 - 71847 [split;~auto.] 0. secs (0.u,0.s) +Chars 71856 - 71909 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 71917 - 71918 [*] 0. secs (0.u,0.s) +Chars 71919 - 71928 [exists~a.] 0. secs (0.u,0.s) +Chars 71929 - 71941 [split;~auto.] 0. secs (0.u,0.s) +Chars 71950 - 72003 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 72004 - 72008 [Qed.] 0.011 secs (0.011u,0.s) +Chars 72010 - 72346 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) +Chars 72347 - 72353 [Proof.] 0. secs (0.u,0.s) +Chars 72356 - 72363 [intros.] 0. secs (0.u,0.s) +Chars 72364 - 72388 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) +Chars 72389 - 72394 [auto.] 0. secs (0.u,0.s) +Chars 72395 - 72399 [Qed.] 0. secs (0.u,0.s) +Chars 72401 - 72740 [Lemma~eqitree_inv_bind_vis~:~~...] 0. secs (0.u,0.s) +Chars 72741 - 72747 [Proof.] 0. secs (0.u,0.s) +Chars 72750 - 72757 [intros.] 0. secs (0.u,0.s) +Chars 72758 - 72782 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) +Chars 72783 - 72788 [auto.] 0. secs (0.u,0.s) +Chars 72789 - 72793 [Qed.] 0. secs (0.u,0.s) +Chars 72795 - 73143 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) +Chars 73144 - 73150 [Proof.] 0. secs (0.u,0.s) +Chars 73153 - 73160 [intros.] 0. secs (0.u,0.s) +Chars 73161 - 73171 [step~in~H.] 0. secs (0.u,0.s) +Chars 73175 - 73220 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) +Chars 73223 - 73248 [remember~(Tau~tc)~as~tau.] 0. secs (0.u,0.s) +Chars 73251 - 73280 [remember~(observe~tau)~as~tr.] 0. secs (0.u,0.s) +Chars 73283 - 73323 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) +Chars 73326 - 73379 [induction~H;~intros;~try~(solv...] 0.002 secs (0.002u,0.s) +Chars 73382 - 73383 [-] 0. secs (0.u,0.s) +Chars 73384 - 73394 [inv~Heqtr.] 0.002 secs (0.002u,0.s) +Chars 73395 - 73443 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 73448 - 73496 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 73501 - 73502 [+] 0. secs (0.u,0.s) +Chars 73503 - 73526 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 73533 - 73534 [*] 0. secs (0.u,0.s) +Chars 73535 - 73578 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 73585 - 73586 [*] 0.001 secs (0.001u,0.s) +Chars 73587 - 73667 [step;~icbn;~inv~H0;~unfold~obs...] 0.002 secs (0.002u,0.s) +Chars 73672 - 73673 [+] 0. secs (0.u,0.s) +Chars 73674 - 73696 [left;~exists~t;~split.] 0. secs (0.u,0.s) +Chars 73703 - 73704 [*] 0. secs (0.u,0.s) +Chars 73705 - 73761 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 73768 - 73769 [*] 0. secs (0.u,0.s) +Chars 73770 - 73780 [inv~Heqtl.] 0.001 secs (0.001u,0.s) +Chars 73781 - 73788 [inv~H0.] 0. secs (0.u,0.s) +Chars 73792 - 73793 [-] 0. secs (0.u,0.s) +Chars 73794 - 73800 [subst.] 0. secs (0.u,0.s) +Chars 73805 - 73853 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) +Chars 73858 - 73906 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) +Chars 73911 - 73912 [+] 0. secs (0.u,0.s) +Chars 73913 - 73936 [right;~exists~r;~split.] 0. secs (0.u,0.s) +Chars 73943 - 73944 [*] 0. secs (0.u,0.s) +Chars 73945 - 73988 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) +Chars 73995 - 73996 [*] 0. secs (0.u,0.s) +Chars 73997 - 74064 [step;~icbn;~unfold~observe~at~...] 0.001 secs (0.001u,0.s) +Chars 74065 - 74085 [constructor~4;~auto.] 0. secs (0.u,0.s) +Chars 74090 - 74091 [+] 0. secs (0.u,0.s) +Chars 74092 - 74102 [inv~Heqtl.] 0.005 secs (0.005u,0.s) +Chars 74103 - 74156 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) +Chars 74163 - 74228 [destruct~IHeqitF~as~[(t0,~(?,~...] 0. secs (0.u,0.s) +Chars 74235 - 74236 [*] 0. secs (0.u,0.s) +Chars 74237 - 74247 [exists~t0.] 0. secs (0.u,0.s) +Chars 74248 - 74260 [split;~auto.] 0. secs (0.u,0.s) +Chars 74269 - 74324 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 74331 - 74332 [*] 0. secs (0.u,0.s) +Chars 74333 - 74342 [exists~a.] 0. secs (0.u,0.s) +Chars 74343 - 74355 [split;~auto.] 0. secs (0.u,0.s) +Chars 74364 - 74417 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) +Chars 74420 - 74421 [-] 0. secs (0.u,0.s) +Chars 74422 - 74432 [inv~Heqtr.] 0.005 secs (0.005u,0.s) +Chars 74437 - 74460 [left;~exists~ma;~split.] 0. secs (0.u,0.s) +Chars 74465 - 74466 [+] 0. secs (0.u,0.s) +Chars 74467 - 74491 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) +Chars 74497 - 74498 [+] 0. secs (0.u,0.s) +Chars 74499 - 74524 [inv~H1;~step;~assumption.] 0.004 secs (0.004u,0.s) +Chars 74525 - 74529 [Qed.] 0.013 secs (0.013u,0.s) +Chars 74531 - 74796 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) +Chars 74797 - 74803 [Proof.] 0. secs (0.u,0.s) +Chars 74806 - 74813 [intros.] 0. secs (0.u,0.s) +Chars 74814 - 74838 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) +Chars 74839 - 74844 [auto.] 0. secs (0.u,0.s) +Chars 74845 - 74849 [Qed.] 0. secs (0.u,0.s) +Chars 74851 - 75119 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) +Chars 75120 - 75126 [Proof.] 0. secs (0.u,0.s) +Chars 75129 - 75136 [intros.] 0. secs (0.u,0.s) +Chars 75137 - 75161 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) +Chars 75162 - 75167 [auto.] 0. secs (0.u,0.s) +Chars 75168 - 75172 [Qed.] 0. secs (0.u,0.s) +Chars 75174 - 75296 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 75297 - 75303 [Proof.] 0. secs (0.u,0.s) +Chars 75306 - 75313 [intros.] 0. secs (0.u,0.s) +Chars 75316 - 75326 [step~in~H.] 0. secs (0.u,0.s) +Chars 75329 - 75361 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) +Chars 75364 - 75402 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 75405 - 75423 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 75426 - 75488 [induction~H;~intros~EQ1~EQ2;~t...] 0.004 secs (0.004u,0.s) +Chars 75491 - 75492 [-] 0. secs (0.u,0.s) +Chars 75493 - 75513 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 75518 - 75526 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 75527 - 75531 [Qed.] 0.002 secs (0.001u,0.s) +Chars 75533 - 75655 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 75656 - 75662 [Proof.] 0. secs (0.u,0.s) +Chars 75665 - 75672 [intros.] 0. secs (0.u,0.s) +Chars 75675 - 75685 [step~in~H.] 0. secs (0.u,0.s) +Chars 75688 - 75720 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) +Chars 75723 - 75761 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 75764 - 75782 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 75785 - 75847 [induction~H;~intros~EQ1~EQ2;~t...] 0.005 secs (0.005u,0.s) +Chars 75850 - 75851 [-] 0. secs (0.u,0.s) +Chars 75852 - 75872 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 75877 - 75885 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 75886 - 75890 [Qed.] 0.002 secs (0.002u,0.s) +Chars 75892 - 76042 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 76043 - 76049 [Proof.] 0. secs (0.u,0.s) +Chars 76052 - 76059 [intros.] 0. secs (0.u,0.s) +Chars 76062 - 76072 [step~in~H.] 0. secs (0.u,0.s) +Chars 76075 - 76109 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) +Chars 76112 - 76150 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 76153 - 76171 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 76174 - 76236 [induction~H;~intros~EQ1~EQ2;~t...] 0.008 secs (0.007u,0.s) +Chars 76239 - 76240 [-] 0. secs (0.u,0.s) +Chars 76241 - 76261 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 76266 - 76274 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 76275 - 76279 [Qed.] 0.002 secs (0.002u,0.s) +Chars 76281 - 76431 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) +Chars 76432 - 76438 [Proof.] 0. secs (0.u,0.s) +Chars 76441 - 76448 [intros.] 0. secs (0.u,0.s) +Chars 76451 - 76461 [step~in~H.] 0. secs (0.u,0.s) +Chars 76464 - 76498 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) +Chars 76501 - 76539 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) +Chars 76542 - 76560 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) +Chars 76563 - 76625 [induction~H;~intros~EQ1~EQ2;~t...] 0.007 secs (0.007u,0.s) +Chars 76628 - 76629 [-] 0. secs (0.u,0.s) +Chars 76630 - 76650 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) +Chars 76655 - 76663 [inv~EQ2.] 0. secs (0.u,0.s) +Chars 76664 - 76668 [Qed.] 0.002 secs (0.002u,0.s) +Chars 76669 - 76687 [Section~eqit_elem.] 0. secs (0.u,0.s) +Chars 77994 - 78068 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) +Chars 78070 - 78129 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) +Chars 78167 - 78284 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) +Chars 78285 - 78291 [Proof.] 0. secs (0.u,0.s) +Chars 78294 - 78325 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 78326 - 78330 [Qed.] 0. secs (0.u,0.s) +Chars 78332 - 78449 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 78450 - 78456 [Proof.] 0. secs (0.u,0.s) +Chars 78457 - 78475 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 78476 - 78480 [Qed.] 0. secs (0.u,0.s) +Chars 78482 - 78599 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) +Chars 78600 - 78606 [Proof.] 0. secs (0.u,0.s) +Chars 78607 - 78625 [typeclasses~eauto.] 0. secs (0.u,0.s) +Chars 78626 - 78630 [Qed.] 0. secs (0.u,0.s) +Chars 78661 - 78896 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.001 secs (0.001u,0.s) +Chars 78897 - 78903 [Proof.] 0. secs (0.u,0.s) +Chars 78906 - 78913 [intros.] 0. secs (0.u,0.s) +Chars 78914 - 78944 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) +Chars 78945 - 78959 [now~do~2~step.] 0.003 secs (0.003u,0.s) +Chars 78961 - 78965 [Qed.] 0. secs (0.u,0.s) +Chars 79152 - 79166 [End~eqit_elem.] 0. secs (0.u,0.s) +Chars 79169 - 79188 [Section~eutt_facts.] 0. secs (0.u,0.s) +Chars 80583 - 80696 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 80697 - 80703 [Proof.] 0. secs (0.u,0.s) +Chars 80706 - 80714 [intros~!.] 0. secs (0.u,0.s) +Chars 80715 - 80733 [now~rewrite~H,~H0.] 0.015 secs (0.015u,0.s) +Chars 80734 - 80738 [Qed.] 0. secs (0.u,0.s) +Chars 80740 - 80877 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 80878 - 80884 [Proof.] 0. secs (0.u,0.s) +Chars 80887 - 80895 [intros~!.] 0. secs (0.u,0.s) +Chars 80896 - 80914 [now~rewrite~H,~H0.] 0.001 secs (0.001u,0.s) +Chars 80915 - 80919 [Qed.] 0. secs (0.u,0.s) +Chars 80921 - 81058 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) +Chars 81059 - 81065 [Proof.] 0. secs (0.u,0.s) +Chars 81068 - 81076 [intros~!.] 0. secs (0.u,0.s) +Chars 81077 - 81095 [now~rewrite~H,~H0.] 0.019 secs (0.018u,0.s) +Chars 81096 - 81100 [Qed.] 0.001 secs (0.u,0.s) +Chars 81254 - 81440 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) +Chars 81441 - 81447 [Proof.] 0. secs (0.u,0.s) +Chars 81450 - 81457 [intros.] 0. secs (0.u,0.s) +Chars 81460 - 81520 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 81523 - 81546 [intros~?~?~->;~apply~H.] 0. secs (0.u,0.s) +Chars 81547 - 81551 [Qed.] 0. secs (0.u,0.s) +Chars 81597 - 81763 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) +Chars 81764 - 81770 [Proof.] 0. secs (0.u,0.s) +Chars 81773 - 81786 [intros~->~Hk.] 0.001 secs (0.001u,0.s) +Chars 81787 - 81810 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) +Chars 81811 - 81815 [Qed.] 0. secs (0.u,0.s) +Chars 81910 - 82032 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) +Chars 82033 - 82039 [Proof.] 0. secs (0.u,0.s) +Chars 82042 - 82065 [intros;~apply~eqit_Ret.] 0. secs (0.u,0.s) +Chars 82066 - 82070 [Qed.] 0. secs (0.u,0.s) +Chars 82234 - 82261 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) +Chars 82263 - 82413 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) +Chars 82414 - 82420 [Proof.] 0. secs (0.u,0.s) +Chars 82423 - 82442 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 82443 - 82459 [intros~*~EQ~EQ'.] 0. secs (0.u,0.s) +Chars 82462 - 82486 [step~in~EQ;~step~in~EQ'.] 0. secs (0.u,0.s) +Chars 82490 - 82515 [genobs~t~ot;~genobs~s~os.] 0.001 secs (0.001u,0.s) +Chars 82518 - 82565 [hinduction~EQ~before~CIH;~subs...] 0.001 secs (0.001u,0.s) +Chars 82568 - 82569 [-] 0. secs (0.u,0.s) +Chars 82570 - 82578 [inv~EQ'.] 0.006 secs (0.006u,0.s) +Chars 82579 - 82584 [eret.] 0. secs (0.u,0.s) +Chars 82585 - 82601 [now~constructor.] 0. secs (0.u,0.s) +Chars 82605 - 82606 [-] 0. secs (0.u,0.s) +Chars 82607 - 82612 [taus.] 0. secs (0.u,0.s) +Chars 82613 - 82631 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 82632 - 82651 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) +Chars 82652 - 82661 [now~step.] 0.001 secs (0.001u,0.s) +Chars 82666 - 82667 [-] 0. secs (0.u,0.s) +Chars 82668 - 82680 [constructor.] 0. secs (0.u,0.s) +Chars 82681 - 82689 [intro~v.] 0. secs (0.u,0.s) +Chars 82690 - 82709 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 82714 - 82732 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) +Chars 82738 - 82778 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) +Chars 82781 - 82782 [-] 0. secs (0.u,0.s) +Chars 82783 - 82788 [taul.] 0. secs (0.u,0.s) +Chars 82789 - 82808 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 82809 - 82815 [subst.] 0. secs (0.u,0.s) +Chars 82816 - 82823 [unstep.] 0.002 secs (0.002u,0.s) +Chars 82824 - 82846 [eapply~eqit_inv_Tau_l.] 0. secs (0.u,0.s) +Chars 82852 - 82861 [now~step.] 0.001 secs (0.001u,0.s) +Chars 82866 - 82867 [-] 0. secs (0.u,0.s) +Chars 82868 - 82873 [taur.] 0. secs (0.u,0.s) +Chars 82874 - 82893 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 82894 - 82900 [subst.] 0. secs (0.u,0.s) +Chars 82901 - 82908 [unstep.] 0.002 secs (0.002u,0.s) +Chars 82909 - 82931 [eapply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) +Chars 82937 - 82946 [now~step.] 0.001 secs (0.001u,0.s) +Chars 82949 - 82953 [Qed.] 0.01 secs (0.01u,0.s) +Chars 82955 - 83081 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 83083 - 83089 [Proof.] 0. secs (0.u,0.s) +Chars 83092 - 83099 [intros.] 0. secs (0.u,0.s) +Chars 83102 - 83133 [eapply~(eqit_mono~RS~_);~eauto.] 0.001 secs (0.001u,0.s) +Chars 83134 - 83138 [Qed.] 0. secs (0.u,0.s) +Chars 83140 - 83267 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) +Chars 83269 - 83275 [Proof.] 0. secs (0.u,0.s) +Chars 83278 - 83285 [intros.] 0. secs (0.u,0.s) +Chars 83288 - 83320 [eapply~(eqit_mono~RS'~_);~eauto.] 0.001 secs (0.001u,0.s) +Chars 83321 - 83325 [Qed.] 0. secs (0.u,0.s) +Chars 83327 - 83486 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) +Chars 83488 - 83494 [Proof.] 0. secs (0.u,0.s) +Chars 83497 - 83570 [intros~*~EQ;~split;~intros~EUT...] 0.003 secs (0.003u,0.s) +Chars 83573 - 83587 [all:~apply~EQ.] 0. secs (0.u,0.s) +Chars 83588 - 83592 [Qed.] 0. secs (0.u,0.s) +Chars 83670 - 83849 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) +Chars 83850 - 83856 [Proof.] 0. secs (0.u,0.s) +Chars 83859 - 83874 [intros~!;~subst.] 0. secs (0.u,0.s) +Chars 83877 - 83917 [unfold~eq_itree;~rewrite~H;~re...] 0. secs (0.u,0.s) +Chars 83918 - 83922 [Qed.] 0. secs (0.u,0.s) +Chars 83924 - 84084 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) +Chars 84085 - 84091 [Proof.] 0. secs (0.u,0.s) +Chars 84094 - 84109 [intros~!;~subst.] 0. secs (0.u,0.s) +Chars 84112 - 84148 [unfold~eutt;~rewrite~H;~reflex...] 0. secs (0.u,0.s) +Chars 84149 - 84153 [Qed.] 0. secs (0.u,0.s) +Chars 84262 - 84393 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) +Chars 84394 - 84400 [Proof.] 0. secs (0.u,0.s) +Chars 84403 - 84425 [intros~Hrel;~revert~t.] 0. secs (0.u,0.s) +Chars 84426 - 84461 [icoinduction~c~CIH;~intros~t~H...] 0.001 secs (0.001u,0.s) +Chars 84464 - 84478 [step~in~Heutt.] 0. secs (0.u,0.s) +Chars 84481 - 84512 [remember~t~as~t'~in~Heutt~at~2.] 0. secs (0.u,0.s) +Chars 84513 - 84549 [assert~(Ht'~:~t'~≈~t)~by~now~s...] 0. secs (0.u,0.s) +Chars 84550 - 84562 [clear~Heqt'.] 0. secs (0.u,0.s) +Chars 84565 - 84610 [rewrite~(itree_eta~t),~(itree_...] 0.028 secs (0.028u,0.s) +Chars 84613 - 84624 [revert~Ht'.] 0. secs (0.u,0.s) +Chars 84625 - 84662 [induction~Heutt;~clear~t;~intr...] 0. secs (0.u,0.s) +Chars 84665 - 84666 [-] 0. secs (0.u,0.s) +Chars 84667 - 84700 [apply~eutt_inv_Ret~in~Heq;~subst.] 0. secs (0.u,0.s) +Chars 84705 - 84723 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 84726 - 84727 [-] 0. secs (0.u,0.s) +Chars 84728 - 84754 [apply~eqit_inv_Tau~in~Heq.] 0. secs (0.u,0.s) +Chars 84759 - 84771 [constructor.] 0. secs (0.u,0.s) +Chars 84772 - 84783 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 84789 - 84813 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 84816 - 84817 [-] 0. secs (0.u,0.s) +Chars 84818 - 84830 [constructor.] 0. secs (0.u,0.s) +Chars 84831 - 84840 [intros~v.] 0. secs (0.u,0.s) +Chars 84841 - 84868 [eapply~eqit_inv_Vis~in~Heq.] 0. secs (0.u,0.s) +Chars 84873 - 84892 [specialize~(REL~v).] 0. secs (0.u,0.s) +Chars 84893 - 84904 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 84905 - 84929 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) +Chars 84932 - 84933 [-] 0. secs (0.u,0.s) +Chars 84934 - 84945 [taul;~taur.] 0. secs (0.u,0.s) +Chars 84946 - 84960 [apply~IHHeutt.] 0. secs (0.u,0.s) +Chars 84961 - 84987 [rewrite~<-~(itree_eta~t1).] 0. secs (0.u,0.s) +Chars 84995 - 85025 [now~rewrite~tau_euttge~in~Heq.] 0.017 secs (0.017u,0.s) +Chars 85029 - 85030 [-] 0. secs (0.u,0.s) +Chars 85031 - 85045 [apply~IHHeutt.] 0. secs (0.u,0.s) +Chars 85046 - 85069 [rewrite~<-~itree_eta.] 0. secs (0.u,0.s) +Chars 85077 - 85107 [now~rewrite~tau_euttge~in~Heq.] 0.011 secs (0.011u,0.s) +Chars 85109 - 85113 [Qed.] 0.004 secs (0.004u,0.s) +Chars 85115 - 85130 [End~eutt_facts.] 0. secs (0.u,0.s) +Chars 85179 - 85346 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 85348 - 85354 [Proof.] 0. secs (0.u,0.s) +Chars 85358 - 85366 [intros~!.] 0. secs (0.u,0.s) +Chars 85370 - 85375 [step.] 0.002 secs (0.002u,0.s) +Chars 85376 - 85386 [rewrite~H.] 0.006 secs (0.006u,0.s) +Chars 85387 - 85399 [reflexivity.] 0. secs (0.u,0.s) +Chars 85401 - 85405 [Qed.] 0.001 secs (0.001u,0.s) +Chars 85412 - 85547 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) +Chars 85549 - 85555 [Proof.] 0. secs (0.u,0.s) +Chars 85559 - 85598 [intros~!;~now~eapply~observing...] 0. secs (0.u,0.s) +Chars 85599 - 85603 [Qed.] 0. secs (0.u,0.s) +Chars 85606 - 85733 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) diff --git a/theories/Eq/Rutt.v.timing b/theories/Eq/Rutt.v.timing index e768af42..5f45765d 100644 --- a/theories/Eq/Rutt.v.timing +++ b/theories/Eq/Rutt.v.timing @@ -1,6 +1,6 @@ -Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.007 secs (0.004u,0.002s) -Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.006 secs (0.005u,0.001s) -Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.196 secs (0.171u,0.021s) +Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) +Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.134 secs (0.121u,0.012s) Chars 1082 - 1111 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1113 - 1127 [Section~RuttF.] 0. secs (0.u,0.s) Chars 1131 - 1162 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -9,47 +9,47 @@ Chars 1426 - 1485 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) Chars 1488 - 1558 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) Chars 1561 - 1583 [Arguments~REv~{A~B}.] 0. secs (0.u,0.s) Chars 1586 - 1609 [Arguments~RAns~{A~B}.] 0. secs (0.u,0.s) -Chars 1613 - 2457 [Inductive~ruttF~(RR~:~R1~->~R2...] 0.003 secs (0.002u,0.s) +Chars 1613 - 2457 [Inductive~ruttF~(RR~:~R1~->~R2...] 0.002 secs (0.002u,0.s) Chars 2460 - 2492 [Hint~Constructors~ruttF:~itree.] 0. secs (0.u,0.s) Chars 2496 - 2714 [Definition~rutt_~~~(sim~:~(R1~...] 0. secs (0.u,0.s) Chars 2718 - 2763 [Lemma~rutt_mono~:~Proper~(leq~...] 0. secs (0.u,0.s) Chars 2766 - 2772 [Proof.] 0. secs (0.u,0.s) -Chars 2777 - 2790 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2791 - 2809 [(unfold~rutt_~in~*).] 0. secs (0.u,0.s) -Chars 2810 - 2841 [(induction~H0;~eauto~with~itree).] 0.002 secs (0.002u,0.s) -Chars 2846 - 2871 [(constructor;~now~apply~H).] 0. secs (0.u,0.s) -Chars 2877 - 2921 [(constructor;~intros;~eauto;~n...] 0.001 secs (0.u,0.s) -Chars 2925 - 2929 [Qed.] 0.001 secs (0.u,0.s) +Chars 2777 - 2790 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2791 - 2809 [unfold~rutt_~in~*.] 0. secs (0.u,0.s) +Chars 2810 - 2841 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) +Chars 2846 - 2871 [constructor;~now~apply~H.] 0. secs (0.u,0.s) +Chars 2877 - 2921 [constructor;~intros;~eauto;~no...] 0. secs (0.u,0.s) +Chars 2925 - 2929 [Qed.] 0. secs (0.u,0.s) Chars 2933 - 3066 [Definition~rutt_mon~:~~~mon~((...] 0. secs (0.u,0.s) Chars 3071 - 3162 [Definition~rutt~:~(R1~->~R2~->...] 0. secs (0.u,0.s) Chars 3165 - 3190 [Hint~Unfold~rutt:~itree.] 0. secs (0.u,0.s) -Chars 3194 - 3494 [Lemma~ruttF_inv_VisF_r~{sim}~R...] 0.001 secs (0.001u,0.s) +Chars 3194 - 3494 [Lemma~ruttF_inv_VisF_r~{sim}~R...] 0. secs (0.u,0.s) Chars 3497 - 3503 [Proof.] 0. secs (0.u,0.s) -Chars 3508 - 3745 [(refine~~~(fun~H~=>~~~~match~~...] 0.001 secs (0.001u,0.s) +Chars 3508 - 3745 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) Chars 3750 - 3751 [-] 0. secs (0.u,0.s) -Chars 3752 - 3764 [(left;~eauto).] 0.001 secs (0.001u,0.s) +Chars 3752 - 3764 [left;~eauto.] 0. secs (0.u,0.s) Chars 3769 - 3770 [-] 0. secs (0.u,0.s) -Chars 3771 - 3790 [(destruct~i0;~eauto).] 0.001 secs (0.001u,0.s) +Chars 3771 - 3790 [destruct~i0;~eauto.] 0. secs (0.u,0.s) Chars 3793 - 3797 [Qed.] 0.001 secs (0.001u,0.s) Chars 3801 - 4007 [Lemma~ruttF_inv_VisF~{sim}~RR~...] 0. secs (0.u,0.s) Chars 4010 - 4016 [Proof.] 0. secs (0.u,0.s) -Chars 4021 - 4030 [(intros~H).] 0. secs (0.u,0.s) -Chars 4031 - 4055 [dependent~destruction~H.] 0.007 secs (0.005u,0.002s) +Chars 4021 - 4030 [intros~H.] 0. secs (0.u,0.s) +Chars 4031 - 4055 [dependent~destruction~H.] 0.005 secs (0.004u,0.001s) Chars 4056 - 4067 [assumption.] 0. secs (0.u,0.s) -Chars 4070 - 4074 [Qed.] 0.004 secs (0.003u,0.s) -Chars 4076 - 4086 [End~RuttF.] 0.001 secs (0.001u,0.s) +Chars 4070 - 4074 [Qed.] 0.022 secs (0.02u,0.001s) +Chars 4076 - 4086 [End~RuttF.] 0. secs (0.u,0.s) Chars 4121 - 4161 [#[local]~Ltac~runfold~:=~unfol...] 0. secs (0.u,0.s) Chars 4162 - 4209 [#[local]~Ltac~runfold_in~h~:=~...] 0. secs (0.u,0.s) Chars 4211 - 4261 [Ltac~rcbn~:=~cbn[rutt_mon~body...] 0. secs (0.u,0.s) Chars 4262 - 4327 [Ltac~rcbn_in~H~:=~cbn[rutt_mon...] 0. secs (0.u,0.s) Chars 4329 - 4379 [Tactic~Notation~"rcbn"~"in"~id...] 0. secs (0.u,0.s) Chars 4380 - 4462 [Tactic~Notation~"rcbn"~"in"~"*...] 0. secs (0.u,0.s) -Chars 4534 - 4581 [Tactic~Notation~"rstep"~:=~(ru...] 0. secs (0.u,0.s) +Chars 4534 - 4581 [Tactic~Notation~"rstep"~:=~run...] 0. secs (0.u,0.s) Chars 4582 - 4658 [Tactic~Notation~"rstep"~"in"~i...] 0. secs (0.u,0.s) Chars 4660 - 4811 [#[local]~Ltac~~refold~:=~~~rep...] 0. secs (0.u,0.s) Chars 4813 - 5006 [Ltac~~fold_rutt~:=~~~match~goa...] 0. secs (0.u,0.s) Chars 5007 - 5212 [Ltac~~fold_rutt_in~h~:=~~~matc...] 0. secs (0.u,0.s) -Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~(...] 0. secs (0.u,0.s) +Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~f...] 0. secs (0.u,0.s) Chars 5261 - 5332 [Tactic~Notation~"runstep"~"in"...] 0. secs (0.u,0.s) Chars 5334 - 5841 [Ltac~~to_rmon_core~:=~~~match~...] 0. secs (0.u,0.s) Chars 5843 - 6021 [Ltac~~to_rmon~:=~~~let~dummy~:...] 0. secs (0.u,0.s) @@ -60,82 +60,82 @@ Chars 6642 - 6678 [#[global]~Hint~Unfold~rutt_:~i...] 0. secs (0.u,0.s) Chars 6679 - 6718 [#[global]~Hint~Unfold~rutt_mon...] 0. secs (0.u,0.s) Chars 6719 - 6754 [#[global]~Hint~Unfold~rutt:~it...] 0. secs (0.u,0.s) Chars 6756 - 6786 [Section~ConstructionInversion.] 0. secs (0.u,0.s) -Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0.03 secs (0.025u,0.004s) +Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0. secs (0.u,0.s) Chars 6820 - 6844 [Variables~(R1~R2~:~Type).] 0. secs (0.u,0.s) Chars 6845 - 6898 [Variable~(REv~:~forall~T1~T2,~...] 0. secs (0.u,0.s) Chars 6899 - 6965 [Variable~(RAns~:~forall~T1~T2,...] 0. secs (0.u,0.s) Chars 6966 - 6998 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) Chars 7000 - 7112 [Lemma~rutt_Ret~r1~r2~:~~~RR~r1...] 0. secs (0.u,0.s) Chars 7113 - 7119 [Proof.] 0. secs (0.u,0.s) -Chars 7120 - 7127 [(intros).] 0. secs (0.u,0.s) -Chars 7128 - 7134 [rstep.] 0.001 secs (0.u,0.s) -Chars 7135 - 7153 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 7120 - 7127 [intros.] 0. secs (0.u,0.s) +Chars 7128 - 7134 [rstep.] 0. secs (0.u,0.s) +Chars 7135 - 7153 [constructor;~auto.] 0. secs (0.u,0.s) Chars 7154 - 7158 [Qed.] 0. secs (0.u,0.s) Chars 7160 - 7235 [Lemma~rutt_inv_Ret~r1~r2~:~rut...] 0. secs (0.u,0.s) Chars 7236 - 7242 [Proof.] 0. secs (0.u,0.s) -Chars 7245 - 7252 [(intros).] 0. secs (0.u,0.s) +Chars 7245 - 7252 [intros.] 0. secs (0.u,0.s) Chars 7253 - 7264 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 7265 - 7271 [(inv~H).] 0.001 secs (0.001u,0.s) +Chars 7265 - 7271 [inv~H.] 0.001 secs (0.001u,0.s) Chars 7272 - 7276 [Qed.] 0.001 secs (0.001u,0.s) Chars 7278 - 7377 [Lemma~rutt_inv_Ret_l~r1~t2~:~~...] 0. secs (0.u,0.s) Chars 7378 - 7384 [Proof.] 0. secs (0.u,0.s) -Chars 7387 - 7400 [(intros~Hrutt).] 0. secs (0.u,0.s) +Chars 7387 - 7400 [intros~Hrutt.] 0. secs (0.u,0.s) Chars 7401 - 7416 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 7417 - 7431 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7435 - 7465 [setoid_rewrite~(itree_eta~t2).] 0.004 secs (0.004u,0.s) -Chars 7466 - 7516 [(remember~(observe~(Ret~r1))~a...] 0. secs (0.u,0.s) -Chars 7521 - 7563 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) +Chars 7435 - 7465 [setoid_rewrite~(itree_eta~t2).] 0.003 secs (0.002u,0.s) +Chars 7466 - 7516 [remember~(observe~(Ret~r1))~as...] 0. secs (0.u,0.s) +Chars 7521 - 7563 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) Chars 7566 - 7567 [-] 0. secs (0.u,0.s) -Chars 7568 - 7592 [(inversion~Heqot1;~subst).] 0. secs (0.u,0.s) +Chars 7568 - 7592 [inversion~Heqot1;~subst.] 0. secs (0.u,0.s) Chars 7593 - 7603 [exists~r2.] 0. secs (0.u,0.s) -Chars 7604 - 7630 [(split;~[~reflexivity~|~auto~]).] 0. secs (0.u,0.s) +Chars 7604 - 7630 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) Chars 7633 - 7634 [-] 0. secs (0.u,0.s) -Chars 7635 - 7677 [(destruct~(IHHrutt~Heqot1)~as~...] 0. secs (0.u,0.s) -Chars 7678 - 7701 [(exists~r2;~split;~auto).] 0. secs (0.u,0.s) -Chars 7706 - 7733 [(rewrite~<-~itree_eta~in~H1).] 0.01 secs (0.01u,0.s) -Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.033 secs (0.033u,0.s) -Chars 7758 - 7762 [Qed.] 0.003 secs (0.003u,0.s) +Chars 7635 - 7677 [destruct~(IHHrutt~Heqot1)~as~[...] 0. secs (0.u,0.s) +Chars 7678 - 7701 [exists~r2;~split;~auto.] 0. secs (0.u,0.s) +Chars 7706 - 7733 [rewrite~<-~itree_eta~in~H1.] 0.033 secs (0.033u,0.s) +Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) +Chars 7758 - 7762 [Qed.] 0.002 secs (0.002u,0.s) Chars 7764 - 7863 [Lemma~rutt_inv_Ret_r~t1~r2~:~~...] 0. secs (0.u,0.s) Chars 7864 - 7870 [Proof.] 0. secs (0.u,0.s) -Chars 7873 - 7886 [(intros~Hrutt).] 0. secs (0.u,0.s) +Chars 7873 - 7886 [intros~Hrutt.] 0. secs (0.u,0.s) Chars 7887 - 7902 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 7903 - 7917 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.004 secs (0.003u,0.s) -Chars 7951 - 8001 [(remember~(observe~(Ret~r2))~a...] 0.001 secs (0.u,0.s) -Chars 8004 - 8046 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) +Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.002 secs (0.002u,0.s) +Chars 7951 - 8001 [remember~(observe~(Ret~r2))~as...] 0. secs (0.u,0.s) +Chars 8004 - 8046 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) Chars 8049 - 8050 [-] 0. secs (0.u,0.s) -Chars 8051 - 8075 [(inversion~Heqot2;~subst).] 0. secs (0.u,0.s) +Chars 8051 - 8075 [inversion~Heqot2;~subst.] 0. secs (0.u,0.s) Chars 8076 - 8086 [exists~r1.] 0. secs (0.u,0.s) -Chars 8087 - 8113 [(split;~[~reflexivity~|~auto~]).] 0. secs (0.u,0.s) +Chars 8087 - 8113 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) Chars 8116 - 8117 [-] 0. secs (0.u,0.s) -Chars 8118 - 8160 [(destruct~(IHHrutt~Heqot2)~as~...] 0. secs (0.u,0.s) -Chars 8161 - 8184 [(exists~r1;~split;~auto).] 0. secs (0.u,0.s) -Chars 8189 - 8216 [(rewrite~<-~itree_eta~in~H1).] 0.013 secs (0.011u,0.001s) -Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) -Chars 8241 - 8245 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8118 - 8160 [destruct~(IHHrutt~Heqot2)~as~[...] 0. secs (0.u,0.s) +Chars 8161 - 8184 [exists~r1;~split;~auto.] 0. secs (0.u,0.s) +Chars 8189 - 8216 [rewrite~<-~itree_eta~in~H1.] 0.007 secs (0.007u,0.s) +Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0. secs (0.u,0.s) +Chars 8241 - 8245 [Qed.] 0.004 secs (0.003u,0.s) Chars 8306 - 8449 [Lemma~ruttF_inv_tau_l~t1~ot2~:...] 0. secs (0.u,0.s) Chars 8450 - 8456 [Proof.] 0. secs (0.u,0.s) -Chars 8459 - 8468 [(intros~H).] 0. secs (0.u,0.s) -Chars 8469 - 8495 [(remember~(TauF~t1)~as~tt1).] 0. secs (0.u,0.s) -Chars 8498 - 8528 [(induction~H;~try~discriminate).] 0.002 secs (0.002u,0.s) +Chars 8459 - 8468 [intros~H.] 0. secs (0.u,0.s) +Chars 8469 - 8495 [remember~(TauF~t1)~as~tt1.] 0. secs (0.u,0.s) +Chars 8498 - 8528 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) Chars 8531 - 8532 [-] 0. secs (0.u,0.s) -Chars 8533 - 8544 [(inv~Heqtt1).] 0.001 secs (0.001u,0.s) +Chars 8533 - 8544 [inv~Heqtt1.] 0. secs (0.u,0.s) Chars 8545 - 8557 [constructor.] 0. secs (0.u,0.s) Chars 8558 - 8569 [rstep~in~H.] 0. secs (0.u,0.s) Chars 8570 - 8578 [exact~H.] 0. secs (0.u,0.s) Chars 8581 - 8582 [-] 0. secs (0.u,0.s) -Chars 8583 - 8594 [(inv~Heqtt1).] 0. secs (0.u,0.s) +Chars 8583 - 8594 [inv~Heqtt1.] 0. secs (0.u,0.s) Chars 8597 - 8598 [-] 0. secs (0.u,0.s) Chars 8599 - 8611 [constructor.] 0. secs (0.u,0.s) Chars 8612 - 8617 [auto.] 0. secs (0.u,0.s) Chars 8618 - 8622 [Qed.] 0.001 secs (0.001u,0.s) Chars 8684 - 8827 [Lemma~ruttF_inv_tau_r~ot1~t2~:...] 0. secs (0.u,0.s) Chars 8828 - 8834 [Proof.] 0. secs (0.u,0.s) -Chars 8837 - 8846 [(intros~H).] 0. secs (0.u,0.s) -Chars 8847 - 8873 [(remember~(TauF~t2)~as~tt2).] 0. secs (0.u,0.s) -Chars 8876 - 8906 [(induction~H;~try~discriminate).] 0. secs (0.u,0.s) +Chars 8837 - 8846 [intros~H.] 0. secs (0.u,0.s) +Chars 8847 - 8873 [remember~(TauF~t2)~as~tt2.] 0. secs (0.u,0.s) +Chars 8876 - 8906 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) Chars 8909 - 8910 [-] 0. secs (0.u,0.s) -Chars 8911 - 8922 [(inv~Heqtt2).] 0.001 secs (0.001u,0.s) +Chars 8911 - 8922 [inv~Heqtt2.] 0. secs (0.u,0.s) Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) Chars 8936 - 8947 [rstep~in~H.] 0. secs (0.u,0.s) Chars 8948 - 8956 [exact~H.] 0. secs (0.u,0.s) @@ -143,19 +143,19 @@ Chars 8959 - 8960 [-] 0. secs (0.u,0.s) Chars 8961 - 8973 [constructor.] 0. secs (0.u,0.s) Chars 8974 - 8979 [auto.] 0. secs (0.u,0.s) Chars 8982 - 8983 [-] 0. secs (0.u,0.s) -Chars 8984 - 8995 [(inv~Heqtt2).] 0. secs (0.u,0.s) +Chars 8984 - 8995 [inv~Heqtt2.] 0. secs (0.u,0.s) Chars 8996 - 9000 [Qed.] 0.001 secs (0.001u,0.s) Chars 9002 - 9088 [Lemma~rutt_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9089 - 9095 [Proof.] 0. secs (0.u,0.s) -Chars 9098 - 9105 [(intros).] 0. secs (0.u,0.s) +Chars 9098 - 9105 [intros.] 0. secs (0.u,0.s) Chars 9106 - 9117 [rstep~in~H.] 0. secs (0.u,0.s) Chars 9118 - 9124 [rstep.] 0. secs (0.u,0.s) -Chars 9127 - 9149 [(apply~ruttF_inv_tau_l).] 0. secs (0.u,0.s) +Chars 9127 - 9149 [apply~ruttF_inv_tau_l.] 0. secs (0.u,0.s) Chars 9150 - 9158 [exact~H.] 0. secs (0.u,0.s) -Chars 9159 - 9163 [Qed.] 0.001 secs (0.u,0.s) +Chars 9159 - 9163 [Qed.] 0. secs (0.u,0.s) Chars 9165 - 9251 [Lemma~rutt_add_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9252 - 9258 [Proof.] 0. secs (0.u,0.s) -Chars 9261 - 9268 [(intros).] 0. secs (0.u,0.s) +Chars 9261 - 9268 [intros.] 0. secs (0.u,0.s) Chars 9269 - 9275 [rstep.] 0. secs (0.u,0.s) Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) Chars 9289 - 9300 [rstep~in~H.] 0. secs (0.u,0.s) @@ -163,15 +163,15 @@ Chars 9301 - 9309 [exact~H.] 0. secs (0.u,0.s) Chars 9310 - 9314 [Qed.] 0. secs (0.u,0.s) Chars 9316 - 9402 [Lemma~rutt_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9403 - 9409 [Proof.] 0. secs (0.u,0.s) -Chars 9412 - 9419 [(intros).] 0. secs (0.u,0.s) +Chars 9412 - 9419 [intros.] 0. secs (0.u,0.s) Chars 9420 - 9431 [rstep~in~H.] 0. secs (0.u,0.s) Chars 9432 - 9438 [rstep.] 0. secs (0.u,0.s) -Chars 9441 - 9463 [(apply~ruttF_inv_tau_r).] 0. secs (0.u,0.s) +Chars 9441 - 9463 [apply~ruttF_inv_tau_r.] 0. secs (0.u,0.s) Chars 9464 - 9472 [exact~H.] 0. secs (0.u,0.s) -Chars 9473 - 9477 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9473 - 9477 [Qed.] 0. secs (0.u,0.s) Chars 9479 - 9565 [Lemma~rutt_add_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) Chars 9566 - 9572 [Proof.] 0. secs (0.u,0.s) -Chars 9575 - 9582 [(intros).] 0. secs (0.u,0.s) +Chars 9575 - 9582 [intros.] 0. secs (0.u,0.s) Chars 9583 - 9589 [rstep.] 0. secs (0.u,0.s) Chars 9590 - 9602 [constructor.] 0. secs (0.u,0.s) Chars 9603 - 9614 [rstep~in~H.] 0. secs (0.u,0.s) @@ -179,57 +179,57 @@ Chars 9615 - 9623 [exact~H.] 0. secs (0.u,0.s) Chars 9624 - 9628 [Qed.] 0. secs (0.u,0.s) Chars 9630 - 9720 [Lemma~rutt_inv_Tau~t1~t2~:~~~r...] 0. secs (0.u,0.s) Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) -Chars 9730 - 9787 [(intros;~apply~rutt_inv_Tau_r,...] 0. secs (0.u,0.s) +Chars 9730 - 9787 [intros;~apply~rutt_inv_Tau_r,~...] 0. secs (0.u,0.s) Chars 9788 - 9792 [Qed.] 0. secs (0.u,0.s) Chars 9794 - 10034 [Lemma~rutt_Vis~{T1}~{T2}~(e1~:...] 0. secs (0.u,0.s) Chars 10035 - 10041 [Proof.] 0. secs (0.u,0.s) -Chars 10044 - 10057 [(intros~He~Hk).] 0. secs (0.u,0.s) +Chars 10044 - 10057 [intros~He~Hk.] 0. secs (0.u,0.s) Chars 10058 - 10064 [rstep.] 0. secs (0.u,0.s) -Chars 10065 - 10083 [(constructor;~auto).] 0. secs (0.u,0.s) -Chars 10084 - 10088 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0.001 secs (0.001u,0.s) +Chars 10065 - 10083 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 10084 - 10088 [Qed.] 0. secs (0.u,0.s) +Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0. secs (0.u,0.s) Chars 10323 - 10329 [Proof.] 0. secs (0.u,0.s) -Chars 10332 - 10345 [(intros~Hrutt).] 0. secs (0.u,0.s) -Chars 10346 - 10361 [rstep~in~Hrutt.] 0. secs (0.u,0.s) +Chars 10332 - 10345 [intros~Hrutt.] 0. secs (0.u,0.s) +Chars 10346 - 10361 [rstep~in~Hrutt.] 0.003 secs (0.003u,0.s) Chars 10362 - 10376 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.011 secs (0.011u,0.s) -Chars 10410 - 10463 [(remember~(observe~(Vis~e1~k1)...] 0. secs (0.u,0.s) -Chars 10466 - 10515 [(induction~Hrutt;~intros;~try~...] 0.001 secs (0.001u,0.s) +Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.006 secs (0.006u,0.s) +Chars 10410 - 10463 [remember~(observe~(Vis~e1~k1))...] 0. secs (0.u,0.s) +Chars 10466 - 10515 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) Chars 10518 - 10519 [-] 0. secs (0.u,0.s) -Chars 10520 - 10546 [(inversion~Heqot1;~subst~A).] 0.001 secs (0.001u,0.s) -Chars 10547 - 10620 [(inversion_sigma;~rewrite~<-~e...] 0.003 secs (0.003u,0.s) -Chars 10625 - 10650 [(exists~U2,e2,k2;~split).] 0. secs (0.u,0.s) +Chars 10520 - 10546 [inversion~Heqot1;~subst~A.] 0.001 secs (0.001u,0.s) +Chars 10547 - 10620 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) +Chars 10625 - 10650 [exists~U2,e2,k2;~split.] 0. secs (0.u,0.s) Chars 10651 - 10663 [reflexivity.] 0. secs (0.u,0.s) -Chars 10664 - 10676 [(split;~auto).] 0. secs (0.u,0.s) +Chars 10664 - 10676 [split;~auto.] 0. secs (0.u,0.s) Chars 10679 - 10680 [-] 0. secs (0.u,0.s) -Chars 10681 - 10739 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) -Chars 10744 - 10772 [(rewrite~<-~itree_eta~in~Ht0).] 0.019 secs (0.019u,0.s) -Chars 10777 - 10808 [(exists~U2,e2,k2;~split;~auto).] 0. secs (0.u,0.s) +Chars 10681 - 10739 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) +Chars 10744 - 10772 [rewrite~<-~itree_eta~in~Ht0.] 0.014 secs (0.014u,0.s) +Chars 10777 - 10808 [exists~U2,e2,k2;~split;~auto.] 0. secs (0.u,0.s) Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 10831 - 10835 [Qed.] 0.007 secs (0.007u,0.s) -Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0.001 secs (0.001u,0.s) +Chars 10831 - 10835 [Qed.] 0.005 secs (0.005u,0.s) +Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0. secs (0.u,0.s) Chars 11072 - 11078 [Proof.] 0. secs (0.u,0.s) -Chars 11081 - 11094 [(intros~Hrutt).] 0. secs (0.u,0.s) +Chars 11081 - 11094 [intros~Hrutt.] 0. secs (0.u,0.s) Chars 11095 - 11110 [rstep~in~Hrutt.] 0. secs (0.u,0.s) Chars 11111 - 11125 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.008 secs (0.008u,0.s) -Chars 11159 - 11212 [(remember~(observe~(Vis~e2~k2)...] 0. secs (0.u,0.s) -Chars 11215 - 11264 [(induction~Hrutt;~intros;~try~...] 0.004 secs (0.004u,0.s) +Chars 11159 - 11212 [remember~(observe~(Vis~e2~k2))...] 0. secs (0.u,0.s) +Chars 11215 - 11264 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) Chars 11267 - 11268 [-] 0. secs (0.u,0.s) -Chars 11269 - 11295 [(inversion~Heqot2;~subst~B).] 0.001 secs (0.001u,0.s) -Chars 11296 - 11369 [(inversion_sigma;~rewrite~<-~e...] 0.003 secs (0.003u,0.s) -Chars 11374 - 11399 [(exists~U1,e1,k1;~split).] 0. secs (0.u,0.s) +Chars 11269 - 11295 [inversion~Heqot2;~subst~B.] 0.001 secs (0.001u,0.s) +Chars 11296 - 11369 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) +Chars 11374 - 11399 [exists~U1,e1,k1;~split.] 0. secs (0.u,0.s) Chars 11400 - 11412 [reflexivity.] 0. secs (0.u,0.s) -Chars 11413 - 11425 [(split;~auto).] 0. secs (0.u,0.s) +Chars 11413 - 11425 [split;~auto.] 0. secs (0.u,0.s) Chars 11428 - 11429 [-] 0. secs (0.u,0.s) -Chars 11430 - 11488 [(destruct~(IHHrutt~eq_refl)~as...] 0. secs (0.u,0.s) -Chars 11493 - 11521 [(rewrite~<-~itree_eta~in~Ht0).] 0.018 secs (0.018u,0.s) -Chars 11526 - 11557 [(exists~U1,e1,k1;~split;~auto).] 0.002 secs (0.002u,0.s) -Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 11580 - 11584 [Qed.] 0.007 secs (0.007u,0.s) +Chars 11430 - 11488 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) +Chars 11493 - 11521 [rewrite~<-~itree_eta~in~Ht0.] 0.013 secs (0.013u,0.s) +Chars 11526 - 11557 [exists~U1,e1,k1;~split;~auto.] 0. secs (0.u,0.s) +Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) +Chars 11580 - 11584 [Qed.] 0.005 secs (0.005u,0.s) Chars 11586 - 11809 [Lemma~rutt_inv_Vis~U1~U2~(e1~:...] 0. secs (0.u,0.s) Chars 11810 - 11816 [Proof.] 0. secs (0.u,0.s) -Chars 11819 - 11839 [(intros~H~u1~u2~Hans).] 0. secs (0.u,0.s) +Chars 11819 - 11839 [intros~H~u1~u2~Hans.] 0. secs (0.u,0.s) Chars 11840 - 11851 [rstep~in~H.] 0. secs (0.u,0.s) Chars 11854 - 11908 [exact~(ruttF_inv_VisF~_~_~_~_~...] 0. secs (0.u,0.s) Chars 11909 - 11913 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq/RuttFacts.v.timing b/theories/Eq/RuttFacts.v.timing index 9f04b6e9..fd1265a4 100644 --- a/theories/Eq/RuttFacts.v.timing +++ b/theories/Eq/RuttFacts.v.timing @@ -1,40 +1,40 @@ -Chars 346 - 382 [From~Coinduction~Require~Impor...] 0.009 secs (0.006u,0.002s) -Chars 385 - 461 [From~Stdlib~Require~Import~Pro...] 0.006 secs (0.003u,0.002s) -Chars 463 - 581 [From~ITree~Require~Import~ITre...] 0.234 secs (0.204u,0.029s) -Chars 632 - 844 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.003 secs (0.003u,0.s) +Chars 346 - 382 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 385 - 461 [From~Stdlib~Require~Import~Pro...] 0.004 secs (0.002u,0.001s) +Chars 463 - 581 [From~ITree~Require~Import~ITre...] 0.158 secs (0.142u,0.016s) +Chars 632 - 844 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.002 secs (0.002u,0.s) Chars 845 - 851 [Proof.] 0. secs (0.u,0.s) -Chars 854 - 861 [(intros).] 0. secs (0.u,0.s) -Chars 862 - 883 [(apply~rutt_Vis;~auto).] 0. secs (0.u,0.s) -Chars 886 - 893 [(intros).] 0. secs (0.u,0.s) -Chars 894 - 915 [(apply~rutt_Ret;~auto).] 0. secs (0.u,0.s) +Chars 854 - 861 [intros.] 0. secs (0.u,0.s) +Chars 862 - 883 [apply~rutt_Vis;~auto.] 0. secs (0.u,0.s) +Chars 886 - 893 [intros.] 0. secs (0.u,0.s) +Chars 894 - 915 [apply~rutt_Ret;~auto.] 0. secs (0.u,0.s) Chars 916 - 920 [Qed.] 0.001 secs (0.001u,0.s) Chars 1139 - 1271 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) Chars 1273 - 1348 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) Chars 1349 - 1355 [Proof.] 0. secs (0.u,0.s) Chars 1358 - 1370 [constructor.] 0. secs (0.u,0.s) Chars 1373 - 1374 [-] 0. secs (0.u,0.s) -Chars 1375 - 1379 [(red).] 0. secs (0.u,0.s) -Chars 1380 - 1384 [(red).] 0. secs (0.u,0.s) +Chars 1375 - 1379 [red.] 0. secs (0.u,0.s) +Chars 1380 - 1384 [red.] 0. secs (0.u,0.s) Chars 1385 - 1397 [reflexivity.] 0. secs (0.u,0.s) Chars 1400 - 1401 [-] 0. secs (0.u,0.s) -Chars 1402 - 1406 [(red).] 0. secs (0.u,0.s) -Chars 1407 - 1418 [(intros~*~H).] 0. secs (0.u,0.s) -Chars 1419 - 1428 [(red~in~H).] 0. secs (0.u,0.s) -Chars 1429 - 1433 [(red).] 0. secs (0.u,0.s) +Chars 1402 - 1406 [red.] 0. secs (0.u,0.s) +Chars 1407 - 1418 [intros~*~H.] 0. secs (0.u,0.s) +Chars 1419 - 1428 [red~in~H.] 0. secs (0.u,0.s) +Chars 1429 - 1433 [red.] 0. secs (0.u,0.s) Chars 1434 - 1447 [now~symmetry.] 0. secs (0.u,0.s) Chars 1450 - 1451 [-] 0. secs (0.u,0.s) -Chars 1452 - 1456 [(hnf).] 0. secs (0.u,0.s) -Chars 1457 - 1472 [(intros~*~H1~H2).] 0. secs (0.u,0.s) -Chars 1473 - 1487 [(red~in~H1,~H2).] 0. secs (0.u,0.s) -Chars 1488 - 1492 [(red).] 0. secs (0.u,0.s) -Chars 1493 - 1514 [(etransitivity;~eauto).] 0. secs (0.u,0.s) +Chars 1452 - 1456 [hnf.] 0. secs (0.u,0.s) +Chars 1457 - 1472 [intros~*~H1~H2.] 0. secs (0.u,0.s) +Chars 1473 - 1487 [red~in~H1,~H2.] 0. secs (0.u,0.s) +Chars 1488 - 1492 [red.] 0. secs (0.u,0.s) +Chars 1493 - 1514 [etransitivity;~eauto.] 0. secs (0.u,0.s) Chars 1515 - 1519 [Qed.] 0. secs (0.u,0.s) Chars 1521 - 1641 [Definition~flip_REv~{E1~E2~:~T...] 0. secs (0.u,0.s) Chars 1643 - 1725 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) Chars 1733 - 1745 [reflexivity.] 0. secs (0.u,0.s) Chars 1746 - 1750 [Qed.] 0. secs (0.u,0.s) -Chars 1873 - 2043 [Definition~RAns_pair~E1~E2~~~(...] 0.001 secs (0.001u,0.s) +Chars 1873 - 2043 [Definition~RAns_pair~E1~E2~~~(...] 0. secs (0.u,0.s) Chars 2045 - 2172 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) Chars 2173 - 2179 [Proof.] 0. secs (0.u,0.s) Chars 2180 - 2192 [reflexivity.] 0. secs (0.u,0.s) @@ -42,24 +42,24 @@ Chars 2193 - 2197 [Qed.] 0. secs (0.u,0.s) Chars 2199 - 2366 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) Chars 2368 - 2509 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) Chars 2510 - 2516 [Proof.] 0. secs (0.u,0.s) -Chars 2517 - 2526 [(intros~*).] 0. secs (0.u,0.s) -Chars 2527 - 2554 [(rewrite~<-~!RAns_pair_iff).] 0.004 secs (0.003u,0.001s) -Chars 2555 - 2570 [(split;~apply~H).] 0. secs (0.u,0.s) -Chars 2571 - 2575 [Qed.] 0.001 secs (0.u,0.s) +Chars 2517 - 2526 [intros~*.] 0. secs (0.u,0.s) +Chars 2527 - 2554 [rewrite~<-~!RAns_pair_iff.] 0.024 secs (0.022u,0.001s) +Chars 2555 - 2570 [split;~apply~H.] 0. secs (0.u,0.s) +Chars 2571 - 2575 [Qed.] 0. secs (0.u,0.s) Chars 2577 - 2654 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) Chars 2655 - 2661 [Proof.] 0. secs (0.u,0.s) Chars 2664 - 2676 [constructor.] 0. secs (0.u,0.s) Chars 2679 - 2680 [-] 0. secs (0.u,0.s) -Chars 2681 - 2690 [(red;~red).] 0. secs (0.u,0.s) +Chars 2681 - 2690 [red;~red.] 0. secs (0.u,0.s) Chars 2691 - 2703 [reflexivity.] 0. secs (0.u,0.s) Chars 2706 - 2707 [-] 0. secs (0.u,0.s) -Chars 2708 - 2717 [(red;~red).] 0. secs (0.u,0.s) +Chars 2708 - 2717 [red;~red.] 0. secs (0.u,0.s) Chars 2718 - 2731 [now~symmetry.] 0. secs (0.u,0.s) Chars 2734 - 2735 [-] 0. secs (0.u,0.s) -Chars 2736 - 2745 [(red;~red).] 0. secs (0.u,0.s) -Chars 2746 - 2761 [(intros~*~H1~H2).] 0. secs (0.u,0.s) -Chars 2762 - 2776 [(red~in~H1,~H2).] 0. secs (0.u,0.s) -Chars 2777 - 2798 [(etransitivity;~eauto).] 0.037 secs (0.029u,0.006s) +Chars 2736 - 2745 [red;~red.] 0. secs (0.u,0.s) +Chars 2746 - 2761 [intros~*~H1~H2.] 0. secs (0.u,0.s) +Chars 2762 - 2776 [red~in~H1,~H2.] 0. secs (0.u,0.s) +Chars 2777 - 2798 [etransitivity;~eauto.] 0. secs (0.u,0.s) Chars 2799 - 2803 [Qed.] 0. secs (0.u,0.s) Chars 2805 - 2968 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) Chars 2970 - 3095 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) @@ -72,394 +72,394 @@ Chars 3255 - 3267 [reflexivity.] 0. secs (0.u,0.s) Chars 3268 - 3272 [Qed.] 0. secs (0.u,0.s) Chars 3274 - 3435 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) Chars 3436 - 3442 [Proof.] 0. secs (0.u,0.s) -Chars 3445 - 3528 [(split;~revert~t1~t2;~coinduct...] 0.003 secs (0.003u,0.s) +Chars 3445 - 3528 [split;~revert~t1~t2;~coinducti...] 0.002 secs (0.002u,0.s) Chars 3531 - 3532 [-] 0. secs (0.u,0.s) -Chars 3533 - 3570 [(induction~Hrutt;~try~now~cons...] 0.059 secs (0.057u,0.001s) +Chars 3533 - 3570 [induction~Hrutt;~try~now~const...] 0.042 secs (0.042u,0.s) Chars 3575 - 3576 [*] 0. secs (0.u,0.s) -Chars 3577 - 3589 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 3577 - 3589 [apply~EqTau.] 0. secs (0.u,0.s) Chars 3590 - 3604 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3609 - 3610 [*] 0. secs (0.u,0.s) -Chars 3611 - 3623 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 3611 - 3623 [apply~EqVis.] 0. secs (0.u,0.s) Chars 3624 - 3629 [auto.] 0. secs (0.u,0.s) -Chars 3630 - 3646 [(intros~b~a~HAns).] 0. secs (0.u,0.s) -Chars 3647 - 3659 [(cbn~in~HAns).] 0. secs (0.u,0.s) +Chars 3630 - 3646 [intros~b~a~HAns.] 0. secs (0.u,0.s) +Chars 3647 - 3659 [cbn~in~HAns.] 0. secs (0.u,0.s) Chars 3666 - 3691 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) Chars 3692 - 3706 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3709 - 3710 [-] 0. secs (0.u,0.s) -Chars 3711 - 3748 [(induction~Hrutt;~try~now~cons...] 0.018 secs (0.015u,0.002s) +Chars 3711 - 3748 [induction~Hrutt;~try~now~const...] 0.01 secs (0.01u,0.s) Chars 3753 - 3754 [*] 0. secs (0.u,0.s) -Chars 3755 - 3767 [(apply~EqTau).] 0. secs (0.u,0.s) +Chars 3755 - 3767 [apply~EqTau.] 0. secs (0.u,0.s) Chars 3768 - 3782 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 3787 - 3788 [*] 0. secs (0.u,0.s) -Chars 3789 - 3801 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 3789 - 3801 [apply~EqVis.] 0. secs (0.u,0.s) Chars 3802 - 3807 [auto.] 0. secs (0.u,0.s) -Chars 3808 - 3824 [(intros~b~a~HAns).] 0. secs (0.u,0.s) -Chars 3825 - 3837 [(cbn~in~HAns).] 0. secs (0.u,0.s) +Chars 3808 - 3824 [intros~b~a~HAns.] 0. secs (0.u,0.s) +Chars 3825 - 3837 [cbn~in~HAns.] 0. secs (0.u,0.s) Chars 3844 - 3869 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) Chars 3870 - 3884 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3885 - 3889 [Qed.] 0.009 secs (0.008u,0.s) -Chars 3966 - 4222 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) +Chars 3885 - 3889 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3966 - 4222 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) -Chars 4232 - 4301 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) -Chars 4304 - 4484 [(split;~intros~Hrutt;~revert~t...] 0.012 secs (0.012u,0.s) -Chars 4489 - 4521 [1,~4:~(apply~EqRet;~now~apply~...] 0. secs (0.u,0.s) -Chars 4527 - 4559 [1,~3:~(apply~EqTau;~now~apply~...] 0. secs (0.u,0.s) +Chars 4232 - 4301 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) +Chars 4304 - 4484 [split;~intros~Hrutt;~revert~t1...] 0.008 secs (0.008u,0.s) +Chars 4489 - 4521 [1,~4:~apply~EqRet;~now~apply~HRR.] 0. secs (0.u,0.s) +Chars 4527 - 4559 [1,~3:~apply~EqTau;~now~apply~CIH.] 0. secs (0.u,0.s) Chars 4564 - 4565 [*] 0. secs (0.u,0.s) -Chars 4566 - 4578 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 4566 - 4578 [apply~EqVis.] 0. secs (0.u,0.s) Chars 4579 - 4594 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4595 - 4602 [(intros).] 0. secs (0.u,0.s) -Chars 4609 - 4642 [(assert~(H2~:~RAns1~A~B~e1~a~e...] 0. secs (0.u,0.s) +Chars 4595 - 4602 [intros.] 0. secs (0.u,0.s) +Chars 4609 - 4642 [assert~(H2~:~RAns1~A~B~e1~a~e2...] 0. secs (0.u,0.s) Chars 4649 - 4650 [{] 0. secs (0.u,0.s) -Chars 4651 - 4675 [(erewrite~<-~eq_RAns_iff).] 0. secs (0.u,0.s) -Chars 4676 - 4685 [(apply~H1).] 0. secs (0.u,0.s) +Chars 4651 - 4675 [erewrite~<-~eq_RAns_iff.] 0. secs (0.u,0.s) +Chars 4676 - 4685 [apply~H1.] 0. secs (0.u,0.s) Chars 4686 - 4697 [assumption.] 0. secs (0.u,0.s) Chars 4698 - 4699 [}] 0. secs (0.u,0.s) -Chars 4706 - 4713 [(intros).] 0. secs (0.u,0.s) +Chars 4706 - 4713 [intros.] 0. secs (0.u,0.s) Chars 4714 - 4737 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) Chars 4738 - 4752 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 4757 - 4758 [*] 0. secs (0.u,0.s) -Chars 4759 - 4771 [(apply~EqVis).] 0. secs (0.u,0.s) +Chars 4759 - 4771 [apply~EqVis.] 0. secs (0.u,0.s) Chars 4772 - 4787 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4788 - 4795 [(intros).] 0. secs (0.u,0.s) -Chars 4802 - 4835 [(assert~(H2~:~RAns2~A~B~e1~a~e...] 0. secs (0.u,0.s) +Chars 4788 - 4795 [intros.] 0. secs (0.u,0.s) +Chars 4802 - 4835 [assert~(H2~:~RAns2~A~B~e1~a~e2...] 0. secs (0.u,0.s) Chars 4842 - 4843 [{] 0. secs (0.u,0.s) -Chars 4844 - 4865 [(erewrite~eq_RAns_iff).] 0. secs (0.u,0.s) -Chars 4866 - 4875 [(apply~H1).] 0. secs (0.u,0.s) +Chars 4844 - 4865 [erewrite~eq_RAns_iff.] 0. secs (0.u,0.s) +Chars 4866 - 4875 [apply~H1.] 0. secs (0.u,0.s) Chars 4876 - 4887 [assumption.] 0. secs (0.u,0.s) Chars 4888 - 4889 [}] 0. secs (0.u,0.s) -Chars 4896 - 4903 [(intros).] 0. secs (0.u,0.s) +Chars 4896 - 4903 [intros.] 0. secs (0.u,0.s) Chars 4904 - 4927 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) Chars 4928 - 4942 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4943 - 4947 [Qed.] 0.01 secs (0.009u,0.s) -Chars 4949 - 5138 [#[global]~Instance~eq_proper_r...] 0.001 secs (0.001u,0.s) +Chars 4943 - 4947 [Qed.] 0.006 secs (0.006u,0.s) +Chars 4949 - 5138 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) Chars 5139 - 5145 [Proof.] 0. secs (0.u,0.s) -Chars 5148 - 5386 [(split;~revert_until~c;~tower~...] 0.019 secs (0.019u,0.s) -Chars 5389 - 5445 [1-3,~6-8:~(inv~Ht1;~inv~Ht2;~s...] 0.275 secs (0.27u,0.003s) +Chars 5148 - 5386 [split;~revert_until~c;~tower~i...] 0.013 secs (0.013u,0.s) +Chars 5389 - 5445 [1-3,~6-8:~inv~Ht1;~inv~Ht2;~si...] 0.192 secs (0.191u,0.s) Chars 5448 - 5449 [+] 0. secs (0.u,0.s) Chars 5450 - 5458 [simpobs.] 0.001 secs (0.001u,0.s) Chars 5459 - 5471 [constructor.] 0. secs (0.u,0.s) -Chars 5472 - 5489 [(eapply~IH;~eauto).] 0. secs (0.u,0.s) +Chars 5472 - 5489 [eapply~IH;~eauto.] 0. secs (0.u,0.s) Chars 5492 - 5493 [+] 0. secs (0.u,0.s) -Chars 5494 - 5502 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 5507 - 5614 [(dependent~destruction~H3;~dep...] 0.012 secs (0.012u,0.s) -Chars 5619 - 5637 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 5638 - 5645 [(intros).] 0. secs (0.u,0.s) -Chars 5646 - 5656 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 5657 - 5667 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5668 - 5679 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 5494 - 5502 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 5507 - 5614 [dependent~destruction~H3;~depe...] 0.008 secs (0.008u,0.s) +Chars 5619 - 5637 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5638 - 5645 [intros.] 0. secs (0.u,0.s) +Chars 5646 - 5656 [eapply~IH.] 0. secs (0.u,0.s) +Chars 5657 - 5667 [apply~REL.] 0. secs (0.u,0.s) +Chars 5668 - 5679 [apply~REL0.] 0. secs (0.u,0.s) Chars 5680 - 5693 [now~apply~H0.] 0. secs (0.u,0.s) Chars 5696 - 5697 [+] 0. secs (0.u,0.s) -Chars 5698 - 5706 [simpobs.] 0.004 secs (0.003u,0.s) +Chars 5698 - 5706 [simpobs.] 0.002 secs (0.002u,0.s) Chars 5707 - 5719 [constructor.] 0. secs (0.u,0.s) -Chars 5720 - 5737 [(eapply~IH;~eauto).] 0. secs (0.u,0.s) +Chars 5720 - 5737 [eapply~IH;~eauto.] 0. secs (0.u,0.s) Chars 5740 - 5741 [+] 0. secs (0.u,0.s) -Chars 5742 - 5750 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 5755 - 5862 [(dependent~destruction~H4;~dep...] 0.012 secs (0.012u,0.s) -Chars 5867 - 5885 [(constructor;~auto).] 0.001 secs (0.001u,0.s) -Chars 5886 - 5893 [(intros).] 0. secs (0.u,0.s) -Chars 5894 - 5904 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 5905 - 5915 [(apply~REL).] 0. secs (0.u,0.s) -Chars 5916 - 5927 [(apply~REL0).] 0. secs (0.u,0.s) +Chars 5742 - 5750 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 5755 - 5862 [dependent~destruction~H4;~depe...] 0.01 secs (0.01u,0.s) +Chars 5867 - 5885 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 5886 - 5893 [intros.] 0. secs (0.u,0.s) +Chars 5894 - 5904 [eapply~IH.] 0. secs (0.u,0.s) +Chars 5905 - 5915 [apply~REL.] 0. secs (0.u,0.s) +Chars 5916 - 5927 [apply~REL0.] 0. secs (0.u,0.s) Chars 5928 - 5941 [now~apply~H0.] 0. secs (0.u,0.s) Chars 5944 - 5945 [+] 0. secs (0.u,0.s) -Chars 5946 - 5954 [(inv~Ht1).] 0.027 secs (0.027u,0.s) +Chars 5946 - 5954 [inv~Ht1.] 0.02 secs (0.019u,0.s) Chars 5955 - 5967 [constructor.] 0. secs (0.u,0.s) -Chars 5968 - 5990 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 5968 - 5990 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) Chars 5991 - 6002 [now~unstep.] 0.004 secs (0.004u,0.s) Chars 6005 - 6006 [+] 0. secs (0.u,0.s) -Chars 6007 - 6015 [(inv~Ht2).] 0.027 secs (0.027u,0.s) +Chars 6007 - 6015 [inv~Ht2.] 0.018 secs (0.018u,0.s) Chars 6016 - 6028 [constructor.] 0. secs (0.u,0.s) -Chars 6029 - 6051 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6052 - 6063 [now~unstep.] 0.004 secs (0.004u,0.s) +Chars 6029 - 6051 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 6052 - 6063 [now~unstep.] 0.002 secs (0.002u,0.s) Chars 6066 - 6067 [+] 0. secs (0.u,0.s) -Chars 6068 - 6076 [(inv~Ht1).] 0.028 secs (0.028u,0.s) +Chars 6068 - 6076 [inv~Ht1.] 0.021 secs (0.021u,0.s) Chars 6077 - 6089 [constructor.] 0. secs (0.u,0.s) -Chars 6090 - 6112 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 6113 - 6124 [now~unstep.] 0.003 secs (0.003u,0.s) +Chars 6090 - 6112 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 6113 - 6124 [now~unstep.] 0.002 secs (0.002u,0.s) Chars 6127 - 6128 [+] 0. secs (0.u,0.s) -Chars 6129 - 6137 [(inv~Ht2).] 0.029 secs (0.029u,0.s) +Chars 6129 - 6137 [inv~Ht2.] 0.02 secs (0.02u,0.s) Chars 6138 - 6150 [constructor.] 0. secs (0.u,0.s) -Chars 6151 - 6173 [(eapply~IHHrutt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 6151 - 6173 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) Chars 6174 - 6185 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 6186 - 6190 [Qed.] 0.069 secs (0.068u,0.001s) +Chars 6186 - 6190 [Qed.] 0.045 secs (0.045u,0.s) Chars 6192 - 6355 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) Chars 6356 - 6362 [Proof.] 0. secs (0.u,0.s) -Chars 6365 - 6377 [(unfold~rutt).] 0. secs (0.u,0.s) -Chars 6378 - 6407 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) -Chars 6410 - 6438 [(apply~eq_proper_ruttC;~auto).] 0.001 secs (0.001u,0.s) +Chars 6365 - 6377 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 6378 - 6407 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) +Chars 6410 - 6438 [apply~eq_proper_ruttC;~auto.] 0. secs (0.u,0.s) Chars 6439 - 6443 [Qed.] 0. secs (0.u,0.s) Chars 6445 - 6702 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) Chars 6703 - 6709 [Proof.] 0. secs (0.u,0.s) -Chars 6712 - 6786 [(intros~REv1~REv2~HREv~RAns1~R...] 0. secs (0.u,0.s) -Chars 6789 - 6806 [(rewrite~Ht1,~Ht2).] 0.002 secs (0.002u,0.s) -Chars 6807 - 6833 [(apply~rutt_Proper_R;~auto).] 0.001 secs (0.001u,0.s) +Chars 6712 - 6786 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) +Chars 6789 - 6806 [rewrite~Ht1,~Ht2.] 0.001 secs (0.001u,0.s) +Chars 6807 - 6833 [apply~rutt_Proper_R;~auto.] 0.003 secs (0.003u,0.s) Chars 6834 - 6838 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6840 - 7035 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) +Chars 6840 - 7035 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) Chars 7036 - 7042 [Proof.] 0. secs (0.u,0.s) -Chars 7045 - 7083 [(unfold~Proper,~respectful,~fl...] 0. secs (0.u,0.s) -Chars 7086 - 7102 [tower~induction.] 0.003 secs (0.003u,0.s) -Chars 7105 - 7170 [(clear~c;~intros~c~IH~x~x'~EQx...] 0.001 secs (0.001u,0.s) -Chars 7173 - 7189 [(rcbn;~intros~EQ).] 0. secs (0.u,0.s) -Chars 7192 - 7221 [(genobs~x'~ox';~genobs~y'~oy').] 0.001 secs (0.001u,0.s) +Chars 7045 - 7083 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) +Chars 7086 - 7102 [tower~induction.] 0.002 secs (0.002u,0.s) +Chars 7105 - 7170 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) +Chars 7173 - 7189 [rcbn;~intros~EQ.] 0. secs (0.u,0.s) +Chars 7192 - 7221 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) Chars 7224 - 7263 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 7266 - 7287 [(induction~EQ;~intros).] 0.001 secs (0.001u,0.s) +Chars 7266 - 7287 [induction~EQ;~intros.] 0. secs (0.u,0.s) Chars 7305 - 7306 [-] 0. secs (0.u,0.s) Chars 7307 - 7333 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7338 - 7350 [(genobs~x~ox).] 0.005 secs (0.005u,0.s) -Chars 7351 - 7365 [(genret~r1~or1).] 0. secs (0.u,0.s) +Chars 7338 - 7350 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 7351 - 7365 [genret~r1~or1.] 0. secs (0.u,0.s) Chars 7366 - 7381 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7386 - 7421 [(hinduction~EQx~before~ox;~try...] 0.042 secs (0.042u,0.s) +Chars 7386 - 7421 [hinduction~EQx~before~ox;~try~...] 0.031 secs (0.031u,0.s) Chars 7426 - 7427 [+] 0. secs (0.u,0.s) -Chars 7428 - 7454 [(intros;~subst;~inv~Heqor1).] 0.007 secs (0.007u,0.s) +Chars 7428 - 7454 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) Chars 7455 - 7469 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 7476 - 7488 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 7489 - 7503 [(genret~r2~or2).] 0. secs (0.u,0.s) +Chars 7476 - 7488 [genobs~y~oy.] 0. secs (0.u,0.s) +Chars 7489 - 7503 [genret~r2~or2.] 0. secs (0.u,0.s) Chars 7504 - 7519 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7526 - 7561 [(hinduction~EQy~before~oy;~try...] 0.027 secs (0.026u,0.s) +Chars 7526 - 7561 [hinduction~EQy~before~oy;~try~...] 0.02 secs (0.02u,0.s) Chars 7568 - 7569 [*] 0. secs (0.u,0.s) -Chars 7570 - 7594 [(subst;~intros~[=<-]~?~?).] 0. secs (0.u,0.s) +Chars 7570 - 7594 [subst;~intros~[=<-]~?~?.] 0. secs (0.u,0.s) Chars 7595 - 7607 [constructor.] 0. secs (0.u,0.s) Chars 7608 - 7613 [auto.] 0. secs (0.u,0.s) Chars 7620 - 7621 [*] 0. secs (0.u,0.s) -Chars 7622 - 7629 [(intros).] 0. secs (0.u,0.s) -Chars 7630 - 7649 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 7650 - 7670 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) +Chars 7622 - 7629 [intros.] 0. secs (0.u,0.s) +Chars 7630 - 7649 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 7650 - 7670 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) Chars 7675 - 7676 [+] 0. secs (0.u,0.s) -Chars 7677 - 7691 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 7692 - 7711 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 7712 - 7732 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) +Chars 7677 - 7691 [intros;~subst.] 0. secs (0.u,0.s) +Chars 7692 - 7711 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 7712 - 7732 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) Chars 7750 - 7751 [-] 0. secs (0.u,0.s) Chars 7752 - 7778 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7783 - 7795 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 7796 - 7810 [(gentau~m1~om1).] 0. secs (0.u,0.s) +Chars 7783 - 7795 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 7796 - 7810 [gentau~m1~om1.] 0. secs (0.u,0.s) Chars 7811 - 7826 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7831 - 7866 [(hinduction~EQx~before~ox;~try...] 0.045 secs (0.044u,0.s) +Chars 7831 - 7866 [hinduction~EQx~before~ox;~try~...] 0.032 secs (0.032u,0.s) Chars 7871 - 7872 [+] 0. secs (0.u,0.s) -Chars 7873 - 7890 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) -Chars 7897 - 7909 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 7910 - 7924 [(gentau~m2~om2).] 0. secs (0.u,0.s) +Chars 7873 - 7890 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) +Chars 7897 - 7909 [genobs~y~oy.] 0. secs (0.u,0.s) +Chars 7910 - 7924 [gentau~m2~om2.] 0. secs (0.u,0.s) Chars 7925 - 7940 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7947 - 7982 [(hinduction~EQy~before~oy;~try...] 0.044 secs (0.043u,0.s) +Chars 7947 - 7982 [hinduction~EQy~before~oy;~try~...] 0.03 secs (0.03u,0.s) Chars 7989 - 7990 [*] 0. secs (0.u,0.s) -Chars 7991 - 8008 [(intros~[=<-]~?~?).] 0. secs (0.u,0.s) +Chars 7991 - 8008 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) Chars 8009 - 8022 [to_rmon_core.] 0. secs (0.u,0.s) -Chars 8023 - 8034 [(intros~?~?).] 0. secs (0.u,0.s) +Chars 8023 - 8034 [intros~?~?.] 0. secs (0.u,0.s) Chars 8035 - 8040 [rcbn.] 0. secs (0.u,0.s) Chars 8041 - 8053 [constructor.] 0. secs (0.u,0.s) -Chars 8054 - 8071 [(eapply~IH;~eauto).] 0.001 secs (0.001u,0.s) +Chars 8054 - 8071 [eapply~IH;~eauto.] 0. secs (0.u,0.s) Chars 8078 - 8079 [*] 0. secs (0.u,0.s) -Chars 8080 - 8087 [(intros).] 0. secs (0.u,0.s) -Chars 8088 - 8107 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 8108 - 8128 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) +Chars 8080 - 8087 [intros.] 0. secs (0.u,0.s) +Chars 8088 - 8107 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 8108 - 8128 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) Chars 8133 - 8134 [+] 0. secs (0.u,0.s) -Chars 8135 - 8149 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8150 - 8169 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 8170 - 8190 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) +Chars 8135 - 8149 [intros;~subst.] 0. secs (0.u,0.s) +Chars 8150 - 8169 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 8170 - 8190 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) Chars 8208 - 8209 [-] 0. secs (0.u,0.s) Chars 8210 - 8236 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 8241 - 8253 [(genobs~x~ox).] 0. secs (0.u,0.s) -Chars 8254 - 8271 [(genvis~e1~k1~ot1).] 0.001 secs (0.001u,0.s) +Chars 8241 - 8253 [genobs~x~ox.] 0. secs (0.u,0.s) +Chars 8254 - 8271 [genvis~e1~k1~ot1.] 0. secs (0.u,0.s) Chars 8272 - 8287 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 8292 - 8327 [(hinduction~EQx~before~ox;~try...] 0.046 secs (0.046u,0.s) +Chars 8292 - 8327 [hinduction~EQx~before~ox;~try~...] 0.032 secs (0.032u,0.s) Chars 8332 - 8333 [+] 0. secs (0.u,0.s) -Chars 8334 - 8341 [(intros).] 0. secs (0.u,0.s) -Chars 8342 - 8408 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) +Chars 8334 - 8341 [intros.] 0. secs (0.u,0.s) +Chars 8342 - 8408 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) Chars 8415 - 8429 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 8436 - 8448 [(genobs~y~oy).] 0. secs (0.u,0.s) -Chars 8449 - 8466 [(genvis~e2~k2~ot2).] 0.001 secs (0.001u,0.s) +Chars 8436 - 8448 [genobs~y~oy.] 0. secs (0.u,0.s) +Chars 8449 - 8466 [genvis~e2~k2~ot2.] 0. secs (0.u,0.s) Chars 8467 - 8482 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 8489 - 8524 [(hinduction~EQy~before~oy;~try...] 0.03 secs (0.03u,0.s) +Chars 8489 - 8524 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) Chars 8531 - 8532 [*] 0. secs (0.u,0.s) -Chars 8533 - 8540 [(intros).] 0. secs (0.u,0.s) -Chars 8541 - 8607 [(apply~eq_inv_VisF_weak~in~Heq...] 0.001 secs (0.001u,0.s) -Chars 8616 - 8634 [(constructor;~auto).] 0.001 secs (0.u,0.s) -Chars 8635 - 8642 [(intros).] 0. secs (0.u,0.s) -Chars 8643 - 8653 [(eapply~IH).] 0. secs (0.u,0.s) -Chars 8654 - 8668 [(apply~(REL~a)).] 0. secs (0.u,0.s) -Chars 8669 - 8684 [(apply~(REL0~b)).] 0. secs (0.u,0.s) -Chars 8685 - 8700 [(apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 8533 - 8540 [intros.] 0. secs (0.u,0.s) +Chars 8541 - 8607 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) +Chars 8616 - 8634 [constructor;~auto.] 0. secs (0.u,0.s) +Chars 8635 - 8642 [intros.] 0. secs (0.u,0.s) +Chars 8643 - 8653 [eapply~IH.] 0. secs (0.u,0.s) +Chars 8654 - 8668 [apply~(REL~a).] 0. secs (0.u,0.s) +Chars 8669 - 8684 [apply~(REL0~b).] 0. secs (0.u,0.s) +Chars 8685 - 8700 [apply~H0;~auto.] 0. secs (0.u,0.s) Chars 8707 - 8708 [*] 0. secs (0.u,0.s) -Chars 8709 - 8716 [(intros).] 0. secs (0.u,0.s) -Chars 8717 - 8736 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 8737 - 8757 [(eapply~IHEQy;~eauto).] 0. secs (0.u,0.s) +Chars 8709 - 8716 [intros.] 0. secs (0.u,0.s) +Chars 8717 - 8736 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 8737 - 8757 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) Chars 8762 - 8763 [+] 0. secs (0.u,0.s) -Chars 8764 - 8778 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8779 - 8798 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 8799 - 8819 [(eapply~IHEQx;~eauto).] 0. secs (0.u,0.s) +Chars 8764 - 8778 [intros;~subst.] 0. secs (0.u,0.s) +Chars 8779 - 8798 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 8799 - 8819 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) Chars 8838 - 8839 [-] 0. secs (0.u,0.s) -Chars 8840 - 8884 [(edestruct~euttge_tau_r_inv;~[...] 0.005 secs (0.005u,0.s) -Chars 8889 - 8897 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 8902 - 8921 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 8926 - 8945 [(eapply~IHEQ;~eauto).] 0.001 secs (0.001u,0.s) -Chars 8950 - 9001 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 9006 - 9043 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) +Chars 8840 - 8884 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) +Chars 8889 - 8897 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 8902 - 8921 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 8926 - 8945 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 8950 - 9001 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 9006 - 9043 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) Chars 9062 - 9063 [-] 0. secs (0.u,0.s) -Chars 9064 - 9108 [(edestruct~euttge_tau_r_inv;~[...] 0.006 secs (0.006u,0.s) -Chars 9113 - 9121 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 9126 - 9145 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 9150 - 9169 [(eapply~IHEQ;~eauto).] 0.001 secs (0.u,0.s) -Chars 9174 - 9225 [(assert~(euttge~eq~(Tau~x0)~(T...] 0.002 secs (0.002u,0.s) -Chars 9230 - 9267 [(unstep;~eapply~euttge_tau_inv...] 0.004 secs (0.004u,0.s) -Chars 9268 - 9272 [Qed.] 0.025 secs (0.025u,0.s) +Chars 9064 - 9108 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) +Chars 9113 - 9121 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 9126 - 9145 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 9150 - 9169 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) +Chars 9174 - 9225 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) +Chars 9230 - 9267 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) +Chars 9268 - 9272 [Qed.] 0.02 secs (0.02u,0.s) Chars 9274 - 9443 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) Chars 9444 - 9450 [Proof.] 0. secs (0.u,0.s) -Chars 9453 - 9465 [(unfold~rutt).] 0. secs (0.u,0.s) -Chars 9466 - 9495 [(intros~t1~t1'~Ht1~t2~t2'~Ht2).] 0. secs (0.u,0.s) -Chars 9498 - 9530 [(apply~euttge_proper_ruttC;~au...] 0.001 secs (0.001u,0.s) -Chars 9531 - 9535 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9453 - 9465 [unfold~rutt.] 0. secs (0.u,0.s) +Chars 9466 - 9495 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) +Chars 9498 - 9530 [apply~euttge_proper_ruttC;~auto.] 0. secs (0.u,0.s) +Chars 9531 - 9535 [Qed.] 0. secs (0.u,0.s) Chars 9537 - 9705 [Lemma~rutt_cong_eutt~{E1}~{E2}...] 0. secs (0.u,0.s) Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) -Chars 9715 - 9766 [(intros~*~Hrutt~Heutt;~revert~...] 0. secs (0.u,0.s) -Chars 9769 - 9823 [(coinduction~c~CIH;~icbn;~intr...] 0.001 secs (0.001u,0.s) +Chars 9715 - 9766 [intros~*~Hrutt~Heutt;~revert~t...] 0. secs (0.u,0.s) +Chars 9769 - 9823 [coinduction~c~CIH;~icbn;~intro...] 0.001 secs (0.001u,0.s) Chars 9826 - 9840 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 9843 - 9876 [(rewrite~(itree_eta~t1')~in~He...] 0.027 secs (0.027u,0.s) -Chars 9879 - 9917 [(remember~(observe~t1)~as~ot1~...] 0. secs (0.u,0.s) -Chars 9920 - 9958 [(remember~(observe~t2)~as~ot2~...] 0. secs (0.u,0.s) -Chars 9961 - 10003 [(move~Hrutt~before~CIH;~revert...] 0. secs (0.u,0.s) -Chars 10006 - 10090 [(induction~Hrutt~as~[r1~r2|~m1...] 0.001 secs (0.001u,0.s) +Chars 9843 - 9876 [rewrite~(itree_eta~t1')~in~Heutt.] 0.018 secs (0.018u,0.s) +Chars 9879 - 9917 [remember~(observe~t1)~as~ot1~e...] 0. secs (0.u,0.s) +Chars 9920 - 9958 [remember~(observe~t2)~as~ot2~e...] 0. secs (0.u,0.s) +Chars 9961 - 10003 [move~Hrutt~before~CIH;~revert_...] 0. secs (0.u,0.s) +Chars 10006 - 10090 [induction~Hrutt~as~[r1~r2|~m1~...] 0. secs (0.u,0.s) Chars 10093 - 10094 [-] 0. secs (0.u,0.s) Chars 10111 - 10126 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10127 - 10141 [(cbn~in~Heutt').] 0. secs (0.u,0.s) -Chars 10146 - 10173 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) +Chars 10127 - 10141 [cbn~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10146 - 10173 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) Chars 10174 - 10200 [clear~Hot1'~Hot2'~tt1~tt2.] 0. secs (0.u,0.s) -Chars 10205 - 10244 [(remember~(RetF~r1)~as~oRetL~e...] 0. secs (0.u,0.s) -Chars 10249 - 10284 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) +Chars 10205 - 10244 [remember~(RetF~r1)~as~oRetL~eq...] 0. secs (0.u,0.s) +Chars 10249 - 10284 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) Chars 10289 - 10290 [+] 0. secs (0.u,0.s) -Chars 10291 - 10302 [(inv~HoRetL).] 0.003 secs (0.003u,0.s) +Chars 10291 - 10302 [inv~HoRetL.] 0.002 secs (0.002u,0.s) Chars 10303 - 10319 [now~constructor.] 0. secs (0.u,0.s) Chars 10324 - 10325 [+] 0. secs (0.u,0.s) -Chars 10326 - 10339 [(apply~EqTauL).] 0. secs (0.u,0.s) +Chars 10326 - 10339 [apply~EqTauL.] 0. secs (0.u,0.s) Chars 10340 - 10359 [now~apply~IHHeutt'.] 0. secs (0.u,0.s) Chars 10362 - 10363 [-] 0. secs (0.u,0.s) Chars 10380 - 10395 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10396 - 10410 [(cbn~in~Heutt').] 0. secs (0.u,0.s) -Chars 10415 - 10442 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) +Chars 10396 - 10410 [cbn~in~Heutt'.] 0. secs (0.u,0.s) +Chars 10415 - 10442 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) Chars 10443 - 10459 [clear~tt1~Hot1'.] 0. secs (0.u,0.s) Chars 10464 - 10480 [clear~tt2~Hot2'.] 0. secs (0.u,0.s) Chars 10485 - 10495 [step~in~H.] 0. secs (0.u,0.s) Chars 10496 - 10506 [rcbn~in~H.] 0. secs (0.u,0.s) -Chars 10511 - 10550 [(remember~(TauF~m1)~as~oTauL~e...] 0. secs (0.u,0.s) +Chars 10511 - 10550 [remember~(TauF~m1)~as~oTauL~eq...] 0. secs (0.u,0.s) Chars 10555 - 10577 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) -Chars 10582 - 10713 [(induction~Heutt'~~~as~[r1~r2~...] 0.001 secs (0.001u,0.s) +Chars 10582 - 10713 [induction~Heutt'~~as~[r1~r2~_|...] 0.001 secs (0.001u,0.s) Chars 10718 - 10719 [+] 0. secs (0.u,0.s) -Chars 10748 - 10759 [(inv~HoTauL).] 0.009 secs (0.009u,0.s) -Chars 10760 - 10772 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 10773 - 10791 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) +Chars 10748 - 10759 [inv~HoTauL.] 0.008 secs (0.008u,0.s) +Chars 10760 - 10772 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 10773 - 10791 [apply~CIH~with~m1.] 0. secs (0.u,0.s) Chars 10798 - 10799 [*] 0. secs (0.u,0.s) -Chars 10800 - 10810 [(apply~REL).] 0. secs (0.u,0.s) +Chars 10800 - 10810 [apply~REL.] 0. secs (0.u,0.s) Chars 10817 - 10818 [*] 0. secs (0.u,0.s) -Chars 10819 - 10831 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 10819 - 10831 [unfold~rutt.] 0. secs (0.u,0.s) Chars 10832 - 10837 [step.] 0. secs (0.u,0.s) Chars 10838 - 10846 [exact~H.] 0. secs (0.u,0.s) Chars 10851 - 10852 [+] 0. secs (0.u,0.s) -Chars 10914 - 10925 [(inv~HoTauL).] 0.015 secs (0.015u,0.s) -Chars 10932 - 10991 [(destruct~(observe~m1)~as~[r1|...] 0.001 secs (0.001u,0.s) +Chars 10914 - 10925 [inv~HoTauL.] 0.01 secs (0.01u,0.s) +Chars 10932 - 10991 [destruct~(observe~m1)~as~[r1|~...] 0.001 secs (0.001u,0.s) Chars 10998 - 10999 [*] 0. secs (0.u,0.s) -Chars 11026 - 11065 [(remember~(RetF~r1)~as~oRetL~e...] 0.001 secs (0.001u,0.s) +Chars 11026 - 11065 [remember~(RetF~r1)~as~oRetL~eq...] 0.001 secs (0.001u,0.s) Chars 11074 - 11102 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) Chars 11111 - 11120 [revert~H.] 0. secs (0.u,0.s) -Chars 11129 - 11174 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) +Chars 11129 - 11174 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) Chars 11183 - 11185 [**] 0. secs (0.u,0.s) -Chars 11186 - 11197 [(inv~HoRetL).] 0.006 secs (0.006u,0.s) -Chars 11209 - 11222 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 11234 - 11275 [(remember~(RetF~r1)~as~oRetL2~...] 0. secs (0.u,0.s) -Chars 11287 - 11317 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) +Chars 11186 - 11197 [inv~HoRetL.] 0.004 secs (0.004u,0.s) +Chars 11209 - 11222 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 11234 - 11275 [remember~(RetF~r1)~as~oRetL2~e...] 0. secs (0.u,0.s) +Chars 11287 - 11317 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) Chars 11329 - 11332 [***] 0. secs (0.u,0.s) -Chars 11333 - 11345 [(inv~HoRetL2).] 0.002 secs (0.002u,0.s) +Chars 11333 - 11345 [inv~HoRetL2.] 0.002 secs (0.002u,0.s) Chars 11346 - 11358 [constructor.] 0. secs (0.u,0.s) Chars 11359 - 11369 [now~subst.] 0. secs (0.u,0.s) Chars 11381 - 11384 [***] 0. secs (0.u,0.s) -Chars 11385 - 11398 [(apply~EqTauR).] 0. secs (0.u,0.s) +Chars 11385 - 11398 [apply~EqTauR.] 0. secs (0.u,0.s) Chars 11399 - 11417 [now~apply~IHruttF.] 0. secs (0.u,0.s) Chars 11426 - 11428 [**] 0. secs (0.u,0.s) -Chars 11429 - 11442 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 11443 - 11466 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) +Chars 11429 - 11442 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 11443 - 11466 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) Chars 11473 - 11474 [*] 0. secs (0.u,0.s) -Chars 11506 - 11542 [(apply~(IHIHHeutt'~m1_body~m2)...] 0. secs (0.u,0.s) -Chars 11551 - 11578 [(apply~ruttF_inv_tau_l~in~H).] 0. secs (0.u,0.s) +Chars 11506 - 11542 [apply~(IHIHHeutt'~m1_body~m2);...] 0. secs (0.u,0.s) +Chars 11551 - 11578 [apply~ruttF_inv_tau_l~in~H.] 0. secs (0.u,0.s) Chars 11579 - 11587 [exact~H.] 0. secs (0.u,0.s) Chars 11594 - 11595 [*] 0. secs (0.u,0.s) -Chars 11625 - 11667 [(remember~(VisF~e1~k1)~as~oVis...] 0.001 secs (0.001u,0.s) +Chars 11625 - 11667 [remember~(VisF~e1~k1)~as~oVisL...] 0.001 secs (0.001u,0.s) Chars 11676 - 11704 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) Chars 11713 - 11722 [revert~H.] 0. secs (0.u,0.s) -Chars 11731 - 11776 [(induction~IHHeutt';~try~discr...] 0.001 secs (0.001u,0.s) +Chars 11731 - 11776 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) Chars 11785 - 11787 [**] 0. secs (0.u,0.s) -Chars 11788 - 11837 [(symmetry~in~HoVisL;~dependent...] 0.004 secs (0.004u,0.s) -Chars 11849 - 11862 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 11874 - 11917 [(remember~(VisF~e~k0)~as~oVisL...] 0. secs (0.u,0.s) -Chars 11929 - 11959 [(induction~H;~try~discriminate).] 0.001 secs (0.001u,0.s) +Chars 11788 - 11837 [symmetry~in~HoVisL;~dependent~...] 0.003 secs (0.003u,0.s) +Chars 11849 - 11862 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 11874 - 11917 [remember~(VisF~e~k0)~as~oVisL2...] 0. secs (0.u,0.s) +Chars 11929 - 11959 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) Chars 11971 - 11974 [***] 0. secs (0.u,0.s) -Chars 11975 - 12005 [dependent~destruction~HoVisL2.] 0.004 secs (0.004u,0.s) -Chars 12021 - 12039 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) -Chars 12040 - 12056 [(intros~a~b~HAns).] 0. secs (0.u,0.s) -Chars 12072 - 12094 [(apply~CIH~with~(k0~a)).] 0. secs (0.u,0.s) +Chars 11975 - 12005 [dependent~destruction~HoVisL2.] 0.003 secs (0.003u,0.s) +Chars 12021 - 12039 [apply~EqVis;~auto.] 0. secs (0.u,0.s) +Chars 12040 - 12056 [intros~a~b~HAns.] 0. secs (0.u,0.s) +Chars 12072 - 12094 [apply~CIH~with~(k0~a).] 0. secs (0.u,0.s) Chars 12110 - 12114 [****] 0. secs (0.u,0.s) -Chars 12115 - 12125 [(apply~REL).] 0. secs (0.u,0.s) +Chars 12115 - 12125 [apply~REL.] 0. secs (0.u,0.s) Chars 12141 - 12145 [****] 0. secs (0.u,0.s) -Chars 12146 - 12161 [(apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 12146 - 12161 [apply~H0;~auto.] 0. secs (0.u,0.s) Chars 12173 - 12176 [***] 0. secs (0.u,0.s) -Chars 12177 - 12190 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 12191 - 12211 [(apply~IHruttF;~auto).] 0. secs (0.u,0.s) +Chars 12177 - 12190 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 12191 - 12211 [apply~IHruttF;~auto.] 0. secs (0.u,0.s) Chars 12220 - 12222 [**] 0. secs (0.u,0.s) -Chars 12223 - 12236 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 12237 - 12260 [(apply~IHIHHeutt';~auto).] 0. secs (0.u,0.s) +Chars 12223 - 12236 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 12237 - 12260 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) Chars 12265 - 12266 [+] 0. secs (0.u,0.s) -Chars 12296 - 12308 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 12309 - 12327 [(apply~CIH~with~m1).] 0. secs (0.u,0.s) +Chars 12296 - 12308 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 12309 - 12327 [apply~CIH~with~m1.] 0. secs (0.u,0.s) Chars 12334 - 12335 [*] 0. secs (0.u,0.s) -Chars 12336 - 12369 [(rewrite~<-~tau_eutt~with~(t~:...] 0.003 secs (0.002u,0.s) +Chars 12336 - 12369 [rewrite~<-~tau_eutt~with~(t~:=...] 0. secs (0.u,0.s) Chars 12370 - 12375 [step.] 0.001 secs (0.001u,0.s) Chars 12376 - 12387 [subst~t1''.] 0. secs (0.u,0.s) Chars 12388 - 12401 [exact~Heutt'.] 0. secs (0.u,0.s) Chars 12408 - 12409 [*] 0. secs (0.u,0.s) -Chars 12410 - 12422 [(unfold~rutt).] 0. secs (0.u,0.s) +Chars 12410 - 12422 [unfold~rutt.] 0. secs (0.u,0.s) Chars 12423 - 12428 [step.] 0. secs (0.u,0.s) Chars 12429 - 12437 [exact~H.] 0. secs (0.u,0.s) Chars 12440 - 12441 [-] 0. secs (0.u,0.s) Chars 12458 - 12473 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12474 - 12488 [(cbn~in~Heutt').] 0. secs (0.u,0.s) -Chars 12493 - 12520 [(rewrite~<-~Hot1'~in~Heutt').] 0. secs (0.u,0.s) +Chars 12474 - 12488 [cbn~in~Heutt'.] 0. secs (0.u,0.s) +Chars 12493 - 12520 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) Chars 12521 - 12547 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 12552 - 12594 [(remember~(VisF~e1~k1)~as~oVis...] 0. secs (0.u,0.s) -Chars 12599 - 12642 [(induction~Heutt';~try~discrim...] 0.001 secs (0.001u,0.s) +Chars 12552 - 12594 [remember~(VisF~e1~k1)~as~oVisL...] 0. secs (0.u,0.s) +Chars 12599 - 12642 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) Chars 12647 - 12648 [+] 0. secs (0.u,0.s) -Chars 12649 - 12678 [dependent~destruction~HoVisL.] 0.004 secs (0.004u,0.s) -Chars 12685 - 12703 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) -Chars 12704 - 12720 [(intros~a~b~HAns).] 0. secs (0.u,0.s) -Chars 12727 - 12749 [(apply~CIH~with~(k1~a)).] 0. secs (0.u,0.s) +Chars 12649 - 12678 [dependent~destruction~HoVisL.] 0.002 secs (0.002u,0.s) +Chars 12685 - 12703 [apply~EqVis;~auto.] 0. secs (0.u,0.s) +Chars 12704 - 12720 [intros~a~b~HAns.] 0. secs (0.u,0.s) +Chars 12727 - 12749 [apply~CIH~with~(k1~a).] 0. secs (0.u,0.s) Chars 12756 - 12757 [*] 0. secs (0.u,0.s) -Chars 12758 - 12768 [(apply~REL).] 0. secs (0.u,0.s) +Chars 12758 - 12768 [apply~REL.] 0. secs (0.u,0.s) Chars 12775 - 12776 [*] 0. secs (0.u,0.s) -Chars 12777 - 12792 [(apply~H0;~auto).] 0. secs (0.u,0.s) +Chars 12777 - 12792 [apply~H0;~auto.] 0. secs (0.u,0.s) Chars 12797 - 12798 [+] 0. secs (0.u,0.s) -Chars 12799 - 12812 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 12813 - 12834 [(apply~IHHeutt';~auto).] 0. secs (0.u,0.s) +Chars 12799 - 12812 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 12813 - 12834 [apply~IHHeutt';~auto.] 0. secs (0.u,0.s) Chars 12837 - 12838 [-] 0. secs (0.u,0.s) -Chars 12856 - 12919 [(eapply~IHHrutt~with~(t1~:=~m1...] 0. secs (0.u,0.s) -Chars 12924 - 12957 [(rewrite~<-~tau_eutt~with~(t~:...] 0.001 secs (0.001u,0.s) -Chars 12958 - 12976 [(rewrite~<-~Heutt').] 0. secs (0.u,0.s) -Chars 12981 - 13005 [(rewrite~(itree_eta~tt1)).] 0.001 secs (0.001u,0.s) -Chars 13006 - 13023 [(rewrite~<-~Hot1').] 0. secs (0.u,0.s) +Chars 12856 - 12919 [eapply~IHHrutt~with~(t1~:=~m1)...] 0. secs (0.u,0.s) +Chars 12924 - 12957 [rewrite~<-~tau_eutt~with~(t~:=...] 0. secs (0.u,0.s) +Chars 12958 - 12976 [rewrite~<-~Heutt'.] 0. secs (0.u,0.s) +Chars 12981 - 13005 [rewrite~(itree_eta~tt1).] 0.001 secs (0.001u,0.s) +Chars 13006 - 13023 [rewrite~<-~Hot1'.] 0. secs (0.u,0.s) Chars 13024 - 13036 [reflexivity.] 0. secs (0.u,0.s) Chars 13039 - 13040 [-] 0. secs (0.u,0.s) -Chars 13058 - 13071 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 13072 - 13094 [(eapply~IHHrutt;~eauto).] 0. secs (0.u,0.s) -Chars 13095 - 13099 [Qed.] 0.035 secs (0.035u,0.s) -Chars 13101 - 13358 [#[global]~Instance~rutt_Proper...] 0.001 secs (0.001u,0.s) +Chars 13058 - 13071 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 13072 - 13094 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) +Chars 13095 - 13099 [Qed.] 0.028 secs (0.027u,0.s) +Chars 13101 - 13358 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) Chars 13359 - 13365 [Proof.] 0. secs (0.u,0.s) -Chars 13368 - 13439 [(intros~REv~REv2~HREv~RAns~RAn...] 0. secs (0.u,0.s) -Chars 13442 - 13513 [(rewrite~<-~HREv,~<-~HRAns,~<-...] 0.01 secs (0.01u,0.s) -Chars 13516 - 13536 [(split;~intros~Hrutt).] 0. secs (0.u,0.s) +Chars 13368 - 13439 [intros~REv~REv2~HREv~RAns~RAns...] 0. secs (0.u,0.s) +Chars 13442 - 13513 [rewrite~<-~HREv,~<-~HRAns,~<-~...] 0.006 secs (0.006u,0.s) +Chars 13516 - 13536 [split;~intros~Hrutt.] 0. secs (0.u,0.s) Chars 13539 - 13540 [-] 0. secs (0.u,0.s) -Chars 13541 - 13570 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 13575 - 13598 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) -Chars 13599 - 13628 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) +Chars 13541 - 13570 [eapply~rutt_cong_eutt;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13575 - 13598 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) +Chars 13599 - 13628 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) Chars 13631 - 13632 [-] 0. secs (0.u,0.s) Chars 13633 - 13654 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) -Chars 13659 - 13688 [(eapply~rutt_cong_eutt;~eauto).] 0.001 secs (0.001u,0.s) -Chars 13693 - 13716 [(rewrite~rutt_flip~in~*).] 0.001 secs (0.001u,0.s) -Chars 13717 - 13746 [(eapply~rutt_cong_eutt;~eauto).] 0. secs (0.u,0.s) -Chars 13747 - 13751 [Qed.] 0.003 secs (0.002u,0.s) +Chars 13659 - 13688 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) +Chars 13693 - 13716 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) +Chars 13717 - 13746 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) +Chars 13747 - 13751 [Qed.] 0.002 secs (0.002u,0.s) Chars 13790 - 13807 [Section~RuttBind.] 0. secs (0.u,0.s) Chars 13808 - 13839 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 13840 - 13863 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) @@ -472,107 +472,107 @@ Chars 14416 - 14422 [Proof.] 0. secs (0.u,0.s) Chars 14425 - 14438 [revert~t1~t2.] 0. secs (0.u,0.s) Chars 14439 - 14457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 14458 - 14463 [icbn.] 0. secs (0.u,0.s) -Chars 14464 - 14487 [(intros~t1~t2~Hrutt~EQK).] 0. secs (0.u,0.s) +Chars 14464 - 14487 [intros~t1~t2~Hrutt~EQK.] 0. secs (0.u,0.s) Chars 14490 - 14504 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 14507 - 14521 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 14522 - 14536 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 14539 - 14575 [(hinduction~Hrutt~before~CIH;~...] 0.001 secs (0.001u,0.s) +Chars 14507 - 14521 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 14522 - 14536 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 14539 - 14575 [hinduction~Hrutt~before~CIH;~i...] 0. secs (0.u,0.s) Chars 14578 - 14579 [-] 0. secs (0.u,0.s) -Chars 14594 - 14625 [(rewrite~!observe_bind;~simpobs).] 0.005 secs (0.005u,0.s) +Chars 14594 - 14625 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) Chars 14630 - 14653 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) Chars 14659 - 14671 [step~in~EQK.] 0. secs (0.u,0.s) Chars 14672 - 14686 [now~do~2~step.] 0.002 secs (0.002u,0.s) Chars 14689 - 14690 [-] 0. secs (0.u,0.s) -Chars 14705 - 14736 [(rewrite~!observe_bind;~simpobs).] 0.005 secs (0.005u,0.s) -Chars 14741 - 14753 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 14754 - 14770 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 14705 - 14736 [rewrite~!observe_bind;~simpobs.] 0.005 secs (0.005u,0.s) +Chars 14741 - 14753 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 14754 - 14770 [apply~CIH;~auto.] 0. secs (0.u,0.s) Chars 14773 - 14774 [-] 0. secs (0.u,0.s) -Chars 14789 - 14820 [(rewrite~!observe_bind;~simpobs).] 0.006 secs (0.006u,0.s) -Chars 14825 - 14843 [(apply~EqVis;~auto).] 0.001 secs (0.001u,0.s) -Chars 14844 - 14860 [(intros~a~b~HAns).] 0. secs (0.u,0.s) -Chars 14865 - 14881 [(apply~CIH;~auto).] 0. secs (0.u,0.s) +Chars 14789 - 14820 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) +Chars 14825 - 14843 [apply~EqVis;~auto.] 0.001 secs (0.001u,0.s) +Chars 14844 - 14860 [intros~a~b~HAns.] 0. secs (0.u,0.s) +Chars 14865 - 14881 [apply~CIH;~auto.] 0. secs (0.u,0.s) Chars 14882 - 14895 [now~apply~H0.] 0. secs (0.u,0.s) Chars 14899 - 14900 [-] 0. secs (0.u,0.s) -Chars 14916 - 14946 [(rewrite~observe_bind;~simpobs).] 0.005 secs (0.004u,0.s) -Chars 14951 - 14964 [(apply~EqTauL).] 0. secs (0.u,0.s) -Chars 14965 - 14985 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) +Chars 14916 - 14946 [rewrite~observe_bind;~simpobs.] 0.002 secs (0.002u,0.s) +Chars 14951 - 14964 [apply~EqTauL.] 0. secs (0.u,0.s) +Chars 14965 - 14985 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) Chars 14988 - 14989 [-] 0. secs (0.u,0.s) -Chars 15005 - 15047 [(setoid_rewrite~observe_bind~a...] 0.024 secs (0.024u,0.s) -Chars 15052 - 15065 [(apply~EqTauR).] 0. secs (0.u,0.s) -Chars 15066 - 15086 [(apply~IHHrutt;~auto).] 0. secs (0.u,0.s) -Chars 15087 - 15091 [Qed.] 0.008 secs (0.008u,0.s) +Chars 15005 - 15047 [setoid_rewrite~observe_bind~at...] 0.018 secs (0.018u,0.s) +Chars 15052 - 15065 [apply~EqTauR.] 0. secs (0.u,0.s) +Chars 15066 - 15086 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) +Chars 15087 - 15091 [Qed.] 0.006 secs (0.006u,0.s) Chars 15094 - 15111 [Section~RuttMrec.] 0. secs (0.u,0.s) Chars 15114 - 15221 [Context~(D1~D2~E1~E2~:~Type~->...] 0. secs (0.u,0.s) Chars 15224 - 15330 [Context~(RPre~:~prerel~E1~E2)~...] 0. secs (0.u,0.s) -Chars 15334 - 15592 [Context~~(Hbodies~:~forall~A~B...] 0.001 secs (0.001u,0.s) -Chars 15596 - 15876 [Lemma~interp_mrec_rutt~(R1~R2~...] 0.001 secs (0.001u,0.s) +Chars 15334 - 15592 [Context~~(Hbodies~:~forall~A~B...] 0. secs (0.u,0.s) +Chars 15596 - 15876 [Lemma~interp_mrec_rutt~(R1~R2~...] 0. secs (0.u,0.s) Chars 15879 - 15885 [Proof.] 0. secs (0.u,0.s) Chars 15890 - 15908 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) Chars 15909 - 15914 [icbn.] 0. secs (0.u,0.s) -Chars 15920 - 15938 [(intros~t1~t2~Ht12).] 0. secs (0.u,0.s) +Chars 15920 - 15938 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) Chars 15939 - 15952 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 15958 - 15987 [(remember~(observe~t1)~as~ot1).] 0. secs (0.u,0.s) -Chars 15988 - 16017 [(remember~(observe~t2)~as~ot2).] 0. secs (0.u,0.s) -Chars 16022 - 16065 [(hinduction~Ht12~before~R1;~in...] 0.002 secs (0.002u,0.s) +Chars 15958 - 15987 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) +Chars 15988 - 16017 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) +Chars 16022 - 16065 [hinduction~Ht12~before~R1;~int...] 0.002 secs (0.002u,0.s) Chars 16071 - 16072 [-] 0. secs (0.u,0.s) -Chars 16073 - 16105 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16106 - 16129 [(rewrite~Heqot1,~Heqot2).] 0.183 secs (0.181u,0.001s) -Chars 16136 - 16170 [(repeat~rewrite~unfold_interp_...] 0.184 secs (0.183u,0.001s) -Chars 16171 - 16175 [(cbn).] 0. secs (0.u,0.s) +Chars 16073 - 16105 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) +Chars 16106 - 16129 [rewrite~Heqot1,~Heqot2.] 0.13 secs (0.13u,0.s) +Chars 16136 - 16170 [repeat~rewrite~unfold_interp_m...] 0.131 secs (0.131u,0.s) +Chars 16171 - 16175 [cbn.] 0. secs (0.u,0.s) Chars 16176 - 16192 [now~constructor.] 0. secs (0.u,0.s) Chars 16199 - 16200 [-] 0. secs (0.u,0.s) -Chars 16201 - 16233 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16234 - 16257 [(rewrite~Heqot1,~Heqot2).] 0.19 secs (0.188u,0.001s) -Chars 16264 - 16298 [(repeat~rewrite~unfold_interp_...] 0.188 secs (0.187u,0.001s) -Chars 16299 - 16303 [(cbn).] 0. secs (0.u,0.s) -Chars 16304 - 16331 [(constructor;~now~apply~CIH).] 0. secs (0.u,0.s) +Chars 16201 - 16233 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) +Chars 16234 - 16257 [rewrite~Heqot1,~Heqot2.] 0.134 secs (0.133u,0.s) +Chars 16264 - 16298 [repeat~rewrite~unfold_interp_m...] 0.133 secs (0.132u,0.s) +Chars 16299 - 16303 [cbn.] 0. secs (0.u,0.s) +Chars 16304 - 16331 [constructor;~now~apply~CIH.] 0. secs (0.u,0.s) Chars 16337 - 16338 [-] 0. secs (0.u,0.s) -Chars 16339 - 16371 [(apply~simpobs~in~Heqot1,~Heqo...] 0. secs (0.u,0.s) -Chars 16372 - 16395 [(rewrite~Heqot1,~Heqot2).] 0.197 secs (0.194u,0.002s) -Chars 16402 - 16436 [(repeat~rewrite~unfold_interp_...] 0.197 secs (0.195u,0.002s) -Chars 16437 - 16441 [(cbn).] 0. secs (0.u,0.s) -Chars 16448 - 16454 [(inv~H).] 0.019 secs (0.019u,0.s) +Chars 16339 - 16371 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) +Chars 16372 - 16395 [rewrite~Heqot1,~Heqot2.] 0.133 secs (0.133u,0.s) +Chars 16402 - 16436 [repeat~rewrite~unfold_interp_m...] 0.136 secs (0.135u,0.s) +Chars 16437 - 16441 [cbn.] 0. secs (0.u,0.s) +Chars 16448 - 16454 [inv~H.] 0.014 secs (0.013u,0.s) Chars 16461 - 16462 [+] 0. secs (0.u,0.s) -Chars 16463 - 16489 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) +Chars 16463 - 16489 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) Chars 16490 - 16496 [subst.] 0.001 secs (0.001u,0.s) Chars 16497 - 16509 [constructor.] 0. secs (0.u,0.s) -Chars 16518 - 16529 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 16540 - 16564 [(eapply~rutt_bind;~eauto).] 0.002 secs (0.002u,0.s) -Chars 16573 - 16580 [(intros).] 0. secs (0.u,0.s) -Chars 16581 - 16590 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 16518 - 16529 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 16540 - 16564 [eapply~rutt_bind;~eauto.] 0.001 secs (0.001u,0.s) +Chars 16573 - 16580 [intros.] 0. secs (0.u,0.s) +Chars 16581 - 16590 [cbn~in~H.] 0. secs (0.u,0.s) Chars 16591 - 16604 [clear~-~H~H0.] 0. secs (0.u,0.s) -Chars 16605 - 16614 [(apply~H0).] 0. secs (0.u,0.s) +Chars 16605 - 16614 [apply~H0.] 0. secs (0.u,0.s) Chars 16615 - 16631 [now~constructor.] 0. secs (0.u,0.s) Chars 16638 - 16639 [+] 0. secs (0.u,0.s) -Chars 16640 - 16666 [(apply~inj_pair2~in~H1,~H4).] 0. secs (0.u,0.s) +Chars 16640 - 16666 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) Chars 16667 - 16673 [subst.] 0.001 secs (0.001u,0.s) Chars 16674 - 16686 [constructor.] 0. secs (0.u,0.s) Chars 16695 - 16700 [auto.] 0. secs (0.u,0.s) -Chars 16701 - 16708 [(intros).] 0. secs (0.u,0.s) -Chars 16709 - 16735 [(repeat~rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) -Chars 16736 - 16747 [(eapply~CIH).] 0. secs (0.u,0.s) +Chars 16701 - 16708 [intros.] 0. secs (0.u,0.s) +Chars 16709 - 16735 [repeat~rewrite~tau_euttge.] 0.004 secs (0.004u,0.s) +Chars 16736 - 16747 [eapply~CIH.] 0. secs (0.u,0.s) Chars 16757 - 16770 [clear~-~H0~H.] 0. secs (0.u,0.s) -Chars 16771 - 16780 [(apply~H0).] 0. secs (0.u,0.s) +Chars 16771 - 16780 [apply~H0.] 0. secs (0.u,0.s) Chars 16781 - 16797 [now~constructor.] 0. secs (0.u,0.s) Chars 16803 - 16804 [-] 0. secs (0.u,0.s) -Chars 16805 - 16829 [(apply~simpobs~in~Heqot1).] 0. secs (0.u,0.s) -Chars 16830 - 16845 [(rewrite~Heqot1).] 0.095 secs (0.094u,0.s) -Chars 16846 - 16878 [(rewrite~unfold_interp_mrec~~a...] 0.099 secs (0.098u,0.001s) -Chars 16886 - 16890 [(cbn).] 0. secs (0.u,0.s) +Chars 16805 - 16829 [apply~simpobs~in~Heqot1.] 0. secs (0.u,0.s) +Chars 16830 - 16845 [rewrite~Heqot1.] 0.069 secs (0.068u,0.s) +Chars 16846 - 16878 [rewrite~unfold_interp_mrec~~at~1.] 0.067 secs (0.067u,0.s) +Chars 16886 - 16890 [cbn.] 0. secs (0.u,0.s) Chars 16891 - 16903 [constructor.] 0. secs (0.u,0.s) Chars 16904 - 16921 [now~apply~IHHt12.] 0. secs (0.u,0.s) Chars 16927 - 16928 [-] 0. secs (0.u,0.s) -Chars 16929 - 16953 [(apply~simpobs~in~Heqot2).] 0. secs (0.u,0.s) -Chars 16954 - 16969 [(rewrite~Heqot2).] 0.103 secs (0.101u,0.001s) -Chars 16970 - 17009 [setoid_rewrite~unfold_interp_m...] 0.131 secs (0.125u,0.004s) -Chars 17016 - 17020 [(cbn).] 0. secs (0.u,0.s) +Chars 16929 - 16953 [apply~simpobs~in~Heqot2.] 0. secs (0.u,0.s) +Chars 16954 - 16969 [rewrite~Heqot2.] 0.068 secs (0.068u,0.s) +Chars 16970 - 17009 [setoid_rewrite~unfold_interp_m...] 0.08 secs (0.08u,0.s) +Chars 17016 - 17020 [cbn.] 0. secs (0.u,0.s) Chars 17021 - 17033 [constructor.] 0. secs (0.u,0.s) Chars 17034 - 17051 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 17055 - 17059 [Qed.] 0.023 secs (0.022u,0.s) +Chars 17055 - 17059 [Qed.] 0.015 secs (0.015u,0.s) Chars 17063 - 17258 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) Chars 17261 - 17267 [Proof.] 0. secs (0.u,0.s) -Chars 17272 - 17279 [(intros).] 0. secs (0.u,0.s) -Chars 17280 - 17303 [(apply~interp_mrec_rutt).] 0. secs (0.u,0.s) +Chars 17272 - 17279 [intros.] 0. secs (0.u,0.s) +Chars 17280 - 17303 [apply~interp_mrec_rutt.] 0. secs (0.u,0.s) Chars 17304 - 17309 [auto.] 0. secs (0.u,0.s) Chars 17312 - 17316 [Qed.] 0. secs (0.u,0.s) -Chars 17318 - 17331 [End~RuttMrec.] 0.001 secs (0.001u,0.s) +Chars 17318 - 17331 [End~RuttMrec.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Shallow.v.timing b/theories/Eq/Shallow.v.timing index f745daf7..486b11ed 100644 --- a/theories/Eq/Shallow.v.timing +++ b/theories/Eq/Shallow.v.timing @@ -1,16 +1,16 @@ -Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.035 secs (0.028u,0.007s) +Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.026 secs (0.021u,0.005s) Chars 349 - 372 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 389 - 523 [Definition~eqeq~{A~:~Type}~(P~...] 0. secs (0.u,0.s) Chars 525 - 720 [Definition~pweqeq~{R1}~{R2}~(R...] 0. secs (0.u,0.s) Chars 722 - 889 [Lemma~pweqeq_mon~{R1}~{R2}~(RR...] 0. secs (0.u,0.s) Chars 890 - 896 [Proof.] 0. secs (0.u,0.s) -Chars 899 - 921 [(destruct~p;~cbn;~auto).] 0. secs (0.u,0.s) +Chars 899 - 921 [destruct~p;~cbn;~auto.] 0. secs (0.u,0.s) Chars 922 - 926 [Qed.] 0. secs (0.u,0.s) Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0. secs (0.u,0.s) Chars 1164 - 1170 [Proof.] 0. secs (0.u,0.s) -Chars 1173 - 1331 [(refine~~~(fun~H~=>~~~~match~~...] 0. secs (0.u,0.s) -Chars 1334 - 1360 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) +Chars 1173 - 1331 [refine~~~(fun~H~=>~~~~match~~~...] 0.002 secs (0.002u,0.s) +Chars 1334 - 1360 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) Chars 1361 - 1365 [Qed.] 0. secs (0.u,0.s) Chars 1367 - 1526 [Ltac~~inv_Vis~:=~~~discriminat...] 0. secs (0.u,0.s) Chars 1585 - 1798 [Record~observing~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) @@ -20,23 +20,23 @@ Chars 1877 - 1915 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 1916 - 1966 [Variable~(eq_~:~itree'~E~R~->~...] 0. secs (0.u,0.s) Chars 1968 - 2056 [#[global]~Instance~observing_o...] 0. secs (0.u,0.s) Chars 2057 - 2063 [Proof.] 0. secs (0.u,0.s) -Chars 2064 - 2089 [(intros~?~?~[];~compute;~auto).] 0. secs (0.u,0.s) +Chars 2064 - 2089 [intros~?~?~[];~compute;~auto.] 0. secs (0.u,0.s) Chars 2090 - 2094 [Qed.] 0. secs (0.u,0.s) Chars 2096 - 2171 [#[global]~Instance~observing_g...] 0. secs (0.u,0.s) Chars 2172 - 2178 [Proof.] 0. secs (0.u,0.s) -Chars 2179 - 2200 [(compute;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 2179 - 2200 [compute;~auto~with~itree.] 0. secs (0.u,0.s) Chars 2201 - 2205 [Qed.] 0. secs (0.u,0.s) Chars 2207 - 2326 [#[global]~Instance~monotonic_o...] 0. secs (0.u,0.s) Chars 2327 - 2333 [Proof.] 0. secs (0.u,0.s) -Chars 2334 - 2373 [(intros~?~?~?~[];~compute;~eau...] 0. secs (0.u,0.s) +Chars 2334 - 2373 [intros~?~?~?~[];~compute;~eaut...] 0. secs (0.u,0.s) Chars 2374 - 2378 [Qed.] 0. secs (0.u,0.s) Chars 2380 - 2472 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2473 - 2502 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) -Chars 2505 - 2529 [(intros~[];~split;~compute)~...] 0.003 secs (0.002u,0.s) +Chars 2505 - 2529 [intros~[];~split;~compute~...] 0.012 secs (0.011u,0.001s) Chars 2532 - 2533 [-] 0. secs (0.u,0.s) -Chars 2534 - 2556 [(intros~?~?~[];~auto)~...] 0. secs (0.u,0.s) +Chars 2534 - 2556 [intros~?~?~[];~auto~...] 0. secs (0.u,0.s) Chars 2559 - 2560 [-] 0. secs (0.u,0.s) -Chars 2561 - 2598 [(intros~?~?~?~[]~[];~eauto~wit...] 0.016 secs (0.014u,0.001s) +Chars 2561 - 2598 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) Chars 2599 - 2603 [Qed.] 0. secs (0.u,0.s) Chars 2605 - 2629 [End~observing_relations.] 0. secs (0.u,0.s) Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0. secs (0.u,0.s) @@ -45,58 +45,58 @@ Chars 2966 - 2978 [reflexivity.] 0. secs (0.u,0.s) Chars 2979 - 2983 [Qed.] 0. secs (0.u,0.s) Chars 2985 - 3097 [#[global]~Instance~observing_b...] 0. secs (0.u,0.s) Chars 3098 - 3104 [Proof.] 0. secs (0.u,0.s) -Chars 3107 - 3127 [(repeat~intro;~subst).] 0. secs (0.u,0.s) +Chars 3107 - 3127 [repeat~intro;~subst.] 0. secs (0.u,0.s) Chars 3128 - 3140 [constructor.] 0. secs (0.u,0.s) -Chars 3141 - 3156 [(unfold~observe).] 0. secs (0.u,0.s) -Chars 3157 - 3161 [(cbn).] 0. secs (0.u,0.s) -Chars 3164 - 3194 [(rewrite~(observing_observe~H)).] 0. secs (0.u,0.s) +Chars 3141 - 3156 [unfold~observe.] 0. secs (0.u,0.s) +Chars 3157 - 3161 [cbn.] 0. secs (0.u,0.s) +Chars 3164 - 3194 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) Chars 3195 - 3207 [reflexivity.] 0. secs (0.u,0.s) Chars 3208 - 3212 [Qed.] 0. secs (0.u,0.s) Chars 3214 - 3313 [Lemma~bind_ret_~{E}~{R}~{S}~(r...] 0. secs (0.u,0.s) Chars 3314 - 3320 [Proof.] 0. secs (0.u,0.s) -Chars 3321 - 3346 [(constructor;~reflexivity).] 0. secs (0.u,0.s) +Chars 3321 - 3346 [constructor;~reflexivity.] 0. secs (0.u,0.s) Chars 3347 - 3351 [Qed.] 0. secs (0.u,0.s) Chars 3353 - 3462 [Lemma~bind_tau_~{E}~{R}~U~t~(k...] 0. secs (0.u,0.s) Chars 3463 - 3469 [Proof.] 0. secs (0.u,0.s) -Chars 3470 - 3495 [(constructor;~reflexivity).] 0. secs (0.u,0.s) +Chars 3470 - 3495 [constructor;~reflexivity.] 0. secs (0.u,0.s) Chars 3496 - 3500 [Qed.] 0. secs (0.u,0.s) Chars 3502 - 3668 [Lemma~bind_vis_~{E}~{R}~{U}~{V...] 0. secs (0.u,0.s) Chars 3669 - 3675 [Proof.] 0. secs (0.u,0.s) -Chars 3676 - 3701 [(constructor;~reflexivity).] 0. secs (0.u,0.s) +Chars 3676 - 3701 [constructor;~reflexivity.] 0. secs (0.u,0.s) Chars 3702 - 3706 [Qed.] 0. secs (0.u,0.s) Chars 3802 - 3980 [Lemma~unfold_aloop_~{E}~{A}~{B...] 0. secs (0.u,0.s) Chars 3981 - 3987 [Proof.] 0. secs (0.u,0.s) -Chars 3988 - 4013 [(constructor;~reflexivity).] 0. secs (0.u,0.s) +Chars 3988 - 4013 [constructor;~reflexivity.] 0. secs (0.u,0.s) Chars 4014 - 4018 [Qed.] 0. secs (0.u,0.s) Chars 4058 - 4192 [Lemma~unfold_forever_~{E}~{R}~...] 0. secs (0.u,0.s) Chars 4193 - 4199 [Proof.] 0. secs (0.u,0.s) Chars 4200 - 4213 [econstructor.] 0. secs (0.u,0.s) Chars 4214 - 4226 [reflexivity.] 0. secs (0.u,0.s) Chars 4227 - 4231 [Qed.] 0. secs (0.u,0.s) -Chars 4282 - 4463 [Inductive~going~{E}~{R1}~{R2}~...] 0.001 secs (0.001u,0.s) +Chars 4282 - 4463 [Inductive~going~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) Chars 4464 - 4506 [#[global]~Hint~Constructors~go...] 0. secs (0.u,0.s) Chars 4508 - 4641 [Lemma~observing_going~{E}~{R1}...] 0. secs (0.u,0.s) Chars 4642 - 4648 [Proof.] 0. secs (0.u,0.s) -Chars 4651 - 4674 [(split;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 4677 - 4695 [(intros~[[]];~auto).] 0. secs (0.u,0.s) +Chars 4651 - 4674 [split;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 4677 - 4695 [intros~[[]];~auto.] 0. secs (0.u,0.s) Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) Chars 4702 - 4726 [Section~going_relations.] 0. secs (0.u,0.s) Chars 4728 - 4766 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 4767 - 4815 [Variable~(eq_~:~itree~E~R~->~i...] 0. secs (0.u,0.s) Chars 4817 - 4884 [#[global]~Instance~going_go~:~...] 0. secs (0.u,0.s) Chars 4885 - 4891 [Proof.] 0. secs (0.u,0.s) -Chars 4892 - 4912 [(intros~?~?~[];~auto).] 0. secs (0.u,0.s) +Chars 4892 - 4912 [intros~?~?~[];~auto.] 0. secs (0.u,0.s) Chars 4913 - 4917 [Qed.] 0. secs (0.u,0.s) Chars 4919 - 5026 [#[global]~Instance~monotonic_g...] 0. secs (0.u,0.s) Chars 5027 - 5033 [Proof.] 0. secs (0.u,0.s) -Chars 5034 - 5068 [(intros~?~?~?~[];~eauto~with~i...] 0. secs (0.u,0.s) +Chars 5034 - 5068 [intros~?~?~?~[];~eauto~with~it...] 0. secs (0.u,0.s) Chars 5069 - 5073 [Qed.] 0. secs (0.u,0.s) Chars 5075 - 5159 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5215 [(intros~[];~constructor;~compu...] 0.062 secs (0.061u,0.001s) +Chars 5169 - 5215 [intros~[];~constructor;~comput...] 0.046 secs (0.046u,0.s) Chars 5218 - 5219 [-] 0. secs (0.u,0.s) -Chars 5220 - 5251 [(intros~?~?~[];~auto~with~itree).] 0. secs (0.u,0.s) +Chars 5220 - 5251 [intros~?~?~[];~auto~with~itree.] 0. secs (0.u,0.s) Chars 5254 - 5255 [-] 0. secs (0.u,0.s) -Chars 5256 - 5293 [(intros~?~?~?~[]~[];~eauto~wit...] 0.001 secs (0.u,0.s) +Chars 5256 - 5293 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) Chars 5294 - 5298 [Qed.] 0. secs (0.u,0.s) Chars 5300 - 5320 [End~going_relations.] 0. secs (0.u,0.s) diff --git a/theories/Eq/SimUpToTaus.v.timing b/theories/Eq/SimUpToTaus.v.timing index e8c67f86..add0108f 100644 --- a/theories/Eq/SimUpToTaus.v.timing +++ b/theories/Eq/SimUpToTaus.v.timing @@ -1,16 +1,16 @@ -Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) +Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) Chars 573 - 635 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.204 secs (0.178u,0.024s) +Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.14 secs (0.125u,0.014s) Chars 750 - 763 [Section~SUTT.] 0. secs (0.u,0.s) Chars 765 - 831 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.003 secs (0.002u,0.s) +Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.002 secs (0.001u,0.s) Chars 1324 - 1356 [Hint~Constructors~suttF:~itree.] 0. secs (0.u,0.s) Chars 1358 - 1404 [Lemma~suttF_mono~:~Proper~(leq...] 0. secs (0.u,0.s) Chars 1405 - 1411 [Proof.] 0. secs (0.u,0.s) -Chars 1414 - 1427 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 1430 - 1461 [(induction~H0;~eauto~with~itree).] 0.001 secs (0.u,0.s) -Chars 1464 - 1499 [(constructor;~intro;~apply~H,~...] 0. secs (0.u,0.s) -Chars 1502 - 1531 [(constructor;~apply~H,~EQTAUS).] 0. secs (0.u,0.s) +Chars 1414 - 1427 [repeat~intro.] 0. secs (0.u,0.s) +Chars 1430 - 1461 [induction~H0;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 1464 - 1499 [constructor;~intro;~apply~H,~S...] 0. secs (0.u,0.s) +Chars 1502 - 1531 [constructor;~apply~H,~EQTAUS.] 0. secs (0.u,0.s) Chars 1532 - 1536 [Qed.] 0. secs (0.u,0.s) Chars 1538 - 1603 [Definition~sutt_mon~:=~{|~body...] 0. secs (0.u,0.s) Chars 1605 - 1701 [Definition~sutt~(t1~:~itree~E~...] 0. secs (0.u,0.s) @@ -22,9 +22,9 @@ Chars 1814 - 1831 [Section~SUTT_rel.] 0. secs (0.u,0.s) Chars 1833 - 1893 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) Chars 1895 - 1995 [Lemma~reflexive_suttF~`{Reflex...] 0. secs (0.u,0.s) Chars 1996 - 2002 [Proof.] 0. secs (0.u,0.s) -Chars 2005 - 2022 [(unfold~Reflexive).] 0. secs (0.u,0.s) -Chars 2023 - 2032 [(intros~x).] 0. secs (0.u,0.s) -Chars 2035 - 2064 [(destruct~x;~eauto~with~itree).] 0.002 secs (0.001u,0.s) +Chars 2005 - 2022 [unfold~Reflexive.] 0. secs (0.u,0.s) +Chars 2023 - 2032 [intros~x.] 0. secs (0.u,0.s) +Chars 2035 - 2064 [destruct~x;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 2065 - 2069 [Qed.] 0. secs (0.u,0.s) Chars 2071 - 2084 [End~SUTT_rel.] 0. secs (0.u,0.s) Chars 2086 - 2105 [Section~SUTT_facts.] 0. secs (0.u,0.s) @@ -32,213 +32,213 @@ Chars 2107 - 2173 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) Chars 2175 - 2190 [End~SUTT_facts.] 0. secs (0.u,0.s) Chars 2192 - 2411 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) Chars 2412 - 2418 [Proof.] 0. secs (0.u,0.s) -Chars 2421 - 2428 [(intros).] 0. secs (0.u,0.s) -Chars 2429 - 2435 [(inv~H).] 0.006 secs (0.004u,0.001s) -Chars 2436 - 2455 [(ddestruction;~auto).] 0.003 secs (0.002u,0.001s) -Chars 2456 - 2460 [Qed.] 0.005 secs (0.003u,0.001s) -Chars 2462 - 2646 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0.001 secs (0.u,0.s) +Chars 2421 - 2428 [intros.] 0. secs (0.u,0.s) +Chars 2429 - 2435 [inv~H.] 0.003 secs (0.002u,0.s) +Chars 2436 - 2455 [ddestruction;~auto.] 0.002 secs (0.001u,0.s) +Chars 2456 - 2460 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2462 - 2646 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) Chars 2647 - 2653 [Proof.] 0. secs (0.u,0.s) -Chars 2656 - 2663 [(intros).] 0. secs (0.u,0.s) +Chars 2656 - 2663 [intros.] 0. secs (0.u,0.s) Chars 2664 - 2674 [step~in~H.] 0. secs (0.u,0.s) -Chars 2675 - 2686 [(simpl~in~H).] 0. secs (0.u,0.s) +Chars 2675 - 2686 [simpl~in~H.] 0. secs (0.u,0.s) Chars 2689 - 2729 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) -Chars 2730 - 2734 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2730 - 2734 [Qed.] 0. secs (0.u,0.s) Chars 2736 - 2884 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) Chars 2885 - 2891 [Proof.] 0. secs (0.u,0.s) -Chars 2894 - 2901 [(intros).] 0. secs (0.u,0.s) -Chars 2902 - 2907 [step.] 0.001 secs (0.u,0.s) +Chars 2894 - 2901 [intros.] 0. secs (0.u,0.s) +Chars 2902 - 2907 [step.] 0. secs (0.u,0.s) Chars 2908 - 2918 [step~in~H.] 0. secs (0.u,0.s) Chars 2921 - 2933 [constructor.] 0. secs (0.u,0.s) Chars 2934 - 2939 [auto.] 0. secs (0.u,0.s) -Chars 2940 - 2944 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2940 - 2944 [Qed.] 0.02 secs (0.019u,0.001s) Chars 2946 - 3093 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) Chars 3094 - 3100 [Proof.] 0. secs (0.u,0.s) -Chars 3103 - 3110 [(intros).] 0. secs (0.u,0.s) -Chars 3111 - 3116 [step.] 0.001 secs (0.u,0.s) +Chars 3103 - 3110 [intros.] 0. secs (0.u,0.s) +Chars 3111 - 3116 [step.] 0. secs (0.u,0.s) Chars 3119 - 3131 [constructor.] 0. secs (0.u,0.s) Chars 3132 - 3140 [exact~H.] 0. secs (0.u,0.s) -Chars 3141 - 3145 [Qed.] 0.036 secs (0.027u,0.008s) +Chars 3141 - 3145 [Qed.] 0. secs (0.u,0.s) Chars 3147 - 3298 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) Chars 3299 - 3305 [Proof.] 0. secs (0.u,0.s) -Chars 3308 - 3326 [(unfold~sutt~at~-~1).] 0. secs (0.u,0.s) -Chars 3327 - 3346 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3347 - 3362 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 3308 - 3326 [unfold~sutt~at~-~1.] 0. secs (0.u,0.s) +Chars 3327 - 3346 [icoinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 3347 - 3362 [intros~t1~t2~H.] 0. secs (0.u,0.s) Chars 3363 - 3373 [step~in~H.] 0. secs (0.u,0.s) -Chars 3376 - 3382 [(inv~H).] 0.014 secs (0.013u,0.s) +Chars 3376 - 3382 [inv~H.] 0.009 secs (0.009u,0.s) Chars 3385 - 3386 [-] 0. secs (0.u,0.s) -Chars 3387 - 3422 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) -Chars 3427 - 3439 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 3387 - 3422 [eapply~suttF_mono;~[~~|~exact~...] 0. secs (0.u,0.s) +Chars 3427 - 3439 [intros~?~?~?.] 0. secs (0.u,0.s) Chars 3440 - 3464 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) Chars 3467 - 3468 [-] 0. secs (0.u,0.s) Chars 3469 - 3481 [constructor.] 0. secs (0.u,0.s) -Chars 3482 - 3492 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 3482 - 3492 [apply~CIH.] 0. secs (0.u,0.s) Chars 3493 - 3506 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 3507 - 3511 [Qed.] 0.005 secs (0.005u,0.s) +Chars 3507 - 3511 [Qed.] 0.03 secs (0.03u,0.s) Chars 3513 - 3723 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) Chars 3724 - 3730 [Proof.] 0. secs (0.u,0.s) -Chars 3733 - 3740 [(intros).] 0. secs (0.u,0.s) -Chars 3743 - 3770 [(remember~(TauF~t1)~as~ott1).] 0. secs (0.u,0.s) -Chars 3773 - 3853 [(induction~H;~intros;~subst;~t...] 0.044 secs (0.042u,0.001s) +Chars 3733 - 3740 [intros.] 0. secs (0.u,0.s) +Chars 3743 - 3770 [remember~(TauF~t1)~as~ott1.] 0. secs (0.u,0.s) +Chars 3773 - 3853 [induction~H;~intros;~subst;~tr...] 0.005 secs (0.005u,0.s) Chars 3856 - 3871 [step~in~EQTAUS.] 0. secs (0.u,0.s) Chars 3872 - 3885 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 3886 - 3890 [Qed.] 0.004 secs (0.003u,0.s) +Chars 3886 - 3890 [Qed.] 0.002 secs (0.002u,0.s) Chars 3892 - 4041 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) Chars 4042 - 4048 [Proof.] 0. secs (0.u,0.s) -Chars 4051 - 4058 [(intros).] 0. secs (0.u,0.s) +Chars 4051 - 4058 [intros.] 0. secs (0.u,0.s) Chars 4059 - 4069 [step~in~H.] 0. secs (0.u,0.s) Chars 4070 - 4075 [step.] 0. secs (0.u,0.s) -Chars 4078 - 4109 [(apply~suttF_inv_tau_left;~auto).] 0. secs (0.u,0.s) -Chars 4110 - 4114 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4078 - 4109 [apply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) +Chars 4110 - 4114 [Qed.] 0. secs (0.u,0.s) Chars 4116 - 4275 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) Chars 4276 - 4282 [Proof.] 0. secs (0.u,0.s) -Chars 4285 - 4304 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) -Chars 4305 - 4324 [(intros~t1~t2~H1~H2).] 0. secs (0.u,0.s) +Chars 4285 - 4304 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4305 - 4324 [intros~t1~t2~H1~H2.] 0. secs (0.u,0.s) Chars 4327 - 4338 [step~in~H1.] 0. secs (0.u,0.s) Chars 4339 - 4350 [step~in~H2.] 0. secs (0.u,0.s) -Chars 4353 - 4398 [(induction~H1;~intros;~subst;~...] 0.007 secs (0.006u,0.001s) +Chars 4353 - 4398 [induction~H1;~intros;~subst;~a...] 0.005 secs (0.004u,0.s) Chars 4401 - 4402 [-] 0. secs (0.u,0.s) Chars 4423 - 4435 [constructor.] 0. secs (0.u,0.s) Chars 4436 - 4444 [intro~x.] 0. secs (0.u,0.s) -Chars 4445 - 4455 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4445 - 4455 [apply~CIH.] 0. secs (0.u,0.s) Chars 4460 - 4461 [+] 0. secs (0.u,0.s) -Chars 4462 - 4474 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 4462 - 4474 [unfold~sutt.] 0. secs (0.u,0.s) Chars 4475 - 4491 [exact~(SUTTK~x).] 0. secs (0.u,0.s) Chars 4496 - 4497 [+] 0. secs (0.u,0.s) -Chars 4498 - 4510 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 4498 - 4510 [unfold~sutt.] 0. secs (0.u,0.s) Chars 4511 - 4550 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) Chars 4553 - 4554 [-] 0. secs (0.u,0.s) -Chars 4581 - 4600 [(constructor;~eauto).] 0.003 secs (0.002u,0.s) -Chars 4601 - 4622 [(eapply~IHsuttF;~auto).] 0. secs (0.u,0.s) -Chars 4623 - 4655 [(eapply~suttF_inv_tau_left;~au...] 0. secs (0.u,0.s) +Chars 4581 - 4600 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 4601 - 4622 [eapply~IHsuttF;~auto.] 0. secs (0.u,0.s) +Chars 4623 - 4655 [eapply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) Chars 4658 - 4659 [-] 0. secs (0.u,0.s) -Chars 4685 - 4692 [(inv~H2).] 0.023 secs (0.023u,0.s) +Chars 4685 - 4692 [inv~H2.] 0.016 secs (0.016u,0.s) Chars 4697 - 4698 [+] 0. secs (0.u,0.s) Chars 4699 - 4711 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 4712 - 4726 [(genobs~t0~ot0).] 0. secs (0.u,0.s) -Chars 4733 - 4778 [(hinduction~EQTAUS0~before~CIH...] 0.002 secs (0.002u,0.s) +Chars 4712 - 4726 [genobs~t0~ot0.] 0. secs (0.u,0.s) +Chars 4733 - 4778 [hinduction~EQTAUS0~before~CIH;...] 0.001 secs (0.001u,0.s) Chars 4785 - 4786 [*] 0. secs (0.u,0.s) -Chars 4787 - 4806 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 4807 - 4815 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 4787 - 4806 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 4807 - 4815 [simpobs.] 0. secs (0.u,0.s) Chars 4816 - 4828 [constructor.] 0. secs (0.u,0.s) Chars 4829 - 4835 [eauto.] 0. secs (0.u,0.s) Chars 4842 - 4843 [*] 0. secs (0.u,0.s) -Chars 4844 - 4863 [(constructor;~eauto).] 0. secs (0.u,0.s) -Chars 4864 - 4872 [simpobs.] 0.001 secs (0.001u,0.s) +Chars 4844 - 4863 [constructor;~eauto.] 0. secs (0.u,0.s) +Chars 4864 - 4872 [simpobs.] 0. secs (0.u,0.s) Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) Chars 4886 - 4894 [intro~x.] 0. secs (0.u,0.s) -Chars 4903 - 4913 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4903 - 4913 [apply~CIH.] 0. secs (0.u,0.s) Chars 4922 - 4924 [--] 0. secs (0.u,0.s) Chars 4925 - 4965 [exact~(sutt_inv_vis~_~_~_~_~_~...] 0. secs (0.u,0.s) Chars 4974 - 4976 [--] 0. secs (0.u,0.s) -Chars 4977 - 4989 [(unfold~sutt).] 0. secs (0.u,0.s) -Chars 4990 - 5002 [(apply~SUTTK).] 0. secs (0.u,0.s) +Chars 4977 - 4989 [unfold~sutt.] 0. secs (0.u,0.s) +Chars 4990 - 5002 [apply~SUTTK.] 0. secs (0.u,0.s) Chars 5009 - 5010 [*] 0. secs (0.u,0.s) -Chars 5011 - 5030 [(constructor;~eauto).] 0. secs (0.u,0.s) +Chars 5011 - 5030 [constructor;~eauto.] 0. secs (0.u,0.s) Chars 5031 - 5039 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5040 - 5064 [(eapply~IHEQTAUS0;~eauto).] 0. secs (0.u,0.s) -Chars 5073 - 5098 [(rewrite~(itree_eta'~ot1)).] 0. secs (0.u,0.s) -Chars 5099 - 5123 [(apply~sutt_inv_tau_left).] 0. secs (0.u,0.s) -Chars 5124 - 5136 [(unfold~sutt).] 0. secs (0.u,0.s) +Chars 5040 - 5064 [eapply~IHEQTAUS0;~eauto.] 0. secs (0.u,0.s) +Chars 5073 - 5098 [rewrite~(itree_eta'~ot1).] 0. secs (0.u,0.s) +Chars 5099 - 5123 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) +Chars 5124 - 5136 [unfold~sutt.] 0. secs (0.u,0.s) Chars 5137 - 5150 [exact~EQTAUS.] 0. secs (0.u,0.s) Chars 5157 - 5158 [*] 0. secs (0.u,0.s) Chars 5159 - 5171 [constructor.] 0. secs (0.u,0.s) -Chars 5172 - 5188 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 5189 - 5221 [(apply~sutt_elim_tau_right;~au...] 0. secs (0.u,0.s) +Chars 5172 - 5188 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 5189 - 5221 [apply~sutt_elim_tau_right;~auto.] 0. secs (0.u,0.s) Chars 5226 - 5227 [+] 0. secs (0.u,0.s) Chars 5228 - 5240 [constructor.] 0. secs (0.u,0.s) -Chars 5241 - 5284 [(apply~CIH;~apply~sutt_elim_ta...] 0. secs (0.u,0.s) -Chars 5285 - 5289 [Qed.] 0.015 secs (0.015u,0.s) +Chars 5241 - 5284 [apply~CIH;~apply~sutt_elim_tau...] 0. secs (0.u,0.s) +Chars 5285 - 5289 [Qed.] 0.01 secs (0.01u,0.s) Chars 5291 - 5426 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) -Chars 5436 - 5454 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 5455 - 5470 [(intros~t1~t2~H).] 0. secs (0.u,0.s) +Chars 5436 - 5454 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 5455 - 5470 [intros~t1~t2~H.] 0. secs (0.u,0.s) Chars 5473 - 5483 [step~in~H.] 0. secs (0.u,0.s) -Chars 5486 - 5498 [(induction~H).] 0.001 secs (0.001u,0.s) +Chars 5486 - 5498 [induction~H.] 0. secs (0.u,0.s) Chars 5501 - 5502 [-] 0. secs (0.u,0.s) -Chars 5503 - 5521 [(constructor;~auto).] 0. secs (0.u,0.s) +Chars 5503 - 5521 [constructor;~auto.] 0. secs (0.u,0.s) Chars 5524 - 5525 [-] 0. secs (0.u,0.s) Chars 5526 - 5538 [constructor.] 0. secs (0.u,0.s) Chars 5539 - 5551 [constructor.] 0. secs (0.u,0.s) -Chars 5552 - 5562 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 5552 - 5562 [apply~CIH.] 0. secs (0.u,0.s) Chars 5563 - 5573 [exact~REL.] 0. secs (0.u,0.s) Chars 5576 - 5577 [-] 0. secs (0.u,0.s) Chars 5578 - 5590 [constructor.] 0. secs (0.u,0.s) Chars 5591 - 5597 [intro.] 0. secs (0.u,0.s) -Chars 5598 - 5608 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5609 - 5619 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5598 - 5608 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5609 - 5619 [apply~REL.] 0. secs (0.u,0.s) Chars 5622 - 5623 [-] 0. secs (0.u,0.s) Chars 5624 - 5636 [constructor.] 0. secs (0.u,0.s) -Chars 5637 - 5642 [step.] 0.001 secs (0.001u,0.s) +Chars 5637 - 5642 [step.] 0. secs (0.u,0.s) Chars 5643 - 5657 [exact~IHeqitF.] 0. secs (0.u,0.s) Chars 5660 - 5661 [-] 0. secs (0.u,0.s) Chars 5662 - 5674 [constructor.] 0. secs (0.u,0.s) Chars 5675 - 5689 [exact~IHeqitF.] 0. secs (0.u,0.s) -Chars 5690 - 5694 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5752 - 6013 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0.001 secs (0.001u,0.s) +Chars 5690 - 5694 [Qed.] 0.002 secs (0.002u,0.s) +Chars 5752 - 6013 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) Chars 6014 - 6020 [Proof.] 0. secs (0.u,0.s) Chars 6023 - 6041 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6042 - 6066 [(intros~t1~t2~H~s1~s2~Hs).] 0. secs (0.u,0.s) +Chars 6042 - 6066 [intros~t1~t2~H~s1~s2~Hs.] 0. secs (0.u,0.s) Chars 6069 - 6079 [step~in~H.] 0. secs (0.u,0.s) -Chars 6080 - 6100 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) -Chars 6103 - 6123 [(induction~H;~intros).] 0.001 secs (0.001u,0.s) +Chars 6080 - 6100 [unfold~observe;~cbn.] 0. secs (0.u,0.s) +Chars 6103 - 6123 [induction~H;~intros.] 0. secs (0.u,0.s) Chars 6126 - 6127 [-] 0. secs (0.u,0.s) -Chars 6128 - 6134 [(simpl).] 0. secs (0.u,0.s) -Chars 6135 - 6149 [(apply~Hs~in~H).] 0. secs (0.u,0.s) +Chars 6128 - 6134 [simpl.] 0. secs (0.u,0.s) +Chars 6135 - 6149 [apply~Hs~in~H.] 0. secs (0.u,0.s) Chars 6150 - 6160 [step~in~H.] 0. secs (0.u,0.s) -Chars 6165 - 6195 [(eapply~suttF_mono;~[~~|~exact...] 0.001 secs (0.001u,0.s) -Chars 6200 - 6212 [(intros~?~?~?).] 0. secs (0.u,0.s) +Chars 6165 - 6195 [eapply~suttF_mono;~[~~|~exact~...] 0.001 secs (0.001u,0.s) +Chars 6200 - 6212 [intros~?~?~?.] 0. secs (0.u,0.s) Chars 6213 - 6237 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) Chars 6240 - 6241 [-] 0. secs (0.u,0.s) -Chars 6242 - 6248 [(simpl).] 0. secs (0.u,0.s) +Chars 6242 - 6248 [simpl.] 0. secs (0.u,0.s) Chars 6249 - 6262 [econstructor.] 0. secs (0.u,0.s) -Chars 6263 - 6270 [(intros).] 0. secs (0.u,0.s) -Chars 6271 - 6299 [(apply~CIH;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 6263 - 6270 [intros.] 0. secs (0.u,0.s) +Chars 6271 - 6299 [apply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 6302 - 6303 [-] 0. secs (0.u,0.s) Chars 6304 - 6316 [constructor.] 0. secs (0.u,0.s) Chars 6317 - 6323 [eauto.] 0. secs (0.u,0.s) Chars 6326 - 6327 [-] 0. secs (0.u,0.s) Chars 6328 - 6340 [constructor.] 0. secs (0.u,0.s) -Chars 6345 - 6425 [(change~~~~(elem~c~(observe~(I...] 0. secs (0.u,0.s) -Chars 6430 - 6446 [(apply~CIH;~auto).] 0. secs (0.u,0.s) -Chars 6447 - 6451 [Qed.] 0.006 secs (0.006u,0.s) +Chars 6345 - 6425 [change~~~(elem~c~(observe~(ITr...] 0. secs (0.u,0.s) +Chars 6430 - 6446 [apply~CIH;~auto.] 0. secs (0.u,0.s) +Chars 6447 - 6451 [Qed.] 0.004 secs (0.004u,0.s) Chars 6525 - 6670 [#[global]~Instance~Proper_sutt...] 0. secs (0.u,0.s) Chars 6671 - 6677 [Proof.] 0. secs (0.u,0.s) -Chars 6680 - 6691 [(repeat~red).] 0. secs (0.u,0.s) +Chars 6680 - 6691 [repeat~red.] 0. secs (0.u,0.s) Chars 6692 - 6710 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6711 - 6736 [(intros~x~y~H~x0~y0~H0~H1).] 0. secs (0.u,0.s) +Chars 6711 - 6736 [intros~x~y~H~x0~y0~H0~H1.] 0. secs (0.u,0.s) Chars 6739 - 6749 [step~in~H.] 0. secs (0.u,0.s) Chars 6750 - 6761 [step~in~H0.] 0. secs (0.u,0.s) Chars 6762 - 6773 [step~in~H1.] 0. secs (0.u,0.s) Chars 6776 - 6793 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) -Chars 6796 - 6817 [(induction~H1;~intros).] 0.001 secs (0.001u,0.s) +Chars 6796 - 6817 [induction~H1;~intros.] 0. secs (0.u,0.s) Chars 6820 - 6821 [-] 0. secs (0.u,0.s) -Chars 6822 - 6847 [(inv~H1;~try~discriminate).] 0.025 secs (0.025u,0.s) -Chars 6848 - 6873 [(inv~H0;~try~discriminate).] 0.022 secs (0.022u,0.s) +Chars 6822 - 6847 [inv~H1;~try~discriminate.] 0.017 secs (0.017u,0.s) +Chars 6848 - 6873 [inv~H0;~try~discriminate.] 0.014 secs (0.014u,0.s) Chars 6874 - 6887 [econstructor.] 0. secs (0.u,0.s) Chars 6888 - 6894 [eauto.] 0. secs (0.u,0.s) Chars 6897 - 6898 [-] 0. secs (0.u,0.s) -Chars 6899 - 6941 [(dependent~destruction~H;~try~...] 0.025 secs (0.025u,0.s) -Chars 6946 - 6989 [(dependent~destruction~H0;~try...] 0.024 secs (0.024u,0.s) -Chars 6994 - 7002 [simpobs.] 0.003 secs (0.003u,0.s) +Chars 6899 - 6941 [dependent~destruction~H;~try~d...] 0.017 secs (0.017u,0.s) +Chars 6946 - 6989 [dependent~destruction~H0;~try~...] 0.017 secs (0.017u,0.s) +Chars 6994 - 7002 [simpobs.] 0.002 secs (0.002u,0.s) Chars 7007 - 7019 [constructor.] 0. secs (0.u,0.s) -Chars 7020 - 7027 [(intros).] 0. secs (0.u,0.s) -Chars 7028 - 7039 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7045 - 7055 [(apply~REL).] 0. secs (0.u,0.s) -Chars 7061 - 7072 [(apply~REL0).] 0. secs (0.u,0.s) -Chars 7073 - 7085 [(apply~SUTTK).] 0. secs (0.u,0.s) +Chars 7020 - 7027 [intros.] 0. secs (0.u,0.s) +Chars 7028 - 7039 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7045 - 7055 [apply~REL.] 0. secs (0.u,0.s) +Chars 7061 - 7072 [apply~REL0.] 0. secs (0.u,0.s) +Chars 7073 - 7085 [apply~SUTTK.] 0. secs (0.u,0.s) Chars 7090 - 7091 [-] 0. secs (0.u,0.s) -Chars 7092 - 7135 [(dependent~destruction~H0;~try...] 0.023 secs (0.022u,0.s) +Chars 7092 - 7135 [dependent~destruction~H0;~try~...] 0.015 secs (0.015u,0.s) Chars 7140 - 7148 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7149 - 7161 [constructor.] 0. secs (0.u,0.s) -Chars 7167 - 7187 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) +Chars 7167 - 7187 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) Chars 7188 - 7204 [now~step~in~REL.] 0. secs (0.u,0.s) Chars 7208 - 7209 [-] 0. secs (0.u,0.s) -Chars 7210 - 7252 [(dependent~destruction~H;~try~...] 0.025 secs (0.024u,0.s) +Chars 7210 - 7252 [dependent~destruction~H;~try~d...] 0.016 secs (0.016u,0.s) Chars 7257 - 7265 [simpobs.] 0.001 secs (0.001u,0.s) Chars 7266 - 7278 [constructor.] 0. secs (0.u,0.s) -Chars 7283 - 7313 [(rewrite~(itree_eta'~ot2)~in~*).] 0. secs (0.u,0.s) -Chars 7314 - 7325 [(eapply~CIH).] 0. secs (0.u,0.s) -Chars 7331 - 7341 [(apply~REL).] 0. secs (0.u,0.s) -Chars 7342 - 7357 [(step;~apply~H0).] 0.001 secs (0.001u,0.s) -Chars 7358 - 7371 [(apply~EQTAUS).] 0. secs (0.u,0.s) -Chars 7373 - 7377 [Qed.] 0.071 secs (0.069u,0.001s) +Chars 7283 - 7313 [rewrite~(itree_eta'~ot2)~in~*.] 0. secs (0.u,0.s) +Chars 7314 - 7325 [eapply~CIH.] 0. secs (0.u,0.s) +Chars 7331 - 7341 [apply~REL.] 0. secs (0.u,0.s) +Chars 7342 - 7357 [step;~apply~H0.] 0.001 secs (0.001u,0.s) +Chars 7358 - 7371 [apply~EQTAUS.] 0. secs (0.u,0.s) +Chars 7373 - 7377 [Qed.] 0.046 secs (0.045u,0.s) diff --git a/theories/Events.v.timing b/theories/Events.v.timing index 89386b46..32281e42 100644 --- a/theories/Events.v.timing +++ b/theories/Events.v.timing @@ -1 +1 @@ -Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.179 secs (0.155u,0.023s) +Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.121 secs (0.108u,0.012s) diff --git a/theories/Events/Concurrency.v.timing b/theories/Events/Concurrency.v.timing index 3d515953..927d6463 100644 --- a/theories/Events/Concurrency.v.timing +++ b/theories/Events/Concurrency.v.timing @@ -1,10 +1,10 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.043 secs (0.033u,0.009s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.03 secs (0.023u,0.006s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.048 secs (0.036u,0.011s) -Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.08 secs (0.075u,0.004s) -Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0.001 secs (0.001u,0.s) -Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.002 secs (0.002u,0.s) +Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.028 secs (0.022u,0.005s) +Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.053 secs (0.052u,0.001s) +Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0. secs (0.u,0.s) +Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.001 secs (0.001u,0.s) Chars 2164 - 2274 [CoFixpoint~round_robin~{E}~(q~...] 0. secs (0.u,0.s) Chars 2276 - 2372 [Definition~run_spawn~{E}~(t~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Dependent.v.timing b/theories/Events/Dependent.v.timing index 758eb45e..bf939f3d 100644 --- a/theories/Events/Dependent.v.timing +++ b/theories/Events/Dependent.v.timing @@ -1,4 +1,4 @@ -Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.049 secs (0.037u,0.011s) +Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.006s) Chars 720 - 748 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 765 - 852 [Variant~depE~{I~:~Type}~(F~:~I...] 0. secs (0.u,0.s) Chars 854 - 876 [Arguments~Dep~{I~F}~&.] 0. secs (0.u,0.s) diff --git a/theories/Events/Exception.v.timing b/theories/Events/Exception.v.timing index 46bf1add..ed6a3d2e 100644 --- a/theories/Events/Exception.v.timing +++ b/theories/Events/Exception.v.timing @@ -1,6 +1,6 @@ -Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.069 secs (0.05u,0.016s) +Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.042 secs (0.033u,0.008s) Chars 77 - 100 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 156 - 237 [Variant~exceptE~(Err~:~Type)~:...] 0. secs (0.u,0.s) -Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.001 secs (0.001u,0.s) -Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.026 secs (0.022u,0.003s) -Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.003 secs (0.003u,0.s) +Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.017 secs (0.016u,0.001s) +Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.002 secs (0.002u,0.s) +Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.002 secs (0.002u,0.s) diff --git a/theories/Events/ExceptionFacts.v.timing b/theories/Events/ExceptionFacts.v.timing index 33d9155f..b01a1dba 100644 --- a/theories/Events/ExceptionFacts.v.timing +++ b/theories/Events/ExceptionFacts.v.timing @@ -1,479 +1,479 @@ -Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) +Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) Chars 61 - 110 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.224 secs (0.196u,0.028s) +Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) +Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.154 secs (0.138u,0.015s) Chars 242 - 256 [Import~Monads.] 0. secs (0.u,0.s) Chars 257 - 278 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 279 - 311 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 314 - 438 [Lemma~try_catch_ret~:~~~forall...] 0.001 secs (0.u,0.s) +Chars 314 - 438 [Lemma~try_catch_ret~:~~~forall...] 0. secs (0.u,0.s) Chars 439 - 445 [Proof.] 0. secs (0.u,0.s) -Chars 448 - 455 [(intros).] 0. secs (0.u,0.s) -Chars 456 - 473 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 474 - 530 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 533 - 553 [(rewrite~unfold_iter).] 0.017 secs (0.012u,0.004s) -Chars 554 - 558 [(cbn).] 0. secs (0.u,0.s) -Chars 559 - 578 [(rewrite~bind_ret_l).] 0.041 secs (0.037u,0.003s) +Chars 448 - 455 [intros.] 0. secs (0.u,0.s) +Chars 456 - 473 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 474 - 530 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 533 - 553 [rewrite~unfold_iter.] 0.032 secs (0.029u,0.003s) +Chars 554 - 558 [cbn.] 0. secs (0.u,0.s) +Chars 559 - 578 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) Chars 579 - 591 [reflexivity.] 0. secs (0.u,0.s) -Chars 592 - 596 [Qed.] 0.003 secs (0.003u,0.s) -Chars 598 - 741 [Lemma~try_catch_tau~:~~~forall...] 0.001 secs (0.001u,0.s) +Chars 592 - 596 [Qed.] 0.002 secs (0.002u,0.s) +Chars 598 - 741 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 742 - 748 [Proof.] 0. secs (0.u,0.s) -Chars 751 - 758 [(intros).] 0. secs (0.u,0.s) -Chars 759 - 776 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 777 - 833 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 836 - 856 [(rewrite~unfold_iter).] 0.052 secs (0.051u,0.s) -Chars 857 - 861 [(cbn).] 0. secs (0.u,0.s) -Chars 862 - 881 [(rewrite~bind_ret_l).] 0.012 secs (0.011u,0.s) +Chars 751 - 758 [intros.] 0. secs (0.u,0.s) +Chars 759 - 776 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 777 - 833 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 836 - 856 [rewrite~unfold_iter.] 0.038 secs (0.038u,0.s) +Chars 857 - 861 [cbn.] 0. secs (0.u,0.s) +Chars 862 - 881 [rewrite~bind_ret_l.] 0.008 secs (0.008u,0.s) Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) -Chars 895 - 899 [Qed.] 0.004 secs (0.004u,0.s) +Chars 895 - 899 [Qed.] 0.003 secs (0.003u,0.s) Chars 901 - 1123 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) Chars 1124 - 1130 [Proof.] 0. secs (0.u,0.s) -Chars 1134 - 1141 [(intros).] 0. secs (0.u,0.s) -Chars 1142 - 1159 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 1160 - 1216 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 1220 - 1240 [(rewrite~unfold_iter).] 0.011 secs (0.01u,0.s) -Chars 1241 - 1245 [(cbn).] 0. secs (0.u,0.s) -Chars 1246 - 1263 [(unfold~ITree.map).] 0. secs (0.u,0.s) -Chars 1267 - 1285 [(rewrite~bind_bind).] 0.01 secs (0.009u,0.s) -Chars 1286 - 1312 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 1313 - 1332 [(rewrite~bind_ret_r).] 0.002 secs (0.002u,0.s) +Chars 1134 - 1141 [intros.] 0. secs (0.u,0.s) +Chars 1142 - 1159 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 1160 - 1216 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 1220 - 1240 [rewrite~unfold_iter.] 0.007 secs (0.007u,0.s) +Chars 1241 - 1245 [cbn.] 0. secs (0.u,0.s) +Chars 1246 - 1263 [unfold~ITree.map.] 0. secs (0.u,0.s) +Chars 1267 - 1285 [rewrite~bind_bind.] 0.006 secs (0.006u,0.s) +Chars 1286 - 1312 [setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) +Chars 1313 - 1332 [rewrite~bind_ret_r.] 0.001 secs (0.001u,0.s) Chars 1336 - 1348 [reflexivity.] 0. secs (0.u,0.s) -Chars 1349 - 1353 [Qed.] 0.005 secs (0.005u,0.s) -Chars 1355 - 1550 [Lemma~try_catch_ev~:~~~forall~...] 0.001 secs (0.001u,0.s) +Chars 1349 - 1353 [Qed.] 0.003 secs (0.003u,0.s) +Chars 1355 - 1550 [Lemma~try_catch_ev~:~~~forall~...] 0. secs (0.u,0.s) Chars 1551 - 1557 [Proof.] 0. secs (0.u,0.s) -Chars 1560 - 1567 [(intros).] 0. secs (0.u,0.s) -Chars 1568 - 1585 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 1586 - 1642 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 1645 - 1665 [(rewrite~unfold_iter).] 0.014 secs (0.014u,0.s) -Chars 1666 - 1670 [(cbn).] 0. secs (0.u,0.s) -Chars 1674 - 1691 [(rewrite~bind_map).] 0.012 secs (0.012u,0.s) -Chars 1692 - 1713 [(rewrite~bind_trigger).] 0.013 secs (0.012u,0.s) +Chars 1560 - 1567 [intros.] 0. secs (0.u,0.s) +Chars 1568 - 1585 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 1586 - 1642 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 1645 - 1665 [rewrite~unfold_iter.] 0.01 secs (0.009u,0.s) +Chars 1666 - 1670 [cbn.] 0. secs (0.u,0.s) +Chars 1674 - 1691 [rewrite~bind_map.] 0.008 secs (0.008u,0.s) +Chars 1692 - 1713 [rewrite~bind_trigger.] 0.008 secs (0.008u,0.s) Chars 1714 - 1726 [reflexivity.] 0. secs (0.u,0.s) -Chars 1729 - 1733 [Qed.] 0.005 secs (0.005u,0.s) +Chars 1729 - 1733 [Qed.] 0.004 secs (0.004u,0.s) Chars 1735 - 1887 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1922 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 1923 - 1933 [(red~in~Hk).] 0. secs (0.u,0.s) +Chars 1897 - 1922 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 1923 - 1933 [red~in~Hk.] 0. secs (0.u,0.s) Chars 1934 - 1950 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 1954 - 1966 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 1967 - 1974 [(intros).] 0. secs (0.u,0.s) -Chars 1975 - 1992 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 1993 - 2026 [setoid_rewrite~unfold_iter_ktree.] 0.071 secs (0.069u,0.s) -Chars 2029 - 2037 [(sinv~Ht).] 0.343 secs (0.338u,0.004s) +Chars 1954 - 1966 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 1967 - 1974 [intros.] 0. secs (0.u,0.s) +Chars 1975 - 1992 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 1993 - 2026 [setoid_rewrite~unfold_iter_ktree.] 0.053 secs (0.053u,0.s) +Chars 2029 - 2037 [sinv~Ht.] 0.24 secs (0.239u,0.001s) Chars 2041 - 2042 [-] 0. secs (0.u,0.s) -Chars 2043 - 2047 [(cbn).] 0. secs (0.u,0.s) -Chars 2048 - 2060 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 2043 - 2047 [cbn.] 0.002 secs (0.002u,0.s) +Chars 2048 - 2060 [reflexivity.] 0. secs (0.u,0.s) Chars 2064 - 2065 [-] 0. secs (0.u,0.s) -Chars 2066 - 2070 [(cbn).] 0. secs (0.u,0.s) -Chars 2071 - 2076 [etau.] 0.003 secs (0.003u,0.s) +Chars 2066 - 2070 [cbn.] 0. secs (0.u,0.s) +Chars 2071 - 2076 [etau.] 0.002 secs (0.002u,0.s) Chars 2080 - 2081 [-] 0. secs (0.u,0.s) -Chars 2082 - 2093 [(destruct~e).] 0.005 secs (0.005u,0.s) +Chars 2082 - 2093 [destruct~e.] 0.002 secs (0.002u,0.s) Chars 2098 - 2099 [+] 0. secs (0.u,0.s) -Chars 2100 - 2111 [(destruct~e).] 0.003 secs (0.003u,0.s) +Chars 2100 - 2111 [destruct~e.] 0.002 secs (0.002u,0.s) Chars 2112 - 2117 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2125 - 2144 [(rewrite~2!bind_map).] 0.063 secs (0.062u,0.s) -Chars 2145 - 2166 [(rewrite~2!bind_ret_r).] 0.043 secs (0.042u,0.s) -Chars 2174 - 2179 [step.] 0.01 secs (0.009u,0.s) -Chars 2180 - 2189 [(apply~Hk).] 0. secs (0.u,0.s) +Chars 2125 - 2144 [rewrite~2!bind_map.] 0.043 secs (0.042u,0.s) +Chars 2145 - 2166 [rewrite~2!bind_ret_r.] 0.029 secs (0.029u,0.s) +Chars 2174 - 2179 [step.] 0.007 secs (0.007u,0.s) +Chars 2180 - 2189 [apply~Hk.] 0. secs (0.u,0.s) Chars 2195 - 2196 [+] 0. secs (0.u,0.s) -Chars 2197 - 2201 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 2202 - 2207 [evis.] 0.003 secs (0.003u,0.s) -Chars 2208 - 2213 [step.] 0.003 secs (0.003u,0.s) -Chars 2214 - 2218 [(cbn).] 0. secs (0.u,0.s) -Chars 2219 - 2224 [etau.] 0.003 secs (0.003u,0.s) -Chars 2226 - 2230 [Qed.] 0.044 secs (0.042u,0.001s) +Chars 2197 - 2201 [cbn.] 0. secs (0.u,0.s) +Chars 2202 - 2207 [evis.] 0.002 secs (0.002u,0.s) +Chars 2208 - 2213 [step.] 0.002 secs (0.002u,0.s) +Chars 2214 - 2218 [cbn.] 0. secs (0.u,0.s) +Chars 2219 - 2224 [etau.] 0.002 secs (0.002u,0.s) +Chars 2226 - 2230 [Qed.] 0.031 secs (0.03u,0.s) Chars 2232 - 2369 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) -Chars 2379 - 2404 [(intros~t1~t2~Ht~k1~k2~Hk).] 0. secs (0.u,0.s) -Chars 2405 - 2415 [(red~in~Hk).] 0. secs (0.u,0.s) +Chars 2379 - 2404 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) +Chars 2405 - 2415 [red~in~Hk.] 0. secs (0.u,0.s) Chars 2416 - 2432 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 2436 - 2448 [coinduction.] 0.004 secs (0.003u,0.s) -Chars 2449 - 2456 [(intros).] 0. secs (0.u,0.s) -Chars 2457 - 2474 [(unfold~try_catch).] 0. secs (0.u,0.s) -Chars 2475 - 2508 [setoid_rewrite~unfold_iter_ktree.] 0.075 secs (0.073u,0.s) -Chars 2511 - 2522 [step~in~Ht.] 0.001 secs (0.001u,0.s) -Chars 2526 - 2571 [(hinduction~Ht~before~c;~intro...] 0.024 secs (0.023u,0.s) +Chars 2436 - 2448 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 2449 - 2456 [intros.] 0. secs (0.u,0.s) +Chars 2457 - 2474 [unfold~try_catch.] 0. secs (0.u,0.s) +Chars 2475 - 2508 [setoid_rewrite~unfold_iter_ktree.] 0.054 secs (0.054u,0.s) +Chars 2511 - 2522 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 2526 - 2571 [hinduction~Ht~before~c;~intros...] 0.016 secs (0.016u,0.s) Chars 2574 - 2575 [-] 0. secs (0.u,0.s) -Chars 2576 - 2580 [(cbn).] 0. secs (0.u,0.s) +Chars 2576 - 2580 [cbn.] 0. secs (0.u,0.s) Chars 2581 - 2593 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 2597 - 2598 [-] 0. secs (0.u,0.s) -Chars 2599 - 2603 [(cbn).] 0. secs (0.u,0.s) -Chars 2604 - 2609 [etau.] 0.003 secs (0.003u,0.s) +Chars 2599 - 2603 [cbn.] 0. secs (0.u,0.s) +Chars 2604 - 2609 [etau.] 0.002 secs (0.002u,0.s) Chars 2614 - 2615 [-] 0. secs (0.u,0.s) -Chars 2616 - 2627 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 2616 - 2627 [destruct~e.] 0. secs (0.u,0.s) Chars 2632 - 2633 [+] 0. secs (0.u,0.s) -Chars 2634 - 2645 [(destruct~e).] 0.003 secs (0.003u,0.s) -Chars 2646 - 2651 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 2658 - 2677 [(rewrite~2!bind_map).] 0.058 secs (0.057u,0.s) -Chars 2678 - 2699 [(rewrite~2!bind_ret_r).] 0.04 secs (0.039u,0.s) -Chars 2707 - 2712 [step.] 0.009 secs (0.009u,0.s) -Chars 2713 - 2722 [(apply~Hk).] 0. secs (0.u,0.s) +Chars 2634 - 2645 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 2646 - 2651 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 2658 - 2677 [rewrite~2!bind_map.] 0.04 secs (0.039u,0.s) +Chars 2678 - 2699 [rewrite~2!bind_ret_r.] 0.026 secs (0.026u,0.s) +Chars 2707 - 2712 [step.] 0.006 secs (0.006u,0.s) +Chars 2713 - 2722 [apply~Hk.] 0. secs (0.u,0.s) Chars 2728 - 2729 [+] 0. secs (0.u,0.s) -Chars 2730 - 2735 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 2736 - 2741 [evis.] 0.003 secs (0.002u,0.s) -Chars 2742 - 2747 [step.] 0.003 secs (0.003u,0.s) -Chars 2748 - 2752 [(cbn).] 0. secs (0.u,0.s) -Chars 2753 - 2758 [etau.] 0.003 secs (0.003u,0.s) +Chars 2730 - 2735 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 2736 - 2741 [evis.] 0.002 secs (0.002u,0.s) +Chars 2742 - 2747 [step.] 0.002 secs (0.002u,0.s) +Chars 2748 - 2752 [cbn.] 0. secs (0.u,0.s) +Chars 2753 - 2758 [etau.] 0.002 secs (0.002u,0.s) Chars 2762 - 2763 [-] 0. secs (0.u,0.s) -Chars 2764 - 2768 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2764 - 2768 [cbn.] 0. secs (0.u,0.s) Chars 2769 - 2774 [taul.] 0. secs (0.u,0.s) -Chars 2775 - 2794 [(eapply~IHHt;~eauto).] 0.001 secs (0.001u,0.s) +Chars 2775 - 2794 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) Chars 2797 - 2798 [-] 0. secs (0.u,0.s) -Chars 2799 - 2803 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 2799 - 2803 [cbn.] 0. secs (0.u,0.s) Chars 2804 - 2809 [taur.] 0. secs (0.u,0.s) -Chars 2810 - 2829 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 2830 - 2834 [Qed.] 0.033 secs (0.033u,0.s) +Chars 2810 - 2829 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 2830 - 2834 [Qed.] 0.021 secs (0.021u,0.s) Chars 2837 - 2976 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 2977 - 2983 [Proof.] 0. secs (0.u,0.s) -Chars 2986 - 3002 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 2986 - 3002 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) Chars 3003 - 3019 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) Chars 3023 - 3035 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3036 - 3043 [(intros).] 0. secs (0.u,0.s) -Chars 3044 - 3064 [(unfold~throw_prefix).] 0. secs (0.u,0.s) -Chars 3065 - 3098 [setoid_rewrite~unfold_iter_ktree.] 0.071 secs (0.071u,0.s) -Chars 3101 - 3109 [(sinv~Ht).] 0.313 secs (0.309u,0.003s) +Chars 3036 - 3043 [intros.] 0. secs (0.u,0.s) +Chars 3044 - 3064 [unfold~throw_prefix.] 0. secs (0.u,0.s) +Chars 3065 - 3098 [setoid_rewrite~unfold_iter_ktree.] 0.054 secs (0.053u,0.s) +Chars 3101 - 3109 [sinv~Ht.] 0.22 secs (0.219u,0.s) Chars 3112 - 3113 [-] 0. secs (0.u,0.s) -Chars 3114 - 3118 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3119 - 3124 [etau.] 0.002 secs (0.002u,0.s) +Chars 3114 - 3118 [cbn.] 0. secs (0.u,0.s) +Chars 3119 - 3124 [etau.] 0.001 secs (0.001u,0.s) Chars 3127 - 3128 [-] 0. secs (0.u,0.s) -Chars 3129 - 3140 [(destruct~e).] 0.004 secs (0.004u,0.s) +Chars 3129 - 3140 [destruct~e.] 0.003 secs (0.003u,0.s) Chars 3145 - 3146 [+] 0. secs (0.u,0.s) -Chars 3147 - 3158 [(destruct~e).] 0.004 secs (0.004u,0.s) -Chars 3159 - 3163 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3164 - 3176 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3147 - 3158 [destruct~e.] 0.003 secs (0.003u,0.s) +Chars 3159 - 3163 [cbn.] 0. secs (0.u,0.s) +Chars 3164 - 3176 [reflexivity.] 0. secs (0.u,0.s) Chars 3182 - 3183 [+] 0. secs (0.u,0.s) -Chars 3184 - 3188 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3189 - 3194 [evis.] 0.002 secs (0.002u,0.s) -Chars 3195 - 3200 [step.] 0.003 secs (0.003u,0.s) -Chars 3201 - 3205 [(cbn).] 0. secs (0.u,0.s) -Chars 3206 - 3211 [etau.] 0.002 secs (0.002u,0.s) -Chars 3213 - 3217 [Qed.] 0.036 secs (0.036u,0.s) +Chars 3184 - 3188 [cbn.] 0.001 secs (0.001u,0.s) +Chars 3189 - 3194 [evis.] 0.001 secs (0.001u,0.s) +Chars 3195 - 3200 [step.] 0.002 secs (0.002u,0.s) +Chars 3201 - 3205 [cbn.] 0. secs (0.u,0.s) +Chars 3206 - 3211 [etau.] 0.001 secs (0.001u,0.s) +Chars 3213 - 3217 [Qed.] 0.028 secs (0.028u,0.s) Chars 3219 - 3325 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 3326 - 3332 [Proof.] 0. secs (0.u,0.s) -Chars 3335 - 3351 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) +Chars 3335 - 3351 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) Chars 3352 - 3368 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) Chars 3372 - 3384 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3385 - 3392 [(intros).] 0. secs (0.u,0.s) -Chars 3393 - 3413 [(unfold~throw_prefix).] 0. secs (0.u,0.s) -Chars 3414 - 3447 [setoid_rewrite~unfold_iter_ktree.] 0.072 secs (0.071u,0.001s) -Chars 3450 - 3461 [step~in~Ht.] 0.001 secs (0.001u,0.s) -Chars 3462 - 3507 [(hinduction~Ht~before~c;~intro...] 0.021 secs (0.021u,0.s) +Chars 3385 - 3392 [intros.] 0. secs (0.u,0.s) +Chars 3393 - 3413 [unfold~throw_prefix.] 0. secs (0.u,0.s) +Chars 3414 - 3447 [setoid_rewrite~unfold_iter_ktree.] 0.053 secs (0.053u,0.s) +Chars 3450 - 3461 [step~in~Ht.] 0. secs (0.u,0.s) +Chars 3462 - 3507 [hinduction~Ht~before~c;~intros...] 0.014 secs (0.014u,0.s) Chars 3510 - 3511 [-] 0. secs (0.u,0.s) -Chars 3512 - 3516 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3517 - 3522 [etau.] 0.002 secs (0.002u,0.s) +Chars 3512 - 3516 [cbn.] 0. secs (0.u,0.s) +Chars 3517 - 3522 [etau.] 0.001 secs (0.001u,0.s) Chars 3525 - 3526 [-] 0. secs (0.u,0.s) -Chars 3527 - 3538 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 3527 - 3538 [destruct~e.] 0. secs (0.u,0.s) Chars 3543 - 3544 [+] 0. secs (0.u,0.s) -Chars 3545 - 3556 [(destruct~e).] 0.004 secs (0.004u,0.s) -Chars 3557 - 3561 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3562 - 3574 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 3545 - 3556 [destruct~e.] 0.002 secs (0.002u,0.s) +Chars 3557 - 3561 [cbn.] 0. secs (0.u,0.s) +Chars 3562 - 3574 [reflexivity.] 0. secs (0.u,0.s) Chars 3580 - 3581 [+] 0. secs (0.u,0.s) -Chars 3582 - 3586 [(cbn).] 0.001 secs (0.001u,0.s) -Chars 3587 - 3592 [evis.] 0.003 secs (0.003u,0.s) -Chars 3593 - 3598 [step.] 0.003 secs (0.003u,0.s) -Chars 3599 - 3603 [(cbn).] 0. secs (0.u,0.s) -Chars 3604 - 3609 [etau.] 0.002 secs (0.002u,0.s) +Chars 3582 - 3586 [cbn.] 0.001 secs (0.001u,0.s) +Chars 3587 - 3592 [evis.] 0.001 secs (0.001u,0.s) +Chars 3593 - 3598 [step.] 0.002 secs (0.002u,0.s) +Chars 3599 - 3603 [cbn.] 0. secs (0.u,0.s) +Chars 3604 - 3609 [etau.] 0.001 secs (0.001u,0.s) Chars 3613 - 3614 [-] 0. secs (0.u,0.s) -Chars 3615 - 3619 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3615 - 3619 [cbn.] 0. secs (0.u,0.s) Chars 3620 - 3625 [taul.] 0. secs (0.u,0.s) -Chars 3626 - 3645 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) +Chars 3626 - 3645 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) Chars 3648 - 3649 [-] 0. secs (0.u,0.s) -Chars 3650 - 3654 [(cbn).] 0.001 secs (0.001u,0.s) +Chars 3650 - 3654 [cbn.] 0. secs (0.u,0.s) Chars 3655 - 3660 [taur.] 0. secs (0.u,0.s) -Chars 3661 - 3680 [(eapply~IHHt;~eauto).] 0. secs (0.u,0.s) -Chars 3681 - 3685 [Qed.] 0.026 secs (0.025u,0.s) +Chars 3661 - 3680 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) +Chars 3681 - 3685 [Qed.] 0.019 secs (0.019u,0.s) Chars 3687 - 3806 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) Chars 3807 - 3813 [Proof.] 0. secs (0.u,0.s) -Chars 3816 - 3903 [(destruct~b;~~~[~apply~proper_...] 0. secs (0.u,0.s) +Chars 3816 - 3903 [destruct~b;~~[~apply~proper_eu...] 0. secs (0.u,0.s) Chars 3904 - 3908 [Qed.] 0. secs (0.u,0.s) Chars 3910 - 4014 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) Chars 4015 - 4021 [Proof.] 0. secs (0.u,0.s) -Chars 4024 - 4031 [(intros).] 0. secs (0.u,0.s) -Chars 4032 - 4065 [setoid_rewrite~unfold_iter_ktree.] 0.016 secs (0.015u,0.s) -Chars 4066 - 4070 [(cbn).] 0. secs (0.u,0.s) -Chars 4071 - 4090 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) +Chars 4024 - 4031 [intros.] 0. secs (0.u,0.s) +Chars 4032 - 4065 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) +Chars 4066 - 4070 [cbn.] 0. secs (0.u,0.s) +Chars 4071 - 4090 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) Chars 4091 - 4103 [reflexivity.] 0. secs (0.u,0.s) -Chars 4104 - 4108 [Qed.] 0.004 secs (0.003u,0.s) +Chars 4104 - 4108 [Qed.] 0.002 secs (0.002u,0.s) Chars 4110 - 4240 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) Chars 4241 - 4247 [Proof.] 0. secs (0.u,0.s) -Chars 4250 - 4257 [(intros).] 0. secs (0.u,0.s) -Chars 4258 - 4296 [setoid_rewrite~unfold_iter_ktr...] 0.013 secs (0.013u,0.s) -Chars 4297 - 4301 [(cbn).] 0. secs (0.u,0.s) -Chars 4302 - 4321 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) +Chars 4250 - 4257 [intros.] 0. secs (0.u,0.s) +Chars 4258 - 4296 [setoid_rewrite~unfold_iter_ktr...] 0.009 secs (0.009u,0.s) +Chars 4297 - 4301 [cbn.] 0. secs (0.u,0.s) +Chars 4302 - 4321 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) Chars 4324 - 4336 [reflexivity.] 0. secs (0.u,0.s) -Chars 4337 - 4341 [Qed.] 0.004 secs (0.004u,0.s) +Chars 4337 - 4341 [Qed.] 0.002 secs (0.002u,0.s) Chars 4343 - 4470 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) Chars 4471 - 4477 [Proof.] 0. secs (0.u,0.s) -Chars 4480 - 4487 [(intros).] 0. secs (0.u,0.s) -Chars 4488 - 4521 [setoid_rewrite~unfold_iter_ktree.] 0.014 secs (0.014u,0.s) -Chars 4522 - 4526 [(cbn).] 0. secs (0.u,0.s) -Chars 4527 - 4546 [(rewrite~bind_ret_l).] 0.011 secs (0.011u,0.s) +Chars 4480 - 4487 [intros.] 0. secs (0.u,0.s) +Chars 4488 - 4521 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) +Chars 4522 - 4526 [cbn.] 0. secs (0.u,0.s) +Chars 4527 - 4546 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) Chars 4547 - 4559 [reflexivity.] 0. secs (0.u,0.s) -Chars 4560 - 4564 [Qed.] 0.005 secs (0.004u,0.s) -Chars 4566 - 4748 [Definition~throw_prefix_ev~:~~...] 0.001 secs (0.001u,0.s) +Chars 4560 - 4564 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4566 - 4748 [Definition~throw_prefix_ev~:~~...] 0. secs (0.u,0.s) Chars 4749 - 4755 [Proof.] 0. secs (0.u,0.s) -Chars 4758 - 4765 [(intros).] 0. secs (0.u,0.s) -Chars 4766 - 4804 [setoid_rewrite~unfold_iter_ktr...] 0.024 secs (0.02u,0.004s) -Chars 4805 - 4809 [(cbn).] 0. secs (0.u,0.s) -Chars 4810 - 4827 [(rewrite~bind_map).] 0.014 secs (0.013u,0.001s) -Chars 4831 - 4852 [(rewrite~bind_trigger).] 0.015 secs (0.011u,0.003s) -Chars 4853 - 4868 [(apply~eqit_Vis).] 0. secs (0.u,0.s) -Chars 4869 - 4876 [(intros).] 0. secs (0.u,0.s) +Chars 4758 - 4765 [intros.] 0. secs (0.u,0.s) +Chars 4766 - 4804 [setoid_rewrite~unfold_iter_ktr...] 0.013 secs (0.012u,0.s) +Chars 4805 - 4809 [cbn.] 0. secs (0.u,0.s) +Chars 4810 - 4827 [rewrite~bind_map.] 0.007 secs (0.007u,0.s) +Chars 4831 - 4852 [rewrite~bind_trigger.] 0.006 secs (0.006u,0.s) +Chars 4853 - 4868 [apply~eqit_Vis.] 0. secs (0.u,0.s) +Chars 4869 - 4876 [intros.] 0. secs (0.u,0.s) Chars 4877 - 4889 [reflexivity.] 0. secs (0.u,0.s) -Chars 4890 - 4894 [Qed.] 0.007 secs (0.006u,0.s) +Chars 4890 - 4894 [Qed.] 0.004 secs (0.003u,0.s) Chars 4896 - 5054 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) Chars 5055 - 5061 [Proof.] 0. secs (0.u,0.s) -Chars 5065 - 5087 [(intros~E~Err~R~kcatch).] 0. secs (0.u,0.s) -Chars 5088 - 5100 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 5101 - 5108 [(intros).] 0. secs (0.u,0.s) -Chars 5111 - 5184 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 5065 - 5087 [intros~E~Err~R~kcatch.] 0. secs (0.u,0.s) +Chars 5088 - 5100 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5101 - 5108 [intros.] 0. secs (0.u,0.s) +Chars 5111 - 5184 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) Chars 5187 - 5188 [-] 0. secs (0.u,0.s) -Chars 5189 - 5201 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) -Chars 5202 - 5227 [(rewrite~throw_prefix_ret).] 0.022 secs (0.021u,0.s) -Chars 5228 - 5250 [(rewrite~try_catch_ret).] 0.021 secs (0.02u,0.s) +Chars 5189 - 5201 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 5202 - 5227 [rewrite~throw_prefix_ret.] 0.014 secs (0.014u,0.s) +Chars 5228 - 5250 [rewrite~try_catch_ret.] 0.013 secs (0.013u,0.s) Chars 5251 - 5263 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 5266 - 5267 [-] 0. secs (0.u,0.s) -Chars 5268 - 5280 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 5281 - 5306 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) -Chars 5307 - 5329 [(rewrite~try_catch_tau).] 0.021 secs (0.021u,0.s) +Chars 5268 - 5280 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 5281 - 5306 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 5307 - 5329 [rewrite~try_catch_tau.] 0.013 secs (0.013u,0.s) Chars 5330 - 5335 [etau.] 0. secs (0.u,0.s) Chars 5338 - 5339 [-] 0. secs (0.u,0.s) -Chars 5340 - 5351 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 5340 - 5351 [destruct~e.] 0. secs (0.u,0.s) Chars 5355 - 5356 [+] 0. secs (0.u,0.s) -Chars 5357 - 5368 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 5369 - 5381 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 5382 - 5407 [(rewrite~throw_prefix_exc).] 0.022 secs (0.022u,0.s) -Chars 5408 - 5430 [(rewrite~try_catch_ret).] 0.02 secs (0.02u,0.s) +Chars 5357 - 5368 [destruct~e.] 0. secs (0.u,0.s) +Chars 5369 - 5381 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 5382 - 5407 [rewrite~throw_prefix_exc.] 0.014 secs (0.014u,0.s) +Chars 5408 - 5430 [rewrite~try_catch_ret.] 0.013 secs (0.013u,0.s) Chars 5431 - 5443 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 5447 - 5448 [+] 0. secs (0.u,0.s) -Chars 5449 - 5461 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 5462 - 5486 [(rewrite~throw_prefix_ev).] 0.024 secs (0.023u,0.s) -Chars 5487 - 5508 [(rewrite~try_catch_ev).] 0.023 secs (0.023u,0.s) -Chars 5509 - 5514 [evis.] 0.002 secs (0.002u,0.s) -Chars 5520 - 5542 [(rewrite~try_catch_tau).] 0.019 secs (0.019u,0.s) -Chars 5543 - 5569 [(repeat~rewrite~tau_euttge).] 0.019 secs (0.019u,0.s) -Chars 5570 - 5580 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5581 - 5585 [Qed.] 0.018 secs (0.018u,0.s) -Chars 5587 - 5966 [Lemma~throw_prefix_bind_decomp...] 0.002 secs (0.002u,0.s) +Chars 5449 - 5461 [rewrite~Heq.] 0.014 secs (0.014u,0.s) +Chars 5462 - 5486 [rewrite~throw_prefix_ev.] 0.014 secs (0.014u,0.s) +Chars 5487 - 5508 [rewrite~try_catch_ev.] 0.014 secs (0.014u,0.s) +Chars 5509 - 5514 [evis.] 0.001 secs (0.001u,0.s) +Chars 5520 - 5542 [rewrite~try_catch_tau.] 0.012 secs (0.012u,0.s) +Chars 5543 - 5569 [repeat~rewrite~tau_euttge.] 0.013 secs (0.013u,0.s) +Chars 5570 - 5580 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5581 - 5585 [Qed.] 0.012 secs (0.012u,0.s) +Chars 5587 - 5966 [Lemma~throw_prefix_bind_decomp...] 0.004 secs (0.004u,0.s) Chars 5967 - 5973 [Proof.] 0. secs (0.u,0.s) -Chars 5976 - 5991 [(intros~E~Err~R).] 0. secs (0.u,0.s) -Chars 5992 - 6004 [coinduction.] 0.005 secs (0.005u,0.s) -Chars 6005 - 6012 [(intros).] 0. secs (0.u,0.s) -Chars 6015 - 6085 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) +Chars 5976 - 5991 [intros~E~Err~R.] 0. secs (0.u,0.s) +Chars 5992 - 6004 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 6005 - 6012 [intros.] 0. secs (0.u,0.s) +Chars 6015 - 6085 [destruct~(observe~t)~eqn:Heq;~...] 0.002 secs (0.002u,0.s) Chars 6088 - 6089 [-] 0. secs (0.u,0.s) -Chars 6090 - 6102 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 6103 - 6128 [(rewrite~throw_prefix_ret).] 0.025 secs (0.025u,0.s) -Chars 6129 - 6148 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 6090 - 6102 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 6103 - 6128 [rewrite~throw_prefix_ret.] 0.018 secs (0.018u,0.s) +Chars 6129 - 6148 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) Chars 6149 - 6154 [eret.] 0. secs (0.u,0.s) Chars 6158 - 6159 [-] 0. secs (0.u,0.s) -Chars 6160 - 6172 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) -Chars 6173 - 6198 [(rewrite~throw_prefix_tau).] 0.024 secs (0.024u,0.s) -Chars 6199 - 6216 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 6160 - 6172 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 6173 - 6198 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) +Chars 6199 - 6216 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) Chars 6217 - 6222 [etau.] 0. secs (0.u,0.s) Chars 6225 - 6226 [-] 0. secs (0.u,0.s) -Chars 6227 - 6238 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 6227 - 6238 [destruct~e.] 0. secs (0.u,0.s) Chars 6243 - 6244 [+] 0. secs (0.u,0.s) -Chars 6245 - 6257 [(rewrite~Heq).] 0.022 secs (0.021u,0.s) -Chars 6258 - 6269 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 6270 - 6295 [(rewrite~throw_prefix_exc).] 0.025 secs (0.025u,0.s) -Chars 6296 - 6315 [(rewrite~bind_ret_l).] 0.022 secs (0.022u,0.s) +Chars 6245 - 6257 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 6258 - 6269 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 6270 - 6295 [rewrite~throw_prefix_exc.] 0.017 secs (0.017u,0.s) +Chars 6296 - 6315 [rewrite~bind_ret_l.] 0.016 secs (0.015u,0.s) Chars 6316 - 6321 [bcbn.] 0. secs (0.u,0.s) Chars 6322 - 6327 [evis.] 0.001 secs (0.001u,0.s) -Chars 6335 - 6340 [easy.] 0.004 secs (0.004u,0.s) +Chars 6335 - 6340 [easy.] 0.003 secs (0.003u,0.s) Chars 6346 - 6347 [+] 0. secs (0.u,0.s) -Chars 6348 - 6360 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 6361 - 6385 [(rewrite~throw_prefix_ev).] 0.024 secs (0.024u,0.s) -Chars 6386 - 6403 [(rewrite~bind_vis).] 0.022 secs (0.022u,0.s) +Chars 6348 - 6360 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 6361 - 6385 [rewrite~throw_prefix_ev.] 0.017 secs (0.017u,0.s) +Chars 6386 - 6403 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) Chars 6404 - 6409 [evis.] 0.001 secs (0.001u,0.s) -Chars 6417 - 6424 [(intros).] 0. secs (0.u,0.s) -Chars 6425 - 6444 [(rewrite~tau_euttge).] 0.008 secs (0.008u,0.s) -Chars 6445 - 6455 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6457 - 6461 [Qed.] 0.018 secs (0.018u,0.s) -Chars 6463 - 6962 [Lemma~try_catch_to_throw_prefi...] 0.001 secs (0.001u,0.s) +Chars 6417 - 6424 [intros.] 0. secs (0.u,0.s) +Chars 6425 - 6444 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) +Chars 6445 - 6455 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6457 - 6461 [Qed.] 0.014 secs (0.014u,0.s) +Chars 6463 - 6962 [Lemma~try_catch_to_throw_prefi...] 0. secs (0.u,0.s) Chars 6963 - 6969 [Proof.] 0. secs (0.u,0.s) -Chars 6972 - 6979 [(intros).] 0. secs (0.u,0.s) +Chars 6972 - 6979 [intros.] 0. secs (0.u,0.s) Chars 6980 - 6992 [revert~ttry.] 0. secs (0.u,0.s) Chars 6993 - 7005 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7009 - 7016 [(intros).] 0. secs (0.u,0.s) -Chars 7017 - 7090 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 7009 - 7016 [intros.] 0. secs (0.u,0.s) +Chars 7017 - 7090 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) Chars 7093 - 7094 [-] 0. secs (0.u,0.s) -Chars 7095 - 7107 [(rewrite~Heq).] 0.023 secs (0.022u,0.s) -Chars 7108 - 7130 [(rewrite~try_catch_ret).] 0.018 secs (0.018u,0.s) -Chars 7131 - 7156 [(rewrite~throw_prefix_ret).] 0.022 secs (0.022u,0.s) -Chars 7157 - 7176 [(rewrite~bind_ret_l).] 0.02 secs (0.019u,0.s) +Chars 7095 - 7107 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 7108 - 7130 [rewrite~try_catch_ret.] 0.014 secs (0.013u,0.s) +Chars 7131 - 7156 [rewrite~throw_prefix_ret.] 0.016 secs (0.016u,0.s) +Chars 7157 - 7176 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) Chars 7182 - 7187 [eret.] 0. secs (0.u,0.s) Chars 7191 - 7192 [-] 0. secs (0.u,0.s) -Chars 7193 - 7205 [(rewrite~Heq).] 0.021 secs (0.021u,0.s) -Chars 7206 - 7228 [(rewrite~try_catch_tau).] 0.018 secs (0.018u,0.s) -Chars 7229 - 7254 [(rewrite~throw_prefix_tau).] 0.022 secs (0.022u,0.s) -Chars 7255 - 7272 [(rewrite~bind_tau).] 0.022 secs (0.021u,0.s) +Chars 7193 - 7205 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 7206 - 7228 [rewrite~try_catch_tau.] 0.013 secs (0.013u,0.s) +Chars 7229 - 7254 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) +Chars 7255 - 7272 [rewrite~bind_tau.] 0.014 secs (0.014u,0.s) Chars 7277 - 7282 [etau.] 0. secs (0.u,0.s) Chars 7286 - 7287 [-] 0. secs (0.u,0.s) -Chars 7288 - 7299 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 7288 - 7299 [destruct~e.] 0. secs (0.u,0.s) Chars 7304 - 7305 [+] 0. secs (0.u,0.s) -Chars 7306 - 7317 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 7318 - 7330 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 7331 - 7353 [(rewrite~try_catch_exc).] 0.019 secs (0.019u,0.s) -Chars 7354 - 7379 [(rewrite~throw_prefix_exc).] 0.023 secs (0.022u,0.s) -Chars 7380 - 7399 [(rewrite~bind_ret_l).] 0.021 secs (0.02u,0.s) -Chars 7406 - 7418 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 7306 - 7317 [destruct~e.] 0. secs (0.u,0.s) +Chars 7318 - 7330 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 7331 - 7353 [rewrite~try_catch_exc.] 0.013 secs (0.013u,0.s) +Chars 7354 - 7379 [rewrite~throw_prefix_exc.] 0.016 secs (0.016u,0.s) +Chars 7380 - 7399 [rewrite~bind_ret_l.] 0.013 secs (0.013u,0.s) +Chars 7406 - 7418 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 7424 - 7425 [+] 0. secs (0.u,0.s) -Chars 7426 - 7438 [(rewrite~Heq).] 0.022 secs (0.022u,0.s) -Chars 7439 - 7460 [(rewrite~try_catch_ev).] 0.02 secs (0.02u,0.s) -Chars 7461 - 7485 [(rewrite~throw_prefix_ev).] 0.023 secs (0.023u,0.s) -Chars 7486 - 7503 [(rewrite~bind_vis).] 0.022 secs (0.021u,0.s) -Chars 7504 - 7530 [setoid_rewrite~tau_euttge.] 0.022 secs (0.022u,0.s) +Chars 7426 - 7438 [rewrite~Heq.] 0.015 secs (0.015u,0.s) +Chars 7439 - 7460 [rewrite~try_catch_ev.] 0.013 secs (0.013u,0.s) +Chars 7461 - 7485 [rewrite~throw_prefix_ev.] 0.018 secs (0.017u,0.s) +Chars 7486 - 7503 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) +Chars 7504 - 7530 [setoid_rewrite~tau_euttge.] 0.019 secs (0.019u,0.s) Chars 7537 - 7542 [evis.] 0. secs (0.u,0.s) -Chars 7544 - 7548 [Qed.] 0.019 secs (0.019u,0.s) +Chars 7544 - 7548 [Qed.] 0.014 secs (0.014u,0.s) Chars 7550 - 7817 [Lemma~throw_prefix_of_try_catc...] 0. secs (0.u,0.s) Chars 7818 - 7824 [Proof.] 0. secs (0.u,0.s) -Chars 7827 - 7834 [(intros).] 0. secs (0.u,0.s) +Chars 7827 - 7834 [intros.] 0. secs (0.u,0.s) Chars 7835 - 7847 [revert~ttry.] 0. secs (0.u,0.s) -Chars 7848 - 7860 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 7864 - 7871 [(intros).] 0. secs (0.u,0.s) -Chars 7872 - 7945 [(destruct~(observe~ttry)~eqn:H...] 0.002 secs (0.002u,0.s) +Chars 7848 - 7860 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 7864 - 7871 [intros.] 0. secs (0.u,0.s) +Chars 7872 - 7945 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) Chars 7948 - 7949 [-] 0. secs (0.u,0.s) -Chars 7950 - 7962 [(rewrite~Heq).] 0.024 secs (0.023u,0.s) -Chars 7963 - 7982 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 7983 - 8012 [(repeat~rewrite~try_catch_ret).] 0.042 secs (0.042u,0.s) -Chars 8013 - 8038 [(rewrite~throw_prefix_ret).] 0.018 secs (0.018u,0.s) +Chars 7950 - 7962 [rewrite~Heq.] 0.023 secs (0.022u,0.s) +Chars 7963 - 7982 [rewrite~bind_ret_l.] 0.018 secs (0.017u,0.s) +Chars 7983 - 8012 [repeat~rewrite~try_catch_ret.] 0.037 secs (0.037u,0.s) +Chars 8013 - 8038 [rewrite~throw_prefix_ret.] 0.015 secs (0.015u,0.s) Chars 8043 - 8048 [eret.] 0. secs (0.u,0.s) Chars 8052 - 8053 [-] 0. secs (0.u,0.s) -Chars 8054 - 8066 [(rewrite~Heq).] 0.025 secs (0.024u,0.s) -Chars 8067 - 8084 [(rewrite~bind_tau).] 0.023 secs (0.023u,0.s) -Chars 8085 - 8114 [(repeat~rewrite~try_catch_tau).] 0.044 secs (0.044u,0.s) -Chars 8115 - 8140 [(rewrite~throw_prefix_tau).] 0.019 secs (0.019u,0.s) +Chars 8054 - 8066 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 8067 - 8084 [rewrite~bind_tau.] 0.017 secs (0.017u,0.s) +Chars 8085 - 8114 [repeat~rewrite~try_catch_tau.] 0.032 secs (0.032u,0.s) +Chars 8115 - 8140 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) Chars 8145 - 8150 [etau.] 0. secs (0.u,0.s) Chars 8154 - 8155 [-] 0. secs (0.u,0.s) -Chars 8156 - 8167 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 8156 - 8167 [destruct~e.] 0. secs (0.u,0.s) Chars 8172 - 8173 [+] 0. secs (0.u,0.s) -Chars 8174 - 8185 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 8186 - 8198 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 8199 - 8216 [(rewrite~bind_vis).] 0.026 secs (0.026u,0.s) -Chars 8217 - 8246 [(repeat~rewrite~try_catch_exc).] 0.046 secs (0.046u,0.s) -Chars 8253 - 8265 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 8174 - 8185 [destruct~e.] 0. secs (0.u,0.s) +Chars 8186 - 8198 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 8199 - 8216 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) +Chars 8217 - 8246 [repeat~rewrite~try_catch_exc.] 0.03 secs (0.03u,0.s) +Chars 8253 - 8265 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 8271 - 8272 [+] 0. secs (0.u,0.s) -Chars 8273 - 8285 [(rewrite~Heq).] 0.029 secs (0.028u,0.s) -Chars 8286 - 8303 [(rewrite~bind_vis).] 0.028 secs (0.027u,0.s) -Chars 8304 - 8332 [(repeat~rewrite~try_catch_ev).] 0.051 secs (0.05u,0.s) -Chars 8333 - 8357 [(rewrite~throw_prefix_ev).] 0.022 secs (0.022u,0.s) -Chars 8364 - 8396 [setoid_rewrite~throw_prefix_tau.] 0.112 secs (0.11u,0.001s) -Chars 8403 - 8436 [(repeat~setoid_rewrite~tau_eut...] 0.06 secs (0.06u,0.s) +Chars 8273 - 8285 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 8286 - 8303 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) +Chars 8304 - 8332 [repeat~rewrite~try_catch_ev.] 0.034 secs (0.034u,0.s) +Chars 8333 - 8357 [rewrite~throw_prefix_ev.] 0.014 secs (0.014u,0.s) +Chars 8364 - 8396 [setoid_rewrite~throw_prefix_tau.] 0.083 secs (0.082u,0.s) +Chars 8403 - 8436 [repeat~setoid_rewrite~tau_euttge.] 0.046 secs (0.046u,0.s) Chars 8443 - 8448 [evis.] 0. secs (0.u,0.s) -Chars 8450 - 8454 [Qed.] 0.025 secs (0.024u,0.s) -Chars 8456 - 8820 [Lemma~throw_prefix_bind~:~~~fo...] 0.001 secs (0.001u,0.s) +Chars 8450 - 8454 [Qed.] 0.016 secs (0.016u,0.s) +Chars 8456 - 8820 [Lemma~throw_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) -Chars 8830 - 8837 [(intros).] 0. secs (0.u,0.s) +Chars 8830 - 8837 [intros.] 0. secs (0.u,0.s) Chars 8838 - 8847 [revert~t.] 0. secs (0.u,0.s) -Chars 8848 - 8860 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 8864 - 8871 [(intros).] 0. secs (0.u,0.s) -Chars 8872 - 8942 [(destruct~(observe~t)~eqn:Heq;...] 0.002 secs (0.002u,0.s) +Chars 8848 - 8860 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 8864 - 8871 [intros.] 0. secs (0.u,0.s) +Chars 8872 - 8942 [destruct~(observe~t)~eqn:Heq;~...] 0.001 secs (0.001u,0.s) Chars 8945 - 8946 [-] 0. secs (0.u,0.s) -Chars 8947 - 8959 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 8960 - 8985 [(rewrite~throw_prefix_ret).] 0.027 secs (0.026u,0.s) -Chars 8986 - 9012 [(repeat~rewrite~bind_ret_l).] 0.046 secs (0.045u,0.s) -Chars 9017 - 9029 [reflexivity.] 0.002 secs (0.001u,0.s) +Chars 8947 - 8959 [rewrite~Heq.] 0.019 secs (0.018u,0.s) +Chars 8960 - 8985 [rewrite~throw_prefix_ret.] 0.018 secs (0.018u,0.s) +Chars 8986 - 9012 [repeat~rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 9017 - 9029 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 9033 - 9034 [-] 0. secs (0.u,0.s) -Chars 9035 - 9047 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 9048 - 9073 [(rewrite~throw_prefix_tau).] 0.026 secs (0.026u,0.s) -Chars 9074 - 9098 [(repeat~rewrite~bind_tau).] 0.048 secs (0.047u,0.s) -Chars 9099 - 9124 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) +Chars 9035 - 9047 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 9048 - 9073 [rewrite~throw_prefix_tau.] 0.018 secs (0.018u,0.s) +Chars 9074 - 9098 [repeat~rewrite~bind_tau.] 0.034 secs (0.034u,0.s) +Chars 9099 - 9124 [rewrite~throw_prefix_tau.] 0.015 secs (0.015u,0.s) Chars 9129 - 9134 [etau.] 0. secs (0.u,0.s) Chars 9138 - 9139 [-] 0. secs (0.u,0.s) -Chars 9140 - 9151 [(destruct~e).] 0.001 secs (0.001u,0.s) +Chars 9140 - 9151 [destruct~e.] 0. secs (0.u,0.s) Chars 9156 - 9157 [+] 0. secs (0.u,0.s) -Chars 9158 - 9169 [(destruct~e).] 0.001 secs (0.001u,0.s) -Chars 9170 - 9182 [(rewrite~Heq).] 0.024 secs (0.024u,0.s) -Chars 9183 - 9208 [(rewrite~throw_prefix_exc).] 0.026 secs (0.025u,0.s) -Chars 9209 - 9226 [(rewrite~bind_vis).] 0.021 secs (0.021u,0.s) -Chars 9227 - 9252 [(rewrite~throw_prefix_exc).] 0.02 secs (0.02u,0.s) -Chars 9259 - 9278 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) +Chars 9158 - 9169 [destruct~e.] 0. secs (0.u,0.s) +Chars 9170 - 9182 [rewrite~Heq.] 0.017 secs (0.017u,0.s) +Chars 9183 - 9208 [rewrite~throw_prefix_exc.] 0.018 secs (0.018u,0.s) +Chars 9209 - 9226 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) +Chars 9227 - 9252 [rewrite~throw_prefix_exc.] 0.014 secs (0.014u,0.s) +Chars 9259 - 9278 [rewrite~bind_ret_l.] 0.016 secs (0.016u,0.s) Chars 9279 - 9284 [eret.] 0. secs (0.u,0.s) Chars 9290 - 9291 [+] 0. secs (0.u,0.s) -Chars 9292 - 9304 [(rewrite~Heq).] 0.023 secs (0.023u,0.s) -Chars 9305 - 9329 [(rewrite~throw_prefix_ev).] 0.026 secs (0.026u,0.s) -Chars 9330 - 9354 [(repeat~rewrite~bind_vis).] 0.052 secs (0.051u,0.s) -Chars 9355 - 9379 [(rewrite~throw_prefix_ev).] 0.025 secs (0.024u,0.s) -Chars 9386 - 9391 [evis.] 0.002 secs (0.002u,0.s) -Chars 9392 - 9409 [(rewrite~bind_tau).] 0.023 secs (0.022u,0.s) -Chars 9410 - 9415 [step.] 0.003 secs (0.003u,0.s) +Chars 9292 - 9304 [rewrite~Heq.] 0.017 secs (0.016u,0.s) +Chars 9305 - 9329 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) +Chars 9330 - 9354 [repeat~rewrite~bind_vis.] 0.035 secs (0.035u,0.s) +Chars 9355 - 9379 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) +Chars 9386 - 9391 [evis.] 0.001 secs (0.001u,0.s) +Chars 9392 - 9409 [rewrite~bind_tau.] 0.014 secs (0.014u,0.s) +Chars 9410 - 9415 [step.] 0.002 secs (0.002u,0.s) Chars 9416 - 9421 [taus.] 0. secs (0.u,0.s) -Chars 9422 - 9432 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9435 - 9439 [Qed.] 0.032 secs (0.029u,0.s) -Chars 9441 - 10039 [Lemma~throw_prefix_iter~:~~~fo...] 0.005 secs (0.004u,0.s) +Chars 9422 - 9432 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9435 - 9439 [Qed.] 0.017 secs (0.016u,0.s) +Chars 9441 - 10039 [Lemma~throw_prefix_iter~:~~~fo...] 0.006 secs (0.006u,0.s) Chars 10040 - 10046 [Proof.] 0. secs (0.u,0.s) -Chars 10049 - 10066 [(intros~E~Err~A~B).] 0. secs (0.u,0.s) -Chars 10067 - 10079 [coinduction.] 0.005 secs (0.004u,0.s) -Chars 10080 - 10087 [(intros).] 0. secs (0.u,0.s) -Chars 10090 - 10130 [setoid_rewrite~unfold_iter_ktr...] 0.066 secs (0.064u,0.001s) -Chars 10133 - 10214 [(destruct~(observe~(body~init)...] 0.005 secs (0.005u,0.s) +Chars 10049 - 10066 [intros~E~Err~A~B.] 0. secs (0.u,0.s) +Chars 10067 - 10079 [coinduction.] 0.003 secs (0.003u,0.s) +Chars 10080 - 10087 [intros.] 0. secs (0.u,0.s) +Chars 10090 - 10130 [setoid_rewrite~unfold_iter_ktr...] 0.048 secs (0.048u,0.s) +Chars 10133 - 10214 [destruct~(observe~(body~init))...] 0.003 secs (0.003u,0.s) Chars 10217 - 10218 [-] 0. secs (0.u,0.s) -Chars 10219 - 10236 [(rewrite~Heq~~at~1).] 0.03 secs (0.029u,0.s) -Chars 10237 - 10256 [(rewrite~bind_ret_l).] 0.031 secs (0.03u,0.s) -Chars 10257 - 10282 [setoid_rewrite~bind_bind.] 0.056 secs (0.055u,0.s) -Chars 10288 - 10305 [(rewrite~Heq~~at~1).] 0.035 secs (0.034u,0.s) -Chars 10306 - 10331 [(rewrite~throw_prefix_ret).] 0.035 secs (0.034u,0.s) -Chars 10332 - 10351 [(rewrite~bind_ret_l).] 0.032 secs (0.031u,0.s) -Chars 10356 - 10387 [(destruct~r;~rewrite~bind_ret_l).] 0.064 secs (0.063u,0.001s) +Chars 10219 - 10236 [rewrite~Heq~~at~1.] 0.019 secs (0.019u,0.s) +Chars 10237 - 10256 [rewrite~bind_ret_l.] 0.019 secs (0.019u,0.s) +Chars 10257 - 10282 [setoid_rewrite~bind_bind.] 0.04 secs (0.04u,0.s) +Chars 10288 - 10305 [rewrite~Heq~~at~1.] 0.023 secs (0.023u,0.s) +Chars 10306 - 10331 [rewrite~throw_prefix_ret.] 0.023 secs (0.022u,0.s) +Chars 10332 - 10351 [rewrite~bind_ret_l.] 0.021 secs (0.021u,0.s) +Chars 10356 - 10387 [destruct~r;~rewrite~bind_ret_l.] 0.041 secs (0.04u,0.s) Chars 10392 - 10393 [+] 0. secs (0.u,0.s) -Chars 10394 - 10419 [(rewrite~throw_prefix_tau).] 0.026 secs (0.025u,0.s) +Chars 10394 - 10419 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) Chars 10420 - 10425 [etau.] 0. secs (0.u,0.s) Chars 10431 - 10432 [+] 0. secs (0.u,0.s) -Chars 10433 - 10458 [(rewrite~throw_prefix_ret).] 0.021 secs (0.021u,0.s) -Chars 10459 - 10471 [reflexivity.] 0.002 secs (0.002u,0.s) +Chars 10433 - 10458 [rewrite~throw_prefix_ret.] 0.015 secs (0.015u,0.s) +Chars 10459 - 10471 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 10475 - 10476 [-] 0. secs (0.u,0.s) -Chars 10477 - 10494 [(rewrite~Heq~~at~1).] 0.031 secs (0.031u,0.s) -Chars 10495 - 10520 [setoid_rewrite~bind_bind.] 0.062 secs (0.061u,0.s) -Chars 10521 - 10538 [(rewrite~Heq~~at~1).] 0.036 secs (0.036u,0.s) -Chars 10543 - 10568 [(rewrite~throw_prefix_tau).] 0.036 secs (0.036u,0.s) -Chars 10569 - 10593 [(repeat~rewrite~bind_tau).] 0.07 secs (0.068u,0.001s) -Chars 10594 - 10619 [(rewrite~throw_prefix_tau).] 0.029 secs (0.029u,0.s) -Chars 10624 - 10629 [etau.] 0.003 secs (0.002u,0.s) -Chars 10630 - 10668 [setoid_rewrite~throw_prefix_bi...] 0.064 secs (0.063u,0.s) -Chars 10669 - 10690 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) -Chars 10696 - 10728 [(destruct~u2~as~[[a|~b]|~e]).] 0.001 secs (0.001u,0.s) +Chars 10477 - 10494 [rewrite~Heq~~at~1.] 0.02 secs (0.02u,0.s) +Chars 10495 - 10520 [setoid_rewrite~bind_bind.] 0.045 secs (0.044u,0.s) +Chars 10521 - 10538 [rewrite~Heq~~at~1.] 0.024 secs (0.023u,0.s) +Chars 10543 - 10568 [rewrite~throw_prefix_tau.] 0.024 secs (0.024u,0.s) +Chars 10569 - 10593 [repeat~rewrite~bind_tau.] 0.047 secs (0.047u,0.s) +Chars 10594 - 10619 [rewrite~throw_prefix_tau.] 0.019 secs (0.019u,0.s) +Chars 10624 - 10629 [etau.] 0.002 secs (0.002u,0.s) +Chars 10630 - 10668 [setoid_rewrite~throw_prefix_bi...] 0.047 secs (0.047u,0.s) +Chars 10669 - 10690 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 10696 - 10728 [destruct~u2~as~[[a|~b]|~e].] 0. secs (0.u,0.s) Chars 10733 - 10734 [+] 0. secs (0.u,0.s) -Chars 10735 - 10754 [(rewrite~bind_ret_l).] 0.025 secs (0.024u,0.s) -Chars 10755 - 10780 [(rewrite~throw_prefix_tau).] 0.021 secs (0.021u,0.s) -Chars 10781 - 10792 [(step;~etau).] 0.003 secs (0.003u,0.s) +Chars 10735 - 10754 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 10755 - 10780 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 10781 - 10792 [step;~etau.] 0.002 secs (0.002u,0.s) Chars 10798 - 10799 [+] 0. secs (0.u,0.s) -Chars 10800 - 10819 [(rewrite~bind_ret_l).] 0.026 secs (0.025u,0.s) -Chars 10820 - 10845 [(rewrite~throw_prefix_ret).] 0.017 secs (0.017u,0.s) -Chars 10846 - 10858 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10800 - 10819 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 10820 - 10845 [rewrite~throw_prefix_ret.] 0.011 secs (0.011u,0.s) +Chars 10846 - 10858 [reflexivity.] 0. secs (0.u,0.s) Chars 10864 - 10865 [+] 0. secs (0.u,0.s) -Chars 10866 - 10885 [(rewrite~bind_ret_l).] 0.026 secs (0.025u,0.s) -Chars 10886 - 10897 [(step;~eret).] 0.003 secs (0.003u,0.s) +Chars 10866 - 10885 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 10886 - 10897 [step;~eret.] 0.002 secs (0.002u,0.s) Chars 10901 - 10902 [-] 0. secs (0.u,0.s) -Chars 10903 - 10920 [(rewrite~Heq~~at~1).] 0.033 secs (0.032u,0.s) -Chars 10921 - 10946 [setoid_rewrite~bind_bind.] 0.062 secs (0.061u,0.s) -Chars 10947 - 10964 [(rewrite~Heq~~at~1).] 0.037 secs (0.036u,0.s) -Chars 10969 - 10980 [(destruct~e).] 0.002 secs (0.002u,0.s) +Chars 10903 - 10920 [rewrite~Heq~~at~1.] 0.02 secs (0.02u,0.s) +Chars 10921 - 10946 [setoid_rewrite~bind_bind.] 0.045 secs (0.044u,0.s) +Chars 10947 - 10964 [rewrite~Heq~~at~1.] 0.023 secs (0.023u,0.s) +Chars 10969 - 10980 [destruct~e.] 0.001 secs (0.001u,0.s) Chars 10985 - 10986 [+] 0. secs (0.u,0.s) -Chars 10987 - 10998 [(destruct~e).] 0.002 secs (0.002u,0.s) -Chars 10999 - 11016 [(rewrite~bind_vis).] 0.031 secs (0.03u,0.s) -Chars 11017 - 11042 [(rewrite~throw_prefix_exc).] 0.028 secs (0.027u,0.s) -Chars 11049 - 11081 [setoid_rewrite~throw_prefix_exc.] 0.102 secs (0.101u,0.001s) -Chars 11082 - 11108 [(repeat~rewrite~bind_ret_l).] 0.061 secs (0.06u,0.s) +Chars 10987 - 10998 [destruct~e.] 0.001 secs (0.001u,0.s) +Chars 10999 - 11016 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) +Chars 11017 - 11042 [rewrite~throw_prefix_exc.] 0.018 secs (0.018u,0.s) +Chars 11049 - 11081 [setoid_rewrite~throw_prefix_exc.] 0.075 secs (0.075u,0.s) +Chars 11082 - 11108 [repeat~rewrite~bind_ret_l.] 0.042 secs (0.042u,0.s) Chars 11115 - 11127 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 11133 - 11134 [+] 0. secs (0.u,0.s) -Chars 11135 - 11152 [(rewrite~bind_vis).] 0.028 secs (0.028u,0.s) -Chars 11153 - 11177 [(rewrite~throw_prefix_ev).] 0.028 secs (0.027u,0.s) -Chars 11178 - 11209 [setoid_rewrite~throw_prefix_ev.] 0.113 secs (0.111u,0.001s) -Chars 11216 - 11233 [(rewrite~bind_vis).] 0.033 secs (0.032u,0.s) -Chars 11234 - 11258 [setoid_rewrite~bind_tau.] 0.065 secs (0.065u,0.s) -Chars 11259 - 11264 [evis.] 0.002 secs (0.002u,0.s) -Chars 11265 - 11276 [(step;~etau).] 0.005 secs (0.005u,0.s) -Chars 11284 - 11310 [(rewrite~throw_prefix_bind).] 0.02 secs (0.02u,0.s) -Chars 11311 - 11332 [(ebind;~intros;~subst).] 0.01 secs (0.009u,0.s) -Chars 11340 - 11373 [(destruct~u2~as~[[a|~b]|~e']).] 0.001 secs (0.001u,0.s) +Chars 11135 - 11152 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) +Chars 11153 - 11177 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) +Chars 11178 - 11209 [setoid_rewrite~throw_prefix_ev.] 0.088 secs (0.087u,0.s) +Chars 11216 - 11233 [rewrite~bind_vis.] 0.023 secs (0.023u,0.s) +Chars 11234 - 11258 [setoid_rewrite~bind_tau.] 0.05 secs (0.05u,0.s) +Chars 11259 - 11264 [evis.] 0.001 secs (0.001u,0.s) +Chars 11265 - 11276 [step;~etau.] 0.004 secs (0.004u,0.s) +Chars 11284 - 11310 [rewrite~throw_prefix_bind.] 0.015 secs (0.015u,0.s) +Chars 11311 - 11332 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 11340 - 11373 [destruct~u2~as~[[a|~b]|~e'].] 0. secs (0.u,0.s) Chars 11380 - 11381 [*] 0. secs (0.u,0.s) -Chars 11382 - 11401 [(rewrite~bind_ret_l).] 0.025 secs (0.025u,0.s) -Chars 11402 - 11427 [(rewrite~throw_prefix_tau).] 0.02 secs (0.02u,0.s) -Chars 11428 - 11439 [(step;~etau).] 0.003 secs (0.003u,0.s) +Chars 11382 - 11401 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 11402 - 11427 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) +Chars 11428 - 11439 [step;~etau.] 0.002 secs (0.002u,0.s) Chars 11447 - 11448 [*] 0. secs (0.u,0.s) -Chars 11449 - 11468 [(rewrite~bind_ret_l).] 0.024 secs (0.023u,0.s) -Chars 11469 - 11494 [(rewrite~throw_prefix_ret).] 0.016 secs (0.016u,0.s) -Chars 11503 - 11515 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 11449 - 11468 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 11469 - 11494 [rewrite~throw_prefix_ret.] 0.012 secs (0.011u,0.s) +Chars 11503 - 11515 [reflexivity.] 0. secs (0.u,0.s) Chars 11523 - 11524 [*] 0. secs (0.u,0.s) -Chars 11525 - 11544 [(rewrite~bind_ret_l).] 0.023 secs (0.023u,0.s) -Chars 11545 - 11557 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11559 - 11563 [Qed.] 0.086 secs (0.084u,0.001s) +Chars 11525 - 11544 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) +Chars 11545 - 11557 [reflexivity.] 0. secs (0.u,0.s) +Chars 11559 - 11563 [Qed.] 0.06 secs (0.059u,0.s) diff --git a/theories/Events/FailFacts.v.timing b/theories/Events/FailFacts.v.timing index d0a646d9..d1fab36a 100644 --- a/theories/Events/FailFacts.v.timing +++ b/theories/Events/FailFacts.v.timing @@ -1,6 +1,6 @@ -Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 97 - 139 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 141 - 469 [From~ITree~Require~Import~Basi...] 0.091 secs (0.074u,0.016s) +Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 97 - 139 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 141 - 469 [From~ITree~Require~Import~Basi...] 0.056 secs (0.048u,0.008s) Chars 471 - 493 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 494 - 528 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 529 - 558 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) @@ -8,194 +8,194 @@ Chars 560 - 574 [Import~Monads.] 0. secs (0.u,0.s) Chars 576 - 590 [Section~FailT.] 0. secs (0.u,0.s) Chars 594 - 680 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) Chars 684 - 763 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) -Chars 767 - 968 [#[global]~Instance~failT_fun~:...] 0. secs (0.u,0.s) -Chars 972 - 1218 [#[global]~Instance~failT_monad...] 0.001 secs (0.u,0.s) -Chars 1222 - 1854 [#[global]~Instance~failT_iter~...] 0.001 secs (0.001u,0.s) +Chars 767 - 968 [#[global]~Instance~failT_fun~:...] 0.002 secs (0.002u,0.s) +Chars 972 - 1218 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) +Chars 1222 - 1854 [#[global]~Instance~failT_iter~...] 0. secs (0.u,0.s) Chars 1856 - 1866 [End~FailT.] 0. secs (0.u,0.s) Chars 1868 - 1886 [Section~FailTLaws.] 0. secs (0.u,0.s) Chars 1890 - 1981 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) Chars 1985 - 2056 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) Chars 2059 - 2065 [Proof.] 0. secs (0.u,0.s) -Chars 2070 - 2091 [(apply~Reflexive_eqit).] 0. secs (0.u,0.s) -Chars 2096 - 2112 [(intros~[];~auto).] 0. secs (0.u,0.s) +Chars 2070 - 2091 [apply~Reflexive_eqit.] 0. secs (0.u,0.s) +Chars 2096 - 2112 [intros~[];~auto.] 0. secs (0.u,0.s) Chars 2115 - 2119 [Qed.] 0. secs (0.u,0.s) Chars 2123 - 2194 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) Chars 2197 - 2203 [Proof.] 0. secs (0.u,0.s) -Chars 2208 - 2229 [(apply~Symmetric_eqit).] 0. secs (0.u,0.s) -Chars 2234 - 2253 [(intros~[]~[];~auto).] 0. secs (0.u,0.s) +Chars 2208 - 2229 [apply~Symmetric_eqit.] 0. secs (0.u,0.s) +Chars 2234 - 2253 [intros~[]~[];~auto.] 0. secs (0.u,0.s) Chars 2256 - 2260 [Qed.] 0. secs (0.u,0.s) Chars 2264 - 2337 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 2340 - 2346 [Proof.] 0. secs (0.u,0.s) -Chars 2351 - 2373 [(apply~Transitive_eqit).] 0. secs (0.u,0.s) -Chars 2378 - 2433 [(intros~[]~[]~[]~?~?;~subst;~c...] 0.002 secs (0.002u,0.s) -Chars 2436 - 2440 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2351 - 2373 [apply~Transitive_eqit.] 0. secs (0.u,0.s) +Chars 2378 - 2433 [intros~[]~[]~[]~?~?;~subst;~cb...] 0.001 secs (0.001u,0.s) +Chars 2436 - 2440 [Qed.] 0. secs (0.u,0.s) Chars 2444 - 2519 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 2522 - 2528 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2558 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 2533 - 2558 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 2561 - 2565 [Qed.] 0. secs (0.u,0.s) Chars 2569 - 2636 [#[global]~Instance~MonadLaws_f...] 0. secs (0.u,0.s) Chars 2639 - 2645 [Proof.] 0. secs (0.u,0.s) -Chars 2650 - 2661 [(split;~cbn).] 0. secs (0.u,0.s) +Chars 2650 - 2661 [split;~cbn.] 0. secs (0.u,0.s) Chars 2666 - 2667 [-] 0. secs (0.u,0.s) -Chars 2668 - 2713 [(cbn;~intros;~rewrite~bind_ret...] 0.002 secs (0.002u,0.s) +Chars 2668 - 2713 [cbn;~intros;~rewrite~bind_ret_...] 0.001 secs (0.001u,0.s) Chars 2718 - 2719 [-] 0. secs (0.u,0.s) -Chars 2720 - 2732 [(cbn;~intros).] 0. secs (0.u,0.s) -Chars 2739 - 2770 [(rewrite~<-~(bind_ret_r~x)~~at...] 0.002 secs (0.002u,0.s) -Chars 2777 - 2821 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) +Chars 2720 - 2732 [cbn;~intros.] 0. secs (0.u,0.s) +Chars 2739 - 2770 [rewrite~<-~(bind_ret_r~x)~~at~2.] 0.001 secs (0.001u,0.s) +Chars 2777 - 2821 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) Chars 2826 - 2827 [-] 0. secs (0.u,0.s) -Chars 2828 - 2859 [(intros;~cbn;~rewrite~bind_bind).] 0.002 secs (0.002u,0.s) -Chars 2866 - 2897 [(eapply~eutt_eq_bind;~intros~[]).] 0. secs (0.u,0.s) +Chars 2828 - 2859 [intros;~cbn;~rewrite~bind_bind.] 0.001 secs (0.001u,0.s) +Chars 2866 - 2897 [eapply~eutt_eq_bind;~intros~[].] 0. secs (0.u,0.s) Chars 2905 - 2906 [+] 0. secs (0.u,0.s) -Chars 2907 - 2951 [(eapply~eutt_eq_bind;~intros~[...] 0. secs (0.u,0.s) +Chars 2907 - 2951 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) Chars 2959 - 2960 [+] 0. secs (0.u,0.s) -Chars 2961 - 2993 [(rewrite~bind_ret_l;~reflexivi...] 0.001 secs (0.001u,0.s) +Chars 2961 - 2993 [rewrite~bind_ret_l;~reflexivity.] 0. secs (0.u,0.s) Chars 2998 - 2999 [-] 0. secs (0.u,0.s) -Chars 3000 - 3018 [(repeat~intro;~cbn).] 0. secs (0.u,0.s) -Chars 3025 - 3054 [(eapply~eutt_bind_eutt;~eauto).] 0.003 secs (0.002u,0.s) -Chars 3061 - 3114 [(intros~[]~[]~REL;~cbn~in~*;~s...] 0.039 secs (0.038u,0.001s) +Chars 3000 - 3018 [repeat~intro;~cbn.] 0. secs (0.u,0.s) +Chars 3025 - 3054 [eapply~eutt_bind_eutt;~eauto.] 0.029 secs (0.029u,0.s) +Chars 3061 - 3114 [intros~[]~[]~REL;~cbn~in~*;~su...] 0. secs (0.u,0.s) Chars 3121 - 3122 [+] 0. secs (0.u,0.s) -Chars 3123 - 3132 [(apply~H0).] 0. secs (0.u,0.s) +Chars 3123 - 3132 [apply~H0.] 0. secs (0.u,0.s) Chars 3139 - 3140 [+] 0. secs (0.u,0.s) Chars 3141 - 3153 [reflexivity.] 0. secs (0.u,0.s) -Chars 3156 - 3160 [Qed.] 0.004 secs (0.004u,0.s) +Chars 3156 - 3160 [Qed.] 0.003 secs (0.002u,0.s) Chars 3164 - 3178 [End~FailTLaws.] 0. secs (0.u,0.s) -Chars 3330 - 3494 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.001u,0.s) +Chars 3330 - 3494 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.u,0.s) Chars 3495 - 3535 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) Chars 3578 - 3826 [Definition~_interp_fail~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 3849 - 3987 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) Chars 3988 - 3994 [Proof.] 0. secs (0.u,0.s) -Chars 3997 - 4023 [(unfold~interp_fail,~interp).] 0. secs (0.u,0.s) -Chars 4024 - 4085 [(unfold~Basics.iter,~failT_ite...] 0. secs (0.u,0.s) -Chars 4088 - 4108 [(rewrite~unfold_iter).] 0.006 secs (0.006u,0.s) -Chars 4109 - 4113 [(cbn).] 0. secs (0.u,0.s) -Chars 4116 - 4137 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) -Chars 4140 - 4214 [(cbn;~repeat~(rewrite~?bind_bi...] 0.041 secs (0.032u,0.008s) -Chars 4217 - 4291 [(cbn;~repeat~(rewrite~?bind_bi...] 0.038 secs (0.036u,0.001s) -Chars 4294 - 4368 [(cbn;~repeat~(rewrite~?bind_bi...] 0.048 secs (0.046u,0.001s) -Chars 4371 - 4444 [(apply~eq_itree_bind~with~(UU~...] 0.001 secs (0.001u,0.s) -Chars 4448 - 4467 [(destruct~x~as~[x|~]).] 0. secs (0.u,0.s) +Chars 3997 - 4023 [unfold~interp_fail,~interp.] 0. secs (0.u,0.s) +Chars 4024 - 4085 [unfold~Basics.iter,~failT_iter...] 0. secs (0.u,0.s) +Chars 4088 - 4108 [rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) +Chars 4109 - 4113 [cbn.] 0. secs (0.u,0.s) +Chars 4116 - 4137 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) +Chars 4140 - 4214 [cbn;~repeat~(rewrite~?bind_bin...] 0.028 secs (0.024u,0.004s) +Chars 4217 - 4291 [cbn;~repeat~(rewrite~?bind_bin...] 0.024 secs (0.024u,0.s) +Chars 4294 - 4368 [cbn;~repeat~(rewrite~?bind_bin...] 0.032 secs (0.032u,0.s) +Chars 4371 - 4444 [apply~eq_itree_bind~with~(UU~:...] 0.001 secs (0.001u,0.s) +Chars 4448 - 4467 [destruct~x~as~[x|~].] 0. secs (0.u,0.s) Chars 4470 - 4471 [-] 0. secs (0.u,0.s) -Chars 4472 - 4504 [(rewrite~bind_ret_l;~reflexivi...] 0.008 secs (0.008u,0.s) +Chars 4472 - 4504 [rewrite~bind_ret_l;~reflexivity.] 0.005 secs (0.005u,0.s) Chars 4507 - 4508 [-] 0. secs (0.u,0.s) -Chars 4509 - 4541 [(rewrite~bind_ret_l;~reflexivi...] 0.007 secs (0.007u,0.s) -Chars 4542 - 4546 [Qed.] 0.022 secs (0.021u,0.s) -Chars 4548 - 4722 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) +Chars 4509 - 4541 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) +Chars 4542 - 4546 [Qed.] 0.013 secs (0.013u,0.s) +Chars 4548 - 4722 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) Chars 4723 - 4729 [Proof.] 0. secs (0.u,0.s) -Chars 4732 - 4743 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4747 - 4759 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4763 - 4777 [(intros~s~t~EQ).] 0. secs (0.u,0.s) -Chars 4780 - 4809 [(rewrite~2!unfold_interp_fail).] 0.034 secs (0.033u,0.s) +Chars 4732 - 4743 [repeat~red.] 0. secs (0.u,0.s) +Chars 4747 - 4759 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4763 - 4777 [intros~s~t~EQ.] 0. secs (0.u,0.s) +Chars 4780 - 4809 [rewrite~2!unfold_interp_fail.] 0.021 secs (0.021u,0.s) Chars 4812 - 4823 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4827 - 4887 [(destruct~EQ;~cbn;~subst;~try~...] 0.009 secs (0.008u,0.s) +Chars 4827 - 4887 [destruct~EQ;~cbn;~subst;~try~d...] 0.006 secs (0.006u,0.s) Chars 4891 - 4898 [to_mon.] 0. secs (0.u,0.s) -Chars 4899 - 4920 [(ebind;~intros;~subst).] 0.026 secs (0.025u,0.s) -Chars 4921 - 4933 [(destruct~u2).] 0. secs (0.u,0.s) -Chars 4937 - 4942 [etau.] 0.006 secs (0.006u,0.s) +Chars 4899 - 4920 [ebind;~intros;~subst.] 0.018 secs (0.018u,0.s) +Chars 4921 - 4933 [destruct~u2.] 0. secs (0.u,0.s) +Chars 4937 - 4942 [etau.] 0.004 secs (0.004u,0.s) Chars 4943 - 4948 [eret.] 0. secs (0.u,0.s) -Chars 4950 - 4954 [Qed.] 0.01 secs (0.009u,0.s) +Chars 4950 - 4954 [Qed.] 0.006 secs (0.006u,0.s) Chars 5055 - 5200 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) Chars 5201 - 5207 [Proof.] 0. secs (0.u,0.s) -Chars 5210 - 5223 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 5226 - 5248 [(rewrite~option_rel_eq).] 0.003 secs (0.003u,0.s) -Chars 5251 - 5284 [(apply~interp_fail_eq_itree;~a...] 0. secs (0.u,0.s) -Chars 5285 - 5289 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5210 - 5223 [repeat~intro.] 0. secs (0.u,0.s) +Chars 5226 - 5248 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) +Chars 5251 - 5284 [apply~interp_fail_eq_itree;~auto.] 0. secs (0.u,0.s) +Chars 5285 - 5289 [Qed.] 0. secs (0.u,0.s) Chars 5291 - 5434 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) -Chars 5444 - 5455 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5459 - 5471 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5475 - 5489 [(intros~s~t~EQ).] 0. secs (0.u,0.s) -Chars 5492 - 5521 [(rewrite~2!unfold_interp_fail).] 0.033 secs (0.033u,0.s) +Chars 5444 - 5455 [repeat~red.] 0. secs (0.u,0.s) +Chars 5459 - 5471 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 5475 - 5489 [intros~s~t~EQ.] 0. secs (0.u,0.s) +Chars 5492 - 5521 [rewrite~2!unfold_interp_fail.] 0.022 secs (0.022u,0.s) Chars 5524 - 5535 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 5539 - 5591 [(induction~EQ;~intros;~bcbn;~s...] 0.039 secs (0.038u,0.s) +Chars 5539 - 5591 [induction~EQ;~intros;~bcbn;~su...] 0.026 secs (0.026u,0.s) Chars 5595 - 5596 [-] 0. secs (0.u,0.s) Chars 5597 - 5602 [eret.] 0. secs (0.u,0.s) Chars 5606 - 5607 [-] 0. secs (0.u,0.s) -Chars 5608 - 5613 [etau.] 0.002 secs (0.002u,0.s) +Chars 5608 - 5613 [etau.] 0.001 secs (0.001u,0.s) Chars 5617 - 5618 [-] 0. secs (0.u,0.s) -Chars 5619 - 5640 [(ebind;~intros;~subst).] 0.024 secs (0.024u,0.s) -Chars 5641 - 5685 [(destruct~u2;~econstructor;~ea...] 0.005 secs (0.005u,0.s) +Chars 5619 - 5640 [ebind;~intros;~subst.] 0.017 secs (0.016u,0.s) +Chars 5641 - 5685 [destruct~u2;~econstructor;~eau...] 0.004 secs (0.004u,0.s) Chars 5690 - 5691 [-] 0. secs (0.u,0.s) -Chars 5692 - 5738 [(rewrite~tau_euttge,~unfold_in...] 0.022 secs (0.021u,0.s) +Chars 5692 - 5738 [rewrite~tau_euttge,~unfold_int...] 0.013 secs (0.013u,0.s) Chars 5741 - 5742 [-] 0. secs (0.u,0.s) -Chars 5743 - 5789 [(rewrite~tau_euttge,~unfold_in...] 0.022 secs (0.022u,0.s) -Chars 5790 - 5794 [Qed.] 0.013 secs (0.012u,0.s) -Chars 5895 - 6028 [#[global]~Instance~interp_fail...] 0.001 secs (0.001u,0.s) +Chars 5743 - 5789 [rewrite~tau_euttge,~unfold_int...] 0.015 secs (0.015u,0.s) +Chars 5790 - 5794 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5895 - 6028 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) Chars 6029 - 6035 [Proof.] 0. secs (0.u,0.s) -Chars 6038 - 6051 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 6054 - 6076 [(rewrite~option_rel_eq).] 0.002 secs (0.002u,0.s) -Chars 6079 - 6108 [(apply~interp_fail_eutt;~auto).] 0. secs (0.u,0.s) +Chars 6038 - 6051 [repeat~intro.] 0. secs (0.u,0.s) +Chars 6054 - 6076 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) +Chars 6079 - 6108 [apply~interp_fail_eutt;~auto.] 0. secs (0.u,0.s) Chars 6109 - 6113 [Qed.] 0.001 secs (0.001u,0.s) Chars 6115 - 6250 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) Chars 6251 - 6257 [Proof.] 0. secs (0.u,0.s) -Chars 6258 - 6285 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) +Chars 6258 - 6285 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) Chars 6286 - 6298 [reflexivity.] 0. secs (0.u,0.s) -Chars 6299 - 6303 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6305 - 6690 [Lemma~interp_fail_vis~{E~F~:~T...] 0.001 secs (0.001u,0.s) +Chars 6299 - 6303 [Qed.] 0. secs (0.u,0.s) +Chars 6305 - 6690 [Lemma~interp_fail_vis~{E~F~:~T...] 0. secs (0.u,0.s) Chars 6691 - 6697 [Proof.] 0. secs (0.u,0.s) -Chars 6700 - 6727 [(rewrite~unfold_interp_fail).] 0.002 secs (0.002u,0.s) +Chars 6700 - 6727 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) Chars 6728 - 6740 [reflexivity.] 0. secs (0.u,0.s) Chars 6741 - 6745 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7182 - 7300 [Lemma~interp_fail_Ret~:~~~fora...] 0.001 secs (0.u,0.s) +Chars 7182 - 7300 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) Chars 7301 - 7307 [Proof.] 0. secs (0.u,0.s) -Chars 7310 - 7358 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) -Chars 7359 - 7363 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7365 - 7499 [Lemma~interp_fail_ret~:~~~fora...] 0.002 secs (0.002u,0.s) +Chars 7310 - 7358 [intros;~rewrite~unfold_interp_...] 0.002 secs (0.002u,0.s) +Chars 7359 - 7363 [Qed.] 0. secs (0.u,0.s) +Chars 7365 - 7499 [Lemma~interp_fail_ret~:~~~fora...] 0. secs (0.u,0.s) Chars 7500 - 7506 [Proof.] 0. secs (0.u,0.s) -Chars 7509 - 7557 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.002u,0.s) -Chars 7558 - 7562 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7509 - 7557 [intros;~rewrite~unfold_interp_...] 0.001 secs (0.001u,0.s) +Chars 7558 - 7562 [Qed.] 0. secs (0.u,0.s) Chars 7564 - 7712 [Lemma~interp_fail_trigger~{E~F...] 0. secs (0.u,0.s) Chars 7713 - 7719 [Proof.] 0. secs (0.u,0.s) -Chars 7722 - 7743 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 7744 - 7768 [(rewrite~interp_fail_vis).] 0.001 secs (0.001u,0.s) -Chars 7771 - 7858 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.002u,0.s) -Chars 7861 - 7881 [(eapply~eutt_eq_bind).] 0. secs (0.u,0.s) -Chars 7884 - 7945 [(intros~[];~try~reflexivity;~r...] 0.004 secs (0.004u,0.s) +Chars 7722 - 7743 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 7744 - 7768 [rewrite~interp_fail_vis.] 0. secs (0.u,0.s) +Chars 7771 - 7858 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) +Chars 7861 - 7881 [eapply~eutt_eq_bind.] 0. secs (0.u,0.s) +Chars 7884 - 7945 [intros~[];~try~reflexivity;~re...] 0.002 secs (0.002u,0.s) Chars 7948 - 7960 [reflexivity.] 0. secs (0.u,0.s) -Chars 7961 - 7965 [Qed.] 0.003 secs (0.003u,0.s) -Chars 7981 - 8269 [Lemma~interp_fail_bind~:~~~for...] 0.001 secs (0.001u,0.s) +Chars 7961 - 7965 [Qed.] 0.001 secs (0.001u,0.s) +Chars 7981 - 8269 [Lemma~interp_fail_bind~:~~~for...] 0. secs (0.u,0.s) Chars 8270 - 8276 [Proof.] 0. secs (0.u,0.s) -Chars 8279 - 8315 [(intros~X~Y~E~F;~coinduction;~...] 0.002 secs (0.002u,0.s) -Chars 8318 - 8338 [(rewrite~unfold_bind).] 0.019 secs (0.019u,0.s) -Chars 8341 - 8374 [(rewrite~(unfold_interp_fail~h...] 0.022 secs (0.021u,0.s) -Chars 8377 - 8411 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) +Chars 8279 - 8315 [intros~X~Y~E~F;~coinduction;~i...] 0.001 secs (0.001u,0.s) +Chars 8318 - 8338 [rewrite~unfold_bind.] 0.013 secs (0.013u,0.s) +Chars 8341 - 8374 [rewrite~(unfold_interp_fail~h~t).] 0.014 secs (0.014u,0.s) +Chars 8377 - 8411 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) Chars 8414 - 8415 [-] 0. secs (0.u,0.s) -Chars 8416 - 8435 [(rewrite~bind_ret_l).] 0.021 secs (0.021u,0.s) -Chars 8436 - 8448 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8416 - 8435 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 8436 - 8448 [reflexivity.] 0. secs (0.u,0.s) Chars 8452 - 8453 [-] 0. secs (0.u,0.s) Chars 8454 - 8459 [taus.] 0. secs (0.u,0.s) -Chars 8460 - 8470 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8460 - 8470 [apply~CIH.] 0. secs (0.u,0.s) Chars 8474 - 8475 [-] 0. secs (0.u,0.s) -Chars 8476 - 8511 [(rewrite~bind_bind,~interp_fai...] 0.037 secs (0.036u,0.s) -Chars 8516 - 8537 [(ebind;~intros;~subst).] 0.011 secs (0.011u,0.s) -Chars 8544 - 8556 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 8476 - 8511 [rewrite~bind_bind,~interp_fail...] 0.025 secs (0.025u,0.s) +Chars 8516 - 8537 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 8544 - 8556 [destruct~u2.] 0. secs (0.u,0.s) Chars 8562 - 8563 [+] 0. secs (0.u,0.s) -Chars 8564 - 8581 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 8564 - 8581 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) Chars 8588 - 8593 [etau.] 0. secs (0.u,0.s) Chars 8599 - 8600 [+] 0. secs (0.u,0.s) -Chars 8601 - 8620 [(rewrite~bind_ret_l).] 0.022 secs (0.021u,0.s) -Chars 8627 - 8645 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 8646 - 8650 [Qed.] 0.016 secs (0.016u,0.s) -Chars 8665 - 8895 [Lemma~interp_failure_bind'~:~~...] 0.001 secs (0.001u,0.s) +Chars 8601 - 8620 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 8627 - 8645 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 8646 - 8650 [Qed.] 0.011 secs (0.011u,0.s) +Chars 8665 - 8895 [Lemma~interp_failure_bind'~:~~...] 0. secs (0.u,0.s) Chars 8896 - 8902 [Proof.] 0. secs (0.u,0.s) -Chars 8905 - 8920 [(intros~X~Y~E~F).] 0. secs (0.u,0.s) -Chars 8923 - 8927 [(cbn).] 0. secs (0.u,0.s) -Chars 8930 - 8950 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) -Chars 8955 - 9001 [(rewrite~unfold_bind,~(unfold_...] 0.039 secs (0.039u,0.s) -Chars 9004 - 9038 [(destruct~(observe~t)~eqn:EQ;~...] 0.006 secs (0.006u,0.s) +Chars 8905 - 8920 [intros~X~Y~E~F.] 0. secs (0.u,0.s) +Chars 8923 - 8927 [cbn.] 0. secs (0.u,0.s) +Chars 8930 - 8950 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 8955 - 9001 [rewrite~unfold_bind,~(unfold_i...] 0.026 secs (0.026u,0.s) +Chars 9004 - 9038 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) Chars 9041 - 9042 [-] 0. secs (0.u,0.s) -Chars 9043 - 9062 [(rewrite~bind_ret_l).] 0.018 secs (0.018u,0.s) -Chars 9063 - 9075 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 9043 - 9062 [rewrite~bind_ret_l.] 0.013 secs (0.012u,0.s) +Chars 9063 - 9075 [reflexivity.] 0. secs (0.u,0.s) Chars 9079 - 9080 [-] 0. secs (0.u,0.s) -Chars 9081 - 9086 [etau.] 0.014 secs (0.014u,0.s) -Chars 9087 - 9097 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9081 - 9086 [etau.] 0.01 secs (0.01u,0.s) +Chars 9087 - 9097 [apply~CIH.] 0. secs (0.u,0.s) Chars 9101 - 9102 [-] 0. secs (0.u,0.s) -Chars 9103 - 9138 [(rewrite~bind_bind,~interp_fai...] 0.035 secs (0.034u,0.s) -Chars 9143 - 9164 [(ebind;~intros;~subst).] 0.01 secs (0.01u,0.s) -Chars 9170 - 9182 [(destruct~u2).] 0. secs (0.u,0.s) +Chars 9103 - 9138 [rewrite~bind_bind,~interp_fail...] 0.025 secs (0.024u,0.s) +Chars 9143 - 9164 [ebind;~intros;~subst.] 0.007 secs (0.007u,0.s) +Chars 9170 - 9182 [destruct~u2.] 0. secs (0.u,0.s) Chars 9188 - 9189 [+] 0. secs (0.u,0.s) -Chars 9190 - 9207 [(rewrite~bind_tau).] 0.022 secs (0.022u,0.s) +Chars 9190 - 9207 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) Chars 9214 - 9219 [etau.] 0. secs (0.u,0.s) Chars 9225 - 9226 [+] 0. secs (0.u,0.s) -Chars 9227 - 9246 [(rewrite~bind_ret_l).] 0.019 secs (0.019u,0.s) -Chars 9253 - 9265 [reflexivity.] 0.002 secs (0.002u,0.s) -Chars 9266 - 9270 [Qed.] 0.015 secs (0.015u,0.s) +Chars 9227 - 9246 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 9253 - 9265 [reflexivity.] 0. secs (0.u,0.s) +Chars 9266 - 9270 [Qed.] 0.011 secs (0.011u,0.s) diff --git a/theories/Events/Map.v.timing b/theories/Events/Map.v.timing index 8799591f..f1b01046 100644 --- a/theories/Events/Map.v.timing +++ b/theories/Events/Map.v.timing @@ -1,9 +1,9 @@ Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.043 secs (0.033u,0.01s) +Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) Chars 145 - 181 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.113 secs (0.103u,0.009s) +Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.077 secs (0.072u,0.004s) Chars 376 - 410 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 427 - 439 [Section~Map.] 0. secs (0.u,0.s) Chars 443 - 466 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -15,8 +15,8 @@ Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0. secs (0.u,0.s) Chars 1066 - 1089 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1093 - 1114 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1117 - 1143 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1147 - 1401 [Definition~handle_map~{E}~:~ma...] 0.001 secs (0.001u,0.s) -Chars 1405 - 1522 [Definition~run_map~{E}~:~itree...] 0.001 secs (0.001u,0.s) +Chars 1147 - 1401 [Definition~handle_map~{E}~:~ma...] 0. secs (0.u,0.s) +Chars 1405 - 1522 [Definition~run_map~{E}~:~itree...] 0. secs (0.u,0.s) Chars 1524 - 1532 [End~Map.] 0. secs (0.u,0.s) Chars 1534 - 1561 [Arguments~insert~{K~V~E~_}.] 0. secs (0.u,0.s) Chars 1562 - 1589 [Arguments~lookup~{K~V~E~_}.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefault.v.timing b/theories/Events/MapDefault.v.timing index 09560846..959eacfb 100644 --- a/theories/Events/MapDefault.v.timing +++ b/theories/Events/MapDefault.v.timing @@ -1,8 +1,8 @@ Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.006 secs (0.004u,0.001s) -Chars 183 - 239 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.068 secs (0.048u,0.016s) +Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.004 secs (0.003u,0.001s) +Chars 183 - 239 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) +Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.039 secs (0.031u,0.007s) Chars 499 - 533 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 550 - 562 [Section~Map.] 0. secs (0.u,0.s) Chars 566 - 589 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) @@ -10,14 +10,14 @@ Chars 593 - 728 [Variant~mapE~(d~:~V)~:~Type~->...] 0. secs (0.u,0.s) Chars 732 - 753 [Arguments~Insert~{d}.] 0. secs (0.u,0.s) Chars 756 - 780 [Arguments~LookupDef~{d}.] 0. secs (0.u,0.s) Chars 783 - 804 [Arguments~Remove~{d}.] 0. secs (0.u,0.s) -Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0.001 secs (0.u,0.s) +Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0. secs (0.u,0.s) Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0. secs (0.u,0.s) -Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0. secs (0.u,0.s) +Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0.014 secs (0.013u,0.s) Chars 1060 - 1083 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 1087 - 1108 [Context~{map~:~Type}.] 0. secs (0.u,0.s) Chars 1111 - 1137 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.025 secs (0.021u,0.004s) -Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) +Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.002 secs (0.002u,0.s) +Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0. secs (0.u,0.s) Chars 1830 - 1966 [Definition~interp_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) Chars 2165 - 2273 [Definition~eq_map~(d~:~V)~(m1~...] 0. secs (0.u,0.s) Chars 2277 - 2285 [End~Map.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefaultFacts.v.timing b/theories/Events/MapDefaultFacts.v.timing index 8bb7ab63..7305747b 100644 --- a/theories/Events/MapDefaultFacts.v.timing +++ b/theories/Events/MapDefaultFacts.v.timing @@ -1,10 +1,10 @@ -Chars 87 - 123 [From~Coinduction~Require~Impor...] 0.009 secs (0.006u,0.002s) +Chars 87 - 123 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) Chars 126 - 149 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 150 - 174 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 176 - 213 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.001s) -Chars 215 - 259 [From~ExtLib~Require~Import~Cor...] 0.001 secs (0.001u,0.s) -Chars 261 - 302 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 304 - 470 [From~ITree~Require~Import~Basi...] 0.248 secs (0.207u,0.036s) +Chars 176 - 213 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) +Chars 215 - 259 [From~ExtLib~Require~Import~Cor...] 0. secs (0.u,0.s) +Chars 261 - 302 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) +Chars 304 - 470 [From~ITree~Require~Import~Basi...] 0.163 secs (0.144u,0.017s) Chars 472 - 506 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 507 - 530 [Import~Structures.Maps.] 0. secs (0.u,0.s) Chars 547 - 564 [Section~MapFacts.] 0. secs (0.u,0.s) @@ -16,196 +16,196 @@ Chars 676 - 705 [Context~{Kdec~:~@RelDec~K~eq}.] 0. secs (0.u,0.s) Chars 708 - 746 [Context~{KdecOk~:~RelDec_Corre...] 0. secs (0.u,0.s) Chars 780 - 845 [Lemma~lookup_add_eq~:~forall~k...] 0. secs (0.u,0.s) Chars 848 - 854 [Proof.] 0. secs (0.u,0.s) -Chars 859 - 866 [(intros).] 0. secs (0.u,0.s) -Chars 871 - 914 [(rewrite~mapsto_lookup;~apply~...] 0. secs (0.u,0.s) +Chars 859 - 866 [intros.] 0. secs (0.u,0.s) +Chars 871 - 914 [rewrite~mapsto_lookup;~apply~m...] 0. secs (0.u,0.s) Chars 920 - 929 [Unshelve.] 0. secs (0.u,0.s) Chars 934 - 955 [2:~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 958 - 962 [Qed.] 0. secs (0.u,0.s) Chars 996 - 1081 [Lemma~lookup_add_neq~:~~~foral...] 0. secs (0.u,0.s) Chars 1084 - 1090 [Proof.] 0. secs (0.u,0.s) -Chars 1095 - 1102 [(intros).] 0. secs (0.u,0.s) -Chars 1107 - 1179 [(generalize~(@mapsto_add_neq~_...] 0. secs (0.u,0.s) -Chars 1184 - 1221 [setoid_rewrite~~<-~mapsto_look...] 0.004 secs (0.003u,0.s) -Chars 1226 - 1265 [(destruct~(lookup~k~s)~as~[v'|...] 0. secs (0.u,0.s) +Chars 1095 - 1102 [intros.] 0. secs (0.u,0.s) +Chars 1107 - 1179 [generalize~(@mapsto_add_neq~_~...] 0. secs (0.u,0.s) +Chars 1184 - 1221 [setoid_rewrite~~<-~mapsto_look...] 0.003 secs (0.002u,0.s) +Chars 1226 - 1265 [destruct~(lookup~k~s)~as~[v'|~...] 0. secs (0.u,0.s) Chars 1270 - 1271 [-] 0. secs (0.u,0.s) Chars 1272 - 1290 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1297 - 1311 [(apply~H;~auto).] 0. secs (0.u,0.s) +Chars 1297 - 1311 [apply~H;~auto.] 0. secs (0.u,0.s) Chars 1316 - 1317 [-] 0. secs (0.u,0.s) -Chars 1318 - 1386 [(destruct~(lookup~k~(add~k'~v~...] 0. secs (0.u,0.s) +Chars 1318 - 1386 [destruct~(lookup~k~(add~k'~v~s...] 0. secs (0.u,0.s) Chars 1393 - 1411 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1418 - 1442 [(symmetry;~apply~H;~auto).] 0. secs (0.u,0.s) -Chars 1445 - 1449 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1418 - 1442 [symmetry;~apply~H;~auto.] 0. secs (0.u,0.s) +Chars 1445 - 1449 [Qed.] 0. secs (0.u,0.s) Chars 1483 - 1552 [Lemma~lookup_remove_eq~:~foral...] 0. secs (0.u,0.s) Chars 1555 - 1561 [Proof.] 0. secs (0.u,0.s) -Chars 1566 - 1573 [(intros).] 0. secs (0.u,0.s) -Chars 1578 - 1656 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) -Chars 1661 - 1689 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) -Chars 1694 - 1734 [(exfalso;~eapply~mapsto_remove...] 0. secs (0.u,0.s) +Chars 1566 - 1573 [intros.] 0. secs (0.u,0.s) +Chars 1578 - 1656 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) +Chars 1661 - 1689 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) +Chars 1694 - 1734 [exfalso;~eapply~mapsto_remove_...] 0. secs (0.u,0.s) Chars 1737 - 1741 [Qed.] 0. secs (0.u,0.s) Chars 1775 - 1866 [Lemma~lookup_remove_neq~:~~~fo...] 0. secs (0.u,0.s) Chars 1869 - 1875 [Proof.] 0. secs (0.u,0.s) -Chars 1880 - 1887 [(intros).] 0. secs (0.u,0.s) -Chars 1892 - 1953 [(match~goal~with~~|~|-~?x~=~_~...] 0. secs (0.u,0.s) +Chars 1880 - 1887 [intros.] 0. secs (0.u,0.s) +Chars 1892 - 1953 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) Chars 1958 - 1959 [-] 0. secs (0.u,0.s) -Chars 1960 - 1988 [(rewrite~mapsto_lookup~in~EQ).] 0. secs (0.u,0.s) -Chars 1995 - 2031 [(apply~mapsto_remove_neq~in~EQ...] 0.001 secs (0.u,0.s) -Chars 2038 - 2077 [(symmetry;~rewrite~mapsto_look...] 0. secs (0.u,0.s) +Chars 1960 - 1988 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) +Chars 1995 - 2031 [apply~mapsto_remove_neq~in~EQ;...] 0. secs (0.u,0.s) +Chars 2038 - 2077 [symmetry;~rewrite~mapsto_looku...] 0. secs (0.u,0.s) Chars 2082 - 2083 [-] 0. secs (0.u,0.s) -Chars 2085 - 2159 [(match~goal~with~~|~|-~_~=~?x~...] 0. secs (0.u,0.s) -Chars 2167 - 2196 [(rewrite~mapsto_lookup~in~EQ').] 0. secs (0.u,0.s) -Chars 2204 - 2243 [(eapply~mapsto_remove_neq~in~E...] 0.001 secs (0.u,0.s) -Chars 2251 - 2283 [(rewrite~<-~mapsto_lookup~in~E...] 0. secs (0.u,0.s) -Chars 2291 - 2318 [(rewrite~EQ~in~EQ';~inv~EQ').] 0. secs (0.u,0.s) +Chars 2085 - 2159 [match~goal~with~|~|-~_~=~?x~=>...] 0. secs (0.u,0.s) +Chars 2167 - 2196 [rewrite~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) +Chars 2204 - 2243 [eapply~mapsto_remove_neq~in~EQ...] 0.022 secs (0.021u,0.001s) +Chars 2251 - 2283 [rewrite~<-~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) +Chars 2291 - 2318 [rewrite~EQ~in~EQ';~inv~EQ'.] 0. secs (0.u,0.s) Chars 2326 - 2335 [Unshelve.] 0. secs (0.u,0.s) Chars 2343 - 2366 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2369 - 2373 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2377 - 2441 [#[global]~Instance~eq_map_refl...] 0.034 secs (0.029u,0.005s) +Chars 2369 - 2373 [Qed.] 0. secs (0.u,0.s) +Chars 2377 - 2441 [#[global]~Instance~eq_map_refl...] 0. secs (0.u,0.s) Chars 2444 - 2450 [Proof.] 0. secs (0.u,0.s) -Chars 2455 - 2459 [(red).] 0. secs (0.u,0.s) -Chars 2460 - 2467 [(intros).] 0. secs (0.u,0.s) -Chars 2468 - 2482 [(unfold~eq_map).] 0. secs (0.u,0.s) +Chars 2455 - 2459 [red.] 0. secs (0.u,0.s) +Chars 2460 - 2467 [intros.] 0. secs (0.u,0.s) +Chars 2468 - 2482 [unfold~eq_map.] 0. secs (0.u,0.s) Chars 2483 - 2489 [tauto.] 0. secs (0.u,0.s) Chars 2492 - 2496 [Qed.] 0. secs (0.u,0.s) Chars 2504 - 2567 [#[global]~Instance~eq_map_sym~...] 0. secs (0.u,0.s) Chars 2570 - 2576 [Proof.] 0. secs (0.u,0.s) -Chars 2581 - 2594 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2599 - 2618 [(unfold~eq_map~in~H).] 0. secs (0.u,0.s) -Chars 2623 - 2633 [(rewrite~H).] 0. secs (0.u,0.s) +Chars 2581 - 2594 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2599 - 2618 [unfold~eq_map~in~H.] 0. secs (0.u,0.s) +Chars 2623 - 2633 [rewrite~H.] 0. secs (0.u,0.s) Chars 2638 - 2650 [reflexivity.] 0. secs (0.u,0.s) Chars 2653 - 2657 [Qed.] 0. secs (0.u,0.s) Chars 2661 - 2727 [#[global]~Instance~eq_map_tran...] 0. secs (0.u,0.s) Chars 2730 - 2736 [Proof.] 0. secs (0.u,0.s) -Chars 2741 - 2754 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2760 - 2779 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) -Chars 2784 - 2794 [(rewrite~H).] 0. secs (0.u,0.s) -Chars 2795 - 2806 [(rewrite~H0).] 0. secs (0.u,0.s) +Chars 2741 - 2754 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2760 - 2779 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) +Chars 2784 - 2794 [rewrite~H.] 0. secs (0.u,0.s) +Chars 2795 - 2806 [rewrite~H0.] 0. secs (0.u,0.s) Chars 2807 - 2819 [reflexivity.] 0. secs (0.u,0.s) Chars 2822 - 2826 [Qed.] 0. secs (0.u,0.s) Chars 2831 - 2849 [Section~Relations.] 0. secs (0.u,0.s) Chars 2852 - 2875 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) Chars 2878 - 2909 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 2913 - 3133 [Definition~map_default_eq~d~{E...] 0.001 secs (0.001u,0.s) +Chars 2913 - 3133 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) Chars 3137 - 3151 [End~Relations.] 0. secs (0.u,0.s) Chars 3155 - 3298 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) Chars 3301 - 3307 [Proof.] 0. secs (0.u,0.s) -Chars 3312 - 3333 [(intros~d~s1~s2~k~v~H).] 0. secs (0.u,0.s) -Chars 3338 - 3357 [(unfold~eq_map~in~*).] 0. secs (0.u,0.s) -Chars 3362 - 3372 [(intros~k').] 0. secs (0.u,0.s) -Chars 3377 - 3403 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) +Chars 3312 - 3333 [intros~d~s1~s2~k~v~H.] 0. secs (0.u,0.s) +Chars 3338 - 3357 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) +Chars 3362 - 3372 [intros~k'.] 0. secs (0.u,0.s) +Chars 3377 - 3403 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) Chars 3408 - 3409 [-] 0. secs (0.u,0.s) Chars 3410 - 3416 [subst.] 0. secs (0.u,0.s) -Chars 3423 - 3450 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) -Chars 3457 - 3494 [(rewrite~2!lookup_add_eq;~refl...] 0. secs (0.u,0.s) +Chars 3423 - 3450 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) +Chars 3457 - 3494 [rewrite~2!lookup_add_eq;~refle...] 0. secs (0.u,0.s) Chars 3499 - 3500 [-] 0. secs (0.u,0.s) -Chars 3501 - 3528 [(unfold~lookup_default~in~*).] 0. secs (0.u,0.s) -Chars 3535 - 3566 [(rewrite~2!lookup_add_neq;~auto).] 0. secs (0.u,0.s) +Chars 3501 - 3528 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) +Chars 3535 - 3566 [rewrite~2!lookup_add_neq;~auto.] 0. secs (0.u,0.s) Chars 3569 - 3573 [Qed.] 0. secs (0.u,0.s) Chars 3583 - 3723 [Lemma~eq_map_remove~:~~~forall...] 0. secs (0.u,0.s) Chars 3726 - 3732 [Proof.] 0. secs (0.u,0.s) -Chars 3737 - 3756 [(intros~d~s1~s2~k~H).] 0. secs (0.u,0.s) -Chars 3761 - 3791 [(unfold~eq_map~in~*;~intros~k').] 0. secs (0.u,0.s) -Chars 3796 - 3818 [(unfold~lookup_default).] 0. secs (0.u,0.s) -Chars 3823 - 3849 [(destruct~(rel_dec_p~k~k')).] 0. secs (0.u,0.s) +Chars 3737 - 3756 [intros~d~s1~s2~k~H.] 0. secs (0.u,0.s) +Chars 3761 - 3791 [unfold~eq_map~in~*;~intros~k'.] 0. secs (0.u,0.s) +Chars 3796 - 3818 [unfold~lookup_default.] 0. secs (0.u,0.s) +Chars 3823 - 3849 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) Chars 3854 - 3855 [-] 0. secs (0.u,0.s) -Chars 3856 - 3896 [(subst;~rewrite~2!lookup_remov...] 0. secs (0.u,0.s) +Chars 3856 - 3896 [subst;~rewrite~2!lookup_remove...] 0. secs (0.u,0.s) Chars 3901 - 3902 [-] 0. secs (0.u,0.s) -Chars 3903 - 3937 [(rewrite~2!lookup_remove_neq;~...] 0. secs (0.u,0.s) -Chars 3944 - 3952 [(apply~H).] 0. secs (0.u,0.s) +Chars 3903 - 3937 [rewrite~2!lookup_remove_neq;~a...] 0. secs (0.u,0.s) +Chars 3944 - 3952 [apply~H.] 0. secs (0.u,0.s) Chars 3955 - 3959 [Qed.] 0. secs (0.u,0.s) -Chars 3965 - 4175 [Lemma~handle_map_eq~:~~~forall...] 0.001 secs (0.001u,0.s) +Chars 3965 - 4175 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 4178 - 4184 [Proof.] 0. secs (0.u,0.s) -Chars 4189 - 4196 [(intros).] 0. secs (0.u,0.s) -Chars 4201 - 4262 [(destruct~m;~cbn;~red;~apply~e...] 0.002 secs (0.002u,0.s) +Chars 4189 - 4196 [intros.] 0. secs (0.u,0.s) +Chars 4201 - 4262 [destruct~m;~cbn;~red;~apply~eq...] 0.001 secs (0.001u,0.s) Chars 4267 - 4268 [-] 0. secs (0.u,0.s) -Chars 4269 - 4286 [(apply~eq_map_add).] 0. secs (0.u,0.s) +Chars 4269 - 4286 [apply~eq_map_add.] 0. secs (0.u,0.s) Chars 4287 - 4298 [assumption.] 0. secs (0.u,0.s) Chars 4303 - 4304 [-] 0. secs (0.u,0.s) -Chars 4305 - 4325 [(apply~eq_map_remove).] 0. secs (0.u,0.s) +Chars 4305 - 4325 [apply~eq_map_remove.] 0. secs (0.u,0.s) Chars 4326 - 4337 [assumption.] 0. secs (0.u,0.s) -Chars 4340 - 4344 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4340 - 4344 [Qed.] 0.002 secs (0.002u,0.s) Chars 4349 - 4462 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) Chars 4465 - 4471 [Proof.] 0. secs (0.u,0.s) -Chars 4476 - 4489 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4476 - 4489 [repeat~intro.] 0. secs (0.u,0.s) Chars 4494 - 4500 [subst.] 0. secs (0.u,0.s) -Chars 4505 - 4525 [(apply~handle_map_eq).] 0. secs (0.u,0.s) +Chars 4505 - 4525 [apply~handle_map_eq.] 0. secs (0.u,0.s) Chars 4530 - 4541 [assumption.] 0. secs (0.u,0.s) -Chars 4544 - 4548 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4544 - 4548 [Qed.] 0.001 secs (0.001u,0.s) Chars 4691 - 4805 [Lemma~interp_map_id~d~{E}~{X}~...] 0. secs (0.u,0.s) Chars 4808 - 4814 [Proof.] 0. secs (0.u,0.s) -Chars 4819 - 4861 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) +Chars 4819 - 4861 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) Chars 4866 - 4883 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) -Chars 4888 - 4900 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 4906 - 4913 [(intros).] 0. secs (0.u,0.s) -Chars 4918 - 4953 [(repeat~rewrite~unfold_interp_...] 0.083 secs (0.08u,0.002s) -Chars 4954 - 4975 [(unfold~_interp_state).] 0. secs (0.u,0.s) -Chars 4980 - 5001 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) +Chars 4888 - 4900 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 4906 - 4913 [intros.] 0. secs (0.u,0.s) +Chars 4918 - 4953 [repeat~rewrite~unfold_interp_s...] 0.06 secs (0.06u,0.s) +Chars 4954 - 4975 [unfold~_interp_state.] 0. secs (0.u,0.s) +Chars 4980 - 5001 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) Chars 5006 - 5007 [-] 0. secs (0.u,0.s) Chars 5008 - 5013 [eret.] 0. secs (0.u,0.s) Chars 5019 - 5020 [-] 0. secs (0.u,0.s) -Chars 5021 - 5026 [etau.] 0.002 secs (0.002u,0.s) +Chars 5021 - 5026 [etau.] 0.001 secs (0.001u,0.s) Chars 5032 - 5033 [-] 0. secs (0.u,0.s) -Chars 5034 - 5040 [ebind.] 0.014 secs (0.013u,0.s) -Chars 5048 - 5066 [(unfold~pure_state).] 0. secs (0.u,0.s) -Chars 5073 - 5084 [(destruct~e).] 0. secs (0.u,0.s) +Chars 5034 - 5040 [ebind.] 0.009 secs (0.009u,0.s) +Chars 5048 - 5066 [unfold~pure_state.] 0. secs (0.u,0.s) +Chars 5073 - 5084 [destruct~e.] 0. secs (0.u,0.s) Chars 5091 - 5092 [+] 0. secs (0.u,0.s) -Chars 5093 - 5097 [(cbn).] 0. secs (0.u,0.s) -Chars 5098 - 5103 [step.] 0.004 secs (0.004u,0.s) +Chars 5093 - 5097 [cbn.] 0. secs (0.u,0.s) +Chars 5098 - 5103 [step.] 0.003 secs (0.003u,0.s) Chars 5104 - 5129 [now~eapply~handle_map_eq.] 0. secs (0.u,0.s) Chars 5137 - 5138 [+] 0. secs (0.u,0.s) -Chars 5139 - 5143 [(cbn).] 0. secs (0.u,0.s) +Chars 5139 - 5143 [cbn.] 0. secs (0.u,0.s) Chars 5144 - 5149 [evis.] 0.001 secs (0.001u,0.s) -Chars 5150 - 5161 [(step;~eret).] 0.003 secs (0.003u,0.s) +Chars 5150 - 5161 [step;~eret.] 0.002 secs (0.002u,0.s) Chars 5169 - 5170 [+] 0. secs (0.u,0.s) -Chars 5171 - 5178 [(intros).] 0. secs (0.u,0.s) -Chars 5179 - 5191 [(destruct~u1).] 0.001 secs (0.001u,0.s) -Chars 5192 - 5204 [(destruct~u2).] 0.001 secs (0.001u,0.s) -Chars 5205 - 5209 [(cbn).] 0. secs (0.u,0.s) -Chars 5218 - 5263 [(destruct~H0~as~[H1~H2];~cbn~i...] 0. secs (0.u,0.s) +Chars 5171 - 5178 [intros.] 0. secs (0.u,0.s) +Chars 5179 - 5191 [destruct~u1.] 0. secs (0.u,0.s) +Chars 5192 - 5204 [destruct~u2.] 0. secs (0.u,0.s) +Chars 5205 - 5209 [cbn.] 0. secs (0.u,0.s) +Chars 5218 - 5263 [destruct~H0~as~[H1~H2];~cbn~in...] 0. secs (0.u,0.s) Chars 5272 - 5277 [etau.] 0.001 secs (0.001u,0.s) -Chars 5281 - 5285 [Qed.] 0.019 secs (0.019u,0.s) +Chars 5281 - 5285 [Qed.] 0.012 secs (0.012u,0.s) Chars 5290 - 5440 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) Chars 5443 - 5449 [Proof.] 0. secs (0.u,0.s) -Chars 5454 - 5488 [(unfold~map_default_eq,~interp...] 0. secs (0.u,0.s) -Chars 5493 - 5506 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 5454 - 5488 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) +Chars 5493 - 5506 [repeat~intro.] 0. secs (0.u,0.s) Chars 5511 - 5533 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5538 - 5550 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 5556 - 5563 [(intros).] 0. secs (0.u,0.s) -Chars 5568 - 5597 [(rewrite~!unfold_interp_state).] 0.043 secs (0.042u,0.s) -Chars 5603 - 5613 [step~in~H.] 0.001 secs (0.001u,0.s) +Chars 5538 - 5550 [coinduction.] 0.002 secs (0.002u,0.s) +Chars 5556 - 5563 [intros.] 0. secs (0.u,0.s) +Chars 5568 - 5597 [rewrite~!unfold_interp_state.] 0.029 secs (0.028u,0.s) +Chars 5603 - 5613 [step~in~H.] 0. secs (0.u,0.s) Chars 5619 - 5635 [revert~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5640 - 5673 [(induction~H;~intros;~subst;~b...] 0.044 secs (0.044u,0.s) +Chars 5640 - 5673 [induction~H;~intros;~subst;~bcbn.] 0.03 secs (0.03u,0.s) Chars 5679 - 5680 [-] 0. secs (0.u,0.s) Chars 5681 - 5686 [eret.] 0.001 secs (0.001u,0.s) Chars 5692 - 5693 [-] 0. secs (0.u,0.s) -Chars 5694 - 5699 [etau.] 0.003 secs (0.003u,0.s) +Chars 5694 - 5699 [etau.] 0.001 secs (0.001u,0.s) Chars 5704 - 5705 [-] 0. secs (0.u,0.s) -Chars 5706 - 5712 [ebind.] 0.026 secs (0.026u,0.s) +Chars 5706 - 5712 [ebind.] 0.017 secs (0.017u,0.s) Chars 5719 - 5720 [+] 0. secs (0.u,0.s) -Chars 5721 - 5734 [(unfold~case_).] 0. secs (0.u,0.s) -Chars 5735 - 5763 [(unfold~Case_sum1,~case_sum1).] 0. secs (0.u,0.s) -Chars 5772 - 5782 [(do~2~step).] 0.015 secs (0.015u,0.s) -Chars 5783 - 5794 [(destruct~e).] 0. secs (0.u,0.s) +Chars 5721 - 5734 [unfold~case_.] 0. secs (0.u,0.s) +Chars 5735 - 5763 [unfold~Case_sum1,~case_sum1.] 0. secs (0.u,0.s) +Chars 5772 - 5782 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 5783 - 5794 [destruct~e.] 0. secs (0.u,0.s) Chars 5803 - 5804 [*] 0. secs (0.u,0.s) -Chars 5805 - 5825 [(apply~handle_map_eq).] 0. secs (0.u,0.s) +Chars 5805 - 5825 [apply~handle_map_eq.] 0. secs (0.u,0.s) Chars 5826 - 5837 [assumption.] 0. secs (0.u,0.s) Chars 5846 - 5847 [*] 0. secs (0.u,0.s) -Chars 5848 - 5866 [(unfold~pure_state).] 0. secs (0.u,0.s) +Chars 5848 - 5866 [unfold~pure_state.] 0. secs (0.u,0.s) Chars 5867 - 5872 [step.] 0.001 secs (0.001u,0.s) -Chars 5873 - 5878 [evis.] 0.002 secs (0.002u,0.s) -Chars 5879 - 5884 [step.] 0.002 secs (0.002u,0.s) +Chars 5873 - 5878 [evis.] 0.001 secs (0.001u,0.s) +Chars 5879 - 5884 [step.] 0.001 secs (0.001u,0.s) Chars 5885 - 5890 [eret.] 0. secs (0.u,0.s) Chars 5898 - 5899 [+] 0. secs (0.u,0.s) -Chars 5900 - 5907 [(intros).] 0. secs (0.u,0.s) -Chars 5908 - 5913 [etau.] 0.01 secs (0.01u,0.s) -Chars 5921 - 5927 [(inv~H).] 0.026 secs (0.025u,0.s) -Chars 5928 - 5944 [(rewrite~snd_rel).] 0. secs (0.u,0.s) -Chars 5945 - 5963 [(eapply~CIH;~eauto).] 0.002 secs (0.002u,0.s) -Chars 5964 - 5974 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5900 - 5907 [intros.] 0. secs (0.u,0.s) +Chars 5908 - 5913 [etau.] 0.006 secs (0.006u,0.s) +Chars 5921 - 5927 [inv~H.] 0.017 secs (0.017u,0.s) +Chars 5928 - 5944 [rewrite~snd_rel.] 0. secs (0.u,0.s) +Chars 5945 - 5963 [eapply~CIH;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5964 - 5974 [apply~REL.] 0. secs (0.u,0.s) Chars 5979 - 5980 [-] 0. secs (0.u,0.s) -Chars 5981 - 6021 [(rewrite~tau_euttge,~unfold_in...] 0.025 secs (0.025u,0.s) +Chars 5981 - 6021 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) Chars 6028 - 6047 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) Chars 6053 - 6054 [-] 0. secs (0.u,0.s) -Chars 6055 - 6095 [(rewrite~tau_euttge,~unfold_in...] 0.027 secs (0.027u,0.s) +Chars 6055 - 6095 [rewrite~tau_euttge,~unfold_int...] 0.018 secs (0.018u,0.s) Chars 6102 - 6121 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6125 - 6129 [Qed.] 0.025 secs (0.024u,0.s) -Chars 6131 - 6144 [End~MapFacts.] 0.009 secs (0.009u,0.s) +Chars 6125 - 6129 [Qed.] 0.016 secs (0.015u,0.s) +Chars 6131 - 6144 [End~MapFacts.] 0.007 secs (0.007u,0.s) diff --git a/theories/Events/Nondeterminism.v.timing b/theories/Events/Nondeterminism.v.timing index 34bda657..bfe5cb1f 100644 --- a/theories/Events/Nondeterminism.v.timing +++ b/theories/Events/Nondeterminism.v.timing @@ -1,11 +1,11 @@ Chars 84 - 107 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 108 - 132 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.045 secs (0.033u,0.01s) +Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) Chars 167 - 188 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.134 secs (0.118u,0.015s) +Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.053 secs (0.046u,0.007s) Chars 374 - 428 [Variant~nondetE~:~Type~->~Prop...] 0. secs (0.u,0.s) Chars 469 - 592 [Definition~or~{E}~`{nondetE~-<...] 0. secs (0.u,0.s) -Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0.001 secs (0.001u,0.s) -Chars 982 - 1212 [Definition~remove_from~{X}~:~l...] 0.001 secs (0.001u,0.s) +Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0. secs (0.u,0.s) +Chars 982 - 1212 [Definition~remove_from~{X}~:~l...] 0.002 secs (0.002u,0.s) Chars 1347 - 1383 [Variant~no_choice~:~Set~:=~~~~...] 0. secs (0.u,0.s) -Chars 1502 - 1744 [Definition~choose~{E}~`{nondet...] 0.001 secs (0.001u,0.s) +Chars 1502 - 1744 [Definition~choose~{E}~`{nondet...] 0. secs (0.u,0.s) diff --git a/theories/Events/Reader.v.timing b/theories/Events/Reader.v.timing index bdc333e8..d67e8a40 100644 --- a/theories/Events/Reader.v.timing +++ b/theories/Events/Reader.v.timing @@ -1,8 +1,8 @@ Chars 65 - 88 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 89 - 113 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.046 secs (0.035u,0.01s) +Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) Chars 148 - 169 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.138 secs (0.121u,0.016s) +Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.052 secs (0.045u,0.007s) Chars 358 - 373 [Section~Reader.] 0. secs (0.u,0.s) Chars 375 - 397 [Variable~(Env~:~Type).] 0. secs (0.u,0.s) Chars 399 - 453 [Variant~readerE~:~Type~->~Prop...] 0. secs (0.u,0.s) diff --git a/theories/Events/State.v.timing b/theories/Events/State.v.timing index 41056d52..0ddcb43e 100644 --- a/theories/Events/State.v.timing +++ b/theories/Events/State.v.timing @@ -1,17 +1,17 @@ Chars 81 - 154 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.047 secs (0.037u,0.01s) +Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.006s) Chars 358 - 392 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 394 - 423 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.002 secs (0.001u,0.s) +Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.001 secs (0.001u,0.s) Chars 758 - 804 [Arguments~interp_state~{E~M~S~...] 0. secs (0.u,0.s) Chars 806 - 820 [Section~State.] 0. secs (0.u,0.s) Chars 824 - 844 [Variable~(S~:~Type).] 0. secs (0.u,0.s) Chars 848 - 927 [Variant~stateE~:~Type~->~Type~...] 0. secs (0.u,0.s) Chars 931 - 990 [Definition~get~{E}~`{stateE~-<...] 0. secs (0.u,0.s) Chars 993 - 1060 [Definition~put~{E}~`{stateE~-<...] 0. secs (0.u,0.s) -Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0.001 secs (0.u,0.s) +Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0. secs (0.u,0.s) Chars 1353 - 1455 [Definition~pure_state~{S}~{E}~...] 0. secs (0.u,0.s) -Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.001u,0.s) +Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.u,0.s) Chars 1581 - 1591 [End~State.] 0. secs (0.u,0.s) Chars 1593 - 1615 [Arguments~get~{S~E~_}.] 0. secs (0.u,0.s) Chars 1616 - 1638 [Arguments~put~{S~E~_}.] 0. secs (0.u,0.s) @@ -19,5 +19,5 @@ Chars 1639 - 1673 [Arguments~run_state~{S~E}~[_]~...] 0. secs (0.u,0.s) Chars 1715 - 1733 [Section~eff_hom_e.] 0. secs (0.u,0.s) Chars 1736 - 1765 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 2030 - 2116 [CoInductive~eff_hom_e~:~Type~:...] 0. secs (0.u,0.s) -Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.004 secs (0.003u,0.001s) +Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.002 secs (0.002u,0.s) Chars 2409 - 2423 [End~eff_hom_e.] 0. secs (0.u,0.s) diff --git a/theories/Events/StateFacts.v.timing b/theories/Events/StateFacts.v.timing index a66d933e..013360ca 100644 --- a/theories/Events/StateFacts.v.timing +++ b/theories/Events/StateFacts.v.timing @@ -1,248 +1,248 @@ -Chars 57 - 93 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 96 - 149 [From~Stdlib~Require~Import~Pro...] 0.002 secs (0.001u,0.001s) -Chars 152 - 480 [From~ITree~Require~Import~Basi...] 0.09 secs (0.073u,0.015s) +Chars 57 - 93 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) +Chars 96 - 149 [From~Stdlib~Require~Import~Pro...] 0.002 secs (0.u,0.001s) +Chars 152 - 480 [From~ITree~Require~Import~Basi...] 0.057 secs (0.049u,0.008s) Chars 482 - 504 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 506 - 535 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 537 - 551 [Import~Monads.] 0. secs (0.u,0.s) -Chars 568 - 870 [Definition~_interp_state~{E}~{...] 0.002 secs (0.002u,0.s) +Chars 568 - 870 [Definition~_interp_state~{E}~{...] 0.001 secs (0.001u,0.s) Chars 872 - 1052 [Lemma~unfold_interp_state~{E}~...] 0. secs (0.u,0.s) Chars 1053 - 1059 [Proof.] 0. secs (0.u,0.s) -Chars 1062 - 1157 [(unfold~interp_state,~interp,~...] 0. secs (0.u,0.s) -Chars 1160 - 1185 [(rewrite~unfold_iter;~cbn).] 0.009 secs (0.009u,0.s) -Chars 1188 - 1210 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) +Chars 1062 - 1157 [unfold~interp_state,~interp,~B...] 0. secs (0.u,0.s) +Chars 1160 - 1185 [rewrite~unfold_iter;~cbn.] 0.006 secs (0.006u,0.s) +Chars 1188 - 1210 [destruct~observe;~cbn.] 0.001 secs (0.001u,0.s) Chars 1213 - 1214 [-] 0. secs (0.u,0.s) -Chars 1215 - 1236 [(rewrite~2!bind_ret_l).] 0.057 secs (0.055u,0.001s) +Chars 1215 - 1236 [rewrite~2!bind_ret_l.] 0.039 secs (0.039u,0.s) Chars 1237 - 1249 [reflexivity.] 0. secs (0.u,0.s) Chars 1252 - 1253 [-] 0. secs (0.u,0.s) -Chars 1254 - 1275 [(rewrite~2!bind_ret_l).] 0.026 secs (0.022u,0.004s) +Chars 1254 - 1275 [rewrite~2!bind_ret_l.] 0.016 secs (0.014u,0.001s) Chars 1280 - 1292 [reflexivity.] 0. secs (0.u,0.s) Chars 1295 - 1296 [-] 0. secs (0.u,0.s) -Chars 1297 - 1330 [(rewrite~bind_map,~bind_bind;~...] 0.028 secs (0.021u,0.006s) -Chars 1331 - 1357 [setoid_rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 1362 - 1391 [(apply~eqit_bind;~reflexivity).] 0.001 secs (0.001u,0.s) -Chars 1392 - 1396 [Qed.] 0.02 secs (0.019u,0.s) -Chars 1398 - 1575 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.001u,0.s) +Chars 1297 - 1330 [rewrite~bind_map,~bind_bind;~cbn.] 0.017 secs (0.014u,0.002s) +Chars 1331 - 1357 [setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) +Chars 1362 - 1391 [apply~eqit_bind;~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 1392 - 1396 [Qed.] 0.012 secs (0.012u,0.s) +Chars 1398 - 1575 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) Chars 1576 - 1582 [Proof.] 0. secs (0.u,0.s) -Chars 1585 - 1600 [(revert_until~R).] 0. secs (0.u,0.s) -Chars 1603 - 1615 [coinduction.] 0.003 secs (0.002u,0.s) -Chars 1616 - 1640 [(intros~h~x~y~H0~x2~_~[]).] 0. secs (0.u,0.s) -Chars 1643 - 1672 [(rewrite~!unfold_interp_state).] 0.04 secs (0.039u,0.001s) +Chars 1585 - 1600 [revert_until~R.] 0. secs (0.u,0.s) +Chars 1603 - 1615 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 1616 - 1640 [intros~h~x~y~H0~x2~_~[].] 0. secs (0.u,0.s) +Chars 1643 - 1672 [rewrite~!unfold_interp_state.] 0.026 secs (0.025u,0.s) Chars 1675 - 1686 [step~in~H0.] 0. secs (0.u,0.s) -Chars 1690 - 1732 [(destruct~H0;~subst;~try~discr...] 0.002 secs (0.002u,0.s) +Chars 1690 - 1732 [destruct~H0;~subst;~try~discri...] 0.001 secs (0.001u,0.s) Chars 1735 - 1736 [-] 0. secs (0.u,0.s) -Chars 1737 - 1749 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 1737 - 1749 [reflexivity.] 0. secs (0.u,0.s) Chars 1753 - 1754 [-] 0. secs (0.u,0.s) -Chars 1755 - 1775 [(taus;~now~apply~CIH).] 0. secs (0.u,0.s) +Chars 1755 - 1775 [taus;~now~apply~CIH.] 0. secs (0.u,0.s) Chars 1780 - 1781 [-] 0. secs (0.u,0.s) Chars 1782 - 1789 [to_mon.] 0. secs (0.u,0.s) -Chars 1790 - 1811 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) +Chars 1790 - 1811 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) Chars 1818 - 1819 [+] 0. secs (0.u,0.s) -Chars 1820 - 1842 [(taus;~auto~with~itree).] 0. secs (0.u,0.s) -Chars 1844 - 1848 [Qed.] 0.012 secs (0.011u,0.s) -Chars 1850 - 2032 [Lemma~interp_state_ret~{E~F~:~...] 0.001 secs (0.001u,0.s) +Chars 1820 - 1842 [taus;~auto~with~itree.] 0. secs (0.u,0.s) +Chars 1844 - 1848 [Qed.] 0.008 secs (0.008u,0.s) +Chars 1850 - 2032 [Lemma~interp_state_ret~{E~F~:~...] 0. secs (0.u,0.s) Chars 2033 - 2039 [Proof.] 0. secs (0.u,0.s) -Chars 2042 - 2060 [(rewrite~itree_eta).] 0.002 secs (0.002u,0.s) +Chars 2042 - 2060 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) Chars 2061 - 2073 [reflexivity.] 0. secs (0.u,0.s) -Chars 2074 - 2078 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2080 - 2323 [Lemma~interp_state_vis~{E~F~:~...] 0.001 secs (0.001u,0.s) +Chars 2074 - 2078 [Qed.] 0. secs (0.u,0.s) +Chars 2080 - 2323 [Lemma~interp_state_vis~{E~F~:~...] 0. secs (0.u,0.s) Chars 2324 - 2330 [Proof.] 0. secs (0.u,0.s) -Chars 2333 - 2374 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) +Chars 2333 - 2374 [rewrite~unfold_interp_state;~r...] 0.001 secs (0.001u,0.s) Chars 2375 - 2379 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2381 - 2563 [Lemma~interp_state_tau~{E~F~:~...] 0.001 secs (0.001u,0.s) +Chars 2381 - 2563 [Lemma~interp_state_tau~{E~F~:~...] 0. secs (0.u,0.s) Chars 2564 - 2570 [Proof.] 0. secs (0.u,0.s) -Chars 2573 - 2614 [(rewrite~unfold_interp_state;~...] 0.002 secs (0.002u,0.s) -Chars 2615 - 2619 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2573 - 2614 [rewrite~unfold_interp_state;~r...] 0.001 secs (0.001u,0.s) +Chars 2615 - 2619 [Qed.] 0. secs (0.u,0.s) Chars 2621 - 2828 [Lemma~interp_state_trigger_eqi...] 0. secs (0.u,0.s) Chars 2829 - 2835 [Proof.] 0. secs (0.u,0.s) -Chars 2838 - 2859 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 2860 - 2885 [(rewrite~interp_state_vis).] 0.002 secs (0.002u,0.s) -Chars 2888 - 2922 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) -Chars 2925 - 2935 [(intros~[]).] 0. secs (0.u,0.s) -Chars 2936 - 2961 [(rewrite~interp_state_ret).] 0.003 secs (0.003u,0.s) +Chars 2838 - 2859 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 2860 - 2885 [rewrite~interp_state_vis.] 0.001 secs (0.001u,0.s) +Chars 2888 - 2922 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 2925 - 2935 [intros~[].] 0. secs (0.u,0.s) +Chars 2936 - 2961 [rewrite~interp_state_ret.] 0.002 secs (0.002u,0.s) Chars 2962 - 2974 [reflexivity.] 0. secs (0.u,0.s) -Chars 2975 - 2979 [Qed.] 0.003 secs (0.003u,0.s) +Chars 2975 - 2979 [Qed.] 0.001 secs (0.001u,0.s) Chars 2981 - 3154 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) Chars 3155 - 3161 [Proof.] 0. secs (0.u,0.s) -Chars 3164 - 3185 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 3186 - 3211 [(rewrite~interp_state_vis).] 0.001 secs (0.001u,0.s) -Chars 3214 - 3301 [(match~goal~with~~|~|-~?y~≈~?x...] 0.002 secs (0.001u,0.s) -Chars 3304 - 3338 [(eapply~eqit_bind;~try~reflexi...] 0.001 secs (0.001u,0.s) -Chars 3341 - 3386 [(intros~[];~rewrite~interp_sta...] 0.003 secs (0.003u,0.s) +Chars 3164 - 3185 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 3186 - 3211 [rewrite~interp_state_vis.] 0. secs (0.u,0.s) +Chars 3214 - 3301 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) +Chars 3304 - 3338 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) +Chars 3341 - 3386 [intros~[];~rewrite~interp_stat...] 0.002 secs (0.002u,0.s) Chars 3389 - 3401 [reflexivity.] 0. secs (0.u,0.s) -Chars 3402 - 3406 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3408 - 3695 [Lemma~interp_state_bind~{E~F~:...] 0.001 secs (0.001u,0.s) +Chars 3402 - 3406 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3408 - 3695 [Lemma~interp_state_bind~{E~F~:...] 0. secs (0.u,0.s) Chars 3696 - 3702 [Proof.] 0. secs (0.u,0.s) Chars 3705 - 3718 [revert~t~k~s.] 0. secs (0.u,0.s) -Chars 3721 - 3733 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3737 - 3750 [(intros~t~k~s).] 0. secs (0.u,0.s) -Chars 3753 - 3773 [(rewrite~unfold_bind).] 0.019 secs (0.018u,0.s) -Chars 3776 - 3810 [(rewrite~(unfold_interp_state~...] 0.024 secs (0.023u,0.s) -Chars 3813 - 3834 [(destruct~(observe~t)).] 0. secs (0.u,0.s) +Chars 3721 - 3733 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 3737 - 3750 [intros~t~k~s.] 0. secs (0.u,0.s) +Chars 3753 - 3773 [rewrite~unfold_bind.] 0.012 secs (0.012u,0.s) +Chars 3776 - 3810 [rewrite~(unfold_interp_state~f...] 0.017 secs (0.017u,0.s) +Chars 3813 - 3834 [destruct~(observe~t).] 0. secs (0.u,0.s) Chars 3837 - 3838 [-] 0. secs (0.u,0.s) -Chars 3839 - 3844 [bcbn.] 0.002 secs (0.002u,0.s) -Chars 3845 - 3865 [(rewrite~!bind_ret_l).] 0.021 secs (0.02u,0.s) -Chars 3871 - 3889 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 3839 - 3844 [bcbn.] 0.001 secs (0.001u,0.s) +Chars 3845 - 3865 [rewrite~!bind_ret_l.] 0.014 secs (0.014u,0.s) +Chars 3871 - 3889 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 3892 - 3893 [-] 0. secs (0.u,0.s) Chars 3894 - 3899 [bcbn.] 0.001 secs (0.001u,0.s) Chars 3900 - 3905 [taus.] 0. secs (0.u,0.s) -Chars 3906 - 3916 [(apply~CIH).] 0.001 secs (0.001u,0.s) +Chars 3906 - 3916 [apply~CIH.] 0.001 secs (0.001u,0.s) Chars 3919 - 3920 [-] 0. secs (0.u,0.s) Chars 3921 - 3926 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3927 - 3963 [(rewrite~interp_state_vis,~bin...] 0.037 secs (0.037u,0.s) -Chars 3968 - 3989 [(ebind;~intros;~subst).] 0.009 secs (0.009u,0.s) -Chars 3997 - 4014 [(rewrite~bind_tau).] 0.023 secs (0.022u,0.s) +Chars 3927 - 3963 [rewrite~interp_state_vis,~bind...] 0.026 secs (0.025u,0.s) +Chars 3968 - 3989 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) +Chars 3997 - 4014 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) Chars 4021 - 4026 [taus.] 0. secs (0.u,0.s) Chars 4027 - 4041 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4043 - 4047 [Qed.] 0.015 secs (0.015u,0.s) +Chars 4043 - 4047 [Qed.] 0.009 secs (0.009u,0.s) Chars 4049 - 4262 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) Chars 4263 - 4269 [Proof.] 0. secs (0.u,0.s) -Chars 4272 - 4285 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4272 - 4285 [repeat~intro.] 0. secs (0.u,0.s) Chars 4286 - 4292 [subst.] 0. secs (0.u,0.s) -Chars 4293 - 4309 [(revert_until~RR).] 0. secs (0.u,0.s) +Chars 4293 - 4309 [revert_until~RR.] 0. secs (0.u,0.s) Chars 4312 - 4324 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4325 - 4332 [(intros).] 0. secs (0.u,0.s) -Chars 4336 - 4365 [(rewrite~!unfold_interp_state).] 0.036 secs (0.035u,0.s) +Chars 4325 - 4332 [intros.] 0. secs (0.u,0.s) +Chars 4336 - 4365 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) Chars 4366 - 4376 [step~in~H.] 0. secs (0.u,0.s) -Chars 4380 - 4413 [(induction~H;~intros;~subst;~b...] 0.039 secs (0.038u,0.s) +Chars 4380 - 4413 [induction~H;~intros;~subst;~bcbn.] 0.027 secs (0.027u,0.s) Chars 4417 - 4418 [-] 0. secs (0.u,0.s) -Chars 4419 - 4424 [eret.] 0.003 secs (0.003u,0.s) +Chars 4419 - 4424 [eret.] 0. secs (0.u,0.s) Chars 4428 - 4429 [-] 0. secs (0.u,0.s) -Chars 4430 - 4435 [etau.] 0.002 secs (0.002u,0.s) +Chars 4430 - 4435 [etau.] 0.001 secs (0.001u,0.s) Chars 4439 - 4440 [-] 0. secs (0.u,0.s) -Chars 4441 - 4462 [(ebind;~intros;~subst).] 0.025 secs (0.024u,0.s) +Chars 4441 - 4462 [ebind;~intros;~subst.] 0.017 secs (0.016u,0.s) Chars 4463 - 4468 [taus.] 0. secs (0.u,0.s) -Chars 4469 - 4479 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4480 - 4490 [(apply~REL).] 0. secs (0.u,0.s) +Chars 4469 - 4479 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4480 - 4490 [apply~REL.] 0. secs (0.u,0.s) Chars 4494 - 4495 [-] 0. secs (0.u,0.s) -Chars 4496 - 4543 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) +Chars 4496 - 4543 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) Chars 4546 - 4547 [-] 0. secs (0.u,0.s) -Chars 4548 - 4595 [(rewrite~tau_euttge,~unfold_in...] 0.023 secs (0.023u,0.s) -Chars 4596 - 4600 [Qed.] 0.013 secs (0.013u,0.s) -Chars 4602 - 4801 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) +Chars 4548 - 4595 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.015u,0.s) +Chars 4596 - 4600 [Qed.] 0.009 secs (0.009u,0.s) +Chars 4602 - 4801 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 4802 - 4808 [Proof.] 0. secs (0.u,0.s) -Chars 4811 - 4824 [(repeat~intro).] 0. secs (0.u,0.s) +Chars 4811 - 4824 [repeat~intro.] 0. secs (0.u,0.s) Chars 4825 - 4831 [subst.] 0. secs (0.u,0.s) -Chars 4832 - 4847 [(revert_until~R).] 0. secs (0.u,0.s) -Chars 4850 - 4862 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4863 - 4870 [(intros).] 0. secs (0.u,0.s) -Chars 4875 - 4904 [(rewrite~!unfold_interp_state).] 0.035 secs (0.034u,0.s) +Chars 4832 - 4847 [revert_until~R.] 0. secs (0.u,0.s) +Chars 4850 - 4862 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4863 - 4870 [intros.] 0. secs (0.u,0.s) +Chars 4875 - 4904 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) Chars 4905 - 4915 [step~in~H.] 0. secs (0.u,0.s) -Chars 4919 - 4970 [(induction~H;~intros;~subst;~b...] 0.047 secs (0.047u,0.s) +Chars 4919 - 4970 [induction~H;~intros;~subst;~bc...] 0.032 secs (0.032u,0.s) Chars 4974 - 4975 [-] 0. secs (0.u,0.s) Chars 4976 - 4981 [eret.] 0.001 secs (0.001u,0.s) Chars 4985 - 4986 [-] 0. secs (0.u,0.s) -Chars 4987 - 4993 [ebind.] 0.009 secs (0.009u,0.s) -Chars 4994 - 5008 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 4987 - 4993 [ebind.] 0.006 secs (0.006u,0.s) +Chars 4994 - 5008 [intros;~subst.] 0. secs (0.u,0.s) Chars 5013 - 5018 [etau.] 0.001 secs (0.001u,0.s) Chars 5021 - 5022 [-] 0. secs (0.u,0.s) -Chars 5023 - 5070 [(rewrite~tau_euttge,~unfold_in...] 0.021 secs (0.021u,0.s) +Chars 5023 - 5070 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) Chars 5073 - 5074 [-] 0. secs (0.u,0.s) -Chars 5075 - 5122 [(rewrite~tau_euttge,~unfold_in...] 0.024 secs (0.024u,0.s) -Chars 5123 - 5127 [Qed.] 0.014 secs (0.014u,0.s) -Chars 5130 - 5766 [Lemma~eutt_interp_state_aloop~...] 0.002 secs (0.002u,0.s) +Chars 5075 - 5122 [rewrite~tau_euttge,~unfold_int...] 0.015 secs (0.015u,0.s) +Chars 5123 - 5127 [Qed.] 0.009 secs (0.009u,0.s) +Chars 5130 - 5766 [Lemma~eutt_interp_state_aloop~...] 0.001 secs (0.001u,0.s) Chars 5767 - 5773 [Proof.] 0. secs (0.u,0.s) Chars 5776 - 5785 [intro~Ht.] 0. secs (0.u,0.s) -Chars 5788 - 5800 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5801 - 5808 [(intros).] 0. secs (0.u,0.s) -Chars 5811 - 5833 [(rewrite~2!unfold_iter).] 0.037 secs (0.036u,0.s) -Chars 5836 - 5864 [(rewrite~2!interp_state_bind).] 0.037 secs (0.037u,0.s) -Chars 5867 - 5888 [(ebind;~intros;~subst).] 0.004 secs (0.004u,0.s) +Chars 5788 - 5800 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 5801 - 5808 [intros.] 0. secs (0.u,0.s) +Chars 5811 - 5833 [rewrite~2!unfold_iter.] 0.024 secs (0.024u,0.s) +Chars 5836 - 5864 [rewrite~2!interp_state_bind.] 0.027 secs (0.027u,0.s) +Chars 5867 - 5888 [ebind;~intros;~subst.] 0.003 secs (0.003u,0.s) Chars 5892 - 5893 [-] 0. secs (0.u,0.s) -Chars 5894 - 5904 [(do~2~step).] 0.017 secs (0.016u,0.s) -Chars 5905 - 5921 [(eapply~Ht;~auto).] 0. secs (0.u,0.s) +Chars 5894 - 5904 [do~2~step.] 0.012 secs (0.011u,0.s) +Chars 5905 - 5921 [eapply~Ht;~auto.] 0. secs (0.u,0.s) Chars 5924 - 5925 [-] 0. secs (0.u,0.s) -Chars 5926 - 5933 [(inv~H1).] 0.012 secs (0.012u,0.s) -Chars 5934 - 5946 [(inv~snd_rel).] 0.024 secs (0.023u,0.s) +Chars 5926 - 5933 [inv~H1.] 0.009 secs (0.009u,0.s) +Chars 5934 - 5946 [inv~snd_rel.] 0.017 secs (0.017u,0.s) Chars 5951 - 5952 [+] 0. secs (0.u,0.s) -Chars 5953 - 5980 [(rewrite~2!interp_state_tau).] 0.041 secs (0.04u,0.s) -Chars 5981 - 5986 [etau.] 0.001 secs (0.001u,0.s) +Chars 5953 - 5980 [rewrite~2!interp_state_tau.] 0.033 secs (0.033u,0.s) +Chars 5981 - 5986 [etau.] 0.001 secs (0.u,0.s) Chars 5992 - 5993 [+] 0. secs (0.u,0.s) -Chars 5994 - 6021 [(rewrite~2!interp_state_ret).] 0.041 secs (0.04u,0.s) -Chars 6022 - 6027 [eret.] 0.001 secs (0.001u,0.s) -Chars 6029 - 6033 [Qed.] 0.016 secs (0.015u,0.s) -Chars 6035 - 6697 [Lemma~eutt_interp_state_iter~{...] 0.003 secs (0.003u,0.s) +Chars 5994 - 6021 [rewrite~2!interp_state_ret.] 0.029 secs (0.027u,0.s) +Chars 6022 - 6027 [eret.] 0. secs (0.u,0.s) +Chars 6029 - 6033 [Qed.] 0.012 secs (0.012u,0.s) +Chars 6035 - 6697 [Lemma~eutt_interp_state_iter~{...] 0.002 secs (0.002u,0.s) Chars 6698 - 6704 [Proof.] 0. secs (0.u,0.s) -Chars 6707 - 6737 [(apply~eutt_interp_state_aloop).] 0. secs (0.u,0.s) +Chars 6707 - 6737 [apply~eutt_interp_state_aloop.] 0. secs (0.u,0.s) Chars 6738 - 6742 [Qed.] 0.001 secs (0.001u,0.s) Chars 6744 - 6955 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) Chars 6956 - 6962 [Proof.] 0. secs (0.u,0.s) -Chars 6965 - 7043 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 7046 - 7070 [(coinduction;~intros~i~s).] 0.003 secs (0.003u,0.s) -Chars 7073 - 7101 [(rewrite~2!unfold_iter;~bcbn).] 0.042 secs (0.042u,0.s) -Chars 7104 - 7123 [(rewrite~!bind_bind).] 0.026 secs (0.026u,0.s) -Chars 7126 - 7152 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.042u,0.s) -Chars 7155 - 7181 [(rewrite~interp_state_bind).] 0.019 secs (0.019u,0.s) -Chars 7184 - 7190 [ebind.] 0.009 secs (0.009u,0.s) -Chars 7193 - 7219 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) +Chars 6965 - 7043 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 7046 - 7070 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) +Chars 7073 - 7101 [rewrite~2!unfold_iter;~bcbn.] 0.033 secs (0.033u,0.s) +Chars 7104 - 7123 [rewrite~!bind_bind.] 0.018 secs (0.018u,0.s) +Chars 7126 - 7152 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 7155 - 7181 [rewrite~interp_state_bind.] 0.013 secs (0.013u,0.s) +Chars 7184 - 7190 [ebind.] 0.006 secs (0.006u,0.s) +Chars 7193 - 7219 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) Chars 7222 - 7223 [-] 0. secs (0.u,0.s) -Chars 7224 - 7229 [etau.] 0.002 secs (0.002u,0.s) +Chars 7224 - 7229 [etau.] 0.001 secs (0.001u,0.s) Chars 7233 - 7234 [-] 0. secs (0.u,0.s) Chars 7235 - 7240 [eret.] 0. secs (0.u,0.s) -Chars 7242 - 7246 [Qed.] 0.016 secs (0.016u,0.s) -Chars 7248 - 7775 [Lemma~eutt_interp_state_loop~{...] 0.003 secs (0.003u,0.s) +Chars 7242 - 7246 [Qed.] 0.011 secs (0.011u,0.s) +Chars 7248 - 7775 [Lemma~eutt_interp_state_loop~{...] 0.002 secs (0.002u,0.s) Chars 7776 - 7782 [Proof.] 0. secs (0.u,0.s) -Chars 7785 - 7792 [(intros).] 0. secs (0.u,0.s) -Chars 7795 - 7962 [(unfold~loop,~bimap,~Bimap_Cop...] 0. secs (0.u,0.s) -Chars 7965 - 7986 [(rewrite~2!bind_ret_l).] 0.012 secs (0.012u,0.s) -Chars 7989 - 8041 [(eapply~(eutt_interp_state_ite...] 0.025 secs (0.025u,0.s) -Chars 8044 - 8072 [(rewrite~2!interp_state_bind).] 0.013 secs (0.013u,0.s) +Chars 7785 - 7792 [intros.] 0. secs (0.u,0.s) +Chars 7795 - 7962 [unfold~loop,~bimap,~Bimap_Copr...] 0. secs (0.u,0.s) +Chars 7965 - 7986 [rewrite~2!bind_ret_l.] 0.008 secs (0.008u,0.s) +Chars 7989 - 8041 [eapply~(eutt_interp_state_iter...] 0.018 secs (0.018u,0.s) +Chars 8044 - 8072 [rewrite~2!interp_state_bind.] 0.007 secs (0.007u,0.s) Chars 8075 - 8081 [subst.] 0. secs (0.u,0.s) -Chars 8084 - 8113 [(eapply~eutt_bind_eutt;~eauto).] 0.015 secs (0.015u,0.s) -Chars 8116 - 8123 [(intros).] 0. secs (0.u,0.s) -Chars 8126 - 8162 [(cbn~in~H2;~destruct~H2~as~[H2...] 0. secs (0.u,0.s) -Chars 8165 - 8199 [(destruct~(snd~u1);~rewrite~<-...] 0.002 secs (0.002u,0.s) +Chars 8084 - 8113 [eapply~eutt_bind_eutt;~eauto.] 0.01 secs (0.01u,0.s) +Chars 8116 - 8123 [intros.] 0. secs (0.u,0.s) +Chars 8126 - 8162 [cbn~in~H2;~destruct~H2~as~[H21...] 0. secs (0.u,0.s) +Chars 8165 - 8199 [destruct~(snd~u1);~rewrite~<-~...] 0.001 secs (0.001u,0.s) Chars 8202 - 8203 [-] 0. secs (0.u,0.s) -Chars 8204 - 8243 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) -Chars 8248 - 8253 [step.] 0.002 secs (0.002u,0.s) +Chars 8204 - 8243 [rewrite~bind_ret_l,~2!interp_s...] 0.007 secs (0.007u,0.s) +Chars 8248 - 8253 [step.] 0.001 secs (0.001u,0.s) Chars 8259 - 8264 [eret.] 0.001 secs (0.001u,0.s) Chars 8268 - 8269 [-] 0. secs (0.u,0.s) -Chars 8270 - 8309 [(rewrite~bind_ret_l,~2!interp_...] 0.01 secs (0.01u,0.s) -Chars 8310 - 8315 [step.] 0.002 secs (0.002u,0.s) +Chars 8270 - 8309 [rewrite~bind_ret_l,~2!interp_s...] 0.007 secs (0.007u,0.s) +Chars 8310 - 8315 [step.] 0.001 secs (0.001u,0.s) Chars 8316 - 8321 [eret.] 0.001 secs (0.001u,0.s) -Chars 8323 - 8327 [Qed.] 0.012 secs (0.012u,0.s) +Chars 8323 - 8327 [Qed.] 0.008 secs (0.008u,0.s) Chars 8376 - 8519 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) Chars 8521 - 8839 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) Chars 8840 - 8846 [Proof.] 0. secs (0.u,0.s) -Chars 8849 - 8927 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 8930 - 8954 [(coinduction;~intros~i~s).] 0.002 secs (0.002u,0.s) -Chars 8957 - 8985 [(rewrite~2!unfold_iter;~bcbn).] 0.047 secs (0.046u,0.s) -Chars 8988 - 9007 [(rewrite~!bind_bind).] 0.026 secs (0.026u,0.s) -Chars 9010 - 9036 [setoid_rewrite~bind_ret_l.] 0.043 secs (0.043u,0.s) -Chars 9039 - 9065 [(rewrite~interp_state_bind).] 0.02 secs (0.02u,0.s) -Chars 9068 - 9074 [ebind.] 0.009 secs (0.009u,0.s) +Chars 8849 - 8927 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 8930 - 8954 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) +Chars 8957 - 8985 [rewrite~2!unfold_iter;~bcbn.] 0.031 secs (0.031u,0.s) +Chars 8988 - 9007 [rewrite~!bind_bind.] 0.018 secs (0.018u,0.s) +Chars 9010 - 9036 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) +Chars 9039 - 9065 [rewrite~interp_state_bind.] 0.014 secs (0.014u,0.s) +Chars 9068 - 9074 [ebind.] 0.006 secs (0.006u,0.s) Chars 9078 - 9079 [-] 0. secs (0.u,0.s) -Chars 9080 - 9090 [(do~2~step).] 0.017 secs (0.016u,0.s) -Chars 9091 - 9102 [(apply~EQ_t).] 0. secs (0.u,0.s) +Chars 9080 - 9090 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 9091 - 9102 [apply~EQ_t.] 0. secs (0.u,0.s) Chars 9105 - 9106 [-] 0. secs (0.u,0.s) -Chars 9107 - 9133 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) +Chars 9107 - 9133 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) Chars 9138 - 9139 [+] 0. secs (0.u,0.s) -Chars 9140 - 9145 [etau.] 0.002 secs (0.002u,0.s) +Chars 9140 - 9145 [etau.] 0.001 secs (0.001u,0.s) Chars 9151 - 9152 [+] 0. secs (0.u,0.s) Chars 9153 - 9158 [eret.] 0. secs (0.u,0.s) -Chars 9160 - 9164 [Qed.] 0.017 secs (0.017u,0.s) +Chars 9160 - 9164 [Qed.] 0.011 secs (0.011u,0.s) Chars 9166 - 9410 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) Chars 9411 - 9417 [Proof.] 0. secs (0.u,0.s) -Chars 9420 - 9445 [(eapply~interp_state_iter).] 0. secs (0.u,0.s) -Chars 9448 - 9457 [(intros~i).] 0. secs (0.u,0.s) -Chars 9460 - 9464 [(red).] 0. secs (0.u,0.s) +Chars 9420 - 9445 [eapply~interp_state_iter.] 0. secs (0.u,0.s) +Chars 9448 - 9457 [intros~i.] 0. secs (0.u,0.s) +Chars 9460 - 9464 [red.] 0. secs (0.u,0.s) Chars 9465 - 9477 [reflexivity.] 0. secs (0.u,0.s) -Chars 9478 - 9482 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9478 - 9482 [Qed.] 0. secs (0.u,0.s) Chars 9484 - 9761 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) Chars 9762 - 9768 [Proof.] 0. secs (0.u,0.s) -Chars 9771 - 9849 [(unfold~Basics.iter,~MonadIter...] 0. secs (0.u,0.s) -Chars 9852 - 9876 [(coinduction;~intros~i~s).] 0.003 secs (0.003u,0.s) -Chars 9879 - 9907 [(rewrite~2!unfold_iter;~bcbn).] 0.04 secs (0.039u,0.s) -Chars 9910 - 9929 [(rewrite~!bind_bind).] 0.025 secs (0.024u,0.s) -Chars 9932 - 9958 [setoid_rewrite~bind_ret_l.] 0.041 secs (0.04u,0.s) -Chars 9961 - 9987 [(rewrite~interp_state_bind).] 0.02 secs (0.019u,0.s) -Chars 9990 - 9996 [ebind.] 0.009 secs (0.009u,0.s) +Chars 9771 - 9849 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) +Chars 9852 - 9876 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) +Chars 9879 - 9907 [rewrite~2!unfold_iter;~bcbn.] 0.028 secs (0.028u,0.s) +Chars 9910 - 9929 [rewrite~!bind_bind.] 0.016 secs (0.016u,0.s) +Chars 9932 - 9958 [setoid_rewrite~bind_ret_l.] 0.03 secs (0.03u,0.s) +Chars 9961 - 9987 [rewrite~interp_state_bind.] 0.013 secs (0.013u,0.s) +Chars 9990 - 9996 [ebind.] 0.006 secs (0.006u,0.s) Chars 10000 - 10001 [-] 0. secs (0.u,0.s) -Chars 10002 - 10012 [(do~2~step).] 0.016 secs (0.016u,0.s) -Chars 10013 - 10023 [(apply~Heq).] 0. secs (0.u,0.s) +Chars 10002 - 10012 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 10013 - 10023 [apply~Heq.] 0. secs (0.u,0.s) Chars 10026 - 10027 [-] 0. secs (0.u,0.s) -Chars 10028 - 10054 [(intros~[s'~[]]~_~[];~bcbn).] 0.006 secs (0.006u,0.s) +Chars 10028 - 10054 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) Chars 10059 - 10060 [+] 0. secs (0.u,0.s) -Chars 10061 - 10066 [etau.] 0.002 secs (0.002u,0.s) +Chars 10061 - 10066 [etau.] 0.001 secs (0.001u,0.s) Chars 10072 - 10073 [+] 0. secs (0.u,0.s) Chars 10074 - 10079 [eret.] 0. secs (0.u,0.s) -Chars 10081 - 10085 [Qed.] 0.017 secs (0.016u,0.s) +Chars 10081 - 10085 [Qed.] 0.012 secs (0.011u,0.s) diff --git a/theories/Events/Writer.v.timing b/theories/Events/Writer.v.timing index 83a44685..f91903a1 100644 --- a/theories/Events/Writer.v.timing +++ b/theories/Events/Writer.v.timing @@ -1,17 +1,17 @@ Chars 57 - 80 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 81 - 105 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.041 secs (0.032u,0.009s) +Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) Chars 145 - 166 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0.001 secs (0.u,0.s) -Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.117 secs (0.108u,0.008s) +Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) +Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.085 secs (0.079u,0.005s) Chars 501 - 529 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) Chars 589 - 663 [Variant~writerE~(W~:~Type)~:~T...] 0. secs (0.u,0.s) Chars 687 - 778 [Definition~tell~{W}~{E}~`{writ...] 0. secs (0.u,0.s) Chars 919 - 1083 [Definition~handle_writer_list~...] 0. secs (0.u,0.s) Chars 1085 - 1236 [Definition~run_writer_list_sta...] 0.001 secs (0.001u,0.s) Chars 1238 - 1280 [Arguments~run_writer_list_stat...] 0. secs (0.u,0.s) -Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0.001 secs (0.001u,0.s) +Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0. secs (0.u,0.s) Chars 1604 - 1640 [Arguments~run_writer_list~{W~E...] 0. secs (0.u,0.s) -Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0.001 secs (0.u,0.s) -Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.001u,0.s) +Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0. secs (0.u,0.s) +Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.u,0.s) Chars 2160 - 2200 [Arguments~run_writer~{W~E}~Mon...] 0. secs (0.u,0.s) diff --git a/theories/ITree.v.timing b/theories/ITree.v.timing index 9613afa1..045eec61 100644 --- a/theories/ITree.v.timing +++ b/theories/ITree.v.timing @@ -1 +1 @@ -Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.071 secs (0.053u,0.017s) +Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.041 secs (0.034u,0.007s) diff --git a/theories/ITreeFacts.v.timing b/theories/ITreeFacts.v.timing index 80dab856..b4289813 100644 --- a/theories/ITreeFacts.v.timing +++ b/theories/ITreeFacts.v.timing @@ -1 +1 @@ -Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.249 secs (0.208u,0.037s) +Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.158 secs (0.14u,0.017s) diff --git a/theories/Indexed/Function.v.timing b/theories/Indexed/Function.v.timing index 79279a41..6dee72fc 100644 --- a/theories/Indexed/Function.v.timing +++ b/theories/Indexed/Function.v.timing @@ -1,4 +1,4 @@ -Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.015 secs (0.011u,0.003s) +Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.01 secs (0.007u,0.002s) Chars 352 - 378 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 428 - 482 [Definition~IFun~(E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 545 - 610 [Definition~apply_IFun~{E}~{F}~...] 0. secs (0.u,0.s) diff --git a/theories/Indexed/FunctionFacts.v.timing b/theories/Indexed/FunctionFacts.v.timing index f0f4e8b2..38a8d83b 100644 --- a/theories/Indexed/FunctionFacts.v.timing +++ b/theories/Indexed/FunctionFacts.v.timing @@ -1,9 +1,9 @@ -Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.003s) -Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.01 secs (0.007u,0.002s) +Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.006 secs (0.004u,0.001s) Chars 212 - 238 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 255 - 475 [#[global]~Instance~Proper_appl...] 0. secs (0.u,0.s) Chars 476 - 482 [Proof.] 0. secs (0.u,0.s) -Chars 485 - 503 [(repeat~red;~eauto).] 0. secs (0.u,0.s) +Chars 485 - 503 [repeat~red;~eauto.] 0. secs (0.u,0.s) Chars 504 - 508 [Qed.] 0. secs (0.u,0.s) Chars 510 - 626 [Lemma~fold_apply_IFun~{E~F~:~T...] 0. secs (0.u,0.s) Chars 627 - 633 [Proof.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Relation.v.timing b/theories/Indexed/Relation.v.timing index 859cac6d..8e12f934 100644 --- a/theories/Indexed/Relation.v.timing +++ b/theories/Indexed/Relation.v.timing @@ -1,29 +1,29 @@ -Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.009 secs (0.005u,0.002s) -Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.006 secs (0.002u,0.001s) +Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.006 secs (0.003u,0.002s) +Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.002 secs (0.001u,0.s) Chars 157 - 183 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) Chars 292 - 538 [Definition~i_respectful~{A~B~:...] 0. secs (0.u,0.s) Chars 540 - 718 [Definition~i_pointwise~{A~B~:~...] 0. secs (0.u,0.s) Chars 720 - 915 [#[global]~Instance~Reflexive_i...] 0. secs (0.u,0.s) Chars 916 - 922 [Proof.] 0. secs (0.u,0.s) -Chars 925 - 971 [(repeat~red;~intros;~red~in~Re...] 0. secs (0.u,0.s) +Chars 925 - 971 [repeat~red;~intros;~red~in~Ref...] 0. secs (0.u,0.s) Chars 972 - 976 [Qed.] 0. secs (0.u,0.s) Chars 978 - 1173 [#[global]~Instance~Symmetric_i...] 0. secs (0.u,0.s) Chars 1174 - 1180 [Proof.] 0. secs (0.u,0.s) -Chars 1183 - 1229 [(repeat~red;~intros;~red~in~Sy...] 0. secs (0.u,0.s) +Chars 1183 - 1229 [repeat~red;~intros;~red~in~Sym...] 0. secs (0.u,0.s) Chars 1230 - 1234 [Qed.] 0. secs (0.u,0.s) Chars 1236 - 1435 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) Chars 1436 - 1442 [Proof.] 0. secs (0.u,0.s) -Chars 1445 - 1492 [(repeat~red;~intros;~red~in~Tr...] 0. secs (0.u,0.s) +Chars 1445 - 1492 [repeat~red;~intros;~red~in~Tra...] 0. secs (0.u,0.s) Chars 1493 - 1497 [Qed.] 0. secs (0.u,0.s) Chars 1499 - 1702 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 1703 - 1709 [Proof.] 0. secs (0.u,0.s) -Chars 1712 - 1741 [(split;~try~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 1712 - 1741 [split;~try~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 1742 - 1746 [Qed.] 0. secs (0.u,0.s) Chars 1748 - 1944 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) Chars 1945 - 1951 [Proof.] 0. secs (0.u,0.s) -Chars 1954 - 1986 [(repeat~red;~intros;~subst;~au...] 0. secs (0.u,0.s) +Chars 1954 - 1986 [repeat~red;~intros;~subst;~auto.] 0. secs (0.u,0.s) Chars 1987 - 1991 [Qed.] 0. secs (0.u,0.s) Chars 2060 - 2248 [Definition~subrelation_i_respe...] 0. secs (0.u,0.s) Chars 2249 - 2255 [Proof.] 0. secs (0.u,0.s) -Chars 2258 - 2275 [(repeat~red;~auto).] 0. secs (0.u,0.s) +Chars 2258 - 2275 [repeat~red;~auto.] 0. secs (0.u,0.s) Chars 2276 - 2280 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Sum.v.timing b/theories/Indexed/Sum.v.timing index 172cd209..826513fa 100644 --- a/theories/Indexed/Sum.v.timing +++ b/theories/Indexed/Sum.v.timing @@ -1,4 +1,4 @@ -Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) +Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) Chars 189 - 212 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 213 - 237 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) Chars 368 - 461 [Variant~sum1~(E1~E2~:~Type~->~...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Handler.v.timing b/theories/Interp/Handler.v.timing index 2b5bb153..cc83bda1 100644 --- a/theories/Interp/Handler.v.timing +++ b/theories/Interp/Handler.v.timing @@ -1,15 +1,15 @@ -Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.064 secs (0.046u,0.013s) +Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.038 secs (0.031u,0.007s) Chars 362 - 396 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 398 - 427 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 476 - 491 [Module~Handler.] 0. secs (0.u,0.s) Chars 726 - 818 [Definition~htrigger~{A}~{B}~(m...] 0. secs (0.u,0.s) Chars 971 - 1037 [Definition~id_~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0.001 secs (0.u,0.s) +Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0. secs (0.u,0.s) Chars 1282 - 1360 [Definition~inl_~{E~F~:~Type~->...] 0. secs (0.u,0.s) Chars 1404 - 1482 [Definition~inr_~{E~F~:~Type~->...] 0. secs (0.u,0.s) -Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0. secs (0.u,0.s) -Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0.021 secs (0.018u,0.002s) +Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0.013 secs (0.013u,0.s) +Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0. secs (0.u,0.s) Chars 2305 - 2405 [Definition~empty~{E~:~Type~->~...] 0. secs (0.u,0.s) Chars 2407 - 2419 [End~Handler.] 0. secs (0.u,0.s) Chars 2451 - 2507 [Definition~Handler~(E~F~:~Type...] 0. secs (0.u,0.s) diff --git a/theories/Interp/HandlerFacts.v.timing b/theories/Interp/HandlerFacts.v.timing index 0fd12789..5fb8acd7 100644 --- a/theories/Interp/HandlerFacts.v.timing +++ b/theories/Interp/HandlerFacts.v.timing @@ -1,340 +1,340 @@ -Chars 63 - 99 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 101 - 176 [From~Stdlib~Require~Import~Set...] 0.003 secs (0.001u,0.001s) -Chars 178 - 417 [From~ITree~Require~Import~Basi...] 0.098 secs (0.077u,0.017s) +Chars 63 - 99 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 101 - 176 [From~Stdlib~Require~Import~Set...] 0.002 secs (0.u,0.001s) +Chars 178 - 417 [From~ITree~Require~Import~Basi...] 0.056 secs (0.048u,0.008s) Chars 419 - 441 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 442 - 476 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) Chars 478 - 507 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 525 - 549 [Section~HandlerCategory.] 0. secs (0.u,0.s) Chars 551 - 601 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) -Chars 603 - 745 [Instance~Proper_Cat_Handler~~{...] 0.001 secs (0.001u,0.s) +Chars 603 - 745 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) -Chars 755 - 767 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 770 - 794 [(apply~eutt_interp;~auto).] 0. secs (0.u,0.s) -Chars 795 - 799 [Qed.] 0.001 secs (0.001u,0.s) +Chars 755 - 767 [compute;~intros.] 0. secs (0.u,0.s) +Chars 770 - 794 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) +Chars 795 - 799 [Qed.] 0. secs (0.u,0.s) Chars 801 - 842 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) Chars 843 - 849 [Proof.] 0. secs (0.u,0.s) -Chars 852 - 864 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 867 - 892 [(rewrite~interp_trigger_h).] 0.002 secs (0.002u,0.s) +Chars 852 - 864 [compute;~intros.] 0. secs (0.u,0.s) +Chars 867 - 892 [rewrite~interp_trigger_h.] 0.001 secs (0.001u,0.s) Chars 893 - 905 [reflexivity.] 0. secs (0.u,0.s) -Chars 906 - 910 [Qed.] 0.001 secs (0.001u,0.s) +Chars 906 - 910 [Qed.] 0. secs (0.u,0.s) Chars 912 - 953 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) Chars 954 - 960 [Proof.] 0. secs (0.u,0.s) -Chars 963 - 975 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 978 - 1001 [(rewrite~interp_trigger).] 0.013 secs (0.013u,0.s) +Chars 963 - 975 [compute;~intros.] 0. secs (0.u,0.s) +Chars 978 - 1001 [rewrite~interp_trigger.] 0.008 secs (0.008u,0.s) Chars 1004 - 1016 [reflexivity.] 0. secs (0.u,0.s) -Chars 1017 - 1021 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1017 - 1021 [Qed.] 0. secs (0.u,0.s) Chars 1023 - 1068 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) Chars 1069 - 1075 [Proof.] 0. secs (0.u,0.s) -Chars 1078 - 1090 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1093 - 1115 [(rewrite~interp_interp).] 0.055 secs (0.054u,0.s) +Chars 1078 - 1090 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1093 - 1115 [rewrite~interp_interp.] 0.038 secs (0.037u,0.s) Chars 1118 - 1130 [reflexivity.] 0. secs (0.u,0.s) -Chars 1131 - 1135 [Qed.] 0.002 secs (0.002u,0.s) +Chars 1131 - 1135 [Qed.] 0.001 secs (0.001u,0.s) Chars 1137 - 1189 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) Chars 1190 - 1196 [Proof.] 0. secs (0.u,0.s) -Chars 1199 - 1224 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 1199 - 1224 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 1225 - 1229 [Qed.] 0. secs (0.u,0.s) Chars 1231 - 1299 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) -Chars 1309 - 1328 [(compute;~contradiction).] 0. secs (0.u,0.s) +Chars 1309 - 1328 [compute;~contradiction.] 0. secs (0.u,0.s) Chars 1329 - 1333 [Qed.] 0. secs (0.u,0.s) -Chars 1335 - 1487 [Instance~Proper_Case_Handler~~...] 0.001 secs (0.001u,0.s) +Chars 1335 - 1487 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) Chars 1488 - 1494 [Proof.] 0. secs (0.u,0.s) -Chars 1497 - 1509 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1512 - 1544 [(destruct~(_~:~sum1~_~_~_);~au...] 0. secs (0.u,0.s) -Chars 1545 - 1549 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1497 - 1509 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1512 - 1544 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) +Chars 1545 - 1549 [Qed.] 0. secs (0.u,0.s) Chars 1551 - 1599 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) Chars 1600 - 1606 [Proof.] 0. secs (0.u,0.s) -Chars 1609 - 1621 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1624 - 1647 [(rewrite~interp_trigger).] 0.019 secs (0.017u,0.001s) +Chars 1609 - 1621 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1624 - 1647 [rewrite~interp_trigger.] 0.012 secs (0.011u,0.001s) Chars 1650 - 1662 [reflexivity.] 0. secs (0.u,0.s) Chars 1663 - 1667 [Qed.] 0.001 secs (0.001u,0.s) Chars 1669 - 1717 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) Chars 1718 - 1724 [Proof.] 0. secs (0.u,0.s) -Chars 1727 - 1739 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1742 - 1765 [(rewrite~interp_trigger).] 0.02 secs (0.015u,0.005s) +Chars 1727 - 1739 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1742 - 1765 [rewrite~interp_trigger.] 0.012 secs (0.01u,0.002s) Chars 1768 - 1780 [reflexivity.] 0. secs (0.u,0.s) -Chars 1781 - 1785 [Qed.] 0.002 secs (0.001u,0.s) +Chars 1781 - 1785 [Qed.] 0.001 secs (0.001u,0.s) Chars 1787 - 1847 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) Chars 1848 - 1854 [Proof.] 0. secs (0.u,0.s) -Chars 1857 - 1869 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 1872 - 1898 [(destruct~(_~:~sum1~_~_~_)).] 0.001 secs (0.001u,0.s) +Chars 1857 - 1869 [compute;~intros.] 0. secs (0.u,0.s) +Chars 1872 - 1898 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) Chars 1901 - 1902 [-] 0. secs (0.u,0.s) -Chars 1903 - 1932 [(rewrite~<-~H,~interp_trigger).] 0.033 secs (0.027u,0.005s) +Chars 1903 - 1932 [rewrite~<-~H,~interp_trigger.] 0.016 secs (0.015u,0.s) Chars 1933 - 1945 [reflexivity.] 0. secs (0.u,0.s) Chars 1948 - 1949 [-] 0. secs (0.u,0.s) -Chars 1950 - 1980 [(rewrite~<-~H0,~interp_trigger).] 0.029 secs (0.024u,0.004s) +Chars 1950 - 1980 [rewrite~<-~H0,~interp_trigger.] 0.014 secs (0.014u,0.s) Chars 1981 - 1993 [reflexivity.] 0. secs (0.u,0.s) -Chars 1994 - 1998 [Qed.] 0.003 secs (0.002u,0.s) +Chars 1994 - 1998 [Qed.] 0.001 secs (0.001u,0.s) Chars 2000 - 2059 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) Chars 2060 - 2066 [Proof.] 0. secs (0.u,0.s) -Chars 2069 - 2094 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 2069 - 2094 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 2095 - 2099 [Qed.] 0. secs (0.u,0.s) Chars 2101 - 2136 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) Chars 2138 - 2264 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) Chars 2265 - 2271 [Proof.] 0. secs (0.u,0.s) -Chars 2274 - 2287 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 2290 - 2321 [(apply~Proper_interp_mrec;~auto).] 0. secs (0.u,0.s) -Chars 2322 - 2326 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2274 - 2287 [repeat~intro.] 0. secs (0.u,0.s) +Chars 2290 - 2321 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) +Chars 2322 - 2326 [Qed.] 0. secs (0.u,0.s) Chars 2328 - 2382 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) Chars 2383 - 2389 [Proof.] 0. secs (0.u,0.s) -Chars 2392 - 2404 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 2407 - 2437 [(rewrite~interp_mrec_as_interp).] 0.003 secs (0.002u,0.s) +Chars 2392 - 2404 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2407 - 2437 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) Chars 2440 - 2452 [reflexivity.] 0. secs (0.u,0.s) -Chars 2453 - 2457 [Qed.] 0.002 secs (0.001u,0.s) +Chars 2453 - 2457 [Qed.] 0.001 secs (0.001u,0.s) Chars 2459 - 2515 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) Chars 2516 - 2522 [Proof.] 0. secs (0.u,0.s) -Chars 2525 - 2537 [(compute;~intros).] 0. secs (0.u,0.s) -Chars 2540 - 2550 [(pattern~f).] 0.005 secs (0.005u,0.s) -Chars 2553 - 2651 [(match~goal~with~~|~|-~?G~?f~=...] 0.001 secs (0.u,0.s) +Chars 2525 - 2537 [compute;~intros.] 0. secs (0.u,0.s) +Chars 2540 - 2550 [pattern~f.] 0.003 secs (0.003u,0.s) +Chars 2553 - 2651 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) Chars 2654 - 2655 [{] 0. secs (0.u,0.s) -Chars 2656 - 2711 [(etransitivity;~[~etransitivit...] 0.002 secs (0.001u,0.s) +Chars 2656 - 2711 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) Chars 2716 - 2717 [-] 0. secs (0.u,0.s) Chars 2718 - 2727 [symmetry.] 0. secs (0.u,0.s) -Chars 2728 - 2765 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) +Chars 2728 - 2765 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) Chars 2772 - 2773 [+] 0. secs (0.u,0.s) Chars 2774 - 2786 [reflexivity.] 0. secs (0.u,0.s) Chars 2793 - 2794 [+] 0. secs (0.u,0.s) -Chars 2795 - 2852 [(apply~euttge_interp_mrec;~rep...] 0. secs (0.u,0.s) +Chars 2795 - 2852 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) Chars 2857 - 2858 [-] 0. secs (0.u,0.s) -Chars 2859 - 2901 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) +Chars 2859 - 2901 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) Chars 2908 - 2909 [+] 0. secs (0.u,0.s) -Chars 2910 - 2921 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 2922 - 2942 [(apply~euttge_interp).] 0. secs (0.u,0.s) +Chars 2910 - 2921 [intros~?~?.] 0. secs (0.u,0.s) +Chars 2922 - 2942 [apply~euttge_interp.] 0. secs (0.u,0.s) Chars 2951 - 2952 [*] 0. secs (0.u,0.s) Chars 2953 - 2965 [reflexivity.] 0. secs (0.u,0.s) Chars 2974 - 2975 [*] 0. secs (0.u,0.s) -Chars 2976 - 2993 [(apply~tau_euttge).] 0. secs (0.u,0.s) +Chars 2976 - 2993 [apply~tau_euttge.] 0. secs (0.u,0.s) Chars 3000 - 3001 [+] 0. secs (0.u,0.s) -Chars 3002 - 3021 [(rewrite~tau_euttge).] 0.016 secs (0.016u,0.s) +Chars 3002 - 3021 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) Chars 3022 - 3034 [reflexivity.] 0. secs (0.u,0.s) Chars 3037 - 3038 [}] 0. secs (0.u,0.s) -Chars 3041 - 3269 [(match~goal~with~~|~|-~_~_~(_~...] 0.002 secs (0.002u,0.s) -Chars 3272 - 3311 [(remember~(Tau~(f~T~a0))~as~t~...] 0.002 secs (0.002u,0.s) +Chars 3041 - 3269 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) +Chars 3272 - 3311 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) Chars 3312 - 3324 [clear~tmp_t.] 0. secs (0.u,0.s) Chars 3399 - 3422 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 3426 - 3458 [(revert~t;~coinduction;~intros...] 0.006 secs (0.006u,0.s) -Chars 3461 - 3483 [(rewrite~(itree_eta~t)).] 0.024 secs (0.024u,0.s) -Chars 3486 - 3507 [(destruct~(observe~t)).] 0.001 secs (0.001u,0.s) +Chars 3426 - 3458 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) +Chars 3461 - 3483 [rewrite~(itree_eta~t).] 0.016 secs (0.016u,0.s) +Chars 3486 - 3507 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) Chars 3510 - 3511 [-] 0. secs (0.u,0.s) -Chars 3512 - 3539 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) +Chars 3512 - 3539 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) Chars 3540 - 3545 [bcbn.] 0. secs (0.u,0.s) -Chars 3551 - 3572 [(rewrite~2!interp_ret).] 0.047 secs (0.046u,0.s) -Chars 3577 - 3604 [(rewrite~unfold_interp_mrec).] 0.02 secs (0.019u,0.s) +Chars 3551 - 3572 [rewrite~2!interp_ret.] 0.03 secs (0.03u,0.s) +Chars 3577 - 3604 [rewrite~unfold_interp_mrec.] 0.013 secs (0.013u,0.s) Chars 3609 - 3621 [reflexivity.] 0.001 secs (0.001u,0.s) Chars 3624 - 3625 [-] 0. secs (0.u,0.s) -Chars 3626 - 3653 [(rewrite~unfold_interp_mrec).] 0.024 secs (0.023u,0.s) +Chars 3626 - 3653 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) Chars 3654 - 3659 [bcbn.] 0. secs (0.u,0.s) -Chars 3665 - 3686 [(rewrite~2!interp_tau).] 0.049 secs (0.048u,0.s) -Chars 3691 - 3737 [(rewrite~(unfold_interp_mrec~_...] 0.022 secs (0.022u,0.s) +Chars 3665 - 3686 [rewrite~2!interp_tau.] 0.032 secs (0.032u,0.s) +Chars 3691 - 3737 [rewrite~(unfold_interp_mrec~_~...] 0.015 secs (0.015u,0.s) Chars 3742 - 3751 [now~taus.] 0. secs (0.u,0.s) Chars 3755 - 3756 [-] 0. secs (0.u,0.s) -Chars 3757 - 3784 [(rewrite~unfold_interp_mrec).] 0.022 secs (0.022u,0.s) +Chars 3757 - 3784 [rewrite~unfold_interp_mrec.] 0.014 secs (0.014u,0.s) Chars 3785 - 3790 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3795 - 3814 [(rewrite~interp_vis).] 0.027 secs (0.027u,0.s) -Chars 3819 - 3836 [(destruct~e;~bcbn).] 0.001 secs (0.001u,0.s) +Chars 3795 - 3814 [rewrite~interp_vis.] 0.018 secs (0.018u,0.s) +Chars 3819 - 3836 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) Chars 3841 - 3842 [+] 0. secs (0.u,0.s) -Chars 3843 - 3862 [(rewrite~interp_tau).] 0.022 secs (0.022u,0.s) -Chars 3869 - 3909 [(rewrite~2!interp_mrec_bind,~i...] 0.072 secs (0.07u,0.001s) -Chars 3916 - 3924 [subst~h.] 0.003 secs (0.003u,0.s) -Chars 3932 - 3937 [bcbn.] 0.056 secs (0.055u,0.s) -Chars 3944 - 3967 [(rewrite~interp_trigger).] 0.043 secs (0.042u,0.s) -Chars 3974 - 4001 [(rewrite~unfold_interp_mrec).] 0.04 secs (0.039u,0.s) -Chars 4003 - 4008 [bcbn.] 0.051 secs (0.051u,0.s) -Chars 4016 - 4044 [(rewrite~interp_mrec_trigger).] 0.037 secs (0.036u,0.s) -Chars 4045 - 4050 [bcbn.] 0.052 secs (0.051u,0.s) -Chars 4058 - 4080 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) -Chars 4209 - 4229 [(rewrite~!interp_tau).] 0.133 secs (0.13u,0.001s) -Chars 4236 - 4283 [(rewrite~(unfold_interp_mrec~_...] 0.12 secs (0.118u,0.001s) -Chars 4290 - 4308 [(rewrite~!bind_tau).] 0.106 secs (0.105u,0.s) -Chars 4315 - 4320 [taus.] 0.001 secs (0.001u,0.s) -Chars 4321 - 4379 [(rewrite~tau_euttge,~<-~interp...] 0.159 secs (0.157u,0.001s) -Chars 4386 - 4427 [setoid_rewrite~(tau_euttge~(in...] 0.077 secs (0.076u,0.s) -Chars 4434 - 4457 [(rewrite~<-~interp_bind).] 0.038 secs (0.037u,0.s) +Chars 3843 - 3862 [rewrite~interp_tau.] 0.014 secs (0.014u,0.s) +Chars 3869 - 3909 [rewrite~2!interp_mrec_bind,~in...] 0.047 secs (0.047u,0.s) +Chars 3916 - 3924 [subst~h.] 0.002 secs (0.002u,0.s) +Chars 3932 - 3937 [bcbn.] 0.037 secs (0.037u,0.s) +Chars 3944 - 3967 [rewrite~interp_trigger.] 0.03 secs (0.03u,0.s) +Chars 3974 - 4001 [rewrite~unfold_interp_mrec.] 0.027 secs (0.027u,0.s) +Chars 4003 - 4008 [bcbn.] 0.036 secs (0.035u,0.s) +Chars 4016 - 4044 [rewrite~interp_mrec_trigger.] 0.024 secs (0.024u,0.s) +Chars 4045 - 4050 [bcbn.] 0.035 secs (0.035u,0.s) +Chars 4058 - 4080 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 4209 - 4229 [rewrite~!interp_tau.] 0.087 secs (0.086u,0.s) +Chars 4236 - 4283 [rewrite~(unfold_interp_mrec~_~...] 0.08 secs (0.079u,0.s) +Chars 4290 - 4308 [rewrite~!bind_tau.] 0.071 secs (0.071u,0.s) +Chars 4315 - 4320 [taus.] 0. secs (0.u,0.s) +Chars 4321 - 4379 [rewrite~tau_euttge,~<-~interp_...] 0.105 secs (0.104u,0.s) +Chars 4386 - 4427 [setoid_rewrite~(tau_euttge~(in...] 0.056 secs (0.056u,0.s) +Chars 4434 - 4457 [rewrite~<-~interp_bind.] 0.026 secs (0.025u,0.s) Chars 4464 - 4469 [auto.] 0. secs (0.u,0.s) Chars 4474 - 4475 [+] 0. secs (0.u,0.s) -Chars 4476 - 4495 [(rewrite~interp_vis).] 0.022 secs (0.021u,0.s) -Chars 4502 - 4527 [(rewrite~interp_mrec_bind).] 0.023 secs (0.023u,0.s) -Chars 4534 - 4548 [(subst~h;~bcbn).] 0.004 secs (0.004u,0.s) -Chars 4555 - 4561 [ebind.] 0.011 secs (0.011u,0.s) +Chars 4476 - 4495 [rewrite~interp_vis.] 0.014 secs (0.014u,0.s) +Chars 4502 - 4527 [rewrite~interp_mrec_bind.] 0.015 secs (0.015u,0.s) +Chars 4534 - 4548 [subst~h;~bcbn.] 0.002 secs (0.002u,0.s) +Chars 4555 - 4561 [ebind.] 0.008 secs (0.008u,0.s) Chars 4562 - 4582 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) Chars 4590 - 4591 [{] 0. secs (0.u,0.s) -Chars 4592 - 4602 [(do~2~step).] 0.012 secs (0.012u,0.s) -Chars 4603 - 4648 [(rewrite~interp_mrec_as_interp...] 0.025 secs (0.025u,0.s) -Chars 4657 - 4685 [(rewrite~<-~interp_id_h~~at~1).] 0.069 secs (0.068u,0.001s) -Chars 4694 - 4730 [(eapply~eutt_interp;~try~refle...] 0.002 secs (0.002u,0.s) -Chars 4739 - 4750 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 4759 - 4787 [(rewrite~interp_trigger;~cbn).] 0.011 secs (0.011u,0.s) +Chars 4592 - 4602 [do~2~step.] 0.008 secs (0.008u,0.s) +Chars 4603 - 4648 [rewrite~interp_mrec_as_interp,...] 0.017 secs (0.017u,0.s) +Chars 4657 - 4685 [rewrite~<-~interp_id_h~~at~1.] 0.046 secs (0.046u,0.s) +Chars 4694 - 4730 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) +Chars 4739 - 4750 [intros~?~?.] 0. secs (0.u,0.s) +Chars 4759 - 4787 [rewrite~interp_trigger;~cbn.] 0.007 secs (0.007u,0.s) Chars 4796 - 4808 [reflexivity.] 0. secs (0.u,0.s) Chars 4809 - 4810 [}] 0. secs (0.u,0.s) -Chars 4817 - 4831 [(intros~?~_~[]).] 0.001 secs (0.001u,0.s) -Chars 4838 - 4885 [(rewrite~(unfold_interp_mrec~_...] 0.042 secs (0.041u,0.s) +Chars 4817 - 4831 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 4838 - 4885 [rewrite~(unfold_interp_mrec~_~...] 0.026 secs (0.026u,0.s) Chars 4892 - 4897 [taus.] 0. secs (0.u,0.s) -Chars 4905 - 4924 [(rewrite~tau_euttge).] 0.016 secs (0.016u,0.s) -Chars 4931 - 4941 [(apply~CIH).] 0.001 secs (0.001u,0.s) -Chars 4943 - 4947 [Qed.] 0.153 secs (0.148u,0.003s) +Chars 4905 - 4924 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) +Chars 4931 - 4941 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4943 - 4947 [Qed.] 0.097 secs (0.096u,0.s) Chars 4949 - 4973 [Section~DinatSimulation.] 0. secs (0.u,0.s) Chars 4975 - 5006 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) Chars 5007 - 5069 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) Chars 5070 - 5089 [Context~{R~:~Type}.] 0. secs (0.u,0.s) Chars 5091 - 5161 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5163 - 5623 [Inductive~interleaved~:~itree~...] 0.006 secs (0.006u,0.s) +Chars 5163 - 5623 [Inductive~interleaved~:~itree~...] 0.004 secs (0.004u,0.s) Chars 5624 - 5671 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) -Chars 5673 - 5717 [Let~hg~:=~@case_~_~Handler~_~_...] 0.001 secs (0.u,0.s) +Chars 5673 - 5717 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) Chars 5718 - 5762 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5764 - 5936 [Theorem~interleaved_mrec~:~~~f...] 0.003 secs (0.003u,0.s) +Chars 5764 - 5936 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) Chars 5937 - 5965 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 5969 - 5989 [(coinduction;~intros).] 0.003 secs (0.003u,0.s) -Chars 5992 - 6004 [(induction~H).] 0.001 secs (0.001u,0.s) +Chars 5969 - 5989 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 5992 - 6004 [induction~H.] 0. secs (0.u,0.s) Chars 6007 - 6008 [-] 0. secs (0.u,0.s) -Chars 6009 - 6044 [(rewrite~2!unfold_interp_mrec;...] 0.038 secs (0.037u,0.s) -Chars 6045 - 6057 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6009 - 6044 [rewrite~2!unfold_interp_mrec;~...] 0.025 secs (0.025u,0.s) +Chars 6045 - 6057 [reflexivity.] 0. secs (0.u,0.s) Chars 6062 - 6063 [-] 0. secs (0.u,0.s) -Chars 6064 - 6108 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.024u,0.s) +Chars 6064 - 6108 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) Chars 6113 - 6114 [+] 0. secs (0.u,0.s) -Chars 6115 - 6148 [(rewrite~interp_ret,~2!bind_re...] 0.059 secs (0.058u,0.s) +Chars 6115 - 6148 [rewrite~interp_ret,~2!bind_ret_l.] 0.038 secs (0.038u,0.s) Chars 6149 - 6154 [auto.] 0. secs (0.u,0.s) Chars 6159 - 6160 [+] 0. secs (0.u,0.s) -Chars 6161 - 6220 [(rewrite~interp_tau,~2!bind_ta...] 0.105 secs (0.103u,0.001s) +Chars 6161 - 6220 [rewrite~interp_tau,~2!bind_tau...] 0.067 secs (0.067u,0.s) Chars 6227 - 6234 [taus~...] 0.001 secs (0.001u,0.s) Chars 6241 - 6242 [+] 0. secs (0.u,0.s) -Chars 6243 - 6272 [(rewrite~interp_vis,~bind_vis).] 0.046 secs (0.046u,0.s) -Chars 6279 - 6297 [(rewrite~bind_bind).] 0.021 secs (0.021u,0.s) -Chars 6304 - 6353 [(rewrite~(unfold_interp_mrec~_...] 0.022 secs (0.022u,0.s) -Chars 6360 - 6377 [(destruct~e;~bcbn).] 0.044 secs (0.043u,0.s) -Chars 6378 - 6419 [setoid_rewrite~(tau_euttge~(in...] 0.078 secs (0.077u,0.s) +Chars 6243 - 6272 [rewrite~interp_vis,~bind_vis.] 0.029 secs (0.029u,0.s) +Chars 6279 - 6297 [rewrite~bind_bind.] 0.014 secs (0.014u,0.s) +Chars 6304 - 6353 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) +Chars 6360 - 6377 [destruct~e;~bcbn.] 0.028 secs (0.028u,0.s) +Chars 6378 - 6419 [setoid_rewrite~(tau_euttge~(in...] 0.062 secs (0.061u,0.s) Chars 6426 - 6427 [*] 0. secs (0.u,0.s) -Chars 6428 - 6475 [(unfold~cat~at~3,~Cat_Handler~...] 0. secs (0.u,0.s) -Chars 6484 - 6519 [(change~(g~X~b)~with~(Tau~(g0~...] 0. secs (0.u,0.s) -Chars 6528 - 6571 [(rewrite~bind_tau,~unfold_inte...] 0.043 secs (0.043u,0.s) +Chars 6428 - 6475 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 6484 - 6519 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) +Chars 6528 - 6571 [rewrite~bind_tau,~unfold_inter...] 0.029 secs (0.028u,0.s) Chars 6580 - 6585 [taus.] 0. secs (0.u,0.s) -Chars 6586 - 6607 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) +Chars 6586 - 6607 [rewrite~tau_euttge~...] 0.009 secs (0.009u,0.s) Chars 6614 - 6615 [*] 0. secs (0.u,0.s) -Chars 6616 - 6678 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) -Chars 6687 - 6708 [(rewrite~bind_trigger).] 0.02 secs (0.02u,0.s) -Chars 6717 - 6750 [(rewrite~unfold_interp_mrec;~b...] 0.02 secs (0.02u,0.s) -Chars 6759 - 6779 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 6780 - 6808 [(repeat~rewrite~tau_euttge)~...] 0.028 secs (0.027u,0.s) +Chars 6616 - 6678 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 6687 - 6708 [rewrite~bind_trigger.] 0.013 secs (0.013u,0.s) +Chars 6717 - 6750 [rewrite~unfold_interp_mrec;~bcbn.] 0.012 secs (0.012u,0.s) +Chars 6759 - 6779 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 6780 - 6808 [repeat~rewrite~tau_euttge~...] 0.018 secs (0.018u,0.s) Chars 6812 - 6813 [-] 0. secs (0.u,0.s) -Chars 6814 - 6858 [(rewrite~(itree_eta~t);~destru...] 0.025 secs (0.025u,0.s) +Chars 6814 - 6858 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) Chars 6863 - 6864 [+] 0. secs (0.u,0.s) -Chars 6865 - 6898 [(rewrite~interp_ret,~2!bind_re...] 0.06 secs (0.059u,0.s) +Chars 6865 - 6898 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.041u,0.s) Chars 6899 - 6904 [auto.] 0. secs (0.u,0.s) Chars 6909 - 6910 [+] 0. secs (0.u,0.s) -Chars 6911 - 6970 [(rewrite~interp_tau,~2!bind_ta...] 0.105 secs (0.103u,0.001s) +Chars 6911 - 6970 [rewrite~interp_tau,~2!bind_tau...] 0.072 secs (0.072u,0.s) Chars 6977 - 6984 [taus~...] 0.001 secs (0.001u,0.s) Chars 6991 - 6992 [+] 0. secs (0.u,0.s) -Chars 6993 - 7022 [(rewrite~interp_vis,~bind_vis).] 0.044 secs (0.043u,0.s) -Chars 7029 - 7047 [(rewrite~bind_bind).] 0.022 secs (0.022u,0.s) -Chars 7054 - 7103 [(rewrite~(unfold_interp_mrec~_...] 0.021 secs (0.021u,0.s) -Chars 7110 - 7127 [(destruct~e;~bcbn).] 0.045 secs (0.044u,0.s) -Chars 7128 - 7169 [setoid_rewrite~(tau_euttge~(in...] 0.075 secs (0.075u,0.s) +Chars 6993 - 7022 [rewrite~interp_vis,~bind_vis.] 0.03 secs (0.03u,0.s) +Chars 7029 - 7047 [rewrite~bind_bind.] 0.015 secs (0.015u,0.s) +Chars 7054 - 7103 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) +Chars 7110 - 7127 [destruct~e;~bcbn.] 0.03 secs (0.03u,0.s) +Chars 7128 - 7169 [setoid_rewrite~(tau_euttge~(in...] 0.062 secs (0.062u,0.s) Chars 7176 - 7177 [*] 0. secs (0.u,0.s) -Chars 7178 - 7225 [(unfold~cat~at~2,~Cat_Handler~...] 0. secs (0.u,0.s) -Chars 7234 - 7269 [(change~(f~X~a)~with~(Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7278 - 7336 [(rewrite~!bind_tau,~(unfold_in...] 0.048 secs (0.048u,0.s) +Chars 7178 - 7225 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) +Chars 7234 - 7269 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) +Chars 7278 - 7336 [rewrite~!bind_tau,~(unfold_int...] 0.034 secs (0.033u,0.s) Chars 7345 - 7350 [taus.] 0. secs (0.u,0.s) -Chars 7351 - 7372 [(rewrite~tau_euttge)~...] 0.013 secs (0.013u,0.s) +Chars 7351 - 7372 [rewrite~tau_euttge~...] 0.009 secs (0.008u,0.s) Chars 7380 - 7381 [*] 0. secs (0.u,0.s) -Chars 7382 - 7444 [(unfold~inr_,~Inr_sum1_Handler...] 0. secs (0.u,0.s) -Chars 7453 - 7474 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) -Chars 7483 - 7516 [(rewrite~unfold_interp_mrec;~b...] 0.022 secs (0.022u,0.s) -Chars 7525 - 7545 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 7546 - 7574 [(repeat~rewrite~tau_euttge)~...] 0.03 secs (0.029u,0.s) -Chars 7575 - 7579 [Qed.] 0.046 secs (0.045u,0.s) -Chars 7581 - 7601 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) +Chars 7382 - 7444 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) +Chars 7453 - 7474 [rewrite~bind_trigger.] 0.015 secs (0.014u,0.s) +Chars 7483 - 7516 [rewrite~unfold_interp_mrec;~bcbn.] 0.014 secs (0.014u,0.s) +Chars 7525 - 7545 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 7546 - 7574 [repeat~rewrite~tau_euttge~...] 0.019 secs (0.019u,0.s) +Chars 7575 - 7579 [Qed.] 0.029 secs (0.029u,0.s) +Chars 7581 - 7601 [End~DinatSimulation.] 0. secs (0.u,0.s) Chars 7603 - 7621 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) Chars 7623 - 7683 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) Chars 7684 - 7690 [Proof.] 0. secs (0.u,0.s) -Chars 7693 - 7722 [(compute;~intros~a~b~c~f0~g0~T...] 0. secs (0.u,0.s) -Chars 7725 - 7761 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) -Chars 7762 - 7798 [(pose~(g~:=~fun~T~e~=>~Tau~(g0...] 0. secs (0.u,0.s) -Chars 7801 - 7983 [(enough~~~(Recursion.interp_mr...] 0.003 secs (0.003u,0.s) +Chars 7693 - 7722 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) +Chars 7725 - 7761 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 7762 - 7798 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) +Chars 7801 - 7983 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) Chars 7986 - 7987 [{] 0. secs (0.u,0.s) -Chars 7988 - 7997 [(compute~in~H).] 0. secs (0.u,0.s) -Chars 7998 - 8051 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) +Chars 7988 - 7997 [compute~in~H.] 0. secs (0.u,0.s) +Chars 7998 - 8051 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) Chars 8056 - 8057 [-] 0. secs (0.u,0.s) Chars 8058 - 8067 [symmetry.] 0. secs (0.u,0.s) -Chars 8068 - 8110 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.u,0.s) -Chars 8117 - 8131 [1:~(intros~?~?).] 0. secs (0.u,0.s) -Chars 8138 - 8200 [1,~2:~(rewrite~tau_euttge;~app...] 0.018 secs (0.018u,0.s) -Chars 8207 - 8257 [1,~2:~(intros~?~[];~[~apply~ta...] 0. secs (0.u,0.s) +Chars 8068 - 8110 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8117 - 8131 [1:~intros~?~?.] 0. secs (0.u,0.s) +Chars 8138 - 8200 [1,~2:~rewrite~tau_euttge;~appl...] 0.012 secs (0.012u,0.s) +Chars 8207 - 8257 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) Chars 8262 - 8263 [-] 0. secs (0.u,0.s) -Chars 8264 - 8324 [(apply~euttge_sub_eutt,~euttge...] 0.001 secs (0.001u,0.s) -Chars 8331 - 8360 [(intros~?~[];~try~reflexivity).] 0.002 secs (0.002u,0.s) -Chars 8367 - 8386 [(rewrite~tau_euttge).] 0.015 secs (0.015u,0.s) -Chars 8387 - 8412 [(apply~euttge_interp_mrec).] 0. secs (0.u,0.s) -Chars 8419 - 8430 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 8437 - 8456 [(rewrite~tau_euttge).] 0.007 secs (0.007u,0.s) -Chars 8463 - 8505 [all:~(apply~euttge_interp;~try...] 0.002 secs (0.002u,0.s) -Chars 8512 - 8563 [all:~(intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) +Chars 8264 - 8324 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) +Chars 8331 - 8360 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 8367 - 8386 [rewrite~tau_euttge.] 0.009 secs (0.009u,0.s) +Chars 8387 - 8412 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) +Chars 8419 - 8430 [intros~?~?.] 0. secs (0.u,0.s) +Chars 8437 - 8456 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) +Chars 8463 - 8505 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) +Chars 8512 - 8563 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) Chars 8566 - 8567 [}] 0. secs (0.u,0.s) -Chars 8570 - 8603 [(rewrite~<-~interp_mrec_as_int...] 0.004 secs (0.003u,0.s) -Chars 8607 - 8644 [(rewrite~<-~(bind_ret_r~(inter...] 0.017 secs (0.017u,0.s) -Chars 8647 - 8685 [(rewrite~<-~(bind_ret_r~(f~_~a...] 0.023 secs (0.023u,0.s) -Chars 8689 - 8712 [(apply~interleaved_mrec).] 0. secs (0.u,0.s) -Chars 8715 - 8732 [(do~2~constructor).] 0. secs (0.u,0.s) -Chars 8733 - 8737 [Qed.] 0.015 secs (0.015u,0.s) +Chars 8570 - 8603 [rewrite~<-~interp_mrec_as_interp.] 0.002 secs (0.002u,0.s) +Chars 8607 - 8644 [rewrite~<-~(bind_ret_r~(interp...] 0.012 secs (0.012u,0.s) +Chars 8647 - 8685 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.015 secs (0.015u,0.s) +Chars 8689 - 8712 [apply~interleaved_mrec.] 0. secs (0.u,0.s) +Chars 8715 - 8732 [do~2~constructor.] 0. secs (0.u,0.s) +Chars 8733 - 8737 [Qed.] 0.011 secs (0.01u,0.s) Chars 8739 - 8756 [Import~Recursion.] 0. secs (0.u,0.s) Chars 8758 - 8820 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) -Chars 8830 - 8853 [(compute;~intros~a~b~f0~T~x).] 0. secs (0.u,0.s) -Chars 8856 - 8894 [(remember~(f0~T~x)~as~t~eqn:EQ...] 0.001 secs (0.001u,0.s) -Chars 8897 - 8933 [(pose~(f~:=~fun~T~e~=>~Tau~(f0...] 0. secs (0.u,0.s) -Chars 8936 - 9635 [(enough~~~(interp_mrec~(fun~_~...] 0.002 secs (0.002u,0.s) +Chars 8830 - 8853 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) +Chars 8856 - 8894 [remember~(f0~T~x)~as~t~eqn:EQt...] 0.001 secs (0.001u,0.s) +Chars 8897 - 8933 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) +Chars 8936 - 9635 [enough~~(interp_mrec~(fun~_~d~...] 0.001 secs (0.001u,0.s) Chars 9638 - 9639 [{] 0. secs (0.u,0.s) Chars 9640 - 9648 [subst~f.] 0. secs (0.u,0.s) -Chars 9649 - 9704 [(etransitivity;~[~etransitivit...] 0.001 secs (0.001u,0.s) +Chars 9649 - 9704 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) Chars 9709 - 9710 [-] 0. secs (0.u,0.s) Chars 9711 - 9720 [symmetry.] 0. secs (0.u,0.s) -Chars 9721 - 9763 [(apply~euttge_sub_eutt,~euttge...] 0. secs (0.u,0.s) +Chars 9721 - 9763 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) Chars 9770 - 9771 [+] 0. secs (0.u,0.s) -Chars 9772 - 9783 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 9784 - 9831 [(apply~euttge_interp_mrec;~try...] 0. secs (0.u,0.s) -Chars 9840 - 9851 [(intros~?~?).] 0. secs (0.u,0.s) -Chars 9852 - 9869 [(apply~tau_euttge).] 0. secs (0.u,0.s) +Chars 9772 - 9783 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9784 - 9831 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) +Chars 9840 - 9851 [intros~?~?.] 0. secs (0.u,0.s) +Chars 9852 - 9869 [apply~tau_euttge.] 0. secs (0.u,0.s) Chars 9876 - 9877 [+] 0. secs (0.u,0.s) -Chars 9878 - 9951 [(apply~euttge_interp_mrec;~rep...] 0.002 secs (0.002u,0.s) +Chars 9878 - 9951 [apply~euttge_interp_mrec;~repe...] 0.001 secs (0.001u,0.s) Chars 9960 - 9972 [reflexivity.] 0. secs (0.u,0.s) Chars 9977 - 9978 [-] 0. secs (0.u,0.s) -Chars 9979 - 10081 [(apply~euttge_sub_eutt,~euttge...] 0.003 secs (0.003u,0.s) -Chars 10088 - 10105 [(apply~tau_euttge).] 0. secs (0.u,0.s) +Chars 9979 - 10081 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) +Chars 10088 - 10105 [apply~tau_euttge.] 0. secs (0.u,0.s) Chars 10108 - 10109 [}] 0. secs (0.u,0.s) Chars 10112 - 10135 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) Chars 10140 - 10149 [revert~t.] 0. secs (0.u,0.s) -Chars 10150 - 10170 [(coinduction;~intros).] 0.004 secs (0.004u,0.s) -Chars 10174 - 10224 [(rewrite~(itree_eta~t);~destru...] 0.024 secs (0.023u,0.s) -Chars 10227 - 10293 [all:~(rewrite~(unfold_interp_m...] 0.132 secs (0.129u,0.001s) -Chars 10296 - 10334 [1,~2:~(rewrite~unfold_interp_m...] 0.076 secs (0.076u,0.s) -Chars 10337 - 10400 [1,~2:~(rewrite~(unfold_interp_...] 0.043 secs (0.042u,0.s) +Chars 10150 - 10170 [coinduction;~intros.] 0.002 secs (0.002u,0.s) +Chars 10174 - 10224 [rewrite~(itree_eta~t);~destruc...] 0.014 secs (0.014u,0.s) +Chars 10227 - 10293 [all:~rewrite~(unfold_interp_mr...] 0.081 secs (0.081u,0.s) +Chars 10296 - 10334 [1,~2:~rewrite~unfold_interp_mr...] 0.05 secs (0.05u,0.s) +Chars 10337 - 10400 [1,~2:~rewrite~(unfold_interp_m...] 0.028 secs (0.028u,0.s) Chars 10403 - 10408 [taus.] 0. secs (0.u,0.s) -Chars 10409 - 10419 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 10423 - 10434 [(destruct~e).] 0. secs (0.u,0.s) +Chars 10409 - 10419 [apply~CIH.] 0. secs (0.u,0.s) +Chars 10423 - 10434 [destruct~e.] 0. secs (0.u,0.s) Chars 10437 - 10438 [-] 0. secs (0.u,0.s) -Chars 10439 - 10486 [(rewrite~(interp_mrec_bind~_~(...] 0.021 secs (0.021u,0.s) -Chars 10491 - 10525 [(rewrite~interp_mrec_trigger;~...] 0.013 secs (0.013u,0.s) -Chars 10530 - 10552 [(unfold~Recursion.mrec).] 0. secs (0.u,0.s) -Chars 10557 - 10620 [(remember~(f~X~a0)~as~fxa~eqn:...] 0.003 secs (0.003u,0.s) -Chars 10625 - 10670 [(rewrite~interp_tau,~unfold_in...] 0.079 secs (0.078u,0.s) -Chars 10675 - 10722 [(rewrite~(unfold_interp_mrec~_...] 0.052 secs (0.051u,0.s) -Chars 10727 - 10745 [(rewrite~!bind_tau).] 0.052 secs (0.051u,0.s) +Chars 10439 - 10486 [rewrite~(interp_mrec_bind~_~(I...] 0.014 secs (0.014u,0.s) +Chars 10491 - 10525 [rewrite~interp_mrec_trigger;~b...] 0.009 secs (0.009u,0.s) +Chars 10530 - 10552 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) +Chars 10557 - 10620 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.001 secs (0.001u,0.s) +Chars 10625 - 10670 [rewrite~interp_tau,~unfold_int...] 0.053 secs (0.052u,0.s) +Chars 10675 - 10722 [rewrite~(unfold_interp_mrec~_~...] 0.036 secs (0.036u,0.s) +Chars 10727 - 10745 [rewrite~!bind_tau.] 0.033 secs (0.033u,0.s) Chars 10750 - 10755 [taus.] 0. secs (0.u,0.s) -Chars 10761 - 10780 [(rewrite~tau_euttge).] 0.009 secs (0.009u,0.s) -Chars 10781 - 10807 [setoid_rewrite~tau_euttge.] 0.023 secs (0.023u,0.s) -Chars 10812 - 10856 [(rewrite~<-~interp_mrec_bind,~...] 0.04 secs (0.04u,0.s) +Chars 10761 - 10780 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) +Chars 10781 - 10807 [setoid_rewrite~tau_euttge.] 0.016 secs (0.015u,0.s) +Chars 10812 - 10856 [rewrite~<-~interp_mrec_bind,~<...] 0.027 secs (0.027u,0.s) Chars 10861 - 10866 [auto.] 0. secs (0.u,0.s) Chars 10869 - 10870 [-] 0. secs (0.u,0.s) -Chars 10871 - 10892 [(rewrite~bind_trigger).] 0.021 secs (0.021u,0.s) -Chars 10897 - 10923 [setoid_rewrite~tau_euttge.] 0.022 secs (0.021u,0.s) -Chars 10928 - 10963 [(rewrite~2!unfold_interp_mrec;...] 0.04 secs (0.04u,0.s) -Chars 10968 - 10979 [(destruct~s).] 0. secs (0.u,0.s) +Chars 10871 - 10892 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) +Chars 10897 - 10923 [setoid_rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) +Chars 10928 - 10963 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.026u,0.s) +Chars 10968 - 10979 [destruct~s.] 0. secs (0.u,0.s) Chars 10980 - 10985 [taus.] 0. secs (0.u,0.s) -Chars 10991 - 11035 [(rewrite~<-~interp_mrec_bind,~...] 0.036 secs (0.036u,0.s) -Chars 11040 - 11050 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 11056 - 11076 [(constructor;~intros).] 0. secs (0.u,0.s) -Chars 11077 - 11092 [now~step;~taus.] 0.003 secs (0.003u,0.s) -Chars 11095 - 11099 [Qed.] 0.06 secs (0.059u,0.s) +Chars 10991 - 11035 [rewrite~<-~interp_mrec_bind,~<...] 0.024 secs (0.024u,0.s) +Chars 11040 - 11050 [apply~CIH.] 0. secs (0.u,0.s) +Chars 11056 - 11076 [constructor;~intros.] 0. secs (0.u,0.s) +Chars 11077 - 11092 [now~step;~taus.] 0.002 secs (0.002u,0.s) +Chars 11095 - 11099 [Qed.] 0.042 secs (0.042u,0.s) Chars 11101 - 11160 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) Chars 11161 - 11167 [Proof.] 0. secs (0.u,0.s) -Chars 11170 - 11195 [(split;~typeclasses~eauto).] 0. secs (0.u,0.s) +Chars 11170 - 11195 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) Chars 11196 - 11200 [Qed.] 0. secs (0.u,0.s) -Chars 11202 - 11222 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) +Chars 11202 - 11222 [End~HandlerCategory.] 0.002 secs (0.002u,0.s) diff --git a/theories/Interp/Interp.v.timing b/theories/Interp/Interp.v.timing index 6ca99700..78478513 100644 --- a/theories/Interp/Interp.v.timing +++ b/theories/Interp/Interp.v.timing @@ -1,7 +1,7 @@ Chars 1099 - 1172 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.054 secs (0.031u,0.009s) -Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.001u,0.s) +Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.027 secs (0.021u,0.005s) +Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.u,0.s) Chars 2077 - 2212 [Definition~translate~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 2214 - 2248 [Arguments~translate~{E~F}~&~h~...] 0. secs (0.u,0.s) -Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.002 secs (0.002u,0.s) +Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.004 secs (0.003u,0.s) Chars 2853 - 2893 [Arguments~interp~{E~M~FM~MM~IM...] 0. secs (0.u,0.s) diff --git a/theories/Interp/InterpFacts.v.timing b/theories/Interp/InterpFacts.v.timing index c1b6bdf9..fbdde3a7 100644 --- a/theories/Interp/InterpFacts.v.timing +++ b/theories/Interp/InterpFacts.v.timing @@ -1,16 +1,16 @@ -Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.011 secs (0.007u,0.003s) -Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.081 secs (0.066u,0.014s) +Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) +Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.052 secs (0.045u,0.007s) Chars 701 - 723 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 740 - 837 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 838 - 844 [Proof.] 0. secs (0.u,0.s) -Chars 847 - 865 [(unfold~eq_Handler).] 0. secs (0.u,0.s) -Chars 868 - 923 [(apply~(Equivalence_i_pointwis...] 0.001 secs (0.001u,0.s) +Chars 847 - 865 [unfold~eq_Handler.] 0. secs (0.u,0.s) +Chars 868 - 923 [apply~(Equivalence_i_pointwise...] 0.001 secs (0.001u,0.s) Chars 924 - 928 [Qed.] 0. secs (0.u,0.s) Chars 930 - 1031 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 1032 - 1038 [Proof.] 0. secs (0.u,0.s) -Chars 1041 - 1061 [(unfold~eutt_Handler).] 0. secs (0.u,0.s) -Chars 1064 - 1115 [(apply~(Equivalence_i_pointwis...] 0.001 secs (0.001u,0.s) +Chars 1041 - 1061 [unfold~eutt_Handler.] 0. secs (0.u,0.s) +Chars 1064 - 1115 [apply~(Equivalence_i_pointwise...] 0. secs (0.u,0.s) Chars 1116 - 1120 [Qed.] 0. secs (0.u,0.s) Chars 1122 - 1213 [Definition~Equivalence_eq2_Han...] 0. secs (0.u,0.s) Chars 1214 - 1220 [Proof.] 0. secs (0.u,0.s) @@ -19,323 +19,323 @@ Chars 1255 - 1259 [Qed.] 0. secs (0.u,0.s) Chars 1291 - 1505 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) Chars 1528 - 1634 [Lemma~unfold_interp~{E}~{F}~{R...] 0. secs (0.u,0.s) Chars 1635 - 1641 [Proof.] 0. secs (0.u,0.s) -Chars 1644 - 1688 [(unfold~interp,~Basics.iter,~M...] 0. secs (0.u,0.s) -Chars 1689 - 1709 [(rewrite~unfold_iter).] 0.004 secs (0.004u,0.s) -Chars 1712 - 1774 [(destruct~(observe~t);~cbn;~re...] 0.053 secs (0.052u,0.s) -Chars 1775 - 1796 [all:~(try~reflexivity).] 0. secs (0.u,0.s) -Chars 1797 - 1801 [Qed.] 0.004 secs (0.004u,0.s) +Chars 1644 - 1688 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) +Chars 1689 - 1709 [rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) +Chars 1712 - 1774 [destruct~(observe~t);~cbn;~rew...] 0.039 secs (0.039u,0.s) +Chars 1775 - 1796 [all:~try~reflexivity.] 0. secs (0.u,0.s) +Chars 1797 - 1801 [Qed.] 0.003 secs (0.003u,0.s) Chars 1936 - 2017 [Lemma~interp_ret~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2018 - 2024 [Proof.] 0. secs (0.u,0.s) -Chars 2025 - 2047 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) +Chars 2025 - 2047 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) Chars 2048 - 2060 [reflexivity.] 0. secs (0.u,0.s) -Chars 2061 - 2065 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2061 - 2065 [Qed.] 0. secs (0.u,0.s) Chars 2067 - 2179 [Lemma~interp_tau~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2180 - 2186 [Proof.] 0. secs (0.u,0.s) -Chars 2187 - 2209 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) +Chars 2187 - 2209 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) Chars 2210 - 2222 [reflexivity.] 0. secs (0.u,0.s) -Chars 2223 - 2227 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0.001 secs (0.001u,0.s) +Chars 2223 - 2227 [Qed.] 0. secs (0.u,0.s) +Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) Chars 2395 - 2401 [Proof.] 0. secs (0.u,0.s) -Chars 2402 - 2424 [(rewrite~unfold_interp).] 0.001 secs (0.001u,0.s) +Chars 2402 - 2424 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) Chars 2425 - 2437 [reflexivity.] 0. secs (0.u,0.s) -Chars 2438 - 2442 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2438 - 2442 [Qed.] 0. secs (0.u,0.s) Chars 2444 - 2581 [Lemma~interp_trigger~{E~F~:~Ty...] 0. secs (0.u,0.s) Chars 2582 - 2588 [Proof.] 0. secs (0.u,0.s) -Chars 2591 - 2612 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 2613 - 2632 [(rewrite~interp_vis).] 0.016 secs (0.013u,0.002s) -Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.02 secs (0.015u,0.004s) -Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.001s) -Chars 2691 - 2710 [(rewrite~bind_ret_r).] 0.011 secs (0.011u,0.s) +Chars 2591 - 2612 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 2613 - 2632 [rewrite~interp_vis.] 0.011 secs (0.009u,0.001s) +Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.014 secs (0.011u,0.002s) +Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.s) +Chars 2691 - 2710 [rewrite~bind_ret_r.] 0.007 secs (0.007u,0.s) Chars 2713 - 2725 [reflexivity.] 0. secs (0.u,0.s) -Chars 2726 - 2730 [Qed.] 0.002 secs (0.002u,0.s) +Chars 2726 - 2730 [Qed.] 0.002 secs (0.001u,0.s) Chars 2732 - 2775 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 2776 - 2819 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 2820 - 2867 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 2899 - 3058 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) Chars 3059 - 3065 [Proof.] 0. secs (0.u,0.s) -Chars 3068 - 3085 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) -Chars 3088 - 3106 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 3107 - 3114 [(intros).] 0. secs (0.u,0.s) -Chars 3118 - 3142 [(rewrite~2!unfold_interp).] 0.031 secs (0.03u,0.001s) -Chars 3145 - 3155 [step~in~H.] 0.001 secs (0.001u,0.s) -Chars 3160 - 3211 [(destruct~H;~cbn;~subst;~try~e...] 0.052 secs (0.052u,0.s) -Chars 3214 - 3252 [(unfold~eq_Handler,~i_pointwis...] 0. secs (0.u,0.s) -Chars 3256 - 3268 [(rewrite~Hfg).] 0.221 secs (0.218u,0.002s) +Chars 3068 - 3085 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) +Chars 3088 - 3106 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3107 - 3114 [intros.] 0. secs (0.u,0.s) +Chars 3118 - 3142 [rewrite~2!unfold_interp.] 0.022 secs (0.022u,0.s) +Chars 3145 - 3155 [step~in~H.] 0. secs (0.u,0.s) +Chars 3160 - 3211 [destruct~H;~cbn;~subst;~try~ea...] 0.038 secs (0.038u,0.s) +Chars 3214 - 3252 [unfold~eq_Handler,~i_pointwise...] 0. secs (0.u,0.s) +Chars 3256 - 3268 [rewrite~Hfg.] 0.155 secs (0.154u,0.s) Chars 3272 - 3279 [to_mon.] 0. secs (0.u,0.s) -Chars 3283 - 3289 [ebind.] 0.008 secs (0.008u,0.s) -Chars 3290 - 3305 [(intros~?~?~[=<-]).] 0.001 secs (0.001u,0.s) -Chars 3306 - 3311 [etau.] 0.002 secs (0.002u,0.s) -Chars 3313 - 3317 [Qed.] 0.014 secs (0.013u,0.s) -Chars 3319 - 3438 [#[global]~Instance~eq_itree_in...] 0.001 secs (0.u,0.s) +Chars 3283 - 3289 [ebind.] 0.006 secs (0.006u,0.s) +Chars 3290 - 3305 [intros~?~?~[=<-].] 0. secs (0.u,0.s) +Chars 3306 - 3311 [etau.] 0.001 secs (0.001u,0.s) +Chars 3313 - 3317 [Qed.] 0.008 secs (0.008u,0.s) +Chars 3319 - 3438 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) Chars 3439 - 3445 [Proof.] 0. secs (0.u,0.s) -Chars 3448 - 3459 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3462 - 3485 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) +Chars 3448 - 3459 [repeat~red.] 0. secs (0.u,0.s) +Chars 3462 - 3485 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) Chars 3488 - 3500 [reflexivity.] 0. secs (0.u,0.s) -Chars 3501 - 3505 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3501 - 3505 [Qed.] 0. secs (0.u,0.s) Chars 3507 - 3666 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 3667 - 3673 [Proof.] 0. secs (0.u,0.s) -Chars 3676 - 3687 [(repeat~red).] 0. secs (0.u,0.s) +Chars 3676 - 3687 [repeat~red.] 0. secs (0.u,0.s) Chars 3690 - 3705 [intros~until~T.] 0. secs (0.u,0.s) -Chars 3708 - 3720 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3721 - 3728 [(intros).] 0. secs (0.u,0.s) -Chars 3731 - 3754 [(rewrite~!unfold_interp).] 0.04 secs (0.036u,0.004s) -Chars 3755 - 3766 [step~in~H0.] 0.001 secs (0.u,0.s) -Chars 3770 - 3829 [(induction~H0;~intros;~subst;~...] 0.401 secs (0.385u,0.009s) -Chars 3835 - 3858 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 3708 - 3720 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 3721 - 3728 [intros.] 0. secs (0.u,0.s) +Chars 3731 - 3754 [rewrite~!unfold_interp.] 0.022 secs (0.022u,0.s) +Chars 3755 - 3766 [step~in~H0.] 0. secs (0.u,0.s) +Chars 3770 - 3829 [induction~H0;~intros;~subst;~c...] 0.278 secs (0.274u,0.001s) +Chars 3835 - 3858 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) Chars 3862 - 3863 [-] 0. secs (0.u,0.s) -Chars 3864 - 3874 [(do~2~step).] 0.014 secs (0.014u,0.s) -Chars 3875 - 3883 [(apply~H).] 0. secs (0.u,0.s) +Chars 3864 - 3874 [do~2~step.] 0.01 secs (0.01u,0.s) +Chars 3875 - 3883 [apply~H.] 0. secs (0.u,0.s) Chars 3887 - 3888 [-] 0. secs (0.u,0.s) -Chars 3889 - 3904 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) -Chars 3905 - 3928 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 3889 - 3904 [intros~?~?~[=<-].] 0. secs (0.u,0.s) +Chars 3905 - 3928 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 3932 - 3933 [-] 0. secs (0.u,0.s) Chars 3934 - 3939 [taul.] 0. secs (0.u,0.s) Chars 3940 - 3947 [to_mon.] 0. secs (0.u,0.s) -Chars 3948 - 3970 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 3971 - 3985 [(apply~IHeqitF).] 0. secs (0.u,0.s) +Chars 3948 - 3970 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 3971 - 3985 [apply~IHeqitF.] 0. secs (0.u,0.s) Chars 3989 - 3990 [-] 0. secs (0.u,0.s) Chars 3991 - 3996 [taur.] 0. secs (0.u,0.s) Chars 3997 - 4004 [to_mon.] 0. secs (0.u,0.s) -Chars 4005 - 4027 [(rewrite~unfold_interp).] 0.016 secs (0.016u,0.s) -Chars 4028 - 4042 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4044 - 4048 [Qed.] 0.012 secs (0.012u,0.s) -Chars 4051 - 4293 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) +Chars 4005 - 4027 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) +Chars 4028 - 4042 [apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 4044 - 4048 [Qed.] 0.008 secs (0.008u,0.s) +Chars 4051 - 4293 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 4294 - 4300 [Proof.] 0. secs (0.u,0.s) -Chars 4303 - 4314 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4303 - 4314 [repeat~red.] 0. secs (0.u,0.s) Chars 4317 - 4332 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4335 - 4347 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4348 - 4355 [(intros).] 0. secs (0.u,0.s) -Chars 4358 - 4381 [(rewrite~!unfold_interp).] 0.022 secs (0.021u,0.s) +Chars 4335 - 4347 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4348 - 4355 [intros.] 0. secs (0.u,0.s) +Chars 4358 - 4381 [rewrite~!unfold_interp.] 0.014 secs (0.014u,0.s) Chars 4382 - 4393 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4397 - 4466 [(induction~H0;~intros;~subst;~...] 0.269 secs (0.265u,0.002s) -Chars 4469 - 4492 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) +Chars 4397 - 4466 [induction~H0;~intros;~subst;~c...] 0.182 secs (0.181u,0.001s) +Chars 4469 - 4492 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) Chars 4496 - 4497 [-] 0. secs (0.u,0.s) -Chars 4498 - 4508 [(do~2~step).] 0.015 secs (0.015u,0.s) -Chars 4509 - 4517 [(apply~H).] 0. secs (0.u,0.s) +Chars 4498 - 4508 [do~2~step.] 0.01 secs (0.01u,0.s) +Chars 4509 - 4517 [apply~H.] 0. secs (0.u,0.s) Chars 4521 - 4522 [-] 0. secs (0.u,0.s) -Chars 4523 - 4538 [(intros~?~?~[=<-]).] 0. secs (0.u,0.s) -Chars 4539 - 4562 [(taus;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 4523 - 4538 [intros~?~?~[=<-].] 0. secs (0.u,0.s) +Chars 4539 - 4562 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 4566 - 4567 [-] 0. secs (0.u,0.s) Chars 4568 - 4573 [taul.] 0. secs (0.u,0.s) Chars 4574 - 4581 [to_mon.] 0. secs (0.u,0.s) -Chars 4582 - 4604 [(rewrite~unfold_interp).] 0.014 secs (0.014u,0.s) -Chars 4605 - 4619 [(apply~IHeqitF).] 0. secs (0.u,0.s) -Chars 4621 - 4625 [Qed.] 0.013 secs (0.013u,0.s) +Chars 4582 - 4604 [rewrite~unfold_interp.] 0.01 secs (0.009u,0.s) +Chars 4605 - 4619 [apply~IHeqitF.] 0. secs (0.u,0.s) +Chars 4621 - 4625 [Qed.] 0.008 secs (0.008u,0.s) Chars 4627 - 4805 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 4806 - 4812 [Proof.] 0. secs (0.u,0.s) -Chars 4815 - 4826 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4829 - 4841 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4842 - 4849 [(intros).] 0. secs (0.u,0.s) -Chars 4852 - 4875 [(rewrite~!unfold_interp).] 0.032 secs (0.031u,0.s) +Chars 4815 - 4826 [repeat~red.] 0. secs (0.u,0.s) +Chars 4829 - 4841 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 4842 - 4849 [intros.] 0. secs (0.u,0.s) +Chars 4852 - 4875 [rewrite~!unfold_interp.] 0.022 secs (0.022u,0.s) Chars 4878 - 4888 [step~in~H.] 0. secs (0.u,0.s) -Chars 4891 - 4944 [(induction~H;~cbn;~try~easy;~e...] 0.44 secs (0.436u,0.003s) +Chars 4891 - 4944 [induction~H;~cbn;~try~easy;~ea...] 0.303 secs (0.302u,0.001s) Chars 4948 - 4949 [-] 0. secs (0.u,0.s) -Chars 4950 - 4956 [ebind.] 0.022 secs (0.022u,0.s) -Chars 4957 - 4995 [(intros;~subst;~taus;~eauto~wi...] 0.005 secs (0.004u,0.s) +Chars 4950 - 4956 [ebind.] 0.015 secs (0.014u,0.s) +Chars 4957 - 4995 [intros;~subst;~taus;~eauto~wit...] 0.003 secs (0.003u,0.s) Chars 4999 - 5000 [-] 0. secs (0.u,0.s) -Chars 5001 - 5023 [(rewrite~unfold_interp).] 0.017 secs (0.016u,0.s) +Chars 5001 - 5023 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) Chars 5024 - 5033 [now~taul.] 0. secs (0.u,0.s) Chars 5037 - 5038 [-] 0. secs (0.u,0.s) -Chars 5039 - 5061 [(rewrite~unfold_interp).] 0.018 secs (0.018u,0.s) +Chars 5039 - 5061 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) Chars 5062 - 5071 [now~taur.] 0. secs (0.u,0.s) -Chars 5073 - 5077 [Qed.] 0.011 secs (0.011u,0.s) -Chars 5079 - 5242 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) +Chars 5073 - 5077 [Qed.] 0.007 secs (0.007u,0.s) +Chars 5079 - 5242 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 5243 - 5249 [Proof.] 0. secs (0.u,0.s) -Chars 5252 - 5263 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5264 - 5284 [(apply~euttge_interp).] 0. secs (0.u,0.s) +Chars 5252 - 5263 [repeat~red.] 0. secs (0.u,0.s) +Chars 5264 - 5284 [apply~euttge_interp.] 0. secs (0.u,0.s) Chars 5285 - 5297 [reflexivity.] 0. secs (0.u,0.s) -Chars 5298 - 5302 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5767 - 5945 [Lemma~interp_bind~{E}~{F}~{R}~...] 0.001 secs (0.001u,0.s) +Chars 5298 - 5302 [Qed.] 0. secs (0.u,0.s) +Chars 5767 - 5945 [Lemma~interp_bind~{E}~{F}~{R}~...] 0. secs (0.u,0.s) Chars 5946 - 5952 [Proof.] 0. secs (0.u,0.s) Chars 5955 - 5968 [revert~R~t~k.] 0. secs (0.u,0.s) -Chars 5969 - 5989 [(coinduction;~intros).] 0.002 secs (0.002u,0.s) -Chars 5993 - 6032 [(rewrite~unfold_bind,~(unfold_...] 0.039 secs (0.038u,0.s) -Chars 6035 - 6069 [(destruct~(observe~t);~cbn;~to...] 0.003 secs (0.003u,0.s) +Chars 5969 - 5989 [coinduction;~intros.] 0.001 secs (0.001u,0.s) +Chars 5993 - 6032 [rewrite~unfold_bind,~(unfold_i...] 0.024 secs (0.024u,0.s) +Chars 6035 - 6069 [destruct~(observe~t);~cbn;~to_...] 0.001 secs (0.001u,0.s) Chars 6073 - 6074 [-] 0. secs (0.u,0.s) -Chars 6075 - 6094 [(rewrite~bind_ret_l).] 0.019 secs (0.019u,0.s) -Chars 6095 - 6113 [(apply~reflexivity).] 0.001 secs (0.001u,0.s) +Chars 6075 - 6094 [rewrite~bind_ret_l.] 0.012 secs (0.012u,0.s) +Chars 6095 - 6113 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 6116 - 6117 [-] 0. secs (0.u,0.s) Chars 6118 - 6123 [taus.] 0. secs (0.u,0.s) Chars 6124 - 6135 [fold_subst.] 0. secs (0.u,0.s) -Chars 6136 - 6146 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6136 - 6146 [apply~CIH.] 0. secs (0.u,0.s) Chars 6150 - 6151 [-] 0. secs (0.u,0.s) -Chars 6152 - 6182 [(rewrite~interp_vis,~bind_bind).] 0.035 secs (0.034u,0.s) -Chars 6183 - 6189 [ebind.] 0.009 secs (0.009u,0.s) -Chars 6195 - 6209 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 6214 - 6231 [(rewrite~bind_tau).] 0.02 secs (0.02u,0.s) +Chars 6152 - 6182 [rewrite~interp_vis,~bind_bind.] 0.023 secs (0.023u,0.s) +Chars 6183 - 6189 [ebind.] 0.005 secs (0.005u,0.s) +Chars 6195 - 6209 [intros;~subst.] 0. secs (0.u,0.s) +Chars 6214 - 6231 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) Chars 6232 - 6237 [taus.] 0. secs (0.u,0.s) -Chars 6238 - 6248 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6250 - 6254 [Qed.] 0.014 secs (0.014u,0.s) +Chars 6238 - 6248 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6250 - 6254 [Qed.] 0.008 secs (0.008u,0.s) Chars 6256 - 6300 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 6338 - 6405 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) Chars 6406 - 6412 [Proof.] 0. secs (0.u,0.s) Chars 6415 - 6424 [revert~t.] 0. secs (0.u,0.s) -Chars 6425 - 6437 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 6438 - 6445 [(intros).] 0. secs (0.u,0.s) -Chars 6448 - 6485 [(rewrite~(itree_eta~t),~unfold...] 0.03 secs (0.03u,0.s) -Chars 6488 - 6514 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) +Chars 6425 - 6437 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 6438 - 6445 [intros.] 0. secs (0.u,0.s) +Chars 6448 - 6485 [rewrite~(itree_eta~t),~unfold_...] 0.019 secs (0.019u,0.s) +Chars 6488 - 6514 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) Chars 6519 - 6520 [-] 0. secs (0.u,0.s) -Chars 6521 - 6533 [reflexivity.] 0.001 secs (0.001u,0.s) +Chars 6521 - 6533 [reflexivity.] 0. secs (0.u,0.s) Chars 6537 - 6538 [-] 0. secs (0.u,0.s) Chars 6539 - 6544 [taus.] 0. secs (0.u,0.s) -Chars 6545 - 6555 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 6545 - 6555 [apply~CIH.] 0. secs (0.u,0.s) Chars 6559 - 6560 [-] 0. secs (0.u,0.s) Chars 6561 - 6573 [constructor.] 0. secs (0.u,0.s) Chars 6574 - 6580 [intro.] 0. secs (0.u,0.s) Chars 6581 - 6592 [fold_subst.] 0. secs (0.u,0.s) -Chars 6595 - 6625 [(rewrite~bind_ret_,~tau_euttge).] 0.018 secs (0.017u,0.s) -Chars 6626 - 6636 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6638 - 6642 [Qed.] 0.009 secs (0.008u,0.s) +Chars 6595 - 6625 [rewrite~bind_ret_,~tau_euttge.] 0.009 secs (0.009u,0.s) +Chars 6626 - 6636 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6638 - 6642 [Qed.] 0.006 secs (0.006u,0.s) Chars 6644 - 6722 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) Chars 6723 - 6729 [Proof.] 0. secs (0.u,0.s) Chars 6732 - 6741 [revert~t.] 0. secs (0.u,0.s) -Chars 6742 - 6754 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 6755 - 6762 [(intros).] 0. secs (0.u,0.s) -Chars 6765 - 6787 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 6788 - 6815 [(rewrite~(itree_eta~t)~~at~2).] 0.015 secs (0.015u,0.s) -Chars 6818 - 6862 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.005u,0.s) -Chars 6866 - 6885 [(constructor;~intro).] 0. secs (0.u,0.s) +Chars 6742 - 6754 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 6755 - 6762 [intros.] 0. secs (0.u,0.s) +Chars 6765 - 6787 [rewrite~unfold_interp.] 0.009 secs (0.009u,0.s) +Chars 6788 - 6815 [rewrite~(itree_eta~t)~~at~2.] 0.01 secs (0.01u,0.s) +Chars 6818 - 6862 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) +Chars 6866 - 6885 [constructor;~intro.] 0. secs (0.u,0.s) Chars 6886 - 6897 [fold_subst.] 0. secs (0.u,0.s) -Chars 6901 - 6932 [(rewrite~bind_ret_l,~tau_euttge).] 0.016 secs (0.016u,0.s) -Chars 6935 - 6945 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 6947 - 6951 [Qed.] 0.007 secs (0.007u,0.s) -Chars 6988 - 7159 [Theorem~interp_interp~{E}~{F}~...] 0.001 secs (0.001u,0.s) +Chars 6901 - 6932 [rewrite~bind_ret_l,~tau_euttge.] 0.01 secs (0.01u,0.s) +Chars 6935 - 6945 [apply~CIH.] 0. secs (0.u,0.s) +Chars 6947 - 6951 [Qed.] 0.005 secs (0.005u,0.s) +Chars 6988 - 7159 [Theorem~interp_interp~{E}~{F}~...] 0. secs (0.u,0.s) Chars 7160 - 7166 [Proof.] 0. secs (0.u,0.s) -Chars 7169 - 7181 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7182 - 7189 [(intros).] 0. secs (0.u,0.s) -Chars 7193 - 7221 [(rewrite~2!(unfold_interp~t)).] 0.032 secs (0.032u,0.s) -Chars 7224 - 7268 [(destruct~(observe~t);~cbn;~ea...] 0.006 secs (0.006u,0.s) +Chars 7169 - 7181 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 7182 - 7189 [intros.] 0. secs (0.u,0.s) +Chars 7193 - 7221 [rewrite~2!(unfold_interp~t).] 0.023 secs (0.023u,0.s) +Chars 7224 - 7268 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) Chars 7272 - 7279 [to_mon.] 0. secs (0.u,0.s) -Chars 7280 - 7300 [(rewrite~interp_bind).] 0.015 secs (0.015u,0.s) -Chars 7301 - 7307 [ebind.] 0.008 secs (0.008u,0.s) -Chars 7308 - 7322 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 7327 - 7346 [(rewrite~interp_tau).] 0.016 secs (0.015u,0.s) +Chars 7280 - 7300 [rewrite~interp_bind.] 0.011 secs (0.011u,0.s) +Chars 7301 - 7307 [ebind.] 0.005 secs (0.005u,0.s) +Chars 7308 - 7322 [intros;~subst.] 0. secs (0.u,0.s) +Chars 7327 - 7346 [rewrite~interp_tau.] 0.011 secs (0.011u,0.s) Chars 7347 - 7352 [taus.] 0. secs (0.u,0.s) -Chars 7353 - 7363 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7367 - 7371 [Qed.] 0.01 secs (0.01u,0.s) -Chars 7373 - 7523 [Lemma~interp_translate~{E}~{F}...] 0.001 secs (0.001u,0.s) +Chars 7353 - 7363 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7367 - 7371 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7373 - 7523 [Lemma~interp_translate~{E}~{F}...] 0. secs (0.u,0.s) Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) Chars 7533 - 7542 [revert~t.] 0. secs (0.u,0.s) -Chars 7547 - 7559 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7563 - 7572 [(intros~t).] 0. secs (0.u,0.s) -Chars 7575 - 7598 [(rewrite~!unfold_interp).] 0.032 secs (0.032u,0.s) -Chars 7599 - 7614 [(unfold~_interp).] 0. secs (0.u,0.s) -Chars 7617 - 7643 [(rewrite~unfold_translate_).] 0.012 secs (0.012u,0.s) -Chars 7644 - 7662 [(unfold~translateF).] 0. secs (0.u,0.s) -Chars 7665 - 7691 [(destruct~(observe~t);~cbn).] 0.001 secs (0.001u,0.s) +Chars 7547 - 7559 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 7563 - 7572 [intros~t.] 0. secs (0.u,0.s) +Chars 7575 - 7598 [rewrite~!unfold_interp.] 0.024 secs (0.023u,0.s) +Chars 7599 - 7614 [unfold~_interp.] 0. secs (0.u,0.s) +Chars 7617 - 7643 [rewrite~unfold_translate_.] 0.008 secs (0.008u,0.s) +Chars 7644 - 7662 [unfold~translateF.] 0. secs (0.u,0.s) +Chars 7665 - 7691 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) Chars 7694 - 7695 [-] 0. secs (0.u,0.s) -Chars 7696 - 7714 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 7696 - 7714 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 7758 - 7759 [-] 0. secs (0.u,0.s) Chars 7760 - 7765 [taus.] 0. secs (0.u,0.s) -Chars 7766 - 7776 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 7766 - 7776 [apply~CIH.] 0. secs (0.u,0.s) Chars 7780 - 7781 [-] 0. secs (0.u,0.s) Chars 7782 - 7789 [to_mon.] 0. secs (0.u,0.s) -Chars 7790 - 7796 [ebind.] 0.007 secs (0.007u,0.s) -Chars 7797 - 7811 [(intros;~subst).] 0. secs (0.u,0.s) +Chars 7790 - 7796 [ebind.] 0.006 secs (0.006u,0.s) +Chars 7797 - 7811 [intros;~subst.] 0. secs (0.u,0.s) Chars 7812 - 7817 [taus.] 0. secs (0.u,0.s) -Chars 7818 - 7828 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7831 - 7835 [Qed.] 0.01 secs (0.009u,0.s) -Chars 7837 - 7966 [Lemma~translate_to_interp~{E}~...] 0.001 secs (0.001u,0.s) +Chars 7818 - 7828 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7831 - 7835 [Qed.] 0.006 secs (0.006u,0.s) +Chars 7837 - 7966 [Lemma~translate_to_interp~{E}~...] 0. secs (0.u,0.s) Chars 7967 - 7973 [Proof.] 0. secs (0.u,0.s) Chars 7976 - 7985 [revert~t.] 0. secs (0.u,0.s) -Chars 7986 - 7998 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7999 - 8006 [(intros).] 0. secs (0.u,0.s) -Chars 8009 - 8034 [(rewrite~unfold_translate).] 0.014 secs (0.014u,0.s) -Chars 8037 - 8059 [(rewrite~unfold_interp).] 0.014 secs (0.014u,0.s) -Chars 8062 - 8106 [(destruct~(observe~t);~cbn;~ea...] 0.005 secs (0.005u,0.s) +Chars 7986 - 7998 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 7999 - 8006 [intros.] 0. secs (0.u,0.s) +Chars 8009 - 8034 [rewrite~unfold_translate.] 0.009 secs (0.009u,0.s) +Chars 8037 - 8059 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) +Chars 8062 - 8106 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) Chars 8110 - 8122 [constructor.] 0. secs (0.u,0.s) Chars 8123 - 8129 [intro.] 0. secs (0.u,0.s) -Chars 8130 - 8141 [fold_subst.] 0.001 secs (0.001u,0.s) -Chars 8145 - 8176 [(rewrite~bind_ret_l,~tau_euttge).] 0.016 secs (0.016u,0.s) -Chars 8177 - 8187 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8189 - 8193 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8130 - 8141 [fold_subst.] 0. secs (0.u,0.s) +Chars 8145 - 8176 [rewrite~bind_ret_l,~tau_euttge.] 0.012 secs (0.012u,0.s) +Chars 8177 - 8187 [apply~CIH.] 0. secs (0.u,0.s) +Chars 8189 - 8193 [Qed.] 0.005 secs (0.005u,0.s) Chars 8195 - 8340 [Lemma~interp_forever~{E}~{F}~(...] 0. secs (0.u,0.s) Chars 8341 - 8347 [Proof.] 0. secs (0.u,0.s) -Chars 8350 - 8362 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 8366 - 8393 [(rewrite~(unfold_forever~t)).] 0.014 secs (0.014u,0.s) -Chars 8396 - 8434 [(rewrite~(unfold_forever~(inte...] 0.017 secs (0.016u,0.s) -Chars 8437 - 8457 [(rewrite~interp_bind).] 0.014 secs (0.014u,0.s) -Chars 8460 - 8466 [ebind.] 0.007 secs (0.007u,0.s) -Chars 8467 - 8481 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 8484 - 8503 [(rewrite~interp_tau).] 0.016 secs (0.016u,0.s) +Chars 8350 - 8362 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 8366 - 8393 [rewrite~(unfold_forever~t).] 0.01 secs (0.01u,0.s) +Chars 8396 - 8434 [rewrite~(unfold_forever~(inter...] 0.012 secs (0.012u,0.s) +Chars 8437 - 8457 [rewrite~interp_bind.] 0.01 secs (0.01u,0.s) +Chars 8460 - 8466 [ebind.] 0.005 secs (0.005u,0.s) +Chars 8467 - 8481 [intros;~subst.] 0. secs (0.u,0.s) +Chars 8484 - 8503 [rewrite~interp_tau.] 0.011 secs (0.011u,0.s) Chars 8506 - 8511 [taus.] 0. secs (0.u,0.s) -Chars 8512 - 8522 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 8524 - 8528 [Qed.] 0.006 secs (0.005u,0.s) -Chars 8530 - 8775 [Lemma~interp_iter'~{E}~{F}~(f~...] 0.001 secs (0.001u,0.s) +Chars 8512 - 8522 [apply~CIH.] 0. secs (0.u,0.s) +Chars 8524 - 8528 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8530 - 8775 [Lemma~interp_iter'~{E}~{F}~(f~...] 0. secs (0.u,0.s) Chars 8776 - 8782 [Proof.] 0. secs (0.u,0.s) -Chars 8785 - 8807 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) -Chars 8811 - 8833 [(rewrite~2!unfold_iter).] 0.034 secs (0.034u,0.s) -Chars 8836 - 8856 [(rewrite~interp_bind).] 0.016 secs (0.016u,0.s) -Chars 8859 - 8865 [ebind.] 0.009 secs (0.008u,0.s) +Chars 8785 - 8807 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) +Chars 8811 - 8833 [rewrite~2!unfold_iter.] 0.022 secs (0.022u,0.s) +Chars 8836 - 8856 [rewrite~interp_bind.] 0.01 secs (0.01u,0.s) +Chars 8859 - 8865 [ebind.] 0.005 secs (0.005u,0.s) Chars 8869 - 8870 [{] 0. secs (0.u,0.s) -Chars 8871 - 8881 [(do~2~step).] 0.015 secs (0.015u,0.s) -Chars 8882 - 8893 [(apply~EQ_t).] 0. secs (0.u,0.s) +Chars 8871 - 8881 [do~2~step.] 0.011 secs (0.011u,0.s) +Chars 8882 - 8893 [apply~EQ_t.] 0. secs (0.u,0.s) Chars 8894 - 8895 [}] 0. secs (0.u,0.s) -Chars 8898 - 8926 [(intros~[]~_~[];~cbn;~to_mon).] 0.002 secs (0.002u,0.s) +Chars 8898 - 8926 [intros~[]~_~[];~cbn;~to_mon.] 0.001 secs (0.001u,0.s) Chars 8930 - 8931 [-] 0. secs (0.u,0.s) Chars 8932 - 8937 [taus.] 0. secs (0.u,0.s) -Chars 8938 - 8948 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 8938 - 8948 [apply~CIH.] 0. secs (0.u,0.s) Chars 8952 - 8953 [-] 0. secs (0.u,0.s) -Chars 8954 - 8966 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8968 - 8972 [Qed.] 0.008 secs (0.008u,0.s) +Chars 8954 - 8966 [reflexivity.] 0. secs (0.u,0.s) +Chars 8968 - 8972 [Qed.] 0.005 secs (0.005u,0.s) Chars 8974 - 9152 [Lemma~interp_iter~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) Chars 9153 - 9159 [Proof.] 0. secs (0.u,0.s) -Chars 9162 - 9218 [(unfold~iter,~Iter_Kleisli,~Ba...] 0. secs (0.u,0.s) -Chars 9221 - 9240 [(apply~interp_iter').] 0. secs (0.u,0.s) +Chars 9162 - 9218 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) +Chars 9221 - 9240 [apply~interp_iter'.] 0. secs (0.u,0.s) Chars 9243 - 9255 [reflexivity.] 0. secs (0.u,0.s) -Chars 9256 - 9260 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9262 - 9482 [Lemma~interp_iter'_eutt~{E}~{F...] 0.001 secs (0.001u,0.s) +Chars 9256 - 9260 [Qed.] 0. secs (0.u,0.s) +Chars 9262 - 9482 [Lemma~interp_iter'_eutt~{E}~{F...] 0. secs (0.u,0.s) Chars 9483 - 9489 [Proof.] 0. secs (0.u,0.s) -Chars 9492 - 9514 [(coinduction;~intros~i).] 0.002 secs (0.002u,0.s) -Chars 9518 - 9540 [(rewrite~2!unfold_iter).] 0.032 secs (0.031u,0.s) -Chars 9543 - 9563 [(rewrite~interp_bind).] 0.014 secs (0.014u,0.s) -Chars 9566 - 9572 [ebind.] 0.007 secs (0.007u,0.s) -Chars 9576 - 9586 [(do~2~step).] 0.015 secs (0.015u,0.s) -Chars 9587 - 9597 [(apply~Heq).] 0. secs (0.u,0.s) -Chars 9600 - 9620 [(intros~[]~_~[];~cbn).] 0.001 secs (0.001u,0.s) +Chars 9492 - 9514 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) +Chars 9518 - 9540 [rewrite~2!unfold_iter.] 0.021 secs (0.02u,0.s) +Chars 9543 - 9563 [rewrite~interp_bind.] 0.009 secs (0.009u,0.s) +Chars 9566 - 9572 [ebind.] 0.005 secs (0.005u,0.s) +Chars 9576 - 9586 [do~2~step.] 0.01 secs (0.01u,0.s) +Chars 9587 - 9597 [apply~Heq.] 0. secs (0.u,0.s) +Chars 9600 - 9620 [intros~[]~_~[];~cbn.] 0.001 secs (0.001u,0.s) Chars 9623 - 9624 [-] 0. secs (0.u,0.s) Chars 9625 - 9630 [taus.] 0. secs (0.u,0.s) -Chars 9631 - 9641 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 9631 - 9641 [apply~CIH.] 0. secs (0.u,0.s) Chars 9645 - 9646 [-] 0. secs (0.u,0.s) -Chars 9647 - 9659 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9661 - 9665 [Qed.] 0.007 secs (0.007u,0.s) -Chars 9667 - 9850 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.002 secs (0.002u,0.s) +Chars 9647 - 9659 [reflexivity.] 0. secs (0.u,0.s) +Chars 9661 - 9665 [Qed.] 0.006 secs (0.006u,0.s) +Chars 9667 - 9850 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) Chars 9851 - 9857 [Proof.] 0. secs (0.u,0.s) -Chars 9860 - 9872 [(unfold~loop).] 0. secs (0.u,0.s) -Chars 9873 - 9913 [(unfold~cat,~Cat_Kleisli,~ITre...] 0. secs (0.u,0.s) -Chars 9916 - 9936 [(rewrite~interp_bind).] 0.005 secs (0.004u,0.s) -Chars 9939 - 9955 [(apply~eqit_bind).] 0. secs (0.u,0.s) +Chars 9860 - 9872 [unfold~loop.] 0. secs (0.u,0.s) +Chars 9873 - 9913 [unfold~cat,~Cat_Kleisli,~ITree...] 0. secs (0.u,0.s) +Chars 9916 - 9936 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) +Chars 9939 - 9955 [apply~eqit_bind.] 0. secs (0.u,0.s) Chars 9958 - 9959 [{] 0. secs (0.u,0.s) -Chars 9960 - 10008 [(unfold~inr_,~Inr_Kleisli,~lif...] 0. secs (0.u,0.s) -Chars 10013 - 10032 [(rewrite~interp_ret).] 0.002 secs (0.002u,0.s) +Chars 9960 - 10008 [unfold~inr_,~Inr_Kleisli,~lift...] 0. secs (0.u,0.s) +Chars 10013 - 10032 [rewrite~interp_ret.] 0.001 secs (0.001u,0.s) Chars 10037 - 10049 [reflexivity.] 0. secs (0.u,0.s) Chars 10052 - 10053 [}] 0. secs (0.u,0.s) -Chars 10056 - 10069 [(repeat~intro).] 0. secs (0.u,0.s) -Chars 10072 - 10092 [(rewrite~interp_iter).] 0.004 secs (0.004u,0.s) -Chars 10095 - 10115 [(apply~eq_itree_iter).] 0. secs (0.u,0.s) -Chars 10118 - 10132 [(intros~?~?~[]).] 0. secs (0.u,0.s) -Chars 10135 - 10155 [(rewrite~interp_bind).] 0.004 secs (0.004u,0.s) -Chars 10158 - 10191 [(apply~eqit_bind;~try~reflexiv...] 0.001 secs (0.001u,0.s) -Chars 10194 - 10209 [(intros~[];~cbn).] 0. secs (0.u,0.s) -Chars 10210 - 10221 [(unfold~cat).] 0. secs (0.u,0.s) -Chars 10222 - 10242 [(rewrite~interp_bind).] 0.003 secs (0.003u,0.s) +Chars 10056 - 10069 [repeat~intro.] 0. secs (0.u,0.s) +Chars 10072 - 10092 [rewrite~interp_iter.] 0.003 secs (0.003u,0.s) +Chars 10095 - 10115 [apply~eq_itree_iter.] 0. secs (0.u,0.s) +Chars 10118 - 10132 [intros~?~?~[].] 0. secs (0.u,0.s) +Chars 10135 - 10155 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) +Chars 10158 - 10191 [apply~eqit_bind;~try~reflexivity.] 0.001 secs (0.001u,0.s) +Chars 10194 - 10209 [intros~[];~cbn.] 0. secs (0.u,0.s) +Chars 10210 - 10221 [unfold~cat.] 0. secs (0.u,0.s) +Chars 10222 - 10242 [rewrite~interp_bind.] 0.002 secs (0.002u,0.s) Chars 10245 - 10246 [-] 0. secs (0.u,0.s) -Chars 10247 - 10308 [(unfold~inl_,~Inl_Kleisli,~inr...] 0. secs (0.u,0.s) -Chars 10313 - 10357 [(rewrite~interp_ret,~!bind_ret...] 0.015 secs (0.014u,0.s) +Chars 10247 - 10308 [unfold~inl_,~Inl_Kleisli,~inr_...] 0. secs (0.u,0.s) +Chars 10313 - 10357 [rewrite~interp_ret,~!bind_ret_...] 0.01 secs (0.01u,0.s) Chars 10362 - 10374 [reflexivity.] 0. secs (0.u,0.s) Chars 10377 - 10378 [-] 0. secs (0.u,0.s) -Chars 10379 - 10449 [(unfold~cat,~id_,~Id_Kleisli,~...] 0. secs (0.u,0.s) -Chars 10454 - 10511 [(rewrite~interp_bind,~interp_r...] 0.016 secs (0.015u,0.s) +Chars 10379 - 10449 [unfold~cat,~id_,~Id_Kleisli,~i...] 0. secs (0.u,0.s) +Chars 10454 - 10511 [rewrite~interp_bind,~interp_re...] 0.012 secs (0.012u,0.s) Chars 10516 - 10528 [reflexivity.] 0. secs (0.u,0.s) -Chars 10529 - 10533 [Qed.] 0.01 secs (0.01u,0.s) +Chars 10529 - 10533 [Qed.] 0.008 secs (0.008u,0.s) Chars 10535 - 10684 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) Chars 10685 - 10691 [Proof.] 0. secs (0.u,0.s) -Chars 10694 - 10722 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) -Chars 10725 - 10751 [(rewrite~interp_iter'_eutt).] 0.001 secs (0.001u,0.s) +Chars 10694 - 10722 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) +Chars 10725 - 10751 [rewrite~interp_iter'_eutt.] 0.001 secs (0.001u,0.s) Chars 10752 - 10764 [reflexivity.] 0. secs (0.u,0.s) Chars 10765 - 10773 [clear~i.] 0. secs (0.u,0.s) -Chars 10776 - 10785 [(intros~i).] 0. secs (0.u,0.s) -Chars 10786 - 10790 [(cbn).] 0. secs (0.u,0.s) -Chars 10791 - 10819 [(rewrite~translate_to_interp).] 0.001 secs (0.001u,0.s) +Chars 10776 - 10785 [intros~i.] 0. secs (0.u,0.s) +Chars 10786 - 10790 [cbn.] 0. secs (0.u,0.s) +Chars 10791 - 10819 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) Chars 10820 - 10832 [reflexivity.] 0. secs (0.u,0.s) Chars 10833 - 10837 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Interp/Recursion.v.timing b/theories/Interp/Recursion.v.timing index 2a02d1bc..e71c3286 100644 --- a/theories/Interp/Recursion.v.timing +++ b/theories/Interp/Recursion.v.timing @@ -1,7 +1,7 @@ -Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.043 secs (0.034u,0.008s) +Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.03 secs (0.024u,0.005s) Chars 128 - 150 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 151 - 183 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.003 secs (0.002u,0.s) +Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.002 secs (0.002u,0.s) Chars 2132 - 2170 [Arguments~interp_mrec~{D~E}~&~...] 0. secs (0.u,0.s) Chars 2276 - 2409 [Definition~mrec~{D~E~:~Type~->...] 0. secs (0.u,0.s) Chars 2411 - 2442 [Arguments~mrec~{D~E}~&~ctx~[T].] 0. secs (0.u,0.s) @@ -13,7 +13,7 @@ Chars 2952 - 2979 [Arguments~mrec_fix~{D~E}~&.] 0. secs (0.u,0.s) Chars 2981 - 3136 [Notation~"'mrec-fix'~f~d~:=~g"...] 0. secs (0.u,0.s) Chars 3209 - 3282 [Inductive~callE~(A~B~:~Type)~:...] 0. secs (0.u,0.s) Chars 3284 - 3305 [Arguments~Call~{A~B}.] 0. secs (0.u,0.s) -Chars 3354 - 3442 [Definition~unCall~{A}~{B}~{T}~...] 0. secs (0.u,0.s) +Chars 3354 - 3442 [Definition~unCall~{A}~{B}~{T}~...] 0.002 secs (0.002u,0.s) Chars 3500 - 3648 [Definition~calling~{A}~{B}~{F~...] 0. secs (0.u,0.s) Chars 3846 - 4007 [Definition~calling'~{A}~{B}~{F...] 0. secs (0.u,0.s) Chars 4056 - 4216 [Definition~rec~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) diff --git a/theories/Interp/RecursionFacts.v.timing b/theories/Interp/RecursionFacts.v.timing index 5566dd7c..ce454406 100644 --- a/theories/Interp/RecursionFacts.v.timing +++ b/theories/Interp/RecursionFacts.v.timing @@ -1,242 +1,242 @@ -Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) -Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.004 secs (0.002u,0.s) -Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.094 secs (0.072u,0.018s) +Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.006 secs (0.003u,0.002s) +Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.002 secs (0.002u,0.s) +Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.057 secs (0.049u,0.008s) Chars 669 - 691 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 693 - 707 [Section~Facts.] 0. secs (0.u,0.s) Chars 709 - 766 [Context~{D~E~:~Type~->~Type}~(...] 0. secs (0.u,0.s) Chars 804 - 1117 [Definition~_interp_mrec~{R~:~T...] 0.001 secs (0.001u,0.s) Chars 1433 - 1534 [Lemma~unfold_interp_mrec~R~(t~...] 0. secs (0.u,0.s) Chars 1535 - 1541 [Proof.] 0. secs (0.u,0.s) -Chars 1544 - 1563 [(unfold~interp_mrec).] 0. secs (0.u,0.s) -Chars 1566 - 1586 [(rewrite~unfold_iter).] 0.009 secs (0.008u,0.s) -Chars 1589 - 1611 [(destruct~observe;~cbn).] 0.001 secs (0.001u,0.s) +Chars 1544 - 1563 [unfold~interp_mrec.] 0. secs (0.u,0.s) +Chars 1566 - 1586 [rewrite~unfold_iter.] 0.006 secs (0.006u,0.s) +Chars 1589 - 1611 [destruct~observe;~cbn.] 0. secs (0.u,0.s) Chars 1614 - 1615 [-] 0. secs (0.u,0.s) -Chars 1616 - 1648 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) +Chars 1616 - 1648 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) Chars 1651 - 1652 [-] 0. secs (0.u,0.s) -Chars 1653 - 1685 [(rewrite~bind_ret_l;~reflexivi...] 0.043 secs (0.042u,0.s) +Chars 1653 - 1685 [rewrite~bind_ret_l;~reflexivity.] 0.032 secs (0.032u,0.s) Chars 1688 - 1689 [-] 0. secs (0.u,0.s) -Chars 1690 - 1706 [(destruct~e;~cbn).] 0. secs (0.u,0.s) +Chars 1690 - 1706 [destruct~e;~cbn.] 0. secs (0.u,0.s) Chars 1711 - 1712 [+] 0. secs (0.u,0.s) -Chars 1713 - 1745 [(rewrite~bind_ret_l;~reflexivi...] 0.006 secs (0.006u,0.s) +Chars 1713 - 1745 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) Chars 1750 - 1751 [+] 0. secs (0.u,0.s) -Chars 1752 - 1769 [(rewrite~bind_vis).] 0.007 secs (0.007u,0.s) -Chars 1776 - 1794 [(step;~constructor).] 0.003 secs (0.003u,0.s) -Chars 1795 - 1802 [(intros).] 0. secs (0.u,0.s) -Chars 1809 - 1828 [(rewrite~bind_ret_l).] 0.01 secs (0.009u,0.001s) -Chars 1835 - 1853 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 1854 - 1858 [Qed.] 0.011 secs (0.009u,0.001s) -Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0.001 secs (0.u,0.s) +Chars 1752 - 1769 [rewrite~bind_vis.] 0.005 secs (0.005u,0.s) +Chars 1776 - 1794 [step;~constructor.] 0.002 secs (0.002u,0.s) +Chars 1795 - 1802 [intros.] 0. secs (0.u,0.s) +Chars 1809 - 1828 [rewrite~bind_ret_l.] 0.006 secs (0.006u,0.s) +Chars 1835 - 1853 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 1854 - 1858 [Qed.] 0.007 secs (0.006u,0.001s) +Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0. secs (0.u,0.s) Chars 2130 - 2230 [#[global]~Instance~eq_itree_mr...] 0. secs (0.u,0.s) Chars 2231 - 2237 [Proof.] 0. secs (0.u,0.s) -Chars 2240 - 2251 [(repeat~red).] 0. secs (0.u,0.s) -Chars 2255 - 2267 [coinduction.] 0.003 secs (0.002u,0.001s) -Chars 2268 - 2275 [(intros).] 0. secs (0.u,0.s) -Chars 2278 - 2306 [(rewrite~!unfold_interp_mrec).] 0.04 secs (0.035u,0.004s) +Chars 2240 - 2251 [repeat~red.] 0. secs (0.u,0.s) +Chars 2255 - 2267 [coinduction.] 0.002 secs (0.001u,0.s) +Chars 2268 - 2275 [intros.] 0. secs (0.u,0.s) +Chars 2278 - 2306 [rewrite~!unfold_interp_mrec.] 0.026 secs (0.024u,0.002s) Chars 2309 - 2319 [step~in~H.] 0. secs (0.u,0.s) -Chars 2320 - 2344 [(inv~H;~eauto~with~itree).] 0.097 secs (0.094u,0.002s) +Chars 2320 - 2344 [inv~H;~eauto~with~itree.] 0.065 secs (0.065u,0.s) Chars 2348 - 2349 [-] 0. secs (0.u,0.s) Chars 2350 - 2355 [taus.] 0. secs (0.u,0.s) Chars 2356 - 2370 [now~apply~CIH.] 0. secs (0.u,0.s) Chars 2374 - 2375 [-] 0. secs (0.u,0.s) -Chars 2376 - 2380 [(cbn).] 0. secs (0.u,0.s) -Chars 2381 - 2392 [(destruct~e).] 0. secs (0.u,0.s) +Chars 2376 - 2380 [cbn.] 0. secs (0.u,0.s) +Chars 2381 - 2392 [destruct~e.] 0. secs (0.u,0.s) Chars 2397 - 2398 [+] 0. secs (0.u,0.s) Chars 2399 - 2404 [taus.] 0. secs (0.u,0.s) -Chars 2405 - 2415 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2422 - 2428 [ebind.] 0.006 secs (0.006u,0.s) -Chars 2429 - 2443 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 2450 - 2460 [(do~2~step).] 0.008 secs (0.008u,0.s) -Chars 2461 - 2471 [(apply~REL).] 0. secs (0.u,0.s) +Chars 2405 - 2415 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2422 - 2428 [ebind.] 0.004 secs (0.004u,0.s) +Chars 2429 - 2443 [intros;~subst.] 0. secs (0.u,0.s) +Chars 2450 - 2460 [do~2~step.] 0.006 secs (0.006u,0.s) +Chars 2461 - 2471 [apply~REL.] 0. secs (0.u,0.s) Chars 2477 - 2478 [+] 0. secs (0.u,0.s) Chars 2479 - 2491 [constructor.] 0. secs (0.u,0.s) Chars 2492 - 2498 [intro.] 0. secs (0.u,0.s) -Chars 2499 - 2504 [step.] 0.002 secs (0.002u,0.s) +Chars 2499 - 2504 [step.] 0.001 secs (0.001u,0.s) Chars 2505 - 2510 [taus.] 0. secs (0.u,0.s) -Chars 2511 - 2521 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 2526 - 2536 [(apply~REL).] 0. secs (0.u,0.s) -Chars 2540 - 2544 [Qed.] 0.014 secs (0.013u,0.s) +Chars 2511 - 2521 [apply~CIH.] 0. secs (0.u,0.s) +Chars 2526 - 2536 [apply~REL.] 0. secs (0.u,0.s) +Chars 2540 - 2544 [Qed.] 0.009 secs (0.009u,0.s) Chars 2546 - 2721 [Theorem~interp_mrec_bind~{U}~{...] 0. secs (0.u,0.s) Chars 2722 - 2728 [Proof.] 0. secs (0.u,0.s) -Chars 2731 - 2763 [(revert~t~k;~coinduction;~intr...] 0.002 secs (0.002u,0.s) -Chars 2766 - 2799 [(rewrite~(unfold_interp_mrec~_...] 0.018 secs (0.018u,0.s) -Chars 2802 - 2826 [(rewrite~(unfold_bind~t)).] 0.016 secs (0.016u,0.s) -Chars 2829 - 2881 [(destruct~(observe~t);~cbn;~[~...] 0.003 secs (0.003u,0.s) +Chars 2731 - 2763 [revert~t~k;~coinduction;~intros.] 0.001 secs (0.001u,0.s) +Chars 2766 - 2799 [rewrite~(unfold_interp_mrec~_~t).] 0.012 secs (0.012u,0.s) +Chars 2802 - 2826 [rewrite~(unfold_bind~t).] 0.011 secs (0.011u,0.s) +Chars 2829 - 2881 [destruct~(observe~t);~cbn;~[~~...] 0.002 secs (0.002u,0.s) Chars 2885 - 2886 [-] 0. secs (0.u,0.s) -Chars 2887 - 2905 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 2887 - 2905 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 2908 - 2909 [-] 0. secs (0.u,0.s) Chars 2910 - 2915 [taus.] 0. secs (0.u,0.s) Chars 2916 - 2927 [fold_subst.] 0. secs (0.u,0.s) -Chars 2928 - 2938 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2928 - 2938 [apply~CIH.] 0. secs (0.u,0.s) Chars 2942 - 2943 [-] 0. secs (0.u,0.s) Chars 2944 - 2951 [to_mon.] 0. secs (0.u,0.s) Chars 2952 - 2957 [taus.] 0. secs (0.u,0.s) Chars 2958 - 2969 [fold_subst.] 0. secs (0.u,0.s) -Chars 2975 - 2996 [(rewrite~<-~bind_bind).] 0.013 secs (0.013u,0.s) -Chars 3001 - 3011 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2975 - 2996 [rewrite~<-~bind_bind.] 0.008 secs (0.008u,0.s) +Chars 3001 - 3011 [apply~CIH.] 0. secs (0.u,0.s) Chars 3016 - 3017 [-] 0. secs (0.u,0.s) Chars 3018 - 3030 [constructor.] 0. secs (0.u,0.s) Chars 3031 - 3037 [intro.] 0. secs (0.u,0.s) Chars 3038 - 3049 [fold_subst.] 0. secs (0.u,0.s) -Chars 3055 - 3084 [(rewrite~bind_ret_l,~bind_tau).] 0.029 secs (0.029u,0.s) -Chars 3090 - 3095 [step.] 0.002 secs (0.002u,0.s) +Chars 3055 - 3084 [rewrite~bind_ret_l,~bind_tau.] 0.02 secs (0.019u,0.s) +Chars 3090 - 3095 [step.] 0.001 secs (0.001u,0.s) Chars 3096 - 3101 [taus.] 0. secs (0.u,0.s) -Chars 3102 - 3112 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 3116 - 3120 [Qed.] 0.013 secs (0.013u,0.s) +Chars 3102 - 3112 [apply~CIH.] 0. secs (0.u,0.s) +Chars 3116 - 3120 [Qed.] 0.009 secs (0.009u,0.s) Chars 3122 - 3236 [Theorem~interp_mrec_trigger~{U...] 0. secs (0.u,0.s) Chars 3237 - 3243 [Proof.] 0. secs (0.u,0.s) -Chars 3246 - 3292 [(rewrite~unfold_interp_mrec;~u...] 0.012 secs (0.012u,0.s) -Chars 3295 - 3311 [(destruct~a;~cbn).] 0. secs (0.u,0.s) -Chars 3314 - 3345 [(rewrite~tau_euttge,~bind_ret_r).] 0.013 secs (0.013u,0.s) +Chars 3246 - 3292 [rewrite~unfold_interp_mrec;~un...] 0.008 secs (0.008u,0.s) +Chars 3295 - 3311 [destruct~a;~cbn.] 0. secs (0.u,0.s) +Chars 3314 - 3345 [rewrite~tau_euttge,~bind_ret_r.] 0.009 secs (0.008u,0.s) Chars 3348 - 3360 [reflexivity.] 0. secs (0.u,0.s) -Chars 3363 - 3381 [(step;~constructor).] 0.002 secs (0.002u,0.s) -Chars 3382 - 3389 [(intros).] 0. secs (0.u,0.s) -Chars 3390 - 3434 [(rewrite~tau_euttge,~unfold_in...] 0.017 secs (0.016u,0.s) -Chars 3437 - 3455 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 3456 - 3460 [Qed.] 0.003 secs (0.003u,0.s) +Chars 3363 - 3381 [step;~constructor.] 0.001 secs (0.001u,0.s) +Chars 3382 - 3389 [intros.] 0. secs (0.u,0.s) +Chars 3390 - 3434 [rewrite~tau_euttge,~unfold_int...] 0.011 secs (0.01u,0.s) +Chars 3437 - 3455 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 3456 - 3460 [Qed.] 0.002 secs (0.002u,0.s) Chars 3462 - 3564 [Theorem~interp_mrec_as_interp~...] 0. secs (0.u,0.s) Chars 3565 - 3571 [Proof.] 0. secs (0.u,0.s) -Chars 3574 - 3609 [(rewrite~<-~(tau_eutt~(interp~...] 0.001 secs (0.001u,0.s) -Chars 3612 - 3627 [(revert_until~T).] 0. secs (0.u,0.s) -Chars 3628 - 3640 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3641 - 3648 [(intros).] 0. secs (0.u,0.s) -Chars 3651 - 3693 [(rewrite~unfold_interp_mrec,~u...] 0.036 secs (0.035u,0.s) -Chars 3696 - 3759 [(destruct~(observe~c0);~[~~|~~...] 0.005 secs (0.005u,0.s) +Chars 3574 - 3609 [rewrite~<-~(tau_eutt~(interp~_...] 0. secs (0.u,0.s) +Chars 3612 - 3627 [revert_until~T.] 0. secs (0.u,0.s) +Chars 3628 - 3640 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 3641 - 3648 [intros.] 0. secs (0.u,0.s) +Chars 3651 - 3693 [rewrite~unfold_interp_mrec,~un...] 0.021 secs (0.021u,0.s) +Chars 3696 - 3759 [destruct~(observe~c0);~[~~|~~|...] 0.003 secs (0.003u,0.s) Chars 3762 - 3763 [-] 0. secs (0.u,0.s) -Chars 3764 - 3773 [now~taur.] 0.001 secs (0.001u,0.s) +Chars 3764 - 3773 [now~taur.] 0. secs (0.u,0.s) Chars 3777 - 3778 [-] 0. secs (0.u,0.s) Chars 3779 - 3784 [taus.] 0. secs (0.u,0.s) -Chars 3785 - 3795 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 3785 - 3795 [apply~CIH.] 0. secs (0.u,0.s) Chars 3799 - 3800 [-] 0. secs (0.u,0.s) Chars 3801 - 3806 [taus.] 0. secs (0.u,0.s) -Chars 3807 - 3832 [(rewrite~interp_mrec_bind).] 0.015 secs (0.014u,0.s) -Chars 3833 - 3845 [(unfold~mrec).] 0. secs (0.u,0.s) -Chars 3848 - 3854 [ebind.] 0.006 secs (0.006u,0.s) -Chars 3855 - 3869 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 3870 - 3880 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 3807 - 3832 [rewrite~interp_mrec_bind.] 0.008 secs (0.008u,0.s) +Chars 3833 - 3845 [unfold~mrec.] 0. secs (0.u,0.s) +Chars 3848 - 3854 [ebind.] 0.004 secs (0.004u,0.s) +Chars 3855 - 3869 [intros;~subst.] 0. secs (0.u,0.s) +Chars 3870 - 3880 [apply~CIH.] 0. secs (0.u,0.s) Chars 3884 - 3885 [-] 0. secs (0.u,0.s) Chars 3886 - 3893 [to_mon.] 0. secs (0.u,0.s) -Chars 3894 - 3913 [(rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) -Chars 3919 - 3940 [(unfold~ITree.trigger).] 0. secs (0.u,0.s) -Chars 3942 - 3959 [(rewrite~bind_vis).] 0.017 secs (0.017u,0.s) +Chars 3894 - 3913 [rewrite~tau_euttge.] 0.003 secs (0.003u,0.s) +Chars 3919 - 3940 [unfold~ITree.trigger.] 0. secs (0.u,0.s) +Chars 3942 - 3959 [rewrite~bind_vis.] 0.011 secs (0.011u,0.s) Chars 3964 - 3976 [constructor.] 0. secs (0.u,0.s) Chars 3977 - 3983 [intro.] 0. secs (0.u,0.s) -Chars 3989 - 4008 [(rewrite~bind_ret_l).] 0.013 secs (0.013u,0.s) -Chars 4009 - 4028 [(rewrite~tau_euttge).] 0.005 secs (0.005u,0.s) -Chars 4029 - 4039 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4041 - 4045 [Qed.] 0.012 secs (0.012u,0.s) +Chars 3989 - 4008 [rewrite~bind_ret_l.] 0.009 secs (0.008u,0.s) +Chars 4009 - 4028 [rewrite~tau_euttge.] 0.002 secs (0.002u,0.s) +Chars 4029 - 4039 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4041 - 4045 [Qed.] 0.009 secs (0.009u,0.s) Chars 4047 - 4137 [Theorem~mrec_as_interp~{T}~(d~...] 0. secs (0.u,0.s) Chars 4138 - 4144 [Proof.] 0. secs (0.u,0.s) -Chars 4147 - 4175 [(apply~interp_mrec_as_interp).] 0. secs (0.u,0.s) +Chars 4147 - 4175 [apply~interp_mrec_as_interp.] 0. secs (0.u,0.s) Chars 4176 - 4180 [Qed.] 0. secs (0.u,0.s) Chars 4182 - 4280 [Lemma~interp_mrecursive~{T}~(d...] 0. secs (0.u,0.s) Chars 4281 - 4287 [Proof.] 0. secs (0.u,0.s) -Chars 4290 - 4308 [(unfold~mrecursive).] 0. secs (0.u,0.s) -Chars 4309 - 4329 [(unfold~trigger_inl1).] 0. secs (0.u,0.s) -Chars 4332 - 4355 [(rewrite~interp_trigger).] 0.001 secs (0.001u,0.s) -Chars 4356 - 4360 [(cbn).] 0. secs (0.u,0.s) +Chars 4290 - 4308 [unfold~mrecursive.] 0. secs (0.u,0.s) +Chars 4309 - 4329 [unfold~trigger_inl1.] 0. secs (0.u,0.s) +Chars 4332 - 4355 [rewrite~interp_trigger.] 0. secs (0.u,0.s) +Chars 4356 - 4360 [cbn.] 0. secs (0.u,0.s) Chars 4361 - 4373 [reflexivity.] 0. secs (0.u,0.s) -Chars 4374 - 4378 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0.001 secs (0.001u,0.s) +Chars 4374 - 4378 [Qed.] 0. secs (0.u,0.s) +Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0. secs (0.u,0.s) Chars 4517 - 4523 [Proof.] 0. secs (0.u,0.s) -Chars 4526 - 4546 [(rewrite~<-~tau_eutt).] 0.002 secs (0.002u,0.s) +Chars 4526 - 4546 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) Chars 4549 - 4558 [revert~t.] 0. secs (0.u,0.s) Chars 4559 - 4571 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4572 - 4579 [(intros).] 0. secs (0.u,0.s) -Chars 4582 - 4626 [(rewrite~(itree_eta~t);~destru...] 0.018 secs (0.018u,0.s) +Chars 4572 - 4579 [intros.] 0. secs (0.u,0.s) +Chars 4582 - 4626 [rewrite~(itree_eta~t);~destruc...] 0.013 secs (0.013u,0.s) Chars 4629 - 4630 [-] 0. secs (0.u,0.s) -Chars 4631 - 4670 [(rewrite~2!unfold_interp_mrec;...] 0.039 secs (0.038u,0.s) +Chars 4631 - 4670 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.026u,0.s) Chars 4674 - 4675 [-] 0. secs (0.u,0.s) -Chars 4676 - 4720 [(rewrite~unfold_interp,~2!unfo...] 0.053 secs (0.052u,0.s) +Chars 4676 - 4720 [rewrite~unfold_interp,~2!unfol...] 0.035 secs (0.034u,0.s) Chars 4726 - 4731 [taus.] 0. secs (0.u,0.s) -Chars 4732 - 4742 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4732 - 4742 [apply~CIH.] 0. secs (0.u,0.s) Chars 4746 - 4747 [-] 0. secs (0.u,0.s) -Chars 4748 - 4767 [(rewrite~interp_vis).] 0.02 secs (0.019u,0.s) -Chars 4772 - 4813 [(rewrite~(unfold_interp_mrec~_...] 0.018 secs (0.018u,0.s) -Chars 4818 - 4842 [(destruct~e;~cbn;~to_mon).] 0.001 secs (0.001u,0.s) +Chars 4748 - 4767 [rewrite~interp_vis.] 0.012 secs (0.012u,0.s) +Chars 4772 - 4813 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) +Chars 4818 - 4842 [destruct~e;~cbn;~to_mon.] 0. secs (0.u,0.s) Chars 4848 - 4849 [+] 0. secs (0.u,0.s) -Chars 4850 - 4877 [(rewrite~2!interp_mrec_bind).] 0.038 secs (0.038u,0.s) +Chars 4850 - 4877 [rewrite~2!interp_mrec_bind.] 0.025 secs (0.025u,0.s) Chars 4884 - 4889 [taus.] 0. secs (0.u,0.s) -Chars 4897 - 4918 [(ebind;~intros;~subst).] 0.006 secs (0.006u,0.s) -Chars 4926 - 4969 [(rewrite~unfold_interp_mrec;~c...] 0.013 secs (0.013u,0.s) +Chars 4897 - 4918 [ebind;~intros;~subst.] 0.004 secs (0.004u,0.s) +Chars 4926 - 4969 [rewrite~unfold_interp_mrec;~cb...] 0.009 secs (0.009u,0.s) Chars 4975 - 4976 [+] 0. secs (0.u,0.s) -Chars 4977 - 5063 [(unfold~inr_,~Handler.Inr_sum1...] 0. secs (0.u,0.s) -Chars 5070 - 5124 [(rewrite~bind_trigger,~unfold_...] 0.038 secs (0.037u,0.s) -Chars 5131 - 5150 [(rewrite~tau_euttge).] 0.006 secs (0.006u,0.s) +Chars 4977 - 5063 [unfold~inr_,~Handler.Inr_sum1_...] 0. secs (0.u,0.s) +Chars 5070 - 5124 [rewrite~bind_trigger,~unfold_i...] 0.024 secs (0.023u,0.s) +Chars 5131 - 5150 [rewrite~tau_euttge.] 0.003 secs (0.003u,0.s) Chars 5157 - 5169 [constructor.] 0. secs (0.u,0.s) -Chars 5176 - 5183 [(intros).] 0. secs (0.u,0.s) -Chars 5184 - 5189 [step.] 0.003 secs (0.003u,0.s) +Chars 5176 - 5183 [intros.] 0. secs (0.u,0.s) +Chars 5184 - 5189 [step.] 0.001 secs (0.001u,0.s) Chars 5190 - 5195 [taus.] 0. secs (0.u,0.s) -Chars 5203 - 5235 [(rewrite~unfold_interp_mrec;~c...] 0.012 secs (0.012u,0.s) -Chars 5242 - 5252 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5254 - 5258 [Qed.] 0.021 secs (0.021u,0.s) +Chars 5203 - 5235 [rewrite~unfold_interp_mrec;~cbn.] 0.008 secs (0.008u,0.s) +Chars 5242 - 5252 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5254 - 5258 [Qed.] 0.014 secs (0.014u,0.s) Chars 5260 - 5270 [End~Facts.] 0. secs (0.u,0.s) Chars 5272 - 5297 [#[local]~Opaque~interp_mrec.] 0. secs (0.u,0.s) -Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0.001 secs (0.001u,0.s) +Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0. secs (0.u,0.s) Chars 5557 - 5563 [Proof.] 0. secs (0.u,0.s) -Chars 5566 - 5583 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) -Chars 5586 - 5615 [(coinduction;~intros~t1~t2~Ht).] 0.002 secs (0.002u,0.s) -Chars 5618 - 5647 [(rewrite~2!unfold_interp_mrec).] 0.03 secs (0.03u,0.s) -Chars 5650 - 5680 [(step~in~Ht;~induction~Ht;~cbn).] 0.002 secs (0.002u,0.s) +Chars 5566 - 5583 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) +Chars 5586 - 5615 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) +Chars 5618 - 5647 [rewrite~2!unfold_interp_mrec.] 0.02 secs (0.02u,0.s) +Chars 5650 - 5680 [step~in~Ht;~induction~Ht;~cbn.] 0.001 secs (0.001u,0.s) Chars 5684 - 5688 [3:~{] 0. secs (0.u,0.s) -Chars 5689 - 5713 [(destruct~e;~constructor).] 0. secs (0.u,0.s) +Chars 5689 - 5713 [destruct~e;~constructor.] 0. secs (0.u,0.s) Chars 5719 - 5720 [+] 0. secs (0.u,0.s) -Chars 5721 - 5731 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5732 - 5738 [ebind.] 0.007 secs (0.007u,0.s) -Chars 5739 - 5749 [(apply~Hfg).] 0. secs (0.u,0.s) -Chars 5758 - 5772 [(intros~?~_~[]).] 0. secs (0.u,0.s) -Chars 5773 - 5783 [(apply~REL).] 0. secs (0.u,0.s) +Chars 5721 - 5731 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5732 - 5738 [ebind.] 0.004 secs (0.004u,0.s) +Chars 5739 - 5749 [apply~Hfg.] 0. secs (0.u,0.s) +Chars 5758 - 5772 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 5773 - 5783 [apply~REL.] 0. secs (0.u,0.s) Chars 5789 - 5790 [+] 0. secs (0.u,0.s) -Chars 5791 - 5810 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) +Chars 5791 - 5810 [intros;~step;~taus.] 0.003 secs (0.003u,0.s) Chars 5811 - 5833 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 5836 - 5837 [}] 0. secs (0.u,0.s) -Chars 5840 - 5879 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) -Chars 5882 - 5940 [all:~(to_mon;~rewrite~unfold_i...] 0.045 secs (0.044u,0.s) -Chars 5941 - 5945 [Qed.] 0.012 secs (0.012u,0.s) -Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0.001 secs (0.001u,0.s) +Chars 5840 - 5879 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) +Chars 5882 - 5940 [all:~to_mon;~rewrite~unfold_in...] 0.028 secs (0.028u,0.s) +Chars 5941 - 5945 [Qed.] 0.009 secs (0.009u,0.s) +Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) Chars 6195 - 6310 [Lemma~rec_as_interp~{E}~{A}~{B...] 0. secs (0.u,0.s) Chars 6311 - 6317 [Proof.] 0. secs (0.u,0.s) -Chars 6320 - 6331 [(unfold~rec).] 0. secs (0.u,0.s) -Chars 6334 - 6357 [(rewrite~mrec_as_interp).] 0.001 secs (0.001u,0.s) -Chars 6360 - 6378 [(apply~eq_sub_eutt).] 0. secs (0.u,0.s) -Chars 6381 - 6404 [(eapply~eq_itree_interp).] 0. secs (0.u,0.s) +Chars 6320 - 6331 [unfold~rec.] 0. secs (0.u,0.s) +Chars 6334 - 6357 [rewrite~mrec_as_interp.] 0.001 secs (0.001u,0.s) +Chars 6360 - 6378 [apply~eq_sub_eutt.] 0. secs (0.u,0.s) +Chars 6381 - 6404 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) Chars 6407 - 6408 [-] 0. secs (0.u,0.s) -Chars 6409 - 6413 [(red).] 0. secs (0.u,0.s) -Chars 6414 - 6458 [(unfold~case_;~intros~?~[[]|~]...] 0. secs (0.u,0.s) +Chars 6409 - 6413 [red.] 0. secs (0.u,0.s) +Chars 6414 - 6458 [unfold~case_;~intros~?~[[]|~];...] 0. secs (0.u,0.s) Chars 6461 - 6462 [-] 0. secs (0.u,0.s) Chars 6463 - 6475 [reflexivity.] 0. secs (0.u,0.s) Chars 6476 - 6480 [Qed.] 0.001 secs (0.001u,0.s) Chars 6482 - 6607 [Lemma~interp_recursive_call~{E...] 0. secs (0.u,0.s) Chars 6608 - 6614 [Proof.] 0. secs (0.u,0.s) -Chars 6617 - 6634 [(unfold~recursive).] 0. secs (0.u,0.s) -Chars 6635 - 6647 [(unfold~call).] 0. secs (0.u,0.s) -Chars 6650 - 6673 [(rewrite~interp_trigger).] 0.001 secs (0.001u,0.s) -Chars 6674 - 6678 [(cbn).] 0. secs (0.u,0.s) +Chars 6617 - 6634 [unfold~recursive.] 0. secs (0.u,0.s) +Chars 6635 - 6647 [unfold~call.] 0. secs (0.u,0.s) +Chars 6650 - 6673 [rewrite~interp_trigger.] 0. secs (0.u,0.s) +Chars 6674 - 6678 [cbn.] 0. secs (0.u,0.s) Chars 6681 - 6693 [reflexivity.] 0. secs (0.u,0.s) -Chars 6694 - 6698 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0.001 secs (0.001u,0.s) +Chars 6694 - 6698 [Qed.] 0. secs (0.u,0.s) +Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 6967 - 6973 [Proof.] 0. secs (0.u,0.s) -Chars 6976 - 6993 [(intros~f~g~Hfg~R).] 0. secs (0.u,0.s) -Chars 6996 - 7025 [(coinduction;~intros~t1~t2~Ht).] 0.004 secs (0.003u,0.s) -Chars 7028 - 7057 [(rewrite~2!unfold_interp_mrec).] 0.019 secs (0.019u,0.s) -Chars 7060 - 7100 [(step~in~Ht;~induction~Ht;~try...] 0.117 secs (0.116u,0.s) +Chars 6976 - 6993 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) +Chars 6996 - 7025 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) +Chars 7028 - 7057 [rewrite~2!unfold_interp_mrec.] 0.013 secs (0.013u,0.s) +Chars 7060 - 7100 [step~in~Ht;~induction~Ht;~try~...] 0.08 secs (0.079u,0.s) Chars 7104 - 7108 [3:~{] 0. secs (0.u,0.s) -Chars 7109 - 7133 [(destruct~e;~constructor).] 0. secs (0.u,0.s) +Chars 7109 - 7133 [destruct~e;~constructor.] 0. secs (0.u,0.s) Chars 7139 - 7140 [+] 0. secs (0.u,0.s) -Chars 7141 - 7151 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7152 - 7158 [ebind.] 0.006 secs (0.006u,0.s) -Chars 7159 - 7169 [(apply~Hfg).] 0. secs (0.u,0.s) -Chars 7178 - 7192 [(intros~?~_~[]).] 0. secs (0.u,0.s) -Chars 7193 - 7203 [(apply~REL).] 0. secs (0.u,0.s) +Chars 7141 - 7151 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7152 - 7158 [ebind.] 0.004 secs (0.004u,0.s) +Chars 7159 - 7169 [apply~Hfg.] 0. secs (0.u,0.s) +Chars 7178 - 7192 [intros~?~_~[].] 0. secs (0.u,0.s) +Chars 7193 - 7203 [apply~REL.] 0. secs (0.u,0.s) Chars 7209 - 7210 [+] 0. secs (0.u,0.s) -Chars 7211 - 7230 [(intros;~step;~taus).] 0.002 secs (0.002u,0.s) +Chars 7211 - 7230 [intros;~step;~taus.] 0.001 secs (0.001u,0.s) Chars 7231 - 7253 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) Chars 7256 - 7257 [}] 0. secs (0.u,0.s) -Chars 7260 - 7299 [1,~2:~(constructor;~auto~with~...] 0. secs (0.u,0.s) -Chars 7302 - 7360 [all:~(to_mon;~rewrite~unfold_i...] 0.019 secs (0.019u,0.s) -Chars 7361 - 7365 [Qed.] 0.011 secs (0.011u,0.s) +Chars 7260 - 7299 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) +Chars 7302 - 7360 [all:~to_mon;~rewrite~unfold_in...] 0.013 secs (0.013u,0.s) +Chars 7361 - 7365 [Qed.] 0.008 secs (0.008u,0.s) Chars 7367 - 7504 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) Chars 7505 - 7511 [Proof.] 0. secs (0.u,0.s) -Chars 7514 - 7523 [(do~4~red).] 0. secs (0.u,0.s) -Chars 7524 - 7550 [(eapply~euttge_interp_mrec).] 0. secs (0.u,0.s) +Chars 7514 - 7523 [do~4~red.] 0. secs (0.u,0.s) +Chars 7524 - 7550 [eapply~euttge_interp_mrec.] 0. secs (0.u,0.s) Chars 7551 - 7563 [reflexivity.] 0. secs (0.u,0.s) Chars 7564 - 7568 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Interp/Traces.v.timing b/theories/Interp/Traces.v.timing index cc94101a..3de6b666 100644 --- a/theories/Interp/Traces.v.timing +++ b/theories/Interp/Traces.v.timing @@ -1,215 +1,215 @@ -Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.204 secs (0.176u,0.027s) +Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.14 secs (0.125u,0.014s) Chars 223 - 246 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) -Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) -Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0.001 secs (0.u,0.s) -Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0. secs (0.u,0.s) -Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.004 secs (0.003u,0.s) +Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.u,0.s) +Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0. secs (0.u,0.s) +Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0.004 secs (0.003u,0.s) +Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.002 secs (0.002u,0.s) Chars 1431 - 1524 [Definition~is_trace~{E~:~Type~...] 0. secs (0.u,0.s) Chars 1542 - 1695 [Definition~trace_incl~{E~:~Typ...] 0. secs (0.u,0.s) Chars 1713 - 1857 [Definition~trace_eq~{E~:~Type~...] 0. secs (0.u,0.s) Chars 1859 - 1973 [Lemma~is_traceF_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 1974 - 1980 [Proof.] 0. secs (0.u,0.s) -Chars 1983 - 1990 [(intros).] 0. secs (0.u,0.s) -Chars 1991 - 2005 [(split;~intros).] 0. secs (0.u,0.s) +Chars 1983 - 1990 [intros.] 0. secs (0.u,0.s) +Chars 1991 - 2005 [split;~intros.] 0. secs (0.u,0.s) Chars 2008 - 2009 [-] 0. secs (0.u,0.s) Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) -Chars 2023 - 2044 [(remember~(observe~t)).] 0. secs (0.u,0.s) +Chars 2023 - 2044 [remember~(observe~t).] 0. secs (0.u,0.s) Chars 2049 - 2072 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 2077 - 2143 [(induction~H;~intros;~subst;~c...] 0.001 secs (0.001u,0.s) +Chars 2077 - 2143 [induction~H;~intros;~subst;~co...] 0.001 secs (0.u,0.s) Chars 2146 - 2147 [-] 0. secs (0.u,0.s) -Chars 2148 - 2190 [(inversion~H;~subst;~try~const...] 0.002 secs (0.001u,0.s) -Chars 2191 - 2195 [Qed.] 0.002 secs (0.001u,0.s) +Chars 2148 - 2190 [inversion~H;~subst;~try~constr...] 0.001 secs (0.001u,0.s) +Chars 2191 - 2195 [Qed.] 0.001 secs (0.001u,0.s) Chars 2197 - 2293 [Lemma~sutt_trace_incl~:~~~fora...] 0. secs (0.u,0.s) Chars 2294 - 2300 [Proof.] 0. secs (0.u,0.s) -Chars 2303 - 2307 [(red).] 0. secs (0.u,0.s) -Chars 2308 - 2315 [(intros).] 0. secs (0.u,0.s) -Chars 2316 - 2326 [(red~in~H0).] 0. secs (0.u,0.s) -Chars 2327 - 2349 [(remember~(observe~t1)).] 0. secs (0.u,0.s) +Chars 2303 - 2307 [red.] 0. secs (0.u,0.s) +Chars 2308 - 2315 [intros.] 0. secs (0.u,0.s) +Chars 2316 - 2326 [red~in~H0.] 0. secs (0.u,0.s) +Chars 2327 - 2349 [remember~(observe~t1).] 0. secs (0.u,0.s) Chars 2352 - 2376 [generalize~dependent~t1.] 0. secs (0.u,0.s) Chars 2377 - 2401 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2404 - 2450 [(induction~H0;~intros;~try~(so...] 0.001 secs (0.001u,0.s) +Chars 2404 - 2450 [induction~H0;~intros;~try~(sol...] 0. secs (0.u,0.s) Chars 2453 - 2454 [-] 0. secs (0.u,0.s) Chars 2455 - 2465 [step~in~H.] 0. secs (0.u,0.s) -Chars 2466 - 2487 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) -Chars 2492 - 2510 [(remember~(RetF~_)).] 0. secs (0.u,0.s) -Chars 2511 - 2533 [(remember~(observe~t2)).] 0. secs (0.u,0.s) +Chars 2466 - 2487 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 2492 - 2510 [remember~(RetF~_).] 0. secs (0.u,0.s) +Chars 2511 - 2533 [remember~(observe~t2).] 0. secs (0.u,0.s) Chars 2538 - 2562 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2567 - 2638 [(induction~H;~intros;~try~inv~...] 0.01 secs (0.007u,0.002s) -Chars 2643 - 2665 [(eapply~IHsuttF;~eauto).] 0. secs (0.u,0.s) +Chars 2567 - 2638 [induction~H;~intros;~try~inv~H...] 0.026 secs (0.024u,0.002s) +Chars 2643 - 2665 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) Chars 2668 - 2669 [-] 0. secs (0.u,0.s) -Chars 2670 - 2707 [(apply~IHis_traceF~with~(t1~:=...] 0.001 secs (0.001u,0.s) -Chars 2712 - 2736 [(apply~sutt_inv_tau_left).] 0. secs (0.u,0.s) -Chars 2737 - 2741 [(red).] 0. secs (0.u,0.s) -Chars 2742 - 2751 [(red~in~H).] 0. secs (0.u,0.s) -Chars 2752 - 2773 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) +Chars 2670 - 2707 [apply~IHis_traceF~with~(t1~:=~...] 0. secs (0.u,0.s) +Chars 2712 - 2736 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) +Chars 2737 - 2741 [red.] 0. secs (0.u,0.s) +Chars 2742 - 2751 [red~in~H.] 0. secs (0.u,0.s) +Chars 2752 - 2773 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) Chars 2774 - 2779 [auto.] 0. secs (0.u,0.s) Chars 2782 - 2783 [-] 0. secs (0.u,0.s) Chars 2784 - 2794 [step~in~H.] 0. secs (0.u,0.s) -Chars 2795 - 2816 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) -Chars 2821 - 2841 [(remember~(VisF~_~_)).] 0.03 secs (0.026u,0.003s) -Chars 2842 - 2864 [(remember~(observe~t2)).] 0. secs (0.u,0.s) +Chars 2795 - 2816 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 2821 - 2841 [remember~(VisF~_~_).] 0. secs (0.u,0.s) +Chars 2842 - 2864 [remember~(observe~t2).] 0. secs (0.u,0.s) Chars 2869 - 2893 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2898 - 2936 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) +Chars 2898 - 2936 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) Chars 2941 - 2942 [+] 0. secs (0.u,0.s) -Chars 2943 - 2951 [inv_Vis.] 0.012 secs (0.011u,0.s) +Chars 2943 - 2951 [inv_Vis.] 0.007 secs (0.007u,0.s) Chars 2952 - 2958 [subst.] 0. secs (0.u,0.s) -Chars 2959 - 2963 [(red).] 0. secs (0.u,0.s) -Chars 2964 - 2981 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) +Chars 2959 - 2963 [red.] 0. secs (0.u,0.s) +Chars 2964 - 2981 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) Chars 2982 - 2994 [constructor.] 0. secs (0.u,0.s) Chars 2999 - 3000 [+] 0. secs (0.u,0.s) -Chars 3001 - 3005 [(red).] 0. secs (0.u,0.s) -Chars 3006 - 3023 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) +Chars 3001 - 3005 [red.] 0. secs (0.u,0.s) +Chars 3006 - 3023 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) Chars 3024 - 3036 [constructor.] 0. secs (0.u,0.s) -Chars 3037 - 3059 [(eapply~IHsuttF;~eauto).] 0. secs (0.u,0.s) +Chars 3037 - 3059 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) Chars 3062 - 3063 [-] 0. secs (0.u,0.s) Chars 3064 - 3074 [step~in~H.] 0. secs (0.u,0.s) -Chars 3075 - 3096 [(rewrite~<-~Heqi~in~H).] 0. secs (0.u,0.s) -Chars 3101 - 3121 [(remember~(VisF~_~_)).] 0.001 secs (0.001u,0.s) -Chars 3122 - 3144 [(remember~(observe~t2)).] 0. secs (0.u,0.s) +Chars 3075 - 3096 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) +Chars 3101 - 3121 [remember~(VisF~_~_).] 0. secs (0.u,0.s) +Chars 3122 - 3144 [remember~(observe~t2).] 0. secs (0.u,0.s) Chars 3149 - 3173 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 3178 - 3216 [(induction~H;~intros;~try~disc...] 0.001 secs (0.001u,0.s) +Chars 3178 - 3216 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) Chars 3221 - 3222 [+] 0. secs (0.u,0.s) -Chars 3223 - 3231 [inv_Vis.] 0.047 secs (0.045u,0.s) +Chars 3223 - 3231 [inv_Vis.] 0.035 secs (0.035u,0.s) Chars 3232 - 3238 [subst.] 0. secs (0.u,0.s) -Chars 3239 - 3243 [(red).] 0. secs (0.u,0.s) -Chars 3244 - 3261 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) +Chars 3239 - 3243 [red.] 0. secs (0.u,0.s) +Chars 3244 - 3261 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) Chars 3262 - 3274 [constructor.] 0. secs (0.u,0.s) -Chars 3281 - 3317 [(eapply~IHis_traceF;~auto~with...] 0.001 secs (0.001u,0.s) +Chars 3281 - 3317 [eapply~IHis_traceF;~auto~with~...] 0. secs (0.u,0.s) Chars 3322 - 3323 [+] 0. secs (0.u,0.s) -Chars 3324 - 3328 [(red).] 0. secs (0.u,0.s) -Chars 3329 - 3346 [(rewrite~<-~Heqi1).] 0. secs (0.u,0.s) +Chars 3324 - 3328 [red.] 0. secs (0.u,0.s) +Chars 3329 - 3346 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) Chars 3347 - 3359 [constructor.] 0. secs (0.u,0.s) -Chars 3360 - 3380 [(apply~IHsuttF;~auto).] 0. secs (0.u,0.s) -Chars 3381 - 3385 [Qed.] 0.008 secs (0.008u,0.s) +Chars 3360 - 3380 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) +Chars 3381 - 3385 [Qed.] 0.005 secs (0.005u,0.s) Chars 3387 - 3475 [Lemma~eutt_trace_eq~:~~~forall...] 0. secs (0.u,0.s) Chars 3476 - 3482 [Proof.] 0. secs (0.u,0.s) Chars 3485 - 3491 [split.] 0. secs (0.u,0.s) Chars 3494 - 3495 [-] 0. secs (0.u,0.s) -Chars 3496 - 3541 [(apply~sutt_trace_incl;~apply~...] 0. secs (0.u,0.s) +Chars 3496 - 3541 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) Chars 3544 - 3545 [-] 0. secs (0.u,0.s) Chars 3546 - 3560 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 3561 - 3606 [(apply~sutt_trace_incl;~apply~...] 0. secs (0.u,0.s) +Chars 3561 - 3606 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) Chars 3607 - 3611 [Qed.] 0. secs (0.u,0.s) -Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0.001 secs (0.001u,0.s) +Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0. secs (0.u,0.s) Chars 3973 - 3979 [Proof.] 0. secs (0.u,0.s) -Chars 3982 - 4003 [(destruct~H,~t1;~auto).] 0. secs (0.u,0.s) +Chars 3982 - 4003 [destruct~H,~t1;~auto.] 0. secs (0.u,0.s) Chars 4006 - 4007 [-] 0. secs (0.u,0.s) -Chars 4008 - 4034 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) +Chars 4008 - 4034 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) Chars 4037 - 4038 [-] 0. secs (0.u,0.s) -Chars 4039 - 4065 [(exists~eq_refl;~cbn;~auto).] 0. secs (0.u,0.s) -Chars 4066 - 4070 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4039 - 4065 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) +Chars 4066 - 4070 [Qed.] 0. secs (0.u,0.s) Chars 4072 - 4168 [Lemma~trace_incl_sutt~:~~~fora...] 0. secs (0.u,0.s) Chars 4169 - 4175 [Proof.] 0. secs (0.u,0.s) -Chars 4178 - 4189 [(intros~E~R).] 0. secs (0.u,0.s) -Chars 4190 - 4208 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4209 - 4228 [(intros~t1~t2~Hincl).] 0. secs (0.u,0.s) -Chars 4231 - 4254 [(unfold~trace_incl~in~*).] 0. secs (0.u,0.s) -Chars 4255 - 4276 [(unfold~is_trace~in~*).] 0. secs (0.u,0.s) -Chars 4279 - 4301 [(destruct~(observe~t1)).] 0.001 secs (0.u,0.s) +Chars 4178 - 4189 [intros~E~R.] 0. secs (0.u,0.s) +Chars 4190 - 4208 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 4209 - 4228 [intros~t1~t2~Hincl.] 0. secs (0.u,0.s) +Chars 4231 - 4254 [unfold~trace_incl~in~*.] 0. secs (0.u,0.s) +Chars 4255 - 4276 [unfold~is_trace~in~*.] 0. secs (0.u,0.s) +Chars 4279 - 4301 [destruct~(observe~t1).] 0. secs (0.u,0.s) Chars 4304 - 4305 [-] 0. secs (0.u,0.s) -Chars 4306 - 4387 [(assert~(H~:~is_traceF~(RetF~r...] 0. secs (0.u,0.s) -Chars 4392 - 4409 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) +Chars 4306 - 4387 [assert~(H~:~is_traceF~(RetF~r~...] 0. secs (0.u,0.s) +Chars 4392 - 4409 [apply~Hincl~in~H.] 0. secs (0.u,0.s) Chars 4410 - 4422 [clear~Hincl.] 0. secs (0.u,0.s) -Chars 4423 - 4452 [(destruct~(observe~t2);~inv~H).] 0.035 secs (0.031u,0.003s) +Chars 4423 - 4452 [destruct~(observe~t2);~inv~H.] 0.02 secs (0.019u,0.s) Chars 4457 - 4458 [+] 0. secs (0.u,0.s) Chars 4459 - 4471 [constructor.] 0. secs (0.u,0.s) Chars 4472 - 4477 [auto.] 0. secs (0.u,0.s) Chars 4482 - 4483 [+] 0. secs (0.u,0.s) Chars 4484 - 4496 [constructor.] 0. secs (0.u,0.s) -Chars 4503 - 4524 [(remember~(observe~t)).] 0. secs (0.u,0.s) -Chars 4525 - 4543 [(remember~(TRet~_)).] 0.001 secs (0.001u,0.s) +Chars 4503 - 4524 [remember~(observe~t).] 0.002 secs (0.002u,0.s) +Chars 4525 - 4543 [remember~(TRet~_).] 0. secs (0.u,0.s) Chars 4550 - 4573 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4580 - 4633 [(induction~H1;~intros;~try~inv...] 0.021 secs (0.021u,0.s) +Chars 4580 - 4633 [induction~H1;~intros;~try~inv~...] 0.012 secs (0.012u,0.s) Chars 4640 - 4652 [constructor.] 0. secs (0.u,0.s) -Chars 4653 - 4679 [(eapply~IHis_traceF;~eauto).] 0. secs (0.u,0.s) +Chars 4653 - 4679 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) Chars 4682 - 4683 [-] 0. secs (0.u,0.s) Chars 4684 - 4696 [constructor.] 0. secs (0.u,0.s) -Chars 4697 - 4707 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4708 - 4715 [(intros).] 0. secs (0.u,0.s) -Chars 4716 - 4728 [(apply~Hincl).] 0. secs (0.u,0.s) +Chars 4697 - 4707 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4708 - 4715 [intros.] 0. secs (0.u,0.s) +Chars 4716 - 4728 [apply~Hincl.] 0. secs (0.u,0.s) Chars 4729 - 4741 [constructor.] 0. secs (0.u,0.s) Chars 4742 - 4747 [auto.] 0. secs (0.u,0.s) Chars 4750 - 4751 [-] 0. secs (0.u,0.s) -Chars 4752 - 4814 [(assert~(H~:~is_traceF~(VisF~e...] 0. secs (0.u,0.s) -Chars 4819 - 4836 [(apply~Hincl~in~H).] 0. secs (0.u,0.s) -Chars 4837 - 4866 [(destruct~(observe~t2);~inv~H).] 0.034 secs (0.033u,0.s) +Chars 4752 - 4814 [assert~(H~:~is_traceF~(VisF~e~...] 0. secs (0.u,0.s) +Chars 4819 - 4836 [apply~Hincl~in~H.] 0. secs (0.u,0.s) +Chars 4837 - 4866 [destruct~(observe~t2);~inv~H.] 0.023 secs (0.023u,0.s) Chars 4871 - 4872 [+] 0. secs (0.u,0.s) Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) -Chars 4892 - 4964 [(assert~(forall~tr,~is_traceF~...] 0. secs (0.u,0.s) +Chars 4892 - 4964 [assert~(forall~tr,~is_traceF~(...] 0. secs (0.u,0.s) Chars 4971 - 4972 [{] 0. secs (0.u,0.s) -Chars 4981 - 4988 [(intros).] 0. secs (0.u,0.s) -Chars 4989 - 5011 [(rewrite~is_traceF_tau).] 0. secs (0.u,0.s) -Chars 5012 - 5030 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) +Chars 4981 - 4988 [intros.] 0. secs (0.u,0.s) +Chars 4989 - 5011 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) +Chars 5012 - 5030 [apply~Hincl;~auto.] 0. secs (0.u,0.s) Chars 5037 - 5038 [}] 0. secs (0.u,0.s) Chars 5045 - 5057 [clear~Hincl.] 0. secs (0.u,0.s) Chars 5058 - 5078 [rename~H~into~Hincl.] 0. secs (0.u,0.s) -Chars 5085 - 5106 [(remember~(observe~t)).] 0.002 secs (0.002u,0.s) -Chars 5107 - 5130 [(remember~(TEventEnd~_)).] 0.001 secs (0.001u,0.s) +Chars 5085 - 5106 [remember~(observe~t).] 0. secs (0.u,0.s) +Chars 5107 - 5130 [remember~(TEventEnd~_).] 0. secs (0.u,0.s) Chars 5137 - 5160 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 5167 - 5206 [(induction~H1;~intros;~try~dis...] 0.001 secs (0.001u,0.s) +Chars 5167 - 5206 [induction~H1;~intros;~try~disc...] 0.001 secs (0.001u,0.s) Chars 5213 - 5214 [*] 0. secs (0.u,0.s) Chars 5215 - 5227 [constructor.] 0. secs (0.u,0.s) -Chars 5228 - 5254 [(eapply~IHis_traceF;~eauto).] 0. secs (0.u,0.s) -Chars 5263 - 5270 [(intros).] 0. secs (0.u,0.s) -Chars 5271 - 5293 [(rewrite~is_traceF_tau).] 0. secs (0.u,0.s) -Chars 5294 - 5312 [(apply~Hincl;~auto).] 0. secs (0.u,0.s) +Chars 5228 - 5254 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) +Chars 5263 - 5270 [intros.] 0. secs (0.u,0.s) +Chars 5271 - 5293 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) +Chars 5294 - 5312 [apply~Hincl;~auto.] 0. secs (0.u,0.s) Chars 5319 - 5320 [*] 0. secs (0.u,0.s) -Chars 5321 - 5376 [(apply~eq_trace_inv~in~Heqt0;~...] 0.009 secs (0.008u,0.s) +Chars 5321 - 5376 [apply~eq_trace_inv~in~Heqt0;~d...] 0.006 secs (0.006u,0.s) Chars 5385 - 5391 [subst.] 0. secs (0.u,0.s) Chars 5392 - 5404 [constructor.] 0. secs (0.u,0.s) Chars 5405 - 5411 [intro.] 0. secs (0.u,0.s) -Chars 5412 - 5422 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5423 - 5430 [(intros).] 0. secs (0.u,0.s) -Chars 5439 - 5516 [(assert~(is_traceF~(VisF~e~k)~...] 0. secs (0.u,0.s) -Chars 5525 - 5543 [(apply~Hincl~in~H1).] 0. secs (0.u,0.s) -Chars 5544 - 5551 [(inv~H1).] 0.009 secs (0.009u,0.s) -Chars 5552 - 5565 [ddestruction.] 0.005 secs (0.004u,0.s) +Chars 5412 - 5422 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5423 - 5430 [intros.] 0. secs (0.u,0.s) +Chars 5439 - 5516 [assert~(is_traceF~(VisF~e~k)~(...] 0. secs (0.u,0.s) +Chars 5525 - 5543 [apply~Hincl~in~H1.] 0. secs (0.u,0.s) +Chars 5544 - 5551 [inv~H1.] 0.007 secs (0.007u,0.s) +Chars 5552 - 5565 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 5566 - 5571 [auto.] 0. secs (0.u,0.s) Chars 5576 - 5577 [+] 0. secs (0.u,0.s) -Chars 5578 - 5591 [ddestruction.] 0.004 secs (0.004u,0.s) +Chars 5578 - 5591 [ddestruction.] 0.002 secs (0.002u,0.s) Chars 5592 - 5604 [constructor.] 0. secs (0.u,0.s) Chars 5605 - 5611 [intro.] 0. secs (0.u,0.s) -Chars 5612 - 5622 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 5623 - 5630 [(intros).] 0. secs (0.u,0.s) -Chars 5637 - 5716 [(assert~(is_traceF~(VisF~e0~k)...] 0. secs (0.u,0.s) -Chars 5723 - 5741 [(apply~Hincl~in~H0).] 0. secs (0.u,0.s) -Chars 5742 - 5749 [(inv~H0).] 0.009 secs (0.009u,0.s) -Chars 5750 - 5769 [(ddestruction;~auto).] 0.002 secs (0.002u,0.s) -Chars 5770 - 5774 [Qed.] 0.034 secs (0.034u,0.s) +Chars 5612 - 5622 [apply~CIH.] 0. secs (0.u,0.s) +Chars 5623 - 5630 [intros.] 0. secs (0.u,0.s) +Chars 5637 - 5716 [assert~(is_traceF~(VisF~e0~k)~...] 0. secs (0.u,0.s) +Chars 5723 - 5741 [apply~Hincl~in~H0.] 0. secs (0.u,0.s) +Chars 5742 - 5749 [inv~H0.] 0.006 secs (0.006u,0.s) +Chars 5750 - 5769 [ddestruction;~auto.] 0.003 secs (0.003u,0.s) +Chars 5770 - 5774 [Qed.] 0.021 secs (0.021u,0.s) Chars 5776 - 5879 [Theorem~trace_incl_iff_sutt~:~...] 0. secs (0.u,0.s) Chars 5880 - 5886 [Proof.] 0. secs (0.u,0.s) Chars 5889 - 5895 [split.] 0. secs (0.u,0.s) Chars 5898 - 5899 [-] 0. secs (0.u,0.s) -Chars 5900 - 5922 [(apply~sutt_trace_incl).] 0. secs (0.u,0.s) +Chars 5900 - 5922 [apply~sutt_trace_incl.] 0. secs (0.u,0.s) Chars 5925 - 5926 [-] 0. secs (0.u,0.s) -Chars 5927 - 5949 [(apply~trace_incl_sutt).] 0. secs (0.u,0.s) +Chars 5927 - 5949 [apply~trace_incl_sutt.] 0. secs (0.u,0.s) Chars 5950 - 5954 [Qed.] 0. secs (0.u,0.s) Chars 5956 - 6044 [Lemma~trace_eq_eutt~:~~~forall...] 0. secs (0.u,0.s) Chars 6045 - 6051 [Proof.] 0. secs (0.u,0.s) -Chars 6054 - 6077 [(intros~E~R~t1~t2~[?~?]).] 0. secs (0.u,0.s) -Chars 6078 - 6094 [(apply~sutt_eutt).] 0. secs (0.u,0.s) +Chars 6054 - 6077 [intros~E~R~t1~t2~[?~?].] 0.001 secs (0.001u,0.s) +Chars 6078 - 6094 [apply~sutt_eutt.] 0. secs (0.u,0.s) Chars 6097 - 6098 [-] 0. secs (0.u,0.s) -Chars 6099 - 6127 [(apply~trace_incl_sutt;~auto).] 0. secs (0.u,0.s) +Chars 6099 - 6127 [apply~trace_incl_sutt;~auto.] 0. secs (0.u,0.s) Chars 6130 - 6131 [-] 0. secs (0.u,0.s) -Chars 6132 - 6160 [(apply~trace_incl_sutt~in~H0).] 0. secs (0.u,0.s) +Chars 6132 - 6160 [apply~trace_incl_sutt~in~H0.] 0. secs (0.u,0.s) Chars 6161 - 6169 [clear~H.] 0. secs (0.u,0.s) Chars 6174 - 6198 [generalize~dependent~t1.] 0. secs (0.u,0.s) Chars 6199 - 6223 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 6228 - 6246 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6247 - 6263 [(intros~t1~t2~H0).] 0. secs (0.u,0.s) +Chars 6228 - 6246 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 6247 - 6263 [intros~t1~t2~H0.] 0. secs (0.u,0.s) Chars 6264 - 6275 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6280 - 6324 [(induction~H0;~constructor;~ea...] 0.004 secs (0.004u,0.s) -Chars 6329 - 6353 [(apply~(CIH~t0~(go~ot2))).] 0. secs (0.u,0.s) -Chars 6354 - 6367 [(apply~EQTAUS).] 0. secs (0.u,0.s) -Chars 6368 - 6372 [Qed.] 0.005 secs (0.005u,0.s) +Chars 6280 - 6324 [induction~H0;~constructor;~eau...] 0.002 secs (0.002u,0.s) +Chars 6329 - 6353 [apply~(CIH~t0~(go~ot2)).] 0. secs (0.u,0.s) +Chars 6354 - 6367 [apply~EQTAUS.] 0. secs (0.u,0.s) +Chars 6368 - 6372 [Qed.] 0.001 secs (0.001u,0.s) Chars 6374 - 6469 [Theorem~trace_eq_iff_eutt~:~~~...] 0. secs (0.u,0.s) Chars 6470 - 6476 [Proof.] 0. secs (0.u,0.s) Chars 6479 - 6485 [split.] 0. secs (0.u,0.s) Chars 6488 - 6489 [-] 0. secs (0.u,0.s) -Chars 6490 - 6510 [(apply~eutt_trace_eq).] 0. secs (0.u,0.s) +Chars 6490 - 6510 [apply~eutt_trace_eq.] 0. secs (0.u,0.s) Chars 6513 - 6514 [-] 0. secs (0.u,0.s) -Chars 6515 - 6535 [(apply~trace_eq_eutt).] 0. secs (0.u,0.s) +Chars 6515 - 6535 [apply~trace_eq_eutt.] 0. secs (0.u,0.s) Chars 6536 - 6540 [Qed.] 0. secs (0.u,0.s) Chars 6542 - 6630 [Inductive~event~(E~:~Type~->~T...] 0. secs (0.u,0.s) Chars 6725 - 7006 [Inductive~step_~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) @@ -219,5 +219,5 @@ Chars 7371 - 7500 [Theorem~simulates_trace_incl~{...] 0. secs (0.u,0.s) Chars 7501 - 7507 [Proof.] 0. secs (0.u,0.s) Chars 7508 - 7514 [Abort.] 0. secs (0.u,0.s) Chars 7542 - 7621 [Definition~traces~(E~:~Type~->...] 0. secs (0.u,0.s) -Chars 7623 - 7982 [Definition~bind_traces~{E~:~Ty...] 0.001 secs (0.001u,0.s) +Chars 7623 - 7982 [Definition~bind_traces~{E~:~Ty...] 0. secs (0.u,0.s) Chars 7984 - 8102 [Definition~ret_traces~{E~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Interp/TranslateFacts.v.timing b/theories/Interp/TranslateFacts.v.timing index c703edba..f48257e6 100644 --- a/theories/Interp/TranslateFacts.v.timing +++ b/theories/Interp/TranslateFacts.v.timing @@ -1,6 +1,6 @@ -Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.01 secs (0.007u,0.003s) -Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.05 secs (0.039u,0.01s) +Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) +Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.033 secs (0.027u,0.005s) Chars 412 - 434 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 451 - 474 [Section~TranslateFacts.] 0. secs (0.u,0.s) Chars 477 - 506 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) @@ -8,164 +8,164 @@ Chars 509 - 528 [Context~{R~:~Type}.] 0. secs (0.u,0.s) Chars 531 - 552 [Context~(h~:~E~~>~F).] 0. secs (0.u,0.s) Chars 554 - 707 [Lemma~unfold_translate_~:~~~fo...] 0. secs (0.u,0.s) Chars 708 - 714 [Proof.] 0. secs (0.u,0.s) -Chars 717 - 726 [(intros~t).] 0. secs (0.u,0.s) +Chars 717 - 726 [intros~t.] 0. secs (0.u,0.s) Chars 727 - 740 [econstructor.] 0. secs (0.u,0.s) Chars 741 - 753 [reflexivity.] 0. secs (0.u,0.s) Chars 754 - 758 [Qed.] 0. secs (0.u,0.s) -Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0.02 secs (0.018u,0.002s) +Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0.013 secs (0.012u,0.s) Chars 910 - 916 [Proof.] 0. secs (0.u,0.s) -Chars 919 - 926 [(intros).] 0. secs (0.u,0.s) -Chars 927 - 953 [(rewrite~unfold_translate_).] 0.002 secs (0.002u,0.s) +Chars 919 - 926 [intros.] 0. secs (0.u,0.s) +Chars 927 - 953 [rewrite~unfold_translate_.] 0.001 secs (0.001u,0.s) Chars 954 - 966 [reflexivity.] 0. secs (0.u,0.s) Chars 967 - 971 [Qed.] 0. secs (0.u,0.s) Chars 973 - 1039 [Lemma~translate_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 1040 - 1046 [Proof.] 0. secs (0.u,0.s) -Chars 1049 - 1058 [(intros~r).] 0. secs (0.u,0.s) -Chars 1061 - 1086 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) -Chars 1087 - 1091 [(cbn).] 0. secs (0.u,0.s) +Chars 1049 - 1058 [intros~r.] 0. secs (0.u,0.s) +Chars 1061 - 1086 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) +Chars 1087 - 1091 [cbn.] 0. secs (0.u,0.s) Chars 1092 - 1104 [reflexivity.] 0. secs (0.u,0.s) Chars 1105 - 1109 [Qed.] 0. secs (0.u,0.s) Chars 1111 - 1201 [Lemma~translate_tau~:~~~forall...] 0. secs (0.u,0.s) Chars 1202 - 1208 [Proof.] 0. secs (0.u,0.s) -Chars 1211 - 1220 [(intros~t).] 0. secs (0.u,0.s) -Chars 1223 - 1248 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) -Chars 1249 - 1253 [(cbn).] 0. secs (0.u,0.s) +Chars 1211 - 1220 [intros~t.] 0. secs (0.u,0.s) +Chars 1223 - 1248 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) +Chars 1249 - 1253 [cbn.] 0. secs (0.u,0.s) Chars 1254 - 1266 [reflexivity.] 0. secs (0.u,0.s) Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) Chars 1273 - 1405 [Lemma~translate_vis~:~~~forall...] 0. secs (0.u,0.s) Chars 1406 - 1412 [Proof.] 0. secs (0.u,0.s) -Chars 1415 - 1428 [(intros~X~e~k).] 0. secs (0.u,0.s) -Chars 1431 - 1456 [(rewrite~unfold_translate).] 0.001 secs (0.001u,0.s) -Chars 1457 - 1461 [(cbn).] 0. secs (0.u,0.s) +Chars 1415 - 1428 [intros~X~e~k.] 0. secs (0.u,0.s) +Chars 1431 - 1456 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) +Chars 1457 - 1461 [cbn.] 0. secs (0.u,0.s) Chars 1462 - 1474 [reflexivity.] 0. secs (0.u,0.s) Chars 1475 - 1479 [Qed.] 0. secs (0.u,0.s) Chars 1481 - 1582 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 1583 - 1589 [Proof.] 0. secs (0.u,0.s) Chars 1592 - 1600 [intros~!.] 0. secs (0.u,0.s) Chars 1601 - 1614 [revert~x~y~H.] 0. secs (0.u,0.s) -Chars 1615 - 1634 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 1635 - 1642 [(intros).] 0. secs (0.u,0.s) +Chars 1615 - 1634 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 1635 - 1642 [intros.] 0. secs (0.u,0.s) Chars 1646 - 1653 [to_mon.] 0. secs (0.u,0.s) -Chars 1657 - 1683 [(rewrite~!unfold_translate).] 0.065 secs (0.064u,0.s) +Chars 1657 - 1683 [rewrite~!unfold_translate.] 0.046 secs (0.046u,0.s) Chars 1686 - 1696 [step~in~H.] 0. secs (0.u,0.s) -Chars 1699 - 1745 [(induction~H;~simpobs;~simpl;~...] 0.016 secs (0.012u,0.003s) -Chars 1748 - 1752 [Qed.] 0.009 secs (0.007u,0.002s) +Chars 1699 - 1745 [induction~H;~simpobs;~simpl;~e...] 0.011 secs (0.009u,0.002s) +Chars 1748 - 1752 [Qed.] 0.006 secs (0.005u,0.001s) Chars 1754 - 1887 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1908 [(repeat~red).] 0. secs (0.u,0.s) -Chars 1909 - 1916 [(intros).] 0. secs (0.u,0.s) -Chars 1919 - 1983 [(rewrite~(itree_eta'~x),~(itre...] 0.011 secs (0.009u,0.002s) -Chars 1986 - 2004 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 1897 - 1908 [repeat~red.] 0. secs (0.u,0.s) +Chars 1909 - 1916 [intros.] 0. secs (0.u,0.s) +Chars 1919 - 1983 [rewrite~(itree_eta'~x),~(itree...] 0.007 secs (0.006u,0.001s) +Chars 1986 - 2004 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 2005 - 2009 [Qed.] 0.001 secs (0.001u,0.s) Chars 2011 - 2030 [End~TranslateFacts.] 0. secs (0.u,0.s) Chars 2032 - 2203 [Lemma~translate_bind~:~~~foral...] 0. secs (0.u,0.s) Chars 2204 - 2210 [Proof.] 0. secs (0.u,0.s) -Chars 2213 - 2234 [(intros~E~F~R~S~h~t~k).] 0. secs (0.u,0.s) +Chars 2213 - 2234 [intros~E~F~R~S~h~t~k.] 0. secs (0.u,0.s) Chars 2237 - 2250 [revert~S~t~k.] 0. secs (0.u,0.s) -Chars 2253 - 2272 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 2276 - 2289 [(intros~s~t~k).] 0. secs (0.u,0.s) +Chars 2253 - 2272 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 2276 - 2289 [intros~s~t~k.] 0. secs (0.u,0.s) Chars 2290 - 2297 [to_mon.] 0. secs (0.u,0.s) -Chars 2301 - 2393 [(match~goal~with~~|~|-~_~?t1~?...] 0.031 secs (0.03u,0.001s) -Chars 2396 - 2416 [(unfold~observe;~cbn).] 0. secs (0.u,0.s) -Chars 2419 - 2463 [(destruct~(observe~t);~cbn;~ea...] 0.004 secs (0.004u,0.s) -Chars 2465 - 2469 [Qed.] 0.009 secs (0.008u,0.s) +Chars 2301 - 2393 [match~goal~with~|~|-~_~?t1~?t2...] 0.021 secs (0.021u,0.s) +Chars 2396 - 2416 [unfold~observe;~cbn.] 0. secs (0.u,0.s) +Chars 2419 - 2463 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) +Chars 2465 - 2469 [Qed.] 0.005 secs (0.005u,0.s) Chars 2471 - 2546 [Lemma~translate_id~:~forall~E~...] 0. secs (0.u,0.s) Chars 2547 - 2553 [Proof.] 0. secs (0.u,0.s) -Chars 2556 - 2569 [(intros~E~R~t).] 0. secs (0.u,0.s) +Chars 2556 - 2569 [intros~E~R~t.] 0. secs (0.u,0.s) Chars 2572 - 2581 [revert~t.] 0. secs (0.u,0.s) -Chars 2584 - 2602 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 2603 - 2610 [(intros).] 0. secs (0.u,0.s) -Chars 2754 - 2776 [(rewrite~(itree_eta~t)).] 0.013 secs (0.013u,0.s) -Chars 2779 - 2804 [(rewrite~unfold_translate).] 0.013 secs (0.013u,0.s) -Chars 2807 - 2825 [(unfold~translateF).] 0. secs (0.u,0.s) -Chars 2828 - 2846 [(rewrite~itree_eta).] 0.015 secs (0.014u,0.s) -Chars 2849 - 2899 [(destruct~(observe~t);~cbn;~tr...] 0.001 secs (0.001u,0.s) -Chars 2902 - 2906 [Qed.] 0.006 secs (0.006u,0.s) +Chars 2584 - 2602 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 2603 - 2610 [intros.] 0. secs (0.u,0.s) +Chars 2754 - 2776 [rewrite~(itree_eta~t).] 0.009 secs (0.009u,0.s) +Chars 2779 - 2804 [rewrite~unfold_translate.] 0.009 secs (0.009u,0.s) +Chars 2807 - 2825 [unfold~translateF.] 0. secs (0.u,0.s) +Chars 2828 - 2846 [rewrite~itree_eta.] 0.01 secs (0.01u,0.s) +Chars 2849 - 2899 [destruct~(observe~t);~cbn;~try...] 0.001 secs (0.001u,0.s) +Chars 2902 - 2906 [Qed.] 0.004 secs (0.004u,0.s) Chars 2908 - 2928 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0.001 secs (0.001u,0.s) +Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0. secs (0.u,0.s) Chars 3074 - 3080 [Proof.] 0. secs (0.u,0.s) -Chars 3083 - 3104 [(intros~E~F~G~R~g~f~t).] 0. secs (0.u,0.s) +Chars 3083 - 3104 [intros~E~F~G~R~g~f~t.] 0. secs (0.u,0.s) Chars 3107 - 3116 [revert~t.] 0. secs (0.u,0.s) -Chars 3119 - 3137 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 3138 - 3145 [(intros).] 0. secs (0.u,0.s) -Chars 3149 - 3175 [(rewrite~!unfold_translate).] 0.09 secs (0.089u,0.s) -Chars 3178 - 3196 [(genobs_clear~t~ot).] 0.001 secs (0.001u,0.s) -Chars 3197 - 3238 [(destruct~ot;~cbn;~try~constru...] 0.001 secs (0.001u,0.s) -Chars 3240 - 3244 [Qed.] 0.006 secs (0.006u,0.s) +Chars 3119 - 3137 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 3138 - 3145 [intros.] 0. secs (0.u,0.s) +Chars 3149 - 3175 [rewrite~!unfold_translate.] 0.064 secs (0.064u,0.s) +Chars 3178 - 3196 [genobs_clear~t~ot.] 0. secs (0.u,0.s) +Chars 3197 - 3238 [destruct~ot;~cbn;~try~construc...] 0.001 secs (0.001u,0.s) +Chars 3240 - 3244 [Qed.] 0.004 secs (0.004u,0.s) Chars 3246 - 3419 [Definition~respectful_eq_itree...] 0. secs (0.u,0.s) Chars 3421 - 3582 [Definition~respectful_eutt~{E~...] 0. secs (0.u,0.s) -Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.004 secs (0.003u,0.s) +Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.003 secs (0.002u,0.s) Chars 3784 - 3967 [#[global]~Instance~eq_itree_ap...] 0. secs (0.u,0.s) Chars 3968 - 3974 [Proof.] 0. secs (0.u,0.s) -Chars 3977 - 3988 [(repeat~red).] 0. secs (0.u,0.s) -Chars 3989 - 3996 [(intros).] 0. secs (0.u,0.s) -Chars 3997 - 4013 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 3977 - 3988 [repeat~red.] 0. secs (0.u,0.s) +Chars 3989 - 3996 [intros.] 0. secs (0.u,0.s) +Chars 3997 - 4013 [repeat~red~in~H.] 0. secs (0.u,0.s) Chars 4014 - 4020 [eauto.] 0. secs (0.u,0.s) -Chars 4021 - 4025 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4021 - 4025 [Qed.] 0. secs (0.u,0.s) Chars 4027 - 4194 [#[global]~Instance~eutt_apply_...] 0. secs (0.u,0.s) Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) -Chars 4204 - 4215 [(repeat~red).] 0. secs (0.u,0.s) -Chars 4216 - 4223 [(intros).] 0. secs (0.u,0.s) -Chars 4224 - 4240 [(repeat~red~in~H).] 0. secs (0.u,0.s) +Chars 4204 - 4215 [repeat~red.] 0. secs (0.u,0.s) +Chars 4216 - 4223 [intros.] 0. secs (0.u,0.s) +Chars 4224 - 4240 [repeat~red~in~H.] 0. secs (0.u,0.s) Chars 4241 - 4247 [eauto.] 0. secs (0.u,0.s) -Chars 4248 - 4252 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4248 - 4252 [Qed.] 0. secs (0.u,0.s) Chars 4254 - 4409 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) Chars 4410 - 4416 [Proof.] 0. secs (0.u,0.s) -Chars 4419 - 4436 [(intros~f~g~Hfg~T).] 0. secs (0.u,0.s) -Chars 4439 - 4457 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 4458 - 4465 [(intros).] 0. secs (0.u,0.s) -Chars 4469 - 4496 [(rewrite~2!unfold_translate).] 0.032 secs (0.032u,0.s) +Chars 4419 - 4436 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) +Chars 4439 - 4457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4458 - 4465 [intros.] 0. secs (0.u,0.s) +Chars 4469 - 4496 [rewrite~2!unfold_translate.] 0.023 secs (0.023u,0.s) Chars 4499 - 4509 [step~in~H.] 0. secs (0.u,0.s) -Chars 4513 - 4574 [(destruct~H;~cbn;~try~easy;~tr...] 0.07 secs (0.07u,0.s) -Chars 4576 - 4580 [Qed.] 0.008 secs (0.008u,0.s) +Chars 4513 - 4574 [destruct~H;~cbn;~try~easy;~try...] 0.051 secs (0.051u,0.s) +Chars 4576 - 4580 [Qed.] 0.006 secs (0.006u,0.s) Chars 4582 - 4729 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) Chars 4730 - 4736 [Proof.] 0. secs (0.u,0.s) -Chars 4739 - 4750 [(repeat~red).] 0. secs (0.u,0.s) +Chars 4739 - 4750 [repeat~red.] 0. secs (0.u,0.s) Chars 4753 - 4768 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4771 - 4789 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 4790 - 4797 [(intros).] 0. secs (0.u,0.s) -Chars 4800 - 4826 [(rewrite~!unfold_translate).] 0.029 secs (0.029u,0.s) +Chars 4771 - 4789 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4790 - 4797 [intros.] 0. secs (0.u,0.s) +Chars 4800 - 4826 [rewrite~!unfold_translate.] 0.021 secs (0.021u,0.s) Chars 4827 - 4838 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4842 - 4887 [(induction~H0;~subst;~simpl;~e...] 0.009 secs (0.009u,0.s) +Chars 4842 - 4887 [induction~H0;~subst;~simpl;~ea...] 0.006 secs (0.006u,0.s) Chars 4891 - 4892 [-] 0. secs (0.u,0.s) -Chars 4893 - 4903 [(rewrite~H).] 0.001 secs (0.001u,0.s) +Chars 4893 - 4903 [rewrite~H.] 0.001 secs (0.001u,0.s) Chars 4904 - 4917 [econstructor.] 0. secs (0.u,0.s) Chars 4918 - 4935 [eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 4936 - 4940 [Qed.] 0.008 secs (0.008u,0.s) +Chars 4936 - 4940 [Qed.] 0.005 secs (0.005u,0.s) Chars 4942 - 5085 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) Chars 5086 - 5092 [Proof.] 0. secs (0.u,0.s) -Chars 5095 - 5106 [(repeat~red).] 0. secs (0.u,0.s) -Chars 5109 - 5130 [(apply~eutt_translate).] 0. secs (0.u,0.s) +Chars 5095 - 5106 [repeat~red.] 0. secs (0.u,0.s) +Chars 5109 - 5130 [apply~eutt_translate.] 0. secs (0.u,0.s) Chars 5133 - 5145 [reflexivity.] 0. secs (0.u,0.s) Chars 5146 - 5150 [Qed.] 0. secs (0.u,0.s) Chars 5152 - 5341 [Lemma~eutt_translate_gen~:~~~f...] 0. secs (0.u,0.s) Chars 5342 - 5348 [Proof.] 0. secs (0.u,0.s) -Chars 5351 - 5360 [(intros~*).] 0. secs (0.u,0.s) +Chars 5351 - 5360 [intros~*.] 0. secs (0.u,0.s) Chars 5363 - 5374 [revert~t~s.] 0. secs (0.u,0.s) -Chars 5377 - 5395 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 5396 - 5403 [(intros).] 0. secs (0.u,0.s) -Chars 5407 - 5433 [(rewrite~!unfold_translate).] 0.031 secs (0.031u,0.s) -Chars 5434 - 5444 [step~in~H.] 0. secs (0.u,0.s) -Chars 5448 - 5500 [(induction~H;~intros;~subst;~s...] 0.005 secs (0.005u,0.s) -Chars 5502 - 5506 [Qed.] 0.007 secs (0.007u,0.s) -Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0.001 secs (0.001u,0.s) +Chars 5377 - 5395 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 5396 - 5403 [intros.] 0. secs (0.u,0.s) +Chars 5407 - 5433 [rewrite~!unfold_translate.] 0.022 secs (0.021u,0.s) +Chars 5434 - 5444 [step~in~H.] 0.001 secs (0.001u,0.s) +Chars 5448 - 5500 [induction~H;~intros;~subst;~si...] 0.004 secs (0.004u,0.s) +Chars 5502 - 5506 [Qed.] 0.005 secs (0.005u,0.s) +Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0. secs (0.u,0.s) Chars 5648 - 5654 [Proof.] 0. secs (0.u,0.s) -Chars 5657 - 5746 [(intros;~unfold~trigger;~rewri...] 0.005 secs (0.005u,0.s) -Chars 5747 - 5751 [Qed.] 0.002 secs (0.001u,0.s) -Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0.003 secs (0.003u,0.s) +Chars 5657 - 5746 [intros;~unfold~trigger;~rewrit...] 0.003 secs (0.003u,0.s) +Chars 5747 - 5751 [Qed.] 0.001 secs (0.001u,0.s) +Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0. secs (0.u,0.s) Chars 5984 - 5990 [Proof.] 0. secs (0.u,0.s) -Chars 5993 - 6000 [(intros).] 0. secs (0.u,0.s) -Chars 6001 - 6028 [(rewrite~(itree_eta~t)~in~H).] 0.013 secs (0.013u,0.s) -Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.004 secs (0.004u,0.s) -Chars 6061 - 6126 [(desobs~t~Ht;~clear~t~Ht;~rewr...] 0.044 secs (0.043u,0.001s) +Chars 5993 - 6000 [intros.] 0. secs (0.u,0.s) +Chars 6001 - 6028 [rewrite~(itree_eta~t)~in~H.] 0.01 secs (0.01u,0.s) +Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.003 secs (0.003u,0.s) +Chars 6061 - 6126 [desobs~t~Ht;~clear~t~Ht;~rewri...] 0.03 secs (0.03u,0.s) Chars 6129 - 6130 [-] 0. secs (0.u,0.s) -Chars 6131 - 6147 [(step~in~H;~easy).] 0.002 secs (0.002u,0.s) +Chars 6131 - 6147 [step~in~H;~easy.] 0.002 secs (0.002u,0.s) Chars 6151 - 6152 [-] 0. secs (0.u,0.s) -Chars 6153 - 6166 [(sinv~H;~easy).] 0.007 secs (0.007u,0.s) +Chars 6153 - 6166 [sinv~H;~easy.] 0.005 secs (0.005u,0.s) Chars 6171 - 6172 [-] 0. secs (0.u,0.s) -Chars 6173 - 6211 [(apply~eqitree_inv_Vis_r~in~H;...] 0. secs (0.u,0.s) -Chars 6217 - 6226 [(cbn~in~H).] 0. secs (0.u,0.s) +Chars 6173 - 6211 [apply~eqitree_inv_Vis_r~in~H;~...] 0. secs (0.u,0.s) +Chars 6217 - 6226 [cbn~in~H.] 0. secs (0.u,0.s) Chars 6227 - 6235 [inv_Vis.] 0.001 secs (0.001u,0.s) Chars 6241 - 6253 [exists~e,k.] 0. secs (0.u,0.s) -Chars 6254 - 6271 [(repeat~now~split).] 0.002 secs (0.002u,0.s) -Chars 6273 - 6277 [Qed.] 0.011 secs (0.011u,0.s) +Chars 6254 - 6271 [repeat~now~split.] 0.001 secs (0.001u,0.s) +Chars 6273 - 6277 [Qed.] 0.008 secs (0.008u,0.s) diff --git a/theories/Props/Cofinite.v.timing b/theories/Props/Cofinite.v.timing index bc68b5c0..bf388a02 100644 --- a/theories/Props/Cofinite.v.timing +++ b/theories/Props/Cofinite.v.timing @@ -1,20 +1,20 @@ -Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.227 secs (0.196u,0.031s) -Chars 133 - 169 [From~Coinduction~Require~Impor...] 0.001 secs (0.001u,0.s) +Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.158 secs (0.14u,0.018s) +Chars 133 - 169 [From~Coinduction~Require~Impor...] 0. secs (0.u,0.s) Chars 171 - 273 [Theorem~not_all_infinite_any_f...] 0. secs (0.u,0.s) Chars 274 - 280 [Proof.] 0. secs (0.u,0.s) -Chars 283 - 296 [(intros~H1~H2).] 0. secs (0.u,0.s) -Chars 297 - 449 [(induction~H2;~apply~(gfp_fp~a...] 0.006 secs (0.004u,0.001s) -Chars 452 - 500 [all:~(rewrite~H~in~H0;~inversi...] 0.002 secs (0.001u,0.s) -Chars 503 - 516 [ddestruction.] 0.002 secs (0.002u,0.s) +Chars 283 - 296 [intros~H1~H2.] 0. secs (0.u,0.s) +Chars 297 - 449 [induction~H2;~apply~(gfp_fp~al...] 0.004 secs (0.003u,0.s) +Chars 452 - 500 [all:~rewrite~H~in~H0;~inversio...] 0.001 secs (0.001u,0.s) +Chars 503 - 516 [ddestruction.] 0.025 secs (0.024u,0.001s) Chars 517 - 545 [exact~(IHany_finite~(H3~_)).] 0. secs (0.u,0.s) -Chars 546 - 550 [Qed.] 0.044 secs (0.038u,0.005s) +Chars 546 - 550 [Qed.] 0.003 secs (0.003u,0.s) Chars 552 - 654 [Theorem~not_any_infinite_all_f...] 0. secs (0.u,0.s) Chars 655 - 661 [Proof.] 0. secs (0.u,0.s) -Chars 664 - 830 [(intros~H1~H2;~induction~H2;~a...] 0.005 secs (0.005u,0.s) +Chars 664 - 830 [intros~H1~H2;~induction~H2;~ap...] 0.003 secs (0.003u,0.s) Chars 833 - 834 [-] 0. secs (0.u,0.s) -Chars 835 - 878 [(rewrite~H~in~H0;~inversion~H0...] 0. secs (0.u,0.s) +Chars 835 - 878 [rewrite~H~in~H0;~inversion~H0;...] 0. secs (0.u,0.s) Chars 881 - 882 [-] 0. secs (0.u,0.s) -Chars 883 - 899 [(rewrite~H~in~H3).] 0. secs (0.u,0.s) -Chars 900 - 934 [(inversion~H3;~subst;~ddestruc...] 0.003 secs (0.003u,0.s) +Chars 883 - 899 [rewrite~H~in~H3.] 0. secs (0.u,0.s) +Chars 900 - 934 [inversion~H3;~subst;~ddestruct...] 0.002 secs (0.002u,0.s) Chars 939 - 955 [exact~(H2~_~H4).] 0. secs (0.u,0.s) -Chars 956 - 960 [Qed.] 0.005 secs (0.005u,0.s) +Chars 956 - 960 [Qed.] 0.003 secs (0.003u,0.s) diff --git a/theories/Props/EuttNoRet.v.timing b/theories/Props/EuttNoRet.v.timing index cb4bd5a8..6ef825e0 100644 --- a/theories/Props/EuttNoRet.v.timing +++ b/theories/Props/EuttNoRet.v.timing @@ -1,6 +1,6 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 83 - 185 [From~ITree~Require~Import~Axio...] 0.217 secs (0.191u,0.025s) +Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) +Chars 83 - 185 [From~ITree~Require~Import~Axio...] 0.157 secs (0.141u,0.016s) Chars 188 - 202 [Import~Monads.] 0. secs (0.u,0.s) Chars 203 - 224 [Import~MonadNotation.] 0. secs (0.u,0.s) Chars 225 - 257 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) @@ -8,262 +8,262 @@ Chars 259 - 282 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 560 - 668 [Definition~euttNoRet~{E}~{A~B~...] 0. secs (0.u,0.s) Chars 671 - 773 [Lemma~euttNoRet_spin~:~~~foral...] 0. secs (0.u,0.s) Chars 774 - 780 [Proof.] 0. secs (0.u,0.s) -Chars 783 - 790 [(intros).] 0. secs (0.u,0.s) -Chars 791 - 808 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 809 - 828 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) -Chars 829 - 833 [(cbn).] 0. secs (0.u,0.s) +Chars 783 - 790 [intros.] 0. secs (0.u,0.s) +Chars 791 - 808 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 809 - 828 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 829 - 833 [cbn.] 0. secs (0.u,0.s) Chars 834 - 846 [constructor.] 0. secs (0.u,0.s) Chars 847 - 857 [exact~CIH.] 0. secs (0.u,0.s) -Chars 858 - 862 [Qed.] 0.004 secs (0.003u,0.001s) +Chars 858 - 862 [Qed.] 0.003 secs (0.002u,0.s) Chars 864 - 1008 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) Chars 1009 - 1015 [Proof.] 0. secs (0.u,0.s) -Chars 1018 - 1031 [(intros~E~A~B).] 0. secs (0.u,0.s) -Chars 1032 - 1049 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 1050 - 1069 [icoinduction~c~CIH.] 0.003 secs (0.002u,0.s) -Chars 1070 - 1086 [(intros~t~f~Hdiv).] 0. secs (0.u,0.s) -Chars 1089 - 1129 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 1132 - 1167 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 1168 - 1197 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) -Chars 1200 - 1222 [(inversion~Hdiv;~subst).] 0.031 secs (0.028u,0.003s) +Chars 1018 - 1031 [intros~E~A~B.] 0. secs (0.u,0.s) +Chars 1032 - 1049 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 1050 - 1069 [icoinduction~c~CIH.] 0.002 secs (0.001u,0.s) +Chars 1070 - 1086 [intros~t~f~Hdiv.] 0. secs (0.u,0.s) +Chars 1089 - 1129 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 1132 - 1167 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 1168 - 1197 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) +Chars 1200 - 1222 [inversion~Hdiv;~subst.] 0.023 secs (0.022u,0.001s) Chars 1225 - 1226 [-] 0. secs (0.u,0.s) -Chars 1227 - 1252 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 1257 - 1278 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 1279 - 1292 [(rewrite~<-~H).] 0. secs (0.u,0.s) -Chars 1293 - 1297 [(cbn).] 0. secs (0.u,0.s) -Chars 1298 - 1310 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 1315 - 1364 [(change~(ITree.subst~f~t0)~wit...] 0. secs (0.u,0.s) -Chars 1369 - 1379 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 1227 - 1252 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 1257 - 1278 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 1279 - 1292 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 1293 - 1297 [cbn.] 0. secs (0.u,0.s) +Chars 1298 - 1310 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 1315 - 1364 [change~(ITree.subst~f~t0)~with...] 0. secs (0.u,0.s) +Chars 1369 - 1379 [apply~CIH.] 0. secs (0.u,0.s) Chars 1380 - 1385 [auto.] 0. secs (0.u,0.s) Chars 1388 - 1389 [-] 0. secs (0.u,0.s) -Chars 1390 - 1415 [(unfold~bind,~Monad_itree).] 0. secs (0.u,0.s) -Chars 1420 - 1441 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 1442 - 1455 [(rewrite~<-~H).] 0. secs (0.u,0.s) -Chars 1456 - 1460 [(cbn).] 0. secs (0.u,0.s) -Chars 1461 - 1473 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 1478 - 1487 [(intros~v).] 0. secs (0.u,0.s) -Chars 1488 - 1543 [(change~(ITree.subst~f~(k~v))~...] 0. secs (0.u,0.s) -Chars 1548 - 1558 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 1559 - 1568 [(apply~H0).] 0. secs (0.u,0.s) -Chars 1569 - 1573 [Qed.] 0.007 secs (0.007u,0.s) +Chars 1390 - 1415 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) +Chars 1420 - 1441 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 1442 - 1455 [rewrite~<-~H.] 0. secs (0.u,0.s) +Chars 1456 - 1460 [cbn.] 0. secs (0.u,0.s) +Chars 1461 - 1473 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 1478 - 1487 [intros~v.] 0. secs (0.u,0.s) +Chars 1488 - 1543 [change~(ITree.subst~f~(k~v))~w...] 0. secs (0.u,0.s) +Chars 1548 - 1558 [apply~CIH.] 0. secs (0.u,0.s) +Chars 1559 - 1568 [apply~H0.] 0. secs (0.u,0.s) +Chars 1569 - 1573 [Qed.] 0.005 secs (0.005u,0.s) Chars 1578 - 1767 [Lemma~euttNoRet_subrel~:~~~for...] 0. secs (0.u,0.s) Chars 1768 - 1774 [Proof.] 0. secs (0.u,0.s) -Chars 1777 - 1784 [(intros).] 0. secs (0.u,0.s) -Chars 1787 - 1905 [(eapply~eqit_mono~with~(b1~:=~...] 0.002 secs (0.002u,0.s) +Chars 1777 - 1784 [intros.] 0. secs (0.u,0.s) +Chars 1787 - 1905 [eapply~eqit_mono~with~(b1~:=~t...] 0.001 secs (0.001u,0.s) Chars 1906 - 1910 [Qed.] 0.001 secs (0.001u,0.s) Chars 1912 - 2122 [Lemma~all_infinite_euttNoRet~:...] 0. secs (0.u,0.s) Chars 2123 - 2129 [Proof.] 0. secs (0.u,0.s) -Chars 2132 - 2147 [(intros~E~A~B~R).] 0. secs (0.u,0.s) -Chars 2148 - 2165 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 2166 - 2185 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 2186 - 2210 [(intros~ta~tb~Hdiv~Heutt).] 0. secs (0.u,0.s) +Chars 2132 - 2147 [intros~E~A~B~R.] 0. secs (0.u,0.s) +Chars 2148 - 2165 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 2166 - 2185 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 2186 - 2210 [intros~ta~tb~Hdiv~Heutt.] 0. secs (0.u,0.s) Chars 2213 - 2227 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 2228 - 2256 [(cbn[eqit_mon~body]~in~Heutt).] 0. secs (0.u,0.s) -Chars 2257 - 2279 [(unfold~eqit_~in~Heutt).] 0. secs (0.u,0.s) -Chars 2282 - 2301 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) -Chars 2302 - 2315 [(unfold~eqit_).] 0. secs (0.u,0.s) -Chars 2318 - 2358 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 2361 - 2396 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2397 - 2426 [(unfold~all_infinite_~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2429 - 2455 [dependent~induction~Heutt.] 0.058 secs (0.056u,0.s) +Chars 2228 - 2256 [cbn[eqit_mon~body]~in~Heutt.] 0. secs (0.u,0.s) +Chars 2257 - 2279 [unfold~eqit_~in~Heutt.] 0. secs (0.u,0.s) +Chars 2282 - 2301 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) +Chars 2302 - 2315 [unfold~eqit_.] 0. secs (0.u,0.s) +Chars 2318 - 2358 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 2361 - 2396 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 2397 - 2426 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2429 - 2455 [dependent~induction~Heutt.] 0.045 secs (0.045u,0.s) Chars 2458 - 2459 [-] 0. secs (0.u,0.s) Chars 2460 - 2468 [exfalso.] 0. secs (0.u,0.s) -Chars 2469 - 2491 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2492 - 2507 [(inversion~Hdiv).] 0. secs (0.u,0.s) +Chars 2469 - 2491 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2492 - 2507 [inversion~Hdiv.] 0. secs (0.u,0.s) Chars 2510 - 2511 [-] 0. secs (0.u,0.s) -Chars 2512 - 2526 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 2527 - 2540 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 2541 - 2553 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 2554 - 2564 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2512 - 2526 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 2527 - 2540 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 2541 - 2553 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 2554 - 2564 [apply~CIH.] 0. secs (0.u,0.s) Chars 2569 - 2570 [+] 0. secs (0.u,0.s) -Chars 2571 - 2593 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2594 - 2616 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) +Chars 2571 - 2593 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2594 - 2616 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) Chars 2617 - 2622 [auto.] 0. secs (0.u,0.s) Chars 2627 - 2628 [+] 0. secs (0.u,0.s) Chars 2629 - 2634 [auto.] 0. secs (0.u,0.s) Chars 2637 - 2638 [-] 0. secs (0.u,0.s) -Chars 2639 - 2653 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 2654 - 2667 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 2668 - 2680 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 2681 - 2690 [(intros~v).] 0. secs (0.u,0.s) -Chars 2691 - 2701 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 2639 - 2653 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 2654 - 2667 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 2668 - 2680 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 2681 - 2690 [intros~v.] 0. secs (0.u,0.s) +Chars 2691 - 2701 [apply~CIH.] 0. secs (0.u,0.s) Chars 2706 - 2707 [+] 0. secs (0.u,0.s) -Chars 2708 - 2730 [(rewrite~<-~x0~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2731 - 2753 [(inversion~Hdiv;~subst).] 0.001 secs (0.001u,0.s) -Chars 2754 - 2767 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 2768 - 2777 [(apply~H0).] 0. secs (0.u,0.s) +Chars 2708 - 2730 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2731 - 2753 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) +Chars 2754 - 2767 [ddestruction.] 0.003 secs (0.002u,0.s) +Chars 2768 - 2777 [apply~H0.] 0. secs (0.u,0.s) Chars 2782 - 2783 [+] 0. secs (0.u,0.s) -Chars 2784 - 2794 [(apply~REL).] 0. secs (0.u,0.s) +Chars 2784 - 2794 [apply~REL.] 0. secs (0.u,0.s) Chars 2797 - 2798 [-] 0. secs (0.u,0.s) -Chars 2799 - 2812 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 2813 - 2832 [(apply~EqTauL;~auto).] 0.003 secs (0.003u,0.s) -Chars 2833 - 2853 [(apply~IHHeutt;~auto).] 0.001 secs (0.001u,0.s) -Chars 2858 - 2879 [(rewrite~<-~x~in~Hdiv).] 0. secs (0.u,0.s) -Chars 2880 - 2902 [(inversion~Hdiv;~subst).] 0. secs (0.u,0.s) -Chars 2907 - 2945 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 2950 - 2983 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2984 - 3011 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 2799 - 2812 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 2813 - 2832 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 2833 - 2853 [apply~IHHeutt;~auto.] 0. secs (0.u,0.s) +Chars 2858 - 2879 [rewrite~<-~x~in~Hdiv.] 0. secs (0.u,0.s) +Chars 2880 - 2902 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) +Chars 2907 - 2945 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 2950 - 2983 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 2984 - 3011 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) Chars 3012 - 3021 [exact~H0.] 0. secs (0.u,0.s) Chars 3024 - 3025 [-] 0. secs (0.u,0.s) -Chars 3026 - 3039 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 3040 - 3059 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) -Chars 3060 - 3064 [Qed.] 0.033 secs (0.032u,0.s) +Chars 3026 - 3039 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 3040 - 3059 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) +Chars 3060 - 3064 [Qed.] 0.023 secs (0.022u,0.s) Chars 3071 - 3215 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) Chars 3216 - 3222 [Proof.] 0. secs (0.u,0.s) -Chars 3225 - 3238 [(intros~E~A~B).] 0. secs (0.u,0.s) -Chars 3239 - 3259 [(unfold~all_infinite).] 0. secs (0.u,0.s) +Chars 3225 - 3238 [intros~E~A~B.] 0. secs (0.u,0.s) +Chars 3239 - 3259 [unfold~all_infinite.] 0. secs (0.u,0.s) Chars 3260 - 3278 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3279 - 3294 [(intros~t1~t2~H).] 0. secs (0.u,0.s) -Chars 3297 - 3324 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 3325 - 3346 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 3349 - 3371 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) +Chars 3279 - 3294 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 3297 - 3324 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 3325 - 3346 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 3349 - 3371 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) Chars 3372 - 3382 [step~in~H.] 0. secs (0.u,0.s) -Chars 3383 - 3407 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) -Chars 3408 - 3426 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) -Chars 3429 - 3470 [(dependent~induction~H;~try~co...] 0.02 secs (0.019u,0.001s) +Chars 3383 - 3407 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) +Chars 3408 - 3426 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) +Chars 3429 - 3470 [dependent~induction~H;~try~con...] 0.013 secs (0.012u,0.s) Chars 3473 - 3474 [-] 0. secs (0.u,0.s) -Chars 3475 - 3489 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 3475 - 3489 [rewrite~<-~x0.] 0. secs (0.u,0.s) Chars 3490 - 3502 [constructor.] 0. secs (0.u,0.s) -Chars 3503 - 3529 [(apply~CIH~with~(t2~:=~m2)).] 0. secs (0.u,0.s) -Chars 3530 - 3547 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3503 - 3529 [apply~CIH~with~(t2~:=~m2).] 0. secs (0.u,0.s) +Chars 3530 - 3547 [unfold~euttNoRet.] 0. secs (0.u,0.s) Chars 3548 - 3553 [auto.] 0. secs (0.u,0.s) Chars 3556 - 3557 [-] 0. secs (0.u,0.s) -Chars 3558 - 3572 [(rewrite~<-~x0).] 0. secs (0.u,0.s) +Chars 3558 - 3572 [rewrite~<-~x0.] 0. secs (0.u,0.s) Chars 3573 - 3585 [constructor.] 0. secs (0.u,0.s) -Chars 3586 - 3595 [(intros~v).] 0. secs (0.u,0.s) -Chars 3596 - 3624 [(apply~CIH~with~(t2~:=~k2~v)).] 0. secs (0.u,0.s) -Chars 3629 - 3646 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 3647 - 3657 [(apply~REL).] 0. secs (0.u,0.s) +Chars 3586 - 3595 [intros~v.] 0. secs (0.u,0.s) +Chars 3596 - 3624 [apply~CIH~with~(t2~:=~k2~v).] 0. secs (0.u,0.s) +Chars 3629 - 3646 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3647 - 3657 [apply~REL.] 0. secs (0.u,0.s) Chars 3660 - 3661 [-] 0. secs (0.u,0.s) -Chars 3662 - 3675 [(rewrite~<-~x).] 0. secs (0.u,0.s) +Chars 3662 - 3675 [rewrite~<-~x.] 0. secs (0.u,0.s) Chars 3676 - 3688 [constructor.] 0. secs (0.u,0.s) -Chars 3689 - 3715 [(apply~CIH~with~(t2~:=~t2)).] 0. secs (0.u,0.s) -Chars 3716 - 3733 [(unfold~euttNoRet).] 0. secs (0.u,0.s) +Chars 3689 - 3715 [apply~CIH~with~(t2~:=~t2).] 0. secs (0.u,0.s) +Chars 3716 - 3733 [unfold~euttNoRet.] 0. secs (0.u,0.s) Chars 3738 - 3743 [step.] 0.001 secs (0.001u,0.s) -Chars 3744 - 3763 [(cbn[eqit_mon~body]).] 0. secs (0.u,0.s) -Chars 3764 - 3777 [(unfold~eqit_).] 0. secs (0.u,0.s) +Chars 3744 - 3763 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) +Chars 3764 - 3777 [unfold~eqit_.] 0. secs (0.u,0.s) Chars 3778 - 3783 [auto.] 0. secs (0.u,0.s) Chars 3786 - 3787 [-] 0. secs (0.u,0.s) -Chars 3788 - 3810 [(eapply~IHeqitF;~eauto).] 0. secs (0.u,0.s) -Chars 3811 - 3815 [Qed.] 0.011 secs (0.011u,0.s) +Chars 3788 - 3810 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) +Chars 3811 - 3815 [Qed.] 0.008 secs (0.008u,0.s) Chars 3818 - 3953 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) Chars 3954 - 3960 [Proof.] 0. secs (0.u,0.s) -Chars 3963 - 3976 [(intros~E~A~B).] 0. secs (0.u,0.s) -Chars 3977 - 3994 [(unfold~euttNoRet).] 0. secs (0.u,0.s) -Chars 3995 - 4014 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 4015 - 4030 [(intros~t1~t2~H).] 0. secs (0.u,0.s) -Chars 4033 - 4055 [(unfold~euttNoRet~in~H).] 0. secs (0.u,0.s) +Chars 3963 - 3976 [intros~E~A~B.] 0. secs (0.u,0.s) +Chars 3977 - 3994 [unfold~euttNoRet.] 0. secs (0.u,0.s) +Chars 3995 - 4014 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 4015 - 4030 [intros~t1~t2~H.] 0. secs (0.u,0.s) +Chars 4033 - 4055 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) Chars 4056 - 4066 [step~in~H.] 0. secs (0.u,0.s) -Chars 4067 - 4091 [(cbn[eqit_mon~body]~in~H).] 0. secs (0.u,0.s) -Chars 4092 - 4110 [(unfold~eqit_~in~H).] 0. secs (0.u,0.s) -Chars 4113 - 4154 [(dependent~induction~H;~try~co...] 0.028 secs (0.026u,0.001s) +Chars 4067 - 4091 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) +Chars 4092 - 4110 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) +Chars 4113 - 4154 [dependent~induction~H;~try~con...] 0.02 secs (0.019u,0.s) Chars 4157 - 4158 [-] 0. secs (0.u,0.s) -Chars 4159 - 4173 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 4174 - 4187 [(rewrite~<-~x).] 0.002 secs (0.002u,0.s) -Chars 4188 - 4200 [(apply~EqTau).] 0. secs (0.u,0.s) -Chars 4201 - 4211 [(apply~CIH).] 0. secs (0.u,0.s) +Chars 4159 - 4173 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 4174 - 4187 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4188 - 4200 [apply~EqTau.] 0. secs (0.u,0.s) +Chars 4201 - 4211 [apply~CIH.] 0. secs (0.u,0.s) Chars 4212 - 4217 [auto.] 0. secs (0.u,0.s) Chars 4220 - 4221 [-] 0. secs (0.u,0.s) -Chars 4222 - 4236 [(rewrite~<-~x0).] 0. secs (0.u,0.s) -Chars 4237 - 4250 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4251 - 4263 [(apply~EqVis).] 0. secs (0.u,0.s) -Chars 4264 - 4273 [(intros~v).] 0. secs (0.u,0.s) -Chars 4274 - 4284 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 4285 - 4295 [(apply~REL).] 0. secs (0.u,0.s) +Chars 4222 - 4236 [rewrite~<-~x0.] 0. secs (0.u,0.s) +Chars 4237 - 4250 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4251 - 4263 [apply~EqVis.] 0. secs (0.u,0.s) +Chars 4264 - 4273 [intros~v.] 0. secs (0.u,0.s) +Chars 4274 - 4284 [apply~CIH.] 0. secs (0.u,0.s) +Chars 4285 - 4295 [apply~REL.] 0. secs (0.u,0.s) Chars 4298 - 4299 [-] 0. secs (0.u,0.s) -Chars 4300 - 4313 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4314 - 4333 [(apply~EqTauR;~auto).] 0. secs (0.u,0.s) +Chars 4300 - 4313 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4314 - 4333 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) Chars 4336 - 4337 [-] 0. secs (0.u,0.s) -Chars 4338 - 4351 [(rewrite~<-~x).] 0. secs (0.u,0.s) -Chars 4352 - 4371 [(apply~EqTauL;~auto).] 0. secs (0.u,0.s) -Chars 4372 - 4376 [Qed.] 0.031 secs (0.031u,0.s) +Chars 4338 - 4351 [rewrite~<-~x.] 0. secs (0.u,0.s) +Chars 4352 - 4371 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) +Chars 4372 - 4376 [Qed.] 0.022 secs (0.022u,0.s) Chars 4378 - 4560 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) Chars 4561 - 4567 [Proof.] 0. secs (0.u,0.s) -Chars 4570 - 4577 [(intros).] 0. secs (0.u,0.s) -Chars 4578 - 4627 [(apply~noret_bind_nop~with~(B~...] 0. secs (0.u,0.s) -Chars 4630 - 4655 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 4656 - 4690 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) +Chars 4570 - 4577 [intros.] 0. secs (0.u,0.s) +Chars 4578 - 4627 [apply~noret_bind_nop~with~(B~:...] 0. secs (0.u,0.s) +Chars 4630 - 4655 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 4656 - 4690 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) Chars 4691 - 4696 [auto.] 0. secs (0.u,0.s) Chars 4697 - 4701 [Qed.] 0. secs (0.u,0.s) Chars 4708 - 4914 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) Chars 4915 - 4921 [Proof.] 0. secs (0.u,0.s) -Chars 4924 - 4931 [(intros).] 0. secs (0.u,0.s) -Chars 4932 - 4954 [(unfold~euttNoRet~in~*).] 0. secs (0.u,0.s) -Chars 4957 - 5084 [(eapply~eqit_mono~with~(b1~:=~...] 0.004 secs (0.003u,0.s) +Chars 4924 - 4931 [intros.] 0. secs (0.u,0.s) +Chars 4932 - 4954 [unfold~euttNoRet~in~*.] 0. secs (0.u,0.s) +Chars 4957 - 5084 [eapply~eqit_mono~with~(b1~:=~t...] 0.002 secs (0.002u,0.s) Chars 5087 - 5088 [-] 0. secs (0.u,0.s) -Chars 5089 - 5103 [(intros~x~y~Hc).] 0. secs (0.u,0.s) -Chars 5104 - 5132 [(inversion~Hc;~contradiction).] 0. secs (0.u,0.s) +Chars 5089 - 5103 [intros~x~y~Hc.] 0. secs (0.u,0.s) +Chars 5104 - 5132 [inversion~Hc;~contradiction.] 0. secs (0.u,0.s) Chars 5135 - 5136 [-] 0. secs (0.u,0.s) -Chars 5137 - 5162 [(eapply~eqit_trans;~eauto).] 0.001 secs (0.001u,0.s) -Chars 5163 - 5167 [Qed.] 0.002 secs (0.002u,0.s) +Chars 5137 - 5162 [eapply~eqit_trans;~eauto.] 0. secs (0.u,0.s) +Chars 5163 - 5167 [Qed.] 0.001 secs (0.001u,0.s) Chars 5170 - 5289 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) Chars 5290 - 5296 [Proof.] 0. secs (0.u,0.s) -Chars 5299 - 5328 [(intros~t1~t2~Ht12~t3~t4~Ht34).] 0. secs (0.u,0.s) -Chars 5329 - 5343 [(split;~intros).] 0. secs (0.u,0.s) +Chars 5299 - 5328 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) +Chars 5329 - 5343 [split;~intros.] 0. secs (0.u,0.s) Chars 5346 - 5347 [-] 0. secs (0.u,0.s) -Chars 5348 - 5389 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5390 - 5415 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 5421 - 5462 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5467 - 5505 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 5348 - 5389 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5390 - 5415 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 5421 - 5462 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5467 - 5505 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) Chars 5510 - 5511 [+] 0. secs (0.u,0.s) -Chars 5512 - 5550 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 5512 - 5550 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) Chars 5557 - 5558 [*] 0. secs (0.u,0.s) -Chars 5559 - 5579 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 5580 - 5617 [(eapply~all_infinite_euttNoRet...] 0.002 secs (0.002u,0.s) +Chars 5559 - 5579 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 5580 - 5617 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) Chars 5624 - 5625 [*] 0. secs (0.u,0.s) -Chars 5626 - 5646 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 5626 - 5646 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) Chars 5647 - 5652 [auto.] 0. secs (0.u,0.s) Chars 5657 - 5658 [+] 0. secs (0.u,0.s) -Chars 5659 - 5696 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) +Chars 5659 - 5696 [eapply~all_infinite_euttNoRet;...] 0. secs (0.u,0.s) Chars 5699 - 5700 [-] 0. secs (0.u,0.s) -Chars 5701 - 5742 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5748 - 5773 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 5774 - 5815 [(apply~euttNoRet_all_infinite~...] 0. secs (0.u,0.s) -Chars 5820 - 5845 [(assert~(euttNoRet~t1~t2)).] 0. secs (0.u,0.s) +Chars 5701 - 5742 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5748 - 5773 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 5774 - 5815 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) +Chars 5820 - 5845 [assert~(euttNoRet~t1~t2).] 0. secs (0.u,0.s) Chars 5850 - 5851 [{] 0. secs (0.u,0.s) -Chars 5859 - 5879 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 5880 - 5904 [(apply~eutt_flip~in~Ht12).] 0. secs (0.u,0.s) -Chars 5912 - 5949 [(eapply~all_infinite_euttNoRet...] 0.003 secs (0.003u,0.s) +Chars 5859 - 5879 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 5880 - 5904 [apply~eutt_flip~in~Ht12.] 0. secs (0.u,0.s) +Chars 5912 - 5949 [eapply~all_infinite_euttNoRet;...] 0.002 secs (0.002u,0.s) Chars 5954 - 5955 [}] 0. secs (0.u,0.s) -Chars 5960 - 5985 [(assert~(euttNoRet~t3~t4)).] 0. secs (0.u,0.s) +Chars 5960 - 5985 [assert~(euttNoRet~t3~t4).] 0. secs (0.u,0.s) Chars 5990 - 5991 [{] 0. secs (0.u,0.s) -Chars 5998 - 6018 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 6019 - 6043 [(apply~eutt_flip~in~Ht34).] 0. secs (0.u,0.s) -Chars 6050 - 6087 [(eapply~all_infinite_euttNoRet...] 0.001 secs (0.001u,0.s) +Chars 5998 - 6018 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 6019 - 6043 [apply~eutt_flip~in~Ht34.] 0. secs (0.u,0.s) +Chars 6050 - 6087 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) Chars 6092 - 6093 [}] 0. secs (0.u,0.s) -Chars 6098 - 6123 [(apply~euttNoRet_sym~in~H).] 0. secs (0.u,0.s) -Chars 6128 - 6166 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 6098 - 6123 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) +Chars 6128 - 6166 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) Chars 6171 - 6172 [+] 0. secs (0.u,0.s) -Chars 6173 - 6217 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) +Chars 6173 - 6217 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) Chars 6222 - 6223 [+] 0. secs (0.u,0.s) -Chars 6224 - 6244 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) +Chars 6224 - 6244 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) Chars 6245 - 6250 [auto.] 0. secs (0.u,0.s) -Chars 6251 - 6255 [Qed.] 0.001 secs (0.001u,0.s) +Chars 6251 - 6255 [Qed.] 0. secs (0.u,0.s) Chars 6257 - 6346 [Definition~noret_cast~{E}~{A}~...] 0. secs (0.u,0.s) Chars 6348 - 6466 [Lemma~noret_cast_nop~:~~~foral...] 0. secs (0.u,0.s) Chars 6467 - 6473 [Proof.] 0. secs (0.u,0.s) -Chars 6476 - 6483 [(intros).] 0. secs (0.u,0.s) -Chars 6484 - 6507 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 6508 - 6529 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 6476 - 6483 [intros.] 0. secs (0.u,0.s) +Chars 6484 - 6507 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 6508 - 6529 [apply~noret_bind_nop.] 0. secs (0.u,0.s) Chars 6530 - 6535 [auto.] 0. secs (0.u,0.s) Chars 6536 - 6540 [Qed.] 0.001 secs (0.001u,0.s) Chars 6542 - 6649 [#[global]~Instance~proper_nore...] 0. secs (0.u,0.s) Chars 6650 - 6656 [Proof.] 0. secs (0.u,0.s) -Chars 6659 - 6678 [(intros~t1~t2~Heutt).] 0. secs (0.u,0.s) -Chars 6679 - 6697 [(unfold~noret_cast).] 0. secs (0.u,0.s) -Chars 6698 - 6702 [(cbn).] 0. secs (0.u,0.s) -Chars 6703 - 6717 [(rewrite~Heutt).] 0.003 secs (0.003u,0.s) +Chars 6659 - 6678 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) +Chars 6679 - 6697 [unfold~noret_cast.] 0. secs (0.u,0.s) +Chars 6698 - 6702 [cbn.] 0. secs (0.u,0.s) +Chars 6703 - 6717 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) Chars 6718 - 6730 [reflexivity.] 0. secs (0.u,0.s) -Chars 6731 - 6735 [Qed.] 0.003 secs (0.003u,0.s) +Chars 6731 - 6735 [Qed.] 0.002 secs (0.002u,0.s) Chars 6737 - 6940 [Ltac~~infer_noret~H~:=~~~match...] 0. secs (0.u,0.s) Chars 6942 - 7121 [Lemma~noret_cast_cast~E~(A~B~:...] 0. secs (0.u,0.s) Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) -Chars 7131 - 7138 [(intros).] 0. secs (0.u,0.s) -Chars 7139 - 7162 [(apply~euttNoRet_subrel).] 0. secs (0.u,0.s) -Chars 7165 - 7206 [(apply~all_infinite_euttNoRet~...] 0.001 secs (0.001u,0.s) -Chars 7209 - 7224 [(infer_noret~H0).] 0. secs (0.u,0.s) -Chars 7227 - 7297 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 7300 - 7344 [(apply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 7347 - 7367 [(apply~euttNoRet_sym).] 0. secs (0.u,0.s) -Chars 7368 - 7389 [(apply~noret_bind_nop).] 0. secs (0.u,0.s) +Chars 7131 - 7138 [intros.] 0. secs (0.u,0.s) +Chars 7139 - 7162 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) +Chars 7165 - 7206 [apply~all_infinite_euttNoRet~i...] 0. secs (0.u,0.s) +Chars 7209 - 7224 [infer_noret~H0.] 0. secs (0.u,0.s) +Chars 7227 - 7297 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 7300 - 7344 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) +Chars 7347 - 7367 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) +Chars 7368 - 7389 [apply~noret_bind_nop.] 0. secs (0.u,0.s) Chars 7390 - 7395 [auto.] 0. secs (0.u,0.s) Chars 7396 - 7400 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Finite.v.timing b/theories/Props/Finite.v.timing index 16cd42f6..e0000ee5 100644 --- a/theories/Props/Finite.v.timing +++ b/theories/Props/Finite.v.timing @@ -1,363 +1,363 @@ -Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.095 secs (0.077u,0.017s) -Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.031 secs (0.026u,0.004s) -Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.s) +Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.064 secs (0.054u,0.009s) +Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.022 secs (0.019u,0.002s) +Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) Chars 305 - 318 [Import~ITree.] 0. secs (0.u,0.s) Chars 319 - 341 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 342 - 363 [Import~LeafNotations.] 0. secs (0.u,0.s) -Chars 1116 - 1458 [Inductive~all_finite~{E}~{A~:~...] 0.002 secs (0.002u,0.s) +Chars 1116 - 1458 [Inductive~all_finite~{E}~{A~:~...] 0.001 secs (0.001u,0.s) Chars 1459 - 1506 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) -Chars 1573 - 1905 [Inductive~any_finite~{E}~{A~:~...] 0.002 secs (0.002u,0.s) +Chars 1573 - 1905 [Inductive~any_finite~{E}~{A~:~...] 0.001 secs (0.001u,0.s) Chars 1906 - 1953 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) Chars 1999 - 2062 [Lemma~all_finite_Ret~:~forall~...] 0. secs (0.u,0.s) Chars 2063 - 2069 [Proof.] 0. secs (0.u,0.s) -Chars 2072 - 2108 [(intros;~econstructor~1;~refle...] 0. secs (0.u,0.s) +Chars 2072 - 2108 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) Chars 2109 - 2113 [Qed.] 0. secs (0.u,0.s) Chars 2114 - 2160 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) Chars 2162 - 2243 [Lemma~all_finite_Tau~:~forall~...] 0. secs (0.u,0.s) Chars 2244 - 2250 [Proof.] 0. secs (0.u,0.s) -Chars 2253 - 2299 [(intros;~econstructor~2;~[~ref...] 0. secs (0.u,0.s) +Chars 2253 - 2299 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) Chars 2305 - 2351 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) Chars 2353 - 2464 [Lemma~all_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) -Chars 2474 - 2520 [(intros;~econstructor~3;~[~ref...] 0. secs (0.u,0.s) +Chars 2474 - 2520 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) Chars 2521 - 2525 [Qed.] 0. secs (0.u,0.s) Chars 2526 - 2572 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) Chars 2574 - 2653 [Lemma~all_finite_trigger~:~for...] 0. secs (0.u,0.s) Chars 2654 - 2660 [Proof.] 0. secs (0.u,0.s) -Chars 2663 - 2670 [(intros).] 0. secs (0.u,0.s) -Chars 2671 - 2692 [(apply~all_finite_Vis).] 0. secs (0.u,0.s) +Chars 2663 - 2670 [intros.] 0. secs (0.u,0.s) +Chars 2671 - 2692 [apply~all_finite_Vis.] 0. secs (0.u,0.s) Chars 2693 - 2709 [auto~with~itree.] 0. secs (0.u,0.s) Chars 2710 - 2714 [Qed.] 0. secs (0.u,0.s) Chars 2715 - 2800 [#[global]~Hint~Extern~1~(all_f...] 0. secs (0.u,0.s) Chars 2819 - 2882 [Lemma~any_finite_Ret~:~forall~...] 0. secs (0.u,0.s) Chars 2883 - 2889 [Proof.] 0. secs (0.u,0.s) -Chars 2892 - 2928 [(intros;~econstructor~1;~refle...] 0. secs (0.u,0.s) +Chars 2892 - 2928 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) Chars 2929 - 2933 [Qed.] 0. secs (0.u,0.s) Chars 2934 - 2980 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) Chars 2982 - 3063 [Lemma~any_finite_Tau~:~forall~...] 0. secs (0.u,0.s) Chars 3064 - 3070 [Proof.] 0. secs (0.u,0.s) -Chars 3073 - 3119 [(intros;~econstructor~2;~[~ref...] 0. secs (0.u,0.s) +Chars 3073 - 3119 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) Chars 3120 - 3124 [Qed.] 0. secs (0.u,0.s) Chars 3125 - 3171 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) Chars 3173 - 3274 [Lemma~any_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) Chars 3275 - 3281 [Proof.] 0. secs (0.u,0.s) -Chars 3284 - 3330 [(intros;~econstructor~3;~[~ref...] 0. secs (0.u,0.s) +Chars 3284 - 3330 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) Chars 3331 - 3335 [Qed.] 0. secs (0.u,0.s) Chars 3336 - 3382 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) Chars 3384 - 3470 [Lemma~any_finite_trigger~:~~~f...] 0. secs (0.u,0.s) Chars 3471 - 3477 [Proof.] 0. secs (0.u,0.s) -Chars 3480 - 3487 [(intros).] 0. secs (0.u,0.s) -Chars 3488 - 3523 [(apply~any_finite_Vis~with~(x~...] 0. secs (0.u,0.s) +Chars 3480 - 3487 [intros.] 0. secs (0.u,0.s) +Chars 3488 - 3523 [apply~any_finite_Vis~with~(x~:...] 0. secs (0.u,0.s) Chars 3524 - 3540 [auto~with~itree.] 0. secs (0.u,0.s) Chars 3541 - 3545 [Qed.] 0. secs (0.u,0.s) Chars 3546 - 3631 [#[global]~Hint~Extern~1~(any_f...] 0. secs (0.u,0.s) Chars 3675 - 3760 [Lemma~all_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3761 - 3767 [Proof.] 0. secs (0.u,0.s) -Chars 3770 - 3814 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.003 secs (0.003u,0.s) -Chars 3815 - 3819 [Qed.] 0.001 secs (0.001u,0.s) +Chars 3770 - 3814 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 3815 - 3819 [Qed.] 0. secs (0.u,0.s) Chars 3821 - 3934 [Lemma~all_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 3935 - 3941 [Proof.] 0. secs (0.u,0.s) -Chars 3944 - 3994 [(intros~*~FIN~x;~inv~FIN;~cbn~...] 0.003 secs (0.003u,0.s) +Chars 3944 - 3994 [intros~*~FIN~x;~inv~FIN;~cbn~i...] 0.033 secs (0.033u,0.s) Chars 3997 - 4007 [revert~H0.] 0. secs (0.u,0.s) -Chars 4010 - 4111 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 4010 - 4111 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) Chars 4114 - 4119 [auto.] 0. secs (0.u,0.s) -Chars 4120 - 4124 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4120 - 4124 [Qed.] 0. secs (0.u,0.s) Chars 4143 - 4228 [Lemma~any_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) Chars 4229 - 4235 [Proof.] 0. secs (0.u,0.s) -Chars 4238 - 4282 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.047 secs (0.045u,0.001s) -Chars 4283 - 4287 [Qed.] 0.001 secs (0.001u,0.s) +Chars 4238 - 4282 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) +Chars 4283 - 4287 [Qed.] 0. secs (0.u,0.s) Chars 4289 - 4402 [Lemma~any_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) Chars 4403 - 4409 [Proof.] 0. secs (0.u,0.s) -Chars 4412 - 4460 [(intros~*~FIN;~inv~FIN;~cbn~in...] 0.003 secs (0.003u,0.s) +Chars 4412 - 4460 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) Chars 4463 - 4475 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 4478 - 4579 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) +Chars 4478 - 4579 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) Chars 4582 - 4588 [eauto.] 0. secs (0.u,0.s) Chars 4589 - 4593 [Qed.] 0.001 secs (0.001u,0.s) Chars 4723 - 4849 [Lemma~all_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) Chars 4850 - 4856 [Proof.] 0. secs (0.u,0.s) -Chars 4859 - 4890 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) -Chars 4893 - 4921 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) +Chars 4859 - 4890 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) +Chars 4893 - 4921 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) Chars 4924 - 4925 [-] 0. secs (0.u,0.s) Chars 4926 - 4937 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4943 - 4968 [(rewrite~H~in~EQ;~clear~H).] 0. secs (0.u,0.s) -Chars 4973 - 5005 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 5010 - 5069 [(hinduction~EQ~before~R;~intro...] 0.007 secs (0.007u,0.s) +Chars 4943 - 4968 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) +Chars 4973 - 5005 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) +Chars 5010 - 5069 [hinduction~EQ~before~R;~intros...] 0.037 secs (0.036u,0.s) Chars 5072 - 5073 [-] 0. secs (0.u,0.s) -Chars 5074 - 5111 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 5116 - 5128 [(apply~IHFIN).] 0. secs (0.u,0.s) -Chars 5129 - 5151 [(rewrite~<-~tau_euttge).] 0.103 secs (0.087u,0.014s) -Chars 5152 - 5161 [now~step.] 0.002 secs (0.001u,0.s) +Chars 5074 - 5111 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 5116 - 5128 [apply~IHFIN.] 0. secs (0.u,0.s) +Chars 5129 - 5151 [rewrite~<-~tau_euttge.] 0.031 secs (0.027u,0.004s) +Chars 5152 - 5161 [now~step.] 0.001 secs (0.001u,0.s) Chars 5165 - 5166 [-] 0. secs (0.u,0.s) -Chars 5167 - 5204 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 5209 - 5244 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) -Chars 5249 - 5290 [(hinduction~EQ~before~R;~intro...] 0.007 secs (0.007u,0.s) +Chars 5167 - 5204 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 5209 - 5244 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) +Chars 5249 - 5290 [hinduction~EQ~before~R;~intros...] 0.007 secs (0.007u,0.s) Chars 5295 - 5296 [+] 0. secs (0.u,0.s) Chars 5297 - 5310 [revert~H0~H1.] 0. secs (0.u,0.s) -Chars 5317 - 5421 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) -Chars 5428 - 5445 [eauto~with~itree.] 0.003 secs (0.003u,0.s) +Chars 5317 - 5421 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) +Chars 5428 - 5445 [eauto~with~itree.] 0.002 secs (0.002u,0.s) Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5479 [(inv~Heqi;~eauto~with~itree).] 0.01 secs (0.009u,0.s) -Chars 5480 - 5484 [Qed.] 0.008 secs (0.007u,0.001s) +Chars 5452 - 5479 [inv~Heqi;~eauto~with~itree.] 0.005 secs (0.005u,0.s) +Chars 5480 - 5484 [Qed.] 0.005 secs (0.005u,0.s) Chars 5486 - 5612 [Lemma~all_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 5613 - 5619 [Proof.] 0. secs (0.u,0.s) -Chars 5622 - 5634 [(intros~*~EQ).] 0. secs (0.u,0.s) -Chars 5635 - 5657 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) +Chars 5622 - 5634 [intros~*~EQ.] 0. secs (0.u,0.s) +Chars 5635 - 5657 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) Chars 5658 - 5668 [revert~EQ.] 0. secs (0.u,0.s) -Chars 5669 - 5693 [(apply~all_finite_eutt_l).] 0. secs (0.u,0.s) +Chars 5669 - 5693 [apply~all_finite_eutt_l.] 0. secs (0.u,0.s) Chars 5694 - 5698 [Qed.] 0. secs (0.u,0.s) Chars 5700 - 5788 [#[global]~Instance~all_finite_...] 0. secs (0.u,0.s) Chars 5789 - 5795 [Proof.] 0. secs (0.u,0.s) -Chars 5798 - 5818 [(repeat~intro;~split).] 0. secs (0.u,0.s) +Chars 5798 - 5818 [repeat~intro;~split.] 0. secs (0.u,0.s) Chars 5821 - 5822 [-] 0. secs (0.u,0.s) -Chars 5823 - 5855 [(eapply~all_finite_eutt_l;~eau...] 0. secs (0.u,0.s) +Chars 5823 - 5855 [eapply~all_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) Chars 5858 - 5859 [-] 0. secs (0.u,0.s) -Chars 5860 - 5892 [(eapply~all_finite_eutt_r;~eau...] 0. secs (0.u,0.s) +Chars 5860 - 5892 [eapply~all_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) Chars 5893 - 5897 [Qed.] 0. secs (0.u,0.s) Chars 5916 - 6042 [Lemma~any_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) Chars 6043 - 6049 [Proof.] 0. secs (0.u,0.s) -Chars 6052 - 6083 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) -Chars 6086 - 6114 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) +Chars 6052 - 6083 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) +Chars 6086 - 6114 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) Chars 6117 - 6118 [-] 0. secs (0.u,0.s) Chars 6119 - 6130 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 6131 - 6156 [(rewrite~H~in~EQ;~clear~H).] 0. secs (0.u,0.s) -Chars 6161 - 6193 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 6198 - 6257 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.008u,0.s) +Chars 6131 - 6156 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) +Chars 6161 - 6193 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) +Chars 6198 - 6257 [hinduction~EQ~before~R;~intros...] 0.006 secs (0.006u,0.s) Chars 6260 - 6261 [-] 0. secs (0.u,0.s) -Chars 6262 - 6299 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 6306 - 6318 [(apply~IHFIN).] 0. secs (0.u,0.s) -Chars 6319 - 6341 [(rewrite~<-~tau_euttge).] 0.041 secs (0.039u,0.s) +Chars 6262 - 6299 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 6306 - 6318 [apply~IHFIN.] 0. secs (0.u,0.s) +Chars 6319 - 6341 [rewrite~<-~tau_euttge.] 0.025 secs (0.025u,0.s) Chars 6342 - 6351 [now~step.] 0.001 secs (0.001u,0.s) Chars 6355 - 6356 [-] 0. secs (0.u,0.s) -Chars 6357 - 6394 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 6399 - 6434 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) -Chars 6439 - 6480 [(hinduction~EQ~before~R;~intro...] 0.008 secs (0.008u,0.s) +Chars 6357 - 6394 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 6399 - 6434 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) +Chars 6439 - 6480 [hinduction~EQ~before~R;~intros...] 0.006 secs (0.006u,0.s) Chars 6485 - 6486 [+] 0. secs (0.u,0.s) Chars 6487 - 6506 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 6513 - 6617 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) -Chars 6624 - 6641 [eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 6513 - 6617 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) +Chars 6624 - 6641 [eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 6646 - 6647 [+] 0. secs (0.u,0.s) -Chars 6648 - 6675 [(inv~Heqi;~eauto~with~itree).] 0.008 secs (0.008u,0.s) -Chars 6676 - 6680 [Qed.] 0.007 secs (0.007u,0.s) +Chars 6648 - 6675 [inv~Heqi;~eauto~with~itree.] 0.004 secs (0.004u,0.s) +Chars 6676 - 6680 [Qed.] 0.004 secs (0.004u,0.s) Chars 6682 - 6808 [Lemma~any_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) Chars 6809 - 6815 [Proof.] 0. secs (0.u,0.s) -Chars 6818 - 6830 [(intros~*~EQ).] 0. secs (0.u,0.s) -Chars 6831 - 6853 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) +Chars 6818 - 6830 [intros~*~EQ.] 0. secs (0.u,0.s) +Chars 6831 - 6853 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) Chars 6854 - 6864 [revert~EQ.] 0. secs (0.u,0.s) -Chars 6865 - 6889 [(apply~any_finite_eutt_l).] 0. secs (0.u,0.s) +Chars 6865 - 6889 [apply~any_finite_eutt_l.] 0. secs (0.u,0.s) Chars 6890 - 6894 [Qed.] 0. secs (0.u,0.s) Chars 6896 - 6984 [#[global]~Instance~any_finite_...] 0. secs (0.u,0.s) Chars 6985 - 6991 [Proof.] 0. secs (0.u,0.s) Chars 6994 - 7000 [split.] 0. secs (0.u,0.s) -Chars 7003 - 7035 [(eapply~any_finite_eutt_l;~eau...] 0. secs (0.u,0.s) -Chars 7038 - 7070 [(eapply~any_finite_eutt_r;~eau...] 0. secs (0.u,0.s) +Chars 7003 - 7035 [eapply~any_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) +Chars 7038 - 7070 [eapply~any_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) Chars 7071 - 7075 [Qed.] 0. secs (0.u,0.s) Chars 7285 - 7450 [Lemma~all_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 7451 - 7457 [Proof.] 0. secs (0.u,0.s) -Chars 7460 - 7547 [(intros~*~FIN;~induction~FIN;~...] 0.007 secs (0.007u,0.s) -Chars 7548 - 7552 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7460 - 7547 [intros~*~FIN;~induction~FIN;~i...] 0.004 secs (0.004u,0.s) +Chars 7548 - 7552 [Qed.] 0.001 secs (0.001u,0.s) Chars 7554 - 7713 [Lemma~all_finite_bind_weak~:~~...] 0. secs (0.u,0.s) Chars 7714 - 7720 [Proof.] 0. secs (0.u,0.s) -Chars 7723 - 7759 [(intros;~apply~all_finite_bind...] 0. secs (0.u,0.s) +Chars 7723 - 7759 [intros;~apply~all_finite_bind;...] 0. secs (0.u,0.s) Chars 7760 - 7764 [Qed.] 0. secs (0.u,0.s) Chars 7821 - 7988 [Lemma~all_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) Chars 7989 - 7995 [Proof.] 0. secs (0.u,0.s) -Chars 7998 - 8011 [(intros~E~R~S).] 0. secs (0.u,0.s) -Chars 8014 - 8174 [(cut~~~(forall~u~:~itree~E~S,~...] 0. secs (0.u,0.s) -Chars 8177 - 8226 [(intros~LEM~*~FIN;~eapply~LEM;...] 0. secs (0.u,0.s) -Chars 8229 - 8254 [(induction~1;~intros~*~EQ).] 0. secs (0.u,0.s) +Chars 7998 - 8011 [intros~E~R~S.] 0. secs (0.u,0.s) +Chars 8014 - 8174 [cut~~(forall~u~:~itree~E~S,~~~...] 0. secs (0.u,0.s) +Chars 8177 - 8226 [intros~LEM~*~FIN;~eapply~LEM;~...] 0. secs (0.u,0.s) +Chars 8229 - 8254 [induction~1;~intros~*~EQ.] 0. secs (0.u,0.s) Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8301 [(rewrite~(itree_eta~t),~H~in~E...] 0.017 secs (0.016u,0.s) -Chars 8306 - 8371 [(symmetry~in~EQ;~apply~eqit_in...] 0. secs (0.u,0.s) -Chars 8376 - 8412 [(rewrite~EQt;~split;~auto~with...] 0.001 secs (0.001u,0.s) -Chars 8417 - 8429 [(intros~z~IN).] 0. secs (0.u,0.s) -Chars 8434 - 8485 [(rewrite~EQt~in~IN;~apply~Leaf...] 0.002 secs (0.002u,0.s) -Chars 8490 - 8519 [(rewrite~EQk;~auto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 8259 - 8301 [rewrite~(itree_eta~t),~H~in~EQ...] 0.011 secs (0.011u,0.s) +Chars 8306 - 8371 [symmetry~in~EQ;~apply~eqit_inv...] 0. secs (0.u,0.s) +Chars 8376 - 8412 [rewrite~EQt;~split;~auto~with~...] 0.001 secs (0.001u,0.s) +Chars 8417 - 8429 [intros~z~IN.] 0. secs (0.u,0.s) +Chars 8434 - 8485 [rewrite~EQt~in~IN;~apply~Leaf_...] 0.001 secs (0.001u,0.s) +Chars 8490 - 8519 [rewrite~EQk;~auto~with~itree.] 0.001 secs (0.001u,0.s) Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8566 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.017u,0.s) -Chars 8571 - 8594 [(rewrite~tau_eutt~in~EQ).] 0.014 secs (0.014u,0.s) +Chars 8524 - 8566 [rewrite~(itree_eta~t),~H~in~EQ...] 0.012 secs (0.012u,0.s) +Chars 8571 - 8594 [rewrite~tau_eutt~in~EQ.] 0.01 secs (0.01u,0.s) Chars 8599 - 8605 [eauto.] 0. secs (0.u,0.s) Chars 8608 - 8609 [-] 0. secs (0.u,0.s) -Chars 8610 - 8652 [(rewrite~(itree_eta~t),~H~in~E...] 0.018 secs (0.018u,0.s) -Chars 8657 - 8703 [(symmetry~in~EQ;~apply~eutt_in...] 0. secs (0.u,0.s) -Chars 8708 - 8760 [(destruct~EQ~as~[(kca,~(EQ,~EQ...] 0. secs (0.u,0.s) +Chars 8610 - 8652 [rewrite~(itree_eta~t),~H~in~EQ...] 0.011 secs (0.011u,0.s) +Chars 8657 - 8703 [symmetry~in~EQ;~apply~eutt_inv...] 0. secs (0.u,0.s) +Chars 8708 - 8760 [destruct~EQ~as~[(kca,~(EQ,~EQk...] 0. secs (0.u,0.s) Chars 8765 - 8766 [+] 0. secs (0.u,0.s) -Chars 8767 - 8778 [(rewrite~EQ).] 0.001 secs (0.001u,0.s) +Chars 8767 - 8778 [rewrite~EQ.] 0.001 secs (0.001u,0.s) Chars 8785 - 8791 [split.] 0. secs (0.u,0.s) -Chars 8798 - 8819 [(apply~all_finite_Vis).] 0. secs (0.u,0.s) -Chars 8826 - 8863 [(intros~?;~eapply~H1;~symmetry...] 0.001 secs (0.001u,0.s) -Chars 8870 - 8882 [(intros~x~IN).] 0. secs (0.u,0.s) -Chars 8889 - 8906 [(rewrite~EQ~in~IN).] 0.002 secs (0.002u,0.s) -Chars 8913 - 8950 [(apply~Leaf_Vis_inv~in~IN~as~(...] 0. secs (0.u,0.s) -Chars 8957 - 8981 [(edestruct~H1~as~(_,~H)).] 0. secs (0.u,0.s) -Chars 8988 - 9019 [(symmetry~in~EQk;~exact~(EQk~y)).] 0. secs (0.u,0.s) -Chars 9026 - 9038 [(apply~H,~IN).] 0. secs (0.u,0.s) +Chars 8798 - 8819 [apply~all_finite_Vis.] 0. secs (0.u,0.s) +Chars 8826 - 8863 [intros~?;~eapply~H1;~symmetry;...] 0.001 secs (0.001u,0.s) +Chars 8870 - 8882 [intros~x~IN.] 0. secs (0.u,0.s) +Chars 8889 - 8906 [rewrite~EQ~in~IN.] 0.001 secs (0.001u,0.s) +Chars 8913 - 8950 [apply~Leaf_Vis_inv~in~IN~as~(y...] 0. secs (0.u,0.s) +Chars 8957 - 8981 [edestruct~H1~as~(_,~H).] 0. secs (0.u,0.s) +Chars 8988 - 9019 [symmetry~in~EQk;~exact~(EQk~y).] 0. secs (0.u,0.s) +Chars 9026 - 9038 [apply~H,~IN.] 0. secs (0.u,0.s) Chars 9043 - 9044 [+] 0. secs (0.u,0.s) -Chars 9045 - 9080 [(rewrite~EQ;~split;~auto~with~...] 0.002 secs (0.002u,0.s) -Chars 9087 - 9099 [(intros~y~IN).] 0. secs (0.u,0.s) -Chars 9106 - 9156 [(rewrite~EQ~in~IN;~apply~Leaf_...] 0.003 secs (0.002u,0.s) -Chars 9163 - 9175 [(rewrite~EQk).] 0.001 secs (0.001u,0.s) +Chars 9045 - 9080 [rewrite~EQ;~split;~auto~with~i...] 0.001 secs (0.001u,0.s) +Chars 9087 - 9099 [intros~y~IN.] 0. secs (0.u,0.s) +Chars 9106 - 9156 [rewrite~EQ~in~IN;~apply~Leaf_R...] 0.001 secs (0.001u,0.s) +Chars 9163 - 9175 [rewrite~EQk.] 0. secs (0.u,0.s) Chars 9176 - 9193 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9194 - 9198 [Qed.] 0.005 secs (0.005u,0.s) +Chars 9194 - 9198 [Qed.] 0.003 secs (0.003u,0.s) Chars 9200 - 9329 [Lemma~all_finite_bind_inv_left...] 0. secs (0.u,0.s) Chars 9330 - 9336 [Proof.] 0. secs (0.u,0.s) -Chars 9339 - 9381 [(intros;~eapply~all_finite_bin...] 0. secs (0.u,0.s) +Chars 9339 - 9381 [intros;~eapply~all_finite_bind...] 0. secs (0.u,0.s) Chars 9382 - 9386 [Qed.] 0. secs (0.u,0.s) Chars 9588 - 9727 [Lemma~any_finite_bind~:~~~fora...] 0. secs (0.u,0.s) Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9737 - 9767 [(intros~*~IN~FIN;~induction~IN).] 0. secs (0.u,0.s) +Chars 9737 - 9767 [intros~*~IN~FIN;~induction~IN.] 0. secs (0.u,0.s) Chars 9770 - 9771 [-] 0. secs (0.u,0.s) -Chars 9772 - 9815 [(rewrite~(itree_eta~t),~H,~bin...] 0.003 secs (0.003u,0.s) +Chars 9772 - 9815 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) Chars 9818 - 9819 [-] 0. secs (0.u,0.s) -Chars 9820 - 9860 [(rewrite~unfold_bind,~H,~tau_e...] 0.002 secs (0.002u,0.s) +Chars 9820 - 9860 [rewrite~unfold_bind,~H,~tau_eu...] 0.002 secs (0.002u,0.s) Chars 9863 - 9864 [-] 0. secs (0.u,0.s) -Chars 9865 - 9888 [(rewrite~unfold_bind,~H).] 0.001 secs (0.001u,0.s) -Chars 9893 - 9922 [(eapply~any_finite_Vis;~eauto).] 0. secs (0.u,0.s) +Chars 9865 - 9888 [rewrite~unfold_bind,~H.] 0.001 secs (0.001u,0.s) +Chars 9893 - 9922 [eapply~any_finite_Vis;~eauto.] 0. secs (0.u,0.s) Chars 9923 - 9927 [Qed.] 0.001 secs (0.001u,0.s) Chars 10064 - 10234 [Lemma~any_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) Chars 10235 - 10241 [Proof.] 0. secs (0.u,0.s) -Chars 10244 - 10291 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) +Chars 10244 - 10291 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) Chars 10294 - 10310 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 10313 - 10362 [(induction~FIN;~intros~t'~k'~-...] 0. secs (0.u,0.s) +Chars 10313 - 10362 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) Chars 10365 - 10366 [-] 0. secs (0.u,0.s) -Chars 10367 - 10397 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 10402 - 10441 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 10446 - 10470 [(split;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 10367 - 10397 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 10402 - 10441 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 10446 - 10470 [split;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 10473 - 10474 [-] 0. secs (0.u,0.s) -Chars 10475 - 10505 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 10510 - 10549 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 10554 - 10578 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) -Chars 10583 - 10620 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) -Chars 10625 - 10660 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) -Chars 10665 - 10674 [(apply~H1).] 0. secs (0.u,0.s) -Chars 10679 - 10703 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 10475 - 10505 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 10510 - 10549 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 10554 - 10578 [split;~eauto~with~itree.] 0. secs (0.u,0.s) +Chars 10583 - 10620 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) +Chars 10625 - 10660 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) +Chars 10665 - 10674 [apply~H1.] 0. secs (0.u,0.s) +Chars 10679 - 10703 [split;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 10706 - 10707 [-] 0. secs (0.u,0.s) -Chars 10708 - 10738 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 10743 - 10782 [(desobs~t~teq;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) -Chars 10787 - 10811 [(split;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 10708 - 10738 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 10743 - 10782 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 10787 - 10811 [split;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 10816 - 10835 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 10840 - 10941 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) -Chars 10946 - 10953 [(intros).] 0. secs (0.u,0.s) -Chars 10958 - 11012 [(edestruct~IHFIN~as~(?,~(?,~(?...] 0. secs (0.u,0.s) -Chars 11017 - 11041 [(split;~eauto~with~itree).] 0.002 secs (0.002u,0.s) +Chars 10840 - 10941 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 10946 - 10953 [intros.] 0. secs (0.u,0.s) +Chars 10958 - 11012 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) +Chars 11017 - 11041 [split;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 11042 - 11046 [Qed.] 0.004 secs (0.004u,0.s) Chars 11048 - 11212 [Lemma~any_finite_bind_inv_weak...] 0. secs (0.u,0.s) Chars 11213 - 11219 [Proof.] 0. secs (0.u,0.s) -Chars 11222 - 11282 [(intros~*~FIN;~apply~any_finit...] 0. secs (0.u,0.s) -Chars 11285 - 11298 [(split;~eauto).] 0. secs (0.u,0.s) +Chars 11222 - 11282 [intros~*~FIN;~apply~any_finite...] 0. secs (0.u,0.s) +Chars 11285 - 11298 [split;~eauto.] 0. secs (0.u,0.s) Chars 11299 - 11303 [Qed.] 0. secs (0.u,0.s) Chars 11305 - 11434 [Lemma~any_finite_bind_inv_left...] 0. secs (0.u,0.s) Chars 11435 - 11441 [Proof.] 0. secs (0.u,0.s) -Chars 11444 - 11486 [(intros;~eapply~any_finite_bin...] 0. secs (0.u,0.s) +Chars 11444 - 11486 [intros;~eapply~any_finite_bind...] 0. secs (0.u,0.s) Chars 11487 - 11491 [Qed.] 0. secs (0.u,0.s) Chars 11535 - 11613 [Lemma~Leaf_finite~:~forall~E~R...] 0. secs (0.u,0.s) Chars 11614 - 11620 [Proof.] 0. secs (0.u,0.s) -Chars 11623 - 11691 [(intros~*~FIN;~induction~FIN;~...] 0.004 secs (0.004u,0.s) -Chars 11692 - 11696 [Qed.] 0.001 secs (0.u,0.s) +Chars 11623 - 11691 [intros~*~FIN;~induction~FIN;~r...] 0.002 secs (0.002u,0.s) +Chars 11692 - 11696 [Qed.] 0. secs (0.u,0.s) Chars 11698 - 11784 [Lemma~finite_Leaf~:~~~forall~E...] 0. secs (0.u,0.s) Chars 11785 - 11791 [Proof.] 0. secs (0.u,0.s) -Chars 11794 - 11822 [(intros~*~FIN;~induction~FIN).] 0. secs (0.u,0.s) -Chars 11825 - 11877 [1:~(exists~a;~rewrite~itree_et...] 0.002 secs (0.002u,0.s) -Chars 11880 - 11918 [all:~(destruct~IHFIN;~eauto~wi...] 0.001 secs (0.001u,0.s) -Chars 11919 - 11923 [Qed.] 0.001 secs (0.001u,0.s) +Chars 11794 - 11822 [intros~*~FIN;~induction~FIN.] 0. secs (0.u,0.s) +Chars 11825 - 11877 [1:~exists~a;~rewrite~itree_eta...] 0.001 secs (0.001u,0.s) +Chars 11880 - 11918 [all:~destruct~IHFIN;~eauto~wit...] 0. secs (0.u,0.s) +Chars 11919 - 11923 [Qed.] 0. secs (0.u,0.s) Chars 12232 - 12324 [Lemma~finite_non_interactive~:...] 0. secs (0.u,0.s) Chars 12325 - 12331 [Proof.] 0. secs (0.u,0.s) -Chars 12334 - 12406 [(split;~induction~1;~cbn~in~*;...] 0.001 secs (0.001u,0.s) +Chars 12334 - 12406 [split;~induction~1;~cbn~in~*;~...] 0.001 secs (0.001u,0.s) Chars 12407 - 12411 [Qed.] 0. secs (0.u,0.s) Chars 12413 - 12517 [Lemma~finite_leaf_non_interact...] 0. secs (0.u,0.s) Chars 12518 - 12524 [Proof.] 0. secs (0.u,0.s) -Chars 12527 - 12536 [(intros~*).] 0. secs (0.u,0.s) -Chars 12539 - 12570 [(rewrite~finite_non_interactive).] 0. secs (0.u,0.s) -Chars 12573 - 12645 [(split;~[~eauto~using~finite_L...] 0. secs (0.u,0.s) +Chars 12527 - 12536 [intros~*.] 0. secs (0.u,0.s) +Chars 12539 - 12570 [rewrite~finite_non_interactive.] 0. secs (0.u,0.s) +Chars 12573 - 12645 [split;~[~eauto~using~finite_Le...] 0. secs (0.u,0.s) Chars 12646 - 12650 [Qed.] 0. secs (0.u,0.s) Chars 12652 - 12754 [Lemma~Leaf_non_interactive_sin...] 0. secs (0.u,0.s) Chars 12755 - 12761 [Proof.] 0. secs (0.u,0.s) -Chars 12764 - 12814 [(intros~*~IN;~revert~b;~induct...] 0. secs (0.u,0.s) +Chars 12764 - 12814 [intros~*~IN;~revert~b;~inducti...] 0. secs (0.u,0.s) Chars 12817 - 12818 [-] 0. secs (0.u,0.s) -Chars 12819 - 12880 [(rewrite~itree_eta,~H~in~IN';~...] 0.002 secs (0.002u,0.s) +Chars 12819 - 12880 [rewrite~itree_eta,~H~in~IN';~a...] 0.001 secs (0.001u,0.s) Chars 12883 - 12884 [-] 0. secs (0.u,0.s) -Chars 12885 - 12930 [(rewrite~itree_eta,~H,~tau_eut...] 0.006 secs (0.006u,0.s) +Chars 12885 - 12930 [rewrite~itree_eta,~H,~tau_eutt...] 0.002 secs (0.002u,0.s) Chars 12933 - 12934 [-] 0. secs (0.u,0.s) -Chars 12935 - 12941 [(inv~e).] 0. secs (0.u,0.s) -Chars 12942 - 12946 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12935 - 12941 [inv~e.] 0. secs (0.u,0.s) +Chars 12942 - 12946 [Qed.] 0. secs (0.u,0.s) Chars 12996 - 13114 [Lemma~all_finite_translate~{E}...] 0. secs (0.u,0.s) Chars 13115 - 13121 [Proof.] 0. secs (0.u,0.s) -Chars 13124 - 13180 [(intros~*;~induction~1;~rewrit...] 0.004 secs (0.004u,0.s) +Chars 13124 - 13180 [intros~*;~induction~1;~rewrite...] 0.005 secs (0.005u,0.s) Chars 13183 - 13184 [-] 0. secs (0.u,0.s) -Chars 13185 - 13206 [(apply~all_finite_Ret).] 0. secs (0.u,0.s) +Chars 13185 - 13206 [apply~all_finite_Ret.] 0. secs (0.u,0.s) Chars 13209 - 13210 [-] 0. secs (0.u,0.s) -Chars 13211 - 13232 [(apply~all_finite_Tau).] 0. secs (0.u,0.s) +Chars 13211 - 13232 [apply~all_finite_Tau.] 0. secs (0.u,0.s) Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) Chars 13241 - 13242 [-] 0. secs (0.u,0.s) -Chars 13243 - 13264 [(apply~all_finite_Vis).] 0. secs (0.u,0.s) +Chars 13243 - 13264 [apply~all_finite_Vis.] 0. secs (0.u,0.s) Chars 13265 - 13270 [auto.] 0. secs (0.u,0.s) -Chars 13271 - 13275 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13271 - 13275 [Qed.] 0. secs (0.u,0.s) Chars 13277 - 13395 [Lemma~any_finite_translate~{E}...] 0. secs (0.u,0.s) Chars 13396 - 13402 [Proof.] 0. secs (0.u,0.s) -Chars 13405 - 13414 [(intros~*).] 0. secs (0.u,0.s) -Chars 13415 - 13461 [(induction~1;~rewrite~unfold_t...] 0.004 secs (0.004u,0.s) +Chars 13405 - 13414 [intros~*.] 0. secs (0.u,0.s) +Chars 13415 - 13461 [induction~1;~rewrite~unfold_tr...] 0.002 secs (0.002u,0.s) Chars 13464 - 13465 [-] 0. secs (0.u,0.s) -Chars 13466 - 13487 [(apply~any_finite_Ret).] 0. secs (0.u,0.s) +Chars 13466 - 13487 [apply~any_finite_Ret.] 0. secs (0.u,0.s) Chars 13490 - 13491 [-] 0. secs (0.u,0.s) -Chars 13492 - 13513 [(apply~any_finite_Tau).] 0. secs (0.u,0.s) +Chars 13492 - 13513 [apply~any_finite_Tau.] 0. secs (0.u,0.s) Chars 13514 - 13519 [auto.] 0. secs (0.u,0.s) Chars 13522 - 13523 [-] 0. secs (0.u,0.s) -Chars 13524 - 13546 [(eapply~any_finite_Vis).] 0. secs (0.u,0.s) +Chars 13524 - 13546 [eapply~any_finite_Vis.] 0. secs (0.u,0.s) Chars 13547 - 13553 [eauto.] 0. secs (0.u,0.s) -Chars 13554 - 13558 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13554 - 13558 [Qed.] 0. secs (0.u,0.s) Chars 13614 - 13680 [Lemma~spin_not_all_finite~:~fo...] 0. secs (0.u,0.s) Chars 13681 - 13687 [Proof.] 0. secs (0.u,0.s) -Chars 13690 - 13808 [(intros~*~FIN;~remember~spin~a...] 0.001 secs (0.001u,0.s) -Chars 13809 - 13813 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13690 - 13808 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) +Chars 13809 - 13813 [Qed.] 0. secs (0.u,0.s) Chars 13815 - 13881 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) Chars 13882 - 13888 [Proof.] 0. secs (0.u,0.s) -Chars 13891 - 14009 [(intros~*~FIN;~remember~spin~a...] 0.001 secs (0.001u,0.s) -Chars 14010 - 14014 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13891 - 14009 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) +Chars 14010 - 14014 [Qed.] 0. secs (0.u,0.s) Chars 14016 - 14075 [Lemma~spin_empty_Leaf~:~forall...] 0. secs (0.u,0.s) Chars 14076 - 14082 [Proof.] 0. secs (0.u,0.s) -Chars 14085 - 14149 [(intros~*~IN;~apply~Leaf_finit...] 0. secs (0.u,0.s) +Chars 14085 - 14149 [intros~*~IN;~apply~Leaf_finite...] 0. secs (0.u,0.s) Chars 14150 - 14154 [Qed.] 0. secs (0.u,0.s) Chars 14156 - 14179 [Module~Counterexamples.] 0. secs (0.u,0.s) Chars 14628 - 14681 [Notation~fail~:=~(@throw~unit~...] 0. secs (0.u,0.s) Chars 14685 - 14723 [Fact~fail_all_finite~:~all_fin...] 0. secs (0.u,0.s) Chars 14726 - 14732 [Proof.] 0. secs (0.u,0.s) -Chars 14737 - 14749 [(unfold~fail).] 0. secs (0.u,0.s) -Chars 14754 - 14786 [(apply~all_finite_Vis;~intros~...] 0. secs (0.u,0.s) +Chars 14737 - 14749 [unfold~fail.] 0. secs (0.u,0.s) +Chars 14754 - 14786 [apply~all_finite_Vis;~intros~[].] 0. secs (0.u,0.s) Chars 14789 - 14793 [Qed.] 0. secs (0.u,0.s) Chars 14797 - 14841 [Fact~fail_not_any_finite~:~~~a...] 0. secs (0.u,0.s) Chars 14844 - 14850 [Proof.] 0. secs (0.u,0.s) -Chars 14855 - 14879 [(unfold~fail;~intros~FIN).] 0. secs (0.u,0.s) -Chars 14884 - 14932 [(apply~any_finite_Vis_inv~in~F...] 0. secs (0.u,0.s) +Chars 14855 - 14879 [unfold~fail;~intros~FIN.] 0. secs (0.u,0.s) +Chars 14884 - 14932 [apply~any_finite_Vis_inv~in~FI...] 0. secs (0.u,0.s) Chars 14935 - 14939 [Qed.] 0. secs (0.u,0.s) Chars 15376 - 15436 [Definition~t~:~itree~nondetE~b...] 0. secs (0.u,0.s) Chars 15440 - 15525 [Definition~k~:~bool~->~itree~n...] 0. secs (0.u,0.s) Chars 15529 - 15597 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) Chars 15600 - 15606 [Proof.] 0. secs (0.u,0.s) -Chars 15611 - 15731 [(intros~*~FIN;~remember~spin~a...] 0.001 secs (0.001u,0.s) -Chars 15734 - 15738 [Qed.] 0.001 secs (0.001u,0.s) +Chars 15611 - 15731 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) +Chars 15734 - 15738 [Qed.] 0. secs (0.u,0.s) Chars 15742 - 15766 [Fact~DFt~:~any_finite~t.] 0. secs (0.u,0.s) Chars 15769 - 15775 [Proof.] 0. secs (0.u,0.s) -Chars 15780 - 15828 [(apply~any_finite_Vis~with~tru...] 0. secs (0.u,0.s) +Chars 15780 - 15828 [apply~any_finite_Vis~with~true...] 0. secs (0.u,0.s) Chars 15831 - 15835 [Qed.] 0. secs (0.u,0.s) Chars 15839 - 15871 [Fact~DFk~:~any_finite~(k~false).] 0. secs (0.u,0.s) Chars 15874 - 15880 [Proof.] 0. secs (0.u,0.s) -Chars 15885 - 15906 [(cbn;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 15885 - 15906 [cbn;~auto~with~itree.] 0. secs (0.u,0.s) Chars 15909 - 15913 [Qed.] 0. secs (0.u,0.s) Chars 15917 - 15954 [Fact~NotDFtk~:~~~any_finite~(t...] 0. secs (0.u,0.s) Chars 15957 - 15963 [Proof.] 0. secs (0.u,0.s) -Chars 15966 - 15977 [(intros~abs).] 0. secs (0.u,0.s) -Chars 15980 - 16039 [(apply~any_finite_bind_inv~in~...] 0. secs (0.u,0.s) -Chars 16042 - 16063 [(destruct~b;~cbn~in~*).] 0. secs (0.u,0.s) +Chars 15966 - 15977 [intros~abs.] 0. secs (0.u,0.s) +Chars 15980 - 16039 [apply~any_finite_bind_inv~in~a...] 0. secs (0.u,0.s) +Chars 16042 - 16063 [destruct~b;~cbn~in~*.] 0. secs (0.u,0.s) Chars 16066 - 16067 [-] 0. secs (0.u,0.s) -Chars 16068 - 16102 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) +Chars 16068 - 16102 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) Chars 16105 - 16106 [-] 0. secs (0.u,0.s) -Chars 16107 - 16122 [(unfold~t~in~IN).] 0. secs (0.u,0.s) +Chars 16107 - 16122 [unfold~t~in~IN.] 0. secs (0.u,0.s) Chars 16127 - 16143 [clear~FINk~FINt.] 0. secs (0.u,0.s) -Chars 16148 - 16181 [(inv~IN;~cbn~in~*;~try~congrue...] 0.007 secs (0.007u,0.s) -Chars 16186 - 16208 [dependent~induction~H.] 0.001 secs (0.001u,0.s) -Chars 16213 - 16234 [(destruct~x;~cbn~in~*).] 0. secs (0.u,0.s) -Chars 16239 - 16276 [(apply~Leaf_Ret_inv~in~H0;~con...] 0. secs (0.u,0.s) -Chars 16281 - 16305 [(apply~Leaf_finite~in~H0).] 0. secs (0.u,0.s) -Chars 16310 - 16344 [(eapply~spin_not_any_finite;~e...] 0. secs (0.u,0.s) +Chars 16148 - 16181 [inv~IN;~cbn~in~*;~try~congruence.] 0.002 secs (0.002u,0.s) +Chars 16186 - 16208 [dependent~induction~H.] 0.003 secs (0.003u,0.s) +Chars 16213 - 16234 [destruct~x;~cbn~in~*.] 0. secs (0.u,0.s) +Chars 16239 - 16276 [apply~Leaf_Ret_inv~in~H0;~cong...] 0. secs (0.u,0.s) +Chars 16281 - 16305 [apply~Leaf_finite~in~H0.] 0. secs (0.u,0.s) +Chars 16310 - 16344 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) Chars 16347 - 16351 [Qed.] 0.001 secs (0.001u,0.s) Chars 16353 - 16373 [End~Counterexamples.] 0. secs (0.u,0.s) diff --git a/theories/Props/HasPost.v.timing b/theories/Props/HasPost.v.timing index 1698b5c6..65563c12 100644 --- a/theories/Props/HasPost.v.timing +++ b/theories/Props/HasPost.v.timing @@ -1,5 +1,5 @@ -Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.004 secs (0.002u,0.001s) -Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.092 secs (0.073u,0.018s) +Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) +Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.058 secs (0.049u,0.009s) Chars 186 - 209 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) Chars 210 - 230 [Set~Strict~Implicit.] 0. secs (0.u,0.s) Chars 231 - 251 [Import~RelNotations.] 0. secs (0.u,0.s) @@ -8,12 +8,12 @@ Chars 1381 - 1478 [Definition~has_post~{E}~{X}~(t...] 0. secs (0.u,0.s) Chars 1534 - 1647 [Definition~has_post_strong~{E}...] 0. secs (0.u,0.s) Chars 1649 - 1751 [Lemma~has_post_post_strong~:~~...] 0. secs (0.u,0.s) Chars 1752 - 1758 [Proof.] 0. secs (0.u,0.s) -Chars 1761 - 1802 [(intros;~split;~intros~HP;~red...] 0. secs (0.u,0.s) -Chars 1805 - 1830 [(assert~(t~≈~t)~by~auto).] 0. secs (0.u,0.s) +Chars 1761 - 1802 [intros;~split;~intros~HP;~red~...] 0. secs (0.u,0.s) +Chars 1805 - 1830 [assert~(t~≈~t)~by~auto.] 0. secs (0.u,0.s) Chars 1834 - 1835 [-] 0. secs (0.u,0.s) -Chars 1836 - 1875 [(eapply~eutt_conj;~[~reflexivi...] 0. secs (0.u,0.s) +Chars 1836 - 1875 [eapply~eutt_conj;~[~reflexivit...] 0. secs (0.u,0.s) Chars 1878 - 1879 [-] 0. secs (0.u,0.s) -Chars 1880 - 1936 [(eapply~(eqit_mono~(fun~x~y~:~...] 0.002 secs (0.002u,0.s) +Chars 1880 - 1936 [eapply~(eqit_mono~(fun~x~y~:~X...] 0.001 secs (0.001u,0.s) Chars 1941 - 1953 [now~intros~!.] 0. secs (0.u,0.s) Chars 1955 - 1959 [Qed.] 0. secs (0.u,0.s) Chars 1961 - 1985 [Module~HasPostNotations.] 0. secs (0.u,0.s) @@ -22,142 +22,142 @@ Chars 2040 - 2061 [End~HasPostNotations.] 0. secs (0.u,0.s) Chars 2062 - 2086 [Import~HasPostNotations.] 0. secs (0.u,0.s) Chars 2112 - 2219 [#[global]~Instance~has_post_eq...] 0. secs (0.u,0.s) Chars 2220 - 2226 [Proof.] 0. secs (0.u,0.s) -Chars 2229 - 2297 [(repeat~red;~unfold~has_post;~...] 0. secs (0.u,0.s) +Chars 2229 - 2297 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) Chars 2300 - 2301 [-] 0. secs (0.u,0.s) -Chars 2302 - 2344 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.002 secs (0.001u,0.s) -Chars 2349 - 2385 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) +Chars 2302 - 2344 [rewrite~<-~EUTT;~eapply~eutt_e...] 0.001 secs (0.001u,0.s) +Chars 2349 - 2385 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) Chars 2388 - 2389 [-] 0. secs (0.u,0.s) -Chars 2390 - 2429 [(rewrite~EUTT;~eapply~eutt_equ...] 0. secs (0.u,0.s) -Chars 2434 - 2470 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) -Chars 2471 - 2475 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2390 - 2429 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) +Chars 2434 - 2470 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2471 - 2475 [Qed.] 0. secs (0.u,0.s) Chars 2477 - 2576 [#[global]~Instance~has_post_eu...] 0. secs (0.u,0.s) Chars 2577 - 2583 [Proof.] 0. secs (0.u,0.s) -Chars 2586 - 2654 [(repeat~red;~unfold~has_post;~...] 0. secs (0.u,0.s) +Chars 2586 - 2654 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) Chars 2657 - 2658 [-] 0. secs (0.u,0.s) -Chars 2659 - 2701 [(rewrite~<-~EUTT;~eapply~eutt_...] 0.001 secs (0.001u,0.s) -Chars 2706 - 2742 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) +Chars 2659 - 2701 [rewrite~<-~EUTT;~eapply~eutt_e...] 0. secs (0.u,0.s) +Chars 2706 - 2742 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) Chars 2745 - 2746 [-] 0. secs (0.u,0.s) -Chars 2747 - 2786 [(rewrite~EUTT;~eapply~eutt_equ...] 0. secs (0.u,0.s) -Chars 2791 - 2827 [(split;~intros~?~?~H;~apply~EQ...] 0. secs (0.u,0.s) -Chars 2828 - 2832 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2747 - 2786 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) +Chars 2791 - 2827 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) +Chars 2828 - 2832 [Qed.] 0. secs (0.u,0.s) Chars 3013 - 3119 [Lemma~has_post_conj~:~~~forall...] 0. secs (0.u,0.s) Chars 3120 - 3126 [Proof.] 0. secs (0.u,0.s) -Chars 3129 - 3144 [(intros~*~HP~HQ).] 0. secs (0.u,0.s) -Chars 3147 - 3178 [(pose~proof~(eutt_conj~_~_~HP~...] 0. secs (0.u,0.s) +Chars 3129 - 3144 [intros~*~HP~HQ.] 0. secs (0.u,0.s) +Chars 3147 - 3178 [pose~proof~(eutt_conj~_~_~HP~HQ).] 0. secs (0.u,0.s) Chars 3181 - 3186 [auto.] 0. secs (0.u,0.s) -Chars 3187 - 3191 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3187 - 3191 [Qed.] 0.001 secs (0.001u,0.s) Chars 3229 - 3322 [Lemma~has_post_disj_l~:~~~fora...] 0. secs (0.u,0.s) Chars 3323 - 3329 [Proof.] 0. secs (0.u,0.s) -Chars 3332 - 3383 [(unfold~has_post,~disj_rel,~Di...] 0. secs (0.u,0.s) -Chars 3386 - 3403 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) +Chars 3332 - 3383 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) +Chars 3386 - 3403 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) Chars 3404 - 3416 [4:~exact~HP.] 0. secs (0.u,0.s) Chars 3417 - 3427 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3430 - 3449 [(intros;~left;~auto).] 0. secs (0.u,0.s) -Chars 3450 - 3454 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3430 - 3449 [intros;~left;~auto.] 0. secs (0.u,0.s) +Chars 3450 - 3454 [Qed.] 0.001 secs (0.001u,0.s) Chars 3493 - 3586 [Lemma~has_post_disj_r~:~~~fora...] 0. secs (0.u,0.s) Chars 3587 - 3593 [Proof.] 0. secs (0.u,0.s) -Chars 3596 - 3647 [(unfold~has_post,~disj_rel,~Di...] 0. secs (0.u,0.s) -Chars 3650 - 3667 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) +Chars 3596 - 3647 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) +Chars 3650 - 3667 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) Chars 3668 - 3680 [4:~exact~HQ.] 0. secs (0.u,0.s) Chars 3681 - 3691 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3694 - 3714 [(intros;~right;~auto).] 0. secs (0.u,0.s) -Chars 3715 - 3719 [Qed.] 0.04 secs (0.039u,0.001s) +Chars 3694 - 3714 [intros;~right;~auto.] 0. secs (0.u,0.s) +Chars 3715 - 3719 [Qed.] 0.029 secs (0.028u,0.s) Chars 3737 - 3837 [Lemma~has_post_weaken~:~~~fora...] 0. secs (0.u,0.s) Chars 3838 - 3844 [Proof.] 0. secs (0.u,0.s) -Chars 3847 - 3910 [(unfold~has_post,~subrelationH...] 0. secs (0.u,0.s) -Chars 3913 - 3930 [(eapply~eqit_mono).] 0.001 secs (0.001u,0.s) +Chars 3847 - 3910 [unfold~has_post,~subrelationH,...] 0. secs (0.u,0.s) +Chars 3913 - 3930 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) Chars 3931 - 3943 [4:~exact~HP.] 0. secs (0.u,0.s) Chars 3944 - 3954 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3957 - 3961 [(cbn).] 0. secs (0.u,0.s) -Chars 3962 - 3996 [(intros~?~?~H;~apply~INCL;~exa...] 0. secs (0.u,0.s) -Chars 3997 - 4001 [Qed.] 0.002 secs (0.002u,0.s) +Chars 3957 - 3961 [cbn.] 0. secs (0.u,0.s) +Chars 3962 - 3996 [intros~?~?~H;~apply~INCL;~exac...] 0. secs (0.u,0.s) +Chars 3997 - 4001 [Qed.] 0.001 secs (0.001u,0.s) Chars 4031 - 4107 [Lemma~has_post_True~:~forall~{...] 0. secs (0.u,0.s) Chars 4108 - 4114 [Proof.] 0. secs (0.u,0.s) -Chars 4117 - 4126 [(intros~*).] 0. secs (0.u,0.s) -Chars 4127 - 4131 [(red).] 0. secs (0.u,0.s) -Chars 4134 - 4174 [(eapply~(eqit_mono~eq~_~true~t...] 0.001 secs (0.001u,0.s) -Chars 4176 - 4180 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4117 - 4126 [intros~*.] 0. secs (0.u,0.s) +Chars 4127 - 4131 [red.] 0. secs (0.u,0.s) +Chars 4134 - 4174 [eapply~(eqit_mono~eq~_~true~tr...] 0.001 secs (0.001u,0.s) +Chars 4176 - 4180 [Qed.] 0.001 secs (0.001u,0.s) Chars 4307 - 4443 [Lemma~has_post_bind_weak~:~~~f...] 0. secs (0.u,0.s) Chars 4444 - 4450 [Proof.] 0. secs (0.u,0.s) -Chars 4453 - 4467 [(intros~*~POST).] 0. secs (0.u,0.s) -Chars 4470 - 4511 [(apply~eutt_eq_bind;~intros~?;...] 0. secs (0.u,0.s) -Chars 4512 - 4516 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4453 - 4467 [intros~*~POST.] 0. secs (0.u,0.s) +Chars 4470 - 4511 [apply~eutt_eq_bind;~intros~?;~...] 0. secs (0.u,0.s) +Chars 4512 - 4516 [Qed.] 0.001 secs (0.001u,0.s) Chars 4577 - 4732 [Lemma~has_post_bind~:~~~forall...] 0. secs (0.u,0.s) Chars 4733 - 4739 [Proof.] 0. secs (0.u,0.s) -Chars 4742 - 4763 [(intros~*~POST1~POST2).] 0. secs (0.u,0.s) -Chars 4766 - 4870 [(apply~eutt_bind_eutt~with~(UU...] 0.001 secs (0.001u,0.s) -Chars 4873 - 4912 [(intros~?~?~[<-~?];~eapply~POS...] 0. secs (0.u,0.s) -Chars 4913 - 4917 [Qed.] 0.003 secs (0.003u,0.s) +Chars 4742 - 4763 [intros~*~POST1~POST2.] 0. secs (0.u,0.s) +Chars 4766 - 4870 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 4873 - 4912 [intros~?~?~[<-~?];~eapply~POST...] 0. secs (0.u,0.s) +Chars 4913 - 4917 [Qed.] 0.002 secs (0.002u,0.s) Chars 4951 - 5177 [Lemma~has_post_iter_strong~:~~...] 0. secs (0.u,0.s) Chars 5178 - 5184 [Proof.] 0. secs (0.u,0.s) -Chars 5187 - 5205 [(intros~*~IND~INIT).] 0. secs (0.u,0.s) -Chars 5208 - 5284 [(eapply~(@KTreeFacts.eutt_iter...] 0.001 secs (0.001u,0.s) -Chars 5287 - 5305 [(intros~i~?~[<-~?]).] 0. secs (0.u,0.s) -Chars 5308 - 5368 [(specialize~(IND~i);~apply~has...] 0.004 secs (0.003u,0.s) -Chars 5371 - 5401 [(unfold~has_post_strong~in~IND).] 0. secs (0.u,0.s) -Chars 5404 - 5442 [(eapply~eqit_mono;~try~apply~I...] 0.005 secs (0.005u,0.s) -Chars 5445 - 5471 [(intros~[]~?~[<-~?];~eauto).] 0.002 secs (0.002u,0.s) -Chars 5472 - 5476 [Qed.] 0.005 secs (0.004u,0.001s) +Chars 5187 - 5205 [intros~*~IND~INIT.] 0. secs (0.u,0.s) +Chars 5208 - 5284 [eapply~(@KTreeFacts.eutt_iter_...] 0. secs (0.u,0.s) +Chars 5287 - 5305 [intros~i~?~[<-~?].] 0. secs (0.u,0.s) +Chars 5308 - 5368 [specialize~(IND~i);~apply~has_...] 0.002 secs (0.002u,0.s) +Chars 5371 - 5401 [unfold~has_post_strong~in~IND.] 0. secs (0.u,0.s) +Chars 5404 - 5442 [eapply~eqit_mono;~try~apply~IN...] 0.004 secs (0.004u,0.s) +Chars 5445 - 5471 [intros~[]~?~[<-~?];~eauto.] 0.001 secs (0.001u,0.s) +Chars 5472 - 5476 [Qed.] 0.003 secs (0.002u,0.s) Chars 5521 - 5634 [Lemma~has_post_translate~:~~~f...] 0. secs (0.u,0.s) Chars 5635 - 5641 [Proof.] 0. secs (0.u,0.s) -Chars 5644 - 5675 [(unfold~has_post;~intros~*~POST).] 0. secs (0.u,0.s) -Chars 5678 - 5709 [(apply~eutt_translate_gen;~auto).] 0. secs (0.u,0.s) -Chars 5710 - 5714 [Qed.] 0.004 secs (0.002u,0.001s) -Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0.001 secs (0.u,0.s) +Chars 5644 - 5675 [unfold~has_post;~intros~*~POST.] 0. secs (0.u,0.s) +Chars 5678 - 5709 [apply~eutt_translate_gen;~auto.] 0. secs (0.u,0.s) +Chars 5710 - 5714 [Qed.] 0.002 secs (0.001u,0.s) +Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0. secs (0.u,0.s) Chars 6249 - 6255 [Proof.] 0. secs (0.u,0.s) -Chars 6258 - 6286 [(intros~*~POST1~POST2~EQ~KEQ).] 0. secs (0.u,0.s) -Chars 6289 - 6357 [(apply~eutt_bind_eutt~with~(UU...] 0. secs (0.u,0.s) -Chars 6360 - 6403 [2:~(intros~?~?~(?,~(?,~?));~ap...] 0. secs (0.u,0.s) +Chars 6258 - 6286 [intros~*~POST1~POST2~EQ~KEQ.] 0. secs (0.u,0.s) +Chars 6289 - 6357 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 6360 - 6403 [2:~intros~?~?~(?,~(?,~?));~app...] 0. secs (0.u,0.s) Chars 6406 - 6416 [clear~KEQ.] 0. secs (0.u,0.s) -Chars 6419 - 6455 [(apply~has_post_post_strong~in...] 0.002 secs (0.001u,0.s) -Chars 6458 - 6494 [(apply~has_post_post_strong~in...] 0.002 secs (0.001u,0.s) -Chars 6497 - 6535 [(pose~proof~(eqit_trans~POST1~...] 0. secs (0.u,0.s) -Chars 6538 - 6577 [(pose~proof~(eqit_trans~EQ1~PO...] 0. secs (0.u,0.s) +Chars 6419 - 6455 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) +Chars 6458 - 6494 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) +Chars 6497 - 6535 [pose~proof~(eqit_trans~POST1~E...] 0. secs (0.u,0.s) +Chars 6538 - 6577 [pose~proof~(eqit_trans~EQ1~POS...] 0. secs (0.u,0.s) Chars 6580 - 6591 [clear~-~EQ2.] 0. secs (0.u,0.s) -Chars 6594 - 6619 [(eapply~eutt_equiv;~eauto).] 0.001 secs (0.u,0.s) +Chars 6594 - 6619 [eapply~eutt_equiv;~eauto.] 0. secs (0.u,0.s) Chars 6622 - 6628 [split.] 0. secs (0.u,0.s) Chars 6631 - 6632 [-] 0. secs (0.u,0.s) -Chars 6633 - 6682 [(intros~?~?~(?,~(?,~?));~do~2~...] 0.001 secs (0.u,0.s) +Chars 6633 - 6682 [intros~?~?~(?,~(?,~?));~do~2~e...] 0. secs (0.u,0.s) Chars 6685 - 6686 [-] 0. secs (0.u,0.s) -Chars 6687 - 6700 [(intros~?~?~?).] 0. secs (0.u,0.s) -Chars 6701 - 6707 [(inv~H).] 0.003 secs (0.002u,0.s) -Chars 6708 - 6717 [(inv~REL1).] 0.003 secs (0.002u,0.001s) -Chars 6722 - 6769 [(destruct~REL2~as~[->~?],~REL0...] 0.001 secs (0.u,0.s) -Chars 6770 - 6774 [Qed.] 0.005 secs (0.003u,0.001s) +Chars 6687 - 6700 [intros~?~?~?.] 0. secs (0.u,0.s) +Chars 6701 - 6707 [inv~H.] 0.001 secs (0.001u,0.s) +Chars 6708 - 6717 [inv~REL1.] 0.002 secs (0.001u,0.s) +Chars 6722 - 6769 [destruct~REL2~as~[->~?],~REL0~...] 0. secs (0.u,0.s) +Chars 6770 - 6774 [Qed.] 0.003 secs (0.003u,0.s) Chars 6833 - 7052 [Lemma~eutt_post_bind_eq~:~~~fo...] 0. secs (0.u,0.s) Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) -Chars 7062 - 7078 [(intros~*~POST~?).] 0. secs (0.u,0.s) -Chars 7081 - 7183 [(apply~eutt_bind_eutt~with~(UU...] 0.003 secs (0.002u,0.s) -Chars 7186 - 7210 [(intros~?~?~[->~?];~auto).] 0. secs (0.u,0.s) -Chars 7211 - 7215 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7062 - 7078 [intros~*~POST~?.] 0. secs (0.u,0.s) +Chars 7081 - 7183 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) +Chars 7186 - 7210 [intros~?~?~[->~?];~auto.] 0. secs (0.u,0.s) +Chars 7211 - 7215 [Qed.] 0.001 secs (0.001u,0.s) Chars 7435 - 7539 [Lemma~eutt_eq_itree~{E}~{X}~(R...] 0. secs (0.u,0.s) Chars 7540 - 7546 [Proof.] 0. secs (0.u,0.s) -Chars 7549 - 7632 [(enough~~~(forall~t~u~:~itree~...] 0. secs (0.u,0.s) +Chars 7549 - 7632 [enough~~(forall~t~u~:~itree~E~...] 0. secs (0.u,0.s) Chars 7635 - 7636 [{] 0. secs (0.u,0.s) -Chars 7637 - 7689 [(intros;~apply~H;~[~auto~|~app...] 0. secs (0.u,0.s) +Chars 7637 - 7689 [intros;~apply~H;~[~auto~|~appl...] 0. secs (0.u,0.s) Chars 7690 - 7691 [}] 0. secs (0.u,0.s) -Chars 7694 - 7706 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7710 - 7726 [(intros~t~u~H~EQ).] 0. secs (0.u,0.s) -Chars 7730 - 7772 [(rewrite~(itree_eta~t),~(itree...] 0.039 secs (0.038u,0.001s) +Chars 7694 - 7706 [coinduction.] 0.001 secs (0.001u,0.s) +Chars 7710 - 7726 [intros~t~u~H~EQ.] 0. secs (0.u,0.s) +Chars 7730 - 7772 [rewrite~(itree_eta~t),~(itree_...] 0.027 secs (0.027u,0.s) Chars 7775 - 7786 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 7787 - 7791 [(cbn).] 0. secs (0.u,0.s) -Chars 7792 - 7835 [(destruct~EQ;~try~discriminate...] 0.002 secs (0.002u,0.s) +Chars 7787 - 7791 [cbn.] 0. secs (0.u,0.s) +Chars 7792 - 7835 [destruct~EQ;~try~discriminate;...] 0.001 secs (0.001u,0.s) Chars 7838 - 7839 [-] 0. secs (0.u,0.s) -Chars 7840 - 7865 [(rewrite~<-~eutt_Ret~in~H).] 0. secs (0.u,0.s) +Chars 7840 - 7865 [rewrite~<-~eutt_Ret~in~H.] 0. secs (0.u,0.s) Chars 7866 - 7871 [auto.] 0. secs (0.u,0.s) Chars 7874 - 7875 [-] 0. secs (0.u,0.s) -Chars 7876 - 7903 [(apply~CIH;~[~~|~apply~REL~]).] 0. secs (0.u,0.s) -Chars 7908 - 7933 [(revert~H;~apply~eqit_Tau).] 0.001 secs (0.001u,0.s) +Chars 7876 - 7903 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) +Chars 7908 - 7933 [revert~H;~apply~eqit_Tau.] 0. secs (0.u,0.s) Chars 7936 - 7937 [-] 0. secs (0.u,0.s) Chars 7938 - 7944 [intro.] 0. secs (0.u,0.s) -Chars 7945 - 7972 [(apply~CIH;~[~~|~apply~REL~]).] 0. secs (0.u,0.s) -Chars 7977 - 8011 [(eapply~eqit_inv_Vis~with~(1~:...] 0. secs (0.u,0.s) -Chars 8012 - 8016 [Qed.] 0.008 secs (0.008u,0.s) +Chars 7945 - 7972 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) +Chars 7977 - 8011 [eapply~eqit_inv_Vis~with~(1~:=...] 0. secs (0.u,0.s) +Chars 8012 - 8016 [Qed.] 0.005 secs (0.005u,0.s) Chars 8018 - 8170 [Lemma~has_post_strong_to_eq_it...] 0. secs (0.u,0.s) Chars 8171 - 8177 [Proof.] 0. secs (0.u,0.s) -Chars 8180 - 8210 [(intros~*;~apply~eutt_eq_itree).] 0. secs (0.u,0.s) -Chars 8211 - 8215 [Qed.] 0.002 secs (0.002u,0.s) +Chars 8180 - 8210 [intros~*;~apply~eutt_eq_itree.] 0. secs (0.u,0.s) +Chars 8211 - 8215 [Qed.] 0.001 secs (0.001u,0.s) Chars 8217 - 8355 [Lemma~has_post_to_eq_itree~:~~...] 0. secs (0.u,0.s) Chars 8356 - 8362 [Proof.] 0. secs (0.u,0.s) -Chars 8365 - 8436 [(intros~*~H;~apply~has_post_st...] 0.001 secs (0.001u,0.s) -Chars 8437 - 8441 [Qed.] 0.002 secs (0.002u,0.s) +Chars 8365 - 8436 [intros~*~H;~apply~has_post_str...] 0. secs (0.u,0.s) +Chars 8437 - 8441 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Infinite.v.timing b/theories/Props/Infinite.v.timing index 76ec26ee..5d04a5f0 100644 --- a/theories/Props/Infinite.v.timing +++ b/theories/Props/Infinite.v.timing @@ -1,6 +1,6 @@ -Chars 171 - 207 [From~Coinduction~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 210 - 285 [From~Stdlib~Require~Import~Set...] 0.002 secs (0.001u,0.001s) -Chars 287 - 392 [From~ITree~Require~Import~Axio...] 0.208 secs (0.178u,0.027s) +Chars 171 - 207 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 210 - 285 [From~Stdlib~Require~Import~Set...] 0.002 secs (0.u,0.001s) +Chars 287 - 392 [From~ITree~Require~Import~Axio...] 0.135 secs (0.122u,0.013s) Chars 409 - 431 [Import~ITreeNotations.] 0. secs (0.u,0.s) Chars 432 - 458 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) Chars 460 - 483 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) @@ -10,103 +10,103 @@ Chars 808 - 894 [Definition~any_infinite_~{E}~{...] 0. secs (0.u,0.s) Chars 895 - 939 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) Chars 941 - 1017 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) Chars 1018 - 1024 [Proof.] 0. secs (0.u,0.s) -Chars 1028 - 1047 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 1048 - 1096 [(induction~H0;~econstructor;~e...] 0. secs (0.u,0.s) -Chars 1098 - 1102 [Qed.] 0.001 secs (0.u,0.s) +Chars 1028 - 1047 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 1048 - 1096 [induction~H0;~econstructor;~ea...] 0. secs (0.u,0.s) +Chars 1098 - 1102 [Qed.] 0. secs (0.u,0.s) Chars 1105 - 1235 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) Chars 1237 - 1313 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) Chars 1315 - 1413 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) Chars 1414 - 1420 [Proof.] 0. secs (0.u,0.s) -Chars 1423 - 1439 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 1440 - 1459 [(split;~intros~Hinf).] 0. secs (0.u,0.s) +Chars 1423 - 1439 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 1440 - 1459 [split;~intros~Hinf.] 0. secs (0.u,0.s) Chars 1462 - 1463 [-] 0. secs (0.u,0.s) Chars 1464 - 1485 [revert~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 1486 - 1511 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) -Chars 1512 - 1530 [coinduction~c~CIH.] 0.001 secs (0.u,0.s) -Chars 1535 - 1556 [(intros~t2~t1~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 1486 - 1511 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) +Chars 1512 - 1530 [coinduction~c~CIH.] 0. secs (0.u,0.s) +Chars 1535 - 1556 [intros~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) Chars 1557 - 1568 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 1569 - 1594 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 1595 - 1614 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 1619 - 1646 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 1647 - 1668 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 1673 - 1713 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 1718 - 1753 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 1754 - 1783 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 1788 - 1801 [(induction~Ht).] 0.001 secs (0.u,0.s) +Chars 1569 - 1594 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 1595 - 1614 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 1619 - 1646 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 1647 - 1668 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 1673 - 1713 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 1718 - 1753 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 1754 - 1783 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 1788 - 1801 [induction~Ht.] 0. secs (0.u,0.s) Chars 1806 - 1807 [+] 0. secs (0.u,0.s) -Chars 1808 - 1823 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 1808 - 1823 [inversion~Hinf.] 0. secs (0.u,0.s) Chars 1828 - 1829 [+] 0. secs (0.u,0.s) -Chars 1830 - 1852 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 1830 - 1852 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) Chars 1853 - 1865 [constructor.] 0. secs (0.u,0.s) -Chars 1866 - 1884 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 1866 - 1884 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 1889 - 1890 [+] 0. secs (0.u,0.s) -Chars 1891 - 1913 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) -Chars 1914 - 1939 [dependent~destruction~H2.] 0.003 secs (0.002u,0.s) +Chars 1891 - 1913 [inversion~Hinf;~subst.] 0.001 secs (0.001u,0.s) +Chars 1914 - 1939 [dependent~destruction~H2.] 0.002 secs (0.001u,0.s) Chars 1946 - 1959 [econstructor.] 0. secs (0.u,0.s) -Chars 1960 - 1985 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 1960 - 1985 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) Chars 1986 - 1992 [eauto.] 0. secs (0.u,0.s) Chars 1997 - 1998 [+] 0. secs (0.u,0.s) -Chars 1999 - 2010 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 2011 - 2033 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 2040 - 2078 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 2085 - 2118 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2119 - 2146 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 1999 - 2010 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2011 - 2033 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 2040 - 2078 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 2085 - 2118 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 2119 - 2146 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) Chars 2147 - 2156 [exact~H0.] 0. secs (0.u,0.s) Chars 2161 - 2162 [+] 0. secs (0.u,0.s) Chars 2163 - 2175 [constructor.] 0. secs (0.u,0.s) Chars 2176 - 2181 [step.] 0. secs (0.u,0.s) -Chars 2182 - 2209 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 2210 - 2231 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 2238 - 2249 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2182 - 2209 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 2210 - 2231 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 2238 - 2249 [apply~IHHt.] 0. secs (0.u,0.s) Chars 2250 - 2261 [exact~Hinf.] 0. secs (0.u,0.s) Chars 2264 - 2265 [-] 0. secs (0.u,0.s) Chars 2266 - 2287 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 2288 - 2313 [(unfold~any_infinite~at~2).] 0. secs (0.u,0.s) +Chars 2288 - 2313 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) Chars 2314 - 2332 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2337 - 2358 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 2337 - 2358 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) Chars 2359 - 2370 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 2371 - 2396 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 2397 - 2416 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 2421 - 2448 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 2449 - 2470 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 2475 - 2515 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 2520 - 2555 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 2556 - 2585 [(unfold~any_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 2590 - 2603 [(induction~Ht).] 0.001 secs (0.u,0.s) +Chars 2371 - 2396 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 2397 - 2416 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 2421 - 2448 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 2449 - 2470 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 2475 - 2515 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 2520 - 2555 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 2556 - 2585 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 2590 - 2603 [induction~Ht.] 0. secs (0.u,0.s) Chars 2608 - 2609 [+] 0. secs (0.u,0.s) -Chars 2610 - 2625 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 2610 - 2625 [inversion~Hinf.] 0. secs (0.u,0.s) Chars 2630 - 2631 [+] 0. secs (0.u,0.s) -Chars 2632 - 2654 [(inversion~Hinf;~subst).] 0.001 secs (0.u,0.s) +Chars 2632 - 2654 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) Chars 2655 - 2667 [constructor.] 0. secs (0.u,0.s) -Chars 2668 - 2686 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 2668 - 2686 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 2691 - 2692 [+] 0. secs (0.u,0.s) -Chars 2693 - 2715 [(inversion~Hinf;~subst).] 0.002 secs (0.001u,0.s) -Chars 2716 - 2741 [dependent~destruction~H2.] 0.03 secs (0.026u,0.003s) +Chars 2693 - 2715 [inversion~Hinf;~subst.] 0.022 secs (0.02u,0.001s) +Chars 2716 - 2741 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) Chars 2748 - 2761 [econstructor.] 0. secs (0.u,0.s) -Chars 2762 - 2787 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) +Chars 2762 - 2787 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) Chars 2788 - 2794 [eauto.] 0. secs (0.u,0.s) Chars 2799 - 2800 [+] 0. secs (0.u,0.s) Chars 2801 - 2813 [constructor.] 0. secs (0.u,0.s) Chars 2814 - 2819 [step.] 0. secs (0.u,0.s) -Chars 2820 - 2847 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 2848 - 2869 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 2876 - 2887 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 2820 - 2847 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 2848 - 2869 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 2876 - 2887 [apply~IHHt.] 0. secs (0.u,0.s) Chars 2888 - 2899 [exact~Hinf.] 0. secs (0.u,0.s) Chars 2904 - 2905 [+] 0. secs (0.u,0.s) -Chars 2906 - 2917 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 2918 - 2940 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 2947 - 2985 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 2992 - 3025 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 3026 - 3053 [(unfold~any_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 2906 - 2917 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 2918 - 2940 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 2947 - 2985 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 2992 - 3025 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 3026 - 3053 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) Chars 3054 - 3063 [exact~H0.] 0. secs (0.u,0.s) -Chars 3064 - 3068 [Qed.] 0.01 secs (0.01u,0.s) +Chars 3064 - 3068 [Qed.] 0.007 secs (0.007u,0.s) Chars 3070 - 3129 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) Chars 3130 - 3136 [Proof.] 0. secs (0.u,0.s) -Chars 3139 - 3159 [(unfold~any_infinite).] 0. secs (0.u,0.s) +Chars 3139 - 3159 [unfold~any_infinite.] 0. secs (0.u,0.s) Chars 3160 - 3178 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3181 - 3208 [(cbn[any_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 3209 - 3230 [(unfold~any_infinite_).] 0. secs (0.u,0.s) -Chars 3231 - 3235 [(cbn).] 0. secs (0.u,0.s) +Chars 3181 - 3208 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 3209 - 3230 [unfold~any_infinite_.] 0. secs (0.u,0.s) +Chars 3231 - 3235 [cbn.] 0. secs (0.u,0.s) Chars 3238 - 3250 [constructor.] 0. secs (0.u,0.s) Chars 3251 - 3261 [exact~CIH.] 0. secs (0.u,0.s) Chars 3262 - 3266 [Qed.] 0. secs (0.u,0.s) @@ -115,212 +115,212 @@ Chars 3543 - 3593 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) Chars 3595 - 3687 [Definition~all_infinite_~{E}~{...] 0. secs (0.u,0.s) Chars 3689 - 3848 [Lemma~all_infiniteF_mono~{E}~{...] 0. secs (0.u,0.s) Chars 3849 - 3855 [Proof.] 0. secs (0.u,0.s) -Chars 3858 - 3889 [(induction~IN;~eauto~with~itree).] 0. secs (0.u,0.s) +Chars 3858 - 3889 [induction~IN;~eauto~with~itree.] 0. secs (0.u,0.s) Chars 3890 - 3894 [Qed.] 0. secs (0.u,0.s) Chars 3896 - 3971 [Lemma~all_infinite__mono~{E}~{...] 0. secs (0.u,0.s) Chars 3972 - 3978 [Proof.] 0. secs (0.u,0.s) -Chars 3981 - 4017 [(repeat~red;~intros~sim~sim'~L...] 0. secs (0.u,0.s) -Chars 4020 - 4046 [(unfold~all_infinite_~in~*).] 0. secs (0.u,0.s) -Chars 4047 - 4080 [(eapply~all_infiniteF_mono;~ea...] 0. secs (0.u,0.s) +Chars 3981 - 4017 [repeat~red;~intros~sim~sim'~LE...] 0. secs (0.u,0.s) +Chars 4020 - 4046 [unfold~all_infinite_~in~*.] 0. secs (0.u,0.s) +Chars 4047 - 4080 [eapply~all_infiniteF_mono;~eauto.] 0. secs (0.u,0.s) Chars 4081 - 4085 [Qed.] 0. secs (0.u,0.s) Chars 4087 - 4215 [Definition~all_infinite_mon~{E...] 0. secs (0.u,0.s) Chars 4217 - 4298 [Definition~all_infinite~{E}~{A...] 0. secs (0.u,0.s) Chars 4300 - 4343 [#[global]~Hint~Unfold~all_infi...] 0. secs (0.u,0.s) -Chars 4345 - 4632 [Inductive~may_converge~{E~:~Ty...] 0.002 secs (0.002u,0.s) +Chars 4345 - 4632 [Inductive~may_converge~{E~:~Ty...] 0.001 secs (0.001u,0.s) Chars 4633 - 4682 [#[global]~Hint~Constructors~ma...] 0. secs (0.u,0.s) Chars 4684 - 4791 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) Chars 4792 - 4798 [Proof.] 0. secs (0.u,0.s) -Chars 4801 - 4817 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 4818 - 4832 [(split;~intros).] 0. secs (0.u,0.s) +Chars 4801 - 4817 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 4818 - 4832 [split;~intros.] 0. secs (0.u,0.s) Chars 4835 - 4836 [-] 0. secs (0.u,0.s) -Chars 4837 - 4849 [(induction~H).] 0. secs (0.u,0.s) +Chars 4837 - 4849 [induction~H.] 0. secs (0.u,0.s) Chars 4854 - 4855 [+] 0. secs (0.u,0.s) -Chars 4856 - 4877 [(apply~conv_ret;~auto).] 0. secs (0.u,0.s) -Chars 4878 - 4892 [(rewrite~<-~Ht).] 0.001 secs (0.001u,0.s) +Chars 4856 - 4877 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) +Chars 4878 - 4892 [rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) Chars 4893 - 4898 [auto.] 0. secs (0.u,0.s) Chars 4903 - 4904 [+] 0. secs (0.u,0.s) -Chars 4905 - 4928 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) -Chars 4929 - 4942 [(rewrite~<-~H).] 0. secs (0.u,0.s) +Chars 4905 - 4928 [eapply~conv_vis;~eauto.] 0.028 secs (0.028u,0.s) +Chars 4929 - 4942 [rewrite~<-~H.] 0. secs (0.u,0.s) Chars 4949 - 4958 [symmetry.] 0. secs (0.u,0.s) Chars 4959 - 4964 [auto.] 0. secs (0.u,0.s) Chars 4967 - 4968 [-] 0. secs (0.u,0.s) -Chars 4969 - 4981 [(induction~H).] 0. secs (0.u,0.s) +Chars 4969 - 4981 [induction~H.] 0. secs (0.u,0.s) Chars 4986 - 4987 [+] 0. secs (0.u,0.s) -Chars 4988 - 5009 [(apply~conv_ret;~auto).] 0.034 secs (0.033u,0.s) -Chars 5010 - 5021 [(rewrite~Ht).] 0. secs (0.u,0.s) +Chars 4988 - 5009 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) +Chars 5010 - 5021 [rewrite~Ht.] 0. secs (0.u,0.s) Chars 5022 - 5027 [auto.] 0. secs (0.u,0.s) Chars 5032 - 5033 [+] 0. secs (0.u,0.s) -Chars 5034 - 5057 [(eapply~conv_vis;~eauto).] 0.002 secs (0.002u,0.s) -Chars 5058 - 5069 [(rewrite~Ht).] 0.001 secs (0.001u,0.s) +Chars 5034 - 5057 [eapply~conv_vis;~eauto.] 0.001 secs (0.001u,0.s) +Chars 5058 - 5069 [rewrite~Ht.] 0. secs (0.u,0.s) Chars 5076 - 5082 [eauto.] 0. secs (0.u,0.s) Chars 5083 - 5087 [Qed.] 0.001 secs (0.001u,0.s) Chars 5089 - 5166 [Ltac~contra_void~:=~try~match~...] 0. secs (0.u,0.s) Chars 5168 - 5266 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) Chars 5267 - 5273 [Proof.] 0. secs (0.u,0.s) -Chars 5276 - 5292 [(intros~t1~t2~Ht).] 0. secs (0.u,0.s) -Chars 5293 - 5312 [(split;~intros~Hinf).] 0. secs (0.u,0.s) +Chars 5276 - 5292 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) +Chars 5293 - 5312 [split;~intros~Hinf.] 0. secs (0.u,0.s) Chars 5315 - 5316 [-] 0. secs (0.u,0.s) Chars 5317 - 5338 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 5339 - 5364 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) +Chars 5339 - 5364 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) Chars 5365 - 5383 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5388 - 5409 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 5388 - 5409 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) Chars 5410 - 5421 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 5422 - 5447 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 5448 - 5467 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 5472 - 5499 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 5500 - 5521 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 5526 - 5566 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 5571 - 5606 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 5607 - 5636 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 5641 - 5654 [(induction~Ht).] 0. secs (0.u,0.s) +Chars 5422 - 5447 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 5448 - 5467 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 5472 - 5499 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 5500 - 5521 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 5526 - 5566 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 5571 - 5606 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 5607 - 5636 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 5641 - 5654 [induction~Ht.] 0. secs (0.u,0.s) Chars 5659 - 5660 [+] 0. secs (0.u,0.s) -Chars 5661 - 5676 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 5661 - 5676 [inversion~Hinf.] 0. secs (0.u,0.s) Chars 5681 - 5682 [+] 0. secs (0.u,0.s) -Chars 5683 - 5705 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 5683 - 5705 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) Chars 5706 - 5718 [constructor.] 0. secs (0.u,0.s) -Chars 5719 - 5737 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 5719 - 5737 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 5742 - 5743 [+] 0. secs (0.u,0.s) -Chars 5744 - 5766 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) -Chars 5767 - 5792 [dependent~destruction~H2.] 0.002 secs (0.002u,0.s) +Chars 5744 - 5766 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 5767 - 5792 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) Chars 5799 - 5812 [econstructor.] 0. secs (0.u,0.s) -Chars 5813 - 5822 [(intros~b).] 0. secs (0.u,0.s) -Chars 5823 - 5848 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) -Chars 5849 - 5858 [(apply~H0).] 0. secs (0.u,0.s) +Chars 5813 - 5822 [intros~b.] 0. secs (0.u,0.s) +Chars 5823 - 5848 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 5849 - 5858 [apply~H0.] 0. secs (0.u,0.s) Chars 5863 - 5864 [+] 0. secs (0.u,0.s) -Chars 5865 - 5876 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 5877 - 5899 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) -Chars 5906 - 5944 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 5951 - 5984 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 5985 - 6012 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 5865 - 5876 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 5877 - 5899 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 5906 - 5944 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 5951 - 5984 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 5985 - 6012 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) Chars 6013 - 6022 [exact~H0.] 0. secs (0.u,0.s) Chars 6027 - 6028 [+] 0. secs (0.u,0.s) Chars 6029 - 6041 [constructor.] 0. secs (0.u,0.s) Chars 6042 - 6047 [step.] 0. secs (0.u,0.s) -Chars 6048 - 6075 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 6076 - 6097 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 6104 - 6115 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 6048 - 6075 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 6076 - 6097 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 6104 - 6115 [apply~IHHt.] 0. secs (0.u,0.s) Chars 6116 - 6127 [exact~Hinf.] 0. secs (0.u,0.s) Chars 6130 - 6131 [-] 0. secs (0.u,0.s) Chars 6132 - 6153 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 6154 - 6179 [(unfold~all_infinite~at~2).] 0. secs (0.u,0.s) +Chars 6154 - 6179 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) Chars 6180 - 6198 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6203 - 6224 [(intros~t1~t2~Ht~Hinf).] 0. secs (0.u,0.s) +Chars 6203 - 6224 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) Chars 6225 - 6236 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 6237 - 6262 [(cbn[eqit_mon~body]~in~Ht).] 0. secs (0.u,0.s) -Chars 6263 - 6282 [(unfold~eqit_~in~Ht).] 0. secs (0.u,0.s) -Chars 6287 - 6314 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 6315 - 6336 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 6341 - 6381 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 6386 - 6421 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 6422 - 6451 [(unfold~all_infinite_~in~Hinf).] 0. secs (0.u,0.s) -Chars 6456 - 6469 [(induction~Ht).] 0. secs (0.u,0.s) +Chars 6237 - 6262 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) +Chars 6263 - 6282 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) +Chars 6287 - 6314 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 6315 - 6336 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 6341 - 6381 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 6386 - 6421 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) +Chars 6422 - 6451 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) +Chars 6456 - 6469 [induction~Ht.] 0. secs (0.u,0.s) Chars 6474 - 6475 [+] 0. secs (0.u,0.s) -Chars 6476 - 6491 [(inversion~Hinf).] 0. secs (0.u,0.s) +Chars 6476 - 6491 [inversion~Hinf.] 0. secs (0.u,0.s) Chars 6496 - 6497 [+] 0. secs (0.u,0.s) -Chars 6498 - 6520 [(inversion~Hinf;~subst).] 0. secs (0.u,0.s) +Chars 6498 - 6520 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) Chars 6521 - 6533 [constructor.] 0. secs (0.u,0.s) -Chars 6534 - 6552 [(eapply~CIH;~eauto).] 0. secs (0.u,0.s) +Chars 6534 - 6552 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) Chars 6557 - 6558 [+] 0. secs (0.u,0.s) -Chars 6559 - 6581 [(inversion~Hinf;~subst).] 0.001 secs (0.001u,0.s) -Chars 6582 - 6607 [dependent~destruction~H2.] 0.002 secs (0.002u,0.s) +Chars 6559 - 6581 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 6582 - 6607 [dependent~destruction~H2.] 0.003 secs (0.003u,0.s) Chars 6614 - 6627 [econstructor.] 0. secs (0.u,0.s) -Chars 6628 - 6637 [(intros~b).] 0. secs (0.u,0.s) -Chars 6638 - 6663 [(eapply~CIH;~[~apply~REL~|~~]).] 0. secs (0.u,0.s) -Chars 6664 - 6673 [(apply~H0).] 0. secs (0.u,0.s) +Chars 6628 - 6637 [intros~b.] 0. secs (0.u,0.s) +Chars 6638 - 6663 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) +Chars 6664 - 6673 [apply~H0.] 0. secs (0.u,0.s) Chars 6678 - 6679 [+] 0. secs (0.u,0.s) Chars 6680 - 6692 [constructor.] 0. secs (0.u,0.s) Chars 6693 - 6698 [step.] 0. secs (0.u,0.s) -Chars 6699 - 6726 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 6727 - 6748 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 6755 - 6766 [(apply~IHHt).] 0. secs (0.u,0.s) +Chars 6699 - 6726 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 6727 - 6748 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 6755 - 6766 [apply~IHHt.] 0. secs (0.u,0.s) Chars 6767 - 6778 [exact~Hinf.] 0. secs (0.u,0.s) Chars 6783 - 6784 [+] 0. secs (0.u,0.s) -Chars 6785 - 6796 [(apply~IHHt).] 0. secs (0.u,0.s) -Chars 6797 - 6819 [(inversion~Hinf;~subst).] 0.004 secs (0.003u,0.s) -Chars 6826 - 6864 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 6871 - 6904 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 6905 - 6932 [(unfold~all_infinite_~in~H0).] 0. secs (0.u,0.s) +Chars 6785 - 6796 [apply~IHHt.] 0. secs (0.u,0.s) +Chars 6797 - 6819 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) +Chars 6826 - 6864 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 6871 - 6904 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) +Chars 6905 - 6932 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) Chars 6933 - 6942 [exact~H0.] 0. secs (0.u,0.s) -Chars 6943 - 6947 [Qed.] 0.01 secs (0.009u,0.s) +Chars 6943 - 6947 [Qed.] 0.007 secs (0.007u,0.s) Chars 6949 - 7093 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) Chars 7094 - 7100 [Proof.] 0. secs (0.u,0.s) -Chars 7103 - 7114 [(intros~E~A).] 0. secs (0.u,0.s) -Chars 7115 - 7135 [(unfold~all_infinite).] 0. secs (0.u,0.s) +Chars 7103 - 7114 [intros~E~A.] 0. secs (0.u,0.s) +Chars 7115 - 7135 [unfold~all_infinite.] 0. secs (0.u,0.s) Chars 7136 - 7154 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 7155 - 7169 [(intros~t~Hcon).] 0. secs (0.u,0.s) -Chars 7172 - 7199 [(cbn[all_infinite_mon~body]).] 0. secs (0.u,0.s) -Chars 7200 - 7221 [(unfold~all_infinite_).] 0. secs (0.u,0.s) -Chars 7224 - 7308 [(destruct~(observe~t)~eqn:Heq;...] 0. secs (0.u,0.s) +Chars 7155 - 7169 [intros~t~Hcon.] 0. secs (0.u,0.s) +Chars 7172 - 7199 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) +Chars 7200 - 7221 [unfold~all_infinite_.] 0. secs (0.u,0.s) +Chars 7224 - 7308 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) Chars 7311 - 7312 [-] 0. secs (0.u,0.s) Chars 7313 - 7321 [exfalso.] 0. secs (0.u,0.s) -Chars 7322 - 7337 [(apply~(Hcon~r)).] 0. secs (0.u,0.s) -Chars 7338 - 7349 [(rewrite~Ht).] 0.003 secs (0.003u,0.s) +Chars 7322 - 7337 [apply~(Hcon~r).] 0. secs (0.u,0.s) +Chars 7338 - 7349 [rewrite~Ht.] 0.002 secs (0.002u,0.s) Chars 7350 - 7362 [constructor.] 0. secs (0.u,0.s) Chars 7363 - 7375 [reflexivity.] 0. secs (0.u,0.s) Chars 7378 - 7379 [-] 0. secs (0.u,0.s) Chars 7380 - 7392 [constructor.] 0. secs (0.u,0.s) -Chars 7393 - 7403 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7408 - 7434 [setoid_rewrite~Ht~in~Hcon.] 0.004 secs (0.004u,0.s) -Chars 7435 - 7467 [setoid_rewrite~tau_eutt~in~Hcon.] 0.001 secs (0.001u,0.s) +Chars 7393 - 7403 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7408 - 7434 [setoid_rewrite~Ht~in~Hcon.] 0.003 secs (0.003u,0.s) +Chars 7435 - 7467 [setoid_rewrite~tau_eutt~in~Hcon.] 0. secs (0.u,0.s) Chars 7468 - 7473 [auto.] 0. secs (0.u,0.s) Chars 7476 - 7477 [-] 0. secs (0.u,0.s) Chars 7478 - 7490 [constructor.] 0. secs (0.u,0.s) -Chars 7491 - 7500 [(intros~b).] 0. secs (0.u,0.s) -Chars 7501 - 7511 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 7516 - 7533 [(intros~a~Hcontra).] 0. secs (0.u,0.s) -Chars 7534 - 7560 [setoid_rewrite~Ht~in~Hcon.] 0.009 secs (0.008u,0.s) -Chars 7565 - 7580 [(apply~(Hcon~a)).] 0. secs (0.u,0.s) -Chars 7581 - 7621 [(eapply~conv_vis;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 7622 - 7626 [Qed.] 0.002 secs (0.002u,0.s) +Chars 7491 - 7500 [intros~b.] 0. secs (0.u,0.s) +Chars 7501 - 7511 [apply~CIH.] 0. secs (0.u,0.s) +Chars 7516 - 7533 [intros~a~Hcontra.] 0. secs (0.u,0.s) +Chars 7534 - 7560 [setoid_rewrite~Ht~in~Hcon.] 0.006 secs (0.006u,0.s) +Chars 7565 - 7580 [apply~(Hcon~a).] 0. secs (0.u,0.s) +Chars 7581 - 7621 [eapply~conv_vis;~try~reflexivi...] 0. secs (0.u,0.s) +Chars 7622 - 7626 [Qed.] 0.001 secs (0.001u,0.s) Chars 7628 - 7758 [Lemma~classic_converge~:~~~for...] 0. secs (0.u,0.s) Chars 7759 - 7765 [Proof.] 0. secs (0.u,0.s) -Chars 7768 - 7775 [(intros).] 0. secs (0.u,0.s) -Chars 7776 - 7831 [(destruct~(classic~(exists~a,~...] 0. secs (0.u,0.s) +Chars 7768 - 7775 [intros.] 0. secs (0.u,0.s) +Chars 7776 - 7831 [destruct~(classic~(exists~a,~m...] 0. secs (0.u,0.s) Chars 7834 - 7840 [right.] 0. secs (0.u,0.s) -Chars 7841 - 7876 [(apply~not_converge_to_all_inf...] 0. secs (0.u,0.s) -Chars 7877 - 7894 [(intros~a~Hcontra).] 0. secs (0.u,0.s) -Chars 7897 - 7905 [(apply~H).] 0. secs (0.u,0.s) +Chars 7841 - 7876 [apply~not_converge_to_all_infi...] 0. secs (0.u,0.s) +Chars 7877 - 7894 [intros~a~Hcontra.] 0. secs (0.u,0.s) +Chars 7897 - 7905 [apply~H.] 0. secs (0.u,0.s) Chars 7906 - 7915 [exists~a.] 0. secs (0.u,0.s) Chars 7916 - 7921 [auto.] 0. secs (0.u,0.s) Chars 7922 - 7926 [Qed.] 0. secs (0.u,0.s) Chars 7928 - 8065 [Lemma~all_infinite_not_converg...] 0. secs (0.u,0.s) Chars 8066 - 8072 [Proof.] 0. secs (0.u,0.s) -Chars 8075 - 8096 [(intros~E~R~t~r~Hc~Hd).] 0. secs (0.u,0.s) -Chars 8097 - 8110 [(induction~Hc).] 0. secs (0.u,0.s) +Chars 8075 - 8096 [intros~E~R~t~r~Hc~Hd.] 0. secs (0.u,0.s) +Chars 8097 - 8110 [induction~Hc.] 0. secs (0.u,0.s) Chars 8113 - 8114 [-] 0. secs (0.u,0.s) -Chars 8115 - 8131 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) -Chars 8132 - 8170 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 8175 - 8208 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 8209 - 8236 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) -Chars 8241 - 8254 [(inversion~Hd).] 0. secs (0.u,0.s) +Chars 8115 - 8131 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) +Chars 8132 - 8170 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 8175 - 8208 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) +Chars 8209 - 8236 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) +Chars 8241 - 8254 [inversion~Hd.] 0. secs (0.u,0.s) Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8270 [(apply~IHHc).] 0. secs (0.u,0.s) -Chars 8271 - 8287 [(rewrite~H~in~Hd).] 0.001 secs (0.001u,0.s) -Chars 8292 - 8330 [(apply~(gfp_fp~all_infinite_mo...] 0. secs (0.u,0.s) -Chars 8335 - 8368 [(cbn[all_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 8369 - 8396 [(unfold~all_infinite_~in~Hd).] 0. secs (0.u,0.s) -Chars 8401 - 8414 [(inversion~Hd).] 0.001 secs (0.001u,0.s) +Chars 8259 - 8270 [apply~IHHc.] 0. secs (0.u,0.s) +Chars 8271 - 8287 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) +Chars 8292 - 8330 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) +Chars 8335 - 8368 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) +Chars 8369 - 8396 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) +Chars 8401 - 8414 [inversion~Hd.] 0. secs (0.u,0.s) Chars 8415 - 8428 [ddestruction.] 0.001 secs (0.001u,0.s) Chars 8429 - 8435 [subst.] 0. secs (0.u,0.s) -Chars 8436 - 8445 [(apply~H1).] 0. secs (0.u,0.s) -Chars 8446 - 8450 [Qed.] 0.003 secs (0.003u,0.s) +Chars 8436 - 8445 [apply~H1.] 0. secs (0.u,0.s) +Chars 8446 - 8450 [Qed.] 0.002 secs (0.002u,0.s) Chars 8452 - 8548 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) Chars 8549 - 8555 [Proof.] 0. secs (0.u,0.s) -Chars 8558 - 8565 [(intros).] 0. secs (0.u,0.s) -Chars 8566 - 8578 [(inversion~H).] 0. secs (0.u,0.s) +Chars 8558 - 8565 [intros.] 0. secs (0.u,0.s) +Chars 8566 - 8578 [inversion~H.] 0. secs (0.u,0.s) Chars 8581 - 8582 [-] 0. secs (0.u,0.s) -Chars 8583 - 8608 [(apply~eutt_inv_Ret~in~H0).] 0. secs (0.u,0.s) +Chars 8583 - 8608 [apply~eutt_inv_Ret~in~H0.] 0. secs (0.u,0.s) Chars 8609 - 8614 [auto.] 0. secs (0.u,0.s) Chars 8617 - 8618 [-] 0. secs (0.u,0.s) -Chars 8619 - 8666 [(apply~eqit_inv~in~H0;~cbn~in~...] 0. secs (0.u,0.s) -Chars 8667 - 8671 [Qed.] 0.001 secs (0.001u,0.s) +Chars 8619 - 8666 [apply~eqit_inv~in~H0;~cbn~in~H...] 0. secs (0.u,0.s) +Chars 8667 - 8671 [Qed.] 0. secs (0.u,0.s) Chars 8746 - 8845 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) Chars 8888 - 9006 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) Chars 9007 - 9013 [Proof.] 0. secs (0.u,0.s) -Chars 9016 - 9033 [(intros~H~HContra).] 0. secs (0.u,0.s) -Chars 9034 - 9055 [(rewrite~HContra~in~H).] 0.001 secs (0.001u,0.s) -Chars 9058 - 9095 [(apply~(gfp_fp~any_infinite_mo...] 0. secs (0.u,0.s) -Chars 9098 - 9130 [(cbn[any_infinite_mon~body]~in...] 0. secs (0.u,0.s) -Chars 9131 - 9157 [(unfold~any_infinite_~in~H).] 0. secs (0.u,0.s) -Chars 9160 - 9172 [(inversion~H).] 0. secs (0.u,0.s) +Chars 9016 - 9033 [intros~H~HContra.] 0. secs (0.u,0.s) +Chars 9034 - 9055 [rewrite~HContra~in~H.] 0. secs (0.u,0.s) +Chars 9058 - 9095 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) +Chars 9098 - 9130 [cbn[any_infinite_mon~body]~in~H.] 0. secs (0.u,0.s) +Chars 9131 - 9157 [unfold~any_infinite_~in~H.] 0. secs (0.u,0.s) +Chars 9160 - 9172 [inversion~H.] 0. secs (0.u,0.s) Chars 9173 - 9177 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Leaf.v.timing b/theories/Props/Leaf.v.timing index ac93c33c..13238d0c 100644 --- a/theories/Props/Leaf.v.timing +++ b/theories/Props/Leaf.v.timing @@ -1,9 +1,9 @@ -Chars 56 - 92 [From~Coinduction~Require~Impor...] 0.009 secs (0.007u,0.002s) -Chars 95 - 298 [From~ITree~Require~Import~Basi...] 0.089 secs (0.073u,0.015s) -Chars 300 - 361 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.001u,0.001s) +Chars 56 - 92 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) +Chars 95 - 298 [From~ITree~Require~Import~Basi...] 0.058 secs (0.049u,0.008s) +Chars 300 - 361 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) Chars 362 - 375 [Import~ITree.] 0. secs (0.u,0.s) Chars 376 - 398 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 864 - 1156 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.002 secs (0.002u,0.s) +Chars 864 - 1156 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.001 secs (0.001u,0.s) Chars 1157 - 1198 [#[global]~Hint~Constructors~Le...] 0. secs (0.u,0.s) Chars 1200 - 1221 [Module~LeafNotations.] 0. secs (0.u,0.s) Chars 1224 - 1271 [Notation~"a~∈~t"~:=~(Leaf~a~t)...] 0. secs (0.u,0.s) @@ -11,392 +11,392 @@ Chars 1272 - 1290 [End~LeafNotations.] 0. secs (0.u,0.s) Chars 1292 - 1313 [Import~LeafNotations.] 0. secs (0.u,0.s) Chars 1342 - 1401 [Lemma~Leaf_Ret~:~forall~E~R~a,...] 0. secs (0.u,0.s) Chars 1402 - 1408 [Proof.] 0. secs (0.u,0.s) -Chars 1411 - 1445 [(intros;~econstructor;~reflexi...] 0. secs (0.u,0.s) +Chars 1411 - 1445 [intros;~econstructor;~reflexiv...] 0. secs (0.u,0.s) Chars 1446 - 1450 [Qed.] 0. secs (0.u,0.s) Chars 1452 - 1526 [Lemma~Leaf_Tau~:~forall~E~R~a~...] 0. secs (0.u,0.s) Chars 1527 - 1533 [Proof.] 0. secs (0.u,0.s) -Chars 1536 - 1580 [(intros;~econstructor;~[~refle...] 0. secs (0.u,0.s) +Chars 1536 - 1580 [intros;~econstructor;~[~reflex...] 0. secs (0.u,0.s) Chars 1581 - 1585 [Qed.] 0. secs (0.u,0.s) Chars 1587 - 1688 [Lemma~Leaf_Vis~:~~~forall~E~X~...] 0. secs (0.u,0.s) Chars 1689 - 1695 [Proof.] 0. secs (0.u,0.s) -Chars 1698 - 1749 [(intros~*~IN;~econstructor~3;~...] 0. secs (0.u,0.s) +Chars 1698 - 1749 [intros~*~IN;~econstructor~3;~[...] 0. secs (0.u,0.s) Chars 1750 - 1754 [Qed.] 0. secs (0.u,0.s) Chars 1780 - 1860 [Lemma~Leaf_Ret_inv~:~forall~E~...] 0. secs (0.u,0.s) Chars 1861 - 1867 [Proof.] 0. secs (0.u,0.s) -Chars 1870 - 1916 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) -Chars 1917 - 1921 [Qed.] 0.001 secs (0.001u,0.s) +Chars 1870 - 1916 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) +Chars 1917 - 1921 [Qed.] 0. secs (0.u,0.s) Chars 1923 - 2001 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) Chars 2002 - 2008 [Proof.] 0. secs (0.u,0.s) -Chars 2011 - 2057 [(intros~*~IN;~inv~IN;~cbn~in~*...] 0.003 secs (0.003u,0.s) -Chars 2058 - 2062 [Qed.] 0.001 secs (0.001u,0.s) +Chars 2011 - 2057 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) +Chars 2058 - 2062 [Qed.] 0. secs (0.u,0.s) Chars 2064 - 2173 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) Chars 2174 - 2180 [Proof.] 0. secs (0.u,0.s) -Chars 2183 - 2231 [(intros~*~IN~*;~inv~IN;~cbn~in...] 0.003 secs (0.003u,0.s) +Chars 2183 - 2231 [intros~*~IN~*;~inv~IN;~cbn~in~...] 0.002 secs (0.002u,0.s) Chars 2234 - 2246 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 2249 - 2364 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) -Chars 2367 - 2373 [eauto.] 0. secs (0.u,0.s) +Chars 2249 - 2364 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 2367 - 2373 [eauto.] 0.027 secs (0.027u,0.s) Chars 2374 - 2378 [Qed.] 0.001 secs (0.001u,0.s) Chars 2551 - 2688 [Lemma~Leaf_eutt_l~{E}~{A}~{B}~...] 0. secs (0.u,0.s) Chars 2689 - 2695 [Proof.] 0. secs (0.u,0.s) -Chars 2698 - 2729 [(intros~*~EQ~FIN;~revert~u~EQ).] 0. secs (0.u,0.s) -Chars 2732 - 2760 [(induction~FIN;~intros~u2~EQ).] 0. secs (0.u,0.s) +Chars 2698 - 2729 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) +Chars 2732 - 2760 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) Chars 2764 - 2765 [-] 0. secs (0.u,0.s) Chars 2766 - 2777 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 2783 - 2810 [(rewrite~H~in~EQ;~clear~H~t).] 0. secs (0.u,0.s) -Chars 2815 - 2847 [(remember~(RetF~a);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 2852 - 2893 [(hinduction~EQ~before~R;~intro...] 0.043 secs (0.042u,0.001s) +Chars 2783 - 2810 [rewrite~H~in~EQ;~clear~H~t.] 0. secs (0.u,0.s) +Chars 2815 - 2847 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) +Chars 2852 - 2893 [hinduction~EQ~before~R;~intros...] 0.004 secs (0.004u,0.s) Chars 2898 - 2899 [+] 0. secs (0.u,0.s) -Chars 2900 - 2927 [(inv~Heqi;~eauto~with~itree).] 0.001 secs (0.001u,0.s) +Chars 2900 - 2927 [inv~Heqi;~eauto~with~itree.] 0.001 secs (0.001u,0.s) Chars 2932 - 2933 [+] 0. secs (0.u,0.s) -Chars 2934 - 2984 [(edestruct~IHEQ~as~(b,~(IN,~HR...] 0.001 secs (0.001u,0.s) +Chars 2934 - 2984 [edestruct~IHEQ~as~(b,~(IN,~HR)...] 0. secs (0.u,0.s) Chars 2987 - 2988 [-] 0. secs (0.u,0.s) -Chars 2989 - 3028 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 3033 - 3066 [(remember~(TauF~u);~genobs~u2~...] 0. secs (0.u,0.s) -Chars 3071 - 3122 [(hinduction~EQ~before~R;~intro...] 0.026 secs (0.024u,0.002s) +Chars 2989 - 3028 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 3033 - 3066 [remember~(TauF~u);~genobs~u2~ou2.] 0. secs (0.u,0.s) +Chars 3071 - 3122 [hinduction~EQ~before~R;~intros...] 0.02 secs (0.018u,0.002s) Chars 3127 - 3128 [+] 0. secs (0.u,0.s) -Chars 3129 - 3196 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.002 secs (0.001u,0.s) +Chars 3129 - 3196 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) Chars 3201 - 3202 [+] 0. secs (0.u,0.s) -Chars 3203 - 3216 [(eapply~IHFIN).] 0. secs (0.u,0.s) -Chars 3217 - 3226 [now~step.] 0.002 secs (0.001u,0.s) +Chars 3203 - 3216 [eapply~IHFIN.] 0. secs (0.u,0.s) +Chars 3217 - 3226 [now~step.] 0.001 secs (0.001u,0.s) Chars 3232 - 3233 [+] 0. secs (0.u,0.s) -Chars 3234 - 3300 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) +Chars 3234 - 3300 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.001 secs (0.001u,0.s) Chars 3303 - 3304 [-] 0. secs (0.u,0.s) -Chars 3305 - 3344 [(step~in~EQ;~rewrite~H~in~EQ;~...] 0. secs (0.u,0.s) -Chars 3349 - 3384 [(remember~(VisF~e~k);~genobs~u...] 0. secs (0.u,0.s) -Chars 3389 - 3438 [(hinduction~EQ~before~R;~intro...] 0.002 secs (0.001u,0.s) +Chars 3305 - 3344 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) +Chars 3349 - 3384 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) +Chars 3389 - 3438 [hinduction~EQ~before~R;~intros...] 0.001 secs (0.001u,0.s) Chars 3443 - 3444 [+] 0. secs (0.u,0.s) Chars 3445 - 3464 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 3471 - 3589 [refine~~match~~~~Heqi~in~(_~=~...] 0. secs (0.u,0.s) -Chars 3596 - 3603 [(intros).] 0. secs (0.u,0.s) -Chars 3604 - 3668 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.003 secs (0.002u,0.s) +Chars 3471 - 3589 [refine~~~match~~~~~Heqi~in~(_~...] 0.003 secs (0.002u,0.s) +Chars 3596 - 3603 [intros.] 0. secs (0.u,0.s) +Chars 3604 - 3668 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.003 secs (0.002u,0.s) Chars 3673 - 3674 [+] 0. secs (0.u,0.s) -Chars 3675 - 3742 [(edestruct~IHEQ~as~(?,~(?,~?))...] 0.002 secs (0.001u,0.s) -Chars 3743 - 3747 [Qed.] 0.013 secs (0.01u,0.002s) +Chars 3675 - 3742 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.001 secs (0.001u,0.s) +Chars 3743 - 3747 [Qed.] 0.006 secs (0.006u,0.s) Chars 3749 - 3886 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) Chars 3887 - 3893 [Proof.] 0. secs (0.u,0.s) -Chars 3896 - 3912 [(intros~*~EQ~FIN).] 0. secs (0.u,0.s) -Chars 3915 - 3937 [(apply~eqit_flip~in~EQ).] 0. secs (0.u,0.s) +Chars 3896 - 3912 [intros~*~EQ~FIN.] 0. secs (0.u,0.s) +Chars 3915 - 3937 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) Chars 3940 - 3954 [revert~EQ~FIN.] 0. secs (0.u,0.s) -Chars 3957 - 3976 [(apply~@Leaf_eutt_l).] 0. secs (0.u,0.s) +Chars 3957 - 3976 [apply~@Leaf_eutt_l.] 0. secs (0.u,0.s) Chars 3977 - 3981 [Qed.] 0. secs (0.u,0.s) Chars 3983 - 4065 [#[global]~Instance~Leaf_eutt~~...] 0. secs (0.u,0.s) Chars 4066 - 4072 [Proof.] 0. secs (0.u,0.s) -Chars 4075 - 4121 [(apply~proper_sym_impl_iff_2;~...] 0. secs (0.u,0.s) -Chars 4124 - 4156 [(unfold~Proper,~respectful,~im...] 0. secs (0.u,0.s) -Chars 4157 - 4171 [(intros;~subst).] 0. secs (0.u,0.s) -Chars 4174 - 4243 [(edestruct~@Leaf_eutt_l~as~[?~...] 0. secs (0.u,0.s) +Chars 4075 - 4121 [apply~proper_sym_impl_iff_2;~[...] 0. secs (0.u,0.s) +Chars 4124 - 4156 [unfold~Proper,~respectful,~impl.] 0. secs (0.u,0.s) +Chars 4157 - 4171 [intros;~subst.] 0. secs (0.u,0.s) +Chars 4174 - 4243 [edestruct~@Leaf_eutt_l~as~[?~[...] 0. secs (0.u,0.s) Chars 4244 - 4248 [Qed.] 0. secs (0.u,0.s) Chars 4306 - 4427 [Lemma~Leaf_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) Chars 4428 - 4434 [Proof.] 0. secs (0.u,0.s) -Chars 4437 - 4469 [(intros~*~INt~INk;~induction~I...] 0. secs (0.u,0.s) +Chars 4437 - 4469 [intros~*~INt~INk;~induction~INt.] 0. secs (0.u,0.s) Chars 4472 - 4473 [-] 0. secs (0.u,0.s) -Chars 4474 - 4517 [(rewrite~(itree_eta~t),~H,~bin...] 0.006 secs (0.006u,0.s) +Chars 4474 - 4517 [rewrite~(itree_eta~t),~H,~bind...] 0.004 secs (0.004u,0.s) Chars 4520 - 4521 [-] 0. secs (0.u,0.s) -Chars 4522 - 4563 [(rewrite~(itree_eta~t),~H,~tau...] 0.006 secs (0.006u,0.s) +Chars 4522 - 4563 [rewrite~(itree_eta~t),~H,~tau_...] 0.004 secs (0.004u,0.s) Chars 4566 - 4567 [-] 0. secs (0.u,0.s) -Chars 4568 - 4603 [(rewrite~(itree_eta~t),~H,~bin...] 0.005 secs (0.005u,0.s) -Chars 4608 - 4636 [(apply~Leaf_Vis~with~x;~auto).] 0. secs (0.u,0.s) -Chars 4637 - 4641 [Qed.] 0.002 secs (0.002u,0.s) +Chars 4568 - 4603 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) +Chars 4608 - 4636 [apply~Leaf_Vis~with~x;~auto.] 0. secs (0.u,0.s) +Chars 4637 - 4641 [Qed.] 0.001 secs (0.001u,0.s) Chars 4643 - 4774 [Lemma~Leaf_bind_inv~:~~~forall...] 0. secs (0.u,0.s) Chars 4775 - 4781 [Proof.] 0. secs (0.u,0.s) -Chars 4784 - 4831 [(intros~*~FIN;~remember~(ITree...] 0. secs (0.u,0.s) +Chars 4784 - 4831 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) Chars 4834 - 4850 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 4853 - 4902 [(induction~FIN;~intros~t'~k'~-...] 0. secs (0.u,0.s) +Chars 4853 - 4902 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) Chars 4905 - 4906 [-] 0. secs (0.u,0.s) -Chars 4907 - 4937 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 4942 - 4981 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 4986 - 5012 [(exists~r;~auto~with~itree).] 0. secs (0.u,0.s) +Chars 4907 - 4937 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 4942 - 4981 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) +Chars 4986 - 5012 [exists~r;~auto~with~itree.] 0. secs (0.u,0.s) Chars 5015 - 5016 [-] 0. secs (0.u,0.s) -Chars 5017 - 5047 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 5052 - 5124 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.001 secs (0.001u,0.s) -Chars 5129 - 5166 [(inversion~H;~clear~H;~symmetr...] 0. secs (0.u,0.s) -Chars 5171 - 5241 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) +Chars 5017 - 5047 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 5052 - 5124 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) +Chars 5129 - 5166 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) +Chars 5171 - 5241 [edestruct~IHFIN~as~(?,~(?,~?))...] 0. secs (0.u,0.s) Chars 5244 - 5245 [-] 0. secs (0.u,0.s) -Chars 5246 - 5276 [(unfold~observe~in~H;~cbn~in~H).] 0. secs (0.u,0.s) -Chars 5281 - 5353 [(desobs~t~EQ_;~cbn~in~*;~try~c...] 0.002 secs (0.002u,0.s) +Chars 5246 - 5276 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) +Chars 5281 - 5353 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) Chars 5358 - 5377 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 5382 - 5497 [refine~~match~~~~H~in~(_~=~u)~...] 0. secs (0.u,0.s) -Chars 5502 - 5509 [(intros).] 0. secs (0.u,0.s) -Chars 5514 - 5590 [(edestruct~IHFIN~as~(?,~(?,~?)...] 0.001 secs (0.001u,0.s) -Chars 5591 - 5595 [Qed.] 0.004 secs (0.004u,0.s) +Chars 5382 - 5497 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) +Chars 5502 - 5509 [intros.] 0. secs (0.u,0.s) +Chars 5514 - 5590 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) +Chars 5591 - 5595 [Qed.] 0.002 secs (0.002u,0.s) Chars 5799 - 6253 [Lemma~eqit_clo_bind_gen~:~~~fo...] 0.001 secs (0.001u,0.s) Chars 6254 - 6260 [Proof.] 0. secs (0.u,0.s) -Chars 6263 - 6287 [(intros~E~R1~R2~RR~U1~U2).] 0. secs (0.u,0.s) -Chars 6290 - 6320 [(intros~UU~b1~b2~c~t1~t2~k1~k2).] 0. secs (0.u,0.s) +Chars 6263 - 6287 [intros~E~R1~R2~RR~U1~U2.] 0. secs (0.u,0.s) +Chars 6290 - 6320 [intros~UU~b1~b2~c~t1~t2~k1~k2.] 0. secs (0.u,0.s) Chars 6323 - 6345 [revert~UU~t1~t2~k1~k2.] 0. secs (0.u,0.s) -Chars 6348 - 6364 [tower~induction.] 0.005 secs (0.004u,0.s) +Chars 6348 - 6364 [tower~induction.] 0.004 secs (0.004u,0.s) Chars 6367 - 6368 [{] 0. secs (0.u,0.s) -Chars 6369 - 6376 [(intros).] 0. secs (0.u,0.s) -Chars 6377 - 6397 [(unfold~Datatypes.id).] 0. secs (0.u,0.s) -Chars 6398 - 6413 [(apply~H0;~auto).] 0.002 secs (0.001u,0.s) +Chars 6369 - 6376 [intros.] 0. secs (0.u,0.s) +Chars 6377 - 6397 [unfold~Datatypes.id.] 0. secs (0.u,0.s) +Chars 6398 - 6413 [apply~H0;~auto.] 0.001 secs (0.001u,0.s) Chars 6414 - 6415 [}] 0. secs (0.u,0.s) -Chars 6418 - 6430 [(intros~x~IH).] 0. secs (0.u,0.s) -Chars 6433 - 6464 [(intros~UU~t1~t2~k1~k2~EQT~EQKL).] 0. secs (0.u,0.s) -Chars 6467 - 6492 [(cbn[eqit_mon~body]~in~*).] 0. secs (0.u,0.s) -Chars 6495 - 6513 [(unfold~eqit_~in~*).] 0. secs (0.u,0.s) -Chars 6516 - 6530 [(genobs~t1~ot1).] 0. secs (0.u,0.s) -Chars 6533 - 6547 [(genobs~t2~ot2).] 0. secs (0.u,0.s) -Chars 6550 - 6583 [(hinduction~EQT~before~RR;~int...] 0.003 secs (0.003u,0.s) -Chars 6586 - 6623 [1-3:~(rewrite~2!observe_bind;~...] 0.021 secs (0.02u,0.s) +Chars 6418 - 6430 [intros~x~IH.] 0. secs (0.u,0.s) +Chars 6433 - 6464 [intros~UU~t1~t2~k1~k2~EQT~EQKL.] 0. secs (0.u,0.s) +Chars 6467 - 6492 [cbn[eqit_mon~body]~in~*.] 0. secs (0.u,0.s) +Chars 6495 - 6513 [unfold~eqit_~in~*.] 0. secs (0.u,0.s) +Chars 6516 - 6530 [genobs~t1~ot1.] 0. secs (0.u,0.s) +Chars 6533 - 6547 [genobs~t2~ot2.] 0. secs (0.u,0.s) +Chars 6550 - 6583 [hinduction~EQT~before~RR;~intros.] 0.002 secs (0.002u,0.s) +Chars 6586 - 6623 [1-3:~rewrite~2!observe_bind;~s...] 0.014 secs (0.014u,0.s) Chars 6627 - 6628 [+] 0. secs (0.u,0.s) -Chars 6643 - 6654 [(apply~EQKL).] 0. secs (0.u,0.s) +Chars 6643 - 6654 [apply~EQKL.] 0. secs (0.u,0.s) Chars 6660 - 6661 [*] 0. secs (0.u,0.s) -Chars 6662 - 6682 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) +Chars 6662 - 6682 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) Chars 6687 - 6688 [*] 0. secs (0.u,0.s) -Chars 6689 - 6709 [(apply~LeafRet;~auto).] 0. secs (0.u,0.s) +Chars 6689 - 6709 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) Chars 6714 - 6715 [*] 0. secs (0.u,0.s) Chars 6716 - 6726 [exact~REL.] 0. secs (0.u,0.s) Chars 6729 - 6730 [+] 0. secs (0.u,0.s) Chars 6745 - 6750 [taus.] 0. secs (0.u,0.s) -Chars 6756 - 6766 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 6756 - 6766 [eapply~IH.] 0. secs (0.u,0.s) Chars 6771 - 6772 [*] 0. secs (0.u,0.s) Chars 6773 - 6783 [exact~REL.] 0. secs (0.u,0.s) Chars 6788 - 6789 [*] 0. secs (0.u,0.s) -Chars 6790 - 6814 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) -Chars 6821 - 6826 [step.] 0.003 secs (0.003u,0.s) -Chars 6827 - 6838 [(apply~EQKL).] 0. secs (0.u,0.s) +Chars 6790 - 6814 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) +Chars 6821 - 6826 [step.] 0.001 secs (0.001u,0.s) +Chars 6827 - 6838 [apply~EQKL.] 0. secs (0.u,0.s) Chars 6845 - 6847 [--] 0. secs (0.u,0.s) -Chars 6848 - 6870 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) +Chars 6848 - 6870 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) Chars 6877 - 6879 [--] 0. secs (0.u,0.s) -Chars 6880 - 6902 [(eapply~LeafTau;~eauto).] 0. secs (0.u,0.s) +Chars 6880 - 6902 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) Chars 6909 - 6911 [--] 0. secs (0.u,0.s) Chars 6912 - 6921 [exact~HU.] 0. secs (0.u,0.s) Chars 6924 - 6925 [+] 0. secs (0.u,0.s) Chars 6940 - 6952 [constructor.] 0. secs (0.u,0.s) Chars 6953 - 6961 [intro~v.] 0. secs (0.u,0.s) -Chars 6966 - 6976 [(eapply~IH).] 0. secs (0.u,0.s) +Chars 6966 - 6976 [eapply~IH.] 0. secs (0.u,0.s) Chars 6981 - 6982 [*] 0. secs (0.u,0.s) -Chars 6983 - 6993 [(apply~REL).] 0. secs (0.u,0.s) +Chars 6983 - 6993 [apply~REL.] 0. secs (0.u,0.s) Chars 6998 - 6999 [*] 0. secs (0.u,0.s) -Chars 7000 - 7024 [(intros~u1~u2~HL1~HL2~HU).] 0. secs (0.u,0.s) -Chars 7031 - 7036 [step.] 0.002 secs (0.002u,0.s) -Chars 7037 - 7048 [(apply~EQKL).] 0. secs (0.u,0.s) +Chars 7000 - 7024 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) +Chars 7031 - 7036 [step.] 0.001 secs (0.001u,0.s) +Chars 7037 - 7048 [apply~EQKL.] 0. secs (0.u,0.s) Chars 7055 - 7057 [--] 0. secs (0.u,0.s) -Chars 7058 - 7080 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) +Chars 7058 - 7080 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) Chars 7087 - 7089 [--] 0. secs (0.u,0.s) -Chars 7090 - 7112 [(eapply~LeafVis;~eauto).] 0. secs (0.u,0.s) +Chars 7090 - 7112 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) Chars 7119 - 7121 [--] 0. secs (0.u,0.s) Chars 7122 - 7131 [exact~HU.] 0. secs (0.u,0.s) Chars 7134 - 7135 [+] 0. secs (0.u,0.s) -Chars 7151 - 7172 [(rewrite~observe_bind).] 0. secs (0.u,0.s) -Chars 7173 - 7181 [simpobs.] 0.005 secs (0.005u,0.s) +Chars 7151 - 7172 [rewrite~observe_bind.] 0. secs (0.u,0.s) +Chars 7173 - 7181 [simpobs.] 0.004 secs (0.004u,0.s) Chars 7186 - 7191 [taul.] 0. secs (0.u,0.s) -Chars 7196 - 7227 [(eapply~IHEQT;~eauto~with~itree).] 0.004 secs (0.003u,0.s) +Chars 7196 - 7227 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) Chars 7230 - 7231 [+] 0. secs (0.u,0.s) -Chars 7247 - 7280 [setoid_rewrite~observe_bind~at~2.] 0.025 secs (0.023u,0.001s) -Chars 7281 - 7289 [simpobs.] 0.004 secs (0.004u,0.s) +Chars 7247 - 7280 [setoid_rewrite~observe_bind~at~2.] 0.018 secs (0.018u,0.s) +Chars 7281 - 7289 [simpobs.] 0.003 secs (0.003u,0.s) Chars 7294 - 7299 [taur.] 0. secs (0.u,0.s) -Chars 7304 - 7335 [(eapply~IHEQT;~eauto~with~itree).] 0.004 secs (0.003u,0.s) -Chars 7336 - 7340 [Qed.] 0.013 secs (0.012u,0.001s) -Chars 7390 - 7778 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0.001 secs (0.u,0.s) +Chars 7304 - 7335 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) +Chars 7336 - 7340 [Qed.] 0.009 secs (0.009u,0.s) +Chars 7390 - 7778 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) Chars 7779 - 7785 [Proof.] 0. secs (0.u,0.s) -Chars 7788 - 7797 [(intros~*).] 0. secs (0.u,0.s) -Chars 7798 - 7810 [(unfold~eutt).] 0. secs (0.u,0.s) -Chars 7811 - 7835 [(apply~eqit_clo_bind_gen).] 0.001 secs (0.001u,0.s) +Chars 7788 - 7797 [intros~*.] 0. secs (0.u,0.s) +Chars 7798 - 7810 [unfold~eutt.] 0. secs (0.u,0.s) +Chars 7811 - 7835 [apply~eqit_clo_bind_gen.] 0. secs (0.u,0.s) Chars 7836 - 7840 [Qed.] 0. secs (0.u,0.s) Chars 7900 - 8107 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) Chars 8108 - 8114 [Proof.] 0. secs (0.u,0.s) -Chars 8117 - 8151 [(intros;~eapply~eutt_bind_eutt...] 0. secs (0.u,0.s) +Chars 8117 - 8151 [intros;~eapply~eutt_bind_eutt_...] 0. secs (0.u,0.s) Chars 8154 - 8166 [reflexivity.] 0. secs (0.u,0.s) -Chars 8169 - 8193 [(intros~*~IN~_~<-;~eauto).] 0. secs (0.u,0.s) +Chars 8169 - 8193 [intros~*~IN~_~<-;~eauto.] 0. secs (0.u,0.s) Chars 8194 - 8198 [Qed.] 0. secs (0.u,0.s) Chars 8200 - 8427 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) Chars 8428 - 8434 [Proof.] 0. secs (0.u,0.s) -Chars 8437 - 8456 [(intros~EQIT~r~HRET).] 0. secs (0.u,0.s) +Chars 8437 - 8456 [intros~EQIT~r~HRET.] 0. secs (0.u,0.s) Chars 8459 - 8477 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) -Chars 8480 - 8541 [(induction~HRET;~intros;~rewri...] 0.135 secs (0.133u,0.001s) +Chars 8480 - 8541 [induction~HRET;~intros;~rewrit...] 0.097 secs (0.096u,0.s) Chars 8544 - 8545 [-] 0. secs (0.u,0.s) Chars 8546 - 8557 [assumption.] 0. secs (0.u,0.s) Chars 8560 - 8561 [-] 0. secs (0.u,0.s) -Chars 8562 - 8589 [(rewrite~2!tau_eutt~in~EQIT).] 0.042 secs (0.042u,0.s) +Chars 8562 - 8589 [rewrite~2!tau_eutt~in~EQIT.] 0.03 secs (0.03u,0.s) Chars 8590 - 8595 [auto.] 0. secs (0.u,0.s) Chars 8598 - 8599 [-] 0. secs (0.u,0.s) -Chars 8600 - 8613 [(apply~IHHRET).] 0. secs (0.u,0.s) -Chars 8614 - 8649 [(eapply~eqit_inv_Vis~in~EQIT;~...] 0. secs (0.u,0.s) -Chars 8650 - 8654 [Qed.] 0.004 secs (0.004u,0.s) +Chars 8600 - 8613 [apply~IHHRET.] 0. secs (0.u,0.s) +Chars 8614 - 8649 [eapply~eqit_inv_Vis~in~EQIT;~e...] 0. secs (0.u,0.s) +Chars 8650 - 8654 [Qed.] 0.003 secs (0.003u,0.s) Chars 8693 - 8772 [Lemma~has_post_Leaf~{E}~{R}~(t...] 0. secs (0.u,0.s) Chars 8773 - 8779 [Proof.] 0. secs (0.u,0.s) -Chars 8782 - 8802 [(intros~Hcond~Himage).] 0. secs (0.u,0.s) -Chars 8805 - 8843 [(rewrite~has_post_post_strong~...] 0. secs (0.u,0.s) -Chars 8846 - 8888 [(destruct~(Leaf_eutt_l~t~t~r~H...] 0. secs (0.u,0.s) -Chars 8891 - 8912 [(intuition;~now~subst).] 0. secs (0.u,0.s) +Chars 8782 - 8802 [intros~Hcond~Himage.] 0. secs (0.u,0.s) +Chars 8805 - 8843 [rewrite~has_post_post_strong~i...] 0. secs (0.u,0.s) +Chars 8846 - 8888 [destruct~(Leaf_eutt_l~t~t~r~Hc...] 0. secs (0.u,0.s) +Chars 8891 - 8912 [intuition;~now~subst.] 0. secs (0.u,0.s) Chars 8913 - 8917 [Qed.] 0. secs (0.u,0.s) Chars 8919 - 9056 [Lemma~has_post_of_Leaf~{E}~{R}...] 0. secs (0.u,0.s) Chars 9057 - 9063 [Proof.] 0. secs (0.u,0.s) -Chars 9066 - 9085 [icoinduction~c~CIH.] 0.003 secs (0.003u,0.s) -Chars 9086 - 9101 [(intros~t~Hpost).] 0. secs (0.u,0.s) -Chars 9104 - 9142 [setoid_rewrite~(itree_eta~t)~i...] 0.003 secs (0.003u,0.s) -Chars 9145 - 9157 [(desobs~t~Ht).] 0. secs (0.u,0.s) +Chars 9066 - 9085 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) +Chars 9086 - 9101 [intros~t~Hpost.] 0. secs (0.u,0.s) +Chars 9104 - 9142 [setoid_rewrite~(itree_eta~t)~i...] 0.002 secs (0.002u,0.s) +Chars 9145 - 9157 [desobs~t~Ht.] 0. secs (0.u,0.s) Chars 9160 - 9161 [-] 0. secs (0.u,0.s) Chars 9162 - 9174 [constructor.] 0. secs (0.u,0.s) -Chars 9175 - 9197 [(apply~Hpost,~Leaf_Ret).] 0. secs (0.u,0.s) +Chars 9175 - 9197 [apply~Hpost,~Leaf_Ret.] 0. secs (0.u,0.s) Chars 9200 - 9201 [-] 0. secs (0.u,0.s) Chars 9202 - 9214 [constructor.] 0. secs (0.u,0.s) -Chars 9215 - 9225 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9226 - 9233 [(intros).] 0. secs (0.u,0.s) -Chars 9234 - 9246 [(apply~Hpost).] 0. secs (0.u,0.s) -Chars 9247 - 9262 [(apply~Leaf_Tau).] 0. secs (0.u,0.s) +Chars 9215 - 9225 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9226 - 9233 [intros.] 0. secs (0.u,0.s) +Chars 9234 - 9246 [apply~Hpost.] 0. secs (0.u,0.s) +Chars 9247 - 9262 [apply~Leaf_Tau.] 0. secs (0.u,0.s) Chars 9263 - 9271 [exact~H.] 0. secs (0.u,0.s) Chars 9274 - 9275 [-] 0. secs (0.u,0.s) Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) -Chars 9289 - 9296 [(intros).] 0. secs (0.u,0.s) -Chars 9297 - 9307 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 9308 - 9315 [(intros).] 0. secs (0.u,0.s) -Chars 9316 - 9329 [(eapply~Hpost).] 0. secs (0.u,0.s) -Chars 9330 - 9346 [(eapply~Leaf_Vis).] 0. secs (0.u,0.s) +Chars 9289 - 9296 [intros.] 0. secs (0.u,0.s) +Chars 9297 - 9307 [apply~CIH.] 0. secs (0.u,0.s) +Chars 9308 - 9315 [intros.] 0. secs (0.u,0.s) +Chars 9316 - 9329 [eapply~Hpost.] 0. secs (0.u,0.s) +Chars 9330 - 9346 [eapply~Leaf_Vis.] 0. secs (0.u,0.s) Chars 9347 - 9355 [exact~H.] 0. secs (0.u,0.s) -Chars 9356 - 9360 [Qed.] 0.004 secs (0.004u,0.s) +Chars 9356 - 9360 [Qed.] 0.003 secs (0.003u,0.s) Chars 9362 - 9458 [Lemma~has_post_Leaf_equiv~{E}~...] 0. secs (0.u,0.s) Chars 9459 - 9465 [Proof.] 0. secs (0.u,0.s) Chars 9468 - 9474 [split.] 0. secs (0.u,0.s) Chars 9477 - 9478 [-] 0. secs (0.u,0.s) -Chars 9479 - 9515 [(intros;~eapply~has_post_Leaf;...] 0. secs (0.u,0.s) +Chars 9479 - 9515 [intros;~eapply~has_post_Leaf;~...] 0. secs (0.u,0.s) Chars 9518 - 9519 [-] 0. secs (0.u,0.s) Chars 9520 - 9532 [intro~Hpost.] 0. secs (0.u,0.s) Chars 9533 - 9568 [exact~(has_post_of_Leaf~Q~t~Hp...] 0. secs (0.u,0.s) Chars 9569 - 9573 [Qed.] 0. secs (0.u,0.s) Chars 9758 - 9994 [Lemma~Leaf_iter_inv~{E}~{R}~{I...] 0. secs (0.u,0.s) Chars 9995 - 10001 [Proof.] 0. secs (0.u,0.s) -Chars 10004 - 10025 [(intros~*~Hinv~Hentry).] 0. secs (0.u,0.s) -Chars 10028 - 10059 [(rewrite~<-~has_post_Leaf_equiv).] 0. secs (0.u,0.s) -Chars 10062 - 10097 [(eapply~has_post_iter_strong;~...] 0. secs (0.u,0.s) -Chars 10100 - 10135 [setoid_rewrite~has_post_Leaf_e...] 0.002 secs (0.002u,0.s) +Chars 10004 - 10025 [intros~*~Hinv~Hentry.] 0. secs (0.u,0.s) +Chars 10028 - 10059 [rewrite~<-~has_post_Leaf_equiv.] 0. secs (0.u,0.s) +Chars 10062 - 10097 [eapply~has_post_iter_strong;~e...] 0. secs (0.u,0.s) +Chars 10100 - 10135 [setoid_rewrite~has_post_Leaf_e...] 0.001 secs (0.001u,0.s) Chars 10136 - 10142 [eauto.] 0. secs (0.u,0.s) Chars 10143 - 10147 [Qed.] 0. secs (0.u,0.s) -Chars 10149 - 10432 [Lemma~Leaf_interp_iter_inv~{E}...] 0.001 secs (0.001u,0.s) +Chars 10149 - 10432 [Lemma~Leaf_interp_iter_inv~{E}...] 0. secs (0.u,0.s) Chars 10433 - 10439 [Proof.] 0. secs (0.u,0.s) -Chars 10442 - 10469 [(intros~*~Hbody~Hentry~r~Hr).] 0. secs (0.u,0.s) -Chars 10472 - 10539 [(apply~(Leaf_iter_inv~(fun~i~=...] 0. secs (0.u,0.s) -Chars 10542 - 10605 [(rewrite~(interp_iter'~_~_~(fu...] 0.002 secs (0.002u,0.s) -Chars 10608 - 10617 [(apply~Hr).] 0. secs (0.u,0.s) +Chars 10442 - 10469 [intros~*~Hbody~Hentry~r~Hr.] 0. secs (0.u,0.s) +Chars 10472 - 10539 [apply~(Leaf_iter_inv~(fun~i~=>...] 0. secs (0.u,0.s) +Chars 10542 - 10605 [rewrite~(interp_iter'~_~_~(fun...] 0.001 secs (0.001u,0.s) +Chars 10608 - 10617 [apply~Hr.] 0. secs (0.u,0.s) Chars 10618 - 10630 [reflexivity.] 0. secs (0.u,0.s) -Chars 10631 - 10635 [Qed.] 0.001 secs (0.001u,0.s) +Chars 10631 - 10635 [Qed.] 0. secs (0.u,0.s) Chars 10772 - 11204 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) Chars 11205 - 11211 [Proof.] 0. secs (0.u,0.s) -Chars 11214 - 11252 [setoid_rewrite~~<-~has_post_Le...] 0.011 secs (0.011u,0.s) -Chars 11255 - 11291 [setoid_rewrite~has_post_post_s...] 0.012 secs (0.012u,0.s) -Chars 11294 - 11324 [(intros~*~Hinv~Hentrys~Hentryi).] 0. secs (0.u,0.s) -Chars 11327 - 11375 [(set~(eRI~:=~fun~i1~i2~:~I~=>~...] 0. secs (0.u,0.s) -Chars 11378 - 11426 [(set~(eRR~:=~fun~r1~r2~:~R~=>~...] 0. secs (0.u,0.s) -Chars 11429 - 11477 [(set~(eRS~:=~fun~s1~s2~:~S~=>~...] 0. secs (0.u,0.s) -Chars 11481 - 11541 [(set~(R1~:=~fun~x~y~:~S~*~R~=>...] 0. secs (0.u,0.s) -Chars 11544 - 11620 [(set~(R2~:=~fun~a~b~:~S~*~R~=>...] 0. secs (0.u,0.s) -Chars 11623 - 11703 [(assert~(HR1R2~:~eq_rel~R1~R2)...] 0.072 secs (0.07u,0.001s) -Chars 11706 - 11770 [(unfold~has_post_strong;~fold~...] 0.001 secs (0.001u,0.s) -Chars 11774 - 11904 [(unshelve~~~(eapply~(eutt_inte...] 0.004 secs (0.004u,0.s) -Chars 11907 - 11942 [(intros~i1~?~s1~?~[<-~Hs1]~[<-...] 0. secs (0.u,0.s) -Chars 11946 - 12026 [(set~~~(R3~:=~fun~x~y~:~S~*~(I...] 0. secs (0.u,0.s) -Chars 12029 - 12074 [(set~(R4~:=~prod_rel~eRS~(sum_...] 0. secs (0.u,0.s) -Chars 12077 - 12106 [(assert~(HR3R4~:~eq_rel~R3~R4)).] 0. secs (0.u,0.s) +Chars 11214 - 11252 [setoid_rewrite~~<-~has_post_Le...] 0.007 secs (0.007u,0.s) +Chars 11255 - 11291 [setoid_rewrite~has_post_post_s...] 0.011 secs (0.011u,0.s) +Chars 11294 - 11324 [intros~*~Hinv~Hentrys~Hentryi.] 0. secs (0.u,0.s) +Chars 11327 - 11375 [set~(eRI~:=~fun~i1~i2~:~I~=>~i...] 0. secs (0.u,0.s) +Chars 11378 - 11426 [set~(eRR~:=~fun~r1~r2~:~R~=>~r...] 0. secs (0.u,0.s) +Chars 11429 - 11477 [set~(eRS~:=~fun~s1~s2~:~S~=>~s...] 0. secs (0.u,0.s) +Chars 11481 - 11541 [set~(R1~:=~fun~x~y~:~S~*~R~=>~...] 0. secs (0.u,0.s) +Chars 11544 - 11620 [set~(R2~:=~fun~a~b~:~S~*~R~=>~...] 0. secs (0.u,0.s) +Chars 11623 - 11703 [assert~(HR1R2~:~eq_rel~R1~R2)~...] 0.051 secs (0.05u,0.s) +Chars 11706 - 11770 [unfold~has_post_strong;~fold~R...] 0. secs (0.u,0.s) +Chars 11774 - 11904 [unshelve~~~(eapply~(eutt_inter...] 0.002 secs (0.002u,0.s) +Chars 11907 - 11942 [intros~i1~?~s1~?~[<-~Hs1]~[<-~...] 0. secs (0.u,0.s) +Chars 11946 - 12026 [set~(R3~:=~fun~x~y~:~S~*~(I~+~...] 0. secs (0.u,0.s) +Chars 12029 - 12074 [set~(R4~:=~prod_rel~eRS~(sum_r...] 0. secs (0.u,0.s) +Chars 12077 - 12106 [assert~(HR3R4~:~eq_rel~R3~R4).] 0. secs (0.u,0.s) Chars 12109 - 12110 [{] 0. secs (0.u,0.s) -Chars 12111 - 12150 [(split;~intros~[?~[|~]]~[?~[|~...] 0.001 secs (0.001u,0.s) -Chars 12155 - 12200 [1-4:~(intros~[[]];~dintuition;...] 0.229 secs (0.225u,0.003s) -Chars 12205 - 12267 [all:~(intros~[[[=->]~?]~HZ];~i...] 0.101 secs (0.1u,0.001s) +Chars 12111 - 12150 [split;~intros~[?~[|~]]~[?~[|~]...] 0. secs (0.u,0.s) +Chars 12155 - 12200 [1-4:~intros~[[]];~dintuition;~...] 0.156 secs (0.155u,0.001s) +Chars 12205 - 12267 [all:~intros~[[[=->]~?]~HZ];~in...] 0.067 secs (0.066u,0.s) Chars 12268 - 12269 [}] 0. secs (0.u,0.s) -Chars 12273 - 12307 [(rewrite~<-~(eutt_equiv~_~_~HR...] 0.001 secs (0.001u,0.s) +Chars 12273 - 12307 [rewrite~<-~(eutt_equiv~_~_~HR3...] 0. secs (0.u,0.s) Chars 12310 - 12325 [now~apply~Hinv.] 0. secs (0.u,0.s) -Chars 12326 - 12330 [Qed.] 0.016 secs (0.016u,0.s) +Chars 12326 - 12330 [Qed.] 0.012 secs (0.011u,0.s) Chars 12530 - 12545 [Module~Subtree.] 0. secs (0.u,0.s) -Chars 12547 - 12806 [Inductive~subtree~{E}~{R}~:~it...] 0.002 secs (0.002u,0.s) +Chars 12547 - 12806 [Inductive~subtree~{E}~{R}~:~it...] 0.001 secs (0.001u,0.s) Chars 12808 - 12923 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) Chars 12924 - 12930 [Proof.] 0. secs (0.u,0.s) -Chars 12933 - 12961 [(intros~t~t'~Ht~u~u'~Hu~Hsub).] 0. secs (0.u,0.s) -Chars 12964 - 13005 [(revert~t~Ht~u~Hu;~induction~H...] 0. secs (0.u,0.s) +Chars 12933 - 12961 [intros~t~t'~Ht~u~u'~Hu~Hsub.] 0. secs (0.u,0.s) +Chars 12964 - 13005 [revert~t~Ht~u~Hu;~induction~Hs...] 0. secs (0.u,0.s) Chars 13008 - 13009 [-] 0. secs (0.u,0.s) -Chars 13010 - 13028 [(apply~SubtreeRefl).] 0. secs (0.u,0.s) -Chars 13029 - 13048 [now~rewrite~Ht,~Hu.] 0.002 secs (0.002u,0.s) +Chars 13010 - 13028 [apply~SubtreeRefl.] 0. secs (0.u,0.s) +Chars 13029 - 13048 [now~rewrite~Ht,~Hu.] 0.001 secs (0.001u,0.s) Chars 13051 - 13052 [-] 0. secs (0.u,0.s) -Chars 13053 - 13084 [(apply~SubtreeTau,~IHHsub;~auto).] 0. secs (0.u,0.s) -Chars 13085 - 13104 [(apply~eqit_Tau,~Ht).] 0. secs (0.u,0.s) +Chars 13053 - 13084 [apply~SubtreeTau,~IHHsub;~auto.] 0. secs (0.u,0.s) +Chars 13085 - 13104 [apply~eqit_Tau,~Ht.] 0. secs (0.u,0.s) Chars 13107 - 13108 [-] 0. secs (0.u,0.s) -Chars 13109 - 13127 [(eapply~SubtreeVis).] 0. secs (0.u,0.s) -Chars 13128 - 13146 [now~rewrite~Ht,~H.] 0.004 secs (0.004u,0.s) -Chars 13147 - 13166 [(apply~IHHsub;~auto).] 0.003 secs (0.002u,0.s) +Chars 13109 - 13127 [eapply~SubtreeVis.] 0. secs (0.u,0.s) +Chars 13128 - 13146 [now~rewrite~Ht,~H.] 0.003 secs (0.003u,0.s) +Chars 13147 - 13166 [apply~IHHsub;~auto.] 0. secs (0.u,0.s) Chars 13167 - 13171 [Qed.] 0.001 secs (0.001u,0.s) Chars 13173 - 13255 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) Chars 13256 - 13262 [Proof.] 0. secs (0.u,0.s) -Chars 13265 - 13279 [(intros~*~Hsub).] 0. secs (0.u,0.s) -Chars 13280 - 13303 [(induction~Hsub;~intros).] 0. secs (0.u,0.s) +Chars 13265 - 13279 [intros~*~Hsub.] 0. secs (0.u,0.s) +Chars 13280 - 13303 [induction~Hsub;~intros.] 0. secs (0.u,0.s) Chars 13306 - 13307 [-] 0. secs (0.u,0.s) -Chars 13308 - 13315 [(intros).] 0. secs (0.u,0.s) -Chars 13316 - 13335 [(rewrite~<-~H;~auto).] 0.002 secs (0.002u,0.s) +Chars 13308 - 13315 [intros.] 0. secs (0.u,0.s) +Chars 13316 - 13335 [rewrite~<-~H;~auto.] 0.001 secs (0.001u,0.s) Chars 13338 - 13339 [-] 0. secs (0.u,0.s) -Chars 13340 - 13366 [(apply~IHHsub,~Leaf_Tau,~H).] 0. secs (0.u,0.s) +Chars 13340 - 13366 [apply~IHHsub,~Leaf_Tau,~H.] 0. secs (0.u,0.s) Chars 13369 - 13370 [-] 0. secs (0.u,0.s) -Chars 13371 - 13395 [(eapply~IHHsub,~Leaf_Vis).] 0. secs (0.u,0.s) -Chars 13396 - 13419 [(rewrite~H~in~H0;~eauto).] 0.002 secs (0.002u,0.s) -Chars 13420 - 13424 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13371 - 13395 [eapply~IHHsub,~Leaf_Vis.] 0. secs (0.u,0.s) +Chars 13396 - 13419 [rewrite~H~in~H0;~eauto.] 0.001 secs (0.001u,0.s) +Chars 13420 - 13424 [Qed.] 0. secs (0.u,0.s) Chars 13426 - 13562 [Lemma~Leaf_interp_subtree_inv~...] 0. secs (0.u,0.s) Chars 13563 - 13569 [Proof.] 0. secs (0.u,0.s) Chars 13572 - 13583 [revert~t~u.] 0. secs (0.u,0.s) -Chars 13584 - 13600 [(unfold~has_post).] 0. secs (0.u,0.s) -Chars 13601 - 13634 [(coinduction~c~CIH;~intros~*~H...] 0.002 secs (0.002u,0.s) -Chars 13637 - 13667 [(rewrite~(itree_eta~u)~in~Hsub).] 0.011 secs (0.01u,0.s) -Chars 13670 - 13692 [(rewrite~unfold_interp).] 0.015 secs (0.015u,0.s) -Chars 13695 - 13724 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) +Chars 13584 - 13600 [unfold~has_post.] 0. secs (0.u,0.s) +Chars 13601 - 13634 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) +Chars 13637 - 13667 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) +Chars 13670 - 13692 [rewrite~unfold_interp.] 0.011 secs (0.01u,0.s) +Chars 13695 - 13724 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) Chars 13727 - 13728 [-] 0. secs (0.u,0.s) Chars 13729 - 13741 [constructor.] 0. secs (0.u,0.s) -Chars 13742 - 13770 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) -Chars 13771 - 13786 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) +Chars 13742 - 13770 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) +Chars 13771 - 13786 [apply~Leaf_Ret.] 0. secs (0.u,0.s) Chars 13789 - 13790 [-] 0. secs (0.u,0.s) Chars 13791 - 13803 [constructor.] 0. secs (0.u,0.s) -Chars 13804 - 13814 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 13815 - 13838 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) +Chars 13804 - 13814 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13815 - 13838 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) Chars 13841 - 13842 [-] 0. secs (0.u,0.s) Chars 13843 - 13850 [to_mon.] 0. secs (0.u,0.s) -Chars 13851 - 13874 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 13875 - 13887 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 13892 - 13906 [(intros~u~_~<-).] 0. secs (0.u,0.s) +Chars 13851 - 13874 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 13875 - 13887 [reflexivity.] 0. secs (0.u,0.s) +Chars 13892 - 13906 [intros~u~_~<-.] 0. secs (0.u,0.s) Chars 13911 - 13916 [taus.] 0. secs (0.u,0.s) -Chars 13917 - 13927 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 13928 - 13952 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) +Chars 13917 - 13927 [apply~CIH.] 0. secs (0.u,0.s) +Chars 13928 - 13952 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) Chars 13953 - 13965 [reflexivity.] 0. secs (0.u,0.s) -Chars 13966 - 13970 [Qed.] 0.007 secs (0.007u,0.s) -Chars 13972 - 14151 [Lemma~Leaf_interp_state_subtre...] 0.001 secs (0.001u,0.s) +Chars 13966 - 13970 [Qed.] 0.005 secs (0.005u,0.s) +Chars 13972 - 14151 [Lemma~Leaf_interp_state_subtre...] 0.002 secs (0.002u,0.s) Chars 14152 - 14158 [Proof.] 0. secs (0.u,0.s) Chars 14161 - 14174 [revert~t~u~s.] 0. secs (0.u,0.s) -Chars 14175 - 14191 [(unfold~has_post).] 0. secs (0.u,0.s) -Chars 14192 - 14225 [(coinduction~c~CIH;~intros~*~H...] 0.003 secs (0.003u,0.s) -Chars 14228 - 14258 [(rewrite~(itree_eta~u)~in~Hsub).] 0.01 secs (0.01u,0.s) -Chars 14261 - 14289 [(rewrite~unfold_interp_state).] 0.016 secs (0.016u,0.s) -Chars 14292 - 14321 [(desobs~u~Hu;~clear~u~Hu;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14175 - 14191 [unfold~has_post.] 0. secs (0.u,0.s) +Chars 14192 - 14225 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) +Chars 14228 - 14258 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) +Chars 14261 - 14289 [rewrite~unfold_interp_state.] 0.01 secs (0.01u,0.s) +Chars 14292 - 14321 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) Chars 14324 - 14325 [-] 0. secs (0.u,0.s) Chars 14326 - 14338 [constructor.] 0. secs (0.u,0.s) -Chars 14339 - 14367 [(eapply~subtree_image;~eauto).] 0. secs (0.u,0.s) -Chars 14368 - 14383 [(apply~Leaf_Ret).] 0. secs (0.u,0.s) +Chars 14339 - 14367 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) +Chars 14368 - 14383 [apply~Leaf_Ret.] 0. secs (0.u,0.s) Chars 14386 - 14387 [-] 0. secs (0.u,0.s) Chars 14388 - 14400 [constructor.] 0. secs (0.u,0.s) -Chars 14401 - 14411 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 14412 - 14435 [(apply~SubtreeTau,~Hsub).] 0. secs (0.u,0.s) +Chars 14401 - 14411 [apply~CIH.] 0. secs (0.u,0.s) +Chars 14412 - 14435 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) Chars 14438 - 14439 [-] 0. secs (0.u,0.s) Chars 14440 - 14447 [to_mon.] 0. secs (0.u,0.s) -Chars 14448 - 14471 [(eapply~eqit_bind_chain).] 0. secs (0.u,0.s) -Chars 14472 - 14484 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 14489 - 14514 [(intros~[u1~u2]~_~<-;~cbn).] 0.001 secs (0.001u,0.s) +Chars 14448 - 14471 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) +Chars 14472 - 14484 [reflexivity.] 0. secs (0.u,0.s) +Chars 14489 - 14514 [intros~[u1~u2]~_~<-;~cbn.] 0. secs (0.u,0.s) Chars 14519 - 14524 [taus.] 0. secs (0.u,0.s) -Chars 14525 - 14535 [(apply~CIH).] 0. secs (0.u,0.s) -Chars 14536 - 14560 [(eapply~SubtreeVis,~Hsub).] 0. secs (0.u,0.s) +Chars 14525 - 14535 [apply~CIH.] 0. secs (0.u,0.s) +Chars 14536 - 14560 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) Chars 14561 - 14573 [reflexivity.] 0. secs (0.u,0.s) -Chars 14574 - 14578 [Qed.] 0.009 secs (0.008u,0.s) +Chars 14574 - 14578 [Qed.] 0.006 secs (0.006u,0.s) Chars 14580 - 14592 [End~Subtree.] 0. secs (0.u,0.s) Chars 14593 - 14608 [Import~Subtree.] 0. secs (0.u,0.s) Chars 14610 - 14706 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0. secs (0.u,0.s) Chars 14707 - 14713 [Proof.] 0. secs (0.u,0.s) -Chars 14716 - 14729 [(intros~Hleaf).] 0. secs (0.u,0.s) -Chars 14730 - 14790 [(apply~(has_post_Leaf~(interp~...] 0. secs (0.u,0.s) -Chars 14793 - 14823 [(apply~Leaf_interp_subtree_inv).] 0. secs (0.u,0.s) -Chars 14824 - 14855 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) +Chars 14716 - 14729 [intros~Hleaf.] 0. secs (0.u,0.s) +Chars 14730 - 14790 [apply~(has_post_Leaf~(interp~h...] 0. secs (0.u,0.s) +Chars 14793 - 14823 [apply~Leaf_interp_subtree_inv.] 0. secs (0.u,0.s) +Chars 14824 - 14855 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) Chars 14856 - 14860 [Qed.] 0. secs (0.u,0.s) -Chars 14862 - 15000 [Lemma~Leaf_interp_state_inv~{E...] 0.001 secs (0.001u,0.s) +Chars 14862 - 15000 [Lemma~Leaf_interp_state_inv~{E...] 0. secs (0.u,0.s) Chars 15001 - 15007 [Proof.] 0. secs (0.u,0.s) -Chars 15010 - 15023 [(intros~Hleaf).] 0. secs (0.u,0.s) -Chars 15026 - 15098 [(apply~(has_post_Leaf~(interp_...] 0. secs (0.u,0.s) -Chars 15101 - 15137 [(apply~Leaf_interp_state_subtr...] 0. secs (0.u,0.s) -Chars 15138 - 15169 [(apply~SubtreeRefl;~reflexivity).] 0. secs (0.u,0.s) +Chars 15010 - 15023 [intros~Hleaf.] 0. secs (0.u,0.s) +Chars 15026 - 15098 [apply~(has_post_Leaf~(interp_s...] 0. secs (0.u,0.s) +Chars 15101 - 15137 [apply~Leaf_interp_state_subtre...] 0. secs (0.u,0.s) +Chars 15138 - 15169 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) Chars 15170 - 15174 [Qed.] 0. secs (0.u,0.s) Chars 15213 - 15336 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) Chars 15337 - 15343 [Proof.] 0. secs (0.u,0.s) -Chars 15346 - 15353 [(intros).] 0. secs (0.u,0.s) -Chars 15354 - 15387 [(rewrite~translate_to_interp~i...] 0.003 secs (0.003u,0.s) -Chars 15390 - 15420 [(eapply~Leaf_interp_inv;~eauto).] 0. secs (0.u,0.s) -Chars 15421 - 15425 [Qed.] 0.001 secs (0.001u,0.s) +Chars 15346 - 15353 [intros.] 0. secs (0.u,0.s) +Chars 15354 - 15387 [rewrite~translate_to_interp~in~H.] 0.002 secs (0.002u,0.s) +Chars 15390 - 15420 [eapply~Leaf_interp_inv;~eauto.] 0. secs (0.u,0.s) +Chars 15421 - 15425 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Simple.v.timing b/theories/Simple.v.timing index 954eea89..08ead142 100644 --- a/theories/Simple.v.timing +++ b/theories/Simple.v.timing @@ -1,15 +1,15 @@ Chars 48 - 84 [Set~Warnings~"-notation-overri...] 0. secs (0.u,0.s) -Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.008 secs (0.005u,0.002s) -Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.056 secs (0.029u,0.009s) +Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) +Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) +Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.021 secs (0.017u,0.004s) Chars 305 - 347 [Require~Export~ITree.Core.ITre...] 0. secs (0.u,0.s) Chars 348 - 370 [Export~ITreeNotations.] 0. secs (0.u,0.s) Chars 371 - 404 [#[global]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) Chars 1062 - 1097 [Require~Export~ITree.Basics.Ba...] 0. secs (0.u,0.s) Chars 1158 - 1191 [Require~Export~ITree.Indexed.Sum.] 0. secs (0.u,0.s) -Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.002 secs (0.001u,0.s) -Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.006 secs (0.005u,0.001s) -Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.016 secs (0.012u,0.003s) +Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.u,0.s) +Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.003 secs (0.002u,0.s) +Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.009 secs (0.007u,0.001s) Chars 1773 - 1809 [Export~ITree.Interp.Handler.Ha...] 0. secs (0.u,0.s) Chars 2164 - 2189 [Module~Type~SimpleTheory.] 0. secs (0.u,0.s) Chars 2297 - 2325 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) @@ -23,10 +23,10 @@ Chars 2866 - 2940 [Parameter~(eutt_ret~:~forall~r...] 0. secs (0.u,0.s) Chars 2942 - 3072 [Parameter~~~(eutt_vis~:~~~~~~f...] 0. secs (0.u,0.s) Chars 3074 - 3152 [Parameter~(eutt_inv_ret~:~fora...] 0. secs (0.u,0.s) Chars 3154 - 3289 [Parameter~~~(eutt_inv_vis~:~~~...] 0. secs (0.u,0.s) -Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) +Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0.014 secs (0.013u,0.s) Chars 3317 - 3351 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 3382 - 3481 [Parameter~~~(bind_ret~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0.024 secs (0.021u,0.003s) +Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0. secs (0.u,0.s) Chars 3647 - 3740 [Parameter~~~(bind_ret_r~:~~~~~...] 0. secs (0.u,0.s) Chars 3742 - 3936 [Parameter~~~(bind_bind~:~~~~~~...] 0. secs (0.u,0.s) Chars 3938 - 3979 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) @@ -37,18 +37,18 @@ Chars 4108 - 4150 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) Chars 4197 - 4423 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) Chars 4425 - 4547 [Parameter~~~(unfold_interp~:~~...] 0. secs (0.u,0.s) Chars 4617 - 4715 [Parameter~~~(interp_ret~:~~~~~...] 0. secs (0.u,0.s) -Chars 4717 - 4882 [Parameter~~~(interp_vis~:~~~~~...] 0.001 secs (0.001u,0.s) +Chars 4717 - 4882 [Parameter~~~(interp_vis~:~~~~~...] 0. secs (0.u,0.s) Chars 4884 - 5029 [Parameter~~~(interp_trigger~:~...] 0. secs (0.u,0.s) -Chars 5031 - 5221 [Parameter~~~(interp_bind~:~~~~...] 0.001 secs (0.001u,0.s) +Chars 5031 - 5221 [Parameter~~~(interp_bind~:~~~~...] 0. secs (0.u,0.s) Chars 5223 - 5266 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5267 - 5310 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5311 - 5358 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5359 - 5403 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 5548 - 5689 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) Chars 5691 - 5824 [Parameter~~~(rec_as_interp~:~~...] 0. secs (0.u,0.s) -Chars 5826 - 5970 [Parameter~~~(interp_recursive_...] 0.001 secs (0.001u,0.s) +Chars 5826 - 5970 [Parameter~~~(interp_recursive_...] 0. secs (0.u,0.s) Chars 6080 - 6192 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) -Chars 6194 - 6332 [Parameter~~~(mrec_as_interp~:~...] 0.001 secs (0.u,0.s) +Chars 6194 - 6332 [Parameter~~~(mrec_as_interp~:~...] 0. secs (0.u,0.s) Chars 6334 - 6482 [Parameter~~~(interp_mrecursive...] 0. secs (0.u,0.s) Chars 6484 - 6538 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 6539 - 6589 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -61,7 +61,7 @@ Chars 7152 - 7279 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7281 - 7413 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) Chars 7541 - 7718 [Ltac~~tau_steps~:=~~~repeat~~~...] 0. secs (0.u,0.s) Chars 7720 - 7737 [End~SimpleTheory.] 0. secs (0.u,0.s) -Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.01 secs (0.01u,0.s) +Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.006 secs (0.006u,0.s) Chars 7873 - 7909 [Module~Export~Simple:~SimpleTh...] 0. secs (0.u,0.s) Chars 7995 - 8023 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 8025 - 8063 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) @@ -69,95 +69,95 @@ Chars 8160 - 8236 [Definition~eutt~:~itree~E~R~->...] 0. secs (0.u,0.s) Chars 8238 - 8298 [Notation~"x~≈~y"~:=~(eutt~x~y)...] 0. secs (0.u,0.s) Chars 8342 - 8394 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) Chars 8395 - 8401 [Proof.] 0. secs (0.u,0.s) -Chars 8404 - 8441 [(apply~ITree.Eq.Eqit.Equivalen...] 0. secs (0.u,0.s) -Chars 8442 - 8477 [(econstructor;~eauto~using~tra...] 0. secs (0.u,0.s) +Chars 8404 - 8441 [apply~ITree.Eq.Eqit.Equivalenc...] 0. secs (0.u,0.s) +Chars 8442 - 8477 [econstructor;~eauto~using~tran...] 0. secs (0.u,0.s) Chars 8479 - 8483 [Qed.] 0. secs (0.u,0.s) Chars 8524 - 8581 [Lemma~tau_eutt~:~forall~t~:~it...] 0. secs (0.u,0.s) Chars 8582 - 8588 [Proof.] 0. secs (0.u,0.s) -Chars 8589 - 8596 [(intros).] 0. secs (0.u,0.s) -Chars 8597 - 8628 [(rewrite~ITree.Eq.Eqit.tau_eutt).] 0.001 secs (0.001u,0.s) +Chars 8589 - 8596 [intros.] 0. secs (0.u,0.s) +Chars 8597 - 8628 [rewrite~ITree.Eq.Eqit.tau_eutt.] 0.001 secs (0.001u,0.s) Chars 8629 - 8641 [reflexivity.] 0. secs (0.u,0.s) Chars 8642 - 8646 [Qed.] 0. secs (0.u,0.s) Chars 8648 - 8715 [Lemma~itree_eta~:~forall~t~:~i...] 0. secs (0.u,0.s) Chars 8716 - 8722 [Proof.] 0. secs (0.u,0.s) -Chars 8723 - 8730 [(intros).] 0. secs (0.u,0.s) -Chars 8731 - 8766 [(rewrite~<-~ITree.Eq.Eqit.itre...] 0.001 secs (0.001u,0.s) +Chars 8723 - 8730 [intros.] 0. secs (0.u,0.s) +Chars 8731 - 8766 [rewrite~<-~ITree.Eq.Eqit.itree...] 0. secs (0.u,0.s) Chars 8767 - 8779 [reflexivity.] 0. secs (0.u,0.s) Chars 8780 - 8784 [Qed.] 0. secs (0.u,0.s) Chars 8786 - 8846 [Lemma~eutt_ret~(r1~r2~:~R)~:~r...] 0. secs (0.u,0.s) Chars 8847 - 8853 [Proof.] 0. secs (0.u,0.s) -Chars 8854 - 8861 [(intros).] 0. secs (0.u,0.s) +Chars 8854 - 8861 [intros.] 0. secs (0.u,0.s) Chars 8862 - 8868 [subst.] 0. secs (0.u,0.s) Chars 8869 - 8881 [reflexivity.] 0. secs (0.u,0.s) Chars 8882 - 8886 [Qed.] 0. secs (0.u,0.s) Chars 8888 - 9004 [Lemma~eutt_vis~{U~:~Type}~(e~:...] 0. secs (0.u,0.s) Chars 9005 - 9011 [Proof.] 0. secs (0.u,0.s) -Chars 9015 - 9022 [(intros).] 0. secs (0.u,0.s) -Chars 9023 - 9052 [(apply~ITree.Eq.Eqit.eqit_Vis).] 0. secs (0.u,0.s) -Chars 9053 - 9060 [(intros).] 0. secs (0.u,0.s) -Chars 9061 - 9069 [(apply~H).] 0. secs (0.u,0.s) +Chars 9015 - 9022 [intros.] 0. secs (0.u,0.s) +Chars 9023 - 9052 [apply~ITree.Eq.Eqit.eqit_Vis.] 0. secs (0.u,0.s) +Chars 9053 - 9060 [intros.] 0. secs (0.u,0.s) +Chars 9061 - 9069 [apply~H.] 0. secs (0.u,0.s) Chars 9071 - 9075 [Qed.] 0. secs (0.u,0.s) Chars 9077 - 9145 [Lemma~eutt_inv_ret~(r1~r2~:~R)...] 0. secs (0.u,0.s) Chars 9146 - 9152 [Proof.] 0. secs (0.u,0.s) -Chars 9153 - 9186 [(apply~ITree.Eq.Eqit.eqit_inv_...] 0. secs (0.u,0.s) +Chars 9153 - 9186 [apply~ITree.Eq.Eqit.eqit_inv_Ret.] 0. secs (0.u,0.s) Chars 9187 - 9191 [Qed.] 0. secs (0.u,0.s) Chars 9193 - 9317 [Lemma~eutt_inv_vis~{U~:~Type}~...] 0. secs (0.u,0.s) Chars 9318 - 9324 [Proof.] 0. secs (0.u,0.s) -Chars 9325 - 9364 [(apply~ITree.Eq.Eqit.eqit_inv_...] 0. secs (0.u,0.s) +Chars 9325 - 9364 [apply~ITree.Eq.Eqit.eqit_inv_V...] 0. secs (0.u,0.s) Chars 9365 - 9369 [Qed.] 0. secs (0.u,0.s) Chars 9371 - 9395 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) Chars 9397 - 9431 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) Chars 9462 - 9557 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9558 - 9564 [Proof.] 0. secs (0.u,0.s) -Chars 9565 - 9621 [(intros;~rewrite~ITree.Eq.Shal...] 0.056 secs (0.053u,0.002s) -Chars 9622 - 9626 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9565 - 9621 [intros;~rewrite~ITree.Eq.Shall...] 0.039 secs (0.039u,0.s) +Chars 9622 - 9626 [Qed.] 0. secs (0.u,0.s) Chars 9628 - 9723 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) Chars 9724 - 9730 [Proof.] 0. secs (0.u,0.s) -Chars 9731 - 9749 [(rewrite~bind_tau_).] 0.011 secs (0.011u,0.s) +Chars 9731 - 9749 [rewrite~bind_tau_.] 0.008 secs (0.008u,0.s) Chars 9750 - 9762 [reflexivity.] 0. secs (0.u,0.s) Chars 9763 - 9767 [Qed.] 0. secs (0.u,0.s) Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0. secs (0.u,0.s) Chars 9928 - 9934 [Proof.] 0. secs (0.u,0.s) -Chars 9935 - 9991 [(intros;~rewrite~ITree.Eq.Shal...] 0.019 secs (0.015u,0.003s) -Chars 9992 - 9996 [Qed.] 0.001 secs (0.001u,0.s) +Chars 9935 - 9991 [intros;~rewrite~ITree.Eq.Shall...] 0.013 secs (0.011u,0.002s) +Chars 9992 - 9996 [Qed.] 0. secs (0.u,0.s) Chars 9998 - 10087 [Lemma~bind_ret_r~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 10088 - 10094 [Proof.] 0. secs (0.u,0.s) -Chars 10095 - 10149 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) +Chars 10095 - 10149 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) Chars 10150 - 10154 [Qed.] 0. secs (0.u,0.s) Chars 10156 - 10346 [Lemma~bind_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) Chars 10347 - 10353 [Proof.] 0. secs (0.u,0.s) -Chars 10354 - 10407 [(intros;~rewrite~ITree.Eq.Eqit...] 0.001 secs (0.u,0.s) -Chars 10408 - 10412 [Qed.] 0.001 secs (0.u,0.s) +Chars 10354 - 10407 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) +Chars 10408 - 10412 [Qed.] 0. secs (0.u,0.s) Chars 10414 - 10455 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) Chars 10456 - 10497 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) Chars 10498 - 10539 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) Chars 10540 - 10581 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) Chars 10582 - 10625 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) Chars 10626 - 10668 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 10716 - 10942 [Definition~_interp~{E}~{F}~{R}...] 0.002 secs (0.001u,0.s) +Chars 10716 - 10942 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) Chars 10944 - 11062 [Lemma~unfold_interp~:~~~forall...] 0. secs (0.u,0.s) Chars 11063 - 11069 [Proof.] 0. secs (0.u,0.s) -Chars 11072 - 11130 [(intros;~rewrite~<-~ITree.Inte...] 0.002 secs (0.001u,0.s) +Chars 11072 - 11130 [intros;~rewrite~<-~ITree.Inter...] 0.001 secs (0.001u,0.s) Chars 11133 - 11145 [reflexivity.] 0. secs (0.u,0.s) -Chars 11146 - 11150 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0.001 secs (0.u,0.s) +Chars 11146 - 11150 [Qed.] 0. secs (0.u,0.s) +Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 11313 - 11319 [Proof.] 0. secs (0.u,0.s) -Chars 11322 - 11365 [(intros;~rewrite~unfold_interp...] 0.002 secs (0.001u,0.s) -Chars 11366 - 11370 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0.001 secs (0.001u,0.s) +Chars 11322 - 11365 [intros;~rewrite~unfold_interp;...] 0.001 secs (0.u,0.s) +Chars 11366 - 11370 [Qed.] 0. secs (0.u,0.s) +Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0. secs (0.u,0.s) Chars 11534 - 11540 [Proof.] 0. secs (0.u,0.s) -Chars 11543 - 11620 [(intros;~rewrite~InterpFacts.i...] 0.005 secs (0.004u,0.001s) -Chars 11621 - 11625 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0.001 secs (0.u,0.s) +Chars 11543 - 11620 [intros;~rewrite~InterpFacts.in...] 0.004 secs (0.003u,0.s) +Chars 11621 - 11625 [Qed.] 0. secs (0.u,0.s) +Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0. secs (0.u,0.s) Chars 11769 - 11775 [Proof.] 0. secs (0.u,0.s) -Chars 11778 - 11834 [(intros;~rewrite~ITree.Interp....] 0.002 secs (0.002u,0.s) +Chars 11778 - 11834 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) Chars 11837 - 11849 [reflexivity.] 0. secs (0.u,0.s) Chars 11850 - 11854 [Qed.] 0. secs (0.u,0.s) -Chars 11856 - 12042 [Lemma~interp_bind~:~~~forall~{...] 0.001 secs (0.001u,0.s) +Chars 11856 - 12042 [Lemma~interp_bind~:~~~forall~{...] 0. secs (0.u,0.s) Chars 12043 - 12049 [Proof.] 0. secs (0.u,0.s) -Chars 12052 - 12105 [(intros;~rewrite~ITree.Interp....] 0.001 secs (0.001u,0.s) +Chars 12052 - 12105 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) Chars 12108 - 12120 [reflexivity.] 0. secs (0.u,0.s) -Chars 12121 - 12125 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12121 - 12125 [Qed.] 0. secs (0.u,0.s) Chars 12127 - 12170 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 12171 - 12214 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 12215 - 12262 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) @@ -165,69 +165,69 @@ Chars 12263 - 12307 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 12453 - 12594 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) Chars 12596 - 12725 [Lemma~rec_as_interp~:~~~forall...] 0. secs (0.u,0.s) Chars 12726 - 12732 [Proof.] 0. secs (0.u,0.s) -Chars 12735 - 12742 [(intros).] 0. secs (0.u,0.s) -Chars 12743 - 12793 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) +Chars 12735 - 12742 [intros.] 0. secs (0.u,0.s) +Chars 12743 - 12793 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) Chars 12794 - 12806 [reflexivity.] 0. secs (0.u,0.s) -Chars 12807 - 12811 [Qed.] 0.001 secs (0.001u,0.s) +Chars 12807 - 12811 [Qed.] 0. secs (0.u,0.s) Chars 12813 - 12953 [Lemma~interp_recursive_call~:~...] 0. secs (0.u,0.s) Chars 12954 - 12960 [Proof.] 0. secs (0.u,0.s) -Chars 12963 - 12970 [(intros).] 0. secs (0.u,0.s) -Chars 12971 - 13029 [(rewrite~ITree.Interp.Recursio...] 0.001 secs (0.001u,0.s) +Chars 12963 - 12970 [intros.] 0. secs (0.u,0.s) +Chars 12971 - 13029 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) Chars 13032 - 13044 [reflexivity.] 0. secs (0.u,0.s) -Chars 13045 - 13049 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13045 - 13049 [Qed.] 0. secs (0.u,0.s) Chars 13159 - 13271 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) Chars 13273 - 13407 [Lemma~mrec_as_interp~:~~~foral...] 0. secs (0.u,0.s) Chars 13408 - 13414 [Proof.] 0. secs (0.u,0.s) -Chars 13417 - 13476 [(intros;~rewrite~ITree.Interp....] 0.001 secs (0.001u,0.s) +Chars 13417 - 13476 [intros;~rewrite~ITree.Interp.R...] 0. secs (0.u,0.s) Chars 13477 - 13489 [reflexivity.] 0. secs (0.u,0.s) -Chars 13490 - 13494 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13490 - 13494 [Qed.] 0. secs (0.u,0.s) Chars 13496 - 13640 [Lemma~interp_mrecursive~:~~~fo...] 0. secs (0.u,0.s) Chars 13641 - 13647 [Proof.] 0. secs (0.u,0.s) -Chars 13650 - 13712 [(intros;~rewrite~ITree.Interp....] 0.001 secs (0.001u,0.s) +Chars 13650 - 13712 [intros;~rewrite~ITree.Interp.R...] 0. secs (0.u,0.s) Chars 13715 - 13727 [reflexivity.] 0. secs (0.u,0.s) -Chars 13728 - 13732 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13728 - 13732 [Qed.] 0. secs (0.u,0.s) Chars 13734 - 13788 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 13789 - 13839 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) Chars 13869 - 13945 [#[global]~Instance~eutt_go~~{E...] 0. secs (0.u,0.s) Chars 13946 - 13952 [Proof.] 0. secs (0.u,0.s) -Chars 13953 - 13972 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 13973 - 13983 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 13984 - 14002 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 14003 - 14007 [Qed.] 0.001 secs (0.001u,0.s) +Chars 13953 - 13972 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 13973 - 13983 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 13984 - 14002 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 14003 - 14007 [Qed.] 0. secs (0.u,0.s) Chars 14009 - 14095 [#[global]~Instance~eutt_observ...] 0. secs (0.u,0.s) Chars 14096 - 14102 [Proof.] 0. secs (0.u,0.s) -Chars 14103 - 14122 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14123 - 14133 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 14134 - 14152 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 14103 - 14122 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14123 - 14133 [rewrite~H.] 0. secs (0.u,0.s) +Chars 14134 - 14152 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 14153 - 14157 [Qed.] 0. secs (0.u,0.s) Chars 14159 - 14241 [#[global]~Instance~eutt_TauF~~...] 0. secs (0.u,0.s) Chars 14242 - 14248 [Proof.] 0. secs (0.u,0.s) -Chars 14249 - 14268 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14269 - 14279 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 14280 - 14298 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 14249 - 14268 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14269 - 14279 [rewrite~H.] 0. secs (0.u,0.s) +Chars 14280 - 14298 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 14299 - 14303 [Qed.] 0. secs (0.u,0.s) Chars 14305 - 14421 [#[global]~Instance~eutt_VisF~~...] 0. secs (0.u,0.s) Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) -Chars 14429 - 14448 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14449 - 14459 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 14460 - 14478 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 14429 - 14448 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14449 - 14459 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 14460 - 14478 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 14479 - 14483 [Qed.] 0. secs (0.u,0.s) Chars 14485 - 14608 [#[global]~Instance~eutt_bind~~...] 0. secs (0.u,0.s) Chars 14609 - 14615 [Proof.] 0. secs (0.u,0.s) -Chars 14616 - 14635 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14636 - 14650 [(rewrite~H,~H0).] 0.005 secs (0.004u,0.s) -Chars 14651 - 14669 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 14616 - 14635 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14636 - 14650 [rewrite~H,~H0.] 0.002 secs (0.002u,0.s) +Chars 14651 - 14669 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 14670 - 14674 [Qed.] 0.001 secs (0.001u,0.s) Chars 14676 - 14795 [#[global]~Instance~eutt_map~~{...] 0. secs (0.u,0.s) Chars 14796 - 14802 [Proof.] 0. secs (0.u,0.s) -Chars 14803 - 14822 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 14823 - 14837 [(rewrite~H,~H0).] 0.005 secs (0.004u,0.s) -Chars 14838 - 14856 [(apply~reflexivity).] 0. secs (0.u,0.s) +Chars 14803 - 14822 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 14823 - 14837 [rewrite~H,~H0.] 0.003 secs (0.003u,0.s) +Chars 14838 - 14856 [apply~reflexivity.] 0. secs (0.u,0.s) Chars 14857 - 14861 [Qed.] 0.001 secs (0.001u,0.s) Chars 14863 - 14987 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) Chars 14988 - 14994 [Proof.] 0. secs (0.u,0.s) -Chars 14995 - 15014 [(repeat~red;~intros).] 0. secs (0.u,0.s) -Chars 15015 - 15025 [(rewrite~H).] 0.001 secs (0.001u,0.s) -Chars 15026 - 15044 [(apply~reflexivity).] 0. secs (0.u,0.s) -Chars 15045 - 15049 [Qed.] 0.001 secs (0.001u,0.s) -Chars 15051 - 15062 [End~Simple.] 0.002 secs (0.001u,0.s) +Chars 14995 - 15014 [repeat~red;~intros.] 0. secs (0.u,0.s) +Chars 15015 - 15025 [rewrite~H.] 0.001 secs (0.001u,0.s) +Chars 15026 - 15044 [apply~reflexivity.] 0. secs (0.u,0.s) +Chars 15045 - 15049 [Qed.] 0. secs (0.u,0.s) +Chars 15051 - 15062 [End~Simple.] 0.001 secs (0.001u,0.s) From 6b6f5238be54e98fffc296a041b6d89e3b546662 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 20 May 2026 12:41:09 -0400 Subject: [PATCH 167/189] Final couple of files --- extra/Secure/SecureEqProgInsensFacts.v | 220 ++++++++++++++----------- extra/Secure/SecureStateHandler.v | 47 ++++-- 2 files changed, 156 insertions(+), 111 deletions(-) diff --git a/extra/Secure/SecureEqProgInsensFacts.v b/extra/Secure/SecureEqProgInsensFacts.v index 6b89cfef..e568ff27 100644 --- a/extra/Secure/SecureEqProgInsensFacts.v +++ b/extra/Secure/SecureEqProgInsensFacts.v @@ -1,3 +1,6 @@ +From Coinduction Require Import all. +From Stdlib Require Import Morphisms Program.Basics. + From ITree Require Import Axioms ITree @@ -8,8 +11,6 @@ From ITree.Extra Require Import Secure.SecureEqProgInsens . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -18,42 +19,46 @@ Variant case_rel {A1 A2 B : Type} (R1 : A1 -> B -> Prop) (R2 : A2 -> B -> Prop) | crl a1 b : R1 a1 b -> case_rel R1 R2 (inl a1) b | crr a2 b : R2 a2 b -> case_rel R1 R2 (inr a2) b. -Lemma pi_eqit_secure_iter_ret E R S1 S2 Label priv l b2 s body - (Rinv : R -> S2 -> Prop) (RS : S1 -> S2 -> Prop) - (HRinv : (forall r', Rinv r' s -> - pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (body r') (Ret s) )) : - forall r, - Rinv r s -> - @pi_eqit_secure E S1 S2 Label priv RS true b2 l (ITree.iter body r) (Ret s). +(* ===== Small Vis constructor lemmas (paco-free) ===== *) + +Lemma pi_eqit_secure_pub_vis E R1 R2 RR Label priv l b1 b2 A (e : E A) + (k1 : A -> itree E R1) (k2 : A -> itree E R2) : + leq (priv _ e) l -> + (forall a, pi_eqit_secure Label priv RR b1 b2 l (k1 a) (k2 a) ) -> + pi_eqit_secure Label priv RR b1 b2 l (Vis e k1) (Vis e k2). Proof. - ginit. gcofix CIH. intros r0 Hr0. setoid_rewrite unfold_iter. - assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (body r0) (Ret s)). - auto. remember (body r0) as t. clear Heqt. generalize dependent t. - gcofix CIH'. intros t Ht. - destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - - rewrite Heq. - assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Ret r1) (Ret s) ). - rewrite <- Heq. auto. - sinv H. subst. inv H2. - + rewrite bind_ret_l. gstep. constructor; auto. - gfinal. left. eapply CIH; eauto. - + rewrite bind_ret_l. gstep. constructor. auto. - - rewrite Heq. rewrite bind_tau. gstep. constructor; auto. - gfinal. left. eapply CIH'. - assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Tau t0) (Ret s)). - rewrite <- Heq. auto. sinv H. rewrite <- itree_eta. auto. - - destruct (classic (leq (priv _ e) l ) ). - + exfalso. apply HRinv in Hr0. - assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s) ). - { rewrite <- Heq. auto. } - sinv H0; subst. ddestruction. subst. contradiction. - + rewrite Heq. rewrite bind_vis. - gstep. constructor; auto. intros x. gfinal. left. eapply CIH'. - assert ( pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s)) . - rewrite <- Heq. auto. sinv H0; subst; ddestruction; subst. - rewrite <- itree_eta. apply H2. + intros. step. constructor; auto. Qed. +Lemma pi_eqit_secure_priv_vislr E R1 R2 RR Label priv l b1 b2 A B (e1 : E A) (e2 : E B) + (k1 : A -> itree E R1) (k2 : B -> itree E R2) : + ~ leq (priv _ e1) l -> ~ leq (priv _ e2) l -> + (forall a b, pi_eqit_secure Label priv RR b1 b2 l (k1 a) (k2 b) ) -> + pi_eqit_secure Label priv RR b1 b2 l (Vis e1 k1) (Vis e2 k2). +Proof. + intros. step. constructor; auto. +Qed. + +Lemma pi_eqit_secure_priv_visl E R1 R2 RR Label priv l b2 A (e1 : E A) + (k1 : A -> itree E R1) (t2 : itree E R2) : + ~ leq (priv _ e1) l -> + (forall a, pi_eqit_secure Label priv RR true b2 l (k1 a) t2 ) -> + pi_eqit_secure Label priv RR true b2 l (Vis e1 k1) t2. +Proof. + intros. step. constructor; auto. +Qed. + +Lemma pi_eqit_secure_priv_visr E R1 R2 RR Label priv l b1 A (e1 : E A) + (t1 : itree E R1) (k2 : A -> itree E R2) : + ~ leq (priv _ e1) l -> + (forall a, pi_eqit_secure Label priv RR b1 true l t1 (k2 a) ) -> + pi_eqit_secure Label priv RR b1 true l t1 (Vis e1 k2). +Proof. + intros. step. constructor; auto. +Qed. + +(* ===== use_simpobs Ltac (paco-free) ===== *) + Ltac use_simpobs := repeat match goal with | H : TauF _ = observe ?t |- _ => apply simpobs in H @@ -61,6 +66,43 @@ Ltac use_simpobs := | H : VisF _ _ = observe ?t |- _ => apply simpobs in H end. +(* The [eq_itree]-based Proper in [SecureEqProgInsens.v] is [flip impl] only. + For [rewrite H] in the forward direction we need an [iff] (or [impl]) + variant: derive it from the [flip impl] one using symmetry of [eq_itree]. *) +#[global] Instance pi_eqit_secure_eq_itree_proper_iff + {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : + Proper (@eq_itree E R1 R1 eq ==> eq_itree eq ==> iff) + (pi_eqit_secure Label priv RS b1 b2 l). +Proof. + intros t1 t1' EQ1 t2 t2' EQ2. + pose proof (pi_eqit_secure_eutt_proper (E := E) (RS := RS) (Label := Label) + (priv := priv) (l := l) b1 b2) as Hfwd. + unfold Proper, respectful in Hfwd. + split; intros H. + - (* P t1 t2 -> P t1' t2': use Proper with symmetric eqs *) + eapply (Hfwd _ _ (symmetry EQ1) _ _ (symmetry EQ2)). exact H. + - (* P t1' t2' -> P t1 t2: direct *) + eapply (Hfwd _ _ EQ1 _ _ EQ2). exact H. +Qed. + +(* Iff variant on the chain element [elem c] (needed for forward rewrites + inside [coinduction c CIH] proofs). Derived from the [flip impl] chain + Proper [pi_eqit_secure_proper_secureC] in [SecureEqProgInsens.v]. *) +#[global] Instance pi_eqit_secure_chain_proper_iff + {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l + (c : Chain (pi_secure_eqit_mon Label priv RR b1 b2 l)) : + Proper (@eq_itree E R1 R1 eq ==> eq_itree eq ==> iff) (elem c). +Proof. + intros t1 t1' EQ1 t2 t2' EQ2. + pose proof (pi_eqit_secure_proper_secureC b1 b2 Label priv RR l c) as Hfwd. + unfold Proper, respectful in Hfwd. + split; intros H. + - eapply (Hfwd _ _ (symmetry EQ1) _ _ (symmetry EQ2)). exact H. + - eapply (Hfwd _ _ EQ1 _ _ EQ2). exact H. +Qed. + +(* ===== Transitivity through Ret ===== *) + (* I believe we could generalize this lemma for any t2 that converges along all paths *) Lemma pi_eqit_secure_trans_ret E R1 R2 R3 Label priv l b1 b2 (RR1 : R1 -> R2 -> Prop) (RR2 : R2 -> R3 -> Prop) @@ -84,80 +126,66 @@ Proof. intros. gfinal. left. apply CIH; auto. rewrite <- H2. apply H3. Qed. -Lemma pi_eqit_secure_pub_vis E R1 R2 RR Label priv l b1 b2 A (e : E A) - (k1 : A -> itree E R1) (k2 : A -> itree E R2) : - leq (priv _ e) l -> - (forall a, pi_eqit_secure Label priv RR b1 b2 l (k1 a) (k2 a) ) -> - pi_eqit_secure Label priv RR b1 b2 l (Vis e k1) (Vis e k2). -Proof. - intros. step. constructor; auto. left. apply H0. -Qed. +(* ===== Iter through Ret ===== *) -Lemma pi_eqit_secure_priv_vislr E R1 R2 RR Label priv l b1 b2 A B (e1 : E A) (e2 : E B) - (k1 : A -> itree E R1) (k2 : B -> itree E R2) : - ~ leq (priv _ e1) l -> ~ leq (priv _ e2) l -> - (forall a b, pi_eqit_secure Label priv RR b1 b2 l (k1 a) (k2 b) ) -> - pi_eqit_secure Label priv RR b1 b2 l (Vis e1 k1) (Vis e2 k2). +Lemma pi_eqit_secure_iter_ret E R S1 S2 Label priv l b2 s body + (Rinv : R -> S2 -> Prop) (RS : S1 -> S2 -> Prop) + (HRinv : (forall r', Rinv r' s -> + pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (body r') (Ret s) )) : + forall r, + Rinv r s -> + @pi_eqit_secure E S1 S2 Label priv RS true b2 l (ITree.iter body r) (Ret s). Proof. - intros. step. constructor; auto. left. apply H1. + ginit. gcofix CIH. intros r0 Hr0. setoid_rewrite unfold_iter. + assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (body r0) (Ret s)). + auto. remember (body r0) as t. clear Heqt. generalize dependent t. + gcofix CIH'. intros t Ht. + destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. + - rewrite Heq. + assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Ret r1) (Ret s) ). + rewrite <- Heq. auto. + sinv H. subst. inv H2. + + rewrite bind_ret_l. gstep. constructor; auto. + gfinal. left. eapply CIH; eauto. + + rewrite bind_ret_l. gstep. constructor. auto. + - rewrite Heq. rewrite bind_tau. gstep. constructor; auto. + gfinal. left. eapply CIH'. + assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Tau t0) (Ret s)). + rewrite <- Heq. auto. sinv H. rewrite <- itree_eta. auto. + - destruct (classic (leq (priv _ e) l ) ). + + exfalso. apply HRinv in Hr0. + assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s) ). + { rewrite <- Heq. auto. } + sinv H0; subst. ddestruction. subst. contradiction. + + rewrite Heq. rewrite bind_vis. + gstep. constructor; auto. intros x. gfinal. left. eapply CIH'. + assert ( pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s)) . + rewrite <- Heq. auto. sinv H0; subst; ddestruction; subst. + rewrite <- itree_eta. apply H2. Qed. -Lemma pi_eqit_secure_priv_visl E R1 R2 RR Label priv l b2 A (e1 : E A) - (k1 : A -> itree E R1) (t2 : itree E R2) : - ~ leq (priv _ e1) l -> - (forall a, pi_eqit_secure Label priv RR true b2 l (k1 a) t2 ) -> - pi_eqit_secure Label priv RR true b2 l (Vis e1 k1) t2. -Proof. - intros. step. constructor; auto. left. apply H0. -Qed. +(* ===== Bind compatibility ===== -Lemma pi_eqit_secure_priv_visr E R1 R2 RR Label priv l b1 A (e1 : E A) - (t1 : itree E R1) (k2 : A -> itree E R2) : - ~ leq (priv _ e1) l -> - (forall a, pi_eqit_secure Label priv RR b1 true l t1 (k2 a) ) -> - pi_eqit_secure Label priv RR b1 true l t1 (Vis e1 k2). -Proof. - intros. step. constructor; auto. left. apply H0. -Qed. + The paco signature used [gpaco2 ... bot2 r] as both input and output + so the lemma could be plugged into ongoing [gcofix] proofs via [gfinal]. + In the chain-based world, the natural signature is at [pi_eqit_secure] + (gfp) — see [pi_eqit_secure_bind] in [SecureEqProgInsens.v#L285], which + is already proved. + We keep a stub here with the original paco signature so [SecureStateHandlerPi.v] + (paco-based, not yet migrated) still has a name to refer to. The body is + Admitted; a full chain-style implementation requires translating the + gpaco2-flavored argument structure. *) Lemma pi_secure_eqit_bind' : forall (E : Type -> Type) (R1 R2 S1 S2 : Type) (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) (b1 b2 : bool) (Label : Preorder) (priv : forall A : Type, E A -> L) (l : L) - r (t1 : itree E R1) (t2 : itree E R2) (k1 : R1 -> itree E S1) (k2 : R2 -> itree E S2), (forall (r1 : R1) (r2 : R2), - RR r1 r2 -> paco2 (pi_secure_eqit_ Label priv RS b1 b2 l id) r (k1 r1) (k2 r2)) -> + RR r1 r2 -> pi_eqit_secure Label priv RS b1 b2 l (k1 r1) (k2 r2)) -> pi_eqit_secure Label priv RR b1 b2 l t1 t2 -> - gpaco2 (pi_secure_eqit_ Label priv RS b1 b2 l id) (eqitC RS b1 b2) bot2 r - (ITree.bind t1 k1) (ITree.bind t2 k2). + pi_eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. revert H0. generalize dependent t2. generalize dependent t1. - gcofix CIH. intros t1 t2 Ht12. - sinv Ht12; use_simpobs. - - rewrite H0, H1. repeat rewrite bind_ret_l. gfinal. right. eapply paco2_mon; try apply CIH0. - auto. - - rewrite H0, H1. repeat rewrite bind_tau. gstep. constructor. gfinal. left. eapply CIH. - auto. - - rewrite H0. rewrite bind_tau. gstep. constructor; auto. - gfinal. left. eapply CIH. apply simpobs in H1. rewrite <- itree_eta in H1. - rewrite H1. auto. - - rewrite H1. rewrite bind_tau. gstep. constructor; auto. - gfinal. left. eapply CIH. apply simpobs in H0. rewrite <- itree_eta in H0. - rewrite H0. auto. - - rewrite H0, H1. repeat rewrite bind_vis. gstep. constructor; auto. - intros. gfinal. left. eapply CIH; eauto. apply H2. - - rewrite H0, H1. rewrite bind_vis, bind_tau. gstep. cbn. unpriv_pi. - gfinal. left. eapply CIH; eauto. apply H2. - - rewrite H0, H1. rewrite bind_vis, bind_tau. gstep. cbn. unpriv_pi. - gfinal. left. eapply CIH; eauto. apply H2. - - rewrite H0, H1. repeat rewrite bind_vis. gstep. cbn. unpriv_pi. - gfinal. left. eapply CIH. apply H2. - - rewrite H0. rewrite bind_vis. gstep. constructor; auto. gfinal. - left. eapply CIH. apply simpobs in H1. rewrite <- itree_eta in H1. rewrite H1. - apply H2. - - rewrite H1. rewrite bind_vis. gstep. constructor; auto. gfinal. - left. eapply CIH. apply simpobs in H0. rewrite <- itree_eta in H0. rewrite H0. - apply H2. + intros. eapply pi_eqit_secure_bind; eauto. Qed. diff --git a/extra/Secure/SecureStateHandler.v b/extra/Secure/SecureStateHandler.v index c38d749c..0435528a 100644 --- a/extra/Secure/SecureStateHandler.v +++ b/extra/Secure/SecureStateHandler.v @@ -1,4 +1,5 @@ From Stdlib Require Import Morphisms. +From Coinduction Require Import all. From ITree Require Import Basics.HeterogeneousRelations @@ -16,8 +17,6 @@ From ITree.Extra Require Import Secure.StrongBisimProper . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. @@ -70,24 +69,37 @@ Variant diverges_with' {E : Type -> Type} (P : forall A, E A -> Prop) (A : Type) Definition diverges_with_ {E} (P : forall A, E A -> Prop) {A : Type} (F : itree E A -> Prop) : itree E A -> Prop := fun t => diverges_with' P A F (observe t). -Definition diverges_with {E} (P : forall A, E A -> Prop) {A : Type} : itree E A -> Prop := paco1 (@diverges_with_ E P A) bot1. - Hint Constructors diverges_with' : itree. Hint Unfold diverges_with_ : itree. -Lemma mono_diverges_with (E : Type -> Type) P A : monotone1 (@diverges_with_ E P A). +Lemma diverges_with_mono (E : Type -> Type) P A : + Proper (respectful Coinduction.lattice.leq Coinduction.lattice.leq) + (@diverges_with_ E P A). Proof. - red. intros. red. inversion IN; auto with itree. + intros F G HFG t Ht. red; red in Ht. + inversion Ht; subst. + - apply diverges_tau. apply HFG. auto. + - apply diverges_vis; auto. intros a; apply HFG; auto. Qed. -Hint Resolve mono_diverges_with : paco. +Definition diverges_with_mon {E} (P : forall A, E A -> Prop) (A : Type) : + mon (itree E A -> Prop) := Build_mon (diverges_with_mono E P A). + +Definition diverges_with {E} (P : forall A, E A -> Prop) {A : Type} : itree E A -> Prop := + gfp (diverges_with_mon P A). #[global] Instance proper_diverges_with {E A} {P : forall A, E A -> Prop} : Proper (eq_itree eq ==> iff ) (@diverges_with E P A). Proof. do 2 red. intros t1 t2 Heq. apply EqAxiom.bisimulation_is_eq in Heq. subst; tauto. Qed. -#[global] Instance proper_diverges_with_r {E A r} {P : forall A, E A -> Prop} : Proper (eq_itree eq ==> iff ) (paco1 (@diverges_with_ E P A) r ). +(* The paco-era [proper_diverges_with_r] was a Proper instance for + [paco1 ... r] (a partial fixpoint). The coinduction analog is a + Proper for [elem c] (a chain element). Provided in chain form so it + applies inside [coinduction c CIH] proofs. *) +#[global] Instance proper_diverges_with_elem {E A} {P : forall A, E A -> Prop} + (c : Chain (@diverges_with_mon E P A)) : + Proper (eq_itree eq ==> iff) (elem c). Proof. do 2 red. intros t1 t2 Heq. apply EqAxiom.bisimulation_is_eq in Heq. subst; tauto. Qed. @@ -101,11 +113,16 @@ Qed. Lemma diverges_with_bind : forall E (P : forall A, E A -> Prop) (A B : Type) (k : A -> itree E B) (t : itree E A) , diverges_with P t -> diverges_with P (ITree.bind t k). Proof. - intros P A B k. coinduction c CIH. intros. - step. unfold observe. cbn. - sinv H0; cbn. - - constructor; eauto. - - constructor; intros; eauto. right. eapply CIH; eauto. apply H1. + intros E P A B k. coinduction c CIH. intros t Hdiv. + step in Hdiv. cbn in Hdiv. inversion Hdiv; subst. + - (* Tau case *) + apply simpobs in H. rewrite H. + rewrite bind_tau. apply diverges_tau. apply CIH; auto. + - (* Vis case *) + apply simpobs in H. rewrite H. + rewrite bind_vis. cbn. + apply diverges_vis; auto. + intros a. apply CIH. apply H0. Qed. Lemma diverges_with_halt : forall E (A B : Type) (e : E A) (k : A -> itree E B) (P : forall A, E A -> Prop), @@ -347,7 +364,7 @@ Proof. eapply H0; eauto. simpl. etransitivity; eauto. + rewrite bind_tau. pstep. constructor 4; auto. pstep_reverse. + rewrite bind_vis. pstep. destruct H3. constructor 10; auto. intros. pstep_reverse. - - + - rewrite Heqot1. rewrite interp_state_vis. rewrite Heqot2. rewrite interp_state_tau. pose proof Hhandler as Hhandler'. @@ -356,7 +373,7 @@ Proof. + eapply diverges_with_bind; eauto. + step. constructor. left. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_r; eauto. - - + - rewrite Heqot1. rewrite interp_state_tau. rewrite Heqot2. rewrite interp_state_vis. pose proof Hhandler as Hhandler'. From 48589de5d91744e5f35bfcd3be3048638abefa27 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 22 May 2026 14:24:38 -0400 Subject: [PATCH 168/189] Done up to ProgInsens and after, fixing a bug --- .claude/settings.json | 10 + extra/Secure/SecureEqBind.v | 95 +++---- extra/Secure/SecureEqEuttHalt.v | 77 ++++-- extra/Secure/SecureEqProgInsens.v | 228 +++++++++++++---- extra/Secure/SecureEqProgInsensFacts.v | 66 +++-- extra/Secure/SecureEqWcompat.v | 14 +- extra/Secure/SecureStateHandler.v | 334 ++++++++++++------------- extra/Secure/SecureStateHandlerPi.v | 216 ++++++++++------ theories/Basics/Utils.v | 3 +- theories/Eq/Eqit.v | 5 + 10 files changed, 631 insertions(+), 417 deletions(-) create mode 100644 .claude/settings.json diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 00000000..ca63def7 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,10 @@ +{ + "permissions": { + "allow": [ + "Bash(.venv/bin/python -c ' *)", + "Bash(awk 'NR>=345 && /Qed\\\\.|Admitted\\\\./{print NR\": \"$0; exit}' extra/Secure/SecureStateHandler.v)", + "Bash(awk 'NR>458' extra/Secure/SecureStateHandler.v)", + "Bash(cp /tmp/interp_good.txt /tmp/interp13g1.txt)" + ] + } +} diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index 8fda86de..6bced2df 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -68,71 +68,45 @@ Proof. - apply H1. Qed. -#[local] Ltac to_mon_s := +Ltac to_mon_s := match goal with | |- secure_eqitF ?Label ?priv ?RR ?b1 ?b2 ?l ?sim (observe ?t1) (observe ?t2) => change (secure_eqit_mon Label priv RR b1 b2 l sim t1 t2) end. -Lemma secure_eqit_bind' : forall E R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) - b1 b2 Label priv l - (t1 : itree E R1) (t2 : itree E R2) (k1 : R1 -> itree E S1) (k2 : R2 -> itree E S2), - (forall r1 r2, RR r1 r2 -> eqit_secure Label priv RS b1 b2 l (k1 r1) (k2 r2) ) -> - eqit_secure Label priv RR b1 b2 l t1 t2 -> - eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). + +Lemma secure_eqit_bind_chain : + forall {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) + b1 b2 (Lab : Preorder) (pr : forall A, E A -> L) (lev : L) + (c : Chain (secure_eqit_mon Lab pr RS b1 b2 lev)) + (t1 : itree E R1) (t2 : itree E R2) + (k1 : R1 -> itree E S1) (k2 : R2 -> itree E S2), + eqit_secure Lab pr RR b1 b2 lev t1 t2 -> + (forall r1 r2, RR r1 r2 -> elem c (k1 r1) (k2 r2)) -> + elem c (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. revert H0. revert t1 t2. icoinduction c CIH. intros t1 t2 Ht12. - step in Ht12. - genobs t1 ot1. genobs t2 ot2. - hinduction Ht12 before E; intros. - - unfold ITree.bind, observe; cbn. - simpobs. step. now apply H0. - - unfold ITree.bind, observe. - cbn; simpobs; cbn. - constructor. now eapply CIH. - - unfold ITree.bind at 1, observe at 1. - cbn; simpobs; cbn. - constructor; auto. - apply IHHt12; eauto. - - unfold ITree.bind at 2, observe at 2. - cbn; simpobs; cbn. - constructor; auto. apply IHHt12; eauto. - - unfold ITree.bind, observe. - cbn; simpobs; cbn. - evis. - eapply CIH, H. - - unfold ITree.bind, observe. - cbn; simpobs; cbn. - unpriv_co. - eapply CIH, H. - - unfold ITree.bind, observe. - cbn; simpobs; cbn. - unpriv_co. - eapply CIH, H. - - unfold ITree.bind, observe. - cbn; simpobs; cbn. - unpriv_co. - eapply CIH, H. - - unfold ITree.bind at 1, observe at 1. - cbn. rewrite <- Heqot1. cbn. - unpriv_ind. eapply H0; eauto. - - unfold ITree.bind at 2, observe at 2. - cbn; rewrite <- Heqot2; cbn. - unpriv_ind. eapply H0; eauto. - - step. - eapply eqit_bind_shalt_aux1; eauto. step. simpobs. - cbn. unpriv_halt. eauto. - - step. - eapply eqit_bind_shalt_aux2; eauto. step. cbn. simpobs. - unpriv_halt. eauto. - - step. - eapply eqit_bind_shalt_aux1 with (A := A); eauto. - step. simpobs. cbn. unpriv_halt. - - step. - eapply eqit_bind_shalt_aux2; eauto. step. cbn. simpobs. - unpriv_halt. + intros E R1 R2 S1 S2 RR RS b1 b2 Lab pr lev c. + tower induction. + intros x IH t1 t2 k1 k2 Hsec Hcont. + step in Hsec. genobs t1 ot1. genobs t2 ot2. + hinduction Hsec before x; intros. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_ret_l. now apply Hcont. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_tau. constructor. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. rewrite Heqot1. rewrite bind_tau. constructor; auto. eapply IHHsec; eauto. + - apply simpobs in Heqot2. rewrite Heqot2. rewrite bind_tau. constructor; auto. eapply IHHsec; eauto. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_vis. constructor; auto. intros a. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. rewrite bind_vis, bind_tau. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. rewrite bind_tau, bind_vis. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_vis. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. rewrite Heqot1. rewrite bind_vis. unpriv_ind. eapply H0; eauto. + - apply simpobs in Heqot2. rewrite Heqot2. rewrite bind_vis. unpriv_ind. eapply H0; eauto. + - apply (gfp_bchain x). eapply eqit_bind_shalt_aux1; eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. eauto. + - apply (gfp_bchain x). eapply eqit_bind_shalt_aux2; eauto. step. rewrite <- Heqot1. cbn. unpriv_halt. eauto. + - apply (gfp_bchain x). eapply eqit_bind_shalt_aux1 with (e := e1); eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. + - apply (gfp_bchain x). eapply eqit_bind_shalt_aux2 with (e := e2); eauto. step. rewrite <- Heqot1. cbn. unpriv_halt. Qed. + Lemma secure_eqit_bind : forall E R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) b1 b2 Label priv l (t1 : itree E R1) (t2 : itree E R2) (k1 : R1 -> itree E S1) (k2 : R2 -> itree E S2), @@ -140,9 +114,8 @@ Lemma secure_eqit_bind : forall E R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 - eqit_secure Label priv RR b1 b2 l t1 t2 -> eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - intros. - eapply secure_eqit_bind'; eauto. -Qed. + intros. eapply secure_eqit_bind_chain; eauto. +Qed. Lemma iter_bind_shalt_aux1: forall (E : Type -> Type) (B2 B1 A1 A2 : Type) (RA : A1 -> A2 -> Prop) @@ -296,7 +269,7 @@ Proof. (* write lemmas for unfolding the observe of iter *) cbn. hinduction Hbodya before E; intros; cbn; auto with itree. - inv H; cbn; eauto with itree. - - cbn. constructor. + - cbn. constructor. eapply iter_bind_aux; eauto. - constructor; auto. intro. eapply iter_bind_aux; eauto. apply H. diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 1e1d4fe3..93716d30 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -21,20 +21,60 @@ Local Open Scope monad_scope. #[local] Ltac taul := apply secEqTauL; [auto|]. #[local] Ltac taur := apply secEqTauR; [auto|]. -#[global] Instance euttge_proper_secureC {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l +#[global] Instance eq_itree_proper_secureC {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l (c : Chain (secure_eqit_mon Label priv RR b1 b2 l)) : - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> Basics.flip Basics.impl) (elem c). -Proof with eauto with itree. - unfold Proper, respectful, Basics.flip, Basics.impl. - tower induction. - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. - intros EQ. icbn; icbn in EQ; cbn in *. - genobs x' ox'; genobs y' oy'. - (* [hinduction] is not sufficient here, because [move] is unable to pass - through [ox] to reach [x] *) - revert x x' y y' Heqox' Heqoy' EQx EQy. - induction EQ; intros. - + clear x' y' Heqox' Heqoy'. + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (elem c). + Proof with eauto with itree. + unfold Proper, respectful; split; + rename H into EQx; rename H0 into EQy; + rename x0 into x'; rename y0 into y'. + all: revert x y EQx x' y' EQy. + all: tower induction; + clear c; intros c IH x x' EQx y y' EQy EQ; step in EQx; step in EQy. + all: icbn; icbn in EQ; cbn in *. + 1: genobs x ox; genobs y oy; + revert x x' y y' Heqox Heqoy EQx EQy. + 2: genobs x' ox'; genobs y' oy'; + revert x x' y y' Heqox' Heqoy' EQx EQy. + all: induction EQ; intros. + 5-8, 19-22 : inv EQx; inv EQy; ddestruction; subst; try contradiction; try contra_size; eauto with itree. + + + clear x y Heqox Heqoy. + genobs x' ox'. + genret r1 or1. + revert x' Heqox'. + hinduction EQx before ox'; try easy. + * intros; subst; inv Heqor1. clear x' Heqox'. + genobs y' oy'; genret r2 or2. + revert y' Heqoy'. + hinduction EQy before oy'; try easy. + subst; intros [=<-] ??... + (* the 2 proof bodies are identical from here. + some automation above with the 5-8, 19-22 line, + and more could be done, though it really wants + for better parallel machinery. just synced lines would be good. *) + + inv EQx; inv EQy. constructor. eapply IH; eauto. + + inv EQx. taul. eapply IHEQ; eauto. now unstep. + + inv EQy. taur. eapply IHEQ; eauto. now unstep. + + inv EQx; ddestruction. constructor; auto. intros. + eapply H0; eauto. now unstep. + + inv EQy; ddestruction. constructor; auto. intros. + eapply H0; eauto. now unstep. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 11; eauto. eapply IH. + 2, 3: eauto. step. constructor. auto. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 12; eauto. eapply IH. + 1, 3: eauto. step. constructor. auto. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 13; eauto. intro. eapply IH. + 3: apply H. step; now constructor. apply REL0. + + inv EQx; inv EQy; ddestruction; subst; try easy. + constructor 14; eauto. intro. eapply IH. + 3: apply H. apply REL. + step; now constructor. + + + clear x' y' Heqox' Heqoy'. genobs x ox. genret r1 or1. revert x Heqox. @@ -47,10 +87,6 @@ Proof with eauto with itree. + inv EQx; inv EQy. constructor. eapply IH; eauto. + inv EQx. taul. eapply IHEQ; eauto. now unstep. + inv EQy. taur. eapply IHEQ; eauto. now unstep. - + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. - + inv EQx; inv EQy. ddestruction; subst; try contradiction; try contra_size; eauto with itree. + inv EQx; ddestruction. constructor; auto. intros. eapply H0; eauto. now unstep. + inv EQy; ddestruction. constructor; auto. intros. @@ -70,6 +106,13 @@ Proof with eauto with itree. step; now constructor. Qed. +#[global] Instance eq_itree_proper_secureC_mon {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l + (c : Chain (secure_eqit_mon Label priv RR b1 b2 l)) : + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> Basics.flip Basics.impl) + (secure_eqit_mon Label priv RR b1 b2 l (elem c)). +Proof. + repeat intro. eapply eq_itree_proper_secureC with (c := chain_b c); eauto. +Qed. Lemma tau_eqit_secure : forall E R1 R2 Label priv l RR (t1 : itree E R1) (t2 : itree E R2), eqit_secure Label priv RR true true l (Tau t1) t2 -> eqit_secure Label priv RR true true l t1 t2. diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index 5a935302..f9168b33 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -225,10 +225,108 @@ Ltac inv_eq_itree := | [ H : eqitF _ false false _ (VisF _ _) _ |- _ ] => inv H | [ H : eqitF _ false false _ _ (VisF _ _) |- _ ] => inv H end. + +#[local] Ltac taul ::= eapply pisecEqTauL; [auto|]. +#[local] Ltac taur ::= eapply pisecEqTauR; [auto|]. + +#[global] Instance pi_eqit_secure_proper_secureC {E R1 R2} Label priv (RR : R1 -> R2 -> Prop) l + (c : Chain (pi_secure_eqit_mon Label priv RR true true l)) : + Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c). +Proof with eauto with itree. + unfold Proper, respectful, flip, impl. + tower induction. + clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + intros EQ. icbn; icbn in EQ. + genobs x' ox'; genobs y' oy'. + (* [hinduction] is not sufficient here, because [move] is unable to pass + through [ox] to reach [x] *) + revert x x' y y' Heqox' Heqoy' EQx EQy. + induction EQ; intros. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genret r1 or1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros; subst; inv Heqor1. clear x Heqox. + genobs y oy; genret r2 or2. + revert y Heqoy. + hinduction EQy before oy; try easy. + subst; intros [=<-] ??... + intros. rewrite itree_eta' at 1; taur. step. eapply IHEQy; eauto. + * intros; subst. taul. step. eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + gentau t1 om1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros [=<-] ? ??. + clear x Heqox. + genobs y oy; gentau t2 om2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros [=<-] ??... + intros. rewrite itree_eta' at 1. + taur. + now step; eapply IHEQy. + * intros; subst; taul; step; eapply IHEQx... + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taul. + eapply IH. + assert (euttge eq (Tau x0) (Tau t1)) by (now step). + eapply euttge_tau_inv; eauto. unstep in EQy. apply EQy. assumption. + + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taur. + eapply IH. + unstep in EQx. apply EQx. + assert (euttge eq (Tau x0) (Tau t2)) by (now step). + eapply euttge_tau_inv; eauto. + assumption. + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genvis e k1 ot1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros. + apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + clear x Heqox. + genobs y oy; genvis e k2 ot2. + revert y Heqoy. + hinduction EQy before oy; try easy. + intros; apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst; eauto with itree. + intros. + rewrite itree_eta' at 1. taur. + now step; eapply IHEQy. + * intros; subst; taul; step; eapply IHEQx... + + clear x' y' Heqox' Heqoy'. + genobs x ox. + genvis e k1 ot1. + revert x Heqox. + hinduction EQx before ox; try easy. + * intros. + apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. + clear x Heqox. + genobs y oy; genvis e k0 ot2. + revert y Heqoy. remember (TauF t2). + hinduction EQy before oy; intros; subst; try easy. + -- inv Heqi. constructor 6; intros; auto. eapply IH. apply REL. apply REL0. apply H. + -- constructor; auto. intros. step. eapply IHEQy; eauto. + now step; eapply IHEQy. + * intros; subst; taul; step; eapply IHEQx... + + edestruct euttge_tau_r_inv; [step; eauto |]. + simpobs. + taur. + eapply IH. unstep in EQx. apply EQx. + assert (euttge eq (Tau x0) (Tau t2)) by (now step). + unstep; eapply euttge_tau_inv; eauto. +Qed. + + (* Chain-level congruence: rewriting under [eq_itree eq] on either side of a chain element. This replaces the paco-style [pi_eqit_secureC_wcompat_id] - (weak compatibility of the [eqitC] up-to-eutt closure). Template: - [euttge_proper_secureC] in [SecureEqEuttHalt.v]. *) + (weak compatibility of the [eqitC] up-to-eq_itree closure). *) #[global] Instance pi_eqit_secure_proper_secureC {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l (c : Chain (pi_secure_eqit_mon Label priv RR b1 b2 l)) : Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) (elem c). @@ -248,10 +346,8 @@ Proof. - ddestruction. unpriv_pi. eapply CIH. step; apply H12. apply REL. apply H. Qed. -(* ... lift to the gfp via [chain_gfp]: this is the [Proper] instance the - downstream chain-style [rewrite]s depend on, replacing the paco - [geuttgen_cong_*] gpaco instances. *) -#[global] Instance pi_eqit_secure_eutt_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : + +#[global] Instance pi_eqit_secure_eq_itree_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : Proper (@eq_itree E R1 R1 eq ==> eq_itree eq ==> flip impl) (pi_eqit_secure Label priv RS b1 b2 l). Proof. @@ -259,7 +355,7 @@ Proof. (c := chain_gfp (pi_secure_eqit_mon Label priv RS b1 b2 l)). Qed. -Global Instance pi_eqit_secure_eq_itree_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : +Global Instance pi_eqit_secure_eutt_proper {E} {Label priv l} {R1 R2 : Type} {RS : R1 -> R2 -> Prop} (b1 b2 : bool) : Proper (@eutt E R1 R1 eq ==> eutt eq ==> flip impl) (pi_eqit_secure Label priv RS true true l). Proof. @@ -283,35 +379,39 @@ Proof. Qed. Lemma pi_eqit_secure_bind E Label priv l b1 b2 R1 R2 S1 S2 (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) k1 k2 : - forall (t1 : itree E R1) (t2 : itree E R2), - (forall (r1 : R1) (r2 : R2), RR r1 r2 -> pi_eqit_secure Label priv RS b1 b2 l (k1 r1) (k2 r2) ) -> + forall (t1 : itree E R1) (t2 : itree E R2) + (c : Chain (pi_secure_eqit_mon Label priv RS b1 b2 l)), + (forall (r1 : R1) (r2 : R2), RR r1 r2 -> elem c (k1 r1) (k2 r2) ) -> pi_eqit_secure Label priv RR b1 b2 l t1 t2 -> - pi_eqit_secure Label priv RS b1 b2 l (ITree.bind t1 k1) (ITree.bind t2 k2). + elem c (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. - icoinduction c CIH. intros ?? Hk1k2 Ht1t2. - step in Ht1t2. - genobs t1 Hot1. - genobs t2 Hot2. - hinduction Ht1t2 before c; intros. - - rewrite 2observe_bind. simpobs. step. apply Hk1k2. apply H. - - rewrite 2observe_bind. simpobs. etau. - - rewrite observe_bind. simpobs. taul. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite (observe_bind t3). simpobs. taur. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite 2observe_bind. simpobs. constructor; auto. intros. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite 2observe_bind. simpobs. unpriv_pi. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite 2observe_bind. simpobs. unpriv_pi. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite 2observe_bind. simpobs. unpriv_pi. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite observe_bind. simpobs. unpriv_pi. - eapply CIH; intros; auto. step. simpobs. now unstep. - - rewrite (observe_bind t2). simpobs. unpriv_pi. - eapply CIH; intros; auto. step. simpobs. now unstep. -Qed. + #[local] Ltac by_coinduction CIH := eapply CIH; intros; + try solve [now simpobs_subst]; + solve [now step; apply_foralls]. + intros t1 t2 c. revert t1 t2. tower induction. + clear c; intros c CIH t1 t2 Hk1k2 Ht1t2. + step in Ht1t2. genobs t1 ot1. genobs t2 ot2; icbn. + hinduction Ht1t2 before c; intros. + - rewrite 2 observe_bind. simpobs. now apply Hk1k2. + - rewrite 2 observe_bind. simpobs. etau. + by_coinduction CIH. + - rewrite observe_bind. simpobs. apply pisecEqTauL; auto. + by_coinduction CIH. + - rewrite (observe_bind t3). simpobs. etau. + by_coinduction CIH. + - rewrite 2 observe_bind. simpobs. apply piEqVisPriv; auto. intros a. + by_coinduction CIH. + - rewrite 2 observe_bind. simpobs. apply piEqVisUnPrivTauLCo; auto. intros a. + by_coinduction CIH. + - rewrite 2 observe_bind. simpobs. apply piEqVisUnPrivTauRCo; auto. intros a. + by_coinduction CIH. + - rewrite 2 observe_bind. simpobs. apply piEqVisUnPrivVisCo; auto. intros a b. + by_coinduction CIH. + - rewrite observe_bind. simpobs. apply piEqVisUnPrivLInd; auto. intros a. + by_coinduction CIH. + - rewrite (observe_bind t2). simpobs. apply piEqVisUnPrivRInd; auto. intros a. + by_coinduction CIH. +Qed. Lemma pi_eqit_secure_iter_bind_aux: forall (E : Type -> Type) (B2 B1 A1 A2 : Type) (RA : A1 -> A2 -> Prop) @@ -340,23 +440,18 @@ Proof. tower induction. clear c; intros c CIH Hbody t1 t2 Ht12. step in Ht12. icbn. genobs t1 ot1. genobs t2 ot2. hinduction Ht12 before E; intros. - #[local] Ltac by_coinduction CIH := - eapply CIH; intros; - try solve [now step; simpobs; unstep]; - match goal with - | |- elem _ _ _ => Utils.step - end; auto. + #[local] Ltac break_observe := unfold observe; cbn; simpobs; cbn. (* QUESTION: why does 'now step; apply Hbody' instead of auto fail? *) #[local] Ltac pi_solve CIH := constructor; auto; intros; by_coinduction CIH. - - unfold observe; cbn; simpobs. inv H; cbn; eauto with itree. + - break_observe. inv H; cbn; eauto with itree. constructor. now step; apply Hbody. - - unfold observe; cbn; simpobs. pi_solve CIH. + - break_observe. pi_solve CIH. - unfold observe at 1; cbn; simpobs. pi_solve CIH. - unfold observe at 2; cbn; simpobs. pi_solve CIH. - - unfold observe; cbn; simpobs. pi_solve CIH. - - unfold observe; cbn; simpobs. pi_solve CIH. - - unfold observe; cbn; simpobs. pi_solve CIH. - - unfold observe; cbn; simpobs. pi_solve CIH. + - break_observe. pi_solve CIH. + - break_observe. pi_solve CIH. + - break_observe. pi_solve CIH. + - break_observe. pi_solve CIH. - unfold observe at 1; cbn; simpobs. pi_solve CIH. - unfold observe at 2; cbn; simpobs. pi_solve CIH. Qed. @@ -365,9 +460,44 @@ Qed. Lemma secure_eqit_iter E A1 A2 B1 B2 (RA : A1 -> A2 -> Prop) (RB : B1 -> B2 -> Prop) b1 b2 Label priv l (body1 : A1 -> itree E (A1 + B1) ) (body2 : A2 -> itree E (A2 + B2) ): - (forall a1 a2, RA a1 a2 -> pi_eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l (body1 a1) (body2 a2) ) -> forall (a1 : A1) (a2 : A2), RA a1 a2 -> + (forall a1 a2, RA a1 a2 -> pi_eqit_secure Label priv (HeterogeneousRelations.sum_rel RA RB) b1 b2 l (body1 a1) (body2 a2) ) -> pi_eqit_secure Label priv RB b1 b2 l (ITree.iter body1 a1) (ITree.iter body2 a2). Proof. - (* TODO(paco->coinduction): fill in (template: secure_eqit_iter in SecureEqBind.v). *) -Admitted. + intros. rename H0 into Hbody. generalize dependent a2. revert a1. + icoinduction c CIH. + intros a1 a2 Ha. specialize (Hbody a1 a2 Ha) as Hbodya. + step in Hbodya. + remember (observe (body1 a1)). + remember (observe (body2 a2)). + hinduction Hbodya before E; intros; cbn; auto with itree. + - break_observe. inv H; cbn; eauto with itree. + - break_observe. constructor. + eapply pi_eqit_secure_iter_bind_aux; eauto. + (* taul, taur hard *) + - unfold observe at 1; cbn; simpobs. constructor; auto. ITree.fold_subst. + rewrite unfold_iter. eapply pi_eqit_secure_iter_bind_aux; eauto. + now simpobs_subst. + - unfold observe at 2; cbn; simpobs. constructor; auto. ITree.fold_subst. + rewrite unfold_iter. eapply pi_eqit_secure_iter_bind_aux; eauto. + now simpobs_subst. + - break_observe. constructor; auto. intro. eapply pi_eqit_secure_iter_bind_aux; eauto. apply H. + - break_observe. constructor; intros; auto. eapply pi_eqit_secure_iter_bind_aux; intros. + apply CIH; eauto. apply H. + - break_observe. constructor; intros; auto. eapply pi_eqit_secure_iter_bind_aux; eauto. + apply H. + - break_observe. constructor; intros; auto. eapply pi_eqit_secure_iter_bind_aux; eauto. + apply H. + - unfold observe at 1; cbn; simpobs; cbn. constructor; intros; auto. + rewrite unfold_iter. + eapply pi_eqit_secure_iter_bind_aux; eauto. now simpobs_subst. + - unfold observe at 2; cbn; simpobs; cbn. constructor; intros; auto. + rewrite unfold_iter. + eapply pi_eqit_secure_iter_bind_aux; eauto. now simpobs_subst. +Qed. + +Lemma secure_eqit_ret : forall (E : Type -> Type) Label priv l b1 b2 (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (r1 : R1) (r2 : R2), + RR r1 r2 -> @eqit_secure E R1 R2 Label priv RR b1 b2 l (Ret r1) (Ret r2). +Proof. + intros. step. constructor. auto. +Qed. diff --git a/extra/Secure/SecureEqProgInsensFacts.v b/extra/Secure/SecureEqProgInsensFacts.v index e568ff27..32242c47 100644 --- a/extra/Secure/SecureEqProgInsensFacts.v +++ b/extra/Secure/SecureEqProgInsensFacts.v @@ -19,7 +19,7 @@ Variant case_rel {A1 A2 B : Type} (R1 : A1 -> B -> Prop) (R2 : A2 -> B -> Prop) | crl a1 b : R1 a1 b -> case_rel R1 R2 (inl a1) b | crr a2 b : R2 a2 b -> case_rel R1 R2 (inr a2) b. -(* ===== Small Vis constructor lemmas (paco-free) ===== *) +(* ===== Vis lemmas ===== *) Lemma pi_eqit_secure_pub_vis E R1 R2 RR Label priv l b1 b2 A (e : E A) (k1 : A -> itree E R1) (k2 : A -> itree E R2) : @@ -57,7 +57,7 @@ Proof. intros. step. constructor; auto. Qed. -(* ===== use_simpobs Ltac (paco-free) ===== *) +(* ===== use_simpobs Ltac ===== *) Ltac use_simpobs := repeat match goal with @@ -111,19 +111,20 @@ Lemma pi_eqit_secure_trans_ret E R1 R2 R3 Label priv l b1 b2 pi_eqit_secure Label priv RR2 b1 b2 l (Ret r) t3 -> pi_eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. - revert t1 t3. ginit. gcofix CIH. - intros. sinv H0; subst; use_simpobs. - - rewrite H. generalize dependent t3. gcofix CIH'. intros t3 Ht3. + revert t1 t3. coinduction c CIH. + intros. sinv H; subst; use_simpobs. + - step. rewrite H1. generalize dependent t3. icoinduction c' CIH'. intros t3 Ht3. + cbn. sinv Ht3; use_simpobs. - + rewrite H2. gstep. constructor; auto. econstructor; eauto. - + rewrite H2. gstep. constructor; auto. gfinal. left. eapply CIH'. - symmetry in H1. use_simpobs. rewrite H1 in H4. auto. - + rewrite H2. gstep. constructor; auto. intros. gfinal. left. - eapply CIH'. symmetry in H1. use_simpobs. setoid_rewrite H1 in H4. apply H4. - - symmetry in H2. use_simpobs. rewrite H. gstep. constructor; auto. - gfinal. left. eapply CIH; auto. rewrite <- H2. auto. - - symmetry in H2. use_simpobs. rewrite H. gstep. constructor; auto. - intros. gfinal. left. apply CIH; auto. rewrite <- H2. apply H3. + + constructor; auto. econstructor; eauto. + + rewrite itree_eta' at 1. constructor; auto. eapply CIH'. + symmetry in H. use_simpobs. now rewrite H in H2. + + rewrite itree_eta' at 1. constructor; auto. intros. + eapply CIH'. symmetry in H. use_simpobs. setoid_rewrite H in H2. apply H2. + - symmetry in H2. use_simpobs. rewrite H1. constructor; auto. + eapply CIH; auto. rewrite <- H2. auto. + - symmetry in H2. use_simpobs. rewrite H1. constructor; auto. + intros. apply CIH; auto. rewrite <- H2. apply H3. Qed. (* ===== Iter through Ret ===== *) @@ -136,20 +137,22 @@ Lemma pi_eqit_secure_iter_ret E R S1 S2 Label priv l b2 s body Rinv r s -> @pi_eqit_secure E S1 S2 Label priv RS true b2 l (ITree.iter body r) (Ret s). Proof. - ginit. gcofix CIH. intros r0 Hr0. setoid_rewrite unfold_iter. - assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (body r0) (Ret s)). - auto. remember (body r0) as t. clear Heqt. generalize dependent t. - gcofix CIH'. intros t Ht. + coinduction. intros r0 Hr0. setoid_rewrite unfold_iter. + assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (body r0) (Ret s)) + by auto. + remember (body r0) as t. clear Heqt. step. generalize dependent t. + coinduction c' CIH'. intros t Ht. destruct (observe t) eqn : Heq; symmetry in Heq; apply simpobs in Heq. - rewrite Heq. - assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Ret r1) (Ret s) ). - rewrite <- Heq. auto. + assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Ret r) (Ret s) ) + by now + rewrite <- Heq. sinv H. subst. inv H2. - + rewrite bind_ret_l. gstep. constructor; auto. - gfinal. left. eapply CIH; eauto. - + rewrite bind_ret_l. gstep. constructor. auto. - - rewrite Heq. rewrite bind_tau. gstep. constructor; auto. - gfinal. left. eapply CIH'. + + rewrite bind_ret_l. constructor; auto. + rewrite unfold_iter. eapply CIH'; eauto. + + rewrite bind_ret_l. constructor. auto. + - rewrite Heq. rewrite bind_tau. constructor; auto. + eapply CIH'. assert (pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Tau t0) (Ret s)). rewrite <- Heq. auto. sinv H. rewrite <- itree_eta. auto. - destruct (classic (leq (priv _ e) l ) ). @@ -158,7 +161,7 @@ Proof. { rewrite <- Heq. auto. } sinv H0; subst. ddestruction. subst. contradiction. + rewrite Heq. rewrite bind_vis. - gstep. constructor; auto. intros x. gfinal. left. eapply CIH'. + constructor; auto. intros x. eapply CIH'. assert ( pi_eqit_secure Label priv (case_rel Rinv RS) true b2 l (Vis e k) (Ret s)) . rewrite <- Heq. auto. sinv H0; subst; ddestruction; subst. rewrite <- itree_eta. apply H2. @@ -166,16 +169,7 @@ Qed. (* ===== Bind compatibility ===== - The paco signature used [gpaco2 ... bot2 r] as both input and output - so the lemma could be plugged into ongoing [gcofix] proofs via [gfinal]. - In the chain-based world, the natural signature is at [pi_eqit_secure] - (gfp) — see [pi_eqit_secure_bind] in [SecureEqProgInsens.v#L285], which - is already proved. - - We keep a stub here with the original paco signature so [SecureStateHandlerPi.v] - (paco-based, not yet migrated) still has a name to refer to. The body is - Admitted; a full chain-style implementation requires translating the - gpaco2-flavored argument structure. *) + This is already proved of the chain; here just instantiated at the gfp. *) Lemma pi_secure_eqit_bind' : forall (E : Type -> Type) (R1 R2 S1 S2 : Type) (RR : R1 -> R2 -> Prop) (RS : S1 -> S2 -> Prop) (b1 b2 : bool) (Label : Preorder) diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 6b4c94a1..43e8d7c3 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -79,11 +79,6 @@ Ltac resolve_sizes := end; try contra_size. -Ltac apply_foralls := - repeat match goal with - | w : ?A, H : forall _ : ?A, _ |- _ => apply (H w) - end. - (* Close a halting [Vis]/[Vis] obligation, at either the [gfp] ([eqit_secure]) or chain ([elem c]) level: step into the halting constructor, then finish by the empty-index contradiction or the body @@ -198,6 +193,15 @@ Tactic Notation "smart_constructor" tactic3(conclude) := | |- _ => idtac end. +(* #[global] Instance eqit_secure_proper_chain + {E R1 R2} (RR : R1 -> R2 -> Prop) Label priv l (b1 b2 : bool) + (c : Chain (secure_eqit_mon (E := E) Label priv RR b1 b2 l)) : + Proper (eqit_secure Label priv eq false false l ==> + eqit_secure Label priv eq false false l ==> + flip impl) (elem c). +Proof. *) + + #[global] Instance eqit_secure_proper_chain {E R1 R2} (RR : R1 -> R2 -> Prop) Label priv l (b1 b2 : bool) (c : Chain (secure_eqit_mon (E := E) Label priv RR b1 b2 l)) : diff --git a/extra/Secure/SecureStateHandler.v b/extra/Secure/SecureStateHandler.v index 0435528a..1af46561 100644 --- a/extra/Secure/SecureStateHandler.v +++ b/extra/Secure/SecureStateHandler.v @@ -1,5 +1,5 @@ -From Stdlib Require Import Morphisms. From Coinduction Require Import all. +From Stdlib Require Import Morphisms. From ITree Require Import Basics.HeterogeneousRelations @@ -15,6 +15,7 @@ From ITree.Extra Require Import Secure.SecureEqBind Secure.SecureEqEuttHalt Secure.StrongBisimProper + Secure.SecureEqWcompat . Import Monads. @@ -93,10 +94,7 @@ Proof. do 2 red. intros t1 t2 Heq. apply EqAxiom.bisimulation_is_eq in Heq. subst; tauto. Qed. -(* The paco-era [proper_diverges_with_r] was a Proper instance for - [paco1 ... r] (a partial fixpoint). The coinduction analog is a - Proper for [elem c] (a chain element). Provided in chain form so it - applies inside [coinduction c CIH] proofs. *) + #[global] Instance proper_diverges_with_elem {E A} {P : forall A, E A -> Prop} (c : Chain (@diverges_with_mon E P A)) : Proper (eq_itree eq ==> iff) (elem c). @@ -138,15 +136,16 @@ Lemma diverges_secure_equiv_halt_r : forall A R1 R2 RR (e : E1 A) (k : A -> itre diverges_with (fun _ e => ~ leq (priv1 _ e) l) t. Proof. intros A R1 R2 RR e k t Hemp Hsec. revert t. coinduction c CIH. - intros. step in H0. red in H0. - cbn in *. remember (VisF e k) as ov. remember (observe t) as ot. - hinduction H0 before r; intros; inv Heqov; subst; ddestruction; subst; try discriminate; try contradiction; + intros. step in H. icbn. + cbn in *. remember (VisF e k) as ov. + remember (observe t) as ot. + hinduction H before S; intros; inv Heqov; ddestruction; subst; try discriminate; try contradiction; try contra_size; use_simpobs. - - rewrite Heqot. step. constructor. left. eapply IHsecure_eqitF; eauto. - - rewrite Heqot. step. constructor; eauto. - - rewrite Heqot. step. constructor. right. eapply CIH; eauto. - - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. apply H. - - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. contra_size. + - etau. eapply CIH. now step. + - evis. eapply CIH. now step. + - etau. + - evis. eapply CIH; eauto. apply H. + - evis. contra_size. Qed. Lemma diverges_secure_equiv_halt_l : forall A R1 R2 RR (e : E1 A) (k : A -> itree E1 R1) (t : itree E1 R2), @@ -155,64 +154,80 @@ Lemma diverges_secure_equiv_halt_l : forall A R1 R2 RR (e : E1 A) (k : A -> itre eqit_secure Label priv1 RR true true l t (Vis e k) -> diverges_with (fun _ e => ~ leq (priv1 _ e) l) t. Proof. - intros A R1 R2 RR e k t Hemp Hsec. revert t. coinduction c CIH. - intros. step in H0. red in H0. + intros A R1 R2 RR e k t Hemp Hsec. revert t. icoinduction c CIH. + intros. step in H. cbn in *. remember (VisF e k) as ov. remember (observe t) as ot. - hinduction H0 before r; intros; inv Heqov; subst; ddestruction; subst; try discriminate; try contradiction; + hinduction H before S; intros; inv Heqov; subst; ddestruction; subst; try discriminate; try contradiction; try contra_size; use_simpobs. - - rewrite Heqot. step. constructor. left. eapply IHsecure_eqitF; eauto. - - rewrite Heqot. step. constructor; eauto. - - rewrite Heqot. step. constructor. right. eapply CIH; eauto. - - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. contra_size. - - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. apply H. + - etau. eapply CIH. now step. + - evis. eapply CIH. now step. + - etau. + - evis. contra_size. + - evis. eapply CIH; eauto. apply H. Qed. Lemma diverges_with_spin : forall E A P, diverges_with P (@ITree.spin E A). Proof. - intros. coinduction c CIH. step. cbn. constructor. - right; auto. + intros. icoinduction c CIH. cbn. constructor. + exact CIH. Qed. + Lemma eqit_secure_silent_diverge : forall A B RR (t1 : itree E2 A) (t2 : itree E2 B), diverges_with (fun _ e => ~ leq (priv2 _ e) l) t1 -> diverges_with (fun _ e => ~ leq (priv2 _ e) l) t2 -> eqit_secure Label priv2 RR true true l t1 t2. Proof. intros A B RR. coinduction c CIH. intros. - step in H0. red in H0. step in H1. red in H1. - inversion H0; inversion H1; use_simpobs; try rewrite H; try rewrite H3. - - step. constructor. right. eapply CIH; eauto. + step in H; step in H0. + inversion H; inversion H0; use_simpobs; try rewrite H1; try rewrite H3. + - etau. - destruct (classic_empty B0). - + step. constructor; auto. pstep_reverse. clear H. clear CIH. - generalize dependent t. coinduction c CIH. intros. + + constructor; auto. step. clear H1. clear CIH. + (* TOUR annoying: need coinduction bug fix *) + change (gfp (diverges_with_mon (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) A) t) + with (diverges_with (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) t) in H2. + generalize dependent t. coinduction c' CIH'. intros. sinv H2; use_simpobs. - * rewrite H. step. cbn. unpriv_halt. - * rewrite H. step. cbn. unpriv_halt. - + step. cbn. unpriv_co. right. eapply CIH; eauto. apply H4. + (* TOUR: Why does rewrite H1 not work here? *) + * rewrite H1. icbn; cbn. + unpriv_halt. + * rewrite H1. icbn; cbn. unpriv_halt. eapply CIH'; eauto. apply H7. + + cbn. unpriv_co. eapply CIH; eauto. apply H4. - destruct (classic_empty B0). - + clear H4. clear CIH. - generalize dependent t2. coinduction c CIH. intros. - inversion H4; use_simpobs. - * rewrite H1. step. cbn. unpriv_halt. right. eapply CIH; eauto. step in H7. - * rewrite H1. step. cbn. unpriv_halt. right. eapply CIH; eauto. pstep_reverse. - + rewrite H4. step. cbn. unpriv_co. right. eapply CIH; eauto. apply H2. + + clear H4. clear CIH. step. + change (diverges_with' (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) B +(gfp (diverges_with_mon (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) +l) B)) (observe t2)) with (diverges_with' (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) B (diverges_with (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l)) (observe t2)) in H0. + generalize dependent t2. coinduction c' CIH. intros. + inversion H0; use_simpobs. + * rewrite H4. icbn; cbn. unpriv_halt. eapply CIH; eauto. now step in H7. + * rewrite H4. icbn; cbn. unpriv_halt. eapply CIH; eauto. unfold diverges_with. unstep. apply H7. + + rewrite H4. icbn; cbn. unpriv_co. eapply CIH; eauto. apply H2. - rewrite H4. destruct (classic_empty B0); destruct (classic_empty B1). - + step. cbn. unpriv_halt. contra_size. - + assert (diverges_with (fun _ e => ~ leq (priv2 _ e) l) (Vis e0 k0)). - { step. constructor; auto. } - rewrite <- H4. rewrite <- H4 in H9. clear H4. clear H1 CIH. generalize dependent t2. - coinduction c CIH. intros. sinv H9; use_simpobs. - * rewrite H1. step. cbn. unpriv_halt. - * rewrite H1. step. cbn. unpriv_halt. right. eapply CIH; eauto. apply H4. - + assert (diverges_with (fun _ e => ~ leq (priv2 _ e) l) (Vis e k)). - { step. constructor; auto. } - rewrite <- H. rewrite <- H in H9. clear H. clear H0 CIH. generalize dependent t1. - coinduction c CIH. intros. sinv H9; use_simpobs. - * rewrite H. step. cbn. unpriv_halt. - * rewrite H. step. cbn. unpriv_halt. right. eapply CIH; eauto. apply H0. - + step. cbn. unpriv_co. right. eapply CIH; eauto. apply H2. apply H5. + + icbn; cbn. unpriv_halt. contra_size. + + assert (diverges_with (fun _ e => ~ leq (priv2 _ e) l) (Vis e0 k0)) by + (step; constructor; auto). + rewrite <- H4. rewrite <- H4 in H9. clear H4. clear H1 CIH. step. + change (diverges_with' (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) B + (gfp (diverges_with_mon (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) B)) (observe t2)) + with + (diverges_with' (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) B + (diverges_with (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l)) (observe t2)) in H0. + generalize dependent t2. + coinduction c0 CIH. intros. sinv H9; use_simpobs. + * rewrite H1. icbn; cbn. unpriv_halt. eapply CIH; eauto. now step in H4. + * rewrite H1. icbn; cbn. unpriv_halt. eapply CIH; eauto. + specialize (H4 b). now step in H4. apply H4. + + assert (diverges_with (fun _ e => ~ leq (priv2 _ e) l) (Vis e k)) by + (step; constructor; auto). + rewrite <- H1. rewrite <- H1 in H9. clear H1. clear H CIH. step. generalize dependent t1. + coinduction c0 CIH. intros. sinv H9; use_simpobs. + * rewrite H. icbn; cbn. unpriv_halt. + * rewrite H. icbn; cbn. unpriv_halt. eapply CIH; eauto. apply H1. + + icbn; cbn. unpriv_co. eapply CIH; eauto. apply H2. apply H5. Qed. Lemma silent_diverges_eqit_secure_spin : forall A B (RR : A -> B -> Prop) (t : itree E2 A), @@ -221,22 +236,19 @@ Proof. intros. split. { intros. eapply eqit_secure_silent_diverge; eauto. apply diverges_with_spin. } revert t. coinduction c CIH. - intros t Ht. step in Ht. red in Ht. remember (observe t) as ot. + intros t Ht. step in Ht. remember (observe t) as ot. remember (observe ITree.spin) as otspin. - hinduction Ht before r; intros; subst; try discriminate; use_simpobs. - - rewrite Heqot. step. constructor. right. eapply CIH; eauto. rewrite Heqotspin. - step; constructor; auto. pstep_reverse. - - rewrite Heqot. step; constructor. left. eapply IHHt; eauto. - - eapply IHHt; eauto. assert (ITree.spin ≅ t2). - { clear IHHt Ht. generalize dependent t2. coinduction c CIH'. - intros. step in Heqotspin. red in Heqotspin. cbn in *. inversion Heqotspin0. - subst. eapply paco2_mon; eauto; intros; try contradiction. } + hinduction Ht before S; intros; subst; try discriminate; use_simpobs. + - rewrite Heqot. constructor. eapply CIH; eauto. rewrite Heqotspin. + step; constructor; auto. now unstep. + - rewrite Heqot. constructor. step. eapply IHHt; eauto. + - eapply IHHt; eauto. assert (ITree.spin ≅ t2) by sinv Heqotspin. apply EqAxiom.bisimulation_is_eq in H. subst; auto. - - rewrite Heqot. step. constructor; auto. right. eapply CIH; eauto. rewrite Heqotspin. - step; constructor; auto. pstep_reverse. - - rewrite Heqot. step. constructor; auto. left. eapply H0; eauto. - - rewrite Heqot. step; constructor; auto. right. eapply CIH; eauto. - rewrite Heqotspin. step; constructor; auto. pstep_reverse. eapply unpriv_e_eqit_secure; eauto. + - rewrite Heqot. constructor; auto; intros. eapply CIH; eauto. rewrite Heqotspin. + step; etau. now unstep. + - rewrite Heqot. evis. step. eapply H0; eauto. + - rewrite Heqot. evis. eapply CIH; eauto. + rewrite Heqotspin. step; constructor; auto. unstep. eapply unpriv_e_eqit_secure; eauto. Qed. @@ -246,14 +258,14 @@ Proof. split; intros. - red. intros. specialize (H0 s1). cbn. induction H0. - + step; constructor. split; try constructor. cbn. etransitivity; eauto. symmetry. auto. - + step; constructor; auto. pstep_reverse. eapply IHterminates; eauto. + + step; constructor. split; try constructor. cbn. etransitivity; [symmetry|]; eauto. + + step; constructor; auto. unstep. eapply IHterminates; eauto. + destruct H3. step. cbn. timeout 10 setoid_rewrite itree_eta' at 2. unpriv_ind. - pstep_reverse. eapply H2; eauto. + unstep. eapply H2; eauto. - cbn in *. red in H0. assert (RS s s). reflexivity. inv H. specialize (H0 a s s H1). remember (m s) as t. clear Heqt. - step in H0. red in H0. cbn in H0. remember (RetF (s,a) ) as oret. remember (observe t) as ot. + step in H0. cbn in H0. remember (RetF (s,a) ) as oret. remember (observe t) as ot. hinduction H0 before E1; intros; try discriminate; use_simpobs. + rewrite Heqot. injection Heqoret; intros; subst. destruct r1, H. cbn in *. constructor. symmetry. auto. @@ -284,133 +296,111 @@ Lemma diverge_with_respectful_handler : forall (R : Type) (t : itree E1 R), forall s, diverges_with (fun _ e => ~ leq (priv2 _ e) l) (interp_state handler t s). Proof. intro R. coinduction c CIH. intros t Hdiv s. sinv Hdiv; use_simpobs. - - rewrite H. rewrite interp_state_tau. step. constructor. right. eapply CIH; eauto. + - rewrite H. rewrite interp_state_tau. constructor. eapply CIH; eauto. - rewrite H. rewrite interp_state_vis. destruct (classic_empty B). + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. - specialize (DIVCHECK s). eapply paco1_mon with (r:= bot1). eapply diverges_with_bind; eauto. - intros; contradiction. + specialize (DIVCHECK s). step. eapply diverges_with_bind; eauto. + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. specialize (FINCHECK s). induction FINCHECK. - * rewrite bind_ret_l. cbn. step. constructor. right. eapply CIH; eauto. apply H0. - * rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. - * destruct H5. rewrite bind_vis. step. constructor; auto. left. eapply H4; eauto. + * rewrite bind_ret_l. cbn. etau. eapply CIH; eauto. apply H0. + * rewrite bind_tau. etau. step. eapply IHFINCHECK; eauto. + * destruct H5. rewrite bind_vis. evis. step. eapply H4; eauto. Qed. - - Lemma interp_eqit_secure_state : forall (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (t1 : itree E1 R1) (t2 : itree E1 R2), eqit_secure Label priv1 RR true true l t1 t2 -> state_eqit_secure true true RR (interp_state handler t1) (interp_state handler t2). Proof. intros R1 R2 RR. coinduction c CIH. intros t1 t2 Ht s1 s2 Hs. step in Ht. - red in Ht. remember (observe t1) as ot1. remember (observe t2) as ot2. - hinduction Ht before r; intros; use_simpobs. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_ret. step. constructor. auto. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_tau. step. constructor. - right. apply CIH; auto. - - rewrite Heqot1. rewrite interp_state_tau. step. constructor; auto. pstep_reverse. - - rewrite Heqot2. rewrite interp_state_tau. step. constructor; auto. pstep_reverse. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. - specialize (Hhandler A e). repeat rewrite bind_tau. - (* could use the bind closure here, but maybe we can do manually for now*) + genobs t1 ot1. genobs t2 ot2. + hinduction Ht before l; intros; use_simpobs. + - rewrite Heqot1. rewrite Heqot2. rewrite 2 interp_state_ret. eret. + - rewrite Heqot1. rewrite Heqot2. rewrite 2 interp_state_tau. etau. + - rewrite Heqot1. rewrite interp_state_tau. constructor; auto. eapply IHHt; eauto. + - rewrite Heqot2. rewrite interp_state_tau. constructor; auto. eapply IHHt; eauto. + - rewrite Heqot1. rewrite Heqot2. rewrite 2 interp_state_vis. + specialize (Hhandler A e). repeat rewrite bind_tau. repeat setoid_rewrite <- interp_state_tau. inv Hhandler; try contradiction. specialize (RESCHECK s1 s2 Hs). - eapply secure_eqit_bind'; eauto. intros [] [] []. simpl in *. subst. - repeat rewrite interp_state_tau. - step. constructor. right. eapply CIH; eauto. apply H. - - rewrite Heqot1. rewrite Heqot2. - rewrite interp_state_tau. rewrite interp_state_vis. + eapply secure_eqit_bind_chain; eauto. intros [] [] []. simpl in *. subst. + rewrite 2 interp_state_tau. constructor. eapply CIH; eauto. apply H. + - rewrite Heqot1. rewrite Heqot2. rewrite interp_state_tau. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction; try contra_size. specialize (FINCHECK s1). induction FINCHECK. - + rewrite bind_ret_l. pstep. constructor. right. - apply CIH. apply H. etransitivity; [symmetry |]; eauto. - + rewrite bind_tau. pstep. constructor 3; auto. pstep_reverse. - + rewrite bind_vis. pstep. destruct H2. constructor 9; auto. intros. pstep_reverse. - - rewrite Heqot1. rewrite Heqot2. - rewrite interp_state_tau. rewrite interp_state_vis. + + rewrite bind_ret_l. constructor. apply CIH. apply H. etransitivity; [symmetry |]; eauto. + + rewrite bind_tau. constructor 3; auto. eapply IHFINCHECK; eauto. + + rewrite bind_vis. destruct H2. constructor 9; auto. intros. eapply H1; eauto. + - rewrite Heqot1. rewrite Heqot2. rewrite interp_state_tau. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction; try contra_size. specialize (FINCHECK s2). induction FINCHECK. - + rewrite bind_ret_l. pstep. constructor. right. - apply CIH. apply H. etransitivity; eauto. - + rewrite bind_tau. pstep. constructor 4; auto. pstep_reverse. - + rewrite bind_vis. pstep. destruct H2. constructor 10; auto. intros. pstep_reverse. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. + + rewrite bind_ret_l. constructor. apply CIH. apply H. etransitivity; eauto. + + rewrite bind_tau. constructor 4; auto. eapply IHFINCHECK; eauto. + + rewrite bind_vis. destruct H2. constructor 10; auto. intros. eapply H1; eauto. + - rewrite Heqot1. rewrite Heqot2. rewrite 2 interp_state_vis. specialize (Hhandler _ e1) as He1. specialize (Hhandler _ e2) as He2. inv He1; inv He2; try contradiction; try contra_size. - eapply secure_eqit_bind' with (RR := prod_rel RS (fun _ _ => True)). - + intros [] [] ?. pstep. constructor. right. - apply CIH. apply H. simpl. apply H0. - + specialize (FINCHECK s1). specialize (FINCHECK0 s2). - induction FINCHECK. - * induction FINCHECK0. - -- simpl. pstep. constructor. split; auto. simpl. - transitivity s2; eauto. etransitivity; [symmetry |]; eauto. - -- pstep. constructor; auto. pstep_reverse. eapply IHFINCHECK0; eauto. - -- pstep. destruct H3. constructor; auto. intros. pstep_reverse. eapply H2; eauto. - * pstep. constructor; auto. pstep_reverse. eapply IHFINCHECK; eauto. - * pstep. destruct H2. constructor; auto. intros. pstep_reverse. eapply H1; eauto. - - rewrite Heqot1. rewrite interp_state_vis. specialize (Hhandler _ e). - inv Hhandler; try contradiction; try contra_size. + eapply secure_eqit_bind_chain with (RR := prod_rel RS (fun _ _ => True)). + 2: { intros [s1' a1] [s2' a2] [Hs' Hgar]. simpl in *. constructor. apply CIH. apply H. apply Hs'. } + specialize (FINCHECK s1). specialize (FINCHECK0 s2). induction FINCHECK. + + induction FINCHECK0. + * simpl. step. constructor. split; auto. simpl. transitivity s2; eauto. etransitivity; [symmetry |]; eauto. + * step. constructor; auto. unstep. eapply IHFINCHECK0; eauto. + * step. destruct H3. constructor; auto. intros. unstep. eapply H2; eauto. + + step. constructor; auto. unstep. eapply IHFINCHECK; eauto. + + step. destruct H2. constructor; auto. intros. unstep. eapply H1; eauto. + - rewrite Heqot1. rewrite interp_state_vis. pose proof (Hhandler _ e) as He. + inv He; try contradiction; try contra_size. specialize (FINCHECK s1). induction FINCHECK. - + rewrite bind_ret_l. pstep. constructor; auto. pstep_reverse. - eapply H0; eauto. simpl. etransitivity; [symmetry |]; eauto. - + rewrite bind_tau. pstep. constructor 3; auto. pstep_reverse. - + rewrite bind_vis. pstep. destruct H3. constructor 9; auto. intros. pstep_reverse. - - rewrite Heqot2. rewrite interp_state_vis. specialize (Hhandler _ e). - inv Hhandler; try contradiction; try contra_size. + + rewrite bind_ret_l. constructor; auto. eapply H0; eauto. simpl. etransitivity; [symmetry |]; eauto. + + rewrite bind_tau. constructor 3; auto. eapply IHFINCHECK; eauto. + + rewrite bind_vis. destruct H3. constructor 9; auto. intros. eapply H2; eauto. + - rewrite Heqot2. rewrite interp_state_vis. pose proof (Hhandler _ e) as He. + inv He; try contradiction; try contra_size. specialize (FINCHECK s2). induction FINCHECK. - + rewrite bind_ret_l. pstep. constructor 4; auto. pstep_reverse. - eapply H0; eauto. simpl. etransitivity; eauto. - + rewrite bind_tau. pstep. constructor 4; auto. pstep_reverse. - + rewrite bind_vis. pstep. destruct H3. constructor 10; auto. intros. pstep_reverse. - - - rewrite Heqot1. rewrite interp_state_vis. - rewrite Heqot2. rewrite interp_state_tau. - pose proof Hhandler as Hhandler'. - specialize (Hhandler' _ e). inv Hhandler'; try contradiction; try contra_size. - eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. + + rewrite bind_ret_l. constructor 4; auto. eapply H0; eauto. simpl. etransitivity; eauto. + + rewrite bind_tau. constructor 4; auto. eapply IHFINCHECK; eauto. + + rewrite bind_vis. destruct H3. constructor 10; auto. intros. eapply H2; eauto. + - rewrite Heqot1. rewrite interp_state_vis. rewrite Heqot2. rewrite interp_state_tau. + pose proof Hhandler as Hhandler'. specialize (Hhandler' _ e). inv Hhandler'; try contradiction; try contra_size. + step. eapply eqit_secure_silent_diverge. + eapply diverges_with_bind; eauto. - + step. constructor. left. eapply diverge_with_respectful_handler; eauto. - eapply diverges_secure_equiv_halt_r; eauto. - - - rewrite Heqot1. rewrite interp_state_tau. - rewrite Heqot2. rewrite interp_state_vis. - pose proof Hhandler as Hhandler'. - specialize (Hhandler' _ e). inv Hhandler'; try contradiction; try contra_size. - eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. - + step. constructor. left. eapply diverge_with_respectful_handler; eauto. - eapply diverges_secure_equiv_halt_l; eauto. + + step. constructor. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_r; eauto. + - rewrite Heqot1. rewrite interp_state_tau. rewrite Heqot2. rewrite interp_state_vis. + pose proof Hhandler as Hhandler'. specialize (Hhandler' _ e). inv Hhandler'; try contradiction; try contra_size. + step. eapply eqit_secure_silent_diverge. + + step. constructor. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_l; eauto. + eapply diverges_with_bind; eauto. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. - pose proof Hhandler as Hhandler'. - pose proof Hhandler as Hhandler''. + - rewrite Heqot1. rewrite Heqot2. rewrite 2 interp_state_vis. + pose proof Hhandler as Hhandler'. pose proof Hhandler as Hhandler''. specialize (Hhandler'' _ e2). inv Hhandler''; try contradiction; try contra_size. - specialize (Hhandler' _ e1). inv Hhandler'; try contradiction; try contra_size. - eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. - + eapply diverges_with_bind; eauto. - + specialize (FINCHECK s2). induction FINCHECK. - * rewrite bind_ret_l. step; constructor. left. cbn. - eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_r; eauto. - apply H. - * rewrite bind_tau. step; constructor. left. eapply IHFINCHECK; eauto. - * rewrite bind_vis. step. constructor. left. eapply H1; eauto. destruct H2; auto. - + eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. - * apply diverges_with_bind. specialize (Hhandler _ e1). inv Hhandler; try contradiction; try contra_size; auto. - * apply diverges_with_bind; auto. - - rewrite Heqot1. rewrite Heqot2. repeat rewrite interp_state_vis. - pose proof Hhandler as Hhandler'. - pose proof Hhandler as Hhandler''. - eapply paco2_mon with (r:= bot2); intros; try contradiction. eapply eqit_secure_silent_diverge. - + specialize (Hhandler'' _ e1). inv Hhandler''; try contradiction; try contra_size. - * specialize (FINCHECK s1). induction FINCHECK. - ++ rewrite bind_ret_l. step; constructor. cbn. left. - eapply diverge_with_respectful_handler. eapply diverges_secure_equiv_halt_l; eauto. apply H. - ++ rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. - ++ destruct H2. rewrite bind_vis. step. constructor; auto. left. eapply H1; eauto. - * apply diverges_with_bind; auto. - + specialize (Hhandler'' _ e2). inv Hhandler''; try contradiction; try contra_size. - apply diverges_with_bind; auto. -Qed. + { specialize (Hhandler' _ e1). inv Hhandler'; try contradiction; try contra_size. + step. eapply eqit_secure_silent_diverge. + - eapply diverges_with_bind; eauto. + - specialize (FINCHECK s2). induction FINCHECK. + + rewrite bind_ret_l. step. constructor. cbn. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_r; eauto. apply H. + + rewrite bind_tau. step. constructor. eapply IHFINCHECK; eauto. + + rewrite bind_vis. step. constructor; auto. intros. eapply H1; eauto. destruct H2; auto. } + { specialize (Hhandler' _ e1). inv Hhandler'; try contradiction; try contra_size. + step. eapply eqit_secure_silent_diverge. + + eapply diverges_with_bind; eauto. + + eapply diverges_with_bind; eauto. } + - rewrite Heqot1, Heqot2. rewrite 2 interp_state_vis. + pose proof Hhandler as Hhandler'. pose proof Hhandler as Hhandler''. + specialize (Hhandler'' _ e2). specialize (Hhandler' _ e1). + inv Hhandler'; try contradiction; try contra_size. + { inv Hhandler''; try contradiction; try contra_size. + step. eapply eqit_secure_silent_diverge. + - specialize (FINCHECK s1). induction FINCHECK. + + rewrite bind_ret_l. step. constructor. cbn. eapply diverge_with_respectful_handler; eauto. eapply diverges_secure_equiv_halt_l; eauto. apply H. + + rewrite bind_tau. step. constructor. eapply IHFINCHECK; eauto. + + rewrite bind_vis. step. constructor; auto. intros. eapply H1; eauto. destruct H2; auto. + - eapply diverges_with_bind; eauto. + } + { inv Hhandler''; try contradiction; try contra_size. + step. eapply eqit_secure_silent_diverge. + + eapply diverges_with_bind; eauto. + + eapply diverges_with_bind; eauto. } +Qed. End GeneralStateHandler. diff --git a/extra/Secure/SecureStateHandlerPi.v b/extra/Secure/SecureStateHandlerPi.v index 30f9631a..7298fd97 100644 --- a/extra/Secure/SecureStateHandlerPi.v +++ b/extra/Secure/SecureStateHandlerPi.v @@ -1,3 +1,4 @@ +From Coinduction Require Import all. From Stdlib Require Import Morphisms. From ITree Require Import Axioms @@ -22,8 +23,6 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. -From Paco Require Import paco. - Section GeneralStateHandler. Context (S : Type). @@ -54,8 +53,7 @@ Definition secure_in_empty_context {R} (m : stateT S (itree E2) R) := Lemma diverges_with_spin : forall E A P, diverges_with P (@ITree.spin E A). Proof. - intros. coinduction c CIH. step. cbn. constructor. - right; auto. + intros. icoinduction c CIH. cbn. etau. Qed. Lemma pi_eqit_secure_silent_divergel : forall A B RR (t1 : itree E2 A) (t2 : itree E2 B), @@ -63,15 +61,14 @@ Lemma pi_eqit_secure_silent_divergel : forall A B RR (t1 : itree E2 A) (t2 : itr pi_eqit_secure Label priv2 RR true true l t1 t2. Proof. intros A B RR. coinduction c CIH. intros. - step in H0. all : try apply mono_diverges_with. red in H0. - inversion H0; use_simpobs; try rewrite H; try rewrite H3. - - step. constructor; auto. right. eapply CIH; eauto. + step in H. all : try apply mono_diverges_with. + inversion H; use_simpobs; try rewrite H0; try rewrite H1. + - etau. - destruct (classic_empty B0). - + eapply paco2_mon with (r := bot2); intros; try contradiction. + + step. apply pi_eqit_secure_sym. apply pi_eqit_secure_private_halt; auto. - + step. cbn. constructor; auto. right. eapply CIH; eauto. - apply H1. + + icbn. evis. eapply CIH; eauto. apply H1. Qed. Lemma pi_eqit_secure_silent_diverger : forall A B RR (t1 : itree E2 A) (t2 : itree E2 B), @@ -87,9 +84,8 @@ Lemma silent_terminates_eqit_secure_ret : forall R (m : stateT S (itree E2) R), Proof. red. intros. specialize (H0 s1). cbn. induction H0. - - step; constructor. split; try constructor. cbn. etransitivity; eauto. symmetry. auto. - - step; constructor; auto. - left. eapply IHterminates; auto. + - step; constructor. split; try constructor. cbn. etransitivity; [symmetry|]; eauto. + - step; constructor; auto. apply IHterminates; auto. - apply pi_eqit_secure_priv_visl; auto. destruct H3. auto. Qed. @@ -103,14 +99,13 @@ Variant handler_respects_priv (A : Type) (e : E1 A) : Prop := Context (Hhandler : forall A (e : E1 A), handler_respects_priv A e). -Hint Resolve mono_diverges_with : paco. (* Lemma diverge_with_respectful_handler : forall (R : Type) (t : itree E1 R), diverges_with (fun _ e => ~ leq (priv1 _ e) l ) t -> forall s, diverges_with (fun _ e => ~ leq (priv2 _ e) l) (interp_state handler t s). Proof. intro R. coinduction c CIH. intros t Hdiv s. sinv Hdiv; use_simpobs. - - rewrite H. rewrite interp_state_tau. step. constructor. right. eapply CIH; eauto. + - rewrite H. rewrite interp_state_tau. step. constructor. eapply CIH; eauto. - rewrite H. rewrite interp_state_vis. destruct (classic_empty B). + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. @@ -118,7 +113,7 @@ Proof. intros; contradiction. + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. specialize (FINCHECK s). induction FINCHECK. - * rewrite bind_ret_l. cbn. step. constructor. right. eapply CIH; eauto. apply H0. + * rewrite bind_ret_l. cbn. step. constructor. eapply CIH; eauto. apply H0. * rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. * destruct H5. rewrite bind_vis. step. constructor; auto. left. eapply H4; eauto. Qed. @@ -126,117 +121,188 @@ Qed. Lemma diverges_with_bind : forall E R S P (t : itree E R) (k : R -> itree E S), diverges_with P t -> diverges_with P (ITree.bind t k). Proof. - intros E R1 R2 P. coinduction c CIH. - intros t k Ht. step in Ht. step. red. - unfold observe. cbn. red in Ht. inv Ht. - - cbn. constructor. right. eapply CIH; eauto. - - cbn. constructor; auto. right. eapply CIH; eauto. apply H0. + intros E R1 R2 P. icoinduction c CIH. + intros t k Ht. step in Ht. + unfold observe. inv Ht; cbn; simpobs. + - etau. + - evis. eapply CIH; eauto. apply H0. Qed. Lemma interp_pi_eqit_secure_state : forall (R1 R2 : Type) (RR : R1 -> R2 -> Prop) (t1 : itree E1 R1) (t2 : itree E1 R2), pi_eqit_secure Label priv1 RR true true l t1 t2 -> state_pi_eqit_secure true true RR (interp_state handler t1) (interp_state handler t2). Proof. - intros R1 R2 RR. ginit. gcofix CIH. intros t1 t2 Ht s1 s2 Hs. step in Ht. - red in Ht. + + intros R1 R2 RR. coinduction c CIH. intros t1 t2 Ht s1 s2 Hs. step in Ht. inv Ht; intros; use_simpobs. - - rewrite H, H0. repeat rewrite interp_state_ret. gstep. constructor. - split; auto. - - rewrite H, H0. repeat rewrite interp_state_tau. gstep. constructor. - gfinal. left. apply CIH; auto. - - rewrite H. rewrite interp_state_tau. gstep. constructor; auto. - gfinal. left. eapply CIH; eauto. apply simpobs in H0. rewrite <- itree_eta in H0. + - rewrite H, H0. repeat rewrite interp_state_ret. eret. + - rewrite H, H0. repeat rewrite interp_state_tau. etau. + - rewrite H. rewrite interp_state_tau. etau. + eapply CIH; eauto. apply simpobs in H0. rewrite <- itree_eta in H0. rewrite H0. auto. - - rewrite H0. rewrite interp_state_tau. gstep. constructor; auto. - gfinal. left. eapply CIH; eauto. apply simpobs in H. rewrite <- itree_eta in H. + - rewrite H0. rewrite interp_state_tau. etau. + eapply CIH; eauto. apply simpobs in H. rewrite <- itree_eta in H. rewrite H. auto. - - rewrite H, H0. + - rewrite H, H0. repeat rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. - eapply pi_secure_eqit_bind'; eauto. + eapply pi_eqit_secure_bind; eauto. intros. destruct H2; destruct r1; destruct r2; cbn in *; subst. - step. constructor. right. eapply CIH; eauto. apply H1. + constructor. eapply CIH; eauto. apply H1. - rewrite H, H0. rewrite interp_state_tau. - gstep. constructor; auto. rewrite interp_state_vis. + constructor; auto. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. red in RESCHECK. apply RESCHECK in Hs as He. remember (handler A e s1) as t3. clear Heqt3. - cbn in He. generalize dependent t3. gcofix CIH'. - intros t3 Ht3. sinv Ht3; use_simpobs; subst. - + destruct H4. cbn in *. destruct r1. cbn in *. - rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. - gfinal. left. eapply CIH'0. eapply CIH; eauto. cbn. apply H1. - + rewrite H2. rewrite bind_tau. gstep; constructor; auto. - gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. + generalize dependent t3. accumulate CIH'. + intros t3 Ht3. cbn in Ht3. sinv Ht3; use_simpobs; subst. + + destruct H4. destruct r1. cbn in *|-. + rewrite H2. rewrite bind_ret_l. constructor; auto. + eapply CIH; eauto. cbn. apply H1. + + rewrite H2. rewrite bind_tau. constructor; auto. + eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. auto. - + rewrite H2. rewrite bind_vis. gstep. constructor; auto. - intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. + + rewrite H2. rewrite bind_vis. constructor; auto. + intros. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. - rewrite H, H0. rewrite interp_state_tau. - gstep. constructor; auto. rewrite interp_state_vis. + constructor; auto. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. red in RESCHECK. symmetry in Hs. apply RESCHECK in Hs as He. remember (handler A e s2) as t3. clear Heqt3. - cbn in He. generalize dependent t3. gcofix CIH'. + cbn in He. generalize dependent t3. accumulate CIH'. intros t3 Ht3. sinv Ht3; use_simpobs; subst. - + destruct H4. cbn in *. destruct r1. cbn in *. - rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. - gfinal. left. eapply CIH'0. eapply CIH; eauto. cbn. apply H1. + + destruct H4. destruct r1. cbn in *|-. + rewrite H2. rewrite bind_ret_l. constructor; auto. + eapply CIH; eauto. cbn. apply H1. symmetry. auto. - + rewrite H2. rewrite bind_tau. gstep; constructor; auto. - gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. + + rewrite H2. rewrite bind_tau. constructor; auto. + eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. auto. - + rewrite H2. rewrite bind_vis. gstep. constructor; auto. - intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. + + rewrite H2. rewrite bind_vis. constructor; auto. + intros. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. - rewrite H, H0. repeat rewrite interp_state_vis. specialize (Hhandler A e1) as He1. specialize (Hhandler B e2) as He2. inv He1; inv He2; try contradiction. - eapply pi_secure_eqit_bind' with (RR := prod_rel RS top2); eauto. - + intros [? ?] [? ?] [? ?]. cbn in *. pstep. constructor. - right. eapply CIH; eauto. apply H1. - + cbn in *. apply pi_eqit_secure_RR_imp with + eapply pi_eqit_secure_bind with (RR := prod_rel RS top2); eauto. + + intros [? ?] [? ?] [? ?]. constructor. + eapply CIH; eauto. apply H1. + + apply pi_eqit_secure_RR_imp with (RR1 := rcompose (prod_rel RS (@top2 A unit)) (prod_rel RS top2) ). { intros. inv H2. destruct REL1. destruct REL2. split; auto. etransitivity; eauto. } - eapply pi_eqit_secure_trans_ret; eauto. + cbn in *. eapply pi_eqit_secure_trans_ret; eauto. apply pi_eqit_secure_sym. apply pi_eqit_secure_RR_imp with (RR1 := prod_rel RS top2). - { intros. inv H2. split; auto. symmetry. auto. } + { intros. inv H2. } eapply RESCHECK0. reflexivity. - - apply simpobs in H0. rewrite <- itree_eta in H0. rewrite H0. - rewrite H. rewrite interp_state_vis. + - apply simpobs in H0. rewrite <- itree_eta in H0. + rewrite H. rewrite H0. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. red in RESCHECK. apply RESCHECK in Hs as He. remember (handler A e s1) as t3. clear Heqt3. - cbn in He. generalize dependent t3. gcofix CIH'. + (* TOUR: PROBLEM + The proof we want: + cbn in He. generalize dependent t3. accumluate CIH'. intros t3 Ht3. sinv Ht3; use_simpobs; subst. + destruct H4. cbn in *. destruct r1. cbn in *. rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. - gfinal. left. eapply CIH; eauto. cbn. apply H1. + eapply CIH; eauto. cbn. apply H1. + rewrite H2. rewrite bind_tau. gstep; constructor; auto. - gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. + eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. auto. + rewrite H2. rewrite bind_vis. gstep. constructor; auto. - intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. + intros. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. - - apply simpobs in H. rewrite <- itree_eta in H. rewrite H. - rewrite H0. rewrite interp_state_vis. + + or coinduction instead of accumulate. problem: + we are at b (elem c), not elem c, so we cannot use accumulate. + *) + cbn in *|-. step in He. + remember (observe (Ret (s2, tt))). + icbn. rewrite observe_bind. + hinduction He before CIH; intros; try easy. + + inv H. inv Heqi. cbn in *. constructor; auto. cbn. + eapply CIH; eauto. simpobs_subst. apply H1. + + constructor 3; auto. step in H. rewrite Heqi in H. clear Heqi. + generalize dependent t1. + accumulate CIH'. + intros t1 H. icbn. + rewrite observe_bind. inv H. + * constructor; auto. + inv H5. cbn in *. + eapply CIH; eauto. apply H1. + * constructor; auto. eapply CIH'. rewrite <- H4. rewrite <- itree_eta'. now unstep. + * constructor; auto; intro. eapply CIH'; eauto. rewrite <- H4. rewrite <- itree_eta'. now unstep. + + constructor 9; auto. intros. + rename t4 into t5. + remember (k1 a) as t4. + specialize (H a). step in H. + rewrite <- Heqt4 in H. clear Heqt4. + generalize dependent t4. + accumulate CIH'. + intros t4 H. + icbn. rewrite observe_bind. + dependent induction H; simpobs; try easy. + * constructor; auto. + inv H. inv Heqi. cbn in *. + eapply CIH; eauto. apply H1. + * constructor; auto. eapply CIH'. unstep. apply H. + * constructor; auto; intro. eapply CIH'. unstep. apply H. + + - apply simpobs in H. rewrite <- itree_eta in H. + rewrite H0. rewrite H. rewrite interp_state_vis. specialize (Hhandler A e). inv Hhandler; try contradiction. - red in RESCHECK. symmetry in Hs. apply RESCHECK in Hs as He. - remember (handler A e s2) as t3. clear Heqt3. - cbn in He. generalize dependent t3. gcofix CIH'. + red in RESCHECK. symmetry in Hs. apply RESCHECK in Hs as He. + remember (handler A e s1) as t3. clear Heqt3. + (* TOUR: PROBLEM + The proof we want: + cbn in He. generalize dependent t3. accumluate CIH'. intros t3 Ht3. sinv Ht3; use_simpobs; subst. + destruct H4. cbn in *. destruct r1. cbn in *. rewrite H2. rewrite bind_ret_l. gstep. constructor; auto. - gfinal. left. cbn. eapply CIH; eauto. cbn. apply H1. - symmetry. auto. + eapply CIH; eauto. cbn. apply H1. + rewrite H2. rewrite bind_tau. gstep; constructor; auto. - gfinal. left. eapply CIH'; eauto. symmetry in H3. use_simpobs. + eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. auto. + rewrite H2. rewrite bind_vis. gstep. constructor; auto. - intros. gfinal. left. eapply CIH'; eauto. symmetry in H3. + intros. eapply CIH'; eauto. symmetry in H3. use_simpobs. rewrite <- H3. apply H4. -Qed. + or coinduction instead of accumulate. problem: + we are at b (elem c), not elem c, so we cannot use accumulate. + *) + cbn in *|-. step in He. + remember (observe (Ret (s1, tt))). + icbn. rewrite observe_bind. + hinduction He before CIH; intros; try easy. + + inv H. inv Heqi. cbn in *. constructor; auto. cbn. + eapply CIH; eauto. simpobs_subst. apply H1. now symmetry. + + constructor 4; auto. step in H. rewrite Heqi in H. clear Heqi. + generalize dependent t1. + accumulate CIH'. + intros t1 H. icbn. + rewrite observe_bind. inv H. + * constructor; auto. + inv H5. cbn in *. + eapply CIH; eauto. apply H1. now symmetry. + * constructor; auto. eapply CIH'. rewrite <- H4. rewrite <- itree_eta'. now unstep. + * constructor; auto; intro. eapply CIH'; eauto. rewrite <- H4. rewrite <- itree_eta'. now unstep. + + constructor 10; auto. intros. + rename t4 into t5. + remember (k1 a) as t4. + specialize (H a). step in H. + rewrite <- Heqt4 in H. clear Heqt4. + generalize dependent t4. + accumulate CIH'. + intros t4 H. + icbn. rewrite observe_bind. + dependent induction H; simpobs; try easy. + * constructor; auto. + inv H. inv Heqi. cbn in *. + eapply CIH; eauto. apply H1. now symmetry. + * constructor; auto. eapply CIH'. unstep. apply H. + * constructor; auto; intro. eapply CIH'. unstep. apply H. +Qed. End GeneralStateHandler. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 60176b32..77c9cb10 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -171,5 +171,4 @@ Tactic Notation "unstep" "in" ident(h) := unstep_in h. Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. -(* ----------------------------------------------------------------- *) - +(* ----------------------------------------------------------------- *) \ No newline at end of file diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index ea2c66e6..14e03be6 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -393,7 +393,12 @@ Tactic Notation "icoinduction" Ltac sinv H := repeat red in H; step in H; inv H. +Ltac simpobs_subst := step; simpobs; unstep. +Ltac apply_foralls := + repeat match goal with + | w : ?A, H : forall _ : ?A, _ |- _ => apply (H w) + end. (* [solve_eqitF] tries to solve a goal with a variant of [eqitF] by simplifiying, rewriting, and trying to apply assumptions. *) From c83d2a9fd7fb566fb5a86ead2e9901fe6ffc302e Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 22 May 2026 14:32:47 -0400 Subject: [PATCH 169/189] DONE --- extra/Secure/SecureEqProgInsens.v | 34 +++++++++++++++++--------- extra/Secure/SecureEqProgInsensFacts.v | 2 +- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index f9168b33..d61135ed 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -229,7 +229,7 @@ Ltac inv_eq_itree := #[local] Ltac taul ::= eapply pisecEqTauL; [auto|]. #[local] Ltac taur ::= eapply pisecEqTauR; [auto|]. -#[global] Instance pi_eqit_secure_proper_secureC {E R1 R2} Label priv (RR : R1 -> R2 -> Prop) l +(* #[global] Instance pi_eqit_secure_proper_secureC {E R1 R2} Label priv (RR : R1 -> R2 -> Prop) l (c : Chain (pi_secure_eqit_mon Label priv RR true true l)) : Proper (euttge (E := E) eq ==> euttge eq ==> flip impl) (elem c). Proof with eauto with itree. @@ -309,19 +309,31 @@ Proof with eauto with itree. apply eq_inv_VisF_weak in Heqot1 as (-> & ? & ?); cbn in *; subst. clear x Heqox. genobs y oy; genvis e k0 ot2. - revert y Heqoy. remember (TauF t2). + revert y Heqoy. + remember (TauF t2). hinduction EQy before oy; intros; subst; try easy. -- inv Heqi. constructor 6; intros; auto. eapply IH. apply REL. apply REL0. apply H. - -- constructor; auto. intros. step. eapply IHEQy; eauto. - now step; eapply IHEQy. + -- rewrite itree_eta' at 1. taur. + step. eapply IHEQy; eauto. * intros; subst; taul; step; eapply IHEQx... - + edestruct euttge_tau_r_inv; [step; eauto |]. - simpobs. - taur. - eapply IH. unstep in EQx. apply EQx. - assert (euttge eq (Tau x0) (Tau t2)) by (now step). - unstep; eapply euttge_tau_inv; eauto. -Qed. + + clear x' y' Heqox' Heqoy'. + genobs y oy. + genvis e k2 ot2. + revert y Heqoy. + hinduction EQy before oy; try easy. + * intros. + apply eq_inv_VisF_weak in Heqot2 as (-> & ? & ?); cbn in *; subst. + clear y Heqoy. + genobs x ox; genvis e k1 ot2. + revert x Heqox. + remember (TauF t1). + hinduction EQx before ox; intros; subst; try easy. + -- inv Heqi. constructor 7; intros; auto. eapply IH. apply REL. apply REL0. apply H. + -- rewrite itree_eta'. taul. + step. eapply IHEQx; eauto. + * intros; subst; taur; step; eapply IHEQy... + + +Qed. *) (* Chain-level congruence: rewriting under [eq_itree eq] on either side of a diff --git a/extra/Secure/SecureEqProgInsensFacts.v b/extra/Secure/SecureEqProgInsensFacts.v index 32242c47..73fde621 100644 --- a/extra/Secure/SecureEqProgInsensFacts.v +++ b/extra/Secure/SecureEqProgInsensFacts.v @@ -75,7 +75,7 @@ Ltac use_simpobs := (pi_eqit_secure Label priv RS b1 b2 l). Proof. intros t1 t1' EQ1 t2 t2' EQ2. - pose proof (pi_eqit_secure_eutt_proper (E := E) (RS := RS) (Label := Label) + pose proof (pi_eqit_secure_eq_itree_proper (E := E) (RS := RS) (Label := Label) (priv := priv) (l := l) b1 b2) as Hfwd. unfold Proper, respectful in Hfwd. split; intros H. From 782e7c12ad4971ddc89a4369b4894bc03604fba5 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 22 May 2026 15:30:51 -0400 Subject: [PATCH 170/189] Builds. Examples fixing. --- .claude/settings.json | 16 ++++++++- examples/ITreePredicatesExample.v | 6 ++-- examples/Nimp.v | 51 ++++++++++++++--------------- extra/Dijkstra/StateDelaySpec.v | 2 -- extra/ITrace/ITraceBind.v | 23 ------------- extra/ITrace/ITraceDefinition.v | 2 -- extra/ITrace/ITraceFacts.v | 2 +- extra/Secure/SecureEqProgInsens.v | 4 --- extra/Secure/SecureEqWcompat.v | 9 ++--- hoare_example/ImpHoare.v | 36 ++++++++++---------- secure_example/LabelledAsmHandler.v | 2 -- theories/Basics/Utils.v | 2 -- theories/Eq/Eqit.v | 12 +++++-- theories/Events/MapDefaultFacts.v | 1 - theories/Interp/RecursionFacts.v | 10 +++--- tutorial/AsmOptimization.v | 3 +- 16 files changed, 80 insertions(+), 101 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index ca63def7..f84099f6 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -4,7 +4,21 @@ "Bash(.venv/bin/python -c ' *)", "Bash(awk 'NR>=345 && /Qed\\\\.|Admitted\\\\./{print NR\": \"$0; exit}' extra/Secure/SecureStateHandler.v)", "Bash(awk 'NR>458' extra/Secure/SecureStateHandler.v)", - "Bash(cp /tmp/interp_good.txt /tmp/interp13g1.txt)" + "Bash(cp /tmp/interp_good.txt /tmp/interp13g1.txt)", + "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees hoare_example/ImpHoare.vo -j4)", + "Bash(make ImpHoare.vo -j4)", + "Bash(coqc -Q ../theories/ ITree -Q ../extra ITree.Extra -R . hoare ImpHoare.v)", + "Bash(awk 'NR>=420 && NR<=487 && /^Lemma|^Theorem|^Definition|^Proof/' ImpHoare.v)", + "Bash(awk -F: '$1<=486')", + "Bash(.venv/bin/python3 -)", + "Bash(cp /tmp/ImpHoare_probe.v ImpHoare_probe.v)", + "Bash(coqc -Q ../theories/ ITree -Q ../extra ITree.Extra -R . hoare ImpHoare_probe.v)", + "Bash(/Users/rogerab/claude/rocq-proving/.venv/bin/python -)", + "Bash(perl -i -pe 's/sinv H0\\\\. discriminate\\\\./sinv H0; try discriminate./g' ImpHoare.v)", + "Bash(git log *)" + ], + "additionalDirectories": [ + "/Users/rogerab/claude/rocq-proving" ] } } diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index ccedf0c5..f39ed506 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -107,9 +107,9 @@ Section Proper. rewrite !unfold_interpret_state. subst. step in H0. repeat red in H0. unfold interpret_stateF. destruct (observe x); inv H0; try discriminate; simpl; - try (gstep; constructor; eauto with paco; fail). + try (gstep; constructor; eauto; fail). ddestruction. - destruct e; gstep; econstructor; eauto with paco itree. + destruct e; gstep; econstructor; eauto with itree. Qed. End Proper. @@ -275,7 +275,7 @@ Proof. step in H0. repeat red in H0. destruct (observe t); cbn. - rewrite !bind_ret_l. gfinal. right. - eapply paco2_mon_bot; eauto with paco. apply INV. + eapply paco2_mon_bot; eauto. apply INV. - rewrite !bind_tau. gstep. econstructor. gbase. eapply CIH; auto. inversion H0. subst. assumption. diff --git a/examples/Nimp.v b/examples/Nimp.v index 50f95f5b..ee40f53d 100644 --- a/examples/Nimp.v +++ b/examples/Nimp.v @@ -1,4 +1,5 @@ (* A nondeterministic Imp *) +From Coinduction Require Import all. From Stdlib Require Import Relations. @@ -29,24 +30,24 @@ Example choose_loop : com := choose (loop skip) skip. (* Unlabeled small-step *) Module Unlabeled. -Reserved Infix "-->" (at level 80, no associativity). +Reserved Infix "--->" (at level 80, no associativity). Inductive step : relation com := | step_loop_stop c : - loop c --> skip + loop c ---> skip | step_loop_go c : - loop c --> (c ;; loop c) + loop c ---> (c ;; loop c) | step_choose_l c1 c2 : - choose c1 c2 --> c1 + choose c1 c2 ---> c1 | step_choose_r c1 c2 : - choose c1 c2 --> c2 + choose c1 c2 ---> c2 | step_seq_go c1 c1' c2 : - c1 --> c2 -> - (c1 ;; c2) --> (c1' ;; c2) + c1 ---> c2 -> + (c1 ;; c2) ---> (c1' ;; c2) | step_seq_next c2 : - (skip ;; c2) --> c2 + (skip ;; c2) ---> c2 -where "x --> y" := (step x y). +where "x ---> y" := (step x y). CoInductive infinite_steps (c : com) : Type := | more c' : step c c' -> infinite_steps c' -> infinite_steps c. @@ -65,30 +66,30 @@ End Unlabeled. Module Labeled. -Reserved Notation "s --> t" (at level 80, no associativity). -Reserved Notation "s ! b --> t" (at level 80, b at next level, no associativity). -Reserved Notation "s ? b --> t" (at level 80, b at next level, no associativity). +Reserved Notation "s ---> t" (at level 80, no associativity). +Reserved Notation "s ! b ---> t" (at level 80, b at next level, no associativity). +Reserved Notation "s ? b ---> t" (at level 80, b at next level, no associativity). Variant label := tau | bit (b : bool). Inductive step : label -> relation com := | step_loop_stop c : - loop c ! true --> skip + loop c ! true ---> skip | step_loop_go c : - loop c ! false --> (c ;; loop c) + loop c ! false ---> (c ;; loop c) | step_choose_l c1 c2 : - choose c1 c2 ! true --> c1 + choose c1 c2 ! true ---> c1 | step_choose_r c1 c2 : - choose c1 c2 ! false --> c2 + choose c1 c2 ! false ---> c2 | step_seq_go b c1 c1' c2 : - c1 ? b --> c2 -> - (c1 ;; c2) ? b --> (c1' ;; c2) + c1 ? b ---> c2 -> + (c1 ;; c2) ? b ---> (c1' ;; c2) | step_seq_next c2 : - (skip ;; c2) --> c2 + (skip ;; c2) ---> c2 -where "x --> y" := (step tau x y) -and "x ! b --> y" := (step (bit b) x y) -and "x ? b --> y" := (step b x y). +where "x ---> y" := (step tau x y) +and "x ! b ---> y" := (step (bit b) x y) +and "x ? b ---> y" := (step b x y). CoInductive infinite_steps (c : com) : Type := | more b c' : step b c c' -> infinite_steps c' -> infinite_steps c. @@ -105,8 +106,6 @@ Qed. End Labeled. -From Paco Require Import paco. - Module Tree. Variant nd : Type -> Prop := @@ -156,7 +155,6 @@ Qed. (* SAZ: the [~] notation for eutt wasn't working here. *) Lemma eval_one_loop : eval one_loop ≈ one_loop_tree. Proof. - einit. ecofix CIH. edrop. setoid_rewrite rec_as_interp. setoid_rewrite interp_bind. setoid_rewrite interp_vis. @@ -165,6 +163,7 @@ Proof. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. setoid_rewrite bind_vis. + step. evis. intros. setoid_rewrite bind_ret_l. destruct v. @@ -173,7 +172,7 @@ Proof. setoid_rewrite interp_recursive_call. setoid_rewrite eval_skip. setoid_rewrite bind_ret_l. - eauto with paco. + eauto. Qed. End Tree. diff --git a/extra/Dijkstra/StateDelaySpec.v b/extra/Dijkstra/StateDelaySpec.v index c95d184c..f81cbda4 100644 --- a/extra/Dijkstra/StateDelaySpec.v +++ b/extra/Dijkstra/StateDelaySpec.v @@ -2,8 +2,6 @@ From ExtLib Require Import Data.List Structures.Monad. -From Paco Require Import paco. - From ITree Require Import ITree ITreeFacts diff --git a/extra/ITrace/ITraceBind.v b/extra/ITrace/ITraceBind.v index 39ef522a..621a650a 100644 --- a/extra/ITrace/ITraceBind.v +++ b/extra/ITrace/ITraceBind.v @@ -503,29 +503,6 @@ Proof. rewrite Hspin in H0. eapply not_spin_eutt_ret; eauto. Qed. -(* Lemma eqitF_r_refl: forall (E : Type -> Type) (R: Type) r - (ot: itree' E R), - eqitF eq true true id (upaco2 (eqit_ eq true true id) r) - ot ot. -Proof. - intros E R r ot. - destruct ot; constructor; auto. - - apply pacobot2, reflexivity. - - apply pacobot2, reflexivity. -Qed. *) - -(* Lemma eqitF_mon: - forall (E : Type -> Type) (R : Type) (r : itree (EvAns E) R -> itree (EvAns E) R -> Prop) - (t1 : itree' (EvAns E) R) (t0 : itree' (EvAns E) R), - eqitF eq true true id (upaco2 (eqit_ eq true true id) bot2) t1 t0 -> - eqitF eq true true id (upaco2 (eqit_ eq true true id) r) t1 t0. -Proof. - intros E R r t1 t0' REL. - induction REL; constructor; eauto. - - apply pacobot2; auto. - - intros. apply pacobot2; auto. -Qed. *) - Lemma eqitF_observe_peel_cont_vis: forall (E : Type -> Type) (R S A : Type) (ev : E A) (ans : A) (k1 k2 : unit -> itree (EvAns E) R), diff --git a/extra/ITrace/ITraceDefinition.v b/extra/ITrace/ITraceDefinition.v index ed7d7234..81b11a1c 100644 --- a/extra/ITrace/ITraceDefinition.v +++ b/extra/ITrace/ITraceDefinition.v @@ -6,8 +6,6 @@ From ITree Require Import . -From Paco Require Import paco. - Import Monads. Import MonadNotation. Local Open Scope monad_scope. diff --git a/extra/ITrace/ITraceFacts.v b/extra/ITrace/ITraceFacts.v index f0e2ca42..a9b974ec 100644 --- a/extra/ITrace/ITraceFacts.v +++ b/extra/ITrace/ITraceFacts.v @@ -244,7 +244,7 @@ Proof. step in H0. repeat red in H0. genobs_clear t2 ot2. hinduction H before CIH; intros; clear t1; subst; eauto. - - remember (RetF r2) as ot1. hinduction H0 before CIH; intros; inv Heqot1; eauto with paco. + - remember (RetF r2) as ot1. hinduction H0 before CIH; intros; inv Heqot1; eauto. + constructor; auto. + constructor. eauto. - remember (TauF m1) as otm1. diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index d61135ed..77b5148b 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -335,10 +335,6 @@ Proof with eauto with itree. + Qed. *) - -(* Chain-level congruence: rewriting under [eq_itree eq] on either side of a - chain element. This replaces the paco-style [pi_eqit_secureC_wcompat_id] - (weak compatibility of the [eqitC] up-to-eq_itree closure). *) #[global] Instance pi_eqit_secure_proper_secureC {E R1 R2} b1 b2 Label priv (RR : R1 -> R2 -> Prop) l (c : Chain (pi_secure_eqit_mon Label priv RR b1 b2 l)) : Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) (elem c). diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index 43e8d7c3..e48a8d9f 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -27,7 +27,6 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. -(* ===== Small helper lemma (paco-free, kept verbatim from prior file) ===== *) Lemma eqit_secure_shalt_refl : forall E R1 R2 b1 b2 (RR : R1 -> R2 -> Prop) Label priv l A (e : E A) k1 k2, (~ leq (priv _ e) l) -> empty A -> @@ -65,9 +64,7 @@ Ltac contra_leq := | [ Hleq : leq ?a ?b, Hnleq : ~ leq ?a ?b |- _ ] => contradiction end. -(* Decide the size of every event index appearing in the goal classically - (paco's [find_size] preprocessing) so the shape-directed - [smart_constructor] always has the [empty]/[nonempty] facts it needs. *) +(* Decide the size of every event index appearing in the goal classically. *) Ltac resolve_sizes := repeat match goal with | |- context [ @VisF _ _ _ ?A _ _ ] => @@ -100,9 +97,7 @@ Ltac sec_hyp := Ltac sec_fin := solve [ sec_hyp | secure_halt_refl ]. (* Deep halt/halt subcases: no hypothesis pins the [CIH] intermediate, but it - can be taken to be the concrete halting [Vis] already on the other side — - a reflexive halt bridge. Mirrors paco's explicit - [econstructor 1 with (t1' := Vis e k)]. *) + can be taken to be the concrete halting [Vis] already on the other side. *) Ltac sec_reflexive := match goal with | |- eqit_secure _ _ _ _ _ _ ?X ?Y => diff --git a/hoare_example/ImpHoare.v b/hoare_example/ImpHoare.v index 6078c7dd..24a70216 100644 --- a/hoare_example/ImpHoare.v +++ b/hoare_example/ImpHoare.v @@ -1,6 +1,8 @@ +From Coinduction Require Import all. From Stdlib Require Import Arith Lia (* nia *) Morphisms + Program.Basics . From ExtLib Require Import @@ -14,6 +16,7 @@ From ITree Require Import Events.MapDefault Events.State Events.StateFacts + HeterogeneousRelations Props.Infinite. From ITree.Extra Require Import @@ -25,7 +28,6 @@ From ITree.Extra Require Import Dijkstra.StateDelaySpec . -From Paco Require Import paco. From hoare Require Import Imp. @@ -335,7 +337,7 @@ Proof. eapply Hp; try apply H0. unfold CategoryOps.iter, Iter_Kleisli, Basics.iter. unfold body. symmetry. auto. } - enough ((p \1/ any_infinite) (CategoryOps.iter body tt s) ). + enough ((Disj_unary _ p any_infinite) (CategoryOps.iter body tt s) ). { destruct H0; auto. unfold p. auto. } @@ -358,7 +360,7 @@ Proof. eapply Hq. -- cbn. rewrite H1. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. simpl. tau_steps. reflexivity. - -- unfold q. left. exists s. right. split; auto. reflexivity. + -- unfold q. left. exists s. right. split; auto. * do 2 red in H1. unfold interp_imp, interp_map in H1. eapply Hq. -- cbn. rewrite H1. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. @@ -404,22 +406,22 @@ Proof. -- cbn. rewrite H0. setoid_rewrite bind_ret_l. do 2 red in H1. unfold interp_imp, interp_map in H1. rewrite H1. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. simpl. tau_steps. reflexivity. - -- left. exists s0. right. split; auto. reflexivity. + -- left. exists s0. right. split; auto; reflexivity. * eapply Hq. -- cbn. rewrite H0. setoid_rewrite bind_ret_l. do 2 red in H1. unfold interp_imp, interp_map in H1. rewrite H1. setoid_rewrite bind_bind. setoid_rewrite bind_ret_l. simpl. tau_steps. reflexivity. - -- left. exists s0. right. split; auto. reflexivity. + -- left. exists s0. right. split; auto; reflexivity. * do 2 red in H1. do 2 red in H2. rewrite H1 in H2. apply eutt_inv_Ret in H2. injection H2. discriminate. * do 2 red in H1. do 2 red in H2. rewrite H1 in H2. apply eutt_inv_Ret in H2. injection H2. discriminate. * eapply Hq. -- cbn. rewrite H0. setoid_rewrite bind_ret_l. reflexivity. - -- left. exists s0. right. split; auto. reflexivity. + -- left. exists s0. right. split; auto; reflexivity. * eapply Hq. -- cbn. rewrite H0. setoid_rewrite bind_ret_l. reflexivity. - -- left. exists s0. right. split; auto. reflexivity. + -- left. exists s0. right. split; auto; reflexivity. * right. cbn. apply div_spin_eutt in H0. rewrite H0. rewrite <- spin_bind. apply spin_infinite. - set (fun (t : Delay (env * unit)) => @@ -451,7 +453,7 @@ Proof. { unfold p in H0. basic_solve; auto. sinv H0. } - enough ((p \1/ any_infinite) (CategoryOps.iter body tt s ) ). + enough ((Disj_unary _ p any_infinite) (CategoryOps.iter body tt s ) ). { destruct H0. - eapply Hp; try apply H0. rewrite <- Heutt. reflexivity. @@ -483,7 +485,7 @@ Proof. eapply Hq. -- setoid_rewrite bind_bind. rewrite H0. setoid_rewrite bind_ret_l. simpl. cbn. tau_steps. reflexivity. - -- unfold q. left. exists s. split; auto. right. reflexivity. + -- unfold q. left. exists s. split; auto; try (right; reflexivity). + red. intros. unfold p. unfold q in H0. basic_solve. * cbn in H0. destruct (eutt_reta_or_div t); basic_solve. @@ -535,7 +537,7 @@ Proof. -- unfold q. left. exists s''. split; try (right; reflexivity). unfold q in Ht. basic_solve. ++ rewrite H3 in H0. basic_solve. auto. sinv H0. injection REL; intros; subst; auto. - ++ rewrite H3 in H0. basic_solve. sinv H0. discriminate. + ++ rewrite H3 in H0. basic_solve. sinv H0; try discriminate. ++ rewrite <- H0 in H3. sinv H3. -- rewrite <- H0. setoid_rewrite bind_ret_l. setoid_rewrite bind_bind. @@ -553,7 +555,7 @@ Proof. reflexivity. -- unfold q. left. exists s''. split; try (right; reflexivity). unfold q in Ht. basic_solve. - ++ rewrite H1 in H0. basic_solve. sinv H0. discriminate. + ++ rewrite H1 in H0. basic_solve. sinv H0; try discriminate. ++ rewrite H1 in H0. basic_solve. sinv H0; injection REL; intros; subst; auto. ++ rewrite <- H0 in H1. sinv H1. * clear Ht. unfold q. right. apply div_spin_eutt in H0. @@ -938,10 +940,10 @@ Section SQRTEx. apply iter_inl_spin_state. apply ( diverge_if_not_square_nat_sqrt_aux) in H. unfold state_iter_arrow_rel. simpl. unfold body_arrow in H. simpl in *. generalize dependent s. coinduction c CIH. intros. - sinv H0; try apply not_wf_F_mono'. - step. eapply not_wf with (a' := (a',tt)). + sinv H; try apply not_wf_F_mono'. + eapply not_wf with (a' := (a',tt)). - symmetry. auto. - - right. auto. + - apply CIH; auto. Qed. (*maybe there is a better way to do it, prove that if the body can't prove a a spin, @@ -980,7 +982,7 @@ Section SQRTEx. Lemma prepost1_holds_nat_sqrt_loop : - verify_cond env (encode_dyn env ((pre1 /1\ fun s => lookup_default i 0 s = 0), post1) ) + verify_cond env (encode_dyn env ((Conj_unary _ pre1 (fun s => lookup_default i 0 s = 0), post1) )) (denote_imp (WHILE (~ i * i = n) DO i ::= i + 1 END)%imp ). Proof. rewrite compile_nat_sqrt_body. @@ -1008,7 +1010,7 @@ Section SQRTEx. * exists s0. split; auto. left. rewrite H. auto. * exists s0. split; auto. right. rewrite H. auto. } - match goal with |- p ?t => enough ((p \1/ any_infinite) t) end. + match goal with |- p ?t => enough ((Disj_unary _ p any_infinite) t) end. - destruct H; auto. exfalso. specialize (converge_if_square_nat_sqrt s Hi0 Hpre) as Hconv. basic_solve. @@ -1061,7 +1063,7 @@ Section SQRTEx. ** unfold get, inc_var. rewrite lookup_neq; auto. * eapply Hq. -- rewrite H. simpl. rewrite bind_ret_l. cbn. reflexivity. - -- red. exists s0. split; auto. right. split; auto. reflexivity. + -- red. exists s0. split; auto; try (right; split; auto; reflexivity). Qed. diff --git a/secure_example/LabelledAsmHandler.v b/secure_example/LabelledAsmHandler.v index 9583e599..a545c3e8 100644 --- a/secure_example/LabelledAsmHandler.v +++ b/secure_example/LabelledAsmHandler.v @@ -19,8 +19,6 @@ Import Monads. Import MonadNotation. Local Open Scope monad_scope. -From Paco Require Import paco. - (* Note that this definition sets considers all registers to be private *) Definition priv_asm (priv : privacy_map sensitivity_lat) (A : Type) (e : (Reg +' Memory +' (IOE sensitivity_lat)) A ) := diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 77c9cb10..f84362c8 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -3,8 +3,6 @@ From Coinduction Require Import all. Require Import Program.Tactics. -From Paco Require Import paco. - Ltac inv H := inversion H; clear H; subst; try easy. (* [inv], [rewrite_everywhere], [..._except] are general purpose *) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 14e03be6..e3d198ef 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1052,9 +1052,6 @@ Lemma euttge_proper_flip_euttgeC {E R1 R2} *) Abort. -(* The correct instance: first arg uses [euttge eq], second uses [eq_itree eq]. - Since euttgeC has b2=false, the right argument cannot skip taus, so we need - strong bisimulation (eq_itree eq) there, not euttge eq. *) #[global] Instance euttge_eq_proper_euttgeC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttgeC): Proper (euttge (E := E) eq ==> eq_itree eq ==> flip impl) (elem c _ _ RR). @@ -2527,6 +2524,15 @@ Proof. intros!. now rewrite H, H0. Qed. +#[global] +Instance eutt_cong_ {E R1 R2 RR}: + Proper (eq_itree eq ==> eq_itree eq ==> flip impl) + (@eqit E true true R1 R2 RR). +Proof. + intros!. now rewrite H, H0. +Qed. + + (* Specialization of [eutt_bind_eutt] to the recurrent case where [UU := eq] in order to avoid having to provide the relation manually everytime *) diff --git a/theories/Events/MapDefaultFacts.v b/theories/Events/MapDefaultFacts.v index e59f7eb1..38badfd4 100644 --- a/theories/Events/MapDefaultFacts.v +++ b/theories/Events/MapDefaultFacts.v @@ -18,7 +18,6 @@ From ITree Require Import Basics.HeterogeneousRelations ITree ITreeFacts - Eq.Paco2 Events.State Events.StateFacts Events.MapDefault. diff --git a/theories/Interp/RecursionFacts.v b/theories/Interp/RecursionFacts.v index 08926a62..22ec9188 100644 --- a/theories/Interp/RecursionFacts.v +++ b/theories/Interp/RecursionFacts.v @@ -131,7 +131,7 @@ Proof. rewrite <- (tau_eutt (interp _ _)). revert_until T. coinduction. intros. rewrite unfold_interp_mrec, unfold_interp. - destruct (observe c0); [| |destruct e]; simpl; eauto with paco. + destruct (observe c0); [| |destruct e]; simpl; eauto. - now taur. - taus. apply CIH. - taus. rewrite interp_mrec_bind. unfold mrec. @@ -198,9 +198,9 @@ Proof. 3: { destruct e; constructor. + apply CIH. ebind. apply Hfg. intros ? _ []. apply REL. - + intros; step; taus. eauto with paco itree. + + intros; step; taus. eauto with itree. } - 1,2: constructor; auto with paco itree. + 1,2: constructor; auto with itree. all: to_mon; rewrite unfold_interp_mrec, tau_euttge; auto. Qed. @@ -242,9 +242,9 @@ Proof. 3: { destruct e; constructor. + apply CIH. ebind. apply Hfg. intros ? _ []. apply REL. - + intros; step; taus. eauto with paco itree. + + intros; step; taus. eauto with itree. } - 1,2: constructor; auto with paco itree. + 1,2: constructor; auto with itree. all: to_mon; rewrite unfold_interp_mrec, tau_euttge; auto. Qed. diff --git a/tutorial/AsmOptimization.v b/tutorial/AsmOptimization.v index 95940ec4..0eca8e53 100644 --- a/tutorial/AsmOptimization.v +++ b/tutorial/AsmOptimization.v @@ -1,5 +1,5 @@ (* begin hide *) -Require Import Psatz. +From Stdlib Require Import Psatz. From Stdlib Require Import Lists.List @@ -140,7 +140,6 @@ Proof. unfold rel_asm. eapply interp_map_proper; try typeclasses eauto; auto. eapply interp_map_proper; try typeclasses eauto; auto. - reflexivity. } intros. destruct H as [J1 [J2 J3]]; subst. From 6981e4176dc9b359829355985e0256b5ec3742da Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 22 May 2026 21:23:52 -0400 Subject: [PATCH 171/189] It's done. --- .claude/settings.json | 10 ++++- examples/ITreePredicatesExample.v | 66 ++++++++++++++--------------- examples/Nimp.v | 37 ++++++++-------- extra/Secure/SecureStateHandlerPi.v | 20 +-------- extra/Secure/StrongBisimProper.v | 10 ++--- 5 files changed, 63 insertions(+), 80 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index f84099f6..fddaaf44 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -15,7 +15,15 @@ "Bash(coqc -Q ../theories/ ITree -Q ../extra ITree.Extra -R . hoare ImpHoare_probe.v)", "Bash(/Users/rogerab/claude/rocq-proving/.venv/bin/python -)", "Bash(perl -i -pe 's/sinv H0\\\\. discriminate\\\\./sinv H0; try discriminate./g' ImpHoare.v)", - "Bash(git log *)" + "Bash(git log *)", + "Bash(coqc -Q ../theories ITree -R . ITreeExamples Nimp.v)", + "Bash(grep -v \"deprecated\\\\|zoxide\\\\|Please\\\\|If the\\\\|https\\\\|Disable\\\\|^$\")", + "Bash(grep -rn 'Lemma __TRACKED_VAR__ \\\\|Lemma __TRACKED_VAR__:\\\\|Lemma __TRACKED_VAR__{' theories/)", + "Bash(sed -n '212,216p' theories/Interp/RecursionFacts.v)", + "Bash(sed -n '92,95p' theories/Interp/InterpFacts.v)", + "Bash(sed -n '84,87p' theories/Interp/InterpFacts.v)", + "Bash(sed -n '1583,1586p' theories/Eq/Eqit.v)", + "Bash(sed -n '222,232p' theories/Interp/RecursionFacts.v)" ], "additionalDirectories": [ "/Users/rogerab/claude/rocq-proving" diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index f39ed506..986ba07e 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -5,13 +5,14 @@ (* TODO: this infrastructure should be generalized and integrated into the library. *) +From Coinduction Require Import all. + Set Implicit Arguments. Set Contextual Implicit. From Stdlib Require Import Morphisms. -From Paco Require Import paco. From ExtLib Require Import Monads. @@ -19,10 +20,7 @@ From ExtLib Require Import From ITree Require Import Axioms ITree - ITreeFacts - Eq.Paco2. - -From Paco Require Import paco. + ITreeFacts. Import ITreeNotations. @@ -94,22 +92,25 @@ Section Proper. Local Open Scope signature_scope. - (* SAZ: This proof is a bit annoying. We can only rewrite under the "upto" paco2 predicate + (* + TOUR: This proof is now nice! + Old: + SAZ: This proof is a bit annoying. We can only rewrite under the "upto" paco2 predicate (see the eq_itree_paco instance in Eq), which means we have to introduce names, start the upto proof, do the rewrite, and then regeneralize for the CIH. It would be nicer if we could rewrite under (paco2 _ r). *) Instance proper_interpret_state {S R} : Proper ((@eq_itree (stateE S) R _ eq) ==> (@eq S) ==> (@eq_itree void1 (S * R) _ eq)) interpret_state. Proof. - ginit. gcofix CIH. + coinduction. intros x y H0 x2 y0 H1. rewrite (itree_eta (interpret_state x x2)). rewrite (itree_eta (interpret_state y y0)). rewrite !unfold_interpret_state. subst. step in H0. repeat red in H0. unfold interpret_stateF. destruct (observe x); inv H0; try discriminate; simpl; - try (gstep; constructor; eauto; fail). + try (constructor; eauto). ddestruction. - destruct e; gstep; econstructor; eauto with itree. + destruct e; econstructor; eauto with itree. Qed. End Proper. @@ -170,6 +171,8 @@ Definition NoGets_ {S R} (rec : itree (stateE S) R -> Prop) (t : itree (stateE S NoGetsF rec (observe t). + (* RTODO: Rewrite all this *) + (* TOUR: all of this greivance no longer applies! *) (* Next, we need to prove that [NoGets_] is a monotone function on relations, which means that paco can take its greatest fixpoint. Monotonicity of [NoGets_] depends on monotonicity of [NoGetsF]. @@ -189,26 +192,29 @@ Definition NoGets_ {S R} (rec : itree (stateE S) R -> Prop) (t : itree (stateE S that it isn't an instance of monotone1. *) -Lemma monotone_NoGetsF : forall {S R} t (r r' : itree (stateE S) R -> Prop) - (IN: NoGetsF r t) (LE: forall y, r y -> r' y), NoGetsF r' t. +Lemma NoGetsF_mono : forall {S R}, + Proper (leq ==> leq) (@NoGets_ S R). Proof. - pmonauto. + repeat intro. red. induction H0; constructor; now apply H. Qed. -(* SAZ: we need to do a couple of reductions to expose the structure of +Definition NoGets_mon S R := Build_mon (@NoGetsF_mono S R). + +(* TOUR: No need! *) +(* (* SAZ: we need to do a couple of reductions to expose the structure of the lemma so that pmonauto can work. Note that [cbn] and [simple] don't work here because they don't unfold the definitions. *) Lemma monotone_NoGets_ : forall {S R}, monotone1 (@NoGets_ S R). Proof. do 2 red. pmonauto. Qed. -Global Hint Resolve monotone_NoGets_ : paco. +Global Hint Resolve monotone_NoGets_ : paco. *) (* Finally, we can define the [NoGets] predicate by simply applying paco1 starting from bot1 (the least prediate). We would use paco2 and bot2 for a binary relation, paco3 and bot3 for ternary, etc. *) -Definition NoGets {S R} : itree (stateE S) R -> Prop := paco1 NoGets_ bot1. +Definition NoGets {S R} : itree (stateE S) R -> Prop := gfp (@NoGets_mon S R). (* Using a coinductive predicate -------------------------------------------- *) @@ -234,23 +240,20 @@ Lemma state_independent : forall {S R} (t:itree (stateE S) R) forall s s', ('(s,x) <- interpret_state t s ;; ret x) ≅ ('(s,x) <- interpret_state t s' ;; ret x). Proof. intros S R. - ginit. gcofix CIH. + coinduction. intros t H0 s s'. rewrite (itree_eta (interpret_state t s)). rewrite (itree_eta (interpret_state t s')). rewrite !unfold_interpret_state. unfold interpret_stateF. - step in H0. repeat red in H0. + step in H0. destruct (observe t); cbn. - - rewrite !bind_ret_l. gstep. econstructor. eauto. - - rewrite !bind_tau. gstep. econstructor. - gbase. eapply CIH. + - reflexivity. + - taus. eapply CIH. inversion H0. subst. assumption. - destruct e; cbn. + (* e is Get, which is ruled out by the NoGets predicate *) inversion H0. - + rewrite !bind_tau. - gstep. econstructor. gbase. eapply CIH. - inversion H0. ddestruction. assumption. + + reflexivity. Qed. @@ -266,7 +269,7 @@ Lemma state_independent_k : forall {S R U} (t:itree (stateE S) R) forall s s', (sx <- interpret_state t s ;; (k sx)) ≅ (sx <- interpret_state t s' ;; (k sx)). Proof. intros S R U. - ginit. gcofix CIH. + coinduction. intros t H0 k INV s s'. rewrite (itree_eta (interpret_state t s)). rewrite (itree_eta (interpret_state t s')). @@ -274,16 +277,13 @@ Proof. unfold interpret_stateF. step in H0. repeat red in H0. destruct (observe t); cbn. - - rewrite !bind_ret_l. gfinal. right. - eapply paco2_mon_bot; eauto. apply INV. - - rewrite !bind_tau. gstep. econstructor. - gbase. eapply CIH; auto. - inversion H0. subst. assumption. + - rewrite !bind_ret_l. step. apply INV. + - constructor. + eapply CIH; auto. + inversion H0. subst. assumption. - destruct e; cbn. + (* e is Get, which is ruled out by the NoGets predicate *) inversion H0. - + rewrite !bind_tau. - gstep. econstructor. gbase. eapply CIH; auto. - inversion H0. ddestruction. assumption. + + reflexivity. Qed. Theorem state_independent': forall {S R} (t:itree (stateE S) R) @@ -292,6 +292,4 @@ Theorem state_independent': forall {S R} (t:itree (stateE S) R) Proof. intros S R t H s s'. eapply state_independent_k; eauto. - intros. - reflexivity. Qed. diff --git a/examples/Nimp.v b/examples/Nimp.v index ee40f53d..5c793714 100644 --- a/examples/Nimp.v +++ b/examples/Nimp.v @@ -145,7 +145,7 @@ Definition one_loop_tree : itree nd unit := else trigger (Call tt))%itree tt. -Import Coq.Classes.Morphisms. +Import Stdlib.Classes.Morphisms. Lemma eval_skip: rec eval_def skip ≈ Ret tt. Proof. @@ -155,24 +155,23 @@ Qed. (* SAZ: the [~] notation for eutt wasn't working here. *) Lemma eval_one_loop : eval one_loop ≈ one_loop_tree. Proof. - setoid_rewrite rec_as_interp. - setoid_rewrite interp_bind. - setoid_rewrite interp_vis. - setoid_rewrite tau_eutt. - setoid_rewrite interp_ret. - setoid_rewrite bind_bind. - setoid_rewrite bind_ret_l. - setoid_rewrite bind_vis. - step. - evis. intros. - setoid_rewrite bind_ret_l. - destruct v. - - setoid_rewrite interp_ret. apply reflexivity. - - setoid_rewrite interp_bind. - setoid_rewrite interp_recursive_call. - setoid_rewrite eval_skip. - setoid_rewrite bind_ret_l. - eauto. + coinduction c CIH. + unfold eval, one_loop, one_loop_tree, rec, mrec. + rewrite 2 unfold_interp_mrec. cbn. + constructor. intros x. + rewrite 2 tau_euttge. + destruct x. + - rewrite 2 unfold_interp_mrec. cbn. reflexivity. + - ITree.fold_subst. + rewrite 2 bind_ret_. + rewrite interp_mrec_bind. + rewrite unfold_interp_mrec. cbn. + rewrite tau_euttge. + rewrite bind_ret_. + rewrite <- interp_mrec_bind. + rewrite bind_ret_. + rewrite 2 interp_mrec_trigger. + eapply CIH. Qed. End Tree. diff --git a/extra/Secure/SecureStateHandlerPi.v b/extra/Secure/SecureStateHandlerPi.v index 7298fd97..57be1365 100644 --- a/extra/Secure/SecureStateHandlerPi.v +++ b/extra/Secure/SecureStateHandlerPi.v @@ -99,25 +99,7 @@ Variant handler_respects_priv (A : Type) (e : E1 A) : Prop := Context (Hhandler : forall A (e : E1 A), handler_respects_priv A e). -(* -Lemma diverge_with_respectful_handler : forall (R : Type) (t : itree E1 R), - diverges_with (fun _ e => ~ leq (priv1 _ e) l ) t -> - forall s, diverges_with (fun _ e => ~ leq (priv2 _ e) l) (interp_state handler t s). -Proof. - intro R. coinduction c CIH. intros t Hdiv s. sinv Hdiv; use_simpobs. - - rewrite H. rewrite interp_state_tau. step. constructor. eapply CIH; eauto. - - rewrite H. rewrite interp_state_vis. - destruct (classic_empty B). - + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. - specialize (DIVCHECK s). eapply paco1_mon with (r:= bot1). eapply diverges_with_bind; eauto. - intros; contradiction. - + specialize (Hhandler _ e). destruct Hhandler; try contradiction; try contra_size. - specialize (FINCHECK s). induction FINCHECK. - * rewrite bind_ret_l. cbn. step. constructor. eapply CIH; eauto. apply H0. - * rewrite bind_tau. step. constructor. left. eapply IHFINCHECK; eauto. - * destruct H5. rewrite bind_vis. step. constructor; auto. left. eapply H4; eauto. -Qed. -*) + Lemma diverges_with_bind : forall E R S P (t : itree E R) (k : R -> itree E S), diverges_with P t -> diverges_with P (ITree.bind t k). Proof. diff --git a/extra/Secure/StrongBisimProper.v b/extra/Secure/StrongBisimProper.v index 629db825..47c70f3f 100644 --- a/extra/Secure/StrongBisimProper.v +++ b/extra/Secure/StrongBisimProper.v @@ -1,3 +1,4 @@ +From Coinduction Require Import all. From Stdlib Require Import Morphisms. From ITree Require Import @@ -6,14 +7,9 @@ From ITree Require Import Eq.EqAxiom . -From Paco Require Import paco. -(* Tau t ≈ t*) -(* eqit_secure (Vis e k) (k a) *) - -(* r => fun (f g : A -> B) => f = g*) -Global Instance strong_bisim_proper_paco {E R1 R2 F r} : - Proper (@eq_itree E R1 R1 eq ==> @eq_itree E R2 R2 eq ==> flip impl) (paco2 F r). +Global Instance strong_bisim_proper_chain {E R1 R2} b (c : Chain b) : + Proper (@eq_itree E R1 R1 eq ==> @eq_itree E R2 R2 eq ==> iff) (elem c). Proof. repeat intro. apply bisimulation_is_eq in H. apply bisimulation_is_eq in H0. subst. auto. From 9f8631cbcbd426070a5ad398cfd96a64c56a2083 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 26 May 2026 19:38:26 -0400 Subject: [PATCH 172/189] Done with Imp Examples. --- .claude/settings.json | 33 ++++- secure_example/LabelledImp2AsmCorrectness.v | 6 +- .../LabelledImp2AsmNoninterferencePres.v | 67 ++++----- .../LabelledImpInline2AsmCorrectness.v | 14 +- ...LabelledImpInline2AsmNoninterferencePres.v | 22 ++- secure_example/LabelledImpInlineTypes.v | 27 ++-- .../LabelledImpInlineTypesProgInsens.v | 127 +++++++++--------- secure_example/LabelledImpTypes.v | 13 +- secure_example/LabelledImpTypesProgInsens.v | 92 +++++++------ secure_example/Lattice.v | 3 +- 10 files changed, 209 insertions(+), 195 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index fddaaf44..9d03ec44 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -23,7 +23,38 @@ "Bash(sed -n '92,95p' theories/Interp/InterpFacts.v)", "Bash(sed -n '84,87p' theories/Interp/InterpFacts.v)", "Bash(sed -n '1583,1586p' theories/Eq/Eqit.v)", - "Bash(sed -n '222,232p' theories/Interp/RecursionFacts.v)" + "Bash(sed -n '222,232p' theories/Interp/RecursionFacts.v)", + "Bash(make LabelledImpTypes.vo)", + "Bash(grep -v \"zoxide\\\\|Please ensure\\\\|If the issue\\\\|https\\\\|Disable\\\\|deprecated\\\\|^$\")", + "Bash(grep -v \"zoxide\\\\|Please ensure\\\\|If the issue\\\\|https\\\\|Disable\\\\|deprecated\\\\|replaced by\\\\|^$\")", + "Bash(sed -n '170,185p' extra/Secure/SecureEqProgInsensFacts.v)", + "Bash(sed -n '1,30p' secure_example/LabelledImpTypesProgInsens.v)", + "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example)", + "Bash(awk 'NR>=325 && NR<=335 && /Lemma|Proof/' LabelledImpTypesProgInsens.v)", + "Bash(awk -F: '$1<=348')", + "Bash(grep -E \"line [0-9]+|Error|\\\\.v$|compile\")", + "Bash(grep -v \"zoxide\\\\|Please\\\\|If the\\\\|https\\\\|Disable\\\\|^$\")", + "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example -j4)", + "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example LabelledImp2AsmCorrectness.vo)", + "Bash(grep -v \"zoxide\\\\|Please\\\\|If the\\\\|https\\\\|Disable\\\\|deprecated\\\\|replaced by\\\\|^$\")", + "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example LabelledImp2AsmNoninterferencePres.vo)", + "Bash(coqc -Q ../theories/ ITree -Q ../extra/ ITree.Extra -R . SecureExample LabelledImp2AsmNoninterferencePres.v)", + "Bash(make all *)", + "Bash(.venv/bin/python check_proof.py --file /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v --line 268 --show-goal)", + "Bash(.venv/bin/python check_proof.py --help)", + "Bash(.venv/bin/python check_proof.py /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v --toc)", + "Bash(.venv/bin/python check_proof.py /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v state_secure_eutt_throw_ret_aux)", + "Bash(.venv/bin/python check_proof.py /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v state_secure_eutt_equiv_ret_aux 'intros R RR t1 t2 observer r1 r2 HRR Hr12 Hr1 Hr2 s1 s2 reg1 regs2 Hs12.' 'set \\(\\(product_rel \\(product_rel top2 \\(labelled_equiv Γ observer\\)\\) RR\\)\\) as Rst.' 'apply eqit_secure_RR_imp with \\(RR1 := rcompose Rst Rst\\).')", + "Bash(grep -nB 1 -A 8 \"secure_eqit_mon\\\\|secure_eqit_mon_func\\\\|Build_mon\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", + "Bash(grep -nB 2 -A 4 \"secure_eqitF_mono \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", + "Bash(grep -nB 1 -A 3 \"eqit_mon\\\\|eqitF_mono \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/theories/Eq/Eqit.v)", + "Bash(grep -nB 1 -A 3 \"Definition eqit_secure\\\\|Arguments eqit_secure\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", + "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_sym\\\\|Lemma flip_eqit_secure\\\\|Lemma eqit_secure_RR_imp\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", + "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_RR_imp\\\\|Lemma pi_eqit_secure_RR_imp\\\\|Lemma pi_eqit_secure_sym\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqProgInsens.v)", + "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_RR_imp\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqEuttHalt.v)", + "Bash(grep -nB 1 -A 6 \"Lemma compile_correct\\\\|state_invariant \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", + "Bash(grep -nB 2 -A 8 \"^Theorem compile_correct\\\\|^Lemma compile_correct\\\\| compile_correct \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", + "Bash(grep -nB 2 -A 6 \"^ Definition equivalent\\\\|equivalent.*stmt\\\\|equivalent \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)" ], "additionalDirectories": [ "/Users/rogerab/claude/rocq-proving" diff --git a/secure_example/LabelledImp2AsmCorrectness.v b/secure_example/LabelledImp2AsmCorrectness.v index 1f25afad..79939ad7 100644 --- a/secure_example/LabelledImp2AsmCorrectness.v +++ b/secure_example/LabelledImp2AsmCorrectness.v @@ -545,7 +545,7 @@ Section Linking. setoid_rewrite unfold_iter_ktree. cbn. repeat rewrite bind_bind. repeat setoid_rewrite bind_ret_l. cbn. rewrite split_fin_sum_L. cbn. rewrite bind_bind. setoid_rewrite bind_ret_l. cbn. - match goal with |- eqit eq true true (ITree.bind _ ?k ) _ => remember k as k_id end. + match goal with |- eqit true true eq (ITree.bind _ ?k ) _ => remember k as k_id end. assert (HK : forall r, k_id r ≈ Ret r ). { subst. intros. destruct (split_fin_sum _ _ r) as [d | c] eqn : Heqr . @@ -755,13 +755,13 @@ Proof. - repeat setoid_rewrite bind_ret_l. cbn. unfold id. unfold merge, case_, Case_sub, case_, Case_Kleisli, case_sum, to_bif, ToBifunctor_Fun_fin. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } rewrite HH. reflexivity. + intros; subst. destruct r2. cbn. apply eqit_Ret. apply unique_fin. cbn. lia. - repeat setoid_rewrite bind_ret_l. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } rewrite HH. reflexivity. + intros; subst. apply eqit_Ret. apply unique_fin. destruct r2. cbn. lia. diff --git a/secure_example/LabelledImp2AsmNoninterferencePres.v b/secure_example/LabelledImp2AsmNoninterferencePres.v index 277c509a..b2cbc9c2 100644 --- a/secure_example/LabelledImp2AsmNoninterferencePres.v +++ b/secure_example/LabelledImp2AsmNoninterferencePres.v @@ -1,3 +1,4 @@ +From Coinduction Require Import all. From Stdlib Require Import Program.Basics Morphisms. From ITree Require Import @@ -107,27 +108,22 @@ Lemma compile_preserves_ps_ni : forall (c : stmt _), eqit_secure _ (priv_exc_io _) (product_rel asm_eq eq) true true l (interp_asm (denote_asm (compile c) f0) σ1) ((interp_asm (denote_asm (compile c) f0)) σ2). Proof. - intros c Hsecc [regs1 mem1] [regs2 mem2]. intros Hasmeq. - assert (labelled_equiv _ Γ l mem1 mem1). reflexivity. - assert (labelled_equiv _ Γ l mem2 mem2). reflexivity. - specialize (compile_correct c) as Heutt. do 2 red in Heutt. - assert (Renv mem1 mem1). reflexivity. - assert (Renv mem2 mem2). reflexivity. + intros c Hsecc [regs1 mem1] [regs2 mem2] Hasmeq. do 2 red in Hsecc. - assert (Hmem12 : labelled_equiv _ Γ l mem1 mem2). auto. + assert (Hmem12 : labelled_equiv _ Γ l mem1 mem2) by auto. specialize (Hsecc mem1 mem2 Hmem12) as Hsecc'. - specialize (Heutt mem1 mem1 regs1 H1) as Heutt1. - specialize (Heutt mem2 mem2 regs2 H2) as Heutt2. - specialize (eutt_secure_eqit_secure) as Htrans. - eapply Htrans in Heutt1 as Heutt1'; eauto. - eapply Htrans in Heutt2 as Heutt2'; eauto. - eapply Htrans in Hsecc'; eauto. - apply eqit_secure_sym in Hsecc'. - eapply Htrans in Hsecc'; eauto. - apply eqit_secure_sym in Hsecc'. - eapply SecureEqEuttHalt.eqit_secure_RR_imp; try apply Hsecc'; eauto. - intros. - apply state_rel_aux'; auto. + specialize (compile_correct c) as Heutt. do 2 red in Heutt. + assert (HRenv1 : Renv mem1 mem1) by reflexivity. + assert (HRenv2 : Renv mem2 mem2) by reflexivity. + specialize (Heutt mem1 mem1 regs1 HRenv1) as Heutt1. + specialize (Heutt mem2 mem2 regs2 HRenv2) as Heutt2. + pose proof (eutt_secure_eqit_secure _ _ _ _ _ _ _ + (product_rel (labelled_equiv sensitivity_lat Γ l) (@eq unit)) + _ _ _ _ Hsecc' Heutt2) as Hcomp1. + apply eqit_secure_sym in Hcomp1. + pose proof (eutt_secure_eqit_secure _ _ _ _ _ _ _ _ _ _ _ _ Hcomp1 Heutt1) as Hcomp2. + apply eqit_secure_sym in Hcomp2. + eapply SecureEqEuttHalt.eqit_secure_RR_imp; [ apply state_rel_aux' | apply Hcomp2 ]. Qed. @@ -164,27 +160,22 @@ Lemma compile_preserves_pi_ni : forall (c : stmt _), pi_eqit_secure _ (priv_exc_io _) (product_rel asm_eq eq) true true l (interp_asm (denote_asm (compile c) f0) σ1) ((interp_asm (denote_asm (compile c) f0)) σ2). Proof. - intros c Hsecc [regs1 mem1] [regs2 mem2]. intros Hasmeq. - assert (labelled_equiv _ Γ l mem1 mem1). reflexivity. - assert (labelled_equiv _ Γ l mem2 mem2). reflexivity. - specialize (compile_correct c) as Heutt. do 2 red in Heutt. - assert (Renv mem1 mem1). reflexivity. - assert (Renv mem2 mem2). reflexivity. + intros c Hsecc [regs1 mem1] [regs2 mem2] Hasmeq. do 2 red in Hsecc. - assert (Hmem12 : labelled_equiv _ Γ l mem1 mem2). auto. + assert (Hmem12 : labelled_equiv _ Γ l mem1 mem2) by auto. specialize (Hsecc mem1 mem2 Hmem12) as Hsecc'. - specialize (Heutt mem1 mem1 regs1 H1) as Heutt1. - specialize (Heutt mem2 mem2 regs2 H2) as Heutt2. - specialize (pi_eqit_secure_mixed_trans) as Htrans. - eapply Htrans in Heutt1 as Heutt1'; eauto. - eapply Htrans in Heutt2 as Heutt2'; eauto. - eapply Htrans in Hsecc'; eauto. - apply pi_eqit_secure_sym in Hsecc'. - eapply Htrans in Hsecc'; eauto. - apply pi_eqit_secure_sym in Hsecc'. - eapply pi_eqit_secure_RR_imp; try apply Hsecc'; eauto. - intros. - apply state_rel_aux'; auto. + specialize (compile_correct c) as Heutt. do 2 red in Heutt. + assert (HRenv1 : Renv mem1 mem1) by reflexivity. + assert (HRenv2 : Renv mem2 mem2) by reflexivity. + specialize (Heutt mem1 mem1 regs1 HRenv1) as Heutt1. + specialize (Heutt mem2 mem2 regs2 HRenv2) as Heutt2. + pose proof (pi_eqit_secure_mixed_trans _ _ _ _ _ _ + (product_rel (labelled_equiv sensitivity_lat Γ l) (@eq unit)) + _ _ _ _ _ _ _ Hsecc' Heutt2) as Hcomp1. + apply pi_eqit_secure_sym in Hcomp1. + pose proof (pi_eqit_secure_mixed_trans _ _ _ _ _ _ _ _ _ _ _ _ _ _ Hcomp1 Heutt1) as Hcomp2. + apply pi_eqit_secure_sym in Hcomp2. + eapply pi_eqit_secure_RR_imp; [ apply state_rel_aux' | apply Hcomp2 ]. Qed. diff --git a/secure_example/LabelledImpInline2AsmCorrectness.v b/secure_example/LabelledImpInline2AsmCorrectness.v index 048281c5..983c67f5 100644 --- a/secure_example/LabelledImpInline2AsmCorrectness.v +++ b/secure_example/LabelledImpInline2AsmCorrectness.v @@ -553,7 +553,7 @@ Section Linking. setoid_rewrite unfold_iter_ktree. cbn. repeat rewrite bind_bind. repeat setoid_rewrite bind_ret_l. cbn. rewrite split_fin_sum_L. cbn. rewrite bind_bind. setoid_rewrite bind_ret_l. cbn. - match goal with |- eqit eq true true (ITree.bind _ ?k ) _ => remember k as k_id end. + match goal with |- eqit true true eq (ITree.bind _ ?k ) _ => remember k as k_id end. assert (HK : forall r, k_id r ≈ Ret r ). { subst. intros. destruct (split_fin_sum _ _ r) as [d | c] eqn : Heqr . @@ -761,13 +761,13 @@ Proof. - repeat setoid_rewrite bind_ret_l. cbn. unfold id. unfold merge, case_, Case_sub, case_, Case_Kleisli, case_sum, to_bif, ToBifunctor_Fun_fin. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } timeout 5 rewrite HH. reflexivity. + intros; subst. destruct r2. cbn. apply eqit_Ret. apply unique_fin. cbn. lia. - repeat setoid_rewrite bind_ret_l. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } rewrite HH. reflexivity. + intros; subst. apply eqit_Ret. apply unique_fin. destruct r2. cbn. lia. @@ -1206,7 +1206,7 @@ Section Correctness. Lemma exception_to_sum_correct_instr_aux: forall i : instr, - eqit (fun (x : unit + sensitivity) (_ : unit) => x = inl tt) true true + eqit true true (fun (x : unit + sensitivity) (_ : unit) => x = inl tt) (throw_prefix (E := E2) (denote_instr i)) (denote_instr i). Proof. intros i. destruct i; cbn; repeat setoid_rewrite throw_prefix_bind; @@ -1275,9 +1275,9 @@ Section Correctness. Proof. intros. rewrite <- bind_ret_r. apply eqit_flip in H. eapply eqit_bind'; eauto. intros. red in H0. destruct r2 as [ ? | [ | ] ]; cbn. - - setoid_rewrite (unique_fin _ r1 f0); auto. reflexivity. - - setoid_rewrite (unique_fin _ r1 (fS f0)); auto. reflexivity. - - setoid_rewrite (unique_fin _ r1 (fS (fS f0))); auto. reflexivity. + - setoid_rewrite (unique_fin _ r1 f0); auto; try reflexivity. + - setoid_rewrite (unique_fin _ r1 (fS f0)); auto; try reflexivity. + - setoid_rewrite (unique_fin _ r1 (fS (fS f0))); auto; try reflexivity. Qed. Lemma exception_to_sum_correct_eutt_eq (p : asm 1 1) : diff --git a/secure_example/LabelledImpInline2AsmNoninterferencePres.v b/secure_example/LabelledImpInline2AsmNoninterferencePres.v index 7bebca36..896eb294 100644 --- a/secure_example/LabelledImpInline2AsmNoninterferencePres.v +++ b/secure_example/LabelledImpInline2AsmNoninterferencePres.v @@ -78,7 +78,7 @@ Proof. specialize (eutt_secure_eqit_secure) as Htrans. eapply Htrans in Heutt; eauto. eapply SecureEqEuttHalt.eqit_secure_RR_imp; try apply Heutt. - intros. inv PR. inv REL1. destruct x0. destruct r2. clear Hsecs' Htrans Heutt. cbn in *. + intros x0 x1 PR. inv PR. inv REL1. destruct x0. destruct r2. clear Hsecs' Htrans Heutt. cbn in *. destruct x1. constructor; auto. constructor; auto. cbn. destruct REL2. cbn in *. destruct H1. cbn in *. etransitivity; eauto. Qed. @@ -103,19 +103,14 @@ Proof. ). { eapply SecureEqEuttHalt.eqit_secure_RR_imp with (RR1 := rcompose _ _ ). - 2 : eapply Htrans; eauto. 2 : eapply Hcomp. 2 : reflexivity. - intros. inv PR. inv REL1. inv REL2. inv H1. inv H3. constructor; auto. + 2 : eapply Htrans; eauto. + intros x0 x1 PR. inv PR. inv REL1. inv REL2. inv H1. inv H3. constructor; auto. constructor; auto. etransitivity; eauto. } - eapply Htrans in Hsec''; eauto. - 2 : { - apply eqit_secure_sym. eapply Hcomp. reflexivity. - } - Unshelve. 2 : apply regs1. - eapply SecureEqEuttHalt.eqit_secure_RR_imp; try apply Hsec''. - intros. inv PR. inv REL1. inv REL2. inv H1. inv H3. constructor; auto. - constructor; auto. etransitivity; eauto. etransitivity; eauto. symmetry. eauto. - reflexivity. + eapply SecureEqEuttHalt.eqit_secure_RR_imp. + 2 : { eapply Htrans. apply eqit_secure_sym. eapply Hcomp. reflexivity. apply Hsec''. } + intros x0 x1 PR. inv PR. inv REL1. inv REL2. inv H1. inv H3. constructor; auto. + constructor; auto. etransitivity. symmetry. eassumption. assumption. Qed. @@ -171,8 +166,7 @@ Proof. eapply Htrans in Heutt1; eauto. apply pi_eqit_secure_sym. eapply pi_eqit_secure_RR_imp; eauto. unfold flip. intros. inv H3. inv REL1. inv REL2. inv H3. constructor; auto. - constructor; auto. etransitivity; eauto. etransitivity; eauto. symmetry. eauto. - reflexivity. + constructor; auto. etransitivity. symmetry. eassumption. assumption. Qed. diff --git a/secure_example/LabelledImpInlineTypes.v b/secure_example/LabelledImpInlineTypes.v index a883e745..f5446aad 100644 --- a/secure_example/LabelledImpInlineTypes.v +++ b/secure_example/LabelledImpInlineTypes.v @@ -140,7 +140,7 @@ Proof. eapply secure_eqit_bind; try apply IHe1; eauto. intros [? ?] [? ?] [? ?]. inv H1. cbn in *. destruct p; destruct p0. cbn in *. eapply secure_eqit_bind; try apply IHe2; eauto. intros. cbn in *. setoid_rewrite interp_state_ret. apply secure_eqit_ret; split; auto. - split; auto. cbn. inv H1. inv H5. etransitivity; eauto. reflexivity. + split; auto. cbn. inv H1. inv H5. etransitivity; eauto. - repeat setoid_rewrite interp_state_bind. match goal with |- eqit_secure _ _ _ _ _ _ _ ?t => assert ( t ≈ ITree.bind (Ret (regs2, σ2, n)) (fun st => ITree.bind (Ret (fst st, n) ) (fun st => Ret (fst st,n)) ) ) end. @@ -149,7 +149,7 @@ Proof. eapply secure_eqit_bind; try apply IHe1; eauto. intros [? ?] [? ?] [? ?]. inv H1. cbn in *. destruct p; destruct p0. cbn in *. eapply secure_eqit_bind; try apply IHe2; eauto. intros. cbn in *. setoid_rewrite interp_state_ret. apply secure_eqit_ret; split; auto. - split; auto. cbn. inv H1. inv H5. etransitivity; eauto. reflexivity. + split; auto. cbn. inv H1. inv H5. etransitivity; eauto. - repeat setoid_rewrite interp_state_bind. match goal with |- eqit_secure _ _ _ _ _ _ _ ?t => assert ( t ≈ ITree.bind (Ret (regs2, σ2, n)) (fun st => ITree.bind (Ret (fst st, n) ) (fun st => Ret (fst st,n)) ) ) end. @@ -158,7 +158,7 @@ Proof. eapply secure_eqit_bind; try apply IHe1; eauto. intros [? ?] [? ?] [? ?]. inv H1. cbn in *. destruct p; destruct p0. cbn in *. eapply secure_eqit_bind; try apply IHe2; eauto. intros. cbn in *. setoid_rewrite interp_state_ret. apply secure_eqit_ret; split; auto. - split; auto. cbn. inv H1. inv H5. etransitivity; eauto. reflexivity. + split; auto. cbn. inv H1. inv H5. etransitivity; eauto. Qed. Lemma expr_only_ret e observer: exists n : value, label_state_sec_eutt Γ observer top2 (sem_expr e) (ret n) . @@ -210,7 +210,7 @@ Proof. } eapply eqit_secure_trans; eauto. eapply eqit_secure_sym. apply eqit_secure_RR_imp with (RR1 := Rst). - { intros. split. + { intros ? ? PR. split. split; [cbv; auto | unfold Rst in *]. inv PR. inv H. symmetry. auto. inv PR. symmetry. auto. } @@ -224,7 +224,7 @@ Proof. - inv H0. inv H2. cbn in *. etransitivity; eauto. - inv H0. inv H2. cbn in *. etransitivity; eauto. } - eapply eqit_secure_trans; try apply Hr2; eauto. reflexivity. + eapply eqit_secure_trans; try apply Hr2; eauto. Qed. Lemma state_secure_eutt_throw_ret_aux: @@ -264,8 +264,12 @@ Proof. eapply eqit_secure_RR_imp with (RR1 := rcompose Rst (rcompose eq (fun x1 x2 => Rst x2 x1)) ). { unfold Rst. intros [ [? ?] [ [] | ?] ] [ [? ?] [ [] | ?] ]; intro Hrcomp; unfold Rst'. - - split. split; auto. cbv. auto. cbn. inv Hrcomp. inv REL1. inv H. inv REL2. inv REL0. etransitivity; eauto. - cbn in *. inv H. symmetry. auto. split; constructor. + - destruct Hrcomp as [rmid HL HR]. destruct HR as [rmid' Heqmid HR]. + subst rmid'. destruct rmid as [ [? ?] ?]. + destruct HL as [ [_ HeqL] _ ]. destruct HR as [ [_ HeqR] _ ]. + cbn in *. + split; [ split; [ cbv; auto | ] | split; constructor ]. + cbn. etransitivity; eauto. symmetry. auto. - inv Hrcomp. inv REL2. inv REL3. inv H0. - inv Hrcomp. inv REL2. inv REL3. inv REL1. inv H1. inv H2. - inv Hrcomp. inv REL2. inv REL3. inv REL1. inv H1. inv H2. @@ -291,7 +295,7 @@ Lemma state_secure_eutt_ret_aux: true observer (interp_imp_inline t1 (regs1, σ1)) (interp_imp_inline t2 (regs2, σ2))). Proof. - intros. eapply state_secure_eutt_equiv_ret_aux; eauto. 2 : cbv; auto. + intros. eapply state_secure_eutt_equiv_ret_aux; eauto. constructor; constructor. Qed. Notation update := LabelledImp.update. @@ -434,7 +438,7 @@ Proof. reflexivity. setoid_rewrite interp_state_bind. setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. - eapply secure_eqit_bind; eauto. intros [ [regs3 σ3] v1] [ [regs4 σ4] v2] [ [ _ Hσ] Hr]. cbn in Hr; subst. setoid_rewrite interp_state_ret. apply secure_eqit_ret. split; auto. split; auto. red. auto. cbn. split; auto. constructor. + eapply secure_eqit_bind; eauto. intros [ [regs3 σ3] v1] [ [regs4 σ4] v2] [ [ _ Hσ] Hr]. cbn in Hr; subst. setoid_rewrite interp_state_ret. apply secure_eqit_ret. repeat split; cbn; auto. - case_leq pc observer. + left; auto. destruct H0 as [n Hn]. unfold sem_throw_stmt. @@ -467,7 +471,7 @@ Proof. setoid_rewrite throw_prefix_ev. setoid_rewrite interp_state_vis. cbn. rewrite bind_ret_l. rewrite interp_state_tau. eapply proper_eutt_secure_eutt; repeat rewrite tau_eutt; try reflexivity. setoid_rewrite throw_prefix_ret. setoid_rewrite interp_state_ret. cbn. apply secure_eqit_ret. - split; try constructor; auto. cbn. constructor. cbn. apply update_labelled_equiv_invisible; auto. + split; try constructor; auto. cbn. apply update_labelled_equiv_invisible; auto. Qed. @@ -501,7 +505,7 @@ Proof. cbn in H2, H3. subst. cbn. eapply proper_eutt_secure_eutt; try apply interp_state_trigger. cbn. setoid_rewrite bind_trigger. cbn. apply eqit_secure_public_Vis; try apply H. - intros []. apply secure_eqit_ret; auto. split; auto. split; auto. cbv; auto. + intros []. apply secure_eqit_ret; auto. split; auto. split; auto. - case_leq pc observer. + left; auto. destruct H0 as [n Hn]. do 2 red in Hn. cbn in Hn. unfold sem_stmt. cbn. unfold interp_imp_inline, interp_asm. do 2 red. @@ -639,7 +643,6 @@ Proof. intros [ [ ? σ3] [ [] | ?] ] [ [ ? σ4] [ [] | ? ]] [ [ _ Hσ] Hr] ; inv Hr. + cbn. inv Hc2obs; try contradiction. eapply H3; eauto. + destruct H4; subst; cbn. setoid_rewrite interp_state_ret. apply secure_eqit_ret. split; try constructor; auto. - constructor. - right; auto. unfold sem_throw_stmt, interp_imp_inline, interp_asm. cbn. do 2 red. intros. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. inv Hc2obs; try contradiction. diff --git a/secure_example/LabelledImpInlineTypesProgInsens.v b/secure_example/LabelledImpInlineTypesProgInsens.v index 60d90eae..60401816 100644 --- a/secure_example/LabelledImpInlineTypesProgInsens.v +++ b/secure_example/LabelledImpInlineTypesProgInsens.v @@ -66,7 +66,7 @@ Definition state_equiv {E R} (m1 m2 : stateT map (itree E) R) := forall (σ : ma Global Instance proper_eutt_pi_secure_eutt {E R1 R2 RR Label priv l} : Proper (@eutt E R1 R1 eq ==> @eutt E R2 R2 eq ==> Basics.flip Basics.impl) (pi_eqit_secure Label priv RR true true l). Proof. - eapply pi_eqit_secure_eq_itree_proper. all : apply true. + eapply pi_eqit_secure_eutt_proper. all : apply true. Qed. Global Instance proper_eq_itree_secure_eutt {E R1 R2 RR Label priv l} : Proper (@eq_itree E R1 R1 eq ==> @eq_itree E R2 R2 eq ==> Basics.flip Basics.impl) @@ -241,14 +241,14 @@ Proof. specialize (Hs1 observer). inv Hs1. - left; auto. unfold sem_stmt, interp_imp. cbn. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. intros [ [ ? σ3] [] ] [ [ ? σ4] [] ] [ [ _ Hσ'] _ ]. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] [] ] [ [ ? σ4] [] ] [ [ _ Hσ'] _ ]. specialize (Hs2 observer). inv Hs2; eauto. cbn. do 2 red in H2. cbn in H2. eapply pi_sem_stmt_ret_aux; eauto. - right; auto. cbn in H0. unfold sem_stmt, interp_imp. cbn. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. setoid_rewrite <- bind_ret_r with (s := Ret (regs2, σ2, tt) ). setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] [] ] [ [ ? σ4] [] ] [ [ _ Hσ'] _ ]. specialize (Hs2 observer). inv Hs2; eauto. + exfalso. apply H. eapply leq_trans_lat; eauto; apply sensitivity_latlaws. @@ -265,7 +265,7 @@ Proof. - left; auto. unfold sem_throw_stmt, interp_imp_inline, interp_asm. cbn. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] r1] [ [ ? σ4] r2] [ [ _ Hσ'] Hr]. inv Hr. + specialize (Hs2 observer). cbn in *. subst. inv Hs2; eauto. * cbn in *. @@ -290,7 +290,7 @@ Proof. |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (r0, σ4,tt) ) (fun '(σ',x) => Ret (σ', inr lpriv) )) end. rewrite bind_ret_l. reflexivity. rewrite H3. rewrite <- bind_ret_r. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ5] r3] [ [ ? σ6] r4] [ [ _ Hσ''] Hr']; inv Hr'. -- cbn in H4. subst. apply pi_eqit_secure_ret. repeat (split; auto). constructor; auto. eapply leq_trans_lat; eauto; try apply leq_join_l; auto; apply sensitivity_latlaws. @@ -307,7 +307,7 @@ Proof. |- pi_eqit_secure _ _ _ _ _ _ ?t _ => assert (t ≈ ITree.bind (Ret (r, σ3,tt) ) (fun '(σ',x) => Ret (σ', inr lpriv) )) end. rewrite bind_ret_l. reflexivity. rewrite H3. setoid_rewrite <- bind_ret_r at 4. - apply pi_eqit_secure_sym. symmetry in Hσ'. eapply pi_eqit_secure_bind; eauto. + apply pi_eqit_secure_sym. symmetry in Hσ'. eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ5] r3] [ [ ? σ6] [] ] [ [ _ Hσ''] Hr']; inv Hr'. -- cbn in H4. subst. apply pi_eqit_secure_ret. repeat (split; auto). symmetry. auto. cbn. @@ -319,7 +319,7 @@ Proof. - right; auto. intros σ1 σ2 regs1 regs2 Hσ. unfold sem_throw_stmt, interp_imp_inline, interp_asm. cbn. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. cbn in H0. rewrite <- bind_ret_r with (s := Ret (regs2, σ2, tt) ). - eapply pi_eqit_secure_bind; eauto. intros [ [ ? σ3] r1] [ [ ? σ4] [] ] [ [ _ Hσ'] Hr]. inv Hr. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] r1] [ [ ? σ4] [] ] [ [ _ Hσ'] Hr]. inv Hr. -- cbn in H1. subst. cbn. specialize (Hs2 observer). inv Hs2. ++ do 2 red in H2. exfalso. apply H. eapply leq_trans_lat; eauto; try apply leq_join_l; auto; apply sensitivity_latlaws. ++ do 2 red in H2. cbn in H2. eapply lower_lexn_sound'; eauto; try apply leq_join_r; auto; apply sensitivity_latlaws. @@ -340,7 +340,7 @@ Proof. inv Hs1; inv Hs1t; try contradiction. - left; auto. unfold sem_stmt, interp_imp_inline, interp_asm. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. cbn. setoid_rewrite try_catch_to_throw_prefix. - setoid_rewrite interp_state_bind. eapply pi_eqit_secure_bind; eauto. + setoid_rewrite interp_state_bind. eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] r1 ] [ [ ? σ4] r2 ] [ [ _ Hσ'] Hr] ; inv Hr; cbn. + cbn in H3, H4. subst. setoid_rewrite interp_state_ret. apply pi_eqit_secure_ret. repeat (split; auto). + cbn in H5, H6. subst. specialize (Hs2 observer). inv Hs2; eauto. do 2 red in H6. @@ -357,7 +357,7 @@ Proof. eapply leq_trans_lat; auto. apply leq_join_r; auto. eauto. * do 2 red in H8. apply pi_eqit_secure_RR_imp with (RR1 := product_rel (product_rel top2 (labelled_equiv Γ observer)) top2). - { intros [ [ ? ?] [] ] [ [ ? ?] [] ] [ [? ?] ? ] . inv H9. repeat (split; auto). } + { intros [ [ ? ?] [] ] [ [ ? ?] [] ] [ [? ?] ? ] . repeat (split; auto). } cbn in H8. cbn in H5, H6. subst. setoid_rewrite interp_state_ret. eapply H8. auto. - right; auto. unfold sem_stmt, interp_imp_inline, interp_asm. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. cbn. setoid_rewrite try_catch_to_throw_prefix. @@ -366,7 +366,7 @@ Proof. |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (regs2, σ2,tt) ) (fun x => Ret x)) end. rewrite bind_ret_r. reflexivity. rewrite H3. setoid_rewrite interp_state_bind. cbn in H2. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] r1] [ [ ? σ4] [] ] [ [ _ Hσ'] Hr]; inv Hr. + cbn in H4. subst. tau_steps. apply pi_eqit_secure_ret. repeat (split; auto). + specialize (Hs2 observer). inv Hs2; eauto. @@ -386,7 +386,7 @@ Proof. setoid_rewrite try_catch_to_throw_prefix. setoid_rewrite throw_prefix_bind. repeat setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] r1] [ [ ? σ4] r2] [ [ _ Hσ'] Hr]; inv Hr; cbn; try setoid_rewrite throw_prefix_ret; try setoid_rewrite interp_state_ret; try setoid_rewrite bind_ret_l; cbn. @@ -405,7 +405,7 @@ Proof. match goal with |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (r, σ3, tt) ) (fun '(σ, x) => Ret (σ, inl x) ) ) end. rewrite bind_ret_l. reflexivity. rewrite H5. - rewrite <- bind_ret_r. symmetry in Hσ'. eapply pi_eqit_secure_bind; eauto. + rewrite <- bind_ret_r. symmetry in Hσ'. eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ5] r'] [ [ ? σ6] [] ] Hr. inv Hr. inv H9. -- apply pi_eqit_secure_ret. repeat (split; auto). symmetry. inv H6. auto. cbn in H10. subst. constructor. @@ -420,7 +420,7 @@ Proof. match goal with |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (r0, σ4, tt) ) (fun '(σ, x) => Ret (σ, inl x) ) ) end. rewrite bind_ret_l. reflexivity. rewrite H5. cbn in H8. - rewrite <- bind_ret_r. eapply pi_eqit_secure_bind; eauto. + rewrite <- bind_ret_r. eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ5] r'] [ [ ? σ6] [] ] Hr. inv Hr. inv H9. -- cbn in H10. subst. apply pi_eqit_secure_ret. repeat (split; auto). constructor. -- cbn in H12. subst. apply pi_eqit_secure_ret. repeat (split; auto). @@ -432,7 +432,7 @@ Proof. rewrite bind_bind. setoid_rewrite <- bind_ret_r with (s := Ret (regs2, σ2, tt) ). cbn in H2. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] r1] [ [ ? σ4] r2] [ [ _ Hσ'] Hr]; inv Hr. + cbn in H3. subst. cbn. rewrite throw_prefix_ret, interp_state_ret, bind_ret_l. cbn. rewrite interp_state_ret. apply pi_eqit_secure_ret. repeat (split; auto). @@ -466,7 +466,7 @@ Proof. + cbn. rewrite interp_state_bind. rewrite bind_bind. rewrite <- (bind_ret_r (Ret (regs2, σ2, tt))). cbn in H0. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ4] [] ] [ [ ? σ5] [] ] [ [ _ Hσ'] _ ]. rewrite interp_state_ret, bind_ret_l. cbn. apply pi_eqit_secure_ret. constructor. repeat (split; auto). Qed. @@ -502,7 +502,7 @@ Proof. + rewrite throw_prefix_bind. rewrite interp_state_bind. rewrite bind_bind. rewrite <- (bind_ret_r (Ret (regs2, σ2, tt))). cbn in H0. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ4] r1] [ [ ? σ5] r2'] [ [ _ Hσ'] Hr]; inv Hr. * cbn in H. subst. tau_steps. apply pi_eqit_secure_ret. constructor; auto. repeat (split; auto). destruct r2'. auto. @@ -519,21 +519,20 @@ Proof. - left. eapply leq_trans_lat; try apply H; auto. apply leq_join_l; auto. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. unfold sem_stmt, interp_imp_inline, interp_asm. cbn. specialize (@interp_state_iter') as Hisi. red in Hisi. setoid_rewrite Hisi. - apply secure_eqit_iter with (RA := product_rel (product_rel top2 (labelled_equiv Γ observer)) eq ); - auto. - clear σ1 σ2 Hσ. intros [ [ ? σ1] [] ] [ [ ? σ2] [] ] [ [ _ Hσ] _ ]. - cbn. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. - intros [ [ ? σ3] v1] [ [ ? σ4] v2] [ [ _ Hσ'] Hv]; cbn in Hv; subst. cbn. - destruct v2. - + setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. - cbn. apply pi_eqit_secure_ret. constructor. repeat (split; auto). - + setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. - intros [ [ ? σ5] [] ] [ [ ? σ6] [] ] [ [ _ Hσ''] _ ]. setoid_rewrite interp_state_ret. - setoid_rewrite bind_ret_l. cbn. apply pi_eqit_secure_ret. - constructor; repeat (split; auto). + apply secure_eqit_iter with (RA := product_rel (product_rel top2 (labelled_equiv Γ observer)) eq ). + repeat (split; auto). + + clear σ1 σ2 Hσ. intros [ [ ? σ1] [] ] [ [ ? σ2] [] ] [ [ _ Hσ] _ ]. + cbn. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. + eapply pi_secure_eqit_bind'; eauto. + intros [ [ ? σ3] v1] [ [ ? σ4] v2] [ [ _ Hσ'] Hv]; cbn in Hv; subst. cbn. + destruct v2. + ++ setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. + cbn. apply pi_eqit_secure_ret. constructor. repeat (split; auto). + ++ setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. + eapply pi_secure_eqit_bind'; eauto. + intros [ [ ? σ5] [] ] [ [ ? σ6] [] ] [ [ _ Hσ''] _ ]. setoid_rewrite interp_state_ret. + setoid_rewrite bind_ret_l. cbn. apply pi_eqit_secure_ret. + constructor; repeat (split; auto). - exfalso. apply H1. eapply leq_trans_lat with (l2 := join_sense le lexn); eauto. apply leq_join_l; auto. @@ -562,35 +561,35 @@ Proof. do 2 red. intros σ1 σ2 regs1 regs2 Hσ. unfold sem_throw_stmt, interp_imp_inline, interp_asm. cbn. setoid_rewrite throw_prefix_iter. specialize (@interp_state_iter') as Hisi. red in Hisi. setoid_rewrite Hisi. - eapply secure_eqit_iter with (RA := product_rel (product_rel top2 (labelled_equiv Γ observer)) eq ); auto. - intros [ [ ? σ3] [] ] [ [ ? σ4] [] ] [ [ _ Hσ'] _ ]. cbn. setoid_rewrite throw_prefix_bind. - repeat setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. - setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. intros [ [ ? σ5] v1] [ [ ? σ6] v2] [ [ _ Hσ''] Hv]; cbn in Hv; subst. - setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. - destruct v2; cbn. - + setoid_rewrite throw_prefix_ret. tau_steps. - apply pi_eqit_secure_ret. constructor. repeat (split; auto). constructor. - + setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. - setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. - intros [ [ ? σ7] r1'] [ [ ? σ8] r2'] [ [ _ Hσ'''] Hr]. cbn in Hr. inv Hr. - * setoid_rewrite throw_prefix_ret. tau_steps. - apply pi_eqit_secure_ret. constructor. repeat (split; auto). - * tau_steps. apply pi_eqit_secure_ret. constructor. repeat (split; auto). - constructor; auto. - * exfalso. apply H4. - eapply leq_trans_lat; eauto. - eapply leq_trans_lat; try apply H; auto. - eapply leq_trans_lat with (l2 := join_sense le lexn); eauto. - apply leq_join_r; auto. apply leq_join_r; auto. - * exfalso. apply H4. - eapply leq_trans_lat; eauto. - eapply leq_trans_lat; try apply H; auto. - eapply leq_trans_lat with (l2 := join_sense le lexn); eauto. - apply leq_join_r; auto. apply leq_join_r; auto. + eapply secure_eqit_iter with (RA := product_rel (product_rel top2 (labelled_equiv Γ observer)) eq ). + repeat (split; auto). + + intros [ [ ? σ3] [] ] [ [ ? σ4] [] ] [ [ _ Hσ'] _ ]. cbn. setoid_rewrite throw_prefix_bind. + repeat setoid_rewrite interp_state_bind. repeat rewrite bind_bind. + setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. + setoid_rewrite bind_bind. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ5] v1] [ [ ? σ6] v2] [ [ _ Hσ''] Hv]; cbn in Hv; subst. + setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. + destruct v2; cbn. + ++ setoid_rewrite throw_prefix_ret. tau_steps. + apply pi_eqit_secure_ret. constructor. repeat (split; auto). constructor. + ++ setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. + setoid_rewrite bind_bind. + eapply pi_secure_eqit_bind'; eauto. + intros [ [ ? σ7] r1'] [ [ ? σ8] r2'] [ [ _ Hσ'''] Hr]. cbn in Hr. inv Hr. + ** setoid_rewrite throw_prefix_ret. tau_steps. + apply pi_eqit_secure_ret. constructor. repeat (split; auto). + ** tau_steps. apply pi_eqit_secure_ret. constructor. repeat (split; auto). + constructor; auto. + ** exfalso. apply H4. + eapply leq_trans_lat; eauto. + eapply leq_trans_lat; try apply H; auto. + eapply leq_trans_lat with (l2 := join_sense le lexn); eauto. + apply leq_join_r; auto. apply leq_join_r; auto. + ** exfalso. apply H4. + eapply leq_trans_lat; eauto. + eapply leq_trans_lat; try apply H; auto. + eapply leq_trans_lat with (l2 := join_sense le lexn); eauto. + apply leq_join_r; auto. apply leq_join_r; auto. - exfalso. apply H1. eapply leq_trans_lat; eauto. eapply leq_trans_lat with (l2 := join_sense le lexn); auto. apply leq_join_l; auto. apply leq_join_r; auto. @@ -621,7 +620,7 @@ Proof. apply leq_join_l; auto. intros σ1 σ2 regs1 regs2 Hσ. unfold sem_stmt, interp_imp_inline, interp_asm. cbn. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] v1] [ [ ? σ4] v2] [ [ _ Hσ'] Hv]; cbn in Hv; subst. destruct v2; cbn; eauto. - exfalso. apply H3. eapply leq_trans_lat; eauto. @@ -662,7 +661,7 @@ Proof. rewrite throw_prefix_denote_expr. repeat setoid_rewrite interp_state_bind. repeat setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] v1] [ [ ? σ4] v2] [ [ _ Hσ'] Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. destruct v2; eauto. @@ -741,7 +740,7 @@ Proof. - left. eapply leq_trans_lat; eauto. do 2 red in H0. do 2 red. intros. unfold sem_stmt. cbn. unfold interp_imp_inline, interp_asm. - setoid_rewrite interp_state_bind. eapply pi_eqit_secure_bind; eauto. + setoid_rewrite interp_state_bind. eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] v1] [ [ ? σ4] v2] [ [ _ Hσ] Hv]; cbn in Hv; subst. setoid_rewrite interp_state_trigger. cbn. apply pi_eqit_secure_ret. repeat (split; auto). cbn. eapply update_labelled_equiv_visible; auto. @@ -783,7 +782,7 @@ Proof. setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] v1] [ [ ? σ4] v2] [ [ _ Hσ] Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. setoid_rewrite throw_prefix_ev. @@ -833,7 +832,7 @@ Proof. - left. eapply leq_trans_lat; eauto. unfold sem_stmt, interp_imp_inline, interp_asm. intros σ1 σ2 regs1 regs2 Hσ. cbn. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] v1] [ [ ? σ4] v4] [ [ _ Hσ'] Hv]; cbn in Hv; subst. cbn. setoid_rewrite interp_state_trigger. cbn. setoid_rewrite bind_trigger. apply pi_eqit_secure_pub_vis. @@ -872,7 +871,7 @@ Proof. cbn. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [ [ ? σ3] v1] [ [ ? σ4] v4] [ [ _ Hσ'] Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. setoid_rewrite throw_prefix_ev. setoid_rewrite interp_state_vis. diff --git a/secure_example/LabelledImpTypes.v b/secure_example/LabelledImpTypes.v index b04f5de2..941051cf 100644 --- a/secure_example/LabelledImpTypes.v +++ b/secure_example/LabelledImpTypes.v @@ -88,7 +88,7 @@ Global Instance proper_state_equiv_label_state_sec_eutt {R1 R2 RR priv l} : Prop Proof. repeat intro. split. - intros. do 2 red in H1. do 2 red. intros. red in H0. specialize (H0 σ2). red in H. - specialize (H σ1). eapply proper_eutt_secure_eutt; eauto. symmetry. auto. symmetry. auto. + specialize (H σ1). eapply proper_eutt_secure_eutt; eauto. rewrite <- H, <- H0. apply H1; eauto. - intros. intros. do 2 red in H1. do 2 red. intros. red in H0. specialize (H0 σ2). red in H. specialize (H σ1). eapply proper_eutt_secure_eutt; eauto. Qed. @@ -198,7 +198,7 @@ Proof. cbn in *. etransitivity; eauto. destruct REL1. destruct REL2. cbn in *. etransitivity; eauto. } eapply eqit_secure_trans; eauto. eapply eqit_secure_sym. apply eqit_secure_RR_imp with (RR1 := Rst). - { intros. split. 2 : cbv; auto. unfold Rst in PR. destruct PR. + { intros x0 x1 PR. split. 2 : cbv; auto. unfold Rst in PR. destruct PR. symmetry. auto. destruct x0. destruct x1. unfold Rst in *. destruct PR. symmetry. auto. } assert (eqit_secure _ (priv_exc_io Labels) Rst true true observer (Ret (s2, r2) ) (Ret (s2,r1))). { apply secure_eqit_ret. unfold Rst in *. split; auto; cbv; auto. symmetry. auto. } @@ -206,7 +206,7 @@ Proof. { intros [? ?] [? ?] [? ?]. destruct r3. cbn in *. unfold Rst in *. split. 2 : cbv; auto. destruct REL1 as [REL1 _]. destruct REL2 as [REL2 _]. cbn in *. etransitivity; eauto. destruct REL1. destruct REL2. etransitivity; eauto. } - eapply eqit_secure_trans; try apply Hr2; eauto. reflexivity. + eapply eqit_secure_trans; try apply Hr2; eauto. Qed. Lemma state_secure_eutt_throw_ret_aux: @@ -267,7 +267,7 @@ Lemma state_secure_eutt_ret_aux: (interp_state (handle_imp _) t2 σ2). Proof. intros R t1 t2 observer r1 r2 Hr1 Hr2 s1 s2 Hs12. - eapply state_secure_eutt_equiv_ret_aux; eauto. 2: cbv; auto. + eapply state_secure_eutt_equiv_ret_aux; eauto. constructor; constructor. Qed. @@ -906,7 +906,7 @@ Proof. split; auto. - right; auto. unfold sem_stmt, interp_imp. do 2 red. intros. cbn. setoid_rewrite interp_state_ret. apply secure_eqit_ret; auto. - split; auto. cbv. auto. + split; auto; cbv; auto. Qed. Lemma well_typed_skip' pc : secure_throw_stmt pc Skip. @@ -1028,8 +1028,7 @@ Proof. intros. setoid_rewrite interp_state_ret. apply secure_eqit_ret. split; auto. + right; auto. exists 0. unfold sem_expr. cbn. unfold interp_imp. do 2 red. - intros. setoid_rewrite interp_state_ret. apply secure_eqit_ret. split; auto. - cbv. auto. + intros. setoid_rewrite interp_state_ret. apply secure_eqit_ret. split; auto; cbv; auto. - inv Htype. assert (well_typed_expr l e1 ). eapply well_typed_expr_upward_close; eauto. eapply leq_trans_lat with (l2 := join l1 l2); auto. apply leq_join_l; auto. diff --git a/secure_example/LabelledImpTypesProgInsens.v b/secure_example/LabelledImpTypesProgInsens.v index 5efa12a9..15577401 100644 --- a/secure_example/LabelledImpTypesProgInsens.v +++ b/secure_example/LabelledImpTypesProgInsens.v @@ -68,7 +68,7 @@ Definition state_equiv {E R} (m1 m2 : stateT map (itree E) R) := forall (σ : ma Global Instance proper_eutt_pi_secure_eutt {E R1 R2 RR Label priv l} : Proper (@eutt E R1 R1 eq ==> @eutt E R2 R2 eq ==> Basics.flip Basics.impl) (pi_eqit_secure Label priv RR true true l). Proof. - eapply pi_eqit_secure_eq_itree_proper. all : apply true. + eapply pi_eqit_secure_eutt_proper. all : apply true. Qed. Global Instance proper_eq_itree_secure_eutt {E R1 R2 RR Label priv l} : Proper (@eq_itree E R1 R1 eq ==> @eq_itree E R2 R2 eq ==> Basics.flip Basics.impl) @@ -82,7 +82,7 @@ Global Instance proper_state_equiv_label_state_sec_eutt {R1 R2 RR priv l} : Prop Proof. repeat intro. split. - intros. do 2 red in H1. do 2 red. intros. red in H0. specialize (H0 σ2). red in H. - specialize (H σ1). eapply proper_eutt_pi_secure_eutt; eauto. symmetry. auto. symmetry. auto. + specialize (H σ1). eapply proper_eutt_pi_secure_eutt; [ symmetry; apply H | symmetry; apply H0 | apply H1; auto ]. - intros. intros. do 2 red in H1. do 2 red. intros. red in H0. specialize (H0 σ2). red in H. specialize (H σ1). eapply proper_eutt_pi_secure_eutt; eauto. Qed. @@ -243,14 +243,14 @@ Proof. specialize (Hs1 observer). inv Hs1. - left; auto. unfold sem_stmt, interp_imp. cbn. do 2 red. intros σ1 σ2 Hσ. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. intros [σ3 [] ] [σ4 [] ] [Hσ' _ ]. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 [] ] [σ4 [] ] [Hσ' _ ]. specialize (Hs2 observer). inv Hs2; eauto. cbn. do 2 red in H2. cbn in H2. eapply pi_sem_stmt_ret_aux; eauto. - right; auto. cbn in H0. unfold sem_stmt, interp_imp. cbn. do 2 red. intros σ1 σ2 Hσ. setoid_rewrite <- bind_ret_r with (s := Ret (σ2, tt) ). setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 [] ] [σ4 [] ] [Hσ' _ ]. specialize (Hs2 observer). inv Hs2; eauto. + exfalso. apply H. eapply leq_trans_lat; eauto. @@ -267,7 +267,7 @@ Proof. - left; auto. unfold sem_throw_stmt, interp_imp. cbn. do 2 red. intros σ1 σ2 Hσ. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 r1] [σ4 r2] [Hσ' Hr]. inv Hr. + specialize (Hs2 observer). inv Hs2; eauto. * cbn. @@ -290,7 +290,7 @@ Proof. |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (σ4,tt) ) (fun '(σ',x) => Ret (σ', inr lpriv) )) end. rewrite bind_ret_l. reflexivity. rewrite H7. rewrite <- bind_ret_r. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ5 r3] [σ6 r4] [Hσ'' Hr']; inv Hr'. -- cbn in H8. subst. apply pi_eqit_secure_ret. split; auto. constructor; auto. eapply leq_trans_lat; eauto. apply leq_join_l; auto. @@ -306,7 +306,7 @@ Proof. |- pi_eqit_secure _ _ _ _ _ _ ?t _ => assert (t ≈ ITree.bind (Ret (σ3,tt) ) (fun '(σ',x) => Ret (σ', inr lpriv) )) end. rewrite bind_ret_l. reflexivity. rewrite H7. setoid_rewrite <- bind_ret_r at 4. - apply pi_eqit_secure_sym. symmetry in Hσ'. eapply pi_eqit_secure_bind; eauto. + apply pi_eqit_secure_sym. symmetry in Hσ'. eapply pi_secure_eqit_bind'; eauto. intros [σ5 r3] [σ6 [] ] [Hσ'' Hr']; inv Hr'. -- cbn in H8. subst. apply pi_eqit_secure_ret. split; auto. symmetry. auto. constructor; auto. eapply leq_trans_lat; eauto. apply leq_join_l; auto. @@ -316,7 +316,7 @@ Proof. - right; auto. intros σ1 σ2 Hσ. unfold sem_throw_stmt, interp_imp. cbn. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. cbn in H0. rewrite <- bind_ret_r with (s := Ret (σ2, tt) ). - eapply pi_eqit_secure_bind; eauto. intros [σ3 r1] [σ4 [] ] [Hσ' Hr]. inv Hr. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 r1] [σ4 [] ] [Hσ' Hr]. inv Hr. -- cbn in H1. subst. cbn. specialize (Hs2 observer). inv Hs2. ++ exfalso. apply H. eapply leq_trans_lat; eauto. apply leq_join_l; auto. ++ cbn in H2. eapply lower_lexn_sound'; eauto. apply leq_join_r; auto. @@ -335,7 +335,7 @@ Proof. inv Hs1; inv Hs1t; try contradiction. - left; auto. unfold sem_stmt, interp_imp. do 2 red. intros σ1 σ2 Hσ. cbn. setoid_rewrite try_catch_to_throw_prefix. - setoid_rewrite interp_state_bind. eapply pi_eqit_secure_bind; eauto. + setoid_rewrite interp_state_bind. eapply pi_secure_eqit_bind'; eauto. intros [σ3 r1 ] [σ4 r2 ] [Hσ' Hr] ; inv Hr; cbn. + setoid_rewrite interp_state_ret. apply pi_eqit_secure_ret. split; auto. + specialize (Hs2 observer). inv Hs2; eauto. do 2 red in H8. @@ -345,14 +345,14 @@ Proof. eapply leq_trans_lat; auto. apply leq_join_r; auto. eauto. * apply pi_eqit_secure_sym. do 2 red in H8. apply pi_eqit_secure_RR_imp with (RR1 := product_rel (labelled_equiv Γ observer) top2). - { intros [? [] ] [? [] ] ? . inv H9. split; auto. symmetry. auto. } + { intros [? [] ] [? [] ] ? . inv H9; split; auto; try (symmetry; auto). } cbn in H8. setoid_rewrite interp_state_ret. eapply H8. symmetry. auto. + specialize (Hs2 observer). inv Hs2. * exfalso. apply H4. eapply leq_trans_lat; eauto. eapply leq_trans_lat; auto. apply leq_join_r; auto. eauto. * do 2 red in H8. apply pi_eqit_secure_RR_imp with (RR1 := product_rel (labelled_equiv Γ observer) top2). - { intros [? [] ] [? [] ] ? . inv H9. split; auto. } + { intros [? [] ] [? [] ] ? . inv H9; split; auto. } cbn in H8. setoid_rewrite interp_state_ret. eapply H8. auto. - right; auto. unfold sem_stmt, interp_imp. do 2 red. intros σ1 σ2 Hσ. cbn. setoid_rewrite try_catch_to_throw_prefix. @@ -361,9 +361,9 @@ Proof. |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (σ2,tt) ) (fun x => Ret x)) end. rewrite bind_ret_r. reflexivity. rewrite H3. setoid_rewrite interp_state_bind. cbn in H2. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 r1] [σ4 [] ] [Hσ' Hr]; inv Hr. - + tau_steps. apply pi_eqit_secure_ret. split; auto. cbv. auto. + + tau_steps. apply pi_eqit_secure_ret. split; auto; cbv; auto. + specialize (Hs2 observer). inv Hs2; eauto. * exfalso. apply H. eapply leq_trans_lat; eauto. apply leq_join_l; auto. * cbn in H8. eauto. @@ -381,7 +381,7 @@ Proof. setoid_rewrite try_catch_to_throw_prefix. setoid_rewrite throw_prefix_bind. repeat setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 r1] [σ4 r2] [Hσ' Hr]; inv Hr; cbn; try setoid_rewrite throw_prefix_ret; try setoid_rewrite interp_state_ret; try setoid_rewrite bind_ret_l; cbn. @@ -397,7 +397,7 @@ Proof. match goal with |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (σ3, tt) ) (fun '(σ, x) => Ret (σ, inl x) ) ) end. rewrite bind_ret_l. reflexivity. rewrite H9. - rewrite <- bind_ret_r. symmetry in Hσ'. eapply pi_eqit_secure_bind; eauto. + rewrite <- bind_ret_r. symmetry in Hσ'. eapply pi_secure_eqit_bind'; eauto. intros [σ5 r] [σ6 [] ] Hr. inv Hr. inv H11. -- apply pi_eqit_secure_ret. split. symmetry. auto. cbn in H12. subst. constructor. @@ -410,7 +410,7 @@ Proof. match goal with |- pi_eqit_secure _ _ _ _ _ _ _ ?t => assert (t ≈ ITree.bind (Ret (σ4, tt) ) (fun '(σ, x) => Ret (σ, inl x) ) ) end. rewrite bind_ret_l. reflexivity. rewrite H9. cbn in H8. - rewrite <- bind_ret_r. eapply pi_eqit_secure_bind; eauto. + rewrite <- bind_ret_r. eapply pi_secure_eqit_bind'; eauto. intros [σ5 r] [σ6 [] ] Hr. inv Hr. inv H11. -- cbn in H12. subst. apply pi_eqit_secure_ret. constructor. auto. constructor. @@ -423,7 +423,7 @@ Proof. rewrite bind_bind. setoid_rewrite <- bind_ret_r with (s := Ret (σ2, tt) ). cbn in H2. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 r1] [σ4 r2] [Hσ' Hr]; inv Hr. + rewrite throw_prefix_ret, interp_state_ret, bind_ret_l. cbn. rewrite interp_state_ret. apply pi_eqit_secure_ret. split; auto. @@ -453,11 +453,11 @@ Proof. specialize (expr_only_ret' Labels e σ3) as [n Hn]. setoid_rewrite Hn. rewrite bind_ret_l. destruct n. + cbn. rewrite interp_state_ret, bind_ret_l. cbn. apply pi_eqit_secure_ret. - constructor. split; auto. cbv. auto. + constructor. split; auto; cbv; auto. + cbn. rewrite interp_state_bind. rewrite bind_bind. rewrite <- (bind_ret_r (Ret (σ2, tt))). cbn in H0. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ4 [] ] [σ5 [] ] [Hσ' _ ]. rewrite interp_state_ret, bind_ret_l. cbn. apply pi_eqit_secure_ret. constructor. split; auto. Qed. @@ -492,7 +492,7 @@ Proof. + rewrite throw_prefix_bind. rewrite interp_state_bind. rewrite bind_bind. rewrite <- (bind_ret_r (Ret (σ2, tt))). cbn in H0. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ4 r1] [σ5 r2] [Hσ' Hr]; inv Hr. * cbn in H. subst. tau_steps. apply pi_eqit_secure_ret. constructor; auto. split; auto. destruct r2. auto. @@ -509,21 +509,20 @@ Proof. - left. eapply leq_trans_lat; try apply H; auto. apply leq_join_l; auto. do 2 red. intros σ1 σ2 Hσ. unfold sem_stmt, interp_imp. cbn. specialize (@interp_state_iter') as Hisi. red in Hisi. setoid_rewrite Hisi. - apply secure_eqit_iter with (RA := product_rel (labelled_equiv Γ observer) eq ); - auto. - clear σ1 σ2 Hσ. intros [σ1 [] ] [σ2 [] ] [Hσ _ ]. - cbn. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. - intros [σ3 v1] [σ4 v2] [Hσ' Hv]; cbn in Hv; subst. cbn. - destruct v2. - + setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. - cbn. apply pi_eqit_secure_ret. constructor. split; auto. - + setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. - intros [σ5 [] ] [σ6 [] ] [Hσ'' _ ]. setoid_rewrite interp_state_ret. - setoid_rewrite bind_ret_l. cbn. apply pi_eqit_secure_ret. - constructor; split; auto. + apply secure_eqit_iter with (RA := product_rel (labelled_equiv Γ observer) eq ). + split; auto. + + clear σ1 σ2 Hσ. intros [σ1 [] ] [σ2 [] ] [Hσ _ ]. + cbn. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. + eapply pi_secure_eqit_bind'; eauto. + intros [σ3 v1] [σ4 v2] [Hσ' Hv]; cbn in Hv; subst. cbn. + destruct v2. + ++ setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. + cbn. apply pi_eqit_secure_ret. constructor. split; auto. + ++ setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. + eapply pi_secure_eqit_bind'; eauto. + intros [σ5 [] ] [σ6 [] ] [Hσ'' _ ]. setoid_rewrite interp_state_ret. + setoid_rewrite bind_ret_l. cbn. apply pi_eqit_secure_ret. + constructor; split; auto. - exfalso. apply H1. eapply leq_trans_lat with (l2 := join le lexn); eauto. apply leq_join_l; auto. @@ -552,19 +551,19 @@ Proof. do 2 red. intros σ1 σ2 Hσ. unfold sem_throw_stmt, interp_imp. cbn. setoid_rewrite throw_prefix_iter. specialize (@interp_state_iter') as Hisi. red in Hisi. setoid_rewrite Hisi. - eapply secure_eqit_iter with (RA := product_rel (labelled_equiv Γ observer) eq ); auto. + eapply secure_eqit_iter with (RA := product_rel (labelled_equiv Γ observer) eq ). 1: split; auto. intros [σ3 [] ] [σ4 [] ] [Hσ' _ ]. cbn. setoid_rewrite throw_prefix_bind. repeat setoid_rewrite interp_state_bind. repeat rewrite bind_bind. setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. intros [σ5 v1] [σ6 v2] [Hσ'' Hv]; cbn in Hv; subst. + eapply pi_secure_eqit_bind'; eauto. intros [σ5 v1] [σ6 v2] [Hσ'' Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. destruct v2; cbn. + setoid_rewrite throw_prefix_ret. tau_steps. apply pi_eqit_secure_ret. constructor. split; auto. constructor. + setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ7 r1] [σ8 r2] [Hσ''' Hr]. cbn in Hr. inv Hr. * setoid_rewrite throw_prefix_ret. tau_steps. apply pi_eqit_secure_ret. constructor. split; auto. @@ -580,7 +579,6 @@ Proof. eapply leq_trans_lat; try apply H; auto. eapply leq_trans_lat with (l2 := join le lexn); eauto. apply leq_join_r; auto. apply leq_join_r; auto. - + split; auto. - exfalso. apply H1. eapply leq_trans_lat; eauto. eapply leq_trans_lat with (l2 := join le lexn); auto. apply leq_join_l; auto. apply leq_join_r; auto. @@ -611,7 +609,7 @@ Proof. apply leq_join_l; auto. intros σ1 σ2 Hσ. unfold sem_stmt, interp_imp. cbn. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 v1] [σ4 v2] [Hσ' Hv]; cbn in Hv; subst. destruct v2; cbn; eauto. - exfalso. apply H3. eapply leq_trans_lat; eauto. @@ -652,7 +650,7 @@ Proof. rewrite throw_prefix_denote_expr. repeat setoid_rewrite interp_state_bind. repeat setoid_rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 v1] [σ4 v2] [Hσ' Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. destruct v2; eauto. @@ -709,7 +707,7 @@ Proof. + right; auto. exists 0. do 2 red. intros. cbn. specialize (expr_only_ret' Labels e σ1) as [n Hn]. rewrite Hn. - apply pi_eqit_secure_ret. split; auto. cbv. auto. + apply pi_eqit_secure_ret. split; auto; cbv; auto. - case_leq l2 observer. + left; auto. exfalso. apply H. eapply leq_trans_lat; eauto. + right; auto. @@ -731,7 +729,7 @@ Proof. - left. eapply leq_trans_lat; eauto. do 2 red in H0. do 2 red. intros. unfold sem_stmt. cbn. unfold interp_imp. - setoid_rewrite interp_state_bind. eapply pi_eqit_secure_bind; eauto. + setoid_rewrite interp_state_bind. eapply pi_secure_eqit_bind'; eauto. intros [σ3 v1] [σ4 v2] [Hσ Hv]; cbn in Hv; subst. setoid_rewrite interp_state_trigger. cbn. apply pi_eqit_secure_ret. split; auto. cbn. eapply update_labelled_equiv_visible; auto. @@ -773,7 +771,7 @@ Proof. setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 v1] [σ4 v2] [Hσ Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. setoid_rewrite throw_prefix_ev. @@ -822,7 +820,7 @@ Proof. - left. eapply leq_trans_lat; eauto. unfold sem_stmt, interp_imp. intros σ1 σ2 Hσ. cbn. setoid_rewrite interp_state_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 v1] [σ4 v4] [Hσ' Hv]; cbn in Hv; subst. cbn. setoid_rewrite interp_state_trigger. cbn. setoid_rewrite bind_trigger. apply pi_eqit_secure_pub_vis. @@ -840,7 +838,7 @@ Proof. specialize (expr_only_ret' Labels e σ1) as [n1 Hn1]. setoid_rewrite Hn1. rewrite bind_ret_l. rewrite interp_state_trigger. cbn. rewrite bind_trigger. apply pi_eqit_secure_priv_visl; auto. intros []. - apply pi_eqit_secure_ret. split; auto. cbv. auto. + apply pi_eqit_secure_ret. split; auto; cbv; auto. Qed. Lemma print_well_typed_correct' pc le lp e : @@ -861,7 +859,7 @@ Proof. cbn. setoid_rewrite throw_prefix_bind. setoid_rewrite interp_state_bind. setoid_rewrite throw_prefix_denote_expr. setoid_rewrite interp_state_bind. repeat rewrite bind_bind. - eapply pi_eqit_secure_bind; eauto. + eapply pi_secure_eqit_bind'; eauto. intros [σ3 v1] [σ4 v4] [Hσ' Hv]; cbn in Hv; subst. setoid_rewrite interp_state_ret. setoid_rewrite bind_ret_l. cbn. setoid_rewrite throw_prefix_ev. setoid_rewrite interp_state_vis. @@ -910,7 +908,7 @@ Proof. split; auto. - right; auto. do 2 red. unfold sem_stmt. intros σ1 σ2 Hσ. cbn. setoid_rewrite interp_state_ret. apply pi_eqit_secure_ret. - split; auto. cbv. auto. + split; auto; cbv; auto. Qed. Lemma skip_well_typed_correct' pc : diff --git a/secure_example/Lattice.v b/secure_example/Lattice.v index a29f1f5b..ebc40c4b 100644 --- a/secure_example/Lattice.v +++ b/secure_example/Lattice.v @@ -57,14 +57,13 @@ Lemma leq_join_l (Lat : Lattice) {HLat : LatticeLaws Lat} (l1 l2 : L) : leq l1 (join l1 l2). Proof. cbn. assert (LatticeLaws Lat). auto. destruct HLat. rewrite join_assoc0. rewrite join_idempot; auto. - reflexivity. Qed. Lemma leq_join_r (Lat : Lattice) {HLat : LatticeLaws Lat} (l1 l2 : L) : leq l2 (join l1 l2). Proof. cbn. assert (LatticeLaws Lat). auto. destruct HLat. rewrite join_comm0. rewrite <- join_assoc0. - rewrite join_idempot; auto. reflexivity. + rewrite join_idempot; auto. Qed. Lemma leq_refl_lat (Lat : Lattice) {HLat : LatticeLaws Lat} l : From 8dff6d7ae9fe19ef797a5915e9a42f42ae670e3f Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 28 May 2026 21:59:55 +0200 Subject: [PATCH 173/189] Some adjustments after demo --- examples/ITreePredicatesExample.v | 4 ++-- extra/Secure/SecureStateHandler.v | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index 986ba07e..c36be431 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -106,8 +106,8 @@ Section Proper. rewrite (itree_eta (interpret_state x x2)). rewrite (itree_eta (interpret_state y y0)). rewrite !unfold_interpret_state. subst. - step in H0. repeat red in H0. unfold interpret_stateF. - destruct (observe x); inv H0; try discriminate; simpl; + step in H0. unfold interpret_stateF. + destruct (observe x); inv H0; try discriminate; simpl; try (constructor; eauto). ddestruction. destruct e; econstructor; eauto with itree. diff --git a/extra/Secure/SecureStateHandler.v b/extra/Secure/SecureStateHandler.v index 1af46561..ef8dfd83 100644 --- a/extra/Secure/SecureStateHandler.v +++ b/extra/Secure/SecureStateHandler.v @@ -190,7 +190,6 @@ Proof. with (diverges_with (fun (A : Type) (e : E2 A) => ~ leq (priv2 A e) l) t) in H2. generalize dependent t. coinduction c' CIH'. intros. sinv H2; use_simpobs. - (* TOUR: Why does rewrite H1 not work here? *) * rewrite H1. icbn; cbn. unpriv_halt. * rewrite H1. icbn; cbn. unpriv_halt. eapply CIH'; eauto. apply H7. From 4fe9aafa046a438bd329158a025a4c325cac7241 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Fri, 29 May 2026 03:57:22 +0200 Subject: [PATCH 174/189] Changed eqit arg order back to original to improve backwards compatibility --- .claude/settings.json | 15 +- extra/IForest.v | 20 +- extra/Secure/SecureEqEuttHalt.v | 2 +- extra/Secure/SecureEqProgInsens.v | 2 +- secure_example/LabelledImp2AsmCorrectness.v | 6 +- .../LabelledImpInline2AsmCorrectness.v | 8 +- theories/Eq/Eqit.v | 181 +++++++++--------- theories/Events/ExceptionFacts.v | 4 +- 8 files changed, 126 insertions(+), 112 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index 9d03ec44..79f7e757 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -54,7 +54,20 @@ "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_RR_imp\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqEuttHalt.v)", "Bash(grep -nB 1 -A 6 \"Lemma compile_correct\\\\|state_invariant \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", "Bash(grep -nB 2 -A 8 \"^Theorem compile_correct\\\\|^Lemma compile_correct\\\\| compile_correct \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", - "Bash(grep -nB 2 -A 6 \"^ Definition equivalent\\\\|equivalent.*stmt\\\\|equivalent \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)" + "Bash(grep -nB 2 -A 6 \"^ Definition equivalent\\\\|equivalent.*stmt\\\\|equivalent \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", + "Bash(coqc -Q theories ITree theories/Eq/Eqit.v)", + "Bash(echo \"EXIT: $?\")", + "Bash(awk 'NR>=1429 && /^Section |^End |^Module /{print NR\": \"$0}' theories/Eq/Eqit.v)", + "Bash(coqc:*)", + "Bash(make:*)", + "Bash(grep:*)", + "Bash(cat:*)", + "Bash(head:*)", + "Bash(wc:*)", + "Bash(ls:*)", + "Bash(awk:*)", + "Edit(//Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/**)", + "Write(//Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/**)" ], "additionalDirectories": [ "/Users/rogerab/claude/rocq-proving" diff --git a/extra/IForest.v b/extra/IForest.v index 639bda94..0b846e4d 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -174,8 +174,8 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Ltac refold := repeat match goal with - | |- context[gfp (@eqit_mon ?E ?b1 ?b2)] => - fold (@eqit E b1 b2); + | |- context[gfp (@eqit_mon ?E ?b1 ?b2) ?R1 ?R2 ?RR] => + fold (@eqit E R1 R2 RR b1 b2); try fold (@eq_itree E _ _); try fold (@euttge E _ _); try fold (@eutt E _ _) @@ -185,8 +185,8 @@ Definition interp_iforest {E F} (h_spec : E ~> iforest F) : #[local] Ltac refold_in h := match type of h with - | context[gfp (@eqit_mon ?E ?b1 ?b2)] => - fold (@eqit E b1 b2) in h; + | context[gfp (@eqit_mon ?E ?b1 ?b2) ?R1 ?R2 ?RR] => + fold (@eqit E R1 R2 RR b1 b2) in h; try fold (@eq_itree E _ _) in h; try fold (@euttge E _ _) in h; try fold (@eutt E _ _) in h @@ -698,9 +698,9 @@ Definition iter_cont {I E R} (step' : I -> itree E (I + R)) : Lemma eqit_Leaf_bind' {E} {R} {T} b1 b2 (t1 t2: itree E T) (k1 k2: T -> itree E R) : - eqit b1 b2 eq t1 t2 -> - (forall r, Leaf r t1 -> eqit b1 b2 eq (k1 r) (k2 r)) -> - eqit b1 b2 eq (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit eq b1 b2 t1 t2 -> + (forall r, Leaf r t1 -> eqit eq b1 b2 (k1 r) (k2 r)) -> + eqit eq b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros. eapply eqit_clo_bind_gen; eauto. intros; subst. eapply H0. eauto. @@ -708,9 +708,9 @@ Qed. Lemma eqit_Leaf_bind'' {E} {R S} {T} (RS : R -> S -> Prop) b1 b2 (t1 t2: itree E T) (k1: T -> itree E R) (k2 : T -> itree E S) : - eqit b1 b2 eq t1 t2 -> - (forall r, Leaf r t1 -> eqit b1 b2 RS (k1 r) (k2 r)) -> - eqit b1 b2 RS (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit eq b1 b2 t1 t2 -> + (forall r, Leaf r t1 -> eqit RS b1 b2 (k1 r) (k2 r)) -> + eqit RS b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros. eapply eqit_clo_bind_gen; eauto. intros; subst. eapply H0. eauto. diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index 93716d30..bba5d737 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -1038,7 +1038,7 @@ Qed. Global Instance proper_eqit_secure_eqit {E} {R1 R2 : Type} {b} {RR : R1 -> R2 -> Prop} {Label priv l} : - Proper (eqit b b eq ==> eqit b b eq ==> iff) (@eqit_secure E R1 R2 Label priv RR b b l). + Proper (eqit eq b b ==> eqit eq b b ==> iff) (@eqit_secure E R1 R2 Label priv RR b b l). Proof. repeat intro. destruct b; split; intros. - eapply eutt_secure_eqit_secure; eauto. diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index 77b5148b..50edaa5c 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -173,7 +173,7 @@ Qed. Lemma pi_eqit_secure_mixed_trans b1 b2 E R1 R2 R3 (RR1 : R1 -> R2 -> Prop) (RR2 : R2 -> R3 -> Prop) Label priv l : forall (t1 : itree E R1) t2 t3, - pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit b1 b2 RR2 t2 t3 -> + pi_eqit_secure Label priv RR1 b1 b2 l t1 t2 -> eqit RR2 b1 b2 t2 t3 -> pi_eqit_secure Label priv (rcompose RR1 RR2) b1 b2 l t1 t3. Proof. coinduction c CIH. intros t1 t2 t3 Hsec Heq. diff --git a/secure_example/LabelledImp2AsmCorrectness.v b/secure_example/LabelledImp2AsmCorrectness.v index 79939ad7..1f25afad 100644 --- a/secure_example/LabelledImp2AsmCorrectness.v +++ b/secure_example/LabelledImp2AsmCorrectness.v @@ -545,7 +545,7 @@ Section Linking. setoid_rewrite unfold_iter_ktree. cbn. repeat rewrite bind_bind. repeat setoid_rewrite bind_ret_l. cbn. rewrite split_fin_sum_L. cbn. rewrite bind_bind. setoid_rewrite bind_ret_l. cbn. - match goal with |- eqit true true eq (ITree.bind _ ?k ) _ => remember k as k_id end. + match goal with |- eqit eq true true (ITree.bind _ ?k ) _ => remember k as k_id end. assert (HK : forall r, k_id r ≈ Ret r ). { subst. intros. destruct (split_fin_sum _ _ r) as [d | c] eqn : Heqr . @@ -755,13 +755,13 @@ Proof. - repeat setoid_rewrite bind_ret_l. cbn. unfold id. unfold merge, case_, Case_sub, case_, Case_Kleisli, case_sum, to_bif, ToBifunctor_Fun_fin. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } rewrite HH. reflexivity. + intros; subst. destruct r2. cbn. apply eqit_Ret. apply unique_fin. cbn. lia. - repeat setoid_rewrite bind_ret_l. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } rewrite HH. reflexivity. + intros; subst. apply eqit_Ret. apply unique_fin. destruct r2. cbn. lia. diff --git a/secure_example/LabelledImpInline2AsmCorrectness.v b/secure_example/LabelledImpInline2AsmCorrectness.v index 983c67f5..979bd807 100644 --- a/secure_example/LabelledImpInline2AsmCorrectness.v +++ b/secure_example/LabelledImpInline2AsmCorrectness.v @@ -553,7 +553,7 @@ Section Linking. setoid_rewrite unfold_iter_ktree. cbn. repeat rewrite bind_bind. repeat setoid_rewrite bind_ret_l. cbn. rewrite split_fin_sum_L. cbn. rewrite bind_bind. setoid_rewrite bind_ret_l. cbn. - match goal with |- eqit true true eq (ITree.bind _ ?k ) _ => remember k as k_id end. + match goal with |- eqit eq true true (ITree.bind _ ?k ) _ => remember k as k_id end. assert (HK : forall r, k_id r ≈ Ret r ). { subst. intros. destruct (split_fin_sum _ _ r) as [d | c] eqn : Heqr . @@ -761,13 +761,13 @@ Proof. - repeat setoid_rewrite bind_ret_l. cbn. unfold id. unfold merge, case_, Case_sub, case_, Case_Kleisli, case_sum, to_bif, ToBifunctor_Fun_fin. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } timeout 5 rewrite HH. reflexivity. + intros; subst. destruct r2. cbn. apply eqit_Ret. apply unique_fin. cbn. lia. - repeat setoid_rewrite bind_ret_l. cbn. setoid_rewrite <- bind_ret_r at 4. eapply eqit_bind' with (RR := eq). - + match goal with |- eqit true true eq (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. + + match goal with |- eqit eq true true (denote_asm c ?f1) (denote_asm c (?f2) ) => assert (HH : f1 = f2) end. { apply unique_fin. auto. } rewrite HH. reflexivity. + intros; subst. apply eqit_Ret. apply unique_fin. destruct r2. cbn. lia. @@ -1206,7 +1206,7 @@ Section Correctness. Lemma exception_to_sum_correct_instr_aux: forall i : instr, - eqit true true (fun (x : unit + sensitivity) (_ : unit) => x = inl tt) + eqit (fun (x : unit + sensitivity) (_ : unit) => x = inl tt) true true (throw_prefix (E := E2) (denote_instr i)) (denote_instr i). Proof. intros i. destruct i; cbn; repeat setoid_rewrite throw_prefix_bind; diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index e3d198ef..95024ff9 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -147,23 +147,23 @@ Section eqit. Definition eqit_mon b1 b2 : mon (forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop) := {| body := eqit_ b1 b2 ; Hbody := eqitF_mono b1 b2 |}. - Definition eqit b1 b2 : forall R1 R2, (R1 -> R2 -> Prop) -> itree E R1 -> itree E R2 -> Prop := - gfp (eqit_mon b1 b2). + Definition eqit {R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 : itree E R1 -> itree E R2 -> Prop := + gfp (eqit_mon b1 b2) R1 R2 RR. (** Strong bisimulation on itrees. If [eqit RR t1 t2], we say that [t1] and [t2] are (strongly) bisimilar. As hinted at above, bisimilarity can be intuitively thought of as equality. *) - Definition eq_itree {R1 R2} (RR : R1 -> R2 -> Prop) := eqit false false R1 R2 RR. + Definition eq_itree {R1 R2} (RR : R1 -> R2 -> Prop) := eqit RR false false. - Definition eutt {R1 R2} (RR : R1 -> R2 -> Prop) := eqit true true R1 R2 RR. + Definition eutt {R1 R2} (RR : R1 -> R2 -> Prop) := eqit RR true true. - Definition euttge {R1 R2} (RR : R1 -> R2 -> Prop) := eqit true false R1 R2 RR. + Definition euttge {R1 R2} (RR : R1 -> R2 -> Prop) := eqit RR true false. End eqit. Arguments eqit_ {E} b1 b2 sim R1 R2 RR t1 t2/. -Arguments eqit {E} b1 b2 {R1 R2} RR _ _. +Arguments eqit {E R1 R2} RR b1 b2 _ _. Arguments eqit_mon {E} b1 b2. @@ -277,8 +277,8 @@ Ltac icbn_in h := repeat red in h. Ltac refold := repeat match goal with - | |- context[gfp (@eqit_mon ?E ?b1 ?b2)] => - fold (@eqit E b1 b2); + | |- context[gfp (@eqit_mon ?E ?b1 ?b2) ?R1 ?R2 ?RR] => + fold (@eqit E R1 R2 RR b1 b2); try fold (@eq_itree E _ _); try fold (@euttge E _ _); try fold (@eutt E _ _) @@ -286,8 +286,8 @@ Ltac refold := Ltac refold_in h := match type of h with - | context[gfp (@eqit_mon ?E ?b1 ?b2)] => - fold (@eqit E b1 b2) in h; + | context[gfp (@eqit_mon ?E ?b1 ?b2) ?R1 ?R2 ?RR] => + fold (@eqit E R1 R2 RR b1 b2) in h; try fold (@eq_itree E _ _) in h; try fold (@euttge E _ _) in h; try fold (@eutt E _ _) in h @@ -555,37 +555,38 @@ Proof. econstructor; now apply H. Qed. -#[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} b1 b2 - : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eqit E b1 b2 R1 R2). +#[global] Instance eqit_Proper_R {E : Type -> Type} {R1 R2:Type} + : Proper ((@eq_rel R1 R2) ==> eq ==> eq ==> eq ==> eq ==> iff) (@eqit E R1 R2). Proof with auto with itree. - intros!. subst. + intros RR RR' H b1 b1' Hb1 b2 b2' Hb2 t1 t1' Ht1 t2 t2' Ht2. + subst b1' b2' t1' t2'. split. - - revert_until H. icoinduction R CIH. intros. + - revert t1 t2. icoinduction R CIH. intros t1 t2 H0. step in H0. hinduction H0 before CIH... - econstructor; now apply H. - - revert_until H. icoinduction R CIH. intros. + econstructor; now apply H. + - revert t1 t2. icoinduction R CIH. intros t1 t2 H0. step in H0. - hinduction H0 before CIH... - econstructor; now apply H. -Qed. + hinduction H0 before CIH... + econstructor; now apply H. +Qed. #[global] Instance eq_itree_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eq_itree E R1 R2). Proof. - now intros!; apply eqit_Proper_R. + intros ?? H ?? <- ?? <-; unfold eq_itree; now rewrite H. Qed. #[global] Instance euttge_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@euttge E R1 R2). Proof. - now intros!; apply eqit_Proper_R. + intros ?? H ?? <- ?? <-; unfold euttge; now rewrite H. Qed. #[global] Instance eutt_Proper_R {E : Type -> Type} {R1 R2:Type} : Proper ( (@eq_rel R1 R2) ==> eq ==> eq ==> iff) (@eutt E R1 R2). Proof. - now intros!; apply eqit_Proper_R. + intros ?? H ?? <- ?? <-; unfold eutt; now rewrite H. Qed. @@ -602,7 +603,7 @@ Qed. Lemma eqit_flip {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2: forall (u : itree E R1) (v : itree E R2), - eqit b2 b1 (flip RR) v u -> eqit b1 b2 RR u v. + eqit (flip RR) b2 b1 v u -> eqit RR b1 b2 u v. Proof. (* do coinduction. *) icoinduction c CIH. intros u v euv. @@ -627,7 +628,7 @@ Lemma eqit_mono {E R1 R2} RR RR' (b1 b2 b1' b2': bool) (LEb1: b1 -> b1') (LEb2: b2 -> b2') (LERR: RR <= RR'): - @eqit E b1 b2 R1 R2 RR <= eqit b1' b2' RR'. + @eqit E R1 R2 RR b1 b2 <= eqit RR' b1' b2'. Proof. intros!. revert a a0 H. @@ -681,14 +682,14 @@ Qed. (* Prove Reflexive/Symmetric for eqit first (by coinduction), then derive for elem via gfp_chain. *) -#[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E b1 b2 _ _ RR). +#[global] Instance Reflexive_eqit b1 b2 : Reflexive RR -> Reflexive (@eqit E _ _ RR b1 b2). Proof. red; intros. revert x. icoinduction c CIH. intro. now repeat apply Reflexive_eqitF. Qed. -#[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E b b _ _ RR). +#[global] Instance Symmetric_eqit b : Symmetric RR -> Symmetric (@eqit E _ _ RR b b). Proof. intros Hsym x y Hxy. apply eqit_flip. @@ -730,19 +731,19 @@ Section eqit_inv. match _observe t1_, _observe t2_ with | RetF r1, RetF r2 => RR r1 r2 | VisF e1 k1, VisF e2 k2 => - exists p, eqeq E p e1 e2 /\ pweqeq (eqit b1 b2 RR) p k1 k2 + exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2 | RetF _, VisF _ _ | VisF _ _, RetF _ => False - | TauF t1, TauF t2 => eqit b1 b2 RR t1 t2 + | TauF t1, TauF t2 => eqit RR b1 b2 t1 t2 | TauF t1, _ => - if b1 then eqit b1 b2 RR t1 t2_ + if b1 then eqit RR b1 b2 t1 t2_ else False | _, TauF t2 => - if b2 then eqit b1 b2 RR t1_ t2 + if b2 then eqit RR b1 b2 t1_ t2 else False end. Lemma eqit_inv_Tau_l t1 t2 : - @eqit E b1 true R1 R2 RR (Tau t1) t2 -> eqit b1 true RR t1 t2. + @eqit E R1 R2 RR b1 true (Tau t1) t2 -> eqit RR b1 true t1 t2. Proof. intros * H. step in H. @@ -754,7 +755,7 @@ Section eqit_inv. Qed. Lemma eqit_inv_Tau_r t1 t2 : - @eqit E true b2 R1 R2 RR t1 (Tau t2) -> eqit true b2 RR t1 t2. + @eqit E R1 R2 RR true b2 t1 (Tau t2) -> eqit RR true b2 t1 t2. Proof. intros * H. step in H. @@ -784,14 +785,14 @@ Section eqit_inv. Qed. Lemma eqit_inv_Tau t1 t2 : - @eqit E b1 b2 R1 R2 RR (Tau t1) (Tau t2) -> eqit b1 b2 RR t1 t2. + @eqit E R1 R2 RR b1 b2 (Tau t1) (Tau t2) -> eqit RR b1 b2 t1 t2. Proof. intros. step in H; step. now apply eqitF_inv_Tau. Qed. - Lemma eqit_inv t1 t2 : eqit b1 b2 RR t1 t2 -> eqit__ t1 t2. + Lemma eqit_inv t1 t2 : eqit RR b1 b2 t1 t2 -> eqit__ t1 t2. Proof. intros H; step in H. genobs t1 ot1; genobs t2 ot2; revert t1 t2 Heqot1 Heqot2; unfold observe, _observe. @@ -993,7 +994,7 @@ Qed. #[global] Instance eq_proper_eqit {E R1 R2 b1 b2} (RR : R1 -> R2 -> Prop): - Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit b1 b2 RR). + Proper (eq_itree (E := E) eq ==> eq_itree eq ==> iff) (eqit RR b1 b2). Proof with eauto with itree. split; intros; revert_until RR; @@ -1161,9 +1162,9 @@ Qed. (* Transitivity of eqit *) Lemma eqit_trans {E R1 R2 R3} (RR1: R1->R2->Prop) (RR2: R2->R3->Prop) b1 b2 t1 t2 t3 - (INL: eqit b1 b2 RR1 t1 t2) - (INR: eqit b1 b2 RR2 t2 t3): - @eqit E b1 b2 _ _ (rcompose RR1 RR2) t1 t3. + (INL: eqit RR1 b1 b2 t1 t2) + (INR: eqit RR2 b1 b2 t2 t3): + @eqit E _ _ (rcompose RR1 RR2) b1 b2 t1 t3. Proof. unfold eqit. revert_until b2. (* we'll need the coinductive reasoning later: elements of the chain @@ -1221,7 +1222,7 @@ Arguments eqit_trans {E R1 R2 R3} [RR1 RR2 b1 b2 t1 t2 t3]. two equivalences and a preorder as expected. *) #[global] Instance Transitive_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b1 b2: bool): - Transitive RR -> Transitive (@eqit E b1 b2 _ _ RR). + Transitive RR -> Transitive (@eqit E _ _ RR b1 b2). Proof. red; intros. assert (TRANS := trans_rcompose RR). eapply eqit_mono, eqit_trans; eauto. @@ -1229,19 +1230,19 @@ Proof. Qed. #[global] Instance Transitive_eqit_eq {E : Type -> Type} {R: Type} (b1 b2: bool): - Transitive (@eqit E b1 b2 R R eq). + Transitive (@eqit E R R eq b1 b2). Proof. apply Transitive_eqit. intros!; subst; eauto. Qed. #[global] Instance Equivalence_eqit {E : Type -> Type} {R: Type} (RR : R -> R -> Prop) (b: bool): - Equivalence RR -> Equivalence (@eqit E b b R R RR). + Equivalence RR -> Equivalence (@eqit E R R RR b b). Proof. constructor; try typeclasses eauto. Qed. #[global] Instance Equivalence_eqit_eq {E : Type -> Type} {R: Type} (b: bool): - Equivalence (@eqit E false false R R eq). + Equivalence (@eqit E R R eq false false). Proof. constructor; try typeclasses eauto. Qed. @@ -1432,7 +1433,7 @@ Section eqit_eq. Context {E : Type -> Type} {R : Type}. -Local Notation eqit := (fun b1 b2 => @eqit E b1 b2 R R eq). +Local Notation eqit := (fun b1 b2 => @eqit E R R eq b1 b2). #[global] Instance Reflexive_eqitF_eq b1 b2 (sim : itree E R -> itree E R -> Prop) : Reflexive sim -> Reflexive (eqitF eq b1 b2 sim). @@ -1531,7 +1532,7 @@ Proof. Qed. Lemma eqit_inv_Ret {E R1 R2 RR} b1 b2 r1 r2 : - @eqit E b1 b2 R1 R2 RR (Ret r1) (Ret r2) -> RR r1 r2. + @eqit E R1 R2 RR b1 b2 (Ret r1) (Ret r2) -> RR r1 r2. Proof. intros. step in H. inv H. Qed. @@ -1539,8 +1540,8 @@ Qed. (* Axiom-free, weaker version of [eqit_inv_vis] *) Lemma eqit_inv_Vis_weak {E R1 R2 RR} b1 b2 {u1 u2} (e1 : E u1) (e2 : E u2) (k1: u1 -> itree E R1) (k2: u2 -> itree E R2) : - eqit b1 b2 RR (Vis e1 k1) (Vis e2 k2) -> - exists p, eqeq E p e1 e2 /\ pweqeq (eqit b1 b2 RR) p k1 k2. + eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2) -> + exists p, eqeq E p e1 e2 /\ pweqeq (eqit RR b1 b2) p k1 k2. Proof. intros. step in H; apply eqitF_inv_VisF_weak in H. destruct H as [ p []]. exists p; split; auto. @@ -1549,8 +1550,8 @@ Qed. (* This assumes UIP. *) Lemma eqit_inv_Vis {E R1 R2} (RR : R1 -> R2 -> Prop) b1 b2 U (e : E U) (k1 : U -> itree E R1) (k2 : U -> itree E R2) - : eqit b1 b2 RR (Vis e k1) (Vis e k2) -> - forall u, eqit b1 b2 RR (k1 u) (k2 u). + : eqit RR b1 b2 (Vis e k1) (Vis e k2) -> + forall u, eqit RR b1 b2 (k1 u) (k2 u). Proof. intros H x; step in H; apply eqitF_inv_VisF with (x := x) in H; auto. Qed. @@ -1569,13 +1570,13 @@ Proof. Qed. Lemma eqit_Tau_l {E R1 R2 RR} b2 (t1 : itree E R1) (t2 : itree E R2) : - eqit true b2 RR t1 t2 -> eqit true b2 RR (Tau t1) t2. + eqit RR true b2 t1 t2 -> eqit RR true b2 (Tau t1) t2. Proof. intros. step. econstructor; eauto. now step in H. Qed. Lemma eqit_Tau_r {E R1 R2 RR} b1 (t1 : itree E R1) (t2 : itree E R2) : - eqit b1 true RR t1 t2 -> eqit b1 true RR t1 (Tau t2). + eqit RR b1 true t1 t2 -> eqit RR b1 true t1 (Tau t2). Proof. intros. step. econstructor; eauto. now step in H. Qed. @@ -1604,7 +1605,7 @@ Qed. (LERR1: forall x x' y, (RR1 x x': Prop) -> (RS x' y: Prop) -> RS x y) (LERR2: forall x y y', (RR2 y y': Prop) -> RS x y' -> RS x y) : Proper (eq_itree RR1 ==> eq_itree RR2 ==> flip impl) - (@eqit E b1 b2 R1 R2 RS). + (@eqit E R1 R2 RS b1 b2). Proof. intros!; unfold flip, eq_itree in *. @@ -1614,11 +1615,11 @@ intros!; unfold flip, eq_itree in *. (* Prove the diagram commutes *) (* - y -(eqit b1 b2 RS) → y0 + y -(eqit RS b1 b2) → y0 ↑ ↑ ≅RR1 ≅RR2 | | - x -(?eqit b1 b2 RS)→ x0 + x -(?eqit RS b1 b2)→ x0 *) (* Problem: this diagram does not have a path from x to x0. *) @@ -1626,11 +1627,11 @@ intros!; unfold flip, eq_itree in *. begin with this is a "symmetry" on trees only. *) (* - y -(eqit b1 b2 RS) → y0 + y -(eqit RS b1 b2) → y0 ↑ | ≅RR1 ≅(flip RR2) | ↓ - x -(?eqit b1 b2 RS)→ x0 + x -(?eqit RS b1 b2)→ x0 (* This diagram has a clear path (lifting with eqit_mono), and LERR1 and LERR2 get us the correlaries we need to arrive there: namely: *) @@ -1648,14 +1649,14 @@ intros!; unfold flip, eq_itree in *. (* build arrows and strengthen *) assert (rcompose RR1 RS <= RS) by (intros ? ? [? ?]; eauto). assert (rcompose RS (flip RR2) <= RS) by (intros ? ? [? ?]; eauto). - assert (eqit b1 b2 RR1 x y) by + assert (eqit RR1 b1 b2 x y) by (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR1); easy). - assert (eqit b1 b2 RR2 x0 y0) by + assert (eqit RR2 b1 b2 x0 y0) by (eapply eqit_mono with (b1:=false) (b2:=false) (RR:=RR2); try easy). (* first diagonal *) specialize (eqit_trans H4 H1) as Hdiag_weak. - assert (eqit b1 b2 RS x y0) as Hdiag by + assert (eqit RS b1 b2 x y0) as Hdiag by (eapply eqit_mono with (RR:=(rcompose RR1 RS)); eauto). (* reverse the final arrow *) @@ -1775,7 +1776,7 @@ Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop). (** [eqit] is a congruence for [itree] constructors. *) Lemma eqit_Tau b1 b2 (t1 : itree E R1) (t2 : itree E R2) : - eqit b1 b2 RR (Tau t1) (Tau t2) <-> eqit b1 b2 RR t1 t2. + eqit RR b1 b2 (Tau t1) (Tau t2) <-> eqit RR b1 b2 t1 t2. Proof. split; intros H. - step in H. step. @@ -1797,22 +1798,22 @@ Qed. Lemma eqit_Vis_gen b1 b2 {U1 U2} (p : U1 = U2) (e1 : E U1) (e2 : E U2) (k1 : U1 -> itree E R1) (k2 : U2 -> itree E R2) - : eqeq E p e1 e2 -> pweqeq (eqit b1 b2 RR) p k1 k2 -> - eqit b1 b2 RR (Vis e1 k1) (Vis e2 k2). + : eqeq E p e1 e2 -> pweqeq (eqit RR b1 b2) p k1 k2 -> + eqit RR b1 b2 (Vis e1 k1) (Vis e2 k2). Proof. destruct p; cbn. intros <- H. step. econstructor. apply H. Qed. Lemma eqit_Vis b1 b2 {U} (e : E U) (k1 : U -> itree E R1) (k2 : U -> itree E R2) - : (forall u, eqit b1 b2 RR (k1 u) (k2 u)) -> - eqit b1 b2 RR (Vis e k1) (Vis e k2). + : (forall u, eqit RR b1 b2 (k1 u) (k2 u)) -> + eqit RR b1 b2 (Vis e k1) (Vis e k2). Proof. apply eqit_Vis_gen with (p := eq_refl); constructor. Qed. Lemma eqit_Ret b1 b2 (r1 : R1) (r2 : R2) : - RR r1 r2 <-> @eqit E b1 b2 _ _ RR (Ret r1) (Ret r2). + RR r1 r2 <-> @eqit E _ _ RR b1 b2 (Ret r1) (Ret r2). Proof. split; intros H. - step. now constructor. @@ -1910,9 +1911,9 @@ Qed. Lemma eqit_bind' {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) t1 t2 k1 k2 : - eqit b1 b2 RR t1 t2 -> - (forall r1 r2, RR r1 r2 -> eqit b1 b2 RS (k1 r1) (k2 r2)) -> - @eqit E b1 b2 _ _ RS (ITree.bind t1 k1) (ITree.bind t2 k2). + eqit RR b1 b2 t1 t2 -> + (forall r1 r2, RR r1 r2 -> eqit RS b1 b2 (k1 r1) (k2 r2)) -> + @eqit E _ _ RS b1 b2 (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. intros. eapply eqit_bind_chain; eauto. @@ -1928,16 +1929,16 @@ Qed. #[global] Instance eqit_subst {E R S} b1 b2 : - Proper (pointwise_relation _ (eqit b1 b2 eq) ==> eqit b1 b2 eq ==> - eqit b1 b2 eq) (@ITree.subst E R S). + Proper (pointwise_relation _ (eqit eq b1 b2) ==> eqit eq b1 b2 ==> + eqit eq b1 b2) (@ITree.subst E R S). Proof. intros!; eapply eqit_bind'; eauto. intros; subst; auto. Qed. #[global] Instance eqit_bind {E R S} b1 b2 : - Proper (eqit b1 b2 eq ==> pointwise_relation _ (eqit b1 b2 eq) ==> - eqit b1 b2 eq) (@ITree.bind E R S). + Proper (eqit eq b1 b2 ==> pointwise_relation _ (eqit eq b1 b2) ==> + eqit eq b1 b2) (@ITree.bind E R S). Proof. intros!; eapply eqit_bind'; eauto. intros; subst; auto. @@ -1947,8 +1948,8 @@ Lemma eqit_map {E R1 R2 S1 S2} (RR : R1 -> R2 -> Prop) b1 b2 (RS : S1 -> S2 -> Prop) f1 f2 t1 t2 : (forall r1 r2, RR r1 r2 -> RS (f1 r1) (f2 r2)) -> - @eqit E b1 b2 _ _ RR t1 t2 -> - eqit b1 b2 RS (ITree.map f1 t1) (ITree.map f2 t2). + @eqit E _ _ RR b1 b2 t1 t2 -> + eqit RS b1 b2 (ITree.map f1 t1) (ITree.map f2 t2). Proof. unfold ITree.map; intros. eapply eqit_bind'; eauto. @@ -1957,8 +1958,8 @@ Qed. #[global] Instance eqit_eq_map {E R S} b1 b2 : Proper (pointwise_relation _ eq ==> - eqit b1 b2 eq ==> - eqit b1 b2 eq) (@ITree.map E R S). + eqit eq b1 b2 ==> + eqit eq b1 b2) (@ITree.map E R S). Proof. intros!; eapply eqit_map; eauto. intros; subst; auto. @@ -2150,9 +2151,9 @@ Ltac tau_steps_in H := Lemma eqit_inv_bind_ret: forall {E X R1 R2 RR} b1 b2 (ma : itree E X) (kb : X -> itree E R1) (b: R2), - @eqit E b1 b2 R1 R2 RR (ITree.bind ma kb) (Ret b) -> - exists a, @eqit E b1 b2 X X eq ma (Ret a) /\ - @eqit E b1 b2 R1 R2 RR (kb a) (Ret b). + @eqit E R1 R2 RR b1 b2 (ITree.bind ma kb) (Ret b) -> + exists a, @eqit E X X eq b1 b2 ma (Ret a) /\ + @eqit E R1 R2 RR b1 b2 (kb a) (Ret b). Proof. intros. step in H. @@ -2215,10 +2216,10 @@ Lemma eqit_inv_bind_vis : forall {A B C E X RR} b1 b2 (ma : itree E A) (kab : A -> itree E B) (e : E X) (kxc : X -> itree E C), - eqit b1 b2 RR (ITree.bind ma kab) (Vis e kxc) -> - (exists (kxa : X -> itree E A), (eqit b1 b2 eq ma (Vis e kxa)) /\ - forall (x:X), eqit b1 b2 RR (ITree.bind (kxa x) kab) (kxc x)) \/ - (exists (a : A), eqit b1 b2 eq ma (Ret a) /\ eqit b1 b2 RR (kab a) (Vis e kxc)). + eqit RR b1 b2 (ITree.bind ma kab) (Vis e kxc) -> + (exists (kxa : X -> itree E A), (eqit eq b1 b2 ma (Vis e kxa)) /\ + forall (x:X), eqit RR b1 b2 (ITree.bind (kxa x) kab) (kxc x)) \/ + (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Vis e kxc)). Proof. intros. step in H. remember (observe (ITree.bind ma kab)) as tl. @@ -2279,9 +2280,9 @@ Qed. Lemma eqit_inv_bind_tau: forall {E A B C RR} b1 b2 (ma : itree E A) (kab : A -> itree E B) (tc: itree E C), - eqit b1 b2 RR (ITree.bind ma kab) (Tau tc) -> - (exists (ma' : itree E A), eqit b1 b2 eq ma (Tau ma') /\ eqit b1 b2 RR (ITree.bind ma' kab) tc) \/ - (exists (a : A), eqit b1 b2 eq ma (Ret a) /\ eqit b1 b2 RR (kab a) (Tau tc)). + eqit RR b1 b2 (ITree.bind ma kab) (Tau tc) -> + (exists (ma' : itree E A), eqit eq b1 b2 ma (Tau ma') /\ eqit RR b1 b2 (ITree.bind ma' kab) tc) \/ + (exists (a : A), eqit eq b1 b2 ma (Ret a) /\ eqit RR b1 b2 (kab a) (Tau tc)). Proof. intros. step in H. remember (observe (ITree.bind ma kab)) as tl. @@ -2452,7 +2453,7 @@ Proof. typeclasses eauto. Qed. (* A very important lemma *) Lemma Proper_elem_bind X1 X2 Y1 Y2 RX SS u v k g (c : Chain (eqit_mon b1 b2)) : - eqit b1 b2 RX u v -> (forall x1 x2, RX x1 x2 -> elem c _ _ SS (k x1) (g x2)) -> + eqit RX b1 b2 u v -> (forall x1 x2, RX x1 x2 -> elem c _ _ SS (k x1) (g x2)) -> elem c _ _ SS (@ITree.bind E X1 Y1 u k) (@ITree.bind E X2 Y2 v g). Proof. intros. eapply eqit_bind_chain; eauto. now do 2 step. @@ -2511,7 +2512,7 @@ Qed. #[global] Instance eutt_cong_euttge {E R1 R2 RR}: Proper (euttge eq ==> euttge eq ==> flip impl) - (@eqit E true true R1 R2 RR). + (@eqit E R1 R2 RR true true). Proof. intros!. now rewrite H, H0. Qed. @@ -2519,7 +2520,7 @@ Qed. #[global] Instance eutt_cong_eq {E R1 R2 RR}: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E true true R1 R2 RR). + (@eqit E R1 R2 RR true true). Proof. intros!. now rewrite H, H0. Qed. @@ -2527,7 +2528,7 @@ Qed. #[global] Instance eutt_cong_ {E R1 R2 RR}: Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E true true R1 R2 RR). + (@eqit E R1 R2 RR true true). Proof. intros!. now rewrite H, H0. Qed. @@ -2668,7 +2669,7 @@ Qed. #[global] Instance observing_eq_eqitF E R b1 b2 : - Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (eqit b1 b2 eq)) (observe). + Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (eqit eq b1 b2)) (observe). Proof. intros!; now eapply observing_eq_chain. Qed. diff --git a/theories/Events/ExceptionFacts.v b/theories/Events/ExceptionFacts.v index 9b5bd310..9a6039dd 100644 --- a/theories/Events/ExceptionFacts.v +++ b/theories/Events/ExceptionFacts.v @@ -82,7 +82,7 @@ Proof. Qed. -Global Instance proper_eqitree_throw_prefix_false {E Err R} : Proper (eqit false false eq ==> eqit false false eq) (@throw_prefix Err R E). +Global Instance proper_eqitree_throw_prefix_false {E Err R} : Proper (eqit eq false false ==> eqit eq false false) (@throw_prefix Err R E). Proof. intros t1 t2 Ht. revert t1 t2 Ht. coinduction. intros. unfold throw_prefix. setoid_rewrite unfold_iter_ktree. @@ -106,7 +106,7 @@ Proof. - cbn. taur. eapply IHHt; eauto. Qed. -Global Instance proper_eqitree_throw_prefix {E Err R b} : Proper (eqit b b eq ==> eqit b b eq) (@throw_prefix Err R E). +Global Instance proper_eqitree_throw_prefix {E Err R b} : Proper (eqit eq b b ==> eqit eq b b) (@throw_prefix Err R E). Proof. destruct b; [apply proper_eutt_throw_prefix | apply proper_eqitree_throw_prefix_false]. Qed. From c018993a51b7e7dc3e59d88757385b74f665c16b Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 1 Jun 2026 15:59:12 +0200 Subject: [PATCH 175/189] More powerful tower induction automation for inf_closed --- extra/IForest.v | 7 ++----- theories/Basics/Utils.v | 2 ++ theories/Eq/Eqit.v | 17 ++++++----------- theories/Props/Leaf.v | 2 +- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/extra/IForest.v b/extra/IForest.v index 0b846e4d..06e1e92f 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -350,9 +350,8 @@ Qed. : Proper (eq_itree eq ==> iff) (elem c t). Proof. - repeat red. revert t. - tower induction. - { split. all: repeat intro; apply H; auto. } + repeat red. revert t. + tower induction. split. - intros HI. repeat red; repeat red in HI. @@ -378,7 +377,6 @@ Qed. Proof. repeat red. revert t. tower induction. - { split. all: repeat intro; apply H; auto. } split. - intros HI. repeat red; repeat red in HI. @@ -419,7 +417,6 @@ Qed. Proper (eq_itree eq ==> eq ==> iff) (elem c). Proof. repeat red. tower induction. - { split. all: repeat intro; apply H; auto. } split. - intros HI. repeat red; repeat red in HI. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index f84362c8..34ce0ee7 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -169,4 +169,6 @@ Tactic Notation "unstep" "in" ident(h) := unstep_in h. Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. +Ltac apply_leq := match goal with [H : _ <= _ |- _] => apply H end. + (* ----------------------------------------------------------------- *) \ No newline at end of file diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 95024ff9..2c9c297c 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -840,11 +840,8 @@ Proof. unstep. eapply IHEQ; eauto. Qed. - - Ltac inf_closed_forall_auto := repeat match goal with - | [|- inf_closed (fun _ => forall _, _)] => apply inf_closed_all; intro end. @@ -852,15 +849,15 @@ repeat match goal with Ltac inf_closed_impl_auto := repeat match goal with | [|- inf_closed (fun _ => _ -> _)] => - apply inf_closed_impl; intros!; - match goal with [H : _ <= _ |- _] => apply H; auto end - end. - + apply inf_closed_impl; [intros!|]; + apply_leq; firstorder end. +Ltac inf_closed_final_auto := +solve [repeat intro; try solve [firstorder]; try apply_leq ; firstorder]. Ltac inf_closed_auto := repeat match goal with -| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto) +| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto || inf_closed_final_auto) end. Ltac tower_induction := apply tower; [inf_closed_auto|]. @@ -1836,9 +1833,7 @@ elem c _ _ UU t1 t2 -> elem c _ _ RR (ITree.bind t1 k1) (ITree.bind t2 k2). Proof. revert_until U2. - tower induction. - - intros. - eapply H0; eauto. + tower induction. - intros. icbn in *. genobs t1 ot1. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index ba83d09e..5d2cc99d 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -212,8 +212,8 @@ Proof. intros E R1 R2 RR U1 U2. intros UU b1 b2 c t1 t2 k1 k2. revert UU t1 t2 k1 k2. +(* TOUR: EXPERIMENT: Why is this inf-closed? *) tower induction. - { intros. unfold Datatypes.id. apply H0; auto. } intros x IH. intros UU t1 t2 k1 k2 EQT EQKL. cbn [eqit_mon body] in *. From 4ddc3783c0db387014f12d5ae88ca0cdeb857318 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 3 Jun 2026 13:38:51 +0200 Subject: [PATCH 176/189] Change to use first iteration of mon_auto --- examples/ITreePredicatesExample.v | 2 +- extra/Dijkstra/ITreeDijkstra.v | 24 ++---- extra/Dijkstra/IterRel.v | 3 +- extra/Dijkstra/PureITreeDijkstra.v | 2 +- extra/IForest.v | 6 +- extra/ITrace/ITracePreds.v | 10 +-- extra/ITrace/ITracePrefix.v | 3 +- theories/Basics/Utils.v | 7 +- theories/Eq/Eqit.v | 127 +++++++++++------------------ theories/Eq/Rutt.v | 4 +- theories/Eq/SimUpToTaus.v | 6 +- theories/Props/EuttNoRet.v | 3 +- theories/Props/Infinite.v | 4 +- theories/Props/Leaf.v | 13 ++- 14 files changed, 93 insertions(+), 121 deletions(-) diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index c36be431..91153042 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -195,7 +195,7 @@ Definition NoGets_ {S R} (rec : itree (stateE S) R -> Prop) (t : itree (stateE S Lemma NoGetsF_mono : forall {S R}, Proper (leq ==> leq) (@NoGets_ S R). Proof. - repeat intro. red. induction H0; constructor; now apply H. + repeat intro. red. induction H0; auto with mono itree. Qed. Definition NoGets_mon S R := Build_mon (@NoGetsF_mono S R). diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index af684460..c6911fae 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -199,9 +199,8 @@ Section ITreeDijkstra. Lemma is_inf_mono {A} : Proper (leq ==> leq) (@is_inf_ A). Proof. - intros!. - inv H0. red. rewrite <- H1. econstructor. - now apply H. + intros!. red. + inv H0; auto with mono itree. Qed. Definition is_inf_mon A : mon (stream A -> Prop) := @@ -229,9 +228,7 @@ Section ITreeDijkstra. Lemma bisim_mono {A} : Proper (leq ==> leq) (@bisim_ A). Proof. - intros!. red. inv H0. - - constructor. - - constructor. now apply H. + intros!. red. inv H0; auto with mono itree. Qed. Definition bisim_mon {A} : mon (stream A -> stream A -> Prop) := @@ -308,8 +305,7 @@ step on gfp can reduce. Lemma forall_stream_mono (A : Type) (P : A -> Prop) : Proper (leq ==> leq) (forall_stream_ P). Proof. - repeat red. intros. red in H0. destruct H0; auto with itree. - constructor; auto. now apply H. + repeat red. intros. red in H0. destruct H0; auto with mono itree. Qed. Definition forall_stream_mon A P := Build_mon (forall_stream_mono A P). @@ -328,8 +324,7 @@ step on gfp can reduce. Lemma inf_many_mono (A : Type) (P : A -> Prop) : Proper (leq ==> leq) (inf_many_ P). Proof. - repeat red. intros. red in H0. induction H0; auto with itree. - apply cons_found; auto. now apply H. + repeat red. intros. red in H0. induction H0; auto with mono itree. Qed. Definition inf_many_mon A P := Build_mon (inf_many_mono A P). @@ -385,8 +380,7 @@ step on gfp can reduce. Lemma eqitE_mono {E1 E2 R1 R2 RR} : Proper (leq ==> leq) (@eqitE_ E1 E2 R1 R2 RR). Proof. repeat red. intros. rename x into t1. rename y into t2. - induction H0; eauto with itree. - constructor. now apply H. + induction H0; eauto with mono itree. Qed. Definition eqitE_mon {E1 E2 R1 R2 RR} := Build_mon (@eqitE_mono E1 E2 R1 R2 RR). @@ -408,8 +402,7 @@ step on gfp can reduce. Lemma eventless_mono {E1 R} : Proper (leq ==> leq) (@eventless_ E1 R). Proof. - repeat red. intros. red in H0. inversion H0; auto with itree. - constructor. now apply H. + repeat red. intros. red in H0. inversion H0; auto with mono itree. Qed. Definition eventless_mon {E1 R} := Build_mon (@eventless_mono E1 R). @@ -735,8 +728,7 @@ step on gfp can reduce. Lemma itree_includes_mono {R} : Proper (leq ==> leq) (@itree_includesF R). Proof. - repeat intro. induction H0; eauto with itree. - econstructor; eauto. now apply H. + repeat intro. induction H0; eauto with mono itree. Qed. Definition itree_includes_mon {R} := Build_mon (@itree_includes_mono R). diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 8b1176a0..54a0955c 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -23,8 +23,7 @@ Section IterRel. Lemma not_wf_F_mono : Proper (leq ==> leq) not_wf_F. Proof. - repeat red. intros; inv H0. - econstructor; eauto. now apply H. + repeat red. intros; inv H0. eauto with mono not_wf. Qed. Definition not_wf_F_mon := diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index b9cd0b41..f1d60dd1 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -236,7 +236,7 @@ Hint Constructors iterF : itree. (fun sim a => @iter_ A B sim body a p Hp). Proof. repeat red. intros. - induction H0; constructor; auto. + induction H0; constructor. destruct (body a) as [fa Hfa] eqn : Heq. simpl in *. refine (Hfa _ _ _ _ _ H0). intros. inversion H1; eauto with itree. eapply cont_a; eauto. now apply H. diff --git a/extra/IForest.v b/extra/IForest.v index 06e1e92f..1fa864fa 100644 --- a/extra/IForest.v +++ b/extra/IForest.v @@ -351,7 +351,11 @@ Qed. Proper (eq_itree eq ==> iff) (elem c t). Proof. repeat red. revert t. - tower induction. + (* apply tower. + inf_closed_forall_auto. + intros T HT. split. repeat intro. apply HT. apply H0. + apply H, H0. *) + tower induction. split. - intros HI. repeat red; repeat red in HI. diff --git a/extra/ITrace/ITracePreds.v b/extra/ITrace/ITracePreds.v index 2dc07847..cb3dc7e9 100644 --- a/extra/ITrace/ITracePreds.v +++ b/extra/ITrace/ITracePreds.v @@ -35,8 +35,7 @@ Definition trace_forall_ {E R} PE PR F (b : itrace E R) := Lemma trace_forall_mono {E R} PE PR : Proper (leq ==> leq) (@trace_forall_ E R PE PR). Proof. - repeat intro. red in H0. red. induction H0; - constructor; intros; auto; now apply H. + repeat intro. red in H0. red. induction H0; auto with mono itree. Qed. Definition trace_forall_mon {E R} PE PR := Build_mon (@trace_forall_mono E R PE PR). @@ -91,9 +90,7 @@ Definition trace_inf_often_ {E R} PE F (b : itrace E R) := Lemma trace_inf_often_mono {E R} PE : Proper (leq ==> leq) (@trace_inf_often_ E R PE). Proof. - repeat intro. red in H0. red. induction H0. - 1-2: now constructor. - constructor 3; auto. now apply H. + repeat intro. red in H0. red. induction H0; auto with mono itree. Qed. Definition trace_inf_often_mon {E R} PE := Build_mon (@trace_inf_often_mono E R PE). @@ -151,8 +148,7 @@ Section StateMachine. Lemma state_machine_mono : Proper (leq ==> leq) state_machine_. Proof. - intros!. red. red in H0. induction H0; auto with itree. - constructor; auto. now apply H. + intros!. red. red in H0. induction H0; auto with mono itree. Qed. Definition state_machine_mon := Build_mon (state_machine_mono). diff --git a/extra/ITrace/ITracePrefix.v b/extra/ITrace/ITracePrefix.v index 1baffa48..2a215634 100644 --- a/extra/ITrace/ITracePrefix.v +++ b/extra/ITrace/ITracePrefix.v @@ -44,8 +44,7 @@ Definition trace_prefix_ {E R S} F (br : itrace E R) (bs : itrace E S) := trace_ Lemma trace_prefix_mono {E R S} : Proper (leq ==> leq) (@trace_prefix_ E R S). Proof. - repeat intro. red. red in H0. induction H0; eauto with itree; - constructor; now apply H. + repeat intro. red. red in H0. induction H0; eauto with mono itree. Qed. Definition trace_prefix_mon {E R S} := Build_mon (@trace_prefix_mono E R S). diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 34ce0ee7..15f1f85a 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -169,6 +169,11 @@ Tactic Notation "unstep" "in" ident(h) := unstep_in h. Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. -Ltac apply_leq := match goal with [H : _ <= _ |- _] => apply H end. + (* RTODO use this *) +Ltac apply_leq := match goal with [H : _ <= _ |- _] => intros; apply H end. + +Create HintDb mono. + +Global Hint Extern 4 => apply_leq : mono. (* ----------------------------------------------------------------- *) \ No newline at end of file diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 2c9c297c..55a024cb 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -137,9 +137,7 @@ Section eqit. Proof. intros sim sim' Hsim R1 R2 RR x0 x1. unfold eqit_. intros IN. - induction IN; constructor; auto. - - apply Hsim; auto. - - intros ?; apply Hsim; auto. + induction IN; auto with mono itree. Qed. (* The monotone relation `b`. `eqit` is `gfp b`. *) @@ -164,7 +162,7 @@ Section eqit. End eqit. Arguments eqit_ {E} b1 b2 sim R1 R2 RR t1 t2/. Arguments eqit {E R1 R2} RR b1 b2 _ _. -Arguments eqit_mon {E} b1 b2. +Arguments eqit_mon {E} b1 b2. (** Notation of [eqit] and [eqitF]. You can write @@ -172,8 +170,8 @@ Arguments eqit_mon {E} b1 b2. [≈] using [[\approx]] [≳] using [[\gtrsim]] in tex-mode. - *) + (* eq_itree and relative functions *) (* gfp *) Infix "≅⟨ R ⟩" := (eq_itree R) (at level 70) : type_scope. @@ -188,6 +186,8 @@ Arguments eqit_mon {E} b1 b2. Infix "[≅⟨ R ⟩]" := (@elem _ _ (eqit_mon false false) _ _ _ R) (at level 70) : type_scope. Infix "[≅]" := (@elem _ _ (eqit_mon false false) _ _ _ eq) (at level 70) : type_scope. + (* eutt and relative functions *) + (* gfp *) Infix "≈⟨ R ⟩" := (eutt R) (at level 70) : type_scope. Infix "≈" := (eutt eq) (at level 70) : type_scope. (* b (gfp) *) @@ -200,6 +200,8 @@ Arguments eqit_mon {E} b1 b2. Infix "[≈⟨ R ⟩]" := (@elem _ _ (eqit_mon true true) _ _ _ R) (at level 70) : type_scope. Infix "[≈]" := (@elem _ _ (eqit_mon true true) _ _ _ eq) (at level 70) : type_scope. + (* euttge and relative functions *) + (* gfp *) Infix "≳⟨ R ⟩" := (euttge R) (at level 70) : type_scope. Infix "≳" := (euttge eq) (at level 70) : type_scope. (* b (gfp) *) @@ -231,50 +233,25 @@ Arguments eqit_mon {E} b1 b2. #[global] Hint Unfold euttge : itree. (** Tactics *) -(* RTODO Clean this up massively *) (** --- Per-relation hooks for the [eqit] family. --- *) - -(* Here we go: -stepping means - -b gfp -> gfp - -gfp to b gfp in goal -b gfp to gfp in ctx - -elem to b elem to (gfp to b gfp) in goal - -b elem to elem in ctx - -unstepping is redundant as the (gfp == b gfp) loop -is closed - -for b gfp -> gfp, we should be fine at F -for gfp -> b gfp we are fine at F - -for b elem to elem in ctx, we need better tactic support -for b elem to gfp b in goal, we might be fine -for F elem vs b elem - test -for elem upwards, we are fine - -we need a tactic for stepping to F, and we need -one for stepping to b - -why do we need forced itrees (itree') in eqitF? - -because we can destruct itree'. - -*) - #[local] Ltac iunfold := unfold euttge, eq_itree, eutt, eqit. #[local] Ltac iunfold_in h := unfold euttge, eq_itree, eutt, eqit in h. #[local] Ltac iunfold_all := unfold euttge, eq_itree, eutt, eqit in *. +(* Unfolding tactics for bisimulations. *) +(* Generally, these are used to go from [eqit_mon] to [eqitF]. *) +(* Sometimes you will call these manually. *) Ltac icbn := repeat red. Ltac icbn_in h := repeat red in h. +(* Used to refold eqit; useful for automation: + sometimes [auto] will not recognize that [eqit] should solve + a goal of the shape [gfp (eqit_mon)], + though they are isomorphic up to unfolding. *) + +(* Typically, you will not invoke these tactics manually. *) Ltac refold := repeat match goal with | |- context[gfp (@eqit_mon ?E ?b1 ?b2) ?R1 ?R2 ?RR] => @@ -293,8 +270,15 @@ Ltac refold_in h := try fold (@eutt E _ _) in h end. +(* Change [eqitF] to [eqit_mon]. It is a bit complex due to constructors + not using [observe] at all times. *) + +(* RAB : it would be a nice feature to have _all_ [observe] instances + be canonical; i.e. not to have both (observe (Ret r)) and (RetF r). + + *) Ltac to_mon_core := -match goal with +cbn; match goal with | |- context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => change (eqitF RR b1 b2 (f R1 R2 RR) @@ -320,13 +304,14 @@ match goal with t1 (go (con a))) end. +(* A trick to make [to_mon] work under [forall]. *) Ltac to_mon := -let dummy := fresh "dummy" in -assert (dummy : True) by constructor; +let guard := fresh "guard" in +assert (guard : True) by constructor; intros; to_mon_core; - revert_until dummy; - clear dummy. + revert_until guard; + clear guard. Ltac to_mon_in h := match type of h with @@ -420,6 +405,22 @@ Ltac taul := apply EqTauL; [auto|]. Ltac taur := apply EqTauR; [auto|]. Ltac taus := apply EqTau. +(* inf_closed automation *) +Ltac inf_closed_forall_auto := + repeat (apply inf_closed_all; intro). + +Ltac inf_closed_impl_auto := + repeat (apply inf_closed_impl; [intros!; apply_leq; firstorder|]). + +Ltac inf_closed_final_auto := +solve [repeat intro; try solve [firstorder]; try apply_leq ; firstorder]. + +Ltac inf_closed_auto := +repeat (inf_closed_forall_auto || inf_closed_impl_auto || inf_closed_final_auto). + +Ltac tower_induction := apply tower; [inf_closed_auto|]. +Tactic Notation "tower" "induction" := tower_induction. + Module step_notation_tests. #[local] Parameter E : Type -> Type. @@ -500,7 +501,7 @@ Lemma eqitF_inv_VisF_weak {E R1 R2} (RR : R1 -> R2 -> Prop) {b1 b2 sim} X1 (e1 : E X1) (k1 : X1 -> _) X2 (e2 : E X2) (k2 : X2 -> _) : eqitF RR b1 b2 sim (VisF e1 k1) (VisF e2 k2) -> exists p : X1 = X2, eqeq E p e1 e2 /\ pweqeq sim p k1 k2. -Proof. +Proof. refine (fun H => match H in eqitF _ _ _ _ t1 t2 return match t1, t2 return Prop with @@ -840,28 +841,6 @@ Proof. unstep. eapply IHEQ; eauto. Qed. -Ltac inf_closed_forall_auto := -repeat match goal with -| [|- inf_closed (fun _ => forall _, _)] => - apply inf_closed_all; intro - end. - -Ltac inf_closed_impl_auto := -repeat match goal with -| [|- inf_closed (fun _ => _ -> _)] => - apply inf_closed_impl; [intros!|]; - apply_leq; firstorder end. - -Ltac inf_closed_final_auto := -solve [repeat intro; try solve [firstorder]; try apply_leq ; firstorder]. - -Ltac inf_closed_auto := -repeat match goal with -| [|- inf_closed _] => (inf_closed_forall_auto || inf_closed_impl_auto || inf_closed_final_auto) -end. - -Ltac tower_induction := apply tower; [inf_closed_auto|]. -Tactic Notation "tower" "induction" := tower_induction. #[global] Instance euttge_proper_euttC {E R1 R2} (RR : R1 -> R2 -> Prop) (c : euttC): @@ -2499,14 +2478,14 @@ Section eutt_facts. #[global] Instance eutt_cong_eutt {E R1 R2 RR} : - Proper (eutt eq ==> eutt eq ==> flip impl) (@eutt E R1 R2 RR). + Proper (eutt eq ==> eutt eq ==> iff) (@eutt E R1 R2 RR). Proof. intros!. now rewrite H, H0. Qed. #[global] Instance eutt_cong_euttge {E R1 R2 RR}: - Proper (euttge eq ==> euttge eq ==> flip impl) + Proper (euttge eq ==> euttge eq ==> iff) (@eqit E R1 R2 RR true true). Proof. intros!. now rewrite H, H0. @@ -2514,15 +2493,7 @@ Qed. #[global] Instance eutt_cong_eq {E R1 R2 RR}: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) - (@eqit E R1 R2 RR true true). -Proof. - intros!. now rewrite H, H0. -Qed. - -#[global] -Instance eutt_cong_ {E R1 R2 RR}: - Proper (eq_itree eq ==> eq_itree eq ==> flip impl) + Proper (eq_itree eq ==> eq_itree eq ==> iff) (@eqit E R1 R2 RR true true). Proof. intros!. now rewrite H, H0. diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index ac534c74..a3bfd0c1 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -68,9 +68,7 @@ Section RuttF. Lemma rutt_mono : Proper (leq ==> leq) rutt_. Proof. - repeat intro. unfold rutt_ in *. induction H0; eauto with itree. - constructor; now apply H. - constructor; intros; eauto; now apply H, H1. + repeat intro. unfold rutt_ in *. induction H0; eauto with mono itree. Qed. Definition rutt_mon : mon ((R1 -> R2 -> Prop) -> itree E1 R1 -> itree E2 R2 -> Prop) := diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index 1d15571d..0465de0b 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -50,9 +50,7 @@ Hint Constructors suttF : itree. Lemma suttF_mono : Proper (leq ==> leq) suttF. Proof. repeat intro. - induction H0; eauto with itree. - constructor; intro; apply H, SUTTK. - constructor; apply H, EQTAUS. + induction H0; eauto with mono itree. Qed. Definition sutt_mon := {| body := suttF ; Hbody := suttF_mono |}. @@ -208,7 +206,7 @@ Proof. intros ?? ?. now apply (gfp_chain c). - simpl. econstructor. intros. apply CIH; eauto with itree. - constructor. eauto. - - constructor. + - constructor. change (elem c (observe (ITree.bind t0 s1)) (observe (ITree.bind (go ot2) s2))). apply CIH; auto. Qed. diff --git a/theories/Props/EuttNoRet.v b/theories/Props/EuttNoRet.v index bcc7553d..1e7847fd 100644 --- a/theories/Props/EuttNoRet.v +++ b/theories/Props/EuttNoRet.v @@ -41,11 +41,10 @@ Proof. inversion Hdiv; subst. - unfold bind, Monad_itree. rewrite observe_bind. rewrite <- H. cbn. apply EqTau. - change (ITree.subst f t0) with (ITree.bind t0 f). apply CIH. auto. - unfold bind, Monad_itree. rewrite observe_bind. rewrite <- H. cbn. apply EqVis. - intros v. change (ITree.subst f (k v)) with (ITree.bind (k v) f). + intros v. apply CIH. apply H0. Qed. diff --git a/theories/Props/Infinite.v b/theories/Props/Infinite.v index dcf5e368..8f895df8 100644 --- a/theories/Props/Infinite.v +++ b/theories/Props/Infinite.v @@ -39,8 +39,8 @@ Definition any_infinite_ {E X} sim := Lemma any_infinite__mono {E X} : Proper (leq ==> leq) (@any_infinite_ E X). Proof. - repeat red; intros. induction H0; - econstructor; eapply H; eauto. + repeat red; intros. + induction H0; eauto with mono itree. Qed. Definition any_infinite_mon {E X} : mon (itree E X -> Prop) := diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 5d2cc99d..6089f65e 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -211,8 +211,19 @@ Lemma eqit_clo_bind_gen : Proof. intros E R1 R2 RR U1 U2. intros UU b1 b2 c t1 t2 k1 k2. - revert UU t1 t2 k1 k2. + revert UU t1 t2 k1 k2. (* TOUR: EXPERIMENT: Why is this inf-closed? *) +(* EXPERIMENT ZONE *) +(* apply tower. +Ltac all := inf_closed_forall_auto. +Ltac impl := inf_closed_impl_auto. +all. +repeat + (apply inf_closed_impl; [intros!; apply_leq; firstorder|]). + (* it seems the `Proper` subproofs are always true. *) + repeat intro; apply H; firstorder. + impl. *) +(* END *) tower induction. intros x IH. intros UU t1 t2 k1 k2 EQT EQKL. From 649b40df358a248cd3973de3b059be3bdecde51f Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Wed, 3 Jun 2026 15:10:23 +0200 Subject: [PATCH 177/189] Strong monauto --- examples/ITreePredicatesExample.v | 5 ++--- extra/Dijkstra/ITreeDijkstra.v | 30 +++++++----------------------- extra/Dijkstra/IterRel.v | 7 ++----- extra/Dijkstra/PureITreeDijkstra.v | 5 ++--- extra/ITrace/ITracePreds.v | 12 +++--------- extra/ITrace/ITracePrefix.v | 4 +--- theories/Basics/Utils.v | 19 ++++++++++++++++++- theories/Eq/Eqit.v | 6 +----- theories/Eq/Rutt.v | 4 +--- theories/Eq/SimUpToTaus.v | 5 +---- theories/Props/Infinite.v | 10 ++-------- 11 files changed, 40 insertions(+), 67 deletions(-) diff --git a/examples/ITreePredicatesExample.v b/examples/ITreePredicatesExample.v index 91153042..204e94e3 100644 --- a/examples/ITreePredicatesExample.v +++ b/examples/ITreePredicatesExample.v @@ -194,9 +194,8 @@ Definition NoGets_ {S R} (rec : itree (stateE S) R -> Prop) (t : itree (stateE S Lemma NoGetsF_mono : forall {S R}, Proper (leq ==> leq) (@NoGets_ S R). -Proof. - repeat intro. red. induction H0; auto with mono itree. -Qed. +Proof. monauto. Qed. + Definition NoGets_mon S R := Build_mon (@NoGetsF_mono S R). diff --git a/extra/Dijkstra/ITreeDijkstra.v b/extra/Dijkstra/ITreeDijkstra.v index c6911fae..a73cedbf 100644 --- a/extra/Dijkstra/ITreeDijkstra.v +++ b/extra/Dijkstra/ITreeDijkstra.v @@ -198,10 +198,7 @@ Section ITreeDijkstra. fun s => is_infF F (observe_stream s). Lemma is_inf_mono {A} : Proper (leq ==> leq) (@is_inf_ A). - Proof. - intros!. red. - inv H0; auto with mono itree. - Qed. + Proof. monauto. Qed. Definition is_inf_mon A : mon (stream A -> Prop) := {| body := @is_inf_ A; Hbody := is_inf_mono |}. @@ -227,9 +224,7 @@ Section ITreeDijkstra. fun s1 s2 => bisimF F (observe_stream s1) (observe_stream s2). Lemma bisim_mono {A} : Proper (leq ==> leq) (@bisim_ A). - Proof. - intros!. red. inv H0; auto with mono itree. - Qed. + Proof. monauto. Qed. Definition bisim_mon {A} : mon (stream A -> stream A -> Prop) := {| body := @bisim_ A ; Hbody := bisim_mono |}. @@ -304,9 +299,7 @@ step on gfp can reduce. fun s => forall_streamF P F (observe_stream s). Lemma forall_stream_mono (A : Type) (P : A -> Prop) : Proper (leq ==> leq) (forall_stream_ P). - Proof. - repeat red. intros. red in H0. destruct H0; auto with mono itree. - Qed. + Proof. monauto. Qed. Definition forall_stream_mon A P := Build_mon (forall_stream_mono A P). @@ -323,9 +316,7 @@ step on gfp can reduce. fun s => inf_manyF P F (observe_stream s). Lemma inf_many_mono (A : Type) (P : A -> Prop) : Proper (leq ==> leq) (inf_many_ P). - Proof. - repeat red. intros. red in H0. induction H0; auto with mono itree. - Qed. + Proof. monauto. Qed. Definition inf_many_mon A P := Build_mon (inf_many_mono A P). @@ -378,10 +369,7 @@ step on gfp can reduce. := eqitEF RR sim (observe t1) (observe t2). Lemma eqitE_mono {E1 E2 R1 R2 RR} : Proper (leq ==> leq) (@eqitE_ E1 E2 R1 R2 RR). - Proof. - repeat red. intros. rename x into t1. rename y into t2. - induction H0; eauto with mono itree. - Qed. + Proof. monauto. Qed. Definition eqitE_mon {E1 E2 R1 R2 RR} := Build_mon (@eqitE_mono E1 E2 R1 R2 RR). @@ -401,9 +389,7 @@ step on gfp can reduce. Hint Unfold eventless_ : itree. Lemma eventless_mono {E1 R} : Proper (leq ==> leq) (@eventless_ E1 R). - Proof. - repeat red. intros. red in H0. inversion H0; auto with mono itree. - Qed. + Proof. monauto. Qed. Definition eventless_mon {E1 R} := Build_mon (@eventless_mono E1 R). @@ -727,9 +713,7 @@ step on gfp can reduce. Hint Constructors itree_includesF : itree. Lemma itree_includes_mono {R} : Proper (leq ==> leq) (@itree_includesF R). - Proof. - repeat intro. induction H0; eauto with mono itree. - Qed. + Proof. monauto. Qed. Definition itree_includes_mon {R} := Build_mon (@itree_includes_mono R). diff --git a/extra/Dijkstra/IterRel.v b/extra/Dijkstra/IterRel.v index 54a0955c..33255f5a 100644 --- a/extra/Dijkstra/IterRel.v +++ b/extra/Dijkstra/IterRel.v @@ -20,11 +20,8 @@ Section IterRel. | not_wf (a' : A) (Hrel : r a a') (Hcorec : F a') . Hint Constructors not_wf_F : not_wf. - Lemma not_wf_F_mono : Proper (leq ==> leq) - not_wf_F. - Proof. - repeat red. intros; inv H0. eauto with mono not_wf. - Qed. + Lemma not_wf_F_mono : Proper (leq ==> leq) not_wf_F. + Proof. monauto. Qed. Definition not_wf_F_mon := {| body := not_wf_F ; Hbody := not_wf_F_mono |}. diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index f1d60dd1..c2d29ec4 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -232,9 +232,8 @@ Hint Constructors iterF : itree. Hint Unfold iter_ : itree. Lemma iter_mono {A B} body p Hp : - Proper (leq ==> leq) - (fun sim a => @iter_ A B sim body a p Hp). - Proof. + Proper (leq ==> leq) (fun sim a => @iter_ A B sim body a p Hp). + Proof. repeat red. intros. induction H0; constructor. destruct (body a) as [fa Hfa] eqn : Heq. simpl in *. diff --git a/extra/ITrace/ITracePreds.v b/extra/ITrace/ITracePreds.v index cb3dc7e9..36d2c257 100644 --- a/extra/ITrace/ITracePreds.v +++ b/extra/ITrace/ITracePreds.v @@ -34,9 +34,7 @@ Definition trace_forall_ {E R} PE PR F (b : itrace E R) := trace_forallF F PE PR (observe b). Lemma trace_forall_mono {E R} PE PR : Proper (leq ==> leq) (@trace_forall_ E R PE PR). -Proof. - repeat intro. red in H0. red. induction H0; auto with mono itree. -Qed. +Proof. monauto. Qed. Definition trace_forall_mon {E R} PE PR := Build_mon (@trace_forall_mono E R PE PR). @@ -89,9 +87,7 @@ Definition trace_inf_often_ {E R} PE F (b : itrace E R) := trace_inf_oftenF PE F (observe b). Lemma trace_inf_often_mono {E R} PE : Proper (leq ==> leq) (@trace_inf_often_ E R PE). -Proof. - repeat intro. red in H0. red. induction H0; auto with mono itree. -Qed. +Proof. monauto. Qed. Definition trace_inf_often_mon {E R} PE := Build_mon (@trace_inf_often_mono E R PE). @@ -147,9 +143,7 @@ Section StateMachine. state_machineF PEv PRet F (observe tr). Lemma state_machine_mono : Proper (leq ==> leq) state_machine_. - Proof. - intros!. red. red in H0. induction H0; auto with mono itree. - Qed. + Proof. monauto. Qed. Definition state_machine_mon := Build_mon (state_machine_mono). diff --git a/extra/ITrace/ITracePrefix.v b/extra/ITrace/ITracePrefix.v index 2a215634..b7f485f5 100644 --- a/extra/ITrace/ITracePrefix.v +++ b/extra/ITrace/ITracePrefix.v @@ -43,9 +43,7 @@ Definition trace_prefix_ {E R S} F (br : itrace E R) (bs : itrace E S) := trace_ #[global] Hint Unfold trace_prefix_ : itree. Lemma trace_prefix_mono {E R S} : Proper (leq ==> leq) (@trace_prefix_ E R S). -Proof. - repeat intro. red. red in H0. induction H0; eauto with mono itree. -Qed. +Proof. monauto. Qed. Definition trace_prefix_mon {E R S} := Build_mon (@trace_prefix_mono E R S). diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 15f1f85a..1538798f 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -169,11 +169,28 @@ Tactic Notation "unstep" "in" ident(h) := unstep_in h. Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. - (* RTODO use this *) Ltac apply_leq := match goal with [H : _ <= _ |- _] => intros; apply H end. +(* nonlinear pattern works here *) +Ltac induct_on_premise := match goal with +| H: context [?rel _] |- context [?rel ] => induction H +end. + Create HintDb mono. Global Hint Extern 4 => apply_leq : mono. +Ltac monauto := (solve [ +(* break `Proper`, introduce names and premises` *) +cbv; +intros; +(* find hypothesis matching goal and proceed by cases *) +induct_on_premise; +(* break down each case as necessary. `solve` will backtrack in a helpful way. *) +try econstructor; +(* use monotonicity fact itself: [sim] <= [sim'] *) +try apply_leq; +eauto] || fail "`monauto` could not solve this goal."). + +(* TODO: let user add a tactic db here *) (* ----------------------------------------------------------------- *) \ No newline at end of file diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 55a024cb..79c0831e 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -134,11 +134,7 @@ Section eqit. (** [eqitF] and [eqit_] are both monotone. *) Lemma eqitF_mono b1 b2 : Proper (leq ==> leq) (eqit_ b1 b2). - Proof. - intros sim sim' Hsim R1 R2 RR x0 x1. - unfold eqit_. intros IN. - induction IN; auto with mono itree. - Qed. + Proof. monauto. Qed. (* The monotone relation `b`. `eqit` is `gfp b`. *) diff --git a/theories/Eq/Rutt.v b/theories/Eq/Rutt.v index a3bfd0c1..45cfb4c5 100644 --- a/theories/Eq/Rutt.v +++ b/theories/Eq/Rutt.v @@ -67,9 +67,7 @@ Section RuttF. ruttF RR (sim RR) (observe t1) (observe t2). Lemma rutt_mono : Proper (leq ==> leq) rutt_. - Proof. - repeat intro. unfold rutt_ in *. induction H0; eauto with mono itree. - Qed. + Proof. monauto. Qed. Definition rutt_mon : mon ((R1 -> R2 -> Prop) -> itree E1 R1 -> itree E2 R2 -> Prop) := {| body := rutt_ ; Hbody := rutt_mono |}. diff --git a/theories/Eq/SimUpToTaus.v b/theories/Eq/SimUpToTaus.v index 0465de0b..83b72e29 100644 --- a/theories/Eq/SimUpToTaus.v +++ b/theories/Eq/SimUpToTaus.v @@ -48,10 +48,7 @@ Inductive suttF (sutt: itree' E R1 -> itree' E R2 -> Prop) : Hint Constructors suttF : itree. Lemma suttF_mono : Proper (leq ==> leq) suttF. -Proof. - repeat intro. - induction H0; eauto with mono itree. -Qed. +Proof. monauto. Qed. Definition sutt_mon := {| body := suttF ; Hbody := suttF_mono |}. diff --git a/theories/Props/Infinite.v b/theories/Props/Infinite.v index 8f895df8..65fb9532 100644 --- a/theories/Props/Infinite.v +++ b/theories/Props/Infinite.v @@ -38,10 +38,7 @@ Definition any_infinite_ {E X} sim := Lemma any_infinite__mono {E X} : Proper (leq ==> leq) (@any_infinite_ E X). -Proof. - repeat red; intros. - induction H0; eauto with mono itree. -Qed. +Proof. monauto. Qed. Definition any_infinite_mon {E X} : mon (itree E X -> Prop) := {| body := @any_infinite_ E X ; Hbody := any_infinite__mono |}. @@ -108,10 +105,7 @@ Proof. Qed. Lemma all_infinite__mono {E A} : Proper (leq ==> leq) (@all_infinite_ E A). -Proof. - repeat red; intros sim sim' LE t IN. - unfold all_infinite_ in *. eapply all_infiniteF_mono; eauto. -Qed. +Proof. monauto. Qed. Definition all_infinite_mon {E A} : mon (itree E A -> Prop) := {| body := @all_infinite_ E A ; Hbody := all_infinite__mono |}. From fdf109642b777ee9927692c151c91ca731e8be39 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Thu, 4 Jun 2026 14:08:37 +0200 Subject: [PATCH 178/189] Removed a comment --- extra/Dijkstra/PureITreeDijkstra.v | 4 ---- 1 file changed, 4 deletions(-) diff --git a/extra/Dijkstra/PureITreeDijkstra.v b/extra/Dijkstra/PureITreeDijkstra.v index c2d29ec4..6f75b74c 100644 --- a/extra/Dijkstra/PureITreeDijkstra.v +++ b/extra/Dijkstra/PureITreeDijkstra.v @@ -247,10 +247,6 @@ Qed. fun (f : A -> PureITreeSpec (A + B) ) (a : A) (p : itree void1 B -> Prop) (Hp : resp_eutt p) => (gfp (@iter_mon A B f p Hp)) a. -(* Lemma fix_monotinici_next : False. - fail "next task: fix monotinici definitions". -Abort. *) - Lemma iter_monot : forall A B (f : A -> PureITreeSpec (A + B) ) (a : A), monotonici B (_iter f a). Proof. From bee6647ade57f07991258db908dc2a9c0fdc79b3 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 8 Jun 2026 22:34:36 +0200 Subject: [PATCH 179/189] Improved chain tactics --- extra/Secure/SecureEqBind.v | 24 ++++++++++---------- extra/Secure/SecureEqEuttHalt.v | 2 +- extra/Secure/SecureEqProgInsens.v | 6 ++--- extra/Secure/SecureEqWcompat.v | 4 ++-- theories/Basics/Utils.v | 37 +++++++++++++++++++++++++++---- theories/Eq/Eqit.v | 15 ++++++++----- theories/Eq/RuttFacts.v | 4 ++-- theories/Props/Leaf.v | 2 +- 8 files changed, 64 insertions(+), 30 deletions(-) diff --git a/extra/Secure/SecureEqBind.v b/extra/Secure/SecureEqBind.v index 6bced2df..3cfca27b 100644 --- a/extra/Secure/SecureEqBind.v +++ b/extra/Secure/SecureEqBind.v @@ -87,23 +87,23 @@ Lemma secure_eqit_bind_chain : Proof. intros E R1 R2 S1 S2 RR RS b1 b2 Lab pr lev c. tower induction. - intros x IH t1 t2 k1 k2 Hsec Hcont. + intros IH t1 t2 k1 k2 Hsec Hcont. step in Hsec. genobs t1 ot1. genobs t2 ot2. - hinduction Hsec before x; intros. + hinduction Hsec before IH; intros. - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_ret_l. now apply Hcont. - - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_tau. constructor. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_tau. constructor. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain c); now apply Hcont]. - apply simpobs in Heqot1. rewrite Heqot1. rewrite bind_tau. constructor; auto. eapply IHHsec; eauto. - apply simpobs in Heqot2. rewrite Heqot2. rewrite bind_tau. constructor; auto. eapply IHHsec; eauto. - - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_vis. constructor; auto. intros a. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. - - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. rewrite bind_vis, bind_tau. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. - - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. rewrite bind_tau, bind_vis. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. - - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_vis. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain x); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_vis. constructor; auto. intros a. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain c); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. rewrite bind_vis, bind_tau. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain c); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. rewrite bind_tau, bind_vis. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain c); now apply Hcont]. + - apply simpobs in Heqot1. apply simpobs in Heqot2. rewrite Heqot1, Heqot2. repeat rewrite bind_vis. unpriv_co. eapply IH; [apply H | intros rr1 rr2 HRR; apply (b_chain c); now apply Hcont]. - apply simpobs in Heqot1. rewrite Heqot1. rewrite bind_vis. unpriv_ind. eapply H0; eauto. - apply simpobs in Heqot2. rewrite Heqot2. rewrite bind_vis. unpriv_ind. eapply H0; eauto. - - apply (gfp_bchain x). eapply eqit_bind_shalt_aux1; eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. eauto. - - apply (gfp_bchain x). eapply eqit_bind_shalt_aux2; eauto. step. rewrite <- Heqot1. cbn. unpriv_halt. eauto. - - apply (gfp_bchain x). eapply eqit_bind_shalt_aux1 with (e := e1); eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. - - apply (gfp_bchain x). eapply eqit_bind_shalt_aux2 with (e := e2); eauto. step. rewrite <- Heqot1. cbn. unpriv_halt. + - apply (gfp_bchain c). eapply eqit_bind_shalt_aux1; eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. eauto. + - apply (gfp_bchain c). eapply eqit_bind_shalt_aux2; eauto. step. rewrite <- Heqot1. cbn. unpriv_halt. eauto. + - apply (gfp_bchain c). eapply eqit_bind_shalt_aux1 with (e := e1); eauto. step. rewrite <- Heqot2. cbn. unpriv_halt. + - apply (gfp_bchain c). eapply eqit_bind_shalt_aux2 with (e := e2); eauto. step. rewrite <- Heqot1. cbn. unpriv_halt. Qed. @@ -219,7 +219,7 @@ Lemma iter_bind_aux: end)). Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 c. - tower induction. clear c; intros c CIH t1 t2 Ht12 Hbody. step in Ht12. + tower induction. intros CIH t1 t2 Ht12 Hbody. step in Ht12. icbn. unfold observe. cbn. hinduction Ht12 before E; intros; simpobs; cbn; eauto; diff --git a/extra/Secure/SecureEqEuttHalt.v b/extra/Secure/SecureEqEuttHalt.v index bba5d737..69100bb1 100644 --- a/extra/Secure/SecureEqEuttHalt.v +++ b/extra/Secure/SecureEqEuttHalt.v @@ -30,7 +30,7 @@ Local Open Scope monad_scope. rename x0 into x'; rename y0 into y'. all: revert x y EQx x' y' EQy. all: tower induction; - clear c; intros c IH x x' EQx y y' EQy EQ; step in EQx; step in EQy. + intros IH x x' EQx y y' EQy EQ; step in EQx; step in EQy. all: icbn; icbn in EQ; cbn in *. 1: genobs x ox; genobs y oy; revert x x' y y' Heqox Heqoy EQx EQy. diff --git a/extra/Secure/SecureEqProgInsens.v b/extra/Secure/SecureEqProgInsens.v index 50edaa5c..bf266a62 100644 --- a/extra/Secure/SecureEqProgInsens.v +++ b/extra/Secure/SecureEqProgInsens.v @@ -339,7 +339,7 @@ Qed. *) (c : Chain (pi_secure_eqit_mon Label priv RR b1 b2 l)) : Proper (eq_itree (E := E) eq ==> eq_itree eq ==> flip impl) (elem c). Proof. - do 5 red. tower induction. clear c. intros c CIH t1 t2 H12 t3 t4 H34 Hpi. + do 5 red. tower induction. intros CIH t1 t2 H12 t3 t4 H34 Hpi. icbn; icbn in Hpi. step in H12; step in H34. induction Hpi; inv_eq_itree. (* ret and coinductive cases are simple *) @@ -397,7 +397,7 @@ Proof. try solve [now simpobs_subst]; solve [now step; apply_foralls]. intros t1 t2 c. revert t1 t2. tower induction. - clear c; intros c CIH t1 t2 Hk1k2 Ht1t2. + intros CIH t1 t2 Hk1k2 Ht1t2. step in Ht1t2. genobs t1 ot1. genobs t2 ot2; icbn. hinduction Ht1t2 before c; intros. - rewrite 2 observe_bind. simpobs. now apply Hk1k2. @@ -445,7 +445,7 @@ Lemma pi_eqit_secure_iter_bind_aux: end)). Proof. intros E B2 B1 A1 A2 RA RB b1 b2 Label priv l body1 body2 c. - tower induction. clear c; intros c CIH Hbody t1 t2 Ht12. step in Ht12. + tower induction. intros CIH Hbody t1 t2 Ht12. step in Ht12. icbn. genobs t1 ot1. genobs t2 ot2. hinduction Ht12 before E; intros. #[local] Ltac break_observe := unfold observe; cbn; simpobs; cbn. diff --git a/extra/Secure/SecureEqWcompat.v b/extra/Secure/SecureEqWcompat.v index e48a8d9f..04a0c9b2 100644 --- a/extra/Secure/SecureEqWcompat.v +++ b/extra/Secure/SecureEqWcompat.v @@ -205,8 +205,8 @@ Proof. *) flip impl) (elem c). Proof. unfold Proper, respectful, flip, impl. - tower induction. clear c. - intros c CIH t1 t2 Ht1t2 t3 t4 Ht3t4 Hbt2t4. + tower induction. + intros CIH t1 t2 Ht1t2 t3 t4 Ht3t4 Hbt2t4. icbn; icbn in Hbt2t4. step in Ht1t2; step in Ht3t4. revert t1 t3 Ht1t2 Ht3t4. induction Hbt2t4; intros. diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 1538798f..7c1c9eb7 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -169,7 +169,10 @@ Tactic Notation "unstep" "in" ident(h) := unstep_in h. Tactic Notation "hinduction" hyp(IND) "before" hyp(H) := move IND before H; revert_until IND; induction IND. -Ltac apply_leq := match goal with [H : _ <= _ |- _] => intros; apply H end. +Ltac apply_leq := match goal with + | [H : _ <= _ |- _]=> intros; apply H + | [H : leq _ _ |- _]=> intros; apply H +end. (* nonlinear pattern works here *) Ltac induct_on_premise := match goal with @@ -180,7 +183,9 @@ Create HintDb mono. Global Hint Extern 4 => apply_leq : mono. -Ltac monauto := (solve [ +Ltac monauto := + match goal with |- Proper (leq _ leq) _ => +(solve [ (* break `Proper`, introduce names and premises` *) cbv; intros; @@ -190,7 +195,31 @@ induct_on_premise; try econstructor; (* use monotonicity fact itself: [sim] <= [sim'] *) try apply_leq; -eauto] || fail "`monauto` could not solve this goal."). +eauto] || fail "`monauto` could not solve this goal.") + +| _ => fail "monauto only works on goals of the shape `Proper (leq ==> leq) rel`." +end. (* TODO: let user add a tactic db here *) -(* ----------------------------------------------------------------- *) \ No newline at end of file +(* ----------------------------------------------------------------- *) + +(* inf_closed automation *) +Ltac inf_closed_forall_auto := + repeat (apply inf_closed_all; intro). + +Ltac inf_closed_impl_auto := + repeat (apply inf_closed_impl; [intros!; apply_leq; firstorder|]). + +Ltac inf_closed_final_auto := + solve [repeat intro; try solve [firstorder]; try apply_leq ; firstorder]. + +Ltac inf_closed_auto := + repeat (inf_closed_forall_auto || inf_closed_impl_auto || inf_closed_final_auto). + +(* tower induction always leaves the goal with the form `forall _ : Chain, ...` ; + match on this type and clear the old Chain *) +Ltac clear_old_chain := match goal with + | c : ?T |- forall _ : ?T, _ => clear c; intro c end. + +Ltac tower_induction := apply tower; [inf_closed_auto|clear_old_chain]. +Tactic Notation "tower" "induction" := tower_induction. diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 79c0831e..1258c205 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -414,7 +414,10 @@ solve [repeat intro; try solve [firstorder]; try apply_leq ; firstorder]. Ltac inf_closed_auto := repeat (inf_closed_forall_auto || inf_closed_impl_auto || inf_closed_final_auto). -Ltac tower_induction := apply tower; [inf_closed_auto|]. +Ltac clear_old_chain := match goal with | c : ?T |- forall _ : ?T, _ + => clear c; intro c end. + +Ltac tower_induction := apply tower; [inf_closed_auto|clear_old_chain]. Tactic Notation "tower" "induction" := tower_induction. @@ -844,7 +847,7 @@ Qed. Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + intros IH x x' EQx y y' EQy; step in EQx; step in EQy. intros EQ. icbn in *. genobs x' ox'; genobs y' oy'. (* [hinduction] is not sufficient here, because [move] is unable to pass @@ -1031,7 +1034,7 @@ Abort. Proof with eauto with itree. unfold Proper, respectful, flip, impl. tower induction. - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + intros IH x x' EQx y y' EQy; step in EQx; step in EQy. intros EQ. icbn in *. genobs x' ox'; genobs y' oy'. revert x x' y y' Heqox' Heqoy' EQx EQy. @@ -2438,6 +2441,8 @@ End eqit_elem. Section eutt_facts. + (* rtodo: rewrite comments *) + (** * Equivalence up to taus *) (** Abbreviated as [eutt]. *) @@ -2482,7 +2487,7 @@ Qed. #[global] Instance eutt_cong_euttge {E R1 R2 RR}: Proper (euttge eq ==> euttge eq ==> iff) - (@eqit E R1 R2 RR true true). + (@eutt E R1 R2 RR). Proof. intros!. now rewrite H, H0. Qed. @@ -2490,7 +2495,7 @@ Qed. #[global] Instance eutt_cong_eq {E R1 R2 RR}: Proper (eq_itree eq ==> eq_itree eq ==> iff) - (@eqit E R1 R2 RR true true). + (@eutt E R1 R2 RR). Proof. intros!. now rewrite H, H0. Qed. diff --git a/theories/Eq/RuttFacts.v b/theories/Eq/RuttFacts.v index 50ee62dd..945e9607 100644 --- a/theories/Eq/RuttFacts.v +++ b/theories/Eq/RuttFacts.v @@ -144,7 +144,7 @@ Qed. Proper (eq_itree eq ==> eq_itree eq ==> iff) (elem c RR). Proof. split; revert_until c; tower induction; - intros x IH t1 t1' Ht1 t2 t2' Ht2; + intros IH t1 t1' Ht1 t2 t2' Ht2; step in Ht1; step in Ht2; rcbn; intros Hrutt; genobs t1' ot1'; genobs t2' ot2'; move Hrutt before IH; revert_until Hrutt; @@ -192,7 +192,7 @@ Qed. Proof. unfold Proper, respectful, flip, impl. tower induction. - clear c; intros c IH x x' EQx y y' EQy; step in EQx; step in EQy. + intros IH x x' EQx y y' EQy; step in EQx; step in EQy. rcbn; intros EQ. genobs x' ox'; genobs y' oy'. revert x x' y y' Heqox' Heqoy' EQx EQy. diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 6089f65e..33a0ce39 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -225,7 +225,7 @@ repeat impl. *) (* END *) tower induction. - intros x IH. + intros IH. intros UU t1 t2 k1 k2 EQT EQKL. cbn [eqit_mon body] in *. unfold eqit_ in *. From 3d161cb5635889b3d24c7ce879fec53c9bc7cdb5 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Mon, 8 Jun 2026 22:36:44 +0200 Subject: [PATCH 180/189] Rm Monauto error message, for later --- theories/Basics/Utils.v | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 7c1c9eb7..7323e4df 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -183,9 +183,7 @@ Create HintDb mono. Global Hint Extern 4 => apply_leq : mono. -Ltac monauto := - match goal with |- Proper (leq _ leq) _ => -(solve [ +Ltac monauto := (solve [ (* break `Proper`, introduce names and premises` *) cbv; intros; @@ -195,10 +193,7 @@ induct_on_premise; try econstructor; (* use monotonicity fact itself: [sim] <= [sim'] *) try apply_leq; -eauto] || fail "`monauto` could not solve this goal.") - -| _ => fail "monauto only works on goals of the shape `Proper (leq ==> leq) rel`." -end. +eauto] || fail "`monauto` could not solve this goal."). (* TODO: let user add a tactic db here *) (* ----------------------------------------------------------------- *) From 5e7580f87c1b0ac10eb7a45e999f46f1ae7b0a9a Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 9 Jun 2026 14:45:56 +0200 Subject: [PATCH 181/189] Slight improvement to monauto --- theories/Basics/Utils.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/theories/Basics/Utils.v b/theories/Basics/Utils.v index 7323e4df..c3e3b054 100644 --- a/theories/Basics/Utils.v +++ b/theories/Basics/Utils.v @@ -188,12 +188,12 @@ Ltac monauto := (solve [ cbv; intros; (* find hypothesis matching goal and proceed by cases *) -induct_on_premise; +solve [induct_on_premise; (* break down each case as necessary. `solve` will backtrack in a helpful way. *) try econstructor; (* use monotonicity fact itself: [sim] <= [sim'] *) try apply_leq; -eauto] || fail "`monauto` could not solve this goal."). +eauto]] || fail "`monauto` could not solve this goal."). (* TODO: let user add a tactic db here *) (* ----------------------------------------------------------------- *) From 62b8b5185f55b74ac0675c89353b9ca2a44b8a76 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 23 Jun 2026 14:20:30 +0200 Subject: [PATCH 182/189] removed some comments --- theories/Props/Leaf.v | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/theories/Props/Leaf.v b/theories/Props/Leaf.v index 33a0ce39..7593ca5d 100644 --- a/theories/Props/Leaf.v +++ b/theories/Props/Leaf.v @@ -212,18 +212,6 @@ Proof. intros E R1 R2 RR U1 U2. intros UU b1 b2 c t1 t2 k1 k2. revert UU t1 t2 k1 k2. -(* TOUR: EXPERIMENT: Why is this inf-closed? *) -(* EXPERIMENT ZONE *) -(* apply tower. -Ltac all := inf_closed_forall_auto. -Ltac impl := inf_closed_impl_auto. -all. -repeat - (apply inf_closed_impl; [intros!; apply_leq; firstorder|]). - (* it seems the `Proper` subproofs are always true. *) - repeat intro; apply H; firstorder. - impl. *) -(* END *) tower induction. intros IH. intros UU t1 t2 k1 k2 EQT EQKL. @@ -233,13 +221,11 @@ repeat genobs t2 ot2. hinduction EQT before RR; intros. 1-3: rewrite 2 observe_bind; simpobs. - + (* ret *) - apply EQKL. + + apply EQKL. * apply LeafRet; auto. * apply LeafRet; auto. * exact REL. - + (* tau *) - taus. + + taus. eapply IH. * exact REL. * intros u1 u2 HL1 HL2 HU. @@ -247,8 +233,7 @@ repeat -- eapply LeafTau; eauto. -- eapply LeafTau; eauto. -- exact HU. - + (* vis *) - constructor. intro v. + + constructor. intro v. eapply IH. * apply REL. * intros u1 u2 HL1 HL2 HU. @@ -256,12 +241,10 @@ repeat -- eapply LeafVis; eauto. -- eapply LeafVis; eauto. -- exact HU. - + (* taul *) - rewrite observe_bind. simpobs. + + rewrite observe_bind. simpobs. taul. eapply IHEQT; eauto with itree. - + (* taur *) - setoid_rewrite observe_bind at 2. simpobs. + + setoid_rewrite observe_bind at 2. simpobs. taur. eapply IHEQT; eauto with itree. Qed. From 40b99ca476faceed1c929d76938a2d21341ac968 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 30 Jun 2026 00:30:51 +0200 Subject: [PATCH 183/189] Final rewrites modulo paco in examples. --- theories/Eq/Eqit.v | 124 ++++++++++++---------------------- theories/Interp/InterpFacts.v | 4 +- 2 files changed, 45 insertions(+), 83 deletions(-) diff --git a/theories/Eq/Eqit.v b/theories/Eq/Eqit.v index 1258c205..8690bf0f 100644 --- a/theories/Eq/Eqit.v +++ b/theories/Eq/Eqit.v @@ -1,10 +1,4 @@ -(* -RTODOS: -- rename and redo sections -- organize file -*) - -(** * Strong bisimulation *) +(** * Bisimulation *) (** Because [itree] is a coinductive type, the naive [eq] relation is too strong: most pairs of "morally equivalent" programs @@ -310,14 +304,31 @@ assert (guard : True) by constructor; clear guard. Ltac to_mon_in h := - match type of h with - | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (observe ?t1) (observe ?t2)] => - change (eqitF RR b1 b2 (f R1 R2 RR) (observe t1) (observe t2)) - with (eqit_mon b1 b2 f R1 R2 RR t1 t2) in h - | context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) (?c1 ?a1) (?c2 ?a2)] => - change (eqitF RR b1 b2 (f R1 R2 RR) (c1 a1) (c2 a2)) - with (eqit_mon b1 b2 f R1 R2 RR (go (c1 a1)) (go (c2 a2))) in h - end. + cbn in h; match type of h with +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (observe ?t1) (observe ?t2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (observe t1) (observe t2)) + with (eqit_mon b1 b2 f R1 R2 RR t1 t2) in h +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (?con1 ?a1) (?con2 ?a2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (con1 a1) (con2 a2)) + with (eqit_mon b1 b2 f R1 R2 RR + (go (con1 a1)) (go (con2 a2))) in h +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (?con ?a) (observe ?t2)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (con a) (observe t2)) + with (eqit_mon b1 b2 f R1 R2 RR + (go (con a)) t2) in h +| context[@eqitF ?E ?R1 ?R2 ?RR ?b1 ?b2 (?f ?R1 ?R2 ?RR) + (observe ?t1) (?con ?a)] => + change (eqitF RR b1 b2 (f R1 R2 RR) + (observe t1) (con a)) + with (eqit_mon b1 b2 f R1 R2 RR + t1 (go (con a))) in h +end. (** --- Orchestration via the [Utils.v] generics. --- *) @@ -329,7 +340,6 @@ Tactic Notation "to_mon" "in" ident(h) := to_mon_in h. Tactic Notation "iunfold" "in" ident(h) := iunfold_in h. Tactic Notation "iunfold" "in" "*" := iunfold_all. -(* RTODO possible fix here: with body vs elem *) #[global] Ltac step := (match goal with | |- context[elem _] => idtac @@ -435,7 +445,6 @@ Module step_notation_tests. #[local] Parameter (GT : v ≳ w). #[local] Parameter (GT2 : w ≳ v). - (* RTODO: step better error message *) Goal eutt RR u v. (* already in the gfp <-> b gfp loop *) step. unstep. @@ -1315,9 +1324,6 @@ Module Tests. #[local] Parameter (GT : v ≳ w). #[local] Parameter (GT2 : w ≳ v). - (* RTODO: something sus is going on here. - - cbn breaks step. that shouldn't happen. *) Goal eutt RR u v. rewrite EQUIV2. rewrite <- EQ2. @@ -1327,8 +1333,8 @@ Goal eutt RR u v. rewrite EQ2, <- EQ2. exact EQ2. step. - (* cbn. *) - step. + unstep. + (* step. *) rewrite <- EQ1. rewrite <- GT. rewrite EQ1. @@ -1471,6 +1477,8 @@ Proof. step. reflexivity. Qed. + + (** ** Eta-expansion *) Lemma itree_eta_ (t : itree E R) : t ≅ go (_observe t). @@ -1484,6 +1492,13 @@ Proof. reflexivity. Qed. End eqit_eq. +(* [cbn] that preserves eqit_mon. *) +Ltac bcbn := cbn; to_mon; +repeat match goal with +| |- context [{| _observe := observe ?t |}] => rewrite <- (itree_eta t) +end. + + (** *** One-sided inversion *) Lemma eqitree_inv_Ret_r {E R} (t : itree E R) r : @@ -1531,7 +1546,6 @@ Proof. intros H x; step in H; apply eqitF_inv_VisF with (x := x) in H; auto. Qed. -(* Other properties: RTODO sort these *) Lemma eutt_inv_Ret {E R} r1 r2 : (Ret r1: itree E R) ≈ (Ret r2) -> r1 = r2. Proof. @@ -1969,14 +1983,15 @@ Proof. do 2 (etransitivity; eauto). Qed. +(* TOUR *) Lemma bind_ret_r {E R} : forall s : itree E R, ITree.bind s (fun x => Ret x) ≅ s. Proof. - unfold eq_itree. intros. + unfold eq_itree. intros. + rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). (* we need to eta-expland first, but we have to be able to reduce later. *) - rewrite (itree_eta_ (ITree.bind _ _)), (itree_eta s). (* need strong CIH *) revert s. icoinduction c CIH. @@ -2361,54 +2376,10 @@ Qed. Section eqit_elem. (*** *** Properties of the chain. *) - -(* -important: proving rewriting of elem under euttge --------- -goal: establish lemmas of toplevel relations that happen to be instantiations -of general properties of the corresponding chain. - -1. -forall (c : Chain (eqit_mon (RR : R1 -> R2 -> Prop) true false )) -Proper (euttge (@eq R1) ==> euttge (@eq R2) ==> [flip] impl) (elem c) -by subrelation : -Proper (eq_itree ==> eq_itree ==> [flip] impl) (elem c) - -DONE -forall (c : Chain (eqit_mon RR false false)), Equivalence RR -> Equivalence c -(this implies eq_itree is an equivalence relation) - -3. -we want euttge to be a preorder - is this true? -forall (c : Chain (eqit_mon RR true false)), Preorder RR -> Preorder c - -*) - -(* Rtodo: figure out if this is reasonable *) -(* Conjecture chain_mono RR1 RR2 b1 b2 b1' b2' : -(* we know from JOACHIM PARROW AND TJARK WEBER 2016 that the -companion is monotone. *) -... -*) -(* Lemma chain_mono {E R1 R2} (RR1 : R1 -> R2 -> Prop) RR2 b1 b2 b1' b2' -(c : Chain (@eqit_mon E b1 b2)) -(c' : Chain (@eqit_mon E b1' b2')) : -RR1 <= RR2 -> -(b1 -> b1') -> -(b2 -> b2') -> -(elem c R1 R2 RR1) <= (elem c' _ _ RR2). -Proof. - tower induction. - Search elem. - { intros!. repeat red in H0. eapply H; eauto. apply H1. apply H0. apply H1. } - intros!. icbn in *. induction H3. *) - Context {E : Type -> Type} {R1 R2} {RR : R1 -> R2 -> Prop} {b1 b2 : bool}. Ltac euttsimpl := unfold eutt, euttge, eq_itree, eqit in *. -(* we really need euttge trans *) - Lemma Equivalence_elem_ff R RS (c : Chain (@eqit_mon E false false)) : Equivalence RS -> Equivalence (elem c R R RS). Proof. @@ -2441,8 +2412,6 @@ End eqit_elem. Section eutt_facts. - (* rtodo: rewrite comments *) - (** * Equivalence up to taus *) (** Abbreviated as [eutt]. *) @@ -2624,8 +2593,8 @@ Qed. End eutt_facts. -(* RTODO: move these somewhere reasonable *) - +(* Finally, recovering rewrites under eqitF. +Note: this is somewhat fragile, and can cause performance issues. *) #[global] Instance observing_eq_chain E R b1 b2 (c : Chain (eqit_mon b1 b2)) : Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (elem c _ _ eq)) (observe). @@ -2639,11 +2608,4 @@ Qed. Proper ((@eq_itree E R R eq) ==> @eqitF E R R eq b1 b2 (eqit eq b1 b2)) (observe). Proof. intros!; now eapply observing_eq_chain. -Qed. - -Ltac bcbn := cbn; to_mon; -repeat match goal with -| |- context [{| _observe := observe ?t |}] => rewrite <- (itree_eta t) -end. - -(* RTODO: Strengthen rewrites *) \ No newline at end of file +Qed. \ No newline at end of file diff --git a/theories/Interp/InterpFacts.v b/theories/Interp/InterpFacts.v index 3c79da44..05d6f76c 100644 --- a/theories/Interp/InterpFacts.v +++ b/theories/Interp/InterpFacts.v @@ -122,8 +122,8 @@ Proof. destruct H; cbn; subst; try easy; eauto with itree. unfold eq_Handler, i_pointwise in Hfg. - rewrite Hfg. - to_mon. + rewrite Hfg. + to_mon. ebind. intros ??[=<-]. etau. Qed. From beaa25c89ec263b7b8a7af4af0f6d3200c520c40 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 30 Jun 2026 00:37:13 +0200 Subject: [PATCH 184/189] Removed timing experiments before PR --- timing-experiments/HandlerFacts.v.timing-NEW | 339 ------------------ timing-experiments/HandlerFacts.v.timing-OLD | 340 ------------------- timing-experiments/all-times.sh | 27 -- timing-experiments/get-times.sh | 21 -- timing-experiments/sum-times.sh | 22 -- 5 files changed, 749 deletions(-) delete mode 100644 timing-experiments/HandlerFacts.v.timing-NEW delete mode 100644 timing-experiments/HandlerFacts.v.timing-OLD delete mode 100755 timing-experiments/all-times.sh delete mode 100755 timing-experiments/get-times.sh delete mode 100755 timing-experiments/sum-times.sh diff --git a/timing-experiments/HandlerFacts.v.timing-NEW b/timing-experiments/HandlerFacts.v.timing-NEW deleted file mode 100644 index c1563322..00000000 --- a/timing-experiments/HandlerFacts.v.timing-NEW +++ /dev/null @@ -1,339 +0,0 @@ -Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.056 secs (0.048u,0.007s) -Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) -Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) -Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) -Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 794 [compute;~intros.] 0. secs (0.u,0.s) -Chars 797 - 821 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) -Chars 822 - 826 [Qed.] 0. secs (0.u,0.s) -Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) -Chars 879 - 891 [compute;~intros.] 0. secs (0.u,0.s) -Chars 894 - 919 [rewrite~interp_trigger_h.] 0.001 secs (0.001u,0.s) -Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) -Chars 933 - 937 [Qed.] 0. secs (0.u,0.s) -Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) -Chars 990 - 1002 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1005 - 1028 [rewrite~interp_trigger.] 0.008 secs (0.008u,0.s) -Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) -Chars 1044 - 1048 [Qed.] 0. secs (0.u,0.s) -Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) -Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1117 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1120 - 1142 [rewrite~interp_interp.] 0.036 secs (0.036u,0.s) -Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) -Chars 1158 - 1162 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) -Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) -Chars 1226 - 1251 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) -Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) -Chars 1336 - 1355 [compute;~contradiction.] 0. secs (0.u,0.s) -Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) -Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) -Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) -Chars 1524 - 1536 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1539 - 1571 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) -Chars 1572 - 1576 [Qed.] 0. secs (0.u,0.s) -Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) -Chars 1636 - 1648 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1651 - 1674 [rewrite~interp_trigger.] 0.012 secs (0.011u,0.001s) -Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) -Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) -Chars 1754 - 1766 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1769 - 1792 [rewrite~interp_trigger.] 0.011 secs (0.009u,0.002s) -Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) -Chars 1808 - 1812 [Qed.] 0.001 secs (0.u,0.s) -Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) -Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) -Chars 1884 - 1896 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1899 - 1925 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) -Chars 1928 - 1929 [-] 0. secs (0.u,0.s) -Chars 1930 - 1959 [rewrite~<-~H,~interp_trigger.] 0.015 secs (0.015u,0.s) -Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) -Chars 1975 - 1976 [-] 0. secs (0.u,0.s) -Chars 1977 - 2007 [rewrite~<-~H0,~interp_trigger.] 0.014 secs (0.014u,0.s) -Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) -Chars 2021 - 2025 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) -Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) -Chars 2096 - 2121 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) -Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) -Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) -Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2314 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2317 - 2348 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) -Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) -Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) -Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) -Chars 2419 - 2431 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2434 - 2464 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) -Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) -Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) -Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) -Chars 2552 - 2564 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2567 - 2577 [pattern~f.] 0.003 secs (0.003u,0.s) -Chars 2580 - 2678 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) -Chars 2681 - 2682 [{] 0. secs (0.u,0.s) -Chars 2683 - 2738 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 2743 - 2744 [-] 0. secs (0.u,0.s) -Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) -Chars 2755 - 2792 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 2799 - 2800 [+] 0. secs (0.u,0.s) -Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2821 [+] 0. secs (0.u,0.s) -Chars 2822 - 2879 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) -Chars 2884 - 2885 [-] 0. secs (0.u,0.s) -Chars 2886 - 2928 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) -Chars 2935 - 2936 [+] 0. secs (0.u,0.s) -Chars 2937 - 2948 [intros~?~?.] 0. secs (0.u,0.s) -Chars 2949 - 2969 [apply~euttge_interp.] 0. secs (0.u,0.s) -Chars 2978 - 2979 [*] 0. secs (0.u,0.s) -Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) -Chars 3001 - 3002 [*] 0. secs (0.u,0.s) -Chars 3003 - 3020 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 3027 - 3028 [+] 0. secs (0.u,0.s) -Chars 3029 - 3048 [rewrite~tau_euttge.] 0.01 secs (0.01u,0.s) -Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) -Chars 3064 - 3065 [}] 0. secs (0.u,0.s) -Chars 3068 - 3296 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) -Chars 3299 - 3338 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) -Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) -Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 3453 - 3485 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) -Chars 3488 - 3510 [rewrite~(itree_eta~t).] 0.016 secs (0.016u,0.s) -Chars 3513 - 3534 [destruct~(observe~t).] 0. secs (0.u,0.s) -Chars 3537 - 3538 [-] 0. secs (0.u,0.s) -Chars 3539 - 3566 [rewrite~unfold_interp_mrec.] 0.014 secs (0.014u,0.s) -Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) -Chars 3578 - 3599 [rewrite~2!interp_ret.] 0.03 secs (0.03u,0.s) -Chars 3604 - 3631 [rewrite~unfold_interp_mrec.] 0.013 secs (0.013u,0.s) -Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.u,0.s) -Chars 3651 - 3652 [-] 0. secs (0.u,0.s) -Chars 3653 - 3680 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) -Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) -Chars 3692 - 3713 [rewrite~2!interp_tau.] 0.032 secs (0.032u,0.s) -Chars 3718 - 3764 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) -Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) -Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3811 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) -Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) -Chars 3822 - 3841 [rewrite~interp_vis.] 0.019 secs (0.019u,0.s) -Chars 3846 - 3863 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) -Chars 3868 - 3869 [+] 0. secs (0.u,0.s) -Chars 3870 - 3889 [rewrite~interp_tau.] 0.014 secs (0.014u,0.s) -Chars 3896 - 3936 [rewrite~2!interp_mrec_bind,~in...] 0.049 secs (0.049u,0.s) -Chars 3943 - 3951 [subst~h.] 0.002 secs (0.002u,0.s) -Chars 3959 - 3964 [bcbn.] 0.041 secs (0.04u,0.s) -Chars 3971 - 3994 [rewrite~interp_trigger.] 0.033 secs (0.032u,0.s) -Chars 4001 - 4028 [rewrite~unfold_interp_mrec.] 0.033 secs (0.033u,0.s) -Chars 4030 - 4035 [bcbn.] 0.036 secs (0.036u,0.s) -Chars 4043 - 4071 [rewrite~interp_mrec_trigger.] 0.025 secs (0.025u,0.s) -Chars 4072 - 4077 [bcbn.] 0.035 secs (0.035u,0.s) -Chars 4085 - 4107 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 4236 - 4256 [rewrite~!interp_tau.] 0.086 secs (0.086u,0.s) -Chars 4263 - 4310 [rewrite~(unfold_interp_mrec~_~...] 0.081 secs (0.08u,0.s) -Chars 4317 - 4335 [rewrite~!bind_tau.] 0.072 secs (0.071u,0.s) -Chars 4342 - 4347 [taus.] 0. secs (0.u,0.s) -Chars 4348 - 4406 [rewrite~tau_euttge,~<-~interp_...] 0.105 secs (0.104u,0.s) -Chars 4413 - 4454 [setoid_rewrite~(tau_euttge~(in...] 0.057 secs (0.057u,0.s) -Chars 4461 - 4484 [rewrite~<-~interp_bind.] 0.025 secs (0.025u,0.s) -Chars 4491 - 4496 [auto.] 0. secs (0.u,0.s) -Chars 4501 - 4502 [+] 0. secs (0.u,0.s) -Chars 4503 - 4522 [rewrite~interp_vis.] 0.015 secs (0.015u,0.s) -Chars 4529 - 4554 [rewrite~interp_mrec_bind.] 0.015 secs (0.015u,0.s) -Chars 4561 - 4575 [subst~h;~bcbn.] 0.002 secs (0.002u,0.s) -Chars 4582 - 4588 [ebind.] 0.008 secs (0.008u,0.s) -Chars 4589 - 4609 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) -Chars 4617 - 4618 [{] 0. secs (0.u,0.s) -Chars 4619 - 4629 [do~2~step.] 0.008 secs (0.008u,0.s) -Chars 4630 - 4675 [rewrite~interp_mrec_as_interp,...] 0.017 secs (0.017u,0.s) -Chars 4684 - 4712 [rewrite~<-~interp_id_h~~at~1.] 0.046 secs (0.046u,0.s) -Chars 4721 - 4757 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) -Chars 4766 - 4777 [intros~?~?.] 0. secs (0.u,0.s) -Chars 4786 - 4814 [rewrite~interp_trigger;~cbn.] 0.007 secs (0.007u,0.s) -Chars 4823 - 4835 [reflexivity.] 0. secs (0.u,0.s) -Chars 4836 - 4837 [}] 0. secs (0.u,0.s) -Chars 4844 - 4858 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 4865 - 4912 [rewrite~(unfold_interp_mrec~_~...] 0.026 secs (0.026u,0.s) -Chars 4919 - 4924 [taus.] 0. secs (0.u,0.s) -Chars 4932 - 4951 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) -Chars 4958 - 4968 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4970 - 4974 [Qed.] 0.094 secs (0.094u,0.s) -Chars 4976 - 5000 [Section~DinatSimulation.] 0. secs (0.u,0.s) -Chars 5002 - 5033 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 5034 - 5096 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) -Chars 5097 - 5116 [Context~{R~:~Type}.] 0. secs (0.u,0.s) -Chars 5118 - 5188 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5190 - 5650 [Inductive~interleaved~:~itree~...] 0.004 secs (0.004u,0.s) -Chars 5651 - 5698 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) -Chars 5700 - 5744 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5745 - 5789 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5791 - 5963 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) -Chars 5964 - 5992 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 5996 - 6016 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 6019 - 6031 [induction~H.] 0. secs (0.u,0.s) -Chars 6034 - 6035 [-] 0. secs (0.u,0.s) -Chars 6036 - 6071 [rewrite~2!unfold_interp_mrec;~...] 0.025 secs (0.025u,0.s) -Chars 6072 - 6084 [reflexivity.] 0. secs (0.u,0.s) -Chars 6089 - 6090 [-] 0. secs (0.u,0.s) -Chars 6091 - 6135 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) -Chars 6140 - 6141 [+] 0. secs (0.u,0.s) -Chars 6142 - 6175 [rewrite~interp_ret,~2!bind_ret_l.] 0.039 secs (0.038u,0.s) -Chars 6176 - 6181 [auto.] 0. secs (0.u,0.s) -Chars 6186 - 6187 [+] 0. secs (0.u,0.s) -Chars 6188 - 6247 [rewrite~interp_tau,~2!bind_tau...] 0.068 secs (0.068u,0.s) -Chars 6254 - 6261 [taus~...] 0.001 secs (0.001u,0.s) -Chars 6268 - 6269 [+] 0. secs (0.u,0.s) -Chars 6270 - 6299 [rewrite~interp_vis,~bind_vis.] 0.029 secs (0.029u,0.s) -Chars 6306 - 6324 [rewrite~bind_bind.] 0.013 secs (0.013u,0.s) -Chars 6331 - 6380 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) -Chars 6387 - 6404 [destruct~e;~bcbn.] 0.028 secs (0.028u,0.s) -Chars 6405 - 6446 [setoid_rewrite~(tau_euttge~(in...] 0.061 secs (0.06u,0.s) -Chars 6453 - 6454 [*] 0. secs (0.u,0.s) -Chars 6455 - 6502 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 6511 - 6546 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) -Chars 6555 - 6598 [rewrite~bind_tau,~unfold_inter...] 0.028 secs (0.028u,0.s) -Chars 6607 - 6612 [taus.] 0. secs (0.u,0.s) -Chars 6613 - 6634 [rewrite~tau_euttge~...] 0.009 secs (0.009u,0.s) -Chars 6641 - 6642 [*] 0. secs (0.u,0.s) -Chars 6643 - 6705 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 6714 - 6735 [rewrite~bind_trigger.] 0.013 secs (0.013u,0.s) -Chars 6744 - 6777 [rewrite~unfold_interp_mrec;~bcbn.] 0.013 secs (0.013u,0.s) -Chars 6786 - 6806 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 6807 - 6835 [repeat~rewrite~tau_euttge~...] 0.018 secs (0.018u,0.s) -Chars 6839 - 6840 [-] 0. secs (0.u,0.s) -Chars 6841 - 6885 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) -Chars 6890 - 6891 [+] 0. secs (0.u,0.s) -Chars 6892 - 6925 [rewrite~interp_ret,~2!bind_ret_l.] 0.039 secs (0.039u,0.s) -Chars 6926 - 6931 [auto.] 0. secs (0.u,0.s) -Chars 6936 - 6937 [+] 0. secs (0.u,0.s) -Chars 6938 - 6997 [rewrite~interp_tau,~2!bind_tau...] 0.07 secs (0.069u,0.s) -Chars 7004 - 7011 [taus~...] 0.001 secs (0.001u,0.s) -Chars 7018 - 7019 [+] 0. secs (0.u,0.s) -Chars 7020 - 7049 [rewrite~interp_vis,~bind_vis.] 0.029 secs (0.029u,0.s) -Chars 7056 - 7074 [rewrite~bind_bind.] 0.015 secs (0.014u,0.s) -Chars 7081 - 7130 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) -Chars 7137 - 7154 [destruct~e;~bcbn.] 0.03 secs (0.03u,0.s) -Chars 7155 - 7196 [setoid_rewrite~(tau_euttge~(in...] 0.062 secs (0.062u,0.s) -Chars 7203 - 7204 [*] 0. secs (0.u,0.s) -Chars 7205 - 7252 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 7261 - 7296 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) -Chars 7305 - 7363 [rewrite~!bind_tau,~(unfold_int...] 0.033 secs (0.033u,0.s) -Chars 7372 - 7377 [taus.] 0. secs (0.u,0.s) -Chars 7378 - 7399 [rewrite~tau_euttge~...] 0.008 secs (0.008u,0.s) -Chars 7407 - 7408 [*] 0. secs (0.u,0.s) -Chars 7409 - 7471 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 7480 - 7501 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) -Chars 7510 - 7543 [rewrite~unfold_interp_mrec;~bcbn.] 0.014 secs (0.014u,0.s) -Chars 7552 - 7572 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 7573 - 7601 [repeat~rewrite~tau_euttge~...] 0.019 secs (0.019u,0.s) -Chars 7602 - 7606 [Qed.] 0.03 secs (0.029u,0.s) -Chars 7608 - 7628 [End~DinatSimulation.] 0. secs (0.u,0.s) -Chars 7630 - 7648 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) -Chars 7650 - 7710 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) -Chars 7711 - 7717 [Proof.] 0. secs (0.u,0.s) -Chars 7720 - 7749 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) -Chars 7752 - 7788 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7789 - 7825 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) -Chars 7828 - 8010 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) -Chars 8013 - 8014 [{] 0. secs (0.u,0.s) -Chars 8015 - 8024 [compute~in~H.] 0. secs (0.u,0.s) -Chars 8025 - 8078 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 8083 - 8084 [-] 0. secs (0.u,0.s) -Chars 8085 - 8094 [symmetry.] 0. secs (0.u,0.s) -Chars 8095 - 8137 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8144 - 8158 [1:~intros~?~?.] 0. secs (0.u,0.s) -Chars 8165 - 8227 [1,~2:~rewrite~tau_euttge;~appl...] 0.011 secs (0.011u,0.s) -Chars 8234 - 8284 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) -Chars 8289 - 8290 [-] 0. secs (0.u,0.s) -Chars 8291 - 8351 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8358 - 8387 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8394 - 8413 [rewrite~tau_euttge.] 0.009 secs (0.009u,0.s) -Chars 8414 - 8439 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) -Chars 8446 - 8457 [intros~?~?.] 0. secs (0.u,0.s) -Chars 8464 - 8483 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) -Chars 8490 - 8532 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) -Chars 8539 - 8590 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) -Chars 8593 - 8594 [}] 0. secs (0.u,0.s) -Chars 8597 - 8630 [rewrite~<-~interp_mrec_as_interp.] 0.003 secs (0.003u,0.s) -Chars 8634 - 8671 [rewrite~<-~(bind_ret_r~(interp...] 0.011 secs (0.011u,0.s) -Chars 8674 - 8712 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.015 secs (0.015u,0.s) -Chars 8716 - 8739 [apply~interleaved_mrec.] 0. secs (0.u,0.s) -Chars 8742 - 8759 [do~2~constructor.] 0. secs (0.u,0.s) -Chars 8760 - 8764 [Qed.] 0.011 secs (0.011u,0.s) -Chars 8766 - 8783 [Import~Recursion.] 0. secs (0.u,0.s) -Chars 8785 - 8847 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) -Chars 8848 - 8854 [Proof.] 0. secs (0.u,0.s) -Chars 8857 - 8880 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) -Chars 8883 - 8921 [remember~(f0~T~x)~as~t~eqn:EQt...] 0. secs (0.u,0.s) -Chars 8924 - 8960 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 8963 - 9662 [enough~~(interp_mrec~(fun~_~d~...] 0.001 secs (0.001u,0.s) -Chars 9665 - 9666 [{] 0. secs (0.u,0.s) -Chars 9667 - 9675 [subst~f.] 0. secs (0.u,0.s) -Chars 9676 - 9731 [etransitivity;~[~etransitivity...] 0. secs (0.u,0.s) -Chars 9736 - 9737 [-] 0. secs (0.u,0.s) -Chars 9738 - 9747 [symmetry.] 0. secs (0.u,0.s) -Chars 9748 - 9790 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 9797 - 9798 [+] 0. secs (0.u,0.s) -Chars 9799 - 9810 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9811 - 9858 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) -Chars 9867 - 9878 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9879 - 9896 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 9903 - 9904 [+] 0. secs (0.u,0.s) -Chars 9905 - 9978 [apply~euttge_interp_mrec;~repe...] 0.001 secs (0.001u,0.s) -Chars 9987 - 9999 [reflexivity.] 0. secs (0.u,0.s) -Chars 10004 - 10005 [-] 0. secs (0.u,0.s) -Chars 10006 - 10108 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) -Chars 10115 - 10132 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 10135 - 10136 [}] 0. secs (0.u,0.s) -Chars 10139 - 10162 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 10167 - 10176 [revert~t.] 0. secs (0.u,0.s) -Chars 10177 - 10197 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 10201 - 10251 [rewrite~(itree_eta~t);~destruc...] 0.014 secs (0.014u,0.s) -Chars 10254 - 10320 [all:~rewrite~(unfold_interp_mr...] 0.081 secs (0.081u,0.s) -Chars 10323 - 10361 [1,~2:~rewrite~unfold_interp_mr...] 0.05 secs (0.049u,0.s) -Chars 10364 - 10427 [1,~2:~rewrite~(unfold_interp_m...] 0.029 secs (0.028u,0.s) -Chars 10430 - 10435 [taus.] 0. secs (0.u,0.s) -Chars 10436 - 10446 [apply~CIH.] 0. secs (0.u,0.s) -Chars 10450 - 10461 [destruct~e.] 0. secs (0.u,0.s) -Chars 10464 - 10465 [-] 0. secs (0.u,0.s) -Chars 10466 - 10513 [rewrite~(interp_mrec_bind~_~(I...] 0.014 secs (0.014u,0.s) -Chars 10518 - 10552 [rewrite~interp_mrec_trigger;~b...] 0.009 secs (0.009u,0.s) -Chars 10557 - 10579 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 10584 - 10647 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.001 secs (0.001u,0.s) -Chars 10652 - 10697 [rewrite~interp_tau,~unfold_int...] 0.052 secs (0.052u,0.s) -Chars 10702 - 10749 [rewrite~(unfold_interp_mrec~_~...] 0.035 secs (0.035u,0.s) -Chars 10754 - 10772 [rewrite~!bind_tau.] 0.033 secs (0.033u,0.s) -Chars 10777 - 10782 [taus.] 0. secs (0.u,0.s) -Chars 10788 - 10807 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) -Chars 10808 - 10834 [setoid_rewrite~tau_euttge.] 0.016 secs (0.016u,0.s) -Chars 10839 - 10883 [rewrite~<-~interp_mrec_bind,~<...] 0.027 secs (0.027u,0.s) -Chars 10888 - 10903 [auto~with~paco.] 0. secs (0.u,0.s) -Chars 10906 - 10907 [-] 0. secs (0.u,0.s) -Chars 10908 - 10929 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) -Chars 10934 - 10960 [setoid_rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) -Chars 10965 - 11000 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.026u,0.s) -Chars 11005 - 11016 [destruct~s.] 0. secs (0.u,0.s) -Chars 11017 - 11022 [taus.] 0. secs (0.u,0.s) -Chars 11028 - 11072 [rewrite~<-~interp_mrec_bind,~<...] 0.024 secs (0.024u,0.s) -Chars 11077 - 11087 [apply~CIH.] 0. secs (0.u,0.s) -Chars 11093 - 11113 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 11114 - 11129 [now~step;~taus.] 0.002 secs (0.002u,0.s) -Chars 11132 - 11136 [Qed.] 0.041 secs (0.04u,0.s) -Chars 11138 - 11197 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) -Chars 11198 - 11204 [Proof.] 0. secs (0.u,0.s) -Chars 11207 - 11232 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 11233 - 11237 [Qed.] 0. secs (0.u,0.s) -Chars 11239 - 11259 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/timing-experiments/HandlerFacts.v.timing-OLD b/timing-experiments/HandlerFacts.v.timing-OLD deleted file mode 100644 index 482d6ef4..00000000 --- a/timing-experiments/HandlerFacts.v.timing-OLD +++ /dev/null @@ -1,340 +0,0 @@ -Chars 128 - 203 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.004u,0.002s) -Chars 205 - 444 [From~ITree~Require~Import~Basi...] 0.063 secs (0.053u,0.01s) -Chars 446 - 468 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 469 - 503 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 505 - 534 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 552 - 576 [Section~HandlerCategory.] 0. secs (0.u,0.s) -Chars 578 - 628 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) -Chars 630 - 772 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) -Chars 773 - 779 [Proof.] 0. secs (0.u,0.s) -Chars 782 - 794 [compute;~intros.] 0. secs (0.u,0.s) -Chars 797 - 821 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) -Chars 822 - 826 [Qed.] 0. secs (0.u,0.s) -Chars 828 - 869 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 870 - 876 [Proof.] 0. secs (0.u,0.s) -Chars 879 - 891 [compute;~intros.] 0. secs (0.u,0.s) -Chars 894 - 919 [rewrite~interp_trigger_h.] 0.002 secs (0.002u,0.s) -Chars 920 - 932 [reflexivity.] 0. secs (0.u,0.s) -Chars 933 - 937 [Qed.] 0. secs (0.u,0.s) -Chars 939 - 980 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 981 - 987 [Proof.] 0. secs (0.u,0.s) -Chars 990 - 1002 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1005 - 1028 [rewrite~interp_trigger.] 0.009 secs (0.009u,0.s) -Chars 1031 - 1043 [reflexivity.] 0. secs (0.u,0.s) -Chars 1044 - 1048 [Qed.] 0. secs (0.u,0.s) -Chars 1050 - 1095 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) -Chars 1096 - 1102 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1117 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1120 - 1142 [rewrite~interp_interp.] 0.04 secs (0.039u,0.s) -Chars 1145 - 1157 [reflexivity.] 0. secs (0.u,0.s) -Chars 1158 - 1162 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1164 - 1216 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) -Chars 1217 - 1223 [Proof.] 0. secs (0.u,0.s) -Chars 1226 - 1251 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 1252 - 1256 [Qed.] 0. secs (0.u,0.s) -Chars 1258 - 1326 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 1327 - 1333 [Proof.] 0. secs (0.u,0.s) -Chars 1336 - 1355 [compute;~contradiction.] 0. secs (0.u,0.s) -Chars 1356 - 1360 [Qed.] 0. secs (0.u,0.s) -Chars 1362 - 1514 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) -Chars 1515 - 1521 [Proof.] 0. secs (0.u,0.s) -Chars 1524 - 1536 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1539 - 1571 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) -Chars 1572 - 1576 [Qed.] 0. secs (0.u,0.s) -Chars 1578 - 1626 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1627 - 1633 [Proof.] 0. secs (0.u,0.s) -Chars 1636 - 1648 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1651 - 1674 [rewrite~interp_trigger.] 0.013 secs (0.011u,0.001s) -Chars 1677 - 1689 [reflexivity.] 0. secs (0.u,0.s) -Chars 1690 - 1694 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1696 - 1744 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1745 - 1751 [Proof.] 0. secs (0.u,0.s) -Chars 1754 - 1766 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1769 - 1792 [rewrite~interp_trigger.] 0.013 secs (0.01u,0.002s) -Chars 1795 - 1807 [reflexivity.] 0. secs (0.u,0.s) -Chars 1808 - 1812 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1814 - 1874 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) -Chars 1875 - 1881 [Proof.] 0. secs (0.u,0.s) -Chars 1884 - 1896 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1899 - 1925 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) -Chars 1928 - 1929 [-] 0. secs (0.u,0.s) -Chars 1930 - 1959 [rewrite~<-~H,~interp_trigger.] 0.016 secs (0.016u,0.s) -Chars 1960 - 1972 [reflexivity.] 0. secs (0.u,0.s) -Chars 1975 - 1976 [-] 0. secs (0.u,0.s) -Chars 1977 - 2007 [rewrite~<-~H0,~interp_trigger.] 0.015 secs (0.015u,0.s) -Chars 2008 - 2020 [reflexivity.] 0. secs (0.u,0.s) -Chars 2021 - 2025 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2027 - 2086 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) -Chars 2087 - 2093 [Proof.] 0. secs (0.u,0.s) -Chars 2096 - 2121 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2122 - 2126 [Qed.] 0. secs (0.u,0.s) -Chars 2128 - 2163 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) -Chars 2165 - 2291 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) -Chars 2292 - 2298 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2314 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2317 - 2348 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) -Chars 2349 - 2353 [Qed.] 0. secs (0.u,0.s) -Chars 2355 - 2409 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) -Chars 2410 - 2416 [Proof.] 0. secs (0.u,0.s) -Chars 2419 - 2431 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2434 - 2464 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) -Chars 2467 - 2479 [reflexivity.] 0. secs (0.u,0.s) -Chars 2480 - 2484 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2486 - 2542 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) -Chars 2543 - 2549 [Proof.] 0. secs (0.u,0.s) -Chars 2552 - 2564 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2567 - 2577 [pattern~f.] 0.003 secs (0.003u,0.s) -Chars 2580 - 2678 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) -Chars 2681 - 2682 [{] 0. secs (0.u,0.s) -Chars 2683 - 2738 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 2743 - 2744 [-] 0. secs (0.u,0.s) -Chars 2745 - 2754 [symmetry.] 0. secs (0.u,0.s) -Chars 2755 - 2792 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 2799 - 2800 [+] 0. secs (0.u,0.s) -Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2821 [+] 0. secs (0.u,0.s) -Chars 2822 - 2879 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) -Chars 2884 - 2885 [-] 0. secs (0.u,0.s) -Chars 2886 - 2928 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) -Chars 2935 - 2936 [+] 0. secs (0.u,0.s) -Chars 2937 - 2948 [intros~?~?.] 0. secs (0.u,0.s) -Chars 2949 - 2969 [apply~euttge_interp.] 0. secs (0.u,0.s) -Chars 2978 - 2979 [*] 0. secs (0.u,0.s) -Chars 2980 - 2992 [reflexivity.] 0. secs (0.u,0.s) -Chars 3001 - 3002 [*] 0. secs (0.u,0.s) -Chars 3003 - 3020 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 3027 - 3028 [+] 0. secs (0.u,0.s) -Chars 3029 - 3048 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) -Chars 3049 - 3061 [reflexivity.] 0. secs (0.u,0.s) -Chars 3064 - 3065 [}] 0. secs (0.u,0.s) -Chars 3068 - 3296 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) -Chars 3299 - 3338 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) -Chars 3339 - 3351 [clear~tmp_t.] 0. secs (0.u,0.s) -Chars 3426 - 3449 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 3453 - 3485 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) -Chars 3488 - 3510 [rewrite~(itree_eta~t).] 0.017 secs (0.017u,0.s) -Chars 3513 - 3534 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) -Chars 3537 - 3538 [-] 0. secs (0.u,0.s) -Chars 3539 - 3566 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) -Chars 3567 - 3572 [bcbn.] 0. secs (0.u,0.s) -Chars 3578 - 3599 [rewrite~2!interp_ret.] 0.033 secs (0.032u,0.s) -Chars 3604 - 3631 [rewrite~unfold_interp_mrec.] 0.014 secs (0.014u,0.s) -Chars 3636 - 3648 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 3651 - 3652 [-] 0. secs (0.u,0.s) -Chars 3653 - 3680 [rewrite~unfold_interp_mrec.] 0.016 secs (0.016u,0.s) -Chars 3681 - 3686 [bcbn.] 0. secs (0.u,0.s) -Chars 3692 - 3713 [rewrite~2!interp_tau.] 0.033 secs (0.033u,0.s) -Chars 3718 - 3764 [rewrite~(unfold_interp_mrec~_~...] 0.016 secs (0.015u,0.s) -Chars 3769 - 3778 [now~taus.] 0. secs (0.u,0.s) -Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3811 [rewrite~unfold_interp_mrec.] 0.016 secs (0.016u,0.s) -Chars 3812 - 3817 [bcbn.] 0. secs (0.u,0.s) -Chars 3822 - 3841 [rewrite~interp_vis.] 0.02 secs (0.02u,0.s) -Chars 3846 - 3863 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) -Chars 3868 - 3869 [+] 0. secs (0.u,0.s) -Chars 3870 - 3889 [rewrite~interp_tau.] 0.015 secs (0.015u,0.s) -Chars 3896 - 3936 [rewrite~2!interp_mrec_bind,~in...] 0.052 secs (0.051u,0.s) -Chars 3943 - 3951 [subst~h.] 0.002 secs (0.002u,0.s) -Chars 3959 - 3964 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3975 - 3998 [rewrite~interp_trigger.] 0.042 secs (0.042u,0.s) -Chars 4005 - 4032 [rewrite~unfold_interp_mrec.] 0.031 secs (0.03u,0.s) -Chars 4034 - 4039 [bcbn.] 0. secs (0.u,0.s) -Chars 4047 - 4075 [rewrite~interp_mrec_trigger.] 0.036 secs (0.036u,0.s) -Chars 4076 - 4081 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 4089 - 4111 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 4118 - 4137 [rewrite~interp_tau.] 0.034 secs (0.034u,0.s) -Chars 4144 - 4168 [Time~rewrite~interp_tau.] 8.041 secs (7.951u,0.085s) -Chars 4175 - 4222 [rewrite~(unfold_interp_mrec~_~...] 8.279 secs (8.144u,0.114s) -Chars 4229 - 4247 [rewrite~!bind_tau.] 8.157 secs (8.067u,0.079s) -Chars 4254 - 4259 [taus.] 0. secs (0.u,0.s) -Chars 4260 - 4318 [rewrite~tau_euttge,~<-~interp_...] 0.112 secs (0.111u,0.001s) -Chars 4325 - 4366 [setoid_rewrite~(tau_euttge~(in...] 0.06 secs (0.06u,0.s) -Chars 4373 - 4396 [rewrite~<-~interp_bind.] 0.028 secs (0.028u,0.s) -Chars 4403 - 4418 [auto~with~paco.] 0. secs (0.u,0.s) -Chars 4423 - 4424 [+] 0. secs (0.u,0.s) -Chars 4425 - 4444 [rewrite~interp_vis.] 0.015 secs (0.015u,0.s) -Chars 4451 - 4476 [rewrite~interp_mrec_bind.] 0.017 secs (0.016u,0.s) -Chars 4483 - 4497 [subst~h;~bcbn.] 0.003 secs (0.003u,0.s) -Chars 4504 - 4510 [ebind.] 0.007 secs (0.007u,0.s) -Chars 4511 - 4531 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) -Chars 4539 - 4540 [{] 0. secs (0.u,0.s) -Chars 4541 - 4551 [do~2~step.] 0.009 secs (0.009u,0.s) -Chars 4552 - 4597 [rewrite~interp_mrec_as_interp,...] 0.019 secs (0.019u,0.s) -Chars 4606 - 4634 [rewrite~<-~interp_id_h~~at~1.] 0.049 secs (0.048u,0.s) -Chars 4643 - 4679 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) -Chars 4688 - 4699 [intros~?~?.] 0. secs (0.u,0.s) -Chars 4708 - 4736 [rewrite~interp_trigger;~cbn.] 0.008 secs (0.008u,0.s) -Chars 4745 - 4757 [reflexivity.] 0. secs (0.u,0.s) -Chars 4758 - 4759 [}] 0. secs (0.u,0.s) -Chars 4766 - 4780 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 4787 - 4834 [rewrite~(unfold_interp_mrec~_~...] 0.028 secs (0.028u,0.s) -Chars 4841 - 4846 [taus.] 0. secs (0.u,0.s) -Chars 4854 - 4873 [rewrite~tau_euttge.] 0.012 secs (0.011u,0.s) -Chars 4880 - 4890 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4892 - 4896 [Qed.] 0.098 secs (0.096u,0.001s) -Chars 4898 - 4922 [Section~DinatSimulation.] 0. secs (0.u,0.s) -Chars 4924 - 4955 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 4956 - 5018 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) -Chars 5019 - 5038 [Context~{R~:~Type}.] 0. secs (0.u,0.s) -Chars 5040 - 5110 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5112 - 5572 [Inductive~interleaved~:~itree~...] 0.005 secs (0.005u,0.s) -Chars 5573 - 5620 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) -Chars 5622 - 5666 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5667 - 5711 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5713 - 5885 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) -Chars 5886 - 5914 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 5918 - 5938 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 5941 - 5953 [induction~H.] 0. secs (0.u,0.s) -Chars 5956 - 5957 [-] 0. secs (0.u,0.s) -Chars 5958 - 5993 [rewrite~2!unfold_interp_mrec;~...] 0.028 secs (0.027u,0.s) -Chars 5994 - 6006 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6011 - 6012 [-] 0. secs (0.u,0.s) -Chars 6013 - 6057 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) -Chars 6062 - 6063 [+] 0. secs (0.u,0.s) -Chars 6064 - 6097 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.041u,0.s) -Chars 6098 - 6103 [auto.] 0. secs (0.u,0.s) -Chars 6108 - 6109 [+] 0. secs (0.u,0.s) -Chars 6110 - 6169 [rewrite~interp_tau,~2!bind_tau...] 0.075 secs (0.074u,0.s) -Chars 6176 - 6183 [taus~...] 0.001 secs (0.001u,0.s) -Chars 6190 - 6191 [+] 0. secs (0.u,0.s) -Chars 6192 - 6221 [rewrite~interp_vis,~bind_vis.] 0.032 secs (0.031u,0.s) -Chars 6228 - 6246 [rewrite~bind_bind.] 0.014 secs (0.014u,0.s) -Chars 6253 - 6302 [rewrite~(unfold_interp_mrec~_~...] 0.016 secs (0.016u,0.s) -Chars 6309 - 6326 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) -Chars 6327 - 6368 [setoid_rewrite~(tau_euttge~(in...] 0.068 secs (0.068u,0.s) -Chars 6375 - 6376 [*] 0. secs (0.u,0.s) -Chars 6377 - 6424 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 6433 - 6468 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) -Chars 6477 - 6520 [rewrite~bind_tau,~unfold_inter...] 6.961 secs (6.893u,0.062s) -Chars 6529 - 6534 [taus.] 0. secs (0.u,0.s) -Chars 6535 - 6556 [rewrite~tau_euttge~...] 0.01 secs (0.009u,0.s) -Chars 6563 - 6564 [*] 0. secs (0.u,0.s) -Chars 6565 - 6627 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 6636 - 6657 [rewrite~bind_trigger.] 3.493 secs (3.458u,0.034s) -Chars 6666 - 6699 [rewrite~unfold_interp_mrec;~bcbn.] 3.454 secs (3.424u,0.029s) -Chars 6708 - 6728 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 6729 - 6757 [repeat~rewrite~tau_euttge~...] 0.02 secs (0.02u,0.s) -Chars 6761 - 6762 [-] 0. secs (0.u,0.s) -Chars 6763 - 6807 [rewrite~(itree_eta~t);~destruc...] 0.019 secs (0.019u,0.s) -Chars 6812 - 6813 [+] 0. secs (0.u,0.s) -Chars 6814 - 6847 [rewrite~interp_ret,~2!bind_ret_l.] 0.048 secs (0.046u,0.s) -Chars 6848 - 6853 [auto.] 0. secs (0.u,0.s) -Chars 6858 - 6859 [+] 0. secs (0.u,0.s) -Chars 6860 - 6919 [rewrite~interp_tau,~2!bind_tau...] 0.079 secs (0.078u,0.s) -Chars 6926 - 6933 [taus~...] 0.001 secs (0.001u,0.s) -Chars 6940 - 6941 [+] 0. secs (0.u,0.s) -Chars 6942 - 6971 [rewrite~interp_vis,~bind_vis.] 0.034 secs (0.033u,0.s) -Chars 6978 - 6996 [rewrite~bind_bind.] 0.017 secs (0.016u,0.s) -Chars 7003 - 7052 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) -Chars 7059 - 7076 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) -Chars 7077 - 7118 [setoid_rewrite~(tau_euttge~(in...] 0.071 secs (0.07u,0.001s) -Chars 7125 - 7126 [*] 0. secs (0.u,0.s) -Chars 7127 - 7174 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 7183 - 7218 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) -Chars 7227 - 7285 [rewrite~!bind_tau,~(unfold_int...] 15.897 secs (15.705u,0.167s) -Chars 7294 - 7299 [taus.] 0. secs (0.u,0.s) -Chars 7300 - 7321 [rewrite~tau_euttge~...] 0.01 secs (0.009u,0.s) -Chars 7329 - 7330 [*] 0. secs (0.u,0.s) -Chars 7331 - 7393 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 7402 - 7423 [rewrite~bind_trigger.] 8.043 secs (7.978u,0.044s) -Chars 7432 - 7465 [rewrite~unfold_interp_mrec;~bcbn.] 8.116 secs (8.016u,0.069s) -Chars 7474 - 7494 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 7495 - 7523 [repeat~rewrite~tau_euttge~...] 0.021 secs (0.021u,0.s) -Chars 7524 - 7528 [Qed.] 0.034 secs (0.034u,0.s) -Chars 7530 - 7550 [End~DinatSimulation.] 0.001 secs (0.001u,0.s) -Chars 7552 - 7570 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) -Chars 7572 - 7632 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) -Chars 7633 - 7639 [Proof.] 0. secs (0.u,0.s) -Chars 7642 - 7671 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) -Chars 7674 - 7710 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7711 - 7747 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) -Chars 7750 - 7932 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) -Chars 7935 - 7936 [{] 0. secs (0.u,0.s) -Chars 7937 - 7946 [compute~in~H.] 0. secs (0.u,0.s) -Chars 7947 - 8000 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 8005 - 8006 [-] 0. secs (0.u,0.s) -Chars 8007 - 8016 [symmetry.] 0. secs (0.u,0.s) -Chars 8017 - 8059 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8066 - 8080 [1:~intros~?~?.] 0. secs (0.u,0.s) -Chars 8087 - 8149 [1,~2:~rewrite~tau_euttge;~appl...] 0.013 secs (0.013u,0.s) -Chars 8156 - 8206 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) -Chars 8211 - 8212 [-] 0. secs (0.u,0.s) -Chars 8213 - 8273 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8280 - 8309 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8316 - 8335 [rewrite~tau_euttge.] 0.01 secs (0.01u,0.s) -Chars 8336 - 8361 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) -Chars 8368 - 8379 [intros~?~?.] 0. secs (0.u,0.s) -Chars 8386 - 8405 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) -Chars 8412 - 8454 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) -Chars 8461 - 8512 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) -Chars 8515 - 8516 [}] 0. secs (0.u,0.s) -Chars 8519 - 8552 [rewrite~<-~interp_mrec_as_interp.] 0.002 secs (0.002u,0.s) -Chars 8556 - 8593 [rewrite~<-~(bind_ret_r~(interp...] 0.012 secs (0.012u,0.s) -Chars 8596 - 8634 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.017 secs (0.017u,0.s) -Chars 8638 - 8661 [apply~interleaved_mrec.] 0. secs (0.u,0.s) -Chars 8664 - 8681 [do~2~constructor.] 0. secs (0.u,0.s) -Chars 8682 - 8686 [Qed.] 0.012 secs (0.012u,0.s) -Chars 8688 - 8705 [Import~Recursion.] 0. secs (0.u,0.s) -Chars 8707 - 8769 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) -Chars 8770 - 8776 [Proof.] 0. secs (0.u,0.s) -Chars 8779 - 8802 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) -Chars 8805 - 8843 [remember~(f0~T~x)~as~t~eqn:EQt...] 0.001 secs (0.001u,0.s) -Chars 8846 - 8882 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 8885 - 9584 [enough~~(interp_mrec~(fun~_~d~...] 0.002 secs (0.002u,0.s) -Chars 9587 - 9588 [{] 0. secs (0.u,0.s) -Chars 9589 - 9597 [subst~f.] 0. secs (0.u,0.s) -Chars 9598 - 9653 [etransitivity;~[~etransitivity...] 0. secs (0.u,0.s) -Chars 9658 - 9659 [-] 0. secs (0.u,0.s) -Chars 9660 - 9669 [symmetry.] 0. secs (0.u,0.s) -Chars 9670 - 9712 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 9719 - 9720 [+] 0. secs (0.u,0.s) -Chars 9721 - 9732 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9733 - 9780 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) -Chars 9789 - 9800 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9801 - 9818 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 9825 - 9826 [+] 0. secs (0.u,0.s) -Chars 9827 - 9900 [apply~euttge_interp_mrec;~repe...] 0.002 secs (0.002u,0.s) -Chars 9909 - 9921 [reflexivity.] 0. secs (0.u,0.s) -Chars 9926 - 9927 [-] 0. secs (0.u,0.s) -Chars 9928 - 10030 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) -Chars 10037 - 10054 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 10057 - 10058 [}] 0. secs (0.u,0.s) -Chars 10061 - 10084 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 10089 - 10098 [revert~t.] 0. secs (0.u,0.s) -Chars 10099 - 10119 [coinduction;~intros.] 0.003 secs (0.003u,0.s) -Chars 10123 - 10173 [rewrite~(itree_eta~t);~destruc...] 0.017 secs (0.017u,0.s) -Chars 10176 - 10242 [all:~rewrite~(unfold_interp_mr...] 0.089 secs (0.089u,0.s) -Chars 10245 - 10283 [1,~2:~rewrite~unfold_interp_mr...] 0.026 secs (0.026u,0.s) -Chars 10286 - 10349 [1,~2:~rewrite~(unfold_interp_m...] 15.724 secs (15.595u,0.102s) -Chars 10352 - 10357 [taus.] 0. secs (0.u,0.s) -Chars 10358 - 10368 [apply~CIH.] 0. secs (0.u,0.s) -Chars 10372 - 10383 [destruct~e.] 0. secs (0.u,0.s) -Chars 10386 - 10387 [-] 0. secs (0.u,0.s) -Chars 10388 - 10435 [rewrite~(interp_mrec_bind~_~(I...] 0.017 secs (0.016u,0.s) -Chars 10440 - 10474 [rewrite~interp_mrec_trigger;~b...] 0.011 secs (0.011u,0.s) -Chars 10479 - 10501 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 10506 - 10569 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.002 secs (0.002u,0.s) -Chars 10574 - 10619 [rewrite~interp_tau,~unfold_int...] 0.042 secs (0.041u,0.s) -Chars 10624 - 10671 [rewrite~(unfold_interp_mrec~_~...] 8.26 secs (8.188u,0.053s) -Chars 10676 - 10694 [rewrite~!bind_tau.] 8.356 secs (8.248u,0.068s) -Chars 10699 - 10704 [taus.] 0. secs (0.u,0.s) -Chars 10710 - 10729 [rewrite~tau_euttge.] 0.007 secs (0.007u,0.s) -Chars 10730 - 10756 [setoid_rewrite~tau_euttge.] 0.018 secs (0.018u,0.s) -Chars 10761 - 10805 [rewrite~<-~interp_mrec_bind,~<...] 0.031 secs (0.031u,0.s) -Chars 10810 - 10825 [auto~with~paco.] 0. secs (0.u,0.s) -Chars 10828 - 10829 [-] 0. secs (0.u,0.s) -Chars 10830 - 10851 [rewrite~bind_trigger.] 0.017 secs (0.017u,0.s) -Chars 10856 - 10882 [setoid_rewrite~tau_euttge.] 0.018 secs (0.018u,0.s) -Chars 10887 - 10922 [rewrite~2!unfold_interp_mrec;~...] 0.032 secs (0.032u,0.s) -Chars 10927 - 10938 [destruct~s.] 0. secs (0.u,0.s) -Chars 10939 - 10944 [taus.] 0. secs (0.u,0.s) -Chars 10950 - 10994 [rewrite~<-~interp_mrec_bind,~<...] 0.029 secs (0.028u,0.s) -Chars 10999 - 11009 [apply~CIH.] 0. secs (0.u,0.s) -Chars 11015 - 11035 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 11036 - 11051 [now~step;~taus.] 0.002 secs (0.002u,0.s) -Chars 11054 - 11058 [Qed.] 0.05 secs (0.049u,0.s) -Chars 11060 - 11119 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) -Chars 11120 - 11126 [Proof.] 0. secs (0.u,0.s) -Chars 11129 - 11154 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 11155 - 11159 [Qed.] 0. secs (0.u,0.s) -Chars 11161 - 11181 [End~HandlerCategory.] 0.003 secs (0.003u,0.s) diff --git a/timing-experiments/all-times.sh b/timing-experiments/all-times.sh deleted file mode 100755 index 58d0d3cc..00000000 --- a/timing-experiments/all-times.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -e -# -# Purpose: measures and sorts all compilation times -# - -## Usage: -## -## -## author: rab -## date: Mon May 4 12:19:14 EDT 2026 - - -NUM_ARGS=0 - - -if [[ "$#" -ne "$NUM_ARGS" ]]; then - >&2 echo "Usage: $0" - exit 1 -fi - -BUILD_DIR=".." -TIMING_DIR="$BUILD_DIR/timing-experiments" - -make -C "$BUILD_DIR" clean -make -C "$BUILD_DIR" TIMING=1 - -find "$BUILD_DIR" -name "*.v.timing" -exec "$TIMING_DIR/sum-times.sh" {} \; | sort -k2 -n diff --git a/timing-experiments/get-times.sh b/timing-experiments/get-times.sh deleted file mode 100755 index 78946217..00000000 --- a/timing-experiments/get-times.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -e -# -# Purpose: Prints the sum total time of all measured commands in a .v.timing file. -# - -## Usage: ./get-times.sh . -## -## -## author: rab -## date: Mon May 4 12:03:49 EDT 2026 - - -NUM_ARGS=1 - - -if [[ "$#" -ne "$NUM_ARGS" ]]; then - >&2 echo "Usage: $0 .v.timing file" - exit 1 -fi - -grep -oe ".\.[0-9]* secs" "$1" | sort -n -k2 -r \ No newline at end of file diff --git a/timing-experiments/sum-times.sh b/timing-experiments/sum-times.sh deleted file mode 100755 index 7c4875e0..00000000 --- a/timing-experiments/sum-times.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -e -# -# Purpose: Prints the sum total time of all measured commands in a .v.timing file. -# - -## Usage: ./get-times.sh . -## -## -## author: rab -## date: Mon May 4 12:03:49 EDT 2026 - - -NUM_ARGS=1 - - -if [[ "$#" -ne "$NUM_ARGS" ]]; then - >&2 echo "Usage: $0 .v.timing file" - exit 1 -fi - -echo -n "$(basename $1): " -grep -Hoe ".\.[0-9]* secs" "$1" | awk '{ split($1,a,":"); sum += a[2] } END { print sum } ' \ No newline at end of file From 3631b512caa07309fbabe00a11f87c86b04e8ad7 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel <62624132+rogerburtonpatel@users.noreply.github.com> Date: Tue, 30 Jun 2026 00:46:18 +0200 Subject: [PATCH 185/189] Remove garbage files 1 --- .claude/settings.json | 76 ------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 .claude/settings.json diff --git a/.claude/settings.json b/.claude/settings.json deleted file mode 100644 index 79f7e757..00000000 --- a/.claude/settings.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(.venv/bin/python -c ' *)", - "Bash(awk 'NR>=345 && /Qed\\\\.|Admitted\\\\./{print NR\": \"$0; exit}' extra/Secure/SecureStateHandler.v)", - "Bash(awk 'NR>458' extra/Secure/SecureStateHandler.v)", - "Bash(cp /tmp/interp_good.txt /tmp/interp13g1.txt)", - "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees hoare_example/ImpHoare.vo -j4)", - "Bash(make ImpHoare.vo -j4)", - "Bash(coqc -Q ../theories/ ITree -Q ../extra ITree.Extra -R . hoare ImpHoare.v)", - "Bash(awk 'NR>=420 && NR<=487 && /^Lemma|^Theorem|^Definition|^Proof/' ImpHoare.v)", - "Bash(awk -F: '$1<=486')", - "Bash(.venv/bin/python3 -)", - "Bash(cp /tmp/ImpHoare_probe.v ImpHoare_probe.v)", - "Bash(coqc -Q ../theories/ ITree -Q ../extra ITree.Extra -R . hoare ImpHoare_probe.v)", - "Bash(/Users/rogerab/claude/rocq-proving/.venv/bin/python -)", - "Bash(perl -i -pe 's/sinv H0\\\\. discriminate\\\\./sinv H0; try discriminate./g' ImpHoare.v)", - "Bash(git log *)", - "Bash(coqc -Q ../theories ITree -R . ITreeExamples Nimp.v)", - "Bash(grep -v \"deprecated\\\\|zoxide\\\\|Please\\\\|If the\\\\|https\\\\|Disable\\\\|^$\")", - "Bash(grep -rn 'Lemma __TRACKED_VAR__ \\\\|Lemma __TRACKED_VAR__:\\\\|Lemma __TRACKED_VAR__{' theories/)", - "Bash(sed -n '212,216p' theories/Interp/RecursionFacts.v)", - "Bash(sed -n '92,95p' theories/Interp/InterpFacts.v)", - "Bash(sed -n '84,87p' theories/Interp/InterpFacts.v)", - "Bash(sed -n '1583,1586p' theories/Eq/Eqit.v)", - "Bash(sed -n '222,232p' theories/Interp/RecursionFacts.v)", - "Bash(make LabelledImpTypes.vo)", - "Bash(grep -v \"zoxide\\\\|Please ensure\\\\|If the issue\\\\|https\\\\|Disable\\\\|deprecated\\\\|^$\")", - "Bash(grep -v \"zoxide\\\\|Please ensure\\\\|If the issue\\\\|https\\\\|Disable\\\\|deprecated\\\\|replaced by\\\\|^$\")", - "Bash(sed -n '170,185p' extra/Secure/SecureEqProgInsensFacts.v)", - "Bash(sed -n '1,30p' secure_example/LabelledImpTypesProgInsens.v)", - "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example)", - "Bash(awk 'NR>=325 && NR<=335 && /Lemma|Proof/' LabelledImpTypesProgInsens.v)", - "Bash(awk -F: '$1<=348')", - "Bash(grep -E \"line [0-9]+|Error|\\\\.v$|compile\")", - "Bash(grep -v \"zoxide\\\\|Please\\\\|If the\\\\|https\\\\|Disable\\\\|^$\")", - "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example -j4)", - "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example LabelledImp2AsmCorrectness.vo)", - "Bash(grep -v \"zoxide\\\\|Please\\\\|If the\\\\|https\\\\|Disable\\\\|deprecated\\\\|replaced by\\\\|^$\")", - "Bash(make -C /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example LabelledImp2AsmNoninterferencePres.vo)", - "Bash(coqc -Q ../theories/ ITree -Q ../extra/ ITree.Extra -R . SecureExample LabelledImp2AsmNoninterferencePres.v)", - "Bash(make all *)", - "Bash(.venv/bin/python check_proof.py --file /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v --line 268 --show-goal)", - "Bash(.venv/bin/python check_proof.py --help)", - "Bash(.venv/bin/python check_proof.py /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v --toc)", - "Bash(.venv/bin/python check_proof.py /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v state_secure_eutt_throw_ret_aux)", - "Bash(.venv/bin/python check_proof.py /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImpInlineTypes.v state_secure_eutt_equiv_ret_aux 'intros R RR t1 t2 observer r1 r2 HRR Hr12 Hr1 Hr2 s1 s2 reg1 regs2 Hs12.' 'set \\(\\(product_rel \\(product_rel top2 \\(labelled_equiv Γ observer\\)\\) RR\\)\\) as Rst.' 'apply eqit_secure_RR_imp with \\(RR1 := rcompose Rst Rst\\).')", - "Bash(grep -nB 1 -A 8 \"secure_eqit_mon\\\\|secure_eqit_mon_func\\\\|Build_mon\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", - "Bash(grep -nB 2 -A 4 \"secure_eqitF_mono \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", - "Bash(grep -nB 1 -A 3 \"eqit_mon\\\\|eqitF_mono \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/theories/Eq/Eqit.v)", - "Bash(grep -nB 1 -A 3 \"Definition eqit_secure\\\\|Arguments eqit_secure\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", - "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_sym\\\\|Lemma flip_eqit_secure\\\\|Lemma eqit_secure_RR_imp\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v)", - "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_RR_imp\\\\|Lemma pi_eqit_secure_RR_imp\\\\|Lemma pi_eqit_secure_sym\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqHalt.v /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqProgInsens.v)", - "Bash(grep -nB 1 -A 4 \"Lemma eqit_secure_RR_imp\" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/extra/Secure/SecureEqEuttHalt.v)", - "Bash(grep -nB 1 -A 6 \"Lemma compile_correct\\\\|state_invariant \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", - "Bash(grep -nB 2 -A 8 \"^Theorem compile_correct\\\\|^Lemma compile_correct\\\\| compile_correct \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", - "Bash(grep -nB 2 -A 6 \"^ Definition equivalent\\\\|equivalent.*stmt\\\\|equivalent \" /Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/secure_example/LabelledImp2AsmCorrectness.v)", - "Bash(coqc -Q theories ITree theories/Eq/Eqit.v)", - "Bash(echo \"EXIT: $?\")", - "Bash(awk 'NR>=1429 && /^Section |^End |^Module /{print NR\": \"$0}' theories/Eq/Eqit.v)", - "Bash(coqc:*)", - "Bash(make:*)", - "Bash(grep:*)", - "Bash(cat:*)", - "Bash(head:*)", - "Bash(wc:*)", - "Bash(ls:*)", - "Bash(awk:*)", - "Edit(//Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/**)", - "Write(//Users/rogerab/home/learning-sandbox/learning/rocq/coinduction/InteractionTrees/**)" - ], - "additionalDirectories": [ - "/Users/rogerab/claude/rocq-proving" - ] - } -} From 116385ddad0d99477d1470aac5b925bb64906473 Mon Sep 17 00:00:00 2001 From: rudynicolop Date: Tue, 30 Jun 2026 11:19:45 +0200 Subject: [PATCH 186/189] change paco dep to rocq-coinduction --- Makefile | 10 ++-- Makefile.conf | 14 +++--- _CoqProject | 115 ++----------------------------------------- coq-itree-extra.opam | 2 +- coq-itree.opam | 2 +- dune-project | 4 +- 6 files changed, 23 insertions(+), 124 deletions(-) diff --git a/Makefile b/Makefile index c5f54563..2784ed89 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.1.1 +## GNUMakefile for Rocq 9.0.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code they may need +# add any other Makefile code he may need -include Makefile.local # Parameters ################################################################## @@ -77,6 +77,7 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" +ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -86,6 +87,9 @@ else STDTIME?=command time endif endif +else +STDTIME?=command time -f $(TIMEFMT) +endif COQBIN?= ifneq (,$(COQBIN)) @@ -274,7 +278,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.1.1 +COQMAKEFILE_VERSION:=9.0.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index f5a69775..6c50778d 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -32,8 +32,8 @@ COQMF_METAFILE = COQMF_OCAMLLIBS = COQMF_SRC_SUBDIRS = -COQMF_COQLIBS = -Q theories ITree -Q extra ITree.Extra -COQMF_COQLIBS_NOML = -Q theories ITree -Q extra ITree.Extra +COQMF_COQLIBS = -Q _build/default/theories ITree -Q _build/default/extra ITree.Extra -Q _build/default/examples ITreeExamples -Q _build/default/tutorial ITreeTutorial -Q _build/default/tests ITreeTests +COQMF_COQLIBS_NOML = -Q _build/default/theories ITree -Q _build/default/extra ITree.Extra -Q _build/default/examples ITreeExamples -Q _build/default/tutorial ITreeTutorial -Q _build/default/tests ITreeTests COQMF_CMDLINE_COQLIBS = ############################################################################### @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ -COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ -COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind +COQMF_COQLIB=/home/rudy/.opam/itree-dev/lib/coq/ +COQMF_COQCORELIB=/home/rudy/.opam/itree-dev/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/home/rudy/.opam/itree-dev/share/doc/ +COQMF_OCAMLFIND=/home/rudy/.opam/itree-dev/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true @@ -68,4 +68,4 @@ COQMF_COQPROJECTNATIVEFLAG = ############################################################################### COQMF_OTHERFLAGS = -COQMF_INSTALLCOQDOCROOT = ITree +COQMF_INSTALLCOQDOCROOT = orphan_ITree_ITree.Extra_ITreeExamples_ITreeTutorial_ITreeTests diff --git a/_CoqProject b/_CoqProject index d5847a7c..ef1176f7 100644 --- a/_CoqProject +++ b/_CoqProject @@ -1,110 +1,5 @@ -# THIS IS AN AUTOMATICALLY GENERATED FILE -# PLEASE EDIT _CoqConfig INSTEAD - --Q theories ITree - -theories/Simple.v -theories/ITree.v -theories/ITreeFacts.v -theories/Axioms.v - -theories/Basics/Utils.v -theories/Basics/Basics.v -theories/Basics/HeterogeneousRelations.v -theories/Basics/Category.v -theories/Basics/CategoryOps.v -theories/Basics/CategoryTheory.v -theories/Basics/CategoryFacts.v -theories/Basics/CategorySub.v -theories/Basics/CategoryFunctor.v -theories/Basics/CategoryRelations.v -theories/Basics/Monad.v -theories/Basics/MonadProp.v -theories/Basics/MonadState.v -theories/Basics/CategoryKleisli.v -theories/Basics/CategoryKleisliFacts.v -theories/Basics/Function.v -theories/Basics/FunctionFacts.v - -theories/Core/ITreeDefinition.v -theories/Core/KTree.v -theories/Core/KTreeFacts.v -theories/Core/Subevent.v -theories/Core/ITreeMonad.v - -theories/Eq.v -theories/Eq/Shallow.v -theories/Eq/Eqit.v -theories/Eq/SimUpToTaus.v -theories/Eq/EqAxiom.v -theories/Eq/Rutt.v -theories/Eq/RuttFacts.v - -theories/Props/Leaf.v -theories/Props/Finite.v -theories/Props/HasPost.v -theories/Props/Infinite.v -theories/Props/Cofinite.v -theories/Props/EuttNoRet.v - -theories/Indexed/Sum.v -theories/Indexed/Relation.v -theories/Indexed/Function.v -theories/Indexed/FunctionFacts.v - -theories/Interp/Interp.v -theories/Interp/TranslateFacts.v -theories/Interp/InterpFacts.v -theories/Interp/Handler.v -theories/Interp/HandlerFacts.v -theories/Interp/Recursion.v -theories/Interp/RecursionFacts.v -theories/Interp/Traces.v - -theories/Events.v -theories/Events/State.v -theories/Events/StateFacts.v -theories/Events/Reader.v -theories/Events/Writer.v -theories/Events/Exception.v -theories/Events/ExceptionFacts.v -theories/Events/Nondeterminism.v -theories/Events/Map.v -theories/Events/MapDefault.v -theories/Events/MapDefaultFacts.v -theories/Events/Concurrency.v -theories/Events/Dependent.v -theories/Events/FailFacts.v --Q extra ITree.Extra - -extra/IForest.v - -extra/ITrace/ITraceDefinition.v -extra/ITrace/ITraceFacts.v -extra/ITrace/ITracePrefix.v -extra/ITrace/ITraceBind.v -extra/ITrace/ITracePreds.v - -extra/Dijkstra/DijkstraMonad.v -extra/Dijkstra/IterRel.v -extra/Dijkstra/PureITreeBasics.v -extra/Dijkstra/PureITreeDijkstra.v -extra/Dijkstra/DelaySpecMonad.v -extra/Dijkstra/StateSpecT.v -extra/Dijkstra/StateDelaySpec.v -extra/Dijkstra/TracesIT.v -extra/Dijkstra/ITreeDijkstra.v -extra/Dijkstra/StateIOTrace.v - -extra/Secure/Labels.v -extra/Secure/StrongBisimProper.v -extra/Secure/SecureEqHalt.v -extra/Secure/SecureEqHaltProgInsens.v -extra/Secure/SecureEqEuttHalt.v -extra/Secure/SecureEqEuttTrans.v -extra/Secure/SecureEqWcompat.v -extra/Secure/SecureEqBind.v -extra/Secure/SecureEqProgInsens.v -extra/Secure/SecureEqProgInsensFacts.v -extra/Secure/SecureStateHandler.v -extra/Secure/SecureStateHandlerPi.v +-Q _build/default/theories ITree +-Q _build/default/extra ITree.Extra +-Q _build/default/examples ITreeExamples +-Q _build/default/tutorial ITreeTutorial +-Q _build/default/tests ITreeTests diff --git a/coq-itree-extra.opam b/coq-itree-extra.opam index 4888f210..ab2f5494 100644 --- a/coq-itree-extra.opam +++ b/coq-itree-extra.opam @@ -14,7 +14,7 @@ depends: [ "dune" {>= "2.6"} "coq" "coq-ext-lib" - "coq-paco" + "rocq-coinduction" "coq-itree" ] dev-repo: "git+https://github.com/DeepSpec/InteractionTrees.git" diff --git a/coq-itree.opam b/coq-itree.opam index 952150fb..9accab88 100644 --- a/coq-itree.opam +++ b/coq-itree.opam @@ -21,7 +21,7 @@ depends: [ "dune" {>= "2.6"} "coq" {>= "8.14"} "coq-ext-lib" {>= "0.11.1"} - "coq-paco" {>= "4.2.1"} + "rocq-coinduction" {>= "1.21"} ] build: [ ["dune" "subst"] {pinned} diff --git a/dune-project b/dune-project index 6e8d191c..71756e73 100644 --- a/dune-project +++ b/dune-project @@ -12,7 +12,7 @@ (depends (coq (>= 8.14)) (coq-ext-lib (>= 0.11.1)) - (coq-paco (>= 4.2.1))) + (rocq-coinduction (>= 1.21))) (tags ("org:deepspec")) (authors "Li-yao Xia" @@ -30,7 +30,7 @@ (depends coq coq-ext-lib - coq-paco + rocq-coinduction coq-itree) (tags ("org:deepspec")) (authors From 1e41738b749b94d863a614e4902145d585935c40 Mon Sep 17 00:00:00 2001 From: rudynicolop Date: Tue, 30 Jun 2026 11:40:22 +0200 Subject: [PATCH 187/189] restore Makefile and _CoqProject --- Makefile | 10 ++--- Makefile.conf | 14 +++--- _CoqProject | 115 +++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 120 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 2784ed89..c5f54563 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## -## GNUMakefile for Rocq 9.0.1 +## GNUMakefile for Rocq 9.1.1 # For debugging purposes (must stay here, don't move below) INITIAL_VARS := $(.VARIABLES) @@ -48,7 +48,7 @@ Makefile.conf: _CoqProject coq_makefile -f _CoqProject -o Makefile # This file can be created by the user to hook into double colon rules or -# add any other Makefile code he may need +# add any other Makefile code they may need -include Makefile.local # Parameters ################################################################## @@ -77,7 +77,6 @@ TIMED?= TIMECMD?= # Use command time on linux, gtime on Mac OS TIMEFMT?="$(if $(findstring undefined, $(flavor 1)),$@,$(1)) (real: %e, user: %U, sys: %S, mem: %M ko)" -ifneq (,$(TIMED)) ifeq (0,$(shell command time -f "" true >/dev/null 2>/dev/null; echo $$?)) STDTIME?=command time -f $(TIMEFMT) else @@ -87,9 +86,6 @@ else STDTIME?=command time endif endif -else -STDTIME?=command time -f $(TIMEFMT) -endif COQBIN?= ifneq (,$(COQBIN)) @@ -278,7 +274,7 @@ COQDOCLIBS?=$(COQLIBS_NOML) # generated this makefile # NB --print-version is not in the rocq shim COQ_VERSION:=$(shell $(ROCQ) c --print-version | cut -d " " -f 1) -COQMAKEFILE_VERSION:=9.0.1 +COQMAKEFILE_VERSION:=9.1.1 # COQ_SRC_SUBDIRS is for user-overriding, usually to add # `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for diff --git a/Makefile.conf b/Makefile.conf index 6c50778d..f5a69775 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -32,8 +32,8 @@ COQMF_METAFILE = COQMF_OCAMLLIBS = COQMF_SRC_SUBDIRS = -COQMF_COQLIBS = -Q _build/default/theories ITree -Q _build/default/extra ITree.Extra -Q _build/default/examples ITreeExamples -Q _build/default/tutorial ITreeTutorial -Q _build/default/tests ITreeTests -COQMF_COQLIBS_NOML = -Q _build/default/theories ITree -Q _build/default/extra ITree.Extra -Q _build/default/examples ITreeExamples -Q _build/default/tutorial ITreeTutorial -Q _build/default/tests ITreeTests +COQMF_COQLIBS = -Q theories ITree -Q extra ITree.Extra +COQMF_COQLIBS_NOML = -Q theories ITree -Q extra ITree.Extra COQMF_CMDLINE_COQLIBS = ############################################################################### @@ -42,10 +42,10 @@ COQMF_CMDLINE_COQLIBS = # # ############################################################################### -COQMF_COQLIB=/home/rudy/.opam/itree-dev/lib/coq/ -COQMF_COQCORELIB=/home/rudy/.opam/itree-dev/lib/coq/../rocq-runtime/ -COQMF_DOCDIR=/home/rudy/.opam/itree-dev/share/doc/ -COQMF_OCAMLFIND=/home/rudy/.opam/itree-dev/bin/ocamlfind +COQMF_COQLIB=/Users/rogerab/.opam/default/lib/coq/ +COQMF_COQCORELIB=/Users/rogerab/.opam/default/lib/coq/../rocq-runtime/ +COQMF_DOCDIR=/Users/rogerab/.opam/default/share/doc/ +COQMF_OCAMLFIND=/Users/rogerab/.opam/default/bin/ocamlfind COQMF_CAMLFLAGS=-thread -bin-annot -strict-sequence -w -a+1..3-4+5..8-9+10..26-27+28..39-40-41-42+43-44-45+46..47-48+49..57-58+59..66-67-68+69-70 COQMF_WARN=-warn-error +a-3 COQMF_HASNATDYNLINK=true @@ -68,4 +68,4 @@ COQMF_COQPROJECTNATIVEFLAG = ############################################################################### COQMF_OTHERFLAGS = -COQMF_INSTALLCOQDOCROOT = orphan_ITree_ITree.Extra_ITreeExamples_ITreeTutorial_ITreeTests +COQMF_INSTALLCOQDOCROOT = ITree diff --git a/_CoqProject b/_CoqProject index ef1176f7..d5847a7c 100644 --- a/_CoqProject +++ b/_CoqProject @@ -1,5 +1,110 @@ --Q _build/default/theories ITree --Q _build/default/extra ITree.Extra --Q _build/default/examples ITreeExamples --Q _build/default/tutorial ITreeTutorial --Q _build/default/tests ITreeTests +# THIS IS AN AUTOMATICALLY GENERATED FILE +# PLEASE EDIT _CoqConfig INSTEAD + +-Q theories ITree + +theories/Simple.v +theories/ITree.v +theories/ITreeFacts.v +theories/Axioms.v + +theories/Basics/Utils.v +theories/Basics/Basics.v +theories/Basics/HeterogeneousRelations.v +theories/Basics/Category.v +theories/Basics/CategoryOps.v +theories/Basics/CategoryTheory.v +theories/Basics/CategoryFacts.v +theories/Basics/CategorySub.v +theories/Basics/CategoryFunctor.v +theories/Basics/CategoryRelations.v +theories/Basics/Monad.v +theories/Basics/MonadProp.v +theories/Basics/MonadState.v +theories/Basics/CategoryKleisli.v +theories/Basics/CategoryKleisliFacts.v +theories/Basics/Function.v +theories/Basics/FunctionFacts.v + +theories/Core/ITreeDefinition.v +theories/Core/KTree.v +theories/Core/KTreeFacts.v +theories/Core/Subevent.v +theories/Core/ITreeMonad.v + +theories/Eq.v +theories/Eq/Shallow.v +theories/Eq/Eqit.v +theories/Eq/SimUpToTaus.v +theories/Eq/EqAxiom.v +theories/Eq/Rutt.v +theories/Eq/RuttFacts.v + +theories/Props/Leaf.v +theories/Props/Finite.v +theories/Props/HasPost.v +theories/Props/Infinite.v +theories/Props/Cofinite.v +theories/Props/EuttNoRet.v + +theories/Indexed/Sum.v +theories/Indexed/Relation.v +theories/Indexed/Function.v +theories/Indexed/FunctionFacts.v + +theories/Interp/Interp.v +theories/Interp/TranslateFacts.v +theories/Interp/InterpFacts.v +theories/Interp/Handler.v +theories/Interp/HandlerFacts.v +theories/Interp/Recursion.v +theories/Interp/RecursionFacts.v +theories/Interp/Traces.v + +theories/Events.v +theories/Events/State.v +theories/Events/StateFacts.v +theories/Events/Reader.v +theories/Events/Writer.v +theories/Events/Exception.v +theories/Events/ExceptionFacts.v +theories/Events/Nondeterminism.v +theories/Events/Map.v +theories/Events/MapDefault.v +theories/Events/MapDefaultFacts.v +theories/Events/Concurrency.v +theories/Events/Dependent.v +theories/Events/FailFacts.v +-Q extra ITree.Extra + +extra/IForest.v + +extra/ITrace/ITraceDefinition.v +extra/ITrace/ITraceFacts.v +extra/ITrace/ITracePrefix.v +extra/ITrace/ITraceBind.v +extra/ITrace/ITracePreds.v + +extra/Dijkstra/DijkstraMonad.v +extra/Dijkstra/IterRel.v +extra/Dijkstra/PureITreeBasics.v +extra/Dijkstra/PureITreeDijkstra.v +extra/Dijkstra/DelaySpecMonad.v +extra/Dijkstra/StateSpecT.v +extra/Dijkstra/StateDelaySpec.v +extra/Dijkstra/TracesIT.v +extra/Dijkstra/ITreeDijkstra.v +extra/Dijkstra/StateIOTrace.v + +extra/Secure/Labels.v +extra/Secure/StrongBisimProper.v +extra/Secure/SecureEqHalt.v +extra/Secure/SecureEqHaltProgInsens.v +extra/Secure/SecureEqEuttHalt.v +extra/Secure/SecureEqEuttTrans.v +extra/Secure/SecureEqWcompat.v +extra/Secure/SecureEqBind.v +extra/Secure/SecureEqProgInsens.v +extra/Secure/SecureEqProgInsensFacts.v +extra/Secure/SecureStateHandler.v +extra/Secure/SecureStateHandlerPi.v From a945a2d321d84c67965f6c0f81f2d369e43409d5 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 30 Jun 2026 13:40:43 +0200 Subject: [PATCH 188/189] paco -> rocq coinduction --- CLAUDE.md | 89 ---------------------------- DEV.md | 4 +- README.md | 2 +- _CoqProject.itree | 1 - dune-errors.txt | 146 ---------------------------------------------- 5 files changed, 3 insertions(+), 239 deletions(-) delete mode 100644 CLAUDE.md delete mode 100644 dune-errors.txt diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 4479520c..00000000 --- a/CLAUDE.md +++ /dev/null @@ -1,89 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Build Commands - -**Default build system: make** - -```bash -# Install dependencies -opam install coq-paco coq-ext-lib - -# Build everything -make all -j # library + tutorial + tests - -# Build specific targets -make # library only -make tutorial -make tests -make html # coqdoc HTML docs → html/toc.html -``` - -**Alternative build system: dune** - -```bash -opam install coq-paco coq-ext-lib dune - -dune build # build everything -dune runtest # run tests -dune build theories / tutorial / tests / examples -``` - -**Before editing Coq files interactively with dune**, set up `_CoqProject`: -```bash -cp _CoqProject.dune _CoqProject -``` -Clean before switching between `make` and `dune` builds. - -## Architecture Overview - -This is a Rocq (Coq) library for **Interaction Trees** — a coinductive data structure for representing recursive/impure programs with principled equational reasoning. - -### Core Data Type - -`itree E R` (in [theories/Core/ITreeDefinition.v](theories/Core/ITreeDefinition.v)) is a coinductive tree with three constructors: -- `Ret r` — pure return value -- `Tau t` — silent step (enables coinductive looping) -- `Vis e k` — visible event `e : E X` with continuation `k : X -> itree E R` - -The type is defined as a final coalgebra using `CoInductive` with a primitive projection `_observe`. Always use `observe` (not `_observe` directly), and prefer `cbn` over `simpl` when reducing `observe` of a `CoFixpoint`. - -### Equational Theory (`theories/Eq/`) - -The key file is [theories/Eq/Eqit.v](theories/Eq/Eqit.v). All three main relations are instances of `eqit b1 b2 RR`: - -| Relation | Notation | `b1` | `b2` | Meaning | -|----------|----------|------|------|---------| -| `eq_itree RR` | `≅` | false | false | Strong bisimulation | -| `eutt RR` | `≈` | true | true | Weak bisimulation (up to `Tau`) | -| `euttge RR` | `≳` | true | false | Weak simulation (one-sided `Tau` elim) | - -**Critical architectural detail**: This branch (`yannick-coinduction`) replaces the original paco-based coinduction with **Pous' `coinduction` library** (`From Coinduction Require Import all`). The `gfp` combinator defines coinductive relations as greatest fixed points of monotone functions. The `eqit_mon` record packages the monotone function for use with `gfp`. - -Notations have three "layers": -- `t1 ≈ t2` — the `gfp` (greatest fixed point) -- `t1 [≈] t2` — the `elem` (membership in the chain) -- `t1 {≈} t2` — the `eqitF` functor applied to `elem _` - -### Library Organization - -- **`theories/Basics/`** — Category theory infrastructure (`~>` notation, Kleisli categories, monad transformers). Not ITree-specific. -- **`theories/Core/`** — ITree definition, `bind`/`map`, Kleisli category (`KTree`), `Subevent` for extensible effects. -- **`theories/Eq/`** — `eqit`/`eutt`/`eq_itree`, up-to-taus, simulation, heterogeneous relation (`Rutt`). -- **`theories/Props/`** — Propositional predicates on ITrees (finiteness, leaves, cofiniteness). -- **`theories/Interp/`** — `interp`, `translate`, `mrec`/`rec` recursion combinators, event handlers. -- **`theories/Events/`** — Standard event types: state, reader, writer, exceptions, nondeterminism, concurrency. -- **`extra/`** — Additional theories (ITrace, Dijkstra monads, secure information flow). Mapped to `ITree.Extra`. - -### Key Convention - -Theorems are kept in separate `*Facts` modules (e.g., `KTreeFacts`, `InterpFacts`) to enable parallel compilation and isolate potential universe inconsistencies from the computational definitions. - -### Axioms - -The core library uses UIP (`eq_rect_eq`) and functional extensionality (in `FunctionFacts`). The `extra/ITrace` theories additionally assume excluded middle and a type-theoretic axiom of choice (not used in the main `theories/` library). The axiom `bisimulation_is_eq : t1 ≅ t2 -> t1 = t2` is exported but not used internally. - -### Tactics (in `theories/Basics/Utils.v` and `theories/Eq/Eqit.v`) - -Custom tactics include `inv`, `hexploit`, `rewrite_everywhere`, `flatten_goal`/`flatten_hyp`/`flatten_all`, and `icoinduction` (wraps the `coinduction` library's tactic for ITree-specific goals). diff --git a/DEV.md b/DEV.md index dd32f8ca..034692cf 100644 --- a/DEV.md +++ b/DEV.md @@ -9,7 +9,7 @@ and also to generate documentation. Install dependencies with `opam`. ``` -opam install coq-paco coq-ext-lib dune +opam install rocq-coinduction coq-ext-lib dune ``` Then `dune build` will compile everything: library, tutorial (toy compiler from @@ -49,7 +49,7 @@ dune runtest This uses the same dependencies, minus `dune`. ``` -opam install coq-paco coq-ext-lib +opam install rocq-coinduction coq-ext-lib ``` Build everything with `make all`. diff --git a/README.md b/README.md index 4f13227a..9b0052c0 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ opam install coq-itree ### Dependencies - [coq](https://coq.inria.fr/) -- [coq-paco](https://github.com/snu-sf/paco) +- [rocq-coinduction](https://github.com/damien-pous/coinduction) - [coq-ext-lib](https://github.com/coq-community/coq-ext-lib) See [`coq-itree.opam`](./coq-itree.opam) for version details. diff --git a/_CoqProject.itree b/_CoqProject.itree index 502d07b1..7c29b64f 100644 --- a/_CoqProject.itree +++ b/_CoqProject.itree @@ -31,7 +31,6 @@ theories/Core/Subevent.v theories/Core/ITreeMonad.v theories/Eq.v -theories/Eq/Paco2.v theories/Eq/Shallow.v theories/Eq/Eqit.v theories/Eq/SimUpToTaus.v diff --git a/dune-errors.txt b/dune-errors.txt deleted file mode 100644 index fdbb8736..00000000 --- a/dune-errors.txt +++ /dev/null @@ -1,146 +0,0 @@ -Warning: Dune's Coq Build Language is deprecated, and will be removed in Dune -3.24. Please upgrade to the new Rocq Build Language. -Hint: To disable this warning, add the following to your dune-project file: -(warnings (deprecated_coq_lang disabled)) - -File "./examples/ITreePredicatesExample.v", line 103, characters 4-9: -Error: No matching clauses for match. - - -File "./examples/Nimp.v", line 32, characters 0-53: -Error: Notation "_ --> _" is already defined at level 55 with arguments -constr at next level, constr at level 55 while it is now required to be -at level 80 with arguments constr at next level, constr at level 55. - - -File "./extra/IForest.v", line 295, characters 4-14: -Error: -Could not find an instance for "pacotac_internal.paco_class - (gfp (eqit_mon false false) R R Logic.eq x - y)" -in -environment: -R : Type -F : Type -> Type -E : Type -> Type -h_spec : forall T : Type, E T -> iforest F T -RR : relation R -r : itree E R -> itree F R -> Prop -CIH : - forall x y : itree E R, - x ≅ y -> forall y0 : itree F R, interp_iforest h_spec R RR x y0 -> r y y0 -x, y : itree E R -eq : gfp (eqit_mon false false) R R Logic.eq x y -t : itree F R -H : - interp_iforestF h_spec RR (upaco2 (interp_iforest_ E F h_spec R RR) bot2) - (⊙ x) t -_typ_ := ?_typ_ : Type -_lem_ := ?_lem_ : _typ_ -_X_ : gfp (eqit_mon false false) R R Logic.eq x y - - - -File "./extra/Secure/SecureEqHalt.v", line 114, characters 0-86: -Error: -The following term contains unresolved implicit arguments: - {| L := nat; leq := fun n m : nat => n <= m |} -More precisely: -- ?CompleteLattice: Cannot infer the implicit parameter CompleteLattice of - lattice.leq whose type is "CompleteLattice nat" (no type class instance - found) in environment: - n, m : nat - - -File "./extra/Secure/SecureEqHaltProgInsens.v", line 106, characters 0-86: -Error: -The following term contains unresolved implicit arguments: - {| L := nat; leq := fun n m : nat => n <= m |} -More precisely: -- ?CompleteLattice: Cannot infer the implicit parameter CompleteLattice of - lattice.leq whose type is "CompleteLattice nat" (no type class instance - found) in environment: - n, m : nat - - -File "./theories/Events/ExceptionFacts.v", line 56, characters 2-7: -Error: No matching clauses for match. - - -File "./theories/Events/FailFacts.v", line 151, characters 2-7: -Error: No matching clauses for match. - - -File "./theories/Events/MapDefaultFacts.v", line 182, characters 4-9: -Error: No matching clauses for match. - - -File "./theories/Interp/Traces.v", line 87, characters 4-13: -Error: -Could not find an instance for "pacotac_internal.paco_class - (gfp (sutt_mon eq) (⊙ t1) (⊙ t2))" -in -environment: -E : Type -> Type -R : Type -r : R -t2, t1 : itree E R -H : gfp (sutt_mon eq) (⊙ t1) (⊙ t2) -Heqi : RetF r = ⊙ t1 -_typ_ := ?_typ_ : Type -_lem_ := ?_lem_ : _typ_ -_X_ : gfp (sutt_mon eq) (⊙ t1) (⊙ t2) - - - -File "./theories/Props/Finite.v", line 187, characters 4-14: -Error: -Could not find an instance for "pacotac_internal.paco_class - (gfp (eqit_mon true true) A B R t u2)" -in -environment: -E : Type -> Type -A : Type -B : Type -R : A -> B -> Prop -a : A -t : itree E A -H : ⊙ t = RetF a -u2 : itree E B -EQ : gfp (eqit_mon true true) A B R t u2 -_typ_ := ?_typ_ : Type -_lem_ := ?_lem_ : _typ_ -_X_ : gfp (eqit_mon true true) A B R t u2 - - - -File "./theories/Props/Infinite.v", line 61, characters 4-14: -Error: -Could not find an instance for "pacotac_internal.paco_class - (gfp (eqit_mon true true) X X R x y)" -in -environment: -E : Type -> Type -X : Type -R : X -> X -> Prop -r : itree E X -> Prop -CH : forall x y : itree E X, x ≈⟨ R ⟩ y -> any_infinite x -> r y -x, y : itree E X -H0 : gfp (eqit_mon true true) X X R x y -H1 : any_infinite x -_typ_ := ?_typ_ : Type -_lem_ := ?_lem_ : _typ_ -_X_ : gfp (eqit_mon true true) X X R x y - - - -File "./tutorial/AsmCombinators.v", line 120, characters 0-47: -Error: -The following term contains unresolved implicit arguments: - (fun A : nat => pure_asm id) -More precisely: -- ?c: Cannot infer an internal placeholder of type - "CompleteLattice (fin A)" (no type class instance found) in - environment: - A : nat - From dea32013ecb2d9b466ed73949044e571b2894d04 Mon Sep 17 00:00:00 2001 From: Roger Burtonpatel Date: Tue, 30 Jun 2026 13:40:57 +0200 Subject: [PATCH 189/189] Removed more dead files --- extra/Dijkstra/DelaySpecMonad.v.timing | 443 ---- extra/Dijkstra/DijkstraMonad.v.timing | 50 - extra/Dijkstra/ITreeDijkstra.v.timing | 849 ------- extra/Dijkstra/IterRel.v.timing | 178 -- extra/Dijkstra/PureITreeBasics.v.timing | 151 -- extra/Dijkstra/PureITreeDijkstra.v.timing | 571 ----- extra/Dijkstra/StateDelaySpec.v.timing | 310 --- extra/Dijkstra/StateIOTrace.v.timing | 284 --- extra/Dijkstra/StateSpecT.v.timing | 244 -- extra/Dijkstra/TracesIT.v.timing | 604 ----- extra/IForest.v.timing | 1131 --------- extra/ITrace/ITraceBind.v.timing | 2116 ----------------- extra/ITrace/ITraceDefinition.v.timing | 24 - extra/ITrace/ITraceFacts.v.timing | 1233 ---------- extra/ITrace/ITracePreds.v.timing | 163 -- extra/ITrace/ITracePrefix.v.timing | 557 ----- extra/Secure/Labels.v.timing | 15 - extra/Secure/SecureEqBind.v.timing | 350 --- extra/Secure/SecureEqEuttHalt.v.timing | 1882 --------------- extra/Secure/SecureEqEuttTrans.v.timing | 244 -- extra/Secure/SecureEqHalt.v.timing | 73 - extra/Secure/SecureEqHaltProgInsens.v.timing | 66 - extra/Secure/SecureEqProgInsens.v.timing | 527 ---- extra/Secure/SecureEqProgInsensFacts.v.timing | 10 - extra/Secure/SecureEqWcompat.v.timing | 144 -- extra/Secure/StrongBisimProper.v.timing | 11 - theories/Axioms.v.timing | 20 - theories/Basics/Basics.v.timing | 51 - theories/Basics/Category.v.timing | 1 - theories/Basics/CategoryFacts.v.timing | 694 ------ theories/Basics/CategoryFunctor.v.timing | 22 - theories/Basics/CategoryKleisli.v.timing | 23 - theories/Basics/CategoryKleisliFacts.v.timing | 307 --- theories/Basics/CategoryOps.v.timing | 126 - theories/Basics/CategoryRelations.v.timing | 430 ---- theories/Basics/CategorySub.v.timing | 128 - theories/Basics/CategoryTheory.v.timing | 241 -- theories/Basics/Function.v.timing | 18 - theories/Basics/FunctionFacts.v.timing | 143 -- .../Basics/HeterogeneousRelations.v.timing | 652 ----- theories/Basics/Monad.v.timing | 21 - theories/Basics/MonadProp.v.timing | 232 -- theories/Basics/MonadState.v.timing | 400 ---- theories/Basics/Utils.v.timing | 36 - theories/Core/ITreeDefinition.v.timing | 55 - theories/Core/ITreeMonad.v.timing | 36 - theories/Core/KTree.v.timing | 14 - theories/Core/KTreeFacts.v.timing | 276 --- theories/Core/Subevent.v.timing | 50 - theories/Eq.v.timing | 1 - theories/Eq/EqAxiom.v.timing | 7 - theories/Eq/Eqit.v.timing | 1825 -------------- theories/Eq/Rutt.v.timing | 236 -- theories/Eq/RuttFacts.v.timing | 578 ----- theories/Eq/Shallow.v.timing | 102 - theories/Eq/SimUpToTaus.v.timing | 244 -- theories/Events.v.timing | 1 - theories/Events/Concurrency.v.timing | 10 - theories/Events/Dependent.v.timing | 6 - theories/Events/Exception.v.timing | 6 - theories/Events/ExceptionFacts.v.timing | 479 ---- theories/Events/FailFacts.v.timing | 201 -- theories/Events/Map.v.timing | 25 - theories/Events/MapDefault.v.timing | 28 - theories/Events/MapDefaultFacts.v.timing | 211 -- theories/Events/Nondeterminism.v.timing | 11 - theories/Events/Reader.v.timing | 14 - theories/Events/State.v.timing | 23 - theories/Events/StateFacts.v.timing | 248 -- theories/Events/Writer.v.timing | 17 - theories/ITree.v.timing | 1 - theories/ITreeFacts.v.timing | 1 - theories/Indexed/Function.v.timing | 14 - theories/Indexed/FunctionFacts.v.timing | 11 - theories/Indexed/Relation.v.timing | 29 - theories/Indexed/Sum.v.timing | 9 - theories/Interp/Handler.v.timing | 27 - theories/Interp/HandlerFacts.v.timing | 340 --- theories/Interp/Interp.v.timing | 7 - theories/Interp/InterpFacts.v.timing | 341 --- theories/Interp/Recursion.v.timing | 24 - theories/Interp/RecursionFacts.v.timing | 242 -- theories/Interp/Traces.v.timing | 223 -- theories/Interp/TranslateFacts.v.timing | 171 -- theories/Props/Cofinite.v.timing | 20 - theories/Props/EuttNoRet.v.timing | 269 --- theories/Props/Finite.v.timing | 363 --- theories/Props/HasPost.v.timing | 163 -- theories/Props/Infinite.v.timing | 326 --- theories/Props/Leaf.v.timing | 402 ---- theories/Simple.v.timing | 233 -- 91 files changed, 23695 deletions(-) delete mode 100644 extra/Dijkstra/DelaySpecMonad.v.timing delete mode 100644 extra/Dijkstra/DijkstraMonad.v.timing delete mode 100644 extra/Dijkstra/ITreeDijkstra.v.timing delete mode 100644 extra/Dijkstra/IterRel.v.timing delete mode 100644 extra/Dijkstra/PureITreeBasics.v.timing delete mode 100644 extra/Dijkstra/PureITreeDijkstra.v.timing delete mode 100644 extra/Dijkstra/StateDelaySpec.v.timing delete mode 100644 extra/Dijkstra/StateIOTrace.v.timing delete mode 100644 extra/Dijkstra/StateSpecT.v.timing delete mode 100644 extra/Dijkstra/TracesIT.v.timing delete mode 100644 extra/IForest.v.timing delete mode 100644 extra/ITrace/ITraceBind.v.timing delete mode 100644 extra/ITrace/ITraceDefinition.v.timing delete mode 100644 extra/ITrace/ITraceFacts.v.timing delete mode 100644 extra/ITrace/ITracePreds.v.timing delete mode 100644 extra/ITrace/ITracePrefix.v.timing delete mode 100644 extra/Secure/Labels.v.timing delete mode 100644 extra/Secure/SecureEqBind.v.timing delete mode 100644 extra/Secure/SecureEqEuttHalt.v.timing delete mode 100644 extra/Secure/SecureEqEuttTrans.v.timing delete mode 100644 extra/Secure/SecureEqHalt.v.timing delete mode 100644 extra/Secure/SecureEqHaltProgInsens.v.timing delete mode 100644 extra/Secure/SecureEqProgInsens.v.timing delete mode 100644 extra/Secure/SecureEqProgInsensFacts.v.timing delete mode 100644 extra/Secure/SecureEqWcompat.v.timing delete mode 100644 extra/Secure/StrongBisimProper.v.timing delete mode 100644 theories/Axioms.v.timing delete mode 100644 theories/Basics/Basics.v.timing delete mode 100644 theories/Basics/Category.v.timing delete mode 100644 theories/Basics/CategoryFacts.v.timing delete mode 100644 theories/Basics/CategoryFunctor.v.timing delete mode 100644 theories/Basics/CategoryKleisli.v.timing delete mode 100644 theories/Basics/CategoryKleisliFacts.v.timing delete mode 100644 theories/Basics/CategoryOps.v.timing delete mode 100644 theories/Basics/CategoryRelations.v.timing delete mode 100644 theories/Basics/CategorySub.v.timing delete mode 100644 theories/Basics/CategoryTheory.v.timing delete mode 100644 theories/Basics/Function.v.timing delete mode 100644 theories/Basics/FunctionFacts.v.timing delete mode 100644 theories/Basics/HeterogeneousRelations.v.timing delete mode 100644 theories/Basics/Monad.v.timing delete mode 100644 theories/Basics/MonadProp.v.timing delete mode 100644 theories/Basics/MonadState.v.timing delete mode 100644 theories/Basics/Utils.v.timing delete mode 100644 theories/Core/ITreeDefinition.v.timing delete mode 100644 theories/Core/ITreeMonad.v.timing delete mode 100644 theories/Core/KTree.v.timing delete mode 100644 theories/Core/KTreeFacts.v.timing delete mode 100644 theories/Core/Subevent.v.timing delete mode 100644 theories/Eq.v.timing delete mode 100644 theories/Eq/EqAxiom.v.timing delete mode 100644 theories/Eq/Eqit.v.timing delete mode 100644 theories/Eq/Rutt.v.timing delete mode 100644 theories/Eq/RuttFacts.v.timing delete mode 100644 theories/Eq/Shallow.v.timing delete mode 100644 theories/Eq/SimUpToTaus.v.timing delete mode 100644 theories/Events.v.timing delete mode 100644 theories/Events/Concurrency.v.timing delete mode 100644 theories/Events/Dependent.v.timing delete mode 100644 theories/Events/Exception.v.timing delete mode 100644 theories/Events/ExceptionFacts.v.timing delete mode 100644 theories/Events/FailFacts.v.timing delete mode 100644 theories/Events/Map.v.timing delete mode 100644 theories/Events/MapDefault.v.timing delete mode 100644 theories/Events/MapDefaultFacts.v.timing delete mode 100644 theories/Events/Nondeterminism.v.timing delete mode 100644 theories/Events/Reader.v.timing delete mode 100644 theories/Events/State.v.timing delete mode 100644 theories/Events/StateFacts.v.timing delete mode 100644 theories/Events/Writer.v.timing delete mode 100644 theories/ITree.v.timing delete mode 100644 theories/ITreeFacts.v.timing delete mode 100644 theories/Indexed/Function.v.timing delete mode 100644 theories/Indexed/FunctionFacts.v.timing delete mode 100644 theories/Indexed/Relation.v.timing delete mode 100644 theories/Indexed/Sum.v.timing delete mode 100644 theories/Interp/Handler.v.timing delete mode 100644 theories/Interp/HandlerFacts.v.timing delete mode 100644 theories/Interp/Interp.v.timing delete mode 100644 theories/Interp/InterpFacts.v.timing delete mode 100644 theories/Interp/Recursion.v.timing delete mode 100644 theories/Interp/RecursionFacts.v.timing delete mode 100644 theories/Interp/Traces.v.timing delete mode 100644 theories/Interp/TranslateFacts.v.timing delete mode 100644 theories/Props/Cofinite.v.timing delete mode 100644 theories/Props/EuttNoRet.v.timing delete mode 100644 theories/Props/Finite.v.timing delete mode 100644 theories/Props/HasPost.v.timing delete mode 100644 theories/Props/Infinite.v.timing delete mode 100644 theories/Props/Leaf.v.timing delete mode 100644 theories/Simple.v.timing diff --git a/extra/Dijkstra/DelaySpecMonad.v.timing b/extra/Dijkstra/DelaySpecMonad.v.timing deleted file mode 100644 index 97fe1bc1..00000000 --- a/extra/Dijkstra/DelaySpecMonad.v.timing +++ /dev/null @@ -1,443 +0,0 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.158 secs (0.141u,0.017s) -Chars 198 - 310 [From~ITree.Extra~Require~Impor...] 0.013 secs (0.011u,0.002s) -Chars 312 - 326 [Import~Monads.] 0. secs (0.u,0.s) -Chars 327 - 348 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 350 - 382 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 384 - 407 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 719 - 1124 [Ltac~~clear_ret_eutt_spin~:=~~...] 0. secs (0.u,0.s) -Chars 1126 - 1435 [Ltac~~invert_evidence~:=~~~int...] 0. secs (0.u,0.s) -Chars 1437 - 1691 [Ltac~~invert_ret~:=~~~simpl~in...] 0. secs (0.u,0.s) -Chars 1694 - 1771 [Ltac~basic_solve~:=~invert_evi...] 0. secs (0.u,0.s) -Chars 1773 - 1846 [Ltac~dest_dep~f~a~:=~destruct~...] 0. secs (0.u,0.s) -Chars 1848 - 1878 [Declare~Scope~delayspec_scope.] 0. secs (0.u,0.s) -Chars 1879 - 1924 [Delimit~Scope~delayspec_scope~...] 0. secs (0.u,0.s) -Chars 1926 - 1962 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) -Chars 1964 - 2051 [Notation~"a~∈~b"~:=~(proj1_sig...] 0. secs (0.u,0.s) -Chars 2052 - 2153 [Notation~"a~∋~b"~:=~(proj1_sig...] 0. secs (0.u,0.s) -Chars 2155 - 2200 [Definition~Delay~(A~:~Type)~:=...] 0. secs (0.u,0.s) -Chars 2202 - 2273 [#[global]~Instance~EqMDelay~:~...] 0. secs (0.u,0.s) -Chars 2274 - 2340 [#[global]~Instance~MonadDelay~...] 0. secs (0.u,0.s) -Chars 2341 - 2426 [#[global]~Instance~MonadIterDe...] 0. secs (0.u,0.s) -Chars 2428 - 2511 [Definition~DelaySpecInput~(A~:...] 0. secs (0.u,0.s) -Chars 2513 - 2604 [Definition~DelayIn~{A~:~Type}~...] 0. secs (0.u,0.s) -Chars 2606 - 2767 [Definition~DelaySpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 2769 - 2854 [#[program]~Definition~ret_del~...] 0.002 secs (0.001u,0.s) -Chars 2856 - 3075 [#[program]~Definition~_bind_de...] 0.028 secs (0.026u,0.001s) -Chars 3076 - 3092 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 3095 - 3114 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 3115 - 3142 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) -Chars 3145 - 3146 [-] 0. secs (0.u,0.s) -Chars 3147 - 3152 [left.] 0. secs (0.u,0.s) -Chars 3153 - 3162 [exists~a.] 0. secs (0.u,0.s) -Chars 3163 - 3175 [split;~auto.] 0. secs (0.u,0.s) -Chars 3176 - 3186 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 3187 - 3192 [auto.] 0. secs (0.u,0.s) -Chars 3195 - 3196 [-] 0. secs (0.u,0.s) -Chars 3197 - 3203 [right.] 0. secs (0.u,0.s) -Chars 3204 - 3221 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 3222 - 3227 [auto.] 0. secs (0.u,0.s) -Chars 3230 - 3231 [-] 0. secs (0.u,0.s) -Chars 3232 - 3237 [left.] 0. secs (0.u,0.s) -Chars 3238 - 3247 [exists~a.] 0. secs (0.u,0.s) -Chars 3248 - 3262 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 3263 - 3268 [auto.] 0. secs (0.u,0.s) -Chars 3271 - 3272 [-] 0. secs (0.u,0.s) -Chars 3273 - 3279 [right.] 0. secs (0.u,0.s) -Chars 3280 - 3294 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 3295 - 3300 [auto.] 0. secs (0.u,0.s) -Chars 3301 - 3305 [Qed.] 0.003 secs (0.003u,0.s) -Chars 3307 - 3425 [#[program]~Definition~bind_del...] 0.001 secs (0.001u,0.s) -Chars 3426 - 3442 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 3445 - 3449 [red.] 0. secs (0.u,0.s) -Chars 3450 - 3460 [red~in~H0.] 0. secs (0.u,0.s) -Chars 3461 - 3482 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 3483 - 3494 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 3495 - 3519 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 3522 - 3528 [simpl.] 0. secs (0.u,0.s) -Chars 3529 - 3536 [intros.] 0. secs (0.u,0.s) -Chars 3537 - 3549 [basic_solve.] 0. secs (0.u,0.s) -Chars 3552 - 3553 [-] 0. secs (0.u,0.s) -Chars 3554 - 3559 [left.] 0. secs (0.u,0.s) -Chars 3560 - 3569 [exists~a.] 0. secs (0.u,0.s) -Chars 3570 - 3582 [split;~auto.] 0. secs (0.u,0.s) -Chars 3583 - 3596 [dest_dep~f~a.] 0. secs (0.u,0.s) -Chars 3597 - 3615 [eapply~Hfa;~eauto.] 0. secs (0.u,0.s) -Chars 3618 - 3619 [-] 0. secs (0.u,0.s) -Chars 3620 - 3626 [right.] 0. secs (0.u,0.s) -Chars 3627 - 3639 [split;~auto.] 0.043 secs (0.043u,0.s) -Chars 3640 - 3644 [Qed.] 0.003 secs (0.003u,0.s) -Chars 3646 - 3745 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) -Chars 3747 - 3831 [#[global]~Instance~DelaySpecEq...] 0. secs (0.u,0.s) -Chars 3832 - 3838 [Proof.] 0. secs (0.u,0.s) -Chars 3841 - 3878 [constructor;~repeat~intro;~try...] 0.003 secs (0.003u,0.s) -Chars 3881 - 3882 [-] 0. secs (0.u,0.s) -Chars 3883 - 3899 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 3900 - 3917 [specialize~(H~p).] 0. secs (0.u,0.s) -Chars 3918 - 3924 [tauto.] 0. secs (0.u,0.s) -Chars 3927 - 3928 [-] 0. secs (0.u,0.s) -Chars 3929 - 3949 [repeat~red~in~H,~H0.] 0. secs (0.u,0.s) -Chars 3950 - 3967 [specialize~(H~p).] 0. secs (0.u,0.s) -Chars 3968 - 3986 [specialize~(H0~p).] 0. secs (0.u,0.s) -Chars 3987 - 3993 [tauto.] 0.001 secs (0.001u,0.s) -Chars 3994 - 3998 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4000 - 4104 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) -Chars 4106 - 4176 [#[program,~global]~Instance~De...] 0.01 secs (0.01u,0.s) -Chars 4177 - 4193 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4196 - 4207 [repeat~red.] 0. secs (0.u,0.s) -Chars 4208 - 4212 [cbn.] 0. secs (0.u,0.s) -Chars 4213 - 4246 [split;~intros;~basic_solve;~auto.] 0.001 secs (0.001u,0.s) -Chars 4249 - 4250 [-] 0. secs (0.u,0.s) -Chars 4251 - 4285 [repeat~red~in~H;~step~in~H;~in...] 0. secs (0.u,0.s) -Chars 4289 - 4290 [-] 0. secs (0.u,0.s) -Chars 4291 - 4296 [left.] 0. secs (0.u,0.s) -Chars 4297 - 4306 [exists~x.] 0. secs (0.u,0.s) -Chars 4307 - 4332 [split;~auto;~reflexivity.] 0. secs (0.u,0.s) -Chars 4333 - 4337 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4338 - 4354 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4357 - 4373 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 4376 - 4387 [repeat~red.] 0. secs (0.u,0.s) -Chars 4388 - 4392 [cbn.] 0. secs (0.u,0.s) -Chars 4393 - 4407 [split;~intros.] 0. secs (0.u,0.s) -Chars 4410 - 4411 [-] 0. secs (0.u,0.s) -Chars 4412 - 4421 [red~in~H.] 0. secs (0.u,0.s) -Chars 4422 - 4433 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 4434 - 4455 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 4456 - 4467 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4468 - 4491 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 4496 - 4503 [intros.] 0. secs (0.u,0.s) -Chars 4504 - 4515 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4516 - 4537 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 4538 - 4549 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4550 - 4562 [basic_solve.] 0. secs (0.u,0.s) -Chars 4567 - 4568 [+] 0. secs (0.u,0.s) -Chars 4569 - 4586 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) -Chars 4587 - 4605 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 4611 - 4612 [+] 0. secs (0.u,0.s) -Chars 4613 - 4639 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 4640 - 4657 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) -Chars 4660 - 4661 [-] 0. secs (0.u,0.s) -Chars 4662 - 4666 [red.] 0. secs (0.u,0.s) -Chars 4667 - 4688 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 4689 - 4700 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4701 - 4724 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 4725 - 4732 [intros.] 0. secs (0.u,0.s) -Chars 4737 - 4758 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 4759 - 4770 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4775 - 4818 [destruct~(eutt_reta_or_div~t);...] 0. secs (0.u,0.s) -Chars 4823 - 4824 [+] 0. secs (0.u,0.s) -Chars 4825 - 4830 [left.] 0. secs (0.u,0.s) -Chars 4831 - 4840 [exists~a.] 0. secs (0.u,0.s) -Chars 4841 - 4853 [split;~auto.] 0. secs (0.u,0.s) -Chars 4854 - 4871 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) -Chars 4876 - 4877 [+] 0. secs (0.u,0.s) -Chars 4878 - 4884 [right.] 0. secs (0.u,0.s) -Chars 4885 - 4897 [split;~auto.] 0. secs (0.u,0.s) -Chars 4898 - 4922 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 4923 - 4932 [symmetry.] 0. secs (0.u,0.s) -Chars 4933 - 4953 [apply~div_spin_eutt.] 0. secs (0.u,0.s) -Chars 4954 - 4959 [auto.] 0. secs (0.u,0.s) -Chars 4960 - 4964 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4965 - 4981 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4984 - 5000 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 5003 - 5014 [repeat~red.] 0. secs (0.u,0.s) -Chars 5015 - 5019 [cbn.] 0. secs (0.u,0.s) -Chars 5020 - 5034 [split;~intros.] 0. secs (0.u,0.s) -Chars 5037 - 5038 [-] 0. secs (0.u,0.s) -Chars 5039 - 5043 [red.] 0. secs (0.u,0.s) -Chars 5044 - 5053 [red~in~H.] 0. secs (0.u,0.s) -Chars 5054 - 5075 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 5076 - 5087 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5088 - 5109 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 5110 - 5121 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5126 - 5149 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 5150 - 5157 [intros.] 0. secs (0.u,0.s) -Chars 5158 - 5169 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5170 - 5178 [clear~H.] 0. secs (0.u,0.s) -Chars 5179 - 5191 [basic_solve.] 0.001 secs (0.001u,0.s) -Chars 5196 - 5197 [+] 0. secs (0.u,0.s) -Chars 5198 - 5203 [left.] 0. secs (0.u,0.s) -Chars 5204 - 5213 [exists~a.] 0. secs (0.u,0.s) -Chars 5214 - 5219 [auto.] 0. secs (0.u,0.s) -Chars 5224 - 5225 [+] 0. secs (0.u,0.s) -Chars 5226 - 5232 [right.] 0. secs (0.u,0.s) -Chars 5233 - 5238 [auto.] 0. secs (0.u,0.s) -Chars 5241 - 5242 [-] 0. secs (0.u,0.s) -Chars 5243 - 5247 [red.] 0. secs (0.u,0.s) -Chars 5248 - 5257 [red~in~H.] 0. secs (0.u,0.s) -Chars 5258 - 5279 [destruct~w~as~[w~Hw].] 0.001 secs (0.001u,0.s) -Chars 5280 - 5291 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5292 - 5313 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 5314 - 5325 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5330 - 5353 [eapply~Hw;~try~apply~H.] 0. secs (0.u,0.s) -Chars 5354 - 5365 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5366 - 5373 [intros.] 0. secs (0.u,0.s) -Chars 5374 - 5386 [basic_solve.] 0. secs (0.u,0.s) -Chars 5391 - 5392 [+] 0. secs (0.u,0.s) -Chars 5393 - 5398 [left.] 0. secs (0.u,0.s) -Chars 5399 - 5408 [exists~a.] 0. secs (0.u,0.s) -Chars 5409 - 5414 [auto.] 0. secs (0.u,0.s) -Chars 5419 - 5420 [+] 0. secs (0.u,0.s) -Chars 5421 - 5427 [right.] 0. secs (0.u,0.s) -Chars 5428 - 5440 [split;~auto.] 0. secs (0.u,0.s) -Chars 5441 - 5447 [right.] 0. secs (0.u,0.s) -Chars 5448 - 5484 [split;~try~auto~using~spin_inf...] 0. secs (0.u,0.s) -Chars 5485 - 5489 [Qed.] 0.009 secs (0.009u,0.s) -Chars 5490 - 5506 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 5509 - 5534 [intros~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 5535 - 5567 [unfold~pointwise_relation~in~Hk.] 0. secs (0.u,0.s) -Chars 5570 - 5581 [repeat~red.] 0. secs (0.u,0.s) -Chars 5582 - 5736 [unfold~bind_del,~_bind_del;~sp...] 0.007 secs (0.007u,0.s) -Chars 5739 - 5740 [-] 0. secs (0.u,0.s) -Chars 5741 - 5755 [rewrite~<-~Hw.] 0.001 secs (0.001u,0.s) -Chars 5756 - 5792 [eapply~Hw1;~try~apply~H;~simpl...] 0. secs (0.u,0.s) -Chars 5793 - 5800 [intros.] 0. secs (0.u,0.s) -Chars 5805 - 5858 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.001 secs (0.001u,0.s) -Chars 5863 - 5868 [left.] 0. secs (0.u,0.s) -Chars 5869 - 5878 [exists~a.] 0. secs (0.u,0.s) -Chars 5879 - 5891 [split;~auto.] 0. secs (0.u,0.s) -Chars 5896 - 5914 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 5915 - 6054 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.002 secs (0.002u,0.s) -Chars 6059 - 6068 [apply~Hk.] 0. secs (0.u,0.s) -Chars 6069 - 6074 [auto.] 0. secs (0.u,0.s) -Chars 6077 - 6078 [-] 0. secs (0.u,0.s) -Chars 6079 - 6090 [rewrite~Hw.] 0.001 secs (0.001u,0.s) -Chars 6091 - 6127 [eapply~Hw2;~try~apply~H;~simpl...] 0. secs (0.u,0.s) -Chars 6128 - 6135 [intros.] 0. secs (0.u,0.s) -Chars 6140 - 6193 [destruct~H0~as~[[a~[Ht~Ha]]|~[...] 0.002 secs (0.002u,0.s) -Chars 6198 - 6203 [left.] 0. secs (0.u,0.s) -Chars 6204 - 6213 [exists~a.] 0. secs (0.u,0.s) -Chars 6214 - 6226 [split;~auto.] 0. secs (0.u,0.s) -Chars 6231 - 6249 [specialize~(Hk~a).] 0. secs (0.u,0.s) -Chars 6250 - 6389 [destruct~(k1~a)~as~[k1a~Hk1a];...] 0.001 secs (0.001u,0.s) -Chars 6394 - 6403 [apply~Hk.] 0. secs (0.u,0.s) -Chars 6404 - 6409 [auto.] 0. secs (0.u,0.s) -Chars 6410 - 6414 [Qed.] 0.01 secs (0.01u,0.s) -Chars 6416 - 6521 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) -Chars 6523 - 6582 [#[global]~Instance~DelaySpecOr...] 0. secs (0.u,0.s) -Chars 6583 - 6589 [Proof.] 0. secs (0.u,0.s) -Chars 6592 - 6604 [constructor.] 0. secs (0.u,0.s) -Chars 6607 - 6608 [-] 0. secs (0.u,0.s) -Chars 6609 - 6616 [intros.] 0. secs (0.u,0.s) -Chars 6617 - 6628 [repeat~red.] 0. secs (0.u,0.s) -Chars 6629 - 6636 [intros.] 0. secs (0.u,0.s) -Chars 6637 - 6648 [destruct~w.] 0. secs (0.u,0.s) -Chars 6649 - 6654 [auto.] 0. secs (0.u,0.s) -Chars 6657 - 6658 [-] 0. secs (0.u,0.s) -Chars 6659 - 6666 [intros.] 0. secs (0.u,0.s) -Chars 6667 - 6679 [destruct~w1.] 0. secs (0.u,0.s) -Chars 6680 - 6692 [destruct~w2.] 0. secs (0.u,0.s) -Chars 6693 - 6705 [destruct~w3.] 0. secs (0.u,0.s) -Chars 6706 - 6712 [intro.] 0. secs (0.u,0.s) -Chars 6713 - 6724 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6729 - 6747 [specialize~(H~p2).] 0. secs (0.u,0.s) -Chars 6748 - 6767 [specialize~(H0~p2).] 0. secs (0.u,0.s) -Chars 6768 - 6779 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6780 - 6787 [intros.] 0. secs (0.u,0.s) -Chars 6788 - 6793 [auto.] 0. secs (0.u,0.s) -Chars 6796 - 6797 [-] 0. secs (0.u,0.s) -Chars 6798 - 6802 [red.] 0. secs (0.u,0.s) -Chars 6803 - 6810 [intros.] 0. secs (0.u,0.s) -Chars 6811 - 6822 [repeat~red.] 0. secs (0.u,0.s) -Chars 6823 - 6827 [cbn.] 0. secs (0.u,0.s) -Chars 6828 - 6852 [destruct~w1~as~[w1~Hw1].] 0. secs (0.u,0.s) -Chars 6853 - 6877 [destruct~w2~as~[w2~Hw2].] 0. secs (0.u,0.s) -Chars 6882 - 6889 [intros.] 0. secs (0.u,0.s) -Chars 6890 - 6901 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6902 - 6910 [apply~H.] 0. secs (0.u,0.s) -Chars 6911 - 6922 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6923 - 6948 [eapply~Hw2;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 6949 - 6960 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6961 - 6968 [intros.] 0. secs (0.u,0.s) -Chars 6973 - 6985 [basic_solve.] 0. secs (0.u,0.s) -Chars 6990 - 6991 [+] 0. secs (0.u,0.s) -Chars 6992 - 6997 [left.] 0. secs (0.u,0.s) -Chars 6998 - 7007 [exists~a.] 0. secs (0.u,0.s) -Chars 7008 - 7020 [split;~auto.] 0. secs (0.u,0.s) -Chars 7021 - 7030 [apply~H0.] 0. secs (0.u,0.s) -Chars 7031 - 7036 [auto.] 0. secs (0.u,0.s) -Chars 7041 - 7042 [+] 0. secs (0.u,0.s) -Chars 7043 - 7049 [right.] 0. secs (0.u,0.s) -Chars 7050 - 7055 [auto.] 0. secs (0.u,0.s) -Chars 7056 - 7060 [Qed.] 0.006 secs (0.006u,0.s) -Chars 7062 - 7151 [#[program]~Definition~obs_del~...] 0.001 secs (0.001u,0.s) -Chars 7153 - 7224 [#[global]~Instance~DelaySpecOb...] 0. secs (0.u,0.s) -Chars 7226 - 7310 [#[global]~Instance~DelaySpecMo...] 0. secs (0.u,0.s) -Chars 7311 - 7317 [Proof.] 0. secs (0.u,0.s) -Chars 7320 - 7332 [constructor.] 0. secs (0.u,0.s) -Chars 7335 - 7336 [-] 0. secs (0.u,0.s) -Chars 7337 - 7348 [repeat~red.] 0. secs (0.u,0.s) -Chars 7349 - 7353 [cbn.] 0. secs (0.u,0.s) -Chars 7354 - 7360 [tauto.] 0. secs (0.u,0.s) -Chars 7363 - 7364 [-] 0. secs (0.u,0.s) -Chars 7365 - 7376 [repeat~red.] 0. secs (0.u,0.s) -Chars 7377 - 7381 [cbn.] 0. secs (0.u,0.s) -Chars 7382 - 7409 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) -Chars 7414 - 7415 [+] 0. secs (0.u,0.s) -Chars 7416 - 7459 [destruct~(eutt_reta_or_div~m);...] 0. secs (0.u,0.s) -Chars 7466 - 7467 [*] 0. secs (0.u,0.s) -Chars 7468 - 7473 [left.] 0. secs (0.u,0.s) -Chars 7474 - 7483 [exists~a.] 0. secs (0.u,0.s) -Chars 7484 - 7496 [split;~auto.] 0. secs (0.u,0.s) -Chars 7497 - 7518 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7519 - 7530 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7531 - 7554 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) -Chars 7563 - 7577 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 7578 - 7604 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7605 - 7617 [reflexivity.] 0. secs (0.u,0.s) -Chars 7624 - 7625 [*] 0. secs (0.u,0.s) -Chars 7626 - 7632 [right.] 0. secs (0.u,0.s) -Chars 7633 - 7645 [split;~auto.] 0. secs (0.u,0.s) -Chars 7646 - 7672 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 7673 - 7694 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7695 - 7718 [eapply~Hp;~try~apply~H.] 0. secs (0.u,0.s) -Chars 7727 - 7738 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7739 - 7755 [apply~spin_bind.] 0. secs (0.u,0.s) -Chars 7760 - 7761 [+] 0. secs (0.u,0.s) -Chars 7762 - 7783 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7784 - 7795 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7796 - 7820 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 7821 - 7834 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) -Chars 7835 - 7861 [setoid_rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 7862 - 7874 [reflexivity.] 0. secs (0.u,0.s) -Chars 7879 - 7880 [+] 0. secs (0.u,0.s) -Chars 7881 - 7906 [apply~div_spin_eutt~in~H.] 0. secs (0.u,0.s) -Chars 7907 - 7928 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7929 - 7940 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7941 - 7965 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 7966 - 7976 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 7983 - 7992 [symmetry.] 0. secs (0.u,0.s) -Chars 7993 - 8009 [apply~spin_bind.] 0. secs (0.u,0.s) -Chars 8010 - 8014 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8016 - 8127 [Definition~iter_arrow_rel~{A~B...] 0. secs (0.u,0.s) -Chars 8129 - 8211 [Notation~"x~=[~g~]=>~y"~:=~(it...] 0. secs (0.u,0.s) -Chars 8213 - 8360 [Lemma~iter_inl_spin~:~~~forall...] 0. secs (0.u,0.s) -Chars 8361 - 8367 [Proof.] 0. secs (0.u,0.s) -Chars 8370 - 8383 [intros~A~B~g.] 0. secs (0.u,0.s) -Chars 8384 - 8396 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 8397 - 8404 [intros.] 0. secs (0.u,0.s) -Chars 8405 - 8448 [red~in~H;~sinv~H;~try~apply~no...] 0.01 secs (0.01u,0.s) -Chars 8451 - 8484 [setoid_rewrite~unfold_iter_ktree.] 0.031 secs (0.031u,0.s) -Chars 8485 - 8515 [unfold~iter_arrow_rel~in~Hrel.] 0. secs (0.u,0.s) -Chars 8516 - 8546 [apply~eutt_ret_euttge~in~Hrel.] 0. secs (0.u,0.s) -Chars 8549 - 8562 [rewrite~Hrel.] 0.004 secs (0.004u,0.s) -Chars 8563 - 8582 [rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 8583 - 8603 [rewrite~unfold_spin.] 0.01 secs (0.01u,0.s) -Chars 8604 - 8609 [etau.] 0. secs (0.u,0.s) -Chars 8610 - 8614 [Qed.] 0.004 secs (0.004u,0.s) -Chars 8759 - 8973 [Lemma~iter_wf_converge~:~~~for...] 0. secs (0.u,0.s) -Chars 8974 - 8980 [Proof.] 0. secs (0.u,0.s) -Chars 8983 - 9008 [intros~A~B~g~a~Hwf~Hconv.] 0. secs (0.u,0.s) -Chars 9011 - 9025 [induction~Hwf.] 0. secs (0.u,0.s) -Chars 9028 - 9029 [-] 0. secs (0.u,0.s) -Chars 9030 - 9051 [specialize~(Hconv~a).] 0. secs (0.u,0.s) -Chars 9052 - 9088 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) -Chars 9093 - 9094 [+] 0. secs (0.u,0.s) -Chars 9095 - 9103 [exfalso.] 0. secs (0.u,0.s) -Chars 9104 - 9117 [apply~(H~a').] 0. secs (0.u,0.s) -Chars 9118 - 9123 [auto.] 0. secs (0.u,0.s) -Chars 9128 - 9129 [+] 0. secs (0.u,0.s) -Chars 9130 - 9139 [exists~b.] 0. secs (0.u,0.s) -Chars 9140 - 9160 [rewrite~unfold_iter.] 0. secs (0.u,0.s) -Chars 9161 - 9174 [rewrite~Hret.] 0.001 secs (0.001u,0.s) -Chars 9175 - 9194 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 9201 - 9213 [reflexivity.] 0. secs (0.u,0.s) -Chars 9216 - 9217 [-] 0. secs (0.u,0.s) -Chars 9218 - 9239 [specialize~(Hconv~a).] 0. secs (0.u,0.s) -Chars 9240 - 9276 [destruct~Hconv~as~[[a'|~b]~Hret].] 0. secs (0.u,0.s) -Chars 9281 - 9282 [+] 0. secs (0.u,0.s) -Chars 9283 - 9309 [apply~H0~in~Hret~as~Hret'.] 0. secs (0.u,0.s) -Chars 9310 - 9338 [destruct~Hret'~as~[b~Hret'].] 0. secs (0.u,0.s) -Chars 9339 - 9348 [exists~b.] 0. secs (0.u,0.s) -Chars 9355 - 9375 [rewrite~unfold_iter.] 0. secs (0.u,0.s) -Chars 9376 - 9389 [rewrite~Hret.] 0.001 secs (0.001u,0.s) -Chars 9390 - 9409 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 9410 - 9427 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 9428 - 9433 [auto.] 0. secs (0.u,0.s) -Chars 9438 - 9439 [+] 0. secs (0.u,0.s) -Chars 9440 - 9449 [exists~b.] 0. secs (0.u,0.s) -Chars 9450 - 9470 [rewrite~unfold_iter.] 0. secs (0.u,0.s) -Chars 9471 - 9484 [rewrite~Hret.] 0.001 secs (0.001u,0.s) -Chars 9485 - 9504 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 9511 - 9523 [reflexivity.] 0. secs (0.u,0.s) -Chars 9524 - 9528 [Qed.] 0.002 secs (0.002u,0.s) -Chars 9531 - 9680 [Definition~loop_invar_imp~{A~B...] 0. secs (0.u,0.s) -Chars 9682 - 9863 [Definition~iter_lift~{A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 9865 - 9940 [Notation~"q~-+>~p"~:=~(loop_in...] 0. secs (0.u,0.s) -Chars 9942 - 10288 [Lemma~loop_invar~:~~~forall~(A...] 0. secs (0.u,0.s) -Chars 10289 - 10295 [Proof.] 0. secs (0.u,0.s) -Chars 10298 - 10305 [intros.] 0. secs (0.u,0.s) -Chars 10306 - 10333 [unfold~loop_invar_imp~in~*.] 0. secs (0.u,0.s) -Chars 10336 - 10365 [set~(rg~:=~iter_arrow_rel~g).] 0. secs (0.u,0.s) -Chars 10368 - 10395 [destruct~(classic_wf~rg~a).] 0. secs (0.u,0.s) -Chars 10398 - 10399 [-] 0. secs (0.u,0.s) -Chars 10400 - 10405 [left.] 0. secs (0.u,0.s) -Chars 10406 - 10419 [induction~H2.] 0. secs (0.u,0.s) -Chars 10424 - 10425 [+] 0. secs (0.u,0.s) -Chars 10426 - 10458 [unfold~rg,~iter_arrow_rel~in~H2.] 0. secs (0.u,0.s) -Chars 10459 - 10506 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) -Chars 10513 - 10514 [*] 0. secs (0.u,0.s) -Chars 10515 - 10530 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 10531 - 10546 [apply~H2~in~H3.] 0. secs (0.u,0.s) -Chars 10547 - 10561 [contradiction.] 0. secs (0.u,0.s) -Chars 10568 - 10569 [*] 0. secs (0.u,0.s) -Chars 10570 - 10578 [apply~H.] 0. secs (0.u,0.s) -Chars 10579 - 10583 [cbn.] 0. secs (0.u,0.s) -Chars 10584 - 10608 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 10617 - 10650 [setoid_rewrite~unfold_iter_ktree.] 0.005 secs (0.005u,0.s) -Chars 10651 - 10665 [rewrite~<-~H3.] 0.002 secs (0.002u,0.s) -Chars 10674 - 10707 [repeat~setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 10708 - 10720 [reflexivity.] 0. secs (0.u,0.s) -Chars 10727 - 10728 [*] 0. secs (0.u,0.s) -Chars 10729 - 10755 [apply~div_spin_eutt~in~H3.] 0. secs (0.u,0.s) -Chars 10756 - 10764 [apply~H.] 0. secs (0.u,0.s) -Chars 10765 - 10769 [cbn.] 0. secs (0.u,0.s) -Chars 10778 - 10802 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 10803 - 10814 [rewrite~H3.] 0. secs (0.u,0.s) -Chars 10823 - 10850 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) -Chars 10851 - 10862 [rewrite~H3.] 0.002 secs (0.002u,0.s) -Chars 10871 - 10880 [symmetry.] 0. secs (0.u,0.s) -Chars 10881 - 10909 [setoid_rewrite~~<-~spin_bind.] 0.003 secs (0.003u,0.s) -Chars 10910 - 10926 [apply~spin_bind.] 0. secs (0.u,0.s) -Chars 10931 - 10932 [+] 0. secs (0.u,0.s) -Chars 10933 - 10948 [unfold~rg~in~*.] 0. secs (0.u,0.s) -Chars 10955 - 11002 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) -Chars 11009 - 11010 [*] 0. secs (0.u,0.s) -Chars 11011 - 11021 [cbn~in~H4.] 0. secs (0.u,0.s) -Chars 11022 - 11071 [rewrite~unfold_iter,~<-~H4,~bi...] 0.005 secs (0.005u,0.s) -Chars 11080 - 11089 [apply~H3.] 0. secs (0.u,0.s) -Chars 11098 - 11100 [--] 0. secs (0.u,0.s) -Chars 11101 - 11105 [red.] 0. secs (0.u,0.s) -Chars 11106 - 11127 [symmetry;~assumption.] 0. secs (0.u,0.s) -Chars 11136 - 11138 [--] 0. secs (0.u,0.s) -Chars 11139 - 11162 [unfold~iter_lift~in~H1.] 0. secs (0.u,0.s) -Chars 11163 - 11188 [specialize~(H1~(g~a)~H0).] 0. secs (0.u,0.s) -Chars 11200 - 11224 [eapply~Hq;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 11225 - 11229 [cbn.] 0. secs (0.u,0.s) -Chars 11230 - 11244 [rewrite~<-~H4.] 0.001 secs (0.001u,0.s) -Chars 11245 - 11271 [setoid_rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 11283 - 11295 [reflexivity.] 0. secs (0.u,0.s) -Chars 11302 - 11303 [*] 0. secs (0.u,0.s) -Chars 11304 - 11314 [cbn~in~H4.] 0. secs (0.u,0.s) -Chars 11315 - 11354 [rewrite~unfold_iter,~<-~H4,~bi...] 0.004 secs (0.004u,0.s) -Chars 11363 - 11371 [apply~H.] 0. secs (0.u,0.s) -Chars 11372 - 11376 [cbn.] 0. secs (0.u,0.s) -Chars 11377 - 11396 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 11397 - 11414 [eapply~Hq;~eauto.] 0. secs (0.u,0.s) -Chars 11421 - 11422 [*] 0. secs (0.u,0.s) -Chars 11423 - 11449 [apply~div_spin_eutt~in~H4.] 0. secs (0.u,0.s) -Chars 11450 - 11458 [apply~H.] 0. secs (0.u,0.s) -Chars 11459 - 11463 [cbn.] 0. secs (0.u,0.s) -Chars 11472 - 11496 [eapply~Hq;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 11497 - 11508 [rewrite~H4.] 0. secs (0.u,0.s) -Chars 11517 - 11544 [setoid_rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) -Chars 11545 - 11556 [rewrite~H4.] 0.002 secs (0.002u,0.s) -Chars 11557 - 11592 [repeat~setoid_rewrite~~<-~spin...] 0.005 secs (0.005u,0.s) -Chars 11601 - 11613 [reflexivity.] 0. secs (0.u,0.s) -Chars 11616 - 11617 [-] 0. secs (0.u,0.s) -Chars 11618 - 11644 [apply~iter_inl_spin~in~H2.] 0. secs (0.u,0.s) -Chars 11645 - 11651 [right.] 0. secs (0.u,0.s) -Chars 11652 - 11663 [rewrite~H2.] 0.001 secs (0.001u,0.s) -Chars 11664 - 11684 [apply~spin_infinite.] 0. secs (0.u,0.s) -Chars 11685 - 11689 [Qed.] 0.006 secs (0.006u,0.s) diff --git a/extra/Dijkstra/DijkstraMonad.v.timing b/extra/Dijkstra/DijkstraMonad.v.timing deleted file mode 100644 index 452119a0..00000000 --- a/extra/Dijkstra/DijkstraMonad.v.timing +++ /dev/null @@ -1,50 +0,0 @@ -Chars 113 - 162 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 164 - 227 [From~ITree~Require~Import~Basi...] 0.004 secs (0.003u,0.001s) -Chars 229 - 250 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 252 - 281 [Declare~Scope~dijkstra_scope.] 0. secs (0.u,0.s) -Chars 282 - 325 [Delimit~Scope~dijkstra_scope~w...] 0. secs (0.u,0.s) -Chars 327 - 362 [#[local]~Open~Scope~dijkstra_s...] 0. secs (0.u,0.s) -Chars 363 - 395 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 423 - 495 [Class~OrderM~(M~:~Type~->~Type...] 0. secs (0.u,0.s) -Chars 497 - 526 [Arguments~lem~{M~OrderM~A}.] 0. secs (0.u,0.s) -Chars 528 - 579 [Infix~"<≈"~:=~lem~(~at~level~7...] 0. secs (0.u,0.s) -Chars 581 - 602 [Section~OrderedMonad.] 0. secs (0.u,0.s) -Chars 606 - 633 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 636 - 657 [Context~{Eq~:~Eq1~W}.] 0. secs (0.u,0.s) -Chars 660 - 687 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) -Chars 690 - 726 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) -Chars 729 - 757 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 760 - 1086 [Class~OrderedMonad~:={~~~~~~~~...] 0.001 secs (0.001u,0.s) -Chars 1088 - 1105 [End~OrderedMonad.] 0. secs (0.u,0.s) -Chars 1139 - 1157 [Section~SpecMonad.] 0. secs (0.u,0.s) -Chars 1161 - 1188 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 1191 - 1218 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) -Chars 1221 - 1249 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 1252 - 1293 [Context~{OrderedMonadW~:~Order...] 0. secs (0.u,0.s) -Chars 1296 - 1408 [Class~SpecMonad~:={~~~~~~~~~~~...] 0. secs (0.u,0.s) -Chars 1412 - 1461 [Infix~"∈"~:=~In~(~at~level~70)...] 0. secs (0.u,0.s) -Chars 1462 - 1476 [End~SpecMonad.] 0.001 secs (0.u,0.s) -Chars 1509 - 1564 [Class~EffectObs~(M~W~:~Type~->...] 0. secs (0.u,0.s) -Chars 1566 - 1592 [Section~EffectObservation.] 0. secs (0.u,0.s) -Chars 1596 - 1625 [Context~(M~W~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 1628 - 1655 [Context~{MMonad~:~Monad~M}.] 0. secs (0.u,0.s) -Chars 1658 - 1685 [Context~{WMonad~:~Monad~W}.] 0. secs (0.u,0.s) -Chars 1688 - 1710 [Context~{EqW~:~Eq1~W}.] 0. secs (0.u,0.s) -Chars 1713 - 1749 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) -Chars 1752 - 1780 [Context~{WOrder~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 1783 - 1821 [Context~{WOrderLaws~:~OrderedM...] 0. secs (0.u,0.s) -Chars 1824 - 1854 [Context~(Obs~:~EffectObs~M~W).] 0. secs (0.u,0.s) -Chars 1858 - 2077 [Class~MonadMorphism~:={~~~~~~~...] 0.001 secs (0.001u,0.s) -Chars 2079 - 2101 [End~EffectObservation.] 0. secs (0.u,0.s) -Chars 2130 - 2152 [Section~DijkstraMonad.] 0. secs (0.u,0.s) -Chars 2155 - 2184 [Context~(M~W~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 2187 - 2214 [Context~{MMonad~:~Monad~M}.] 0. secs (0.u,0.s) -Chars 2217 - 2244 [Context~{WMonad~:~Monad~W}.] 0. secs (0.u,0.s) -Chars 2247 - 2269 [Context~{EqW~:~Eq1~W}.] 0. secs (0.u,0.s) -Chars 2272 - 2308 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) -Chars 2311 - 2339 [Context~{WOrder~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 2342 - 2382 [Context~{WOrderLaws~:~OrderedM...] 0. secs (0.u,0.s) -Chars 2385 - 2417 [Context~(Obs~:~EffectObs~M~W).] 0. secs (0.u,0.s) -Chars 2512 - 2595 [Definition~DijkstraMonad~(A~:~...] 0. secs (0.u,0.s) -Chars 2599 - 2684 [Definition~DijkstraProp~(A~:~T...] 0. secs (0.u,0.s) -Chars 2686 - 2704 [End~DijkstraMonad.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/ITreeDijkstra.v.timing b/extra/Dijkstra/ITreeDijkstra.v.timing deleted file mode 100644 index 46c65c0a..00000000 --- a/extra/Dijkstra/ITreeDijkstra.v.timing +++ /dev/null @@ -1,849 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.157 secs (0.139u,0.017s) -Chars 242 - 361 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.011u,0.002s) -Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) -Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 401 - 433 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 434 - 470 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) -Chars 473 - 495 [Section~ITreeDijkstra.] 0. secs (0.u,0.s) -Chars 499 - 526 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 530 - 602 [Definition~ITDInput~(A~:~Type)...] 0. secs (0.u,0.s) -Chars 606 - 760 [Definition~ITreeSpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 764 - 848 [#[program]~Definition~ret_itre...] 0.002 secs (0.001u,0.s) -Chars 852 - 940 [Instance~proper_itree_spec~~{R...] 0. secs (0.u,0.s) -Chars 943 - 949 [Proof.] 0. secs (0.u,0.s) -Chars 954 - 967 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 968 - 989 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 990 - 996 [simpl.] 0. secs (0.u,0.s) -Chars 997 - 1029 [split;~intros;~eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) -Chars 1034 - 1051 [now~rewrite~<-~H.] 0.026 secs (0.024u,0.001s) -Chars 1054 - 1058 [Qed.] 0. secs (0.u,0.s) -Chars 1062 - 1271 [#[program]~Definition~bind_ex~...] 0.002 secs (0.002u,0.s) -Chars 1274 - 1290 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 1293 - 1299 [Proof.] 0. secs (0.u,0.s) -Chars 1304 - 1315 [repeat~red.] 0. secs (0.u,0.s) -Chars 1316 - 1343 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) -Chars 1348 - 1349 [-] 0. secs (0.u,0.s) -Chars 1350 - 1355 [left.] 0. secs (0.u,0.s) -Chars 1356 - 1365 [exists~a.] 0. secs (0.u,0.s) -Chars 1366 - 1382 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) -Chars 1383 - 1388 [auto.] 0. secs (0.u,0.s) -Chars 1393 - 1394 [-] 0. secs (0.u,0.s) -Chars 1395 - 1401 [right.] 0. secs (0.u,0.s) -Chars 1402 - 1420 [rewrite~<-~H~~at~1.] 0.001 secs (0.001u,0.s) -Chars 1421 - 1433 [split;~auto.] 0. secs (0.u,0.s) -Chars 1440 - 1473 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) -Chars 1480 - 1521 [specialize~(all_infinite_euttN...] 0. secs (0.u,0.s) -Chars 1528 - 1535 [intros.] 0. secs (0.u,0.s) -Chars 1542 - 1580 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 1587 - 1603 [rewrite~H~in~H0.] 0. secs (0.u,0.s) -Chars 1604 - 1642 [specialize~(noret_cast_nop~H0)...] 0. secs (0.u,0.s) -Chars 1649 - 1659 [eapply~Hp.] 0. secs (0.u,0.s) -Chars 1667 - 1677 [clear~Ht2.] 0. secs (0.u,0.s) -Chars 1685 - 1699 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 1707 - 1730 [eapply~noret_cast_cast.] 0. secs (0.u,0.s) -Chars 1731 - 1742 [all:~eauto.] 0.001 secs (0.001u,0.s) -Chars 1747 - 1748 [-] 0. secs (0.u,0.s) -Chars 1749 - 1754 [left.] 0. secs (0.u,0.s) -Chars 1755 - 1764 [exists~a.] 0. secs (0.u,0.s) -Chars 1765 - 1777 [split;~auto.] 0. secs (0.u,0.s) -Chars 1778 - 1788 [rewrite~H.] 0.046 secs (0.045u,0.s) -Chars 1789 - 1794 [auto.] 0. secs (0.u,0.s) -Chars 1799 - 1800 [-] 0. secs (0.u,0.s) -Chars 1801 - 1807 [right.] 0. secs (0.u,0.s) -Chars 1808 - 1823 [rewrite~H~~at~1.] 0.001 secs (0.001u,0.s) -Chars 1824 - 1836 [split;~auto.] 0. secs (0.u,0.s) -Chars 1843 - 1876 [destruct~p~as~[p~Hp];~simpl~in~*.] 0. secs (0.u,0.s) -Chars 1883 - 1893 [eapply~Hp.] 0. secs (0.u,0.s) -Chars 1901 - 1915 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 1923 - 1932 [symmetry.] 0. secs (0.u,0.s) -Chars 1940 - 1970 [eapply~noret_cast_cast;~eauto.] 0. secs (0.u,0.s) -Chars 1977 - 1982 [auto.] 0. secs (0.u,0.s) -Chars 1986 - 1990 [Qed.] 0.005 secs (0.005u,0.s) -Chars 1993 - 2009 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 2012 - 2018 [Proof.] 0. secs (0.u,0.s) -Chars 2023 - 2044 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 2045 - 2056 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2058 - 2082 [eapply~Hw;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 2087 - 2094 [intros.] 0. secs (0.u,0.s) -Chars 2095 - 2106 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2111 - 2132 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 2133 - 2157 [destruct~p'~as~[p'~Hp'].] 0. secs (0.u,0.s) -Chars 2158 - 2169 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2174 - 2186 [basic_solve.] 0. secs (0.u,0.s) -Chars 2191 - 2192 [-] 0. secs (0.u,0.s) -Chars 2193 - 2198 [left.] 0. secs (0.u,0.s) -Chars 2199 - 2208 [exists~a.] 0. secs (0.u,0.s) -Chars 2209 - 2221 [split;~auto.] 0. secs (0.u,0.s) -Chars 2222 - 2249 [destruct~(g~a)~as~[ga~Hga].] 0. secs (0.u,0.s) -Chars 2250 - 2261 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 2268 - 2293 [eapply~Hga;~try~apply~H2.] 0. secs (0.u,0.s) -Chars 2300 - 2306 [simpl.] 0. secs (0.u,0.s) -Chars 2307 - 2312 [auto.] 0. secs (0.u,0.s) -Chars 2317 - 2318 [-] 0. secs (0.u,0.s) -Chars 2319 - 2325 [right.] 0. secs (0.u,0.s) -Chars 2326 - 2338 [split;~auto.] 0. secs (0.u,0.s) -Chars 2341 - 2345 [Qed.] 0.004 secs (0.004u,0.s) -Chars 2349 - 2440 [Instance~ItreeSpecEq~:~(Eq1~IT...] 0. secs (0.u,0.s) -Chars 2444 - 2509 [Instance~ItreeSpecEquiv~~{A~:~...] 0. secs (0.u,0.s) -Chars 2512 - 2518 [Proof.] 0. secs (0.u,0.s) -Chars 2523 - 2564 [constructor;~red;~intros;~red;...] 0.002 secs (0.002u,0.s) -Chars 2569 - 2570 [-] 0. secs (0.u,0.s) -Chars 2571 - 2580 [red~in~H.] 0. secs (0.u,0.s) -Chars 2581 - 2588 [intros.] 0. secs (0.u,0.s) -Chars 2589 - 2599 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 2600 - 2612 [reflexivity.] 0. secs (0.u,0.s) -Chars 2617 - 2618 [-] 0. secs (0.u,0.s) -Chars 2619 - 2626 [intros.] 0. secs (0.u,0.s) -Chars 2627 - 2636 [red~in~H.] 0. secs (0.u,0.s) -Chars 2637 - 2647 [red~in~H0.] 0. secs (0.u,0.s) -Chars 2648 - 2658 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 2659 - 2670 [rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 2677 - 2689 [reflexivity.] 0. secs (0.u,0.s) -Chars 2692 - 2696 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2700 - 2804 [Instance~ItreeSpecMonad~:~(Mon...] 0. secs (0.u,0.s) -Chars 5748 - 5808 [Inductive~Ev~:~Type~:=~~~~~ev~...] 0. secs (0.u,0.s) -Chars 5812 - 5899 [Variant~streamF~{A~:~Type}~{F~...] 0. secs (0.u,0.s) -Chars 5903 - 5983 [CoInductive~stream~(A~:~Type)~...] 0. secs (0.u,0.s) -Chars 5987 - 6033 [Notation~stream'~A:=~(@streamF...] 0. secs (0.u,0.s) -Chars 6037 - 6096 [Definition~Nil~{A}~:~stream~A~...] 0. secs (0.u,0.s) -Chars 6100 - 6174 [Definition~Cons~{A}~(h~:~A)~(t...] 0. secs (0.u,0.s) -Chars 6178 - 6247 [Definition~observe_stream~{A}~...] 0. secs (0.u,0.s) -Chars 6251 - 6395 [Variant~is_infF~{A~:~Type}~(F~...] 0. secs (0.u,0.s) -Chars 6399 - 6433 [Hint~Constructors~is_infF:~itree.] 0. secs (0.u,0.s) -Chars 6437 - 6554 [Definition~is_inf_~{A~:~Type}~...] 0. secs (0.u,0.s) -Chars 6558 - 6616 [Lemma~is_inf_mono~{A}~:~Proper...] 0. secs (0.u,0.s) -Chars 6620 - 6626 [Proof.] 0. secs (0.u,0.s) -Chars 6632 - 6640 [intros~!.] 0. secs (0.u,0.s) -Chars 6646 - 6653 [inv~H0.] 0. secs (0.u,0.s) -Chars 6654 - 6658 [red.] 0. secs (0.u,0.s) -Chars 6659 - 6673 [rewrite~<-~H1.] 0. secs (0.u,0.s) -Chars 6674 - 6687 [econstructor.] 0. secs (0.u,0.s) -Chars 6692 - 6704 [now~apply~H.] 0. secs (0.u,0.s) -Chars 6709 - 6713 [Qed.] 0. secs (0.u,0.s) -Chars 6718 - 6820 [Definition~is_inf_mon~A~:~mon~...] 0. secs (0.u,0.s) -Chars 6825 - 6877 [Definition~is_inf~{A~:~Type}~:...] 0. secs (0.u,0.s) -Chars 6881 - 7054 [CoFixpoint~app'~{A~:~Type}~(os...] 0. secs (0.u,0.s) -Chars 7058 - 7155 [Definition~app~{A~:~Type}~(sl~...] 0. secs (0.u,0.s) -Chars 7159 - 7384 [Variant~bisimF~{A~:~Type}~(F~:...] 0. secs (0.u,0.s) -Chars 7388 - 7421 [Hint~Constructors~bisimF:~itree.] 0. secs (0.u,0.s) -Chars 7425 - 7589 [Definition~bisim_~{A~:~Type}~(...] 0. secs (0.u,0.s) -Chars 7593 - 7649 [Lemma~bisim_mono~{A}~:~Proper~...] 0. secs (0.u,0.s) -Chars 7653 - 7659 [Proof.] 0. secs (0.u,0.s) -Chars 7665 - 7673 [intros~!.] 0. secs (0.u,0.s) -Chars 7674 - 7678 [red.] 0. secs (0.u,0.s) -Chars 7679 - 7686 [inv~H0.] 0.004 secs (0.004u,0.s) -Chars 7692 - 7693 [-] 0. secs (0.u,0.s) -Chars 7694 - 7706 [constructor.] 0. secs (0.u,0.s) -Chars 7712 - 7713 [-] 0. secs (0.u,0.s) -Chars 7714 - 7726 [constructor.] 0. secs (0.u,0.s) -Chars 7727 - 7739 [now~apply~H.] 0. secs (0.u,0.s) -Chars 7743 - 7747 [Qed.] 0. secs (0.u,0.s) -Chars 7754 - 7868 [Definition~bisim_mon~{A}~:~mon...] 0.001 secs (0.001u,0.s) -Chars 7873 - 7923 [Definition~bisim~{A~:~Type}~:=...] 0. secs (0.u,0.s) -Chars 7927 - 7977 [Instance~bisim_equiv~~{A}:~(Eq...] 0. secs (0.u,0.s) -Chars 7980 - 7986 [Proof.] 0. secs (0.u,0.s) -Chars 7991 - 8008 [constructor;~red.] 0. secs (0.u,0.s) -Chars 8013 - 8014 [-] 0. secs (0.u,0.s) -Chars 8015 - 8033 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8034 - 8041 [intros.] 0. secs (0.u,0.s) -Chars 8042 - 8051 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8052 - 8097 [destruct~(observe_stream~x);~a...] 0. secs (0.u,0.s) -Chars 8102 - 8103 [-] 0. secs (0.u,0.s) -Chars 8104 - 8122 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8123 - 8130 [intros.] 0. secs (0.u,0.s) -Chars 8137 - 8146 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8153 - 8187 [red~in~H;~sinv~H;~auto~with~it...] 0.008 secs (0.007u,0.s) -Chars 8192 - 8193 [-] 0. secs (0.u,0.s) -Chars 8194 - 8212 [unfold~bisim~at~3.] 0. secs (0.u,0.s) -Chars 8213 - 8231 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8232 - 8239 [intros.] 0. secs (0.u,0.s) -Chars 8240 - 8249 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8256 - 8310 [red~in~H;~sinv~H;~red~in~H0;~s...] 0.028 secs (0.027u,0.s) -Chars 8317 - 8318 [+] 0. secs (0.u,0.s) -Chars 8319 - 8338 [rewrite~<-~H~in~H3.] 0. secs (0.u,0.s) -Chars 8339 - 8352 [discriminate.] 0. secs (0.u,0.s) -Chars 8359 - 8360 [+] 0. secs (0.u,0.s) -Chars 8361 - 8381 [rewrite~<-~H2~in~H4.] 0. secs (0.u,0.s) -Chars 8382 - 8395 [discriminate.] 0. secs (0.u,0.s) -Chars 8402 - 8403 [+] 0. secs (0.u,0.s) -Chars 8404 - 8423 [rewrite~<-~H2~in~H.] 0. secs (0.u,0.s) -Chars 8424 - 8451 [injection~H;~intros;~subst.] 0. secs (0.u,0.s) -Chars 8460 - 8472 [constructor.] 0. secs (0.u,0.s) -Chars 8473 - 8479 [eauto.] 0. secs (0.u,0.s) -Chars 8483 - 8487 [Qed.] 0.006 secs (0.005u,0.s) -Chars 8592 - 8666 [Instance~proper_bisim_app~~{A}...] 0. secs (0.u,0.s) -Chars 8669 - 8675 [Proof.] 0. secs (0.u,0.s) -Chars 8681 - 8699 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8700 - 8727 [intros~s1~s2~H12~s3~s4~H34.] 0. secs (0.u,0.s) -Chars 8733 - 8742 [cbn;~red.] 0. secs (0.u,0.s) -Chars 8743 - 8754 [unfold~app.] 0. secs (0.u,0.s) -Chars 8755 - 8764 [sinv~H12.] 0.008 secs (0.008u,0.s) -Chars 8769 - 8770 [-] 0. secs (0.u,0.s) -Chars 8771 - 8777 [simpl.] 0. secs (0.u,0.s) -Chars 8778 - 8790 [destruct~s3.] 0. secs (0.u,0.s) -Chars 8791 - 8803 [destruct~s4.] 0. secs (0.u,0.s) -Chars 8804 - 8849 [sinv~H34;~simpl~in~*;~subst;~a...] 0.01 secs (0.01u,0.s) -Chars 8856 - 8868 [constructor.] 0. secs (0.u,0.s) -Chars 8869 - 8883 [now~do~2~step.] 0.001 secs (0.001u,0.s) -Chars 8889 - 8890 [-] 0. secs (0.u,0.s) -Chars 8891 - 8895 [cbn.] 0. secs (0.u,0.s) -Chars 8896 - 8908 [constructor.] 0. secs (0.u,0.s) -Chars 8909 - 8925 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 8928 - 8932 [Qed.] 0.003 secs (0.003u,0.s) -Chars 8936 - 8987 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 8993 - 9070 [Instance~proper_bisim_inf_imp~...] 0. secs (0.u,0.s) -Chars 9073 - 9079 [Proof.] 0. secs (0.u,0.s) -Chars 9084 - 9102 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9107 - 9126 [intros~s1~s2~H12~H.] 0. secs (0.u,0.s) -Chars 9127 - 9132 [icbn.] 0. secs (0.u,0.s) -Chars 9133 - 9143 [step~in~H.] 0. secs (0.u,0.s) -Chars 9149 - 9161 [step~in~H12.] 0. secs (0.u,0.s) -Chars 9162 - 9170 [inv~H12.] 0.003 secs (0.003u,0.s) -Chars 9176 - 9177 [-] 0. secs (0.u,0.s) -Chars 9178 - 9197 [rewrite~<-~H1~in~H.] 0. secs (0.u,0.s) -Chars 9198 - 9204 [inv~H.] 0. secs (0.u,0.s) -Chars 9209 - 9210 [-] 0. secs (0.u,0.s) -Chars 9211 - 9230 [inversion~H;~subst.] 0. secs (0.u,0.s) -Chars 9238 - 9250 [constructor.] 0. secs (0.u,0.s) -Chars 9251 - 9269 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 9276 - 9296 [rewrite~<-~H3~in~H0.] 0. secs (0.u,0.s) -Chars 9297 - 9304 [inv~H0.] 0. secs (0.u,0.s) -Chars 9307 - 9311 [Qed.] 0.002 secs (0.002u,0.s) -Chars 9315 - 9382 [Instance~proper_bisim_inf~~{A}...] 0. secs (0.u,0.s) -Chars 9385 - 9391 [Proof.] 0. secs (0.u,0.s) -Chars 9396 - 9440 [split;~try~apply~proper_bisim_...] 0. secs (0.u,0.s) -Chars 9445 - 9463 [apply~bisim_equiv.] 0. secs (0.u,0.s) -Chars 9464 - 9469 [auto.] 0. secs (0.u,0.s) -Chars 9472 - 9476 [Qed.] 0. secs (0.u,0.s) -Chars 9480 - 9568 [Lemma~app_inf~:~~~forall~(A~:~...] 0. secs (0.u,0.s) -Chars 9571 - 9577 [Proof.] 0. secs (0.u,0.s) -Chars 9582 - 9591 [intros~A.] 0. secs (0.u,0.s) -Chars 9592 - 9610 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9611 - 9629 [intros~s1~s2~Hinf.] 0. secs (0.u,0.s) -Chars 9630 - 9635 [icbn.] 0. secs (0.u,0.s) -Chars 9636 - 9647 [unfold~app.] 0. secs (0.u,0.s) -Chars 9652 - 9662 [sinv~Hinf.] 0.003 secs (0.003u,0.s) -Chars 9667 - 9671 [cbn.] 0. secs (0.u,0.s) -Chars 9672 - 9684 [constructor.] 0. secs (0.u,0.s) -Chars 9685 - 9701 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 9704 - 9708 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9712 - 9939 [Variant~forall_streamF~{A~:~Ty...] 0. secs (0.u,0.s) -Chars 9943 - 9984 [Hint~Constructors~forall_strea...] 0. secs (0.u,0.s) -Chars 9988 - 10137 [Definition~forall_stream_~{A~:...] 0. secs (0.u,0.s) -Chars 10141 - 10235 [Lemma~forall_stream_mono~(A~:~...] 0. secs (0.u,0.s) -Chars 10238 - 10244 [Proof.] 0. secs (0.u,0.s) -Chars 10249 - 10260 [repeat~red.] 0. secs (0.u,0.s) -Chars 10261 - 10268 [intros.] 0. secs (0.u,0.s) -Chars 10269 - 10279 [red~in~H0.] 0. secs (0.u,0.s) -Chars 10280 - 10309 [destruct~H0;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 10314 - 10332 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 10333 - 10345 [now~apply~H.] 0. secs (0.u,0.s) -Chars 10349 - 10353 [Qed.] 0. secs (0.u,0.s) -Chars 10357 - 10428 [Definition~forall_stream_mon~A...] 0. secs (0.u,0.s) -Chars 10433 - 10516 [Definition~forall_stream~{A~:~...] 0. secs (0.u,0.s) -Chars 10520 - 10803 [Inductive~inf_manyF~{A~:~Type}...] 0. secs (0.u,0.s) -Chars 10807 - 10843 [Hint~Constructors~inf_manyF:~i...] 0. secs (0.u,0.s) -Chars 10847 - 10986 [Definition~inf_many_~{A~:~Type...] 0. secs (0.u,0.s) -Chars 10990 - 11074 [Lemma~inf_many_mono~(A~:~Type)...] 0. secs (0.u,0.s) -Chars 11077 - 11083 [Proof.] 0. secs (0.u,0.s) -Chars 11088 - 11099 [repeat~red.] 0. secs (0.u,0.s) -Chars 11100 - 11107 [intros.] 0. secs (0.u,0.s) -Chars 11108 - 11118 [red~in~H0.] 0. secs (0.u,0.s) -Chars 11119 - 11149 [induction~H0;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 11154 - 11177 [apply~cons_found;~auto.] 0. secs (0.u,0.s) -Chars 11178 - 11190 [now~apply~H.] 0. secs (0.u,0.s) -Chars 11194 - 11198 [Qed.] 0. secs (0.u,0.s) -Chars 11202 - 11263 [Definition~inf_many_mon~A~P~:=...] 0. secs (0.u,0.s) -Chars 11268 - 11341 [Definition~inf_many~{A~:~Type}...] 0. secs (0.u,0.s) -Chars 11345 - 11447 [Lemma~inf_many_inf~:~~~forall~...] 0. secs (0.u,0.s) -Chars 11450 - 11456 [Proof.] 0. secs (0.u,0.s) -Chars 11461 - 11472 [intros~A~P.] 0. secs (0.u,0.s) -Chars 11473 - 11491 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11492 - 11505 [intros~s~Him.] 0. secs (0.u,0.s) -Chars 11510 - 11522 [step~in~Him.] 0. secs (0.u,0.s) -Chars 11523 - 11528 [icbn.] 0. secs (0.u,0.s) -Chars 11534 - 11565 [induction~Him;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 11570 - 11582 [constructor.] 0. secs (0.u,0.s) -Chars 11583 - 11593 [apply~CIH.] 0. secs (0.u,0.s) -Chars 11594 - 11603 [now~step.] 0. secs (0.u,0.s) -Chars 11607 - 11611 [Qed.] 0. secs (0.u,0.s) -Chars 11615 - 11740 [Lemma~inf_and_forall~:~~~foral...] 0. secs (0.u,0.s) -Chars 11743 - 11749 [Proof.] 0. secs (0.u,0.s) -Chars 11754 - 11765 [intros~A~P.] 0. secs (0.u,0.s) -Chars 11766 - 11784 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11785 - 11807 [intros~s~Hinf~Hforall.] 0. secs (0.u,0.s) -Chars 11812 - 11817 [icbn.] 0. secs (0.u,0.s) -Chars 11818 - 11831 [step~in~Hinf.] 0. secs (0.u,0.s) -Chars 11832 - 11848 [step~in~Hforall.] 0. secs (0.u,0.s) -Chars 11853 - 11862 [inv~Hinf.] 0.001 secs (0.001u,0.s) -Chars 11867 - 11879 [inv~Hforall.] 0.002 secs (0.002u,0.s) -Chars 11884 - 11885 [-] 0. secs (0.u,0.s) -Chars 11886 - 11905 [rewrite~<-~H~in~H2.] 0. secs (0.u,0.s) -Chars 11906 - 11919 [discriminate.] 0. secs (0.u,0.s) -Chars 11924 - 11925 [-] 0. secs (0.u,0.s) -Chars 11926 - 11945 [rewrite~<-~H~in~H1.] 0. secs (0.u,0.s) -Chars 11946 - 11953 [inv~H1.] 0.001 secs (0.001u,0.s) -Chars 11960 - 11983 [apply~cons_found;~auto.] 0.001 secs (0.001u,0.s) -Chars 11986 - 11990 [Qed.] 0.002 secs (0.002u,0.s) -Chars 12101 - 12188 [Definition~rel_eventless~{E1}~...] 0. secs (0.u,0.s) -Chars 12191 - 12850 [Inductive~eqitEF~{E1~E2~:~Type...] 0.002 secs (0.002u,0.s) -Chars 12854 - 12887 [Hint~Constructors~eqitEF:~itree.] 0. secs (0.u,0.s) -Chars 12891 - 13125 [Definition~eqitE_~(E1~E2~:~Typ...] 0. secs (0.u,0.s) -Chars 13129 - 13212 [Lemma~eqitE_mono~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) -Chars 13217 - 13223 [Proof.] 0. secs (0.u,0.s) -Chars 13230 - 13241 [repeat~red.] 0. secs (0.u,0.s) -Chars 13242 - 13249 [intros.] 0. secs (0.u,0.s) -Chars 13250 - 13267 [rename~x~into~t1.] 0. secs (0.u,0.s) -Chars 13268 - 13285 [rename~y~into~t2.] 0. secs (0.u,0.s) -Chars 13292 - 13323 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 13330 - 13342 [constructor.] 0. secs (0.u,0.s) -Chars 13343 - 13355 [now~apply~H.] 0. secs (0.u,0.s) -Chars 13361 - 13365 [Qed.] 0.001 secs (0.001u,0.s) -Chars 13369 - 13449 [Definition~eqitE_mon~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 13453 - 13524 [Definition~eqitE~{E1}~{E2}~{R1...] 0. secs (0.u,0.s) -Chars 13528 - 13605 [Definition~equivE~{E1}~{E2}~{R...] 0. secs (0.u,0.s) -Chars 13609 - 13823 [Variant~eventlessF~{E~:~Type~-...] 0. secs (0.u,0.s) -Chars 13827 - 13864 [Hint~Constructors~eventlessF:~...] 0. secs (0.u,0.s) -Chars 13868 - 14005 [Definition~eventless_~{E~:~Typ...] 0. secs (0.u,0.s) -Chars 14009 - 14040 [Hint~Unfold~eventless_:~itree.] 0. secs (0.u,0.s) -Chars 14046 - 14116 [Lemma~eventless_mono~{E1}~{R}~...] 0. secs (0.u,0.s) -Chars 14119 - 14125 [Proof.] 0. secs (0.u,0.s) -Chars 14130 - 14141 [repeat~red.] 0. secs (0.u,0.s) -Chars 14142 - 14149 [intros.] 0. secs (0.u,0.s) -Chars 14150 - 14160 [red~in~H0.] 0. secs (0.u,0.s) -Chars 14161 - 14191 [inversion~H0;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 14196 - 14208 [constructor.] 0. secs (0.u,0.s) -Chars 14209 - 14221 [now~apply~H.] 0. secs (0.u,0.s) -Chars 14226 - 14230 [Qed.] 0. secs (0.u,0.s) -Chars 14234 - 14302 [Definition~eventless_mon~{E1}~...] 0. secs (0.u,0.s) -Chars 14306 - 14409 [Definition~eventless~{E~:~Type...] 0. secs (0.u,0.s) -Chars 14413 - 14504 [Instance~proper_eventless_imp~...] 0. secs (0.u,0.s) -Chars 14507 - 14513 [Proof.] 0. secs (0.u,0.s) -Chars 14518 - 14529 [repeat~red.] 0. secs (0.u,0.s) -Chars 14530 - 14548 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 14553 - 14576 [intros~t1~t2~Heutt~Hev.] 0. secs (0.u,0.s) -Chars 14581 - 14595 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 14596 - 14601 [icbn.] 0. secs (0.u,0.s) -Chars 14606 - 14627 [pose~proof~Hev~as~Hev'.] 0. secs (0.u,0.s) -Chars 14628 - 14640 [step~in~Hev.] 0. secs (0.u,0.s) -Chars 14645 - 14695 [dependent~induction~Heutt;~sub...] 0.017 secs (0.017u,0.s) -Chars 14700 - 14701 [-] 0. secs (0.u,0.s) -Chars 14702 - 14710 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14711 - 14727 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 14732 - 14733 [-] 0. secs (0.u,0.s) -Chars 14734 - 14742 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14743 - 14755 [constructor.] 0. secs (0.u,0.s) -Chars 14756 - 14774 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 14781 - 14789 [inv~Hev.] 0.002 secs (0.002u,0.s) -Chars 14795 - 14796 [-] 0. secs (0.u,0.s) -Chars 14797 - 14805 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14806 - 14814 [inv~Hev.] 0. secs (0.u,0.s) -Chars 14820 - 14821 [-] 0. secs (0.u,0.s) -Chars 14822 - 14830 [simpobs.] 0. secs (0.u,0.s) -Chars 14831 - 14839 [inv~Hev.] 0.004 secs (0.004u,0.s) -Chars 14846 - 14882 [eapply~IHHeutt;~try~apply~H0;~...] 0.001 secs (0.001u,0.s) -Chars 14889 - 14904 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 14910 - 14911 [-] 0. secs (0.u,0.s) -Chars 14912 - 14920 [simpobs.] 0. secs (0.u,0.s) -Chars 14921 - 14933 [constructor.] 0. secs (0.u,0.s) -Chars 14934 - 14950 [unstep~in~Heutt.] 0. secs (0.u,0.s) -Chars 14951 - 14980 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 14983 - 14987 [Qed.] 0.014 secs (0.014u,0.s) -Chars 14991 - 15069 [Instance~proper_eventless~~{E1...] 0. secs (0.u,0.s) -Chars 15072 - 15078 [Proof.] 0. secs (0.u,0.s) -Chars 15083 - 15102 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 15103 - 15121 [split;~intros~Hev.] 0. secs (0.u,0.s) -Chars 15126 - 15127 [-] 0. secs (0.u,0.s) -Chars 15128 - 15145 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) -Chars 15146 - 15151 [auto.] 0. secs (0.u,0.s) -Chars 15156 - 15157 [-] 0. secs (0.u,0.s) -Chars 15158 - 15176 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 15177 - 15194 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) -Chars 15195 - 15200 [auto.] 0. secs (0.u,0.s) -Chars 15203 - 15207 [Qed.] 0. secs (0.u,0.s) -Chars 15211 - 15410 [Lemma~eutt_eventless~:~~~foral...] 0. secs (0.u,0.s) -Chars 15413 - 15419 [Proof.] 0. secs (0.u,0.s) -Chars 15424 - 15443 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 15444 - 15462 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 15463 - 15470 [intros.] 0. secs (0.u,0.s) -Chars 15475 - 15486 [step~in~H0.] 0. secs (0.u,0.s) -Chars 15487 - 15492 [icbn.] 0. secs (0.u,0.s) -Chars 15493 - 15522 [dependent~induction~H0;~auto.] 0.013 secs (0.013u,0.s) -Chars 15527 - 15528 [-] 0. secs (0.u,0.s) -Chars 15529 - 15537 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15538 - 15543 [eret.] 0. secs (0.u,0.s) -Chars 15549 - 15550 [-] 0. secs (0.u,0.s) -Chars 15551 - 15559 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15566 - 15578 [constructor.] 0. secs (0.u,0.s) -Chars 15587 - 15620 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 15621 - 15654 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 15661 - 15669 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 15677 - 15696 [assert~(t1~≈~m1).] 0. secs (0.u,0.s) -Chars 15697 - 15698 [{] 0. secs (0.u,0.s) -Chars 15699 - 15711 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 15712 - 15729 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 15730 - 15742 [reflexivity.] 0. secs (0.u,0.s) -Chars 15743 - 15744 [}] 0. secs (0.u,0.s) -Chars 15751 - 15770 [assert~(t2~≈~m2).] 0. secs (0.u,0.s) -Chars 15771 - 15772 [{] 0. secs (0.u,0.s) -Chars 15773 - 15785 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 15786 - 15803 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 15804 - 15816 [reflexivity.] 0. secs (0.u,0.s) -Chars 15817 - 15818 [}] 0. secs (0.u,0.s) -Chars 15825 - 15841 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 15848 - 15866 [now~rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 15872 - 15873 [-] 0. secs (0.u,0.s) -Chars 15874 - 15882 [exfalso.] 0. secs (0.u,0.s) -Chars 15883 - 15902 [step~in~H;~simpobs.] 0.001 secs (0.001u,0.s) -Chars 15903 - 15909 [inv~H.] 0. secs (0.u,0.s) -Chars 15914 - 15915 [-] 0. secs (0.u,0.s) -Chars 15916 - 15924 [simpobs.] 0. secs (0.u,0.s) -Chars 15925 - 15937 [constructor.] 0. secs (0.u,0.s) -Chars 15944 - 15977 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 15978 - 15986 [simpobs.] 0. secs (0.u,0.s) -Chars 15994 - 16001 [sinv~H.] 0.014 secs (0.014u,0.s) -Chars 16009 - 16010 [+] 0. secs (0.u,0.s) -Chars 16011 - 16025 [simpobs;~easy.] 0.002 secs (0.002u,0.s) -Chars 16034 - 16035 [+] 0. secs (0.u,0.s) -Chars 16036 - 16058 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 16059 - 16079 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 16080 - 16085 [step.] 0. secs (0.u,0.s) -Chars 16093 - 16110 [rewrite~x,~<-~H1.] 0. secs (0.u,0.s) -Chars 16111 - 16127 [now~constructor.] 0. secs (0.u,0.s) -Chars 16133 - 16134 [-] 0. secs (0.u,0.s) -Chars 16135 - 16143 [simpobs.] 0. secs (0.u,0.s) -Chars 16144 - 16156 [constructor.] 0. secs (0.u,0.s) -Chars 16157 - 16179 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 16182 - 16186 [Qed.] 0.012 secs (0.012u,0.s) -Chars 16190 - 16303 [Lemma~eventless_div~:~~~forall...] 0. secs (0.u,0.s) -Chars 16306 - 16312 [Proof.] 0. secs (0.u,0.s) -Chars 16317 - 16326 [intros~R.] 0. secs (0.u,0.s) -Chars 16327 - 16345 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 16346 - 16353 [intros.] 0. secs (0.u,0.s) -Chars 16360 - 16367 [sinv~H.] 0.022 secs (0.022u,0.s) -Chars 16372 - 16373 [-] 0. secs (0.u,0.s) -Chars 16374 - 16405 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 16406 - 16414 [simpobs.] 0. secs (0.u,0.s) -Chars 16422 - 16439 [rewrite~Ht~in~H0.] 0.001 secs (0.001u,0.s) -Chars 16440 - 16448 [sinv~H0.] 0.001 secs (0.001u,0.s) -Chars 16453 - 16454 [-] 0. secs (0.u,0.s) -Chars 16455 - 16460 [icbn.] 0. secs (0.u,0.s) -Chars 16461 - 16469 [simpobs.] 0. secs (0.u,0.s) -Chars 16477 - 16487 [red~in~H0.] 0. secs (0.u,0.s) -Chars 16488 - 16516 [step~in~H0;~simpobs;~inv~H0.] 0.009 secs (0.009u,0.s) -Chars 16524 - 16536 [constructor.] 0. secs (0.u,0.s) -Chars 16543 - 16559 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 16563 - 16567 [Qed.] 0.006 secs (0.006u,0.s) -Chars 16571 - 16689 [Lemma~eventless_ret~:~~~forall...] 0. secs (0.u,0.s) -Chars 16692 - 16698 [Proof.] 0. secs (0.u,0.s) -Chars 16703 - 16716 [intros~R~t~r.] 0. secs (0.u,0.s) -Chars 16721 - 16728 [intros.] 0. secs (0.u,0.s) -Chars 16729 - 16748 [induction~H0;~auto.] 0. secs (0.u,0.s) -Chars 16749 - 16765 [rewrite~H0~in~H.] 0. secs (0.u,0.s) -Chars 16770 - 16777 [sinv~H.] 0. secs (0.u,0.s) -Chars 16780 - 16784 [Qed.] 0. secs (0.u,0.s) -Chars 16788 - 16983 [Lemma~eqitE_imp_eutt~:~~~foral...] 0. secs (0.u,0.s) -Chars 16986 - 16992 [Proof.] 0. secs (0.u,0.s) -Chars 16997 - 17016 [intros~E1~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 17017 - 17035 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 17040 - 17057 [intros~t1~t2~Heq.] 0. secs (0.u,0.s) -Chars 17058 - 17063 [icbn.] 0. secs (0.u,0.s) -Chars 17064 - 17076 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 17082 - 17113 [induction~Heq;~auto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 17116 - 17120 [Qed.] 0.003 secs (0.003u,0.s) -Chars 17124 - 17374 [Lemma~eqitE_imp_eventlessl~:~~...] 0. secs (0.u,0.s) -Chars 17377 - 17383 [Proof.] 0. secs (0.u,0.s) -Chars 17388 - 17410 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 17411 - 17429 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 17434 - 17441 [intros.] 0. secs (0.u,0.s) -Chars 17442 - 17452 [step~in~H.] 0. secs (0.u,0.s) -Chars 17458 - 17463 [icbn.] 0. secs (0.u,0.s) -Chars 17464 - 17494 [induction~H;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 17499 - 17511 [constructor.] 0. secs (0.u,0.s) -Chars 17512 - 17552 [apply~(CIH~t0~(ITreeDefinition...] 0. secs (0.u,0.s) -Chars 17553 - 17562 [now~step.] 0. secs (0.u,0.s) -Chars 17566 - 17570 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17574 - 17824 [Lemma~eqitE_imp_eventlessr~:~~...] 0. secs (0.u,0.s) -Chars 17827 - 17833 [Proof.] 0. secs (0.u,0.s) -Chars 17838 - 17860 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 17861 - 17879 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 17884 - 17891 [intros.] 0. secs (0.u,0.s) -Chars 17892 - 17902 [step~in~H.] 0. secs (0.u,0.s) -Chars 17907 - 17912 [icbn.] 0. secs (0.u,0.s) -Chars 17913 - 17943 [induction~H;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 17948 - 17960 [constructor.] 0. secs (0.u,0.s) -Chars 17961 - 18001 [apply~(CIH~(ITreeDefinition.go...] 0. secs (0.u,0.s) -Chars 18002 - 18011 [now~step.] 0. secs (0.u,0.s) -Chars 18015 - 18019 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18023 - 18120 [Lemma~eventless_spin~:~~~foral...] 0. secs (0.u,0.s) -Chars 18123 - 18129 [Proof.] 0. secs (0.u,0.s) -Chars 18134 - 18146 [intros~E1~R.] 0. secs (0.u,0.s) -Chars 18147 - 18165 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18166 - 18171 [icbn.] 0. secs (0.u,0.s) -Chars 18172 - 18176 [cbn.] 0. secs (0.u,0.s) -Chars 18177 - 18189 [constructor.] 0. secs (0.u,0.s) -Chars 18194 - 18199 [auto.] 0. secs (0.u,0.s) -Chars 18202 - 18206 [Qed.] 0. secs (0.u,0.s) -Chars 18210 - 18441 [CoFixpoint~remove_events'~{E1~...] 0. secs (0.u,0.s) -Chars 18445 - 18544 [Definition~remove_events~{E1}~...] 0. secs (0.u,0.s) -Chars 18548 - 18744 [Lemma~remove_events_eventless_...] 0. secs (0.u,0.s) -Chars 18747 - 18753 [Proof.] 0. secs (0.u,0.s) -Chars 18758 - 18773 [intros~E1~E2~A.] 0. secs (0.u,0.s) -Chars 18774 - 18792 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18793 - 18800 [intros.] 0. secs (0.u,0.s) -Chars 18805 - 18810 [icbn.] 0. secs (0.u,0.s) -Chars 18811 - 18818 [sinv~H.] 0.004 secs (0.004u,0.s) -Chars 18823 - 18824 [-] 0. secs (0.u,0.s) -Chars 18825 - 18829 [cbn.] 0. secs (0.u,0.s) -Chars 18830 - 18851 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 18852 - 18866 [rewrite~<-~H1.] 0. secs (0.u,0.s) -Chars 18867 - 18871 [cbn.] 0. secs (0.u,0.s) -Chars 18872 - 18888 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 18893 - 18894 [-] 0. secs (0.u,0.s) -Chars 18895 - 18916 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 18917 - 18931 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 18932 - 18936 [cbn.] 0. secs (0.u,0.s) -Chars 18937 - 18949 [constructor.] 0. secs (0.u,0.s) -Chars 18950 - 18960 [apply~CIH.] 0. secs (0.u,0.s) -Chars 18967 - 18972 [auto.] 0. secs (0.u,0.s) -Chars 18975 - 18979 [Qed.] 0.002 secs (0.002u,0.s) -Chars 18983 - 19157 [Lemma~remove_events_eventless~...] 0. secs (0.u,0.s) -Chars 19160 - 19166 [Proof.] 0. secs (0.u,0.s) -Chars 19171 - 19186 [intros~E1~E2~A.] 0. secs (0.u,0.s) -Chars 19187 - 19205 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19206 - 19213 [intros.] 0. secs (0.u,0.s) -Chars 19218 - 19223 [icbn.] 0. secs (0.u,0.s) -Chars 19224 - 19245 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 19246 - 19277 [destruct~(observe~t)~eqn:Heq.] 0. secs (0.u,0.s) -Chars 19282 - 19283 [-] 0. secs (0.u,0.s) -Chars 19284 - 19288 [cbn.] 0. secs (0.u,0.s) -Chars 19289 - 19301 [constructor.] 0. secs (0.u,0.s) -Chars 19306 - 19307 [-] 0. secs (0.u,0.s) -Chars 19308 - 19312 [cbn.] 0. secs (0.u,0.s) -Chars 19313 - 19325 [constructor.] 0. secs (0.u,0.s) -Chars 19326 - 19336 [apply~CIH.] 0. secs (0.u,0.s) -Chars 19341 - 19342 [-] 0. secs (0.u,0.s) -Chars 19343 - 19347 [cbn.] 0. secs (0.u,0.s) -Chars 19348 - 19360 [constructor.] 0. secs (0.u,0.s) -Chars 19361 - 19371 [do~2~step.] 0. secs (0.u,0.s) -Chars 19372 - 19393 [apply~eventless_spin.] 0. secs (0.u,0.s) -Chars 19397 - 19401 [Qed.] 0.001 secs (0.001u,0.s) -Chars 19405 - 19480 [Lemma~delay_eventless~:~forall...] 0. secs (0.u,0.s) -Chars 19483 - 19489 [Proof.] 0. secs (0.u,0.s) -Chars 19494 - 19503 [intros~A.] 0. secs (0.u,0.s) -Chars 19504 - 19522 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19523 - 19530 [intros.] 0. secs (0.u,0.s) -Chars 19535 - 19540 [icbn.] 0. secs (0.u,0.s) -Chars 19541 - 19579 [destruct~(observe~d);~auto~wit...] 0. secs (0.u,0.s) -Chars 19584 - 19595 [destruct~e.] 0. secs (0.u,0.s) -Chars 19598 - 19602 [Qed.] 0. secs (0.u,0.s) -Chars 19606 - 19805 [Lemma~eqitE_inv_Tau~:~~~forall...] 0. secs (0.u,0.s) -Chars 19808 - 19814 [Proof.] 0. secs (0.u,0.s) -Chars 19819 - 19841 [intros~E1~E2~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 19847 - 19865 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19866 - 19873 [intros.] 0. secs (0.u,0.s) -Chars 19874 - 19879 [icbn.] 0. secs (0.u,0.s) -Chars 19885 - 19892 [intros.] 0. secs (0.u,0.s) -Chars 19897 - 19907 [step~in~H.] 0. secs (0.u,0.s) -Chars 19913 - 19939 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 19945 - 19971 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) -Chars 19977 - 20004 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 20005 - 20014 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 20020 - 20079 [induction~H;~intros~t1'~t2'~He...] 0.016 secs (0.016u,0.s) -Chars 20084 - 20085 [-] 0. secs (0.u,0.s) -Chars 20086 - 20109 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) -Chars 20110 - 20119 [now~step.] 0. secs (0.u,0.s) -Chars 20126 - 20127 [-] 0. secs (0.u,0.s) -Chars 20128 - 20155 [inv~H;~inv~Heqot1;~simpobs.] 0.031 secs (0.03u,0.s) -Chars 20163 - 20164 [+] 0. secs (0.u,0.s) -Chars 20165 - 20177 [constructor.] 0. secs (0.u,0.s) -Chars 20178 - 20197 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20205 - 20206 [+] 0. secs (0.u,0.s) -Chars 20207 - 20219 [constructor.] 0. secs (0.u,0.s) -Chars 20220 - 20239 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20246 - 20247 [+] 0. secs (0.u,0.s) -Chars 20248 - 20262 [now~do~2~step.] 0.001 secs (0.001u,0.s) -Chars 20268 - 20269 [-] 0. secs (0.u,0.s) -Chars 20270 - 20297 [inv~H;~inv~Heqot2;~simpobs.] 0.03 secs (0.029u,0.s) -Chars 20305 - 20306 [+] 0. secs (0.u,0.s) -Chars 20307 - 20319 [constructor.] 0. secs (0.u,0.s) -Chars 20320 - 20339 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20347 - 20348 [+] 0. secs (0.u,0.s) -Chars 20349 - 20363 [now~do~2~step.] 0.001 secs (0.001u,0.s) -Chars 20371 - 20372 [+] 0. secs (0.u,0.s) -Chars 20373 - 20385 [constructor.] 0. secs (0.u,0.s) -Chars 20386 - 20405 [now~apply~IHeqitEF.] 0. secs (0.u,0.s) -Chars 20409 - 20413 [Qed.] 0.01 secs (0.009u,0.s) -Chars 20419 - 20674 [Lemma~inv_remove_events~:~~~fo...] 0. secs (0.u,0.s) -Chars 20677 - 20683 [Proof.] 0. secs (0.u,0.s) -Chars 20688 - 20703 [intros~E1~E2~R.] 0. secs (0.u,0.s) -Chars 20704 - 20722 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 20727 - 20756 [intros~t1~t2~Hev1~Hev2~Heutt.] 0. secs (0.u,0.s) -Chars 20757 - 20762 [icbn.] 0. secs (0.u,0.s) -Chars 20767 - 20781 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 20782 - 20815 [dependent~induction~Heutt;~subst.] 0.024 secs (0.024u,0.s) -Chars 20820 - 20821 [-] 0. secs (0.u,0.s) -Chars 20822 - 20852 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) -Chars 20859 - 20922 [destruct~(observe~t1);~destruc...] 0.003 secs (0.002u,0.s) -Chars 20929 - 20941 [constructor.] 0. secs (0.u,0.s) -Chars 20942 - 20951 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 20952 - 20966 [inv~x0;~inv~x.] 0.001 secs (0.001u,0.s) -Chars 20972 - 20973 [-] 0. secs (0.u,0.s) -Chars 20974 - 21004 [unfold~remove_events~in~x0,~x.] 0. secs (0.u,0.s) -Chars 21011 - 21096 [destruct~(observe~t1)~eqn:Heq1...] 0.003 secs (0.002u,0.s) -Chars 21103 - 21104 [+] 0. secs (0.u,0.s) -Chars 21105 - 21114 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 21115 - 21127 [constructor.] 0. secs (0.u,0.s) -Chars 21136 - 21143 [inv~x0.] 0.002 secs (0.002u,0.s) -Chars 21144 - 21150 [inv~x.] 0.002 secs (0.002u,0.s) -Chars 21151 - 21158 [intros.] 0. secs (0.u,0.s) -Chars 21169 - 21185 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 21194 - 21195 [*] 0. secs (0.u,0.s) -Chars 21196 - 21229 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 21230 - 21250 [rewrite~Heq1~in~Ht1.] 0. secs (0.u,0.s) -Chars 21261 - 21279 [assert~(t~≈~t1).] 0. secs (0.u,0.s) -Chars 21290 - 21291 [{] 0. secs (0.u,0.s) -Chars 21292 - 21304 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 21305 - 21322 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 21323 - 21335 [reflexivity.] 0. secs (0.u,0.s) -Chars 21336 - 21337 [}] 0. secs (0.u,0.s) -Chars 21348 - 21358 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 21359 - 21364 [auto.] 0. secs (0.u,0.s) -Chars 21373 - 21374 [*] 0. secs (0.u,0.s) -Chars 21375 - 21408 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 21409 - 21429 [rewrite~Heq2~in~Ht2.] 0. secs (0.u,0.s) -Chars 21440 - 21459 [assert~(t0~≈~t2).] 0. secs (0.u,0.s) -Chars 21470 - 21471 [{] 0. secs (0.u,0.s) -Chars 21472 - 21484 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 21485 - 21502 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 21503 - 21515 [reflexivity.] 0. secs (0.u,0.s) -Chars 21516 - 21517 [}] 0. secs (0.u,0.s) -Chars 21528 - 21538 [rewrite~H.] 0. secs (0.u,0.s) -Chars 21539 - 21544 [auto.] 0. secs (0.u,0.s) -Chars 21551 - 21552 [+] 0. secs (0.u,0.s) -Chars 21553 - 21563 [sinv~Hev2.] 0.011 secs (0.011u,0.s) -Chars 21572 - 21573 [*] 0. secs (0.u,0.s) -Chars 21574 - 21593 [rewrite~Heq2~in~H0.] 0. secs (0.u,0.s) -Chars 21594 - 21607 [discriminate.] 0. secs (0.u,0.s) -Chars 21616 - 21617 [*] 0. secs (0.u,0.s) -Chars 21618 - 21636 [rewrite~Heq2~in~H.] 0. secs (0.u,0.s) -Chars 21637 - 21650 [discriminate.] 0. secs (0.u,0.s) -Chars 21657 - 21658 [+] 0. secs (0.u,0.s) -Chars 21659 - 21669 [sinv~Hev1.] 0.01 secs (0.01u,0.s) -Chars 21678 - 21679 [*] 0. secs (0.u,0.s) -Chars 21680 - 21699 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) -Chars 21700 - 21713 [discriminate.] 0. secs (0.u,0.s) -Chars 21722 - 21723 [*] 0. secs (0.u,0.s) -Chars 21724 - 21742 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) -Chars 21743 - 21756 [discriminate.] 0. secs (0.u,0.s) -Chars 21763 - 21764 [+] 0. secs (0.u,0.s) -Chars 21765 - 21775 [sinv~Hev1.] 0.01 secs (0.01u,0.s) -Chars 21784 - 21785 [*] 0. secs (0.u,0.s) -Chars 21786 - 21805 [rewrite~Heq1~in~H0.] 0. secs (0.u,0.s) -Chars 21806 - 21819 [discriminate.] 0. secs (0.u,0.s) -Chars 21828 - 21829 [*] 0. secs (0.u,0.s) -Chars 21830 - 21848 [rewrite~Heq1~in~H.] 0. secs (0.u,0.s) -Chars 21849 - 21862 [discriminate.] 0. secs (0.u,0.s) -Chars 21867 - 21868 [-] 0. secs (0.u,0.s) -Chars 21869 - 21895 [unfold~remove_events~in~*.] 0. secs (0.u,0.s) -Chars 21896 - 21943 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) -Chars 21948 - 21949 [-] 0. secs (0.u,0.s) -Chars 21950 - 21976 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) -Chars 21977 - 22037 [destruct~(observe~t1)~eqn:Heq;...] 0.001 secs (0.001u,0.s) -Chars 22044 - 22045 [+] 0. secs (0.u,0.s) -Chars 22046 - 22063 [injection~x~as~x.] 0. secs (0.u,0.s) -Chars 22064 - 22076 [constructor.] 0. secs (0.u,0.s) -Chars 22085 - 22105 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) -Chars 22114 - 22115 [*] 0. secs (0.u,0.s) -Chars 22116 - 22149 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22150 - 22169 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) -Chars 22180 - 22198 [assert~(t~≈~t1).] 0. secs (0.u,0.s) -Chars 22209 - 22210 [{] 0. secs (0.u,0.s) -Chars 22211 - 22223 [rewrite~Ht1.] 0.001 secs (0.001u,0.s) -Chars 22224 - 22241 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 22242 - 22254 [reflexivity.] 0. secs (0.u,0.s) -Chars 22255 - 22256 [}] 0. secs (0.u,0.s) -Chars 22268 - 22279 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 22280 - 22285 [auto.] 0. secs (0.u,0.s) -Chars 22294 - 22295 [*] 0. secs (0.u,0.s) -Chars 22296 - 22317 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 22318 - 22328 [rewrite~x.] 0. secs (0.u,0.s) -Chars 22329 - 22334 [auto.] 0. secs (0.u,0.s) -Chars 22341 - 22342 [+] 0. secs (0.u,0.s) -Chars 22343 - 22351 [exfalso.] 0. secs (0.u,0.s) -Chars 22352 - 22385 [specialize~(itree_eta~t1)~as~Ht1.] 0. secs (0.u,0.s) -Chars 22386 - 22405 [rewrite~Heq~in~Ht1.] 0. secs (0.u,0.s) -Chars 22414 - 22434 [rewrite~Ht1~in~Hev1.] 0.001 secs (0.001u,0.s) -Chars 22435 - 22445 [sinv~Hev1.] 0. secs (0.u,0.s) -Chars 22450 - 22451 [-] 0. secs (0.u,0.s) -Chars 22452 - 22478 [unfold~remove_events~in~x.] 0. secs (0.u,0.s) -Chars 22479 - 22539 [destruct~(observe~t2)~eqn:Heq;...] 0.001 secs (0.001u,0.s) -Chars 22546 - 22547 [+] 0. secs (0.u,0.s) -Chars 22548 - 22565 [injection~x~as~x.] 0. secs (0.u,0.s) -Chars 22566 - 22578 [constructor.] 0. secs (0.u,0.s) -Chars 22587 - 22607 [apply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) -Chars 22616 - 22617 [*] 0. secs (0.u,0.s) -Chars 22618 - 22651 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 22652 - 22671 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) -Chars 22682 - 22700 [assert~(t~≈~t2).] 0. secs (0.u,0.s) -Chars 22711 - 22712 [{] 0. secs (0.u,0.s) -Chars 22713 - 22725 [rewrite~Ht2.] 0.001 secs (0.001u,0.s) -Chars 22726 - 22743 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 22744 - 22756 [reflexivity.] 0. secs (0.u,0.s) -Chars 22757 - 22758 [}] 0. secs (0.u,0.s) -Chars 22769 - 22779 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 22780 - 22785 [auto.] 0. secs (0.u,0.s) -Chars 22794 - 22795 [*] 0. secs (0.u,0.s) -Chars 22796 - 22817 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 22818 - 22828 [rewrite~x.] 0. secs (0.u,0.s) -Chars 22829 - 22834 [auto.] 0. secs (0.u,0.s) -Chars 22841 - 22842 [+] 0. secs (0.u,0.s) -Chars 22843 - 22851 [exfalso.] 0. secs (0.u,0.s) -Chars 22852 - 22885 [specialize~(itree_eta~t2)~as~Ht2.] 0. secs (0.u,0.s) -Chars 22886 - 22905 [rewrite~Heq~in~Ht2.] 0. secs (0.u,0.s) -Chars 22914 - 22934 [rewrite~Ht2~in~Hev2.] 0. secs (0.u,0.s) -Chars 22935 - 22945 [sinv~Hev2.] 0. secs (0.u,0.s) -Chars 22948 - 22952 [Qed.] 0.037 secs (0.037u,0.s) -Chars 22956 - 23265 [Lemma~remove_events_eqitE~:~~~...] 0. secs (0.u,0.s) -Chars 23268 - 23274 [Proof.] 0. secs (0.u,0.s) -Chars 23279 - 23307 [intros~E1~E2~E3~E4~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 23308 - 23326 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 23327 - 23334 [intros.] 0. secs (0.u,0.s) -Chars 23339 - 23349 [step~in~H.] 0. secs (0.u,0.s) -Chars 23350 - 23355 [icbn.] 0. secs (0.u,0.s) -Chars 23356 - 23377 [unfold~remove_events.] 0. secs (0.u,0.s) -Chars 23382 - 23416 [induction~H;~cbn;~auto~with~it...] 0.002 secs (0.002u,0.s) -Chars 23421 - 23433 [constructor.] 0. secs (0.u,0.s) -Chars 23434 - 23450 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 23453 - 23457 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23461 - 23660 [Lemma~eqitE_trans~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 23663 - 23669 [Proof.] 0. secs (0.u,0.s) -Chars 23674 - 23711 [intros~E1~E2~E3~R~t1~t2~t3~Ht1...] 0. secs (0.u,0.s) -Chars 23716 - 23744 [assert~(Ht1~:~eventless~t1).] 0. secs (0.u,0.s) -Chars 23749 - 23750 [{] 0. secs (0.u,0.s) -Chars 23751 - 23786 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) -Chars 23787 - 23788 [}] 0. secs (0.u,0.s) -Chars 23793 - 23821 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) -Chars 23826 - 23827 [{] 0. secs (0.u,0.s) -Chars 23828 - 23863 [eapply~eqitE_imp_eventlessl;~e...] 0. secs (0.u,0.s) -Chars 23864 - 23865 [}] 0. secs (0.u,0.s) -Chars 23870 - 23898 [assert~(Ht3~:~eventless~t3).] 0. secs (0.u,0.s) -Chars 23903 - 23904 [{] 0. secs (0.u,0.s) -Chars 23905 - 23940 [eapply~eqitE_imp_eventlessr;~e...] 0. secs (0.u,0.s) -Chars 23941 - 23942 [}] 0. secs (0.u,0.s) -Chars 23947 - 23977 [apply~inv_remove_events;~auto.] 0. secs (0.u,0.s) -Chars 23982 - 24038 [assert~(remove_events~t1~≈~@re...] 0. secs (0.u,0.s) -Chars 24043 - 24044 [{] 0. secs (0.u,0.s) -Chars 24051 - 24072 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) -Chars 24073 - 24099 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) -Chars 24100 - 24105 [auto.] 0. secs (0.u,0.s) -Chars 24110 - 24111 [}] 0. secs (0.u,0.s) -Chars 24116 - 24172 [assert~(remove_events~t2~≈~@re...] 0. secs (0.u,0.s) -Chars 24177 - 24178 [{] 0. secs (0.u,0.s) -Chars 24185 - 24206 [apply~eqitE_imp_eutt.] 0. secs (0.u,0.s) -Chars 24207 - 24233 [apply~remove_events_eqitE.] 0. secs (0.u,0.s) -Chars 24234 - 24239 [auto.] 0. secs (0.u,0.s) -Chars 24244 - 24245 [}] 0. secs (0.u,0.s) -Chars 24250 - 24260 [rewrite~H.] 0. secs (0.u,0.s) -Chars 24261 - 24266 [auto.] 0. secs (0.u,0.s) -Chars 24269 - 24273 [Qed.] 0. secs (0.u,0.s) -Chars 24277 - 24437 [Lemma~equivE_sym~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 24440 - 24446 [Proof.] 0. secs (0.u,0.s) -Chars 24451 - 24466 [intros~E1~E2~R.] 0. secs (0.u,0.s) -Chars 24467 - 24485 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 24486 - 24493 [intros.] 0. secs (0.u,0.s) -Chars 24498 - 24508 [step~in~H.] 0. secs (0.u,0.s) -Chars 24509 - 24514 [icbn.] 0. secs (0.u,0.s) -Chars 24520 - 24550 [induction~H;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 24553 - 24557 [Qed.] 0.001 secs (0.001u,0.s) -Chars 24562 - 24673 [Instance~proper_eutt_equivE_im...] 0. secs (0.u,0.s) -Chars 24676 - 24682 [Proof.] 0. secs (0.u,0.s) -Chars 24687 - 24716 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) -Chars 24717 - 24723 [intro.] 0. secs (0.u,0.s) -Chars 24728 - 24767 [apply~eqitE_imp_eventlessl~in~...] 0. secs (0.u,0.s) -Chars 24772 - 24811 [apply~eqitE_imp_eventlessr~in~...] 0. secs (0.u,0.s) -Chars 24816 - 24844 [assert~(Ht2~:~eventless~t2).] 0. secs (0.u,0.s) -Chars 24849 - 24850 [{] 0. secs (0.u,0.s) -Chars 24851 - 24867 [rewrite~<-~Ht12.] 0.001 secs (0.001u,0.s) -Chars 24868 - 24873 [auto.] 0. secs (0.u,0.s) -Chars 24874 - 24875 [}] 0. secs (0.u,0.s) -Chars 24880 - 24908 [assert~(Ht4~:~eventless~t4).] 0. secs (0.u,0.s) -Chars 24913 - 24914 [{] 0. secs (0.u,0.s) -Chars 24915 - 24931 [rewrite~<-~Ht34.] 0.001 secs (0.001u,0.s) -Chars 24932 - 24937 [auto.] 0. secs (0.u,0.s) -Chars 24938 - 24939 [}] 0. secs (0.u,0.s) -Chars 24944 - 24978 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) -Chars 24983 - 24984 [-] 0. secs (0.u,0.s) -Chars 24985 - 25002 [symmetry~in~Ht12.] 0. secs (0.u,0.s) -Chars 25003 - 25007 [red.] 0. secs (0.u,0.s) -Chars 25008 - 25035 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) -Chars 25040 - 25041 [-] 0. secs (0.u,0.s) -Chars 25042 - 25082 [apply~eqitE_trans~with~(t2~:=~...] 0. secs (0.u,0.s) -Chars 25089 - 25116 [apply~eutt_eventless;~auto.] 0. secs (0.u,0.s) -Chars 25119 - 25123 [Qed.] 0. secs (0.u,0.s) -Chars 25127 - 25229 [Instance~proper_eutt_equivE~~{...] 0. secs (0.u,0.s) -Chars 25232 - 25238 [Proof.] 0. secs (0.u,0.s) -Chars 25243 - 25257 [split;~intros.] 0. secs (0.u,0.s) -Chars 25262 - 25263 [-] 0. secs (0.u,0.s) -Chars 25264 - 25277 [rewrite~<-~H.] 0.006 secs (0.006u,0.s) -Chars 25278 - 25292 [rewrite~<-~H0.] 0.008 secs (0.008u,0.s) -Chars 25293 - 25298 [auto.] 0. secs (0.u,0.s) -Chars 25303 - 25304 [-] 0. secs (0.u,0.s) -Chars 25305 - 25319 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 25320 - 25335 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 25342 - 25355 [rewrite~<-~H.] 0.007 secs (0.007u,0.s) -Chars 25356 - 25370 [rewrite~<-~H0.] 0.008 secs (0.008u,0.s) -Chars 25371 - 25376 [auto.] 0. secs (0.u,0.s) -Chars 25379 - 25383 [Qed.] 0.001 secs (0.001u,0.s) -Chars 25490 - 25882 [CoInductive~itree_includes'~{R...] 0.001 secs (0.001u,0.s) -Chars 25886 - 26316 [Variant~itree_includesF~{R~:~T...] 0.001 secs (0.001u,0.s) -Chars 26320 - 26362 [Hint~Constructors~itree_includ...] 0. secs (0.u,0.s) -Chars 26367 - 26441 [Lemma~itree_includes_mono~{R}~...] 0. secs (0.u,0.s) -Chars 26444 - 26450 [Proof.] 0. secs (0.u,0.s) -Chars 26456 - 26469 [repeat~intro.] 0. secs (0.u,0.s) -Chars 26470 - 26501 [induction~H0;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 26507 - 26527 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 26528 - 26540 [now~apply~H.] 0. secs (0.u,0.s) -Chars 26544 - 26548 [Qed.] 0. secs (0.u,0.s) -Chars 26553 - 26625 [Definition~itree_includes_mon~...] 0. secs (0.u,0.s) -Chars 26632 - 26748 [Definition~itree_includes~{R~:...] 0. secs (0.u,0.s) -Chars 26750 - 26768 [End~ITreeDijkstra.] 0.004 secs (0.004u,0.s) -Chars 26770 - 26793 [Section~RetBindCounter.] 0. secs (0.u,0.s) -Chars 26797 - 26851 [Variant~Sound~:~Type~->~Prop~:...] 0. secs (0.u,0.s) -Chars 27258 - 27346 [#[program]~Definition~p~:~ITDI...] 0. secs (0.u,0.s) -Chars 27349 - 27365 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 27370 - 27381 [repeat~red.] 0. secs (0.u,0.s) -Chars 27382 - 27389 [intros.] 0. secs (0.u,0.s) -Chars 27390 - 27413 [split;~rewrite~H;~auto.] 0.01 secs (0.009u,0.s) -Chars 27416 - 27420 [Qed.] 0. secs (0.u,0.s) -Chars 28046 - 28134 [#[program]~Definition~w~:~ITre...] 0.001 secs (0.001u,0.s) -Chars 28313 - 28421 [Lemma~bind_ret_failure~:~~~~~~...] 0. secs (0.u,0.s) -Chars 28424 - 28430 [Proof.] 0. secs (0.u,0.s) -Chars 28435 - 28439 [cbn.] 0. secs (0.u,0.s) -Chars 28440 - 28455 [intros~Hcontra.] 0. secs (0.u,0.s) -Chars 28460 - 28483 [specialize~(Hcontra~p).] 0. secs (0.u,0.s) -Chars 28488 - 28530 [assert~(p~∋~Vis~Ring~(fun~_~=>...] 0. secs (0.u,0.s) -Chars 28535 - 28536 [{] 0. secs (0.u,0.s) -Chars 28543 - 28552 [unfold~p.] 0. secs (0.u,0.s) -Chars 28553 - 28557 [cbn.] 0. secs (0.u,0.s) -Chars 28558 - 28570 [reflexivity.] 0.002 secs (0.002u,0.s) -Chars 28575 - 28576 [}] 0. secs (0.u,0.s) -Chars 28581 - 28600 [apply~Hcontra~in~H.] 0. secs (0.u,0.s) -Chars 28601 - 28615 [clear~Hcontra.] 0. secs (0.u,0.s) -Chars 28616 - 28628 [basic_solve.] 0. secs (0.u,0.s) -Chars 28633 - 28634 [-] 0. secs (0.u,0.s) -Chars 28635 - 28650 [unfold~p~in~H0.] 0. secs (0.u,0.s) -Chars 28651 - 28661 [cbn~in~H0.] 0. secs (0.u,0.s) -Chars 28662 - 28670 [sinv~H0.] 0.001 secs (0.001u,0.s) -Chars 28675 - 28676 [-] 0. secs (0.u,0.s) -Chars 28677 - 28686 [clear~H0.] 0. secs (0.u,0.s) -Chars 28687 - 28725 [sinv~H;~try~apply~all_infinite...] 0.001 secs (0.001u,0.s) -Chars 28726 - 28739 [ddestruction.] 0. secs (0.u,0.s) -Chars 28746 - 28765 [specialize~(H1~tt).] 0. secs (0.u,0.s) -Chars 28766 - 28808 [step~in~H1;~try~apply~all_infi...] 0. secs (0.u,0.s) -Chars 28815 - 28822 [inv~H1.] 0. secs (0.u,0.s) -Chars 28825 - 28829 [Qed.] 0.002 secs (0.002u,0.s) -Chars 28831 - 28850 [End~RetBindCounter.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/IterRel.v.timing b/extra/Dijkstra/IterRel.v.timing deleted file mode 100644 index 96e44f8e..00000000 --- a/extra/Dijkstra/IterRel.v.timing +++ /dev/null @@ -1,178 +0,0 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Ari...] 0.132 secs (0.095u,0.014s) -Chars 38 - 74 [From~Coinduction~Require~Impor...] 0.003 secs (0.002u,0.s) -Chars 77 - 125 [From~ITree~Require~Import~Axio...] 0.059 secs (0.053u,0.006s) -Chars 128 - 149 [Create~HintDb~not_wf.] 0. secs (0.u,0.s) -Chars 151 - 174 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 282 - 298 [Section~IterRel.] 0. secs (0.u,0.s) -Chars 302 - 321 [Context~(A~:~Type).] 0. secs (0.u,0.s) -Chars 324 - 353 [Context~(r~:~A~->~A~->~Prop).] 0. secs (0.u,0.s) -Chars 357 - 463 [Variant~not_wf_F~(F~:~A~->~Pro...] 0. secs (0.u,0.s) -Chars 466 - 502 [Hint~Constructors~not_wf_F:~no...] 0. secs (0.u,0.s) -Chars 506 - 566 [Lemma~not_wf_F_mono~:~Proper~(...] 0. secs (0.u,0.s) -Chars 570 - 576 [Proof.] 0. secs (0.u,0.s) -Chars 581 - 592 [repeat~red.] 0. secs (0.u,0.s) -Chars 593 - 608 [intros;~inv~H0.] 0. secs (0.u,0.s) -Chars 614 - 634 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 635 - 647 [now~apply~H.] 0. secs (0.u,0.s) -Chars 652 - 656 [Qed.] 0. secs (0.u,0.s) -Chars 658 - 734 [Definition~not_wf_F_mon~:=~{|~...] 0. secs (0.u,0.s) -Chars 738 - 797 [Definition~not_wf_from~:~A~->~...] 0. secs (0.u,0.s) -Chars 801 - 950 [Inductive~wf_from~(a~:~A)~:~Pr...] 0. secs (0.u,0.s) -Chars 953 - 988 [Hint~Constructors~wf_from:~not...] 0. secs (0.u,0.s) -Chars 991 - 1077 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) -Chars 1080 - 1086 [Proof.] 0. secs (0.u,0.s) -Chars 1093 - 1111 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1112 - 1119 [intros.] 0. secs (0.u,0.s) -Chars 1120 - 1179 [destruct~(classic~(exists~a',~...] 0. secs (0.u,0.s) -Chars 1184 - 1185 [-] 0. secs (0.u,0.s) -Chars 1186 - 1216 [destruct~H0~as~[a'~[Hr~Hwf]].] 0. secs (0.u,0.s) -Chars 1217 - 1237 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 1242 - 1243 [-] 0. secs (0.u,0.s) -Chars 1244 - 1287 [assert~(forall~a',~~~r~a~a'~\/...] 0. secs (0.u,0.s) -Chars 1294 - 1295 [{] 0. secs (0.u,0.s) -Chars 1304 - 1311 [intros.] 0. secs (0.u,0.s) -Chars 1320 - 1354 [destruct~(classic~(r~a~a'));~a...] 0. secs (0.u,0.s) -Chars 1355 - 1393 [destruct~(classic~(wf_from~a')...] 0. secs (0.u,0.s) -Chars 1402 - 1410 [exfalso.] 0. secs (0.u,0.s) -Chars 1411 - 1420 [apply~H0.] 0. secs (0.u,0.s) -Chars 1421 - 1431 [exists~a'.] 0. secs (0.u,0.s) -Chars 1432 - 1437 [auto.] 0. secs (0.u,0.s) -Chars 1444 - 1445 [}] 0. secs (0.u,0.s) -Chars 1452 - 1461 [clear~H0.] 0. secs (0.u,0.s) -Chars 1468 - 1476 [exfalso.] 0. secs (0.u,0.s) -Chars 1477 - 1485 [apply~H.] 0. secs (0.u,0.s) -Chars 1486 - 1494 [clear~H.] 0. secs (0.u,0.s) -Chars 1495 - 1506 [apply~step.] 0. secs (0.u,0.s) -Chars 1507 - 1514 [intros.] 0. secs (0.u,0.s) -Chars 1515 - 1550 [destruct~(H1~a');~auto~with~no...] 0.001 secs (0.001u,0.s) -Chars 1553 - 1557 [Qed.] 0. secs (0.u,0.s) -Chars 1561 - 1648 [Lemma~neg_wf_from_not_wf_from_...] 0. secs (0.u,0.s) -Chars 1655 - 1661 [Proof.] 0. secs (0.u,0.s) -Chars 1668 - 1675 [intros.] 0. secs (0.u,0.s) -Chars 1676 - 1690 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 1691 - 1707 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 1708 - 1718 [step~in~H.] 0. secs (0.u,0.s) -Chars 1719 - 1731 [inversion~H.] 0. secs (0.u,0.s) -Chars 1732 - 1740 [clear~H.] 0. secs (0.u,0.s) -Chars 1741 - 1765 [generalize~dependent~a'.] 0. secs (0.u,0.s) -Chars 1770 - 1796 [induction~Hcontra;~intros.] 0. secs (0.u,0.s) -Chars 1801 - 1802 [-] 0. secs (0.u,0.s) -Chars 1803 - 1819 [apply~H~in~Hrel.] 0. secs (0.u,0.s) -Chars 1820 - 1825 [auto.] 0. secs (0.u,0.s) -Chars 1830 - 1831 [-] 0. secs (0.u,0.s) -Chars 1832 - 1847 [step~in~Hcorec.] 0. secs (0.u,0.s) -Chars 1848 - 1865 [inversion~Hcorec.] 0. secs (0.u,0.s) -Chars 1866 - 1900 [specialize~(H0~a'~Hrel~a'0~Hre...] 0. secs (0.u,0.s) -Chars 1907 - 1912 [auto.] 0. secs (0.u,0.s) -Chars 1915 - 1919 [Qed.] 0. secs (0.u,0.s) -Chars 1923 - 2008 [Lemma~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) -Chars 2011 - 2017 [Proof.] 0. secs (0.u,0.s) -Chars 2022 - 2102 [split;~try~apply~neg_wf_from_n...] 0. secs (0.u,0.s) -Chars 2105 - 2109 [Qed.] 0. secs (0.u,0.s) -Chars 2113 - 2175 [Lemma~classic_wf~:~forall~a~:~...] 0. secs (0.u,0.s) -Chars 2178 - 2184 [Proof.] 0. secs (0.u,0.s) -Chars 2189 - 2196 [intros.] 0. secs (0.u,0.s) -Chars 2197 - 2234 [destruct~(classic~(wf_from~a))...] 0. secs (0.u,0.s) -Chars 2239 - 2274 [apply~neg_wf_from_not_wf_from~...] 0. secs (0.u,0.s) -Chars 2275 - 2280 [auto.] 0. secs (0.u,0.s) -Chars 2283 - 2287 [Qed.] 0. secs (0.u,0.s) -Chars 2291 - 2462 [Lemma~intro_not_wf~:~~~forall~...] 0. secs (0.u,0.s) -Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) -Chars 2476 - 2483 [intros.] 0. secs (0.u,0.s) -Chars 2484 - 2507 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 2508 - 2527 [unfold~not_wf_from.] 0. secs (0.u,0.s) -Chars 2532 - 2550 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2556 - 2563 [intros.] 0. secs (0.u,0.s) -Chars 2569 - 2599 [apply~not_wf~with~(a'~:=~f~a).] 0. secs (0.u,0.s) -Chars 2604 - 2605 [-] 0. secs (0.u,0.s) -Chars 2606 - 2620 [auto~using~H1.] 0. secs (0.u,0.s) -Chars 2625 - 2626 [-] 0. secs (0.u,0.s) -Chars 2627 - 2637 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2638 - 2655 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 2658 - 2662 [Qed.] 0.024 secs (0.022u,0.001s) -Chars 2666 - 2852 [Lemma~intro_wf~:~~~forall~(P~:...] 0. secs (0.u,0.s) -Chars 2855 - 2861 [Proof.] 0. secs (0.u,0.s) -Chars 2866 - 2879 [intros~P~m~a.] 0. secs (0.u,0.s) -Chars 2880 - 2909 [remember~(m~a)~as~ma~eqn:Hma~.] 0. secs (0.u,0.s) -Chars 2910 - 2923 [revert~a~Hma.] 0. secs (0.u,0.s) -Chars 2928 - 2980 [induction~ma~using~lt_wf_ind;~...] 0. secs (0.u,0.s) -Chars 2985 - 3003 [apply~step;~eauto.] 0. secs (0.u,0.s) -Chars 3006 - 3010 [Qed.] 0. secs (0.u,0.s) -Chars 3012 - 3024 [End~IterRel.] 0. secs (0.u,0.s) -Chars 3026 - 3118 [Definition~rel_rev~{A~:~Type}~...] 0. secs (0.u,0.s) -Chars 3189 - 3310 [Lemma~well_found_wf_from~:~~~f...] 0. secs (0.u,0.s) -Chars 3311 - 3317 [Proof.] 0. secs (0.u,0.s) -Chars 3320 - 3337 [intros~A~r~Hwf~a.] 0. secs (0.u,0.s) -Chars 3338 - 3365 [unfold~well_founded~in~Hwf.] 0. secs (0.u,0.s) -Chars 3368 - 3388 [unfold~rel_rev~in~*.] 0. secs (0.u,0.s) -Chars 3389 - 3407 [induction~(Hwf~a).] 0. secs (0.u,0.s) -Chars 3408 - 3419 [apply~step.] 0. secs (0.u,0.s) -Chars 3420 - 3427 [intros.] 0. secs (0.u,0.s) -Chars 3430 - 3445 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 3446 - 3451 [auto.] 0. secs (0.u,0.s) -Chars 3452 - 3456 [Qed.] 0. secs (0.u,0.s) -Chars 3545 - 3675 [Lemma~wf_from_sub_rel~:~~~fora...] 0. secs (0.u,0.s) -Chars 3676 - 3682 [Proof.] 0. secs (0.u,0.s) -Chars 3685 - 3692 [intros.] 0. secs (0.u,0.s) -Chars 3693 - 3706 [induction~H0.] 0. secs (0.u,0.s) -Chars 3709 - 3710 [-] 0. secs (0.u,0.s) -Chars 3711 - 3722 [apply~base.] 0. secs (0.u,0.s) -Chars 3723 - 3741 [intros~a'~Hcontra.] 0. secs (0.u,0.s) -Chars 3742 - 3761 [apply~H~in~Hcontra.] 0. secs (0.u,0.s) -Chars 3762 - 3779 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 3782 - 3783 [-] 0. secs (0.u,0.s) -Chars 3784 - 3795 [apply~step.] 0. secs (0.u,0.s) -Chars 3796 - 3813 [intros~a'~Hr0aa'.] 0. secs (0.u,0.s) -Chars 3814 - 3832 [apply~H~in~Hr0aa'.] 0. secs (0.u,0.s) -Chars 3833 - 3838 [auto.] 0. secs (0.u,0.s) -Chars 3839 - 3843 [Qed.] 0. secs (0.u,0.s) -Chars 3845 - 3915 [Lemma~wf_from_gt~:~forall~n~:~...] 0. secs (0.u,0.s) -Chars 3916 - 3922 [Proof.] 0. secs (0.u,0.s) -Chars 3925 - 3932 [intros.] 0. secs (0.u,0.s) -Chars 3935 - 4007 [enough~(forall~n',~le~n'~n~->~...] 0. secs (0.u,0.s) -Chars 4010 - 4030 [induction~n;~intros.] 0. secs (0.u,0.s) -Chars 4033 - 4034 [-] 0. secs (0.u,0.s) -Chars 4035 - 4060 [assert~(n'~=~0);~try~lia.] 0.003 secs (0.u,0.s) -Chars 4061 - 4067 [subst.] 0. secs (0.u,0.s) -Chars 4068 - 4079 [apply~base.] 0. secs (0.u,0.s) -Chars 4080 - 4087 [intros.] 0. secs (0.u,0.s) -Chars 4088 - 4092 [lia.] 0. secs (0.u,0.s) -Chars 4095 - 4096 [-] 0. secs (0.u,0.s) -Chars 4097 - 4108 [apply~step.] 0. secs (0.u,0.s) -Chars 4109 - 4125 [intros~n''~Hn''.] 0. secs (0.u,0.s) -Chars 4126 - 4153 [assert~(le~n''~n);~try~lia.] 0. secs (0.u,0.s) -Chars 4154 - 4159 [auto.] 0. secs (0.u,0.s) -Chars 4160 - 4164 [Qed.] 0. secs (0.u,0.s) -Chars 4183 - 4312 [Lemma~no_inf_dec_seq_aux~:~~~f...] 0. secs (0.u,0.s) -Chars 4313 - 4319 [Proof.] 0. secs (0.u,0.s) -Chars 4322 - 4329 [intros.] 0. secs (0.u,0.s) -Chars 4330 - 4375 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) -Chars 4378 - 4391 [repeat~intro.] 0. secs (0.u,0.s) -Chars 4392 - 4397 [auto.] 0. secs (0.u,0.s) -Chars 4398 - 4402 [Qed.] 0. secs (0.u,0.s) -Chars 4587 - 4810 [Lemma~wf_intro_gt~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 4811 - 4817 [Proof.] 0. secs (0.u,0.s) -Chars 4820 - 4851 [intros~A~r~f~inv~a~Hinv~Hgt~Ha.] 0. secs (0.u,0.s) -Chars 4854 - 4875 [remember~(f~a)~as~n0.] 0. secs (0.u,0.s) -Chars 4878 - 4901 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 4904 - 4959 [enough~(forall~a,~le~(f~a)~n0~...] 0. secs (0.u,0.s) -Chars 4962 - 4963 [{] 0. secs (0.u,0.s) -Chars 4968 - 4975 [intros.] 0. secs (0.u,0.s) -Chars 4976 - 4984 [apply~H.] 0. secs (0.u,0.s) -Chars 4985 - 4989 [lia.] 0. secs (0.u,0.s) -Chars 4990 - 4995 [auto.] 0. secs (0.u,0.s) -Chars 4998 - 4999 [}] 0. secs (0.u,0.s) -Chars 5002 - 5023 [induction~n0;~intros.] 0. secs (0.u,0.s) -Chars 5026 - 5027 [-] 0. secs (0.u,0.s) -Chars 5028 - 5039 [apply~base.] 0. secs (0.u,0.s) -Chars 5040 - 5066 [assert~(f~a~=~0);~try~lia.] 0. secs (0.u,0.s) -Chars 5071 - 5089 [intros~a'~Hcontra.] 0. secs (0.u,0.s) -Chars 5094 - 5127 [specialize~(Hgt~a~a'~H0~Hcontra).] 0. secs (0.u,0.s) -Chars 5128 - 5132 [lia.] 0. secs (0.u,0.s) -Chars 5135 - 5136 [-] 0. secs (0.u,0.s) -Chars 5137 - 5148 [apply~step.] 0. secs (0.u,0.s) -Chars 5149 - 5163 [intros~a'~Ha'.] 0. secs (0.u,0.s) -Chars 5168 - 5186 [apply~IHn0;~eauto.] 0. secs (0.u,0.s) -Chars 5191 - 5218 [assert~(f~a~>~f~a');~eauto.] 0. secs (0.u,0.s) -Chars 5219 - 5223 [lia.] 0. secs (0.u,0.s) -Chars 5224 - 5228 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/PureITreeBasics.v.timing b/extra/Dijkstra/PureITreeBasics.v.timing deleted file mode 100644 index 01c5e4ed..00000000 --- a/extra/Dijkstra/PureITreeBasics.v.timing +++ /dev/null @@ -1,151 +0,0 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 180 [From~ITree~Require~Import~Axio...] 0.162 secs (0.143u,0.016s) -Chars 182 - 196 [Import~Monads.] 0. secs (0.u,0.s) -Chars 197 - 218 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 219 - 251 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 253 - 276 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 396 - 433 [#[local]~Notation~spin~:=~ITre...] 0. secs (0.u,0.s) -Chars 435 - 487 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) -Chars 489 - 565 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) -Chars 567 - 628 [#[local]~Tactic~Notation~"sinv...] 0. secs (0.u,0.s) -Chars 708 - 814 [Lemma~spin_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 815 - 821 [Proof.] 0. secs (0.u,0.s) -Chars 824 - 831 [intros.] 0. secs (0.u,0.s) -Chars 832 - 844 [coinduction.] 0.002 secs (0.001u,0.s) -Chars 845 - 851 [simpl.] 0. secs (0.u,0.s) -Chars 854 - 870 [now~constructor.] 0. secs (0.u,0.s) -Chars 871 - 875 [Qed.] 0.003 secs (0.002u,0.s) -Chars 1051 - 1206 [Definition~tau_invar~(E~:~Type...] 0. secs (0.u,0.s) -Chars 1382 - 1435 [Notation~resp_eutt~P:=~(Proper...] 0. secs (0.u,0.s) -Chars 1437 - 1619 [Lemma~tau_invar_resp_eutt1~:~~...] 0. secs (0.u,0.s) -Chars 1622 - 1628 [Proof.] 0. secs (0.u,0.s) -Chars 1633 - 1640 [intros.] 0. secs (0.u,0.s) -Chars 1641 - 1658 [unfold~tau_invar.] 0. secs (0.u,0.s) -Chars 1659 - 1735 [split;~intros;~eapply~H;~try~e...] 0.026 secs (0.024u,0.001s) -Chars 1738 - 1742 [Qed.] 0. secs (0.u,0.s) -Chars 1808 - 1898 [Lemma~div_spin_eutt~:~~~forall...] 0. secs (0.u,0.s) -Chars 1899 - 1905 [Proof.] 0. secs (0.u,0.s) -Chars 1908 - 1917 [intros~A.] 0. secs (0.u,0.s) -Chars 1918 - 1930 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1931 - 1938 [intros.] 0. secs (0.u,0.s) -Chars 1939 - 1943 [cbn.] 0. secs (0.u,0.s) -Chars 1946 - 1978 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) -Chars 1981 - 1982 [-] 0. secs (0.u,0.s) -Chars 1983 - 2016 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2017 - 2038 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) -Chars 2039 - 2057 [rewrite~Heta~in~H.] 0.001 secs (0.001u,0.s) -Chars 2058 - 2065 [sinv~H.] 0. secs (0.u,0.s) -Chars 2069 - 2070 [-] 0. secs (0.u,0.s) -Chars 2071 - 2083 [constructor.] 0. secs (0.u,0.s) -Chars 2084 - 2094 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2095 - 2128 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2129 - 2150 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) -Chars 2155 - 2177 [assert~(t~≈~Tau~t0).] 0. secs (0.u,0.s) -Chars 2182 - 2183 [+] 0. secs (0.u,0.s) -Chars 2184 - 2197 [rewrite~Heta.] 0. secs (0.u,0.s) -Chars 2198 - 2210 [reflexivity.] 0. secs (0.u,0.s) -Chars 2215 - 2216 [+] 0. secs (0.u,0.s) -Chars 2217 - 2237 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 2238 - 2252 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 2253 - 2258 [auto.] 0. secs (0.u,0.s) -Chars 2261 - 2262 [-] 0. secs (0.u,0.s) -Chars 2263 - 2274 [destruct~e.] 0. secs (0.u,0.s) -Chars 2275 - 2279 [Qed.] 0.004 secs (0.004u,0.s) -Chars 2281 - 2383 [Lemma~eutt_reta_or_div_aux~:~~...] 0. secs (0.u,0.s) -Chars 2384 - 2390 [Proof.] 0. secs (0.u,0.s) -Chars 2393 - 2401 [intro~A.] 0. secs (0.u,0.s) -Chars 2402 - 2437 [unfold~any_infinite,~any_infin...] 0. secs (0.u,0.s) -Chars 2441 - 2459 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2463 - 2470 [intros.] 0. secs (0.u,0.s) -Chars 2471 - 2503 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) -Chars 2506 - 2507 [-] 0. secs (0.u,0.s) -Chars 2508 - 2516 [exfalso.] 0. secs (0.u,0.s) -Chars 2517 - 2550 [specialize~(itree_eta~t)~as~Heta.] 0. secs (0.u,0.s) -Chars 2551 - 2572 [rewrite~Heqt~in~Heta.] 0. secs (0.u,0.s) -Chars 2573 - 2581 [apply~H.] 0. secs (0.u,0.s) -Chars 2586 - 2595 [exists~r.] 0. secs (0.u,0.s) -Chars 2596 - 2609 [rewrite~Heta.] 0. secs (0.u,0.s) -Chars 2610 - 2622 [reflexivity.] 0. secs (0.u,0.s) -Chars 2625 - 2626 [-] 0. secs (0.u,0.s) -Chars 2627 - 2660 [repeat~red;~simpobs;~constructor.] 0. secs (0.u,0.s) -Chars 2661 - 2679 [eapply~CIH;~eauto.] 0.033 secs (0.033u,0.s) -Chars 2680 - 2686 [intro.] 0. secs (0.u,0.s) -Chars 2687 - 2695 [apply~H.] 0. secs (0.u,0.s) -Chars 2700 - 2722 [destruct~H0~as~[a~Ha].] 0. secs (0.u,0.s) -Chars 2723 - 2732 [exists~a.] 0. secs (0.u,0.s) -Chars 2733 - 2764 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 2765 - 2784 [rewrite~Heqt~in~Ht.] 0. secs (0.u,0.s) -Chars 2789 - 2800 [rewrite~Ht.] 0. secs (0.u,0.s) -Chars 2801 - 2818 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 2819 - 2824 [auto.] 0. secs (0.u,0.s) -Chars 2827 - 2828 [-] 0. secs (0.u,0.s) -Chars 2829 - 2840 [destruct~e.] 0. secs (0.u,0.s) -Chars 2841 - 2845 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2984 - 3083 [Lemma~eutt_reta_or_div~:~~~for...] 0. secs (0.u,0.s) -Chars 3084 - 3090 [Proof.] 0. secs (0.u,0.s) -Chars 3093 - 3104 [intros~A~t.] 0. secs (0.u,0.s) -Chars 3106 - 3160 [specialize~(classic~(exists~a,...] 0. secs (0.u,0.s) -Chars 3161 - 3181 [destruct~Hlem;~auto.] 0. secs (0.u,0.s) -Chars 3184 - 3190 [right.] 0. secs (0.u,0.s) -Chars 3191 - 3218 [apply~eutt_reta_or_div_aux.] 0. secs (0.u,0.s) -Chars 3219 - 3224 [auto.] 0. secs (0.u,0.s) -Chars 3225 - 3229 [Qed.] 0. secs (0.u,0.s) -Chars 3231 - 3327 [Lemma~ret_not_div~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 3328 - 3334 [Proof.] 0. secs (0.u,0.s) -Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) -Chars 3345 - 3359 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 3360 - 3373 [sinv~Hcontra.] 0. secs (0.u,0.s) -Chars 3375 - 3379 [Qed.] 0. secs (0.u,0.s) -Chars 3381 - 3451 [Lemma~not_ret_eutt_spin~:~fora...] 0. secs (0.u,0.s) -Chars 3452 - 3458 [Proof.] 0. secs (0.u,0.s) -Chars 3461 - 3468 [intros.] 0. secs (0.u,0.s) -Chars 3469 - 3483 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 3484 - 3504 [symmetry~in~Hcontra.] 0. secs (0.u,0.s) -Chars 3505 - 3543 [revert~Hcontra;~apply~no_infin...] 0. secs (0.u,0.s) -Chars 3546 - 3566 [apply~spin_infinite.] 0. secs (0.u,0.s) -Chars 3567 - 3571 [Qed.] 0. secs (0.u,0.s) -Chars 3573 - 3692 [Lemma~eutt_ret_euttge~:~~~fora...] 0. secs (0.u,0.s) -Chars 3693 - 3699 [Proof.] 0. secs (0.u,0.s) -Chars 3702 - 3709 [intros.] 0. secs (0.u,0.s) -Chars 3710 - 3733 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 3734 - 3753 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3754 - 3761 [intros.] 0. secs (0.u,0.s) -Chars 3762 - 3769 [sinv~H.] 0.017 secs (0.017u,0.s) -Chars 3773 - 3774 [-] 0. secs (0.u,0.s) -Chars 3775 - 3780 [taul.] 0. secs (0.u,0.s) -Chars 3821 - 3848 [remember~(observe~(Ret~a)).] 0.001 secs (0.001u,0.s) -Chars 3853 - 3877 [induction~REL;~try~easy.] 0.039 secs (0.039u,0.s) -Chars 3883 - 3884 [+] 0. secs (0.u,0.s) -Chars 3885 - 3890 [eret.] 0. secs (0.u,0.s) -Chars 3896 - 3897 [+] 0. secs (0.u,0.s) -Chars 3898 - 3903 [taul.] 0. secs (0.u,0.s) -Chars 3904 - 3920 [now~apply~IHREL.] 0. secs (0.u,0.s) -Chars 3923 - 3927 [Qed.] 0.008 secs (0.008u,0.s) -Chars 3929 - 4012 [Lemma~unfold_spin~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 4013 - 4019 [Proof.] 0. secs (0.u,0.s) -Chars 4022 - 4029 [intros.] 0. secs (0.u,0.s) -Chars 4030 - 4035 [step.] 0.001 secs (0.001u,0.s) -Chars 4036 - 4040 [cbn.] 0. secs (0.u,0.s) -Chars 4041 - 4053 [reflexivity.] 0. secs (0.u,0.s) -Chars 4055 - 4059 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4061 - 4160 [Lemma~burn_eutt_r~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 4161 - 4167 [Proof.] 0. secs (0.u,0.s) -Chars 4170 - 4177 [intros.] 0. secs (0.u,0.s) -Chars 4178 - 4201 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4202 - 4226 [generalize~dependent~t'.] 0. secs (0.u,0.s) -Chars 4227 - 4260 [induction~n;~intros;~simpl;~auto.] 0. secs (0.u,0.s) -Chars 4263 - 4310 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) -Chars 4313 - 4314 [-] 0. secs (0.u,0.s) -Chars 4315 - 4346 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 4347 - 4365 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) -Chars 4366 - 4380 [rewrite~<-~Ht.] 0. secs (0.u,0.s) -Chars 4381 - 4386 [auto.] 0. secs (0.u,0.s) -Chars 4389 - 4390 [-] 0. secs (0.u,0.s) -Chars 4391 - 4401 [apply~IHn.] 0. secs (0.u,0.s) -Chars 4402 - 4433 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 4434 - 4452 [rewrite~Heq~in~Ht.] 0. secs (0.u,0.s) -Chars 4453 - 4469 [rewrite~Ht~in~H.] 0.011 secs (0.011u,0.s) -Chars 4474 - 4496 [rewrite~tau_eutt~in~H.] 0.011 secs (0.01u,0.s) -Chars 4497 - 4502 [auto.] 0. secs (0.u,0.s) -Chars 4503 - 4507 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/PureITreeDijkstra.v.timing b/extra/Dijkstra/PureITreeDijkstra.v.timing deleted file mode 100644 index b4da22df..00000000 --- a/extra/Dijkstra/PureITreeDijkstra.v.timing +++ /dev/null @@ -1,571 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 88 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 90 - 180 [From~ITree~Require~Import~Inde...] 0.158 secs (0.141u,0.016s) -Chars 182 - 272 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) -Chars 274 - 288 [Import~Monads.] 0. secs (0.u,0.s) -Chars 289 - 310 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 311 - 343 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 345 - 363 [Section~PureITree.] 0. secs (0.u,0.s) -Chars 367 - 407 [Definition~PureITree~A~:=~itre...] 0. secs (0.u,0.s) -Chars 572 - 659 [Definition~_PureITreeSpec~A~:=...] 0. secs (0.u,0.s) -Chars 719 - 943 [Definition~monotonici~A~(w~:~_...] 0. secs (0.u,0.s) -Chars 970 - 1116 [Definition~dmonot~A~(w~:~_Pure...] 0. secs (0.u,0.s) -Chars 1206 - 1293 [Lemma~monot_imp_dmonot~:~~~for...] 0. secs (0.u,0.s) -Chars 1296 - 1302 [Proof.] 0. secs (0.u,0.s) -Chars 1307 - 1333 [unfold~monotonici,~dmonot.] 0. secs (0.u,0.s) -Chars 1334 - 1341 [intros.] 0. secs (0.u,0.s) -Chars 1342 - 1348 [split.] 0. secs (0.u,0.s) -Chars 1353 - 1354 [-] 0. secs (0.u,0.s) -Chars 1355 - 1369 [apply~H;~auto.] 0. secs (0.u,0.s) -Chars 1370 - 1377 [intros.] 0. secs (0.u,0.s) -Chars 1378 - 1387 [apply~H0.] 0. secs (0.u,0.s) -Chars 1388 - 1393 [auto.] 0. secs (0.u,0.s) -Chars 1398 - 1399 [-] 0. secs (0.u,0.s) -Chars 1400 - 1414 [apply~H;~auto.] 0. secs (0.u,0.s) -Chars 1415 - 1422 [intros.] 0. secs (0.u,0.s) -Chars 1423 - 1432 [apply~H0.] 0. secs (0.u,0.s) -Chars 1433 - 1438 [auto.] 0. secs (0.u,0.s) -Chars 1441 - 1445 [Qed.] 0. secs (0.u,0.s) -Chars 1493 - 1635 [Definition~amonot~A~(w~:~_Pure...] 0. secs (0.u,0.s) -Chars 1650 - 1720 [Definition~PureITreeSpec~A~:=~...] 0. secs (0.u,0.s) -Chars 1780 - 1849 [Definition~_div_spec~A~:~_Pure...] 0. secs (0.u,0.s) -Chars 1853 - 1913 [Lemma~div_spec_monot~:~forall~...] 0. secs (0.u,0.s) -Chars 1918 - 1924 [Proof.] 0. secs (0.u,0.s) -Chars 1931 - 1960 [unfold~monotonici,~_div_spec.] 0. secs (0.u,0.s) -Chars 1961 - 1966 [auto.] 0. secs (0.u,0.s) -Chars 1971 - 1975 [Qed.] 0. secs (0.u,0.s) -Chars 1979 - 2037 [Lemma~div_spec_amonot~:~forall...] 0. secs (0.u,0.s) -Chars 2040 - 2046 [Proof.] 0. secs (0.u,0.s) -Chars 2051 - 2076 [unfold~amonot,~_div_spec.] 0. secs (0.u,0.s) -Chars 2077 - 2084 [intros.] 0. secs (0.u,0.s) -Chars 2085 - 2090 [auto.] 0. secs (0.u,0.s) -Chars 2093 - 2099 [Abort.] 0. secs (0.u,0.s) -Chars 2102 - 2168 [Definition~div_spec~A~:=~exist...] 0. secs (0.u,0.s) -Chars 2278 - 2349 [Definition~_retpi~A~(a~:~A)~:~...] 0. secs (0.u,0.s) -Chars 2353 - 2417 [Lemma~retpi_monot~:~forall~A~(...] 0. secs (0.u,0.s) -Chars 2420 - 2426 [Proof.] 0. secs (0.u,0.s) -Chars 2431 - 2449 [unfold~monotonici.] 0. secs (0.u,0.s) -Chars 2450 - 2460 [intuition.] 0.003 secs (0.003u,0.s) -Chars 2461 - 2480 [unfold~_retpi~in~*.] 0. secs (0.u,0.s) -Chars 2481 - 2486 [auto.] 0. secs (0.u,0.s) -Chars 2489 - 2493 [Qed.] 0. secs (0.u,0.s) -Chars 2497 - 2560 [Lemma~retpi_amonot~:~forall~A~...] 0. secs (0.u,0.s) -Chars 2563 - 2569 [Proof.] 0. secs (0.u,0.s) -Chars 2574 - 2596 [unfold~amonot,~_retpi.] 0. secs (0.u,0.s) -Chars 2597 - 2604 [intros.] 0. secs (0.u,0.s) -Chars 2609 - 2615 [Abort.] 0. secs (0.u,0.s) -Chars 2690 - 3003 [Lemma~bind_pred_resp_eutt~:~~~...] 0. secs (0.u,0.s) -Chars 3006 - 3012 [Proof.] 0. secs (0.u,0.s) -Chars 3017 - 3024 [intros.] 0. secs (0.u,0.s) -Chars 3025 - 3044 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 3045 - 3066 [setoid_rewrite~Heutt.] 0.025 secs (0.023u,0.001s) -Chars 3067 - 3079 [reflexivity.] 0. secs (0.u,0.s) -Chars 3082 - 3086 [Qed.] 0. secs (0.u,0.s) -Chars 3301 - 3642 [Definition~_bindpi~A~B~(w~:~_P...] 0. secs (0.u,0.s) -Chars 3646 - 3819 [Lemma~bindpi_monot~:~~~forall~...] 0. secs (0.u,0.s) -Chars 3822 - 3828 [Proof.] 0. secs (0.u,0.s) -Chars 3833 - 3851 [unfold~monotonici.] 0. secs (0.u,0.s) -Chars 3852 - 3859 [intros.] 0. secs (0.u,0.s) -Chars 3860 - 3880 [unfold~_bindpi~in~*.] 0. secs (0.u,0.s) -Chars 3885 - 4012 [set~~(fp~:=~~~fun~(t~:~itree~v...] 0. secs (0.u,0.s) -Chars 4017 - 4061 [enough~(forall~t,~fp~t~p~Hp~->...] 0. secs (0.u,0.s) -Chars 4066 - 4067 [-] 0. secs (0.u,0.s) -Chars 4068 - 4108 [eapply~H~with~(p~:=~fun~t~=>~f...] 0. secs (0.u,0.s) -Chars 4115 - 4116 [+] 0. secs (0.u,0.s) -Chars 4117 - 4124 [intros.] 0. secs (0.u,0.s) -Chars 4126 - 4141 [apply~H3~in~H4.] 0. secs (0.u,0.s) -Chars 4150 - 4166 [unfold~fp~in~H4.] 0. secs (0.u,0.s) -Chars 4167 - 4185 [destruct~H4;~auto.] 0. secs (0.u,0.s) -Chars 4194 - 4206 [destruct~H4.] 0. secs (0.u,0.s) -Chars 4207 - 4213 [right.] 0. secs (0.u,0.s) -Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) -Chars 4226 - 4227 [+] 0. secs (0.u,0.s) -Chars 4228 - 4237 [apply~H2.] 0. secs (0.u,0.s) -Chars 4242 - 4243 [-] 0. secs (0.u,0.s) -Chars 4244 - 4254 [unfold~fp.] 0. secs (0.u,0.s) -Chars 4255 - 4262 [intros.] 0. secs (0.u,0.s) -Chars 4263 - 4281 [destruct~H3;~auto.] 0. secs (0.u,0.s) -Chars 4282 - 4287 [left.] 0. secs (0.u,0.s) -Chars 4294 - 4301 [intros.] 0. secs (0.u,0.s) -Chars 4302 - 4334 [destruct~H3~as~[a~[Hvala~Hfa]].] 0. secs (0.u,0.s) -Chars 4341 - 4350 [exists~a.] 0. secs (0.u,0.s) -Chars 4351 - 4363 [split;~auto.] 0. secs (0.u,0.s) -Chars 4370 - 4393 [eapply~H0;~[~eauto~|~~].] 0. secs (0.u,0.s) -Chars 4400 - 4427 [revert~Hfa;~apply~H0;~auto.] 0. secs (0.u,0.s) -Chars 4430 - 4434 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4503 - 4594 [Definition~retpi~A~(a~:~A)~:~P...] 0. secs (0.u,0.s) -Chars 4664 - 4922 [Definition~bindpi~A~B~(w~:~Pur...] 0. secs (0.u,0.s) -Chars 4926 - 5078 [Lemma~inf_tree_pred_resp_eutt~...] 0. secs (0.u,0.s) -Chars 5081 - 5087 [Proof.] 0. secs (0.u,0.s) -Chars 5092 - 5099 [intros.] 0. secs (0.u,0.s) -Chars 5100 - 5119 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 5120 - 5134 [rewrite~Heutt.] 0. secs (0.u,0.s) -Chars 5135 - 5147 [reflexivity.] 0. secs (0.u,0.s) -Chars 5150 - 5154 [Qed.] 0. secs (0.u,0.s) -Chars 5158 - 5322 [Lemma~term_b_pred_resp_eutt~:~...] 0. secs (0.u,0.s) -Chars 5325 - 5331 [Proof.] 0. secs (0.u,0.s) -Chars 5336 - 5343 [intros.] 0. secs (0.u,0.s) -Chars 5344 - 5363 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 5364 - 5378 [split;~intros.] 0. secs (0.u,0.s) -Chars 5383 - 5384 [-] 0. secs (0.u,0.s) -Chars 5385 - 5396 [destruct~H.] 0. secs (0.u,0.s) -Chars 5397 - 5406 [exists~x.] 0. secs (0.u,0.s) -Chars 5407 - 5424 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5425 - 5430 [auto.] 0. secs (0.u,0.s) -Chars 5435 - 5436 [-] 0. secs (0.u,0.s) -Chars 5437 - 5448 [destruct~H.] 0. secs (0.u,0.s) -Chars 5449 - 5458 [exists~x.] 0. secs (0.u,0.s) -Chars 5459 - 5473 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5474 - 5479 [auto.] 0. secs (0.u,0.s) -Chars 5482 - 5486 [Qed.] 0. secs (0.u,0.s) -Chars 5490 - 5679 [Lemma~cont_a_pred_resp_eutt~:~...] 0. secs (0.u,0.s) -Chars 5682 - 5688 [Proof.] 0. secs (0.u,0.s) -Chars 5693 - 5700 [intros.] 0. secs (0.u,0.s) -Chars 5701 - 5720 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 5721 - 5735 [split;~intros.] 0. secs (0.u,0.s) -Chars 5740 - 5741 [-] 0. secs (0.u,0.s) -Chars 5742 - 5753 [destruct~H.] 0. secs (0.u,0.s) -Chars 5754 - 5763 [exists~x.] 0. secs (0.u,0.s) -Chars 5764 - 5781 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5782 - 5787 [auto.] 0. secs (0.u,0.s) -Chars 5792 - 5793 [-] 0. secs (0.u,0.s) -Chars 5794 - 5805 [destruct~H.] 0. secs (0.u,0.s) -Chars 5806 - 5815 [exists~x.] 0. secs (0.u,0.s) -Chars 5816 - 5830 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5831 - 5836 [auto.] 0. secs (0.u,0.s) -Chars 5839 - 5843 [Qed.] 0.033 secs (0.033u,0.s) -Chars 5847 - 5979 [Lemma~resp_eutt_or~:~~~forall~...] 0. secs (0.u,0.s) -Chars 5982 - 5988 [Proof.] 0. secs (0.u,0.s) -Chars 5993 - 6000 [intros.] 0. secs (0.u,0.s) -Chars 6001 - 6017 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 6018 - 6032 [split;~intros.] 0. secs (0.u,0.s) -Chars 6037 - 6038 [-] 0. secs (0.u,0.s) -Chars 6039 - 6052 [destruct~H1.] 0. secs (0.u,0.s) -Chars 6059 - 6060 [+] 0. secs (0.u,0.s) -Chars 6061 - 6066 [left.] 0. secs (0.u,0.s) -Chars 6067 - 6083 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) -Chars 6084 - 6102 [now~rewrite~<-~Ht.] 0. secs (0.u,0.s) -Chars 6110 - 6111 [+] 0. secs (0.u,0.s) -Chars 6112 - 6118 [right.] 0. secs (0.u,0.s) -Chars 6119 - 6136 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 6137 - 6155 [now~rewrite~<-~Ht.] 0. secs (0.u,0.s) -Chars 6161 - 6162 [-] 0. secs (0.u,0.s) -Chars 6163 - 6175 [destruct~H1.] 0. secs (0.u,0.s) -Chars 6182 - 6183 [+] 0. secs (0.u,0.s) -Chars 6184 - 6189 [left.] 0. secs (0.u,0.s) -Chars 6190 - 6206 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 6213 - 6214 [+] 0. secs (0.u,0.s) -Chars 6215 - 6221 [right.] 0. secs (0.u,0.s) -Chars 6222 - 6239 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 6242 - 6246 [Qed.] 0. secs (0.u,0.s) -Chars 6250 - 6598 [Definition~iterF_body'~{A~B~:~...] 0.001 secs (0.001u,0.s) -Chars 6602 - 6950 [Variant~iterF_body~{A~B~:~Type...] 0.001 secs (0.001u,0.s) -Chars 6953 - 7147 [Lemma~iterF_body_equiv~:~~~for...] 0. secs (0.u,0.s) -Chars 7151 - 7157 [Proof.] 0. secs (0.u,0.s) -Chars 7163 - 7183 [split;~intros;~auto.] 0. secs (0.u,0.s) -Chars 7187 - 7191 [Qed.] 0. secs (0.u,0.s) -Chars 7193 - 7230 [Hint~Constructors~iterF_body:~...] 0. secs (0.u,0.s) -Chars 7234 - 7397 [Lemma~iterF_body'_resp_eutt~:~...] 0. secs (0.u,0.s) -Chars 7400 - 7406 [Proof.] 0. secs (0.u,0.s) -Chars 7411 - 7418 [intros.] 0. secs (0.u,0.s) -Chars 7419 - 7472 [eapply~resp_eutt_or;~try~eappl...] 0. secs (0.u,0.s) -Chars 7477 - 7478 [-] 0. secs (0.u,0.s) -Chars 7479 - 7509 [apply~inf_tree_pred_resp_eutt.] 0. secs (0.u,0.s) -Chars 7514 - 7515 [-] 0. secs (0.u,0.s) -Chars 7516 - 7544 [apply~term_b_pred_resp_eutt.] 0. secs (0.u,0.s) -Chars 7549 - 7550 [-] 0. secs (0.u,0.s) -Chars 7551 - 7579 [apply~cont_a_pred_resp_eutt.] 0. secs (0.u,0.s) -Chars 7582 - 7586 [Qed.] 0. secs (0.u,0.s) -Chars 7590 - 7751 [Lemma~iterF_body_resp_eutt~:~~...] 0. secs (0.u,0.s) -Chars 7754 - 7760 [Proof.] 0. secs (0.u,0.s) -Chars 7765 - 7772 [intros.] 0. secs (0.u,0.s) -Chars 7773 - 7792 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 7793 - 7833 [split;~intros;~inversion~H;~su...] 0. secs (0.u,0.s) -Chars 7838 - 7839 [-] 0. secs (0.u,0.s) -Chars 7840 - 7860 [apply~inf_tau;~auto.] 0. secs (0.u,0.s) -Chars 7861 - 7881 [rewrite~Heutt~in~Ht.] 0.001 secs (0.001u,0.s) -Chars 7882 - 7887 [auto.] 0. secs (0.u,0.s) -Chars 7892 - 7893 [-] 0. secs (0.u,0.s) -Chars 7894 - 7915 [eapply~term_b;~eauto.] 0.001 secs (0.001u,0.s) -Chars 7916 - 7930 [rewrite~Hretb.] 0. secs (0.u,0.s) -Chars 7931 - 7936 [auto.] 0. secs (0.u,0.s) -Chars 7941 - 7942 [-] 0. secs (0.u,0.s) -Chars 7943 - 7964 [eapply~cont_a;~eauto.] 0.001 secs (0.001u,0.s) -Chars 7965 - 7979 [rewrite~Hreta.] 0. secs (0.u,0.s) -Chars 7980 - 7985 [auto.] 0. secs (0.u,0.s) -Chars 7990 - 7991 [-] 0. secs (0.u,0.s) -Chars 7992 - 8012 [apply~inf_tau;~auto.] 0. secs (0.u,0.s) -Chars 8013 - 8027 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) -Chars 8028 - 8033 [auto.] 0. secs (0.u,0.s) -Chars 8038 - 8039 [-] 0. secs (0.u,0.s) -Chars 8040 - 8061 [eapply~term_b;~eauto.] 0.001 secs (0.001u,0.s) -Chars 8062 - 8076 [rewrite~Hretb.] 0. secs (0.u,0.s) -Chars 8077 - 8086 [symmetry.] 0. secs (0.u,0.s) -Chars 8087 - 8092 [auto.] 0. secs (0.u,0.s) -Chars 8097 - 8098 [-] 0. secs (0.u,0.s) -Chars 8099 - 8120 [eapply~cont_a;~eauto.] 0.001 secs (0.001u,0.s) -Chars 8121 - 8135 [rewrite~Hreta.] 0. secs (0.u,0.s) -Chars 8136 - 8145 [symmetry.] 0. secs (0.u,0.s) -Chars 8146 - 8151 [auto.] 0. secs (0.u,0.s) -Chars 8154 - 8158 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8162 - 8430 [Variant~iterF~{A~B~:~Type}~(bo...] 0. secs (0.u,0.s) -Chars 9170 - 9202 [Hint~Constructors~iterF:~itree.] 0. secs (0.u,0.s) -Chars 9206 - 9312 [Definition~iter_~{A}~{B}~sim~(...] 0. secs (0.u,0.s) -Chars 9315 - 9341 [Hint~Unfold~iter_:~itree.] 0. secs (0.u,0.s) -Chars 9345 - 9446 [Lemma~iter_mono~{A}~{B}~body~p...] 0. secs (0.u,0.s) -Chars 9449 - 9455 [Proof.] 0. secs (0.u,0.s) -Chars 9460 - 9471 [repeat~red.] 0. secs (0.u,0.s) -Chars 9472 - 9479 [intros.] 0. secs (0.u,0.s) -Chars 9485 - 9517 [induction~H0;~constructor;~auto.] 0. secs (0.u,0.s) -Chars 9522 - 9562 [destruct~(body~a)~as~[fa~Hfa]~...] 0. secs (0.u,0.s) -Chars 9563 - 9574 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 9579 - 9605 [refine~(Hfa~_~_~_~_~_~H0).] 0. secs (0.u,0.s) -Chars 9606 - 9613 [intros.] 0. secs (0.u,0.s) -Chars 9614 - 9645 [inversion~H1;~eauto~with~itree.] 0.01 secs (0.01u,0.s) -Chars 9650 - 9671 [eapply~cont_a;~eauto.] 0. secs (0.u,0.s) -Chars 9672 - 9684 [now~apply~H.] 0. secs (0.u,0.s) -Chars 9686 - 9690 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9694 - 9770 [Definition~iter_mon~{A}~{B}~bo...] 0. secs (0.u,0.s) -Chars 9776 - 9939 [Definition~_iter~{A}~{B}~:=~~~...] 0. secs (0.u,0.s) -Chars 10047 - 10175 [Lemma~iter_monot~:~~~forall~A~...] 0. secs (0.u,0.s) -Chars 10180 - 10186 [Proof.] 0. secs (0.u,0.s) -Chars 10193 - 10211 [unfold~monotonici.] 0. secs (0.u,0.s) -Chars 10212 - 10219 [intros.] 0. secs (0.u,0.s) -Chars 10220 - 10243 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 10250 - 10276 [coinduction~c~CIH;~intros.] 0. secs (0.u,0.s) -Chars 10277 - 10288 [step~in~H0.] 0. secs (0.u,0.s) -Chars 10295 - 10302 [inv~H0.] 0. secs (0.u,0.s) -Chars 10310 - 10322 [constructor.] 0. secs (0.u,0.s) -Chars 10323 - 10360 [destruct~(f~a)~as~[fa~Hfa]~eqn...] 0. secs (0.u,0.s) -Chars 10361 - 10372 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 10379 - 10405 [refine~(Hfa~_~_~_~_~_~H1).] 0. secs (0.u,0.s) -Chars 10406 - 10415 [intros~t.] 0. secs (0.u,0.s) -Chars 10416 - 10423 [intros.] 0. secs (0.u,0.s) -Chars 10424 - 10449 [inv~H0;~eauto~with~itree.] 0.006 secs (0.006u,0.s) -Chars 10455 - 10459 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10463 - 10612 [Definition~iterp~{A}~{B}~(body...] 0. secs (0.u,0.s) -Chars 10740 - 10912 [#[global]~Instance~PureITreeSp...] 0. secs (0.u,0.s) -Chars 10916 - 11032 [#[global]~Instance~PureItreeSp...] 0. secs (0.u,0.s) -Chars 11059 - 11164 [Lemma~retpi_bindpi~:~~~forall~...] 0. secs (0.u,0.s) -Chars 11167 - 11173 [Proof.] 0. secs (0.u,0.s) -Chars 11178 - 11185 [intros.] 0. secs (0.u,0.s) -Chars 11186 - 11192 [split.] 0. secs (0.u,0.s) -Chars 11197 - 11198 [-] 0. secs (0.u,0.s) -Chars 11199 - 11203 [cbn.] 0. secs (0.u,0.s) -Chars 11204 - 11219 [unfold~_bindpi.] 0. secs (0.u,0.s) -Chars 11220 - 11234 [unfold~_retpi.] 0. secs (0.u,0.s) -Chars 11235 - 11242 [intros.] 0. secs (0.u,0.s) -Chars 11249 - 11260 [destruct~H.] 0. secs (0.u,0.s) -Chars 11267 - 11268 [+] 0. secs (0.u,0.s) -Chars 11269 - 11303 [destruct~H~as~[a0~[Hvala0~Hfa0]].] 0. secs (0.u,0.s) -Chars 11312 - 11341 [apply~eutt_inv_Ret~in~Hvala0.] 0. secs (0.u,0.s) -Chars 11342 - 11348 [subst.] 0. secs (0.u,0.s) -Chars 11349 - 11354 [auto.] 0. secs (0.u,0.s) -Chars 11361 - 11362 [+] 0. secs (0.u,0.s) -Chars 11363 - 11371 [exfalso.] 0. secs (0.u,0.s) -Chars 11372 - 11383 [destruct~H.] 0. secs (0.u,0.s) -Chars 11384 - 11403 [eapply~ret_not_div.] 0. secs (0.u,0.s) -Chars 11404 - 11410 [eauto.] 0. secs (0.u,0.s) -Chars 11415 - 11416 [-] 0. secs (0.u,0.s) -Chars 11417 - 11423 [simpl.] 0. secs (0.u,0.s) -Chars 11424 - 11461 [destruct~(f~a)~as~[fa~Hfa]~eqn...] 0. secs (0.u,0.s) -Chars 11462 - 11468 [simpl.] 0. secs (0.u,0.s) -Chars 11469 - 11476 [intros.] 0. secs (0.u,0.s) -Chars 11483 - 11488 [left.] 0. secs (0.u,0.s) -Chars 11489 - 11498 [exists~a.] 0. secs (0.u,0.s) -Chars 11499 - 11505 [split.] 0. secs (0.u,0.s) -Chars 11512 - 11513 [+] 0. secs (0.u,0.s) -Chars 11514 - 11526 [reflexivity.] 0. secs (0.u,0.s) -Chars 11533 - 11534 [+] 0. secs (0.u,0.s) -Chars 11535 - 11547 [rewrite~Heq.] 0. secs (0.u,0.s) -Chars 11549 - 11554 [auto.] 0. secs (0.u,0.s) -Chars 11557 - 11561 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11565 - 11656 [Lemma~bindpi_retpi~:~~~forall~...] 0. secs (0.u,0.s) -Chars 11659 - 11665 [Proof.] 0. secs (0.u,0.s) -Chars 11670 - 11677 [intros.] 0. secs (0.u,0.s) -Chars 11678 - 11700 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 11701 - 11707 [split.] 0. secs (0.u,0.s) -Chars 11712 - 11713 [-] 0. secs (0.u,0.s) -Chars 11714 - 11721 [intros.] 0. secs (0.u,0.s) -Chars 11722 - 11733 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 11734 - 11754 [unfold~_bindpi~in~H.] 0. secs (0.u,0.s) -Chars 11761 - 11780 [unfold~_retpi~in~H.] 0. secs (0.u,0.s) -Chars 11781 - 11792 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 11799 - 11823 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 11830 - 11837 [intros.] 0. secs (0.u,0.s) -Chars 11838 - 11850 [destruct~H0.] 0. secs (0.u,0.s) -Chars 11857 - 11858 [+] 0. secs (0.u,0.s) -Chars 11859 - 11893 [destruct~H0~as~[a~[Hvala~Hpa]].] 0. secs (0.u,0.s) -Chars 11902 - 11919 [eapply~Hp;~eauto.] 0.002 secs (0.001u,0.s) -Chars 11920 - 11941 [now~rewrite~<-~Hvala.] 0. secs (0.u,0.s) -Chars 11949 - 11950 [+] 0. secs (0.u,0.s) -Chars 11951 - 11963 [destruct~H0.] 0. secs (0.u,0.s) -Chars 11964 - 11990 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 11991 - 12008 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) -Chars 12013 - 12014 [-] 0. secs (0.u,0.s) -Chars 12015 - 12021 [simpl.] 0. secs (0.u,0.s) -Chars 12022 - 12029 [intros.] 0. secs (0.u,0.s) -Chars 12030 - 12045 [unfold~_bindpi.] 0. secs (0.u,0.s) -Chars 12052 - 12076 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 12077 - 12084 [intros.] 0. secs (0.u,0.s) -Chars 12085 - 12099 [unfold~_retpi.] 0. secs (0.u,0.s) -Chars 12106 - 12146 [specialize~(eutt_reta_or_div~i...] 0. secs (0.u,0.s) -Chars 12147 - 12160 [destruct~Hor.] 0. secs (0.u,0.s) -Chars 12167 - 12168 [+] 0. secs (0.u,0.s) -Chars 12169 - 12191 [destruct~H1~as~[a~Ha].] 0. secs (0.u,0.s) -Chars 12192 - 12197 [left.] 0. secs (0.u,0.s) -Chars 12198 - 12207 [exists~a.] 0. secs (0.u,0.s) -Chars 12208 - 12220 [split;~auto.] 0. secs (0.u,0.s) -Chars 12221 - 12238 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) -Chars 12245 - 12246 [+] 0. secs (0.u,0.s) -Chars 12247 - 12253 [right.] 0. secs (0.u,0.s) -Chars 12254 - 12266 [split;~auto.] 0. secs (0.u,0.s) -Chars 12267 - 12303 [specialize~(div_spin_eutt~H1)~...] 0. secs (0.u,0.s) -Chars 12304 - 12319 [symmetry~in~H2.] 0. secs (0.u,0.s) -Chars 12320 - 12337 [eapply~Hp;~eauto.] 0. secs (0.u,0.s) -Chars 12341 - 12345 [Qed.] 0.001 secs (0.001u,0.s) -Chars 12349 - 12568 [Lemma~bindpi_bindpi~:~~~forall...] 0. secs (0.u,0.s) -Chars 12571 - 12577 [Proof.] 0. secs (0.u,0.s) -Chars 12582 - 12589 [intros.] 0. secs (0.u,0.s) -Chars 12590 - 12611 [destruct~w~as~[w~Hw].] 0. secs (0.u,0.s) -Chars 12612 - 12618 [simpl.] 0. secs (0.u,0.s) -Chars 12619 - 12633 [split;~intros.] 0. secs (0.u,0.s) -Chars 12638 - 12639 [-] 0. secs (0.u,0.s) -Chars 12640 - 12651 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 12652 - 12676 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 12677 - 12687 [intros~t0.] 0. secs (0.u,0.s) -Chars 12688 - 12695 [intros.] 0. secs (0.u,0.s) -Chars 12696 - 12708 [destruct~H0.] 0. secs (0.u,0.s) -Chars 12715 - 12716 [+] 0. secs (0.u,0.s) -Chars 12717 - 12748 [destruct~H0~as~[a~[Hreta~Hfa]].] 0. secs (0.u,0.s) -Chars 12757 - 12762 [left.] 0. secs (0.u,0.s) -Chars 12763 - 12772 [exists~a.] 0. secs (0.u,0.s) -Chars 12773 - 12785 [split;~auto.] 0. secs (0.u,0.s) -Chars 12786 - 12815 [destruct~(f~a)~as~[wfa~Hwfa].] 0. secs (0.u,0.s) -Chars 12816 - 12827 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 12836 - 12864 [refine~(Hwfa~_~_~_~_~_~Hfa).] 0. secs (0.u,0.s) -Chars 12865 - 12875 [intros~t1.] 0. secs (0.u,0.s) -Chars 12876 - 12883 [intros.] 0. secs (0.u,0.s) -Chars 12884 - 12902 [destruct~H0;~auto.] 0. secs (0.u,0.s) -Chars 12909 - 12910 [+] 0. secs (0.u,0.s) -Chars 12911 - 12923 [destruct~H0.] 0. secs (0.u,0.s) -Chars 12924 - 12936 [destruct~H1.] 0. secs (0.u,0.s) -Chars 12945 - 12946 [*] 0. secs (0.u,0.s) -Chars 12947 - 12981 [destruct~H1~as~[b~[Hretb~Hgb]].] 0. secs (0.u,0.s) -Chars 12982 - 12990 [exfalso.] 0. secs (0.u,0.s) -Chars 12991 - 13036 [specialize~(@ret_not_div~B~voi...] 0. secs (0.u,0.s) -Chars 13047 - 13070 [rewrite~Hretb~in~Hndiv.] 0. secs (0.u,0.s) -Chars 13071 - 13083 [apply~Hndiv.] 0. secs (0.u,0.s) -Chars 13084 - 13104 [apply~spin_infinite.] 0. secs (0.u,0.s) -Chars 13113 - 13114 [*] 0. secs (0.u,0.s) -Chars 13116 - 13122 [right.] 0. secs (0.u,0.s) -Chars 13123 - 13135 [destruct~H1.] 0. secs (0.u,0.s) -Chars 13136 - 13141 [auto.] 0. secs (0.u,0.s) -Chars 13146 - 13147 [-] 0. secs (0.u,0.s) -Chars 13148 - 13159 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 13160 - 13184 [refine~(Hw~_~_~_~_~_~H).] 0. secs (0.u,0.s) -Chars 13185 - 13195 [intros~t0.] 0. secs (0.u,0.s) -Chars 13196 - 13203 [intros.] 0. secs (0.u,0.s) -Chars 13204 - 13216 [destruct~H0.] 0. secs (0.u,0.s) -Chars 13223 - 13224 [+] 0. secs (0.u,0.s) -Chars 13226 - 13258 [destruct~H0~as~[a~[Hreta~Hfa]].] 0. secs (0.u,0.s) -Chars 13259 - 13264 [left.] 0. secs (0.u,0.s) -Chars 13265 - 13274 [exists~a.] 0. secs (0.u,0.s) -Chars 13275 - 13287 [split;~auto.] 0. secs (0.u,0.s) -Chars 13297 - 13326 [destruct~(f~a)~as~[wfa~Hwfa].] 0. secs (0.u,0.s) -Chars 13327 - 13338 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 13348 - 13376 [refine~(Hwfa~_~_~_~_~_~Hfa).] 0. secs (0.u,0.s) -Chars 13377 - 13387 [intros~t1.] 0. secs (0.u,0.s) -Chars 13388 - 13395 [intros.] 0. secs (0.u,0.s) -Chars 13405 - 13423 [destruct~H0;~auto.] 0. secs (0.u,0.s) -Chars 13430 - 13431 [+] 0. secs (0.u,0.s) -Chars 13432 - 13444 [destruct~H0.] 0. secs (0.u,0.s) -Chars 13445 - 13451 [right.] 0. secs (0.u,0.s) -Chars 13452 - 13464 [split;~auto.] 0. secs (0.u,0.s) -Chars 13465 - 13471 [right.] 0. secs (0.u,0.s) -Chars 13472 - 13484 [split;~auto.] 0. secs (0.u,0.s) -Chars 13485 - 13505 [apply~spin_infinite.] 0. secs (0.u,0.s) -Chars 13508 - 13512 [Qed.] 0.004 secs (0.004u,0.s) -Chars 13516 - 13570 [Instance~PureItreeSpecLaws~:~(...] 0. secs (0.u,0.s) -Chars 13573 - 13579 [Proof.] 0. secs (0.u,0.s) -Chars 13584 - 13596 [constructor.] 0. secs (0.u,0.s) -Chars 13601 - 13602 [-] 0. secs (0.u,0.s) -Chars 13603 - 13622 [apply~retpi_bindpi.] 0. secs (0.u,0.s) -Chars 13627 - 13628 [-] 0. secs (0.u,0.s) -Chars 13629 - 13648 [apply~bindpi_retpi.] 0. secs (0.u,0.s) -Chars 13653 - 13654 [-] 0. secs (0.u,0.s) -Chars 13655 - 13675 [apply~bindpi_bindpi.] 0. secs (0.u,0.s) -Chars 13680 - 13681 [-] 0. secs (0.u,0.s) -Chars 13682 - 13689 [intros.] 0. secs (0.u,0.s) -Chars 13690 - 13694 [red.] 0. secs (0.u,0.s) -Chars 13695 - 13699 [red.] 0. secs (0.u,0.s) -Chars 13700 - 13717 [intros~mx~my~Hxy.] 0. secs (0.u,0.s) -Chars 13718 - 13722 [red.] 0. secs (0.u,0.s) -Chars 13723 - 13727 [red.] 0. secs (0.u,0.s) -Chars 13728 - 13732 [red.] 0. secs (0.u,0.s) -Chars 13733 - 13748 [intros~f~g~Hfg.] 0. secs (0.u,0.s) -Chars 13755 - 13762 [intros.] 0. secs (0.u,0.s) -Chars 13763 - 13774 [red~in~Hfg.] 0. secs (0.u,0.s) -Chars 13775 - 13800 [destruct~mx~as~[mx~Hmx].] 0. secs (0.u,0.s) -Chars 13801 - 13825 [destruct~my~as~[my~Hmy].] 0. secs (0.u,0.s) -Chars 13832 - 13836 [cbn.] 0. secs (0.u,0.s) -Chars 13837 - 13852 [unfold~_bindpi.] 0. secs (0.u,0.s) -Chars 13853 - 13869 [do~2~red~in~Hxy.] 0. secs (0.u,0.s) -Chars 13870 - 13881 [cbn~in~Hxy.] 0. secs (0.u,0.s) -Chars 13888 - 13900 [rewrite~Hxy.] 0.001 secs (0.001u,0.s) -Chars 13901 - 13912 [red~in~Hmy.] 0. secs (0.u,0.s) -Chars 13913 - 13964 [split;~intros;~try~refine~(Hmy...] 0.004 secs (0.004u,0.s) -Chars 13971 - 13972 [+] 0. secs (0.u,0.s) -Chars 13973 - 13980 [intros.] 0. secs (0.u,0.s) -Chars 13981 - 13991 [cbn~in~H0.] 0. secs (0.u,0.s) -Chars 13992 - 14011 [destruct~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 14012 - 14017 [left.] 0. secs (0.u,0.s) -Chars 14026 - 14046 [decompose~record~H0.] 0. secs (0.u,0.s) -Chars 14047 - 14056 [exists~x.] 0. secs (0.u,0.s) -Chars 14057 - 14069 [split;~auto.] 0. secs (0.u,0.s) -Chars 14070 - 14080 [apply~Hfg.] 0. secs (0.u,0.s) -Chars 14081 - 14086 [auto.] 0. secs (0.u,0.s) -Chars 14093 - 14094 [+] 0. secs (0.u,0.s) -Chars 14095 - 14102 [intros.] 0. secs (0.u,0.s) -Chars 14103 - 14113 [cbn~in~H0.] 0. secs (0.u,0.s) -Chars 14114 - 14133 [destruct~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 14134 - 14139 [left.] 0. secs (0.u,0.s) -Chars 14148 - 14168 [decompose~record~H0.] 0. secs (0.u,0.s) -Chars 14169 - 14178 [exists~x.] 0. secs (0.u,0.s) -Chars 14179 - 14191 [split;~auto.] 0. secs (0.u,0.s) -Chars 14192 - 14202 [apply~Hfg.] 0. secs (0.u,0.s) -Chars 14203 - 14208 [auto.] 0. secs (0.u,0.s) -Chars 14211 - 14215 [Qed.] 0.002 secs (0.002u,0.s) -Chars 14220 - 14362 [Instance~PureITreeOrderM~:~(Or...] 0. secs (0.u,0.s) -Chars 14366 - 14419 [Instance~PureItreeOrder~:~(Ord...] 0. secs (0.u,0.s) -Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) -Chars 14433 - 14445 [constructor.] 0. secs (0.u,0.s) -Chars 14450 - 14451 [-] 0. secs (0.u,0.s) -Chars 14452 - 14459 [intros.] 0. secs (0.u,0.s) -Chars 14460 - 14471 [repeat~red.] 0. secs (0.u,0.s) -Chars 14472 - 14479 [intros.] 0. secs (0.u,0.s) -Chars 14480 - 14491 [destruct~w.] 0. secs (0.u,0.s) -Chars 14492 - 14497 [auto.] 0. secs (0.u,0.s) -Chars 14502 - 14503 [-] 0. secs (0.u,0.s) -Chars 14504 - 14511 [intros.] 0. secs (0.u,0.s) -Chars 14512 - 14523 [repeat~red.] 0. secs (0.u,0.s) -Chars 14524 - 14544 [repeat~red~in~H,~H0.] 0. secs (0.u,0.s) -Chars 14545 - 14552 [intros.] 0. secs (0.u,0.s) -Chars 14553 - 14565 [destruct~w1.] 0. secs (0.u,0.s) -Chars 14572 - 14584 [destruct~w2.] 0. secs (0.u,0.s) -Chars 14585 - 14597 [destruct~w3.] 0. secs (0.u,0.s) -Chars 14598 - 14609 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 14610 - 14615 [auto.] 0. secs (0.u,0.s) -Chars 14620 - 14621 [-] 0. secs (0.u,0.s) -Chars 14622 - 14629 [intros.] 0. secs (0.u,0.s) -Chars 14630 - 14656 [destruct~w1~as~[w1'~Hw1'].] 0. secs (0.u,0.s) -Chars 14657 - 14683 [destruct~w2~as~[w2'~Hw2'].] 0. secs (0.u,0.s) -Chars 14684 - 14695 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 14702 - 14714 [intros~p~Hp.] 0. secs (0.u,0.s) -Chars 14715 - 14721 [simpl.] 0. secs (0.u,0.s) -Chars 14728 - 14743 [unfold~_bindpi.] 0. secs (0.u,0.s) -Chars 14744 - 14751 [intros.] 0. secs (0.u,0.s) -Chars 14753 - 14762 [eapply~H.] 0. secs (0.u,0.s) -Chars 14763 - 14769 [simpl.] 0. secs (0.u,0.s) -Chars 14776 - 14803 [refine~(Hw2'~_~_~_~_~_~H1).] 0. secs (0.u,0.s) -Chars 14804 - 14813 [intros~t.] 0. secs (0.u,0.s) -Chars 14814 - 14821 [intros.] 0. secs (0.u,0.s) -Chars 14822 - 14840 [destruct~H2;~auto.] 0. secs (0.u,0.s) -Chars 14847 - 14880 [destruct~H2~as~[a~[Hreta~Hf2a]].] 0. secs (0.u,0.s) -Chars 14881 - 14886 [left.] 0. secs (0.u,0.s) -Chars 14887 - 14910 [specialize~(H0~a~p~Hp).] 0. secs (0.u,0.s) -Chars 14911 - 14920 [exists~a.] 0. secs (0.u,0.s) -Chars 14921 - 14926 [auto.] 0. secs (0.u,0.s) -Chars 14929 - 14933 [Qed.] 0.002 secs (0.002u,0.s) -Chars 27695 - 27772 [Definition~_obsip~A~(t~:~itree...] 0. secs (0.u,0.s) -Chars 27932 - 28008 [Lemma~obsip_monot~:~forall~A~(...] 0. secs (0.u,0.s) -Chars 28011 - 28017 [Proof.] 0. secs (0.u,0.s) -Chars 28022 - 28040 [unfold~monotonici.] 0. secs (0.u,0.s) -Chars 28041 - 28048 [intros.] 0. secs (0.u,0.s) -Chars 28049 - 28068 [unfold~_obsip~in~*.] 0. secs (0.u,0.s) -Chars 28069 - 28074 [auto.] 0. secs (0.u,0.s) -Chars 28077 - 28081 [Qed.] 0. secs (0.u,0.s) -Chars 28085 - 28188 [Definition~obsip~A~(t~:~itree~...] 0. secs (0.u,0.s) -Chars 28259 - 28334 [Lemma~obsip_pres_ret~:~forall~...] 0. secs (0.u,0.s) -Chars 28337 - 28343 [Proof.] 0. secs (0.u,0.s) -Chars 28348 - 28355 [intros.] 0. secs (0.u,0.s) -Chars 28356 - 28368 [intros~p~Hp.] 0. secs (0.u,0.s) -Chars 28369 - 28373 [cbn.] 0. secs (0.u,0.s) -Chars 28374 - 28396 [unfold~_retpi,~_obsip.] 0. secs (0.u,0.s) -Chars 28397 - 28403 [tauto.] 0. secs (0.u,0.s) -Chars 28406 - 28410 [Qed.] 0. secs (0.u,0.s) -Chars 28414 - 28576 [Lemma~obsip_pres_bind~:~~~fora...] 0. secs (0.u,0.s) -Chars 28579 - 28585 [Proof.] 0. secs (0.u,0.s) -Chars 28590 - 28597 [intros.] 0. secs (0.u,0.s) -Chars 28598 - 28610 [intros~p~Hp.] 0. secs (0.u,0.s) -Chars 28611 - 28615 [cbn.] 0. secs (0.u,0.s) -Chars 28616 - 28639 [unfold~_obsip,~_bindpi.] 0. secs (0.u,0.s) -Chars 28640 - 28654 [split;~intros.] 0. secs (0.u,0.s) -Chars 28659 - 28660 [-] 0. secs (0.u,0.s) -Chars 28661 - 28700 [specialize~(eutt_reta_or_div~t...] 0. secs (0.u,0.s) -Chars 28701 - 28714 [destruct~Hor.] 0. secs (0.u,0.s) -Chars 28721 - 28722 [+] 0. secs (0.u,0.s) -Chars 28723 - 28749 [destruct~H0~as~[a~Hreta].] 0. secs (0.u,0.s) -Chars 28750 - 28755 [left.] 0. secs (0.u,0.s) -Chars 28756 - 28765 [exists~a.] 0. secs (0.u,0.s) -Chars 28766 - 28778 [split;~auto.] 0. secs (0.u,0.s) -Chars 28787 - 28804 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) -Chars 28805 - 28839 [specialize~(bind_ret_l~a~f)~as...] 0. secs (0.u,0.s) -Chars 28840 - 28854 [rewrite~<-~H1.] 0. secs (0.u,0.s) -Chars 28863 - 28881 [now~rewrite~Hreta.] 0.001 secs (0.001u,0.s) -Chars 28889 - 28890 [+] 0. secs (0.u,0.s) -Chars 28891 - 28897 [right.] 0. secs (0.u,0.s) -Chars 28898 - 28910 [split;~auto.] 0. secs (0.u,0.s) -Chars 28911 - 28937 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 28938 - 28976 [rewrite~(spin_bind~f),~<-~H0;~...] 0.004 secs (0.003u,0.s) -Chars 28981 - 28982 [-] 0. secs (0.u,0.s) -Chars 28983 - 28994 [destruct~H.] 0. secs (0.u,0.s) -Chars 29001 - 29002 [+] 0. secs (0.u,0.s) -Chars 29003 - 29035 [destruct~H~as~[a~[Hreta~Hpfa]].] 0. secs (0.u,0.s) -Chars 29036 - 29070 [specialize~(bind_ret_l~a~f)~as...] 0. secs (0.u,0.s) -Chars 29079 - 29096 [eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) -Chars 29097 - 29122 [now~rewrite~<-~Hreta,~H1.] 0.001 secs (0.001u,0.s) -Chars 29130 - 29131 [+] 0. secs (0.u,0.s) -Chars 29132 - 29143 [destruct~H.] 0. secs (0.u,0.s) -Chars 29144 - 29169 [apply~div_spin_eutt~in~H.] 0. secs (0.u,0.s) -Chars 29178 - 29202 [rewrite~H,~<-~spin_bind.] 0.002 secs (0.002u,0.s) -Chars 29203 - 29212 [apply~H0.] 0. secs (0.u,0.s) -Chars 29215 - 29219 [Qed.] 0.002 secs (0.002u,0.s) -Chars 29223 - 29324 [Lemma~obsip_eutt~:~~~forall~A~...] 0. secs (0.u,0.s) -Chars 29327 - 29333 [Proof.] 0. secs (0.u,0.s) -Chars 29338 - 29391 [split;~intros;~unfold~obsip,~_...] 0. secs (0.u,0.s) -Chars 29396 - 29397 [-] 0. secs (0.u,0.s) -Chars 29398 - 29410 [intros~p~Hp.] 0. secs (0.u,0.s) -Chars 29411 - 29417 [simpl.] 0. secs (0.u,0.s) -Chars 29418 - 29450 [split;~intros;~eapply~Hp;~eauto.] 0.001 secs (0.001u,0.s) -Chars 29457 - 29474 [now~rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 29480 - 29481 [-] 0. secs (0.u,0.s) -Chars 29482 - 29511 [set~(p~:=~fun~t~=>~t~≈~t1).] 0. secs (0.u,0.s) -Chars 29518 - 29544 [assert~(Hp~:~resp_eutt~p).] 0. secs (0.u,0.s) -Chars 29551 - 29552 [+] 0. secs (0.u,0.s) -Chars 29553 - 29566 [intros~t3~t4.] 0. secs (0.u,0.s) -Chars 29567 - 29576 [unfold~p.] 0. secs (0.u,0.s) -Chars 29577 - 29591 [split;~intros.] 0. secs (0.u,0.s) -Chars 29600 - 29601 [*] 0. secs (0.u,0.s) -Chars 29602 - 29616 [rewrite~<-~H1.] 0. secs (0.u,0.s) -Chars 29617 - 29630 [now~symmetry.] 0. secs (0.u,0.s) -Chars 29640 - 29641 [*] 0. secs (0.u,0.s) -Chars 29642 - 29657 [now~rewrite~H0.] 0. secs (0.u,0.s) -Chars 29665 - 29666 [+] 0. secs (0.u,0.s) -Chars 29667 - 29687 [specialize~(H~p~Hp).] 0. secs (0.u,0.s) -Chars 29688 - 29699 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 29700 - 29714 [unfold~p~in~H.] 0. secs (0.u,0.s) -Chars 29715 - 29724 [symmetry.] 0. secs (0.u,0.s) -Chars 29725 - 29733 [apply~H.] 0. secs (0.u,0.s) -Chars 29734 - 29746 [reflexivity.] 0. secs (0.u,0.s) -Chars 29749 - 29753 [Qed.] 0.001 secs (0.001u,0.s) -Chars 29757 - 29846 [#[global]~Instance~PureITreeEf...] 0. secs (0.u,0.s) -Chars 29850 - 29949 [#[global]~Instance~PureITreeMo...] 0. secs (0.u,0.s) -Chars 29952 - 29958 [Proof.] 0. secs (0.u,0.s) -Chars 29963 - 29975 [constructor.] 0. secs (0.u,0.s) -Chars 29980 - 29981 [-] 0. secs (0.u,0.s) -Chars 29982 - 30003 [apply~obsip_pres_ret.] 0. secs (0.u,0.s) -Chars 30008 - 30009 [-] 0. secs (0.u,0.s) -Chars 30010 - 30032 [apply~obsip_pres_bind.] 0. secs (0.u,0.s) -Chars 30035 - 30039 [Qed.] 0. secs (0.u,0.s) -Chars 30041 - 30055 [End~PureITree.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateDelaySpec.v.timing b/extra/Dijkstra/StateDelaySpec.v.timing deleted file mode 100644 index 10571be9..00000000 --- a/extra/Dijkstra/StateDelaySpec.v.timing +++ /dev/null @@ -1,310 +0,0 @@ -Chars 0 - 64 [From~ExtLib~Require~Import~Dat...] 0.098 secs (0.086u,0.01s) -Chars 66 - 96 [From~Paco~Require~Import~paco.] 0.043 secs (0.039u,0.003s) -Chars 98 - 215 [From~ITree~Require~Import~ITre...] 0.032 secs (0.027u,0.005s) -Chars 217 - 361 [From~ITree.Extra~Require~Impor...] 0.042 secs (0.038u,0.004s) -Chars 363 - 377 [Import~Monads.] 0. secs (0.u,0.s) -Chars 378 - 399 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 400 - 432 [#[local]~Open~Scope~monad_scope.] 0.02 secs (0.02u,0.s) -Chars 433 - 469 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) -Chars 615 - 638 [Section~StateDelaySpec.] 0. secs (0.u,0.s) -Chars 642 - 662 [Context~(St~:~Type).] 0. secs (0.u,0.s) -Chars 666 - 719 [Definition~StateDelaySpec~:=~S...] 0. secs (0.u,0.s) -Chars 723 - 786 [Definition~StateDelaySpecOrder...] 0. secs (0.u,0.s) -Chars 790 - 865 [Definition~StateDelaySpecOrder...] 0. secs (0.u,0.s) -Chars 869 - 926 [Definition~StateDelaySpecEq~:=...] 0. secs (0.u,0.s) -Chars 930 - 1001 [Definition~StateDelaySpecMonad...] 0. secs (0.u,0.s) -Chars 1005 - 1050 [Definition~StateDelay~:=~State...] 0. secs (0.u,0.s) -Chars 1054 - 1117 [Definition~StateDelayObs~:=~Ef...] 0. secs (0.u,0.s) -Chars 1121 - 1194 [Definition~StateDelayMonadMorp...] 0. secs (0.u,0.s) -Chars 1198 - 1270 [Definition~PrePost~A~:~Type~:=...] 0. secs (0.u,0.s) -Chars 1274 - 1416 [Definition~PrePostRef~{A~:~Typ...] 0. secs (0.u,0.s) -Chars 1420 - 1575 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) -Chars 1579 - 1671 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) -Chars 1675 - 1907 [Lemma~encode_correct~:~~~foral...] 0. secs (0.u,0.s) -Chars 1910 - 1916 [Proof.] 0. secs (0.u,0.s) -Chars 1921 - 1928 [intros.] 0. secs (0.u,0.s) -Chars 1929 - 1933 [cbn.] 0. secs (0.u,0.s) -Chars 1934 - 1967 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 1972 - 1986 [split;~intros.] 0. secs (0.u,0.s) -Chars 1991 - 1992 [-] 0. secs (0.u,0.s) -Chars 1993 - 2004 [repeat~red.] 0. secs (0.u,0.s) -Chars 2005 - 2011 [simpl.] 0. secs (0.u,0.s) -Chars 2012 - 2019 [intros.] 0. secs (0.u,0.s) -Chars 2020 - 2041 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 2042 - 2054 [simpl~in~H1.] 0. secs (0.u,0.s) -Chars 2055 - 2082 [destruct~H1~as~[Hpre~Himp].] 0. secs (0.u,0.s) -Chars 2089 - 2094 [auto.] 0. secs (0.u,0.s) -Chars 2099 - 2100 [-] 0. secs (0.u,0.s) -Chars 2101 - 2118 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 2119 - 2131 [simpl~in~H0.] 0. secs (0.u,0.s) -Chars 2138 - 2164 [set~(p~:=~exist~_~post~H).] 0. secs (0.u,0.s) -Chars 2165 - 2192 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 2199 - 2208 [apply~H0.] 0. secs (0.u,0.s) -Chars 2209 - 2214 [auto.] 0. secs (0.u,0.s) -Chars 2217 - 2221 [Qed.] 0.002 secs (0.002u,0.s) -Chars 2225 - 2282 [Definition~PrePostPair~A~:~Typ...] 0. secs (0.u,0.s) -Chars 2286 - 2485 [Definition~PrePostPairRef~{A~:...] 0. secs (0.u,0.s) -Chars 2489 - 2754 [#[program]~Definition~encode_p...] 0.002 secs (0.002u,0.s) -Chars 2757 - 2773 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 2776 - 2801 [destruct~H0~as~[H0|~H1].] 0. secs (0.u,0.s) -Chars 2804 - 2805 [-] 0. secs (0.u,0.s) -Chars 2806 - 2829 [destruct~H0~as~[Hp~Hr].] 0. secs (0.u,0.s) -Chars 2830 - 2835 [left.] 0. secs (0.u,0.s) -Chars 2836 - 2841 [auto.] 0. secs (0.u,0.s) -Chars 2844 - 2845 [-] 0. secs (0.u,0.s) -Chars 2846 - 2869 [destruct~H1~as~[Hp~Hr].] 0. secs (0.u,0.s) -Chars 2870 - 2876 [right.] 0. secs (0.u,0.s) -Chars 2877 - 2882 [auto.] 0. secs (0.u,0.s) -Chars 2885 - 2889 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2893 - 3236 [Lemma~encode_pair_correct~:~~~...] 0. secs (0.u,0.s) -Chars 3239 - 3245 [Proof.] 0. secs (0.u,0.s) -Chars 3250 - 3257 [intros.] 0. secs (0.u,0.s) -Chars 3258 - 3262 [cbn.] 0. secs (0.u,0.s) -Chars 3263 - 3296 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 3297 - 3311 [split;~intros.] 0. secs (0.u,0.s) -Chars 3316 - 3317 [-] 0. secs (0.u,0.s) -Chars 3318 - 3329 [repeat~red.] 0. secs (0.u,0.s) -Chars 3330 - 3336 [simpl.] 0. secs (0.u,0.s) -Chars 3337 - 3344 [intros.] 0. secs (0.u,0.s) -Chars 3345 - 3367 [destruct~p~as~[p~Hrp].] 0. secs (0.u,0.s) -Chars 3374 - 3392 [specialize~(H1~s).] 0. secs (0.u,0.s) -Chars 3393 - 3405 [destruct~H1.] 0. secs (0.u,0.s) -Chars 3412 - 3468 [destruct~H2~as~[[Hs~Hp]|~[Hs~H...] 0. secs (0.u,0.s) -Chars 3473 - 3474 [-] 0. secs (0.u,0.s) -Chars 3475 - 3492 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 3493 - 3504 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 3511 - 3525 [split;~intros.] 0. secs (0.u,0.s) -Chars 3532 - 3533 [+] 0. secs (0.u,0.s) -Chars 3534 - 3561 [set~(p~:=~exist~_~post0~H).] 0. secs (0.u,0.s) -Chars 3562 - 3590 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 3599 - 3608 [apply~H1.] 0. secs (0.u,0.s) -Chars 3609 - 3614 [left.] 0. secs (0.u,0.s) -Chars 3615 - 3627 [split;~auto.] 0. secs (0.u,0.s) -Chars 3634 - 3635 [+] 0. secs (0.u,0.s) -Chars 3636 - 3664 [set~(p~:=~exist~_~post1~H0).] 0. secs (0.u,0.s) -Chars 3665 - 3693 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 3702 - 3711 [apply~H1.] 0. secs (0.u,0.s) -Chars 3712 - 3718 [right.] 0. secs (0.u,0.s) -Chars 3719 - 3731 [split;~auto.] 0. secs (0.u,0.s) -Chars 3734 - 3738 [Qed.] 0.003 secs (0.003u,0.s) -Chars 3742 - 3794 [Definition~PrePostList~A~:~Typ...] 0. secs (0.u,0.s) -Chars 3798 - 3977 [Definition~PrePostListRef~{A~:...] 0. secs (0.u,0.s) -Chars 3981 - 4214 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) -Chars 4217 - 4233 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4238 - 4258 [induction~H0;~eauto.] 0. secs (0.u,0.s) -Chars 4263 - 4288 [destruct~x~as~[post~pre].] 0. secs (0.u,0.s) -Chars 4289 - 4312 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) -Chars 4313 - 4318 [left.] 0. secs (0.u,0.s) -Chars 4319 - 4324 [auto.] 0. secs (0.u,0.s) -Chars 4327 - 4331 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4336 - 4545 [Lemma~enocde_list_correct~:~~~...] 0. secs (0.u,0.s) -Chars 4548 - 4554 [Proof.] 0. secs (0.u,0.s) -Chars 4559 - 4566 [intros.] 0. secs (0.u,0.s) -Chars 4567 - 4600 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 4601 - 4615 [split;~intros.] 0. secs (0.u,0.s) -Chars 4620 - 4621 [-] 0. secs (0.u,0.s) -Chars 4622 - 4633 [repeat~red.] 0. secs (0.u,0.s) -Chars 4634 - 4641 [intros.] 0. secs (0.u,0.s) -Chars 4642 - 4663 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 4664 - 4674 [red~in~H0.] 0. secs (0.u,0.s) -Chars 4681 - 4710 [specialize~(H0~s)~as~Hrefine.] 0. secs (0.u,0.s) -Chars 4711 - 4736 [unfold~encode_list~in~H1.] 0. secs (0.u,0.s) -Chars 4737 - 4748 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4755 - 4769 [induction~ppl.] 0. secs (0.u,0.s) -Chars 4776 - 4777 [+] 0. secs (0.u,0.s) -Chars 4778 - 4791 [inversion~H1.] 0. secs (0.u,0.s) -Chars 4798 - 4799 [+] 0. secs (0.u,0.s) -Chars 4800 - 4825 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) -Chars 4834 - 4854 [inversion~H1;~subst.] 0. secs (0.u,0.s) -Chars 4863 - 4864 [*] 0. secs (0.u,0.s) -Chars 4865 - 4877 [destruct~H3.] 0. secs (0.u,0.s) -Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) -Chars 4894 - 4932 [assert~(pre~s~->~post~(m~s));~...] 0. secs (0.u,0.s) -Chars 4943 - 4950 [intros.] 0. secs (0.u,0.s) -Chars 4951 - 4982 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) -Chars 4991 - 4992 [*] 0. secs (0.u,0.s) -Chars 4993 - 5011 [apply~IHppl;~auto.] 0. secs (0.u,0.s) -Chars 5022 - 5024 [--] 0. secs (0.u,0.s) -Chars 5025 - 5043 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) -Chars 5054 - 5056 [--] 0. secs (0.u,0.s) -Chars 5057 - 5064 [intros.] 0. secs (0.u,0.s) -Chars 5065 - 5084 [specialize~(H0~s0).] 0. secs (0.u,0.s) -Chars 5085 - 5098 [inversion~H0.] 0. secs (0.u,0.s) -Chars 5099 - 5104 [auto.] 0. secs (0.u,0.s) -Chars 5115 - 5117 [--] 0. secs (0.u,0.s) -Chars 5118 - 5136 [specialize~(H0~s).] 0. secs (0.u,0.s) -Chars 5137 - 5150 [inversion~H0.] 0. secs (0.u,0.s) -Chars 5151 - 5156 [auto.] 0. secs (0.u,0.s) -Chars 5161 - 5162 [-] 0. secs (0.u,0.s) -Chars 5163 - 5188 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) -Chars 5189 - 5200 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5201 - 5212 [repeat~red.] 0. secs (0.u,0.s) -Chars 5213 - 5230 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 5231 - 5242 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5243 - 5250 [intros.] 0. secs (0.u,0.s) -Chars 5257 - 5277 [induction~ppl;~auto.] 0. secs (0.u,0.s) -Chars 5284 - 5309 [destruct~a~as~[post~pre].] 0. secs (0.u,0.s) -Chars 5310 - 5336 [specialize~(H0~s)~as~Henc.] 0. secs (0.u,0.s) -Chars 5343 - 5375 [assert~(Heutt~:~resp_eutt~post).] 0. secs (0.u,0.s) -Chars 5382 - 5383 [{] 0. secs (0.u,0.s) -Chars 5384 - 5396 [inversion~H.] 0.003 secs (0.003u,0.s) -Chars 5397 - 5402 [auto.] 0. secs (0.u,0.s) -Chars 5403 - 5404 [}] 0. secs (0.u,0.s) -Chars 5411 - 5441 [set~(p~:=~exist~_~post~Heutt).] 0. secs (0.u,0.s) -Chars 5442 - 5471 [specialize~(Henc~p)~as~Hencp.] 0. secs (0.u,0.s) -Chars 5478 - 5498 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 5505 - 5506 [+] 0. secs (0.u,0.s) -Chars 5507 - 5535 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 5536 - 5548 [apply~Hencp.] 0. secs (0.u,0.s) -Chars 5557 - 5562 [left.] 0. secs (0.u,0.s) -Chars 5563 - 5575 [split;~auto.] 0. secs (0.u,0.s) -Chars 5582 - 5583 [+] 0. secs (0.u,0.s) -Chars 5584 - 5602 [apply~IHppl;~auto.] 0. secs (0.u,0.s) -Chars 5611 - 5612 [*] 0. secs (0.u,0.s) -Chars 5613 - 5625 [inversion~H.] 0.001 secs (0.001u,0.s) -Chars 5626 - 5631 [auto.] 0. secs (0.u,0.s) -Chars 5640 - 5641 [*] 0. secs (0.u,0.s) -Chars 5642 - 5654 [clear~IHppl.] 0. secs (0.u,0.s) -Chars 5655 - 5662 [intros.] 0. secs (0.u,0.s) -Chars 5663 - 5672 [apply~H0.] 0. secs (0.u,0.s) -Chars 5673 - 5679 [eauto.] 0. secs (0.u,0.s) -Chars 5682 - 5686 [Qed.] 0.008 secs (0.008u,0.s) -Chars 5690 - 5770 [Definition~DynPrePost~A~:~Type...] 0. secs (0.u,0.s) -Chars 5774 - 5916 [Definition~DynPrePostRef~{A~:~...] 0. secs (0.u,0.s) -Chars 5920 - 6081 [#[program]~Definition~encode_d...] 0.002 secs (0.002u,0.s) -Chars 6085 - 6320 [Lemma~encode_dyn_correct~:~~~f...] 0. secs (0.u,0.s) -Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) -Chars 6338 - 6345 [intros.] 0. secs (0.u,0.s) -Chars 6346 - 6379 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 6380 - 6394 [split;~intros.] 0. secs (0.u,0.s) -Chars 6401 - 6402 [-] 0. secs (0.u,0.s) -Chars 6403 - 6414 [repeat~red.] 0. secs (0.u,0.s) -Chars 6415 - 6425 [red~in~H0.] 0. secs (0.u,0.s) -Chars 6426 - 6433 [intros.] 0. secs (0.u,0.s) -Chars 6434 - 6455 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 6456 - 6467 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6476 - 6499 [destruct~H1~as~[Hs~Hr].] 0. secs (0.u,0.s) -Chars 6500 - 6505 [auto.] 0. secs (0.u,0.s) -Chars 6512 - 6513 [-] 0. secs (0.u,0.s) -Chars 6514 - 6531 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 6532 - 6536 [red.] 0. secs (0.u,0.s) -Chars 6537 - 6544 [intros.] 0. secs (0.u,0.s) -Chars 6553 - 6588 [set~(p~:=~exist~_~(post~s)~(H~...] 0. secs (0.u,0.s) -Chars 6589 - 6609 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 6618 - 6633 [unfold~p~in~H0.] 0. secs (0.u,0.s) -Chars 6634 - 6645 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6646 - 6651 [auto.] 0. secs (0.u,0.s) -Chars 6656 - 6660 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6664 - 6807 [Definition~DynPrePostListRef~{...] 0. secs (0.u,0.s) -Chars 6811 - 7025 [#[program]~Definition~encode_l...] 0.001 secs (0.001u,0.s) -Chars 7028 - 7044 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 7049 - 7069 [induction~H0;~eauto.] 0. secs (0.u,0.s) -Chars 7070 - 7075 [left.] 0. secs (0.u,0.s) -Chars 7076 - 7101 [destruct~x~as~[pre~post].] 0. secs (0.u,0.s) -Chars 7102 - 7125 [destruct~H0~as~[Hs~Hr].] 0. secs (0.u,0.s) -Chars 7130 - 7142 [split;~auto.] 0. secs (0.u,0.s) -Chars 7145 - 7149 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7153 - 7392 [Lemma~enocde_list_dyn_correct~...] 0. secs (0.u,0.s) -Chars 7395 - 7401 [Proof.] 0. secs (0.u,0.s) -Chars 7406 - 7413 [intros.] 0. secs (0.u,0.s) -Chars 7414 - 7447 [unfold~verify_cond,~DijkstraProp.] 0. secs (0.u,0.s) -Chars 7448 - 7462 [split;~intros.] 0. secs (0.u,0.s) -Chars 7467 - 7468 [-] 0. secs (0.u,0.s) -Chars 7469 - 7480 [repeat~red.] 0. secs (0.u,0.s) -Chars 7481 - 7488 [intros.] 0. secs (0.u,0.s) -Chars 7489 - 7510 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 7511 - 7523 [simpl~in~H1.] 0. secs (0.u,0.s) -Chars 7524 - 7534 [red~in~H0.] 0. secs (0.u,0.s) -Chars 7535 - 7558 [rename~H0~into~Hrefine.] 0. secs (0.u,0.s) -Chars 7565 - 7597 [unfold~DynPrePostRef~in~Hrefine.] 0. secs (0.u,0.s) -Chars 7604 - 7618 [induction~ppl.] 0. secs (0.u,0.s) -Chars 7625 - 7626 [+] 0. secs (0.u,0.s) -Chars 7627 - 7640 [inversion~H1.] 0. secs (0.u,0.s) -Chars 7647 - 7648 [+] 0. secs (0.u,0.s) -Chars 7649 - 7674 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) -Chars 7683 - 7703 [inversion~H1;~subst.] 0. secs (0.u,0.s) -Chars 7712 - 7713 [*] 0. secs (0.u,0.s) -Chars 7714 - 7726 [destruct~H2.] 0. secs (0.u,0.s) -Chars 7737 - 7777 [assert~(pre~s~->~post~s~(m~s))...] 0. secs (0.u,0.s) -Chars 7788 - 7795 [intros.] 0. secs (0.u,0.s) -Chars 7796 - 7827 [inversion~Hrefine;~subst;~auto.] 0. secs (0.u,0.s) -Chars 7836 - 7837 [*] 0. secs (0.u,0.s) -Chars 7838 - 7856 [apply~IHppl;~auto.] 0. secs (0.u,0.s) -Chars 7867 - 7869 [--] 0. secs (0.u,0.s) -Chars 7870 - 7888 [inversion~H;~auto.] 0.001 secs (0.001u,0.s) -Chars 7899 - 7901 [--] 0. secs (0.u,0.s) -Chars 7902 - 7909 [intros.] 0. secs (0.u,0.s) -Chars 7910 - 7934 [inversion~Hrefine;~auto.] 0. secs (0.u,0.s) -Chars 7939 - 7940 [-] 0. secs (0.u,0.s) -Chars 7941 - 7966 [unfold~encode_list~in~H0.] 0. secs (0.u,0.s) -Chars 7967 - 7978 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7979 - 7990 [repeat~red.] 0. secs (0.u,0.s) -Chars 7991 - 8008 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 8009 - 8020 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 8021 - 8028 [intros.] 0. secs (0.u,0.s) -Chars 8035 - 8055 [induction~ppl;~auto.] 0. secs (0.u,0.s) -Chars 8062 - 8087 [destruct~a~as~[pre~post].] 0. secs (0.u,0.s) -Chars 8094 - 8140 [assert~(Heutt~:~forall~s,~resp...] 0. secs (0.u,0.s) -Chars 8147 - 8148 [{] 0. secs (0.u,0.s) -Chars 8149 - 8161 [inversion~H.] 0.001 secs (0.001u,0.s) -Chars 8162 - 8167 [auto.] 0. secs (0.u,0.s) -Chars 8168 - 8169 [}] 0. secs (0.u,0.s) -Chars 8176 - 8196 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 8203 - 8204 [+] 0. secs (0.u,0.s) -Chars 8205 - 8209 [red.] 0. secs (0.u,0.s) -Chars 8210 - 8217 [intros.] 0. secs (0.u,0.s) -Chars 8218 - 8256 [set~(p~:=~exist~_~(post~s)~(He...] 0. secs (0.u,0.s) -Chars 8265 - 8285 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 8286 - 8313 [enough~(m~s~∈~p);~auto.] 0. secs (0.u,0.s) -Chars 8314 - 8323 [apply~H0.] 0. secs (0.u,0.s) -Chars 8332 - 8337 [left.] 0. secs (0.u,0.s) -Chars 8338 - 8350 [split;~auto.] 0. secs (0.u,0.s) -Chars 8357 - 8358 [+] 0. secs (0.u,0.s) -Chars 8359 - 8377 [apply~IHppl;~auto.] 0. secs (0.u,0.s) -Chars 8386 - 8387 [*] 0. secs (0.u,0.s) -Chars 8388 - 8400 [inversion~H.] 0.001 secs (0.001u,0.s) -Chars 8401 - 8406 [auto.] 0. secs (0.u,0.s) -Chars 8415 - 8416 [*] 0. secs (0.u,0.s) -Chars 8417 - 8429 [clear~IHppl.] 0. secs (0.u,0.s) -Chars 8430 - 8437 [intros.] 0. secs (0.u,0.s) -Chars 8448 - 8468 [specialize~(H0~s~p).] 0. secs (0.u,0.s) -Chars 8469 - 8478 [apply~H0.] 0. secs (0.u,0.s) -Chars 8479 - 8485 [eauto.] 0. secs (0.u,0.s) -Chars 8488 - 8492 [Qed.] 0.011 secs (0.01u,0.s) -Chars 8496 - 8990 [Lemma~combine_prepost_aux~:~~~...] 0.001 secs (0.001u,0.s) -Chars 8993 - 8999 [Proof.] 0. secs (0.u,0.s) -Chars 9004 - 9011 [intros.] 0. secs (0.u,0.s) -Chars 9012 - 9028 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 9029 - 9040 [repeat~red.] 0. secs (0.u,0.s) -Chars 9041 - 9048 [intros.] 0. secs (0.u,0.s) -Chars 9053 - 9074 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 9075 - 9086 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 9091 - 9103 [destruct~H3.] 0. secs (0.u,0.s) -Chars 9108 - 9155 [destruct~(eutt_reta_or_div~(m~...] 0. secs (0.u,0.s) -Chars 9160 - 9161 [-] 0. secs (0.u,0.s) -Chars 9162 - 9183 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) -Chars 9190 - 9200 [cbn~in~H5.] 0. secs (0.u,0.s) -Chars 9201 - 9232 [rewrite~<-~H5,~bind_ret_l;~cbn.] 0.004 secs (0.004u,0.s) -Chars 9233 - 9246 [apply~H4,~H0.] 0. secs (0.u,0.s) -Chars 9247 - 9258 [rewrite~H5.] 0.001 secs (0.001u,0.s) -Chars 9265 - 9302 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) -Chars 9307 - 9308 [-] 0. secs (0.u,0.s) -Chars 9309 - 9335 [apply~div_spin_eutt~in~H5.] 0. secs (0.u,0.s) -Chars 9342 - 9367 [rewrite~H5,~<-~spin_bind.] 0.003 secs (0.003u,0.s) -Chars 9368 - 9381 [apply~H4,~H1.] 0. secs (0.u,0.s) -Chars 9382 - 9396 [rewrite~<-~H5.] 0.001 secs (0.001u,0.s) -Chars 9397 - 9434 [apply~(H~s~(exist~_~post1~H2))...] 0. secs (0.u,0.s) -Chars 9437 - 9441 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9445 - 9944 [Lemma~combine_prepost~:~~~fora...] 0.001 secs (0.001u,0.s) -Chars 9947 - 9953 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9965 [intros.] 0. secs (0.u,0.s) -Chars 9970 - 10004 [eapply~combine_prepost_aux;~ea...] 0. secs (0.u,0.s) -Chars 10009 - 10016 [intros.] 0. secs (0.u,0.s) -Chars 10021 - 10047 [specialize~(H1~a)~as~Hpp2.] 0. secs (0.u,0.s) -Chars 10048 - 10067 [repeat~red~in~Hpp2.] 0.002 secs (0.002u,0.s) -Chars 10072 - 10112 [specialize~(Hpp2~s~(exist~_~po...] 0. secs (0.u,0.s) -Chars 10113 - 10124 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 10129 - 10140 [apply~Hpp2.] 0. secs (0.u,0.s) -Chars 10141 - 10154 [split;~eauto.] 0. secs (0.u,0.s) -Chars 10157 - 10161 [Qed.] 0. secs (0.u,0.s) -Chars 10163 - 10182 [End~StateDelaySpec.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateIOTrace.v.timing b/extra/Dijkstra/StateIOTrace.v.timing deleted file mode 100644 index 07172a1c..00000000 --- a/extra/Dijkstra/StateIOTrace.v.timing +++ /dev/null @@ -1,284 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 89 [From~Stdlib~Require~Import~Ari...] 0.098 secs (0.087u,0.009s) -Chars 91 - 198 [From~ExtLib~Require~Import~Dat...] 0.006 secs (0.003u,0.001s) -Chars 200 - 342 [From~ITree~Require~Import~Axio...] 0.081 secs (0.074u,0.007s) -Chars 344 - 558 [From~ITree.Extra~Require~Impor...] 0.059 secs (0.054u,0.005s) -Chars 560 - 574 [Import~Monads.] 0. secs (0.u,0.s) -Chars 575 - 596 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 597 - 629 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 631 - 666 [Definition~env~:=~alist~string...] 0. secs (0.u,0.s) -Chars 668 - 774 [Variant~StateE~:~Type~->~Type~...] 0. secs (0.u,0.s) -Chars 776 - 851 [Variant~IO~:~Type~->~Type~:=~~...] 0. secs (0.u,0.s) -Chars 852 - 903 [Notation~stateiotree~A:=~(itre...] 0. secs (0.u,0.s) -Chars 905 - 976 [Definition~StateIOSpec~:~Type~...] 0. secs (0.u,0.s) -Chars 978 - 1040 [Definition~SIOSpecOrder~:=~Sta...] 0. secs (0.u,0.s) -Chars 1042 - 1114 [Definition~SIOSpecOrderLaws~:=...] 0. secs (0.u,0.s) -Chars 1116 - 1173 [Definition~SIOSpecEq~:=~StateS...] 0. secs (0.u,0.s) -Chars 1175 - 1242 [Definition~SIOObs~:=~EffectObs...] 0. secs (0.u,0.s) -Chars 1244 - 1315 [Definition~SIOMorph~:=~MonadMo...] 0. secs (0.u,0.s) -Chars 1317 - 1412 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) -Chars 1461 - 1523 [Definition~StateIOSpecPre~:~Ty...] 0. secs (0.u,0.s) -Chars 1577 - 1653 [Definition~StateIOSpecPost~(A~...] 0. secs (0.u,0.s) -Chars 1655 - 1813 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) -Chars 1816 - 1835 [Section~PrintMults.] 0. secs (0.u,0.s) -Chars 1838 - 1860 [Variables~(X~Y~:~string).] 0. secs (0.u,0.s) -Chars 1863 - 1886 [Context~(HXY~:~X~<>~Y).] 0. secs (0.u,0.s) -Chars 1934 - 2050 [Variant~write_next_mult~(n~:~n...] 0. secs (0.u,0.s) -Chars 2054 - 2243 [Definition~wnm_ev~(next~:~nat)...] 0. secs (0.u,0.s) -Chars 2247 - 2347 [Variant~writes_n~(n~:~nat)~:~f...] 0. secs (0.u,0.s) -Chars 2351 - 2494 [Definition~mults_n~{R~:~Type}~...] 0. secs (0.u,0.s) -Chars 2498 - 2640 [CoFixpoint~mults_of_n_from_m~{...] 0. secs (0.u,0.s) -Chars 2644 - 2730 [Definition~mults_of_n~{R~:~Typ...] 0. secs (0.u,0.s) -Chars 2734 - 2837 [Definition~print_mults_pre~:~S...] 0. secs (0.u,0.s) -Chars 2893 - 3040 [Definition~print_mults_post~:~...] 0. secs (0.u,0.s) -Chars 3044 - 3304 [Definition~print_mults~:~state...] 0.004 secs (0.004u,0.s) -Chars 3309 - 3388 [Definition~add~(V~:~string)~(v...] 0. secs (0.u,0.s) -Chars 3392 - 3705 [Definition~handleIOStateE~(A~:...] 0.001 secs (0.001u,0.s) -Chars 3709 - 3767 [Ltac~unf_res~:=~unfold~resum,~...] 0. secs (0.u,0.s) -Chars 3771 - 3876 [Lemma~lookup_eq~:~~~forall~(s~...] 0. secs (0.u,0.s) -Chars 3879 - 3885 [Proof.] 0. secs (0.u,0.s) -Chars 3890 - 3897 [intros.] 0. secs (0.u,0.s) -Chars 3898 - 3941 [assert~(Maps.mapsto~x~v~(Maps....] 0. secs (0.u,0.s) -Chars 3946 - 3947 [{] 0. secs (0.u,0.s) -Chars 3948 - 3990 [apply~Maps.mapsto_add_eq;~try~...] 0. secs (0.u,0.s) -Chars 3991 - 3992 [}] 0. secs (0.u,0.s) -Chars 3997 - 4028 [eapply~Maps.mapsto_lookup~in~H.] 0. secs (0.u,0.s) -Chars 4029 - 4051 [unfold~lookup_default.] 0. secs (0.u,0.s) -Chars 4052 - 4062 [rewrite~H.] 0. secs (0.u,0.s) -Chars 4063 - 4068 [auto.] 0. secs (0.u,0.s) -Chars 4071 - 4075 [Qed.] 0. secs (0.u,0.s) -Chars 4079 - 4193 [Lemma~lookup_nin~:~~~forall~(x...] 0. secs (0.u,0.s) -Chars 4196 - 4202 [Proof.] 0. secs (0.u,0.s) -Chars 4207 - 4214 [intros.] 0. secs (0.u,0.s) -Chars 4215 - 4224 [red~in~s.] 0. secs (0.u,0.s) -Chars 4225 - 4234 [red~in~s.] 0. secs (0.u,0.s) -Chars 4235 - 4258 [generalize~dependent~x.] 0.006 secs (0.006u,0.s) -Chars 4259 - 4285 [induction~s;~intros;~auto.] 0. secs (0.u,0.s) -Chars 4290 - 4291 [-] 0. secs (0.u,0.s) -Chars 4292 - 4296 [cbn.] 0. secs (0.u,0.s) -Chars 4297 - 4317 [destruct~a~as~[y~v].] 0. secs (0.u,0.s) -Chars 4318 - 4359 [destruct~(Strings.String.strin...] 0. secs (0.u,0.s) -Chars 4366 - 4367 [+] 0. secs (0.u,0.s) -Chars 4368 - 4374 [subst.] 0. secs (0.u,0.s) -Chars 4375 - 4383 [exfalso.] 0. secs (0.u,0.s) -Chars 4384 - 4393 [eapply~H.] 0. secs (0.u,0.s) -Chars 4394 - 4398 [red.] 0. secs (0.u,0.s) -Chars 4399 - 4403 [cbn.] 0. secs (0.u,0.s) -Chars 4404 - 4408 [red.] 0. secs (0.u,0.s) -Chars 4409 - 4413 [cbn.] 0. secs (0.u,0.s) -Chars 4422 - 4459 [rewrite~RelDec.rel_dec_eq_true...] 0. secs (0.u,0.s) -Chars 4460 - 4488 [apply~RelDec_Correct_string.] 0. secs (0.u,0.s) -Chars 4495 - 4496 [+] 0. secs (0.u,0.s) -Chars 4497 - 4569 [rewrite~RelDec.rel_dec_neq_fal...] 0. secs (0.u,0.s) -Chars 4578 - 4604 [unfold~Maps.lookup~in~IHs.] 0. secs (0.u,0.s) -Chars 4605 - 4614 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 4615 - 4631 [apply~IHs;~auto.] 0. secs (0.u,0.s) -Chars 4632 - 4639 [intros.] 0. secs (0.u,0.s) -Chars 4648 - 4662 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 4663 - 4672 [eapply~H.] 0. secs (0.u,0.s) -Chars 4673 - 4677 [red.] 0. secs (0.u,0.s) -Chars 4678 - 4682 [cbn.] 0. secs (0.u,0.s) -Chars 4691 - 4764 [rewrite~RelDec.rel_dec_neq_fal...] 0. secs (0.u,0.s) -Chars 4767 - 4771 [Qed.] 0. secs (0.u,0.s) -Chars 4775 - 4965 [Lemma~lookup_neq~:~~~forall~(s...] 0. secs (0.u,0.s) -Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) -Chars 4980 - 4987 [intros.] 0. secs (0.u,0.s) -Chars 4992 - 5043 [destruct~(classic~(exists~v',~...] 0. secs (0.u,0.s) -Chars 5048 - 5049 [-] 0. secs (0.u,0.s) -Chars 5050 - 5074 [destruct~H0~as~[v'~Hv'].] 0. secs (0.u,0.s) -Chars 5081 - 5124 [assert~(Maps.mapsto~x~v'~(Maps...] 0. secs (0.u,0.s) -Chars 5131 - 5132 [{] 0. secs (0.u,0.s) -Chars 5141 - 5182 [eapply~Maps.mapsto_add_neq~in~...] 0. secs (0.u,0.s) -Chars 5189 - 5190 [}] 0. secs (0.u,0.s) -Chars 5197 - 5228 [apply~Maps.mapsto_lookup~in~H0.] 0. secs (0.u,0.s) -Chars 5229 - 5261 [apply~Maps.mapsto_lookup~in~Hv'.] 0. secs (0.u,0.s) -Chars 5262 - 5284 [unfold~lookup_default.] 0. secs (0.u,0.s) -Chars 5291 - 5303 [rewrite~Hv'.] 0. secs (0.u,0.s) -Chars 5304 - 5315 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 5316 - 5321 [auto.] 0. secs (0.u,0.s) -Chars 5326 - 5327 [-] 0. secs (0.u,0.s) -Chars 5328 - 5368 [assert~(forall~v',~~~Maps.maps...] 0. secs (0.u,0.s) -Chars 5375 - 5376 [{] 0. secs (0.u,0.s) -Chars 5377 - 5390 [intros~v'~Hc.] 0. secs (0.u,0.s) -Chars 5391 - 5400 [apply~H0.] 0. secs (0.u,0.s) -Chars 5401 - 5411 [exists~v'.] 0. secs (0.u,0.s) -Chars 5412 - 5417 [auto.] 0. secs (0.u,0.s) -Chars 5418 - 5419 [}] 0. secs (0.u,0.s) -Chars 5426 - 5435 [clear~H0.] 0. secs (0.u,0.s) -Chars 5436 - 5465 [apply~lookup_nin~in~H1~as~Hs.] 0. secs (0.u,0.s) -Chars 5466 - 5488 [unfold~lookup_default.] 0. secs (0.u,0.s) -Chars 5495 - 5506 [rewrite~Hs.] 0. secs (0.u,0.s) -Chars 5513 - 5568 [assert~(forall~v',~~~Maps.maps...] 0. secs (0.u,0.s) -Chars 5575 - 5576 [{] 0. secs (0.u,0.s) -Chars 5585 - 5603 [intros~v'~Hcontra.] 0. secs (0.u,0.s) -Chars 5604 - 5647 [apply~Maps.mapsto_add_neq~in~H...] 0. secs (0.u,0.s) -Chars 5656 - 5673 [eapply~H1;~eauto.] 0. secs (0.u,0.s) -Chars 5680 - 5681 [}] 0. secs (0.u,0.s) -Chars 5688 - 5718 [apply~lookup_nin~in~H0~as~Hs'.] 0. secs (0.u,0.s) -Chars 5719 - 5731 [rewrite~Hs'.] 0. secs (0.u,0.s) -Chars 5732 - 5737 [auto.] 0. secs (0.u,0.s) -Chars 5740 - 5744 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5748 - 5884 [Ltac~~prove_arg~H~:=~~~let~H'~...] 0. secs (0.u,0.s) -Chars 5888 - 6018 [Lemma~print_mults_sats_spec~:~...] 0. secs (0.u,0.s) -Chars 6021 - 6027 [Proof.] 0. secs (0.u,0.s) -Chars 6032 - 6043 [repeat~red.] 0. secs (0.u,0.s) -Chars 6044 - 6050 [simpl.] 0. secs (0.u,0.s) -Chars 6051 - 6088 [intros~s~log~[p~Hp]~[Hpre~H']~...] 0. secs (0.u,0.s) -Chars 6089 - 6100 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6105 - 6114 [apply~H'.] 0. secs (0.u,0.s) -Chars 6115 - 6124 [clear~H'.] 0. secs (0.u,0.s) -Chars 6125 - 6156 [unfold~print_mults_pre~in~Hpre.] 0. secs (0.u,0.s) -Chars 6161 - 6190 [destruct~Hpre~as~[Hlog~Henv].] 0. secs (0.u,0.s) -Chars 6191 - 6197 [subst.] 0. secs (0.u,0.s) -Chars 6202 - 6226 [unfold~print_mults_post.] 0. secs (0.u,0.s) -Chars 6227 - 6253 [setoid_rewrite~append_nil.] 0.018 secs (0.018u,0.s) -Chars 6258 - 6285 [unfold~print_mults~in~Href.] 0. secs (0.u,0.s) -Chars 6286 - 6327 [setoid_rewrite~interp_state_bi...] 0.008 secs (0.008u,0.s) -Chars 6332 - 6376 [setoid_rewrite~interp_state_tr...] 0.39 secs (0.389u,0.001s) -Chars 6381 - 6413 [setoid_rewrite~bind_vis~in~Href.] 0.005 secs (0.005u,0.s) -Chars 6418 - 6457 [apply~trace_refine_vis~in~Href...] 0. secs (0.u,0.s) -Chars 6458 - 6470 [basic_solve.] 0. secs (0.u,0.s) -Chars 6475 - 6496 [rewrite~Hbhd~in~Href.] 0.005 secs (0.005u,0.s) -Chars 6497 - 6517 [setoid_rewrite~Hbhd.] 0.007 secs (0.007u,0.s) -Chars 6522 - 6534 [destruct~e0.] 0.001 secs (0.001u,0.s) -Chars 6539 - 6618 [2:~destruct~ev;~assert~void;~t...] 0.001 secs (0.001u,0.s) -Chars 6623 - 6640 [assert~(A~=~nat).] 0. secs (0.u,0.s) -Chars 6645 - 6646 [{] 0. secs (0.u,0.s) -Chars 6653 - 6671 [destruct~ev;~auto.] 0.001 secs (0.001u,0.s) -Chars 6672 - 6681 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6682 - 6692 [sinv~Href.] 0.017 secs (0.017u,0.s) -Chars 6693 - 6713 [ddestruction;~subst.] 0.004 secs (0.004u,0.s) -Chars 6720 - 6729 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6730 - 6749 [inversion~H1;~auto.] 0.001 secs (0.001u,0.s) -Chars 6754 - 6755 [}] 0. secs (0.u,0.s) -Chars 6760 - 6766 [subst.] 0. secs (0.u,0.s) -Chars 6767 - 6785 [rename~ans~into~n.] 0. secs (0.u,0.s) -Chars 6786 - 6795 [exists~n.] 0. secs (0.u,0.s) -Chars 6800 - 6867 [match~type~of~Href~with~|~_~⊑~...] 0.001 secs (0.001u,0.s) -Chars 6872 - 6882 [exists~k0.] 0. secs (0.u,0.s) -Chars 6883 - 6889 [split.] 0. secs (0.u,0.s) -Chars 6894 - 6895 [{] 0. secs (0.u,0.s) -Chars 6902 - 6916 [simpl~in~Href.] 0. secs (0.u,0.s) -Chars 6917 - 6928 [clear~Henv.] 0. secs (0.u,0.s) -Chars 6929 - 6937 [unf_res.] 0. secs (0.u,0.s) -Chars 6944 - 6954 [sinv~Href.] 0.014 secs (0.014u,0.s) -Chars 6955 - 6975 [ddestruction;~subst.] 0.005 secs (0.005u,0.s) -Chars 6976 - 6989 [inversion~H1.] 0.001 secs (0.001u,0.s) -Chars 6990 - 7010 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 7011 - 7023 [reflexivity.] 0. secs (0.u,0.s) -Chars 7028 - 7029 [}] 0. secs (0.u,0.s) -Chars 7034 - 7052 [clear~Hp~p~Hbhd~b.] 0. secs (0.u,0.s) -Chars 7057 - 7081 [assert~(k0~tt~⊑~kp~n).] 0. secs (0.u,0.s) -Chars 7086 - 7087 [{] 0. secs (0.u,0.s) -Chars 7088 - 7100 [clear~Heqkp.] 0. secs (0.u,0.s) -Chars 7101 - 7111 [sinv~Href.] 0.009 secs (0.009u,0.s) -Chars 7112 - 7132 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 7139 - 7181 [unfold~resum,~ReSum_id,~id_,~I...] 0. secs (0.u,0.s) -Chars 7182 - 7195 [inversion~H1.] 0.003 secs (0.003u,0.s) -Chars 7196 - 7216 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) -Chars 7223 - 7298 [assert~(RAnsRef~IO~unit~nat~(e...] 0. secs (0.u,0.s) -Chars 7305 - 7319 [apply~H6~in~H.] 0. secs (0.u,0.s) -Chars 7321 - 7326 [auto.] 0. secs (0.u,0.s) -Chars 7331 - 7332 [}] 0. secs (0.u,0.s) -Chars 7337 - 7351 [clear~Href~ev.] 0. secs (0.u,0.s) -Chars 7352 - 7358 [subst.] 0. secs (0.u,0.s) -Chars 7359 - 7383 [rewrite~bind_ret_l~in~H.] 0.005 secs (0.005u,0.s) -Chars 7384 - 7395 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7396 - 7427 [rewrite~interp_state_bind~in~H.] 0.004 secs (0.004u,0.s) -Chars 7432 - 7466 [rewrite~interp_state_trigger~i...] 0.008 secs (0.008u,0.s) -Chars 7467 - 7478 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7479 - 7503 [rewrite~bind_ret_l~in~H.] 0.005 secs (0.005u,0.s) -Chars 7508 - 7519 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7524 - 7582 [specialize~(@interp_state_iter...] 0. secs (0.u,0.s) -Chars 7587 - 7612 [unfold~state_eq~in~Hiter.] 0. secs (0.u,0.s) -Chars 7613 - 7632 [rewrite~Hiter~in~H.] 0.004 secs (0.004u,0.s) -Chars 7633 - 7645 [clear~Hiter.] 0. secs (0.u,0.s) -Chars 7651 - 7683 [remember~(Maps.add~X~n~s)~as~si.] 0.001 secs (0.001u,0.s) -Chars 7688 - 7757 [assert~(si~=~alist_add~RelDec_...] 0. secs (0.u,0.s) -Chars 7762 - 7781 [rewrite~<-~H0~in~H.] 0. secs (0.u,0.s) -Chars 7782 - 7791 [clear~H0.] 0. secs (0.u,0.s) -Chars 7796 - 7814 [unfold~mults_of_n.] 0. secs (0.u,0.s) -Chars 7819 - 7847 [remember~0~as~next_to_write.] 0. secs (0.u,0.s) -Chars 7896 - 7943 [assert~(lookup_default~Y~0~si~...] 0. secs (0.u,0.s) -Chars 7948 - 7949 [{] 0. secs (0.u,0.s) -Chars 7950 - 7956 [subst.] 0. secs (0.u,0.s) -Chars 7957 - 7982 [rewrite~lookup_neq;~auto.] 0. secs (0.u,0.s) -Chars 7983 - 7984 [}] 0. secs (0.u,0.s) -Chars 7989 - 8023 [assert~(lookup_default~X~0~si~...] 0. secs (0.u,0.s) -Chars 8028 - 8029 [{] 0. secs (0.u,0.s) -Chars 8030 - 8036 [subst.] 0. secs (0.u,0.s) -Chars 8037 - 8053 [apply~lookup_eq.] 0. secs (0.u,0.s) -Chars 8054 - 8055 [}] 0. secs (0.u,0.s) -Chars 8060 - 8096 [clear~Heqsi~Heqnext_to_write~H...] 0. secs (0.u,0.s) -Chars 8101 - 8125 [generalize~dependent~si.] 0. secs (0.u,0.s) -Chars 8130 - 8153 [remember~(k0~tt)~as~tr.] 0. secs (0.u,0.s) -Chars 8154 - 8169 [clear~Heqtr~k0.] 0. secs (0.u,0.s) -Chars 8174 - 8198 [generalize~dependent~tr.] 0. secs (0.u,0.s) -Chars 8203 - 8238 [generalize~dependent~next_to_w...] 0. secs (0.u,0.s) -Chars 8244 - 8262 [coinduction~c~CIH.] 0.007 secs (0.007u,0.s) -Chars 8314 - 8321 [intros.] 0. secs (0.u,0.s) -Chars 8326 - 8344 [rename~H1~into~HX.] 0. secs (0.u,0.s) -Chars 8476 - 8549 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 8554 - 8579 [rewrite~unfold_iter~in~H.] 0.006 secs (0.006u,0.s) -Chars 8584 - 8652 [match~type~of~H~with~|~_~⊑~ITr...] 0.001 secs (0.001u,0.s) -Chars 8658 - 8688 [setoid_rewrite~bind_bind~in~H.] 0.005 secs (0.005u,0.s) -Chars 8693 - 8719 [rewrite~bind_trigger~in~H.] 0.009 secs (0.009u,0.s) -Chars 8724 - 8761 [setoid_rewrite~interp_state_vi...] 0.051 secs (0.05u,0.s) -Chars 8766 - 8775 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 8776 - 8800 [rewrite~bind_ret_l~in~H.] 0.007 secs (0.007u,0.s) -Chars 8801 - 8823 [rewrite~tau_eutt~in~H.] 0.007 secs (0.007u,0.s) -Chars 8828 - 8861 [setoid_rewrite~bind_trigger~in~H.] 0.014 secs (0.014u,0.s) -Chars 8866 - 8896 [rewrite~interp_state_vis~in~H.] 0.008 secs (0.007u,0.s) -Chars 8897 - 8906 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 8911 - 8933 [rewrite~bind_vis~in~H.] 0.007 secs (0.007u,0.s) -Chars 8938 - 8960 [rewrite~bind_vis~in~H.] 0.005 secs (0.005u,0.s) -Chars 8965 - 8996 [setoid_rewrite~bind_ret_l~in~H.] 0.011 secs (0.011u,0.s) -Chars 9001 - 9009 [unf_res.] 0. secs (0.u,0.s) -Chars 9014 - 9024 [step~in~H.] 0. secs (0.u,0.s) -Chars 9025 - 9034 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9039 - 9061 [dependent~induction~H.] 0.035 secs (0.035u,0.s) -Chars 9066 - 9070 [2:~{] 0. secs (0.u,0.s) -Chars 9071 - 9079 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 9080 - 9098 [constructor;~auto.] 0.002 secs (0.002u,0.s) -Chars 9099 - 9134 [eapply~IHruttF;~eauto;~reflexi...] 0.006 secs (0.006u,0.s) -Chars 9135 - 9136 [}] 0. secs (0.u,0.s) -Chars 9141 - 9207 [inversion~H;~ddestruction;~sub...] 0.025 secs (0.024u,0.s) -Chars 9212 - 9218 [subst.] 0. secs (0.u,0.s) -Chars 9219 - 9241 [specialize~(H0~tt~tt).] 0. secs (0.u,0.s) -Chars 9246 - 9257 [destruct~a.] 0.001 secs (0.001u,0.s) -Chars 9262 - 9292 [prove_arg~H0;~auto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 9298 - 9380 [match~type~of~H0~with~|~gfp~_~...] 0. secs (0.u,0.s) -Chars 9385 - 9393 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 9394 - 9412 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 9417 - 9427 [intros~[].] 0. secs (0.u,0.s) -Chars 9432 - 9443 [clear~x~tr.] 0. secs (0.u,0.s) -Chars 9449 - 9487 [remember~(lookup_default~X~0~s...] 0.006 secs (0.006u,0.s) -Chars 9492 - 9530 [remember~(lookup_default~Y~0~s...] 0.008 secs (0.007u,0.s) -Chars 9535 - 9596 [eapply~CIH~with~(Maps.add~Y~(n...] 0. secs (0.u,0.s) -Chars 9601 - 9605 [2:~{] 0. secs (0.u,0.s) -Chars 9606 - 9638 [rewrite~lookup_neq;~subst;~auto.] 0.005 secs (0.005u,0.s) -Chars 9639 - 9640 [}] 0. secs (0.u,0.s) -Chars 9645 - 9669 [rewrite~tau_eutt~in~Hk1.] 0.011 secs (0.01u,0.s) -Chars 9670 - 9705 [setoid_rewrite~bind_trigger~in...] 0.012 secs (0.012u,0.s) -Chars 9710 - 9749 [setoid_rewrite~interp_state_vi...] 0.024 secs (0.024u,0.s) -Chars 9750 - 9759 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9764 - 9790 [rewrite~bind_ret_l~in~Hk1.] 0.01 secs (0.01u,0.s) -Chars 9791 - 9815 [rewrite~tau_eutt~in~Hk1.] 0.009 secs (0.009u,0.s) -Chars 9820 - 9851 [setoid_rewrite~bind_vis~in~Hk1.] 0.014 secs (0.014u,0.s) -Chars 9856 - 9895 [setoid_rewrite~interp_state_vi...] 0.025 secs (0.025u,0.s) -Chars 9896 - 9905 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9910 - 9936 [rewrite~bind_ret_l~in~Hk1.] 0.01 secs (0.01u,0.s) -Chars 9937 - 9963 [rewrite~bind_ret_l~in~Hk1.] 0.01 secs (0.01u,0.s) -Chars 9968 - 9992 [rewrite~tau_eutt~in~Hk1.] 0.009 secs (0.009u,0.s) -Chars 9993 - 10002 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 10007 - 10039 [rewrite~interp_state_ret~in~Hk1.] 0.008 secs (0.008u,0.s) -Chars 10040 - 10066 [rewrite~bind_ret_l~in~Hk1.] 0.006 secs (0.006u,0.s) -Chars 10071 - 10080 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 10085 - 10109 [rewrite~tau_eutt~in~Hk1.] 0.006 secs (0.006u,0.s) -Chars 10114 - 10182 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 10187 - 10333 [match~goal~with~|~H:_~⊑~ITree....] 0. secs (0.u,0.s) -Chars 10338 - 10344 [subst.] 0.002 secs (0.002u,0.s) -Chars 10345 - 10366 [rewrite~Nat.add_comm.] 0. secs (0.u,0.s) -Chars 10367 - 10372 [auto.] 0. secs (0.u,0.s) -Chars 10375 - 10379 [Qed.] 0.104 secs (0.103u,0.s) -Chars 10381 - 10396 [End~PrintMults.] 0.001 secs (0.001u,0.s) diff --git a/extra/Dijkstra/StateSpecT.v.timing b/extra/Dijkstra/StateSpecT.v.timing deleted file mode 100644 index da263820..00000000 --- a/extra/Dijkstra/StateSpecT.v.timing +++ /dev/null @@ -1,244 +0,0 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 44 - 93 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 95 - 196 [From~ITree~Require~Import~ITre...] 0.16 secs (0.142u,0.017s) -Chars 198 - 339 [From~ITree.Extra~Require~Impor...] 0.014 secs (0.011u,0.002s) -Chars 341 - 355 [Import~Monads.] 0. secs (0.u,0.s) -Chars 356 - 377 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 379 - 411 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 412 - 447 [#[local]~Open~Scope~dijkstra_s...] 0. secs (0.u,0.s) -Chars 448 - 484 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) -Chars 486 - 505 [Section~StateSpecT.] 0. secs (0.u,0.s) -Chars 508 - 527 [Context~(S~:~Type).] 0. secs (0.u,0.s) -Chars 530 - 557 [Context~(W~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 560 - 587 [Context~{MonadW~:~Monad~W}.] 0. secs (0.u,0.s) -Chars 590 - 618 [Context~{OrderW~:~OrderM~W}.] 0. secs (0.u,0.s) -Chars 621 - 662 [Context~{OrderedMonadW~:~Order...] 0. secs (0.u,0.s) -Chars 665 - 687 [Context~{EqW~:~Eq1~W}.] 0. secs (0.u,0.s) -Chars 690 - 749 [Context~{EquivRel~:~forall~A,~...] 0. secs (0.u,0.s) -Chars 752 - 788 [Context~{MonadLawsW~:~MonadLaw...] 0. secs (0.u,0.s) -Chars 792 - 841 [Definition~StateSpecT~(A~:~Typ...] 0. secs (0.u,0.s) -Chars 845 - 970 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) -Chars 974 - 1041 [#[global]~Instance~StateSpecTO...] 0. secs (0.u,0.s) -Chars 1044 - 1050 [Proof.] 0. secs (0.u,0.s) -Chars 1055 - 1078 [destruct~OrderedMonadW.] 0. secs (0.u,0.s) -Chars 1083 - 1095 [constructor.] 0. secs (0.u,0.s) -Chars 1100 - 1101 [-] 0. secs (0.u,0.s) -Chars 1102 - 1115 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1117 - 1122 [auto.] 0. secs (0.u,0.s) -Chars 1127 - 1128 [-] 0. secs (0.u,0.s) -Chars 1129 - 1142 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1143 - 1163 [eapply~trans;~eauto.] 0.028 secs (0.026u,0.002s) -Chars 1168 - 1169 [-] 0. secs (0.u,0.s) -Chars 1170 - 1201 [intros~A~B~w1~w2~f1~f2~Hlw~Hlf.] 0. secs (0.u,0.s) -Chars 1202 - 1225 [unfold~StateSpecT~in~*.] 0. secs (0.u,0.s) -Chars 1232 - 1243 [repeat~red.] 0. secs (0.u,0.s) -Chars 1250 - 1257 [intros.] 0. secs (0.u,0.s) -Chars 1258 - 1276 [apply~monot;~auto.] 0. secs (0.u,0.s) -Chars 1277 - 1284 [intros.] 0. secs (0.u,0.s) -Chars 1285 - 1306 [destruct~a~as~[s'~a].] 0. secs (0.u,0.s) -Chars 1307 - 1313 [simpl.] 0. secs (0.u,0.s) -Chars 1320 - 1338 [repeat~red~in~Hlf.] 0. secs (0.u,0.s) -Chars 1339 - 1349 [apply~Hlf.] 0. secs (0.u,0.s) -Chars 1352 - 1356 [Qed.] 0. secs (0.u,0.s) -Chars 1360 - 1463 [#[global]~Instance~StateSpecTE...] 0. secs (0.u,0.s) -Chars 1467 - 1530 [#[global]~Instance~StateSpecTM...] 0. secs (0.u,0.s) -Chars 1533 - 1539 [Proof.] 0. secs (0.u,0.s) -Chars 1544 - 1564 [destruct~MonadLawsW.] 0. secs (0.u,0.s) -Chars 1569 - 1581 [constructor.] 0. secs (0.u,0.s) -Chars 1586 - 1587 [-] 0. secs (0.u,0.s) -Chars 1588 - 1603 [intros~A~B~f~a.] 0. secs (0.u,0.s) -Chars 1604 - 1610 [intro.] 0. secs (0.u,0.s) -Chars 1611 - 1622 [repeat~red.] 0. secs (0.u,0.s) -Chars 1629 - 1633 [cbn.] 0. secs (0.u,0.s) -Chars 1640 - 1659 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 1660 - 1666 [simpl.] 0. secs (0.u,0.s) -Chars 1667 - 1679 [reflexivity.] 0. secs (0.u,0.s) -Chars 1684 - 1685 [-] 0. secs (0.u,0.s) -Chars 1686 - 1697 [intros~A~w.] 0. secs (0.u,0.s) -Chars 1698 - 1704 [intro.] 0. secs (0.u,0.s) -Chars 1705 - 1709 [cbn.] 0. secs (0.u,0.s) -Chars 1716 - 1754 [etransitivity;~[~~|~apply~bind...] 0. secs (0.u,0.s) -Chars 1761 - 1799 [eapply~Proper_bind;~[~reflexiv...] 0. secs (0.u,0.s) -Chars 1806 - 1829 [intros~[];~reflexivity.] 0. secs (0.u,0.s) -Chars 1834 - 1835 [-] 0. secs (0.u,0.s) -Chars 1836 - 1855 [intros~A~B~C~w~f~g.] 0. secs (0.u,0.s) -Chars 1856 - 1862 [intro.] 0. secs (0.u,0.s) -Chars 1863 - 1867 [cbn.] 0. secs (0.u,0.s) -Chars 1868 - 1886 [rewrite~bind_bind.] 0. secs (0.u,0.s) -Chars 1887 - 1899 [reflexivity.] 0. secs (0.u,0.s) -Chars 1904 - 1905 [-] 0. secs (0.u,0.s) -Chars 1906 - 1935 [intros~A~B~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 1942 - 1946 [cbn.] 0. secs (0.u,0.s) -Chars 1947 - 1956 [do~2~red.] 0. secs (0.u,0.s) -Chars 1957 - 1964 [intros.] 0. secs (0.u,0.s) -Chars 1965 - 1980 [do~2~red~in~Hw.] 0. secs (0.u,0.s) -Chars 1981 - 1992 [rewrite~Hw.] 0.001 secs (0.001u,0.s) -Chars 1993 - 2008 [do~3~red~in~Hk.] 0. secs (0.u,0.s) -Chars 2015 - 2033 [setoid_rewrite~Hk.] 0.001 secs (0.001u,0.s) -Chars 2034 - 2046 [reflexivity.] 0. secs (0.u,0.s) -Chars 2049 - 2053 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2057 - 2077 [Section~Observation.] 0. secs (0.u,0.s) -Chars 2082 - 2109 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 2114 - 2141 [Context~{MonadM~:~Monad~M}.] 0. secs (0.u,0.s) -Chars 2146 - 2184 [Context~{EffectObsMW~:~EffectO...] 0. secs (0.u,0.s) -Chars 2189 - 2247 [Context~{MonadMorphismMW~:~Mon...] 0. secs (0.u,0.s) -Chars 2253 - 2354 [#[global]~Instance~EffectObsSt...] 0. secs (0.u,0.s) -Chars 2360 - 2456 [#[global]~Instance~MonadMorphi...] 0. secs (0.u,0.s) -Chars 2461 - 2467 [Proof.] 0. secs (0.u,0.s) -Chars 2474 - 2499 [destruct~MonadMorphismMW.] 0. secs (0.u,0.s) -Chars 2506 - 2518 [constructor.] 0. secs (0.u,0.s) -Chars 2525 - 2526 [-] 0. secs (0.u,0.s) -Chars 2527 - 2534 [intros.] 0. secs (0.u,0.s) -Chars 2535 - 2546 [repeat~red.] 0. secs (0.u,0.s) -Chars 2547 - 2554 [intros.] 0. secs (0.u,0.s) -Chars 2555 - 2597 [specialize~(ret_pres~(S~*~A)%t...] 0. secs (0.u,0.s) -Chars 2606 - 2610 [cbn.] 0. secs (0.u,0.s) -Chars 2611 - 2631 [rewrite~<-~ret_pres.] 0. secs (0.u,0.s) -Chars 2632 - 2644 [reflexivity.] 0. secs (0.u,0.s) -Chars 2651 - 2652 [-] 0. secs (0.u,0.s) -Chars 2653 - 2660 [intros.] 0. secs (0.u,0.s) -Chars 2661 - 2672 [repeat~red.] 0. secs (0.u,0.s) -Chars 2673 - 2680 [intros.] 0. secs (0.u,0.s) -Chars 2681 - 2685 [cbn.] 0. secs (0.u,0.s) -Chars 2686 - 2736 [specialize~(bind_pres~(S~*~A)%...] 0. secs (0.u,0.s) -Chars 2745 - 2773 [unfold~obs,~EffectObsStateT.] 0. secs (0.u,0.s) -Chars 2782 - 2800 [rewrite~bind_pres.] 0. secs (0.u,0.s) -Chars 2801 - 2813 [reflexivity.] 0. secs (0.u,0.s) -Chars 2818 - 2822 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2826 - 2842 [End~Observation.] 0. secs (0.u,0.s) -Chars 3250 - 3265 [End~StateSpecT.] 0. secs (0.u,0.s) -Chars 3267 - 3293 [Section~LoopInvarSpecific.] 0. secs (0.u,0.s) -Chars 3296 - 3315 [Context~(S~:~Type).] 0. secs (0.u,0.s) -Chars 3319 - 3379 [Definition~StateSpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 3383 - 3431 [Definition~State~(A~:~Type)~:=...] 0. secs (0.u,0.s) -Chars 3435 - 3493 [Instance~StateIter~:~(MonadIte...] 0. secs (0.u,0.s) -Chars 3497 - 3746 [Definition~reassoc~{A~B~:~Type...] 0. secs (0.u,0.s) -Chars 3750 - 3884 [Definition~iso_arrow~{A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 3888 - 3985 [Definition~decurry_flip~{A~B~C...] 0. secs (0.u,0.s) -Chars 4016 - 4162 [Definition~iso_destatify_arrow...] 0. secs (0.u,0.s) -Chars 4203 - 4626 [Lemma~loop_invar_state~:~~~for...] 0.001 secs (0.001u,0.s) -Chars 4629 - 4635 [Proof.] 0. secs (0.u,0.s) -Chars 4640 - 4647 [intros.] 0. secs (0.u,0.s) -Chars 4652 - 4686 [set~(g'~:=~iso_destatify_arrow...] 0. secs (0.u,0.s) -Chars 4691 - 4753 [enough~((Disj_unary~_~p~any_in...] 0. secs (0.u,0.s) -Chars 4758 - 4759 [-] 0. secs (0.u,0.s) -Chars 4760 - 4804 [assert~(ITree.iter~g'~(s,~a)~≈...] 0. secs (0.u,0.s) -Chars 4811 - 4812 [+] 0. secs (0.u,0.s) -Chars 4813 - 4844 [unfold~g',~iso_destatify_arrow.] 0. secs (0.u,0.s) -Chars 4853 - 4955 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 4956 - 4975 [unfold~Basics.iter.] 0. secs (0.u,0.s) -Chars 4984 - 5006 [unfold~MonadIterDelay.] 0. secs (0.u,0.s) -Chars 5007 - 5024 [eapply~eutt_iter.] 0.043 secs (0.043u,0.s) -Chars 5025 - 5031 [intro.] 0. secs (0.u,0.s) -Chars 5040 - 5063 [destruct~a0~as~[a'~s'].] 0. secs (0.u,0.s) -Chars 5064 - 5070 [simpl.] 0. secs (0.u,0.s) -Chars 5079 - 5118 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) -Chars 5119 - 5126 [intros.] 0. secs (0.u,0.s) -Chars 5135 - 5141 [subst.] 0. secs (0.u,0.s) -Chars 5142 - 5154 [destruct~u2.] 0. secs (0.u,0.s) -Chars 5155 - 5161 [simpl.] 0. secs (0.u,0.s) -Chars 5162 - 5187 [destruct~s1;~reflexivity.] 0. secs (0.u,0.s) -Chars 5194 - 5195 [+] 0. secs (0.u,0.s) -Chars 5196 - 5253 [assert~(Hpdiv~:~resp_eutt~(Dis...] 0. secs (0.u,0.s) -Chars 5262 - 5263 [{] 0. secs (0.u,0.s) -Chars 5264 - 5283 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 5284 - 5320 [split;~intros;~destruct~H4.] 0. secs (0.u,0.s) -Chars 5332 - 5333 [-] 0. secs (0.u,0.s) -Chars 5334 - 5339 [left.] 0. secs (0.u,0.s) -Chars 5340 - 5361 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5372 - 5373 [-] 0. secs (0.u,0.s) -Chars 5374 - 5380 [right.] 0. secs (0.u,0.s) -Chars 5381 - 5402 [now~rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5414 - 5415 [-] 0. secs (0.u,0.s) -Chars 5416 - 5421 [left.] 0. secs (0.u,0.s) -Chars 5422 - 5440 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5452 - 5453 [-] 0. secs (0.u,0.s) -Chars 5454 - 5460 [right.] 0. secs (0.u,0.s) -Chars 5461 - 5479 [now~rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 5490 - 5491 [}] 0. secs (0.u,0.s) -Chars 5500 - 5527 [eapply~Hpdiv;~try~apply~H2.] 0. secs (0.u,0.s) -Chars 5528 - 5537 [symmetry.] 0. secs (0.u,0.s) -Chars 5538 - 5543 [auto.] 0. secs (0.u,0.s) -Chars 5549 - 5550 [-] 0. secs (0.u,0.s) -Chars 5551 - 5576 [eapply~loop_invar;~eauto.] 0. secs (0.u,0.s) -Chars 5579 - 5583 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5587 - 5723 [Definition~state_iter_arrow_re...] 0. secs (0.u,0.s) -Chars 5727 - 5926 [Lemma~iter_inl_spin_state~:~~~...] 0. secs (0.u,0.s) -Chars 5929 - 5935 [Proof.] 0. secs (0.u,0.s) -Chars 5940 - 5947 [intros.] 0. secs (0.u,0.s) -Chars 5948 - 5973 [unfold~MonadIter_stateT0.] 0. secs (0.u,0.s) -Chars 5978 - 5998 [apply~iter_inl_spin.] 0. secs (0.u,0.s) -Chars 6041 - 6064 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 6065 - 6088 [generalize~dependent~s.] 0. secs (0.u,0.s) -Chars 6093 - 6111 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6118 - 6125 [intros.] 0. secs (0.u,0.s) -Chars 6126 - 6169 [red~in~H;~sinv~H;~try~apply~no...] 0.002 secs (0.002u,0.s) -Chars 6175 - 6211 [apply~not_wf~with~(a'~:=~a');~...] 0. secs (0.u,0.s) -Chars 6216 - 6217 [-] 0. secs (0.u,0.s) -Chars 6218 - 6230 [red~in~Hrel.] 0. secs (0.u,0.s) -Chars 6231 - 6254 [destruct~a'~as~[s'~a'].] 0. secs (0.u,0.s) -Chars 6255 - 6261 [simpl.] 0. secs (0.u,0.s) -Chars 6262 - 6266 [red.] 0. secs (0.u,0.s) -Chars 6267 - 6273 [simpl.] 0. secs (0.u,0.s) -Chars 6274 - 6287 [rewrite~Hrel.] 0.003 secs (0.003u,0.s) -Chars 6294 - 6313 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 6314 - 6320 [simpl.] 0. secs (0.u,0.s) -Chars 6321 - 6333 [reflexivity.] 0. secs (0.u,0.s) -Chars 6338 - 6339 [-] 0. secs (0.u,0.s) -Chars 6340 - 6352 [destruct~a'.] 0. secs (0.u,0.s) -Chars 6353 - 6371 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6374 - 6378 [Qed.] 0.003 secs (0.003u,0.s) -Chars 6382 - 6651 [Lemma~iter_wf_converge_state~:...] 0. secs (0.u,0.s) -Chars 6654 - 6660 [Proof.] 0. secs (0.u,0.s) -Chars 6665 - 6672 [intros.] 0. secs (0.u,0.s) -Chars 6673 - 6727 [unfold~MonadIter_stateT0,~Basi...] 0. secs (0.u,0.s) -Chars 6732 - 6755 [apply~iter_wf_converge.] 0. secs (0.u,0.s) -Chars 6760 - 6761 [-] 0. secs (0.u,0.s) -Chars 6762 - 6799 [eapply~wf_from_sub_rel;~try~ap...] 0. secs (0.u,0.s) -Chars 6806 - 6819 [repeat~intro.] 0. secs (0.u,0.s) -Chars 6820 - 6847 [unfold~iter_arrow_rel~in~*.] 0. secs (0.u,0.s) -Chars 6848 - 6876 [unfold~state_iter_arrow_rel.] 0. secs (0.u,0.s) -Chars 6883 - 6896 [clear~H0~a~s.] 0. secs (0.u,0.s) -Chars 6903 - 6923 [destruct~x~as~[s~a].] 0. secs (0.u,0.s) -Chars 6924 - 6935 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6936 - 6958 [destruct~y~as~[s'~a'].] 0. secs (0.u,0.s) -Chars 6965 - 7014 [destruct~(eutt_reta_or_div~(g~...] 0. secs (0.u,0.s) -Chars 7021 - 7022 [+] 0. secs (0.u,0.s) -Chars 7023 - 7037 [rewrite~<-~H0.] 0.001 secs (0.001u,0.s) -Chars 7038 - 7058 [rewrite~<-~H0~in~H1.] 0.017 secs (0.017u,0.s) -Chars 7059 - 7071 [simpl~in~H1.] 0. secs (0.u,0.s) -Chars 7072 - 7097 [rewrite~bind_ret_l~in~H1.] 0.016 secs (0.016u,0.s) -Chars 7106 - 7117 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7118 - 7130 [destruct~a0.] 0. secs (0.u,0.s) -Chars 7131 - 7142 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 7143 - 7168 [destruct~s1;~basic_solve.] 0.001 secs (0.001u,0.s) -Chars 7177 - 7189 [reflexivity.] 0. secs (0.u,0.s) -Chars 7196 - 7197 [+] 0. secs (0.u,0.s) -Chars 7198 - 7224 [apply~div_spin_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 7225 - 7242 [rewrite~H0~in~H1.] 0.016 secs (0.015u,0.s) -Chars 7243 - 7270 [rewrite~<-~spin_bind~in~H1.] 0.015 secs (0.015u,0.s) -Chars 7279 - 7294 [symmetry~in~H1.] 0. secs (0.u,0.s) -Chars 7295 - 7303 [exfalso.] 0. secs (0.u,0.s) -Chars 7304 - 7336 [eapply~not_ret_eutt_spin;~eauto.] 0. secs (0.u,0.s) -Chars 7340 - 7341 [-] 0. secs (0.u,0.s) -Chars 7342 - 7355 [clear~H0~a~s.] 0. secs (0.u,0.s) -Chars 7356 - 7369 [intros~[s~a].] 0. secs (0.u,0.s) -Chars 7370 - 7389 [specialize~(H~a~s).] 0. secs (0.u,0.s) -Chars 7390 - 7402 [basic_solve.] 0. secs (0.u,0.s) -Chars 7408 - 7438 [destruct~ab~as~[s'~[a'|~b]].] 0. secs (0.u,0.s) -Chars 7444 - 7445 [+] 0. secs (0.u,0.s) -Chars 7446 - 7468 [exists~(inl~(s',~a')).] 0. secs (0.u,0.s) -Chars 7469 - 7475 [simpl.] 0. secs (0.u,0.s) -Chars 7476 - 7486 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 7487 - 7506 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7507 - 7513 [simpl.] 0. secs (0.u,0.s) -Chars 7521 - 7533 [reflexivity.] 0. secs (0.u,0.s) -Chars 7539 - 7540 [+] 0. secs (0.u,0.s) -Chars 7541 - 7561 [exists~(inr~(s',~b)).] 0. secs (0.u,0.s) -Chars 7562 - 7568 [simpl.] 0. secs (0.u,0.s) -Chars 7569 - 7579 [rewrite~H.] 0.002 secs (0.002u,0.s) -Chars 7580 - 7599 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7600 - 7606 [simpl.] 0. secs (0.u,0.s) -Chars 7614 - 7626 [reflexivity.] 0. secs (0.u,0.s) -Chars 7629 - 7633 [Qed.] 0.008 secs (0.008u,0.s) -Chars 7635 - 7657 [End~LoopInvarSpecific.] 0. secs (0.u,0.s) diff --git a/extra/Dijkstra/TracesIT.v.timing b/extra/Dijkstra/TracesIT.v.timing deleted file mode 100644 index 09e9dcd1..00000000 --- a/extra/Dijkstra/TracesIT.v.timing +++ /dev/null @@ -1,604 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 83 - 132 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 134 - 240 [From~ITree~Require~Import~Axio...] 0.158 secs (0.142u,0.016s) -Chars 242 - 461 [From~ITree.Extra~Require~Impor...] 0.061 secs (0.054u,0.006s) -Chars 463 - 477 [Import~Monads.] 0. secs (0.u,0.s) -Chars 478 - 499 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 501 - 533 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 534 - 570 [#[local]~Open~Scope~delayspec_...] 0. secs (0.u,0.s) -Chars 773 - 791 [Section~TraceSpec.] 0. secs (0.u,0.s) -Chars 794 - 821 [Context~(E~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 825 - 904 [Definition~TraceSpecInput~(A~:...] 0. secs (0.u,0.s) -Chars 908 - 1012 [Instance~proper_eutt_spec_in~~...] 0. secs (0.u,0.s) -Chars 1015 - 1021 [Proof.] 0. secs (0.u,0.s) -Chars 1026 - 1045 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) -Chars 1046 - 1067 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 1068 - 1074 [simpl.] 0. secs (0.u,0.s) -Chars 1075 - 1123 [split;~intros;~eapply~Hp;~try~...] 0. secs (0.u,0.s) -Chars 1124 - 1133 [symmetry.] 0. secs (0.u,0.s) -Chars 1134 - 1139 [auto.] 0. secs (0.u,0.s) -Chars 1142 - 1146 [Qed.] 0. secs (0.u,0.s) -Chars 1150 - 1352 [Definition~TraceSpec~(A~:~Type...] 0. secs (0.u,0.s) -Chars 1356 - 1467 [#[global]~Instance~EqM_TraceSp...] 0.001 secs (0.001u,0.s) -Chars 1470 - 1536 [#[global]~Instance~EqMTS_equiv...] 0. secs (0.u,0.s) -Chars 1539 - 1545 [Proof.] 0. secs (0.u,0.s) -Chars 1550 - 1635 [do~2~constructor;~unfold~EqM_T...] 0.002 secs (0.002u,0.s) -Chars 1640 - 1649 [apply~H0.] 0. secs (0.u,0.s) -Chars 1650 - 1655 [auto.] 0. secs (0.u,0.s) -Chars 1658 - 1662 [Qed.] 0.002 secs (0.002u,0.s) -Chars 1781 - 1841 [Notation~"↑~log"~:=~(ev_list_t...] 0. secs (0.u,0.s) -Chars 1845 - 1932 [#[program]~Definition~ret_ts1~...] 0.002 secs (0.002u,0.s) -Chars 1936 - 2032 [#[program]~Definition~ret_ts2~...] 0.002 secs (0.002u,0.s) -Chars 2186 - 2430 [#[program]~Definition~bind_ts1...] 0.046 secs (0.046u,0.s) -Chars 2433 - 2449 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 2454 - 2473 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) -Chars 2474 - 2508 [split;~intros;~split;~basic_so...] 0.001 secs (0.001u,0.s) -Chars 2513 - 2514 [-] 0. secs (0.u,0.s) -Chars 2515 - 2523 [apply~H.] 0. secs (0.u,0.s) -Chars 2524 - 2538 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) -Chars 2539 - 2544 [auto.] 0. secs (0.u,0.s) -Chars 2549 - 2550 [-] 0. secs (0.u,0.s) -Chars 2551 - 2568 [rewrite~<-~Heutt.] 0.005 secs (0.005u,0.s) -Chars 2569 - 2578 [apply~H1.] 0. secs (0.u,0.s) -Chars 2579 - 2593 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 2594 - 2599 [auto.] 0. secs (0.u,0.s) -Chars 2604 - 2605 [-] 0. secs (0.u,0.s) -Chars 2606 - 2614 [apply~H.] 0. secs (0.u,0.s) -Chars 2615 - 2632 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 2633 - 2638 [auto.] 0. secs (0.u,0.s) -Chars 2643 - 2644 [-] 0. secs (0.u,0.s) -Chars 2645 - 2659 [rewrite~Heutt.] 0.006 secs (0.006u,0.s) -Chars 2660 - 2669 [apply~H1.] 0. secs (0.u,0.s) -Chars 2670 - 2687 [rewrite~<-~Heutt.] 0.001 secs (0.001u,0.s) -Chars 2688 - 2693 [auto.] 0. secs (0.u,0.s) -Chars 2696 - 2700 [Qed.] 0.003 secs (0.003u,0.s) -Chars 2704 - 2997 [#[program]~Definition~bind_ts1...] 0.004 secs (0.004u,0.s) -Chars 3000 - 3016 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 3021 - 3040 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) -Chars 3041 - 3068 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) -Chars 3073 - 3074 [-] 0. secs (0.u,0.s) -Chars 3075 - 3080 [left.] 0. secs (0.u,0.s) -Chars 3081 - 3090 [exists~a.] 0. secs (0.u,0.s) -Chars 3091 - 3103 [exists~log'.] 0. secs (0.u,0.s) -Chars 3110 - 3127 [rewrite~<-~Heutt.] 0.006 secs (0.006u,0.s) -Chars 3128 - 3133 [auto.] 0. secs (0.u,0.s) -Chars 3138 - 3139 [-] 0. secs (0.u,0.s) -Chars 3140 - 3146 [right.] 0. secs (0.u,0.s) -Chars 3147 - 3164 [rewrite~<-~Heutt.] 0.002 secs (0.002u,0.s) -Chars 3165 - 3170 [auto.] 0. secs (0.u,0.s) -Chars 3175 - 3176 [-] 0. secs (0.u,0.s) -Chars 3177 - 3182 [left.] 0. secs (0.u,0.s) -Chars 3183 - 3192 [exists~a.] 0. secs (0.u,0.s) -Chars 3193 - 3205 [exists~log'.] 0. secs (0.u,0.s) -Chars 3206 - 3220 [rewrite~Heutt.] 0.006 secs (0.006u,0.s) -Chars 3227 - 3232 [auto.] 0. secs (0.u,0.s) -Chars 3237 - 3238 [-] 0. secs (0.u,0.s) -Chars 3239 - 3245 [right.] 0. secs (0.u,0.s) -Chars 3246 - 3260 [rewrite~Heutt.] 0.001 secs (0.001u,0.s) -Chars 3261 - 3266 [auto.] 0. secs (0.u,0.s) -Chars 3269 - 3273 [Qed.] 0.007 secs (0.007u,0.s) -Chars 3276 - 3292 [Next~Obligation.] 0.002 secs (0.002u,0.s) -Chars 3297 - 3326 [destruct~(w~log)~as~[wl~Hwl].] 0.001 secs (0.001u,0.s) -Chars 3327 - 3338 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 3343 - 3368 [eapply~Hwl;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 3369 - 3375 [simpl.] 0. secs (0.u,0.s) -Chars 3376 - 3385 [clear~H0.] 0. secs (0.u,0.s) -Chars 3386 - 3393 [intros.] 0. secs (0.u,0.s) -Chars 3398 - 3410 [basic_solve.] 0. secs (0.u,0.s) -Chars 3415 - 3416 [-] 0. secs (0.u,0.s) -Chars 3417 - 3422 [left.] 0. secs (0.u,0.s) -Chars 3423 - 3432 [exists~a.] 0. secs (0.u,0.s) -Chars 3433 - 3445 [exists~log'.] 0. secs (0.u,0.s) -Chars 3446 - 3458 [split;~auto.] 0. secs (0.u,0.s) -Chars 3465 - 3499 [destruct~(g~a~log')~as~[gal~Hg...] 0. secs (0.u,0.s) -Chars 3500 - 3511 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 3518 - 3544 [eapply~Hgal;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 3545 - 3550 [auto.] 0. secs (0.u,0.s) -Chars 3555 - 3556 [-] 0. secs (0.u,0.s) -Chars 3557 - 3563 [right.] 0. secs (0.u,0.s) -Chars 3564 - 3569 [auto.] 0. secs (0.u,0.s) -Chars 3571 - 3575 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3579 - 3694 [#[global]~Instance~TraceSpecMo...] 0. secs (0.u,0.s) -Chars 3936 - 4106 [Lemma~apply_monot~:~~~forall~(...] 0. secs (0.u,0.s) -Chars 4109 - 4115 [Proof.] 0. secs (0.u,0.s) -Chars 4120 - 4127 [intros.] 0. secs (0.u,0.s) -Chars 4128 - 4157 [destruct~(w~log)~as~[w'~Hw'].] 0. secs (0.u,0.s) -Chars 4162 - 4173 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 4174 - 4180 [eauto.] 0. secs (0.u,0.s) -Chars 4183 - 4187 [Qed.] 0.001 secs (0.u,0.s) -Chars 4191 - 4260 [#[global,~program]~Instance~Tr...] 0.016 secs (0.016u,0.s) -Chars 4263 - 4279 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4284 - 4300 [rename~x~into~a.] 0. secs (0.u,0.s) -Chars 4305 - 4309 [red.] 0. secs (0.u,0.s) -Chars 4310 - 4314 [red.] 0. secs (0.u,0.s) -Chars 4315 - 4319 [cbn.] 0. secs (0.u,0.s) -Chars 4320 - 4347 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) -Chars 4352 - 4353 [-] 0. secs (0.u,0.s) -Chars 4354 - 4381 [apply~inv_append_eutt~in~H.] 0. secs (0.u,0.s) -Chars 4382 - 4393 [destruct~H.] 0. secs (0.u,0.s) -Chars 4394 - 4400 [subst.] 0. secs (0.u,0.s) -Chars 4401 - 4406 [auto.] 0. secs (0.u,0.s) -Chars 4411 - 4412 [-] 0. secs (0.u,0.s) -Chars 4413 - 4421 [exfalso.] 0. secs (0.u,0.s) -Chars 4422 - 4466 [assert~(may_converge~a~(↑~log~...] 0. secs (0.u,0.s) -Chars 4473 - 4474 [{] 0. secs (0.u,0.s) -Chars 4475 - 4501 [apply~may_converge_append.] 0. secs (0.u,0.s) -Chars 4502 - 4530 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) -Chars 4531 - 4532 [}] 0. secs (0.u,0.s) -Chars 4539 - 4579 [eapply~all_infinite_not_conver...] 0. secs (0.u,0.s) -Chars 4584 - 4585 [-] 0. secs (0.u,0.s) -Chars 4586 - 4591 [left.] 0. secs (0.u,0.s) -Chars 4592 - 4601 [exists~a.] 0. secs (0.u,0.s) -Chars 4602 - 4613 [exists~log.] 0. secs (0.u,0.s) -Chars 4614 - 4626 [split;~auto.] 0. secs (0.u,0.s) -Chars 4629 - 4633 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4636 - 4652 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 4657 - 4673 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 4674 - 4678 [red.] 0. secs (0.u,0.s) -Chars 4679 - 4683 [red.] 0. secs (0.u,0.s) -Chars 4684 - 4688 [cbn.] 0. secs (0.u,0.s) -Chars 4689 - 4716 [split;~intros;~basic_solve.] 0. secs (0.u,0.s) -Chars 4721 - 4722 [-] 0. secs (0.u,0.s) -Chars 4723 - 4755 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) -Chars 4756 - 4764 [clear~H.] 0. secs (0.u,0.s) -Chars 4771 - 4777 [simpl.] 0. secs (0.u,0.s) -Chars 4778 - 4785 [intros.] 0. secs (0.u,0.s) -Chars 4786 - 4798 [basic_solve.] 0. secs (0.u,0.s) -Chars 4805 - 4806 [+] 0. secs (0.u,0.s) -Chars 4807 - 4817 [rewrite~H.] 0.005 secs (0.005u,0.s) -Chars 4818 - 4823 [auto.] 0. secs (0.u,0.s) -Chars 4830 - 4831 [+] 0. secs (0.u,0.s) -Chars 4832 - 4858 [apply~noret_cast_nop~in~H.] 0. secs (0.u,0.s) -Chars 4867 - 4877 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 4878 - 4883 [auto.] 0. secs (0.u,0.s) -Chars 4888 - 4889 [-] 0. secs (0.u,0.s) -Chars 4890 - 4922 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) -Chars 4923 - 4931 [clear~H.] 0. secs (0.u,0.s) -Chars 4938 - 4945 [intros.] 0. secs (0.u,0.s) -Chars 4946 - 4952 [simpl.] 0. secs (0.u,0.s) -Chars 4953 - 4990 [destruct~(classic_converge_itr...] 0. secs (0.u,0.s) -Chars 4997 - 4998 [+] 0. secs (0.u,0.s) -Chars 4999 - 5011 [basic_solve.] 0. secs (0.u,0.s) -Chars 5012 - 5017 [left.] 0. secs (0.u,0.s) -Chars 5018 - 5027 [exists~r.] 0. secs (0.u,0.s) -Chars 5028 - 5040 [exists~log0.] 0. secs (0.u,0.s) -Chars 5041 - 5047 [split.] 0. secs (0.u,0.s) -Chars 5056 - 5057 [*] 0. secs (0.u,0.s) -Chars 5058 - 5067 [symmetry.] 0. secs (0.u,0.s) -Chars 5068 - 5073 [auto.] 0. secs (0.u,0.s) -Chars 5082 - 5083 [*] 0. secs (0.u,0.s) -Chars 5084 - 5095 [rewrite~H0.] 0.005 secs (0.005u,0.s) -Chars 5096 - 5101 [auto.] 0. secs (0.u,0.s) -Chars 5108 - 5109 [+] 0. secs (0.u,0.s) -Chars 5110 - 5116 [right.] 0. secs (0.u,0.s) -Chars 5117 - 5129 [split;~auto.] 0. secs (0.u,0.s) -Chars 5130 - 5164 [rewrite~noret_cast_nop~in~H;~a...] 0.005 secs (0.005u,0.s) -Chars 5167 - 5171 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5174 - 5190 [Next~Obligation.] 0.001 secs (0.001u,0.s) -Chars 5195 - 5211 [rename~x~into~w.] 0. secs (0.u,0.s) -Chars 5216 - 5220 [red.] 0. secs (0.u,0.s) -Chars 5221 - 5225 [red.] 0. secs (0.u,0.s) -Chars 5226 - 5230 [cbn.] 0. secs (0.u,0.s) -Chars 5231 - 5258 [split;~intros;~basic_solve.] 0.001 secs (0.001u,0.s) -Chars 5263 - 5264 [-] 0. secs (0.u,0.s) -Chars 5265 - 5297 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) -Chars 5298 - 5306 [clear~H.] 0. secs (0.u,0.s) -Chars 5307 - 5313 [simpl.] 0. secs (0.u,0.s) -Chars 5314 - 5321 [intros.] 0. secs (0.u,0.s) -Chars 5328 - 5340 [basic_solve.] 0.002 secs (0.002u,0.s) -Chars 5347 - 5348 [+] 0. secs (0.u,0.s) -Chars 5349 - 5354 [left.] 0. secs (0.u,0.s) -Chars 5355 - 5364 [exists~a.] 0. secs (0.u,0.s) -Chars 5365 - 5377 [exists~log'.] 0. secs (0.u,0.s) -Chars 5378 - 5383 [auto.] 0. secs (0.u,0.s) -Chars 5390 - 5391 [+] 0. secs (0.u,0.s) -Chars 5392 - 5400 [exfalso.] 0. secs (0.u,0.s) -Chars 5409 - 5453 [assert~(may_converge~a~(↑~log'...] 0. secs (0.u,0.s) -Chars 5462 - 5463 [{] 0. secs (0.u,0.s) -Chars 5464 - 5490 [apply~may_converge_append.] 0. secs (0.u,0.s) -Chars 5491 - 5519 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) -Chars 5520 - 5521 [}] 0. secs (0.u,0.s) -Chars 5530 - 5583 [assert~(all_infinite~(@noret_c...] 0. secs (0.u,0.s) -Chars 5592 - 5593 [{] 0. secs (0.u,0.s) -Chars 5594 - 5618 [apply~all_infinite_bind.] 0. secs (0.u,0.s) -Chars 5619 - 5624 [auto.] 0. secs (0.u,0.s) -Chars 5625 - 5626 [}] 0. secs (0.u,0.s) -Chars 5635 - 5655 [rewrite~<-~H0~in~H2.] 0.004 secs (0.004u,0.s) -Chars 5656 - 5680 [unfold~noret_cast~in~H3.] 0. secs (0.u,0.s) -Chars 5681 - 5691 [cbn~in~H3.] 0. secs (0.u,0.s) -Chars 5700 - 5755 [eapply~all_infinite_not_conver...] 0. secs (0.u,0.s) -Chars 5764 - 5788 [apply~all_infinite_bind.] 0. secs (0.u,0.s) -Chars 5789 - 5794 [auto.] 0. secs (0.u,0.s) -Chars 5801 - 5802 [+] 0. secs (0.u,0.s) -Chars 5803 - 5809 [right.] 0. secs (0.u,0.s) -Chars 5810 - 5822 [split;~auto.] 0. secs (0.u,0.s) -Chars 5831 - 5852 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 5853 - 5864 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 5865 - 5889 [eapply~Hp;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 5898 - 5961 [eapply~eutt_bind_eutt~with~(UU...] 0.013 secs (0.012u,0.s) -Chars 5970 - 5991 [apply~noret_bind_nop.] 0. secs (0.u,0.s) -Chars 5992 - 5997 [auto.] 0. secs (0.u,0.s) -Chars 6002 - 6003 [-] 0. secs (0.u,0.s) -Chars 6004 - 6036 [eapply~apply_monot;~try~apply~H.] 0. secs (0.u,0.s) -Chars 6037 - 6045 [clear~H.] 0. secs (0.u,0.s) -Chars 6046 - 6052 [simpl.] 0. secs (0.u,0.s) -Chars 6053 - 6060 [intros.] 0. secs (0.u,0.s) -Chars 6067 - 6079 [basic_solve.] 0.001 secs (0.001u,0.s) -Chars 6086 - 6087 [+] 0. secs (0.u,0.s) -Chars 6088 - 6093 [left.] 0. secs (0.u,0.s) -Chars 6094 - 6103 [exists~a.] 0. secs (0.u,0.s) -Chars 6104 - 6116 [exists~log'.] 0. secs (0.u,0.s) -Chars 6117 - 6122 [auto.] 0. secs (0.u,0.s) -Chars 6129 - 6130 [+] 0. secs (0.u,0.s) -Chars 6131 - 6137 [right.] 0. secs (0.u,0.s) -Chars 6138 - 6150 [split;~auto.] 0. secs (0.u,0.s) -Chars 6151 - 6157 [right.] 0. secs (0.u,0.s) -Chars 6158 - 6164 [split.] 0. secs (0.u,0.s) -Chars 6173 - 6174 [*] 0. secs (0.u,0.s) -Chars 6175 - 6199 [apply~all_infinite_bind.] 0. secs (0.u,0.s) -Chars 6200 - 6205 [auto.] 0. secs (0.u,0.s) -Chars 6214 - 6215 [*] 0. secs (0.u,0.s) -Chars 6216 - 6237 [destruct~p~as~[p~Hp].] 0. secs (0.u,0.s) -Chars 6238 - 6249 [simpl~in~*.] 0. secs (0.u,0.s) -Chars 6250 - 6274 [eapply~Hp;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 6285 - 6348 [eapply~eutt_bind_eutt~with~(UU...] 0.014 secs (0.013u,0.s) -Chars 6359 - 6379 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 6380 - 6401 [apply~noret_bind_nop.] 0. secs (0.u,0.s) -Chars 6402 - 6407 [auto.] 0. secs (0.u,0.s) -Chars 6411 - 6415 [Qed.] 0.014 secs (0.014u,0.s) -Chars 6418 - 6434 [Next~Obligation.] 0. secs (0.u,0.s) -Chars 6439 - 6464 [intros~w1~w2~Hw~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 6465 - 6480 [do~2~red~in~Hw.] 0. secs (0.u,0.s) -Chars 6481 - 6496 [do~3~red~in~Hk.] 0. secs (0.u,0.s) -Chars 6501 - 6512 [repeat~red.] 0. secs (0.u,0.s) -Chars 6513 - 6529 [unfold~bind_ts1.] 0. secs (0.u,0.s) -Chars 6530 - 6536 [simpl.] 0. secs (0.u,0.s) -Chars 6537 - 6551 [split;~intros.] 0. secs (0.u,0.s) -Chars 6556 - 6557 [-] 0. secs (0.u,0.s) -Chars 6558 - 6572 [rewrite~<-~Hw.] 0.003 secs (0.003u,0.s) -Chars 6573 - 6617 [destruct~(w1~log)~as~[w1l~Hw1l...] 0.001 secs (0.001u,0.s) -Chars 6618 - 6656 [eapply~Hw1l;~try~apply~H;~simpl.] 0. secs (0.u,0.s) -Chars 6657 - 6664 [intros.] 0. secs (0.u,0.s) -Chars 6665 - 6683 [basic_solve;~auto.] 0.002 secs (0.002u,0.s) -Chars 6690 - 6695 [left.] 0. secs (0.u,0.s) -Chars 6696 - 6705 [exists~a.] 0. secs (0.u,0.s) -Chars 6706 - 6718 [exists~log'.] 0. secs (0.u,0.s) -Chars 6719 - 6731 [split;~auto.] 0. secs (0.u,0.s) -Chars 6732 - 6746 [rewrite~<-~Hk.] 0.001 secs (0.001u,0.s) -Chars 6747 - 6752 [auto.] 0. secs (0.u,0.s) -Chars 6757 - 6758 [-] 0. secs (0.u,0.s) -Chars 6759 - 6770 [rewrite~Hw.] 0.002 secs (0.002u,0.s) -Chars 6771 - 6815 [destruct~(w2~log)~as~[w2l~Hw2l...] 0.002 secs (0.002u,0.s) -Chars 6816 - 6854 [eapply~Hw2l;~try~apply~H;~simpl.] 0. secs (0.u,0.s) -Chars 6855 - 6862 [intros.] 0. secs (0.u,0.s) -Chars 6863 - 6881 [basic_solve;~auto.] 0.002 secs (0.002u,0.s) -Chars 6888 - 6893 [left.] 0. secs (0.u,0.s) -Chars 6894 - 6903 [exists~a.] 0. secs (0.u,0.s) -Chars 6904 - 6916 [exists~log'.] 0. secs (0.u,0.s) -Chars 6917 - 6929 [split;~auto.] 0. secs (0.u,0.s) -Chars 6930 - 6941 [rewrite~Hk.] 0. secs (0.u,0.s) -Chars 6942 - 6947 [auto.] 0. secs (0.u,0.s) -Chars 6950 - 6954 [Qed.] 0.007 secs (0.007u,0.s) -Chars 6959 - 7086 [#[program]~Definition~obs_trac...] 0.002 secs (0.002u,0.s) -Chars 7090 - 7167 [#[global]~Instance~TraceSpecOb...] 0. secs (0.u,0.s) -Chars 7171 - 7506 [Lemma~bind_split_diverge~:~~~f...] 0. secs (0.u,0.s) -Chars 7509 - 7515 [Proof.] 0. secs (0.u,0.s) -Chars 7520 - 7560 [intros~A~B~log~p~b~b'~g'~Hspli...] 0. secs (0.u,0.s) -Chars 7565 - 7583 [rewrite~<-~Hsplit.] 0.006 secs (0.006u,0.s) -Chars 7588 - 7678 [enough~~(↑~log~++~ITree.bind~b...] 0. secs (0.u,0.s) -Chars 7683 - 7684 [{] 0. secs (0.u,0.s) -Chars 7685 - 7695 [rewrite~H.] 0.005 secs (0.005u,0.s) -Chars 7696 - 7701 [auto.] 0. secs (0.u,0.s) -Chars 7702 - 7703 [}] 0. secs (0.u,0.s) -Chars 7708 - 7722 [unfold~append.] 0. secs (0.u,0.s) -Chars 7723 - 7741 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 7746 - 7812 [eapply~eutt_bind_eutt~with~(RR...] 0. secs (0.u,0.s) -Chars 7817 - 7824 [intros.] 0. secs (0.u,0.s) -Chars 7825 - 7848 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 7849 - 7888 [eapply~euttNoRet_trans~with~(t...] 0. secs (0.u,0.s) -Chars 7893 - 7894 [+] 0. secs (0.u,0.s) -Chars 7895 - 7915 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 7916 - 7937 [apply~noret_bind_nop.] 0. secs (0.u,0.s) -Chars 7938 - 7977 [eapply~all_infinite_bind_appen...] 0. secs (0.u,0.s) -Chars 7982 - 7983 [+] 0. secs (0.u,0.s) -Chars 7984 - 8005 [apply~noret_bind_nop.] 0. secs (0.u,0.s) -Chars 8006 - 8045 [eapply~all_infinite_bind_appen...] 0. secs (0.u,0.s) -Chars 8048 - 8052 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8056 - 8139 [#[global]~Instance~TraceSpecMo...] 0. secs (0.u,0.s) -Chars 8142 - 8148 [Proof.] 0. secs (0.u,0.s) -Chars 8153 - 8165 [constructor.] 0. secs (0.u,0.s) -Chars 8170 - 8171 [-] 0. secs (0.u,0.s) -Chars 8172 - 8179 [intros.] 0. secs (0.u,0.s) -Chars 8180 - 8191 [repeat~red.] 0. secs (0.u,0.s) -Chars 8192 - 8217 [unfold~obs,~TraceSpecObs.] 0. secs (0.u,0.s) -Chars 8218 - 8222 [cbn.] 0. secs (0.u,0.s) -Chars 8223 - 8237 [split;~intros.] 0. secs (0.u,0.s) -Chars 8244 - 8245 [+] 0. secs (0.u,0.s) -Chars 8246 - 8254 [apply~H.] 0. secs (0.u,0.s) -Chars 8255 - 8278 [apply~trace_refine_ret.] 0. secs (0.u,0.s) -Chars 8285 - 8286 [+] 0. secs (0.u,0.s) -Chars 8287 - 8322 [apply~trace_refine_ret_inv_l~i...] 0. secs (0.u,0.s) -Chars 8331 - 8342 [rewrite~H0.] 0.005 secs (0.005u,0.s) -Chars 8343 - 8348 [auto.] 0. secs (0.u,0.s) -Chars 8353 - 8354 [-] 0. secs (0.u,0.s) -Chars 8355 - 8362 [intros.] 0. secs (0.u,0.s) -Chars 8363 - 8374 [repeat~red.] 0. secs (0.u,0.s) -Chars 8375 - 8379 [cbn.] 0. secs (0.u,0.s) -Chars 8386 - 8400 [split;~intros.] 0. secs (0.u,0.s) -Chars 8407 - 8408 [+] 0. secs (0.u,0.s) -Chars 8409 - 8459 [destruct~(classic_converge_itr...] 0.001 secs (0.001u,0.s) -Chars 8468 - 8469 [*] 0. secs (0.u,0.s) -Chars 8470 - 8475 [left.] 0. secs (0.u,0.s) -Chars 8476 - 8485 [exists~r.] 0. secs (0.u,0.s) -Chars 8486 - 8507 [setoid_rewrite~~<-~H1.] 0.007 secs (0.007u,0.s) -Chars 8518 - 8544 [exists~(log~++~log0)%list.] 0. secs (0.u,0.s) -Chars 8545 - 8551 [split.] 0. secs (0.u,0.s) -Chars 8562 - 8564 [++] 0. secs (0.u,0.s) -Chars 8565 - 8586 [rewrite~append_assoc.] 0. secs (0.u,0.s) -Chars 8587 - 8599 [reflexivity.] 0. secs (0.u,0.s) -Chars 8610 - 8612 [++] 0. secs (0.u,0.s) -Chars 8613 - 8627 [intros~bf~Hbf.] 0. secs (0.u,0.s) -Chars 8641 - 8668 [set~(g~:=~fun~r~:~A~=>~bf).] 0. secs (0.u,0.s) -Chars 8682 - 8728 [assert~(ITree.bind~b~g~≈~↑~log...] 0. secs (0.u,0.s) -Chars 8742 - 8743 [{] 0. secs (0.u,0.s) -Chars 8759 - 8773 [rewrite~<-~H1.] 0.001 secs (0.001u,0.s) -Chars 8774 - 8788 [unfold~append.] 0. secs (0.u,0.s) -Chars 8789 - 8807 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 8823 - 8849 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 8850 - 8859 [unfold~g.] 0. secs (0.u,0.s) -Chars 8860 - 8872 [reflexivity.] 0. secs (0.u,0.s) -Chars 8886 - 8887 [}] 0. secs (0.u,0.s) -Chars 8901 - 8922 [rewrite~append_assoc.] 0.005 secs (0.005u,0.s) -Chars 8923 - 8937 [rewrite~<-~H2.] 0.006 secs (0.006u,0.s) -Chars 8938 - 8946 [apply~H.] 0. secs (0.u,0.s) -Chars 8960 - 8969 [unfold~g.] 0. secs (0.u,0.s) -Chars 8970 - 9023 [apply~trace_refine_converge_bi...] 0. secs (0.u,0.s) -Chars 9037 - 9051 [rewrite~<-~H1.] 0.004 secs (0.004u,0.s) -Chars 9052 - 9078 [apply~may_converge_append.] 0. secs (0.u,0.s) -Chars 9079 - 9107 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) -Chars 9116 - 9117 [*] 0. secs (0.u,0.s) -Chars 9118 - 9124 [right.] 0. secs (0.u,0.s) -Chars 9125 - 9131 [split.] 0. secs (0.u,0.s) -Chars 9142 - 9144 [++] 0. secs (0.u,0.s) -Chars 9145 - 9168 [apply~append_div;~auto.] 0. secs (0.u,0.s) -Chars 9179 - 9181 [++] 0. secs (0.u,0.s) -Chars 9182 - 9196 [unfold~append.] 0. secs (0.u,0.s) -Chars 9210 - 9228 [rewrite~bind_bind.] 0.005 secs (0.005u,0.s) -Chars 9229 - 9237 [apply~H.] 0. secs (0.u,0.s) -Chars 9251 - 9289 [apply~trace_refine_diverge_bin...] 0. secs (0.u,0.s) -Chars 9295 - 9296 [+] 0. secs (0.u,0.s) -Chars 9297 - 9346 [apply~decompose_trace_refine_b...] 0. secs (0.u,0.s) -Chars 9354 - 9366 [basic_solve.] 0. secs (0.u,0.s) -Chars 9367 - 9387 [apply~H~in~H2~as~?H.] 0. secs (0.u,0.s) -Chars 9388 - 9439 [destruct~(classic_converge_itr...] 0.001 secs (0.001u,0.s) -Chars 9447 - 9448 [*] 0. secs (0.u,0.s) -Chars 9546 - 9554 [clear~H.] 0. secs (0.u,0.s) -Chars 9555 - 9579 [assert~(H~:~True);~auto.] 0. secs (0.u,0.s) -Chars 9590 - 9645 [assert~(Hbind~:~ITree.bind~b'~...] 0. secs (0.u,0.s) -Chars 9655 - 9656 [{] 0. secs (0.u,0.s) -Chars 9657 - 9668 [rewrite~H1.] 0.003 secs (0.003u,0.s) -Chars 9669 - 9674 [auto.] 0. secs (0.u,0.s) -Chars 9675 - 9676 [}] 0. secs (0.u,0.s) -Chars 9686 - 9706 [rewrite~<-~H4~in~H1.] 0.014 secs (0.014u,0.s) -Chars 9716 - 9747 [setoid_rewrite~bind_bind~in~H1.] 0.016 secs (0.016u,0.s) -Chars 9757 - 9789 [setoid_rewrite~bind_ret_l~in~H1.] 0.017 secs (0.017u,0.s) -Chars 9799 - 9845 [assert~(↑~log0~++~g'~r~≈~b)%it...] 0. secs (0.u,0.s) -Chars 9846 - 9855 [clear~H1.] 0. secs (0.u,0.s) -Chars 9865 - 9889 [specialize~(H5~(g'~r)).] 0. secs (0.u,0.s) -Chars 9891 - 9911 [rewrite~<-~H6~in~H0.] 0.002 secs (0.002u,0.s) -Chars 9923 - 9979 [assert~(↑~log~++~b~≈~↑~log'~++...] 0. secs (0.u,0.s) -Chars 9989 - 9990 [{] 0. secs (0.u,0.s) -Chars 10002 - 10016 [rewrite~<-~H6.] 0.006 secs (0.006u,0.s) -Chars 10017 - 10037 [rewrite~<-~H4~in~H3.] 0.016 secs (0.016u,0.s) -Chars 10049 - 10073 [rewrite~<-~append_assoc.] 0.006 secs (0.006u,0.s) -Chars 10074 - 10104 [rewrite~<-~append_assoc~in~H3.] 0.014 secs (0.014u,0.s) -Chars 10105 - 10133 [apply~inv_append_eutt~in~H3.] 0. secs (0.u,0.s) -Chars 10145 - 10157 [destruct~H3.] 0. secs (0.u,0.s) -Chars 10158 - 10164 [subst.] 0. secs (0.u,0.s) -Chars 10165 - 10184 [split;~reflexivity.] 0. secs (0.u,0.s) -Chars 10194 - 10195 [}] 0. secs (0.u,0.s) -Chars 10205 - 10233 [destruct~H1~as~[Hevsplit~?].] 0. secs (0.u,0.s) -Chars 10234 - 10240 [subst.] 0. secs (0.u,0.s) -Chars 10241 - 10258 [rewrite~Hevsplit.] 0.006 secs (0.006u,0.s) -Chars 10318 - 10327 [apply~H5.] 0. secs (0.u,0.s) -Chars 10382 - 10399 [rewrite~H6~in~H0.] 0.003 secs (0.003u,0.s) -Chars 10536 - 10597 [apply~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) -Chars 10607 - 10621 [rewrite~<-~H4.] 0.004 secs (0.004u,0.s) -Chars 10622 - 10649 [eapply~may_converge_append.] 0. secs (0.u,0.s) -Chars 10650 - 10678 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) -Chars 10686 - 10687 [*] 0. secs (0.u,0.s) -Chars 10688 - 10721 [eapply~bind_split_diverge;~eauto.] 0.002 secs (0.002u,0.s) -Chars 10729 - 10730 [*] 0. secs (0.u,0.s) -Chars 10731 - 10758 [assert~(may_converge~a~b').] 0. secs (0.u,0.s) -Chars 10768 - 10769 [{] 0. secs (0.u,0.s) -Chars 10770 - 10806 [eapply~may_converge_two_list;~...] 0. secs (0.u,0.s) -Chars 10807 - 10808 [}] 0. secs (0.u,0.s) -Chars 10818 - 10826 [exfalso.] 0. secs (0.u,0.s) -Chars 10827 - 10867 [eapply~all_infinite_not_conver...] 0. secs (0.u,0.s) -Chars 10875 - 10876 [*] 0. secs (0.u,0.s) -Chars 10877 - 10910 [eapply~bind_split_diverge;~eauto.] 0.001 secs (0.001u,0.s) -Chars 10913 - 10917 [Qed.] 0.014 secs (0.014u,0.s) -Chars 10921 - 11043 [#[global]~Instance~TraceSpecOr...] 0. secs (0.u,0.s) -Chars 11047 - 11110 [#[global]~Instance~TraceSpecOr...] 0. secs (0.u,0.s) -Chars 11113 - 11119 [Proof.] 0. secs (0.u,0.s) -Chars 11124 - 11136 [constructor.] 0. secs (0.u,0.s) -Chars 11141 - 11142 [-] 0. secs (0.u,0.s) -Chars 11143 - 11150 [intros.] 0. secs (0.u,0.s) -Chars 11151 - 11162 [repeat~red.] 0. secs (0.u,0.s) -Chars 11163 - 11168 [auto.] 0. secs (0.u,0.s) -Chars 11173 - 11174 [-] 0. secs (0.u,0.s) -Chars 11175 - 11182 [intros.] 0. secs (0.u,0.s) -Chars 11183 - 11199 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 11200 - 11217 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 11224 - 11235 [repeat~red.] 0. secs (0.u,0.s) -Chars 11236 - 11243 [intros.] 0. secs (0.u,0.s) -Chars 11244 - 11252 [apply~H.] 0. secs (0.u,0.s) -Chars 11253 - 11262 [apply~H0.] 0. secs (0.u,0.s) -Chars 11263 - 11268 [auto.] 0. secs (0.u,0.s) -Chars 11273 - 11274 [-] 0. secs (0.u,0.s) -Chars 11275 - 11282 [intros.] 0. secs (0.u,0.s) -Chars 11283 - 11300 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 11301 - 11317 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 11318 - 11329 [repeat~red.] 0. secs (0.u,0.s) -Chars 11330 - 11337 [intros.] 0. secs (0.u,0.s) -Chars 11338 - 11355 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 11362 - 11371 [eapply~H.] 0. secs (0.u,0.s) -Chars 11372 - 11403 [destruct~(w2~log)~as~[w2'~Hw2].] 0.002 secs (0.001u,0.s) -Chars 11404 - 11408 [cbn.] 0. secs (0.u,0.s) -Chars 11409 - 11434 [eapply~Hw2;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 11441 - 11448 [intros.] 0. secs (0.u,0.s) -Chars 11449 - 11458 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 11459 - 11471 [basic_solve.] 0.001 secs (0.001u,0.s) -Chars 11478 - 11479 [+] 0. secs (0.u,0.s) -Chars 11480 - 11485 [left.] 0. secs (0.u,0.s) -Chars 11486 - 11495 [exists~a.] 0. secs (0.u,0.s) -Chars 11496 - 11508 [exists~log'.] 0. secs (0.u,0.s) -Chars 11509 - 11521 [split;~auto.] 0. secs (0.u,0.s) -Chars 11530 - 11540 [eapply~H0.] 0. secs (0.u,0.s) -Chars 11541 - 11546 [auto.] 0. secs (0.u,0.s) -Chars 11553 - 11554 [+] 0. secs (0.u,0.s) -Chars 11555 - 11561 [right.] 0. secs (0.u,0.s) -Chars 11562 - 11567 [auto.] 0. secs (0.u,0.s) -Chars 11570 - 11574 [Qed.] 0.006 secs (0.006u,0.s) -Chars 11578 - 11702 [Definition~verify_cond~{A~:~Ty...] 0. secs (0.u,0.s) -Chars 11706 - 11892 [#[program]~Definition~encode~{...] 0.003 secs (0.003u,0.s) -Chars 11896 - 12103 [#[program]~Definition~encode_d...] 0.005 secs (0.005u,0.s) -Chars 12105 - 12119 [End~TraceSpec.] 0.005 secs (0.005u,0.s) -Chars 12121 - 12150 [Arguments~TraceSpecMonad~{E}.] 0. secs (0.u,0.s) -Chars 12151 - 12184 [Arguments~TraceSpecMonadLaws~{E}.] 0. secs (0.u,0.s) -Chars 12185 - 12214 [Arguments~TraceSpecOrder~{E}.] 0. secs (0.u,0.s) -Chars 12215 - 12248 [Arguments~TraceSpecOrderLaws~{E}.] 0. secs (0.u,0.s) -Chars 12249 - 12276 [Arguments~TraceSpecObs~{E}.] 0. secs (0.u,0.s) -Chars 12277 - 12306 [Arguments~TraceSpecMorph~{E}.] 0. secs (0.u,0.s) -Chars 12308 - 12330 [Section~NonDetExample.] 0. secs (0.u,0.s) -Chars 12332 - 12388 [Variant~NonDet~:~Type~->~Prop~...] 0. secs (0.u,0.s) -Chars 12390 - 12549 [Definition~decide_ex~:~itree~N...] 0.001 secs (0.001u,0.s) -Chars 12551 - 12625 [Definition~decide_ex_pre~:~ev_...] 0. secs (0.u,0.s) -Chars 12627 - 12752 [Variant~is_bool~(b~:~bool)~:~f...] 0. secs (0.u,0.s) -Chars 12754 - 12788 [Hint~Constructors~is_bool:~itree.] 0. secs (0.u,0.s) -Chars 12790 - 12911 [Definition~fal_decide_ex~:~itr...] 0. secs (0.u,0.s) -Chars 12913 - 13098 [Definition~decide_ex_post~:~it...] 0. secs (0.u,0.s) -Chars 13100 - 13208 [Lemma~decide_ex_satisfies_spec...] 0. secs (0.u,0.s) -Chars 13209 - 13215 [Proof.] 0. secs (0.u,0.s) -Chars 13218 - 13229 [repeat~red.] 0.001 secs (0.u,0.s) -Chars 13230 - 13234 [cbn.] 0. secs (0.u,0.s) -Chars 13235 - 13242 [intros.] 0. secs (0.u,0.s) -Chars 13243 - 13266 [destruct~H~as~[Hlog~H].] 0. secs (0.u,0.s) -Chars 13269 - 13281 [red~in~Hlog.] 0. secs (0.u,0.s) -Chars 13282 - 13290 [apply~H.] 0. secs (0.u,0.s) -Chars 13291 - 13299 [clear~H.] 0. secs (0.u,0.s) -Chars 13300 - 13306 [subst.] 0. secs (0.u,0.s) -Chars 13307 - 13311 [cbn.] 0. secs (0.u,0.s) -Chars 13312 - 13316 [red.] 0. secs (0.u,0.s) -Chars 13317 - 13331 [split;~intros.] 0. secs (0.u,0.s) -Chars 13334 - 13335 [-] 0. secs (0.u,0.s) -Chars 13336 - 13355 [unfold~append~in~*.] 0. secs (0.u,0.s) -Chars 13356 - 13380 [rewrite~bind_ret_l~in~H.] 0.001 secs (0.001u,0.s) -Chars 13381 - 13400 [rewrite~bind_ret_l.] 0.016 secs (0.015u,0.s) -Chars 13405 - 13427 [unfold~decide_ex~in~*.] 0. secs (0.u,0.s) -Chars 13432 - 13455 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 13456 - 13474 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13475 - 13492 [intros~b~Hb~Hdiv.] 0. secs (0.u,0.s) -Chars 13497 - 13528 [rewrite~unfold_iter~in~Hb~at~1.] 0.002 secs (0.002u,0.s) -Chars 13529 - 13553 [rewrite~bind_bind~in~Hb.] 0.003 secs (0.003u,0.s) -Chars 13558 - 13622 [apply~bind_trigger_refine~in~H...] 0. secs (0.u,0.s) -Chars 13627 - 13639 [basic_solve.] 0. secs (0.u,0.s) -Chars 13640 - 13651 [destruct~a.] 0. secs (0.u,0.s) -Chars 13656 - 13657 [+] 0. secs (0.u,0.s) -Chars 13658 - 13683 [rewrite~bind_ret_l~in~H0.] 0.003 secs (0.003u,0.s) -Chars 13684 - 13694 [cbn~in~H0.] 0. secs (0.u,0.s) -Chars 13695 - 13718 [rewrite~tau_eutt~in~H0.] 0.003 secs (0.003u,0.s) -Chars 13725 - 13735 [step~in~H.] 0. secs (0.u,0.s) -Chars 13736 - 13745 [clear~Hb.] 0. secs (0.u,0.s) -Chars 13752 - 13757 [icbn.] 0. secs (0.u,0.s) -Chars 13766 - 13797 [dependent~induction~H;~simpobs.] 0.014 secs (0.014u,0.s) -Chars 13805 - 13806 [*] 0. secs (0.u,0.s) -Chars 13807 - 13836 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 13837 - 13844 [intros.] 0. secs (0.u,0.s) -Chars 13853 - 13864 [destruct~a.] 0. secs (0.u,0.s) -Chars 13865 - 13876 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 13885 - 13887 [++] 0. secs (0.u,0.s) -Chars 13888 - 13934 [assert~(k1~tt~≈~k'~tt)%itree;~...] 0. secs (0.u,0.s) -Chars 13946 - 13960 [now~rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 13970 - 13972 [++] 0. secs (0.u,0.s) -Chars 13973 - 13992 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 13993 - 14011 [rewrite~x~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 14012 - 14022 [sinv~Hdiv.] 0.003 secs (0.003u,0.s) -Chars 14034 - 14047 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 14048 - 14057 [apply~H1.] 0. secs (0.u,0.s) -Chars 14064 - 14065 [*] 0. secs (0.u,0.s) -Chars 14066 - 14078 [constructor.] 0. secs (0.u,0.s) -Chars 14079 - 14090 [Utils.step.] 0. secs (0.u,0.s) -Chars 14091 - 14113 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 14123 - 14142 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 14143 - 14161 [rewrite~x~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 14162 - 14187 [rewrite~tau_eutt~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 14188 - 14193 [auto.] 0. secs (0.u,0.s) -Chars 14197 - 14198 [+] 0. secs (0.u,0.s) -Chars 14199 - 14224 [rewrite~bind_ret_l~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14225 - 14235 [cbn~in~H0.] 0. secs (0.u,0.s) -Chars 14236 - 14271 [apply~trace_refine_ret_inv_l~i...] 0. secs (0.u,0.s) -Chars 14277 - 14295 [rewrite~H~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 14296 - 14306 [sinv~Hdiv.] 0.004 secs (0.004u,0.s) -Chars 14307 - 14320 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 14326 - 14345 [specialize~(H2~tt).] 0. secs (0.u,0.s) -Chars 14351 - 14368 [rewrite~H0~in~H2.] 0.011 secs (0.011u,0.s) -Chars 14369 - 14377 [sinv~H2.] 0. secs (0.u,0.s) -Chars 14380 - 14381 [-] 0. secs (0.u,0.s) -Chars 14382 - 14386 [red.] 0. secs (0.u,0.s) -Chars 14387 - 14406 [rewrite~append_nil.] 0.029 secs (0.029u,0.s) -Chars 14407 - 14431 [rewrite~append_nil~in~H.] 0.003 secs (0.003u,0.s) -Chars 14432 - 14454 [unfold~decide_ex~in~*.] 0. secs (0.u,0.s) -Chars 14459 - 14471 [induction~H.] 0. secs (0.u,0.s) -Chars 14476 - 14477 [+] 0. secs (0.u,0.s) -Chars 14478 - 14486 [exfalso.] 0. secs (0.u,0.s) -Chars 14487 - 14503 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14504 - 14530 [rewrite~unfold_iter~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14537 - 14561 [rewrite~bind_bind~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14562 - 14589 [rewrite~bind_trigger~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14596 - 14635 [revert~H0;~apply~refine_ret_vi...] 0. secs (0.u,0.s) -Chars 14640 - 14641 [+] 0. secs (0.u,0.s) -Chars 14642 - 14652 [rewrite~H.] 0.03 secs (0.03u,0.s) -Chars 14653 - 14683 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) -Chars 14690 - 14701 [destruct~b.] 0. secs (0.u,0.s) -Chars 14702 - 14714 [destruct~ev.] 0. secs (0.u,0.s) -Chars 14715 - 14728 [destruct~ans.] 0. secs (0.u,0.s) -Chars 14735 - 14736 [*] 0. secs (0.u,0.s) -Chars 14737 - 14788 [eapply~front_and_last_cons;~ea...] 0.001 secs (0.001u,0.s) -Chars 14789 - 14810 [apply~IHmay_converge.] 0. secs (0.u,0.s) -Chars 14819 - 14840 [clear~IHmay_converge.] 0. secs (0.u,0.s) -Chars 14841 - 14867 [rewrite~unfold_iter~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14868 - 14892 [rewrite~bind_bind~in~H0.] 0.002 secs (0.002u,0.s) -Chars 14901 - 14917 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) -Chars 14918 - 14976 [eapply~bind_trigger_refine~in~...] 0. secs (0.u,0.s) -Chars 14985 - 14997 [basic_solve.] 0. secs (0.u,0.s) -Chars 15006 - 15014 [sinv~H0.] 0.007 secs (0.007u,0.s) -Chars 15015 - 15028 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 15037 - 15082 [assert~(k~tt~≈~k'~tt)%itree;~t...] 0. secs (0.u,0.s) -Chars 15083 - 15108 [rewrite~bind_ret_l~in~H2.] 0.003 secs (0.003u,0.s) -Chars 15117 - 15126 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 15127 - 15150 [rewrite~tau_eutt~in~H2.] 0.002 secs (0.002u,0.s) -Chars 15151 - 15166 [now~rewrite~H0.] 0.003 secs (0.003u,0.s) -Chars 15174 - 15175 [*] 0. secs (0.u,0.s) -Chars 15176 - 15197 [clear~IHmay_converge.] 0. secs (0.u,0.s) -Chars 15198 - 15224 [rewrite~unfold_iter~in~H0.] 0.002 secs (0.002u,0.s) -Chars 15225 - 15249 [rewrite~bind_bind~in~H0.] 0.002 secs (0.002u,0.s) -Chars 15258 - 15274 [rewrite~H~in~H0.] 0.003 secs (0.003u,0.s) -Chars 15275 - 15333 [eapply~bind_trigger_refine~in~...] 0. secs (0.u,0.s) -Chars 15342 - 15354 [basic_solve.] 0. secs (0.u,0.s) -Chars 15363 - 15371 [sinv~H0.] 0.006 secs (0.006u,0.s) -Chars 15372 - 15385 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 15394 - 15419 [rewrite~bind_ret_l~in~H2.] 0.002 secs (0.002u,0.s) -Chars 15420 - 15430 [cbn~in~H2.] 0. secs (0.u,0.s) -Chars 15439 - 15474 [apply~trace_refine_ret_inv_l~i...] 0. secs (0.u,0.s) -Chars 15483 - 15543 [eapply~front_and_last_base~wit...] 0.005 secs (0.005u,0.s) -Chars 15552 - 15557 [step.] 0.001 secs (0.001u,0.s) -Chars 15558 - 15562 [cbn.] 0. secs (0.u,0.s) -Chars 15563 - 15575 [constructor.] 0. secs (0.u,0.s) -Chars 15576 - 15583 [intros.] 0. secs (0.u,0.s) -Chars 15592 - 15606 [rewrite~<-~H2.] 0. secs (0.u,0.s) -Chars 15607 - 15618 [destruct~v.] 0. secs (0.u,0.s) -Chars 15619 - 15624 [auto.] 0. secs (0.u,0.s) -Chars 15627 - 15631 [Qed.] 0.022 secs (0.022u,0.s) -Chars 15633 - 15651 [End~NonDetExample.] 0. secs (0.u,0.s) diff --git a/extra/IForest.v.timing b/extra/IForest.v.timing deleted file mode 100644 index 0f17b70c..00000000 --- a/extra/IForest.v.timing +++ /dev/null @@ -1,1131 +0,0 @@ -Chars 305 - 341 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 343 - 459 [From~ITree~Require~Import~Axio...] 0.16 secs (0.144u,0.016s) -Chars 461 - 512 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 514 - 584 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.001s) -Chars 586 - 620 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 622 - 643 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 644 - 664 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 665 - 694 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 695 - 722 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 801 - 877 [Definition~iforest~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 1082 - 1148 [Notation~eutt_closed~:=~(Prope...] 0. secs (0.u,0.s) -Chars 1150 - 1323 [#[global,~universes(polymorphi...] 0.001 secs (0.u,0.s) -Chars 1325 - 1469 [#[global]~Instance~Functor_ifo...] 0.001 secs (0.001u,0.s) -Chars 1471 - 1592 [Definition~subtree~{E}~{A}~{B}...] 0. secs (0.u,0.s) -Chars 1615 - 1917 [Definition~bind_iforest~{E}~:~...] 0. secs (0.u,0.s) -Chars 1919 - 2223 [Definition~bind_iforest_strong...] 0. secs (0.u,0.s) -Chars 2394 - 2849 [Definition~bind_iforest'~{E}~:...] 0.001 secs (0.u,0.s) -Chars 2851 - 2980 [Lemma~bind_iforest_bind_ifores...] 0. secs (0.u,0.s) -Chars 2981 - 2987 [Proof.] 0. secs (0.u,0.s) -Chars 2990 - 2997 [intros.] 0. secs (0.u,0.s) -Chars 2998 - 3004 [split.] 0. secs (0.u,0.s) -Chars 3007 - 3014 [intros.] 0. secs (0.u,0.s) -Chars 3017 - 3018 [-] 0. secs (0.u,0.s) -Chars 3019 - 3023 [red.] 0. secs (0.u,0.s) -Chars 3024 - 3033 [red~in~H.] 0. secs (0.u,0.s) -Chars 3038 - 3078 [destruct~H~as~(ta,~(ka,~(HPA,~...] 0. secs (0.u,0.s) -Chars 3083 - 3093 [exists~ta.] 0. secs (0.u,0.s) -Chars 3094 - 3106 [split;~auto.] 0. secs (0.u,0.s) -Chars 3111 - 3116 [left.] 0. secs (0.u,0.s) -Chars 3118 - 3128 [exists~ka.] 0. secs (0.u,0.s) -Chars 3129 - 3141 [split;~auto.] 0. secs (0.u,0.s) -Chars 3144 - 3145 [-] 0. secs (0.u,0.s) -Chars 3146 - 3153 [intros.] 0. secs (0.u,0.s) -Chars 3158 - 3162 [red.] 0. secs (0.u,0.s) -Chars 3163 - 3172 [red~in~H.] 0. secs (0.u,0.s) -Chars 3177 - 3227 [destruct~H~as~(ta,~(EQ1,~[(k,~...] 0. secs (0.u,0.s) -Chars 3232 - 3233 [+] 0. secs (0.u,0.s) -Chars 3234 - 3244 [exists~ta.] 0. secs (0.u,0.s) -Chars 3245 - 3254 [exists~k.] 0. secs (0.u,0.s) -Chars 3255 - 3260 [auto.] 0. secs (0.u,0.s) -Chars 3265 - 3266 [+] 0. secs (0.u,0.s) -Chars 3267 - 3277 [exists~ta.] 0. secs (0.u,0.s) -Chars 3278 - 3307 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 3314 - 3326 [split;~auto.] 0. secs (0.u,0.s) -Chars 3333 - 3371 [specialize~(HX~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 3378 - 3402 [destruct~HX~as~(HA,~H).] 0. secs (0.u,0.s) -Chars 3409 - 3421 [split;~auto.] 0. secs (0.u,0.s) -Chars 3422 - 3426 [Qed.] 0.026 secs (0.024u,0.001s) -Chars 3450 - 3583 [#[global]~Instance~Monad_ifore...] 0. secs (0.u,0.s) -Chars 3627 - 3748 [Definition~handler_correct~{E}...] 0. secs (0.u,0.s) -Chars 3750 - 4596 [Inductive~interp_iforestF~{E}~...] 0.002 secs (0.002u,0.s) -Chars 4598 - 4650 [#[global]~Hint~Constructors~in...] 0. secs (0.u,0.s) -Chars 4652 - 4877 [Lemma~interp_iforestF_mono~E~F...] 0. secs (0.u,0.s) -Chars 4878 - 4884 [Proof.] 0. secs (0.u,0.s) -Chars 4887 - 4918 [induction~IN;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 4919 - 4923 [Qed.] 0. secs (0.u,0.s) -Chars 4925 - 5071 [Definition~interp_iforest_~E~F...] 0. secs (0.u,0.s) -Chars 5073 - 5119 [#[global]~Hint~Unfold~interp_i...] 0. secs (0.u,0.s) -Chars 5122 - 5270 [Definition~interp_iforest_mon~...] 0. secs (0.u,0.s) -Chars 5271 - 5277 [Proof.] 0. secs (0.u,0.s) -Chars 5280 - 5333 [refine~{|~body~:=~interp_ifore...] 0.003 secs (0.003u,0.s) -Chars 5336 - 5363 [intros~sim~sim'~LE~t0~t1~H.] 0. secs (0.u,0.s) -Chars 5364 - 5392 [unfold~interp_iforest_~in~*.] 0. secs (0.u,0.s) -Chars 5395 - 5430 [eapply~interp_iforestF_mono;~e...] 0. secs (0.u,0.s) -Chars 5431 - 5439 [Defined.] 0. secs (0.u,0.s) -Chars 5462 - 5650 [Definition~interp_iforest~{E}~...] 0. secs (0.u,0.s) -Chars 5653 - 5734 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) -Chars 5735 - 5822 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) -Chars 5823 - 5909 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) -Chars 5911 - 6235 [#[local]~Ltac~~refold~:=~~~rep...] 0. secs (0.u,0.s) -Chars 6237 - 6583 [#[local]~Ltac~~refold_in~h~:=~...] 0. secs (0.u,0.s) -Chars 6585 - 7579 [#[local]~Ltac~~to_mon_core~:=~...] 0. secs (0.u,0.s) -Chars 7581 - 7738 [#[local]~Ltac~~to_mon~:=~~~let...] 0. secs (0.u,0.s) -Chars 7740 - 8262 [#[local]~Ltac~~to_mon_in~h~:=~...] 0. secs (0.u,0.s) -Chars 8264 - 8378 [#[local]~Ltac~~icbn~:=~~~cbn[e...] 0. secs (0.u,0.s) -Chars 8381 - 8510 [#[local]~Ltac~~icbn_in~H~:=~~~...] 0. secs (0.u,0.s) -Chars 8512 - 8571 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 8572 - 8718 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 8721 - 8784 [#[local]~Tactic~Notation~"refo...] 0. secs (0.u,0.s) -Chars 8785 - 8848 [#[local]~Tactic~Notation~"to_m...] 0. secs (0.u,0.s) -Chars 8849 - 8914 [#[local]~Tactic~Notation~"iunf...] 0. secs (0.u,0.s) -Chars 8915 - 8974 [#[local]~Tactic~Notation~"iunf...] 0. secs (0.u,0.s) -Chars 8977 - 9046 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) -Chars 9048 - 9127 [#[local]~Tactic~Notation~"unst...] 0. secs (0.u,0.s) -Chars 9129 - 9232 [#[local]~Tactic~Notation~"step...] 0. secs (0.u,0.s) -Chars 9234 - 9347 [#[local]~Tactic~Notation~"unst...] 0. secs (0.u,0.s) -Chars 9349 - 9477 [#[local]~Tactic~Notation~"icoi...] 0. secs (0.u,0.s) -Chars 9479 - 9596 [#[local]~Tactic~Notation~"coin...] 0. secs (0.u,0.s) -Chars 9598 - 9712 [#[local]~Tactic~Notation~"coin...] 0. secs (0.u,0.s) -Chars 9714 - 9816 [#[local]~Ltac~~bcbn~:=~~~cbn[e...] 0. secs (0.u,0.s) -Chars 9874 - 9906 [Ltac~sinv~H~:=~step~in~H;~inv~H.] 0. secs (0.u,0.s) -Chars 9951 - 10094 [Lemma~interp_iforest_ret~:~~~f...] 0. secs (0.u,0.s) -Chars 10095 - 10101 [Proof.] 0. secs (0.u,0.s) -Chars 10104 - 10111 [intros.] 0. secs (0.u,0.s) -Chars 10114 - 10125 [repeat~red.] 0. secs (0.u,0.s) -Chars 10128 - 10145 [split;~[~~|~split~].] 0. secs (0.u,0.s) -Chars 10148 - 10149 [-] 0. secs (0.u,0.s) -Chars 10150 - 10157 [intros.] 0. secs (0.u,0.s) -Chars 10158 - 10172 [split;~intros.] 0. secs (0.u,0.s) -Chars 10177 - 10178 [+] 0. secs (0.u,0.s) -Chars 10179 - 10190 [step~in~H0.] 0. secs (0.u,0.s) -Chars 10191 - 10198 [inv~H0.] 0.002 secs (0.002u,0.s) -Chars 10205 - 10209 [cbn.] 0. secs (0.u,0.s) -Chars 10210 - 10227 [now~rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 10232 - 10233 [+] 0. secs (0.u,0.s) -Chars 10234 - 10256 [unfold~interp_iforest.] 0. secs (0.u,0.s) -Chars 10257 - 10262 [step.] 0. secs (0.u,0.s) -Chars 10263 - 10283 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 10284 - 10298 [now~rewrite~H.] 0. secs (0.u,0.s) -Chars 10301 - 10302 [-] 0. secs (0.u,0.s) -Chars 10303 - 10314 [repeat~red.] 0. secs (0.u,0.s) -Chars 10319 - 10360 [intros~t1~t2~eq;~split;~intros...] 0.035 secs (0.034u,0.s) -Chars 10366 - 10367 [+] 0. secs (0.u,0.s) -Chars 10368 - 10373 [step.] 0. secs (0.u,0.s) -Chars 10374 - 10394 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 10395 - 10413 [now~rewrite~<-~eq.] 0. secs (0.u,0.s) -Chars 10419 - 10420 [+] 0. secs (0.u,0.s) -Chars 10421 - 10426 [step.] 0. secs (0.u,0.s) -Chars 10427 - 10447 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 10448 - 10463 [now~rewrite~eq.] 0. secs (0.u,0.s) -Chars 10466 - 10467 [-] 0. secs (0.u,0.s) -Chars 10468 - 10479 [repeat~red.] 0. secs (0.u,0.s) -Chars 10480 - 10487 [intros.] 0. secs (0.u,0.s) -Chars 10488 - 10512 [split;~intros;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 10513 - 10530 [now~rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 10531 - 10545 [now~rewrite~H.] 0. secs (0.u,0.s) -Chars 10547 - 10551 [Qed.] 0.004 secs (0.004u,0.s) -Chars 10553 - 10828 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) -Chars 10829 - 10835 [Proof.] 0. secs (0.u,0.s) -Chars 10838 - 10849 [repeat~red.] 0. secs (0.u,0.s) -Chars 10852 - 10859 [intros.] 0. secs (0.u,0.s) -Chars 10862 - 10876 [split;~intros.] 0. secs (0.u,0.s) -Chars 10879 - 10880 [-] 0. secs (0.u,0.s) -Chars 10881 - 10922 [inversion~H0;~subst;~econstruc...] 0.004 secs (0.004u,0.s) -Chars 10927 - 10928 [+] 0. secs (0.u,0.s) -Chars 10929 - 10946 [now~rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 10951 - 10952 [+] 0. secs (0.u,0.s) -Chars 10953 - 10972 [specialize~(HS~t1).] 0. secs (0.u,0.s) -Chars 10973 - 10990 [now~rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 10995 - 10996 [+] 0. secs (0.u,0.s) -Chars 10997 - 11014 [now~rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 11018 - 11019 [-] 0. secs (0.u,0.s) -Chars 11020 - 11061 [inversion~H0;~subst;~econstruc...] 0.006 secs (0.006u,0.s) -Chars 11067 - 11086 [all:~now~rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 11088 - 11092 [Qed.] 0.002 secs (0.002u,0.s) -Chars 11094 - 11303 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) -Chars 11304 - 11310 [Proof.] 0. secs (0.u,0.s) -Chars 11313 - 11324 [repeat~red.] 0. secs (0.u,0.s) -Chars 11325 - 11334 [revert~t.] 0. secs (0.u,0.s) -Chars 11338 - 11354 [tower~induction.] 0. secs (0.u,0.s) -Chars 11358 - 11359 [{] 0. secs (0.u,0.s) -Chars 11360 - 11366 [split.] 0. secs (0.u,0.s) -Chars 11367 - 11400 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) -Chars 11401 - 11402 [}] 0. secs (0.u,0.s) -Chars 11407 - 11413 [split.] 0. secs (0.u,0.s) -Chars 11416 - 11417 [-] 0. secs (0.u,0.s) -Chars 11418 - 11428 [intros~HI.] 0. secs (0.u,0.s) -Chars 11433 - 11462 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 11469 - 11476 [inv~HI.] 0.007 secs (0.007u,0.s) -Chars 11483 - 11484 [+] 0. secs (0.u,0.s) -Chars 11485 - 11503 [rewrite~H0~in~eq2.] 0.017 secs (0.017u,0.s) -Chars 11511 - 11544 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) -Chars 11550 - 11551 [+] 0. secs (0.u,0.s) -Chars 11552 - 11565 [econstructor.] 0. secs (0.u,0.s) -Chars 11566 - 11581 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 11582 - 11598 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 11605 - 11606 [+] 0. secs (0.u,0.s) -Chars 11607 - 11627 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 11628 - 11646 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 11650 - 11651 [-] 0. secs (0.u,0.s) -Chars 11652 - 11662 [intros~HI.] 0. secs (0.u,0.s) -Chars 11667 - 11696 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 11703 - 11710 [inv~HI.] 0.008 secs (0.008u,0.s) -Chars 11717 - 11718 [+] 0. secs (0.u,0.s) -Chars 11719 - 11740 [rewrite~<-~H0~in~eq2.] 0.015 secs (0.015u,0.s) -Chars 11748 - 11781 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) -Chars 11787 - 11788 [+] 0. secs (0.u,0.s) -Chars 11789 - 11802 [econstructor.] 0. secs (0.u,0.s) -Chars 11803 - 11819 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 11826 - 11827 [+] 0. secs (0.u,0.s) -Chars 11828 - 11848 [econstructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 11849 - 11864 [now~rewrite~H0.] 0. secs (0.u,0.s) -Chars 11866 - 11870 [Qed.] 0.005 secs (0.005u,0.s) -Chars 11872 - 12085 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) -Chars 12086 - 12092 [Proof.] 0. secs (0.u,0.s) -Chars 12095 - 12106 [repeat~red.] 0. secs (0.u,0.s) -Chars 12107 - 12116 [revert~t.] 0. secs (0.u,0.s) -Chars 12120 - 12136 [tower~induction.] 0. secs (0.u,0.s) -Chars 12140 - 12141 [{] 0. secs (0.u,0.s) -Chars 12142 - 12148 [split.] 0. secs (0.u,0.s) -Chars 12149 - 12182 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) -Chars 12183 - 12184 [}] 0. secs (0.u,0.s) -Chars 12189 - 12195 [split.] 0. secs (0.u,0.s) -Chars 12198 - 12199 [-] 0. secs (0.u,0.s) -Chars 12200 - 12210 [intros~HI.] 0. secs (0.u,0.s) -Chars 12215 - 12244 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 12251 - 12258 [inv~HI.] 0.007 secs (0.007u,0.s) -Chars 12265 - 12266 [+] 0. secs (0.u,0.s) -Chars 12267 - 12285 [rewrite~H0~in~eq2.] 0.013 secs (0.013u,0.s) -Chars 12293 - 12326 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) -Chars 12332 - 12333 [+] 0. secs (0.u,0.s) -Chars 12334 - 12347 [econstructor.] 0. secs (0.u,0.s) -Chars 12348 - 12363 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 12364 - 12380 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 12387 - 12388 [+] 0. secs (0.u,0.s) -Chars 12389 - 12409 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 12410 - 12428 [now~rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 12432 - 12433 [-] 0. secs (0.u,0.s) -Chars 12434 - 12444 [intros~HI.] 0. secs (0.u,0.s) -Chars 12450 - 12479 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 12486 - 12493 [inv~HI.] 0.008 secs (0.008u,0.s) -Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12523 [rewrite~<-~H0~in~eq2.] 0.012 secs (0.012u,0.s) -Chars 12531 - 12564 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) -Chars 12570 - 12571 [+] 0. secs (0.u,0.s) -Chars 12572 - 12585 [econstructor.] 0. secs (0.u,0.s) -Chars 12586 - 12602 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 12609 - 12610 [+] 0. secs (0.u,0.s) -Chars 12611 - 12631 [econstructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 12632 - 12647 [now~rewrite~H0.] 0. secs (0.u,0.s) -Chars 12649 - 12653 [Qed.] 0.004 secs (0.004u,0.s) -Chars 12934 - 13050 [Lemma~inj_pair2~:~~~forall~(U~...] 0. secs (0.u,0.s) -Chars 13051 - 13057 [Proof.] 0. secs (0.u,0.s) -Chars 13060 - 13067 [intros.] 0. secs (0.u,0.s) -Chars 13068 - 13087 [apply~JMeq.JMeq_eq.] 0. secs (0.u,0.s) -Chars 13090 - 13202 [refine~~~match~H~in~(_~=~w)~re...] 0. secs (0.u,0.s) -Chars 13203 - 13207 [Qed.] 0. secs (0.u,0.s) -Chars 13209 - 13408 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) -Chars 13409 - 13415 [Proof.] 0. secs (0.u,0.s) -Chars 13418 - 13429 [repeat~red.] 0. secs (0.u,0.s) -Chars 13430 - 13446 [tower~induction.] 0. secs (0.u,0.s) -Chars 13450 - 13451 [{] 0. secs (0.u,0.s) -Chars 13452 - 13458 [split.] 0. secs (0.u,0.s) -Chars 13459 - 13492 [all:~repeat~intro;~apply~H;~auto.] 0. secs (0.u,0.s) -Chars 13493 - 13494 [}] 0. secs (0.u,0.s) -Chars 13499 - 13505 [split.] 0. secs (0.u,0.s) -Chars 13508 - 13509 [-] 0. secs (0.u,0.s) -Chars 13510 - 13520 [intros~HI.] 0. secs (0.u,0.s) -Chars 13525 - 13554 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 13560 - 13571 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13579 - 13595 [inv~HI;~simpobs.] 0.019 secs (0.019u,0.s) -Chars 13600 - 13601 [+] 0. secs (0.u,0.s) -Chars 13602 - 13609 [inv~H0.] 0.007 secs (0.007u,0.s) -Chars 13610 - 13643 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) -Chars 13649 - 13650 [+] 0. secs (0.u,0.s) -Chars 13651 - 13658 [inv~H0.] 0.01 secs (0.01u,0.s) -Chars 13659 - 13672 [econstructor.] 0. secs (0.u,0.s) -Chars 13673 - 13689 [symmetry~in~REL.] 0. secs (0.u,0.s) -Chars 13690 - 13706 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 13712 - 13713 [+] 0. secs (0.u,0.s) -Chars 13714 - 13744 [eapply~eqitF_inv_VisF_l~in~H0.] 0. secs (0.u,0.s) -Chars 13745 - 13762 [crunch;~try~easy.] 0.008 secs (0.008u,0.s) -Chars 13770 - 13778 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13779 - 13799 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 13800 - 13807 [intros.] 0. secs (0.u,0.s) -Chars 13815 - 13830 [symmetry~in~H1.] 0. secs (0.u,0.s) -Chars 13831 - 13840 [eapply~H.] 0. secs (0.u,0.s) -Chars 13848 - 13857 [apply~H1.] 0. secs (0.u,0.s) -Chars 13858 - 13869 [all:~eauto.] 0. secs (0.u,0.s) -Chars 13872 - 13873 [-] 0. secs (0.u,0.s) -Chars 13874 - 13884 [intros~HI.] 0. secs (0.u,0.s) -Chars 13889 - 13918 [repeat~red;~repeat~red~in~HI.] 0. secs (0.u,0.s) -Chars 13923 - 13934 [step~in~H0.] 0. secs (0.u,0.s) -Chars 13942 - 13958 [inv~HI;~simpobs.] 0.02 secs (0.02u,0.s) -Chars 13966 - 13967 [+] 0. secs (0.u,0.s) -Chars 13968 - 13975 [inv~H0.] 0.008 secs (0.008u,0.s) -Chars 13976 - 14009 [eapply~Interp_iforest_Ret;~eauto.] 0. secs (0.u,0.s) -Chars 14015 - 14016 [+] 0. secs (0.u,0.s) -Chars 14017 - 14024 [inv~H0.] 0.013 secs (0.013u,0.s) -Chars 14025 - 14038 [econstructor.] 0. secs (0.u,0.s) -Chars 14039 - 14055 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 14061 - 14062 [+] 0. secs (0.u,0.s) -Chars 14063 - 14093 [eapply~eqitF_inv_VisF_r~in~H0.] 0. secs (0.u,0.s) -Chars 14094 - 14111 [crunch;~try~easy.] 0.007 secs (0.007u,0.s) -Chars 14119 - 14127 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 14128 - 14148 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 14149 - 14156 [intros.] 0. secs (0.u,0.s) -Chars 14164 - 14173 [eapply~H.] 0. secs (0.u,0.s) -Chars 14182 - 14191 [apply~H1.] 0. secs (0.u,0.s) -Chars 14192 - 14203 [all:~eauto.] 0. secs (0.u,0.s) -Chars 14204 - 14208 [Qed.] 0.013 secs (0.013u,0.s) -Chars 14325 - 14546 [Lemma~interp_iforest_correct_e...] 0. secs (0.u,0.s) -Chars 14547 - 14553 [Proof.] 0. secs (0.u,0.s) -Chars 14556 - 14563 [intros.] 0. secs (0.u,0.s) -Chars 14566 - 14581 [revert~t~t'~H1.] 0. secs (0.u,0.s) -Chars 14584 - 14596 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 14599 - 14614 [intros~t~t'~eq.] 0. secs (0.u,0.s) -Chars 14617 - 14661 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) -Chars 14664 - 14692 [rewrite~(itree_eta~t)~in~eq.] 0.014 secs (0.014u,0.s) -Chars 14695 - 14725 [destruct~(observe~t)~eqn:oeqt.] 0. secs (0.u,0.s) -Chars 14729 - 14730 [-] 0. secs (0.u,0.s) -Chars 14731 - 14745 [rewrite~<-~eq.] 0.06 secs (0.059u,0.s) -Chars 14746 - 14766 [rewrite~unfold_iter.] 0.057 secs (0.056u,0.s) -Chars 14767 - 14772 [bcbn.] 0. secs (0.u,0.s) -Chars 14778 - 14802 [rewrite~Eqit.bind_ret_l.] 0.057 secs (0.056u,0.s) -Chars 14803 - 14814 [repeat~red.] 0. secs (0.u,0.s) -Chars 14815 - 14823 [simpobs.] 0. secs (0.u,0.s) -Chars 14824 - 14841 [now~econstructor.] 0. secs (0.u,0.s) -Chars 14845 - 14846 [-] 0. secs (0.u,0.s) -Chars 14847 - 14861 [rewrite~<-~eq.] 0.056 secs (0.055u,0.s) -Chars 14862 - 14882 [rewrite~unfold_iter.] 0.056 secs (0.056u,0.s) -Chars 14883 - 14888 [bcbn.] 0. secs (0.u,0.s) -Chars 14889 - 14913 [rewrite~Eqit.bind_ret_l.] 0.056 secs (0.056u,0.s) -Chars 14918 - 14935 [rewrite~tau_eutt.] 0.056 secs (0.056u,0.s) -Chars 14941 - 14952 [repeat~red.] 0. secs (0.u,0.s) -Chars 14953 - 14961 [simpobs.] 0. secs (0.u,0.s) -Chars 14962 - 14975 [econstructor.] 0. secs (0.u,0.s) -Chars 14976 - 14990 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 14995 - 14996 [-] 0. secs (0.u,0.s) -Chars 14997 - 15011 [rewrite~<-~eq.] 0.057 secs (0.056u,0.s) -Chars 15012 - 15032 [rewrite~unfold_iter.] 0.057 secs (0.056u,0.s) -Chars 15033 - 15038 [bcbn.] 0. secs (0.u,0.s) -Chars 15043 - 15060 [rewrite~bind_map.] 0.057 secs (0.057u,0.s) -Chars 15061 - 15081 [repeat~red;~simpobs.] 0.001 secs (0.001u,0.s) -Chars 15082 - 15095 [econstructor.] 0. secs (0.u,0.s) -Chars 15100 - 15101 [+] 0. secs (0.u,0.s) -Chars 15102 - 15110 [apply~H.] 0. secs (0.u,0.s) -Chars 15116 - 15117 [+] 0. secs (0.u,0.s) -Chars 15118 - 15124 [ebind.] 0.004 secs (0.004u,0.s) -Chars 15125 - 15139 [intros;~subst.] 0. secs (0.u,0.s) -Chars 15140 - 15157 [rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) -Chars 15158 - 15170 [reflexivity.] 0. secs (0.u,0.s) -Chars 15176 - 15177 [+] 0. secs (0.u,0.s) -Chars 15178 - 15185 [intros.] 0. secs (0.u,0.s) -Chars 15186 - 15203 [rewrite~tau_eutt.] 0.022 secs (0.022u,0.s) -Chars 15204 - 15218 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 15220 - 15224 [Qed.] 0.012 secs (0.011u,0.s) -Chars 15328 - 15564 [#[global]~Instance~interp_ifor...] 0. secs (0.u,0.s) -Chars 15565 - 15571 [Proof.] 0. secs (0.u,0.s) -Chars 15574 - 15581 [intros.] 0. secs (0.u,0.s) -Chars 15584 - 15595 [repeat~red.] 0. secs (0.u,0.s) -Chars 15598 - 15627 [intros~t1~t2~eqt~s'~s~eqs~HI.] 0. secs (0.u,0.s) -Chars 15630 - 15636 [subst.] 0. secs (0.u,0.s) -Chars 15639 - 15661 [revert~t1~t2~eqt~s~HI.] 0. secs (0.u,0.s) -Chars 15664 - 15683 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 15687 - 15694 [intros.] 0. secs (0.u,0.s) -Chars 15697 - 15708 [step~in~HI.] 0. secs (0.u,0.s) -Chars 15712 - 15724 [step~in~eqt.] 0. secs (0.u,0.s) -Chars 15728 - 15744 [genobs~t1~obst1.] 0. secs (0.u,0.s) -Chars 15747 - 15763 [genobs~t2~obst2.] 0. secs (0.u,0.s) -Chars 15766 - 15802 [revert~t1~t2~Heqobst1~Heqobst2...] 0. secs (0.u,0.s) -Chars 15805 - 15827 [induction~eqt;~intros.] 0. secs (0.u,0.s) -Chars 15830 - 15831 [-] 0. secs (0.u,0.s) -Chars 15832 - 15839 [inv~HI.] 0.003 secs (0.003u,0.s) -Chars 15840 - 15853 [econstructor.] 0. secs (0.u,0.s) -Chars 15854 - 15875 [etransitivity;~eauto.] 0. secs (0.u,0.s) -Chars 15876 - 15882 [eauto.] 0. secs (0.u,0.s) -Chars 15887 - 15888 [-] 0. secs (0.u,0.s) -Chars 15889 - 15896 [inv~HI.] 0.004 secs (0.004u,0.s) -Chars 15902 - 15915 [econstructor.] 0. secs (0.u,0.s) -Chars 15916 - 15934 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 15937 - 15938 [-] 0. secs (0.u,0.s) -Chars 15939 - 15946 [inv~HI.] 0.006 secs (0.006u,0.s) -Chars 15952 - 15974 [apply~inj_pair2~in~H1.] 0. secs (0.u,0.s) -Chars 15979 - 16001 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) -Chars 16006 - 16012 [subst.] 0. secs (0.u,0.s) -Chars 16017 - 16030 [econstructor.] 0. secs (0.u,0.s) -Chars 16035 - 16045 [apply~HTA.] 0. secs (0.u,0.s) -Chars 16050 - 16060 [apply~eq2.] 0. secs (0.u,0.s) -Chars 16065 - 16077 [intros~a~Ha.] 0. secs (0.u,0.s) -Chars 16078 - 16097 [specialize~(REL~a).] 0. secs (0.u,0.s) -Chars 16098 - 16119 [specialize~(HK~a~Ha).] 0. secs (0.u,0.s) -Chars 16120 - 16131 [red~in~REL.] 0. secs (0.u,0.s) -Chars 16137 - 16148 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 16149 - 16159 [apply~REL.] 0. secs (0.u,0.s) -Chars 16160 - 16169 [apply~HK.] 0. secs (0.u,0.s) -Chars 16172 - 16173 [-] 0. secs (0.u,0.s) -Chars 16174 - 16187 [econstructor.] 0. secs (0.u,0.s) -Chars 16188 - 16193 [step.] 0. secs (0.u,0.s) -Chars 16199 - 16212 [eapply~IHeqt.] 0. secs (0.u,0.s) -Chars 16213 - 16225 [reflexivity.] 0. secs (0.u,0.s) -Chars 16226 - 16238 [eassumption.] 0. secs (0.u,0.s) -Chars 16239 - 16250 [assumption.] 0. secs (0.u,0.s) -Chars 16253 - 16254 [-] 0. secs (0.u,0.s) -Chars 16255 - 16262 [inv~HI.] 0.007 secs (0.007u,0.s) -Chars 16268 - 16281 [eapply~IHeqt.] 0. secs (0.u,0.s) -Chars 16282 - 16294 [reflexivity.] 0. secs (0.u,0.s) -Chars 16295 - 16307 [reflexivity.] 0. secs (0.u,0.s) -Chars 16312 - 16323 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 16325 - 16329 [Qed.] 0.01 secs (0.01u,0.s) -Chars 16331 - 16439 [Lemma~Leaf_Vis_sub~:~~~forall~...] 0. secs (0.u,0.s) -Chars 16440 - 16446 [Proof.] 0. secs (0.u,0.s) -Chars 16449 - 16456 [intros.] 0. secs (0.u,0.s) -Chars 16459 - 16474 [eapply~LeafVis.] 0. secs (0.u,0.s) -Chars 16475 - 16487 [reflexivity.] 0. secs (0.u,0.s) -Chars 16488 - 16496 [apply~H.] 0. secs (0.u,0.s) -Chars 16497 - 16501 [Qed.] 0. secs (0.u,0.s) -Chars 16503 - 16658 [Lemma~eutt_Leaf_~:~~~forall~{E...] 0. secs (0.u,0.s) -Chars 16659 - 16665 [Proof.] 0. secs (0.u,0.s) -Chars 16668 - 16679 [intros~E~R.] 0. secs (0.u,0.s) -Chars 16682 - 16701 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 16702 - 16709 [intros.] 0. secs (0.u,0.s) -Chars 16713 - 16749 [setoid_rewrite~(itree_eta~ta)~...] 0.002 secs (0.002u,0.s) -Chars 16752 - 16774 [destruct~(observe~ta).] 0. secs (0.u,0.s) -Chars 16777 - 16778 [-] 0. secs (0.u,0.s) -Chars 16779 - 16792 [econstructor.] 0. secs (0.u,0.s) -Chars 16794 - 16806 [split;~auto.] 0. secs (0.u,0.s) -Chars 16807 - 16816 [apply~IN.] 0. secs (0.u,0.s) -Chars 16817 - 16834 [now~econstructor.] 0. secs (0.u,0.s) -Chars 16837 - 16838 [-] 0. secs (0.u,0.s) -Chars 16839 - 16852 [econstructor.] 0. secs (0.u,0.s) -Chars 16853 - 16863 [apply~CIH.] 0. secs (0.u,0.s) -Chars 16864 - 16871 [intros.] 0. secs (0.u,0.s) -Chars 16872 - 16882 [eapply~IN.] 0. secs (0.u,0.s) -Chars 16883 - 16904 [now~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 16907 - 16908 [-] 0. secs (0.u,0.s) -Chars 16909 - 16922 [econstructor.] 0. secs (0.u,0.s) -Chars 16923 - 16930 [intros.] 0. secs (0.u,0.s) -Chars 16936 - 16946 [apply~CIH.] 0. secs (0.u,0.s) -Chars 16947 - 16954 [intros.] 0. secs (0.u,0.s) -Chars 16955 - 16965 [eapply~IN.] 0. secs (0.u,0.s) -Chars 16966 - 16986 [eapply~Leaf_Vis_sub.] 0. secs (0.u,0.s) -Chars 16987 - 16995 [apply~H.] 0. secs (0.u,0.s) -Chars 16996 - 17000 [Qed.] 0.003 secs (0.003u,0.s) -Chars 17002 - 17097 [Lemma~eutt_Leaf~:~~~forall~E~R...] 0. secs (0.u,0.s) -Chars 17098 - 17104 [Proof.] 0. secs (0.u,0.s) -Chars 17107 - 17114 [intros.] 0. secs (0.u,0.s) -Chars 17117 - 17134 [apply~eutt_Leaf_.] 0. secs (0.u,0.s) -Chars 17135 - 17140 [auto.] 0. secs (0.u,0.s) -Chars 17141 - 17145 [Qed.] 0. secs (0.u,0.s) -Chars 17251 - 17467 [Lemma~interp_iforest_trigger~:...] 0. secs (0.u,0.s) -Chars 17468 - 17474 [Proof.] 0. secs (0.u,0.s) -Chars 17477 - 17484 [intros.] 0. secs (0.u,0.s) -Chars 17487 - 17491 [red.] 0. secs (0.u,0.s) -Chars 17494 - 17511 [split;~[~~|~split~].] 0. secs (0.u,0.s) -Chars 17514 - 17515 [-] 0. secs (0.u,0.s) -Chars 17516 - 17538 [intros;~split;~intros.] 0. secs (0.u,0.s) -Chars 17543 - 17544 [+] 0. secs (0.u,0.s) -Chars 17545 - 17566 [unfold~trigger~in~H0.] 0. secs (0.u,0.s) -Chars 17567 - 17578 [step~in~H0.] 0. secs (0.u,0.s) -Chars 17586 - 17593 [inv~H0.] 0.003 secs (0.003u,0.s) -Chars 17601 - 17623 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) -Chars 17624 - 17646 [apply~inj_pair2~in~H4.] 0. secs (0.u,0.s) -Chars 17653 - 17659 [subst.] 0. secs (0.u,0.s) -Chars 17666 - 17720 [unfold~subevent,~resum,~ReSum_...] 0. secs (0.u,0.s) -Chars 17727 - 17744 [rewrite~eq2~in~H.] 0.012 secs (0.012u,0.s) -Chars 17751 - 17783 [assert~(x~<-~ta;;~k2~x~≈~ta).] 0. secs (0.u,0.s) -Chars 17790 - 17791 [{] 0. secs (0.u,0.s) -Chars 17792 - 17824 [rewrite~<-~(Eqit.bind_ret_r~ta).] 0.001 secs (0.001u,0.s) -Chars 17833 - 17902 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 17911 - 17935 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) -Chars 17936 - 17952 [apply~eutt_Leaf.] 0. secs (0.u,0.s) -Chars 17961 - 17968 [intros.] 0. secs (0.u,0.s) -Chars 17969 - 17981 [destruct~H0.] 0. secs (0.u,0.s) -Chars 17982 - 17988 [subst.] 0. secs (0.u,0.s) -Chars 17989 - 18011 [specialize~(HK~u2~H1).] 0. secs (0.u,0.s) -Chars 18012 - 18023 [step~in~HK.] 0. secs (0.u,0.s) -Chars 18024 - 18031 [inv~HK.] 0.002 secs (0.002u,0.s) -Chars 18038 - 18039 [}] 0. secs (0.u,0.s) -Chars 18046 - 18062 [rewrite~H0~in~H.] 0.012 secs (0.012u,0.s) -Chars 18069 - 18099 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18100 - 18125 [unfold~Eq1_iforest~in~HP.] 0. secs (0.u,0.s) -Chars 18126 - 18153 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) -Chars 18160 - 18170 [rewrite~P.] 0. secs (0.u,0.s) -Chars 18171 - 18181 [apply~HTA.] 0. secs (0.u,0.s) -Chars 18182 - 18191 [symmetry.] 0. secs (0.u,0.s) -Chars 18192 - 18203 [assumption.] 0. secs (0.u,0.s) -Chars 18208 - 18209 [+] 0. secs (0.u,0.s) -Chars 18210 - 18266 [unfold~trigger,~subevent,~resu...] 0. secs (0.u,0.s) -Chars 18273 - 18278 [step.] 0. secs (0.u,0.s) -Chars 18279 - 18339 [eapply~Interp_iforest_Vis~with...] 0. secs (0.u,0.s) -Chars 18346 - 18347 [*] 0. secs (0.u,0.s) -Chars 18348 - 18357 [apply~H0.] 0. secs (0.u,0.s) -Chars 18364 - 18365 [*] 0. secs (0.u,0.s) -Chars 18366 - 18391 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 18392 - 18416 [rewrite~Eqit.bind_ret_r.] 0. secs (0.u,0.s) -Chars 18417 - 18428 [assumption.] 0. secs (0.u,0.s) -Chars 18435 - 18436 [*] 0. secs (0.u,0.s) -Chars 18437 - 18444 [intros.] 0. secs (0.u,0.s) -Chars 18445 - 18450 [step.] 0. secs (0.u,0.s) -Chars 18451 - 18471 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 18474 - 18475 [-] 0. secs (0.u,0.s) -Chars 18476 - 18480 [hnf.] 0. secs (0.u,0.s) -Chars 18481 - 18503 [intros;~split;~intros.] 0. secs (0.u,0.s) -Chars 18508 - 18521 [rewrite~<-~H.] 0.028 secs (0.028u,0.s) -Chars 18522 - 18533 [assumption.] 0. secs (0.u,0.s) -Chars 18538 - 18548 [rewrite~H.] 0.027 secs (0.026u,0.s) -Chars 18549 - 18560 [assumption.] 0. secs (0.u,0.s) -Chars 18563 - 18564 [-] 0. secs (0.u,0.s) -Chars 18565 - 18569 [hnf.] 0. secs (0.u,0.s) -Chars 18574 - 18596 [intros;~split;~intros.] 0. secs (0.u,0.s) -Chars 18601 - 18631 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18632 - 18659 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) -Chars 18664 - 18681 [rewrite~P;~eauto.] 0. secs (0.u,0.s) -Chars 18682 - 18691 [symmetry.] 0. secs (0.u,0.s) -Chars 18692 - 18703 [assumption.] 0. secs (0.u,0.s) -Chars 18708 - 18738 [specialize~(HP~R~e~e~eq_refl).] 0. secs (0.u,0.s) -Chars 18739 - 18766 [destruct~HP~as~(P,~(_,~_)).] 0. secs (0.u,0.s) -Chars 18771 - 18788 [rewrite~P;~eauto.] 0. secs (0.u,0.s) -Chars 18789 - 18793 [Qed.] 0.008 secs (0.008u,0.s) -Chars 19261 - 19411 [Lemma~interp_iforest_spin_acce...] 0. secs (0.u,0.s) -Chars 19412 - 19418 [Proof.] 0. secs (0.u,0.s) -Chars 19421 - 19428 [intros.] 0. secs (0.u,0.s) -Chars 19431 - 19450 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 19451 - 19455 [cbn.] 0. secs (0.u,0.s) -Chars 19456 - 19469 [econstructor.] 0. secs (0.u,0.s) -Chars 19470 - 19480 [apply~CIH.] 0. secs (0.u,0.s) -Chars 19482 - 19486 [Qed.] 0. secs (0.u,0.s) -Chars 19527 - 19720 [Lemma~interp_iforest_tau~:~~~f...] 0. secs (0.u,0.s) -Chars 19721 - 19727 [Proof.] 0. secs (0.u,0.s) -Chars 19730 - 19737 [intros.] 0. secs (0.u,0.s) -Chars 19740 - 19757 [split;~[~~|~split~].] 0. secs (0.u,0.s) -Chars 19760 - 19761 [-] 0. secs (0.u,0.s) -Chars 19762 - 19784 [intros;~split;~intros.] 0. secs (0.u,0.s) -Chars 19789 - 19790 [+] 0. secs (0.u,0.s) -Chars 19791 - 19804 [rewrite~<-~H.] 0.022 secs (0.022u,0.s) -Chars 19811 - 19816 [step.] 0. secs (0.u,0.s) -Chars 19817 - 19834 [now~econstructor.] 0. secs (0.u,0.s) -Chars 19840 - 19841 [+] 0. secs (0.u,0.s) -Chars 19842 - 19852 [rewrite~H.] 0.022 secs (0.022u,0.s) -Chars 19859 - 19870 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19871 - 19878 [inv~H0.] 0.001 secs (0.001u,0.s) -Chars 19881 - 19882 [-] 0. secs (0.u,0.s) -Chars 19883 - 19901 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19904 - 19905 [-] 0. secs (0.u,0.s) -Chars 19906 - 19924 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19925 - 19929 [Qed.] 0.002 secs (0.002u,0.s) -Chars 19931 - 20130 [Lemma~interp_iforest_ret_inv~:...] 0. secs (0.u,0.s) -Chars 20131 - 20137 [Proof.] 0. secs (0.u,0.s) -Chars 20140 - 20147 [intros.] 0. secs (0.u,0.s) -Chars 20150 - 20160 [step~in~H.] 0. secs (0.u,0.s) -Chars 20161 - 20167 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 20171 - 20188 [exists~r2;~eauto.] 0. secs (0.u,0.s) -Chars 20189 - 20193 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20195 - 20467 [Lemma~interp_iforest_vis_inv~:...] 0. secs (0.u,0.s) -Chars 20468 - 20474 [Proof.] 0. secs (0.u,0.s) -Chars 20477 - 20484 [intros.] 0. secs (0.u,0.s) -Chars 20487 - 20494 [sinv~H.] 0.003 secs (0.003u,0.s) -Chars 20498 - 20520 [apply~inj_pair2~in~H2.] 0. secs (0.u,0.s) -Chars 20523 - 20545 [apply~inj_pair2~in~H3.] 0. secs (0.u,0.s) -Chars 20548 - 20554 [subst.] 0. secs (0.u,0.s) -Chars 20557 - 20567 [exists~ta.] 0. secs (0.u,0.s) -Chars 20568 - 20578 [exists~k2.] 0. secs (0.u,0.s) -Chars 20579 - 20591 [split;~auto.] 0. secs (0.u,0.s) -Chars 20592 - 20596 [Qed.] 0.002 secs (0.002u,0.s) -Chars 20598 - 20796 [Lemma~interp_iforest_tau_inv~:...] 0. secs (0.u,0.s) -Chars 20797 - 20803 [Proof.] 0. secs (0.u,0.s) -Chars 20806 - 20813 [intros.] 0. secs (0.u,0.s) -Chars 20816 - 20823 [sinv~H.] 0.001 secs (0.001u,0.s) -Chars 20825 - 20829 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20831 - 21129 [Lemma~case_iforest_handler_cor...] 0.001 secs (0.001u,0.s) -Chars 21130 - 21136 [Proof.] 0. secs (0.u,0.s) -Chars 21139 - 21182 [intros~E1~E2~F~h1_spec~h2_spec...] 0. secs (0.u,0.s) -Chars 21185 - 21213 [unfold~handler_correct~in~*.] 0. secs (0.u,0.s) -Chars 21216 - 21227 [intros~T~e.] 0. secs (0.u,0.s) -Chars 21230 - 21241 [destruct~e.] 0. secs (0.u,0.s) -Chars 21242 - 21251 [apply~C1.] 0. secs (0.u,0.s) -Chars 21252 - 21261 [apply~C2.] 0. secs (0.u,0.s) -Chars 21262 - 21266 [Qed.] 0. secs (0.u,0.s) -Chars 21268 - 21500 [Definition~iforest_compose~{F~...] 0. secs (0.u,0.s) -Chars 21502 - 21768 [Definition~handler_correct_ifo...] 0. secs (0.u,0.s) -Chars 21771 - 21847 [Definition~singletonT~{E}~:~it...] 0. secs (0.u,0.s) -Chars 21849 - 21993 [Definition~iter_cont~{I}~{E}~{...] 0. secs (0.u,0.s) -Chars 21995 - 22315 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) -Chars 22317 - 22547 [Lemma~eqit_Leaf_bind'~{E}~{R}~...] 0. secs (0.u,0.s) -Chars 22548 - 22554 [Proof.] 0. secs (0.u,0.s) -Chars 22557 - 22564 [intros.] 0. secs (0.u,0.s) -Chars 22565 - 22597 [eapply~eqit_clo_bind_gen;~eauto.] 0.004 secs (0.004u,0.s) -Chars 22598 - 22612 [intros;~subst.] 0. secs (0.u,0.s) -Chars 22616 - 22626 [eapply~H0.] 0. secs (0.u,0.s) -Chars 22627 - 22633 [eauto.] 0. secs (0.u,0.s) -Chars 22635 - 22639 [Qed.] 0. secs (0.u,0.s) -Chars 22641 - 22915 [Lemma~eqit_Leaf_bind''~{E}~{R}...] 0. secs (0.u,0.s) -Chars 22916 - 22922 [Proof.] 0. secs (0.u,0.s) -Chars 22925 - 22932 [intros.] 0. secs (0.u,0.s) -Chars 22933 - 22965 [eapply~eqit_clo_bind_gen;~eauto.] 0.002 secs (0.002u,0.s) -Chars 22966 - 22980 [intros;~subst.] 0. secs (0.u,0.s) -Chars 22984 - 22994 [eapply~H0.] 0. secs (0.u,0.s) -Chars 22995 - 23001 [eauto.] 0. secs (0.u,0.s) -Chars 23003 - 23007 [Qed.] 0. secs (0.u,0.s) -Chars 23009 - 23094 [Lemma~eutt_ret_vis_abs~:~~~for...] 0. secs (0.u,0.s) -Chars 23095 - 23101 [Proof.] 0. secs (0.u,0.s) -Chars 23104 - 23111 [intros.] 0. secs (0.u,0.s) -Chars 23114 - 23125 [now~sinv~H.] 0.001 secs (0.001u,0.s) -Chars 23127 - 23131 [Qed.] 0.001 secs (0.001u,0.s) -Chars 23139 - 23218 [Ltac~simpl_iter~:=~unfold~iter...] 0. secs (0.u,0.s) -Chars 23220 - 23521 [Definition~g~{a~b~:~Type}~{E}~...] 0.006 secs (0.006u,0.s) -Chars 23523 - 23630 [Definition~f~{a~b~:~Type}~{E}~...] 0. secs (0.u,0.s) -Chars 23632 - 23924 [Lemma~iter_succ_dinatural~:~~~...] 0.001 secs (0.001u,0.s) -Chars 23925 - 23931 [Proof.] 0. secs (0.u,0.s) -Chars 23934 - 23941 [intros.] 0. secs (0.u,0.s) -Chars 23942 - 23965 [rewrite~iter_dinatural.] 0.004 secs (0.003u,0.s) -Chars 23966 - 23978 [reflexivity.] 0. secs (0.u,0.s) -Chars 23979 - 23983 [Qed.] 0.001 secs (0.001u,0.s) -Chars 23985 - 24679 [Lemma~iter_eq_start_index~:~~~...] 0.008 secs (0.008u,0.s) -Chars 24680 - 24686 [Proof.] 0. secs (0.u,0.s) -Chars 24689 - 24708 [intros~a~b~m~x0~a1.] 0. secs (0.u,0.s) -Chars 24711 - 24756 [pose~proof~(iter_succ_dinatura...] 0. secs (0.u,0.s) -Chars 24759 - 24783 [specialize~(H0~(a1,~0)).] 0. secs (0.u,0.s) -Chars 24786 - 24814 [unfold~f~at~1,~g~at~1~in~H0.] 0. secs (0.u,0.s) -Chars 24817 - 24857 [unfold~cat~at~1,~Cat_Kleisli~a...] 0. secs (0.u,0.s) -Chars 24860 - 24979 [match~goal~with~|~H:(?body1~≈~...] 0.001 secs (0.001u,0.s) -Chars 24981 - 25000 [assert~(s1~≈~s2).] 0. secs (0.u,0.s) -Chars 25001 - 25002 [{] 0. secs (0.u,0.s) -Chars 25007 - 25013 [subst.] 0. secs (0.u,0.s) -Chars 25018 - 25171 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) -Chars 25176 - 25205 [assert~(iter~k1~⩯~iter~k2).] 0. secs (0.u,0.s) -Chars 25206 - 25207 [{] 0. secs (0.u,0.s) -Chars 25214 - 25243 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 25250 - 25256 [subst.] 0. secs (0.u,0.s) -Chars 25257 - 25266 [do~3~red.] 0. secs (0.u,0.s) -Chars 25267 - 25274 [intros.] 0. secs (0.u,0.s) -Chars 25281 - 25324 [destruct~a0;~rewrite~Monad.bin...] 0.004 secs (0.003u,0.s) -Chars 25331 - 25343 [reflexivity.] 0. secs (0.u,0.s) -Chars 25348 - 25349 [}] 0. secs (0.u,0.s) -Chars 25354 - 25368 [do~3~red~in~H.] 0. secs (0.u,0.s) -Chars 25373 - 25381 [apply~H.] 0. secs (0.u,0.s) -Chars 25384 - 25385 [}] 0. secs (0.u,0.s) -Chars 25388 - 25401 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) -Chars 25402 - 25408 [subst.] 0.001 secs (0.001u,0.s) -Chars 25409 - 25417 [clear~H.] 0. secs (0.u,0.s) -Chars 25418 - 25429 [rewrite~H0.] 0.002 secs (0.002u,0.s) -Chars 25432 - 25444 [unfold~f,~g.] 0. secs (0.u,0.s) -Chars 25447 - 25471 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 25472 - 25497 [rewrite~Monad.bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 25500 - 25504 [cbn.] 0. secs (0.u,0.s) -Chars 25507 - 25615 [match~goal~with~|~|-~iter~?bod...] 0.001 secs (0.001u,0.s) -Chars 25618 - 25647 [assert~(iter~i1~⩯~iter~i2).] 0. secs (0.u,0.s) -Chars 25648 - 25649 [{] 0. secs (0.u,0.s) -Chars 25654 - 25683 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 25688 - 25694 [subst.] 0. secs (0.u,0.s) -Chars 25699 - 25708 [do~3~red.] 0. secs (0.u,0.s) -Chars 25709 - 25716 [intros.] 0. secs (0.u,0.s) -Chars 25721 - 25733 [destruct~a0.] 0. secs (0.u,0.s) -Chars 25734 - 25757 [rewrite~Eqit.bind_bind.] 0.002 secs (0.002u,0.s) -Chars 25762 - 25784 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) -Chars 25785 - 25797 [reflexivity.] 0. secs (0.u,0.s) -Chars 25802 - 25809 [intros.] 0. secs (0.u,0.s) -Chars 25810 - 25820 [rewrite~H.] 0. secs (0.u,0.s) -Chars 25821 - 25880 [destruct~u2;~rewrite~Eqit.bind...] 0.004 secs (0.004u,0.s) -Chars 25883 - 25884 [}] 0. secs (0.u,0.s) -Chars 25887 - 25901 [do~3~red~in~H.] 0. secs (0.u,0.s) -Chars 25904 - 25912 [apply~H.] 0. secs (0.u,0.s) -Chars 25913 - 25917 [Qed.] 0.01 secs (0.01u,0.s) -Chars 25920 - 26137 [Definition~Eq1_iforest'~{E}~:~...] 0. secs (0.u,0.s) -Chars 26139 - 26240 [Lemma~Eq1_iforest'_Eq1_iforest...] 0. secs (0.u,0.s) -Chars 26241 - 26247 [Proof.] 0. secs (0.u,0.s) -Chars 26250 - 26257 [intros.] 0. secs (0.u,0.s) -Chars 26260 - 26264 [red.] 0. secs (0.u,0.s) -Chars 26267 - 26276 [red~in~H.] 0. secs (0.u,0.s) -Chars 26279 - 26312 [destruct~H~as~(HXY,~(EPA,~EPA')).] 0. secs (0.u,0.s) -Chars 26315 - 26321 [split.] 0. secs (0.u,0.s) -Chars 26324 - 26331 [intros.] 0. secs (0.u,0.s) -Chars 26334 - 26343 [exists~x.] 0. secs (0.u,0.s) -Chars 26344 - 26366 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) -Chars 26367 - 26388 [specialize~(HXY~x~x).] 0. secs (0.u,0.s) -Chars 26390 - 26400 [apply~HXY.] 0. secs (0.u,0.s) -Chars 26401 - 26413 [reflexivity.] 0. secs (0.u,0.s) -Chars 26414 - 26425 [assumption.] 0. secs (0.u,0.s) -Chars 26428 - 26445 [split;~try~tauto.] 0. secs (0.u,0.s) -Chars 26448 - 26455 [intros.] 0. secs (0.u,0.s) -Chars 26458 - 26467 [exists~y.] 0. secs (0.u,0.s) -Chars 26468 - 26490 [split;~[~reflexivity~|~~].] 0. secs (0.u,0.s) -Chars 26491 - 26512 [specialize~(HXY~y~y).] 0. secs (0.u,0.s) -Chars 26514 - 26524 [apply~HXY.] 0. secs (0.u,0.s) -Chars 26525 - 26537 [reflexivity.] 0. secs (0.u,0.s) -Chars 26538 - 26549 [assumption.] 0. secs (0.u,0.s) -Chars 26550 - 26554 [Qed.] 0. secs (0.u,0.s) -Chars 26611 - 26739 [Lemma~ret_bind~:~~~forall~{E}~...] 0. secs (0.u,0.s) -Chars 26740 - 26746 [Proof.] 0. secs (0.u,0.s) -Chars 26749 - 26756 [intros.] 0. secs (0.u,0.s) -Chars 26759 - 26776 [split;~[~~|~split~].] 0. secs (0.u,0.s) -Chars 26779 - 26780 [-] 0. secs (0.u,0.s) -Chars 26781 - 26817 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) -Chars 26822 - 26823 [*] 0. secs (0.u,0.s) -Chars 26824 - 26833 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 26840 - 26860 [repeat~red~in~eqtt'.] 0. secs (0.u,0.s) -Chars 26867 - 26911 [destruct~eqtt'~as~(ta,~(k,~(EQ...] 0. secs (0.u,0.s) -Chars 26916 - 26917 [+] 0. secs (0.u,0.s) -Chars 26918 - 26950 [unfold~bind,~Monad_itree~in~EQ2.] 0. secs (0.u,0.s) -Chars 26951 - 26991 [rewrite~EQ1,~Eqit.bind_ret_l,~...] 0.032 secs (0.032u,0.s) -Chars 26998 - 27031 [eapply~H;~[~apply~EQ2~|~apply~...] 0. secs (0.u,0.s) -Chars 27038 - 27050 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) -Chars 27051 - 27070 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 27074 - 27075 [*] 0. secs (0.u,0.s) -Chars 27076 - 27080 [cbn.] 0. secs (0.u,0.s) -Chars 27086 - 27145 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) -Chars 27152 - 27153 [+] 0. secs (0.u,0.s) -Chars 27154 - 27179 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 27180 - 27217 [rewrite~Eqit.bind_ret_l;~refle...] 0. secs (0.u,0.s) -Chars 27224 - 27225 [+] 0. secs (0.u,0.s) -Chars 27226 - 27233 [intros.] 0. secs (0.u,0.s) -Chars 27234 - 27266 [apply~Leaf_Ret_inv~in~H0;~subst.] 0. secs (0.u,0.s) -Chars 27267 - 27289 [revert~eqtt';~apply~H.] 0. secs (0.u,0.s) -Chars 27290 - 27295 [auto.] 0. secs (0.u,0.s) -Chars 27298 - 27299 [-] 0. secs (0.u,0.s) -Chars 27300 - 27338 [intros~t~t'~EQ;~cbn;~split;~in...] 0. secs (0.u,0.s) -Chars 27343 - 27344 [*] 0. secs (0.u,0.s) -Chars 27345 - 27386 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) -Chars 27393 - 27453 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) -Chars 27460 - 27462 [--] 0. secs (0.u,0.s) -Chars 27463 - 27488 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 27489 - 27513 [rewrite~Eqit.bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 27514 - 27523 [symmetry.] 0. secs (0.u,0.s) -Chars 27524 - 27535 [assumption.] 0. secs (0.u,0.s) -Chars 27542 - 27544 [--] 0. secs (0.u,0.s) -Chars 27545 - 27558 [intros~?~RET.] 0. secs (0.u,0.s) -Chars 27559 - 27592 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) -Chars 27593 - 27610 [rewrite~EQ2,~EQ1.] 0.006 secs (0.006u,0.s) -Chars 27620 - 27624 [cbn.] 0. secs (0.u,0.s) -Chars 27625 - 27644 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 27645 - 27654 [apply~KA.] 0. secs (0.u,0.s) -Chars 27655 - 27667 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) -Chars 27668 - 27686 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 27691 - 27692 [*] 0. secs (0.u,0.s) -Chars 27693 - 27734 [destruct~HX~as~(ta,~(k,~(EQ1,~...] 0. secs (0.u,0.s) -Chars 27741 - 27801 [exists~(Ret~x),(fun~_~=>~t);~s...] 0. secs (0.u,0.s) -Chars 27808 - 27810 [--] 0. secs (0.u,0.s) -Chars 27811 - 27836 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 27837 - 27861 [rewrite~Eqit.bind_ret_l.] 0. secs (0.u,0.s) -Chars 27862 - 27874 [reflexivity.] 0. secs (0.u,0.s) -Chars 27881 - 27883 [--] 0. secs (0.u,0.s) -Chars 27884 - 27897 [intros~?~RET.] 0. secs (0.u,0.s) -Chars 27898 - 27931 [apply~Leaf_Ret_inv~in~RET;~subst.] 0. secs (0.u,0.s) -Chars 27932 - 27953 [rewrite~EQ,~EQ2,~EQ1.] 0.009 secs (0.009u,0.s) -Chars 27963 - 27967 [cbn.] 0. secs (0.u,0.s) -Chars 27968 - 27987 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 27988 - 27997 [apply~KA.] 0. secs (0.u,0.s) -Chars 27998 - 28010 [rewrite~EQ1.] 0.001 secs (0.001u,0.s) -Chars 28011 - 28029 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 28032 - 28033 [-] 0. secs (0.u,0.s) -Chars 28034 - 28045 [assumption.] 0. secs (0.u,0.s) -Chars 28046 - 28050 [Qed.] 0.004 secs (0.004u,0.s) -Chars 28052 - 28177 [#[global]~Instance~bind_ifores...] 0. secs (0.u,0.s) -Chars 28178 - 28184 [Proof.] 0. secs (0.u,0.s) -Chars 28187 - 28255 [repeat~red;~intros~PA1~PA2~EQP...] 0. secs (0.u,0.s) -Chars 28258 - 28259 [-] 0. secs (0.u,0.s) -Chars 28260 - 28298 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) -Chars 28303 - 28307 [red.] 0. secs (0.u,0.s) -Chars 28312 - 28325 [exists~ta,k.] 0. secs (0.u,0.s) -Chars 28326 - 28332 [split.] 0. secs (0.u,0.s) -Chars 28337 - 28338 [+] 0. secs (0.u,0.s) -Chars 28339 - 28352 [destruct~EQP.] 0. secs (0.u,0.s) -Chars 28353 - 28369 [apply~(H~ta~ta).] 0. secs (0.u,0.s) -Chars 28370 - 28382 [reflexivity.] 0. secs (0.u,0.s) -Chars 28383 - 28394 [assumption.] 0. secs (0.u,0.s) -Chars 28399 - 28400 [+] 0. secs (0.u,0.s) -Chars 28401 - 28407 [split.] 0. secs (0.u,0.s) -Chars 28408 - 28423 [rewrite~<-~EQt.] 0. secs (0.u,0.s) -Chars 28424 - 28435 [assumption.] 0. secs (0.u,0.s) -Chars 28436 - 28443 [intros.] 0. secs (0.u,0.s) -Chars 28450 - 28468 [repeat~red~in~EQK.] 0. secs (0.u,0.s) -Chars 28470 - 28499 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) -Chars 28500 - 28513 [destruct~EQK.] 0. secs (0.u,0.s) -Chars 28520 - 28534 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 28535 - 28544 [apply~HK.] 0. secs (0.u,0.s) -Chars 28545 - 28556 [assumption.] 0. secs (0.u,0.s) -Chars 28557 - 28569 [reflexivity.] 0. secs (0.u,0.s) -Chars 28571 - 28572 [-] 0. secs (0.u,0.s) -Chars 28574 - 28612 [destruct~H~as~(ta,~(k,~(HA,~(e...] 0. secs (0.u,0.s) -Chars 28617 - 28621 [red.] 0. secs (0.u,0.s) -Chars 28626 - 28639 [exists~ta,k.] 0. secs (0.u,0.s) -Chars 28640 - 28646 [split.] 0. secs (0.u,0.s) -Chars 28651 - 28652 [+] 0. secs (0.u,0.s) -Chars 28653 - 28666 [destruct~EQP.] 0. secs (0.u,0.s) -Chars 28667 - 28683 [apply~(H~ta~ta).] 0. secs (0.u,0.s) -Chars 28684 - 28696 [reflexivity.] 0. secs (0.u,0.s) -Chars 28697 - 28708 [assumption.] 0. secs (0.u,0.s) -Chars 28713 - 28714 [+] 0. secs (0.u,0.s) -Chars 28715 - 28721 [split.] 0. secs (0.u,0.s) -Chars 28722 - 28734 [rewrite~EQt.] 0.001 secs (0.001u,0.s) -Chars 28735 - 28746 [assumption.] 0. secs (0.u,0.s) -Chars 28747 - 28754 [intros.] 0. secs (0.u,0.s) -Chars 28761 - 28779 [repeat~red~in~EQK.] 0. secs (0.u,0.s) -Chars 28781 - 28810 [specialize~(EQK~a~a~eq_refl).] 0. secs (0.u,0.s) -Chars 28811 - 28824 [destruct~EQK.] 0. secs (0.u,0.s) -Chars 28831 - 28842 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 28843 - 28852 [apply~HK.] 0. secs (0.u,0.s) -Chars 28853 - 28864 [assumption.] 0. secs (0.u,0.s) -Chars 28865 - 28877 [reflexivity.] 0. secs (0.u,0.s) -Chars 28878 - 28882 [Qed.] 0.002 secs (0.002u,0.s) -Chars 28884 - 29021 [#[global]~Instance~bind_Propt_...] 0. secs (0.u,0.s) -Chars 29022 - 29028 [Proof.] 0. secs (0.u,0.s) -Chars 29031 - 29042 [repeat~red.] 0. secs (0.u,0.s) -Chars 29045 - 29052 [intros.] 0. secs (0.u,0.s) -Chars 29055 - 29072 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 29075 - 29114 [destruct~H0~as~(ta,~(k,~(HA,~(...] 0. secs (0.u,0.s) -Chars 29117 - 29130 [exists~ta,k.] 0. secs (0.u,0.s) -Chars 29131 - 29143 [split;~auto.] 0. secs (0.u,0.s) -Chars 29144 - 29150 [split.] 0. secs (0.u,0.s) -Chars 29151 - 29167 [rewrite~H;~auto.] 0. secs (0.u,0.s) -Chars 29168 - 29179 [assumption.] 0. secs (0.u,0.s) -Chars 29180 - 29184 [Qed.] 0.001 secs (0.001u,0.s) -Chars 29186 - 29259 [#[local]~Notation~agrees_itree...] 0. secs (0.u,0.s) -Chars 29261 - 29506 [Definition~bind_stronger~{E}~{...] 0.001 secs (0.001u,0.s) -Chars 29508 - 29680 [Lemma~agree_itree_Leaf~E~A~B~(...] 0. secs (0.u,0.s) -Chars 29681 - 29687 [Proof.] 0. secs (0.u,0.s) -Chars 29690 - 29704 [split;~intros.] 0. secs (0.u,0.s) -Chars 29707 - 29708 [-] 0. secs (0.u,0.s) -Chars 29709 - 29713 [cbn.] 0. secs (0.u,0.s) -Chars 29714 - 29718 [red.] 0. secs (0.u,0.s) -Chars 29723 - 29740 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 29745 - 29769 [eapply~eqit_Leaf_bind''.] 0. secs (0.u,0.s) -Chars 29774 - 29775 [+] 0. secs (0.u,0.s) -Chars 29776 - 29788 [reflexivity.] 0. secs (0.u,0.s) -Chars 29793 - 29794 [+] 0. secs (0.u,0.s) -Chars 29795 - 29802 [intros.] 0. secs (0.u,0.s) -Chars 29803 - 29818 [apply~eqit_Ret.] 0. secs (0.u,0.s) -Chars 29819 - 29827 [apply~H.] 0. secs (0.u,0.s) -Chars 29828 - 29839 [assumption.] 0. secs (0.u,0.s) -Chars 29842 - 29843 [-] 0. secs (0.u,0.s) -Chars 29844 - 29853 [revert~H.] 0. secs (0.u,0.s) -Chars 29858 - 29920 [induction~H0;~cbn;~unfold~ITre...] 0.062 secs (0.061u,0.s) -Chars 29925 - 29926 [+] 0. secs (0.u,0.s) -Chars 29927 - 29963 [intros~H';~apply~eqit_inv_Ret~...] 0. secs (0.u,0.s) -Chars 29964 - 29969 [auto.] 0. secs (0.u,0.s) -Chars 29974 - 29975 [+] 0. secs (0.u,0.s) -Chars 29976 - 30009 [rewrite~2!tau_eutt;~apply~IHLeaf.] 0.018 secs (0.018u,0.s) -Chars 30014 - 30015 [+] 0. secs (0.u,0.s) -Chars 30016 - 30053 [intros~H';~eapply~eqit_inv_Vis...] 0. secs (0.u,0.s) -Chars 30054 - 30060 [eauto.] 0. secs (0.u,0.s) -Chars 30061 - 30065 [Qed.] 0.005 secs (0.005u,0.s) -Chars 30067 - 30279 [Lemma~distinguish_bind~{E}~{A}...] 0. secs (0.u,0.s) -Chars 30280 - 30286 [Proof.] 0. secs (0.u,0.s) -Chars 30289 - 30339 [intros~HI;~eapply~eqit_bind_Le...] 0. secs (0.u,0.s) -Chars 30340 - 30344 [Qed.] 0. secs (0.u,0.s) -Chars 30346 - 30502 [Lemma~not_Leaf~{E}~{A}~{B}~:~~...] 0. secs (0.u,0.s) -Chars 30503 - 30509 [Proof.] 0. secs (0.u,0.s) -Chars 30512 - 30541 [intros~[b]~ta~[tb~HK]~a~HRet.] 0. secs (0.u,0.s) -Chars 30542 - 30585 [revert~tb~HK;~induction~HRet;~...] 0. secs (0.u,0.s) -Chars 30588 - 30589 [-] 0. secs (0.u,0.s) -Chars 30590 - 30623 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.008u,0.s) -Chars 30624 - 30647 [setoid_rewrite~H~in~HK.] 0.001 secs (0.001u,0.s) -Chars 30652 - 30690 [generalize~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 30691 - 30721 [rewrite~(HK~(fun~_~=>~ret~b)).] 0.008 secs (0.008u,0.s) -Chars 30726 - 30750 [apply~eutt_Ret_spin_abs.] 0. secs (0.u,0.s) -Chars 30753 - 30754 [-] 0. secs (0.u,0.s) -Chars 30755 - 30774 [eapply~(IHHRet~tb).] 0. secs (0.u,0.s) -Chars 30775 - 30803 [intros~k;~specialize~(HK~k).] 0. secs (0.u,0.s) -Chars 30808 - 30818 [cbn~in~HK.] 0. secs (0.u,0.s) -Chars 30819 - 30848 [rewrite~unfold_bind,~H~in~HK.] 0.018 secs (0.018u,0.s) -Chars 30849 - 30872 [rewrite~tau_eutt~in~HK.] 0. secs (0.u,0.s) -Chars 30873 - 30878 [auto.] 0. secs (0.u,0.s) -Chars 30881 - 30882 [-] 0. secs (0.u,0.s) -Chars 30883 - 30916 [setoid_rewrite~unfold_bind~in~HK.] 0.008 secs (0.008u,0.s) -Chars 30917 - 30951 [setoid_rewrite~H~in~HK;~clear~...] 0.002 secs (0.002u,0.s) -Chars 30956 - 30996 [pose~proof~(HK~(fun~_~=>~ITree...] 0. secs (0.u,0.s) -Chars 31001 - 31057 [apply~(IHHRet~(ITree.bind~(k~x...] 0. secs (0.u,0.s) -Chars 31062 - 31095 [intros~k';~rewrite~(HK~k')~in~t2.] 0.012 secs (0.011u,0.s) -Chars 31100 - 31143 [eapply~eqit_inv_Vis~in~t2;~sym...] 0. secs (0.u,0.s) -Chars 31144 - 31148 [Qed.] 0.003 secs (0.003u,0.s) -Chars 31206 - 31324 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) -Chars 31325 - 31331 [Proof.] 0. secs (0.u,0.s) -Chars 31334 - 31341 [intros.] 0. secs (0.u,0.s) -Chars 31344 - 31361 [split;~[~~|~split~].] 0. secs (0.u,0.s) -Chars 31364 - 31365 [+] 0. secs (0.u,0.s) -Chars 31366 - 31402 [intros~t~t'~eq;~split;~intros~...] 0. secs (0.u,0.s) -Chars 31407 - 31408 [*] 0. secs (0.u,0.s) -Chars 31409 - 31418 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 31425 - 31470 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) -Chars 31477 - 31519 [eapply~H;~[~symmetry;~eauto~|~...] 0. secs (0.u,0.s) -Chars 31526 - 31557 [eapply~H;~[~eauto~|~clear~EQ~t~].] 0. secs (0.u,0.s) -Chars 31564 - 31573 [eapply~H.] 0. secs (0.u,0.s) -Chars 31574 - 31583 [2:~eauto.] 0. secs (0.u,0.s) -Chars 31590 - 31630 [rewrite~<-~(Monad.bind_ret_r~_...] 0. secs (0.u,0.s) -Chars 31637 - 31676 [apply~eqit_Leaf_bind';~[~refle...] 0. secs (0.u,0.s) -Chars 31685 - 31692 [intros.] 0. secs (0.u,0.s) -Chars 31701 - 31724 [rewrite~(HRET~r);~auto.] 0. secs (0.u,0.s) -Chars 31730 - 31731 [*] 0. secs (0.u,0.s) -Chars 31732 - 31736 [cbn.] 0. secs (0.u,0.s) -Chars 31743 - 31794 [exists~t',(fun~x~=>~Ret~x);~sp...] 0. secs (0.u,0.s) -Chars 31801 - 31826 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 31827 - 31857 [rewrite~Eqit.bind_ret_r;~auto.] 0. secs (0.u,0.s) -Chars 31864 - 31884 [intros;~reflexivity.] 0. secs (0.u,0.s) -Chars 31888 - 31889 [+] 0. secs (0.u,0.s) -Chars 31890 - 31925 [intros~x~y~EQ;~split;~intros~e...] 0. secs (0.u,0.s) -Chars 31930 - 31931 [*] 0. secs (0.u,0.s) -Chars 31932 - 31941 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 31948 - 31994 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) -Chars 32001 - 32043 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) -Chars 32050 - 32070 [rewrite~<-~EQ;~auto.] 0. secs (0.u,0.s) -Chars 32076 - 32077 [*] 0. secs (0.u,0.s) -Chars 32078 - 32087 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 32094 - 32140 [destruct~eqtt'~as~(ta,~(k,~(HP...] 0. secs (0.u,0.s) -Chars 32147 - 32189 [exists~ta,k;~split;~[~auto~|~~...] 0. secs (0.u,0.s) -Chars 32196 - 32213 [rewrite~EQ;~auto.] 0. secs (0.u,0.s) -Chars 32216 - 32217 [+] 0. secs (0.u,0.s) -Chars 32218 - 32223 [auto.] 0. secs (0.u,0.s) -Chars 32224 - 32228 [Qed.] 0.003 secs (0.003u,0.s) -Chars 32230 - 32323 [Definition~EQ_REL~{E}~{A}~(ta~...] 0. secs (0.u,0.s) -Chars 32325 - 32395 [Lemma~Symmteric_EQ_REL~{E}~{A}...] 0. secs (0.u,0.s) -Chars 32396 - 32402 [Proof.] 0. secs (0.u,0.s) -Chars 32405 - 32416 [repeat~red.] 0. secs (0.u,0.s) -Chars 32419 - 32439 [intros~a~b~(EQ,~H).] 0. secs (0.u,0.s) -Chars 32442 - 32448 [split.] 0. secs (0.u,0.s) -Chars 32451 - 32452 [-] 0. secs (0.u,0.s) -Chars 32453 - 32462 [symmetry.] 0. secs (0.u,0.s) -Chars 32463 - 32474 [assumption.] 0. secs (0.u,0.s) -Chars 32477 - 32478 [-] 0. secs (0.u,0.s) -Chars 32479 - 32491 [subst;~auto.] 0. secs (0.u,0.s) -Chars 32492 - 32496 [Qed.] 0. secs (0.u,0.s) -Chars 32498 - 32570 [Lemma~Transitive_EQ_REL~{E}~{A...] 0. secs (0.u,0.s) -Chars 32571 - 32577 [Proof.] 0. secs (0.u,0.s) -Chars 32580 - 32591 [repeat~red.] 0. secs (0.u,0.s) -Chars 32594 - 32629 [intros~a~b~c~(EQ1,~H1)~(EQ2,~H2).] 0. secs (0.u,0.s) -Chars 32632 - 32638 [split.] 0. secs (0.u,0.s) -Chars 32641 - 32642 [-] 0. secs (0.u,0.s) -Chars 32643 - 32655 [rewrite~EQ1.] 0. secs (0.u,0.s) -Chars 32656 - 32667 [assumption.] 0. secs (0.u,0.s) -Chars 32670 - 32671 [-] 0. secs (0.u,0.s) -Chars 32672 - 32683 [assumption.] 0. secs (0.u,0.s) -Chars 32684 - 32688 [Qed.] 0. secs (0.u,0.s) -Chars 32690 - 32784 [#[global]~Instance~EQ_REL_Prop...] 0. secs (0.u,0.s) -Chars 32785 - 32791 [Proof.] 0. secs (0.u,0.s) -Chars 32794 - 32805 [repeat~red.] 0. secs (0.u,0.s) -Chars 32808 - 32815 [intros.] 0. secs (0.u,0.s) -Chars 32816 - 32822 [subst.] 0. secs (0.u,0.s) -Chars 32825 - 32859 [split;~intros;~unfold~EQ_REL~i...] 0. secs (0.u,0.s) -Chars 32862 - 32863 [-] 0. secs (0.u,0.s) -Chars 32864 - 32870 [split.] 0. secs (0.u,0.s) -Chars 32871 - 32883 [destruct~H0.] 0. secs (0.u,0.s) -Chars 32884 - 32895 [assumption.] 0. secs (0.u,0.s) -Chars 32896 - 32908 [destruct~H0.] 0. secs (0.u,0.s) -Chars 32913 - 32920 [intros.] 0. secs (0.u,0.s) -Chars 32921 - 32934 [rewrite~<-~H.] 0.001 secs (0.001u,0.s) -Chars 32935 - 32946 [assumption.] 0. secs (0.u,0.s) -Chars 32949 - 32950 [-] 0. secs (0.u,0.s) -Chars 32951 - 32963 [destruct~H0.] 0. secs (0.u,0.s) -Chars 32968 - 32974 [split.] 0. secs (0.u,0.s) -Chars 32975 - 32986 [assumption.] 0. secs (0.u,0.s) -Chars 32991 - 32998 [intros.] 0. secs (0.u,0.s) -Chars 32999 - 33009 [rewrite~H.] 0.002 secs (0.002u,0.s) -Chars 33010 - 33021 [assumption.] 0. secs (0.u,0.s) -Chars 33022 - 33026 [Qed.] 0. secs (0.u,0.s) -Chars 33028 - 33147 [#[global]~Instance~eutt_EQ_REL...] 0. secs (0.u,0.s) -Chars 33148 - 33154 [Proof.] 0. secs (0.u,0.s) -Chars 33157 - 33168 [repeat~red.] 0. secs (0.u,0.s) -Chars 33171 - 33193 [intros;~split;~intros.] 0. secs (0.u,0.s) -Chars 33196 - 33197 [-] 0. secs (0.u,0.s) -Chars 33199 - 33213 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 33214 - 33228 [rewrite~<-~H1.] 0.001 secs (0.001u,0.s) -Chars 33234 - 33246 [clear~H0~H1.] 0. secs (0.u,0.s) -Chars 33252 - 33263 [destruct~H.] 0. secs (0.u,0.s) -Chars 33269 - 33293 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) -Chars 33296 - 33297 [-] 0. secs (0.u,0.s) -Chars 33298 - 33313 [rewrite~H0,~H1.] 0.001 secs (0.001u,0.s) -Chars 33318 - 33329 [destruct~H.] 0. secs (0.u,0.s) -Chars 33334 - 33358 [eapply~eqit_mono;~eauto.] 0.001 secs (0.001u,0.s) -Chars 33359 - 33363 [Qed.] 0. secs (0.u,0.s) -Chars 33365 - 33468 [Lemma~eutt_EQ_REL_Reflexive_~{...] 0. secs (0.u,0.s) -Chars 33469 - 33475 [Proof.] 0. secs (0.u,0.s) -Chars 33478 - 33488 [revert~ta.] 0. secs (0.u,0.s) -Chars 33491 - 33510 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 33511 - 33527 [intros~ta~R~HEQ.] 0. secs (0.u,0.s) -Chars 33530 - 33544 [desobs~ta~hta.] 0. secs (0.u,0.s) -Chars 33548 - 33549 [-] 0. secs (0.u,0.s) -Chars 33550 - 33563 [econstructor.] 0. secs (0.u,0.s) -Chars 33564 - 33574 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 33575 - 33579 [red.] 0. secs (0.u,0.s) -Chars 33580 - 33592 [split;~auto.] 0. secs (0.u,0.s) -Chars 33598 - 33616 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) -Chars 33617 - 33629 [rewrite~hta.] 0. secs (0.u,0.s) -Chars 33630 - 33646 [now~constructor.] 0. secs (0.u,0.s) -Chars 33650 - 33651 [-] 0. secs (0.u,0.s) -Chars 33652 - 33665 [econstructor.] 0. secs (0.u,0.s) -Chars 33666 - 33676 [apply~CIH.] 0. secs (0.u,0.s) -Chars 33677 - 33685 [intros~!.] 0. secs (0.u,0.s) -Chars 33686 - 33696 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 33702 - 33706 [red.] 0. secs (0.u,0.s) -Chars 33707 - 33718 [destruct~H.] 0. secs (0.u,0.s) -Chars 33719 - 33731 [split;~auto.] 0. secs (0.u,0.s) -Chars 33737 - 33759 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 33763 - 33764 [-] 0. secs (0.u,0.s) -Chars 33765 - 33786 [econstructor;~intros.] 0. secs (0.u,0.s) -Chars 33787 - 33797 [apply~CIH.] 0. secs (0.u,0.s) -Chars 33803 - 33811 [intros~!.] 0. secs (0.u,0.s) -Chars 33812 - 33822 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 33827 - 33850 [rewrite~itree_eta,~hta.] 0.001 secs (0.001u,0.s) -Chars 33855 - 33866 [destruct~H.] 0. secs (0.u,0.s) -Chars 33871 - 33883 [split;~auto.] 0. secs (0.u,0.s) -Chars 33888 - 33910 [econstructor~3;~eauto.] 0. secs (0.u,0.s) -Chars 33912 - 33916 [Qed.] 0.003 secs (0.003u,0.s) -Chars 33918 - 33996 [Lemma~eutt_EQ_REL_Reflexive~{E...] 0. secs (0.u,0.s) -Chars 33997 - 34003 [Proof.] 0. secs (0.u,0.s) -Chars 34006 - 34039 [now~apply~eutt_EQ_REL_Reflexive_.] 0. secs (0.u,0.s) -Chars 34041 - 34045 [Qed.] 0. secs (0.u,0.s) -Chars 34047 - 34146 [Definition~RET_EQ~{E}~{A}~(ta~...] 0. secs (0.u,0.s) -Chars 34212 - 34538 [Lemma~bind_bind_iforest~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 34539 - 34545 [Proof.] 0. secs (0.u,0.s) -Chars 34577 - 34622 [intros~E~A~B~C~PA~KB~KC~PQOK~K...] 0. secs (0.u,0.s) -Chars 34629 - 34642 [red~in~eqtt'.] 0. secs (0.u,0.s) -Chars 34649 - 34700 [destruct~eqtt'~as~(tb,~(kbc,~(...] 0. secs (0.u,0.s) -Chars 34707 - 34754 [destruct~HBC~as~(ta,~(kab,~(HT...] 0. secs (0.u,0.s) -Chars 34761 - 34765 [red.] 0. secs (0.u,0.s) -Chars 34766 - 34776 [exists~ta.] 0. secs (0.u,0.s) -Chars 34777 - 34818 [exists~(fun~a~=>~ITree.bind~(k...] 0. secs (0.u,0.s) -Chars 34825 - 34847 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) -Chars 34854 - 34855 [*] 0. secs (0.u,0.s) -Chars 34856 - 34886 [setoid_rewrite~EQc;~clear~EQc.] 0. secs (0.u,0.s) -Chars 34895 - 34914 [setoid_rewrite~EQb.] 0.001 secs (0.001u,0.s) -Chars 34915 - 34957 [setoid_rewrite~EQb~in~HRkbc;~c...] 0.001 secs (0.001u,0.s) -Chars 34966 - 34991 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 35000 - 35023 [rewrite~Eqit.bind_bind.] 0. secs (0.u,0.s) -Chars 35024 - 35036 [reflexivity.] 0. secs (0.u,0.s) -Chars 35043 - 35044 [*] 0. secs (0.u,0.s) -Chars 35045 - 35059 [intros~a~HRet.] 0. secs (0.u,0.s) -Chars 35068 - 35088 [exists~(kab~a),kbc.] 0. secs (0.u,0.s) -Chars 35097 - 35118 [split;~[~auto~|~~];~split.] 0. secs (0.u,0.s) -Chars 35127 - 35129 [--] 0. secs (0.u,0.s) -Chars 35130 - 35142 [reflexivity.] 0. secs (0.u,0.s) -Chars 35151 - 35153 [--] 0. secs (0.u,0.s) -Chars 35154 - 35168 [intros~b~HRET.] 0. secs (0.u,0.s) -Chars 35169 - 35181 [apply~HRkbc.] 0. secs (0.u,0.s) -Chars 35182 - 35194 [rewrite~EQb.] 0.001 secs (0.001u,0.s) -Chars 35195 - 35219 [eapply~Leaf_bind;~eauto.] 0. secs (0.u,0.s) -Chars 35220 - 35224 [Qed.] 0.002 secs (0.002u,0.s) -Chars 35226 - 35258 [Module~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) -Chars 35262 - 35312 [Inductive~ND~:~Type~->~Prop~:=...] 0. secs (0.u,0.s) -Chars 35316 - 35399 [Definition~PA~:~iforest~ND~boo...] 0. secs (0.u,0.s) -Chars 35403 - 35462 [Definition~KB~:~bool~->~ifores...] 0. secs (0.u,0.s) -Chars 35466 - 35651 [Definition~KC~:~bool~->~ifores...] 0. secs (0.u,0.s) -Chars 35655 - 35954 [Definition~t~:~itree~ND~bool~:...] 0.011 secs (0.01u,0.s) -Chars 35958 - 36019 [Lemma~bind_right_assoc~:~bind~...] 0. secs (0.u,0.s) -Chars 36022 - 36028 [Proof.] 0. secs (0.u,0.s) -Chars 36033 - 36044 [repeat~red.] 0. secs (0.u,0.s) -Chars 36049 - 36071 [exists~(trigger~Pick).] 0. secs (0.u,0.s) -Chars 36076 - 36293 [exists~~~~~(fun~b~:~bool~=>~~~...] 0.009 secs (0.009u,0.s) -Chars 36298 - 36310 [split;~auto.] 0. secs (0.u,0.s) -Chars 36315 - 36319 [red.] 0. secs (0.u,0.s) -Chars 36320 - 36332 [reflexivity.] 0. secs (0.u,0.s) -Chars 36337 - 36343 [split.] 0. secs (0.u,0.s) -Chars 36344 - 36356 [reflexivity.] 0. secs (0.u,0.s) -Chars 36361 - 36368 [intros.] 0. secs (0.u,0.s) -Chars 36369 - 36380 [repeat~red.] 0. secs (0.u,0.s) -Chars 36381 - 36403 [exists~(trigger~Pick).] 0. secs (0.u,0.s) -Chars 36408 - 36557 [exists~~~~~(fun~x~:~bool~=>~~~...] 0.008 secs (0.008u,0.s) -Chars 36562 - 36568 [split.] 0. secs (0.u,0.s) -Chars 36573 - 36577 [red.] 0. secs (0.u,0.s) -Chars 36578 - 36582 [red.] 0. secs (0.u,0.s) -Chars 36584 - 36596 [reflexivity.] 0. secs (0.u,0.s) -Chars 36601 - 36607 [split.] 0. secs (0.u,0.s) -Chars 36612 - 36623 [destruct~a.] 0. secs (0.u,0.s) -Chars 36628 - 36629 [-] 0. secs (0.u,0.s) -Chars 36630 - 36642 [reflexivity.] 0. secs (0.u,0.s) -Chars 36647 - 36648 [-] 0. secs (0.u,0.s) -Chars 36649 - 36661 [reflexivity.] 0. secs (0.u,0.s) -Chars 36666 - 36667 [-] 0. secs (0.u,0.s) -Chars 36668 - 36675 [intros.] 0. secs (0.u,0.s) -Chars 36682 - 36694 [destruct~a0.] 0. secs (0.u,0.s) -Chars 36701 - 36712 [destruct~a.] 0. secs (0.u,0.s) -Chars 36719 - 36723 [red.] 0. secs (0.u,0.s) -Chars 36724 - 36729 [left.] 0. secs (0.u,0.s) -Chars 36730 - 36742 [reflexivity.] 0. secs (0.u,0.s) -Chars 36749 - 36753 [red.] 0. secs (0.u,0.s) -Chars 36754 - 36760 [right.] 0. secs (0.u,0.s) -Chars 36761 - 36773 [reflexivity.] 0. secs (0.u,0.s) -Chars 36780 - 36791 [destruct~a.] 0. secs (0.u,0.s) -Chars 36798 - 36802 [red.] 0. secs (0.u,0.s) -Chars 36803 - 36815 [reflexivity.] 0. secs (0.u,0.s) -Chars 36816 - 36820 [red.] 0. secs (0.u,0.s) -Chars 36822 - 36834 [reflexivity.] 0. secs (0.u,0.s) -Chars 36837 - 36841 [Qed.] 0.001 secs (0.001u,0.s) -Chars 36845 - 36900 [Lemma~not_bind_left_assoc~:~~~...] 0. secs (0.u,0.s) -Chars 36903 - 36909 [Proof.] 0. secs (0.u,0.s) -Chars 36914 - 36922 [intro~H.] 0. secs (0.u,0.s) -Chars 36927 - 36943 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 36948 - 36989 [destruct~H~as~(ta,~(k,~(HB,~(H...] 0. secs (0.u,0.s) -Chars 36994 - 37039 [destruct~HB~as~(tb,~(kb,~(HX,~...] 0. secs (0.u,0.s) -Chars 37044 - 37054 [red~in~HX.] 0. secs (0.u,0.s) -Chars 37059 - 37075 [rewrite~HX~in~*.] 0.001 secs (0.001u,0.s) -Chars 37080 - 37107 [setoid_rewrite~HX~in~HRET'.] 0.001 secs (0.001u,0.s) -Chars 37112 - 37124 [clear~tb~HX.] 0. secs (0.u,0.s) -Chars 37129 - 37149 [rewrite~HEQ'~in~HEQ.] 0.001 secs (0.001u,0.s) -Chars 37154 - 37170 [unfold~t~in~HEQ.] 0. secs (0.u,0.s) -Chars 37175 - 37207 [unfold~bind,~Monad_itree~in~HEQ.] 0. secs (0.u,0.s) -Chars 37212 - 37242 [rewrite~Eqit.bind_bind~in~HEQ.] 0.003 secs (0.003u,0.s) -Chars 37247 - 37576 [assert~~(forall~r,~~~Leaf~r~(I...] 0.001 secs (0.001u,0.s) -Chars 37581 - 37606 [apply~eqit_bind_Leaf_inv.] 0. secs (0.u,0.s) -Chars 37607 - 37617 [apply~HEQ.] 0. secs (0.u,0.s) -Chars 37622 - 37662 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) -Chars 37667 - 37668 [{] 0. secs (0.u,0.s) -Chars 37669 - 37684 [unfold~trigger.] 0. secs (0.u,0.s) -Chars 37685 - 37700 [econstructor~3.] 0. secs (0.u,0.s) -Chars 37701 - 37713 [reflexivity.] 0. secs (0.u,0.s) -Chars 37714 - 37728 [constructor~1.] 0. secs (0.u,0.s) -Chars 37729 - 37741 [reflexivity.] 0. secs (0.u,0.s) -Chars 37742 - 37743 [}] 0. secs (0.u,0.s) -Chars 37748 - 37789 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) -Chars 37794 - 37795 [{] 0. secs (0.u,0.s) -Chars 37796 - 37811 [unfold~trigger.] 0. secs (0.u,0.s) -Chars 37812 - 37827 [econstructor~3.] 0. secs (0.u,0.s) -Chars 37828 - 37840 [reflexivity.] 0. secs (0.u,0.s) -Chars 37841 - 37855 [constructor~1.] 0. secs (0.u,0.s) -Chars 37856 - 37868 [reflexivity.] 0. secs (0.u,0.s) -Chars 37869 - 37870 [}] 0. secs (0.u,0.s) -Chars 37875 - 37915 [assert~(Leaf~true~(ITree.trigg...] 0. secs (0.u,0.s) -Chars 37920 - 37921 [{] 0. secs (0.u,0.s) -Chars 37922 - 37937 [unfold~trigger.] 0. secs (0.u,0.s) -Chars 37938 - 37953 [econstructor~3.] 0. secs (0.u,0.s) -Chars 37954 - 37966 [reflexivity.] 0. secs (0.u,0.s) -Chars 37967 - 37981 [constructor~1.] 0. secs (0.u,0.s) -Chars 37982 - 37994 [reflexivity.] 0. secs (0.u,0.s) -Chars 37995 - 37996 [}] 0. secs (0.u,0.s) -Chars 38001 - 38042 [assert~(Leaf~false~(ITree.trig...] 0. secs (0.u,0.s) -Chars 38047 - 38048 [{] 0. secs (0.u,0.s) -Chars 38049 - 38064 [unfold~trigger.] 0. secs (0.u,0.s) -Chars 38065 - 38080 [econstructor~3.] 0. secs (0.u,0.s) -Chars 38081 - 38093 [reflexivity.] 0. secs (0.u,0.s) -Chars 38094 - 38108 [constructor~1.] 0. secs (0.u,0.s) -Chars 38109 - 38121 [reflexivity.] 0. secs (0.u,0.s) -Chars 38122 - 38123 [}] 0. secs (0.u,0.s) -Chars 38128 - 38142 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 38147 - 38161 [apply~H~in~H1.] 0. secs (0.u,0.s) -Chars 38166 - 38184 [apply~HRET'~in~H2.] 0. secs (0.u,0.s) -Chars 38189 - 38207 [apply~HRET'~in~H3.] 0. secs (0.u,0.s) -Chars 38212 - 38222 [red~in~H2.] 0. secs (0.u,0.s) -Chars 38223 - 38233 [red~in~H3.] 0. secs (0.u,0.s) -Chars 38234 - 38244 [red~in~H2.] 0. secs (0.u,0.s) -Chars 38245 - 38255 [red~in~H3.] 0. secs (0.u,0.s) -Chars 38260 - 38277 [rewrite~H2~in~H0.] 0.001 secs (0.001u,0.s) -Chars 38282 - 38299 [rewrite~H3~in~H1.] 0.001 secs (0.001u,0.s) -Chars 38304 - 38324 [rewrite~<-~H0~in~H1.] 0. secs (0.u,0.s) -Chars 38329 - 38378 [apply~eqit_bind_Leaf_inv~with~...] 0. secs (0.u,0.s) -Chars 38383 - 38408 [apply~eqit_inv_Ret~in~H1.] 0. secs (0.u,0.s) -Chars 38409 - 38422 [inversion~H1.] 0. secs (0.u,0.s) -Chars 38427 - 38428 [{] 0. secs (0.u,0.s) -Chars 38429 - 38444 [unfold~trigger.] 0. secs (0.u,0.s) -Chars 38445 - 38460 [econstructor~3.] 0. secs (0.u,0.s) -Chars 38461 - 38473 [reflexivity.] 0. secs (0.u,0.s) -Chars 38474 - 38488 [constructor~1.] 0. secs (0.u,0.s) -Chars 38489 - 38501 [reflexivity.] 0. secs (0.u,0.s) -Chars 38502 - 38503 [}] 0. secs (0.u,0.s) -Chars 38504 - 38508 [Qed.] 0.004 secs (0.004u,0.s) -Chars 38510 - 38622 [Lemma~bind_bind_counterexample...] 0. secs (0.u,0.s) -Chars 38623 - 38629 [Proof.] 0. secs (0.u,0.s) -Chars 38632 - 38641 [exists~t.] 0. secs (0.u,0.s) -Chars 38644 - 38650 [split.] 0. secs (0.u,0.s) -Chars 38653 - 38676 [apply~bind_right_assoc.] 0. secs (0.u,0.s) -Chars 38679 - 38705 [apply~not_bind_left_assoc.] 0. secs (0.u,0.s) -Chars 38706 - 38710 [Qed.] 0. secs (0.u,0.s) -Chars 38712 - 38741 [End~BIND_BIND_COUNTEREXAMPLE.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceBind.v.timing b/extra/ITrace/ITraceBind.v.timing deleted file mode 100644 index 5f8e0fbe..00000000 --- a/extra/ITrace/ITraceBind.v.timing +++ /dev/null @@ -1,2116 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 82 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 84 - 221 [From~ITree~Require~Import~Basi...] 0.158 secs (0.141u,0.017s) -Chars 223 - 334 [From~ITree.Extra~Require~Impor...] 0.012 secs (0.01u,0.001s) -Chars 336 - 350 [Import~Monads.] 0. secs (0.u,0.s) -Chars 351 - 372 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 373 - 402 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 404 - 470 [#[local]~Tactic~Notation~"simp...] 0. secs (0.u,0.s) -Chars 621 - 634 [Section~Peel.] 0. secs (0.u,0.s) -Chars 635 - 692 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) -Chars 694 - 888 [Definition~peel_vis~{E}~{R}~{S...] 0. secs (0.u,0.s) -Chars 889 - 895 [Proof.] 0. secs (0.u,0.s) -Chars 898 - 926 [destruct~(classicT~(A~=~B)).] 0. secs (0.u,0.s) -Chars 929 - 930 [-] 0. secs (0.u,0.s) -Chars 931 - 937 [subst.] 0. secs (0.u,0.s) -Chars 938 - 1019 [apply~(Vis~(evans~_~e0~a)~(fun...] 0. secs (0.u,0.s) -Chars 1022 - 1023 [-] 0. secs (0.u,0.s) -Chars 1024 - 1041 [apply~ITree.spin.] 0. secs (0.u,0.s) -Chars 1042 - 1050 [Defined.] 0. secs (0.u,0.s) -Chars 1052 - 1645 [CoFixpoint~peel_~{E}~{R}~{S}~(...] 0.029 secs (0.027u,0.001s) -Chars 1647 - 1752 [Definition~peel~{E}~{R}~{S}~(b...] 0. secs (0.u,0.s) -Chars 1787 - 1986 [Definition~peel_cont_vis~{E}~{...] 0. secs (0.u,0.s) -Chars 1987 - 1993 [Proof.] 0. secs (0.u,0.s) -Chars 1996 - 2025 [destruct~(classicT~(A~=~B)).] 0. secs (0.u,0.s) -Chars 2028 - 2029 [-] 0. secs (0.u,0.s) -Chars 2030 - 2036 [subst.] 0. secs (0.u,0.s) -Chars 2037 - 2094 [apply~(Tau~(peel~(observe~(k0~...] 0. secs (0.u,0.s) -Chars 2097 - 2098 [-] 0. secs (0.u,0.s) -Chars 2099 - 2116 [apply~ITree.spin.] 0. secs (0.u,0.s) -Chars 2117 - 2125 [Defined.] 0. secs (0.u,0.s) -Chars 2209 - 2815 [CoFixpoint~peel_cont_~{E}~{R}~...] 0.001 secs (0.001u,0.s) -Chars 2817 - 2946 [Definition~peel_cont~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 2948 - 3113 [Lemma~refine_ret_vis_contra~:~...] 0. secs (0.u,0.s) -Chars 3114 - 3120 [Proof.] 0. secs (0.u,0.s) -Chars 3123 - 3130 [intros.] 0. secs (0.u,0.s) -Chars 3131 - 3145 [intro~Hcontra.] 0. secs (0.u,0.s) -Chars 3146 - 3159 [sinv~Hcontra.] 0.001 secs (0.001u,0.s) -Chars 3160 - 3164 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3304 - 3408 [Lemma~peel_t_ret~:~~~forall~E~...] 0. secs (0.u,0.s) -Chars 3409 - 3415 [Proof.] 0. secs (0.u,0.s) -Chars 3418 - 3425 [intros.] 0. secs (0.u,0.s) -Chars 3427 - 3439 [unfold~peel.] 0. secs (0.u,0.s) -Chars 3442 - 3456 [sinv~H;~subst.] 0.007 secs (0.007u,0.s) -Chars 3459 - 3491 [destruct~(observe~b);~cbn;~auto.] 0. secs (0.u,0.s) -Chars 3494 - 3495 [-] 0. secs (0.u,0.s) -Chars 3496 - 3501 [step.] 0.037 secs (0.037u,0.s) -Chars 3502 - 3506 [cbn.] 0. secs (0.u,0.s) -Chars 3507 - 3519 [constructor.] 0. secs (0.u,0.s) -Chars 3520 - 3525 [auto.] 0. secs (0.u,0.s) -Chars 3528 - 3529 [-] 0. secs (0.u,0.s) -Chars 3530 - 3535 [step.] 0.001 secs (0.001u,0.s) -Chars 3536 - 3540 [cbn.] 0. secs (0.u,0.s) -Chars 3541 - 3559 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3562 - 3563 [-] 0. secs (0.u,0.s) -Chars 3564 - 3569 [step.] 0.001 secs (0.001u,0.s) -Chars 3570 - 3574 [cbn.] 0. secs (0.u,0.s) -Chars 3575 - 3581 [simpl.] 0. secs (0.u,0.s) -Chars 3582 - 3593 [destruct~e.] 0. secs (0.u,0.s) -Chars 3598 - 3599 [+] 0. secs (0.u,0.s) -Chars 3600 - 3604 [cbn.] 0. secs (0.u,0.s) -Chars 3605 - 3617 [constructor.] 0. secs (0.u,0.s) -Chars 3618 - 3623 [auto.] 0. secs (0.u,0.s) -Chars 3628 - 3629 [+] 0. secs (0.u,0.s) -Chars 3630 - 3634 [cbn.] 0. secs (0.u,0.s) -Chars 3635 - 3647 [constructor.] 0. secs (0.u,0.s) -Chars 3648 - 3653 [auto.] 0. secs (0.u,0.s) -Chars 3654 - 3658 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3735 - 3949 [Lemma~peel_refine_t~:~~~forall...] 0. secs (0.u,0.s) -Chars 3950 - 3956 [Proof.] 0. secs (0.u,0.s) -Chars 3959 - 3978 [intros~E~R~S~b~t~f.] 0. secs (0.u,0.s) -Chars 3979 - 4002 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 4003 - 4026 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4029 - 4048 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4049 - 4056 [intros.] 0. secs (0.u,0.s) -Chars 4059 - 4073 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 4074 - 4087 [cbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 4091 - 4103 [unfold~peel.] 0. secs (0.u,0.s) -Chars 4106 - 4137 [destruct~(observe~t)~eqn:Heq.] 0. secs (0.u,0.s) -Chars 4140 - 4141 [-] 0. secs (0.u,0.s) -Chars 4142 - 4193 [destruct~(observe~b);~cbn;~try...] 0.001 secs (0.001u,0.s) -Chars 4198 - 4233 [destruct~e;~cbn;~constructor;~...] 0.001 secs (0.001u,0.s) -Chars 4236 - 4237 [-] 0. secs (0.u,0.s) -Chars 4238 - 4264 [dependent~induction~Hrutt.] 0.045 secs (0.045u,0.s) -Chars 4269 - 4270 [+] 0. secs (0.u,0.s) -Chars 4271 - 4279 [exfalso.] 0. secs (0.u,0.s) -Chars 4280 - 4296 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4297 - 4318 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 4319 - 4338 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 4345 - 4362 [rewrite~Heq~in~x.] 0.012 secs (0.012u,0.s) -Chars 4363 - 4385 [rewrite~bind_tau~in~x.] 0.015 secs (0.015u,0.s) -Chars 4386 - 4393 [sinv~x.] 0.004 secs (0.004u,0.s) -Chars 4398 - 4399 [+] 0. secs (0.u,0.s) -Chars 4400 - 4408 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 4409 - 4413 [cbn.] 0. secs (0.u,0.s) -Chars 4414 - 4426 [constructor.] 0. secs (0.u,0.s) -Chars 4427 - 4438 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 4446 - 4462 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4463 - 4483 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) -Chars 4490 - 4509 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 4510 - 4531 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 4538 - 4562 [apply~eq_sub_eutt~in~x0.] 0. secs (0.u,0.s) -Chars 4563 - 4588 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 4595 - 4619 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 4620 - 4643 [rewrite~tau_eutt~in~x0.] 0. secs (0.u,0.s) -Chars 4650 - 4665 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) -Chars 4666 - 4676 [rewrite~x.] 0.002 secs (0.002u,0.s) -Chars 4677 - 4694 [rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 4695 - 4700 [auto.] 0. secs (0.u,0.s) -Chars 4705 - 4706 [+] 0. secs (0.u,0.s) -Chars 4707 - 4715 [exfalso.] 0. secs (0.u,0.s) -Chars 4716 - 4732 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4733 - 4754 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 4761 - 4780 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 4787 - 4804 [rewrite~Heq~in~x.] 0.011 secs (0.011u,0.s) -Chars 4805 - 4827 [rewrite~bind_tau~in~x.] 0.011 secs (0.01u,0.s) -Chars 4828 - 4835 [sinv~x.] 0.004 secs (0.004u,0.s) -Chars 4840 - 4841 [+] 0. secs (0.u,0.s) -Chars 4842 - 4850 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 4851 - 4855 [cbn.] 0. secs (0.u,0.s) -Chars 4856 - 4868 [constructor.] 0. secs (0.u,0.s) -Chars 4869 - 4880 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 4887 - 4901 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 4902 - 4918 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 4919 - 4940 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 4947 - 4972 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 4973 - 4997 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5004 - 5019 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) -Chars 5020 - 5025 [step.] 0. secs (0.u,0.s) -Chars 5026 - 5031 [auto.] 0. secs (0.u,0.s) -Chars 5036 - 5037 [+] 0. secs (0.u,0.s) -Chars 5038 - 5042 [cbn.] 0. secs (0.u,0.s) -Chars 5043 - 5075 [destruct~(observe~b)~eqn:Heq'.] 0.003 secs (0.002u,0.s) -Chars 5082 - 5083 [*] 0. secs (0.u,0.s) -Chars 5084 - 5088 [cbn.] 0. secs (0.u,0.s) -Chars 5089 - 5105 [rewrite~<-~Heq'.] 0. secs (0.u,0.s) -Chars 5106 - 5118 [constructor.] 0. secs (0.u,0.s) -Chars 5119 - 5130 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 5139 - 5156 [symmetry~in~Heq'.] 0. secs (0.u,0.s) -Chars 5165 - 5187 [apply~simpobs~in~Heq'.] 0. secs (0.u,0.s) -Chars 5188 - 5201 [rewrite~Heq'.] 0.003 secs (0.003u,0.s) -Chars 5210 - 5226 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5227 - 5248 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 5257 - 5282 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5283 - 5307 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5316 - 5331 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) -Chars 5332 - 5351 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 5352 - 5362 [rewrite~x.] 0.003 secs (0.003u,0.s) -Chars 5371 - 5388 [rewrite~tau_eutt.] 0.003 secs (0.003u,0.s) -Chars 5389 - 5394 [step.] 0. secs (0.u,0.s) -Chars 5395 - 5400 [auto.] 0. secs (0.u,0.s) -Chars 5407 - 5408 [*] 0. secs (0.u,0.s) -Chars 5409 - 5413 [cbn.] 0. secs (0.u,0.s) -Chars 5414 - 5428 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 5437 - 5449 [constructor.] 0. secs (0.u,0.s) -Chars 5450 - 5461 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 5471 - 5487 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5488 - 5509 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 5518 - 5543 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5544 - 5568 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5577 - 5592 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) -Chars 5601 - 5620 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 5621 - 5644 [apply~eq_sub_eutt~in~x.] 0. secs (0.u,0.s) -Chars 5653 - 5675 [rewrite~tau_eutt~in~x.] 0. secs (0.u,0.s) -Chars 5676 - 5686 [rewrite~x.] 0.002 secs (0.002u,0.s) -Chars 5695 - 5718 [enough~(Tau~t1~⊑~t2).] 0. secs (0.u,0.s) -Chars 5727 - 5728 [{] 0. secs (0.u,0.s) -Chars 5729 - 5751 [rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) -Chars 5752 - 5757 [auto.] 0. secs (0.u,0.s) -Chars 5758 - 5759 [}] 0. secs (0.u,0.s) -Chars 5768 - 5773 [step.] 0. secs (0.u,0.s) -Chars 5774 - 5779 [auto.] 0. secs (0.u,0.s) -Chars 5786 - 5787 [*] 0. secs (0.u,0.s) -Chars 5788 - 5804 [destruct~e;~cbn.] 0.002 secs (0.002u,0.s) -Chars 5813 - 5815 [++] 0. secs (0.u,0.s) -Chars 5816 - 5828 [constructor.] 0. secs (0.u,0.s) -Chars 5829 - 5845 [rewrite~<-~Heq'.] 0. secs (0.u,0.s) -Chars 5846 - 5860 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 5872 - 5883 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 5884 - 5900 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 5912 - 5933 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 5934 - 5959 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5971 - 5995 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 5996 - 6015 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6027 - 6050 [apply~eq_sub_eutt~in~x.] 0. secs (0.u,0.s) -Chars 6051 - 6073 [rewrite~tau_eutt~in~x.] 0. secs (0.u,0.s) -Chars 6085 - 6100 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) -Chars 6101 - 6111 [rewrite~x.] 0.002 secs (0.002u,0.s) -Chars 6112 - 6117 [step.] 0. secs (0.u,0.s) -Chars 6130 - 6143 [rewrite~Heq'.] 0. secs (0.u,0.s) -Chars 6144 - 6149 [auto.] 0. secs (0.u,0.s) -Chars 6158 - 6160 [++] 0. secs (0.u,0.s) -Chars 6161 - 6173 [constructor.] 0. secs (0.u,0.s) -Chars 6174 - 6190 [rewrite~<-~Heq'.] 0. secs (0.u,0.s) -Chars 6191 - 6205 [clear~IHHrutt.] 0. secs (0.u,0.s) -Chars 6217 - 6228 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 6229 - 6245 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6257 - 6278 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 6279 - 6304 [apply~eq_sub_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 6316 - 6340 [rewrite~tau_eutt~in~Heq.] 0. secs (0.u,0.s) -Chars 6341 - 6360 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6372 - 6395 [apply~eq_sub_eutt~in~x.] 0. secs (0.u,0.s) -Chars 6396 - 6418 [rewrite~tau_eutt~in~x.] 0. secs (0.u,0.s) -Chars 6430 - 6445 [rewrite~<-~Heq.] 0.003 secs (0.003u,0.s) -Chars 6446 - 6456 [rewrite~x.] 0.002 secs (0.002u,0.s) -Chars 6457 - 6462 [step.] 0. secs (0.u,0.s) -Chars 6475 - 6488 [rewrite~Heq'.] 0. secs (0.u,0.s) -Chars 6489 - 6494 [auto.] 0. secs (0.u,0.s) -Chars 6497 - 6498 [-] 0. secs (0.u,0.s) -Chars 6499 - 6525 [dependent~induction~Hrutt.] 0.043 secs (0.043u,0.s) -Chars 6530 - 6531 [+] 0. secs (0.u,0.s) -Chars 6532 - 6540 [exfalso.] 0. secs (0.u,0.s) -Chars 6541 - 6557 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6558 - 6579 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 6580 - 6599 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6606 - 6623 [rewrite~Heq~in~x.] 0.011 secs (0.011u,0.s) -Chars 6624 - 6646 [rewrite~bind_vis~in~x.] 0.011 secs (0.01u,0.s) -Chars 6653 - 6660 [sinv~x.] 0.002 secs (0.002u,0.s) -Chars 6665 - 6666 [+] 0. secs (0.u,0.s) -Chars 6667 - 6675 [exfalso.] 0. secs (0.u,0.s) -Chars 6676 - 6692 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6693 - 6714 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 6715 - 6734 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6741 - 6758 [rewrite~Heq~in~x.] 0.012 secs (0.012u,0.s) -Chars 6759 - 6781 [rewrite~bind_vis~in~x.] 0.01 secs (0.01u,0.s) -Chars 6788 - 6806 [sinv~x;~inv~CHECK.] 0.004 secs (0.004u,0.s) -Chars 6811 - 6812 [+] 0. secs (0.u,0.s) -Chars 6813 - 6821 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 6828 - 6844 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 6845 - 6866 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 6867 - 6886 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6893 - 6910 [rewrite~Heq~in~x.] 0.011 secs (0.011u,0.s) -Chars 6911 - 6933 [rewrite~bind_vis~in~x.] 0.011 secs (0.011u,0.s) -Chars 6934 - 6957 [step~in~x;~inversion~x.] 0.004 secs (0.004u,0.s) -Chars 6965 - 6978 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 6979 - 7005 [inversion~H;~ddestruction.] 0.012 secs (0.012u,0.s) -Chars 7012 - 7013 [*] 0. secs (0.u,0.s) -Chars 7014 - 7029 [unfold~observe.] 0. secs (0.u,0.s) -Chars 7030 - 7034 [cbn.] 0. secs (0.u,0.s) -Chars 7035 - 7051 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 7060 - 7108 [destruct~(classicT~(B~=~B));~t...] 0. secs (0.u,0.s) -Chars 7117 - 7143 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 7152 - 7178 [remember~(eq_sym~_)~as~He.] 0.001 secs (0.001u,0.s) -Chars 7179 - 7191 [clear~HeqHe.] 0. secs (0.u,0.s) -Chars 7200 - 7225 [dependent~destruction~He.] 0.003 secs (0.003u,0.s) -Chars 7226 - 7230 [cbn.] 0. secs (0.u,0.s) -Chars 7231 - 7250 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 7259 - 7266 [intros.] 0. secs (0.u,0.s) -Chars 7267 - 7280 [inversion~H1.] 0.002 secs (0.002u,0.s) -Chars 7281 - 7294 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 7303 - 7318 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 7320 - 7330 [unfold~id.] 0. secs (0.u,0.s) -Chars 7331 - 7342 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7352 - 7362 [cbn~in~x1.] 0. secs (0.u,0.s) -Chars 7363 - 7376 [inversion~x1.] 0.002 secs (0.002u,0.s) -Chars 7377 - 7390 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 7399 - 7432 [specialize~(H0~tt~a~(rar~_~_~_)).] 0. secs (0.u,0.s) -Chars 7441 - 7461 [specialize~(REL0~a).] 0. secs (0.u,0.s) -Chars 7471 - 7484 [rewrite~REL0.] 0.002 secs (0.002u,0.s) -Chars 7485 - 7494 [apply~H0.] 0. secs (0.u,0.s) -Chars 7501 - 7502 [*] 0. secs (0.u,0.s) -Chars 7503 - 7507 [cbn.] 0. secs (0.u,0.s) -Chars 7508 - 7527 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 7528 - 7535 [intros.] 0. secs (0.u,0.s) -Chars 7536 - 7550 [contradiction.] 0. secs (0.u,0.s) -Chars 7555 - 7556 [+] 0. secs (0.u,0.s) -Chars 7557 - 7565 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 7566 - 7570 [cbn.] 0. secs (0.u,0.s) -Chars 7571 - 7583 [constructor.] 0. secs (0.u,0.s) -Chars 7584 - 7606 [eapply~IHHrutt;~eauto.] 0.002 secs (0.002u,0.s) -Chars 7611 - 7612 [+] 0. secs (0.u,0.s) -Chars 7613 - 7621 [exfalso.] 0. secs (0.u,0.s) -Chars 7622 - 7638 [symmetry~in~Heq.] 0. secs (0.u,0.s) -Chars 7639 - 7658 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 7659 - 7680 [apply~simpobs~in~Heq.] 0. secs (0.u,0.s) -Chars 7687 - 7704 [rewrite~Heq~in~x.] 0.012 secs (0.012u,0.s) -Chars 7705 - 7727 [rewrite~bind_vis~in~x.] 0.012 secs (0.012u,0.s) -Chars 7734 - 7741 [sinv~x.] 0.004 secs (0.004u,0.s) -Chars 7742 - 7746 [Qed.] 0.157 secs (0.155u,0.001s) -Chars 7748 - 7824 [Lemma~not_spin_eutt_ret~:~fora...] 0. secs (0.u,0.s) -Chars 7825 - 7831 [Proof.] 0. secs (0.u,0.s) -Chars 7834 - 7841 [intros.] 0. secs (0.u,0.s) -Chars 7842 - 7857 [intros~Hcontra.] 0. secs (0.u,0.s) -Chars 7858 - 7898 [specialize~(@spin_infinite~E~R...] 0. secs (0.u,0.s) -Chars 7901 - 7925 [rewrite~Hcontra~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 7926 - 7936 [sinv~Hdiv.] 0. secs (0.u,0.s) -Chars 7937 - 7941 [Qed.] 0. secs (0.u,0.s) -Chars 7944 - 8123 [Lemma~proper_peel_eutt_l~:~~~f...] 0. secs (0.u,0.s) -Chars 8124 - 8130 [Proof.] 0. secs (0.u,0.s) -Chars 8133 - 8146 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 8147 - 8166 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8167 - 8174 [intros.] 0. secs (0.u,0.s) -Chars 8175 - 8187 [unfold~peel.] 0. secs (0.u,0.s) -Chars 8190 - 8211 [destruct~(observe~t).] 0. secs (0.u,0.s) -Chars 8214 - 8215 [-] 0. secs (0.u,0.s) -Chars 8216 - 8350 [destruct~(observe~b);~destruct...] 0.01 secs (0.01u,0.s) -Chars 8353 - 8354 [-] 0. secs (0.u,0.s) -Chars 8355 - 8365 [step~in~H.] 0. secs (0.u,0.s) -Chars 8366 - 8388 [dependent~induction~H.] 0.039 secs (0.038u,0.s) -Chars 8393 - 8394 [+] 0. secs (0.u,0.s) -Chars 8395 - 8403 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 8404 - 8416 [reflexivity.] 0. secs (0.u,0.s) -Chars 8422 - 8423 [+] 0. secs (0.u,0.s) -Chars 8424 - 8432 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 8433 - 8437 [cbn.] 0. secs (0.u,0.s) -Chars 8438 - 8443 [etau.] 0.001 secs (0.001u,0.s) -Chars 8449 - 8450 [+] 0. secs (0.u,0.s) -Chars 8451 - 8459 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 8460 - 8476 [destruct~e;~cbn.] 0.001 secs (0.001u,0.s) -Chars 8483 - 8484 [*] 0. secs (0.u,0.s) -Chars 8485 - 8497 [constructor.] 0. secs (0.u,0.s) -Chars 8498 - 8512 [rewrite~x,~x0.] 0. secs (0.u,0.s) -Chars 8521 - 8532 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8533 - 8538 [step.] 0.001 secs (0.001u,0.s) -Chars 8539 - 8547 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 8556 - 8561 [evis.] 0. secs (0.u,0.s) -Chars 8569 - 8570 [*] 0. secs (0.u,0.s) -Chars 8571 - 8583 [constructor.] 0. secs (0.u,0.s) -Chars 8584 - 8598 [rewrite~x,~x0.] 0. secs (0.u,0.s) -Chars 8607 - 8618 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8619 - 8624 [step.] 0.001 secs (0.001u,0.s) -Chars 8625 - 8633 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 8642 - 8647 [evis.] 0. secs (0.u,0.s) -Chars 8653 - 8654 [+] 0. secs (0.u,0.s) -Chars 8655 - 8724 [destruct~(observe~b);~destruct...] 0.035 secs (0.035u,0.s) -Chars 8731 - 8732 [*] 0. secs (0.u,0.s) -Chars 8733 - 8737 [cbn.] 0. secs (0.u,0.s) -Chars 8738 - 8750 [constructor.] 0. secs (0.u,0.s) -Chars 8751 - 8793 [remember~(@go~(EvAns~E)~_~(Ret...] 0. secs (0.u,0.s) -Chars 8802 - 8831 [assert~(RetF~r~=~observe~t1).] 0. secs (0.u,0.s) -Chars 8840 - 8841 [{] 0. secs (0.u,0.s) -Chars 8842 - 8856 [rewrite~Heqt1.] 0. secs (0.u,0.s) -Chars 8857 - 8862 [auto.] 0. secs (0.u,0.s) -Chars 8863 - 8864 [}] 0. secs (0.u,0.s) -Chars 8873 - 8884 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 8885 - 8896 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8897 - 8911 [rewrite~Heqt1.] 0. secs (0.u,0.s) -Chars 8912 - 8917 [step.] 0.001 secs (0.001u,0.s) -Chars 8918 - 8923 [auto.] 0. secs (0.u,0.s) -Chars 8930 - 8931 [*] 0. secs (0.u,0.s) -Chars 8932 - 8936 [cbn.] 0. secs (0.u,0.s) -Chars 8937 - 8949 [constructor.] 0. secs (0.u,0.s) -Chars 8950 - 8961 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8971 - 8994 [enough~(t2~≈~Tau~t3).] 0. secs (0.u,0.s) -Chars 9003 - 9004 [{] 0. secs (0.u,0.s) -Chars 9005 - 9028 [rewrite~tau_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 9029 - 9034 [auto.] 0. secs (0.u,0.s) -Chars 9035 - 9036 [}] 0. secs (0.u,0.s) -Chars 9045 - 9050 [step.] 0.001 secs (0.001u,0.s) -Chars 9051 - 9056 [auto.] 0. secs (0.u,0.s) -Chars 9063 - 9064 [*] 0. secs (0.u,0.s) -Chars 9065 - 9081 [destruct~e;~cbn.] 0.002 secs (0.002u,0.s) -Chars 9090 - 9092 [++] 0. secs (0.u,0.s) -Chars 9093 - 9105 [constructor.] 0. secs (0.u,0.s) -Chars 9117 - 9179 [remember~(@go~(EvAns~E)~_~(Vis...] 0. secs (0.u,0.s) -Chars 9191 - 9238 [assert~(VisF~(evans~A~ev~ans)~...] 0. secs (0.u,0.s) -Chars 9250 - 9251 [{] 0. secs (0.u,0.s) -Chars 9252 - 9266 [rewrite~Heqt1.] 0. secs (0.u,0.s) -Chars 9267 - 9272 [auto.] 0. secs (0.u,0.s) -Chars 9273 - 9274 [}] 0. secs (0.u,0.s) -Chars 9286 - 9297 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 9298 - 9309 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9310 - 9316 [subst.] 0. secs (0.u,0.s) -Chars 9317 - 9322 [step.] 0.001 secs (0.001u,0.s) -Chars 9323 - 9328 [auto.] 0. secs (0.u,0.s) -Chars 9337 - 9339 [++] 0. secs (0.u,0.s) -Chars 9340 - 9352 [constructor.] 0. secs (0.u,0.s) -Chars 9364 - 9418 [remember~(go~(VisF~(evempty~A~...] 0.002 secs (0.001u,0.s) -Chars 9430 - 9482 [assert~(VisF~(evempty~A~Hempty...] 0. secs (0.u,0.s) -Chars 9494 - 9495 [{] 0. secs (0.u,0.s) -Chars 9496 - 9502 [subst.] 0. secs (0.u,0.s) -Chars 9503 - 9508 [auto.] 0. secs (0.u,0.s) -Chars 9509 - 9510 [}] 0. secs (0.u,0.s) -Chars 9522 - 9533 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 9534 - 9545 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9546 - 9552 [subst.] 0. secs (0.u,0.s) -Chars 9553 - 9558 [step.] 0.001 secs (0.001u,0.s) -Chars 9559 - 9564 [auto.] 0. secs (0.u,0.s) -Chars 9569 - 9570 [+] 0. secs (0.u,0.s) -Chars 9571 - 9640 [destruct~(observe~b);~destruct...] 0.032 secs (0.031u,0.s) -Chars 9647 - 9648 [*] 0. secs (0.u,0.s) -Chars 9649 - 9653 [cbn.] 0. secs (0.u,0.s) -Chars 9654 - 9666 [constructor.] 0. secs (0.u,0.s) -Chars 9667 - 9709 [remember~(@go~(EvAns~E)~_~(Ret...] 0. secs (0.u,0.s) -Chars 9718 - 9747 [assert~(RetF~r~=~observe~t2).] 0. secs (0.u,0.s) -Chars 9756 - 9757 [{] 0. secs (0.u,0.s) -Chars 9758 - 9764 [subst.] 0. secs (0.u,0.s) -Chars 9765 - 9770 [auto.] 0. secs (0.u,0.s) -Chars 9771 - 9772 [}] 0. secs (0.u,0.s) -Chars 9781 - 9792 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 9793 - 9804 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9805 - 9819 [rewrite~Heqt2.] 0. secs (0.u,0.s) -Chars 9820 - 9825 [step.] 0.001 secs (0.001u,0.s) -Chars 9826 - 9831 [auto.] 0. secs (0.u,0.s) -Chars 9838 - 9839 [*] 0. secs (0.u,0.s) -Chars 9840 - 9844 [cbn.] 0. secs (0.u,0.s) -Chars 9845 - 9857 [constructor.] 0. secs (0.u,0.s) -Chars 9858 - 9869 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9879 - 9902 [enough~(Tau~t1~≈~t3).] 0. secs (0.u,0.s) -Chars 9911 - 9912 [{] 0. secs (0.u,0.s) -Chars 9913 - 9936 [rewrite~tau_eutt~in~H0.] 0.014 secs (0.014u,0.s) -Chars 9937 - 9942 [auto.] 0. secs (0.u,0.s) -Chars 9943 - 9944 [}] 0. secs (0.u,0.s) -Chars 9953 - 9958 [step.] 0.001 secs (0.001u,0.s) -Chars 9959 - 9964 [auto.] 0. secs (0.u,0.s) -Chars 9971 - 9972 [*] 0. secs (0.u,0.s) -Chars 9973 - 9989 [destruct~e;~cbn.] 0.002 secs (0.002u,0.s) -Chars 9998 - 10000 [++] 0. secs (0.u,0.s) -Chars 10001 - 10013 [constructor.] 0. secs (0.u,0.s) -Chars 10026 - 10088 [remember~(@go~(EvAns~E)~_~(Vis...] 0. secs (0.u,0.s) -Chars 10100 - 10147 [assert~(VisF~(evans~A~ev~ans)~...] 0. secs (0.u,0.s) -Chars 10159 - 10160 [{] 0. secs (0.u,0.s) -Chars 10161 - 10167 [subst.] 0. secs (0.u,0.s) -Chars 10168 - 10173 [auto.] 0. secs (0.u,0.s) -Chars 10174 - 10175 [}] 0. secs (0.u,0.s) -Chars 10187 - 10198 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 10199 - 10210 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10211 - 10217 [subst.] 0. secs (0.u,0.s) -Chars 10218 - 10223 [step.] 0.001 secs (0.001u,0.s) -Chars 10224 - 10229 [auto.] 0. secs (0.u,0.s) -Chars 10238 - 10240 [++] 0. secs (0.u,0.s) -Chars 10241 - 10253 [constructor.] 0. secs (0.u,0.s) -Chars 10266 - 10320 [remember~(go~(VisF~(evempty~A~...] 0. secs (0.u,0.s) -Chars 10332 - 10384 [assert~(VisF~(evempty~A~Hempty...] 0. secs (0.u,0.s) -Chars 10396 - 10397 [{] 0. secs (0.u,0.s) -Chars 10398 - 10404 [subst.] 0. secs (0.u,0.s) -Chars 10405 - 10410 [auto.] 0. secs (0.u,0.s) -Chars 10411 - 10412 [}] 0. secs (0.u,0.s) -Chars 10424 - 10435 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 10436 - 10447 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10448 - 10454 [subst.] 0. secs (0.u,0.s) -Chars 10455 - 10460 [step.] 0.001 secs (0.001u,0.s) -Chars 10461 - 10466 [auto.] 0. secs (0.u,0.s) -Chars 10469 - 10470 [-] 0. secs (0.u,0.s) -Chars 10471 - 10481 [step~in~H.] 0. secs (0.u,0.s) -Chars 10482 - 10504 [dependent~induction~H.] 0.039 secs (0.038u,0.s) -Chars 10509 - 10510 [+] 0. secs (0.u,0.s) -Chars 10511 - 10519 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 10520 - 10532 [reflexivity.] 0. secs (0.u,0.s) -Chars 10537 - 10538 [+] 0. secs (0.u,0.s) -Chars 10539 - 10547 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 10548 - 10552 [cbn.] 0. secs (0.u,0.s) -Chars 10553 - 10565 [constructor.] 0. secs (0.u,0.s) -Chars 10572 - 10604 [remember~(go~(VisF~e~k))~as~t0.] 0. secs (0.u,0.s) -Chars 10611 - 10642 [assert~(VisF~e~k~=~observe~t0).] 0. secs (0.u,0.s) -Chars 10649 - 10650 [{] 0. secs (0.u,0.s) -Chars 10651 - 10657 [subst.] 0. secs (0.u,0.s) -Chars 10658 - 10663 [auto.] 0. secs (0.u,0.s) -Chars 10664 - 10665 [}] 0. secs (0.u,0.s) -Chars 10672 - 10682 [rewrite~H.] 0. secs (0.u,0.s) -Chars 10683 - 10694 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10696 - 10701 [auto.] 0. secs (0.u,0.s) -Chars 10706 - 10707 [+] 0. secs (0.u,0.s) -Chars 10708 - 10716 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 10717 - 10733 [destruct~e;~cbn.] 0.001 secs (0.001u,0.s) -Chars 10740 - 10741 [*] 0. secs (0.u,0.s) -Chars 10742 - 10757 [unfold~observe.] 0. secs (0.u,0.s) -Chars 10758 - 10762 [cbn.] 0. secs (0.u,0.s) -Chars 10763 - 10779 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 10788 - 10817 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) -Chars 10826 - 10828 [++] 0. secs (0.u,0.s) -Chars 10829 - 10855 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 10856 - 10882 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 10894 - 10919 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 10920 - 10924 [cbn.] 0. secs (0.u,0.s) -Chars 10925 - 10937 [constructor.] 0. secs (0.u,0.s) -Chars 10938 - 10945 [intros.] 0. secs (0.u,0.s) -Chars 10957 - 10968 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10971 - 10987 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 10996 - 10998 [++] 0. secs (0.u,0.s) -Chars 10999 - 11011 [reflexivity.] 0. secs (0.u,0.s) -Chars 11018 - 11019 [*] 0. secs (0.u,0.s) -Chars 11020 - 11032 [constructor.] 0. secs (0.u,0.s) -Chars 11033 - 11047 [contradiction.] 0. secs (0.u,0.s) -Chars 11052 - 11053 [+] 0. secs (0.u,0.s) -Chars 11054 - 11062 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 11063 - 11095 [destruct~(observe~b')~eqn:Heq.] 0.003 secs (0.003u,0.s) -Chars 11102 - 11103 [*] 0. secs (0.u,0.s) -Chars 11104 - 11119 [rewrite~<-~Heq.] 0. secs (0.u,0.s) -Chars 11120 - 11124 [cbn.] 0. secs (0.u,0.s) -Chars 11125 - 11143 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 11144 - 11166 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 11167 - 11179 [rewrite~Heq.] 0. secs (0.u,0.s) -Chars 11180 - 11185 [auto.] 0. secs (0.u,0.s) -Chars 11192 - 11193 [*] 0. secs (0.u,0.s) -Chars 11194 - 11198 [cbn.] 0. secs (0.u,0.s) -Chars 11199 - 11211 [constructor.] 0. secs (0.u,0.s) -Chars 11220 - 11252 [remember~(go~(VisF~e~k))~as~t2.] 0. secs (0.u,0.s) -Chars 11261 - 11292 [assert~(VisF~e~k~=~observe~t2).] 0. secs (0.u,0.s) -Chars 11301 - 11302 [{] 0. secs (0.u,0.s) -Chars 11303 - 11309 [subst.] 0. secs (0.u,0.s) -Chars 11310 - 11315 [auto.] 0. secs (0.u,0.s) -Chars 11316 - 11317 [}] 0. secs (0.u,0.s) -Chars 11326 - 11337 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 11338 - 11349 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 11358 - 11381 [enough~(t1~≈~Tau~t0).] 0. secs (0.u,0.s) -Chars 11390 - 11391 [{] 0. secs (0.u,0.s) -Chars 11392 - 11415 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) -Chars 11416 - 11421 [auto.] 0. secs (0.u,0.s) -Chars 11422 - 11423 [}] 0. secs (0.u,0.s) -Chars 11432 - 11443 [step;~auto.] 0.001 secs (0.001u,0.s) -Chars 11450 - 11451 [*] 0. secs (0.u,0.s) -Chars 11452 - 11456 [cbn.] 0. secs (0.u,0.s) -Chars 11457 - 11476 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 11477 - 11492 [rewrite~<-~Heq.] 0. secs (0.u,0.s) -Chars 11493 - 11515 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 11524 - 11536 [rewrite~Heq.] 0. secs (0.u,0.s) -Chars 11537 - 11542 [auto.] 0. secs (0.u,0.s) -Chars 11547 - 11548 [+] 0. secs (0.u,0.s) -Chars 11549 - 11557 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 11558 - 11589 [destruct~(observe~b)~eqn:Heq.] 0.002 secs (0.002u,0.s) -Chars 11596 - 11597 [*] 0. secs (0.u,0.s) -Chars 11598 - 11613 [rewrite~<-~Heq.] 0. secs (0.u,0.s) -Chars 11614 - 11618 [cbn.] 0. secs (0.u,0.s) -Chars 11619 - 11637 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 11638 - 11660 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 11661 - 11673 [rewrite~Heq.] 0. secs (0.u,0.s) -Chars 11674 - 11679 [auto.] 0. secs (0.u,0.s) -Chars 11686 - 11687 [*] 0. secs (0.u,0.s) -Chars 11688 - 11692 [cbn.] 0. secs (0.u,0.s) -Chars 11693 - 11705 [constructor.] 0. secs (0.u,0.s) -Chars 11714 - 11746 [remember~(go~(VisF~e~k))~as~t1.] 0. secs (0.u,0.s) -Chars 11755 - 11786 [assert~(VisF~e~k~=~observe~t1).] 0. secs (0.u,0.s) -Chars 11795 - 11796 [{] 0. secs (0.u,0.s) -Chars 11797 - 11803 [subst.] 0. secs (0.u,0.s) -Chars 11804 - 11809 [auto.] 0. secs (0.u,0.s) -Chars 11810 - 11811 [}] 0. secs (0.u,0.s) -Chars 11820 - 11831 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 11832 - 11843 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 11852 - 11875 [enough~(Tau~t0~≈~t2).] 0. secs (0.u,0.s) -Chars 11884 - 11885 [{] 0. secs (0.u,0.s) -Chars 11886 - 11909 [rewrite~tau_eutt~in~H1.] 0.014 secs (0.014u,0.s) -Chars 11910 - 11915 [auto.] 0. secs (0.u,0.s) -Chars 11916 - 11917 [}] 0. secs (0.u,0.s) -Chars 11926 - 11937 [step;~auto.] 0.001 secs (0.001u,0.s) -Chars 11944 - 11945 [*] 0. secs (0.u,0.s) -Chars 11946 - 11950 [cbn.] 0. secs (0.u,0.s) -Chars 11951 - 11970 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 11971 - 11986 [rewrite~<-~Heq.] 0. secs (0.u,0.s) -Chars 11987 - 12009 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 12018 - 12030 [rewrite~Heq.] 0. secs (0.u,0.s) -Chars 12031 - 12036 [auto.] 0. secs (0.u,0.s) -Chars 12037 - 12041 [Qed.] 0.167 secs (0.166u,0.001s) -Chars 12045 - 12223 [Lemma~proper_peel_eutt_r~:~~~f...] 0. secs (0.u,0.s) -Chars 12224 - 12230 [Proof.] 0. secs (0.u,0.s) -Chars 12233 - 12246 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 12247 - 12265 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 12266 - 12273 [intros.] 0. secs (0.u,0.s) -Chars 12276 - 12288 [unfold~peel.] 0. secs (0.u,0.s) -Chars 12289 - 12321 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) -Chars 12324 - 12325 [-] 0. secs (0.u,0.s) -Chars 12326 - 12336 [step~in~H.] 0. secs (0.u,0.s) -Chars 12337 - 12359 [dependent~induction~H.] 0.035 secs (0.035u,0.s) -Chars 12364 - 12365 [+] 0. secs (0.u,0.s) -Chars 12366 - 12374 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12375 - 12387 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 12392 - 12393 [+] 0. secs (0.u,0.s) -Chars 12394 - 12402 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12403 - 12407 [cbn.] 0. secs (0.u,0.s) -Chars 12408 - 12420 [constructor.] 0. secs (0.u,0.s) -Chars 12421 - 12437 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 12444 - 12455 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 12457 - 12462 [auto.] 0. secs (0.u,0.s) -Chars 12467 - 12468 [+] 0. secs (0.u,0.s) -Chars 12469 - 12477 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 12478 - 12482 [cbn.] 0. secs (0.u,0.s) -Chars 12483 - 12495 [reflexivity.] 0. secs (0.u,0.s) -Chars 12500 - 12501 [+] 0. secs (0.u,0.s) -Chars 12502 - 12510 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12511 - 12515 [cbn.] 0. secs (0.u,0.s) -Chars 12516 - 12534 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 12535 - 12557 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 12562 - 12563 [+] 0. secs (0.u,0.s) -Chars 12564 - 12572 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12573 - 12577 [cbn.] 0. secs (0.u,0.s) -Chars 12578 - 12596 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 12597 - 12619 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 12622 - 12623 [-] 0. secs (0.u,0.s) -Chars 12624 - 12634 [step~in~H.] 0. secs (0.u,0.s) -Chars 12635 - 12657 [dependent~induction~H.] 0.033 secs (0.033u,0.s) -Chars 12662 - 12663 [+] 0. secs (0.u,0.s) -Chars 12664 - 12672 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12673 - 12677 [cbn.] 0. secs (0.u,0.s) -Chars 12678 - 12690 [constructor.] 0. secs (0.u,0.s) -Chars 12691 - 12696 [auto.] 0. secs (0.u,0.s) -Chars 12701 - 12702 [+] 0. secs (0.u,0.s) -Chars 12703 - 12711 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 12712 - 12716 [cbn.] 0. secs (0.u,0.s) -Chars 12717 - 12722 [etau.] 0.001 secs (0.001u,0.s) -Chars 12728 - 12729 [+] 0. secs (0.u,0.s) -Chars 12730 - 12738 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 12739 - 12743 [cbn.] 0. secs (0.u,0.s) -Chars 12744 - 12756 [constructor.] 0. secs (0.u,0.s) -Chars 12763 - 12777 [rewrite~x,~x0.] 0. secs (0.u,0.s) -Chars 12780 - 12791 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 12798 - 12803 [step.] 0.001 secs (0.001u,0.s) -Chars 12804 - 12812 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12820 - 12832 [constructor.] 0. secs (0.u,0.s) -Chars 12833 - 12838 [auto.] 0. secs (0.u,0.s) -Chars 12843 - 12844 [+] 0. secs (0.u,0.s) -Chars 12845 - 12853 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12854 - 12888 [destruct~(observe~t')~eqn:Heqt'.] 0.004 secs (0.004u,0.s) -Chars 12895 - 12896 [*] 0. secs (0.u,0.s) -Chars 12897 - 12901 [cbn.] 0. secs (0.u,0.s) -Chars 12903 - 12921 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 12922 - 12936 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 12945 - 12967 [dependent~induction~H.] 0.04 secs (0.04u,0.s) -Chars 12976 - 12978 [++] 0. secs (0.u,0.s) -Chars 12979 - 12987 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 12988 - 13046 [destruct~(observe~t0);~cbn;~tr...] 0.001 secs (0.001u,0.s) -Chars 13058 - 13093 [destruct~e;~cbn;~constructor;~...] 0.001 secs (0.001u,0.s) -Chars 13102 - 13104 [++] 0. secs (0.u,0.s) -Chars 13105 - 13113 [simpobs.] 0.012 secs (0.012u,0.s) -Chars 13114 - 13118 [cbn.] 0. secs (0.u,0.s) -Chars 13119 - 13158 [destruct~(observe~t2)~eqn:Heqt...] 0.001 secs (0.001u,0.s) -Chars 13170 - 13172 [**] 0. secs (0.u,0.s) -Chars 13173 - 13192 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 13193 - 13210 [rewrite~<-~Heqt2.] 0. secs (0.u,0.s) -Chars 13212 - 13234 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 13246 - 13248 [**] 0. secs (0.u,0.s) -Chars 13249 - 13267 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 13268 - 13290 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 13302 - 13304 [**] 0. secs (0.u,0.s) -Chars 13305 - 13403 [destruct~e;~cbn;~~try~(constru...] 0.009 secs (0.009u,0.s) -Chars 13410 - 13411 [*] 0. secs (0.u,0.s) -Chars 13412 - 13416 [cbn.] 0. secs (0.u,0.s) -Chars 13417 - 13429 [constructor.] 0. secs (0.u,0.s) -Chars 13430 - 13448 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 13457 - 13480 [enough~(t1~≈~Tau~t2).] 0. secs (0.u,0.s) -Chars 13489 - 13490 [{] 0. secs (0.u,0.s) -Chars 13491 - 13514 [rewrite~tau_eutt~in~H0.] 0. secs (0.u,0.s) -Chars 13515 - 13520 [auto.] 0. secs (0.u,0.s) -Chars 13521 - 13522 [}] 0. secs (0.u,0.s) -Chars 13531 - 13536 [step.] 0.001 secs (0.001u,0.s) -Chars 13537 - 13542 [auto.] 0. secs (0.u,0.s) -Chars 13549 - 13550 [*] 0. secs (0.u,0.s) -Chars 13551 - 13555 [cbn.] 0. secs (0.u,0.s) -Chars 13556 - 13568 [constructor.] 0. secs (0.u,0.s) -Chars 13569 - 13586 [rewrite~<-~Heqt'.] 0. secs (0.u,0.s) -Chars 13587 - 13598 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 13608 - 13613 [step.] 0.001 secs (0.001u,0.s) -Chars 13614 - 13628 [rewrite~Heqt'.] 0. secs (0.u,0.s) -Chars 13629 - 13634 [auto.] 0. secs (0.u,0.s) -Chars 13639 - 13640 [+] 0. secs (0.u,0.s) -Chars 13641 - 13649 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13650 - 13671 [destruct~(observe~t).] 0.002 secs (0.002u,0.s) -Chars 13678 - 13679 [*] 0. secs (0.u,0.s) -Chars 13680 - 13684 [cbn.] 0. secs (0.u,0.s) -Chars 13685 - 13703 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 13704 - 13718 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 13727 - 13749 [dependent~induction~H.] 0.027 secs (0.027u,0.s) -Chars 13758 - 13760 [++] 0. secs (0.u,0.s) -Chars 13761 - 13769 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13770 - 13834 [destruct~(observe~t0);~try~des...] 0.002 secs (0.002u,0.s) -Chars 13843 - 13845 [++] 0. secs (0.u,0.s) -Chars 13846 - 13854 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13855 - 13894 [destruct~(observe~t1)~eqn:Heqt...] 0.001 secs (0.001u,0.s) -Chars 13906 - 13908 [**] 0. secs (0.u,0.s) -Chars 13909 - 13927 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 13928 - 13945 [rewrite~<-~Heqt1.] 0. secs (0.u,0.s) -Chars 13946 - 13968 [eapply~IHeqitF;~eauto.] 0.005 secs (0.005u,0.s) -Chars 13980 - 13982 [**] 0. secs (0.u,0.s) -Chars 13983 - 14001 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 14002 - 14024 [eapply~IHeqitF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 14036 - 14038 [**] 0. secs (0.u,0.s) -Chars 14039 - 14121 [destruct~e;~cbn;~~try~(constru...] 0.008 secs (0.008u,0.s) -Chars 14128 - 14129 [*] 0. secs (0.u,0.s) -Chars 14130 - 14134 [cbn.] 0. secs (0.u,0.s) -Chars 14135 - 14147 [constructor.] 0. secs (0.u,0.s) -Chars 14148 - 14166 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 14175 - 14200 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) -Chars 14201 - 14206 [step.] 0.001 secs (0.001u,0.s) -Chars 14207 - 14212 [auto.] 0. secs (0.u,0.s) -Chars 14219 - 14220 [*] 0. secs (0.u,0.s) -Chars 14221 - 14225 [cbn.] 0. secs (0.u,0.s) -Chars 14226 - 14238 [constructor.] 0. secs (0.u,0.s) -Chars 14239 - 14267 [remember~(Vis~e~k)~as~t1.] 0. secs (0.u,0.s) -Chars 14276 - 14307 [assert~(VisF~e~k~=~observe~t1).] 0. secs (0.u,0.s) -Chars 14316 - 14317 [{] 0. secs (0.u,0.s) -Chars 14318 - 14324 [subst.] 0. secs (0.u,0.s) -Chars 14325 - 14330 [auto.] 0. secs (0.u,0.s) -Chars 14331 - 14332 [}] 0. secs (0.u,0.s) -Chars 14341 - 14352 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 14353 - 14364 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 14365 - 14371 [subst.] 0. secs (0.u,0.s) -Chars 14372 - 14377 [step.] 0.002 secs (0.002u,0.s) -Chars 14378 - 14383 [auto.] 0. secs (0.u,0.s) -Chars 14386 - 14387 [-] 0. secs (0.u,0.s) -Chars 14388 - 14398 [step~in~H.] 0. secs (0.u,0.s) -Chars 14399 - 14421 [dependent~induction~H.] 0.031 secs (0.031u,0.s) -Chars 14426 - 14427 [+] 0. secs (0.u,0.s) -Chars 14428 - 14436 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 14437 - 14472 [destruct~e;~cbn;~constructor;~...] 0.001 secs (0.001u,0.s) -Chars 14477 - 14478 [+] 0. secs (0.u,0.s) -Chars 14479 - 14487 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 14488 - 14562 [destruct~e;~cbn;~constructor;~...] 0.002 secs (0.002u,0.s) -Chars 14567 - 14568 [+] 0. secs (0.u,0.s) -Chars 14569 - 14577 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 14578 - 14595 [destruct~e0;~cbn.] 0.001 secs (0.001u,0.s) -Chars 14602 - 14603 [*] 0. secs (0.u,0.s) -Chars 14604 - 14619 [unfold~observe.] 0. secs (0.u,0.s) -Chars 14620 - 14624 [cbn.] 0. secs (0.u,0.s) -Chars 14625 - 14641 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 14650 - 14679 [destruct~(classicT~(A~=~u)).] 0. secs (0.u,0.s) -Chars 14688 - 14690 [++] 0. secs (0.u,0.s) -Chars 14691 - 14717 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 14718 - 14745 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 14757 - 14782 [dependent~destruction~He.] 0.001 secs (0.u,0.s) -Chars 14783 - 14787 [cbn.] 0. secs (0.u,0.s) -Chars 14788 - 14800 [constructor.] 0.003 secs (0.003u,0.s) -Chars 14801 - 14808 [intros.] 0. secs (0.u,0.s) -Chars 14820 - 14831 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 14834 - 14850 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 14859 - 14861 [++] 0. secs (0.u,0.s) -Chars 14862 - 14866 [cbn.] 0. secs (0.u,0.s) -Chars 14867 - 14879 [reflexivity.] 0. secs (0.u,0.s) -Chars 14887 - 14888 [*] 0. secs (0.u,0.s) -Chars 14889 - 14901 [constructor.] 0. secs (0.u,0.s) -Chars 14902 - 14916 [contradiction.] 0. secs (0.u,0.s) -Chars 14921 - 14922 [+] 0. secs (0.u,0.s) -Chars 14923 - 14931 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 14932 - 14971 [destruct~(observe~t');~destruc...] 0.006 secs (0.006u,0.s) -Chars 14978 - 14979 [*] 0. secs (0.u,0.s) -Chars 14980 - 14998 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 14999 - 15013 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15014 - 15036 [dependent~induction~H.] 0.029 secs (0.029u,0.s) -Chars 15045 - 15047 [++] 0. secs (0.u,0.s) -Chars 15048 - 15056 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15057 - 15061 [cbn.] 0. secs (0.u,0.s) -Chars 15062 - 15080 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 15089 - 15091 [++] 0. secs (0.u,0.s) -Chars 15092 - 15100 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 15101 - 15105 [cbn.] 0. secs (0.u,0.s) -Chars 15106 - 15125 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 15132 - 15133 [*] 0. secs (0.u,0.s) -Chars 15134 - 15152 [constructor;~auto.] 0.002 secs (0.002u,0.s) -Chars 15153 - 15167 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15168 - 15190 [dependent~induction~H.] 0.03 secs (0.03u,0.s) -Chars 15199 - 15201 [++] 0. secs (0.u,0.s) -Chars 15202 - 15210 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15211 - 15215 [cbn.] 0. secs (0.u,0.s) -Chars 15216 - 15234 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 15243 - 15245 [++] 0. secs (0.u,0.s) -Chars 15246 - 15254 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 15255 - 15259 [cbn.] 0. secs (0.u,0.s) -Chars 15260 - 15279 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 15286 - 15287 [*] 0. secs (0.u,0.s) -Chars 15288 - 15300 [constructor.] 0. secs (0.u,0.s) -Chars 15301 - 15317 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 15318 - 15329 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 15339 - 15371 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) -Chars 15372 - 15377 [step.] 0.001 secs (0.001u,0.s) -Chars 15378 - 15383 [auto.] 0. secs (0.u,0.s) -Chars 15390 - 15391 [*] 0. secs (0.u,0.s) -Chars 15392 - 15408 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 15409 - 15421 [constructor.] 0. secs (0.u,0.s) -Chars 15422 - 15433 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 15443 - 15475 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) -Chars 15476 - 15481 [step.] 0.001 secs (0.001u,0.s) -Chars 15482 - 15487 [auto.] 0. secs (0.u,0.s) -Chars 15494 - 15495 [*] 0. secs (0.u,0.s) -Chars 15496 - 15514 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 15515 - 15529 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15538 - 15560 [dependent~induction~H.] 0.037 secs (0.037u,0.s) -Chars 15569 - 15571 [++] 0. secs (0.u,0.s) -Chars 15572 - 15580 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 15581 - 15596 [unfold~observe.] 0. secs (0.u,0.s) -Chars 15597 - 15601 [cbn.] 0. secs (0.u,0.s) -Chars 15613 - 15629 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 15630 - 15660 [destruct~(classicT~(A~=~X0)).] 0. secs (0.u,0.s) -Chars 15672 - 15674 [**] 0. secs (0.u,0.s) -Chars 15675 - 15701 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 15716 - 15742 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 15743 - 15768 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 15783 - 15787 [cbn.] 0. secs (0.u,0.s) -Chars 15788 - 15800 [constructor.] 0. secs (0.u,0.s) -Chars 15801 - 15808 [intros.] 0. secs (0.u,0.s) -Chars 15810 - 15839 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 15851 - 15853 [**] 0. secs (0.u,0.s) -Chars 15854 - 15858 [cbn.] 0. secs (0.u,0.s) -Chars 15859 - 15871 [reflexivity.] 0.003 secs (0.003u,0.s) -Chars 15881 - 15883 [++] 0. secs (0.u,0.s) -Chars 15884 - 15892 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 15893 - 15897 [cbn.] 0. secs (0.u,0.s) -Chars 15898 - 15939 [constructor;~auto;~eapply~IHeq...] 0.004 secs (0.004u,0.s) -Chars 15946 - 15947 [*] 0. secs (0.u,0.s) -Chars 15948 - 15966 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 15967 - 15981 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 15990 - 16012 [dependent~induction~H.] 0.036 secs (0.036u,0.s) -Chars 16021 - 16023 [++] 0. secs (0.u,0.s) -Chars 16024 - 16032 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 16033 - 16037 [cbn.] 0. secs (0.u,0.s) -Chars 16038 - 16050 [constructor.] 0. secs (0.u,0.s) -Chars 16051 - 16065 [contradiction.] 0. secs (0.u,0.s) -Chars 16074 - 16076 [++] 0. secs (0.u,0.s) -Chars 16077 - 16085 [simpobs.] 0.005 secs (0.005u,0.s) -Chars 16086 - 16090 [cbn.] 0. secs (0.u,0.s) -Chars 16091 - 16132 [constructor;~auto;~eapply~IHeq...] 0.004 secs (0.004u,0.s) -Chars 16137 - 16138 [+] 0. secs (0.u,0.s) -Chars 16139 - 16147 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 16148 - 16152 [cbn.] 0. secs (0.u,0.s) -Chars 16153 - 16202 [destruct~(observe~t)~eqn:Heqt;...] 0.005 secs (0.005u,0.s) -Chars 16209 - 16210 [*] 0. secs (0.u,0.s) -Chars 16211 - 16229 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 16230 - 16244 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16245 - 16267 [dependent~induction~H.] 0.04 secs (0.039u,0.s) -Chars 16276 - 16278 [++] 0. secs (0.u,0.s) -Chars 16279 - 16287 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 16288 - 16292 [cbn.] 0. secs (0.u,0.s) -Chars 16293 - 16311 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 16320 - 16322 [++] 0. secs (0.u,0.s) -Chars 16323 - 16331 [simpobs.] 0.008 secs (0.008u,0.s) -Chars 16332 - 16336 [cbn.] 0. secs (0.u,0.s) -Chars 16337 - 16356 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 16363 - 16364 [*] 0. secs (0.u,0.s) -Chars 16365 - 16383 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 16384 - 16398 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16399 - 16421 [dependent~induction~H.] 0.038 secs (0.038u,0.s) -Chars 16430 - 16432 [++] 0. secs (0.u,0.s) -Chars 16433 - 16441 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 16442 - 16446 [cbn.] 0. secs (0.u,0.s) -Chars 16447 - 16465 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 16474 - 16476 [++] 0. secs (0.u,0.s) -Chars 16477 - 16485 [simpobs.] 0.008 secs (0.008u,0.s) -Chars 16486 - 16490 [cbn.] 0. secs (0.u,0.s) -Chars 16491 - 16510 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 16517 - 16518 [*] 0. secs (0.u,0.s) -Chars 16519 - 16531 [constructor.] 0. secs (0.u,0.s) -Chars 16532 - 16548 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 16549 - 16567 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 16568 - 16588 [rewrite~<-~tau_eutt.] 0.003 secs (0.003u,0.s) -Chars 16597 - 16602 [step.] 0.001 secs (0.001u,0.s) -Chars 16603 - 16608 [auto.] 0. secs (0.u,0.s) -Chars 16615 - 16616 [*] 0. secs (0.u,0.s) -Chars 16617 - 16629 [constructor.] 0. secs (0.u,0.s) -Chars 16630 - 16646 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 16647 - 16665 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 16666 - 16686 [rewrite~<-~tau_eutt.] 0. secs (0.u,0.s) -Chars 16695 - 16700 [step.] 0.001 secs (0.001u,0.s) -Chars 16701 - 16706 [auto.] 0. secs (0.u,0.s) -Chars 16713 - 16714 [*] 0. secs (0.u,0.s) -Chars 16715 - 16733 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 16734 - 16748 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 16749 - 16771 [dependent~induction~H.] 0.044 secs (0.044u,0.s) -Chars 16780 - 16782 [++] 0. secs (0.u,0.s) -Chars 16783 - 16791 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 16792 - 16807 [unfold~observe.] 0. secs (0.u,0.s) -Chars 16808 - 16812 [cbn.] 0. secs (0.u,0.s) -Chars 16824 - 16840 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 16852 - 16882 [destruct~(classicT~(A~=~X0)).] 0.002 secs (0.002u,0.s) -Chars 16894 - 16896 [**] 0. secs (0.u,0.s) -Chars 16897 - 16923 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 16938 - 16964 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 16965 - 16990 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 17005 - 17009 [cbn.] 0. secs (0.u,0.s) -Chars 17010 - 17022 [constructor.] 0. secs (0.u,0.s) -Chars 17023 - 17030 [intros.] 0. secs (0.u,0.s) -Chars 17032 - 17054 [eapply~CIH;~apply~REL.] 0. secs (0.u,0.s) -Chars 17066 - 17068 [**] 0. secs (0.u,0.s) -Chars 17069 - 17073 [cbn.] 0. secs (0.u,0.s) -Chars 17074 - 17086 [reflexivity.] 0. secs (0.u,0.s) -Chars 17096 - 17098 [++] 0. secs (0.u,0.s) -Chars 17099 - 17107 [simpobs.] 0.009 secs (0.009u,0.s) -Chars 17108 - 17112 [cbn.] 0. secs (0.u,0.s) -Chars 17113 - 17132 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 17139 - 17140 [*] 0. secs (0.u,0.s) -Chars 17141 - 17159 [constructor;~auto.] 0.003 secs (0.003u,0.s) -Chars 17160 - 17174 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 17175 - 17197 [dependent~induction~H.] 0.044 secs (0.043u,0.s) -Chars 17206 - 17208 [++] 0. secs (0.u,0.s) -Chars 17209 - 17217 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 17218 - 17222 [cbn.] 0. secs (0.u,0.s) -Chars 17223 - 17235 [constructor.] 0. secs (0.u,0.s) -Chars 17236 - 17250 [contradiction.] 0. secs (0.u,0.s) -Chars 17259 - 17261 [++] 0. secs (0.u,0.s) -Chars 17262 - 17270 [simpobs.] 0.01 secs (0.01u,0.s) -Chars 17271 - 17275 [cbn.] 0. secs (0.u,0.s) -Chars 17276 - 17295 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 17296 - 17300 [Qed.] 0.355 secs (0.352u,0.002s) -Chars 17302 - 17403 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 17404 - 17410 [Proof.] 0. secs (0.u,0.s) -Chars 17413 - 17432 [intros~?~?~?~?~?~?.] 0. secs (0.u,0.s) -Chars 17433 - 17482 [rewrite~proper_peel_eutt_l~wit...] 0.006 secs (0.006u,0.s) -Chars 17485 - 17518 [eapply~proper_peel_eutt_r;~eauto.] 0. secs (0.u,0.s) -Chars 17519 - 17523 [Qed.] 0. secs (0.u,0.s) -Chars 17525 - 17731 [Lemma~not_peel_vis_ret~:~~~for...] 0. secs (0.u,0.s) -Chars 17732 - 17738 [Proof.] 0. secs (0.u,0.s) -Chars 17741 - 17771 [intros~R~E~S~X~e~k~r~t1~Heutt.] 0. secs (0.u,0.s) -Chars 17774 - 17788 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 17789 - 17806 [unfold~peel~in~*.] 0. secs (0.u,0.s) -Chars 17807 - 17816 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 17819 - 17846 [dependent~induction~Heutt.] 0.021 secs (0.021u,0.s) -Chars 17849 - 17850 [-] 0. secs (0.u,0.s) -Chars 17851 - 17901 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) -Chars 17906 - 17946 [destruct~e0;~cbn~in~*;~try~dis...] 0. secs (0.u,0.s) -Chars 17951 - 17971 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 17972 - 17981 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 17982 - 18003 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 18008 - 18054 [destruct~(classicT~(A~=~X));~t...] 0. secs (0.u,0.s) -Chars 18059 - 18090 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 18091 - 18118 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 18123 - 18148 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 18149 - 18162 [discriminate.] 0. secs (0.u,0.s) -Chars 18165 - 18166 [-] 0. secs (0.u,0.s) -Chars 18167 - 18217 [destruct~(observe~t1);~cbn~in~...] 0. secs (0.u,0.s) -Chars 18222 - 18223 [+] 0. secs (0.u,0.s) -Chars 18224 - 18245 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 18246 - 18269 [rewrite~Hspin~in~Heutt.] 0. secs (0.u,0.s) -Chars 18276 - 18301 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) -Chars 18302 - 18307 [step.] 0.004 secs (0.004u,0.s) -Chars 18308 - 18314 [eauto.] 0. secs (0.u,0.s) -Chars 18319 - 18320 [+] 0. secs (0.u,0.s) -Chars 18321 - 18340 [injection~x~as~Ht0.] 0. secs (0.u,0.s) -Chars 18341 - 18363 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 18364 - 18376 [rewrite~Ht0.] 0. secs (0.u,0.s) -Chars 18377 - 18389 [reflexivity.] 0. secs (0.u,0.s) -Chars 18394 - 18395 [+] 0. secs (0.u,0.s) -Chars 18396 - 18436 [destruct~e0;~cbn~in~*;~try~dis...] 0. secs (0.u,0.s) -Chars 18443 - 18463 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 18464 - 18473 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 18474 - 18495 [unfold~peel_vis~in~*.] 0. secs (0.u,0.s) -Chars 18502 - 18531 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) -Chars 18538 - 18539 [*] 0. secs (0.u,0.s) -Chars 18540 - 18571 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 18572 - 18599 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 18608 - 18633 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 18634 - 18647 [discriminate.] 0. secs (0.u,0.s) -Chars 18654 - 18655 [*] 0. secs (0.u,0.s) -Chars 18656 - 18665 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 18666 - 18687 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 18688 - 18711 [rewrite~Hspin~in~Heutt.] 0. secs (0.u,0.s) -Chars 18720 - 18745 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) -Chars 18746 - 18751 [step.] 0.003 secs (0.003u,0.s) -Chars 18752 - 18758 [eauto.] 0. secs (0.u,0.s) -Chars 18759 - 18763 [Qed.] 0.017 secs (0.017u,0.s) -Chars 18765 - 18919 [Lemma~peel_ret_inv~:~~~forall~...] 0. secs (0.u,0.s) -Chars 18920 - 18926 [Proof.] 0. secs (0.u,0.s) -Chars 18929 - 18950 [intros~R~r~E~S~b~t~H.] 0. secs (0.u,0.s) -Chars 18951 - 18968 [unfold~peel~in~H.] 0. secs (0.u,0.s) -Chars 18971 - 18981 [step~in~H.] 0. secs (0.u,0.s) -Chars 18982 - 18991 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 18992 - 18997 [step.] 0.001 secs (0.001u,0.s) -Chars 18998 - 19002 [cbn.] 0. secs (0.u,0.s) -Chars 19005 - 19027 [dependent~induction~H.] 0.022 secs (0.022u,0.s) -Chars 19030 - 19031 [-] 0. secs (0.u,0.s) -Chars 19032 - 19049 [unfold~peel~in~x.] 0. secs (0.u,0.s) -Chars 19050 - 19165 [destruct~(observe~b);~destruct...] 0.012 secs (0.012u,0.s) -Chars 19170 - 19171 [+] 0. secs (0.u,0.s) -Chars 19172 - 19233 [destruct~e;~dependent~destruct...] 0.003 secs (0.003u,0.s) -Chars 19238 - 19239 [+] 0. secs (0.u,0.s) -Chars 19240 - 19276 [destruct~e;~dependent~destruct...] 0.002 secs (0.002u,0.s) -Chars 19281 - 19282 [+] 0. secs (0.u,0.s) -Chars 19283 - 19319 [destruct~e;~dependent~destruct...] 0.002 secs (0.002u,0.s) -Chars 19326 - 19346 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 19347 - 19356 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 19357 - 19378 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 19385 - 19425 [destruct~(classicT~(A~=~X0))~e...] 0. secs (0.u,0.s) -Chars 19432 - 19433 [*] 0. secs (0.u,0.s) -Chars 19434 - 19465 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 19466 - 19472 [subst.] 0.002 secs (0.001u,0.s) -Chars 19473 - 19505 [remember~(eq_sym~eq_refl)~as~He.] 0. secs (0.u,0.s) -Chars 19514 - 19539 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 19540 - 19550 [cbn~in~x0.] 0. secs (0.u,0.s) -Chars 19551 - 19564 [discriminate.] 0. secs (0.u,0.s) -Chars 19571 - 19572 [*] 0. secs (0.u,0.s) -Chars 19573 - 19586 [discriminate.] 0. secs (0.u,0.s) -Chars 19589 - 19590 [-] 0. secs (0.u,0.s) -Chars 19591 - 19669 [destruct~(observe~b);~destruct...] 0.013 secs (0.013u,0.s) -Chars 19674 - 19675 [+] 0. secs (0.u,0.s) -Chars 19676 - 19694 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 19695 - 19736 [eapply~IHeqitF~with~(b~:=~Ret~...] 0.001 secs (0.001u,0.s) -Chars 19741 - 19742 [+] 0. secs (0.u,0.s) -Chars 19743 - 19751 [exfalso.] 0. secs (0.u,0.s) -Chars 19752 - 19777 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) -Chars 19778 - 19783 [step.] 0.003 secs (0.003u,0.s) -Chars 19784 - 19790 [eauto.] 0. secs (0.u,0.s) -Chars 19795 - 19796 [+] 0. secs (0.u,0.s) -Chars 19797 - 19815 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 19816 - 19838 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 19843 - 19844 [+] 0. secs (0.u,0.s) -Chars 19845 - 19853 [exfalso.] 0. secs (0.u,0.s) -Chars 19854 - 19876 [destruct~(observe~t0).] 0. secs (0.u,0.s) -Chars 19883 - 19884 [*] 0. secs (0.u,0.s) -Chars 19885 - 19894 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 19895 - 19920 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) -Chars 19929 - 19936 [inv~H.] 0.007 secs (0.007u,0.s) -Chars 19937 - 19942 [step.] 0.004 secs (0.004u,0.s) -Chars 19943 - 19949 [eauto.] 0. secs (0.u,0.s) -Chars 19956 - 19957 [*] 0. secs (0.u,0.s) -Chars 19958 - 19967 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 19968 - 19974 [inv~H.] 0.006 secs (0.006u,0.s) -Chars 19975 - 19999 [eapply~not_peel_vis_ret.] 0. secs (0.u,0.s) -Chars 20008 - 20013 [step.] 0.003 secs (0.003u,0.s) -Chars 20014 - 20020 [eauto.] 0. secs (0.u,0.s) -Chars 20027 - 20028 [*] 0. secs (0.u,0.s) -Chars 20029 - 20041 [destruct~e0.] 0. secs (0.u,0.s) -Chars 20050 - 20052 [++] 0. secs (0.u,0.s) -Chars 20053 - 20067 [clear~IHeqitF.] 0. secs (0.u,0.s) -Chars 20068 - 20088 [unfold~observe~in~H.] 0. secs (0.u,0.s) -Chars 20089 - 20098 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 20099 - 20120 [unfold~peel_vis~in~H.] 0. secs (0.u,0.s) -Chars 20132 - 20161 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) -Chars 20173 - 20175 [**] 0. secs (0.u,0.s) -Chars 20176 - 20207 [unfold~eq_rect_r,~eq_rect~in~H.] 0. secs (0.u,0.s) -Chars 20208 - 20235 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 20250 - 20275 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 20276 - 20282 [inv~H.] 0.002 secs (0.002u,0.s) -Chars 20294 - 20296 [**] 0. secs (0.u,0.s) -Chars 20297 - 20322 [eapply~not_spin_eutt_ret.] 0. secs (0.u,0.s) -Chars 20323 - 20328 [step.] 0.003 secs (0.003u,0.s) -Chars 20329 - 20335 [eauto.] 0. secs (0.u,0.s) -Chars 20344 - 20346 [++] 0. secs (0.u,0.s) -Chars 20347 - 20356 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 20357 - 20363 [inv~H.] 0.002 secs (0.002u,0.s) -Chars 20368 - 20369 [+] 0. secs (0.u,0.s) -Chars 20370 - 20409 [destruct~e;~cbn~in~x;~try~disc...] 0. secs (0.u,0.s) -Chars 20414 - 20415 [+] 0. secs (0.u,0.s) -Chars 20416 - 20434 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 20435 - 20477 [eapply~IHeqitF~with~(b~:=~Vis~...] 0.001 secs (0.001u,0.s) -Chars 20478 - 20482 [cbn.] 0. secs (0.u,0.s) -Chars 20489 - 20541 [destruct~e;~cbn~in~x;~dependen...] 0.004 secs (0.004u,0.s) -Chars 20546 - 20547 [+] 0. secs (0.u,0.s) -Chars 20548 - 20587 [destruct~e;~cbn~in~x;~try~disc...] 0. secs (0.u,0.s) -Chars 20594 - 20614 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 20615 - 20624 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 20625 - 20646 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 20653 - 20683 [destruct~(classicT~(A~=~X0)).] 0. secs (0.u,0.s) -Chars 20690 - 20691 [*] 0. secs (0.u,0.s) -Chars 20692 - 20723 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 20724 - 20750 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 20759 - 20784 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 20785 - 20798 [discriminate.] 0. secs (0.u,0.s) -Chars 20805 - 20806 [*] 0. secs (0.u,0.s) -Chars 20807 - 20828 [injection~x~as~Hspin.] 0. secs (0.u,0.s) -Chars 20829 - 20842 [cbn~in~Hspin.] 0. secs (0.u,0.s) -Chars 20843 - 20851 [exfalso.] 0. secs (0.u,0.s) -Chars 20860 - 20882 [assert~(t1~≈~Ret~r).] 0. secs (0.u,0.s) -Chars 20891 - 20892 [{] 0. secs (0.u,0.s) -Chars 20893 - 20898 [step.] 0.001 secs (0.001u,0.s) -Chars 20899 - 20904 [auto.] 0. secs (0.u,0.s) -Chars 20905 - 20906 [}] 0. secs (0.u,0.s) -Chars 20915 - 20935 [rewrite~Hspin~in~H0.] 0. secs (0.u,0.s) -Chars 20936 - 20968 [eapply~not_spin_eutt_ret;~eauto.] 0. secs (0.u,0.s) -Chars 20969 - 20973 [Qed.] 0.05 secs (0.05u,0.s) -Chars 21751 - 22398 [Lemma~eqitF_observe_peel_cont_...] 0.002 secs (0.002u,0.s) -Chars 22399 - 22405 [Proof.] 0. secs (0.u,0.s) -Chars 22408 - 22452 [intros~E~R~S~A~ev~ans~k1~k2~RE...] 0. secs (0.u,0.s) -Chars 22453 - 22458 [icbn.] 0. secs (0.u,0.s) -Chars 22462 - 22477 [unfold~observe.] 0. secs (0.u,0.s) -Chars 22478 - 22482 [cbn.] 0. secs (0.u,0.s) -Chars 22483 - 22504 [unfold~peel_cont_vis.] 0. secs (0.u,0.s) -Chars 22507 - 22536 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) -Chars 22539 - 22540 [-] 0. secs (0.u,0.s) -Chars 22541 - 22567 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 22568 - 22595 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 22600 - 22625 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 22626 - 22630 [cbn.] 0. secs (0.u,0.s) -Chars 22631 - 22643 [constructor.] 0. secs (0.u,0.s) -Chars 22648 - 22655 [intros.] 0. secs (0.u,0.s) -Chars 22657 - 22668 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 22669 - 22685 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 22688 - 22689 [-] 0. secs (0.u,0.s) -Chars 22690 - 22694 [cbn.] 0. secs (0.u,0.s) -Chars 22695 - 22700 [taus.] 0. secs (0.u,0.s) -Chars 22701 - 22713 [reflexivity.] 0. secs (0.u,0.s) -Chars 22715 - 22719 [Qed.] 0.002 secs (0.002u,0.s) -Chars 22724 - 22935 [Lemma~proper_peel_cont_eutt_l~...] 0. secs (0.u,0.s) -Chars 22936 - 22942 [Proof.] 0. secs (0.u,0.s) -Chars 22945 - 22958 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 22959 - 22976 [unfold~peel_cont.] 0. secs (0.u,0.s) -Chars 22977 - 22993 [intros~b~b'~t~_.] 0. secs (0.u,0.s) -Chars 22996 - 23010 [revert~b~b'~t.] 0. secs (0.u,0.s) -Chars 23011 - 23030 [icoinduction~c~CIH.] 0.004 secs (0.004u,0.s) -Chars 23031 - 23038 [intros.] 0. secs (0.u,0.s) -Chars 23039 - 23049 [step~in~H.] 0. secs (0.u,0.s) -Chars 23053 - 23085 [destruct~(observe~t)~eqn:Heqt.] 0. secs (0.u,0.s) -Chars 23107 - 23108 [-] 0. secs (0.u,0.s) -Chars 23109 - 23258 [destruct~(observe~b')~eqn:Hb;~...] 0.116 secs (0.116u,0.s) -Chars 23264 - 23265 [+] 0. secs (0.u,0.s) -Chars 23266 - 23271 [taus.] 0. secs (0.u,0.s) -Chars 23272 - 23292 [now~do~2~Utils.step.] 0.007 secs (0.007u,0.s) -Chars 23301 - 23302 [+] 0. secs (0.u,0.s) -Chars 23303 - 23316 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 23317 - 23329 [constructor.] 0. secs (0.u,0.s) -Chars 23330 - 23337 [intros.] 0. secs (0.u,0.s) -Chars 23338 - 23344 [inv~H.] 0.02 secs (0.019u,0.s) -Chars 23352 - 23365 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 23366 - 23382 [do~2~Utils.step.] 0.007 secs (0.007u,0.s) -Chars 23383 - 23394 [apply~REL0.] 0. secs (0.u,0.s) -Chars 23458 - 23459 [-] 0. secs (0.u,0.s) -Chars 23460 - 23501 [dependent~induction~H;~try~cle...] 0.037 secs (0.037u,0.s) -Chars 23506 - 23507 [+] 0. secs (0.u,0.s) -Chars 23508 - 23516 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 23517 - 23521 [cbn.] 0. secs (0.u,0.s) -Chars 23522 - 23527 [etau.] 0.001 secs (0.001u,0.s) -Chars 23536 - 23537 [+] 0. secs (0.u,0.s) -Chars 23538 - 23546 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 23547 - 23551 [cbn.] 0. secs (0.u,0.s) -Chars 23552 - 23557 [etau.] 0.001 secs (0.001u,0.s) -Chars 23563 - 23564 [+] 0. secs (0.u,0.s) -Chars 23565 - 23573 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 23574 - 23603 [destruct~e;~cbn;~constructor.] 0.001 secs (0.001u,0.s) -Chars 23611 - 23612 [*] 0. secs (0.u,0.s) -Chars 23613 - 23621 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 23622 - 23636 [rewrite~x,~x0.] 0. secs (0.u,0.s) -Chars 23637 - 23655 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 23656 - 23661 [step.] 0.001 secs (0.001u,0.s) -Chars 23670 - 23678 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 23679 - 23691 [constructor.] 0. secs (0.u,0.s) -Chars 23692 - 23697 [auto.] 0. secs (0.u,0.s) -Chars 23704 - 23705 [*] 0. secs (0.u,0.s) -Chars 23706 - 23720 [rewrite~x,~x0.] 0. secs (0.u,0.s) -Chars 23721 - 23739 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 23740 - 23745 [step.] 0.001 secs (0.001u,0.s) -Chars 23755 - 23763 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 23764 - 23776 [constructor.] 0. secs (0.u,0.s) -Chars 23777 - 23782 [auto.] 0. secs (0.u,0.s) -Chars 23787 - 23788 [+] 0. secs (0.u,0.s) -Chars 23789 - 23797 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 23799 - 23803 [cbn.] 0. secs (0.u,0.s) -Chars 23810 - 23849 [destruct~(observe~b')~eqn:Heqb...] 0.001 secs (0.001u,0.s) -Chars 23856 - 23857 [*] 0. secs (0.u,0.s) -Chars 23858 - 23870 [constructor.] 0. secs (0.u,0.s) -Chars 23871 - 23888 [rewrite~<-~Heqb'.] 0. secs (0.u,0.s) -Chars 23889 - 23900 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 23909 - 23927 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) -Chars 23928 - 23951 [apply~simpobs~in~Heqb'.] 0. secs (0.u,0.s) -Chars 23952 - 23966 [rewrite~Heqb'.] 0.001 secs (0.001u,0.s) -Chars 23975 - 23980 [step.] 0.001 secs (0.001u,0.s) -Chars 23981 - 23986 [auto.] 0. secs (0.u,0.s) -Chars 23993 - 23994 [*] 0. secs (0.u,0.s) -Chars 23995 - 24007 [constructor.] 0. secs (0.u,0.s) -Chars 24008 - 24019 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 24021 - 24053 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) -Chars 24062 - 24067 [step.] 0.001 secs (0.001u,0.s) -Chars 24068 - 24073 [auto.] 0. secs (0.u,0.s) -Chars 24080 - 24081 [*] 0. secs (0.u,0.s) -Chars 24082 - 24094 [constructor.] 0. secs (0.u,0.s) -Chars 24095 - 24112 [rewrite~<-~Heqb'.] 0. secs (0.u,0.s) -Chars 24113 - 24124 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 24133 - 24151 [symmetry~in~Heqb'.] 0. secs (0.u,0.s) -Chars 24152 - 24175 [apply~simpobs~in~Heqb'.] 0. secs (0.u,0.s) -Chars 24176 - 24190 [rewrite~Heqb'.] 0.001 secs (0.001u,0.s) -Chars 24191 - 24196 [step.] 0.001 secs (0.001u,0.s) -Chars 24197 - 24202 [auto.] 0. secs (0.u,0.s) -Chars 24207 - 24208 [+] 0. secs (0.u,0.s) -Chars 24209 - 24217 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24218 - 24222 [cbn.] 0. secs (0.u,0.s) -Chars 24223 - 24260 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) -Chars 24267 - 24268 [*] 0. secs (0.u,0.s) -Chars 24269 - 24287 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 24288 - 24304 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 24305 - 24316 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 24325 - 24330 [step.] 0.001 secs (0.001u,0.s) -Chars 24331 - 24344 [rewrite~Heqb.] 0. secs (0.u,0.s) -Chars 24345 - 24350 [auto.] 0. secs (0.u,0.s) -Chars 24357 - 24358 [*] 0. secs (0.u,0.s) -Chars 24359 - 24371 [constructor.] 0. secs (0.u,0.s) -Chars 24372 - 24383 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 24385 - 24410 [rewrite~<-~tau_eutt~~at~1.] 0.001 secs (0.u,0.s) -Chars 24411 - 24416 [step.] 0.002 secs (0.002u,0.s) -Chars 24417 - 24422 [auto.] 0. secs (0.u,0.s) -Chars 24429 - 24430 [*] 0. secs (0.u,0.s) -Chars 24431 - 24443 [constructor.] 0. secs (0.u,0.s) -Chars 24444 - 24460 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 24461 - 24472 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 24473 - 24478 [step.] 0.001 secs (0.001u,0.s) -Chars 24487 - 24500 [rewrite~Heqb.] 0. secs (0.u,0.s) -Chars 24501 - 24506 [auto.] 0. secs (0.u,0.s) -Chars 24509 - 24510 [-] 0. secs (0.u,0.s) -Chars 24511 - 24538 [dependent~induction~H;~cbn.] 0.04 secs (0.04u,0.s) -Chars 24543 - 24544 [+] 0. secs (0.u,0.s) -Chars 24546 - 24554 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 24555 - 24563 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24564 - 24568 [cbn.] 0. secs (0.u,0.s) -Chars 24569 - 24581 [reflexivity.] 0. secs (0.u,0.s) -Chars 24587 - 24588 [+] 0. secs (0.u,0.s) -Chars 24589 - 24597 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24598 - 24606 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 24607 - 24611 [cbn.] 0. secs (0.u,0.s) -Chars 24612 - 24624 [constructor.] 0. secs (0.u,0.s) -Chars 24625 - 24641 [rewrite~<-~Heqt.] 0. secs (0.u,0.s) -Chars 24642 - 24653 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 24661 - 24666 [auto.] 0. secs (0.u,0.s) -Chars 24671 - 24672 [+] 0. secs (0.u,0.s) -Chars 24673 - 24681 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 24682 - 24745 [destruct~e;~cbn;~try~(apply~eq...] 0.002 secs (0.002u,0.s) -Chars 24752 - 24764 [reflexivity.] 0. secs (0.u,0.s) -Chars 24770 - 24771 [+] 0. secs (0.u,0.s) -Chars 24772 - 24780 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 24781 - 24785 [cbn.] 0. secs (0.u,0.s) -Chars 24786 - 24805 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 24810 - 24811 [+] 0. secs (0.u,0.s) -Chars 24812 - 24820 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 24821 - 24825 [cbn.] 0. secs (0.u,0.s) -Chars 24826 - 24845 [constructor;~eauto.] 0.002 secs (0.002u,0.s) -Chars 24846 - 24850 [Qed.] 0.149 secs (0.148u,0.001s) -Chars 24852 - 24995 [Lemma~peel_cont_ret_inv~:~~~fo...] 0. secs (0.u,0.s) -Chars 24996 - 25002 [Proof.] 0. secs (0.u,0.s) -Chars 25005 - 25018 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 25019 - 25037 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25038 - 25045 [intros.] 0. secs (0.u,0.s) -Chars 25046 - 25056 [step~in~H.] 0. secs (0.u,0.s) -Chars 25057 - 25066 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 25067 - 25096 [dependent~induction~H;~subst.] 0.031 secs (0.03u,0.s) -Chars 25099 - 25100 [-] 0. secs (0.u,0.s) -Chars 25101 - 25109 [simpobs.] 0. secs (0.u,0.s) -Chars 25110 - 25114 [cbn.] 0. secs (0.u,0.s) -Chars 25115 - 25127 [reflexivity.] 0. secs (0.u,0.s) -Chars 25131 - 25132 [-] 0. secs (0.u,0.s) -Chars 25133 - 25141 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 25142 - 25172 [destruct~(observe~b)~eqn:Hb.] 0. secs (0.u,0.s) -Chars 25177 - 25178 [+] 0. secs (0.u,0.s) -Chars 25179 - 25183 [cbn.] 0. secs (0.u,0.s) -Chars 25184 - 25189 [taul.] 0. secs (0.u,0.s) -Chars 25190 - 25198 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 25199 - 25206 [to_mon.] 0. secs (0.u,0.s) -Chars 25214 - 25235 [rewrite~<-~itree_eta.] 0.014 secs (0.013u,0.s) -Chars 25243 - 25288 [specialize~(IHeqitF~CIH~(Ret~r...] 0. secs (0.u,0.s) -Chars 25293 - 25294 [+] 0. secs (0.u,0.s) -Chars 25295 - 25299 [cbn.] 0. secs (0.u,0.s) -Chars 25300 - 25311 [rewrite~Hb.] 0. secs (0.u,0.s) -Chars 25312 - 25317 [taus.] 0. secs (0.u,0.s) -Chars 25318 - 25343 [eapply~CIH~with~(s~:=~s).] 0. secs (0.u,0.s) -Chars 25350 - 25355 [step.] 0.001 secs (0.001u,0.s) -Chars 25356 - 25361 [auto.] 0. secs (0.u,0.s) -Chars 25366 - 25367 [+] 0. secs (0.u,0.s) -Chars 25368 - 25372 [cbn.] 0. secs (0.u,0.s) -Chars 25373 - 25384 [rewrite~Hb.] 0. secs (0.u,0.s) -Chars 25385 - 25390 [taul.] 0. secs (0.u,0.s) -Chars 25391 - 25405 [rewrite~<-~Hb.] 0. secs (0.u,0.s) -Chars 25413 - 25452 [specialize~(IHeqitF~CIH~b~t1~s...] 0. secs (0.u,0.s) -Chars 25459 - 25474 [assert~(S~=~S).] 0. secs (0.u,0.s) -Chars 25475 - 25480 [auto.] 0. secs (0.u,0.s) -Chars 25481 - 25501 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 25502 - 25506 [Qed.] 0.039 secs (0.039u,0.s) -Chars 25508 - 25718 [Lemma~proper_peel_cont_eutt_r~...] 0. secs (0.u,0.s) -Chars 25719 - 25725 [Proof.] 0. secs (0.u,0.s) -Chars 25728 - 25741 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 25742 - 25759 [unfold~peel_cont.] 0. secs (0.u,0.s) -Chars 25760 - 25776 [intros~b~t~t'~_.] 0. secs (0.u,0.s) -Chars 25779 - 25793 [revert~b~t~t'.] 0. secs (0.u,0.s) -Chars 25794 - 25812 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25813 - 25820 [intros.] 0. secs (0.u,0.s) -Chars 25821 - 25831 [step~in~H.] 0. secs (0.u,0.s) -Chars 25832 - 25854 [dependent~induction~H.] 0.03 secs (0.03u,0.s) -Chars 25857 - 25858 [-] 0. secs (0.u,0.s) -Chars 25859 - 25867 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 25868 - 25880 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 25884 - 25885 [-] 0. secs (0.u,0.s) -Chars 25886 - 25894 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 25895 - 25932 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) -Chars 25937 - 25938 [+] 0. secs (0.u,0.s) -Chars 25939 - 25943 [cbn.] 0. secs (0.u,0.s) -Chars 25944 - 25949 [taus.] 0. secs (0.u,0.s) -Chars 25950 - 25966 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 25967 - 25978 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 25979 - 25984 [auto.] 0. secs (0.u,0.s) -Chars 25989 - 25990 [+] 0. secs (0.u,0.s) -Chars 25991 - 25996 [etau.] 0.001 secs (0.001u,0.s) -Chars 26002 - 26003 [+] 0. secs (0.u,0.s) -Chars 26004 - 26016 [constructor.] 0. secs (0.u,0.s) -Chars 26017 - 26033 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 26034 - 26051 [eapply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26054 - 26055 [-] 0. secs (0.u,0.s) -Chars 26056 - 26064 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 26066 - 26108 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) -Chars 26113 - 26114 [+] 0. secs (0.u,0.s) -Chars 26115 - 26127 [reflexivity.] 0. secs (0.u,0.s) -Chars 26133 - 26134 [+] 0. secs (0.u,0.s) -Chars 26135 - 26147 [constructor.] 0. secs (0.u,0.s) -Chars 26148 - 26162 [rewrite~x,~x0.] 0. secs (0.u,0.s) -Chars 26163 - 26174 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 26182 - 26187 [step.] 0.001 secs (0.001u,0.s) -Chars 26188 - 26196 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 26197 - 26209 [constructor.] 0. secs (0.u,0.s) -Chars 26210 - 26217 [intros.] 0. secs (0.u,0.s) -Chars 26224 - 26229 [auto.] 0. secs (0.u,0.s) -Chars 26234 - 26235 [+] 0. secs (0.u,0.s) -Chars 26236 - 26253 [destruct~e0;~cbn.] 0. secs (0.u,0.s) -Chars 26260 - 26261 [*] 0. secs (0.u,0.s) -Chars 26262 - 26277 [unfold~observe.] 0. secs (0.u,0.s) -Chars 26278 - 26282 [cbn.] 0. secs (0.u,0.s) -Chars 26283 - 26304 [unfold~peel_cont_vis.] 0. secs (0.u,0.s) -Chars 26313 - 26359 [destruct~(classicT~(A~=~u));~t...] 0.002 secs (0.002u,0.s) -Chars 26368 - 26394 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 26395 - 26422 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 26431 - 26456 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 26457 - 26461 [cbn.] 0. secs (0.u,0.s) -Chars 26462 - 26474 [constructor.] 0. secs (0.u,0.s) -Chars 26475 - 26482 [intros.] 0. secs (0.u,0.s) -Chars 26491 - 26502 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 26503 - 26519 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 26526 - 26527 [*] 0. secs (0.u,0.s) -Chars 26528 - 26540 [reflexivity.] 0. secs (0.u,0.s) -Chars 26544 - 26545 [-] 0. secs (0.u,0.s) -Chars 26546 - 26554 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 26555 - 26597 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) -Chars 26602 - 26603 [+] 0. secs (0.u,0.s) -Chars 26604 - 26623 [constructor;~eauto.] 0.001 secs (0.001u,0.s) -Chars 26624 - 26640 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 26641 - 26663 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 26668 - 26669 [+] 0. secs (0.u,0.s) -Chars 26670 - 26674 [cbn.] 0. secs (0.u,0.s) -Chars 26675 - 26714 [destruct~(observe~t')~eqn:Heqt...] 0.003 secs (0.003u,0.s) -Chars 26721 - 26722 [*] 0. secs (0.u,0.s) -Chars 26723 - 26735 [constructor.] 0. secs (0.u,0.s) -Chars 26737 - 26748 [Utils.step.] 0.001 secs (0.001u,0.s) -Chars 26759 - 26771 [unstep~in~H.] 0. secs (0.u,0.s) -Chars 26772 - 26817 [eapply~peel_cont_ret_inv~with~...] 0. secs (0.u,0.s) -Chars 26818 - 26823 [step.] 0.002 secs (0.002u,0.s) -Chars 26832 - 26842 [rewrite~H.] 0.016 secs (0.016u,0.s) -Chars 26843 - 26855 [reflexivity.] 0. secs (0.u,0.s) -Chars 26863 - 26864 [*] 0. secs (0.u,0.s) -Chars 26865 - 26877 [constructor.] 0. secs (0.u,0.s) -Chars 26878 - 26896 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 26897 - 26929 [setoid_rewrite~~<-~tau_eutt~at~2.] 0. secs (0.u,0.s) -Chars 26938 - 26943 [step.] 0.001 secs (0.001u,0.s) -Chars 26944 - 26949 [auto.] 0. secs (0.u,0.s) -Chars 26956 - 26957 [*] 0. secs (0.u,0.s) -Chars 26958 - 26970 [constructor.] 0. secs (0.u,0.s) -Chars 26971 - 26988 [rewrite~<-~Heqt'.] 0. secs (0.u,0.s) -Chars 26989 - 27000 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 27009 - 27014 [step.] 0.001 secs (0.001u,0.s) -Chars 27015 - 27029 [rewrite~Heqt'.] 0. secs (0.u,0.s) -Chars 27030 - 27035 [auto.] 0. secs (0.u,0.s) -Chars 27040 - 27041 [+] 0. secs (0.u,0.s) -Chars 27042 - 27058 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 27059 - 27077 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 27078 - 27100 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 27103 - 27104 [-] 0. secs (0.u,0.s) -Chars 27105 - 27113 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 27114 - 27156 [destruct~(observe~b)~eqn:Heqb;...] 0.001 secs (0.001u,0.s) -Chars 27161 - 27162 [+] 0. secs (0.u,0.s) -Chars 27163 - 27181 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 27182 - 27198 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 27199 - 27221 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 27226 - 27227 [+] 0. secs (0.u,0.s) -Chars 27228 - 27265 [destruct~(observe~t)~eqn:Heqt;...] 0.003 secs (0.003u,0.s) -Chars 27272 - 27273 [*] 0. secs (0.u,0.s) -Chars 27280 - 27294 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 27295 - 27307 [unstep~in~H.] 0. secs (0.u,0.s) -Chars 27315 - 27360 [eapply~peel_cont_ret_inv~with~...] 0. secs (0.u,0.s) -Chars 27361 - 27370 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 27378 - 27383 [taus.] 0. secs (0.u,0.s) -Chars 27384 - 27393 [symmetry.] 0. secs (0.u,0.s) -Chars 27394 - 27414 [now~do~2~Utils.step.] 0.007 secs (0.007u,0.s) -Chars 27422 - 27423 [*] 0. secs (0.u,0.s) -Chars 27424 - 27436 [constructor.] 0. secs (0.u,0.s) -Chars 27437 - 27448 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 27450 - 27475 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) -Chars 27476 - 27481 [step.] 0.001 secs (0.001u,0.s) -Chars 27482 - 27487 [auto.] 0. secs (0.u,0.s) -Chars 27494 - 27495 [*] 0. secs (0.u,0.s) -Chars 27496 - 27508 [constructor.] 0. secs (0.u,0.s) -Chars 27509 - 27525 [rewrite~<-~Heqt.] 0. secs (0.u,0.s) -Chars 27526 - 27537 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 27546 - 27551 [step.] 0.001 secs (0.001u,0.s) -Chars 27552 - 27565 [rewrite~Heqt.] 0. secs (0.u,0.s) -Chars 27566 - 27571 [auto.] 0. secs (0.u,0.s) -Chars 27576 - 27577 [+] 0. secs (0.u,0.s) -Chars 27578 - 27594 [rewrite~<-~Heqb.] 0. secs (0.u,0.s) -Chars 27595 - 27613 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 27614 - 27636 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 27637 - 27641 [Qed.] 0.061 secs (0.061u,0.s) -Chars 27643 - 27761 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 27762 - 27768 [Proof.] 0. secs (0.u,0.s) -Chars 27771 - 27784 [repeat~intro.] 0. secs (0.u,0.s) -Chars 27785 - 27791 [subst.] 0. secs (0.u,0.s) -Chars 27792 - 27831 [rewrite~proper_peel_cont_eutt_...] 0.002 secs (0.002u,0.s) -Chars 27834 - 27873 [rewrite~proper_peel_cont_eutt_...] 0.004 secs (0.004u,0.s) -Chars 27874 - 27878 [Qed.] 0.001 secs (0.001u,0.s) -Chars 28270 - 28567 [Lemma~vis_refine_peel~:~~~fora...] 0. secs (0.u,0.s) -Chars 28568 - 28574 [Proof.] 0. secs (0.u,0.s) -Chars 28577 - 28592 [intros~E~R~S~A.] 0. secs (0.u,0.s) -Chars 28618 - 28644 [intros~e~a~k1~k2~k3~Hpeel.] 0. secs (0.u,0.s) -Chars 28647 - 28664 [unfold~peel~in~*.] 0. secs (0.u,0.s) -Chars 28665 - 28674 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 28675 - 28689 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 28692 - 28701 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 28705 - 28729 [unfold~observe~in~Hpeel.] 0. secs (0.u,0.s) -Chars 28730 - 28743 [cbn~in~Hpeel.] 0. secs (0.u,0.s) -Chars 28746 - 28771 [unfold~peel_vis~in~Hpeel.] 0. secs (0.u,0.s) -Chars 28774 - 28797 [assert~(A~=~A)~by~auto.] 0. secs (0.u,0.s) -Chars 28800 - 28848 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) -Chars 28849 - 28884 [unfold~eq_rect_r,~eq_rect~in~H...] 0. secs (0.u,0.s) -Chars 28887 - 28914 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 28915 - 28940 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 28941 - 28950 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 28953 - 28970 [clear~HeqHe~e0~H.] 0. secs (0.u,0.s) -Chars 28971 - 28976 [step.] 0.001 secs (0.001u,0.s) -Chars 28977 - 28981 [cbn.] 0. secs (0.u,0.s) -Chars 28982 - 28992 [inv~Hpeel.] 0.006 secs (0.006u,0.s) -Chars 28993 - 29006 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 29010 - 29030 [specialize~(REL~tt).] 0. secs (0.u,0.s) -Chars 29033 - 29094 [assert~(peel_~(observe~(k1~tt)...] 0. secs (0.u,0.s) -Chars 29095 - 29100 [auto.] 0. secs (0.u,0.s) -Chars 29103 - 29117 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 29118 - 29132 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 29133 - 29137 [Qed.] 0.009 secs (0.009u,0.s) -Chars 29139 - 29450 [Lemma~vis_refine_peel_cont~:~~...] 0. secs (0.u,0.s) -Chars 29451 - 29457 [Proof.] 0. secs (0.u,0.s) -Chars 29460 - 29497 [intros~E~R~S~A~e~a~k1~k2~t~Hpe...] 0. secs (0.u,0.s) -Chars 29498 - 29516 [step~in~Hpeelcont.] 0. secs (0.u,0.s) -Chars 29519 - 29552 [unfold~observe~in~Hpeelcont~at~1.] 0. secs (0.u,0.s) -Chars 29553 - 29562 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 29563 - 29589 [unfold~peel_cont_vis~in~*.] 0. secs (0.u,0.s) -Chars 29592 - 29613 [assert~(A~=~A);~auto.] 0. secs (0.u,0.s) -Chars 29614 - 29662 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) -Chars 29665 - 29696 [unfold~eq_rect_r,~eq_rect~in~*.] 0. secs (0.u,0.s) -Chars 29697 - 29724 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 29727 - 29752 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 29753 - 29762 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 29763 - 29772 [symmetry.] 0. secs (0.u,0.s) -Chars 29775 - 29846 [assert~(Tau~(peel_cont_~(obser...] 0. secs (0.u,0.s) -Chars 29849 - 29850 [{] 0. secs (0.u,0.s) -Chars 29851 - 29856 [step.] 0.001 secs (0.001u,0.s) -Chars 29857 - 29862 [auto.] 0. secs (0.u,0.s) -Chars 29863 - 29864 [}] 0. secs (0.u,0.s) -Chars 29867 - 29890 [rewrite~tau_eutt~in~H0.] 0.016 secs (0.015u,0.s) -Chars 29891 - 29896 [auto.] 0. secs (0.u,0.s) -Chars 29897 - 29901 [Qed.] 0.003 secs (0.003u,0.s) -Chars 29903 - 30052 [Lemma~spin_not_vis~:~~~forall~...] 0. secs (0.u,0.s) -Chars 30053 - 30059 [Proof.] 0. secs (0.u,0.s) -Chars 30062 - 30087 [intros~E~R~A~e~k~Hcontra.] 0. secs (0.u,0.s) -Chars 30088 - 30104 [step~in~Hcontra.] 0. secs (0.u,0.s) -Chars 30105 - 30114 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 30117 - 30145 [dependent~induction~Hcontra.] 0.014 secs (0.014u,0.s) -Chars 30148 - 30172 [eapply~IHHcontra;~eauto.] 0. secs (0.u,0.s) -Chars 30173 - 30177 [Qed.] 0.007 secs (0.007u,0.s) -Chars 30179 - 30619 [Lemma~peel_vis_empty_contra~:~...] 0.001 secs (0.001u,0.s) -Chars 30620 - 30626 [Proof.] 0. secs (0.u,0.s) -Chars 30629 - 30675 [intros~R~E~S~A0~Hempty~ev~k0~t...] 0. secs (0.u,0.s) -Chars 30678 - 30704 [dependent~induction~Hpeel.] 0.032 secs (0.032u,0.s) -Chars 30707 - 30708 [-] 0. secs (0.u,0.s) -Chars 30709 - 30757 [destruct~(observe~t0)~eqn:Heqt...] 0. secs (0.u,0.s) -Chars 30760 - 30761 [-] 0. secs (0.u,0.s) -Chars 30762 - 30814 [destruct~(observe~t0)~eqn:Heqt...] 0. secs (0.u,0.s) -Chars 30815 - 30824 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 30825 - 30844 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 30849 - 30872 [rewrite~Ht1~in~IHHpeel.] 0. secs (0.u,0.s) -Chars 30873 - 30895 [eapply~IHHpeel;~eauto.] 0.001 secs (0.001u,0.s) -Chars 30896 - 30900 [Qed.] 0.02 secs (0.02u,0.s) -Chars 30903 - 31197 [Lemma~vis_peel_l~:~~~forall~(E...] 0.001 secs (0.001u,0.s) -Chars 31198 - 31204 [Proof.] 0. secs (0.u,0.s) -Chars 31207 - 31245 [intros~E~R~S~A~e~a~b~t~f~k~Hre...] 0. secs (0.u,0.s) -Chars 31248 - 31262 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 31263 - 31276 [cbn~in~Hpeel.] 0. secs (0.u,0.s) -Chars 31277 - 31303 [dependent~induction~Hpeel.] 0.033 secs (0.033u,0.s) -Chars 31306 - 31307 [-] 0. secs (0.u,0.s) -Chars 31308 - 31325 [unfold~peel~in~x.] 0. secs (0.u,0.s) -Chars 31330 - 31453 [destruct~(observe~b)~eqn:Heqb;...] 0.021 secs (0.021u,0.s) -Chars 31454 - 31474 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 31475 - 31484 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 31489 - 31510 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 31515 - 31532 [assert~(A0~=~X0).] 0. secs (0.u,0.s) -Chars 31537 - 31538 [{] 0. secs (0.u,0.s) -Chars 31545 - 31553 [clear~x.] 0. secs (0.u,0.s) -Chars 31560 - 31577 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 31578 - 31595 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 31596 - 31618 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 31619 - 31641 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 31648 - 31669 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 31670 - 31691 [rewrite~Heqt~in~Href.] 0.006 secs (0.006u,0.s) -Chars 31698 - 31723 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) -Chars 31730 - 31743 [step~in~Href.] 0. secs (0.u,0.s) -Chars 31744 - 31753 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 31754 - 31763 [inv~Href.] 0.007 secs (0.007u,0.s) -Chars 31770 - 31783 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 31784 - 31790 [subst.] 0. secs (0.u,0.s) -Chars 31791 - 31798 [inv~H1.] 0.002 secs (0.002u,0.s) -Chars 31804 - 31805 [}] 0. secs (0.u,0.s) -Chars 31810 - 31867 [destruct~(classicT~(A0~=~X0));...] 0. secs (0.u,0.s) -Chars 31872 - 31903 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 31904 - 31931 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 31936 - 31961 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 31962 - 31971 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 31972 - 31994 [injection~x~as~Hevans.] 0.002 secs (0.002u,0.s) -Chars 31999 - 32012 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 32013 - 32019 [subst.] 0. secs (0.u,0.s) -Chars 32020 - 32033 [ddestruction.] 0. secs (0.u,0.s) -Chars 32034 - 32040 [subst.] 0. secs (0.u,0.s) -Chars 32041 - 32051 [exists~k0.] 0. secs (0.u,0.s) -Chars 32056 - 32073 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32074 - 32096 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 32097 - 32110 [rewrite~Heqb.] 0.001 secs (0.001u,0.s) -Chars 32111 - 32123 [reflexivity.] 0. secs (0.u,0.s) -Chars 32126 - 32127 [-] 0. secs (0.u,0.s) -Chars 32128 - 32145 [unfold~peel~in~x.] 0. secs (0.u,0.s) -Chars 32146 - 32269 [destruct~(observe~b)~eqn:Heqb;...] 0.033 secs (0.033u,0.s) -Chars 32274 - 32275 [+] 0. secs (0.u,0.s) -Chars 32276 - 32293 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32294 - 32316 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 32317 - 32338 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 32345 - 32370 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 32371 - 32401 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) -Chars 32402 - 32414 [unfold~peel.] 0. secs (0.u,0.s) -Chars 32421 - 32434 [rewrite~Heqb.] 0. secs (0.u,0.s) -Chars 32435 - 32440 [auto.] 0. secs (0.u,0.s) -Chars 32445 - 32446 [+] 0. secs (0.u,0.s) -Chars 32447 - 32455 [exfalso.] 0. secs (0.u,0.s) -Chars 32456 - 32476 [eapply~spin_not_vis.] 0. secs (0.u,0.s) -Chars 32477 - 32482 [step.] 0.003 secs (0.003u,0.s) -Chars 32483 - 32489 [eauto.] 0. secs (0.u,0.s) -Chars 32494 - 32495 [+] 0. secs (0.u,0.s) -Chars 32496 - 32513 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32514 - 32531 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32532 - 32554 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 32561 - 32583 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 32584 - 32604 [setoid_rewrite~Heqb.] 0.005 secs (0.005u,0.s) -Chars 32605 - 32629 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 32636 - 32657 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 32658 - 32679 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 32680 - 32712 [repeat~rewrite~tau_eutt~in~Href.] 0.006 secs (0.005u,0.s) -Chars 32719 - 32749 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) -Chars 32754 - 32755 [+] 0. secs (0.u,0.s) -Chars 32756 - 32773 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 32774 - 32791 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 32792 - 32814 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 32815 - 32837 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 32844 - 32864 [setoid_rewrite~Heqb.] 0.002 secs (0.002u,0.s) -Chars 32865 - 32889 [setoid_rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 32890 - 32911 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 32918 - 32939 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 32940 - 32972 [repeat~rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 32979 - 33009 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) -Chars 33014 - 33015 [+] 0. secs (0.u,0.s) -Chars 33016 - 33033 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 33034 - 33056 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 33057 - 33078 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 33085 - 33110 [rewrite~tau_eutt~in~Href.] 0.004 secs (0.004u,0.s) -Chars 33117 - 33134 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 33135 - 33157 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 33158 - 33179 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 33186 - 33206 [setoid_rewrite~Heqb.] 0.001 secs (0.001u,0.s) -Chars 33207 - 33237 [eapply~IHHpeel~in~Href;~eauto.] 0.002 secs (0.002u,0.s) -Chars 33242 - 33243 [+] 0. secs (0.u,0.s) -Chars 33244 - 33252 [exfalso.] 0. secs (0.u,0.s) -Chars 33253 - 33289 [eapply~peel_vis_empty_contra;~...] 0. secs (0.u,0.s) -Chars 33294 - 33295 [+] 0. secs (0.u,0.s) -Chars 33296 - 33316 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 33317 - 33326 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 33327 - 33348 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 33355 - 33372 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 33373 - 33390 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 33391 - 33413 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 33420 - 33442 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 33443 - 33464 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 33465 - 33486 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 33493 - 33518 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) -Chars 33519 - 33532 [step~in~Href.] 0. secs (0.u,0.s) -Chars 33533 - 33542 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 33549 - 33558 [inv~Href.] 0.013 secs (0.013u,0.s) -Chars 33559 - 33572 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 33573 - 33579 [subst.] 0. secs (0.u,0.s) -Chars 33580 - 33587 [inv~H1.] 0.009 secs (0.009u,0.s) -Chars 33588 - 33615 [subst;~ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 33622 - 33645 [assert~(A0~=~A0);~auto.] 0. secs (0.u,0.s) -Chars 33646 - 33696 [destruct~(classicT~(A0~=~A0));...] 0. secs (0.u,0.s) -Chars 33703 - 33734 [unfold~eq_rect_r,~eq_rect~in~*.] 0. secs (0.u,0.s) -Chars 33735 - 33762 [remember~(eq_sym~e0)~as~He.] 0. secs (0.u,0.s) -Chars 33769 - 33794 [dependent~destruction~He.] 0.002 secs (0.002u,0.s) -Chars 33795 - 33804 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 33805 - 33818 [discriminate.] 0. secs (0.u,0.s) -Chars 33819 - 33823 [Qed.] 0.084 secs (0.084u,0.s) -Chars 33825 - 34107 [Lemma~vis_peel_r~:~~~forall~(E...] 0.001 secs (0.001u,0.s) -Chars 34108 - 34114 [Proof.] 0. secs (0.u,0.s) -Chars 34117 - 34155 [intros~E~R~S~A~e~a~b~t~f~k~Hre...] 0. secs (0.u,0.s) -Chars 34158 - 34202 [eapply~vis_peel_l~in~Hpeel~as~...] 0.001 secs (0.001u,0.s) -Chars 34203 - 34230 [destruct~Hpeell~as~[k'~Hb].] 0. secs (0.u,0.s) -Chars 34233 - 34252 [rewrite~Hb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 34253 - 34273 [rewrite~Hb~in~Hpeel.] 0.018 secs (0.018u,0.s) -Chars 34274 - 34285 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 34286 - 34300 [step~in~Hpeel.] 0. secs (0.u,0.s) -Chars 34301 - 34310 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 34313 - 34334 [unfold~peel~in~Hpeel.] 0. secs (0.u,0.s) -Chars 34335 - 34344 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 34345 - 34371 [dependent~induction~Hpeel.] 0.037 secs (0.037u,0.s) -Chars 34374 - 34375 [-] 0. secs (0.u,0.s) -Chars 34376 - 34433 [destruct~(observe~t)~eqn:Heqt;...] 0.004 secs (0.004u,0.s) -Chars 34438 - 34455 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 34456 - 34478 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 34479 - 34499 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) -Chars 34504 - 34524 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 34525 - 34534 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 34535 - 34556 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 34557 - 34619 [destruct~(classicT~(A~=~X));~c...] 0. secs (0.u,0.s) -Chars 34624 - 34655 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 34656 - 34683 [remember~(eq_sym~e1)~as~He.] 0. secs (0.u,0.s) -Chars 34688 - 34713 [dependent~destruction~He.] 0. secs (0.u,0.s) -Chars 34714 - 34723 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 34724 - 34734 [exists~k0.] 0. secs (0.u,0.s) -Chars 34739 - 34760 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 34761 - 34786 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) -Chars 34787 - 34800 [step~in~Href.] 0. secs (0.u,0.s) -Chars 34806 - 34815 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 34816 - 34825 [inv~Href.] 0.011 secs (0.011u,0.s) -Chars 34826 - 34846 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 34847 - 34854 [inv~H1.] 0.004 secs (0.004u,0.s) -Chars 34855 - 34875 [ddestruction;~subst.] 0.005 secs (0.005u,0.s) -Chars 34876 - 34888 [reflexivity.] 0. secs (0.u,0.s) -Chars 34891 - 34892 [-] 0. secs (0.u,0.s) -Chars 34893 - 34960 [destruct~(observe~t)~eqn:Heqt;...] 0.005 secs (0.005u,0.s) -Chars 34965 - 34966 [+] 0. secs (0.u,0.s) -Chars 34967 - 34984 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 34985 - 35007 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 35008 - 35029 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 35030 - 35055 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 35062 - 35082 [setoid_rewrite~Heqt.] 0.001 secs (0.001u,0.s) -Chars 35083 - 35107 [setoid_rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 35108 - 35130 [eapply~IHHpeel;~eauto.] 0.003 secs (0.002u,0.s) -Chars 35135 - 35136 [+] 0. secs (0.u,0.s) -Chars 35137 - 35157 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 35158 - 35167 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 35168 - 35189 [unfold~peel_vis~in~x.] 0. secs (0.u,0.s) -Chars 35196 - 35225 [destruct~(classicT~(A~=~X)).] 0. secs (0.u,0.s) -Chars 35232 - 35233 [*] 0. secs (0.u,0.s) -Chars 35234 - 35265 [unfold~eq_rect_r,~eq_rect~in~x.] 0. secs (0.u,0.s) -Chars 35266 - 35293 [remember~(eq_sym~e1)~as~He.] 0. secs (0.u,0.s) -Chars 35294 - 35319 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 35328 - 35337 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 35338 - 35351 [discriminate.] 0. secs (0.u,0.s) -Chars 35358 - 35359 [*] 0. secs (0.u,0.s) -Chars 35360 - 35369 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 35370 - 35389 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 35390 - 35411 [rewrite~Ht1~in~Hpeel.] 0. secs (0.u,0.s) -Chars 35420 - 35428 [exfalso.] 0. secs (0.u,0.s) -Chars 35429 - 35449 [eapply~spin_not_vis.] 0. secs (0.u,0.s) -Chars 35450 - 35455 [step.] 0.003 secs (0.003u,0.s) -Chars 35456 - 35462 [eauto.] 0. secs (0.u,0.s) -Chars 35463 - 35467 [Qed.] 0.045 secs (0.045u,0.s) -Chars 35469 - 35752 [Lemma~peel_cont_vis_eutt~:~~~f...] 0. secs (0.u,0.s) -Chars 35753 - 35759 [Proof.] 0. secs (0.u,0.s) -Chars 35762 - 35792 [intros~R~r~E~S~A~ev~ans~kb~kt.] 0. secs (0.u,0.s) -Chars 35795 - 35800 [step.] 0.001 secs (0.001u,0.s) -Chars 35801 - 35821 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 35822 - 35826 [cbn.] 0. secs (0.u,0.s) -Chars 35827 - 35848 [unfold~peel_cont_vis.] 0. secs (0.u,0.s) -Chars 35851 - 35872 [assert~(A~=~A);~auto.] 0.002 secs (0.002u,0.s) -Chars 35873 - 35920 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) -Chars 35923 - 35949 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 35950 - 35976 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 35979 - 36004 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 36005 - 36009 [cbn.] 0. secs (0.u,0.s) -Chars 36010 - 36028 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 36030 - 36034 [Qed.] 0.002 secs (0.002u,0.s) -Chars 36036 - 36321 [Lemma~peel_cont_refine_t~:~~~f...] 0. secs (0.u,0.s) -Chars 36322 - 36328 [Proof.] 0. secs (0.u,0.s) -Chars 36331 - 36338 [intros.] 0. secs (0.u,0.s) -Chars 36339 - 36365 [remember~(peel~b~t)~as~t'.] 0. secs (0.u,0.s) -Chars 36366 - 36391 [assert~(peel~b~t~≈~t').] 0. secs (0.u,0.s) -Chars 36394 - 36395 [{] 0. secs (0.u,0.s) -Chars 36396 - 36402 [subst.] 0. secs (0.u,0.s) -Chars 36403 - 36415 [reflexivity.] 0. secs (0.u,0.s) -Chars 36416 - 36417 [}] 0. secs (0.u,0.s) -Chars 36420 - 36432 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 36433 - 36456 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 36457 - 36480 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 36483 - 36503 [induction~H;~intros.] 0. secs (0.u,0.s) -Chars 36506 - 36507 [-] 0. secs (0.u,0.s) -Chars 36508 - 36527 [rewrite~<-~H0~in~H.] 0.016 secs (0.016u,0.s) -Chars 36528 - 36537 [clear~H0.] 0. secs (0.u,0.s) -Chars 36538 - 36568 [apply~peel_ret_inv~in~H~as~Ht.] 0. secs (0.u,0.s) -Chars 36573 - 36593 [rewrite~Ht~in~Hrutt.] 0.002 secs (0.002u,0.s) -Chars 36598 - 36626 [rewrite~bind_ret_l~in~Hrutt.] 0.001 secs (0.001u,0.s) -Chars 36631 - 36647 [rewrite~Ht~in~H.] 0.014 secs (0.014u,0.s) -Chars 36652 - 36669 [unfold~peel_cont.] 0. secs (0.u,0.s) -Chars 36670 - 36674 [cbn.] 0. secs (0.u,0.s) -Chars 36675 - 36708 [rewrite~peel_cont_ret_inv;~eauto.] 0.003 secs (0.003u,0.s) -Chars 36711 - 36712 [-] 0. secs (0.u,0.s) -Chars 36713 - 36729 [rewrite~H~in~H1.] 0. secs (0.u,0.s) -Chars 36730 - 36738 [clear~H.] 0. secs (0.u,0.s) -Chars 36743 - 36773 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) -Chars 36774 - 36811 [eapply~vis_peel_l~in~H1~as~Hb;...] 0. secs (0.u,0.s) -Chars 36816 - 36853 [eapply~vis_peel_r~in~H1~as~Ht;...] 0. secs (0.u,0.s) -Chars 36858 - 36882 [destruct~Hb~as~[kb~Hkb].] 0. secs (0.u,0.s) -Chars 36883 - 36907 [destruct~Ht~as~[kt~Htk].] 0. secs (0.u,0.s) -Chars 36912 - 36924 [rewrite~Htk.] 0.004 secs (0.004u,0.s) -Chars 36925 - 36937 [rewrite~Hkb.] 0.003 secs (0.003u,0.s) -Chars 36942 - 36963 [rewrite~Hkb~in~Hrutt.] 0.004 secs (0.004u,0.s) -Chars 36964 - 36985 [rewrite~Htk~in~Hrutt.] 0.003 secs (0.003u,0.s) -Chars 36990 - 37008 [rewrite~Hkb~in~H1.] 0.013 secs (0.013u,0.s) -Chars 37009 - 37027 [rewrite~Htk~in~H1.] 0.015 secs (0.015u,0.s) -Chars 37032 - 37066 [apply~vis_refine_peel~in~H1~as...] 0. secs (0.u,0.s) -Chars 37071 - 37098 [rewrite~peel_cont_vis_eutt.] 0.003 secs (0.003u,0.s) -Chars 37099 - 37126 [apply~IHmay_converge;~auto.] 0. secs (0.u,0.s) -Chars 37131 - 37132 [+] 0. secs (0.u,0.s) -Chars 37133 - 37159 [rewrite~bind_vis~in~Hrutt.] 0.002 secs (0.002u,0.s) -Chars 37160 - 37174 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 37175 - 37184 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 37191 - 37201 [inv~Hrutt.] 0.008 secs (0.008u,0.s) -Chars 37202 - 37222 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 37229 - 37300 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) -Chars 37307 - 37321 [apply~H8~in~H.] 0. secs (0.u,0.s) -Chars 37323 - 37328 [auto.] 0. secs (0.u,0.s) -Chars 37333 - 37334 [+] 0. secs (0.u,0.s) -Chars 37335 - 37346 [destruct~b.] 0. secs (0.u,0.s) -Chars 37347 - 37356 [symmetry.] 0. secs (0.u,0.s) -Chars 37357 - 37362 [auto.] 0. secs (0.u,0.s) -Chars 37363 - 37367 [Qed.] 0.018 secs (0.018u,0.s) -Chars 37370 - 37671 [Ltac~~fold_peel_cont~r~:=~~~ma...] 0. secs (0.u,0.s) -Chars 37673 - 38035 [Lemma~trace_prefix_tau_ret~:~~...] 0.001 secs (0.001u,0.s) -Chars 38036 - 38042 [Proof.] 0. secs (0.u,0.s) -Chars 38045 - 38088 [intros~E~R~S~r~b~t~f~r0~Hrutt~...] 0. secs (0.u,0.s) -Chars 38091 - 38108 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 38109 - 38126 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 38129 - 38151 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 38152 - 38174 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 38175 - 38197 [rewrite~Heqb~in~Hrutt.] 0.002 secs (0.002u,0.s) -Chars 38200 - 38222 [rewrite~Heqt~in~Hrutt.] 0.003 secs (0.003u,0.s) -Chars 38223 - 38249 [rewrite~tau_eutt~in~Hrutt.] 0.002 secs (0.002u,0.s) -Chars 38252 - 38290 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 38291 - 38303 [constructor.] 0. secs (0.u,0.s) -Chars 38306 - 38338 [assert~(exists~s,~t0~≈~Ret~s).] 0. secs (0.u,0.s) -Chars 38341 - 38342 [{] 0. secs (0.u,0.s) -Chars 38347 - 38361 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 38362 - 38388 [dependent~induction~Hrutt.] 0.026 secs (0.026u,0.s) -Chars 38393 - 38394 [-] 0. secs (0.u,0.s) -Chars 38395 - 38415 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 38416 - 38425 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 38426 - 38486 [destruct~(observe~t0)~eqn:Ht0;...] 0. secs (0.u,0.s) -Chars 38493 - 38503 [exists~r1.] 0. secs (0.u,0.s) -Chars 38504 - 38509 [step.] 0.001 secs (0.001u,0.s) -Chars 38510 - 38522 [rewrite~Ht0.] 0. secs (0.u,0.s) -Chars 38523 - 38527 [cbn.] 0. secs (0.u,0.s) -Chars 38528 - 38544 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 38549 - 38550 [-] 0. secs (0.u,0.s) -Chars 38551 - 38571 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 38572 - 38581 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 38582 - 38642 [destruct~(observe~t0)~eqn:Ht0;...] 0.001 secs (0.001u,0.s) -Chars 38649 - 38650 [+] 0. secs (0.u,0.s) -Chars 38651 - 38661 [exists~r1.] 0. secs (0.u,0.s) -Chars 38662 - 38667 [step.] 0.001 secs (0.001u,0.s) -Chars 38668 - 38680 [rewrite~Ht0.] 0. secs (0.u,0.s) -Chars 38681 - 38685 [cbn.] 0. secs (0.u,0.s) -Chars 38686 - 38702 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 38709 - 38710 [+] 0. secs (0.u,0.s) -Chars 38711 - 38730 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 38731 - 38747 [symmetry~in~Ht0.] 0. secs (0.u,0.s) -Chars 38748 - 38769 [apply~simpobs~in~Ht0.] 0. secs (0.u,0.s) -Chars 38778 - 38811 [apply~eq_sub_eutt~in~Ht0~as~Ht0'.] 0. secs (0.u,0.s) -Chars 38812 - 38832 [setoid_rewrite~Ht0'.] 0.001 secs (0.001u,0.s) -Chars 38841 - 38865 [setoid_rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 38866 - 38888 [eapply~IHHrutt;~eauto.] 0.002 secs (0.002u,0.s) -Chars 38897 - 38909 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 38910 - 38916 [eauto.] 0. secs (0.u,0.s) -Chars 38919 - 38920 [}] 0. secs (0.u,0.s) -Chars 38923 - 38945 [destruct~H~as~[s~Ht0].] 0. secs (0.u,0.s) -Chars 38946 - 38958 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 38959 - 38970 [cbn~in~Ht0.] 0. secs (0.u,0.s) -Chars 38973 - 38990 [clear~Heqt~Hrutt.] 0. secs (0.u,0.s) -Chars 38993 - 39017 [dependent~induction~Ht0.] 0.024 secs (0.024u,0.s) -Chars 39020 - 39021 [-] 0. secs (0.u,0.s) -Chars 39022 - 39030 [simpobs.] 0.002 secs (0.u,0.s) -Chars 39031 - 39035 [cbn.] 0. secs (0.u,0.s) -Chars 39036 - 39049 [step~in~Heqb.] 0. secs (0.u,0.s) -Chars 39050 - 39059 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 39060 - 39069 [inv~Heqb.] 0.007 secs (0.007u,0.s) -Chars 39074 - 39085 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 39086 - 39102 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 39105 - 39106 [-] 0. secs (0.u,0.s) -Chars 39107 - 39115 [simpobs.] 0. secs (0.u,0.s) -Chars 39116 - 39120 [cbn.] 0. secs (0.u,0.s) -Chars 39121 - 39133 [constructor.] 0. secs (0.u,0.s) -Chars 39134 - 39154 [eapply~IHHt0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 39155 - 39159 [Qed.] 0.036 secs (0.036u,0.s) -Chars 39161 - 39963 [Lemma~trace_prefix_vis_evans~:...] 0.004 secs (0.003u,0.s) -Chars 39964 - 39970 [Proof.] 0. secs (0.u,0.s) -Chars 39973 - 40020 [intros~E~R~S~r~A0~ev~ans~k~k'~...] 0. secs (0.u,0.s) -Chars 40023 - 40035 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 40036 - 40045 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 40046 - 40070 [dependent~induction~Ht0.] 0.029 secs (0.029u,0.s) -Chars 40073 - 40074 [-] 0. secs (0.u,0.s) -Chars 40075 - 40083 [simpobs.] 0. secs (0.u,0.s) -Chars 40084 - 40099 [unfold~observe.] 0. secs (0.u,0.s) -Chars 40100 - 40104 [cbn.] 0. secs (0.u,0.s) -Chars 40105 - 40121 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 40126 - 40149 [assert~(A0~=~A0);~auto.] 0. secs (0.u,0.s) -Chars 40150 - 40199 [destruct~(classicT~(A0~=~A0));...] 0. secs (0.u,0.s) -Chars 40204 - 40230 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 40231 - 40257 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 40262 - 40287 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 40288 - 40292 [cbn.] 0. secs (0.u,0.s) -Chars 40293 - 40305 [constructor.] 0.002 secs (0.001u,0.s) -Chars 40306 - 40317 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 40323 - 40395 [assert~(RAnsRef~E~unit~A0~(eva...] 0. secs (0.u,0.s) -Chars 40400 - 40416 [apply~Hk'~in~H0.] 0. secs (0.u,0.s) -Chars 40418 - 40460 [assert~(k1~ans~≈~k'~ans);~try~...] 0. secs (0.u,0.s) -Chars 40465 - 40476 [rewrite~H1.] 0.003 secs (0.003u,0.s) -Chars 40477 - 40483 [eauto.] 0. secs (0.u,0.s) -Chars 40486 - 40487 [-] 0. secs (0.u,0.s) -Chars 40488 - 40496 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 40497 - 40501 [cbn.] 0. secs (0.u,0.s) -Chars 40502 - 40514 [constructor.] 0. secs (0.u,0.s) -Chars 40515 - 40535 [eapply~IHHt0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 40536 - 40540 [Qed.] 0.023 secs (0.023u,0.s) -Chars 40542 - 41200 [Lemma~trace_prefix_vis_evempty...] 0.001 secs (0.001u,0.s) -Chars 41201 - 41207 [Proof.] 0. secs (0.u,0.s) -Chars 41210 - 41255 [intros~E~R~S~r~A0~Hempty~ev~k~...] 0. secs (0.u,0.s) -Chars 41258 - 41262 [cbn.] 0. secs (0.u,0.s) -Chars 41263 - 41275 [constructor.] 0. secs (0.u,0.s) -Chars 41278 - 41302 [dependent~induction~Ht0.] 0.023 secs (0.023u,0.s) -Chars 41305 - 41306 [-] 0. secs (0.u,0.s) -Chars 41307 - 41315 [simpobs.] 0. secs (0.u,0.s) -Chars 41316 - 41320 [cbn.] 0. secs (0.u,0.s) -Chars 41321 - 41333 [constructor.] 0. secs (0.u,0.s) -Chars 41336 - 41337 [-] 0. secs (0.u,0.s) -Chars 41338 - 41346 [simpobs.] 0. secs (0.u,0.s) -Chars 41347 - 41351 [cbn.] 0. secs (0.u,0.s) -Chars 41352 - 41364 [constructor.] 0. secs (0.u,0.s) -Chars 41365 - 41385 [eapply~IHHt0;~eauto.] 0. secs (0.u,0.s) -Chars 41386 - 41390 [Qed.] 0.017 secs (0.017u,0.s) -Chars 41393 - 41944 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) -Chars 41945 - 41951 [Proof.] 0. secs (0.u,0.s) -Chars 41954 - 41990 [intros~E~R~S~r~A0~ev~ans~k~t0~...] 0. secs (0.u,0.s) -Chars 41993 - 42005 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 42006 - 42015 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 42016 - 42040 [dependent~induction~Ht0.] 0.019 secs (0.019u,0.s) -Chars 42043 - 42044 [-] 0. secs (0.u,0.s) -Chars 42045 - 42053 [simpobs.] 0. secs (0.u,0.s) -Chars 42054 - 42058 [cbn.] 0. secs (0.u,0.s) -Chars 42059 - 42107 [remember~(go~(VisF~(evans~A0~e...] 0. secs (0.u,0.s) -Chars 42112 - 42159 [enough~(trace_prefixF~r~(RetF~...] 0. secs (0.u,0.s) -Chars 42164 - 42165 [{] 0. secs (0.u,0.s) -Chars 42166 - 42172 [subst.] 0. secs (0.u,0.s) -Chars 42173 - 42178 [auto.] 0. secs (0.u,0.s) -Chars 42179 - 42180 [}] 0. secs (0.u,0.s) -Chars 42185 - 42197 [constructor.] 0. secs (0.u,0.s) -Chars 42200 - 42201 [-] 0. secs (0.u,0.s) -Chars 42202 - 42210 [simpobs.] 0. secs (0.u,0.s) -Chars 42211 - 42215 [cbn.] 0. secs (0.u,0.s) -Chars 42216 - 42228 [constructor.] 0. secs (0.u,0.s) -Chars 42229 - 42249 [eapply~IHHt0;~eauto.] 0. secs (0.u,0.s) -Chars 42250 - 42254 [Qed.] 0.014 secs (0.014u,0.s) -Chars 42256 - 42853 [Lemma~trace_prefix_peel_ret_vi...] 0.001 secs (0.001u,0.s) -Chars 42854 - 42860 [Proof.] 0. secs (0.u,0.s) -Chars 42863 - 42902 [intros~E~R~S~r~A0~Hempty~ev~k~...] 0. secs (0.u,0.s) -Chars 42905 - 42917 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 42918 - 42927 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 42928 - 42952 [dependent~induction~Ht0.] 0.019 secs (0.019u,0.s) -Chars 42955 - 42956 [-] 0. secs (0.u,0.s) -Chars 42957 - 42965 [simpobs.] 0. secs (0.u,0.s) -Chars 42966 - 42970 [cbn.] 0. secs (0.u,0.s) -Chars 42971 - 43024 [remember~(go~(VisF~(evempty~A0...] 0. secs (0.u,0.s) -Chars 43029 - 43076 [enough~(trace_prefixF~r~(RetF~...] 0. secs (0.u,0.s) -Chars 43081 - 43082 [{] 0. secs (0.u,0.s) -Chars 43083 - 43089 [subst.] 0. secs (0.u,0.s) -Chars 43090 - 43095 [auto.] 0. secs (0.u,0.s) -Chars 43096 - 43097 [}] 0. secs (0.u,0.s) -Chars 43102 - 43114 [constructor.] 0. secs (0.u,0.s) -Chars 43117 - 43118 [-] 0. secs (0.u,0.s) -Chars 43119 - 43127 [simpobs.] 0. secs (0.u,0.s) -Chars 43128 - 43132 [cbn.] 0. secs (0.u,0.s) -Chars 43133 - 43145 [constructor.] 0. secs (0.u,0.s) -Chars 43146 - 43166 [eapply~IHHt0;~eauto.] 0. secs (0.u,0.s) -Chars 43167 - 43171 [Qed.] 0.028 secs (0.027u,0.s) -Chars 43173 - 43384 [Lemma~trace_prefix_peel~:~~~fo...] 0. secs (0.u,0.s) -Chars 43385 - 43391 [Proof.] 0. secs (0.u,0.s) -Chars 43394 - 43407 [intros~E~S~R.] 0. secs (0.u,0.s) -Chars 43408 - 43426 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 43427 - 43445 [intros~b~t~f~Href.] 0. secs (0.u,0.s) -Chars 43446 - 43458 [unfold~peel.] 0. secs (0.u,0.s) -Chars 43461 - 43537 [destruct~(observe~b)~eqn:Heqb;...] 0.002 secs (0.002u,0.s) -Chars 43541 - 43542 [-] 0. secs (0.u,0.s) -Chars 43543 - 43547 [cbn.] 0. secs (0.u,0.s) -Chars 43548 - 43564 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 43568 - 43569 [-] 0. secs (0.u,0.s) -Chars 43570 - 43578 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43579 - 43614 [eapply~trace_prefix_tau_ret;~e...] 0. secs (0.u,0.s) -Chars 43617 - 43618 [-] 0. secs (0.u,0.s) -Chars 43619 - 43636 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 43637 - 43654 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 43655 - 43677 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 43678 - 43700 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 43705 - 43726 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 43727 - 43748 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 43749 - 43774 [rewrite~bind_vis~in~Href.] 0.005 secs (0.005u,0.s) -Chars 43779 - 43789 [sinv~Href.] 0.002 secs (0.002u,0.s) -Chars 43792 - 43793 [-] 0. secs (0.u,0.s) -Chars 43794 - 43802 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43803 - 43819 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 43822 - 43823 [-] 0. secs (0.u,0.s) -Chars 43824 - 43832 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 43833 - 43845 [constructor.] 0. secs (0.u,0.s) -Chars 43846 - 43857 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 43859 - 43876 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 43877 - 43894 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 43899 - 43921 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 43922 - 43944 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 43945 - 43966 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 43967 - 43988 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 43993 - 44025 [repeat~rewrite~tau_eutt~in~Href.] 0.005 secs (0.005u,0.s) -Chars 44026 - 44032 [eauto.] 0. secs (0.u,0.s) -Chars 44035 - 44036 [-] 0. secs (0.u,0.s) -Chars 44037 - 44045 [simpobs.] 0.009 secs (0.009u,0.s) -Chars 44046 - 44058 [constructor.] 0. secs (0.u,0.s) -Chars 44059 - 44075 [rewrite~<-~Heqt.] 0. secs (0.u,0.s) -Chars 44076 - 44087 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 44093 - 44110 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 44111 - 44133 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 44134 - 44155 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 44160 - 44185 [rewrite~tau_eutt~in~Href.] 0.002 secs (0.002u,0.s) -Chars 44186 - 44192 [eauto.] 0. secs (0.u,0.s) -Chars 44195 - 44196 [-] 0. secs (0.u,0.s) -Chars 44197 - 44205 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 44206 - 44256 [destruct~e;~cbn;~rewrite~<-~He...] 0.001 secs (0.001u,0.s) -Chars 44259 - 44260 [-] 0. secs (0.u,0.s) -Chars 44261 - 44269 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 44270 - 44287 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 44288 - 44310 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 44315 - 44336 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 44341 - 44381 [apply~trace_refine_vis_l~in~Hr...] 0. secs (0.u,0.s) -Chars 44382 - 44420 [destruct~Hbt~as~[A~[e0~[k0~Hvi...] 0. secs (0.u,0.s) -Chars 44425 - 44442 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 44443 - 44465 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 44466 - 44487 [rewrite~Heqt~in~Hvis.] 0.008 secs (0.008u,0.s) -Chars 44492 - 44517 [rewrite~tau_eutt~in~Hvis.] 0.005 secs (0.005u,0.s) -Chars 44522 - 44617 [assert~~((exists~B,~exists~k',...] 0. secs (0.u,0.s) -Chars 44622 - 44623 [{] 0. secs (0.u,0.s) -Chars 44630 - 44643 [step~in~Hvis.] 0. secs (0.u,0.s) -Chars 44644 - 44660 [clear~Heqb~Heqt.] 0. secs (0.u,0.s) -Chars 44667 - 44692 [dependent~induction~Hvis.] 0.035 secs (0.035u,0.s) -Chars 44699 - 44700 [-] 0. secs (0.u,0.s) -Chars 44701 - 44721 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 44722 - 44731 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 44732 - 44784 [destruct~(observe~t0)~eqn:Heqt...] 0. secs (0.u,0.s) -Chars 44793 - 44794 [+] 0. secs (0.u,0.s) -Chars 44795 - 44801 [right.] 0. secs (0.u,0.s) -Chars 44802 - 44811 [exists~r.] 0. secs (0.u,0.s) -Chars 44812 - 44817 [step.] 0.001 secs (0.001u,0.s) -Chars 44818 - 44822 [cbn.] 0. secs (0.u,0.s) -Chars 44823 - 44837 [rewrite~Heqt0.] 0. secs (0.u,0.s) -Chars 44838 - 44854 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 44863 - 44864 [+] 0. secs (0.u,0.s) -Chars 44865 - 44874 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 44875 - 44880 [left.] 0. secs (0.u,0.s) -Chars 44881 - 44891 [exists~X0.] 0. secs (0.u,0.s) -Chars 44892 - 44902 [exists~k2.] 0. secs (0.u,0.s) -Chars 44903 - 44913 [exists~e1.] 0. secs (0.u,0.s) -Chars 44914 - 44932 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) -Chars 44943 - 44966 [apply~simpobs~in~Heqt0.] 0. secs (0.u,0.s) -Chars 44967 - 44981 [rewrite~Heqt0.] 0. secs (0.u,0.s) -Chars 44982 - 44994 [reflexivity.] 0. secs (0.u,0.s) -Chars 45001 - 45002 [-] 0. secs (0.u,0.s) -Chars 45003 - 45023 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 45024 - 45033 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 45034 - 45086 [destruct~(observe~t0)~eqn:Heqt...] 0.002 secs (0.002u,0.s) -Chars 45095 - 45096 [+] 0. secs (0.u,0.s) -Chars 45097 - 45103 [right.] 0. secs (0.u,0.s) -Chars 45104 - 45113 [exists~r.] 0. secs (0.u,0.s) -Chars 45114 - 45119 [step.] 0.001 secs (0.001u,0.s) -Chars 45120 - 45124 [cbn.] 0. secs (0.u,0.s) -Chars 45125 - 45139 [rewrite~Heqt0.] 0. secs (0.u,0.s) -Chars 45140 - 45156 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 45165 - 45166 [+] 0. secs (0.u,0.s) -Chars 45167 - 45186 [injection~x~as~Ht1.] 0. secs (0.u,0.s) -Chars 45187 - 45205 [symmetry~in~Heqt0.] 0. secs (0.u,0.s) -Chars 45206 - 45229 [apply~simpobs~in~Heqt0.] 0. secs (0.u,0.s) -Chars 45240 - 45261 [setoid_rewrite~Heqt0.] 0.007 secs (0.007u,0.s) -Chars 45262 - 45286 [setoid_rewrite~tau_eutt.] 0.009 secs (0.009u,0.s) -Chars 45287 - 45308 [eapply~IHHvis;~eauto.] 0.002 secs (0.002u,0.s) -Chars 45319 - 45331 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 45332 - 45337 [auto.] 0. secs (0.u,0.s) -Chars 45342 - 45343 [}] 0. secs (0.u,0.s) -Chars 45348 - 45396 [destruct~H~as~[[B~[k'~[e1~Ht0]...] 0. secs (0.u,0.s) -Chars 45401 - 45402 [+] 0. secs (0.u,0.s) -Chars 45403 - 45424 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45425 - 45450 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45457 - 45477 [rewrite~Ht0~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45478 - 45503 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) -Chars 45510 - 45520 [sinv~Href.] 0.013 secs (0.013u,0.s) -Chars 45521 - 45548 [subst;~ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 45555 - 45575 [rewrite~Ht0~in~Hvis.] 0.006 secs (0.006u,0.s) -Chars 45576 - 45601 [rewrite~bind_vis~in~Hvis.] 0.007 secs (0.007u,0.s) -Chars 45602 - 45612 [sinv~Hvis.] 0.013 secs (0.013u,0.s) -Chars 45619 - 45646 [subst;~ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 45647 - 45663 [clear~Heqt~Heqb.] 0. secs (0.u,0.s) -Chars 45670 - 45682 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 45683 - 45692 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 45699 - 45710 [destruct~e.] 0. secs (0.u,0.s) -Chars 45717 - 45718 [*] 0. secs (0.u,0.s) -Chars 45719 - 45726 [inv~H1.] 0.008 secs (0.008u,0.s) -Chars 45727 - 45747 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 45748 - 45752 [cbn.] 0. secs (0.u,0.s) -Chars 45753 - 45765 [constructor.] 0. secs (0.u,0.s) -Chars 45774 - 45822 [eapply~trace_prefix_vis_evans;...] 0.001 secs (0.001u,0.s) -Chars 45831 - 45840 [now~step.] 0.001 secs (0.001u,0.s) -Chars 45848 - 45849 [*] 0. secs (0.u,0.s) -Chars 45850 - 45889 [eapply~trace_prefix_vis_evempt...] 0. secs (0.u,0.s) -Chars 45894 - 45895 [+] 0. secs (0.u,0.s) -Chars 45896 - 45917 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45918 - 45938 [rewrite~Ht0~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45945 - 45970 [rewrite~tau_eutt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45971 - 45998 [rewrite~bind_ret_l~in~Href.] 0.003 secs (0.003u,0.s) -Chars 45999 - 46010 [clear~Hvis.] 0. secs (0.u,0.s) -Chars 46017 - 46028 [destruct~e.] 0. secs (0.u,0.s) -Chars 46035 - 46036 [*] 0. secs (0.u,0.s) -Chars 46037 - 46041 [cbn.] 0. secs (0.u,0.s) -Chars 46042 - 46054 [constructor.] 0. secs (0.u,0.s) -Chars 46055 - 46095 [eapply~trace_prefix_peel_ret_v...] 0. secs (0.u,0.s) -Chars 46102 - 46103 [*] 0. secs (0.u,0.s) -Chars 46104 - 46108 [cbn.] 0. secs (0.u,0.s) -Chars 46109 - 46121 [constructor.] 0. secs (0.u,0.s) -Chars 46122 - 46168 [eapply~trace_prefix_peel_ret_v...] 0. secs (0.u,0.s) -Chars 46171 - 46172 [-] 0. secs (0.u,0.s) -Chars 46173 - 46217 [destruct~e;~cbn;~simpobs;~[~~|...] 0.004 secs (0.003u,0.s) -Chars 46222 - 46239 [symmetry~in~Heqt.] 0. secs (0.u,0.s) -Chars 46240 - 46262 [apply~simpobs~in~Heqt.] 0. secs (0.u,0.s) -Chars 46263 - 46284 [rewrite~Heqt~in~Href.] 0.003 secs (0.003u,0.s) -Chars 46289 - 46314 [rewrite~bind_vis~in~Href.] 0.002 secs (0.002u,0.s) -Chars 46315 - 46332 [symmetry~in~Heqb.] 0. secs (0.u,0.s) -Chars 46333 - 46355 [apply~simpobs~in~Heqb.] 0. secs (0.u,0.s) -Chars 46360 - 46381 [rewrite~Heqb~in~Href.] 0.002 secs (0.002u,0.s) -Chars 46382 - 46392 [sinv~Href.] 0.011 secs (0.011u,0.s) -Chars 46393 - 46420 [subst;~ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 46425 - 46438 [inversion~H1.] 0.002 secs (0.002u,0.s) -Chars 46439 - 46459 [ddestruction;~subst.] 0.004 secs (0.004u,0.s) -Chars 46464 - 46484 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 46485 - 46489 [cbn.] 0. secs (0.u,0.s) -Chars 46490 - 46506 [unfold~peel_vis.] 0. secs (0.u,0.s) -Chars 46507 - 46528 [assert~(A~=~A);~auto.] 0. secs (0.u,0.s) -Chars 46533 - 46581 [destruct~(classicT~(A~=~A));~t...] 0. secs (0.u,0.s) -Chars 46586 - 46612 [unfold~eq_rect_r,~eq_rect.] 0. secs (0.u,0.s) -Chars 46613 - 46639 [remember~(eq_sym~e)~as~He.] 0. secs (0.u,0.s) -Chars 46644 - 46669 [dependent~destruction~He.] 0.001 secs (0.001u,0.s) -Chars 46670 - 46674 [cbn.] 0. secs (0.u,0.s) -Chars 46675 - 46687 [constructor.] 0. secs (0.u,0.s) -Chars 46688 - 46699 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 46705 - 46725 [ddestruction;~subst.] 0. secs (0.u,0.s) -Chars 46730 - 46801 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) -Chars 46806 - 46821 [apply~H6~in~H0.] 0. secs (0.u,0.s) -Chars 46823 - 46829 [eauto.] 0. secs (0.u,0.s) -Chars 46830 - 46834 [Qed.] 0.097 secs (0.096u,0.s) -Chars 46836 - 47043 [Lemma~peel_bind~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 47044 - 47050 [Proof.] 0. secs (0.u,0.s) -Chars 47053 - 47060 [intros.] 0. secs (0.u,0.s) -Chars 47061 - 47085 [apply~trace_prefix_bind.] 0. secs (0.u,0.s) -Chars 47086 - 47118 [eapply~trace_prefix_peel;~eauto.] 0. secs (0.u,0.s) -Chars 47119 - 47123 [Qed.] 0. secs (0.u,0.s) -Chars 47125 - 47288 [Lemma~peel_lemma~:~~~forall~E~...] 0. secs (0.u,0.s) -Chars 47289 - 47295 [Proof.] 0. secs (0.u,0.s) -Chars 47298 - 47305 [intros.] 0. secs (0.u,0.s) -Chars 47306 - 47378 [split;~try~eapply~peel_refine_...] 0. secs (0.u,0.s) -Chars 47379 - 47383 [Qed.] 0. secs (0.u,0.s) -Chars 47385 - 47394 [End~Peel.] 0.006 secs (0.006u,0.s) -Chars 47396 - 47579 [Lemma~bind_peel_ret_tau_aux~:~...] 0. secs (0.u,0.s) -Chars 47580 - 47586 [Proof.] 0. secs (0.u,0.s) -Chars 47589 - 47616 [intros~E~S~R~f~r0~t0~Hrutt.] 0. secs (0.u,0.s) -Chars 47619 - 47633 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 47634 - 47643 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 47644 - 47670 [dependent~induction~Hrutt.] 0.027 secs (0.027u,0.s) -Chars 47673 - 47674 [-] 0. secs (0.u,0.s) -Chars 47675 - 47698 [unfold~ITree.bind~in~x.] 0. secs (0.u,0.s) -Chars 47699 - 47724 [unfold~observe~in~x~at~1.] 0. secs (0.u,0.s) -Chars 47725 - 47734 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 47739 - 47789 [destruct~(observe~t0)~eqn:Ht0;...] 0. secs (0.u,0.s) -Chars 47794 - 47803 [exists~r.] 0. secs (0.u,0.s) -Chars 47804 - 47809 [step.] 0.001 secs (0.001u,0.s) -Chars 47810 - 47822 [rewrite~Ht0.] 0. secs (0.u,0.s) -Chars 47823 - 47835 [constructor.] 0. secs (0.u,0.s) -Chars 47836 - 47841 [auto.] 0. secs (0.u,0.s) -Chars 47844 - 47845 [-] 0. secs (0.u,0.s) -Chars 47846 - 47866 [unfold~observe~in~x.] 0. secs (0.u,0.s) -Chars 47867 - 47876 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 47877 - 47927 [destruct~(observe~t0)~eqn:Ht0;...] 0. secs (0.u,0.s) -Chars 47932 - 47933 [+] 0. secs (0.u,0.s) -Chars 47934 - 47943 [exists~r.] 0. secs (0.u,0.s) -Chars 47944 - 47949 [step.] 0.001 secs (0.001u,0.s) -Chars 47950 - 47962 [rewrite~Ht0.] 0. secs (0.u,0.s) -Chars 47963 - 47975 [constructor.] 0. secs (0.u,0.s) -Chars 47976 - 47981 [auto.] 0. secs (0.u,0.s) -Chars 47986 - 47987 [+] 0. secs (0.u,0.s) -Chars 47988 - 48004 [symmetry~in~Ht0.] 0. secs (0.u,0.s) -Chars 48005 - 48026 [apply~simpobs~in~Ht0.] 0. secs (0.u,0.s) -Chars 48027 - 48046 [setoid_rewrite~Ht0.] 0.001 secs (0.001u,0.s) -Chars 48047 - 48071 [setoid_rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 48078 - 48087 [cbn~in~x.] 0. secs (0.u,0.s) -Chars 48088 - 48107 [injection~x~as~Ht2.] 0. secs (0.u,0.s) -Chars 48108 - 48129 [eapply~IHHrutt;~auto.] 0.001 secs (0.001u,0.s) -Chars 48136 - 48142 [subst.] 0.002 secs (0.002u,0.s) -Chars 48143 - 48155 [reflexivity.] 0. secs (0.u,0.s) -Chars 48156 - 48160 [Qed.] 0.022 secs (0.022u,0.s) -Chars 48162 - 48410 [Lemma~decompose_trace_refine_b...] 0.001 secs (0.001u,0.s) -Chars 48411 - 48417 [Proof.] 0. secs (0.u,0.s) -Chars 48420 - 48462 [destruct~classicT_inhabited~as...] 0. secs (0.u,0.s) -Chars 48465 - 48472 [intros.] 0. secs (0.u,0.s) -Chars 48473 - 48500 [exists~(peel~classicT~b~t).] 0. secs (0.u,0.s) -Chars 48503 - 48544 [apply~(peel_bind~classicT)~in~...] 0. secs (0.u,0.s) -Chars 48545 - 48573 [destruct~Heutt~as~[g~Heutt].] 0. secs (0.u,0.s) -Chars 48576 - 48585 [exists~g.] 0. secs (0.u,0.s) -Chars 48586 - 48640 [split;~auto;~eapply~(peel_refi...] 0. secs (0.u,0.s) -Chars 48641 - 48645 [Qed.] 0.001 secs (0.001u,0.s) -Chars 48647 - 48968 [Lemma~bind_trigger_refine~:~~~...] 0. secs (0.u,0.s) -Chars 48969 - 48975 [Proof.] 0. secs (0.u,0.s) -Chars 48978 - 48985 [intros.] 0. secs (0.u,0.s) -Chars 48986 - 49013 [rewrite~bind_trigger~in~H0.] 0.002 secs (0.002u,0.s) -Chars 49014 - 49051 [apply~trace_refine_vis~in~H0~a...] 0. secs (0.u,0.s) -Chars 49054 - 49093 [destruct~Hvis~as~[X~[e'~[k'~Hb...] 0. secs (0.u,0.s) -Chars 49094 - 49115 [setoid_rewrite~Hbvis.] 0.006 secs (0.006u,0.s) -Chars 49118 - 49138 [rewrite~Hbvis~in~H0.] 0.002 secs (0.002u,0.s) -Chars 49141 - 49152 [step~in~H0.] 0. secs (0.u,0.s) -Chars 49153 - 49162 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 49163 - 49170 [inv~H0.] 0.01 secs (0.009u,0.s) -Chars 49171 - 49184 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 49185 - 49191 [subst.] 0. secs (0.u,0.s) -Chars 49192 - 49220 [inv~H3;~ddestruction;~subst.] 0.009 secs (0.009u,0.s) -Chars 49223 - 49224 [-] 0. secs (0.u,0.s) -Chars 49225 - 49234 [exists~a.] 0. secs (0.u,0.s) -Chars 49235 - 49245 [exists~k'.] 0. secs (0.u,0.s) -Chars 49246 - 49269 [split;~try~reflexivity.] 0. secs (0.u,0.s) -Chars 49275 - 49340 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) -Chars 49345 - 49360 [apply~H8~in~H0.] 0. secs (0.u,0.s) -Chars 49362 - 49367 [auto.] 0. secs (0.u,0.s) -Chars 49370 - 49371 [-] 0. secs (0.u,0.s) -Chars 49372 - 49392 [destruct~H~as~[a~_].] 0. secs (0.u,0.s) -Chars 49393 - 49407 [contradiction.] 0. secs (0.u,0.s) -Chars 49408 - 49412 [Qed.] 0.013 secs (0.013u,0.s) diff --git a/extra/ITrace/ITraceDefinition.v.timing b/extra/ITrace/ITraceDefinition.v.timing deleted file mode 100644 index 1c41cc83..00000000 --- a/extra/ITrace/ITraceDefinition.v.timing +++ /dev/null @@ -1,24 +0,0 @@ -Chars 0 - 87 [From~ITree~Require~Import~ITre...] 0.161 secs (0.143u,0.018s) -Chars 90 - 120 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) -Chars 122 - 136 [Import~Monads.] 0. secs (0.u,0.s) -Chars 137 - 158 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 159 - 188 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 190 - 454 [Variant~EvAns~(E~:~Type~->~Typ...] 0. secs (0.u,0.s) -Chars 456 - 476 [Arguments~evans~{E}.] 0. secs (0.u,0.s) -Chars 477 - 499 [Arguments~evempty~{E}.] 0. secs (0.u,0.s) -Chars 501 - 570 [Definition~itrace~(E~:~Type~->...] 0. secs (0.u,0.s) -Chars 572 - 643 [Definition~itrace'~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 645 - 702 [Definition~ev_stream~(E~:~Type...] 0. secs (0.u,0.s) -Chars 704 - 762 [Definition~Nil~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 764 - 825 [Definition~ev_list~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 827 - 996 [Fixpoint~ev_list_to_stream~{E~...] 0. secs (0.u,0.s) -Chars 1079 - 1171 [Definition~append~{E}~{R}~(s~:...] 0. secs (0.u,0.s) -Chars 1173 - 1207 [Notation~"s~++~b"~:=~(append~s...] 0. secs (0.u,0.s) -Chars 1209 - 1457 [Variant~REvRef~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1458 - 1501 [#[global]~Hint~Constructors~RE...] 0. secs (0.u,0.s) -Chars 1536 - 1709 [Variant~RAnsRef~(E~:~Type~->~T...] 0. secs (0.u,0.s) -Chars 1710 - 1754 [#[global]~Hint~Constructors~RA...] 0. secs (0.u,0.s) -Chars 1756 - 1862 [Definition~trace_refine~{E}~{R...] 0. secs (0.u,0.s) -Chars 1865 - 1920 [Notation~"b~⊑~t"~:=~(trace_ref...] 0. secs (0.u,0.s) -Chars 1922 - 2005 [Definition~finite~{E~:~Type~->...] 0. secs (0.u,0.s) -Chars 2007 - 2081 [#[global]~Instance~itrace_eq~~...] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITraceFacts.v.timing b/extra/ITrace/ITraceFacts.v.timing deleted file mode 100644 index 46c61398..00000000 --- a/extra/ITrace/ITraceFacts.v.timing +++ /dev/null @@ -1,1233 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 89 - 216 [From~ITree~Require~Import~Util...] 0.162 secs (0.145u,0.016s) -Chars 218 - 280 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) -Chars 282 - 305 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 308 - 322 [Import~Monads.] 0. secs (0.u,0.s) -Chars 323 - 344 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 345 - 374 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 376 - 419 [Tactic~Notation~"step"~:=~repe...] 0. secs (0.u,0.s) -Chars 421 - 488 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 490 - 542 [Tactic~Notation~"sinv"~ident(h...] 0. secs (0.u,0.s) -Chars 545 - 623 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) -Chars 624 - 630 [Proof.] 0. secs (0.u,0.s) -Chars 633 - 640 [intros.] 0. secs (0.u,0.s) -Chars 641 - 681 [destruct~(classic~(exists~a~:~...] 0. secs (0.u,0.s) -Chars 684 - 685 [-] 0. secs (0.u,0.s) -Chars 686 - 704 [destruct~H;~eauto.] 0. secs (0.u,0.s) -Chars 707 - 708 [-] 0. secs (0.u,0.s) -Chars 709 - 739 [assert~(f~:~A~->~void);~eauto.] 0. secs (0.u,0.s) -Chars 740 - 747 [intros.] 0. secs (0.u,0.s) -Chars 752 - 760 [exfalso.] 0. secs (0.u,0.s) -Chars 761 - 776 [apply~H;~eauto.] 0. secs (0.u,0.s) -Chars 777 - 781 [Qed.] 0. secs (0.u,0.s) -Chars 783 - 874 [Lemma~REvRef_inv~{E}~{A}~(e~e'...] 0. secs (0.u,0.s) -Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) -Chars 884 - 893 [intros~x.] 0. secs (0.u,0.s) -Chars 894 - 906 [inversion~x.] 0.001 secs (0.001u,0.s) -Chars 907 - 920 [ddestruction.] 0.002 secs (0.001u,0.s) -Chars 921 - 933 [reflexivity.] 0. secs (0.u,0.s) -Chars 934 - 938 [Qed.] 0.024 secs (0.023u,0.001s) -Chars 940 - 1020 [Lemma~rer_inv~{E}~{A}~ea~e~:~~...] 0. secs (0.u,0.s) -Chars 1021 - 1027 [Proof.] 0. secs (0.u,0.s) -Chars 1030 - 1039 [intros~x.] 0. secs (0.u,0.s) -Chars 1040 - 1052 [inversion~x.] 0.001 secs (0.001u,0.s) -Chars 1055 - 1056 [-] 0. secs (0.u,0.s) -Chars 1057 - 1070 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 1071 - 1092 [eexists;~reflexivity.] 0. secs (0.u,0.s) -Chars 1095 - 1096 [-] 0. secs (0.u,0.s) -Chars 1097 - 1136 [enough~(unit~->~void)~by~contr...] 0. secs (0.u,0.s) -Chars 1137 - 1148 [destruct~H.] 0. secs (0.u,0.s) -Chars 1149 - 1154 [auto.] 0. secs (0.u,0.s) -Chars 1155 - 1159 [Qed.] 0.002 secs (0.002u,0.s) -Chars 1161 - 1338 [Lemma~may_converge_trace~:~~~f...] 0. secs (0.u,0.s) -Chars 1339 - 1345 [Proof.] 0. secs (0.u,0.s) -Chars 1348 - 1355 [intros.] 0. secs (0.u,0.s) -Chars 1356 - 1376 [induction~H;~inv~H0.] 0.005 secs (0.005u,0.s) -Chars 1380 - 1381 [-] 0. secs (0.u,0.s) -Chars 1382 - 1398 [rewrite~H~in~H1.] 0.046 secs (0.046u,0.s) -Chars 1399 - 1407 [sinv~H1.] 0.002 secs (0.002u,0.s) -Chars 1410 - 1411 [-] 0. secs (0.u,0.s) -Chars 1412 - 1428 [rewrite~H~in~H1.] 0.013 secs (0.013u,0.s) -Chars 1429 - 1437 [sinv~H1.] 0.002 secs (0.002u,0.s) -Chars 1440 - 1441 [-] 0. secs (0.u,0.s) -Chars 1442 - 1453 [destruct~e.] 0. secs (0.u,0.s) -Chars 1454 - 1465 [destruct~b.] 0. secs (0.u,0.s) -Chars 1466 - 1487 [apply~IHmay_converge.] 0. secs (0.u,0.s) -Chars 1492 - 1493 [+] 0. secs (0.u,0.s) -Chars 1494 - 1510 [rewrite~H~in~H2.] 0.014 secs (0.014u,0.s) -Chars 1511 - 1519 [sinv~H2.] 0.002 secs (0.002u,0.s) -Chars 1525 - 1526 [+] 0. secs (0.u,0.s) -Chars 1527 - 1539 [contra_void.] 0. secs (0.u,0.s) -Chars 1543 - 1544 [-] 0. secs (0.u,0.s) -Chars 1545 - 1573 [destruct~e;~try~contra_void.] 0. secs (0.u,0.s) -Chars 1579 - 1608 [destruct~e0;~try~contra_void.] 0. secs (0.u,0.s) -Chars 1613 - 1624 [destruct~b.] 0. secs (0.u,0.s) -Chars 1625 - 1637 [destruct~b0.] 0. secs (0.u,0.s) -Chars 1642 - 1663 [apply~IHmay_converge.] 0. secs (0.u,0.s) -Chars 1664 - 1680 [rewrite~H~in~H2.] 0.013 secs (0.013u,0.s) -Chars 1685 - 1693 [sinv~H2.] 0.006 secs (0.006u,0.s) -Chars 1694 - 1707 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 1712 - 1718 [subst.] 0. secs (0.u,0.s) -Chars 1719 - 1758 [enough~(k~tt~≈~k0~tt);~try~app...] 0. secs (0.u,0.s) -Chars 1763 - 1774 [rewrite~H0.] 0.003 secs (0.003u,0.s) -Chars 1775 - 1780 [auto.] 0. secs (0.u,0.s) -Chars 1781 - 1785 [Qed.] 0.013 secs (0.013u,0.s) -Chars 1787 - 1841 [Lemma~finite_nil~{E~:~Type~->~...] 0. secs (0.u,0.s) -Chars 1842 - 1848 [Proof.] 0. secs (0.u,0.s) -Chars 1851 - 1866 [apply~conv_ret.] 0. secs (0.u,0.s) -Chars 1867 - 1878 [unfold~Nil.] 0. secs (0.u,0.s) -Chars 1879 - 1891 [reflexivity.] 0. secs (0.u,0.s) -Chars 1892 - 1896 [Qed.] 0. secs (0.u,0.s) -Chars 1898 - 2004 [Lemma~finite_list_to_stream~:~...] 0. secs (0.u,0.s) -Chars 2005 - 2011 [Proof.] 0. secs (0.u,0.s) -Chars 2014 - 2018 [red.] 0. secs (0.u,0.s) -Chars 2019 - 2026 [intros.] 0. secs (0.u,0.s) -Chars 2027 - 2039 [induction~l.] 0. secs (0.u,0.s) -Chars 2042 - 2043 [-] 0. secs (0.u,0.s) -Chars 2044 - 2048 [cbn.] 0. secs (0.u,0.s) -Chars 2049 - 2061 [constructor.] 0. secs (0.u,0.s) -Chars 2062 - 2074 [reflexivity.] 0. secs (0.u,0.s) -Chars 2077 - 2078 [-] 0. secs (0.u,0.s) -Chars 2079 - 2083 [cbn.] 0. secs (0.u,0.s) -Chars 2084 - 2117 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) -Chars 2118 - 2124 [simpl.] 0. secs (0.u,0.s) -Chars 2125 - 2131 [eauto.] 0. secs (0.u,0.s) -Chars 2136 - 2145 [Unshelve.] 0. secs (0.u,0.s) -Chars 2146 - 2155 [exact~tt.] 0. secs (0.u,0.s) -Chars 2156 - 2160 [Qed.] 0. secs (0.u,0.s) -Chars 2162 - 2294 [Lemma~finite_stream_list~:~~~f...] 0. secs (0.u,0.s) -Chars 2295 - 2301 [Proof.] 0. secs (0.u,0.s) -Chars 2304 - 2311 [intros.] 0. secs (0.u,0.s) -Chars 2312 - 2321 [red~in~H.] 0. secs (0.u,0.s) -Chars 2322 - 2334 [induction~H.] 0. secs (0.u,0.s) -Chars 2337 - 2338 [-] 0. secs (0.u,0.s) -Chars 2339 - 2350 [exists~nil.] 0. secs (0.u,0.s) -Chars 2351 - 2356 [auto.] 0. secs (0.u,0.s) -Chars 2359 - 2360 [-] 0. secs (0.u,0.s) -Chars 2361 - 2395 [destruct~IHmay_converge~as~[l~...] 0. secs (0.u,0.s) -Chars 2396 - 2416 [unfold~ev_list~in~l.] 0. secs (0.u,0.s) -Chars 2421 - 2433 [inversion~e.] 0. secs (0.u,0.s) -Chars 2434 - 2440 [subst.] 0. secs (0.u,0.s) -Chars 2445 - 2463 [exists~(cons~e~l).] 0. secs (0.u,0.s) -Chars 2464 - 2470 [simpl.] 0. secs (0.u,0.s) -Chars 2471 - 2481 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 2486 - 2497 [destruct~b.] 0. secs (0.u,0.s) -Chars 2503 - 2518 [apply~eqit_Vis.] 0. secs (0.u,0.s) -Chars 2524 - 2531 [intros.] 0. secs (0.u,0.s) -Chars 2532 - 2547 [now~destruct~u.] 0. secs (0.u,0.s) -Chars 2552 - 2558 [subst.] 0. secs (0.u,0.s) -Chars 2559 - 2573 [contradiction.] 0. secs (0.u,0.s) -Chars 2574 - 2578 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2580 - 2767 [Lemma~append_vis~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) -Chars 2777 - 2788 [intros~E~R.] 0. secs (0.u,0.s) -Chars 2789 - 2803 [unfold~append.] 0. secs (0.u,0.s) -Chars 2804 - 2811 [intros.] 0. secs (0.u,0.s) -Chars 2814 - 2819 [step.] 0.001 secs (0.001u,0.s) -Chars 2820 - 2824 [cbn.] 0. secs (0.u,0.s) -Chars 2825 - 2830 [evis.] 0. secs (0.u,0.s) -Chars 2832 - 2836 [Qed.] 0.002 secs (0.002u,0.s) -Chars 2838 - 2967 [#[global]~Instance~proper_appe...] 0. secs (0.u,0.s) -Chars 2968 - 2974 [Proof.] 0. secs (0.u,0.s) -Chars 2977 - 3008 [intros~log1~log2~Hlog~b1~b2~Hb.] 0. secs (0.u,0.s) -Chars 3009 - 3023 [unfold~append.] 0. secs (0.u,0.s) -Chars 3024 - 3037 [rewrite~Hlog.] 0.001 secs (0.001u,0.s) -Chars 3040 - 3069 [eapply~eutt_bind_eutt;~eauto.] 0.003 secs (0.003u,0.s) -Chars 3070 - 3074 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3076 - 3248 [Lemma~may_converge_append~:~~~...] 0. secs (0.u,0.s) -Chars 3249 - 3255 [Proof.] 0. secs (0.u,0.s) -Chars 3258 - 3265 [intros.] 0. secs (0.u,0.s) -Chars 3266 - 3278 [induction~H.] 0. secs (0.u,0.s) -Chars 3281 - 3282 [-] 0. secs (0.u,0.s) -Chars 3283 - 3297 [unfold~append.] 0. secs (0.u,0.s) -Chars 3298 - 3308 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 3309 - 3328 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 3333 - 3345 [constructor.] 0. secs (0.u,0.s) -Chars 3346 - 3358 [reflexivity.] 0. secs (0.u,0.s) -Chars 3361 - 3362 [-] 0. secs (0.u,0.s) -Chars 3363 - 3373 [rewrite~H.] 0.004 secs (0.004u,0.s) -Chars 3374 - 3386 [inversion~e.] 0. secs (0.u,0.s) -Chars 3387 - 3393 [subst.] 0. secs (0.u,0.s) -Chars 3394 - 3413 [rewrite~append_vis.] 0.007 secs (0.007u,0.s) -Chars 3418 - 3458 [eapply~conv_vis;~eauto;~try~re...] 0.001 secs (0.001u,0.s) -Chars 3459 - 3465 [simpl.] 0. secs (0.u,0.s) -Chars 3466 - 3472 [eauto.] 0. secs (0.u,0.s) -Chars 3477 - 3483 [subst.] 0. secs (0.u,0.s) -Chars 3484 - 3498 [contradiction.] 0. secs (0.u,0.s) -Chars 3499 - 3503 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3505 - 3718 [Lemma~converge_itrace_ev_list~...] 0. secs (0.u,0.s) -Chars 3719 - 3725 [Proof.] 0. secs (0.u,0.s) -Chars 3728 - 3735 [intros.] 0. secs (0.u,0.s) -Chars 3736 - 3748 [induction~H.] 0. secs (0.u,0.s) -Chars 3751 - 3752 [-] 0. secs (0.u,0.s) -Chars 3753 - 3764 [exists~nil.] 0. secs (0.u,0.s) -Chars 3765 - 3769 [cbn.] 0. secs (0.u,0.s) -Chars 3770 - 3780 [rewrite~H.] 0. secs (0.u,0.s) -Chars 3785 - 3790 [step.] 0.001 secs (0.001u,0.s) -Chars 3791 - 3795 [cbn.] 0. secs (0.u,0.s) -Chars 3796 - 3801 [eret.] 0. secs (0.u,0.s) -Chars 3806 - 3807 [-] 0. secs (0.u,0.s) -Chars 3808 - 3846 [destruct~IHmay_converge~as~[lo...] 0. secs (0.u,0.s) -Chars 3847 - 3859 [inversion~e.] 0. secs (0.u,0.s) -Chars 3860 - 3866 [subst.] 0. secs (0.u,0.s) -Chars 3871 - 3891 [exists~(cons~e~log).] 0. secs (0.u,0.s) -Chars 3892 - 3896 [cbn.] 0. secs (0.u,0.s) -Chars 3897 - 3916 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) -Chars 3917 - 3927 [rewrite~H.] 0. secs (0.u,0.s) -Chars 3932 - 3937 [step.] 0.001 secs (0.001u,0.s) -Chars 3938 - 3950 [constructor.] 0. secs (0.u,0.s) -Chars 3951 - 3958 [intros.] 0. secs (0.u,0.s) -Chars 3959 - 3970 [destruct~v.] 0. secs (0.u,0.s) -Chars 3977 - 3988 [destruct~b.] 0. secs (0.u,0.s) -Chars 3989 - 4000 [apply~Hlog.] 0. secs (0.u,0.s) -Chars 4001 - 4007 [subst.] 0. secs (0.u,0.s) -Chars 4008 - 4022 [contradiction.] 0. secs (0.u,0.s) -Chars 4023 - 4027 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4029 - 4211 [Lemma~classic_converge_itrace~...] 0. secs (0.u,0.s) -Chars 4212 - 4218 [Proof.] 0. secs (0.u,0.s) -Chars 4221 - 4228 [intros.] 0. secs (0.u,0.s) -Chars 4231 - 4267 [destruct~(classic_converge~b);...] 0. secs (0.u,0.s) -Chars 4268 - 4289 [destruct~H~as~[r~Hr].] 0. secs (0.u,0.s) -Chars 4290 - 4295 [left.] 0. secs (0.u,0.s) -Chars 4298 - 4307 [exists~r.] 0. secs (0.u,0.s) -Chars 4308 - 4338 [apply~converge_itrace_ev_list.] 0. secs (0.u,0.s) -Chars 4339 - 4344 [auto.] 0. secs (0.u,0.s) -Chars 4345 - 4349 [Qed.] 0. secs (0.u,0.s) -Chars 4351 - 4393 [Arguments~classic_converge_itr...] 0. secs (0.u,0.s) -Chars 4395 - 4499 [Lemma~append_nil~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 4500 - 4506 [Proof.] 0. secs (0.u,0.s) -Chars 4509 - 4516 [intros.] 0. secs (0.u,0.s) -Chars 4517 - 4531 [unfold~append.] 0. secs (0.u,0.s) -Chars 4532 - 4551 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 4552 - 4564 [reflexivity.] 0. secs (0.u,0.s) -Chars 4565 - 4569 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4571 - 4822 [Lemma~append_assoc~:~~~forall~...] 0. secs (0.u,0.s) -Chars 4823 - 4829 [Proof.] 0. secs (0.u,0.s) -Chars 4832 - 4849 [intros~E~R~b~log.] 0. secs (0.u,0.s) -Chars 4850 - 4864 [induction~log.] 0. secs (0.u,0.s) -Chars 4867 - 4868 [-] 0. secs (0.u,0.s) -Chars 4869 - 4875 [simpl.] 0. secs (0.u,0.s) -Chars 4876 - 4883 [intros.] 0. secs (0.u,0.s) -Chars 4884 - 4903 [rewrite~append_nil.] 0. secs (0.u,0.s) -Chars 4904 - 4916 [reflexivity.] 0. secs (0.u,0.s) -Chars 4919 - 4920 [-] 0. secs (0.u,0.s) -Chars 4921 - 4925 [cbn.] 0. secs (0.u,0.s) -Chars 4926 - 4933 [intros.] 0. secs (0.u,0.s) -Chars 4934 - 4953 [rewrite~append_vis.] 0.001 secs (0.001u,0.s) -Chars 4954 - 4975 [setoid_rewrite~IHlog.] 0.002 secs (0.002u,0.s) -Chars 4980 - 4999 [rewrite~append_vis.] 0. secs (0.u,0.s) -Chars 5000 - 5012 [reflexivity.] 0. secs (0.u,0.s) -Chars 5013 - 5017 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5019 - 5198 [Lemma~append_div~:~~~forall~(E...] 0. secs (0.u,0.s) -Chars 5199 - 5205 [Proof.] 0. secs (0.u,0.s) -Chars 5208 - 5215 [intros.] 0. secs (0.u,0.s) -Chars 5216 - 5230 [induction~log.] 0. secs (0.u,0.s) -Chars 5233 - 5234 [-] 0. secs (0.u,0.s) -Chars 5235 - 5239 [cbn.] 0. secs (0.u,0.s) -Chars 5240 - 5254 [unfold~append.] 0. secs (0.u,0.s) -Chars 5255 - 5274 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 5275 - 5280 [auto.] 0. secs (0.u,0.s) -Chars 5283 - 5284 [-] 0. secs (0.u,0.s) -Chars 5285 - 5289 [cbn.] 0. secs (0.u,0.s) -Chars 5290 - 5304 [unfold~append.] 0. secs (0.u,0.s) -Chars 5309 - 5314 [step.] 0. secs (0.u,0.s) -Chars 5315 - 5326 [repeat~red.] 0. secs (0.u,0.s) -Chars 5327 - 5331 [cbn.] 0. secs (0.u,0.s) -Chars 5332 - 5344 [constructor.] 0. secs (0.u,0.s) -Chars 5345 - 5351 [intro.] 0. secs (0.u,0.s) -Chars 5352 - 5357 [auto.] 0. secs (0.u,0.s) -Chars 5359 - 5363 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5365 - 5605 [Lemma~inv_append_eutt~:~~~fora...] 0. secs (0.u,0.s) -Chars 5606 - 5612 [Proof.] 0. secs (0.u,0.s) -Chars 5615 - 5622 [intros.] 0. secs (0.u,0.s) -Chars 5623 - 5649 [generalize~dependent~log2.] 0. secs (0.u,0.s) -Chars 5650 - 5673 [induction~log1;~intros.] 0. secs (0.u,0.s) -Chars 5676 - 5677 [-] 0. secs (0.u,0.s) -Chars 5678 - 5692 [destruct~log2.] 0. secs (0.u,0.s) -Chars 5697 - 5698 [+] 0. secs (0.u,0.s) -Chars 5699 - 5711 [split;~auto.] 0. secs (0.u,0.s) -Chars 5712 - 5721 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 5722 - 5729 [sinv~H.] 0.002 secs (0.002u,0.s) -Chars 5735 - 5736 [+] 0. secs (0.u,0.s) -Chars 5737 - 5744 [sinv~H.] 0.002 secs (0.002u,0.s) -Chars 5747 - 5748 [-] 0. secs (0.u,0.s) -Chars 5749 - 5763 [destruct~log2.] 0. secs (0.u,0.s) -Chars 5768 - 5769 [+] 0. secs (0.u,0.s) -Chars 5770 - 5777 [sinv~H.] 0.003 secs (0.003u,0.s) -Chars 5782 - 5783 [+] 0. secs (0.u,0.s) -Chars 5784 - 5793 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 5794 - 5813 [unfold~append~in~H.] 0. secs (0.u,0.s) -Chars 5814 - 5821 [sinv~H.] 0.006 secs (0.006u,0.s) -Chars 5822 - 5831 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5832 - 5845 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 5852 - 5884 [enough~(log1~=~log2~/\~r1~=~r2).] 0. secs (0.u,0.s) -Chars 5891 - 5892 [{] 0. secs (0.u,0.s) -Chars 5893 - 5904 [destruct~H.] 0. secs (0.u,0.s) -Chars 5905 - 5911 [subst.] 0. secs (0.u,0.s) -Chars 5912 - 5917 [auto.] 0. secs (0.u,0.s) -Chars 5918 - 5919 [}] 0. secs (0.u,0.s) -Chars 5926 - 5939 [apply~IHlog1.] 0. secs (0.u,0.s) -Chars 5940 - 5950 [apply~REL.] 0. secs (0.u,0.s) -Chars 5951 - 5960 [apply~tt.] 0. secs (0.u,0.s) -Chars 5961 - 5965 [Qed.] 0.014 secs (0.014u,0.s) -Chars 5967 - 6255 [Lemma~trace_refine_proper_left...] 0. secs (0.u,0.s) -Chars 6256 - 6262 [Proof.] 0. secs (0.u,0.s) -Chars 6265 - 6276 [intros~E~R.] 0. secs (0.u,0.s) -Chars 6277 - 6296 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6297 - 6304 [intros.] 0. secs (0.u,0.s) -Chars 6308 - 6319 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6320 - 6337 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 6338 - 6348 [step~in~H.] 0. secs (0.u,0.s) -Chars 6351 - 6364 [genobs~t~ot3.] 0. secs (0.u,0.s) -Chars 6365 - 6378 [clear~Heqot3.] 0. secs (0.u,0.s) -Chars 6382 - 6428 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) -Chars 6431 - 6432 [-] 0. secs (0.u,0.s) -Chars 6433 - 6459 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) -Chars 6460 - 6512 [hinduction~H0~before~CIH;~intr...] 0.015 secs (0.015u,0.s) -Chars 6519 - 6520 [+] 0. secs (0.u,0.s) -Chars 6521 - 6533 [constructor.] 0. secs (0.u,0.s) -Chars 6534 - 6539 [auto.] 0. secs (0.u,0.s) -Chars 6544 - 6545 [+] 0. secs (0.u,0.s) -Chars 6546 - 6558 [constructor.] 0. secs (0.u,0.s) -Chars 6559 - 6581 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) -Chars 6637 - 6638 [-] 0. secs (0.u,0.s) -Chars 6640 - 6712 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) -Chars 6718 - 6719 [{] 0. secs (0.u,0.s) -Chars 6720 - 6767 [destruct~ot3;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) -Chars 6768 - 6769 [}] 0. secs (0.u,0.s) -Chars 6775 - 6801 [destruct~DEC~as~[EQ|~EQ].] 0. secs (0.u,0.s) -Chars 6807 - 6808 [+] 0. secs (0.u,0.s) -Chars 6809 - 6838 [destruct~EQ~as~[m3~?];~subst.] 0. secs (0.u,0.s) -Chars 6846 - 6858 [constructor.] 0. secs (0.u,0.s) -Chars 6859 - 6877 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6885 - 6904 [apply~rutt_inv_Tau.] 0. secs (0.u,0.s) -Chars 6905 - 6914 [now~step.] 0. secs (0.u,0.s) -Chars 6921 - 6922 [+] 0. secs (0.u,0.s) -Chars 6923 - 6969 [inv~H0;~try~(exfalso;~eapply~E...] 0.026 secs (0.025u,0.s) -Chars 6977 - 6989 [constructor.] 0. secs (0.u,0.s) -Chars 6997 - 7009 [step~in~REL.] 0. secs (0.u,0.s) -Chars 7018 - 7097 [hinduction~H1~before~CIH;~intr...] 0.002 secs (0.002u,0.s) -Chars 7105 - 7106 [*] 0. secs (0.u,0.s) -Chars 7107 - 7145 [dependent~induction~REL;~rewri...] 0.035 secs (0.034u,0.s) -Chars 7155 - 7157 [++] 0. secs (0.u,0.s) -Chars 7158 - 7170 [constructor.] 0. secs (0.u,0.s) -Chars 7171 - 7176 [auto.] 0. secs (0.u,0.s) -Chars 7186 - 7188 [++] 0. secs (0.u,0.s) -Chars 7189 - 7201 [constructor.] 0. secs (0.u,0.s) -Chars 7202 - 7222 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) -Chars 7230 - 7231 [*] 0. secs (0.u,0.s) -Chars 7232 - 7270 [dependent~induction~REL;~rewri...] 0.05 secs (0.05u,0.s) -Chars 7280 - 7282 [++] 0. secs (0.u,0.s) -Chars 7283 - 7301 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 7302 - 7309 [intros.] 0. secs (0.u,0.s) -Chars 7310 - 7325 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 7339 - 7350 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7351 - 7361 [apply~REL.] 0. secs (0.u,0.s) -Chars 7362 - 7373 [assumption.] 0. secs (0.u,0.s) -Chars 7384 - 7386 [++] 0. secs (0.u,0.s) -Chars 7387 - 7399 [constructor.] 0. secs (0.u,0.s) -Chars 7400 - 7420 [eapply~IHREL;~eauto.] 0.004 secs (0.004u,0.s) -Chars 7428 - 7429 [*] 0. secs (0.u,0.s) -Chars 7430 - 7452 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) -Chars 7453 - 7467 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 7477 - 7540 [dependent~induction~REL;~try~(...] 0.043 secs (0.042u,0.s) -Chars 7550 - 7552 [++] 0. secs (0.u,0.s) -Chars 7553 - 7566 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 7567 - 7585 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7586 - 7597 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 7608 - 7610 [++] 0. secs (0.u,0.s) -Chars 7611 - 7616 [auto.] 0. secs (0.u,0.s) -Chars 7626 - 7628 [++] 0. secs (0.u,0.s) -Chars 7629 - 7642 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 7643 - 7661 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7662 - 7682 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) -Chars 7685 - 7686 [-] 0. secs (0.u,0.s) -Chars 7687 - 7715 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) -Chars 7720 - 7783 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.012u,0.s) -Chars 7788 - 7789 [+] 0. secs (0.u,0.s) -Chars 7790 - 7808 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 7809 - 7816 [intros.] 0. secs (0.u,0.s) -Chars 7817 - 7832 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 7839 - 7850 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7851 - 7861 [apply~REL.] 0. secs (0.u,0.s) -Chars 7862 - 7873 [assumption.] 0. secs (0.u,0.s) -Chars 7879 - 7880 [+] 0. secs (0.u,0.s) -Chars 7881 - 7893 [constructor.] 0. secs (0.u,0.s) -Chars 7894 - 7916 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) -Chars 7919 - 7920 [-] 0. secs (0.u,0.s) -Chars 7921 - 7943 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 7944 - 7971 [remember~(TauF~t1)~as~otf1.] 0.001 secs (0.001u,0.s) -Chars 7976 - 8047 [hinduction~H0~before~CIH;~intr...] 0.013 secs (0.013u,0.s) -Chars 8052 - 8053 [+] 0. secs (0.u,0.s) -Chars 8054 - 8066 [constructor.] 0. secs (0.u,0.s) -Chars 8067 - 8078 [now~unstep.] 0. secs (0.u,0.s) -Chars 8084 - 8085 [+] 0. secs (0.u,0.s) -Chars 8086 - 8098 [constructor.] 0. secs (0.u,0.s) -Chars 8099 - 8121 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 8124 - 8125 [-] 0. secs (0.u,0.s) -Chars 8126 - 8138 [constructor.] 0. secs (0.u,0.s) -Chars 8139 - 8161 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 8162 - 8166 [Qed.] 0.123 secs (0.123u,0.s) -Chars 8168 - 8461 [Lemma~trace_refine_proper_righ...] 0. secs (0.u,0.s) -Chars 8462 - 8468 [Proof.] 0. secs (0.u,0.s) -Chars 8471 - 8482 [intros~E~R.] 0. secs (0.u,0.s) -Chars 8483 - 8502 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 8503 - 8510 [intros.] 0. secs (0.u,0.s) -Chars 8511 - 8521 [step~in~H.] 0. secs (0.u,0.s) -Chars 8525 - 8536 [step~in~H0.] 0. secs (0.u,0.s) -Chars 8537 - 8554 [repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 8558 - 8578 [genobs_clear~t2~ot2.] 0. secs (0.u,0.s) -Chars 8581 - 8637 [hinduction~H~before~CIH;~intro...] 0.002 secs (0.002u,0.s) -Chars 8640 - 8641 [-] 0. secs (0.u,0.s) -Chars 8642 - 8668 [remember~(RetF~r2)~as~ot1.] 0. secs (0.u,0.s) -Chars 8669 - 8731 [hinduction~H0~before~CIH;~intr...] 0.015 secs (0.015u,0.s) -Chars 8736 - 8737 [+] 0. secs (0.u,0.s) -Chars 8738 - 8756 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8761 - 8762 [+] 0. secs (0.u,0.s) -Chars 8763 - 8775 [constructor.] 0. secs (0.u,0.s) -Chars 8776 - 8782 [eauto.] 0. secs (0.u,0.s) -Chars 8785 - 8786 [-] 0. secs (0.u,0.s) -Chars 8787 - 8814 [remember~(TauF~m1)~as~otm1.] 0. secs (0.u,0.s) -Chars 8819 - 8878 [hinduction~H0~before~CIH;~intr...] 0.014 secs (0.014u,0.s) -Chars 8883 - 8884 [+] 0. secs (0.u,0.s) -Chars 8885 - 8897 [constructor.] 0. secs (0.u,0.s) -Chars 8898 - 8916 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 8921 - 8922 [+] 0. secs (0.u,0.s) -Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) -Chars 8936 - 8954 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 8961 - 8982 [apply~rutt_inv_Tau_r.] 0. secs (0.u,0.s) -Chars 8983 - 8992 [now~step.] 0. secs (0.u,0.s) -Chars 8998 - 8999 [+] 0. secs (0.u,0.s) -Chars 9000 - 9012 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9020 - 9051 [dependent~induction~REL;~subst.] 0.029 secs (0.029u,0.s) -Chars 9058 - 9059 [*] 0. secs (0.u,0.s) -Chars 9060 - 9072 [constructor.] 0. secs (0.u,0.s) -Chars 9073 - 9087 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9096 - 9155 [hinduction~H0~before~CIH;~intr...] 0.011 secs (0.01u,0.s) -Chars 9164 - 9166 [++] 0. secs (0.u,0.s) -Chars 9167 - 9180 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9181 - 9193 [constructor.] 0. secs (0.u,0.s) -Chars 9194 - 9199 [auto.] 0. secs (0.u,0.s) -Chars 9208 - 9210 [++] 0. secs (0.u,0.s) -Chars 9211 - 9223 [constructor.] 0. secs (0.u,0.s) -Chars 9224 - 9229 [auto.] 0. secs (0.u,0.s) -Chars 9236 - 9237 [*] 0. secs (0.u,0.s) -Chars 9238 - 9253 [eapply~IHruttF.] 0. secs (0.u,0.s) -Chars 9254 - 9274 [2:~symmetry;~eauto.] 0. secs (0.u,0.s) -Chars 9283 - 9288 [step.] 0.001 secs (0.001u,0.s) -Chars 9289 - 9302 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9303 - 9321 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9330 - 9346 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 9354 - 9355 [*] 0. secs (0.u,0.s) -Chars 9356 - 9368 [constructor.] 0. secs (0.u,0.s) -Chars 9369 - 9382 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9391 - 9405 [clear~IHruttF.] 0. secs (0.u,0.s) -Chars 9406 - 9465 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) -Chars 9474 - 9476 [++] 0. secs (0.u,0.s) -Chars 9477 - 9495 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9496 - 9503 [intros.] 0. secs (0.u,0.s) -Chars 9504 - 9519 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 9530 - 9541 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9542 - 9552 [apply~REL.] 0. secs (0.u,0.s) -Chars 9553 - 9564 [assumption.] 0. secs (0.u,0.s) -Chars 9574 - 9576 [++] 0. secs (0.u,0.s) -Chars 9577 - 9589 [constructor.] 0. secs (0.u,0.s) -Chars 9590 - 9612 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) -Chars 9619 - 9620 [*] 0. secs (0.u,0.s) -Chars 9621 - 9635 [unstep~in~REL.] 0. secs (0.u,0.s) -Chars 9636 - 9658 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) -Chars 9665 - 9666 [*] 0. secs (0.u,0.s) -Chars 9667 - 9679 [constructor.] 0. secs (0.u,0.s) -Chars 9680 - 9693 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 9694 - 9714 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) -Chars 9717 - 9718 [-] 0. secs (0.u,0.s) -Chars 9719 - 9747 [remember~(VisF~e~k1)~as~ot1.] 0. secs (0.u,0.s) -Chars 9748 - 9793 [hinduction~H0~before~CIH;~intr...] 0.019 secs (0.019u,0.s) -Chars 9798 - 9799 [+] 0. secs (0.u,0.s) -Chars 9800 - 9813 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 9814 - 9832 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9833 - 9840 [intros.] 0. secs (0.u,0.s) -Chars 9841 - 9856 [apply~H0~in~H1.] 0. secs (0.u,0.s) -Chars 9863 - 9874 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9875 - 9885 [apply~REL.] 0. secs (0.u,0.s) -Chars 9886 - 9897 [assumption.] 0. secs (0.u,0.s) -Chars 9903 - 9904 [+] 0. secs (0.u,0.s) -Chars 9905 - 9917 [constructor.] 0. secs (0.u,0.s) -Chars 9918 - 9924 [eauto.] 0. secs (0.u,0.s) -Chars 9927 - 9928 [-] 0. secs (0.u,0.s) -Chars 9929 - 9951 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 9952 - 9979 [remember~(TauF~t0)~as~otf0.] 0.001 secs (0.001u,0.s) -Chars 9984 - 10055 [hinduction~H0~before~CIH;~intr...] 0.01 secs (0.01u,0.s) -Chars 10060 - 10061 [+] 0. secs (0.u,0.s) -Chars 10062 - 10074 [constructor.] 0. secs (0.u,0.s) -Chars 10075 - 10086 [now~unstep.] 0. secs (0.u,0.s) -Chars 10092 - 10093 [+] 0. secs (0.u,0.s) -Chars 10094 - 10106 [constructor.] 0. secs (0.u,0.s) -Chars 10107 - 10129 [eapply~IHruttF;~eauto.] 0. secs (0.u,0.s) -Chars 10132 - 10133 [-] 0. secs (0.u,0.s) -Chars 10134 - 10146 [constructor.] 0. secs (0.u,0.s) -Chars 10147 - 10169 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 10170 - 10174 [Qed.] 0.064 secs (0.064u,0.s) -Chars 10176 - 10280 [#[global]~Instance~trace_refin...] 0. secs (0.u,0.s) -Chars 10281 - 10287 [Proof.] 0. secs (0.u,0.s) -Chars 10290 - 10323 [intros~b1~b2~Heuttb~t1~t2~Heuttt.] 0. secs (0.u,0.s) -Chars 10326 - 10436 [split;~intros;~~try~~~(eapply~...] 0.002 secs (0.002u,0.s) -Chars 10441 - 10468 [now~rewrite~Heuttb,~Heuttt.] 0.014 secs (0.014u,0.s) -Chars 10469 - 10473 [Qed.] 0.002 secs (0.002u,0.s) -Chars 10475 - 10584 [Lemma~trace_refine_ret~:~~~for...] 0. secs (0.u,0.s) -Chars 10585 - 10591 [Proof.] 0. secs (0.u,0.s) -Chars 10594 - 10601 [intros.] 0. secs (0.u,0.s) -Chars 10602 - 10607 [step.] 0. secs (0.u,0.s) -Chars 10608 - 10620 [constructor.] 0. secs (0.u,0.s) -Chars 10621 - 10626 [auto.] 0. secs (0.u,0.s) -Chars 10627 - 10631 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10633 - 10790 [Lemma~trace_refine_ret_inv_r~:...] 0. secs (0.u,0.s) -Chars 10791 - 10797 [Proof.] 0. secs (0.u,0.s) -Chars 10800 - 10807 [intros.] 0. secs (0.u,0.s) -Chars 10808 - 10813 [step.] 0.001 secs (0.001u,0.s) -Chars 10814 - 10824 [step~in~H.] 0. secs (0.u,0.s) -Chars 10825 - 10841 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 10845 - 10874 [dependent~induction~H;~subst.] 0.024 secs (0.023u,0.s) -Chars 10877 - 10878 [-] 0. secs (0.u,0.s) -Chars 10879 - 10892 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 10893 - 10905 [constructor.] 0. secs (0.u,0.s) -Chars 10906 - 10911 [auto.] 0. secs (0.u,0.s) -Chars 10914 - 10915 [-] 0. secs (0.u,0.s) -Chars 10916 - 10929 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 10930 - 10948 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 10949 - 10953 [Qed.] 0.018 secs (0.018u,0.s) -Chars 10955 - 11121 [Lemma~trace_refine_ret_inv_l~:...] 0. secs (0.u,0.s) -Chars 11122 - 11128 [Proof.] 0. secs (0.u,0.s) -Chars 11131 - 11138 [intros.] 0. secs (0.u,0.s) -Chars 11139 - 11144 [step.] 0.001 secs (0.001u,0.s) -Chars 11145 - 11155 [step~in~H.] 0. secs (0.u,0.s) -Chars 11156 - 11172 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 11175 - 11204 [dependent~induction~H;~subst.] 0.024 secs (0.024u,0.s) -Chars 11207 - 11208 [-] 0. secs (0.u,0.s) -Chars 11209 - 11222 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 11223 - 11235 [constructor.] 0. secs (0.u,0.s) -Chars 11236 - 11241 [auto.] 0. secs (0.u,0.s) -Chars 11244 - 11245 [-] 0. secs (0.u,0.s) -Chars 11246 - 11259 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 11260 - 11278 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 11279 - 11283 [Qed.] 0.019 secs (0.019u,0.s) -Chars 11285 - 11525 [Lemma~trace_refine_vis_inv~:~~...] 0. secs (0.u,0.s) -Chars 11526 - 11532 [Proof.] 0. secs (0.u,0.s) -Chars 11535 - 11552 [intros~E~R~A~e~a.] 0. secs (0.u,0.s) -Chars 11553 - 11560 [intros.] 0. secs (0.u,0.s) -Chars 11563 - 11572 [red~in~H.] 0. secs (0.u,0.s) -Chars 11573 - 11577 [red.] 0. secs (0.u,0.s) -Chars 11578 - 11588 [step~in~H.] 0. secs (0.u,0.s) -Chars 11589 - 11605 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 11606 - 11612 [inv~H.] 0.008 secs (0.008u,0.s) -Chars 11613 - 11626 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 11629 - 11635 [subst.] 0. secs (0.u,0.s) -Chars 11638 - 11703 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) -Chars 11704 - 11708 [Qed.] 0.005 secs (0.005u,0.s) -Chars 11710 - 11924 [Lemma~trace_refine_vis_add~:~~...] 0. secs (0.u,0.s) -Chars 11925 - 11931 [Proof.] 0. secs (0.u,0.s) -Chars 11934 - 11941 [intros.] 0. secs (0.u,0.s) -Chars 11942 - 11947 [step.] 0. secs (0.u,0.s) -Chars 11948 - 11978 [constructor;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 11981 - 11988 [intros.] 0. secs (0.u,0.s) -Chars 11989 - 11996 [inv~H0.] 0.005 secs (0.005u,0.s) -Chars 11997 - 12010 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 12013 - 12019 [subst.] 0. secs (0.u,0.s) -Chars 12020 - 12025 [auto.] 0. secs (0.u,0.s) -Chars 12026 - 12030 [Qed.] 0.004 secs (0.004u,0.s) -Chars 12032 - 12167 [Lemma~event_ans_constr~:~~~for...] 0. secs (0.u,0.s) -Chars 12168 - 12174 [Proof.] 0. secs (0.u,0.s) -Chars 12177 - 12184 [intros.] 0. secs (0.u,0.s) -Chars 12187 - 12239 [destruct~(classic_empty~R)~as~...] 0. secs (0.u,0.s) -Chars 12242 - 12243 [-] 0. secs (0.u,0.s) -Chars 12244 - 12256 [exists~unit.] 0. secs (0.u,0.s) -Chars 12257 - 12278 [exists~(evans~R~e~a).] 0. secs (0.u,0.s) -Chars 12279 - 12296 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 12299 - 12300 [-] 0. secs (0.u,0.s) -Chars 12301 - 12313 [exists~void.] 0. secs (0.u,0.s) -Chars 12314 - 12342 [exists~(evempty~R~Hempty~e).] 0. secs (0.u,0.s) -Chars 12343 - 12360 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 12361 - 12365 [Qed.] 0. secs (0.u,0.s) -Chars 12428 - 12448 [Section~Determinize.] 0. secs (0.u,0.s) -Chars 12450 - 12507 [Context~(classicT~:~forall~P~:...] 0. secs (0.u,0.s) -Chars 12509 - 12594 [CoFixpoint~determinize_~(E~:~T...] 0. secs (0.u,0.s) -Chars 12595 - 12601 [Proof.] 0. secs (0.u,0.s) -Chars 12604 - 12616 [destruct~ot.] 0. secs (0.u,0.s) -Chars 12619 - 12620 [-] 0. secs (0.u,0.s) -Chars 12621 - 12635 [apply~(Ret~r).] 0. secs (0.u,0.s) -Chars 12638 - 12639 [-] 0. secs (0.u,0.s) -Chars 12640 - 12685 [apply~(Tau~(determinize_~E~R~(...] 0. secs (0.u,0.s) -Chars 12688 - 12689 [-] 0. secs (0.u,0.s) -Chars 12690 - 12722 [destruct~(classicT~X)~as~[|~f].] 0. secs (0.u,0.s) -Chars 12727 - 12728 [+] 0. secs (0.u,0.s) -Chars 12729 - 12804 [apply~(Vis~(evans~X~e~x)~(fun~...] 0. secs (0.u,0.s) -Chars 12809 - 12810 [+] 0. secs (0.u,0.s) -Chars 12811 - 12921 [apply~~(Vis~(evempty~X~(fun~x~...] 0. secs (0.u,0.s) -Chars 12922 - 12930 [Defined.] 0. secs (0.u,0.s) -Chars 12932 - 13018 [Definition~determinize~{E}~{R}...] 0. secs (0.u,0.s) -Chars 13020 - 13036 [End~Determinize.] 0. secs (0.u,0.s) -Chars 13087 - 13204 [Lemma~itree_refine_nonempty~:~...] 0. secs (0.u,0.s) -Chars 13205 - 13211 [Proof.] 0. secs (0.u,0.s) -Chars 13214 - 13221 [intros.] 0. secs (0.u,0.s) -Chars 13222 - 13264 [destruct~classicT_inhabited~as...] 0. secs (0.u,0.s) -Chars 13267 - 13299 [exists~(determinize~classicT~t).] 0. secs (0.u,0.s) -Chars 13300 - 13323 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 13326 - 13345 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13349 - 13356 [intros.] 0. secs (0.u,0.s) -Chars 13357 - 13376 [unfold~determinize.] 0. secs (0.u,0.s) -Chars 13377 - 13390 [desobs~t~Hot.] 0. secs (0.u,0.s) -Chars 13393 - 13394 [-] 0. secs (0.u,0.s) -Chars 13395 - 13399 [cbn.] 0. secs (0.u,0.s) -Chars 13400 - 13405 [eret.] 0. secs (0.u,0.s) -Chars 13408 - 13409 [-] 0. secs (0.u,0.s) -Chars 13410 - 13414 [cbn.] 0. secs (0.u,0.s) -Chars 13415 - 13427 [constructor.] 0. secs (0.u,0.s) -Chars 13428 - 13438 [apply~CIH.] 0. secs (0.u,0.s) -Chars 13442 - 13443 [-] 0. secs (0.u,0.s) -Chars 13444 - 13459 [unfold~observe.] 0. secs (0.u,0.s) -Chars 13460 - 13464 [cbn.] 0. secs (0.u,0.s) -Chars 13465 - 13487 [destruct~(classicT~_).] 0. secs (0.u,0.s) -Chars 13492 - 13493 [+] 0. secs (0.u,0.s) -Chars 13494 - 13524 [constructor;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 13525 - 13532 [intros.] 0. secs (0.u,0.s) -Chars 13539 - 13551 [inversion~H.] 0.002 secs (0.002u,0.s) -Chars 13552 - 13565 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 13572 - 13578 [subst.] 0. secs (0.u,0.s) -Chars 13579 - 13589 [apply~CIH.] 0. secs (0.u,0.s) -Chars 13594 - 13595 [+] 0. secs (0.u,0.s) -Chars 13596 - 13625 [constructor;~auto~with~itree.] 0.001 secs (0.u,0.s) -Chars 13626 - 13633 [intros.] 0. secs (0.u,0.s) -Chars 13634 - 13648 [contradiction.] 0. secs (0.u,0.s) -Chars 13649 - 13653 [Qed.] 0.007 secs (0.007u,0.s) -Chars 13655 - 14377 [Lemma~refine_set_eq_to_eutt_vi...] 0.001 secs (0.001u,0.s) -Chars 14378 - 14384 [Proof.] 0. secs (0.u,0.s) -Chars 14387 - 14394 [intros.] 0. secs (0.u,0.s) -Chars 14397 - 14442 [destruct~(classic_empty~A)~as~...] 0. secs (0.u,0.s) -Chars 14445 - 14446 [-] 0. secs (0.u,0.s) -Chars 14447 - 14520 [specialize~trace_refine_vis_ad...] 0. secs (0.u,0.s) -Chars 14525 - 14557 [assert~(exists~b,~b~⊑~k~a).] 0. secs (0.u,0.s) -Chars 14562 - 14563 [{] 0. secs (0.u,0.s) -Chars 14564 - 14592 [apply~itree_refine_nonempty.] 0. secs (0.u,0.s) -Chars 14593 - 14594 [}] 0. secs (0.u,0.s) -Chars 14599 - 14621 [destruct~H~as~[b~Hbk].] 0. secs (0.u,0.s) -Chars 14622 - 14670 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) -Chars 14675 - 14697 [rewrite~<-~Ht1~in~Hbk.] 0.002 secs (0.002u,0.s) -Chars 14702 - 14726 [apply~H0~in~Hbk~as~Hbk0.] 0. secs (0.u,0.s) -Chars 14731 - 14750 [rewrite~Ht1~in~Hbk.] 0.002 secs (0.002u,0.s) -Chars 14751 - 14771 [rewrite~Ht2~in~Hbk0.] 0.002 secs (0.002u,0.s) -Chars 14776 - 14785 [sinv~Hbk.] 0.012 secs (0.012u,0.s) -Chars 14790 - 14800 [sinv~Hbk0.] 0.017 secs (0.017u,0.s) -Chars 14801 - 14814 [ddestruction.] 0.006 secs (0.006u,0.s) -Chars 14819 - 14825 [subst.] 0. secs (0.u,0.s) -Chars 14830 - 14843 [inversion~H8.] 0.001 secs (0.001u,0.s) -Chars 14844 - 14857 [ddestruction.] 0.003 secs (0.003u,0.s) -Chars 14862 - 14868 [subst.] 0. secs (0.u,0.s) -Chars 14869 - 14881 [constructor.] 0. secs (0.u,0.s) -Chars 14886 - 14893 [intros.] 0. secs (0.u,0.s) -Chars 14894 - 14912 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 14917 - 14924 [intros.] 0. secs (0.u,0.s) -Chars 14925 - 14950 [setoid_rewrite~Ht1~in~H0.] 0.017 secs (0.016u,0.s) -Chars 14951 - 14976 [setoid_rewrite~Ht2~in~H0.] 0.043 secs (0.043u,0.s) -Chars 14981 - 14995 [split;~intros.] 0. secs (0.u,0.s) -Chars 15000 - 15001 [+] 0. secs (0.u,0.s) -Chars 15002 - 15048 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) -Chars 15049 - 15063 [apply~H0~in~H.] 0. secs (0.u,0.s) -Chars 15070 - 15102 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) -Chars 15103 - 15108 [auto.] 0. secs (0.u,0.s) -Chars 15113 - 15114 [+] 0. secs (0.u,0.s) -Chars 15115 - 15161 [apply~trace_refine_vis_add~wit...] 0. secs (0.u,0.s) -Chars 15162 - 15176 [apply~H0~in~H.] 0. secs (0.u,0.s) -Chars 15183 - 15215 [apply~trace_refine_vis_inv~in~H.] 0. secs (0.u,0.s) -Chars 15216 - 15221 [auto.] 0. secs (0.u,0.s) -Chars 15224 - 15225 [-] 0. secs (0.u,0.s) -Chars 15226 - 15289 [set~(ke~:=~fun~v~:~void~=>~mat...] 0. secs (0.u,0.s) -Chars 15294 - 15329 [set~(b~:=~Vis~(evempty~A~Ha~e)...] 0. secs (0.u,0.s) -Chars 15334 - 15352 [assert~(b~⊑~t1).] 0. secs (0.u,0.s) -Chars 15357 - 15358 [{] 0. secs (0.u,0.s) -Chars 15365 - 15374 [unfold~b.] 0. secs (0.u,0.s) -Chars 15375 - 15387 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 15388 - 15393 [step.] 0. secs (0.u,0.s) -Chars 15394 - 15398 [cbn.] 0.001 secs (0.001u,0.s) -Chars 15405 - 15417 [constructor.] 0. secs (0.u,0.s) -Chars 15418 - 15419 [{] 0. secs (0.u,0.s) -Chars 15420 - 15430 [apply~ree.] 0. secs (0.u,0.s) -Chars 15431 - 15432 [}] 0. secs (0.u,0.s) -Chars 15433 - 15434 [{] 0. secs (0.u,0.s) -Chars 15435 - 15445 [intros~[].] 0. secs (0.u,0.s) -Chars 15446 - 15447 [}] 0. secs (0.u,0.s) -Chars 15452 - 15453 [}] 0. secs (0.u,0.s) -Chars 15458 - 15478 [apply~H0~in~H~as~H1.] 0. secs (0.u,0.s) -Chars 15479 - 15493 [unfold~b~in~*.] 0. secs (0.u,0.s) -Chars 15494 - 15502 [clear~b.] 0. secs (0.u,0.s) -Chars 15507 - 15524 [rewrite~Ht1~in~H.] 0.002 secs (0.002u,0.s) -Chars 15525 - 15543 [rewrite~Ht2~in~H1.] 0.002 secs (0.002u,0.s) -Chars 15548 - 15555 [sinv~H.] 0.011 secs (0.011u,0.s) -Chars 15556 - 15564 [sinv~H1.] 0.015 secs (0.015u,0.s) -Chars 15565 - 15578 [ddestruction.] 0.007 secs (0.007u,0.s) -Chars 15583 - 15589 [subst.] 0. secs (0.u,0.s) -Chars 15590 - 15603 [inversion~H6.] 0.001 secs (0.001u,0.s) -Chars 15604 - 15617 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 15622 - 15634 [constructor.] 0. secs (0.u,0.s) -Chars 15639 - 15646 [intros.] 0. secs (0.u,0.s) -Chars 15647 - 15658 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 15663 - 15670 [intros.] 0. secs (0.u,0.s) -Chars 15671 - 15696 [setoid_rewrite~Ht1~in~H0.] 0.016 secs (0.016u,0.s) -Chars 15697 - 15722 [setoid_rewrite~Ht2~in~H0.] 0.045 secs (0.045u,0.s) -Chars 15727 - 15756 [split;~intros;~contradiction.] 0. secs (0.u,0.s) -Chars 15757 - 15761 [Qed.] 0.037 secs (0.037u,0.s) -Chars 15763 - 15992 [Lemma~trace_refine_vis~:~~~for...] 0. secs (0.u,0.s) -Chars 15993 - 15999 [Proof.] 0. secs (0.u,0.s) -Chars 16002 - 16009 [intros.] 0. secs (0.u,0.s) -Chars 16010 - 16020 [step~in~H.] 0. secs (0.u,0.s) -Chars 16021 - 16037 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 16041 - 16063 [dependent~induction~H.] 0.031 secs (0.031u,0.s) -Chars 16066 - 16067 [-] 0. secs (0.u,0.s) -Chars 16068 - 16078 [exists~A0.] 0. secs (0.u,0.s) -Chars 16079 - 16089 [exists~e1.] 0. secs (0.u,0.s) -Chars 16090 - 16100 [exists~k1.] 0. secs (0.u,0.s) -Chars 16105 - 16136 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16137 - 16156 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) -Chars 16161 - 16172 [rewrite~Hb.] 0.004 secs (0.003u,0.s) -Chars 16173 - 16185 [reflexivity.] 0. secs (0.u,0.s) -Chars 16188 - 16189 [-] 0. secs (0.u,0.s) -Chars 16190 - 16296 [enough~~(exists~(X~:~Type)~(e0...] 0. secs (0.u,0.s) -Chars 16301 - 16302 [{] 0. secs (0.u,0.s) -Chars 16309 - 16345 [destruct~H0~as~[X~[e0~[k0~Ht1]]].] 0. secs (0.u,0.s) -Chars 16352 - 16361 [exists~X.] 0. secs (0.u,0.s) -Chars 16362 - 16372 [exists~e0.] 0. secs (0.u,0.s) -Chars 16373 - 16383 [exists~k0.] 0. secs (0.u,0.s) -Chars 16390 - 16421 [specialize~(itree_eta~b)~as~Hb.] 0. secs (0.u,0.s) -Chars 16422 - 16441 [rewrite~<-~x~in~Hb.] 0. secs (0.u,0.s) -Chars 16442 - 16453 [rewrite~Hb.] 0.001 secs (0.001u,0.s) -Chars 16460 - 16477 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 16478 - 16483 [auto.] 0. secs (0.u,0.s) -Chars 16488 - 16489 [}] 0. secs (0.u,0.s) -Chars 16494 - 16516 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 16517 - 16521 [Qed.] 0.026 secs (0.026u,0.s) -Chars 16523 - 16769 [Lemma~trace_refine_vis_l~:~~~f...] 0. secs (0.u,0.s) -Chars 16770 - 16776 [Proof.] 0. secs (0.u,0.s) -Chars 16779 - 16786 [intros.] 0. secs (0.u,0.s) -Chars 16787 - 16797 [step~in~H.] 0. secs (0.u,0.s) -Chars 16798 - 16814 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 16818 - 16840 [dependent~induction~H.] 0.028 secs (0.028u,0.s) -Chars 16843 - 16844 [-] 0. secs (0.u,0.s) -Chars 16845 - 16854 [exists~B.] 0. secs (0.u,0.s) -Chars 16855 - 16865 [exists~e2.] 0. secs (0.u,0.s) -Chars 16867 - 16877 [exists~k2.] 0. secs (0.u,0.s) -Chars 16878 - 16909 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 16914 - 16933 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 16934 - 16945 [rewrite~Ht.] 0. secs (0.u,0.s) -Chars 16946 - 16958 [reflexivity.] 0. secs (0.u,0.s) -Chars 16961 - 16962 [-] 0. secs (0.u,0.s) -Chars 16963 - 16981 [assert~(t2~≈~t).] 0. secs (0.u,0.s) -Chars 16986 - 16987 [{] 0. secs (0.u,0.s) -Chars 16994 - 17019 [specialize~(itree_eta~t).] 0. secs (0.u,0.s) -Chars 17020 - 17033 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 17034 - 17041 [intros.] 0. secs (0.u,0.s) -Chars 17048 - 17059 [rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 17060 - 17077 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 17078 - 17090 [reflexivity.] 0. secs (0.u,0.s) -Chars 17095 - 17096 [}] 0. secs (0.u,0.s) -Chars 17101 - 17122 [setoid_rewrite~~<-~H0.] 0.005 secs (0.005u,0.s) -Chars 17123 - 17145 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 17146 - 17150 [Qed.] 0.022 secs (0.022u,0.s) -Chars 17152 - 17357 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) -Chars 17358 - 17364 [Proof.] 0. secs (0.u,0.s) -Chars 17367 - 17374 [intros.] 0. secs (0.u,0.s) -Chars 17375 - 17387 [induction~H.] 0. secs (0.u,0.s) -Chars 17390 - 17391 [-] 0. secs (0.u,0.s) -Chars 17392 - 17407 [exists~(Ret~r).] 0. secs (0.u,0.s) -Chars 17408 - 17418 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 17419 - 17425 [split.] 0. secs (0.u,0.s) -Chars 17430 - 17431 [+] 0. secs (0.u,0.s) -Chars 17432 - 17444 [constructor.] 0. secs (0.u,0.s) -Chars 17445 - 17457 [reflexivity.] 0. secs (0.u,0.s) -Chars 17462 - 17463 [+] 0. secs (0.u,0.s) -Chars 17464 - 17487 [apply~trace_refine_ret.] 0. secs (0.u,0.s) -Chars 17490 - 17491 [-] 0. secs (0.u,0.s) -Chars 17492 - 17539 [destruct~IHmay_converge~as~[br...] 0. secs (0.u,0.s) -Chars 17544 - 17587 [exists~(Vis~(evans~B~e~b)~(fun...] 0. secs (0.u,0.s) -Chars 17588 - 17594 [split.] 0. secs (0.u,0.s) -Chars 17599 - 17600 [+] 0. secs (0.u,0.s) -Chars 17601 - 17634 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) -Chars 17635 - 17641 [eauto.] 0. secs (0.u,0.s) -Chars 17642 - 17651 [Unshelve.] 0. secs (0.u,0.s) -Chars 17652 - 17661 [exact~tt.] 0. secs (0.u,0.s) -Chars 17666 - 17667 [+] 0. secs (0.u,0.s) -Chars 17668 - 17678 [rewrite~H.] 0.002 secs (0.002u,0.s) -Chars 17679 - 17706 [apply~trace_refine_vis_add.] 0. secs (0.u,0.s) -Chars 17707 - 17712 [auto.] 0. secs (0.u,0.s) -Chars 17713 - 17717 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17719 - 17925 [Lemma~trace_refine_may_converg...] 0. secs (0.u,0.s) -Chars 17926 - 17932 [Proof.] 0. secs (0.u,0.s) -Chars 17935 - 17942 [intros.] 0. secs (0.u,0.s) -Chars 17943 - 17966 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 17967 - 17987 [induction~H;~intros.] 0. secs (0.u,0.s) -Chars 17990 - 17991 [-] 0. secs (0.u,0.s) -Chars 17992 - 18008 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) -Chars 18009 - 18044 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 18049 - 18060 [rewrite~H0.] 0.003 secs (0.003u,0.s) -Chars 18061 - 18073 [constructor.] 0. secs (0.u,0.s) -Chars 18074 - 18086 [reflexivity.] 0. secs (0.u,0.s) -Chars 18089 - 18090 [-] 0. secs (0.u,0.s) -Chars 18091 - 18107 [rewrite~H~in~H1.] 0.002 secs (0.002u,0.s) -Chars 18108 - 18146 [apply~trace_refine_vis_l~in~H1...] 0. secs (0.u,0.s) -Chars 18151 - 18187 [destruct~Ht0~as~[X~[e0~[k0~Ht0...] 0. secs (0.u,0.s) -Chars 18192 - 18210 [rewrite~Ht0~in~H1.] 0.002 secs (0.002u,0.s) -Chars 18211 - 18219 [sinv~H1.] 0.01 secs (0.01u,0.s) -Chars 18220 - 18226 [subst.] 0. secs (0.u,0.s) -Chars 18231 - 18244 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 18245 - 18251 [subst.] 0. secs (0.u,0.s) -Chars 18252 - 18264 [rewrite~Ht0.] 0.003 secs (0.003u,0.s) -Chars 18269 - 18329 [inversion~H4;~subst;~ddestruct...] 0.006 secs (0.006u,0.s) -Chars 18334 - 18367 [eapply~conv_vis;~try~reflexivity.] 0. secs (0.u,0.s) -Chars 18368 - 18377 [Unshelve.] 0. secs (0.u,0.s) -Chars 18378 - 18390 [2:~exact~a.] 0. secs (0.u,0.s) -Chars 18395 - 18416 [apply~IHmay_converge.] 0. secs (0.u,0.s) -Chars 18422 - 18443 [specialize~(H9~tt~a).] 0. secs (0.u,0.s) -Chars 18444 - 18493 [assert~(RAnsRef~E~unit~X~(evan...] 0. secs (0.u,0.s) -Chars 18498 - 18510 [constructor.] 0. secs (0.u,0.s) -Chars 18511 - 18526 [apply~H9~in~H1.] 0. secs (0.u,0.s) -Chars 18527 - 18538 [destruct~b.] 0. secs (0.u,0.s) -Chars 18539 - 18544 [auto.] 0. secs (0.u,0.s) -Chars 18545 - 18549 [Qed.] 0.01 secs (0.01u,0.s) -Chars 18551 - 18740 [Lemma~trace_refine_all_infinit...] 0. secs (0.u,0.s) -Chars 18741 - 18747 [Proof.] 0. secs (0.u,0.s) -Chars 18750 - 18761 [intros~E~R.] 0. secs (0.u,0.s) -Chars 18762 - 18788 [unfold~all_infinite~at~-~1.] 0. secs (0.u,0.s) -Chars 18792 - 18810 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 18814 - 18821 [intros.] 0. secs (0.u,0.s) -Chars 18822 - 18832 [step~in~H.] 0. secs (0.u,0.s) -Chars 18833 - 18844 [step~in~H0.] 0. secs (0.u,0.s) -Chars 18845 - 18877 [repeat~red~in~H,~H0;~repeat~red.] 0. secs (0.u,0.s) -Chars 18883 - 18906 [dependent~induction~H0.] 0.032 secs (0.032u,0.s) -Chars 18909 - 18910 [-] 0. secs (0.u,0.s) -Chars 18911 - 18929 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 18930 - 18936 [inv~H.] 0. secs (0.u,0.s) -Chars 18940 - 18941 [-] 0. secs (0.u,0.s) -Chars 18942 - 18956 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 18957 - 18969 [constructor.] 0. secs (0.u,0.s) -Chars 18970 - 18988 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 18993 - 19011 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 19012 - 19018 [inv~H.] 0. secs (0.u,0.s) -Chars 19021 - 19022 [-] 0. secs (0.u,0.s) -Chars 19023 - 19037 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 19038 - 19056 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 19057 - 19069 [constructor.] 0. secs (0.u,0.s) -Chars 19070 - 19076 [inv~H.] 0.006 secs (0.006u,0.s) -Chars 19081 - 19094 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 19095 - 19101 [subst.] 0. secs (0.u,0.s) -Chars 19102 - 19109 [intros.] 0. secs (0.u,0.s) -Chars 19115 - 19162 [inv~H1;~subst;~ddestruction;~t...] 0.012 secs (0.012u,0.s) -Chars 19163 - 19175 [destruct~b0.] 0. secs (0.u,0.s) -Chars 19180 - 19205 [eapply~CIH;~try~apply~H3.] 0. secs (0.u,0.s) -Chars 19210 - 19231 [specialize~(H0~tt~a).] 0. secs (0.u,0.s) -Chars 19232 - 19279 [assert~(RAnsRef~_~_~_~(evans~B...] 0. secs (0.u,0.s) -Chars 19284 - 19296 [constructor.] 0. secs (0.u,0.s) -Chars 19297 - 19311 [apply~H0~in~H.] 0. secs (0.u,0.s) -Chars 19312 - 19318 [eauto.] 0. secs (0.u,0.s) -Chars 19321 - 19322 [-] 0. secs (0.u,0.s) -Chars 19323 - 19336 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 19337 - 19349 [constructor.] 0. secs (0.u,0.s) -Chars 19350 - 19368 [apply~(b_chain~c).] 0. secs (0.u,0.s) -Chars 19369 - 19391 [eapply~IHruttF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 19394 - 19395 [-] 0. secs (0.u,0.s) -Chars 19396 - 19417 [eapply~IHruttF;~auto.] 0.001 secs (0.001u,0.s) -Chars 19418 - 19436 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 19437 - 19443 [inv~H.] 0.005 secs (0.005u,0.s) -Chars 19448 - 19463 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 19465 - 19469 [Qed.] 0.036 secs (0.036u,0.s) -Chars 19471 - 19756 [Lemma~trace_refine_converge_bi...] 0. secs (0.u,0.s) -Chars 19757 - 19763 [Proof.] 0. secs (0.u,0.s) -Chars 19766 - 19773 [intros.] 0. secs (0.u,0.s) -Chars 19774 - 19797 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 19798 - 19828 [dependent~induction~H;~intros.] 0. secs (0.u,0.s) -Chars 19831 - 19832 [-] 0. secs (0.u,0.s) -Chars 19833 - 19843 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 19844 - 19860 [rewrite~H~in~H0.] 0.002 secs (0.002u,0.s) -Chars 19861 - 19896 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 19901 - 19912 [rewrite~H0.] 0.003 secs (0.003u,0.s) -Chars 19913 - 19939 [repeat~rewrite~bind_ret_l.] 0.006 secs (0.005u,0.s) -Chars 19940 - 19945 [auto.] 0. secs (0.u,0.s) -Chars 19948 - 19949 [-] 0. secs (0.u,0.s) -Chars 19950 - 19981 [specialize~(IHmay_converge~H1).] 0. secs (0.u,0.s) -Chars 19986 - 20002 [rewrite~H~in~H2.] 0.002 secs (0.002u,0.s) -Chars 20003 - 20040 [apply~trace_refine_vis_l~in~H2...] 0. secs (0.u,0.s) -Chars 20045 - 20079 [destruct~Ht~as~[X~[e0~[k0~Ht]]].] 0. secs (0.u,0.s) -Chars 20084 - 20101 [rewrite~Ht~in~H2.] 0.002 secs (0.002u,0.s) -Chars 20102 - 20113 [step~in~H2.] 0. secs (0.u,0.s) -Chars 20114 - 20131 [repeat~red~in~H2.] 0. secs (0.u,0.s) -Chars 20132 - 20139 [inv~H2.] 0.008 secs (0.008u,0.s) -Chars 20145 - 20158 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 20159 - 20165 [subst.] 0. secs (0.u,0.s) -Chars 20170 - 20214 [inversion~H5;~subst;~ddestruct...] 0.01 secs (0.01u,0.s) -Chars 20220 - 20230 [rewrite~H.] 0.004 secs (0.003u,0.s) -Chars 20231 - 20242 [rewrite~Ht.] 0.003 secs (0.003u,0.s) -Chars 20247 - 20252 [step.] 0. secs (0.u,0.s) -Chars 20253 - 20264 [repeat~red.] 0. secs (0.u,0.s) -Chars 20265 - 20269 [cbn.] 0. secs (0.u,0.s) -Chars 20270 - 20288 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 20293 - 20300 [intros.] 0. secs (0.u,0.s) -Chars 20301 - 20317 [apply~H10~in~H2.] 0. secs (0.u,0.s) -Chars 20322 - 20334 [destruct~a0.] 0. secs (0.u,0.s) -Chars 20335 - 20346 [destruct~b.] 0.001 secs (0.001u,0.s) -Chars 20347 - 20368 [apply~IHmay_converge.] 0. secs (0.u,0.s) -Chars 20369 - 20374 [auto.] 0. secs (0.u,0.s) -Chars 20375 - 20379 [Qed.] 0.014 secs (0.014u,0.s) -Chars 20381 - 20639 [Lemma~trace_refine_diverge_bin...] 0. secs (0.u,0.s) -Chars 20640 - 20646 [Proof.] 0. secs (0.u,0.s) -Chars 20649 - 20670 [intros~E~R~S~b~t~f~g.] 0. secs (0.u,0.s) -Chars 20671 - 20694 [generalize~dependent~b.] 0. secs (0.u,0.s) -Chars 20695 - 20718 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 20721 - 20725 [red.] 0. secs (0.u,0.s) -Chars 20726 - 20745 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20746 - 20753 [intros.] 0. secs (0.u,0.s) -Chars 20756 - 20767 [step~in~H0.] 0. secs (0.u,0.s) -Chars 20771 - 20781 [step~in~H.] 0. secs (0.u,0.s) -Chars 20782 - 20802 [repeat~red~in~H0,~H.] 0. secs (0.u,0.s) -Chars 20806 - 20829 [dependent~induction~H0.] 0.049 secs (0.048u,0.s) -Chars 20832 - 20833 [-] 0. secs (0.u,0.s) -Chars 20834 - 20853 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) -Chars 20854 - 20860 [inv~H.] 0. secs (0.u,0.s) -Chars 20863 - 20864 [-] 0. secs (0.u,0.s) -Chars 20865 - 20880 [unfold~observe.] 0. secs (0.u,0.s) -Chars 20881 - 20885 [cbn.] 0. secs (0.u,0.s) -Chars 20886 - 20900 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 20901 - 20914 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 20919 - 20923 [cbn.] 0. secs (0.u,0.s) -Chars 20924 - 20936 [constructor.] 0. secs (0.u,0.s) -Chars 20937 - 20953 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 20958 - 20977 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) -Chars 20978 - 20984 [inv~H.] 0. secs (0.u,0.s) -Chars 20988 - 20989 [-] 0. secs (0.u,0.s) -Chars 20990 - 21005 [unfold~observe.] 0. secs (0.u,0.s) -Chars 21006 - 21010 [cbn.] 0. secs (0.u,0.s) -Chars 21011 - 21025 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 21026 - 21039 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 21040 - 21044 [cbn.] 0. secs (0.u,0.s) -Chars 21045 - 21063 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 21068 - 21075 [intros.] 0. secs (0.u,0.s) -Chars 21080 - 21099 [rewrite~<-~x0~in~H.] 0. secs (0.u,0.s) -Chars 21100 - 21106 [inv~H.] 0.014 secs (0.014u,0.s) -Chars 21107 - 21120 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 21121 - 21127 [subst.] 0. secs (0.u,0.s) -Chars 21133 - 21148 [apply~H0~in~H2.] 0. secs (0.u,0.s) -Chars 21149 - 21167 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 21168 - 21177 [apply~H4.] 0. secs (0.u,0.s) -Chars 21180 - 21181 [-] 0. secs (0.u,0.s) -Chars 21182 - 21202 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 21203 - 21207 [cbn.] 0. secs (0.u,0.s) -Chars 21208 - 21221 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 21222 - 21226 [cbn.] 0. secs (0.u,0.s) -Chars 21227 - 21239 [constructor.] 0. secs (0.u,0.s) -Chars 21244 - 21266 [eapply~IHruttF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 21267 - 21285 [rewrite~<-~x~in~H.] 0. secs (0.u,0.s) -Chars 21286 - 21292 [inv~H.] 0.006 secs (0.006u,0.s) -Chars 21293 - 21304 [now~unstep.] 0. secs (0.u,0.s) -Chars 21307 - 21308 [-] 0. secs (0.u,0.s) -Chars 21309 - 21329 [unfold~observe~at~2.] 0. secs (0.u,0.s) -Chars 21330 - 21334 [cbn.] 0. secs (0.u,0.s) -Chars 21335 - 21348 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 21349 - 21353 [cbn.] 0. secs (0.u,0.s) -Chars 21354 - 21366 [constructor.] 0. secs (0.u,0.s) -Chars 21371 - 21393 [eapply~IHruttF;~eauto.] 0.002 secs (0.002u,0.s) -Chars 21394 - 21398 [Qed.] 0.061 secs (0.06u,0.s) -Chars 21400 - 21539 [Lemma~refine_set_eq_to_eutt~:~...] 0. secs (0.u,0.s) -Chars 21540 - 21546 [Proof.] 0. secs (0.u,0.s) -Chars 21549 - 21560 [intros~E~R.] 0. secs (0.u,0.s) -Chars 21561 - 21580 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 21581 - 21588 [intros.] 0. secs (0.u,0.s) -Chars 21591 - 21620 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 21621 - 21650 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) -Chars 21653 - 21684 [destruct~(ot1);~destruct~(ot2).] 0.002 secs (0.002u,0.s) -Chars 21687 - 21815 [all:~~specialize~(itree_eta~t1...] 0.001 secs (0.001u,0.s) -Chars 21832 - 21833 [-] 0. secs (0.u,0.s) -Chars 21834 - 21865 [specialize~(H~(Ret~r0))~as~Hr0.] 0. secs (0.u,0.s) -Chars 21870 - 21889 [rewrite~Ht1~in~Hr0.] 0.017 secs (0.017u,0.s) -Chars 21890 - 21909 [rewrite~Ht2~in~Hr0.] 0.045 secs (0.045u,0.s) -Chars 21915 - 21938 [assert~(Ret~r0~⊑~t1).] 0. secs (0.u,0.s) -Chars 21943 - 21944 [{] 0. secs (0.u,0.s) -Chars 21945 - 21957 [rewrite~Ht1.] 0.003 secs (0.003u,0.s) -Chars 21958 - 21968 [apply~Hr0.] 0. secs (0.u,0.s) -Chars 21969 - 21974 [step.] 0. secs (0.u,0.s) -Chars 21975 - 21980 [eret.] 0. secs (0.u,0.s) -Chars 21981 - 21982 [}] 0. secs (0.u,0.s) -Chars 21987 - 22005 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) -Chars 22006 - 22014 [sinv~H0.] 0.004 secs (0.004u,0.s) -Chars 22033 - 22034 [-] 0. secs (0.u,0.s) -Chars 22035 - 22059 [setoid_rewrite~Ht2~in~H.] 0.042 secs (0.042u,0.s) -Chars 22064 - 22088 [specialize~(H~(Ret~r)).] 0. secs (0.u,0.s) -Chars 22093 - 22115 [rewrite~tau_eutt~in~H.] 0.001 secs (0.001u,0.s) -Chars 22116 - 22121 [taur.] 0. secs (0.u,0.s) -Chars 22127 - 22149 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) -Chars 22154 - 22155 [{] 0. secs (0.u,0.s) -Chars 22156 - 22168 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 22169 - 22174 [step.] 0. secs (0.u,0.s) -Chars 22175 - 22180 [eret.] 0. secs (0.u,0.s) -Chars 22181 - 22182 [}] 0. secs (0.u,0.s) -Chars 22187 - 22201 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 22202 - 22213 [step~in~H0.] 0. secs (0.u,0.s) -Chars 22214 - 22242 [repeat~red~in~H0;~cbn~in~H0.] 0. secs (0.u,0.s) -Chars 22247 - 22277 [clear~H~Ht1~Ht2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 22278 - 22301 [dependent~induction~H0.] 0.033 secs (0.033u,0.s) -Chars 22306 - 22307 [+] 0. secs (0.u,0.s) -Chars 22308 - 22321 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 22322 - 22327 [eret.] 0. secs (0.u,0.s) -Chars 22333 - 22334 [+] 0. secs (0.u,0.s) -Chars 22335 - 22348 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 22349 - 22360 [taur;~auto.] 0. secs (0.u,0.s) -Chars 22380 - 22381 [-] 0. secs (0.u,0.s) -Chars 22382 - 22390 [exfalso.] 0. secs (0.u,0.s) -Chars 22395 - 22417 [assert~(Ret~r~⊑~t1).] 0. secs (0.u,0.s) -Chars 22422 - 22423 [{] 0. secs (0.u,0.s) -Chars 22424 - 22436 [rewrite~Ht1.] 0.002 secs (0.002u,0.s) -Chars 22437 - 22442 [step.] 0. secs (0.u,0.s) -Chars 22443 - 22448 [eret.] 0. secs (0.u,0.s) -Chars 22449 - 22450 [}] 0. secs (0.u,0.s) -Chars 22455 - 22469 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 22470 - 22488 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) -Chars 22489 - 22497 [sinv~H0.] 0.001 secs (0.001u,0.s) -Chars 22515 - 22516 [-] 0. secs (0.u,0.s) -Chars 22517 - 22541 [setoid_rewrite~Ht1~in~H.] 0.019 secs (0.019u,0.s) -Chars 22542 - 22566 [setoid_rewrite~Ht2~in~H.] 0.044 secs (0.044u,0.s) -Chars 22571 - 22593 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) -Chars 22598 - 22599 [{] 0. secs (0.u,0.s) -Chars 22600 - 22612 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) -Chars 22613 - 22618 [step.] 0. secs (0.u,0.s) -Chars 22619 - 22624 [eret.] 0. secs (0.u,0.s) -Chars 22625 - 22626 [}] 0. secs (0.u,0.s) -Chars 22631 - 22649 [rewrite~Ht2~in~H0.] 0.002 secs (0.002u,0.s) -Chars 22650 - 22670 [apply~H~in~H0~as~H1.] 0. secs (0.u,0.s) -Chars 22671 - 22682 [step~in~H1.] 0. secs (0.u,0.s) -Chars 22688 - 22721 [clear~Heqot1~Heqot2~Ht1~Ht2~H~H0.] 0. secs (0.u,0.s) -Chars 22722 - 22739 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 22740 - 22749 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 22754 - 22759 [taul.] 0. secs (0.u,0.s) -Chars 22760 - 22767 [inv~H1.] 0.009 secs (0.009u,0.s) -Chars 22768 - 22806 [dependent~induction~H2;~intros...] 0.033 secs (0.032u,0.s) -Chars 22811 - 22812 [+] 0. secs (0.u,0.s) -Chars 22813 - 22826 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 22827 - 22832 [eret.] 0. secs (0.u,0.s) -Chars 22838 - 22839 [+] 0. secs (0.u,0.s) -Chars 22840 - 22853 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 22854 - 22865 [taul;~auto.] 0. secs (0.u,0.s) -Chars 22883 - 22884 [-] 0. secs (0.u,0.s) -Chars 22885 - 22897 [constructor.] 0. secs (0.u,0.s) -Chars 22898 - 22909 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 22915 - 22922 [intros.] 0. secs (0.u,0.s) -Chars 22927 - 22945 [assert~(t1~≈~t).] 0. secs (0.u,0.s) -Chars 22946 - 22947 [{] 0. secs (0.u,0.s) -Chars 22948 - 22960 [rewrite~Ht1.] 0. secs (0.u,0.s) -Chars 22961 - 22978 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 22979 - 22991 [reflexivity.] 0. secs (0.u,0.s) -Chars 22992 - 22993 [}] 0. secs (0.u,0.s) -Chars 22998 - 23017 [assert~(t2~≈~t0).] 0. secs (0.u,0.s) -Chars 23018 - 23019 [{] 0. secs (0.u,0.s) -Chars 23020 - 23032 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 23033 - 23050 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 23051 - 23063 [reflexivity.] 0. secs (0.u,0.s) -Chars 23064 - 23065 [}] 0. secs (0.u,0.s) -Chars 23070 - 23095 [now~rewrite~<-~H0,~<-~H1.] 0.004 secs (0.004u,0.s) -Chars 23113 - 23114 [-] 0. secs (0.u,0.s) -Chars 23115 - 23165 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 23170 - 23194 [apply~H~in~Hbt1~as~Hbt2.] 0. secs (0.u,0.s) -Chars 23195 - 23215 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 23220 - 23245 [rewrite~tau_eutt~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 23250 - 23270 [rewrite~Ht2~in~Hbt2.] 0.001 secs (0.001u,0.s) -Chars 23275 - 23312 [apply~trace_refine_vis~in~Hbt2...] 0. secs (0.u,0.s) -Chars 23317 - 23351 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) -Chars 23356 - 23375 [rewrite~Hb~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 23380 - 23399 [rewrite~Hb~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 23400 - 23411 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 23416 - 23434 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 23439 - 23463 [setoid_rewrite~Ht1~in~H.] 0.017 secs (0.016u,0.s) -Chars 23464 - 23493 [setoid_rewrite~tau_eutt~in~H.] 0.002 secs (0.002u,0.s) -Chars 23498 - 23518 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 23519 - 23532 [clear~Ht1~t1.] 0. secs (0.u,0.s) -Chars 23537 - 23550 [step~in~Hbt1.] 0. secs (0.u,0.s) -Chars 23551 - 23570 [repeat~red~in~Hbt1.] 0. secs (0.u,0.s) -Chars 23571 - 23580 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23585 - 23610 [dependent~induction~Hbt1.] 0.049 secs (0.049u,0.s) -Chars 23615 - 23616 [+] 0. secs (0.u,0.s) -Chars 23617 - 23630 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 23637 - 23668 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23669 - 23688 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 23695 - 23739 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) -Chars 23744 - 23745 [+] 0. secs (0.u,0.s) -Chars 23746 - 23759 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 23760 - 23778 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 23779 - 23800 [eapply~IHHbt1;~eauto.] 0.003 secs (0.003u,0.s) -Chars 23807 - 23825 [assert~(t0~≈~t).] 0. secs (0.u,0.s) -Chars 23832 - 23833 [{] 0. secs (0.u,0.s) -Chars 23842 - 23873 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 23874 - 23893 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 23894 - 23905 [rewrite~Ht.] 0.001 secs (0.001u,0.s) -Chars 23914 - 23931 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 23932 - 23944 [reflexivity.] 0. secs (0.u,0.s) -Chars 23951 - 23952 [}] 0. secs (0.u,0.s) -Chars 23959 - 23977 [setoid_rewrite~H0.] 0.002 secs (0.002u,0.s) -Chars 23978 - 23983 [auto.] 0. secs (0.u,0.s) -Chars 24000 - 24001 [-] 0. secs (0.u,0.s) -Chars 24002 - 24010 [exfalso.] 0. secs (0.u,0.s) -Chars 24015 - 24037 [assert~(Ret~r~⊑~t2).] 0. secs (0.u,0.s) -Chars 24042 - 24043 [{] 0. secs (0.u,0.s) -Chars 24044 - 24056 [rewrite~Ht2.] 0.002 secs (0.002u,0.s) -Chars 24057 - 24062 [step.] 0. secs (0.u,0.s) -Chars 24063 - 24068 [eret.] 0. secs (0.u,0.s) -Chars 24069 - 24070 [}] 0. secs (0.u,0.s) -Chars 24075 - 24089 [apply~H~in~H0.] 0. secs (0.u,0.s) -Chars 24090 - 24108 [rewrite~Ht1~in~H0.] 0.002 secs (0.002u,0.s) -Chars 24109 - 24117 [sinv~H0.] 0.001 secs (0.001u,0.s) -Chars 24134 - 24135 [-] 0. secs (0.u,0.s) -Chars 24136 - 24186 [specialize~(itree_refine_nonem...] 0. secs (0.u,0.s) -Chars 24191 - 24215 [apply~H~in~Hbt2~as~Hbt1.] 0. secs (0.u,0.s) -Chars 24216 - 24236 [rewrite~Ht1~in~Hbt1.] 0.002 secs (0.002u,0.s) -Chars 24241 - 24261 [rewrite~Ht2~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 24266 - 24291 [rewrite~tau_eutt~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 24296 - 24333 [apply~trace_refine_vis~in~Hbt1...] 0. secs (0.u,0.s) -Chars 24338 - 24372 [destruct~Hb~as~[Y~[e0~[k0~Hb]]].] 0. secs (0.u,0.s) -Chars 24377 - 24396 [rewrite~Hb~in~Hbt2.] 0.002 secs (0.002u,0.s) -Chars 24401 - 24420 [rewrite~Hb~in~Hbt1.] 0.004 secs (0.004u,0.s) -Chars 24421 - 24432 [clear~Hb~b.] 0. secs (0.u,0.s) -Chars 24437 - 24455 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 24460 - 24484 [setoid_rewrite~Ht2~in~H.] 0.043 secs (0.043u,0.s) -Chars 24485 - 24514 [setoid_rewrite~tau_eutt~in~H.] 0.001 secs (0.001u,0.s) -Chars 24519 - 24539 [clear~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 24540 - 24553 [clear~Ht2~t2.] 0. secs (0.u,0.s) -Chars 24558 - 24571 [step~in~Hbt2.] 0. secs (0.u,0.s) -Chars 24572 - 24591 [repeat~red~in~Hbt2.] 0. secs (0.u,0.s) -Chars 24592 - 24601 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 24606 - 24631 [dependent~induction~Hbt2.] 0.045 secs (0.045u,0.s) -Chars 24636 - 24637 [+] 0. secs (0.u,0.s) -Chars 24638 - 24651 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 24658 - 24689 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24690 - 24709 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 24716 - 24760 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) -Chars 24765 - 24766 [+] 0. secs (0.u,0.s) -Chars 24767 - 24780 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 24781 - 24799 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 24800 - 24821 [eapply~IHHbt2;~eauto.] 0.004 secs (0.003u,0.s) -Chars 24828 - 24846 [assert~(t2~≈~t).] 0. secs (0.u,0.s) -Chars 24853 - 24854 [{] 0. secs (0.u,0.s) -Chars 24863 - 24894 [specialize~(itree_eta~t)~as~Ht.] 0. secs (0.u,0.s) -Chars 24895 - 24914 [rewrite~<-~x~in~Ht.] 0. secs (0.u,0.s) -Chars 24915 - 24926 [rewrite~Ht.] 0.001 secs (0.001u,0.s) -Chars 24935 - 24952 [rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 24953 - 24965 [reflexivity.] 0. secs (0.u,0.s) -Chars 24972 - 24973 [}] 0. secs (0.u,0.s) -Chars 24980 - 24998 [setoid_rewrite~H0.] 0.003 secs (0.003u,0.s) -Chars 24999 - 25004 [auto.] 0. secs (0.u,0.s) -Chars 25023 - 25024 [-] 0. secs (0.u,0.s) -Chars 25025 - 25069 [eapply~refine_set_eq_to_eutt_v...] 0. secs (0.u,0.s) -Chars 25070 - 25074 [Qed.] 0.186 secs (0.184u,0.001s) -Chars 25076 - 25183 [Lemma~trace_set_complete~:~~~f...] 0. secs (0.u,0.s) -Chars 25184 - 25190 [Proof.] 0. secs (0.u,0.s) -Chars 25193 - 25200 [intros.] 0. secs (0.u,0.s) -Chars 25201 - 25254 [split;~intros;~try~apply~refin...] 0. secs (0.u,0.s) -Chars 25257 - 25267 [rewrite~H.] 0. secs (0.u,0.s) -Chars 25268 - 25280 [split;~auto.] 0. secs (0.u,0.s) -Chars 25281 - 25285 [Qed.] 0. secs (0.u,0.s) -Chars 25287 - 25614 [Lemma~trace_refine_bind_cont_i...] 0. secs (0.u,0.s) -Chars 25615 - 25621 [Proof.] 0. secs (0.u,0.s) -Chars 25624 - 25637 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 25638 - 25642 [red.] 0. secs (0.u,0.s) -Chars 25643 - 25661 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25662 - 25700 [intros~b~m~g~f~a~Hconv~Hrefb~H...] 0. secs (0.u,0.s) -Chars 25703 - 25727 [generalize~dependent~m.] 0. secs (0.u,0.s) -Chars 25730 - 25782 [dependent~induction~Hconv;~int...] 0. secs (0.u,0.s) -Chars 25785 - 25786 [-] 0. secs (0.u,0.s) -Chars 25787 - 25809 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) -Chars 25810 - 25841 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 25842 - 25861 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) -Chars 25866 - 25904 [apply~trace_refine_ret_inv_r~i...] 0. secs (0.u,0.s) -Chars 25905 - 25931 [rewrite~Hrefb~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 25936 - 25967 [rewrite~bind_ret_l~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 25968 - 25977 [now~step.] 0.001 secs (0.001u,0.s) -Chars 25981 - 25982 [-] 0. secs (0.u,0.s) -Chars 26106 - 26136 [destruct~e;~try~contradiction.] 0.001 secs (0.001u,0.s) -Chars 26137 - 26156 [rewrite~H~in~Hrefb.] 0.002 secs (0.002u,0.s) -Chars 26161 - 26183 [rewrite~H~in~Hrefbind.] 0.003 secs (0.003u,0.s) -Chars 26184 - 26213 [rewrite~bind_vis~in~Hrefbind.] 0.002 secs (0.002u,0.s) -Chars 26218 - 26260 [apply~trace_refine_vis_l~in~Hr...] 0. secs (0.u,0.s) -Chars 26261 - 26300 [destruct~Hvis~as~[X~[e'~[k'~Hv...] 0. secs (0.u,0.s) -Chars 26305 - 26330 [rewrite~Hvis~in~Hrefbind.] 0.003 secs (0.003u,0.s) -Chars 26331 - 26360 [rewrite~bind_vis~in~Hrefbind.] 0.003 secs (0.003u,0.s) -Chars 26365 - 26382 [step~in~Hrefbind.] 0. secs (0.u,0.s) -Chars 26383 - 26423 [repeat~red~in~Hrefbind;~cbn~in...] 0. secs (0.u,0.s) -Chars 26424 - 26437 [inv~Hrefbind.] 0.017 secs (0.017u,0.s) -Chars 26442 - 26455 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 26456 - 26463 [inv~H2.] 0.01 secs (0.01u,0.s) -Chars 26464 - 26484 [ddestruction;~subst.] 0.004 secs (0.004u,0.s) -Chars 26489 - 26511 [rewrite~Hvis~in~Hrefb.] 0.002 secs (0.002u,0.s) -Chars 26512 - 26526 [step~in~Hrefb.] 0. secs (0.u,0.s) -Chars 26527 - 26561 [repeat~red~in~Hrefb;~cbn~in~Hr...] 0. secs (0.u,0.s) -Chars 26562 - 26572 [inv~Hrefb.] 0.016 secs (0.016u,0.s) -Chars 26577 - 26590 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 26595 - 26680 [assert~(RAnsRef~E~unit~A~(evan...] 0. secs (0.u,0.s) -Chars 26685 - 26716 [specialize~(IHHconv~(k'~ans)).] 0. secs (0.u,0.s) -Chars 26717 - 26731 [apply~IHHconv.] 0. secs (0.u,0.s) -Chars 26736 - 26737 [+] 0. secs (0.u,0.s) -Chars 26738 - 26753 [apply~H8~in~H0.] 0. secs (0.u,0.s) -Chars 26754 - 26765 [destruct~b.] 0. secs (0.u,0.s) -Chars 26766 - 26771 [auto.] 0. secs (0.u,0.s) -Chars 26776 - 26777 [+] 0. secs (0.u,0.s) -Chars 26778 - 26793 [apply~H7~in~H0.] 0. secs (0.u,0.s) -Chars 26794 - 26805 [destruct~b.] 0. secs (0.u,0.s) -Chars 26806 - 26811 [auto.] 0. secs (0.u,0.s) -Chars 26812 - 26816 [Qed.] 0.037 secs (0.037u,0.s) -Chars 26818 - 27046 [Lemma~may_converge_two_list~:~...] 0. secs (0.u,0.s) -Chars 27047 - 27053 [Proof.] 0. secs (0.u,0.s) -Chars 27056 - 27063 [intros.] 0. secs (0.u,0.s) -Chars 27064 - 27090 [generalize~dependent~log'.] 0. secs (0.u,0.s) -Chars 27093 - 27120 [induction~log;~cbn;~intros.] 0. secs (0.u,0.s) -Chars 27123 - 27124 [-] 0. secs (0.u,0.s) -Chars 27125 - 27136 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 27137 - 27168 [setoid_rewrite~bind_ret_l~in~H.] 0.014 secs (0.014u,0.s) -Chars 27169 - 27179 [rewrite~H.] 0.005 secs (0.005u,0.s) -Chars 27184 - 27210 [apply~may_converge_append.] 0. secs (0.u,0.s) -Chars 27211 - 27239 [apply~finite_list_to_stream.] 0. secs (0.u,0.s) -Chars 27242 - 27243 [-] 0. secs (0.u,0.s) -Chars 27244 - 27338 [assert~~(Vis~a0~(fun~_~=>~ev_l...] 0. secs (0.u,0.s) -Chars 27343 - 27344 [{] 0. secs (0.u,0.s) -Chars 27345 - 27349 [cbn.] 0. secs (0.u,0.s) -Chars 27350 - 27362 [reflexivity.] 0. secs (0.u,0.s) -Chars 27363 - 27364 [}] 0. secs (0.u,0.s) -Chars 27369 - 27385 [rewrite~H0~in~H.] 0.013 secs (0.013u,0.s) -Chars 27390 - 27417 [destruct~log'~as~[|~h~t].] 0. secs (0.u,0.s) -Chars 27422 - 27423 [+] 0. secs (0.u,0.s) -Chars 27424 - 27455 [setoid_rewrite~bind_ret_l~in~H.] 0.02 secs (0.02u,0.s) -Chars 27456 - 27467 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 27468 - 27475 [sinv~H.] 0.002 secs (0.002u,0.s) -Chars 27481 - 27482 [+] 0. secs (0.u,0.s) -Chars 27483 - 27494 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 27495 - 27514 [unfold~append~in~H.] 0. secs (0.u,0.s) -Chars 27515 - 27544 [repeat~rewrite~bind_vis~in~H.] 0.035 secs (0.035u,0.s) -Chars 27545 - 27552 [sinv~H.] 0.006 secs (0.006u,0.s) -Chars 27559 - 27579 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 27586 - 27655 [assert~(ev_list_to_stream~log~...] 0. secs (0.u,0.s) -Chars 27662 - 27663 [{] 0. secs (0.u,0.s) -Chars 27664 - 27674 [apply~REL.] 0. secs (0.u,0.s) -Chars 27675 - 27684 [apply~tt.] 0. secs (0.u,0.s) -Chars 27685 - 27686 [}] 0. secs (0.u,0.s) -Chars 27693 - 27713 [eapply~IHlog;~eauto.] 0. secs (0.u,0.s) -Chars 27714 - 27718 [Qed.] 0.01 secs (0.01u,0.s) -Chars 27720 - 27933 [Lemma~all_infinite_bind_append...] 0. secs (0.u,0.s) -Chars 27934 - 27940 [Proof.] 0. secs (0.u,0.s) -Chars 27943 - 27966 [intros~E~A~log~b'~Hdiv.] 0. secs (0.u,0.s) -Chars 27967 - 27981 [induction~log.] 0. secs (0.u,0.s) -Chars 27984 - 27985 [-] 0. secs (0.u,0.s) -Chars 27986 - 27998 [cbn~in~Hdiv.] 0. secs (0.u,0.s) -Chars 27999 - 28033 [setoid_rewrite~bind_ret_l~in~H...] 0.001 secs (0.001u,0.s) -Chars 28034 - 28039 [auto.] 0. secs (0.u,0.s) -Chars 28042 - 28043 [-] 0. secs (0.u,0.s) -Chars 28044 - 28056 [apply~IHlog.] 0. secs (0.u,0.s) -Chars 28057 - 28071 [simpl~in~Hdiv.] 0. secs (0.u,0.s) -Chars 28072 - 28094 [unfold~append~in~Hdiv.] 0. secs (0.u,0.s) -Chars 28099 - 28124 [rewrite~bind_vis~in~Hdiv.] 0.001 secs (0.001u,0.s) -Chars 28125 - 28135 [sinv~Hdiv.] 0.003 secs (0.003u,0.s) -Chars 28136 - 28149 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 28150 - 28156 [subst.] 0. secs (0.u,0.s) -Chars 28157 - 28166 [apply~H0.] 0. secs (0.u,0.s) -Chars 28171 - 28180 [apply~tt.] 0. secs (0.u,0.s) -Chars 28181 - 28185 [Qed.] 0.003 secs (0.003u,0.s) diff --git a/extra/ITrace/ITracePreds.v.timing b/extra/ITrace/ITracePreds.v.timing deleted file mode 100644 index 230fda3a..00000000 --- a/extra/ITrace/ITracePreds.v.timing +++ /dev/null @@ -1,163 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 83 - 148 [From~ITree~Require~Import~Axio...] 0.157 secs (0.14u,0.016s) -Chars 150 - 259 [From~ITree.Extra~Require~Impor...] 0.044 secs (0.04u,0.004s) -Chars 261 - 275 [Import~Monads.] 0. secs (0.u,0.s) -Chars 276 - 297 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 298 - 327 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 380 - 839 [Variant~trace_forallF~{E~:~Typ...] 0.001 secs (0.001u,0.s) -Chars 841 - 891 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) -Chars 893 - 988 [Definition~trace_forall_~{E}~{...] 0. secs (0.u,0.s) -Chars 990 - 1076 [Lemma~trace_forall_mono~{E}~{R...] 0. secs (0.u,0.s) -Chars 1077 - 1083 [Proof.] 0. secs (0.u,0.s) -Chars 1086 - 1099 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1100 - 1110 [red~in~H0.] 0. secs (0.u,0.s) -Chars 1111 - 1115 [red.] 0. secs (0.u,0.s) -Chars 1116 - 1172 [induction~H0;~constructor;~int...] 0. secs (0.u,0.s) -Chars 1174 - 1178 [Qed.] 0. secs (0.u,0.s) -Chars 1180 - 1264 [Definition~trace_forall_mon~{E...] 0. secs (0.u,0.s) -Chars 1267 - 1340 [Definition~trace_forall~{E}~{R...] 0. secs (0.u,0.s) -Chars 1342 - 1597 [Lemma~trace_forall_proper_aux~...] 0. secs (0.u,0.s) -Chars 1598 - 1604 [Proof.] 0. secs (0.u,0.s) -Chars 1607 - 1624 [intros~E~R~PE~PR.] 0. secs (0.u,0.s) -Chars 1625 - 1644 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1645 - 1672 [intros~b1~b2~Heutt~Hforall.] 0. secs (0.u,0.s) -Chars 1675 - 1691 [step~in~Hforall.] 0. secs (0.u,0.s) -Chars 1694 - 1708 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 1709 - 1738 [induction~Heutt;~subst;~auto.] 0.001 secs (0.001u,0.s) -Chars 1742 - 1743 [-] 0. secs (0.u,0.s) -Chars 1744 - 1756 [inv~Hforall.] 0.001 secs (0.001u,0.s) -Chars 1757 - 1773 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 1776 - 1777 [-] 0. secs (0.u,0.s) -Chars 1778 - 1790 [inv~Hforall.] 0.001 secs (0.001u,0.s) -Chars 1792 - 1804 [constructor.] 0. secs (0.u,0.s) -Chars 1805 - 1823 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 1826 - 1827 [-] 0. secs (0.u,0.s) -Chars 1828 - 1840 [inv~Hforall.] 0.003 secs (0.003u,0.s) -Chars 1841 - 1854 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 1855 - 1861 [subst.] 0. secs (0.u,0.s) -Chars 1867 - 1885 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 1886 - 1893 [intros.] 0. secs (0.u,0.s) -Chars 1894 - 1905 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 1911 - 1921 [apply~REL.] 0. secs (0.u,0.s) -Chars 1927 - 1936 [apply~H3.] 0. secs (0.u,0.s) -Chars 1939 - 1940 [-] 0. secs (0.u,0.s) -Chars 1941 - 1955 [apply~IHHeutt.] 0. secs (0.u,0.s) -Chars 1956 - 1968 [inv~Hforall.] 0.04 secs (0.04u,0.s) -Chars 1969 - 1984 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 1987 - 1988 [-] 0. secs (0.u,0.s) -Chars 1989 - 2001 [constructor.] 0. secs (0.u,0.s) -Chars 2002 - 2013 [Utils.step.] 0. secs (0.u,0.s) -Chars 2014 - 2028 [apply~IHHeutt.] 0. secs (0.u,0.s) -Chars 2029 - 2034 [auto.] 0. secs (0.u,0.s) -Chars 2035 - 2039 [Qed.] 0.007 secs (0.007u,0.s) -Chars 2041 - 2150 [#[global]~Instance~trace_foral...] 0. secs (0.u,0.s) -Chars 2151 - 2157 [Proof.] 0. secs (0.u,0.s) -Chars 2160 - 2179 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) -Chars 2180 - 2194 [split;~intros.] 0. secs (0.u,0.s) -Chars 2197 - 2198 [-] 0. secs (0.u,0.s) -Chars 2199 - 2237 [eapply~trace_forall_proper_aux...] 0. secs (0.u,0.s) -Chars 2240 - 2241 [-] 0. secs (0.u,0.s) -Chars 2242 - 2260 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 2261 - 2299 [eapply~trace_forall_proper_aux...] 0. secs (0.u,0.s) -Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) -Chars 2306 - 2389 [Lemma~forall_spin~:~~~forall~E...] 0. secs (0.u,0.s) -Chars 2390 - 2396 [Proof.] 0. secs (0.u,0.s) -Chars 2399 - 2406 [intros.] 0. secs (0.u,0.s) -Chars 2407 - 2426 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2427 - 2431 [cbn.] 0. secs (0.u,0.s) -Chars 2432 - 2444 [constructor.] 0. secs (0.u,0.s) -Chars 2447 - 2452 [auto.] 0. secs (0.u,0.s) -Chars 2454 - 2458 [Qed.] 0. secs (0.u,0.s) -Chars 2460 - 3044 [Inductive~trace_inf_oftenF~{E~...] 0.001 secs (0.001u,0.s) -Chars 3046 - 3099 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) -Chars 3101 - 3196 [Definition~trace_inf_often_~{E...] 0. secs (0.u,0.s) -Chars 3198 - 3284 [Lemma~trace_inf_often_mono~{E}...] 0. secs (0.u,0.s) -Chars 3285 - 3291 [Proof.] 0. secs (0.u,0.s) -Chars 3294 - 3307 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3308 - 3318 [red~in~H0.] 0. secs (0.u,0.s) -Chars 3319 - 3323 [red.] 0. secs (0.u,0.s) -Chars 3324 - 3337 [induction~H0.] 0. secs (0.u,0.s) -Chars 3340 - 3361 [1-2:~now~constructor.] 0. secs (0.u,0.s) -Chars 3364 - 3384 [constructor~3;~auto.] 0. secs (0.u,0.s) -Chars 3385 - 3397 [now~apply~H.] 0. secs (0.u,0.s) -Chars 3399 - 3403 [Qed.] 0. secs (0.u,0.s) -Chars 3405 - 3489 [Definition~trace_inf_often_mon...] 0. secs (0.u,0.s) -Chars 3491 - 3564 [Definition~trace_inf_often~{E}...] 0. secs (0.u,0.s) -Chars 3566 - 4094 [Inductive~front_and_last~{E~:~...] 0.002 secs (0.002u,0.s) -Chars 4096 - 4352 [Lemma~fal_proper_aux~:~~~foral...] 0. secs (0.u,0.s) -Chars 4353 - 4359 [Proof.] 0. secs (0.u,0.s) -Chars 4362 - 4401 [intros~E~R~PEF~PEL~PR~b1~b2~He...] 0. secs (0.u,0.s) -Chars 4404 - 4428 [generalize~dependent~b2.] 0. secs (0.u,0.s) -Chars 4429 - 4452 [induction~Hfal;~intros.] 0. secs (0.u,0.s) -Chars 4455 - 4456 [-] 0. secs (0.u,0.s) -Chars 4457 - 4491 [eapply~front_and_last_base;~ea...] 0.001 secs (0.001u,0.s) -Chars 4496 - 4513 [rewrite~<-~Heutt.] 0.004 secs (0.004u,0.s) -Chars 4514 - 4519 [auto.] 0. secs (0.u,0.s) -Chars 4522 - 4523 [-] 0. secs (0.u,0.s) -Chars 4524 - 4558 [eapply~front_and_last_cons;~ea...] 0.001 secs (0.001u,0.s) -Chars 4559 - 4576 [rewrite~<-~Heutt.] 0. secs (0.u,0.s) -Chars 4577 - 4582 [auto.] 0. secs (0.u,0.s) -Chars 4583 - 4587 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4589 - 4714 [#[global]~Instance~front_and_l...] 0. secs (0.u,0.s) -Chars 4715 - 4721 [Proof.] 0. secs (0.u,0.s) -Chars 4724 - 4743 [intros~b1~b2~Heutt.] 0. secs (0.u,0.s) -Chars 4744 - 4758 [split;~intros.] 0. secs (0.u,0.s) -Chars 4761 - 4762 [-] 0. secs (0.u,0.s) -Chars 4763 - 4792 [eapply~fal_proper_aux;~eauto.] 0. secs (0.u,0.s) -Chars 4795 - 4796 [-] 0. secs (0.u,0.s) -Chars 4797 - 4815 [symmetry~in~Heutt.] 0. secs (0.u,0.s) -Chars 4816 - 4845 [eapply~fal_proper_aux;~eauto.] 0. secs (0.u,0.s) -Chars 4846 - 4850 [Qed.] 0. secs (0.u,0.s) -Chars 4852 - 4873 [Section~StateMachine.] 0. secs (0.u,0.s) -Chars 5158 - 5185 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 5188 - 5207 [Context~{R~:~Type}.] 0. secs (0.u,0.s) -Chars 5210 - 5279 [Context~(EvTrans~:~forall~A,~E...] 0. secs (0.u,0.s) -Chars 5282 - 5335 [Context~(RetTrans~:~forall~A,~...] 0. secs (0.u,0.s) -Chars 5339 - 5847 [Inductive~state_machineF~(PEv~...] 0.001 secs (0.001u,0.s) -Chars 5851 - 5892 [Hint~Constructors~state_machin...] 0. secs (0.u,0.s) -Chars 5896 - 5997 [Definition~state_machine_~F~PE...] 0. secs (0.u,0.s) -Chars 6001 - 6064 [Lemma~state_machine_mono~:~Pro...] 0. secs (0.u,0.s) -Chars 6067 - 6073 [Proof.] 0. secs (0.u,0.s) -Chars 6078 - 6086 [intros~!.] 0. secs (0.u,0.s) -Chars 6087 - 6091 [red.] 0. secs (0.u,0.s) -Chars 6092 - 6102 [red~in~H0.] 0. secs (0.u,0.s) -Chars 6103 - 6133 [induction~H0;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 6138 - 6156 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 6157 - 6169 [now~apply~H.] 0. secs (0.u,0.s) -Chars 6173 - 6177 [Qed.] 0. secs (0.u,0.s) -Chars 6181 - 6244 [Definition~state_machine_mon~:...] 0. secs (0.u,0.s) -Chars 6248 - 6300 [Definition~state_machine~:=~gf...] 0. secs (0.u,0.s) -Chars 6304 - 6451 [Lemma~state_machine_proper_aux...] 0. secs (0.u,0.s) -Chars 6454 - 6460 [Proof.] 0. secs (0.u,0.s) -Chars 6465 - 6484 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6485 - 6517 [intros~PEV~PREt~t1~t2~Heutt~Hsm.] 0. secs (0.u,0.s) -Chars 6523 - 6569 [step~in~Hsm;~try~apply~monoton...] 0. secs (0.u,0.s) -Chars 6574 - 6588 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 6593 - 6607 [induction~Hsm.] 0. secs (0.u,0.s) -Chars 6612 - 6613 [-] 0. secs (0.u,0.s) -Chars 6614 - 6639 [remember~(RetF~r)~as~ot1.] 0. secs (0.u,0.s) -Chars 6640 - 6698 [induction~Heutt;~subst;~auto~w...] 0.002 secs (0.002u,0.s) -Chars 6705 - 6754 [injection~Heqot1;~intros;~subs...] 0. secs (0.u,0.s) -Chars 6759 - 6760 [-] 0. secs (0.u,0.s) -Chars 6761 - 6773 [apply~IHHsm.] 0. secs (0.u,0.s) -Chars 6774 - 6781 [unstep.] 0.003 secs (0.003u,0.s) -Chars 6782 - 6816 [assert~(Tau~t~≈~t2)~by~now~step.] 0.005 secs (0.005u,0.s) -Chars 6824 - 6846 [rewrite~tau_eutt~in~H.] 0.013 secs (0.013u,0.s) -Chars 6847 - 6852 [auto.] 0. secs (0.u,0.s) -Chars 6857 - 6858 [-] 0. secs (0.u,0.s) -Chars 6859 - 6899 [remember~(VisF~(evans~A~e~a)~k...] 0. secs (0.u,0.s) -Chars 6900 - 6958 [induction~Heutt;~subst;~auto~w...] 0.003 secs (0.003u,0.s) -Chars 6965 - 6997 [injection~Heqot1;~intros;~subst.] 0. secs (0.u,0.s) -Chars 6998 - 7023 [dependent~destruction~H1.] 0.002 secs (0.002u,0.s) -Chars 7030 - 7036 [subst.] 0. secs (0.u,0.s) -Chars 7037 - 7055 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7056 - 7089 [eapply~CIH;~try~apply~REL;~eauto.] 0. secs (0.u,0.s) -Chars 7093 - 7097 [Qed.] 0.007 secs (0.007u,0.s) -Chars 7101 - 7210 [#[global]~Instance~state_machi...] 0. secs (0.u,0.s) -Chars 7213 - 7219 [Proof.] 0. secs (0.u,0.s) -Chars 7224 - 7243 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 7244 - 7288 [assert~(Heutt2~:~t2~≈~t1)~by~n...] 0. secs (0.u,0.s) -Chars 7294 - 7348 [split;~intros;~eapply~state_ma...] 0. secs (0.u,0.s) -Chars 7352 - 7356 [Qed.] 0. secs (0.u,0.s) -Chars 7358 - 7375 [End~StateMachine.] 0. secs (0.u,0.s) diff --git a/extra/ITrace/ITracePrefix.v.timing b/extra/ITrace/ITracePrefix.v.timing deleted file mode 100644 index 85714477..00000000 --- a/extra/ITrace/ITracePrefix.v.timing +++ /dev/null @@ -1,557 +0,0 @@ -Chars 0 - 43 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 45 - 81 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 84 - 203 [From~ITree~Require~Import~Axio...] 0.16 secs (0.143u,0.016s) -Chars 205 - 291 [From~ITree.Extra~Require~Impor...] 0.01 secs (0.008u,0.001s) -Chars 293 - 307 [Import~Monads.] 0. secs (0.u,0.s) -Chars 308 - 329 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 330 - 362 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 364 - 387 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 467 - 1393 [Inductive~trace_prefixF~{E~:~T...] 0.004 secs (0.003u,0.s) -Chars 1395 - 1445 [#[global]~Hint~Constructors~tr...] 0. secs (0.u,0.s) -Chars 1447 - 1563 [Definition~trace_prefix_~{E}~{...] 0. secs (0.u,0.s) -Chars 1565 - 1609 [#[global]~Hint~Unfold~trace_pr...] 0. secs (0.u,0.s) -Chars 1611 - 1689 [Lemma~trace_prefix_mono~{E}~{R...] 0. secs (0.u,0.s) -Chars 1690 - 1696 [Proof.] 0. secs (0.u,0.s) -Chars 1699 - 1712 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1713 - 1717 [red.] 0. secs (0.u,0.s) -Chars 1718 - 1728 [red~in~H0.] 0. secs (0.u,0.s) -Chars 1729 - 1789 [induction~H0;~eauto~with~itree...] 0.002 secs (0.002u,0.s) -Chars 1791 - 1795 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1797 - 1873 [Definition~trace_prefix_mon~{E...] 0. secs (0.u,0.s) -Chars 1875 - 1975 [Definition~trace_prefix~{E}~{R...] 0. secs (0.u,0.s) -Chars 1977 - 2170 [Lemma~prefix_vis~:~~~forall~E~...] 0. secs (0.u,0.s) -Chars 2171 - 2177 [Proof.] 0. secs (0.u,0.s) -Chars 2180 - 2209 [intros~E~R~S~A~e~ans~k~t~Hbp.] 0. secs (0.u,0.s) -Chars 2210 - 2222 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 2223 - 2232 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 2235 - 2259 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) -Chars 2262 - 2263 [-] 0. secs (0.u,0.s) -Chars 2264 - 2283 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 2284 - 2343 [enough~(exists~k',~bs~≈~Vis~(e...] 0. secs (0.u,0.s) -Chars 2348 - 2349 [+] 0. secs (0.u,0.s) -Chars 2350 - 2373 [destruct~H~as~[k'~Hk'].] 0. secs (0.u,0.s) -Chars 2374 - 2384 [exists~k'.] 0. secs (0.u,0.s) -Chars 2385 - 2395 [rewrite~x.] 0.002 secs (0.002u,0.s) -Chars 2396 - 2413 [rewrite~tau_eutt.] 0.035 secs (0.035u,0.s) -Chars 2414 - 2419 [auto.] 0. secs (0.u,0.s) -Chars 2424 - 2425 [+] 0. secs (0.u,0.s) -Chars 2426 - 2446 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 2449 - 2450 [-] 0. secs (0.u,0.s) -Chars 2451 - 2461 [exists~ks.] 0. secs (0.u,0.s) -Chars 2462 - 2481 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 2482 - 2492 [rewrite~x.] 0.001 secs (0.001u,0.s) -Chars 2493 - 2505 [reflexivity.] 0. secs (0.u,0.s) -Chars 2506 - 2510 [Qed.] 0.008 secs (0.008u,0.s) -Chars 2512 - 2608 [Lemma~trace_prefix_ret~:~~~for...] 0. secs (0.u,0.s) -Chars 2609 - 2615 [Proof.] 0. secs (0.u,0.s) -Chars 2618 - 2625 [intros.] 0. secs (0.u,0.s) -Chars 2626 - 2648 [remember~(go~ob)~as~b.] 0. secs (0.u,0.s) -Chars 2649 - 2673 [assert~(observe~b~=~ob).] 0. secs (0.u,0.s) -Chars 2676 - 2677 [{] 0. secs (0.u,0.s) -Chars 2678 - 2684 [subst.] 0. secs (0.u,0.s) -Chars 2685 - 2690 [auto.] 0. secs (0.u,0.s) -Chars 2691 - 2692 [}] 0. secs (0.u,0.s) -Chars 2695 - 2708 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 2709 - 2725 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 2726 - 2730 [Qed.] 0. secs (0.u,0.s) -Chars 2732 - 3373 [Lemma~trace_prefix_proper_aux_...] 0.001 secs (0.001u,0.s) -Chars 3374 - 3380 [Proof.] 0. secs (0.u,0.s) -Chars 3383 - 3423 [intros~E~S~R~t1~b2~Heutt~r~X~e...] 0. secs (0.u,0.s) -Chars 3426 - 3449 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) -Chars 3452 - 3453 [-] 0. secs (0.u,0.s) -Chars 3454 - 3477 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) -Chars 3478 - 3504 [dependent~induction~Heutt.] 0.025 secs (0.025u,0.s) -Chars 3509 - 3510 [+] 0. secs (0.u,0.s) -Chars 3511 - 3519 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 3520 - 3543 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 3548 - 3549 [+] 0. secs (0.u,0.s) -Chars 3550 - 3558 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 3559 - 3571 [constructor.] 0. secs (0.u,0.s) -Chars 3572 - 3594 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 3597 - 3598 [-] 0. secs (0.u,0.s) -Chars 3599 - 3622 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) -Chars 3623 - 3638 [3:~reflexivity.] 0. secs (0.u,0.s) -Chars 3639 - 3650 [all:~eauto.] 0. secs (0.u,0.s) -Chars 3656 - 3675 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 3676 - 3707 [assert~(t1~≈~b2)~by~now~step.] 0.001 secs (0.001u,0.s) -Chars 3712 - 3727 [rewrite~x~in~H.] 0.017 secs (0.017u,0.s) -Chars 3728 - 3750 [rewrite~tau_eutt~in~H.] 0.013 secs (0.013u,0.s) -Chars 3751 - 3765 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 3768 - 3769 [-] 0. secs (0.u,0.s) -Chars 3770 - 3792 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) -Chars 3793 - 3819 [dependent~induction~Heutt.] 0.028 secs (0.028u,0.s) -Chars 3824 - 3825 [+] 0. secs (0.u,0.s) -Chars 3826 - 3834 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 3835 - 3847 [constructor.] 0. secs (0.u,0.s) -Chars 3852 - 3853 [+] 0. secs (0.u,0.s) -Chars 3854 - 3862 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 3863 - 3875 [constructor.] 0. secs (0.u,0.s) -Chars 3876 - 3898 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 3901 - 3902 [-] 0. secs (0.u,0.s) -Chars 3903 - 3925 [rewrite~<-~x~in~Heutt.] 0. secs (0.u,0.s) -Chars 3926 - 3952 [dependent~induction~Heutt.] 0.033 secs (0.033u,0.s) -Chars 3957 - 3958 [+] 0. secs (0.u,0.s) -Chars 3959 - 3967 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 3968 - 3980 [constructor.] 0. secs (0.u,0.s) -Chars 3981 - 4010 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 4015 - 4016 [+] 0. secs (0.u,0.s) -Chars 4017 - 4025 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 4026 - 4038 [constructor.] 0. secs (0.u,0.s) -Chars 4039 - 4061 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 4062 - 4066 [Qed.] 0.065 secs (0.064u,0.s) -Chars 4068 - 4282 [Lemma~trace_prefix_tau_inv~:~~...] 0. secs (0.u,0.s) -Chars 4283 - 4289 [Proof.] 0. secs (0.u,0.s) -Chars 4292 - 4314 [intros~E~S~R~m1~t~Hbp.] 0. secs (0.u,0.s) -Chars 4317 - 4341 [dependent~induction~Hbp.] 0.009 secs (0.009u,0.s) -Chars 4344 - 4345 [-] 0. secs (0.u,0.s) -Chars 4346 - 4351 [auto.] 0. secs (0.u,0.s) -Chars 4354 - 4355 [-] 0. secs (0.u,0.s) -Chars 4356 - 4361 [step.] 0. secs (0.u,0.s) -Chars 4362 - 4374 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4375 - 4399 [dependent~induction~Hbp.] 0.006 secs (0.006u,0.s) -Chars 4404 - 4405 [+] 0. secs (0.u,0.s) -Chars 4406 - 4420 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 4421 - 4437 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 4442 - 4443 [+] 0. secs (0.u,0.s) -Chars 4444 - 4452 [simpobs.] 0. secs (0.u,0.s) -Chars 4453 - 4465 [constructor.] 0. secs (0.u,0.s) -Chars 4466 - 4480 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 4485 - 4486 [+] 0. secs (0.u,0.s) -Chars 4487 - 4495 [simpobs.] 0. secs (0.u,0.s) -Chars 4496 - 4508 [constructor.] 0. secs (0.u,0.s) -Chars 4509 - 4529 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 4534 - 4535 [+] 0. secs (0.u,0.s) -Chars 4536 - 4541 [auto.] 0. secs (0.u,0.s) -Chars 4544 - 4545 [-] 0. secs (0.u,0.s) -Chars 4546 - 4551 [step.] 0. secs (0.u,0.s) -Chars 4552 - 4564 [clear~IHHbp.] 0. secs (0.u,0.s) -Chars 4565 - 4589 [dependent~induction~Hbp.] 0.006 secs (0.006u,0.s) -Chars 4594 - 4595 [+] 0. secs (0.u,0.s) -Chars 4596 - 4604 [simpobs.] 0. secs (0.u,0.s) -Chars 4605 - 4617 [constructor.] 0. secs (0.u,0.s) -Chars 4618 - 4632 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 4637 - 4638 [+] 0. secs (0.u,0.s) -Chars 4639 - 4644 [auto.] 0. secs (0.u,0.s) -Chars 4649 - 4650 [+] 0. secs (0.u,0.s) -Chars 4651 - 4659 [simpobs.] 0. secs (0.u,0.s) -Chars 4660 - 4672 [constructor.] 0. secs (0.u,0.s) -Chars 4673 - 4693 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 4694 - 4698 [Qed.] 0.011 secs (0.011u,0.s) -Chars 4700 - 4840 [Lemma~trace_prefix_proper_l~:~...] 0. secs (0.u,0.s) -Chars 4841 - 4847 [Proof.] 0. secs (0.u,0.s) -Chars 4850 - 4863 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 4864 - 4883 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 4884 - 4909 [intros~b1~b2~b~Heutt~Hbp.] 0. secs (0.u,0.s) -Chars 4912 - 4926 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 4927 - 4939 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 4942 - 4968 [dependent~induction~Heutt.] 0.029 secs (0.028u,0.s) -Chars 4971 - 4972 [-] 0. secs (0.u,0.s) -Chars 4973 - 4981 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 4982 - 4994 [constructor.] 0. secs (0.u,0.s) -Chars 4997 - 4998 [-] 0. secs (0.u,0.s) -Chars 4999 - 5007 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5008 - 5019 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 5024 - 5056 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) -Chars 5061 - 5062 [+] 0. secs (0.u,0.s) -Chars 5063 - 5071 [inv~Hbp.] 0.01 secs (0.01u,0.s) -Chars 5072 - 5084 [constructor.] 0. secs (0.u,0.s) -Chars 5085 - 5109 [dependent~induction~H0.] 0.011 secs (0.011u,0.s) -Chars 5116 - 5117 [*] 0. secs (0.u,0.s) -Chars 5118 - 5138 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) -Chars 5139 - 5164 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5173 - 5189 [rewrite~x0~in~H.] 0.015 secs (0.015u,0.s) -Chars 5190 - 5214 [clear~x~x0~Heqb~CIH~REL.] 0. secs (0.u,0.s) -Chars 5223 - 5233 [step~in~H.] 0. secs (0.u,0.s) -Chars 5234 - 5243 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5244 - 5266 [dependent~induction~H.] 0.027 secs (0.027u,0.s) -Chars 5275 - 5277 [++] 0. secs (0.u,0.s) -Chars 5278 - 5286 [simpobs.] 0. secs (0.u,0.s) -Chars 5287 - 5310 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 5319 - 5321 [++] 0. secs (0.u,0.s) -Chars 5322 - 5330 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5331 - 5343 [constructor.] 0. secs (0.u,0.s) -Chars 5344 - 5366 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 5373 - 5374 [*] 0. secs (0.u,0.s) -Chars 5375 - 5398 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) -Chars 5399 - 5414 [5:~reflexivity.] 0. secs (0.u,0.s) -Chars 5415 - 5425 [all:~auto.] 0. secs (0.u,0.s) -Chars 5434 - 5453 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 5454 - 5479 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5488 - 5503 [rewrite~x~in~H.] 0.017 secs (0.017u,0.s) -Chars 5504 - 5526 [rewrite~tau_eutt~in~H.] 0.014 secs (0.014u,0.s) -Chars 5527 - 5532 [auto.] 0. secs (0.u,0.s) -Chars 5537 - 5538 [+] 0. secs (0.u,0.s) -Chars 5539 - 5551 [constructor.] 0. secs (0.u,0.s) -Chars 5552 - 5570 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 5571 - 5606 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) -Chars 5611 - 5612 [+] 0. secs (0.u,0.s) -Chars 5613 - 5625 [constructor.] 0. secs (0.u,0.s) -Chars 5626 - 5637 [clear~Heqb.] 0. secs (0.u,0.s) -Chars 5638 - 5646 [inv~Hbp.] 0.01 secs (0.01u,0.s) -Chars 5647 - 5670 [dependent~induction~H0.] 0.013 secs (0.013u,0.s) -Chars 5677 - 5678 [*] 0. secs (0.u,0.s) -Chars 5679 - 5699 [apply~simpobs~in~x0.] 0. secs (0.u,0.s) -Chars 5700 - 5725 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5734 - 5750 [rewrite~x0~in~H.] 0.014 secs (0.014u,0.s) -Chars 5751 - 5761 [step~in~H.] 0. secs (0.u,0.s) -Chars 5762 - 5771 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5780 - 5802 [dependent~induction~H.] 0.05 secs (0.049u,0.s) -Chars 5811 - 5813 [++] 0. secs (0.u,0.s) -Chars 5814 - 5822 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5823 - 5846 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 5855 - 5857 [++] 0. secs (0.u,0.s) -Chars 5858 - 5866 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 5867 - 5879 [constructor.] 0. secs (0.u,0.s) -Chars 5880 - 5916 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) -Chars 5929 - 5954 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 5966 - 5974 [sinv~x0.] 0.015 secs (0.014u,0.s) -Chars 5975 - 5998 [apply~simpobs~in~x,~H2.] 0. secs (0.u,0.s) -Chars 6012 - 6042 [rewrite~x,~H2,~tau_eutt~in~H0.] 0.037 secs (0.037u,0.s) -Chars 6055 - 6077 [now~rewrite~<-~H0,~H2.] 0.002 secs (0.002u,0.s) -Chars 6085 - 6086 [*] 0. secs (0.u,0.s) -Chars 6087 - 6110 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) -Chars 6111 - 6126 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 6127 - 6137 [all:~auto.] 0. secs (0.u,0.s) -Chars 6146 - 6171 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6172 - 6191 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6200 - 6215 [rewrite~x~in~H.] 0.015 secs (0.015u,0.s) -Chars 6216 - 6238 [rewrite~tau_eutt~in~H.] 0.014 secs (0.013u,0.s) -Chars 6239 - 6244 [auto.] 0. secs (0.u,0.s) -Chars 6251 - 6252 [*] 0. secs (0.u,0.s) -Chars 6253 - 6278 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6279 - 6298 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6307 - 6323 [rewrite~x~in~H0.] 0.014 secs (0.014u,0.s) -Chars 6332 - 6343 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6344 - 6353 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6362 - 6385 [dependent~induction~H0.] 0.041 secs (0.041u,0.s) -Chars 6394 - 6396 [++] 0. secs (0.u,0.s) -Chars 6397 - 6405 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 6406 - 6418 [constructor.] 0. secs (0.u,0.s) -Chars 6427 - 6429 [++] 0. secs (0.u,0.s) -Chars 6430 - 6438 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 6439 - 6451 [constructor.] 0. secs (0.u,0.s) -Chars 6452 - 6488 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) -Chars 6500 - 6525 [assert~(m1~≈~m2);~auto.] 0.001 secs (0.001u,0.s) -Chars 6537 - 6556 [apply~simpobs~in~x.] 0.001 secs (0.001u,0.s) -Chars 6557 - 6573 [rewrite~x~in~H1.] 0.022 secs (0.022u,0.s) -Chars 6574 - 6597 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) -Chars 6598 - 6603 [auto.] 0. secs (0.u,0.s) -Chars 6610 - 6611 [*] 0. secs (0.u,0.s) -Chars 6613 - 6632 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6633 - 6658 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6667 - 6683 [rewrite~x~in~H0.] 0.015 secs (0.015u,0.s) -Chars 6684 - 6695 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6696 - 6705 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6714 - 6737 [dependent~induction~H0.] 0.045 secs (0.044u,0.s) -Chars 6746 - 6748 [++] 0. secs (0.u,0.s) -Chars 6749 - 6757 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 6758 - 6770 [constructor.] 0. secs (0.u,0.s) -Chars 6771 - 6805 [eapply~CIH;~try~apply~REL0;~ea...] 0. secs (0.u,0.s) -Chars 6815 - 6817 [++] 0. secs (0.u,0.s) -Chars 6818 - 6826 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 6827 - 6839 [constructor.] 0. secs (0.u,0.s) -Chars 6840 - 6876 [eapply~IHeqitF;~try~apply~x0;~...] 0.004 secs (0.004u,0.s) -Chars 6888 - 6913 [assert~(m1~≈~m2);~auto.] 0. secs (0.u,0.s) -Chars 6925 - 6944 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 6945 - 6961 [rewrite~x~in~H1.] 0.025 secs (0.025u,0.s) -Chars 6962 - 6985 [rewrite~tau_eutt~in~H1.] 0. secs (0.u,0.s) -Chars 6986 - 6991 [auto.] 0. secs (0.u,0.s) -Chars 6994 - 6995 [-] 0. secs (0.u,0.s) -Chars 6996 - 7004 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 7005 - 7016 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 7022 - 7046 [dependent~induction~Hbp.] 0.012 secs (0.012u,0.s) -Chars 7051 - 7052 [+] 0. secs (0.u,0.s) -Chars 7053 - 7061 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 7062 - 7074 [constructor.] 0. secs (0.u,0.s) -Chars 7075 - 7095 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 7100 - 7101 [+] 0. secs (0.u,0.s) -Chars 7102 - 7110 [simpobs.] 0. secs (0.u,0.s) -Chars 7111 - 7123 [constructor.] 0. secs (0.u,0.s) -Chars 7128 - 7129 [+] 0. secs (0.u,0.s) -Chars 7130 - 7138 [simpobs.] 0. secs (0.u,0.s) -Chars 7140 - 7152 [constructor.] 0. secs (0.u,0.s) -Chars 7153 - 7197 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) -Chars 7200 - 7201 [-] 0. secs (0.u,0.s) -Chars 7202 - 7222 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) -Chars 7227 - 7259 [destruct~(observe~b)~eqn:Heqb.] 0. secs (0.u,0.s) -Chars 7264 - 7265 [+] 0. secs (0.u,0.s) -Chars 7266 - 7280 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7281 - 7289 [inv~Hbp.] 0.015 secs (0.015u,0.s) -Chars 7290 - 7303 [clear~Heqb~x.] 0. secs (0.u,0.s) -Chars 7310 - 7333 [dependent~induction~H0.] 0.009 secs (0.009u,0.s) -Chars 7340 - 7341 [*] 0. secs (0.u,0.s) -Chars 7342 - 7365 [rewrite~<-~x0~in~Heutt.] 0. secs (0.u,0.s) -Chars 7366 - 7381 [clear~CIH~x0~x.] 0. secs (0.u,0.s) -Chars 7390 - 7417 [dependent~induction~Heutt.] 0.031 secs (0.03u,0.s) -Chars 7426 - 7428 [++] 0. secs (0.u,0.s) -Chars 7429 - 7437 [simpobs.] 0. secs (0.u,0.s) -Chars 7438 - 7461 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 7470 - 7472 [++] 0. secs (0.u,0.s) -Chars 7473 - 7481 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 7482 - 7494 [constructor.] 0. secs (0.u,0.s) -Chars 7495 - 7517 [eapply~IHHeutt;~eauto.] 0.002 secs (0.002u,0.s) -Chars 7524 - 7525 [*] 0. secs (0.u,0.s) -Chars 7526 - 7549 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) -Chars 7550 - 7565 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 7566 - 7576 [all:~auto.] 0. secs (0.u,0.s) -Chars 7585 - 7616 [assert~(t1~≈~b2)~by~now~step.] 0.001 secs (0.001u,0.s) -Chars 7626 - 7645 [apply~simpobs~in~x.] 0. secs (0.u,0.s) -Chars 7646 - 7661 [rewrite~x~in~H.] 0.018 secs (0.017u,0.s) -Chars 7662 - 7684 [rewrite~tau_eutt~in~H.] 0.018 secs (0.018u,0.s) -Chars 7685 - 7699 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 7704 - 7705 [+] 0. secs (0.u,0.s) -Chars 7706 - 7718 [constructor.] 0. secs (0.u,0.s) -Chars 7719 - 7741 [eapply~IHHeutt;~eauto.] 0.003 secs (0.003u,0.s) -Chars 7742 - 7749 [unstep.] 0. secs (0.u,0.s) -Chars 7750 - 7785 [eapply~trace_prefix_tau_inv;~e...] 0. secs (0.u,0.s) -Chars 7790 - 7791 [+] 0. secs (0.u,0.s) -Chars 7792 - 7806 [clear~IHHeutt.] 0. secs (0.u,0.s) -Chars 7807 - 7815 [inv~Hbp.] 0.016 secs (0.016u,0.s) -Chars 7816 - 7858 [eapply~trace_prefix_proper_aux...] 0. secs (0.u,0.s) -Chars 7861 - 7862 [-] 0. secs (0.u,0.s) -Chars 7863 - 7871 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 7872 - 7884 [constructor.] 0. secs (0.u,0.s) -Chars 7885 - 7907 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 7908 - 7912 [Qed.] 0.221 secs (0.219u,0.001s) -Chars 7914 - 8190 [Lemma~trace_prefixF_tau_inv_r~...] 0. secs (0.u,0.s) -Chars 8191 - 8197 [Proof.] 0. secs (0.u,0.s) -Chars 8200 - 8222 [intros~E~S~R~t1~b~Hbp.] 0. secs (0.u,0.s) -Chars 8225 - 8250 [dependent~induction~Hbp.] 0.005 secs (0.005u,0.s) -Chars 8253 - 8254 [-] 0. secs (0.u,0.s) -Chars 8255 - 8269 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 8270 - 8293 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 8296 - 8297 [-] 0. secs (0.u,0.s) -Chars 8299 - 8307 [simpobs.] 0. secs (0.u,0.s) -Chars 8308 - 8320 [constructor.] 0. secs (0.u,0.s) -Chars 8321 - 8335 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 8338 - 8339 [-] 0. secs (0.u,0.s) -Chars 8340 - 8348 [simpobs.] 0. secs (0.u,0.s) -Chars 8349 - 8361 [constructor.] 0. secs (0.u,0.s) -Chars 8362 - 8382 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 8385 - 8386 [-] 0. secs (0.u,0.s) -Chars 8387 - 8392 [auto.] 0. secs (0.u,0.s) -Chars 8393 - 8397 [Qed.] 0.004 secs (0.004u,0.s) -Chars 8399 - 8938 [Lemma~trace_prefixF_vis_l~:~~~...] 0.001 secs (0.001u,0.s) -Chars 8939 - 8945 [Proof.] 0. secs (0.u,0.s) -Chars 8948 - 8986 [intros~E~S~R~m1~m2~REL~r~X~e~k...] 0. secs (0.u,0.s) -Chars 8989 - 9001 [step~in~REL.] 0. secs (0.u,0.s) -Chars 9004 - 9027 [dependent~induction~H1.] 0.013 secs (0.013u,0.s) -Chars 9030 - 9031 [-] 0. secs (0.u,0.s) -Chars 9032 - 9055 [eapply~IHtrace_prefixF.] 0. secs (0.u,0.s) -Chars 9056 - 9071 [4:~reflexivity.] 0. secs (0.u,0.s) -Chars 9072 - 9082 [all:~auto.] 0. secs (0.u,0.s) -Chars 9087 - 9107 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) -Chars 9112 - 9147 [assert~(Tau~bs~≈~m2)~by~now~step.] 0.001 secs (0.001u,0.s) -Chars 9153 - 9175 [rewrite~tau_eutt~in~H.] 0.018 secs (0.018u,0.s) -Chars 9176 - 9190 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 9193 - 9194 [-] 0. secs (0.u,0.s) -Chars 9195 - 9215 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) -Chars 9216 - 9240 [dependent~induction~REL.] 0.031 secs (0.031u,0.s) -Chars 9245 - 9246 [+] 0. secs (0.u,0.s) -Chars 9247 - 9255 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 9256 - 9268 [constructor.] 0. secs (0.u,0.s) -Chars 9273 - 9274 [+] 0. secs (0.u,0.s) -Chars 9275 - 9283 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 9284 - 9296 [constructor.] 0. secs (0.u,0.s) -Chars 9297 - 9317 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) -Chars 9320 - 9321 [-] 0. secs (0.u,0.s) -Chars 9323 - 9343 [rewrite~<-~x~in~REL.] 0. secs (0.u,0.s) -Chars 9344 - 9368 [dependent~induction~REL.] 0.033 secs (0.033u,0.s) -Chars 9373 - 9374 [+] 0. secs (0.u,0.s) -Chars 9375 - 9383 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 9384 - 9396 [constructor.] 0. secs (0.u,0.s) -Chars 9397 - 9441 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) -Chars 9446 - 9447 [+] 0. secs (0.u,0.s) -Chars 9448 - 9456 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 9457 - 9469 [constructor.] 0. secs (0.u,0.s) -Chars 9470 - 9490 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) -Chars 9491 - 9495 [Qed.] 0.049 secs (0.048u,0.s) -Chars 9497 - 9637 [Lemma~trace_prefix_proper_r~:~...] 0. secs (0.u,0.s) -Chars 9638 - 9644 [Proof.] 0. secs (0.u,0.s) -Chars 9647 - 9660 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 9661 - 9680 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9681 - 9706 [intros~b~b1~b2~Heutt~Hbp.] 0. secs (0.u,0.s) -Chars 9709 - 9723 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 9724 - 9736 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 9740 - 9766 [dependent~induction~Heutt.] 0.032 secs (0.032u,0.s) -Chars 9769 - 9770 [-] 0. secs (0.u,0.s) -Chars 9771 - 9779 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 9780 - 9791 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 9792 - 9823 [induction~Hbp;~auto~with~itree.] 0.003 secs (0.003u,0.s) -Chars 9828 - 9829 [+] 0. secs (0.u,0.s) -Chars 9831 - 9843 [constructor.] 0. secs (0.u,0.s) -Chars 9844 - 9862 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 9867 - 9868 [+] 0. secs (0.u,0.s) -Chars 9869 - 9881 [constructor.] 0. secs (0.u,0.s) -Chars 9882 - 9915 [now~do~2~ITree.Basics.Utils.step.] 0.002 secs (0.002u,0.s) -Chars 9919 - 9920 [-] 0. secs (0.u,0.s) -Chars 9922 - 9943 [rewrite~<-~x0~in~Hbp.] 0. secs (0.u,0.s) -Chars 9944 - 9952 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 9953 - 9964 [clear~x0~x.] 0. secs (0.u,0.s) -Chars 9969 - 9990 [destruct~(observe~b).] 0. secs (0.u,0.s) -Chars 9995 - 9996 [+] 0. secs (0.u,0.s) -Chars 9997 - 10020 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 10025 - 10026 [+] 0. secs (0.u,0.s) -Chars 10027 - 10039 [constructor.] 0. secs (0.u,0.s) -Chars 10040 - 10058 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 10059 - 10086 [apply~trace_prefix_tau_inv.] 0. secs (0.u,0.s) -Chars 10087 - 10092 [auto.] 0. secs (0.u,0.s) -Chars 10097 - 10098 [+] 0. secs (0.u,0.s) -Chars 10099 - 10107 [inv~Hbp.] 0.011 secs (0.01u,0.s) -Chars 10108 - 10120 [constructor.] 0. secs (0.u,0.s) -Chars 10121 - 10155 [eapply~trace_prefixF_vis_l;~ea...] 0. secs (0.u,0.s) -Chars 10158 - 10159 [-] 0. secs (0.u,0.s) -Chars 10160 - 10168 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 10169 - 10180 [clear~x~x0.] 0. secs (0.u,0.s) -Chars 10181 - 10205 [dependent~induction~Hbp.] 0.016 secs (0.016u,0.s) -Chars 10210 - 10211 [+] 0. secs (0.u,0.s) -Chars 10212 - 10226 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 10227 - 10250 [apply~trace_prefix_ret.] 0. secs (0.u,0.s) -Chars 10255 - 10256 [+] 0. secs (0.u,0.s) -Chars 10257 - 10265 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 10266 - 10278 [constructor.] 0. secs (0.u,0.s) -Chars 10279 - 10299 [eapply~IHHbp;~eauto.] 0. secs (0.u,0.s) -Chars 10304 - 10305 [+] 0. secs (0.u,0.s) -Chars 10306 - 10314 [simpobs.] 0. secs (0.u,0.s) -Chars 10315 - 10327 [constructor.] 0. secs (0.u,0.s) -Chars 10332 - 10333 [+] 0. secs (0.u,0.s) -Chars 10334 - 10342 [simpobs.] 0. secs (0.u,0.s) -Chars 10343 - 10355 [constructor.] 0. secs (0.u,0.s) -Chars 10356 - 10400 [eapply~CIH;~try~apply~REL;~eau...] 0. secs (0.u,0.s) -Chars 10403 - 10404 [-] 0. secs (0.u,0.s) -Chars 10405 - 10426 [eapply~IHHeutt;~auto.] 0.001 secs (0.001u,0.s) -Chars 10427 - 10447 [rewrite~<-~x~in~Hbp.] 0. secs (0.u,0.s) -Chars 10448 - 10486 [eapply~trace_prefixF_tau_inv_r...] 0. secs (0.u,0.s) -Chars 10489 - 10490 [-] 0. secs (0.u,0.s) -Chars 10491 - 10499 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 10500 - 10512 [constructor.] 0. secs (0.u,0.s) -Chars 10513 - 10535 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 10536 - 10540 [Qed.] 0.043 secs (0.043u,0.s) -Chars 10542 - 10650 [#[global]~Instance~trace_prefi...] 0. secs (0.u,0.s) -Chars 10651 - 10657 [Proof.] 0. secs (0.u,0.s) -Chars 10660 - 10673 [repeat~intro.] 0. secs (0.u,0.s) -Chars 10674 - 10688 [split;~intros.] 0. secs (0.u,0.s) -Chars 10691 - 10692 [-] 0. secs (0.u,0.s) -Chars 10693 - 10729 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) -Chars 10734 - 10770 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) -Chars 10773 - 10774 [-] 0. secs (0.u,0.s) -Chars 10775 - 10789 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 10790 - 10805 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 10810 - 10846 [eapply~trace_prefix_proper_l;~...] 0. secs (0.u,0.s) -Chars 10851 - 10887 [eapply~trace_prefix_proper_r;~...] 0. secs (0.u,0.s) -Chars 10888 - 10892 [Qed.] 0. secs (0.u,0.s) -Chars 10894 - 11309 [Inductive~ind_comb~{E}~{R}~{S}...] 0.005 secs (0.005u,0.s) -Chars 11311 - 11466 [Lemma~ind_comb_bind~:~~~forall...] 0. secs (0.u,0.s) -Chars 11467 - 11473 [Proof.] 0. secs (0.u,0.s) -Chars 11476 - 11502 [intros~E~R~S~b1~b2~b~Hind.] 0. secs (0.u,0.s) -Chars 11503 - 11518 [induction~Hind.] 0. secs (0.u,0.s) -Chars 11521 - 11522 [-] 0. secs (0.u,0.s) -Chars 11523 - 11533 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 11534 - 11553 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 11554 - 11559 [auto.] 0. secs (0.u,0.s) -Chars 11562 - 11563 [-] 0. secs (0.u,0.s) -Chars 11564 - 11574 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 11575 - 11586 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 11587 - 11604 [rewrite~bind_vis.] 0.001 secs (0.001u,0.s) -Chars 11605 - 11610 [step.] 0.001 secs (0.001u,0.s) -Chars 11611 - 11623 [constructor.] 0. secs (0.u,0.s) -Chars 11624 - 11631 [intros.] 0. secs (0.u,0.s) -Chars 11636 - 11647 [destruct~v.] 0. secs (0.u,0.s) -Chars 11648 - 11661 [apply~IHHind.] 0. secs (0.u,0.s) -Chars 11662 - 11666 [Qed.] 0.003 secs (0.003u,0.s) -Chars 11668 - 12070 [Inductive~trace_prefix_ind~{E}...] 0.003 secs (0.003u,0.s) -Chars 12072 - 12215 [Lemma~trace_prefix_ind_comb~:~...] 0. secs (0.u,0.s) -Chars 12216 - 12222 [Proof.] 0. secs (0.u,0.s) -Chars 12225 - 12249 [intros~E~R~S~b1~b2~Hpre.] 0. secs (0.u,0.s) -Chars 12250 - 12265 [induction~Hpre.] 0. secs (0.u,0.s) -Chars 12268 - 12269 [-] 0. secs (0.u,0.s) -Chars 12270 - 12280 [exists~b2.] 0. secs (0.u,0.s) -Chars 12281 - 12301 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 12304 - 12305 [-] 0. secs (0.u,0.s) -Chars 12306 - 12334 [destruct~IHHpre~as~[b3~Hb3].] 0. secs (0.u,0.s) -Chars 12339 - 12349 [exists~b3.] 0. secs (0.u,0.s) -Chars 12350 - 12378 [eapply~left_vis_comb;~eauto.] 0.004 secs (0.004u,0.s) -Chars 12379 - 12383 [Qed.] 0. secs (0.u,0.s) -Chars 12385 - 12540 [Lemma~trace_prefix_ind_bind~:~...] 0. secs (0.u,0.s) -Chars 12541 - 12547 [Proof.] 0. secs (0.u,0.s) -Chars 12550 - 12557 [intros.] 0. secs (0.u,0.s) -Chars 12558 - 12591 [apply~trace_prefix_ind_comb~in~H.] 0. secs (0.u,0.s) -Chars 12592 - 12615 [destruct~H~as~[b3~Hb3].] 0. secs (0.u,0.s) -Chars 12618 - 12645 [apply~ind_comb_bind~in~Hb3.] 0. secs (0.u,0.s) -Chars 12646 - 12667 [exists~(fun~_~=>~b3).] 0. secs (0.u,0.s) -Chars 12668 - 12673 [auto.] 0. secs (0.u,0.s) -Chars 12674 - 12678 [Qed.] 0. secs (0.u,0.s) -Chars 12680 - 12838 [Lemma~converge_trace_prefix~:~...] 0. secs (0.u,0.s) -Chars 12839 - 12845 [Proof.] 0. secs (0.u,0.s) -Chars 12848 - 12879 [intros~E~R~S~b1~b2~r~Hbp~Hconv.] 0. secs (0.u,0.s) -Chars 12880 - 12904 [generalize~dependent~b2.] 0. secs (0.u,0.s) -Chars 12905 - 12929 [induction~Hconv;~intros.] 0. secs (0.u,0.s) -Chars 12932 - 12933 [-] 0. secs (0.u,0.s) -Chars 12934 - 12960 [eapply~left_ret_bp;~eauto.] 0. secs (0.u,0.s) -Chars 12963 - 12964 [-] 0. secs (0.u,0.s) -Chars 12965 - 12982 [rewrite~H~in~Hbp.] 0.002 secs (0.002u,0.s) -Chars 12983 - 13013 [destruct~e;~try~contradiction.] 0. secs (0.u,0.s) -Chars 13018 - 13049 [apply~prefix_vis~in~Hbp~as~Hb2.] 0. secs (0.u,0.s) -Chars 13054 - 13079 [destruct~Hb2~as~[k'~Hk'].] 0. secs (0.u,0.s) -Chars 13080 - 13099 [rewrite~Hk'~in~Hbp.] 0.003 secs (0.003u,0.s) -Chars 13104 - 13130 [eapply~left_vis_bp;~eauto.] 0.002 secs (0.002u,0.s) -Chars 13131 - 13142 [destruct~b.] 0. secs (0.u,0.s) -Chars 13143 - 13157 [apply~IHHconv.] 0. secs (0.u,0.s) -Chars 13162 - 13174 [step~in~Hbp.] 0. secs (0.u,0.s) -Chars 13175 - 13184 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 13185 - 13199 [inversion~Hbp.] 0.004 secs (0.004u,0.s) -Chars 13200 - 13227 [subst;~ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) -Chars 13239 - 13243 [Qed.] 0.006 secs (0.006u,0.s) -Chars 13245 - 13373 [Lemma~trace_prefix_div~E~R~S~(...] 0. secs (0.u,0.s) -Chars 13374 - 13380 [Proof.] 0. secs (0.u,0.s) -Chars 13383 - 13396 [revert~b1~b2.] 0. secs (0.u,0.s) -Chars 13397 - 13416 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 13417 - 13439 [intros~b1~b2~Hdiv~Hbf.] 0. secs (0.u,0.s) -Chars 13442 - 13454 [step~in~Hbf.] 0. secs (0.u,0.s) -Chars 13455 - 13468 [step~in~Hdiv.] 0. secs (0.u,0.s) -Chars 13469 - 13483 [induction~Hbf.] 0.001 secs (0.001u,0.s) -Chars 13486 - 13487 [-] 0. secs (0.u,0.s) -Chars 13488 - 13497 [inv~Hdiv.] 0. secs (0.u,0.s) -Chars 13500 - 13501 [-] 0. secs (0.u,0.s) -Chars 13502 - 13514 [constructor.] 0. secs (0.u,0.s) -Chars 13515 - 13524 [inv~Hdiv.] 0.006 secs (0.006u,0.s) -Chars 13525 - 13541 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 13544 - 13545 [-] 0. secs (0.u,0.s) -Chars 13546 - 13564 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 13565 - 13577 [apply~IHHbf.] 0. secs (0.u,0.s) -Chars 13578 - 13585 [unstep.] 0. secs (0.u,0.s) -Chars 13586 - 13595 [inv~Hdiv.] 0. secs (0.u,0.s) -Chars 13599 - 13600 [-] 0. secs (0.u,0.s) -Chars 13601 - 13619 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 13622 - 13623 [-] 0. secs (0.u,0.s) -Chars 13624 - 13636 [constructor.] 0. secs (0.u,0.s) -Chars 13637 - 13647 [intros~[].] 0. secs (0.u,0.s) -Chars 13650 - 13651 [-] 0. secs (0.u,0.s) -Chars 13653 - 13665 [constructor.] 0. secs (0.u,0.s) -Chars 13666 - 13673 [intros.] 0. secs (0.u,0.s) -Chars 13674 - 13683 [inv~Hdiv.] 0.007 secs (0.007u,0.s) -Chars 13684 - 13704 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 13710 - 13721 [destruct~v.] 0. secs (0.u,0.s) -Chars 13722 - 13738 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 13739 - 13748 [apply~H1.] 0. secs (0.u,0.s) -Chars 13749 - 13753 [Qed.] 0.013 secs (0.013u,0.s) -Chars 13755 - 13892 [Lemma~trace_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) -Chars 13893 - 13899 [Proof.] 0. secs (0.u,0.s) -Chars 13902 - 13909 [intros.] 0. secs (0.u,0.s) -Chars 13910 - 13941 [destruct~(classic_converge~b1).] 0. secs (0.u,0.s) -Chars 13944 - 13945 [-] 0. secs (0.u,0.s) -Chars 13946 - 13971 [destruct~H0~as~[r~Hconv].] 0. secs (0.u,0.s) -Chars 13972 - 14017 [eapply~converge_trace_prefix~i...] 0. secs (0.u,0.s) -Chars 14022 - 14050 [apply~trace_prefix_ind_bind.] 0. secs (0.u,0.s) -Chars 14051 - 14056 [auto.] 0. secs (0.u,0.s) -Chars 14059 - 14060 [-] 0. secs (0.u,0.s) -Chars 14150 - 14212 [specialize~(@trace_prefix_div~...] 0. secs (0.u,0.s) -Chars 14218 - 14247 [exists~(fun~_~=>~ITree.spin).] 0. secs (0.u,0.s) -Chars 14248 - 14271 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 14272 - 14292 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 14297 - 14366 [eapply~noret_bind_nop~with~(f~...] 0. secs (0.u,0.s) -Chars 14371 - 14408 [eapply~euttNoRet_trans;~try~ap...] 0.002 secs (0.002u,0.s) -Chars 14409 - 14429 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 14430 - 14435 [auto.] 0. secs (0.u,0.s) -Chars 14436 - 14440 [Qed.] 0. secs (0.u,0.s) diff --git a/extra/Secure/Labels.v.timing b/extra/Secure/Labels.v.timing deleted file mode 100644 index c9beea8a..00000000 --- a/extra/Secure/Labels.v.timing +++ /dev/null @@ -1,15 +0,0 @@ -Chars 52 - 102 [From~ITree~Require~Import~Basi...] 0.134 secs (0.12u,0.014s) -Chars 104 - 153 [Variant~nonempty~(A~:~Type)~:~...] 0. secs (0.u,0.s) -Chars 155 - 220 [Variant~empty~(A~:~Type)~:~Pro...] 0. secs (0.u,0.s) -Chars 222 - 276 [Lemma~classic_empty~:~forall~A...] 0. secs (0.u,0.s) -Chars 277 - 283 [Proof.] 0. secs (0.u,0.s) -Chars 286 - 293 [intros.] 0. secs (0.u,0.s) -Chars 294 - 333 [destruct~(classic~(nonempty~A)...] 0. secs (0.u,0.s) -Chars 336 - 341 [left.] 0. secs (0.u,0.s) -Chars 342 - 354 [constructor.] 0. secs (0.u,0.s) -Chars 355 - 362 [intros.] 0. secs (0.u,0.s) -Chars 363 - 371 [apply~H.] 0. secs (0.u,0.s) -Chars 372 - 390 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 391 - 395 [Qed.] 0. secs (0.u,0.s) -Chars 397 - 463 [Class~Preorder~:={~L~~:~Type;~...] 0. secs (0.u,0.s) -Chars 465 - 656 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqBind.v.timing b/extra/Secure/SecureEqBind.v.timing deleted file mode 100644 index 17444035..00000000 --- a/extra/Secure/SecureEqBind.v.timing +++ /dev/null @@ -1,350 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 39 - 104 [From~ITree~Require~Import~Axio...] 0.157 secs (0.14u,0.016s) -Chars 106 - 226 [From~ITree.Extra~Require~Impor...] 0.008 secs (0.006u,0.001s) -Chars 228 - 242 [Import~Monads.] 0. secs (0.u,0.s) -Chars 243 - 264 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 265 - 294 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 296 - 861 [Lemma~eqit_bind_shalt_aux1~:~~...] 0.002 secs (0.001u,0.s) -Chars 862 - 868 [Proof.] 0. secs (0.u,0.s) -Chars 871 - 965 [intros~E~S2~S1~R1~R2~RR~RS~b1~...] 0. secs (0.u,0.s) -Chars 968 - 973 [step.] 0. secs (0.u,0.s) -Chars 974 - 1011 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) -Chars 1012 - 1016 [cbn.] 0. secs (0.u,0.s) -Chars 1017 - 1025 [simpobs.] 0.001 secs (0.u,0.s) -Chars 1028 - 1032 [cbn.] 0. secs (0.u,0.s) -Chars 1033 - 1057 [rewrite~itree_eta'~~at~1.] 0.039 secs (0.037u,0.002s) -Chars 1058 - 1065 [unstep.] 0. secs (0.u,0.s) -Chars 1069 - 1093 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 1094 - 1112 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1113 - 1127 [intros~t2~Ht2.] 0. secs (0.u,0.s) -Chars 1130 - 1142 [step~in~Ht2.] 0. secs (0.u,0.s) -Chars 1143 - 1148 [icbn.] 0. secs (0.u,0.s) -Chars 1153 - 1176 [unfold~ITree.bind~at~1.] 0. secs (0.u,0.s) -Chars 1177 - 1197 [unfold~observe~at~2.] 0. secs (0.u,0.s) -Chars 1198 - 1207 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 1210 - 1383 [inv~Ht2;~ddestruction;~subst;~...] 0.128 secs (0.127u,0.s) -Chars 1386 - 1387 [-] 0. secs (0.u,0.s) -Chars 1388 - 1397 [now~step.] 0. secs (0.u,0.s) -Chars 1401 - 1402 [-] 0. secs (0.u,0.s) -Chars 1403 - 1412 [apply~H0.] 0. secs (0.u,0.s) -Chars 1416 - 1417 [-] 0. secs (0.u,0.s) -Chars 1418 - 1430 [contra_size.] 0. secs (0.u,0.s) -Chars 1432 - 1436 [Qed.] 0.026 secs (0.026u,0.s) -Chars 1438 - 1987 [Lemma~eqit_bind_shalt_aux2~:~~...] 0.001 secs (0.001u,0.s) -Chars 1988 - 1994 [Proof.] 0. secs (0.u,0.s) -Chars 1997 - 2091 [intros~E~S2~S1~R1~R2~RR~RS~b1~...] 0. secs (0.u,0.s) -Chars 2094 - 2099 [step.] 0. secs (0.u,0.s) -Chars 2100 - 2137 [unfold~ITree.bind~at~2,~observ...] 0. secs (0.u,0.s) -Chars 2138 - 2142 [cbn.] 0. secs (0.u,0.s) -Chars 2143 - 2151 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 2154 - 2158 [cbn.] 0. secs (0.u,0.s) -Chars 2159 - 2178 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 2179 - 2186 [unstep.] 0. secs (0.u,0.s) -Chars 2189 - 2213 [generalize~dependent~t1.] 0. secs (0.u,0.s) -Chars 2214 - 2232 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2233 - 2247 [intros~t1~Ht1.] 0. secs (0.u,0.s) -Chars 2250 - 2262 [step~in~Ht1.] 0. secs (0.u,0.s) -Chars 2263 - 2268 [icbn.] 0. secs (0.u,0.s) -Chars 2273 - 2310 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) -Chars 2311 - 2320 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 2323 - 2454 [inv~Ht1;~ddestruction;~subst;~...] 0.097 secs (0.096u,0.s) -Chars 2457 - 2458 [-] 0. secs (0.u,0.s) -Chars 2459 - 2468 [now~step.] 0. secs (0.u,0.s) -Chars 2472 - 2473 [-] 0. secs (0.u,0.s) -Chars 2474 - 2488 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 2489 - 2494 [step.] 0. secs (0.u,0.s) -Chars 2495 - 2504 [apply~H1.] 0. secs (0.u,0.s) -Chars 2508 - 2509 [-] 0. secs (0.u,0.s) -Chars 2510 - 2519 [apply~H1.] 0. secs (0.u,0.s) -Chars 2522 - 2526 [Qed.] 0.026 secs (0.026u,0.s) -Chars 2528 - 2719 [#[local]~Ltac~~to_mon_s~:=~~~m...] 0. secs (0.u,0.s) -Chars 2721 - 3160 [Lemma~secure_eqit_bind'~:~~~fo...] 0. secs (0.u,0.s) -Chars 3161 - 3167 [Proof.] 0. secs (0.u,0.s) -Chars 3170 - 3177 [intros.] 0. secs (0.u,0.s) -Chars 3178 - 3188 [revert~H0.] 0. secs (0.u,0.s) -Chars 3189 - 3202 [revert~t1~t2.] 0. secs (0.u,0.s) -Chars 3203 - 3222 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3223 - 3241 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 3244 - 3257 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 3260 - 3274 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 3275 - 3289 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 3292 - 3325 [hinduction~Ht12~before~E;~intros.] 0.002 secs (0.002u,0.s) -Chars 3328 - 3329 [-] 0. secs (0.u,0.s) -Chars 3330 - 3362 [unfold~ITree.bind,~observe;~cbn.] 0. secs (0.u,0.s) -Chars 3368 - 3376 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 3377 - 3382 [step.] 0. secs (0.u,0.s) -Chars 3383 - 3396 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 3400 - 3401 [-] 0. secs (0.u,0.s) -Chars 3402 - 3429 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) -Chars 3435 - 3453 [cbn;~simpobs;~cbn.] 0.003 secs (0.003u,0.s) -Chars 3456 - 3468 [constructor.] 0. secs (0.u,0.s) -Chars 3469 - 3484 [now~eapply~CIH.] 0. secs (0.u,0.s) -Chars 3489 - 3490 [-] 0. secs (0.u,0.s) -Chars 3491 - 3528 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) -Chars 3534 - 3552 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) -Chars 3555 - 3573 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3578 - 3598 [apply~IHHt12;~eauto.] 0. secs (0.u,0.s) -Chars 3603 - 3604 [-] 0. secs (0.u,0.s) -Chars 3605 - 3642 [unfold~ITree.bind~at~2,~observ...] 0. secs (0.u,0.s) -Chars 3648 - 3666 [cbn;~simpobs;~cbn.] 0.002 secs (0.001u,0.s) -Chars 3669 - 3687 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3688 - 3708 [apply~IHHt12;~eauto.] 0. secs (0.u,0.s) -Chars 3711 - 3712 [-] 0. secs (0.u,0.s) -Chars 3713 - 3740 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) -Chars 3746 - 3764 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) -Chars 3769 - 3774 [evis.] 0. secs (0.u,0.s) -Chars 3781 - 3795 [eapply~CIH,~H.] 0. secs (0.u,0.s) -Chars 3798 - 3799 [-] 0. secs (0.u,0.s) -Chars 3800 - 3827 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) -Chars 3833 - 3851 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) -Chars 3857 - 3867 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 3872 - 3886 [eapply~CIH,~H.] 0. secs (0.u,0.s) -Chars 3889 - 3890 [-] 0. secs (0.u,0.s) -Chars 3891 - 3918 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) -Chars 3924 - 3942 [cbn;~simpobs;~cbn.] 0.002 secs (0.002u,0.s) -Chars 3948 - 3958 [unpriv_co.] 0. secs (0.u,0.s) -Chars 3963 - 3977 [eapply~CIH,~H.] 0. secs (0.u,0.s) -Chars 3980 - 3981 [-] 0. secs (0.u,0.s) -Chars 3982 - 4009 [unfold~ITree.bind,~observe.] 0. secs (0.u,0.s) -Chars 4015 - 4033 [cbn;~simpobs;~cbn.] 0.003 secs (0.003u,0.s) -Chars 4039 - 4049 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 4054 - 4068 [eapply~CIH,~H.] 0. secs (0.u,0.s) -Chars 4071 - 4072 [-] 0. secs (0.u,0.s) -Chars 4073 - 4110 [unfold~ITree.bind~at~1,~observ...] 0. secs (0.u,0.s) -Chars 4116 - 4120 [cbn.] 0. secs (0.u,0.s) -Chars 4121 - 4139 [rewrite~<-~Heqot1.] 0. secs (0.u,0.s) -Chars 4140 - 4144 [cbn.] 0. secs (0.u,0.s) -Chars 4150 - 4161 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 4162 - 4179 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 4182 - 4183 [-] 0. secs (0.u,0.s) -Chars 4184 - 4221 [unfold~ITree.bind~at~2,~observ...] 0. secs (0.u,0.s) -Chars 4227 - 4255 [cbn;~rewrite~<-~Heqot2;~cbn.] 0. secs (0.u,0.s) -Chars 4261 - 4272 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 4273 - 4290 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 4294 - 4295 [-] 0. secs (0.u,0.s) -Chars 4296 - 4301 [step.] 0. secs (0.u,0.s) -Chars 4307 - 4342 [eapply~eqit_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) -Chars 4343 - 4348 [step.] 0. secs (0.u,0.s) -Chars 4349 - 4357 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 4362 - 4366 [cbn.] 0. secs (0.u,0.s) -Chars 4367 - 4379 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 4380 - 4386 [eauto.] 0. secs (0.u,0.s) -Chars 4389 - 4390 [-] 0. secs (0.u,0.s) -Chars 4391 - 4396 [step.] 0. secs (0.u,0.s) -Chars 4402 - 4437 [eapply~eqit_bind_shalt_aux2;~e...] 0.001 secs (0.u,0.s) -Chars 4438 - 4443 [step.] 0. secs (0.u,0.s) -Chars 4444 - 4448 [cbn.] 0. secs (0.u,0.s) -Chars 4449 - 4457 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 4462 - 4474 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 4475 - 4481 [eauto.] 0. secs (0.u,0.s) -Chars 4484 - 4485 [-] 0. secs (0.u,0.s) -Chars 4486 - 4491 [step.] 0. secs (0.u,0.s) -Chars 4497 - 4546 [eapply~eqit_bind_shalt_aux1~wi...] 0. secs (0.u,0.s) -Chars 4551 - 4556 [step.] 0. secs (0.u,0.s) -Chars 4557 - 4565 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 4566 - 4570 [cbn.] 0. secs (0.u,0.s) -Chars 4571 - 4583 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 4586 - 4587 [-] 0. secs (0.u,0.s) -Chars 4588 - 4593 [step.] 0. secs (0.u,0.s) -Chars 4599 - 4634 [eapply~eqit_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) -Chars 4635 - 4640 [step.] 0. secs (0.u,0.s) -Chars 4641 - 4645 [cbn.] 0. secs (0.u,0.s) -Chars 4646 - 4654 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 4659 - 4671 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 4672 - 4676 [Qed.] 0.012 secs (0.012u,0.s) -Chars 4678 - 5116 [Lemma~secure_eqit_bind~:~~~for...] 0. secs (0.u,0.s) -Chars 5117 - 5123 [Proof.] 0. secs (0.u,0.s) -Chars 5126 - 5133 [intros.] 0. secs (0.u,0.s) -Chars 5136 - 5168 [eapply~secure_eqit_bind';~eauto.] 0. secs (0.u,0.s) -Chars 5169 - 5173 [Qed.] 0. secs (0.u,0.s) -Chars 5175 - 6302 [Lemma~iter_bind_shalt_aux1~:~~...] 0.002 secs (0.002u,0.s) -Chars 6303 - 6309 [Proof.] 0. secs (0.u,0.s) -Chars 6312 - 6401 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) -Chars 6404 - 6428 [generalize~dependent~t0.] 0. secs (0.u,0.s) -Chars 6429 - 6447 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6448 - 6462 [intros~t0~Ht0.] 0. secs (0.u,0.s) -Chars 6465 - 6470 [icbn.] 0. secs (0.u,0.s) -Chars 6471 - 6483 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 6484 - 6505 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 6512 - 6521 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6522 - 6593 [inv~Ht0;~inv_vis_secure;~cbn;~...] 0.119 secs (0.118u,0.s) -Chars 6596 - 6622 [all:~eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6626 - 6627 [-] 0. secs (0.u,0.s) -Chars 6628 - 6637 [now~step.] 0. secs (0.u,0.s) -Chars 6640 - 6641 [-] 0. secs (0.u,0.s) -Chars 6642 - 6650 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 6651 - 6660 [now~step.] 0. secs (0.u,0.s) -Chars 6664 - 6665 [-] 0. secs (0.u,0.s) -Chars 6666 - 6675 [apply~H0.] 0. secs (0.u,0.s) -Chars 6677 - 6681 [Qed.] 0.036 secs (0.035u,0.s) -Chars 6683 - 7810 [Lemma~iter_bind_shalt_aux2~:~~...] 0.002 secs (0.002u,0.s) -Chars 7811 - 7817 [Proof.] 0. secs (0.u,0.s) -Chars 7820 - 7909 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) -Chars 7912 - 7936 [generalize~dependent~t0.] 0. secs (0.u,0.s) -Chars 7937 - 7955 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 7956 - 7970 [intros~t0~Ht0.] 0. secs (0.u,0.s) -Chars 7973 - 7978 [icbn.] 0. secs (0.u,0.s) -Chars 7979 - 7991 [step~in~Ht0.] 0. secs (0.u,0.s) -Chars 7994 - 8015 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 8022 - 8031 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 8032 - 8103 [inv~Ht0;~inv_vis_secure;~cbn;~...] 0.128 secs (0.127u,0.s) -Chars 8106 - 8132 [all:~eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 8135 - 8136 [-] 0. secs (0.u,0.s) -Chars 8137 - 8146 [now~step.] 0. secs (0.u,0.s) -Chars 8149 - 8150 [-] 0. secs (0.u,0.s) -Chars 8151 - 8159 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 8160 - 8169 [now~step.] 0. secs (0.u,0.s) -Chars 8173 - 8174 [-] 0. secs (0.u,0.s) -Chars 8175 - 8184 [apply~H1.] 0. secs (0.u,0.s) -Chars 8185 - 8189 [Qed.] 0.036 secs (0.036u,0.s) -Chars 8191 - 9267 [Lemma~iter_bind_aux~:~~~forall...] 0.002 secs (0.002u,0.s) -Chars 9268 - 9274 [Proof.] 0. secs (0.u,0.s) -Chars 9277 - 9337 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) -Chars 9341 - 9357 [tower~induction.] 0.003 secs (0.003u,0.s) -Chars 9358 - 9397 [clear~c;~intros~c~CIH~t1~t2~Ht...] 0. secs (0.u,0.s) -Chars 9398 - 9411 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 9415 - 9420 [icbn.] 0. secs (0.u,0.s) -Chars 9424 - 9439 [unfold~observe.] 0. secs (0.u,0.s) -Chars 9440 - 9444 [cbn.] 0. secs (0.u,0.s) -Chars 9448 - 9600 [hinduction~Ht12~before~E;~intr...] 0.054 secs (0.054u,0.s) -Chars 9603 - 9604 [-] 0. secs (0.u,0.s) -Chars 9605 - 9634 [inv~H;~cbn;~eauto~with~itree.] 0.012 secs (0.012u,0.s) -Chars 9639 - 9651 [constructor.] 0. secs (0.u,0.s) -Chars 9652 - 9674 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 9678 - 9679 [-] 0. secs (0.u,0.s) -Chars 9680 - 9698 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9699 - 9728 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9733 - 9740 [intros.] 0. secs (0.u,0.s) -Chars 9741 - 9763 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 9767 - 9768 [-] 0. secs (0.u,0.s) -Chars 9769 - 9787 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9788 - 9808 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 9809 - 9813 [cbn.] 0. secs (0.u,0.s) -Chars 9814 - 9846 [eapply~IHHt12;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9850 - 9851 [-] 0. secs (0.u,0.s) -Chars 9852 - 9870 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9871 - 9891 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 9892 - 9896 [cbn.] 0. secs (0.u,0.s) -Chars 9897 - 9929 [eapply~IHHt12;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9933 - 9934 [-] 0. secs (0.u,0.s) -Chars 9935 - 9953 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9954 - 9960 [intro.] 0. secs (0.u,0.s) -Chars 9966 - 9985 [eapply~CIH;~intros.] 0. secs (0.u,0.s) -Chars 9986 - 9994 [apply~H.] 0. secs (0.u,0.s) -Chars 9999 - 10021 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 10025 - 10026 [-] 0. secs (0.u,0.s) -Chars 10027 - 10037 [unpriv_co.] 0. secs (0.u,0.s) -Chars 10038 - 10057 [eapply~CIH;~intros.] 0. secs (0.u,0.s) -Chars 10058 - 10066 [apply~H.] 0. secs (0.u,0.s) -Chars 10073 - 10095 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 10098 - 10099 [-] 0. secs (0.u,0.s) -Chars 10100 - 10110 [unpriv_co.] 0. secs (0.u,0.s) -Chars 10111 - 10130 [eapply~CIH;~intros.] 0. secs (0.u,0.s) -Chars 10131 - 10139 [apply~H.] 0. secs (0.u,0.s) -Chars 10146 - 10168 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 10171 - 10172 [-] 0. secs (0.u,0.s) -Chars 10173 - 10183 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 10184 - 10203 [eapply~CIH;~intros.] 0. secs (0.u,0.s) -Chars 10204 - 10212 [apply~H.] 0. secs (0.u,0.s) -Chars 10220 - 10242 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 10245 - 10246 [-] 0. secs (0.u,0.s) -Chars 10247 - 10258 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10259 - 10279 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 10280 - 10284 [cbn.] 0. secs (0.u,0.s) -Chars 10285 - 10313 [eapply~H0;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10316 - 10317 [-] 0. secs (0.u,0.s) -Chars 10318 - 10329 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 10330 - 10350 [unfold~observe~at~3.] 0. secs (0.u,0.s) -Chars 10351 - 10355 [cbn.] 0. secs (0.u,0.s) -Chars 10356 - 10383 [apply~H0;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10386 - 10387 [-] 0. secs (0.u,0.s) -Chars 10388 - 10400 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 10401 - 10411 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 10412 - 10458 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) -Chars 10461 - 10462 [-] 0. secs (0.u,0.s) -Chars 10463 - 10475 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 10476 - 10486 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 10487 - 10533 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) -Chars 10536 - 10537 [-] 0. secs (0.u,0.s) -Chars 10538 - 10550 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 10551 - 10568 [specialize~(H~b).] 0. secs (0.u,0.s) -Chars 10569 - 10579 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 10580 - 10626 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) -Chars 10629 - 10630 [-] 0. secs (0.u,0.s) -Chars 10631 - 10643 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 10644 - 10661 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 10662 - 10672 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 10673 - 10719 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) -Chars 10720 - 10724 [Qed.] 0.018 secs (0.018u,0.s) -Chars 10727 - 11238 [Lemma~secure_eqit_iter~:~~~for...] 0. secs (0.u,0.s) -Chars 11239 - 11245 [Proof.] 0. secs (0.u,0.s) -Chars 11248 - 11255 [intros.] 0. secs (0.u,0.s) -Chars 11256 - 11277 [rename~H0~into~Hbody.] 0. secs (0.u,0.s) -Chars 11278 - 11302 [generalize~dependent~a2.] 0. secs (0.u,0.s) -Chars 11303 - 11313 [revert~a1.] 0. secs (0.u,0.s) -Chars 11487 - 11506 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11509 - 11525 [intros~a1~a2~Ha.] 0. secs (0.u,0.s) -Chars 11526 - 11564 [specialize~(Hbody~a1~a2~Ha)~as...] 0. secs (0.u,0.s) -Chars 11567 - 11582 [step~in~Hbodya.] 0. secs (0.u,0.s) -Chars 11585 - 11600 [unfold~observe.] 0. secs (0.u,0.s) -Chars 11657 - 11661 [cbn.] 0. secs (0.u,0.s) -Chars 11664 - 11721 [hinduction~Hbodya~before~E;~in...] 0.016 secs (0.016u,0.s) -Chars 11724 - 11725 [-] 0. secs (0.u,0.s) -Chars 11726 - 11755 [inv~H;~cbn;~eauto~with~itree.] 0.004 secs (0.004u,0.s) -Chars 11759 - 11760 [-] 0. secs (0.u,0.s) -Chars 11761 - 11765 [cbn.] 0. secs (0.u,0.s) -Chars 11767 - 11779 [constructor.] 0. secs (0.u,0.s) -Chars 11785 - 11813 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) -Chars 11817 - 11818 [-] 0. secs (0.u,0.s) -Chars 11819 - 11837 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 11838 - 11844 [intro.] 0. secs (0.u,0.s) -Chars 11845 - 11873 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) -Chars 11880 - 11888 [apply~H.] 0. secs (0.u,0.s) -Chars 11892 - 11893 [-] 0. secs (0.u,0.s) -Chars 11894 - 11904 [unpriv_co.] 0. secs (0.u,0.s) -Chars 11911 - 11939 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) -Chars 11940 - 11948 [apply~H.] 0. secs (0.u,0.s) -Chars 11952 - 11953 [-] 0. secs (0.u,0.s) -Chars 11954 - 11964 [unpriv_co.] 0. secs (0.u,0.s) -Chars 11965 - 11993 [eapply~iter_bind_aux;~eauto.] 0. secs (0.u,0.s) -Chars 11994 - 12002 [apply~H.] 0. secs (0.u,0.s) -Chars 12006 - 12007 [-] 0. secs (0.u,0.s) -Chars 12008 - 12018 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 12019 - 12047 [eapply~iter_bind_aux;~eauto.] 0.002 secs (0.002u,0.s) -Chars 12048 - 12056 [apply~H.] 0. secs (0.u,0.s) -Chars 12060 - 12061 [-] 0. secs (0.u,0.s) -Chars 12062 - 12073 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 12191 - 12211 [unfold~observe~at~1.] 0. secs (0.u,0.s) -Chars 12212 - 12216 [cbn.] 0. secs (0.u,0.s) -Chars 12221 - 12227 [eauto.] 0. secs (0.u,0.s) -Chars 12230 - 12231 [-] 0. secs (0.u,0.s) -Chars 12232 - 12243 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 12244 - 12264 [unfold~observe~at~3.] 0. secs (0.u,0.s) -Chars 12265 - 12269 [cbn.] 0. secs (0.u,0.s) -Chars 12270 - 12276 [eauto.] 0. secs (0.u,0.s) -Chars 12279 - 12280 [-] 0. secs (0.u,0.s) -Chars 12282 - 12294 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12295 - 12305 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 12313 - 12348 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) -Chars 12352 - 12353 [-] 0. secs (0.u,0.s) -Chars 12354 - 12366 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12367 - 12377 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 12379 - 12414 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) -Chars 12417 - 12418 [-] 0. secs (0.u,0.s) -Chars 12419 - 12431 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12433 - 12450 [specialize~(H~b).] 0. secs (0.u,0.s) -Chars 12451 - 12461 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 12467 - 12502 [eapply~iter_bind_shalt_aux1;~e...] 0. secs (0.u,0.s) -Chars 12506 - 12507 [-] 0. secs (0.u,0.s) -Chars 12508 - 12520 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12522 - 12539 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 12540 - 12550 [do~2~step.] 0.001 secs (0.001u,0.s) -Chars 12551 - 12586 [eapply~iter_bind_shalt_aux2;~e...] 0. secs (0.u,0.s) -Chars 12587 - 12591 [Qed.] 0.012 secs (0.012u,0.s) -Chars 12593 - 12799 [Lemma~secure_eqit_ret~:~~~fora...] 0. secs (0.u,0.s) -Chars 12800 - 12806 [Proof.] 0. secs (0.u,0.s) -Chars 12809 - 12816 [intros.] 0. secs (0.u,0.s) -Chars 12817 - 12822 [step.] 0. secs (0.u,0.s) -Chars 12823 - 12835 [constructor.] 0. secs (0.u,0.s) -Chars 12836 - 12841 [auto.] 0. secs (0.u,0.s) -Chars 12842 - 12846 [Qed.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqEuttHalt.v.timing b/extra/Secure/SecureEqEuttHalt.v.timing deleted file mode 100644 index 1652340f..00000000 --- a/extra/Secure/SecureEqEuttHalt.v.timing +++ /dev/null @@ -1,1882 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 39 - 76 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 78 - 143 [From~ITree~Require~Import~Axio...] 0.159 secs (0.142u,0.016s) -Chars 145 - 222 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) -Chars 224 - 238 [Import~Monads.] 0. secs (0.u,0.s) -Chars 239 - 260 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 261 - 290 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 294 - 341 [#[local]~Ltac~taul~:=~apply~se...] 0. secs (0.u,0.s) -Chars 342 - 389 [#[local]~Ltac~taur~:=~apply~se...] 0. secs (0.u,0.s) -Chars 391 - 627 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) -Chars 628 - 656 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 659 - 711 [unfold~Proper,~respectful,~Bas...] 0. secs (0.u,0.s) -Chars 714 - 730 [tower~induction.] 0.003 secs (0.002u,0.s) -Chars 733 - 798 [clear~c;~intros~c~IH~x~x'~EQx~...] 0.001 secs (0.001u,0.s) -Chars 803 - 813 [intros~EQ.] 0. secs (0.u,0.s) -Chars 814 - 841 [icbn;~icbn~in~EQ;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 847 - 876 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) -Chars 996 - 1035 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 1040 - 1061 [induction~EQ;~intros.] 0.002 secs (0.002u,0.s) -Chars 1066 - 1067 [+] 0. secs (0.u,0.s) -Chars 1068 - 1094 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 1101 - 1113 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 1120 - 1134 [genret~r1~or1.] 0. secs (0.u,0.s) -Chars 1141 - 1156 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 1163 - 1198 [hinduction~EQx~before~ox;~try~...] 0.077 secs (0.075u,0.001s) -Chars 1205 - 1206 [*] 0. secs (0.u,0.s) -Chars 1207 - 1233 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) -Chars 1234 - 1248 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 1257 - 1284 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) -Chars 1293 - 1308 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 1317 - 1352 [hinduction~EQy~before~oy;~try~...] 0.016 secs (0.016u,0.s) -Chars 1361 - 1386 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) -Chars 1391 - 1392 [+] 0. secs (0.u,0.s) -Chars 1393 - 1410 [inv~EQx;~inv~EQy.] 0.029 secs (0.029u,0.s) -Chars 1411 - 1423 [constructor.] 0. secs (0.u,0.s) -Chars 1424 - 1441 [eapply~IH;~eauto.] 0.001 secs (0.001u,0.s) -Chars 1447 - 1448 [+] 0. secs (0.u,0.s) -Chars 1449 - 1457 [inv~EQx.] 0.027 secs (0.027u,0.s) -Chars 1458 - 1463 [taul.] 0. secs (0.u,0.s) -Chars 1464 - 1483 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 1484 - 1495 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 1501 - 1502 [+] 0. secs (0.u,0.s) -Chars 1503 - 1511 [inv~EQy.] 0.028 secs (0.028u,0.s) -Chars 1512 - 1517 [taur.] 0. secs (0.u,0.s) -Chars 1518 - 1537 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 1538 - 1549 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 1554 - 1555 [+] 0. secs (0.u,0.s) -Chars 1556 - 1573 [inv~EQx;~inv~EQy.] 0.026 secs (0.026u,0.s) -Chars 1574 - 1648 [ddestruction;~subst;~try~contr...] 0.022 secs (0.021u,0.s) -Chars 1653 - 1654 [+] 0. secs (0.u,0.s) -Chars 1655 - 1672 [inv~EQx;~inv~EQy.] 0.028 secs (0.028u,0.s) -Chars 1673 - 1747 [ddestruction;~subst;~try~contr...] 0.021 secs (0.021u,0.s) -Chars 1752 - 1753 [+] 0. secs (0.u,0.s) -Chars 1754 - 1771 [inv~EQx;~inv~EQy.] 0.027 secs (0.027u,0.s) -Chars 1772 - 1846 [ddestruction;~subst;~try~contr...] 0.019 secs (0.019u,0.s) -Chars 1851 - 1852 [+] 0. secs (0.u,0.s) -Chars 1853 - 1870 [inv~EQx;~inv~EQy.] 0.026 secs (0.026u,0.s) -Chars 1871 - 1945 [ddestruction;~subst;~try~contr...] 0.055 secs (0.055u,0.s) -Chars 1950 - 1951 [+] 0. secs (0.u,0.s) -Chars 1952 - 1974 [inv~EQx;~ddestruction.] 0.016 secs (0.016u,0.s) -Chars 1975 - 1993 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 1994 - 2001 [intros.] 0. secs (0.u,0.s) -Chars 2009 - 2026 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 2027 - 2038 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 2044 - 2045 [+] 0. secs (0.u,0.s) -Chars 2046 - 2068 [inv~EQy;~ddestruction.] 0.016 secs (0.016u,0.s) -Chars 2069 - 2087 [constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 2088 - 2095 [intros.] 0. secs (0.u,0.s) -Chars 2103 - 2120 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 2121 - 2132 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 2138 - 2139 [+] 0. secs (0.u,0.s) -Chars 2140 - 2188 [inv~EQx;~inv~EQy;~ddestruction...] 0.034 secs (0.034u,0.s) -Chars 2197 - 2219 [constructor~11;~eauto.] 0.023 secs (0.023u,0.s) -Chars 2220 - 2230 [eapply~IH.] 0. secs (0.u,0.s) -Chars 2238 - 2250 [2,~3:~eauto.] 0. secs (0.u,0.s) -Chars 2251 - 2256 [step.] 0.001 secs (0.001u,0.s) -Chars 2257 - 2269 [constructor.] 0. secs (0.u,0.s) -Chars 2270 - 2275 [auto.] 0. secs (0.u,0.s) -Chars 2281 - 2282 [+] 0. secs (0.u,0.s) -Chars 2283 - 2331 [inv~EQx;~inv~EQy;~ddestruction...] 0.032 secs (0.032u,0.s) -Chars 2340 - 2362 [constructor~12;~eauto.] 0.028 secs (0.028u,0.s) -Chars 2363 - 2373 [eapply~IH.] 0. secs (0.u,0.s) -Chars 2381 - 2393 [1,~3:~eauto.] 0. secs (0.u,0.s) -Chars 2394 - 2399 [step.] 0.001 secs (0.001u,0.s) -Chars 2400 - 2412 [constructor.] 0. secs (0.u,0.s) -Chars 2413 - 2418 [auto.] 0. secs (0.u,0.s) -Chars 2424 - 2425 [+] 0. secs (0.u,0.s) -Chars 2426 - 2474 [inv~EQx;~inv~EQy;~ddestruction...] 0.033 secs (0.033u,0.s) -Chars 2483 - 2505 [constructor~13;~eauto.] 0.008 secs (0.008u,0.s) -Chars 2506 - 2512 [intro.] 0. secs (0.u,0.s) -Chars 2513 - 2523 [eapply~IH.] 0. secs (0.u,0.s) -Chars 2530 - 2541 [3:~apply~H.] 0. secs (0.u,0.s) -Chars 2542 - 2564 [step;~now~constructor.] 0.001 secs (0.001u,0.s) -Chars 2565 - 2576 [apply~REL0.] 0. secs (0.u,0.s) -Chars 2582 - 2583 [+] 0. secs (0.u,0.s) -Chars 2584 - 2632 [inv~EQx;~inv~EQy;~ddestruction...] 0.035 secs (0.034u,0.s) -Chars 2641 - 2663 [constructor~14;~eauto.] 0.008 secs (0.008u,0.s) -Chars 2664 - 2670 [intro.] 0. secs (0.u,0.s) -Chars 2671 - 2681 [eapply~IH.] 0. secs (0.u,0.s) -Chars 2688 - 2699 [3:~apply~H.] 0. secs (0.u,0.s) -Chars 2700 - 2710 [apply~REL.] 0. secs (0.u,0.s) -Chars 2718 - 2740 [step;~now~constructor.] 0.001 secs (0.001u,0.s) -Chars 2742 - 2746 [Qed.] 0.076 secs (0.075u,0.001s) -Chars 2750 - 2943 [Lemma~tau_eqit_secure~:~~~fora...] 0. secs (0.u,0.s) -Chars 2944 - 2950 [Proof.] 0. secs (0.u,0.s) -Chars 2953 - 2984 [intros~E~R1~R2~Label~priv~l~RR.] 0. secs (0.u,0.s) -Chars 2986 - 3004 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) -Chars 3005 - 3010 [step.] 0. secs (0.u,0.s) -Chars 3014 - 3027 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 3028 - 3037 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 3038 - 3062 [remember~(TauF~t1)~as~x.] 0. secs (0.u,0.s) -Chars 3065 - 3129 [hinduction~Hsec~before~priv;~i...] 0.15 secs (0.148u,0.001s) -Chars 3132 - 3133 [-] 0. secs (0.u,0.s) -Chars 3134 - 3152 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3153 - 3164 [now~unstep.] 0. secs (0.u,0.s) -Chars 3168 - 3169 [-] 0. secs (0.u,0.s) -Chars 3170 - 3181 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 3182 - 3193 [now~unstep.] 0. secs (0.u,0.s) -Chars 3197 - 3198 [-] 0. secs (0.u,0.s) -Chars 3199 - 3213 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 3214 - 3218 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3220 - 3483 [Lemma~unpriv_e_eqit_secure~:~~...] 0. secs (0.u,0.s) -Chars 3484 - 3490 [Proof.] 0. secs (0.u,0.s) -Chars 3493 - 3500 [intros.] 0. secs (0.u,0.s) -Chars 3501 - 3524 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 3525 - 3547 [rename~H~into~Hunpriv.] 0. secs (0.u,0.s) -Chars 3548 - 3571 [generalize~dependent~a.] 0. secs (0.u,0.s) -Chars 3574 - 3581 [intros.] 0. secs (0.u,0.s) -Chars 3582 - 3593 [step~in~H0.] 0. secs (0.u,0.s) -Chars 3594 - 3603 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 3604 - 3609 [step.] 0. secs (0.u,0.s) -Chars 3613 - 3638 [remember~(VisF~e~k)~as~x.] 0. secs (0.u,0.s) -Chars 3639 - 3657 [genobs_clear~t~ot.] 0. secs (0.u,0.s) -Chars 3660 - 3772 [hinduction~H0~before~l;~intros...] 0.056 secs (0.056u,0.s) -Chars 3775 - 3776 [-] 0. secs (0.u,0.s) -Chars 3777 - 3795 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3796 - 3825 [eapply~IHsecure_eqitF;~eauto.] 0. secs (0.u,0.s) -Chars 3828 - 3829 [-] 0. secs (0.u,0.s) -Chars 3831 - 3849 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3850 - 3861 [now~unstep.] 0. secs (0.u,0.s) -Chars 3865 - 3866 [-] 0. secs (0.u,0.s) -Chars 3867 - 3878 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 3879 - 3886 [unstep.] 0. secs (0.u,0.s) -Chars 3888 - 3896 [apply~H.] 0. secs (0.u,0.s) -Chars 3899 - 3900 [-] 0. secs (0.u,0.s) -Chars 3901 - 3912 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 3913 - 3930 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 3933 - 3934 [-] 0. secs (0.u,0.s) -Chars 3936 - 3955 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 3956 - 3971 [now~now~unstep.] 0. secs (0.u,0.s) -Chars 3973 - 3977 [Qed.] 0.018 secs (0.018u,0.s) -Chars 3980 - 4673 [Lemma~eses_au_vis_r~:~~~forall...] 0.001 secs (0.001u,0.s) -Chars 4674 - 4680 [Proof.] 0. secs (0.u,0.s) -Chars 4683 - 4750 [intros~E~R2~R1~Label~priv~l~RR...] 0. secs (0.u,0.s) -Chars 4753 - 4778 [remember~(VisF~e~k)~as~x.] 0. secs (0.u,0.s) -Chars 4779 - 4791 [step~in~REL.] 0. secs (0.u,0.s) -Chars 4792 - 4805 [rewrite~Heqx.] 0. secs (0.u,0.s) -Chars 4808 - 4901 [hinduction~Hsec~before~E;~intr...] 0.061 secs (0.061u,0.s) -Chars 4904 - 4905 [-] 0. secs (0.u,0.s) -Chars 4906 - 4927 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 4932 - 4939 [unstep.] 0.002 secs (0.002u,0.s) -Chars 4940 - 4972 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.002 secs (0.002u,0.s) -Chars 4973 - 4978 [step.] 0.001 secs (0.001u,0.s) -Chars 4979 - 4984 [auto.] 0. secs (0.u,0.s) -Chars 4987 - 4988 [-] 0. secs (0.u,0.s) -Chars 4990 - 5017 [remember~(VisF~e0~k1)~as~y.] 0. secs (0.u,0.s) -Chars 5022 - 5097 [hinduction~REL~before~CIH;~int...] 0.009 secs (0.008u,0.s) -Chars 5102 - 5103 [+] 0. secs (0.u,0.s) -Chars 5104 - 5122 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5123 - 5130 [intros.] 0. secs (0.u,0.s) -Chars 5137 - 5161 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) -Chars 5168 - 5178 [apply~REL.] 0. secs (0.u,0.s) -Chars 5183 - 5184 [+] 0. secs (0.u,0.s) -Chars 5185 - 5204 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 5207 - 5208 [-] 0. secs (0.u,0.s) -Chars 5209 - 5220 [rewrite~H2.] 0. secs (0.u,0.s) -Chars 5221 - 5247 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) -Chars 5252 - 5304 [hinduction~REL~before~e;~intro...] 0.002 secs (0.002u,0.s) -Chars 5305 - 5318 [ddestruction.] 0.004 secs (0.003u,0.s) -Chars 5323 - 5324 [+] 0. secs (0.u,0.s) -Chars 5325 - 5339 [rewrite~<-~H2.] 0. secs (0.u,0.s) -Chars 5340 - 5351 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 5353 - 5364 [rewrite~H2.] 0. secs (0.u,0.s) -Chars 5365 - 5382 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 5389 - 5398 [Unshelve.] 0. secs (0.u,0.s) -Chars 5399 - 5409 [all:~auto.] 0. secs (0.u,0.s) -Chars 5410 - 5425 [now~now~unstep.] 0.003 secs (0.002u,0.s) -Chars 5431 - 5432 [+] 0. secs (0.u,0.s) -Chars 5433 - 5451 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5452 - 5472 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) -Chars 5473 - 5477 [Qed.] 0.024 secs (0.024u,0.s) -Chars 5479 - 6172 [Lemma~eses_au_vis_l~:~~~forall...] 0.001 secs (0.001u,0.s) -Chars 6173 - 6179 [Proof.] 0. secs (0.u,0.s) -Chars 6182 - 6249 [intros~E~R2~R1~Label~priv~l~RR...] 0. secs (0.u,0.s) -Chars 6252 - 6277 [remember~(VisF~e~k)~as~x.] 0. secs (0.u,0.s) -Chars 6278 - 6290 [step~in~REL.] 0. secs (0.u,0.s) -Chars 6291 - 6304 [rewrite~Heqx.] 0. secs (0.u,0.s) -Chars 6307 - 6400 [hinduction~Hsec~before~E;~intr...] 0.06 secs (0.059u,0.s) -Chars 6403 - 6404 [-] 0. secs (0.u,0.s) -Chars 6405 - 6426 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 6431 - 6438 [unstep.] 0.002 secs (0.002u,0.s) -Chars 6439 - 6471 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.001 secs (0.001u,0.s) -Chars 6472 - 6477 [step.] 0.001 secs (0.001u,0.s) -Chars 6478 - 6483 [auto.] 0. secs (0.u,0.s) -Chars 6486 - 6487 [-] 0. secs (0.u,0.s) -Chars 6489 - 6516 [remember~(VisF~e0~k2)~as~y.] 0. secs (0.u,0.s) -Chars 6521 - 6596 [hinduction~REL~before~CIH;~int...] 0.009 secs (0.009u,0.s) -Chars 6601 - 6602 [+] 0. secs (0.u,0.s) -Chars 6603 - 6621 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 6622 - 6629 [intros.] 0. secs (0.u,0.s) -Chars 6636 - 6660 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) -Chars 6667 - 6677 [apply~REL.] 0. secs (0.u,0.s) -Chars 6682 - 6683 [+] 0. secs (0.u,0.s) -Chars 6684 - 6703 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 6706 - 6707 [-] 0. secs (0.u,0.s) -Chars 6708 - 6719 [rewrite~H2.] 0. secs (0.u,0.s) -Chars 6720 - 6746 [remember~(VisF~e~k2)~as~y.] 0. secs (0.u,0.s) -Chars 6751 - 6803 [hinduction~REL~before~e;~intro...] 0.002 secs (0.002u,0.s) -Chars 6804 - 6817 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 6822 - 6823 [+] 0. secs (0.u,0.s) -Chars 6824 - 6838 [rewrite~<-~H2.] 0. secs (0.u,0.s) -Chars 6839 - 6850 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 6852 - 6863 [rewrite~H2.] 0. secs (0.u,0.s) -Chars 6864 - 6881 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 6888 - 6897 [Unshelve.] 0. secs (0.u,0.s) -Chars 6898 - 6908 [all:~auto.] 0. secs (0.u,0.s) -Chars 6909 - 6924 [now~now~unstep.] 0.003 secs (0.003u,0.s) -Chars 6930 - 6931 [+] 0. secs (0.u,0.s) -Chars 6932 - 6950 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 6951 - 6971 [eapply~IHREL;~eauto.] 0.001 secs (0.001u,0.s) -Chars 6972 - 6976 [Qed.] 0.025 secs (0.025u,0.s) -Chars 6978 - 7408 [Lemma~eses_aux_ret_r~:~~~foral...] 0. secs (0.u,0.s) -Chars 7409 - 7415 [Proof.] 0. secs (0.u,0.s) -Chars 7418 - 7471 [intros~E~R2~R1~Label~priv~l~RR...] 0. secs (0.u,0.s) -Chars 7474 - 7488 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 7489 - 7513 [remember~(RetF~r0)~as~x.] 0.001 secs (0.001u,0.s) -Chars 7516 - 7529 [rewrite~Heqx.] 0. secs (0.u,0.s) -Chars 7530 - 7590 [hinduction~Hsec~before~E;~intr...] 0.017 secs (0.017u,0.s) -Chars 7593 - 7594 [-] 0. secs (0.u,0.s) -Chars 7595 - 7619 [remember~(RetF~r1)~as~y.] 0. secs (0.u,0.s) -Chars 7624 - 7685 [hinduction~Heutt~before~E;~int...] 0.004 secs (0.004u,0.s) -Chars 7690 - 7708 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7709 - 7731 [eapply~IHHeutt;~eauto.] 0. secs (0.u,0.s) -Chars 7734 - 7735 [-] 0. secs (0.u,0.s) -Chars 7736 - 7757 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 7758 - 7765 [unstep.] 0.002 secs (0.002u,0.s) -Chars 7766 - 7791 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) -Chars 7792 - 7797 [step.] 0.001 secs (0.001u,0.s) -Chars 7798 - 7803 [auto.] 0. secs (0.u,0.s) -Chars 7806 - 7807 [-] 0. secs (0.u,0.s) -Chars 7808 - 7834 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) -Chars 7839 - 7910 [hinduction~Heutt~before~E;~int...] 0.012 secs (0.011u,0.s) -Chars 7915 - 7916 [+] 0. secs (0.u,0.s) -Chars 7918 - 7929 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 7930 - 7941 [rewrite~H2.] 0. secs (0.u,0.s) -Chars 7942 - 7959 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 7968 - 7983 [now~now~unstep.] 0.003 secs (0.003u,0.s) -Chars 7989 - 7990 [+] 0. secs (0.u,0.s) -Chars 7991 - 8009 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8010 - 8032 [eapply~IHHeutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 8033 - 8037 [Qed.] 0.012 secs (0.012u,0.s) -Chars 8039 - 8095 [Definition~classic_empty~:=~Se...] 0. secs (0.u,0.s) -Chars 9001 - 9218 [Lemma~eutt_secure_eqit_secure~...] 0. secs (0.u,0.s) -Chars 9219 - 9225 [Proof.] 0. secs (0.u,0.s) -Chars 9228 - 9259 [intros~E~Label~priv~l~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 9260 - 9279 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9280 - 9308 [intros~t1~t1'~t2~Heutt~Hsec.] 0. secs (0.u,0.s) -Chars 9311 - 9325 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 9326 - 9339 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 9343 - 9401 [hinduction~Heutt~before~E;~int...] 0.003 secs (0.003u,0.s) -Chars 9404 - 9405 [-] 0. secs (0.u,0.s) -Chars 9406 - 9430 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) -Chars 9431 - 9495 [hinduction~Hsec~before~E;~intr...] 0.02 secs (0.02u,0.s) -Chars 9500 - 9501 [+] 0. secs (0.u,0.s) -Chars 9502 - 9520 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9521 - 9542 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 9547 - 9548 [+] 0. secs (0.u,0.s) -Chars 9549 - 9560 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 9561 - 9578 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 9581 - 9582 [-] 0. secs (0.u,0.s) -Chars 9583 - 9603 [genobs_clear~t2~ot2.] 0. secs (0.u,0.s) -Chars 9608 - 9682 [assert~(Ht2~:~(exists~m3,~ot2~...] 0. secs (0.u,0.s) -Chars 9687 - 9688 [{] 0. secs (0.u,0.s) -Chars 9689 - 9744 [destruct~ot2;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) -Chars 9745 - 9746 [}] 0. secs (0.u,0.s) -Chars 9817 - 9852 [destruct~Ht2~as~[[m3~Hm3]|~Ht2].] 0. secs (0.u,0.s) -Chars 9857 - 9858 [+] 0. secs (0.u,0.s) -Chars 9859 - 9865 [subst.] 0. secs (0.u,0.s) -Chars 9867 - 9879 [constructor.] 0. secs (0.u,0.s) -Chars 9880 - 9898 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 9905 - 9927 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 9928 - 9950 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 9951 - 9973 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 9980 - 10002 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 10003 - 10008 [step.] 0. secs (0.u,0.s) -Chars 10009 - 10014 [auto.] 0. secs (0.u,0.s) -Chars 10019 - 10020 [+] 0. secs (0.u,0.s) -Chars 10021 - 10074 [destruct~ot2;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) -Chars 10081 - 10082 [*] 0. secs (0.u,0.s) -Chars 10084 - 10108 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) -Chars 10118 - 10167 [eapply~eses_aux_ret_r~with~(m1...] 0. secs (0.u,0.s) -Chars 10177 - 10203 [now~do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 10210 - 10211 [*] 0. secs (0.u,0.s) -Chars 10212 - 10260 [assert~(leq~(priv~_~e)~l~\/~~~...] 0. secs (0.u,0.s) -Chars 10269 - 10270 [{] 0. secs (0.u,0.s) -Chars 10271 - 10285 [apply~classic.] 0. secs (0.u,0.s) -Chars 10286 - 10287 [}] 0. secs (0.u,0.s) -Chars 10296 - 10363 [destruct~H~as~[SECCHECK|~SECCH...] 0. secs (0.u,0.s) -Chars 10372 - 10374 [++] 0. secs (0.u,0.s) -Chars 10376 - 10400 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) -Chars 10401 - 10447 [apply~eses_au_vis_r~with~(m1~:...] 0. secs (0.u,0.s) -Chars 10459 - 10481 [do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 10482 - 10487 [auto.] 0. secs (0.u,0.s) -Chars 10496 - 10498 [++] 0. secs (0.u,0.s) -Chars 10500 - 10524 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) -Chars 10525 - 10571 [apply~eses_au_vis_r~with~(m1~:...] 0. secs (0.u,0.s) -Chars 10583 - 10605 [do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 10606 - 10611 [auto.] 0. secs (0.u,0.s) -Chars 10620 - 10622 [++] 0. secs (0.u,0.s) -Chars 10623 - 10635 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 10636 - 10654 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 10666 - 10688 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 10689 - 10694 [step.] 0. secs (0.u,0.s) -Chars 10695 - 10700 [auto.] 0. secs (0.u,0.s) -Chars 10709 - 10711 [++] 0. secs (0.u,0.s) -Chars 10712 - 10722 [unpriv_co.] 0. secs (0.u,0.s) -Chars 10724 - 10735 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10737 - 10747 [apply~REL.] 0. secs (0.u,0.s) -Chars 10759 - 10781 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 10793 - 10815 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 10827 - 10862 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) -Chars 10874 - 10896 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 10897 - 10902 [step.] 0. secs (0.u,0.s) -Chars 10903 - 10908 [auto.] 0. secs (0.u,0.s) -Chars 10911 - 10912 [-] 0. secs (0.u,0.s) -Chars 10913 - 10991 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) -Chars 10997 - 11008 [clear~Hsec.] 0. secs (0.u,0.s) -Chars 11009 - 11028 [rename~H~into~Hsec.] 0. secs (0.u,0.s) -Chars 11033 - 11073 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 11078 - 11079 [+] 0. secs (0.u,0.s) -Chars 11080 - 11093 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 11103 - 11112 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 11113 - 11139 [remember~(VisF~e~k1)~as~x.] 0. secs (0.u,0.s) -Chars 11146 - 11235 [hinduction~Hsec~before~E;~intr...] 0.061 secs (0.06u,0.s) -Chars 11242 - 11243 [*] 0. secs (0.u,0.s) -Chars 11244 - 11262 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 11263 - 11284 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 11291 - 11292 [*] 0. secs (0.u,0.s) -Chars 11293 - 11319 [constructor;~auto;~intros.] 0. secs (0.u,0.s) -Chars 11320 - 11346 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 11348 - 11356 [apply~H.] 0. secs (0.u,0.s) -Chars 11363 - 11364 [*] 0. secs (0.u,0.s) -Chars 11365 - 11389 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 11390 - 11401 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 11402 - 11419 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 11424 - 11425 [+] 0. secs (0.u,0.s) -Chars 11426 - 11453 [destruct~(classic_empty~u).] 0. secs (0.u,0.s) -Chars 11460 - 11461 [*] 0. secs (0.u,0.s) -Chars 11462 - 11475 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 11476 - 11485 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 11494 - 11516 [destruct~(observe~t2).] 0. secs (0.u,0.s) -Chars 11525 - 11527 [--] 0. secs (0.u,0.s) -Chars 11528 - 11550 [inv~Hsec;~contra_size.] 0.015 secs (0.014u,0.s) -Chars 11559 - 11561 [--] 0. secs (0.u,0.s) -Chars 11562 - 11574 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 11575 - 11607 [apply~CIH~with~(t1~:=~Vis~e~k1).] 0. secs (0.u,0.s) -Chars 11619 - 11621 [++] 0. secs (0.u,0.s) -Chars 11622 - 11627 [step.] 0.001 secs (0.001u,0.s) -Chars 11628 - 11640 [constructor.] 0. secs (0.u,0.s) -Chars 11641 - 11646 [auto.] 0. secs (0.u,0.s) -Chars 11658 - 11660 [++] 0. secs (0.u,0.s) -Chars 11661 - 11728 [inv~Hsec;~ddestruction;~subst;...] 0.032 secs (0.032u,0.s) -Chars 11729 - 11734 [step.] 0. secs (0.u,0.s) -Chars 11735 - 11740 [auto.] 0. secs (0.u,0.s) -Chars 11756 - 11761 [auto.] 0. secs (0.u,0.s) -Chars 11770 - 11772 [--] 0. secs (0.u,0.s) -Chars 11773 - 11839 [inv~Hsec;~ddestruction;~subst;...] 0.053 secs (0.053u,0.s) -Chars 11851 - 11853 [++] 0. secs (0.u,0.s) -Chars 11854 - 11866 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 11867 - 11899 [apply~CIH~with~(t1~:=~Vis~e~k1).] 0. secs (0.u,0.s) -Chars 11914 - 11915 [{] 0. secs (0.u,0.s) -Chars 11916 - 11921 [step.] 0.001 secs (0.001u,0.s) -Chars 11922 - 11934 [constructor.] 0. secs (0.u,0.s) -Chars 11935 - 11939 [red.] 0. secs (0.u,0.s) -Chars 11940 - 11945 [auto.] 0. secs (0.u,0.s) -Chars 11946 - 11947 [}] 0. secs (0.u,0.s) -Chars 11962 - 11963 [{] 0. secs (0.u,0.s) -Chars 11964 - 11981 [rewrite~H1~in~H3.] 0. secs (0.u,0.s) -Chars 11982 - 11987 [step.] 0. secs (0.u,0.s) -Chars 11988 - 11997 [apply~H3.] 0. secs (0.u,0.s) -Chars 11998 - 11999 [}] 0. secs (0.u,0.s) -Chars 12011 - 12013 [++] 0. secs (0.u,0.s) -Chars 12015 - 12027 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12028 - 12060 [apply~CIH~with~(t1~:=~Vis~e~k1).] 0. secs (0.u,0.s) -Chars 12075 - 12076 [{] 0. secs (0.u,0.s) -Chars 12077 - 12082 [step.] 0.001 secs (0.001u,0.s) -Chars 12083 - 12095 [constructor.] 0. secs (0.u,0.s) -Chars 12096 - 12100 [red.] 0. secs (0.u,0.s) -Chars 12101 - 12106 [auto.] 0. secs (0.u,0.s) -Chars 12107 - 12108 [}] 0. secs (0.u,0.s) -Chars 12123 - 12124 [{] 0. secs (0.u,0.s) -Chars 12125 - 12134 [apply~H2.] 0. secs (0.u,0.s) -Chars 12135 - 12136 [}] 0. secs (0.u,0.s) -Chars 12148 - 12150 [++] 0. secs (0.u,0.s) -Chars 12152 - 12164 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12165 - 12177 [contra_size.] 0. secs (0.u,0.s) -Chars 12184 - 12185 [*] 0. secs (0.u,0.s) -Chars 12186 - 12199 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 12200 - 12209 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 12218 - 12240 [destruct~(observe~t2).] 0. secs (0.u,0.s) -Chars 12249 - 12251 [++] 0. secs (0.u,0.s) -Chars 12252 - 12320 [eapply~eses_aux_ret_r~with~(m1...] 0. secs (0.u,0.s) -Chars 12332 - 12337 [step.] 0.001 secs (0.001u,0.s) -Chars 12338 - 12350 [constructor.] 0. secs (0.u,0.s) -Chars 12351 - 12355 [red.] 0. secs (0.u,0.s) -Chars 12356 - 12361 [auto.] 0. secs (0.u,0.s) -Chars 12370 - 12372 [++] 0. secs (0.u,0.s) -Chars 12373 - 12383 [unpriv_co.] 0. secs (0.u,0.s) -Chars 12384 - 12427 [apply~CIH~with~(t1~:=~k1~a);~t...] 0. secs (0.u,0.s) -Chars 12439 - 12474 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) -Chars 12475 - 12497 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 12509 - 12531 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 12532 - 12554 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 12555 - 12560 [step.] 0. secs (0.u,0.s) -Chars 12561 - 12566 [auto.] 0. secs (0.u,0.s) -Chars 12575 - 12577 [++] 0. secs (0.u,0.s) -Chars 12578 - 12618 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 12630 - 12632 [**] 0. secs (0.u,0.s) -Chars 12633 - 12657 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) -Chars 12672 - 12722 [eapply~eses_au_vis_r~with~(m1~...] 0. secs (0.u,0.s) -Chars 12737 - 12742 [step.] 0.001 secs (0.001u,0.s) -Chars 12743 - 12755 [constructor.] 0.001 secs (0.001u,0.s) -Chars 12756 - 12760 [red.] 0. secs (0.u,0.s) -Chars 12761 - 12766 [auto.] 0. secs (0.u,0.s) -Chars 12778 - 12780 [**] 0. secs (0.u,0.s) -Chars 12781 - 12808 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 12823 - 12826 [---] 0. secs (0.u,0.s) -Chars 12827 - 12839 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 12840 - 12866 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 12885 - 12920 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) -Chars 12921 - 12926 [step.] 0. secs (0.u,0.s) -Chars 12927 - 12932 [auto.] 0. secs (0.u,0.s) -Chars 12947 - 12950 [---] 0. secs (0.u,0.s) -Chars 12951 - 12961 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 12962 - 12988 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 13067 - 13132 [do~2~(eapply~unpriv_e_eqit_sec...] 0. secs (0.u,0.s) -Chars 13151 - 13156 [step.] 0. secs (0.u,0.s) -Chars 13157 - 13162 [auto.] 0. secs (0.u,0.s) -Chars 13165 - 13166 [-] 0. secs (0.u,0.s) -Chars 13167 - 13189 [eapply~IHHeutt;~eauto.] 0. secs (0.u,0.s) -Chars 13190 - 13197 [unstep.] 0. secs (0.u,0.s) -Chars 13202 - 13224 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 13225 - 13230 [step.] 0. secs (0.u,0.s) -Chars 13231 - 13236 [auto.] 0. secs (0.u,0.s) -Chars 13237 - 13241 [Qed.] 0.087 secs (0.086u,0.s) -Chars 13244 - 13574 [Lemma~eqit_secure_TauLR~:~~~fo...] 0. secs (0.u,0.s) -Chars 13575 - 13581 [Proof.] 0. secs (0.u,0.s) -Chars 13584 - 13622 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) -Chars 13625 - 13632 [intros.] 0. secs (0.u,0.s) -Chars 13633 - 13643 [step~in~H.] 0. secs (0.u,0.s) -Chars 13644 - 13653 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 13654 - 13659 [step.] 0. secs (0.u,0.s) -Chars 13660 - 13664 [cbn.] 0. secs (0.u,0.s) -Chars 13667 - 13691 [remember~(TauF~t0)~as~x.] 0. secs (0.u,0.s) -Chars 13692 - 13716 [remember~(TauF~t4)~as~y.] 0. secs (0.u,0.s) -Chars 13719 - 13769 [hinduction~H~before~b2;~intros...] 0.002 secs (0.002u,0.s) -Chars 13772 - 13773 [-] 0. secs (0.u,0.s) -Chars 13774 - 13793 [inv~Heqx;~inv~Heqy.] 0.003 secs (0.003u,0.s) -Chars 13794 - 13805 [now~unstep.] 0. secs (0.u,0.s) -Chars 13809 - 13810 [-] 0. secs (0.u,0.s) -Chars 13811 - 13820 [inv~Heqx.] 0.013 secs (0.013u,0.s) -Chars 13821 - 13845 [inv~H;~eauto~with~itree.] 0.277 secs (0.276u,0.001s) -Chars 13850 - 13851 [+] 0. secs (0.u,0.s) -Chars 13853 - 13864 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 13865 - 13876 [now~unstep.] 0. secs (0.u,0.s) -Chars 13882 - 13883 [+] 0. secs (0.u,0.s) -Chars 13884 - 13895 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 13896 - 13913 [rewrite~H1~in~H2.] 0. secs (0.u,0.s) -Chars 13920 - 13938 [specialize~(H2~a).] 0. secs (0.u,0.s) -Chars 13939 - 13957 [genobs~(k1~a)~ok1.] 0. secs (0.u,0.s) -Chars 13958 - 13971 [clear~Heqok1.] 0. secs (0.u,0.s) -Chars 13978 - 14002 [remember~(TauF~t4)~as~y.] 0. secs (0.u,0.s) -Chars 14009 - 14069 [hinduction~H2~before~b2;~intro...] 0.314 secs (0.312u,0.002s) -Chars 14076 - 14077 [*] 0. secs (0.u,0.s) -Chars 14079 - 14109 [constructor;~auto;~now~unstep.] 0. secs (0.u,0.s) -Chars 14117 - 14118 [*] 0. secs (0.u,0.s) -Chars 14120 - 14131 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 14132 - 14143 [now~unstep.] 0. secs (0.u,0.s) -Chars 14151 - 14152 [*] 0. secs (0.u,0.s) -Chars 14153 - 14167 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 14172 - 14173 [+] 0. secs (0.u,0.s) -Chars 14174 - 14189 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 14192 - 14193 [-] 0. secs (0.u,0.s) -Chars 14194 - 14203 [inv~Heqy.] 0.007 secs (0.007u,0.s) -Chars 14204 - 14228 [inv~H;~eauto~with~itree.] 0.283 secs (0.281u,0.002s) -Chars 14233 - 14234 [+] 0. secs (0.u,0.s) -Chars 14236 - 14247 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 14248 - 14259 [now~unstep.] 0. secs (0.u,0.s) -Chars 14265 - 14266 [+] 0. secs (0.u,0.s) -Chars 14267 - 14284 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) -Chars 14285 - 14296 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 14297 - 14315 [specialize~(H2~a).] 0. secs (0.u,0.s) -Chars 14322 - 14340 [genobs~(k2~a)~ok2.] 0. secs (0.u,0.s) -Chars 14341 - 14354 [clear~Heqok2.] 0. secs (0.u,0.s) -Chars 14361 - 14385 [remember~(TauF~t0)~as~y.] 0.001 secs (0.u,0.s) -Chars 14392 - 14452 [hinduction~H2~before~b2;~intro...] 0.33 secs (0.328u,0.001s) -Chars 14459 - 14460 [*] 0. secs (0.u,0.s) -Chars 14462 - 14480 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 14481 - 14492 [now~unstep.] 0. secs (0.u,0.s) -Chars 14500 - 14501 [*] 0. secs (0.u,0.s) -Chars 14502 - 14513 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 14515 - 14526 [now~unstep.] 0. secs (0.u,0.s) -Chars 14534 - 14535 [*] 0. secs (0.u,0.s) -Chars 14536 - 14550 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 14555 - 14556 [+] 0. secs (0.u,0.s) -Chars 14557 - 14572 [now~step~in~H2.] 0. secs (0.u,0.s) -Chars 14573 - 14577 [Qed.] 0.033 secs (0.033u,0.s) -Chars 14579 - 14990 [Lemma~eqit_secure_TauLVisR~:~~...] 0. secs (0.u,0.s) -Chars 14991 - 14997 [Proof.] 0. secs (0.u,0.s) -Chars 15000 - 15056 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) -Chars 15059 - 15072 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 15073 - 15082 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 15085 - 15109 [remember~(TauF~t3)~as~x.] 0. secs (0.u,0.s) -Chars 15110 - 15135 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) -Chars 15138 - 15190 [hinduction~Hsec~before~b2;~int...] 0.002 secs (0.002u,0.s) -Chars 15193 - 15194 [-] 0. secs (0.u,0.s) -Chars 15195 - 15204 [inv~Heqx.] 0.015 secs (0.015u,0.s) -Chars 15205 - 15215 [inv~CHECK.] 0.011 secs (0.011u,0.s) -Chars 15220 - 15245 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) -Chars 15246 - 15251 [step.] 0. secs (0.u,0.s) -Chars 15252 - 15265 [clear~IHHsec.] 0. secs (0.u,0.s) -Chars 15270 - 15394 [hinduction~Hsec~before~b2;~int...] 0.227 secs (0.226u,0.001s) -Chars 15399 - 15400 [+] 0. secs (0.u,0.s) -Chars 15401 - 15419 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 15421 - 15432 [now~unstep.] 0. secs (0.u,0.s) -Chars 15438 - 15439 [+] 0. secs (0.u,0.s) -Chars 15440 - 15451 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 15453 - 15464 [now~unstep.] 0. secs (0.u,0.s) -Chars 15470 - 15471 [+] 0. secs (0.u,0.s) -Chars 15473 - 15490 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 15491 - 15505 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 15508 - 15509 [-] 0. secs (0.u,0.s) -Chars 15510 - 15519 [inv~Heqx.] 0.001 secs (0.001u,0.s) -Chars 15520 - 15529 [inv~Heqy.] 0.001 secs (0.001u,0.s) -Chars 15530 - 15550 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) -Chars 15552 - 15560 [apply~H.] 0. secs (0.u,0.s) -Chars 15563 - 15564 [-] 0. secs (0.u,0.s) -Chars 15565 - 15574 [inv~Heqx.] 0.001 secs (0.001u,0.s) -Chars 15575 - 15584 [inv~Heqy.] 0.002 secs (0.002u,0.s) -Chars 15585 - 15605 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 15606 - 15622 [rewrite~H2~in~H.] 0. secs (0.u,0.s) -Chars 15627 - 15636 [clear~H0.] 0. secs (0.u,0.s) -Chars 15637 - 15649 [clear~H2~t1.] 0. secs (0.u,0.s) -Chars 15650 - 15674 [remember~(TauF~t3)~as~x.] 0. secs (0.u,0.s) -Chars 15679 - 15684 [step.] 0. secs (0.u,0.s) -Chars 15685 - 15702 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 15707 - 15783 [hinduction~H~before~b2;~intros...] 0.161 secs (0.16u,0.001s) -Chars 15788 - 15789 [+] 0. secs (0.u,0.s) -Chars 15791 - 15809 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 15810 - 15821 [now~unstep.] 0. secs (0.u,0.s) -Chars 15827 - 15828 [+] 0. secs (0.u,0.s) -Chars 15830 - 15841 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 15842 - 15853 [now~unstep.] 0. secs (0.u,0.s) -Chars 15859 - 15860 [+] 0. secs (0.u,0.s) -Chars 15861 - 15875 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 15878 - 15879 [-] 0. secs (0.u,0.s) -Chars 15882 - 15891 [inv~Heqx.] 0.001 secs (0.001u,0.s) -Chars 15892 - 15901 [inv~Heqy.] 0.002 secs (0.002u,0.s) -Chars 15902 - 15922 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) -Chars 15923 - 15935 [contra_size.] 0. secs (0.u,0.s) -Chars 15936 - 15940 [Qed.] 0.031 secs (0.031u,0.s) -Chars 15942 - 16331 [Lemma~eqit_secure_TauRVisL~:~~...] 0. secs (0.u,0.s) -Chars 16332 - 16338 [Proof.] 0. secs (0.u,0.s) -Chars 16341 - 16397 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) -Chars 16400 - 16413 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 16414 - 16423 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 16426 - 16450 [remember~(TauF~t3)~as~x.] 0. secs (0.u,0.s) -Chars 16451 - 16476 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) -Chars 16479 - 16531 [hinduction~Hsec~before~b2;~int...] 0.004 secs (0.004u,0.s) -Chars 16534 - 16535 [-] 0. secs (0.u,0.s) -Chars 16536 - 16545 [inv~Heqx.] 0.01 secs (0.01u,0.s) -Chars 16546 - 16556 [inv~CHECK.] 0.013 secs (0.013u,0.s) -Chars 16557 - 16582 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) -Chars 16583 - 16588 [step.] 0. secs (0.u,0.s) -Chars 16589 - 16602 [clear~IHHsec.] 0. secs (0.u,0.s) -Chars 16607 - 16713 [hinduction~Hsec~before~b1;~int...] 0.293 secs (0.291u,0.002s) -Chars 16718 - 16719 [+] 0. secs (0.u,0.s) -Chars 16720 - 16749 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 16751 - 16762 [now~unstep.] 0. secs (0.u,0.s) -Chars 16768 - 16769 [+] 0. secs (0.u,0.s) -Chars 16770 - 16781 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 16783 - 16794 [now~unstep.] 0. secs (0.u,0.s) -Chars 16800 - 16801 [+] 0. secs (0.u,0.s) -Chars 16802 - 16814 [contra_size.] 0. secs (0.u,0.s) -Chars 16819 - 16820 [+] 0. secs (0.u,0.s) -Chars 16821 - 16833 [contra_size.] 0. secs (0.u,0.s) -Chars 16838 - 16839 [+] 0. secs (0.u,0.s) -Chars 16841 - 16858 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 16859 - 16873 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 16876 - 16877 [-] 0. secs (0.u,0.s) -Chars 16878 - 16887 [inv~Heqx.] 0.001 secs (0.001u,0.s) -Chars 16888 - 16897 [inv~Heqy.] 0.001 secs (0.001u,0.s) -Chars 16898 - 16918 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) -Chars 16920 - 16928 [apply~H.] 0. secs (0.u,0.s) -Chars 16931 - 16932 [-] 0. secs (0.u,0.s) -Chars 16933 - 16942 [inv~Heqx.] 0.001 secs (0.001u,0.s) -Chars 16943 - 16952 [inv~Heqy.] 0.002 secs (0.002u,0.s) -Chars 16953 - 16973 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 16975 - 16991 [rewrite~H2~in~H.] 0. secs (0.u,0.s) -Chars 16992 - 17002 [inv~CHECK.] 0.001 secs (0.001u,0.s) -Chars 17007 - 17024 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 17025 - 17030 [step.] 0. secs (0.u,0.s) -Chars 17031 - 17055 [remember~(TauF~t3)~as~y.] 0. secs (0.u,0.s) -Chars 17060 - 17136 [hinduction~H~before~b2;~intros...] 0.203 secs (0.201u,0.001s) -Chars 17141 - 17142 [+] 0. secs (0.u,0.s) -Chars 17144 - 17162 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 17163 - 17174 [now~unstep.] 0. secs (0.u,0.s) -Chars 17180 - 17181 [+] 0. secs (0.u,0.s) -Chars 17183 - 17194 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 17195 - 17206 [now~unstep.] 0. secs (0.u,0.s) -Chars 17212 - 17213 [+] 0. secs (0.u,0.s) -Chars 17214 - 17228 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 17231 - 17232 [-] 0. secs (0.u,0.s) -Chars 17233 - 17242 [inv~Heqx.] 0.001 secs (0.001u,0.s) -Chars 17243 - 17252 [inv~Heqy.] 0.002 secs (0.002u,0.s) -Chars 17253 - 17273 [ddestruction;~subst.] 0.001 secs (0.001u,0.s) -Chars 17274 - 17286 [contra_size.] 0. secs (0.u,0.s) -Chars 17287 - 17291 [Qed.] 0.033 secs (0.033u,0.s) -Chars 17293 - 17790 [Lemma~eqit_secure_VisLR~:~~~fo...] 0. secs (0.u,0.s) -Chars 17791 - 17797 [Proof.] 0. secs (0.u,0.s) -Chars 17800 - 17872 [intros~E~R3~Label~priv~l~b1~b2...] 0. secs (0.u,0.s) -Chars 17875 - 17880 [step.] 0. secs (0.u,0.s) -Chars 17883 - 17894 [step~in~H1.] 0. secs (0.u,0.s) -Chars 17895 - 17904 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 17905 - 17931 [remember~(VisF~e~k2)~as~x.] 0. secs (0.u,0.s) -Chars 17934 - 17960 [remember~(VisF~e0~k)~as~y.] 0. secs (0.u,0.s) -Chars 17963 - 18012 [hinduction~H1~before~l;~intros...] 0.005 secs (0.005u,0.s) -Chars 18015 - 18016 [-] 0. secs (0.u,0.s) -Chars 18017 - 18026 [inv~Heqx.] 0.003 secs (0.003u,0.s) -Chars 18027 - 18036 [inv~Heqy.] 0.003 secs (0.003u,0.s) -Chars 18037 - 18057 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 18058 - 18072 [contradiction.] 0. secs (0.u,0.s) -Chars 18075 - 18076 [-] 0. secs (0.u,0.s) -Chars 18078 - 18087 [inv~Heqx.] 0.003 secs (0.003u,0.s) -Chars 18088 - 18097 [inv~Heqy.] 0.005 secs (0.004u,0.s) -Chars 18098 - 18118 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 18119 - 18130 [now~unstep.] 0. secs (0.u,0.s) -Chars 18134 - 18135 [-] 0. secs (0.u,0.s) -Chars 18136 - 18145 [inv~Heqx.] 0.003 secs (0.003u,0.s) -Chars 18146 - 18166 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 18167 - 18177 [inv~CHECK.] 0.002 secs (0.002u,0.s) -Chars 18178 - 18187 [clear~H0.] 0. secs (0.u,0.s) -Chars 18192 - 18209 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 18214 - 18232 [rewrite~Heqy~in~H.] 0. secs (0.u,0.s) -Chars 18233 - 18244 [clear~Heqy.] 0. secs (0.u,0.s) -Chars 18245 - 18271 [remember~(VisF~e1~k)~as~y.] 0. secs (0.u,0.s) -Chars 18276 - 18395 [hinduction~H~before~l;~intros;...] 0.248 secs (0.247u,0.001s) -Chars 18400 - 18401 [+] 0. secs (0.u,0.s) -Chars 18403 - 18421 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 18422 - 18433 [now~unstep.] 0. secs (0.u,0.s) -Chars 18439 - 18440 [+] 0. secs (0.u,0.s) -Chars 18441 - 18452 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 18454 - 18465 [now~unstep.] 0. secs (0.u,0.s) -Chars 18471 - 18472 [+] 0. secs (0.u,0.s) -Chars 18474 - 18492 [specialize~(H~a0).] 0. secs (0.u,0.s) -Chars 18493 - 18507 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 18510 - 18511 [-] 0. secs (0.u,0.s) -Chars 18512 - 18521 [inv~Heqy.] 0.003 secs (0.003u,0.s) -Chars 18523 - 18543 [ddestruction;~subst.] 0.003 secs (0.003u,0.s) -Chars 18544 - 18554 [inv~CHECK.] 0.002 secs (0.002u,0.s) -Chars 18555 - 18564 [clear~H0.] 0. secs (0.u,0.s) -Chars 18569 - 18587 [rewrite~Heqx~in~H.] 0. secs (0.u,0.s) -Chars 18588 - 18606 [specialize~(H~a0).] 0. secs (0.u,0.s) -Chars 18611 - 18638 [remember~(VisF~e0~k0)~as~y.] 0. secs (0.u,0.s) -Chars 18643 - 18763 [hinduction~H~before~b1;~intros...] 0.257 secs (0.255u,0.001s) -Chars 18768 - 18769 [+] 0. secs (0.u,0.s) -Chars 18771 - 18789 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 18790 - 18801 [now~unstep.] 0. secs (0.u,0.s) -Chars 18807 - 18808 [+] 0. secs (0.u,0.s) -Chars 18810 - 18821 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 18822 - 18833 [now~unstep.] 0. secs (0.u,0.s) -Chars 18839 - 18840 [+] 0. secs (0.u,0.s) -Chars 18842 - 18859 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 18860 - 18874 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 18877 - 18878 [-] 0. secs (0.u,0.s) -Chars 18879 - 18919 [inv~Heqx;~inv~Heqy;~ddestructi...] 0.011 secs (0.01u,0.s) -Chars 18920 - 18932 [contra_size.] 0. secs (0.u,0.s) -Chars 18935 - 18936 [-] 0. secs (0.u,0.s) -Chars 18937 - 18977 [inv~Heqx;~inv~Heqy;~ddestructi...] 0.01 secs (0.01u,0.s) -Chars 18978 - 18990 [contra_size.] 0. secs (0.u,0.s) -Chars 18991 - 18995 [Qed.] 0.063 secs (0.062u,0.s) -Chars 18997 - 19533 [Lemma~eqit_secure_private_VisL...] 0.001 secs (0.001u,0.s) -Chars 19534 - 19540 [Proof.] 0. secs (0.u,0.s) -Chars 19543 - 19550 [intros.] 0. secs (0.u,0.s) -Chars 19551 - 19556 [step.] 0. secs (0.u,0.s) -Chars 19557 - 19561 [cbn.] 0. secs (0.u,0.s) -Chars 19562 - 19572 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 19573 - 19577 [Qed.] 0. secs (0.u,0.s) -Chars 19579 - 20008 [Lemma~eqit_secure_private_VisL...] 0. secs (0.u,0.s) -Chars 20009 - 20015 [Proof.] 0. secs (0.u,0.s) -Chars 20018 - 20025 [intros.] 0. secs (0.u,0.s) -Chars 20026 - 20031 [step.] 0. secs (0.u,0.s) -Chars 20032 - 20036 [cbn.] 0. secs (0.u,0.s) -Chars 20037 - 20048 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 20049 - 20056 [unstep.] 0. secs (0.u,0.s) -Chars 20057 - 20066 [apply~H1.] 0. secs (0.u,0.s) -Chars 20067 - 20071 [Qed.] 0. secs (0.u,0.s) -Chars 20073 - 20501 [Lemma~eqit_secure_private_VisR...] 0. secs (0.u,0.s) -Chars 20502 - 20508 [Proof.] 0. secs (0.u,0.s) -Chars 20511 - 20518 [intros.] 0. secs (0.u,0.s) -Chars 20519 - 20524 [step.] 0. secs (0.u,0.s) -Chars 20525 - 20529 [cbn.] 0. secs (0.u,0.s) -Chars 20530 - 20541 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 20542 - 20549 [unstep.] 0. secs (0.u,0.s) -Chars 20550 - 20559 [apply~H1.] 0. secs (0.u,0.s) -Chars 20560 - 20564 [Qed.] 0. secs (0.u,0.s) -Chars 20566 - 20967 [Lemma~eqit_secure_public_Vis~:...] 0. secs (0.u,0.s) -Chars 20968 - 20974 [Proof.] 0. secs (0.u,0.s) -Chars 20977 - 20991 [split;~intros.] 0. secs (0.u,0.s) -Chars 20994 - 20995 [-] 0. secs (0.u,0.s) -Chars 20996 - 21054 [sinv~H0;~ddestruction;~subst;~...] 0.036 secs (0.036u,0.s) -Chars 21057 - 21058 [-] 0. secs (0.u,0.s) -Chars 21059 - 21064 [step.] 0. secs (0.u,0.s) -Chars 21065 - 21083 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 21085 - 21089 [Qed.] 0.015 secs (0.015u,0.s) -Chars 21091 - 21720 [Lemma~eqit_secure_trans_aux1~:...] 0. secs (0.u,0.s) -Chars 21721 - 21727 [Proof.] 0. secs (0.u,0.s) -Chars 21730 - 21789 [intros~E~R3~R1~Label~priv~l~b2...] 0. secs (0.u,0.s) -Chars 21792 - 21802 [step~in~H.] 0. secs (0.u,0.s) -Chars 21803 - 21812 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 21815 - 21839 [remember~(RetF~r0)~as~x.] 0.001 secs (0.001u,0.s) -Chars 21842 - 21891 [hinduction~Ht23~before~E;~intr...] 0.039 secs (0.039u,0.s) -Chars 21894 - 21895 [-] 0. secs (0.u,0.s) -Chars 21896 - 21920 [remember~(RetF~r1)~as~y.] 0. secs (0.u,0.s) -Chars 21925 - 21984 [hinduction~H0~before~E;~intros...] 0.014 secs (0.014u,0.s) -Chars 21989 - 22008 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 22009 - 22020 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 22021 - 22025 [cbn.] 0. secs (0.u,0.s) -Chars 22026 - 22043 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 22046 - 22047 [-] 0. secs (0.u,0.s) -Chars 22048 - 22069 [eapply~IHHt23;~eauto.] 0. secs (0.u,0.s) -Chars 22074 - 22098 [remember~(TauF~t1)~as~y.] 0. secs (0.u,0.s) -Chars 22103 - 22161 [hinduction~H~before~E;~intros;...] 0.346 secs (0.343u,0.001s) -Chars 22166 - 22167 [+] 0. secs (0.u,0.s) -Chars 22169 - 22187 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 22188 - 22199 [now~unstep.] 0. secs (0.u,0.s) -Chars 22205 - 22206 [+] 0. secs (0.u,0.s) -Chars 22208 - 22219 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 22220 - 22231 [now~unstep.] 0. secs (0.u,0.s) -Chars 22237 - 22238 [+] 0. secs (0.u,0.s) -Chars 22240 - 22254 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 22257 - 22258 [-] 0. secs (0.u,0.s) -Chars 22259 - 22285 [assert~(Hne~:~nonempty~A).] 0. secs (0.u,0.s) -Chars 22286 - 22287 [{] 0. secs (0.u,0.s) -Chars 22288 - 22294 [eauto.] 0. secs (0.u,0.s) -Chars 22295 - 22296 [}] 0. secs (0.u,0.s) -Chars 22349 - 22357 [inv~Hne.] 0.012 secs (0.012u,0.s) -Chars 22358 - 22379 [eapply~(H0~a);~eauto.] 0. secs (0.u,0.s) -Chars 22384 - 22410 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) -Chars 22415 - 22535 [hinduction~H1~before~E;~intros...] 0.436 secs (0.431u,0.002s) -Chars 22540 - 22541 [+] 0. secs (0.u,0.s) -Chars 22543 - 22561 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 22562 - 22573 [now~unstep.] 0. secs (0.u,0.s) -Chars 22579 - 22580 [+] 0. secs (0.u,0.s) -Chars 22582 - 22593 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 22594 - 22605 [now~unstep.] 0. secs (0.u,0.s) -Chars 22611 - 22612 [+] 0. secs (0.u,0.s) -Chars 22614 - 22638 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 22639 - 22650 [now~unstep.] 0. secs (0.u,0.s) -Chars 22652 - 22656 [Qed.] 0.044 secs (0.044u,0.s) -Chars 22658 - 23537 [Lemma~eqit_secure_trans_aux2~:...] 0.001 secs (0.001u,0.s) -Chars 23538 - 23544 [Proof.] 0. secs (0.u,0.s) -Chars 23547 - 23620 [intros~E~R3~R1~Label~priv~l~b2...] 0. secs (0.u,0.s) -Chars 23623 - 23634 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 23635 - 23645 [cbn~in~Ht.] 0. secs (0.u,0.s) -Chars 23646 - 23672 [remember~(VisF~e0~k)~as~x.] 0. secs (0.u,0.s) -Chars 23675 - 23767 [hinduction~Ht23~before~E;~intr...] 0.151 secs (0.15u,0.001s) -Chars 23770 - 23771 [-] 0. secs (0.u,0.s) -Chars 23772 - 23793 [eapply~IHHt23;~eauto.] 0.001 secs (0.001u,0.s) -Chars 23794 - 23807 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 23808 - 23832 [remember~(TauF~t1)~as~y.] 0. secs (0.u,0.s) -Chars 23837 - 23896 [hinduction~Ht~before~E;~intros...] 0.375 secs (0.372u,0.002s) -Chars 23901 - 23902 [+] 0. secs (0.u,0.s) -Chars 23904 - 23922 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 23923 - 23934 [now~unstep.] 0. secs (0.u,0.s) -Chars 23940 - 23941 [+] 0. secs (0.u,0.s) -Chars 23943 - 23954 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 23955 - 23966 [now~unstep.] 0. secs (0.u,0.s) -Chars 23972 - 23973 [+] 0. secs (0.u,0.s) -Chars 23975 - 23989 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 23992 - 23993 [-] 0. secs (0.u,0.s) -Chars 23995 - 24022 [remember~(VisF~e0~k1)~as~y.] 0. secs (0.u,0.s) -Chars 24027 - 24130 [hinduction~Ht~before~E;~intros...] 0.082 secs (0.081u,0.s) -Chars 24135 - 24136 [+] 0. secs (0.u,0.s) -Chars 24138 - 24156 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 24157 - 24164 [intros.] 0. secs (0.u,0.s) -Chars 24165 - 24177 [eapply~CIH0.] 0. secs (0.u,0.s) -Chars 24178 - 24186 [apply~H.] 0. secs (0.u,0.s) -Chars 24187 - 24196 [apply~H0.] 0. secs (0.u,0.s) -Chars 24201 - 24202 [+] 0. secs (0.u,0.s) -Chars 24203 - 24222 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 24223 - 24234 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 24235 - 24252 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 24255 - 24256 [-] 0. secs (0.u,0.s) -Chars 24257 - 24284 [assert~(nonempty~A);~eauto.] 0.002 secs (0.002u,0.s) -Chars 24285 - 24292 [inv~H1.] 0.012 secs (0.012u,0.s) -Chars 24293 - 24310 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 24315 - 24324 [Unshelve.] 0. secs (0.u,0.s) -Chars 24325 - 24336 [all:~auto.] 0. secs (0.u,0.s) -Chars 24337 - 24346 [clear~H0.] 0. secs (0.u,0.s) -Chars 24347 - 24363 [rewrite~H2~in~H.] 0. secs (0.u,0.s) -Chars 24368 - 24394 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) -Chars 24399 - 24519 [hinduction~Ht~before~E;~intros...] 0.416 secs (0.413u,0.003s) -Chars 24524 - 24525 [+] 0. secs (0.u,0.s) -Chars 24527 - 24545 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 24546 - 24557 [now~unstep.] 0. secs (0.u,0.s) -Chars 24563 - 24564 [+] 0. secs (0.u,0.s) -Chars 24566 - 24577 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 24578 - 24589 [now~unstep.] 0. secs (0.u,0.s) -Chars 24595 - 24596 [+] 0. secs (0.u,0.s) -Chars 24598 - 24622 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.013u,0.s) -Chars 24623 - 24634 [now~unstep.] 0. secs (0.u,0.s) -Chars 24637 - 24641 [Qed.] 0.078 secs (0.078u,0.s) -Chars 24644 - 25015 [Lemma~secret_halt_trans_1~:~~~...] 0.001 secs (0.001u,0.s) -Chars 25016 - 25022 [Proof.] 0. secs (0.u,0.s) -Chars 25025 - 25088 [intros~E~Label~priv~l~b1~b2~R1...] 0. secs (0.u,0.s) -Chars 25091 - 25115 [generalize~dependent~t3.] 0. secs (0.u,0.s) -Chars 25116 - 25140 [generalize~dependent~t1.] 0. secs (0.u,0.s) -Chars 25143 - 25162 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 25163 - 25184 [intros~t1~t3~Ht1~Ht3.] 0. secs (0.u,0.s) -Chars 25187 - 25199 [step~in~Ht1.] 0. secs (0.u,0.s) -Chars 25200 - 25212 [step~in~Ht3.] 0. secs (0.u,0.s) -Chars 25213 - 25222 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 25225 - 25250 [remember~(VisF~e~k)~as~x.] 0.001 secs (0.001u,0.s) -Chars 25253 - 25372 [hinduction~Ht1~before~c;~intro...] 0.256 secs (0.254u,0.001s) -Chars 25375 - 25376 [-] 0. secs (0.u,0.s) -Chars 25378 - 25443 [inv~Ht3;~ddestruction;~subst;~...] 0.085 secs (0.084u,0.s) -Chars 25448 - 25449 [+] 0. secs (0.u,0.s) -Chars 25450 - 25462 [constructor.] 0. secs (0.u,0.s) -Chars 25463 - 25479 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 25480 - 25485 [step.] 0. secs (0.u,0.s) -Chars 25486 - 25491 [auto.] 0. secs (0.u,0.s) -Chars 25496 - 25497 [+] 0. secs (0.u,0.s) -Chars 25498 - 25514 [unpriv_co;~auto.] 0.001 secs (0.001u,0.s) -Chars 25515 - 25531 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 25532 - 25537 [step.] 0.001 secs (0.001u,0.s) -Chars 25538 - 25555 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) -Chars 25556 - 25565 [apply~H2.] 0. secs (0.u,0.s) -Chars 25570 - 25571 [+] 0. secs (0.u,0.s) -Chars 25573 - 25585 [constructor.] 0. secs (0.u,0.s) -Chars 25586 - 25602 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 25607 - 25608 [+] 0. secs (0.u,0.s) -Chars 25610 - 25637 [destruct~(classic_empty~B).] 0. secs (0.u,0.s) -Chars 25644 - 25645 [*] 0. secs (0.u,0.s) -Chars 25646 - 25658 [unpriv_halt.] 0.001 secs (0.u,0.s) -Chars 25659 - 25686 [apply~CIH;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 25687 - 25692 [step.] 0. secs (0.u,0.s) -Chars 25701 - 25705 [cbn.] 0. secs (0.u,0.s) -Chars 25706 - 25718 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25725 - 25726 [*] 0. secs (0.u,0.s) -Chars 25727 - 25737 [unpriv_co.] 0. secs (0.u,0.s) -Chars 25738 - 25754 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 25755 - 25764 [apply~H1.] 0. secs (0.u,0.s) -Chars 25769 - 25770 [+] 0. secs (0.u,0.s) -Chars 25772 - 25784 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25785 - 25801 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 25802 - 25807 [step.] 0. secs (0.u,0.s) -Chars 25814 - 25818 [cbn.] 0. secs (0.u,0.s) -Chars 25819 - 25831 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25832 - 25844 [contra_size.] 0. secs (0.u,0.s) -Chars 25847 - 25848 [-] 0. secs (0.u,0.s) -Chars 25851 - 25916 [inv~Ht3;~ddestruction;~subst;~...] 0.086 secs (0.086u,0.s) -Chars 25921 - 25922 [+] 0. secs (0.u,0.s) -Chars 25923 - 25935 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25936 - 25952 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 25959 - 25960 [*] 0. secs (0.u,0.s) -Chars 25961 - 25966 [step.] 0. secs (0.u,0.s) -Chars 25967 - 25971 [cbn.] 0. secs (0.u,0.s) -Chars 25972 - 25984 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 25991 - 25992 [*] 0. secs (0.u,0.s) -Chars 25993 - 25998 [step.] 0. secs (0.u,0.s) -Chars 25999 - 26004 [auto.] 0. secs (0.u,0.s) -Chars 26009 - 26010 [+] 0. secs (0.u,0.s) -Chars 26011 - 26023 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26024 - 26040 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26047 - 26048 [*] 0. secs (0.u,0.s) -Chars 26049 - 26054 [step.] 0. secs (0.u,0.s) -Chars 26055 - 26059 [cbn.] 0. secs (0.u,0.s) -Chars 26060 - 26072 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26079 - 26080 [*] 0. secs (0.u,0.s) -Chars 26081 - 26086 [step.] 0. secs (0.u,0.s) -Chars 26087 - 26092 [auto.] 0. secs (0.u,0.s) -Chars 26093 - 26110 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) -Chars 26111 - 26120 [apply~H2.] 0. secs (0.u,0.s) -Chars 26125 - 26126 [+] 0. secs (0.u,0.s) -Chars 26128 - 26140 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26141 - 26157 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26164 - 26169 [step.] 0. secs (0.u,0.s) -Chars 26170 - 26174 [cbn.] 0. secs (0.u,0.s) -Chars 26175 - 26187 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26192 - 26193 [+] 0. secs (0.u,0.s) -Chars 26195 - 26207 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26208 - 26218 [apply~CIH.] 0. secs (0.u,0.s) -Chars 26225 - 26226 [*] 0. secs (0.u,0.s) -Chars 26227 - 26232 [step.] 0. secs (0.u,0.s) -Chars 26233 - 26237 [cbn.] 0. secs (0.u,0.s) -Chars 26238 - 26250 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26257 - 26258 [*] 0. secs (0.u,0.s) -Chars 26259 - 26268 [apply~H1.] 0. secs (0.u,0.s) -Chars 26273 - 26274 [+] 0. secs (0.u,0.s) -Chars 26275 - 26287 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26288 - 26300 [contra_size.] 0. secs (0.u,0.s) -Chars 26303 - 26304 [-] 0. secs (0.u,0.s) -Chars 26306 - 26404 [inv~Ht3;~ddestruction;~subst;~...] 0.087 secs (0.087u,0.s) -Chars 26409 - 26410 [+] 0. secs (0.u,0.s) -Chars 26411 - 26423 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26424 - 26440 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26447 - 26448 [*] 0. secs (0.u,0.s) -Chars 26449 - 26454 [step.] 0. secs (0.u,0.s) -Chars 26455 - 26459 [cbn.] 0. secs (0.u,0.s) -Chars 26460 - 26472 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26473 - 26485 [contra_size.] 0. secs (0.u,0.s) -Chars 26492 - 26493 [*] 0. secs (0.u,0.s) -Chars 26494 - 26499 [step.] 0. secs (0.u,0.s) -Chars 26500 - 26505 [auto.] 0. secs (0.u,0.s) -Chars 26510 - 26511 [+] 0. secs (0.u,0.s) -Chars 26512 - 26522 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 26523 - 26552 [apply~CIH;~auto;~try~apply~H.] 0. secs (0.u,0.s) -Chars 26559 - 26564 [step.] 0. secs (0.u,0.s) -Chars 26565 - 26570 [auto.] 0. secs (0.u,0.s) -Chars 26575 - 26576 [+] 0. secs (0.u,0.s) -Chars 26577 - 26589 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26590 - 26606 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26613 - 26614 [*] 0. secs (0.u,0.s) -Chars 26615 - 26620 [step.] 0. secs (0.u,0.s) -Chars 26621 - 26625 [cbn.] 0. secs (0.u,0.s) -Chars 26626 - 26638 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26639 - 26651 [contra_size.] 0. secs (0.u,0.s) -Chars 26658 - 26659 [*] 0. secs (0.u,0.s) -Chars 26660 - 26665 [step.] 0. secs (0.u,0.s) -Chars 26666 - 26683 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) -Chars 26684 - 26693 [apply~H2.] 0. secs (0.u,0.s) -Chars 26698 - 26699 [+] 0. secs (0.u,0.s) -Chars 26700 - 26710 [unpriv_co.] 0.004 secs (0.004u,0.s) -Chars 26711 - 26721 [apply~CIH.] 0. secs (0.u,0.s) -Chars 26722 - 26730 [apply~H.] 0. secs (0.u,0.s) -Chars 26731 - 26748 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) -Chars 26755 - 26760 [step.] 0. secs (0.u,0.s) -Chars 26761 - 26770 [apply~H2.] 0. secs (0.u,0.s) -Chars 26775 - 26776 [+] 0. secs (0.u,0.s) -Chars 26778 - 26790 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26791 - 26807 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26808 - 26813 [step.] 0. secs (0.u,0.s) -Chars 26820 - 26824 [cbn.] 0. secs (0.u,0.s) -Chars 26825 - 26837 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26838 - 26850 [contra_size.] 0. secs (0.u,0.s) -Chars 26855 - 26856 [+] 0. secs (0.u,0.s) -Chars 26858 - 26868 [unpriv_co.] 0. secs (0.u,0.s) -Chars 26869 - 26885 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 26886 - 26894 [apply~H.] 0. secs (0.u,0.s) -Chars 26899 - 26900 [+] 0. secs (0.u,0.s) -Chars 26901 - 26913 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26914 - 26938 [apply~CIH;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 26945 - 26950 [step.] 0. secs (0.u,0.s) -Chars 26951 - 26955 [cbn.] 0. secs (0.u,0.s) -Chars 26956 - 26968 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 26969 - 26981 [contra_size.] 0. secs (0.u,0.s) -Chars 26986 - 26987 [+] 0. secs (0.u,0.s) -Chars 26989 - 27016 [destruct~(classic_empty~B).] 0. secs (0.u,0.s) -Chars 27023 - 27024 [*] 0. secs (0.u,0.s) -Chars 27025 - 27037 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 27038 - 27054 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 27055 - 27063 [apply~H.] 0. secs (0.u,0.s) -Chars 27072 - 27077 [step.] 0. secs (0.u,0.s) -Chars 27078 - 27082 [cbn.] 0. secs (0.u,0.s) -Chars 27083 - 27095 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 27102 - 27103 [*] 0. secs (0.u,0.s) -Chars 27104 - 27114 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 27115 - 27132 [apply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 27133 - 27141 [apply~H.] 0. secs (0.u,0.s) -Chars 27142 - 27151 [apply~H1.] 0. secs (0.u,0.s) -Chars 27156 - 27157 [+] 0. secs (0.u,0.s) -Chars 27159 - 27171 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 27172 - 27184 [contra_size.] 0. secs (0.u,0.s) -Chars 27189 - 27190 [+] 0. secs (0.u,0.s) -Chars 27192 - 27204 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 27205 - 27221 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 27222 - 27230 [apply~H.] 0. secs (0.u,0.s) -Chars 27237 - 27242 [step.] 0. secs (0.u,0.s) -Chars 27243 - 27247 [cbn.] 0. secs (0.u,0.s) -Chars 27248 - 27260 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 27261 - 27273 [contra_size.] 0.001 secs (0.001u,0.s) -Chars 27274 - 27278 [Qed.] 0.105 secs (0.103u,0.001s) -Chars 27280 - 27652 [Lemma~secret_halt_trans_2~:~~~...] 0.001 secs (0.001u,0.s) -Chars 27653 - 27659 [Proof.] 0. secs (0.u,0.s) -Chars 27662 - 27725 [intros~E~Label~priv~l~b1~b2~R1...] 0. secs (0.u,0.s) -Chars 27728 - 27752 [generalize~dependent~t3.] 0. secs (0.u,0.s) -Chars 27753 - 27777 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 27780 - 27799 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 27800 - 27822 [intros~t2~t3~Ht2~Ht23.] 0. secs (0.u,0.s) -Chars 27825 - 27837 [step~in~Ht2.] 0. secs (0.u,0.s) -Chars 27838 - 27851 [step~in~Ht23.] 0. secs (0.u,0.s) -Chars 27852 - 27861 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 27864 - 27915 [hinduction~Ht23~before~c;~intr...] 0.501 secs (0.497u,0.003s) -Chars 27918 - 27919 [-] 0. secs (0.u,0.s) -Chars 27920 - 27928 [inv~Ht2.] 0.012 secs (0.012u,0.s) -Chars 27929 - 27949 [ddestruction;~subst.] 0.002 secs (0.002u,0.s) -Chars 27950 - 27962 [contra_size.] 0.003 secs (0.003u,0.s) -Chars 27965 - 27966 [-] 0. secs (0.u,0.s) -Chars 27967 - 27979 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 27980 - 27998 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 28003 - 28077 [inv~Ht2;~ddestruction;~subst;~...] 0.037 secs (0.036u,0.s) -Chars 28082 - 28087 [step.] 0. secs (0.u,0.s) -Chars 28088 - 28093 [auto.] 0. secs (0.u,0.s) -Chars 28096 - 28097 [-] 0. secs (0.u,0.s) -Chars 28098 - 28119 [eapply~IHHt23;~eauto.] 0. secs (0.u,0.s) -Chars 28124 - 28197 [inv~Ht2;~ddestruction;~subst;~...] 0.089 secs (0.088u,0.s) -Chars 28202 - 28213 [step~in~H0.] 0. secs (0.u,0.s) -Chars 28214 - 28219 [auto.] 0. secs (0.u,0.s) -Chars 28222 - 28223 [-] 0. secs (0.u,0.s) -Chars 28228 - 28301 [inv~Ht2;~ddestruction;~subst;~...] 0.058 secs (0.058u,0.s) -Chars 28304 - 28305 [-] 0. secs (0.u,0.s) -Chars 28306 - 28318 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 28321 - 28335 [inv~SIZECHECK.] 0.015 secs (0.015u,0.s) -Chars 28336 - 28360 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) -Chars 28365 - 28374 [Unshelve.] 0. secs (0.u,0.s) -Chars 28375 - 28386 [all:~auto.] 0. secs (0.u,0.s) -Chars 28391 - 28464 [inv~Ht2;~ddestruction;~subst;~...] 0.05 secs (0.049u,0.s) -Chars 28469 - 28470 [+] 0. secs (0.u,0.s) -Chars 28471 - 28476 [step.] 0. secs (0.u,0.s) -Chars 28477 - 28486 [apply~H2.] 0. secs (0.u,0.s) -Chars 28491 - 28492 [+] 0. secs (0.u,0.s) -Chars 28493 - 28502 [apply~H1.] 0. secs (0.u,0.s) -Chars 28505 - 28506 [-] 0. secs (0.u,0.s) -Chars 28508 - 28520 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 28521 - 28545 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) -Chars 28550 - 28623 [inv~Ht2;~ddestruction;~subst;~...] 0.04 secs (0.04u,0.s) -Chars 28628 - 28633 [step.] 0. secs (0.u,0.s) -Chars 28634 - 28639 [auto.] 0. secs (0.u,0.s) -Chars 28642 - 28643 [-] 0. secs (0.u,0.s) -Chars 28645 - 28657 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 28658 - 28673 [inv~SIZECHECK1.] 0.015 secs (0.015u,0.s) -Chars 28674 - 28689 [inv~SIZECHECK2.] 0.016 secs (0.016u,0.s) -Chars 28690 - 28714 [eapply~CIH;~try~apply~H.] 0. secs (0.u,0.s) -Chars 28719 - 28728 [Unshelve.] 0. secs (0.u,0.s) -Chars 28729 - 28740 [all:~auto.] 0. secs (0.u,0.s) -Chars 28745 - 28818 [inv~Ht2;~ddestruction;~subst;~...] 0.051 secs (0.05u,0.s) -Chars 28823 - 28824 [+] 0. secs (0.u,0.s) -Chars 28825 - 28830 [step.] 0. secs (0.u,0.s) -Chars 28831 - 28840 [apply~H2.] 0. secs (0.u,0.s) -Chars 28845 - 28846 [+] 0. secs (0.u,0.s) -Chars 28847 - 28856 [apply~H1.] 0. secs (0.u,0.s) -Chars 28859 - 28860 [-] 0. secs (0.u,0.s) -Chars 28861 - 28875 [inv~SIZECHECK.] 0.019 secs (0.019u,0.s) -Chars 28877 - 28894 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 28895 - 28904 [Unshelve.] 0. secs (0.u,0.s) -Chars 28905 - 28916 [all:~auto.] 0. secs (0.u,0.s) -Chars 28921 - 28994 [inv~Ht2;~ddestruction;~subst;~...] 0.065 secs (0.065u,0.s) -Chars 28999 - 29023 [rewrite~itree_eta'~~at~1.] 0.017 secs (0.017u,0.s) -Chars 29024 - 29035 [now~unstep.] 0. secs (0.u,0.s) -Chars 29038 - 29039 [-] 0. secs (0.u,0.s) -Chars 29040 - 29052 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 29053 - 29071 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 29072 - 29077 [step.] 0. secs (0.u,0.s) -Chars 29078 - 29088 [apply~Ht2.] 0. secs (0.u,0.s) -Chars 29093 - 29098 [step.] 0. secs (0.u,0.s) -Chars 29099 - 29107 [apply~H.] 0. secs (0.u,0.s) -Chars 29110 - 29111 [-] 0. secs (0.u,0.s) -Chars 29113 - 29125 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 29126 - 29144 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 29145 - 29150 [step.] 0. secs (0.u,0.s) -Chars 29151 - 29156 [auto.] 0. secs (0.u,0.s) -Chars 29159 - 29160 [-] 0. secs (0.u,0.s) -Chars 29161 - 29173 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 29174 - 29186 [contra_size.] 0. secs (0.u,0.s) -Chars 29189 - 29190 [-] 0. secs (0.u,0.s) -Chars 29191 - 29203 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 29204 - 29245 [eapply~CIH~with~(t2~:=~Vis~e1~...] 0. secs (0.u,0.s) -Chars 29250 - 29251 [+] 0. secs (0.u,0.s) -Chars 29252 - 29257 [step.] 0. secs (0.u,0.s) -Chars 29258 - 29263 [auto.] 0. secs (0.u,0.s) -Chars 29268 - 29269 [+] 0. secs (0.u,0.s) -Chars 29270 - 29278 [apply~H.] 0. secs (0.u,0.s) -Chars 29281 - 29282 [-] 0. secs (0.u,0.s) -Chars 29283 - 29295 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 29296 - 29308 [contra_size.] 0. secs (0.u,0.s) -Chars 29309 - 29313 [Qed.] 0.122 secs (0.121u,0.001s) -Chars 29315 - 29600 [Lemma~eqit_secure_RR_imp~:~~~f...] 0. secs (0.u,0.s) -Chars 29601 - 29607 [Proof.] 0. secs (0.u,0.s) -Chars 29610 - 29617 [intros.] 0. secs (0.u,0.s) -Chars 29618 - 29642 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 29643 - 29653 [revert~t1.] 0. secs (0.u,0.s) -Chars 29656 - 29675 [icoinduction~c~CIH.] 0.002 secs (0.001u,0.s) -Chars 29676 - 29694 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 29697 - 29710 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 29711 - 29720 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 29723 - 29887 [hinduction~Ht12~before~c;~intr...] 0.037 secs (0.037u,0.s) -Chars 29891 - 29909 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 29910 - 29917 [intros.] 0. secs (0.u,0.s) -Chars 29918 - 29936 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 29937 - 29946 [apply~H0.] 0. secs (0.u,0.s) -Chars 29949 - 29950 [-] 0. secs (0.u,0.s) -Chars 29952 - 29964 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 29965 - 29983 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 29984 - 29993 [apply~H0.] 0. secs (0.u,0.s) -Chars 29996 - 29997 [-] 0. secs (0.u,0.s) -Chars 29999 - 30011 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 30012 - 30030 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 30031 - 30040 [apply~H0.] 0. secs (0.u,0.s) -Chars 30041 - 30045 [Qed.] 0.004 secs (0.004u,0.s) -Chars 30047 - 30420 [Lemma~secret_halt_trans_3~:~~~...] 0.001 secs (0.001u,0.s) -Chars 30421 - 30427 [Proof.] 0. secs (0.u,0.s) -Chars 30430 - 30437 [intros.] 0. secs (0.u,0.s) -Chars 30438 - 30466 [apply~eqit_secure_sym~in~H1.] 0. secs (0.u,0.s) -Chars 30467 - 30495 [apply~eqit_secure_sym~in~H2.] 0. secs (0.u,0.s) -Chars 30498 - 30520 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 30521 - 30561 [eapply~secret_halt_trans_2~in~...] 0. secs (0.u,0.s) -Chars 30564 - 30597 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) -Chars 30600 - 30607 [intros.] 0. secs (0.u,0.s) -Chars 30608 - 30615 [inv~H3.] 0. secs (0.u,0.s) -Chars 30616 - 30636 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 30637 - 30641 [Qed.] 0. secs (0.u,0.s) -Chars 30643 - 30988 [Lemma~eqit_secure_trans~:~~~fo...] 0. secs (0.u,0.s) -Chars 30989 - 30995 [Proof.] 0. secs (0.u,0.s) -Chars 30998 - 31043 [intros~E~Label~priv~l~b1~b2~R1...] 0. secs (0.u,0.s) -Chars 31046 - 31066 [icoinduction~c~CIH0.] 0. secs (0.u,0.s) -Chars 31067 - 31093 [intros~t1~t2~t3~Ht12~Ht23.] 0. secs (0.u,0.s) -Chars 31096 - 31109 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 31110 - 31123 [step~in~Ht23.] 0. secs (0.u,0.s) -Chars 31127 - 31177 [hinduction~Ht12~before~E;~intr...] 0.014 secs (0.014u,0.s) -Chars 31180 - 31181 [-] 0. secs (0.u,0.s) -Chars 31182 - 31206 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) -Chars 31211 - 31272 [hinduction~Ht23~before~E;~intr...] 0.021 secs (0.021u,0.s) -Chars 31277 - 31301 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 31302 - 31313 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 31314 - 31331 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 31334 - 31335 [-] 0. secs (0.u,0.s) -Chars 31337 - 31351 [genobs~t4~ot4.] 0. secs (0.u,0.s) -Chars 31356 - 31425 [assert~((exists~t5,~ot4~=~TauF...] 0. secs (0.u,0.s) -Chars 31430 - 31431 [{] 0. secs (0.u,0.s) -Chars 31432 - 31481 [destruct~ot4;~eauto;~right;~in...] 0.005 secs (0.005u,0.s) -Chars 31482 - 31483 [}] 0. secs (0.u,0.s) -Chars 31488 - 31521 [destruct~H0~as~[[t5~Ht4]|~Ht4].] 0. secs (0.u,0.s) -Chars 31526 - 31527 [+] 0. secs (0.u,0.s) -Chars 31528 - 31534 [subst.] 0. secs (0.u,0.s) -Chars 31535 - 31547 [rewrite~Ht4.] 0. secs (0.u,0.s) -Chars 31548 - 31568 [rewrite~Ht4~in~Ht23.] 0. secs (0.u,0.s) -Chars 31569 - 31581 [constructor.] 0. secs (0.u,0.s) -Chars 31588 - 31607 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 31608 - 31633 [eapply~eqit_secure_TauLR.] 0. secs (0.u,0.s) -Chars 31634 - 31639 [step.] 0. secs (0.u,0.s) -Chars 31646 - 31651 [auto.] 0. secs (0.u,0.s) -Chars 31656 - 31657 [+] 0. secs (0.u,0.s) -Chars 31658 - 31714 [destruct~ot4;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) -Chars 31721 - 31722 [*] 0. secs (0.u,0.s) -Chars 31723 - 31732 [inv~Ht23.] 0.018 secs (0.018u,0.s) -Chars 31733 - 31743 [inv~CHECK.] 0.012 secs (0.011u,0.s) -Chars 31744 - 31768 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 31777 - 31857 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) -Chars 31866 - 31867 [{] 0. secs (0.u,0.s) -Chars 31868 - 31873 [step.] 0. secs (0.u,0.s) -Chars 31874 - 31878 [cbn.] 0. secs (0.u,0.s) -Chars 31879 - 31903 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) -Chars 31904 - 31941 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) -Chars 31952 - 31957 [step.] 0. secs (0.u,0.s) -Chars 31958 - 31976 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 31977 - 31988 [now~unstep.] 0. secs (0.u,0.s) -Chars 31989 - 31990 [}] 0. secs (0.u,0.s) -Chars 31999 - 32018 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 32028 - 32037 [now~step.] 0. secs (0.u,0.s) -Chars 32045 - 32046 [*] 0. secs (0.u,0.s) -Chars 32047 - 32087 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 32096 - 32098 [--] 0. secs (0.u,0.s) -Chars 32099 - 32148 [inv~Ht23;~ddestruction;~subst;...] 0.045 secs (0.044u,0.s) -Chars 32160 - 32178 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 32179 - 32189 [inv~CHECK.] 0.018 secs (0.018u,0.s) -Chars 32202 - 32239 [eapply~eqit_secure_trans_aux2;...] 0. secs (0.u,0.s) -Chars 32248 - 32250 [--] 0. secs (0.u,0.s) -Chars 32251 - 32278 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 32290 - 32292 [++] 0. secs (0.u,0.s) -Chars 32293 - 32312 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 32313 - 32337 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 32352 - 32357 [step.] 0. secs (0.u,0.s) -Chars 32373 - 32427 [eapply~secret_halt_trans_3~wit...] 0. secs (0.u,0.s) -Chars 32442 - 32444 [**] 0. secs (0.u,0.s) -Chars 32445 - 32467 [now~step;~constructor.] 0. secs (0.u,0.s) -Chars 32482 - 32484 [**] 0. secs (0.u,0.s) -Chars 32485 - 32494 [now~step.] 0. secs (0.u,0.s) -Chars 32506 - 32508 [++] 0. secs (0.u,0.s) -Chars 32509 - 32519 [unpriv_co.] 0. secs (0.u,0.s) -Chars 32520 - 32539 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 32554 - 32617 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) -Chars 32632 - 32637 [step.] 0. secs (0.u,0.s) -Chars 32638 - 32643 [auto.] 0. secs (0.u,0.s) -Chars 32644 - 32679 [eapply~eqit_secure_TauLVisR;~e...] 0. secs (0.u,0.s) -Chars 32682 - 32683 [-] 0. secs (0.u,0.s) -Chars 32684 - 32703 [apply~IHHt12;~auto.] 0. secs (0.u,0.s) -Chars 32708 - 32732 [remember~(TauF~t0)~as~y.] 0.001 secs (0.001u,0.s) -Chars 32737 - 32798 [hinduction~Ht23~before~E;~intr...] 0.313 secs (0.312u,0.001s) -Chars 32803 - 32804 [+] 0. secs (0.u,0.s) -Chars 32806 - 32824 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 32825 - 32836 [now~unstep.] 0. secs (0.u,0.s) -Chars 32842 - 32843 [+] 0. secs (0.u,0.s) -Chars 32845 - 32856 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 32857 - 32868 [now~unstep.] 0. secs (0.u,0.s) -Chars 32874 - 32875 [+] 0. secs (0.u,0.s) -Chars 32877 - 32891 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 32894 - 32895 [-] 0. secs (0.u,0.s) -Chars 32897 - 32923 [remember~(VisF~e~k2)~as~x.] 0.001 secs (0.001u,0.s) -Chars 32928 - 33033 [hinduction~Ht23~before~E;~intr...] 0.091 secs (0.09u,0.s) -Chars 33038 - 33039 [+] 0. secs (0.u,0.s) -Chars 33041 - 33059 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 33060 - 33067 [intros.] 0. secs (0.u,0.s) -Chars 33068 - 33101 [eapply~CIH0;~eauto;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 33108 - 33116 [apply~H.] 0. secs (0.u,0.s) -Chars 33121 - 33122 [+] 0. secs (0.u,0.s) -Chars 33123 - 33147 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 33148 - 33159 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 33160 - 33177 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 33180 - 33181 [-] 0. secs (0.u,0.s) -Chars 33183 - 33207 [remember~(TauF~t0)~as~x.] 0.001 secs (0.001u,0.s) -Chars 33212 - 33261 [hinduction~Ht23~before~E;~intr...] 0.047 secs (0.046u,0.s) -Chars 33266 - 33267 [+] 0. secs (0.u,0.s) -Chars 33269 - 33279 [unpriv_co.] 0. secs (0.u,0.s) -Chars 33280 - 33306 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 33313 - 33318 [auto.] 0. secs (0.u,0.s) -Chars 33323 - 33324 [+] 0. secs (0.u,0.s) -Chars 33325 - 33338 [destruct~ot2.] 0. secs (0.u,0.s) -Chars 33345 - 33346 [*] 0. secs (0.u,0.s) -Chars 33347 - 33360 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 33361 - 33380 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 33381 - 33392 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 33401 - 33422 [remember~(k1~a)~as~t.] 0. secs (0.u,0.s) -Chars 33423 - 33440 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 33441 - 33469 [setoid_rewrite~~<-~Heqt~in~H.] 0.01 secs (0.01u,0.s) -Chars 33478 - 33494 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) -Chars 33495 - 33499 [cbn.] 0. secs (0.u,0.s) -Chars 33500 - 33510 [inv~CHECK.] 0.011 secs (0.011u,0.s) -Chars 33511 - 33548 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) -Chars 33555 - 33556 [*] 0. secs (0.u,0.s) -Chars 33557 - 33567 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 33568 - 33593 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) -Chars 33602 - 33615 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 33616 - 33639 [remember~(TauF~t)~as~y.] 0. secs (0.u,0.s) -Chars 33648 - 33653 [step.] 0. secs (0.u,0.s) -Chars 33662 - 33723 [hinduction~Ht23~before~E;~intr...] 0.244 secs (0.243u,0.001s) -Chars 33732 - 33734 [--] 0. secs (0.u,0.s) -Chars 33736 - 33754 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 33755 - 33766 [now~unstep.] 0. secs (0.u,0.s) -Chars 33776 - 33778 [--] 0. secs (0.u,0.s) -Chars 33780 - 33791 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 33792 - 33803 [now~unstep.] 0. secs (0.u,0.s) -Chars 33813 - 33815 [--] 0. secs (0.u,0.s) -Chars 33816 - 33830 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 33837 - 33838 [*] 0. secs (0.u,0.s) -Chars 33839 - 33880 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 33889 - 33891 [--] 0. secs (0.u,0.s) -Chars 33892 - 33911 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 33912 - 33923 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 33924 - 33928 [cbn.] 0. secs (0.u,0.s) -Chars 33940 - 33953 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 33954 - 33975 [remember~(k1~a)~as~t.] 0. secs (0.u,0.s) -Chars 33976 - 33993 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 33994 - 34022 [setoid_rewrite~~<-~Heqt~in~H.] 0.011 secs (0.011u,0.s) -Chars 34034 - 34050 [clear~Heqt~a~k1.] 0. secs (0.u,0.s) -Chars 34051 - 34061 [inv~CHECK.] 0.016 secs (0.016u,0.s) -Chars 34062 - 34099 [eapply~eqit_secure_trans_aux2;...] 0. secs (0.u,0.s) -Chars 34108 - 34110 [--] 0. secs (0.u,0.s) -Chars 34111 - 34138 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 34150 - 34152 [++] 0. secs (0.u,0.s) -Chars 34153 - 34172 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 34173 - 34184 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 34185 - 34190 [step.] 0. secs (0.u,0.s) -Chars 34206 - 34240 [eapply~secret_halt_trans_3;~ea...] 0.001 secs (0.001u,0.s) -Chars 34241 - 34249 [apply~H.] 0. secs (0.u,0.s) -Chars 34264 - 34273 [now~step.] 0. secs (0.u,0.s) -Chars 34286 - 34288 [++] 0. secs (0.u,0.s) -Chars 34289 - 34299 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 34300 - 34312 [eapply~CIH0.] 0. secs (0.u,0.s) -Chars 34313 - 34321 [apply~H.] 0. secs (0.u,0.s) -Chars 34336 - 34349 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 34350 - 34355 [step.] 0. secs (0.u,0.s) -Chars 34356 - 34382 [remember~(VisF~e0~k)~as~y.] 0.001 secs (0.001u,0.s) -Chars 34397 - 34531 [hinduction~Ht23~before~E;~intr...] 0.364 secs (0.362u,0.001s) -Chars 34546 - 34548 [**] 0. secs (0.u,0.s) -Chars 34550 - 34568 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 34569 - 34580 [now~unstep.] 0. secs (0.u,0.s) -Chars 34596 - 34598 [**] 0. secs (0.u,0.s) -Chars 34599 - 34610 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 34612 - 34623 [now~unstep.] 0. secs (0.u,0.s) -Chars 34639 - 34641 [**] 0. secs (0.u,0.s) -Chars 34643 - 34667 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 34668 - 34679 [now~unstep.] 0. secs (0.u,0.s) -Chars 34685 - 34686 [+] 0. secs (0.u,0.s) -Chars 34687 - 34705 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 34706 - 34727 [eapply~IHHt23;~eauto.] 0.001 secs (0.001u,0.s) -Chars 34732 - 34733 [+] 0. secs (0.u,0.s) -Chars 34735 - 34745 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 34746 - 34772 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 34773 - 34781 [apply~H.] 0. secs (0.u,0.s) -Chars 34786 - 34787 [+] 0. secs (0.u,0.s) -Chars 34788 - 34812 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 34813 - 34824 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 34825 - 34842 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 34847 - 34848 [+] 0. secs (0.u,0.s) -Chars 34849 - 34861 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 34863 - 34882 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 34883 - 34892 [apply~H0.] 0. secs (0.u,0.s) -Chars 34895 - 34896 [-] 0. secs (0.u,0.s) -Chars 34902 - 34922 [genobs_clear~t3~ot3.] 0. secs (0.u,0.s) -Chars 34927 - 34960 [assert~(Hne~:~nonempty~A);~eauto.] 0. secs (0.u,0.s) -Chars 34961 - 34969 [inv~Hne.] 0.014 secs (0.014u,0.s) -Chars 34974 - 35043 [assert~((exists~t4,~ot3~=~TauF...] 0. secs (0.u,0.s) -Chars 35048 - 35049 [{] 0. secs (0.u,0.s) -Chars 35050 - 35099 [destruct~ot3;~eauto;~right;~in...] 0.012 secs (0.012u,0.s) -Chars 35100 - 35101 [}] 0. secs (0.u,0.s) -Chars 35106 - 35139 [destruct~H0~as~[[t4~Ht3]|~Ht3].] 0. secs (0.u,0.s) -Chars 35144 - 35145 [+] 0. secs (0.u,0.s) -Chars 35146 - 35152 [subst.] 0. secs (0.u,0.s) -Chars 35153 - 35165 [constructor.] 0. secs (0.u,0.s) -Chars 35166 - 35191 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) -Chars 35198 - 35207 [Unshelve.] 0. secs (0.u,0.s) -Chars 35208 - 35218 [all:~auto.] 0. secs (0.u,0.s) -Chars 35225 - 35260 [eapply~eqit_secure_TauRVisL;~e...] 0. secs (0.u,0.s) -Chars 35261 - 35266 [step.] 0. secs (0.u,0.s) -Chars 35267 - 35272 [auto.] 0. secs (0.u,0.s) -Chars 35277 - 35278 [+] 0. secs (0.u,0.s) -Chars 35285 - 35341 [destruct~ot3;~try~(exfalso;~ea...] 0. secs (0.u,0.s) -Chars 35348 - 35349 [*] 0. secs (0.u,0.s) -Chars 35350 - 35370 [inv~Ht23;~inv~CHECK.] 0.019 secs (0.019u,0.s) -Chars 35371 - 35384 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 35385 - 35396 [clear~CIH0.] 0. secs (0.u,0.s) -Chars 35405 - 35423 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 35424 - 35435 [rewrite~H4.] 0. secs (0.u,0.s) -Chars 35436 - 35479 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) -Chars 35488 - 35502 [rewrite~<-~H4.] 0. secs (0.u,0.s) -Chars 35503 - 35512 [apply~H1.] 0. secs (0.u,0.s) -Chars 35513 - 35522 [Unshelve.] 0. secs (0.u,0.s) -Chars 35523 - 35528 [auto.] 0. secs (0.u,0.s) -Chars 35535 - 35536 [*] 0. secs (0.u,0.s) -Chars 35537 - 35549 [constructor.] 0. secs (0.u,0.s) -Chars 35550 - 35575 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) -Chars 35584 - 35619 [eapply~eqit_secure_TauRVisL;~e...] 0. secs (0.u,0.s) -Chars 35620 - 35625 [step.] 0. secs (0.u,0.s) -Chars 35626 - 35631 [auto.] 0. secs (0.u,0.s) -Chars 35638 - 35639 [*] 0. secs (0.u,0.s) -Chars 35640 - 35681 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 35690 - 35692 [--] 0. secs (0.u,0.s) -Chars 35693 - 35742 [inv~Ht23;~ddestruction;~subst;...] 0.061 secs (0.06u,0.s) -Chars 35754 - 35772 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 35773 - 35784 [rewrite~H5.] 0. secs (0.u,0.s) -Chars 35785 - 35795 [inv~CHECK.] 0.003 secs (0.003u,0.s) -Chars 35808 - 35866 [eapply~eqit_secure_trans_aux2;...] 0. secs (0.u,0.s) -Chars 35878 - 35892 [rewrite~<-~H5.] 0. secs (0.u,0.s) -Chars 35893 - 35902 [apply~H2.] 0. secs (0.u,0.s) -Chars 35903 - 35912 [Unshelve.] 0. secs (0.u,0.s) -Chars 35913 - 35924 [all:~auto.] 0. secs (0.u,0.s) -Chars 35933 - 35935 [--] 0. secs (0.u,0.s) -Chars 35936 - 35963 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 35975 - 35977 [++] 0. secs (0.u,0.s) -Chars 35978 - 35997 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 35998 - 36022 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 36023 - 36028 [step.] 0. secs (0.u,0.s) -Chars 36044 - 36100 [eapply~secret_halt_trans_3~wit...] 0. secs (0.u,0.s) -Chars 36115 - 36117 [**] 0. secs (0.u,0.s) -Chars 36118 - 36123 [step.] 0. secs (0.u,0.s) -Chars 36124 - 36128 [cbn.] 0. secs (0.u,0.s) -Chars 36129 - 36139 [unpriv_co.] 0. secs (0.u,0.s) -Chars 36154 - 36156 [**] 0. secs (0.u,0.s) -Chars 36157 - 36166 [now~step.] 0. secs (0.u,0.s) -Chars 36179 - 36181 [++] 0. secs (0.u,0.s) -Chars 36182 - 36192 [unpriv_co.] 0. secs (0.u,0.s) -Chars 36193 - 36218 [eapply~CIH0;~try~apply~H.] 0. secs (0.u,0.s) -Chars 36233 - 36242 [Unshelve.] 0. secs (0.u,0.s) -Chars 36243 - 36254 [all:~auto.] 0. secs (0.u,0.s) -Chars 36269 - 36336 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) -Chars 36351 - 36356 [step.] 0. secs (0.u,0.s) -Chars 36357 - 36362 [auto.] 0. secs (0.u,0.s) -Chars 36363 - 36395 [eapply~eqit_secure_VisLR;~eauto.] 0. secs (0.u,0.s) -Chars 36398 - 36399 [-] 0. secs (0.u,0.s) -Chars 36401 - 36428 [remember~(VisF~e2~k2)~as~x.] 0.001 secs (0.001u,0.s) -Chars 36433 - 36547 [hinduction~Ht23~before~E;~intr...] 0.093 secs (0.092u,0.s) -Chars 36552 - 36553 [+] 0. secs (0.u,0.s) -Chars 36554 - 36572 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 36573 - 36594 [eapply~IHHt23;~eauto.] 0.001 secs (0.001u,0.s) -Chars 36599 - 36600 [+] 0. secs (0.u,0.s) -Chars 36602 - 36612 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 36613 - 36639 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 36640 - 36648 [apply~H.] 0. secs (0.u,0.s) -Chars 36653 - 36654 [+] 0. secs (0.u,0.s) -Chars 36656 - 36689 [assert~(Hne~:~nonempty~B);~eauto.] 0. secs (0.u,0.s) -Chars 36690 - 36698 [inv~Hne.] 0.002 secs (0.002u,0.s) -Chars 36705 - 36715 [unpriv_co.] 0. secs (0.u,0.s) -Chars 36716 - 36750 [eapply~CIH0;~eauto;~try~eapply...] 0. secs (0.u,0.s) -Chars 36751 - 36759 [apply~H.] 0. secs (0.u,0.s) -Chars 36766 - 36775 [Unshelve.] 0. secs (0.u,0.s) -Chars 36776 - 36781 [auto.] 0. secs (0.u,0.s) -Chars 36786 - 36787 [+] 0. secs (0.u,0.s) -Chars 36789 - 36823 [assert~(Hne~:~nonempty~B0);~ea...] 0. secs (0.u,0.s) -Chars 36824 - 36832 [inv~Hne.] 0.004 secs (0.004u,0.s) -Chars 36839 - 36849 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 36850 - 36876 [eapply~CIH0;~try~apply~H0.] 0. secs (0.u,0.s) -Chars 36877 - 36885 [apply~H.] 0. secs (0.u,0.s) -Chars 36892 - 36901 [Unshelve.] 0. secs (0.u,0.s) -Chars 36902 - 36907 [auto.] 0. secs (0.u,0.s) -Chars 36912 - 36913 [+] 0. secs (0.u,0.s) -Chars 36914 - 36928 [genobs~t2~ot2.] 0.001 secs (0.001u,0.s) -Chars 36929 - 36942 [destruct~ot2.] 0.001 secs (0.001u,0.s) -Chars 36949 - 36950 [*] 0. secs (0.u,0.s) -Chars 36951 - 36984 [assert~(Hne~:~nonempty~B);~eauto.] 0.607 secs (0.604u,0.003s) -Chars 36985 - 36993 [inv~Hne.] 0.004 secs (0.004u,0.s) -Chars 37002 - 37021 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 37022 - 37033 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 37034 - 37044 [inv~CHECK.] 0.004 secs (0.004u,0.s) -Chars 37054 - 37105 [eapply~eqit_secure_trans_aux1;...] 0. secs (0.u,0.s) -Chars 37114 - 37123 [Unshelve.] 0. secs (0.u,0.s) -Chars 37124 - 37129 [auto.] 0. secs (0.u,0.s) -Chars 37136 - 37137 [*] 0. secs (0.u,0.s) -Chars 37138 - 37171 [assert~(Hne~:~nonempty~B);~eauto.] 0.607 secs (0.604u,0.003s) -Chars 37172 - 37180 [inv~Hne.] 0.004 secs (0.004u,0.s) -Chars 37189 - 37199 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 37200 - 37226 [eapply~CIH0;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 37227 - 37236 [Unshelve.] 0. secs (0.u,0.s) -Chars 37237 - 37248 [all:~auto.] 0. secs (0.u,0.s) -Chars 37257 - 37266 [clear~H0.] 0. secs (0.u,0.s) -Chars 37267 - 37284 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 37285 - 37290 [step.] 0. secs (0.u,0.s) -Chars 37291 - 37309 [genobs~(k2~a)~ok2.] 0. secs (0.u,0.s) -Chars 37318 - 37337 [clear~Heqok2~H1~k2.] 0. secs (0.u,0.s) -Chars 37346 - 37369 [remember~(TauF~t)~as~y.] 0.001 secs (0.001u,0.s) -Chars 37378 - 37424 [hinduction~H~before~E;~intros;...] 0.036 secs (0.036u,0.s) -Chars 37433 - 37435 [--] 0. secs (0.u,0.s) -Chars 37436 - 37454 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 37456 - 37467 [now~unstep.] 0. secs (0.u,0.s) -Chars 37477 - 37479 [--] 0. secs (0.u,0.s) -Chars 37480 - 37503 [apply~secEqTauL;~eauto.] 1.101 secs (1.095u,0.005s) -Chars 37513 - 37515 [--] 0. secs (0.u,0.s) -Chars 37516 - 37527 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 37528 - 37539 [now~unstep.] 0. secs (0.u,0.s) -Chars 37549 - 37551 [--] 0. secs (0.u,0.s) -Chars 37552 - 37563 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 37564 - 37593 [eapply~H0~with~(c~:=~c);~eauto.] 0.003 secs (0.003u,0.s) -Chars 37603 - 37605 [--] 0. secs (0.u,0.s) -Chars 37607 - 37631 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 37632 - 37643 [now~unstep.] 0. secs (0.u,0.s) -Chars 37651 - 37652 [*] 0. secs (0.u,0.s) -Chars 37653 - 37668 [inv~SIZECHECK2.] 0.003 secs (0.003u,0.s) -Chars 37677 - 37717 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 37726 - 37728 [--] 0. secs (0.u,0.s) -Chars 37729 - 37748 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 37749 - 37760 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 37761 - 37771 [inv~CHECK.] 0.004 secs (0.004u,0.s) -Chars 37784 - 37835 [eapply~eqit_secure_trans_aux2;...] 0.001 secs (0.001u,0.s) -Chars 37836 - 37845 [Unshelve.] 0. secs (0.u,0.s) -Chars 37846 - 37857 [all:~auto.] 0. secs (0.u,0.s) -Chars 37866 - 37868 [--] 0. secs (0.u,0.s) -Chars 37869 - 37896 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 37908 - 37910 [++] 0. secs (0.u,0.s) -Chars 37911 - 37923 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 37924 - 37943 [eapply~CIH0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 37944 - 37953 [apply~H1.] 0. secs (0.u,0.s) -Chars 37968 - 37973 [step.] 0. secs (0.u,0.s) -Chars 37974 - 37982 [apply~H.] 0. secs (0.u,0.s) -Chars 37983 - 37992 [Unshelve.] 0. secs (0.u,0.s) -Chars 37993 - 37998 [auto.] 0. secs (0.u,0.s) -Chars 38010 - 38012 [++] 0. secs (0.u,0.s) -Chars 38013 - 38023 [unpriv_co.] 0.002 secs (0.002u,0.s) -Chars 38024 - 38050 [eapply~CIH0;~try~apply~H1.] 0. secs (0.u,0.s) -Chars 38065 - 38074 [Unshelve.] 0. secs (0.u,0.s) -Chars 38075 - 38086 [all:~auto.] 0. secs (0.u,0.s) -Chars 38101 - 38110 [clear~H0.] 0. secs (0.u,0.s) -Chars 38111 - 38116 [step.] 0. secs (0.u,0.s) -Chars 38117 - 38142 [remember~(VisF~e~k)~as~y.] 0.001 secs (0.001u,0.s) -Chars 38157 - 38174 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 38175 - 38188 [clear~Heqot2.] 0. secs (0.u,0.s) -Chars 38189 - 38207 [genobs~(k2~a)~ok2.] 0. secs (0.u,0.s) -Chars 38222 - 38235 [clear~Heqok2.] 0. secs (0.u,0.s) -Chars 38250 - 38363 [hinduction~H~before~E;~intros;...] 0.092 secs (0.091u,0.s) -Chars 38378 - 38380 [**] 0. secs (0.u,0.s) -Chars 38382 - 38400 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 38420 - 38442 [eapply~IHsecure_eqitF.] 0. secs (0.u,0.s) -Chars 38462 - 38475 [13:~exact~H1.] 0. secs (0.u,0.s) -Chars 38476 - 38487 [all:~eauto.] 0.004 secs (0.004u,0.s) -Chars 38502 - 38504 [**] 0. secs (0.u,0.s) -Chars 38506 - 38524 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 38525 - 38536 [now~unstep.] 0. secs (0.u,0.s) -Chars 38551 - 38553 [**] 0. secs (0.u,0.s) -Chars 38554 - 38565 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 38567 - 38578 [now~unstep.] 0. secs (0.u,0.s) -Chars 38593 - 38595 [**] 0. secs (0.u,0.s) -Chars 38596 - 38624 [apply~EqVisUnPrivLInd;~auto.] 0.001 secs (0.001u,0.s) -Chars 38644 - 38650 [intro.] 0. secs (0.u,0.s) -Chars 38651 - 38661 [eapply~H0.] 0. secs (0.u,0.s) -Chars 38681 - 38694 [13:~exact~H1.] 0. secs (0.u,0.s) -Chars 38695 - 38706 [all:~eauto.] 0.004 secs (0.004u,0.s) -Chars 38722 - 38724 [**] 0. secs (0.u,0.s) -Chars 38725 - 38742 [eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 38760 - 38762 [**] 0. secs (0.u,0.s) -Chars 38764 - 38788 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 38789 - 38800 [now~unstep.] 0. secs (0.u,0.s) -Chars 38805 - 38806 [+] 0. secs (0.u,0.s) -Chars 38807 - 38831 [rewrite~itree_eta'~~at~1.] 0.016 secs (0.016u,0.s) -Chars 38832 - 38843 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 38844 - 38861 [eapply~H0;~eauto.] 0.002 secs (0.002u,0.s) -Chars 38866 - 38867 [+] 0. secs (0.u,0.s) -Chars 38869 - 38884 [inv~SIZECHECK2.] 0.002 secs (0.002u,0.s) -Chars 38885 - 38897 [unpriv_halt.] 0.001 secs (0.001u,0.s) -Chars 38898 - 38917 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 38918 - 38927 [apply~H0.] 0. secs (0.u,0.s) -Chars 38934 - 38942 [apply~H.] 0. secs (0.u,0.s) -Chars 38943 - 38952 [Unshelve.] 0. secs (0.u,0.s) -Chars 38953 - 38958 [auto.] 0. secs (0.u,0.s) -Chars 38961 - 38962 [-] 0. secs (0.u,0.s) -Chars 38963 - 38989 [remember~(VisF~e~k2)~as~x.] 0.001 secs (0.001u,0.s) -Chars 38990 - 39101 [hinduction~Ht23~before~E;~intr...] 0.109 secs (0.109u,0.s) -Chars 39106 - 39107 [+] 0. secs (0.u,0.s) -Chars 39108 - 39126 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 39127 - 39148 [eapply~IHHt23;~eauto.] 0.003 secs (0.003u,0.s) -Chars 39153 - 39154 [+] 0. secs (0.u,0.s) -Chars 39155 - 39173 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 39175 - 39209 [assert~(Hne~:~nonempty~A0);~ea...] 0.002 secs (0.002u,0.s) -Chars 39210 - 39218 [inv~Hne.] 0.003 secs (0.003u,0.s) -Chars 39219 - 39236 [eapply~H1;~eauto.] 0. secs (0.u,0.s) -Chars 39243 - 39254 [now~unstep.] 0.001 secs (0.001u,0.s) -Chars 39255 - 39264 [Unshelve.] 0. secs (0.u,0.s) -Chars 39265 - 39270 [auto.] 0. secs (0.u,0.s) -Chars 39275 - 39276 [+] 0. secs (0.u,0.s) -Chars 39277 - 39288 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 39289 - 39323 [assert~(Hne~:~nonempty~A0);~ea...] 0.002 secs (0.002u,0.s) -Chars 39324 - 39332 [inv~Hne.] 0.003 secs (0.003u,0.s) -Chars 39333 - 39350 [eapply~H1;~eauto.] 0. secs (0.u,0.s) -Chars 39358 - 39369 [now~unstep.] 0. secs (0.u,0.s) -Chars 39370 - 39379 [Unshelve.] 0. secs (0.u,0.s) -Chars 39380 - 39385 [auto.] 0. secs (0.u,0.s) -Chars 39390 - 39391 [+] 0. secs (0.u,0.s) -Chars 39392 - 39419 [assert~(Hne~:~nonempty~A0).] 0. secs (0.u,0.s) -Chars 39420 - 39421 [{] 0. secs (0.u,0.s) -Chars 39422 - 39428 [eauto.] 0. secs (0.u,0.s) -Chars 39429 - 39430 [}] 0. secs (0.u,0.s) -Chars 39431 - 39439 [inv~Hne.] 0.003 secs (0.003u,0.s) -Chars 39440 - 39446 [eauto.] 0. secs (0.u,0.s) -Chars 39447 - 39456 [Unshelve.] 0. secs (0.u,0.s) -Chars 39458 - 39463 [auto.] 0. secs (0.u,0.s) -Chars 39468 - 39469 [+] 0. secs (0.u,0.s) -Chars 39470 - 39481 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 39482 - 39488 [eauto.] 0.003 secs (0.003u,0.s) -Chars 39493 - 39494 [+] 0. secs (0.u,0.s) -Chars 39496 - 39515 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 39516 - 39521 [step.] 0. secs (0.u,0.s) -Chars 39529 - 39544 [inv~SIZECHECK0.] 0.002 secs (0.002u,0.s) -Chars 39551 - 39603 [eapply~secret_halt_trans_3~wit...] 0. secs (0.u,0.s) -Chars 39610 - 39611 [*] 0. secs (0.u,0.s) -Chars 39612 - 39617 [step.] 0. secs (0.u,0.s) -Chars 39618 - 39627 [apply~H0.] 0. secs (0.u,0.s) -Chars 39634 - 39635 [*] 0. secs (0.u,0.s) -Chars 39636 - 39644 [apply~H.] 0. secs (0.u,0.s) -Chars 39647 - 39648 [-] 0. secs (0.u,0.s) -Chars 39654 - 39678 [remember~(TauF~t0)~as~y.] 0.001 secs (0.001u,0.s) -Chars 39683 - 39751 [hinduction~Ht23~before~E;~intr...] 0.258 secs (0.257u,0.001s) -Chars 39757 - 39758 [+] 0. secs (0.u,0.s) -Chars 39759 - 39772 [clear~IHHt23.] 0. secs (0.u,0.s) -Chars 39773 - 39792 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 39793 - 39817 [rewrite~itree_eta'~~at~1.] 0.014 secs (0.014u,0.s) -Chars 39824 - 39829 [step.] 0. secs (0.u,0.s) -Chars 39837 - 39871 [eapply~secret_halt_trans_2;~ea...] 0. secs (0.u,0.s) -Chars 39872 - 39877 [step.] 0. secs (0.u,0.s) -Chars 39878 - 39883 [auto.] 0. secs (0.u,0.s) -Chars 39888 - 39889 [+] 0. secs (0.u,0.s) -Chars 39890 - 39902 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 39903 - 39922 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 39923 - 39931 [apply~H.] 0. secs (0.u,0.s) -Chars 39936 - 39937 [+] 0. secs (0.u,0.s) -Chars 39938 - 39962 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 39963 - 39974 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 39975 - 39992 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 39997 - 39998 [+] 0. secs (0.u,0.s) -Chars 39999 - 40011 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40012 - 40024 [contra_size.] 0. secs (0.u,0.s) -Chars 40027 - 40028 [-] 0. secs (0.u,0.s) -Chars 40034 - 40100 [inv~Ht23;~ddestruction;~subst;...] 0.091 secs (0.09u,0.s) -Chars 40105 - 40106 [+] 0. secs (0.u,0.s) -Chars 40107 - 40119 [constructor.] 0. secs (0.u,0.s) -Chars 40120 - 40139 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 40140 - 40145 [step.] 0. secs (0.u,0.s) -Chars 40146 - 40151 [auto.] 0. secs (0.u,0.s) -Chars 40156 - 40157 [+] 0. secs (0.u,0.s) -Chars 40158 - 40168 [unpriv_co.] 0. secs (0.u,0.s) -Chars 40169 - 40188 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 40189 - 40206 [rewrite~H0~in~H2.] 0. secs (0.u,0.s) -Chars 40213 - 40218 [step.] 0. secs (0.u,0.s) -Chars 40219 - 40228 [apply~H2.] 0. secs (0.u,0.s) -Chars 40233 - 40234 [+] 0. secs (0.u,0.s) -Chars 40236 - 40248 [constructor.] 0. secs (0.u,0.s) -Chars 40249 - 40268 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 40273 - 40274 [+] 0. secs (0.u,0.s) -Chars 40276 - 40303 [destruct~(classic_empty~B).] 0. secs (0.u,0.s) -Chars 40310 - 40311 [*] 0. secs (0.u,0.s) -Chars 40312 - 40324 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40325 - 40344 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 40345 - 40350 [step.] 0. secs (0.u,0.s) -Chars 40351 - 40355 [cbn.] 0. secs (0.u,0.s) -Chars 40356 - 40368 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40375 - 40376 [*] 0. secs (0.u,0.s) -Chars 40377 - 40387 [unpriv_co.] 0. secs (0.u,0.s) -Chars 40388 - 40407 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 40408 - 40417 [apply~H1.] 0. secs (0.u,0.s) -Chars 40422 - 40423 [+] 0. secs (0.u,0.s) -Chars 40425 - 40437 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40438 - 40457 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 40464 - 40469 [step.] 0. secs (0.u,0.s) -Chars 40470 - 40474 [cbn.] 0. secs (0.u,0.s) -Chars 40475 - 40487 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40488 - 40500 [contra_size.] 0. secs (0.u,0.s) -Chars 40502 - 40503 [-] 0. secs (0.u,0.s) -Chars 40505 - 40529 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.015u,0.s) -Chars 40530 - 40535 [step.] 0. secs (0.u,0.s) -Chars 40539 - 40596 [eapply~secret_halt_trans_2~wit...] 0. secs (0.u,0.s) -Chars 40600 - 40601 [+] 0. secs (0.u,0.s) -Chars 40602 - 40607 [step.] 0. secs (0.u,0.s) -Chars 40608 - 40612 [cbn.] 0. secs (0.u,0.s) -Chars 40613 - 40625 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40629 - 40630 [+] 0. secs (0.u,0.s) -Chars 40631 - 40636 [step.] 0. secs (0.u,0.s) -Chars 40637 - 40642 [auto.] 0. secs (0.u,0.s) -Chars 40644 - 40645 [-] 0. secs (0.u,0.s) -Chars 40647 - 40674 [destruct~(classic_empty~A).] 0. secs (0.u,0.s) -Chars 40678 - 40679 [+] 0. secs (0.u,0.s) -Chars 40680 - 40746 [inv~Ht23;~ddestruction;~subst;...] 0.094 secs (0.093u,0.s) -Chars 40752 - 40753 [*] 0. secs (0.u,0.s) -Chars 40754 - 40766 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40767 - 40809 [eapply~CIH0~with~(t2~:=~Vis~e2...] 0. secs (0.u,0.s) -Chars 40817 - 40819 [--] 0. secs (0.u,0.s) -Chars 40820 - 40825 [step.] 0. secs (0.u,0.s) -Chars 40826 - 40830 [cbn.] 0. secs (0.u,0.s) -Chars 40831 - 40843 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40844 - 40856 [contra_size.] 0. secs (0.u,0.s) -Chars 40864 - 40866 [--] 0. secs (0.u,0.s) -Chars 40867 - 40872 [step.] 0. secs (0.u,0.s) -Chars 40873 - 40878 [auto.] 0. secs (0.u,0.s) -Chars 40884 - 40885 [*] 0. secs (0.u,0.s) -Chars 40886 - 40898 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40899 - 40916 [rewrite~H1~in~H3.] 0. secs (0.u,0.s) -Chars 40917 - 40959 [eapply~CIH0~with~(t2~:=~Vis~e2...] 0. secs (0.u,0.s) -Chars 40967 - 40969 [--] 0. secs (0.u,0.s) -Chars 40970 - 40975 [step.] 0. secs (0.u,0.s) -Chars 40976 - 40980 [cbn.] 0. secs (0.u,0.s) -Chars 40981 - 40993 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 40994 - 41006 [contra_size.] 0. secs (0.u,0.s) -Chars 41014 - 41016 [--] 0. secs (0.u,0.s) -Chars 41017 - 41022 [step.] 0. secs (0.u,0.s) -Chars 41023 - 41032 [apply~H3.] 0. secs (0.u,0.s) -Chars 41038 - 41039 [*] 0. secs (0.u,0.s) -Chars 41040 - 41052 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 41054 - 41073 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 41081 - 41086 [step.] 0. secs (0.u,0.s) -Chars 41087 - 41091 [cbn.] 0. secs (0.u,0.s) -Chars 41092 - 41104 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 41105 - 41117 [contra_size.] 0. secs (0.u,0.s) -Chars 41123 - 41124 [*] 0. secs (0.u,0.s) -Chars 41125 - 41137 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 41139 - 41181 [eapply~CIH0~with~(t2~:=~Vis~e2...] 0. secs (0.u,0.s) -Chars 41189 - 41191 [--] 0. secs (0.u,0.s) -Chars 41192 - 41197 [step.] 0. secs (0.u,0.s) -Chars 41198 - 41202 [cbn.] 0. secs (0.u,0.s) -Chars 41203 - 41215 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 41216 - 41228 [contra_size.] 0. secs (0.u,0.s) -Chars 41236 - 41238 [--] 0. secs (0.u,0.s) -Chars 41239 - 41248 [apply~H2.] 0. secs (0.u,0.s) -Chars 41254 - 41255 [*] 0. secs (0.u,0.s) -Chars 41256 - 41268 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 41269 - 41281 [contra_size.] 0. secs (0.u,0.s) -Chars 41285 - 41286 [+] 0. secs (0.u,0.s) -Chars 41287 - 41309 [destruct~(observe~t3).] 0. secs (0.u,0.s) -Chars 41315 - 41316 [*] 0. secs (0.u,0.s) -Chars 41317 - 41383 [inv~Ht23;~ddestruction;~subst;...] 0.022 secs (0.022u,0.s) -Chars 41389 - 41390 [*] 0. secs (0.u,0.s) -Chars 41391 - 41401 [unpriv_co.] 0. secs (0.u,0.s) -Chars 41402 - 41421 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 41422 - 41430 [apply~H.] 0. secs (0.u,0.s) -Chars 41438 - 41504 [inv~Ht23;~ddestruction;~subst;...] 0.036 secs (0.036u,0.s) -Chars 41512 - 41517 [step.] 0. secs (0.u,0.s) -Chars 41518 - 41523 [auto.] 0. secs (0.u,0.s) -Chars 41525 - 41530 [auto.] 0. secs (0.u,0.s) -Chars 41536 - 41537 [*] 0. secs (0.u,0.s) -Chars 41538 - 41578 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 41586 - 41587 [{] 0. secs (0.u,0.s) -Chars 41588 - 41654 [inv~Ht23;~ddestruction;~subst;...] 0.068 secs (0.068u,0.s) -Chars 41655 - 41656 [}] 0. secs (0.u,0.s) -Chars 41664 - 41691 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 41699 - 41701 [--] 0. secs (0.u,0.s) -Chars 41702 - 41714 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 41715 - 41734 [eapply~CIH0;~eauto.] 0.002 secs (0.002u,0.s) -Chars 41735 - 41743 [apply~H.] 0. secs (0.u,0.s) -Chars 41744 - 41749 [step.] 0. secs (0.u,0.s) -Chars 41750 - 41755 [auto.] 0. secs (0.u,0.s) -Chars 41763 - 41765 [--] 0. secs (0.u,0.s) -Chars 41766 - 41776 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 41777 - 41796 [eapply~CIH0;~eauto.] 0. secs (0.u,0.s) -Chars 41797 - 41805 [apply~H.] 0. secs (0.u,0.s) -Chars 41816 - 41882 [inv~Ht23;~ddestruction;~subst;...] 0.049 secs (0.049u,0.s) -Chars 41893 - 41895 [++] 0. secs (0.u,0.s) -Chars 41896 - 41901 [step.] 0. secs (0.u,0.s) -Chars 41902 - 41911 [apply~H5.] 0. secs (0.u,0.s) -Chars 41922 - 41924 [++] 0. secs (0.u,0.s) -Chars 41926 - 41935 [apply~H4.] 0. secs (0.u,0.s) -Chars 41936 - 41940 [Qed.] 0.551 secs (0.543u,0.007s) -Chars 41943 - 42163 [Lemma~eqit_itree_eqit_secure~:...] 0. secs (0.u,0.s) -Chars 42164 - 42170 [Proof.] 0. secs (0.u,0.s) -Chars 42173 - 42204 [intros~E~Label~priv~l~R1~R2~RR.] 0. secs (0.u,0.s) -Chars 42205 - 42223 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 42226 - 42252 [intros~t1~t1'~t2~Heq~Hsec.] 0. secs (0.u,0.s) -Chars 42253 - 42258 [icbn.] 0. secs (0.u,0.s) -Chars 42262 - 42274 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 42275 - 42288 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 42292 - 42300 [inv~Heq.] 0.085 secs (0.084u,0.001s) -Chars 42303 - 42304 [-] 0. secs (0.u,0.s) -Chars 42305 - 42327 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) -Chars 42328 - 42352 [rewrite~itree_eta'~~at~1.] 0.013 secs (0.013u,0.s) -Chars 42358 - 42382 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) -Chars 42383 - 42394 [clear~H~H0.] 0. secs (0.u,0.s) -Chars 42399 - 42460 [hinduction~Hsec~before~E;~intr...] 0.017 secs (0.017u,0.s) -Chars 42463 - 42464 [-] 0. secs (0.u,0.s) -Chars 42466 - 42480 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 42485 - 42554 [assert~((exists~t3,~ot2~=~TauF...] 0. secs (0.u,0.s) -Chars 42559 - 42560 [{] 0. secs (0.u,0.s) -Chars 42561 - 42610 [destruct~ot2;~eauto;~right;~in...] 0.005 secs (0.005u,0.s) -Chars 42611 - 42612 [}] 0. secs (0.u,0.s) -Chars 42617 - 42650 [destruct~H1~as~[[t3~Ht2]|~Ht2].] 0. secs (0.u,0.s) -Chars 42655 - 42656 [+] 0. secs (0.u,0.s) -Chars 42657 - 42663 [subst.] 0. secs (0.u,0.s) -Chars 42664 - 42676 [rewrite~Ht2.] 0. secs (0.u,0.s) -Chars 42677 - 42697 [rewrite~Ht2~in~Hsec.] 0. secs (0.u,0.s) -Chars 42698 - 42710 [constructor.] 0. secs (0.u,0.s) -Chars 42717 - 42735 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 42736 - 42758 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) -Chars 42759 - 42768 [inv~Hsec.] 0.016 secs (0.016u,0.s) -Chars 42773 - 42774 [+] 0. secs (0.u,0.s) -Chars 42775 - 42831 [destruct~ot2;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) -Chars 42838 - 42839 [*] 0. secs (0.u,0.s) -Chars 42840 - 42862 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) -Chars 42863 - 42872 [inv~Hsec.] 0.014 secs (0.014u,0.s) -Chars 42879 - 42880 [*] 0. secs (0.u,0.s) -Chars 42881 - 42903 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) -Chars 42904 - 42934 [inv~Hsec;~ddestruction;~subst.] 0.037 secs (0.036u,0.s) -Chars 42943 - 42945 [--] 0. secs (0.u,0.s) -Chars 42947 - 42957 [unpriv_co.] 0. secs (0.u,0.s) -Chars 42958 - 42976 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 42977 - 42986 [apply~H3.] 0. secs (0.u,0.s) -Chars 42995 - 42997 [--] 0. secs (0.u,0.s) -Chars 42999 - 43011 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 43012 - 43030 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 43033 - 43034 [-] 0. secs (0.u,0.s) -Chars 43035 - 43057 [rewrite~<-~H0~in~Hsec.] 0. secs (0.u,0.s) -Chars 43058 - 43124 [inv~Hsec;~ddestruction;~subst;...] 0.067 secs (0.067u,0.s) -Chars 43129 - 43130 [+] 0. secs (0.u,0.s) -Chars 43132 - 43150 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 43151 - 43158 [intros.] 0. secs (0.u,0.s) -Chars 43159 - 43185 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 43186 - 43195 [apply~H2.] 0. secs (0.u,0.s) -Chars 43200 - 43201 [+] 0. secs (0.u,0.s) -Chars 43203 - 43213 [unpriv_co.] 0. secs (0.u,0.s) -Chars 43214 - 43240 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 43241 - 43250 [apply~H2.] 0. secs (0.u,0.s) -Chars 43255 - 43256 [+] 0. secs (0.u,0.s) -Chars 43258 - 43268 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 43269 - 43295 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 43296 - 43305 [apply~H2.] 0. secs (0.u,0.s) -Chars 43310 - 43311 [+] 0. secs (0.u,0.s) -Chars 43313 - 43325 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 43326 - 43351 [eapply~CIH;~try~apply~H2.] 0. secs (0.u,0.s) -Chars 43352 - 43357 [step.] 0.001 secs (0.001u,0.s) -Chars 43358 - 43370 [constructor.] 0. secs (0.u,0.s) -Chars 43371 - 43376 [auto.] 0. secs (0.u,0.s) -Chars 43381 - 43382 [+] 0. secs (0.u,0.s) -Chars 43384 - 43396 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 43397 - 43444 [eapply~CIH~with~(t1~:=~Vis~e~k...] 0. secs (0.u,0.s) -Chars 43451 - 43456 [step.] 0.001 secs (0.001u,0.s) -Chars 43457 - 43469 [constructor.] 0. secs (0.u,0.s) -Chars 43470 - 43475 [auto.] 0. secs (0.u,0.s) -Chars 43480 - 43481 [+] 0. secs (0.u,0.s) -Chars 43483 - 43495 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 43496 - 43522 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 43523 - 43540 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 43541 - 43550 [apply~H2.] 0. secs (0.u,0.s) -Chars 43551 - 43555 [Qed.] 0.052 secs (0.052u,0.s) -Chars 43557 - 43778 [Lemma~eqit_secure_eq_trans~:~~...] 0. secs (0.u,0.s) -Chars 43779 - 43785 [Proof.] 0. secs (0.u,0.s) -Chars 43788 - 43795 [intros.] 0. secs (0.u,0.s) -Chars 43796 - 43850 [apply~eqit_secure_RR_imp~with~...] 0. secs (0.u,0.s) -Chars 43853 - 43854 [{] 0. secs (0.u,0.s) -Chars 43855 - 43862 [intros.] 0. secs (0.u,0.s) -Chars 43863 - 43870 [inv~H1.] 0. secs (0.u,0.s) -Chars 43871 - 43872 [}] 0. secs (0.u,0.s) -Chars 43875 - 43907 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) -Chars 43908 - 43912 [Qed.] 0. secs (0.u,0.s) -Chars 43914 - 44101 [Lemma~eqit_secure_anything~:~~...] 0. secs (0.u,0.s) -Chars 44102 - 44108 [Proof.] 0. secs (0.u,0.s) -Chars 44111 - 44118 [intros.] 0. secs (0.u,0.s) -Chars 44121 - 44156 [eapply~eqit_secure_eq_trans;~e...] 0. secs (0.u,0.s) -Chars 44159 - 44181 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44182 - 44215 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) -Chars 44216 - 44220 [Qed.] 0. secs (0.u,0.s) -Chars 44223 - 44422 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 44423 - 44429 [Proof.] 0. secs (0.u,0.s) -Chars 44432 - 44445 [repeat~intro.] 0. secs (0.u,0.s) -Chars 44446 - 44472 [destruct~b;~split;~intros.] 0. secs (0.u,0.s) -Chars 44475 - 44476 [-] 0. secs (0.u,0.s) -Chars 44477 - 44515 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) -Chars 44520 - 44542 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44543 - 44581 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) -Chars 44586 - 44608 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44609 - 44614 [auto.] 0. secs (0.u,0.s) -Chars 44617 - 44618 [-] 0. secs (0.u,0.s) -Chars 44619 - 44642 [assert~(x~≈~y);~auto.] 0. secs (0.u,0.s) -Chars 44643 - 44668 [assert~(x0~≈~y0);~auto.] 0. secs (0.u,0.s) -Chars 44673 - 44688 [symmetry~in~H2.] 0. secs (0.u,0.s) -Chars 44693 - 44731 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) -Chars 44736 - 44751 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 44752 - 44774 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44779 - 44817 [eapply~eutt_secure_eqit_secure...] 0. secs (0.u,0.s) -Chars 44822 - 44844 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44845 - 44850 [auto.] 0. secs (0.u,0.s) -Chars 44853 - 44854 [-] 0. secs (0.u,0.s) -Chars 44855 - 44892 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) -Chars 44897 - 44919 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44920 - 44957 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) -Chars 44962 - 44984 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 44985 - 44990 [auto.] 0. secs (0.u,0.s) -Chars 44993 - 44994 [-] 0. secs (0.u,0.s) -Chars 44995 - 45018 [assert~(x~≅~y);~auto.] 0. secs (0.u,0.s) -Chars 45019 - 45044 [assert~(x0~≅~y0);~auto.] 0. secs (0.u,0.s) -Chars 45049 - 45064 [symmetry~in~H2.] 0. secs (0.u,0.s) -Chars 45065 - 45080 [symmetry~in~H3.] 0. secs (0.u,0.s) -Chars 45085 - 45122 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) -Chars 45127 - 45149 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 45150 - 45187 [eapply~eqit_itree_eqit_secure;...] 0. secs (0.u,0.s) -Chars 45192 - 45214 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 45215 - 45220 [auto.] 0. secs (0.u,0.s) -Chars 45221 - 45225 [Qed.] 0.001 secs (0.001u,0.s) -Chars 45227 - 45484 [#[global]~Instance~proper_eqit...] 0.002 secs (0.002u,0.s) -Chars 45485 - 45491 [Proof.] 0. secs (0.u,0.s) -Chars 45494 - 45522 [repeat~intro;~split;~intros.] 0. secs (0.u,0.s) -Chars 45525 - 45526 [-] 0. secs (0.u,0.s) -Chars 45527 - 45589 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) -Chars 45594 - 45595 [{] 0. secs (0.u,0.s) -Chars 45596 - 45603 [intros.] 0. secs (0.u,0.s) -Chars 45604 - 45611 [inv~H2.] 0. secs (0.u,0.s) -Chars 45612 - 45613 [}] 0. secs (0.u,0.s) -Chars 45618 - 45650 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) -Chars 45655 - 45677 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 45682 - 45758 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) -Chars 45763 - 45764 [{] 0. secs (0.u,0.s) -Chars 45765 - 45772 [intros.] 0. secs (0.u,0.s) -Chars 45773 - 45780 [inv~H2.] 0. secs (0.u,0.s) -Chars 45781 - 45782 [}] 0. secs (0.u,0.s) -Chars 45787 - 45819 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) -Chars 45820 - 45842 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 45843 - 45848 [auto.] 0. secs (0.u,0.s) -Chars 45851 - 45852 [-] 0. secs (0.u,0.s) -Chars 45853 - 45900 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) -Chars 45905 - 45906 [{] 0. secs (0.u,0.s) -Chars 45907 - 45929 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 45930 - 45963 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) -Chars 45964 - 45965 [}] 0. secs (0.u,0.s) -Chars 45970 - 46025 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) -Chars 46030 - 46031 [{] 0. secs (0.u,0.s) -Chars 46032 - 46039 [intros.] 0. secs (0.u,0.s) -Chars 46040 - 46047 [inv~H3.] 0. secs (0.u,0.s) -Chars 46048 - 46049 [}] 0. secs (0.u,0.s) -Chars 46054 - 46086 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) -Chars 46091 - 46136 [assert~(eqit_secure~Label~priv...] 0. secs (0.u,0.s) -Chars 46141 - 46142 [{] 0. secs (0.u,0.s) -Chars 46143 - 46165 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 46166 - 46199 [eapply~eqit_secure_RR_imp;~eauto.] 0. secs (0.u,0.s) -Chars 46200 - 46201 [}] 0. secs (0.u,0.s) -Chars 46206 - 46261 [eapply~eqit_secure_RR_imp~with...] 0. secs (0.u,0.s) -Chars 46266 - 46267 [{] 0. secs (0.u,0.s) -Chars 46268 - 46275 [intros.] 0. secs (0.u,0.s) -Chars 46276 - 46283 [inv~H4.] 0. secs (0.u,0.s) -Chars 46284 - 46285 [}] 0. secs (0.u,0.s) -Chars 46290 - 46322 [eapply~eqit_secure_trans;~eauto.] 0. secs (0.u,0.s) -Chars 46323 - 46327 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/extra/Secure/SecureEqEuttTrans.v.timing b/extra/Secure/SecureEqEuttTrans.v.timing deleted file mode 100644 index 04e3dc0a..00000000 --- a/extra/Secure/SecureEqEuttTrans.v.timing +++ /dev/null @@ -1,244 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 38 - 103 [From~ITree~Require~Import~Axio...] 0.161 secs (0.143u,0.017s) -Chars 106 - 193 [From~ITree.Extra~Require~Impor...] 0.005 secs (0.004u,0.s) -Chars 195 - 209 [Import~Monads.] 0. secs (0.u,0.s) -Chars 210 - 231 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 232 - 261 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 264 - 853 [Lemma~eses_aux3~:~~~forall~(E~...] 0.001 secs (0.001u,0.s) -Chars 854 - 860 [Proof.] 0. secs (0.u,0.s) -Chars 863 - 922 [intros~E~R3~R1~Label~priv~l~R2...] 0. secs (0.u,0.s) -Chars 925 - 949 [remember~(RetF~r0)~as~x.] 0. secs (0.u,0.s) -Chars 952 - 964 [step~in~REL.] 0. secs (0.u,0.s) -Chars 965 - 1015 [hinduction~Hsec~before~r;~intr...] 0.041 secs (0.038u,0.002s) -Chars 1018 - 1019 [-] 0. secs (0.u,0.s) -Chars 1020 - 1044 [remember~(RetF~r2)~as~y.] 0. secs (0.u,0.s) -Chars 1045 - 1105 [hinduction~REL~before~r;~intro...] 0.004 secs (0.004u,0.s) -Chars 1108 - 1109 [-] 0. secs (0.u,0.s) -Chars 1110 - 1131 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 1132 - 1139 [unstep.] 0.036 secs (0.035u,0.s) -Chars 1140 - 1172 [setoid_rewrite~~<-~tau_eutt~at~1.] 0.002 secs (0.002u,0.s) -Chars 1173 - 1178 [step.] 0.001 secs (0.001u,0.s) -Chars 1179 - 1184 [auto.] 0. secs (0.u,0.s) -Chars 1187 - 1188 [-] 0. secs (0.u,0.s) -Chars 1189 - 1215 [remember~(VisF~e~k2)~as~y.] 0. secs (0.u,0.s) -Chars 1220 - 1301 [hinduction~REL~before~r;~intro...] 0.165 secs (0.163u,0.001s) -Chars 1307 - 1318 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 1319 - 1336 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 1337 - 1348 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 1349 - 1353 [Qed.] 0.012 secs (0.011u,0.s) -Chars 1356 - 2161 [Lemma~eses_aux4~:~~~forall~(E~...] 0.001 secs (0.001u,0.s) -Chars 2162 - 2168 [Proof.] 0. secs (0.u,0.s) -Chars 2171 - 2246 [intros~E~R3~R1~Label~priv~l~R2...] 0. secs (0.u,0.s) -Chars 2249 - 2261 [step~in~REL.] 0. secs (0.u,0.s) -Chars 2262 - 2287 [remember~(VisF~e~k)~as~y.] 0. secs (0.u,0.s) -Chars 2290 - 2373 [hinduction~Hsec~before~r;~intr...] 0.062 secs (0.062u,0.s) -Chars 2376 - 2377 [-] 0. secs (0.u,0.s) -Chars 2378 - 2399 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 2400 - 2407 [unstep.] 0.002 secs (0.002u,0.s) -Chars 2408 - 2433 [rewrite~<-~tau_eutt~~at~1.] 0. secs (0.u,0.s) -Chars 2434 - 2439 [step.] 0.001 secs (0.001u,0.s) -Chars 2440 - 2445 [auto.] 0. secs (0.u,0.s) -Chars 2448 - 2449 [-] 0. secs (0.u,0.s) -Chars 2451 - 2480 [inv~REL;~ddestruction;~subst.] 0.009 secs (0.009u,0.s) -Chars 2485 - 2486 [+] 0. secs (0.u,0.s) -Chars 2487 - 2505 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 2506 - 2513 [intros.] 0. secs (0.u,0.s) -Chars 2514 - 2543 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 2548 - 2549 [+] 0. secs (0.u,0.s) -Chars 2550 - 2568 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 2569 - 2596 [remember~(VisF~e0~k2)~as~y.] 0. secs (0.u,0.s) -Chars 2603 - 2686 [hinduction~REL0~before~r;~intr...] 0.011 secs (0.011u,0.s) -Chars 2693 - 2694 [*] 0. secs (0.u,0.s) -Chars 2695 - 2713 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 2714 - 2721 [intros.] 0. secs (0.u,0.s) -Chars 2722 - 2751 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 2758 - 2759 [*] 0. secs (0.u,0.s) -Chars 2760 - 2778 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 2779 - 2800 [eapply~IHREL0;~eauto.] 0. secs (0.u,0.s) -Chars 2803 - 2804 [-] 0. secs (0.u,0.s) -Chars 2805 - 2816 [rewrite~H2.] 0. secs (0.u,0.s) -Chars 2817 - 2843 [remember~(VisF~e~k2)~as~y.] 0. secs (0.u,0.s) -Chars 2848 - 2930 [hinduction~REL~before~r;~intro...] 0.011 secs (0.011u,0.s) -Chars 2935 - 2936 [+] 0. secs (0.u,0.s) -Chars 2937 - 2961 [rewrite~itree_eta'~~at~1.] 0.016 secs (0.016u,0.s) -Chars 2962 - 2973 [unpriv_ind.] 0. secs (0.u,0.s) -Chars 2974 - 2988 [rewrite~<-~H2.] 0. secs (0.u,0.s) -Chars 2989 - 3006 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 3013 - 3024 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 3029 - 3030 [+] 0. secs (0.u,0.s) -Chars 3031 - 3049 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3050 - 3070 [eapply~IHREL;~eauto.] 0.002 secs (0.002u,0.s) -Chars 3071 - 3075 [Qed.] 0.032 secs (0.032u,0.s) -Chars 3176 - 3480 [Lemma~eutt_secure_eqit_secure~...] 0. secs (0.u,0.s) -Chars 3481 - 3487 [Proof.] 0. secs (0.u,0.s) -Chars 3490 - 3529 [intros~E~Label~priv~l~R1~R2~R3...] 0. secs (0.u,0.s) -Chars 3530 - 3549 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3550 - 3577 [intros~t1~t2~t3~Hsec~Heutt.] 0. secs (0.u,0.s) -Chars 3580 - 3594 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 3595 - 3608 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 3609 - 3618 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 3621 - 3679 [hinduction~Heutt~before~c;~int...] 0.003 secs (0.003u,0.s) -Chars 3682 - 3683 [-] 0. secs (0.u,0.s) -Chars 3684 - 3708 [remember~(RetF~r2)~as~x.] 0. secs (0.u,0.s) -Chars 3709 - 3734 [remember~(RetF~r1)~as~y.] 0. secs (0.u,0.s) -Chars 3735 - 3820 [hinduction~Hsec~before~c;~intr...] 0.033 secs (0.032u,0.s) -Chars 3825 - 3826 [+] 0. secs (0.u,0.s) -Chars 3827 - 3857 [constructor;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 3862 - 3863 [+] 0. secs (0.u,0.s) -Chars 3864 - 3882 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3883 - 3904 [eapply~IHHsec;~eauto.] 0. secs (0.u,0.s) -Chars 3909 - 3910 [+] 0. secs (0.u,0.s) -Chars 3911 - 3930 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 3931 - 3942 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 3943 - 3960 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 3963 - 3964 [-] 0. secs (0.u,0.s) -Chars 3965 - 3985 [genobs_clear~t1~ot1.] 0. secs (0.u,0.s) -Chars 3990 - 4064 [assert~(Ht1~:~(exists~m3,~ot1~...] 0. secs (0.u,0.s) -Chars 4069 - 4070 [{] 0. secs (0.u,0.s) -Chars 4071 - 4126 [destruct~ot1;~eauto;~right;~re...] 0.005 secs (0.005u,0.s) -Chars 4127 - 4128 [}] 0. secs (0.u,0.s) -Chars 4199 - 4234 [destruct~Ht1~as~[[m3~Hm3]|~Ht1].] 0. secs (0.u,0.s) -Chars 4239 - 4240 [+] 0. secs (0.u,0.s) -Chars 4241 - 4247 [subst.] 0. secs (0.u,0.s) -Chars 4249 - 4261 [constructor.] 0. secs (0.u,0.s) -Chars 4262 - 4280 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 4287 - 4309 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 4310 - 4332 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 4333 - 4355 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 4362 - 4384 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 4385 - 4390 [step.] 0. secs (0.u,0.s) -Chars 4391 - 4396 [auto.] 0. secs (0.u,0.s) -Chars 4401 - 4402 [+] 0. secs (0.u,0.s) -Chars 4403 - 4456 [destruct~ot1;~try~(exfalso;~ea...] 0.001 secs (0.001u,0.s) -Chars 4463 - 4464 [*] 0. secs (0.u,0.s) -Chars 4466 - 4485 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 4486 - 4513 [rewrite~itree_eta'~in~Hsec.] 0. secs (0.u,0.s) -Chars 4522 - 4546 [eapply~eses_aux3;~eauto.] 0.001 secs (0.001u,0.s) -Chars 4547 - 4552 [step.] 0.001 secs (0.001u,0.s) -Chars 4553 - 4565 [constructor.] 0. secs (0.u,0.s) -Chars 4566 - 4571 [auto.] 0. secs (0.u,0.s) -Chars 4578 - 4579 [*] 0. secs (0.u,0.s) -Chars 4580 - 4628 [assert~(leq~(priv~_~e)~l~\/~~~...] 0. secs (0.u,0.s) -Chars 4637 - 4638 [{] 0. secs (0.u,0.s) -Chars 4639 - 4653 [apply~classic.] 0. secs (0.u,0.s) -Chars 4654 - 4655 [}] 0. secs (0.u,0.s) -Chars 4664 - 4731 [destruct~H~as~[SECCHECK|~SECCH...] 0. secs (0.u,0.s) -Chars 4740 - 4742 [++] 0. secs (0.u,0.s) -Chars 4744 - 4763 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 4764 - 4791 [rewrite~itree_eta'~in~Hsec.] 0. secs (0.u,0.s) -Chars 4803 - 4827 [eapply~eses_aux4;~eauto.] 0.001 secs (0.001u,0.s) -Chars 4828 - 4850 [do~2~rewrite~tau_eutt.] 0.002 secs (0.002u,0.s) -Chars 4851 - 4856 [auto.] 0. secs (0.u,0.s) -Chars 4865 - 4867 [++] 0. secs (0.u,0.s) -Chars 4869 - 4888 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 4900 - 4927 [rewrite~itree_eta'~in~Hsec.] 0. secs (0.u,0.s) -Chars 4928 - 4952 [eapply~eses_aux4;~eauto.] 0.001 secs (0.001u,0.s) -Chars 4964 - 4986 [do~2~rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 4987 - 4992 [auto.] 0. secs (0.u,0.s) -Chars 5001 - 5003 [++] 0. secs (0.u,0.s) -Chars 5004 - 5016 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 5017 - 5035 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 5047 - 5069 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 5070 - 5092 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 5093 - 5115 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 5127 - 5132 [step.] 0. secs (0.u,0.s) -Chars 5133 - 5138 [auto.] 0. secs (0.u,0.s) -Chars 5147 - 5149 [++] 0. secs (0.u,0.s) -Chars 5161 - 5171 [unpriv_co.] 0. secs (0.u,0.s) -Chars 5172 - 5198 [eapply~CIH;~try~apply~REL.] 0. secs (0.u,0.s) -Chars 5210 - 5232 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 5233 - 5255 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 5267 - 5289 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 5301 - 5336 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) -Chars 5348 - 5353 [step.] 0. secs (0.u,0.s) -Chars 5354 - 5359 [auto.] 0. secs (0.u,0.s) -Chars 5362 - 5363 [-] 0. secs (0.u,0.s) -Chars 5365 - 5405 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 5410 - 5411 [+] 0. secs (0.u,0.s) -Chars 5412 - 5432 [genobs_clear~t1~ot1.] 0. secs (0.u,0.s) -Chars 5439 - 5465 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) -Chars 5472 - 5583 [hinduction~Hsec~before~c;~intr...] 0.114 secs (0.112u,0.s) -Chars 5590 - 5591 [*] 0. secs (0.u,0.s) -Chars 5592 - 5610 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5611 - 5618 [intros.] 0. secs (0.u,0.s) -Chars 5619 - 5648 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 5649 - 5657 [apply~H.] 0. secs (0.u,0.s) -Chars 5664 - 5665 [*] 0. secs (0.u,0.s) -Chars 5666 - 5685 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 5686 - 5697 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 5698 - 5715 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 5720 - 5721 [+] 0. secs (0.u,0.s) -Chars 5722 - 5748 [remember~(VisF~e~k1)~as~y.] 0. secs (0.u,0.s) -Chars 5755 - 5838 [hinduction~Hsec~before~c;~intr...] 0.068 secs (0.066u,0.s) -Chars 5845 - 5846 [*] 0. secs (0.u,0.s) -Chars 5847 - 5864 [eauto~with~itree.] 0.019 secs (0.018u,0.s) -Chars 5871 - 5872 [*] 0. secs (0.u,0.s) -Chars 5874 - 5884 [unpriv_co.] 0. secs (0.u,0.s) -Chars 5885 - 5914 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 5915 - 5923 [apply~H.] 0. secs (0.u,0.s) -Chars 5930 - 5931 [*] 0. secs (0.u,0.s) -Chars 5933 - 5943 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 5944 - 5973 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 5974 - 5982 [apply~H.] 0. secs (0.u,0.s) -Chars 5989 - 5990 [*] 0. secs (0.u,0.s) -Chars 5991 - 6010 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 6011 - 6022 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 6023 - 6040 [eapply~H0;~eauto.] 0. secs (0.u,0.s) -Chars 6047 - 6048 [*] 0. secs (0.u,0.s) -Chars 6049 - 6071 [destruct~(observe~t0).] 0.001 secs (0.001u,0.s) -Chars 6080 - 6082 [--] 0. secs (0.u,0.s) -Chars 6083 - 6107 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.014u,0.s) -Chars 6108 - 6119 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 6131 - 6148 [specialize~(H~a).] 0. secs (0.u,0.s) -Chars 6160 - 6184 [eapply~eses_aux3;~eauto.] 0. secs (0.u,0.s) -Chars 6185 - 6195 [apply~REL.] 0. secs (0.u,0.s) -Chars 6205 - 6207 [--] 0. secs (0.u,0.s) -Chars 6208 - 6218 [unpriv_co.] 0. secs (0.u,0.s) -Chars 6219 - 6248 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 6249 - 6271 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 6283 - 6288 [step.] 0. secs (0.u,0.s) -Chars 6289 - 6297 [apply~H.] 0. secs (0.u,0.s) -Chars 6306 - 6308 [--] 0. secs (0.u,0.s) -Chars 6309 - 6349 [destruct~(classic~(leq~(priv~_...] 0. secs (0.u,0.s) -Chars 6361 - 6363 [++] 0. secs (0.u,0.s) -Chars 6364 - 6388 [rewrite~itree_eta'~~at~1.] 0.015 secs (0.014u,0.s) -Chars 6389 - 6400 [unpriv_ind.] 0.001 secs (0.001u,0.s) -Chars 6415 - 6439 [eapply~eses_aux4;~eauto.] 0.001 secs (0.001u,0.s) -Chars 6440 - 6450 [apply~REL.] 0. secs (0.u,0.s) -Chars 6463 - 6465 [++] 0. secs (0.u,0.s) -Chars 6466 - 6493 [destruct~(classic_empty~X).] 0. secs (0.u,0.s) -Chars 6508 - 6510 [**] 0. secs (0.u,0.s) -Chars 6511 - 6523 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 6524 - 6553 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 6554 - 6559 [step.] 0. secs (0.u,0.s) -Chars 6560 - 6568 [apply~H.] 0. secs (0.u,0.s) -Chars 6583 - 6585 [**] 0. secs (0.u,0.s) -Chars 6586 - 6596 [unpriv_co.] 0.001 secs (0.001u,0.s) -Chars 6597 - 6626 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 6644 - 6679 [eapply~unpriv_e_eqit_secure;~e...] 0. secs (0.u,0.s) -Chars 6680 - 6685 [step.] 0. secs (0.u,0.s) -Chars 6686 - 6694 [apply~H.] 0. secs (0.u,0.s) -Chars 6701 - 6702 [*] 0. secs (0.u,0.s) -Chars 6704 - 6716 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 6717 - 6735 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6736 - 6741 [step.] 0.001 secs (0.001u,0.s) -Chars 6750 - 6787 [constructor;~intros;~auto~with...] 0. secs (0.u,0.s) -Chars 6794 - 6795 [*] 0. secs (0.u,0.s) -Chars 6797 - 6809 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 6810 - 6839 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 6840 - 6848 [apply~H.] 0. secs (0.u,0.s) -Chars 6855 - 6856 [*] 0. secs (0.u,0.s) -Chars 6858 - 6870 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 6871 - 6900 [eapply~CIH;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 6901 - 6909 [apply~H.] 0. secs (0.u,0.s) -Chars 6918 - 6923 [step.] 0.001 secs (0.001u,0.s) -Chars 6924 - 6953 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 6956 - 6957 [-] 0. secs (0.u,0.s) -Chars 6958 - 6980 [eapply~IHHeutt;~eauto.] 0. secs (0.u,0.s) -Chars 6981 - 6988 [unstep.] 0. secs (0.u,0.s) -Chars 6989 - 7011 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 7016 - 7038 [apply~tau_eqit_secure.] 0. secs (0.u,0.s) -Chars 7039 - 7061 [apply~eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 7062 - 7067 [step.] 0. secs (0.u,0.s) -Chars 7068 - 7073 [auto.] 0. secs (0.u,0.s) -Chars 7074 - 7078 [Qed.] 0.069 secs (0.069u,0.s) diff --git a/extra/Secure/SecureEqHalt.v.timing b/extra/Secure/SecureEqHalt.v.timing deleted file mode 100644 index e40df8e2..00000000 --- a/extra/Secure/SecureEqHalt.v.timing +++ /dev/null @@ -1,73 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.024 secs (0.019u,0.005s) -Chars 211 - 295 [From~ITree~Require~Import~Basi...] 0.138 secs (0.127u,0.011s) -Chars 297 - 343 [From~ITree.Extra~Require~Expor...] 0. secs (0.u,0.s) -Chars 346 - 360 [Import~Monads.] 0. secs (0.u,0.s) -Chars 361 - 382 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 383 - 412 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 476 - 498 [Section~SecureUntimed.] 0. secs (0.u,0.s) -Chars 501 - 543 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 546 - 573 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) -Chars 576 - 612 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) -Chars 615 - 647 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 651 - 689 [Coercion~is_true~:~bool~>->~So...] 0. secs (0.u,0.s) -Chars 692 - 3799 [Inductive~secure_eqitF~(b1~b2~...] 0.011 secs (0.009u,0.001s) -Chars 3803 - 3842 [Hint~Constructors~secure_eqitF...] 0. secs (0.u,0.s) -Chars 3846 - 4040 [Definition~secure_eqit_~(b1~b2...] 0. secs (0.u,0.s) -Chars 4044 - 4077 [Hint~Unfold~secure_eqit_:~itree.] 0. secs (0.u,0.s) -Chars 4080 - 4212 [Lemma~secure_eqitF_mono~b1~b2~...] 0. secs (0.u,0.s) -Chars 4215 - 4221 [Proof.] 0. secs (0.u,0.s) -Chars 4226 - 4234 [intros~!.] 0. secs (0.u,0.s) -Chars 4235 - 4250 [red;~red~in~H0.] 0. secs (0.u,0.s) -Chars 4256 - 4333 [induction~H0;~~try~(solve~[~co...] 0.211 secs (0.205u,0.004s) -Chars 4336 - 4340 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4344 - 4420 [Definition~secure_eqit_mon~b1~...] 0. secs (0.u,0.s) -Chars 4424 - 4488 [Definition~eqit_secure~b1~b2~l...] 0. secs (0.u,0.s) -Chars 4887 - 4905 [End~SecureUntimed.] 0.001 secs (0.001u,0.s) -Chars 4907 - 4956 [#[global]~Hint~Constructors~se...] 0. secs (0.u,0.s) -Chars 4958 - 5048 [Definition~NatPreorder~:~Preor...] 0. secs (0.u,0.s) -Chars 5050 - 5232 [Ltac~~unpriv_co~:=~~~try~apply...] 0. secs (0.u,0.s) -Chars 5234 - 5369 [Ltac~~unpriv_ind~:=~~~try~appl...] 0. secs (0.u,0.s) -Chars 5371 - 5761 [Ltac~~unpriv_halt~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 5763 - 5796 [Section~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) -Chars 5798 - 5819 [Section~eqit_secureC.] 0. secs (0.u,0.s) -Chars 5883 - 5948 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 5951 - 6014 [Context~(Label~:~Preorder)~(pr...] 0. secs (0.u,0.s) -Chars 7253 - 7270 [End~eqit_secureC.] 0. secs (0.u,0.s) -Chars 7296 - 7495 [Lemma~eqit_secure_sym~:~~~fora...] 0. secs (0.u,0.s) -Chars 7496 - 7502 [Proof.] 0. secs (0.u,0.s) -Chars 7505 - 7542 [intros~b1~b2~E~R1~R2~RR~Label~...] 0. secs (0.u,0.s) -Chars 7543 - 7562 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 7565 - 7583 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) -Chars 7584 - 7597 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 7600 - 7710 [hinduction~Hsec~before~c;~intr...] 0.201 secs (0.199u,0.001s) -Chars 7713 - 7714 [-] 0. secs (0.u,0.s) -Chars 7715 - 7744 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 7745 - 7752 [intros.] 0. secs (0.u,0.s) -Chars 7753 - 7772 [apply~CIH;~apply~H.] 0. secs (0.u,0.s) -Chars 7775 - 7776 [-] 0. secs (0.u,0.s) -Chars 7777 - 7788 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7789 - 7797 [apply~H.] 0. secs (0.u,0.s) -Chars 7801 - 7802 [-] 0. secs (0.u,0.s) -Chars 7803 - 7814 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7815 - 7823 [apply~H.] 0. secs (0.u,0.s) -Chars 7825 - 7829 [Qed.] 0.004 secs (0.004u,0.s) -Chars 7832 - 8094 [Lemma~secure_eqit_mono~:~~~for...] 0. secs (0.u,0.s) -Chars 8095 - 8101 [Proof.] 0. secs (0.u,0.s) -Chars 8104 - 8111 [intros.] 0. secs (0.u,0.s) -Chars 8112 - 8136 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 8137 - 8147 [revert~t1.] 0. secs (0.u,0.s) -Chars 8148 - 8166 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 8169 - 8187 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 8188 - 8193 [icbn.] 0. secs (0.u,0.s) -Chars 8197 - 8210 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 8213 - 8391 [hinduction~Ht12~before~l;~intr...] 0.025 secs (0.025u,0.s) -Chars 8395 - 8396 [-] 0. secs (0.u,0.s) -Chars 8397 - 8415 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8416 - 8429 [now~apply~H2.] 0. secs (0.u,0.s) -Chars 8433 - 8434 [-] 0. secs (0.u,0.s) -Chars 8435 - 8462 [constructor;~intros;~eauto.] 0. secs (0.u,0.s) -Chars 8463 - 8474 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8475 - 8483 [apply~H.] 0. secs (0.u,0.s) -Chars 8485 - 8489 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8491 - 8520 [End~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqHaltProgInsens.v.timing b/extra/Secure/SecureEqHaltProgInsens.v.timing deleted file mode 100644 index 11742d3e..00000000 --- a/extra/Secure/SecureEqHaltProgInsens.v.timing +++ /dev/null @@ -1,66 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 161 - 207 [From~Stdlib~Require~Import~Mor...] 0.025 secs (0.02u,0.005s) -Chars 209 - 275 [From~ITree~Require~Import~Axio...] 0.142 secs (0.13u,0.012s) -Chars 277 - 323 [From~ITree.Extra~Require~Expor...] 0. secs (0.u,0.s) -Chars 386 - 408 [Section~SecureUntimed.] 0. secs (0.u,0.s) -Chars 411 - 453 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 456 - 483 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) -Chars 486 - 522 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) -Chars 525 - 557 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 561 - 599 [Coercion~is_true~:~bool~>->~So...] 0. secs (0.u,0.s) -Chars 603 - 3577 [Variant~secure_eqitF~(b1~b2~:~...] 0.008 secs (0.007u,0.001s) -Chars 3581 - 3620 [Hint~Constructors~secure_eqitF...] 0. secs (0.u,0.s) -Chars 3624 - 3818 [Definition~secure_eqit_~(b1~b2...] 0. secs (0.u,0.s) -Chars 3822 - 3855 [Hint~Unfold~secure_eqit_:~itree.] 0. secs (0.u,0.s) -Chars 3859 - 3987 [Lemma~secure_eqitF_mono~b1~b2~...] 0. secs (0.u,0.s) -Chars 3990 - 3996 [Proof.] 0. secs (0.u,0.s) -Chars 4001 - 4009 [intros~!.] 0. secs (0.u,0.s) -Chars 4010 - 4025 [red;~red~in~H0.] 0. secs (0.u,0.s) -Chars 4030 - 4106 [destruct~H0;~~try~(solve~[~con...] 0.031 secs (0.028u,0.002s) -Chars 4110 - 4114 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4118 - 4194 [Definition~secure_eqit_mon~b1~...] 0. secs (0.u,0.s) -Chars 4198 - 4262 [Definition~eqit_secure~b1~b2~l...] 0. secs (0.u,0.s) -Chars 4743 - 4761 [End~SecureUntimed.] 0. secs (0.u,0.s) -Chars 4763 - 4812 [#[export]~Hint~Constructors~se...] 0. secs (0.u,0.s) -Chars 4814 - 4904 [Definition~NatPreorder~:~Preor...] 0. secs (0.u,0.s) -Chars 4906 - 4939 [Section~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) -Chars 8475 - 8496 [Section~eqit_secureC.] 0. secs (0.u,0.s) -Chars 8560 - 8625 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 8628 - 8691 [Context~(Label~:~Preorder)~(pr...] 0. secs (0.u,0.s) -Chars 8696 - 9197 [Variant~eqit_secure_trans_clo~...] 0.001 secs (0.001u,0.s) -Chars 9201 - 9249 [Hint~Constructors~eqit_secure_...] 0. secs (0.u,0.s) -Chars 9253 - 9326 [Definition~eqit_secureC~b1~b2~...] 0. secs (0.u,0.s) -Chars 9329 - 9362 [Hint~Unfold~eqit_secureC:~itree.] 0. secs (0.u,0.s) -Chars 9366 - 9519 [Lemma~eqit_secureC_mon~b1~b2~r...] 0. secs (0.u,0.s) -Chars 9522 - 9528 [Proof.] 0. secs (0.u,0.s) -Chars 9533 - 9563 [destruct~IN;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9566 - 9570 [Qed.] 0. secs (0.u,0.s) -Chars 9572 - 9589 [End~eqit_secureC.] 0. secs (0.u,0.s) -Chars 9593 - 9775 [Ltac~~unpriv_co~:=~~~try~apply...] 0. secs (0.u,0.s) -Chars 9777 - 9912 [Ltac~~unpriv_ind~:=~~~try~appl...] 0. secs (0.u,0.s) -Chars 9914 - 10309 [Ltac~~unpriv_halt~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 10311 - 10437 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 10580 - 10659 [Ltac~~ne~A~:=~let~Hne~:=~fresh...] 0. secs (0.u,0.s) -Chars 10661 - 10860 [Lemma~eqit_secure_sym~:~~~fora...] 0. secs (0.u,0.s) -Chars 10861 - 10867 [Proof.] 0. secs (0.u,0.s) -Chars 10870 - 10907 [intros~b1~b2~E~R1~R2~RR~Label~...] 0. secs (0.u,0.s) -Chars 10908 - 10927 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 10930 - 10948 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) -Chars 10949 - 10962 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 10965 - 11055 [hinduction~Hsec~before~c;~intr...] 0.042 secs (0.042u,0.s) -Chars 11056 - 11060 [Qed.] 0.004 secs (0.004u,0.s) -Chars 11063 - 11325 [Lemma~secure_eqit_mono~:~~~for...] 0. secs (0.u,0.s) -Chars 11326 - 11332 [Proof.] 0. secs (0.u,0.s) -Chars 11335 - 11342 [intros.] 0. secs (0.u,0.s) -Chars 11343 - 11367 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 11368 - 11378 [revert~t1.] 0. secs (0.u,0.s) -Chars 11379 - 11397 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 11400 - 11418 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 11419 - 11424 [icbn.] 0. secs (0.u,0.s) -Chars 11428 - 11441 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 11444 - 11555 [hinduction~Ht12~before~l;~intr...] 0.018 secs (0.018u,0.s) -Chars 11559 - 11560 [-] 0. secs (0.u,0.s) -Chars 11561 - 11579 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 11580 - 11593 [now~apply~H2.] 0. secs (0.u,0.s) -Chars 11595 - 11599 [Qed.] 0.004 secs (0.004u,0.s) -Chars 11601 - 11630 [End~SecureUntimedUnReflexive.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqProgInsens.v.timing b/extra/Secure/SecureEqProgInsens.v.timing deleted file mode 100644 index 7e7bff2e..00000000 --- a/extra/Secure/SecureEqProgInsens.v.timing +++ /dev/null @@ -1,527 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 37 - 89 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 91 - 156 [From~ITree~Require~Import~Axio...] 0.156 secs (0.141u,0.015s) -Chars 158 - 216 [From~ITree.Extra~Require~Impor...] 0. secs (0.u,0.s) -Chars 219 - 233 [Import~Monads.] 0. secs (0.u,0.s) -Chars 234 - 255 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 256 - 285 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 349 - 374 [Section~SecureProgInsens.] 0. secs (0.u,0.s) -Chars 377 - 419 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 422 - 449 [Context~(Label~:~Preorder).] 0. secs (0.u,0.s) -Chars 452 - 488 [Context~(priv~:~forall~A,~E~A~...] 0. secs (0.u,0.s) -Chars 491 - 523 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 626 - 2394 [Variant~pi_secure_eqitF~(b1~b2...] 0.005 secs (0.004u,0.s) -Chars 2398 - 2440 [Hint~Constructors~pi_secure_eq...] 0. secs (0.u,0.s) -Chars 2444 - 2644 [Definition~pi_secure_eqit_~(b1...] 0. secs (0.u,0.s) -Chars 2648 - 2684 [Hint~Unfold~pi_secure_eqit_:~i...] 0. secs (0.u,0.s) -Chars 2688 - 2829 [Lemma~pi_secure_eqitF_mono~b1~...] 0. secs (0.u,0.s) -Chars 2832 - 2838 [Proof.] 0. secs (0.u,0.s) -Chars 2843 - 2851 [intros~!.] 0. secs (0.u,0.s) -Chars 2852 - 2867 [red;~red~in~H0.] 0. secs (0.u,0.s) -Chars 2872 - 2949 [induction~H0;~~try~(solve~[~co...] 0.005 secs (0.004u,0.001s) -Chars 2952 - 2956 [Qed.] 0.023 secs (0.021u,0.001s) -Chars 2960 - 3042 [Definition~pi_secure_eqit_mon~...] 0. secs (0.u,0.s) -Chars 3046 - 3116 [Definition~pi_eqit_secure~b1~b...] 0. secs (0.u,0.s) -Chars 3118 - 3139 [End~SecureProgInsens.] 0. secs (0.u,0.s) -Chars 3141 - 3193 [#[export]~Hint~Constructors~pi...] 0. secs (0.u,0.s) -Chars 3194 - 3246 [#[global]~Hint~Constructors~pi...] 0. secs (0.u,0.s) -Chars 3248 - 3530 [Ltac~~unpriv_pi~:=~~~try~apply...] 0. secs (0.u,0.s) -Chars 3532 - 3658 [Ltac~~contra_size~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 3660 - 3709 [#[local]~Ltac~taul~:=~apply~pi...] 0. secs (0.u,0.s) -Chars 3710 - 3759 [#[local]~Ltac~taur~:=~apply~pi...] 0. secs (0.u,0.s) -Chars 3761 - 3963 [Lemma~eqit_secure_imp_pi_eqit_...] 0. secs (0.u,0.s) -Chars 3964 - 3970 [Proof.] 0. secs (0.u,0.s) -Chars 3973 - 3992 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3993 - 4010 [intros~t1~t2~Hps.] 0. secs (0.u,0.s) -Chars 4011 - 4023 [step~in~Hps.] 0. secs (0.u,0.s) -Chars 4026 - 4058 [hinduction~Hps~before~c;~intros.] 0.001 secs (0.001u,0.s) -Chars 4061 - 4062 [-] 0. secs (0.u,0.s) -Chars 4063 - 4092 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 4095 - 4096 [-] 0. secs (0.u,0.s) -Chars 4097 - 4109 [constructor.] 0. secs (0.u,0.s) -Chars 4110 - 4120 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4121 - 4129 [apply~H.] 0. secs (0.u,0.s) -Chars 4132 - 4133 [-] 0. secs (0.u,0.s) -Chars 4134 - 4153 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 4154 - 4183 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 4184 - 4195 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 4196 - 4201 [step.] 0. secs (0.u,0.s) -Chars 4202 - 4212 [apply~Hps.] 0. secs (0.u,0.s) -Chars 4215 - 4216 [-] 0. secs (0.u,0.s) -Chars 4217 - 4241 [rewrite~itree_eta'~~at~1.] 0.048 secs (0.047u,0.s) -Chars 4242 - 4271 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 4272 - 4283 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 4284 - 4289 [step.] 0. secs (0.u,0.s) -Chars 4290 - 4300 [apply~Hps.] 0. secs (0.u,0.s) -Chars 4303 - 4304 [-] 0. secs (0.u,0.s) -Chars 4305 - 4334 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 4335 - 4342 [intros.] 0. secs (0.u,0.s) -Chars 4343 - 4353 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4354 - 4362 [apply~H.] 0. secs (0.u,0.s) -Chars 4365 - 4366 [-] 0. secs (0.u,0.s) -Chars 4367 - 4377 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 4378 - 4398 [eapply~CIH;~apply~H.] 0. secs (0.u,0.s) -Chars 4401 - 4402 [-] 0. secs (0.u,0.s) -Chars 4403 - 4413 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 4414 - 4434 [eapply~CIH;~apply~H.] 0. secs (0.u,0.s) -Chars 4437 - 4438 [-] 0. secs (0.u,0.s) -Chars 4439 - 4449 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 4450 - 4470 [eapply~CIH;~apply~H.] 0. secs (0.u,0.s) -Chars 4473 - 4474 [-] 0. secs (0.u,0.s) -Chars 4475 - 4485 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 4486 - 4497 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 4498 - 4503 [step.] 0. secs (0.u,0.s) -Chars 4504 - 4512 [apply~H.] 0. secs (0.u,0.s) -Chars 4515 - 4516 [-] 0. secs (0.u,0.s) -Chars 4517 - 4527 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 4528 - 4539 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 4540 - 4545 [step.] 0. secs (0.u,0.s) -Chars 4546 - 4554 [apply~H.] 0. secs (0.u,0.s) -Chars 4557 - 4558 [-] 0. secs (0.u,0.s) -Chars 4559 - 4599 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.001 secs (0.001u,0.s) -Chars 4602 - 4603 [-] 0. secs (0.u,0.s) -Chars 4604 - 4644 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.001 secs (0.001u,0.s) -Chars 4647 - 4648 [-] 0. secs (0.u,0.s) -Chars 4649 - 4689 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.002 secs (0.002u,0.s) -Chars 4692 - 4693 [-] 0. secs (0.u,0.s) -Chars 4694 - 4734 [unpriv_pi;~inv~SIZECHECK;~cont...] 0.003 secs (0.003u,0.s) -Chars 4735 - 4739 [Qed.] 0.006 secs (0.006u,0.s) -Chars 4742 - 4943 [Lemma~pi_eqit_secure_sym~b1~b2...] 0. secs (0.u,0.s) -Chars 4944 - 4950 [Proof.] 0. secs (0.u,0.s) -Chars 4953 - 4972 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 4973 - 4991 [intros~t1~t2~Hsec.] 0. secs (0.u,0.s) -Chars 4992 - 5005 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 5008 - 5104 [hinduction~Hsec~before~c;~intr...] 0.325 secs (0.322u,0.002s) -Chars 5107 - 5125 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5126 - 5133 [intros.] 0. secs (0.u,0.s) -Chars 5134 - 5144 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5145 - 5153 [apply~H.] 0. secs (0.u,0.s) -Chars 5154 - 5158 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5161 - 5432 [Lemma~pi_secure_eqit_mono~:~~~...] 0. secs (0.u,0.s) -Chars 5433 - 5439 [Proof.] 0. secs (0.u,0.s) -Chars 5442 - 5449 [intros.] 0. secs (0.u,0.s) -Chars 5450 - 5474 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 5475 - 5485 [revert~t1.] 0. secs (0.u,0.s) -Chars 5486 - 5504 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5507 - 5525 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 5526 - 5531 [icbn.] 0. secs (0.u,0.s) -Chars 5534 - 5547 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 5550 - 5655 [hinduction~Ht12~before~l;~intr...] 0.017 secs (0.017u,0.s) -Chars 5658 - 5659 [-] 0. secs (0.u,0.s) -Chars 5660 - 5678 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5679 - 5692 [now~apply~H2.] 0. secs (0.u,0.s) -Chars 5695 - 5696 [-] 0. secs (0.u,0.s) -Chars 5697 - 5724 [constructor;~intros;~eauto.] 0. secs (0.u,0.s) -Chars 5725 - 5736 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 5737 - 5745 [apply~H.] 0. secs (0.u,0.s) -Chars 5746 - 5750 [Qed.] 0.003 secs (0.003u,0.s) -Chars 5753 - 5912 [Lemma~pi_eqit_secure_spin~b~E~...] 0. secs (0.u,0.s) -Chars 5913 - 5919 [Proof.] 0. secs (0.u,0.s) -Chars 5922 - 5941 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5942 - 5949 [intros.] 0. secs (0.u,0.s) -Chars 5950 - 5954 [cbn.] 0. secs (0.u,0.s) -Chars 5955 - 5973 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5974 - 5978 [Qed.] 0. secs (0.u,0.s) -Chars 5980 - 6192 [Lemma~pi_eqit_secure_private_h...] 0. secs (0.u,0.s) -Chars 6193 - 6199 [Proof.] 0. secs (0.u,0.s) -Chars 6202 - 6220 [intros~HA~Hleq~t1.] 0. secs (0.u,0.s) -Chars 6221 - 6226 [step.] 0. secs (0.u,0.s) -Chars 6227 - 6231 [cbn.] 0. secs (0.u,0.s) -Chars 6232 - 6242 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 6243 - 6265 [inv~HA;~contradiction.] 0. secs (0.u,0.s) -Chars 6266 - 6270 [Qed.] 0. secs (0.u,0.s) -Chars 6272 - 6583 [Lemma~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) -Chars 6584 - 6590 [Proof.] 0. secs (0.u,0.s) -Chars 6593 - 6628 [intros~E~R1~b2~R2~RR1~Label~pr...] 0. secs (0.u,0.s) -Chars 6629 - 6647 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6650 - 6668 [intros~t1~t2~Htau.] 0. secs (0.u,0.s) -Chars 6669 - 6682 [step~in~Htau.] 0. secs (0.u,0.s) -Chars 6685 - 6690 [icbn.] 0. secs (0.u,0.s) -Chars 6691 - 6700 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6703 - 6730 [inv~Htau;~eauto~with~itree.] 0.506 secs (0.5u,0.003s) -Chars 6733 - 6734 [-] 0. secs (0.u,0.s) -Chars 6735 - 6753 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 6754 - 6774 [apply~(gfp_chain~c).] 0. secs (0.u,0.s) -Chars 6775 - 6784 [apply~H1.] 0. secs (0.u,0.s) -Chars 6787 - 6788 [-] 0. secs (0.u,0.s) -Chars 6789 - 6807 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 6808 - 6818 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6819 - 6824 [step.] 0. secs (0.u,0.s) -Chars 6825 - 6839 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 6840 - 6851 [step~in~H1.] 0. secs (0.u,0.s) -Chars 6852 - 6861 [apply~H1.] 0. secs (0.u,0.s) -Chars 6864 - 6865 [-] 0. secs (0.u,0.s) -Chars 6866 - 6887 [apply~(gfp_bchain~c).] 0. secs (0.u,0.s) -Chars 6888 - 6897 [apply~H1.] 0. secs (0.u,0.s) -Chars 6900 - 6901 [-] 0. secs (0.u,0.s) -Chars 6902 - 6912 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 6913 - 6933 [apply~(gfp_chain~c).] 0. secs (0.u,0.s) -Chars 6934 - 6943 [apply~H1.] 0. secs (0.u,0.s) -Chars 6946 - 6947 [-] 0. secs (0.u,0.s) -Chars 6948 - 6958 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 6959 - 6969 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6970 - 6975 [step.] 0. secs (0.u,0.s) -Chars 6976 - 6990 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 6991 - 7009 [specialize~(H1~a).] 0. secs (0.u,0.s) -Chars 7010 - 7021 [step~in~H1.] 0. secs (0.u,0.s) -Chars 7022 - 7031 [apply~H1.] 0. secs (0.u,0.s) -Chars 7032 - 7036 [Qed.] 0.006 secs (0.006u,0.s) -Chars 7038 - 7329 [Lemma~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) -Chars 7330 - 7336 [Proof.] 0. secs (0.u,0.s) -Chars 7339 - 7357 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 7358 - 7383 [intros~t1~t2~t3~Hsec~Heq.] 0. secs (0.u,0.s) -Chars 7386 - 7398 [step~in~Heq.] 0. secs (0.u,0.s) -Chars 7399 - 7412 [step~in~Hsec.] 0. secs (0.u,0.s) -Chars 7413 - 7418 [icbn.] 0. secs (0.u,0.s) -Chars 7419 - 7428 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 7431 - 7463 [hinduction~Heq~before~c;~intros.] 0.001 secs (0.001u,0.s) -Chars 7466 - 7467 [-] 0. secs (0.u,0.s) -Chars 7468 - 7506 [inv~Hsec;~eauto~with~itree;~un...] 0.013 secs (0.013u,0.s) -Chars 7511 - 7512 [+] 0. secs (0.u,0.s) -Chars 7513 - 7532 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 7533 - 7562 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 7563 - 7581 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 7582 - 7587 [step.] 0.001 secs (0.001u,0.s) -Chars 7588 - 7599 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7600 - 7612 [constructor.] 0. secs (0.u,0.s) -Chars 7613 - 7618 [auto.] 0. secs (0.u,0.s) -Chars 7623 - 7624 [+] 0. secs (0.u,0.s) -Chars 7625 - 7644 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 7645 - 7655 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 7656 - 7674 [eapply~CIH;~eauto.] 0.002 secs (0.001u,0.s) -Chars 7675 - 7684 [apply~H1.] 0. secs (0.u,0.s) -Chars 7685 - 7690 [step.] 0.001 secs (0.001u,0.s) -Chars 7691 - 7702 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7703 - 7721 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7724 - 7725 [-] 0. secs (0.u,0.s) -Chars 7726 - 7753 [inv~Hsec;~eauto~with~itree.] 0.039 secs (0.039u,0.s) -Chars 7758 - 7759 [+] 0. secs (0.u,0.s) -Chars 7760 - 7772 [constructor.] 0. secs (0.u,0.s) -Chars 7773 - 7802 [eapply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 7803 - 7808 [step.] 0.001 secs (0.001u,0.s) -Chars 7809 - 7820 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7821 - 7839 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7840 - 7856 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 7861 - 7862 [+] 0. secs (0.u,0.s) -Chars 7863 - 7873 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 7874 - 7892 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 7893 - 7902 [apply~H1.] 0. secs (0.u,0.s) -Chars 7907 - 7908 [+] 0. secs (0.u,0.s) -Chars 7909 - 7919 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 7920 - 7931 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7932 - 7941 [apply~H1.] 0. secs (0.u,0.s) -Chars 7942 - 7947 [step.] 0.001 secs (0.001u,0.s) -Chars 7948 - 7959 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7960 - 7979 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 7980 - 7996 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 7999 - 8000 [-] 0. secs (0.u,0.s) -Chars 8001 - 8010 [inv~Hsec.] 0.024 secs (0.024u,0.s) -Chars 8015 - 8016 [+] 0. secs (0.u,0.s) -Chars 8017 - 8036 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 8037 - 8055 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8056 - 8074 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 8075 - 8080 [step.] 0.001 secs (0.001u,0.s) -Chars 8081 - 8092 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 8093 - 8105 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 8106 - 8116 [apply~REL.] 0. secs (0.u,0.s) -Chars 8121 - 8122 [+] 0. secs (0.u,0.s) -Chars 8123 - 8136 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 8137 - 8143 [subst.] 0. secs (0.u,0.s) -Chars 8144 - 8173 [constructor;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 8174 - 8183 [intros~a.] 0. secs (0.u,0.s) -Chars 8184 - 8195 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8196 - 8205 [apply~H1.] 0. secs (0.u,0.s) -Chars 8206 - 8216 [apply~REL.] 0. secs (0.u,0.s) -Chars 8221 - 8222 [+] 0. secs (0.u,0.s) -Chars 8223 - 8236 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 8237 - 8243 [subst.] 0. secs (0.u,0.s) -Chars 8244 - 8254 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 8255 - 8266 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8267 - 8276 [apply~H1.] 0. secs (0.u,0.s) -Chars 8277 - 8287 [apply~REL.] 0. secs (0.u,0.s) -Chars 8292 - 8293 [+] 0. secs (0.u,0.s) -Chars 8294 - 8307 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 8308 - 8314 [subst.] 0. secs (0.u,0.s) -Chars 8315 - 8325 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 8326 - 8337 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8338 - 8347 [apply~H1.] 0. secs (0.u,0.s) -Chars 8348 - 8358 [apply~REL.] 0. secs (0.u,0.s) -Chars 8363 - 8364 [+] 0. secs (0.u,0.s) -Chars 8365 - 8394 [remember~(VisF~e~k2)~as~ovis.] 0. secs (0.u,0.s) -Chars 8395 - 8414 [rewrite~itree_eta'.] 0. secs (0.u,0.s) -Chars 8415 - 8425 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 8426 - 8442 [rewrite~Heqovis.] 0. secs (0.u,0.s) -Chars 8443 - 8454 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8455 - 8464 [apply~H1.] 0. secs (0.u,0.s) -Chars 8465 - 8470 [step.] 0.001 secs (0.001u,0.s) -Chars 8471 - 8482 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 8483 - 8495 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 8496 - 8506 [apply~REL.] 0. secs (0.u,0.s) -Chars 8511 - 8512 [+] 0. secs (0.u,0.s) -Chars 8513 - 8526 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 8527 - 8533 [subst.] 0. secs (0.u,0.s) -Chars 8534 - 8544 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 8545 - 8556 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 8557 - 8566 [apply~H1.] 0. secs (0.u,0.s) -Chars 8567 - 8577 [apply~REL.] 0. secs (0.u,0.s) -Chars 8580 - 8581 [-] 0. secs (0.u,0.s) -Chars 8582 - 8602 [eapply~IHHeq;~eauto.] 0. secs (0.u,0.s) -Chars 8603 - 8615 [clear~IHHeq.] 0. secs (0.u,0.s) -Chars 8616 - 8625 [inv~Hsec.] 0.031 secs (0.03u,0.s) -Chars 8630 - 8631 [+] 0. secs (0.u,0.s) -Chars 8632 - 8650 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8655 - 8656 [+] 0. secs (0.u,0.s) -Chars 8657 - 8667 [inv~CHECK.] 0.005 secs (0.005u,0.s) -Chars 8668 - 8686 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8687 - 8725 [apply~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) -Chars 8726 - 8731 [step.] 0. secs (0.u,0.s) -Chars 8732 - 8746 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 8747 - 8762 [now~step~in~H1.] 0. secs (0.u,0.s) -Chars 8767 - 8768 [+] 0. secs (0.u,0.s) -Chars 8769 - 8784 [now~step~in~H1.] 0. secs (0.u,0.s) -Chars 8789 - 8790 [+] 0. secs (0.u,0.s) -Chars 8791 - 8801 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 8806 - 8807 [+] 0. secs (0.u,0.s) -Chars 8808 - 8819 [inv~CHECK0.] 0.005 secs (0.005u,0.s) -Chars 8820 - 8830 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 8831 - 8869 [apply~pi_eqit_secure_mixed_tra...] 0. secs (0.u,0.s) -Chars 8870 - 8875 [step.] 0. secs (0.u,0.s) -Chars 8876 - 8890 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 8891 - 8909 [specialize~(H1~a).] 0. secs (0.u,0.s) -Chars 8910 - 8921 [step~in~H1.] 0. secs (0.u,0.s) -Chars 8922 - 8931 [apply~H1.] 0. secs (0.u,0.s) -Chars 8934 - 8935 [-] 0. secs (0.u,0.s) -Chars 8936 - 8954 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8955 - 8960 [step.] 0. secs (0.u,0.s) -Chars 8961 - 8981 [eapply~IHHeq;~eauto.] 0. secs (0.u,0.s) -Chars 8982 - 8986 [Qed.] 0.031 secs (0.031u,0.s) -Chars 8988 - 9312 [Lemma~pi_eqit_secure_RR_imp~b1...] 0. secs (0.u,0.s) -Chars 9313 - 9319 [Proof.] 0. secs (0.u,0.s) -Chars 9322 - 9334 [intros~Himp.] 0. secs (0.u,0.s) -Chars 9337 - 9356 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 9357 - 9375 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 9376 - 9389 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 9392 - 9566 [hinduction~Ht12~before~c;~intr...] 0.326 secs (0.324u,0.001s) -Chars 9569 - 9587 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 9588 - 9595 [intros.] 0. secs (0.u,0.s) -Chars 9596 - 9607 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 9608 - 9616 [apply~H.] 0. secs (0.u,0.s) -Chars 9617 - 9621 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9623 - 10035 [Ltac~~inv_eq_itree~:=~~~repeat...] 0. secs (0.u,0.s) -Chars 10316 - 10548 [#[global]~Instance~pi_eqit_sec...] 0.001 secs (0.001u,0.s) -Chars 10549 - 10555 [Proof.] 0. secs (0.u,0.s) -Chars 10558 - 10567 [do~5~red.] 0. secs (0.u,0.s) -Chars 10568 - 10584 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 10585 - 10593 [clear~c.] 0. secs (0.u,0.s) -Chars 10594 - 10631 [intros~c~CIH~t1~t2~H12~t3~t4~H...] 0. secs (0.u,0.s) -Chars 10634 - 10652 [icbn;~icbn~in~Hpi.] 0. secs (0.u,0.s) -Chars 10653 - 10678 [step~in~H12;~step~in~H34.] 0. secs (0.u,0.s) -Chars 10682 - 10710 [induction~Hpi;~inv_eq_itree.] 0.197 secs (0.196u,0.001s) -Chars 10758 - 10780 [1,~2:~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 10784 - 10785 [-] 0. secs (0.u,0.s) -Chars 10786 - 10791 [taul.] 0. secs (0.u,0.s) -Chars 10792 - 10803 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10804 - 10814 [apply~REL.] 0. secs (0.u,0.s) -Chars 10815 - 10831 [step;~apply~H34.] 0.001 secs (0.001u,0.s) -Chars 10832 - 10843 [assumption.] 0. secs (0.u,0.s) -Chars 10847 - 10848 [-] 0. secs (0.u,0.s) -Chars 10849 - 10854 [taur.] 0. secs (0.u,0.s) -Chars 10855 - 10866 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10867 - 10883 [step;~apply~H12.] 0.001 secs (0.001u,0.s) -Chars 10884 - 10894 [apply~REL.] 0. secs (0.u,0.s) -Chars 10895 - 10906 [assumption.] 0. secs (0.u,0.s) -Chars 10910 - 10911 [-] 0. secs (0.u,0.s) -Chars 10912 - 10925 [ddestruction.] 0.004 secs (0.004u,0.s) -Chars 10926 - 10931 [evis.] 0.016 secs (0.016u,0.s) -Chars 10936 - 10937 [-] 0. secs (0.u,0.s) -Chars 10938 - 10951 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 10952 - 10962 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 10963 - 10974 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 10975 - 10986 [apply~REL0.] 0. secs (0.u,0.s) -Chars 10987 - 10997 [apply~REL.] 0. secs (0.u,0.s) -Chars 10998 - 11006 [apply~H.] 0. secs (0.u,0.s) -Chars 11010 - 11011 [-] 0. secs (0.u,0.s) -Chars 11012 - 11025 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 11026 - 11036 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 11037 - 11048 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 11049 - 11059 [apply~REL.] 0. secs (0.u,0.s) -Chars 11060 - 11071 [apply~REL0.] 0. secs (0.u,0.s) -Chars 11072 - 11080 [apply~H.] 0. secs (0.u,0.s) -Chars 11083 - 11084 [-] 0. secs (0.u,0.s) -Chars 11085 - 11098 [ddestruction.] 0.005 secs (0.005u,0.s) -Chars 11099 - 11109 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 11110 - 11121 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 11122 - 11133 [apply~REL0.] 0. secs (0.u,0.s) -Chars 11134 - 11144 [apply~REL.] 0. secs (0.u,0.s) -Chars 11145 - 11153 [apply~H.] 0. secs (0.u,0.s) -Chars 11156 - 11157 [-] 0. secs (0.u,0.s) -Chars 11158 - 11171 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 11172 - 11182 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 11183 - 11194 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 11195 - 11205 [apply~REL.] 0. secs (0.u,0.s) -Chars 11206 - 11222 [step;~apply~H34.] 0.001 secs (0.001u,0.s) -Chars 11223 - 11231 [apply~H.] 0. secs (0.u,0.s) -Chars 11235 - 11236 [-] 0. secs (0.u,0.s) -Chars 11237 - 11250 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 11251 - 11261 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 11262 - 11273 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 11274 - 11290 [step;~apply~H12.] 0.001 secs (0.001u,0.s) -Chars 11291 - 11301 [apply~REL.] 0. secs (0.u,0.s) -Chars 11302 - 11310 [apply~H.] 0. secs (0.u,0.s) -Chars 11311 - 11315 [Qed.] 0.046 secs (0.046u,0.s) -Chars 11500 - 11733 [#[global]~Instance~pi_eqit_sec...] 0. secs (0.u,0.s) -Chars 11734 - 11740 [Proof.] 0. secs (0.u,0.s) -Chars 11743 - 11849 [eapply~pi_eqit_secure_proper_s...] 0. secs (0.u,0.s) -Chars 11850 - 11854 [Qed.] 0. secs (0.u,0.s) -Chars 11856 - 12086 [#[global]~Instance~pi_eqit_sec...] 0. secs (0.u,0.s) -Chars 12087 - 12093 [Proof.] 0. secs (0.u,0.s) -Chars 12096 - 12125 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) -Chars 12126 - 12138 [intros~Hsec.] 0. secs (0.u,0.s) -Chars 12141 - 12198 [apply~pi_eqit_secure_RR_imp~wi...] 0. secs (0.u,0.s) -Chars 12201 - 12231 [intros~r0~r3~Hr;~inv~Hr;~auto.] 0. secs (0.u,0.s) -Chars 12234 - 12277 [eapply~pi_eqit_secure_mixed_tr...] 0. secs (0.u,0.s) -Chars 12280 - 12297 [symmetry~in~Ht34.] 0. secs (0.u,0.s) -Chars 12298 - 12309 [apply~Ht34.] 0. secs (0.u,0.s) -Chars 12312 - 12345 [apply~pi_eqit_secure_sym~in~Hsec.] 0. secs (0.u,0.s) -Chars 12346 - 12371 [apply~pi_eqit_secure_sym.] 0. secs (0.u,0.s) -Chars 12374 - 12391 [symmetry~in~Ht12.] 0. secs (0.u,0.s) -Chars 12394 - 12458 [apply~pi_eqit_secure_RR_imp~wi...] 0. secs (0.u,0.s) -Chars 12461 - 12491 [intros~r0~r3~Hr;~inv~Hr;~auto.] 0. secs (0.u,0.s) -Chars 12494 - 12535 [eapply~pi_eqit_secure_mixed_tr...] 0. secs (0.u,0.s) -Chars 12536 - 12540 [Qed.] 0.001 secs (0.001u,0.s) -Chars 12543 - 12705 [Lemma~pi_eqit_secure_ret~E~Lab...] 0. secs (0.u,0.s) -Chars 12706 - 12712 [Proof.] 0. secs (0.u,0.s) -Chars 12715 - 12747 [intros;~step;~constructor;~auto.] 0. secs (0.u,0.s) -Chars 12748 - 12752 [Qed.] 0. secs (0.u,0.s) -Chars 12754 - 13147 [Lemma~pi_eqit_secure_bind~E~La...] 0. secs (0.u,0.s) -Chars 13148 - 13154 [Proof.] 0. secs (0.u,0.s) -Chars 13157 - 13176 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 13177 - 13199 [intros~?~?~Hk1k2~Ht1t2.] 0. secs (0.u,0.s) -Chars 13202 - 13216 [step~in~Ht1t2.] 0. secs (0.u,0.s) -Chars 13219 - 13234 [genobs~t1~Hot1.] 0. secs (0.u,0.s) -Chars 13238 - 13253 [genobs~t2~Hot2.] 0. secs (0.u,0.s) -Chars 13257 - 13291 [hinduction~Ht1t2~before~c;~int...] 0.001 secs (0.001u,0.s) -Chars 13294 - 13295 [-] 0. secs (0.u,0.s) -Chars 13296 - 13318 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) -Chars 13319 - 13327 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13328 - 13333 [step.] 0. secs (0.u,0.s) -Chars 13334 - 13346 [apply~Hk1k2.] 0. secs (0.u,0.s) -Chars 13347 - 13355 [apply~H.] 0. secs (0.u,0.s) -Chars 13359 - 13360 [-] 0. secs (0.u,0.s) -Chars 13361 - 13383 [rewrite~2!observe_bind.] 0. secs (0.u,0.s) -Chars 13384 - 13392 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13393 - 13398 [etau.] 0. secs (0.u,0.s) -Chars 13402 - 13403 [-] 0. secs (0.u,0.s) -Chars 13404 - 13425 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 13426 - 13434 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13435 - 13440 [taul.] 0. secs (0.u,0.s) -Chars 13447 - 13472 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 13473 - 13478 [step.] 0. secs (0.u,0.s) -Chars 13479 - 13487 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 13488 - 13499 [now~unstep.] 0. secs (0.u,0.s) -Chars 13503 - 13504 [-] 0. secs (0.u,0.s) -Chars 13505 - 13531 [rewrite~(observe_bind~t3).] 0. secs (0.u,0.s) -Chars 13532 - 13540 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 13541 - 13546 [taur.] 0. secs (0.u,0.s) -Chars 13551 - 13576 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 13577 - 13582 [step.] 0.002 secs (0.002u,0.s) -Chars 13583 - 13591 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 13592 - 13603 [now~unstep.] 0. secs (0.u,0.s) -Chars 13606 - 13607 [-] 0. secs (0.u,0.s) -Chars 13608 - 13630 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) -Chars 13631 - 13639 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13640 - 13658 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 13659 - 13666 [intros.] 0. secs (0.u,0.s) -Chars 13672 - 13697 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 13698 - 13703 [step.] 0. secs (0.u,0.s) -Chars 13704 - 13712 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 13713 - 13724 [now~unstep.] 0. secs (0.u,0.s) -Chars 13727 - 13728 [-] 0. secs (0.u,0.s) -Chars 13729 - 13751 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) -Chars 13752 - 13760 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13761 - 13771 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 13777 - 13802 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 13803 - 13808 [step.] 0. secs (0.u,0.s) -Chars 13809 - 13817 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 13818 - 13829 [now~unstep.] 0. secs (0.u,0.s) -Chars 13832 - 13833 [-] 0. secs (0.u,0.s) -Chars 13834 - 13856 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) -Chars 13857 - 13865 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13866 - 13876 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 13882 - 13907 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 13908 - 13913 [step.] 0. secs (0.u,0.s) -Chars 13914 - 13922 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 13923 - 13934 [now~unstep.] 0. secs (0.u,0.s) -Chars 13937 - 13938 [-] 0. secs (0.u,0.s) -Chars 13939 - 13961 [rewrite~2!observe_bind.] 0.001 secs (0.001u,0.s) -Chars 13962 - 13970 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 13971 - 13981 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 13987 - 14012 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 14013 - 14018 [step.] 0. secs (0.u,0.s) -Chars 14019 - 14027 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14028 - 14039 [now~unstep.] 0. secs (0.u,0.s) -Chars 14042 - 14043 [-] 0. secs (0.u,0.s) -Chars 14045 - 14066 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 14067 - 14075 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 14076 - 14086 [unpriv_pi.] 0.001 secs (0.001u,0.s) -Chars 14092 - 14117 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 14118 - 14123 [step.] 0. secs (0.u,0.s) -Chars 14124 - 14132 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14133 - 14144 [now~unstep.] 0. secs (0.u,0.s) -Chars 14147 - 14148 [-] 0. secs (0.u,0.s) -Chars 14149 - 14175 [rewrite~(observe_bind~t2).] 0. secs (0.u,0.s) -Chars 14176 - 14184 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 14185 - 14195 [unpriv_pi.] 0. secs (0.u,0.s) -Chars 14201 - 14226 [eapply~CIH;~intros;~auto.] 0. secs (0.u,0.s) -Chars 14227 - 14232 [step.] 0. secs (0.u,0.s) -Chars 14233 - 14241 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 14242 - 14253 [now~unstep.] 0. secs (0.u,0.s) -Chars 14254 - 14258 [Qed.] 0.009 secs (0.009u,0.s) -Chars 14261 - 15400 [Lemma~pi_eqit_secure_iter_bind...] 0.002 secs (0.002u,0.s) -Chars 15401 - 15407 [Proof.] 0. secs (0.u,0.s) -Chars 15410 - 15470 [intros~E~B2~B1~A1~A2~RA~RB~b1~...] 0. secs (0.u,0.s) -Chars 15474 - 15490 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 15491 - 15530 [clear~c;~intros~c~CIH~Hbody~t1...] 0. secs (0.u,0.s) -Chars 15531 - 15544 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 15548 - 15553 [icbn.] 0. secs (0.u,0.s) -Chars 15554 - 15568 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 15569 - 15583 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 15586 - 15619 [hinduction~Ht12~before~E;~intros.] 0.002 secs (0.002u,0.s) -Chars 15623 - 15788 [#[local]~Ltac~~by_coinduction~...] 0. secs (0.u,0.s) -Chars 15865 - 15941 [#[local]~Ltac~pi_solve~CIH~:=~...] 0. secs (0.u,0.s) -Chars 15944 - 15945 [-] 0. secs (0.u,0.s) -Chars 15946 - 15975 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 15976 - 16005 [inv~H;~cbn;~eauto~with~itree.] 0.007 secs (0.007u,0.s) -Chars 16010 - 16022 [constructor.] 0. secs (0.u,0.s) -Chars 16023 - 16045 [now~step;~apply~Hbody.] 0. secs (0.u,0.s) -Chars 16049 - 16050 [-] 0. secs (0.u,0.s) -Chars 16051 - 16080 [unfold~observe;~cbn;~simpobs.] 0.003 secs (0.003u,0.s) -Chars 16081 - 16094 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) -Chars 16097 - 16098 [-] 0. secs (0.u,0.s) -Chars 16099 - 16133 [unfold~observe~at~1;~cbn;~simp...] 0.005 secs (0.005u,0.s) -Chars 16134 - 16147 [pi_solve~CIH.] 0.006 secs (0.006u,0.s) -Chars 16150 - 16151 [-] 0. secs (0.u,0.s) -Chars 16152 - 16186 [unfold~observe~at~2;~cbn;~simp...] 0.004 secs (0.004u,0.s) -Chars 16187 - 16200 [pi_solve~CIH.] 0.006 secs (0.006u,0.s) -Chars 16203 - 16204 [-] 0. secs (0.u,0.s) -Chars 16205 - 16234 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 16235 - 16248 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) -Chars 16251 - 16252 [-] 0. secs (0.u,0.s) -Chars 16253 - 16282 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 16283 - 16296 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) -Chars 16299 - 16300 [-] 0. secs (0.u,0.s) -Chars 16301 - 16330 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 16331 - 16344 [pi_solve~CIH.] 0.005 secs (0.005u,0.s) -Chars 16347 - 16348 [-] 0. secs (0.u,0.s) -Chars 16349 - 16378 [unfold~observe;~cbn;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 16379 - 16392 [pi_solve~CIH.] 0.006 secs (0.006u,0.s) -Chars 16395 - 16396 [-] 0. secs (0.u,0.s) -Chars 16397 - 16431 [unfold~observe~at~1;~cbn;~simp...] 0.005 secs (0.005u,0.s) -Chars 16432 - 16445 [pi_solve~CIH.] 0.007 secs (0.007u,0.s) -Chars 16448 - 16449 [-] 0. secs (0.u,0.s) -Chars 16450 - 16484 [unfold~observe~at~2;~cbn;~simp...] 0.004 secs (0.004u,0.s) -Chars 16485 - 16498 [pi_solve~CIH.] 0.007 secs (0.007u,0.s) -Chars 16499 - 16503 [Qed.] 0.016 secs (0.016u,0.s) -Chars 16507 - 17017 [Lemma~secure_eqit_iter~E~A1~A2...] 0. secs (0.u,0.s) -Chars 17018 - 17024 [Proof.] 0. secs (0.u,0.s) -Chars 17114 - 17123 [Admitted.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqProgInsensFacts.v.timing b/extra/Secure/SecureEqProgInsensFacts.v.timing deleted file mode 100644 index 25b0ad5f..00000000 --- a/extra/Secure/SecureEqProgInsensFacts.v.timing +++ /dev/null @@ -1,10 +0,0 @@ -Chars 0 - 65 [From~ITree~Require~Import~Axio...] 0.162 secs (0.142u,0.019s) -Chars 67 - 156 [From~ITree.Extra~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 158 - 188 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) -Chars 190 - 204 [Import~Monads.] 0. secs (0.u,0.s) -Chars 205 - 226 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 227 - 256 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 258 - 470 [Variant~case_rel~{A1~A2~B~:~Ty...] 0. secs (0.u,0.s) -Chars 472 - 820 [Lemma~pi_eqit_secure_iter_ret~...] 0. secs (0.u,0.s) -Chars 821 - 827 [Proof.] 0. secs (0.u,0.s) -Chars 830 - 836 [ginit.] 0. secs (0.u,0.s) diff --git a/extra/Secure/SecureEqWcompat.v.timing b/extra/Secure/SecureEqWcompat.v.timing deleted file mode 100644 index 2835f7b0..00000000 --- a/extra/Secure/SecureEqWcompat.v.timing +++ /dev/null @@ -1,144 +0,0 @@ -Chars 614 - 666 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 667 - 703 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.001s) -Chars 704 - 769 [From~ITree~Require~Import~Axio...] 0.159 secs (0.142u,0.017s) -Chars 771 - 857 [From~ITree.Extra~Require~Impor...] 0.005 secs (0.004u,0.s) -Chars 859 - 873 [Import~Monads.] 0. secs (0.u,0.s) -Chars 874 - 895 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 896 - 925 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 1008 - 1215 [Lemma~eqit_secure_shalt_refl~:...] 0.001 secs (0.u,0.s) -Chars 1216 - 1222 [Proof.] 0. secs (0.u,0.s) -Chars 1225 - 1232 [intros.] 0. secs (0.u,0.s) -Chars 1233 - 1238 [step.] 0. secs (0.u,0.s) -Chars 1239 - 1243 [cbn.] 0. secs (0.u,0.s) -Chars 1244 - 1256 [unpriv_halt.] 0. secs (0.u,0.s) -Chars 1257 - 1269 [contra_size.] 0. secs (0.u,0.s) -Chars 1270 - 1274 [Qed.] 0. secs (0.u,0.s) -Chars 1350 - 1425 [Ltac~inv_vis_secure~:=~ddestru...] 0. secs (0.u,0.s) -Chars 1427 - 1536 [Ltac~~clear_trivial~:=~~~repea...] 0. secs (0.u,0.s) -Chars 1538 - 1699 [Ltac~~find_size~A~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 1701 - 1795 [Ltac~~produce_elem~H~A~:=~~~in...] 0. secs (0.u,0.s) -Chars 1869 - 2000 [Ltac~~spew~x~:=~~~let~T~:=~typ...] 0. secs (0.u,0.s) -Chars 2002 - 2113 [Ltac~~contra_leq~:=~~~match~go...] 0. secs (0.u,0.s) -Chars 2325 - 2583 [Ltac~~resolve_sizes~:=~~~repea...] 0. secs (0.u,0.s) -Chars 2585 - 2691 [Ltac~~apply_foralls~:=~~~repea...] 0. secs (0.u,0.s) -Chars 2998 - 3329 [Ltac~~secure_halt_refl~:=~solv...] 0. secs (0.u,0.s) -Chars 3331 - 3484 [Ltac~~sec_hyp~:=~first~~[~eass...] 0. secs (0.u,0.s) -Chars 3486 - 3539 [Ltac~sec_fin~:=~solve~[~sec_hy...] 0. secs (0.u,0.s) -Chars 3797 - 3963 [Ltac~~sec_reflexive~:=~~~match...] 0. secs (0.u,0.s) -Chars 4330 - 4582 [Ltac~~by_coinduction~CIH~:=~fi...] 0. secs (0.u,0.s) -Chars 5461 - 5903 [Tactic~Notation~"sec_side"~tac...] 0. secs (0.u,0.s) -Chars 5905 - 8567 [Tactic~Notation~"smart_constru...] 0. secs (0.u,0.s) -Chars 8569 - 8880 [#[global]~Instance~eqit_secure...] 0.001 secs (0.u,0.s) -Chars 8881 - 8887 [Proof.] 0. secs (0.u,0.s) -Chars 8890 - 8928 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 8931 - 8947 [tower~induction.] 0.025 secs (0.023u,0.001s) -Chars 8948 - 8956 [clear~c.] 0. secs (0.u,0.s) -Chars 8959 - 9003 [intros~c~CIH~t1~t2~Ht1t2~t3~t4...] 0. secs (0.u,0.s) -Chars 9006 - 9027 [icbn;~icbn~in~Hbt2t4.] 0. secs (0.u,0.s) -Chars 9030 - 9059 [step~in~Ht1t2;~step~in~Ht3t4.] 0. secs (0.u,0.s) -Chars 9062 - 9087 [revert~t1~t3~Ht1t2~Ht3t4.] 0. secs (0.u,0.s) -Chars 9088 - 9113 [induction~Hbt2t4;~intros.] 0.002 secs (0.002u,0.s) -Chars 9116 - 9117 [-] 0. secs (0.u,0.s) -Chars 9137 - 9175 [inv~Ht1t2;~inv~Ht3t4;~now~cons...] 0.083 secs (0.082u,0.s) -Chars 9178 - 9179 [-] 0. secs (0.u,0.s) -Chars 9199 - 9275 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.198 secs (0.196u,0.001s) -Chars 9280 - 9324 [all:~smart_constructor~by_coin...] 0.013 secs (0.013u,0.s) -Chars 9327 - 9328 [-] 0. secs (0.u,0.s) -Chars 9362 - 9419 [inv~Ht1t2;~ddestruction;~try~c...] 0.099 secs (0.098u,0.s) -Chars 9424 - 9425 [+] 0. secs (0.u,0.s) -Chars 9426 - 9448 [apply~secEqTauL;~auto.] 0. secs (0.u,0.s) -Chars 9449 - 9472 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) -Chars 9473 - 9484 [now~unstep.] 0. secs (0.u,0.s) -Chars 9489 - 9490 [+] 0. secs (0.u,0.s) -Chars 9491 - 9519 [apply~EqVisUnPrivLInd;~auto.] 0. secs (0.u,0.s) -Chars 9520 - 9527 [intros.] 0. secs (0.u,0.s) -Chars 9528 - 9551 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) -Chars 9552 - 9563 [now~unstep.] 0. secs (0.u,0.s) -Chars 9568 - 9569 [+] 0. secs (0.u,0.s) -Chars 9570 - 9605 [eapply~(IHHbt2t4~(Vis~_~_));~e...] 0. secs (0.u,0.s) -Chars 9606 - 9617 [now~unstep.] 0. secs (0.u,0.s) -Chars 9620 - 9621 [-] 0. secs (0.u,0.s) -Chars 9655 - 9713 [inv~Ht3t4;~ddestruction;~try~c...] 0.098 secs (0.097u,0.s) -Chars 9718 - 9719 [+] 0. secs (0.u,0.s) -Chars 9720 - 9742 [apply~secEqTauR;~auto.] 0. secs (0.u,0.s) -Chars 9743 - 9766 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) -Chars 9767 - 9778 [now~unstep.] 0. secs (0.u,0.s) -Chars 9783 - 9784 [+] 0. secs (0.u,0.s) -Chars 9785 - 9813 [apply~EqVisUnPrivRInd;~auto.] 0.001 secs (0.001u,0.s) -Chars 9814 - 9821 [intros.] 0. secs (0.u,0.s) -Chars 9822 - 9845 [eapply~IHHbt2t4;~eauto.] 0. secs (0.u,0.s) -Chars 9846 - 9857 [now~unstep.] 0. secs (0.u,0.s) -Chars 9862 - 9863 [+] 0. secs (0.u,0.s) -Chars 9864 - 9901 [eapply~(IHHbt2t4~_~(Vis~_~_));...] 0. secs (0.u,0.s) -Chars 9902 - 9913 [now~unstep.] 0. secs (0.u,0.s) -Chars 9916 - 9917 [-] 0. secs (0.u,0.s) -Chars 9949 - 10024 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.728 secs (0.722u,0.005s) -Chars 10029 - 10073 [all:~smart_constructor~by_coin...] 0.002 secs (0.002u,0.s) -Chars 10076 - 10077 [-] 0. secs (0.u,0.s) -Chars 10137 - 10212 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.48 secs (0.477u,0.003s) -Chars 10217 - 10261 [all:~smart_constructor~by_coin...] 0.022 secs (0.022u,0.s) -Chars 10264 - 10265 [-] 0. secs (0.u,0.s) -Chars 10325 - 10400 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.331 secs (0.328u,0.002s) -Chars 10405 - 10449 [all:~smart_constructor~by_coin...] 0.022 secs (0.022u,0.s) -Chars 10452 - 10453 [-] 0. secs (0.u,0.s) -Chars 10521 - 10596 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.819 secs (0.813u,0.005s) -Chars 10601 - 10645 [all:~smart_constructor~by_coin...] 0.027 secs (0.027u,0.s) -Chars 10648 - 10649 [-] 0. secs (0.u,0.s) -Chars 10718 - 10776 [inv~Ht1t2;~ddestruction;~try~c...] 0.168 secs (0.166u,0.001s) -Chars 10781 - 10782 [+] 0. secs (0.u,0.s) -Chars 10844 - 10866 [apply~secEqTauL;~auto.] 0. secs (0.u,0.s) -Chars 10873 - 10938 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) -Chars 10945 - 10967 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) -Chars 10968 - 10975 [unstep.] 0. secs (0.u,0.s) -Chars 10976 - 10982 [eauto.] 0. secs (0.u,0.s) -Chars 10987 - 10988 [+] 0. secs (0.u,0.s) -Chars 11056 - 11084 [apply~EqVisUnPrivLInd;~auto.] 0. secs (0.u,0.s) -Chars 11085 - 11092 [intros.] 0. secs (0.u,0.s) -Chars 11099 - 11164 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) -Chars 11171 - 11193 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) -Chars 11194 - 11201 [unstep.] 0. secs (0.u,0.s) -Chars 11202 - 11208 [eauto.] 0. secs (0.u,0.s) -Chars 11213 - 11214 [+] 0. secs (0.u,0.s) -Chars 11285 - 11350 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) -Chars 11357 - 11389 [eapply~(H0~aE~(Vis~_~_));~eauto.] 0.001 secs (0.001u,0.s) -Chars 11390 - 11397 [unstep.] 0. secs (0.u,0.s) -Chars 11398 - 11404 [eauto.] 0. secs (0.u,0.s) -Chars 11407 - 11408 [-] 0. secs (0.u,0.s) -Chars 11478 - 11536 [inv~Ht3t4;~ddestruction;~try~c...] 0.167 secs (0.166u,0.001s) -Chars 11541 - 11542 [+] 0. secs (0.u,0.s) -Chars 11601 - 11623 [apply~secEqTauR;~auto.] 0. secs (0.u,0.s) -Chars 11630 - 11695 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) -Chars 11702 - 11724 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) -Chars 11725 - 11732 [unstep.] 0. secs (0.u,0.s) -Chars 11733 - 11739 [eauto.] 0. secs (0.u,0.s) -Chars 11744 - 11745 [+] 0. secs (0.u,0.s) -Chars 11813 - 11841 [apply~EqVisUnPrivRInd;~auto.] 0. secs (0.u,0.s) -Chars 11842 - 11849 [intros.] 0. secs (0.u,0.s) -Chars 11856 - 11921 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) -Chars 11928 - 11950 [eapply~(H0~aE);~eauto.] 0. secs (0.u,0.s) -Chars 11951 - 11958 [unstep.] 0. secs (0.u,0.s) -Chars 11959 - 11965 [eauto.] 0. secs (0.u,0.s) -Chars 11970 - 11971 [+] 0. secs (0.u,0.s) -Chars 12042 - 12107 [match~goal~with~|~He:nonempty~...] 0. secs (0.u,0.s) -Chars 12114 - 12148 [eapply~(H0~aE~_~(Vis~_~_));~ea...] 0. secs (0.u,0.s) -Chars 12149 - 12156 [unstep.] 0. secs (0.u,0.s) -Chars 12157 - 12163 [eauto.] 0. secs (0.u,0.s) -Chars 12166 - 12167 [-] 0. secs (0.u,0.s) -Chars 12227 - 12302 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.462 secs (0.458u,0.003s) -Chars 12307 - 12326 [all:~resolve_sizes.] 0.002 secs (0.002u,0.s) -Chars 12331 - 12375 [all:~smart_constructor~by_coin...] 0.156 secs (0.155u,0.001s) -Chars 12378 - 12379 [-] 0. secs (0.u,0.s) -Chars 12439 - 12514 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.316 secs (0.314u,0.001s) -Chars 12519 - 12538 [all:~resolve_sizes.] 0.002 secs (0.002u,0.s) -Chars 12543 - 12587 [all:~smart_constructor~by_coin...] 0.16 secs (0.159u,0.s) -Chars 12590 - 12591 [-] 0. secs (0.u,0.s) -Chars 12656 - 12738 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.818 secs (0.812u,0.005s) -Chars 12743 - 12762 [all:~resolve_sizes.] 0.007 secs (0.007u,0.s) -Chars 12767 - 12811 [all:~smart_constructor~by_coin...] 0.335 secs (0.333u,0.002s) -Chars 12814 - 12815 [-] 0. secs (0.u,0.s) -Chars 12880 - 12955 [inv~Ht1t2;~inv~Ht3t4;~ddestruc...] 0.806 secs (0.8u,0.006s) -Chars 12960 - 12979 [all:~resolve_sizes.] 0.007 secs (0.007u,0.s) -Chars 12984 - 13028 [all:~smart_constructor~by_coin...] 0.327 secs (0.325u,0.001s) -Chars 13031 - 13040 [Unshelve.] 0. secs (0.u,0.s) -Chars 13043 - 13059 [all:~assumption.] 0. secs (0.u,0.s) -Chars 13061 - 13065 [Qed.] 0.857 secs (0.85u,0.007s) diff --git a/extra/Secure/StrongBisimProper.v.timing b/extra/Secure/StrongBisimProper.v.timing deleted file mode 100644 index 5aaf6ba7..00000000 --- a/extra/Secure/StrongBisimProper.v.timing +++ /dev/null @@ -1,11 +0,0 @@ -Chars 0 - 37 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 39 - 109 [From~ITree~Require~Import~ITre...] 0.161 secs (0.143u,0.017s) -Chars 111 - 141 [From~Paco~Require~Import~paco.] 0.005 secs (0.005u,0.s) -Chars 234 - 379 [#[global]~Instance~strong_bisi...] 0. secs (0.u,0.s) -Chars 380 - 386 [Proof.] 0. secs (0.u,0.s) -Chars 389 - 402 [repeat~intro.] 0. secs (0.u,0.s) -Chars 403 - 433 [apply~bisimulation_is_eq~in~H.] 0. secs (0.u,0.s) -Chars 434 - 465 [apply~bisimulation_is_eq~in~H0.] 0. secs (0.u,0.s) -Chars 468 - 474 [subst.] 0. secs (0.u,0.s) -Chars 475 - 480 [auto.] 0. secs (0.u,0.s) -Chars 481 - 485 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Axioms.v.timing b/theories/Axioms.v.timing deleted file mode 100644 index eaf6d683..00000000 --- a/theories/Axioms.v.timing +++ /dev/null @@ -1,20 +0,0 @@ -Chars 145 - 272 [From~Stdlib~Require~Import~Log...] 0.095 secs (0.084u,0.01s) -Chars 319 - 366 [From~Stdlib~Require~Export~Pro...] 0. secs (0.u,0.s) -Chars 368 - 391 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 490 - 599 [Ltac~~ddestruction~:=~~~repeat...] 0. secs (0.u,0.s) -Chars 666 - 719 [Definition~eq_rect_eq~:=~Eqdep...] 0. secs (0.u,0.s) -Chars 721 - 766 [Definition~classic~:=~Classica...] 0. secs (0.u,0.s) -Chars 768 - 812 [Definition~choice~:=~Classical...] 0. secs (0.u,0.s) -Chars 814 - 906 [Definition~functional_extensio...] 0. secs (0.u,0.s) -Chars 944 - 1161 [Definition~GuardedFunctionalCh...] 0. secs (0.u,0.s) -Chars 1162 - 1231 [Axiom~(guarded_choice~:~forall...] 0. secs (0.u,0.s) -Chars 1233 - 1303 [Inductive~mwitness~:~Type~:=~~...] 0. secs (0.u,0.s) -Chars 1305 - 1380 [Lemma~classicT_inhabited~:~inh...] 0. secs (0.u,0.s) -Chars 1381 - 1387 [Proof.] 0. secs (0.u,0.s) -Chars 1390 - 1521 [destruct~~(choice~~~~~(fun~(P~...] 0. secs (0.u,0.s) -Chars 1524 - 1525 [{] 0. secs (0.u,0.s) -Chars 1526 - 1634 [intros~P;~destruct~(classic~(i...] 0. secs (0.u,0.s) -Chars 1635 - 1636 [}] 0. secs (0.u,0.s) -Chars 1639 - 1651 [constructor.] 0. secs (0.u,0.s) -Chars 1652 - 1713 [intros~P;~specialize~(H~P);~de...] 0. secs (0.u,0.s) -Chars 1714 - 1718 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Basics.v.timing b/theories/Basics/Basics.v.timing deleted file mode 100644 index a001eac0..00000000 --- a/theories/Basics/Basics.v.timing +++ /dev/null @@ -1,51 +0,0 @@ -Chars 87 - 122 [From~Stdlib~Require~Ensembles.] 0.002 secs (0.u,0.001s) -Chars 124 - 172 [From~Stdlib~Require~Import~Rel...] 0.001 secs (0.u,0.s) -Chars 174 - 362 [From~ExtLib~Require~Import~Str...] 0.001 secs (0.001u,0.s) -Chars 364 - 405 [Import~FunctorNotation~MonadNo...] 0. secs (0.u,0.s) -Chars 406 - 429 [#[local]~Open~Scope~monad.] 0. secs (0.u,0.s) -Chars 827 - 935 [Notation~"E~~>~F"~:=~(forall~T...] 0. secs (0.u,0.s) -Chars 1099 - 1158 [Definition~idM~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1206 - 1233 [Notation~void~:=~Empty_set.] 0. secs (0.u,0.s) -Chars 1278 - 1292 [Module~Monads.] 0. secs (0.u,0.s) -Chars 1294 - 1337 [Definition~identity~(a~:~Type)...] 0. secs (0.u,0.s) -Chars 1339 - 1428 [Definition~stateT~(s~:~Type)~(...] 0. secs (0.u,0.s) -Chars 1429 - 1476 [Definition~state~(s~a~:~Type)~...] 0. secs (0.u,0.s) -Chars 1478 - 1554 [Definition~run_stateT~{s}~{m}~...] 0. secs (0.u,0.s) -Chars 1556 - 1659 [Definition~liftState~{s}~{a}~{...] 0. secs (0.u,0.s) -Chars 1661 - 1742 [Definition~readerT~(r~:~Type)~...] 0. secs (0.u,0.s) -Chars 1743 - 1784 [Definition~reader~(r~a~:~Type)...] 0. secs (0.u,0.s) -Chars 1786 - 1871 [Definition~writerT~(w~:~Type)~...] 0. secs (0.u,0.s) -Chars 1872 - 1898 [Definition~writer~:=~prod.] 0. secs (0.u,0.s) -Chars 1900 - 2072 [#[global]~Instance~Functor_sta...] 0. secs (0.u,0.s) -Chars 2074 - 2272 [#[global]~Instance~Monad_state...] 0.001 secs (0.u,0.s) -Chars 2274 - 2285 [End~Monads.] 0. secs (0.u,0.s) -Chars 2452 - 2572 [#[universes(polymorphic)]~Clas...] 0. secs (0.u,0.s) -Chars 2574 - 2628 [#[global]~Hint~Mode~MonadIter~...] 0. secs (0.u,0.s) -Chars 2777 - 3159 [#[global]~Instance~MonadIter_s...] 0.004 secs (0.003u,0.s) -Chars 3161 - 3532 [#[global,~universes(polymorphi...] 0.003 secs (0.002u,0.s) -Chars 3534 - 3710 [#[global]~Instance~MonadIter_r...] 0. secs (0.u,0.s) -Chars 3712 - 4047 [#[global]~Instance~MonadIter_o...] 0.002 secs (0.002u,0.s) -Chars 4049 - 4389 [#[global]~Instance~MonadIter_e...] 0.003 secs (0.002u,0.s) -Chars 4454 - 4685 [Inductive~iter_Prop~{R~I~:~Typ...] 0. secs (0.u,0.s) -Chars 4687 - 4778 [#[global,~universes(polymorphi...] 0. secs (0.u,0.s) -Chars 4911 - 4994 [Definition~equiv_pred~{A~:~Typ...] 0. secs (0.u,0.s) -Chars 4996 - 5142 [Definition~sum_pred~{A~B~:~Typ...] 0. secs (0.u,0.s) -Chars 5144 - 5260 [Definition~prod_pred~{A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 5262 - 5316 [Definition~TT~{A~:~Type}~:~A~-...] 0. secs (0.u,0.s) -Chars 5317 - 5364 [#[global]~Hint~Unfold~TT~sum_p...] 0. secs (0.u,0.s) -Chars 5366 - 5434 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) -Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) -Chars 5444 - 5456 [split;~auto.] 0. secs (0.u,0.s) -Chars 5457 - 5461 [Qed.] 0. secs (0.u,0.s) -Chars 5462 - 5530 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) -Chars 5531 - 5537 [Proof.] 0. secs (0.u,0.s) -Chars 5540 - 5589 [red;~intros~*~EQ;~split;~intro...] 0. secs (0.u,0.s) -Chars 5590 - 5594 [Qed.] 0. secs (0.u,0.s) -Chars 5595 - 5664 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) -Chars 5665 - 5671 [Proof.] 0. secs (0.u,0.s) -Chars 5674 - 5751 [red;~intros~*~EQ1~EQ2;~split;~...] 0. secs (0.u,0.s) -Chars 5752 - 5756 [Qed.] 0. secs (0.u,0.s) -Chars 5757 - 5827 [#[global]~Instance~equiv_pred_...] 0. secs (0.u,0.s) -Chars 5828 - 5834 [Proof.] 0.005 secs (0.004u,0.s) -Chars 5837 - 5862 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 5863 - 5867 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Basics/Category.v.timing b/theories/Basics/Category.v.timing deleted file mode 100644 index 9c041e38..00000000 --- a/theories/Basics/Category.v.timing +++ /dev/null @@ -1 +0,0 @@ -Chars 77 - 187 [From~ITree.Basics~Require~Expo...] 0.006 secs (0.005u,0.001s) diff --git a/theories/Basics/CategoryFacts.v.timing b/theories/Basics/CategoryFacts.v.timing deleted file mode 100644 index d5e3c770..00000000 --- a/theories/Basics/CategoryFacts.v.timing +++ /dev/null @@ -1,694 +0,0 @@ -Chars 58 - 107 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 109 - 174 [From~ITree.Basics~Require~Impo...] 0.001 secs (0.001u,0.s) -Chars 176 - 191 [Import~Carrier.] 0. secs (0.u,0.s) -Chars 192 - 212 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 213 - 234 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) -Chars 251 - 269 [Create~HintDb~cat.] 0. secs (0.u,0.s) -Chars 322 - 591 [Ltac~~unfold_coproduct~:=~~~un...] 0. secs (0.u,0.s) -Chars 642 - 985 [Ltac~~cat_auto_simpl~:=~~~matc...] 0. secs (0.u,0.s) -Chars 1011 - 1028 [Section~IsoFacts.] 0. secs (0.u,0.s) -Chars 1030 - 1065 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) -Chars 1066 - 1118 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) -Chars 1120 - 1150 [Context~{CatIdL_C~:~CatIdL~C}.] 0. secs (0.u,0.s) -Chars 1184 - 1243 [#[global]~Instance~SemiIso_Id~...] 0. secs (0.u,0.s) -Chars 1244 - 1250 [Proof.] 0. secs (0.u,0.s) -Chars 1251 - 1266 [apply~cat_id_l.] 0. secs (0.u,0.s) -Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) -Chars 1273 - 1340 [Context~{Equivalence_Eq2_C~:~f...] 0. secs (0.u,0.s) -Chars 1342 - 1357 [Section~IsoCat.] 0. secs (0.u,0.s) -Chars 1359 - 1393 [Context~{CatAssoc_C~:~CatAssoc...] 0. secs (0.u,0.s) -Chars 1394 - 1501 [Context~~{Proper_Cat_C~:~foral...] 0. secs (0.u,0.s) -Chars 1547 - 1741 [#[global]~Instance~SemiIso_Cat...] 0. secs (0.u,0.s) -Chars 1742 - 1748 [Proof.] 0. secs (0.u,0.s) -Chars 1751 - 1755 [red.] 0. secs (0.u,0.s) -Chars 1758 - 1836 [rewrite~cat_assoc,~<-~(cat_ass...] 0.005 secs (0.004u,0.001s) -Chars 1839 - 1851 [reflexivity.] 0. secs (0.u,0.s) -Chars 1852 - 1856 [Qed.] 0. secs (0.u,0.s) -Chars 1858 - 1869 [End~IsoCat.] 0. secs (0.u,0.s) -Chars 1871 - 1888 [Section~IsoBimap.] 0. secs (0.u,0.s) -Chars 1890 - 1916 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) -Chars 1917 - 1951 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 1952 - 1990 [Context~{BimapId_bif~:~BimapId...] 0. secs (0.u,0.s) -Chars 1991 - 2031 [Context~{BimapCat_bif~:~BimapC...] 0. secs (0.u,0.s) -Chars 2032 - 2147 [Context~~{Proper_Bimap_bif~:~f...] 0. secs (0.u,0.s) -Chars 2195 - 2401 [#[global]~Instance~SemiIso_Bim...] 0.001 secs (0.u,0.s) -Chars 2402 - 2408 [Proof.] 0. secs (0.u,0.s) -Chars 2411 - 2415 [red.] 0. secs (0.u,0.s) -Chars 2418 - 2478 [rewrite~bimap_cat,~(semi_iso~f...] 0.003 secs (0.002u,0.s) -Chars 2481 - 2493 [reflexivity.] 0. secs (0.u,0.s) -Chars 2494 - 2498 [Qed.] 0. secs (0.u,0.s) -Chars 2500 - 2513 [End~IsoBimap.] 0. secs (0.u,0.s) -Chars 2515 - 2528 [End~IsoFacts.] 0. secs (0.u,0.s) -Chars 2552 - 2574 [Section~CategoryFacts.] 0. secs (0.u,0.s) -Chars 2576 - 2611 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) -Chars 2613 - 2637 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) -Chars 2638 - 2695 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) -Chars 2697 - 2736 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 2738 - 2756 [Context~{i~:~obj}.] 0. secs (0.u,0.s) -Chars 2757 - 2791 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) -Chars 2792 - 2838 [Context~{InitialObject_i~:~Ini...] 0.006 secs (0.005u,0.s) -Chars 2879 - 2936 [Lemma~initial_unique~:~forall~...] 0. secs (0.u,0.s) -Chars 2937 - 2943 [Proof.] 0. secs (0.u,0.s) -Chars 2946 - 2953 [intros.] 0. secs (0.u,0.s) -Chars 2956 - 3003 [rewrite~(initial_object~f),~(i...] 0. secs (0.u,0.s) -Chars 3006 - 3018 [reflexivity.] 0. secs (0.u,0.s) -Chars 3019 - 3023 [Qed.] 0. secs (0.u,0.s) -Chars 3025 - 3043 [Context~{t~:~obj}.] 0. secs (0.u,0.s) -Chars 3044 - 3080 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) -Chars 3081 - 3129 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) -Chars 3171 - 3229 [Lemma~terminal_unique~:~forall...] 0. secs (0.u,0.s) -Chars 3230 - 3236 [Proof.] 0. secs (0.u,0.s) -Chars 3239 - 3246 [intros.] 0. secs (0.u,0.s) -Chars 3249 - 3298 [rewrite~(terminal_object~f),~(...] 0. secs (0.u,0.s) -Chars 3301 - 3313 [reflexivity.] 0. secs (0.u,0.s) -Chars 3314 - 3318 [Qed.] 0. secs (0.u,0.s) -Chars 3320 - 3338 [End~CategoryFacts.] 0. secs (0.u,0.s) -Chars 3340 - 3381 [#[global]~Hint~Resolve~initial...] 0. secs (0.u,0.s) -Chars 3405 - 3428 [Section~BifunctorFacts.] 0. secs (0.u,0.s) -Chars 3430 - 3465 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) -Chars 3467 - 3491 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) -Chars 3492 - 3549 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) -Chars 3551 - 3590 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 3592 - 3626 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) -Chars 3628 - 3654 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) -Chars 3655 - 3731 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 3733 - 3843 [Lemma~bimap_slide~{a}~{b}~{c}~...] 0. secs (0.u,0.s) -Chars 3844 - 3850 [Proof.] 0. secs (0.u,0.s) -Chars 3853 - 3891 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) -Chars 3894 - 3906 [reflexivity.] 0. secs (0.u,0.s) -Chars 3907 - 3911 [Qed.] 0. secs (0.u,0.s) -Chars 3913 - 4024 [Lemma~bimap_slide'~{a}~{b}~{c}...] 0. secs (0.u,0.s) -Chars 4025 - 4031 [Proof.] 0. secs (0.u,0.s) -Chars 4034 - 4072 [rewrite~bimap_cat,~cat_id_l,~c...] 0.002 secs (0.002u,0.s) -Chars 4075 - 4087 [reflexivity.] 0. secs (0.u,0.s) -Chars 4088 - 4092 [Qed.] 0. secs (0.u,0.s) -Chars 4094 - 4113 [End~BifunctorFacts.] 0. secs (0.u,0.s) -Chars 4137 - 4160 [Section~CoproductFacts.] 0. secs (0.u,0.s) -Chars 4162 - 4197 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) -Chars 4199 - 4223 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) -Chars 4224 - 4281 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) -Chars 4283 - 4322 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 4324 - 4358 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) -Chars 4360 - 4386 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) -Chars 4387 - 4473 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 4474 - 4514 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) -Chars 4516 - 4629 [Lemma~case_inl'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 4630 - 4636 [Proof.] 0. secs (0.u,0.s) -Chars 4639 - 4683 [rewrite~<-~cat_assoc,~case_inl...] 0.001 secs (0.001u,0.s) -Chars 4684 - 4688 [Qed.] 0. secs (0.u,0.s) -Chars 4690 - 4803 [Lemma~case_inr'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 4804 - 4810 [Proof.] 0. secs (0.u,0.s) -Chars 4813 - 4857 [rewrite~<-~cat_assoc,~case_inr...] 0.001 secs (0.001u,0.s) -Chars 4858 - 4862 [Qed.] 0. secs (0.u,0.s) -Chars 4898 - 5025 [Lemma~cat_case~{a}~{b}~{c}~{d}...] 0. secs (0.u,0.s) -Chars 5026 - 5032 [Proof.] 0. secs (0.u,0.s) -Chars 5035 - 5078 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) -Chars 5081 - 5082 [-] 0. secs (0.u,0.s) -Chars 5083 - 5113 [rewrite~case_inl;~reflexivity.] 0.011 secs (0.011u,0.s) -Chars 5116 - 5117 [-] 0. secs (0.u,0.s) -Chars 5118 - 5148 [rewrite~case_inr;~reflexivity.] 0. secs (0.u,0.s) -Chars 5149 - 5153 [Qed.] 0. secs (0.u,0.s) -Chars 5210 - 5271 [Corollary~case_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) -Chars 5272 - 5278 [Proof.] 0. secs (0.u,0.s) -Chars 5281 - 5333 [apply~case_universal;~rewrite~...] 0.001 secs (0.001u,0.s) -Chars 5334 - 5338 [Qed.] 0. secs (0.u,0.s) -Chars 5340 - 5426 [Lemma~case_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) -Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) -Chars 5436 - 5471 [eapply~case_universal;~reflexi...] 0. secs (0.u,0.s) -Chars 5472 - 5476 [Qed.] 0. secs (0.u,0.s) -Chars 5563 - 5690 [Lemma~coprod_split~{a}~{b}~{c}...] 0.001 secs (0.001u,0.s) -Chars 5691 - 5697 [Proof.] 0. secs (0.u,0.s) -Chars 5700 - 5707 [intros.] 0. secs (0.u,0.s) -Chars 5708 - 5730 [rewrite~(case_eta'~g).] 0. secs (0.u,0.s) -Chars 5733 - 5766 [apply~case_universal;~assumption.] 0. secs (0.u,0.s) -Chars 5767 - 5771 [Qed.] 0. secs (0.u,0.s) -Chars 5773 - 5890 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) -Chars 5892 - 6032 [Ltac~~cat_auto'~:=~~~repeat~in...] 0. secs (0.u,0.s) -Chars 6034 - 6122 [Lemma~swap_case~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) -Chars 6123 - 6129 [Proof.] 0. secs (0.u,0.s) -Chars 6132 - 6168 [intros;~unfold~swap,~Swap_Copr...] 0. secs (0.u,0.s) -Chars 6171 - 6208 [rewrite~cat_case,~inr_case,~in...] 0.002 secs (0.002u,0.s) -Chars 6211 - 6223 [reflexivity.] 0. secs (0.u,0.s) -Chars 6224 - 6228 [Qed.] 0. secs (0.u,0.s) -Chars 6230 - 6281 [Lemma~inr_swap~{a}~{b}~:~inr_~...] 0. secs (0.u,0.s) -Chars 6282 - 6288 [Proof.] 0. secs (0.u,0.s) -Chars 6289 - 6304 [apply~case_inr.] 0. secs (0.u,0.s) -Chars 6305 - 6309 [Qed.] 0. secs (0.u,0.s) -Chars 6311 - 6362 [Lemma~inl_swap~{a}~{b}~:~inl_~...] 0. secs (0.u,0.s) -Chars 6363 - 6369 [Proof.] 0. secs (0.u,0.s) -Chars 6370 - 6385 [apply~case_inl.] 0. secs (0.u,0.s) -Chars 6386 - 6390 [Qed.] 0. secs (0.u,0.s) -Chars 6392 - 6500 [Lemma~bimap_case_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) -Chars 6501 - 6507 [Proof.] 0. secs (0.u,0.s) -Chars 6508 - 6520 [reflexivity.] 0. secs (0.u,0.s) -Chars 6521 - 6525 [Qed.] 0. secs (0.u,0.s) -Chars 6527 - 6615 [Lemma~inr_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 6616 - 6622 [Proof.] 0. secs (0.u,0.s) -Chars 6623 - 6638 [apply~case_inr.] 0. secs (0.u,0.s) -Chars 6639 - 6643 [Qed.] 0. secs (0.u,0.s) -Chars 6645 - 6733 [Lemma~inl_bimap~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 6734 - 6740 [Proof.] 0. secs (0.u,0.s) -Chars 6741 - 6756 [apply~case_inl.] 0. secs (0.u,0.s) -Chars 6757 - 6761 [Qed.] 0. secs (0.u,0.s) -Chars 6763 - 6922 [Lemma~bimap_case~{a}~{a'}~{b}~...] 0.001 secs (0.001u,0.s) -Chars 6923 - 6929 [Proof.] 0. secs (0.u,0.s) -Chars 6930 - 6940 [cat_auto'.] 0.044 secs (0.039u,0.004s) -Chars 6941 - 6945 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6947 - 7024 [Lemma~inl_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 7025 - 7031 [Proof.] 0. secs (0.u,0.s) -Chars 7032 - 7042 [cat_auto'.] 0.011 secs (0.01u,0.s) -Chars 7043 - 7047 [Qed.] 0. secs (0.u,0.s) -Chars 7049 - 7121 [Lemma~inl_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) -Chars 7129 - 7139 [cat_auto'.] 0.006 secs (0.006u,0.s) -Chars 7140 - 7144 [Qed.] 0. secs (0.u,0.s) -Chars 7146 - 7223 [Lemma~inr_assoc_l~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 7224 - 7230 [Proof.] 0. secs (0.u,0.s) -Chars 7231 - 7241 [cat_auto'.] 0.013 secs (0.013u,0.s) -Chars 7242 - 7246 [Qed.] 0. secs (0.u,0.s) -Chars 7248 - 7320 [Lemma~inr_assoc_r~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 7321 - 7327 [Proof.] 0. secs (0.u,0.s) -Chars 7328 - 7338 [cat_auto'.] 0.009 secs (0.009u,0.s) -Chars 7339 - 7343 [Qed.] 0. secs (0.u,0.s) -Chars 7383 - 7503 [#[global]~Instance~Proper_Bima...] 0. secs (0.u,0.s) -Chars 7504 - 7510 [Proof.] 0. secs (0.u,0.s) -Chars 7513 - 7544 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) -Chars 7547 - 7577 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 7580 - 7612 [rewrite~eqac,~eqbd;~reflexivity.] 0.003 secs (0.002u,0.s) -Chars 7613 - 7617 [Qed.] 0. secs (0.u,0.s) -Chars 7619 - 7669 [#[global]~Instance~BimapId_Cop...] 0. secs (0.u,0.s) -Chars 7670 - 7676 [Proof.] 0. secs (0.u,0.s) -Chars 7679 - 7690 [intros~A~B.] 0. secs (0.u,0.s) -Chars 7693 - 7702 [symmetry.] 0. secs (0.u,0.s) -Chars 7703 - 7733 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 7736 - 7755 [rewrite~2!cat_id_l.] 0.001 secs (0.001u,0.s) -Chars 7758 - 7773 [apply~case_eta.] 0. secs (0.u,0.s) -Chars 7774 - 7778 [Qed.] 0. secs (0.u,0.s) -Chars 7780 - 7832 [#[global]~Instance~BimapCat_Co...] 0. secs (0.u,0.s) -Chars 7833 - 7839 [Proof.] 0. secs (0.u,0.s) -Chars 7840 - 7850 [cat_auto'.] 0.073 secs (0.073u,0.s) -Chars 7851 - 7855 [Qed.] 0.002 secs (0.002u,0.s) -Chars 7857 - 7911 [#[global]~Instance~Bifunctor_C...] 0. secs (0.u,0.s) -Chars 7912 - 7918 [Proof.] 0. secs (0.u,0.s) -Chars 7921 - 7952 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 7953 - 7957 [Qed.] 0. secs (0.u,0.s) -Chars 7996 - 8080 [#[global]~Instance~SwapInvolut...] 0. secs (0.u,0.s) -Chars 8081 - 8087 [Proof.] 0. secs (0.u,0.s) -Chars 8088 - 8098 [cat_auto'.] 0.023 secs (0.022u,0.s) -Chars 8099 - 8103 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8142 - 8232 [#[global]~Instance~AssocRMono_...] 0. secs (0.u,0.s) -Chars 8233 - 8239 [Proof.] 0. secs (0.u,0.s) -Chars 8240 - 8250 [cat_auto'.] 0.116 secs (0.116u,0.s) -Chars 8251 - 8255 [Qed.] 0.003 secs (0.003u,0.s) -Chars 8257 - 8347 [#[global]~Instance~AssocLMono_...] 0. secs (0.u,0.s) -Chars 8348 - 8354 [Proof.] 0. secs (0.u,0.s) -Chars 8355 - 8365 [cat_auto'.] 0.114 secs (0.113u,0.s) -Chars 8366 - 8370 [Qed.] 0.003 secs (0.003u,0.s) -Chars 8372 - 8390 [Context~(i~:~obj).] 0. secs (0.u,0.s) -Chars 8391 - 8425 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) -Chars 8426 - 8472 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) -Chars 8507 - 8589 [#[global]~Instance~UnitLMono_C...] 0. secs (0.u,0.s) -Chars 8590 - 8596 [Proof.] 0. secs (0.u,0.s) -Chars 8597 - 8607 [cat_auto'.] 0.018 secs (0.018u,0.s) -Chars 8608 - 8612 [Qed.] 0. secs (0.u,0.s) -Chars 8650 - 8732 [#[global]~Instance~UnitRMono_C...] 0. secs (0.u,0.s) -Chars 8733 - 8739 [Proof.] 0. secs (0.u,0.s) -Chars 8740 - 8750 [cat_auto'.] 0.018 secs (0.018u,0.s) -Chars 8751 - 8755 [Qed.] 0. secs (0.u,0.s) -Chars 8757 - 8838 [#[global]~Instance~UnitLEpi_Co...] 0. secs (0.u,0.s) -Chars 8839 - 8845 [Proof.] 0. secs (0.u,0.s) -Chars 8846 - 8856 [cat_auto'.] 0.003 secs (0.003u,0.s) -Chars 8857 - 8861 [Qed.] 0. secs (0.u,0.s) -Chars 8863 - 8944 [#[global]~Instance~UnitREpi_Co...] 0. secs (0.u,0.s) -Chars 8945 - 8951 [Proof.] 0. secs (0.u,0.s) -Chars 8952 - 8962 [cat_auto'.] 0.002 secs (0.002u,0.s) -Chars 8963 - 8967 [Qed.] 0. secs (0.u,0.s) -Chars 8969 - 9018 [Lemma~inr_unit_l~{a}~:~inr_~>>...] 0. secs (0.u,0.s) -Chars 9019 - 9025 [Proof.] 0. secs (0.u,0.s) -Chars 9026 - 9047 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) -Chars 9048 - 9052 [Qed.] 0. secs (0.u,0.s) -Chars 9054 - 9103 [Lemma~inl_unit_r~{a}~:~inl_~>>...] 0. secs (0.u,0.s) -Chars 9104 - 9110 [Proof.] 0. secs (0.u,0.s) -Chars 9111 - 9132 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) -Chars 9133 - 9137 [Qed.] 0. secs (0.u,0.s) -Chars 9139 - 9201 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) -Chars 9202 - 9208 [Proof.] 0. secs (0.u,0.s) -Chars 9209 - 9219 [cat_auto'.] 0.04 secs (0.04u,0.s) -Chars 9220 - 9224 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9226 - 9290 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) -Chars 9291 - 9297 [Proof.] 0. secs (0.u,0.s) -Chars 9298 - 9308 [cat_auto'.] 0.007 secs (0.007u,0.s) -Chars 9309 - 9313 [Qed.] 0. secs (0.u,0.s) -Chars 9376 - 9434 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) -Chars 9435 - 9441 [Proof.] 0. secs (0.u,0.s) -Chars 9442 - 9452 [cat_auto'.] 0.132 secs (0.132u,0.s) -Chars 9453 - 9457 [Qed.] 0.004 secs (0.004u,0.s) -Chars 9459 - 9519 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) -Chars 9520 - 9526 [Proof.] 0. secs (0.u,0.s) -Chars 9527 - 9537 [cat_auto'.] 0.795 secs (0.792u,0.002s) -Chars 9538 - 9542 [Qed.] 0.022 secs (0.022u,0.s) -Chars 9544 - 9598 [#[global]~Instance~Monoidal_Co...] 0. secs (0.u,0.s) -Chars 9599 - 9605 [Proof.] 0. secs (0.u,0.s) -Chars 9608 - 9660 [constructor;~idtac~+~construct...] 0.003 secs (0.003u,0.s) -Chars 9661 - 9665 [Qed.] 0. secs (0.u,0.s) -Chars 9667 - 9727 [#[global]~Instance~AssocLAssoc...] 0. secs (0.u,0.s) -Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9735 - 9745 [cat_auto'.] 0.782 secs (0.779u,0.003s) -Chars 9746 - 9750 [Qed.] 0.021 secs (0.021u,0.s) -Chars 9813 - 9869 [#[global]~Instance~SwapUnitL_C...] 0. secs (0.u,0.s) -Chars 9870 - 9876 [Proof.] 0. secs (0.u,0.s) -Chars 9877 - 9887 [cat_auto'.] 0.027 secs (0.027u,0.s) -Chars 9888 - 9892 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9894 - 9950 [#[global]~Instance~SwapAssocR_...] 0. secs (0.u,0.s) -Chars 9951 - 9957 [Proof.] 0. secs (0.u,0.s) -Chars 9958 - 9968 [cat_auto'.] 0.472 secs (0.471u,0.001s) -Chars 9969 - 9973 [Qed.] 0.013 secs (0.013u,0.s) -Chars 9975 - 10031 [#[global]~Instance~SwapAssocL_...] 0. secs (0.u,0.s) -Chars 10032 - 10038 [Proof.] 0. secs (0.u,0.s) -Chars 10039 - 10049 [cat_auto'.] 0.466 secs (0.464u,0.001s) -Chars 10050 - 10054 [Qed.] 0.013 secs (0.013u,0.s) -Chars 10056 - 10116 [#[global]~Instance~SymMonoidal...] 0. secs (0.u,0.s) -Chars 10117 - 10123 [Proof.] 0. secs (0.u,0.s) -Chars 10126 - 10157 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 10158 - 10162 [Qed.] 0. secs (0.u,0.s) -Chars 10164 - 10269 [Lemma~swap_bimap~{a}~{b}~{c}~{...] 0.001 secs (0.001u,0.s) -Chars 10270 - 10276 [Proof.] 0. secs (0.u,0.s) -Chars 10277 - 10287 [cat_auto'.] 0.078 secs (0.077u,0.s) -Chars 10288 - 10292 [Qed.] 0.002 secs (0.002u,0.s) -Chars 10319 - 10423 [Lemma~swap_bimap'~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 10424 - 10430 [Proof.] 0. secs (0.u,0.s) -Chars 10431 - 10441 [cat_auto'.] 0.068 secs (0.068u,0.s) -Chars 10442 - 10446 [Qed.] 0.002 secs (0.002u,0.s) -Chars 10448 - 10467 [End~CoproductFacts.] 0.001 secs (0.001u,0.s) -Chars 10490 - 10511 [Section~ProductFacts.] 0. secs (0.u,0.s) -Chars 10513 - 10548 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) -Chars 10550 - 10574 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) -Chars 10575 - 10632 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) -Chars 10634 - 10673 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 10675 - 10709 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) -Chars 10711 - 10737 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) -Chars 10738 - 10824 [Context~{Prod_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) -Chars 10825 - 10861 [Context~{Product_C~:~Product~C...] 0. secs (0.u,0.s) -Chars 10863 - 10974 [Lemma~pair_fst'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 10975 - 10981 [Proof.] 0. secs (0.u,0.s) -Chars 10984 - 11012 [rewrite~cat_assoc,~pair_fst.] 0.001 secs (0.001u,0.s) -Chars 11013 - 11025 [reflexivity.] 0. secs (0.u,0.s) -Chars 11026 - 11030 [Qed.] 0. secs (0.u,0.s) -Chars 11032 - 11143 [Lemma~pair_snd'~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 11144 - 11150 [Proof.] 0. secs (0.u,0.s) -Chars 11153 - 11181 [rewrite~cat_assoc,~pair_snd.] 0.001 secs (0.001u,0.s) -Chars 11182 - 11194 [reflexivity.] 0. secs (0.u,0.s) -Chars 11195 - 11199 [Qed.] 0. secs (0.u,0.s) -Chars 11235 - 11359 [Lemma~pair_cat~{a}~{b}~{c}~{d}...] 0.001 secs (0.001u,0.s) -Chars 11360 - 11366 [Proof.] 0. secs (0.u,0.s) -Chars 11369 - 11390 [apply~pair_universal.] 0. secs (0.u,0.s) -Chars 11393 - 11394 [-] 0. secs (0.u,0.s) -Chars 11395 - 11426 [rewrite~pair_fst';~reflexivity.] 0. secs (0.u,0.s) -Chars 11429 - 11430 [-] 0. secs (0.u,0.s) -Chars 11431 - 11462 [rewrite~pair_snd';~reflexivity.] 0. secs (0.u,0.s) -Chars 11463 - 11467 [Qed.] 0. secs (0.u,0.s) -Chars 11513 - 11574 [Corollary~pair_eta~{a}~{b}~:~i...] 0. secs (0.u,0.s) -Chars 11575 - 11581 [Proof.] 0. secs (0.u,0.s) -Chars 11584 - 11636 [apply~pair_universal;~rewrite~...] 0.001 secs (0.001u,0.s) -Chars 11637 - 11641 [Qed.] 0. secs (0.u,0.s) -Chars 11643 - 11729 [Lemma~pair_eta'~{a}~{b}~{c}~(f...] 0. secs (0.u,0.s) -Chars 11730 - 11736 [Proof.] 0. secs (0.u,0.s) -Chars 11739 - 11774 [eapply~pair_universal;~reflexi...] 0. secs (0.u,0.s) -Chars 11775 - 11779 [Qed.] 0. secs (0.u,0.s) -Chars 11866 - 11991 [Lemma~pair_split~{a}~{b}~{c}~(...] 0.001 secs (0.001u,0.s) -Chars 11992 - 11998 [Proof.] 0. secs (0.u,0.s) -Chars 12001 - 12008 [intros.] 0. secs (0.u,0.s) -Chars 12009 - 12031 [rewrite~(pair_eta'~g).] 0. secs (0.u,0.s) -Chars 12034 - 12067 [apply~pair_universal;~assumption.] 0. secs (0.u,0.s) -Chars 12068 - 12072 [Qed.] 0. secs (0.u,0.s) -Chars 12074 - 12106 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) -Chars 12107 - 12138 [Existing~Instance~Swap_Product.] 0. secs (0.u,0.s) -Chars 12139 - 12172 [Existing~Instance~AssocR_Product.] 0. secs (0.u,0.s) -Chars 12173 - 12206 [Existing~Instance~AssocL_Product.] 0. secs (0.u,0.s) -Chars 12207 - 12239 [Existing~Instance~UnitL_Product.] 0. secs (0.u,0.s) -Chars 12240 - 12273 [Existing~Instance~UnitL'_Product.] 0. secs (0.u,0.s) -Chars 12274 - 12306 [Existing~Instance~UnitR_Product.] 0. secs (0.u,0.s) -Chars 12307 - 12340 [Existing~Instance~UnitR'_Product.] 0. secs (0.u,0.s) -Chars 12342 - 12593 [Ltac~~unfold_product~:=~~~unfo...] 0. secs (0.u,0.s) -Chars 12642 - 12991 [Ltac~~cat_auto_simpl_prod~:=~~...] 0. secs (0.u,0.s) -Chars 12993 - 13116 [Ltac~~cat_auto_prod~:=~~~unfol...] 0. secs (0.u,0.s) -Chars 13118 - 13268 [Ltac~~cat_auto_prod'~:=~~~repe...] 0. secs (0.u,0.s) -Chars 13271 - 13359 [Lemma~swap_pair~(a~b~c~:~obj)~...] 0. secs (0.u,0.s) -Chars 13360 - 13366 [Proof.] 0. secs (0.u,0.s) -Chars 13369 - 13403 [intros;~unfold~swap,~Swap_Prod...] 0. secs (0.u,0.s) -Chars 13406 - 13443 [rewrite~pair_cat,~pair_fst,~pa...] 0.002 secs (0.002u,0.s) -Chars 13448 - 13460 [reflexivity.] 0. secs (0.u,0.s) -Chars 13461 - 13465 [Qed.] 0. secs (0.u,0.s) -Chars 13467 - 13518 [Lemma~swap_snd~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) -Chars 13519 - 13525 [Proof.] 0. secs (0.u,0.s) -Chars 13526 - 13541 [apply~pair_snd.] 0. secs (0.u,0.s) -Chars 13542 - 13546 [Qed.] 0. secs (0.u,0.s) -Chars 13548 - 13599 [Lemma~swap_fst~{a}~{b}~:~swap_...] 0. secs (0.u,0.s) -Chars 13600 - 13606 [Proof.] 0. secs (0.u,0.s) -Chars 13607 - 13622 [apply~pair_fst.] 0. secs (0.u,0.s) -Chars 13623 - 13627 [Qed.] 0. secs (0.u,0.s) -Chars 13629 - 13737 [Lemma~bimap_pair_unfold~{a}~{b...] 0.001 secs (0.001u,0.s) -Chars 13738 - 13744 [Proof.] 0. secs (0.u,0.s) -Chars 13745 - 13757 [reflexivity.] 0. secs (0.u,0.s) -Chars 13758 - 13762 [Qed.] 0. secs (0.u,0.s) -Chars 13764 - 13852 [Lemma~bimap_fst~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 13853 - 13859 [Proof.] 0. secs (0.u,0.s) -Chars 13860 - 13875 [apply~pair_fst.] 0. secs (0.u,0.s) -Chars 13876 - 13880 [Qed.] 0. secs (0.u,0.s) -Chars 13882 - 13970 [Lemma~bimap_snd~{a}~{b}~{c}~{d...] 0. secs (0.u,0.s) -Chars 13971 - 13977 [Proof.] 0. secs (0.u,0.s) -Chars 13978 - 13993 [apply~pair_snd.] 0. secs (0.u,0.s) -Chars 13994 - 13998 [Qed.] 0. secs (0.u,0.s) -Chars 14000 - 14157 [Lemma~pair_bimap~{a}~{b}~{b'}~...] 0.001 secs (0.001u,0.s) -Chars 14158 - 14164 [Proof.] 0. secs (0.u,0.s) -Chars 14165 - 14180 [cat_auto_prod'.] 0.042 secs (0.042u,0.s) -Chars 14181 - 14185 [Qed.] 0.001 secs (0.001u,0.s) -Chars 14187 - 14259 [Lemma~assoc_r_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 14260 - 14266 [Proof.] 0. secs (0.u,0.s) -Chars 14267 - 14282 [cat_auto_prod'.] 0.006 secs (0.006u,0.s) -Chars 14283 - 14287 [Qed.] 0. secs (0.u,0.s) -Chars 14289 - 14361 [Lemma~assoc_l_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 14362 - 14368 [Proof.] 0. secs (0.u,0.s) -Chars 14369 - 14384 [cat_auto_prod'.] 0.008 secs (0.008u,0.s) -Chars 14385 - 14389 [Qed.] 0. secs (0.u,0.s) -Chars 14391 - 14468 [Lemma~assoc_l_fst~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 14469 - 14475 [Proof.] 0. secs (0.u,0.s) -Chars 14476 - 14491 [cat_auto_prod'.] 0.011 secs (0.011u,0.s) -Chars 14492 - 14496 [Qed.] 0. secs (0.u,0.s) -Chars 14499 - 14576 [Lemma~assoc_r_snd~{a}~{b}~{c}~...] 0.001 secs (0.001u,0.s) -Chars 14577 - 14583 [Proof.] 0. secs (0.u,0.s) -Chars 14584 - 14599 [cat_auto_prod'.] 0.015 secs (0.015u,0.s) -Chars 14600 - 14604 [Qed.] 0. secs (0.u,0.s) -Chars 14795 - 14906 [Instance~Proper_Bimap_Product~...] 0. secs (0.u,0.s) -Chars 14907 - 14913 [Proof.] 0. secs (0.u,0.s) -Chars 14916 - 14947 [intros~ac~ac'~eqac~bd~bd'~eqbd.] 0. secs (0.u,0.s) -Chars 14950 - 14978 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) -Chars 14981 - 15013 [rewrite~eqac,~eqbd;~reflexivity.] 0.003 secs (0.003u,0.s) -Chars 15014 - 15018 [Qed.] 0. secs (0.u,0.s) -Chars 15020 - 15061 [Instance~BimapId_Product~:~(Bi...] 0. secs (0.u,0.s) -Chars 15062 - 15068 [Proof.] 0. secs (0.u,0.s) -Chars 15071 - 15082 [intros~A~B.] 0. secs (0.u,0.s) -Chars 15085 - 15094 [symmetry.] 0. secs (0.u,0.s) -Chars 15095 - 15123 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) -Chars 15126 - 15145 [rewrite~2!cat_id_r.] 0.001 secs (0.001u,0.s) -Chars 15148 - 15163 [apply~pair_eta.] 0. secs (0.u,0.s) -Chars 15164 - 15168 [Qed.] 0. secs (0.u,0.s) -Chars 15170 - 15213 [Instance~BimapCat_Product~:~(B...] 0. secs (0.u,0.s) -Chars 15214 - 15220 [Proof.] 0. secs (0.u,0.s) -Chars 15221 - 15236 [cat_auto_prod'.] 0.074 secs (0.074u,0.s) -Chars 15237 - 15241 [Qed.] 0.002 secs (0.002u,0.s) -Chars 15243 - 15288 [Instance~Bifunctor_Product~:~(...] 0. secs (0.u,0.s) -Chars 15289 - 15295 [Proof.] 0. secs (0.u,0.s) -Chars 15298 - 15329 [constructor;~typeclasses~eauto.] 0.001 secs (0.001u,0.s) -Chars 15330 - 15334 [Qed.] 0. secs (0.u,0.s) -Chars 15373 - 15448 [Instance~SwapInvolutive_Produc...] 0. secs (0.u,0.s) -Chars 15449 - 15455 [Proof.] 0. secs (0.u,0.s) -Chars 15456 - 15471 [cat_auto_prod'.] 0.03 secs (0.03u,0.s) -Chars 15472 - 15476 [Qed.] 0.001 secs (0.001u,0.s) -Chars 15515 - 15596 [Instance~AssocRMono_Product~~{...] 0. secs (0.u,0.s) -Chars 15597 - 15603 [Proof.] 0. secs (0.u,0.s) -Chars 15604 - 15619 [cat_auto_prod'.] 0.14 secs (0.139u,0.s) -Chars 15620 - 15624 [Qed.] 0.003 secs (0.003u,0.s) -Chars 15626 - 15707 [Instance~AssocLMono_Product~~{...] 0. secs (0.u,0.s) -Chars 15708 - 15714 [Proof.] 0. secs (0.u,0.s) -Chars 15715 - 15730 [cat_auto_prod'.] 0.137 secs (0.137u,0.s) -Chars 15731 - 15735 [Qed.] 0.003 secs (0.003u,0.s) -Chars 15737 - 15755 [Context~(t~:~obj).] 0. secs (0.u,0.s) -Chars 15756 - 15792 [Context~{Terminal_t~:~Terminal...] 0. secs (0.u,0.s) -Chars 15793 - 15841 [Context~{TerminalObject_t~:~Te...] 0. secs (0.u,0.s) -Chars 15874 - 15947 [Instance~UnitLMono_Product~~{a...] 0. secs (0.u,0.s) -Chars 15948 - 15954 [Proof.] 0. secs (0.u,0.s) -Chars 15955 - 15970 [cat_auto_prod'.] 0.027 secs (0.026u,0.s) -Chars 15971 - 15995 [rewrite~terminal_unique.] 0. secs (0.u,0.s) -Chars 15996 - 16008 [reflexivity.] 0. secs (0.u,0.s) -Chars 16009 - 16013 [Qed.] 0. secs (0.u,0.s) -Chars 16051 - 16131 [#[global]~Instance~UnitRMono_P...] 0. secs (0.u,0.s) -Chars 16132 - 16138 [Proof.] 0. secs (0.u,0.s) -Chars 16139 - 16154 [cat_auto_prod'.] 0.027 secs (0.027u,0.s) -Chars 16155 - 16179 [rewrite~terminal_unique.] 0. secs (0.u,0.s) -Chars 16180 - 16192 [reflexivity.] 0. secs (0.u,0.s) -Chars 16193 - 16197 [Qed.] 0. secs (0.u,0.s) -Chars 16199 - 16278 [#[global]~Instance~UnitLEpi_Pr...] 0. secs (0.u,0.s) -Chars 16279 - 16285 [Proof.] 0. secs (0.u,0.s) -Chars 16286 - 16301 [cat_auto_prod'.] 0.003 secs (0.003u,0.s) -Chars 16302 - 16306 [Qed.] 0. secs (0.u,0.s) -Chars 16308 - 16387 [#[global]~Instance~UnitREpi_Pr...] 0. secs (0.u,0.s) -Chars 16388 - 16394 [Proof.] 0. secs (0.u,0.s) -Chars 16395 - 16410 [cat_auto_prod'.] 0.002 secs (0.002u,0.s) -Chars 16411 - 16415 [Qed.] 0. secs (0.u,0.s) -Chars 16417 - 16468 [Lemma~unit_l'_snd~{a}~:~unit_l...] 0. secs (0.u,0.s) -Chars 16469 - 16475 [Proof.] 0. secs (0.u,0.s) -Chars 16476 - 16497 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) -Chars 16498 - 16502 [Qed.] 0. secs (0.u,0.s) -Chars 16504 - 16555 [Lemma~unit_r'_fst~{a}~:~unit_r...] 0. secs (0.u,0.s) -Chars 16556 - 16562 [Proof.] 0. secs (0.u,0.s) -Chars 16563 - 16584 [apply~(semi_iso~_~_).] 0. secs (0.u,0.s) -Chars 16585 - 16589 [Qed.] 0. secs (0.u,0.s) -Chars 16591 - 16644 [Instance~UnitLNatural_Product~...] 0. secs (0.u,0.s) -Chars 16645 - 16651 [Proof.] 0. secs (0.u,0.s) -Chars 16652 - 16667 [cat_auto_prod'.] 0.007 secs (0.007u,0.s) -Chars 16668 - 16672 [Qed.] 0. secs (0.u,0.s) -Chars 16674 - 16729 [Instance~UnitL'Natural_Product...] 0. secs (0.u,0.s) -Chars 16730 - 16736 [Proof.] 0. secs (0.u,0.s) -Chars 16737 - 16752 [cat_auto_prod'.] 0.052 secs (0.051u,0.s) -Chars 16753 - 16777 [rewrite~terminal_unique.] 0. secs (0.u,0.s) -Chars 16778 - 16790 [reflexivity.] 0. secs (0.u,0.s) -Chars 16791 - 16795 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16856 - 16905 [Instance~AssocRUnit_Product~:~...] 0. secs (0.u,0.s) -Chars 16906 - 16912 [Proof.] 0. secs (0.u,0.s) -Chars 16913 - 16928 [cat_auto_prod'.] 0.088 secs (0.087u,0.s) -Chars 16929 - 16933 [Qed.] 0.002 secs (0.002u,0.s) -Chars 16935 - 16986 [Instance~AssocRAssocR_Product~...] 0. secs (0.u,0.s) -Chars 16987 - 16993 [Proof.] 0. secs (0.u,0.s) -Chars 16994 - 17009 [cat_auto_prod'.] 0.883 secs (0.88u,0.002s) -Chars 17010 - 17014 [Qed.] 0.023 secs (0.023u,0.s) -Chars 17016 - 17061 [Instance~Monoidal_Product~:~(M...] 0. secs (0.u,0.s) -Chars 17062 - 17068 [Proof.] 0. secs (0.u,0.s) -Chars 17071 - 17123 [constructor;~idtac~+~construct...] 0.004 secs (0.004u,0.s) -Chars 17124 - 17128 [Qed.] 0. secs (0.u,0.s) -Chars 17130 - 17181 [Instance~AssocLAssocL_Product~...] 0. secs (0.u,0.s) -Chars 17182 - 17188 [Proof.] 0. secs (0.u,0.s) -Chars 17189 - 17204 [cat_auto_prod'.] 0.896 secs (0.894u,0.002s) -Chars 17205 - 17209 [Qed.] 0.021 secs (0.021u,0.s) -Chars 17272 - 17319 [Instance~SwapUnitL_Product~:~(...] 0. secs (0.u,0.s) -Chars 17320 - 17326 [Proof.] 0. secs (0.u,0.s) -Chars 17327 - 17342 [cat_auto_prod'.] 0.005 secs (0.005u,0.s) -Chars 17343 - 17347 [Qed.] 0. secs (0.u,0.s) -Chars 17349 - 17396 [Instance~SwapAssocR_Product~:~...] 0. secs (0.u,0.s) -Chars 17397 - 17403 [Proof.] 0. secs (0.u,0.s) -Chars 17404 - 17419 [cat_auto_prod'.] 0.528 secs (0.526u,0.001s) -Chars 17420 - 17424 [Qed.] 0.014 secs (0.014u,0.s) -Chars 17426 - 17473 [Instance~SwapAssocL_Product~:~...] 0. secs (0.u,0.s) -Chars 17474 - 17480 [Proof.] 0. secs (0.u,0.s) -Chars 17481 - 17496 [cat_auto_prod'.] 0.53 secs (0.528u,0.002s) -Chars 17497 - 17501 [Qed.] 0.015 secs (0.015u,0.s) -Chars 17503 - 17554 [Instance~SymMonoidal_Product~:...] 0. secs (0.u,0.s) -Chars 17555 - 17561 [Proof.] 0. secs (0.u,0.s) -Chars 17564 - 17595 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 17596 - 17600 [Qed.] 0. secs (0.u,0.s) -Chars 17602 - 17712 [Lemma~swap_bimap_prod~{a}~{b}~...] 0.001 secs (0.001u,0.s) -Chars 17713 - 17719 [Proof.] 0. secs (0.u,0.s) -Chars 17720 - 17735 [cat_auto_prod'.] 0.093 secs (0.093u,0.s) -Chars 17736 - 17740 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17767 - 17876 [Lemma~swap_bimap_prod'~{a}~{b}...] 0.001 secs (0.001u,0.s) -Chars 17877 - 17883 [Proof.] 0. secs (0.u,0.s) -Chars 17884 - 17899 [cat_auto_prod'.] 0.079 secs (0.078u,0.s) -Chars 17900 - 17904 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17906 - 17923 [End~ProductFacts.] 0.001 secs (0.001u,0.s) -Chars 17926 - 18039 [Ltac~~cat_auto_step~:=~~~repea...] 0. secs (0.u,0.s) -Chars 18041 - 18152 [Ltac~~cat_auto~:=~~~unfold_cop...] 0. secs (0.u,0.s) -Chars 18194 - 18223 [Section~TracedIterativeFacts.] 0. secs (0.u,0.s) -Chars 18225 - 18260 [Context~{obj~:~Type}~{C~:~Hom~...] 0. secs (0.u,0.s) -Chars 18262 - 18286 [Context~{Eq2_C~:~Eq2~C}.] 0. secs (0.u,0.s) -Chars 18287 - 18344 [Context~{E_Eq2_C~:~forall~a~b,...] 0. secs (0.u,0.s) -Chars 18346 - 18385 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 18386 - 18420 [Context~{Category_C~:~Category...] 0. secs (0.u,0.s) -Chars 18422 - 18448 [Context~{bif~:~binop~obj}.] 0. secs (0.u,0.s) -Chars 18449 - 18535 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 18536 - 18576 [Context~{Coproduct_C~:~Coprodu...] 0. secs (0.u,0.s) -Chars 18578 - 18610 [Context~{Iter_bif~:~Iter~C~bif}.] 0. secs (0.u,0.s) -Chars 18611 - 18651 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) -Chars 18653 - 18753 [#[global]~Instance~Proper_loop...] 0. secs (0.u,0.s) -Chars 18754 - 18760 [Proof.] 0. secs (0.u,0.s) -Chars 18763 - 18776 [repeat~intro.] 0. secs (0.u,0.s) -Chars 18779 - 18791 [unfold~loop.] 0. secs (0.u,0.s) -Chars 18794 - 18804 [rewrite~H.] 0.003 secs (0.003u,0.s) -Chars 18807 - 18819 [reflexivity.] 0. secs (0.u,0.s) -Chars 18820 - 18824 [Qed.] 0. secs (0.u,0.s) -Chars 19094 - 19222 [Lemma~loop_natural_left~{a}~{a...] 0.001 secs (0.001u,0.s) -Chars 19223 - 19229 [Proof.] 0. secs (0.u,0.s) -Chars 19232 - 19244 [unfold~loop.] 0. secs (0.u,0.s) -Chars 19247 - 19382 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) -Chars 19385 - 19386 [-] 0. secs (0.u,0.s) -Chars 19387 - 19410 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 19415 - 19424 [cat_auto.] 0.124 secs (0.123u,0.s) -Chars 19425 - 19444 [do~2~cat_auto_step.] 0.002 secs (0.002u,0.s) -Chars 19445 - 19454 [cat_auto.] 0.073 secs (0.073u,0.s) -Chars 19457 - 19458 [-] 0. secs (0.u,0.s) -Chars 19459 - 19468 [cat_auto.] 0.079 secs (0.076u,0.s) -Chars 19469 - 19473 [Qed.] 0.011 secs (0.011u,0.s) -Chars 19713 - 19842 [Lemma~loop_natural_right~{a}~{...] 0.001 secs (0.001u,0.s) -Chars 19843 - 19849 [Proof.] 0. secs (0.u,0.s) -Chars 19852 - 19864 [unfold~loop.] 0. secs (0.u,0.s) -Chars 19867 - 19885 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 19886 - 19900 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 19903 - 19924 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) -Chars 19925 - 19939 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 19942 - 19995 [rewrite~!cat_assoc,~!bimap_cat...] 0.02 secs (0.02u,0.s) -Chars 19998 - 20010 [reflexivity.] 0. secs (0.u,0.s) -Chars 20011 - 20015 [Qed.] 0.002 secs (0.002u,0.s) -Chars 20017 - 20159 [Lemma~loop_dinatural~{a}~{b}~{...] 0.001 secs (0.001u,0.s) -Chars 20160 - 20166 [Proof.] 0. secs (0.u,0.s) -Chars 20169 - 20181 [unfold~loop.] 0. secs (0.u,0.s) -Chars 20184 - 20319 [transitivity~~(inr_~>>>~~~iter...] 0.001 secs (0.001u,0.s) -Chars 20322 - 20323 [-] 0. secs (0.u,0.s) -Chars 20324 - 20347 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 20352 - 20361 [cat_auto.] 0.126 secs (0.125u,0.s) -Chars 20362 - 20381 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20382 - 20391 [cat_auto.] 0.114 secs (0.113u,0.s) -Chars 20394 - 20395 [-] 0. secs (0.u,0.s) -Chars 20396 - 20405 [cat_auto.] 0.068 secs (0.067u,0.s) -Chars 20406 - 20410 [Qed.] 0.011 secs (0.011u,0.s) -Chars 20412 - 20430 [Context~{i~:~obj}.] 0. secs (0.u,0.s) -Chars 20431 - 20465 [Context~{Initial_i~:~Initial~C...] 0. secs (0.u,0.s) -Chars 20466 - 20512 [Context~{InitialObject_i~:~Ini...] 0. secs (0.u,0.s) -Chars 20514 - 20613 [Lemma~loop_vanishing_1~{a}~{b}...] 0.001 secs (0.001u,0.s) -Chars 20614 - 20620 [Proof.] 0. secs (0.u,0.s) -Chars 20623 - 20635 [unfold~loop.] 0. secs (0.u,0.s) -Chars 20638 - 20658 [rewrite~iter_unfold.] 0.001 secs (0.001u,0.s) -Chars 20659 - 20668 [cat_auto.] 0.049 secs (0.049u,0.s) -Chars 20669 - 20683 [cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 20684 - 20693 [cat_auto.] 0.06 secs (0.06u,0.s) -Chars 20694 - 20698 [Qed.] 0.003 secs (0.003u,0.s) -Chars 21002 - 21136 [Lemma~loop_vanishing_2~{a}~{b}...] 0.002 secs (0.002u,0.s) -Chars 21137 - 21143 [Proof.] 0. secs (0.u,0.s) -Chars 21146 - 21158 [unfold~loop.] 0. secs (0.u,0.s) -Chars 21161 - 21291 [transitivity~~(inr_~>>>~inr_~>...] 0.001 secs (0.001u,0.s) -Chars 21294 - 21295 [-] 0. secs (0.u,0.s) -Chars 21296 - 21441 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) -Chars 21446 - 21447 [+] 0. secs (0.u,0.s) -Chars 21448 - 21457 [cat_auto.] 0.123 secs (0.123u,0.s) -Chars 21458 - 21477 [do~2~cat_auto_step.] 0.001 secs (0.001u,0.s) -Chars 21478 - 21499 [rewrite~iter_natural.] 0.002 secs (0.001u,0.s) -Chars 21506 - 21520 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 21521 - 21539 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 21540 - 21554 [cat_auto_step.] 0. secs (0.u,0.s) -Chars 21561 - 21570 [cat_auto.] 0.123 secs (0.123u,0.s) -Chars 21575 - 21576 [+] 0. secs (0.u,0.s) -Chars 21577 - 21600 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 21607 - 21635 [rewrite~cat_assoc,~case_inl.] 0.006 secs (0.006u,0.s) -Chars 21642 - 21663 [rewrite~iter_natural.] 0.004 secs (0.004u,0.s) -Chars 21670 - 21679 [cat_auto.] 0.17 secs (0.169u,0.s) -Chars 21680 - 21699 [do~3~cat_auto_step.] 0.003 secs (0.003u,0.s) -Chars 21706 - 21715 [cat_auto.] 0.327 secs (0.326u,0.001s) -Chars 21719 - 21720 [-] 0. secs (0.u,0.s) -Chars 21721 - 21745 [rewrite~iter_codiagonal.] 0.002 secs (0.002u,0.s) -Chars 21750 - 21806 [rewrite~(cat_assoc~_~(bimap~_~...] 0.013 secs (0.013u,0.s) -Chars 21811 - 21954 [transitivity~~(inr_~>>>~~~iter...] 0.002 secs (0.002u,0.s) -Chars 21959 - 21960 [+] 0. secs (0.u,0.s) -Chars 21961 - 21984 [rewrite~iter_dinatural.] 0.002 secs (0.002u,0.s) -Chars 21991 - 22000 [cat_auto.] 0.256 secs (0.255u,0.001s) -Chars 22001 - 22020 [do~2~cat_auto_step.] 0.002 secs (0.002u,0.s) -Chars 22021 - 22030 [cat_auto.] 0.372 secs (0.37u,0.001s) -Chars 22035 - 22036 [+] 0. secs (0.u,0.s) -Chars 22037 - 22046 [cat_auto.] 0.138 secs (0.137u,0.s) -Chars 22047 - 22051 [Qed.] 0.05 secs (0.05u,0.s) -Chars 22053 - 22210 [Lemma~loop_superposing~{a}~{b}...] 0.002 secs (0.002u,0.s) -Chars 22211 - 22217 [Proof.] 0. secs (0.u,0.s) -Chars 22220 - 22232 [unfold~loop.] 0. secs (0.u,0.s) -Chars 22235 - 22244 [cat_auto.] 0.242 secs (0.241u,0.s) -Chars 22247 - 22248 [-] 0. secs (0.u,0.s) -Chars 22249 - 22438 [transitivity~~(inr_~>>>~~~iter...] 0.003 secs (0.003u,0.s) -Chars 22444 - 22445 [+] 0. secs (0.u,0.s) -Chars 22446 - 22478 [rewrite~cat_assoc,~iter_natural.] 0.006 secs (0.006u,0.s) -Chars 22485 - 22516 [do~2~(cat_auto_step;~cat_auto).] 0.747 secs (0.744u,0.002s) -Chars 22521 - 22522 [+] 0. secs (0.u,0.s) -Chars 22523 - 22546 [rewrite~iter_dinatural.] 0.004 secs (0.004u,0.s) -Chars 22553 - 22584 [do~3~(cat_auto;~cat_auto_step).] 1.715 secs (1.711u,0.004s) -Chars 22588 - 22589 [-] 0. secs (0.u,0.s) -Chars 22590 - 22610 [rewrite~iter_unfold.] 0.005 secs (0.005u,0.s) -Chars 22611 - 22620 [cat_auto.] 0.361 secs (0.36u,0.001s) -Chars 22621 - 22625 [Qed.] 0.089 secs (0.088u,0.s) -Chars 22627 - 22672 [Lemma~loop_yanking~{a}~:~loop~...] 0. secs (0.u,0.s) -Chars 22673 - 22679 [Proof.] 0. secs (0.u,0.s) -Chars 22682 - 22694 [unfold~loop.] 0. secs (0.u,0.s) -Chars 22695 - 22717 [rewrite~2!iter_unfold.] 0.005 secs (0.005u,0.s) -Chars 22718 - 22727 [cat_auto.] 0.117 secs (0.116u,0.s) -Chars 22728 - 22732 [Qed.] 0.005 secs (0.005u,0.s) -Chars 22734 - 22927 [Lemma~loop_dinatural'~{a}~{b}~...] 0.002 secs (0.002u,0.s) -Chars 22928 - 22934 [Proof.] 0. secs (0.u,0.s) -Chars 22937 - 22948 [intros~Hij.] 0. secs (0.u,0.s) -Chars 22949 - 22972 [rewrite~loop_dinatural.] 0. secs (0.u,0.s) -Chars 22975 - 22996 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 22999 - 23017 [rewrite~bimap_cat.] 0.001 secs (0.001u,0.s) -Chars 23020 - 23032 [rewrite~Hij.] 0.001 secs (0.001u,0.s) -Chars 23035 - 23052 [rewrite~cat_id_l.] 0.001 secs (0.001u,0.s) -Chars 23055 - 23072 [rewrite~bimap_id.] 0.001 secs (0.001u,0.s) -Chars 23075 - 23092 [rewrite~cat_id_l.] 0. secs (0.u,0.s) -Chars 23095 - 23107 [reflexivity.] 0. secs (0.u,0.s) -Chars 23108 - 23112 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23407 - 23509 [Theorem~cat_from_loop~{a}~{b}~...] 0.001 secs (0.001u,0.s) -Chars 23510 - 23516 [Proof.] 0. secs (0.u,0.s) -Chars 23618 - 23638 [rewrite~bimap_slide.] 0.001 secs (0.001u,0.s) -Chars 23641 - 23662 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 23776 - 23806 [rewrite~<-~loop_natural_right.] 0. secs (0.u,0.s) -Chars 23914 - 23933 [rewrite~swap_bimap.] 0.001 secs (0.001u,0.s) -Chars 23936 - 23958 [rewrite~<-~!cat_assoc.] 0.004 secs (0.004u,0.s) -Chars 24088 - 24122 [rewrite~swap_involutive,~cat_i...] 0.003 secs (0.003u,0.s) -Chars 24252 - 24281 [rewrite~<-~loop_natural_left.] 0.002 secs (0.002u,0.s) -Chars 24380 - 24401 [rewrite~loop_yanking.] 0.001 secs (0.001u,0.s) -Chars 24404 - 24421 [rewrite~cat_id_r.] 0. secs (0.u,0.s) -Chars 24451 - 24463 [reflexivity.] 0. secs (0.u,0.s) -Chars 24464 - 24468 [Qed.] 0.002 secs (0.002u,0.s) -Chars 24625 - 24704 [Fact~fwd_eqn~{a}~{b}~(f~g~:~C~...] 0. secs (0.u,0.s) -Chars 24705 - 24711 [Proof.] 0. secs (0.u,0.s) -Chars 24714 - 24744 [intro~H;~apply~H;~reflexivity.] 0. secs (0.u,0.s) -Chars 24745 - 24749 [Qed.] 0. secs (0.u,0.s) -Chars 24800 - 24886 [Fact~cat_eq2_l~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) -Chars 24887 - 24893 [Proof.] 0. secs (0.u,0.s) -Chars 24896 - 24929 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) -Chars 24930 - 24934 [Qed.] 0. secs (0.u,0.s) -Chars 24936 - 25022 [Fact~cat_eq2_r~{a}~{b}~{c}~(h~...] 0. secs (0.u,0.s) -Chars 25023 - 25029 [Proof.] 0. secs (0.u,0.s) -Chars 25032 - 25065 [intros~H;~rewrite~H;~reflexivity.] 0. secs (0.u,0.s) -Chars 25066 - 25070 [Qed.] 0. secs (0.u,0.s) -Chars 25072 - 25205 [Fact~local_rewrite1~{a}~{b}~{c...] 0.004 secs (0.003u,0.s) -Chars 25206 - 25212 [Proof.] 0. secs (0.u,0.s) -Chars 25215 - 25224 [symmetry.] 0. secs (0.u,0.s) -Chars 25227 - 25254 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) -Chars 25257 - 25307 [do~2~apply~(cat_eq2_l~(bimap~(...] 0.001 secs (0.001u,0.s) -Chars 25310 - 25397 [rewrite~<-~cat_assoc,~bimap_ca...] 0.02 secs (0.02u,0.s) -Chars 25400 - 25473 [rewrite~<-~(cat_assoc~_~_~asso...] 0.007 secs (0.007u,0.s) -Chars 25476 - 25506 [rewrite~<-~swap_assoc_l~in~Eq.] 0.002 secs (0.002u,0.s) -Chars 25509 - 25547 [rewrite~(cat_assoc~_~_~assoc_r...] 0.001 secs (0.001u,0.s) -Chars 25550 - 25577 [rewrite~assoc_l_mono~in~Eq.] 0.002 secs (0.002u,0.s) -Chars 25580 - 25603 [rewrite~cat_id_r~in~Eq.] 0.001 secs (0.001u,0.s) -Chars 25606 - 25624 [rewrite~cat_assoc.] 0. secs (0.u,0.s) -Chars 25627 - 25638 [assumption.] 0. secs (0.u,0.s) -Chars 25639 - 25643 [Qed.] 0.007 secs (0.007u,0.s) -Chars 25645 - 25777 [Fact~local_rewrite2~{a}~{b}~{c...] 0.003 secs (0.003u,0.s) -Chars 25778 - 25784 [Proof.] 0. secs (0.u,0.s) -Chars 25787 - 25796 [symmetry.] 0. secs (0.u,0.s) -Chars 25799 - 25826 [apply~fwd_eqn;~intros~h~Eq.] 0. secs (0.u,0.s) -Chars 25829 - 25879 [do~2~apply~(cat_eq2_r~(bimap~(...] 0.001 secs (0.001u,0.s) -Chars 25882 - 25966 [rewrite~cat_assoc,~bimap_cat,~...] 0.022 secs (0.022u,0.s) -Chars 25969 - 26005 [rewrite~2!(cat_assoc~assoc_l)~...] 0.004 secs (0.004u,0.s) -Chars 26008 - 26038 [rewrite~<-~swap_assoc_r~in~Eq.] 0.002 secs (0.002u,0.s) -Chars 26041 - 26080 [rewrite~<-~2!(cat_assoc~assoc_...] 0.005 secs (0.005u,0.s) -Chars 26083 - 26120 [rewrite~assoc_l_mono,~cat_id_l...] 0.004 secs (0.004u,0.s) -Chars 26123 - 26134 [assumption.] 0. secs (0.u,0.s) -Chars 26135 - 26139 [Qed.] 0.006 secs (0.006u,0.s) -Chars 26141 - 26437 [Lemma~loop_superposing_2~{a}~{...] 0.008 secs (0.008u,0.s) -Chars 26438 - 26444 [Proof.] 0. secs (0.u,0.s) -Chars 26447 - 26484 [rewrite~swap_bimap,~loop_super...] 0.004 secs (0.004u,0.s) -Chars 26487 - 26533 [rewrite~loop_natural_left,~loo...] 0.004 secs (0.004u,0.s) -Chars 26536 - 26563 [rewrite~(swap_bimap~cd~ab).] 0.006 secs (0.006u,0.s) -Chars 26566 - 26588 [rewrite~<-~!cat_assoc.] 0.023 secs (0.023u,0.s) -Chars 26591 - 26614 [rewrite~local_rewrite1.] 0.005 secs (0.005u,0.s) -Chars 26617 - 26637 [rewrite~2!cat_assoc.] 0.006 secs (0.006u,0.s) -Chars 26640 - 26676 [rewrite~<-~(cat_assoc~swap~ass...] 0.004 secs (0.004u,0.s) -Chars 26679 - 26702 [rewrite~local_rewrite2.] 0.003 secs (0.003u,0.s) -Chars 26705 - 26727 [rewrite~<-~!cat_assoc.] 0.013 secs (0.013u,0.s) -Chars 26730 - 26742 [reflexivity.] 0. secs (0.u,0.s) -Chars 26743 - 26747 [Qed.] 0.008 secs (0.008u,0.s) -Chars 26749 - 26774 [End~TracedIterativeFacts.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/CategoryFunctor.v.timing b/theories/Basics/CategoryFunctor.v.timing deleted file mode 100644 index 7ce6e3e3..00000000 --- a/theories/Basics/CategoryFunctor.v.timing +++ /dev/null @@ -1,22 +0,0 @@ -Chars 34 - 88 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 90 - 133 [From~ITree~Require~Import~Cate...] 0. secs (0.u,0.s) -Chars 135 - 155 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 156 - 183 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 185 - 201 [Section~Functor.] 0. secs (0.u,0.s) -Chars 203 - 435 [Context~{obj1~obj2~:~Type}~{C1...] 0. secs (0.u,0.s) -Chars 437 - 458 [Arguments~fmap~{a~b}.] 0. secs (0.u,0.s) -Chars 460 - 698 [Class~Functor~:~Prop~:={~~~~~~...] 0.001 secs (0.001u,0.s) -Chars 700 - 712 [End~Functor.] 0. secs (0.u,0.s) -Chars 714 - 750 [Arguments~Functor~:~clear~impl...] 0. secs (0.u,0.s) -Chars 751 - 802 [Arguments~Functor~{_~_}~C1~C2~...] 0. secs (0.u,0.s) -Chars 804 - 822 [Section~FunctorId.] 0. secs (0.u,0.s) -Chars 824 - 1041 [Context~{obj~:~Type}~{C1~C2~:~...] 0. secs (0.u,0.s) -Chars 1043 - 1097 [Lemma~fmap_id0~:~forall~a,~fma...] 0. secs (0.u,0.s) -Chars 1098 - 1104 [Proof.] 0. secs (0.u,0.s) -Chars 1105 - 1119 [apply~fmap_id.] 0. secs (0.u,0.s) -Chars 1120 - 1124 [Qed.] 0. secs (0.u,0.s) -Chars 1126 - 1237 [Lemma~fmap_cat0~:~~~forall~a~b...] 0. secs (0.u,0.s) -Chars 1238 - 1244 [Proof.] 0. secs (0.u,0.s) -Chars 1245 - 1260 [apply~fmap_cat.] 0. secs (0.u,0.s) -Chars 1261 - 1265 [Qed.] 0. secs (0.u,0.s) -Chars 1267 - 1281 [End~FunctorId.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisli.v.timing b/theories/Basics/CategoryKleisli.v.timing deleted file mode 100644 index db9787ff..00000000 --- a/theories/Basics/CategoryKleisli.v.timing +++ /dev/null @@ -1,23 +0,0 @@ -Chars 657 - 699 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 701 - 750 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 752 - 860 [From~ITree~Require~Import~Basi...] 0.002 secs (0.002u,0.s) -Chars 877 - 909 [Implicit~Type~m~:~Type~->~Type.] 0. secs (0.u,0.s) -Chars 910 - 938 [Implicit~Types~a~b~c~:~Type.] 0. secs (0.u,0.s) -Chars 940 - 984 [Definition~Kleisli~m~a~b~:~Typ...] 0. secs (0.u,0.s) -Chars 1104 - 1181 [Definition~Kleisli_arrow~{m}~{...] 0. secs (0.u,0.s) -Chars 1182 - 1259 [Definition~Kleisli_apply~{m}~{...] 0. secs (0.u,0.s) -Chars 1262 - 1352 [Definition~pure~{m}~`{Monad~m}...] 0. secs (0.u,0.s) -Chars 1354 - 1372 [Section~Instances.] 0. secs (0.u,0.s) -Chars 1375 - 1402 [Context~{m~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 1405 - 1424 [Context~`{Monad~m}.] 0. secs (0.u,0.s) -Chars 1427 - 1444 [Context~`{Eq1~m}.] 0. secs (0.u,0.s) -Chars 1448 - 1540 [#[global]~Instance~Eq2_Kleisli...] 0. secs (0.u,0.s) -Chars 1544 - 1651 [#[global]~Instance~Cat_Kleisli...] 0. secs (0.u,0.s) -Chars 1655 - 1750 [Definition~map~{a}~{b}~{c}~(g~...] 0. secs (0.u,0.s) -Chars 1756 - 1860 [#[global]~Instance~Initial_Kle...] 0. secs (0.u,0.s) -Chars 1864 - 1936 [#[global]~Instance~Id_Kleisli~...] 0. secs (0.u,0.s) -Chars 1940 - 2038 [#[global]~Instance~Case_Kleisl...] 0. secs (0.u,0.s) -Chars 2042 - 2122 [#[global]~Instance~Inl_Kleisli...] 0. secs (0.u,0.s) -Chars 2126 - 2206 [#[global]~Instance~Inr_Kleisli...] 0. secs (0.u,0.s) -Chars 2210 - 2310 [#[global]~Instance~Iter_Kleisl...] 0. secs (0.u,0.s) -Chars 2312 - 2326 [End~Instances.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryKleisliFacts.v.timing b/theories/Basics/CategoryKleisliFacts.v.timing deleted file mode 100644 index f6e904f6..00000000 --- a/theories/Basics/CategoryKleisliFacts.v.timing +++ /dev/null @@ -1,307 +0,0 @@ -Chars 75 - 163 [From~Stdlib~Require~Import~Pro...] 0.008 secs (0.005u,0.002s) -Chars 165 - 214 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 216 - 377 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) -Chars 379 - 399 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 400 - 427 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 428 - 457 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 460 - 479 [Section~BasicFacts.] 0. secs (0.u,0.s) -Chars 483 - 510 [Context~{m~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 513 - 535 [Context~{Eq1~:~Eq1~m}.] 0. secs (0.u,0.s) -Chars 538 - 561 [Context~{Mm~:~Monad~m}.] 0. secs (0.u,0.s) -Chars 564 - 605 [Context~{Eq1P~:~@Eq1Equivalenc...] 0. secs (0.u,0.s) -Chars 608 - 644 [Context~{ML~:~@MonadLawsE~m~Eq...] 0. secs (0.u,0.s) -Chars 650 - 743 [Instance~Proper_Kleisli_apply~...] 0. secs (0.u,0.s) -Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) -Chars 757 - 782 [compute;~intros;~subst;~auto.] 0. secs (0.u,0.s) -Chars 785 - 789 [Qed.] 0. secs (0.u,0.s) -Chars 793 - 872 [Lemma~fold_Kleisli~{a}~{b}~(f~...] 0. secs (0.u,0.s) -Chars 875 - 881 [Proof.] 0. secs (0.u,0.s) -Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) -Chars 895 - 899 [Qed.] 0. secs (0.u,0.s) -Chars 905 - 986 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 989 - 995 [Proof.] 0. secs (0.u,0.s) -Chars 1000 - 1020 [split;~repeat~intro.] 0. secs (0.u,0.s) -Chars 1025 - 1026 [-] 0. secs (0.u,0.s) -Chars 1027 - 1039 [reflexivity.] 0. secs (0.u,0.s) -Chars 1044 - 1045 [-] 0. secs (0.u,0.s) -Chars 1046 - 1061 [symmetry;~auto.] 0. secs (0.u,0.s) -Chars 1066 - 1067 [-] 0. secs (0.u,0.s) -Chars 1068 - 1089 [etransitivity;~eauto.] 0. secs (0.u,0.s) -Chars 1092 - 1096 [Qed.] 0. secs (0.u,0.s) -Chars 1100 - 1184 [#[global]~Instance~Functor_pur...] 0. secs (0.u,0.s) -Chars 1187 - 1193 [Proof.] 0. secs (0.u,0.s) -Chars 1198 - 1218 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 1223 - 1224 [-] 0. secs (0.u,0.s) -Chars 1225 - 1237 [reflexivity.] 0. secs (0.u,0.s) -Chars 1242 - 1243 [-] 0. secs (0.u,0.s) -Chars 1244 - 1253 [intros~?.] 0. secs (0.u,0.s) -Chars 1254 - 1284 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 1285 - 1304 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 1311 - 1323 [reflexivity.] 0. secs (0.u,0.s) -Chars 1328 - 1329 [-] 0. secs (0.u,0.s) -Chars 1330 - 1345 [intros~?~?~?~?.] 0. secs (0.u,0.s) -Chars 1346 - 1358 [unfold~pure.] 0. secs (0.u,0.s) -Chars 1359 - 1369 [rewrite~H.] 0. secs (0.u,0.s) -Chars 1370 - 1382 [reflexivity.] 0. secs (0.u,0.s) -Chars 1385 - 1389 [Qed.] 0. secs (0.u,0.s) -Chars 1787 - 1911 [Instance~Proper_cat_Kleisli~~{...] 0. secs (0.u,0.s) -Chars 1912 - 1918 [Proof.] 0. secs (0.u,0.s) -Chars 1921 - 1934 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1937 - 1961 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 1964 - 1988 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) -Chars 1989 - 1993 [Qed.] 0. secs (0.u,0.s) -Chars 1995 - 2021 [#[local]~Opaque~bind~ret~eq1.] 0. secs (0.u,0.s) -Chars 2023 - 2151 [Lemma~pure_assoc_l~{a~b~c~:~Ty...] 0. secs (0.u,0.s) -Chars 2152 - 2158 [Proof.] 0. secs (0.u,0.s) -Chars 2161 - 2242 [compute;~intros~x;~destruct~x~...] 0.004 secs (0.003u,0.s) -Chars 2243 - 2247 [Qed.] 0.009 secs (0.008u,0.s) -Chars 2249 - 2369 [Lemma~pure_assoc_r~{a~b~c~:~Ty...] 0. secs (0.u,0.s) -Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) -Chars 2379 - 2460 [compute;~intros~x;~destruct~x~...] 0.003 secs (0.003u,0.s) -Chars 2461 - 2465 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2467 - 2523 [#[global]~Instance~CatAssoc_Kl...] 0. secs (0.u,0.s) -Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2537 [red.] 0. secs (0.u,0.s) -Chars 2538 - 2559 [intros~a~b~c~d~f~g~h.] 0. secs (0.u,0.s) -Chars 2563 - 2587 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 2590 - 2594 [compute.] 0. secs (0.u,0.s) -Chars 2595 - 2604 [intros~x.] 0. secs (0.u,0.s) -Chars 2607 - 2632 [setoid_rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 2635 - 2647 [reflexivity.] 0. secs (0.u,0.s) -Chars 2648 - 2652 [Qed.] 0. secs (0.u,0.s) -Chars 2698 - 2750 [#[global]~Instance~CatIdL_Klei...] 0. secs (0.u,0.s) -Chars 2751 - 2757 [Proof.] 0. secs (0.u,0.s) -Chars 2760 - 2823 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) -Chars 2826 - 2845 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 2846 - 2858 [reflexivity.] 0. secs (0.u,0.s) -Chars 2859 - 2863 [Qed.] 0. secs (0.u,0.s) -Chars 2865 - 2917 [#[global]~Instance~CatIdR_Klei...] 0. secs (0.u,0.s) -Chars 2918 - 2924 [Proof.] 0. secs (0.u,0.s) -Chars 2927 - 2990 [intros~A~B~f~a;~unfold~cat,~Ca...] 0. secs (0.u,0.s) -Chars 2993 - 3012 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) -Chars 3015 - 3027 [reflexivity.] 0. secs (0.u,0.s) -Chars 3028 - 3032 [Qed.] 0. secs (0.u,0.s) -Chars 3034 - 3090 [#[global]~Instance~Category_Kl...] 0. secs (0.u,0.s) -Chars 3091 - 3097 [Proof.] 0. secs (0.u,0.s) -Chars 3100 - 3131 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 3132 - 3136 [Qed.] 0. secs (0.u,0.s) -Chars 3138 - 3209 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 3210 - 3216 [Proof.] 0. secs (0.u,0.s) -Chars 3217 - 3231 [intros~A~f~[].] 0. secs (0.u,0.s) -Chars 3232 - 3236 [Qed.] 0. secs (0.u,0.s) -Chars 3240 - 3374 [#[global]~Instance~Proper_case...] 0. secs (0.u,0.s) -Chars 3375 - 3381 [Proof.] 0. secs (0.u,0.s) -Chars 3384 - 3430 [repeat~intro;~destruct~(_~:~_~...] 0. secs (0.u,0.s) -Chars 3431 - 3435 [Qed.] 0. secs (0.u,0.s) -Chars 3528 - 3603 [#[global]~Instance~Proper_pure...] 0. secs (0.u,0.s) -Chars 3604 - 3610 [Proof.] 0. secs (0.u,0.s) -Chars 3613 - 3626 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3629 - 3641 [unfold~pure.] 0. secs (0.u,0.s) -Chars 3644 - 3672 [erewrite~(H~a);~reflexivity.] 0. secs (0.u,0.s) -Chars 3673 - 3677 [Qed.] 0. secs (0.u,0.s) -Chars 3679 - 3742 [Lemma~pure_id~{A~:~Type}~:~(id...] 0. secs (0.u,0.s) -Chars 3743 - 3749 [Proof.] 0. secs (0.u,0.s) -Chars 3752 - 3764 [reflexivity.] 0. secs (0.u,0.s) -Chars 3765 - 3769 [Qed.] 0. secs (0.u,0.s) -Chars 3771 - 3876 [Fact~compose_pure~{A}~{B}~{C}~...] 0. secs (0.u,0.s) -Chars 3877 - 3883 [Proof.] 0. secs (0.u,0.s) -Chars 3886 - 3895 [intros~a.] 0. secs (0.u,0.s) -Chars 3898 - 3928 [unfold~pure,~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 3931 - 3950 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 3953 - 3965 [reflexivity.] 0. secs (0.u,0.s) -Chars 3966 - 3970 [Qed.] 0. secs (0.u,0.s) -Chars 3972 - 4106 [Fact~compose_pure_l~{A}~{B}~{C...] 0. secs (0.u,0.s) -Chars 4107 - 4113 [Proof.] 0. secs (0.u,0.s) -Chars 4116 - 4137 [rewrite~<-~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 4140 - 4161 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) -Chars 4164 - 4176 [reflexivity.] 0. secs (0.u,0.s) -Chars 4177 - 4181 [Qed.] 0. secs (0.u,0.s) -Chars 4183 - 4317 [Fact~compose_pure_r~{A}~{B}~{C...] 0. secs (0.u,0.s) -Chars 4318 - 4324 [Proof.] 0. secs (0.u,0.s) -Chars 4327 - 4345 [rewrite~cat_assoc.] 0.013 secs (0.012u,0.s) -Chars 4348 - 4369 [rewrite~compose_pure.] 0.001 secs (0.001u,0.s) -Chars 4372 - 4384 [reflexivity.] 0. secs (0.u,0.s) -Chars 4385 - 4389 [Qed.] 0. secs (0.u,0.s) -Chars 4391 - 4493 [Fact~pure_cat~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) -Chars 4494 - 4500 [Proof.] 0. secs (0.u,0.s) -Chars 4503 - 4519 [intros;~intro~a.] 0. secs (0.u,0.s) -Chars 4522 - 4558 [unfold~pure,~pure,~cat,~Cat_Kl...] 0. secs (0.u,0.s) -Chars 4561 - 4580 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 4581 - 4593 [reflexivity.] 0. secs (0.u,0.s) -Chars 4594 - 4598 [Qed.] 0. secs (0.u,0.s) -Chars 4601 - 4700 [Fact~cat_pure~{A}~{B}~{C}~:~~~...] 0. secs (0.u,0.s) -Chars 4701 - 4707 [Proof.] 0. secs (0.u,0.s) -Chars 4710 - 4722 [reflexivity.] 0. secs (0.u,0.s) -Chars 4723 - 4727 [Qed.] 0. secs (0.u,0.s) -Chars 4729 - 4786 [Lemma~pure_swap~{A}~{B}~:~@pur...] 0.001 secs (0.001u,0.s) -Chars 4787 - 4793 [Proof.] 0. secs (0.u,0.s) -Chars 4796 - 4819 [intros~[];~reflexivity.] 0. secs (0.u,0.s) -Chars 4820 - 4824 [Qed.] 0. secs (0.u,0.s) -Chars 4826 - 4883 [Lemma~pure_inl~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) -Chars 4884 - 4890 [Proof.] 0. secs (0.u,0.s) -Chars 4891 - 4903 [reflexivity.] 0. secs (0.u,0.s) -Chars 4904 - 4908 [Qed.] 0. secs (0.u,0.s) -Chars 4910 - 4967 [Lemma~pure_inr~{A}~{B}~:~pure~...] 0. secs (0.u,0.s) -Chars 4968 - 4974 [Proof.] 0. secs (0.u,0.s) -Chars 4975 - 4987 [reflexivity.] 0. secs (0.u,0.s) -Chars 4988 - 4992 [Qed.] 0. secs (0.u,0.s) -Chars 4994 - 5120 [Lemma~case_pure~{A}~{B}~{C}~(a...] 0.001 secs (0.001u,0.s) -Chars 5121 - 5127 [Proof.] 0. secs (0.u,0.s) -Chars 5130 - 5153 [intros~[];~reflexivity.] 0. secs (0.u,0.s) -Chars 5154 - 5158 [Qed.] 0. secs (0.u,0.s) -Chars 5251 - 5325 [Lemma~unit_l_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) -Chars 5326 - 5332 [Proof.] 0. secs (0.u,0.s) -Chars 5335 - 5348 [intros~[[]|~].] 0. secs (0.u,0.s) -Chars 5349 - 5361 [reflexivity.] 0. secs (0.u,0.s) -Chars 5362 - 5366 [Qed.] 0. secs (0.u,0.s) -Chars 5368 - 5445 [Lemma~unit_l'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) -Chars 5446 - 5452 [Proof.] 0. secs (0.u,0.s) -Chars 5455 - 5467 [reflexivity.] 0. secs (0.u,0.s) -Chars 5468 - 5472 [Qed.] 0. secs (0.u,0.s) -Chars 5474 - 5548 [Lemma~unit_r_pure~(A~:~Type)~:...] 0. secs (0.u,0.s) -Chars 5549 - 5555 [Proof.] 0. secs (0.u,0.s) -Chars 5558 - 5571 [intros~[|~[]].] 0. secs (0.u,0.s) -Chars 5572 - 5584 [reflexivity.] 0. secs (0.u,0.s) -Chars 5585 - 5589 [Qed.] 0. secs (0.u,0.s) -Chars 5591 - 5668 [Lemma~unit_r'_pure~(A~:~Type)~...] 0. secs (0.u,0.s) -Chars 5669 - 5675 [Proof.] 0. secs (0.u,0.s) -Chars 5678 - 5690 [reflexivity.] 0. secs (0.u,0.s) -Chars 5691 - 5695 [Qed.] 0. secs (0.u,0.s) -Chars 5733 - 5823 [Lemma~case_l~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) -Chars 5824 - 5830 [Proof.] 0. secs (0.u,0.s) -Chars 5833 - 5853 [rewrite~unit_l_pure.] 0.002 secs (0.002u,0.s) -Chars 5856 - 5868 [reflexivity.] 0. secs (0.u,0.s) -Chars 5869 - 5873 [Qed.] 0. secs (0.u,0.s) -Chars 5912 - 6016 [Lemma~case_l'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) -Chars 6017 - 6023 [Proof.] 0. secs (0.u,0.s) -Chars 6026 - 6047 [rewrite~unit_l'_pure.] 0.001 secs (0.001u,0.s) -Chars 6050 - 6056 [intro.] 0. secs (0.u,0.s) -Chars 6057 - 6087 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 6090 - 6122 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 6123 - 6127 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6130 - 6220 [Lemma~case_r~{A~B~:~Type}~(ab~...] 0. secs (0.u,0.s) -Chars 6221 - 6227 [Proof.] 0. secs (0.u,0.s) -Chars 6230 - 6250 [rewrite~unit_r_pure.] 0.002 secs (0.002u,0.s) -Chars 6253 - 6265 [reflexivity.] 0. secs (0.u,0.s) -Chars 6266 - 6270 [Qed.] 0. secs (0.u,0.s) -Chars 6272 - 6376 [Lemma~case_r'~{A~B~:~Type}~(f~...] 0. secs (0.u,0.s) -Chars 6377 - 6383 [Proof.] 0. secs (0.u,0.s) -Chars 6386 - 6407 [rewrite~unit_r'_pure.] 0.001 secs (0.001u,0.s) -Chars 6410 - 6416 [intro.] 0. secs (0.u,0.s) -Chars 6417 - 6447 [unfold~cat,~Cat_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 6450 - 6482 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.u,0.s) -Chars 6483 - 6487 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6490 - 6584 [Fact~bimap_id_pure~{A}~{B}~{C}...] 0.002 secs (0.002u,0.s) -Chars 6585 - 6591 [Proof.] 0. secs (0.u,0.s) -Chars 6594 - 6624 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 6627 - 6645 [rewrite~!cat_id_l.] 0.004 secs (0.003u,0.s) -Chars 6646 - 6668 [rewrite~<-~!case_pure.] 0.003 secs (0.002u,0.s) -Chars 6669 - 6694 [rewrite~<-~!compose_pure.] 0.008 secs (0.007u,0.s) -Chars 6695 - 6714 [rewrite~<-~pure_id.] 0.002 secs (0.002u,0.s) -Chars 6717 - 6735 [rewrite~!cat_id_l.] 0.002 secs (0.002u,0.s) -Chars 6739 - 6751 [reflexivity.] 0. secs (0.u,0.s) -Chars 6752 - 6756 [Qed.] 0.002 secs (0.002u,0.s) -Chars 6758 - 6847 [Fact~bimap_pure_id~{A}~{B}~{C}...] 0.002 secs (0.002u,0.s) -Chars 6848 - 6854 [Proof.] 0. secs (0.u,0.s) -Chars 6857 - 6887 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 6890 - 6939 [rewrite~!cat_id_l,~<-~case_pur...] 0.007 secs (0.007u,0.s) -Chars 6942 - 6954 [reflexivity.] 0. secs (0.u,0.s) -Chars 6955 - 6959 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6961 - 7023 [#[global]~Instance~Coproduct_K...] 0. secs (0.u,0.s) -Chars 7024 - 7030 [Proof.] 0. secs (0.u,0.s) -Chars 7033 - 7045 [constructor.] 0. secs (0.u,0.s) -Chars 7048 - 7049 [-] 0. secs (0.u,0.s) -Chars 7050 - 7067 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 7072 - 7097 [unfold~inl_,~Inl_Kleisli.] 0. secs (0.u,0.s) -Chars 7102 - 7119 [rewrite~pure_cat.] 0. secs (0.u,0.s) -Chars 7124 - 7136 [reflexivity.] 0. secs (0.u,0.s) -Chars 7139 - 7140 [-] 0. secs (0.u,0.s) -Chars 7141 - 7158 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 7163 - 7188 [unfold~inr_,~Inr_Kleisli.] 0. secs (0.u,0.s) -Chars 7193 - 7210 [rewrite~pure_cat.] 0. secs (0.u,0.s) -Chars 7215 - 7227 [reflexivity.] 0. secs (0.u,0.s) -Chars 7230 - 7231 [-] 0. secs (0.u,0.s) -Chars 7232 - 7266 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~y].] 0. secs (0.u,0.s) -Chars 7271 - 7272 [+] 0. secs (0.u,0.s) -Chars 7273 - 7304 [unfold~inl_,~Inl_Kleisli~in~Hf.] 0. secs (0.u,0.s) -Chars 7311 - 7334 [rewrite~pure_cat~in~Hf.] 0.001 secs (0.001u,0.s) -Chars 7341 - 7359 [specialize~(Hf~x).] 0. secs (0.u,0.s) -Chars 7360 - 7372 [simpl~in~Hf.] 0. secs (0.u,0.s) -Chars 7373 - 7384 [rewrite~Hf.] 0. secs (0.u,0.s) -Chars 7385 - 7397 [reflexivity.] 0. secs (0.u,0.s) -Chars 7402 - 7403 [+] 0. secs (0.u,0.s) -Chars 7404 - 7435 [unfold~inr_,~Inr_Kleisli~in~Hg.] 0. secs (0.u,0.s) -Chars 7442 - 7465 [rewrite~pure_cat~in~Hg.] 0.001 secs (0.001u,0.s) -Chars 7472 - 7490 [specialize~(Hg~y).] 0. secs (0.u,0.s) -Chars 7491 - 7503 [simpl~in~Hg.] 0. secs (0.u,0.s) -Chars 7504 - 7515 [rewrite~Hg.] 0. secs (0.u,0.s) -Chars 7516 - 7528 [reflexivity.] 0. secs (0.u,0.s) -Chars 7531 - 7532 [-] 0. secs (0.u,0.s) -Chars 7533 - 7551 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 7552 - 7556 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7558 - 7617 [#[global]~Instance~bimap_id_kl...] 0. secs (0.u,0.s) -Chars 7618 - 7624 [Proof.] 0. secs (0.u,0.s) -Chars 7627 - 7666 [unfold~BimapId,~bimap,~Bimap_C...] 0. secs (0.u,0.s) -Chars 7669 - 7676 [intros.] 0. secs (0.u,0.s) -Chars 7679 - 7697 [rewrite~!cat_id_l.] 0.003 secs (0.003u,0.s) -Chars 7700 - 7744 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) -Chars 7747 - 7765 [rewrite~case_pure.] 0. secs (0.u,0.s) -Chars 7768 - 7834 [unfold~pure,~id_,~case_,~Case_...] 0. secs (0.u,0.s) -Chars 7837 - 7841 [red.] 0. secs (0.u,0.s) -Chars 7842 - 7848 [intro.] 0. secs (0.u,0.s) -Chars 7849 - 7874 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) -Chars 7875 - 7879 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7885 - 8095 [Lemma~map_inl_case_kleisli~:~~...] 0. secs (0.u,0.s) -Chars 8098 - 8104 [Proof.] 0. secs (0.u,0.s) -Chars 8109 - 8140 [intros~a1~b1~b2~c1~c2~f1~g1~g2.] 0. secs (0.u,0.s) -Chars 8145 - 8200 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) -Chars 8205 - 8216 [unfold~map.] 0. secs (0.u,0.s) -Chars 8217 - 8241 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8246 - 8271 [setoid_rewrite~bind_bind.] 0.003 secs (0.003u,0.s) -Chars 8276 - 8288 [unfold~pure.] 0. secs (0.u,0.s) -Chars 8289 - 8315 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 8316 - 8328 [reflexivity.] 0. secs (0.u,0.s) -Chars 8331 - 8335 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8339 - 8549 [Lemma~map_inr_case_kleisli~:~~...] 0. secs (0.u,0.s) -Chars 8552 - 8558 [Proof.] 0. secs (0.u,0.s) -Chars 8563 - 8594 [intros~a2~b1~b2~c1~c2~f2~g1~g2.] 0. secs (0.u,0.s) -Chars 8599 - 8654 [unfold~cat,~Cat_Kleisli,~case_...] 0. secs (0.u,0.s) -Chars 8659 - 8670 [unfold~map.] 0. secs (0.u,0.s) -Chars 8671 - 8695 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8700 - 8725 [setoid_rewrite~bind_bind.] 0.002 secs (0.002u,0.s) -Chars 8730 - 8742 [unfold~pure.] 0. secs (0.u,0.s) -Chars 8743 - 8769 [setoid_rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 8770 - 8782 [reflexivity.] 0. secs (0.u,0.s) -Chars 8785 - 8789 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8792 - 8853 [#[global]~Instance~bimap_cat_k...] 0. secs (0.u,0.s) -Chars 8854 - 8860 [Proof.] 0. secs (0.u,0.s) -Chars 8863 - 8903 [unfold~BimapCat,~bimap,~Bimap_...] 0. secs (0.u,0.s) -Chars 8906 - 8913 [intros.] 0. secs (0.u,0.s) -Chars 8916 - 8960 [unfold~inl_,~inr_,~Inl_Kleisli...] 0. secs (0.u,0.s) -Chars 8963 - 8981 [rewrite~!cat_pure.] 0.021 secs (0.02u,0.s) -Chars 8982 - 9000 [rewrite~!cat_case.] 0.004 secs (0.004u,0.s) -Chars 9003 - 9032 [rewrite~map_inl_case_kleisli.] 0.002 secs (0.002u,0.s) -Chars 9035 - 9064 [rewrite~map_inr_case_kleisli.] 0.002 secs (0.002u,0.s) -Chars 9067 - 9079 [reflexivity.] 0. secs (0.u,0.s) -Chars 9080 - 9084 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9086 - 9231 [#[global]~Instance~proper_bima...] 0. secs (0.u,0.s) -Chars 9232 - 9238 [Proof.] 0. secs (0.u,0.s) -Chars 9241 - 9248 [intros.] 0. secs (0.u,0.s) -Chars 9251 - 9264 [repeat~intro.] 0. secs (0.u,0.s) -Chars 9267 - 9297 [unfold~bimap,~Bimap_Coproduct.] 0. secs (0.u,0.s) -Chars 9300 - 9337 [unfold~case_,~Case_Kleisli,~ca...] 0. secs (0.u,0.s) -Chars 9340 - 9352 [destruct~a0.] 0. secs (0.u,0.s) -Chars 9355 - 9356 [-] 0. secs (0.u,0.s) -Chars 9357 - 9387 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) -Chars 9388 - 9398 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 9399 - 9411 [reflexivity.] 0. secs (0.u,0.s) -Chars 9414 - 9415 [-] 0. secs (0.u,0.s) -Chars 9416 - 9446 [unfold~cat,~Cat_Kleisli,~inl_.] 0. secs (0.u,0.s) -Chars 9447 - 9458 [rewrite~H0.] 0.001 secs (0.001u,0.s) -Chars 9459 - 9471 [reflexivity.] 0. secs (0.u,0.s) -Chars 9472 - 9476 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9478 - 9540 [#[global]~Instance~Bifunctor_K...] 0.001 secs (0.001u,0.s) -Chars 9541 - 9572 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 9573 - 9577 [Qed.] 0. secs (0.u,0.s) -Chars 9579 - 9594 [End~BasicFacts.] 0.001 secs (0.001u,0.s) -Chars 9596 - 9769 [Notation~Proper_iter~m~a~b:=~~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryOps.v.timing b/theories/Basics/CategoryOps.v.timing deleted file mode 100644 index 2013e111..00000000 --- a/theories/Basics/CategoryOps.v.timing +++ /dev/null @@ -1,126 +0,0 @@ -Chars 1896 - 1918 [Module~Import~Carrier.] 0. secs (0.u,0.s) -Chars 2035 - 2091 [Notation~Hom~obj:=~(obj~->~obj...] 0. secs (0.u,0.s) -Chars 2803 - 2860 [Notation~binop~obj:=~(obj~->~o...] 0. secs (0.u,0.s) -Chars 2862 - 2874 [End~Carrier.] 0. secs (0.u,0.s) -Chars 2913 - 2937 [Declare~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 2938 - 2971 [Delimit~Scope~cat_scope~with~cat.] 0. secs (0.u,0.s) -Chars 3021 - 3036 [Section~CatOps.] 0. secs (0.u,0.s) -Chars 3038 - 3073 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 3195 - 3254 [Class~Eq2~:~Type~:=~~~~~eq2~:~...] 0. secs (0.u,0.s) -Chars 3330 - 3374 [Class~Id_~:~Type~:=~~~~~id_~:~...] 0. secs (0.u,0.s) -Chars 3603 - 3669 [Class~Cat~:~Type~:=~~~~~cat~:~...] 0. secs (0.u,0.s) -Chars 3768 - 3821 [Class~Initial~(i~:~obj)~:=~~~~...] 0. secs (0.u,0.s) -Chars 3919 - 3971 [Class~Terminal~(t~:~obj)~:=~~~...] 0. secs (0.u,0.s) -Chars 3973 - 4023 [Definition~op~:~Hom~obj~:=~fun...] 0. secs (0.u,0.s) -Chars 4025 - 4036 [End~CatOps.] 0. secs (0.u,0.s) -Chars 4038 - 4068 [Arguments~eq2~{obj~C~Eq2~a~b}.] 0. secs (0.u,0.s) -Chars 4069 - 4095 [Arguments~id_~{obj~C~Id_}.] 0. secs (0.u,0.s) -Chars 4096 - 4128 [Arguments~cat~{obj~C~Cat~a~b~c}.] 0. secs (0.u,0.s) -Chars 4129 - 4165 [Arguments~empty~{obj~C~i~Initi...] 0. secs (0.u,0.s) -Chars 4166 - 4201 [Arguments~one~{obj~C~t~Termina...] 0. secs (0.u,0.s) -Chars 4202 - 4223 [Arguments~op~{obj}~C.] 0. secs (0.u,0.s) -Chars 4247 - 4270 [Section~CocartesianOps.] 0. secs (0.u,0.s) -Chars 4272 - 4325 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 4724 - 4805 [Class~Bimap~:=~~~~~bimap~:~for...] 0. secs (0.u,0.s) -Chars 4933 - 5003 [Class~Case~:=~~~~~case_~:~fora...] 0. secs (0.u,0.s) -Chars 5047 - 5095 [Class~Inl~:=~~~~~inl_~:~forall...] 0. secs (0.u,0.s) -Chars 5140 - 5188 [Class~Inr~:=~~~~~inr_~:~forall...] 0. secs (0.u,0.s) -Chars 5891 - 5971 [Class~AssocR~:=~~~~~assoc_r~:~...] 0. secs (0.u,0.s) -Chars 5973 - 6053 [Class~AssocL~:=~~~~~assoc_l~:~...] 0. secs (0.u,0.s) -Chars 6076 - 6136 [Class~UnitL~(i~:~obj)~:=~~~~~u...] 0. secs (0.u,0.s) -Chars 6138 - 6200 [Class~UnitL'~(i~:~obj)~:=~~~~~...] 0. secs (0.u,0.s) -Chars 6202 - 6262 [Class~UnitR~(i~:~obj)~:=~~~~~u...] 0. secs (0.u,0.s) -Chars 6264 - 6326 [Class~UnitR'~(i~:~obj)~:=~~~~~...] 0. secs (0.u,0.s) -Chars 6420 - 6490 [Class~Pair~:=~~~~~pair_~:~fora...] 0. secs (0.u,0.s) -Chars 6535 - 6583 [Class~Fst~:=~~~~~fst_~:~forall...] 0. secs (0.u,0.s) -Chars 6629 - 6677 [Class~Snd~:=~~~~~snd_~:~forall...] 0. secs (0.u,0.s) -Chars 6701 - 6758 [Class~Swap~:=~~~~~swap~:~foral...] 0. secs (0.u,0.s) -Chars 6760 - 6779 [End~CocartesianOps.] 0. secs (0.u,0.s) -Chars 6781 - 6823 [Arguments~bimap~{obj~C~bif~Bim...] 0. secs (0.u,0.s) -Chars 6824 - 6863 [Arguments~case_~{obj~C~bif~Cas...] 0. secs (0.u,0.s) -Chars 6864 - 6899 [Arguments~inl_~{obj~C~bif~Inl~...] 0. secs (0.u,0.s) -Chars 6900 - 6935 [Arguments~inr_~{obj~C~bif~Inr~...] 0. secs (0.u,0.s) -Chars 6936 - 6975 [Arguments~pair_~{obj~C~bif~Pai...] 0. secs (0.u,0.s) -Chars 6976 - 7011 [Arguments~fst_~{obj~C~bif~Fst~...] 0. secs (0.u,0.s) -Chars 7012 - 7047 [Arguments~snd_~{obj~C~bif~Snd~...] 0. secs (0.u,0.s) -Chars 7048 - 7091 [Arguments~assoc_r~{obj~C~bif~A...] 0. secs (0.u,0.s) -Chars 7092 - 7135 [Arguments~assoc_l~{obj~C~bif~A...] 0. secs (0.u,0.s) -Chars 7136 - 7176 [Arguments~unit_l~{obj~C~bif~i~...] 0. secs (0.u,0.s) -Chars 7177 - 7218 [Arguments~unit_l'~{obj~C~bif~i...] 0. secs (0.u,0.s) -Chars 7219 - 7259 [Arguments~unit_r~{obj~C~bif~i~...] 0. secs (0.u,0.s) -Chars 7260 - 7301 [Arguments~unit_r'~{obj~C~bif~i...] 0. secs (0.u,0.s) -Chars 7302 - 7338 [Arguments~swap~{obj~C~bif~Swap...] 0. secs (0.u,0.s) -Chars 7484 - 7551 [Notation~assoc_r_~a~b~c:=~(@as...] 0. secs (0.u,0.s) -Chars 7552 - 7619 [Notation~assoc_l_~a~b~c:=~(@as...] 0. secs (0.u,0.s) -Chars 7620 - 7683 [Notation~unit_l_~i~a:=~(@unit_...] 0. secs (0.u,0.s) -Chars 7684 - 7747 [Notation~unit_l'_~i~a:=~(@unit...] 0. secs (0.u,0.s) -Chars 7748 - 7811 [Notation~unit_r_~i~a:=~(@unit_...] 0. secs (0.u,0.s) -Chars 7812 - 7875 [Notation~unit_r'_~i~a:=~(@unit...] 0. secs (0.u,0.s) -Chars 7876 - 7933 [Notation~swap_~a~b:=~(@swap~_~...] 0. secs (0.u,0.s) -Chars 7966 - 8027 [Notation~case__~C:=~(@case_~_~...] 0. secs (0.u,0.s) -Chars 8028 - 8089 [Notation~pair__~C:=~(@pair_~_~...] 0. secs (0.u,0.s) -Chars 8116 - 8143 [Module~Import~CatNotations.] 0. secs (0.u,0.s) -Chars 8145 - 8190 [Infix~"⩯"~:=~eq2~(~at~level~70...] 0. secs (0.u,0.s) -Chars 8191 - 8256 [Infix~">>>"~:=~cat~(~at~level~...] 0. secs (0.u,0.s) -Chars 8258 - 8275 [End~CatNotations.] 0. secs (0.u,0.s) -Chars 8277 - 8298 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) -Chars 8405 - 8592 [Definition~merge~{obj~:~Type}~...] 0. secs (0.u,0.s) -Chars 8726 - 8755 [Section~CocartesianConstruct.] 0. secs (0.u,0.s) -Chars 8757 - 8808 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 8809 - 8927 [Variables~(SUM~:~binop~obj)~(C...] 0. secs (0.u,0.s) -Chars 8963 - 9092 [#[global]~Instance~Bimap_Copro...] 0. secs (0.u,0.s) -Chars 9128 - 9207 [#[global]~Instance~Swap_Coprod...] 0. secs (0.u,0.s) -Chars 9245 - 9385 [#[global]~Instance~AssocR_Copr...] 0.001 secs (0.001u,0.s) -Chars 9387 - 9527 [#[global]~Instance~AssocL_Copr...] 0.001 secs (0.001u,0.s) -Chars 9529 - 9590 [Variables~(Id_C~:~Id_~C)~(I~:~...] 0. secs (0.u,0.s) -Chars 9648 - 9733 [#[global]~Instance~UnitL_Copro...] 0. secs (0.u,0.s) -Chars 9735 - 9807 [#[global]~Instance~UnitL'_Copr...] 0. secs (0.u,0.s) -Chars 9809 - 9894 [#[global]~Instance~UnitR_Copro...] 0. secs (0.u,0.s) -Chars 9896 - 9968 [#[global]~Instance~UnitR'_Copr...] 0. secs (0.u,0.s) -Chars 9970 - 9995 [End~CocartesianConstruct.] 0. secs (0.u,0.s) -Chars 10122 - 10149 [Section~CartesianConstruct.] 0. secs (0.u,0.s) -Chars 10309 - 10360 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 10361 - 10484 [Variables~(PROD~:~binop~obj)~(...] 0. secs (0.u,0.s) -Chars 10518 - 10645 [#[local]~Instance~Bimap_Produc...] 0. secs (0.u,0.s) -Chars 10679 - 10756 [#[local]~Instance~Swap_Product...] 0. secs (0.u,0.s) -Chars 10792 - 10910 [#[local]~Instance~AssocR_Produ...] 0.001 secs (0.001u,0.s) -Chars 10912 - 11030 [#[local]~Instance~AssocL_Produ...] 0.001 secs (0.001u,0.s) -Chars 11032 - 11095 [Variables~(Id_C~:~Id_~C)~(T~:~...] 0. secs (0.u,0.s) -Chars 11151 - 11219 [#[local]~Instance~UnitL_Produc...] 0. secs (0.u,0.s) -Chars 11221 - 11304 [#[local]~Instance~UnitL'_Produ...] 0. secs (0.u,0.s) -Chars 11306 - 11374 [#[local]~Instance~UnitR_Produc...] 0. secs (0.u,0.s) -Chars 11376 - 11459 [#[local]~Instance~UnitR'_Produ...] 0. secs (0.u,0.s) -Chars 11461 - 11484 [End~CartesianConstruct.] 0. secs (0.u,0.s) -Chars 11608 - 11632 [Section~CartesianClosed.] 0. secs (0.u,0.s) -Chars 11635 - 11737 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 11908 - 11978 [Class~Apply~:~Type~:=~~~~~appl...] 0. secs (0.u,0.s) -Chars 11982 - 12063 [Class~Curry~:~Type~:=~~~~~curr...] 0. secs (0.u,0.s) -Chars 12065 - 12085 [End~CartesianClosed.] 0. secs (0.u,0.s) -Chars 12087 - 12127 [Arguments~apply_~{obj~C~PROD~E...] 0. secs (0.u,0.s) -Chars 12128 - 12170 [Arguments~curry_~{obj~C~PROD~E...] 0. secs (0.u,0.s) -Chars 12174 - 12189 [Section~Dagger.] 0. secs (0.u,0.s) -Chars 12192 - 12227 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 12231 - 12297 [Class~Dagger~:~Type~:=~~~~~dag...] 0. secs (0.u,0.s) -Chars 12299 - 12310 [End~Dagger.] 0. secs (0.u,0.s) -Chars 12312 - 12343 [Arguments~dagger~{obj~C~_~a~b}.] 0. secs (0.u,0.s) -Chars 12380 - 12398 [Section~Iteration.] 0. secs (0.u,0.s) -Chars 12400 - 12435 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 12436 - 12464 [Variable~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 12689 - 12754 [Class~Iter~:~Type~:=~~~~~iter~...] 0. secs (0.u,0.s) -Chars 12756 - 12893 [Context~{Id_C~:~Id_~C}~{Cat_C~...] 0. secs (0.u,0.s) -Chars 12951 - 13075 [Definition~loop~(a~b~c~:~obj)~...] 0.001 secs (0.u,0.s) -Chars 13362 - 13376 [End~Iteration.] 0. secs (0.u,0.s) -Chars 13378 - 13411 [Arguments~iter~{obj~C~bif~_~a~b}.] 0. secs (0.u,0.s) -Chars 13412 - 13457 [Arguments~loop~{obj~C~bif~_~_~...] 0. secs (0.u,0.s) -Chars 13509 - 13523 [Section~RESUM.] 0. secs (0.u,0.s) -Chars 13525 - 13578 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 13579 - 13609 [Context~`{Id_~_~C}~`{Cat~_~C}.] 0. secs (0.u,0.s) -Chars 13610 - 13664 [Context~`{Case~_~C~bif}~`{Inl~...] 0. secs (0.u,0.s) -Chars 13666 - 13709 [Class~ReSum~(a~b~:~obj)~:=~~~~...] 0. secs (0.u,0.s) -Chars 13953 - 14028 [#[global]~Instance~ReSum_id~~`...] 0. secs (0.u,0.s) -Chars 14029 - 14155 [#[global]~Instance~ReSum_sum~~...] 0. secs (0.u,0.s) -Chars 14156 - 14261 [#[global]~Instance~ReSum_inl~~...] 0. secs (0.u,0.s) -Chars 14262 - 14367 [#[global]~Instance~ReSum_inr~~...] 0. secs (0.u,0.s) -Chars 14368 - 14464 [#[global]~Instance~ReSum_empty...] 0. secs (0.u,0.s) -Chars 14776 - 14786 [End~RESUM.] 0. secs (0.u,0.s) -Chars 14788 - 14844 [#[global]~Hint~Mode~ReSum~!~!~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryRelations.v.timing b/theories/Basics/CategoryRelations.v.timing deleted file mode 100644 index 3d6004e5..00000000 --- a/theories/Basics/CategoryRelations.v.timing +++ /dev/null @@ -1,430 +0,0 @@ -Chars 0 - 42 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 44 - 242 [From~ITree~Require~Import~Basi...] 0.028 secs (0.023u,0.005s) -Chars 378 - 397 [Section~Operations.] 0. secs (0.u,0.s) -Chars 401 - 421 [Import~RelNotations.] 0. secs (0.u,0.s) -Chars 424 - 457 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) -Chars 606 - 657 [#[global]~Instance~Eq2_rel~:~(...] 0. secs (0.u,0.s) -Chars 858 - 934 [#[global]~Instance~Cat_rel~:~(...] 0. secs (0.u,0.s) -Chars 991 - 1037 [#[global]~Instance~Id_rel~:~(I...] 0. secs (0.u,0.s) -Chars 1089 - 1184 [#[global]~Instance~Initial_rel...] 0. secs (0.u,0.s) -Chars 1268 - 1357 [#[global]~Instance~Case_rel~:~...] 0. secs (0.u,0.s) -Chars 1361 - 1435 [#[global]~Instance~Inl_rel~:~(...] 0. secs (0.u,0.s) -Chars 1439 - 1513 [#[global]~Instance~Inr_rel~:~(...] 0. secs (0.u,0.s) -Chars 1596 - 1695 [#[global]~Instance~Pair_rel~:~...] 0. secs (0.u,0.s) -Chars 1699 - 1775 [#[global]~Instance~Fst_rel~:~(...] 0. secs (0.u,0.s) -Chars 1779 - 1855 [#[global]~Instance~Snd_rel~:~(...] 0. secs (0.u,0.s) -Chars 2614 - 2709 [#[global]~Instance~Bimap_sum_r...] 0. secs (0.u,0.s) -Chars 2713 - 3006 [#[global]~Instance~AssocR_sum~...] 0. secs (0.u,0.s) -Chars 3010 - 3303 [#[global]~Instance~AssocL_sum~...] 0. secs (0.u,0.s) -Chars 3307 - 3498 [#[global]~Instance~UnitL_sum~:...] 0. secs (0.u,0.s) -Chars 3502 - 3693 [#[global]~Instance~UnitR_sum~:...] 0. secs (0.u,0.s) -Chars 3697 - 3892 [#[global]~Instance~UnitL'_sum~...] 0. secs (0.u,0.s) -Chars 3896 - 4091 [#[global]~Instance~UnitR'_sum~...] 0. secs (0.u,0.s) -Chars 4095 - 4192 [#[global]~Instance~Bimap_prod_...] 0. secs (0.u,0.s) -Chars 4196 - 4318 [#[global]~Instance~AssocR_prod...] 0. secs (0.u,0.s) -Chars 4322 - 4444 [#[global]~Instance~AssocL_prod...] 0. secs (0.u,0.s) -Chars 4448 - 4537 [#[global]~Instance~UnitL_prod~...] 0. secs (0.u,0.s) -Chars 4541 - 4629 [#[global]~Instance~UnitR_prod~...] 0. secs (0.u,0.s) -Chars 4633 - 4723 [#[global]~Instance~UnitL'_prod...] 0. secs (0.u,0.s) -Chars 4727 - 4817 [#[global]~Instance~UnitR'_prod...] 0. secs (0.u,0.s) -Chars 4882 - 4961 [#[global]~Instance~Dagger_rel~...] 0. secs (0.u,0.s) -Chars 4963 - 4978 [End~Operations.] 0.001 secs (0.001u,0.s) -Chars 5097 - 5111 [Section~Facts.] 0. secs (0.u,0.s) -Chars 5115 - 5135 [Section~CategoryRel.] 0. secs (0.u,0.s) -Chars 5141 - 5186 [#[global]~Instance~CatIdL_rel~...] 0. secs (0.u,0.s) -Chars 5191 - 5197 [Proof.] 0. secs (0.u,0.s) -Chars 5204 - 5301 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) -Chars 5308 - 5309 [-] 0. secs (0.u,0.s) -Chars 5310 - 5339 [edestruct~H~as~(B',~(EQ,~R)).] 0. secs (0.u,0.s) -Chars 5340 - 5359 [rewrite~<-~EQ~in~R.] 0. secs (0.u,0.s) -Chars 5368 - 5379 [assumption.] 0. secs (0.u,0.s) -Chars 5386 - 5387 [-] 0. secs (0.u,0.s) -Chars 5388 - 5397 [exists~x.] 0. secs (0.u,0.s) -Chars 5398 - 5404 [split.] 0. secs (0.u,0.s) -Chars 5405 - 5417 [reflexivity.] 0. secs (0.u,0.s) -Chars 5418 - 5429 [assumption.] 0. secs (0.u,0.s) -Chars 5434 - 5438 [Qed.] 0. secs (0.u,0.s) -Chars 5444 - 5489 [#[global]~Instance~CatIdR_rel~...] 0.011 secs (0.01u,0.s) -Chars 5494 - 5500 [Proof.] 0. secs (0.u,0.s) -Chars 5507 - 5604 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) -Chars 5611 - 5612 [-] 0. secs (0.u,0.s) -Chars 5613 - 5642 [edestruct~H~as~(B',~(R,~EQ)).] 0. secs (0.u,0.s) -Chars 5643 - 5659 [rewrite~EQ~in~R.] 0. secs (0.u,0.s) -Chars 5668 - 5679 [assumption.] 0. secs (0.u,0.s) -Chars 5686 - 5687 [-] 0. secs (0.u,0.s) -Chars 5688 - 5697 [exists~y.] 0. secs (0.u,0.s) -Chars 5698 - 5704 [split.] 0. secs (0.u,0.s) -Chars 5705 - 5716 [assumption.] 0. secs (0.u,0.s) -Chars 5717 - 5729 [reflexivity.] 0. secs (0.u,0.s) -Chars 5734 - 5738 [Qed.] 0. secs (0.u,0.s) -Chars 5744 - 5793 [#[global]~Instance~CatAssoc_re...] 0. secs (0.u,0.s) -Chars 5798 - 5804 [Proof.] 0. secs (0.u,0.s) -Chars 5811 - 5922 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) -Chars 5929 - 5930 [-] 0. secs (0.u,0.s) -Chars 5931 - 5980 [edestruct~H~as~(C,~((B,~(Rf,~R...] 0. secs (0.u,0.s) -Chars 5989 - 5998 [exists~B.] 0. secs (0.u,0.s) -Chars 5999 - 6022 [split;~[~assumption~|~~].] 0. secs (0.u,0.s) -Chars 6031 - 6040 [exists~C.] 0. secs (0.u,0.s) -Chars 6041 - 6059 [split;~assumption.] 0. secs (0.u,0.s) -Chars 6066 - 6067 [-] 0. secs (0.u,0.s) -Chars 6068 - 6117 [edestruct~H~as~(B,~(Rf,~(C,~(R...] 0. secs (0.u,0.s) -Chars 6126 - 6135 [exists~C.] 0. secs (0.u,0.s) -Chars 6136 - 6159 [split;~[~~|~assumption~].] 0. secs (0.u,0.s) -Chars 6168 - 6196 [exists~B;~split;~assumption.] 0. secs (0.u,0.s) -Chars 6201 - 6205 [Qed.] 0. secs (0.u,0.s) -Chars 6211 - 6364 [#[global]~Instance~ProperCat_r...] 0. secs (0.u,0.s) -Chars 6369 - 6375 [Proof.] 0. secs (0.u,0.s) -Chars 6382 - 6395 [intros~a~b~c.] 0. secs (0.u,0.s) -Chars 6402 - 6514 [constructor;~~unfold~subrelati...] 0. secs (0.u,0.s) -Chars 6521 - 6522 [-] 0. secs (0.u,0.s) -Chars 6523 - 6554 [edestruct~He~as~(B,~(Hx,~Hx0)).] 0. secs (0.u,0.s) -Chars 6563 - 6610 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) -Chars 6619 - 6634 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 6643 - 6652 [exists~B.] 0. secs (0.u,0.s) -Chars 6653 - 6659 [split.] 0. secs (0.u,0.s) -Chars 6660 - 6682 [specialize~(H~A~B~Hx).] 0. secs (0.u,0.s) -Chars 6683 - 6694 [assumption.] 0. secs (0.u,0.s) -Chars 6703 - 6727 [specialize~(H0~_~_~Hx0).] 0. secs (0.u,0.s) -Chars 6728 - 6739 [assumption.] 0. secs (0.u,0.s) -Chars 6746 - 6747 [-] 0. secs (0.u,0.s) -Chars 6748 - 6779 [edestruct~He~as~(B,~(Hy,~Hy0)).] 0. secs (0.u,0.s) -Chars 6788 - 6835 [unfold~eq2,~Eq2_rel,~eq_rel,~s...] 0. secs (0.u,0.s) -Chars 6844 - 6859 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 6868 - 6877 [exists~B.] 0. secs (0.u,0.s) -Chars 6878 - 6884 [split.] 0. secs (0.u,0.s) -Chars 6885 - 6908 [specialize~(H1~_~_~Hy).] 0. secs (0.u,0.s) -Chars 6909 - 6920 [assumption.] 0. secs (0.u,0.s) -Chars 6929 - 6953 [specialize~(H2~_~_~Hy0).] 0. secs (0.u,0.s) -Chars 6954 - 6965 [assumption.] 0. secs (0.u,0.s) -Chars 6970 - 6974 [Qed.] 0. secs (0.u,0.s) -Chars 6980 - 7030 [#[global]~Instance~Category_re...] 0. secs (0.u,0.s) -Chars 7035 - 7041 [Proof.] 0. secs (0.u,0.s) -Chars 7048 - 7079 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 7084 - 7088 [Qed.] 0. secs (0.u,0.s) -Chars 7092 - 7108 [End~CategoryRel.] 0. secs (0.u,0.s) -Chars 7112 - 7177 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 7180 - 7186 [Proof.] 0. secs (0.u,0.s) -Chars 7191 - 7208 [split;~intros~[].] 0. secs (0.u,0.s) -Chars 7211 - 7215 [Qed.] 0. secs (0.u,0.s) -Chars 7219 - 7240 [Section~CoproductRel.] 0. secs (0.u,0.s) -Chars 7246 - 7298 [#[global]~Instance~CaseInl_rel...] 0. secs (0.u,0.s) -Chars 7303 - 7309 [Proof.] 0. secs (0.u,0.s) -Chars 7316 - 7322 [split.] 0. secs (0.u,0.s) -Chars 7329 - 7384 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) -Chars 7391 - 7404 [intros~x~?~?.] 0. secs (0.u,0.s) -Chars 7411 - 7452 [exists~(inl~x);~split;~auto;~r...] 0. secs (0.u,0.s) -Chars 7457 - 7461 [Qed.] 0. secs (0.u,0.s) -Chars 7467 - 7519 [#[global]~Instance~CaseInr_rel...] 0. secs (0.u,0.s) -Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) -Chars 7537 - 7543 [split.] 0. secs (0.u,0.s) -Chars 7550 - 7605 [intros~?~?~[[]~[H1~H2]];~inver...] 0. secs (0.u,0.s) -Chars 7612 - 7625 [intros~x~?~?.] 0. secs (0.u,0.s) -Chars 7632 - 7673 [exists~(inr~x);~split;~auto;~r...] 0. secs (0.u,0.s) -Chars 7678 - 7682 [Qed.] 0. secs (0.u,0.s) -Chars 7688 - 7752 [#[global]~Instance~CaseUnivers...] 0. secs (0.u,0.s) -Chars 7757 - 7763 [Proof.] 0. secs (0.u,0.s) -Chars 7770 - 7805 [intros~a~b~c~R~S~T~[TR~RT]~[TS...] 0. secs (0.u,0.s) -Chars 7812 - 7818 [split.] 0. secs (0.u,0.s) -Chars 7825 - 7903 [intros~[]~?~?;~cbn;~[~apply~TR...] 0. secs (0.u,0.s) -Chars 7910 - 8026 [intros~[]~?~HR;~[~apply~RT~in~...] 0. secs (0.u,0.s) -Chars 8031 - 8035 [Qed.] 0. secs (0.u,0.s) -Chars 8041 - 8148 [#[global]~Instance~Proper_Case...] 0. secs (0.u,0.s) -Chars 8153 - 8159 [Proof.] 0. secs (0.u,0.s) -Chars 8166 - 8294 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) -Chars 8299 - 8303 [Qed.] 0. secs (0.u,0.s) -Chars 8309 - 8365 [#[global]~Instance~Coproduct_r...] 0. secs (0.u,0.s) -Chars 8370 - 8376 [Proof.] 0. secs (0.u,0.s) -Chars 8383 - 8414 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 8419 - 8423 [Qed.] 0. secs (0.u,0.s) -Chars 8427 - 8444 [End~CoproductRel.] 0. secs (0.u,0.s) -Chars 8448 - 8467 [Section~ProductRel.] 0. secs (0.u,0.s) -Chars 8473 - 8525 [#[global]~Instance~PairFst_rel...] 0. secs (0.u,0.s) -Chars 8530 - 8536 [Proof.] 0. secs (0.u,0.s) -Chars 8543 - 8549 [split.] 0. secs (0.u,0.s) -Chars 8556 - 8557 [-] 0. secs (0.u,0.s) -Chars 8558 - 8610 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) -Chars 8617 - 8618 [-] 0. secs (0.u,0.s) -Chars 8619 - 8632 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 8641 - 8667 [exists~(inl~y);~compute;~auto.] 0. secs (0.u,0.s) -Chars 8672 - 8676 [Qed.] 0. secs (0.u,0.s) -Chars 8682 - 8734 [#[global]~Instance~PairSnd_rel...] 0. secs (0.u,0.s) -Chars 8739 - 8745 [Proof.] 0. secs (0.u,0.s) -Chars 8752 - 8758 [split.] 0. secs (0.u,0.s) -Chars 8765 - 8766 [-] 0. secs (0.u,0.s) -Chars 8767 - 8819 [intros~?~?~([],~(?,~EQ));~inve...] 0. secs (0.u,0.s) -Chars 8826 - 8827 [-] 0. secs (0.u,0.s) -Chars 8828 - 8841 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 8850 - 8876 [exists~(inr~y);~compute;~auto.] 0. secs (0.u,0.s) -Chars 8881 - 8885 [Qed.] 0. secs (0.u,0.s) -Chars 8891 - 8955 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) -Chars 8960 - 8966 [Proof.] 0. secs (0.u,0.s) -Chars 8973 - 9020 [intros~?~?~?~R~S~RS~[RSR~RRS]~...] 0. secs (0.u,0.s) -Chars 9027 - 9028 [-] 0. secs (0.u,0.s) -Chars 9029 - 9033 [compute.] 0. secs (0.u,0.s) -Chars 9034 - 9129 [intros~?~[]~?;~[~apply~RSR~|~a...] 0. secs (0.u,0.s) -Chars 9136 - 9137 [-] 0. secs (0.u,0.s) -Chars 9138 - 9142 [compute.] 0. secs (0.u,0.s) -Chars 9143 - 9265 [intros~?~[]~EQ;~[~apply~RRS~in...] 0.001 secs (0.001u,0.s) -Chars 9270 - 9274 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9280 - 9387 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) -Chars 9392 - 9398 [Proof.] 0. secs (0.u,0.s) -Chars 9405 - 9449 [intros~?~?~?~R~S~[RS~SR]~T~U~[...] 0. secs (0.u,0.s) -Chars 9456 - 9504 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) -Chars 9511 - 9559 [compute;~intros~?~[]~?;~[~appl...] 0. secs (0.u,0.s) -Chars 9564 - 9568 [Qed.] 0. secs (0.u,0.s) -Chars 9574 - 9626 [#[global]~Instance~Product_rel...] 0. secs (0.u,0.s) -Chars 9631 - 9637 [Proof.] 0. secs (0.u,0.s) -Chars 9644 - 9675 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 9680 - 9684 [Qed.] 0. secs (0.u,0.s) -Chars 9688 - 9703 [End~ProductRel.] 0. secs (0.u,0.s) -Chars 9707 - 9725 [Section~DaggerRel.] 0. secs (0.u,0.s) -Chars 9731 - 9797 [#[global]~Instance~DaggerInvol...] 0.022 secs (0.022u,0.s) -Chars 9802 - 9808 [Proof.] 0. secs (0.u,0.s) -Chars 9815 - 9844 [split;~intros~?~?~H;~apply~H.] 0. secs (0.u,0.s) -Chars 9849 - 9853 [Qed.] 0. secs (0.u,0.s) -Chars 9859 - 9890 [#[local]~Existing~Instance~Eq2...] 0. secs (0.u,0.s) -Chars 9895 - 9925 [#[local]~Existing~Instance~Id_Op.] 0. secs (0.u,0.s) -Chars 9930 - 9961 [#[local]~Existing~Instance~Cat...] 0. secs (0.u,0.s) -Chars 9967 - 10055 [#[global]~Instance~DaggerFunct...] 0. secs (0.u,0.s) -Chars 10060 - 10066 [Proof.] 0. secs (0.u,0.s) -Chars 10073 - 10085 [constructor.] 0. secs (0.u,0.s) -Chars 10092 - 10093 [-] 0. secs (0.u,0.s) -Chars 10094 - 10147 [split;~intros~?~?~H;~inversion...] 0. secs (0.u,0.s) -Chars 10154 - 10155 [-] 0. secs (0.u,0.s) -Chars 10156 - 10202 [split;~intros~?~?~(?,~(?,~?));...] 0. secs (0.u,0.s) -Chars 10209 - 10210 [-] 0. secs (0.u,0.s) -Chars 10211 - 10240 [intros~a~b~x~y~[INCL1~INCL2].] 0. secs (0.u,0.s) -Chars 10249 - 10307 [split;~intros~?~?~H;~[~apply~I...] 0. secs (0.u,0.s) -Chars 10312 - 10316 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10322 - 10376 [#[global]~Instance~DaggerLaws_...] 0. secs (0.u,0.s) -Chars 10381 - 10387 [Proof.] 0. secs (0.u,0.s) -Chars 10394 - 10425 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 10430 - 10434 [Qed.] 0. secs (0.u,0.s) -Chars 10438 - 10452 [End~DaggerRel.] 0. secs (0.u,0.s) -Chars 10456 - 10478 [Section~BifunctorProd.] 0. secs (0.u,0.s) -Chars 10484 - 10542 [#[global]~Instance~BimapId_pro...] 0. secs (0.u,0.s) -Chars 10547 - 10553 [Proof.] 0. secs (0.u,0.s) -Chars 10560 - 10566 [split.] 0. secs (0.u,0.s) -Chars 10573 - 10574 [-] 0. secs (0.u,0.s) -Chars 10575 - 10606 [compute;~intros~?~?~?;~subst;~...] 0. secs (0.u,0.s) -Chars 10615 - 10629 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 10638 - 10650 [compute;~intros.] 0. secs (0.u,0.s) -Chars 10651 - 10685 [destruct~H;~cbn~in~*;~subst;~a...] 0. secs (0.u,0.s) -Chars 10692 - 10693 [-] 0. secs (0.u,0.s) -Chars 10694 - 10698 [compute.] 0. secs (0.u,0.s) -Chars 10699 - 10720 [intros~[?~?]~[?~?]~H.] 0. secs (0.u,0.s) -Chars 10721 - 10733 [inversion~H.] 0. secs (0.u,0.s) -Chars 10734 - 10740 [subst.] 0. secs (0.u,0.s) -Chars 10741 - 10760 [repeat~constructor.] 0. secs (0.u,0.s) -Chars 10765 - 10769 [Qed.] 0. secs (0.u,0.s) -Chars 10775 - 10835 [#[global]~Instance~BimapCat_pr...] 0. secs (0.u,0.s) -Chars 10840 - 10846 [Proof.] 0. secs (0.u,0.s) -Chars 10853 - 10859 [split.] 0. secs (0.u,0.s) -Chars 10866 - 10867 [-] 0. secs (0.u,0.s) -Chars 10868 - 10901 [compute;~intros~[]~[]~([],~(H1...] 0. secs (0.u,0.s) -Chars 10910 - 10934 [inv~H1;~inv~H2;~eauto~~6.] 0.001 secs (0.001u,0.s) -Chars 10941 - 10942 [-] 0. secs (0.u,0.s) -Chars 10943 - 10963 [compute;~intros~[]~[]~H.] 0. secs (0.u,0.s) -Chars 10964 - 11004 [destruct~H~as~[(?,~(?,~?))~(?,...] 0. secs (0.u,0.s) -Chars 11013 - 11045 [cbn~in~*;~eexists~(_,~_);~eauto.] 0. secs (0.u,0.s) -Chars 11050 - 11054 [Qed.] 0.001 secs (0.001u,0.s) -Chars 11060 - 11122 [#[global]~Instance~Bifunctor_p...] 0. secs (0.u,0.s) -Chars 11127 - 11133 [Proof.] 0. secs (0.u,0.s) -Chars 11140 - 11175 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) -Chars 11180 - 11184 [Qed.] 0. secs (0.u,0.s) -Chars 11190 - 11306 [#[global]~Instance~Iso_Assoc_p...] 0. secs (0.u,0.s) -Chars 11311 - 11317 [Proof.] 0. secs (0.u,0.s) -Chars 11324 - 11330 [split.] 0. secs (0.u,0.s) -Chars 11337 - 11338 [-] 0. secs (0.u,0.s) -Chars 11339 - 11350 [compute;~split.] 0. secs (0.u,0.s) -Chars 11359 - 11360 [+] 0. secs (0.u,0.s) -Chars 11361 - 11397 [intros~?~?~?;~repeat~destructn...] 0. secs (0.u,0.s) -Chars 11408 - 11479 [destructn~ex;~repeat~destructn...] 0. secs (0.u,0.s) -Chars 11488 - 11489 [+] 0. secs (0.u,0.s) -Chars 11490 - 11536 [intros~((?,~?),~?)~((x,~y),~z)...] 0.001 secs (0.001u,0.s) -Chars 11547 - 11575 [exists~(x,~(y,~z));~intuition.] 0. secs (0.u,0.s) -Chars 11582 - 11583 [-] 0. secs (0.u,0.s) -Chars 11584 - 11595 [compute;~split.] 0. secs (0.u,0.s) -Chars 11604 - 11605 [+] 0. secs (0.u,0.s) -Chars 11606 - 11679 [intros~?~?~?;~destructn~ex;~re...] 0.003 secs (0.003u,0.s) -Chars 11688 - 11689 [+] 0. secs (0.u,0.s) -Chars 11690 - 11737 [intros~?~(x,~(y,~z))~->;~repea...] 0. secs (0.u,0.s) -Chars 11748 - 11774 [exists~(x,~y,~z);~intuition.] 0. secs (0.u,0.s) -Chars 11779 - 11783 [Qed.] 0.006 secs (0.005u,0.s) -Chars 11789 - 11897 [#[global]~Instance~Iso_UnitL_p...] 0. secs (0.u,0.s) -Chars 11902 - 11908 [Proof.] 0. secs (0.u,0.s) -Chars 11915 - 12044 [split;~compute;~split;~intros;...] 0.002 secs (0.001u,0.s) -Chars 12051 - 12070 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 12077 - 12097 [exists~(tt,~y);~auto.] 0. secs (0.u,0.s) -Chars 12102 - 12106 [Qed.] 0.001 secs (0.u,0.s) -Chars 12112 - 12220 [#[global]~Instance~Iso_UnitR_p...] 0. secs (0.u,0.s) -Chars 12225 - 12231 [Proof.] 0. secs (0.u,0.s) -Chars 12238 - 12367 [split;~compute;~split;~intros;...] 0.002 secs (0.001u,0.s) -Chars 12374 - 12393 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 12400 - 12420 [exists~(y,~tt);~auto.] 0. secs (0.u,0.s) -Chars 12425 - 12429 [Qed.] 0.001 secs (0.u,0.s) -Chars 12435 - 12508 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) -Chars 12513 - 12519 [Proof.] 0. secs (0.u,0.s) -Chars 12526 - 12696 [split;~compute;~intros;~~repea...] 0.002 secs (0.002u,0.s) -Chars 12703 - 12704 [-] 0. secs (0.u,0.s) -Chars 12705 - 12737 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 12744 - 12745 [-] 0. secs (0.u,0.s) -Chars 12746 - 12810 [eexists~(_,~_);~constructor;~[...] 0. secs (0.u,0.s) -Chars 12815 - 12819 [Qed.] 0.001 secs (0.001u,0.s) -Chars 12825 - 12900 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) -Chars 12905 - 12911 [Proof.] 0. secs (0.u,0.s) -Chars 12918 - 13076 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) -Chars 13083 - 13115 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 13122 - 13159 [exists~(tt,~x);~intuition~subs...] 0. secs (0.u,0.s) -Chars 13164 - 13168 [Qed.] 0.001 secs (0.001u,0.s) -Chars 13174 - 13243 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) -Chars 13248 - 13254 [Proof.] 0. secs (0.u,0.s) -Chars 13261 - 13293 [split;~compute;~intros~[[?~?]~...] 0.001 secs (0.001u,0.s) -Chars 13300 - 13301 [-] 0. secs (0.u,0.s) -Chars 13302 - 13325 [intros~[[?~[]]~[?~[]]].] 0. secs (0.u,0.s) -Chars 13326 - 13336 [intuition.] 0.001 secs (0.001u,0.s) -Chars 13337 - 13353 [cbn~in~*;~subst.] 0. secs (0.u,0.s) -Chars 13354 - 13377 [constructor;~cbn;~auto.] 0. secs (0.u,0.s) -Chars 13384 - 13385 [-] 0. secs (0.u,0.s) -Chars 13386 - 13417 [intros~[];~eexists~(_,~(u,~_)).] 0. secs (0.u,0.s) -Chars 13418 - 13428 [intuition.] 0. secs (0.u,0.s) -Chars 13433 - 13437 [Qed.] 0.002 secs (0.002u,0.s) -Chars 13439 - 13884 [Ltac~~decomp~:=~~~repeat~~~~la...] 0. secs (0.u,0.s) -Chars 13890 - 13958 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) -Chars 13963 - 13969 [Proof.] 0. secs (0.u,0.s) -Chars 13976 - 13995 [split;~compute;~decomp.] 0.011 secs (0.011u,0.s) -Chars 14002 - 14003 [-] 0. secs (0.u,0.s) -Chars 14004 - 14027 [eexists~(_,~_,~(_,~_)).] 0. secs (0.u,0.s) -Chars 14028 - 14050 [firstorder~~congruence.] 0. secs (0.u,0.s) -Chars 14057 - 14058 [-] 0. secs (0.u,0.s) -Chars 14059 - 14094 [eexists~(_,~(_,~_,~_));~firsto...] 0.001 secs (0.001u,0.s) -Chars 14095 - 14118 [eexists~(_,~(_,~_),~_).] 0. secs (0.u,0.s) -Chars 14119 - 14148 [firstorder~~(cbn;~congruence).] 0.001 secs (0.001u,0.s) -Chars 14153 - 14157 [Qed.] 0.014 secs (0.014u,0.s) -Chars 14163 - 14228 [#[global]~Instance~Monoidal_pr...] 0. secs (0.u,0.s) -Chars 14233 - 14239 [Proof.] 0. secs (0.u,0.s) -Chars 14246 - 14277 [constructor;~typeclasses~eauto.] 0.001 secs (0.001u,0.s) -Chars 14282 - 14286 [Qed.] 0. secs (0.u,0.s) -Chars 14290 - 14308 [End~BifunctorProd.] 0. secs (0.u,0.s) -Chars 14312 - 14333 [Section~BifunctorSum.] 0. secs (0.u,0.s) -Chars 14339 - 14395 [#[global]~Instance~BimapId_sum...] 0. secs (0.u,0.s) -Chars 14400 - 14406 [Proof.] 0. secs (0.u,0.s) -Chars 14413 - 14419 [split.] 0. secs (0.u,0.s) -Chars 14426 - 14430 [red.] 0. secs (0.u,0.s) -Chars 14431 - 14444 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 14445 - 14461 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 14468 - 14527 [destruct~x,~y;~subst;~inversio...] 0.002 secs (0.002u,0.s) -Chars 14534 - 14580 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) -Chars 14587 - 14633 [inversion~H;~inversion~H2;~sub...] 0. secs (0.u,0.s) -Chars 14640 - 14644 [red.] 0. secs (0.u,0.s) -Chars 14645 - 14658 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 14659 - 14675 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 14682 - 14688 [subst.] 0. secs (0.u,0.s) -Chars 14689 - 14700 [repeat~red.] 0. secs (0.u,0.s) -Chars 14701 - 14739 [destruct~y;~econstructor;~refl...] 0. secs (0.u,0.s) -Chars 14744 - 14748 [Qed.] 0.002 secs (0.002u,0.s) -Chars 14754 - 14812 [#[global]~Instance~BimapCat_su...] 0. secs (0.u,0.s) -Chars 14817 - 14823 [Proof.] 0. secs (0.u,0.s) -Chars 14830 - 14836 [split.] 0. secs (0.u,0.s) -Chars 14843 - 14847 [compute.] 0. secs (0.u,0.s) -Chars 14848 - 14986 [intros;~destruct~x,~y;~destruc...] 0.006 secs (0.006u,0.s) -Chars 14993 - 15006 [repeat~intro.] 0. secs (0.u,0.s) -Chars 15007 - 15073 [inversion~H;~inversion~H0;~inv...] 0.002 secs (0.002u,0.s) -Chars 15081 - 15097 [exists~(inl~x0).] 0. secs (0.u,0.s) -Chars 15098 - 15125 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 15132 - 15148 [exists~(inr~x0).] 0. secs (0.u,0.s) -Chars 15149 - 15176 [split;~econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 15181 - 15185 [Qed.] 0.006 secs (0.006u,0.s) -Chars 15191 - 15251 [#[global]~Instance~Bifunctor_s...] 0. secs (0.u,0.s) -Chars 15256 - 15262 [Proof.] 0. secs (0.u,0.s) -Chars 15269 - 15304 [constructor;~try~typeclasses~e...] 0.001 secs (0.001u,0.s) -Chars 15309 - 15313 [Qed.] 0. secs (0.u,0.s) -Chars 15319 - 15433 [#[global]~Instance~Iso_Assoc_s...] 0. secs (0.u,0.s) -Chars 15438 - 15444 [Proof.] 0. secs (0.u,0.s) -Chars 15451 - 15457 [split.] 0. secs (0.u,0.s) -Chars 15464 - 15465 [-] 0. secs (0.u,0.s) -Chars 15466 - 15647 [compute;~split;~intros;~~repea...] 0.012 secs (0.011u,0.s) -Chars 15656 - 15683 [exists~(inl~a0);~intuition.] 0. secs (0.u,0.s) -Chars 15692 - 15725 [exists~(inr~(inl~b0));~intuition.] 0. secs (0.u,0.s) -Chars 15734 - 15767 [exists~(inr~(inr~c0));~intuition.] 0. secs (0.u,0.s) -Chars 15774 - 15775 [-] 0. secs (0.u,0.s) -Chars 15776 - 15947 [compute;~split;~intros;~~repea...] 0.01 secs (0.01u,0.s) -Chars 15956 - 15989 [exists~(inl~(inl~a0));~intuition.] 0. secs (0.u,0.s) -Chars 15998 - 16031 [exists~(inl~(inr~b0));~intuition.] 0. secs (0.u,0.s) -Chars 16040 - 16067 [exists~(inr~c0);~intuition.] 0. secs (0.u,0.s) -Chars 16072 - 16076 [Qed.] 0.01 secs (0.01u,0.s) -Chars 16082 - 16188 [#[global]~Instance~Iso_UnitL_s...] 0. secs (0.u,0.s) -Chars 16193 - 16199 [Proof.] 0. secs (0.u,0.s) -Chars 16206 - 16334 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) -Chars 16341 - 16360 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 16367 - 16388 [exists~(inr~y);~auto.] 0. secs (0.u,0.s) -Chars 16393 - 16397 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16403 - 16509 [#[global]~Instance~Iso_UnitR_s...] 0. secs (0.u,0.s) -Chars 16514 - 16520 [Proof.] 0. secs (0.u,0.s) -Chars 16527 - 16655 [split;~compute;~split;~intros;...] 0.002 secs (0.002u,0.s) -Chars 16662 - 16681 [eexists;~intuition.] 0. secs (0.u,0.s) -Chars 16688 - 16709 [exists~(inl~y);~auto.] 0. secs (0.u,0.s) -Chars 16714 - 16718 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16724 - 16795 [#[global]~Instance~UnitLNatura...] 0. secs (0.u,0.s) -Chars 16800 - 16806 [Proof.] 0. secs (0.u,0.s) -Chars 16813 - 16994 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) -Chars 17001 - 17033 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 17040 - 17072 [eexists;~intuition~subst;~eauto.] 0.001 secs (0.001u,0.s) -Chars 17077 - 17081 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17087 - 17160 [#[global]~Instance~UnitL'Natur...] 0. secs (0.u,0.s) -Chars 17165 - 17171 [Proof.] 0. secs (0.u,0.s) -Chars 17178 - 17359 [split;~compute;~intros;~~repea...] 0.003 secs (0.003u,0.s) -Chars 17366 - 17398 [eexists;~intuition~subst;~eauto.] 0. secs (0.u,0.s) -Chars 17405 - 17443 [exists~(inr~x);~intuition~subs...] 0. secs (0.u,0.s) -Chars 17448 - 17452 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17458 - 17525 [#[global]~Instance~AssocRUnit_...] 0. secs (0.u,0.s) -Chars 17530 - 17536 [Proof.] 0. secs (0.u,0.s) -Chars 17543 - 17562 [split;~compute;~intros.] 0. secs (0.u,0.s) -Chars 17569 - 17580 [destruct~H.] 0. secs (0.u,0.s) -Chars 17587 - 17732 [destruct~x;~try~destruct~s;~tr...] 0.006 secs (0.006u,0.s) -Chars 17739 - 17783 [destruct~s;~try~contradiction;...] 0. secs (0.u,0.s) -Chars 17790 - 17859 [inversion~H;~subst;~eauto;~try...] 0.004 secs (0.004u,0.s) -Chars 17866 - 17872 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 17873 - 17896 [exists~(inl~a2);~eauto.] 0. secs (0.u,0.s) -Chars 17904 - 17940 [inv~H;~exists~(inr~(inr~b2));~...] 0.001 secs (0.001u,0.s) -Chars 17946 - 17950 [Qed.] 0.008 secs (0.008u,0.s) -Chars 17956 - 18022 [#[global]~Instance~AssocRAssoc...] 0. secs (0.u,0.s) -Chars 18027 - 18033 [Proof.] 0. secs (0.u,0.s) -Chars 18040 - 18221 [split;~compute;~intros;~~repea...] 0.048 secs (0.048u,0.s) -Chars 18228 - 18229 [-] 0. secs (0.u,0.s) -Chars 18230 - 18269 [exists~(inl~(inl~a2));~intuiti...] 0. secs (0.u,0.s) -Chars 18276 - 18277 [-] 0. secs (0.u,0.s) -Chars 18278 - 18317 [eexists~(inl~(inr~_));~intuiti...] 0. secs (0.u,0.s) -Chars 18324 - 18325 [-] 0. secs (0.u,0.s) -Chars 18326 - 18365 [eexists~(inr~(inl~_));~intuiti...] 0. secs (0.u,0.s) -Chars 18372 - 18373 [-] 0. secs (0.u,0.s) -Chars 18374 - 18413 [eexists~(inr~(inr~_));~intuiti...] 0. secs (0.u,0.s) -Chars 18420 - 18421 [-] 0. secs (0.u,0.s) -Chars 18422 - 18455 [eexists~(inl~_);~intuition;~auto.] 0. secs (0.u,0.s) -Chars 18464 - 18503 [exists~(inl~(inl~a1));~intuiti...] 0. secs (0.u,0.s) -Chars 18510 - 18511 [-] 0. secs (0.u,0.s) -Chars 18512 - 18571 [exists~(inr~(inl~(inl~b1)));~i...] 0.001 secs (0.001u,0.s) -Chars 18580 - 18586 [split.] 0. secs (0.u,0.s) -Chars 18587 - 18600 [econstructor.] 0. secs (0.u,0.s) -Chars 18601 - 18610 [Unshelve.] 0. secs (0.u,0.s) -Chars 18611 - 18638 [3:~exact~(inr~(inl~b1)).] 0. secs (0.u,0.s) -Chars 18639 - 18655 [intuition;~auto.] 0. secs (0.u,0.s) -Chars 18664 - 18674 [intuition.] 0.002 secs (0.002u,0.s) -Chars 18681 - 18682 [-] 0. secs (0.u,0.s) -Chars 18683 - 18742 [exists~(inr~(inl~(inr~c0)));~i...] 0.001 secs (0.001u,0.s) -Chars 18751 - 18757 [split.] 0. secs (0.u,0.s) -Chars 18758 - 18767 [Unshelve.] 0. secs (0.u,0.s) -Chars 18768 - 18781 [econstructor.] 0. secs (0.u,0.s) -Chars 18782 - 18791 [Unshelve.] 0. secs (0.u,0.s) -Chars 18800 - 18828 [3:~refine~(inr~(inr~c0)).] 0. secs (0.u,0.s) -Chars 18829 - 18859 [intuition;~econstructor;~auto.] 0. secs (0.u,0.s) -Chars 18868 - 18878 [intuition.] 0. secs (0.u,0.s) -Chars 18885 - 18886 [-] 0. secs (0.u,0.s) -Chars 18887 - 18940 [exists~(inr~(inr~d0));~intuiti...] 0.001 secs (0.001u,0.s) -Chars 18946 - 18950 [Qed.] 0.028 secs (0.028u,0.s) -Chars 18956 - 19019 [#[global]~Instance~Monoidal_su...] 0. secs (0.u,0.s) -Chars 19024 - 19030 [Proof.] 0. secs (0.u,0.s) -Chars 19037 - 19068 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 19073 - 19077 [Qed.] 0. secs (0.u,0.s) -Chars 19081 - 19098 [End~BifunctorSum.] 0. secs (0.u,0.s) -Chars 19100 - 19110 [End~Facts.] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategorySub.v.timing b/theories/Basics/CategorySub.v.timing deleted file mode 100644 index b1eb7c7c..00000000 --- a/theories/Basics/CategorySub.v.timing +++ /dev/null @@ -1,128 +0,0 @@ -Chars 125 - 179 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 181 - 242 [From~ITree~Require~Import~Cate...] 0.003 secs (0.002u,0.s) -Chars 244 - 264 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 265 - 292 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 309 - 335 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) -Chars 337 - 357 [Section~Subcategory.] 0. secs (0.u,0.s) -Chars 569 - 659 [Context~{obj~:~Type}~(C~:~obj~...] 0. secs (0.u,0.s) -Chars 661 - 721 [Definition~sub~(a~b~:~sobj)~:~...] 0. secs (0.u,0.s) -Chars 723 - 795 [Definition~subm~(a~b~:~sobj)~(...] 0. secs (0.u,0.s) -Chars 796 - 870 [Definition~unsubm~(a~b~:~sobj)...] 0. secs (0.u,0.s) -Chars 872 - 933 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 935 - 998 [#[global]~Instance~Eq2_sub~:~(...] 0. secs (0.u,0.s) -Chars 1000 - 1062 [#[global]~Instance~Id_sub~:~(I...] 0. secs (0.u,0.s) -Chars 1064 - 1129 [#[global]~Instance~Cat_sub~:~(...] 0. secs (0.u,0.s) -Chars 1131 - 1199 [Context~(bif~:~obj~->~obj~->~o...] 0. secs (0.u,0.s) -Chars 1201 - 1299 [Class~ToBifunctor~:~Type~:=~~~...] 0. secs (0.u,0.s) -Chars 1301 - 1403 [Class~FromBifunctor~:~Type~:=~...] 0. secs (0.u,0.s) -Chars 1405 - 1430 [Arguments~to_bif~{_~a~b}.] 0. secs (0.u,0.s) -Chars 1431 - 1458 [Arguments~from_bif~{_~a~b}.] 0. secs (0.u,0.s) -Chars 1460 - 1591 [Context~{ToBif~:~ToBifunctor}~...] 0. secs (0.u,0.s) -Chars 1593 - 1607 [Section~Bimap.] 0. secs (0.u,0.s) -Chars 1609 - 1643 [Context~{Bimap_C~:~Bimap~C~bif}.] 0. secs (0.u,0.s) -Chars 1645 - 1750 [Definition~Bimap_sub~:~Bimap~s...] 0. secs (0.u,0.s) -Chars 1752 - 1762 [End~Bimap.] 0. secs (0.u,0.s) -Chars 1764 - 1840 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 1842 - 1935 [#[global]~Instance~Case_sub~:~...] 0. secs (0.u,0.s) -Chars 1937 - 2019 [#[global]~Instance~Inl_sub~:~(...] 0. secs (0.u,0.s) -Chars 2021 - 2103 [#[global]~Instance~Inr_sub~:~(...] 0. secs (0.u,0.s) -Chars 2105 - 2137 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) -Chars 2139 - 2236 [#[global]~Instance~Iter_sub~:~...] 0. secs (0.u,0.s) -Chars 2238 - 2254 [Section~CatLaws.] 0. secs (0.u,0.s) -Chars 2256 - 2349 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) -Chars 2351 - 2441 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 2443 - 2487 [#[global]~Instance~Category_su...] 0. secs (0.u,0.s) -Chars 2488 - 2494 [Proof.] 0. secs (0.u,0.s) -Chars 2497 - 2542 [destruct~Category_C;~construct...] 0.002 secs (0.001u,0.s) -Chars 2545 - 2554 [do~2~red.] 0. secs (0.u,0.s) -Chars 2555 - 2562 [intros.] 0. secs (0.u,0.s) -Chars 2563 - 2597 [eapply~category_proper_cat;~ea...] 0. secs (0.u,0.s) -Chars 2598 - 2602 [Qed.] 0. secs (0.u,0.s) -Chars 2604 - 2672 [#[global]~Instance~Proper_subm...] 0. secs (0.u,0.s) -Chars 2673 - 2679 [Proof.] 0. secs (0.u,0.s) -Chars 2680 - 2690 [hnf;~auto.] 0. secs (0.u,0.s) -Chars 2691 - 2695 [Qed.] 0. secs (0.u,0.s) -Chars 2697 - 2767 [#[global]~Instance~Proper_unsu...] 0. secs (0.u,0.s) -Chars 2768 - 2774 [Proof.] 0. secs (0.u,0.s) -Chars 2775 - 2785 [hnf;~auto.] 0. secs (0.u,0.s) -Chars 2786 - 2790 [Qed.] 0. secs (0.u,0.s) -Chars 2792 - 2852 [#[global]~Instance~Functor_uns...] 0. secs (0.u,0.s) -Chars 2853 - 2859 [Proof.] 0. secs (0.u,0.s) -Chars 2862 - 2907 [constructor;~reflexivity~+~typ...] 0.001 secs (0.u,0.s) -Chars 2908 - 2912 [Qed.] 0. secs (0.u,0.s) -Chars 2914 - 2926 [End~CatLaws.] 0. secs (0.u,0.s) -Chars 2928 - 3800 [Ltac~~unfold_sub~:=~~~repeat~~...] 0. secs (0.u,0.s) -Chars 3803 - 3988 [Ltac~~simpl_bif~:=~~~try~rewri...] 0. secs (0.u,0.s) -Chars 3990 - 4012 [Section~CoproductLaws.] 0. secs (0.u,0.s) -Chars 4014 - 4141 [Context~{Equivalence_C~:~foral...] 0. secs (0.u,0.s) -Chars 4143 - 4194 [#[global]~Instance~Coproduct_s...] 0. secs (0.u,0.s) -Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) -Chars 4204 - 4251 [destruct~Coproduct_C;~construc...] 0. secs (0.u,0.s) -Chars 4254 - 4287 [all:~unfold~Morphisms.respectful.] 0. secs (0.u,0.s) -Chars 4290 - 4306 [all:~unfold_sub.] 0.01 secs (0.009u,0.s) -Chars 4309 - 4337 [all:~try~rewrite~!cat_assoc.] 0.003 secs (0.003u,0.s) -Chars 4340 - 4366 [all:~try~simpl_bif;~eauto.] 0.026 secs (0.025u,0.s) -Chars 4369 - 4370 [-] 0. secs (0.u,0.s) -Chars 4371 - 4419 [enough~(from_bif~>>>~fg~⩯~case...] 0. secs (0.u,0.s) -Chars 4424 - 4425 [{] 0. secs (0.u,0.s) -Chars 4426 - 4480 [rewrite~<-~H1,~<-~cat_assoc,~(...] 0.003 secs (0.003u,0.s) -Chars 4481 - 4493 [reflexivity.] 0. secs (0.u,0.s) -Chars 4494 - 4495 [}] 0. secs (0.u,0.s) -Chars 4500 - 4550 [apply~case_universal;~rewrite~...] 0.002 secs (0.002u,0.s) -Chars 4553 - 4554 [-] 0. secs (0.u,0.s) -Chars 4555 - 4562 [intros.] 0. secs (0.u,0.s) -Chars 4563 - 4586 [unfold~case_,~Case_sub.] 0. secs (0.u,0.s) -Chars 4591 - 4617 [apply~category_proper_cat.] 0. secs (0.u,0.s) -Chars 4618 - 4630 [reflexivity.] 0. secs (0.u,0.s) -Chars 4635 - 4671 [eapply~coproduct_proper_case;~...] 0. secs (0.u,0.s) -Chars 4672 - 4676 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4678 - 4828 [Lemma~bimap_sub_unfold~a~b~c~d...] 0.001 secs (0.001u,0.s) -Chars 4829 - 4835 [Proof.] 0. secs (0.u,0.s) -Chars 4838 - 4878 [unfold~bimap~at~1,~Bimap_Copro...] 0. secs (0.u,0.s) -Chars 4881 - 4892 [unfold_sub.] 0. secs (0.u,0.s) -Chars 4895 - 4918 [rewrite~<-~2!cat_assoc.] 0.007 secs (0.005u,0.001s) -Chars 4921 - 4941 [rewrite~<-~cat_case.] 0.002 secs (0.002u,0.s) -Chars 4942 - 4960 [rewrite~cat_assoc.] 0.001 secs (0.001u,0.s) -Chars 4963 - 4975 [reflexivity.] 0. secs (0.u,0.s) -Chars 4976 - 4980 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4982 - 5024 [Context~{Iterative_C~:~Iterati...] 0. secs (0.u,0.s) -Chars 5026 - 5077 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) -Chars 5078 - 5084 [Proof.] 0. secs (0.u,0.s) -Chars 5087 - 5112 [constructor;~red;~intros.] 0. secs (0.u,0.s) -Chars 5115 - 5160 [all:~unfold~Morphisms.respectf...] 0.006 secs (0.005u,0.001s) -Chars 5163 - 5164 [-] 0. secs (0.u,0.s) -Chars 5165 - 5201 [rewrite~iter_unfold,~cat_assoc...] 0.002 secs (0.002u,0.s) -Chars 5202 - 5214 [reflexivity.] 0. secs (0.u,0.s) -Chars 5217 - 5218 [-] 0. secs (0.u,0.s) -Chars 5219 - 5244 [rewrite~bimap_sub_unfold.] 0.004 secs (0.004u,0.s) -Chars 5249 - 5277 [rewrite~!(cat_assoc~to_bif).] 0.004 secs (0.004u,0.s) -Chars 5282 - 5316 [rewrite~<-~(cat_assoc~(C:=C)~f).] 0.002 secs (0.002u,0.s) -Chars 5321 - 5363 [rewrite~cat_assoc,~(cat_assoc~...] 0.004 secs (0.004u,0.s) -Chars 5368 - 5401 [rewrite~(semi_iso~_~_),~cat_id_r.] 0.006 secs (0.006u,0.s) -Chars 5406 - 5427 [rewrite~iter_natural.] 0.001 secs (0.001u,0.s) -Chars 5432 - 5444 [reflexivity.] 0. secs (0.u,0.s) -Chars 5447 - 5448 [-] 0. secs (0.u,0.s) -Chars 5449 - 5482 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.01 secs (0.01u,0.s) -Chars 5487 - 5519 [rewrite~!(cat_assoc~_~_~to_bif).] 0.009 secs (0.009u,0.s) -Chars 5524 - 5542 [rewrite~!cat_case.] 0.01 secs (0.01u,0.s) -Chars 5547 - 5607 [rewrite~!(cat_assoc~_~from_bif...] 0.035 secs (0.035u,0.s) -Chars 5612 - 5635 [rewrite~iter_dinatural.] 0.001 secs (0.001u,0.s) -Chars 5640 - 5652 [reflexivity.] 0. secs (0.u,0.s) -Chars 5655 - 5656 [-] 0. secs (0.u,0.s) -Chars 5657 - 5690 [rewrite~<-~!(cat_assoc~_~to_bif).] 0.004 secs (0.004u,0.s) -Chars 5695 - 5726 [rewrite~(cat_assoc~_~_~to_bif).] 0.002 secs (0.002u,0.s) -Chars 5731 - 5758 [rewrite~cat_case,~cat_id_l.] 0.007 secs (0.007u,0.s) -Chars 5763 - 5820 [rewrite~(cat_assoc~_~_~to_bif)...] 0.01 secs (0.01u,0.s) -Chars 5825 - 5863 [rewrite~iter_natural,~iter_cod...] 0.003 secs (0.003u,0.s) -Chars 5868 - 5934 [rewrite~(cat_assoc~_~(bimap~_~...] 0.012 secs (0.012u,0.s) -Chars 5939 - 5951 [reflexivity.] 0. secs (0.u,0.s) -Chars 5954 - 5955 [-] 0. secs (0.u,0.s) -Chars 5956 - 5986 [intros;~unfold~iter,~Iter_sub.] 0. secs (0.u,0.s) -Chars 5991 - 6059 [apply~iterative_proper_iter,~c...] 0. secs (0.u,0.s) -Chars 6060 - 6064 [Qed.] 0.012 secs (0.012u,0.s) -Chars 6066 - 6084 [End~CoproductLaws.] 0. secs (0.u,0.s) -Chars 6086 - 6102 [End~Subcategory.] 0.001 secs (0.001u,0.s) -Chars 6104 - 6142 [Arguments~subm~{obj~C~sobj~Emb...] 0. secs (0.u,0.s) -Chars 6143 - 6183 [Arguments~unsubm~{obj~C~sobj~E...] 0. secs (0.u,0.s) -Chars 6184 - 6221 [Arguments~to_bif~{_~C~_~_~_~_~...] 0. secs (0.u,0.s) -Chars 6222 - 6261 [Arguments~from_bif~{_~C~_~_~_~...] 0. secs (0.u,0.s) diff --git a/theories/Basics/CategoryTheory.v.timing b/theories/Basics/CategoryTheory.v.timing deleted file mode 100644 index 066cb77b..00000000 --- a/theories/Basics/CategoryTheory.v.timing +++ /dev/null @@ -1,241 +0,0 @@ -Chars 172 - 216 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 218 - 289 [From~ITree.Basics~Require~Impo...] 0. secs (0.u,0.s) -Chars 291 - 306 [Import~Carrier.] 0. secs (0.u,0.s) -Chars 307 - 327 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 328 - 349 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) -Chars 351 - 395 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) -Chars 434 - 450 [Section~CatLaws.] 0. secs (0.u,0.s) -Chars 452 - 487 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 488 - 540 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) -Chars 592 - 670 [Class~CatIdL~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) -Chars 672 - 750 [Class~CatIdR~:~Prop~:=~~~~~cat...] 0. secs (0.u,0.s) -Chars 752 - 885 [Class~CatAssoc~:~Prop~:=~~~~~c...] 0. secs (0.u,0.s) -Chars 887 - 1114 [Class~Category~:~Prop~:={~~~~~...] 0.001 secs (0.u,0.s) -Chars 1115 - 1161 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 1162 - 1208 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 1209 - 1256 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 1257 - 1305 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 1421 - 1540 [Class~InitialObject~(i~:~obj)~...] 0. secs (0.u,0.s) -Chars 1651 - 1772 [Class~TerminalObject~(t~:~obj)...] 0. secs (0.u,0.s) -Chars 1774 - 1786 [End~CatLaws.] 0. secs (0.u,0.s) -Chars 1788 - 1844 [Arguments~cat_id_l~{obj~C~Eq2C...] 0. secs (0.u,0.s) -Chars 1845 - 1901 [Arguments~cat_id_r~{obj~C~Eq2C...] 0. secs (0.u,0.s) -Chars 1902 - 1963 [Arguments~cat_assoc~{obj~C~Eq2...] 0. secs (0.u,0.s) -Chars 1964 - 2033 [Arguments~category_proper_cat~...] 0. secs (0.u,0.s) -Chars 2034 - 2104 [Arguments~initial_object~{obj~...] 0. secs (0.u,0.s) -Chars 2105 - 2178 [Arguments~terminal_object~{obj...] 0. secs (0.u,0.s) -Chars 2216 - 2258 [Notation~unique_initial~:=~ini...] 0. secs (0.u,0.s) -Chars 2297 - 2341 [Notation~unique_terminal~:=~te...] 0. secs (0.u,0.s) -Chars 2983 - 2999 [Section~SemiIso.] 0. secs (0.u,0.s) -Chars 3001 - 3036 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 3037 - 3089 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) -Chars 3188 - 3281 [Class~SemiIso~{a~b~:~obj}~(f~:...] 0. secs (0.u,0.s) -Chars 3316 - 3430 [Class~Iso~{a~b~:~obj}~(f~:~C~a...] 0. secs (0.u,0.s) -Chars 3432 - 3444 [End~SemiIso.] 0. secs (0.u,0.s) -Chars 3446 - 3483 [#[global]~Existing~Instance~is...] 0. secs (0.u,0.s) -Chars 3484 - 3520 [#[global]~Existing~Instance~is...] 0. secs (0.u,0.s) -Chars 3521 - 3581 [Arguments~semi_iso~{obj~C~Eq2C...] 0. secs (0.u,0.s) -Chars 3603 - 3623 [Section~OppositeCat.] 0. secs (0.u,0.s) -Chars 3627 - 3662 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 3665 - 3717 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) -Chars 4146 - 4206 [Instance~Eq2_Op~:~(Eq2~(op~C))...] 0. secs (0.u,0.s) -Chars 4210 - 4258 [Instance~Id_Op~:~(Id_~(op~C))~...] 0. secs (0.u,0.s) -Chars 4262 - 4332 [Instance~Cat_Op~:~(Cat~(op~C))...] 0. secs (0.u,0.s) -Chars 4334 - 4350 [End~OppositeCat.] 0. secs (0.u,0.s) -Chars 4370 - 4389 [Section~DaggerLaws.] 0. secs (0.u,0.s) -Chars 4393 - 4428 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 4431 - 4483 [Context~{Eq2C~:~Eq2~C}~{IdC~:~...] 0. secs (0.u,0.s) -Chars 4486 - 4512 [Context~{DagC~:~Dagger~C}.] 0. secs (0.u,0.s) -Chars 4517 - 4590 [Instance~Dagger_Op~:~(Dagger~(...] 0. secs (0.u,0.s) -Chars 4594 - 4693 [Class~DaggerInvolution~:~Prop~...] 0. secs (0.u,0.s) -Chars 4697 - 4728 [#[local]~Existing~Instance~Eq2...] 0. secs (0.u,0.s) -Chars 4731 - 4761 [#[local]~Existing~Instance~Id_Op.] 0. secs (0.u,0.s) -Chars 4764 - 4795 [#[local]~Existing~Instance~Cat...] 0. secs (0.u,0.s) -Chars 4798 - 4934 [Class~DaggerLaws~:~Prop~:={~~~...] 0. secs (0.u,0.s) -Chars 4937 - 4983 [#[global]~Existing~Instance~da...] 0. secs (0.u,0.s) -Chars 4986 - 5029 [#[global]~Existing~Instance~da...] 0. secs (0.u,0.s) -Chars 5031 - 5046 [End~DaggerLaws.] 0. secs (0.u,0.s) -Chars 5070 - 5092 [Section~BifunctorLaws.] 0. secs (0.u,0.s) -Chars 5094 - 5129 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 5130 - 5185 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 5186 - 5212 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 5213 - 5247 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 5348 - 5441 [Class~BimapId~:~Prop~:=~~~~~bi...] 0. secs (0.u,0.s) -Chars 5443 - 5676 [Class~BimapCat~:~Prop~:=~~~~~b...] 0.001 secs (0.001u,0.s) -Chars 5678 - 5886 [Class~Bifunctor~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) -Chars 5887 - 5934 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) -Chars 5935 - 5983 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) -Chars 5984 - 6035 [#[global]~Existing~Instance~bi...] 0. secs (0.u,0.s) -Chars 6037 - 6055 [End~BifunctorLaws.] 0. secs (0.u,0.s) -Chars 6057 - 6121 [Arguments~bimap_id~{obj~C~Eq2_...] 0. secs (0.u,0.s) -Chars 6122 - 6211 [Arguments~bimap_cat~{obj~C~Eq2...] 0. secs (0.u,0.s) -Chars 6283 - 6305 [Section~CoproductLaws.] 0. secs (0.u,0.s) -Chars 6307 - 6342 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 6343 - 6398 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 6399 - 6425 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 6426 - 6512 [Context~{Case_C~:~Case~C~bif}~...] 0. secs (0.u,0.s) -Chars 6514 - 6618 [Class~CaseInl~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) -Chars 6620 - 6724 [Class~CaseInr~:~Prop~:=~~~~~ca...] 0. secs (0.u,0.s) -Chars 6758 - 6951 [Class~CaseUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 6953 - 7199 [Class~Coproduct~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) -Chars 7200 - 7247 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) -Chars 7248 - 7295 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) -Chars 7296 - 7349 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) -Chars 7350 - 7400 [#[global]~Existing~Instance~co...] 0. secs (0.u,0.s) -Chars 7402 - 7420 [End~CoproductLaws.] 0. secs (0.u,0.s) -Chars 7422 - 7498 [Arguments~case_inl~{obj~C~Eq2_...] 0. secs (0.u,0.s) -Chars 7499 - 7575 [Arguments~case_inr~{obj~C~Eq2_...] 0. secs (0.u,0.s) -Chars 7576 - 7640 [Arguments~case_universal~{obj~...] 0. secs (0.u,0.s) -Chars 7671 - 7701 [Notation~inl_case~:=~case_inl.] 0. secs (0.u,0.s) -Chars 7702 - 7732 [Notation~inr_case~:=~case_inr.] 0. secs (0.u,0.s) -Chars 7805 - 7825 [Section~ProductLaws.] 0. secs (0.u,0.s) -Chars 7827 - 7862 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 7863 - 7918 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 7919 - 7945 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 7946 - 8032 [Context~{Pair_C~:~Pair~C~bif}~...] 0. secs (0.u,0.s) -Chars 8034 - 8138 [Class~PairFst~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) -Chars 8140 - 8244 [Class~PairSnd~:~Prop~:=~~~~~pa...] 0. secs (0.u,0.s) -Chars 8276 - 8469 [Class~PairUniversal~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 8471 - 8707 [Class~Product~:~Prop~:={~~~~~~...] 0.007 secs (0.006u,0.s) -Chars 8708 - 8753 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8754 - 8799 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8800 - 8851 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8852 - 8900 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 8902 - 8918 [End~ProductLaws.] 0. secs (0.u,0.s) -Chars 8920 - 8996 [Arguments~pair_fst~{obj~C~Eq2_...] 0. secs (0.u,0.s) -Chars 8997 - 9073 [Arguments~pair_snd~{obj~C~Eq2_...] 0. secs (0.u,0.s) -Chars 9074 - 9138 [Arguments~pair_universal~{obj~...] 0. secs (0.u,0.s) -Chars 9165 - 9194 [Section~CartesianClosureLaws.] 0. secs (0.u,0.s) -Chars 9196 - 9231 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 9232 - 9287 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 9288 - 9342 [Context~(ONE~:~obj)~{Term_C~:~...] 0. secs (0.u,0.s) -Chars 9343 - 9370 [Context~(PROD~:~binop~obj).] 0. secs (0.u,0.s) -Chars 9371 - 9460 [Context~{Pair_C~:~Pair~C~PROD}...] 0. secs (0.u,0.s) -Chars 9461 - 9487 [Context~(EXP~:~binop~obj).] 0. secs (0.u,0.s) -Chars 9488 - 9562 [Context~{Apply_C~:~Apply~C~PRO...] 0. secs (0.u,0.s) -Chars 9564 - 9596 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) -Chars 9598 - 9754 [Class~CurryApply~:~Prop~:=~~~~...] 0.001 secs (0.u,0.s) -Chars 9756 - 10022 [Class~CartesianClosed~:~Prop~:...] 0.001 secs (0.001u,0.s) -Chars 10023 - 10070 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 10071 - 10117 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 10118 - 10168 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 10169 - 10221 [#[global]~Existing~Instance~ca...] 0. secs (0.u,0.s) -Chars 10223 - 10248 [End~CartesianClosureLaws.] 0. secs (0.u,0.s) -Chars 10250 - 10353 [Arguments~curry_apply~~~{obj~C...] 0. secs (0.u,0.s) -Chars 10386 - 10407 [Section~MonoidalLaws.] 0. secs (0.u,0.s) -Chars 10409 - 10444 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 10445 - 10500 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 10501 - 10527 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 10529 - 10563 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 10565 - 10601 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) -Chars 10602 - 10638 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) -Chars 10745 - 10830 [Notation~AssocIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 10968 - 11081 [Corollary~assoc_r_mono~{AssocI...] 0. secs (0.u,0.s) -Chars 11082 - 11088 [Proof.] 0. secs (0.u,0.s) -Chars 11091 - 11126 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) -Chars 11127 - 11131 [Qed.] 0. secs (0.u,0.s) -Chars 11227 - 11340 [Corollary~assoc_l_mono~{AssocI...] 0. secs (0.u,0.s) -Chars 11341 - 11347 [Proof.] 0. secs (0.u,0.s) -Chars 11350 - 11385 [intros;~apply~semi_iso,~AssocI...] 0. secs (0.u,0.s) -Chars 11386 - 11390 [Qed.] 0. secs (0.u,0.s) -Chars 11392 - 11410 [Context~(i~:~obj).] 0. secs (0.u,0.s) -Chars 11411 - 11449 [Context~{UnitL_bif~:~UnitL~C~b...] 0. secs (0.u,0.s) -Chars 11450 - 11488 [Context~{UnitL'_bif~:~UnitL'~C...] 0. secs (0.u,0.s) -Chars 11489 - 11527 [Context~{UnitR_bif~:~UnitR~C~b...] 0. secs (0.u,0.s) -Chars 11528 - 11566 [Context~{UnitR'_bif~:~UnitR'~C...] 0. secs (0.u,0.s) -Chars 11591 - 11721 [Class~UnitLNatural~:~Prop~:=~~...] 0. secs (0.u,0.s) -Chars 11723 - 11857 [Class~UnitL'Natural~:~Prop~:=~...] 0. secs (0.u,0.s) -Chars 11910 - 11988 [Notation~UnitLIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 12086 - 12185 [Corollary~unit_l_mono~{UnitLIs...] 0. secs (0.u,0.s) -Chars 12186 - 12192 [Proof.] 0. secs (0.u,0.s) -Chars 12195 - 12230 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) -Chars 12231 - 12235 [Qed.] 0. secs (0.u,0.s) -Chars 12303 - 12393 [Corollary~unit_l_epi~{UnitLIso...] 0. secs (0.u,0.s) -Chars 12394 - 12400 [Proof.] 0. secs (0.u,0.s) -Chars 12403 - 12438 [intros;~apply~semi_iso,~UnitLI...] 0. secs (0.u,0.s) -Chars 12439 - 12443 [Qed.] 0. secs (0.u,0.s) -Chars 12496 - 12574 [Notation~UnitRIso~:=~(forall~a...] 0. secs (0.u,0.s) -Chars 12576 - 12675 [Corollary~unit_r_mono~{UnitRIs...] 0. secs (0.u,0.s) -Chars 12676 - 12682 [Proof.] 0. secs (0.u,0.s) -Chars 12685 - 12720 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) -Chars 12721 - 12725 [Qed.] 0. secs (0.u,0.s) -Chars 12727 - 12817 [Corollary~unit_r_epi~{UnitRIso...] 0. secs (0.u,0.s) -Chars 12818 - 12824 [Proof.] 0. secs (0.u,0.s) -Chars 12827 - 12862 [intros;~apply~semi_iso,~UnitRI...] 0. secs (0.u,0.s) -Chars 12863 - 12867 [Qed.] 0. secs (0.u,0.s) -Chars 12924 - 13042 [Class~AssocRUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) -Chars 13072 - 13264 [Class~AssocRAssocR~:~Prop~:=~~...] 0.003 secs (0.003u,0.s) -Chars 13266 - 13603 [Class~Monoidal~:~Prop~:={~~~~~...] 0.001 secs (0.001u,0.s) -Chars 13604 - 13651 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13652 - 13699 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13700 - 13748 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13749 - 13797 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13798 - 13850 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13851 - 13904 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13905 - 13955 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 13956 - 14009 [#[global]~Existing~Instance~mo...] 0. secs (0.u,0.s) -Chars 14121 - 14239 [Class~AssocLUnit~:~Prop~:=~~~~...] 0.001 secs (0.001u,0.s) -Chars 14241 - 14433 [Class~AssocLAssocL~:~Prop~:=~~...] 0.012 secs (0.012u,0.s) -Chars 14435 - 14452 [End~MonoidalLaws.] 0.001 secs (0.001u,0.s) -Chars 14454 - 14545 [Arguments~assoc_r_mono~~~{obj~...] 0. secs (0.u,0.s) -Chars 14546 - 14637 [Arguments~assoc_l_mono~~~{obj~...] 0. secs (0.u,0.s) -Chars 14638 - 14725 [Arguments~unit_l_mono~~~{obj~C...] 0. secs (0.u,0.s) -Chars 14726 - 14812 [Arguments~unit_l_epi~~~{obj~C~...] 0. secs (0.u,0.s) -Chars 14813 - 14900 [Arguments~unit_r_mono~~~{obj~C...] 0. secs (0.u,0.s) -Chars 14901 - 14987 [Arguments~unit_r_epi~~~{obj~C~...] 0. secs (0.u,0.s) -Chars 14989 - 15099 [Arguments~assoc_r_unit~~~{obj~...] 0. secs (0.u,0.s) -Chars 15100 - 15197 [Arguments~assoc_r_assoc_r~~~{o...] 0. secs (0.u,0.s) -Chars 15199 - 15309 [Arguments~assoc_l_unit~~~{obj~...] 0. secs (0.u,0.s) -Chars 15310 - 15407 [Arguments~assoc_l_assoc_l~~~{o...] 0. secs (0.u,0.s) -Chars 15450 - 15472 [Section~SymmetricLaws.] 0. secs (0.u,0.s) -Chars 15474 - 15509 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 15510 - 15565 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 15566 - 15592 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 15593 - 15627 [Context~{Bimap_bif~:~Bimap~C~b...] 0. secs (0.u,0.s) -Chars 15628 - 15660 [Context~{Swap_bif~:~Swap~C~bif}.] 0. secs (0.u,0.s) -Chars 15693 - 15778 [Notation~SwapInvolutive~:=~(fo...] 0. secs (0.u,0.s) -Chars 15780 - 15890 [Corollary~swap_involutive~{Swa...] 0. secs (0.u,0.s) -Chars 15891 - 15897 [Proof.] 0. secs (0.u,0.s) -Chars 15900 - 15941 [intros;~apply~semi_iso,~SwapIn...] 0. secs (0.u,0.s) -Chars 15942 - 15946 [Qed.] 0. secs (0.u,0.s) -Chars 15948 - 15966 [Context~(i~:~obj).] 0. secs (0.u,0.s) -Chars 15967 - 16003 [Context~{UnitL_i~:~UnitL~C~bif...] 0. secs (0.u,0.s) -Chars 16004 - 16040 [Context~{UnitL'_i~:~UnitL'~C~b...] 0. secs (0.u,0.s) -Chars 16041 - 16077 [Context~{UnitR_i~:~UnitR~C~bif...] 0. secs (0.u,0.s) -Chars 16078 - 16114 [Context~{UnitR'_i~:~UnitR'~C~b...] 0. secs (0.u,0.s) -Chars 16161 - 16245 [Class~SwapUnitL~:~Prop~:=~~~~~...] 0. secs (0.u,0.s) -Chars 16247 - 16283 [Context~{AssocR_bif~:~AssocR~C...] 0. secs (0.u,0.s) -Chars 16284 - 16320 [Context~{AssocL_bif~:~AssocL~C...] 0. secs (0.u,0.s) -Chars 16371 - 16537 [Class~SwapAssocR~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) -Chars 16575 - 16770 [Class~SymMonoidal~:~Prop~:={~~...] 0. secs (0.u,0.s) -Chars 16821 - 16987 [Class~SwapAssocL~:~Prop~:=~~~~...] 0.003 secs (0.003u,0.s) -Chars 16989 - 17007 [End~SymmetricLaws.] 0. secs (0.u,0.s) -Chars 17009 - 17094 [Arguments~swap_involutive~~~{o...] 0. secs (0.u,0.s) -Chars 17095 - 17180 [Arguments~swap_unit_l~~~{obj~C...] 0. secs (0.u,0.s) -Chars 17181 - 17281 [Arguments~swap_assoc_r~~~{obj~...] 0. secs (0.u,0.s) -Chars 17282 - 17382 [Arguments~swap_assoc_l~~~{obj~...] 0. secs (0.u,0.s) -Chars 17384 - 17406 [Section~IterationLaws.] 0. secs (0.u,0.s) -Chars 17408 - 17443 [Context~{obj~:~Type}~(C~:~Hom~...] 0. secs (0.u,0.s) -Chars 17444 - 17499 [Context~{Eq2_C~:~Eq2~C}~{Id_C~...] 0. secs (0.u,0.s) -Chars 17500 - 17526 [Context~(bif~:~binop~obj).] 0. secs (0.u,0.s) -Chars 17527 - 17557 [Context~{Case_C~:~Case~C~bif}.] 0. secs (0.u,0.s) -Chars 17558 - 17586 [Context~{Inl_C~:~Inl~C~bif}.] 0. secs (0.u,0.s) -Chars 17587 - 17615 [Context~{Inr_C~:~Inr~C~bif}.] 0. secs (0.u,0.s) -Chars 17616 - 17646 [Context~{Iter_C~:~Iter~C~bif}.] 0. secs (0.u,0.s) -Chars 17708 - 17827 [Class~IterUnfold~:~Prop~:=~~~~...] 0. secs (0.u,0.s) -Chars 17942 - 18083 [Class~IterNatural~:~Prop~:=~~~...] 0.001 secs (0.001u,0.s) -Chars 18207 - 18411 [Class~IterDinatural~:~Prop~:=~...] 0.001 secs (0.001u,0.s) -Chars 18534 - 18679 [Class~IterCodiagonal~:~Prop~:=...] 0.001 secs (0.001u,0.s) -Chars 18750 - 19030 [Class~Iterative~:~Prop~:={~~~~...] 0.001 secs (0.u,0.s) -Chars 19031 - 19076 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19077 - 19123 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19124 - 19172 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19173 - 19222 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19223 - 19273 [#[global]~Existing~Instance~it...] 0. secs (0.u,0.s) -Chars 19309 - 19690 [Definition~IterPairing~:~Prop~...] 0.014 secs (0.011u,0.002s) -Chars 19692 - 19710 [End~IterationLaws.] 0. secs (0.u,0.s) -Chars 19712 - 19796 [Arguments~iter_unfold~{obj~C~E...] 0. secs (0.u,0.s) -Chars 19797 - 19897 [Arguments~iter_natural~~~{obj~...] 0. secs (0.u,0.s) -Chars 19898 - 19996 [Arguments~iter_dinatural~~~{ob...] 0. secs (0.u,0.s) -Chars 19997 - 20095 [Arguments~iter_codiagonal~~~{o...] 0. secs (0.u,0.s) -Chars 20096 - 20193 [Arguments~iterative_proper_ite...] 0. secs (0.u,0.s) diff --git a/theories/Basics/Function.v.timing b/theories/Basics/Function.v.timing deleted file mode 100644 index 99bd21bd..00000000 --- a/theories/Basics/Function.v.timing +++ /dev/null @@ -1,18 +0,0 @@ -Chars 125 - 194 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) -Chars 196 - 216 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 217 - 247 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 297 - 342 [Definition~Fun~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) -Chars 413 - 475 [Definition~apply_Fun~{A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 514 - 591 [#[global]~Instance~eeq~:~(Eq2~...] 0. secs (0.u,0.s) -Chars 618 - 679 [#[global]~Instance~Id_Fun~:~(I...] 0. secs (0.u,0.s) -Chars 709 - 785 [#[global]~Instance~Cat_Fun~:~(...] 0. secs (0.u,0.s) -Chars 823 - 914 [#[global]~Instance~Initial_voi...] 0. secs (0.u,0.s) -Chars 949 - 1021 [#[global]~Instance~Terminal_un...] 0. secs (0.u,0.s) -Chars 1084 - 1248 [#[global]~Instance~case_sum~:~...] 0. secs (0.u,0.s) -Chars 1268 - 1317 [#[global]~Instance~sum_inl~:~(...] 0. secs (0.u,0.s) -Chars 1318 - 1367 [#[global]~Instance~sum_inr~:~(...] 0. secs (0.u,0.s) -Chars 1399 - 1480 [#[global]~Instance~Pair_Fun~:~...] 0. secs (0.u,0.s) -Chars 1482 - 1532 [#[global]~Instance~Fst_Fun~:~(...] 0. secs (0.u,0.s) -Chars 1533 - 1583 [#[global]~Instance~Snd_Fun~:~(...] 0. secs (0.u,0.s) -Chars 1697 - 1779 [#[global]~Instance~Apply_Fun~:...] 0. secs (0.u,0.s) -Chars 1783 - 1875 [#[global]~Instance~Curry_Fun~:...] 0. secs (0.u,0.s) diff --git a/theories/Basics/FunctionFacts.v.timing b/theories/Basics/FunctionFacts.v.timing deleted file mode 100644 index b129bda5..00000000 --- a/theories/Basics/FunctionFacts.v.timing +++ /dev/null @@ -1,143 +0,0 @@ -Chars 64 - 106 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 108 - 207 [From~ITree~Require~Import~Axio...] 0.101 secs (0.09u,0.01s) -Chars 209 - 229 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 230 - 257 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 274 - 378 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) -Chars 379 - 385 [Proof.] 0. secs (0.u,0.s) -Chars 386 - 397 [congruence.] 0. secs (0.u,0.s) -Chars 398 - 402 [Qed.] 0. secs (0.u,0.s) -Chars 404 - 474 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 475 - 481 [Proof.] 0. secs (0.u,0.s) -Chars 482 - 506 [constructor;~congruence.] 0. secs (0.u,0.s) -Chars 507 - 511 [Qed.] 0. secs (0.u,0.s) -Chars 513 - 628 [#[global]~Instance~Proper_cat~...] 0. secs (0.u,0.s) -Chars 629 - 635 [Proof.] 0. secs (0.u,0.s) -Chars 636 - 652 [compute;~congruence.] 0. secs (0.u,0.s) -Chars 653 - 657 [Qed.] 0. secs (0.u,0.s) -Chars 659 - 706 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) -Chars 707 - 713 [Proof.] 0. secs (0.u,0.s) -Chars 714 - 731 [red;~reflexivity.] 0. secs (0.u,0.s) -Chars 732 - 736 [Qed.] 0. secs (0.u,0.s) -Chars 738 - 785 [#[global]~Instance~cat_Fun_Cat...] 0. secs (0.u,0.s) -Chars 786 - 792 [Proof.] 0. secs (0.u,0.s) -Chars 793 - 810 [red;~reflexivity.] 0. secs (0.u,0.s) -Chars 811 - 815 [Qed.] 0.002 secs (0.002u,0.s) -Chars 817 - 865 [#[global]~Instance~cat_Fun_ass...] 0. secs (0.u,0.s) -Chars 866 - 872 [Proof.] 0. secs (0.u,0.s) -Chars 873 - 890 [red;~reflexivity.] 0. secs (0.u,0.s) -Chars 891 - 895 [Qed.] 0. secs (0.u,0.s) -Chars 897 - 1002 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 1004 - 1069 [#[global]~Instance~TerminalObj...] 0. secs (0.u,0.s) -Chars 1070 - 1076 [Proof.] 0. secs (0.u,0.s) -Chars 1077 - 1081 [red.] 0. secs (0.u,0.s) -Chars 1082 - 1089 [intros.] 0. secs (0.u,0.s) -Chars 1090 - 1096 [intro.] 0. secs (0.u,0.s) -Chars 1097 - 1113 [destruct~(f~a0).] 0. secs (0.u,0.s) -Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) -Chars 1127 - 1131 [Qed.] 0. secs (0.u,0.s) -Chars 1133 - 1261 [#[global]~Instance~eeq_case_su...] 0. secs (0.u,0.s) -Chars 1262 - 1268 [Proof.] 0. secs (0.u,0.s) -Chars 1269 - 1306 [compute;~intros;~subst;~destru...] 0. secs (0.u,0.s) -Chars 1307 - 1311 [Qed.] 0. secs (0.u,0.s) -Chars 1313 - 1360 [#[global]~Instance~Category_Fu...] 0. secs (0.u,0.s) -Chars 1361 - 1367 [Proof.] 0. secs (0.u,0.s) -Chars 1370 - 1401 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 1402 - 1406 [Qed.] 0. secs (0.u,0.s) -Chars 1408 - 1461 [#[global]~Instance~Coproduct_F...] 0. secs (0.u,0.s) -Chars 1462 - 1468 [Proof.] 0. secs (0.u,0.s) -Chars 1471 - 1483 [constructor.] 0. secs (0.u,0.s) -Chars 1486 - 1487 [-] 0. secs (0.u,0.s) -Chars 1488 - 1505 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 1510 - 1527 [compute;~reflexivity.] 0. secs (0.u,0.s) -Chars 1530 - 1531 [-] 0. secs (0.u,0.s) -Chars 1532 - 1549 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 1554 - 1571 [compute;~reflexivity.] 0. secs (0.u,0.s) -Chars 1574 - 1575 [-] 0. secs (0.u,0.s) -Chars 1576 - 1626 [intros~a~b~c~f~g~fg~Hf~Hg~[x|~...] 0. secs (0.u,0.s) -Chars 1629 - 1630 [-] 0. secs (0.u,0.s) -Chars 1631 - 1649 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 1650 - 1654 [Qed.] 0. secs (0.u,0.s) -Chars 1656 - 1706 [#[global]~Instance~PairFst_Fun...] 0. secs (0.u,0.s) -Chars 1707 - 1713 [Proof.] 0. secs (0.u,0.s) -Chars 1716 - 1722 [split.] 0. secs (0.u,0.s) -Chars 1723 - 1727 [Qed.] 0. secs (0.u,0.s) -Chars 1729 - 1779 [#[global]~Instance~PairSnd_Fun...] 0. secs (0.u,0.s) -Chars 1780 - 1786 [Proof.] 0. secs (0.u,0.s) -Chars 1789 - 1795 [split.] 0. secs (0.u,0.s) -Chars 1796 - 1800 [Qed.] 0. secs (0.u,0.s) -Chars 1802 - 1864 [#[global]~Instance~PairUnivers...] 0. secs (0.u,0.s) -Chars 1865 - 1871 [Proof.] 0. secs (0.u,0.s) -Chars 1874 - 1887 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1890 - 1913 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) -Chars 1914 - 1932 [specialize~(H~a0).] 0. secs (0.u,0.s) -Chars 1933 - 1952 [specialize~(H0~a0).] 0. secs (0.u,0.s) -Chars 1953 - 1966 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 1969 - 1983 [rewrite~<-~H0.] 0. secs (0.u,0.s) -Chars 1984 - 2004 [unfold~cat,~Cat_Fun.] 0. secs (0.u,0.s) -Chars 2007 - 2024 [destruct~(fg~a0).] 0. secs (0.u,0.s) -Chars 2025 - 2037 [reflexivity.] 0. secs (0.u,0.s) -Chars 2038 - 2042 [Qed.] 0. secs (0.u,0.s) -Chars 2044 - 2147 [#[global]~Instance~Proper_pair...] 0. secs (0.u,0.s) -Chars 2148 - 2154 [Proof.] 0. secs (0.u,0.s) -Chars 2157 - 2188 [intros~?~?~?~f1~f2~F~g1~g2~G~c.] 0. secs (0.u,0.s) -Chars 2191 - 2214 [unfold~pair_,~Pair_Fun.] 0. secs (0.u,0.s) -Chars 2215 - 2225 [rewrite~F.] 0. secs (0.u,0.s) -Chars 2226 - 2236 [rewrite~G.] 0. secs (0.u,0.s) -Chars 2237 - 2249 [reflexivity.] 0. secs (0.u,0.s) -Chars 2250 - 2254 [Qed.] 0. secs (0.u,0.s) -Chars 2258 - 2275 [Section~Products.] 0. secs (0.u,0.s) -Chars 2278 - 2310 [Existing~Instance~Bimap_Product.] 0. secs (0.u,0.s) -Chars 2314 - 2371 [#[global]~Instance~BimapId_Fun...] 0. secs (0.u,0.s) -Chars 2374 - 2380 [Proof.] 0. secs (0.u,0.s) -Chars 2385 - 2398 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2403 - 2415 [destruct~a0.] 0. secs (0.u,0.s) -Chars 2416 - 2428 [reflexivity.] 0. secs (0.u,0.s) -Chars 2431 - 2435 [Qed.] 0. secs (0.u,0.s) -Chars 2442 - 2501 [#[global]~Instance~BimapCat_Fu...] 0. secs (0.u,0.s) -Chars 2504 - 2510 [Proof.] 0. secs (0.u,0.s) -Chars 2515 - 2528 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2533 - 2544 [destruct~a.] 0. secs (0.u,0.s) -Chars 2549 - 2561 [reflexivity.] 0. secs (0.u,0.s) -Chars 2564 - 2568 [Qed.] 0. secs (0.u,0.s) -Chars 2572 - 2721 [#[global]~Instance~BimapProper...] 0. secs (0.u,0.s) -Chars 2724 - 2730 [Proof.] 0. secs (0.u,0.s) -Chars 2735 - 2748 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2753 - 2781 [unfold~bimap,~Bimap_Product.] 0. secs (0.u,0.s) -Chars 2782 - 2792 [rewrite~H.] 0.005 secs (0.004u,0.001s) -Chars 2793 - 2804 [rewrite~H0.] 0.005 secs (0.004u,0.001s) -Chars 2805 - 2817 [reflexivity.] 0. secs (0.u,0.s) -Chars 2820 - 2824 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2828 - 2889 [#[global]~Instance~Bifunctor_F...] 0. secs (0.u,0.s) -Chars 2892 - 2898 [Proof.] 0. secs (0.u,0.s) -Chars 2903 - 2915 [constructor.] 0. secs (0.u,0.s) -Chars 2920 - 2921 [-] 0. secs (0.u,0.s) -Chars 2922 - 2945 [exact~BimapId_Fun_prod.] 0. secs (0.u,0.s) -Chars 2950 - 2951 [-] 0. secs (0.u,0.s) -Chars 2952 - 2976 [exact~BimapCat_Fun_prod.] 0. secs (0.u,0.s) -Chars 2981 - 2982 [-] 0. secs (0.u,0.s) -Chars 2983 - 3010 [exact~BimapProper_Fun_prod.] 0. secs (0.u,0.s) -Chars 3013 - 3017 [Qed.] 0. secs (0.u,0.s) -Chars 3021 - 3073 [#[global]~Instance~Product_Fun...] 0.016 secs (0.015u,0.001s) -Chars 3076 - 3082 [Proof.] 0. secs (0.u,0.s) -Chars 3087 - 3118 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 3121 - 3125 [Qed.] 0. secs (0.u,0.s) -Chars 3131 - 3144 [End~Products.] 0. secs (0.u,0.s) -Chars 3146 - 3171 [Section~CartesianClosure.] 0. secs (0.u,0.s) -Chars 3175 - 3237 [#[global]~Instance~CurryApply_...] 0. secs (0.u,0.s) -Chars 3240 - 3246 [Proof.] 0. secs (0.u,0.s) -Chars 3251 - 3255 [red.] 0. secs (0.u,0.s) -Chars 3256 - 3269 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3270 - 3282 [destruct~a0.] 0. secs (0.u,0.s) -Chars 3283 - 3322 [unfold~curry_,~Curry_Fun,~cat,...] 0. secs (0.u,0.s) -Chars 3323 - 3335 [reflexivity.] 0. secs (0.u,0.s) -Chars 3338 - 3342 [Qed.] 0. secs (0.u,0.s) -Chars 3415 - 3492 [#[global]~Instance~CartesianCl...] 0. secs (0.u,0.s) -Chars 3495 - 3501 [Proof.] 0. secs (0.u,0.s) -Chars 3506 - 3541 [constructor;~try~typeclasses~e...] 0.003 secs (0.003u,0.s) -Chars 3546 - 3559 [repeat~intro.] 0. secs (0.u,0.s) -Chars 3560 - 3585 [unfold~curry_,~Curry_Fun.] 0. secs (0.u,0.s) -Chars 3586 - 3618 [apply~functional_extensionality.] 0. secs (0.u,0.s) -Chars 3623 - 3630 [intros.] 0. secs (0.u,0.s) -Chars 3631 - 3639 [apply~H.] 0. secs (0.u,0.s) -Chars 3642 - 3646 [Qed.] 0. secs (0.u,0.s) -Chars 3647 - 3668 [End~CartesianClosure.] 0. secs (0.u,0.s) diff --git a/theories/Basics/HeterogeneousRelations.v.timing b/theories/Basics/HeterogeneousRelations.v.timing deleted file mode 100644 index f06414ba..00000000 --- a/theories/Basics/HeterogeneousRelations.v.timing +++ /dev/null @@ -1,652 +0,0 @@ -Chars 0 - 102 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) -Chars 104 - 155 [From~ITree~Require~Import~Basi...] 0.022 secs (0.017u,0.004s) -Chars 157 - 201 [Set~Warnings~"-future-coercion...] 0. secs (0.u,0.s) -Chars 405 - 458 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) -Chars 460 - 512 [Definition~relationH~(A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 514 - 543 [Section~RelationH_Operations.] 0. secs (0.u,0.s) -Chars 547 - 676 [Definition~rel_compose~{A}~{B}...] 0. secs (0.u,0.s) -Chars 731 - 789 [Class~SubRelH~(T~:~Type)~:=~~~...] 0. secs (0.u,0.s) -Chars 793 - 924 [#[global]~Instance~SubRelH_bin...] 0. secs (0.u,0.s) -Chars 928 - 1033 [#[global]~Instance~SubRelH_una...] 0. secs (0.u,0.s) -Chars 1037 - 1129 [Definition~eq_rel~{A}~{B}~(R~S...] 0. secs (0.u,0.s) -Chars 1133 - 1224 [Definition~transpose~{A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 1277 - 1361 [Definition~fun_rel~{A~B~:~Type...] 0. secs (0.u,0.s) -Chars 1365 - 1413 [Class~Conj~(T~:~Type)~:=~~~~~c...] 0. secs (0.u,0.s) -Chars 1417 - 1530 [#[global]~Instance~Conj_binary...] 0. secs (0.u,0.s) -Chars 1534 - 1629 [#[global]~Instance~Conj_unary~...] 0. secs (0.u,0.s) -Chars 1633 - 1681 [Class~Disj~(T~:~Type)~:=~~~~~d...] 0. secs (0.u,0.s) -Chars 1685 - 1798 [#[global]~Instance~Disj_binary...] 0. secs (0.u,0.s) -Chars 1802 - 1897 [#[global]~Instance~Disj_unary~...] 0. secs (0.u,0.s) -Chars 1998 - 2262 [Variant~sum_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) -Chars 2313 - 2534 [Record~prod_rel~{A1~A2~B1~B2~:...] 0. secs (0.u,0.s) -Chars 2536 - 2561 [End~RelationH_Operations.] 0. secs (0.u,0.s) -Chars 2563 - 2606 [#[global]~Hint~Constructors~pr...] 0. secs (0.u,0.s) -Chars 2607 - 2649 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) -Chars 2651 - 2694 [Arguments~inl_morphism~{A1~A2~...] 0. secs (0.u,0.s) -Chars 2695 - 2738 [Arguments~inr_morphism~{A1~A2~...] 0. secs (0.u,0.s) -Chars 2739 - 2777 [Arguments~fst_rel~{A1~A2~B1~B2...] 0. secs (0.u,0.s) -Chars 2778 - 2816 [Arguments~snd_rel~{A1~A2~B1~B2...] 0. secs (0.u,0.s) -Chars 2818 - 2852 [Arguments~rel_compose~[A~B~C]~...] 0. secs (0.u,0.s) -Chars 2853 - 2881 [Arguments~transpose~[A~B]~R.] 0. secs (0.u,0.s) -Chars 2882 - 2911 [Arguments~subrelationH~{T~_}.] 0. secs (0.u,0.s) -Chars 2912 - 2937 [Arguments~conj_rel~{T~_}.] 0. secs (0.u,0.s) -Chars 2938 - 2963 [Arguments~disj_rel~{T~_}.] 0. secs (0.u,0.s) -Chars 2964 - 3002 [Arguments~sum_rel~[A1~A2~B1~B2...] 0. secs (0.u,0.s) -Chars 3003 - 3042 [Arguments~prod_rel~[A1~A2~B1~B...] 0. secs (0.u,0.s) -Chars 3044 - 3074 [Declare~Scope~relationH_scope.] 0. secs (0.u,0.s) -Chars 3075 - 3120 [Delimit~Scope~relationH_scope~...] 0. secs (0.u,0.s) -Chars 3122 - 3142 [Module~RelNotations.] 0. secs (0.u,0.s) -Chars 3234 - 3313 [Infix~"∘"~:=~rel_compose~(~at~...] 0. secs (0.u,0.s) -Chars 3316 - 3391 [Infix~"⊕"~:=~sum_rel~(~at~leve...] 0. secs (0.u,0.s) -Chars 3394 - 3470 [Infix~"⊗"~:=~prod_rel~(~at~lev...] 0. secs (0.u,0.s) -Chars 3473 - 3547 [Infix~"∩"~:=~conj_rel~(~at~lev...] 0. secs (0.u,0.s) -Chars 3550 - 3624 [Infix~"∪"~:=~disj_rel~(~at~lev...] 0. secs (0.u,0.s) -Chars 3628 - 3706 [Infix~"⊑"~:=~subrelationH~(~at...] 0. secs (0.u,0.s) -Chars 3709 - 3795 [Notation~"†~R"~:=~(transpose~R...] 0. secs (0.u,0.s) -Chars 3799 - 3871 [Infix~"≡"~:=~eq_rel~(~at~level...] 0. secs (0.u,0.s) -Chars 3873 - 3890 [End~RelNotations.] 0.001 secs (0.u,0.s) -Chars 3892 - 3912 [Import~RelNotations.] 0. secs (0.u,0.s) -Chars 3913 - 3949 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) -Chars 3951 - 4029 [Definition~relationH_of_Type~(...] 0. secs (0.u,0.s) -Chars 4031 - 4135 [#[global]~Instance~Proper_rela...] 0. secs (0.u,0.s) -Chars 4136 - 4142 [Proof.] 0. secs (0.u,0.s) -Chars 4145 - 4158 [repeat~intro.] 0. secs (0.u,0.s) -Chars 4161 - 4172 [repeat~red.] 0. secs (0.u,0.s) -Chars 4175 - 4189 [split;~intros.] 0. secs (0.u,0.s) -Chars 4192 - 4193 [-] 0. secs (0.u,0.s) -Chars 4194 - 4213 [rewrite~<-~H,~<-~H0.] 0. secs (0.u,0.s) -Chars 4214 - 4219 [auto.] 0. secs (0.u,0.s) -Chars 4222 - 4223 [-] 0. secs (0.u,0.s) -Chars 4224 - 4238 [rewrite~H,~H0.] 0. secs (0.u,0.s) -Chars 4239 - 4244 [auto.] 0. secs (0.u,0.s) -Chars 4245 - 4249 [Qed.] 0. secs (0.u,0.s) -Chars 4334 - 4425 [Class~ReflexiveH~{A~:~Type}~(R...] 0. secs (0.u,0.s) -Chars 4427 - 4525 [Class~SymmetricH~{A~:~Type}~(R...] 0. secs (0.u,0.s) -Chars 4527 - 4638 [Class~TransitiveH~{A~:~Type}~(...] 0. secs (0.u,0.s) -Chars 4640 - 4758 [Class~PER~{A~:~Type}~(R~:~rela...] 0. secs (0.u,0.s) -Chars 4759 - 4796 [#[global]~Existing~Instance~pe...] 0. secs (0.u,0.s) -Chars 4797 - 4835 [#[global]~Existing~Instance~pe...] 0. secs (0.u,0.s) -Chars 4837 - 4960 [Class~Preorder~{A~:~Type}~(R~:...] 0. secs (0.u,0.s) -Chars 4961 - 4998 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 4999 - 5037 [#[global]~Existing~Instance~pr...] 0. secs (0.u,0.s) -Chars 5039 - 5201 [Class~EquivalenceH~{A~:~Type}~...] 0. secs (0.u,0.s) -Chars 5202 - 5241 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) -Chars 5242 - 5281 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) -Chars 5282 - 5322 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) -Chars 5324 - 5401 [#[global]~Instance~relationH_r...] 0. secs (0.u,0.s) -Chars 5402 - 5408 [Proof.] 0. secs (0.u,0.s) -Chars 5411 - 5424 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5427 - 5439 [reflexivity.] 0. secs (0.u,0.s) -Chars 5440 - 5448 [Defined.] 0. secs (0.u,0.s) -Chars 5450 - 5527 [#[global]~Instance~relationH_s...] 0. secs (0.u,0.s) -Chars 5528 - 5534 [Proof.] 0. secs (0.u,0.s) -Chars 5537 - 5550 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5551 - 5561 [cbn;~auto.] 0. secs (0.u,0.s) -Chars 5562 - 5570 [Defined.] 0. secs (0.u,0.s) -Chars 5572 - 5651 [#[global]~Instance~relationH_t...] 0. secs (0.u,0.s) -Chars 5652 - 5658 [Proof.] 0. secs (0.u,0.s) -Chars 5661 - 5674 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5675 - 5684 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 5685 - 5699 [etransitivity.] 0. secs (0.u,0.s) -Chars 5702 - 5710 [apply~H.] 0. secs (0.u,0.s) -Chars 5711 - 5720 [apply~H0.] 0. secs (0.u,0.s) -Chars 5721 - 5729 [Defined.] 0. secs (0.u,0.s) -Chars 5731 - 5789 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) -Chars 5790 - 5796 [Proof.] 0. secs (0.u,0.s) -Chars 5799 - 5830 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 5831 - 5839 [Defined.] 0. secs (0.u,0.s) -Chars 5841 - 5909 [#[global]~Instance~relationH_P...] 0. secs (0.u,0.s) -Chars 5910 - 5916 [Proof.] 0. secs (0.u,0.s) -Chars 5919 - 5950 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 5951 - 5959 [Defined.] 0. secs (0.u,0.s) -Chars 5961 - 6030 [#[global]~Instance~relationH_E...] 0. secs (0.u,0.s) -Chars 6031 - 6037 [Proof.] 0. secs (0.u,0.s) -Chars 6040 - 6071 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 6072 - 6080 [Defined.] 0. secs (0.u,0.s) -Chars 6082 - 6172 [Lemma~ReflexiveH_Reflexive~{A~...] 0. secs (0.u,0.s) -Chars 6173 - 6179 [Proof.] 0. secs (0.u,0.s) -Chars 6182 - 6196 [split;~intros.] 0. secs (0.u,0.s) -Chars 6199 - 6200 [-] 0. secs (0.u,0.s) -Chars 6201 - 6205 [red.] 0. secs (0.u,0.s) -Chars 6206 - 6214 [apply~H.] 0. secs (0.u,0.s) -Chars 6217 - 6218 [-] 0. secs (0.u,0.s) -Chars 6219 - 6227 [apply~H.] 0. secs (0.u,0.s) -Chars 6228 - 6232 [Qed.] 0. secs (0.u,0.s) -Chars 6234 - 6324 [Lemma~SymmetricH_Symmetric~{A~...] 0. secs (0.u,0.s) -Chars 6325 - 6331 [Proof.] 0. secs (0.u,0.s) -Chars 6334 - 6348 [split;~intros.] 0. secs (0.u,0.s) -Chars 6351 - 6352 [-] 0. secs (0.u,0.s) -Chars 6353 - 6357 [red.] 0. secs (0.u,0.s) -Chars 6358 - 6381 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) -Chars 6382 - 6389 [intros.] 0. secs (0.u,0.s) -Chars 6390 - 6409 [specialize~(H~x~y).] 0. secs (0.u,0.s) -Chars 6410 - 6419 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 6424 - 6432 [apply~H.] 0. secs (0.u,0.s) -Chars 6433 - 6444 [assumption.] 0. secs (0.u,0.s) -Chars 6447 - 6448 [-] 0. secs (0.u,0.s) -Chars 6449 - 6453 [red.] 0. secs (0.u,0.s) -Chars 6454 - 6466 [intros~p~HP.] 0. secs (0.u,0.s) -Chars 6467 - 6476 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 6477 - 6485 [apply~H.] 0. secs (0.u,0.s) -Chars 6486 - 6490 [Qed.] 0.011 secs (0.01u,0.s) -Chars 6492 - 6586 [Lemma~TransitiveH_Transitive~{...] 0. secs (0.u,0.s) -Chars 6587 - 6593 [Proof.] 0. secs (0.u,0.s) -Chars 6596 - 6610 [split;~intros.] 0. secs (0.u,0.s) -Chars 6613 - 6614 [-] 0. secs (0.u,0.s) -Chars 6615 - 6619 [red.] 0. secs (0.u,0.s) -Chars 6620 - 6639 [intros~x~y~z~H0~H1.] 0. secs (0.u,0.s) -Chars 6640 - 6664 [unfold~TransitiveH~in~H.] 0. secs (0.u,0.s) -Chars 6665 - 6681 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 6684 - 6685 [-] 0. secs (0.u,0.s) -Chars 6686 - 6690 [red.] 0. secs (0.u,0.s) -Chars 6691 - 6711 [intros~p~q~HP~HQ~EQ.] 0. secs (0.u,0.s) -Chars 6716 - 6739 [unfold~Transitive~in~H.] 0. secs (0.u,0.s) -Chars 6740 - 6750 [cbn~in~EQ.] 0. secs (0.u,0.s) -Chars 6755 - 6771 [eapply~H;~eauto.] 0. secs (0.u,0.s) -Chars 6772 - 6776 [Qed.] 0. secs (0.u,0.s) -Chars 6802 - 6823 [Section~SubRelationH.] 0. secs (0.u,0.s) -Chars 7061 - 7130 [Lemma~subrelationH_Reflexive~{...] 0. secs (0.u,0.s) -Chars 7133 - 7139 [Proof.] 0. secs (0.u,0.s) -Chars 7144 - 7158 [intros~!;~auto.] 0. secs (0.u,0.s) -Chars 7161 - 7165 [Qed.] 0. secs (0.u,0.s) -Chars 7169 - 7260 [Lemma~subrelationH_antisym~{A~...] 0. secs (0.u,0.s) -Chars 7263 - 7269 [Proof.] 0. secs (0.u,0.s) -Chars 7274 - 7286 [split;~auto.] 0. secs (0.u,0.s) -Chars 7289 - 7293 [Qed.] 0. secs (0.u,0.s) -Chars 7297 - 7398 [Lemma~subrelationH_trans~{A~B~...] 0. secs (0.u,0.s) -Chars 7401 - 7407 [Proof.] 0. secs (0.u,0.s) -Chars 7412 - 7426 [intros~!;~auto.] 0. secs (0.u,0.s) -Chars 7429 - 7433 [Qed.] 0. secs (0.u,0.s) -Chars 7437 - 7525 [Lemma~subrelationH_refl_eq~{A~...] 0. secs (0.u,0.s) -Chars 7528 - 7534 [Proof.] 0. secs (0.u,0.s) -Chars 7539 - 7547 [intros~!.] 0. secs (0.u,0.s) -Chars 7552 - 7563 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 7564 - 7568 [cbn.] 0. secs (0.u,0.s) -Chars 7569 - 7577 [apply~H.] 0. secs (0.u,0.s) -Chars 7580 - 7584 [Qed.] 0. secs (0.u,0.s) -Chars 7587 - 7604 [End~SubRelationH.] 0. secs (0.u,0.s) -Chars 7606 - 7628 [Section~RelationEqRel.] 0. secs (0.u,0.s) -Chars 7676 - 7746 [#[global]~Instance~eq_rel_Refl...] 0. secs (0.u,0.s) -Chars 7749 - 7755 [Proof.] 0. secs (0.u,0.s) -Chars 7760 - 7764 [red.] 0. secs (0.u,0.s) -Chars 7765 - 7809 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 7810 - 7816 [tauto.] 0. secs (0.u,0.s) -Chars 7819 - 7823 [Qed.] 0. secs (0.u,0.s) -Chars 7827 - 7897 [#[global]~Instance~eq_rel_Symm...] 0. secs (0.u,0.s) -Chars 7900 - 7906 [Proof.] 0. secs (0.u,0.s) -Chars 7911 - 7915 [red.] 0. secs (0.u,0.s) -Chars 7916 - 7960 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 7961 - 7967 [tauto.] 0. secs (0.u,0.s) -Chars 7970 - 7974 [Qed.] 0. secs (0.u,0.s) -Chars 7978 - 8050 [#[global]~Instance~eq_rel_Tran...] 0. secs (0.u,0.s) -Chars 8053 - 8059 [Proof.] 0. secs (0.u,0.s) -Chars 8064 - 8068 [red.] 0. secs (0.u,0.s) -Chars 8069 - 8113 [unfold~eq_rel,~subrelationH,~S...] 0. secs (0.u,0.s) -Chars 8114 - 8121 [intros.] 0. secs (0.u,0.s) -Chars 8126 - 8141 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 8142 - 8155 [split;~eauto.] 0. secs (0.u,0.s) -Chars 8158 - 8162 [Qed.] 0. secs (0.u,0.s) -Chars 8166 - 8234 [#[global]~Instance~eq_rel_Equi...] 0. secs (0.u,0.s) -Chars 8237 - 8243 [Proof.] 0. secs (0.u,0.s) -Chars 8248 - 8273 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 8276 - 8280 [Qed.] 0. secs (0.u,0.s) -Chars 8398 - 8490 [#[global]~Instance~eq_rel_Prop...] 0. secs (0.u,0.s) -Chars 8493 - 8499 [Proof.] 0. secs (0.u,0.s) -Chars 8504 - 8527 [intros~?~?~EQ1~?~?~EQ2.] 0. secs (0.u,0.s) -Chars 8532 - 8561 [rewrite~EQ1,~EQ2;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8564 - 8568 [Qed.] 0. secs (0.u,0.s) -Chars 9006 - 9024 [End~RelationEqRel.] 0. secs (0.u,0.s) -Chars 9026 - 9050 [Section~RelationCompose.] 0. secs (0.u,0.s) -Chars 9085 - 9167 [Lemma~eq_id_r~:~forall~{A~B~:~...] 0. secs (0.u,0.s) -Chars 9170 - 9176 [Proof.] 0. secs (0.u,0.s) -Chars 9181 - 9196 [split;~intros~!.] 0. secs (0.u,0.s) -Chars 9201 - 9202 [-] 0. secs (0.u,0.s) -Chars 9203 - 9212 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9213 - 9241 [destruct~H~as~(b,~(HR,~EQ)).] 0. secs (0.u,0.s) -Chars 9248 - 9262 [rewrite~<-~EQ.] 0. secs (0.u,0.s) -Chars 9263 - 9274 [assumption.] 0. secs (0.u,0.s) -Chars 9279 - 9280 [-] 0. secs (0.u,0.s) -Chars 9281 - 9285 [cbn.] 0. secs (0.u,0.s) -Chars 9286 - 9295 [exists~y.] 0. secs (0.u,0.s) -Chars 9296 - 9308 [split;~auto.] 0. secs (0.u,0.s) -Chars 9311 - 9315 [Qed.] 0. secs (0.u,0.s) -Chars 9319 - 9394 [Lemma~eq_id_l~:~forall~{A}~{B}...] 0. secs (0.u,0.s) -Chars 9397 - 9403 [Proof.] 0. secs (0.u,0.s) -Chars 9408 - 9423 [split;~intros~!.] 0. secs (0.u,0.s) -Chars 9428 - 9429 [-] 0. secs (0.u,0.s) -Chars 9430 - 9439 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 9440 - 9468 [destruct~H~as~(b,~(EQ,~HR)).] 0. secs (0.u,0.s) -Chars 9475 - 9486 [rewrite~EQ.] 0. secs (0.u,0.s) -Chars 9487 - 9498 [assumption.] 0. secs (0.u,0.s) -Chars 9503 - 9504 [-] 0. secs (0.u,0.s) -Chars 9505 - 9509 [cbn.] 0. secs (0.u,0.s) -Chars 9510 - 9519 [exists~x.] 0. secs (0.u,0.s) -Chars 9520 - 9532 [split;~auto.] 0. secs (0.u,0.s) -Chars 9535 - 9539 [Qed.] 0. secs (0.u,0.s) -Chars 9579 - 9718 [Lemma~compose_assoc~:~~~forall...] 0. secs (0.u,0.s) -Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) -Chars 9732 - 9757 [split;~intros~!;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 9762 - 9763 [-] 0. secs (0.u,0.s) -Chars 9764 - 9782 [repeat~destruct~H.] 0. secs (0.u,0.s) -Chars 9783 - 9802 [repeat~destruct~H0.] 0. secs (0.u,0.s) -Chars 9809 - 9840 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 9845 - 9846 [-] 0. secs (0.u,0.s) -Chars 9847 - 9865 [repeat~destruct~H.] 0. secs (0.u,0.s) -Chars 9866 - 9885 [repeat~destruct~H0.] 0. secs (0.u,0.s) -Chars 9892 - 9923 [repeat~(eexists;~split;~eauto).] 0. secs (0.u,0.s) -Chars 9926 - 9930 [Qed.] 0. secs (0.u,0.s) -Chars 9935 - 10123 [#[global]~Instance~Proper_comp...] 0. secs (0.u,0.s) -Chars 10126 - 10132 [Proof.] 0. secs (0.u,0.s) -Chars 10137 - 10168 [intros~?~?~?~S~S'~EQS~R~R'~EQR.] 0. secs (0.u,0.s) -Chars 10173 - 10276 [split;~intros~?~?~EQ;~destruct...] 0. secs (0.u,0.s) -Chars 10279 - 10283 [Qed.] 0. secs (0.u,0.s) -Chars 10285 - 10305 [End~RelationCompose.] 0. secs (0.u,0.s) -Chars 10307 - 10330 [Section~TransposeFacts.] 0. secs (0.u,0.s) -Chars 10805 - 10900 [Instance~transpose_Reflexive~~...] 0. secs (0.u,0.s) -Chars 10903 - 10909 [Proof.] 0. secs (0.u,0.s) -Chars 10914 - 10918 [red.] 0. secs (0.u,0.s) -Chars 10919 - 10928 [intros~x.] 0. secs (0.u,0.s) -Chars 10929 - 10938 [apply~RR.] 0. secs (0.u,0.s) -Chars 10941 - 10945 [Qed.] 0. secs (0.u,0.s) -Chars 10949 - 11044 [Instance~transpose_Symmetric~~...] 0. secs (0.u,0.s) -Chars 11047 - 11053 [Proof.] 0. secs (0.u,0.s) -Chars 11058 - 11098 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) -Chars 11099 - 11132 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 11137 - 11146 [apply~RS.] 0. secs (0.u,0.s) -Chars 11147 - 11158 [assumption.] 0. secs (0.u,0.s) -Chars 11161 - 11165 [Qed.] 0. secs (0.u,0.s) -Chars 11169 - 11268 [Instance~transpose_Transitive~...] 0. secs (0.u,0.s) -Chars 11271 - 11277 [Proof.] 0. secs (0.u,0.s) -Chars 11282 - 11322 [red;~intros~x;~unfold~transpos...] 0. secs (0.u,0.s) -Chars 11327 - 11362 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 11367 - 11392 [unfold~TransitiveH~in~RT.] 0. secs (0.u,0.s) -Chars 11451 - 11473 [specialize~(RT~z~y~x).] 0. secs (0.u,0.s) -Chars 11474 - 11490 [apply~RT;~eauto.] 0. secs (0.u,0.s) -Chars 11493 - 11497 [Qed.] 0. secs (0.u,0.s) -Chars 11632 - 11691 [Lemma~transpose_eq~{A~:~Type}~...] 0. secs (0.u,0.s) -Chars 11694 - 11700 [Proof.] 0. secs (0.u,0.s) -Chars 11705 - 11751 [split;~unfold~transpose;~intro...] 0. secs (0.u,0.s) -Chars 11754 - 11758 [Qed.] 0. secs (0.u,0.s) -Chars 11762 - 11849 [Lemma~transpose_sym~{A~:~Type}...] 0. secs (0.u,0.s) -Chars 11852 - 11858 [Proof.] 0. secs (0.u,0.s) -Chars 11863 - 11906 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) -Chars 11911 - 11944 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 11945 - 11955 [red~in~RS.] 0. secs (0.u,0.s) -Chars 11960 - 11975 [apply~(RS~y~x).] 0. secs (0.u,0.s) -Chars 11976 - 11987 [assumption.] 0. secs (0.u,0.s) -Chars 11992 - 12025 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 12026 - 12036 [red~in~RS.] 0. secs (0.u,0.s) -Chars 12041 - 12056 [apply~(RS~x~y).] 0. secs (0.u,0.s) -Chars 12057 - 12068 [assumption.] 0. secs (0.u,0.s) -Chars 12071 - 12075 [Qed.] 0. secs (0.u,0.s) -Chars 12079 - 12206 [Lemma~transpose_compose~{A~B~C...] 0. secs (0.u,0.s) -Chars 12209 - 12215 [Proof.] 0. secs (0.u,0.s) -Chars 12220 - 12268 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) -Chars 12273 - 12274 [-] 0. secs (0.u,0.s) -Chars 12275 - 12303 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) -Chars 12304 - 12313 [exists~b.] 0. secs (0.u,0.s) -Chars 12314 - 12320 [tauto.] 0. secs (0.u,0.s) -Chars 12325 - 12326 [-] 0. secs (0.u,0.s) -Chars 12327 - 12355 [destruct~H~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) -Chars 12356 - 12365 [exists~b.] 0. secs (0.u,0.s) -Chars 12366 - 12372 [tauto.] 0. secs (0.u,0.s) -Chars 12375 - 12379 [Qed.] 0. secs (0.u,0.s) -Chars 12383 - 12484 [#[global]~Instance~Proper_tran...] 0. secs (0.u,0.s) -Chars 12487 - 12493 [Proof.] 0. secs (0.u,0.s) -Chars 12498 - 12562 [intros~?~?~EQ;~split;~unfold~t...] 0. secs (0.u,0.s) -Chars 12565 - 12569 [Qed.] 0. secs (0.u,0.s) -Chars 12647 - 12732 [Lemma~transpose_involution~:~f...] 0. secs (0.u,0.s) -Chars 12735 - 12741 [Proof.] 0. secs (0.u,0.s) -Chars 12746 - 12759 [intros~A~B~R.] 0. secs (0.u,0.s) -Chars 12764 - 12770 [split.] 0. secs (0.u,0.s) -Chars 12775 - 12776 [-] 0. secs (0.u,0.s) -Chars 12777 - 12813 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) -Chars 12814 - 12831 [unfold~transpose.] 0. secs (0.u,0.s) -Chars 12832 - 12838 [tauto.] 0. secs (0.u,0.s) -Chars 12843 - 12844 [-] 0. secs (0.u,0.s) -Chars 12845 - 12892 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) -Chars 12893 - 12899 [tauto.] 0. secs (0.u,0.s) -Chars 12902 - 12906 [Qed.] 0. secs (0.u,0.s) -Chars 12910 - 13034 [Lemma~transpose_inclusion~:~~~...] 0. secs (0.u,0.s) -Chars 13037 - 13043 [Proof.] 0. secs (0.u,0.s) -Chars 13048 - 13065 [intros~A~B~R1~R2.] 0. secs (0.u,0.s) -Chars 13070 - 13076 [split.] 0. secs (0.u,0.s) -Chars 13081 - 13082 [-] 0. secs (0.u,0.s) -Chars 13083 - 13093 [intros~HS.] 0. secs (0.u,0.s) -Chars 13100 - 13152 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) -Chars 13153 - 13159 [eauto.] 0. secs (0.u,0.s) -Chars 13164 - 13165 [-] 0. secs (0.u,0.s) -Chars 13166 - 13176 [intros~HS.] 0. secs (0.u,0.s) -Chars 13183 - 13235 [unfold~subrelationH,~SubRelH_b...] 0. secs (0.u,0.s) -Chars 13236 - 13242 [eauto.] 0. secs (0.u,0.s) -Chars 13245 - 13249 [Qed.] 0. secs (0.u,0.s) -Chars 13253 - 13353 [#[global]~Instance~transpose_P...] 0. secs (0.u,0.s) -Chars 13356 - 13362 [Proof.] 0. secs (0.u,0.s) -Chars 13367 - 13396 [intros~A~B~R1~R2~(Hab,~Hba).] 0. secs (0.u,0.s) -Chars 13401 - 13407 [split.] 0. secs (0.u,0.s) -Chars 13412 - 13413 [-] 0. secs (0.u,0.s) -Chars 13414 - 13447 [apply~transpose_inclusion~in~Hab.] 0. secs (0.u,0.s) -Chars 13448 - 13459 [assumption.] 0. secs (0.u,0.s) -Chars 13464 - 13465 [-] 0. secs (0.u,0.s) -Chars 13466 - 13499 [apply~transpose_inclusion~in~Hba.] 0. secs (0.u,0.s) -Chars 13500 - 13511 [assumption.] 0. secs (0.u,0.s) -Chars 13514 - 13518 [Qed.] 0. secs (0.u,0.s) -Chars 13583 - 13670 [Lemma~transpose_sym_eq_rel~{A}...] 0. secs (0.u,0.s) -Chars 13673 - 13679 [Proof.] 0. secs (0.u,0.s) -Chars 13684 - 13727 [unfold~transpose;~split;~intro...] 0. secs (0.u,0.s) -Chars 13732 - 13733 [-] 0. secs (0.u,0.s) -Chars 13734 - 13767 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 13768 - 13792 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) -Chars 13793 - 13808 [apply~(RS~y~x).] 0. secs (0.u,0.s) -Chars 13809 - 13820 [assumption.] 0. secs (0.u,0.s) -Chars 13825 - 13826 [-] 0. secs (0.u,0.s) -Chars 13827 - 13860 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 13861 - 13885 [unfold~SymmetricH~in~RS.] 0. secs (0.u,0.s) -Chars 13886 - 13901 [apply~(RS~x~y).] 0. secs (0.u,0.s) -Chars 13902 - 13913 [assumption.] 0. secs (0.u,0.s) -Chars 13916 - 13920 [Qed.] 0. secs (0.u,0.s) -Chars 13956 - 14048 [Lemma~transpose_monotone~{A}~{...] 0. secs (0.u,0.s) -Chars 14051 - 14057 [Proof.] 0. secs (0.u,0.s) -Chars 14062 - 14088 [unfold~transpose;~intros~!.] 0. secs (0.u,0.s) -Chars 14093 - 14101 [apply~H.] 0. secs (0.u,0.s) -Chars 14102 - 14107 [auto.] 0. secs (0.u,0.s) -Chars 14110 - 14114 [Qed.] 0. secs (0.u,0.s) -Chars 14116 - 14135 [End~TransposeFacts.] 0. secs (0.u,0.s) -Chars 14137 - 14158 [Section~ProdRelFacts.] 0. secs (0.u,0.s) -Chars 14274 - 14294 [Section~Equivalence.] 0. secs (0.u,0.s) -Chars 14299 - 14320 [Context~{R~S~:~Type}.] 0. secs (0.u,0.s) -Chars 14325 - 14354 [Context~(RR~:~relationH~R~R).] 0. secs (0.u,0.s) -Chars 14359 - 14388 [Context~(SS~:~relationH~S~S).] 0. secs (0.u,0.s) -Chars 14394 - 14491 [#[global]~Instance~prod_rel_re...] 0. secs (0.u,0.s) -Chars 14496 - 14502 [Proof.] 0. secs (0.u,0.s) -Chars 14509 - 14519 [intros~[].] 0. secs (0.u,0.s) -Chars 14520 - 14552 [apply~ReflexiveH_Reflexive~in~H.] 0. secs (0.u,0.s) -Chars 14553 - 14586 [apply~ReflexiveH_Reflexive~in~H0.] 0. secs (0.u,0.s) -Chars 14593 - 14597 [cbn.] 0. secs (0.u,0.s) -Chars 14598 - 14604 [split.] 0. secs (0.u,0.s) -Chars 14605 - 14613 [apply~H.] 0. secs (0.u,0.s) -Chars 14614 - 14623 [apply~H0.] 0. secs (0.u,0.s) -Chars 14628 - 14632 [Qed.] 0. secs (0.u,0.s) -Chars 14638 - 14735 [#[global]~Instance~prod_rel_sy...] 0. secs (0.u,0.s) -Chars 14740 - 14746 [Proof.] 0. secs (0.u,0.s) -Chars 14753 - 14766 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 14767 - 14799 [apply~SymmetricH_Symmetric~in~H.] 0. secs (0.u,0.s) -Chars 14800 - 14833 [apply~SymmetricH_Symmetric~in~H0.] 0. secs (0.u,0.s) -Chars 14840 - 14873 [destruct~x;~destruct~y;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 14874 - 14886 [destruct~H1.] 0. secs (0.u,0.s) -Chars 14887 - 14893 [split.] 0. secs (0.u,0.s) -Chars 14900 - 14901 [-] 0. secs (0.u,0.s) -Chars 14902 - 14925 [unfold~SymmetricH~in~H.] 0. secs (0.u,0.s) -Chars 14926 - 14934 [apply~H.] 0. secs (0.u,0.s) -Chars 14935 - 14940 [auto.] 0.021 secs (0.02u,0.s) -Chars 14947 - 14948 [-] 0. secs (0.u,0.s) -Chars 14949 - 14973 [unfold~SymmetricH~in~H0.] 0. secs (0.u,0.s) -Chars 14974 - 14983 [apply~H0.] 0. secs (0.u,0.s) -Chars 14984 - 14989 [auto.] 0. secs (0.u,0.s) -Chars 14994 - 14998 [Qed.] 0. secs (0.u,0.s) -Chars 15004 - 15106 [#[global]~Instance~prod_rel_tr...] 0. secs (0.u,0.s) -Chars 15111 - 15117 [Proof.] 0. secs (0.u,0.s) -Chars 15124 - 15132 [intros~!.] 0. secs (0.u,0.s) -Chars 15139 - 15173 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 15174 - 15209 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 15216 - 15240 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) -Chars 15247 - 15309 [inversion~H1;~inversion~H2;~su...] 0. secs (0.u,0.s) -Chars 15314 - 15318 [Qed.] 0. secs (0.u,0.s) -Chars 15324 - 15426 [#[global]~Instance~prod_rel_eq...] 0. secs (0.u,0.s) -Chars 15431 - 15437 [Proof.] 0. secs (0.u,0.s) -Chars 15444 - 15475 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 15480 - 15484 [Qed.] 0. secs (0.u,0.s) -Chars 15490 - 15571 [#[global]~Instance~prod_rel_PE...] 0. secs (0.u,0.s) -Chars 15576 - 15582 [Proof.] 0. secs (0.u,0.s) -Chars 15589 - 15601 [constructor.] 0. secs (0.u,0.s) -Chars 15608 - 15609 [-] 0. secs (0.u,0.s) -Chars 15610 - 15625 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 15634 - 15662 [eapply~SymmetricH_Symmetric.] 0. secs (0.u,0.s) -Chars 15671 - 15737 [eapply~@prod_rel_sym;~[~eapply...] 0. secs (0.u,0.s) -Chars 15746 - 15781 [eapply~SymmetricH_Symmetric;~e...] 0. secs (0.u,0.s) -Chars 15788 - 15789 [-] 0. secs (0.u,0.s) -Chars 15790 - 15820 [eapply~TransitiveH_Transitive.] 0. secs (0.u,0.s) -Chars 15829 - 15852 [eapply~@prod_rel_trans.] 0. secs (0.u,0.s) -Chars 15861 - 15862 [+] 0. secs (0.u,0.s) -Chars 15863 - 15878 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 15889 - 15926 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) -Chars 15935 - 15936 [+] 0. secs (0.u,0.s) -Chars 15937 - 15952 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 15963 - 16000 [eapply~TransitiveH_Transitive;...] 0. secs (0.u,0.s) -Chars 16005 - 16009 [Qed.] 0. secs (0.u,0.s) -Chars 16013 - 16029 [End~Equivalence.] 0. secs (0.u,0.s) -Chars 16083 - 16235 [Lemma~prod_rel_monotone~{A~B~C...] 0. secs (0.u,0.s) -Chars 16238 - 16244 [Proof.] 0. secs (0.u,0.s) -Chars 16249 - 16257 [intros~!.] 0. secs (0.u,0.s) -Chars 16258 - 16272 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 16273 - 16284 [repeat~red.] 0. secs (0.u,0.s) -Chars 16285 - 16302 [repeat~red~in~H1.] 0. secs (0.u,0.s) -Chars 16303 - 16315 [destruct~H1.] 0. secs (0.u,0.s) -Chars 16320 - 16326 [split.] 0. secs (0.u,0.s) -Chars 16331 - 16332 [-] 0. secs (0.u,0.s) -Chars 16333 - 16341 [apply~H.] 0. secs (0.u,0.s) -Chars 16342 - 16353 [assumption.] 0. secs (0.u,0.s) -Chars 16358 - 16359 [-] 0. secs (0.u,0.s) -Chars 16360 - 16369 [apply~H0.] 0. secs (0.u,0.s) -Chars 16370 - 16381 [assumption.] 0. secs (0.u,0.s) -Chars 16384 - 16388 [Qed.] 0. secs (0.u,0.s) -Chars 16451 - 16527 [Lemma~prod_rel_eq~:~forall~A~B...] 0. secs (0.u,0.s) -Chars 16530 - 16536 [Proof.] 0. secs (0.u,0.s) -Chars 16541 - 16548 [intros.] 0. secs (0.u,0.s) -Chars 16553 - 16619 [unfold~eq_rel;~split;~unfold~s...] 0. secs (0.u,0.s) -Chars 16624 - 16625 [-] 0. secs (0.u,0.s) -Chars 16626 - 16640 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 16641 - 16657 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 16658 - 16669 [destruct~H.] 0. secs (0.u,0.s) -Chars 16670 - 16699 [cbn~in~*;~subst;~reflexivity.] 0. secs (0.u,0.s) -Chars 16704 - 16705 [-] 0. secs (0.u,0.s) -Chars 16706 - 16729 [destruct~x;~destruct~y.] 0. secs (0.u,0.s) -Chars 16730 - 16739 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 16740 - 16751 [repeat~red.] 0. secs (0.u,0.s) -Chars 16752 - 16764 [inversion~H.] 0. secs (0.u,0.s) -Chars 16765 - 16784 [split;~reflexivity.] 0. secs (0.u,0.s) -Chars 16787 - 16791 [Qed.] 0. secs (0.u,0.s) -Chars 16795 - 16941 [Definition~prod_fst_rel~{A~B~:...] 0. secs (0.u,0.s) -Chars 16945 - 17091 [Definition~prod_snd_rel~{A~B~:...] 0. secs (0.u,0.s) -Chars 17095 - 17277 [Lemma~prod_inv~(A~B~:~Type)~:~...] 0. secs (0.u,0.s) -Chars 17280 - 17286 [Proof.] 0. secs (0.u,0.s) -Chars 17291 - 17298 [intros.] 0. secs (0.u,0.s) -Chars 17303 - 17314 [destruct~H.] 0. secs (0.u,0.s) -Chars 17315 - 17354 [unfold~prod_fst_rel,~prod_snd_...] 0. secs (0.u,0.s) -Chars 17355 - 17364 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 17369 - 17378 [apply~H0.] 0. secs (0.u,0.s) -Chars 17381 - 17385 [Qed.] 0. secs (0.u,0.s) -Chars 17389 - 17578 [Lemma~prod_compose~{A~B~C~D~E~...] 0. secs (0.u,0.s) -Chars 17581 - 17587 [Proof.] 0. secs (0.u,0.s) -Chars 17592 - 17607 [split;~intros~!.] 0. secs (0.u,0.s) -Chars 17612 - 17613 [-] 0. secs (0.u,0.s) -Chars 17614 - 17628 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 17629 - 17640 [repeat~red.] 0. secs (0.u,0.s) -Chars 17641 - 17657 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 17658 - 17680 [destruct~H~as~[H1~H2].] 0. secs (0.u,0.s) -Chars 17687 - 17703 [unfold~fst,~snd.] 0. secs (0.u,0.s) -Chars 17704 - 17718 [cbn~in~H1,~H2.] 0. secs (0.u,0.s) -Chars 17725 - 17755 [edestruct~H1~as~(b,~(HR,~HS)).] 0. secs (0.u,0.s) -Chars 17762 - 17792 [edestruct~H2~as~(e,~(HT,~HU)).] 0. secs (0.u,0.s) -Chars 17799 - 17813 [exists~(b,~e).] 0. secs (0.u,0.s) -Chars 17814 - 17839 [split;~cbn;~split;~eauto.] 0. secs (0.u,0.s) -Chars 17844 - 17845 [-] 0. secs (0.u,0.s) -Chars 17846 - 17860 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 17861 - 17872 [repeat~red.] 0. secs (0.u,0.s) -Chars 17873 - 17889 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 17890 - 17916 [destruct~H~as~[x~[H1~H2]].] 0. secs (0.u,0.s) -Chars 17923 - 17929 [split.] 0. secs (0.u,0.s) -Chars 17936 - 17937 [+] 0. secs (0.u,0.s) -Chars 17938 - 17953 [exists~(fst~x).] 0. secs (0.u,0.s) -Chars 17954 - 17986 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) -Chars 17993 - 17994 [+] 0. secs (0.u,0.s) -Chars 17995 - 18010 [exists~(snd~x).] 0. secs (0.u,0.s) -Chars 18011 - 18043 [cbn;~split;~[~apply~H1~|~apply...] 0. secs (0.u,0.s) -Chars 18046 - 18050 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18054 - 18160 [#[global]~Instance~Proper_prod...] 0. secs (0.u,0.s) -Chars 18163 - 18169 [Proof.] 0. secs (0.u,0.s) -Chars 18174 - 18182 [intros~!.] 0. secs (0.u,0.s) -Chars 18183 - 18283 [split;~intros~!;~destruct~x1,~...] 0.001 secs (0.001u,0.s) -Chars 18286 - 18290 [Qed.] 0. secs (0.u,0.s) -Chars 18523 - 18646 [Lemma~transpose_prod~{A~B~C~D~...] 0. secs (0.u,0.s) -Chars 18649 - 18655 [Proof.] 0. secs (0.u,0.s) -Chars 18660 - 18753 [split;~unfold~transpose;~cbn;~...] 0. secs (0.u,0.s) -Chars 18756 - 18760 [Qed.] 0. secs (0.u,0.s) -Chars 18761 - 18778 [End~ProdRelFacts.] 0. secs (0.u,0.s) -Chars 18781 - 18801 [Section~SumRelFacts.] 0. secs (0.u,0.s) -Chars 18915 - 18935 [Section~Equivalence.] 0. secs (0.u,0.s) -Chars 18940 - 18961 [Context~{A~B~:~Type}.] 0. secs (0.u,0.s) -Chars 18966 - 18994 [Context~(R~:~relationH~A~A).] 0. secs (0.u,0.s) -Chars 18999 - 19027 [Context~(S~:~relationH~B~B).] 0. secs (0.u,0.s) -Chars 19033 - 19127 [#[global]~Instance~sum_rel_ref...] 0. secs (0.u,0.s) -Chars 19132 - 19138 [Proof.] 0. secs (0.u,0.s) -Chars 19145 - 19155 [intros~[].] 0. secs (0.u,0.s) -Chars 19156 - 19189 [apply~ReflexiveH_Reflexive~in~RR.] 0. secs (0.u,0.s) -Chars 19196 - 19229 [apply~ReflexiveH_Reflexive~in~SR.] 0. secs (0.u,0.s) -Chars 19236 - 19240 [cbn.] 0. secs (0.u,0.s) -Chars 19247 - 19259 [constructor.] 0. secs (0.u,0.s) -Chars 19260 - 19269 [apply~RR.] 0. secs (0.u,0.s) -Chars 19276 - 19288 [constructor.] 0. secs (0.u,0.s) -Chars 19289 - 19298 [apply~SR.] 0. secs (0.u,0.s) -Chars 19303 - 19307 [Qed.] 0. secs (0.u,0.s) -Chars 19313 - 19406 [#[global]~Instance~sum_rel_sym...] 0. secs (0.u,0.s) -Chars 19411 - 19417 [Proof.] 0. secs (0.u,0.s) -Chars 19424 - 19437 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 19438 - 19471 [apply~SymmetricH_Symmetric~in~RS.] 0. secs (0.u,0.s) -Chars 19478 - 19511 [apply~SymmetricH_Symmetric~in~SS.] 0. secs (0.u,0.s) -Chars 19518 - 19532 [destruct~x,~y.] 0. secs (0.u,0.s) -Chars 19539 - 19540 [-] 0. secs (0.u,0.s) -Chars 19541 - 19553 [constructor.] 0. secs (0.u,0.s) -Chars 19554 - 19566 [inversion~H.] 0. secs (0.u,0.s) -Chars 19567 - 19573 [subst.] 0. secs (0.u,0.s) -Chars 19574 - 19583 [apply~RS.] 0. secs (0.u,0.s) -Chars 19584 - 19589 [auto.] 0. secs (0.u,0.s) -Chars 19596 - 19597 [-] 0. secs (0.u,0.s) -Chars 19598 - 19610 [inversion~H.] 0. secs (0.u,0.s) -Chars 19617 - 19618 [-] 0. secs (0.u,0.s) -Chars 19619 - 19631 [inversion~H.] 0. secs (0.u,0.s) -Chars 19638 - 19639 [-] 0. secs (0.u,0.s) -Chars 19640 - 19652 [constructor.] 0. secs (0.u,0.s) -Chars 19653 - 19665 [inversion~H.] 0. secs (0.u,0.s) -Chars 19666 - 19672 [subst.] 0. secs (0.u,0.s) -Chars 19673 - 19682 [apply~SS.] 0. secs (0.u,0.s) -Chars 19683 - 19688 [auto.] 0. secs (0.u,0.s) -Chars 19693 - 19697 [Qed.] 0.002 secs (0.002u,0.s) -Chars 19703 - 19802 [#[global]~Instance~sum_rel_tra...] 0. secs (0.u,0.s) -Chars 19807 - 19813 [Proof.] 0. secs (0.u,0.s) -Chars 19820 - 19828 [intros~!.] 0. secs (0.u,0.s) -Chars 19835 - 19870 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 19871 - 19906 [apply~TransitiveH_Transitive~i...] 0. secs (0.u,0.s) -Chars 19913 - 19937 [unfold~TransitiveH~in~*.] 0. secs (0.u,0.s) -Chars 19944 - 20014 [destruct~x,~y,~z;~try~contradi...] 0.006 secs (0.005u,0.001s) -Chars 20021 - 20030 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 20037 - 20049 [constructor.] 0. secs (0.u,0.s) -Chars 20050 - 20056 [eauto.] 0. secs (0.u,0.s) -Chars 20057 - 20069 [constructor.] 0. secs (0.u,0.s) -Chars 20070 - 20076 [eauto.] 0. secs (0.u,0.s) -Chars 20081 - 20085 [Qed.] 0.003 secs (0.002u,0.s) -Chars 20091 - 20190 [#[global]~Instance~sum_rel_eqv...] 0. secs (0.u,0.s) -Chars 20195 - 20201 [Proof.] 0. secs (0.u,0.s) -Chars 20208 - 20239 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 20244 - 20248 [Qed.] 0. secs (0.u,0.s) -Chars 20252 - 20268 [End~Equivalence.] 0. secs (0.u,0.s) -Chars 20321 - 20474 [Lemma~sum_rel_monotone~{A~B~C~...] 0. secs (0.u,0.s) -Chars 20477 - 20483 [Proof.] 0. secs (0.u,0.s) -Chars 20488 - 20586 [intros~!;~destruct~x,~y;~repea...] 0.002 secs (0.002u,0.s) -Chars 20589 - 20593 [Qed.] 0.001 secs (0.001u,0.s) -Chars 20632 - 20704 [Lemma~sum_rel_eq~:~forall~A~B~...] 0. secs (0.u,0.s) -Chars 20707 - 20713 [Proof.] 0. secs (0.u,0.s) -Chars 20718 - 20725 [intros.] 0. secs (0.u,0.s) -Chars 20726 - 20730 [red.] 0. secs (0.u,0.s) -Chars 20735 - 20762 [split;~repeat~intro;~eauto.] 0. secs (0.u,0.s) -Chars 20767 - 20809 [inversion~H;~subst;~auto;~try~...] 0.001 secs (0.u,0.s) -Chars 20814 - 20820 [subst.] 0. secs (0.u,0.s) -Chars 20821 - 20852 [destruct~y;~constructor;~eauto.] 0. secs (0.u,0.s) -Chars 20855 - 20859 [Qed.] 0. secs (0.u,0.s) -Chars 20863 - 21049 [Lemma~sum_compose~{A~B~C~D~E~F...] 0. secs (0.u,0.s) -Chars 21052 - 21058 [Proof.] 0. secs (0.u,0.s) -Chars 21063 - 21078 [split;~intros~!.] 0. secs (0.u,0.s) -Chars 21083 - 21084 [-] 0. secs (0.u,0.s) -Chars 21085 - 21106 [destruct~x,~y;~inv~H.] 0.006 secs (0.005u,0.s) -Chars 21113 - 21156 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) -Chars 21163 - 21206 [destruct~H2~as~(?,~(?,~?));~ee...] 0. secs (0.u,0.s) -Chars 21211 - 21212 [-] 0. secs (0.u,0.s) -Chars 21213 - 21257 [destruct~H~as~(?,~(H1,~H2));~i...] 0.003 secs (0.003u,0.s) -Chars 21264 - 21293 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) -Chars 21300 - 21329 [econstructor;~eexists;~eauto.] 0. secs (0.u,0.s) -Chars 21332 - 21336 [Qed.] 0.003 secs (0.003u,0.s) -Chars 21340 - 21444 [#[global]~Instance~Proper_sum_...] 0. secs (0.u,0.s) -Chars 21447 - 21453 [Proof.] 0. secs (0.u,0.s) -Chars 21458 - 21466 [intros~!.] 0. secs (0.u,0.s) -Chars 21471 - 21659 [split;~intros~!;~destruct~x1,~...] 0.006 secs (0.006u,0.s) -Chars 21662 - 21666 [Qed.] 0.004 secs (0.004u,0.s) -Chars 21892 - 22014 [Lemma~transpose_sum~{A~B~C~D~:...] 0. secs (0.u,0.s) -Chars 22017 - 22023 [Proof.] 0. secs (0.u,0.s) -Chars 22028 - 22173 [split;~unfold~transpose;~cbn;~...] 0.003 secs (0.003u,0.s) -Chars 22176 - 22180 [Qed.] 0.002 secs (0.002u,0.s) -Chars 22182 - 22198 [End~SumRelFacts.] 0. secs (0.u,0.s) -Chars 22200 - 22356 [Lemma~PER_reflexivityH1~:~~~fo...] 0. secs (0.u,0.s) -Chars 22357 - 22363 [Proof.] 0. secs (0.u,0.s) -Chars 22366 - 22373 [intros.] 0. secs (0.u,0.s) -Chars 22376 - 22392 [assert~(R~b~a).] 0. secs (0.u,0.s) -Chars 22393 - 22394 [{] 0. secs (0.u,0.s) -Chars 22395 - 22415 [specialize~(RS~a~b).] 0. secs (0.u,0.s) -Chars 22416 - 22425 [apply~RS.] 0. secs (0.u,0.s) -Chars 22426 - 22437 [assumption.] 0. secs (0.u,0.s) -Chars 22438 - 22439 [}] 0. secs (0.u,0.s) -Chars 22442 - 22464 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) -Chars 22465 - 22480 [apply~RT;~auto.] 0. secs (0.u,0.s) -Chars 22481 - 22485 [Qed.] 0. secs (0.u,0.s) -Chars 22487 - 22643 [Lemma~PER_reflexivityH2~:~~~fo...] 0. secs (0.u,0.s) -Chars 22644 - 22650 [Proof.] 0. secs (0.u,0.s) -Chars 22653 - 22660 [intros.] 0. secs (0.u,0.s) -Chars 22663 - 22678 [assert~(R~a~b).] 0. secs (0.u,0.s) -Chars 22679 - 22680 [{] 0. secs (0.u,0.s) -Chars 22681 - 22701 [specialize~(RS~b~a).] 0. secs (0.u,0.s) -Chars 22702 - 22711 [apply~RS.] 0. secs (0.u,0.s) -Chars 22712 - 22723 [assumption.] 0. secs (0.u,0.s) -Chars 22724 - 22725 [}] 0. secs (0.u,0.s) -Chars 22728 - 22750 [specialize~(RT~a~b~a).] 0. secs (0.u,0.s) -Chars 22751 - 22766 [apply~RT;~auto.] 0. secs (0.u,0.s) -Chars 22767 - 22771 [Qed.] 0. secs (0.u,0.s) -Chars 22773 - 23006 [Ltac~~PER_reflexivityH~:=~~~ma...] 0. secs (0.u,0.s) -Chars 23009 - 23107 [Definition~diagonal_prop~{A~:~...] 0. secs (0.u,0.s) -Chars 23109 - 23198 [Lemma~diagonal_prop_SymmetricH...] 0. secs (0.u,0.s) -Chars 23199 - 23205 [Proof.] 0. secs (0.u,0.s) -Chars 23208 - 23212 [red.] 0. secs (0.u,0.s) -Chars 23213 - 23228 [intros~a1~a2~H.] 0. secs (0.u,0.s) -Chars 23231 - 23240 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23241 - 23267 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) -Chars 23268 - 23274 [tauto.] 0. secs (0.u,0.s) -Chars 23275 - 23279 [Qed.] 0. secs (0.u,0.s) -Chars 23281 - 23372 [Lemma~diagonal_prop_Transitive...] 0. secs (0.u,0.s) -Chars 23373 - 23379 [Proof.] 0. secs (0.u,0.s) -Chars 23382 - 23386 [red.] 0. secs (0.u,0.s) -Chars 23387 - 23394 [intros.] 0. secs (0.u,0.s) -Chars 23397 - 23406 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23407 - 23433 [unfold~diagonal_prop~in~*.] 0. secs (0.u,0.s) -Chars 23436 - 23442 [tauto.] 0. secs (0.u,0.s) -Chars 23443 - 23447 [Qed.] 0. secs (0.u,0.s) -Chars 23449 - 23524 [Lemma~diagonal_prop_PER~{A~:~T...] 0. secs (0.u,0.s) -Chars 23525 - 23531 [Proof.] 0. secs (0.u,0.s) -Chars 23534 - 23546 [constructor.] 0. secs (0.u,0.s) -Chars 23549 - 23553 [red.] 0. secs (0.u,0.s) -Chars 23554 - 23561 [intros.] 0. secs (0.u,0.s) -Chars 23564 - 23573 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23574 - 23607 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) -Chars 23610 - 23614 [red.] 0. secs (0.u,0.s) -Chars 23615 - 23622 [intros.] 0. secs (0.u,0.s) -Chars 23625 - 23634 [cbn~in~*.] 0. secs (0.u,0.s) -Chars 23635 - 23668 [unfold~diagonal_prop~in~*;~tauto.] 0. secs (0.u,0.s) -Chars 23669 - 23673 [Qed.] 0. secs (0.u,0.s) -Chars 23905 - 24127 [Definition~option_rel~{X~:~Typ...] 0. secs (0.u,0.s) -Chars 24128 - 24168 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) -Chars 24170 - 24255 [Lemma~option_rel_eq~:~~~forall...] 0. secs (0.u,0.s) -Chars 24256 - 24262 [Proof.] 0. secs (0.u,0.s) -Chars 24265 - 24328 [intros~?;~split;~intros~[]~[]~...] 0.001 secs (0.001u,0.s) -Chars 24329 - 24333 [Qed.] 0. secs (0.u,0.s) -Chars 24335 - 24375 [#[export]~Hint~Unfold~option_r...] 0. secs (0.u,0.s) -Chars 24377 - 24443 [Notation~prerel~E~D:=~(forall~...] 0. secs (0.u,0.s) -Chars 24444 - 24520 [Notation~postrel~E~D:=~(forall...] 0. secs (0.u,0.s) -Chars 24522 - 24852 [Variant~sum_prerel~{E1~E2~D1~D...] 0.001 secs (0.001u,0.s) -Chars 24854 - 25198 [Variant~sum_postrel~{E1~E2~D1~...] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/Monad.v.timing b/theories/Basics/Monad.v.timing deleted file mode 100644 index 64ce76d3..00000000 --- a/theories/Basics/Monad.v.timing +++ /dev/null @@ -1,21 +0,0 @@ -Chars 65 - 107 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 109 - 158 [From~ExtLib~Require~Export~Str...] 0. secs (0.u,0.s) -Chars 160 - 229 [From~ITree~Require~Import~Basi...] 0.002 secs (0.001u,0.s) -Chars 246 - 272 [Set~Primitive~Projections.] 0. secs (0.u,0.s) -Chars 336 - 412 [Class~Eq1~(M~:~Type~->~Type)~:...] 0. secs (0.u,0.s) -Chars 414 - 436 [Arguments~eq1~{M~_~_}.] 0. secs (0.u,0.s) -Chars 437 - 484 [Infix~"≈"~:=~eq1~(~at~level~70...] 0. secs (0.u,0.s) -Chars 537 - 651 [Class~Eq1Equivalence~(M~:~Type...] 0. secs (0.u,0.s) -Chars 653 - 691 [#[global]~Existing~Instance~eq...] 0. secs (0.u,0.s) -Chars 693 - 706 [Section~Laws.] 0. secs (0.u,0.s) -Chars 710 - 737 [Context~(M~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 740 - 763 [Context~{Eq1~:~@Eq1~M}.] 0. secs (0.u,0.s) -Chars 766 - 792 [Context~{Monad~:~Monad~M}.] 0. secs (0.u,0.s) -Chars 796 - 825 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 999 - 1456 [Class~MonadLawsE~:~Prop~:={~~~...] 0.002 secs (0.001u,0.s) -Chars 1458 - 1467 [End~Laws.] 0. secs (0.u,0.s) -Chars 1469 - 1509 [#[global]~Existing~Instance~Pr...] 0. secs (0.u,0.s) -Chars 1511 - 1542 [Arguments~bind_ret_l~{M~_~_~_}.] 0. secs (0.u,0.s) -Chars 1543 - 1574 [Arguments~bind_ret_r~{M~_~_~_}.] 0. secs (0.u,0.s) -Chars 1575 - 1605 [Arguments~bind_bind~{M~_~_~_}.] 0. secs (0.u,0.s) -Chars 1606 - 1638 [Arguments~Proper_bind~{M~_~_~_}.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadProp.v.timing b/theories/Basics/MonadProp.v.timing deleted file mode 100644 index df2a9363..00000000 --- a/theories/Basics/MonadProp.v.timing +++ /dev/null @@ -1,232 +0,0 @@ -Chars 17 - 86 [From~Stdlib~Require~Import~Ens...] 0.005 secs (0.003u,0.002s) -Chars 88 - 137 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 139 - 251 [From~ITree~Require~Import~Basi...] 0.005 secs (0.004u,0.001s) -Chars 253 - 287 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 288 - 308 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 309 - 336 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 337 - 358 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) -Chars 360 - 373 [Section~prop.] 0. secs (0.u,0.s) -Chars 376 - 534 [#[global]~Instance~Monad_Prop~...] 0. secs (0.u,0.s) -Chars 538 - 590 [#[global]~Instance~Eq1_Prop~:~...] 0. secs (0.u,0.s) -Chars 594 - 656 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) -Chars 659 - 665 [Proof.] 0. secs (0.u,0.s) -Chars 670 - 682 [constructor.] 0. secs (0.u,0.s) -Chars 687 - 688 [-] 0. secs (0.u,0.s) -Chars 689 - 715 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) -Chars 720 - 721 [-] 0. secs (0.u,0.s) -Chars 722 - 735 [repeat~intro.] 0. secs (0.u,0.s) -Chars 736 - 747 [destruct~H.] 0. secs (0.u,0.s) -Chars 748 - 760 [split;~auto.] 0. secs (0.u,0.s) -Chars 765 - 766 [-] 0. secs (0.u,0.s) -Chars 767 - 780 [repeat~intro.] 0. secs (0.u,0.s) -Chars 781 - 796 [destruct~H,~H0.] 0. secs (0.u,0.s) -Chars 797 - 823 [split;~repeat~intro;~auto.] 0. secs (0.u,0.s) -Chars 826 - 830 [Qed.] 0. secs (0.u,0.s) -Chars 834 - 881 [Instance~MonadLawsE_Prop~:~(Mo...] 0. secs (0.u,0.s) -Chars 884 - 890 [Proof.] 0. secs (0.u,0.s) -Chars 895 - 907 [constructor.] 0. secs (0.u,0.s) -Chars 912 - 913 [-] 0. secs (0.u,0.s) -Chars 914 - 946 [split;~repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) -Chars 953 - 954 [+] 0. secs (0.u,0.s) -Chars 955 - 981 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 982 - 991 [red~in~H.] 0. secs (0.u,0.s) -Chars 992 - 1004 [subst;~auto.] 0. secs (0.u,0.s) -Chars 1011 - 1012 [+] 0. secs (0.u,0.s) -Chars 1013 - 1035 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 1036 - 1048 [reflexivity.] 0. secs (0.u,0.s) -Chars 1053 - 1054 [-] 0. secs (0.u,0.s) -Chars 1055 - 1061 [split.] 0. secs (0.u,0.s) -Chars 1062 - 1087 [repeat~intro;~simpl~in~*.] 0. secs (0.u,0.s) -Chars 1094 - 1095 [+] 0. secs (0.u,0.s) -Chars 1096 - 1122 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 1123 - 1146 [red~in~H0;~subst;~auto.] 0. secs (0.u,0.s) -Chars 1153 - 1154 [+] 0. secs (0.u,0.s) -Chars 1155 - 1159 [red.] 0. secs (0.u,0.s) -Chars 1160 - 1173 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1174 - 1196 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 1197 - 1209 [reflexivity.] 0. secs (0.u,0.s) -Chars 1214 - 1215 [-] 0. secs (0.u,0.s) -Chars 1216 - 1379 [intros;~split;~repeat~intro;~s...] 0.001 secs (0.u,0.s) -Chars 1384 - 1385 [-] 0. secs (0.u,0.s) -Chars 1386 - 1405 [repeat~intro;~auto.] 0. secs (0.u,0.s) -Chars 1406 - 1417 [destruct~H.] 0. secs (0.u,0.s) -Chars 1424 - 1532 [split;~simpl;~repeat~red;~intr...] 0.001 secs (0.u,0.s) -Chars 1535 - 1539 [Qed.] 0.002 secs (0.001u,0.s) -Chars 1543 - 1681 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) -Chars 1684 - 1690 [Proof.] 0. secs (0.u,0.s) -Chars 1695 - 1805 [repeat~red;~split;~repeat~intr...] 0.001 secs (0.001u,0.s) -Chars 1807 - 1811 [Qed.] 0. secs (0.u,0.s) -Chars 1815 - 1883 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) -Chars 1886 - 1892 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1929 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) -Chars 1934 - 1935 [-] 0. secs (0.u,0.s) -Chars 1936 - 1957 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 1958 - 1969 [destruct~H.] 0. secs (0.u,0.s) -Chars 1976 - 1977 [+] 0. secs (0.u,0.s) -Chars 1978 - 1993 [exists~(inr~x).] 0. secs (0.u,0.s) -Chars 1994 - 2018 [split;~repeat~red;~auto.] 0. secs (0.u,0.s) -Chars 2025 - 2026 [+] 0. secs (0.u,0.s) -Chars 2027 - 2049 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 2054 - 2055 [-] 0. secs (0.u,0.s) -Chars 2056 - 2077 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 2078 - 2108 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) -Chars 2109 - 2121 [destruct~x0.] 0. secs (0.u,0.s) -Chars 2128 - 2129 [+] 0. secs (0.u,0.s) -Chars 2130 - 2152 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 2159 - 2160 [+] 0. secs (0.u,0.s) -Chars 2161 - 2175 [constructor~1.] 0. secs (0.u,0.s) -Chars 2176 - 2193 [repeat~red~in~H2.] 0. secs (0.u,0.s) -Chars 2194 - 2206 [subst;~auto.] 0. secs (0.u,0.s) -Chars 2209 - 2213 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2217 - 2287 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) -Chars 2290 - 2296 [Proof.] 0. secs (0.u,0.s) -Chars 2301 - 2333 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) -Chars 2338 - 2339 [-] 0. secs (0.u,0.s) -Chars 2340 - 2361 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 2362 - 2392 [decompose~[~ex~and~]~H;~clear~H.] 0. secs (0.u,0.s) -Chars 2393 - 2406 [induction~H1.] 0. secs (0.u,0.s) -Chars 2413 - 2414 [+] 0. secs (0.u,0.s) -Chars 2415 - 2429 [constructor~1.] 0. secs (0.u,0.s) -Chars 2430 - 2452 [eexists;~split;~eauto.] 0.007 secs (0.007u,0.s) -Chars 2453 - 2475 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 2476 - 2488 [reflexivity.] 0. secs (0.u,0.s) -Chars 2495 - 2496 [+] 0. secs (0.u,0.s) -Chars 2497 - 2531 [econstructor~2;~repeat~red;~ea...] 0. secs (0.u,0.s) -Chars 2540 - 2562 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 2563 - 2591 [eexists;~split;~reflexivity.] 0. secs (0.u,0.s) -Chars 2596 - 2597 [-] 0. secs (0.u,0.s) -Chars 2598 - 2619 [repeat~red~in~H~|-~*.] 0. secs (0.u,0.s) -Chars 2626 - 2686 [induction~H;~repeat~red~in~H;~...] 0. secs (0.u,0.s) -Chars 2693 - 2694 [+] 0. secs (0.u,0.s) -Chars 2695 - 2756 [destruct~x;~destruct~H2~as~(?,...] 0. secs (0.u,0.s) -Chars 2765 - 2787 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 2788 - 2802 [constructor~1.] 0. secs (0.u,0.s) -Chars 2803 - 2808 [auto.] 0. secs (0.u,0.s) -Chars 2815 - 2816 [+] 0. secs (0.u,0.s) -Chars 2817 - 2888 [destruct~x;~destruct~H3~as~(?,...] 0. secs (0.u,0.s) -Chars 2897 - 2947 [decompose~[~ex~and~]~IHiter_Pr...] 0. secs (0.u,0.s) -Chars 2956 - 2984 [inversion~H;~clear~H;~subst.] 0. secs (0.u,0.s) -Chars 2993 - 3015 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3016 - 3038 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 3041 - 3045 [Qed.] 0.003 secs (0.003u,0.s) -Chars 3049 - 3123 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) -Chars 3126 - 3132 [Proof.] 0. secs (0.u,0.s) -Chars 3137 - 3169 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) -Chars 3174 - 3175 [-] 0. secs (0.u,0.s) -Chars 3176 - 3215 [induction~H;~destruct~H~as~(?,...] 0. secs (0.u,0.s) -Chars 3222 - 3223 [+] 0. secs (0.u,0.s) -Chars 3224 - 3253 [destruct~x;~repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 3262 - 3263 [*] 0. secs (0.u,0.s) -Chars 3264 - 3286 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3287 - 3305 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3306 - 3328 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3329 - 3341 [reflexivity.] 0. secs (0.u,0.s) -Chars 3350 - 3351 [*] 0. secs (0.u,0.s) -Chars 3352 - 3372 [inversion~H0;~subst.] 0. secs (0.u,0.s) -Chars 3373 - 3395 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3396 - 3414 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 3421 - 3422 [+] 0. secs (0.u,0.s) -Chars 3423 - 3470 [destruct~x;~repeat~red~in~H1;~...] 0. secs (0.u,0.s) -Chars 3479 - 3515 [destruct~IHiter_Prop~as~(?,~(?...] 0. secs (0.u,0.s) -Chars 3516 - 3550 [destruct~x;~eexists;~split;~ea...] 0. secs (0.u,0.s) -Chars 3559 - 3560 [*] 0. secs (0.u,0.s) -Chars 3561 - 3583 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 3584 - 3606 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3615 - 3616 [*] 0. secs (0.u,0.s) -Chars 3617 - 3634 [repeat~red~in~H3.] 0. secs (0.u,0.s) -Chars 3635 - 3641 [subst.] 0. secs (0.u,0.s) -Chars 3642 - 3653 [repeat~red.] 0. secs (0.u,0.s) -Chars 3654 - 3668 [constructor~1.] 0. secs (0.u,0.s) -Chars 3669 - 3691 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3696 - 3697 [-] 0. secs (0.u,0.s) -Chars 3698 - 3724 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 3725 - 3755 [destruct~x0;~repeat~red~in~H0.] 0. secs (0.u,0.s) -Chars 3762 - 3763 [+] 0. secs (0.u,0.s) -Chars 3764 - 3788 [generalize~dependent~a0.] 0. secs (0.u,0.s) -Chars 3789 - 3837 [induction~H0;~intros;~destruct...] 0. secs (0.u,0.s) -Chars 3846 - 3847 [*] 0. secs (0.u,0.s) -Chars 3848 - 3859 [destruct~x.] 0. secs (0.u,0.s) -Chars 3870 - 3872 [--] 0. secs (0.u,0.s) -Chars 3873 - 3895 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 3896 - 3918 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3932 - 3946 [constructor~1.] 0. secs (0.u,0.s) -Chars 3947 - 3969 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 3970 - 3982 [reflexivity.] 0. secs (0.u,0.s) -Chars 3993 - 3995 [--] 0. secs (0.u,0.s) -Chars 3996 - 4026 [inversion~H1;~clear~H1;~subst.] 0. secs (0.u,0.s) -Chars 4027 - 4041 [constructor~1.] 0. secs (0.u,0.s) -Chars 4042 - 4064 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 4073 - 4074 [*] 0. secs (0.u,0.s) -Chars 4075 - 4104 [destruct~x;~try~inversion~H2.] 0. secs (0.u,0.s) -Chars 4115 - 4137 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 4138 - 4142 [2:~{] 0. secs (0.u,0.s) -Chars 4143 - 4161 [apply~IHiter_Prop.] 0. secs (0.u,0.s) -Chars 4162 - 4171 [apply~H2.] 0. secs (0.u,0.s) -Chars 4172 - 4173 [}] 0. secs (0.u,0.s) -Chars 4184 - 4206 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 4213 - 4214 [+] 0. secs (0.u,0.s) -Chars 4215 - 4221 [subst.] 0. secs (0.u,0.s) -Chars 4222 - 4236 [constructor~1.] 0. secs (0.u,0.s) -Chars 4237 - 4259 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 4260 - 4272 [reflexivity.] 0. secs (0.u,0.s) -Chars 4275 - 4279 [Qed.] 0.018 secs (0.018u,0.s) -Chars 4283 - 4362 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) -Chars 4365 - 4371 [Proof.] 0. secs (0.u,0.s) -Chars 4376 - 4408 [repeat~red;~split;~repeat~intro.] 0. secs (0.u,0.s) -Chars 4413 - 4414 [-] 0. secs (0.u,0.s) -Chars 4415 - 4427 [induction~H.] 0. secs (0.u,0.s) -Chars 4434 - 4435 [+] 0. secs (0.u,0.s) -Chars 4436 - 4453 [remember~(inr~r).] 0. secs (0.u,0.s) -Chars 4454 - 4477 [generalize~dependent~r.] 0. secs (0.u,0.s) -Chars 4478 - 4505 [induction~H;~intros;~subst.] 0. secs (0.u,0.s) -Chars 4514 - 4515 [*] 0. secs (0.u,0.s) -Chars 4516 - 4530 [constructor~1.] 0. secs (0.u,0.s) -Chars 4531 - 4566 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) -Chars 4575 - 4576 [*] 0. secs (0.u,0.s) -Chars 4577 - 4592 [econstructor~2.] 0. secs (0.u,0.s) -Chars 4593 - 4597 [2:~{] 0. secs (0.u,0.s) -Chars 4598 - 4622 [apply~IHiter_Prop;~auto.] 0. secs (0.u,0.s) -Chars 4623 - 4624 [}] 0. secs (0.u,0.s) -Chars 4635 - 4670 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) -Chars 4677 - 4678 [+] 0. secs (0.u,0.s) -Chars 4679 - 4697 [remember~(inl~i').] 0. secs (0.u,0.s) -Chars 4698 - 4722 [generalize~dependent~i'.] 0. secs (0.u,0.s) -Chars 4723 - 4750 [induction~H;~intros;~subst.] 0.001 secs (0.001u,0.s) -Chars 4759 - 4760 [*] 0. secs (0.u,0.s) -Chars 4761 - 4783 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 4784 - 4819 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) -Chars 4828 - 4829 [*] 0. secs (0.u,0.s) -Chars 4830 - 4845 [econstructor~2.] 0. secs (0.u,0.s) -Chars 4846 - 4850 [2:~{] 0. secs (0.u,0.s) -Chars 4851 - 4877 [eapply~IHiter_Prop;~eauto.] 0. secs (0.u,0.s) -Chars 4878 - 4879 [}] 0. secs (0.u,0.s) -Chars 4890 - 4925 [eexists;~split;~eauto;~reflexi...] 0. secs (0.u,0.s) -Chars 4930 - 4931 [-] 0. secs (0.u,0.s) -Chars 4932 - 4944 [induction~H.] 0. secs (0.u,0.s) -Chars 4951 - 4952 [+] 0. secs (0.u,0.s) -Chars 4953 - 4979 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 4980 - 5039 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) -Chars 5048 - 5062 [constructor~1.] 0. secs (0.u,0.s) -Chars 5063 - 5077 [constructor~1.] 0. secs (0.u,0.s) -Chars 5078 - 5083 [auto.] 0. secs (0.u,0.s) -Chars 5090 - 5091 [+] 0. secs (0.u,0.s) -Chars 5092 - 5118 [destruct~H~as~(?,~(?,~?)).] 0. secs (0.u,0.s) -Chars 5127 - 5186 [destruct~x~as~[?|~[?|~?]];~inv...] 0.001 secs (0.001u,0.s) -Chars 5195 - 5196 [*] 0. secs (0.u,0.s) -Chars 5197 - 5218 [destruct~IHiter_Prop.] 0. secs (0.u,0.s) -Chars 5229 - 5231 [--] 0. secs (0.u,0.s) -Chars 5232 - 5246 [constructor~1.] 0. secs (0.u,0.s) -Chars 5247 - 5269 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 5280 - 5282 [--] 0. secs (0.u,0.s) -Chars 5283 - 5305 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 5306 - 5328 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 5337 - 5338 [*] 0. secs (0.u,0.s) -Chars 5339 - 5361 [econstructor~2;~eauto.] 0. secs (0.u,0.s) -Chars 5362 - 5376 [constructor~1.] 0. secs (0.u,0.s) -Chars 5377 - 5385 [apply~H.] 0. secs (0.u,0.s) -Chars 5388 - 5392 [Qed.] 0.004 secs (0.004u,0.s) -Chars 5396 - 5462 [#[global]~Instance~Iterative_P...] 0. secs (0.u,0.s) -Chars 5465 - 5471 [Proof.] 0. secs (0.u,0.s) -Chars 5476 - 5507 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 5510 - 5514 [Qed.] 0. secs (0.u,0.s) -Chars 5516 - 5525 [End~prop.] 0. secs (0.u,0.s) diff --git a/theories/Basics/MonadState.v.timing b/theories/Basics/MonadState.v.timing deleted file mode 100644 index feed581d..00000000 --- a/theories/Basics/MonadState.v.timing +++ /dev/null @@ -1,400 +0,0 @@ -Chars 17 - 71 [From~Stdlib~Require~Import~Set...] 0.006 secs (0.004u,0.002s) -Chars 73 - 122 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 124 - 269 [From~ITree~Require~Import~Basi...] 0.01 secs (0.008u,0.001s) -Chars 271 - 305 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 306 - 326 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 327 - 354 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 355 - 376 [#[local]~Open~Scope~cat.] 0. secs (0.u,0.s) -Chars 378 - 392 [Section~State.] 0. secs (0.u,0.s) -Chars 395 - 421 [Variable~(M~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 424 - 442 [Variable~(S~:~Type).] 0. secs (0.u,0.s) -Chars 445 - 467 [Context~{EQM~:~Eq1~M}.] 0. secs (0.u,0.s) -Chars 470 - 492 [Context~{HM~:~Monad~M}.] 0. secs (0.u,0.s) -Chars 495 - 535 [Context~{HEQP~:~@Eq1Equivalenc...] 0. secs (0.u,0.s) -Chars 538 - 571 [Context~{ML~:~@MonadLawsE~M~_~...] 0. secs (0.u,0.s) -Chars 575 - 622 [#[global]~Instance~Eq1_stateTM...] 0. secs (0.u,0.s) -Chars 625 - 631 [Proof.] 0. secs (0.u,0.s) -Chars 636 - 678 [exact~(fun~a~=>~pointwise_rela...] 0. secs (0.u,0.s) -Chars 681 - 689 [Defined.] 0. secs (0.u,0.s) -Chars 693 - 777 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) -Chars 780 - 786 [Proof.] 0. secs (0.u,0.s) -Chars 789 - 801 [constructor.] 0. secs (0.u,0.s) -Chars 804 - 805 [-] 0. secs (0.u,0.s) -Chars 806 - 817 [repeat~red.] 0. secs (0.u,0.s) -Chars 822 - 834 [reflexivity.] 0. secs (0.u,0.s) -Chars 837 - 838 [-] 0. secs (0.u,0.s) -Chars 839 - 850 [repeat~red.] 0. secs (0.u,0.s) -Chars 851 - 858 [intros.] 0. secs (0.u,0.s) -Chars 859 - 868 [symmetry.] 0. secs (0.u,0.s) -Chars 869 - 877 [apply~H.] 0. secs (0.u,0.s) -Chars 880 - 881 [-] 0. secs (0.u,0.s) -Chars 882 - 893 [repeat~red.] 0. secs (0.u,0.s) -Chars 894 - 901 [intros.] 0. secs (0.u,0.s) -Chars 902 - 923 [etransitivity;~eauto.] 0. secs (0.u,0.s) -Chars 924 - 932 [apply~H.] 0. secs (0.u,0.s) -Chars 934 - 943 [apply~H0.] 0. secs (0.u,0.s) -Chars 946 - 950 [Qed.] 0. secs (0.u,0.s) -Chars 954 - 1013 [Instance~MonadLawsE_stateTM~:~...] 0. secs (0.u,0.s) -Chars 1016 - 1022 [Proof.] 0. secs (0.u,0.s) -Chars 1025 - 1037 [constructor.] 0. secs (0.u,0.s) -Chars 1040 - 1041 [-] 0. secs (0.u,0.s) -Chars 1042 - 1046 [cbn.] 0. secs (0.u,0.s) -Chars 1047 - 1062 [intros~a~b~f~x.] 0. secs (0.u,0.s) -Chars 1067 - 1078 [repeat~red.] 0. secs (0.u,0.s) -Chars 1080 - 1089 [intros~s.] 0. secs (0.u,0.s) -Chars 1094 - 1113 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 1114 - 1126 [reflexivity.] 0. secs (0.u,0.s) -Chars 1129 - 1130 [-] 0. secs (0.u,0.s) -Chars 1131 - 1135 [cbn.] 0. secs (0.u,0.s) -Chars 1136 - 1147 [intros~a~x.] 0. secs (0.u,0.s) -Chars 1152 - 1163 [repeat~red.] 0. secs (0.u,0.s) -Chars 1164 - 1173 [intros~s.] 0. secs (0.u,0.s) -Chars 1178 - 1279 [assert~~(EQM~_~(bind~(x~s)~(fu...] 0. secs (0.u,0.s) -Chars 1284 - 1285 [{] 0. secs (0.u,0.s) -Chars 1286 - 1304 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 1305 - 1317 [reflexivity.] 0. secs (0.u,0.s) -Chars 1318 - 1325 [intros.] 0. secs (0.u,0.s) -Chars 1327 - 1338 [repeat~red.] 0. secs (0.u,0.s) -Chars 1339 - 1364 [destruct~a0;~reflexivity.] 0. secs (0.u,0.s) -Chars 1365 - 1366 [}] 0. secs (0.u,0.s) -Chars 1371 - 1381 [rewrite~H.] 0. secs (0.u,0.s) -Chars 1386 - 1405 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) -Chars 1406 - 1418 [reflexivity.] 0. secs (0.u,0.s) -Chars 1421 - 1422 [-] 0. secs (0.u,0.s) -Chars 1423 - 1427 [cbn.] 0. secs (0.u,0.s) -Chars 1428 - 1447 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) -Chars 1452 - 1463 [repeat~red.] 0. secs (0.u,0.s) -Chars 1464 - 1473 [intros~s.] 0. secs (0.u,0.s) -Chars 1478 - 1496 [rewrite~bind_bind.] 0.001 secs (0.u,0.s) -Chars 1501 - 1519 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 1524 - 1525 [+] 0. secs (0.u,0.s) -Chars 1526 - 1538 [reflexivity.] 0. secs (0.u,0.s) -Chars 1543 - 1544 [+] 0. secs (0.u,0.s) -Chars 1545 - 1557 [reflexivity.] 0. secs (0.u,0.s) -Chars 1560 - 1561 [-] 0. secs (0.u,0.s) -Chars 1562 - 1573 [repeat~red.] 0. secs (0.u,0.s) -Chars 1574 - 1602 [intros~a~b~x~y~H~x0~y0~H0~s.] 0. secs (0.u,0.s) -Chars 1607 - 1625 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 1630 - 1631 [+] 0. secs (0.u,0.s) -Chars 1632 - 1640 [apply~H.] 0. secs (0.u,0.s) -Chars 1645 - 1646 [+] 0. secs (0.u,0.s) -Chars 1647 - 1658 [repeat~red.] 0. secs (0.u,0.s) -Chars 1665 - 1677 [destruct~a0.] 0. secs (0.u,0.s) -Chars 1684 - 1693 [apply~H0.] 0. secs (0.u,0.s) -Chars 1696 - 1700 [Qed.] 0.002 secs (0.001u,0.s) -Chars 1704 - 1739 [Context~{IM~:~Iter~(Kleisli~M)...] 0. secs (0.u,0.s) -Chars 1742 - 1782 [Context~{CM~:~Iterative~(Kleis...] 0. secs (0.u,0.s) -Chars 1786 - 1944 [Definition~iso~{a~b~:~Type}~(s...] 0. secs (0.u,0.s) -Chars 1948 - 2110 [Definition~iso_inv~{a~b~:~Type...] 0. secs (0.u,0.s) -Chars 2114 - 2254 [Definition~internalize~{a~b~:~...] 0. secs (0.u,0.s) -Chars 2258 - 2377 [Lemma~internalize_eq~{a~b~:~Ty...] 0. secs (0.u,0.s) -Chars 2380 - 2386 [Proof.] 0. secs (0.u,0.s) -Chars 2391 - 2397 [split.] 0. secs (0.u,0.s) -Chars 2402 - 2403 [-] 0. secs (0.u,0.s) -Chars 2404 - 2411 [intros.] 0. secs (0.u,0.s) -Chars 2418 - 2429 [repeat~red.] 0. secs (0.u,0.s) -Chars 2430 - 2442 [destruct~a0.] 0.007 secs (0.007u,0.s) -Chars 2449 - 2468 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 2469 - 2473 [cbn.] 0. secs (0.u,0.s) -Chars 2475 - 2483 [apply~H.] 0. secs (0.u,0.s) -Chars 2488 - 2489 [-] 0. secs (0.u,0.s) -Chars 2490 - 2497 [intros.] 0. secs (0.u,0.s) -Chars 2504 - 2515 [repeat~red.] 0. secs (0.u,0.s) -Chars 2516 - 2523 [intros.] 0. secs (0.u,0.s) -Chars 2530 - 2554 [unfold~internalize~in~H.] 0. secs (0.u,0.s) -Chars 2561 - 2585 [specialize~(H~(a1,~a0)).] 0. secs (0.u,0.s) -Chars 2592 - 2600 [apply~H.] 0. secs (0.u,0.s) -Chars 2603 - 2607 [Qed.] 0. secs (0.u,0.s) -Chars 2612 - 2776 [Lemma~internalize_cat~{a}~{b}~...] 0. secs (0.u,0.s) -Chars 2779 - 2785 [Proof.] 0. secs (0.u,0.s) -Chars 2790 - 2801 [repeat~red.] 0. secs (0.u,0.s) -Chars 2806 - 2818 [destruct~a0.] 0. secs (0.u,0.s) -Chars 2823 - 2827 [cbn.] 0. secs (0.u,0.s) -Chars 2832 - 2851 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 2856 - 2880 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 2885 - 2889 [cbn.] 0. secs (0.u,0.s) -Chars 2894 - 2906 [reflexivity.] 0. secs (0.u,0.s) -Chars 2909 - 2913 [Qed.] 0. secs (0.u,0.s) -Chars 2918 - 3089 [Lemma~internalize_pure~{a}~{b}...] 0. secs (0.u,0.s) -Chars 3092 - 3098 [Proof.] 0. secs (0.u,0.s) -Chars 3103 - 3114 [repeat~red.] 0. secs (0.u,0.s) -Chars 3119 - 3131 [destruct~a0.] 0. secs (0.u,0.s) -Chars 3136 - 3173 [unfold~internalize,~cat,~Cat_K...] 0. secs (0.u,0.s) -Chars 3174 - 3178 [cbn.] 0. secs (0.u,0.s) -Chars 3183 - 3207 [apply~Proper_bind;~auto.] 0. secs (0.u,0.s) -Chars 3212 - 3213 [-] 0. secs (0.u,0.s) -Chars 3214 - 3226 [reflexivity.] 0. secs (0.u,0.s) -Chars 3231 - 3232 [-] 0. secs (0.u,0.s) -Chars 3233 - 3244 [repeat~red.] 0. secs (0.u,0.s) -Chars 3251 - 3263 [destruct~a1.] 0. secs (0.u,0.s) -Chars 3270 - 3282 [unfold~pure.] 0. secs (0.u,0.s) -Chars 3283 - 3295 [reflexivity.] 0. secs (0.u,0.s) -Chars 3298 - 3302 [Qed.] 0. secs (0.u,0.s) -Chars 3307 - 3370 [#[global]~Instance~Iter_stateT...] 0. secs (0.u,0.s) -Chars 3373 - 3379 [Proof.] 0. secs (0.u,0.s) -Chars 3384 - 3515 [exact~~~(fun~(a~b~:~Type)~(f~:...] 0. secs (0.u,0.s) -Chars 3518 - 3526 [Defined.] 0. secs (0.u,0.s) -Chars 3530 - 3670 [#[global]~Instance~Proper_Iter...] 0. secs (0.u,0.s) -Chars 3673 - 3679 [Proof.] 0. secs (0.u,0.s) -Chars 3684 - 3696 [destruct~CM.] 0. secs (0.u,0.s) -Chars 3701 - 3712 [repeat~red.] 0. secs (0.u,0.s) -Chars 3717 - 3739 [intros~a~b~x~y~H~a0~s.] 0. secs (0.u,0.s) -Chars 3744 - 3772 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 3777 - 3788 [repeat~red.] 0. secs (0.u,0.s) -Chars 3793 - 3805 [destruct~a1.] 0. secs (0.u,0.s) -Chars 3810 - 3814 [cbn.] 0. secs (0.u,0.s) -Chars 3819 - 3837 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 3842 - 3843 [-] 0. secs (0.u,0.s) -Chars 3844 - 3852 [apply~H.] 0. secs (0.u,0.s) -Chars 3857 - 3858 [-] 0. secs (0.u,0.s) -Chars 3859 - 3870 [repeat~red.] 0. secs (0.u,0.s) -Chars 3871 - 3912 [destruct~a2~as~[s'~[x1|~y1]];~...] 0. secs (0.u,0.s) -Chars 3914 - 3918 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3922 - 3997 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) -Chars 4000 - 4006 [Proof.] 0. secs (0.u,0.s) -Chars 4009 - 4021 [destruct~CM.] 0. secs (0.u,0.s) -Chars 4024 - 4042 [unfold~IterUnfold.] 0. secs (0.u,0.s) -Chars 4045 - 4058 [intros~a~b~f.] 0. secs (0.u,0.s) -Chars 4061 - 4072 [repeat~red.] 0. secs (0.u,0.s) -Chars 4075 - 4087 [intros~a0~s.] 0. secs (0.u,0.s) -Chars 4090 - 4114 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 4117 - 4143 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) -Chars 4146 - 4171 [rewrite~iterative_unfold.] 0.002 secs (0.002u,0.s) -Chars 4222 - 4246 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 4249 - 4255 [simpl.] 0. secs (0.u,0.s) -Chars 4258 - 4276 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) -Chars 4279 - 4297 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 4300 - 4301 [+] 0. secs (0.u,0.s) -Chars 4302 - 4314 [reflexivity.] 0. secs (0.u,0.s) -Chars 4317 - 4318 [+] 0. secs (0.u,0.s) -Chars 4319 - 4330 [repeat~red.] 0. secs (0.u,0.s) -Chars 4331 - 4366 [destruct~a1~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) -Chars 4371 - 4372 [*] 0. secs (0.u,0.s) -Chars 4373 - 4385 [unfold~pure.] 0. secs (0.u,0.s) -Chars 4386 - 4405 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 4412 - 4424 [reflexivity.] 0. secs (0.u,0.s) -Chars 4429 - 4430 [*] 0. secs (0.u,0.s) -Chars 4431 - 4443 [unfold~pure.] 0. secs (0.u,0.s) -Chars 4444 - 4463 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 4470 - 4482 [reflexivity.] 0. secs (0.u,0.s) -Chars 4485 - 4489 [Qed.] 0.003 secs (0.003u,0.s) -Chars 4493 - 4570 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) -Chars 4573 - 4579 [Proof.] 0. secs (0.u,0.s) -Chars 4584 - 4596 [destruct~CM.] 0. secs (0.u,0.s) -Chars 4601 - 4620 [unfold~IterNatural.] 0. secs (0.u,0.s) -Chars 4625 - 4642 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 4647 - 4658 [repeat~red.] 0. secs (0.u,0.s) -Chars 4663 - 4675 [intros~a0~s.] 0. secs (0.u,0.s) -Chars 4680 - 4713 [setoid_rewrite~iterative_natural.] 0.012 secs (0.012u,0.s) -Chars 4718 - 4746 [apply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 4751 - 4762 [repeat~red.] 0. secs (0.u,0.s) -Chars 4767 - 4779 [destruct~a1.] 0. secs (0.u,0.s) -Chars 4784 - 4808 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 4813 - 4817 [cbn.] 0. secs (0.u,0.s) -Chars 4822 - 4841 [rewrite~!bind_bind.] 0.01 secs (0.007u,0.002s) -Chars 4846 - 4864 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 4869 - 4870 [-] 0. secs (0.u,0.s) -Chars 4871 - 4883 [reflexivity.] 0. secs (0.u,0.s) -Chars 4888 - 4889 [-] 0. secs (0.u,0.s) -Chars 4890 - 4901 [repeat~red.] 0. secs (0.u,0.s) -Chars 4902 - 4937 [destruct~a2~as~[s'~[x|~y]];~si...] 0. secs (0.u,0.s) -Chars 4944 - 4945 [+] 0. secs (0.u,0.s) -Chars 4946 - 4958 [unfold~pure.] 0. secs (0.u,0.s) -Chars 4959 - 4978 [rewrite~bind_ret_l.] 0.003 secs (0.002u,0.s) -Chars 4987 - 4991 [cbn.] 0. secs (0.u,0.s) -Chars 4992 - 5016 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 5017 - 5021 [cbn.] 0. secs (0.u,0.s) -Chars 5030 - 5048 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 5057 - 5076 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 5085 - 5104 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 5113 - 5117 [cbn.] 0. secs (0.u,0.s) -Chars 5126 - 5149 [unfold~id_,~Id_Kleisli.] 0. secs (0.u,0.s) -Chars 5150 - 5162 [unfold~pure.] 0. secs (0.u,0.s) -Chars 5163 - 5182 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 5183 - 5195 [reflexivity.] 0. secs (0.u,0.s) -Chars 5202 - 5203 [+] 0. secs (0.u,0.s) -Chars 5204 - 5216 [unfold~pure.] 0. secs (0.u,0.s) -Chars 5217 - 5236 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 5245 - 5249 [cbn.] 0. secs (0.u,0.s) -Chars 5250 - 5274 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 5275 - 5279 [cbn.] 0. secs (0.u,0.s) -Chars 5288 - 5306 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 5315 - 5333 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 5342 - 5343 [*] 0. secs (0.u,0.s) -Chars 5344 - 5356 [reflexivity.] 0. secs (0.u,0.s) -Chars 5365 - 5366 [*] 0. secs (0.u,0.s) -Chars 5367 - 5378 [repeat~red.] 0. secs (0.u,0.s) -Chars 5379 - 5391 [destruct~a2.] 0. secs (0.u,0.s) -Chars 5402 - 5406 [cbn.] 0. secs (0.u,0.s) -Chars 5417 - 5436 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 5437 - 5449 [reflexivity.] 0. secs (0.u,0.s) -Chars 5452 - 5456 [Qed.] 0.006 secs (0.006u,0.s) -Chars 5460 - 5641 [Lemma~internalize_pure_iso~{a}...] 0. secs (0.u,0.s) -Chars 5644 - 5650 [Proof.] 0. secs (0.u,0.s) -Chars 5655 - 5667 [reflexivity.] 0. secs (0.u,0.s) -Chars 5670 - 5674 [Qed.] 0. secs (0.u,0.s) -Chars 5679 - 5798 [Lemma~eq2_to_eq1~:~~~forall~a~...] 0. secs (0.u,0.s) -Chars 5801 - 5807 [Proof.] 0. secs (0.u,0.s) -Chars 5812 - 5833 [intros~a~b~f~g~x~s~H.] 0. secs (0.u,0.s) -Chars 5838 - 5846 [apply~H.] 0. secs (0.u,0.s) -Chars 5849 - 5853 [Qed.] 0. secs (0.u,0.s) -Chars 5858 - 6115 [Lemma~iter_dinatural_helper~:~...] 0.001 secs (0.001u,0.s) -Chars 6118 - 6124 [Proof.] 0. secs (0.u,0.s) -Chars 6129 - 6141 [destruct~CM.] 0. secs (0.u,0.s) -Chars 6146 - 6163 [intros~a~b~c~f~g.] 0. secs (0.u,0.s) -Chars 6168 - 6179 [repeat~red.] 0. secs (0.u,0.s) -Chars 6184 - 6196 [destruct~a0.] 0. secs (0.u,0.s) -Chars 6201 - 6238 [unfold~cat,~Cat_Kleisli,~inter...] 0. secs (0.u,0.s) -Chars 6243 - 6247 [cbn.] 0. secs (0.u,0.s) -Chars 6252 - 6277 [repeat~rewrite~bind_bind.] 0.006 secs (0.006u,0.s) -Chars 6282 - 6300 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 6305 - 6306 [-] 0. secs (0.u,0.s) -Chars 6307 - 6319 [reflexivity.] 0. secs (0.u,0.s) -Chars 6324 - 6325 [-] 0. secs (0.u,0.s) -Chars 6326 - 6337 [repeat~red.] 0. secs (0.u,0.s) -Chars 6344 - 6372 [destruct~a1~as~[s'~[x|~y]].] 0. secs (0.u,0.s) -Chars 6379 - 6380 [+] 0. secs (0.u,0.s) -Chars 6381 - 6393 [unfold~pure.] 0. secs (0.u,0.s) -Chars 6402 - 6421 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 6430 - 6476 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) -Chars 6485 - 6497 [reflexivity.] 0. secs (0.u,0.s) -Chars 6504 - 6505 [+] 0. secs (0.u,0.s) -Chars 6506 - 6518 [unfold~pure.] 0. secs (0.u,0.s) -Chars 6519 - 6538 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 6547 - 6593 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) -Chars 6604 - 6608 [cbn.] 0. secs (0.u,0.s) -Chars 6619 - 6638 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 6639 - 6651 [reflexivity.] 0. secs (0.u,0.s) -Chars 6654 - 6658 [Qed.] 0.004 secs (0.004u,0.s) -Chars 6663 - 6744 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) -Chars 6747 - 6753 [Proof.] 0. secs (0.u,0.s) -Chars 6758 - 6770 [destruct~CM.] 0. secs (0.u,0.s) -Chars 6775 - 6796 [unfold~IterDinatural.] 0. secs (0.u,0.s) -Chars 6801 - 6812 [repeat~red.] 0. secs (0.u,0.s) -Chars 6817 - 6840 [intros~a~b~c~f~g~a0~a1.] 0. secs (0.u,0.s) -Chars 6845 - 6871 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) -Chars 6876 - 6896 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 6901 - 6930 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 6935 - 6963 [apply~iter_dinatural_helper.] 0. secs (0.u,0.s) -Chars 6968 - 6996 [rewrite~iterative_dinatural.] 0.004 secs (0.004u,0.s) -Chars 7001 - 7005 [cbn.] 0. secs (0.u,0.s) -Chars 7010 - 7034 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 7039 - 7057 [rewrite~bind_bind.] 0.003 secs (0.003u,0.s) -Chars 7062 - 7081 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 7082 - 7086 [cbn.] 0. secs (0.u,0.s) -Chars 7091 - 7109 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 7114 - 7115 [-] 0. secs (0.u,0.s) -Chars 7116 - 7128 [reflexivity.] 0. secs (0.u,0.s) -Chars 7133 - 7134 [-] 0. secs (0.u,0.s) -Chars 7135 - 7146 [repeat~red.] 0. secs (0.u,0.s) -Chars 7153 - 7180 [destruct~a2~as~[s~[x|~y]].] 0. secs (0.u,0.s) -Chars 7187 - 7188 [+] 0. secs (0.u,0.s) -Chars 7189 - 7201 [unfold~pure.] 0. secs (0.u,0.s) -Chars 7210 - 7229 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 7238 - 7242 [cbn.] 0. secs (0.u,0.s) -Chars 7251 - 7280 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 7289 - 7300 [repeat~red.] 0. secs (0.u,0.s) -Chars 7309 - 7321 [destruct~a2.] 0. secs (0.u,0.s) -Chars 7330 - 7334 [cbn.] 0. secs (0.u,0.s) -Chars 7335 - 7354 [rewrite~!bind_bind.] 0.006 secs (0.006u,0.s) -Chars 7363 - 7381 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 7390 - 7391 [*] 0. secs (0.u,0.s) -Chars 7392 - 7404 [reflexivity.] 0. secs (0.u,0.s) -Chars 7413 - 7414 [*] 0. secs (0.u,0.s) -Chars 7415 - 7426 [repeat~red.] 0. secs (0.u,0.s) -Chars 7437 - 7466 [destruct~a2~as~[s'~[x'|~y]].] 0. secs (0.u,0.s) -Chars 7477 - 7479 [**] 0. secs (0.u,0.s) -Chars 7480 - 7484 [cbn.] 0. secs (0.u,0.s) -Chars 7486 - 7505 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7506 - 7552 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) -Chars 7566 - 7578 [reflexivity.] 0. secs (0.u,0.s) -Chars 7589 - 7591 [**] 0. secs (0.u,0.s) -Chars 7592 - 7596 [cbn.] 0. secs (0.u,0.s) -Chars 7598 - 7617 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 7618 - 7664 [unfold~case_,~Case_Kleisli,~Fu...] 0. secs (0.u,0.s) -Chars 7678 - 7697 [rewrite~bind_ret_l.] 0. secs (0.u,0.s) -Chars 7698 - 7710 [reflexivity.] 0. secs (0.u,0.s) -Chars 7717 - 7718 [+] 0. secs (0.u,0.s) -Chars 7719 - 7731 [unfold~pure.] 0. secs (0.u,0.s) -Chars 7740 - 7759 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 7768 - 7772 [cbn.] 0. secs (0.u,0.s) -Chars 7781 - 7793 [reflexivity.] 0. secs (0.u,0.s) -Chars 7798 - 7802 [Qed.] 0.009 secs (0.009u,0.s) -Chars 7807 - 7890 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) -Chars 7893 - 7899 [Proof.] 0. secs (0.u,0.s) -Chars 7904 - 7916 [destruct~CM.] 0. secs (0.u,0.s) -Chars 7921 - 7943 [unfold~IterCodiagonal.] 0. secs (0.u,0.s) -Chars 7948 - 7961 [intros~a~b~f.] 0. secs (0.u,0.s) -Chars 7966 - 7992 [unfold~iter,~Iter_stateTM.] 0. secs (0.u,0.s) -Chars 7997 - 8008 [repeat~red.] 0. secs (0.u,0.s) -Chars 8013 - 8020 [intros.] 0. secs (0.u,0.s) -Chars 8025 - 8045 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 8050 - 8079 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 8084 - 8110 [eapply~Proper_cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8116 - 8283 [assert~~(internalize~~~~~(fun~...] 0. secs (0.u,0.s) -Chars 8288 - 8289 [{] 0. secs (0.u,0.s) -Chars 8290 - 8301 [repeat~red.] 0. secs (0.u,0.s) -Chars 8308 - 8320 [destruct~a2.] 0. secs (0.u,0.s) -Chars 8327 - 8346 [unfold~internalize.] 0. secs (0.u,0.s) -Chars 8353 - 8357 [cbn.] 0. secs (0.u,0.s) -Chars 8359 - 8371 [reflexivity.] 0. secs (0.u,0.s) -Chars 8376 - 8377 [}] 0. secs (0.u,0.s) -Chars 8381 - 8389 [apply~H.] 0. secs (0.u,0.s) -Chars 8393 - 8405 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8409 - 8429 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 8434 - 8463 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 8467 - 8491 [apply~iterative_natural.] 0. secs (0.u,0.s) -Chars 8495 - 8524 [rewrite~iterative_codiagonal.] 0.003 secs (0.003u,0.s) -Chars 8528 - 8557 [eapply~iterative_proper_iter.] 0. secs (0.u,0.s) -Chars 8561 - 8585 [rewrite~internalize_cat.] 0.005 secs (0.005u,0.s) -Chars 8645 - 8656 [repeat~red.] 0. secs (0.u,0.s) -Chars 8660 - 8672 [destruct~a2.] 0. secs (0.u,0.s) -Chars 8676 - 8700 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 8701 - 8705 [cbn.] 0. secs (0.u,0.s) -Chars 8709 - 8734 [repeat~rewrite~bind_bind.] 0.013 secs (0.013u,0.s) -Chars 8738 - 8763 [unfold~internalize,~pure.] 0. secs (0.u,0.s) -Chars 8767 - 8771 [cbn.] 0. secs (0.u,0.s) -Chars 8775 - 8793 [apply~Proper_bind.] 0. secs (0.u,0.s) -Chars 8798 - 8799 [-] 0. secs (0.u,0.s) -Chars 8800 - 8812 [reflexivity.] 0. secs (0.u,0.s) -Chars 8817 - 8818 [-] 0. secs (0.u,0.s) -Chars 8819 - 8830 [repeat~red.] 0. secs (0.u,0.s) -Chars 8837 - 8871 [destruct~a3~as~[s'~[x|~[y|~z]]].] 0. secs (0.u,0.s) -Chars 8878 - 8879 [+] 0. secs (0.u,0.s) -Chars 8880 - 8899 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 8908 - 8912 [cbn.] 0. secs (0.u,0.s) -Chars 8913 - 8942 [unfold~id_,~Id_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 8951 - 8970 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 8979 - 9003 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 9012 - 9030 [rewrite~bind_bind.] 0.002 secs (0.002u,0.s) -Chars 9039 - 9058 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 9067 - 9071 [cbn.] 0. secs (0.u,0.s) -Chars 9073 - 9104 [unfold~inl_,~Inl_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 9113 - 9132 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 9133 - 9145 [reflexivity.] 0. secs (0.u,0.s) -Chars 9152 - 9153 [+] 0. secs (0.u,0.s) -Chars 9154 - 9173 [rewrite~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 9182 - 9186 [cbn.] 0. secs (0.u,0.s) -Chars 9195 - 9214 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 9223 - 9247 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 9256 - 9286 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 9287 - 9291 [cbn.] 0. secs (0.u,0.s) -Chars 9300 - 9331 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 9340 - 9359 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 9360 - 9372 [reflexivity.] 0. secs (0.u,0.s) -Chars 9379 - 9380 [+] 0. secs (0.u,0.s) -Chars 9381 - 9400 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) -Chars 9409 - 9413 [cbn.] 0. secs (0.u,0.s) -Chars 9422 - 9441 [rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 9450 - 9474 [unfold~cat,~Cat_Kleisli.] 0. secs (0.u,0.s) -Chars 9483 - 9513 [rewrite~bind_bind,~bind_ret_l.] 0.003 secs (0.003u,0.s) -Chars 9514 - 9518 [cbn.] 0. secs (0.u,0.s) -Chars 9527 - 9558 [unfold~inr_,~Inr_Kleisli,~pure.] 0. secs (0.u,0.s) -Chars 9567 - 9586 [rewrite~bind_ret_l.] 0.001 secs (0.001u,0.s) -Chars 9595 - 9607 [reflexivity.] 0. secs (0.u,0.s) -Chars 9610 - 9614 [Qed.] 0.012 secs (0.012u,0.s) -Chars 9618 - 9691 [#[global]~Instance~Iterative_s...] 0. secs (0.u,0.s) -Chars 9694 - 9700 [Proof.] 0. secs (0.u,0.s) -Chars 9703 - 9736 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 9739 - 9743 [Qed.] 0. secs (0.u,0.s) -Chars 9745 - 9755 [End~State.] 0.001 secs (0.001u,0.s) diff --git a/theories/Basics/Utils.v.timing b/theories/Basics/Utils.v.timing deleted file mode 100644 index 5e8477ff..00000000 --- a/theories/Basics/Utils.v.timing +++ /dev/null @@ -1,36 +0,0 @@ -Chars 0 - 51 [#[global]~Set~Warnings~"-intui...] 0. secs (0.u,0.s) -Chars 53 - 89 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 90 - 121 [Require~Import~Program.Tactics.] 0. secs (0.u,0.s) -Chars 123 - 153 [From~Paco~Require~Import~paco.] 0.022 secs (0.018u,0.003s) -Chars 155 - 207 [Ltac~inv~H~:=~inversion~H;~cle...] 0. secs (0.u,0.s) -Chars 278 - 334 [Lemma~hexploit_mp~:~forall~P~Q...] 0. secs (0.u,0.s) -Chars 335 - 341 [Proof.] 0. secs (0.u,0.s) -Chars 342 - 352 [intuition.] 0. secs (0.u,0.s) -Chars 353 - 361 [Defined.] 0. secs (0.u,0.s) -Chars 362 - 413 [Ltac~hexploit~x~:=~eapply~hexp...] 0. secs (0.u,0.s) -Chars 415 - 540 [Ltac~~rewrite_everywhere~lem~:...] 0. secs (0.u,0.s) -Chars 542 - 742 [Ltac~~rewrite_everywhere_excep...] 0. secs (0.u,0.s) -Chars 745 - 808 [Ltac~copy~h~:=~let~foo~:=~fres...] 0. secs (0.u,0.s) -Chars 810 - 860 [#[global]~Tactic~Notation~"int...] 0. secs (0.u,0.s) -Chars 862 - 998 [Ltac~~flatten_goal~:=~~~match~...] 0. secs (0.u,0.s) -Chars 1000 - 1139 [Ltac~~flatten_hyp~h~:=~~~match...] 0. secs (0.u,0.s) -Chars 1141 - 1372 [Ltac~~flatten_all~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 1418 - 1812 [Ltac~~invn~f~:=~~~match~goal~w...] 0. secs (0.u,0.s) -Chars 1863 - 2307 [Ltac~~destructn~f~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 2355 - 2767 [Ltac~~appn~f~:=~~~match~goal~w...] 0. secs (0.u,0.s) -Chars 2816 - 3238 [Ltac~~eappn~f~:=~~~match~goal~...] 0. secs (0.u,0.s) -Chars 3240 - 3436 [Ltac~~break~H~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) -Chars 3438 - 3670 [Ltac~~crunch~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) -Chars 3672 - 3993 [Ltac~~saturate~H~:=~~~match~go...] 0. secs (0.u,0.s) -Chars 4104 - 4180 [Lemma~pfp_gfp~{X}~{L~:~Complet...] 0. secs (0.u,0.s) -Chars 4181 - 4187 [Proof.] 0. secs (0.u,0.s) -Chars 4188 - 4202 [apply~b_chain.] 0. secs (0.u,0.s) -Chars 4203 - 4207 [Qed.] 0. secs (0.u,0.s) -Chars 4260 - 4574 [Ltac~~step_~:=~~~match~goal~wi...] 0. secs (0.u,0.s) -Chars 4576 - 4739 [Ltac~~step~:=~~~match~goal~wit...] 0. secs (0.u,0.s) -Chars 4742 - 4830 [Ltac~~step_in~h~:=~~~match~typ...] 0. secs (0.u,0.s) -Chars 4832 - 4882 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 4884 - 4962 [Ltac~unstep~:=~match~goal~with...] 0. secs (0.u,0.s) -Chars 4964 - 5054 [Ltac~~unstep_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 5056 - 5110 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) -Chars 5161 - 5271 [Tactic~Notation~"hinduction"~h...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeDefinition.v.timing b/theories/Core/ITreeDefinition.v.timing deleted file mode 100644 index e057b526..00000000 --- a/theories/Core/ITreeDefinition.v.timing +++ /dev/null @@ -1,55 +0,0 @@ -Chars 63 - 104 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) -Chars 105 - 150 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) -Chars 151 - 190 [Require~Import~ExtLib.Structur...] 0. secs (0.u,0.s) -Chars 192 - 225 [From~ITree~Require~Import~Basics.] 0.003 secs (0.002u,0.001s) -Chars 226 - 265 [From~ITree~Require~Export~Basi...] 0.022 secs (0.018u,0.003s) -Chars 267 - 290 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 291 - 315 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 316 - 342 [Set~Primitive~Projections.] 0. secs (0.u,0.s) -Chars 699 - 713 [Section~itree.] 0. secs (0.u,0.s) -Chars 717 - 755 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 875 - 996 [Variant~itreeF~(itree~:~Type)~...] 0. secs (0.u,0.s) -Chars 1234 - 1295 [CoInductive~itree~:~Type~:=~go...] 0. secs (0.u,0.s) -Chars 1924 - 1934 [End~itree.] 0. secs (0.u,0.s) -Chars 1953 - 1979 [Declare~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 1980 - 2014 [Bind~Scope~itree_scope~with~it...] 0. secs (0.u,0.s) -Chars 2015 - 2052 [Delimit~Scope~itree_scope~with...] 0. secs (0.u,0.s) -Chars 2053 - 2082 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 2084 - 2122 [Arguments~itree~_~_~:~clear~im...] 0. secs (0.u,0.s) -Chars 2123 - 2162 [Arguments~itreeF~_~_~:~clear~i...] 0. secs (0.u,0.s) -Chars 2164 - 2184 [Create~HintDb~itree.] 0. secs (0.u,0.s) -Chars 2307 - 2355 [Notation~itree'~E~R:=~(itreeF~...] 0. secs (0.u,0.s) -Chars 2437 - 2510 [Definition~observe~{E}~{R}~(t~...] 0. secs (0.u,0.s) -Chars 3361 - 3393 [Notation~Ret~x:=~(go~(RetF~x)).] 0. secs (0.u,0.s) -Chars 3394 - 3426 [Notation~Tau~t:=~(go~(TauF~t)).] 0. secs (0.u,0.s) -Chars 3427 - 3463 [Notation~Vis~e~k:=~(go~(VisF~e...] 0. secs (0.u,0.s) -Chars 5126 - 5139 [Module~ITree.] 0. secs (0.u,0.s) -Chars 5619 - 5897 [Definition~subst~{E~:~Type~->~...] 0. secs (0.u,0.s) -Chars 5899 - 6013 [Definition~bind~{E~:~Type~->~T...] 0. secs (0.u,0.s) -Chars 6089 - 6213 [Definition~cat~{E}~{T}~{U}~{V}...] 0. secs (0.u,0.s) -Chars 6495 - 6595 [Notation~on_left~lr~l~t:=~matc...] 0. secs (0.u,0.s) -Chars 6764 - 6946 [Definition~iter~{E~:~Type~->~T...] 0. secs (0.u,0.s) -Chars 7273 - 7371 [Definition~map~{E}~{R}~{S}~(f~...] 0. secs (0.u,0.s) -Chars 7421 - 7513 [Definition~trigger~{E~:~Type~-...] 0. secs (0.u,0.s) -Chars 7551 - 7626 [Definition~ignore~{E}~{R}~:~it...] 0. secs (0.u,0.s) -Chars 7650 - 7696 [CoFixpoint~spin~{E}~{R}~:~itre...] 0. secs (0.u,0.s) -Chars 7738 - 7851 [Definition~forever~{E}~{R}~{S}...] 0. secs (0.u,0.s) -Chars 7853 - 7932 [Ltac~fold_subst~:=~repeat~chan...] 0. secs (0.u,0.s) -Chars 7934 - 8165 [Ltac~~fold_monad~:=~~~repeat~c...] 0. secs (0.u,0.s) -Chars 8167 - 8177 [End~ITree.] 0. secs (0.u,0.s) -Chars 8554 - 8576 [Module~ITreeNotations.] 0. secs (0.u,0.s) -Chars 8577 - 8670 [Notation~"t1~>>=~k2"~:=~(ITree...] 0. secs (0.u,0.s) -Chars 8671 - 8798 [Notation~"x~<-~t1~;;~t2"~:=~(I...] 0. secs (0.u,0.s) -Chars 8799 - 8903 [Notation~"t1~;;~t2"~:=~(ITree....] 0. secs (0.u,0.s) -Chars 8904 - 9070 [Notation~"'~p~<-~t1~;;~t2"~:=~...] 0. secs (0.u,0.s) -Chars 9071 - 9145 [Infix~">=>"~:=~ITree.cat~(~at~...] 0. secs (0.u,0.s) -Chars 9146 - 9165 [End~ITreeNotations.] 0. secs (0.u,0.s) -Chars 9188 - 9273 [#[global]~Instance~Functor_itr...] 0. secs (0.u,0.s) -Chars 9426 - 9614 [#[global]~Instance~Applicative...] 0. secs (0.u,0.s) -Chars 9616 - 9727 [#[global]~Instance~Monad_itree...] 0. secs (0.u,0.s) -Chars 9729 - 9817 [#[global]~Instance~MonadIter_i...] 0. secs (0.u,0.s) -Chars 9838 - 9885 [Ltac~genobs~x~ox~:=~remember~(...] 0. secs (0.u,0.s) -Chars 9886 - 9983 [Ltac~~genobs_clear~x~ox~:=~~~g...] 0. secs (0.u,0.s) -Chars 9984 - 10481 [Ltac~~simpobs~:=~~~repeat~~~~m...] 0. secs (0.u,0.s) -Chars 10517 - 10563 [Ltac~desobs~t~H~:=~destruct~(o...] 0. secs (0.u,0.s) -Chars 10645 - 10845 [Fixpoint~burn~(n~:~nat)~{E}~{R...] 0. secs (0.u,0.s) diff --git a/theories/Core/ITreeMonad.v.timing b/theories/Core/ITreeMonad.v.timing deleted file mode 100644 index 1709d17f..00000000 --- a/theories/Core/ITreeMonad.v.timing +++ /dev/null @@ -1,36 +0,0 @@ -Chars 179 - 281 [From~ITree~Require~Import~Basi...] 0.037 secs (0.03u,0.007s) -Chars 282 - 351 [#[global]~Instance~Eq1_ITree~~...] 0. secs (0.u,0.s) -Chars 353 - 424 [#[global]~Instance~Eq1Equivale...] 0. secs (0.u,0.s) -Chars 425 - 431 [Proof.] 0. secs (0.u,0.s) -Chars 434 - 445 [repeat~red.] 0. secs (0.u,0.s) -Chars 448 - 457 [intros~a.] 0. secs (0.u,0.s) -Chars 460 - 478 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 479 - 483 [Qed.] 0. secs (0.u,0.s) -Chars 485 - 548 [#[global]~Instance~MonadLawsE_...] 0. secs (0.u,0.s) -Chars 549 - 555 [Proof.] 0. secs (0.u,0.s) -Chars 558 - 570 [constructor.] 0. secs (0.u,0.s) -Chars 573 - 574 [-] 0. secs (0.u,0.s) -Chars 575 - 590 [intros~a~b~f~x.] 0. secs (0.u,0.s) -Chars 595 - 637 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) -Chars 642 - 664 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) -Chars 665 - 684 [rewrite~bind_ret_l.] 0.001 secs (0.u,0.s) -Chars 685 - 697 [reflexivity.] 0. secs (0.u,0.s) -Chars 700 - 701 [-] 0. secs (0.u,0.s) -Chars 702 - 713 [intros~a~x.] 0. secs (0.u,0.s) -Chars 717 - 759 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) -Chars 764 - 786 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) -Chars 787 - 806 [rewrite~bind_ret_r.] 0. secs (0.u,0.s) -Chars 807 - 819 [reflexivity.] 0. secs (0.u,0.s) -Chars 822 - 823 [-] 0. secs (0.u,0.s) -Chars 824 - 843 [intros~a~b~c~x~f~g.] 0. secs (0.u,0.s) -Chars 844 - 886 [unfold~Monad.bind,~Monad.ret,~...] 0. secs (0.u,0.s) -Chars 891 - 913 [unfold~eq1,~Eq1_ITree.] 0. secs (0.u,0.s) -Chars 914 - 932 [rewrite~bind_bind.] 0.013 secs (0.012u,0.s) -Chars 933 - 945 [reflexivity.] 0. secs (0.u,0.s) -Chars 948 - 949 [-] 0. secs (0.u,0.s) -Chars 950 - 981 [unfold~Monad.bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 986 - 993 [intros.] 0. secs (0.u,0.s) -Chars 998 - 1009 [repeat~red.] 0. secs (0.u,0.s) -Chars 1014 - 1021 [intros.] 0. secs (0.u,0.s) -Chars 1026 - 1048 [apply~eqit_bind;~auto.] 0. secs (0.u,0.s) -Chars 1049 - 1053 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Core/KTree.v.timing b/theories/Core/KTree.v.timing deleted file mode 100644 index d7897806..00000000 --- a/theories/Core/KTree.v.timing +++ /dev/null @@ -1,14 +0,0 @@ -Chars 111 - 153 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 155 - 364 [From~ITree~Require~Import~Basi...] 0.035 secs (0.029u,0.006s) -Chars 382 - 414 [Implicit~Type~E~:~Type~->~Type.] 0. secs (0.u,0.s) -Chars 415 - 441 [Implicit~Types~a~b~:~Type.] 0. secs (0.u,0.s) -Chars 443 - 483 [Notation~ktree~E:=~(Kleisli~(i...] 0. secs (0.u,0.s) -Chars 485 - 511 [Declare~Scope~ktree_scope.] 0. secs (0.u,0.s) -Chars 512 - 546 [Bind~Scope~ktree_scope~with~kt...] 0. secs (0.u,0.s) -Chars 548 - 599 [Notation~ktree_apply~:=~(@Klei...] 0. secs (0.u,0.s) -Chars 600 - 647 [Notation~lift_ktree~:=~(@pure~...] 0. secs (0.u,0.s) -Chars 648 - 702 [Notation~lift_ktree_~E~a~b:=~(...] 0. secs (0.u,0.s) -Chars 906 - 925 [Section~Operations.] 0. secs (0.u,0.s) -Chars 927 - 954 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 956 - 993 [#[local]~Notation~ktree~:=~(kt...] 0. secs (0.u,0.s) -Chars 1488 - 1503 [End~Operations.] 0. secs (0.u,0.s) diff --git a/theories/Core/KTreeFacts.v.timing b/theories/Core/KTreeFacts.v.timing deleted file mode 100644 index 034fa20f..00000000 --- a/theories/Core/KTreeFacts.v.timing +++ /dev/null @@ -1,276 +0,0 @@ -Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 97 - 192 [From~Stdlib~Require~Import~Cla...] 0.001 secs (0.u,0.s) -Chars 194 - 538 [From~ITree~Require~Import~Basi...] 0.035 secs (0.029u,0.006s) -Chars 539 - 559 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 560 - 589 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 590 - 617 [#[local]~Open~Scope~cat_scope.] 0. secs (0.u,0.s) -Chars 634 - 895 [Ltac~~unfold_ktree~:=~~~unfold...] 0. secs (0.u,0.s) -Chars 923 - 967 [From~Corelib~Require~Import~Pr...] 0. secs (0.u,0.s) -Chars 970 - 1157 [Ltac~~under_forall'~tac~:=~~~l...] 0. secs (0.u,0.s) -Chars 1159 - 1200 [Ltac~to_mon~:=~under_forall'~t...] 0. secs (0.u,0.s) -Chars 1203 - 1507 [Lemma~bind_iter~{E}~{A}~{B}~{C...] 0.014 secs (0.013u,0.001s) -Chars 1508 - 1514 [Proof.] 0. secs (0.u,0.s) -Chars 1517 - 1529 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1592 - 1599 [intros.] 0. secs (0.u,0.s) -Chars 1722 - 1743 [rewrite~!unfold_iter.] 0.049 secs (0.049u,0.s) -Chars 1746 - 1774 [rewrite~bind_map,~bind_bind.] 0.029 secs (0.024u,0.004s) -Chars 1777 - 1783 [ebind.] 0.005 secs (0.005u,0.s) -Chars 1787 - 1807 [intros~[a|~b]~_~[].] 0.001 secs (0.001u,0.s) -Chars 1810 - 1811 [-] 0. secs (0.u,0.s) -Chars 1812 - 1829 [rewrite~bind_tau.] 0.011 secs (0.011u,0.s) -Chars 1830 - 1835 [taus.] 0. secs (0.u,0.s) -Chars 1840 - 1851 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 1855 - 1856 [-] 0. secs (0.u,0.s) -Chars 1857 - 1888 [rewrite~bind_ret_l,~tau_euttge.] 0.015 secs (0.015u,0.s) -Chars 1949 - 1959 [do~2~step.] 0.007 secs (0.007u,0.s) -Chars 1960 - 1969 [revert~b.] 0. secs (0.u,0.s) -Chars 1970 - 1982 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1983 - 1990 [intros.] 0. secs (0.u,0.s) -Chars 1996 - 2017 [rewrite~!unfold_iter.] 0.023 secs (0.023u,0.s) -Chars 2022 - 2039 [rewrite~bind_map.] 0.011 secs (0.011u,0.s) -Chars 2044 - 2050 [ebind.] 0.006 secs (0.006u,0.s) -Chars 2056 - 2084 [intros~[b'|~c'']~_~[];~cbn.] 0.001 secs (0.001u,0.s) -Chars 2089 - 2090 [+] 0. secs (0.u,0.s) -Chars 2091 - 2100 [now~taus.] 0. secs (0.u,0.s) -Chars 2105 - 2106 [+] 0. secs (0.u,0.s) -Chars 2107 - 2119 [reflexivity.] 0. secs (0.u,0.s) -Chars 2120 - 2124 [Qed.] 0.013 secs (0.013u,0.s) -Chars 2129 - 2523 [Lemma~eq_itree_iter'~{E}~{I1}~...] 0. secs (0.u,0.s) -Chars 2524 - 2530 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2551 [coinduction~c~cih.] 0.001 secs (0.001u,0.s) -Chars 2552 - 2559 [intros.] 0. secs (0.u,0.s) -Chars 2563 - 2597 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 2600 - 2625 [do~2~rewrite~unfold_iter.] 0.019 secs (0.019u,0.s) -Chars 2628 - 2651 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 2655 - 2665 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 2666 - 2682 [apply~eutt_body.] 0. secs (0.u,0.s) -Chars 2686 - 2721 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.u,0.s) -Chars 2723 - 2727 [Qed.] 0.004 secs (0.004u,0.s) -Chars 2729 - 3111 [Lemma~eutt_iter'~{E}~{I1}~{I2}...] 0. secs (0.u,0.s) -Chars 3112 - 3118 [Proof.] 0. secs (0.u,0.s) -Chars 3121 - 3139 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3140 - 3147 [intros.] 0. secs (0.u,0.s) -Chars 3151 - 3185 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3188 - 3213 [do~2~rewrite~unfold_iter.] 0.02 secs (0.019u,0.s) -Chars 3216 - 3222 [ebind.] 0.003 secs (0.003u,0.s) -Chars 3225 - 3242 [do~2~step;~eauto.] 0.011 secs (0.011u,0.s) -Chars 3246 - 3281 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) -Chars 3283 - 3287 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3289 - 3704 [Lemma~eutt_iter''~{E}~{I1}~{I2...] 0. secs (0.u,0.s) -Chars 3705 - 3711 [Proof.] 0. secs (0.u,0.s) -Chars 3714 - 3732 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3733 - 3740 [intros.] 0. secs (0.u,0.s) -Chars 3744 - 3778 [specialize~(eutt_body~i1~i2~RI...] 0. secs (0.u,0.s) -Chars 3781 - 3806 [do~2~rewrite~unfold_iter.] 0.021 secs (0.02u,0.s) -Chars 3809 - 3815 [ebind.] 0.003 secs (0.003u,0.s) -Chars 3819 - 3836 [do~2~step;~eauto.] 0.011 secs (0.011u,0.s) -Chars 3840 - 3875 [intros~?~?~[];~econstructor;~e...] 0.001 secs (0.001u,0.s) -Chars 3876 - 3896 [now~apply~CIH,~HSUB.] 0. secs (0.u,0.s) -Chars 3897 - 3901 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3903 - 4109 [Definition~eutt_iter_gen'~{F}~...] 0.001 secs (0.001u,0.s) -Chars 4110 - 4116 [Proof.] 0. secs (0.u,0.s) -Chars 4119 - 4166 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) -Chars 4167 - 4182 [red~in~EQ_BODY.] 0. secs (0.u,0.s) -Chars 4185 - 4211 [eapply~eutt_iter'';~eauto.] 0. secs (0.u,0.s) -Chars 4212 - 4216 [Qed.] 0. secs (0.u,0.s) -Chars 4236 - 4436 [#[global]~Instance~eq_itree_it...] 0. secs (0.u,0.s) -Chars 4437 - 4443 [Proof.] 0. secs (0.u,0.s) -Chars 4446 - 4475 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) -Chars 4476 - 4498 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) -Chars 4501 - 4514 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4517 - 4550 [eapply~(eq_itree_iter'~eq);~auto.] 0.002 secs (0.002u,0.s) -Chars 4553 - 4593 [intros;~eapply~eqit_mono,~EQ_B...] 0.001 secs (0.001u,0.s) -Chars 4596 - 4644 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) -Chars 4645 - 4649 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4651 - 4853 [#[global]~Instance~eutt_iter~~...] 0. secs (0.u,0.s) -Chars 4854 - 4860 [Proof.] 0. secs (0.u,0.s) -Chars 4863 - 4892 [intros~body1~body2~EQ_BODY~a.] 0. secs (0.u,0.s) -Chars 4893 - 4915 [repeat~red~in~EQ_BODY.] 0. secs (0.u,0.s) -Chars 4918 - 4931 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 4934 - 4963 [eapply~(eutt_iter'~eq);~auto.] 0.001 secs (0.001u,0.s) -Chars 4966 - 5013 [intros~?~_~[];~eapply~eqit_mon...] 0.002 secs (0.002u,0.s) -Chars 5016 - 5057 [intros~[]~_~[];~auto;~econstru...] 0. secs (0.u,0.s) -Chars 5058 - 5062 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5064 - 5246 [Definition~eutt_iter_gen~{F}~{...] 0. secs (0.u,0.s) -Chars 5247 - 5253 [Proof.] 0. secs (0.u,0.s) -Chars 5256 - 5303 [do~3~red;~intros~body1~body2~E...] 0. secs (0.u,0.s) -Chars 5304 - 5319 [red~in~EQ_BODY.] 0. secs (0.u,0.s) -Chars 5322 - 5347 [eapply~eutt_iter';~eauto.] 0. secs (0.u,0.s) -Chars 5348 - 5352 [Qed.] 0. secs (0.u,0.s) -Chars 5354 - 5482 [#[global]~Instance~eq2_ktree_i...] 0. secs (0.u,0.s) -Chars 5483 - 5489 [Proof.] 0. secs (0.u,0.s) -Chars 5490 - 5506 [apply~eutt_iter.] 0. secs (0.u,0.s) -Chars 5507 - 5511 [Qed.] 0. secs (0.u,0.s) -Chars 5513 - 5536 [Section~KTreeIterative.] 0. secs (0.u,0.s) -Chars 5538 - 5732 [Lemma~unfold_iter_ktree~{E}~{A...] 0. secs (0.u,0.s) -Chars 5733 - 5739 [Proof.] 0. secs (0.u,0.s) -Chars 5742 - 5760 [apply~unfold_iter.] 0. secs (0.u,0.s) -Chars 5761 - 5765 [Qed.] 0. secs (0.u,0.s) -Chars 5767 - 5834 [#[global]~Instance~IterUnfold_...] 0. secs (0.u,0.s) -Chars 5835 - 5841 [Proof.] 0. secs (0.u,0.s) -Chars 5844 - 5857 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5858 - 5871 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 5872 - 5898 [rewrite~unfold_iter_ktree.] 0.001 secs (0.001u,0.s) -Chars 5901 - 5940 [eapply~eutt_bind_eutt;~try~ref...] 0. secs (0.u,0.s) -Chars 5943 - 5993 [intros~[]~?~[];~try~rewrite~ta...] 0.001 secs (0.001u,0.s) -Chars 5994 - 5998 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6000 - 6069 [#[global]~Instance~IterNatural...] 0. secs (0.u,0.s) -Chars 6070 - 6076 [Proof.] 0. secs (0.u,0.s) -Chars 6079 - 6092 [repeat~intro.] 0. secs (0.u,0.s) -Chars 6093 - 6106 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 6109 - 6119 [revert~a0.] 0. secs (0.u,0.s) -Chars 6122 - 6141 [coinduction~c'~CIH.] 0.001 secs (0.001u,0.s) -Chars 6142 - 6149 [intros.] 0. secs (0.u,0.s) -Chars 6153 - 6181 [rewrite~2!unfold_iter_ktree.] 0.026 secs (0.026u,0.s) -Chars 6184 - 6203 [rewrite~!bind_bind.] 0.027 secs (0.027u,0.s) -Chars 6206 - 6212 [ebind.] 0.006 secs (0.006u,0.s) -Chars 6216 - 6231 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) -Chars 6234 - 6235 [-] 0. secs (0.u,0.s) -Chars 6236 - 6267 [rewrite~bind_tau,~2!bind_ret_l.] 0.041 secs (0.04u,0.s) -Chars 6268 - 6277 [now~taus.] 0. secs (0.u,0.s) -Chars 6281 - 6282 [-] 0. secs (0.u,0.s) -Chars 6283 - 6314 [rewrite~bind_ret_l,~!bind_bind.] 0.027 secs (0.027u,0.s) -Chars 6315 - 6341 [setoid_rewrite~bind_ret_l.] 0.029 secs (0.029u,0.s) -Chars 6342 - 6361 [rewrite~bind_ret_r.] 0.012 secs (0.012u,0.s) -Chars 6366 - 6378 [reflexivity.] 0. secs (0.u,0.s) -Chars 6379 - 6383 [Qed.] 0.01 secs (0.01u,0.s) -Chars 6385 - 6923 [Lemma~iter_dinatural_ktree~{E}...] 0.001 secs (0.001u,0.s) -Chars 6924 - 6930 [Proof.] 0. secs (0.u,0.s) -Chars 6933 - 6953 [revert~A~B~C~f~g~a0.] 0. secs (0.u,0.s) -Chars 6957 - 6975 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 6976 - 6983 [intros.] 0. secs (0.u,0.s) -Chars 6987 - 7013 [rewrite~unfold_iter_ktree.] 0.012 secs (0.012u,0.s) -Chars 7016 - 7034 [rewrite~bind_bind.] 0.011 secs (0.011u,0.s) -Chars 7037 - 7043 [ebind.] 0.007 secs (0.007u,0.s) -Chars 7047 - 7062 [intros~[]~?~[].] 0.001 secs (0.001u,0.s) -Chars 7174 - 7175 [-] 0. secs (0.u,0.s) -Chars 7176 - 7193 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) -Chars 7194 - 7199 [taus.] 0. secs (0.u,0.s) -Chars 7200 - 7209 [symmetry.] 0. secs (0.u,0.s) -Chars 7210 - 7221 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7225 - 7226 [-] 0. secs (0.u,0.s) -Chars 7227 - 7246 [rewrite~bind_ret_l.] 0.011 secs (0.011u,0.s) -Chars 7247 - 7259 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 7261 - 7265 [Qed.] 0.007 secs (0.007u,0.s) -Chars 7267 - 7340 [#[global]~Instance~IterDinatur...] 0. secs (0.u,0.s) -Chars 7341 - 7347 [Proof.] 0. secs (0.u,0.s) -Chars 7350 - 7363 [repeat~intro.] 0. secs (0.u,0.s) -Chars 7364 - 7377 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 7380 - 7642 [transitivity~~(iter~(C:=ktree~...] 0. secs (0.u,0.s) -Chars 7645 - 7646 [-] 0. secs (0.u,0.s) -Chars 7647 - 7673 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) -Chars 7678 - 7700 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) -Chars 7705 - 7717 [reflexivity.] 0. secs (0.u,0.s) -Chars 7722 - 7737 [intros~[]~?~[].] 0. secs (0.u,0.s) -Chars 7742 - 7772 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) -Chars 7777 - 7789 [reflexivity.] 0. secs (0.u,0.s) -Chars 7792 - 7793 [-] 0. secs (0.u,0.s) -Chars 7794 - 7823 [rewrite~iter_dinatural_ktree.] 0.001 secs (0.001u,0.s) -Chars 7828 - 7850 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) -Chars 7855 - 7867 [reflexivity.] 0. secs (0.u,0.s) -Chars 7872 - 7887 [intros~[]~?~[].] 0. secs (0.u,0.s) -Chars 7892 - 7893 [+] 0. secs (0.u,0.s) -Chars 7894 - 7911 [rewrite~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 7918 - 7944 [apply~eutt_iter;~intros~x.] 0. secs (0.u,0.s) -Chars 7951 - 7973 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) -Chars 7980 - 7992 [reflexivity.] 0. secs (0.u,0.s) -Chars 7999 - 8014 [intros~[]~?~[].] 0. secs (0.u,0.s) -Chars 8021 - 8051 [rewrite~tau_eutt;~reflexivity.] 0. secs (0.u,0.s) -Chars 8058 - 8070 [reflexivity.] 0. secs (0.u,0.s) -Chars 8075 - 8076 [+] 0. secs (0.u,0.s) -Chars 8077 - 8089 [reflexivity.] 0. secs (0.u,0.s) -Chars 8090 - 8094 [Qed.] 0.004 secs (0.004u,0.s) -Chars 8096 - 8404 [Lemma~iter_codiagonal_ktree~{E...] 0.001 secs (0.001u,0.s) -Chars 8405 - 8411 [Proof.] 0. secs (0.u,0.s) -Chars 8414 - 8424 [revert~a0.] 0. secs (0.u,0.s) -Chars 8427 - 8445 [coinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 8446 - 8453 [intros.] 0. secs (0.u,0.s) -Chars 8457 - 8483 [rewrite~unfold_iter_ktree.] 0.011 secs (0.011u,0.s) -Chars 8486 - 8531 [rewrite~(unfold_iter_ktree~(fu...] 0.015 secs (0.015u,0.s) -Chars 8534 - 8572 [rewrite~unfold_iter_ktree,~!bi...] 0.044 secs (0.043u,0.s) -Chars 8575 - 8581 [ebind.] 0.006 secs (0.006u,0.s) -Chars 8585 - 8604 [intros~[|~[]]~?~[].] 0.002 secs (0.002u,0.s) -Chars 8607 - 8608 [-] 0. secs (0.u,0.s) -Chars 8609 - 8638 [rewrite~bind_ret_l,~bind_tau.] 0.027 secs (0.027u,0.s) -Chars 8643 - 8648 [taus.] 0. secs (0.u,0.s) -Chars 8654 - 8663 [revert~a.] 0. secs (0.u,0.s) -Chars 8668 - 8683 [accumulate~acc.] 0.002 secs (0.002u,0.s) -Chars 8689 - 8696 [intros.] 0. secs (0.u,0.s) -Chars 8701 - 8727 [rewrite~unfold_iter_ktree.] 0.011 secs (0.011u,0.s) -Chars 8732 - 8777 [rewrite~(unfold_iter_ktree~(fu...] 0.013 secs (0.013u,0.s) -Chars 8782 - 8801 [rewrite~!bind_bind.] 0.027 secs (0.026u,0.s) -Chars 8806 - 8812 [ebind.] 0.008 secs (0.008u,0.s) -Chars 8818 - 8837 [intros~[|~[]]~?~[].] 0.002 secs (0.002u,0.s) -Chars 8842 - 8843 [+] 0. secs (0.u,0.s) -Chars 8844 - 8873 [rewrite~bind_tau,~bind_ret_l.] 0.027 secs (0.027u,0.s) -Chars 8874 - 8883 [now~taus.] 0. secs (0.u,0.s) -Chars 8889 - 8890 [+] 0. secs (0.u,0.s) -Chars 8891 - 8912 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) -Chars 8913 - 8922 [now~taus.] 0. secs (0.u,0.s) -Chars 8928 - 8929 [+] 0. secs (0.u,0.s) -Chars 8930 - 8951 [rewrite~2!bind_ret_l.] 0.026 secs (0.026u,0.s) -Chars 8952 - 8964 [reflexivity.] 0. secs (0.u,0.s) -Chars 8968 - 8969 [-] 0. secs (0.u,0.s) -Chars 8970 - 8991 [rewrite~2!bind_ret_l.] 0.027 secs (0.027u,0.s) -Chars 8996 - 9005 [now~taus.] 0. secs (0.u,0.s) -Chars 9009 - 9010 [-] 0. secs (0.u,0.s) -Chars 9011 - 9032 [rewrite~2!bind_ret_l.] 0.026 secs (0.026u,0.s) -Chars 9037 - 9049 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9051 - 9055 [Qed.] 0.023 secs (0.022u,0.s) -Chars 9057 - 9132 [#[global]~Instance~IterCodiago...] 0. secs (0.u,0.s) -Chars 9133 - 9139 [Proof.] 0. secs (0.u,0.s) -Chars 9142 - 9155 [repeat~intro.] 0. secs (0.u,0.s) -Chars 9156 - 9169 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9172 - 9202 [rewrite~iter_codiagonal_ktree.] 0.001 secs (0.001u,0.s) -Chars 9205 - 9221 [apply~eutt_iter.] 0. secs (0.u,0.s) -Chars 9224 - 9234 [intros~a1.] 0. secs (0.u,0.s) -Chars 9237 - 9259 [eapply~eutt_bind_eutt.] 0. secs (0.u,0.s) -Chars 9262 - 9274 [reflexivity.] 0. secs (0.u,0.s) -Chars 9277 - 9328 [intros~[|~[]]~?~[];~rewrite~?t...] 0.001 secs (0.001u,0.s) -Chars 9329 - 9333 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9335 - 9400 [#[global]~Instance~Iterative_k...] 0. secs (0.u,0.s) -Chars 9401 - 9407 [Proof.] 0. secs (0.u,0.s) -Chars 9410 - 9435 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 9436 - 9440 [Qed.] 0. secs (0.u,0.s) -Chars 9501 - 9705 [Lemma~cat_iter~:~~~forall~{E~:...] 0.001 secs (0.001u,0.s) -Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) -Chars 9715 - 9724 [intros~*.] 0. secs (0.u,0.s) -Chars 9727 - 9740 [unfold_ktree.] 0. secs (0.u,0.s) -Chars 9773 - 9784 [repeat~red.] 0. secs (0.u,0.s) -Chars 9882 - 9901 [coinduction~c'~CIH.] 0.002 secs (0.002u,0.s) -Chars 9902 - 9909 [intros.] 0. secs (0.u,0.s) -Chars 9915 - 9934 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) -Chars 9978 - 9998 [rewrite~unfold_iter.] 0.013 secs (0.013u,0.s) -Chars 10005 - 10025 [rewrite~unfold_iter.] 0.016 secs (0.016u,0.s) -Chars 10028 - 10047 [rewrite~!bind_bind.] 0.028 secs (0.028u,0.s) -Chars 10050 - 10056 [ebind.] 0.005 secs (0.005u,0.s) -Chars 10102 - 10124 [intros~[xa|~xb]~?~<-.] 0.001 secs (0.001u,0.s) -Chars 10127 - 10128 [-] 0. secs (0.u,0.s) -Chars 10192 - 10213 [rewrite~!bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 10218 - 10235 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) -Chars 10240 - 10245 [taus.] 0. secs (0.u,0.s) -Chars 10251 - 10271 [specialize~(CIH~xa).] 0. secs (0.u,0.s) -Chars 10276 - 10285 [symmetry.] 0. secs (0.u,0.s) -Chars 10291 - 10313 [rewrite~<-~bind_ret_l.] 0.011 secs (0.011u,0.s) -Chars 10314 - 10323 [symmetry.] 0. secs (0.u,0.s) -Chars 10329 - 10339 [apply~CIH.] 0. secs (0.u,0.s) -Chars 10343 - 10344 [-] 0. secs (0.u,0.s) -Chars 10381 - 10402 [rewrite~!bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 10640 - 10659 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) -Chars 10664 - 10674 [do~2~step.] 0.008 secs (0.008u,0.s) -Chars 10680 - 10694 [generalize~xb.] 0. secs (0.u,0.s) -Chars 10699 - 10720 [coinduction~c''~CIH'.] 0.002 secs (0.002u,0.s) -Chars 10721 - 10728 [intros.] 0. secs (0.u,0.s) -Chars 10780 - 10802 [rewrite~2!unfold_iter.] 0.027 secs (0.027u,0.s) -Chars 10808 - 10827 [rewrite~!bind_bind.] 0.034 secs (0.034u,0.s) -Chars 10878 - 10884 [ebind.] 0.006 secs (0.006u,0.s) -Chars 10889 - 10912 [intros~[xb'|~xc]~?~<-.] 0.002 secs (0.002u,0.s) -Chars 10917 - 10918 [+] 0. secs (0.u,0.s) -Chars 10963 - 10983 [rewrite~!bind_ret_l.] 0.052 secs (0.052u,0.s) -Chars 10990 - 10995 [taus.] 0. secs (0.u,0.s) -Chars 11002 - 11013 [apply~CIH'.] 0. secs (0.u,0.s) -Chars 11020 - 11021 [+] 0. secs (0.u,0.s) -Chars 11022 - 11042 [rewrite~!bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 11049 - 11061 [reflexivity.] 0. secs (0.u,0.s) -Chars 11063 - 11067 [Qed.] 0.026 secs (0.026u,0.s) -Chars 11069 - 11088 [End~KTreeIterative.] 0. secs (0.u,0.s) diff --git a/theories/Core/Subevent.v.timing b/theories/Core/Subevent.v.timing deleted file mode 100644 index cebebdf9..00000000 --- a/theories/Core/Subevent.v.timing +++ /dev/null @@ -1,50 +0,0 @@ -Chars 121 - 255 [From~ITree~Require~Import~Basi...] 0.03 secs (0.024u,0.005s) -Chars 665 - 740 [Notation~Subevent~E~F:=~(@ReSu...] 0. secs (0.u,0.s) -Chars 741 - 826 [Notation~"E~-<~F"~:=~(Subevent...] 0. secs (0.u,0.s) -Chars 828 - 902 [Definition~subevent~{E~F~:~Typ...] 0. secs (0.u,0.s) -Chars 968 - 995 [Module~Import~SumNotations.] 0. secs (0.u,0.s) -Chars 997 - 1021 [Declare~Scope~sum_scope.] 0. secs (0.u,0.s) -Chars 1022 - 1055 [Delimit~Scope~sum_scope~with~sum.] 0. secs (0.u,0.s) -Chars 1056 - 1087 [Bind~Scope~sum_scope~with~sum1.] 0. secs (0.u,0.s) -Chars 1089 - 1131 [Notation~"(|~x~)"~:=~(inr1~x)~...] 0. secs (0.u,0.s) -Chars 1132 - 1174 [Notation~"(~x~|)"~:=~(inl1~x)~...] 0. secs (0.u,0.s) -Chars 1175 - 1225 [Notation~"(|~x~|)"~:=~(inr1~(i...] 0. secs (0.u,0.s) -Chars 1226 - 1276 [Notation~"(||~x~)"~:=~(inr1~(i...] 0. secs (0.u,0.s) -Chars 1277 - 1335 [Notation~"(||~x~|)"~:=~(inr1~(...] 0. secs (0.u,0.s) -Chars 1336 - 1394 [Notation~"(|||~x~)"~:=~(inr1~(...] 0. secs (0.u,0.s) -Chars 1395 - 1461 [Notation~"(|||~x~|)"~:=~(inr1~...] 0. secs (0.u,0.s) -Chars 1462 - 1528 [Notation~"(||||~x~)"~:=~(inr1~...] 0. secs (0.u,0.s) -Chars 1529 - 1605 [Notation~"(||||~x~|)"~:=~(inr1...] 0. secs (0.u,0.s) -Chars 1606 - 1682 [Notation~"(|||||~x~)"~:=~(inr1...] 0. secs (0.u,0.s) -Chars 1683 - 1767 [Notation~"(|||||~x~|)"~:=~(inr...] 0. secs (0.u,0.s) -Chars 1768 - 1852 [Notation~"(||||||~x~)"~:=~(inr...] 0. secs (0.u,0.s) -Chars 1853 - 1945 [Notation~"(||||||~x~|)"~:=~(in...] 0. secs (0.u,0.s) -Chars 1946 - 2038 [Notation~"(|||||||~x~)"~:=~(in...] 0. secs (0.u,0.s) -Chars 2040 - 2057 [End~SumNotations.] 0.001 secs (0.u,0.s) -Chars 2059 - 2086 [#[local]~Open~Scope~sum_scope.] 0. secs (0.u,0.s) -Chars 2127 - 2170 [Notation~vis~e~k:=~(Vis~(subev...] 0. secs (0.u,0.s) -Chars 2236 - 2289 [Notation~trigger~e:=~(ITree.tr...] 0. secs (0.u,0.s) -Chars 2442 - 2483 [Class~Embeddable~U~V~:=~~~~~em...] 0. secs (0.u,0.s) -Chars 2485 - 2685 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) -Chars 2687 - 2831 [#[global]~Instance~Embeddable_...] 0. secs (0.u,0.s) -Chars 2939 - 3043 [Lemma~resum_to_subevent~:~~~fo...] 0. secs (0.u,0.s) -Chars 3044 - 3050 [Proof.] 0. secs (0.u,0.s) -Chars 3053 - 3073 [intros;~reflexivity.] 0. secs (0.u,0.s) -Chars 3074 - 3078 [Qed.] 0. secs (0.u,0.s) -Chars 3080 - 3204 [Lemma~subevent_subevent'~:~~~f...] 0. secs (0.u,0.s) -Chars 3205 - 3211 [Proof.] 0. secs (0.u,0.s) -Chars 3214 - 3226 [reflexivity.] 0. secs (0.u,0.s) -Chars 3227 - 3231 [Qed.] 0. secs (0.u,0.s) -Chars 3233 - 3430 [Lemma~subevent_subevent~:~~~fo...] 0. secs (0.u,0.s) -Chars 3431 - 3437 [Proof.] 0. secs (0.u,0.s) -Chars 3440 - 3452 [reflexivity.] 0. secs (0.u,0.s) -Chars 3453 - 3457 [Qed.] 0. secs (0.u,0.s) -Chars 3459 - 3540 [#[global]~Instance~subevent_vo...] 0. secs (0.u,0.s) -Chars 3542 - 3638 [Lemma~subevent_left~{E}~{F}~{R...] 0. secs (0.u,0.s) -Chars 3639 - 3645 [Proof.] 0. secs (0.u,0.s) -Chars 3648 - 3660 [reflexivity.] 0. secs (0.u,0.s) -Chars 3661 - 3665 [Qed.] 0. secs (0.u,0.s) -Chars 3667 - 3764 [Lemma~subevent_right~{E}~{F}~{...] 0. secs (0.u,0.s) -Chars 3765 - 3771 [Proof.] 0. secs (0.u,0.s) -Chars 3774 - 3786 [reflexivity.] 0. secs (0.u,0.s) -Chars 3787 - 3791 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq.v.timing b/theories/Eq.v.timing deleted file mode 100644 index 5d10eb0b..00000000 --- a/theories/Eq.v.timing +++ /dev/null @@ -1 +0,0 @@ -Chars 45 - 105 [From~ITree.Eq~Require~Export~S...] 0.14 secs (0.125u,0.015s) diff --git a/theories/Eq/EqAxiom.v.timing b/theories/Eq/EqAxiom.v.timing deleted file mode 100644 index 5ce35da0..00000000 --- a/theories/Eq/EqAxiom.v.timing +++ /dev/null @@ -1,7 +0,0 @@ -Chars 263 - 328 [From~ITree~Require~Import~Core...] 0.037 secs (0.029u,0.007s) -Chars 492 - 604 [Axiom~~~(bisimulation_is_eq~:~...] 0. secs (0.u,0.s) -Chars 606 - 666 [Lemma~itree_eta_~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) -Chars 667 - 673 [Proof.] 0. secs (0.u,0.s) -Chars 676 - 701 [apply~bisimulation_is_eq.] 0. secs (0.u,0.s) -Chars 702 - 718 [apply~itree_eta.] 0. secs (0.u,0.s) -Chars 719 - 723 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Eqit.v.timing b/theories/Eq/Eqit.v.timing deleted file mode 100644 index e7a8697d..00000000 --- a/theories/Eq/Eqit.v.timing +++ /dev/null @@ -1,1825 +0,0 @@ -Chars 665 - 796 [From~Stdlib~Require~Import~Str...] 0.009 secs (0.006u,0.003s) -Chars 798 - 834 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 933 - 1073 [From~ITree~Require~Import~Basi...] 0.022 secs (0.018u,0.004s) -Chars 1076 - 1105 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 2696 - 2740 [#[local]~Coercion~is_true~:~bo...] 0. secs (0.u,0.s) -Chars 2742 - 2755 [Section~eqit.] 0. secs (0.u,0.s) -Chars 3432 - 3459 [Context~{E~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 3886 - 4602 [Inductive~eqitF~{R1~R2~:~Type}...] 0.002 secs (0.002u,0.s) -Chars 4605 - 4637 [Hint~Constructors~eqitF:~itree.] 0. secs (0.u,0.s) -Chars 4641 - 4905 [Definition~eqit_~b1~b2~~~(sim~...] 0. secs (0.u,0.s) -Chars 4908 - 4934 [Hint~Unfold~eqit_:~itree.] 0. secs (0.u,0.s) -Chars 4986 - 5046 [Lemma~eqitF_mono~b1~b2~:~Prope...] 0. secs (0.u,0.s) -Chars 5049 - 5055 [Proof.] 0. secs (0.u,0.s) -Chars 5060 - 5096 [intros~sim~sim'~Hsim~R1~R2~RR~...] 0. secs (0.u,0.s) -Chars 5101 - 5114 [unfold~eqit_.] 0. secs (0.u,0.s) -Chars 5115 - 5125 [intros~IN.] 0. secs (0.u,0.s) -Chars 5130 - 5162 [induction~IN;~constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 5167 - 5168 [-] 0. secs (0.u,0.s) -Chars 5169 - 5186 [apply~Hsim;~auto.] 0.012 secs (0.011u,0.s) -Chars 5191 - 5192 [-] 0. secs (0.u,0.s) -Chars 5193 - 5220 [intros~?;~apply~Hsim;~auto.] 0. secs (0.u,0.s) -Chars 5223 - 5227 [Qed.] 0. secs (0.u,0.s) -Chars 5286 - 5450 [Definition~eqit_mon~b1~b2~:~~~...] 0. secs (0.u,0.s) -Chars 5454 - 5575 [Definition~eqit~b1~b2~:~~~fora...] 0. secs (0.u,0.s) -Chars 5786 - 5867 [Definition~eq_itree~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 5871 - 5946 [Definition~eutt~{R1}~{R2}~(RR~...] 0. secs (0.u,0.s) -Chars 5950 - 6028 [Definition~euttge~{R1}~{R2}~(R...] 0. secs (0.u,0.s) -Chars 6030 - 6039 [End~eqit.] 0. secs (0.u,0.s) -Chars 6040 - 6086 [Arguments~eqit_~{E}~b1~b2~sim~...] 0. secs (0.u,0.s) -Chars 6087 - 6127 [Arguments~eqit~{E}~b1~b2~{R1~R...] 0. secs (0.u,0.s) -Chars 6128 - 6157 [Arguments~eqit_mon~{E}~b1~b2.] 0. secs (0.u,0.s) -Chars 6381 - 6447 [Infix~"≅⟨~R~⟩"~:=~(eq_itree~R)...] 0. secs (0.u,0.s) -Chars 6452 - 6510 [Infix~"≅"~:=~(eq_itree~eq)~(~a...] 0. secs (0.u,0.s) -Chars 6533 - 6621 [Infix~"{≅⟨~R~⟩}"~:=~(eqitF~R~f...] 0. secs (0.u,0.s) -Chars 6626 - 6720 [Infix~"{≅}"~:=~(eqitF~eq~false...] 0. secs (0.u,0.s) -Chars 6744 - 6836 [Infix~"{[≅⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) -Chars 6841 - 6939 [Infix~"{[≅]}"~:=~(eqitF~eq~fal...] 0. secs (0.u,0.s) -Chars 6959 - 7055 [Infix~"[≅⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) -Chars 7060 - 7148 [Infix~"[≅]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) -Chars 7154 - 7214 [Infix~"≈⟨~R~⟩"~:=~(eutt~R)~(~a...] 0. secs (0.u,0.s) -Chars 7219 - 7271 [Infix~"≈"~:=~(eutt~eq)~(~at~le...] 0. secs (0.u,0.s) -Chars 7294 - 7376 [Infix~"{≈⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) -Chars 7381 - 7469 [Infix~"{≈}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) -Chars 7493 - 7583 [Infix~"{[≈⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) -Chars 7588 - 7684 [Infix~"{[≈]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) -Chars 7704 - 7798 [Infix~"[≈⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) -Chars 7803 - 7889 [Infix~"[≈]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) -Chars 7895 - 7957 [Infix~"≳⟨~R~⟩"~:=~(euttge~R)~(...] 0. secs (0.u,0.s) -Chars 7962 - 8018 [Infix~"≳"~:=~(euttge~eq)~(~at~...] 0. secs (0.u,0.s) -Chars 8041 - 8126 [Infix~"{≳⟨~R~⟩}"~:=~(eqitF~R~t...] 0. secs (0.u,0.s) -Chars 8131 - 8222 [Infix~"{≳}"~:=~(eqitF~eq~true~...] 0. secs (0.u,0.s) -Chars 8246 - 8337 [Infix~"{[≳⟨~R~⟩]}"~:=~(eqitF~R...] 0. secs (0.u,0.s) -Chars 8342 - 8439 [Infix~"{[≳]}"~:=~(eqitF~eq~tru...] 0. secs (0.u,0.s) -Chars 8459 - 8554 [Infix~"[≳⟨~R~⟩]"~:=~(@elem~_~_...] 0. secs (0.u,0.s) -Chars 8559 - 8646 [Infix~"[≳]"~:=~(@elem~_~_~(eqi...] 0. secs (0.u,0.s) -Chars 8669 - 8716 [Notation~euttC~:=~(Chain~(eqit...] 0. secs (0.u,0.s) -Chars 8721 - 8771 [Notation~euttgeC~:=~(Chain~(eq...] 0. secs (0.u,0.s) -Chars 8776 - 8829 [Notation~eq_itreeC~:=~(Chain~(...] 0. secs (0.u,0.s) -Chars 8888 - 8949 [Notation~"⊙~x"~:=~(observe~x)~...] 0. secs (0.u,0.s) -Chars 8981 - 9023 [#[global]~Hint~Constructors~eq...] 0. secs (0.u,0.s) -Chars 9028 - 9064 [#[global]~Hint~Unfold~eqit_:~i...] 0. secs (0.u,0.s) -Chars 9069 - 9108 [#[global]~Hint~Unfold~eqit_mon...] 0. secs (0.u,0.s) -Chars 9113 - 9148 [#[global]~Hint~Unfold~eqit:~it...] 0. secs (0.u,0.s) -Chars 9153 - 9192 [#[global]~Hint~Unfold~eq_itree...] 0. secs (0.u,0.s) -Chars 9197 - 9232 [#[global]~Hint~Unfold~eutt:~it...] 0. secs (0.u,0.s) -Chars 9237 - 9274 [#[global]~Hint~Unfold~euttge:~...] 0. secs (0.u,0.s) -Chars 10016 - 10082 [#[local]~Ltac~iunfold~:=~unfol...] 0. secs (0.u,0.s) -Chars 10083 - 10154 [#[local]~Ltac~iunfold_in~h~:=~...] 0. secs (0.u,0.s) -Chars 10155 - 10226 [#[local]~Ltac~iunfold_all~:=~u...] 0. secs (0.u,0.s) -Chars 10228 - 10252 [Ltac~icbn~:=~repeat~red.] 0. secs (0.u,0.s) -Chars 10254 - 10288 [Ltac~icbn_in~h~:=~repeat~red~i...] 0. secs (0.u,0.s) -Chars 10290 - 10505 [Ltac~~refold~:=~~~repeat~~~~ma...] 0. secs (0.u,0.s) -Chars 10507 - 10742 [Ltac~~refold_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 10744 - 11840 [Ltac~~to_mon_core~:=~~~match~g...] 0. secs (0.u,0.s) -Chars 11842 - 12026 [Ltac~~to_mon~:=~~~let~dummy~:=...] 0. secs (0.u,0.s) -Chars 12029 - 12504 [Ltac~~to_mon_in~h~:=~~~match~t...] 0. secs (0.u,0.s) -Chars 12564 - 12614 [Tactic~Notation~"icbn"~"in"~id...] 0. secs (0.u,0.s) -Chars 12615 - 12690 [#[local]~Tactic~Notation~"icbn...] 0. secs (0.u,0.s) -Chars 12692 - 12746 [Tactic~Notation~"refold"~"in"~...] 0. secs (0.u,0.s) -Chars 12747 - 12801 [Tactic~Notation~"to_mon"~"in"~...] 0. secs (0.u,0.s) -Chars 12802 - 12858 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 12859 - 12909 [Tactic~Notation~"iunfold"~"in"...] 0. secs (0.u,0.s) -Chars 12960 - 13104 [#[global]~Ltac~~step~:=~~~matc...] 0. secs (0.u,0.s) -Chars 13207 - 13379 [Tactic~Notation~"step"~"in"~id...] 0. secs (0.u,0.s) -Chars 13382 - 13450 [Tactic~Notation~"unstep"~:=~iu...] 0. secs (0.u,0.s) -Chars 13451 - 13555 [Tactic~Notation~"unstep"~"in"~...] 0. secs (0.u,0.s) -Chars 13557 - 13638 [Ltac~~iunfold_coind~:=~first~[...] 0. secs (0.u,0.s) -Chars 13640 - 13755 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) -Chars 13757 - 13858 [Tactic~Notation~"coinduction"~...] 0. secs (0.u,0.s) -Chars 13861 - 13971 [Tactic~Notation~"icoinduction"...] 0. secs (0.u,0.s) -Chars 14030 - 14079 [Ltac~sinv~H~:=~repeat~red~in~H...] 0. secs (0.u,0.s) -Chars 14217 - 14485 [Ltac~~solve_eqitF~:=~~~iunfold...] 0. secs (0.u,0.s) -Chars 14724 - 14759 [Ltac~taul~:=~apply~EqTauL;~[~a...] 0. secs (0.u,0.s) -Chars 14760 - 14795 [Ltac~taur~:=~apply~EqTauR;~[~a...] 0. secs (0.u,0.s) -Chars 14797 - 14822 [Ltac~taus~:=~apply~EqTau.] 0. secs (0.u,0.s) -Chars 14826 - 14853 [Module~step_notation_tests.] 0. secs (0.u,0.s) -Chars 14857 - 14893 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 14896 - 14928 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 14931 - 14972 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 14975 - 15011 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 15014 - 15050 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 15053 - 15112 [#[local]~Parameter~(eqc~:~Chai...] 0. secs (0.u,0.s) -Chars 15115 - 15150 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 15153 - 15191 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 15194 - 15229 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 15232 - 15270 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 15273 - 15307 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) -Chars 15310 - 15345 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 15388 - 15405 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 15454 - 15459 [step.] 0.001 secs (0.001u,0.s) -Chars 15460 - 15467 [unstep.] 0.002 secs (0.002u,0.s) -Chars 15472 - 15477 [step.] 0.001 secs (0.001u,0.s) -Chars 15482 - 15492 [Fail~step.] 0. secs (0.u,0.s) -Chars 15498 - 15505 [unstep.] 0.002 secs (0.002u,0.s) -Chars 15511 - 15523 [Fail~unstep.] 0.002 secs (0.001u,0.s) -Chars 15530 - 15602 [assert~(eqitF~eq~false~false~(...] 0. secs (0.u,0.s) -Chars 15607 - 15612 [step.] 0.001 secs (0.001u,0.s) -Chars 15643 - 15648 [step.] 0.024 secs (0.024u,0.s) -Chars 15649 - 15656 [unstep.] 0.002 secs (0.002u,0.s) -Chars 15657 - 15669 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15670 - 15675 [step.] 0.001 secs (0.001u,0.s) -Chars 15676 - 15686 [Fail~step.] 0. secs (0.u,0.s) -Chars 15687 - 15711 [now~unstep;~apply~EQ2.] 0.002 secs (0.002u,0.s) -Chars 15717 - 15748 [assert~((elem~eqc~_~_~eq)~v~w).] 0. secs (0.u,0.s) -Chars 15753 - 15758 [step.] 0.001 secs (0.001u,0.s) -Chars 15759 - 15764 [step.] 0.002 secs (0.002u,0.s) -Chars 15796 - 15801 [step.] 0.001 secs (0.001u,0.s) -Chars 15802 - 15809 [unstep.] 0.002 secs (0.002u,0.s) -Chars 15810 - 15822 [Fail~unstep.] 0.001 secs (0.001u,0.s) -Chars 15823 - 15828 [step.] 0.002 secs (0.002u,0.s) -Chars 15829 - 15839 [Fail~step.] 0. secs (0.u,0.s) -Chars 15840 - 15864 [now~unstep;~apply~EQ2.] 0.003 secs (0.002u,0.s) -Chars 15870 - 15882 [to_mon~in~H.] 0. secs (0.u,0.s) -Chars 15886 - 15892 [Abort.] 0. secs (0.u,0.s) -Chars 15895 - 15919 [End~step_notation_tests.] 0. secs (0.u,0.s) -Chars 15922 - 16220 [Lemma~eqitF_inv_VisF_r~{E}~{R1...] 0.001 secs (0.001u,0.s) -Chars 16221 - 16227 [Proof.] 0. secs (0.u,0.s) -Chars 16230 - 16537 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) -Chars 16540 - 16541 [-] 0. secs (0.u,0.s) -Chars 16542 - 16554 [left;~eauto.] 0. secs (0.u,0.s) -Chars 16557 - 16558 [-] 0. secs (0.u,0.s) -Chars 16559 - 16578 [destruct~i0;~eauto.] 0.001 secs (0.u,0.s) -Chars 16579 - 16583 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16585 - 16886 [Lemma~eqitF_inv_VisF_l~{E}~{R1...] 0.001 secs (0.u,0.s) -Chars 16887 - 16893 [Proof.] 0. secs (0.u,0.s) -Chars 16896 - 17115 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) -Chars 17118 - 17119 [-] 0. secs (0.u,0.s) -Chars 17120 - 17132 [left;~eauto.] 0. secs (0.u,0.s) -Chars 17135 - 17136 [-] 0. secs (0.u,0.s) -Chars 17137 - 17155 [destruct~i;~eauto.] 0.001 secs (0.u,0.s) -Chars 17156 - 17160 [Qed.] 0.001 secs (0.001u,0.s) -Chars 17162 - 17411 [Lemma~eqitF_inv_VisF_weak~{E}~...] 0.001 secs (0.u,0.s) -Chars 17412 - 17418 [Proof.] 0. secs (0.u,0.s) -Chars 17421 - 17656 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) -Chars 17659 - 17660 [-] 0. secs (0.u,0.s) -Chars 17661 - 17688 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) -Chars 17691 - 17692 [-] 0. secs (0.u,0.s) -Chars 17693 - 17713 [destruct~i;~exact~I.] 0. secs (0.u,0.s) -Chars 17714 - 17718 [Qed.] 0. secs (0.u,0.s) -Chars 17720 - 17913 [Lemma~eqitF_inv_VisF~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 17914 - 17920 [Proof.] 0. secs (0.u,0.s) -Chars 17923 - 17932 [intros~H.] 0. secs (0.u,0.s) -Chars 17933 - 17957 [dependent~destruction~H.] 0.003 secs (0.002u,0.s) -Chars 17958 - 17969 [assumption.] 0. secs (0.u,0.s) -Chars 17970 - 17974 [Qed.] 0.002 secs (0.002u,0.s) -Chars 17976 - 18216 [Lemma~eqitF_VisF_gen~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 18217 - 18223 [Proof.] 0. secs (0.u,0.s) -Chars 18226 - 18272 [destruct~p;~intros~<-;~cbn;~co...] 0.012 secs (0.012u,0.s) -Chars 18273 - 18277 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18279 - 18408 [Lemma~eqitF_flip~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 18409 - 18415 [Proof.] 0. secs (0.u,0.s) -Chars 18418 - 18457 [intros~!;~induction~H;~eauto~w...] 0. secs (0.u,0.s) -Chars 18458 - 18462 [Qed.] 0. secs (0.u,0.s) -Chars 18464 - 18616 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) -Chars 18617 - 18623 [Proof.] 0. secs (0.u,0.s) -Chars 18626 - 18634 [intros~!.] 0. secs (0.u,0.s) -Chars 18635 - 18641 [subst.] 0. secs (0.u,0.s) -Chars 18642 - 18693 [split;~unfold~subrelationH,~Su...] 0. secs (0.u,0.s) -Chars 18696 - 18790 [all:~~induction~H0;~auto~with~...] 0.003 secs (0.003u,0.s) -Chars 18791 - 18795 [Qed.] 0.001 secs (0.001u,0.s) -Chars 18797 - 18962 [#[global]~Instance~eqitF_Prope...] 0. secs (0.u,0.s) -Chars 18963 - 18969 [Proof.] 0. secs (0.u,0.s) -Chars 18972 - 18980 [intros~!.] 0. secs (0.u,0.s) -Chars 18981 - 18987 [subst.] 0. secs (0.u,0.s) -Chars 18988 - 19002 [split;~intros.] 0. secs (0.u,0.s) -Chars 19005 - 19074 [all:~induction~H0;~auto~with~i...] 0.001 secs (0.001u,0.s) -Chars 19075 - 19079 [Qed.] 0.001 secs (0.001u,0.s) -Chars 19081 - 19225 [#[global]~Instance~eqit_Proper...] 0. secs (0.u,0.s) -Chars 19226 - 19253 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) -Chars 19256 - 19264 [intros~!.] 0. secs (0.u,0.s) -Chars 19265 - 19271 [subst.] 0. secs (0.u,0.s) -Chars 19275 - 19281 [split.] 0. secs (0.u,0.s) -Chars 19284 - 19285 [-] 0. secs (0.u,0.s) -Chars 19286 - 19301 [revert_until~H.] 0. secs (0.u,0.s) -Chars 19302 - 19321 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) -Chars 19322 - 19329 [intros.] 0. secs (0.u,0.s) -Chars 19334 - 19345 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19350 - 19377 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) -Chars 19382 - 19408 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) -Chars 19412 - 19413 [-] 0. secs (0.u,0.s) -Chars 19414 - 19429 [revert_until~H.] 0. secs (0.u,0.s) -Chars 19430 - 19449 [icoinduction~R~CIH.] 0.001 secs (0.001u,0.s) -Chars 19450 - 19457 [intros.] 0. secs (0.u,0.s) -Chars 19464 - 19475 [step~in~H0.] 0. secs (0.u,0.s) -Chars 19480 - 19507 [hinduction~H0~before~CIH~...] 0.002 secs (0.002u,0.s) -Chars 19513 - 19539 [econstructor;~now~apply~H.] 0. secs (0.u,0.s) -Chars 19541 - 19545 [Qed.] 0.006 secs (0.006u,0.s) -Chars 19548 - 19689 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 19690 - 19696 [Proof.] 0. secs (0.u,0.s) -Chars 19699 - 19732 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 19733 - 19737 [Qed.] 0. secs (0.u,0.s) -Chars 19739 - 19876 [#[global]~Instance~euttge_Prop...] 0. secs (0.u,0.s) -Chars 19877 - 19883 [Proof.] 0. secs (0.u,0.s) -Chars 19886 - 19919 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 19920 - 19924 [Qed.] 0. secs (0.u,0.s) -Chars 19926 - 20059 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 20060 - 20066 [Proof.] 0. secs (0.u,0.s) -Chars 20069 - 20102 [now~intros~!;~apply~eqit_Prope...] 0. secs (0.u,0.s) -Chars 20103 - 20107 [Qed.] 0. secs (0.u,0.s) -Chars 20552 - 20703 [Lemma~eqit_flip~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 20704 - 20710 [Proof.] 0. secs (0.u,0.s) -Chars 20737 - 20756 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 20757 - 20772 [intros~u~v~euv.] 0. secs (0.u,0.s) -Chars 20840 - 20852 [step~in~euv.] 0. secs (0.u,0.s) -Chars 20918 - 20950 [induction~euv;~eauto~with~itree.] 0.003 secs (0.003u,0.s) -Chars 20951 - 20955 [Qed.] 0.003 secs (0.003u,0.s) -Chars 20957 - 21135 [Lemma~eutt_flip~:~~~forall~(E~...] 0. secs (0.u,0.s) -Chars 21136 - 21142 [Proof.] 0. secs (0.u,0.s) -Chars 21145 - 21152 [intros.] 0. secs (0.u,0.s) -Chars 21153 - 21173 [now~apply~eqit_flip.] 0. secs (0.u,0.s) -Chars 21176 - 21180 [Qed.] 0. secs (0.u,0.s) -Chars 21182 - 21217 [#[global]~Hint~Unfold~flip:~it...] 0. secs (0.u,0.s) -Chars 21253 - 21426 [Lemma~eqit_mono~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 21427 - 21433 [Proof.] 0. secs (0.u,0.s) -Chars 21436 - 21444 [intros~!.] 0. secs (0.u,0.s) -Chars 21448 - 21462 [revert~a~a0~H.] 0. secs (0.u,0.s) -Chars 21466 - 21493 [icoinduction~c~CIH;~intros.] 0.001 secs (0.001u,0.s) -Chars 21498 - 21508 [step~in~H.] 0. secs (0.u,0.s) -Chars 21509 - 21539 [induction~H;~eauto~with~itree.] 0.003 secs (0.003u,0.s) -Chars 21542 - 21555 [econstructor.] 0. secs (0.u,0.s) -Chars 21556 - 21571 [now~apply~LERR.] 0. secs (0.u,0.s) -Chars 21574 - 21578 [Qed.] 0.003 secs (0.003u,0.s) -Chars 21677 - 21694 [Section~eqit_gen.] 0. secs (0.u,0.s) -Chars 21747 - 21806 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 22178 - 22328 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 22329 - 22335 [Proof.] 0. secs (0.u,0.s) -Chars 22340 - 22344 [red.] 0. secs (0.u,0.s) -Chars 22345 - 22387 [destruct~x;~constructor;~eauto...] 0. secs (0.u,0.s) -Chars 22388 - 22392 [Qed.] 0. secs (0.u,0.s) -Chars 22443 - 22587 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 22588 - 22594 [Proof.] 0. secs (0.u,0.s) -Chars 22599 - 22603 [red.] 0. secs (0.u,0.s) -Chars 22604 - 22643 [induction~3;~constructor;~subs...] 0.001 secs (0.001u,0.s) -Chars 22644 - 22648 [Qed.] 0. secs (0.u,0.s) -Chars 22698 - 22852 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 22853 - 22859 [Proof.] 0. secs (0.u,0.s) -Chars 22864 - 22888 [intros~?~?~t~u~v~EQ1~EQ2.] 0. secs (0.u,0.s) -Chars 22893 - 22938 [inv~EQ1;~try~now~inv~EQ2;~eaut...] 0.036 secs (0.035u,0.s) -Chars 22943 - 23011 [apply~eqitF_inv_VisF_l~in~EQ2~...] 0.001 secs (0.001u,0.s) -Chars 23016 - 23035 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 23036 - 23040 [Qed.] 0.002 secs (0.002u,0.s) -Chars 23149 - 23240 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 23241 - 23247 [Proof.] 0. secs (0.u,0.s) -Chars 23250 - 23262 [red;~intros.] 0. secs (0.u,0.s) -Chars 23265 - 23274 [revert~x.] 0. secs (0.u,0.s) -Chars 23275 - 23294 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 23295 - 23301 [intro.] 0. secs (0.u,0.s) -Chars 23305 - 23338 [now~repeat~apply~Reflexive_eqitF.] 0. secs (0.u,0.s) -Chars 23339 - 23343 [Qed.] 0.001 secs (0.001u,0.s) -Chars 23345 - 23430 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 23431 - 23437 [Proof.] 0. secs (0.u,0.s) -Chars 23440 - 23460 [intros~Hsym~x~y~Hxy.] 0. secs (0.u,0.s) -Chars 23463 - 23479 [apply~eqit_flip.] 0. secs (0.u,0.s) -Chars 23482 - 23534 [eapply~eqit_mono;~[~auto~|~aut...] 0.001 secs (0.001u,0.s) -Chars 23536 - 23540 [Qed.] 0. secs (0.u,0.s) -Chars 23542 - 23670 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 23671 - 23677 [Proof.] 0. secs (0.u,0.s) -Chars 23680 - 23693 [red;~intro~x.] 0. secs (0.u,0.s) -Chars 23696 - 23716 [apply~(gfp_chain~c).] 0.001 secs (0.001u,0.s) -Chars 23719 - 23731 [reflexivity.] 0. secs (0.u,0.s) -Chars 23732 - 23736 [Qed.] 0. secs (0.u,0.s) -Chars 23738 - 23895 [Lemma~inf_closed_Symmetric_at~...] 0. secs (0.u,0.s) -Chars 23896 - 23902 [Proof.] 0. secs (0.u,0.s) -Chars 23905 - 23925 [intros~T~HT~x~y~Hxy.] 0. secs (0.u,0.s) -Chars 23928 - 23940 [intros~z~Hz.] 0. secs (0.u,0.s) -Chars 23941 - 23956 [apply~HT;~auto.] 0. secs (0.u,0.s) -Chars 23957 - 23961 [Qed.] 0. secs (0.u,0.s) -Chars 23963 - 24085 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 24086 - 24092 [Proof.] 0. secs (0.u,0.s) -Chars 24095 - 24104 [revert~c.] 0. secs (0.u,0.s) -Chars 24105 - 24143 [apply~(tower~inf_closed_Symmet...] 0. secs (0.u,0.s) -Chars 24146 - 24160 [intros~c~Hsym.] 0. secs (0.u,0.s) -Chars 24161 - 24169 [intros~!.] 0. secs (0.u,0.s) -Chars 24170 - 24198 [apply~Symmetric_eqitF;~auto.] 0. secs (0.u,0.s) -Chars 24199 - 24203 [Qed.] 0. secs (0.u,0.s) -Chars 24205 - 24218 [End~eqit_gen.] 0. secs (0.u,0.s) -Chars 24221 - 24238 [Section~eqit_inv.] 0. secs (0.u,0.s) -Chars 24242 - 24316 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 24319 - 24368 [Context~{sim~:~itree~E~R1~->~i...] 0. secs (0.u,0.s) -Chars 24372 - 24838 [Notation~eqit__~t1_~t2_:=~~~ma...] 0. secs (0.u,0.s) -Chars 24842 - 24937 [Lemma~eqit_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 24940 - 24946 [Proof.] 0. secs (0.u,0.s) -Chars 24951 - 24962 [intros~*~H.] 0. secs (0.u,0.s) -Chars 24967 - 24977 [step~in~H.] 0. secs (0.u,0.s) -Chars 24982 - 24987 [step.] 0.001 secs (0.001u,0.s) -Chars 24995 - 25023 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) -Chars 25028 - 25050 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) -Chars 25057 - 25058 [-] 0. secs (0.u,0.s) -Chars 25059 - 25071 [step~in~REL.] 0. secs (0.u,0.s) -Chars 25072 - 25081 [now~taur.] 0. secs (0.u,0.s) -Chars 25086 - 25087 [-] 0. secs (0.u,0.s) -Chars 25088 - 25093 [taur.] 0. secs (0.u,0.s) -Chars 25094 - 25112 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25116 - 25120 [Qed.] 0.002 secs (0.002u,0.s) -Chars 25125 - 25220 [Lemma~eqit_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 25223 - 25229 [Proof.] 0. secs (0.u,0.s) -Chars 25234 - 25245 [intros~*~H.] 0. secs (0.u,0.s) -Chars 25250 - 25260 [step~in~H.] 0. secs (0.u,0.s) -Chars 25265 - 25270 [step.] 0.001 secs (0.001u,0.s) -Chars 25278 - 25306 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) -Chars 25311 - 25333 [induction~H;~inv~Heqi.] 0.005 secs (0.005u,0.s) -Chars 25340 - 25341 [-] 0. secs (0.u,0.s) -Chars 25342 - 25354 [step~in~REL.] 0. secs (0.u,0.s) -Chars 25355 - 25364 [now~taul.] 0. secs (0.u,0.s) -Chars 25370 - 25371 [-] 0. secs (0.u,0.s) -Chars 25372 - 25377 [taul.] 0. secs (0.u,0.s) -Chars 25378 - 25396 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25400 - 25404 [Qed.] 0.002 secs (0.002u,0.s) -Chars 25409 - 25597 [Lemma~eqitF_inv_Tau~t1~t2~:~~~...] 0. secs (0.u,0.s) -Chars 25600 - 25606 [Proof.] 0. secs (0.u,0.s) -Chars 25611 - 25618 [intros.] 0. secs (0.u,0.s) -Chars 25623 - 25649 [remember~(TauF~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 25655 - 25681 [remember~(TauF~t2)~as~ot2.] 0. secs (0.u,0.s) -Chars 25687 - 25714 [revert~t1~t2~Heqot1~Heqot2.] 0. secs (0.u,0.s) -Chars 25719 - 25778 [induction~H;~intros~t1'~t2'~He...] 0.022 secs (0.022u,0.s) -Chars 25783 - 25784 [-] 0. secs (0.u,0.s) -Chars 25785 - 25808 [inv~Heqot1;~inv~Heqot2.] 0.004 secs (0.004u,0.s) -Chars 25809 - 25820 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 25827 - 25828 [-] 0. secs (0.u,0.s) -Chars 25829 - 25856 [inv~H;~inv~Heqot1;~simpobs.] 0.034 secs (0.034u,0.s) -Chars 25864 - 25865 [+] 0. secs (0.u,0.s) -Chars 25866 - 25871 [taul.] 0. secs (0.u,0.s) -Chars 25872 - 25888 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 25897 - 25898 [+] 0. secs (0.u,0.s) -Chars 25899 - 25904 [taul.] 0. secs (0.u,0.s) -Chars 25905 - 25923 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 25930 - 25931 [-] 0. secs (0.u,0.s) -Chars 25932 - 25959 [inv~H;~inv~Heqot2;~simpobs.] 0.032 secs (0.032u,0.s) -Chars 25967 - 25968 [+] 0. secs (0.u,0.s) -Chars 25969 - 25974 [taur.] 0. secs (0.u,0.s) -Chars 25975 - 25991 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 25999 - 26000 [+] 0. secs (0.u,0.s) -Chars 26001 - 26006 [taur.] 0. secs (0.u,0.s) -Chars 26007 - 26025 [now~apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 26029 - 26033 [Qed.] 0.007 secs (0.007u,0.s) -Chars 26038 - 26133 [Lemma~eqit_inv_Tau~t1~t2~:~~~@...] 0. secs (0.u,0.s) -Chars 26136 - 26142 [Proof.] 0. secs (0.u,0.s) -Chars 26147 - 26154 [intros.] 0. secs (0.u,0.s) -Chars 26159 - 26175 [step~in~H;~step.] 0.001 secs (0.001u,0.s) -Chars 26180 - 26204 [now~apply~eqitF_inv_Tau.] 0. secs (0.u,0.s) -Chars 26208 - 26212 [Qed.] 0. secs (0.u,0.s) -Chars 26217 - 26276 [Lemma~eqit_inv~t1~t2~:~eqit~b1...] 0. secs (0.u,0.s) -Chars 26279 - 26285 [Proof.] 0. secs (0.u,0.s) -Chars 26290 - 26310 [intros~H;~step~in~H.] 0. secs (0.u,0.s) -Chars 26315 - 26398 [genobs~t1~ot1;~genobs~t2~ot2;~...] 0. secs (0.u,0.s) -Chars 26403 - 26463 [destruct~H;~intros~*~E1~E2;~re...] 0.001 secs (0.001u,0.s) -Chars 26468 - 26469 [-] 0. secs (0.u,0.s) -Chars 26470 - 26497 [exists~eq_refl;~cbn;~eauto.] 0. secs (0.u,0.s) -Chars 26502 - 26503 [-] 0. secs (0.u,0.s) -Chars 26504 - 26523 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) -Chars 26524 - 26537 [destruct~ot2.] 0. secs (0.u,0.s) -Chars 26544 - 26607 [1,~3:~step;~unfold~observe,~_o...] 0.003 secs (0.003u,0.s) -Chars 26614 - 26682 [1:~apply~eqit_inv_Tau_r;~step;...] 0.001 secs (0.001u,0.s) -Chars 26687 - 26688 [-] 0. secs (0.u,0.s) -Chars 26689 - 26708 [rewrite~CHECK~in~*.] 0. secs (0.u,0.s) -Chars 26709 - 26722 [destruct~ot1.] 0. secs (0.u,0.s) -Chars 26729 - 26792 [1,~3:~step;~unfold~observe,~_o...] 0.003 secs (0.003u,0.s) -Chars 26799 - 26867 [1:~apply~eqit_inv_Tau_l;~step;...] 0.001 secs (0.001u,0.s) -Chars 26870 - 26874 [Qed.] 0.006 secs (0.006u,0.s) -Chars 26876 - 26889 [End~eqit_inv.] 0. secs (0.u,0.s) -Chars 26891 - 26935 [Ltac~genret~r~or~:=~remember~(...] 0. secs (0.u,0.s) -Chars 26936 - 26980 [Ltac~gentau~t~ot~:=~remember~(...] 0. secs (0.u,0.s) -Chars 26981 - 27029 [Ltac~genvis~e~k~ot~:=~remember...] 0. secs (0.u,0.s) -Chars 27031 - 27159 [Lemma~euttge_tau_r_inv~[E]~[R1...] 0. secs (0.u,0.s) -Chars 27160 - 27166 [Proof.] 0. secs (0.u,0.s) -Chars 27169 - 27191 [intros~EQ;~step~in~EQ.] 0. secs (0.u,0.s) -Chars 27194 - 27227 [desobs~t~ot;~eauto;~inv~EQ;~easy.] 0.006 secs (0.006u,0.s) -Chars 27228 - 27232 [Qed.] 0.003 secs (0.003u,0.s) -Chars 27234 - 27407 [Lemma~euttge_tau_inv~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 27408 - 27414 [Proof.] 0. secs (0.u,0.s) -Chars 27417 - 27427 [intros~EQ.] 0. secs (0.u,0.s) -Chars 27430 - 27452 [step~in~EQ;~cbn~in~EQ.] 0. secs (0.u,0.s) -Chars 27455 - 27480 [genobs~t~ot;~genobs~u~ou.] 0. secs (0.u,0.s) -Chars 27483 - 27506 [revert~t~u~Heqot~Heqou.] 0. secs (0.u,0.s) -Chars 27509 - 27540 [induction~EQ;~intros;~try~easy.] 0.009 secs (0.008u,0.s) -Chars 27543 - 27544 [-] 0. secs (0.u,0.s) -Chars 27545 - 27559 [inv~H;~inv~H0.] 0.001 secs (0.001u,0.s) -Chars 27563 - 27564 [-] 0. secs (0.u,0.s) -Chars 27565 - 27580 [inv~H;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 27585 - 27629 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 27634 - 27639 [step.] 0.001 secs (0.001u,0.s) -Chars 27644 - 27652 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 27657 - 27662 [taul.] 0. secs (0.u,0.s) -Chars 27667 - 27674 [unstep.] 0.002 secs (0.002u,0.s) -Chars 27679 - 27698 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 27699 - 27703 [Qed.] 0.004 secs (0.004u,0.s) -Chars 27706 - 27844 [Ltac~~inf_closed_forall_auto~:...] 0. secs (0.u,0.s) -Chars 27847 - 28039 [Ltac~~inf_closed_impl_auto~:=~...] 0. secs (0.u,0.s) -Chars 28044 - 28169 [Ltac~~inf_closed_auto~:=~~~rep...] 0. secs (0.u,0.s) -Chars 28172 - 28228 [Ltac~tower_induction~:=~apply~...] 0. secs (0.u,0.s) -Chars 28229 - 28284 [Tactic~Notation~"tower"~"induc...] 0. secs (0.u,0.s) -Chars 28287 - 28449 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 28450 - 28478 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 28481 - 28519 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 28522 - 28538 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 28541 - 28606 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) -Chars 28611 - 28621 [intros~EQ.] 0. secs (0.u,0.s) -Chars 28622 - 28632 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 28638 - 28667 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) -Chars 28787 - 28826 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 28831 - 28852 [induction~EQ;~intros.] 0. secs (0.u,0.s) -Chars 28857 - 28858 [+] 0. secs (0.u,0.s) -Chars 28859 - 28885 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 28892 - 28904 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 28911 - 28925 [genret~r1~or1.] 0. secs (0.u,0.s) -Chars 28932 - 28947 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 28954 - 28989 [hinduction~EQx~before~ox;~try~...] 0.037 secs (0.037u,0.s) -Chars 28996 - 28997 [*] 0. secs (0.u,0.s) -Chars 28998 - 29024 [intros;~subst;~inv~Heqor1.] 0.005 secs (0.005u,0.s) -Chars 29025 - 29039 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 29048 - 29075 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) -Chars 29084 - 29099 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 29108 - 29143 [hinduction~EQy~before~oy;~try~...] 0.024 secs (0.024u,0.s) -Chars 29152 - 29177 [subst;~intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) -Chars 29186 - 29217 [now~intros;~taur;~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 29224 - 29225 [*] 0. secs (0.u,0.s) -Chars 29226 - 29262 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) -Chars 29267 - 29268 [+] 0. secs (0.u,0.s) -Chars 29269 - 29295 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 29302 - 29314 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 29321 - 29335 [gentau~m1~om1.] 0. secs (0.u,0.s) -Chars 29342 - 29357 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 29364 - 29399 [hinduction~EQx~before~ox;~try~...] 0.04 secs (0.04u,0.s) -Chars 29406 - 29407 [*] 0. secs (0.u,0.s) -Chars 29408 - 29426 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) -Chars 29435 - 29449 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 29458 - 29485 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) -Chars 29494 - 29509 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 29518 - 29553 [hinduction~EQy~before~oy;~try~...] 0.028 secs (0.028u,0.s) -Chars 29562 - 29580 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) -Chars 29589 - 29596 [intros.] 0. secs (0.u,0.s) -Chars 29605 - 29610 [taur.] 0. secs (0.u,0.s) -Chars 29619 - 29636 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 29643 - 29644 [*] 0. secs (0.u,0.s) -Chars 29645 - 29681 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) -Chars 29686 - 29687 [+] 0. secs (0.u,0.s) -Chars 29688 - 29714 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 29721 - 29733 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 29740 - 29756 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) -Chars 29763 - 29778 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 29785 - 29820 [hinduction~EQx~before~ox;~try~...] 0.038 secs (0.038u,0.s) -Chars 29827 - 29828 [*] 0. secs (0.u,0.s) -Chars 29829 - 29836 [intros.] 0. secs (0.u,0.s) -Chars 29845 - 29911 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) -Chars 29920 - 29934 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 29943 - 29972 [genobs~y~oy;~genvis~e~k2~ot2.] 0.001 secs (0.001u,0.s) -Chars 29981 - 29996 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 30005 - 30040 [hinduction~EQy~before~oy;~try~...] 0.025 secs (0.025u,0.s) -Chars 30049 - 30141 [intros;~apply~eq_inv_VisF_weak...] 0.015 secs (0.015u,0.s) -Chars 30150 - 30157 [intros.] 0. secs (0.u,0.s) -Chars 30166 - 30171 [taur.] 0. secs (0.u,0.s) -Chars 30180 - 30197 [now~eapply~IHEQy.] 0. secs (0.u,0.s) -Chars 30204 - 30205 [*] 0. secs (0.u,0.s) -Chars 30206 - 30242 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) -Chars 30247 - 30248 [+] 0. secs (0.u,0.s) -Chars 30249 - 30293 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 30300 - 30308 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 30315 - 30320 [taul.] 0. secs (0.u,0.s) -Chars 30327 - 30346 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 30353 - 30404 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 30411 - 30448 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 30453 - 30454 [+] 0. secs (0.u,0.s) -Chars 30455 - 30499 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 30506 - 30514 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 30521 - 30526 [taur.] 0. secs (0.u,0.s) -Chars 30533 - 30552 [eapply~IHEQ;~eauto.] 0.001 secs (0.001u,0.s) -Chars 30559 - 30610 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 30617 - 30654 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 30655 - 30659 [Qed.] 0.02 secs (0.02u,0.s) -Chars 30719 - 30922 [#[global]~Instance~euttge_prop...] 0.001 secs (0.001u,0.s) -Chars 30923 - 30929 [Proof.] 0. secs (0.u,0.s) -Chars 30932 - 30988 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) -Chars 30991 - 30995 [Qed.] 0. secs (0.u,0.s) -Chars 31037 - 31232 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 31234 - 31240 [Proof.] 0. secs (0.u,0.s) -Chars 31243 - 31322 [eapply~euttge_proper_euttC~wit...] 0. secs (0.u,0.s) -Chars 31325 - 31329 [Qed.] 0. secs (0.u,0.s) -Chars 31332 - 31436 [Lemma~eq_subH_euttge~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 31437 - 31443 [Proof.] 0. secs (0.u,0.s) -Chars 31444 - 31464 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 31465 - 31469 [Qed.] 0. secs (0.u,0.s) -Chars 31471 - 31580 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 31581 - 31587 [Proof.] 0. secs (0.u,0.s) -Chars 31588 - 31608 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 31609 - 31613 [Qed.] 0. secs (0.u,0.s) -Chars 31615 - 31717 [Lemma~euttge_subH_eutt~{E}~{R1...] 0. secs (0.u,0.s) -Chars 31718 - 31724 [Proof.] 0. secs (0.u,0.s) -Chars 31725 - 31746 [now~eapply~eqit_mono.] 0. secs (0.u,0.s) -Chars 31747 - 31751 [Qed.] 0. secs (0.u,0.s) -Chars 31753 - 31860 [#[global]~Instance~euttge_sub_...] 0. secs (0.u,0.s) -Chars 31861 - 31867 [Proof.] 0. secs (0.u,0.s) -Chars 31868 - 31888 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 31889 - 31893 [Qed.] 0. secs (0.u,0.s) -Chars 31895 - 31995 [Lemma~eq_subH_eutt~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 31996 - 32002 [Proof.] 0. secs (0.u,0.s) -Chars 32003 - 32023 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32024 - 32028 [Qed.] 0. secs (0.u,0.s) -Chars 32030 - 32135 [#[global]~Instance~eq_sub_eutt...] 0. secs (0.u,0.s) -Chars 32136 - 32142 [Proof.] 0. secs (0.u,0.s) -Chars 32143 - 32163 [now~apply~eqit_mono.] 0. secs (0.u,0.s) -Chars 32164 - 32168 [Qed.] 0. secs (0.u,0.s) -Chars 32170 - 32326 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 32327 - 32333 [Proof.] 0. secs (0.u,0.s) -Chars 32337 - 32350 [split;~intro.] 0. secs (0.u,0.s) -Chars 32354 - 32387 [1:~symmetry~in~H;~symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 32391 - 32522 [all:~~apply~eq_sub_euttge~with...] 0.005 secs (0.005u,0.s) -Chars 32523 - 32527 [Qed.] 0.001 secs (0.001u,0.s) -Chars 32529 - 32678 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 32680 - 32708 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 32712 - 32826 [split;~intros;~revert_until~RR...] 0.006 secs (0.006u,0.s) -Chars 32829 - 32868 [all:~hinduction~H1~before~RR;~...] 0.003 secs (0.003u,0.s) -Chars 32899 - 32950 [1-2,~6-7:~inv~H;~inv~H0;~simpo...] 0.178 secs (0.177u,0.s) -Chars 32966 - 33145 [1,~4:~~genvis~e~k1~ok1;~inv~H;...] 0.162 secs (0.162u,0.s) -Chars 33173 - 33242 [1,~3:~inv~H;~simpobs;~taul;~ea...] 0.073 secs (0.072u,0.s) -Chars 33245 - 33315 [1-2:~inv~H0;~simpobs;~taur;~ea...] 0.071 secs (0.071u,0.s) -Chars 33316 - 33320 [Qed.] 0.059 secs (0.058u,0.s) -Chars 33823 - 33989 [Lemma~not_euttge_proper_euttge...] 0. secs (0.u,0.s) -Chars 33992 - 34030 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 34034 - 34040 [intro.] 0. secs (0.u,0.s) -Chars 34042 - 34162 [assert~~(Hfalse~:~~~euttge~(E:...] 0. secs (0.u,0.s) -Chars 34165 - 34166 [{] 0. secs (0.u,0.s) -Chars 34167 - 34209 [eapply~H~with~(x~:=~Ret~tt)~(y...] 0. secs (0.u,0.s) -Chars 34332 - 34333 [-] 0. secs (0.u,0.s) -Chars 34334 - 34346 [reflexivity.] 0. secs (0.u,0.s) -Chars 34351 - 34352 [-] 0. secs (0.u,0.s) -Chars 34353 - 34358 [step.] 0.001 secs (0.001u,0.s) -Chars 34359 - 34364 [taul.] 0. secs (0.u,0.s) -Chars 34365 - 34377 [reflexivity.] 0. secs (0.u,0.s) -Chars 34382 - 34383 [-] 0. secs (0.u,0.s) -Chars 34384 - 34396 [reflexivity.] 0. secs (0.u,0.s) -Chars 34397 - 34398 [}] 0. secs (0.u,0.s) -Chars 34401 - 34416 [step~in~Hfalse.] 0. secs (0.u,0.s) -Chars 34417 - 34428 [inv~Hfalse.] 0.002 secs (0.002u,0.s) -Chars 34430 - 34434 [Qed.] 0.003 secs (0.003u,0.s) -Chars 34438 - 34605 [Lemma~euttge_proper_flip_euttg...] 0. secs (0.u,0.s) -Chars 34715 - 34721 [Abort.] 0. secs (0.u,0.s) -Chars 34945 - 35116 [#[global]~Instance~euttge_eq_p...] 0. secs (0.u,0.s) -Chars 35117 - 35145 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 35148 - 35186 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 35189 - 35205 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 35208 - 35273 [clear~c;~intros~c~IH~x~x'~EQx~...] 0.001 secs (0.001u,0.s) -Chars 35278 - 35288 [intros~EQ.] 0. secs (0.u,0.s) -Chars 35289 - 35299 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 35305 - 35334 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) -Chars 35339 - 35378 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 35383 - 35404 [induction~EQ;~intros.] 0. secs (0.u,0.s) -Chars 35409 - 35410 [+] 0. secs (0.u,0.s) -Chars 35411 - 35437 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 35444 - 35456 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 35463 - 35477 [genret~r1~or1.] 0. secs (0.u,0.s) -Chars 35484 - 35499 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 35506 - 35541 [hinduction~EQx~before~ox;~try~...] 0.039 secs (0.039u,0.s) -Chars 35548 - 35549 [*] 0. secs (0.u,0.s) -Chars 35550 - 35576 [intros;~subst;~inv~Heqor1.] 0.006 secs (0.006u,0.s) -Chars 35577 - 35591 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 35600 - 35627 [genobs~y~oy;~genret~r2~or2.] 0. secs (0.u,0.s) -Chars 35636 - 35651 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 35752 - 35787 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) -Chars 35796 - 35821 [subst;~intros~[=<-]~?~?~...] 0. secs (0.u,0.s) -Chars 35828 - 35829 [*] 0. secs (0.u,0.s) -Chars 35830 - 35866 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) -Chars 35871 - 35872 [+] 0. secs (0.u,0.s) -Chars 35873 - 35899 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 35906 - 35918 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 35925 - 35939 [gentau~m1~om1.] 0. secs (0.u,0.s) -Chars 35946 - 35961 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 35968 - 36003 [hinduction~EQx~before~ox;~try~...] 0.046 secs (0.045u,0.s) -Chars 36010 - 36011 [*] 0. secs (0.u,0.s) -Chars 36012 - 36030 [intros~[=<-]~?~?~?.] 0. secs (0.u,0.s) -Chars 36039 - 36053 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36062 - 36089 [genobs~y~oy;~gentau~m2~om2.] 0. secs (0.u,0.s) -Chars 36098 - 36113 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36122 - 36157 [hinduction~EQy~before~oy;~try~...] 0.024 secs (0.022u,0.s) -Chars 36166 - 36184 [intros~[=<-]~?~?~...] 0.001 secs (0.001u,0.s) -Chars 36191 - 36192 [*] 0. secs (0.u,0.s) -Chars 36193 - 36229 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) -Chars 36234 - 36235 [+] 0. secs (0.u,0.s) -Chars 36236 - 36262 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 36269 - 36281 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 36288 - 36304 [genvis~e~k1~ot1.] 0. secs (0.u,0.s) -Chars 36311 - 36326 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 36333 - 36368 [hinduction~EQx~before~ox;~try~...] 0.044 secs (0.043u,0.s) -Chars 36375 - 36376 [*] 0. secs (0.u,0.s) -Chars 36377 - 36384 [intros.] 0. secs (0.u,0.s) -Chars 36393 - 36459 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) -Chars 36468 - 36482 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 36491 - 36520 [genobs~y~oy;~genvis~e~k2~ot2.] 0. secs (0.u,0.s) -Chars 36529 - 36544 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 36553 - 36588 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) -Chars 36597 - 36689 [intros;~apply~eq_inv_VisF_weak...] 0.016 secs (0.016u,0.s) -Chars 36696 - 36697 [*] 0. secs (0.u,0.s) -Chars 36698 - 36734 [intros;~subst;~taul;~eapply~IH...] 0.001 secs (0.001u,0.s) -Chars 36739 - 36740 [+] 0. secs (0.u,0.s) -Chars 36741 - 36785 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 36792 - 36800 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 36807 - 36812 [taul.] 0. secs (0.u,0.s) -Chars 36819 - 36838 [eapply~IHEQ;~eauto.] 0.001 secs (0.001u,0.s) -Chars 36845 - 36896 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 36903 - 36940 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 36945 - 36946 [+] 0. secs (0.u,0.s) -Chars 36947 - 36952 [easy.] 0.013 secs (0.013u,0.s) -Chars 37002 - 37006 [Qed.] 0.018 secs (0.018u,0.s) -Chars 37008 - 37168 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 37169 - 37175 [Proof.] 0. secs (0.u,0.s) -Chars 37178 - 37191 [split;~intro.] 0. secs (0.u,0.s) -Chars 37194 - 37195 [-] 0. secs (0.u,0.s) -Chars 37318 - 37374 [symmetry~in~H;~apply~eq_sub_eu...] 0. secs (0.u,0.s) -Chars 37379 - 37394 [symmetry~in~H0.] 0. secs (0.u,0.s) -Chars 37399 - 37438 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) -Chars 37441 - 37442 [-] 0. secs (0.u,0.s) -Chars 37555 - 37596 [apply~eq_sub_euttge~with~(RR~:...] 0. secs (0.u,0.s) -Chars 37601 - 37640 [eapply~euttge_eq_proper_euttge...] 0. secs (0.u,0.s) -Chars 37641 - 37645 [Qed.] 0.001 secs (0.001u,0.s) -Chars 37648 - 37812 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 37813 - 37819 [Proof.] 0. secs (0.u,0.s) -Chars 37823 - 37908 [split;~revert_until~c;~tower~i...] 0.008 secs (0.008u,0.s) -Chars 37982 - 38006 [all:~inv~H2;~simpobs.] 0.11 secs (0.109u,0.s) -Chars 38009 - 38094 [all:~~try~genvis~e~k1~ok1;~inv...] 0.218 secs (0.217u,0.s) -Chars 38098 - 38162 [all:~try~do~2~inv_Vis;~constru...] 0.12 secs (0.12u,0.s) -Chars 38165 - 38185 [all:~inv~H1;~inv~H0.] 0.017 secs (0.017u,0.s) -Chars 38190 - 38248 [all:~eapply~H;~try~eapply~REL0...] 0.001 secs (0.001u,0.s) -Chars 38252 - 38256 [Qed.] 0.054 secs (0.054u,0.s) -Chars 38295 - 38450 [Inductive~rcompose~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 38451 - 38496 [#[global]~Hint~Constructors~rc...] 0. secs (0.u,0.s) -Chars 38498 - 38597 [Lemma~trans_rcompose~{R}~RR~(T...] 0. secs (0.u,0.s) -Chars 38598 - 38604 [Proof.] 0. secs (0.u,0.s) -Chars 38607 - 38614 [intros.] 0. secs (0.u,0.s) -Chars 38615 - 38633 [destruct~H;~eauto.] 0. secs (0.u,0.s) -Chars 38634 - 38638 [Qed.] 0. secs (0.u,0.s) -Chars 38667 - 38866 [Lemma~eqit_trans~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 38867 - 38873 [Proof.] 0. secs (0.u,0.s) -Chars 38876 - 38888 [unfold~eqit.] 0. secs (0.u,0.s) -Chars 38889 - 38905 [revert_until~b2.] 0. secs (0.u,0.s) -Chars 39015 - 39034 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 39035 - 39042 [intros.] 0. secs (0.u,0.s) -Chars 39046 - 39058 [step~in~INL.] 0. secs (0.u,0.s) -Chars 39059 - 39071 [step~in~INR.] 0. secs (0.u,0.s) -Chars 39169 - 39210 [hinduction~INL~before~CIH;~int...] 0. secs (0.u,0.s) -Chars 39211 - 39223 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 39255 - 39256 [-] 0. secs (0.u,0.s) -Chars 39257 - 39270 [genret~r2~ot.] 0. secs (0.u,0.s) -Chars 39275 - 39338 [hinduction~INR~before~CIH;~int...] 0.017 secs (0.017u,0.s) -Chars 39341 - 39342 [-] 0. secs (0.u,0.s) -Chars 39343 - 39357 [genobs~t3~ot3.] 0. secs (0.u,0.s) -Chars 39431 - 39503 [assert~(DEC~:~(exists~m3,~ot3~...] 0. secs (0.u,0.s) -Chars 39508 - 39509 [{] 0. secs (0.u,0.s) -Chars 39510 - 39556 [destruct~ot3;~eauto;~right;~re...] 0.004 secs (0.004u,0.s) -Chars 39557 - 39558 [}] 0. secs (0.u,0.s) -Chars 39563 - 39593 [destruct~DEC~as~[[m3~?]|~EQ].] 0. secs (0.u,0.s) -Chars 39634 - 39635 [+] 0. secs (0.u,0.s) -Chars 39636 - 39651 [subst;~simpobs.] 0.003 secs (0.003u,0.s) -Chars 39659 - 39672 [econstructor.] 0. secs (0.u,0.s) -Chars 39679 - 39697 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 39704 - 39723 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) -Chars 39730 - 39739 [now~step.] 0.001 secs (0.001u,0.s) -Chars 39799 - 39800 [+] 0. secs (0.u,0.s) -Chars 39801 - 39848 [inv~INR;~try~(exfalso;~eapply~...] 0.032 secs (0.032u,0.s) -Chars 39855 - 39860 [taul.] 0. secs (0.u,0.s) -Chars 39868 - 39880 [step~in~REL.] 0. secs (0.u,0.s) -Chars 39887 - 39961 [hinduction~REL0~before~CIH;~in...] 0.002 secs (0.002u,0.s) -Chars 40043 - 40044 [*] 0. secs (0.u,0.s) -Chars 40045 - 40070 [remember~(RetF~r1)~as~ot.] 0. secs (0.u,0.s) -Chars 40079 - 40143 [hinduction~REL0~before~CIH;~in...] 0.022 secs (0.022u,0.s) -Chars 40150 - 40151 [*] 0. secs (0.u,0.s) -Chars 40152 - 40179 [remember~(VisF~e~k1)~as~ot.] 0. secs (0.u,0.s) -Chars 40188 - 40273 [hinduction~REL0~before~CIH;~in...] 0.016 secs (0.016u,0.s) -Chars 40282 - 40295 [econstructor.] 0. secs (0.u,0.s) -Chars 40296 - 40303 [intros.] 0. secs (0.u,0.s) -Chars 40312 - 40347 [apply~(CIH~_~_~_~(REL~v)~(REL0...] 0. secs (0.u,0.s) -Chars 40355 - 40356 [*] 0. secs (0.u,0.s) -Chars 40357 - 40378 [eapply~IHREL0;~eauto.] 0. secs (0.u,0.s) -Chars 40387 - 40411 [destruct~b1;~inv~CHECK0.] 0.006 secs (0.006u,0.s) -Chars 40420 - 40427 [unstep.] 0.002 secs (0.002u,0.s) -Chars 40428 - 40449 [apply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) -Chars 40450 - 40459 [now~step.] 0.001 secs (0.001u,0.s) -Chars 40463 - 40464 [-] 0. secs (0.u,0.s) -Chars 40465 - 40492 [remember~(VisF~e~k2)~as~ot.] 0. secs (0.u,0.s) -Chars 40497 - 40581 [hinduction~INR~before~CIH;~int...] 0.014 secs (0.014u,0.s) -Chars 40586 - 40599 [econstructor.] 0. secs (0.u,0.s) -Chars 40600 - 40607 [intros.] 0. secs (0.u,0.s) -Chars 40612 - 40647 [apply~(CIH~_~_~_~(REL0~v)~(REL...] 0. secs (0.u,0.s) -Chars 40651 - 40652 [-] 0. secs (0.u,0.s) -Chars 40653 - 40670 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 40673 - 40674 [-] 0. secs (0.u,0.s) -Chars 40675 - 40688 [gentau~t0~ot.] 0. secs (0.u,0.s) -Chars 40693 - 40707 [genobs~t3~ot3.] 0. secs (0.u,0.s) -Chars 40713 - 40775 [hinduction~INR~before~CIH;~int...] 0.009 secs (0.008u,0.s) -Chars 40780 - 40781 [+] 0. secs (0.u,0.s) -Chars 40782 - 40806 [eapply~(IHINL~(Tau~m2)).] 0. secs (0.u,0.s) -Chars 40813 - 40825 [step~in~REL.] 0. secs (0.u,0.s) -Chars 40826 - 40843 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 40848 - 40849 [+] 0. secs (0.u,0.s) -Chars 40850 - 40867 [now~eapply~IHINL.] 0. secs (0.u,0.s) -Chars 40872 - 40873 [+] 0. secs (0.u,0.s) -Chars 40874 - 40879 [taur.] 0. secs (0.u,0.s) -Chars 40880 - 40900 [eapply~IHINR;~eauto.] 0.001 secs (0.001u,0.s) -Chars 40902 - 40906 [Qed.] 0.037 secs (0.037u,0.s) -Chars 40908 - 40967 [Arguments~eqit_trans~{E~R1~R2~...] 0. secs (0.u,0.s) -Chars 41085 - 41239 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 41240 - 41246 [Proof.] 0. secs (0.u,0.s) -Chars 41249 - 41261 [red;~intros.] 0. secs (0.u,0.s) -Chars 41262 - 41298 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) -Chars 41302 - 41338 [eapply~eqit_mono,~eqit_trans;~...] 0.002 secs (0.002u,0.s) -Chars 41341 - 41349 [intros~!.] 0. secs (0.u,0.s) -Chars 41350 - 41366 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 41367 - 41371 [Qed.] 0. secs (0.u,0.s) -Chars 41373 - 41491 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 41492 - 41498 [Proof.] 0. secs (0.u,0.s) -Chars 41501 - 41523 [apply~Transitive_eqit.] 0. secs (0.u,0.s) -Chars 41524 - 41546 [intros~!;~subst;~eauto.] 0. secs (0.u,0.s) -Chars 41547 - 41551 [Qed.] 0. secs (0.u,0.s) -Chars 41553 - 41704 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 41705 - 41711 [Proof.] 0. secs (0.u,0.s) -Chars 41714 - 41749 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) -Chars 41750 - 41754 [Qed.] 0. secs (0.u,0.s) -Chars 41756 - 41878 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 41879 - 41885 [Proof.] 0. secs (0.u,0.s) -Chars 41888 - 41923 [constructor;~try~typeclasses~e...] 0. secs (0.u,0.s) -Chars 41924 - 41928 [Qed.] 0. secs (0.u,0.s) -Chars 41930 - 42021 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 42022 - 42028 [Proof.] 0. secs (0.u,0.s) -Chars 42031 - 42043 [red;~intros.] 0. secs (0.u,0.s) -Chars 42044 - 42080 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) -Chars 42081 - 42117 [eapply~eqit_mono,~eqit_trans;~...] 0.007 secs (0.007u,0.s) -Chars 42120 - 42128 [intros~!.] 0. secs (0.u,0.s) -Chars 42129 - 42145 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 42147 - 42151 [Qed.] 0. secs (0.u,0.s) -Chars 42154 - 42286 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 42287 - 42293 [Proof.] 0. secs (0.u,0.s) -Chars 42296 - 42436 [assert~~(Hinf~:~~~inf_closed~~...] 0. secs (0.u,0.s) -Chars 42439 - 42440 [{] 0. secs (0.u,0.s) -Chars 42441 - 42473 [intros~T~HTr~x~y~z~Hxy~Hyz~i~Hi.] 0. secs (0.u,0.s) -Chars 42474 - 42537 [apply~(HTr~_~Hi)~with~y;~[~exa...] 0. secs (0.u,0.s) -Chars 42538 - 42539 [}] 0. secs (0.u,0.s) -Chars 42542 - 42551 [revert~c.] 0. secs (0.u,0.s) -Chars 42552 - 42571 [apply~(tower~Hinf).] 0. secs (0.u,0.s) -Chars 42572 - 42588 [intros~c~Htrans.] 0. secs (0.u,0.s) -Chars 42591 - 42599 [intros~!.] 0. secs (0.u,0.s) -Chars 42600 - 42610 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 42611 - 42642 [eapply~Transitive_eqitF;~eauto.] 0. secs (0.u,0.s) -Chars 42643 - 42647 [Qed.] 0.001 secs (0.001u,0.s) -Chars 42649 - 42784 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 42785 - 42791 [Proof.] 0. secs (0.u,0.s) -Chars 42794 - 42825 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 42826 - 42830 [Qed.] 0. secs (0.u,0.s) -Chars 42834 - 42914 [Lemma~rcompose_eql~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 42915 - 42921 [Proof.] 0. secs (0.u,0.s) -Chars 42924 - 42988 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) -Chars 42989 - 42993 [Qed.] 0. secs (0.u,0.s) -Chars 42994 - 43074 [Lemma~rcompose_eqr~{R1}~{R2}~(...] 0. secs (0.u,0.s) -Chars 43075 - 43081 [Proof.] 0. secs (0.u,0.s) -Chars 43084 - 43151 [split;~[~intros~?~?~[];~now~su...] 0. secs (0.u,0.s) -Chars 43152 - 43156 [Qed.] 0. secs (0.u,0.s) -Chars 43158 - 43276 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 43277 - 43283 [Proof.] 0. secs (0.u,0.s) -Chars 43286 - 43297 [repeat~red.] 0. secs (0.u,0.s) -Chars 43301 - 43326 [intros~t~t'~EQ1~u~u'~EQ2.] 0. secs (0.u,0.s) -Chars 43329 - 43349 [split;~intros~EQUIV.] 0. secs (0.u,0.s) -Chars 43353 - 43354 [-] 0. secs (0.u,0.s) -Chars 43355 - 43371 [symmetry~in~EQ1.] 0. secs (0.u,0.s) -Chars 43377 - 43419 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) -Chars 43424 - 43455 [rewrite~rcompose_eql~in~EQUIV'.] 0.001 secs (0.001u,0.s) -Chars 43460 - 43504 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) -Chars 43509 - 43545 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) -Chars 43548 - 43549 [-] 0. secs (0.u,0.s) -Chars 43550 - 43592 [pose~proof~(eqit_trans~EQ1~EQU...] 0. secs (0.u,0.s) -Chars 43597 - 43628 [rewrite~rcompose_eql~in~EQUIV'.] 0.001 secs (0.001u,0.s) -Chars 43633 - 43649 [symmetry~in~EQ2.] 0. secs (0.u,0.s) -Chars 43654 - 43698 [pose~proof~(eqit_trans~EQUIV'~...] 0. secs (0.u,0.s) -Chars 43703 - 43739 [now~rewrite~rcompose_eqr~in~EQ...] 0.001 secs (0.001u,0.s) -Chars 43740 - 43744 [Qed.] 0.001 secs (0.001u,0.s) -Chars 43746 - 43840 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 43841 - 43847 [Proof.] 0. secs (0.u,0.s) -Chars 43850 - 43868 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 43869 - 43873 [Qed.] 0. secs (0.u,0.s) -Chars 43875 - 43970 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 43971 - 43977 [Proof.] 0. secs (0.u,0.s) -Chars 43980 - 43992 [red;~intros.] 0. secs (0.u,0.s) -Chars 43993 - 44029 [pose~proof~(trans_rcompose~RR)...] 0. secs (0.u,0.s) -Chars 44030 - 44066 [eapply~eqit_mono,~eqit_trans;~...] 0.005 secs (0.004u,0.s) -Chars 44069 - 44077 [intros~!.] 0. secs (0.u,0.s) -Chars 44078 - 44094 [now~apply~TRANS.] 0. secs (0.u,0.s) -Chars 44096 - 44100 [Qed.] 0. secs (0.u,0.s) -Chars 44102 - 44191 [#[global]~Instance~PreOrder_eu...] 0. secs (0.u,0.s) -Chars 44192 - 44198 [Proof.] 0. secs (0.u,0.s) -Chars 44201 - 44232 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 44234 - 44238 [Qed.] 0. secs (0.u,0.s) -Chars 44240 - 44392 [#[global]~Instance~eq_proper_e...] 0. secs (0.u,0.s) -Chars 44394 - 44400 [Proof.] 0. secs (0.u,0.s) -Chars 44404 - 44422 [split;~intros~!.] 0. secs (0.u,0.s) -Chars 44425 - 44463 [do~2~(etransitivity;~symmetry;...] 0.003 secs (0.003u,0.s) -Chars 44466 - 44508 [do~2~(etransitivity;~eauto);~n...] 0.002 secs (0.002u,0.s) -Chars 44510 - 44514 [Qed.] 0. secs (0.u,0.s) -Chars 44545 - 44558 [Module~Tests.] 0. secs (0.u,0.s) -Chars 44561 - 44597 [#[local]~Parameter~(E~:~Type~-...] 0. secs (0.u,0.s) -Chars 44600 - 44632 [#[local]~Parameters~(R1~R2~:~T...] 0. secs (0.u,0.s) -Chars 44635 - 44676 [#[local]~Parameter~(RR~:~R1~->...] 0. secs (0.u,0.s) -Chars 44679 - 44715 [#[local]~Parameters~(t~u~:~itr...] 0. secs (0.u,0.s) -Chars 44718 - 44754 [#[local]~Parameters~(v~w~:~itr...] 0. secs (0.u,0.s) -Chars 44757 - 44792 [#[local]~Parameter~(EQ1~:~t~≅~u).] 0. secs (0.u,0.s) -Chars 44795 - 44833 [#[local]~Parameter~(EQUIV1~:~t...] 0. secs (0.u,0.s) -Chars 44836 - 44871 [#[local]~Parameter~(EQ2~:~v~≅~w).] 0. secs (0.u,0.s) -Chars 44874 - 44912 [#[local]~Parameter~(EQUIV2~:~v...] 0. secs (0.u,0.s) -Chars 44915 - 44949 [#[local]~Parameter~(GT~:~v~≳~w).] 0. secs (0.u,0.s) -Chars 44952 - 44987 [#[local]~Parameter~(GT2~:~w~≳~v).] 0. secs (0.u,0.s) -Chars 45082 - 45099 [Goal~eutt~RR~u~v.] 0. secs (0.u,0.s) -Chars 45104 - 45119 [rewrite~EQUIV2.] 0.009 secs (0.009u,0.s) -Chars 45124 - 45139 [rewrite~<-~EQ2.] 0.007 secs (0.007u,0.s) -Chars 45144 - 45167 [eapply~eq_proper_euttC.] 0. secs (0.u,0.s) -Chars 45172 - 45187 [rewrite~<-~EQ1.] 0. secs (0.u,0.s) -Chars 45192 - 45202 [exact~EQ1.] 0. secs (0.u,0.s) -Chars 45208 - 45228 [rewrite~EQ2,~<-~EQ2.] 0.001 secs (0.001u,0.s) -Chars 45234 - 45244 [exact~EQ2.] 0. secs (0.u,0.s) -Chars 45250 - 45255 [step.] 0.002 secs (0.002u,0.s) -Chars 45276 - 45281 [step.] 0.003 secs (0.003u,0.s) -Chars 45287 - 45302 [rewrite~<-~EQ1.] 0.007 secs (0.007u,0.s) -Chars 45308 - 45322 [rewrite~<-~GT.] 0.024 secs (0.024u,0.s) -Chars 45328 - 45340 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) -Chars 45345 - 45363 [rewrite~<-~EQUIV1.] 0.007 secs (0.007u,0.s) -Chars 45366 - 45372 [Abort.] 0. secs (0.u,0.s) -Chars 45377 - 45422 [#[local]~Parameter~(EQUIV~:~u~...] 0. secs (0.u,0.s) -Chars 45482 - 45522 [Goal~t~≈⟨~RR~⟩~w~->~t~≈⟨~RR~⟩~w.] 0. secs (0.u,0.s) -Chars 45527 - 45536 [intros~H.] 0. secs (0.u,0.s) -Chars 45541 - 45553 [rewrite~EQ1.] 0.005 secs (0.005u,0.s) -Chars 45558 - 45575 [rewrite~EQ1~in~H.] 0.005 secs (0.005u,0.s) -Chars 45580 - 45598 [rewrite~<-~EQUIV1.] 0.005 secs (0.005u,0.s) -Chars 45643 - 45666 [rewrite~<-~EQUIV1~in~H.] 0.005 secs (0.005u,0.s) -Chars 45671 - 45694 [rewrite~<-~EQUIV2~in~H.] 0.007 secs (0.007u,0.s) -Chars 45700 - 45712 [rewrite~GT2.] 0.001 secs (0.001u,0.s) -Chars 45717 - 45737 [rewrite~<-~GT2~in~H.] 0.02 secs (0.02u,0.s) -Chars 45742 - 45753 [rewrite~GT.] 0.001 secs (0.001u,0.s) -Chars 45758 - 45777 [rewrite~<-~GT~in~H.] 0.019 secs (0.019u,0.s) -Chars 45839 - 45853 [Fail~symmetry.] 0. secs (0.u,0.s) -Chars 45858 - 45877 [Fail~symmetry~in~H.] 0. secs (0.u,0.s) -Chars 45882 - 45896 [rewrite~<-~GT.] 0.019 secs (0.019u,0.s) -Chars 45902 - 45913 [assumption.] 0. secs (0.u,0.s) -Chars 45917 - 45921 [Qed.] 0.001 secs (0.001u,0.s) -Chars 45925 - 45968 [Definition~VE~:=~fun~_~:~Type~...] 0. secs (0.u,0.s) -Chars 45972 - 46039 [#[local]~Parameter~(EQUIV_tt~:...] 0. secs (0.u,0.s) -Chars 46042 - 46082 [Goal~eutt~(E:=VE)~eq~(Ret~tt)~...] 0. secs (0.u,0.s) -Chars 46088 - 46093 [step.] 0.001 secs (0.001u,0.s) -Chars 46127 - 46134 [unstep.] 0.002 secs (0.002u,0.s) -Chars 46140 - 46184 [assert~(eutt~(E:=VE)~eq~(Ret~t...] 0. secs (0.u,0.s) -Chars 46190 - 46195 [step.] 0.001 secs (0.001u,0.s) -Chars 46254 - 46280 [rewrite~observing_observe.] 0.005 secs (0.005u,0.s) -Chars 46281 - 46287 [Abort.] 0. secs (0.u,0.s) -Chars 46291 - 46315 [Goal~t~≅~u~->~t~≅~u.] 0. secs (0.u,0.s) -Chars 46320 - 46329 [intros~H.] 0. secs (0.u,0.s) -Chars 46334 - 46346 [rewrite~EQ1.] 0. secs (0.u,0.s) -Chars 46351 - 46368 [rewrite~EQ1~in~H.] 0.005 secs (0.005u,0.s) -Chars 46373 - 46382 [symmetry.] 0. secs (0.u,0.s) -Chars 46387 - 46401 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 46406 - 46418 [reflexivity.] 0. secs (0.u,0.s) -Chars 46419 - 46423 [Qed.] 0. secs (0.u,0.s) -Chars 46510 - 46585 [Goal~t~≅~u~->~v~≅⟨~flip~RR~⟩~u...] 0. secs (0.u,0.s) -Chars 46590 - 46608 [intros~EQ1~EQ2'~H.] 0. secs (0.u,0.s) -Chars 46613 - 46625 [rewrite~EQ1.] 0.006 secs (0.006u,0.s) -Chars 46630 - 46642 [rewrite~EQ2.] 0. secs (0.u,0.s) -Chars 46647 - 46671 [apply~eqit_flip~in~EQ2'.] 0. secs (0.u,0.s) -Chars 46676 - 46696 [rewrite~EQ2~in~EQ2'.] 0.01 secs (0.01u,0.s) -Chars 46701 - 46745 [eapply~(eqit_mono~RR~RR~false~...] 0.001 secs (0.001u,0.s) -Chars 46812 - 46816 [Qed.] 0.001 secs (0.001u,0.s) -Chars 46867 - 46891 [Goal~u~≈~t~->~t~≈~u.] 0. secs (0.u,0.s) -Chars 46896 - 46915 [icoinduction~r~CIH.] 0.001 secs (0.001u,0.s) -Chars 46920 - 46927 [intros.] 0. secs (0.u,0.s) -Chars 46932 - 46937 [step.] 0.002 secs (0.002u,0.s) -Chars 46943 - 46953 [rewrite~H.] 0.012 secs (0.012u,0.s) -Chars 46959 - 46971 [reflexivity.] 0. secs (0.u,0.s) -Chars 46973 - 46977 [Qed.] 0.001 secs (0.001u,0.s) -Chars 46980 - 46990 [End~Tests.] 0. secs (0.u,0.s) -Chars 46992 - 47044 [#[global]~Hint~Resolve~Reflexi...] 0. secs (0.u,0.s) -Chars 47049 - 47065 [Section~eqit_eq.] 0. secs (0.u,0.s) -Chars 47116 - 47154 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 47156 - 47215 [#[local]~Notation~eqit~:=~(fun...] 0. secs (0.u,0.s) -Chars 47217 - 47350 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 47351 - 47357 [Proof.] 0. secs (0.u,0.s) -Chars 47360 - 47389 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) -Chars 47390 - 47394 [Qed.] 0. secs (0.u,0.s) -Chars 47396 - 47523 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 47524 - 47530 [Proof.] 0. secs (0.u,0.s) -Chars 47533 - 47562 [apply~Symmetric_eqitF;~eauto.] 0. secs (0.u,0.s) -Chars 47564 - 47568 [Qed.] 0. secs (0.u,0.s) -Chars 47617 - 47685 [#[global]~Instance~Reflexive_e...] 0. secs (0.u,0.s) -Chars 47686 - 47692 [Proof.] 0. secs (0.u,0.s) -Chars 47695 - 47723 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) -Chars 47724 - 47728 [Qed.] 0. secs (0.u,0.s) -Chars 47730 - 47792 [#[global]~Instance~Symmetric_e...] 0. secs (0.u,0.s) -Chars 47793 - 47799 [Proof.] 0. secs (0.u,0.s) -Chars 47802 - 47830 [apply~Symmetric_eqit;~eauto.] 0. secs (0.u,0.s) -Chars 47831 - 47835 [Qed.] 0. secs (0.u,0.s) -Chars 47870 - 47969 [#[global]~Instance~eqit_observ...] 0. secs (0.u,0.s) -Chars 47970 - 47976 [Proof.] 0. secs (0.u,0.s) -Chars 47979 - 48025 [constructor;~step~in~H;~step;~...] 0.001 secs (0.001u,0.s) -Chars 48028 - 48032 [Qed.] 0. secs (0.u,0.s) -Chars 48035 - 48130 [#[global]~Instance~eqit_tauF~~...] 0. secs (0.u,0.s) -Chars 48131 - 48137 [Proof.] 0. secs (0.u,0.s) -Chars 48140 - 48158 [constructor;~step.] 0.001 secs (0.001u,0.s) -Chars 48159 - 48172 [econstructor.] 0. secs (0.u,0.s) -Chars 48173 - 48179 [eauto.] 0. secs (0.u,0.s) -Chars 48180 - 48184 [Qed.] 0. secs (0.u,0.s) -Chars 48186 - 48313 [#[global]~Instance~eqit_VisF~~...] 0. secs (0.u,0.s) -Chars 48314 - 48320 [Proof.] 0. secs (0.u,0.s) -Chars 48323 - 48345 [constructor;~red~in~H.] 0. secs (0.u,0.s) -Chars 48346 - 48382 [step;~econstructor;~auto~with~...] 0.001 secs (0.001u,0.s) -Chars 48383 - 48387 [Qed.] 0. secs (0.u,0.s) -Chars 48389 - 48473 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 48474 - 48480 [Proof.] 0. secs (0.u,0.s) -Chars 48483 - 48502 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 48505 - 48510 [step.] 0.001 secs (0.001u,0.s) -Chars 48511 - 48541 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) -Chars 48542 - 48571 [apply~Reflexive_eqitF;~eauto.] 0. secs (0.u,0.s) -Chars 48572 - 48576 [Qed.] 0. secs (0.u,0.s) -Chars 48578 - 48723 [#[global]~Instance~observing_s...] 0. secs (0.u,0.s) -Chars 48724 - 48730 [Proof.] 0. secs (0.u,0.s) -Chars 48733 - 48741 [intros~!.] 0. secs (0.u,0.s) -Chars 48744 - 48750 [inv~H.] 0.003 secs (0.003u,0.s) -Chars 48753 - 48758 [step.] 0.001 secs (0.001u,0.s) -Chars 48761 - 48787 [rewrite~observing_observe.] 0. secs (0.u,0.s) -Chars 48790 - 48795 [step.] 0.003 secs (0.002u,0.s) -Chars 48796 - 48808 [reflexivity.] 0. secs (0.u,0.s) -Chars 48809 - 48813 [Qed.] 0.001 secs (0.001u,0.s) -Chars 48840 - 48897 [Lemma~itree_eta_~(t~:~itree~E~...] 0. secs (0.u,0.s) -Chars 48898 - 48904 [Proof.] 0. secs (0.u,0.s) -Chars 48905 - 48930 [apply~observing_sub_eqit.] 0. secs (0.u,0.s) -Chars 48931 - 48944 [econstructor.] 0. secs (0.u,0.s) -Chars 48945 - 48957 [reflexivity.] 0. secs (0.u,0.s) -Chars 48958 - 48962 [Qed.] 0. secs (0.u,0.s) -Chars 48964 - 49019 [Lemma~itree_eta~(t~:~itree~E~R...] 0. secs (0.u,0.s) -Chars 49020 - 49026 [Proof.] 0. secs (0.u,0.s) -Chars 49027 - 49044 [apply~itree_eta_.] 0. secs (0.u,0.s) -Chars 49045 - 49049 [Qed.] 0. secs (0.u,0.s) -Chars 49051 - 49109 [Lemma~itree_eta'~(ot~:~itree'~...] 0. secs (0.u,0.s) -Chars 49110 - 49116 [Proof.] 0. secs (0.u,0.s) -Chars 49117 - 49129 [reflexivity.] 0. secs (0.u,0.s) -Chars 49130 - 49134 [Qed.] 0. secs (0.u,0.s) -Chars 49136 - 49148 [End~eqit_eq.] 0. secs (0.u,0.s) -Chars 49182 - 49270 [Lemma~eqitree_inv_Ret_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 49271 - 49277 [Proof.] 0. secs (0.u,0.s) -Chars 49280 - 49295 [intros;~sinv~H.] 0.004 secs (0.004u,0.s) -Chars 49296 - 49300 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49302 - 49453 [Lemma~eqitree_inv_Vis_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 49454 - 49460 [Proof.] 0. secs (0.u,0.s) -Chars 49463 - 49510 [intros;~step~in~H;~apply~eqitF...] 0. secs (0.u,0.s) -Chars 49513 - 49567 [destruct~H~as~[[?~[->~?]]|~[]]...] 0. secs (0.u,0.s) -Chars 49570 - 49592 [eexists;~split;~eauto.] 0. secs (0.u,0.s) -Chars 49593 - 49597 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49599 - 49712 [Lemma~eqitree_inv_Tau_r~{E}~{R...] 0. secs (0.u,0.s) -Chars 49713 - 49719 [Proof.] 0. secs (0.u,0.s) -Chars 49722 - 49744 [intros;~sinv~H;~eauto.] 0.008 secs (0.008u,0.s) -Chars 49745 - 49749 [Qed.] 0.002 secs (0.002u,0.s) -Chars 49751 - 49852 [Lemma~eqit_inv_Ret~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 49853 - 49859 [Proof.] 0. secs (0.u,0.s) -Chars 49862 - 49869 [intros.] 0. secs (0.u,0.s) -Chars 49870 - 49880 [step~in~H.] 0. secs (0.u,0.s) -Chars 49881 - 49887 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 49889 - 49893 [Qed.] 0.001 secs (0.001u,0.s) -Chars 49946 - 50175 [Lemma~eqit_inv_Vis_weak~{E}~{R...] 0. secs (0.u,0.s) -Chars 50176 - 50182 [Proof.] 0. secs (0.u,0.s) -Chars 50185 - 50192 [intros.] 0. secs (0.u,0.s) -Chars 50193 - 50235 [step~in~H;~apply~eqitF_inv_Vis...] 0. secs (0.u,0.s) -Chars 50238 - 50260 [destruct~H~as~[p~[]].] 0. secs (0.u,0.s) -Chars 50261 - 50283 [exists~p;~split;~auto.] 0. secs (0.u,0.s) -Chars 50284 - 50288 [Qed.] 0.001 secs (0.u,0.s) -Chars 50314 - 50520 [Lemma~eqit_inv_Vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 50521 - 50527 [Proof.] 0. secs (0.u,0.s) -Chars 50530 - 50599 [intros~H~x;~step~in~H;~apply~e...] 0. secs (0.u,0.s) -Chars 50600 - 50604 [Qed.] 0. secs (0.u,0.s) -Chars 50647 - 50726 [Lemma~eutt_inv_Ret~{E}~{R}~r1~...] 0. secs (0.u,0.s) -Chars 50727 - 50733 [Proof.] 0. secs (0.u,0.s) -Chars 50736 - 50771 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) -Chars 50772 - 50776 [Qed.] 0. secs (0.u,0.s) -Chars 50778 - 50860 [Lemma~eqitree_inv_Ret~{E}~{R}~...] 0. secs (0.u,0.s) -Chars 50861 - 50867 [Proof.] 0. secs (0.u,0.s) -Chars 50870 - 50905 [intros;~eapply~eqit_inv_Ret;~e...] 0. secs (0.u,0.s) -Chars 50906 - 50910 [Qed.] 0. secs (0.u,0.s) -Chars 50912 - 51038 [Lemma~eqit_Tau_l~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 51039 - 51045 [Proof.] 0. secs (0.u,0.s) -Chars 51048 - 51055 [intros.] 0. secs (0.u,0.s) -Chars 51056 - 51061 [step.] 0.001 secs (0.001u,0.s) -Chars 51062 - 51082 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 51083 - 51097 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 51099 - 51103 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51105 - 51231 [Lemma~eqit_Tau_r~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 51232 - 51238 [Proof.] 0. secs (0.u,0.s) -Chars 51241 - 51248 [intros.] 0. secs (0.u,0.s) -Chars 51249 - 51254 [step.] 0.001 secs (0.001u,0.s) -Chars 51255 - 51275 [econstructor;~eauto.] 0. secs (0.u,0.s) -Chars 51276 - 51290 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 51292 - 51296 [Qed.] 0.002 secs (0.002u,0.s) -Chars 51298 - 51352 [Lemma~tau_euttge~{E}~{R}~(t~:~...] 0. secs (0.u,0.s) -Chars 51353 - 51359 [Proof.] 0. secs (0.u,0.s) -Chars 51362 - 51379 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) -Chars 51380 - 51392 [reflexivity.] 0. secs (0.u,0.s) -Chars 51393 - 51397 [Qed.] 0. secs (0.u,0.s) -Chars 51399 - 51451 [Lemma~tau_eutt~{E}~{R}~(t~:~it...] 0. secs (0.u,0.s) -Chars 51452 - 51458 [Proof.] 0. secs (0.u,0.s) -Chars 51461 - 51495 [apply~euttge_sub_eutt,~tau_eut...] 0. secs (0.u,0.s) -Chars 51496 - 51500 [Qed.] 0. secs (0.u,0.s) -Chars 51503 - 51577 [Lemma~simpobs~{E}~{R}~{ot}~{t~...] 0. secs (0.u,0.s) -Chars 51578 - 51584 [Proof.] 0. secs (0.u,0.s) -Chars 51587 - 51592 [step.] 0.001 secs (0.001u,0.s) -Chars 51593 - 51604 [repeat~red.] 0. secs (0.u,0.s) -Chars 51605 - 51613 [simpobs.] 0. secs (0.u,0.s) -Chars 51614 - 51620 [simpl.] 0. secs (0.u,0.s) -Chars 51621 - 51627 [subst.] 0. secs (0.u,0.s) -Chars 51628 - 51635 [unstep.] 0.002 secs (0.002u,0.s) -Chars 51636 - 51664 [apply~Reflexive_eqit;~eauto.] 0. secs (0.u,0.s) -Chars 51665 - 51669 [Qed.] 0.001 secs (0.001u,0.s) -Chars 51717 - 52030 [#[global]~Instance~eqitgen_con...] 0.001 secs (0.001u,0.s) -Chars 52032 - 52038 [Proof.] 0. secs (0.u,0.s) -Chars 52040 - 52076 [intros~!;~unfold~flip,~eq_itre...] 0. secs (0.u,0.s) -Chars 53239 - 53245 [idtac.] 0. secs (0.u,0.s) -Chars 53285 - 53345 [assert~(rcompose~RR1~RS~<=~RS)...] 0. secs (0.u,0.s) -Chars 53349 - 53416 [assert~(rcompose~RS~(flip~RR2)...] 0. secs (0.u,0.s) -Chars 53419 - 53517 [assert~(eqit~b1~b2~RR1~x~y)~by...] 0.003 secs (0.003u,0.s) -Chars 53520 - 53624 [assert~(eqit~b1~b2~RR2~x0~y0)~...] 0.003 secs (0.003u,0.s) -Chars 53653 - 53697 [specialize~(eqit_trans~H4~H1)~...] 0. secs (0.u,0.s) -Chars 53701 - 53799 [assert~(Hdiag~:~eqit~b1~b2~RS~...] 0.001 secs (0.001u,0.s) -Chars 53837 - 53859 [apply~eqit_flip~in~H0.] 0. secs (0.u,0.s) -Chars 53909 - 53969 [eapply~eqit_mono~with~(RR~:=~r...] 0.002 secs (0.002u,0.s) -Chars 53973 - 53998 [eapply~eqit_trans;~eauto.] 0.002 secs (0.002u,0.s) -Chars 54002 - 54071 [eapply~eqit_mono~with~(b1~:=~f...] 0.004 secs (0.004u,0.s) -Chars 54073 - 54077 [Qed.] 0.001 secs (0.001u,0.s) -Chars 54120 - 54269 [Lemma~tau_eutt_RR_l~:~~~forall...] 0. secs (0.u,0.s) -Chars 54270 - 54276 [Proof.] 0. secs (0.u,0.s) -Chars 54279 - 54286 [intros.] 0. secs (0.u,0.s) -Chars 54289 - 54305 [split;~intros~H.] 0. secs (0.u,0.s) -Chars 54308 - 54309 [-] 0. secs (0.u,0.s) -Chars 54310 - 54330 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 54331 - 54343 [2:~apply~H.] 0. secs (0.u,0.s) -Chars 54349 - 54366 [apply~eqit_Tau_r.] 0. secs (0.u,0.s) -Chars 54367 - 54379 [reflexivity.] 0. secs (0.u,0.s) -Chars 54382 - 54383 [-] 0. secs (0.u,0.s) -Chars 54384 - 54389 [step.] 0.001 secs (0.001u,0.s) -Chars 54390 - 54395 [taul.] 0. secs (0.u,0.s) -Chars 54396 - 54410 [now~step~in~H.] 0. secs (0.u,0.s) -Chars 54412 - 54416 [Qed.] 0.001 secs (0.001u,0.s) -Chars 54418 - 54567 [Lemma~tau_eutt_RR_r~:~~~forall...] 0. secs (0.u,0.s) -Chars 54568 - 54574 [Proof.] 0. secs (0.u,0.s) -Chars 54577 - 54584 [intros.] 0. secs (0.u,0.s) -Chars 54587 - 54603 [split;~intros~H.] 0. secs (0.u,0.s) -Chars 54606 - 54607 [-] 0. secs (0.u,0.s) -Chars 54608 - 54628 [eapply~transitivity.] 0. secs (0.u,0.s) -Chars 54629 - 54637 [apply~H.] 0. secs (0.u,0.s) -Chars 54642 - 54659 [apply~eqit_Tau_l.] 0. secs (0.u,0.s) -Chars 54660 - 54672 [reflexivity.] 0. secs (0.u,0.s) -Chars 54675 - 54676 [-] 0. secs (0.u,0.s) -Chars 54677 - 54682 [step.] 0.001 secs (0.001u,0.s) -Chars 54683 - 54688 [taur.] 0. secs (0.u,0.s) -Chars 54689 - 54703 [now~step~in~H.] 0.001 secs (0.001u,0.s) -Chars 54704 - 54708 [Qed.] 0.001 secs (0.001u,0.s) -Chars 54710 - 54799 [Lemma~eutt_inv_Ret_l~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 54800 - 54806 [Proof.] 0. secs (0.u,0.s) -Chars 54809 - 54822 [intros~Heutt.] 0. secs (0.u,0.s) -Chars 54823 - 54837 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 54841 - 54859 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) -Chars 54863 - 54891 [remember~(observe~(Ret~r1)).] 0. secs (0.u,0.s) -Chars 54894 - 54908 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 54911 - 54942 [remember~{|~_observe~:=~ot2~|}.] 0. secs (0.u,0.s) -Chars 54945 - 54990 [hinduction~Heutt~before~r1;~in...] 0.005 secs (0.005u,0.s) -Chars 54994 - 54995 [-] 0. secs (0.u,0.s) -Chars 54996 - 55015 [rewrite~tau_euttge.] 0. secs (0.u,0.s) -Chars 55016 - 55034 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) -Chars 55035 - 55054 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 55055 - 55059 [Qed.] 0.003 secs (0.003u,0.s) -Chars 55156 - 55245 [Lemma~eutt_inv_Ret_r~{E}~{R}~(...] 0. secs (0.u,0.s) -Chars 55246 - 55252 [Proof.] 0. secs (0.u,0.s) -Chars 55255 - 55268 [intros~Heutt.] 0. secs (0.u,0.s) -Chars 55269 - 55283 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 55288 - 55306 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) -Chars 55310 - 55385 [remember~(observe~(Ret~r2));~g...] 0. secs (0.u,0.s) -Chars 55388 - 55432 [hinduction~Heutt~before~R;~int...] 0.006 secs (0.006u,0.s) -Chars 55436 - 55437 [-] 0. secs (0.u,0.s) -Chars 55438 - 55457 [rewrite~tau_euttge.] 0. secs (0.u,0.s) -Chars 55458 - 55476 [rewrite~itree_eta.] 0.006 secs (0.006u,0.s) -Chars 55477 - 55496 [now~eapply~IHHeutt.] 0. secs (0.u,0.s) -Chars 55497 - 55501 [Qed.] 0.003 secs (0.003u,0.s) -Chars 55545 - 55712 [Notation~bind_~t~k:=~~~match~o...] 0. secs (0.u,0.s) -Chars 55714 - 55810 [Lemma~unfold_bind~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 55811 - 55817 [Proof.] 0. secs (0.u,0.s) -Chars 55820 - 55871 [apply~observing_sub_eqit;~cons...] 0. secs (0.u,0.s) -Chars 55872 - 55876 [Qed.] 0. secs (0.u,0.s) -Chars 55878 - 55967 [Lemma~bind_ret_l~{E}~{R}~{S}~(...] 0. secs (0.u,0.s) -Chars 55968 - 55974 [Proof.] 0. secs (0.u,0.s) -Chars 55975 - 56011 [apply~observing_sub_eqit,~bind...] 0. secs (0.u,0.s) -Chars 56012 - 56016 [Qed.] 0. secs (0.u,0.s) -Chars 56018 - 56113 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) -Chars 56114 - 56120 [Proof.] 0. secs (0.u,0.s) -Chars 56121 - 56151 [apply~(unfold_bind~(Tau~t)~k).] 0. secs (0.u,0.s) -Chars 56152 - 56156 [Qed.] 0. secs (0.u,0.s) -Chars 56158 - 56302 [Lemma~bind_vis~{E}~{R}~U~V~(e~...] 0. secs (0.u,0.s) -Chars 56303 - 56309 [Proof.] 0. secs (0.u,0.s) -Chars 56310 - 56343 [apply~(unfold_bind~(Vis~e~ek)~k).] 0. secs (0.u,0.s) -Chars 56344 - 56348 [Qed.] 0. secs (0.u,0.s) -Chars 56350 - 56468 [Lemma~bind_trigger~{E}~{R}~U~(...] 0. secs (0.u,0.s) -Chars 56469 - 56475 [Proof.] 0. secs (0.u,0.s) -Chars 56478 - 56503 [rewrite~unfold_bind;~cbn.] 0.001 secs (0.001u,0.s) -Chars 56506 - 56511 [step.] 0.001 secs (0.001u,0.s) -Chars 56514 - 56526 [constructor.] 0. secs (0.u,0.s) -Chars 56529 - 56536 [intros.] 0. secs (0.u,0.s) -Chars 56537 - 56554 [apply~bind_ret_l.] 0. secs (0.u,0.s) -Chars 56555 - 56559 [Qed.] 0.001 secs (0.001u,0.s) -Chars 56561 - 56718 [Lemma~unfold_iter~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 56719 - 56725 [Proof.] 0. secs (0.u,0.s) -Chars 56728 - 56750 [rewrite~unfold_aloop_.] 0.006 secs (0.006u,0.s) -Chars 56751 - 56763 [reflexivity.] 0. secs (0.u,0.s) -Chars 56764 - 56768 [Qed.] 0.001 secs (0.001u,0.s) -Chars 56770 - 56892 [Lemma~unfold_forever~{E}~{R}~{...] 0. secs (0.u,0.s) -Chars 56893 - 56899 [Proof.] 0. secs (0.u,0.s) -Chars 56902 - 56950 [rewrite~itree_eta,~(itree_eta~...] 0.001 secs (0.001u,0.s) -Chars 56953 - 56965 [reflexivity.] 0. secs (0.u,0.s) -Chars 56966 - 56970 [Qed.] 0. secs (0.u,0.s) -Chars 56972 - 57086 [Ltac~~auto_ctrans~:=~~~intros;...] 0. secs (0.u,0.s) -Chars 57087 - 57147 [Ltac~auto_ctrans_eq~:=~try~ins...] 0. secs (0.u,0.s) -Chars 57149 - 57164 [Section~eqit_h.] 0. secs (0.u,0.s) -Chars 57166 - 57232 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 57291 - 57408 [Lemma~eqit_Tau~b1~b2~(t1~:~itr...] 0. secs (0.u,0.s) -Chars 57409 - 57415 [Proof.] 0. secs (0.u,0.s) -Chars 57418 - 57434 [split;~intros~H.] 0. secs (0.u,0.s) -Chars 57437 - 57438 [-] 0. secs (0.u,0.s) -Chars 57439 - 57449 [step~in~H.] 0. secs (0.u,0.s) -Chars 57450 - 57455 [step.] 0.001 secs (0.001u,0.s) -Chars 57462 - 57479 [move~H~before~RR.] 0. secs (0.u,0.s) -Chars 57480 - 57495 [revert_until~H.] 0. secs (0.u,0.s) -Chars 57500 - 57528 [remember~(observe~(Tau~t1)).] 0. secs (0.u,0.s) -Chars 57534 - 57562 [remember~(observe~(Tau~t2)).] 0. secs (0.u,0.s) -Chars 57568 - 57582 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 57588 - 57602 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 57608 - 57664 [hinduction~H~before~RR;~intros...] 0.013 secs (0.013u,0.s) -Chars 57670 - 57671 [+] 0. secs (0.u,0.s) -Chars 57672 - 57683 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 57689 - 57690 [+] 0. secs (0.u,0.s) -Chars 57691 - 57697 [inv~H.] 0.006 secs (0.006u,0.s) -Chars 57705 - 57706 [*] 0. secs (0.u,0.s) -Chars 57707 - 57712 [taul.] 0. secs (0.u,0.s) -Chars 57713 - 57735 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 57743 - 57744 [*] 0. secs (0.u,0.s) -Chars 57745 - 57750 [taul.] 0. secs (0.u,0.s) -Chars 57751 - 57773 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 57779 - 57780 [+] 0. secs (0.u,0.s) -Chars 57781 - 57787 [inv~H.] 0.005 secs (0.005u,0.s) -Chars 57795 - 57796 [*] 0. secs (0.u,0.s) -Chars 57797 - 57802 [taur.] 0. secs (0.u,0.s) -Chars 57803 - 57825 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 57833 - 57834 [*] 0. secs (0.u,0.s) -Chars 57835 - 57840 [taur.] 0. secs (0.u,0.s) -Chars 57841 - 57863 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 57867 - 57868 [-] 0. secs (0.u,0.s) -Chars 57869 - 57874 [step.] 0.001 secs (0.001u,0.s) -Chars 57875 - 57891 [now~constructor.] 0. secs (0.u,0.s) -Chars 57895 - 57899 [Qed.] 0.006 secs (0.006u,0.s) -Chars 57902 - 58125 [Lemma~eqit_Vis_gen~b1~b2~{U1}~...] 0. secs (0.u,0.s) -Chars 58126 - 58132 [Proof.] 0. secs (0.u,0.s) -Chars 58135 - 58151 [destruct~p;~cbn.] 0. secs (0.u,0.s) -Chars 58152 - 58164 [intros~<-~H.] 0. secs (0.u,0.s) -Chars 58165 - 58170 [step.] 0.001 secs (0.001u,0.s) -Chars 58171 - 58184 [econstructor.] 0. secs (0.u,0.s) -Chars 58185 - 58193 [apply~H.] 0. secs (0.u,0.s) -Chars 58194 - 58198 [Qed.] 0.001 secs (0.001u,0.s) -Chars 58200 - 58372 [Lemma~eqit_Vis~b1~b2~{U}~(e~:~...] 0. secs (0.u,0.s) -Chars 58373 - 58379 [Proof.] 0. secs (0.u,0.s) -Chars 58382 - 58434 [apply~eqit_Vis_gen~with~(p~:=~...] 0. secs (0.u,0.s) -Chars 58435 - 58439 [Qed.] 0. secs (0.u,0.s) -Chars 58441 - 58538 [Lemma~eqit_Ret~b1~b2~(r1~:~R1)...] 0. secs (0.u,0.s) -Chars 58539 - 58545 [Proof.] 0. secs (0.u,0.s) -Chars 58548 - 58564 [split;~intros~H.] 0. secs (0.u,0.s) -Chars 58567 - 58568 [-] 0. secs (0.u,0.s) -Chars 58569 - 58574 [step.] 0.001 secs (0.001u,0.s) -Chars 58575 - 58591 [now~constructor.] 0. secs (0.u,0.s) -Chars 58594 - 58595 [-] 0. secs (0.u,0.s) -Chars 58596 - 58603 [sinv~H.] 0.001 secs (0.001u,0.s) -Chars 58605 - 58609 [Qed.] 0.001 secs (0.001u,0.s) -Chars 58794 - 59112 [Lemma~eqit_bind_chain~b1~b2~(c...] 0.001 secs (0.001u,0.s) -Chars 59113 - 59119 [Proof.] 0. secs (0.u,0.s) -Chars 59123 - 59139 [revert_until~U2.] 0. secs (0.u,0.s) -Chars 59143 - 59159 [tower~induction.] 0.003 secs (0.003u,0.s) -Chars 59163 - 59164 [-] 0. secs (0.u,0.s) -Chars 59165 - 59172 [intros.] 0. secs (0.u,0.s) -Chars 59176 - 59193 [eapply~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 59198 - 59199 [-] 0. secs (0.u,0.s) -Chars 59200 - 59207 [intros.] 0. secs (0.u,0.s) -Chars 59211 - 59221 [icbn~in~*.] 0. secs (0.u,0.s) -Chars 59225 - 59239 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 59244 - 59258 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 59261 - 59303 [hinduction~H0~before~RR;~intro...] 0.029 secs (0.028u,0.s) -Chars 59388 - 59425 [1-3:~rewrite~2!observe_bind;~s...] 0.013 secs (0.013u,0.s) -Chars 59440 - 59441 [+] 0. secs (0.u,0.s) -Chars 59442 - 59459 [eapply~H1;~eauto.] 0. secs (0.u,0.s) -Chars 59476 - 59477 [+] 0. secs (0.u,0.s) -Chars 59478 - 59490 [constructor.] 0. secs (0.u,0.s) -Chars 59495 - 59511 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) -Chars 59517 - 59545 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) -Chars 59560 - 59561 [+] 0. secs (0.u,0.s) -Chars 59562 - 59574 [constructor.] 0. secs (0.u,0.s) -Chars 59580 - 59586 [intro.] 0. secs (0.u,0.s) -Chars 59592 - 59608 [eapply~H;~eauto.] 0.001 secs (0.001u,0.s) -Chars 59613 - 59641 [intros;~step;~now~eapply~H1.] 0.001 secs (0.001u,0.s) -Chars 59657 - 59658 [+] 0. secs (0.u,0.s) -Chars 59659 - 59680 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 59686 - 59694 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 59700 - 59705 [taul.] 0. secs (0.u,0.s) -Chars 59711 - 59733 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 59751 - 59752 [+] 0. secs (0.u,0.s) -Chars 59753 - 59786 [setoid_rewrite~observe_bind~at~2.] 0.016 secs (0.016u,0.s) -Chars 59792 - 59800 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 59806 - 59811 [taur.] 0. secs (0.u,0.s) -Chars 59817 - 59839 [eapply~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 59841 - 59845 [Qed.] 0.006 secs (0.006u,0.s) -Chars 59848 - 60040 [Lemma~eutt_bind_eutt~{U1}~{U2}...] 0. secs (0.u,0.s) -Chars 60041 - 60047 [Proof.] 0. secs (0.u,0.s) -Chars 60052 - 60064 [unfold~eutt.] 0. secs (0.u,0.s) -Chars 60065 - 60095 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) -Chars 60098 - 60102 [Qed.] 0. secs (0.u,0.s) -Chars 60105 - 60339 [Lemma~eutt_bind_b~{U1}~{U2}~{U...] 0.001 secs (0.001u,0.s) -Chars 60340 - 60346 [Proof.] 0. secs (0.u,0.s) -Chars 60351 - 60382 [eapply~eqit_bind_chain;~intros.] 0. secs (0.u,0.s) -Chars 60388 - 60433 [all:~now~do~2~step;~[~apply~EQ...] 0.018 secs (0.018u,0.s) -Chars 60434 - 60438 [Qed.] 0.001 secs (0.001u,0.s) -Chars 60442 - 60453 [End~eqit_h.] 0. secs (0.u,0.s) -Chars 60455 - 60498 [Ltac~eret~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 60500 - 60543 [Ltac~etau~:=~constructor;~eaut...] 0. secs (0.u,0.s) -Chars 60545 - 60596 [Ltac~evis~:=~constructor;~intr...] 0. secs (0.u,0.s) -Chars 60598 - 60653 [Ltac~ebind~:=~eapply~eqit_bind...] 0. secs (0.u,0.s) -Chars 60658 - 60734 [Lemma~eutt_Tau~{E}~{R}~(t1~t2~...] 0. secs (0.u,0.s) -Chars 60735 - 60741 [Proof.] 0. secs (0.u,0.s) -Chars 60744 - 60759 [apply~eqit_Tau.] 0. secs (0.u,0.s) -Chars 60760 - 60764 [Qed.] 0. secs (0.u,0.s) -Chars 60766 - 60845 [Lemma~eqitree_Tau~{E}~{R}~(t1~...] 0. secs (0.u,0.s) -Chars 60846 - 60852 [Proof.] 0. secs (0.u,0.s) -Chars 60855 - 60870 [apply~eqit_Tau.] 0. secs (0.u,0.s) -Chars 60871 - 60875 [Qed.] 0. secs (0.u,0.s) -Chars 60877 - 61139 [Lemma~eqit_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 61140 - 61146 [Proof.] 0. secs (0.u,0.s) -Chars 61149 - 61156 [intros.] 0. secs (0.u,0.s) -Chars 61159 - 61189 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) -Chars 61191 - 61195 [Qed.] 0. secs (0.u,0.s) -Chars 61197 - 61458 [Lemma~eq_itree_bind~{E~:~Type~...] 0. secs (0.u,0.s) -Chars 61459 - 61465 [Proof.] 0. secs (0.u,0.s) -Chars 61468 - 61493 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) -Chars 61494 - 61498 [Qed.] 0. secs (0.u,0.s) -Chars 61501 - 61662 [#[global]~Instance~eqit_subst~...] 0. secs (0.u,0.s) -Chars 61663 - 61669 [Proof.] 0. secs (0.u,0.s) -Chars 61672 - 61706 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) -Chars 61709 - 61729 [intros;~subst;~auto.] 0. secs (0.u,0.s) -Chars 61730 - 61734 [Qed.] 0. secs (0.u,0.s) -Chars 61736 - 61895 [#[global]~Instance~eqit_bind~~...] 0. secs (0.u,0.s) -Chars 61896 - 61902 [Proof.] 0. secs (0.u,0.s) -Chars 61905 - 61939 [intros~!;~eapply~eqit_bind';~e...] 0. secs (0.u,0.s) -Chars 61942 - 61962 [intros;~subst;~auto.] 0. secs (0.u,0.s) -Chars 61963 - 61967 [Qed.] 0. secs (0.u,0.s) -Chars 61969 - 62216 [Lemma~eqit_map~{E}~{R1}~{R2}~{...] 0. secs (0.u,0.s) -Chars 62217 - 62223 [Proof.] 0. secs (0.u,0.s) -Chars 62226 - 62251 [unfold~ITree.map;~intros.] 0. secs (0.u,0.s) -Chars 62254 - 62279 [eapply~eqit_bind';~eauto.] 0. secs (0.u,0.s) -Chars 62282 - 62314 [intros;~step;~constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 62315 - 62319 [Qed.] 0.001 secs (0.001u,0.s) -Chars 62321 - 62478 [#[global]~Instance~eqit_eq_map...] 0. secs (0.u,0.s) -Chars 62479 - 62485 [Proof.] 0. secs (0.u,0.s) -Chars 62488 - 62520 [intros~!;~eapply~eqit_map;~eauto.] 0. secs (0.u,0.s) -Chars 62523 - 62543 [intros;~subst;~auto.] 0. secs (0.u,0.s) -Chars 62544 - 62548 [Qed.] 0. secs (0.u,0.s) -Chars 62550 - 62735 [#[global]~Instance~eqitF_cong_...] 0. secs (0.u,0.s) -Chars 62737 - 62743 [Proof.] 0. secs (0.u,0.s) -Chars 62747 - 62755 [intros~!.] 0. secs (0.u,0.s) -Chars 62759 - 62766 [unstep.] 0.001 secs (0.001u,0.s) -Chars 62767 - 62777 [rewrite~H.] 0. secs (0.u,0.s) -Chars 62778 - 62789 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 62790 - 62799 [now~step.] 0.001 secs (0.001u,0.s) -Chars 62801 - 62805 [Qed.] 0.001 secs (0.001u,0.s) -Chars 62809 - 62927 [#[global]~Instance~trans_elem_...] 0.001 secs (0.001u,0.s) -Chars 62928 - 62934 [Proof.] 0. secs (0.u,0.s) -Chars 62937 - 62959 [apply~Transitive_elem.] 0. secs (0.u,0.s) -Chars 62960 - 62978 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 62980 - 62984 [Qed.] 0. secs (0.u,0.s) -Chars 63313 - 63471 [#[global]~Instance~elem_observ...] 0. secs (0.u,0.s) -Chars 63473 - 63479 [Proof.] 0. secs (0.u,0.s) -Chars 63483 - 63516 [intros~x~y~Hxy~x'~y'~Hx'y'~Helem.] 0. secs (0.u,0.s) -Chars 63519 - 63537 [symmetry~in~Hx'y'.] 0. secs (0.u,0.s) -Chars 63542 - 63582 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) -Chars 63585 - 63627 [eapply~observing_sub_elem~in~H...] 0. secs (0.u,0.s) -Chars 63630 - 63658 [do~2~(etransitivity;~eauto).] 0.001 secs (0.001u,0.s) -Chars 63661 - 63665 [Qed.] 0.001 secs (0.001u,0.s) -Chars 63670 - 63759 [Lemma~bind_ret_r~{E}~{R}~:~~~f...] 0. secs (0.u,0.s) -Chars 63760 - 63766 [Proof.] 0. secs (0.u,0.s) -Chars 63769 - 63785 [unfold~eq_itree.] 0. secs (0.u,0.s) -Chars 63786 - 63793 [intros.] 0. secs (0.u,0.s) -Chars 63879 - 63932 [rewrite~(itree_eta_~(ITree.bin...] 0.01 secs (0.01u,0.s) -Chars 63959 - 63968 [revert~s.] 0. secs (0.u,0.s) -Chars 63972 - 63991 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 63995 - 64002 [intros.] 0. secs (0.u,0.s) -Chars 64077 - 64123 [desobs~s~H;~cbn;~simpobs;~cons...] 0.001 secs (0.001u,0.s) -Chars 64151 - 64163 [reflexivity.] 0. secs (0.u,0.s) -Chars 64304 - 64338 [all:~eapply~elem_observing_pro...] 0.001 secs (0.001u,0.s) -Chars 64383 - 64403 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) -Chars 64457 - 64492 [all:~constructor;~ITree.fold_s...] 0. secs (0.u,0.s) -Chars 64495 - 64519 [all:~simpl;~reflexivity.] 0. secs (0.u,0.s) -Chars 64521 - 64525 [Qed.] 0.004 secs (0.004u,0.s) -Chars 64528 - 64650 [Lemma~bind_ret_r'~{E}~{R}~(u~:...] 0. secs (0.u,0.s) -Chars 64651 - 64657 [Proof.] 0. secs (0.u,0.s) -Chars 64660 - 64668 [intro~H.] 0. secs (0.u,0.s) -Chars 64669 - 64700 [rewrite~<-~(bind_ret_r~u)~~at~2.] 0. secs (0.u,0.s) -Chars 64701 - 64717 [apply~eqit_bind.] 0. secs (0.u,0.s) -Chars 64720 - 64721 [-] 0. secs (0.u,0.s) -Chars 64722 - 64734 [reflexivity.] 0. secs (0.u,0.s) -Chars 64737 - 64738 [-] 0. secs (0.u,0.s) -Chars 64739 - 64743 [hnf.] 0. secs (0.u,0.s) -Chars 64744 - 64751 [intros.] 0. secs (0.u,0.s) -Chars 64752 - 64767 [apply~eqit_Ret.] 0. secs (0.u,0.s) -Chars 64768 - 64773 [auto.] 0. secs (0.u,0.s) -Chars 64774 - 64778 [Qed.] 0. secs (0.u,0.s) -Chars 64780 - 64943 [Ltac~~fold_subst~:=~~~repeat~~...] 0. secs (0.u,0.s) -Chars 64946 - 65123 [Lemma~bind_bind~{E}~{R}~{S}~{T...] 0. secs (0.u,0.s) -Chars 65124 - 65130 [Proof.] 0. secs (0.u,0.s) -Chars 65133 - 65149 [unfold~eq_itree.] 0. secs (0.u,0.s) -Chars 65150 - 65157 [intros.] 0. secs (0.u,0.s) -Chars 65161 - 65272 [lazymatch~goal~with~|~|-~_~(IT...] 0.002 secs (0.002u,0.s) -Chars 65275 - 65352 [lazymatch~goal~with~|~|-~_~?t0...] 0.001 secs (0.001u,0.s) -Chars 65355 - 65368 [revert~s~k~h.] 0. secs (0.u,0.s) -Chars 65372 - 65391 [icoinduction~c~CIH.] 0.002 secs (0.002u,0.s) -Chars 65394 - 65401 [intros.] 0. secs (0.u,0.s) -Chars 65404 - 65429 [desobs~s~H;~cbn;~simpobs.] 0.002 secs (0.002u,0.s) -Chars 65433 - 65441 [1:~step.] 0.002 secs (0.002u,0.s) -Chars 65442 - 65454 [reflexivity.] 0. secs (0.u,0.s) -Chars 65458 - 65513 [all:~constructor;~intros;~eapp...] 0.001 secs (0.001u,0.s) -Chars 65516 - 65536 [all:~try~eapply~CIH.] 0. secs (0.u,0.s) -Chars 65539 - 65556 [all:~constructor.] 0. secs (0.u,0.s) -Chars 65560 - 65576 [all:~fold_subst.] 0.001 secs (0.001u,0.s) -Chars 65580 - 65613 [all:~repeat~rewrite~observe_bind.] 0.003 secs (0.003u,0.s) -Chars 65616 - 65633 [all:~reflexivity.] 0. secs (0.u,0.s) -Chars 65634 - 65638 [Qed.] 0.007 secs (0.007u,0.s) -Chars 65641 - 65783 [Lemma~map_map~{E}~{R}~{S}~{T}~...] 0. secs (0.u,0.s) -Chars 65784 - 65790 [Proof.] 0. secs (0.u,0.s) -Chars 65793 - 65810 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 65811 - 65818 [intros.] 0. secs (0.u,0.s) -Chars 65819 - 65837 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 65838 - 65864 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 65865 - 65877 [reflexivity.] 0. secs (0.u,0.s) -Chars 65878 - 65882 [Qed.] 0.001 secs (0.001u,0.s) -Chars 65884 - 66036 [Lemma~bind_map~{E}~{R}~{S}~{T}...] 0. secs (0.u,0.s) -Chars 66037 - 66043 [Proof.] 0. secs (0.u,0.s) -Chars 66046 - 66063 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 66064 - 66071 [intros.] 0. secs (0.u,0.s) -Chars 66072 - 66090 [rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 66091 - 66117 [setoid_rewrite~bind_ret_l.] 0.002 secs (0.002u,0.s) -Chars 66118 - 66130 [reflexivity.] 0. secs (0.u,0.s) -Chars 66131 - 66135 [Qed.] 0. secs (0.u,0.s) -Chars 66137 - 66290 [Lemma~map_bind~{E}~{X}~{Y}~{Z}...] 0. secs (0.u,0.s) -Chars 66291 - 66297 [Proof.] 0. secs (0.u,0.s) -Chars 66300 - 66307 [intros.] 0. secs (0.u,0.s) -Chars 66308 - 66325 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 66326 - 66342 [apply~bind_bind.] 0. secs (0.u,0.s) -Chars 66343 - 66347 [Qed.] 0. secs (0.u,0.s) -Chars 66349 - 66439 [Lemma~map_ret~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 66440 - 66446 [Proof.] 0. secs (0.u,0.s) -Chars 66449 - 66456 [intros.] 0. secs (0.u,0.s) -Chars 66457 - 66474 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 66477 - 66509 [rewrite~bind_ret_l;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 66510 - 66514 [Qed.] 0. secs (0.u,0.s) -Chars 66516 - 66624 [Lemma~map_tau~{E}~{A}~{B}~(f~:...] 0. secs (0.u,0.s) -Chars 66625 - 66631 [Proof.] 0. secs (0.u,0.s) -Chars 66634 - 66641 [intros.] 0. secs (0.u,0.s) -Chars 66644 - 66661 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 66664 - 66694 [rewrite~bind_tau;~reflexivity.] 0.002 secs (0.002u,0.s) -Chars 66695 - 66699 [Qed.] 0. secs (0.u,0.s) -Chars 66701 - 66744 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 66745 - 66788 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 66789 - 66830 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) -Chars 66831 - 66872 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) -Chars 66873 - 66914 [#[global]~Hint~Rewrite~@bind_m...] 0. secs (0.u,0.s) -Chars 66915 - 66955 [#[global]~Hint~Rewrite~@map_re...] 0. secs (0.u,0.s) -Chars 66956 - 66996 [#[global]~Hint~Rewrite~@map_ta...] 0. secs (0.u,0.s) -Chars 66997 - 67039 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 67060 - 67151 [Ltac~~force_left~:=~match~goal...] 0. secs (0.u,0.s) -Chars 67153 - 67245 [Ltac~~force_right~:=~match~goa...] 0. secs (0.u,0.s) -Chars 67362 - 67437 [Ltac~tau_steps_left~:=~repeat~...] 0. secs (0.u,0.s) -Chars 67509 - 67587 [Ltac~tau_steps_right~:=~repeat...] 0. secs (0.u,0.s) -Chars 67650 - 67704 [Ltac~tau_steps~:=~tau_steps_le...] 0. secs (0.u,0.s) -Chars 67706 - 67804 [Ltac~~force_left_in~H~:=~~~mat...] 0. secs (0.u,0.s) -Chars 67806 - 67905 [Ltac~~force_right_in~H~:=~~~ma...] 0. secs (0.u,0.s) -Chars 67907 - 68002 [Ltac~~tau_steps_left_in~H~:=~~...] 0. secs (0.u,0.s) -Chars 68004 - 68102 [Ltac~~tau_steps_right_in~H~:=~...] 0. secs (0.u,0.s) -Chars 68104 - 68173 [Ltac~tau_steps_in~H~:=~tau_ste...] 0. secs (0.u,0.s) -Chars 68175 - 68436 [Lemma~eqit_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 68437 - 68443 [Proof.] 0. secs (0.u,0.s) -Chars 68446 - 68453 [intros.] 0. secs (0.u,0.s) -Chars 68456 - 68466 [step~in~H.] 0. secs (0.u,0.s) -Chars 68469 - 68514 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) -Chars 68517 - 68542 [remember~(Ret~b)~as~retb.] 0. secs (0.u,0.s) -Chars 68546 - 68576 [remember~(observe~retb)~as~tr.] 0. secs (0.u,0.s) -Chars 68579 - 68620 [revert~ma~kb~Heqotl~b~retb~Heq...] 0. secs (0.u,0.s) -Chars 68623 - 68679 [hinduction~H~before~RR;~intros...] 0.001 secs (0.001u,0.s) -Chars 68682 - 68683 [-] 0. secs (0.u,0.s) -Chars 68684 - 68698 [intros;~subst.] 0. secs (0.u,0.s) -Chars 68703 - 68753 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 68758 - 68806 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) -Chars 68811 - 68820 [exists~r.] 0. secs (0.u,0.s) -Chars 68821 - 68827 [split.] 0. secs (0.u,0.s) -Chars 68832 - 68833 [*] 0. secs (0.u,0.s) -Chars 68834 - 68857 [rewrite~itree_eta,~Ema.] 0.006 secs (0.006u,0.s) -Chars 68858 - 68870 [reflexivity.] 0. secs (0.u,0.s) -Chars 68875 - 68876 [*] 0. secs (0.u,0.s) -Chars 68877 - 68896 [rewrite~itree_eta_.] 0.006 secs (0.006u,0.s) -Chars 68897 - 68913 [unfold~_observe.] 0. secs (0.u,0.s) -Chars 68914 - 68932 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) -Chars 68933 - 68943 [inv~Heqtr.] 0.001 secs (0.001u,0.s) -Chars 68949 - 68973 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 68976 - 68977 [-] 0. secs (0.u,0.s) -Chars 68978 - 68985 [intros.] 0. secs (0.u,0.s) -Chars 68986 - 68992 [subst.] 0. secs (0.u,0.s) -Chars 68997 - 69047 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 69052 - 69100 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) -Chars 69105 - 69106 [+] 0. secs (0.u,0.s) -Chars 69107 - 69116 [exists~r.] 0. secs (0.u,0.s) -Chars 69117 - 69123 [split.] 0. secs (0.u,0.s) -Chars 69130 - 69131 [*] 0. secs (0.u,0.s) -Chars 69132 - 69155 [rewrite~itree_eta,~Ema.] 0.006 secs (0.006u,0.s) -Chars 69156 - 69168 [reflexivity.] 0. secs (0.u,0.s) -Chars 69175 - 69176 [*] 0. secs (0.u,0.s) -Chars 69177 - 69182 [step.] 0.001 secs (0.001u,0.s) -Chars 69183 - 69220 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) -Chars 69221 - 69239 [rewrite~<-~Heqotl.] 0. secs (0.u,0.s) -Chars 69240 - 69258 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 69263 - 69264 [+] 0. secs (0.u,0.s) -Chars 69265 - 69276 [inv~Heqotl.] 0.004 secs (0.004u,0.s) -Chars 69284 - 69309 [edestruct~IHeqitF;~eauto.] 0.001 secs (0.001u,0.s) -Chars 69310 - 69319 [exists~x.] 0. secs (0.u,0.s) -Chars 69327 - 69339 [destruct~H0.] 0. secs (0.u,0.s) -Chars 69347 - 69360 [split;~eauto.] 0. secs (0.u,0.s) -Chars 69367 - 69385 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) -Chars 69386 - 69391 [taul.] 0. secs (0.u,0.s) -Chars 69399 - 69414 [now~step~in~H0.] 0. secs (0.u,0.s) -Chars 69416 - 69420 [Qed.] 0.006 secs (0.006u,0.s) -Chars 69422 - 69585 [Lemma~eutt_inv_bind_ret~:~~~fo...] 0. secs (0.u,0.s) -Chars 69586 - 69592 [Proof.] 0. secs (0.u,0.s) -Chars 69595 - 69633 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) -Chars 69634 - 69638 [Qed.] 0. secs (0.u,0.s) -Chars 69640 - 69806 [Lemma~eqitree_inv_bind_ret~:~~...] 0. secs (0.u,0.s) -Chars 69807 - 69813 [Proof.] 0. secs (0.u,0.s) -Chars 69816 - 69854 [intros;~apply~eqit_inv_bind_re...] 0. secs (0.u,0.s) -Chars 69855 - 69859 [Qed.] 0. secs (0.u,0.s) -Chars 69861 - 70129 [Ltac~~inv_eq_VisF~H~:=~~~lazym...] 0. secs (0.u,0.s) -Chars 70131 - 70571 [Lemma~eqit_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) -Chars 70572 - 70578 [Proof.] 0. secs (0.u,0.s) -Chars 70581 - 70588 [intros.] 0. secs (0.u,0.s) -Chars 70589 - 70599 [step~in~H.] 0. secs (0.u,0.s) -Chars 70603 - 70648 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) -Chars 70651 - 70679 [remember~(Vis~e~kxc)~as~vis.] 0. secs (0.u,0.s) -Chars 70682 - 70711 [remember~(observe~vis)~as~tr.] 0. secs (0.u,0.s) -Chars 70715 - 70758 [revert~ma~kab~Heqtl~kxc~e~vis~...] 0. secs (0.u,0.s) -Chars 70761 - 70814 [induction~H;~try~(solve~[~intr...] 0.002 secs (0.002u,0.s) -Chars 70817 - 70818 [-] 0. secs (0.u,0.s) -Chars 70819 - 70826 [intros.] 0. secs (0.u,0.s) -Chars 70827 - 70875 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 70880 - 70928 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) -Chars 70933 - 70934 [+] 0. secs (0.u,0.s) -Chars 70935 - 70941 [right.] 0. secs (0.u,0.s) -Chars 70942 - 70951 [exists~r.] 0. secs (0.u,0.s) -Chars 70952 - 70958 [split.] 0. secs (0.u,0.s) -Chars 70965 - 70966 [*] 0. secs (0.u,0.s) -Chars 70967 - 70986 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) -Chars 70987 - 70999 [constructor.] 0. secs (0.u,0.s) -Chars 71000 - 71005 [auto.] 0. secs (0.u,0.s) -Chars 71012 - 71013 [*] 0. secs (0.u,0.s) -Chars 71014 - 71058 [step;~unfold~observe~at~1;~unf...] 0.001 secs (0.001u,0.s) -Chars 71059 - 71076 [rewrite~<-~Heqtl.] 0. secs (0.u,0.s) -Chars 71085 - 71093 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 71094 - 71112 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 71117 - 71118 [+] 0. secs (0.u,0.s) -Chars 71119 - 71124 [left.] 0. secs (0.u,0.s) -Chars 71131 - 71149 [symmetry~in~Heqtl.] 0. secs (0.u,0.s) -Chars 71157 - 71174 [revert~e0~Heqvis.] 0. secs (0.u,0.s) -Chars 71175 - 71195 [revert~k2~REL~Heqtr.] 0. secs (0.u,0.s) -Chars 71196 - 71214 [inv_eq_VisF~Heqtl.] 0.002 secs (0.002u,0.s) -Chars 71215 - 71222 [intros.] 0. secs (0.u,0.s) -Chars 71229 - 71240 [inv~Heqvis.] 0.001 secs (0.001u,0.s) -Chars 71248 - 71261 [cbn~in~Heqtr.] 0. secs (0.u,0.s) -Chars 71269 - 71287 [inv_eq_VisF~Heqtr.] 0.002 secs (0.002u,0.s) -Chars 71294 - 71303 [exists~k.] 0. secs (0.u,0.s) -Chars 71304 - 71310 [split.] 0. secs (0.u,0.s) -Chars 71317 - 71318 [*] 0. secs (0.u,0.s) -Chars 71319 - 71338 [step;~rewrite~Ema.] 0.001 secs (0.001u,0.s) -Chars 71339 - 71351 [constructor.] 0. secs (0.u,0.s) -Chars 71353 - 71365 [reflexivity.] 0. secs (0.u,0.s) -Chars 71372 - 71373 [*] 0. secs (0.u,0.s) -Chars 71374 - 71379 [auto.] 0. secs (0.u,0.s) -Chars 71382 - 71383 [-] 0. secs (0.u,0.s) -Chars 71384 - 71391 [intros.] 0. secs (0.u,0.s) -Chars 71392 - 71398 [subst.] 0. secs (0.u,0.s) -Chars 71403 - 71451 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 71456 - 71505 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) -Chars 71510 - 71511 [+] 0. secs (0.u,0.s) -Chars 71512 - 71535 [right;~exists~r;~split.] 0. secs (0.u,0.s) -Chars 71542 - 71543 [*] 0. secs (0.u,0.s) -Chars 71544 - 71580 [rewrite~itree_eta,~Ema;~reflex...] 0.008 secs (0.008u,0.s) -Chars 71587 - 71588 [*] 0. secs (0.u,0.s) -Chars 71589 - 71594 [step.] 0.001 secs (0.001u,0.s) -Chars 71596 - 71651 [unfold~observe~at~1;~unfold~_o...] 0. secs (0.u,0.s) -Chars 71652 - 71670 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 71675 - 71676 [+] 0. secs (0.u,0.s) -Chars 71677 - 71687 [inv~Heqtl.] 0.005 secs (0.005u,0.s) -Chars 71688 - 71743 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 71750 - 71815 [destruct~IHeqitF~as~[(k0,~(?,~...] 0. secs (0.u,0.s) -Chars 71822 - 71823 [*] 0. secs (0.u,0.s) -Chars 71824 - 71834 [exists~k0.] 0. secs (0.u,0.s) -Chars 71835 - 71847 [split;~auto.] 0. secs (0.u,0.s) -Chars 71856 - 71909 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) -Chars 71917 - 71918 [*] 0. secs (0.u,0.s) -Chars 71919 - 71928 [exists~a.] 0. secs (0.u,0.s) -Chars 71929 - 71941 [split;~auto.] 0. secs (0.u,0.s) -Chars 71950 - 72003 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) -Chars 72004 - 72008 [Qed.] 0.011 secs (0.011u,0.s) -Chars 72010 - 72346 [Lemma~eutt_inv_bind_vis~:~~~fo...] 0. secs (0.u,0.s) -Chars 72347 - 72353 [Proof.] 0. secs (0.u,0.s) -Chars 72356 - 72363 [intros.] 0. secs (0.u,0.s) -Chars 72364 - 72388 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) -Chars 72389 - 72394 [auto.] 0. secs (0.u,0.s) -Chars 72395 - 72399 [Qed.] 0. secs (0.u,0.s) -Chars 72401 - 72740 [Lemma~eqitree_inv_bind_vis~:~~...] 0. secs (0.u,0.s) -Chars 72741 - 72747 [Proof.] 0. secs (0.u,0.s) -Chars 72750 - 72757 [intros.] 0. secs (0.u,0.s) -Chars 72758 - 72782 [apply~eqit_inv_bind_vis.] 0. secs (0.u,0.s) -Chars 72783 - 72788 [auto.] 0. secs (0.u,0.s) -Chars 72789 - 72793 [Qed.] 0. secs (0.u,0.s) -Chars 72795 - 73143 [Lemma~eqit_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) -Chars 73144 - 73150 [Proof.] 0. secs (0.u,0.s) -Chars 73153 - 73160 [intros.] 0. secs (0.u,0.s) -Chars 73161 - 73171 [step~in~H.] 0. secs (0.u,0.s) -Chars 73175 - 73220 [remember~(observe~(ITree.bind~...] 0. secs (0.u,0.s) -Chars 73223 - 73248 [remember~(Tau~tc)~as~tau.] 0. secs (0.u,0.s) -Chars 73251 - 73280 [remember~(observe~tau)~as~tr.] 0. secs (0.u,0.s) -Chars 73283 - 73323 [revert~ma~kab~Heqtl~tc~tau~Heq...] 0. secs (0.u,0.s) -Chars 73326 - 73379 [induction~H;~intros;~try~(solv...] 0.002 secs (0.002u,0.s) -Chars 73382 - 73383 [-] 0. secs (0.u,0.s) -Chars 73384 - 73394 [inv~Heqtr.] 0.002 secs (0.002u,0.s) -Chars 73395 - 73443 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 73448 - 73496 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) -Chars 73501 - 73502 [+] 0. secs (0.u,0.s) -Chars 73503 - 73526 [right;~exists~r;~split.] 0. secs (0.u,0.s) -Chars 73533 - 73534 [*] 0. secs (0.u,0.s) -Chars 73535 - 73578 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) -Chars 73585 - 73586 [*] 0.001 secs (0.001u,0.s) -Chars 73587 - 73667 [step;~icbn;~inv~H0;~unfold~obs...] 0.002 secs (0.002u,0.s) -Chars 73672 - 73673 [+] 0. secs (0.u,0.s) -Chars 73674 - 73696 [left;~exists~t;~split.] 0. secs (0.u,0.s) -Chars 73703 - 73704 [*] 0. secs (0.u,0.s) -Chars 73705 - 73761 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) -Chars 73768 - 73769 [*] 0. secs (0.u,0.s) -Chars 73770 - 73780 [inv~Heqtl.] 0.001 secs (0.001u,0.s) -Chars 73781 - 73788 [inv~H0.] 0. secs (0.u,0.s) -Chars 73792 - 73793 [-] 0. secs (0.u,0.s) -Chars 73794 - 73800 [subst.] 0. secs (0.u,0.s) -Chars 73805 - 73853 [unfold~observe,~_observe~in~He...] 0. secs (0.u,0.s) -Chars 73858 - 73906 [destruct~(observe~ma)~eqn:Ema;...] 0. secs (0.u,0.s) -Chars 73911 - 73912 [+] 0. secs (0.u,0.s) -Chars 73913 - 73936 [right;~exists~r;~split.] 0. secs (0.u,0.s) -Chars 73943 - 73944 [*] 0. secs (0.u,0.s) -Chars 73945 - 73988 [step;~icbn;~rewrite~Ema;~const...] 0.001 secs (0.001u,0.s) -Chars 73995 - 73996 [*] 0. secs (0.u,0.s) -Chars 73997 - 74064 [step;~icbn;~unfold~observe~at~...] 0.001 secs (0.001u,0.s) -Chars 74065 - 74085 [constructor~4;~auto.] 0. secs (0.u,0.s) -Chars 74090 - 74091 [+] 0. secs (0.u,0.s) -Chars 74092 - 74102 [inv~Heqtl.] 0.005 secs (0.005u,0.s) -Chars 74103 - 74156 [specialize~(IHeqitF~_~_~eq_ref...] 0. secs (0.u,0.s) -Chars 74163 - 74228 [destruct~IHeqitF~as~[(t0,~(?,~...] 0. secs (0.u,0.s) -Chars 74235 - 74236 [*] 0. secs (0.u,0.s) -Chars 74237 - 74247 [exists~t0.] 0. secs (0.u,0.s) -Chars 74248 - 74260 [split;~auto.] 0. secs (0.u,0.s) -Chars 74269 - 74324 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) -Chars 74331 - 74332 [*] 0. secs (0.u,0.s) -Chars 74333 - 74342 [exists~a.] 0. secs (0.u,0.s) -Chars 74343 - 74355 [split;~auto.] 0. secs (0.u,0.s) -Chars 74364 - 74417 [step;~icbn;~rewrite~Ema;~const...] 0.002 secs (0.002u,0.s) -Chars 74420 - 74421 [-] 0. secs (0.u,0.s) -Chars 74422 - 74432 [inv~Heqtr.] 0.005 secs (0.005u,0.s) -Chars 74437 - 74460 [left;~exists~ma;~split.] 0. secs (0.u,0.s) -Chars 74465 - 74466 [+] 0. secs (0.u,0.s) -Chars 74467 - 74491 [step;~constructor;~auto.] 0.001 secs (0.001u,0.s) -Chars 74497 - 74498 [+] 0. secs (0.u,0.s) -Chars 74499 - 74524 [inv~H1;~step;~assumption.] 0.004 secs (0.004u,0.s) -Chars 74525 - 74529 [Qed.] 0.013 secs (0.013u,0.s) -Chars 74531 - 74796 [Lemma~eutt_inv_bind_tau~:~~~fo...] 0. secs (0.u,0.s) -Chars 74797 - 74803 [Proof.] 0. secs (0.u,0.s) -Chars 74806 - 74813 [intros.] 0. secs (0.u,0.s) -Chars 74814 - 74838 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) -Chars 74839 - 74844 [auto.] 0. secs (0.u,0.s) -Chars 74845 - 74849 [Qed.] 0. secs (0.u,0.s) -Chars 74851 - 75119 [Lemma~eqitree_inv_bind_tau~:~~...] 0. secs (0.u,0.s) -Chars 75120 - 75126 [Proof.] 0. secs (0.u,0.s) -Chars 75129 - 75136 [intros.] 0. secs (0.u,0.s) -Chars 75137 - 75161 [apply~eqit_inv_bind_tau.] 0. secs (0.u,0.s) -Chars 75162 - 75167 [auto.] 0. secs (0.u,0.s) -Chars 75168 - 75172 [Qed.] 0. secs (0.u,0.s) -Chars 75174 - 75296 [Lemma~eutt_Ret_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 75297 - 75303 [Proof.] 0. secs (0.u,0.s) -Chars 75306 - 75313 [intros.] 0. secs (0.u,0.s) -Chars 75316 - 75326 [step~in~H.] 0. secs (0.u,0.s) -Chars 75329 - 75361 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) -Chars 75364 - 75402 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) -Chars 75405 - 75423 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 75426 - 75488 [induction~H;~intros~EQ1~EQ2;~t...] 0.004 secs (0.004u,0.s) -Chars 75491 - 75492 [-] 0. secs (0.u,0.s) -Chars 75493 - 75513 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 75518 - 75526 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 75527 - 75531 [Qed.] 0.002 secs (0.001u,0.s) -Chars 75533 - 75655 [Lemma~eutt_spin_Ret_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 75656 - 75662 [Proof.] 0. secs (0.u,0.s) -Chars 75665 - 75672 [intros.] 0. secs (0.u,0.s) -Chars 75675 - 75685 [step~in~H.] 0. secs (0.u,0.s) -Chars 75688 - 75720 [remember~(observe~(Ret~v))~as~x.] 0. secs (0.u,0.s) -Chars 75723 - 75761 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) -Chars 75764 - 75782 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 75785 - 75847 [induction~H;~intros~EQ1~EQ2;~t...] 0.005 secs (0.005u,0.s) -Chars 75850 - 75851 [-] 0. secs (0.u,0.s) -Chars 75852 - 75872 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 75877 - 75885 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 75886 - 75890 [Qed.] 0.002 secs (0.002u,0.s) -Chars 75892 - 76042 [Lemma~eutt_Vis_spin_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 76043 - 76049 [Proof.] 0. secs (0.u,0.s) -Chars 76052 - 76059 [intros.] 0. secs (0.u,0.s) -Chars 76062 - 76072 [step~in~H.] 0. secs (0.u,0.s) -Chars 76075 - 76109 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) -Chars 76112 - 76150 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) -Chars 76153 - 76171 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 76174 - 76236 [induction~H;~intros~EQ1~EQ2;~t...] 0.008 secs (0.007u,0.s) -Chars 76239 - 76240 [-] 0. secs (0.u,0.s) -Chars 76241 - 76261 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 76266 - 76274 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 76275 - 76279 [Qed.] 0.002 secs (0.002u,0.s) -Chars 76281 - 76431 [Lemma~eutt_spin_Vis_abs~:~~~fo...] 0. secs (0.u,0.s) -Chars 76432 - 76438 [Proof.] 0. secs (0.u,0.s) -Chars 76441 - 76448 [intros.] 0. secs (0.u,0.s) -Chars 76451 - 76461 [step~in~H.] 0. secs (0.u,0.s) -Chars 76464 - 76498 [remember~(observe~(Vis~e~k))~a...] 0. secs (0.u,0.s) -Chars 76501 - 76539 [remember~(observe~ITree.spin)~...] 0. secs (0.u,0.s) -Chars 76542 - 76560 [revert~Heqx~Heqsp.] 0. secs (0.u,0.s) -Chars 76563 - 76625 [induction~H;~intros~EQ1~EQ2;~t...] 0.007 secs (0.007u,0.s) -Chars 76628 - 76629 [-] 0. secs (0.u,0.s) -Chars 76630 - 76650 [apply~IHeqitF;~auto.] 0. secs (0.u,0.s) -Chars 76655 - 76663 [inv~EQ2.] 0. secs (0.u,0.s) -Chars 76664 - 76668 [Qed.] 0.002 secs (0.002u,0.s) -Chars 76669 - 76687 [Section~eqit_elem.] 0. secs (0.u,0.s) -Chars 77994 - 78068 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 78070 - 78129 [Ltac~euttsimpl~:=~unfold~eutt,...] 0. secs (0.u,0.s) -Chars 78167 - 78284 [Lemma~Equivalence_elem_ff~R~RS...] 0. secs (0.u,0.s) -Chars 78285 - 78291 [Proof.] 0. secs (0.u,0.s) -Chars 78294 - 78325 [constructor;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 78326 - 78330 [Qed.] 0. secs (0.u,0.s) -Chars 78332 - 78449 [Lemma~Reflexive_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 78450 - 78456 [Proof.] 0. secs (0.u,0.s) -Chars 78457 - 78475 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 78476 - 78480 [Qed.] 0. secs (0.u,0.s) -Chars 78482 - 78599 [Lemma~Symmetric_elem_eutt~R~RS...] 0. secs (0.u,0.s) -Chars 78600 - 78606 [Proof.] 0. secs (0.u,0.s) -Chars 78607 - 78625 [typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 78626 - 78630 [Qed.] 0. secs (0.u,0.s) -Chars 78661 - 78896 [Lemma~Proper_elem_bind~X1~X2~Y...] 0.001 secs (0.001u,0.s) -Chars 78897 - 78903 [Proof.] 0. secs (0.u,0.s) -Chars 78906 - 78913 [intros.] 0. secs (0.u,0.s) -Chars 78914 - 78944 [eapply~eqit_bind_chain;~eauto.] 0. secs (0.u,0.s) -Chars 78945 - 78959 [now~do~2~step.] 0.003 secs (0.003u,0.s) -Chars 78961 - 78965 [Qed.] 0. secs (0.u,0.s) -Chars 79152 - 79166 [End~eqit_elem.] 0. secs (0.u,0.s) -Chars 79169 - 79188 [Section~eutt_facts.] 0. secs (0.u,0.s) -Chars 80583 - 80696 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 80697 - 80703 [Proof.] 0. secs (0.u,0.s) -Chars 80706 - 80714 [intros~!.] 0. secs (0.u,0.s) -Chars 80715 - 80733 [now~rewrite~H,~H0.] 0.015 secs (0.015u,0.s) -Chars 80734 - 80738 [Qed.] 0. secs (0.u,0.s) -Chars 80740 - 80877 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 80878 - 80884 [Proof.] 0. secs (0.u,0.s) -Chars 80887 - 80895 [intros~!.] 0. secs (0.u,0.s) -Chars 80896 - 80914 [now~rewrite~H,~H0.] 0.001 secs (0.001u,0.s) -Chars 80915 - 80919 [Qed.] 0. secs (0.u,0.s) -Chars 80921 - 81058 [#[global]~Instance~eutt_cong_e...] 0. secs (0.u,0.s) -Chars 81059 - 81065 [Proof.] 0. secs (0.u,0.s) -Chars 81068 - 81076 [intros~!.] 0. secs (0.u,0.s) -Chars 81077 - 81095 [now~rewrite~H,~H0.] 0.019 secs (0.018u,0.s) -Chars 81096 - 81100 [Qed.] 0.001 secs (0.u,0.s) -Chars 81254 - 81440 [Lemma~eutt_eq_bind~:~~~forall~...] 0. secs (0.u,0.s) -Chars 81441 - 81447 [Proof.] 0. secs (0.u,0.s) -Chars 81450 - 81457 [intros.] 0. secs (0.u,0.s) -Chars 81460 - 81520 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 81523 - 81546 [intros~?~?~->;~apply~H.] 0. secs (0.u,0.s) -Chars 81547 - 81551 [Qed.] 0. secs (0.u,0.s) -Chars 81597 - 81763 [Lemma~eutt_eq_bind'~{E}~{U}~{R...] 0. secs (0.u,0.s) -Chars 81764 - 81770 [Proof.] 0. secs (0.u,0.s) -Chars 81773 - 81786 [intros~->~Hk.] 0.001 secs (0.001u,0.s) -Chars 81787 - 81810 [now~apply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 81811 - 81815 [Qed.] 0. secs (0.u,0.s) -Chars 81910 - 82032 [Lemma~eutt_Ret~:~~~forall~E~(R...] 0. secs (0.u,0.s) -Chars 82033 - 82039 [Proof.] 0. secs (0.u,0.s) -Chars 82042 - 82065 [intros;~apply~eqit_Ret.] 0. secs (0.u,0.s) -Chars 82066 - 82070 [Qed.] 0. secs (0.u,0.s) -Chars 82234 - 82261 [Open~Scope~relationH_scope.] 0. secs (0.u,0.s) -Chars 82263 - 82413 [Lemma~eutt_conj~{E}~{R}~{S}~{R...] 0. secs (0.u,0.s) -Chars 82414 - 82420 [Proof.] 0. secs (0.u,0.s) -Chars 82423 - 82442 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 82443 - 82459 [intros~*~EQ~EQ'.] 0. secs (0.u,0.s) -Chars 82462 - 82486 [step~in~EQ;~step~in~EQ'.] 0. secs (0.u,0.s) -Chars 82490 - 82515 [genobs~t~ot;~genobs~s~os.] 0.001 secs (0.001u,0.s) -Chars 82518 - 82565 [hinduction~EQ~before~CIH;~subs...] 0.001 secs (0.001u,0.s) -Chars 82568 - 82569 [-] 0. secs (0.u,0.s) -Chars 82570 - 82578 [inv~EQ'.] 0.006 secs (0.006u,0.s) -Chars 82579 - 82584 [eret.] 0. secs (0.u,0.s) -Chars 82585 - 82601 [now~constructor.] 0. secs (0.u,0.s) -Chars 82605 - 82606 [-] 0. secs (0.u,0.s) -Chars 82607 - 82612 [taus.] 0. secs (0.u,0.s) -Chars 82613 - 82631 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 82632 - 82651 [apply~eqit_inv_Tau.] 0. secs (0.u,0.s) -Chars 82652 - 82661 [now~step.] 0.001 secs (0.001u,0.s) -Chars 82666 - 82667 [-] 0. secs (0.u,0.s) -Chars 82668 - 82680 [constructor.] 0. secs (0.u,0.s) -Chars 82681 - 82689 [intro~v.] 0. secs (0.u,0.s) -Chars 82690 - 82709 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 82714 - 82732 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 82738 - 82778 [now~eapply~eqitF_inv_VisF~in~E...] 0. secs (0.u,0.s) -Chars 82781 - 82782 [-] 0. secs (0.u,0.s) -Chars 82783 - 82788 [taul.] 0. secs (0.u,0.s) -Chars 82789 - 82808 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 82809 - 82815 [subst.] 0. secs (0.u,0.s) -Chars 82816 - 82823 [unstep.] 0.002 secs (0.002u,0.s) -Chars 82824 - 82846 [eapply~eqit_inv_Tau_l.] 0. secs (0.u,0.s) -Chars 82852 - 82861 [now~step.] 0.001 secs (0.001u,0.s) -Chars 82866 - 82867 [-] 0. secs (0.u,0.s) -Chars 82868 - 82873 [taur.] 0. secs (0.u,0.s) -Chars 82874 - 82893 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 82894 - 82900 [subst.] 0. secs (0.u,0.s) -Chars 82901 - 82908 [unstep.] 0.002 secs (0.002u,0.s) -Chars 82909 - 82931 [eapply~eqit_inv_Tau_r.] 0. secs (0.u,0.s) -Chars 82937 - 82946 [now~step.] 0.001 secs (0.001u,0.s) -Chars 82949 - 82953 [Qed.] 0.01 secs (0.01u,0.s) -Chars 82955 - 83081 [Lemma~eutt_disj_l~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 83083 - 83089 [Proof.] 0. secs (0.u,0.s) -Chars 83092 - 83099 [intros.] 0. secs (0.u,0.s) -Chars 83102 - 83133 [eapply~(eqit_mono~RS~_);~eauto.] 0.001 secs (0.001u,0.s) -Chars 83134 - 83138 [Qed.] 0. secs (0.u,0.s) -Chars 83140 - 83267 [Lemma~eutt_disj_r~{E}~{R}~{S}~...] 0. secs (0.u,0.s) -Chars 83269 - 83275 [Proof.] 0. secs (0.u,0.s) -Chars 83278 - 83285 [intros.] 0. secs (0.u,0.s) -Chars 83288 - 83320 [eapply~(eqit_mono~RS'~_);~eauto.] 0.001 secs (0.001u,0.s) -Chars 83321 - 83325 [Qed.] 0. secs (0.u,0.s) -Chars 83327 - 83486 [Lemma~eutt_equiv~{E}~{R}~{S}~{...] 0. secs (0.u,0.s) -Chars 83488 - 83494 [Proof.] 0. secs (0.u,0.s) -Chars 83497 - 83570 [intros~*~EQ;~split;~intros~EUT...] 0.003 secs (0.003u,0.s) -Chars 83573 - 83587 [all:~apply~EQ.] 0. secs (0.u,0.s) -Chars 83588 - 83592 [Qed.] 0. secs (0.u,0.s) -Chars 83670 - 83849 [#[global]~Instance~eq_itree_Pr...] 0. secs (0.u,0.s) -Chars 83850 - 83856 [Proof.] 0. secs (0.u,0.s) -Chars 83859 - 83874 [intros~!;~subst.] 0. secs (0.u,0.s) -Chars 83877 - 83917 [unfold~eq_itree;~rewrite~H;~re...] 0. secs (0.u,0.s) -Chars 83918 - 83922 [Qed.] 0. secs (0.u,0.s) -Chars 83924 - 84084 [#[global]~Instance~eutt_Proper...] 0. secs (0.u,0.s) -Chars 84085 - 84091 [Proof.] 0. secs (0.u,0.s) -Chars 84094 - 84109 [intros~!;~subst.] 0. secs (0.u,0.s) -Chars 84112 - 84148 [unfold~eutt;~rewrite~H;~reflex...] 0. secs (0.u,0.s) -Chars 84149 - 84153 [Qed.] 0. secs (0.u,0.s) -Chars 84262 - 84393 [Lemma~eutt_sub_self~{E}~{R}~(R...] 0. secs (0.u,0.s) -Chars 84394 - 84400 [Proof.] 0. secs (0.u,0.s) -Chars 84403 - 84425 [intros~Hrel;~revert~t.] 0. secs (0.u,0.s) -Chars 84426 - 84461 [icoinduction~c~CIH;~intros~t~H...] 0.001 secs (0.001u,0.s) -Chars 84464 - 84478 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 84481 - 84512 [remember~t~as~t'~in~Heutt~at~2.] 0. secs (0.u,0.s) -Chars 84513 - 84549 [assert~(Ht'~:~t'~≈~t)~by~now~s...] 0. secs (0.u,0.s) -Chars 84550 - 84562 [clear~Heqt'.] 0. secs (0.u,0.s) -Chars 84565 - 84610 [rewrite~(itree_eta~t),~(itree_...] 0.028 secs (0.028u,0.s) -Chars 84613 - 84624 [revert~Ht'.] 0. secs (0.u,0.s) -Chars 84625 - 84662 [induction~Heutt;~clear~t;~intr...] 0. secs (0.u,0.s) -Chars 84665 - 84666 [-] 0. secs (0.u,0.s) -Chars 84667 - 84700 [apply~eutt_inv_Ret~in~Heq;~subst.] 0. secs (0.u,0.s) -Chars 84705 - 84723 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 84726 - 84727 [-] 0. secs (0.u,0.s) -Chars 84728 - 84754 [apply~eqit_inv_Tau~in~Heq.] 0. secs (0.u,0.s) -Chars 84759 - 84771 [constructor.] 0. secs (0.u,0.s) -Chars 84772 - 84783 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 84789 - 84813 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 84816 - 84817 [-] 0. secs (0.u,0.s) -Chars 84818 - 84830 [constructor.] 0. secs (0.u,0.s) -Chars 84831 - 84840 [intros~v.] 0. secs (0.u,0.s) -Chars 84841 - 84868 [eapply~eqit_inv_Vis~in~Heq.] 0. secs (0.u,0.s) -Chars 84873 - 84892 [specialize~(REL~v).] 0. secs (0.u,0.s) -Chars 84893 - 84904 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 84905 - 84929 [now~rewrite~<-~Heq~~at~2.] 0.001 secs (0.001u,0.s) -Chars 84932 - 84933 [-] 0. secs (0.u,0.s) -Chars 84934 - 84945 [taul;~taur.] 0. secs (0.u,0.s) -Chars 84946 - 84960 [apply~IHHeutt.] 0. secs (0.u,0.s) -Chars 84961 - 84987 [rewrite~<-~(itree_eta~t1).] 0. secs (0.u,0.s) -Chars 84995 - 85025 [now~rewrite~tau_euttge~in~Heq.] 0.017 secs (0.017u,0.s) -Chars 85029 - 85030 [-] 0. secs (0.u,0.s) -Chars 85031 - 85045 [apply~IHHeutt.] 0. secs (0.u,0.s) -Chars 85046 - 85069 [rewrite~<-~itree_eta.] 0. secs (0.u,0.s) -Chars 85077 - 85107 [now~rewrite~tau_euttge~in~Heq.] 0.011 secs (0.011u,0.s) -Chars 85109 - 85113 [Qed.] 0.004 secs (0.004u,0.s) -Chars 85115 - 85130 [End~eutt_facts.] 0. secs (0.u,0.s) -Chars 85179 - 85346 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) -Chars 85348 - 85354 [Proof.] 0. secs (0.u,0.s) -Chars 85358 - 85366 [intros~!.] 0. secs (0.u,0.s) -Chars 85370 - 85375 [step.] 0.002 secs (0.002u,0.s) -Chars 85376 - 85386 [rewrite~H.] 0.006 secs (0.006u,0.s) -Chars 85387 - 85399 [reflexivity.] 0. secs (0.u,0.s) -Chars 85401 - 85405 [Qed.] 0.001 secs (0.001u,0.s) -Chars 85412 - 85547 [#[global]~Instance~observing_e...] 0. secs (0.u,0.s) -Chars 85549 - 85555 [Proof.] 0. secs (0.u,0.s) -Chars 85559 - 85598 [intros~!;~now~eapply~observing...] 0. secs (0.u,0.s) -Chars 85599 - 85603 [Qed.] 0. secs (0.u,0.s) -Chars 85606 - 85733 [Ltac~~bcbn~:=~~~cbn;~to_mon;~~...] 0. secs (0.u,0.s) diff --git a/theories/Eq/Rutt.v.timing b/theories/Eq/Rutt.v.timing deleted file mode 100644 index 5f45765d..00000000 --- a/theories/Eq/Rutt.v.timing +++ /dev/null @@ -1,236 +0,0 @@ -Chars 874 - 929 [From~Stdlib~Require~Import~Mor...] 0.005 secs (0.003u,0.002s) -Chars 931 - 967 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 969 - 1080 [From~ITree~Require~Import~Basi...] 0.134 secs (0.121u,0.012s) -Chars 1082 - 1111 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 1113 - 1127 [Section~RuttF.] 0. secs (0.u,0.s) -Chars 1131 - 1162 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 1165 - 1188 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) -Chars 1426 - 1485 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 1488 - 1558 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) -Chars 1561 - 1583 [Arguments~REv~{A~B}.] 0. secs (0.u,0.s) -Chars 1586 - 1609 [Arguments~RAns~{A~B}.] 0. secs (0.u,0.s) -Chars 1613 - 2457 [Inductive~ruttF~(RR~:~R1~->~R2...] 0.002 secs (0.002u,0.s) -Chars 2460 - 2492 [Hint~Constructors~ruttF:~itree.] 0. secs (0.u,0.s) -Chars 2496 - 2714 [Definition~rutt_~~~(sim~:~(R1~...] 0. secs (0.u,0.s) -Chars 2718 - 2763 [Lemma~rutt_mono~:~Proper~(leq~...] 0. secs (0.u,0.s) -Chars 2766 - 2772 [Proof.] 0. secs (0.u,0.s) -Chars 2777 - 2790 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2791 - 2809 [unfold~rutt_~in~*.] 0. secs (0.u,0.s) -Chars 2810 - 2841 [induction~H0;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 2846 - 2871 [constructor;~now~apply~H.] 0. secs (0.u,0.s) -Chars 2877 - 2921 [constructor;~intros;~eauto;~no...] 0. secs (0.u,0.s) -Chars 2925 - 2929 [Qed.] 0. secs (0.u,0.s) -Chars 2933 - 3066 [Definition~rutt_mon~:~~~mon~((...] 0. secs (0.u,0.s) -Chars 3071 - 3162 [Definition~rutt~:~(R1~->~R2~->...] 0. secs (0.u,0.s) -Chars 3165 - 3190 [Hint~Unfold~rutt:~itree.] 0. secs (0.u,0.s) -Chars 3194 - 3494 [Lemma~ruttF_inv_VisF_r~{sim}~R...] 0. secs (0.u,0.s) -Chars 3497 - 3503 [Proof.] 0. secs (0.u,0.s) -Chars 3508 - 3745 [refine~~~(fun~H~=>~~~~match~~~...] 0.001 secs (0.u,0.s) -Chars 3750 - 3751 [-] 0. secs (0.u,0.s) -Chars 3752 - 3764 [left;~eauto.] 0. secs (0.u,0.s) -Chars 3769 - 3770 [-] 0. secs (0.u,0.s) -Chars 3771 - 3790 [destruct~i0;~eauto.] 0. secs (0.u,0.s) -Chars 3793 - 3797 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3801 - 4007 [Lemma~ruttF_inv_VisF~{sim}~RR~...] 0. secs (0.u,0.s) -Chars 4010 - 4016 [Proof.] 0. secs (0.u,0.s) -Chars 4021 - 4030 [intros~H.] 0. secs (0.u,0.s) -Chars 4031 - 4055 [dependent~destruction~H.] 0.005 secs (0.004u,0.001s) -Chars 4056 - 4067 [assumption.] 0. secs (0.u,0.s) -Chars 4070 - 4074 [Qed.] 0.022 secs (0.02u,0.001s) -Chars 4076 - 4086 [End~RuttF.] 0. secs (0.u,0.s) -Chars 4121 - 4161 [#[local]~Ltac~runfold~:=~unfol...] 0. secs (0.u,0.s) -Chars 4162 - 4209 [#[local]~Ltac~runfold_in~h~:=~...] 0. secs (0.u,0.s) -Chars 4211 - 4261 [Ltac~rcbn~:=~cbn[rutt_mon~body...] 0. secs (0.u,0.s) -Chars 4262 - 4327 [Ltac~rcbn_in~H~:=~cbn[rutt_mon...] 0. secs (0.u,0.s) -Chars 4329 - 4379 [Tactic~Notation~"rcbn"~"in"~id...] 0. secs (0.u,0.s) -Chars 4380 - 4462 [Tactic~Notation~"rcbn"~"in"~"*...] 0. secs (0.u,0.s) -Chars 4534 - 4581 [Tactic~Notation~"rstep"~:=~run...] 0. secs (0.u,0.s) -Chars 4582 - 4658 [Tactic~Notation~"rstep"~"in"~i...] 0. secs (0.u,0.s) -Chars 4660 - 4811 [#[local]~Ltac~~refold~:=~~~rep...] 0. secs (0.u,0.s) -Chars 4813 - 5006 [Ltac~~fold_rutt~:=~~~match~goa...] 0. secs (0.u,0.s) -Chars 5007 - 5212 [Ltac~~fold_rutt_in~h~:=~~~matc...] 0. secs (0.u,0.s) -Chars 5213 - 5260 [Tactic~Notation~"runstep"~:=~f...] 0. secs (0.u,0.s) -Chars 5261 - 5332 [Tactic~Notation~"runstep"~"in"...] 0. secs (0.u,0.s) -Chars 5334 - 5841 [Ltac~~to_rmon_core~:=~~~match~...] 0. secs (0.u,0.s) -Chars 5843 - 6021 [Ltac~~to_rmon~:=~~~let~dummy~:...] 0. secs (0.u,0.s) -Chars 6023 - 6539 [Ltac~~to_rmon_in~h~:=~~~match~...] 0. secs (0.u,0.s) -Chars 6541 - 6597 [Tactic~Notation~"to_rmon"~"in"...] 0. secs (0.u,0.s) -Chars 6599 - 6641 [#[global]~Hint~Constructors~ru...] 0. secs (0.u,0.s) -Chars 6642 - 6678 [#[global]~Hint~Unfold~rutt_:~i...] 0. secs (0.u,0.s) -Chars 6679 - 6718 [#[global]~Hint~Unfold~rutt_mon...] 0. secs (0.u,0.s) -Chars 6719 - 6754 [#[global]~Hint~Unfold~rutt:~it...] 0. secs (0.u,0.s) -Chars 6756 - 6786 [Section~ConstructionInversion.] 0. secs (0.u,0.s) -Chars 6787 - 6819 [Variables~(E1~E2~:~Type~->~Type).] 0. secs (0.u,0.s) -Chars 6820 - 6844 [Variables~(R1~R2~:~Type).] 0. secs (0.u,0.s) -Chars 6845 - 6898 [Variable~(REv~:~forall~T1~T2,~...] 0. secs (0.u,0.s) -Chars 6899 - 6965 [Variable~(RAns~:~forall~T1~T2,...] 0. secs (0.u,0.s) -Chars 6966 - 6998 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 7000 - 7112 [Lemma~rutt_Ret~r1~r2~:~~~RR~r1...] 0. secs (0.u,0.s) -Chars 7113 - 7119 [Proof.] 0. secs (0.u,0.s) -Chars 7120 - 7127 [intros.] 0. secs (0.u,0.s) -Chars 7128 - 7134 [rstep.] 0. secs (0.u,0.s) -Chars 7135 - 7153 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 7154 - 7158 [Qed.] 0. secs (0.u,0.s) -Chars 7160 - 7235 [Lemma~rutt_inv_Ret~r1~r2~:~rut...] 0. secs (0.u,0.s) -Chars 7236 - 7242 [Proof.] 0. secs (0.u,0.s) -Chars 7245 - 7252 [intros.] 0. secs (0.u,0.s) -Chars 7253 - 7264 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 7265 - 7271 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 7272 - 7276 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7278 - 7377 [Lemma~rutt_inv_Ret_l~r1~t2~:~~...] 0. secs (0.u,0.s) -Chars 7378 - 7384 [Proof.] 0. secs (0.u,0.s) -Chars 7387 - 7400 [intros~Hrutt.] 0. secs (0.u,0.s) -Chars 7401 - 7416 [rstep~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7417 - 7431 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7435 - 7465 [setoid_rewrite~(itree_eta~t2).] 0.003 secs (0.002u,0.s) -Chars 7466 - 7516 [remember~(observe~(Ret~r1))~as...] 0. secs (0.u,0.s) -Chars 7521 - 7563 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) -Chars 7566 - 7567 [-] 0. secs (0.u,0.s) -Chars 7568 - 7592 [inversion~Heqot1;~subst.] 0. secs (0.u,0.s) -Chars 7593 - 7603 [exists~r2.] 0. secs (0.u,0.s) -Chars 7604 - 7630 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) -Chars 7633 - 7634 [-] 0. secs (0.u,0.s) -Chars 7635 - 7677 [destruct~(IHHrutt~Heqot1)~as~[...] 0. secs (0.u,0.s) -Chars 7678 - 7701 [exists~r2;~split;~auto.] 0. secs (0.u,0.s) -Chars 7706 - 7733 [rewrite~<-~itree_eta~in~H1.] 0.033 secs (0.033u,0.s) -Chars 7734 - 7757 [now~rewrite~tau_euttge.] 0.001 secs (0.001u,0.s) -Chars 7758 - 7762 [Qed.] 0.002 secs (0.002u,0.s) -Chars 7764 - 7863 [Lemma~rutt_inv_Ret_r~t1~r2~:~~...] 0. secs (0.u,0.s) -Chars 7864 - 7870 [Proof.] 0. secs (0.u,0.s) -Chars 7873 - 7886 [intros~Hrutt.] 0. secs (0.u,0.s) -Chars 7887 - 7902 [rstep~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7903 - 7917 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 7920 - 7950 [setoid_rewrite~(itree_eta~t1).] 0.002 secs (0.002u,0.s) -Chars 7951 - 8001 [remember~(observe~(Ret~r2))~as...] 0. secs (0.u,0.s) -Chars 8004 - 8046 [induction~Hrutt;~intros;~try~d...] 0. secs (0.u,0.s) -Chars 8049 - 8050 [-] 0. secs (0.u,0.s) -Chars 8051 - 8075 [inversion~Heqot2;~subst.] 0. secs (0.u,0.s) -Chars 8076 - 8086 [exists~r1.] 0. secs (0.u,0.s) -Chars 8087 - 8113 [split;~[~reflexivity~|~auto~].] 0. secs (0.u,0.s) -Chars 8116 - 8117 [-] 0. secs (0.u,0.s) -Chars 8118 - 8160 [destruct~(IHHrutt~Heqot2)~as~[...] 0. secs (0.u,0.s) -Chars 8161 - 8184 [exists~r1;~split;~auto.] 0. secs (0.u,0.s) -Chars 8189 - 8216 [rewrite~<-~itree_eta~in~H1.] 0.007 secs (0.007u,0.s) -Chars 8217 - 8240 [now~rewrite~tau_euttge.] 0. secs (0.u,0.s) -Chars 8241 - 8245 [Qed.] 0.004 secs (0.003u,0.s) -Chars 8306 - 8449 [Lemma~ruttF_inv_tau_l~t1~ot2~:...] 0. secs (0.u,0.s) -Chars 8450 - 8456 [Proof.] 0. secs (0.u,0.s) -Chars 8459 - 8468 [intros~H.] 0. secs (0.u,0.s) -Chars 8469 - 8495 [remember~(TauF~t1)~as~tt1.] 0. secs (0.u,0.s) -Chars 8498 - 8528 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) -Chars 8531 - 8532 [-] 0. secs (0.u,0.s) -Chars 8533 - 8544 [inv~Heqtt1.] 0. secs (0.u,0.s) -Chars 8545 - 8557 [constructor.] 0. secs (0.u,0.s) -Chars 8558 - 8569 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 8570 - 8578 [exact~H.] 0. secs (0.u,0.s) -Chars 8581 - 8582 [-] 0. secs (0.u,0.s) -Chars 8583 - 8594 [inv~Heqtt1.] 0. secs (0.u,0.s) -Chars 8597 - 8598 [-] 0. secs (0.u,0.s) -Chars 8599 - 8611 [constructor.] 0. secs (0.u,0.s) -Chars 8612 - 8617 [auto.] 0. secs (0.u,0.s) -Chars 8618 - 8622 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8684 - 8827 [Lemma~ruttF_inv_tau_r~ot1~t2~:...] 0. secs (0.u,0.s) -Chars 8828 - 8834 [Proof.] 0. secs (0.u,0.s) -Chars 8837 - 8846 [intros~H.] 0. secs (0.u,0.s) -Chars 8847 - 8873 [remember~(TauF~t2)~as~tt2.] 0. secs (0.u,0.s) -Chars 8876 - 8906 [induction~H;~try~discriminate.] 0. secs (0.u,0.s) -Chars 8909 - 8910 [-] 0. secs (0.u,0.s) -Chars 8911 - 8922 [inv~Heqtt2.] 0. secs (0.u,0.s) -Chars 8923 - 8935 [constructor.] 0. secs (0.u,0.s) -Chars 8936 - 8947 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 8948 - 8956 [exact~H.] 0. secs (0.u,0.s) -Chars 8959 - 8960 [-] 0. secs (0.u,0.s) -Chars 8961 - 8973 [constructor.] 0. secs (0.u,0.s) -Chars 8974 - 8979 [auto.] 0. secs (0.u,0.s) -Chars 8982 - 8983 [-] 0. secs (0.u,0.s) -Chars 8984 - 8995 [inv~Heqtt2.] 0. secs (0.u,0.s) -Chars 8996 - 9000 [Qed.] 0.001 secs (0.001u,0.s) -Chars 9002 - 9088 [Lemma~rutt_inv_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 9089 - 9095 [Proof.] 0. secs (0.u,0.s) -Chars 9098 - 9105 [intros.] 0. secs (0.u,0.s) -Chars 9106 - 9117 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 9118 - 9124 [rstep.] 0. secs (0.u,0.s) -Chars 9127 - 9149 [apply~ruttF_inv_tau_l.] 0. secs (0.u,0.s) -Chars 9150 - 9158 [exact~H.] 0. secs (0.u,0.s) -Chars 9159 - 9163 [Qed.] 0. secs (0.u,0.s) -Chars 9165 - 9251 [Lemma~rutt_add_Tau_l~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 9252 - 9258 [Proof.] 0. secs (0.u,0.s) -Chars 9261 - 9268 [intros.] 0. secs (0.u,0.s) -Chars 9269 - 9275 [rstep.] 0. secs (0.u,0.s) -Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) -Chars 9289 - 9300 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 9301 - 9309 [exact~H.] 0. secs (0.u,0.s) -Chars 9310 - 9314 [Qed.] 0. secs (0.u,0.s) -Chars 9316 - 9402 [Lemma~rutt_inv_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 9403 - 9409 [Proof.] 0. secs (0.u,0.s) -Chars 9412 - 9419 [intros.] 0. secs (0.u,0.s) -Chars 9420 - 9431 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 9432 - 9438 [rstep.] 0. secs (0.u,0.s) -Chars 9441 - 9463 [apply~ruttF_inv_tau_r.] 0. secs (0.u,0.s) -Chars 9464 - 9472 [exact~H.] 0. secs (0.u,0.s) -Chars 9473 - 9477 [Qed.] 0. secs (0.u,0.s) -Chars 9479 - 9565 [Lemma~rutt_add_Tau_r~t1~t2~:~~...] 0. secs (0.u,0.s) -Chars 9566 - 9572 [Proof.] 0. secs (0.u,0.s) -Chars 9575 - 9582 [intros.] 0. secs (0.u,0.s) -Chars 9583 - 9589 [rstep.] 0. secs (0.u,0.s) -Chars 9590 - 9602 [constructor.] 0. secs (0.u,0.s) -Chars 9603 - 9614 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 9615 - 9623 [exact~H.] 0. secs (0.u,0.s) -Chars 9624 - 9628 [Qed.] 0. secs (0.u,0.s) -Chars 9630 - 9720 [Lemma~rutt_inv_Tau~t1~t2~:~~~r...] 0. secs (0.u,0.s) -Chars 9721 - 9727 [Proof.] 0. secs (0.u,0.s) -Chars 9730 - 9787 [intros;~apply~rutt_inv_Tau_r,~...] 0. secs (0.u,0.s) -Chars 9788 - 9792 [Qed.] 0. secs (0.u,0.s) -Chars 9794 - 10034 [Lemma~rutt_Vis~{T1}~{T2}~(e1~:...] 0. secs (0.u,0.s) -Chars 10035 - 10041 [Proof.] 0. secs (0.u,0.s) -Chars 10044 - 10057 [intros~He~Hk.] 0. secs (0.u,0.s) -Chars 10058 - 10064 [rstep.] 0. secs (0.u,0.s) -Chars 10065 - 10083 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 10084 - 10088 [Qed.] 0. secs (0.u,0.s) -Chars 10090 - 10322 [Lemma~rutt_inv_Vis_l~{U1}~(e1~...] 0. secs (0.u,0.s) -Chars 10323 - 10329 [Proof.] 0. secs (0.u,0.s) -Chars 10332 - 10345 [intros~Hrutt.] 0. secs (0.u,0.s) -Chars 10346 - 10361 [rstep~in~Hrutt.] 0.003 secs (0.003u,0.s) -Chars 10362 - 10376 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 10379 - 10409 [setoid_rewrite~(itree_eta~t2).] 0.006 secs (0.006u,0.s) -Chars 10410 - 10463 [remember~(observe~(Vis~e1~k1))...] 0. secs (0.u,0.s) -Chars 10466 - 10515 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) -Chars 10518 - 10519 [-] 0. secs (0.u,0.s) -Chars 10520 - 10546 [inversion~Heqot1;~subst~A.] 0.001 secs (0.001u,0.s) -Chars 10547 - 10620 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) -Chars 10625 - 10650 [exists~U2,e2,k2;~split.] 0. secs (0.u,0.s) -Chars 10651 - 10663 [reflexivity.] 0. secs (0.u,0.s) -Chars 10664 - 10676 [split;~auto.] 0. secs (0.u,0.s) -Chars 10679 - 10680 [-] 0. secs (0.u,0.s) -Chars 10681 - 10739 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) -Chars 10744 - 10772 [rewrite~<-~itree_eta~in~Ht0.] 0.014 secs (0.014u,0.s) -Chars 10777 - 10808 [exists~U2,e2,k2;~split;~auto.] 0. secs (0.u,0.s) -Chars 10809 - 10830 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 10831 - 10835 [Qed.] 0.005 secs (0.005u,0.s) -Chars 10837 - 11071 [Lemma~rutt_inv_Vis_r~{U2}~t1~(...] 0. secs (0.u,0.s) -Chars 11072 - 11078 [Proof.] 0. secs (0.u,0.s) -Chars 11081 - 11094 [intros~Hrutt.] 0. secs (0.u,0.s) -Chars 11095 - 11110 [rstep~in~Hrutt.] 0. secs (0.u,0.s) -Chars 11111 - 11125 [rcbn~in~Hrutt.] 0. secs (0.u,0.s) -Chars 11128 - 11158 [setoid_rewrite~(itree_eta~t1).] 0.008 secs (0.008u,0.s) -Chars 11159 - 11212 [remember~(observe~(Vis~e2~k2))...] 0. secs (0.u,0.s) -Chars 11215 - 11264 [induction~Hrutt;~intros;~try~d...] 0.001 secs (0.001u,0.s) -Chars 11267 - 11268 [-] 0. secs (0.u,0.s) -Chars 11269 - 11295 [inversion~Heqot2;~subst~B.] 0.001 secs (0.001u,0.s) -Chars 11296 - 11369 [inversion_sigma;~rewrite~<-~eq...] 0.002 secs (0.002u,0.s) -Chars 11374 - 11399 [exists~U1,e1,k1;~split.] 0. secs (0.u,0.s) -Chars 11400 - 11412 [reflexivity.] 0. secs (0.u,0.s) -Chars 11413 - 11425 [split;~auto.] 0. secs (0.u,0.s) -Chars 11428 - 11429 [-] 0. secs (0.u,0.s) -Chars 11430 - 11488 [destruct~(IHHrutt~eq_refl)~as~...] 0. secs (0.u,0.s) -Chars 11493 - 11521 [rewrite~<-~itree_eta~in~Ht0.] 0.013 secs (0.013u,0.s) -Chars 11526 - 11557 [exists~U1,e1,k1;~split;~auto.] 0. secs (0.u,0.s) -Chars 11558 - 11579 [now~rewrite~tau_eutt.] 0. secs (0.u,0.s) -Chars 11580 - 11584 [Qed.] 0.005 secs (0.005u,0.s) -Chars 11586 - 11809 [Lemma~rutt_inv_Vis~U1~U2~(e1~:...] 0. secs (0.u,0.s) -Chars 11810 - 11816 [Proof.] 0. secs (0.u,0.s) -Chars 11819 - 11839 [intros~H~u1~u2~Hans.] 0. secs (0.u,0.s) -Chars 11840 - 11851 [rstep~in~H.] 0. secs (0.u,0.s) -Chars 11854 - 11908 [exact~(ruttF_inv_VisF~_~_~_~_~...] 0. secs (0.u,0.s) -Chars 11909 - 11913 [Qed.] 0. secs (0.u,0.s) -Chars 11915 - 11941 [End~ConstructionInversion.] 0. secs (0.u,0.s) diff --git a/theories/Eq/RuttFacts.v.timing b/theories/Eq/RuttFacts.v.timing deleted file mode 100644 index fd1265a4..00000000 --- a/theories/Eq/RuttFacts.v.timing +++ /dev/null @@ -1,578 +0,0 @@ -Chars 346 - 382 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 385 - 461 [From~Stdlib~Require~Import~Pro...] 0.004 secs (0.002u,0.001s) -Chars 463 - 581 [From~ITree~Require~Import~ITre...] 0.158 secs (0.142u,0.016s) -Chars 632 - 844 [Lemma~rutt_trigger~{E1}~{E2}~{...] 0.002 secs (0.002u,0.s) -Chars 845 - 851 [Proof.] 0. secs (0.u,0.s) -Chars 854 - 861 [intros.] 0. secs (0.u,0.s) -Chars 862 - 883 [apply~rutt_Vis;~auto.] 0. secs (0.u,0.s) -Chars 886 - 893 [intros.] 0. secs (0.u,0.s) -Chars 894 - 915 [apply~rutt_Ret;~auto.] 0. secs (0.u,0.s) -Chars 916 - 920 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1139 - 1271 [Definition~eq_REv~{E1~E2~:~Typ...] 0. secs (0.u,0.s) -Chars 1273 - 1348 [#[global]~Instance~eq_REv_Equi...] 0. secs (0.u,0.s) -Chars 1349 - 1355 [Proof.] 0. secs (0.u,0.s) -Chars 1358 - 1370 [constructor.] 0. secs (0.u,0.s) -Chars 1373 - 1374 [-] 0. secs (0.u,0.s) -Chars 1375 - 1379 [red.] 0. secs (0.u,0.s) -Chars 1380 - 1384 [red.] 0. secs (0.u,0.s) -Chars 1385 - 1397 [reflexivity.] 0. secs (0.u,0.s) -Chars 1400 - 1401 [-] 0. secs (0.u,0.s) -Chars 1402 - 1406 [red.] 0. secs (0.u,0.s) -Chars 1407 - 1418 [intros~*~H.] 0. secs (0.u,0.s) -Chars 1419 - 1428 [red~in~H.] 0. secs (0.u,0.s) -Chars 1429 - 1433 [red.] 0. secs (0.u,0.s) -Chars 1434 - 1447 [now~symmetry.] 0. secs (0.u,0.s) -Chars 1450 - 1451 [-] 0. secs (0.u,0.s) -Chars 1452 - 1456 [hnf.] 0. secs (0.u,0.s) -Chars 1457 - 1472 [intros~*~H1~H2.] 0. secs (0.u,0.s) -Chars 1473 - 1487 [red~in~H1,~H2.] 0. secs (0.u,0.s) -Chars 1488 - 1492 [red.] 0. secs (0.u,0.s) -Chars 1493 - 1514 [etransitivity;~eauto.] 0. secs (0.u,0.s) -Chars 1515 - 1519 [Qed.] 0. secs (0.u,0.s) -Chars 1521 - 1641 [Definition~flip_REv~{E1~E2~:~T...] 0. secs (0.u,0.s) -Chars 1643 - 1725 [Lemma~flip_flip_REv~{E1}~{E2}~...] 0. secs (0.u,0.s) -Chars 1726 - 1732 [Proof.] 0. secs (0.u,0.s) -Chars 1733 - 1745 [reflexivity.] 0. secs (0.u,0.s) -Chars 1746 - 1750 [Qed.] 0. secs (0.u,0.s) -Chars 1873 - 2043 [Definition~RAns_pair~E1~E2~~~(...] 0. secs (0.u,0.s) -Chars 2045 - 2172 [Lemma~RAns_pair_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) -Chars 2173 - 2179 [Proof.] 0. secs (0.u,0.s) -Chars 2180 - 2192 [reflexivity.] 0. secs (0.u,0.s) -Chars 2193 - 2197 [Qed.] 0. secs (0.u,0.s) -Chars 2199 - 2366 [Definition~eq_RAns~{E1}~{E2}~~...] 0. secs (0.u,0.s) -Chars 2368 - 2509 [Lemma~eq_RAns_iff~{E1}~{E2}~{R...] 0. secs (0.u,0.s) -Chars 2510 - 2516 [Proof.] 0. secs (0.u,0.s) -Chars 2517 - 2526 [intros~*.] 0. secs (0.u,0.s) -Chars 2527 - 2554 [rewrite~<-~!RAns_pair_iff.] 0.024 secs (0.022u,0.001s) -Chars 2555 - 2570 [split;~apply~H.] 0. secs (0.u,0.s) -Chars 2571 - 2575 [Qed.] 0. secs (0.u,0.s) -Chars 2577 - 2654 [#[global]~Instance~eq_RAns_Equ...] 0. secs (0.u,0.s) -Chars 2655 - 2661 [Proof.] 0. secs (0.u,0.s) -Chars 2664 - 2676 [constructor.] 0. secs (0.u,0.s) -Chars 2679 - 2680 [-] 0. secs (0.u,0.s) -Chars 2681 - 2690 [red;~red.] 0. secs (0.u,0.s) -Chars 2691 - 2703 [reflexivity.] 0. secs (0.u,0.s) -Chars 2706 - 2707 [-] 0. secs (0.u,0.s) -Chars 2708 - 2717 [red;~red.] 0. secs (0.u,0.s) -Chars 2718 - 2731 [now~symmetry.] 0. secs (0.u,0.s) -Chars 2734 - 2735 [-] 0. secs (0.u,0.s) -Chars 2736 - 2745 [red;~red.] 0. secs (0.u,0.s) -Chars 2746 - 2761 [intros~*~H1~H2.] 0. secs (0.u,0.s) -Chars 2762 - 2776 [red~in~H1,~H2.] 0. secs (0.u,0.s) -Chars 2777 - 2798 [etransitivity;~eauto.] 0. secs (0.u,0.s) -Chars 2799 - 2803 [Qed.] 0. secs (0.u,0.s) -Chars 2805 - 2968 [Definition~flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 2970 - 3095 [Lemma~flip_RAns_iff~{E1}~{E2}~...] 0. secs (0.u,0.s) -Chars 3096 - 3102 [Proof.] 0. secs (0.u,0.s) -Chars 3103 - 3115 [reflexivity.] 0. secs (0.u,0.s) -Chars 3116 - 3120 [Qed.] 0. secs (0.u,0.s) -Chars 3122 - 3247 [Lemma~flip_flip_RAns~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 3248 - 3254 [Proof.] 0. secs (0.u,0.s) -Chars 3255 - 3267 [reflexivity.] 0. secs (0.u,0.s) -Chars 3268 - 3272 [Qed.] 0. secs (0.u,0.s) -Chars 3274 - 3435 [Lemma~rutt_flip~{E1}~{E2}~{R1}...] 0. secs (0.u,0.s) -Chars 3436 - 3442 [Proof.] 0. secs (0.u,0.s) -Chars 3445 - 3528 [split;~revert~t1~t2;~coinducti...] 0.002 secs (0.002u,0.s) -Chars 3531 - 3532 [-] 0. secs (0.u,0.s) -Chars 3533 - 3570 [induction~Hrutt;~try~now~const...] 0.042 secs (0.042u,0.s) -Chars 3575 - 3576 [*] 0. secs (0.u,0.s) -Chars 3577 - 3589 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 3590 - 3604 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3609 - 3610 [*] 0. secs (0.u,0.s) -Chars 3611 - 3623 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 3624 - 3629 [auto.] 0. secs (0.u,0.s) -Chars 3630 - 3646 [intros~b~a~HAns.] 0. secs (0.u,0.s) -Chars 3647 - 3659 [cbn~in~HAns.] 0. secs (0.u,0.s) -Chars 3666 - 3691 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) -Chars 3692 - 3706 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3709 - 3710 [-] 0. secs (0.u,0.s) -Chars 3711 - 3748 [induction~Hrutt;~try~now~const...] 0.01 secs (0.01u,0.s) -Chars 3753 - 3754 [*] 0. secs (0.u,0.s) -Chars 3755 - 3767 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 3768 - 3782 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3787 - 3788 [*] 0. secs (0.u,0.s) -Chars 3789 - 3801 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 3802 - 3807 [auto.] 0. secs (0.u,0.s) -Chars 3808 - 3824 [intros~b~a~HAns.] 0. secs (0.u,0.s) -Chars 3825 - 3837 [cbn~in~HAns.] 0. secs (0.u,0.s) -Chars 3844 - 3869 [specialize~(H0~a~b~HAns).] 0. secs (0.u,0.s) -Chars 3870 - 3884 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 3885 - 3889 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3966 - 4222 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) -Chars 4223 - 4229 [Proof.] 0. secs (0.u,0.s) -Chars 4232 - 4301 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) -Chars 4304 - 4484 [split;~intros~Hrutt;~revert~t1...] 0.008 secs (0.008u,0.s) -Chars 4489 - 4521 [1,~4:~apply~EqRet;~now~apply~HRR.] 0. secs (0.u,0.s) -Chars 4527 - 4559 [1,~3:~apply~EqTau;~now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4564 - 4565 [*] 0. secs (0.u,0.s) -Chars 4566 - 4578 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 4579 - 4594 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4595 - 4602 [intros.] 0. secs (0.u,0.s) -Chars 4609 - 4642 [assert~(H2~:~RAns1~A~B~e1~a~e2...] 0. secs (0.u,0.s) -Chars 4649 - 4650 [{] 0. secs (0.u,0.s) -Chars 4651 - 4675 [erewrite~<-~eq_RAns_iff.] 0. secs (0.u,0.s) -Chars 4676 - 4685 [apply~H1.] 0. secs (0.u,0.s) -Chars 4686 - 4697 [assumption.] 0. secs (0.u,0.s) -Chars 4698 - 4699 [}] 0. secs (0.u,0.s) -Chars 4706 - 4713 [intros.] 0. secs (0.u,0.s) -Chars 4714 - 4737 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) -Chars 4738 - 4752 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4757 - 4758 [*] 0. secs (0.u,0.s) -Chars 4759 - 4771 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 4772 - 4787 [now~apply~HREv.] 0. secs (0.u,0.s) -Chars 4788 - 4795 [intros.] 0. secs (0.u,0.s) -Chars 4802 - 4835 [assert~(H2~:~RAns2~A~B~e1~a~e2...] 0. secs (0.u,0.s) -Chars 4842 - 4843 [{] 0. secs (0.u,0.s) -Chars 4844 - 4865 [erewrite~eq_RAns_iff.] 0. secs (0.u,0.s) -Chars 4866 - 4875 [apply~H1.] 0. secs (0.u,0.s) -Chars 4876 - 4887 [assumption.] 0. secs (0.u,0.s) -Chars 4888 - 4889 [}] 0. secs (0.u,0.s) -Chars 4896 - 4903 [intros.] 0. secs (0.u,0.s) -Chars 4904 - 4927 [specialize~(H0~a~b~H2).] 0. secs (0.u,0.s) -Chars 4928 - 4942 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4943 - 4947 [Qed.] 0.006 secs (0.006u,0.s) -Chars 4949 - 5138 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) -Chars 5139 - 5145 [Proof.] 0. secs (0.u,0.s) -Chars 5148 - 5386 [split;~revert_until~c;~tower~i...] 0.013 secs (0.013u,0.s) -Chars 5389 - 5445 [1-3,~6-8:~inv~Ht1;~inv~Ht2;~si...] 0.192 secs (0.191u,0.s) -Chars 5448 - 5449 [+] 0. secs (0.u,0.s) -Chars 5450 - 5458 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5459 - 5471 [constructor.] 0. secs (0.u,0.s) -Chars 5472 - 5489 [eapply~IH;~eauto.] 0. secs (0.u,0.s) -Chars 5492 - 5493 [+] 0. secs (0.u,0.s) -Chars 5494 - 5502 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5507 - 5614 [dependent~destruction~H3;~depe...] 0.008 secs (0.008u,0.s) -Chars 5619 - 5637 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5638 - 5645 [intros.] 0. secs (0.u,0.s) -Chars 5646 - 5656 [eapply~IH.] 0. secs (0.u,0.s) -Chars 5657 - 5667 [apply~REL.] 0. secs (0.u,0.s) -Chars 5668 - 5679 [apply~REL0.] 0. secs (0.u,0.s) -Chars 5680 - 5693 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 5696 - 5697 [+] 0. secs (0.u,0.s) -Chars 5698 - 5706 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 5707 - 5719 [constructor.] 0. secs (0.u,0.s) -Chars 5720 - 5737 [eapply~IH;~eauto.] 0. secs (0.u,0.s) -Chars 5740 - 5741 [+] 0. secs (0.u,0.s) -Chars 5742 - 5750 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 5755 - 5862 [dependent~destruction~H4;~depe...] 0.01 secs (0.01u,0.s) -Chars 5867 - 5885 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5886 - 5893 [intros.] 0. secs (0.u,0.s) -Chars 5894 - 5904 [eapply~IH.] 0. secs (0.u,0.s) -Chars 5905 - 5915 [apply~REL.] 0. secs (0.u,0.s) -Chars 5916 - 5927 [apply~REL0.] 0. secs (0.u,0.s) -Chars 5928 - 5941 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 5944 - 5945 [+] 0. secs (0.u,0.s) -Chars 5946 - 5954 [inv~Ht1.] 0.02 secs (0.019u,0.s) -Chars 5955 - 5967 [constructor.] 0. secs (0.u,0.s) -Chars 5968 - 5990 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 5991 - 6002 [now~unstep.] 0.004 secs (0.004u,0.s) -Chars 6005 - 6006 [+] 0. secs (0.u,0.s) -Chars 6007 - 6015 [inv~Ht2.] 0.018 secs (0.018u,0.s) -Chars 6016 - 6028 [constructor.] 0. secs (0.u,0.s) -Chars 6029 - 6051 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 6052 - 6063 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 6066 - 6067 [+] 0. secs (0.u,0.s) -Chars 6068 - 6076 [inv~Ht1.] 0.021 secs (0.021u,0.s) -Chars 6077 - 6089 [constructor.] 0. secs (0.u,0.s) -Chars 6090 - 6112 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 6113 - 6124 [now~unstep.] 0.002 secs (0.002u,0.s) -Chars 6127 - 6128 [+] 0. secs (0.u,0.s) -Chars 6129 - 6137 [inv~Ht2.] 0.02 secs (0.02u,0.s) -Chars 6138 - 6150 [constructor.] 0. secs (0.u,0.s) -Chars 6151 - 6173 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 6174 - 6185 [now~unstep.] 0.003 secs (0.003u,0.s) -Chars 6186 - 6190 [Qed.] 0.045 secs (0.045u,0.s) -Chars 6192 - 6355 [#[global]~Instance~eq_proper_r...] 0. secs (0.u,0.s) -Chars 6356 - 6362 [Proof.] 0. secs (0.u,0.s) -Chars 6365 - 6377 [unfold~rutt.] 0. secs (0.u,0.s) -Chars 6378 - 6407 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) -Chars 6410 - 6438 [apply~eq_proper_ruttC;~auto.] 0. secs (0.u,0.s) -Chars 6439 - 6443 [Qed.] 0. secs (0.u,0.s) -Chars 6445 - 6702 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) -Chars 6703 - 6709 [Proof.] 0. secs (0.u,0.s) -Chars 6712 - 6786 [intros~REv1~REv2~HREv~RAns1~RA...] 0. secs (0.u,0.s) -Chars 6789 - 6806 [rewrite~Ht1,~Ht2.] 0.001 secs (0.001u,0.s) -Chars 6807 - 6833 [apply~rutt_Proper_R;~auto.] 0.003 secs (0.003u,0.s) -Chars 6834 - 6838 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6840 - 7035 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 7036 - 7042 [Proof.] 0. secs (0.u,0.s) -Chars 7045 - 7083 [unfold~Proper,~respectful,~fli...] 0. secs (0.u,0.s) -Chars 7086 - 7102 [tower~induction.] 0.002 secs (0.002u,0.s) -Chars 7105 - 7170 [clear~c;~intros~c~IH~x~x'~EQx~...] 0. secs (0.u,0.s) -Chars 7173 - 7189 [rcbn;~intros~EQ.] 0. secs (0.u,0.s) -Chars 7192 - 7221 [genobs~x'~ox';~genobs~y'~oy'.] 0. secs (0.u,0.s) -Chars 7224 - 7263 [revert~x~x'~y~y'~Heqox'~Heqoy'...] 0. secs (0.u,0.s) -Chars 7266 - 7287 [induction~EQ;~intros.] 0. secs (0.u,0.s) -Chars 7305 - 7306 [-] 0. secs (0.u,0.s) -Chars 7307 - 7333 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7338 - 7350 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 7351 - 7365 [genret~r1~or1.] 0. secs (0.u,0.s) -Chars 7366 - 7381 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7386 - 7421 [hinduction~EQx~before~ox;~try~...] 0.031 secs (0.031u,0.s) -Chars 7426 - 7427 [+] 0. secs (0.u,0.s) -Chars 7428 - 7454 [intros;~subst;~inv~Heqor1.] 0.004 secs (0.004u,0.s) -Chars 7455 - 7469 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 7476 - 7488 [genobs~y~oy.] 0. secs (0.u,0.s) -Chars 7489 - 7503 [genret~r2~or2.] 0. secs (0.u,0.s) -Chars 7504 - 7519 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7526 - 7561 [hinduction~EQy~before~oy;~try~...] 0.02 secs (0.02u,0.s) -Chars 7568 - 7569 [*] 0. secs (0.u,0.s) -Chars 7570 - 7594 [subst;~intros~[=<-]~?~?.] 0. secs (0.u,0.s) -Chars 7595 - 7607 [constructor.] 0. secs (0.u,0.s) -Chars 7608 - 7613 [auto.] 0. secs (0.u,0.s) -Chars 7620 - 7621 [*] 0. secs (0.u,0.s) -Chars 7622 - 7629 [intros.] 0. secs (0.u,0.s) -Chars 7630 - 7649 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 7650 - 7670 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) -Chars 7675 - 7676 [+] 0. secs (0.u,0.s) -Chars 7677 - 7691 [intros;~subst.] 0. secs (0.u,0.s) -Chars 7692 - 7711 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 7712 - 7732 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) -Chars 7750 - 7751 [-] 0. secs (0.u,0.s) -Chars 7752 - 7778 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 7783 - 7795 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 7796 - 7810 [gentau~m1~om1.] 0. secs (0.u,0.s) -Chars 7811 - 7826 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 7831 - 7866 [hinduction~EQx~before~ox;~try~...] 0.032 secs (0.032u,0.s) -Chars 7871 - 7872 [+] 0. secs (0.u,0.s) -Chars 7873 - 7890 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) -Chars 7897 - 7909 [genobs~y~oy.] 0. secs (0.u,0.s) -Chars 7910 - 7924 [gentau~m2~om2.] 0. secs (0.u,0.s) -Chars 7925 - 7940 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 7947 - 7982 [hinduction~EQy~before~oy;~try~...] 0.03 secs (0.03u,0.s) -Chars 7989 - 7990 [*] 0. secs (0.u,0.s) -Chars 7991 - 8008 [intros~[=<-]~?~?.] 0. secs (0.u,0.s) -Chars 8009 - 8022 [to_rmon_core.] 0. secs (0.u,0.s) -Chars 8023 - 8034 [intros~?~?.] 0. secs (0.u,0.s) -Chars 8035 - 8040 [rcbn.] 0. secs (0.u,0.s) -Chars 8041 - 8053 [constructor.] 0. secs (0.u,0.s) -Chars 8054 - 8071 [eapply~IH;~eauto.] 0. secs (0.u,0.s) -Chars 8078 - 8079 [*] 0. secs (0.u,0.s) -Chars 8080 - 8087 [intros.] 0. secs (0.u,0.s) -Chars 8088 - 8107 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 8108 - 8128 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) -Chars 8133 - 8134 [+] 0. secs (0.u,0.s) -Chars 8135 - 8149 [intros;~subst.] 0. secs (0.u,0.s) -Chars 8150 - 8169 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 8170 - 8190 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) -Chars 8208 - 8209 [-] 0. secs (0.u,0.s) -Chars 8210 - 8236 [clear~x'~y'~Heqox'~Heqoy'.] 0. secs (0.u,0.s) -Chars 8241 - 8253 [genobs~x~ox.] 0. secs (0.u,0.s) -Chars 8254 - 8271 [genvis~e1~k1~ot1.] 0. secs (0.u,0.s) -Chars 8272 - 8287 [revert~x~Heqox.] 0. secs (0.u,0.s) -Chars 8292 - 8327 [hinduction~EQx~before~ox;~try~...] 0.032 secs (0.032u,0.s) -Chars 8332 - 8333 [+] 0. secs (0.u,0.s) -Chars 8334 - 8341 [intros.] 0. secs (0.u,0.s) -Chars 8342 - 8408 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) -Chars 8415 - 8429 [clear~x~Heqox.] 0. secs (0.u,0.s) -Chars 8436 - 8448 [genobs~y~oy.] 0. secs (0.u,0.s) -Chars 8449 - 8466 [genvis~e2~k2~ot2.] 0. secs (0.u,0.s) -Chars 8467 - 8482 [revert~y~Heqoy.] 0. secs (0.u,0.s) -Chars 8489 - 8524 [hinduction~EQy~before~oy;~try~...] 0.021 secs (0.021u,0.s) -Chars 8531 - 8532 [*] 0. secs (0.u,0.s) -Chars 8533 - 8540 [intros.] 0. secs (0.u,0.s) -Chars 8541 - 8607 [apply~eq_inv_VisF_weak~in~Heqo...] 0.001 secs (0.001u,0.s) -Chars 8616 - 8634 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 8635 - 8642 [intros.] 0. secs (0.u,0.s) -Chars 8643 - 8653 [eapply~IH.] 0. secs (0.u,0.s) -Chars 8654 - 8668 [apply~(REL~a).] 0. secs (0.u,0.s) -Chars 8669 - 8684 [apply~(REL0~b).] 0. secs (0.u,0.s) -Chars 8685 - 8700 [apply~H0;~auto.] 0. secs (0.u,0.s) -Chars 8707 - 8708 [*] 0. secs (0.u,0.s) -Chars 8709 - 8716 [intros.] 0. secs (0.u,0.s) -Chars 8717 - 8736 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 8737 - 8757 [eapply~IHEQy;~eauto.] 0. secs (0.u,0.s) -Chars 8762 - 8763 [+] 0. secs (0.u,0.s) -Chars 8764 - 8778 [intros;~subst.] 0. secs (0.u,0.s) -Chars 8779 - 8798 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 8799 - 8819 [eapply~IHEQx;~eauto.] 0. secs (0.u,0.s) -Chars 8838 - 8839 [-] 0. secs (0.u,0.s) -Chars 8840 - 8884 [edestruct~euttge_tau_r_inv;~[~...] 0.004 secs (0.004u,0.s) -Chars 8889 - 8897 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 8902 - 8921 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 8926 - 8945 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 8950 - 9001 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 9006 - 9043 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 9062 - 9063 [-] 0. secs (0.u,0.s) -Chars 9064 - 9108 [edestruct~euttge_tau_r_inv;~[~...] 0.003 secs (0.003u,0.s) -Chars 9113 - 9121 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 9126 - 9145 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 9150 - 9169 [eapply~IHEQ;~eauto.] 0. secs (0.u,0.s) -Chars 9174 - 9225 [assert~(euttge~eq~(Tau~x0)~(Ta...] 0.001 secs (0.001u,0.s) -Chars 9230 - 9267 [unstep;~eapply~euttge_tau_inv;...] 0.003 secs (0.003u,0.s) -Chars 9268 - 9272 [Qed.] 0.02 secs (0.02u,0.s) -Chars 9274 - 9443 [#[global]~Instance~euttge_prop...] 0. secs (0.u,0.s) -Chars 9444 - 9450 [Proof.] 0. secs (0.u,0.s) -Chars 9453 - 9465 [unfold~rutt.] 0. secs (0.u,0.s) -Chars 9466 - 9495 [intros~t1~t1'~Ht1~t2~t2'~Ht2.] 0. secs (0.u,0.s) -Chars 9498 - 9530 [apply~euttge_proper_ruttC;~auto.] 0. secs (0.u,0.s) -Chars 9531 - 9535 [Qed.] 0. secs (0.u,0.s) -Chars 9537 - 9705 [Lemma~rutt_cong_eutt~{E1}~{E2}...] 0. secs (0.u,0.s) -Chars 9706 - 9712 [Proof.] 0. secs (0.u,0.s) -Chars 9715 - 9766 [intros~*~Hrutt~Heutt;~revert~t...] 0. secs (0.u,0.s) -Chars 9769 - 9823 [coinduction~c~CIH;~icbn;~intro...] 0.001 secs (0.001u,0.s) -Chars 9826 - 9840 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 9843 - 9876 [rewrite~(itree_eta~t1')~in~Heutt.] 0.018 secs (0.018u,0.s) -Chars 9879 - 9917 [remember~(observe~t1)~as~ot1~e...] 0. secs (0.u,0.s) -Chars 9920 - 9958 [remember~(observe~t2)~as~ot2~e...] 0. secs (0.u,0.s) -Chars 9961 - 10003 [move~Hrutt~before~CIH;~revert_...] 0. secs (0.u,0.s) -Chars 10006 - 10090 [induction~Hrutt~as~[r1~r2|~m1~...] 0. secs (0.u,0.s) -Chars 10093 - 10094 [-] 0. secs (0.u,0.s) -Chars 10111 - 10126 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10127 - 10141 [cbn~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10146 - 10173 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10174 - 10200 [clear~Hot1'~Hot2'~tt1~tt2.] 0. secs (0.u,0.s) -Chars 10205 - 10244 [remember~(RetF~r1)~as~oRetL~eq...] 0. secs (0.u,0.s) -Chars 10249 - 10284 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) -Chars 10289 - 10290 [+] 0. secs (0.u,0.s) -Chars 10291 - 10302 [inv~HoRetL.] 0.002 secs (0.002u,0.s) -Chars 10303 - 10319 [now~constructor.] 0. secs (0.u,0.s) -Chars 10324 - 10325 [+] 0. secs (0.u,0.s) -Chars 10326 - 10339 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 10340 - 10359 [now~apply~IHHeutt'.] 0. secs (0.u,0.s) -Chars 10362 - 10363 [-] 0. secs (0.u,0.s) -Chars 10380 - 10395 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10396 - 10410 [cbn~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10415 - 10442 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) -Chars 10443 - 10459 [clear~tt1~Hot1'.] 0. secs (0.u,0.s) -Chars 10464 - 10480 [clear~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 10485 - 10495 [step~in~H.] 0. secs (0.u,0.s) -Chars 10496 - 10506 [rcbn~in~H.] 0. secs (0.u,0.s) -Chars 10511 - 10550 [remember~(TauF~m1)~as~oTauL~eq...] 0. secs (0.u,0.s) -Chars 10555 - 10577 [revert~m1~m2~H~HoTauL.] 0. secs (0.u,0.s) -Chars 10582 - 10713 [induction~Heutt'~~as~[r1~r2~_|...] 0.001 secs (0.001u,0.s) -Chars 10718 - 10719 [+] 0. secs (0.u,0.s) -Chars 10748 - 10759 [inv~HoTauL.] 0.008 secs (0.008u,0.s) -Chars 10760 - 10772 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 10773 - 10791 [apply~CIH~with~m1.] 0. secs (0.u,0.s) -Chars 10798 - 10799 [*] 0. secs (0.u,0.s) -Chars 10800 - 10810 [apply~REL.] 0. secs (0.u,0.s) -Chars 10817 - 10818 [*] 0. secs (0.u,0.s) -Chars 10819 - 10831 [unfold~rutt.] 0. secs (0.u,0.s) -Chars 10832 - 10837 [step.] 0. secs (0.u,0.s) -Chars 10838 - 10846 [exact~H.] 0. secs (0.u,0.s) -Chars 10851 - 10852 [+] 0. secs (0.u,0.s) -Chars 10914 - 10925 [inv~HoTauL.] 0.01 secs (0.01u,0.s) -Chars 10932 - 10991 [destruct~(observe~m1)~as~[r1|~...] 0.001 secs (0.001u,0.s) -Chars 10998 - 10999 [*] 0. secs (0.u,0.s) -Chars 11026 - 11065 [remember~(RetF~r1)~as~oRetL~eq...] 0.001 secs (0.001u,0.s) -Chars 11074 - 11102 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) -Chars 11111 - 11120 [revert~H.] 0. secs (0.u,0.s) -Chars 11129 - 11174 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) -Chars 11183 - 11185 [**] 0. secs (0.u,0.s) -Chars 11186 - 11197 [inv~HoRetL.] 0.004 secs (0.004u,0.s) -Chars 11209 - 11222 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 11234 - 11275 [remember~(RetF~r1)~as~oRetL2~e...] 0. secs (0.u,0.s) -Chars 11287 - 11317 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) -Chars 11329 - 11332 [***] 0. secs (0.u,0.s) -Chars 11333 - 11345 [inv~HoRetL2.] 0.002 secs (0.002u,0.s) -Chars 11346 - 11358 [constructor.] 0. secs (0.u,0.s) -Chars 11359 - 11369 [now~subst.] 0. secs (0.u,0.s) -Chars 11381 - 11384 [***] 0. secs (0.u,0.s) -Chars 11385 - 11398 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 11399 - 11417 [now~apply~IHruttF.] 0. secs (0.u,0.s) -Chars 11426 - 11428 [**] 0. secs (0.u,0.s) -Chars 11429 - 11442 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 11443 - 11466 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) -Chars 11473 - 11474 [*] 0. secs (0.u,0.s) -Chars 11506 - 11542 [apply~(IHIHHeutt'~m1_body~m2);...] 0. secs (0.u,0.s) -Chars 11551 - 11578 [apply~ruttF_inv_tau_l~in~H.] 0. secs (0.u,0.s) -Chars 11579 - 11587 [exact~H.] 0. secs (0.u,0.s) -Chars 11594 - 11595 [*] 0. secs (0.u,0.s) -Chars 11625 - 11667 [remember~(VisF~e1~k1)~as~oVisL...] 0.001 secs (0.001u,0.s) -Chars 11676 - 11704 [clear~Hobs_m1~m1~IHIHHeutt'.] 0. secs (0.u,0.s) -Chars 11713 - 11722 [revert~H.] 0. secs (0.u,0.s) -Chars 11731 - 11776 [induction~IHHeutt';~try~discri...] 0.001 secs (0.001u,0.s) -Chars 11785 - 11787 [**] 0. secs (0.u,0.s) -Chars 11788 - 11837 [symmetry~in~HoVisL;~dependent~...] 0.003 secs (0.003u,0.s) -Chars 11849 - 11862 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 11874 - 11917 [remember~(VisF~e~k0)~as~oVisL2...] 0. secs (0.u,0.s) -Chars 11929 - 11959 [induction~H;~try~discriminate.] 0.001 secs (0.001u,0.s) -Chars 11971 - 11974 [***] 0. secs (0.u,0.s) -Chars 11975 - 12005 [dependent~destruction~HoVisL2.] 0.003 secs (0.003u,0.s) -Chars 12021 - 12039 [apply~EqVis;~auto.] 0. secs (0.u,0.s) -Chars 12040 - 12056 [intros~a~b~HAns.] 0. secs (0.u,0.s) -Chars 12072 - 12094 [apply~CIH~with~(k0~a).] 0. secs (0.u,0.s) -Chars 12110 - 12114 [****] 0. secs (0.u,0.s) -Chars 12115 - 12125 [apply~REL.] 0. secs (0.u,0.s) -Chars 12141 - 12145 [****] 0. secs (0.u,0.s) -Chars 12146 - 12161 [apply~H0;~auto.] 0. secs (0.u,0.s) -Chars 12173 - 12176 [***] 0. secs (0.u,0.s) -Chars 12177 - 12190 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 12191 - 12211 [apply~IHruttF;~auto.] 0. secs (0.u,0.s) -Chars 12220 - 12222 [**] 0. secs (0.u,0.s) -Chars 12223 - 12236 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 12237 - 12260 [apply~IHIHHeutt';~auto.] 0. secs (0.u,0.s) -Chars 12265 - 12266 [+] 0. secs (0.u,0.s) -Chars 12296 - 12308 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 12309 - 12327 [apply~CIH~with~m1.] 0. secs (0.u,0.s) -Chars 12334 - 12335 [*] 0. secs (0.u,0.s) -Chars 12336 - 12369 [rewrite~<-~tau_eutt~with~(t~:=...] 0. secs (0.u,0.s) -Chars 12370 - 12375 [step.] 0.001 secs (0.001u,0.s) -Chars 12376 - 12387 [subst~t1''.] 0. secs (0.u,0.s) -Chars 12388 - 12401 [exact~Heutt'.] 0. secs (0.u,0.s) -Chars 12408 - 12409 [*] 0. secs (0.u,0.s) -Chars 12410 - 12422 [unfold~rutt.] 0. secs (0.u,0.s) -Chars 12423 - 12428 [step.] 0. secs (0.u,0.s) -Chars 12429 - 12437 [exact~H.] 0. secs (0.u,0.s) -Chars 12440 - 12441 [-] 0. secs (0.u,0.s) -Chars 12458 - 12473 [step~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12474 - 12488 [cbn~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12493 - 12520 [rewrite~<-~Hot1'~in~Heutt'.] 0. secs (0.u,0.s) -Chars 12521 - 12547 [clear~tt1~Hot1'~tt2~Hot2'.] 0. secs (0.u,0.s) -Chars 12552 - 12594 [remember~(VisF~e1~k1)~as~oVisL...] 0. secs (0.u,0.s) -Chars 12599 - 12642 [induction~Heutt';~try~discrimi...] 0.001 secs (0.001u,0.s) -Chars 12647 - 12648 [+] 0. secs (0.u,0.s) -Chars 12649 - 12678 [dependent~destruction~HoVisL.] 0.002 secs (0.002u,0.s) -Chars 12685 - 12703 [apply~EqVis;~auto.] 0. secs (0.u,0.s) -Chars 12704 - 12720 [intros~a~b~HAns.] 0. secs (0.u,0.s) -Chars 12727 - 12749 [apply~CIH~with~(k1~a).] 0. secs (0.u,0.s) -Chars 12756 - 12757 [*] 0. secs (0.u,0.s) -Chars 12758 - 12768 [apply~REL.] 0. secs (0.u,0.s) -Chars 12775 - 12776 [*] 0. secs (0.u,0.s) -Chars 12777 - 12792 [apply~H0;~auto.] 0. secs (0.u,0.s) -Chars 12797 - 12798 [+] 0. secs (0.u,0.s) -Chars 12799 - 12812 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 12813 - 12834 [apply~IHHeutt';~auto.] 0. secs (0.u,0.s) -Chars 12837 - 12838 [-] 0. secs (0.u,0.s) -Chars 12856 - 12919 [eapply~IHHrutt~with~(t1~:=~m1)...] 0. secs (0.u,0.s) -Chars 12924 - 12957 [rewrite~<-~tau_eutt~with~(t~:=...] 0. secs (0.u,0.s) -Chars 12958 - 12976 [rewrite~<-~Heutt'.] 0. secs (0.u,0.s) -Chars 12981 - 13005 [rewrite~(itree_eta~tt1).] 0.001 secs (0.001u,0.s) -Chars 13006 - 13023 [rewrite~<-~Hot1'.] 0. secs (0.u,0.s) -Chars 13024 - 13036 [reflexivity.] 0. secs (0.u,0.s) -Chars 13039 - 13040 [-] 0. secs (0.u,0.s) -Chars 13058 - 13071 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 13072 - 13094 [eapply~IHHrutt;~eauto.] 0. secs (0.u,0.s) -Chars 13095 - 13099 [Qed.] 0.028 secs (0.027u,0.s) -Chars 13101 - 13358 [#[global]~Instance~rutt_Proper...] 0. secs (0.u,0.s) -Chars 13359 - 13365 [Proof.] 0. secs (0.u,0.s) -Chars 13368 - 13439 [intros~REv~REv2~HREv~RAns~RAns...] 0. secs (0.u,0.s) -Chars 13442 - 13513 [rewrite~<-~HREv,~<-~HRAns,~<-~...] 0.006 secs (0.006u,0.s) -Chars 13516 - 13536 [split;~intros~Hrutt.] 0. secs (0.u,0.s) -Chars 13539 - 13540 [-] 0. secs (0.u,0.s) -Chars 13541 - 13570 [eapply~rutt_cong_eutt;~eauto.] 0.001 secs (0.001u,0.s) -Chars 13575 - 13598 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) -Chars 13599 - 13628 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) -Chars 13631 - 13632 [-] 0. secs (0.u,0.s) -Chars 13633 - 13654 [symmetry~in~Ht1,~Ht2.] 0. secs (0.u,0.s) -Chars 13659 - 13688 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) -Chars 13693 - 13716 [rewrite~rutt_flip~in~*.] 0. secs (0.u,0.s) -Chars 13717 - 13746 [eapply~rutt_cong_eutt;~eauto.] 0. secs (0.u,0.s) -Chars 13747 - 13751 [Qed.] 0.002 secs (0.002u,0.s) -Chars 13790 - 13807 [Section~RuttBind.] 0. secs (0.u,0.s) -Chars 13808 - 13839 [Context~{E1~E2~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 13840 - 13863 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) -Chars 13864 - 13922 [Context~(REv~:~forall~A~B~:~Ty...] 0. secs (0.u,0.s) -Chars 13923 - 13992 [Context~(RAns~:~forall~A~B~:~T...] 0. secs (0.u,0.s) -Chars 13993 - 14025 [Context~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 14027 - 14040 [End~RuttBind.] 0. secs (0.u,0.s) -Chars 14042 - 14415 [Lemma~rutt_bind~{E1}~{E2}~{R1}...] 0.001 secs (0.001u,0.s) -Chars 14416 - 14422 [Proof.] 0. secs (0.u,0.s) -Chars 14425 - 14438 [revert~t1~t2.] 0. secs (0.u,0.s) -Chars 14439 - 14457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 14458 - 14463 [icbn.] 0. secs (0.u,0.s) -Chars 14464 - 14487 [intros~t1~t2~Hrutt~EQK.] 0. secs (0.u,0.s) -Chars 14490 - 14504 [step~in~Hrutt.] 0. secs (0.u,0.s) -Chars 14507 - 14521 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 14522 - 14536 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 14539 - 14575 [hinduction~Hrutt~before~CIH;~i...] 0. secs (0.u,0.s) -Chars 14578 - 14579 [-] 0. secs (0.u,0.s) -Chars 14594 - 14625 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 14630 - 14653 [specialize~(EQK~_~_~H).] 0. secs (0.u,0.s) -Chars 14659 - 14671 [step~in~EQK.] 0. secs (0.u,0.s) -Chars 14672 - 14686 [now~do~2~step.] 0.002 secs (0.002u,0.s) -Chars 14689 - 14690 [-] 0. secs (0.u,0.s) -Chars 14705 - 14736 [rewrite~!observe_bind;~simpobs.] 0.005 secs (0.005u,0.s) -Chars 14741 - 14753 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 14754 - 14770 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 14773 - 14774 [-] 0. secs (0.u,0.s) -Chars 14789 - 14820 [rewrite~!observe_bind;~simpobs.] 0.004 secs (0.004u,0.s) -Chars 14825 - 14843 [apply~EqVis;~auto.] 0.001 secs (0.001u,0.s) -Chars 14844 - 14860 [intros~a~b~HAns.] 0. secs (0.u,0.s) -Chars 14865 - 14881 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 14882 - 14895 [now~apply~H0.] 0. secs (0.u,0.s) -Chars 14899 - 14900 [-] 0. secs (0.u,0.s) -Chars 14916 - 14946 [rewrite~observe_bind;~simpobs.] 0.002 secs (0.002u,0.s) -Chars 14951 - 14964 [apply~EqTauL.] 0. secs (0.u,0.s) -Chars 14965 - 14985 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) -Chars 14988 - 14989 [-] 0. secs (0.u,0.s) -Chars 15005 - 15047 [setoid_rewrite~observe_bind~at...] 0.018 secs (0.018u,0.s) -Chars 15052 - 15065 [apply~EqTauR.] 0. secs (0.u,0.s) -Chars 15066 - 15086 [apply~IHHrutt;~auto.] 0. secs (0.u,0.s) -Chars 15087 - 15091 [Qed.] 0.006 secs (0.006u,0.s) -Chars 15094 - 15111 [Section~RuttMrec.] 0. secs (0.u,0.s) -Chars 15114 - 15221 [Context~(D1~D2~E1~E2~:~Type~->...] 0. secs (0.u,0.s) -Chars 15224 - 15330 [Context~(RPre~:~prerel~E1~E2)~...] 0. secs (0.u,0.s) -Chars 15334 - 15592 [Context~~(Hbodies~:~forall~A~B...] 0. secs (0.u,0.s) -Chars 15596 - 15876 [Lemma~interp_mrec_rutt~(R1~R2~...] 0. secs (0.u,0.s) -Chars 15879 - 15885 [Proof.] 0. secs (0.u,0.s) -Chars 15890 - 15908 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 15909 - 15914 [icbn.] 0. secs (0.u,0.s) -Chars 15920 - 15938 [intros~t1~t2~Ht12.] 0. secs (0.u,0.s) -Chars 15939 - 15952 [step~in~Ht12.] 0. secs (0.u,0.s) -Chars 15958 - 15987 [remember~(observe~t1)~as~ot1.] 0. secs (0.u,0.s) -Chars 15988 - 16017 [remember~(observe~t2)~as~ot2.] 0. secs (0.u,0.s) -Chars 16022 - 16065 [hinduction~Ht12~before~R1;~int...] 0.002 secs (0.002u,0.s) -Chars 16071 - 16072 [-] 0. secs (0.u,0.s) -Chars 16073 - 16105 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) -Chars 16106 - 16129 [rewrite~Heqot1,~Heqot2.] 0.13 secs (0.13u,0.s) -Chars 16136 - 16170 [repeat~rewrite~unfold_interp_m...] 0.131 secs (0.131u,0.s) -Chars 16171 - 16175 [cbn.] 0. secs (0.u,0.s) -Chars 16176 - 16192 [now~constructor.] 0. secs (0.u,0.s) -Chars 16199 - 16200 [-] 0. secs (0.u,0.s) -Chars 16201 - 16233 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) -Chars 16234 - 16257 [rewrite~Heqot1,~Heqot2.] 0.134 secs (0.133u,0.s) -Chars 16264 - 16298 [repeat~rewrite~unfold_interp_m...] 0.133 secs (0.132u,0.s) -Chars 16299 - 16303 [cbn.] 0. secs (0.u,0.s) -Chars 16304 - 16331 [constructor;~now~apply~CIH.] 0. secs (0.u,0.s) -Chars 16337 - 16338 [-] 0. secs (0.u,0.s) -Chars 16339 - 16371 [apply~simpobs~in~Heqot1,~Heqot2.] 0. secs (0.u,0.s) -Chars 16372 - 16395 [rewrite~Heqot1,~Heqot2.] 0.133 secs (0.133u,0.s) -Chars 16402 - 16436 [repeat~rewrite~unfold_interp_m...] 0.136 secs (0.135u,0.s) -Chars 16437 - 16441 [cbn.] 0. secs (0.u,0.s) -Chars 16448 - 16454 [inv~H.] 0.014 secs (0.013u,0.s) -Chars 16461 - 16462 [+] 0. secs (0.u,0.s) -Chars 16463 - 16489 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) -Chars 16490 - 16496 [subst.] 0.001 secs (0.001u,0.s) -Chars 16497 - 16509 [constructor.] 0. secs (0.u,0.s) -Chars 16518 - 16529 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 16540 - 16564 [eapply~rutt_bind;~eauto.] 0.001 secs (0.001u,0.s) -Chars 16573 - 16580 [intros.] 0. secs (0.u,0.s) -Chars 16581 - 16590 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 16591 - 16604 [clear~-~H~H0.] 0. secs (0.u,0.s) -Chars 16605 - 16614 [apply~H0.] 0. secs (0.u,0.s) -Chars 16615 - 16631 [now~constructor.] 0. secs (0.u,0.s) -Chars 16638 - 16639 [+] 0. secs (0.u,0.s) -Chars 16640 - 16666 [apply~inj_pair2~in~H1,~H4.] 0. secs (0.u,0.s) -Chars 16667 - 16673 [subst.] 0.001 secs (0.001u,0.s) -Chars 16674 - 16686 [constructor.] 0. secs (0.u,0.s) -Chars 16695 - 16700 [auto.] 0. secs (0.u,0.s) -Chars 16701 - 16708 [intros.] 0. secs (0.u,0.s) -Chars 16709 - 16735 [repeat~rewrite~tau_euttge.] 0.004 secs (0.004u,0.s) -Chars 16736 - 16747 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 16757 - 16770 [clear~-~H0~H.] 0. secs (0.u,0.s) -Chars 16771 - 16780 [apply~H0.] 0. secs (0.u,0.s) -Chars 16781 - 16797 [now~constructor.] 0. secs (0.u,0.s) -Chars 16803 - 16804 [-] 0. secs (0.u,0.s) -Chars 16805 - 16829 [apply~simpobs~in~Heqot1.] 0. secs (0.u,0.s) -Chars 16830 - 16845 [rewrite~Heqot1.] 0.069 secs (0.068u,0.s) -Chars 16846 - 16878 [rewrite~unfold_interp_mrec~~at~1.] 0.067 secs (0.067u,0.s) -Chars 16886 - 16890 [cbn.] 0. secs (0.u,0.s) -Chars 16891 - 16903 [constructor.] 0. secs (0.u,0.s) -Chars 16904 - 16921 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 16927 - 16928 [-] 0. secs (0.u,0.s) -Chars 16929 - 16953 [apply~simpobs~in~Heqot2.] 0. secs (0.u,0.s) -Chars 16954 - 16969 [rewrite~Heqot2.] 0.068 secs (0.068u,0.s) -Chars 16970 - 17009 [setoid_rewrite~unfold_interp_m...] 0.08 secs (0.08u,0.s) -Chars 17016 - 17020 [cbn.] 0. secs (0.u,0.s) -Chars 17021 - 17033 [constructor.] 0. secs (0.u,0.s) -Chars 17034 - 17051 [now~apply~IHHt12.] 0. secs (0.u,0.s) -Chars 17055 - 17059 [Qed.] 0.015 secs (0.015u,0.s) -Chars 17063 - 17258 [Lemma~mrec_rutt~(A~B~:~Type)~(...] 0. secs (0.u,0.s) -Chars 17261 - 17267 [Proof.] 0. secs (0.u,0.s) -Chars 17272 - 17279 [intros.] 0. secs (0.u,0.s) -Chars 17280 - 17303 [apply~interp_mrec_rutt.] 0. secs (0.u,0.s) -Chars 17304 - 17309 [auto.] 0. secs (0.u,0.s) -Chars 17312 - 17316 [Qed.] 0. secs (0.u,0.s) -Chars 17318 - 17331 [End~RuttMrec.] 0. secs (0.u,0.s) diff --git a/theories/Eq/Shallow.v.timing b/theories/Eq/Shallow.v.timing deleted file mode 100644 index 486b11ed..00000000 --- a/theories/Eq/Shallow.v.timing +++ /dev/null @@ -1,102 +0,0 @@ -Chars 261 - 298 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 300 - 347 [From~ITree~Require~Import~Core...] 0.026 secs (0.021u,0.005s) -Chars 349 - 372 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 389 - 523 [Definition~eqeq~{A~:~Type}~(P~...] 0. secs (0.u,0.s) -Chars 525 - 720 [Definition~pweqeq~{R1}~{R2}~(R...] 0. secs (0.u,0.s) -Chars 722 - 889 [Lemma~pweqeq_mon~{R1}~{R2}~(RR...] 0. secs (0.u,0.s) -Chars 890 - 896 [Proof.] 0. secs (0.u,0.s) -Chars 899 - 921 [destruct~p;~cbn;~auto.] 0. secs (0.u,0.s) -Chars 922 - 926 [Qed.] 0. secs (0.u,0.s) -Chars 928 - 1163 [Lemma~eq_inv_VisF_weak~{E}~{R}...] 0. secs (0.u,0.s) -Chars 1164 - 1170 [Proof.] 0. secs (0.u,0.s) -Chars 1173 - 1331 [refine~~~(fun~H~=>~~~~match~~~...] 0.002 secs (0.002u,0.s) -Chars 1334 - 1360 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) -Chars 1361 - 1365 [Qed.] 0. secs (0.u,0.s) -Chars 1367 - 1526 [Ltac~~inv_Vis~:=~~~discriminat...] 0. secs (0.u,0.s) -Chars 1585 - 1798 [Record~observing~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 1799 - 1845 [#[global]~Hint~Constructors~ob...] 0. secs (0.u,0.s) -Chars 1847 - 1875 [Section~observing_relations.] 0. secs (0.u,0.s) -Chars 1877 - 1915 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 1916 - 1966 [Variable~(eq_~:~itree'~E~R~->~...] 0. secs (0.u,0.s) -Chars 1968 - 2056 [#[global]~Instance~observing_o...] 0. secs (0.u,0.s) -Chars 2057 - 2063 [Proof.] 0. secs (0.u,0.s) -Chars 2064 - 2089 [intros~?~?~[];~compute;~auto.] 0. secs (0.u,0.s) -Chars 2090 - 2094 [Qed.] 0. secs (0.u,0.s) -Chars 2096 - 2171 [#[global]~Instance~observing_g...] 0. secs (0.u,0.s) -Chars 2172 - 2178 [Proof.] 0. secs (0.u,0.s) -Chars 2179 - 2200 [compute;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 2201 - 2205 [Qed.] 0. secs (0.u,0.s) -Chars 2207 - 2326 [#[global]~Instance~monotonic_o...] 0. secs (0.u,0.s) -Chars 2327 - 2333 [Proof.] 0. secs (0.u,0.s) -Chars 2334 - 2373 [intros~?~?~?~[];~compute;~eaut...] 0. secs (0.u,0.s) -Chars 2374 - 2378 [Qed.] 0. secs (0.u,0.s) -Chars 2380 - 2472 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 2473 - 2502 [Proof~with~auto~with~itree.] 0. secs (0.u,0.s) -Chars 2505 - 2529 [intros~[];~split;~compute~...] 0.012 secs (0.011u,0.001s) -Chars 2532 - 2533 [-] 0. secs (0.u,0.s) -Chars 2534 - 2556 [intros~?~?~[];~auto~...] 0. secs (0.u,0.s) -Chars 2559 - 2560 [-] 0. secs (0.u,0.s) -Chars 2561 - 2598 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) -Chars 2599 - 2603 [Qed.] 0. secs (0.u,0.s) -Chars 2605 - 2629 [End~observing_relations.] 0. secs (0.u,0.s) -Chars 2670 - 2958 [Lemma~observe_bind~{E~:~Type~-...] 0. secs (0.u,0.s) -Chars 2959 - 2965 [Proof.] 0. secs (0.u,0.s) -Chars 2966 - 2978 [reflexivity.] 0. secs (0.u,0.s) -Chars 2979 - 2983 [Qed.] 0. secs (0.u,0.s) -Chars 2985 - 3097 [#[global]~Instance~observing_b...] 0. secs (0.u,0.s) -Chars 3098 - 3104 [Proof.] 0. secs (0.u,0.s) -Chars 3107 - 3127 [repeat~intro;~subst.] 0. secs (0.u,0.s) -Chars 3128 - 3140 [constructor.] 0. secs (0.u,0.s) -Chars 3141 - 3156 [unfold~observe.] 0. secs (0.u,0.s) -Chars 3157 - 3161 [cbn.] 0. secs (0.u,0.s) -Chars 3164 - 3194 [rewrite~(observing_observe~H).] 0. secs (0.u,0.s) -Chars 3195 - 3207 [reflexivity.] 0. secs (0.u,0.s) -Chars 3208 - 3212 [Qed.] 0. secs (0.u,0.s) -Chars 3214 - 3313 [Lemma~bind_ret_~{E}~{R}~{S}~(r...] 0. secs (0.u,0.s) -Chars 3314 - 3320 [Proof.] 0. secs (0.u,0.s) -Chars 3321 - 3346 [constructor;~reflexivity.] 0. secs (0.u,0.s) -Chars 3347 - 3351 [Qed.] 0. secs (0.u,0.s) -Chars 3353 - 3462 [Lemma~bind_tau_~{E}~{R}~U~t~(k...] 0. secs (0.u,0.s) -Chars 3463 - 3469 [Proof.] 0. secs (0.u,0.s) -Chars 3470 - 3495 [constructor;~reflexivity.] 0. secs (0.u,0.s) -Chars 3496 - 3500 [Qed.] 0. secs (0.u,0.s) -Chars 3502 - 3668 [Lemma~bind_vis_~{E}~{R}~{U}~{V...] 0. secs (0.u,0.s) -Chars 3669 - 3675 [Proof.] 0. secs (0.u,0.s) -Chars 3676 - 3701 [constructor;~reflexivity.] 0. secs (0.u,0.s) -Chars 3702 - 3706 [Qed.] 0. secs (0.u,0.s) -Chars 3802 - 3980 [Lemma~unfold_aloop_~{E}~{A}~{B...] 0. secs (0.u,0.s) -Chars 3981 - 3987 [Proof.] 0. secs (0.u,0.s) -Chars 3988 - 4013 [constructor;~reflexivity.] 0. secs (0.u,0.s) -Chars 4014 - 4018 [Qed.] 0. secs (0.u,0.s) -Chars 4058 - 4192 [Lemma~unfold_forever_~{E}~{R}~...] 0. secs (0.u,0.s) -Chars 4193 - 4199 [Proof.] 0. secs (0.u,0.s) -Chars 4200 - 4213 [econstructor.] 0. secs (0.u,0.s) -Chars 4214 - 4226 [reflexivity.] 0. secs (0.u,0.s) -Chars 4227 - 4231 [Qed.] 0. secs (0.u,0.s) -Chars 4282 - 4463 [Inductive~going~{E}~{R1}~{R2}~...] 0. secs (0.u,0.s) -Chars 4464 - 4506 [#[global]~Hint~Constructors~go...] 0. secs (0.u,0.s) -Chars 4508 - 4641 [Lemma~observing_going~{E}~{R1}...] 0. secs (0.u,0.s) -Chars 4642 - 4648 [Proof.] 0. secs (0.u,0.s) -Chars 4651 - 4674 [split;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 4677 - 4695 [intros~[[]];~auto.] 0. secs (0.u,0.s) -Chars 4696 - 4700 [Qed.] 0. secs (0.u,0.s) -Chars 4702 - 4726 [Section~going_relations.] 0. secs (0.u,0.s) -Chars 4728 - 4766 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 4767 - 4815 [Variable~(eq_~:~itree~E~R~->~i...] 0. secs (0.u,0.s) -Chars 4817 - 4884 [#[global]~Instance~going_go~:~...] 0. secs (0.u,0.s) -Chars 4885 - 4891 [Proof.] 0. secs (0.u,0.s) -Chars 4892 - 4912 [intros~?~?~[];~auto.] 0. secs (0.u,0.s) -Chars 4913 - 4917 [Qed.] 0. secs (0.u,0.s) -Chars 4919 - 5026 [#[global]~Instance~monotonic_g...] 0. secs (0.u,0.s) -Chars 5027 - 5033 [Proof.] 0. secs (0.u,0.s) -Chars 5034 - 5068 [intros~?~?~?~[];~eauto~with~it...] 0. secs (0.u,0.s) -Chars 5069 - 5073 [Qed.] 0. secs (0.u,0.s) -Chars 5075 - 5159 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 5160 - 5166 [Proof.] 0. secs (0.u,0.s) -Chars 5169 - 5215 [intros~[];~constructor;~comput...] 0.046 secs (0.046u,0.s) -Chars 5218 - 5219 [-] 0. secs (0.u,0.s) -Chars 5220 - 5251 [intros~?~?~[];~auto~with~itree.] 0. secs (0.u,0.s) -Chars 5254 - 5255 [-] 0. secs (0.u,0.s) -Chars 5256 - 5293 [intros~?~?~?~[]~[];~eauto~with...] 0. secs (0.u,0.s) -Chars 5294 - 5298 [Qed.] 0. secs (0.u,0.s) -Chars 5300 - 5320 [End~going_relations.] 0. secs (0.u,0.s) diff --git a/theories/Eq/SimUpToTaus.v.timing b/theories/Eq/SimUpToTaus.v.timing deleted file mode 100644 index add0108f..00000000 --- a/theories/Eq/SimUpToTaus.v.timing +++ /dev/null @@ -1,244 +0,0 @@ -Chars 535 - 571 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 573 - 635 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 637 - 748 [From~ITree~Require~Import~Axio...] 0.14 secs (0.125u,0.014s) -Chars 750 - 763 [Section~SUTT.] 0. secs (0.u,0.s) -Chars 765 - 831 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 833 - 1323 [Inductive~suttF~(sutt~:~itree'...] 0.002 secs (0.001u,0.s) -Chars 1324 - 1356 [Hint~Constructors~suttF:~itree.] 0. secs (0.u,0.s) -Chars 1358 - 1404 [Lemma~suttF_mono~:~Proper~(leq...] 0. secs (0.u,0.s) -Chars 1405 - 1411 [Proof.] 0. secs (0.u,0.s) -Chars 1414 - 1427 [repeat~intro.] 0. secs (0.u,0.s) -Chars 1430 - 1461 [induction~H0;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 1464 - 1499 [constructor;~intro;~apply~H,~S...] 0. secs (0.u,0.s) -Chars 1502 - 1531 [constructor;~apply~H,~EQTAUS.] 0. secs (0.u,0.s) -Chars 1532 - 1536 [Qed.] 0. secs (0.u,0.s) -Chars 1538 - 1603 [Definition~sutt_mon~:=~{|~body...] 0. secs (0.u,0.s) -Chars 1605 - 1701 [Definition~sutt~(t1~:~itree~E~...] 0. secs (0.u,0.s) -Chars 1702 - 1727 [Hint~Unfold~sutt:~itree.] 0. secs (0.u,0.s) -Chars 1729 - 1738 [End~SUTT.] 0. secs (0.u,0.s) -Chars 1740 - 1779 [#[global]~Hint~Constructors~su...] 0. secs (0.u,0.s) -Chars 1780 - 1812 [#[global]~Hint~Unfold~sutt:~it...] 0. secs (0.u,0.s) -Chars 1814 - 1831 [Section~SUTT_rel.] 0. secs (0.u,0.s) -Chars 1833 - 1893 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 1895 - 1995 [Lemma~reflexive_suttF~`{Reflex...] 0. secs (0.u,0.s) -Chars 1996 - 2002 [Proof.] 0. secs (0.u,0.s) -Chars 2005 - 2022 [unfold~Reflexive.] 0. secs (0.u,0.s) -Chars 2023 - 2032 [intros~x.] 0. secs (0.u,0.s) -Chars 2035 - 2064 [destruct~x;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 2065 - 2069 [Qed.] 0. secs (0.u,0.s) -Chars 2071 - 2084 [End~SUTT_rel.] 0. secs (0.u,0.s) -Chars 2086 - 2105 [Section~SUTT_facts.] 0. secs (0.u,0.s) -Chars 2107 - 2173 [Context~{E~:~Type~->~Type}~{R1...] 0. secs (0.u,0.s) -Chars 2175 - 2190 [End~SUTT_facts.] 0. secs (0.u,0.s) -Chars 2192 - 2411 [Lemma~suttF_inv_vis~{E}~{R1}~{...] 0. secs (0.u,0.s) -Chars 2412 - 2418 [Proof.] 0. secs (0.u,0.s) -Chars 2421 - 2428 [intros.] 0. secs (0.u,0.s) -Chars 2429 - 2435 [inv~H.] 0.003 secs (0.002u,0.s) -Chars 2436 - 2455 [ddestruction;~auto.] 0.002 secs (0.001u,0.s) -Chars 2456 - 2460 [Qed.] 0.002 secs (0.002u,0.s) -Chars 2462 - 2646 [Lemma~sutt_inv_vis~{E}~{R1}~{R...] 0. secs (0.u,0.s) -Chars 2647 - 2653 [Proof.] 0. secs (0.u,0.s) -Chars 2656 - 2663 [intros.] 0. secs (0.u,0.s) -Chars 2664 - 2674 [step~in~H.] 0. secs (0.u,0.s) -Chars 2675 - 2686 [simpl~in~H.] 0. secs (0.u,0.s) -Chars 2689 - 2729 [now~apply~(suttF_inv_vis~_~_~_...] 0. secs (0.u,0.s) -Chars 2730 - 2734 [Qed.] 0. secs (0.u,0.s) -Chars 2736 - 2884 [Lemma~sutt_tau_right~{E}~{R1}~...] 0. secs (0.u,0.s) -Chars 2885 - 2891 [Proof.] 0. secs (0.u,0.s) -Chars 2894 - 2901 [intros.] 0. secs (0.u,0.s) -Chars 2902 - 2907 [step.] 0. secs (0.u,0.s) -Chars 2908 - 2918 [step~in~H.] 0. secs (0.u,0.s) -Chars 2921 - 2933 [constructor.] 0. secs (0.u,0.s) -Chars 2934 - 2939 [auto.] 0. secs (0.u,0.s) -Chars 2940 - 2944 [Qed.] 0.02 secs (0.019u,0.001s) -Chars 2946 - 3093 [Lemma~sutt_tau_left~{E}~{R1}~{...] 0. secs (0.u,0.s) -Chars 3094 - 3100 [Proof.] 0. secs (0.u,0.s) -Chars 3103 - 3110 [intros.] 0. secs (0.u,0.s) -Chars 3111 - 3116 [step.] 0. secs (0.u,0.s) -Chars 3119 - 3131 [constructor.] 0. secs (0.u,0.s) -Chars 3132 - 3140 [exact~H.] 0. secs (0.u,0.s) -Chars 3141 - 3145 [Qed.] 0. secs (0.u,0.s) -Chars 3147 - 3298 [Lemma~sutt_elim_tau_right~{E}~...] 0. secs (0.u,0.s) -Chars 3299 - 3305 [Proof.] 0. secs (0.u,0.s) -Chars 3308 - 3326 [unfold~sutt~at~-~1.] 0. secs (0.u,0.s) -Chars 3327 - 3346 [icoinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3347 - 3362 [intros~t1~t2~H.] 0. secs (0.u,0.s) -Chars 3363 - 3373 [step~in~H.] 0. secs (0.u,0.s) -Chars 3376 - 3382 [inv~H.] 0.009 secs (0.009u,0.s) -Chars 3385 - 3386 [-] 0. secs (0.u,0.s) -Chars 3387 - 3422 [eapply~suttF_mono;~[~~|~exact~...] 0. secs (0.u,0.s) -Chars 3427 - 3439 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 3440 - 3464 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) -Chars 3467 - 3468 [-] 0. secs (0.u,0.s) -Chars 3469 - 3481 [constructor.] 0. secs (0.u,0.s) -Chars 3482 - 3492 [apply~CIH.] 0. secs (0.u,0.s) -Chars 3493 - 3506 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 3507 - 3511 [Qed.] 0.03 secs (0.03u,0.s) -Chars 3513 - 3723 [Lemma~suttF_inv_tau_left~{E}~{...] 0. secs (0.u,0.s) -Chars 3724 - 3730 [Proof.] 0. secs (0.u,0.s) -Chars 3733 - 3740 [intros.] 0. secs (0.u,0.s) -Chars 3743 - 3770 [remember~(TauF~t1)~as~ott1.] 0. secs (0.u,0.s) -Chars 3773 - 3853 [induction~H;~intros;~subst;~tr...] 0.005 secs (0.005u,0.s) -Chars 3856 - 3871 [step~in~EQTAUS.] 0. secs (0.u,0.s) -Chars 3872 - 3885 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 3886 - 3890 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3892 - 4041 [Lemma~sutt_inv_tau_left~{E}~{R...] 0. secs (0.u,0.s) -Chars 4042 - 4048 [Proof.] 0. secs (0.u,0.s) -Chars 4051 - 4058 [intros.] 0. secs (0.u,0.s) -Chars 4059 - 4069 [step~in~H.] 0. secs (0.u,0.s) -Chars 4070 - 4075 [step.] 0. secs (0.u,0.s) -Chars 4078 - 4109 [apply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) -Chars 4110 - 4114 [Qed.] 0. secs (0.u,0.s) -Chars 4116 - 4275 [Theorem~sutt_eutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) -Chars 4276 - 4282 [Proof.] 0. secs (0.u,0.s) -Chars 4285 - 4304 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4305 - 4324 [intros~t1~t2~H1~H2.] 0. secs (0.u,0.s) -Chars 4327 - 4338 [step~in~H1.] 0. secs (0.u,0.s) -Chars 4339 - 4350 [step~in~H2.] 0. secs (0.u,0.s) -Chars 4353 - 4398 [induction~H1;~intros;~subst;~a...] 0.005 secs (0.004u,0.s) -Chars 4401 - 4402 [-] 0. secs (0.u,0.s) -Chars 4423 - 4435 [constructor.] 0. secs (0.u,0.s) -Chars 4436 - 4444 [intro~x.] 0. secs (0.u,0.s) -Chars 4445 - 4455 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4460 - 4461 [+] 0. secs (0.u,0.s) -Chars 4462 - 4474 [unfold~sutt.] 0. secs (0.u,0.s) -Chars 4475 - 4491 [exact~(SUTTK~x).] 0. secs (0.u,0.s) -Chars 4496 - 4497 [+] 0. secs (0.u,0.s) -Chars 4498 - 4510 [unfold~sutt.] 0. secs (0.u,0.s) -Chars 4511 - 4550 [exact~(suttF_inv_vis~_~_~_~_~_...] 0. secs (0.u,0.s) -Chars 4553 - 4554 [-] 0. secs (0.u,0.s) -Chars 4581 - 4600 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 4601 - 4622 [eapply~IHsuttF;~auto.] 0. secs (0.u,0.s) -Chars 4623 - 4655 [eapply~suttF_inv_tau_left;~auto.] 0. secs (0.u,0.s) -Chars 4658 - 4659 [-] 0. secs (0.u,0.s) -Chars 4685 - 4692 [inv~H2.] 0.016 secs (0.016u,0.s) -Chars 4697 - 4698 [+] 0. secs (0.u,0.s) -Chars 4699 - 4711 [clear~t1~t2.] 0. secs (0.u,0.s) -Chars 4712 - 4726 [genobs~t0~ot0.] 0. secs (0.u,0.s) -Chars 4733 - 4778 [hinduction~EQTAUS0~before~CIH;...] 0.001 secs (0.001u,0.s) -Chars 4785 - 4786 [*] 0. secs (0.u,0.s) -Chars 4787 - 4806 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 4807 - 4815 [simpobs.] 0. secs (0.u,0.s) -Chars 4816 - 4828 [constructor.] 0. secs (0.u,0.s) -Chars 4829 - 4835 [eauto.] 0. secs (0.u,0.s) -Chars 4842 - 4843 [*] 0. secs (0.u,0.s) -Chars 4844 - 4863 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 4864 - 4872 [simpobs.] 0. secs (0.u,0.s) -Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) -Chars 4886 - 4894 [intro~x.] 0. secs (0.u,0.s) -Chars 4903 - 4913 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4922 - 4924 [--] 0. secs (0.u,0.s) -Chars 4925 - 4965 [exact~(sutt_inv_vis~_~_~_~_~_~...] 0. secs (0.u,0.s) -Chars 4974 - 4976 [--] 0. secs (0.u,0.s) -Chars 4977 - 4989 [unfold~sutt.] 0. secs (0.u,0.s) -Chars 4990 - 5002 [apply~SUTTK.] 0. secs (0.u,0.s) -Chars 5009 - 5010 [*] 0. secs (0.u,0.s) -Chars 5011 - 5030 [constructor;~eauto.] 0. secs (0.u,0.s) -Chars 5031 - 5039 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 5040 - 5064 [eapply~IHEQTAUS0;~eauto.] 0. secs (0.u,0.s) -Chars 5073 - 5098 [rewrite~(itree_eta'~ot1).] 0. secs (0.u,0.s) -Chars 5099 - 5123 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) -Chars 5124 - 5136 [unfold~sutt.] 0. secs (0.u,0.s) -Chars 5137 - 5150 [exact~EQTAUS.] 0. secs (0.u,0.s) -Chars 5157 - 5158 [*] 0. secs (0.u,0.s) -Chars 5159 - 5171 [constructor.] 0. secs (0.u,0.s) -Chars 5172 - 5188 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 5189 - 5221 [apply~sutt_elim_tau_right;~auto.] 0. secs (0.u,0.s) -Chars 5226 - 5227 [+] 0. secs (0.u,0.s) -Chars 5228 - 5240 [constructor.] 0. secs (0.u,0.s) -Chars 5241 - 5284 [apply~CIH;~apply~sutt_elim_tau...] 0. secs (0.u,0.s) -Chars 5285 - 5289 [Qed.] 0.01 secs (0.01u,0.s) -Chars 5291 - 5426 [Theorem~eutt_sutt~{E}~{R1}~{R2...] 0. secs (0.u,0.s) -Chars 5427 - 5433 [Proof.] 0. secs (0.u,0.s) -Chars 5436 - 5454 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5455 - 5470 [intros~t1~t2~H.] 0. secs (0.u,0.s) -Chars 5473 - 5483 [step~in~H.] 0. secs (0.u,0.s) -Chars 5486 - 5498 [induction~H.] 0. secs (0.u,0.s) -Chars 5501 - 5502 [-] 0. secs (0.u,0.s) -Chars 5503 - 5521 [constructor;~auto.] 0. secs (0.u,0.s) -Chars 5524 - 5525 [-] 0. secs (0.u,0.s) -Chars 5526 - 5538 [constructor.] 0. secs (0.u,0.s) -Chars 5539 - 5551 [constructor.] 0. secs (0.u,0.s) -Chars 5552 - 5562 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5563 - 5573 [exact~REL.] 0. secs (0.u,0.s) -Chars 5576 - 5577 [-] 0. secs (0.u,0.s) -Chars 5578 - 5590 [constructor.] 0. secs (0.u,0.s) -Chars 5591 - 5597 [intro.] 0. secs (0.u,0.s) -Chars 5598 - 5608 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5609 - 5619 [apply~REL.] 0. secs (0.u,0.s) -Chars 5622 - 5623 [-] 0. secs (0.u,0.s) -Chars 5624 - 5636 [constructor.] 0. secs (0.u,0.s) -Chars 5637 - 5642 [step.] 0. secs (0.u,0.s) -Chars 5643 - 5657 [exact~IHeqitF.] 0. secs (0.u,0.s) -Chars 5660 - 5661 [-] 0. secs (0.u,0.s) -Chars 5662 - 5674 [constructor.] 0. secs (0.u,0.s) -Chars 5675 - 5689 [exact~IHeqitF.] 0. secs (0.u,0.s) -Chars 5690 - 5694 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5752 - 6013 [Lemma~sutt_bind'~{E}~{R1}~{R2}...] 0. secs (0.u,0.s) -Chars 6014 - 6020 [Proof.] 0. secs (0.u,0.s) -Chars 6023 - 6041 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6042 - 6066 [intros~t1~t2~H~s1~s2~Hs.] 0. secs (0.u,0.s) -Chars 6069 - 6079 [step~in~H.] 0. secs (0.u,0.s) -Chars 6080 - 6100 [unfold~observe;~cbn.] 0. secs (0.u,0.s) -Chars 6103 - 6123 [induction~H;~intros.] 0. secs (0.u,0.s) -Chars 6126 - 6127 [-] 0. secs (0.u,0.s) -Chars 6128 - 6134 [simpl.] 0. secs (0.u,0.s) -Chars 6135 - 6149 [apply~Hs~in~H.] 0. secs (0.u,0.s) -Chars 6150 - 6160 [step~in~H.] 0. secs (0.u,0.s) -Chars 6165 - 6195 [eapply~suttF_mono;~[~~|~exact~...] 0.001 secs (0.001u,0.s) -Chars 6200 - 6212 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 6213 - 6237 [now~apply~(gfp_chain~c).] 0. secs (0.u,0.s) -Chars 6240 - 6241 [-] 0. secs (0.u,0.s) -Chars 6242 - 6248 [simpl.] 0. secs (0.u,0.s) -Chars 6249 - 6262 [econstructor.] 0. secs (0.u,0.s) -Chars 6263 - 6270 [intros.] 0. secs (0.u,0.s) -Chars 6271 - 6299 [apply~CIH;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 6302 - 6303 [-] 0. secs (0.u,0.s) -Chars 6304 - 6316 [constructor.] 0. secs (0.u,0.s) -Chars 6317 - 6323 [eauto.] 0. secs (0.u,0.s) -Chars 6326 - 6327 [-] 0. secs (0.u,0.s) -Chars 6328 - 6340 [constructor.] 0. secs (0.u,0.s) -Chars 6345 - 6425 [change~~~(elem~c~(observe~(ITr...] 0. secs (0.u,0.s) -Chars 6430 - 6446 [apply~CIH;~auto.] 0. secs (0.u,0.s) -Chars 6447 - 6451 [Qed.] 0.004 secs (0.004u,0.s) -Chars 6525 - 6670 [#[global]~Instance~Proper_sutt...] 0. secs (0.u,0.s) -Chars 6671 - 6677 [Proof.] 0. secs (0.u,0.s) -Chars 6680 - 6691 [repeat~red.] 0. secs (0.u,0.s) -Chars 6692 - 6710 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 6711 - 6736 [intros~x~y~H~x0~y0~H0~H1.] 0. secs (0.u,0.s) -Chars 6739 - 6749 [step~in~H.] 0. secs (0.u,0.s) -Chars 6750 - 6761 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6762 - 6773 [step~in~H1.] 0. secs (0.u,0.s) -Chars 6776 - 6793 [revert~x~H~x0~H0.] 0. secs (0.u,0.s) -Chars 6796 - 6817 [induction~H1;~intros.] 0. secs (0.u,0.s) -Chars 6820 - 6821 [-] 0. secs (0.u,0.s) -Chars 6822 - 6847 [inv~H1;~try~discriminate.] 0.017 secs (0.017u,0.s) -Chars 6848 - 6873 [inv~H0;~try~discriminate.] 0.014 secs (0.014u,0.s) -Chars 6874 - 6887 [econstructor.] 0. secs (0.u,0.s) -Chars 6888 - 6894 [eauto.] 0. secs (0.u,0.s) -Chars 6897 - 6898 [-] 0. secs (0.u,0.s) -Chars 6899 - 6941 [dependent~destruction~H;~try~d...] 0.017 secs (0.017u,0.s) -Chars 6946 - 6989 [dependent~destruction~H0;~try~...] 0.017 secs (0.017u,0.s) -Chars 6994 - 7002 [simpobs.] 0.002 secs (0.002u,0.s) -Chars 7007 - 7019 [constructor.] 0. secs (0.u,0.s) -Chars 7020 - 7027 [intros.] 0. secs (0.u,0.s) -Chars 7028 - 7039 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7045 - 7055 [apply~REL.] 0. secs (0.u,0.s) -Chars 7061 - 7072 [apply~REL0.] 0. secs (0.u,0.s) -Chars 7073 - 7085 [apply~SUTTK.] 0. secs (0.u,0.s) -Chars 7090 - 7091 [-] 0. secs (0.u,0.s) -Chars 7092 - 7135 [dependent~destruction~H0;~try~...] 0.015 secs (0.015u,0.s) -Chars 7140 - 7148 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 7149 - 7161 [constructor.] 0. secs (0.u,0.s) -Chars 7167 - 7187 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) -Chars 7188 - 7204 [now~step~in~REL.] 0. secs (0.u,0.s) -Chars 7208 - 7209 [-] 0. secs (0.u,0.s) -Chars 7210 - 7252 [dependent~destruction~H;~try~d...] 0.016 secs (0.016u,0.s) -Chars 7257 - 7265 [simpobs.] 0.001 secs (0.001u,0.s) -Chars 7266 - 7278 [constructor.] 0. secs (0.u,0.s) -Chars 7283 - 7313 [rewrite~(itree_eta'~ot2)~in~*.] 0. secs (0.u,0.s) -Chars 7314 - 7325 [eapply~CIH.] 0. secs (0.u,0.s) -Chars 7331 - 7341 [apply~REL.] 0. secs (0.u,0.s) -Chars 7342 - 7357 [step;~apply~H0.] 0.001 secs (0.001u,0.s) -Chars 7358 - 7371 [apply~EQTAUS.] 0. secs (0.u,0.s) -Chars 7373 - 7377 [Qed.] 0.046 secs (0.045u,0.s) diff --git a/theories/Events.v.timing b/theories/Events.v.timing deleted file mode 100644 index 32281e42..00000000 --- a/theories/Events.v.timing +++ /dev/null @@ -1 +0,0 @@ -Chars 48 - 185 [From~ITree.Events~Require~Stat...] 0.121 secs (0.108u,0.012s) diff --git a/theories/Events/Concurrency.v.timing b/theories/Events/Concurrency.v.timing deleted file mode 100644 index 927d6463..00000000 --- a/theories/Events/Concurrency.v.timing +++ /dev/null @@ -1,10 +0,0 @@ -Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.03 secs (0.023u,0.006s) -Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 228 [From~ITree~Require~Import~Core...] 0.028 secs (0.022u,0.005s) -Chars 316 - 417 [Inductive~spawnE~E~:~Type~->~T...] 0.053 secs (0.052u,0.001s) -Chars 419 - 532 [Definition~spawn~{F}~{E}~`{spa...] 0. secs (0.u,0.s) -Chars 1453 - 2162 [Definition~rr_match~{E}~~~(rr~...] 0.001 secs (0.001u,0.s) -Chars 2164 - 2274 [CoFixpoint~round_robin~{E}~(q~...] 0. secs (0.u,0.s) -Chars 2276 - 2372 [Definition~run_spawn~{E}~(t~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Dependent.v.timing b/theories/Events/Dependent.v.timing deleted file mode 100644 index bf939f3d..00000000 --- a/theories/Events/Dependent.v.timing +++ /dev/null @@ -1,6 +0,0 @@ -Chars 611 - 718 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.006s) -Chars 720 - 748 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) -Chars 765 - 852 [Variant~depE~{I~:~Type}~(F~:~I...] 0. secs (0.u,0.s) -Chars 854 - 876 [Arguments~Dep~{I~F}~&.] 0. secs (0.u,0.s) -Chars 878 - 970 [Definition~dep~{I}~{F}~{E}~`{d...] 0. secs (0.u,0.s) -Chars 972 - 1102 [Definition~undep~{I}~{F}~(f~:~...] 0. secs (0.u,0.s) diff --git a/theories/Events/Exception.v.timing b/theories/Events/Exception.v.timing deleted file mode 100644 index ed6a3d2e..00000000 --- a/theories/Events/Exception.v.timing +++ /dev/null @@ -1,6 +0,0 @@ -Chars 43 - 75 [From~ITree~Require~Import~ITree.] 0.042 secs (0.033u,0.008s) -Chars 77 - 100 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 156 - 237 [Variant~exceptE~(Err~:~Type)~:...] 0. secs (0.u,0.s) -Chars 341 - 503 [Definition~throw~{Err~:~Type}~...] 0.017 secs (0.016u,0.001s) -Chars 505 - 1188 [Definition~try_catch~{Err~R~:~...] 0.002 secs (0.002u,0.s) -Chars 1190 - 1772 [Definition~throw_prefix~{Err~R...] 0.002 secs (0.002u,0.s) diff --git a/theories/Events/ExceptionFacts.v.timing b/theories/Events/ExceptionFacts.v.timing deleted file mode 100644 index b01a1dba..00000000 --- a/theories/Events/ExceptionFacts.v.timing +++ /dev/null @@ -1,479 +0,0 @@ -Chars 17 - 59 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 61 - 110 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 112 - 148 [From~Coinduction~Require~Impor...] 0.004 secs (0.003u,0.s) -Chars 150 - 225 [From~ITree~Require~Import~ITre...] 0.154 secs (0.138u,0.015s) -Chars 242 - 256 [Import~Monads.] 0. secs (0.u,0.s) -Chars 257 - 278 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 279 - 311 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 314 - 438 [Lemma~try_catch_ret~:~~~forall...] 0. secs (0.u,0.s) -Chars 439 - 445 [Proof.] 0. secs (0.u,0.s) -Chars 448 - 455 [intros.] 0. secs (0.u,0.s) -Chars 456 - 473 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 474 - 530 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 533 - 553 [rewrite~unfold_iter.] 0.032 secs (0.029u,0.003s) -Chars 554 - 558 [cbn.] 0. secs (0.u,0.s) -Chars 559 - 578 [rewrite~bind_ret_l.] 0.005 secs (0.005u,0.s) -Chars 579 - 591 [reflexivity.] 0. secs (0.u,0.s) -Chars 592 - 596 [Qed.] 0.002 secs (0.002u,0.s) -Chars 598 - 741 [Lemma~try_catch_tau~:~~~forall...] 0. secs (0.u,0.s) -Chars 742 - 748 [Proof.] 0. secs (0.u,0.s) -Chars 751 - 758 [intros.] 0. secs (0.u,0.s) -Chars 759 - 776 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 777 - 833 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 836 - 856 [rewrite~unfold_iter.] 0.038 secs (0.038u,0.s) -Chars 857 - 861 [cbn.] 0. secs (0.u,0.s) -Chars 862 - 881 [rewrite~bind_ret_l.] 0.008 secs (0.008u,0.s) -Chars 882 - 894 [reflexivity.] 0. secs (0.u,0.s) -Chars 895 - 899 [Qed.] 0.003 secs (0.003u,0.s) -Chars 901 - 1123 [Lemma~try_catch_exc~:~~~forall...] 0. secs (0.u,0.s) -Chars 1124 - 1130 [Proof.] 0. secs (0.u,0.s) -Chars 1134 - 1141 [intros.] 0. secs (0.u,0.s) -Chars 1142 - 1159 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 1160 - 1216 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 1220 - 1240 [rewrite~unfold_iter.] 0.007 secs (0.007u,0.s) -Chars 1241 - 1245 [cbn.] 0. secs (0.u,0.s) -Chars 1246 - 1263 [unfold~ITree.map.] 0. secs (0.u,0.s) -Chars 1267 - 1285 [rewrite~bind_bind.] 0.006 secs (0.006u,0.s) -Chars 1286 - 1312 [setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 1313 - 1332 [rewrite~bind_ret_r.] 0.001 secs (0.001u,0.s) -Chars 1336 - 1348 [reflexivity.] 0. secs (0.u,0.s) -Chars 1349 - 1353 [Qed.] 0.003 secs (0.003u,0.s) -Chars 1355 - 1550 [Lemma~try_catch_ev~:~~~forall~...] 0. secs (0.u,0.s) -Chars 1551 - 1557 [Proof.] 0. secs (0.u,0.s) -Chars 1560 - 1567 [intros.] 0. secs (0.u,0.s) -Chars 1568 - 1585 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 1586 - 1642 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 1645 - 1665 [rewrite~unfold_iter.] 0.01 secs (0.009u,0.s) -Chars 1666 - 1670 [cbn.] 0. secs (0.u,0.s) -Chars 1674 - 1691 [rewrite~bind_map.] 0.008 secs (0.008u,0.s) -Chars 1692 - 1713 [rewrite~bind_trigger.] 0.008 secs (0.008u,0.s) -Chars 1714 - 1726 [reflexivity.] 0. secs (0.u,0.s) -Chars 1729 - 1733 [Qed.] 0.004 secs (0.004u,0.s) -Chars 1735 - 1887 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1922 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 1923 - 1933 [red~in~Hk.] 0. secs (0.u,0.s) -Chars 1934 - 1950 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 1954 - 1966 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 1967 - 1974 [intros.] 0. secs (0.u,0.s) -Chars 1975 - 1992 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 1993 - 2026 [setoid_rewrite~unfold_iter_ktree.] 0.053 secs (0.053u,0.s) -Chars 2029 - 2037 [sinv~Ht.] 0.24 secs (0.239u,0.001s) -Chars 2041 - 2042 [-] 0. secs (0.u,0.s) -Chars 2043 - 2047 [cbn.] 0.002 secs (0.002u,0.s) -Chars 2048 - 2060 [reflexivity.] 0. secs (0.u,0.s) -Chars 2064 - 2065 [-] 0. secs (0.u,0.s) -Chars 2066 - 2070 [cbn.] 0. secs (0.u,0.s) -Chars 2071 - 2076 [etau.] 0.002 secs (0.002u,0.s) -Chars 2080 - 2081 [-] 0. secs (0.u,0.s) -Chars 2082 - 2093 [destruct~e.] 0.002 secs (0.002u,0.s) -Chars 2098 - 2099 [+] 0. secs (0.u,0.s) -Chars 2100 - 2111 [destruct~e.] 0.002 secs (0.002u,0.s) -Chars 2112 - 2117 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2125 - 2144 [rewrite~2!bind_map.] 0.043 secs (0.042u,0.s) -Chars 2145 - 2166 [rewrite~2!bind_ret_r.] 0.029 secs (0.029u,0.s) -Chars 2174 - 2179 [step.] 0.007 secs (0.007u,0.s) -Chars 2180 - 2189 [apply~Hk.] 0. secs (0.u,0.s) -Chars 2195 - 2196 [+] 0. secs (0.u,0.s) -Chars 2197 - 2201 [cbn.] 0. secs (0.u,0.s) -Chars 2202 - 2207 [evis.] 0.002 secs (0.002u,0.s) -Chars 2208 - 2213 [step.] 0.002 secs (0.002u,0.s) -Chars 2214 - 2218 [cbn.] 0. secs (0.u,0.s) -Chars 2219 - 2224 [etau.] 0.002 secs (0.002u,0.s) -Chars 2226 - 2230 [Qed.] 0.031 secs (0.03u,0.s) -Chars 2232 - 2369 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 2370 - 2376 [Proof.] 0. secs (0.u,0.s) -Chars 2379 - 2404 [intros~t1~t2~Ht~k1~k2~Hk.] 0. secs (0.u,0.s) -Chars 2405 - 2415 [red~in~Hk.] 0. secs (0.u,0.s) -Chars 2416 - 2432 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 2436 - 2448 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 2449 - 2456 [intros.] 0. secs (0.u,0.s) -Chars 2457 - 2474 [unfold~try_catch.] 0. secs (0.u,0.s) -Chars 2475 - 2508 [setoid_rewrite~unfold_iter_ktree.] 0.054 secs (0.054u,0.s) -Chars 2511 - 2522 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 2526 - 2571 [hinduction~Ht~before~c;~intros...] 0.016 secs (0.016u,0.s) -Chars 2574 - 2575 [-] 0. secs (0.u,0.s) -Chars 2576 - 2580 [cbn.] 0. secs (0.u,0.s) -Chars 2581 - 2593 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 2597 - 2598 [-] 0. secs (0.u,0.s) -Chars 2599 - 2603 [cbn.] 0. secs (0.u,0.s) -Chars 2604 - 2609 [etau.] 0.002 secs (0.002u,0.s) -Chars 2614 - 2615 [-] 0. secs (0.u,0.s) -Chars 2616 - 2627 [destruct~e.] 0. secs (0.u,0.s) -Chars 2632 - 2633 [+] 0. secs (0.u,0.s) -Chars 2634 - 2645 [destruct~e.] 0.002 secs (0.002u,0.s) -Chars 2646 - 2651 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2658 - 2677 [rewrite~2!bind_map.] 0.04 secs (0.039u,0.s) -Chars 2678 - 2699 [rewrite~2!bind_ret_r.] 0.026 secs (0.026u,0.s) -Chars 2707 - 2712 [step.] 0.006 secs (0.006u,0.s) -Chars 2713 - 2722 [apply~Hk.] 0. secs (0.u,0.s) -Chars 2728 - 2729 [+] 0. secs (0.u,0.s) -Chars 2730 - 2735 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 2736 - 2741 [evis.] 0.002 secs (0.002u,0.s) -Chars 2742 - 2747 [step.] 0.002 secs (0.002u,0.s) -Chars 2748 - 2752 [cbn.] 0. secs (0.u,0.s) -Chars 2753 - 2758 [etau.] 0.002 secs (0.002u,0.s) -Chars 2762 - 2763 [-] 0. secs (0.u,0.s) -Chars 2764 - 2768 [cbn.] 0. secs (0.u,0.s) -Chars 2769 - 2774 [taul.] 0. secs (0.u,0.s) -Chars 2775 - 2794 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) -Chars 2797 - 2798 [-] 0. secs (0.u,0.s) -Chars 2799 - 2803 [cbn.] 0. secs (0.u,0.s) -Chars 2804 - 2809 [taur.] 0. secs (0.u,0.s) -Chars 2810 - 2829 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) -Chars 2830 - 2834 [Qed.] 0.021 secs (0.021u,0.s) -Chars 2837 - 2976 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 2977 - 2983 [Proof.] 0. secs (0.u,0.s) -Chars 2986 - 3002 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 3003 - 3019 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 3023 - 3035 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3036 - 3043 [intros.] 0. secs (0.u,0.s) -Chars 3044 - 3064 [unfold~throw_prefix.] 0. secs (0.u,0.s) -Chars 3065 - 3098 [setoid_rewrite~unfold_iter_ktree.] 0.054 secs (0.053u,0.s) -Chars 3101 - 3109 [sinv~Ht.] 0.22 secs (0.219u,0.s) -Chars 3112 - 3113 [-] 0. secs (0.u,0.s) -Chars 3114 - 3118 [cbn.] 0. secs (0.u,0.s) -Chars 3119 - 3124 [etau.] 0.001 secs (0.001u,0.s) -Chars 3127 - 3128 [-] 0. secs (0.u,0.s) -Chars 3129 - 3140 [destruct~e.] 0.003 secs (0.003u,0.s) -Chars 3145 - 3146 [+] 0. secs (0.u,0.s) -Chars 3147 - 3158 [destruct~e.] 0.003 secs (0.003u,0.s) -Chars 3159 - 3163 [cbn.] 0. secs (0.u,0.s) -Chars 3164 - 3176 [reflexivity.] 0. secs (0.u,0.s) -Chars 3182 - 3183 [+] 0. secs (0.u,0.s) -Chars 3184 - 3188 [cbn.] 0.001 secs (0.001u,0.s) -Chars 3189 - 3194 [evis.] 0.001 secs (0.001u,0.s) -Chars 3195 - 3200 [step.] 0.002 secs (0.002u,0.s) -Chars 3201 - 3205 [cbn.] 0. secs (0.u,0.s) -Chars 3206 - 3211 [etau.] 0.001 secs (0.001u,0.s) -Chars 3213 - 3217 [Qed.] 0.028 secs (0.028u,0.s) -Chars 3219 - 3325 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 3326 - 3332 [Proof.] 0. secs (0.u,0.s) -Chars 3335 - 3351 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 3352 - 3368 [revert~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 3372 - 3384 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 3385 - 3392 [intros.] 0. secs (0.u,0.s) -Chars 3393 - 3413 [unfold~throw_prefix.] 0. secs (0.u,0.s) -Chars 3414 - 3447 [setoid_rewrite~unfold_iter_ktree.] 0.053 secs (0.053u,0.s) -Chars 3450 - 3461 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 3462 - 3507 [hinduction~Ht~before~c;~intros...] 0.014 secs (0.014u,0.s) -Chars 3510 - 3511 [-] 0. secs (0.u,0.s) -Chars 3512 - 3516 [cbn.] 0. secs (0.u,0.s) -Chars 3517 - 3522 [etau.] 0.001 secs (0.001u,0.s) -Chars 3525 - 3526 [-] 0. secs (0.u,0.s) -Chars 3527 - 3538 [destruct~e.] 0. secs (0.u,0.s) -Chars 3543 - 3544 [+] 0. secs (0.u,0.s) -Chars 3545 - 3556 [destruct~e.] 0.002 secs (0.002u,0.s) -Chars 3557 - 3561 [cbn.] 0. secs (0.u,0.s) -Chars 3562 - 3574 [reflexivity.] 0. secs (0.u,0.s) -Chars 3580 - 3581 [+] 0. secs (0.u,0.s) -Chars 3582 - 3586 [cbn.] 0.001 secs (0.001u,0.s) -Chars 3587 - 3592 [evis.] 0.001 secs (0.001u,0.s) -Chars 3593 - 3598 [step.] 0.002 secs (0.002u,0.s) -Chars 3599 - 3603 [cbn.] 0. secs (0.u,0.s) -Chars 3604 - 3609 [etau.] 0.001 secs (0.001u,0.s) -Chars 3613 - 3614 [-] 0. secs (0.u,0.s) -Chars 3615 - 3619 [cbn.] 0. secs (0.u,0.s) -Chars 3620 - 3625 [taul.] 0. secs (0.u,0.s) -Chars 3626 - 3645 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) -Chars 3648 - 3649 [-] 0. secs (0.u,0.s) -Chars 3650 - 3654 [cbn.] 0. secs (0.u,0.s) -Chars 3655 - 3660 [taur.] 0. secs (0.u,0.s) -Chars 3661 - 3680 [eapply~IHHt;~eauto.] 0. secs (0.u,0.s) -Chars 3681 - 3685 [Qed.] 0.019 secs (0.019u,0.s) -Chars 3687 - 3806 [#[global]~Instance~proper_eqit...] 0. secs (0.u,0.s) -Chars 3807 - 3813 [Proof.] 0. secs (0.u,0.s) -Chars 3816 - 3903 [destruct~b;~~[~apply~proper_eu...] 0. secs (0.u,0.s) -Chars 3904 - 3908 [Qed.] 0. secs (0.u,0.s) -Chars 3910 - 4014 [Definition~throw_prefix_ret~:~...] 0. secs (0.u,0.s) -Chars 4015 - 4021 [Proof.] 0. secs (0.u,0.s) -Chars 4024 - 4031 [intros.] 0. secs (0.u,0.s) -Chars 4032 - 4065 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) -Chars 4066 - 4070 [cbn.] 0. secs (0.u,0.s) -Chars 4071 - 4090 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) -Chars 4091 - 4103 [reflexivity.] 0. secs (0.u,0.s) -Chars 4104 - 4108 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4110 - 4240 [Definition~throw_prefix_tau~:~...] 0. secs (0.u,0.s) -Chars 4241 - 4247 [Proof.] 0. secs (0.u,0.s) -Chars 4250 - 4257 [intros.] 0. secs (0.u,0.s) -Chars 4258 - 4296 [setoid_rewrite~unfold_iter_ktr...] 0.009 secs (0.009u,0.s) -Chars 4297 - 4301 [cbn.] 0. secs (0.u,0.s) -Chars 4302 - 4321 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) -Chars 4324 - 4336 [reflexivity.] 0. secs (0.u,0.s) -Chars 4337 - 4341 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4343 - 4470 [Definition~throw_prefix_exc~:~...] 0. secs (0.u,0.s) -Chars 4471 - 4477 [Proof.] 0. secs (0.u,0.s) -Chars 4480 - 4487 [intros.] 0. secs (0.u,0.s) -Chars 4488 - 4521 [setoid_rewrite~unfold_iter_ktree.] 0.009 secs (0.009u,0.s) -Chars 4522 - 4526 [cbn.] 0. secs (0.u,0.s) -Chars 4527 - 4546 [rewrite~bind_ret_l.] 0.007 secs (0.007u,0.s) -Chars 4547 - 4559 [reflexivity.] 0. secs (0.u,0.s) -Chars 4560 - 4564 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4566 - 4748 [Definition~throw_prefix_ev~:~~...] 0. secs (0.u,0.s) -Chars 4749 - 4755 [Proof.] 0. secs (0.u,0.s) -Chars 4758 - 4765 [intros.] 0. secs (0.u,0.s) -Chars 4766 - 4804 [setoid_rewrite~unfold_iter_ktr...] 0.013 secs (0.012u,0.s) -Chars 4805 - 4809 [cbn.] 0. secs (0.u,0.s) -Chars 4810 - 4827 [rewrite~bind_map.] 0.007 secs (0.007u,0.s) -Chars 4831 - 4852 [rewrite~bind_trigger.] 0.006 secs (0.006u,0.s) -Chars 4853 - 4868 [apply~eqit_Vis.] 0. secs (0.u,0.s) -Chars 4869 - 4876 [intros.] 0. secs (0.u,0.s) -Chars 4877 - 4889 [reflexivity.] 0. secs (0.u,0.s) -Chars 4890 - 4894 [Qed.] 0.004 secs (0.003u,0.s) -Chars 4896 - 5054 [Lemma~try_catch_throw_prefix_n...] 0. secs (0.u,0.s) -Chars 5055 - 5061 [Proof.] 0. secs (0.u,0.s) -Chars 5065 - 5087 [intros~E~Err~R~kcatch.] 0. secs (0.u,0.s) -Chars 5088 - 5100 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5101 - 5108 [intros.] 0. secs (0.u,0.s) -Chars 5111 - 5184 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) -Chars 5187 - 5188 [-] 0. secs (0.u,0.s) -Chars 5189 - 5201 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 5202 - 5227 [rewrite~throw_prefix_ret.] 0.014 secs (0.014u,0.s) -Chars 5228 - 5250 [rewrite~try_catch_ret.] 0.013 secs (0.013u,0.s) -Chars 5251 - 5263 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 5266 - 5267 [-] 0. secs (0.u,0.s) -Chars 5268 - 5280 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 5281 - 5306 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 5307 - 5329 [rewrite~try_catch_tau.] 0.013 secs (0.013u,0.s) -Chars 5330 - 5335 [etau.] 0. secs (0.u,0.s) -Chars 5338 - 5339 [-] 0. secs (0.u,0.s) -Chars 5340 - 5351 [destruct~e.] 0. secs (0.u,0.s) -Chars 5355 - 5356 [+] 0. secs (0.u,0.s) -Chars 5357 - 5368 [destruct~e.] 0. secs (0.u,0.s) -Chars 5369 - 5381 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 5382 - 5407 [rewrite~throw_prefix_exc.] 0.014 secs (0.014u,0.s) -Chars 5408 - 5430 [rewrite~try_catch_ret.] 0.013 secs (0.013u,0.s) -Chars 5431 - 5443 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 5447 - 5448 [+] 0. secs (0.u,0.s) -Chars 5449 - 5461 [rewrite~Heq.] 0.014 secs (0.014u,0.s) -Chars 5462 - 5486 [rewrite~throw_prefix_ev.] 0.014 secs (0.014u,0.s) -Chars 5487 - 5508 [rewrite~try_catch_ev.] 0.014 secs (0.014u,0.s) -Chars 5509 - 5514 [evis.] 0.001 secs (0.001u,0.s) -Chars 5520 - 5542 [rewrite~try_catch_tau.] 0.012 secs (0.012u,0.s) -Chars 5543 - 5569 [repeat~rewrite~tau_euttge.] 0.013 secs (0.013u,0.s) -Chars 5570 - 5580 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5581 - 5585 [Qed.] 0.012 secs (0.012u,0.s) -Chars 5587 - 5966 [Lemma~throw_prefix_bind_decomp...] 0.004 secs (0.004u,0.s) -Chars 5967 - 5973 [Proof.] 0. secs (0.u,0.s) -Chars 5976 - 5991 [intros~E~Err~R.] 0. secs (0.u,0.s) -Chars 5992 - 6004 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 6005 - 6012 [intros.] 0. secs (0.u,0.s) -Chars 6015 - 6085 [destruct~(observe~t)~eqn:Heq;~...] 0.002 secs (0.002u,0.s) -Chars 6088 - 6089 [-] 0. secs (0.u,0.s) -Chars 6090 - 6102 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 6103 - 6128 [rewrite~throw_prefix_ret.] 0.018 secs (0.018u,0.s) -Chars 6129 - 6148 [rewrite~bind_ret_l.] 0.015 secs (0.015u,0.s) -Chars 6149 - 6154 [eret.] 0. secs (0.u,0.s) -Chars 6158 - 6159 [-] 0. secs (0.u,0.s) -Chars 6160 - 6172 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 6173 - 6198 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) -Chars 6199 - 6216 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) -Chars 6217 - 6222 [etau.] 0. secs (0.u,0.s) -Chars 6225 - 6226 [-] 0. secs (0.u,0.s) -Chars 6227 - 6238 [destruct~e.] 0. secs (0.u,0.s) -Chars 6243 - 6244 [+] 0. secs (0.u,0.s) -Chars 6245 - 6257 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 6258 - 6269 [destruct~e.] 0.001 secs (0.001u,0.s) -Chars 6270 - 6295 [rewrite~throw_prefix_exc.] 0.017 secs (0.017u,0.s) -Chars 6296 - 6315 [rewrite~bind_ret_l.] 0.016 secs (0.015u,0.s) -Chars 6316 - 6321 [bcbn.] 0. secs (0.u,0.s) -Chars 6322 - 6327 [evis.] 0.001 secs (0.001u,0.s) -Chars 6335 - 6340 [easy.] 0.003 secs (0.003u,0.s) -Chars 6346 - 6347 [+] 0. secs (0.u,0.s) -Chars 6348 - 6360 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 6361 - 6385 [rewrite~throw_prefix_ev.] 0.017 secs (0.017u,0.s) -Chars 6386 - 6403 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) -Chars 6404 - 6409 [evis.] 0.001 secs (0.001u,0.s) -Chars 6417 - 6424 [intros.] 0. secs (0.u,0.s) -Chars 6425 - 6444 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) -Chars 6445 - 6455 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6457 - 6461 [Qed.] 0.014 secs (0.014u,0.s) -Chars 6463 - 6962 [Lemma~try_catch_to_throw_prefi...] 0. secs (0.u,0.s) -Chars 6963 - 6969 [Proof.] 0. secs (0.u,0.s) -Chars 6972 - 6979 [intros.] 0. secs (0.u,0.s) -Chars 6980 - 6992 [revert~ttry.] 0. secs (0.u,0.s) -Chars 6993 - 7005 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7009 - 7016 [intros.] 0. secs (0.u,0.s) -Chars 7017 - 7090 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) -Chars 7093 - 7094 [-] 0. secs (0.u,0.s) -Chars 7095 - 7107 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 7108 - 7130 [rewrite~try_catch_ret.] 0.014 secs (0.013u,0.s) -Chars 7131 - 7156 [rewrite~throw_prefix_ret.] 0.016 secs (0.016u,0.s) -Chars 7157 - 7176 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 7182 - 7187 [eret.] 0. secs (0.u,0.s) -Chars 7191 - 7192 [-] 0. secs (0.u,0.s) -Chars 7193 - 7205 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 7206 - 7228 [rewrite~try_catch_tau.] 0.013 secs (0.013u,0.s) -Chars 7229 - 7254 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) -Chars 7255 - 7272 [rewrite~bind_tau.] 0.014 secs (0.014u,0.s) -Chars 7277 - 7282 [etau.] 0. secs (0.u,0.s) -Chars 7286 - 7287 [-] 0. secs (0.u,0.s) -Chars 7288 - 7299 [destruct~e.] 0. secs (0.u,0.s) -Chars 7304 - 7305 [+] 0. secs (0.u,0.s) -Chars 7306 - 7317 [destruct~e.] 0. secs (0.u,0.s) -Chars 7318 - 7330 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 7331 - 7353 [rewrite~try_catch_exc.] 0.013 secs (0.013u,0.s) -Chars 7354 - 7379 [rewrite~throw_prefix_exc.] 0.016 secs (0.016u,0.s) -Chars 7380 - 7399 [rewrite~bind_ret_l.] 0.013 secs (0.013u,0.s) -Chars 7406 - 7418 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 7424 - 7425 [+] 0. secs (0.u,0.s) -Chars 7426 - 7438 [rewrite~Heq.] 0.015 secs (0.015u,0.s) -Chars 7439 - 7460 [rewrite~try_catch_ev.] 0.013 secs (0.013u,0.s) -Chars 7461 - 7485 [rewrite~throw_prefix_ev.] 0.018 secs (0.017u,0.s) -Chars 7486 - 7503 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) -Chars 7504 - 7530 [setoid_rewrite~tau_euttge.] 0.019 secs (0.019u,0.s) -Chars 7537 - 7542 [evis.] 0. secs (0.u,0.s) -Chars 7544 - 7548 [Qed.] 0.014 secs (0.014u,0.s) -Chars 7550 - 7817 [Lemma~throw_prefix_of_try_catc...] 0. secs (0.u,0.s) -Chars 7818 - 7824 [Proof.] 0. secs (0.u,0.s) -Chars 7827 - 7834 [intros.] 0. secs (0.u,0.s) -Chars 7835 - 7847 [revert~ttry.] 0. secs (0.u,0.s) -Chars 7848 - 7860 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 7864 - 7871 [intros.] 0. secs (0.u,0.s) -Chars 7872 - 7945 [destruct~(observe~ttry)~eqn:He...] 0.001 secs (0.001u,0.s) -Chars 7948 - 7949 [-] 0. secs (0.u,0.s) -Chars 7950 - 7962 [rewrite~Heq.] 0.023 secs (0.022u,0.s) -Chars 7963 - 7982 [rewrite~bind_ret_l.] 0.018 secs (0.017u,0.s) -Chars 7983 - 8012 [repeat~rewrite~try_catch_ret.] 0.037 secs (0.037u,0.s) -Chars 8013 - 8038 [rewrite~throw_prefix_ret.] 0.015 secs (0.015u,0.s) -Chars 8043 - 8048 [eret.] 0. secs (0.u,0.s) -Chars 8052 - 8053 [-] 0. secs (0.u,0.s) -Chars 8054 - 8066 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 8067 - 8084 [rewrite~bind_tau.] 0.017 secs (0.017u,0.s) -Chars 8085 - 8114 [repeat~rewrite~try_catch_tau.] 0.032 secs (0.032u,0.s) -Chars 8115 - 8140 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 8145 - 8150 [etau.] 0. secs (0.u,0.s) -Chars 8154 - 8155 [-] 0. secs (0.u,0.s) -Chars 8156 - 8167 [destruct~e.] 0. secs (0.u,0.s) -Chars 8172 - 8173 [+] 0. secs (0.u,0.s) -Chars 8174 - 8185 [destruct~e.] 0. secs (0.u,0.s) -Chars 8186 - 8198 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 8199 - 8216 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) -Chars 8217 - 8246 [repeat~rewrite~try_catch_exc.] 0.03 secs (0.03u,0.s) -Chars 8253 - 8265 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8271 - 8272 [+] 0. secs (0.u,0.s) -Chars 8273 - 8285 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 8286 - 8303 [rewrite~bind_vis.] 0.017 secs (0.017u,0.s) -Chars 8304 - 8332 [repeat~rewrite~try_catch_ev.] 0.034 secs (0.034u,0.s) -Chars 8333 - 8357 [rewrite~throw_prefix_ev.] 0.014 secs (0.014u,0.s) -Chars 8364 - 8396 [setoid_rewrite~throw_prefix_tau.] 0.083 secs (0.082u,0.s) -Chars 8403 - 8436 [repeat~setoid_rewrite~tau_euttge.] 0.046 secs (0.046u,0.s) -Chars 8443 - 8448 [evis.] 0. secs (0.u,0.s) -Chars 8450 - 8454 [Qed.] 0.016 secs (0.016u,0.s) -Chars 8456 - 8820 [Lemma~throw_prefix_bind~:~~~fo...] 0. secs (0.u,0.s) -Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) -Chars 8830 - 8837 [intros.] 0. secs (0.u,0.s) -Chars 8838 - 8847 [revert~t.] 0. secs (0.u,0.s) -Chars 8848 - 8860 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 8864 - 8871 [intros.] 0. secs (0.u,0.s) -Chars 8872 - 8942 [destruct~(observe~t)~eqn:Heq;~...] 0.001 secs (0.001u,0.s) -Chars 8945 - 8946 [-] 0. secs (0.u,0.s) -Chars 8947 - 8959 [rewrite~Heq.] 0.019 secs (0.018u,0.s) -Chars 8960 - 8985 [rewrite~throw_prefix_ret.] 0.018 secs (0.018u,0.s) -Chars 8986 - 9012 [repeat~rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 9017 - 9029 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 9033 - 9034 [-] 0. secs (0.u,0.s) -Chars 9035 - 9047 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 9048 - 9073 [rewrite~throw_prefix_tau.] 0.018 secs (0.018u,0.s) -Chars 9074 - 9098 [repeat~rewrite~bind_tau.] 0.034 secs (0.034u,0.s) -Chars 9099 - 9124 [rewrite~throw_prefix_tau.] 0.015 secs (0.015u,0.s) -Chars 9129 - 9134 [etau.] 0. secs (0.u,0.s) -Chars 9138 - 9139 [-] 0. secs (0.u,0.s) -Chars 9140 - 9151 [destruct~e.] 0. secs (0.u,0.s) -Chars 9156 - 9157 [+] 0. secs (0.u,0.s) -Chars 9158 - 9169 [destruct~e.] 0. secs (0.u,0.s) -Chars 9170 - 9182 [rewrite~Heq.] 0.017 secs (0.017u,0.s) -Chars 9183 - 9208 [rewrite~throw_prefix_exc.] 0.018 secs (0.018u,0.s) -Chars 9209 - 9226 [rewrite~bind_vis.] 0.015 secs (0.015u,0.s) -Chars 9227 - 9252 [rewrite~throw_prefix_exc.] 0.014 secs (0.014u,0.s) -Chars 9259 - 9278 [rewrite~bind_ret_l.] 0.016 secs (0.016u,0.s) -Chars 9279 - 9284 [eret.] 0. secs (0.u,0.s) -Chars 9290 - 9291 [+] 0. secs (0.u,0.s) -Chars 9292 - 9304 [rewrite~Heq.] 0.017 secs (0.016u,0.s) -Chars 9305 - 9329 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) -Chars 9330 - 9354 [repeat~rewrite~bind_vis.] 0.035 secs (0.035u,0.s) -Chars 9355 - 9379 [rewrite~throw_prefix_ev.] 0.015 secs (0.015u,0.s) -Chars 9386 - 9391 [evis.] 0.001 secs (0.001u,0.s) -Chars 9392 - 9409 [rewrite~bind_tau.] 0.014 secs (0.014u,0.s) -Chars 9410 - 9415 [step.] 0.002 secs (0.002u,0.s) -Chars 9416 - 9421 [taus.] 0. secs (0.u,0.s) -Chars 9422 - 9432 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9435 - 9439 [Qed.] 0.017 secs (0.016u,0.s) -Chars 9441 - 10039 [Lemma~throw_prefix_iter~:~~~fo...] 0.006 secs (0.006u,0.s) -Chars 10040 - 10046 [Proof.] 0. secs (0.u,0.s) -Chars 10049 - 10066 [intros~E~Err~A~B.] 0. secs (0.u,0.s) -Chars 10067 - 10079 [coinduction.] 0.003 secs (0.003u,0.s) -Chars 10080 - 10087 [intros.] 0. secs (0.u,0.s) -Chars 10090 - 10130 [setoid_rewrite~unfold_iter_ktr...] 0.048 secs (0.048u,0.s) -Chars 10133 - 10214 [destruct~(observe~(body~init))...] 0.003 secs (0.003u,0.s) -Chars 10217 - 10218 [-] 0. secs (0.u,0.s) -Chars 10219 - 10236 [rewrite~Heq~~at~1.] 0.019 secs (0.019u,0.s) -Chars 10237 - 10256 [rewrite~bind_ret_l.] 0.019 secs (0.019u,0.s) -Chars 10257 - 10282 [setoid_rewrite~bind_bind.] 0.04 secs (0.04u,0.s) -Chars 10288 - 10305 [rewrite~Heq~~at~1.] 0.023 secs (0.023u,0.s) -Chars 10306 - 10331 [rewrite~throw_prefix_ret.] 0.023 secs (0.022u,0.s) -Chars 10332 - 10351 [rewrite~bind_ret_l.] 0.021 secs (0.021u,0.s) -Chars 10356 - 10387 [destruct~r;~rewrite~bind_ret_l.] 0.041 secs (0.04u,0.s) -Chars 10392 - 10393 [+] 0. secs (0.u,0.s) -Chars 10394 - 10419 [rewrite~throw_prefix_tau.] 0.016 secs (0.016u,0.s) -Chars 10420 - 10425 [etau.] 0. secs (0.u,0.s) -Chars 10431 - 10432 [+] 0. secs (0.u,0.s) -Chars 10433 - 10458 [rewrite~throw_prefix_ret.] 0.015 secs (0.015u,0.s) -Chars 10459 - 10471 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 10475 - 10476 [-] 0. secs (0.u,0.s) -Chars 10477 - 10494 [rewrite~Heq~~at~1.] 0.02 secs (0.02u,0.s) -Chars 10495 - 10520 [setoid_rewrite~bind_bind.] 0.045 secs (0.044u,0.s) -Chars 10521 - 10538 [rewrite~Heq~~at~1.] 0.024 secs (0.023u,0.s) -Chars 10543 - 10568 [rewrite~throw_prefix_tau.] 0.024 secs (0.024u,0.s) -Chars 10569 - 10593 [repeat~rewrite~bind_tau.] 0.047 secs (0.047u,0.s) -Chars 10594 - 10619 [rewrite~throw_prefix_tau.] 0.019 secs (0.019u,0.s) -Chars 10624 - 10629 [etau.] 0.002 secs (0.002u,0.s) -Chars 10630 - 10668 [setoid_rewrite~throw_prefix_bi...] 0.047 secs (0.047u,0.s) -Chars 10669 - 10690 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 10696 - 10728 [destruct~u2~as~[[a|~b]|~e].] 0. secs (0.u,0.s) -Chars 10733 - 10734 [+] 0. secs (0.u,0.s) -Chars 10735 - 10754 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 10755 - 10780 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 10781 - 10792 [step;~etau.] 0.002 secs (0.002u,0.s) -Chars 10798 - 10799 [+] 0. secs (0.u,0.s) -Chars 10800 - 10819 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 10820 - 10845 [rewrite~throw_prefix_ret.] 0.011 secs (0.011u,0.s) -Chars 10846 - 10858 [reflexivity.] 0. secs (0.u,0.s) -Chars 10864 - 10865 [+] 0. secs (0.u,0.s) -Chars 10866 - 10885 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 10886 - 10897 [step;~eret.] 0.002 secs (0.002u,0.s) -Chars 10901 - 10902 [-] 0. secs (0.u,0.s) -Chars 10903 - 10920 [rewrite~Heq~~at~1.] 0.02 secs (0.02u,0.s) -Chars 10921 - 10946 [setoid_rewrite~bind_bind.] 0.045 secs (0.044u,0.s) -Chars 10947 - 10964 [rewrite~Heq~~at~1.] 0.023 secs (0.023u,0.s) -Chars 10969 - 10980 [destruct~e.] 0.001 secs (0.001u,0.s) -Chars 10985 - 10986 [+] 0. secs (0.u,0.s) -Chars 10987 - 10998 [destruct~e.] 0.001 secs (0.001u,0.s) -Chars 10999 - 11016 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) -Chars 11017 - 11042 [rewrite~throw_prefix_exc.] 0.018 secs (0.018u,0.s) -Chars 11049 - 11081 [setoid_rewrite~throw_prefix_exc.] 0.075 secs (0.075u,0.s) -Chars 11082 - 11108 [repeat~rewrite~bind_ret_l.] 0.042 secs (0.042u,0.s) -Chars 11115 - 11127 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 11133 - 11134 [+] 0. secs (0.u,0.s) -Chars 11135 - 11152 [rewrite~bind_vis.] 0.02 secs (0.02u,0.s) -Chars 11153 - 11177 [rewrite~throw_prefix_ev.] 0.019 secs (0.019u,0.s) -Chars 11178 - 11209 [setoid_rewrite~throw_prefix_ev.] 0.088 secs (0.087u,0.s) -Chars 11216 - 11233 [rewrite~bind_vis.] 0.023 secs (0.023u,0.s) -Chars 11234 - 11258 [setoid_rewrite~bind_tau.] 0.05 secs (0.05u,0.s) -Chars 11259 - 11264 [evis.] 0.001 secs (0.001u,0.s) -Chars 11265 - 11276 [step;~etau.] 0.004 secs (0.004u,0.s) -Chars 11284 - 11310 [rewrite~throw_prefix_bind.] 0.015 secs (0.015u,0.s) -Chars 11311 - 11332 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 11340 - 11373 [destruct~u2~as~[[a|~b]|~e'].] 0. secs (0.u,0.s) -Chars 11380 - 11381 [*] 0. secs (0.u,0.s) -Chars 11382 - 11401 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 11402 - 11427 [rewrite~throw_prefix_tau.] 0.014 secs (0.014u,0.s) -Chars 11428 - 11439 [step;~etau.] 0.002 secs (0.002u,0.s) -Chars 11447 - 11448 [*] 0. secs (0.u,0.s) -Chars 11449 - 11468 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 11469 - 11494 [rewrite~throw_prefix_ret.] 0.012 secs (0.011u,0.s) -Chars 11503 - 11515 [reflexivity.] 0. secs (0.u,0.s) -Chars 11523 - 11524 [*] 0. secs (0.u,0.s) -Chars 11525 - 11544 [rewrite~bind_ret_l.] 0.017 secs (0.017u,0.s) -Chars 11545 - 11557 [reflexivity.] 0. secs (0.u,0.s) -Chars 11559 - 11563 [Qed.] 0.06 secs (0.059u,0.s) diff --git a/theories/Events/FailFacts.v.timing b/theories/Events/FailFacts.v.timing deleted file mode 100644 index d1fab36a..00000000 --- a/theories/Events/FailFacts.v.timing +++ /dev/null @@ -1,201 +0,0 @@ -Chars 58 - 94 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 97 - 139 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 141 - 469 [From~ITree~Require~Import~Basi...] 0.056 secs (0.048u,0.008s) -Chars 471 - 493 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 494 - 528 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 529 - 558 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 560 - 574 [Import~Monads.] 0. secs (0.u,0.s) -Chars 576 - 590 [Section~FailT.] 0. secs (0.u,0.s) -Chars 594 - 680 [Context~{m~:~Type~->~Type}~{Fm...] 0. secs (0.u,0.s) -Chars 684 - 763 [Definition~failT~(m~:~Type~->~...] 0. secs (0.u,0.s) -Chars 767 - 968 [#[global]~Instance~failT_fun~:...] 0.002 secs (0.002u,0.s) -Chars 972 - 1218 [#[global]~Instance~failT_monad...] 0. secs (0.u,0.s) -Chars 1222 - 1854 [#[global]~Instance~failT_iter~...] 0. secs (0.u,0.s) -Chars 1856 - 1866 [End~FailT.] 0. secs (0.u,0.s) -Chars 1868 - 1886 [Section~FailTLaws.] 0. secs (0.u,0.s) -Chars 1890 - 1981 [#[global]~Instance~failT_Eq1~~...] 0. secs (0.u,0.s) -Chars 1985 - 2056 [#[global]~Instance~Reflexive_f...] 0. secs (0.u,0.s) -Chars 2059 - 2065 [Proof.] 0. secs (0.u,0.s) -Chars 2070 - 2091 [apply~Reflexive_eqit.] 0. secs (0.u,0.s) -Chars 2096 - 2112 [intros~[];~auto.] 0. secs (0.u,0.s) -Chars 2115 - 2119 [Qed.] 0. secs (0.u,0.s) -Chars 2123 - 2194 [#[global]~Instance~Symmetric_f...] 0. secs (0.u,0.s) -Chars 2197 - 2203 [Proof.] 0. secs (0.u,0.s) -Chars 2208 - 2229 [apply~Symmetric_eqit.] 0. secs (0.u,0.s) -Chars 2234 - 2253 [intros~[]~[];~auto.] 0. secs (0.u,0.s) -Chars 2256 - 2260 [Qed.] 0. secs (0.u,0.s) -Chars 2264 - 2337 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 2340 - 2346 [Proof.] 0. secs (0.u,0.s) -Chars 2351 - 2373 [apply~Transitive_eqit.] 0. secs (0.u,0.s) -Chars 2378 - 2433 [intros~[]~[]~[]~?~?;~subst;~cb...] 0.001 secs (0.001u,0.s) -Chars 2436 - 2440 [Qed.] 0. secs (0.u,0.s) -Chars 2444 - 2519 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 2522 - 2528 [Proof.] 0. secs (0.u,0.s) -Chars 2533 - 2558 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2561 - 2565 [Qed.] 0. secs (0.u,0.s) -Chars 2569 - 2636 [#[global]~Instance~MonadLaws_f...] 0. secs (0.u,0.s) -Chars 2639 - 2645 [Proof.] 0. secs (0.u,0.s) -Chars 2650 - 2661 [split;~cbn.] 0. secs (0.u,0.s) -Chars 2666 - 2667 [-] 0. secs (0.u,0.s) -Chars 2668 - 2713 [cbn;~intros;~rewrite~bind_ret_...] 0.001 secs (0.001u,0.s) -Chars 2718 - 2719 [-] 0. secs (0.u,0.s) -Chars 2720 - 2732 [cbn;~intros.] 0. secs (0.u,0.s) -Chars 2739 - 2770 [rewrite~<-~(bind_ret_r~x)~~at~2.] 0.001 secs (0.001u,0.s) -Chars 2777 - 2821 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) -Chars 2826 - 2827 [-] 0. secs (0.u,0.s) -Chars 2828 - 2859 [intros;~cbn;~rewrite~bind_bind.] 0.001 secs (0.001u,0.s) -Chars 2866 - 2897 [eapply~eutt_eq_bind;~intros~[].] 0. secs (0.u,0.s) -Chars 2905 - 2906 [+] 0. secs (0.u,0.s) -Chars 2907 - 2951 [eapply~eutt_eq_bind;~intros~[]...] 0. secs (0.u,0.s) -Chars 2959 - 2960 [+] 0. secs (0.u,0.s) -Chars 2961 - 2993 [rewrite~bind_ret_l;~reflexivity.] 0. secs (0.u,0.s) -Chars 2998 - 2999 [-] 0. secs (0.u,0.s) -Chars 3000 - 3018 [repeat~intro;~cbn.] 0. secs (0.u,0.s) -Chars 3025 - 3054 [eapply~eutt_bind_eutt;~eauto.] 0.029 secs (0.029u,0.s) -Chars 3061 - 3114 [intros~[]~[]~REL;~cbn~in~*;~su...] 0. secs (0.u,0.s) -Chars 3121 - 3122 [+] 0. secs (0.u,0.s) -Chars 3123 - 3132 [apply~H0.] 0. secs (0.u,0.s) -Chars 3139 - 3140 [+] 0. secs (0.u,0.s) -Chars 3141 - 3153 [reflexivity.] 0. secs (0.u,0.s) -Chars 3156 - 3160 [Qed.] 0.003 secs (0.002u,0.s) -Chars 3164 - 3178 [End~FailTLaws.] 0. secs (0.u,0.s) -Chars 3330 - 3494 [Definition~interp_fail~{E}~{M}...] 0.001 secs (0.u,0.s) -Chars 3495 - 3535 [Arguments~interp_fail~{_~_~_~_...] 0. secs (0.u,0.s) -Chars 3578 - 3826 [Definition~_interp_fail~{E}~{F...] 0.001 secs (0.001u,0.s) -Chars 3849 - 3987 [Lemma~unfold_interp_fail~{E}~{...] 0. secs (0.u,0.s) -Chars 3988 - 3994 [Proof.] 0. secs (0.u,0.s) -Chars 3997 - 4023 [unfold~interp_fail,~interp.] 0. secs (0.u,0.s) -Chars 4024 - 4085 [unfold~Basics.iter,~failT_iter...] 0. secs (0.u,0.s) -Chars 4088 - 4108 [rewrite~unfold_iter.] 0.004 secs (0.004u,0.s) -Chars 4109 - 4113 [cbn.] 0. secs (0.u,0.s) -Chars 4116 - 4137 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) -Chars 4140 - 4214 [cbn;~repeat~(rewrite~?bind_bin...] 0.028 secs (0.024u,0.004s) -Chars 4217 - 4291 [cbn;~repeat~(rewrite~?bind_bin...] 0.024 secs (0.024u,0.s) -Chars 4294 - 4368 [cbn;~repeat~(rewrite~?bind_bin...] 0.032 secs (0.032u,0.s) -Chars 4371 - 4444 [apply~eq_itree_bind~with~(UU~:...] 0.001 secs (0.001u,0.s) -Chars 4448 - 4467 [destruct~x~as~[x|~].] 0. secs (0.u,0.s) -Chars 4470 - 4471 [-] 0. secs (0.u,0.s) -Chars 4472 - 4504 [rewrite~bind_ret_l;~reflexivity.] 0.005 secs (0.005u,0.s) -Chars 4507 - 4508 [-] 0. secs (0.u,0.s) -Chars 4509 - 4541 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) -Chars 4542 - 4546 [Qed.] 0.013 secs (0.013u,0.s) -Chars 4548 - 4722 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) -Chars 4723 - 4729 [Proof.] 0. secs (0.u,0.s) -Chars 4732 - 4743 [repeat~red.] 0. secs (0.u,0.s) -Chars 4747 - 4759 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4763 - 4777 [intros~s~t~EQ.] 0. secs (0.u,0.s) -Chars 4780 - 4809 [rewrite~2!unfold_interp_fail.] 0.021 secs (0.021u,0.s) -Chars 4812 - 4823 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4827 - 4887 [destruct~EQ;~cbn;~subst;~try~d...] 0.006 secs (0.006u,0.s) -Chars 4891 - 4898 [to_mon.] 0. secs (0.u,0.s) -Chars 4899 - 4920 [ebind;~intros;~subst.] 0.018 secs (0.018u,0.s) -Chars 4921 - 4933 [destruct~u2.] 0. secs (0.u,0.s) -Chars 4937 - 4942 [etau.] 0.004 secs (0.004u,0.s) -Chars 4943 - 4948 [eret.] 0. secs (0.u,0.s) -Chars 4950 - 4954 [Qed.] 0.006 secs (0.006u,0.s) -Chars 5055 - 5200 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) -Chars 5201 - 5207 [Proof.] 0. secs (0.u,0.s) -Chars 5210 - 5223 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5226 - 5248 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) -Chars 5251 - 5284 [apply~interp_fail_eq_itree;~auto.] 0. secs (0.u,0.s) -Chars 5285 - 5289 [Qed.] 0. secs (0.u,0.s) -Chars 5291 - 5434 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) -Chars 5435 - 5441 [Proof.] 0. secs (0.u,0.s) -Chars 5444 - 5455 [repeat~red.] 0. secs (0.u,0.s) -Chars 5459 - 5471 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 5475 - 5489 [intros~s~t~EQ.] 0. secs (0.u,0.s) -Chars 5492 - 5521 [rewrite~2!unfold_interp_fail.] 0.022 secs (0.022u,0.s) -Chars 5524 - 5535 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 5539 - 5591 [induction~EQ;~intros;~bcbn;~su...] 0.026 secs (0.026u,0.s) -Chars 5595 - 5596 [-] 0. secs (0.u,0.s) -Chars 5597 - 5602 [eret.] 0. secs (0.u,0.s) -Chars 5606 - 5607 [-] 0. secs (0.u,0.s) -Chars 5608 - 5613 [etau.] 0.001 secs (0.001u,0.s) -Chars 5617 - 5618 [-] 0. secs (0.u,0.s) -Chars 5619 - 5640 [ebind;~intros;~subst.] 0.017 secs (0.016u,0.s) -Chars 5641 - 5685 [destruct~u2;~econstructor;~eau...] 0.004 secs (0.004u,0.s) -Chars 5690 - 5691 [-] 0. secs (0.u,0.s) -Chars 5692 - 5738 [rewrite~tau_euttge,~unfold_int...] 0.013 secs (0.013u,0.s) -Chars 5741 - 5742 [-] 0. secs (0.u,0.s) -Chars 5743 - 5789 [rewrite~tau_euttge,~unfold_int...] 0.015 secs (0.015u,0.s) -Chars 5790 - 5794 [Qed.] 0.009 secs (0.009u,0.s) -Chars 5895 - 6028 [#[global]~Instance~interp_fail...] 0. secs (0.u,0.s) -Chars 6029 - 6035 [Proof.] 0. secs (0.u,0.s) -Chars 6038 - 6051 [repeat~intro.] 0. secs (0.u,0.s) -Chars 6054 - 6076 [rewrite~option_rel_eq.] 0.002 secs (0.002u,0.s) -Chars 6079 - 6108 [apply~interp_fail_eutt;~auto.] 0. secs (0.u,0.s) -Chars 6109 - 6113 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6115 - 6250 [Lemma~interp_fail_tau~{E}~{F}~...] 0. secs (0.u,0.s) -Chars 6251 - 6257 [Proof.] 0. secs (0.u,0.s) -Chars 6258 - 6285 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) -Chars 6286 - 6298 [reflexivity.] 0. secs (0.u,0.s) -Chars 6299 - 6303 [Qed.] 0. secs (0.u,0.s) -Chars 6305 - 6690 [Lemma~interp_fail_vis~{E~F~:~T...] 0. secs (0.u,0.s) -Chars 6691 - 6697 [Proof.] 0. secs (0.u,0.s) -Chars 6700 - 6727 [rewrite~unfold_interp_fail.] 0.001 secs (0.001u,0.s) -Chars 6728 - 6740 [reflexivity.] 0. secs (0.u,0.s) -Chars 6741 - 6745 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7182 - 7300 [Lemma~interp_fail_Ret~:~~~fora...] 0. secs (0.u,0.s) -Chars 7301 - 7307 [Proof.] 0. secs (0.u,0.s) -Chars 7310 - 7358 [intros;~rewrite~unfold_interp_...] 0.002 secs (0.002u,0.s) -Chars 7359 - 7363 [Qed.] 0. secs (0.u,0.s) -Chars 7365 - 7499 [Lemma~interp_fail_ret~:~~~fora...] 0. secs (0.u,0.s) -Chars 7500 - 7506 [Proof.] 0. secs (0.u,0.s) -Chars 7509 - 7557 [intros;~rewrite~unfold_interp_...] 0.001 secs (0.001u,0.s) -Chars 7558 - 7562 [Qed.] 0. secs (0.u,0.s) -Chars 7564 - 7712 [Lemma~interp_fail_trigger~{E~F...] 0. secs (0.u,0.s) -Chars 7713 - 7719 [Proof.] 0. secs (0.u,0.s) -Chars 7722 - 7743 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 7744 - 7768 [rewrite~interp_fail_vis.] 0. secs (0.u,0.s) -Chars 7771 - 7858 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) -Chars 7861 - 7881 [eapply~eutt_eq_bind.] 0. secs (0.u,0.s) -Chars 7884 - 7945 [intros~[];~try~reflexivity;~re...] 0.002 secs (0.002u,0.s) -Chars 7948 - 7960 [reflexivity.] 0. secs (0.u,0.s) -Chars 7961 - 7965 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7981 - 8269 [Lemma~interp_fail_bind~:~~~for...] 0. secs (0.u,0.s) -Chars 8270 - 8276 [Proof.] 0. secs (0.u,0.s) -Chars 8279 - 8315 [intros~X~Y~E~F;~coinduction;~i...] 0.001 secs (0.001u,0.s) -Chars 8318 - 8338 [rewrite~unfold_bind.] 0.013 secs (0.013u,0.s) -Chars 8341 - 8374 [rewrite~(unfold_interp_fail~h~t).] 0.014 secs (0.014u,0.s) -Chars 8377 - 8411 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) -Chars 8414 - 8415 [-] 0. secs (0.u,0.s) -Chars 8416 - 8435 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 8436 - 8448 [reflexivity.] 0. secs (0.u,0.s) -Chars 8452 - 8453 [-] 0. secs (0.u,0.s) -Chars 8454 - 8459 [taus.] 0. secs (0.u,0.s) -Chars 8460 - 8470 [apply~CIH.] 0. secs (0.u,0.s) -Chars 8474 - 8475 [-] 0. secs (0.u,0.s) -Chars 8476 - 8511 [rewrite~bind_bind,~interp_fail...] 0.025 secs (0.025u,0.s) -Chars 8516 - 8537 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 8544 - 8556 [destruct~u2.] 0. secs (0.u,0.s) -Chars 8562 - 8563 [+] 0. secs (0.u,0.s) -Chars 8564 - 8581 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) -Chars 8588 - 8593 [etau.] 0. secs (0.u,0.s) -Chars 8599 - 8600 [+] 0. secs (0.u,0.s) -Chars 8601 - 8620 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 8627 - 8645 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 8646 - 8650 [Qed.] 0.011 secs (0.011u,0.s) -Chars 8665 - 8895 [Lemma~interp_failure_bind'~:~~...] 0. secs (0.u,0.s) -Chars 8896 - 8902 [Proof.] 0. secs (0.u,0.s) -Chars 8905 - 8920 [intros~X~Y~E~F.] 0. secs (0.u,0.s) -Chars 8923 - 8927 [cbn.] 0. secs (0.u,0.s) -Chars 8930 - 8950 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 8955 - 9001 [rewrite~unfold_bind,~(unfold_i...] 0.026 secs (0.026u,0.s) -Chars 9004 - 9038 [destruct~(observe~t)~eqn:EQ;~b...] 0.004 secs (0.004u,0.s) -Chars 9041 - 9042 [-] 0. secs (0.u,0.s) -Chars 9043 - 9062 [rewrite~bind_ret_l.] 0.013 secs (0.012u,0.s) -Chars 9063 - 9075 [reflexivity.] 0. secs (0.u,0.s) -Chars 9079 - 9080 [-] 0. secs (0.u,0.s) -Chars 9081 - 9086 [etau.] 0.01 secs (0.01u,0.s) -Chars 9087 - 9097 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9101 - 9102 [-] 0. secs (0.u,0.s) -Chars 9103 - 9138 [rewrite~bind_bind,~interp_fail...] 0.025 secs (0.024u,0.s) -Chars 9143 - 9164 [ebind;~intros;~subst.] 0.007 secs (0.007u,0.s) -Chars 9170 - 9182 [destruct~u2.] 0. secs (0.u,0.s) -Chars 9188 - 9189 [+] 0. secs (0.u,0.s) -Chars 9190 - 9207 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) -Chars 9214 - 9219 [etau.] 0. secs (0.u,0.s) -Chars 9225 - 9226 [+] 0. secs (0.u,0.s) -Chars 9227 - 9246 [rewrite~bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 9253 - 9265 [reflexivity.] 0. secs (0.u,0.s) -Chars 9266 - 9270 [Qed.] 0.011 secs (0.011u,0.s) diff --git a/theories/Events/Map.v.timing b/theories/Events/Map.v.timing deleted file mode 100644 index f1b01046..00000000 --- a/theories/Events/Map.v.timing +++ /dev/null @@ -1,25 +0,0 @@ -Chars 39 - 62 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 63 - 87 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 89 - 121 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) -Chars 122 - 143 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 145 - 181 [From~ExtLib.Structures~Require...] 0.001 secs (0.u,0.s) -Chars 183 - 374 [From~ITree~Require~Import~Basi...] 0.077 secs (0.072u,0.004s) -Chars 376 - 410 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 427 - 439 [Section~Map.] 0. secs (0.u,0.s) -Chars 443 - 466 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) -Chars 470 - 599 [Variant~mapE~:~Type~->~Type~:=...] 0. secs (0.u,0.s) -Chars 603 - 679 [Definition~insert~{E}~`{mapE~-...] 0. secs (0.u,0.s) -Chars 682 - 759 [Definition~lookup~{E}~`{mapE~-...] 0. secs (0.u,0.s) -Chars 762 - 833 [Definition~remove~{E}~`{mapE~-...] 0. secs (0.u,0.s) -Chars 837 - 1062 [Definition~lookup_def~{E}~`{ma...] 0. secs (0.u,0.s) -Chars 1066 - 1089 [Import~Structures.Maps.] 0. secs (0.u,0.s) -Chars 1093 - 1114 [Context~{map~:~Type}.] 0. secs (0.u,0.s) -Chars 1117 - 1143 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1147 - 1401 [Definition~handle_map~{E}~:~ma...] 0. secs (0.u,0.s) -Chars 1405 - 1522 [Definition~run_map~{E}~:~itree...] 0. secs (0.u,0.s) -Chars 1524 - 1532 [End~Map.] 0. secs (0.u,0.s) -Chars 1534 - 1561 [Arguments~insert~{K~V~E~_}.] 0. secs (0.u,0.s) -Chars 1562 - 1589 [Arguments~lookup~{K~V~E~_}.] 0. secs (0.u,0.s) -Chars 1590 - 1617 [Arguments~remove~{K~V~E~_}.] 0. secs (0.u,0.s) -Chars 1618 - 1649 [Arguments~lookup_def~{K~V~E~_}.] 0. secs (0.u,0.s) -Chars 1650 - 1686 [Arguments~run_map~{K~V~map~M~_...] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefault.v.timing b/theories/Events/MapDefault.v.timing deleted file mode 100644 index 959eacfb..00000000 --- a/theories/Events/MapDefault.v.timing +++ /dev/null @@ -1,28 +0,0 @@ -Chars 87 - 110 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 111 - 135 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 137 - 181 [From~ExtLib~Require~Import~Cor...] 0.004 secs (0.003u,0.001s) -Chars 183 - 239 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) -Chars 241 - 497 [From~ITree~Require~Import~Basi...] 0.039 secs (0.031u,0.007s) -Chars 499 - 533 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 550 - 562 [Section~Map.] 0. secs (0.u,0.s) -Chars 566 - 589 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) -Chars 593 - 728 [Variant~mapE~(d~:~V)~:~Type~->...] 0. secs (0.u,0.s) -Chars 732 - 753 [Arguments~Insert~{d}.] 0. secs (0.u,0.s) -Chars 756 - 780 [Arguments~LookupDef~{d}.] 0. secs (0.u,0.s) -Chars 783 - 804 [Arguments~Remove~{d}.] 0. secs (0.u,0.s) -Chars 810 - 892 [Definition~insert~{E}~{d}~`{ma...] 0. secs (0.u,0.s) -Chars 895 - 976 [Definition~lookup_def~{E}~{d}~...] 0. secs (0.u,0.s) -Chars 979 - 1056 [Definition~remove~{E}~{d}~`{ma...] 0.014 secs (0.013u,0.s) -Chars 1060 - 1083 [Import~Structures.Maps.] 0. secs (0.u,0.s) -Chars 1087 - 1108 [Context~{map~:~Type}.] 0. secs (0.u,0.s) -Chars 1111 - 1137 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 1141 - 1268 [Definition~lookup_default~{K}~...] 0.002 secs (0.002u,0.s) -Chars 1274 - 1540 [Definition~handle_map~{E}~{d}~...] 0. secs (0.u,0.s) -Chars 1830 - 1966 [Definition~interp_map~{E}~{d}~...] 0.001 secs (0.001u,0.s) -Chars 2165 - 2273 [Definition~eq_map~(d~:~V)~(m1~...] 0. secs (0.u,0.s) -Chars 2277 - 2285 [End~Map.] 0. secs (0.u,0.s) -Chars 2287 - 2316 [Arguments~insert~{K~V~E~d~_}.] 0. secs (0.u,0.s) -Chars 2317 - 2350 [Arguments~lookup_def~{K~V~E~d~_}.] 0. secs (0.u,0.s) -Chars 2351 - 2380 [Arguments~remove~{K~V~E~d~_}.] 0. secs (0.u,0.s) -Chars 2381 - 2423 [Arguments~interp_map~{K~V~map~...] 0. secs (0.u,0.s) -Chars 2424 - 2455 [Arguments~eq_map~{K~V~map~M~d}.] 0. secs (0.u,0.s) diff --git a/theories/Events/MapDefaultFacts.v.timing b/theories/Events/MapDefaultFacts.v.timing deleted file mode 100644 index 7305747b..00000000 --- a/theories/Events/MapDefaultFacts.v.timing +++ /dev/null @@ -1,211 +0,0 @@ -Chars 87 - 123 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 126 - 149 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 150 - 174 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 176 - 213 [From~Stdlib~Require~Import~Mor...] 0.002 secs (0.u,0.001s) -Chars 215 - 259 [From~ExtLib~Require~Import~Cor...] 0. secs (0.u,0.s) -Chars 261 - 302 [From~ExtLib.Structures~Require...] 0. secs (0.u,0.s) -Chars 304 - 470 [From~ITree~Require~Import~Basi...] 0.163 secs (0.144u,0.017s) -Chars 472 - 506 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 507 - 530 [Import~Structures.Maps.] 0. secs (0.u,0.s) -Chars 547 - 564 [Section~MapFacts.] 0. secs (0.u,0.s) -Chars 568 - 591 [Variables~(K~V~:~Type).] 0. secs (0.u,0.s) -Chars 594 - 615 [Context~{map~:~Type}.] 0. secs (0.u,0.s) -Chars 618 - 644 [Context~{M~:~Map~K~V~map}.] 0. secs (0.u,0.s) -Chars 647 - 673 [Context~{MOk~:~MapOk~eq~M}.] 0. secs (0.u,0.s) -Chars 676 - 705 [Context~{Kdec~:~@RelDec~K~eq}.] 0. secs (0.u,0.s) -Chars 708 - 746 [Context~{KdecOk~:~RelDec_Corre...] 0. secs (0.u,0.s) -Chars 780 - 845 [Lemma~lookup_add_eq~:~forall~k...] 0. secs (0.u,0.s) -Chars 848 - 854 [Proof.] 0. secs (0.u,0.s) -Chars 859 - 866 [intros.] 0. secs (0.u,0.s) -Chars 871 - 914 [rewrite~mapsto_lookup;~apply~m...] 0. secs (0.u,0.s) -Chars 920 - 929 [Unshelve.] 0. secs (0.u,0.s) -Chars 934 - 955 [2:~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 958 - 962 [Qed.] 0. secs (0.u,0.s) -Chars 996 - 1081 [Lemma~lookup_add_neq~:~~~foral...] 0. secs (0.u,0.s) -Chars 1084 - 1090 [Proof.] 0. secs (0.u,0.s) -Chars 1095 - 1102 [intros.] 0. secs (0.u,0.s) -Chars 1107 - 1179 [generalize~(@mapsto_add_neq~_~...] 0. secs (0.u,0.s) -Chars 1184 - 1221 [setoid_rewrite~~<-~mapsto_look...] 0.003 secs (0.002u,0.s) -Chars 1226 - 1265 [destruct~(lookup~k~s)~as~[v'|~...] 0. secs (0.u,0.s) -Chars 1270 - 1271 [-] 0. secs (0.u,0.s) -Chars 1272 - 1290 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1297 - 1311 [apply~H;~auto.] 0. secs (0.u,0.s) -Chars 1316 - 1317 [-] 0. secs (0.u,0.s) -Chars 1318 - 1386 [destruct~(lookup~k~(add~k'~v~s...] 0. secs (0.u,0.s) -Chars 1393 - 1411 [specialize~(H~v').] 0. secs (0.u,0.s) -Chars 1418 - 1442 [symmetry;~apply~H;~auto.] 0. secs (0.u,0.s) -Chars 1445 - 1449 [Qed.] 0. secs (0.u,0.s) -Chars 1483 - 1552 [Lemma~lookup_remove_eq~:~foral...] 0. secs (0.u,0.s) -Chars 1555 - 1561 [Proof.] 0. secs (0.u,0.s) -Chars 1566 - 1573 [intros.] 0. secs (0.u,0.s) -Chars 1578 - 1656 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) -Chars 1661 - 1689 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) -Chars 1694 - 1734 [exfalso;~eapply~mapsto_remove_...] 0. secs (0.u,0.s) -Chars 1737 - 1741 [Qed.] 0. secs (0.u,0.s) -Chars 1775 - 1866 [Lemma~lookup_remove_neq~:~~~fo...] 0. secs (0.u,0.s) -Chars 1869 - 1875 [Proof.] 0. secs (0.u,0.s) -Chars 1880 - 1887 [intros.] 0. secs (0.u,0.s) -Chars 1892 - 1953 [match~goal~with~|~|-~?x~=~_~=>...] 0. secs (0.u,0.s) -Chars 1958 - 1959 [-] 0. secs (0.u,0.s) -Chars 1960 - 1988 [rewrite~mapsto_lookup~in~EQ.] 0. secs (0.u,0.s) -Chars 1995 - 2031 [apply~mapsto_remove_neq~in~EQ;...] 0. secs (0.u,0.s) -Chars 2038 - 2077 [symmetry;~rewrite~mapsto_looku...] 0. secs (0.u,0.s) -Chars 2082 - 2083 [-] 0. secs (0.u,0.s) -Chars 2085 - 2159 [match~goal~with~|~|-~_~=~?x~=>...] 0. secs (0.u,0.s) -Chars 2167 - 2196 [rewrite~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) -Chars 2204 - 2243 [eapply~mapsto_remove_neq~in~EQ...] 0.022 secs (0.021u,0.001s) -Chars 2251 - 2283 [rewrite~<-~mapsto_lookup~in~EQ'.] 0. secs (0.u,0.s) -Chars 2291 - 2318 [rewrite~EQ~in~EQ';~inv~EQ'.] 0. secs (0.u,0.s) -Chars 2326 - 2335 [Unshelve.] 0. secs (0.u,0.s) -Chars 2343 - 2366 [all:~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2369 - 2373 [Qed.] 0. secs (0.u,0.s) -Chars 2377 - 2441 [#[global]~Instance~eq_map_refl...] 0. secs (0.u,0.s) -Chars 2444 - 2450 [Proof.] 0. secs (0.u,0.s) -Chars 2455 - 2459 [red.] 0. secs (0.u,0.s) -Chars 2460 - 2467 [intros.] 0. secs (0.u,0.s) -Chars 2468 - 2482 [unfold~eq_map.] 0. secs (0.u,0.s) -Chars 2483 - 2489 [tauto.] 0. secs (0.u,0.s) -Chars 2492 - 2496 [Qed.] 0. secs (0.u,0.s) -Chars 2504 - 2567 [#[global]~Instance~eq_map_sym~...] 0. secs (0.u,0.s) -Chars 2570 - 2576 [Proof.] 0. secs (0.u,0.s) -Chars 2581 - 2594 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2599 - 2618 [unfold~eq_map~in~H.] 0. secs (0.u,0.s) -Chars 2623 - 2633 [rewrite~H.] 0. secs (0.u,0.s) -Chars 2638 - 2650 [reflexivity.] 0. secs (0.u,0.s) -Chars 2653 - 2657 [Qed.] 0. secs (0.u,0.s) -Chars 2661 - 2727 [#[global]~Instance~eq_map_tran...] 0. secs (0.u,0.s) -Chars 2730 - 2736 [Proof.] 0. secs (0.u,0.s) -Chars 2741 - 2754 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2760 - 2779 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) -Chars 2784 - 2794 [rewrite~H.] 0. secs (0.u,0.s) -Chars 2795 - 2806 [rewrite~H0.] 0. secs (0.u,0.s) -Chars 2807 - 2819 [reflexivity.] 0. secs (0.u,0.s) -Chars 2822 - 2826 [Qed.] 0. secs (0.u,0.s) -Chars 2831 - 2849 [Section~Relations.] 0. secs (0.u,0.s) -Chars 2852 - 2875 [Context~{R1~R2~:~Type}.] 0. secs (0.u,0.s) -Chars 2878 - 2909 [Variable~(RR~:~R1~->~R2~->~Prop).] 0. secs (0.u,0.s) -Chars 2913 - 3133 [Definition~map_default_eq~d~{E...] 0. secs (0.u,0.s) -Chars 3137 - 3151 [End~Relations.] 0. secs (0.u,0.s) -Chars 3155 - 3298 [Lemma~eq_map_add~:~~~forall~(d...] 0. secs (0.u,0.s) -Chars 3301 - 3307 [Proof.] 0. secs (0.u,0.s) -Chars 3312 - 3333 [intros~d~s1~s2~k~v~H.] 0. secs (0.u,0.s) -Chars 3338 - 3357 [unfold~eq_map~in~*.] 0. secs (0.u,0.s) -Chars 3362 - 3372 [intros~k'.] 0. secs (0.u,0.s) -Chars 3377 - 3403 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) -Chars 3408 - 3409 [-] 0. secs (0.u,0.s) -Chars 3410 - 3416 [subst.] 0. secs (0.u,0.s) -Chars 3423 - 3450 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) -Chars 3457 - 3494 [rewrite~2!lookup_add_eq;~refle...] 0. secs (0.u,0.s) -Chars 3499 - 3500 [-] 0. secs (0.u,0.s) -Chars 3501 - 3528 [unfold~lookup_default~in~*.] 0. secs (0.u,0.s) -Chars 3535 - 3566 [rewrite~2!lookup_add_neq;~auto.] 0. secs (0.u,0.s) -Chars 3569 - 3573 [Qed.] 0. secs (0.u,0.s) -Chars 3583 - 3723 [Lemma~eq_map_remove~:~~~forall...] 0. secs (0.u,0.s) -Chars 3726 - 3732 [Proof.] 0. secs (0.u,0.s) -Chars 3737 - 3756 [intros~d~s1~s2~k~H.] 0. secs (0.u,0.s) -Chars 3761 - 3791 [unfold~eq_map~in~*;~intros~k'.] 0. secs (0.u,0.s) -Chars 3796 - 3818 [unfold~lookup_default.] 0. secs (0.u,0.s) -Chars 3823 - 3849 [destruct~(rel_dec_p~k~k').] 0. secs (0.u,0.s) -Chars 3854 - 3855 [-] 0. secs (0.u,0.s) -Chars 3856 - 3896 [subst;~rewrite~2!lookup_remove...] 0. secs (0.u,0.s) -Chars 3901 - 3902 [-] 0. secs (0.u,0.s) -Chars 3903 - 3937 [rewrite~2!lookup_remove_neq;~a...] 0. secs (0.u,0.s) -Chars 3944 - 3952 [apply~H.] 0. secs (0.u,0.s) -Chars 3955 - 3959 [Qed.] 0. secs (0.u,0.s) -Chars 3965 - 4175 [Lemma~handle_map_eq~:~~~forall...] 0. secs (0.u,0.s) -Chars 4178 - 4184 [Proof.] 0. secs (0.u,0.s) -Chars 4189 - 4196 [intros.] 0. secs (0.u,0.s) -Chars 4201 - 4262 [destruct~m;~cbn;~red;~apply~eq...] 0.001 secs (0.001u,0.s) -Chars 4267 - 4268 [-] 0. secs (0.u,0.s) -Chars 4269 - 4286 [apply~eq_map_add.] 0. secs (0.u,0.s) -Chars 4287 - 4298 [assumption.] 0. secs (0.u,0.s) -Chars 4303 - 4304 [-] 0. secs (0.u,0.s) -Chars 4305 - 4325 [apply~eq_map_remove.] 0. secs (0.u,0.s) -Chars 4326 - 4337 [assumption.] 0. secs (0.u,0.s) -Chars 4340 - 4344 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4349 - 4462 [#[global]~Instance~Proper_hand...] 0. secs (0.u,0.s) -Chars 4465 - 4471 [Proof.] 0. secs (0.u,0.s) -Chars 4476 - 4489 [repeat~intro.] 0. secs (0.u,0.s) -Chars 4494 - 4500 [subst.] 0. secs (0.u,0.s) -Chars 4505 - 4525 [apply~handle_map_eq.] 0. secs (0.u,0.s) -Chars 4530 - 4541 [assumption.] 0. secs (0.u,0.s) -Chars 4544 - 4548 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4691 - 4805 [Lemma~interp_map_id~d~{E}~{X}~...] 0. secs (0.u,0.s) -Chars 4808 - 4814 [Proof.] 0. secs (0.u,0.s) -Chars 4819 - 4861 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) -Chars 4866 - 4883 [revert~t~s1~s2~H.] 0. secs (0.u,0.s) -Chars 4888 - 4900 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4906 - 4913 [intros.] 0. secs (0.u,0.s) -Chars 4918 - 4953 [repeat~rewrite~unfold_interp_s...] 0.06 secs (0.06u,0.s) -Chars 4954 - 4975 [unfold~_interp_state.] 0. secs (0.u,0.s) -Chars 4980 - 5001 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) -Chars 5006 - 5007 [-] 0. secs (0.u,0.s) -Chars 5008 - 5013 [eret.] 0. secs (0.u,0.s) -Chars 5019 - 5020 [-] 0. secs (0.u,0.s) -Chars 5021 - 5026 [etau.] 0.001 secs (0.001u,0.s) -Chars 5032 - 5033 [-] 0. secs (0.u,0.s) -Chars 5034 - 5040 [ebind.] 0.009 secs (0.009u,0.s) -Chars 5048 - 5066 [unfold~pure_state.] 0. secs (0.u,0.s) -Chars 5073 - 5084 [destruct~e.] 0. secs (0.u,0.s) -Chars 5091 - 5092 [+] 0. secs (0.u,0.s) -Chars 5093 - 5097 [cbn.] 0. secs (0.u,0.s) -Chars 5098 - 5103 [step.] 0.003 secs (0.003u,0.s) -Chars 5104 - 5129 [now~eapply~handle_map_eq.] 0. secs (0.u,0.s) -Chars 5137 - 5138 [+] 0. secs (0.u,0.s) -Chars 5139 - 5143 [cbn.] 0. secs (0.u,0.s) -Chars 5144 - 5149 [evis.] 0.001 secs (0.001u,0.s) -Chars 5150 - 5161 [step;~eret.] 0.002 secs (0.002u,0.s) -Chars 5169 - 5170 [+] 0. secs (0.u,0.s) -Chars 5171 - 5178 [intros.] 0. secs (0.u,0.s) -Chars 5179 - 5191 [destruct~u1.] 0. secs (0.u,0.s) -Chars 5192 - 5204 [destruct~u2.] 0. secs (0.u,0.s) -Chars 5205 - 5209 [cbn.] 0. secs (0.u,0.s) -Chars 5218 - 5263 [destruct~H0~as~[H1~H2];~cbn~in...] 0. secs (0.u,0.s) -Chars 5272 - 5277 [etau.] 0.001 secs (0.001u,0.s) -Chars 5281 - 5285 [Qed.] 0.012 secs (0.012u,0.s) -Chars 5290 - 5440 [#[global]~Instance~interp_map_...] 0. secs (0.u,0.s) -Chars 5443 - 5449 [Proof.] 0. secs (0.u,0.s) -Chars 5454 - 5488 [unfold~map_default_eq,~interp_...] 0. secs (0.u,0.s) -Chars 5493 - 5506 [repeat~intro.] 0. secs (0.u,0.s) -Chars 5511 - 5533 [revert~x~y~H~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5538 - 5550 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 5556 - 5563 [intros.] 0. secs (0.u,0.s) -Chars 5568 - 5597 [rewrite~!unfold_interp_state.] 0.029 secs (0.028u,0.s) -Chars 5603 - 5613 [step~in~H.] 0. secs (0.u,0.s) -Chars 5619 - 5635 [revert~s1~s2~H0.] 0. secs (0.u,0.s) -Chars 5640 - 5673 [induction~H;~intros;~subst;~bcbn.] 0.03 secs (0.03u,0.s) -Chars 5679 - 5680 [-] 0. secs (0.u,0.s) -Chars 5681 - 5686 [eret.] 0.001 secs (0.001u,0.s) -Chars 5692 - 5693 [-] 0. secs (0.u,0.s) -Chars 5694 - 5699 [etau.] 0.001 secs (0.001u,0.s) -Chars 5704 - 5705 [-] 0. secs (0.u,0.s) -Chars 5706 - 5712 [ebind.] 0.017 secs (0.017u,0.s) -Chars 5719 - 5720 [+] 0. secs (0.u,0.s) -Chars 5721 - 5734 [unfold~case_.] 0. secs (0.u,0.s) -Chars 5735 - 5763 [unfold~Case_sum1,~case_sum1.] 0. secs (0.u,0.s) -Chars 5772 - 5782 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 5783 - 5794 [destruct~e.] 0. secs (0.u,0.s) -Chars 5803 - 5804 [*] 0. secs (0.u,0.s) -Chars 5805 - 5825 [apply~handle_map_eq.] 0. secs (0.u,0.s) -Chars 5826 - 5837 [assumption.] 0. secs (0.u,0.s) -Chars 5846 - 5847 [*] 0. secs (0.u,0.s) -Chars 5848 - 5866 [unfold~pure_state.] 0. secs (0.u,0.s) -Chars 5867 - 5872 [step.] 0.001 secs (0.001u,0.s) -Chars 5873 - 5878 [evis.] 0.001 secs (0.001u,0.s) -Chars 5879 - 5884 [step.] 0.001 secs (0.001u,0.s) -Chars 5885 - 5890 [eret.] 0. secs (0.u,0.s) -Chars 5898 - 5899 [+] 0. secs (0.u,0.s) -Chars 5900 - 5907 [intros.] 0. secs (0.u,0.s) -Chars 5908 - 5913 [etau.] 0.006 secs (0.006u,0.s) -Chars 5921 - 5927 [inv~H.] 0.017 secs (0.017u,0.s) -Chars 5928 - 5944 [rewrite~snd_rel.] 0. secs (0.u,0.s) -Chars 5945 - 5963 [eapply~CIH;~eauto.] 0.001 secs (0.001u,0.s) -Chars 5964 - 5974 [apply~REL.] 0. secs (0.u,0.s) -Chars 5979 - 5980 [-] 0. secs (0.u,0.s) -Chars 5981 - 6021 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.016u,0.s) -Chars 6028 - 6047 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6053 - 6054 [-] 0. secs (0.u,0.s) -Chars 6055 - 6095 [rewrite~tau_euttge,~unfold_int...] 0.018 secs (0.018u,0.s) -Chars 6102 - 6121 [now~eapply~IHeqitF.] 0. secs (0.u,0.s) -Chars 6125 - 6129 [Qed.] 0.016 secs (0.015u,0.s) -Chars 6131 - 6144 [End~MapFacts.] 0.007 secs (0.007u,0.s) diff --git a/theories/Events/Nondeterminism.v.timing b/theories/Events/Nondeterminism.v.timing deleted file mode 100644 index bfe5cb1f..00000000 --- a/theories/Events/Nondeterminism.v.timing +++ /dev/null @@ -1,11 +0,0 @@ -Chars 84 - 107 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 108 - 132 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 134 - 166 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) -Chars 167 - 188 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 190 - 319 [From~ITree~Require~Import~Basi...] 0.053 secs (0.046u,0.007s) -Chars 374 - 428 [Variant~nondetE~:~Type~->~Prop...] 0. secs (0.u,0.s) -Chars 469 - 592 [Definition~or~{E}~`{nondetE~-<...] 0. secs (0.u,0.s) -Chars 711 - 923 [Definition~choose1~{E}~`{nonde...] 0. secs (0.u,0.s) -Chars 982 - 1212 [Definition~remove_from~{X}~:~l...] 0.002 secs (0.002u,0.s) -Chars 1347 - 1383 [Variant~no_choice~:~Set~:=~~~~...] 0. secs (0.u,0.s) -Chars 1502 - 1744 [Definition~choose~{E}~`{nondet...] 0. secs (0.u,0.s) diff --git a/theories/Events/Reader.v.timing b/theories/Events/Reader.v.timing deleted file mode 100644 index d67e8a40..00000000 --- a/theories/Events/Reader.v.timing +++ /dev/null @@ -1,14 +0,0 @@ -Chars 65 - 88 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 89 - 113 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 115 - 147 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) -Chars 148 - 169 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 171 - 341 [From~ITree~Require~Import~Basi...] 0.052 secs (0.045u,0.007s) -Chars 358 - 373 [Section~Reader.] 0. secs (0.u,0.s) -Chars 375 - 397 [Variable~(Env~:~Type).] 0. secs (0.u,0.s) -Chars 399 - 453 [Variant~readerE~:~Type~->~Prop...] 0. secs (0.u,0.s) -Chars 455 - 521 [Definition~ask~{E}~`{readerE~-...] 0. secs (0.u,0.s) -Chars 523 - 639 [Definition~eval_reader~{E}~:~E...] 0. secs (0.u,0.s) -Chars 641 - 761 [Definition~run_reader~{E}~:~En...] 0. secs (0.u,0.s) -Chars 763 - 774 [End~Reader.] 0. secs (0.u,0.s) -Chars 776 - 800 [Arguments~ask~{Env~E~_}.] 0. secs (0.u,0.s) -Chars 801 - 836 [Arguments~run_reader~{Env~E}~_...] 0. secs (0.u,0.s) diff --git a/theories/Events/State.v.timing b/theories/Events/State.v.timing deleted file mode 100644 index 0ddcb43e..00000000 --- a/theories/Events/State.v.timing +++ /dev/null @@ -1,23 +0,0 @@ -Chars 81 - 154 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 156 - 356 [From~ITree~Require~Import~Basi...] 0.031 secs (0.025u,0.006s) -Chars 358 - 392 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 394 - 423 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 591 - 756 [Definition~interp_state~{E}~{M...] 0.001 secs (0.001u,0.s) -Chars 758 - 804 [Arguments~interp_state~{E~M~S~...] 0. secs (0.u,0.s) -Chars 806 - 820 [Section~State.] 0. secs (0.u,0.s) -Chars 824 - 844 [Variable~(S~:~Type).] 0. secs (0.u,0.s) -Chars 848 - 927 [Variant~stateE~:~Type~->~Type~...] 0. secs (0.u,0.s) -Chars 931 - 990 [Definition~get~{E}~`{stateE~-<...] 0. secs (0.u,0.s) -Chars 993 - 1060 [Definition~put~{E}~`{stateE~-<...] 0. secs (0.u,0.s) -Chars 1064 - 1224 [Definition~h_state~{E}~:~state...] 0. secs (0.u,0.s) -Chars 1353 - 1455 [Definition~pure_state~{S}~{E}~...] 0. secs (0.u,0.s) -Chars 1459 - 1579 [Definition~run_state~{E}~:~itr...] 0.001 secs (0.u,0.s) -Chars 1581 - 1591 [End~State.] 0. secs (0.u,0.s) -Chars 1593 - 1615 [Arguments~get~{S~E~_}.] 0. secs (0.u,0.s) -Chars 1616 - 1638 [Arguments~put~{S~E~_}.] 0. secs (0.u,0.s) -Chars 1639 - 1673 [Arguments~run_state~{S~E}~[_]~...] 0. secs (0.u,0.s) -Chars 1715 - 1733 [Section~eff_hom_e.] 0. secs (0.u,0.s) -Chars 1736 - 1765 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 2030 - 2116 [CoInductive~eff_hom_e~:~Type~:...] 0. secs (0.u,0.s) -Chars 2120 - 2407 [Definition~interp_e~(h~:~eff_h...] 0.002 secs (0.002u,0.s) -Chars 2409 - 2423 [End~eff_hom_e.] 0. secs (0.u,0.s) diff --git a/theories/Events/StateFacts.v.timing b/theories/Events/StateFacts.v.timing deleted file mode 100644 index 013360ca..00000000 --- a/theories/Events/StateFacts.v.timing +++ /dev/null @@ -1,248 +0,0 @@ -Chars 57 - 93 [From~Coinduction~Require~Impor...] 0.006 secs (0.004u,0.001s) -Chars 96 - 149 [From~Stdlib~Require~Import~Pro...] 0.002 secs (0.u,0.001s) -Chars 152 - 480 [From~ITree~Require~Import~Basi...] 0.057 secs (0.049u,0.008s) -Chars 482 - 504 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 506 - 535 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 537 - 551 [Import~Monads.] 0. secs (0.u,0.s) -Chars 568 - 870 [Definition~_interp_state~{E}~{...] 0.001 secs (0.001u,0.s) -Chars 872 - 1052 [Lemma~unfold_interp_state~{E}~...] 0. secs (0.u,0.s) -Chars 1053 - 1059 [Proof.] 0. secs (0.u,0.s) -Chars 1062 - 1157 [unfold~interp_state,~interp,~B...] 0. secs (0.u,0.s) -Chars 1160 - 1185 [rewrite~unfold_iter;~cbn.] 0.006 secs (0.006u,0.s) -Chars 1188 - 1210 [destruct~observe;~cbn.] 0.001 secs (0.001u,0.s) -Chars 1213 - 1214 [-] 0. secs (0.u,0.s) -Chars 1215 - 1236 [rewrite~2!bind_ret_l.] 0.039 secs (0.039u,0.s) -Chars 1237 - 1249 [reflexivity.] 0. secs (0.u,0.s) -Chars 1252 - 1253 [-] 0. secs (0.u,0.s) -Chars 1254 - 1275 [rewrite~2!bind_ret_l.] 0.016 secs (0.014u,0.001s) -Chars 1280 - 1292 [reflexivity.] 0. secs (0.u,0.s) -Chars 1295 - 1296 [-] 0. secs (0.u,0.s) -Chars 1297 - 1330 [rewrite~bind_map,~bind_bind;~cbn.] 0.017 secs (0.014u,0.002s) -Chars 1331 - 1357 [setoid_rewrite~bind_ret_l.] 0.009 secs (0.009u,0.s) -Chars 1362 - 1391 [apply~eqit_bind;~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 1392 - 1396 [Qed.] 0.012 secs (0.012u,0.s) -Chars 1398 - 1575 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) -Chars 1576 - 1582 [Proof.] 0. secs (0.u,0.s) -Chars 1585 - 1600 [revert_until~R.] 0. secs (0.u,0.s) -Chars 1603 - 1615 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 1616 - 1640 [intros~h~x~y~H0~x2~_~[].] 0. secs (0.u,0.s) -Chars 1643 - 1672 [rewrite~!unfold_interp_state.] 0.026 secs (0.025u,0.s) -Chars 1675 - 1686 [step~in~H0.] 0. secs (0.u,0.s) -Chars 1690 - 1732 [destruct~H0;~subst;~try~discri...] 0.001 secs (0.001u,0.s) -Chars 1735 - 1736 [-] 0. secs (0.u,0.s) -Chars 1737 - 1749 [reflexivity.] 0. secs (0.u,0.s) -Chars 1753 - 1754 [-] 0. secs (0.u,0.s) -Chars 1755 - 1775 [taus;~now~apply~CIH.] 0. secs (0.u,0.s) -Chars 1780 - 1781 [-] 0. secs (0.u,0.s) -Chars 1782 - 1789 [to_mon.] 0. secs (0.u,0.s) -Chars 1790 - 1811 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 1818 - 1819 [+] 0. secs (0.u,0.s) -Chars 1820 - 1842 [taus;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 1844 - 1848 [Qed.] 0.008 secs (0.008u,0.s) -Chars 1850 - 2032 [Lemma~interp_state_ret~{E~F~:~...] 0. secs (0.u,0.s) -Chars 2033 - 2039 [Proof.] 0. secs (0.u,0.s) -Chars 2042 - 2060 [rewrite~itree_eta.] 0.001 secs (0.001u,0.s) -Chars 2061 - 2073 [reflexivity.] 0. secs (0.u,0.s) -Chars 2074 - 2078 [Qed.] 0. secs (0.u,0.s) -Chars 2080 - 2323 [Lemma~interp_state_vis~{E~F~:~...] 0. secs (0.u,0.s) -Chars 2324 - 2330 [Proof.] 0. secs (0.u,0.s) -Chars 2333 - 2374 [rewrite~unfold_interp_state;~r...] 0.001 secs (0.001u,0.s) -Chars 2375 - 2379 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2381 - 2563 [Lemma~interp_state_tau~{E~F~:~...] 0. secs (0.u,0.s) -Chars 2564 - 2570 [Proof.] 0. secs (0.u,0.s) -Chars 2573 - 2614 [rewrite~unfold_interp_state;~r...] 0.001 secs (0.001u,0.s) -Chars 2615 - 2619 [Qed.] 0. secs (0.u,0.s) -Chars 2621 - 2828 [Lemma~interp_state_trigger_eqi...] 0. secs (0.u,0.s) -Chars 2829 - 2835 [Proof.] 0. secs (0.u,0.s) -Chars 2838 - 2859 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 2860 - 2885 [rewrite~interp_state_vis.] 0.001 secs (0.001u,0.s) -Chars 2888 - 2922 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 2925 - 2935 [intros~[].] 0. secs (0.u,0.s) -Chars 2936 - 2961 [rewrite~interp_state_ret.] 0.002 secs (0.002u,0.s) -Chars 2962 - 2974 [reflexivity.] 0. secs (0.u,0.s) -Chars 2975 - 2979 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2981 - 3154 [Lemma~interp_state_trigger~{E~...] 0. secs (0.u,0.s) -Chars 3155 - 3161 [Proof.] 0. secs (0.u,0.s) -Chars 3164 - 3185 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 3186 - 3211 [rewrite~interp_state_vis.] 0. secs (0.u,0.s) -Chars 3214 - 3301 [match~goal~with~|~|-~?y~≈~?x~=...] 0.001 secs (0.001u,0.s) -Chars 3304 - 3338 [eapply~eqit_bind;~try~reflexiv...] 0. secs (0.u,0.s) -Chars 3341 - 3386 [intros~[];~rewrite~interp_stat...] 0.002 secs (0.002u,0.s) -Chars 3389 - 3401 [reflexivity.] 0. secs (0.u,0.s) -Chars 3402 - 3406 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3408 - 3695 [Lemma~interp_state_bind~{E~F~:...] 0. secs (0.u,0.s) -Chars 3696 - 3702 [Proof.] 0. secs (0.u,0.s) -Chars 3705 - 3718 [revert~t~k~s.] 0. secs (0.u,0.s) -Chars 3721 - 3733 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 3737 - 3750 [intros~t~k~s.] 0. secs (0.u,0.s) -Chars 3753 - 3773 [rewrite~unfold_bind.] 0.012 secs (0.012u,0.s) -Chars 3776 - 3810 [rewrite~(unfold_interp_state~f...] 0.017 secs (0.017u,0.s) -Chars 3813 - 3834 [destruct~(observe~t).] 0. secs (0.u,0.s) -Chars 3837 - 3838 [-] 0. secs (0.u,0.s) -Chars 3839 - 3844 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3845 - 3865 [rewrite~!bind_ret_l.] 0.014 secs (0.014u,0.s) -Chars 3871 - 3889 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 3892 - 3893 [-] 0. secs (0.u,0.s) -Chars 3894 - 3899 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3900 - 3905 [taus.] 0. secs (0.u,0.s) -Chars 3906 - 3916 [apply~CIH.] 0.001 secs (0.001u,0.s) -Chars 3919 - 3920 [-] 0. secs (0.u,0.s) -Chars 3921 - 3926 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3927 - 3963 [rewrite~interp_state_vis,~bind...] 0.026 secs (0.025u,0.s) -Chars 3968 - 3989 [ebind;~intros;~subst.] 0.006 secs (0.006u,0.s) -Chars 3997 - 4014 [rewrite~bind_tau.] 0.015 secs (0.015u,0.s) -Chars 4021 - 4026 [taus.] 0. secs (0.u,0.s) -Chars 4027 - 4041 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 4043 - 4047 [Qed.] 0.009 secs (0.009u,0.s) -Chars 4049 - 4262 [#[global]~Instance~eutt_interp...] 0.001 secs (0.001u,0.s) -Chars 4263 - 4269 [Proof.] 0. secs (0.u,0.s) -Chars 4272 - 4285 [repeat~intro.] 0. secs (0.u,0.s) -Chars 4286 - 4292 [subst.] 0. secs (0.u,0.s) -Chars 4293 - 4309 [revert_until~RR.] 0. secs (0.u,0.s) -Chars 4312 - 4324 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4325 - 4332 [intros.] 0. secs (0.u,0.s) -Chars 4336 - 4365 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) -Chars 4366 - 4376 [step~in~H.] 0. secs (0.u,0.s) -Chars 4380 - 4413 [induction~H;~intros;~subst;~bcbn.] 0.027 secs (0.027u,0.s) -Chars 4417 - 4418 [-] 0. secs (0.u,0.s) -Chars 4419 - 4424 [eret.] 0. secs (0.u,0.s) -Chars 4428 - 4429 [-] 0. secs (0.u,0.s) -Chars 4430 - 4435 [etau.] 0.001 secs (0.001u,0.s) -Chars 4439 - 4440 [-] 0. secs (0.u,0.s) -Chars 4441 - 4462 [ebind;~intros;~subst.] 0.017 secs (0.016u,0.s) -Chars 4463 - 4468 [taus.] 0. secs (0.u,0.s) -Chars 4469 - 4479 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4480 - 4490 [apply~REL.] 0. secs (0.u,0.s) -Chars 4494 - 4495 [-] 0. secs (0.u,0.s) -Chars 4496 - 4543 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) -Chars 4546 - 4547 [-] 0. secs (0.u,0.s) -Chars 4548 - 4595 [rewrite~tau_euttge,~unfold_int...] 0.016 secs (0.015u,0.s) -Chars 4596 - 4600 [Qed.] 0.009 secs (0.009u,0.s) -Chars 4602 - 4801 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) -Chars 4802 - 4808 [Proof.] 0. secs (0.u,0.s) -Chars 4811 - 4824 [repeat~intro.] 0. secs (0.u,0.s) -Chars 4825 - 4831 [subst.] 0. secs (0.u,0.s) -Chars 4832 - 4847 [revert_until~R.] 0. secs (0.u,0.s) -Chars 4850 - 4862 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4863 - 4870 [intros.] 0. secs (0.u,0.s) -Chars 4875 - 4904 [rewrite~!unfold_interp_state.] 0.024 secs (0.024u,0.s) -Chars 4905 - 4915 [step~in~H.] 0. secs (0.u,0.s) -Chars 4919 - 4970 [induction~H;~intros;~subst;~bc...] 0.032 secs (0.032u,0.s) -Chars 4974 - 4975 [-] 0. secs (0.u,0.s) -Chars 4976 - 4981 [eret.] 0.001 secs (0.001u,0.s) -Chars 4985 - 4986 [-] 0. secs (0.u,0.s) -Chars 4987 - 4993 [ebind.] 0.006 secs (0.006u,0.s) -Chars 4994 - 5008 [intros;~subst.] 0. secs (0.u,0.s) -Chars 5013 - 5018 [etau.] 0.001 secs (0.001u,0.s) -Chars 5021 - 5022 [-] 0. secs (0.u,0.s) -Chars 5023 - 5070 [rewrite~tau_euttge,~unfold_int...] 0.014 secs (0.014u,0.s) -Chars 5073 - 5074 [-] 0. secs (0.u,0.s) -Chars 5075 - 5122 [rewrite~tau_euttge,~unfold_int...] 0.015 secs (0.015u,0.s) -Chars 5123 - 5127 [Qed.] 0.009 secs (0.009u,0.s) -Chars 5130 - 5766 [Lemma~eutt_interp_state_aloop~...] 0.001 secs (0.001u,0.s) -Chars 5767 - 5773 [Proof.] 0. secs (0.u,0.s) -Chars 5776 - 5785 [intro~Ht.] 0. secs (0.u,0.s) -Chars 5788 - 5800 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 5801 - 5808 [intros.] 0. secs (0.u,0.s) -Chars 5811 - 5833 [rewrite~2!unfold_iter.] 0.024 secs (0.024u,0.s) -Chars 5836 - 5864 [rewrite~2!interp_state_bind.] 0.027 secs (0.027u,0.s) -Chars 5867 - 5888 [ebind;~intros;~subst.] 0.003 secs (0.003u,0.s) -Chars 5892 - 5893 [-] 0. secs (0.u,0.s) -Chars 5894 - 5904 [do~2~step.] 0.012 secs (0.011u,0.s) -Chars 5905 - 5921 [eapply~Ht;~auto.] 0. secs (0.u,0.s) -Chars 5924 - 5925 [-] 0. secs (0.u,0.s) -Chars 5926 - 5933 [inv~H1.] 0.009 secs (0.009u,0.s) -Chars 5934 - 5946 [inv~snd_rel.] 0.017 secs (0.017u,0.s) -Chars 5951 - 5952 [+] 0. secs (0.u,0.s) -Chars 5953 - 5980 [rewrite~2!interp_state_tau.] 0.033 secs (0.033u,0.s) -Chars 5981 - 5986 [etau.] 0.001 secs (0.u,0.s) -Chars 5992 - 5993 [+] 0. secs (0.u,0.s) -Chars 5994 - 6021 [rewrite~2!interp_state_ret.] 0.029 secs (0.027u,0.s) -Chars 6022 - 6027 [eret.] 0. secs (0.u,0.s) -Chars 6029 - 6033 [Qed.] 0.012 secs (0.012u,0.s) -Chars 6035 - 6697 [Lemma~eutt_interp_state_iter~{...] 0.002 secs (0.002u,0.s) -Chars 6698 - 6704 [Proof.] 0. secs (0.u,0.s) -Chars 6707 - 6737 [apply~eutt_interp_state_aloop.] 0. secs (0.u,0.s) -Chars 6738 - 6742 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6744 - 6955 [Lemma~eutt_eq_interp_state_ite...] 0.001 secs (0.001u,0.s) -Chars 6956 - 6962 [Proof.] 0. secs (0.u,0.s) -Chars 6965 - 7043 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 7046 - 7070 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) -Chars 7073 - 7101 [rewrite~2!unfold_iter;~bcbn.] 0.033 secs (0.033u,0.s) -Chars 7104 - 7123 [rewrite~!bind_bind.] 0.018 secs (0.018u,0.s) -Chars 7126 - 7152 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 7155 - 7181 [rewrite~interp_state_bind.] 0.013 secs (0.013u,0.s) -Chars 7184 - 7190 [ebind.] 0.006 secs (0.006u,0.s) -Chars 7193 - 7219 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) -Chars 7222 - 7223 [-] 0. secs (0.u,0.s) -Chars 7224 - 7229 [etau.] 0.001 secs (0.001u,0.s) -Chars 7233 - 7234 [-] 0. secs (0.u,0.s) -Chars 7235 - 7240 [eret.] 0. secs (0.u,0.s) -Chars 7242 - 7246 [Qed.] 0.011 secs (0.011u,0.s) -Chars 7248 - 7775 [Lemma~eutt_interp_state_loop~{...] 0.002 secs (0.002u,0.s) -Chars 7776 - 7782 [Proof.] 0. secs (0.u,0.s) -Chars 7785 - 7792 [intros.] 0. secs (0.u,0.s) -Chars 7795 - 7962 [unfold~loop,~bimap,~Bimap_Copr...] 0. secs (0.u,0.s) -Chars 7965 - 7986 [rewrite~2!bind_ret_l.] 0.008 secs (0.008u,0.s) -Chars 7989 - 8041 [eapply~(eutt_interp_state_iter...] 0.018 secs (0.018u,0.s) -Chars 8044 - 8072 [rewrite~2!interp_state_bind.] 0.007 secs (0.007u,0.s) -Chars 8075 - 8081 [subst.] 0. secs (0.u,0.s) -Chars 8084 - 8113 [eapply~eutt_bind_eutt;~eauto.] 0.01 secs (0.01u,0.s) -Chars 8116 - 8123 [intros.] 0. secs (0.u,0.s) -Chars 8126 - 8162 [cbn~in~H2;~destruct~H2~as~[H21...] 0. secs (0.u,0.s) -Chars 8165 - 8199 [destruct~(snd~u1);~rewrite~<-~...] 0.001 secs (0.001u,0.s) -Chars 8202 - 8203 [-] 0. secs (0.u,0.s) -Chars 8204 - 8243 [rewrite~bind_ret_l,~2!interp_s...] 0.007 secs (0.007u,0.s) -Chars 8248 - 8253 [step.] 0.001 secs (0.001u,0.s) -Chars 8259 - 8264 [eret.] 0.001 secs (0.001u,0.s) -Chars 8268 - 8269 [-] 0. secs (0.u,0.s) -Chars 8270 - 8309 [rewrite~bind_ret_l,~2!interp_s...] 0.007 secs (0.007u,0.s) -Chars 8310 - 8315 [step.] 0.001 secs (0.001u,0.s) -Chars 8316 - 8321 [eret.] 0.001 secs (0.001u,0.s) -Chars 8323 - 8327 [Qed.] 0.008 secs (0.008u,0.s) -Chars 8376 - 8519 [Definition~state_eq~{E}~{S}~{X...] 0. secs (0.u,0.s) -Chars 8521 - 8839 [Lemma~interp_state_iter~{E}~{F...] 0.001 secs (0.001u,0.s) -Chars 8840 - 8846 [Proof.] 0. secs (0.u,0.s) -Chars 8849 - 8927 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 8930 - 8954 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) -Chars 8957 - 8985 [rewrite~2!unfold_iter;~bcbn.] 0.031 secs (0.031u,0.s) -Chars 8988 - 9007 [rewrite~!bind_bind.] 0.018 secs (0.018u,0.s) -Chars 9010 - 9036 [setoid_rewrite~bind_ret_l.] 0.032 secs (0.032u,0.s) -Chars 9039 - 9065 [rewrite~interp_state_bind.] 0.014 secs (0.014u,0.s) -Chars 9068 - 9074 [ebind.] 0.006 secs (0.006u,0.s) -Chars 9078 - 9079 [-] 0. secs (0.u,0.s) -Chars 9080 - 9090 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 9091 - 9102 [apply~EQ_t.] 0. secs (0.u,0.s) -Chars 9105 - 9106 [-] 0. secs (0.u,0.s) -Chars 9107 - 9133 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) -Chars 9138 - 9139 [+] 0. secs (0.u,0.s) -Chars 9140 - 9145 [etau.] 0.001 secs (0.001u,0.s) -Chars 9151 - 9152 [+] 0. secs (0.u,0.s) -Chars 9153 - 9158 [eret.] 0. secs (0.u,0.s) -Chars 9160 - 9164 [Qed.] 0.011 secs (0.011u,0.s) -Chars 9166 - 9410 [Lemma~interp_state_iter'~{E}~{...] 0.001 secs (0.001u,0.s) -Chars 9411 - 9417 [Proof.] 0. secs (0.u,0.s) -Chars 9420 - 9445 [eapply~interp_state_iter.] 0. secs (0.u,0.s) -Chars 9448 - 9457 [intros~i.] 0. secs (0.u,0.s) -Chars 9460 - 9464 [red.] 0. secs (0.u,0.s) -Chars 9465 - 9477 [reflexivity.] 0. secs (0.u,0.s) -Chars 9478 - 9482 [Qed.] 0. secs (0.u,0.s) -Chars 9484 - 9761 [Lemma~interp_state_iter'_eutt~...] 0.001 secs (0.001u,0.s) -Chars 9762 - 9768 [Proof.] 0. secs (0.u,0.s) -Chars 9771 - 9849 [unfold~Basics.iter,~MonadIter_...] 0. secs (0.u,0.s) -Chars 9852 - 9876 [coinduction;~intros~i~s.] 0.002 secs (0.002u,0.s) -Chars 9879 - 9907 [rewrite~2!unfold_iter;~bcbn.] 0.028 secs (0.028u,0.s) -Chars 9910 - 9929 [rewrite~!bind_bind.] 0.016 secs (0.016u,0.s) -Chars 9932 - 9958 [setoid_rewrite~bind_ret_l.] 0.03 secs (0.03u,0.s) -Chars 9961 - 9987 [rewrite~interp_state_bind.] 0.013 secs (0.013u,0.s) -Chars 9990 - 9996 [ebind.] 0.006 secs (0.006u,0.s) -Chars 10000 - 10001 [-] 0. secs (0.u,0.s) -Chars 10002 - 10012 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 10013 - 10023 [apply~Heq.] 0. secs (0.u,0.s) -Chars 10026 - 10027 [-] 0. secs (0.u,0.s) -Chars 10028 - 10054 [intros~[s'~[]]~_~[];~bcbn.] 0.004 secs (0.004u,0.s) -Chars 10059 - 10060 [+] 0. secs (0.u,0.s) -Chars 10061 - 10066 [etau.] 0.001 secs (0.001u,0.s) -Chars 10072 - 10073 [+] 0. secs (0.u,0.s) -Chars 10074 - 10079 [eret.] 0. secs (0.u,0.s) -Chars 10081 - 10085 [Qed.] 0.012 secs (0.011u,0.s) diff --git a/theories/Events/Writer.v.timing b/theories/Events/Writer.v.timing deleted file mode 100644 index f91903a1..00000000 --- a/theories/Events/Writer.v.timing +++ /dev/null @@ -1,17 +0,0 @@ -Chars 57 - 80 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 81 - 105 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 107 - 144 [From~Stdlib~Require~Import~List.] 0.029 secs (0.023u,0.006s) -Chars 145 - 166 [Import~ListNotations.] 0. secs (0.u,0.s) -Chars 168 - 264 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 266 - 499 [From~ITree~Require~Import~Basi...] 0.085 secs (0.079u,0.005s) -Chars 501 - 529 [Import~Basics.Basics.Monads.] 0. secs (0.u,0.s) -Chars 589 - 663 [Variant~writerE~(W~:~Type)~:~T...] 0. secs (0.u,0.s) -Chars 687 - 778 [Definition~tell~{W}~{E}~`{writ...] 0. secs (0.u,0.s) -Chars 919 - 1083 [Definition~handle_writer_list~...] 0. secs (0.u,0.s) -Chars 1085 - 1236 [Definition~run_writer_list_sta...] 0.001 secs (0.001u,0.s) -Chars 1238 - 1280 [Arguments~run_writer_list_stat...] 0. secs (0.u,0.s) -Chars 1394 - 1602 [Definition~run_writer_list~{W}...] 0. secs (0.u,0.s) -Chars 1604 - 1640 [Arguments~run_writer_list~{W~E...] 0. secs (0.u,0.s) -Chars 1725 - 1918 [Definition~handle_writer~{W}~{...] 0. secs (0.u,0.s) -Chars 1920 - 2158 [Definition~run_writer~{W}~{E}~...] 0.001 secs (0.u,0.s) -Chars 2160 - 2200 [Arguments~run_writer~{W~E}~Mon...] 0. secs (0.u,0.s) diff --git a/theories/ITree.v.timing b/theories/ITree.v.timing deleted file mode 100644 index 045eec61..00000000 --- a/theories/ITree.v.timing +++ /dev/null @@ -1 +0,0 @@ -Chars 206 - 463 [From~ITree~Require~Export~Basi...] 0.041 secs (0.034u,0.007s) diff --git a/theories/ITreeFacts.v.timing b/theories/ITreeFacts.v.timing deleted file mode 100644 index b4289813..00000000 --- a/theories/ITreeFacts.v.timing +++ /dev/null @@ -1 +0,0 @@ -Chars 36 - 437 [From~ITree~Require~Export~Basi...] 0.158 secs (0.14u,0.017s) diff --git a/theories/Indexed/Function.v.timing b/theories/Indexed/Function.v.timing deleted file mode 100644 index 6dee72fc..00000000 --- a/theories/Indexed/Function.v.timing +++ /dev/null @@ -1,14 +0,0 @@ -Chars 245 - 350 [From~ITree~Require~Import~Basi...] 0.01 secs (0.007u,0.002s) -Chars 352 - 378 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) -Chars 428 - 482 [Definition~IFun~(E~F~:~Type~->...] 0. secs (0.u,0.s) -Chars 545 - 610 [Definition~apply_IFun~{E}~{F}~...] 0. secs (0.u,0.s) -Chars 642 - 700 [Definition~apply_IFun'~{E}~{F}...] 0. secs (0.u,0.s) -Chars 730 - 784 [Definition~as_IFun~{E}~{F}~(f~...] 0. secs (0.u,0.s) -Chars 851 - 939 [#[global]~Instance~Eq2_IFun~:~...] 0. secs (0.u,0.s) -Chars 971 - 1029 [#[global]~Instance~Id_IFun~:~(...] 0. secs (0.u,0.s) -Chars 1060 - 1141 [#[global]~Instance~Cat_IFun~:~...] 0. secs (0.u,0.s) -Chars 1181 - 1250 [#[global]~Instance~Initial_voi...] 0. secs (0.u,0.s) -Chars 1299 - 1484 [Definition~case_sum1~{A~B~C~:~...] 0. secs (0.u,0.s) -Chars 1486 - 1546 [#[global]~Instance~Case_sum1~:...] 0. secs (0.u,0.s) -Chars 1547 - 1600 [#[global]~Instance~Inl_sum1~:~...] 0. secs (0.u,0.s) -Chars 1601 - 1654 [#[global]~Instance~Inr_sum1~:~...] 0. secs (0.u,0.s) diff --git a/theories/Indexed/FunctionFacts.v.timing b/theories/Indexed/FunctionFacts.v.timing deleted file mode 100644 index 38a8d83b..00000000 --- a/theories/Indexed/FunctionFacts.v.timing +++ /dev/null @@ -1,11 +0,0 @@ -Chars 65 - 119 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 121 - 210 [From~ITree~Require~Import~Basi...] 0.006 secs (0.004u,0.001s) -Chars 212 - 238 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) -Chars 255 - 475 [#[global]~Instance~Proper_appl...] 0. secs (0.u,0.s) -Chars 476 - 482 [Proof.] 0. secs (0.u,0.s) -Chars 485 - 503 [repeat~red;~eauto.] 0. secs (0.u,0.s) -Chars 504 - 508 [Qed.] 0. secs (0.u,0.s) -Chars 510 - 626 [Lemma~fold_apply_IFun~{E~F~:~T...] 0. secs (0.u,0.s) -Chars 627 - 633 [Proof.] 0. secs (0.u,0.s) -Chars 636 - 648 [reflexivity.] 0. secs (0.u,0.s) -Chars 649 - 653 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Relation.v.timing b/theories/Indexed/Relation.v.timing deleted file mode 100644 index 8e12f934..00000000 --- a/theories/Indexed/Relation.v.timing +++ /dev/null @@ -1,29 +0,0 @@ -Chars 54 - 108 [From~Stdlib~Require~Import~Rel...] 0.006 secs (0.003u,0.002s) -Chars 110 - 155 [From~ITree~Require~Import~Basi...] 0.002 secs (0.001u,0.s) -Chars 157 - 183 [Set~Universe~Polymorphism.] 0. secs (0.u,0.s) -Chars 292 - 538 [Definition~i_respectful~{A~B~:...] 0. secs (0.u,0.s) -Chars 540 - 718 [Definition~i_pointwise~{A~B~:~...] 0. secs (0.u,0.s) -Chars 720 - 915 [#[global]~Instance~Reflexive_i...] 0. secs (0.u,0.s) -Chars 916 - 922 [Proof.] 0. secs (0.u,0.s) -Chars 925 - 971 [repeat~red;~intros;~red~in~Ref...] 0. secs (0.u,0.s) -Chars 972 - 976 [Qed.] 0. secs (0.u,0.s) -Chars 978 - 1173 [#[global]~Instance~Symmetric_i...] 0. secs (0.u,0.s) -Chars 1174 - 1180 [Proof.] 0. secs (0.u,0.s) -Chars 1183 - 1229 [repeat~red;~intros;~red~in~Sym...] 0. secs (0.u,0.s) -Chars 1230 - 1234 [Qed.] 0. secs (0.u,0.s) -Chars 1236 - 1435 [#[global]~Instance~Transitive_...] 0. secs (0.u,0.s) -Chars 1436 - 1442 [Proof.] 0. secs (0.u,0.s) -Chars 1445 - 1492 [repeat~red;~intros;~red~in~Tra...] 0. secs (0.u,0.s) -Chars 1493 - 1497 [Qed.] 0. secs (0.u,0.s) -Chars 1499 - 1702 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 1703 - 1709 [Proof.] 0. secs (0.u,0.s) -Chars 1712 - 1741 [split;~try~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 1742 - 1746 [Qed.] 0. secs (0.u,0.s) -Chars 1748 - 1944 [#[global]~Instance~subrelation...] 0. secs (0.u,0.s) -Chars 1945 - 1951 [Proof.] 0. secs (0.u,0.s) -Chars 1954 - 1986 [repeat~red;~intros;~subst;~auto.] 0. secs (0.u,0.s) -Chars 1987 - 1991 [Qed.] 0. secs (0.u,0.s) -Chars 2060 - 2248 [Definition~subrelation_i_respe...] 0. secs (0.u,0.s) -Chars 2249 - 2255 [Proof.] 0. secs (0.u,0.s) -Chars 2258 - 2275 [repeat~red;~auto.] 0. secs (0.u,0.s) -Chars 2276 - 2280 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Indexed/Sum.v.timing b/theories/Indexed/Sum.v.timing deleted file mode 100644 index 826513fa..00000000 --- a/theories/Indexed/Sum.v.timing +++ /dev/null @@ -1,9 +0,0 @@ -Chars 142 - 187 [From~ITree~Require~Import~Basi...] 0.003 secs (0.002u,0.001s) -Chars 189 - 212 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 213 - 237 [Set~Contextual~Implicit.] 0. secs (0.u,0.s) -Chars 368 - 461 [Variant~sum1~(E1~E2~:~Type~->~...] 0. secs (0.u,0.s) -Chars 462 - 489 [Arguments~inr1~{E1~E2}~[X].] 0. secs (0.u,0.s) -Chars 490 - 517 [Arguments~inl1~{E1~E2}~[X].] 0. secs (0.u,0.s) -Chars 561 - 647 [Notation~"E1~+'~E2"~:=~(sum1~E...] 0. secs (0.u,0.s) -Chars 680 - 713 [Variant~void1~:~Type~->~Prop~:=.] 0. secs (0.u,0.s) -Chars 884 - 1036 [#[universes(polymorphic)]~Defi...] 0. secs (0.u,0.s) diff --git a/theories/Interp/Handler.v.timing b/theories/Interp/Handler.v.timing deleted file mode 100644 index cc83bda1..00000000 --- a/theories/Interp/Handler.v.timing +++ /dev/null @@ -1,27 +0,0 @@ -Chars 131 - 173 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 175 - 360 [From~ITree~Require~Import~Basi...] 0.038 secs (0.031u,0.007s) -Chars 362 - 396 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 398 - 427 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 476 - 491 [Module~Handler.] 0. secs (0.u,0.s) -Chars 726 - 818 [Definition~htrigger~{A}~{B}~(m...] 0. secs (0.u,0.s) -Chars 971 - 1037 [Definition~id_~(E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 1102 - 1239 [Definition~cat~{E~F~G~:~Type~-...] 0. secs (0.u,0.s) -Chars 1282 - 1360 [Definition~inl_~{E~F~:~Type~->...] 0. secs (0.u,0.s) -Chars 1404 - 1482 [Definition~inr_~{E~F~:~Type~->...] 0. secs (0.u,0.s) -Chars 1524 - 1757 [Definition~case_~{E~F~G~:~Type...] 0.013 secs (0.013u,0.s) -Chars 2074 - 2247 [Definition~bimap~{E~F~G~H~:~Ty...] 0. secs (0.u,0.s) -Chars 2305 - 2405 [Definition~empty~{E~:~Type~->~...] 0. secs (0.u,0.s) -Chars 2407 - 2419 [End~Handler.] 0. secs (0.u,0.s) -Chars 2451 - 2507 [Definition~Handler~(E~F~:~Type...] 0. secs (0.u,0.s) -Chars 2673 - 2735 [Definition~handle~{E}~{F}~(f~:...] 0. secs (0.u,0.s) -Chars 2736 - 2800 [Definition~handling~{E}~{F}~(f...] 0. secs (0.u,0.s) -Chars 2802 - 2924 [Definition~eq_Handler~{E~F~:~T...] 0. secs (0.u,0.s) -Chars 2926 - 3046 [Definition~eutt_Handler~{E~F~:...] 0. secs (0.u,0.s) -Chars 3098 - 3162 [#[global]~Instance~Eq2_Handler...] 0. secs (0.u,0.s) -Chars 3164 - 3226 [#[global]~Instance~Id_Handler~...] 0. secs (0.u,0.s) -Chars 3228 - 3291 [#[global]~Instance~Cat_Handler...] 0. secs (0.u,0.s) -Chars 3293 - 3370 [#[global]~Instance~Case_sum1_H...] 0. secs (0.u,0.s) -Chars 3372 - 3446 [#[global]~Instance~Inl_sum1_Ha...] 0. secs (0.u,0.s) -Chars 3448 - 3522 [#[global]~Instance~Inr_sum1_Ha...] 0. secs (0.u,0.s) -Chars 3524 - 3609 [#[global]~Instance~Initial_voi...] 0. secs (0.u,0.s) -Chars 3611 - 3674 [#[global]~Instance~Iter_Handle...] 0. secs (0.u,0.s) diff --git a/theories/Interp/HandlerFacts.v.timing b/theories/Interp/HandlerFacts.v.timing deleted file mode 100644 index 5fb8acd7..00000000 --- a/theories/Interp/HandlerFacts.v.timing +++ /dev/null @@ -1,340 +0,0 @@ -Chars 63 - 99 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 101 - 176 [From~Stdlib~Require~Import~Set...] 0.002 secs (0.u,0.001s) -Chars 178 - 417 [From~ITree~Require~Import~Basi...] 0.056 secs (0.048u,0.008s) -Chars 419 - 441 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 442 - 476 [Import~ITree.Basics.Basics.Mon...] 0. secs (0.u,0.s) -Chars 478 - 507 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 525 - 549 [Section~HandlerCategory.] 0. secs (0.u,0.s) -Chars 551 - 601 [#[local]~Opaque~eutt~ITree.bin...] 0. secs (0.u,0.s) -Chars 603 - 745 [Instance~Proper_Cat_Handler~~{...] 0. secs (0.u,0.s) -Chars 746 - 752 [Proof.] 0. secs (0.u,0.s) -Chars 755 - 767 [compute;~intros.] 0. secs (0.u,0.s) -Chars 770 - 794 [apply~eutt_interp;~auto.] 0. secs (0.u,0.s) -Chars 795 - 799 [Qed.] 0. secs (0.u,0.s) -Chars 801 - 842 [Instance~CatIdR_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 843 - 849 [Proof.] 0. secs (0.u,0.s) -Chars 852 - 864 [compute;~intros.] 0. secs (0.u,0.s) -Chars 867 - 892 [rewrite~interp_trigger_h.] 0.001 secs (0.001u,0.s) -Chars 893 - 905 [reflexivity.] 0. secs (0.u,0.s) -Chars 906 - 910 [Qed.] 0. secs (0.u,0.s) -Chars 912 - 953 [Instance~CatIdL_Handler~:~(Cat...] 0. secs (0.u,0.s) -Chars 954 - 960 [Proof.] 0. secs (0.u,0.s) -Chars 963 - 975 [compute;~intros.] 0. secs (0.u,0.s) -Chars 978 - 1001 [rewrite~interp_trigger.] 0.008 secs (0.008u,0.s) -Chars 1004 - 1016 [reflexivity.] 0. secs (0.u,0.s) -Chars 1017 - 1021 [Qed.] 0. secs (0.u,0.s) -Chars 1023 - 1068 [Instance~CatAssoc_Handler~:~(C...] 0. secs (0.u,0.s) -Chars 1069 - 1075 [Proof.] 0. secs (0.u,0.s) -Chars 1078 - 1090 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1093 - 1115 [rewrite~interp_interp.] 0.038 secs (0.037u,0.s) -Chars 1118 - 1130 [reflexivity.] 0. secs (0.u,0.s) -Chars 1131 - 1135 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1137 - 1189 [#[global]~Instance~Category_Ha...] 0. secs (0.u,0.s) -Chars 1190 - 1196 [Proof.] 0. secs (0.u,0.s) -Chars 1199 - 1224 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 1225 - 1229 [Qed.] 0. secs (0.u,0.s) -Chars 1231 - 1299 [#[global]~Instance~InitialObje...] 0. secs (0.u,0.s) -Chars 1300 - 1306 [Proof.] 0. secs (0.u,0.s) -Chars 1309 - 1328 [compute;~contradiction.] 0. secs (0.u,0.s) -Chars 1329 - 1333 [Qed.] 0. secs (0.u,0.s) -Chars 1335 - 1487 [Instance~Proper_Case_Handler~~...] 0. secs (0.u,0.s) -Chars 1488 - 1494 [Proof.] 0. secs (0.u,0.s) -Chars 1497 - 1509 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1512 - 1544 [destruct~(_~:~sum1~_~_~_);~auto.] 0. secs (0.u,0.s) -Chars 1545 - 1549 [Qed.] 0. secs (0.u,0.s) -Chars 1551 - 1599 [Instance~CaseInl_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1600 - 1606 [Proof.] 0. secs (0.u,0.s) -Chars 1609 - 1621 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1624 - 1647 [rewrite~interp_trigger.] 0.012 secs (0.011u,0.001s) -Chars 1650 - 1662 [reflexivity.] 0. secs (0.u,0.s) -Chars 1663 - 1667 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1669 - 1717 [Instance~CaseInr_Handler~:~(Ca...] 0. secs (0.u,0.s) -Chars 1718 - 1724 [Proof.] 0. secs (0.u,0.s) -Chars 1727 - 1739 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1742 - 1765 [rewrite~interp_trigger.] 0.012 secs (0.01u,0.002s) -Chars 1768 - 1780 [reflexivity.] 0. secs (0.u,0.s) -Chars 1781 - 1785 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1787 - 1847 [Instance~CaseUniversal_Handler...] 0. secs (0.u,0.s) -Chars 1848 - 1854 [Proof.] 0. secs (0.u,0.s) -Chars 1857 - 1869 [compute;~intros.] 0. secs (0.u,0.s) -Chars 1872 - 1898 [destruct~(_~:~sum1~_~_~_).] 0. secs (0.u,0.s) -Chars 1901 - 1902 [-] 0. secs (0.u,0.s) -Chars 1903 - 1932 [rewrite~<-~H,~interp_trigger.] 0.016 secs (0.015u,0.s) -Chars 1933 - 1945 [reflexivity.] 0. secs (0.u,0.s) -Chars 1948 - 1949 [-] 0. secs (0.u,0.s) -Chars 1950 - 1980 [rewrite~<-~H0,~interp_trigger.] 0.014 secs (0.014u,0.s) -Chars 1981 - 1993 [reflexivity.] 0. secs (0.u,0.s) -Chars 1994 - 1998 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2000 - 2059 [#[global]~Instance~Coproduct_H...] 0. secs (0.u,0.s) -Chars 2060 - 2066 [Proof.] 0. secs (0.u,0.s) -Chars 2069 - 2094 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 2095 - 2099 [Qed.] 0. secs (0.u,0.s) -Chars 2101 - 2136 [#[local]~Opaque~Recursion.inte...] 0. secs (0.u,0.s) -Chars 2138 - 2264 [Instance~Proper_Iter_Handler~~...] 0. secs (0.u,0.s) -Chars 2265 - 2271 [Proof.] 0. secs (0.u,0.s) -Chars 2274 - 2287 [repeat~intro.] 0. secs (0.u,0.s) -Chars 2290 - 2321 [apply~Proper_interp_mrec;~auto.] 0. secs (0.u,0.s) -Chars 2322 - 2326 [Qed.] 0. secs (0.u,0.s) -Chars 2328 - 2382 [Instance~IterUnfold_Handler~:~...] 0. secs (0.u,0.s) -Chars 2383 - 2389 [Proof.] 0. secs (0.u,0.s) -Chars 2392 - 2404 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2407 - 2437 [rewrite~interp_mrec_as_interp.] 0.001 secs (0.001u,0.s) -Chars 2440 - 2452 [reflexivity.] 0. secs (0.u,0.s) -Chars 2453 - 2457 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2459 - 2515 [Instance~IterNatural_Handler~:...] 0. secs (0.u,0.s) -Chars 2516 - 2522 [Proof.] 0. secs (0.u,0.s) -Chars 2525 - 2537 [compute;~intros.] 0. secs (0.u,0.s) -Chars 2540 - 2550 [pattern~f.] 0.003 secs (0.003u,0.s) -Chars 2553 - 2651 [match~goal~with~|~|-~?G~?f~=>~...] 0. secs (0.u,0.s) -Chars 2654 - 2655 [{] 0. secs (0.u,0.s) -Chars 2656 - 2711 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 2716 - 2717 [-] 0. secs (0.u,0.s) -Chars 2718 - 2727 [symmetry.] 0. secs (0.u,0.s) -Chars 2728 - 2765 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 2772 - 2773 [+] 0. secs (0.u,0.s) -Chars 2774 - 2786 [reflexivity.] 0. secs (0.u,0.s) -Chars 2793 - 2794 [+] 0. secs (0.u,0.s) -Chars 2795 - 2852 [apply~euttge_interp_mrec;~repe...] 0. secs (0.u,0.s) -Chars 2857 - 2858 [-] 0. secs (0.u,0.s) -Chars 2859 - 2901 [apply~euttge_sub_eutt,~euttge_...] 0.001 secs (0.001u,0.s) -Chars 2908 - 2909 [+] 0. secs (0.u,0.s) -Chars 2910 - 2921 [intros~?~?.] 0. secs (0.u,0.s) -Chars 2922 - 2942 [apply~euttge_interp.] 0. secs (0.u,0.s) -Chars 2951 - 2952 [*] 0. secs (0.u,0.s) -Chars 2953 - 2965 [reflexivity.] 0. secs (0.u,0.s) -Chars 2974 - 2975 [*] 0. secs (0.u,0.s) -Chars 2976 - 2993 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 3000 - 3001 [+] 0. secs (0.u,0.s) -Chars 3002 - 3021 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) -Chars 3022 - 3034 [reflexivity.] 0. secs (0.u,0.s) -Chars 3037 - 3038 [}] 0. secs (0.u,0.s) -Chars 3041 - 3269 [match~goal~with~|~|-~_~_~(_~_~...] 0.001 secs (0.001u,0.s) -Chars 3272 - 3311 [remember~(Tau~(f~T~a0))~as~t~e...] 0.001 secs (0.001u,0.s) -Chars 3312 - 3324 [clear~tmp_t.] 0. secs (0.u,0.s) -Chars 3399 - 3422 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 3426 - 3458 [revert~t;~coinduction;~intros~t.] 0.004 secs (0.004u,0.s) -Chars 3461 - 3483 [rewrite~(itree_eta~t).] 0.016 secs (0.016u,0.s) -Chars 3486 - 3507 [destruct~(observe~t).] 0.001 secs (0.001u,0.s) -Chars 3510 - 3511 [-] 0. secs (0.u,0.s) -Chars 3512 - 3539 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) -Chars 3540 - 3545 [bcbn.] 0. secs (0.u,0.s) -Chars 3551 - 3572 [rewrite~2!interp_ret.] 0.03 secs (0.03u,0.s) -Chars 3577 - 3604 [rewrite~unfold_interp_mrec.] 0.013 secs (0.013u,0.s) -Chars 3609 - 3621 [reflexivity.] 0.001 secs (0.001u,0.s) -Chars 3624 - 3625 [-] 0. secs (0.u,0.s) -Chars 3626 - 3653 [rewrite~unfold_interp_mrec.] 0.015 secs (0.015u,0.s) -Chars 3654 - 3659 [bcbn.] 0. secs (0.u,0.s) -Chars 3665 - 3686 [rewrite~2!interp_tau.] 0.032 secs (0.032u,0.s) -Chars 3691 - 3737 [rewrite~(unfold_interp_mrec~_~...] 0.015 secs (0.015u,0.s) -Chars 3742 - 3751 [now~taus.] 0. secs (0.u,0.s) -Chars 3755 - 3756 [-] 0. secs (0.u,0.s) -Chars 3757 - 3784 [rewrite~unfold_interp_mrec.] 0.014 secs (0.014u,0.s) -Chars 3785 - 3790 [bcbn.] 0.001 secs (0.001u,0.s) -Chars 3795 - 3814 [rewrite~interp_vis.] 0.018 secs (0.018u,0.s) -Chars 3819 - 3836 [destruct~e;~bcbn.] 0.001 secs (0.001u,0.s) -Chars 3841 - 3842 [+] 0. secs (0.u,0.s) -Chars 3843 - 3862 [rewrite~interp_tau.] 0.014 secs (0.014u,0.s) -Chars 3869 - 3909 [rewrite~2!interp_mrec_bind,~in...] 0.047 secs (0.047u,0.s) -Chars 3916 - 3924 [subst~h.] 0.002 secs (0.002u,0.s) -Chars 3932 - 3937 [bcbn.] 0.037 secs (0.037u,0.s) -Chars 3944 - 3967 [rewrite~interp_trigger.] 0.03 secs (0.03u,0.s) -Chars 3974 - 4001 [rewrite~unfold_interp_mrec.] 0.027 secs (0.027u,0.s) -Chars 4003 - 4008 [bcbn.] 0.036 secs (0.035u,0.s) -Chars 4016 - 4044 [rewrite~interp_mrec_trigger.] 0.024 secs (0.024u,0.s) -Chars 4045 - 4050 [bcbn.] 0.035 secs (0.035u,0.s) -Chars 4058 - 4080 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 4209 - 4229 [rewrite~!interp_tau.] 0.087 secs (0.086u,0.s) -Chars 4236 - 4283 [rewrite~(unfold_interp_mrec~_~...] 0.08 secs (0.079u,0.s) -Chars 4290 - 4308 [rewrite~!bind_tau.] 0.071 secs (0.071u,0.s) -Chars 4315 - 4320 [taus.] 0. secs (0.u,0.s) -Chars 4321 - 4379 [rewrite~tau_euttge,~<-~interp_...] 0.105 secs (0.104u,0.s) -Chars 4386 - 4427 [setoid_rewrite~(tau_euttge~(in...] 0.056 secs (0.056u,0.s) -Chars 4434 - 4457 [rewrite~<-~interp_bind.] 0.026 secs (0.025u,0.s) -Chars 4464 - 4469 [auto.] 0. secs (0.u,0.s) -Chars 4474 - 4475 [+] 0. secs (0.u,0.s) -Chars 4476 - 4495 [rewrite~interp_vis.] 0.014 secs (0.014u,0.s) -Chars 4502 - 4527 [rewrite~interp_mrec_bind.] 0.015 secs (0.015u,0.s) -Chars 4534 - 4548 [subst~h;~bcbn.] 0.002 secs (0.002u,0.s) -Chars 4555 - 4561 [ebind.] 0.008 secs (0.008u,0.s) -Chars 4562 - 4582 [instantiate~(~1~:=~eq~).] 0. secs (0.u,0.s) -Chars 4590 - 4591 [{] 0. secs (0.u,0.s) -Chars 4592 - 4602 [do~2~step.] 0.008 secs (0.008u,0.s) -Chars 4603 - 4648 [rewrite~interp_mrec_as_interp,...] 0.017 secs (0.017u,0.s) -Chars 4657 - 4685 [rewrite~<-~interp_id_h~~at~1.] 0.046 secs (0.046u,0.s) -Chars 4694 - 4730 [eapply~eutt_interp;~try~reflex...] 0.001 secs (0.001u,0.s) -Chars 4739 - 4750 [intros~?~?.] 0. secs (0.u,0.s) -Chars 4759 - 4787 [rewrite~interp_trigger;~cbn.] 0.007 secs (0.007u,0.s) -Chars 4796 - 4808 [reflexivity.] 0. secs (0.u,0.s) -Chars 4809 - 4810 [}] 0. secs (0.u,0.s) -Chars 4817 - 4831 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 4838 - 4885 [rewrite~(unfold_interp_mrec~_~...] 0.026 secs (0.026u,0.s) -Chars 4892 - 4897 [taus.] 0. secs (0.u,0.s) -Chars 4905 - 4924 [rewrite~tau_euttge.] 0.011 secs (0.011u,0.s) -Chars 4931 - 4941 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4943 - 4947 [Qed.] 0.097 secs (0.096u,0.s) -Chars 4949 - 4973 [Section~DinatSimulation.] 0. secs (0.u,0.s) -Chars 4975 - 5006 [Context~{A~B~C~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 5007 - 5069 [Context~(f0~:~A~~>~itree~(B~+'...] 0. secs (0.u,0.s) -Chars 5070 - 5089 [Context~{R~:~Type}.] 0. secs (0.u,0.s) -Chars 5091 - 5161 [Context~(f~:=~fun~T~e~=>~Tau~(...] 0. secs (0.u,0.s) -Chars 5163 - 5623 [Inductive~interleaved~:~itree~...] 0.004 secs (0.004u,0.s) -Chars 5624 - 5671 [#[local]~Hint~Constructors~int...] 0. secs (0.u,0.s) -Chars 5673 - 5717 [Let~hg~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5718 - 5762 [Let~hf~:=~@case_~_~Handler~_~_...] 0. secs (0.u,0.s) -Chars 5764 - 5936 [Theorem~interleaved_mrec~:~~~f...] 0.002 secs (0.002u,0.s) -Chars 5937 - 5965 [Proof~with~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 5969 - 5989 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 5992 - 6004 [induction~H.] 0. secs (0.u,0.s) -Chars 6007 - 6008 [-] 0. secs (0.u,0.s) -Chars 6009 - 6044 [rewrite~2!unfold_interp_mrec;~...] 0.025 secs (0.025u,0.s) -Chars 6045 - 6057 [reflexivity.] 0. secs (0.u,0.s) -Chars 6062 - 6063 [-] 0. secs (0.u,0.s) -Chars 6064 - 6108 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) -Chars 6113 - 6114 [+] 0. secs (0.u,0.s) -Chars 6115 - 6148 [rewrite~interp_ret,~2!bind_ret_l.] 0.038 secs (0.038u,0.s) -Chars 6149 - 6154 [auto.] 0. secs (0.u,0.s) -Chars 6159 - 6160 [+] 0. secs (0.u,0.s) -Chars 6161 - 6220 [rewrite~interp_tau,~2!bind_tau...] 0.067 secs (0.067u,0.s) -Chars 6227 - 6234 [taus~...] 0.001 secs (0.001u,0.s) -Chars 6241 - 6242 [+] 0. secs (0.u,0.s) -Chars 6243 - 6272 [rewrite~interp_vis,~bind_vis.] 0.029 secs (0.029u,0.s) -Chars 6279 - 6297 [rewrite~bind_bind.] 0.014 secs (0.014u,0.s) -Chars 6304 - 6353 [rewrite~(unfold_interp_mrec~_~...] 0.014 secs (0.014u,0.s) -Chars 6360 - 6377 [destruct~e;~bcbn.] 0.028 secs (0.028u,0.s) -Chars 6378 - 6419 [setoid_rewrite~(tau_euttge~(in...] 0.062 secs (0.061u,0.s) -Chars 6426 - 6427 [*] 0. secs (0.u,0.s) -Chars 6428 - 6475 [unfold~cat~at~3,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 6484 - 6519 [change~(g~X~b)~with~(Tau~(g0~X...] 0. secs (0.u,0.s) -Chars 6528 - 6571 [rewrite~bind_tau,~unfold_inter...] 0.029 secs (0.028u,0.s) -Chars 6580 - 6585 [taus.] 0. secs (0.u,0.s) -Chars 6586 - 6607 [rewrite~tau_euttge~...] 0.009 secs (0.009u,0.s) -Chars 6614 - 6615 [*] 0. secs (0.u,0.s) -Chars 6616 - 6678 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 6687 - 6708 [rewrite~bind_trigger.] 0.013 secs (0.013u,0.s) -Chars 6717 - 6750 [rewrite~unfold_interp_mrec;~bcbn.] 0.012 secs (0.012u,0.s) -Chars 6759 - 6779 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 6780 - 6808 [repeat~rewrite~tau_euttge~...] 0.018 secs (0.018u,0.s) -Chars 6812 - 6813 [-] 0. secs (0.u,0.s) -Chars 6814 - 6858 [rewrite~(itree_eta~t);~destruc...] 0.016 secs (0.016u,0.s) -Chars 6863 - 6864 [+] 0. secs (0.u,0.s) -Chars 6865 - 6898 [rewrite~interp_ret,~2!bind_ret_l.] 0.042 secs (0.041u,0.s) -Chars 6899 - 6904 [auto.] 0. secs (0.u,0.s) -Chars 6909 - 6910 [+] 0. secs (0.u,0.s) -Chars 6911 - 6970 [rewrite~interp_tau,~2!bind_tau...] 0.072 secs (0.072u,0.s) -Chars 6977 - 6984 [taus~...] 0.001 secs (0.001u,0.s) -Chars 6991 - 6992 [+] 0. secs (0.u,0.s) -Chars 6993 - 7022 [rewrite~interp_vis,~bind_vis.] 0.03 secs (0.03u,0.s) -Chars 7029 - 7047 [rewrite~bind_bind.] 0.015 secs (0.015u,0.s) -Chars 7054 - 7103 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) -Chars 7110 - 7127 [destruct~e;~bcbn.] 0.03 secs (0.03u,0.s) -Chars 7128 - 7169 [setoid_rewrite~(tau_euttge~(in...] 0.062 secs (0.062u,0.s) -Chars 7176 - 7177 [*] 0. secs (0.u,0.s) -Chars 7178 - 7225 [unfold~cat~at~2,~Cat_Handler~a...] 0. secs (0.u,0.s) -Chars 7234 - 7269 [change~(f~X~a)~with~(Tau~(f0~X...] 0. secs (0.u,0.s) -Chars 7278 - 7336 [rewrite~!bind_tau,~(unfold_int...] 0.034 secs (0.033u,0.s) -Chars 7345 - 7350 [taus.] 0. secs (0.u,0.s) -Chars 7351 - 7372 [rewrite~tau_euttge~...] 0.009 secs (0.008u,0.s) -Chars 7380 - 7381 [*] 0. secs (0.u,0.s) -Chars 7382 - 7444 [unfold~inr_,~Inr_sum1_Handler,...] 0. secs (0.u,0.s) -Chars 7453 - 7474 [rewrite~bind_trigger.] 0.015 secs (0.014u,0.s) -Chars 7483 - 7516 [rewrite~unfold_interp_mrec;~bcbn.] 0.014 secs (0.014u,0.s) -Chars 7525 - 7545 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 7546 - 7574 [repeat~rewrite~tau_euttge~...] 0.019 secs (0.019u,0.s) -Chars 7575 - 7579 [Qed.] 0.029 secs (0.029u,0.s) -Chars 7581 - 7601 [End~DinatSimulation.] 0. secs (0.u,0.s) -Chars 7603 - 7621 [#[local]~Opaque~eutt.] 0. secs (0.u,0.s) -Chars 7623 - 7683 [Instance~IterDinatural_Handler...] 0. secs (0.u,0.s) -Chars 7684 - 7690 [Proof.] 0. secs (0.u,0.s) -Chars 7693 - 7722 [compute;~intros~a~b~c~f0~g0~T~a0.] 0. secs (0.u,0.s) -Chars 7725 - 7761 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 7762 - 7798 [pose~(g~:=~fun~T~e~=>~Tau~(g0~...] 0. secs (0.u,0.s) -Chars 7801 - 7983 [enough~~(Recursion.interp_mrec...] 0.002 secs (0.002u,0.s) -Chars 7986 - 7987 [{] 0. secs (0.u,0.s) -Chars 7988 - 7997 [compute~in~H.] 0. secs (0.u,0.s) -Chars 7998 - 8051 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 8056 - 8057 [-] 0. secs (0.u,0.s) -Chars 8058 - 8067 [symmetry.] 0. secs (0.u,0.s) -Chars 8068 - 8110 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8117 - 8131 [1:~intros~?~?.] 0. secs (0.u,0.s) -Chars 8138 - 8200 [1,~2:~rewrite~tau_euttge;~appl...] 0.012 secs (0.012u,0.s) -Chars 8207 - 8257 [1,~2:~intros~?~[];~[~apply~tau...] 0. secs (0.u,0.s) -Chars 8262 - 8263 [-] 0. secs (0.u,0.s) -Chars 8264 - 8324 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 8331 - 8360 [intros~?~[];~try~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 8367 - 8386 [rewrite~tau_euttge.] 0.009 secs (0.009u,0.s) -Chars 8387 - 8412 [apply~euttge_interp_mrec.] 0. secs (0.u,0.s) -Chars 8419 - 8430 [intros~?~?.] 0. secs (0.u,0.s) -Chars 8437 - 8456 [rewrite~tau_euttge.] 0.005 secs (0.005u,0.s) -Chars 8463 - 8505 [all:~apply~euttge_interp;~try~...] 0.001 secs (0.001u,0.s) -Chars 8512 - 8563 [all:~intros~?~[];~[~apply~tau_...] 0. secs (0.u,0.s) -Chars 8566 - 8567 [}] 0. secs (0.u,0.s) -Chars 8570 - 8603 [rewrite~<-~interp_mrec_as_interp.] 0.002 secs (0.002u,0.s) -Chars 8607 - 8644 [rewrite~<-~(bind_ret_r~(interp...] 0.012 secs (0.012u,0.s) -Chars 8647 - 8685 [rewrite~<-~(bind_ret_r~(f~_~a0...] 0.015 secs (0.015u,0.s) -Chars 8689 - 8712 [apply~interleaved_mrec.] 0. secs (0.u,0.s) -Chars 8715 - 8732 [do~2~constructor.] 0. secs (0.u,0.s) -Chars 8733 - 8737 [Qed.] 0.011 secs (0.01u,0.s) -Chars 8739 - 8756 [Import~Recursion.] 0. secs (0.u,0.s) -Chars 8758 - 8820 [Instance~IterCodiagonal_Handle...] 0. secs (0.u,0.s) -Chars 8821 - 8827 [Proof.] 0. secs (0.u,0.s) -Chars 8830 - 8853 [compute;~intros~a~b~f0~T~x.] 0. secs (0.u,0.s) -Chars 8856 - 8894 [remember~(f0~T~x)~as~t~eqn:EQt...] 0.001 secs (0.001u,0.s) -Chars 8897 - 8933 [pose~(f~:=~fun~T~e~=>~Tau~(f0~...] 0. secs (0.u,0.s) -Chars 8936 - 9635 [enough~~(interp_mrec~(fun~_~d~...] 0.001 secs (0.001u,0.s) -Chars 9638 - 9639 [{] 0. secs (0.u,0.s) -Chars 9640 - 9648 [subst~f.] 0. secs (0.u,0.s) -Chars 9649 - 9704 [etransitivity;~[~etransitivity...] 0.001 secs (0.001u,0.s) -Chars 9709 - 9710 [-] 0. secs (0.u,0.s) -Chars 9711 - 9720 [symmetry.] 0. secs (0.u,0.s) -Chars 9721 - 9763 [apply~euttge_sub_eutt,~euttge_...] 0. secs (0.u,0.s) -Chars 9770 - 9771 [+] 0. secs (0.u,0.s) -Chars 9772 - 9783 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9784 - 9831 [apply~euttge_interp_mrec;~try~...] 0. secs (0.u,0.s) -Chars 9840 - 9851 [intros~?~?.] 0. secs (0.u,0.s) -Chars 9852 - 9869 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 9876 - 9877 [+] 0. secs (0.u,0.s) -Chars 9878 - 9951 [apply~euttge_interp_mrec;~repe...] 0.001 secs (0.001u,0.s) -Chars 9960 - 9972 [reflexivity.] 0. secs (0.u,0.s) -Chars 9977 - 9978 [-] 0. secs (0.u,0.s) -Chars 9979 - 10081 [apply~euttge_sub_eutt,~euttge_...] 0.002 secs (0.002u,0.s) -Chars 10088 - 10105 [apply~tau_euttge.] 0. secs (0.u,0.s) -Chars 10108 - 10109 [}] 0. secs (0.u,0.s) -Chars 10112 - 10135 [#[local]~Transparent~eutt.] 0. secs (0.u,0.s) -Chars 10140 - 10149 [revert~t.] 0. secs (0.u,0.s) -Chars 10150 - 10170 [coinduction;~intros.] 0.002 secs (0.002u,0.s) -Chars 10174 - 10224 [rewrite~(itree_eta~t);~destruc...] 0.014 secs (0.014u,0.s) -Chars 10227 - 10293 [all:~rewrite~(unfold_interp_mr...] 0.081 secs (0.081u,0.s) -Chars 10296 - 10334 [1,~2:~rewrite~unfold_interp_mr...] 0.05 secs (0.05u,0.s) -Chars 10337 - 10400 [1,~2:~rewrite~(unfold_interp_m...] 0.028 secs (0.028u,0.s) -Chars 10403 - 10408 [taus.] 0. secs (0.u,0.s) -Chars 10409 - 10419 [apply~CIH.] 0. secs (0.u,0.s) -Chars 10423 - 10434 [destruct~e.] 0. secs (0.u,0.s) -Chars 10437 - 10438 [-] 0. secs (0.u,0.s) -Chars 10439 - 10486 [rewrite~(interp_mrec_bind~_~(I...] 0.014 secs (0.014u,0.s) -Chars 10491 - 10525 [rewrite~interp_mrec_trigger;~b...] 0.009 secs (0.009u,0.s) -Chars 10530 - 10552 [unfold~Recursion.mrec.] 0. secs (0.u,0.s) -Chars 10557 - 10620 [remember~(f~X~a0)~as~fxa~eqn:H...] 0.001 secs (0.001u,0.s) -Chars 10625 - 10670 [rewrite~interp_tau,~unfold_int...] 0.053 secs (0.052u,0.s) -Chars 10675 - 10722 [rewrite~(unfold_interp_mrec~_~...] 0.036 secs (0.036u,0.s) -Chars 10727 - 10745 [rewrite~!bind_tau.] 0.033 secs (0.033u,0.s) -Chars 10750 - 10755 [taus.] 0. secs (0.u,0.s) -Chars 10761 - 10780 [rewrite~tau_euttge.] 0.006 secs (0.006u,0.s) -Chars 10781 - 10807 [setoid_rewrite~tau_euttge.] 0.016 secs (0.015u,0.s) -Chars 10812 - 10856 [rewrite~<-~interp_mrec_bind,~<...] 0.027 secs (0.027u,0.s) -Chars 10861 - 10866 [auto.] 0. secs (0.u,0.s) -Chars 10869 - 10870 [-] 0. secs (0.u,0.s) -Chars 10871 - 10892 [rewrite~bind_trigger.] 0.014 secs (0.014u,0.s) -Chars 10897 - 10923 [setoid_rewrite~tau_euttge.] 0.015 secs (0.015u,0.s) -Chars 10928 - 10963 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.026u,0.s) -Chars 10968 - 10979 [destruct~s.] 0. secs (0.u,0.s) -Chars 10980 - 10985 [taus.] 0. secs (0.u,0.s) -Chars 10991 - 11035 [rewrite~<-~interp_mrec_bind,~<...] 0.024 secs (0.024u,0.s) -Chars 11040 - 11050 [apply~CIH.] 0. secs (0.u,0.s) -Chars 11056 - 11076 [constructor;~intros.] 0. secs (0.u,0.s) -Chars 11077 - 11092 [now~step;~taus.] 0.002 secs (0.002u,0.s) -Chars 11095 - 11099 [Qed.] 0.042 secs (0.042u,0.s) -Chars 11101 - 11160 [#[global]~Instance~Iterative_H...] 0. secs (0.u,0.s) -Chars 11161 - 11167 [Proof.] 0. secs (0.u,0.s) -Chars 11170 - 11195 [split;~typeclasses~eauto.] 0. secs (0.u,0.s) -Chars 11196 - 11200 [Qed.] 0. secs (0.u,0.s) -Chars 11202 - 11222 [End~HandlerCategory.] 0.002 secs (0.002u,0.s) diff --git a/theories/Interp/Interp.v.timing b/theories/Interp/Interp.v.timing deleted file mode 100644 index 78478513..00000000 --- a/theories/Interp/Interp.v.timing +++ /dev/null @@ -1,7 +0,0 @@ -Chars 1099 - 1172 [From~ExtLib~Require~Import~Str...] 0. secs (0.u,0.s) -Chars 1174 - 1267 [From~ITree~Require~Import~Basi...] 0.027 secs (0.021u,0.005s) -Chars 1851 - 2075 [Definition~translateF~{E}~{F}~...] 0.001 secs (0.u,0.s) -Chars 2077 - 2212 [Definition~translate~{E}~{F}~(...] 0. secs (0.u,0.s) -Chars 2214 - 2248 [Arguments~translate~{E~F}~&~h~...] 0. secs (0.u,0.s) -Chars 2389 - 2702 [Definition~interp~{E~M~:~Type~...] 0.004 secs (0.003u,0.s) -Chars 2853 - 2893 [Arguments~interp~{E~M~FM~MM~IM...] 0. secs (0.u,0.s) diff --git a/theories/Interp/InterpFacts.v.timing b/theories/Interp/InterpFacts.v.timing deleted file mode 100644 index fbdde3a7..00000000 --- a/theories/Interp/InterpFacts.v.timing +++ /dev/null @@ -1,341 +0,0 @@ -Chars 224 - 312 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) -Chars 314 - 350 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 353 - 699 [From~ITree~Require~Import~Basi...] 0.052 secs (0.045u,0.007s) -Chars 701 - 723 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 740 - 837 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 838 - 844 [Proof.] 0. secs (0.u,0.s) -Chars 847 - 865 [unfold~eq_Handler.] 0. secs (0.u,0.s) -Chars 868 - 923 [apply~(Equivalence_i_pointwise...] 0.001 secs (0.001u,0.s) -Chars 924 - 928 [Qed.] 0. secs (0.u,0.s) -Chars 930 - 1031 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 1032 - 1038 [Proof.] 0. secs (0.u,0.s) -Chars 1041 - 1061 [unfold~eutt_Handler.] 0. secs (0.u,0.s) -Chars 1064 - 1115 [apply~(Equivalence_i_pointwise...] 0. secs (0.u,0.s) -Chars 1116 - 1120 [Qed.] 0. secs (0.u,0.s) -Chars 1122 - 1213 [Definition~Equivalence_eq2_Han...] 0. secs (0.u,0.s) -Chars 1214 - 1220 [Proof.] 0. secs (0.u,0.s) -Chars 1223 - 1254 [exact~Equivalence_eutt_Handler.] 0. secs (0.u,0.s) -Chars 1255 - 1259 [Qed.] 0. secs (0.u,0.s) -Chars 1291 - 1505 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) -Chars 1528 - 1634 [Lemma~unfold_interp~{E}~{F}~{R...] 0. secs (0.u,0.s) -Chars 1635 - 1641 [Proof.] 0. secs (0.u,0.s) -Chars 1644 - 1688 [unfold~interp,~Basics.iter,~Mo...] 0. secs (0.u,0.s) -Chars 1689 - 1709 [rewrite~unfold_iter.] 0.003 secs (0.003u,0.s) -Chars 1712 - 1774 [destruct~(observe~t);~cbn;~rew...] 0.039 secs (0.039u,0.s) -Chars 1775 - 1796 [all:~try~reflexivity.] 0. secs (0.u,0.s) -Chars 1797 - 1801 [Qed.] 0.003 secs (0.003u,0.s) -Chars 1936 - 2017 [Lemma~interp_ret~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) -Chars 2018 - 2024 [Proof.] 0. secs (0.u,0.s) -Chars 2025 - 2047 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) -Chars 2048 - 2060 [reflexivity.] 0. secs (0.u,0.s) -Chars 2061 - 2065 [Qed.] 0. secs (0.u,0.s) -Chars 2067 - 2179 [Lemma~interp_tau~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) -Chars 2180 - 2186 [Proof.] 0. secs (0.u,0.s) -Chars 2187 - 2209 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) -Chars 2210 - 2222 [reflexivity.] 0. secs (0.u,0.s) -Chars 2223 - 2227 [Qed.] 0. secs (0.u,0.s) -Chars 2229 - 2394 [Lemma~interp_vis~{E}~{F}~{R}~{...] 0. secs (0.u,0.s) -Chars 2395 - 2401 [Proof.] 0. secs (0.u,0.s) -Chars 2402 - 2424 [rewrite~unfold_interp.] 0.001 secs (0.001u,0.s) -Chars 2425 - 2437 [reflexivity.] 0. secs (0.u,0.s) -Chars 2438 - 2442 [Qed.] 0. secs (0.u,0.s) -Chars 2444 - 2581 [Lemma~interp_trigger~{E~F~:~Ty...] 0. secs (0.u,0.s) -Chars 2582 - 2588 [Proof.] 0. secs (0.u,0.s) -Chars 2591 - 2612 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 2613 - 2632 [rewrite~interp_vis.] 0.011 secs (0.009u,0.001s) -Chars 2635 - 2661 [setoid_rewrite~interp_ret.] 0.014 secs (0.011u,0.002s) -Chars 2664 - 2690 [setoid_rewrite~tau_euttge.] 0.003 secs (0.002u,0.s) -Chars 2691 - 2710 [rewrite~bind_ret_r.] 0.007 secs (0.007u,0.s) -Chars 2713 - 2725 [reflexivity.] 0. secs (0.u,0.s) -Chars 2726 - 2730 [Qed.] 0.002 secs (0.001u,0.s) -Chars 2732 - 2775 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 2776 - 2819 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 2820 - 2867 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 2899 - 3058 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) -Chars 3059 - 3065 [Proof.] 0. secs (0.u,0.s) -Chars 3068 - 3085 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) -Chars 3088 - 3106 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3107 - 3114 [intros.] 0. secs (0.u,0.s) -Chars 3118 - 3142 [rewrite~2!unfold_interp.] 0.022 secs (0.022u,0.s) -Chars 3145 - 3155 [step~in~H.] 0. secs (0.u,0.s) -Chars 3160 - 3211 [destruct~H;~cbn;~subst;~try~ea...] 0.038 secs (0.038u,0.s) -Chars 3214 - 3252 [unfold~eq_Handler,~i_pointwise...] 0. secs (0.u,0.s) -Chars 3256 - 3268 [rewrite~Hfg.] 0.155 secs (0.154u,0.s) -Chars 3272 - 3279 [to_mon.] 0. secs (0.u,0.s) -Chars 3283 - 3289 [ebind.] 0.006 secs (0.006u,0.s) -Chars 3290 - 3305 [intros~?~?~[=<-].] 0. secs (0.u,0.s) -Chars 3306 - 3311 [etau.] 0.001 secs (0.001u,0.s) -Chars 3313 - 3317 [Qed.] 0.008 secs (0.008u,0.s) -Chars 3319 - 3438 [#[global]~Instance~eq_itree_in...] 0. secs (0.u,0.s) -Chars 3439 - 3445 [Proof.] 0. secs (0.u,0.s) -Chars 3448 - 3459 [repeat~red.] 0. secs (0.u,0.s) -Chars 3462 - 3485 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) -Chars 3488 - 3500 [reflexivity.] 0. secs (0.u,0.s) -Chars 3501 - 3505 [Qed.] 0. secs (0.u,0.s) -Chars 3507 - 3666 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) -Chars 3667 - 3673 [Proof.] 0. secs (0.u,0.s) -Chars 3676 - 3687 [repeat~red.] 0. secs (0.u,0.s) -Chars 3690 - 3705 [intros~until~T.] 0. secs (0.u,0.s) -Chars 3708 - 3720 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 3721 - 3728 [intros.] 0. secs (0.u,0.s) -Chars 3731 - 3754 [rewrite~!unfold_interp.] 0.022 secs (0.022u,0.s) -Chars 3755 - 3766 [step~in~H0.] 0. secs (0.u,0.s) -Chars 3770 - 3829 [induction~H0;~intros;~subst;~c...] 0.278 secs (0.274u,0.001s) -Chars 3835 - 3858 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 3862 - 3863 [-] 0. secs (0.u,0.s) -Chars 3864 - 3874 [do~2~step.] 0.01 secs (0.01u,0.s) -Chars 3875 - 3883 [apply~H.] 0. secs (0.u,0.s) -Chars 3887 - 3888 [-] 0. secs (0.u,0.s) -Chars 3889 - 3904 [intros~?~?~[=<-].] 0. secs (0.u,0.s) -Chars 3905 - 3928 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 3932 - 3933 [-] 0. secs (0.u,0.s) -Chars 3934 - 3939 [taul.] 0. secs (0.u,0.s) -Chars 3940 - 3947 [to_mon.] 0. secs (0.u,0.s) -Chars 3948 - 3970 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) -Chars 3971 - 3985 [apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 3989 - 3990 [-] 0. secs (0.u,0.s) -Chars 3991 - 3996 [taur.] 0. secs (0.u,0.s) -Chars 3997 - 4004 [to_mon.] 0. secs (0.u,0.s) -Chars 4005 - 4027 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) -Chars 4028 - 4042 [apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 4044 - 4048 [Qed.] 0.008 secs (0.008u,0.s) -Chars 4051 - 4293 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) -Chars 4294 - 4300 [Proof.] 0. secs (0.u,0.s) -Chars 4303 - 4314 [repeat~red.] 0. secs (0.u,0.s) -Chars 4317 - 4332 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4335 - 4347 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4348 - 4355 [intros.] 0. secs (0.u,0.s) -Chars 4358 - 4381 [rewrite~!unfold_interp.] 0.014 secs (0.014u,0.s) -Chars 4382 - 4393 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4397 - 4466 [induction~H0;~intros;~subst;~c...] 0.182 secs (0.181u,0.001s) -Chars 4469 - 4492 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 4496 - 4497 [-] 0. secs (0.u,0.s) -Chars 4498 - 4508 [do~2~step.] 0.01 secs (0.01u,0.s) -Chars 4509 - 4517 [apply~H.] 0. secs (0.u,0.s) -Chars 4521 - 4522 [-] 0. secs (0.u,0.s) -Chars 4523 - 4538 [intros~?~?~[=<-].] 0. secs (0.u,0.s) -Chars 4539 - 4562 [taus;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 4566 - 4567 [-] 0. secs (0.u,0.s) -Chars 4568 - 4573 [taul.] 0. secs (0.u,0.s) -Chars 4574 - 4581 [to_mon.] 0. secs (0.u,0.s) -Chars 4582 - 4604 [rewrite~unfold_interp.] 0.01 secs (0.009u,0.s) -Chars 4605 - 4619 [apply~IHeqitF.] 0. secs (0.u,0.s) -Chars 4621 - 4625 [Qed.] 0.008 secs (0.008u,0.s) -Chars 4627 - 4805 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) -Chars 4806 - 4812 [Proof.] 0. secs (0.u,0.s) -Chars 4815 - 4826 [repeat~red.] 0. secs (0.u,0.s) -Chars 4829 - 4841 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 4842 - 4849 [intros.] 0. secs (0.u,0.s) -Chars 4852 - 4875 [rewrite~!unfold_interp.] 0.022 secs (0.022u,0.s) -Chars 4878 - 4888 [step~in~H.] 0. secs (0.u,0.s) -Chars 4891 - 4944 [induction~H;~cbn;~try~easy;~ea...] 0.303 secs (0.302u,0.001s) -Chars 4948 - 4949 [-] 0. secs (0.u,0.s) -Chars 4950 - 4956 [ebind.] 0.015 secs (0.014u,0.s) -Chars 4957 - 4995 [intros;~subst;~taus;~eauto~wit...] 0.003 secs (0.003u,0.s) -Chars 4999 - 5000 [-] 0. secs (0.u,0.s) -Chars 5001 - 5023 [rewrite~unfold_interp.] 0.01 secs (0.01u,0.s) -Chars 5024 - 5033 [now~taul.] 0. secs (0.u,0.s) -Chars 5037 - 5038 [-] 0. secs (0.u,0.s) -Chars 5039 - 5061 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) -Chars 5062 - 5071 [now~taur.] 0. secs (0.u,0.s) -Chars 5073 - 5077 [Qed.] 0.007 secs (0.007u,0.s) -Chars 5079 - 5242 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) -Chars 5243 - 5249 [Proof.] 0. secs (0.u,0.s) -Chars 5252 - 5263 [repeat~red.] 0. secs (0.u,0.s) -Chars 5264 - 5284 [apply~euttge_interp.] 0. secs (0.u,0.s) -Chars 5285 - 5297 [reflexivity.] 0. secs (0.u,0.s) -Chars 5298 - 5302 [Qed.] 0. secs (0.u,0.s) -Chars 5767 - 5945 [Lemma~interp_bind~{E}~{F}~{R}~...] 0. secs (0.u,0.s) -Chars 5946 - 5952 [Proof.] 0. secs (0.u,0.s) -Chars 5955 - 5968 [revert~R~t~k.] 0. secs (0.u,0.s) -Chars 5969 - 5989 [coinduction;~intros.] 0.001 secs (0.001u,0.s) -Chars 5993 - 6032 [rewrite~unfold_bind,~(unfold_i...] 0.024 secs (0.024u,0.s) -Chars 6035 - 6069 [destruct~(observe~t);~cbn;~to_...] 0.001 secs (0.001u,0.s) -Chars 6073 - 6074 [-] 0. secs (0.u,0.s) -Chars 6075 - 6094 [rewrite~bind_ret_l.] 0.012 secs (0.012u,0.s) -Chars 6095 - 6113 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 6116 - 6117 [-] 0. secs (0.u,0.s) -Chars 6118 - 6123 [taus.] 0. secs (0.u,0.s) -Chars 6124 - 6135 [fold_subst.] 0. secs (0.u,0.s) -Chars 6136 - 6146 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6150 - 6151 [-] 0. secs (0.u,0.s) -Chars 6152 - 6182 [rewrite~interp_vis,~bind_bind.] 0.023 secs (0.023u,0.s) -Chars 6183 - 6189 [ebind.] 0.005 secs (0.005u,0.s) -Chars 6195 - 6209 [intros;~subst.] 0. secs (0.u,0.s) -Chars 6214 - 6231 [rewrite~bind_tau.] 0.013 secs (0.013u,0.s) -Chars 6232 - 6237 [taus.] 0. secs (0.u,0.s) -Chars 6238 - 6248 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6250 - 6254 [Qed.] 0.008 secs (0.008u,0.s) -Chars 6256 - 6300 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 6338 - 6405 [Lemma~interp_id_h~{A}~{R}~(t~:...] 0. secs (0.u,0.s) -Chars 6406 - 6412 [Proof.] 0. secs (0.u,0.s) -Chars 6415 - 6424 [revert~t.] 0. secs (0.u,0.s) -Chars 6425 - 6437 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 6438 - 6445 [intros.] 0. secs (0.u,0.s) -Chars 6448 - 6485 [rewrite~(itree_eta~t),~unfold_...] 0.019 secs (0.019u,0.s) -Chars 6488 - 6514 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) -Chars 6519 - 6520 [-] 0. secs (0.u,0.s) -Chars 6521 - 6533 [reflexivity.] 0. secs (0.u,0.s) -Chars 6537 - 6538 [-] 0. secs (0.u,0.s) -Chars 6539 - 6544 [taus.] 0. secs (0.u,0.s) -Chars 6545 - 6555 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6559 - 6560 [-] 0. secs (0.u,0.s) -Chars 6561 - 6573 [constructor.] 0. secs (0.u,0.s) -Chars 6574 - 6580 [intro.] 0. secs (0.u,0.s) -Chars 6581 - 6592 [fold_subst.] 0. secs (0.u,0.s) -Chars 6595 - 6625 [rewrite~bind_ret_,~tau_euttge.] 0.009 secs (0.009u,0.s) -Chars 6626 - 6636 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6638 - 6642 [Qed.] 0.006 secs (0.006u,0.s) -Chars 6644 - 6722 [Lemma~interp_trigger_h~{E}~{R}...] 0. secs (0.u,0.s) -Chars 6723 - 6729 [Proof.] 0. secs (0.u,0.s) -Chars 6732 - 6741 [revert~t.] 0. secs (0.u,0.s) -Chars 6742 - 6754 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 6755 - 6762 [intros.] 0. secs (0.u,0.s) -Chars 6765 - 6787 [rewrite~unfold_interp.] 0.009 secs (0.009u,0.s) -Chars 6788 - 6815 [rewrite~(itree_eta~t)~~at~2.] 0.01 secs (0.01u,0.s) -Chars 6818 - 6862 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) -Chars 6866 - 6885 [constructor;~intro.] 0. secs (0.u,0.s) -Chars 6886 - 6897 [fold_subst.] 0. secs (0.u,0.s) -Chars 6901 - 6932 [rewrite~bind_ret_l,~tau_euttge.] 0.01 secs (0.01u,0.s) -Chars 6935 - 6945 [apply~CIH.] 0. secs (0.u,0.s) -Chars 6947 - 6951 [Qed.] 0.005 secs (0.005u,0.s) -Chars 6988 - 7159 [Theorem~interp_interp~{E}~{F}~...] 0. secs (0.u,0.s) -Chars 7160 - 7166 [Proof.] 0. secs (0.u,0.s) -Chars 7169 - 7181 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 7182 - 7189 [intros.] 0. secs (0.u,0.s) -Chars 7193 - 7221 [rewrite~2!(unfold_interp~t).] 0.023 secs (0.023u,0.s) -Chars 7224 - 7268 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) -Chars 7272 - 7279 [to_mon.] 0. secs (0.u,0.s) -Chars 7280 - 7300 [rewrite~interp_bind.] 0.011 secs (0.011u,0.s) -Chars 7301 - 7307 [ebind.] 0.005 secs (0.005u,0.s) -Chars 7308 - 7322 [intros;~subst.] 0. secs (0.u,0.s) -Chars 7327 - 7346 [rewrite~interp_tau.] 0.011 secs (0.011u,0.s) -Chars 7347 - 7352 [taus.] 0. secs (0.u,0.s) -Chars 7353 - 7363 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7367 - 7371 [Qed.] 0.006 secs (0.006u,0.s) -Chars 7373 - 7523 [Lemma~interp_translate~{E}~{F}...] 0. secs (0.u,0.s) -Chars 7524 - 7530 [Proof.] 0. secs (0.u,0.s) -Chars 7533 - 7542 [revert~t.] 0. secs (0.u,0.s) -Chars 7547 - 7559 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 7563 - 7572 [intros~t.] 0. secs (0.u,0.s) -Chars 7575 - 7598 [rewrite~!unfold_interp.] 0.024 secs (0.023u,0.s) -Chars 7599 - 7614 [unfold~_interp.] 0. secs (0.u,0.s) -Chars 7617 - 7643 [rewrite~unfold_translate_.] 0.008 secs (0.008u,0.s) -Chars 7644 - 7662 [unfold~translateF.] 0. secs (0.u,0.s) -Chars 7665 - 7691 [destruct~(observe~t);~cbn.] 0. secs (0.u,0.s) -Chars 7694 - 7695 [-] 0. secs (0.u,0.s) -Chars 7696 - 7714 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 7758 - 7759 [-] 0. secs (0.u,0.s) -Chars 7760 - 7765 [taus.] 0. secs (0.u,0.s) -Chars 7766 - 7776 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7780 - 7781 [-] 0. secs (0.u,0.s) -Chars 7782 - 7789 [to_mon.] 0. secs (0.u,0.s) -Chars 7790 - 7796 [ebind.] 0.006 secs (0.006u,0.s) -Chars 7797 - 7811 [intros;~subst.] 0. secs (0.u,0.s) -Chars 7812 - 7817 [taus.] 0. secs (0.u,0.s) -Chars 7818 - 7828 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7831 - 7835 [Qed.] 0.006 secs (0.006u,0.s) -Chars 7837 - 7966 [Lemma~translate_to_interp~{E}~...] 0. secs (0.u,0.s) -Chars 7967 - 7973 [Proof.] 0. secs (0.u,0.s) -Chars 7976 - 7985 [revert~t.] 0. secs (0.u,0.s) -Chars 7986 - 7998 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 7999 - 8006 [intros.] 0. secs (0.u,0.s) -Chars 8009 - 8034 [rewrite~unfold_translate.] 0.009 secs (0.009u,0.s) -Chars 8037 - 8059 [rewrite~unfold_interp.] 0.011 secs (0.011u,0.s) -Chars 8062 - 8106 [destruct~(observe~t);~cbn;~eau...] 0.004 secs (0.004u,0.s) -Chars 8110 - 8122 [constructor.] 0. secs (0.u,0.s) -Chars 8123 - 8129 [intro.] 0. secs (0.u,0.s) -Chars 8130 - 8141 [fold_subst.] 0. secs (0.u,0.s) -Chars 8145 - 8176 [rewrite~bind_ret_l,~tau_euttge.] 0.012 secs (0.012u,0.s) -Chars 8177 - 8187 [apply~CIH.] 0. secs (0.u,0.s) -Chars 8189 - 8193 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8195 - 8340 [Lemma~interp_forever~{E}~{F}~(...] 0. secs (0.u,0.s) -Chars 8341 - 8347 [Proof.] 0. secs (0.u,0.s) -Chars 8350 - 8362 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 8366 - 8393 [rewrite~(unfold_forever~t).] 0.01 secs (0.01u,0.s) -Chars 8396 - 8434 [rewrite~(unfold_forever~(inter...] 0.012 secs (0.012u,0.s) -Chars 8437 - 8457 [rewrite~interp_bind.] 0.01 secs (0.01u,0.s) -Chars 8460 - 8466 [ebind.] 0.005 secs (0.005u,0.s) -Chars 8467 - 8481 [intros;~subst.] 0. secs (0.u,0.s) -Chars 8484 - 8503 [rewrite~interp_tau.] 0.011 secs (0.011u,0.s) -Chars 8506 - 8511 [taus.] 0. secs (0.u,0.s) -Chars 8512 - 8522 [apply~CIH.] 0. secs (0.u,0.s) -Chars 8524 - 8528 [Qed.] 0.004 secs (0.004u,0.s) -Chars 8530 - 8775 [Lemma~interp_iter'~{E}~{F}~(f~...] 0. secs (0.u,0.s) -Chars 8776 - 8782 [Proof.] 0. secs (0.u,0.s) -Chars 8785 - 8807 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) -Chars 8811 - 8833 [rewrite~2!unfold_iter.] 0.022 secs (0.022u,0.s) -Chars 8836 - 8856 [rewrite~interp_bind.] 0.01 secs (0.01u,0.s) -Chars 8859 - 8865 [ebind.] 0.005 secs (0.005u,0.s) -Chars 8869 - 8870 [{] 0. secs (0.u,0.s) -Chars 8871 - 8881 [do~2~step.] 0.011 secs (0.011u,0.s) -Chars 8882 - 8893 [apply~EQ_t.] 0. secs (0.u,0.s) -Chars 8894 - 8895 [}] 0. secs (0.u,0.s) -Chars 8898 - 8926 [intros~[]~_~[];~cbn;~to_mon.] 0.001 secs (0.001u,0.s) -Chars 8930 - 8931 [-] 0. secs (0.u,0.s) -Chars 8932 - 8937 [taus.] 0. secs (0.u,0.s) -Chars 8938 - 8948 [apply~CIH.] 0. secs (0.u,0.s) -Chars 8952 - 8953 [-] 0. secs (0.u,0.s) -Chars 8954 - 8966 [reflexivity.] 0. secs (0.u,0.s) -Chars 8968 - 8972 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8974 - 9152 [Lemma~interp_iter~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) -Chars 9153 - 9159 [Proof.] 0. secs (0.u,0.s) -Chars 9162 - 9218 [unfold~iter,~Iter_Kleisli,~Bas...] 0. secs (0.u,0.s) -Chars 9221 - 9240 [apply~interp_iter'.] 0. secs (0.u,0.s) -Chars 9243 - 9255 [reflexivity.] 0. secs (0.u,0.s) -Chars 9256 - 9260 [Qed.] 0. secs (0.u,0.s) -Chars 9262 - 9482 [Lemma~interp_iter'_eutt~{E}~{F...] 0. secs (0.u,0.s) -Chars 9483 - 9489 [Proof.] 0. secs (0.u,0.s) -Chars 9492 - 9514 [coinduction;~intros~i.] 0.001 secs (0.001u,0.s) -Chars 9518 - 9540 [rewrite~2!unfold_iter.] 0.021 secs (0.02u,0.s) -Chars 9543 - 9563 [rewrite~interp_bind.] 0.009 secs (0.009u,0.s) -Chars 9566 - 9572 [ebind.] 0.005 secs (0.005u,0.s) -Chars 9576 - 9586 [do~2~step.] 0.01 secs (0.01u,0.s) -Chars 9587 - 9597 [apply~Heq.] 0. secs (0.u,0.s) -Chars 9600 - 9620 [intros~[]~_~[];~cbn.] 0.001 secs (0.001u,0.s) -Chars 9623 - 9624 [-] 0. secs (0.u,0.s) -Chars 9625 - 9630 [taus.] 0. secs (0.u,0.s) -Chars 9631 - 9641 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9645 - 9646 [-] 0. secs (0.u,0.s) -Chars 9647 - 9659 [reflexivity.] 0. secs (0.u,0.s) -Chars 9661 - 9665 [Qed.] 0.006 secs (0.006u,0.s) -Chars 9667 - 9850 [Lemma~interp_loop~{E}~{F}~(f~:...] 0.001 secs (0.001u,0.s) -Chars 9851 - 9857 [Proof.] 0. secs (0.u,0.s) -Chars 9860 - 9872 [unfold~loop.] 0. secs (0.u,0.s) -Chars 9873 - 9913 [unfold~cat,~Cat_Kleisli,~ITree...] 0. secs (0.u,0.s) -Chars 9916 - 9936 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) -Chars 9939 - 9955 [apply~eqit_bind.] 0. secs (0.u,0.s) -Chars 9958 - 9959 [{] 0. secs (0.u,0.s) -Chars 9960 - 10008 [unfold~inr_,~Inr_Kleisli,~lift...] 0. secs (0.u,0.s) -Chars 10013 - 10032 [rewrite~interp_ret.] 0.001 secs (0.001u,0.s) -Chars 10037 - 10049 [reflexivity.] 0. secs (0.u,0.s) -Chars 10052 - 10053 [}] 0. secs (0.u,0.s) -Chars 10056 - 10069 [repeat~intro.] 0. secs (0.u,0.s) -Chars 10072 - 10092 [rewrite~interp_iter.] 0.003 secs (0.003u,0.s) -Chars 10095 - 10115 [apply~eq_itree_iter.] 0. secs (0.u,0.s) -Chars 10118 - 10132 [intros~?~?~[].] 0. secs (0.u,0.s) -Chars 10135 - 10155 [rewrite~interp_bind.] 0.003 secs (0.003u,0.s) -Chars 10158 - 10191 [apply~eqit_bind;~try~reflexivity.] 0.001 secs (0.001u,0.s) -Chars 10194 - 10209 [intros~[];~cbn.] 0. secs (0.u,0.s) -Chars 10210 - 10221 [unfold~cat.] 0. secs (0.u,0.s) -Chars 10222 - 10242 [rewrite~interp_bind.] 0.002 secs (0.002u,0.s) -Chars 10245 - 10246 [-] 0. secs (0.u,0.s) -Chars 10247 - 10308 [unfold~inl_,~Inl_Kleisli,~inr_...] 0. secs (0.u,0.s) -Chars 10313 - 10357 [rewrite~interp_ret,~!bind_ret_...] 0.01 secs (0.01u,0.s) -Chars 10362 - 10374 [reflexivity.] 0. secs (0.u,0.s) -Chars 10377 - 10378 [-] 0. secs (0.u,0.s) -Chars 10379 - 10449 [unfold~cat,~id_,~Id_Kleisli,~i...] 0. secs (0.u,0.s) -Chars 10454 - 10511 [rewrite~interp_bind,~interp_re...] 0.012 secs (0.012u,0.s) -Chars 10516 - 10528 [reflexivity.] 0. secs (0.u,0.s) -Chars 10529 - 10533 [Qed.] 0.008 secs (0.008u,0.s) -Chars 10535 - 10684 [Lemma~translate_iter~{E}~{F}~{...] 0. secs (0.u,0.s) -Chars 10685 - 10691 [Proof.] 0. secs (0.u,0.s) -Chars 10694 - 10722 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) -Chars 10725 - 10751 [rewrite~interp_iter'_eutt.] 0.001 secs (0.001u,0.s) -Chars 10752 - 10764 [reflexivity.] 0. secs (0.u,0.s) -Chars 10765 - 10773 [clear~i.] 0. secs (0.u,0.s) -Chars 10776 - 10785 [intros~i.] 0. secs (0.u,0.s) -Chars 10786 - 10790 [cbn.] 0. secs (0.u,0.s) -Chars 10791 - 10819 [rewrite~translate_to_interp.] 0. secs (0.u,0.s) -Chars 10820 - 10832 [reflexivity.] 0. secs (0.u,0.s) -Chars 10833 - 10837 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Interp/Recursion.v.timing b/theories/Interp/Recursion.v.timing deleted file mode 100644 index e71c3286..00000000 --- a/theories/Interp/Recursion.v.timing +++ /dev/null @@ -1,24 +0,0 @@ -Chars 17 - 126 [From~ITree~Require~Import~Basi...] 0.03 secs (0.024u,0.005s) -Chars 128 - 150 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 151 - 183 [#[local]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 1750 - 2130 [Definition~interp_mrec~{D~E~:~...] 0.002 secs (0.002u,0.s) -Chars 2132 - 2170 [Arguments~interp_mrec~{D~E}~&~...] 0. secs (0.u,0.s) -Chars 2276 - 2409 [Definition~mrec~{D~E~:~Type~->...] 0. secs (0.u,0.s) -Chars 2411 - 2442 [Arguments~mrec~{D~E}~&~ctx~[T].] 0. secs (0.u,0.s) -Chars 2508 - 2614 [Definition~trigger_inl1~{D~E~:...] 0. secs (0.u,0.s) -Chars 2616 - 2649 [Arguments~trigger_inl1~{D~E}~[T].] 0. secs (0.u,0.s) -Chars 2781 - 2815 [#[local]~Notation~endo~T:=~(T~...] 0. secs (0.u,0.s) -Chars 2817 - 2950 [Definition~mrec_fix~{D~E~:~Typ...] 0. secs (0.u,0.s) -Chars 2952 - 2979 [Arguments~mrec_fix~{D~E}~&.] 0. secs (0.u,0.s) -Chars 2981 - 3136 [Notation~"'mrec-fix'~f~d~:=~g"...] 0. secs (0.u,0.s) -Chars 3209 - 3282 [Inductive~callE~(A~B~:~Type)~:...] 0. secs (0.u,0.s) -Chars 3284 - 3305 [Arguments~Call~{A~B}.] 0. secs (0.u,0.s) -Chars 3354 - 3442 [Definition~unCall~{A}~{B}~{T}~...] 0.002 secs (0.002u,0.s) -Chars 3500 - 3648 [Definition~calling~{A}~{B}~{F~...] 0. secs (0.u,0.s) -Chars 3846 - 4007 [Definition~calling'~{A}~{B}~{F...] 0. secs (0.u,0.s) -Chars 4056 - 4216 [Definition~rec~{E~:~Type~->~Ty...] 0. secs (0.u,0.s) -Chars 4218 - 4242 [Arguments~rec~{E~A~B}~&.] 0. secs (0.u,0.s) -Chars 4496 - 4586 [Definition~call~{E}~{A}~{B}~(a...] 0. secs (0.u,0.s) -Chars 4652 - 4800 [Definition~rec_fix~{E~:~Type~-...] 0. secs (0.u,0.s) -Chars 4802 - 4830 [Arguments~rec_fix~{E~A~B}~&.] 0. secs (0.u,0.s) -Chars 4832 - 4926 [Notation~"'rec-fix'~f~a~:=~g"~...] 0. secs (0.u,0.s) diff --git a/theories/Interp/RecursionFacts.v.timing b/theories/Interp/RecursionFacts.v.timing deleted file mode 100644 index ce454406..00000000 --- a/theories/Interp/RecursionFacts.v.timing +++ /dev/null @@ -1,242 +0,0 @@ -Chars 245 - 320 [From~Stdlib~Require~Import~Pro...] 0.006 secs (0.003u,0.002s) -Chars 322 - 358 [From~Coinduction~Require~Impor...] 0.002 secs (0.002u,0.s) -Chars 361 - 667 [From~ITree~Require~Import~Basi...] 0.057 secs (0.049u,0.008s) -Chars 669 - 691 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 693 - 707 [Section~Facts.] 0. secs (0.u,0.s) -Chars 709 - 766 [Context~{D~E~:~Type~->~Type}~(...] 0. secs (0.u,0.s) -Chars 804 - 1117 [Definition~_interp_mrec~{R~:~T...] 0.001 secs (0.001u,0.s) -Chars 1433 - 1534 [Lemma~unfold_interp_mrec~R~(t~...] 0. secs (0.u,0.s) -Chars 1535 - 1541 [Proof.] 0. secs (0.u,0.s) -Chars 1544 - 1563 [unfold~interp_mrec.] 0. secs (0.u,0.s) -Chars 1566 - 1586 [rewrite~unfold_iter.] 0.006 secs (0.006u,0.s) -Chars 1589 - 1611 [destruct~observe;~cbn.] 0. secs (0.u,0.s) -Chars 1614 - 1615 [-] 0. secs (0.u,0.s) -Chars 1616 - 1648 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) -Chars 1651 - 1652 [-] 0. secs (0.u,0.s) -Chars 1653 - 1685 [rewrite~bind_ret_l;~reflexivity.] 0.032 secs (0.032u,0.s) -Chars 1688 - 1689 [-] 0. secs (0.u,0.s) -Chars 1690 - 1706 [destruct~e;~cbn.] 0. secs (0.u,0.s) -Chars 1711 - 1712 [+] 0. secs (0.u,0.s) -Chars 1713 - 1745 [rewrite~bind_ret_l;~reflexivity.] 0.004 secs (0.004u,0.s) -Chars 1750 - 1751 [+] 0. secs (0.u,0.s) -Chars 1752 - 1769 [rewrite~bind_vis.] 0.005 secs (0.005u,0.s) -Chars 1776 - 1794 [step;~constructor.] 0.002 secs (0.002u,0.s) -Chars 1795 - 1802 [intros.] 0. secs (0.u,0.s) -Chars 1809 - 1828 [rewrite~bind_ret_l.] 0.006 secs (0.006u,0.s) -Chars 1835 - 1853 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 1854 - 1858 [Qed.] 0.007 secs (0.006u,0.001s) -Chars 1968 - 2128 [Definition~mrecursive~(f~:~D~~...] 0. secs (0.u,0.s) -Chars 2130 - 2230 [#[global]~Instance~eq_itree_mr...] 0. secs (0.u,0.s) -Chars 2231 - 2237 [Proof.] 0. secs (0.u,0.s) -Chars 2240 - 2251 [repeat~red.] 0. secs (0.u,0.s) -Chars 2255 - 2267 [coinduction.] 0.002 secs (0.001u,0.s) -Chars 2268 - 2275 [intros.] 0. secs (0.u,0.s) -Chars 2278 - 2306 [rewrite~!unfold_interp_mrec.] 0.026 secs (0.024u,0.002s) -Chars 2309 - 2319 [step~in~H.] 0. secs (0.u,0.s) -Chars 2320 - 2344 [inv~H;~eauto~with~itree.] 0.065 secs (0.065u,0.s) -Chars 2348 - 2349 [-] 0. secs (0.u,0.s) -Chars 2350 - 2355 [taus.] 0. secs (0.u,0.s) -Chars 2356 - 2370 [now~apply~CIH.] 0. secs (0.u,0.s) -Chars 2374 - 2375 [-] 0. secs (0.u,0.s) -Chars 2376 - 2380 [cbn.] 0. secs (0.u,0.s) -Chars 2381 - 2392 [destruct~e.] 0. secs (0.u,0.s) -Chars 2397 - 2398 [+] 0. secs (0.u,0.s) -Chars 2399 - 2404 [taus.] 0. secs (0.u,0.s) -Chars 2405 - 2415 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2422 - 2428 [ebind.] 0.004 secs (0.004u,0.s) -Chars 2429 - 2443 [intros;~subst.] 0. secs (0.u,0.s) -Chars 2450 - 2460 [do~2~step.] 0.006 secs (0.006u,0.s) -Chars 2461 - 2471 [apply~REL.] 0. secs (0.u,0.s) -Chars 2477 - 2478 [+] 0. secs (0.u,0.s) -Chars 2479 - 2491 [constructor.] 0. secs (0.u,0.s) -Chars 2492 - 2498 [intro.] 0. secs (0.u,0.s) -Chars 2499 - 2504 [step.] 0.001 secs (0.001u,0.s) -Chars 2505 - 2510 [taus.] 0. secs (0.u,0.s) -Chars 2511 - 2521 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2526 - 2536 [apply~REL.] 0. secs (0.u,0.s) -Chars 2540 - 2544 [Qed.] 0.009 secs (0.009u,0.s) -Chars 2546 - 2721 [Theorem~interp_mrec_bind~{U}~{...] 0. secs (0.u,0.s) -Chars 2722 - 2728 [Proof.] 0. secs (0.u,0.s) -Chars 2731 - 2763 [revert~t~k;~coinduction;~intros.] 0.001 secs (0.001u,0.s) -Chars 2766 - 2799 [rewrite~(unfold_interp_mrec~_~t).] 0.012 secs (0.012u,0.s) -Chars 2802 - 2826 [rewrite~(unfold_bind~t).] 0.011 secs (0.011u,0.s) -Chars 2829 - 2881 [destruct~(observe~t);~cbn;~[~~...] 0.002 secs (0.002u,0.s) -Chars 2885 - 2886 [-] 0. secs (0.u,0.s) -Chars 2887 - 2905 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 2908 - 2909 [-] 0. secs (0.u,0.s) -Chars 2910 - 2915 [taus.] 0. secs (0.u,0.s) -Chars 2916 - 2927 [fold_subst.] 0. secs (0.u,0.s) -Chars 2928 - 2938 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2942 - 2943 [-] 0. secs (0.u,0.s) -Chars 2944 - 2951 [to_mon.] 0. secs (0.u,0.s) -Chars 2952 - 2957 [taus.] 0. secs (0.u,0.s) -Chars 2958 - 2969 [fold_subst.] 0. secs (0.u,0.s) -Chars 2975 - 2996 [rewrite~<-~bind_bind.] 0.008 secs (0.008u,0.s) -Chars 3001 - 3011 [apply~CIH.] 0. secs (0.u,0.s) -Chars 3016 - 3017 [-] 0. secs (0.u,0.s) -Chars 3018 - 3030 [constructor.] 0. secs (0.u,0.s) -Chars 3031 - 3037 [intro.] 0. secs (0.u,0.s) -Chars 3038 - 3049 [fold_subst.] 0. secs (0.u,0.s) -Chars 3055 - 3084 [rewrite~bind_ret_l,~bind_tau.] 0.02 secs (0.019u,0.s) -Chars 3090 - 3095 [step.] 0.001 secs (0.001u,0.s) -Chars 3096 - 3101 [taus.] 0. secs (0.u,0.s) -Chars 3102 - 3112 [apply~CIH.] 0. secs (0.u,0.s) -Chars 3116 - 3120 [Qed.] 0.009 secs (0.009u,0.s) -Chars 3122 - 3236 [Theorem~interp_mrec_trigger~{U...] 0. secs (0.u,0.s) -Chars 3237 - 3243 [Proof.] 0. secs (0.u,0.s) -Chars 3246 - 3292 [rewrite~unfold_interp_mrec;~un...] 0.008 secs (0.008u,0.s) -Chars 3295 - 3311 [destruct~a;~cbn.] 0. secs (0.u,0.s) -Chars 3314 - 3345 [rewrite~tau_euttge,~bind_ret_r.] 0.009 secs (0.008u,0.s) -Chars 3348 - 3360 [reflexivity.] 0. secs (0.u,0.s) -Chars 3363 - 3381 [step;~constructor.] 0.001 secs (0.001u,0.s) -Chars 3382 - 3389 [intros.] 0. secs (0.u,0.s) -Chars 3390 - 3434 [rewrite~tau_euttge,~unfold_int...] 0.011 secs (0.01u,0.s) -Chars 3437 - 3455 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 3456 - 3460 [Qed.] 0.002 secs (0.002u,0.s) -Chars 3462 - 3564 [Theorem~interp_mrec_as_interp~...] 0. secs (0.u,0.s) -Chars 3565 - 3571 [Proof.] 0. secs (0.u,0.s) -Chars 3574 - 3609 [rewrite~<-~(tau_eutt~(interp~_...] 0. secs (0.u,0.s) -Chars 3612 - 3627 [revert_until~T.] 0. secs (0.u,0.s) -Chars 3628 - 3640 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 3641 - 3648 [intros.] 0. secs (0.u,0.s) -Chars 3651 - 3693 [rewrite~unfold_interp_mrec,~un...] 0.021 secs (0.021u,0.s) -Chars 3696 - 3759 [destruct~(observe~c0);~[~~|~~|...] 0.003 secs (0.003u,0.s) -Chars 3762 - 3763 [-] 0. secs (0.u,0.s) -Chars 3764 - 3773 [now~taur.] 0. secs (0.u,0.s) -Chars 3777 - 3778 [-] 0. secs (0.u,0.s) -Chars 3779 - 3784 [taus.] 0. secs (0.u,0.s) -Chars 3785 - 3795 [apply~CIH.] 0. secs (0.u,0.s) -Chars 3799 - 3800 [-] 0. secs (0.u,0.s) -Chars 3801 - 3806 [taus.] 0. secs (0.u,0.s) -Chars 3807 - 3832 [rewrite~interp_mrec_bind.] 0.008 secs (0.008u,0.s) -Chars 3833 - 3845 [unfold~mrec.] 0. secs (0.u,0.s) -Chars 3848 - 3854 [ebind.] 0.004 secs (0.004u,0.s) -Chars 3855 - 3869 [intros;~subst.] 0. secs (0.u,0.s) -Chars 3870 - 3880 [apply~CIH.] 0. secs (0.u,0.s) -Chars 3884 - 3885 [-] 0. secs (0.u,0.s) -Chars 3886 - 3893 [to_mon.] 0. secs (0.u,0.s) -Chars 3894 - 3913 [rewrite~tau_euttge.] 0.003 secs (0.003u,0.s) -Chars 3919 - 3940 [unfold~ITree.trigger.] 0. secs (0.u,0.s) -Chars 3942 - 3959 [rewrite~bind_vis.] 0.011 secs (0.011u,0.s) -Chars 3964 - 3976 [constructor.] 0. secs (0.u,0.s) -Chars 3977 - 3983 [intro.] 0. secs (0.u,0.s) -Chars 3989 - 4008 [rewrite~bind_ret_l.] 0.009 secs (0.008u,0.s) -Chars 4009 - 4028 [rewrite~tau_euttge.] 0.002 secs (0.002u,0.s) -Chars 4029 - 4039 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4041 - 4045 [Qed.] 0.009 secs (0.009u,0.s) -Chars 4047 - 4137 [Theorem~mrec_as_interp~{T}~(d~...] 0. secs (0.u,0.s) -Chars 4138 - 4144 [Proof.] 0. secs (0.u,0.s) -Chars 4147 - 4175 [apply~interp_mrec_as_interp.] 0. secs (0.u,0.s) -Chars 4176 - 4180 [Qed.] 0. secs (0.u,0.s) -Chars 4182 - 4280 [Lemma~interp_mrecursive~{T}~(d...] 0. secs (0.u,0.s) -Chars 4281 - 4287 [Proof.] 0. secs (0.u,0.s) -Chars 4290 - 4308 [unfold~mrecursive.] 0. secs (0.u,0.s) -Chars 4309 - 4329 [unfold~trigger_inl1.] 0. secs (0.u,0.s) -Chars 4332 - 4355 [rewrite~interp_trigger.] 0. secs (0.u,0.s) -Chars 4356 - 4360 [cbn.] 0. secs (0.u,0.s) -Chars 4361 - 4373 [reflexivity.] 0. secs (0.u,0.s) -Chars 4374 - 4378 [Qed.] 0. secs (0.u,0.s) -Chars 4380 - 4516 [Theorem~unfold_interp_mrec_h~{...] 0. secs (0.u,0.s) -Chars 4517 - 4523 [Proof.] 0. secs (0.u,0.s) -Chars 4526 - 4546 [rewrite~<-~tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 4549 - 4558 [revert~t.] 0. secs (0.u,0.s) -Chars 4559 - 4571 [coinduction.] 0.002 secs (0.002u,0.s) -Chars 4572 - 4579 [intros.] 0. secs (0.u,0.s) -Chars 4582 - 4626 [rewrite~(itree_eta~t);~destruc...] 0.013 secs (0.013u,0.s) -Chars 4629 - 4630 [-] 0. secs (0.u,0.s) -Chars 4631 - 4670 [rewrite~2!unfold_interp_mrec;~...] 0.026 secs (0.026u,0.s) -Chars 4674 - 4675 [-] 0. secs (0.u,0.s) -Chars 4676 - 4720 [rewrite~unfold_interp,~2!unfol...] 0.035 secs (0.034u,0.s) -Chars 4726 - 4731 [taus.] 0. secs (0.u,0.s) -Chars 4732 - 4742 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4746 - 4747 [-] 0. secs (0.u,0.s) -Chars 4748 - 4767 [rewrite~interp_vis.] 0.012 secs (0.012u,0.s) -Chars 4772 - 4813 [rewrite~(unfold_interp_mrec~_~...] 0.013 secs (0.013u,0.s) -Chars 4818 - 4842 [destruct~e;~cbn;~to_mon.] 0. secs (0.u,0.s) -Chars 4848 - 4849 [+] 0. secs (0.u,0.s) -Chars 4850 - 4877 [rewrite~2!interp_mrec_bind.] 0.025 secs (0.025u,0.s) -Chars 4884 - 4889 [taus.] 0. secs (0.u,0.s) -Chars 4897 - 4918 [ebind;~intros;~subst.] 0.004 secs (0.004u,0.s) -Chars 4926 - 4969 [rewrite~unfold_interp_mrec;~cb...] 0.009 secs (0.009u,0.s) -Chars 4975 - 4976 [+] 0. secs (0.u,0.s) -Chars 4977 - 5063 [unfold~inr_,~Handler.Inr_sum1_...] 0. secs (0.u,0.s) -Chars 5070 - 5124 [rewrite~bind_trigger,~unfold_i...] 0.024 secs (0.023u,0.s) -Chars 5131 - 5150 [rewrite~tau_euttge.] 0.003 secs (0.003u,0.s) -Chars 5157 - 5169 [constructor.] 0. secs (0.u,0.s) -Chars 5176 - 5183 [intros.] 0. secs (0.u,0.s) -Chars 5184 - 5189 [step.] 0.001 secs (0.001u,0.s) -Chars 5190 - 5195 [taus.] 0. secs (0.u,0.s) -Chars 5203 - 5235 [rewrite~unfold_interp_mrec;~cbn.] 0.008 secs (0.008u,0.s) -Chars 5242 - 5252 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5254 - 5258 [Qed.] 0.014 secs (0.014u,0.s) -Chars 5260 - 5270 [End~Facts.] 0. secs (0.u,0.s) -Chars 5272 - 5297 [#[local]~Opaque~interp_mrec.] 0. secs (0.u,0.s) -Chars 5299 - 5556 [#[global]~Instance~Proper_inte...] 0. secs (0.u,0.s) -Chars 5557 - 5563 [Proof.] 0. secs (0.u,0.s) -Chars 5566 - 5583 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) -Chars 5586 - 5615 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) -Chars 5618 - 5647 [rewrite~2!unfold_interp_mrec.] 0.02 secs (0.02u,0.s) -Chars 5650 - 5680 [step~in~Ht;~induction~Ht;~cbn.] 0.001 secs (0.001u,0.s) -Chars 5684 - 5688 [3:~{] 0. secs (0.u,0.s) -Chars 5689 - 5713 [destruct~e;~constructor.] 0. secs (0.u,0.s) -Chars 5719 - 5720 [+] 0. secs (0.u,0.s) -Chars 5721 - 5731 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5732 - 5738 [ebind.] 0.004 secs (0.004u,0.s) -Chars 5739 - 5749 [apply~Hfg.] 0. secs (0.u,0.s) -Chars 5758 - 5772 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 5773 - 5783 [apply~REL.] 0. secs (0.u,0.s) -Chars 5789 - 5790 [+] 0. secs (0.u,0.s) -Chars 5791 - 5810 [intros;~step;~taus.] 0.003 secs (0.003u,0.s) -Chars 5811 - 5833 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) -Chars 5836 - 5837 [}] 0. secs (0.u,0.s) -Chars 5840 - 5879 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) -Chars 5882 - 5940 [all:~to_mon;~rewrite~unfold_in...] 0.028 secs (0.028u,0.s) -Chars 5941 - 5945 [Qed.] 0.009 secs (0.009u,0.s) -Chars 6054 - 6193 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) -Chars 6195 - 6310 [Lemma~rec_as_interp~{E}~{A}~{B...] 0. secs (0.u,0.s) -Chars 6311 - 6317 [Proof.] 0. secs (0.u,0.s) -Chars 6320 - 6331 [unfold~rec.] 0. secs (0.u,0.s) -Chars 6334 - 6357 [rewrite~mrec_as_interp.] 0.001 secs (0.001u,0.s) -Chars 6360 - 6378 [apply~eq_sub_eutt.] 0. secs (0.u,0.s) -Chars 6381 - 6404 [eapply~eq_itree_interp.] 0. secs (0.u,0.s) -Chars 6407 - 6408 [-] 0. secs (0.u,0.s) -Chars 6409 - 6413 [red.] 0. secs (0.u,0.s) -Chars 6414 - 6458 [unfold~case_;~intros~?~[[]|~];...] 0. secs (0.u,0.s) -Chars 6461 - 6462 [-] 0. secs (0.u,0.s) -Chars 6463 - 6475 [reflexivity.] 0. secs (0.u,0.s) -Chars 6476 - 6480 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6482 - 6607 [Lemma~interp_recursive_call~{E...] 0. secs (0.u,0.s) -Chars 6608 - 6614 [Proof.] 0. secs (0.u,0.s) -Chars 6617 - 6634 [unfold~recursive.] 0. secs (0.u,0.s) -Chars 6635 - 6647 [unfold~call.] 0. secs (0.u,0.s) -Chars 6650 - 6673 [rewrite~interp_trigger.] 0. secs (0.u,0.s) -Chars 6674 - 6678 [cbn.] 0. secs (0.u,0.s) -Chars 6681 - 6693 [reflexivity.] 0. secs (0.u,0.s) -Chars 6694 - 6698 [Qed.] 0. secs (0.u,0.s) -Chars 6700 - 6966 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) -Chars 6967 - 6973 [Proof.] 0. secs (0.u,0.s) -Chars 6976 - 6993 [intros~f~g~Hfg~R.] 0. secs (0.u,0.s) -Chars 6996 - 7025 [coinduction;~intros~t1~t2~Ht.] 0.001 secs (0.001u,0.s) -Chars 7028 - 7057 [rewrite~2!unfold_interp_mrec.] 0.013 secs (0.013u,0.s) -Chars 7060 - 7100 [step~in~Ht;~induction~Ht;~try~...] 0.08 secs (0.079u,0.s) -Chars 7104 - 7108 [3:~{] 0. secs (0.u,0.s) -Chars 7109 - 7133 [destruct~e;~constructor.] 0. secs (0.u,0.s) -Chars 7139 - 7140 [+] 0. secs (0.u,0.s) -Chars 7141 - 7151 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7152 - 7158 [ebind.] 0.004 secs (0.004u,0.s) -Chars 7159 - 7169 [apply~Hfg.] 0. secs (0.u,0.s) -Chars 7178 - 7192 [intros~?~_~[].] 0. secs (0.u,0.s) -Chars 7193 - 7203 [apply~REL.] 0. secs (0.u,0.s) -Chars 7209 - 7210 [+] 0. secs (0.u,0.s) -Chars 7211 - 7230 [intros;~step;~taus.] 0.001 secs (0.001u,0.s) -Chars 7231 - 7253 [eauto~with~paco~itree.] 0.001 secs (0.001u,0.s) -Chars 7256 - 7257 [}] 0. secs (0.u,0.s) -Chars 7260 - 7299 [1,~2:~constructor;~auto~with~p...] 0. secs (0.u,0.s) -Chars 7302 - 7360 [all:~to_mon;~rewrite~unfold_in...] 0.013 secs (0.013u,0.s) -Chars 7361 - 7365 [Qed.] 0.008 secs (0.008u,0.s) -Chars 7367 - 7504 [#[global]~Instance~euttge_inte...] 0. secs (0.u,0.s) -Chars 7505 - 7511 [Proof.] 0. secs (0.u,0.s) -Chars 7514 - 7523 [do~4~red.] 0. secs (0.u,0.s) -Chars 7524 - 7550 [eapply~euttge_interp_mrec.] 0. secs (0.u,0.s) -Chars 7551 - 7563 [reflexivity.] 0. secs (0.u,0.s) -Chars 7564 - 7568 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Interp/Traces.v.timing b/theories/Interp/Traces.v.timing deleted file mode 100644 index 3de6b666..00000000 --- a/theories/Interp/Traces.v.timing +++ /dev/null @@ -1,223 +0,0 @@ -Chars 52 - 88 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 90 - 221 [From~ITree~Require~Import~Basi...] 0.14 secs (0.125u,0.014s) -Chars 223 - 246 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) -Chars 263 - 452 [Inductive~trace~{E~:~Type~->~T...] 0.001 secs (0.u,0.s) -Chars 516 - 700 [Fixpoint~app_trace~{E}~{R}~{S}...] 0. secs (0.u,0.s) -Chars 773 - 931 [Fixpoint~trace_ret~{E}~{R}~(tr...] 0.004 secs (0.003u,0.s) -Chars 933 - 1429 [Inductive~is_traceF~{E~:~Type~...] 0.002 secs (0.002u,0.s) -Chars 1431 - 1524 [Definition~is_trace~{E~:~Type~...] 0. secs (0.u,0.s) -Chars 1542 - 1695 [Definition~trace_incl~{E~:~Typ...] 0. secs (0.u,0.s) -Chars 1713 - 1857 [Definition~trace_eq~{E~:~Type~...] 0. secs (0.u,0.s) -Chars 1859 - 1973 [Lemma~is_traceF_tau~:~~~forall...] 0. secs (0.u,0.s) -Chars 1974 - 1980 [Proof.] 0. secs (0.u,0.s) -Chars 1983 - 1990 [intros.] 0. secs (0.u,0.s) -Chars 1991 - 2005 [split;~intros.] 0. secs (0.u,0.s) -Chars 2008 - 2009 [-] 0. secs (0.u,0.s) -Chars 2010 - 2022 [constructor.] 0. secs (0.u,0.s) -Chars 2023 - 2044 [remember~(observe~t).] 0. secs (0.u,0.s) -Chars 2049 - 2072 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 2077 - 2143 [induction~H;~intros;~subst;~co...] 0.001 secs (0.u,0.s) -Chars 2146 - 2147 [-] 0. secs (0.u,0.s) -Chars 2148 - 2190 [inversion~H;~subst;~try~constr...] 0.001 secs (0.001u,0.s) -Chars 2191 - 2195 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2197 - 2293 [Lemma~sutt_trace_incl~:~~~fora...] 0. secs (0.u,0.s) -Chars 2294 - 2300 [Proof.] 0. secs (0.u,0.s) -Chars 2303 - 2307 [red.] 0. secs (0.u,0.s) -Chars 2308 - 2315 [intros.] 0. secs (0.u,0.s) -Chars 2316 - 2326 [red~in~H0.] 0. secs (0.u,0.s) -Chars 2327 - 2349 [remember~(observe~t1).] 0. secs (0.u,0.s) -Chars 2352 - 2376 [generalize~dependent~t1.] 0. secs (0.u,0.s) -Chars 2377 - 2401 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2404 - 2450 [induction~H0;~intros;~try~(sol...] 0. secs (0.u,0.s) -Chars 2453 - 2454 [-] 0. secs (0.u,0.s) -Chars 2455 - 2465 [step~in~H.] 0. secs (0.u,0.s) -Chars 2466 - 2487 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 2492 - 2510 [remember~(RetF~_).] 0. secs (0.u,0.s) -Chars 2511 - 2533 [remember~(observe~t2).] 0. secs (0.u,0.s) -Chars 2538 - 2562 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2567 - 2638 [induction~H;~intros;~try~inv~H...] 0.026 secs (0.024u,0.002s) -Chars 2643 - 2665 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) -Chars 2668 - 2669 [-] 0. secs (0.u,0.s) -Chars 2670 - 2707 [apply~IHis_traceF~with~(t1~:=~...] 0. secs (0.u,0.s) -Chars 2712 - 2736 [apply~sutt_inv_tau_left.] 0. secs (0.u,0.s) -Chars 2737 - 2741 [red.] 0. secs (0.u,0.s) -Chars 2742 - 2751 [red~in~H.] 0. secs (0.u,0.s) -Chars 2752 - 2773 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 2774 - 2779 [auto.] 0. secs (0.u,0.s) -Chars 2782 - 2783 [-] 0. secs (0.u,0.s) -Chars 2784 - 2794 [step~in~H.] 0. secs (0.u,0.s) -Chars 2795 - 2816 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 2821 - 2841 [remember~(VisF~_~_).] 0. secs (0.u,0.s) -Chars 2842 - 2864 [remember~(observe~t2).] 0. secs (0.u,0.s) -Chars 2869 - 2893 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 2898 - 2936 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) -Chars 2941 - 2942 [+] 0. secs (0.u,0.s) -Chars 2943 - 2951 [inv_Vis.] 0.007 secs (0.007u,0.s) -Chars 2952 - 2958 [subst.] 0. secs (0.u,0.s) -Chars 2959 - 2963 [red.] 0. secs (0.u,0.s) -Chars 2964 - 2981 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) -Chars 2982 - 2994 [constructor.] 0. secs (0.u,0.s) -Chars 2999 - 3000 [+] 0. secs (0.u,0.s) -Chars 3001 - 3005 [red.] 0. secs (0.u,0.s) -Chars 3006 - 3023 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) -Chars 3024 - 3036 [constructor.] 0. secs (0.u,0.s) -Chars 3037 - 3059 [eapply~IHsuttF;~eauto.] 0. secs (0.u,0.s) -Chars 3062 - 3063 [-] 0. secs (0.u,0.s) -Chars 3064 - 3074 [step~in~H.] 0. secs (0.u,0.s) -Chars 3075 - 3096 [rewrite~<-~Heqi~in~H.] 0. secs (0.u,0.s) -Chars 3101 - 3121 [remember~(VisF~_~_).] 0. secs (0.u,0.s) -Chars 3122 - 3144 [remember~(observe~t2).] 0. secs (0.u,0.s) -Chars 3149 - 3173 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 3178 - 3216 [induction~H;~intros;~try~discr...] 0. secs (0.u,0.s) -Chars 3221 - 3222 [+] 0. secs (0.u,0.s) -Chars 3223 - 3231 [inv_Vis.] 0.035 secs (0.035u,0.s) -Chars 3232 - 3238 [subst.] 0. secs (0.u,0.s) -Chars 3239 - 3243 [red.] 0. secs (0.u,0.s) -Chars 3244 - 3261 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) -Chars 3262 - 3274 [constructor.] 0. secs (0.u,0.s) -Chars 3281 - 3317 [eapply~IHis_traceF;~auto~with~...] 0. secs (0.u,0.s) -Chars 3322 - 3323 [+] 0. secs (0.u,0.s) -Chars 3324 - 3328 [red.] 0. secs (0.u,0.s) -Chars 3329 - 3346 [rewrite~<-~Heqi1.] 0. secs (0.u,0.s) -Chars 3347 - 3359 [constructor.] 0. secs (0.u,0.s) -Chars 3360 - 3380 [apply~IHsuttF;~auto.] 0. secs (0.u,0.s) -Chars 3381 - 3385 [Qed.] 0.005 secs (0.005u,0.s) -Chars 3387 - 3475 [Lemma~eutt_trace_eq~:~~~forall...] 0. secs (0.u,0.s) -Chars 3476 - 3482 [Proof.] 0. secs (0.u,0.s) -Chars 3485 - 3491 [split.] 0. secs (0.u,0.s) -Chars 3494 - 3495 [-] 0. secs (0.u,0.s) -Chars 3496 - 3541 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) -Chars 3544 - 3545 [-] 0. secs (0.u,0.s) -Chars 3546 - 3560 [symmetry~in~H.] 0. secs (0.u,0.s) -Chars 3561 - 3606 [apply~sutt_trace_incl;~apply~e...] 0. secs (0.u,0.s) -Chars 3607 - 3611 [Qed.] 0. secs (0.u,0.s) -Chars 3613 - 3972 [Lemma~eq_trace_inv~{E}~{R}~(t1...] 0. secs (0.u,0.s) -Chars 3973 - 3979 [Proof.] 0. secs (0.u,0.s) -Chars 3982 - 4003 [destruct~H,~t1;~auto.] 0. secs (0.u,0.s) -Chars 4006 - 4007 [-] 0. secs (0.u,0.s) -Chars 4008 - 4034 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) -Chars 4037 - 4038 [-] 0. secs (0.u,0.s) -Chars 4039 - 4065 [exists~eq_refl;~cbn;~auto.] 0. secs (0.u,0.s) -Chars 4066 - 4070 [Qed.] 0. secs (0.u,0.s) -Chars 4072 - 4168 [Lemma~trace_incl_sutt~:~~~fora...] 0. secs (0.u,0.s) -Chars 4169 - 4175 [Proof.] 0. secs (0.u,0.s) -Chars 4178 - 4189 [intros~E~R.] 0. secs (0.u,0.s) -Chars 4190 - 4208 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 4209 - 4228 [intros~t1~t2~Hincl.] 0. secs (0.u,0.s) -Chars 4231 - 4254 [unfold~trace_incl~in~*.] 0. secs (0.u,0.s) -Chars 4255 - 4276 [unfold~is_trace~in~*.] 0. secs (0.u,0.s) -Chars 4279 - 4301 [destruct~(observe~t1).] 0. secs (0.u,0.s) -Chars 4304 - 4305 [-] 0. secs (0.u,0.s) -Chars 4306 - 4387 [assert~(H~:~is_traceF~(RetF~r~...] 0. secs (0.u,0.s) -Chars 4392 - 4409 [apply~Hincl~in~H.] 0. secs (0.u,0.s) -Chars 4410 - 4422 [clear~Hincl.] 0. secs (0.u,0.s) -Chars 4423 - 4452 [destruct~(observe~t2);~inv~H.] 0.02 secs (0.019u,0.s) -Chars 4457 - 4458 [+] 0. secs (0.u,0.s) -Chars 4459 - 4471 [constructor.] 0. secs (0.u,0.s) -Chars 4472 - 4477 [auto.] 0. secs (0.u,0.s) -Chars 4482 - 4483 [+] 0. secs (0.u,0.s) -Chars 4484 - 4496 [constructor.] 0. secs (0.u,0.s) -Chars 4503 - 4524 [remember~(observe~t).] 0.002 secs (0.002u,0.s) -Chars 4525 - 4543 [remember~(TRet~_).] 0. secs (0.u,0.s) -Chars 4550 - 4573 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 4580 - 4633 [induction~H1;~intros;~try~inv~...] 0.012 secs (0.012u,0.s) -Chars 4640 - 4652 [constructor.] 0. secs (0.u,0.s) -Chars 4653 - 4679 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) -Chars 4682 - 4683 [-] 0. secs (0.u,0.s) -Chars 4684 - 4696 [constructor.] 0. secs (0.u,0.s) -Chars 4697 - 4707 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4708 - 4715 [intros.] 0. secs (0.u,0.s) -Chars 4716 - 4728 [apply~Hincl.] 0. secs (0.u,0.s) -Chars 4729 - 4741 [constructor.] 0. secs (0.u,0.s) -Chars 4742 - 4747 [auto.] 0. secs (0.u,0.s) -Chars 4750 - 4751 [-] 0. secs (0.u,0.s) -Chars 4752 - 4814 [assert~(H~:~is_traceF~(VisF~e~...] 0. secs (0.u,0.s) -Chars 4819 - 4836 [apply~Hincl~in~H.] 0. secs (0.u,0.s) -Chars 4837 - 4866 [destruct~(observe~t2);~inv~H.] 0.023 secs (0.023u,0.s) -Chars 4871 - 4872 [+] 0. secs (0.u,0.s) -Chars 4873 - 4885 [constructor.] 0. secs (0.u,0.s) -Chars 4892 - 4964 [assert~(forall~tr,~is_traceF~(...] 0. secs (0.u,0.s) -Chars 4971 - 4972 [{] 0. secs (0.u,0.s) -Chars 4981 - 4988 [intros.] 0. secs (0.u,0.s) -Chars 4989 - 5011 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) -Chars 5012 - 5030 [apply~Hincl;~auto.] 0. secs (0.u,0.s) -Chars 5037 - 5038 [}] 0. secs (0.u,0.s) -Chars 5045 - 5057 [clear~Hincl.] 0. secs (0.u,0.s) -Chars 5058 - 5078 [rename~H~into~Hincl.] 0. secs (0.u,0.s) -Chars 5085 - 5106 [remember~(observe~t).] 0. secs (0.u,0.s) -Chars 5107 - 5130 [remember~(TEventEnd~_).] 0. secs (0.u,0.s) -Chars 5137 - 5160 [generalize~dependent~t.] 0. secs (0.u,0.s) -Chars 5167 - 5206 [induction~H1;~intros;~try~disc...] 0.001 secs (0.001u,0.s) -Chars 5213 - 5214 [*] 0. secs (0.u,0.s) -Chars 5215 - 5227 [constructor.] 0. secs (0.u,0.s) -Chars 5228 - 5254 [eapply~IHis_traceF;~eauto.] 0. secs (0.u,0.s) -Chars 5263 - 5270 [intros.] 0. secs (0.u,0.s) -Chars 5271 - 5293 [rewrite~is_traceF_tau.] 0. secs (0.u,0.s) -Chars 5294 - 5312 [apply~Hincl;~auto.] 0. secs (0.u,0.s) -Chars 5319 - 5320 [*] 0. secs (0.u,0.s) -Chars 5321 - 5376 [apply~eq_trace_inv~in~Heqt0;~d...] 0.006 secs (0.006u,0.s) -Chars 5385 - 5391 [subst.] 0. secs (0.u,0.s) -Chars 5392 - 5404 [constructor.] 0. secs (0.u,0.s) -Chars 5405 - 5411 [intro.] 0. secs (0.u,0.s) -Chars 5412 - 5422 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5423 - 5430 [intros.] 0. secs (0.u,0.s) -Chars 5439 - 5516 [assert~(is_traceF~(VisF~e~k)~(...] 0. secs (0.u,0.s) -Chars 5525 - 5543 [apply~Hincl~in~H1.] 0. secs (0.u,0.s) -Chars 5544 - 5551 [inv~H1.] 0.007 secs (0.007u,0.s) -Chars 5552 - 5565 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 5566 - 5571 [auto.] 0. secs (0.u,0.s) -Chars 5576 - 5577 [+] 0. secs (0.u,0.s) -Chars 5578 - 5591 [ddestruction.] 0.002 secs (0.002u,0.s) -Chars 5592 - 5604 [constructor.] 0. secs (0.u,0.s) -Chars 5605 - 5611 [intro.] 0. secs (0.u,0.s) -Chars 5612 - 5622 [apply~CIH.] 0. secs (0.u,0.s) -Chars 5623 - 5630 [intros.] 0. secs (0.u,0.s) -Chars 5637 - 5716 [assert~(is_traceF~(VisF~e0~k)~...] 0. secs (0.u,0.s) -Chars 5723 - 5741 [apply~Hincl~in~H0.] 0. secs (0.u,0.s) -Chars 5742 - 5749 [inv~H0.] 0.006 secs (0.006u,0.s) -Chars 5750 - 5769 [ddestruction;~auto.] 0.003 secs (0.003u,0.s) -Chars 5770 - 5774 [Qed.] 0.021 secs (0.021u,0.s) -Chars 5776 - 5879 [Theorem~trace_incl_iff_sutt~:~...] 0. secs (0.u,0.s) -Chars 5880 - 5886 [Proof.] 0. secs (0.u,0.s) -Chars 5889 - 5895 [split.] 0. secs (0.u,0.s) -Chars 5898 - 5899 [-] 0. secs (0.u,0.s) -Chars 5900 - 5922 [apply~sutt_trace_incl.] 0. secs (0.u,0.s) -Chars 5925 - 5926 [-] 0. secs (0.u,0.s) -Chars 5927 - 5949 [apply~trace_incl_sutt.] 0. secs (0.u,0.s) -Chars 5950 - 5954 [Qed.] 0. secs (0.u,0.s) -Chars 5956 - 6044 [Lemma~trace_eq_eutt~:~~~forall...] 0. secs (0.u,0.s) -Chars 6045 - 6051 [Proof.] 0. secs (0.u,0.s) -Chars 6054 - 6077 [intros~E~R~t1~t2~[?~?].] 0.001 secs (0.001u,0.s) -Chars 6078 - 6094 [apply~sutt_eutt.] 0. secs (0.u,0.s) -Chars 6097 - 6098 [-] 0. secs (0.u,0.s) -Chars 6099 - 6127 [apply~trace_incl_sutt;~auto.] 0. secs (0.u,0.s) -Chars 6130 - 6131 [-] 0. secs (0.u,0.s) -Chars 6132 - 6160 [apply~trace_incl_sutt~in~H0.] 0. secs (0.u,0.s) -Chars 6161 - 6169 [clear~H.] 0. secs (0.u,0.s) -Chars 6174 - 6198 [generalize~dependent~t1.] 0. secs (0.u,0.s) -Chars 6199 - 6223 [generalize~dependent~t2.] 0. secs (0.u,0.s) -Chars 6228 - 6246 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6247 - 6263 [intros~t1~t2~H0.] 0. secs (0.u,0.s) -Chars 6264 - 6275 [step~in~H0.] 0. secs (0.u,0.s) -Chars 6280 - 6324 [induction~H0;~constructor;~eau...] 0.002 secs (0.002u,0.s) -Chars 6329 - 6353 [apply~(CIH~t0~(go~ot2)).] 0. secs (0.u,0.s) -Chars 6354 - 6367 [apply~EQTAUS.] 0. secs (0.u,0.s) -Chars 6368 - 6372 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6374 - 6469 [Theorem~trace_eq_iff_eutt~:~~~...] 0. secs (0.u,0.s) -Chars 6470 - 6476 [Proof.] 0. secs (0.u,0.s) -Chars 6479 - 6485 [split.] 0. secs (0.u,0.s) -Chars 6488 - 6489 [-] 0. secs (0.u,0.s) -Chars 6490 - 6510 [apply~eutt_trace_eq.] 0. secs (0.u,0.s) -Chars 6513 - 6514 [-] 0. secs (0.u,0.s) -Chars 6515 - 6535 [apply~trace_eq_eutt.] 0. secs (0.u,0.s) -Chars 6536 - 6540 [Qed.] 0. secs (0.u,0.s) -Chars 6542 - 6630 [Inductive~event~(E~:~Type~->~T...] 0. secs (0.u,0.s) -Chars 6725 - 7006 [Inductive~step_~{E~:~Type~->~T...] 0.001 secs (0.001u,0.s) -Chars 7008 - 7125 [Definition~step~{E~:~Type~->~T...] 0. secs (0.u,0.s) -Chars 7127 - 7369 [CoInductive~simulates~{E~:~Typ...] 0. secs (0.u,0.s) -Chars 7371 - 7500 [Theorem~simulates_trace_incl~{...] 0. secs (0.u,0.s) -Chars 7501 - 7507 [Proof.] 0. secs (0.u,0.s) -Chars 7508 - 7514 [Abort.] 0. secs (0.u,0.s) -Chars 7542 - 7621 [Definition~traces~(E~:~Type~->...] 0. secs (0.u,0.s) -Chars 7623 - 7982 [Definition~bind_traces~{E~:~Ty...] 0. secs (0.u,0.s) -Chars 7984 - 8102 [Definition~ret_traces~{E~:~Typ...] 0. secs (0.u,0.s) diff --git a/theories/Interp/TranslateFacts.v.timing b/theories/Interp/TranslateFacts.v.timing deleted file mode 100644 index f48257e6..00000000 --- a/theories/Interp/TranslateFacts.v.timing +++ /dev/null @@ -1,171 +0,0 @@ -Chars 61 - 149 [From~Stdlib~Require~Import~Pro...] 0.007 secs (0.005u,0.002s) -Chars 151 - 187 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 190 - 410 [From~ITree~Require~Import~Basi...] 0.033 secs (0.027u,0.005s) -Chars 412 - 434 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 451 - 474 [Section~TranslateFacts.] 0. secs (0.u,0.s) -Chars 477 - 506 [Context~{E~F~:~Type~->~Type}.] 0. secs (0.u,0.s) -Chars 509 - 528 [Context~{R~:~Type}.] 0. secs (0.u,0.s) -Chars 531 - 552 [Context~(h~:~E~~>~F).] 0. secs (0.u,0.s) -Chars 554 - 707 [Lemma~unfold_translate_~:~~~fo...] 0. secs (0.u,0.s) -Chars 708 - 714 [Proof.] 0. secs (0.u,0.s) -Chars 717 - 726 [intros~t.] 0. secs (0.u,0.s) -Chars 727 - 740 [econstructor.] 0. secs (0.u,0.s) -Chars 741 - 753 [reflexivity.] 0. secs (0.u,0.s) -Chars 754 - 758 [Qed.] 0. secs (0.u,0.s) -Chars 760 - 909 [Lemma~unfold_translate~:~~~for...] 0.013 secs (0.012u,0.s) -Chars 910 - 916 [Proof.] 0. secs (0.u,0.s) -Chars 919 - 926 [intros.] 0. secs (0.u,0.s) -Chars 927 - 953 [rewrite~unfold_translate_.] 0.001 secs (0.001u,0.s) -Chars 954 - 966 [reflexivity.] 0. secs (0.u,0.s) -Chars 967 - 971 [Qed.] 0. secs (0.u,0.s) -Chars 973 - 1039 [Lemma~translate_ret~:~forall~r...] 0. secs (0.u,0.s) -Chars 1040 - 1046 [Proof.] 0. secs (0.u,0.s) -Chars 1049 - 1058 [intros~r.] 0. secs (0.u,0.s) -Chars 1061 - 1086 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) -Chars 1087 - 1091 [cbn.] 0. secs (0.u,0.s) -Chars 1092 - 1104 [reflexivity.] 0. secs (0.u,0.s) -Chars 1105 - 1109 [Qed.] 0. secs (0.u,0.s) -Chars 1111 - 1201 [Lemma~translate_tau~:~~~forall...] 0. secs (0.u,0.s) -Chars 1202 - 1208 [Proof.] 0. secs (0.u,0.s) -Chars 1211 - 1220 [intros~t.] 0. secs (0.u,0.s) -Chars 1223 - 1248 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) -Chars 1249 - 1253 [cbn.] 0. secs (0.u,0.s) -Chars 1254 - 1266 [reflexivity.] 0. secs (0.u,0.s) -Chars 1267 - 1271 [Qed.] 0. secs (0.u,0.s) -Chars 1273 - 1405 [Lemma~translate_vis~:~~~forall...] 0. secs (0.u,0.s) -Chars 1406 - 1412 [Proof.] 0. secs (0.u,0.s) -Chars 1415 - 1428 [intros~X~e~k.] 0. secs (0.u,0.s) -Chars 1431 - 1456 [rewrite~unfold_translate.] 0.001 secs (0.001u,0.s) -Chars 1457 - 1461 [cbn.] 0. secs (0.u,0.s) -Chars 1462 - 1474 [reflexivity.] 0. secs (0.u,0.s) -Chars 1475 - 1479 [Qed.] 0. secs (0.u,0.s) -Chars 1481 - 1582 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) -Chars 1583 - 1589 [Proof.] 0. secs (0.u,0.s) -Chars 1592 - 1600 [intros~!.] 0. secs (0.u,0.s) -Chars 1601 - 1614 [revert~x~y~H.] 0. secs (0.u,0.s) -Chars 1615 - 1634 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 1635 - 1642 [intros.] 0. secs (0.u,0.s) -Chars 1646 - 1653 [to_mon.] 0. secs (0.u,0.s) -Chars 1657 - 1683 [rewrite~!unfold_translate.] 0.046 secs (0.046u,0.s) -Chars 1686 - 1696 [step~in~H.] 0. secs (0.u,0.s) -Chars 1699 - 1745 [induction~H;~simpobs;~simpl;~e...] 0.011 secs (0.009u,0.002s) -Chars 1748 - 1752 [Qed.] 0.006 secs (0.005u,0.001s) -Chars 1754 - 1887 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) -Chars 1888 - 1894 [Proof.] 0. secs (0.u,0.s) -Chars 1897 - 1908 [repeat~red.] 0. secs (0.u,0.s) -Chars 1909 - 1916 [intros.] 0. secs (0.u,0.s) -Chars 1919 - 1983 [rewrite~(itree_eta'~x),~(itree...] 0.007 secs (0.006u,0.001s) -Chars 1986 - 2004 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 2005 - 2009 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2011 - 2030 [End~TranslateFacts.] 0. secs (0.u,0.s) -Chars 2032 - 2203 [Lemma~translate_bind~:~~~foral...] 0. secs (0.u,0.s) -Chars 2204 - 2210 [Proof.] 0. secs (0.u,0.s) -Chars 2213 - 2234 [intros~E~F~R~S~h~t~k.] 0. secs (0.u,0.s) -Chars 2237 - 2250 [revert~S~t~k.] 0. secs (0.u,0.s) -Chars 2253 - 2272 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 2276 - 2289 [intros~s~t~k.] 0. secs (0.u,0.s) -Chars 2290 - 2297 [to_mon.] 0. secs (0.u,0.s) -Chars 2301 - 2393 [match~goal~with~|~|-~_~?t1~?t2...] 0.021 secs (0.021u,0.s) -Chars 2396 - 2416 [unfold~observe;~cbn.] 0. secs (0.u,0.s) -Chars 2419 - 2463 [destruct~(observe~t);~cbn;~eau...] 0.003 secs (0.003u,0.s) -Chars 2465 - 2469 [Qed.] 0.005 secs (0.005u,0.s) -Chars 2471 - 2546 [Lemma~translate_id~:~forall~E~...] 0. secs (0.u,0.s) -Chars 2547 - 2553 [Proof.] 0. secs (0.u,0.s) -Chars 2556 - 2569 [intros~E~R~t.] 0. secs (0.u,0.s) -Chars 2572 - 2581 [revert~t.] 0. secs (0.u,0.s) -Chars 2584 - 2602 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 2603 - 2610 [intros.] 0. secs (0.u,0.s) -Chars 2754 - 2776 [rewrite~(itree_eta~t).] 0.009 secs (0.009u,0.s) -Chars 2779 - 2804 [rewrite~unfold_translate.] 0.009 secs (0.009u,0.s) -Chars 2807 - 2825 [unfold~translateF.] 0. secs (0.u,0.s) -Chars 2828 - 2846 [rewrite~itree_eta.] 0.01 secs (0.01u,0.s) -Chars 2849 - 2899 [destruct~(observe~t);~cbn;~try...] 0.001 secs (0.001u,0.s) -Chars 2902 - 2906 [Qed.] 0.004 secs (0.004u,0.s) -Chars 2908 - 2928 [Import~CatNotations.] 0. secs (0.u,0.s) -Chars 2930 - 3073 [Lemma~translate_cmpE~:~~~foral...] 0. secs (0.u,0.s) -Chars 3074 - 3080 [Proof.] 0. secs (0.u,0.s) -Chars 3083 - 3104 [intros~E~F~G~R~g~f~t.] 0. secs (0.u,0.s) -Chars 3107 - 3116 [revert~t.] 0. secs (0.u,0.s) -Chars 3119 - 3137 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 3138 - 3145 [intros.] 0. secs (0.u,0.s) -Chars 3149 - 3175 [rewrite~!unfold_translate.] 0.064 secs (0.064u,0.s) -Chars 3178 - 3196 [genobs_clear~t~ot.] 0. secs (0.u,0.s) -Chars 3197 - 3238 [destruct~ot;~cbn;~try~construc...] 0.001 secs (0.001u,0.s) -Chars 3240 - 3244 [Qed.] 0.004 secs (0.004u,0.s) -Chars 3246 - 3419 [Definition~respectful_eq_itree...] 0. secs (0.u,0.s) -Chars 3421 - 3582 [Definition~respectful_eutt~{E~...] 0. secs (0.u,0.s) -Chars 3584 - 3614 [Require~ITree.Core.KTreeFacts.] 0.003 secs (0.002u,0.s) -Chars 3784 - 3967 [#[global]~Instance~eq_itree_ap...] 0. secs (0.u,0.s) -Chars 3968 - 3974 [Proof.] 0. secs (0.u,0.s) -Chars 3977 - 3988 [repeat~red.] 0. secs (0.u,0.s) -Chars 3989 - 3996 [intros.] 0. secs (0.u,0.s) -Chars 3997 - 4013 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 4014 - 4020 [eauto.] 0. secs (0.u,0.s) -Chars 4021 - 4025 [Qed.] 0. secs (0.u,0.s) -Chars 4027 - 4194 [#[global]~Instance~eutt_apply_...] 0. secs (0.u,0.s) -Chars 4195 - 4201 [Proof.] 0. secs (0.u,0.s) -Chars 4204 - 4215 [repeat~red.] 0. secs (0.u,0.s) -Chars 4216 - 4223 [intros.] 0. secs (0.u,0.s) -Chars 4224 - 4240 [repeat~red~in~H.] 0. secs (0.u,0.s) -Chars 4241 - 4247 [eauto.] 0. secs (0.u,0.s) -Chars 4248 - 4252 [Qed.] 0. secs (0.u,0.s) -Chars 4254 - 4409 [#[global]~Instance~eq_itree_tr...] 0. secs (0.u,0.s) -Chars 4410 - 4416 [Proof.] 0. secs (0.u,0.s) -Chars 4419 - 4436 [intros~f~g~Hfg~T.] 0. secs (0.u,0.s) -Chars 4439 - 4457 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4458 - 4465 [intros.] 0. secs (0.u,0.s) -Chars 4469 - 4496 [rewrite~2!unfold_translate.] 0.023 secs (0.023u,0.s) -Chars 4499 - 4509 [step~in~H.] 0. secs (0.u,0.s) -Chars 4513 - 4574 [destruct~H;~cbn;~try~easy;~try...] 0.051 secs (0.051u,0.s) -Chars 4576 - 4580 [Qed.] 0.006 secs (0.006u,0.s) -Chars 4582 - 4729 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) -Chars 4730 - 4736 [Proof.] 0. secs (0.u,0.s) -Chars 4739 - 4750 [repeat~red.] 0. secs (0.u,0.s) -Chars 4753 - 4768 [intros~until~T.] 0. secs (0.u,0.s) -Chars 4771 - 4789 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4790 - 4797 [intros.] 0. secs (0.u,0.s) -Chars 4800 - 4826 [rewrite~!unfold_translate.] 0.021 secs (0.021u,0.s) -Chars 4827 - 4838 [step~in~H0.] 0. secs (0.u,0.s) -Chars 4842 - 4887 [induction~H0;~subst;~simpl;~ea...] 0.006 secs (0.006u,0.s) -Chars 4891 - 4892 [-] 0. secs (0.u,0.s) -Chars 4893 - 4903 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 4904 - 4917 [econstructor.] 0. secs (0.u,0.s) -Chars 4918 - 4935 [eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 4936 - 4940 [Qed.] 0.005 secs (0.005u,0.s) -Chars 4942 - 5085 [#[global]~Instance~eutt_transl...] 0. secs (0.u,0.s) -Chars 5086 - 5092 [Proof.] 0. secs (0.u,0.s) -Chars 5095 - 5106 [repeat~red.] 0. secs (0.u,0.s) -Chars 5109 - 5130 [apply~eutt_translate.] 0. secs (0.u,0.s) -Chars 5133 - 5145 [reflexivity.] 0. secs (0.u,0.s) -Chars 5146 - 5150 [Qed.] 0. secs (0.u,0.s) -Chars 5152 - 5341 [Lemma~eutt_translate_gen~:~~~f...] 0. secs (0.u,0.s) -Chars 5342 - 5348 [Proof.] 0. secs (0.u,0.s) -Chars 5351 - 5360 [intros~*.] 0. secs (0.u,0.s) -Chars 5363 - 5374 [revert~t~s.] 0. secs (0.u,0.s) -Chars 5377 - 5395 [coinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 5396 - 5403 [intros.] 0. secs (0.u,0.s) -Chars 5407 - 5433 [rewrite~!unfold_translate.] 0.022 secs (0.021u,0.s) -Chars 5434 - 5444 [step~in~H.] 0.001 secs (0.001u,0.s) -Chars 5448 - 5500 [induction~H;~intros;~subst;~si...] 0.004 secs (0.004u,0.s) -Chars 5502 - 5506 [Qed.] 0.005 secs (0.005u,0.s) -Chars 5509 - 5647 [Lemma~translate_trigger~{E}~{F...] 0. secs (0.u,0.s) -Chars 5648 - 5654 [Proof.] 0. secs (0.u,0.s) -Chars 5657 - 5746 [intros;~unfold~trigger;~rewrit...] 0.003 secs (0.003u,0.s) -Chars 5747 - 5751 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5782 - 5983 [Lemma~translate_Vis_inv~{E}~{F...] 0. secs (0.u,0.s) -Chars 5984 - 5990 [Proof.] 0. secs (0.u,0.s) -Chars 5993 - 6000 [intros.] 0. secs (0.u,0.s) -Chars 6001 - 6028 [rewrite~(itree_eta~t)~in~H.] 0.01 secs (0.01u,0.s) -Chars 6029 - 6058 [setoid_rewrite~(itree_eta~t).] 0.003 secs (0.003u,0.s) -Chars 6061 - 6126 [desobs~t~Ht;~clear~t~Ht;~rewri...] 0.03 secs (0.03u,0.s) -Chars 6129 - 6130 [-] 0. secs (0.u,0.s) -Chars 6131 - 6147 [step~in~H;~easy.] 0.002 secs (0.002u,0.s) -Chars 6151 - 6152 [-] 0. secs (0.u,0.s) -Chars 6153 - 6166 [sinv~H;~easy.] 0.005 secs (0.005u,0.s) -Chars 6171 - 6172 [-] 0. secs (0.u,0.s) -Chars 6173 - 6211 [apply~eqitree_inv_Vis_r~in~H;~...] 0. secs (0.u,0.s) -Chars 6217 - 6226 [cbn~in~H.] 0. secs (0.u,0.s) -Chars 6227 - 6235 [inv_Vis.] 0.001 secs (0.001u,0.s) -Chars 6241 - 6253 [exists~e,k.] 0. secs (0.u,0.s) -Chars 6254 - 6271 [repeat~now~split.] 0.001 secs (0.001u,0.s) -Chars 6273 - 6277 [Qed.] 0.008 secs (0.008u,0.s) diff --git a/theories/Props/Cofinite.v.timing b/theories/Props/Cofinite.v.timing deleted file mode 100644 index bf388a02..00000000 --- a/theories/Props/Cofinite.v.timing +++ /dev/null @@ -1,20 +0,0 @@ -Chars 56 - 131 [From~ITree~Require~Import~Axio...] 0.158 secs (0.14u,0.018s) -Chars 133 - 169 [From~Coinduction~Require~Impor...] 0. secs (0.u,0.s) -Chars 171 - 273 [Theorem~not_all_infinite_any_f...] 0. secs (0.u,0.s) -Chars 274 - 280 [Proof.] 0. secs (0.u,0.s) -Chars 283 - 296 [intros~H1~H2.] 0. secs (0.u,0.s) -Chars 297 - 449 [induction~H2;~apply~(gfp_fp~al...] 0.004 secs (0.003u,0.s) -Chars 452 - 500 [all:~rewrite~H~in~H0;~inversio...] 0.001 secs (0.001u,0.s) -Chars 503 - 516 [ddestruction.] 0.025 secs (0.024u,0.001s) -Chars 517 - 545 [exact~(IHany_finite~(H3~_)).] 0. secs (0.u,0.s) -Chars 546 - 550 [Qed.] 0.003 secs (0.003u,0.s) -Chars 552 - 654 [Theorem~not_any_infinite_all_f...] 0. secs (0.u,0.s) -Chars 655 - 661 [Proof.] 0. secs (0.u,0.s) -Chars 664 - 830 [intros~H1~H2;~induction~H2;~ap...] 0.003 secs (0.003u,0.s) -Chars 833 - 834 [-] 0. secs (0.u,0.s) -Chars 835 - 878 [rewrite~H~in~H0;~inversion~H0;...] 0. secs (0.u,0.s) -Chars 881 - 882 [-] 0. secs (0.u,0.s) -Chars 883 - 899 [rewrite~H~in~H3.] 0. secs (0.u,0.s) -Chars 900 - 934 [inversion~H3;~subst;~ddestruct...] 0.002 secs (0.002u,0.s) -Chars 939 - 955 [exact~(H2~_~H4).] 0. secs (0.u,0.s) -Chars 956 - 960 [Qed.] 0.003 secs (0.003u,0.s) diff --git a/theories/Props/EuttNoRet.v.timing b/theories/Props/EuttNoRet.v.timing deleted file mode 100644 index 6ef825e0..00000000 --- a/theories/Props/EuttNoRet.v.timing +++ /dev/null @@ -1,269 +0,0 @@ -Chars 0 - 36 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 38 - 81 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 83 - 185 [From~ITree~Require~Import~Axio...] 0.157 secs (0.141u,0.016s) -Chars 188 - 202 [Import~Monads.] 0. secs (0.u,0.s) -Chars 203 - 224 [Import~MonadNotation.] 0. secs (0.u,0.s) -Chars 225 - 257 [#[local]~Open~Scope~monad_scope.] 0. secs (0.u,0.s) -Chars 259 - 282 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 560 - 668 [Definition~euttNoRet~{E}~{A~B~...] 0. secs (0.u,0.s) -Chars 671 - 773 [Lemma~euttNoRet_spin~:~~~foral...] 0. secs (0.u,0.s) -Chars 774 - 780 [Proof.] 0. secs (0.u,0.s) -Chars 783 - 790 [intros.] 0. secs (0.u,0.s) -Chars 791 - 808 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 809 - 828 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 829 - 833 [cbn.] 0. secs (0.u,0.s) -Chars 834 - 846 [constructor.] 0. secs (0.u,0.s) -Chars 847 - 857 [exact~CIH.] 0. secs (0.u,0.s) -Chars 858 - 862 [Qed.] 0.003 secs (0.002u,0.s) -Chars 864 - 1008 [Lemma~noret_bind_nop~:~~~foral...] 0. secs (0.u,0.s) -Chars 1009 - 1015 [Proof.] 0. secs (0.u,0.s) -Chars 1018 - 1031 [intros~E~A~B.] 0. secs (0.u,0.s) -Chars 1032 - 1049 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 1050 - 1069 [icoinduction~c~CIH.] 0.002 secs (0.001u,0.s) -Chars 1070 - 1086 [intros~t~f~Hdiv.] 0. secs (0.u,0.s) -Chars 1089 - 1129 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 1132 - 1167 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 1168 - 1197 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) -Chars 1200 - 1222 [inversion~Hdiv;~subst.] 0.023 secs (0.022u,0.001s) -Chars 1225 - 1226 [-] 0. secs (0.u,0.s) -Chars 1227 - 1252 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 1257 - 1278 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 1279 - 1292 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 1293 - 1297 [cbn.] 0. secs (0.u,0.s) -Chars 1298 - 1310 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 1315 - 1364 [change~(ITree.subst~f~t0)~with...] 0. secs (0.u,0.s) -Chars 1369 - 1379 [apply~CIH.] 0. secs (0.u,0.s) -Chars 1380 - 1385 [auto.] 0. secs (0.u,0.s) -Chars 1388 - 1389 [-] 0. secs (0.u,0.s) -Chars 1390 - 1415 [unfold~bind,~Monad_itree.] 0. secs (0.u,0.s) -Chars 1420 - 1441 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 1442 - 1455 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 1456 - 1460 [cbn.] 0. secs (0.u,0.s) -Chars 1461 - 1473 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 1478 - 1487 [intros~v.] 0. secs (0.u,0.s) -Chars 1488 - 1543 [change~(ITree.subst~f~(k~v))~w...] 0. secs (0.u,0.s) -Chars 1548 - 1558 [apply~CIH.] 0. secs (0.u,0.s) -Chars 1559 - 1568 [apply~H0.] 0. secs (0.u,0.s) -Chars 1569 - 1573 [Qed.] 0.005 secs (0.005u,0.s) -Chars 1578 - 1767 [Lemma~euttNoRet_subrel~:~~~for...] 0. secs (0.u,0.s) -Chars 1768 - 1774 [Proof.] 0. secs (0.u,0.s) -Chars 1777 - 1784 [intros.] 0. secs (0.u,0.s) -Chars 1787 - 1905 [eapply~eqit_mono~with~(b1~:=~t...] 0.001 secs (0.001u,0.s) -Chars 1906 - 1910 [Qed.] 0.001 secs (0.001u,0.s) -Chars 1912 - 2122 [Lemma~all_infinite_euttNoRet~:...] 0. secs (0.u,0.s) -Chars 2123 - 2129 [Proof.] 0. secs (0.u,0.s) -Chars 2132 - 2147 [intros~E~A~B~R.] 0. secs (0.u,0.s) -Chars 2148 - 2165 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 2166 - 2185 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 2186 - 2210 [intros~ta~tb~Hdiv~Heutt.] 0. secs (0.u,0.s) -Chars 2213 - 2227 [step~in~Heutt.] 0. secs (0.u,0.s) -Chars 2228 - 2256 [cbn[eqit_mon~body]~in~Heutt.] 0. secs (0.u,0.s) -Chars 2257 - 2279 [unfold~eqit_~in~Heutt.] 0. secs (0.u,0.s) -Chars 2282 - 2301 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) -Chars 2302 - 2315 [unfold~eqit_.] 0. secs (0.u,0.s) -Chars 2318 - 2358 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 2361 - 2396 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 2397 - 2426 [unfold~all_infinite_~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2429 - 2455 [dependent~induction~Heutt.] 0.045 secs (0.045u,0.s) -Chars 2458 - 2459 [-] 0. secs (0.u,0.s) -Chars 2460 - 2468 [exfalso.] 0. secs (0.u,0.s) -Chars 2469 - 2491 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2492 - 2507 [inversion~Hdiv.] 0. secs (0.u,0.s) -Chars 2510 - 2511 [-] 0. secs (0.u,0.s) -Chars 2512 - 2526 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 2527 - 2540 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 2541 - 2553 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 2554 - 2564 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2569 - 2570 [+] 0. secs (0.u,0.s) -Chars 2571 - 2593 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2594 - 2616 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) -Chars 2617 - 2622 [auto.] 0. secs (0.u,0.s) -Chars 2627 - 2628 [+] 0. secs (0.u,0.s) -Chars 2629 - 2634 [auto.] 0. secs (0.u,0.s) -Chars 2637 - 2638 [-] 0. secs (0.u,0.s) -Chars 2639 - 2653 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 2654 - 2667 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 2668 - 2680 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 2681 - 2690 [intros~v.] 0. secs (0.u,0.s) -Chars 2691 - 2701 [apply~CIH.] 0. secs (0.u,0.s) -Chars 2706 - 2707 [+] 0. secs (0.u,0.s) -Chars 2708 - 2730 [rewrite~<-~x0~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2731 - 2753 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) -Chars 2754 - 2767 [ddestruction.] 0.003 secs (0.002u,0.s) -Chars 2768 - 2777 [apply~H0.] 0. secs (0.u,0.s) -Chars 2782 - 2783 [+] 0. secs (0.u,0.s) -Chars 2784 - 2794 [apply~REL.] 0. secs (0.u,0.s) -Chars 2797 - 2798 [-] 0. secs (0.u,0.s) -Chars 2799 - 2812 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 2813 - 2832 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 2833 - 2853 [apply~IHHeutt;~auto.] 0. secs (0.u,0.s) -Chars 2858 - 2879 [rewrite~<-~x~in~Hdiv.] 0. secs (0.u,0.s) -Chars 2880 - 2902 [inversion~Hdiv;~subst.] 0. secs (0.u,0.s) -Chars 2907 - 2945 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 2950 - 2983 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 2984 - 3011 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) -Chars 3012 - 3021 [exact~H0.] 0. secs (0.u,0.s) -Chars 3024 - 3025 [-] 0. secs (0.u,0.s) -Chars 3026 - 3039 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 3040 - 3059 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 3060 - 3064 [Qed.] 0.023 secs (0.022u,0.s) -Chars 3071 - 3215 [Lemma~euttNoRet_all_infinite~:...] 0. secs (0.u,0.s) -Chars 3216 - 3222 [Proof.] 0. secs (0.u,0.s) -Chars 3225 - 3238 [intros~E~A~B.] 0. secs (0.u,0.s) -Chars 3239 - 3259 [unfold~all_infinite.] 0. secs (0.u,0.s) -Chars 3260 - 3278 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3279 - 3294 [intros~t1~t2~H.] 0. secs (0.u,0.s) -Chars 3297 - 3324 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 3325 - 3346 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 3349 - 3371 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) -Chars 3372 - 3382 [step~in~H.] 0. secs (0.u,0.s) -Chars 3383 - 3407 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) -Chars 3408 - 3426 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) -Chars 3429 - 3470 [dependent~induction~H;~try~con...] 0.013 secs (0.012u,0.s) -Chars 3473 - 3474 [-] 0. secs (0.u,0.s) -Chars 3475 - 3489 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 3490 - 3502 [constructor.] 0. secs (0.u,0.s) -Chars 3503 - 3529 [apply~CIH~with~(t2~:=~m2).] 0. secs (0.u,0.s) -Chars 3530 - 3547 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 3548 - 3553 [auto.] 0. secs (0.u,0.s) -Chars 3556 - 3557 [-] 0. secs (0.u,0.s) -Chars 3558 - 3572 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 3573 - 3585 [constructor.] 0. secs (0.u,0.s) -Chars 3586 - 3595 [intros~v.] 0. secs (0.u,0.s) -Chars 3596 - 3624 [apply~CIH~with~(t2~:=~k2~v).] 0. secs (0.u,0.s) -Chars 3629 - 3646 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 3647 - 3657 [apply~REL.] 0. secs (0.u,0.s) -Chars 3660 - 3661 [-] 0. secs (0.u,0.s) -Chars 3662 - 3675 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 3676 - 3688 [constructor.] 0. secs (0.u,0.s) -Chars 3689 - 3715 [apply~CIH~with~(t2~:=~t2).] 0. secs (0.u,0.s) -Chars 3716 - 3733 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 3738 - 3743 [step.] 0.001 secs (0.001u,0.s) -Chars 3744 - 3763 [cbn[eqit_mon~body].] 0. secs (0.u,0.s) -Chars 3764 - 3777 [unfold~eqit_.] 0. secs (0.u,0.s) -Chars 3778 - 3783 [auto.] 0. secs (0.u,0.s) -Chars 3786 - 3787 [-] 0. secs (0.u,0.s) -Chars 3788 - 3810 [eapply~IHeqitF;~eauto.] 0. secs (0.u,0.s) -Chars 3811 - 3815 [Qed.] 0.008 secs (0.008u,0.s) -Chars 3818 - 3953 [Lemma~euttNoRet_sym~:~~~forall...] 0. secs (0.u,0.s) -Chars 3954 - 3960 [Proof.] 0. secs (0.u,0.s) -Chars 3963 - 3976 [intros~E~A~B.] 0. secs (0.u,0.s) -Chars 3977 - 3994 [unfold~euttNoRet.] 0. secs (0.u,0.s) -Chars 3995 - 4014 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 4015 - 4030 [intros~t1~t2~H.] 0. secs (0.u,0.s) -Chars 4033 - 4055 [unfold~euttNoRet~in~H.] 0. secs (0.u,0.s) -Chars 4056 - 4066 [step~in~H.] 0. secs (0.u,0.s) -Chars 4067 - 4091 [cbn[eqit_mon~body]~in~H.] 0. secs (0.u,0.s) -Chars 4092 - 4110 [unfold~eqit_~in~H.] 0. secs (0.u,0.s) -Chars 4113 - 4154 [dependent~induction~H;~try~con...] 0.02 secs (0.019u,0.s) -Chars 4157 - 4158 [-] 0. secs (0.u,0.s) -Chars 4159 - 4173 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 4174 - 4187 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4188 - 4200 [apply~EqTau.] 0. secs (0.u,0.s) -Chars 4201 - 4211 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4212 - 4217 [auto.] 0. secs (0.u,0.s) -Chars 4220 - 4221 [-] 0. secs (0.u,0.s) -Chars 4222 - 4236 [rewrite~<-~x0.] 0. secs (0.u,0.s) -Chars 4237 - 4250 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4251 - 4263 [apply~EqVis.] 0. secs (0.u,0.s) -Chars 4264 - 4273 [intros~v.] 0. secs (0.u,0.s) -Chars 4274 - 4284 [apply~CIH.] 0. secs (0.u,0.s) -Chars 4285 - 4295 [apply~REL.] 0. secs (0.u,0.s) -Chars 4298 - 4299 [-] 0. secs (0.u,0.s) -Chars 4300 - 4313 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4314 - 4333 [apply~EqTauR;~auto.] 0. secs (0.u,0.s) -Chars 4336 - 4337 [-] 0. secs (0.u,0.s) -Chars 4338 - 4351 [rewrite~<-~x.] 0. secs (0.u,0.s) -Chars 4352 - 4371 [apply~EqTauL;~auto.] 0. secs (0.u,0.s) -Chars 4372 - 4376 [Qed.] 0.022 secs (0.022u,0.s) -Chars 4378 - 4560 [Lemma~all_infinite_bind~:~~~fo...] 0. secs (0.u,0.s) -Chars 4561 - 4567 [Proof.] 0. secs (0.u,0.s) -Chars 4570 - 4577 [intros.] 0. secs (0.u,0.s) -Chars 4578 - 4627 [apply~noret_bind_nop~with~(B~:...] 0. secs (0.u,0.s) -Chars 4630 - 4655 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 4656 - 4690 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 4691 - 4696 [auto.] 0. secs (0.u,0.s) -Chars 4697 - 4701 [Qed.] 0. secs (0.u,0.s) -Chars 4708 - 4914 [Lemma~euttNoRet_trans~:~~~fora...] 0. secs (0.u,0.s) -Chars 4915 - 4921 [Proof.] 0. secs (0.u,0.s) -Chars 4924 - 4931 [intros.] 0. secs (0.u,0.s) -Chars 4932 - 4954 [unfold~euttNoRet~in~*.] 0. secs (0.u,0.s) -Chars 4957 - 5084 [eapply~eqit_mono~with~(b1~:=~t...] 0.002 secs (0.002u,0.s) -Chars 5087 - 5088 [-] 0. secs (0.u,0.s) -Chars 5089 - 5103 [intros~x~y~Hc.] 0. secs (0.u,0.s) -Chars 5104 - 5132 [inversion~Hc;~contradiction.] 0. secs (0.u,0.s) -Chars 5135 - 5136 [-] 0. secs (0.u,0.s) -Chars 5137 - 5162 [eapply~eqit_trans;~eauto.] 0. secs (0.u,0.s) -Chars 5163 - 5167 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5170 - 5289 [#[global]~Instance~proper_eutt...] 0. secs (0.u,0.s) -Chars 5290 - 5296 [Proof.] 0. secs (0.u,0.s) -Chars 5299 - 5328 [intros~t1~t2~Ht12~t3~t4~Ht34.] 0. secs (0.u,0.s) -Chars 5329 - 5343 [split;~intros.] 0. secs (0.u,0.s) -Chars 5346 - 5347 [-] 0. secs (0.u,0.s) -Chars 5348 - 5389 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5390 - 5415 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 5421 - 5462 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5467 - 5505 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 5510 - 5511 [+] 0. secs (0.u,0.s) -Chars 5512 - 5550 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 5557 - 5558 [*] 0. secs (0.u,0.s) -Chars 5559 - 5579 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 5580 - 5617 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) -Chars 5624 - 5625 [*] 0. secs (0.u,0.s) -Chars 5626 - 5646 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 5647 - 5652 [auto.] 0. secs (0.u,0.s) -Chars 5657 - 5658 [+] 0. secs (0.u,0.s) -Chars 5659 - 5696 [eapply~all_infinite_euttNoRet;...] 0. secs (0.u,0.s) -Chars 5699 - 5700 [-] 0. secs (0.u,0.s) -Chars 5701 - 5742 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5748 - 5773 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 5774 - 5815 [apply~euttNoRet_all_infinite~i...] 0. secs (0.u,0.s) -Chars 5820 - 5845 [assert~(euttNoRet~t1~t2).] 0. secs (0.u,0.s) -Chars 5850 - 5851 [{] 0. secs (0.u,0.s) -Chars 5859 - 5879 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 5880 - 5904 [apply~eutt_flip~in~Ht12.] 0. secs (0.u,0.s) -Chars 5912 - 5949 [eapply~all_infinite_euttNoRet;...] 0.002 secs (0.002u,0.s) -Chars 5954 - 5955 [}] 0. secs (0.u,0.s) -Chars 5960 - 5985 [assert~(euttNoRet~t3~t4).] 0. secs (0.u,0.s) -Chars 5990 - 5991 [{] 0. secs (0.u,0.s) -Chars 5998 - 6018 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 6019 - 6043 [apply~eutt_flip~in~Ht34.] 0. secs (0.u,0.s) -Chars 6050 - 6087 [eapply~all_infinite_euttNoRet;...] 0.001 secs (0.001u,0.s) -Chars 6092 - 6093 [}] 0. secs (0.u,0.s) -Chars 6098 - 6123 [apply~euttNoRet_sym~in~H.] 0. secs (0.u,0.s) -Chars 6128 - 6166 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 6171 - 6172 [+] 0. secs (0.u,0.s) -Chars 6173 - 6217 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 6222 - 6223 [+] 0. secs (0.u,0.s) -Chars 6224 - 6244 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 6245 - 6250 [auto.] 0. secs (0.u,0.s) -Chars 6251 - 6255 [Qed.] 0. secs (0.u,0.s) -Chars 6257 - 6346 [Definition~noret_cast~{E}~{A}~...] 0. secs (0.u,0.s) -Chars 6348 - 6466 [Lemma~noret_cast_nop~:~~~foral...] 0. secs (0.u,0.s) -Chars 6467 - 6473 [Proof.] 0. secs (0.u,0.s) -Chars 6476 - 6483 [intros.] 0. secs (0.u,0.s) -Chars 6484 - 6507 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 6508 - 6529 [apply~noret_bind_nop.] 0. secs (0.u,0.s) -Chars 6530 - 6535 [auto.] 0. secs (0.u,0.s) -Chars 6536 - 6540 [Qed.] 0.001 secs (0.001u,0.s) -Chars 6542 - 6649 [#[global]~Instance~proper_nore...] 0. secs (0.u,0.s) -Chars 6650 - 6656 [Proof.] 0. secs (0.u,0.s) -Chars 6659 - 6678 [intros~t1~t2~Heutt.] 0. secs (0.u,0.s) -Chars 6679 - 6697 [unfold~noret_cast.] 0. secs (0.u,0.s) -Chars 6698 - 6702 [cbn.] 0. secs (0.u,0.s) -Chars 6703 - 6717 [rewrite~Heutt.] 0.002 secs (0.002u,0.s) -Chars 6718 - 6730 [reflexivity.] 0. secs (0.u,0.s) -Chars 6731 - 6735 [Qed.] 0.002 secs (0.002u,0.s) -Chars 6737 - 6940 [Ltac~~infer_noret~H~:=~~~match...] 0. secs (0.u,0.s) -Chars 6942 - 7121 [Lemma~noret_cast_cast~E~(A~B~:...] 0. secs (0.u,0.s) -Chars 7122 - 7128 [Proof.] 0. secs (0.u,0.s) -Chars 7131 - 7138 [intros.] 0. secs (0.u,0.s) -Chars 7139 - 7162 [apply~euttNoRet_subrel.] 0. secs (0.u,0.s) -Chars 7165 - 7206 [apply~all_infinite_euttNoRet~i...] 0. secs (0.u,0.s) -Chars 7209 - 7224 [infer_noret~H0.] 0. secs (0.u,0.s) -Chars 7227 - 7297 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 7300 - 7344 [apply~euttNoRet_trans~with~(t2...] 0. secs (0.u,0.s) -Chars 7347 - 7367 [apply~euttNoRet_sym.] 0. secs (0.u,0.s) -Chars 7368 - 7389 [apply~noret_bind_nop.] 0. secs (0.u,0.s) -Chars 7390 - 7395 [auto.] 0. secs (0.u,0.s) -Chars 7396 - 7400 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Finite.v.timing b/theories/Props/Finite.v.timing deleted file mode 100644 index e0000ee5..00000000 --- a/theories/Props/Finite.v.timing +++ /dev/null @@ -1,363 +0,0 @@ -Chars 51 - 156 [From~ITree~Require~Import~ITre...] 0.064 secs (0.054u,0.009s) -Chars 157 - 215 [From~ITree.Events~Require~Impo...] 0.022 secs (0.019u,0.002s) -Chars 243 - 304 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 305 - 318 [Import~ITree.] 0. secs (0.u,0.s) -Chars 319 - 341 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 342 - 363 [Import~LeafNotations.] 0. secs (0.u,0.s) -Chars 1116 - 1458 [Inductive~all_finite~{E}~{A~:~...] 0.001 secs (0.001u,0.s) -Chars 1459 - 1506 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) -Chars 1573 - 1905 [Inductive~any_finite~{E}~{A~:~...] 0.001 secs (0.001u,0.s) -Chars 1906 - 1953 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) -Chars 1999 - 2062 [Lemma~all_finite_Ret~:~forall~...] 0. secs (0.u,0.s) -Chars 2063 - 2069 [Proof.] 0. secs (0.u,0.s) -Chars 2072 - 2108 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) -Chars 2109 - 2113 [Qed.] 0. secs (0.u,0.s) -Chars 2114 - 2160 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) -Chars 2162 - 2243 [Lemma~all_finite_Tau~:~forall~...] 0. secs (0.u,0.s) -Chars 2244 - 2250 [Proof.] 0. secs (0.u,0.s) -Chars 2253 - 2299 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) -Chars 2300 - 2304 [Qed.] 0. secs (0.u,0.s) -Chars 2305 - 2351 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) -Chars 2353 - 2464 [Lemma~all_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) -Chars 2465 - 2471 [Proof.] 0. secs (0.u,0.s) -Chars 2474 - 2520 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) -Chars 2521 - 2525 [Qed.] 0. secs (0.u,0.s) -Chars 2526 - 2572 [#[global]~Hint~Resolve~all_fin...] 0. secs (0.u,0.s) -Chars 2574 - 2653 [Lemma~all_finite_trigger~:~for...] 0. secs (0.u,0.s) -Chars 2654 - 2660 [Proof.] 0. secs (0.u,0.s) -Chars 2663 - 2670 [intros.] 0. secs (0.u,0.s) -Chars 2671 - 2692 [apply~all_finite_Vis.] 0. secs (0.u,0.s) -Chars 2693 - 2709 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 2710 - 2714 [Qed.] 0. secs (0.u,0.s) -Chars 2715 - 2800 [#[global]~Hint~Extern~1~(all_f...] 0. secs (0.u,0.s) -Chars 2819 - 2882 [Lemma~any_finite_Ret~:~forall~...] 0. secs (0.u,0.s) -Chars 2883 - 2889 [Proof.] 0. secs (0.u,0.s) -Chars 2892 - 2928 [intros;~econstructor~1;~reflex...] 0. secs (0.u,0.s) -Chars 2929 - 2933 [Qed.] 0. secs (0.u,0.s) -Chars 2934 - 2980 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) -Chars 2982 - 3063 [Lemma~any_finite_Tau~:~forall~...] 0. secs (0.u,0.s) -Chars 3064 - 3070 [Proof.] 0. secs (0.u,0.s) -Chars 3073 - 3119 [intros;~econstructor~2;~[~refl...] 0. secs (0.u,0.s) -Chars 3120 - 3124 [Qed.] 0. secs (0.u,0.s) -Chars 3125 - 3171 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) -Chars 3173 - 3274 [Lemma~any_finite_Vis~:~~~foral...] 0. secs (0.u,0.s) -Chars 3275 - 3281 [Proof.] 0. secs (0.u,0.s) -Chars 3284 - 3330 [intros;~econstructor~3;~[~refl...] 0. secs (0.u,0.s) -Chars 3331 - 3335 [Qed.] 0. secs (0.u,0.s) -Chars 3336 - 3382 [#[global]~Hint~Resolve~any_fin...] 0. secs (0.u,0.s) -Chars 3384 - 3470 [Lemma~any_finite_trigger~:~~~f...] 0. secs (0.u,0.s) -Chars 3471 - 3477 [Proof.] 0. secs (0.u,0.s) -Chars 3480 - 3487 [intros.] 0. secs (0.u,0.s) -Chars 3488 - 3523 [apply~any_finite_Vis~with~(x~:...] 0. secs (0.u,0.s) -Chars 3524 - 3540 [auto~with~itree.] 0. secs (0.u,0.s) -Chars 3541 - 3545 [Qed.] 0. secs (0.u,0.s) -Chars 3546 - 3631 [#[global]~Hint~Extern~1~(any_f...] 0. secs (0.u,0.s) -Chars 3675 - 3760 [Lemma~all_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) -Chars 3761 - 3767 [Proof.] 0. secs (0.u,0.s) -Chars 3770 - 3814 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) -Chars 3815 - 3819 [Qed.] 0. secs (0.u,0.s) -Chars 3821 - 3934 [Lemma~all_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) -Chars 3935 - 3941 [Proof.] 0. secs (0.u,0.s) -Chars 3944 - 3994 [intros~*~FIN~x;~inv~FIN;~cbn~i...] 0.033 secs (0.033u,0.s) -Chars 3997 - 4007 [revert~H0.] 0. secs (0.u,0.s) -Chars 4010 - 4111 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 4114 - 4119 [auto.] 0. secs (0.u,0.s) -Chars 4120 - 4124 [Qed.] 0. secs (0.u,0.s) -Chars 4143 - 4228 [Lemma~any_finite_Tau_inv~:~~~f...] 0. secs (0.u,0.s) -Chars 4229 - 4235 [Proof.] 0. secs (0.u,0.s) -Chars 4238 - 4282 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) -Chars 4283 - 4287 [Qed.] 0. secs (0.u,0.s) -Chars 4289 - 4402 [Lemma~any_finite_Vis_inv~:~~~f...] 0. secs (0.u,0.s) -Chars 4403 - 4409 [Proof.] 0. secs (0.u,0.s) -Chars 4412 - 4460 [intros~*~FIN;~inv~FIN;~cbn~in~...] 0.002 secs (0.002u,0.s) -Chars 4463 - 4475 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 4478 - 4579 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 4582 - 4588 [eauto.] 0. secs (0.u,0.s) -Chars 4589 - 4593 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4723 - 4849 [Lemma~all_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) -Chars 4850 - 4856 [Proof.] 0. secs (0.u,0.s) -Chars 4859 - 4890 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) -Chars 4893 - 4921 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) -Chars 4924 - 4925 [-] 0. secs (0.u,0.s) -Chars 4926 - 4937 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 4943 - 4968 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) -Chars 4973 - 5005 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) -Chars 5010 - 5069 [hinduction~EQ~before~R;~intros...] 0.037 secs (0.036u,0.s) -Chars 5072 - 5073 [-] 0. secs (0.u,0.s) -Chars 5074 - 5111 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 5116 - 5128 [apply~IHFIN.] 0. secs (0.u,0.s) -Chars 5129 - 5151 [rewrite~<-~tau_euttge.] 0.031 secs (0.027u,0.004s) -Chars 5152 - 5161 [now~step.] 0.001 secs (0.001u,0.s) -Chars 5165 - 5166 [-] 0. secs (0.u,0.s) -Chars 5167 - 5204 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 5209 - 5244 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) -Chars 5249 - 5290 [hinduction~EQ~before~R;~intros...] 0.007 secs (0.007u,0.s) -Chars 5295 - 5296 [+] 0. secs (0.u,0.s) -Chars 5297 - 5310 [revert~H0~H1.] 0. secs (0.u,0.s) -Chars 5317 - 5421 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) -Chars 5428 - 5445 [eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 5450 - 5451 [+] 0. secs (0.u,0.s) -Chars 5452 - 5479 [inv~Heqi;~eauto~with~itree.] 0.005 secs (0.005u,0.s) -Chars 5480 - 5484 [Qed.] 0.005 secs (0.005u,0.s) -Chars 5486 - 5612 [Lemma~all_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) -Chars 5613 - 5619 [Proof.] 0. secs (0.u,0.s) -Chars 5622 - 5634 [intros~*~EQ.] 0. secs (0.u,0.s) -Chars 5635 - 5657 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) -Chars 5658 - 5668 [revert~EQ.] 0. secs (0.u,0.s) -Chars 5669 - 5693 [apply~all_finite_eutt_l.] 0. secs (0.u,0.s) -Chars 5694 - 5698 [Qed.] 0. secs (0.u,0.s) -Chars 5700 - 5788 [#[global]~Instance~all_finite_...] 0. secs (0.u,0.s) -Chars 5789 - 5795 [Proof.] 0. secs (0.u,0.s) -Chars 5798 - 5818 [repeat~intro;~split.] 0. secs (0.u,0.s) -Chars 5821 - 5822 [-] 0. secs (0.u,0.s) -Chars 5823 - 5855 [eapply~all_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) -Chars 5858 - 5859 [-] 0. secs (0.u,0.s) -Chars 5860 - 5892 [eapply~all_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) -Chars 5893 - 5897 [Qed.] 0. secs (0.u,0.s) -Chars 5916 - 6042 [Lemma~any_finite_eutt_l~{E}~{A...] 0. secs (0.u,0.s) -Chars 6043 - 6049 [Proof.] 0. secs (0.u,0.s) -Chars 6052 - 6083 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) -Chars 6086 - 6114 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) -Chars 6117 - 6118 [-] 0. secs (0.u,0.s) -Chars 6119 - 6130 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 6131 - 6156 [rewrite~H~in~EQ;~clear~H.] 0. secs (0.u,0.s) -Chars 6161 - 6193 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) -Chars 6198 - 6257 [hinduction~EQ~before~R;~intros...] 0.006 secs (0.006u,0.s) -Chars 6260 - 6261 [-] 0. secs (0.u,0.s) -Chars 6262 - 6299 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 6306 - 6318 [apply~IHFIN.] 0. secs (0.u,0.s) -Chars 6319 - 6341 [rewrite~<-~tau_euttge.] 0.025 secs (0.025u,0.s) -Chars 6342 - 6351 [now~step.] 0.001 secs (0.001u,0.s) -Chars 6355 - 6356 [-] 0. secs (0.u,0.s) -Chars 6357 - 6394 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 6399 - 6434 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) -Chars 6439 - 6480 [hinduction~EQ~before~R;~intros...] 0.006 secs (0.006u,0.s) -Chars 6485 - 6486 [+] 0. secs (0.u,0.s) -Chars 6487 - 6506 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 6513 - 6617 [refine~~~match~~~~~Heqi~in~(_~...] 0.002 secs (0.002u,0.s) -Chars 6624 - 6641 [eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 6646 - 6647 [+] 0. secs (0.u,0.s) -Chars 6648 - 6675 [inv~Heqi;~eauto~with~itree.] 0.004 secs (0.004u,0.s) -Chars 6676 - 6680 [Qed.] 0.004 secs (0.004u,0.s) -Chars 6682 - 6808 [Lemma~any_finite_eutt_r~{E}~{A...] 0. secs (0.u,0.s) -Chars 6809 - 6815 [Proof.] 0. secs (0.u,0.s) -Chars 6818 - 6830 [intros~*~EQ.] 0. secs (0.u,0.s) -Chars 6831 - 6853 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) -Chars 6854 - 6864 [revert~EQ.] 0. secs (0.u,0.s) -Chars 6865 - 6889 [apply~any_finite_eutt_l.] 0. secs (0.u,0.s) -Chars 6890 - 6894 [Qed.] 0. secs (0.u,0.s) -Chars 6896 - 6984 [#[global]~Instance~any_finite_...] 0. secs (0.u,0.s) -Chars 6985 - 6991 [Proof.] 0. secs (0.u,0.s) -Chars 6994 - 7000 [split.] 0. secs (0.u,0.s) -Chars 7003 - 7035 [eapply~any_finite_eutt_l;~eauto.] 0. secs (0.u,0.s) -Chars 7038 - 7070 [eapply~any_finite_eutt_r;~eauto.] 0. secs (0.u,0.s) -Chars 7071 - 7075 [Qed.] 0. secs (0.u,0.s) -Chars 7285 - 7450 [Lemma~all_finite_bind~:~~~fora...] 0. secs (0.u,0.s) -Chars 7451 - 7457 [Proof.] 0. secs (0.u,0.s) -Chars 7460 - 7547 [intros~*~FIN;~induction~FIN;~i...] 0.004 secs (0.004u,0.s) -Chars 7548 - 7552 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7554 - 7713 [Lemma~all_finite_bind_weak~:~~...] 0. secs (0.u,0.s) -Chars 7714 - 7720 [Proof.] 0. secs (0.u,0.s) -Chars 7723 - 7759 [intros;~apply~all_finite_bind;...] 0. secs (0.u,0.s) -Chars 7760 - 7764 [Qed.] 0. secs (0.u,0.s) -Chars 7821 - 7988 [Lemma~all_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) -Chars 7989 - 7995 [Proof.] 0. secs (0.u,0.s) -Chars 7998 - 8011 [intros~E~R~S.] 0. secs (0.u,0.s) -Chars 8014 - 8174 [cut~~(forall~u~:~itree~E~S,~~~...] 0. secs (0.u,0.s) -Chars 8177 - 8226 [intros~LEM~*~FIN;~eapply~LEM;~...] 0. secs (0.u,0.s) -Chars 8229 - 8254 [induction~1;~intros~*~EQ.] 0. secs (0.u,0.s) -Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8301 [rewrite~(itree_eta~t),~H~in~EQ...] 0.011 secs (0.011u,0.s) -Chars 8306 - 8371 [symmetry~in~EQ;~apply~eqit_inv...] 0. secs (0.u,0.s) -Chars 8376 - 8412 [rewrite~EQt;~split;~auto~with~...] 0.001 secs (0.001u,0.s) -Chars 8417 - 8429 [intros~z~IN.] 0. secs (0.u,0.s) -Chars 8434 - 8485 [rewrite~EQt~in~IN;~apply~Leaf_...] 0.001 secs (0.001u,0.s) -Chars 8490 - 8519 [rewrite~EQk;~auto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 8522 - 8523 [-] 0. secs (0.u,0.s) -Chars 8524 - 8566 [rewrite~(itree_eta~t),~H~in~EQ...] 0.012 secs (0.012u,0.s) -Chars 8571 - 8594 [rewrite~tau_eutt~in~EQ.] 0.01 secs (0.01u,0.s) -Chars 8599 - 8605 [eauto.] 0. secs (0.u,0.s) -Chars 8608 - 8609 [-] 0. secs (0.u,0.s) -Chars 8610 - 8652 [rewrite~(itree_eta~t),~H~in~EQ...] 0.011 secs (0.011u,0.s) -Chars 8657 - 8703 [symmetry~in~EQ;~apply~eutt_inv...] 0. secs (0.u,0.s) -Chars 8708 - 8760 [destruct~EQ~as~[(kca,~(EQ,~EQk...] 0. secs (0.u,0.s) -Chars 8765 - 8766 [+] 0. secs (0.u,0.s) -Chars 8767 - 8778 [rewrite~EQ.] 0.001 secs (0.001u,0.s) -Chars 8785 - 8791 [split.] 0. secs (0.u,0.s) -Chars 8798 - 8819 [apply~all_finite_Vis.] 0. secs (0.u,0.s) -Chars 8826 - 8863 [intros~?;~eapply~H1;~symmetry;...] 0.001 secs (0.001u,0.s) -Chars 8870 - 8882 [intros~x~IN.] 0. secs (0.u,0.s) -Chars 8889 - 8906 [rewrite~EQ~in~IN.] 0.001 secs (0.001u,0.s) -Chars 8913 - 8950 [apply~Leaf_Vis_inv~in~IN~as~(y...] 0. secs (0.u,0.s) -Chars 8957 - 8981 [edestruct~H1~as~(_,~H).] 0. secs (0.u,0.s) -Chars 8988 - 9019 [symmetry~in~EQk;~exact~(EQk~y).] 0. secs (0.u,0.s) -Chars 9026 - 9038 [apply~H,~IN.] 0. secs (0.u,0.s) -Chars 9043 - 9044 [+] 0. secs (0.u,0.s) -Chars 9045 - 9080 [rewrite~EQ;~split;~auto~with~i...] 0.001 secs (0.001u,0.s) -Chars 9087 - 9099 [intros~y~IN.] 0. secs (0.u,0.s) -Chars 9106 - 9156 [rewrite~EQ~in~IN;~apply~Leaf_R...] 0.001 secs (0.001u,0.s) -Chars 9163 - 9175 [rewrite~EQk.] 0. secs (0.u,0.s) -Chars 9176 - 9193 [eauto~with~itree.] 0. secs (0.u,0.s) -Chars 9194 - 9198 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9200 - 9329 [Lemma~all_finite_bind_inv_left...] 0. secs (0.u,0.s) -Chars 9330 - 9336 [Proof.] 0. secs (0.u,0.s) -Chars 9339 - 9381 [intros;~eapply~all_finite_bind...] 0. secs (0.u,0.s) -Chars 9382 - 9386 [Qed.] 0. secs (0.u,0.s) -Chars 9588 - 9727 [Lemma~any_finite_bind~:~~~fora...] 0. secs (0.u,0.s) -Chars 9728 - 9734 [Proof.] 0. secs (0.u,0.s) -Chars 9737 - 9767 [intros~*~IN~FIN;~induction~IN.] 0. secs (0.u,0.s) -Chars 9770 - 9771 [-] 0. secs (0.u,0.s) -Chars 9772 - 9815 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) -Chars 9818 - 9819 [-] 0. secs (0.u,0.s) -Chars 9820 - 9860 [rewrite~unfold_bind,~H,~tau_eu...] 0.002 secs (0.002u,0.s) -Chars 9863 - 9864 [-] 0. secs (0.u,0.s) -Chars 9865 - 9888 [rewrite~unfold_bind,~H.] 0.001 secs (0.001u,0.s) -Chars 9893 - 9922 [eapply~any_finite_Vis;~eauto.] 0. secs (0.u,0.s) -Chars 9923 - 9927 [Qed.] 0.001 secs (0.001u,0.s) -Chars 10064 - 10234 [Lemma~any_finite_bind_inv~:~~~...] 0. secs (0.u,0.s) -Chars 10235 - 10241 [Proof.] 0. secs (0.u,0.s) -Chars 10244 - 10291 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) -Chars 10294 - 10310 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 10313 - 10362 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) -Chars 10365 - 10366 [-] 0. secs (0.u,0.s) -Chars 10367 - 10397 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 10402 - 10441 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 10446 - 10470 [split;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10473 - 10474 [-] 0. secs (0.u,0.s) -Chars 10475 - 10505 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 10510 - 10549 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 10554 - 10578 [split;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10583 - 10620 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) -Chars 10625 - 10660 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) -Chars 10665 - 10674 [apply~H1.] 0. secs (0.u,0.s) -Chars 10679 - 10703 [split;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10706 - 10707 [-] 0. secs (0.u,0.s) -Chars 10708 - 10738 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 10743 - 10782 [desobs~t~teq;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 10787 - 10811 [split;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 10816 - 10835 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 10840 - 10941 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 10946 - 10953 [intros.] 0. secs (0.u,0.s) -Chars 10958 - 11012 [edestruct~IHFIN~as~(?,~(?,~(?,...] 0. secs (0.u,0.s) -Chars 11017 - 11041 [split;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 11042 - 11046 [Qed.] 0.004 secs (0.004u,0.s) -Chars 11048 - 11212 [Lemma~any_finite_bind_inv_weak...] 0. secs (0.u,0.s) -Chars 11213 - 11219 [Proof.] 0. secs (0.u,0.s) -Chars 11222 - 11282 [intros~*~FIN;~apply~any_finite...] 0. secs (0.u,0.s) -Chars 11285 - 11298 [split;~eauto.] 0. secs (0.u,0.s) -Chars 11299 - 11303 [Qed.] 0. secs (0.u,0.s) -Chars 11305 - 11434 [Lemma~any_finite_bind_inv_left...] 0. secs (0.u,0.s) -Chars 11435 - 11441 [Proof.] 0. secs (0.u,0.s) -Chars 11444 - 11486 [intros;~eapply~any_finite_bind...] 0. secs (0.u,0.s) -Chars 11487 - 11491 [Qed.] 0. secs (0.u,0.s) -Chars 11535 - 11613 [Lemma~Leaf_finite~:~forall~E~R...] 0. secs (0.u,0.s) -Chars 11614 - 11620 [Proof.] 0. secs (0.u,0.s) -Chars 11623 - 11691 [intros~*~FIN;~induction~FIN;~r...] 0.002 secs (0.002u,0.s) -Chars 11692 - 11696 [Qed.] 0. secs (0.u,0.s) -Chars 11698 - 11784 [Lemma~finite_Leaf~:~~~forall~E...] 0. secs (0.u,0.s) -Chars 11785 - 11791 [Proof.] 0. secs (0.u,0.s) -Chars 11794 - 11822 [intros~*~FIN;~induction~FIN.] 0. secs (0.u,0.s) -Chars 11825 - 11877 [1:~exists~a;~rewrite~itree_eta...] 0.001 secs (0.001u,0.s) -Chars 11880 - 11918 [all:~destruct~IHFIN;~eauto~wit...] 0. secs (0.u,0.s) -Chars 11919 - 11923 [Qed.] 0. secs (0.u,0.s) -Chars 12232 - 12324 [Lemma~finite_non_interactive~:...] 0. secs (0.u,0.s) -Chars 12325 - 12331 [Proof.] 0. secs (0.u,0.s) -Chars 12334 - 12406 [split;~induction~1;~cbn~in~*;~...] 0.001 secs (0.001u,0.s) -Chars 12407 - 12411 [Qed.] 0. secs (0.u,0.s) -Chars 12413 - 12517 [Lemma~finite_leaf_non_interact...] 0. secs (0.u,0.s) -Chars 12518 - 12524 [Proof.] 0. secs (0.u,0.s) -Chars 12527 - 12536 [intros~*.] 0. secs (0.u,0.s) -Chars 12539 - 12570 [rewrite~finite_non_interactive.] 0. secs (0.u,0.s) -Chars 12573 - 12645 [split;~[~eauto~using~finite_Le...] 0. secs (0.u,0.s) -Chars 12646 - 12650 [Qed.] 0. secs (0.u,0.s) -Chars 12652 - 12754 [Lemma~Leaf_non_interactive_sin...] 0. secs (0.u,0.s) -Chars 12755 - 12761 [Proof.] 0. secs (0.u,0.s) -Chars 12764 - 12814 [intros~*~IN;~revert~b;~inducti...] 0. secs (0.u,0.s) -Chars 12817 - 12818 [-] 0. secs (0.u,0.s) -Chars 12819 - 12880 [rewrite~itree_eta,~H~in~IN';~a...] 0.001 secs (0.001u,0.s) -Chars 12883 - 12884 [-] 0. secs (0.u,0.s) -Chars 12885 - 12930 [rewrite~itree_eta,~H,~tau_eutt...] 0.002 secs (0.002u,0.s) -Chars 12933 - 12934 [-] 0. secs (0.u,0.s) -Chars 12935 - 12941 [inv~e.] 0. secs (0.u,0.s) -Chars 12942 - 12946 [Qed.] 0. secs (0.u,0.s) -Chars 12996 - 13114 [Lemma~all_finite_translate~{E}...] 0. secs (0.u,0.s) -Chars 13115 - 13121 [Proof.] 0. secs (0.u,0.s) -Chars 13124 - 13180 [intros~*;~induction~1;~rewrite...] 0.005 secs (0.005u,0.s) -Chars 13183 - 13184 [-] 0. secs (0.u,0.s) -Chars 13185 - 13206 [apply~all_finite_Ret.] 0. secs (0.u,0.s) -Chars 13209 - 13210 [-] 0. secs (0.u,0.s) -Chars 13211 - 13232 [apply~all_finite_Tau.] 0. secs (0.u,0.s) -Chars 13233 - 13238 [auto.] 0. secs (0.u,0.s) -Chars 13241 - 13242 [-] 0. secs (0.u,0.s) -Chars 13243 - 13264 [apply~all_finite_Vis.] 0. secs (0.u,0.s) -Chars 13265 - 13270 [auto.] 0. secs (0.u,0.s) -Chars 13271 - 13275 [Qed.] 0. secs (0.u,0.s) -Chars 13277 - 13395 [Lemma~any_finite_translate~{E}...] 0. secs (0.u,0.s) -Chars 13396 - 13402 [Proof.] 0. secs (0.u,0.s) -Chars 13405 - 13414 [intros~*.] 0. secs (0.u,0.s) -Chars 13415 - 13461 [induction~1;~rewrite~unfold_tr...] 0.002 secs (0.002u,0.s) -Chars 13464 - 13465 [-] 0. secs (0.u,0.s) -Chars 13466 - 13487 [apply~any_finite_Ret.] 0. secs (0.u,0.s) -Chars 13490 - 13491 [-] 0. secs (0.u,0.s) -Chars 13492 - 13513 [apply~any_finite_Tau.] 0. secs (0.u,0.s) -Chars 13514 - 13519 [auto.] 0. secs (0.u,0.s) -Chars 13522 - 13523 [-] 0. secs (0.u,0.s) -Chars 13524 - 13546 [eapply~any_finite_Vis.] 0. secs (0.u,0.s) -Chars 13547 - 13553 [eauto.] 0. secs (0.u,0.s) -Chars 13554 - 13558 [Qed.] 0. secs (0.u,0.s) -Chars 13614 - 13680 [Lemma~spin_not_all_finite~:~fo...] 0. secs (0.u,0.s) -Chars 13681 - 13687 [Proof.] 0. secs (0.u,0.s) -Chars 13690 - 13808 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) -Chars 13809 - 13813 [Qed.] 0. secs (0.u,0.s) -Chars 13815 - 13881 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) -Chars 13882 - 13888 [Proof.] 0. secs (0.u,0.s) -Chars 13891 - 14009 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) -Chars 14010 - 14014 [Qed.] 0. secs (0.u,0.s) -Chars 14016 - 14075 [Lemma~spin_empty_Leaf~:~forall...] 0. secs (0.u,0.s) -Chars 14076 - 14082 [Proof.] 0. secs (0.u,0.s) -Chars 14085 - 14149 [intros~*~IN;~apply~Leaf_finite...] 0. secs (0.u,0.s) -Chars 14150 - 14154 [Qed.] 0. secs (0.u,0.s) -Chars 14156 - 14179 [Module~Counterexamples.] 0. secs (0.u,0.s) -Chars 14628 - 14681 [Notation~fail~:=~(@throw~unit~...] 0. secs (0.u,0.s) -Chars 14685 - 14723 [Fact~fail_all_finite~:~all_fin...] 0. secs (0.u,0.s) -Chars 14726 - 14732 [Proof.] 0. secs (0.u,0.s) -Chars 14737 - 14749 [unfold~fail.] 0. secs (0.u,0.s) -Chars 14754 - 14786 [apply~all_finite_Vis;~intros~[].] 0. secs (0.u,0.s) -Chars 14789 - 14793 [Qed.] 0. secs (0.u,0.s) -Chars 14797 - 14841 [Fact~fail_not_any_finite~:~~~a...] 0. secs (0.u,0.s) -Chars 14844 - 14850 [Proof.] 0. secs (0.u,0.s) -Chars 14855 - 14879 [unfold~fail;~intros~FIN.] 0. secs (0.u,0.s) -Chars 14884 - 14932 [apply~any_finite_Vis_inv~in~FI...] 0. secs (0.u,0.s) -Chars 14935 - 14939 [Qed.] 0. secs (0.u,0.s) -Chars 15376 - 15436 [Definition~t~:~itree~nondetE~b...] 0. secs (0.u,0.s) -Chars 15440 - 15525 [Definition~k~:~bool~->~itree~n...] 0. secs (0.u,0.s) -Chars 15529 - 15597 [Lemma~spin_not_any_finite~:~fo...] 0. secs (0.u,0.s) -Chars 15600 - 15606 [Proof.] 0. secs (0.u,0.s) -Chars 15611 - 15731 [intros~*~FIN;~remember~spin~as...] 0.001 secs (0.001u,0.s) -Chars 15734 - 15738 [Qed.] 0. secs (0.u,0.s) -Chars 15742 - 15766 [Fact~DFt~:~any_finite~t.] 0. secs (0.u,0.s) -Chars 15769 - 15775 [Proof.] 0. secs (0.u,0.s) -Chars 15780 - 15828 [apply~any_finite_Vis~with~true...] 0. secs (0.u,0.s) -Chars 15831 - 15835 [Qed.] 0. secs (0.u,0.s) -Chars 15839 - 15871 [Fact~DFk~:~any_finite~(k~false).] 0. secs (0.u,0.s) -Chars 15874 - 15880 [Proof.] 0. secs (0.u,0.s) -Chars 15885 - 15906 [cbn;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 15909 - 15913 [Qed.] 0. secs (0.u,0.s) -Chars 15917 - 15954 [Fact~NotDFtk~:~~~any_finite~(t...] 0. secs (0.u,0.s) -Chars 15957 - 15963 [Proof.] 0. secs (0.u,0.s) -Chars 15966 - 15977 [intros~abs.] 0. secs (0.u,0.s) -Chars 15980 - 16039 [apply~any_finite_bind_inv~in~a...] 0. secs (0.u,0.s) -Chars 16042 - 16063 [destruct~b;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 16066 - 16067 [-] 0. secs (0.u,0.s) -Chars 16068 - 16102 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) -Chars 16105 - 16106 [-] 0. secs (0.u,0.s) -Chars 16107 - 16122 [unfold~t~in~IN.] 0. secs (0.u,0.s) -Chars 16127 - 16143 [clear~FINk~FINt.] 0. secs (0.u,0.s) -Chars 16148 - 16181 [inv~IN;~cbn~in~*;~try~congruence.] 0.002 secs (0.002u,0.s) -Chars 16186 - 16208 [dependent~induction~H.] 0.003 secs (0.003u,0.s) -Chars 16213 - 16234 [destruct~x;~cbn~in~*.] 0. secs (0.u,0.s) -Chars 16239 - 16276 [apply~Leaf_Ret_inv~in~H0;~cong...] 0. secs (0.u,0.s) -Chars 16281 - 16305 [apply~Leaf_finite~in~H0.] 0. secs (0.u,0.s) -Chars 16310 - 16344 [eapply~spin_not_any_finite;~ea...] 0. secs (0.u,0.s) -Chars 16347 - 16351 [Qed.] 0.001 secs (0.001u,0.s) -Chars 16353 - 16373 [End~Counterexamples.] 0. secs (0.u,0.s) diff --git a/theories/Props/HasPost.v.timing b/theories/Props/HasPost.v.timing deleted file mode 100644 index 65563c12..00000000 --- a/theories/Props/HasPost.v.timing +++ /dev/null @@ -1,163 +0,0 @@ -Chars 17 - 54 [From~Stdlib~Require~Import~Mor...] 0.003 secs (0.001u,0.001s) -Chars 55 - 185 [From~ITree~Require~Import~Basi...] 0.058 secs (0.049u,0.009s) -Chars 186 - 209 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 210 - 230 [Set~Strict~Implicit.] 0. secs (0.u,0.s) -Chars 231 - 251 [Import~RelNotations.] 0. secs (0.u,0.s) -Chars 252 - 288 [#[local]~Open~Scope~relationH_...] 0. secs (0.u,0.s) -Chars 1381 - 1478 [Definition~has_post~{E}~{X}~(t...] 0. secs (0.u,0.s) -Chars 1534 - 1647 [Definition~has_post_strong~{E}...] 0. secs (0.u,0.s) -Chars 1649 - 1751 [Lemma~has_post_post_strong~:~~...] 0. secs (0.u,0.s) -Chars 1752 - 1758 [Proof.] 0. secs (0.u,0.s) -Chars 1761 - 1802 [intros;~split;~intros~HP;~red~...] 0. secs (0.u,0.s) -Chars 1805 - 1830 [assert~(t~≈~t)~by~auto.] 0. secs (0.u,0.s) -Chars 1834 - 1835 [-] 0. secs (0.u,0.s) -Chars 1836 - 1875 [eapply~eutt_conj;~[~reflexivit...] 0. secs (0.u,0.s) -Chars 1878 - 1879 [-] 0. secs (0.u,0.s) -Chars 1880 - 1936 [eapply~(eqit_mono~(fun~x~y~:~X...] 0.001 secs (0.001u,0.s) -Chars 1941 - 1953 [now~intros~!.] 0. secs (0.u,0.s) -Chars 1955 - 1959 [Qed.] 0. secs (0.u,0.s) -Chars 1961 - 1985 [Module~HasPostNotations.] 0. secs (0.u,0.s) -Chars 1988 - 2039 [Notation~"t~⤳~Q"~:=~(has_post~...] 0. secs (0.u,0.s) -Chars 2040 - 2061 [End~HasPostNotations.] 0. secs (0.u,0.s) -Chars 2062 - 2086 [Import~HasPostNotations.] 0. secs (0.u,0.s) -Chars 2112 - 2219 [#[global]~Instance~has_post_eq...] 0. secs (0.u,0.s) -Chars 2220 - 2226 [Proof.] 0. secs (0.u,0.s) -Chars 2229 - 2297 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) -Chars 2300 - 2301 [-] 0. secs (0.u,0.s) -Chars 2302 - 2344 [rewrite~<-~EUTT;~eapply~eutt_e...] 0.001 secs (0.001u,0.s) -Chars 2349 - 2385 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) -Chars 2388 - 2389 [-] 0. secs (0.u,0.s) -Chars 2390 - 2429 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) -Chars 2434 - 2470 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) -Chars 2471 - 2475 [Qed.] 0. secs (0.u,0.s) -Chars 2477 - 2576 [#[global]~Instance~has_post_eu...] 0. secs (0.u,0.s) -Chars 2577 - 2583 [Proof.] 0. secs (0.u,0.s) -Chars 2586 - 2654 [repeat~red;~unfold~has_post;~i...] 0. secs (0.u,0.s) -Chars 2657 - 2658 [-] 0. secs (0.u,0.s) -Chars 2659 - 2701 [rewrite~<-~EUTT;~eapply~eutt_e...] 0. secs (0.u,0.s) -Chars 2706 - 2742 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) -Chars 2745 - 2746 [-] 0. secs (0.u,0.s) -Chars 2747 - 2786 [rewrite~EUTT;~eapply~eutt_equi...] 0. secs (0.u,0.s) -Chars 2791 - 2827 [split;~intros~?~?~H;~apply~EQ;...] 0. secs (0.u,0.s) -Chars 2828 - 2832 [Qed.] 0. secs (0.u,0.s) -Chars 3013 - 3119 [Lemma~has_post_conj~:~~~forall...] 0. secs (0.u,0.s) -Chars 3120 - 3126 [Proof.] 0. secs (0.u,0.s) -Chars 3129 - 3144 [intros~*~HP~HQ.] 0. secs (0.u,0.s) -Chars 3147 - 3178 [pose~proof~(eutt_conj~_~_~HP~HQ).] 0. secs (0.u,0.s) -Chars 3181 - 3186 [auto.] 0. secs (0.u,0.s) -Chars 3187 - 3191 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3229 - 3322 [Lemma~has_post_disj_l~:~~~fora...] 0. secs (0.u,0.s) -Chars 3323 - 3329 [Proof.] 0. secs (0.u,0.s) -Chars 3332 - 3383 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) -Chars 3386 - 3403 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) -Chars 3404 - 3416 [4:~exact~HP.] 0. secs (0.u,0.s) -Chars 3417 - 3427 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3430 - 3449 [intros;~left;~auto.] 0. secs (0.u,0.s) -Chars 3450 - 3454 [Qed.] 0.001 secs (0.001u,0.s) -Chars 3493 - 3586 [Lemma~has_post_disj_r~:~~~fora...] 0. secs (0.u,0.s) -Chars 3587 - 3593 [Proof.] 0. secs (0.u,0.s) -Chars 3596 - 3647 [unfold~has_post,~disj_rel,~Dis...] 0. secs (0.u,0.s) -Chars 3650 - 3667 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) -Chars 3668 - 3680 [4:~exact~HQ.] 0. secs (0.u,0.s) -Chars 3681 - 3691 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3694 - 3714 [intros;~right;~auto.] 0. secs (0.u,0.s) -Chars 3715 - 3719 [Qed.] 0.029 secs (0.028u,0.s) -Chars 3737 - 3837 [Lemma~has_post_weaken~:~~~fora...] 0. secs (0.u,0.s) -Chars 3838 - 3844 [Proof.] 0. secs (0.u,0.s) -Chars 3847 - 3910 [unfold~has_post,~subrelationH,...] 0. secs (0.u,0.s) -Chars 3913 - 3930 [eapply~eqit_mono.] 0.001 secs (0.001u,0.s) -Chars 3931 - 3943 [4:~exact~HP.] 0. secs (0.u,0.s) -Chars 3944 - 3954 [1,~2:~auto.] 0. secs (0.u,0.s) -Chars 3957 - 3961 [cbn.] 0. secs (0.u,0.s) -Chars 3962 - 3996 [intros~?~?~H;~apply~INCL;~exac...] 0. secs (0.u,0.s) -Chars 3997 - 4001 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4031 - 4107 [Lemma~has_post_True~:~forall~{...] 0. secs (0.u,0.s) -Chars 4108 - 4114 [Proof.] 0. secs (0.u,0.s) -Chars 4117 - 4126 [intros~*.] 0. secs (0.u,0.s) -Chars 4127 - 4131 [red.] 0. secs (0.u,0.s) -Chars 4134 - 4174 [eapply~(eqit_mono~eq~_~true~tr...] 0.001 secs (0.001u,0.s) -Chars 4176 - 4180 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4307 - 4443 [Lemma~has_post_bind_weak~:~~~f...] 0. secs (0.u,0.s) -Chars 4444 - 4450 [Proof.] 0. secs (0.u,0.s) -Chars 4453 - 4467 [intros~*~POST.] 0. secs (0.u,0.s) -Chars 4470 - 4511 [apply~eutt_eq_bind;~intros~?;~...] 0. secs (0.u,0.s) -Chars 4512 - 4516 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4577 - 4732 [Lemma~has_post_bind~:~~~forall...] 0. secs (0.u,0.s) -Chars 4733 - 4739 [Proof.] 0. secs (0.u,0.s) -Chars 4742 - 4763 [intros~*~POST1~POST2.] 0. secs (0.u,0.s) -Chars 4766 - 4870 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 4873 - 4912 [intros~?~?~[<-~?];~eapply~POST...] 0. secs (0.u,0.s) -Chars 4913 - 4917 [Qed.] 0.002 secs (0.002u,0.s) -Chars 4951 - 5177 [Lemma~has_post_iter_strong~:~~...] 0. secs (0.u,0.s) -Chars 5178 - 5184 [Proof.] 0. secs (0.u,0.s) -Chars 5187 - 5205 [intros~*~IND~INIT.] 0. secs (0.u,0.s) -Chars 5208 - 5284 [eapply~(@KTreeFacts.eutt_iter_...] 0. secs (0.u,0.s) -Chars 5287 - 5305 [intros~i~?~[<-~?].] 0. secs (0.u,0.s) -Chars 5308 - 5368 [specialize~(IND~i);~apply~has_...] 0.002 secs (0.002u,0.s) -Chars 5371 - 5401 [unfold~has_post_strong~in~IND.] 0. secs (0.u,0.s) -Chars 5404 - 5442 [eapply~eqit_mono;~try~apply~IN...] 0.004 secs (0.004u,0.s) -Chars 5445 - 5471 [intros~[]~?~[<-~?];~eauto.] 0.001 secs (0.001u,0.s) -Chars 5472 - 5476 [Qed.] 0.003 secs (0.002u,0.s) -Chars 5521 - 5634 [Lemma~has_post_translate~:~~~f...] 0. secs (0.u,0.s) -Chars 5635 - 5641 [Proof.] 0. secs (0.u,0.s) -Chars 5644 - 5675 [unfold~has_post;~intros~*~POST.] 0. secs (0.u,0.s) -Chars 5678 - 5709 [apply~eutt_translate_gen;~auto.] 0. secs (0.u,0.s) -Chars 5710 - 5714 [Qed.] 0.002 secs (0.001u,0.s) -Chars 5920 - 6248 [Lemma~eutt_post_bind~:~~~foral...] 0. secs (0.u,0.s) -Chars 6249 - 6255 [Proof.] 0. secs (0.u,0.s) -Chars 6258 - 6286 [intros~*~POST1~POST2~EQ~KEQ.] 0. secs (0.u,0.s) -Chars 6289 - 6357 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 6360 - 6403 [2:~intros~?~?~(?,~(?,~?));~app...] 0. secs (0.u,0.s) -Chars 6406 - 6416 [clear~KEQ.] 0. secs (0.u,0.s) -Chars 6419 - 6455 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) -Chars 6458 - 6494 [apply~has_post_post_strong~in~...] 0.001 secs (0.001u,0.s) -Chars 6497 - 6535 [pose~proof~(eqit_trans~POST1~E...] 0. secs (0.u,0.s) -Chars 6538 - 6577 [pose~proof~(eqit_trans~EQ1~POS...] 0. secs (0.u,0.s) -Chars 6580 - 6591 [clear~-~EQ2.] 0. secs (0.u,0.s) -Chars 6594 - 6619 [eapply~eutt_equiv;~eauto.] 0. secs (0.u,0.s) -Chars 6622 - 6628 [split.] 0. secs (0.u,0.s) -Chars 6631 - 6632 [-] 0. secs (0.u,0.s) -Chars 6633 - 6682 [intros~?~?~(?,~(?,~?));~do~2~e...] 0. secs (0.u,0.s) -Chars 6685 - 6686 [-] 0. secs (0.u,0.s) -Chars 6687 - 6700 [intros~?~?~?.] 0. secs (0.u,0.s) -Chars 6701 - 6707 [inv~H.] 0.001 secs (0.001u,0.s) -Chars 6708 - 6717 [inv~REL1.] 0.002 secs (0.001u,0.s) -Chars 6722 - 6769 [destruct~REL2~as~[->~?],~REL0~...] 0. secs (0.u,0.s) -Chars 6770 - 6774 [Qed.] 0.003 secs (0.003u,0.s) -Chars 6833 - 7052 [Lemma~eutt_post_bind_eq~:~~~fo...] 0. secs (0.u,0.s) -Chars 7053 - 7059 [Proof.] 0. secs (0.u,0.s) -Chars 7062 - 7078 [intros~*~POST~?.] 0. secs (0.u,0.s) -Chars 7081 - 7183 [apply~eutt_bind_eutt~with~(UU~...] 0. secs (0.u,0.s) -Chars 7186 - 7210 [intros~?~?~[->~?];~auto.] 0. secs (0.u,0.s) -Chars 7211 - 7215 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7435 - 7539 [Lemma~eutt_eq_itree~{E}~{X}~(R...] 0. secs (0.u,0.s) -Chars 7540 - 7546 [Proof.] 0. secs (0.u,0.s) -Chars 7549 - 7632 [enough~~(forall~t~u~:~itree~E~...] 0. secs (0.u,0.s) -Chars 7635 - 7636 [{] 0. secs (0.u,0.s) -Chars 7637 - 7689 [intros;~apply~H;~[~auto~|~appl...] 0. secs (0.u,0.s) -Chars 7690 - 7691 [}] 0. secs (0.u,0.s) -Chars 7694 - 7706 [coinduction.] 0.001 secs (0.001u,0.s) -Chars 7710 - 7726 [intros~t~u~H~EQ.] 0. secs (0.u,0.s) -Chars 7730 - 7772 [rewrite~(itree_eta~t),~(itree_...] 0.027 secs (0.027u,0.s) -Chars 7775 - 7786 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 7787 - 7791 [cbn.] 0. secs (0.u,0.s) -Chars 7792 - 7835 [destruct~EQ;~try~discriminate;...] 0.001 secs (0.001u,0.s) -Chars 7838 - 7839 [-] 0. secs (0.u,0.s) -Chars 7840 - 7865 [rewrite~<-~eutt_Ret~in~H.] 0. secs (0.u,0.s) -Chars 7866 - 7871 [auto.] 0. secs (0.u,0.s) -Chars 7874 - 7875 [-] 0. secs (0.u,0.s) -Chars 7876 - 7903 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) -Chars 7908 - 7933 [revert~H;~apply~eqit_Tau.] 0. secs (0.u,0.s) -Chars 7936 - 7937 [-] 0. secs (0.u,0.s) -Chars 7938 - 7944 [intro.] 0. secs (0.u,0.s) -Chars 7945 - 7972 [apply~CIH;~[~~|~apply~REL~].] 0. secs (0.u,0.s) -Chars 7977 - 8011 [eapply~eqit_inv_Vis~with~(1~:=...] 0. secs (0.u,0.s) -Chars 8012 - 8016 [Qed.] 0.005 secs (0.005u,0.s) -Chars 8018 - 8170 [Lemma~has_post_strong_to_eq_it...] 0. secs (0.u,0.s) -Chars 8171 - 8177 [Proof.] 0. secs (0.u,0.s) -Chars 8180 - 8210 [intros~*;~apply~eutt_eq_itree.] 0. secs (0.u,0.s) -Chars 8211 - 8215 [Qed.] 0.001 secs (0.001u,0.s) -Chars 8217 - 8355 [Lemma~has_post_to_eq_itree~:~~...] 0. secs (0.u,0.s) -Chars 8356 - 8362 [Proof.] 0. secs (0.u,0.s) -Chars 8365 - 8436 [intros~*~H;~apply~has_post_str...] 0. secs (0.u,0.s) -Chars 8437 - 8441 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Infinite.v.timing b/theories/Props/Infinite.v.timing deleted file mode 100644 index 5d04a5f0..00000000 --- a/theories/Props/Infinite.v.timing +++ /dev/null @@ -1,326 +0,0 @@ -Chars 171 - 207 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 210 - 285 [From~Stdlib~Require~Import~Set...] 0.002 secs (0.u,0.001s) -Chars 287 - 392 [From~ITree~Require~Import~Axio...] 0.135 secs (0.122u,0.013s) -Chars 409 - 431 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 432 - 458 [#[local]~Open~Scope~itree.] 0. secs (0.u,0.s) -Chars 460 - 483 [Set~Implicit~Arguments.] 0. secs (0.u,0.s) -Chars 507 - 755 [Inductive~any_infiniteF~{E}~{X...] 0.001 secs (0.001u,0.s) -Chars 756 - 806 [#[global]~Hint~Constructors~an...] 0. secs (0.u,0.s) -Chars 808 - 894 [Definition~any_infinite_~{E}~{...] 0. secs (0.u,0.s) -Chars 895 - 939 [#[global]~Hint~Unfold~any_infi...] 0. secs (0.u,0.s) -Chars 941 - 1017 [Lemma~any_infinite__mono~{E}~{...] 0. secs (0.u,0.s) -Chars 1018 - 1024 [Proof.] 0. secs (0.u,0.s) -Chars 1028 - 1047 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 1048 - 1096 [induction~H0;~econstructor;~ea...] 0. secs (0.u,0.s) -Chars 1098 - 1102 [Qed.] 0. secs (0.u,0.s) -Chars 1105 - 1235 [Definition~any_infinite_mon~{E...] 0. secs (0.u,0.s) -Chars 1237 - 1313 [Definition~any_infinite~{E}~{X...] 0. secs (0.u,0.s) -Chars 1315 - 1413 [#[global]~Instance~any_infinit...] 0. secs (0.u,0.s) -Chars 1414 - 1420 [Proof.] 0. secs (0.u,0.s) -Chars 1423 - 1439 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 1440 - 1459 [split;~intros~Hinf.] 0. secs (0.u,0.s) -Chars 1462 - 1463 [-] 0. secs (0.u,0.s) -Chars 1464 - 1485 [revert~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 1486 - 1511 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) -Chars 1512 - 1530 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 1535 - 1556 [intros~t2~t1~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 1557 - 1568 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 1569 - 1594 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 1595 - 1614 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 1619 - 1646 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 1647 - 1668 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 1673 - 1713 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 1718 - 1753 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 1754 - 1783 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 1788 - 1801 [induction~Ht.] 0. secs (0.u,0.s) -Chars 1806 - 1807 [+] 0. secs (0.u,0.s) -Chars 1808 - 1823 [inversion~Hinf.] 0. secs (0.u,0.s) -Chars 1828 - 1829 [+] 0. secs (0.u,0.s) -Chars 1830 - 1852 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 1853 - 1865 [constructor.] 0. secs (0.u,0.s) -Chars 1866 - 1884 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 1889 - 1890 [+] 0. secs (0.u,0.s) -Chars 1891 - 1913 [inversion~Hinf;~subst.] 0.001 secs (0.001u,0.s) -Chars 1914 - 1939 [dependent~destruction~H2.] 0.002 secs (0.001u,0.s) -Chars 1946 - 1959 [econstructor.] 0. secs (0.u,0.s) -Chars 1960 - 1985 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) -Chars 1986 - 1992 [eauto.] 0. secs (0.u,0.s) -Chars 1997 - 1998 [+] 0. secs (0.u,0.s) -Chars 1999 - 2010 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 2011 - 2033 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 2040 - 2078 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 2085 - 2118 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 2119 - 2146 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) -Chars 2147 - 2156 [exact~H0.] 0. secs (0.u,0.s) -Chars 2161 - 2162 [+] 0. secs (0.u,0.s) -Chars 2163 - 2175 [constructor.] 0. secs (0.u,0.s) -Chars 2176 - 2181 [step.] 0. secs (0.u,0.s) -Chars 2182 - 2209 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 2210 - 2231 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 2238 - 2249 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 2250 - 2261 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 2264 - 2265 [-] 0. secs (0.u,0.s) -Chars 2266 - 2287 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 2288 - 2313 [unfold~any_infinite~at~2.] 0. secs (0.u,0.s) -Chars 2314 - 2332 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 2337 - 2358 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 2359 - 2370 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 2371 - 2396 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 2397 - 2416 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 2421 - 2448 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 2449 - 2470 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 2475 - 2515 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 2520 - 2555 [cbn[any_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 2556 - 2585 [unfold~any_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 2590 - 2603 [induction~Ht.] 0. secs (0.u,0.s) -Chars 2608 - 2609 [+] 0. secs (0.u,0.s) -Chars 2610 - 2625 [inversion~Hinf.] 0. secs (0.u,0.s) -Chars 2630 - 2631 [+] 0. secs (0.u,0.s) -Chars 2632 - 2654 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 2655 - 2667 [constructor.] 0. secs (0.u,0.s) -Chars 2668 - 2686 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 2691 - 2692 [+] 0. secs (0.u,0.s) -Chars 2693 - 2715 [inversion~Hinf;~subst.] 0.022 secs (0.02u,0.001s) -Chars 2716 - 2741 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) -Chars 2748 - 2761 [econstructor.] 0. secs (0.u,0.s) -Chars 2762 - 2787 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) -Chars 2788 - 2794 [eauto.] 0. secs (0.u,0.s) -Chars 2799 - 2800 [+] 0. secs (0.u,0.s) -Chars 2801 - 2813 [constructor.] 0. secs (0.u,0.s) -Chars 2814 - 2819 [step.] 0. secs (0.u,0.s) -Chars 2820 - 2847 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 2848 - 2869 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 2876 - 2887 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 2888 - 2899 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 2904 - 2905 [+] 0. secs (0.u,0.s) -Chars 2906 - 2917 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 2918 - 2940 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 2947 - 2985 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 2992 - 3025 [cbn[any_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 3026 - 3053 [unfold~any_infinite_~in~H0.] 0. secs (0.u,0.s) -Chars 3054 - 3063 [exact~H0.] 0. secs (0.u,0.s) -Chars 3064 - 3068 [Qed.] 0.007 secs (0.007u,0.s) -Chars 3070 - 3129 [Theorem~spin_infinite~{E}~{A}~...] 0. secs (0.u,0.s) -Chars 3130 - 3136 [Proof.] 0. secs (0.u,0.s) -Chars 3139 - 3159 [unfold~any_infinite.] 0. secs (0.u,0.s) -Chars 3160 - 3178 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 3181 - 3208 [cbn[any_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 3209 - 3230 [unfold~any_infinite_.] 0. secs (0.u,0.s) -Chars 3231 - 3235 [cbn.] 0. secs (0.u,0.s) -Chars 3238 - 3250 [constructor.] 0. secs (0.u,0.s) -Chars 3251 - 3261 [exact~CIH.] 0. secs (0.u,0.s) -Chars 3262 - 3266 [Qed.] 0. secs (0.u,0.s) -Chars 3268 - 3542 [Variant~all_infiniteF~{E~:~Typ...] 0. secs (0.u,0.s) -Chars 3543 - 3593 [#[global]~Hint~Constructors~al...] 0. secs (0.u,0.s) -Chars 3595 - 3687 [Definition~all_infinite_~{E}~{...] 0. secs (0.u,0.s) -Chars 3689 - 3848 [Lemma~all_infiniteF_mono~{E}~{...] 0. secs (0.u,0.s) -Chars 3849 - 3855 [Proof.] 0. secs (0.u,0.s) -Chars 3858 - 3889 [induction~IN;~eauto~with~itree.] 0. secs (0.u,0.s) -Chars 3890 - 3894 [Qed.] 0. secs (0.u,0.s) -Chars 3896 - 3971 [Lemma~all_infinite__mono~{E}~{...] 0. secs (0.u,0.s) -Chars 3972 - 3978 [Proof.] 0. secs (0.u,0.s) -Chars 3981 - 4017 [repeat~red;~intros~sim~sim'~LE...] 0. secs (0.u,0.s) -Chars 4020 - 4046 [unfold~all_infinite_~in~*.] 0. secs (0.u,0.s) -Chars 4047 - 4080 [eapply~all_infiniteF_mono;~eauto.] 0. secs (0.u,0.s) -Chars 4081 - 4085 [Qed.] 0. secs (0.u,0.s) -Chars 4087 - 4215 [Definition~all_infinite_mon~{E...] 0. secs (0.u,0.s) -Chars 4217 - 4298 [Definition~all_infinite~{E}~{A...] 0. secs (0.u,0.s) -Chars 4300 - 4343 [#[global]~Hint~Unfold~all_infi...] 0. secs (0.u,0.s) -Chars 4345 - 4632 [Inductive~may_converge~{E~:~Ty...] 0.001 secs (0.001u,0.s) -Chars 4633 - 4682 [#[global]~Hint~Constructors~ma...] 0. secs (0.u,0.s) -Chars 4684 - 4791 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) -Chars 4792 - 4798 [Proof.] 0. secs (0.u,0.s) -Chars 4801 - 4817 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 4818 - 4832 [split;~intros.] 0. secs (0.u,0.s) -Chars 4835 - 4836 [-] 0. secs (0.u,0.s) -Chars 4837 - 4849 [induction~H.] 0. secs (0.u,0.s) -Chars 4854 - 4855 [+] 0. secs (0.u,0.s) -Chars 4856 - 4877 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) -Chars 4878 - 4892 [rewrite~<-~Ht.] 0.001 secs (0.001u,0.s) -Chars 4893 - 4898 [auto.] 0. secs (0.u,0.s) -Chars 4903 - 4904 [+] 0. secs (0.u,0.s) -Chars 4905 - 4928 [eapply~conv_vis;~eauto.] 0.028 secs (0.028u,0.s) -Chars 4929 - 4942 [rewrite~<-~H.] 0. secs (0.u,0.s) -Chars 4949 - 4958 [symmetry.] 0. secs (0.u,0.s) -Chars 4959 - 4964 [auto.] 0. secs (0.u,0.s) -Chars 4967 - 4968 [-] 0. secs (0.u,0.s) -Chars 4969 - 4981 [induction~H.] 0. secs (0.u,0.s) -Chars 4986 - 4987 [+] 0. secs (0.u,0.s) -Chars 4988 - 5009 [apply~conv_ret;~auto.] 0. secs (0.u,0.s) -Chars 5010 - 5021 [rewrite~Ht.] 0. secs (0.u,0.s) -Chars 5022 - 5027 [auto.] 0. secs (0.u,0.s) -Chars 5032 - 5033 [+] 0. secs (0.u,0.s) -Chars 5034 - 5057 [eapply~conv_vis;~eauto.] 0.001 secs (0.001u,0.s) -Chars 5058 - 5069 [rewrite~Ht.] 0. secs (0.u,0.s) -Chars 5076 - 5082 [eauto.] 0. secs (0.u,0.s) -Chars 5083 - 5087 [Qed.] 0.001 secs (0.001u,0.s) -Chars 5089 - 5166 [Ltac~contra_void~:=~try~match~...] 0. secs (0.u,0.s) -Chars 5168 - 5266 [#[global]~Instance~eutt_proper...] 0. secs (0.u,0.s) -Chars 5267 - 5273 [Proof.] 0. secs (0.u,0.s) -Chars 5276 - 5292 [intros~t1~t2~Ht.] 0. secs (0.u,0.s) -Chars 5293 - 5312 [split;~intros~Hinf.] 0. secs (0.u,0.s) -Chars 5315 - 5316 [-] 0. secs (0.u,0.s) -Chars 5317 - 5338 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 5339 - 5364 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) -Chars 5365 - 5383 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 5388 - 5409 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 5410 - 5421 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 5422 - 5447 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 5448 - 5467 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 5472 - 5499 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 5500 - 5521 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 5526 - 5566 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 5571 - 5606 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 5607 - 5636 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 5641 - 5654 [induction~Ht.] 0. secs (0.u,0.s) -Chars 5659 - 5660 [+] 0. secs (0.u,0.s) -Chars 5661 - 5676 [inversion~Hinf.] 0. secs (0.u,0.s) -Chars 5681 - 5682 [+] 0. secs (0.u,0.s) -Chars 5683 - 5705 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 5706 - 5718 [constructor.] 0. secs (0.u,0.s) -Chars 5719 - 5737 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 5742 - 5743 [+] 0. secs (0.u,0.s) -Chars 5744 - 5766 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 5767 - 5792 [dependent~destruction~H2.] 0.001 secs (0.001u,0.s) -Chars 5799 - 5812 [econstructor.] 0. secs (0.u,0.s) -Chars 5813 - 5822 [intros~b.] 0. secs (0.u,0.s) -Chars 5823 - 5848 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) -Chars 5849 - 5858 [apply~H0.] 0. secs (0.u,0.s) -Chars 5863 - 5864 [+] 0. secs (0.u,0.s) -Chars 5865 - 5876 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 5877 - 5899 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 5906 - 5944 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 5951 - 5984 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 5985 - 6012 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) -Chars 6013 - 6022 [exact~H0.] 0. secs (0.u,0.s) -Chars 6027 - 6028 [+] 0. secs (0.u,0.s) -Chars 6029 - 6041 [constructor.] 0. secs (0.u,0.s) -Chars 6042 - 6047 [step.] 0. secs (0.u,0.s) -Chars 6048 - 6075 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 6076 - 6097 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 6104 - 6115 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 6116 - 6127 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 6130 - 6131 [-] 0. secs (0.u,0.s) -Chars 6132 - 6153 [revert~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 6154 - 6179 [unfold~all_infinite~at~2.] 0. secs (0.u,0.s) -Chars 6180 - 6198 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 6203 - 6224 [intros~t1~t2~Ht~Hinf.] 0. secs (0.u,0.s) -Chars 6225 - 6236 [step~in~Ht.] 0. secs (0.u,0.s) -Chars 6237 - 6262 [cbn[eqit_mon~body]~in~Ht.] 0. secs (0.u,0.s) -Chars 6263 - 6282 [unfold~eqit_~in~Ht.] 0. secs (0.u,0.s) -Chars 6287 - 6314 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 6315 - 6336 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 6341 - 6381 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 6386 - 6421 [cbn[all_infinite_mon~body]~in~...] 0. secs (0.u,0.s) -Chars 6422 - 6451 [unfold~all_infinite_~in~Hinf.] 0. secs (0.u,0.s) -Chars 6456 - 6469 [induction~Ht.] 0. secs (0.u,0.s) -Chars 6474 - 6475 [+] 0. secs (0.u,0.s) -Chars 6476 - 6491 [inversion~Hinf.] 0. secs (0.u,0.s) -Chars 6496 - 6497 [+] 0. secs (0.u,0.s) -Chars 6498 - 6520 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 6521 - 6533 [constructor.] 0. secs (0.u,0.s) -Chars 6534 - 6552 [eapply~CIH;~eauto.] 0. secs (0.u,0.s) -Chars 6557 - 6558 [+] 0. secs (0.u,0.s) -Chars 6559 - 6581 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 6582 - 6607 [dependent~destruction~H2.] 0.003 secs (0.003u,0.s) -Chars 6614 - 6627 [econstructor.] 0. secs (0.u,0.s) -Chars 6628 - 6637 [intros~b.] 0. secs (0.u,0.s) -Chars 6638 - 6663 [eapply~CIH;~[~apply~REL~|~~].] 0. secs (0.u,0.s) -Chars 6664 - 6673 [apply~H0.] 0. secs (0.u,0.s) -Chars 6678 - 6679 [+] 0. secs (0.u,0.s) -Chars 6680 - 6692 [constructor.] 0. secs (0.u,0.s) -Chars 6693 - 6698 [step.] 0. secs (0.u,0.s) -Chars 6699 - 6726 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 6727 - 6748 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 6755 - 6766 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 6767 - 6778 [exact~Hinf.] 0. secs (0.u,0.s) -Chars 6783 - 6784 [+] 0. secs (0.u,0.s) -Chars 6785 - 6796 [apply~IHHt.] 0. secs (0.u,0.s) -Chars 6797 - 6819 [inversion~Hinf;~subst.] 0. secs (0.u,0.s) -Chars 6826 - 6864 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 6871 - 6904 [cbn[all_infinite_mon~body]~in~H0.] 0. secs (0.u,0.s) -Chars 6905 - 6932 [unfold~all_infinite_~in~H0.] 0. secs (0.u,0.s) -Chars 6933 - 6942 [exact~H0.] 0. secs (0.u,0.s) -Chars 6943 - 6947 [Qed.] 0.007 secs (0.007u,0.s) -Chars 6949 - 7093 [Lemma~not_converge_to_all_infi...] 0. secs (0.u,0.s) -Chars 7094 - 7100 [Proof.] 0. secs (0.u,0.s) -Chars 7103 - 7114 [intros~E~A.] 0. secs (0.u,0.s) -Chars 7115 - 7135 [unfold~all_infinite.] 0. secs (0.u,0.s) -Chars 7136 - 7154 [coinduction~c~CIH.] 0. secs (0.u,0.s) -Chars 7155 - 7169 [intros~t~Hcon.] 0. secs (0.u,0.s) -Chars 7172 - 7199 [cbn[all_infinite_mon~body].] 0. secs (0.u,0.s) -Chars 7200 - 7221 [unfold~all_infinite_.] 0. secs (0.u,0.s) -Chars 7224 - 7308 [destruct~(observe~t)~eqn:Heq;~...] 0. secs (0.u,0.s) -Chars 7311 - 7312 [-] 0. secs (0.u,0.s) -Chars 7313 - 7321 [exfalso.] 0. secs (0.u,0.s) -Chars 7322 - 7337 [apply~(Hcon~r).] 0. secs (0.u,0.s) -Chars 7338 - 7349 [rewrite~Ht.] 0.002 secs (0.002u,0.s) -Chars 7350 - 7362 [constructor.] 0. secs (0.u,0.s) -Chars 7363 - 7375 [reflexivity.] 0. secs (0.u,0.s) -Chars 7378 - 7379 [-] 0. secs (0.u,0.s) -Chars 7380 - 7392 [constructor.] 0. secs (0.u,0.s) -Chars 7393 - 7403 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7408 - 7434 [setoid_rewrite~Ht~in~Hcon.] 0.003 secs (0.003u,0.s) -Chars 7435 - 7467 [setoid_rewrite~tau_eutt~in~Hcon.] 0. secs (0.u,0.s) -Chars 7468 - 7473 [auto.] 0. secs (0.u,0.s) -Chars 7476 - 7477 [-] 0. secs (0.u,0.s) -Chars 7478 - 7490 [constructor.] 0. secs (0.u,0.s) -Chars 7491 - 7500 [intros~b.] 0. secs (0.u,0.s) -Chars 7501 - 7511 [apply~CIH.] 0. secs (0.u,0.s) -Chars 7516 - 7533 [intros~a~Hcontra.] 0. secs (0.u,0.s) -Chars 7534 - 7560 [setoid_rewrite~Ht~in~Hcon.] 0.006 secs (0.006u,0.s) -Chars 7565 - 7580 [apply~(Hcon~a).] 0. secs (0.u,0.s) -Chars 7581 - 7621 [eapply~conv_vis;~try~reflexivi...] 0. secs (0.u,0.s) -Chars 7622 - 7626 [Qed.] 0.001 secs (0.001u,0.s) -Chars 7628 - 7758 [Lemma~classic_converge~:~~~for...] 0. secs (0.u,0.s) -Chars 7759 - 7765 [Proof.] 0. secs (0.u,0.s) -Chars 7768 - 7775 [intros.] 0. secs (0.u,0.s) -Chars 7776 - 7831 [destruct~(classic~(exists~a,~m...] 0. secs (0.u,0.s) -Chars 7834 - 7840 [right.] 0. secs (0.u,0.s) -Chars 7841 - 7876 [apply~not_converge_to_all_infi...] 0. secs (0.u,0.s) -Chars 7877 - 7894 [intros~a~Hcontra.] 0. secs (0.u,0.s) -Chars 7897 - 7905 [apply~H.] 0. secs (0.u,0.s) -Chars 7906 - 7915 [exists~a.] 0. secs (0.u,0.s) -Chars 7916 - 7921 [auto.] 0. secs (0.u,0.s) -Chars 7922 - 7926 [Qed.] 0. secs (0.u,0.s) -Chars 7928 - 8065 [Lemma~all_infinite_not_converg...] 0. secs (0.u,0.s) -Chars 8066 - 8072 [Proof.] 0. secs (0.u,0.s) -Chars 8075 - 8096 [intros~E~R~t~r~Hc~Hd.] 0. secs (0.u,0.s) -Chars 8097 - 8110 [induction~Hc.] 0. secs (0.u,0.s) -Chars 8113 - 8114 [-] 0. secs (0.u,0.s) -Chars 8115 - 8131 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) -Chars 8132 - 8170 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 8175 - 8208 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) -Chars 8209 - 8236 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) -Chars 8241 - 8254 [inversion~Hd.] 0. secs (0.u,0.s) -Chars 8257 - 8258 [-] 0. secs (0.u,0.s) -Chars 8259 - 8270 [apply~IHHc.] 0. secs (0.u,0.s) -Chars 8271 - 8287 [rewrite~H~in~Hd.] 0. secs (0.u,0.s) -Chars 8292 - 8330 [apply~(gfp_fp~all_infinite_mon...] 0. secs (0.u,0.s) -Chars 8335 - 8368 [cbn[all_infinite_mon~body]~in~Hd.] 0. secs (0.u,0.s) -Chars 8369 - 8396 [unfold~all_infinite_~in~Hd.] 0. secs (0.u,0.s) -Chars 8401 - 8414 [inversion~Hd.] 0. secs (0.u,0.s) -Chars 8415 - 8428 [ddestruction.] 0.001 secs (0.001u,0.s) -Chars 8429 - 8435 [subst.] 0. secs (0.u,0.s) -Chars 8436 - 8445 [apply~H1.] 0. secs (0.u,0.s) -Chars 8446 - 8450 [Qed.] 0.002 secs (0.002u,0.s) -Chars 8452 - 8548 [Lemma~may_converge_Ret_inv~E~(...] 0. secs (0.u,0.s) -Chars 8549 - 8555 [Proof.] 0. secs (0.u,0.s) -Chars 8558 - 8565 [intros.] 0. secs (0.u,0.s) -Chars 8566 - 8578 [inversion~H.] 0. secs (0.u,0.s) -Chars 8581 - 8582 [-] 0. secs (0.u,0.s) -Chars 8583 - 8608 [apply~eutt_inv_Ret~in~H0.] 0. secs (0.u,0.s) -Chars 8609 - 8614 [auto.] 0. secs (0.u,0.s) -Chars 8617 - 8618 [-] 0. secs (0.u,0.s) -Chars 8619 - 8666 [apply~eqit_inv~in~H0;~cbn~in~H...] 0. secs (0.u,0.s) -Chars 8667 - 8671 [Qed.] 0. secs (0.u,0.s) -Chars 8746 - 8845 [Ltac~~inv_infinite_ret~:=~~~ma...] 0. secs (0.u,0.s) -Chars 8888 - 9006 [Lemma~no_infinite_ret~(E~:~Typ...] 0. secs (0.u,0.s) -Chars 9007 - 9013 [Proof.] 0. secs (0.u,0.s) -Chars 9016 - 9033 [intros~H~HContra.] 0. secs (0.u,0.s) -Chars 9034 - 9055 [rewrite~HContra~in~H.] 0. secs (0.u,0.s) -Chars 9058 - 9095 [apply~(gfp_fp~any_infinite_mon...] 0. secs (0.u,0.s) -Chars 9098 - 9130 [cbn[any_infinite_mon~body]~in~H.] 0. secs (0.u,0.s) -Chars 9131 - 9157 [unfold~any_infinite_~in~H.] 0. secs (0.u,0.s) -Chars 9160 - 9172 [inversion~H.] 0. secs (0.u,0.s) -Chars 9173 - 9177 [Qed.] 0.001 secs (0.001u,0.s) diff --git a/theories/Props/Leaf.v.timing b/theories/Props/Leaf.v.timing deleted file mode 100644 index 13238d0c..00000000 --- a/theories/Props/Leaf.v.timing +++ /dev/null @@ -1,402 +0,0 @@ -Chars 56 - 92 [From~Coinduction~Require~Impor...] 0.005 secs (0.004u,0.001s) -Chars 95 - 298 [From~ITree~Require~Import~Basi...] 0.058 secs (0.049u,0.008s) -Chars 300 - 361 [From~Stdlib~Require~Import~Mor...] 0.001 secs (0.u,0.001s) -Chars 362 - 375 [Import~ITree.] 0. secs (0.u,0.s) -Chars 376 - 398 [Import~ITreeNotations.] 0. secs (0.u,0.s) -Chars 864 - 1156 [Inductive~Leaf~{E}~{A~:~Type}~...] 0.001 secs (0.001u,0.s) -Chars 1157 - 1198 [#[global]~Hint~Constructors~Le...] 0. secs (0.u,0.s) -Chars 1200 - 1221 [Module~LeafNotations.] 0. secs (0.u,0.s) -Chars 1224 - 1271 [Notation~"a~∈~t"~:=~(Leaf~a~t)...] 0. secs (0.u,0.s) -Chars 1272 - 1290 [End~LeafNotations.] 0. secs (0.u,0.s) -Chars 1292 - 1313 [Import~LeafNotations.] 0. secs (0.u,0.s) -Chars 1342 - 1401 [Lemma~Leaf_Ret~:~forall~E~R~a,...] 0. secs (0.u,0.s) -Chars 1402 - 1408 [Proof.] 0. secs (0.u,0.s) -Chars 1411 - 1445 [intros;~econstructor;~reflexiv...] 0. secs (0.u,0.s) -Chars 1446 - 1450 [Qed.] 0. secs (0.u,0.s) -Chars 1452 - 1526 [Lemma~Leaf_Tau~:~forall~E~R~a~...] 0. secs (0.u,0.s) -Chars 1527 - 1533 [Proof.] 0. secs (0.u,0.s) -Chars 1536 - 1580 [intros;~econstructor;~[~reflex...] 0. secs (0.u,0.s) -Chars 1581 - 1585 [Qed.] 0. secs (0.u,0.s) -Chars 1587 - 1688 [Lemma~Leaf_Vis~:~~~forall~E~X~...] 0. secs (0.u,0.s) -Chars 1689 - 1695 [Proof.] 0. secs (0.u,0.s) -Chars 1698 - 1749 [intros~*~IN;~econstructor~3;~[...] 0. secs (0.u,0.s) -Chars 1750 - 1754 [Qed.] 0. secs (0.u,0.s) -Chars 1780 - 1860 [Lemma~Leaf_Ret_inv~:~forall~E~...] 0. secs (0.u,0.s) -Chars 1861 - 1867 [Proof.] 0. secs (0.u,0.s) -Chars 1870 - 1916 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) -Chars 1917 - 1921 [Qed.] 0. secs (0.u,0.s) -Chars 1923 - 2001 [Lemma~Leaf_Tau_inv~:~forall~E~...] 0. secs (0.u,0.s) -Chars 2002 - 2008 [Proof.] 0. secs (0.u,0.s) -Chars 2011 - 2057 [intros~*~IN;~inv~IN;~cbn~in~*;...] 0.002 secs (0.002u,0.s) -Chars 2058 - 2062 [Qed.] 0. secs (0.u,0.s) -Chars 2064 - 2173 [Lemma~Leaf_Vis_inv~:~~~forall~...] 0. secs (0.u,0.s) -Chars 2174 - 2180 [Proof.] 0. secs (0.u,0.s) -Chars 2183 - 2231 [intros~*~IN~*;~inv~IN;~cbn~in~...] 0.002 secs (0.002u,0.s) -Chars 2234 - 2246 [revert~x~H0.] 0. secs (0.u,0.s) -Chars 2249 - 2364 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 2367 - 2373 [eauto.] 0.027 secs (0.027u,0.s) -Chars 2374 - 2378 [Qed.] 0.001 secs (0.001u,0.s) -Chars 2551 - 2688 [Lemma~Leaf_eutt_l~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 2689 - 2695 [Proof.] 0. secs (0.u,0.s) -Chars 2698 - 2729 [intros~*~EQ~FIN;~revert~u~EQ.] 0. secs (0.u,0.s) -Chars 2732 - 2760 [induction~FIN;~intros~u2~EQ.] 0. secs (0.u,0.s) -Chars 2764 - 2765 [-] 0. secs (0.u,0.s) -Chars 2766 - 2777 [step~in~EQ.] 0. secs (0.u,0.s) -Chars 2783 - 2810 [rewrite~H~in~EQ;~clear~H~t.] 0. secs (0.u,0.s) -Chars 2815 - 2847 [remember~(RetF~a);~genobs~u2~ou.] 0. secs (0.u,0.s) -Chars 2852 - 2893 [hinduction~EQ~before~R;~intros...] 0.004 secs (0.004u,0.s) -Chars 2898 - 2899 [+] 0. secs (0.u,0.s) -Chars 2900 - 2927 [inv~Heqi;~eauto~with~itree.] 0.001 secs (0.001u,0.s) -Chars 2932 - 2933 [+] 0. secs (0.u,0.s) -Chars 2934 - 2984 [edestruct~IHEQ~as~(b,~(IN,~HR)...] 0. secs (0.u,0.s) -Chars 2987 - 2988 [-] 0. secs (0.u,0.s) -Chars 2989 - 3028 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 3033 - 3066 [remember~(TauF~u);~genobs~u2~ou2.] 0. secs (0.u,0.s) -Chars 3071 - 3122 [hinduction~EQ~before~R;~intros...] 0.02 secs (0.018u,0.002s) -Chars 3127 - 3128 [+] 0. secs (0.u,0.s) -Chars 3129 - 3196 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) -Chars 3201 - 3202 [+] 0. secs (0.u,0.s) -Chars 3203 - 3216 [eapply~IHFIN.] 0. secs (0.u,0.s) -Chars 3217 - 3226 [now~step.] 0.001 secs (0.001u,0.s) -Chars 3232 - 3233 [+] 0. secs (0.u,0.s) -Chars 3234 - 3300 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.001 secs (0.001u,0.s) -Chars 3303 - 3304 [-] 0. secs (0.u,0.s) -Chars 3305 - 3344 [step~in~EQ;~rewrite~H~in~EQ;~c...] 0. secs (0.u,0.s) -Chars 3349 - 3384 [remember~(VisF~e~k);~genobs~u2...] 0. secs (0.u,0.s) -Chars 3389 - 3438 [hinduction~EQ~before~R;~intros...] 0.001 secs (0.001u,0.s) -Chars 3443 - 3444 [+] 0. secs (0.u,0.s) -Chars 3445 - 3464 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 3471 - 3589 [refine~~~match~~~~~Heqi~in~(_~...] 0.003 secs (0.002u,0.s) -Chars 3596 - 3603 [intros.] 0. secs (0.u,0.s) -Chars 3604 - 3668 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.003 secs (0.002u,0.s) -Chars 3673 - 3674 [+] 0. secs (0.u,0.s) -Chars 3675 - 3742 [edestruct~IHEQ~as~(?,~(?,~?));...] 0.001 secs (0.001u,0.s) -Chars 3743 - 3747 [Qed.] 0.006 secs (0.006u,0.s) -Chars 3749 - 3886 [Lemma~Leaf_eutt_r~{E}~{A}~{B}~...] 0. secs (0.u,0.s) -Chars 3887 - 3893 [Proof.] 0. secs (0.u,0.s) -Chars 3896 - 3912 [intros~*~EQ~FIN.] 0. secs (0.u,0.s) -Chars 3915 - 3937 [apply~eqit_flip~in~EQ.] 0. secs (0.u,0.s) -Chars 3940 - 3954 [revert~EQ~FIN.] 0. secs (0.u,0.s) -Chars 3957 - 3976 [apply~@Leaf_eutt_l.] 0. secs (0.u,0.s) -Chars 3977 - 3981 [Qed.] 0. secs (0.u,0.s) -Chars 3983 - 4065 [#[global]~Instance~Leaf_eutt~~...] 0. secs (0.u,0.s) -Chars 4066 - 4072 [Proof.] 0. secs (0.u,0.s) -Chars 4075 - 4121 [apply~proper_sym_impl_iff_2;~[...] 0. secs (0.u,0.s) -Chars 4124 - 4156 [unfold~Proper,~respectful,~impl.] 0. secs (0.u,0.s) -Chars 4157 - 4171 [intros;~subst.] 0. secs (0.u,0.s) -Chars 4174 - 4243 [edestruct~@Leaf_eutt_l~as~[?~[...] 0. secs (0.u,0.s) -Chars 4244 - 4248 [Qed.] 0. secs (0.u,0.s) -Chars 4306 - 4427 [Lemma~Leaf_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) -Chars 4428 - 4434 [Proof.] 0. secs (0.u,0.s) -Chars 4437 - 4469 [intros~*~INt~INk;~induction~INt.] 0. secs (0.u,0.s) -Chars 4472 - 4473 [-] 0. secs (0.u,0.s) -Chars 4474 - 4517 [rewrite~(itree_eta~t),~H,~bind...] 0.004 secs (0.004u,0.s) -Chars 4520 - 4521 [-] 0. secs (0.u,0.s) -Chars 4522 - 4563 [rewrite~(itree_eta~t),~H,~tau_...] 0.004 secs (0.004u,0.s) -Chars 4566 - 4567 [-] 0. secs (0.u,0.s) -Chars 4568 - 4603 [rewrite~(itree_eta~t),~H,~bind...] 0.003 secs (0.003u,0.s) -Chars 4608 - 4636 [apply~Leaf_Vis~with~x;~auto.] 0. secs (0.u,0.s) -Chars 4637 - 4641 [Qed.] 0.001 secs (0.001u,0.s) -Chars 4643 - 4774 [Lemma~Leaf_bind_inv~:~~~forall...] 0. secs (0.u,0.s) -Chars 4775 - 4781 [Proof.] 0. secs (0.u,0.s) -Chars 4784 - 4831 [intros~*~FIN;~remember~(ITree....] 0. secs (0.u,0.s) -Chars 4834 - 4850 [revert~t~k~Hequ.] 0. secs (0.u,0.s) -Chars 4853 - 4902 [induction~FIN;~intros~t'~k'~->...] 0. secs (0.u,0.s) -Chars 4905 - 4906 [-] 0. secs (0.u,0.s) -Chars 4907 - 4937 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 4942 - 4981 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0. secs (0.u,0.s) -Chars 4986 - 5012 [exists~r;~auto~with~itree.] 0. secs (0.u,0.s) -Chars 5015 - 5016 [-] 0. secs (0.u,0.s) -Chars 5017 - 5047 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 5052 - 5124 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) -Chars 5129 - 5166 [inversion~H;~clear~H;~symmetry...] 0. secs (0.u,0.s) -Chars 5171 - 5241 [edestruct~IHFIN~as~(?,~(?,~?))...] 0. secs (0.u,0.s) -Chars 5244 - 5245 [-] 0. secs (0.u,0.s) -Chars 5246 - 5276 [unfold~observe~in~H;~cbn~in~H.] 0. secs (0.u,0.s) -Chars 5281 - 5353 [desobs~t~EQ_;~cbn~in~*;~try~co...] 0.001 secs (0.001u,0.s) -Chars 5358 - 5377 [revert~x~FIN~IHFIN.] 0. secs (0.u,0.s) -Chars 5382 - 5497 [refine~~~match~~~~~H~in~(_~=~u...] 0.002 secs (0.002u,0.s) -Chars 5502 - 5509 [intros.] 0. secs (0.u,0.s) -Chars 5514 - 5590 [edestruct~IHFIN~as~(?,~(?,~?))...] 0.001 secs (0.001u,0.s) -Chars 5591 - 5595 [Qed.] 0.002 secs (0.002u,0.s) -Chars 5799 - 6253 [Lemma~eqit_clo_bind_gen~:~~~fo...] 0.001 secs (0.001u,0.s) -Chars 6254 - 6260 [Proof.] 0. secs (0.u,0.s) -Chars 6263 - 6287 [intros~E~R1~R2~RR~U1~U2.] 0. secs (0.u,0.s) -Chars 6290 - 6320 [intros~UU~b1~b2~c~t1~t2~k1~k2.] 0. secs (0.u,0.s) -Chars 6323 - 6345 [revert~UU~t1~t2~k1~k2.] 0. secs (0.u,0.s) -Chars 6348 - 6364 [tower~induction.] 0.004 secs (0.004u,0.s) -Chars 6367 - 6368 [{] 0. secs (0.u,0.s) -Chars 6369 - 6376 [intros.] 0. secs (0.u,0.s) -Chars 6377 - 6397 [unfold~Datatypes.id.] 0. secs (0.u,0.s) -Chars 6398 - 6413 [apply~H0;~auto.] 0.001 secs (0.001u,0.s) -Chars 6414 - 6415 [}] 0. secs (0.u,0.s) -Chars 6418 - 6430 [intros~x~IH.] 0. secs (0.u,0.s) -Chars 6433 - 6464 [intros~UU~t1~t2~k1~k2~EQT~EQKL.] 0. secs (0.u,0.s) -Chars 6467 - 6492 [cbn[eqit_mon~body]~in~*.] 0. secs (0.u,0.s) -Chars 6495 - 6513 [unfold~eqit_~in~*.] 0. secs (0.u,0.s) -Chars 6516 - 6530 [genobs~t1~ot1.] 0. secs (0.u,0.s) -Chars 6533 - 6547 [genobs~t2~ot2.] 0. secs (0.u,0.s) -Chars 6550 - 6583 [hinduction~EQT~before~RR;~intros.] 0.002 secs (0.002u,0.s) -Chars 6586 - 6623 [1-3:~rewrite~2!observe_bind;~s...] 0.014 secs (0.014u,0.s) -Chars 6627 - 6628 [+] 0. secs (0.u,0.s) -Chars 6643 - 6654 [apply~EQKL.] 0. secs (0.u,0.s) -Chars 6660 - 6661 [*] 0. secs (0.u,0.s) -Chars 6662 - 6682 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) -Chars 6687 - 6688 [*] 0. secs (0.u,0.s) -Chars 6689 - 6709 [apply~LeafRet;~auto.] 0. secs (0.u,0.s) -Chars 6714 - 6715 [*] 0. secs (0.u,0.s) -Chars 6716 - 6726 [exact~REL.] 0. secs (0.u,0.s) -Chars 6729 - 6730 [+] 0. secs (0.u,0.s) -Chars 6745 - 6750 [taus.] 0. secs (0.u,0.s) -Chars 6756 - 6766 [eapply~IH.] 0. secs (0.u,0.s) -Chars 6771 - 6772 [*] 0. secs (0.u,0.s) -Chars 6773 - 6783 [exact~REL.] 0. secs (0.u,0.s) -Chars 6788 - 6789 [*] 0. secs (0.u,0.s) -Chars 6790 - 6814 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) -Chars 6821 - 6826 [step.] 0.001 secs (0.001u,0.s) -Chars 6827 - 6838 [apply~EQKL.] 0. secs (0.u,0.s) -Chars 6845 - 6847 [--] 0. secs (0.u,0.s) -Chars 6848 - 6870 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) -Chars 6877 - 6879 [--] 0. secs (0.u,0.s) -Chars 6880 - 6902 [eapply~LeafTau;~eauto.] 0. secs (0.u,0.s) -Chars 6909 - 6911 [--] 0. secs (0.u,0.s) -Chars 6912 - 6921 [exact~HU.] 0. secs (0.u,0.s) -Chars 6924 - 6925 [+] 0. secs (0.u,0.s) -Chars 6940 - 6952 [constructor.] 0. secs (0.u,0.s) -Chars 6953 - 6961 [intro~v.] 0. secs (0.u,0.s) -Chars 6966 - 6976 [eapply~IH.] 0. secs (0.u,0.s) -Chars 6981 - 6982 [*] 0. secs (0.u,0.s) -Chars 6983 - 6993 [apply~REL.] 0. secs (0.u,0.s) -Chars 6998 - 6999 [*] 0. secs (0.u,0.s) -Chars 7000 - 7024 [intros~u1~u2~HL1~HL2~HU.] 0. secs (0.u,0.s) -Chars 7031 - 7036 [step.] 0.001 secs (0.001u,0.s) -Chars 7037 - 7048 [apply~EQKL.] 0. secs (0.u,0.s) -Chars 7055 - 7057 [--] 0. secs (0.u,0.s) -Chars 7058 - 7080 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) -Chars 7087 - 7089 [--] 0. secs (0.u,0.s) -Chars 7090 - 7112 [eapply~LeafVis;~eauto.] 0. secs (0.u,0.s) -Chars 7119 - 7121 [--] 0. secs (0.u,0.s) -Chars 7122 - 7131 [exact~HU.] 0. secs (0.u,0.s) -Chars 7134 - 7135 [+] 0. secs (0.u,0.s) -Chars 7151 - 7172 [rewrite~observe_bind.] 0. secs (0.u,0.s) -Chars 7173 - 7181 [simpobs.] 0.004 secs (0.004u,0.s) -Chars 7186 - 7191 [taul.] 0. secs (0.u,0.s) -Chars 7196 - 7227 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 7230 - 7231 [+] 0. secs (0.u,0.s) -Chars 7247 - 7280 [setoid_rewrite~observe_bind~at~2.] 0.018 secs (0.018u,0.s) -Chars 7281 - 7289 [simpobs.] 0.003 secs (0.003u,0.s) -Chars 7294 - 7299 [taur.] 0. secs (0.u,0.s) -Chars 7304 - 7335 [eapply~IHEQT;~eauto~with~itree.] 0.002 secs (0.002u,0.s) -Chars 7336 - 7340 [Qed.] 0.009 secs (0.009u,0.s) -Chars 7390 - 7778 [Lemma~eutt_bind_eutt_gen~:~~~f...] 0. secs (0.u,0.s) -Chars 7779 - 7785 [Proof.] 0. secs (0.u,0.s) -Chars 7788 - 7797 [intros~*.] 0. secs (0.u,0.s) -Chars 7798 - 7810 [unfold~eutt.] 0. secs (0.u,0.s) -Chars 7811 - 7835 [apply~eqit_clo_bind_gen.] 0. secs (0.u,0.s) -Chars 7836 - 7840 [Qed.] 0. secs (0.u,0.s) -Chars 7900 - 8107 [Lemma~eutt_eq_bind_gen~{E}~{R}...] 0. secs (0.u,0.s) -Chars 8108 - 8114 [Proof.] 0. secs (0.u,0.s) -Chars 8117 - 8151 [intros;~eapply~eutt_bind_eutt_...] 0. secs (0.u,0.s) -Chars 8154 - 8166 [reflexivity.] 0. secs (0.u,0.s) -Chars 8169 - 8193 [intros~*~IN~_~<-;~eauto.] 0. secs (0.u,0.s) -Chars 8194 - 8198 [Qed.] 0. secs (0.u,0.s) -Chars 8200 - 8427 [Lemma~eqit_bind_Leaf_inv~{E}~{...] 0. secs (0.u,0.s) -Chars 8428 - 8434 [Proof.] 0. secs (0.u,0.s) -Chars 8437 - 8456 [intros~EQIT~r~HRET.] 0. secs (0.u,0.s) -Chars 8459 - 8477 [revert~k1~k2~EQIT.] 0. secs (0.u,0.s) -Chars 8480 - 8541 [induction~HRET;~intros;~rewrit...] 0.097 secs (0.096u,0.s) -Chars 8544 - 8545 [-] 0. secs (0.u,0.s) -Chars 8546 - 8557 [assumption.] 0. secs (0.u,0.s) -Chars 8560 - 8561 [-] 0. secs (0.u,0.s) -Chars 8562 - 8589 [rewrite~2!tau_eutt~in~EQIT.] 0.03 secs (0.03u,0.s) -Chars 8590 - 8595 [auto.] 0. secs (0.u,0.s) -Chars 8598 - 8599 [-] 0. secs (0.u,0.s) -Chars 8600 - 8613 [apply~IHHRET.] 0. secs (0.u,0.s) -Chars 8614 - 8649 [eapply~eqit_inv_Vis~in~EQIT;~e...] 0. secs (0.u,0.s) -Chars 8650 - 8654 [Qed.] 0.003 secs (0.003u,0.s) -Chars 8693 - 8772 [Lemma~has_post_Leaf~{E}~{R}~(t...] 0. secs (0.u,0.s) -Chars 8773 - 8779 [Proof.] 0. secs (0.u,0.s) -Chars 8782 - 8802 [intros~Hcond~Himage.] 0. secs (0.u,0.s) -Chars 8805 - 8843 [rewrite~has_post_post_strong~i...] 0. secs (0.u,0.s) -Chars 8846 - 8888 [destruct~(Leaf_eutt_l~t~t~r~Hc...] 0. secs (0.u,0.s) -Chars 8891 - 8912 [intuition;~now~subst.] 0. secs (0.u,0.s) -Chars 8913 - 8917 [Qed.] 0. secs (0.u,0.s) -Chars 8919 - 9056 [Lemma~has_post_of_Leaf~{E}~{R}...] 0. secs (0.u,0.s) -Chars 9057 - 9063 [Proof.] 0. secs (0.u,0.s) -Chars 9066 - 9085 [icoinduction~c~CIH.] 0.001 secs (0.001u,0.s) -Chars 9086 - 9101 [intros~t~Hpost.] 0. secs (0.u,0.s) -Chars 9104 - 9142 [setoid_rewrite~(itree_eta~t)~i...] 0.002 secs (0.002u,0.s) -Chars 9145 - 9157 [desobs~t~Ht.] 0. secs (0.u,0.s) -Chars 9160 - 9161 [-] 0. secs (0.u,0.s) -Chars 9162 - 9174 [constructor.] 0. secs (0.u,0.s) -Chars 9175 - 9197 [apply~Hpost,~Leaf_Ret.] 0. secs (0.u,0.s) -Chars 9200 - 9201 [-] 0. secs (0.u,0.s) -Chars 9202 - 9214 [constructor.] 0. secs (0.u,0.s) -Chars 9215 - 9225 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9226 - 9233 [intros.] 0. secs (0.u,0.s) -Chars 9234 - 9246 [apply~Hpost.] 0. secs (0.u,0.s) -Chars 9247 - 9262 [apply~Leaf_Tau.] 0. secs (0.u,0.s) -Chars 9263 - 9271 [exact~H.] 0. secs (0.u,0.s) -Chars 9274 - 9275 [-] 0. secs (0.u,0.s) -Chars 9276 - 9288 [constructor.] 0. secs (0.u,0.s) -Chars 9289 - 9296 [intros.] 0. secs (0.u,0.s) -Chars 9297 - 9307 [apply~CIH.] 0. secs (0.u,0.s) -Chars 9308 - 9315 [intros.] 0. secs (0.u,0.s) -Chars 9316 - 9329 [eapply~Hpost.] 0. secs (0.u,0.s) -Chars 9330 - 9346 [eapply~Leaf_Vis.] 0. secs (0.u,0.s) -Chars 9347 - 9355 [exact~H.] 0. secs (0.u,0.s) -Chars 9356 - 9360 [Qed.] 0.003 secs (0.003u,0.s) -Chars 9362 - 9458 [Lemma~has_post_Leaf_equiv~{E}~...] 0. secs (0.u,0.s) -Chars 9459 - 9465 [Proof.] 0. secs (0.u,0.s) -Chars 9468 - 9474 [split.] 0. secs (0.u,0.s) -Chars 9477 - 9478 [-] 0. secs (0.u,0.s) -Chars 9479 - 9515 [intros;~eapply~has_post_Leaf;~...] 0. secs (0.u,0.s) -Chars 9518 - 9519 [-] 0. secs (0.u,0.s) -Chars 9520 - 9532 [intro~Hpost.] 0. secs (0.u,0.s) -Chars 9533 - 9568 [exact~(has_post_of_Leaf~Q~t~Hp...] 0. secs (0.u,0.s) -Chars 9569 - 9573 [Qed.] 0. secs (0.u,0.s) -Chars 9758 - 9994 [Lemma~Leaf_iter_inv~{E}~{R}~{I...] 0. secs (0.u,0.s) -Chars 9995 - 10001 [Proof.] 0. secs (0.u,0.s) -Chars 10004 - 10025 [intros~*~Hinv~Hentry.] 0. secs (0.u,0.s) -Chars 10028 - 10059 [rewrite~<-~has_post_Leaf_equiv.] 0. secs (0.u,0.s) -Chars 10062 - 10097 [eapply~has_post_iter_strong;~e...] 0. secs (0.u,0.s) -Chars 10100 - 10135 [setoid_rewrite~has_post_Leaf_e...] 0.001 secs (0.001u,0.s) -Chars 10136 - 10142 [eauto.] 0. secs (0.u,0.s) -Chars 10143 - 10147 [Qed.] 0. secs (0.u,0.s) -Chars 10149 - 10432 [Lemma~Leaf_interp_iter_inv~{E}...] 0. secs (0.u,0.s) -Chars 10433 - 10439 [Proof.] 0. secs (0.u,0.s) -Chars 10442 - 10469 [intros~*~Hbody~Hentry~r~Hr.] 0. secs (0.u,0.s) -Chars 10472 - 10539 [apply~(Leaf_iter_inv~(fun~i~=>...] 0. secs (0.u,0.s) -Chars 10542 - 10605 [rewrite~(interp_iter'~_~_~(fun...] 0.001 secs (0.001u,0.s) -Chars 10608 - 10617 [apply~Hr.] 0. secs (0.u,0.s) -Chars 10618 - 10630 [reflexivity.] 0. secs (0.u,0.s) -Chars 10631 - 10635 [Qed.] 0. secs (0.u,0.s) -Chars 10772 - 11204 [Lemma~Leaf_interp_state_iter_i...] 0.001 secs (0.001u,0.s) -Chars 11205 - 11211 [Proof.] 0. secs (0.u,0.s) -Chars 11214 - 11252 [setoid_rewrite~~<-~has_post_Le...] 0.007 secs (0.007u,0.s) -Chars 11255 - 11291 [setoid_rewrite~has_post_post_s...] 0.011 secs (0.011u,0.s) -Chars 11294 - 11324 [intros~*~Hinv~Hentrys~Hentryi.] 0. secs (0.u,0.s) -Chars 11327 - 11375 [set~(eRI~:=~fun~i1~i2~:~I~=>~i...] 0. secs (0.u,0.s) -Chars 11378 - 11426 [set~(eRR~:=~fun~r1~r2~:~R~=>~r...] 0. secs (0.u,0.s) -Chars 11429 - 11477 [set~(eRS~:=~fun~s1~s2~:~S~=>~s...] 0. secs (0.u,0.s) -Chars 11481 - 11541 [set~(R1~:=~fun~x~y~:~S~*~R~=>~...] 0. secs (0.u,0.s) -Chars 11544 - 11620 [set~(R2~:=~fun~a~b~:~S~*~R~=>~...] 0. secs (0.u,0.s) -Chars 11623 - 11703 [assert~(HR1R2~:~eq_rel~R1~R2)~...] 0.051 secs (0.05u,0.s) -Chars 11706 - 11770 [unfold~has_post_strong;~fold~R...] 0. secs (0.u,0.s) -Chars 11774 - 11904 [unshelve~~~(eapply~(eutt_inter...] 0.002 secs (0.002u,0.s) -Chars 11907 - 11942 [intros~i1~?~s1~?~[<-~Hs1]~[<-~...] 0. secs (0.u,0.s) -Chars 11946 - 12026 [set~(R3~:=~fun~x~y~:~S~*~(I~+~...] 0. secs (0.u,0.s) -Chars 12029 - 12074 [set~(R4~:=~prod_rel~eRS~(sum_r...] 0. secs (0.u,0.s) -Chars 12077 - 12106 [assert~(HR3R4~:~eq_rel~R3~R4).] 0. secs (0.u,0.s) -Chars 12109 - 12110 [{] 0. secs (0.u,0.s) -Chars 12111 - 12150 [split;~intros~[?~[|~]]~[?~[|~]...] 0. secs (0.u,0.s) -Chars 12155 - 12200 [1-4:~intros~[[]];~dintuition;~...] 0.156 secs (0.155u,0.001s) -Chars 12205 - 12267 [all:~intros~[[[=->]~?]~HZ];~in...] 0.067 secs (0.066u,0.s) -Chars 12268 - 12269 [}] 0. secs (0.u,0.s) -Chars 12273 - 12307 [rewrite~<-~(eutt_equiv~_~_~HR3...] 0. secs (0.u,0.s) -Chars 12310 - 12325 [now~apply~Hinv.] 0. secs (0.u,0.s) -Chars 12326 - 12330 [Qed.] 0.012 secs (0.011u,0.s) -Chars 12530 - 12545 [Module~Subtree.] 0. secs (0.u,0.s) -Chars 12547 - 12806 [Inductive~subtree~{E}~{R}~:~it...] 0.001 secs (0.001u,0.s) -Chars 12808 - 12923 [#[global]~Instance~subtree_con...] 0. secs (0.u,0.s) -Chars 12924 - 12930 [Proof.] 0. secs (0.u,0.s) -Chars 12933 - 12961 [intros~t~t'~Ht~u~u'~Hu~Hsub.] 0. secs (0.u,0.s) -Chars 12964 - 13005 [revert~t~Ht~u~Hu;~induction~Hs...] 0. secs (0.u,0.s) -Chars 13008 - 13009 [-] 0. secs (0.u,0.s) -Chars 13010 - 13028 [apply~SubtreeRefl.] 0. secs (0.u,0.s) -Chars 13029 - 13048 [now~rewrite~Ht,~Hu.] 0.001 secs (0.001u,0.s) -Chars 13051 - 13052 [-] 0. secs (0.u,0.s) -Chars 13053 - 13084 [apply~SubtreeTau,~IHHsub;~auto.] 0. secs (0.u,0.s) -Chars 13085 - 13104 [apply~eqit_Tau,~Ht.] 0. secs (0.u,0.s) -Chars 13107 - 13108 [-] 0. secs (0.u,0.s) -Chars 13109 - 13127 [eapply~SubtreeVis.] 0. secs (0.u,0.s) -Chars 13128 - 13146 [now~rewrite~Ht,~H.] 0.003 secs (0.003u,0.s) -Chars 13147 - 13166 [apply~IHHsub;~auto.] 0. secs (0.u,0.s) -Chars 13167 - 13171 [Qed.] 0.001 secs (0.001u,0.s) -Chars 13173 - 13255 [Lemma~subtree_image~{E}~{R}~(t...] 0. secs (0.u,0.s) -Chars 13256 - 13262 [Proof.] 0. secs (0.u,0.s) -Chars 13265 - 13279 [intros~*~Hsub.] 0. secs (0.u,0.s) -Chars 13280 - 13303 [induction~Hsub;~intros.] 0. secs (0.u,0.s) -Chars 13306 - 13307 [-] 0. secs (0.u,0.s) -Chars 13308 - 13315 [intros.] 0. secs (0.u,0.s) -Chars 13316 - 13335 [rewrite~<-~H;~auto.] 0.001 secs (0.001u,0.s) -Chars 13338 - 13339 [-] 0. secs (0.u,0.s) -Chars 13340 - 13366 [apply~IHHsub,~Leaf_Tau,~H.] 0. secs (0.u,0.s) -Chars 13369 - 13370 [-] 0. secs (0.u,0.s) -Chars 13371 - 13395 [eapply~IHHsub,~Leaf_Vis.] 0. secs (0.u,0.s) -Chars 13396 - 13419 [rewrite~H~in~H0;~eauto.] 0.001 secs (0.001u,0.s) -Chars 13420 - 13424 [Qed.] 0. secs (0.u,0.s) -Chars 13426 - 13562 [Lemma~Leaf_interp_subtree_inv~...] 0. secs (0.u,0.s) -Chars 13563 - 13569 [Proof.] 0. secs (0.u,0.s) -Chars 13572 - 13583 [revert~t~u.] 0. secs (0.u,0.s) -Chars 13584 - 13600 [unfold~has_post.] 0. secs (0.u,0.s) -Chars 13601 - 13634 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) -Chars 13637 - 13667 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) -Chars 13670 - 13692 [rewrite~unfold_interp.] 0.011 secs (0.01u,0.s) -Chars 13695 - 13724 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) -Chars 13727 - 13728 [-] 0. secs (0.u,0.s) -Chars 13729 - 13741 [constructor.] 0. secs (0.u,0.s) -Chars 13742 - 13770 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) -Chars 13771 - 13786 [apply~Leaf_Ret.] 0. secs (0.u,0.s) -Chars 13789 - 13790 [-] 0. secs (0.u,0.s) -Chars 13791 - 13803 [constructor.] 0. secs (0.u,0.s) -Chars 13804 - 13814 [apply~CIH.] 0. secs (0.u,0.s) -Chars 13815 - 13838 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) -Chars 13841 - 13842 [-] 0. secs (0.u,0.s) -Chars 13843 - 13850 [to_mon.] 0. secs (0.u,0.s) -Chars 13851 - 13874 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 13875 - 13887 [reflexivity.] 0. secs (0.u,0.s) -Chars 13892 - 13906 [intros~u~_~<-.] 0. secs (0.u,0.s) -Chars 13911 - 13916 [taus.] 0. secs (0.u,0.s) -Chars 13917 - 13927 [apply~CIH.] 0. secs (0.u,0.s) -Chars 13928 - 13952 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) -Chars 13953 - 13965 [reflexivity.] 0. secs (0.u,0.s) -Chars 13966 - 13970 [Qed.] 0.005 secs (0.005u,0.s) -Chars 13972 - 14151 [Lemma~Leaf_interp_state_subtre...] 0.002 secs (0.002u,0.s) -Chars 14152 - 14158 [Proof.] 0. secs (0.u,0.s) -Chars 14161 - 14174 [revert~t~u~s.] 0. secs (0.u,0.s) -Chars 14175 - 14191 [unfold~has_post.] 0. secs (0.u,0.s) -Chars 14192 - 14225 [coinduction~c~CIH;~intros~*~Hsub.] 0.001 secs (0.001u,0.s) -Chars 14228 - 14258 [rewrite~(itree_eta~u)~in~Hsub.] 0.007 secs (0.007u,0.s) -Chars 14261 - 14289 [rewrite~unfold_interp_state.] 0.01 secs (0.01u,0.s) -Chars 14292 - 14321 [desobs~u~Hu;~clear~u~Hu;~cbn.] 0.001 secs (0.001u,0.s) -Chars 14324 - 14325 [-] 0. secs (0.u,0.s) -Chars 14326 - 14338 [constructor.] 0. secs (0.u,0.s) -Chars 14339 - 14367 [eapply~subtree_image;~eauto.] 0. secs (0.u,0.s) -Chars 14368 - 14383 [apply~Leaf_Ret.] 0. secs (0.u,0.s) -Chars 14386 - 14387 [-] 0. secs (0.u,0.s) -Chars 14388 - 14400 [constructor.] 0. secs (0.u,0.s) -Chars 14401 - 14411 [apply~CIH.] 0. secs (0.u,0.s) -Chars 14412 - 14435 [apply~SubtreeTau,~Hsub.] 0. secs (0.u,0.s) -Chars 14438 - 14439 [-] 0. secs (0.u,0.s) -Chars 14440 - 14447 [to_mon.] 0. secs (0.u,0.s) -Chars 14448 - 14471 [eapply~eqit_bind_chain.] 0. secs (0.u,0.s) -Chars 14472 - 14484 [reflexivity.] 0. secs (0.u,0.s) -Chars 14489 - 14514 [intros~[u1~u2]~_~<-;~cbn.] 0. secs (0.u,0.s) -Chars 14519 - 14524 [taus.] 0. secs (0.u,0.s) -Chars 14525 - 14535 [apply~CIH.] 0. secs (0.u,0.s) -Chars 14536 - 14560 [eapply~SubtreeVis,~Hsub.] 0. secs (0.u,0.s) -Chars 14561 - 14573 [reflexivity.] 0. secs (0.u,0.s) -Chars 14574 - 14578 [Qed.] 0.006 secs (0.006u,0.s) -Chars 14580 - 14592 [End~Subtree.] 0. secs (0.u,0.s) -Chars 14593 - 14608 [Import~Subtree.] 0. secs (0.u,0.s) -Chars 14610 - 14706 [Lemma~Leaf_interp_inv~{E}~{F}~...] 0. secs (0.u,0.s) -Chars 14707 - 14713 [Proof.] 0. secs (0.u,0.s) -Chars 14716 - 14729 [intros~Hleaf.] 0. secs (0.u,0.s) -Chars 14730 - 14790 [apply~(has_post_Leaf~(interp~h...] 0. secs (0.u,0.s) -Chars 14793 - 14823 [apply~Leaf_interp_subtree_inv.] 0. secs (0.u,0.s) -Chars 14824 - 14855 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) -Chars 14856 - 14860 [Qed.] 0. secs (0.u,0.s) -Chars 14862 - 15000 [Lemma~Leaf_interp_state_inv~{E...] 0. secs (0.u,0.s) -Chars 15001 - 15007 [Proof.] 0. secs (0.u,0.s) -Chars 15010 - 15023 [intros~Hleaf.] 0. secs (0.u,0.s) -Chars 15026 - 15098 [apply~(has_post_Leaf~(interp_s...] 0. secs (0.u,0.s) -Chars 15101 - 15137 [apply~Leaf_interp_state_subtre...] 0. secs (0.u,0.s) -Chars 15138 - 15169 [apply~SubtreeRefl;~reflexivity.] 0. secs (0.u,0.s) -Chars 15170 - 15174 [Qed.] 0. secs (0.u,0.s) -Chars 15213 - 15336 [Lemma~Leaf_translate_inv~{E}~{...] 0. secs (0.u,0.s) -Chars 15337 - 15343 [Proof.] 0. secs (0.u,0.s) -Chars 15346 - 15353 [intros.] 0. secs (0.u,0.s) -Chars 15354 - 15387 [rewrite~translate_to_interp~in~H.] 0.002 secs (0.002u,0.s) -Chars 15390 - 15420 [eapply~Leaf_interp_inv;~eauto.] 0. secs (0.u,0.s) -Chars 15421 - 15425 [Qed.] 0. secs (0.u,0.s) diff --git a/theories/Simple.v.timing b/theories/Simple.v.timing deleted file mode 100644 index 08ead142..00000000 --- a/theories/Simple.v.timing +++ /dev/null @@ -1,233 +0,0 @@ -Chars 48 - 84 [Set~Warnings~"-notation-overri...] 0. secs (0.u,0.s) -Chars 86 - 140 [From~Stdlib~Require~Import~Set...] 0.005 secs (0.003u,0.002s) -Chars 142 - 178 [From~Coinduction~Require~Impor...] 0.002 secs (0.001u,0.s) -Chars 181 - 223 [From~ITree~Require~Import~Eq.S...] 0.021 secs (0.017u,0.004s) -Chars 305 - 347 [Require~Export~ITree.Core.ITre...] 0. secs (0.u,0.s) -Chars 348 - 370 [Export~ITreeNotations.] 0. secs (0.u,0.s) -Chars 371 - 404 [#[global]~Open~Scope~itree_scope.] 0. secs (0.u,0.s) -Chars 1062 - 1097 [Require~Export~ITree.Basics.Ba...] 0. secs (0.u,0.s) -Chars 1158 - 1191 [Require~Export~ITree.Indexed.Sum.] 0. secs (0.u,0.s) -Chars 1328 - 1363 [Require~Export~ITree.Interp.In...] 0.001 secs (0.u,0.s) -Chars 1428 - 1466 [Require~Export~ITree.Interp.Re...] 0.003 secs (0.002u,0.s) -Chars 1743 - 1772 [Require~ITree.Interp.Handler.] 0.009 secs (0.007u,0.001s) -Chars 1773 - 1809 [Export~ITree.Interp.Handler.Ha...] 0. secs (0.u,0.s) -Chars 2164 - 2189 [Module~Type~SimpleTheory.] 0. secs (0.u,0.s) -Chars 2297 - 2325 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) -Chars 2327 - 2365 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 2481 - 2529 [Parameter~(eutt~:~itree~E~R~->...] 0. secs (0.u,0.s) -Chars 2531 - 2578 [Infix~"≈"~:=~eutt~(~at~level~7...] 0. secs (0.u,0.s) -Chars 2622 - 2689 [#[global]~Declare~Instance~Equ...] 0. secs (0.u,0.s) -Chars 2730 - 2791 [Parameter~(tau_eutt~:~forall~t...] 0. secs (0.u,0.s) -Chars 2793 - 2864 [Parameter~(itree_eta~:~forall~...] 0. secs (0.u,0.s) -Chars 2866 - 2940 [Parameter~(eutt_ret~:~forall~r...] 0. secs (0.u,0.s) -Chars 2942 - 3072 [Parameter~~~(eutt_vis~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3074 - 3152 [Parameter~(eutt_inv_ret~:~fora...] 0. secs (0.u,0.s) -Chars 3154 - 3289 [Parameter~~~(eutt_inv_vis~:~~~...] 0. secs (0.u,0.s) -Chars 3291 - 3315 [End~EquivalenceUpToTaus.] 0.014 secs (0.013u,0.s) -Chars 3317 - 3351 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) -Chars 3382 - 3481 [Parameter~~~(bind_ret~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3483 - 3645 [Parameter~~~(bind_vis~:~~~~~~f...] 0. secs (0.u,0.s) -Chars 3647 - 3740 [Parameter~~~(bind_ret_r~:~~~~~...] 0. secs (0.u,0.s) -Chars 3742 - 3936 [Parameter~~~(bind_bind~:~~~~~~...] 0. secs (0.u,0.s) -Chars 3938 - 3979 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) -Chars 3980 - 4021 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 4022 - 4063 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) -Chars 4064 - 4107 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 4108 - 4150 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 4197 - 4423 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) -Chars 4425 - 4547 [Parameter~~~(unfold_interp~:~~...] 0. secs (0.u,0.s) -Chars 4617 - 4715 [Parameter~~~(interp_ret~:~~~~~...] 0. secs (0.u,0.s) -Chars 4717 - 4882 [Parameter~~~(interp_vis~:~~~~~...] 0. secs (0.u,0.s) -Chars 4884 - 5029 [Parameter~~~(interp_trigger~:~...] 0. secs (0.u,0.s) -Chars 5031 - 5221 [Parameter~~~(interp_bind~:~~~~...] 0. secs (0.u,0.s) -Chars 5223 - 5266 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 5267 - 5310 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 5311 - 5358 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 5359 - 5403 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 5548 - 5689 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) -Chars 5691 - 5824 [Parameter~~~(rec_as_interp~:~~...] 0. secs (0.u,0.s) -Chars 5826 - 5970 [Parameter~~~(interp_recursive_...] 0. secs (0.u,0.s) -Chars 6080 - 6192 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) -Chars 6194 - 6332 [Parameter~~~(mrec_as_interp~:~...] 0. secs (0.u,0.s) -Chars 6334 - 6482 [Parameter~~~(interp_mrecursive...] 0. secs (0.u,0.s) -Chars 6484 - 6538 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 6539 - 6589 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 6619 - 6703 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 6705 - 6799 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 6801 - 6891 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 6893 - 7017 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 7019 - 7150 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 7152 - 7279 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 7281 - 7413 [#[global]~Declare~Instance~eut...] 0. secs (0.u,0.s) -Chars 7541 - 7718 [Ltac~~tau_steps~:=~~~repeat~~~...] 0. secs (0.u,0.s) -Chars 7720 - 7737 [End~SimpleTheory.] 0. secs (0.u,0.s) -Chars 7781 - 7871 [From~ITree~Require~Import~Eq.E...] 0.006 secs (0.006u,0.s) -Chars 7873 - 7909 [Module~Export~Simple:~SimpleTh...] 0. secs (0.u,0.s) -Chars 7995 - 8023 [Section~EquivalenceUpToTaus.] 0. secs (0.u,0.s) -Chars 8025 - 8063 [Context~{E~:~Type~->~Type}~{R~...] 0. secs (0.u,0.s) -Chars 8160 - 8236 [Definition~eutt~:~itree~E~R~->...] 0. secs (0.u,0.s) -Chars 8238 - 8298 [Notation~"x~≈~y"~:=~(eutt~x~y)...] 0. secs (0.u,0.s) -Chars 8342 - 8394 [#[global]~Instance~Equivalence...] 0. secs (0.u,0.s) -Chars 8395 - 8401 [Proof.] 0. secs (0.u,0.s) -Chars 8404 - 8441 [apply~ITree.Eq.Eqit.Equivalenc...] 0. secs (0.u,0.s) -Chars 8442 - 8477 [econstructor;~eauto~using~tran...] 0. secs (0.u,0.s) -Chars 8479 - 8483 [Qed.] 0. secs (0.u,0.s) -Chars 8524 - 8581 [Lemma~tau_eutt~:~forall~t~:~it...] 0. secs (0.u,0.s) -Chars 8582 - 8588 [Proof.] 0. secs (0.u,0.s) -Chars 8589 - 8596 [intros.] 0. secs (0.u,0.s) -Chars 8597 - 8628 [rewrite~ITree.Eq.Eqit.tau_eutt.] 0.001 secs (0.001u,0.s) -Chars 8629 - 8641 [reflexivity.] 0. secs (0.u,0.s) -Chars 8642 - 8646 [Qed.] 0. secs (0.u,0.s) -Chars 8648 - 8715 [Lemma~itree_eta~:~forall~t~:~i...] 0. secs (0.u,0.s) -Chars 8716 - 8722 [Proof.] 0. secs (0.u,0.s) -Chars 8723 - 8730 [intros.] 0. secs (0.u,0.s) -Chars 8731 - 8766 [rewrite~<-~ITree.Eq.Eqit.itree...] 0. secs (0.u,0.s) -Chars 8767 - 8779 [reflexivity.] 0. secs (0.u,0.s) -Chars 8780 - 8784 [Qed.] 0. secs (0.u,0.s) -Chars 8786 - 8846 [Lemma~eutt_ret~(r1~r2~:~R)~:~r...] 0. secs (0.u,0.s) -Chars 8847 - 8853 [Proof.] 0. secs (0.u,0.s) -Chars 8854 - 8861 [intros.] 0. secs (0.u,0.s) -Chars 8862 - 8868 [subst.] 0. secs (0.u,0.s) -Chars 8869 - 8881 [reflexivity.] 0. secs (0.u,0.s) -Chars 8882 - 8886 [Qed.] 0. secs (0.u,0.s) -Chars 8888 - 9004 [Lemma~eutt_vis~{U~:~Type}~(e~:...] 0. secs (0.u,0.s) -Chars 9005 - 9011 [Proof.] 0. secs (0.u,0.s) -Chars 9015 - 9022 [intros.] 0. secs (0.u,0.s) -Chars 9023 - 9052 [apply~ITree.Eq.Eqit.eqit_Vis.] 0. secs (0.u,0.s) -Chars 9053 - 9060 [intros.] 0. secs (0.u,0.s) -Chars 9061 - 9069 [apply~H.] 0. secs (0.u,0.s) -Chars 9071 - 9075 [Qed.] 0. secs (0.u,0.s) -Chars 9077 - 9145 [Lemma~eutt_inv_ret~(r1~r2~:~R)...] 0. secs (0.u,0.s) -Chars 9146 - 9152 [Proof.] 0. secs (0.u,0.s) -Chars 9153 - 9186 [apply~ITree.Eq.Eqit.eqit_inv_Ret.] 0. secs (0.u,0.s) -Chars 9187 - 9191 [Qed.] 0. secs (0.u,0.s) -Chars 9193 - 9317 [Lemma~eutt_inv_vis~{U~:~Type}~...] 0. secs (0.u,0.s) -Chars 9318 - 9324 [Proof.] 0. secs (0.u,0.s) -Chars 9325 - 9364 [apply~ITree.Eq.Eqit.eqit_inv_V...] 0. secs (0.u,0.s) -Chars 9365 - 9369 [Qed.] 0. secs (0.u,0.s) -Chars 9371 - 9395 [End~EquivalenceUpToTaus.] 0. secs (0.u,0.s) -Chars 9397 - 9431 [Infix~"≈"~:=~eutt~(~at~level~70).] 0. secs (0.u,0.s) -Chars 9462 - 9557 [Lemma~bind_ret~:~~~forall~{E}~...] 0. secs (0.u,0.s) -Chars 9558 - 9564 [Proof.] 0. secs (0.u,0.s) -Chars 9565 - 9621 [intros;~rewrite~ITree.Eq.Shall...] 0.039 secs (0.039u,0.s) -Chars 9622 - 9626 [Qed.] 0. secs (0.u,0.s) -Chars 9628 - 9723 [Lemma~bind_tau~{E}~{R}~U~t~(k~...] 0. secs (0.u,0.s) -Chars 9724 - 9730 [Proof.] 0. secs (0.u,0.s) -Chars 9731 - 9749 [rewrite~bind_tau_.] 0.008 secs (0.008u,0.s) -Chars 9750 - 9762 [reflexivity.] 0. secs (0.u,0.s) -Chars 9763 - 9767 [Qed.] 0. secs (0.u,0.s) -Chars 9769 - 9927 [Lemma~bind_vis~:~~~forall~{E}~...] 0. secs (0.u,0.s) -Chars 9928 - 9934 [Proof.] 0. secs (0.u,0.s) -Chars 9935 - 9991 [intros;~rewrite~ITree.Eq.Shall...] 0.013 secs (0.011u,0.002s) -Chars 9992 - 9996 [Qed.] 0. secs (0.u,0.s) -Chars 9998 - 10087 [Lemma~bind_ret_r~:~~~forall~{E...] 0. secs (0.u,0.s) -Chars 10088 - 10094 [Proof.] 0. secs (0.u,0.s) -Chars 10095 - 10149 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) -Chars 10150 - 10154 [Qed.] 0. secs (0.u,0.s) -Chars 10156 - 10346 [Lemma~bind_bind~:~~~forall~{E}...] 0. secs (0.u,0.s) -Chars 10347 - 10353 [Proof.] 0. secs (0.u,0.s) -Chars 10354 - 10407 [intros;~rewrite~ITree.Eq.Eqit....] 0. secs (0.u,0.s) -Chars 10408 - 10412 [Qed.] 0. secs (0.u,0.s) -Chars 10414 - 10455 [#[global]~Hint~Rewrite~@tau_eu...] 0. secs (0.u,0.s) -Chars 10456 - 10497 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 10498 - 10539 [#[global]~Hint~Rewrite~@bind_t...] 0. secs (0.u,0.s) -Chars 10540 - 10581 [#[global]~Hint~Rewrite~@bind_v...] 0. secs (0.u,0.s) -Chars 10582 - 10625 [#[global]~Hint~Rewrite~@bind_r...] 0. secs (0.u,0.s) -Chars 10626 - 10668 [#[global]~Hint~Rewrite~@bind_b...] 0. secs (0.u,0.s) -Chars 10716 - 10942 [Definition~_interp~{E}~{F}~{R}...] 0.001 secs (0.001u,0.s) -Chars 10944 - 11062 [Lemma~unfold_interp~:~~~forall...] 0. secs (0.u,0.s) -Chars 11063 - 11069 [Proof.] 0. secs (0.u,0.s) -Chars 11072 - 11130 [intros;~rewrite~<-~ITree.Inter...] 0.001 secs (0.001u,0.s) -Chars 11133 - 11145 [reflexivity.] 0. secs (0.u,0.s) -Chars 11146 - 11150 [Qed.] 0. secs (0.u,0.s) -Chars 11218 - 11312 [Lemma~interp_ret~:~~~forall~{E...] 0. secs (0.u,0.s) -Chars 11313 - 11319 [Proof.] 0. secs (0.u,0.s) -Chars 11322 - 11365 [intros;~rewrite~unfold_interp;...] 0.001 secs (0.u,0.s) -Chars 11366 - 11370 [Qed.] 0. secs (0.u,0.s) -Chars 11372 - 11533 [Lemma~interp_vis~:~~~forall~{E...] 0. secs (0.u,0.s) -Chars 11534 - 11540 [Proof.] 0. secs (0.u,0.s) -Chars 11543 - 11620 [intros;~rewrite~InterpFacts.in...] 0.004 secs (0.003u,0.s) -Chars 11621 - 11625 [Qed.] 0. secs (0.u,0.s) -Chars 11627 - 11768 [Lemma~interp_trigger~:~~~foral...] 0. secs (0.u,0.s) -Chars 11769 - 11775 [Proof.] 0. secs (0.u,0.s) -Chars 11778 - 11834 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) -Chars 11837 - 11849 [reflexivity.] 0. secs (0.u,0.s) -Chars 11850 - 11854 [Qed.] 0. secs (0.u,0.s) -Chars 11856 - 12042 [Lemma~interp_bind~:~~~forall~{...] 0. secs (0.u,0.s) -Chars 12043 - 12049 [Proof.] 0. secs (0.u,0.s) -Chars 12052 - 12105 [intros;~rewrite~ITree.Interp.I...] 0. secs (0.u,0.s) -Chars 12108 - 12120 [reflexivity.] 0. secs (0.u,0.s) -Chars 12121 - 12125 [Qed.] 0. secs (0.u,0.s) -Chars 12127 - 12170 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 12171 - 12214 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 12215 - 12262 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 12263 - 12307 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 12453 - 12594 [Definition~recursive~{E}~{A}~{...] 0. secs (0.u,0.s) -Chars 12596 - 12725 [Lemma~rec_as_interp~:~~~forall...] 0. secs (0.u,0.s) -Chars 12726 - 12732 [Proof.] 0. secs (0.u,0.s) -Chars 12735 - 12742 [intros.] 0. secs (0.u,0.s) -Chars 12743 - 12793 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) -Chars 12794 - 12806 [reflexivity.] 0. secs (0.u,0.s) -Chars 12807 - 12811 [Qed.] 0. secs (0.u,0.s) -Chars 12813 - 12953 [Lemma~interp_recursive_call~:~...] 0. secs (0.u,0.s) -Chars 12954 - 12960 [Proof.] 0. secs (0.u,0.s) -Chars 12963 - 12970 [intros.] 0. secs (0.u,0.s) -Chars 12971 - 13029 [rewrite~ITree.Interp.Recursion...] 0. secs (0.u,0.s) -Chars 13032 - 13044 [reflexivity.] 0. secs (0.u,0.s) -Chars 13045 - 13049 [Qed.] 0. secs (0.u,0.s) -Chars 13159 - 13271 [Definition~mrecursive~{D}~{E}~...] 0. secs (0.u,0.s) -Chars 13273 - 13407 [Lemma~mrec_as_interp~:~~~foral...] 0. secs (0.u,0.s) -Chars 13408 - 13414 [Proof.] 0. secs (0.u,0.s) -Chars 13417 - 13476 [intros;~rewrite~ITree.Interp.R...] 0. secs (0.u,0.s) -Chars 13477 - 13489 [reflexivity.] 0. secs (0.u,0.s) -Chars 13490 - 13494 [Qed.] 0. secs (0.u,0.s) -Chars 13496 - 13640 [Lemma~interp_mrecursive~:~~~fo...] 0. secs (0.u,0.s) -Chars 13641 - 13647 [Proof.] 0. secs (0.u,0.s) -Chars 13650 - 13712 [intros;~rewrite~ITree.Interp.R...] 0. secs (0.u,0.s) -Chars 13715 - 13727 [reflexivity.] 0. secs (0.u,0.s) -Chars 13728 - 13732 [Qed.] 0. secs (0.u,0.s) -Chars 13734 - 13788 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 13789 - 13839 [#[global]~Hint~Rewrite~@interp...] 0. secs (0.u,0.s) -Chars 13869 - 13945 [#[global]~Instance~eutt_go~~{E...] 0. secs (0.u,0.s) -Chars 13946 - 13952 [Proof.] 0. secs (0.u,0.s) -Chars 13953 - 13972 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 13973 - 13983 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 13984 - 14002 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14003 - 14007 [Qed.] 0. secs (0.u,0.s) -Chars 14009 - 14095 [#[global]~Instance~eutt_observ...] 0. secs (0.u,0.s) -Chars 14096 - 14102 [Proof.] 0. secs (0.u,0.s) -Chars 14103 - 14122 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14123 - 14133 [rewrite~H.] 0. secs (0.u,0.s) -Chars 14134 - 14152 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14153 - 14157 [Qed.] 0. secs (0.u,0.s) -Chars 14159 - 14241 [#[global]~Instance~eutt_TauF~~...] 0. secs (0.u,0.s) -Chars 14242 - 14248 [Proof.] 0. secs (0.u,0.s) -Chars 14249 - 14268 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14269 - 14279 [rewrite~H.] 0. secs (0.u,0.s) -Chars 14280 - 14298 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14299 - 14303 [Qed.] 0. secs (0.u,0.s) -Chars 14305 - 14421 [#[global]~Instance~eutt_VisF~~...] 0. secs (0.u,0.s) -Chars 14422 - 14428 [Proof.] 0. secs (0.u,0.s) -Chars 14429 - 14448 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14449 - 14459 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 14460 - 14478 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14479 - 14483 [Qed.] 0. secs (0.u,0.s) -Chars 14485 - 14608 [#[global]~Instance~eutt_bind~~...] 0. secs (0.u,0.s) -Chars 14609 - 14615 [Proof.] 0. secs (0.u,0.s) -Chars 14616 - 14635 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14636 - 14650 [rewrite~H,~H0.] 0.002 secs (0.002u,0.s) -Chars 14651 - 14669 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14670 - 14674 [Qed.] 0.001 secs (0.001u,0.s) -Chars 14676 - 14795 [#[global]~Instance~eutt_map~~{...] 0. secs (0.u,0.s) -Chars 14796 - 14802 [Proof.] 0. secs (0.u,0.s) -Chars 14803 - 14822 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 14823 - 14837 [rewrite~H,~H0.] 0.003 secs (0.003u,0.s) -Chars 14838 - 14856 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 14857 - 14861 [Qed.] 0.001 secs (0.001u,0.s) -Chars 14863 - 14987 [#[global]~Instance~eutt_interp...] 0. secs (0.u,0.s) -Chars 14988 - 14994 [Proof.] 0. secs (0.u,0.s) -Chars 14995 - 15014 [repeat~red;~intros.] 0. secs (0.u,0.s) -Chars 15015 - 15025 [rewrite~H.] 0.001 secs (0.001u,0.s) -Chars 15026 - 15044 [apply~reflexivity.] 0. secs (0.u,0.s) -Chars 15045 - 15049 [Qed.] 0. secs (0.u,0.s) -Chars 15051 - 15062 [End~Simple.] 0.001 secs (0.001u,0.s)